{"_id":"twitchps","_rev":"42-1e120c883c810b5c2d6a35c22f7d6e3f","name":"twitchps","description":"Library to easily interact with Twitch PubSub System","dist-tags":{"latest":"1.6.0","next":"1.5.1-0","erroremit":"1.5.2-3"},"versions":{"0.2.0":{"name":"twitchps","version":"0.2.0","description":"Library to easily interact with Twitch PubSub System","main":"main.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitch_pubsub.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitch_pubsub/issues"},"homepage":"https://github.com/jctrvlr/twitch_pubsub#readme","dependencies":{"bluebird":"^3.5.0","events":"^1.1.1","lodash":"^4.17.4","shortid":"^2.2.8","ws":"^2.2.2"},"gitHead":"a25d32e035b8b797b83cb85019d1218289efeedd","_id":"twitchps@0.2.0","_shasum":"a9b932e1286a1d25299c2f0a0332972ceb6d3cb5","_from":".","_npmVersion":"4.1.1","_nodeVersion":"7.3.0","_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"dist":{"shasum":"a9b932e1286a1d25299c2f0a0332972ceb6d3cb5","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-0.2.0.tgz","integrity":"sha512-ooUlu8TQr6ACuUfxMRSjt65aua2twJC8wKdU7OiVrxgjy5Ccv9ZkeCeEVRhMudEDKwbL+B0zbEaIacmE1J5ETg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF8Wwq6c+c3LJopNRKxH7QJzwr+77v6inEbwhCa/AN7YAiABruxc7zJySHpckEA3Orc4zQc8ewguiA2pGGvihNtP1Q=="}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/twitchps-0.2.0.tgz_1491632640145_0.29240955086424947"},"directories":{}},"0.2.1":{"name":"twitchps","version":"0.2.1","description":"Library to easily interact with Twitch PubSub System","main":"main.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","dependencies":{"bluebird":"^3.5.0","events":"^1.1.1","lodash":"^4.17.4","shortid":"^2.2.8","ws":"^2.2.2"},"gitHead":"f4105dec230bd795fd4020f16ca363aa0046c6db","_id":"twitchps@0.2.1","_shasum":"2a092344a428c28b871a00f8e13906f66476537d","_from":".","_npmVersion":"4.1.1","_nodeVersion":"7.3.0","_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"dist":{"shasum":"2a092344a428c28b871a00f8e13906f66476537d","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-0.2.1.tgz","integrity":"sha512-h4phWQlTA/Ve6fRI/46/kXi2BCkrHih/j5COe/m7d0T0NArbUrCCCcrtUebAIqtJbg9A5G2o+TFg+5AnR2tSGA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDzkRvzbCOIrHmnSWgdQlDLIkMOuc0quqXZU1N/ePgBwwIgGhT6XZxyyZgfEE4dzSTAOZ3YDdNF3/SDFDFTlvbIX7g="}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/twitchps-0.2.1.tgz_1491688037045_0.8473151240032166"},"directories":{}},"0.2.2":{"name":"twitchps","version":"0.2.2","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","dependencies":{"bluebird":"^3.5.0","events":"^1.1.1","lodash":"^4.17.4","shortid":"^2.2.8","ws":"^2.2.2"},"gitHead":"a009af7e9160012119de43391a8258742b8329cc","_id":"twitchps@0.2.2","_shasum":"1fa9274794149b7e4a1e2c12568928aece35edd4","_from":".","_npmVersion":"4.1.1","_nodeVersion":"7.3.0","_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"dist":{"shasum":"1fa9274794149b7e4a1e2c12568928aece35edd4","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-0.2.2.tgz","integrity":"sha512-4BH17VN8Vx8pWm/5MDlqpNhUIftjLQlM1iRcGqgxWQlMixaYWFKnK2/VkSAhzEDWHj1jh+PpQkvqeAQYjkqYwQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFXjxVXkNpUMWcFkcHOqlsHAC5dzxX9MF3g3DsuIOpW8AiEA+7Kz20cQSHyD1v7cHyobZ/H9Hh3JYENymMa79LDFmg8="}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/twitchps-0.2.2.tgz_1491706605414_0.11596168018877506"},"directories":{}},"0.2.3":{"name":"twitchps","version":"0.2.3","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","dependencies":{"bluebird":"^3.5.0","events":"^1.1.1","lodash":"^4.17.4","shortid":"^2.2.8","ws":"^2.2.2"},"gitHead":"a5ec39d6ce19535e1c9aba2ee97ba359db71aa7d","_id":"twitchps@0.2.3","_shasum":"d12874eb2c5037667ae0718e7e88b6c63eaf0cc0","_from":".","_npmVersion":"4.1.1","_nodeVersion":"7.3.0","_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"dist":{"shasum":"d12874eb2c5037667ae0718e7e88b6c63eaf0cc0","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-0.2.3.tgz","integrity":"sha512-kTb8gf7lYI4yBomTMDaZ0IxluEzrpjbBS4D5nf/ZwamuGd17IjfSPb6cGnqUkT2b41QBccF5MkTIz9SVeR1UQQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID6rlkk8pMJzRMk/j8ELp5sAwpEbIK1KRigf+IYTmGJoAiEAszG9542ykli+Fzjcqxsbg0+H3VOg7URENRx6QUFd7hU="}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/twitchps-0.2.3.tgz_1491706770751_0.6559206987731159"},"directories":{}},"0.2.4":{"name":"twitchps","version":"0.2.4","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","dependencies":{"bluebird":"^3.5.0","events":"^1.1.1","lodash":"^4.17.4","shortid":"^2.2.8","ws":"^2.2.2"},"gitHead":"47988bbff2414fc973b1f338f2ee53ecdab0fa59","_id":"twitchps@0.2.4","_shasum":"25637866f30ad23cbb9c7f74983926cb22d87315","_from":".","_npmVersion":"4.1.1","_nodeVersion":"7.3.0","_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"dist":{"shasum":"25637866f30ad23cbb9c7f74983926cb22d87315","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-0.2.4.tgz","integrity":"sha512-RMb0y6EBw05NAmekH4o2qP44HKH7ht9SgZjGICjL8XXjbxb2ED4wNxD/0/TBpsuMFSUOLMTRG+jUxrWBw/8RXQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF1Wt8duifDnysHqxrdWwcv1NmzqCYAZ9H4/FKNXtBILAiEArToAAOjXqJHEIF07qJHjiwt7HzGGITrYMhy+3Aq+9dM="}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/twitchps-0.2.4.tgz_1491706871403_0.7053623488172889"},"directories":{}},"0.3.0":{"name":"twitchps","version":"0.3.0","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"test":"eslint \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","eslintConfig":{"env":{"es6":true,"node":true},"parserOptions":{"ecmaVersion":6},"extends":"eslint:recommended","rules":{"semi":[2,"always",{"omitLastInOneLineBlock":true}],"no-unused-vars":[2,{"argsIgnorePattern":"^_","caughtErrors":"none"}],"no-control-regex":0,"global-require":1,"camelcase":0,"no-console":0,"dot-notation":1,"no-else-return":2,"no-plusplus":2,"constructor-super":2,"prefer-arrow-callback":1,"object-shorthand":2,"object-curly-spacing":1,"object-property-newline":[1,{"allowMultiplePropertiesPerLine":true}],"no-var":2,"no-inner-declarations":0}},"dependencies":{"bluebird":"^3.5.0","events":"^1.1.1","lodash":"^4.17.4","shortid":"^2.2.8","ws":"^2.2.2"},"devDependencies":{"eslint":"^3.19.0"},"gitHead":"7a1df0398bfd188b8376e2be3f6101e22df3ae37","_id":"twitchps@0.3.0","_shasum":"4b387d3b3de080271e75f9450351fefc22da5bd6","_from":".","_npmVersion":"4.4.4","_nodeVersion":"7.0.0","_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"dist":{"shasum":"4b387d3b3de080271e75f9450351fefc22da5bd6","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-0.3.0.tgz","integrity":"sha512-T9hCY5ZaO4CA+YyZwYRsRg8GOYNy+RSNK/K6Oo00I+se0v4z8o0BoLCcyeyiI4pyFMHpngRJxqU5gRayRHapwA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDE89nFCpDisVH/RRNpChm3Y2PjRCwIHSuJQCebutWvhwIgI7eBtX4FP5JhSMpMAvLbGg+usnye+Eo3jDjpg+q45sE="}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/twitchps-0.3.0.tgz_1491928415324_0.4885054654441774"},"directories":{}},"0.3.1":{"name":"twitchps","version":"0.3.1","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"test":"eslint \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","eslintConfig":{"env":{"es6":true,"node":true},"parserOptions":{"ecmaVersion":6},"extends":"eslint:recommended","rules":{"semi":[2,"always",{"omitLastInOneLineBlock":true}],"no-unused-vars":[2,{"argsIgnorePattern":"^_","caughtErrors":"none"}],"no-control-regex":0,"global-require":1,"camelcase":0,"no-console":0,"dot-notation":1,"no-else-return":2,"no-plusplus":2,"constructor-super":2,"prefer-arrow-callback":1,"object-shorthand":2,"object-curly-spacing":1,"object-property-newline":[1,{"allowMultiplePropertiesPerLine":true}],"no-var":2,"no-inner-declarations":0}},"dependencies":{"bluebird":"^3.5.0","events":"^1.1.1","lodash":"^4.17.4","shortid":"^2.2.8","ws":"^2.2.2"},"devDependencies":{"eslint":"^3.19.0"},"gitHead":"244613b2fa93a8921d1ff79d9a2000dc9796892f","_id":"twitchps@0.3.1","_shasum":"ff82aab6d28d7940dbe96298065e96efbfdc1781","_from":".","_npmVersion":"4.4.4","_nodeVersion":"7.0.0","_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"dist":{"shasum":"ff82aab6d28d7940dbe96298065e96efbfdc1781","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-0.3.1.tgz","integrity":"sha512-qVcpiGowg+EQKFYJGt/jjbBZevv4onsHsAXf2jF0qc9D4l2NqygSJxT7khb1LXnLG2TgkNT6WHiNuYBKwh1EEA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCh2DbBnqbvp5wOR21spgLXTlyS9eXZh5/inxnhvyDxmAIhAPjSNe99jT5qN5ZQITIEbDMtfvxkubyyoz1nL9uxDir5"}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/twitchps-0.3.1.tgz_1491928559864_0.39855838171206415"},"directories":{}},"0.4.0":{"name":"twitchps","version":"0.4.0","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"test":"eslint \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","eslintConfig":{"env":{"es6":true,"node":true},"parserOptions":{"ecmaVersion":6},"extends":"eslint:recommended","rules":{"semi":[2,"always",{"omitLastInOneLineBlock":true}],"no-unused-vars":[2,{"argsIgnorePattern":"^_","caughtErrors":"none"}],"no-control-regex":0,"global-require":1,"camelcase":0,"no-console":0,"dot-notation":1,"no-else-return":2,"no-plusplus":2,"constructor-super":2,"prefer-arrow-callback":1,"object-shorthand":2,"object-curly-spacing":1,"object-property-newline":[1,{"allowMultiplePropertiesPerLine":true}],"no-var":2,"no-inner-declarations":0}},"dependencies":{"bluebird":"^3.5.0","events":"^1.1.1","lodash":"^4.17.4","shortid":"^2.2.8","ws":"^2.2.2"},"devDependencies":{"eslint":"^3.19.0"},"gitHead":"bb39f8ce7a003dab7ed2e59b30a05d4414a3e649","_id":"twitchps@0.4.0","_shasum":"7de8b064123bdff9a7c17fdc3e5a9e83a5be5fd8","_from":".","_npmVersion":"4.1.1","_nodeVersion":"7.3.0","_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"dist":{"shasum":"7de8b064123bdff9a7c17fdc3e5a9e83a5be5fd8","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-0.4.0.tgz","integrity":"sha512-lO/pn70gHxw7ZIxALHxVb05vwT+zJ0dwL+u2hf+P3NGF1JrvAgTvwUv4zGwmqBl2qJvvNpBeKdt0y47MbSeD8w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDYhWMRHF0q/F1hjnXlZM5w8D7HWPo+hofn38eSkQVf4wIhAJgSAm9nCbALoj4Y0y/RAcstKSx4579DdUoY1kh8ASm4"}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/twitchps-0.4.0.tgz_1492538601919_0.970396590186283"},"directories":{}},"0.4.1":{"name":"twitchps","version":"0.4.1","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"test":"eslint \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","eslintConfig":{"env":{"es6":true,"node":true},"parserOptions":{"ecmaVersion":6},"extends":"eslint:recommended","rules":{"semi":[2,"always",{"omitLastInOneLineBlock":true}],"no-unused-vars":[2,{"argsIgnorePattern":"^_","caughtErrors":"none"}],"no-control-regex":0,"global-require":1,"camelcase":0,"no-console":0,"dot-notation":1,"no-else-return":2,"no-plusplus":2,"constructor-super":2,"prefer-arrow-callback":1,"object-shorthand":2,"object-curly-spacing":1,"object-property-newline":[1,{"allowMultiplePropertiesPerLine":true}],"no-var":2,"no-inner-declarations":0}},"dependencies":{"bluebird":"^3.5.0","events":"^1.1.1","lodash":"^4.17.4","shortid":"^2.2.8","ws":"^2.2.2"},"devDependencies":{"eslint":"^3.19.0"},"gitHead":"a91a37cb21f0ea10e942fa620f6580db66749811","_id":"twitchps@0.4.1","_shasum":"f0fa58a39b038519129156374aba1c1b5991c22e","_from":".","_npmVersion":"4.1.1","_nodeVersion":"7.3.0","_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"dist":{"shasum":"f0fa58a39b038519129156374aba1c1b5991c22e","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-0.4.1.tgz","integrity":"sha512-LrNmP2UkmJ7SdMx6TIMAHsMT36BuJONN3Ng5O0BBcP30fYmj8eC/tX8is7AWDz/jwtUAfdQYAYHHFmVjKyX2OQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEy7KWbYYgvZaHo8ytmqKXpCIbz8z+YBzSF/AvwXlOfpAiBrIqX42zmP9Isz9L28h0Lxh9PdlXtIHYeDizhB2vSftw=="}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/twitchps-0.4.1.tgz_1492539262785_0.7237856960855424"},"directories":{}},"0.4.2":{"name":"twitchps","version":"0.4.2","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"test":"eslint \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","eslintConfig":{"env":{"es6":true,"node":true},"parserOptions":{"ecmaVersion":6},"extends":"eslint:recommended","rules":{"semi":[2,"always",{"omitLastInOneLineBlock":true}],"no-unused-vars":[2,{"argsIgnorePattern":"^_","caughtErrors":"none"}],"no-control-regex":0,"global-require":1,"camelcase":0,"no-console":0,"dot-notation":1,"no-else-return":2,"no-plusplus":2,"constructor-super":2,"prefer-arrow-callback":1,"object-shorthand":2,"object-curly-spacing":1,"object-property-newline":[1,{"allowMultiplePropertiesPerLine":true}],"no-var":2,"no-inner-declarations":0}},"dependencies":{"bluebird":"^3.5.0","events":"^1.1.1","lodash":"^4.17.4","shortid":"^2.2.8","ws":"^2.2.2"},"devDependencies":{"eslint":"^3.19.0"},"gitHead":"ba52ee3ee2504dd1fa769b91e02539b8fb417c0b","_id":"twitchps@0.4.2","_shasum":"a0e56181272cdeb06ef3454fd2d5ba020a345c87","_from":".","_npmVersion":"4.5.0","_nodeVersion":"7.0.0","_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"dist":{"shasum":"a0e56181272cdeb06ef3454fd2d5ba020a345c87","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-0.4.2.tgz","integrity":"sha512-fj3LTne05fPo1dKneELeugVeYHl9iDwe1n7zDq9Mm+tfPohWjYexce2Wng9fPnJgHWJ4Iv8ijmH5B04VKcI7Cw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFC4ckrAkdk4u3ljxCSErucbBCzwFAAOydu/7yMEvcsRAiBtxIx2WrOg0ac7e9sqLNpQ72yAAEvc0kozwdx58eCZeQ=="}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/twitchps-0.4.2.tgz_1492552753336_0.4670001370832324"},"directories":{}},"0.4.3":{"name":"twitchps","version":"0.4.3","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"test":"eslint \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","eslintConfig":{"env":{"es6":true,"node":true},"parserOptions":{"ecmaVersion":6},"extends":"eslint:recommended","rules":{"semi":[2,"always",{"omitLastInOneLineBlock":true}],"no-unused-vars":[2,{"argsIgnorePattern":"^_","caughtErrors":"none"}],"no-control-regex":0,"global-require":1,"camelcase":0,"no-console":0,"dot-notation":1,"no-else-return":2,"no-plusplus":2,"constructor-super":2,"prefer-arrow-callback":1,"object-shorthand":2,"object-curly-spacing":1,"object-property-newline":[1,{"allowMultiplePropertiesPerLine":true}],"no-var":2,"no-inner-declarations":0}},"dependencies":{"bluebird":"^3.5.0","events":"^1.1.1","lodash":"^4.17.4","shortid":"^2.2.8","ws":"^2.2.2"},"devDependencies":{"eslint":"^3.19.0"},"gitHead":"8dcac2281e2e94482ebdddaf40e64af136fd2cff","_id":"twitchps@0.4.3","_shasum":"5a3e1cebab9ae4fa73ec011f74f153a0807fb587","_from":".","_npmVersion":"4.1.1","_nodeVersion":"7.3.0","_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"dist":{"shasum":"5a3e1cebab9ae4fa73ec011f74f153a0807fb587","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-0.4.3.tgz","integrity":"sha512-7j2dsqb0ga/rhxp0EmPftOrzpr2VZNDnYp+tSTFrq7ZJJWfS21r5uXn8MQoKjPvMFCUj6bEWswtWV7wx9lJM1Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDDqAuKhgNPB/kk7L3iKqlCqQgGZAfkYbQeGVshGViT/gIhAMaGpkPuzMMY3q5gV7Z3GwIzeOow7+w8lrbiypteUVi8"}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/twitchps-0.4.3.tgz_1493002783558_0.4491088264621794"},"directories":{}},"0.5.0":{"name":"twitchps","version":"0.5.0","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"test":"eslint \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","eslintConfig":{"env":{"es6":true,"node":true},"parserOptions":{"ecmaVersion":6},"extends":"eslint:recommended","rules":{"semi":[2,"always",{"omitLastInOneLineBlock":true}],"no-unused-vars":[2,{"argsIgnorePattern":"^_","caughtErrors":"none"}],"no-control-regex":0,"global-require":1,"camelcase":0,"no-console":0,"dot-notation":1,"no-else-return":2,"no-plusplus":2,"constructor-super":2,"prefer-arrow-callback":1,"object-shorthand":2,"object-curly-spacing":1,"object-property-newline":[1,{"allowMultiplePropertiesPerLine":true}],"no-var":2,"no-inner-declarations":0}},"dependencies":{"bluebird":"^3.5.0","events":"^1.1.1","lodash":"^4.17.4","shortid":"^2.2.8","ws":"^2.2.2"},"devDependencies":{"eslint":"^3.19.0"},"gitHead":"48b360d42394cedd4829bd1ba51eab8fb775b0df","_id":"twitchps@0.5.0","_shasum":"1c7a3503e05caae2b3f9d81e1c0eb3a2da6d49cb","_from":".","_npmVersion":"4.1.1","_nodeVersion":"7.3.0","_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"dist":{"shasum":"1c7a3503e05caae2b3f9d81e1c0eb3a2da6d49cb","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-0.5.0.tgz","integrity":"sha512-5/Bfnyk+f6brTOL8DXS7+c+0yK4yGqBi90DqwgmIMJf00ybRm5TAhlWaQBWEV+e1kas0HfHkJQTbKQxL+sxJEQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDRmG8vML8BbpShmZV0QWGp1keeOXdCe/gyLGC0eEmI8gIgemJzxEtJwk+bjmmMWBlgEfbmqHfOY8tOwslfujudgyo="}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/twitchps-0.5.0.tgz_1493004097193_0.8140725726261735"},"directories":{}},"0.5.1":{"name":"twitchps","version":"0.5.1","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"test":"eslint \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","eslintConfig":{"env":{"es6":true,"node":true},"parserOptions":{"ecmaVersion":6},"extends":"eslint:recommended","rules":{"semi":[2,"always",{"omitLastInOneLineBlock":true}],"no-unused-vars":[2,{"argsIgnorePattern":"^_","caughtErrors":"none"}],"no-control-regex":0,"global-require":1,"camelcase":0,"no-console":0,"dot-notation":1,"no-else-return":2,"no-plusplus":2,"constructor-super":2,"prefer-arrow-callback":1,"object-shorthand":2,"object-curly-spacing":1,"object-property-newline":[1,{"allowMultiplePropertiesPerLine":true}],"no-var":2,"no-inner-declarations":0}},"dependencies":{"bluebird":"^3.5.0","events":"^1.1.1","lodash":"^4.17.4","shortid":"^2.2.8","ws":"^2.2.2"},"devDependencies":{"eslint":"^3.19.0"},"gitHead":"da24f3b932be28daee502e637d7b5669e2545588","_id":"twitchps@0.5.1","_shasum":"147e772cb12263e4103b340413f5b0d105a0c92c","_from":".","_npmVersion":"4.1.1","_nodeVersion":"7.3.0","_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"dist":{"shasum":"147e772cb12263e4103b340413f5b0d105a0c92c","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-0.5.1.tgz","integrity":"sha512-RYUhMwJiJaUAdNIzzqYSQIEgZOnvF8Tih+VX0VUGxHuYcvt3xeubJuhPsXmOUl7azetBvHg3uqcXi4SozXWxIg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGPgV2keZZv6n7EDjbwIO9uk7PlMk4HXIONZxja+cOX8AiALbb2JzAqz7036uS0kJ3RIvnsbJfv3mQ0IE5F44DMH7Q=="}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/twitchps-0.5.1.tgz_1493005906690_0.23761727521196008"},"directories":{}},"0.5.2":{"name":"twitchps","version":"0.5.2","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"test":"eslint \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","eslintConfig":{"env":{"es6":true,"node":true},"parserOptions":{"ecmaVersion":6},"extends":"eslint:recommended","rules":{"semi":[2,"always",{"omitLastInOneLineBlock":true}],"no-unused-vars":[2,{"argsIgnorePattern":"^_","caughtErrors":"none"}],"no-control-regex":0,"global-require":1,"camelcase":0,"no-console":0,"dot-notation":1,"no-else-return":2,"no-plusplus":2,"constructor-super":2,"prefer-arrow-callback":1,"object-shorthand":2,"object-curly-spacing":1,"object-property-newline":[1,{"allowMultiplePropertiesPerLine":true}],"no-var":2,"no-inner-declarations":0}},"dependencies":{"bluebird":"^3.5.0","events":"^1.1.1","lodash":"^4.17.4","shortid":"^2.2.8","ws":"^2.2.2"},"devDependencies":{"eslint":"^3.19.0"},"gitHead":"6ddfabd1ee63c526e8415f480159930b77d620d3","_id":"twitchps@0.5.2","_shasum":"f37d704b391e3f5f6bfbad66bbdb825042f6a754","_from":".","_npmVersion":"4.1.1","_nodeVersion":"7.3.0","_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"dist":{"shasum":"f37d704b391e3f5f6bfbad66bbdb825042f6a754","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-0.5.2.tgz","integrity":"sha512-rdGLaEa8X3qfnuJV1GGwis1pAqCq9eeLkmenv7TXRQfz3GtSsa7YbQE7ze3+j41GvYHJu1VHixJqGn/VaBvyMA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGPic++qmHenX15sumOgigC1q4zSw/7/EtvtcID+Td9uAiA/6ajvAMyq+dzDhSedzEea9zdwid0HDmPEjHl6//fbZA=="}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/twitchps-0.5.2.tgz_1493264687616_0.010292901191860437"},"directories":{}},"0.5.3":{"name":"twitchps","version":"0.5.3","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"test":"eslint \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","eslintConfig":{"env":{"es6":true,"node":true},"parserOptions":{"ecmaVersion":6},"extends":"eslint:recommended","rules":{"semi":[2,"always",{"omitLastInOneLineBlock":true}],"no-unused-vars":[2,{"argsIgnorePattern":"^_","caughtErrors":"none"}],"no-control-regex":0,"global-require":1,"camelcase":0,"no-console":0,"dot-notation":1,"no-else-return":2,"no-plusplus":2,"constructor-super":2,"prefer-arrow-callback":1,"object-shorthand":2,"object-curly-spacing":1,"object-property-newline":[1,{"allowMultiplePropertiesPerLine":true}],"no-var":2,"no-inner-declarations":0}},"dependencies":{"bluebird":"^3.5.0","events":"^1.1.1","lodash":"^4.17.4","shortid":"^2.2.8","ws":"^2.2.2"},"devDependencies":{"eslint":"^3.19.0"},"gitHead":"e81024e9ab38c24b44d59d4a5c07544fc6c4aa1c","_id":"twitchps@0.5.3","_shasum":"5cf482485ff4eeae6e332c87991515d84cb3e666","_from":".","_npmVersion":"4.5.0","_nodeVersion":"7.0.0","_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"dist":{"shasum":"5cf482485ff4eeae6e332c87991515d84cb3e666","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-0.5.3.tgz","integrity":"sha512-BcPrj7fSbmKACb17eVZ7HhshNjXkAuYe813a7pheUzwrytFK4ukIuwYElKBjOFFAbEvDqCHgrVky9WWDxKVlxQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCRbqtAlqbixuYRM9IR2caFmCy+bDo8NH77Z+x7EAD1lwIhAPLE1eYaRN2t7VC+25PPDjvmDATRVtLyldnCHkp4u6RV"}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/twitchps-0.5.3.tgz_1493308576603_0.7978258363436908"},"directories":{}},"0.5.4":{"name":"twitchps","version":"0.5.4","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"test":"eslint \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","eslintConfig":{"env":{"es6":true,"node":true},"parserOptions":{"ecmaVersion":6},"extends":"eslint:recommended","rules":{"semi":[2,"always",{"omitLastInOneLineBlock":true}],"no-unused-vars":[2,{"argsIgnorePattern":"^_","caughtErrors":"none"}],"no-control-regex":0,"global-require":1,"camelcase":0,"no-console":0,"dot-notation":1,"no-else-return":2,"no-plusplus":2,"constructor-super":2,"prefer-arrow-callback":1,"object-shorthand":2,"object-curly-spacing":1,"object-property-newline":[1,{"allowMultiplePropertiesPerLine":true}],"no-var":2,"no-inner-declarations":0}},"dependencies":{"bluebird":"^3.5.0","events":"^1.1.1","lodash":"^4.17.4","shortid":"^2.2.8","ws":"^3.0.0"},"devDependencies":{"eslint":"^3.19.0"},"gitHead":"3f352570a1deabecd4bc46e4acd048c3f5c74678","_id":"twitchps@0.5.4","_shasum":"1a85b327c7b84c251686f3ebcb2126e1c98ffcfa","_from":".","_npmVersion":"4.1.1","_nodeVersion":"7.3.0","_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"dist":{"shasum":"1a85b327c7b84c251686f3ebcb2126e1c98ffcfa","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-0.5.4.tgz","integrity":"sha512-G8Ji5HjjWwjCyqSkko/BhC9vCjHewAqw9ZrVd/9BKXUx70CfNIXE3dRLJcKWyUecGSTZ1llzlPnK7RR67CxTZQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBQFGvBtYR///Qj2twyC7OI2gYaQQ2TnqMcJ+HTCGfnVAiEAowHe8oLGxrW+cUrU60FLgSjrs/C+UOaHgKRW2gcKJwE="}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/twitchps-0.5.4.tgz_1496371289778_0.9146168041042984"},"directories":{}},"0.5.5":{"name":"twitchps","version":"0.5.5","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"test":"eslint \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","eslintConfig":{"env":{"es6":true,"node":true},"parserOptions":{"ecmaVersion":6},"extends":"eslint:recommended","rules":{"semi":[2,"always",{"omitLastInOneLineBlock":true}],"no-unused-vars":[2,{"argsIgnorePattern":"^_","caughtErrors":"none"}],"no-control-regex":0,"global-require":1,"camelcase":0,"no-console":0,"dot-notation":1,"no-else-return":2,"no-plusplus":2,"constructor-super":2,"prefer-arrow-callback":1,"object-shorthand":2,"object-curly-spacing":1,"object-property-newline":[1,{"allowMultiplePropertiesPerLine":true}],"no-var":2,"no-inner-declarations":0}},"dependencies":{"bluebird":"^3.5.0","events":"^1.1.1","lodash":"^4.17.4","shortid":"^2.2.8","ws":"^3.0.0"},"devDependencies":{"eslint":"^3.19.0"},"gitHead":"bc563fc98d1b31a763b27c8cbd0d003c94d003fa","_id":"twitchps@0.5.5","_shasum":"eed59b8d74bedf3d094bc5d618251ce2053cb95e","_from":".","_npmVersion":"4.5.0","_nodeVersion":"7.0.0","_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"dist":{"shasum":"eed59b8d74bedf3d094bc5d618251ce2053cb95e","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-0.5.5.tgz","integrity":"sha512-eBV3eCnMgZAwEefq6hEim2+z63Mg8uPvODYdQ6Ncw/YTyY+SkGQoxE09OIJyG3zoWIss9SYkg81GNMI5GxTw8Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH77dRLdjqA5aA50E2J0puovuy8csyCXsVxsNz4Q8z00AiB4zGBqmjKemNZ53FU5dEX6+Vi/0dPoJLb+fgqon4qtzw=="}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/twitchps-0.5.5.tgz_1497379582841_0.9841342107392848"},"directories":{}},"0.5.6":{"name":"twitchps","version":"0.5.6","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"test":"eslint \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","eslintConfig":{"env":{"es6":true,"node":true},"parserOptions":{"ecmaVersion":6},"extends":"eslint:recommended","rules":{"semi":[2,"always",{"omitLastInOneLineBlock":true}],"no-unused-vars":[2,{"argsIgnorePattern":"^_","caughtErrors":"none"}],"no-control-regex":0,"global-require":1,"camelcase":0,"no-console":0,"dot-notation":1,"no-else-return":2,"no-plusplus":2,"constructor-super":2,"prefer-arrow-callback":1,"object-shorthand":2,"object-curly-spacing":1,"object-property-newline":[1,{"allowMultiplePropertiesPerLine":true}],"no-var":2,"no-inner-declarations":0}},"dependencies":{"bluebird":"^3.5.0","events":"^1.1.1","lodash":"^4.17.4","shortid":"^2.2.8","ws":"^3.3.1"},"devDependencies":{"eslint":"^3.19.0"},"gitHead":"f0bddbc71e073c77042163d0b25c999659c0824a","_id":"twitchps@0.5.6","_npmVersion":"5.6.0","_nodeVersion":"8.4.0","_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"dist":{"integrity":"sha512-OFNd6HWPv6uIj+b0W+7AEwI2bKN9DlPyrQ1mcn9OJS0U+uFbXFB50BEo8Wc0TzqIYmAsjI8rGlVvt7BiHuvgRw==","shasum":"c324da246cc08f553e312cc9abaa4e1d9bec29ce","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-0.5.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA6Ymq1w5jKKi3qZw6mldMgubXF5uzY5MgYGN8RsLeo7AiEAxHegQSeG4OsTtCM/38NXpaO/mySNQ791W7M4UKVAZEs="}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/twitchps-0.5.6.tgz_1514561335330_0.47917415853589773"},"directories":{}},"0.5.7":{"name":"twitchps","version":"0.5.7","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"test":"eslint \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","eslintConfig":{"env":{"es6":true,"node":true},"parserOptions":{"ecmaVersion":6},"extends":"eslint:recommended","rules":{"semi":[2,"always",{"omitLastInOneLineBlock":true}],"no-unused-vars":[2,{"argsIgnorePattern":"^_","caughtErrors":"none"}],"no-control-regex":0,"global-require":1,"camelcase":0,"no-console":0,"dot-notation":1,"no-else-return":2,"no-plusplus":2,"constructor-super":2,"prefer-arrow-callback":1,"object-shorthand":2,"object-curly-spacing":1,"object-property-newline":[1,{"allowMultiplePropertiesPerLine":true}],"no-var":2,"no-inner-declarations":0}},"dependencies":{"bluebird":"^3.5.0","events":"^1.1.1","lodash":"^4.17.4","shortid":"^2.2.8","ws":"^3.3.1"},"devDependencies":{"eslint":"^4.14.0"},"gitHead":"223bae4ae5c90368edbb380ee6cc676d0f41b5e2","_id":"twitchps@0.5.7","_npmVersion":"5.6.0","_nodeVersion":"8.4.0","_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"dist":{"integrity":"sha512-w2499b24mTiNuRxnIX3jqJmFaIFe1yTvwNkT67LJ4vdVMQQ6HvQ02PDUki0zRpX3dpkVjuMwiwFb7mRbZtcV6A==","shasum":"6fd8765162b7ae44d24c8f39765db29e27511724","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-0.5.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCJefZVR7RTH/GqDkUzzvjkJmgX2emlnQiseoHbhD/JhgIhAJNbid4buxPga/WG+jV+C5oWCsnAfntVI2/Br6FeBQp3"}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/twitchps-0.5.7.tgz_1514561464433_0.2268283071462065"},"directories":{}},"0.6.0":{"name":"twitchps","version":"0.6.0","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"test":"eslint \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","eslintConfig":{"env":{"es6":true,"node":true},"parserOptions":{"ecmaVersion":6},"extends":"eslint:recommended","rules":{"semi":[2,"always",{"omitLastInOneLineBlock":true}],"no-unused-vars":[2,{"argsIgnorePattern":"^_","caughtErrors":"none"}],"no-control-regex":0,"global-require":1,"camelcase":0,"no-console":0,"dot-notation":1,"no-else-return":2,"no-plusplus":2,"constructor-super":2,"prefer-arrow-callback":1,"object-shorthand":2,"object-curly-spacing":1,"object-property-newline":[1,{"allowMultiplePropertiesPerLine":true}],"no-var":2,"no-inner-declarations":0}},"dependencies":{"bluebird":"^3.5.0","events":"^2.0.0","lodash":"^4.17.4","shortid":"^2.2.8","ws":"^4.0.0"},"devDependencies":{"eslint":"^4.14.0"},"gitHead":"7121dcf64c4010bae6610776620a44ce5ed5bfaf","_id":"twitchps@0.6.0","_shasum":"692f28a1945b4c560b1f64ad5ce29ac09e4cbf31","_from":".","_npmVersion":"4.1.1","_nodeVersion":"7.3.0","_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"dist":{"shasum":"692f28a1945b4c560b1f64ad5ce29ac09e4cbf31","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-0.6.0.tgz","integrity":"sha512-vF/4FnF4BuysHfCNvRj25SyOVrkMfA8my5UJVch9Ei5b2gT9bMn8lrJBPh4sKM1rym5qkagShSzCXVpSFlqncw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDj20pazTDw7F5HoVWJbJ+Vd1r9oIiOBcuLifVAPNZwUQIgVnHs83M2hCap5uF1gsxRq+KSxz+kusMioYi11dGbsn4="}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/twitchps-0.6.0.tgz_1517885741397_0.9282800608780235"},"directories":{}},"0.6.0-pr1":{"name":"twitchps","version":"0.6.0-pr1","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"test":"eslint \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","eslintConfig":{"env":{"es6":true,"node":true},"parserOptions":{"ecmaVersion":6},"extends":"eslint:recommended","rules":{"semi":[2,"always",{"omitLastInOneLineBlock":true}],"no-unused-vars":[2,{"argsIgnorePattern":"^_","caughtErrors":"none"}],"no-control-regex":0,"global-require":1,"camelcase":0,"no-console":0,"dot-notation":1,"no-else-return":2,"no-plusplus":2,"constructor-super":2,"prefer-arrow-callback":1,"object-shorthand":2,"object-curly-spacing":1,"object-property-newline":[1,{"allowMultiplePropertiesPerLine":true}],"no-var":2,"no-inner-declarations":0}},"dependencies":{"bluebird":"^3.5.0","events":"^2.0.0","lodash":"^4.17.4","shortid":"^2.2.8","ws":"^4.0.0"},"devDependencies":{"eslint":"^4.14.0"},"_resolved":"","_integrity":"","_from":"file:twitchps-0.6.0-pr1.tgz","readme":"# [TwitchPS](https://github.com/jctrvlr/twitchps)\n [![dependency status](https://david-dm.org/jctrvlr/twitchps.svg)](https://david-dm.org/jctrvlr/twitchps)\n [![Downloads](https://img.shields.io/npm/dm/twitchps.svg?style=flat)](https://www.npmjs.org/package/twitchps) [![Version](https://img.shields.io/npm/v/twitchps.svg?style=flat)](https://www.npmjs.org/package/twitchps)  [![GitHub issues](https://img.shields.io/github/issues/jctrvlr/twitchPS.svg)](https://github.com/jctrvlr/twitchPS/issues) [![Build Status](https://travis-ci.org/jctrvlr/twitchPS.svg?branch=master)](https://travis-ci.org/jctrvlr/twitchPS)\n\nNeat little [Node](http://nodejs.org) library which lets you easily interact with the Twitch.tv PubSub service.\n\n*CAUTION* Not updated since Twitch changed API. Broken at the moment. Will fix in near future.\n\n #### Supported Topics\n\n|  Feature | Topic and Example | Required Scope  |  You are notified when …         |  \n|---|---|---|---|\n| Bits  | ```channel-bits-events-v1.<channel ID> ``` <br><br> Example: ``` channel-bits-events-v1.44322889 ```| Any scope  | Anyone cheers on a specified channel.  |\n| Channel Subscriptions  | ```channel-subscribe-events-v1.<channel ID> ``` <br><br> Example: ``` channel-subscribe-events-v1.44322889 ```| ```channel_subscriptions```  | Anyone subscribes (first month) or resubscribes (subsequent months) to a channel.  |   \n| Whispers  |  ```whispers.<user ID> ``` <br><br> Example: ``` whispers.44322889 ```  | ```chat_login```  | Anyone whispers the specified user.  |   \n| Stream Status  |   ```video-playback.<channel name> ``` <br><br> Example: ``` video-playback.summit1g ``` |  No scope needed |  Status on stream going up, down, and viewer count. **Not officially supported by Twitch**|\n| Moderator Action  |   ```chat_moderator_actions.<user_id_of_moderator>.<room_id> ``` <br><br> Example: ``` video-playback.summit1g ``` |  Any scope |  Sends event when moderator you are listening too bans, or unbans chat user. **Not officially supported by Twitch**|\n\n## Installation\n\n#### Node\n\nInstall via NPM\n\n~~~ bash\nnpm i twitchps --save\n~~~\n\n## Usage\n\n\n#### Include the Component\n##### Options\n| Name  | Type  |  Optional | Default  | Description  |\n|---|---|---|---|---|\n| init_topics  | JSON object  | False  | **NONE*  |  JSON Object array of initial topics with tokens. See below. |\n|  reconnect |  boolean | True  | True  |  Reconnect when disconnected from Pubsub servers.|\n| debug  | boolean  | True  | False  |  Turns debug console output on and off. |\n~~~ javascript\nconst TwitchPS = require('twitchps');\n\n// Initial topics are required\nlet init_topics = [{topic: 'video-playback.bajheera'}, {topic: 'whispers.44322889', token: 'nkuaf7ur3trg7ju37md1y3u5p52s3q'}];\n// Optional reconnect, debug options (Defaults: reconnect: true, debug: false)\n// var ps = new TwitchPS({init_topics: init_topics});\nvar ps = new TwitchPS({init_topics: init_topics, reconnect: false, debug: true});\n\nps.on('stream-up', (data) => {\n  console.log(data.time , data.channel_name);\n  // Use data here\n});\n~~~\n> Token changed for security reasons. You can generate a token [here](https://twitchapps.com/tmi/).\n> <br>In order to find the userID/channelID follow the instructions [here](https://dev.twitch.tv/docs/v5/guides/using-the-twitch-api/#translating-from-user-names-to-user-ids).\n> <br>For more detailed usage see [example application](https://github.com/jctrvlr/twitchps_example).\n\n#### Connection Events\n|  Event Name    | You are notified when …                      |\n|:--------------:|:--------------------------------------------:|\n| 'connected'    | A successful connection has been established |\n| 'disconnected' | The connection has been terminated           |\n| 'reconnect'    | An attempt will be made to reconnect         |\n\n#### Events emitted after subscribing/adding topics\n\n|              Event Name             |                                                                                                                                                                                                                      List of fields                                                                                                                                                                                                                      |\n|:-----------------------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|\n| 'bits'                              |  bits_used - {integer} <br> channel_id - {string} <br>channel_name - {string}<br>  chat_message - {string}<br> context - {string} <br> message_id - {string} <br>message_type - {string}<br> time - {string}<br>  total_bits_used - {integer} <br>user_id - {string} <br>user_name - {string}<br> version - {string}                                                                                                                                                                                   |\n| 'subscribe'                         | user_name - {string} <br>display_name - {string} <br>channel_name - {string}<br> user_id - {string} <br>channel_id- {string}<br> time- {string}<br> sub_plan- {string}<br> sub_plan_name - {string}<br> months - {integer}<br> context - {string}<br> sub_message - {object}<br> sub_message.message - {string}<br> sub_message.emotes - {array}<br>                                                                                                                                                         |\n| 'whisper_sent' & 'whisper_received' | id - {integer}<br> body - {string} <br>thread_id - {string}<br> sender - {JSON} <br>  sender.id - {integer} <br>  sender.username - {string}<br>   sender.display_name - {string}<br>   sender.color - {string} <br>  sender.badges - {Array}<br>   sender.emotes - {Array}<br> recipient - {JSON} <br>  recipient.id - {integer}<br>   recipient.username - {string} <br>  recipient.display_name - {string} <br>  recipient.color - {string} <br>  recipient.badges - {Array} <br>sent_ts - {integer}<br> nonce - {string} |\n| 'stream-up'                         | time - {integer} <br>channel_name- {string}<br> play_delay - {string}                                                                                                                                                                                                                                                                                                                                                                                            |\n| 'stream-down'                       | time - {integer} <br>channel_name- {string}                                                                                                                                                                                                                                                                                                                                                                                                                 |\n| 'viewcount'                         | time - {integer}<br> channel_name- {string} <br>viewers - {integer}                                                                                                                                                                                                                                                                                                                                                                                              |\n\n#### Listen to new topics\n~~~ javascript\nps.addTopic([{topic: \"video-playback.starladder_cs_en\"}]);\nps.addTopic([{topic: 'whispers.38290946', token: 'nkuaf7ur3trg7ju37md1y3u5p52s3q'}]);\n~~~\n> Token changed for security reasons.\n\n#### Un-listen (remove) to existing topics\n~~~ javascript\nps.removeTopic([{topic: \"video-playback.starladder_cs_en\"}]);\n~~~\n> Token not required.\n\n## Community\n- Follow [@itsjackc_](https://twitter.com/itsjackc_) on Twitter\n- Have a question that is not a bug report? - Tweet me [@itsjackc_](https://twitter.com/itsjackc_)\n- Found a bug ? [Submit an issue](https://github.com/jctrvlr/twitchps/issues/new).\n","readmeFilename":"README.md","_id":"twitchps@0.6.0-pr1","_npmVersion":"6.2.0","_nodeVersion":"10.8.0","_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"dist":{"integrity":"sha512-NEx9KdiQr7h/KZjNuwnu8FBNzKJr5F1n7vYfrESN5fymFgCCI/c1mao3kVV6NA6IMncEedF0+kdna6GQocNRIg==","shasum":"64b421a62a87fc9b5aa6b4c537782b41442dab49","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-0.6.0-pr1.tgz","fileCount":6,"unpackedSize":36018,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbn0z5CRA9TVsSAnZWagAAeSIP/1MHCXdg4d3Kr/7FG1iW\nI0EDyYhG7xO26Wxj9nCtscjlnnow4Gv+XSFTLhtjoshSgECvs+nE452x+bYs\naRM6v+ltd+6zOCED4UjQQ0yNrkTVpqLd3jXvWp17soSUeuy45IJIXjEU1VUl\nkf13rBdTua4e0bvl0SrwBukpG51DnF7OWaGEQlxyt9rZ8dLC3fs/p5ibSHbU\nQB6gVI1EfyPtKRzGVkHNjYFIDhC8lVd3wqhyA5WXfQGOPqQvtPi3Oha2nzda\nn7/qwIBlGGzGgZ0K0cYHmQE7uGeyetf2ozQ4DOPSTSZ6ji26t83HNU24c1yt\n6ck7o0fAhI3LGB4BsXhSsCYXtM75SKJfrc5P1I9/eMbFQ6LSO6DT9T0yYnUd\nfCmM3iHi3vNzG9AIWsBS8RSapcJw+zhmzRuABzm8Rbag6UapWxq90rKcowT8\nDS8GZHSTwf3NQf+u97tQZf2JWh4l0ym++0M68eUqSkiuH879b3AH5/87W40A\n8CPhu54oYozozB+mhzcKVsViF9eHyFPOf2aC165/Hpsp7U+8t7FIjQHlOs8M\naCWxjm1sTwO9ZTcOtDVIbXzNMtku556gs5PMgRTFaZg2kvcLg/6PD7M7b0xV\nN1uggfx5lyqrxSKT2PjZJKgn1Y/WH9M8rH2WG1mqyjy/MVdlRcDLharCzsi1\nRgLl\r\n=7qnf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEl5694+Mvso29yAuDT5jS0JHosYDDTQL/fwwog8LREFAiAiZNU4BUC7Cv5ZKjVwoIeFDNMIkc13lsSWVBQTLxo88Q=="}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/twitchps_0.6.0-pr1_1537166584528_0.6283852718743808"},"_hasShrinkwrap":false},"1.0.0":{"name":"twitchps","version":"1.0.0","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"test":"eslint \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","eslintConfig":{"env":{"es6":true,"node":true},"parserOptions":{"ecmaVersion":6},"extends":"eslint:recommended","rules":{"semi":[2,"always",{"omitLastInOneLineBlock":true}],"no-unused-vars":[2,{"argsIgnorePattern":"^_","caughtErrors":"none"}],"no-control-regex":0,"global-require":1,"camelcase":0,"no-console":0,"dot-notation":1,"no-else-return":2,"no-plusplus":2,"constructor-super":2,"prefer-arrow-callback":1,"object-shorthand":2,"object-curly-spacing":1,"object-property-newline":[1,{"allowMultiplePropertiesPerLine":true}],"no-var":2,"no-inner-declarations":0}},"dependencies":{"bluebird":"^3.5.0","events":"^3.0.0","lodash":"^4.17.4","shortid":"^2.2.8","ws":"^6.0.0"},"devDependencies":{"eslint":"^5.12.0"},"licenseText":"MIT License\n\nCopyright (c) 2017 John Cummings\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"twitchps@1.0.0","dist":{"shasum":"c98db4fe5c0a806307a10ea72f315b4e5af001e7","integrity":"sha512-3dcr4q9DZaw2maWt3LsZbci3N0Lfa1AcTNnZCa+peJHT5VdmA04igoXbmUA0aQyAGaqk2Ui/0iTuj1G23rIuxg==","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-1.0.0.tgz","fileCount":7,"unpackedSize":36946,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcPA7CCRA9TVsSAnZWagAAp90P/2swx0M0lMwNqnf+VJ5g\n/LdvF8+zAjYT/k8+RQxWlxeAxtNaNBn8xNDD46BFkug6z6oYIVBCFk/QVtOy\n/q3xiyt5hQR10Bu0eVe5q8asuL//pd+WBB6wvtksXkI/mX6wigIlpc/eYDKy\nLfcsXTMenZIwrt3hLfNYa9tJPuPh1189rl1hWU368K5W6GylyJKhE+iEbS6l\nSUyp9yxROcJOOGd32TrhWWklao5f4QJ3Zie+fXzEaNBtbx0zaw+rKZ0XDCgX\n+vntmuBt0rz8DSUwEmBInfp7Oh8lM/nnVjsczPz2hYl96Rsdh2yFmLMM8JHI\nK6L/KMQZoluR7dNN0Iktv7eJaeUYhzU8QXsHCvy/Yz+pnk2Fcl1QxEZD0cPL\nQSjBY299FzvQyGJl5nOvaXCCIG/lps5B/rd+aqRDxQN+i+96WalI7EsxkrF2\nuGnmz/qyLNCGNKUMNNLksTM1cHdH1uMt7m7spBc3pUmH5+Wk24RzBTht6IPL\nA2eCmNMFDdxWnN+32tXx349DDt7mvFUKgbYx2aDgeK6Vtc8bz1oo71pv/Uzn\nriXeTDH8rMto2p/nuRh7gYBfSTJDt8jx420a+5oHsiWk3M1xqEphoVwz/fYT\nyA8V/xldeKBiytc4YZobdAie+3cx3DCjJCnP/cfwPKlPRAl4DTkw/FcVoM6t\nofbJ\r\n=m5q8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDVyaFBGJKFC2VnOLnW3U9VXfX+7TJhZv0k1yZNwmHAXgIhAOYjHx6v/qsm8JFgI4EaJc1uUcS7Jlrixl3yGzh/+TeO"}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/twitchps_1.0.0_1547439809645_0.4868828098510709"},"_hasShrinkwrap":false},"1.1.0":{"name":"twitchps","version":"1.1.0","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"test":"eslint \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","eslintConfig":{"env":{"es6":true,"node":true},"parserOptions":{"ecmaVersion":6},"extends":"eslint:recommended","rules":{"semi":[2,"always",{"omitLastInOneLineBlock":true}],"no-unused-vars":[2,{"argsIgnorePattern":"^_","caughtErrors":"none"}],"no-control-regex":0,"global-require":1,"camelcase":0,"no-console":0,"dot-notation":1,"no-else-return":2,"no-plusplus":2,"constructor-super":2,"prefer-arrow-callback":1,"object-shorthand":2,"object-curly-spacing":1,"object-property-newline":[1,{"allowMultiplePropertiesPerLine":true}],"no-var":2,"no-inner-declarations":0}},"dependencies":{"bluebird":"^3.5.0","events":"^3.0.0","lodash":"^4.17.4","shortid":"^2.2.8","ws":"^6.0.0"},"devDependencies":{"eslint":"^5.12.0"},"gitHead":"8c910df5f682e9f1b86ddfdbf66e5264a6fe84e5","_id":"twitchps@1.1.0","_npmVersion":"6.5.0","_nodeVersion":"10.14.1","_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"dist":{"integrity":"sha512-HNmAFz36cO8oJIcmylcD5ecqRYkQE0h2QgYWK/RQyMbxh1RlV7fr18kPQEuLzgap2oUhL5Qini0k0nRh2pKZTw==","shasum":"1e1bb93bec1ae42c388ad6dce2ed47ff24049447","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-1.1.0.tgz","fileCount":6,"unpackedSize":37110,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcWKFJCRA9TVsSAnZWagAApocP/1BpJhn9wVe0xRLftx4Z\nGsHF7pvSf9TjrsTipgzQ75IfH6uLVpVg2kemf/gOWMANdQJbPFnEJzbQoAYv\npp2Q1ZfnWykZUQ69FcOLvC+ICdOtjx+4c0I/p4jFXJDiAO2qNi5bXaKiCZcV\nPU6nOfSIQ0sX082HhpU0jmmT+U3nA31Snnpp7hxQXglenCXArRdQsFZNI7A6\nShbKopU3LSRBkiOQHWpnbZbf9P6fG5MXbJwzEWKfKXQ693kEuGTfTyLO/rP5\nEO64rglO8f0k5LuHFcfFwKE2WnXzfcxz09FUzxkMdF27VK6WN3CfaZQatSf/\n0qIJiwgfF0t8/bvHe994H+3DW13GpyQyW4BmNrwGMt58mSkrrF1eIth18CJG\nCzzIpGGz+RjpBamBQQ+RIO0+lbdeKd/Ys4Lt7BUqMNtu+77LJZPmwbitzmOu\nfhITFI0x2d6hUghnGLWo5bFe+cpc0zoW4nDLLJ12xBoaSNd/RmbtP65uSb1V\nW5fn+enhD96yBXPchDa6S1SkH83x7llIrPIyyP6Zw7VjPoBMYPD3mJ4QELfM\nGV0aPzdkzCySPLzB2HY+qkWgqUWBUi2ZgbRLd3CQYrJdU2uN8AUA2wQu2yO6\nuq84w2CLi1YO+psu5J7YMl4Cmt6bqvNeYDCRtsWNBaXTb0KcaQ6XKwbQjeO0\n0t4V\r\n=3OCq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE9eVFPexUHt30uRL/ZrZaCdJMmCMQI0SH8PzURy21fcAiACPwiodEVWi/uS/1CZ/Zulr56szfvU6MoPL6kCxx7/BQ=="}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/twitchps_1.1.0_1549312328899_0.7936752233316087"},"_hasShrinkwrap":false},"1.2.0":{"name":"twitchps","version":"1.2.0","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"test":"eslint \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","eslintConfig":{"env":{"es6":true,"node":true},"parserOptions":{"ecmaVersion":6},"extends":"eslint:recommended","rules":{"semi":[2,"always",{"omitLastInOneLineBlock":true}],"no-unused-vars":[2,{"argsIgnorePattern":"^_","caughtErrors":"none"}],"no-control-regex":0,"global-require":1,"camelcase":0,"no-console":0,"dot-notation":1,"no-else-return":2,"no-plusplus":2,"constructor-super":2,"prefer-arrow-callback":1,"object-shorthand":2,"object-curly-spacing":1,"object-property-newline":[1,{"allowMultiplePropertiesPerLine":true}],"no-var":2,"no-inner-declarations":0}},"dependencies":{"events":"^3.0.0","shortid":"^2.2.8","ws":"^6.0.0"},"devDependencies":{"eslint":"^5.12.0"},"gitHead":"a1f069df0f2259bca8262714175d474c995938b1","_id":"twitchps@1.2.0","_nodeVersion":"10.14.1","_npmVersion":"6.7.0","dist":{"integrity":"sha512-hTHUqugtOaIJDbsTSJNvec+cYOASz1F4sZjnr9NEVv3nR+0xuPZd7uDRImaLyPDLJLBgXIatDK7KM5kB+iowMQ==","shasum":"fc6dc97faad0eeac40eea305c583e474500201d5","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-1.2.0.tgz","fileCount":6,"unpackedSize":37455,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcbLQtCRA9TVsSAnZWagAAkBEP/2YkKzWTRTuuQa1cNjO/\n7QFvDvydpTEDUuSc5zFA5xUBU0O/vzcfjdb8KvycnuMFPgBs/huMm/a04ANQ\ne3/ngLd9OpUUr6TLGGz1ZLdaacaO3U8Uz7cJjSGWrZ2hyV2qOwxk1cdAjBZL\niHd5TBQpM/ED4Q3Qh0EmtP3p7VipF+om80ODcM7X+OedFSLKqcoURHZeVr/d\nZjNl8O3nG9acUdkVWU3Vj5dRpn0Pfi5pACDIiPn/fpvLHZNwtmhecNfzM6Bv\nJio30s5ySCQhYJEaloEYBnTjHU5wSWeVeup5qNe6gV4eV4sMaLGKx/Krl4Hv\nT2eqmQ1ncx1FBpomQsw9qFd7jz0e0gjs6Wkyf5FGfbkC/HNdFCoFQv/7qauw\nmj0W2B9C/v/H211dhJW3cbYx16Nvx1ej1YjqSv9yX4465w3o63hkn4nIpPMU\n5OeeaUJTUpKvkHe+H4oCguMVstPJMoohpvUbhQdzmdZfXhR06Hn4MW/JOK1J\nhpsQHlDRJ0+NUpN2hIybg6Q29o8v04gpG46wo3gi8bh0FDwG+E5d+NOqwXJN\nKnReokAyvOqfsgWv0qYfn2ViN9XsvtYm7Md4parsVpFVxVLkIN7ZXwC8nFI+\nEkO/wCu0Y6xi+HR4c1mOxDjk8gyb4K4xKUc+TeeFuKqhnjNJrBSJynHjRvCz\ngSXf\r\n=QDQJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDb2FSZmGxj42k88Hg3Yr8nUiTvl9yyZBrH/7V0gKe+IAIgTh8GWku3Ch6not4GXilOT2ZMZTd93Fl3KN2AqRnHCmI="}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/twitchps_1.2.0_1550627884396_0.6129650331564889"},"_hasShrinkwrap":false},"1.3.0":{"name":"twitchps","version":"1.3.0","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"lint":"eslint \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","eslintConfig":{"env":{"es6":true,"node":true},"parserOptions":{"ecmaVersion":6},"extends":"eslint:recommended","rules":{"semi":[2,"always",{"omitLastInOneLineBlock":true}],"no-unused-vars":[2,{"argsIgnorePattern":"^_","caughtErrors":"none"}],"no-control-regex":0,"global-require":1,"camelcase":0,"no-console":0,"dot-notation":1,"no-else-return":2,"no-plusplus":2,"constructor-super":2,"prefer-arrow-callback":1,"object-shorthand":2,"object-curly-spacing":1,"object-property-newline":[1,{"allowMultiplePropertiesPerLine":true}],"no-var":2,"no-inner-declarations":0}},"dependencies":{"events":"^3.0.0","shortid":"^2.2.8","ws":"^7.0.0"},"devDependencies":{"eslint":"~6.8.0"},"gitHead":"7e1edc2b61b5b79a4023465c2480e32164a40789","_id":"twitchps@1.3.0","_nodeVersion":"13.12.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-+Al+TrMGV9OZOePwZmfvIHhaCX1sOc3kxZcT6uf6FUm06AShmuA8B+fBMoq0ZSk2EM0d7YNofjmwqeanmH1brg==","shasum":"d126684dbf47e7503acdd094d15fbb2910065a67","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-1.3.0.tgz","fileCount":6,"unpackedSize":41579,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejmt8CRA9TVsSAnZWagAAas0P/2A79JkIc4bqywjDycKv\nV1W7vt/V9/dXH03ngfuFU9YDwGc0etYkxiGta1OwJlw+oAoi2gArYjJBTP2I\nCooaNIfQNDW83SvylhETND79qvM3l9kyy/B/SZ+HV40x7Vxc2FQacCsTnbjR\nd95C2X+gsGtSWUcKSW0410wNfLNwe3ug+k+b/w6e6UAhH3j1ShDKXZ1nNXzp\n5D0VWAsxGPQfYdrQgGtmDAWWbjtDQAEGSydWl6YpONulGuRmp96B3/QuCFMz\nFVj+S2zi3gPZ3UBr8p1TeBZWPQOCG3RfzdTM2Lh7XhBsG5E3Z3Amc+7mhVUL\nst13X0Xcyjjf7bhokRcZ9/U8jdsAIgqfqM6TbpJvcX2Ma3YxhDNmsbuSrvVr\nfFSlmNxfCoyxaesMBfy5r2kX1Dy//8xJHHMEUlpSK065KmPYb+kfykXp3PiR\nx/tt2V4hU69d+cyp/8RGxLsIoledHsP52mIjAML2tZJKblep8Ygyg4i7RA1A\n7EIagJKWW3ISMwB13iypdV/l8KHihP39nKuFTXf+lVHo53d/KPWSQ6QNSk3Y\nlbMtt3qvC+CoeW1JpPnP9J+ptx9fd8KI2qa0bjv5gZ98RxYYJuC25YVerf7N\nuEZ8B0owzz4Axg245qbH+CJPcEw2ZNCk/DQmYcSYud+dTRp0+l1Q4GnK5eNC\n8XaH\r\n=gfDm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDI0M7lMx6LRQXp+mgxqhE4lWJieVEzMsFGTsZor5UYxgIhAIHXSZdhoHNwKRBq6RQ8cmH0Qxz4C4UmL8OE5fJ3kl5D"}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/twitchps_1.3.0_1586391931761_0.21975541238389185"},"_hasShrinkwrap":false},"1.4.0":{"name":"twitchps","version":"1.4.0","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"lint":"eslint \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","eslintConfig":{"env":{"es6":true,"node":true},"parserOptions":{"ecmaVersion":6},"extends":"eslint:recommended","rules":{"semi":[2,"always",{"omitLastInOneLineBlock":true}],"no-unused-vars":[2,{"argsIgnorePattern":"^_","caughtErrors":"none"}],"no-control-regex":0,"global-require":1,"camelcase":0,"no-console":0,"dot-notation":1,"no-else-return":2,"no-plusplus":2,"constructor-super":2,"prefer-arrow-callback":1,"object-shorthand":2,"object-curly-spacing":1,"object-property-newline":[1,{"allowMultiplePropertiesPerLine":true}],"no-var":2,"no-inner-declarations":0}},"dependencies":{"events":"^3.0.0","shortid":"^2.2.8","ws":"^7.0.0"},"devDependencies":{"eslint":"~6.8.0"},"gitHead":"90c2ca5958079b68fc1568f67c245dbb44384971","_id":"twitchps@1.4.0","_nodeVersion":"13.12.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-Ss8LPneZI9oRyirIiQ5pZk7d1b1HYRp0c8GJUIhtB2VsW5cWUMxnPCw06BAtOIOEJHtdYGN/BYuk/fUIzXFAiw==","shasum":"8df6aa30580ba12e3651fdbd13141515d22a1a2a","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-1.4.0.tgz","fileCount":6,"unpackedSize":44213,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJemdP5CRA9TVsSAnZWagAAPbcP/RvXm79tKDJuPId6OxEb\nQNSFGbU97LuOuMi5JVl/u1IvhholZIMytYLdLj1u3yKp03ukyXYJ/RpKqG+V\nFX31EwmGBEiLRpnOziTzjqZK2i6YHh68QGckcPwXAev2u7+pRCFwrtmhZWQ3\n5WjjltZXQEYFN65doiV9tyj1iNciy5OgXQSwWQp3M7o4nTKQ1mVU8Jx1mTW3\nUI0K9TrvqYlLxvveWlcbLFIePOlMLu84jVkL4A6Frz/i/dF2zJX0LmKz//DA\nibbi+Yj3OiAm98xGsqEf7bDv0tJ0sFX6lwZVX83uIBG192Y72Bm7o8omjhwk\nypjWAbby8qjojaTXdfAdWduI8sUi5Jft43Jt5sNOHrPen9BXVrBvHipiXIUW\n3TUyg5DiCZzlHEzbiVGbMs6seu2WaacaytzLCnlXQBfe+/07NrAf57I852GJ\nA9C0QreyrI0HgeWV7n3BIBGUkkmWlJoUMCeGLFX+pSgb/oSc1hm3G/03Om0N\nVk20GDtT4NkpWOOvcexGoHN52NaN6gGjgZ5hS9md3tXakWccyzHN2183IQQ+\n9NEpRWekSzpT8wmbu0zT39oV3wSriHn/yldUCw4AtrG0gCZ0JW96LG98Gcw1\nCJ0zQFoKUuKiQllhIKpAtS+NnKjVEZdOmroYtRgXbatLbUx0+Vnv39xBb+MN\n4r/0\r\n=0d6w\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCuXOXYcgd5PBrPue8mJiG6XW04T7DQsu5J2tzJ3ev2WgIgP3nOlUXONEXA8SEkfxc5DHZ93cOpxGm1uipJuFLgwk8="}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/twitchps_1.4.0_1587139576909_0.2429713888713827"},"_hasShrinkwrap":false},"1.4.1-0":{"name":"twitchps","version":"1.4.1-0","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"lint":"eslint \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","eslintConfig":{"env":{"es6":true,"node":true},"parserOptions":{"ecmaVersion":6},"extends":"eslint:recommended","rules":{"semi":[2,"always",{"omitLastInOneLineBlock":true}],"no-unused-vars":[2,{"argsIgnorePattern":"^_","caughtErrors":"none"}],"no-control-regex":0,"global-require":1,"camelcase":0,"no-console":0,"dot-notation":1,"no-else-return":2,"no-plusplus":2,"constructor-super":2,"prefer-arrow-callback":1,"object-shorthand":2,"object-curly-spacing":1,"object-property-newline":[1,{"allowMultiplePropertiesPerLine":true}],"no-var":2,"no-inner-declarations":0}},"dependencies":{"events":"^3.0.0","shortid":"^2.2.8","ws":"^7.0.0"},"devDependencies":{"eslint":"~6.8.0"},"readme":"# [TwitchPS](https://github.com/jctrvlr/twitchps)\n\n [![dependency status](https://david-dm.org/jctrvlr/twitchps.svg)](https://david-dm.org/jctrvlr/twitchps)\n [![Downloads](https://img.shields.io/npm/dm/twitchps.svg?style=flat)](https://www.npmjs.org/package/twitchps) [![Version](https://img.shields.io/npm/v/twitchps.svg?style=flat)](https://www.npmjs.org/package/twitchps)  [![GitHub issues](https://img.shields.io/github/issues/jctrvlr/twitchPS.svg)](https://github.com/jctrvlr/twitchPS/issues) [![Build Status](https://travis-ci.org/jctrvlr/twitchPS.svg?branch=master)](https://travis-ci.org/jctrvlr/twitchPS)\n\nNeat little [Node](http://nodejs.org) library which lets you easily interact with the Twitch.tv PubSub service.\n\n## Supported Topics\n\n|  Feature | Topic and Example | Required Scope  |  You are notified when …         |  \n|---|---|---|---|\n| Bits  | ```channel-bits-events-v1.<channel ID>``` <br><br> ```channel-bits-events-v2.<channel ID>``` <br><br> Example: ```channel-bits-events-v1.44322889```| ```bits:read```  | Anyone cheers on a specified channel.  |\n| Bits Badge Notification  | ```channel-bits-badge-unlocks.<channel_id>``` <br><br> Example: ```channel-bits-badge-unlocks.44322889```| ```bits:read``` | Message sent when a user earns a new Bits badge in a particular channel, and chooses to share the notification with chat. |\n| Channel Points | ```channel-points-channel-v1.<channel_id>```<br><br> Example: ```channel-points-channel-v1.44322889```| ```channel:read:redemptions``` | A custom reward is redeemed in a channel. |\n| Channel Subscriptions  | ```channel-subscribe-events-v1.<channel ID>``` <br><br> Example: ```channel-subscribe-events-v1.44322889```| ```channel_subscriptions```  | Anyone subscribes (first month, gift sub) or resubscribes (subsequent months) to a channel.  |\n| Whispers  |  ```whispers.<user ID>``` <br><br> Example: ```whispers.44322889```  | ```whispers:read```  | Anyone whispers the specified user.  |\n| Stream Status  |   ```video-playback.<channel name>``` <br><br> Example: ```video-playback.summit1g``` |  No scope needed |  Status on stream going up, down, and viewer count. **Not officially supported by Twitch**|\n| Moderator Action  | ```chat_moderator_actions.<channel ID>``` <br><br> Example: ```chat_moderator_actions.44322889``` | ```channel:moderate``` | A moderator performs an action in the channel. |\n\n## Installation\n\n#### Node\n\nInstall via NPM\n\n~~~ bash\nnpm i twitchps --save\n~~~\n\n## Usage\n\n### Include the Component\n\n#### Options\n\n| Name  | Type  |  Optional | Default  | Description  |\n|---|---|---|---|---|\n| init_topics  | JSON object  | False  | **NONE*  |  JSON Object array of initial topics with tokens. See below. |\n|  reconnect |  boolean | True  | True  |  Reconnect when disconnected from Pubsub servers.|\n| debug  | boolean  | True  | False  |  Turns debug console output on and off. |\n\n~~~ javascript\nconst TwitchPS = require('twitchps');\n\n// Initial topics are required\nlet init_topics = [{topic: 'video-playback.bajheera'}, {topic: 'whispers.44322889', token: 'nkuaf7ur3trg7ju37md1y3u5p52s3q'}];\n// Optional reconnect, debug options (Defaults: reconnect: true, debug: false)\nvar ps = new TwitchPS({init_topics: init_topics, reconnect: false, debug: true});\n\nps.on('stream-up', (data) => {\n  console.log(data.time , data.channel_name);\n  // Use data here\n});\n~~~\n\n> Token changed for security reasons. You can generate a token [here](https://twitchapps.com/tmi/).\\\n> In order to find the userID/channelID follow the instructions [here](https://dev.twitch.tv/docs/v5/guides/using-the-twitch-api/#translating-from-user-names-to-user-ids).\\\n> For more detailed usage see [example application](https://github.com/jctrvlr/twitchps_example).\n\n#### Connection Events\n\n|  Event Name    | You are notified when …                      |\n|:--------------:|:--------------------------------------------:|\n| 'connected'    | A successful connection has been established |\n| 'disconnected' | The connection has been terminated           |\n| 'reconnect'    | An attempt will be made to reconnect         |\n\n#### Events emitted after subscribing/adding topics\n\n|              Event Name             |                                                                                                                                                                                                                      List of fields                                                                                                                                                                                                                      |\n|:-----------------------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|\n| 'bits' | badge_entitlement - {object} (v2 only) <br> bits_used - {integer} <br> channel_id - {string} <br>channel_name - {string}<br>  chat_message - {string}<br> context - {string} <br> is_anonymous - {boolean} (v2 only) <br> message_id - {string} <br>message_type - {string}<br> time - {string}<br>  total_bits_used - {integer} <br>user_id - {string} <br>user_name - {string}<br> version - {string} |\n| 'bits-badge' | user_id - {string} - ID of user who earned the new Bits badge <br> user_name - {string} - Login of user who earned the new Bits badge <br> channel_id - {string} - ID of channel where user earned the new Bits badge <br> channel_name - {string} - Login of channel where user earned the new Bits badge <br> badge_tier - {int} - Value of Bits badge tier that was earned (1000, 10000, etc.) <br> chat_message - {string} - [Optional] Custom message included with share <br> time - {string} - Time when the bits were used. RFC 3339 format |\n| 'channel-points' | timestamp - {string} - Time the pubsub message was sent <br> redemption - {object} - Data about the redemption, includes unique id and user that redeemed it <br> channel_id - {string} - ID of the channel in which the reward was redeemed. <br> redeemed_at - {string} - Timestamp in which a reward was redeemed <br> reward - {object} - Data about the reward that was redeemed <br> user_input - {string} - [Optional] A string that the user entered if the reward requires input <br> status - {string} - reward redemption status, will be FULFULLED if a user skips the reward queue, UNFULFILLED otherwise |\n| 'subscribe' | user_name - {string} <br>display_name - {string} <br>channel_name - {string}<br> user_id - {string} <br>channel_id- {string}<br> time- {string}<br> sub_plan- {string}<br> sub_plan_name - {string}<br> months - {integer}<br> cumulative_months - {integer}<br> context - {string}<br> sub_message - {object}<br> sub_message.message - {string}<br> sub_message.emotes - {array}<br>  recipient_id - {integer}<br>  recipient_user_name - {string}<br>  recipient_display_name - {string} |\n| 'whisper_sent' & 'whisper_received' | id - {integer}<br> body - {string} <br>thread_id - {string}<br> sender - {JSON} <br>  sender.id - {integer} <br>  sender.username - {string}<br>   sender.display_name - {string}<br>   sender.color - {string} <br>  sender.badges - {Array}<br>   sender.emotes - {Array}<br> recipient - {JSON} <br>  recipient.id - {integer}<br>   recipient.username - {string} <br>  recipient.display_name - {string} <br>  recipient.color - {string} <br>  recipient.badges - {Array} <br>sent_ts - {integer}<br> nonce - {string} |\n| 'stream-up' | time - {integer} <br>channel_name- {string}<br> play_delay - {string} |\n| 'stream-down' | time - {integer} <br>channel_name- {string} |\n| 'viewcount' | time - {integer}<br> channel_name- {string} <br>viewers - {integer} |\n\n#### Listen to new topics\n\n~~~ javascript\nps.addTopic([{topic: \"video-playback.starladder_cs_en\"}]);\nps.addTopic([{topic: 'whispers.38290946', token: 'nkuaf7ur3trg7ju37md1y3u5p52s3q'}]);\n~~~\n\n> Token changed for security reasons.\n\n#### Un-listen (remove) to existing topics\n\n~~~ javascript\nps.removeTopic([{topic: \"video-playback.starladder_cs_en\"}]);\n~~~\n\n> Token not required.\n\n## Community\n\n- Follow [@thecuriouseng](https://twitter.com/thecuriouseng) on Twitter\n- Have a question that is not a bug report? - Tweet me [@thecuriouseng](https://twitter.com/thecuriouseng)\n- Found a bug ? [Submit an issue](https://github.com/jctrvlr/twitchps/issues/new).\n","readmeFilename":"README.md","gitHead":"fb10b8cd347ef9e0173f5e08f738fa71e6f58c93","_id":"twitchps@1.4.1-0","_nodeVersion":"13.12.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-65w8lepCmJQHgSECq+ACq1bHnt7FQGB/GETkj8qZLgWTcriAi4C9qmTUd20ryrYSjASuDqNHU7E+3XEAw3s/mw==","shasum":"dd15b65b8465ad4a2faf677293d674db3d22a53a","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-1.4.1-0.tgz","fileCount":6,"unpackedSize":44276,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeoHQiCRA9TVsSAnZWagAAQsYP/2PHEQK9Z2yUxnrrLD2Y\nOFGiHVnY6v4KCgLqtEOYLkEcMbQeybDVQebrSeic7g9iOWIU4Y7lRchkzOGN\nxfagwLLbHW/EdYd3N6DSwt6tA1EVDWtVAI1OUrBN2mxdd/cUeMp3Ju04UEkV\n0HdBfs99gBMwnrAhlSMaP/cxRqhIgBT4RgFiwiwSYZlc9hmQpI7xZvM79l3Y\n0qT/nCFId2l++qL8cz3IQ09GJsmSK1CnMu/bB/qnhGfXov9/j/W2y1S72Anj\nUHbx4pbmZUHfawMrW9366GJa1XrFB8u5KfvAx2l4bogOZe3ddTbKUH0Auosq\nfSpp4TCmuu0FD90nCjMs4/+2yeqEUjMKlleonuXydrcH8pcUL2OD99CS+39G\nwLoSfKZovB2Krmb6xn4YBn3c1vxM6eZTMJNapt4o8YPGHdBVvj1MTLe0jQSd\nttLuR7g1EcqEldsxa/JACsKx5fzQh/cqXK3o6VlDSqnIIhvKNW+An0DRYI/I\ntqenNmXt+iS9zwyDwTIU141ylzq98UOj0sPeoeDVog7dq7Gmt3ky+H79Z+IF\nA1uWxs7Q5XZSFx6ldwEXPbDFzKmtF48omPM+2lOPTe8SVcLMSUoBKPgnwFRM\n9lTa2Nw7uBFwxCvkK7VTS1t/Qy13rM1VVtdzh0B7wEUmsFkY+UHixnhY5EVH\n5bcf\r\n=6mtw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDDlDdRptMiTpyM76L5/jodGpMJpqO2Vu+B+w8Fb0U1GwIgErNA7sGqN7km75zU70Et04iImthoAsmCz/VAQ9rhMho="}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/twitchps_1.4.1-0_1587573794048_0.9555867141957859"},"_hasShrinkwrap":false},"1.5.0":{"name":"twitchps","version":"1.5.0","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"lint":"eslint \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","eslintConfig":{"env":{"es6":true,"node":true},"parserOptions":{"ecmaVersion":6},"extends":"eslint:recommended","rules":{"semi":[2,"always",{"omitLastInOneLineBlock":true}],"no-unused-vars":[2,{"argsIgnorePattern":"^_","caughtErrors":"none"}],"no-control-regex":0,"global-require":1,"camelcase":0,"no-console":0,"dot-notation":1,"no-else-return":2,"no-plusplus":2,"constructor-super":2,"prefer-arrow-callback":1,"object-shorthand":2,"object-curly-spacing":1,"object-property-newline":[1,{"allowMultiplePropertiesPerLine":true}],"no-var":2,"no-inner-declarations":0}},"dependencies":{"events":"^3.0.0","shortid":"^2.2.8","ws":"^7.0.0"},"devDependencies":{"eslint":"~6.8.0"},"gitHead":"1efb4634ccf2c818bab84471a8d07684f6db0af3","_id":"twitchps@1.5.0","_nodeVersion":"13.12.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-6M/ZeSkB7DlIu4XmSGuKLd2OuzYtq1kTR3kvIFYUaWKRxsoOPr+P/wi85wms+8rSLPXwpTEKlwg10epKfK2AKA==","shasum":"61b61b7505df6cf27a979ba289670c6e08a10789","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-1.5.0.tgz","fileCount":6,"unpackedSize":44274,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeoIeCCRA9TVsSAnZWagAAxNkP/Any9ipU3j2je6BOPbNL\nfbUrrnrqrPw6V+q/b9POuVIzIP4T8U2AHxOAWRXBiKiNkYoJKENOyPPXxe1n\n1vTfsQ3vmyQRxqkYqHzZtUPYNQzuD4Nhq6Y/VuM8pU8XP9p0q+RNAu7z8jTJ\nsPrm0vNtkh+2U8l6EPLSSKFSta+0HbKsx42uuUz1zCCtGv8phteDMjRHbquS\na5d7HD46KP90KsmYyisaS/6F2B5JykmlLzru6YiV1MYQ8uwnhv8QHogYqmUW\n/HwTzjVi0pnauCUXkMTBrdJa18D8xDgkcghj4+p0oAsQVtJLBMeTrCnPFts/\nPyQAg5iJ6YphltwUzaEkN3eznmJycKY3UvvMEdYm8fnpVeHYNdvwyihIPDOU\nvGH5gkvS2Dh4BwiN9Y0BxhV+qG5fPped1nv9P2byBTt/tgyMILTsFjUGNnSZ\nHfIG6axZKL8glZT3CGoCGvdaFT20K3HzNUm+j2CDBFj4mPTz6tByG1gWPFIA\n0o2ebPG55wIIX1/NbH7IJCsr6HZ2yh6TidRnKq64nXe80Y8hHT5Ceku/8FK7\non9H4xR9XEcC0oRq09faZxcIvaExi8mYLs5QYYYkgLUNVBpbSQdGB/zYGncF\ndVPqzxStEFbMWYLdb8wlM8sojb+Gsg9UyGS7NQ/LJEeqhBVHSeBQCn5YdeBw\n3IKP\r\n=Vz/A\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC8uBzdwDfAWFgw+EJPElvMS/Ye/JBIIpsm5CL0uN8FOAIgMz7+eeUYfcQEVxUGKSW21U2S0ScUtMp+Gx/B3WRPO4E="}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/twitchps_1.5.0_1587578754303_0.8509998753843453"},"_hasShrinkwrap":false},"1.5.1-0":{"name":"twitchps","version":"1.5.1-0","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"lint":"eslint \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","eslintConfig":{"env":{"es6":true,"node":true},"parserOptions":{"ecmaVersion":6},"extends":"eslint:recommended","rules":{"semi":[2,"always",{"omitLastInOneLineBlock":true}],"no-unused-vars":[2,{"argsIgnorePattern":"^_","caughtErrors":"none"}],"no-control-regex":0,"global-require":1,"camelcase":0,"no-console":0,"dot-notation":1,"no-else-return":2,"no-plusplus":2,"constructor-super":2,"prefer-arrow-callback":1,"object-shorthand":2,"object-curly-spacing":1,"object-property-newline":[1,{"allowMultiplePropertiesPerLine":true}],"no-var":2,"no-inner-declarations":0}},"dependencies":{"events":"^3.0.0","shortid":"^2.2.8","ws":"^7.0.0"},"devDependencies":{"eslint":"~6.8.0"},"readme":"# [TwitchPS](https://github.com/jctrvlr/twitchps)\n\n [![dependency status](https://david-dm.org/jctrvlr/twitchps.svg)](https://david-dm.org/jctrvlr/twitchps)\n [![Downloads](https://img.shields.io/npm/dm/twitchps.svg?style=flat)](https://www.npmjs.org/package/twitchps) [![Version](https://img.shields.io/npm/v/twitchps.svg?style=flat)](https://www.npmjs.org/package/twitchps)  [![GitHub issues](https://img.shields.io/github/issues/jctrvlr/twitchPS.svg)](https://github.com/jctrvlr/twitchPS/issues) [![Build Status](https://travis-ci.org/jctrvlr/twitchPS.svg?branch=master)](https://travis-ci.org/jctrvlr/twitchPS)\n\nNeat little [Node](http://nodejs.org) library which lets you easily interact with the Twitch.tv PubSub service.\n\n## Supported Topics\n\n|  Feature | Topic and Example | Required Scope  |  You are notified when …         |  \n|---|---|---|---|\n| Bits  | ```channel-bits-events-v1.<channel ID>``` <br><br> ```channel-bits-events-v2.<channel ID>``` <br><br> Example: ```channel-bits-events-v1.44322889```| ```bits:read```  | Anyone cheers on a specified channel.  |\n| Bits Badge Notification  | ```channel-bits-badge-unlocks.<channel_id>``` <br><br> Example: ```channel-bits-badge-unlocks.44322889```| ```bits:read``` | Message sent when a user earns a new Bits badge in a particular channel, and chooses to share the notification with chat. |\n| Channel Points | ```channel-points-channel-v1.<channel_id>```<br><br> Example: ```channel-points-channel-v1.44322889```| ```channel:read:redemptions``` | A custom reward is redeemed in a channel. |\n| Channel Subscriptions  | ```channel-subscribe-events-v1.<channel ID>``` <br><br> Example: ```channel-subscribe-events-v1.44322889```| ```channel_subscriptions```  | Anyone subscribes (first month, gift sub) or resubscribes (subsequent months) to a channel.  |\n| Whispers  |  ```whispers.<user ID>``` <br><br> Example: ```whispers.44322889```  | ```whispers:read```  | Anyone whispers the specified user.  |\n| Stream Status  |   ```video-playback.<channel name>``` <br><br> Example: ```video-playback.summit1g``` |  No scope needed |  Status on stream going up, down, and viewer count. **Not officially supported by Twitch**|\n| Moderator Action  | ```chat_moderator_actions.<channel ID>``` <br><br> Example: ```chat_moderator_actions.44322889``` | ```channel:moderate``` | A moderator performs an action in the channel. |\n\n## Installation\n\n#### Node\n\nInstall via NPM\n\n~~~ bash\nnpm i twitchps --save\n~~~\n\n## Usage\n\n### Include the Component\n\n#### Options\n\n| Name  | Type  |  Optional | Default  | Description  |\n|---|---|---|---|---|\n| init_topics  | JSON object  | False  | **NONE*  |  JSON Object array of initial topics with tokens. See below. |\n|  reconnect |  boolean | True  | True  |  Reconnect when disconnected from Pubsub servers.|\n| debug  | boolean  | True  | False  |  Turns debug console output on and off. |\n\n~~~ javascript\nconst TwitchPS = require('twitchps');\n\n// Initial topics are required\nlet init_topics = [{topic: 'video-playback.bajheera'}, {topic: 'whispers.44322889', token: 'nkuaf7ur3trg7ju37md1y3u5p52s3q'}];\n// Optional reconnect, debug options (Defaults: reconnect: true, debug: false)\nvar ps = new TwitchPS({init_topics: init_topics, reconnect: false, debug: true});\n\nps.on('stream-up', (data) => {\n  console.log(data.time , data.channel_name);\n  // Use data here\n});\n~~~\n\n> Token changed for security reasons. You can generate a token [here](https://twitchapps.com/tmi/).\\\n> In order to find the userID/channelID follow the instructions [here](https://dev.twitch.tv/docs/v5/guides/using-the-twitch-api/#translating-from-user-names-to-user-ids).\\\n> For more detailed usage see [example application](https://github.com/jctrvlr/twitchps_example).\n\n#### Connection Events\n\n|  Event Name    | You are notified when …                      |\n|:--------------:|:--------------------------------------------:|\n| 'connected'    | A successful connection has been established |\n| 'disconnected' | The connection has been terminated           |\n| 'reconnect'    | An attempt will be made to reconnect         |\n\n#### Events emitted after subscribing/adding topics\n\n|              Event Name             |                                                                                                                                                                                                                      List of fields                                                                                                                                                                                                                      |\n|:-----------------------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|\n| 'bits' | badge_entitlement - {object} (v2 only) <br> bits_used - {integer} <br> channel_id - {string} <br>channel_name - {string}<br>  chat_message - {string}<br> context - {string} <br> is_anonymous - {boolean} (v2 only) <br> message_id - {string} <br>message_type - {string}<br> time - {string}<br>  total_bits_used - {integer} <br>user_id - {string} <br>user_name - {string}<br> version - {string} |\n| 'bits-badge' | user_id - {string} - ID of user who earned the new Bits badge <br> user_name - {string} - Login of user who earned the new Bits badge <br> channel_id - {string} - ID of channel where user earned the new Bits badge <br> channel_name - {string} - Login of channel where user earned the new Bits badge <br> badge_tier - {int} - Value of Bits badge tier that was earned (1000, 10000, etc.) <br> chat_message - {string} - [Optional] Custom message included with share <br> time - {string} - Time when the bits were used. RFC 3339 format |\n| 'channel-points' | timestamp - {string} - Time the pubsub message was sent <br> redemption - {object} - Data about the redemption, includes unique id and user that redeemed it <br> channel_id - {string} - ID of the channel in which the reward was redeemed. <br> redeemed_at - {string} - Timestamp in which a reward was redeemed <br> reward - {object} - Data about the reward that was redeemed <br> user_input - {string} - [Optional] A string that the user entered if the reward requires input <br> status - {string} - reward redemption status, will be FULFULLED if a user skips the reward queue, UNFULFILLED otherwise |\n| 'subscribe' | user_name - {string} <br>display_name - {string} <br>channel_name - {string}<br> user_id - {string} <br>channel_id- {string}<br> time- {string}<br> sub_plan- {string}<br> sub_plan_name - {string}<br> months - {integer}<br> cumulative_months - {integer}<br> context - {string}<br> sub_message - {object}<br> sub_message.message - {string}<br> sub_message.emotes - {array}<br>  recipient_id - {integer}<br>  recipient_user_name - {string}<br>  recipient_display_name - {string} |\n| 'whisper_sent' & 'whisper_received' | id - {integer}<br> body - {string} <br>thread_id - {string}<br> sender - {JSON} <br>  sender.id - {integer} <br>  sender.username - {string}<br>   sender.display_name - {string}<br>   sender.color - {string} <br>  sender.badges - {Array}<br>   sender.emotes - {Array}<br> recipient - {JSON} <br>  recipient.id - {integer}<br>   recipient.username - {string} <br>  recipient.display_name - {string} <br>  recipient.color - {string} <br>  recipient.badges - {Array} <br>sent_ts - {integer}<br> nonce - {string} |\n| 'stream-up' | time - {integer} <br>channel_name- {string}<br> play_delay - {string} |\n| 'stream-down' | time - {integer} <br>channel_name- {string} |\n| 'viewcount' | time - {integer}<br> channel_name- {string} <br>viewers - {integer} |\n\n#### Listen to new topics\n\n~~~ javascript\nps.addTopic([{topic: \"video-playback.starladder_cs_en\"}]);\nps.addTopic([{topic: 'whispers.38290946', token: 'nkuaf7ur3trg7ju37md1y3u5p52s3q'}]);\n~~~\n\n> Token changed for security reasons.\n\n#### Un-listen (remove) to existing topics\n\n~~~ javascript\nps.removeTopic([{topic: \"video-playback.starladder_cs_en\"}]);\n~~~\n\n> Token not required.\n\n## Community\n\n- Follow [@thecuriouseng](https://twitter.com/thecuriouseng) on Twitter\n- Have a question that is not a bug report? - Tweet me [@thecuriouseng](https://twitter.com/thecuriouseng)\n- Found a bug ? [Submit an issue](https://github.com/jctrvlr/twitchps/issues/new).\n","readmeFilename":"README.md","gitHead":"48b7acab368faa6ca4cd43d50d04ac6b01385530","_id":"twitchps@1.5.1-0","_nodeVersion":"13.12.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-8lFWlH70PAF0e+EUBBrCLtaZQscL2zbNrdvmvpmhZqAPdw+VFyOQSGcGTH/n0ob6ypTGeYeJtnJ8W/yWhdYJlg==","shasum":"dd23a0fd64c91947faa30658f58cfd3218505a5e","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-1.5.1-0.tgz","fileCount":6,"unpackedSize":44331,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe8L4cCRA9TVsSAnZWagAA0eQP/ReylPhpKa32e80hG2gJ\nyZFa9NxPRysubrR4pZNYyElNTb6vEQ+1b3Xv7xX9JaqabX+BqR224caEuI8P\nMkh1Buo/jPBCRh0E+SQ6lELmmXLrDZ89jUj5UFL79cEaFpIbuLpEbrcDFnGN\n8ygmMiPmPi0eJuRN8+Z/W16ymjxxB4A+aLHGAkWO4KXF1KK2fpM5+ZSnlWzN\njQ+Tf2ZhRnWOQV2T5lQletqu+F+pvLkxm+SjQW3LWLwAO9lxkGe9PmAbBFoV\nC2e2ttydsB4NS7ENWV0d1g4yayVeYTdBdNKeqYMRJj7IfBKwqlCM0lzDtkiJ\npe748TRD4KKkLJYcUKWVeMOV1beSKa0Hww3eO6qJXOSio/IedmI/tnLocZW2\nuyrRgO2iczCg/RSUTxs/LdsRfoIZ4oBW28Jac/peiOnvcvD7eOd5eZ4msrDr\n7nOQd8zjqWfmpD0EsF6ZGyHQGe3Ln68wVR0suXq4iOLDMuQnQaBc6NjHzk5/\nly2rWHyMKTL31+lOffJPxlgZ/FPo8OWWgyHiAstuM2nwZ0hCPZLrpCRqsfGi\nQ1H+hUWwB9MGfN5RicV551PO2GkhkUWjzpIPuYB6A/iaxQ2i+yP2Z5UYLZKU\nZpilfonI7YsQOtMvyHZ6IhK5cCzzrX/9KJC5lazyTV0ZylgJggVKvABetuqU\nZiEw\r\n=rUqT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFRPmDRCuwPcspsmBnVfs2arUNOYqLaKGc8CGWlaJgNdAiEA8mxaLPiPGMO482d6GsmyO4uDMA0AildotMJDHQ5SdbI="}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/twitchps_1.5.1-0_1592835611488_0.4738992232227832"},"_hasShrinkwrap":false},"1.5.1":{"name":"twitchps","version":"1.5.1","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"lint":"eslint \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","eslintConfig":{"env":{"es6":true,"node":true},"parserOptions":{"ecmaVersion":6},"extends":"eslint:recommended","rules":{"semi":[2,"always",{"omitLastInOneLineBlock":true}],"no-unused-vars":[2,{"argsIgnorePattern":"^_","caughtErrors":"none"}],"no-control-regex":0,"global-require":1,"camelcase":0,"no-console":0,"dot-notation":1,"no-else-return":2,"no-plusplus":2,"constructor-super":2,"prefer-arrow-callback":1,"object-shorthand":2,"object-curly-spacing":1,"object-property-newline":[1,{"allowMultiplePropertiesPerLine":true}],"no-var":2,"no-inner-declarations":0}},"dependencies":{"events":"^3.0.0","shortid":"^2.2.8","ws":"^7.0.0"},"devDependencies":{"eslint":"~6.8.0"},"gitHead":"7c858594343c29b59746a55e3b696a2c7f8aae20","_id":"twitchps@1.5.1","_nodeVersion":"13.12.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-97sPuF/AYzMVWdeBW1r+vTxwA06hzW5VtK/g8S0CLDwygiNngQrj4GyrsbY64OvBA0s1LTK273VXG3tfeOLQoA==","shasum":"88662db302c43fffe01bb97f0c69bf0ace93fbc0","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-1.5.1.tgz","fileCount":6,"unpackedSize":44329,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe8NEgCRA9TVsSAnZWagAAUmkP/1g8OdaDIF/xY/b2nC3u\nYoBT+qZrDyYkmFpJSm10/g4grEmY0br936BMOuax43daJw+ghDNj2ebp6ny5\nTs0NyWuMday7Glv7Mhn4Qhz5Jv9j1ZWianEs13IhCszu7ulVh/u+PzbmPxCO\nVdkQdR4520DDZ8mocgv1CSrC+8ybkPsDBwJGxuQF3W4HKgQzy+JBEcv4ctn9\nqr/c+mV3cUj/gtYSwGqCacao0rx63/z3wGu2QWA8+bKlWlfOcrngFm7GaUly\ne4iyrm/CaF3FaPUud2NtFW/ZqOBCjiGzHPgltZHF9raVl52EATK8CSOJJAgq\njwUA/kwwhXHMmIrHRXWAS4L+2+IKSWqSf4ugfGq1DhMLbElguWAMXLeoVJo+\nh633dxBadr7CNcqGpkBUbSsZbtWZJ8ceGl6I/mjIrjkLna/Fu9p4kOsG09ML\nNOnna7XfSnGkL9yMh83KXfnviIYlH85lgcHZ0Nv56Ru5x9bPi3NR17KR3igS\nCdYT6xCd/VKPOVAHNNf//4BPNWyQbHZGKFnLWaJVhwrO82coPov5IGiEYd8o\nEJFbQ15U1BNAnb1MHe1rX6+yh5hLFrkRb7KTHkq6sKPgUG4BkJ1h085dSxm7\n9rFzvMOr9T3iivnU+DjaqpK3tuHbRc+P73G3jHRfvNX5zQ2PrU9t++xen2Tw\nqe+t\r\n=uvkY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDxl4o5yfi/g6DXHFDAEvBCIhwtH1fVvpVyYet1P3SEmwIgL1dhDKUZZS88A5iX1ytvCzT4OkueApOAsuGf17nMEtk="}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/twitchps_1.5.1_1592840479916_0.5094499475515588"},"_hasShrinkwrap":false},"1.5.2-0":{"name":"twitchps","version":"1.5.2-0","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"lint":"eslint \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","eslintConfig":{"env":{"es6":true,"node":true},"parserOptions":{"ecmaVersion":6},"extends":"eslint:recommended","rules":{"semi":[2,"always",{"omitLastInOneLineBlock":true}],"no-unused-vars":[2,{"argsIgnorePattern":"^_","caughtErrors":"none"}],"no-control-regex":0,"global-require":1,"camelcase":0,"no-console":0,"dot-notation":1,"no-else-return":2,"no-plusplus":2,"constructor-super":2,"prefer-arrow-callback":1,"object-shorthand":2,"object-curly-spacing":1,"object-property-newline":[1,{"allowMultiplePropertiesPerLine":true}],"no-var":2,"no-inner-declarations":0}},"dependencies":{"events":"^3.0.0","shortid":"^2.2.8","ws":"^7.0.0"},"devDependencies":{"eslint":"~6.8.0"},"readme":"# [TwitchPS](https://github.com/jctrvlr/twitchps)\n\n [![dependency status](https://david-dm.org/jctrvlr/twitchps.svg)](https://david-dm.org/jctrvlr/twitchps)\n [![Downloads](https://img.shields.io/npm/dm/twitchps.svg?style=flat)](https://www.npmjs.org/package/twitchps) [![Version](https://img.shields.io/npm/v/twitchps.svg?style=flat)](https://www.npmjs.org/package/twitchps)  [![GitHub issues](https://img.shields.io/github/issues/jctrvlr/twitchPS.svg)](https://github.com/jctrvlr/twitchPS/issues) [![Build Status](https://travis-ci.org/jctrvlr/twitchPS.svg?branch=master)](https://travis-ci.org/jctrvlr/twitchPS)\n\nNeat little [Node](http://nodejs.org) library which lets you easily interact with the Twitch.tv PubSub service.\n\n## Supported Topics\n\n|  Feature | Topic and Example | Required Scope  |  You are notified when …         |  \n|---|---|---|---|\n| Bits  | ```channel-bits-events-v1.<channel ID>``` <br><br> ```channel-bits-events-v2.<channel ID>``` <br><br> Example: ```channel-bits-events-v1.44322889```| ```bits:read```  | Anyone cheers on a specified channel.  |\n| Bits Badge Notification  | ```channel-bits-badge-unlocks.<channel_id>``` <br><br> Example: ```channel-bits-badge-unlocks.44322889```| ```bits:read``` | Message sent when a user earns a new Bits badge in a particular channel, and chooses to share the notification with chat. |\n| Channel Points | ```channel-points-channel-v1.<channel_id>```<br><br> Example: ```channel-points-channel-v1.44322889```| ```channel:read:redemptions``` | A custom reward is redeemed in a channel. |\n| Channel Subscriptions  | ```channel-subscribe-events-v1.<channel ID>``` <br><br> Example: ```channel-subscribe-events-v1.44322889```| ```channel_subscriptions```  | Anyone subscribes (first month, gift sub) or resubscribes (subsequent months) to a channel.  |\n| Whispers  |  ```whispers.<user ID>``` <br><br> Example: ```whispers.44322889```  | ```whispers:read```  | Anyone whispers the specified user.  |\n| Stream Status  |   ```video-playback.<channel name>``` <br><br> Example: ```video-playback.summit1g``` |  No scope needed |  Status on stream going up, down, and viewer count. **Not officially supported by Twitch**|\n| Moderator Action  | ```chat_moderator_actions.<channel ID>``` <br><br> Example: ```chat_moderator_actions.44322889``` | ```channel:moderate``` | A moderator performs an action in the channel. |\n\n## Installation\n\n#### Node\n\nInstall via NPM\n\n~~~ bash\nnpm i twitchps --save\n~~~\n\n## Usage\n\n### Include the Component\n\n#### Options\n\n| Name  | Type  |  Optional | Default  | Description  |\n|---|---|---|---|---|\n| init_topics  | JSON object  | False  | **NONE*  |  JSON Object array of initial topics with tokens. See below. |\n|  reconnect |  boolean | True  | True  |  Reconnect when disconnected from Pubsub servers.|\n| debug  | boolean  | True  | False  |  Turns debug console output on and off. |\n\n~~~ javascript\nconst TwitchPS = require('twitchps');\n\n// Initial topics are required\nlet init_topics = [{topic: 'video-playback.bajheera'}, {topic: 'whispers.44322889', token: 'nkuaf7ur3trg7ju37md1y3u5p52s3q'}];\n// Optional reconnect, debug options (Defaults: reconnect: true, debug: false)\nvar ps = new TwitchPS({init_topics: init_topics, reconnect: false, debug: true});\n\nps.on('stream-up', (data) => {\n  console.log(data.time , data.channel_name);\n  // Use data here\n});\n~~~\n\n> Token changed for security reasons. You can generate a token [here](https://twitchapps.com/tmi/).\\\n> In order to find the userID/channelID follow the instructions [here](https://dev.twitch.tv/docs/v5/guides/using-the-twitch-api/#translating-from-user-names-to-user-ids).\\\n> For more detailed usage see [example application](https://github.com/jctrvlr/twitchps_example).\n\n#### Connection Events\n\n|  Event Name    | You are notified when …                      |\n|:--------------:|:--------------------------------------------:|\n| 'connected'    | A successful connection has been established |\n| 'disconnected' | The connection has been terminated           |\n| 'reconnect'    | An attempt will be made to reconnect         |\n\n#### Events emitted after subscribing/adding topics\n\n|              Event Name             |                                                                                                                                                                                                                      List of fields                                                                                                                                                                                                                      |\n|:-----------------------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|\n| 'bits' | badge_entitlement - {object} (v2 only) <br> bits_used - {integer} <br> channel_id - {string} <br>channel_name - {string}<br>  chat_message - {string}<br> context - {string} <br> is_anonymous - {boolean} (v2 only) <br> message_id - {string} <br>message_type - {string}<br> time - {string}<br>  total_bits_used - {integer} <br>user_id - {string} <br>user_name - {string}<br> version - {string} |\n| 'bits-badge' | user_id - {string} - ID of user who earned the new Bits badge <br> user_name - {string} - Login of user who earned the new Bits badge <br> channel_id - {string} - ID of channel where user earned the new Bits badge <br> channel_name - {string} - Login of channel where user earned the new Bits badge <br> badge_tier - {int} - Value of Bits badge tier that was earned (1000, 10000, etc.) <br> chat_message - {string} - [Optional] Custom message included with share <br> time - {string} - Time when the bits were used. RFC 3339 format |\n| 'channel-points' | timestamp - {string} - Time the pubsub message was sent <br> redemption - {object} - Data about the redemption, includes unique id and user that redeemed it <br> channel_id - {string} - ID of the channel in which the reward was redeemed. <br> redeemed_at - {string} - Timestamp in which a reward was redeemed <br> reward - {object} - Data about the reward that was redeemed <br> user_input - {string} - [Optional] A string that the user entered if the reward requires input <br> status - {string} - reward redemption status, will be FULFULLED if a user skips the reward queue, UNFULFILLED otherwise |\n| 'subscribe' | user_name - {string} <br>display_name - {string} <br>channel_name - {string}<br> user_id - {string} <br>channel_id- {string}<br> time- {string}<br> sub_plan- {string}<br> sub_plan_name - {string}<br> months - {integer}<br> cumulative_months - {integer}<br> context - {string}<br> sub_message - {object}<br> sub_message.message - {string}<br> sub_message.emotes - {array}<br>  recipient_id - {integer}<br>  recipient_user_name - {string}<br>  recipient_display_name - {string} |\n| 'whisper_sent' & 'whisper_received' | id - {integer}<br> body - {string} <br>thread_id - {string}<br> sender - {JSON} <br>  sender.id - {integer} <br>  sender.username - {string}<br>   sender.display_name - {string}<br>   sender.color - {string} <br>  sender.badges - {Array}<br>   sender.emotes - {Array}<br> recipient - {JSON} <br>  recipient.id - {integer}<br>   recipient.username - {string} <br>  recipient.display_name - {string} <br>  recipient.color - {string} <br>  recipient.badges - {Array} <br>sent_ts - {integer}<br> nonce - {string} |\n| 'stream-up' | time - {integer} <br>channel_name- {string}<br> play_delay - {string} |\n| 'stream-down' | time - {integer} <br>channel_name- {string} |\n| 'viewcount' | time - {integer}<br> channel_name- {string} <br>viewers - {integer} |\n\n#### Listen to new topics\n\n~~~ javascript\nps.addTopic([{topic: \"video-playback.starladder_cs_en\"}]);\nps.addTopic([{topic: 'whispers.38290946', token: 'nkuaf7ur3trg7ju37md1y3u5p52s3q'}]);\n~~~\n\n> Token changed for security reasons.\n\n#### Un-listen (remove) to existing topics\n\n~~~ javascript\nps.removeTopic([{topic: \"video-playback.starladder_cs_en\"}]);\n~~~\n\n> Token not required.\n\n## Community\n\n- Follow [@thecuriouseng](https://twitter.com/thecuriouseng) on Twitter\n- Have a question that is not a bug report? - Tweet me [@thecuriouseng](https://twitter.com/thecuriouseng)\n- Found a bug ? [Submit an issue](https://github.com/jctrvlr/twitchps/issues/new).\n","readmeFilename":"README.md","gitHead":"31568b061594cc998579d6c56da8d95c219b3aeb","_id":"twitchps@1.5.2-0","_nodeVersion":"13.12.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-exvdRqAXKDkx8ubTjHWDY4LvQ1xY/AeFW/ejDMPAyNTBuggVZFBzLhsUn0w+JRNBeaMhsaraL/eHwHApoI6cjQ==","shasum":"9a9deefa26c7ee34c63caec90aaad390dd3bbd74","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-1.5.2-0.tgz","fileCount":6,"unpackedSize":44305,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfD8flCRA9TVsSAnZWagAANbgP/iBA6U2s7HYI0EjniLxa\nv4H6Eja8AogNY/p5CNbva/y/Bp/OouJPDQjLooj1V3Lrd3nxFqac27bT2OaR\nZi/L4whQ224h0c/MVZtSql17CbnmRhoH1Gh+Ye11rJAHTXf1basPaovvdQMK\nZp35Wisu6SN9DS1FNyjPxmcH8WaEhY+Vbl8Ou4rRcKayz6mxqCn1pW8wbDXu\nemXM324b7yo9+FA+/yid81UoezfcprGMHouWkaSwgtJ9Y/N0q8v+IV9LfapB\nzKikkZVZGBkU9Qvy+lOblwelMRGJV/l80rjzDk5erF58hivLfmgS8txmKF9Q\nYac5IuEnS+71WFWa6BA4gXYDsDwocAWrihV7wQO6i5H3JZ9PKF0A71bx129Z\nG1qzqBvTe1F0VcxZHPpJEPHn8aAZFJktrd5R2JYIkgrf6wOkfUvOW8nCTfc0\nOWNdVZ8cbye97LyEx7ZVEqFQyDvIkN1y/dOPNoNR+M7NBaQhQISHW8X6QnE+\ni4FcTMIfoyv/lZXIFGGX61cWoNUlrYaXv5ldPdiazowMK2yx/YhWRwV0sDVB\nfJ27rNSLmIndkrH7cXzQpWFsqawKyVVjpxyKP1QLiV8mjcXFa/w3beSga6eq\nvK0sWTIAAk++f2p5PiV2OIU0Lr7ogswwhKBURWW65+kABulC7NPvSn9vFXRS\npef9\r\n=ihbX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBgDJkdsJGR6IOfkTAHzaRcC7T4O79l3ln1XB/iVIVUWAiBiYL7G+JlpSMt+yvglqLENV4IIEy5oFKAjAEIo/NtF1g=="}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/twitchps_1.5.2-0_1594869733199_0.9919763845609884"},"_hasShrinkwrap":false},"1.5.2-1":{"name":"twitchps","version":"1.5.2-1","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"lint":"eslint \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","eslintConfig":{"env":{"es6":true,"node":true},"parserOptions":{"ecmaVersion":6},"extends":"eslint:recommended","rules":{"semi":[2,"always",{"omitLastInOneLineBlock":true}],"no-unused-vars":[2,{"argsIgnorePattern":"^_","caughtErrors":"none"}],"no-control-regex":0,"global-require":1,"camelcase":0,"no-console":0,"dot-notation":1,"no-else-return":2,"no-plusplus":2,"constructor-super":2,"prefer-arrow-callback":1,"object-shorthand":2,"object-curly-spacing":1,"object-property-newline":[1,{"allowMultiplePropertiesPerLine":true}],"no-var":2,"no-inner-declarations":0}},"dependencies":{"events":"^3.0.0","shortid":"^2.2.8","ws":"^7.0.0"},"devDependencies":{"eslint":"~6.8.0"},"readme":"# [TwitchPS](https://github.com/jctrvlr/twitchps)\n\n [![dependency status](https://david-dm.org/jctrvlr/twitchps.svg)](https://david-dm.org/jctrvlr/twitchps)\n [![Downloads](https://img.shields.io/npm/dm/twitchps.svg?style=flat)](https://www.npmjs.org/package/twitchps) [![Version](https://img.shields.io/npm/v/twitchps.svg?style=flat)](https://www.npmjs.org/package/twitchps)  [![GitHub issues](https://img.shields.io/github/issues/jctrvlr/twitchPS.svg)](https://github.com/jctrvlr/twitchPS/issues) [![Build Status](https://travis-ci.org/jctrvlr/twitchPS.svg?branch=master)](https://travis-ci.org/jctrvlr/twitchPS)\n\nNeat little [Node](http://nodejs.org) library which lets you easily interact with the Twitch.tv PubSub service.\n\n## Supported Topics\n\n|  Feature | Topic and Example | Required Scope  |  You are notified when …         |  \n|---|---|---|---|\n| Bits  | ```channel-bits-events-v1.<channel ID>``` <br><br> ```channel-bits-events-v2.<channel ID>``` <br><br> Example: ```channel-bits-events-v1.44322889```| ```bits:read```  | Anyone cheers on a specified channel.  |\n| Bits Badge Notification  | ```channel-bits-badge-unlocks.<channel_id>``` <br><br> Example: ```channel-bits-badge-unlocks.44322889```| ```bits:read``` | Message sent when a user earns a new Bits badge in a particular channel, and chooses to share the notification with chat. |\n| Channel Points | ```channel-points-channel-v1.<channel_id>```<br><br> Example: ```channel-points-channel-v1.44322889```| ```channel:read:redemptions``` | A custom reward is redeemed in a channel. |\n| Channel Subscriptions  | ```channel-subscribe-events-v1.<channel ID>``` <br><br> Example: ```channel-subscribe-events-v1.44322889```| ```channel_subscriptions```  | Anyone subscribes (first month, gift sub) or resubscribes (subsequent months) to a channel.  |\n| Whispers  |  ```whispers.<user ID>``` <br><br> Example: ```whispers.44322889```  | ```whispers:read```  | Anyone whispers the specified user.  |\n| Stream Status  |   ```video-playback.<channel name>``` <br><br> Example: ```video-playback.summit1g``` |  No scope needed |  Status on stream going up, down, and viewer count. **Not officially supported by Twitch**|\n| Moderator Action  | ```chat_moderator_actions.<channel ID>``` <br><br> Example: ```chat_moderator_actions.44322889``` | ```channel:moderate``` | A moderator performs an action in the channel. |\n\n## Installation\n\n#### Node\n\nInstall via NPM\n\n~~~ bash\nnpm i twitchps --save\n~~~\n\n## Usage\n\n### Include the Component\n\n#### Options\n\n| Name  | Type  |  Optional | Default  | Description  |\n|---|---|---|---|---|\n| init_topics  | JSON object  | False  | **NONE*  |  JSON Object array of initial topics with tokens. See below. |\n|  reconnect |  boolean | True  | True  |  Reconnect when disconnected from Pubsub servers.|\n| debug  | boolean  | True  | False  |  Turns debug console output on and off. |\n\n~~~ javascript\nconst TwitchPS = require('twitchps');\n\n// Initial topics are required\nlet init_topics = [{topic: 'video-playback.bajheera'}, {topic: 'whispers.44322889', token: 'nkuaf7ur3trg7ju37md1y3u5p52s3q'}];\n// Optional reconnect, debug options (Defaults: reconnect: true, debug: false)\nvar ps = new TwitchPS({init_topics: init_topics, reconnect: false, debug: true});\n\nps.on('stream-up', (data) => {\n  console.log(data.time , data.channel_name);\n  // Use data here\n});\n~~~\n\n> Token changed for security reasons. You can generate a token [here](https://twitchapps.com/tmi/).\\\n> In order to find the userID/channelID follow the instructions [here](https://dev.twitch.tv/docs/v5/guides/using-the-twitch-api/#translating-from-user-names-to-user-ids).\\\n> For more detailed usage see [example application](https://github.com/jctrvlr/twitchps_example).\n\n#### Connection Events\n\n|  Event Name    | You are notified when …                      |\n|:--------------:|:--------------------------------------------:|\n| 'connected'    | A successful connection has been established |\n| 'disconnected' | The connection has been terminated           |\n| 'reconnect'    | An attempt will be made to reconnect         |\n\n#### Events emitted after subscribing/adding topics\n\n|              Event Name             |                                                                                                                                                                                                                      List of fields                                                                                                                                                                                                                      |\n|:-----------------------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|\n| 'bits' | badge_entitlement - {object} (v2 only) <br> bits_used - {integer} <br> channel_id - {string} <br>channel_name - {string}<br>  chat_message - {string}<br> context - {string} <br> is_anonymous - {boolean} (v2 only) <br> message_id - {string} <br>message_type - {string}<br> time - {string}<br>  total_bits_used - {integer} <br>user_id - {string} <br>user_name - {string}<br> version - {string} |\n| 'bits-badge' | user_id - {string} - ID of user who earned the new Bits badge <br> user_name - {string} - Login of user who earned the new Bits badge <br> channel_id - {string} - ID of channel where user earned the new Bits badge <br> channel_name - {string} - Login of channel where user earned the new Bits badge <br> badge_tier - {int} - Value of Bits badge tier that was earned (1000, 10000, etc.) <br> chat_message - {string} - [Optional] Custom message included with share <br> time - {string} - Time when the bits were used. RFC 3339 format |\n| 'channel-points' | timestamp - {string} - Time the pubsub message was sent <br> redemption - {object} - Data about the redemption, includes unique id and user that redeemed it <br> channel_id - {string} - ID of the channel in which the reward was redeemed. <br> redeemed_at - {string} - Timestamp in which a reward was redeemed <br> reward - {object} - Data about the reward that was redeemed <br> user_input - {string} - [Optional] A string that the user entered if the reward requires input <br> status - {string} - reward redemption status, will be FULFULLED if a user skips the reward queue, UNFULFILLED otherwise |\n| 'subscribe' | user_name - {string} <br>display_name - {string} <br>channel_name - {string}<br> user_id - {string} <br>channel_id- {string}<br> time- {string}<br> sub_plan- {string}<br> sub_plan_name - {string}<br> months - {integer}<br> cumulative_months - {integer}<br> context - {string}<br> sub_message - {object}<br> sub_message.message - {string}<br> sub_message.emotes - {array}<br>  recipient_id - {integer}<br>  recipient_user_name - {string}<br>  recipient_display_name - {string} |\n| 'whisper_sent' & 'whisper_received' | id - {integer}<br> body - {string} <br>thread_id - {string}<br> sender - {JSON} <br>  sender.id - {integer} <br>  sender.username - {string}<br>   sender.display_name - {string}<br>   sender.color - {string} <br>  sender.badges - {Array}<br>   sender.emotes - {Array}<br> recipient - {JSON} <br>  recipient.id - {integer}<br>   recipient.username - {string} <br>  recipient.display_name - {string} <br>  recipient.color - {string} <br>  recipient.badges - {Array} <br>sent_ts - {integer}<br> nonce - {string} |\n| 'stream-up' | time - {integer} <br>channel_name- {string}<br> play_delay - {string} |\n| 'stream-down' | time - {integer} <br>channel_name- {string} |\n| 'viewcount' | time - {integer}<br> channel_name- {string} <br>viewers - {integer} |\n\n#### Listen to new topics\n\n~~~ javascript\nps.addTopic([{topic: \"video-playback.starladder_cs_en\"}]);\nps.addTopic([{topic: 'whispers.38290946', token: 'nkuaf7ur3trg7ju37md1y3u5p52s3q'}]);\n~~~\n\n> Token changed for security reasons.\n\n#### Un-listen (remove) to existing topics\n\n~~~ javascript\nps.removeTopic([{topic: \"video-playback.starladder_cs_en\"}]);\n~~~\n\n> Token not required.\n\n## Community\n\n- Follow [@thecuriouseng](https://twitter.com/thecuriouseng) on Twitter\n- Have a question that is not a bug report? - Tweet me [@thecuriouseng](https://twitter.com/thecuriouseng)\n- Found a bug ? [Submit an issue](https://github.com/jctrvlr/twitchps/issues/new).\n","readmeFilename":"README.md","gitHead":"1007f5de3cc38a5dfafd8d7e8d9cf7fc599296ba","_id":"twitchps@1.5.2-1","_nodeVersion":"13.12.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-M4v+SSv9dLC1viq+cb3ziBn2RQcS9IfLvLL7I3RLxAolLBEK+bj1TaYbwSRVTSXF7alfPSLu9z3CEPlWCRpPxQ==","shasum":"e4e356121342b61865217d3508b7339cf0bd586d","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-1.5.2-1.tgz","fileCount":6,"unpackedSize":44354,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfD8phCRA9TVsSAnZWagAAZ9UP/3y6qGWnWto7fywn6PWF\nlnm0XMfk8Aql7PHXy2gJG7ight1nRJSH+NA1FPZGWachHTK5wkZMGrQwEE10\nZ8NCrpKr8O/W57y//he0Kx68Gz6khIGdrwnjS2DmrmrngJJ4KOIluy3SVaJ8\nYzRoF8hZU5o9rhPU5NB4fXIU9CzAlPSelgWBsJvq1hNv6hBJptuwUc0iz4JG\nlQlELHCzHUhlsCK9Pno+PFGqAn++n18++3X3qMJX1R0Arct9dwzQU3XPQ/ce\nQ/irf08xsrq07xJsLlVlYZ/kz2GVB6FdzAKsHZEYuemQDd4njZ98CxeKVPle\nkKBSaZqqUCgJkfVGk5cI7UQxCuLwK5EBCBxCrOW2q3+WQRH/71GRDz+QykNJ\nJ7QCL0bcgZV3RpS/wv9rUpr7fSnkNdpu7+mB99l3/4BGHaWPPS97RR44Dulc\ncEN18V+tbvDqsIWc2pNOnmidWbQiafc5SugWBU7iXsPnRr5euLdlfAgIDg8N\nueD/gwy3cnClbCVdszaw8jaNcGbpspJh2G+8ldf2dzIOgaAPuEfjVxMsNJb3\nCkV0f7gcN1wE9opzMTnOaLggtSIUsqj57JrQspBZO4gjvSfsA7VufSxazR0y\nEcPPiLhtjgrnNL36ikNhPteEeZxm28zF75pNH3VnADUPM4mRgGOOsBSYwZ4G\nZLQP\r\n=iBSJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD3OAkq7S+XGOfo6znLeivuA32CTETqBIaitOkHfPf0pgIgc+w5bxgjLcKP26yuyr/60Usk4dbMU+5U64qAUXLVPsA="}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/twitchps_1.5.2-1_1594870369092_0.6325318470812711"},"_hasShrinkwrap":false},"1.5.2-2":{"name":"twitchps","version":"1.5.2-2","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"lint":"eslint \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","eslintConfig":{"env":{"es6":true,"node":true},"parserOptions":{"ecmaVersion":6},"extends":"eslint:recommended","rules":{"semi":[2,"always",{"omitLastInOneLineBlock":true}],"no-unused-vars":[2,{"argsIgnorePattern":"^_","caughtErrors":"none"}],"no-control-regex":0,"global-require":1,"camelcase":0,"no-console":0,"dot-notation":1,"no-else-return":2,"no-plusplus":2,"constructor-super":2,"prefer-arrow-callback":1,"object-shorthand":2,"object-curly-spacing":1,"object-property-newline":[1,{"allowMultiplePropertiesPerLine":true}],"no-var":2,"no-inner-declarations":0}},"dependencies":{"events":"^3.0.0","shortid":"^2.2.8","ws":"^7.0.0"},"devDependencies":{"eslint":"~6.8.0"},"readme":"# [TwitchPS](https://github.com/jctrvlr/twitchps)\n\n [![dependency status](https://david-dm.org/jctrvlr/twitchps.svg)](https://david-dm.org/jctrvlr/twitchps)\n [![Downloads](https://img.shields.io/npm/dm/twitchps.svg?style=flat)](https://www.npmjs.org/package/twitchps) [![Version](https://img.shields.io/npm/v/twitchps.svg?style=flat)](https://www.npmjs.org/package/twitchps)  [![GitHub issues](https://img.shields.io/github/issues/jctrvlr/twitchPS.svg)](https://github.com/jctrvlr/twitchPS/issues) [![Build Status](https://travis-ci.org/jctrvlr/twitchPS.svg?branch=master)](https://travis-ci.org/jctrvlr/twitchPS)\n\nNeat little [Node](http://nodejs.org) library which lets you easily interact with the Twitch.tv PubSub service.\n\n## Supported Topics\n\n|  Feature | Topic and Example | Required Scope  |  You are notified when …         |  \n|---|---|---|---|\n| Bits  | ```channel-bits-events-v1.<channel ID>``` <br><br> ```channel-bits-events-v2.<channel ID>``` <br><br> Example: ```channel-bits-events-v1.44322889```| ```bits:read```  | Anyone cheers on a specified channel.  |\n| Bits Badge Notification  | ```channel-bits-badge-unlocks.<channel_id>``` <br><br> Example: ```channel-bits-badge-unlocks.44322889```| ```bits:read``` | Message sent when a user earns a new Bits badge in a particular channel, and chooses to share the notification with chat. |\n| Channel Points | ```channel-points-channel-v1.<channel_id>```<br><br> Example: ```channel-points-channel-v1.44322889```| ```channel:read:redemptions``` | A custom reward is redeemed in a channel. |\n| Channel Subscriptions  | ```channel-subscribe-events-v1.<channel ID>``` <br><br> Example: ```channel-subscribe-events-v1.44322889```| ```channel_subscriptions```  | Anyone subscribes (first month, gift sub) or resubscribes (subsequent months) to a channel.  |\n| Whispers  |  ```whispers.<user ID>``` <br><br> Example: ```whispers.44322889```  | ```whispers:read```  | Anyone whispers the specified user.  |\n| Stream Status  |   ```video-playback.<channel name>``` <br><br> Example: ```video-playback.summit1g``` |  No scope needed |  Status on stream going up, down, and viewer count. **Not officially supported by Twitch**|\n| Moderator Action  | ```chat_moderator_actions.<channel ID>``` <br><br> Example: ```chat_moderator_actions.44322889``` | ```channel:moderate``` | A moderator performs an action in the channel. |\n\n## Installation\n\n#### Node\n\nInstall via NPM\n\n~~~ bash\nnpm i twitchps --save\n~~~\n\n## Usage\n\n### Include the Component\n\n#### Options\n\n| Name  | Type  |  Optional | Default  | Description  |\n|---|---|---|---|---|\n| init_topics  | JSON object  | False  | **NONE*  |  JSON Object array of initial topics with tokens. See below. |\n|  reconnect |  boolean | True  | True  |  Reconnect when disconnected from Pubsub servers.|\n| debug  | boolean  | True  | False  |  Turns debug console output on and off. |\n\n~~~ javascript\nconst TwitchPS = require('twitchps');\n\n// Initial topics are required\nlet init_topics = [{topic: 'video-playback.bajheera'}, {topic: 'whispers.44322889', token: 'nkuaf7ur3trg7ju37md1y3u5p52s3q'}];\n// Optional reconnect, debug options (Defaults: reconnect: true, debug: false)\nvar ps = new TwitchPS({init_topics: init_topics, reconnect: false, debug: true});\n\nps.on('stream-up', (data) => {\n  console.log(data.time , data.channel_name);\n  // Use data here\n});\n~~~\n\n> Token changed for security reasons. You can generate a token [here](https://twitchapps.com/tmi/).\\\n> In order to find the userID/channelID follow the instructions [here](https://dev.twitch.tv/docs/v5/guides/using-the-twitch-api/#translating-from-user-names-to-user-ids).\\\n> For more detailed usage see [example application](https://github.com/jctrvlr/twitchps_example).\n\n#### Connection Events\n\n|  Event Name    | You are notified when …                      |\n|:--------------:|:--------------------------------------------:|\n| 'connected'    | A successful connection has been established |\n| 'disconnected' | The connection has been terminated           |\n| 'reconnect'    | An attempt will be made to reconnect         |\n\n#### Events emitted after subscribing/adding topics\n\n|              Event Name             |                                                                                                                                                                                                                      List of fields                                                                                                                                                                                                                      |\n|:-----------------------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|\n| 'bits' | badge_entitlement - {object} (v2 only) <br> bits_used - {integer} <br> channel_id - {string} <br>channel_name - {string}<br>  chat_message - {string}<br> context - {string} <br> is_anonymous - {boolean} (v2 only) <br> message_id - {string} <br>message_type - {string}<br> time - {string}<br>  total_bits_used - {integer} <br>user_id - {string} <br>user_name - {string}<br> version - {string} |\n| 'bits-badge' | user_id - {string} - ID of user who earned the new Bits badge <br> user_name - {string} - Login of user who earned the new Bits badge <br> channel_id - {string} - ID of channel where user earned the new Bits badge <br> channel_name - {string} - Login of channel where user earned the new Bits badge <br> badge_tier - {int} - Value of Bits badge tier that was earned (1000, 10000, etc.) <br> chat_message - {string} - [Optional] Custom message included with share <br> time - {string} - Time when the bits were used. RFC 3339 format |\n| 'channel-points' | timestamp - {string} - Time the pubsub message was sent <br> redemption - {object} - Data about the redemption, includes unique id and user that redeemed it <br> channel_id - {string} - ID of the channel in which the reward was redeemed. <br> redeemed_at - {string} - Timestamp in which a reward was redeemed <br> reward - {object} - Data about the reward that was redeemed <br> user_input - {string} - [Optional] A string that the user entered if the reward requires input <br> status - {string} - reward redemption status, will be FULFULLED if a user skips the reward queue, UNFULFILLED otherwise |\n| 'subscribe' | user_name - {string} <br>display_name - {string} <br>channel_name - {string}<br> user_id - {string} <br>channel_id- {string}<br> time- {string}<br> sub_plan- {string}<br> sub_plan_name - {string}<br> months - {integer}<br> cumulative_months - {integer}<br> context - {string}<br> sub_message - {object}<br> sub_message.message - {string}<br> sub_message.emotes - {array}<br>  recipient_id - {integer}<br>  recipient_user_name - {string}<br>  recipient_display_name - {string} |\n| 'whisper_sent' & 'whisper_received' | id - {integer}<br> body - {string} <br>thread_id - {string}<br> sender - {JSON} <br>  sender.id - {integer} <br>  sender.username - {string}<br>   sender.display_name - {string}<br>   sender.color - {string} <br>  sender.badges - {Array}<br>   sender.emotes - {Array}<br> recipient - {JSON} <br>  recipient.id - {integer}<br>   recipient.username - {string} <br>  recipient.display_name - {string} <br>  recipient.color - {string} <br>  recipient.badges - {Array} <br>sent_ts - {integer}<br> nonce - {string} |\n| 'stream-up' | time - {integer} <br>channel_name- {string}<br> play_delay - {string} |\n| 'stream-down' | time - {integer} <br>channel_name- {string} |\n| 'viewcount' | time - {integer}<br> channel_name- {string} <br>viewers - {integer} |\n\n#### Listen to new topics\n\n~~~ javascript\nps.addTopic([{topic: \"video-playback.starladder_cs_en\"}]);\nps.addTopic([{topic: 'whispers.38290946', token: 'nkuaf7ur3trg7ju37md1y3u5p52s3q'}]);\n~~~\n\n> Token changed for security reasons.\n\n#### Un-listen (remove) to existing topics\n\n~~~ javascript\nps.removeTopic([{topic: \"video-playback.starladder_cs_en\"}]);\n~~~\n\n> Token not required.\n\n## Community\n\n- Follow [@thecuriouseng](https://twitter.com/thecuriouseng) on Twitter\n- Have a question that is not a bug report? - Tweet me [@thecuriouseng](https://twitter.com/thecuriouseng)\n- Found a bug ? [Submit an issue](https://github.com/jctrvlr/twitchps/issues/new).\n","readmeFilename":"README.md","gitHead":"9f16a4625ad14d74036a4e3eb6561f585abc5b81","_id":"twitchps@1.5.2-2","_nodeVersion":"13.12.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-/BTcYM0w/LAIbogifa6fqoFEK+KsinnmbAUQy4GsAnN4NbrDyNj0kJjI2v3eXwBUWq2SzYDgHEYhe0r45Z7WKw==","shasum":"6196a80e405aaff187d29c775dc934f2d9585d16","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-1.5.2-2.tgz","fileCount":6,"unpackedSize":44312,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfD8sSCRA9TVsSAnZWagAALcsQAJPsnmV85hHzSjxo3ImU\n+4/n+zYGN+pY9i47rDC52WDFSKHx0JQEumGm+dUSlElVj9zH4jX5QTCWuVMF\nsaI+OCDZzpoDGH0P7q1GNNUMRt4EFidH7Amy6vNpeHcGY3nq0l+X0RSIscLq\nHrrNufSuozWN4ETGCr9UVLpHij7dS4NGvU4mbfN+nuHCS28VD+/O4fkmntI4\ncnF4dxsgF92KEKxkQkhpdax1WE9q+XeUKgOYTrrOvntDOdDuhUwgwRi5fM6k\nuDXTWAR/D6n6jVydY/8rc7ZFchSUXJ1J4w0k+RH7Md+NewNE7zKwHcZO+/4J\n4ADuOoqw7nuvqcelPE4kSFvMTbY+Y8QgpHNf7p8xVL4NJYi1zRfmQzNjA8d+\nenNITA0eKB35eDmmzenaRki/ghvrS+elKvbhBilCG0VzDp+gnbChPQYHM5AW\nvP+szAO7zcL7oAB+2rWV6d3L+GkF4sY6NwMUcwynqnbeeGsM/WMF9j4PNom3\n4uVnMyxWkzQ5M/KRbZMwxE/pwsO4jFA7NEt5w8sP7p/TYd9T8I9yNSjCIxkV\nm0tO/C5uMSMqx4G9GsgRw99FzJtcnPrJl/xbiAHEEElSmBrBvzSguPVJfXd9\n7h44RrPXwPkuzCJ7Ehz0arDxLqoZi0YPDexnTwaDyBBA/x9nOHwLzU2VFz1s\nBute\r\n=l35k\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEEm6amd7uV9e5kiRWWcOp/wYG6FOy2OIhBczwmc/u1hAiEA5PXjlvfF2jJaYIzjMLe87RtRZVFIkZglLDO9/V6pgW0="}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/twitchps_1.5.2-2_1594870545958_0.3427569141123836"},"_hasShrinkwrap":false},"1.5.2-3":{"name":"twitchps","version":"1.5.2-3","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"lint":"eslint \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","eslintConfig":{"env":{"es6":true,"node":true},"parserOptions":{"ecmaVersion":6},"extends":"eslint:recommended","rules":{"semi":[2,"always",{"omitLastInOneLineBlock":true}],"no-unused-vars":[2,{"argsIgnorePattern":"^_","caughtErrors":"none"}],"no-control-regex":0,"global-require":1,"camelcase":0,"no-console":0,"dot-notation":1,"no-else-return":2,"no-plusplus":2,"constructor-super":2,"prefer-arrow-callback":1,"object-shorthand":2,"object-curly-spacing":1,"object-property-newline":[1,{"allowMultiplePropertiesPerLine":true}],"no-var":2,"no-inner-declarations":0}},"dependencies":{"events":"^3.0.0","shortid":"^2.2.8","ws":"^7.0.0"},"devDependencies":{"eslint":"~6.8.0"},"readme":"# [TwitchPS](https://github.com/jctrvlr/twitchps)\n\n [![dependency status](https://david-dm.org/jctrvlr/twitchps.svg)](https://david-dm.org/jctrvlr/twitchps)\n [![Downloads](https://img.shields.io/npm/dm/twitchps.svg?style=flat)](https://www.npmjs.org/package/twitchps) [![Version](https://img.shields.io/npm/v/twitchps.svg?style=flat)](https://www.npmjs.org/package/twitchps)  [![GitHub issues](https://img.shields.io/github/issues/jctrvlr/twitchPS.svg)](https://github.com/jctrvlr/twitchPS/issues) [![Build Status](https://travis-ci.org/jctrvlr/twitchPS.svg?branch=master)](https://travis-ci.org/jctrvlr/twitchPS)\n\nNeat little [Node](http://nodejs.org) library which lets you easily interact with the Twitch.tv PubSub service.\n\n## Supported Topics\n\n|  Feature | Topic and Example | Required Scope  |  You are notified when …         |  \n|---|---|---|---|\n| Bits  | ```channel-bits-events-v1.<channel ID>``` <br><br> ```channel-bits-events-v2.<channel ID>``` <br><br> Example: ```channel-bits-events-v1.44322889```| ```bits:read```  | Anyone cheers on a specified channel.  |\n| Bits Badge Notification  | ```channel-bits-badge-unlocks.<channel_id>``` <br><br> Example: ```channel-bits-badge-unlocks.44322889```| ```bits:read``` | Message sent when a user earns a new Bits badge in a particular channel, and chooses to share the notification with chat. |\n| Channel Points | ```channel-points-channel-v1.<channel_id>```<br><br> Example: ```channel-points-channel-v1.44322889```| ```channel:read:redemptions``` | A custom reward is redeemed in a channel. |\n| Channel Subscriptions  | ```channel-subscribe-events-v1.<channel ID>``` <br><br> Example: ```channel-subscribe-events-v1.44322889```| ```channel_subscriptions```  | Anyone subscribes (first month, gift sub) or resubscribes (subsequent months) to a channel.  |\n| Whispers  |  ```whispers.<user ID>``` <br><br> Example: ```whispers.44322889```  | ```whispers:read```  | Anyone whispers the specified user.  |\n| Stream Status  |   ```video-playback.<channel name>``` <br><br> Example: ```video-playback.summit1g``` |  No scope needed |  Status on stream going up, down, and viewer count. **Not officially supported by Twitch**|\n| Moderator Action  | ```chat_moderator_actions.<channel ID>``` <br><br> Example: ```chat_moderator_actions.44322889``` | ```channel:moderate``` | A moderator performs an action in the channel. |\n\n## Installation\n\n#### Node\n\nInstall via NPM\n\n~~~ bash\nnpm i twitchps --save\n~~~\n\n## Usage\n\n### Include the Component\n\n#### Options\n\n| Name  | Type  |  Optional | Default  | Description  |\n|---|---|---|---|---|\n| init_topics  | JSON object  | False  | **NONE*  |  JSON Object array of initial topics with tokens. See below. |\n|  reconnect |  boolean | True  | True  |  Reconnect when disconnected from Pubsub servers.|\n| debug  | boolean  | True  | False  |  Turns debug console output on and off. |\n\n~~~ javascript\nconst TwitchPS = require('twitchps');\n\n// Initial topics are required\nlet init_topics = [{topic: 'video-playback.bajheera'}, {topic: 'whispers.44322889', token: 'nkuaf7ur3trg7ju37md1y3u5p52s3q'}];\n// Optional reconnect, debug options (Defaults: reconnect: true, debug: false)\nvar ps = new TwitchPS({init_topics: init_topics, reconnect: false, debug: true});\n\nps.on('stream-up', (data) => {\n  console.log(data.time , data.channel_name);\n  // Use data here\n});\n~~~\n\n> Token changed for security reasons. You can generate a token [here](https://twitchapps.com/tmi/).\\\n> In order to find the userID/channelID follow the instructions [here](https://dev.twitch.tv/docs/v5/guides/using-the-twitch-api/#translating-from-user-names-to-user-ids).\\\n> For more detailed usage see [example application](https://github.com/jctrvlr/twitchps_example).\n\n#### Connection Events\n\n|  Event Name    | You are notified when …                      |\n|:--------------:|:--------------------------------------------:|\n| 'connected'    | A successful connection has been established |\n| 'disconnected' | The connection has been terminated           |\n| 'reconnect'    | An attempt will be made to reconnect         |\n\n#### Events emitted after subscribing/adding topics\n\n|              Event Name             |                                                                                                                                                                                                                      List of fields                                                                                                                                                                                                                      |\n|:-----------------------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|\n| 'bits' | badge_entitlement - {object} (v2 only) <br> bits_used - {integer} <br> channel_id - {string} <br>channel_name - {string}<br>  chat_message - {string}<br> context - {string} <br> is_anonymous - {boolean} (v2 only) <br> message_id - {string} <br>message_type - {string}<br> time - {string}<br>  total_bits_used - {integer} <br>user_id - {string} <br>user_name - {string}<br> version - {string} |\n| 'bits-badge' | user_id - {string} - ID of user who earned the new Bits badge <br> user_name - {string} - Login of user who earned the new Bits badge <br> channel_id - {string} - ID of channel where user earned the new Bits badge <br> channel_name - {string} - Login of channel where user earned the new Bits badge <br> badge_tier - {int} - Value of Bits badge tier that was earned (1000, 10000, etc.) <br> chat_message - {string} - [Optional] Custom message included with share <br> time - {string} - Time when the bits were used. RFC 3339 format |\n| 'channel-points' | timestamp - {string} - Time the pubsub message was sent <br> redemption - {object} - Data about the redemption, includes unique id and user that redeemed it <br> channel_id - {string} - ID of the channel in which the reward was redeemed. <br> redeemed_at - {string} - Timestamp in which a reward was redeemed <br> reward - {object} - Data about the reward that was redeemed <br> user_input - {string} - [Optional] A string that the user entered if the reward requires input <br> status - {string} - reward redemption status, will be FULFULLED if a user skips the reward queue, UNFULFILLED otherwise |\n| 'subscribe' | user_name - {string} <br>display_name - {string} <br>channel_name - {string}<br> user_id - {string} <br>channel_id- {string}<br> time- {string}<br> sub_plan- {string}<br> sub_plan_name - {string}<br> months - {integer}<br> cumulative_months - {integer}<br> context - {string}<br> sub_message - {object}<br> sub_message.message - {string}<br> sub_message.emotes - {array}<br>  recipient_id - {integer}<br>  recipient_user_name - {string}<br>  recipient_display_name - {string} |\n| 'whisper_sent' & 'whisper_received' | id - {integer}<br> body - {string} <br>thread_id - {string}<br> sender - {JSON} <br>  sender.id - {integer} <br>  sender.username - {string}<br>   sender.display_name - {string}<br>   sender.color - {string} <br>  sender.badges - {Array}<br>   sender.emotes - {Array}<br> recipient - {JSON} <br>  recipient.id - {integer}<br>   recipient.username - {string} <br>  recipient.display_name - {string} <br>  recipient.color - {string} <br>  recipient.badges - {Array} <br>sent_ts - {integer}<br> nonce - {string} |\n| 'stream-up' | time - {integer} <br>channel_name- {string}<br> play_delay - {string} |\n| 'stream-down' | time - {integer} <br>channel_name- {string} |\n| 'viewcount' | time - {integer}<br> channel_name- {string} <br>viewers - {integer} |\n\n#### Listen to new topics\n\n~~~ javascript\nps.addTopic([{topic: \"video-playback.starladder_cs_en\"}]);\nps.addTopic([{topic: 'whispers.38290946', token: 'nkuaf7ur3trg7ju37md1y3u5p52s3q'}]);\n~~~\n\n> Token changed for security reasons.\n\n#### Un-listen (remove) to existing topics\n\n~~~ javascript\nps.removeTopic([{topic: \"video-playback.starladder_cs_en\"}]);\n~~~\n\n> Token not required.\n\n## Community\n\n- Follow [@thecuriouseng](https://twitter.com/thecuriouseng) on Twitter\n- Have a question that is not a bug report? - Tweet me [@thecuriouseng](https://twitter.com/thecuriouseng)\n- Found a bug ? [Submit an issue](https://github.com/jctrvlr/twitchps/issues/new).\n","readmeFilename":"README.md","gitHead":"7ec9838c96e95978c4fbcbe99474e3756ca4113c","_id":"twitchps@1.5.2-3","_nodeVersion":"13.12.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-vCb8KaeBacrtZzuqsrbHV7HlqZXgYoTXx5klot9MZbKeMPZe9V/AN7rJ+8EVkdgqAWERtQv2y61XxukJvuGO5w==","shasum":"d4709e10678919f3adb5fb9756c9561fc5add6c6","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-1.5.2-3.tgz","fileCount":6,"unpackedSize":44348,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfD8uACRA9TVsSAnZWagAACvYQAJ0JaLj2VvISYwrGB88P\nOer4lGyCllo1J8zSHL0Tq3zzpI58ZKs26mqztSlNBiuNv1aDxiprD2NY4sf1\n1BfLJyPIkuRq3fTNNTxWwEqQth9yTLlb8ARRNfhVXirsNcsi9HLd/a+uknwU\nISaAvF3uV0B/teQmypdz96YRHaR5NP+6oxmkQvmyULZvP5tIhBYkOaFQ9znB\ndFdD8EJmbz4O28+jKNlgELQ/iAiDR/YRecugCGNv9C61vr8pnCYczPWnk29O\nKt5buvdIkp8QORF29O0WTQsQ8ot21Yj0GYwYgdcgzl/+0IR653gPm/oK0Ul9\nA+1xsIAOTuZJVs1yOOo6inmfLIV5bWzzfvbRk5mKzn/BSscNSfd5Rjv0oxeZ\nSHSaaBy/lUPXuwTUGfwyaTDZuYEImLlWUGTVpNMm1JTXbQtkjjEnRX7xjncu\nBufKUJ5VKxF4s/3bwj0I2YOCfjgQSkYK2+kgpNQ0H8WBTtlZJa2PULExgfpM\nXaC/4Kc00gHwqss06PmxrYploXm7q0hS0wok95TmF4bFmyCcE6CY0rfxAw8m\nVbtpqrO/qFqO6FrPURcmhK/8xwnZAfm2fjok4V1a1e690nhlE480/VlodP/b\nqvFh0kBrap3ppqzcELvUgL9d6zj3FWmwtXFaE312ApFpuitCGoc6MVqfClfe\n3/ct\r\n=271a\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEU42hS2KrlSbjx5F6EmmveJXqwR7oQQZNXG8RJGfouIAiBJOuAyshKyfjw/pSSu1YWR5vwRLwT+FGnqFugD5/l1qg=="}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/twitchps_1.5.2-3_1594870656602_0.9375897461073637"},"_hasShrinkwrap":false},"1.5.2":{"name":"twitchps","version":"1.5.2","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"lint":"eslint \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","eslintConfig":{"env":{"es6":true,"node":true},"parserOptions":{"ecmaVersion":6},"extends":"eslint:recommended","rules":{"semi":[2,"always",{"omitLastInOneLineBlock":true}],"no-unused-vars":[2,{"argsIgnorePattern":"^_","caughtErrors":"none"}],"no-control-regex":0,"global-require":1,"camelcase":0,"no-console":0,"dot-notation":1,"no-else-return":2,"no-plusplus":2,"constructor-super":2,"prefer-arrow-callback":1,"object-shorthand":2,"object-curly-spacing":1,"object-property-newline":[1,{"allowMultiplePropertiesPerLine":true}],"no-var":2,"no-inner-declarations":0}},"dependencies":{"events":"^3.0.0","shortid":"^2.2.8","ws":"^7.0.0"},"devDependencies":{"eslint":"~6.8.0"},"gitHead":"8f5a9de22c68eb2b2836a2feb43b4a95a0259820","_id":"twitchps@1.5.2","_nodeVersion":"13.12.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-mEM7zoKJbmBgOPIO7w1OTFeiZnMWDRScMHWyxaFPAVor36IXWBhOr3cE3L1CyPqTo0+YLkJ3fi0LUJmBIJE/Lg==","shasum":"9c4e22f837718c95d768c35416fc575f27f452be","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-1.5.2.tgz","fileCount":6,"unpackedSize":44346,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfD81rCRA9TVsSAnZWagAA1FYP/3oM2yHuGdntpbnLb+gr\n6dTDVEMZ14tpTlshzIObeNuZlj//hWLkqRxUsRy1a/vhgH/KfWh4C11hn+Ov\np/Cyg8/cNQkbWaL7cYJ6DP+k4uTWMHVD2ajv0bjktO8RYIfXrIH0eUw3iOFS\n0Op8Lt+p4LOa1F9AAfh+DJ8GAzlqspdLCECcfPIaoB47coI3I1su4LTV2QdQ\n8F8I35EQwjR6QpCCsWIcVI51oppdLaXsq9Mj+mun3p+/P85GcR1OdxyCON+6\nq2plUHRnlmwXbHE9joBsiytVcKl1rJnnJZj1DcRbivNNVfy2ET2P1CgZOlA8\nJo6hGtEkhzuX+JTvrKpSjosDZ54uBqpd5BDm1JvuErxaQfONVSKs1jL4lno0\njS1iZcxFAm14cvz8YYFbZYhrhIdeNJ30u78XPWTmMPoHNc30KDsH8x5dX/2B\nK75rz/JINS0Ho1KpGfE7Davt/F0Al3kvjyR95k2XTRD4G5kTf3WqtSY9kX51\nvfgcD5KzPDV2NjZteq3vIAsWcEIEFGJSZoktpRYLkRzSmG0VsWEI7XHz8wdy\nxFDs/B3Cd8NPukHIVtHyTWp00fIWQ7fiOZ9npEJ1r93tF+D1bskGxk18lBA7\nQe9wPNuV7MMHhUuMfdkyqOpGw6gZBh5oyt4lXVcQ9+P9wwysYxv7VrsUkDz5\nmC9T\r\n=4TKs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCioDitGzjmgJ5cfRomcjQF7IQ5rNsW+HIexziDDxk0/wIgHeHbJMnXvRi4p+fDE1x4ggZ+w4eVX7iU4EEP0ttddMQ="}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/twitchps_1.5.2_1594871147191_0.8407309092312618"},"_hasShrinkwrap":false},"1.5.3":{"name":"twitchps","version":"1.5.3","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"lint":"eslint \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","eslintConfig":{"env":{"es6":true,"node":true},"parserOptions":{"ecmaVersion":6},"extends":"eslint:recommended","rules":{"semi":[2,"always",{"omitLastInOneLineBlock":true}],"no-unused-vars":[2,{"argsIgnorePattern":"^_","caughtErrors":"none"}],"no-control-regex":0,"global-require":1,"camelcase":0,"no-console":0,"dot-notation":1,"no-else-return":2,"no-plusplus":2,"constructor-super":2,"prefer-arrow-callback":1,"object-shorthand":2,"object-curly-spacing":1,"object-property-newline":[1,{"allowMultiplePropertiesPerLine":true}],"no-var":2,"no-inner-declarations":0}},"dependencies":{"events":"^3.0.0","shortid":"^2.2.8","ws":"^7.0.0"},"devDependencies":{"eslint":"~6.8.0"},"gitHead":"59fa6c371b419c273609d91689416fbe2b6676c8","_id":"twitchps@1.5.3","_nodeVersion":"13.12.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-xZBwku6TUjPEeKaxkaEXIJoEEprj0/pkjv2WrVoSC5EOaBTSPxOYSF8ORhXmsl43jJPYd7z09R/lNeVG45S20A==","shasum":"3122986ff35ecc68cf5fca54641814caf45b6dc2","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-1.5.3.tgz","fileCount":6,"unpackedSize":44346,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfD825CRA9TVsSAnZWagAAyiQP/jUl1RClxr9SDcbcVgLe\nKHHrLqo14WomiKaaKOUG4l7TwrtcNIKXxCe3j53Bqpfdpw/XslCZ9QsF2yqb\nHEqggVvh4k9mys//znGJj2Yx3PutUnFBS+s/22/0Hfss0l3gBh96xRF5rj5e\nJajIbYmAfibL3Jz2Qr5EwluQJvthNzqCYAVnhgo3eeYD3mJ5khu2rBWb9iNq\npOtyOXzht6bQwg4UIiTB4+NV87kNexlsVZ+hLTghB/3EoMZqoDKS9IrulOdh\npvdrKD/Pp524dSWKGxbkBgwMQu/2gjpbCgS2L2XmtN0u823DEkmnRf4PRDBT\n2sAfd2Q7ZpTKCniuheDcCYUkd3hEjJkWUw7ggFfO3PgDHG50nAouyi62mhCQ\n6IRX3O8mW/ay9luiDS3NVoD71wyK97//4ZzCFu6DKpeyq7GK6clWzPLresXs\nqUFGi+NIvCeYG4Yb1R7imW9Cl1FpLC7yP7cu4wY+rtdophEhTKsfiMDnYhv5\n3Rck+S+K8pD18BA8FAC+9X3KZ0weV06LL19HutVk3pEET21pxCxeZysu7vhg\n56V8VSEXdzm5GPy0572jprH//Jcv95eTDXOOlCK0hXu09MvLYqb2DHzLt9uw\nn0MR2DYW7DPtdRwEJ0S+DSy1WzVChPYAT04xIgkacfL+t0Sf9yQUaatFu5rq\nEBh9\r\n=ZMB1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFi/BBCs5IKkuvca6M+f/4YcrF1Q14f86RDVDh//GPt/AiAo8PnpSen8sF63msT1FhKauhC+Z/NIY5uRt7dUuYRu2A=="}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/twitchps_1.5.3_1594871225102_0.4890795290350498"},"_hasShrinkwrap":false},"1.5.4":{"name":"twitchps","version":"1.5.4","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"lint":"eslint \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","eslintConfig":{"env":{"es6":true,"node":true},"parserOptions":{"ecmaVersion":6},"extends":"eslint:recommended","rules":{"semi":[2,"always",{"omitLastInOneLineBlock":true}],"no-unused-vars":[2,{"argsIgnorePattern":"^_","caughtErrors":"none"}],"no-control-regex":0,"global-require":1,"camelcase":0,"no-console":0,"dot-notation":1,"no-else-return":2,"no-plusplus":2,"constructor-super":2,"prefer-arrow-callback":1,"object-shorthand":2,"object-curly-spacing":1,"object-property-newline":[1,{"allowMultiplePropertiesPerLine":true}],"no-var":2,"no-inner-declarations":0}},"dependencies":{"events":"^3.0.0","shortid":"^2.2.8","ws":"^7.0.0"},"devDependencies":{"eslint":"~6.8.0"},"gitHead":"dd57fb66ccbd38fb571542ac854ba0aa6cb75882","_id":"twitchps@1.5.4","_nodeVersion":"13.12.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-6tLenYj3LmkiTFRR5zay49/6ohSvgEgLLEMM9sgAxpWl1OeUz1gBjM5MZqNMakfrG/79fjp6UG75nl/XQjGbvA==","shasum":"505610af4ae21af1b598b7029ba355890e267e56","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-1.5.4.tgz","fileCount":6,"unpackedSize":44419,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfD89/CRA9TVsSAnZWagAA8gUP/iGdv4jNMPKNpHvfQwLi\nRNcyEOiBkUinLjmTTPcoBk1yjGWIrXYipg5dvTbB7g7orbre5xT/XjOndEob\n1XKVTafXLdmP3XsKFXO6CF38gwhTbG2YuUBragke1SB42SA+WMZglgSJe6mS\nIqc8t0DqtmMAX6/8XSi0WY593S1D4UqimslDoZw4KyG7RrXq1J6N1WwwasTq\nueZpBNX6FzEQwoccMXgzHN0VFXiUCoY8btNZnVnMHvJpzlGPleNIiJCaM8cs\n3ansxRFf4a/PErFf0Xy99b2R1M0kshNraCjnipcbL/4QNPXs+vu4eneG7t83\nP19XcjF9ISdi5gJqxi0K9YSW+b4kjTyQbvFcsCH9FZ/ivldxsw9uITkE77Z6\nAumdgJtdZ37kRxcGcLXAabWzFaGYkWemi11Kftc5VcQ18Pn4vXZU6oUoZUro\ntUZcYtO6wISL/G6i6HMmDQszvl9pXUCC1MP/pY/QGb5cwmkuQn41E/TcYbkY\nu/zfOi9qX3DxoZnhYmB+6+v+1wTw/h/2kv9WTJRbBM4Yizo5HHLXfdGogAa3\nTbn+M+PyLJgLfmycvlNO+WmkF7PZLBwugxFmPrjppDdUhP0awsWXYVFBw2bB\nwjVCaukwHFG2RyGr/mndCEXME/+eXiozFgaOz7PK4627og+XeejoWEFy3kfw\nq8p8\r\n=3Fsq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC3NVTXqQMymw9aPYbmGj1Stcpr2S8VIGcPdaWPjIXQUAiEA5FEYlGUvGX/nIDsrgB1eesFfZFNivOSfcbQFIBuCRfQ="}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/twitchps_1.5.4_1594871679268_0.18415989348818695"},"_hasShrinkwrap":false},"1.5.5":{"name":"twitchps","version":"1.5.5","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"lint":"eslint \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","eslintConfig":{"env":{"es6":true,"node":true},"parserOptions":{"ecmaVersion":6},"extends":"eslint:recommended","rules":{"semi":[2,"always",{"omitLastInOneLineBlock":true}],"no-unused-vars":[2,{"argsIgnorePattern":"^_","caughtErrors":"none"}],"no-control-regex":0,"global-require":1,"camelcase":0,"no-console":0,"dot-notation":1,"no-else-return":2,"no-plusplus":2,"constructor-super":2,"prefer-arrow-callback":1,"object-shorthand":2,"object-curly-spacing":1,"object-property-newline":[1,{"allowMultiplePropertiesPerLine":true}],"no-var":2,"no-inner-declarations":0}},"dependencies":{"events":"^3.0.0","shortid":"^2.2.8","ws":"^7.0.0"},"devDependencies":{"eslint":"~6.8.0"},"gitHead":"540b4be7081bd4f6696d1daf9174a2d36a196ecd","_id":"twitchps@1.5.5","_nodeVersion":"14.9.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-PBuDPik+5OgwIvJ+QchdEVY6kD8T9fHVjW3i6qAV78waNM/OiAGTe95UBIsJgHFBoovnnL9FWOmMKTDB/n5w0w==","shasum":"89f5a29e2c763134de6fddba8bf089b4f550670a","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-1.5.5.tgz","fileCount":6,"unpackedSize":47821,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfWknxCRA9TVsSAnZWagAAZN4P+gNuVkIrbIcQKAkp3TQN\nxFIDA874RqqP+/lmtyFWxOuxiRDpBC6BWTSmEDshQewSH/dOoraUf8wNwk5C\nSXZPRVzSHsZm15uNsWDRaBjwhwgb6NAVinq1Vzt6fymxhkI59pmD6GjBhU+1\ngUTDUUafDjNtBq9UOcAm4G8WqzmFWM/ZOv5Zcb2okUe2fHu+QmxNZz9I3rJd\njgu+YPOk+2IcVpMr1oLPG/QngYFNw1n6JlXTDxS0Q2Dga1ny5RqzRgAzj4C+\n6Zp/clW+MowOBwxBIpJhzBkn+xNRZdaczvODA0ZziilUo0qyBRm7LQy8aXwC\nkEOs2UKQqoQFRsT4FEqEXlSqY+2nxAwAGnnHgNpJMoygr3pZuuxqpUNQWo2k\nIhMas3oROuIBB6ishKDeC+E9U0ojD91YRPHbzfJl6SLOkswyp1BJyhV7z0Ox\nPDCjO9u18beZ9gQ4eJBfV2KaobuAa0VyoHOO1trfs1uF2RAU23Knz7kiL3A5\nBDioads+71btNSxtwBt4LAAuOlLiKYCr1OgeMaNQpAm7sEjk2uaPqRm9Agta\nVDmYusK3yRdi+xExSjl6gu/MUbsgCcL17DGloP0VzPkNT8izu1P6ckQmUZ9i\nMkPwinu3l7M/BhtVXlUnNnuQkpMWcMlPOyxLv3LQtq2M3KLejm2RiQD4RIIv\n1Tlq\r\n=c9CT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC59rvQ01qgBXXLsdTaqqQKE4VMd0CX9mvpJjoNqyWwOAIgFNhapzUW4EfpTIogdrDB7bhe1x51IopvatdVa+luaqs="}]},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/twitchps_1.5.5_1599752688827_0.7062271856549565"},"_hasShrinkwrap":false},"1.6.0":{"name":"twitchps","version":"1.6.0","description":"Library to easily interact with Twitch PubSub System","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"main":"main.js","scripts":{"lint":"eslint \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"license":"MIT","bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"homepage":"https://github.com/jctrvlr/twitchps#readme","eslintConfig":{"env":{"es6":true,"node":true},"parserOptions":{"ecmaVersion":6},"extends":"eslint:recommended","rules":{"semi":[2,"always",{"omitLastInOneLineBlock":true}],"no-unused-vars":[2,{"argsIgnorePattern":"^_","caughtErrors":"none"}],"no-control-regex":0,"global-require":1,"camelcase":0,"no-console":0,"dot-notation":1,"no-else-return":2,"no-plusplus":2,"constructor-super":2,"prefer-arrow-callback":1,"object-shorthand":2,"object-curly-spacing":1,"object-property-newline":[1,{"allowMultiplePropertiesPerLine":true}],"no-var":2,"no-inner-declarations":0}},"dependencies":{"events":"^3.0.0","shortid":"^2.2.8","ws":"^7.0.0"},"devDependencies":{"eslint":"~6.8.0"},"gitHead":"525491d299e773d69ece73cf6930afa6a03e70b7","_id":"twitchps@1.6.0","_nodeVersion":"14.9.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-Wml8Do++AoaFNubB8g2T6pX7SrUd/iKvhtGPBxo3FdiZOt5FMKZWqLACCTXJIkPMPDX6P4kgJdP7giV74CMhUw==","shasum":"13f607cc2258367a1f2be112979283288b60272f","tarball":"https://registry.npmjs.org/twitchps/-/twitchps-1.6.0.tgz","fileCount":6,"unpackedSize":54829,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftAvaCRA9TVsSAnZWagAAWr4P/1YNlK/xYV0V2NF1Dryt\nsGRvbwW1Z3HHIlZOiiEwo6L5Sv/gSi0iUi35McfDoynH7Yejwp4NzdRho9gX\nOvZ8W6dEfpudViFeY0pCqyP9XuOTykWkrRLQLat5FKQzaJsxgdI8ihfduxxb\njuONfdvbDwUhArBWMzWwxXzgVBAyl0i8fRdKsz6XfGwJKTX3C32DGidJHUyW\nZVzNAuBuVFvxGHPP947TqdhwlEBRnna1M9hByv9S6o7NdDsiN5XQZ04MMQ9L\niwc0AEaYYw5QD4zS0p93aoXILLD8hEcYntSSeW8xmQP84DVPM2t/8AUDEudP\nTriTQ5FNR0UXieSdpjpHHFBIvS4ZKGY8zR8DtuKko4gc/t85Uhr/phEKrfSS\niYEib52Rbr2/EKhC9NiS+ydlPBErUqQvMB61Eji3MQRzApfnlPGJs2p6l6Gj\nVLJQub3Gr2Q97i22Mt9bH414ioMGghoWOM6BTTZ0i7A53lbFIPlJOAeMnLzG\npPuJ3GvbwLBL+q6MTl48GBuRCY750LTHXX5XyiSgLxJWE2JLs5/wRv2mLMhb\nmlYT194xDLowGPY1sD48GUJhjDsDyT5aj/yqL3n0aW0KybRM5ZXrYyaVHwAW\nbFeD+F9FiFAj24uxSrOX5uE+zRPyRfT/1LJW//RRPqRLZf9S2Ce6UIsQvHBc\n3bWU\r\n=I1kE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGoiUPS5YHjgXsw2y1Lp8YIeizpH8beJ1tDxYXZrD+/xAiEA8wgHLcYtgKrxhkNlvn2rIdAhsvP7ZuoVZLe97iQJkKo="}]},"_npmUser":{"name":"jackc_","email":"jack@jackc.io"},"directories":{},"maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/twitchps_1.6.0_1605635034379_0.25779254097525595"},"_hasShrinkwrap":false}},"readme":"# [TwitchPS](https://github.com/jctrvlr/twitchps)\n\n [![dependency status](https://david-dm.org/jctrvlr/twitchps.svg)](https://david-dm.org/jctrvlr/twitchps)\n [![Downloads](https://img.shields.io/npm/dm/twitchps.svg?style=flat)](https://www.npmjs.org/package/twitchps) [![Version](https://img.shields.io/npm/v/twitchps.svg?style=flat)](https://www.npmjs.org/package/twitchps)  [![GitHub issues](https://img.shields.io/github/issues/jctrvlr/twitchPS.svg)](https://github.com/jctrvlr/twitchPS/issues) [![Build Status](https://travis-ci.org/jctrvlr/twitchPS.svg?branch=master)](https://travis-ci.org/jctrvlr/twitchPS)\n\nNeat little [Node](http://nodejs.org) library which lets you easily interact with the Twitch.tv PubSub service.\n\n## Supported Topics\n\n|  Feature | Topic and Example | Required Scope  |  You are notified when …         |  \n|---|---|---|---|\n| Bits  | ```channel-bits-events-v1.<channel ID>``` <br><br> ```channel-bits-events-v2.<channel ID>``` <br><br> Example: ```channel-bits-events-v1.44322889```| ```bits:read```  | Anyone cheers on a specified channel.  |\n| Bits Badge Notification  | ```channel-bits-badge-unlocks.<channel_id>``` <br><br> Example: ```channel-bits-badge-unlocks.44322889```| ```bits:read``` | Message sent when a user earns a new Bits badge in a particular channel, and chooses to share the notification with chat. |\n| Channel Points | ```channel-points-channel-v1.<channel_id>```<br><br> Example: ```channel-points-channel-v1.44322889```| ```channel:read:redemptions``` | A custom reward is redeemed in a channel. |\n| Community Channel Points | ```community-points-channel-v1.<channel_id>```<br><br> Example: ```community-points-channel-v1.44322889```| No scope needed | Access to more events than standard channel points. It outputs to the ```reward-redeemed``` event. **Check events table below** |\n| Channel Subscriptions  | ```channel-subscribe-events-v1.<channel ID>``` <br><br> Example: ```channel-subscribe-events-v1.44322889```| ```channel_subscriptions```  | Anyone subscribes (first month, gift sub) or resubscribes (subsequent months) to a channel.  |\n| Whispers  |  ```whispers.<user ID>``` <br><br> Example: ```whispers.44322889```  | ```whispers:read```  | Anyone whispers the specified user.  |\n| Stream Status  |   ```video-playback.<channel name>``` <br><br> Example: ```video-playback.summit1g``` |  No scope needed |  Status on stream going up, down, and viewer count. **Not officially supported by Twitch**|\n| Moderator Action  | ```chat_moderator_actions.<channel ID>``` <br><br> Example: ```chat_moderator_actions.44322889``` | ```channel:moderate``` | A moderator performs an action in the channel. |\n\n## Installation\n\n#### Node\n\nInstall via NPM\n\n~~~ bash\nnpm i twitchps --save\n~~~\n\n## Usage\n\n### Include the Component\n\n#### Options\n\n| Name  | Type  |  Optional | Default  | Description  |\n|---|---|---|---|---|\n| init_topics  | JSON object  | False  | **NONE*  |  JSON Object array of initial topics with tokens. See below. |\n|  reconnect |  boolean | True  | True  |  Reconnect when disconnected from Pubsub servers.|\n| debug  | boolean  | True  | False  |  Turns debug console output on and off. |\n\n~~~ javascript\nconst TwitchPS = require('twitchps');\n\n// Initial topics are required\nlet init_topics = [{topic: 'video-playback.bajheera'}, {topic: 'whispers.44322889', token: 'nkuaf7ur3trg7ju37md1y3u5p52s3q'}];\n// Optional reconnect, debug options (Defaults: reconnect: true, debug: false)\nvar ps = new TwitchPS({init_topics: init_topics, reconnect: false, debug: true});\n\nps.on('stream-up', (data) => {\n  console.log(data.time , data.channel_name);\n  // Use data here\n});\n~~~\n\n> Token changed for security reasons. You can generate a token [here](https://twitchapps.com/tmi/).\\\n> In order to find the userID/channelID follow the instructions [here](https://dev.twitch.tv/docs/v5/guides/using-the-twitch-api/#translating-from-user-names-to-user-ids).\\\n> For more detailed usage see [example application](https://github.com/jctrvlr/twitchps_example).\n\n#### Connection Events\n\n|  Event Name    | You are notified when …                      |\n|:--------------:|:--------------------------------------------:|\n| 'connected'    | A successful connection has been established |\n| 'disconnected' | The connection has been terminated           |\n| 'reconnect'    | An attempt will be made to reconnect         |\n\n#### Events emitted after subscribing/adding topics\n\n|              Event Name             |                                                                                                                                                                                                                      List of fields                                                                                                                                                                                                                      |\n|:-----------------------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|\n| 'error' | origin - {string}<br> error - {string} <br>(optional if topic is involved) topic - {string} |\n| 'bits' | badge_entitlement - {object} (v2 only) <br> bits_used - {integer} <br> channel_id - {string} <br>channel_name - {string}<br>  chat_message - {string}<br> context - {string} <br> is_anonymous - {boolean} (v2 only) <br> message_id - {string} <br>message_type - {string}<br> time - {string}<br>  total_bits_used - {integer} <br>user_id - {string} <br>user_name - {string}<br> version - {string} |\n| 'bits-badge' | user_id - {string} - ID of user who earned the new Bits badge <br> user_name - {string} - Login of user who earned the new Bits badge <br> channel_id - {string} - ID of channel where user earned the new Bits badge <br> channel_name - {string} - Login of channel where user earned the new Bits badge <br> badge_tier - {int} - Value of Bits badge tier that was earned (1000, 10000, etc.) <br> chat_message - {string} - [Optional] Custom message included with share <br> time - {string} - Time when the bits were used. RFC 3339 format |\n| 'reward-redeemed'<br>(from ```community-points-channel-v1```) | timestamp - {string} - Time the pubsub message was sent <br> redemption - {object} - Data about the redemption, includes unique id and user that redeemed it <br> channel_id - {string} - ID of the channel in which the reward was redeemed. <br> redeemed_at - {string} - Timestamp in which a reward was redeemed <br> reward - {object} - Data about the reward that was redeemed <br> user_input - {string} - [Optional] A string that the user entered if the reward requires input <br> status - {string} - reward redemption status, will be FULFULLED if a user skips the reward queue, UNFULFILLED otherwise |\n| 'channel-points'<br>(from ```channel-points-channel-v1```) | timestamp - {string} - Time the pubsub message was sent <br> redemption - {object} - Data about the redemption, includes unique id and user that redeemed it <br> channel_id - {string} - ID of the channel in which the reward was redeemed. <br> redeemed_at - {string} - Timestamp in which a reward was redeemed <br> reward - {object} - Data about the reward that was redeemed <br> user_input - {string} - [Optional] A string that the user entered if the reward requires input <br> status - {string} - reward redemption status, will be FULFULLED if a user skips the reward queue, UNFULFILLED otherwise |\n| 'community-points-all' | type - {string}<br> timestamp - {string}<br> event - {object} |\n| 'community-reward-created'<br>'community-reward-updated'<br>'community-reward-deleted'<br>'community-goal-created'<br>'community-goal-updated'<br>'community-goal-deleted' | timestamp - {string}<br> event - {object} |\n| 'subscribe' | user_name - {string} <br>display_name - {string} <br>channel_name - {string}<br> user_id - {string} <br>channel_id- {string}<br> time- {string}<br> sub_plan- {string}<br> sub_plan_name - {string}<br> months - {integer}<br> cumulative_months - {integer}<br> context - {string}<br> sub_message - {object}<br> sub_message.message - {string}<br> sub_message.emotes - {array}<br>  recipient_id - {integer}<br>  recipient_user_name - {string}<br>  recipient_display_name - {string} |\n| 'whisper_sent' & 'whisper_received' | id - {integer}<br> body - {string} <br>thread_id - {string}<br> sender - {JSON} <br>  sender.id - {integer} <br>  sender.username - {string}<br>   sender.display_name - {string}<br>   sender.color - {string} <br>  sender.badges - {Array}<br>   sender.emotes - {Array}<br> recipient - {JSON} <br>  recipient.id - {integer}<br>   recipient.username - {string} <br>  recipient.display_name - {string} <br>  recipient.color - {string} <br>  recipient.badges - {Array} <br>sent_ts - {integer}<br> nonce - {string} |\n| 'stream-up' | time - {integer} <br>channel_name- {string}<br> play_delay - {string} |\n| 'stream-down' | time - {integer} <br>channel_name- {string} |\n| 'viewcount' | time - {integer}<br> channel_name- {string} <br>viewers - {integer} |\n| 'automod_rejected' | user - {string}<br> user_id - {string} <br>message_id - {string}<br>message - {string} <br> reason - {string} |\n| 'approved_automod_message' | createdBy - {string}<br> created_by_user_id - {string} <br>message_id - {string}<br>target_user_login - {string} <br> target_user_id - {string} |\n| 'denied_automod_message' | createdBy - {string}<br> created_by_user_id - {string} <br>message_id - {string}<br>target_user_login - {string} <br> target_user_id - {string} |\n| 'add_permitted_term' | createdBy - {string}<br> created_by_user_id - {string} <br>approved_term - {string} |\n| 'delete_permitted_term' | createdBy - {string}<br> created_by_user_id - {string} <br>deleted_term - {string} |\n| 'add_blocked_term' | createdBy - {string}<br> created_by_user_id - {string} <br>approved_term - {string} |\n| 'add_permitted_term' | createdBy - {string}<br> created_by_user_id - {string} <br>blocked_term - {string} |\n\n\n#### Listen to new topics\n\n~~~ javascript\nps.addTopic([{topic: \"video-playback.starladder_cs_en\"}]);\nps.addTopic([{topic: 'whispers.38290946', token: 'nkuaf7ur3trg7ju37md1y3u5p52s3q'}]);\n~~~\n\n> Token changed for security reasons.\n\n#### Un-listen (remove) to existing topics\n\n~~~ javascript\nps.removeTopic([{topic: \"video-playback.starladder_cs_en\"}]);\n~~~\n\n> Token not required.\n\n## Community\n\n- Follow [@thecuriouseng](https://twitter.com/thecuriouseng) on Twitter\n- Have a question that is not a bug report? - Tweet me [@thecuriouseng](https://twitter.com/thecuriouseng)\n- Found a bug ? [Submit an issue](https://github.com/jctrvlr/twitchps/issues/new).\n","maintainers":[{"name":"jackc_","email":"jack@jackc.io"}],"time":{"modified":"2022-06-28T00:13:53.280Z","created":"2017-04-08T06:24:01.972Z","0.2.0":"2017-04-08T06:24:01.972Z","0.2.1":"2017-04-08T21:47:18.817Z","0.2.2":"2017-04-09T02:56:47.523Z","0.2.3":"2017-04-09T02:59:31.528Z","0.2.4":"2017-04-09T03:01:13.348Z","0.3.0":"2017-04-11T16:33:36.132Z","0.3.1":"2017-04-11T16:36:01.985Z","0.4.0":"2017-04-18T18:03:24.049Z","0.4.1":"2017-04-18T18:14:23.382Z","0.4.2":"2017-04-18T21:59:13.941Z","0.4.3":"2017-04-24T02:59:44.293Z","0.5.0":"2017-04-24T03:21:39.053Z","0.5.1":"2017-04-24T03:51:47.352Z","0.5.2":"2017-04-27T03:44:49.497Z","0.5.3":"2017-04-27T15:56:19.266Z","0.5.4":"2017-06-02T02:41:30.829Z","0.5.5":"2017-06-13T18:46:23.880Z","0.5.6":"2017-12-29T15:28:56.331Z","0.5.7":"2017-12-29T15:31:05.498Z","0.6.0":"2018-02-06T02:55:42.359Z","0.6.0-pr1":"2018-09-17T06:43:04.684Z","1.0.0":"2019-01-14T04:23:29.782Z","1.1.0":"2019-02-04T20:32:08.992Z","1.2.0":"2019-02-20T01:58:04.610Z","1.3.0":"2020-04-09T00:25:31.864Z","1.4.0":"2020-04-17T16:06:17.032Z","1.4.1-0":"2020-04-22T16:43:14.159Z","1.5.0":"2020-04-22T18:05:54.421Z","1.5.1-0":"2020-06-22T14:20:11.744Z","1.5.1":"2020-06-22T15:41:20.066Z","1.5.2-0":"2020-07-16T03:22:13.324Z","1.5.2-1":"2020-07-16T03:32:49.197Z","1.5.2-2":"2020-07-16T03:35:46.085Z","1.5.2-3":"2020-07-16T03:37:36.745Z","1.5.2":"2020-07-16T03:45:47.320Z","1.5.3":"2020-07-16T03:47:05.243Z","1.5.4":"2020-07-16T03:54:39.413Z","1.5.5":"2020-09-10T15:44:48.949Z","1.6.0":"2020-11-17T17:43:54.490Z"},"homepage":"https://github.com/jctrvlr/twitchps#readme","repository":{"type":"git","url":"git+https://github.com/jctrvlr/twitchps.git"},"author":{"name":"John Cummings"},"bugs":{"url":"https://github.com/jctrvlr/twitchps/issues"},"license":"MIT","readmeFilename":"README.md","keywords":["twitch","twitch.tv","pubsub","whisper","bits","cheers"],"users":{"pkfln":true}}