{"_id":"@harelpls/use-pusher","_rev":"29-8568aea541865f2a4e7e09daae6690e7","name":"@harelpls/use-pusher","dist-tags":{"latest":"7.2.1","beta":"4.1.4"},"versions":{"3.0.5":{"name":"@harelpls/use-pusher","version":"3.0.5","description":"A wrapper around pusher-js for easy-as hooks in React.","author":{"name":"@mayteio"},"keywords":["react","react hooks","pusher","channels","pusher-js","websockets","realtime messaging","typescript"],"license":"MIT","repository":{"type":"git","url":"https://github.com/mayteio/use-pusher"},"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","typings":"dist/index.d.ts","engines":{"node":">=8","npm":">=5"},"scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","start":"rollup -c -w","types":"dts-bundle-generator -o ./dist/index.d.ts ./src/index.ts --external-imports pusher-js","docs":"typedoc --options ./typedoc.js ./src","release":"yarn test && yarn build && yarn types && yarn publish"},"dependencies":{"dequal":"^1.0.0","invariant":"^2.2.4"},"peerDependencies":{"pusher-js":"^5.0.0","react":"^16.9.0","react-dom":"^16.9.0"},"devDependencies":{"@babel/core":"^7.2.2","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.3.1","@testing-library/react":"^9.1.2","@testing-library/react-hooks":"^2.0.1","@types/invariant":"^2.2.30","@types/jest":"^24.0.18","@types/pusher-js":"^4.2.2","@types/react":"^16.7.22","cross-env":"^5.2.0","dts-bundle-generator":"^3.2.0","gh-pages":"^2.0.1","jest-fetch-mock":"^2.1.2","pusher-js":"^5.0.0","pusher-js-mock":"^0.2.0","react":"^16.9.0","react-dom":"^16.9.0","react-scripts":"^3.0.1","react-test-renderer":"^16.9.0","rollup":"^1.20.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-dts":"^1.1.6","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-typescript2":"^0.22.1","rollup-plugin-url":"^2.1.0","ts-jest":"^24.0.2","typedoc":"^0.15.0","typescript":"^3.2.4"},"jest":{"collectCoverageFrom":["src/**/*.{ts,tsx}"],"coveragePathIgnorePatterns":["./src/index.ts","./src/mocks.ts","./src/helpers.ts","./src/types.ts"]},"_id":"@harelpls/use-pusher@3.0.5","dist":{"shasum":"373d174cadef7449aed301c30783adb66b831437","integrity":"sha512-KVA9H3Fba4kZ5BYHvr8kZ5B/+CH4m7N0jVR5Z7zI0DSvCzBxsOYKE656YGZ1NSuVQ9OIn3S86IkP+FvadIfQYQ==","tarball":"https://registry.npmjs.org/@harelpls/use-pusher/-/use-pusher-3.0.5.tgz","fileCount":16,"unpackedSize":123099,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeJnCGCRA9TVsSAnZWagAAc4cP/3UfrEPZEZ39QakD7q2n\n9zeoPiU+0q5bOO8MAraZ67UC0e4Fc0q1S4KhAN03K1SmvUFnAFJ/ZWupsGt8\nEmSwhXAPoQQZ4dNEpUk74JszRTCkNFGkzfRLuEnOkPwRciIpo+CDxiMLSHDY\nIsx2eQ8n5k2fZG3rny/ZoWPKCWpz3DUtGexh9grj7yqWYHzzDayzqmROtVxR\nbG3PdOoOYBr43qMAZqmeI58gfx1kZeAI1R9gFdTmR+PwlHMQEMWhQHouqOgR\nyVkMaqZ8yR3lIeIad4R2WsyAzO5XRBP4rciAdLOb9ufUMv/hkkzlf4Yft0Es\nc+OKrKRNGr8VjhHHK2ILgKPIf6oSYLHRZEl/nBibWE4WbDD+QJbFHg0kQpDR\nQ/eThAS0iwXa2Ciqeu/gJJ5CdtJhRjigmwSU5989lGZe1KKk/YbHduTYzptZ\nm6TmxIbyxZgDn2/xIoGILt/QQ6kwg4/NOfaYjL/HexJMlM5WS0bQgORNBacD\nH3FUdIzIbqJgsuctYvPsUGa0eN0jgkRofF3O4B677DNd+AOuppah3d4kkTk+\nsDAKu8ZDfMU9hVnTqK9PXpBDd+WYtpxH7eSA3YJO+EVqkfoSuSA98pfIrBDY\nX4wEWXHPS903iXa3OKhtSCAwc93NgtaYf3jqWE5rYxsEcv9pddsqNVlwt4xB\nrXUg\r\n=ccR1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCIdK663VqgFeT7Jaih0RecsZR/uUnW5Km4SVjuB2E1TwIhAJUgf/LwNoQAR3YKOSJkuV2zlwEfe99H7loXfXGI2gZW"}]},"maintainers":[{"name":"harelpls","email":"harley.alexander@melbourne.vic.gov.au"}],"_npmUser":{"name":"harelpls","email":"harley.alexander@melbourne.vic.gov.au"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-pusher_3.0.5_1579577478407_0.8260272441535843"},"_hasShrinkwrap":false},"3.0.6":{"name":"@harelpls/use-pusher","version":"3.0.6","description":"A wrapper around pusher-js for easy-as hooks in React.","author":{"name":"@mayteio"},"keywords":["react","react hooks","pusher","channels","pusher-js","websockets","realtime messaging","typescript"],"license":"MIT","repository":{"type":"git","url":"https://github.com/mayteio/use-pusher"},"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","typings":"dist/index.d.ts","engines":{"node":">=8","npm":">=5"},"scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","start":"rollup -c -w","types":"dts-bundle-generator -o ./dist/index.d.ts ./src/index.ts --external-imports pusher-js","docs":"typedoc --options ./typedoc.js ./src","release":"yarn test && yarn build && yarn types && yarn publish"},"dependencies":{"pusher-js":"^5.0.0","dequal":"^1.0.0","invariant":"^2.2.4"},"peerDependencies":{"react":"^16.9.0","react-dom":"^16.9.0"},"devDependencies":{"@babel/core":"^7.2.2","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.3.1","@testing-library/react":"^9.1.2","@testing-library/react-hooks":"^2.0.1","@types/invariant":"^2.2.30","@types/jest":"^24.0.18","@types/pusher-js":"^4.2.2","@types/react":"^16.7.22","cross-env":"^5.2.0","dts-bundle-generator":"^3.2.0","gh-pages":"^2.0.1","jest-fetch-mock":"^2.1.2","pusher-js-mock":"^0.2.0","react":"^16.9.0","react-dom":"^16.9.0","react-scripts":"^3.0.1","react-test-renderer":"^16.9.0","rollup":"^1.20.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-dts":"^1.1.6","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-typescript2":"^0.22.1","rollup-plugin-url":"^2.1.0","ts-jest":"^24.0.2","typedoc":"^0.15.0","typescript":"^3.2.4"},"jest":{"collectCoverageFrom":["src/**/*.{ts,tsx}"],"coveragePathIgnorePatterns":["./src/index.ts","./src/mocks.ts","./src/helpers.ts","./src/types.ts"]},"_id":"@harelpls/use-pusher@3.0.6","dist":{"shasum":"d25cc6162f33a57c7a72aca4df64f4b7c73b9f9c","integrity":"sha512-0jKX7OyGHXkYcv3FXdasxpFZLObsUmwrZcQJ2DHR0wO2ONxhOlxalpSYV6xE3KS68K+KYa5SkT3fOAVYzp4aIg==","tarball":"https://registry.npmjs.org/@harelpls/use-pusher/-/use-pusher-3.0.6.tgz","fileCount":16,"unpackedSize":125025,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeJnLYCRA9TVsSAnZWagAAaUcP/1qgCioMog/oFdUNpH6o\nOZ0k2IbWQ7Zajs0fyZWiQ0yVY4Kocoq+4LQZVk/9MK5uE0SlrkMMXwmZqQgm\nJgkBKrVjYke1Ao5NKIKUQWBtm2zrj5ZJUY7EOmJkJ+2+3kh3X/Q6vu7+DhK/\ncl7UY+I00jchVY/TWM/64Wmtv1ql8jkx9MAH86HWoK5qNxl/2/G+dQuOdnZz\nAMT4K0jeQh043VVu8iba/4YxcFYJF+WzXkihXH/UzgU6NHdfZHOng3b3FcAp\n8XZDFmrQxir47WC8+Td7hmGqsmTvelF1KSNiUmhFm2PQUwq1OQBAXUMupgKU\nNw2+pYq9IKwfHDz623M3fSNV6o9LN8g4571JKNCuGl7cYEX51/xUqq8bd0Kp\n+QsCThr2lKgy6xIfnf+lScThUKomodXgwgmybTwG6fp9YGZpaHe8tF0bCLa9\nD8CY/OFyrRqL1oKzUAudcdvUFGWPCDQ9kyE4XqhD0oW6FowsayZ6EooYFtyO\nUQ/J2+tXerypiIA1sm/Kl2h07M26d5mpv4+pSI8/uFlfW3f6sNXYNZtMK1UD\n0Yaf506XGOS3FzFDCBHO/7EX6nAZCVrCVuRZGY15F8d4n8RcVJw37iIWEmOn\nw52z59twoR/93VnUqFr/e49dGCO+Nf/T519KDTHFRXWQr+3aZ8PSVHK3xPRS\npGoE\r\n=l037\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCy/lBJmwAnjbPTB6ZCrJk9RSTdaMJq8uu0tfho2Dpi5wIga43jWJU3j541kLsh9Xb4RKmopWB9zkAOIMmFcfuOqeM="}]},"maintainers":[{"name":"harelpls","email":"harley.alexander@melbourne.vic.gov.au"}],"_npmUser":{"name":"harelpls","email":"harley.alexander@melbourne.vic.gov.au"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-pusher_3.0.6_1579578072067_0.9858833497583335"},"_hasShrinkwrap":false},"3.0.7":{"name":"@harelpls/use-pusher","version":"3.0.7","description":"A wrapper around pusher-js for easy-as hooks in React.","author":{"name":"@mayteio"},"keywords":["react","react hooks","pusher","channels","pusher-js","websockets","realtime messaging","typescript"],"license":"MIT","repository":{"type":"git","url":"https://github.com/mayteio/use-pusher"},"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","typings":"dist/index.d.ts","engines":{"node":">=8","npm":">=5"},"scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","start":"rollup -c -w","types":"dts-bundle-generator -o ./dist/index.d.ts ./src/index.ts --external-imports pusher-js","docs":"typedoc --options ./typedoc.js ./src","release":"yarn test && yarn build && yarn types && yarn publish"},"dependencies":{"dequal":"^1.0.0","invariant":"^2.2.4","pusher-js":"^5.0.0"},"peerDependencies":{"react":"^16.9.0","react-dom":"^16.9.0"},"devDependencies":{"@babel/core":"^7.2.2","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.3.1","@testing-library/react":"^9.1.2","@testing-library/react-hooks":"^2.0.1","@types/invariant":"^2.2.30","@types/jest":"^24.0.18","@types/pusher-js":"^4.2.2","@types/react":"^16.7.22","cross-env":"^5.2.0","dts-bundle-generator":"^3.2.0","gh-pages":"^2.0.1","jest-fetch-mock":"^2.1.2","pusher-js-mock":"^0.2.0","react":"^16.9.0","react-dom":"^16.9.0","react-scripts":"^3.0.1","react-test-renderer":"^16.9.0","rollup":"^1.20.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-dts":"^1.1.6","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-typescript2":"^0.22.1","rollup-plugin-url":"^2.1.0","ts-jest":"^24.0.2","typedoc":"^0.15.0","typescript":"^3.2.4"},"jest":{"collectCoverageFrom":["src/**/*.{ts,tsx}"],"coveragePathIgnorePatterns":["./src/index.ts","./src/mocks.ts","./src/helpers.ts","./src/types.ts"]},"_id":"@harelpls/use-pusher@3.0.7","dist":{"shasum":"f5e61c0390ea53787233ba06d4fc47e391cb1cc4","integrity":"sha512-ew0p+B/JWDNkonAgWB5l81K8U83GN21CdL1jl1SN8QdqAjBeV7yh213qSgB17yo14w647gMmMelpMD+f9QVV2A==","tarball":"https://registry.npmjs.org/@harelpls/use-pusher/-/use-pusher-3.0.7.tgz","fileCount":16,"unpackedSize":126158,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeJnTOCRA9TVsSAnZWagAAKt8P/izMnbgL31XQ7U9sIwcr\nLVo3kJ5GKBukfRPfoVRGpdZqlrYj78FzFrgek3IhfjW7eKwq7suDgwJ62IIT\n/XScGzT4V2QVVC0K1+FqBxmZsKhdyAngh9zmjJGvZ1vNPyVr0j5fLXaGjRwV\ntjxvzMkYz+VJQBMivRUR6h9fAx364giyIQyOo2A8EH/SAwI0v1KuVWqpO1z5\njtA57bYeWuiHHtvhEKYOwsLtqcuSFalZNKQ+SGIVKXUmLOc47AnkypFp3Bms\nPCu/CitIzLOXQFhblM24AVZXTJPTqfNZ3qxvLowIwsq7mA6d8TNkA2H9g3gr\nq25qIdguUFECcqEucdG/LgsrE3liHS1IWbdhDUjB+WyP9B/6EF/dNAyS6vgT\nB8izpvFktNGc48W66zrqv8tSGcMr1sTeJvePqBB4S6jytL5UwzOC0+kzU/F/\nu3oRcczXryuQSx/2Ub21Y0b4cF4ZeiS36H3PLqXD0VVwMcdG7VYsGBud2+lQ\nLJ+zZCcioth5l23obH3V3aMIS544+g+FwBXKnYihl3gQpoUJ5o4wKvYnzPvF\nCijUmmsZ/BxGCdwYqeZanfdBF5qBv8/CFuzwnq/mU/fLcodMh2qHF0vVURN2\nZ7zri4eBpczS/i5HR2FmfAJN2wwJnmLwHChehDa1u6QfSG3OVxXPHg7xOX6Y\nBYik\r\n=lyIY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCDwgwohPhiez+0n9C56xWdI1JlFvSGPp0j4DJ611T2CwIhALdISWjfSldfd1qMBQBAssaPPuVJhq20SZ4riJMANqTe"}]},"maintainers":[{"name":"harelpls","email":"harley.alexander@melbourne.vic.gov.au"}],"_npmUser":{"name":"harelpls","email":"harley.alexander@melbourne.vic.gov.au"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-pusher_3.0.7_1579578574385_0.3522880579926264"},"_hasShrinkwrap":false},"3.0.8":{"name":"@harelpls/use-pusher","version":"3.0.8","description":"A wrapper around pusher-js for easy-as hooks in React.","author":{"name":"@mayteio"},"keywords":["react","react hooks","pusher","channels","pusher-js","websockets","realtime messaging","typescript"],"license":"MIT","repository":{"type":"git","url":"https://github.com/mayteio/use-pusher"},"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","typings":"dist/index.d.ts","engines":{"node":">=8","npm":">=5"},"scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","start":"rollup -c -w","types":"dts-bundle-generator -o ./dist/index.d.ts ./src/index.ts --external-imports pusher-js","docs":"typedoc --options ./typedoc.js ./src","release":"yarn test && yarn build && yarn types && yarn publish"},"dependencies":{"dequal":"^1.0.0","invariant":"^2.2.4","pusher-js":"^5.0.0"},"peerDependencies":{"react":"^16.9.0","react-dom":"^16.9.0"},"devDependencies":{"@babel/core":"^7.2.2","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.3.1","@testing-library/react":"^9.1.2","@testing-library/react-hooks":"^2.0.1","@types/invariant":"^2.2.30","@types/jest":"^24.0.18","@types/pusher-js":"^4.2.2","@types/react":"^16.7.22","cross-env":"^5.2.0","dts-bundle-generator":"^3.2.0","gh-pages":"^2.0.1","jest-fetch-mock":"^2.1.2","pusher-js-mock":"^0.2.0","react":"^16.9.0","react-dom":"^16.9.0","react-scripts":"^3.0.1","react-test-renderer":"^16.9.0","rollup":"^1.20.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-dts":"^1.1.6","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-typescript2":"^0.22.1","rollup-plugin-url":"^2.1.0","ts-jest":"^24.0.2","typedoc":"^0.15.0","typescript":"^3.2.4"},"jest":{"collectCoverageFrom":["src/**/*.{ts,tsx}"],"coveragePathIgnorePatterns":["./src/index.ts","./src/mocks.ts","./src/helpers.ts","./src/types.ts"]},"_id":"@harelpls/use-pusher@3.0.8","dist":{"shasum":"4538d294227542c6c2bfddac9f210beb0de0e5ed","integrity":"sha512-bplC+0cqdyth4S1HQwdzq1PaWVDQxvi1mmnm6xsLEfWmI3/RPc7Pwefl9y5bCq5EiHlcfhhlk1s2vy5JVGZYcQ==","tarball":"https://registry.npmjs.org/@harelpls/use-pusher/-/use-pusher-3.0.8.tgz","fileCount":16,"unpackedSize":126873,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeJniqCRA9TVsSAnZWagAA10gP/1VPbBWGRtHUGQtGwUFS\nZrgZMb9Y95U8QcgVx05nkBclMNjuK63Hg+gk+wmaNQIe4jIeoDj9AoKp42G7\n1ud0SVHZjsvXzpMNLtj90kNIdKVPSw1XEPcyUszbnX5fEilPaM9hGTECxHkp\nT4SW9ufADsaM0Q2KaLT8WXoagoiYujzSQu8TmmqAnbGx97g0ayFWS5FJLlX0\nsJNy2l5EvTRr9aGYlubrj7B90BNJpKEfYgdPwS3Px2IHSNL3CujFaiV/9esE\nmVxfqrtqRX5eSce5keSu7DA0oUzPzUgUF786wOIF82jLBEDXi9bfPvsHVlDK\nHe8axQMEN4CiiaZyDMbTzJUgYF31O7f4SVsTmO5R9D2HMHRpVz7OptWsBjEd\ntA0h3dq+kTmULFGBhSpGQe98BthtHnT+/8Z+ODmWj/QRipK2/AZFWREyCrKa\nan4WvH1gIivDbX/78VZXi7HZxCOpNp/OiteMIAwbtowImh0XIkNHbGyGkX8n\ngDnF0nBe6zvjhzi7tCKt7NGnhl0aktkZlcnPhBbKRs0Ca20lweZ6LR6DEGZb\njmtm0HSwnG5igSMEg40oQa+0KMYq7IGqvFHYTmOtAsaVrH/EPJBvi/hy0wlP\nYiWN0vgmKORiyp37hc6lhAg6bNK6RGMeyf77b81ZrU+PJr04fhqyq0f00wSu\nYxBL\r\n=8qK7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDFVnDYpjL3dCAVbj9hvhJgJsDwVJjjizNE/H1gmxlYBwIgSy3fpa8KPvrGMDNE26wFj3AtQcTxcgvYItnAXZikoUA="}]},"maintainers":[{"name":"harelpls","email":"harley.alexander@melbourne.vic.gov.au"}],"_npmUser":{"name":"harelpls","email":"harley.alexander@melbourne.vic.gov.au"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-pusher_3.0.8_1579579562058_0.33654814253100085"},"_hasShrinkwrap":false},"3.1.0":{"name":"@harelpls/use-pusher","version":"3.1.0","description":"A wrapper around pusher-js for easy-as hooks in React.","author":{"name":"@mayteio"},"keywords":["react","react hooks","pusher","channels","pusher-js","websockets","realtime messaging","typescript"],"license":"MIT","repository":{"type":"git","url":"https://github.com/mayteio/use-pusher"},"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","typings":"dist/index.d.ts","engines":{"node":">=8","npm":">=5"},"scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","start":"rollup -c -w","types":"dts-bundle-generator -o ./dist/index.d.ts ./src/index.ts --external-imports pusher-js","docs":"typedoc --options ./typedoc.js ./src","release":"yarn test && yarn build && yarn types && yarn publish"},"dependencies":{"dequal":"^1.0.0","invariant":"^2.2.4","pusher-js":"^5.0.0"},"peerDependencies":{"react":"^16.9.0","react-dom":"^16.9.0"},"devDependencies":{"@babel/core":"^7.2.2","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.3.1","@testing-library/react":"^9.1.2","@testing-library/react-hooks":"^2.0.1","@types/invariant":"^2.2.30","@types/jest":"^24.0.18","@types/react":"^16.7.22","cross-env":"^5.2.0","dts-bundle-generator":"^3.2.0","gh-pages":"^2.0.1","jest-fetch-mock":"^2.1.2","pusher-js-mock":"^0.2.0","react":"^16.9.0","react-dom":"^16.9.0","react-scripts":"^3.0.1","react-test-renderer":"^16.9.0","rollup":"^1.20.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-dts":"^1.1.6","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-typescript2":"^0.22.1","rollup-plugin-url":"^2.1.0","ts-jest":"^24.0.2","typedoc":"^0.15.0","typescript":"^3.2.4"},"jest":{"collectCoverageFrom":["src/**/*.{ts,tsx}"],"coveragePathIgnorePatterns":["./src/index.ts","./src/mocks.ts","./src/helpers.ts","./src/types.ts"]},"_id":"@harelpls/use-pusher@3.1.0","dist":{"shasum":"d5dc2ec40bffe50b85fdec176ba0851b92c80d42","integrity":"sha512-/jzj2D0Wjt1wthqqeXKBOFlYBb0Ek1hiSSwOjqhyG6Q7Jb79deGCT9L+FRR93BS3d9sawhqS5Lo8HuyBdSoG3A==","tarball":"https://registry.npmjs.org/@harelpls/use-pusher/-/use-pusher-3.1.0.tgz","fileCount":16,"unpackedSize":126219,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeQ3wrCRA9TVsSAnZWagAAyu4P/R4zgLf30WycEsj8zGAX\n7yuqCSmjviYkOkjKnLh9mHFFMeFBMljeiLWKWoHTsnLCRzdagPm2UI1zY1z3\ncuBbXqmR9DBWlV+kQAbIuVEn56lnxqh5JsXaOEIV7ycqYKXYQmHFvnKaX7O8\nOaP8jYMF2vnuSoHm6LIelr6RzDsbinNNiXJostl6Cpw9cdysmLOT+syRXqdZ\nj3pG2u1jjjxzAVjBhcofzuO8RZoDwdku48BwqM7zju39VHmDIBuBK/QKxOE0\nPfnLn9KYt/aK0lanqmlS62mByUevBN1IdC4Sgp8bCiKBXsSktoPiWv/8BAwk\nb/OGcFp38fQ7euYDQU67euztKcuuaxXxSburdXghFcCtp7bRg9jguQHoAHQ/\nw44s0b/NM7X7KcKKvxlrJoRMpFtx3xXhPSBmzVm7mohXnyjtM2p5wwYV+x9O\nI6o7FP6RP9E1xd28ov+G6fq3Pnt2e0GEy6IeYS2rMSNyD4a9IZSbF5mY9aLB\nVPgEbm706ySoFYCKYXm6LDaJamfINnVWxD5mm3nSSvzXD3tMHHiVTxLVg5U2\nKPIXK8YWjvZ7iJxixbz5F/G24IGw4Vd2OyfPkzNPqGlYXCGisa3GE5KPL3f0\nZK4+XA3XDzbfaZtvgkjHccrZdTAy/7124azFxKL07RaMz/MzcOP9aWqd13KJ\n3V/R\r\n=n2CB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDI2wbCc3ksgZ7Zn3LTWdI3i+13PmYIfWPxDMQbGa27lAIgDUCmhaf919TVXAbI8Doteb0rK49zTDmFEYj1mwY//jA="}]},"maintainers":[{"name":"harelpls","email":"harley.alexander@melbourne.vic.gov.au"}],"_npmUser":{"name":"harelpls","email":"harley.alexander.au@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-pusher_3.1.0_1581481003359_0.40627250089469236"},"_hasShrinkwrap":false},"3.1.1":{"name":"@harelpls/use-pusher","version":"3.1.1","description":"A wrapper around pusher-js for easy-as hooks in React.","author":{"name":"@mayteio"},"keywords":["react","react hooks","pusher","channels","pusher-js","websockets","realtime messaging","typescript"],"license":"MIT","repository":{"type":"git","url":"https://github.com/mayteio/use-pusher"},"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","typings":"dist/index.d.ts","engines":{"node":">=8","npm":">=5"},"scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","start":"rollup -c -w","types":"dts-bundle-generator -o ./dist/index.d.ts ./src/index.ts --external-imports pusher-js","docs":"typedoc --options ./typedoc.js ./src","release":"yarn test && yarn build && yarn types && yarn publish"},"dependencies":{"dequal":"^1.0.0","invariant":"^2.2.4","pusher-js":"^5.1.0"},"peerDependencies":{"react":"^16.9.0","react-dom":"^16.9.0"},"devDependencies":{"@babel/core":"^7.2.2","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.3.1","@testing-library/react":"^9.1.2","@testing-library/react-hooks":"^2.0.1","@types/invariant":"^2.2.30","@types/jest":"^24.0.18","@types/react":"^16.7.22","cross-env":"^5.2.0","dts-bundle-generator":"^3.2.0","gh-pages":"^2.0.1","jest-fetch-mock":"^2.1.2","pusher-js-mock":"^0.2.0","react":"^16.9.0","react-dom":"^16.9.0","react-scripts":"^3.0.1","react-test-renderer":"^16.9.0","rollup":"^1.20.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-dts":"^1.1.6","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-typescript2":"^0.22.1","rollup-plugin-url":"^2.1.0","ts-jest":"^24.0.2","typedoc":"^0.15.0","typescript":"^3.2.4"},"jest":{"collectCoverageFrom":["src/**/*.{ts,tsx}"],"coveragePathIgnorePatterns":["./src/index.ts","./src/mocks.ts","./src/helpers.ts","./src/types.ts"]},"_id":"@harelpls/use-pusher@3.1.1","dist":{"shasum":"8010e0152ba5512d88f0c031a9ab38ef6565926b","integrity":"sha512-ouypFii2KNwVBd8NHoyAPh6oF7xFvRQ5YlRF6QXLm7yj2hfA7cJVLoRXMeRjT2BXxLomwykwRoIm+Y16xV1niQ==","tarball":"https://registry.npmjs.org/@harelpls/use-pusher/-/use-pusher-3.1.1.tgz","fileCount":16,"unpackedSize":126219,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeQ35dCRA9TVsSAnZWagAAuNMQAJ5cHDEPB7/CHa2EH/Zk\nj3Wp070X/q5E/lSwj3JobWXT2ic15iSZnuiWs3HYCp9B1UqKCjrWHzf0C4ms\nJNrFJRlguA/X07cY6OLG5KjmDN0m1DTTDLfiXSsg6pvSVxU+BZDqXiT6m7KV\nemXRBWwrYUfwuNLNIUJLsIv3rDuamZV9FRPyOzXEFRTj+NDR7+G9SxLNxWR9\nzhqxxHow9u/G+qC4YpyXZLBrEV7OSsHZsdjmCVNngg94jNA5hUKRuR6TRmbA\nLzNz31i5JmTwQ496+UPv5vr6ktJjw5yLhpIdukblSvOHzFkfQM4PAD5up6bQ\nw9NQX+gaxIaAf66MrbcGxlZxUXgruoxgwQsz/Old+CVGsxZO4xbt1Ck+rLgq\n2FfvZTCG29g7XkZLLTvpUr2iuHDlkpqTekxzTBNL5GsnZK0W78AUlJMF6ylK\nJXEml3uEuvZo2JYP0OsokncWjSF0S+Aq1qcHnGWkXCWsflybZpOmr6fB6Z+Q\nvK+CEPk3JWTCIWG+GrMsfSzM1bV2IxP9/DK4rR5bPoJuD0rmeAgyzolkAd3Y\nsAjpZ52WUyrn6ZgYIJzePgK0ytKmzwnsnjpW7a+YgZ/MQSkzXdEgBlZSFVSp\nsmOHE1AldXAAXRmR7qpqQ/h7qbZwuc5+yRee4TmZJgiCpgCXz7j35hIxibKD\n7zdf\r\n=5X1A\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFm2DFgRIGGfR6UbQFiNW17GOLi2XE2IrxBAiAZnIxgWAiEAkndKxM0Cgs7jebH3TYeJwIz62dBQenzEOILnlQEW2bM="}]},"maintainers":[{"name":"harelpls","email":"harley.alexander@melbourne.vic.gov.au"}],"_npmUser":{"name":"harelpls","email":"harley.alexander.au@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-pusher_3.1.1_1581481564955_0.4730152095960689"},"_hasShrinkwrap":false},"3.1.2":{"name":"@harelpls/use-pusher","version":"3.1.2","description":"A wrapper around pusher-js for easy-as hooks in React.","author":{"name":"@mayteio"},"keywords":["react","react hooks","pusher","channels","pusher-js","websockets","realtime messaging","typescript"],"license":"MIT","repository":{"type":"git","url":"https://github.com/mayteio/use-pusher"},"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","typings":"dist/index.d.ts","engines":{"node":">=8","npm":">=5"},"scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","start":"rollup -c -w","types":"dts-bundle-generator -o ./dist/index.d.ts ./src/index.ts --external-imports pusher-js","docs":"typedoc --options ./typedoc.js ./src","release":"yarn test && yarn build && yarn types && yarn publish"},"dependencies":{"dequal":"^1.0.0","invariant":"^2.2.4","pusher-js":"^5.1.0"},"peerDependencies":{"react":"^16.9.0","react-dom":"^16.9.0"},"devDependencies":{"@babel/core":"^7.2.2","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.3.1","@testing-library/react":"^9.1.2","@testing-library/react-hooks":"^2.0.1","@types/invariant":"^2.2.30","@types/jest":"^24.0.18","@types/react":"^16.7.22","cross-env":"^5.2.0","dts-bundle-generator":"^3.2.0","gh-pages":"^2.0.1","jest-fetch-mock":"^2.1.2","pusher-js-mock":"^0.2.0","react":"^16.9.0","react-dom":"^16.9.0","react-scripts":"^3.0.1","react-test-renderer":"^16.9.0","rollup":"^1.20.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-dts":"^1.1.6","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-typescript2":"^0.22.1","rollup-plugin-url":"^2.1.0","ts-jest":"^24.0.2","typedoc":"^0.15.0","typescript":"^3.2.4"},"jest":{"collectCoverageFrom":["src/**/*.{ts,tsx}"],"coveragePathIgnorePatterns":["./src/index.ts","./src/mocks.ts","./src/helpers.ts","./src/types.ts"]},"_id":"@harelpls/use-pusher@3.1.2","dist":{"shasum":"1aa50d91f2799e9643ba71cd1caa0f8748aa514d","integrity":"sha512-LYPmp9/bTVzRUohPJ+MjlwVFFgiJHY4huIGGKqFt+57KoeaMAZ/DByzdhGFhlsunccpyyM8iHUvTnT83aIr0Ig==","tarball":"https://registry.npmjs.org/@harelpls/use-pusher/-/use-pusher-3.1.2.tgz","fileCount":9,"unpackedSize":123506,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeRE8vCRA9TVsSAnZWagAALRgQAKRPCL79OvnUIm1eiwfz\nPmmmX6TmyeT5y1IEFyu7WD/eTk51hDZ1CjPCi2FOI3Wz2XgtOgi+Kx6zloaO\npPRfM1ea3upBO2muNBEoH8RwTshpT5xR+R8Q8WI4CQRMeTXtlGE25a/dWYGh\nlZXkTtLw9kFnRcsUteQmmqgB8Odihl3m8WPDXLIU2x7I6XeCam68Pfz+p7pk\nDojHJlUFNblkuLh88F/aWLQ5xyIbzZls1tQQx6AMjfNb2kkKNnXQSkFFVv4H\noRypDs5JEmelO/2JMGjrlO2kUD2fvt7F3+WzcKtWc/RErqtph8iBPdmi1TwP\nfbxGWkybrhXggDq6Q8UI0ArCRfdXbmPid/iQKcUJSwfG3PCYRz6YrPfWFMeO\n7cJoX7CjZvmOuvILIhf3mCfgIoZ2DUgodpp8+SnoUDTcav/aoDxNAtovrGEF\nvWmthANS6d7g8du3LlpkSNfgAzlrbRyCz+DIUhbPmxM6Nlhf1XuYvpHkcVnG\nRjRwneCyWdSEcqaJFtbNN796q1Hmal8G2dTlId1s/Cng5HQW0/ydjGrlJYg2\nipVHlL8KSkN7ykztM7F1k+R2nvC+VaLl0E6bD5d0NJAIS3dZ3v5n2/JHsuPi\noaLi6Br0CGTLtRKfQwOdDVenOnXlmZjDxUtFibGEkpQRHAhxd9Eb3AVQFSFI\nb0bS\r\n=aG/O\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCc2Ou9OcOev51QYs6UI24Xp2H02MIyIfn5R9hMjQNqkwIgGXRIYn/bTMXSfyNcQ4e1zjJErU4DddNOMGJ7RYLh2Z8="}]},"maintainers":[{"name":"harelpls","email":"harley.alexander@melbourne.vic.gov.au"}],"_npmUser":{"name":"harelpls","email":"harley.alexander.au@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-pusher_3.1.2_1581535022550_0.183045049070081"},"_hasShrinkwrap":false},"3.1.3":{"name":"@harelpls/use-pusher","version":"3.1.3","description":"A wrapper around pusher-js for easy-as hooks in React.","author":{"name":"@mayteio"},"keywords":["react","react hooks","pusher","channels","pusher-js","websockets","realtime messaging","typescript"],"license":"MIT","repository":{"type":"git","url":"https://github.com/mayteio/use-pusher"},"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","typings":"dist/index.d.ts","engines":{"node":">=8","npm":">=5"},"scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","start":"rollup -c -w","types":"dts-bundle-generator -o ./dist/index.d.ts ./src/index.ts --external-imports pusher-js","docs":"typedoc --options ./typedoc.js ./src","release":"yarn test && yarn build && yarn types && yarn publish"},"dependencies":{"dequal":"^1.0.0","invariant":"^2.2.4","pusher-js":"^5.1.0"},"peerDependencies":{"react":"^16.9.0","react-dom":"^16.9.0"},"devDependencies":{"@babel/core":"^7.2.2","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.3.1","@testing-library/react":"^9.1.2","@testing-library/react-hooks":"^2.0.1","@types/invariant":"^2.2.30","@types/jest":"^24.0.18","@types/react":"^16.7.22","cross-env":"^5.2.0","dts-bundle-generator":"^3.2.0","gh-pages":"^2.0.1","jest-fetch-mock":"^2.1.2","pusher-js-mock":"^0.2.0","react":"^16.9.0","react-dom":"^16.9.0","react-scripts":"^3.0.1","react-test-renderer":"^16.9.0","rollup":"^1.20.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-dts":"^1.1.6","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-typescript2":"^0.22.1","rollup-plugin-url":"^2.1.0","ts-jest":"^24.0.2","typedoc":"^0.16.9","typescript":"^3.2.4"},"jest":{"collectCoverageFrom":["src/**/*.{ts,tsx}"],"coveragePathIgnorePatterns":["./src/index.ts","./src/mocks.ts","./src/helpers.ts","./src/types.ts"]},"_id":"@harelpls/use-pusher@3.1.3","dist":{"shasum":"50a7ba35947b46c17b92ccf9e4efeadbc70f5625","integrity":"sha512-djvGf5vsNW9LnDDNwR64G6+phYNIMkrlggcp9Z31ONyRlGvOgblDSSdqPpBeeHNKwd0q1HGvwVq4OEyFHZxjfg==","tarball":"https://registry.npmjs.org/@harelpls/use-pusher/-/use-pusher-3.1.3.tgz","fileCount":9,"unpackedSize":123739,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeRc5CCRA9TVsSAnZWagAADpwP/0mZudBuhLUCH1LNtWCt\ns4L6EqaeIm3WYMEk3iReKMHKTumR94YChMe0RBsHfUWMBBWTT+kAFBgmq+0O\n35oyIo5XsSwkjXVKCtg8ebT52qPQSgPh4y3gA6xYWExtzOOZD4EecNc3KEjz\nZwa73a7Z+kW4RoQtevy3udKK1ib6TyuC+o8GSzXP1jccGkmW1duemCKSWeQL\nGllJFDgKI7UWDF7HfqEsNHoWPRI+agJ+ArpyNoC6l14UKUd8n066JnQypXD+\nkRbblXtowAmVpb2yBmyjuMdZz9V81KibHGrmB96enpyj1huS06PCuDzgaZO2\n02jarsmVITwSadMmjv6B+gysSiCtA5Y3QlaGVADdFmbYgi0grCH85Xd+nxEf\nMtBtGwHvK5ng3EjTsApNQbtUSs052NRSYW2UHwP+Qm84CjJcB/DJSGs29uai\ncAO2m6MkoNNwNwVrHz5mgz67mqwq9KxxHONk3o2ONTd2uG3xG+8xtJjzYwHA\nmdqqvbuo4KV67yergt6RQevvShf2ZopAB8jqqNcFKYBsKknewj0cNDg5gbrl\nZu6W4U5MmLh6XTx/bCJImTQ3sbSZ7NCT6ioHBXZGvwBbc9sciGAs94j0dtON\nfIR3V8ym3HG4i7AWFcye171ULmKKWpFrfuMyEpaJ1xxFRc/YxUgLj/t9DI1J\nVxCK\r\n=YsfZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDwg1VGWBo5H40Msepj4DuyBlrOQlRkPzQBEq/Vew/kGAIhALumMA/ehoXgW1dIEDu9pZhF7wHUuz3Q823+j1Or8Khs"}]},"maintainers":[{"name":"harelpls","email":"harley.alexander@melbourne.vic.gov.au"}],"_npmUser":{"name":"harelpls","email":"harley.alexander.au@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-pusher_3.1.3_1581633089549_0.5782126989150387"},"_hasShrinkwrap":false},"3.2.0":{"name":"@harelpls/use-pusher","version":"3.2.0","description":"A wrapper around pusher-js for easy-as hooks in React.","author":{"name":"@mayteio"},"keywords":["react","react hooks","pusher","channels","pusher-js","websockets","realtime messaging","typescript"],"license":"MIT","repository":{"type":"git","url":"https://github.com/mayteio/use-pusher"},"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","types":"dist/index.d.ts","engines":{"node":">=8","npm":">=5"},"scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rimraf dist && rollup -c","start":"rollup -c -w","types":"dts-bundle-generator -o ./dist/index.d.ts ./src/index.ts --external-imports pusher-js","docs":"typedoc --options ./typedoc.js ./src","release":"yarn test && yarn build && yarn types && yarn publish && ntl deploy"},"dependencies":{"dequal":"^1.0.0","invariant":"^2.2.4","pusher-js":"^5.1.0"},"peerDependencies":{"react":"^16.9.0","react-dom":"^16.9.0"},"devDependencies":{"@babel/core":"^7.2.2","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.3.1","@testing-library/react":"^9.1.2","@testing-library/react-hooks":"^2.0.1","@types/invariant":"^2.2.30","@types/jest":"^24.0.18","@types/react":"^16.7.22","cross-env":"^5.2.0","dts-bundle-generator":"^3.2.0","gh-pages":"^2.0.1","jest-fetch-mock":"^2.1.2","pusher-js-mock":"^0.2.0","react":"^16.9.0","react-dom":"^16.9.0","react-scripts":"^3.0.1","react-test-renderer":"^16.9.0","rimraf":"^3.0.2","rollup":"^1.20.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-dts":"^1.1.6","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-typescript2":"^0.22.1","rollup-plugin-url":"^2.1.0","ts-jest":"^24.0.2","typedoc":"^0.16.9","typescript":"^3.2.4"},"jest":{"collectCoverageFrom":["src/**/*.{ts,tsx}"],"coveragePathIgnorePatterns":["./src/index.ts","./src/mocks.ts","./src/helpers.ts","./src/types.ts"]},"_id":"@harelpls/use-pusher@3.2.0","dist":{"shasum":"aac3822d7b20fa7d9eb36778f461ee728cb73076","integrity":"sha512-O/aXUvA1JlOQoPTvW4Aa1vyj5PL9/tsCGRIHGxsf9FtZ+9YrOGouZEczodmKs3cgYMtYpPFg35gF7FvWguh7pQ==","tarball":"https://registry.npmjs.org/@harelpls/use-pusher/-/use-pusher-3.2.0.tgz","fileCount":9,"unpackedSize":51983,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeSzlECRA9TVsSAnZWagAAkJUP/AsWELBfSYxqVLSqD8qp\n6D5vHrzvz8+c9eU5OpfmJlLIXS06666iLCohFItWxoINUKPTU0Jqs7Sf09kV\ncDfyoA0T9CDZDdU7m5vpmX0pv+aroCb8Zdin+tFlN/LndENVMatWSstP/DBi\n2PcgZVvhU3/ovWyxzC1jJbZeUxtwdh4joHHYdo11DTV62Bw66TT7izqh/xSy\nHMWjXitC5m4bhgPNk3Ov3hOIGlYJYrBccqgrRJEbTuCIKQbVPx6ynfWaXDA1\nZFJc+y14TB8I6jQWsOyHMgaqMQ6f7ru4MZzPS2KjnuvkKWOviXZOZuQiJWzl\nRjoSJlDYSIYDwUlmGqw/Pf4T+Ye7nOAbm4BIyn/sn+cGV4yT2Ls634SUmhds\nlG0/9mESQG4ud79x+yEvh661w01kGbzb2jeUPmB1WsB2P57MS/ekZ3kr4yu/\ngrtVFDAGM71VSQzfs2Z3SGcHP2arscIdY+3HSiylXmVpG+Tzek6um1L59ZVV\nxsZO2oNsrruZxZRjUpyDN8KUnlHIIPOJvparWGG09TOAn4MjZVbSe1725ZJ7\npBB+HQP4Q1bZEYGAzifL+e/DKdX3Mc44dAo37hP/Gz0O/PnjP1u9HcONjYPU\nR56BoXT8j8YZFFrKRxUYc3MvnDMDigjzICHAWdUCrUZkn5qlJMF/CdZl6unE\npKz7\r\n=7Z/Y\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA+gtlFXzuREIJBL7JnoNrc1UGry4d6K2QWzqu7wbU+JAiAs5wQ9RqELM9ivQcXEiRyDBeTNdyEh4NTUvTaVKx6F2g=="}]},"maintainers":[{"name":"harelpls","email":"harley.alexander@melbourne.vic.gov.au"}],"_npmUser":{"name":"harelpls","email":"harley.alexander.au@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-pusher_3.2.0_1581988163430_0.2195524600083798"},"_hasShrinkwrap":false},"3.2.1":{"name":"@harelpls/use-pusher","version":"3.2.1","description":"A wrapper around pusher-js for easy-as hooks in React.","author":{"name":"@mayteio"},"keywords":["react","react hooks","pusher","channels","pusher-js","websockets","realtime messaging","typescript"],"license":"MIT","repository":{"type":"git","url":"https://github.com/mayteio/use-pusher"},"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","types":"dist/index.d.ts","engines":{"node":">=8","npm":">=5"},"scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rimraf dist && rollup -c","start":"rollup -c -w","types":"dts-bundle-generator -o ./dist/index.d.ts ./src/index.ts --external-imports pusher-js","docs":"typedoc --options ./typedoc.js ./src","release":"yarn test && yarn build && yarn types && yarn publish && ntl deploy"},"dependencies":{"dequal":"^1.0.0","invariant":"^2.2.4","pusher-js":"^5.1.0"},"peerDependencies":{"react":"^16.9.0","react-dom":"^16.9.0"},"devDependencies":{"@babel/core":"^7.2.2","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.3.1","@testing-library/react":"^9.1.2","@testing-library/react-hooks":"^2.0.1","@types/invariant":"^2.2.30","@types/jest":"^24.0.18","@types/react":"^16.7.22","cross-env":"^5.2.0","dts-bundle-generator":"^3.2.0","gh-pages":"^2.0.1","jest-fetch-mock":"^2.1.2","pusher-js-mock":"^0.2.0","react":"^16.9.0","react-dom":"^16.9.0","react-scripts":"^3.0.1","react-test-renderer":"^16.9.0","rimraf":"^3.0.2","rollup":"^1.20.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-dts":"^1.1.6","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-typescript2":"^0.22.1","rollup-plugin-url":"^2.1.0","ts-jest":"^24.0.2","typedoc":"^0.16.9","typescript":"^3.2.4"},"jest":{"collectCoverageFrom":["src/**/*.{ts,tsx}"],"coveragePathIgnorePatterns":["./src/index.ts","./src/mocks.ts","./src/helpers.ts","./src/types.ts"]},"_id":"@harelpls/use-pusher@3.2.1","dist":{"shasum":"5b770d019a8b4a4855998cbfaa0861f4290e34eb","integrity":"sha512-Ye+0TTJ/cZufeoIGdeIflze8EBzsl5Nkincq2CydSa10sXBFM26gKH8+c7hWnDQb6BVG8dbXyuuKsxx3o5YsYQ==","tarball":"https://registry.npmjs.org/@harelpls/use-pusher/-/use-pusher-3.2.1.tgz","fileCount":10,"unpackedSize":135629,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeTIhbCRA9TVsSAnZWagAAR50P/A6XxnzrSI7zY3cl4vsK\ncVg4CAaiJ7/NbK5Al66D9N5NBq3HhbkZk1ViTu60s3Fp/aZgNnc+prrg4Vy7\noWEEA9KNKwKTYdn+isUaPNPknghy+NrQZo74HQ+7cz/tgsKWzfsgCr0+FJ7Z\ndZ4jKi/XHw+YKXsmeXiNO7gJGAd01KmH/mKDlUEw5TPpaRqERTy0JCiTIqcp\nkumQFCVjUDJIiIfj5U369eq8dRrltwhzXYooOL9bU5TnMcKrq6Va9wtWP6p5\nfkko4F3lo1tbbPewr/c2pR95zc+/+0fGyhkCakA5+Dt2RMFS/HxSBvGMdmpr\n2pzr+h3AqBxjSVCNPKg2u1s7bd0oUcsv3jy37D8+g6OmudroRL35RvJWTIYB\ne3ewHvNAdtMYLzpzTkeKsPJEQLpYp8XJ+hhZdtPT2INW/ftxDJ0xkk32MvvR\n3JJc8k2Tg0Ku7ghPmvHGvyG4IlwNwriJo9miVRkSJEuYhlTE6HfuMiCp7b4q\n54KRDvKudsLM9FPWk4KkgXGiay9wNX4tQLxFt4NVOUfK9Ac9lWEVBxO1jblu\nr3fGFvnpm59XRxZe7czI/Ah7VAb07WAUmYAa9W0rrVHbBMbXRiKqI1auElUp\nWxQlEPEzVwP7WVBnWagvFXjCoExo2FP862hEGNxSMF2kiITYTrv6QkpLWFg0\nwizE\r\n=0qmu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHxYPeniijVnupkkHHiqxRdjnODSAOHQLHuUZHiG0GNBAiB/SozMKQ0j8gmd/O+1YjoGI6LCArqTowBponG6wO8YaA=="}]},"maintainers":[{"name":"harelpls","email":"harley.alexander@melbourne.vic.gov.au"}],"_npmUser":{"name":"harelpls","email":"harley.alexander.au@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-pusher_3.2.1_1582073946897_0.5816654394418168"},"_hasShrinkwrap":false},"3.2.2":{"name":"@harelpls/use-pusher","version":"3.2.2","description":"A wrapper around pusher-js for easy-as hooks in React.","author":{"name":"@mayteio"},"keywords":["react","react hooks","pusher","channels","pusher-js","websockets","realtime messaging","typescript"],"license":"MIT","repository":{"type":"git","url":"https://github.com/mayteio/use-pusher"},"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","types":"dist/index.d.ts","engines":{"node":">=8","npm":">=5"},"scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rimraf dist && rollup -c","start":"rollup -c -w","types":"dts-bundle-generator -o ./dist/index.d.ts ./src/index.ts --external-imports pusher-js","docs":"typedoc --options ./typedoc.js ./src","release":"yarn test && yarn build && yarn types && yarn publish && ntl deploy"},"dependencies":{"dequal":"^1.0.0","invariant":"^2.2.4","pusher-js":"^5.1.0"},"peerDependencies":{"react":"^16.9.0","react-dom":"^16.9.0"},"devDependencies":{"@babel/core":"^7.2.2","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.3.1","@testing-library/react":"^9.1.2","@testing-library/react-hooks":"^2.0.1","@types/invariant":"^2.2.30","@types/jest":"^24.0.18","@types/react":"^16.7.22","cross-env":"^5.2.0","dts-bundle-generator":"^3.2.0","gh-pages":"^2.0.1","jest-fetch-mock":"^2.1.2","pusher-js-mock":"^0.2.0","react":"^16.9.0","react-dom":"^16.9.0","react-scripts":"^3.0.1","react-test-renderer":"^16.9.0","rimraf":"^3.0.2","rollup":"^1.20.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-dts":"^1.1.6","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-typescript2":"^0.22.1","rollup-plugin-url":"^2.1.0","ts-jest":"^24.0.2","typedoc":"^0.16.9","typescript":"^3.2.4"},"jest":{"collectCoverageFrom":["src/**/*.{ts,tsx}"],"coveragePathIgnorePatterns":["./src/index.ts","./src/mocks.ts","./src/helpers.ts","./src/types.ts"]},"_id":"@harelpls/use-pusher@3.2.2","dist":{"shasum":"56dd9af08373e1e7c76cfaeabf538f25063f937c","integrity":"sha512-LlQDFTWGiNcm3yGotI6JYU7sENJmnmXEqwoPN0xy9p9js8XoqpTS0U/w4Flg5ogDnCU5CehTFMrJEqfGJKoXew==","tarball":"https://registry.npmjs.org/@harelpls/use-pusher/-/use-pusher-3.2.2.tgz","fileCount":10,"unpackedSize":134700,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeT0RRCRA9TVsSAnZWagAAavsP+gOAKvAgf+38NapBdzdg\n4+xrOOJgAhRji13bnYdh5u/O8bGtyS12fL20WsmAKNc89WDP0JkaLJknRSZF\n6epzx08uO5fBTaXZ6NEG9Y5JXLcg97LS71Ha/daniCTMA5O03o4/uXmMaxFf\njR32Hrx8PbKnIHfr/vhvwMPYTJ/Ie6kFmcIP1JCwU7F5s0ddzVW+XGrIBzHb\n6Lp2PVmbkVJqk0l2rr2VnQCxzbbVwyv861Ra7B7pcA06kPVc80KZ2jMWdlZE\nf1mr6UEZYqFb+yFlLYxlZ1DgArp/enhPhu7Vi0CvtiNkqrxU9ZwZnu2r22pF\nL/3G72sgHdEk+mn32xRD/FfidxbwyOXnaYQWtaAkzxF0Pi2mnl8zGCGddE+H\njKzZEXXC9SvhNX/Dzr7R9o8kQV1ejC6JuU+25U+d2fLJEU+W2iYeV8rjHZzg\n2Iv5i/FHgna+lxlnthUpbrG0mTD4QdZP/9SXSut4VIPk5jdFH14xkMVVPXif\nlO752/p8Vnk+en5EYWnzKOVYIXZban1XMu4psRJ/8tbXfKIzt2gapghaBoW4\n9Gm8xCGrX/PPU6uFnJxeF1YjTUTQNzHZZa5iHMCBndbbOUWlFLcrJIh/zln3\nUR38cL929YSzNIv4xXeZFpjTdwg61rCxiqEvgKf3cgKE/aLh8a5D8GXgTI2t\n9l7s\r\n=fiWs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCXTTWNAttvGNgLfXhzulz5Y2h0OVDzs96q3Gy+6zKuOQIgcFITZW6JNhILZXm0xAG2/HXncexjPigKJJB2ViG2Wfs="}]},"maintainers":[{"name":"harelpls","email":"harley.alexander@melbourne.vic.gov.au"}],"_npmUser":{"name":"harelpls","email":"harley.alexander.au@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-pusher_3.2.2_1582253137273_0.11903639946495481"},"_hasShrinkwrap":false},"3.2.3":{"name":"@harelpls/use-pusher","version":"3.2.3","description":"A wrapper around pusher-js for easy-as hooks in React.","author":{"name":"@mayteio"},"keywords":["react","react hooks","pusher","channels","pusher-js","websockets","realtime messaging","typescript"],"license":"MIT","repository":{"type":"git","url":"https://github.com/mayteio/use-pusher"},"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","types":"dist/index.d.ts","engines":{"node":">=8","npm":">=5"},"scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rimraf dist && rollup -c","start":"rollup -c -w","types":"dts-bundle-generator -o ./dist/index.d.ts ./src/index.ts --external-imports pusher-js","docs":"typedoc --options ./typedoc.js ./src","release":"yarn test && yarn build && yarn types && yarn publish && ntl deploy"},"dependencies":{"dequal":"^1.0.0","invariant":"^2.2.4","pusher-js":"^5.1.0"},"peerDependencies":{"react":"^16.9.0","react-dom":"^16.9.0"},"devDependencies":{"@babel/core":"^7.2.2","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.3.1","@testing-library/react":"^9.1.2","@testing-library/react-hooks":"^2.0.1","@types/invariant":"^2.2.30","@types/jest":"^24.0.18","@types/react":"^16.7.22","cross-env":"^5.2.0","dts-bundle-generator":"^3.2.0","gh-pages":"^2.0.1","jest-fetch-mock":"^2.1.2","pusher-js-mock":"^0.2.0","react":"^16.9.0","react-dom":"^16.9.0","react-scripts":"^3.0.1","react-test-renderer":"^16.9.0","rimraf":"^3.0.2","rollup":"^1.20.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-dts":"^1.1.6","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-typescript2":"^0.22.1","rollup-plugin-url":"^2.1.0","ts-jest":"^24.0.2","typedoc":"^0.16.9","typescript":"^3.2.4"},"jest":{"collectCoverageFrom":["src/**/*.{ts,tsx}"],"coveragePathIgnorePatterns":["./src/index.ts","./src/mocks.ts","./src/helpers.ts","./src/types.ts"]},"_id":"@harelpls/use-pusher@3.2.3","dist":{"shasum":"160d930cb3a4a290fbe780a34c4a5ab246d414cf","integrity":"sha512-dqBB5cku4FDSPPg4AaMZ4JuBK85BUFDvVOKe+JOtnNaJW/Wqs+O3ZKEg6fRXuopspn6FhKFn06BMINPbl0jbNw==","tarball":"https://registry.npmjs.org/@harelpls/use-pusher/-/use-pusher-3.2.3.tgz","fileCount":9,"unpackedSize":128829,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeT0YsCRA9TVsSAnZWagAAapkQAJyIW2nGXQjXcLASDErv\nAvv465dMocSn5MMQBqFXaGro6Z9rzpJ1a89hpebZjoZ9EEtCnxbZtJq3crR0\nTg6aJ9xdXsElP5DDhRtwmoRiLTdioIigz1HM2Op0/9tMQx+q9mdgTmALKqR8\nIeE8GyhffDlYrWQ7z2ftOsSZLk4P9qxmsqUoZhEWAHT/g5Q7WLKDLBKl6TmV\nti92DzUxAXv6ZE5mHUWu1gpmAhynTbozBk7ois5nluor+X7jbx5kphv5O5YU\nmnmEtoobhMr1fc8uwhdPrWi/bFoJu7lHrUDnxrkkR5etznAu7CezjEQ7tb6e\nncDjCwpXbmnXZlhqz2XS0shjcFEM89YiwxvoImZ+0l2MSpml/OHLYTcAfZFA\nx5ElRn+xZYpw9q5qN0vicheycPLNfsxSyb3jhLDw04yporyBF9hALSnJdS8b\nnGTpYCDbniBSJzJTnylsw8+GDrotUOudYpjUpg3y5aQfgcpUQXjSYZgbXyxF\nQBuc0w4ArEBsm4cFllg6lEiwqVs6Ejq6S6MaGiLG9BeFZ1h9y8drfW5MHG6L\nLdhEaJSL676YwX81LaIGFBZHr2WsuJBCIQXlKkXoS+T7hoH+1cCE+Hku7nqF\n/afsSxTV9S90RNluwE5e9ifPOkabyGojzA0gOnaMy3/HvjUsJkdCXw4udmUz\nhfWm\r\n=m7jl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFmunrnpzxquij5ffWiziT7pzlhcm6tHcpBG5r0ncHfyAiEAoVm/myqIDSFcw0V4+I9xTZPiEyQ7v3TaBPx9dvyWxak="}]},"maintainers":[{"name":"harelpls","email":"harley.alexander@melbourne.vic.gov.au"}],"_npmUser":{"name":"harelpls","email":"harley.alexander.au@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-pusher_3.2.3_1582253611887_0.6099578218347166"},"_hasShrinkwrap":false},"4.0.0":{"name":"@harelpls/use-pusher","version":"4.0.0","description":"A wrapper around pusher-js for easy-as hooks in React.","author":{"name":"@mayteio"},"keywords":["react","react hooks","pusher","channels","pusher-js","websockets","realtime messaging","typescript"],"license":"MIT","repository":{"type":"git","url":"https://github.com/mayteio/use-pusher"},"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","types":"dist/index.d.ts","engines":{"node":">=8","npm":">=5"},"scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rimraf dist && rollup -c","start":"rollup -c -w","types":"dts-bundle-generator -o ./dist/index.d.ts ./src/index.ts --external-imports pusher-js","docs":"typedoc --options ./typedoc.js ./src","release":"yarn test && yarn build && yarn types && yarn publish && ntl deploy"},"dependencies":{"dequal":"^1.0.0","invariant":"^2.2.4","pusher-js":"^5.1.0"},"peerDependencies":{"react":"^16.9.0","react-dom":"^16.9.0"},"devDependencies":{"@babel/core":"^7.2.2","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.3.1","@testing-library/react":"^9.1.2","@testing-library/react-hooks":"^2.0.1","@types/invariant":"^2.2.30","@types/jest":"^24.0.18","@types/react":"^16.7.22","cross-env":"^5.2.0","dts-bundle-generator":"^3.2.0","gh-pages":"^2.0.1","jest-fetch-mock":"^2.1.2","pusher-js-mock":"^0.2.0","react":"^16.9.0","react-dom":"^16.9.0","react-scripts":"^3.0.1","react-test-renderer":"^16.9.0","rimraf":"^3.0.2","rollup":"^1.20.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-dts":"^1.1.6","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-typescript2":"^0.22.1","rollup-plugin-url":"^2.1.0","ts-jest":"^24.0.2","typedoc":"^0.16.9","typescript":"^3.2.4"},"jest":{"collectCoverageFrom":["src/**/*.{ts,tsx}"],"coveragePathIgnorePatterns":["./src/index.ts","./src/mocks.ts","./src/helpers.ts","./src/types.ts"]},"_id":"@harelpls/use-pusher@4.0.0","dist":{"shasum":"a5d0cc5074730716670cc90677e0843821f9be54","integrity":"sha512-HTUIqUEmztbfQdrSiIQQuvOzi1XHWiVkxF0yL2fERihVFqsltdCm6Nuhd28HrnF+zrBndCcdQ+xNTvoukwx6Mw==","tarball":"https://registry.npmjs.org/@harelpls/use-pusher/-/use-pusher-4.0.0.tgz","fileCount":9,"unpackedSize":129789,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeT0iWCRA9TVsSAnZWagAALeYP/2UaCAU6Zyzs+8+9WSdF\n/5ipsh+9xY++LViQRB1RXuhbL1y5TZSvo5bA7nRetlCJ18DM8ySe28K44mGx\nrOHvooQcNkgUY/AYa7iJGnYfg9HIp9qYujA+DtHz63eD1Jqio3FR8AJk1U86\nleveqRfBkB9W6S2RZpB2br4LoQFYDpXyzwOPj60up+CHcKLymzirDDHCWwvw\nxXxhyzBJ3+V80NpHcFkW00UQKgcSwHY2O2kCMZ7O+gsFMtS+uCdK+akA0oT7\njTJ02u+SQg3c1liTXCPQaIwgozUKcRSFdDKZY30uAgJiLfq7I37JcHLhlit6\nmt/KBsuSDbvRUpR/rfht2hhSe/I0xcvD2kpRbUgyhJSRih7hU0iI1nyPL81G\nAyMNILhx0v8HF5EBvBaSvmzw2V4pMEAUgqDjdHthmezAV0Kb0ol5Fv1Svc+T\nbTDfT32u6Ad8uNk6YwzuVd7Htq6meydr4Qt/4LD/VCFI/Ze+dI4A86T3YUGD\nHYvBzN+rEKYRrZ8e1ZuIDh7zD0f1R8DLsH+qMGb27z89Tf5w1l8tSSdkvUlQ\nwqwcyodZ65g1QXvEW4C4zCXJjXW64Zp0j97xnawKUEQ62n+s6DqDc2hRIorF\nAGJe7DI0BAUBdFYX3Xn3kySG88vCUTHW1YLQVUXyuxkPsV7acbmCk/Q3GAnT\nshEg\r\n=fAHl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFGgF3nn+4IVLevAr7Uq+is48SEz3n+lRVA19dyEi9XhAiB9HcrQRmz1xn4UxuELRxXC9CGTSIkdYsNLngPZMg8Uxg=="}]},"maintainers":[{"name":"harelpls","email":"harley.alexander@melbourne.vic.gov.au"}],"_npmUser":{"name":"harelpls","email":"harley.alexander.au@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-pusher_4.0.0_1582254229873_0.3373610939067211"},"_hasShrinkwrap":false},"4.0.1":{"name":"@harelpls/use-pusher","version":"4.0.1","description":"A wrapper around pusher-js for easy-as hooks in React.","author":{"name":"@mayteio"},"keywords":["react","react hooks","pusher","channels","pusher-js","websockets","realtime messaging","typescript"],"license":"MIT","repository":{"type":"git","url":"https://github.com/mayteio/use-pusher"},"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","types":"dist/index.d.ts","engines":{"node":">=8","npm":">=5"},"scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rimraf dist && rollup -c","start":"rollup -c -w","types":"dts-bundle-generator -o ./dist/index.d.ts ./src/index.ts --external-imports pusher-js","docs":"typedoc --options ./typedoc.js ./src","release":"yarn test && yarn build && yarn types && yarn publish && ntl deploy"},"dependencies":{"dequal":"^1.0.0","invariant":"^2.2.4","pusher-js":"^5.1.0"},"peerDependencies":{"react":"^16.9.0","react-dom":"^16.9.0"},"devDependencies":{"@babel/core":"^7.2.2","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.3.1","@testing-library/react":"^9.1.2","@testing-library/react-hooks":"^2.0.1","@types/invariant":"^2.2.30","@types/jest":"^24.0.18","@types/react":"^16.7.22","cross-env":"^5.2.0","dts-bundle-generator":"^3.2.0","gh-pages":"^2.0.1","jest-fetch-mock":"^2.1.2","pusher-js-mock":"^0.2.0","react":"^16.9.0","react-dom":"^16.9.0","react-scripts":"^3.0.1","react-test-renderer":"^16.9.0","rimraf":"^3.0.2","rollup":"^1.20.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-dts":"^1.1.6","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-typescript2":"^0.22.1","rollup-plugin-url":"^2.1.0","ts-jest":"^24.0.2","typedoc":"^0.16.9","typescript":"^3.2.4"},"jest":{"collectCoverageFrom":["src/**/*.{ts,tsx}"],"coveragePathIgnorePatterns":["./src/index.ts","./src/mocks.ts","./src/helpers.ts","./src/types.ts"]},"_id":"@harelpls/use-pusher@4.0.1","dist":{"shasum":"c579dab781449d7a0a0b9571b97d4ebce3524094","integrity":"sha512-j2+Yqnvopb+trVFZg4Sk2KqBn7eYV2FWE8p0/nry30nBR+YEBB77AmfBP8pgNyz6QenKU8jYsGzxdTZRqkwxmw==","tarball":"https://registry.npmjs.org/@harelpls/use-pusher/-/use-pusher-4.0.1.tgz","fileCount":10,"unpackedSize":136466,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeT0m1CRA9TVsSAnZWagAAIAgQAItH2oFihSYZpzBhR+Uu\nUjlV3P3o0viDMQ8Z+1aPJXCYGH3Qqwe9oTYC66hEUXcTipV1tndnZVm37boz\n07CFxnJuvUlAcgGulCZtFs/QXL6XxHHiC8veMJ8h0Z4mDgpaaF8VAfZGa62D\n0F9N6wiLXjGUTpsEo5e3ZXNlvP4+AnwbjeweDpz6S7/YyXK4liB0B32Y0i3L\nZnqBzY4FsPNpcAGNovQyzUXZLCs4hH83Mm3OuaOKYxnsIkCRtq1TCJsi2bDD\nEIfEZV1fs8tBeTvotwAmnJFOlAe2pxEmM3yjlW4v6GtSfiRka4rsN2tNxaOz\n77Zcc7/Zjr9DHzrfa9dRpKgUoPd6JF6SuMhe8U6VkDU37RmcS5GbiiMxqlRC\n476E5XWTrcwRgnCISEjjuUhyM3rsqpF6Lqu+vPOX5FSz9lrSQPHnySsbLMtu\nRQ3oet4j/5bQj5jIsVAY0wQ+tH8cWzh2iJHCw7yZfXQCpHVwTEQSElPRRg5l\nLZhgpl5c1t2CFsWN8Z4cWGlTCuT1oSBhGR0E/KjtQ8LwnuZDC3Qoydu2qSQs\nQb/tSpUI3qiDd1c88T3T0acEC3YSzGXxDoarinuXXgK3BtELwl2g+StwMZPM\ntXICn7HKNDLRVjNuiGaZ4dqOInoF8TyZaOA/jCLNocol+NVGYAFBXo7fqgp6\nl78M\r\n=bOff\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCsgRL6NkA5D7ueKh0IsQO/VuuxE9P7+cDdJQvTYQF2EwIhANjTG1JCuKuPCIaC+pcvqq5AwEmgwFDqL40WPcImQFkz"}]},"maintainers":[{"name":"harelpls","email":"harley.alexander@melbourne.vic.gov.au"}],"_npmUser":{"name":"harelpls","email":"harley.alexander.au@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-pusher_4.0.1_1582254516422_0.10809107500240289"},"_hasShrinkwrap":false},"4.1.0":{"name":"@harelpls/use-pusher","version":"4.1.0","description":"A wrapper around pusher-js for easy-as hooks in React.","author":{"name":"@mayteio"},"keywords":["react","react hooks","pusher","channels","pusher-js","websockets","realtime messaging","typescript"],"license":"MIT","repository":{"type":"git","url":"https://github.com/mayteio/use-pusher"},"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","types":"dist/index.d.ts","engines":{"node":">=8","npm":">=5"},"scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rimraf dist && rollup -c","start":"rollup -c -w","types":"dts-bundle-generator -o ./dist/index.d.ts ./src/index.ts --external-imports pusher-js","docs":"typedoc --options ./typedoc.js ./src","release":"yarn test && yarn build && yarn types && yarn publish && ntl deploy"},"dependencies":{"dequal":"^1.0.0","invariant":"^2.2.4","pusher-js":"^5.1.0"},"peerDependencies":{"react":"^16.9.0","react-dom":"^16.9.0"},"devDependencies":{"@babel/core":"^7.2.2","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.3.1","@testing-library/react":"^9.1.2","@testing-library/react-hooks":"^2.0.1","@types/invariant":"^2.2.30","@types/jest":"^24.0.18","@types/react":"^16.7.22","cross-env":"^5.2.0","dts-bundle-generator":"^3.2.0","gh-pages":"^2.0.1","jest-fetch-mock":"^2.1.2","pusher-js-mock":"mayteio/pusher-js-mock#feature/presence-channels-release","react":"^16.9.0","react-dom":"^16.9.0","react-scripts":"^3.0.1","react-test-renderer":"^16.9.0","rimraf":"^3.0.2","rollup":"^1.20.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-dts":"^1.1.6","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-typescript2":"^0.22.1","rollup-plugin-url":"^2.1.0","ts-jest":"^24.0.2","typedoc":"^0.16.9","typescript":"^3.2.4"},"readmeFilename":"README.md","readme":"# `@harelpls/use-pusher`\n\n> Easy as [React hooks](https://reactjs.org/docs/hooks-intro.html) that integrate with the [`pusher-js`](https://github.com/pusher/pusher-js) library.\n\n[![NPM](https://img.shields.io/npm/v/use-pusher.svg)](https://www.npmjs.com/package/react-pusher-hooks) ![Typed](https://badgen.net/badge//types/Typescript?icon=typescript)\n\n##### [API Reference/Docs](https://use-pusher-docs.netlify.com/)\n\n## Install\n\n```bash\nyarn add @harelpls/use-pusher\n```\n\n## Hooks\n\n- [`useChannel`](#usechannel)\n- [`usePresenceChannel`](#usepresencechannel)\n- [`useEvent`](#useevent)\n- [`useTrigger`](#usetrigger)\n- [`useClientTrigger`](#useclienttrigger)\n- [`usePusher`](#usepusher)\n\n## Usage\n\nYou must wrap your app with a `PusherProvider` and pass it config props for [`pusher-js`](https://github.com/pusher/pusher-js) initialisation.\n\n```typescript\nimport React from \"react\";\nimport { PusherProvider } from \"@harelpls/use-pusher\";\n\nconst config = {\n  // required config props\n  clientKey: \"client-key\",\n  cluster: \"ap4\",\n\n  // optional if you'd like to trigger events. BYO endpoint.\n  // see \"Trigger Server\" below for more info\n  triggerEndpoint: \"/pusher/trigger\",\n\n  // required for private/presence channels\n  // also sends auth headers to trigger endpoint\n  authEndpoint: \"/pusher/auth\",\n  auth: {\n    headers: { Authorization: \"Bearer token\" }\n  }\n};\n\n// Wrap app in provider\nconst App = () => {\n  <PusherProvider {...config}>\n    <Example />\n  </PusherProvider>;\n};\n```\n\n## `useChannel`\n\nUse this hook to subscribe to a channel.\n\n```typescript\n// returns channel instance.\nconst channel = useChannel(\"channel-name\");\n```\n\n## `usePresenceChannel`\n\nAugments a regular channel with member functionality.\n\n```typescript\nconst Example = () => {\n  const { members, myID } = usePresenceChannel('presence-awesome');\n\n  return (\n    <ul>\n      {Object.entries(members)\n        // filter self from members\n        .filter([id] => id !== myID)\n        // map them to a list\n        .map([id, info] => (\n          <li key={id}>{info.name}</li>\n        ))\n      }\n    </ul>\n  )\n}\n```\n\n## `useEvent`\n\nBind to events on a channel with a callback.\n\n```typescript\nconst Example = () => {\n  const [message, setMessages] = useState();\n  const channel = useChannel(\"channel-name\");\n  useEvent(\n    channel,\n    \"message\",\n    ({ data }) => setMessages((messages) => [...messages, data]),\n    // optional dependencies array. Passed through to useCallback. Defaults to [].\n    []\n  );\n};\n```\n\n## `useTrigger`\n\nA helper function to create a **server triggered** event. BYO server (See [Trigger Server](#trigger-server) below). Pass in `triggerEndpoint` prop to `<PusherProvider />`. Any auth headers from `config.auth.headers` automatically get passed to the `fetch` call.\n\n```typescript\nimport { useTrigger } from '@harelpls/use-pusher';\n\nconst Example = () => {.\n  const trigger = useTrigger();\n  const handleClick = () =>\n    trigger(\"channel-name\", \"event-name\", \"hello\");\n\n  return (\n    <button onClick={handleClick}>Say Hello</button>\n  )\n}\n```\n\n## `usePusher`\n\nGet access to the Pusher instance to do other things.\n\n```typescript\nimport { usePusher } from \"@harelpls/use-pusher\";\n\nconst Example = () => {\n  const { client } = usePusher();\n  client.log(\"Look ma, logs!\");\n\n  return null;\n};\n```\n\n## Trigger Server\n\nIn order to trigger an event, you'll have to create a simple lambda (or an express server if that's your thing). Below is a short lambda that can handle triggered events from `useTrigger`.\n\n```typescript\nimport Pusher from \"pusher\";\n\nconst pusher = new Pusher({\n  appId: \"app-id\",\n  key: \"client-key\",\n  secret: \"mad-secret\",\n  cluster: \"ap4\"\n});\n\nexport async function handler(event) {\n  const { channelName, eventName, data } = JSON.parse(event.body);\n  pusher.trigger(channelName, eventName, data);\n  return { statusCode: 200 };\n}\n```\n\n## `useClientTrigger`\n\n> _I don't want a server though_\n\nI hear ya. If you're feeling audacious, you can use [client events](https://pusher.com/docs/channels/using_channels/events#triggering-client-events) to push directly from the client:\n\n```typescript\nimport { useChannel, useClientTrigger } from \"@harelpls/use-pusher\";\n\nconst Example = () => {\n  const channel = useChannel(\"presence-ca\");\n  const trigger = useClientTrigger(channel);\n  const handleClientEvent = () => {\n    trigger(\"Pew pew\");\n  };\n\n  return <button onClick={handleClientEvent}>Fire</button>;\n};\n```\n\n## Typescript\n\nThis project was built using typescript, so types are built-in. Yeeeew!\n\n## Testing\n\nI've teamed up with [@nikolalsvk](https://github.com/nikolalsvk) on [`pusher-js-mock`](https://github.com/nikolalsvk/pusher-js-mock) to bring y'all a great pusher mock.\n\nTesting emitted events with jest can be achieved using `jest.mock` and `@testing-library/react` (or `enzyme`, though your tests should reflect what the user should see **NOT** how the component handles events internally):\n\n```typescript\n// Example.tsx\nimport React from \"react\";\nimport { useChannel, useEvent } from \"@harelpls/use-pusher\";\n\nconst Example = () => {\n  const [title, setTitle] = useState();\n  const channel = useChannel(\"my-channel\");\n  useEvent(channel, \"title\", ({ data }) => setTitle(data));\n\n  return <span>{title}</span>;\n};\n\n// Example.test.tsx\nimport { render, act } from \"@testing-library/react\";\nimport { PusherMock, PusherChannelMock } from \"pusher-js-mock\";\n\n// mock out the result of the useChannel hook\nconst mockChannel = new PusherChannelMock();\njest.mock(\"@harelpls/use-pusher\", () => ({\n  ...require.requireActual(\"@harelpls/use-pusher\"),\n  useChannel: () => mockChannel\n}));\n\ntest(\"should show a title when it receives a title event\", async () => {\n  // mock the client\n  const client = new PusherMock(\"client-key\", { cluster: \"ap4\" });\n\n  // render component and provider with a mocked context value\n  const { findByText } = render(\n    <PusherProvider clientKey=\"client-key\" cluster=\"ap4\" value={{ client }}>\n      <Example />\n    </PusherProvider>\n  );\n\n  // emit an event on the mocked channel\n  act(() => mockChannel.emit(\"title\", { data: \"Hello world\" }));\n\n  // assert expectations\n  expect(await findByText(\"Hello world\")).toBeInTheDocument();\n});\n```\n\n[Check out the example tests](https://github.com/mayteio/use-pusher/blob/master/src/__tests__/Example.tsx) for testing presence channels.\n\n## Contributing\n\n1. Clone the repository and run `yarn && yarn test:watch`\n2. Get coding!\n\nPlease write tests (100% jest coverage) and types.\n\n## License\n\nMIT © [@mayteio](https://github.com/@mayteio)\n\n---\n\nThis hook is created using [create-react-hook](https://github.com/hermanya/create-react-hook).\n","_id":"@harelpls/use-pusher@4.1.0","dist":{"shasum":"0c99a63be9c4f19edadbe6d40456ad5e558f095c","integrity":"sha512-EMyaqmUHSGXAQ0yr+NiRqSKoi8AJAWOEaMx6H+OS7Lj4PvW3zqtiR9UEFJQpdzd6s9OnB++Buc3k1wA2LnK18w==","tarball":"https://registry.npmjs.org/@harelpls/use-pusher/-/use-pusher-4.1.0.tgz","fileCount":9,"unpackedSize":111490,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeVsWyCRA9TVsSAnZWagAAwDwQAIR+mWFSoJ5atvHU9ueP\nq/LOB9ut3T26jObZtoryshO3poKTm5BN9nDIcfd8sONkEbdmaoqnIMvK3NlZ\nucd+LXamTNyAkBzwmctbvhuqMUtcH240MZhhyvem4off+VZSj2M2XVuSGI5t\niITegHyBgkEhto3vrCkcLyXrxEsbV/ACPgPrupFA2j0847SVYg/k7Vq2tRgX\nTE8PmsB5tMOtXBEYxSwrC6L4lnj0snJavXdOY34y7ebKWfgwSsH8o/Gnlz6P\n6tePuM5JW/55kaQtU0bQ1Sia5e+V//yXdEds6B2LJOc9sxGGHHSd+VCsGc7U\nSRvCUNmGJ+WxTej7lsVBP0NUZIXX42o8ZTd6WV+JFUn993NvwwZs1dZXLHmj\nEjfe2lBzdgKjp0uA/c1OWT4q5iuhH3sYoMuT3L0sNUW8KCb1GO7fKGVpRTpr\nPg1zEPRbxlb7AeRio8+aSHg9s2Nog9e02+lAwo18Jd2YRp/iDge7bMmYDqyr\nsOXG96skEbnBpwxzKXK/FzyfoSpDQbl1UEyGwjTzMZtvmlmvc+1HRJaS76bZ\nzdVvl8ykgzNDC0QtocJlG9I6KhDTQZ5ZI4vaVSb1gJ88xA8wjN6HHpjJtjzQ\nGiqmwkdVxEFt9oM4GFEFBtR9tqKOt8FmSLPpvWev45rDfPAdppOceDq02ouA\nJc70\r\n=s/Yk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDiHlTt10Cg4f8W1aUSpyAmeGE8NEvxKfp54u/6nRC3CgIgLPWOBL9KyyVWiM4rSj8rWFi9XvjBhP5qyWFR3+oB53w="}]},"maintainers":[{"name":"harelpls","email":"harley.alexander@melbourne.vic.gov.au"}],"_npmUser":{"name":"harelpls","email":"harley.alexander.au@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-pusher_4.1.0_1582745010068_0.3391935366662886"},"_hasShrinkwrap":false},"4.1.1":{"name":"@harelpls/use-pusher","version":"4.1.1","description":"A wrapper around pusher-js for easy-as hooks in React.","author":{"name":"@mayteio"},"keywords":["react","react hooks","pusher","channels","pusher-js","websockets","realtime messaging","typescript"],"license":"MIT","repository":{"type":"git","url":"https://github.com/mayteio/use-pusher"},"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","types":"dist/index.d.ts","engines":{"node":">=8","npm":">=5"},"scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rimraf dist && rollup -c","start":"rollup -c -w","types":"dts-bundle-generator -o ./dist/index.d.ts ./src/index.ts --external-imports pusher-js","docs":"typedoc --options ./typedoc.js ./src","release":"yarn test && yarn build && yarn types && yarn publish && ntl deploy"},"dependencies":{"dequal":"^1.0.0","invariant":"^2.2.4","pusher-js":"^5.1.0"},"peerDependencies":{"react":"^16.9.0","react-dom":"^16.9.0"},"devDependencies":{"@babel/core":"^7.2.2","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.3.1","@testing-library/react":"^9.1.2","@testing-library/react-hooks":"^2.0.1","@types/invariant":"^2.2.30","@types/jest":"^24.0.18","@types/react":"^16.7.22","cross-env":"^5.2.0","dts-bundle-generator":"^3.2.0","gh-pages":"^2.0.1","jest-fetch-mock":"^2.1.2","pusher-js-mock":"mayteio/pusher-js-mock#feature/presence-channels-release","react":"^16.9.0","react-dom":"^16.9.0","react-scripts":"^3.0.1","react-test-renderer":"^16.9.0","rimraf":"^3.0.2","rollup":"^1.20.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-dts":"^1.1.6","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-typescript2":"^0.22.1","rollup-plugin-url":"^2.1.0","ts-jest":"^24.0.2","typedoc":"^0.16.9","typescript":"^3.2.4"},"readmeFilename":"README.md","readme":"# `@harelpls/use-pusher`\n\n> Easy as [React hooks](https://reactjs.org/docs/hooks-intro.html) that integrate with the [`pusher-js`](https://github.com/pusher/pusher-js) library.\n\n[![NPM](https://img.shields.io/npm/v/use-pusher.svg)](https://www.npmjs.com/package/react-pusher-hooks) ![Typed](https://badgen.net/badge//types/Typescript?icon=typescript)\n\n##### [API Reference/Docs](https://use-pusher-docs.netlify.com/)\n\n## Install\n\n```bash\nyarn add @harelpls/use-pusher\n```\n\n## Hooks\n\n- [`useChannel`](#usechannel)\n- [`usePresenceChannel`](#usepresencechannel)\n- [`useEvent`](#useevent)\n- [`useTrigger`](#usetrigger)\n- [`useClientTrigger`](#useclienttrigger)\n- [`usePusher`](#usepusher)\n\n## Usage\n\nYou must wrap your app with a `PusherProvider` and pass it config props for [`pusher-js`](https://github.com/pusher/pusher-js) initialisation.\n\n```typescript\nimport React from \"react\";\nimport { PusherProvider } from \"@harelpls/use-pusher\";\n\nconst config = {\n  // required config props\n  clientKey: \"client-key\",\n  cluster: \"ap4\",\n\n  // optional if you'd like to trigger events. BYO endpoint.\n  // see \"Trigger Server\" below for more info\n  triggerEndpoint: \"/pusher/trigger\",\n\n  // required for private/presence channels\n  // also sends auth headers to trigger endpoint\n  authEndpoint: \"/pusher/auth\",\n  auth: {\n    headers: { Authorization: \"Bearer token\" }\n  }\n};\n\n// Wrap app in provider\nconst App = () => {\n  <PusherProvider {...config}>\n    <Example />\n  </PusherProvider>;\n};\n```\n\n## `useChannel`\n\nUse this hook to subscribe to a channel.\n\n```typescript\n// returns channel instance.\nconst channel = useChannel(\"channel-name\");\n```\n\n## `usePresenceChannel`\n\nAugments a regular channel with member functionality.\n\n```typescript\nconst Example = () => {\n  const { members, myID } = usePresenceChannel('presence-awesome');\n\n  return (\n    <ul>\n      {Object.entries(members)\n        // filter self from members\n        .filter([id] => id !== myID)\n        // map them to a list\n        .map([id, info] => (\n          <li key={id}>{info.name}</li>\n        ))\n      }\n    </ul>\n  )\n}\n```\n\n## `useEvent`\n\nBind to events on a channel with a callback.\n\n```typescript\nconst Example = () => {\n  const [message, setMessages] = useState();\n  const channel = useChannel(\"channel-name\");\n  useEvent(\n    channel,\n    \"message\",\n    ({ data }) => setMessages((messages) => [...messages, data]),\n    // optional dependencies array. Passed through to useCallback. Defaults to [].\n    []\n  );\n};\n```\n\n## `useTrigger`\n\nA helper function to create a **server triggered** event. BYO server (See [Trigger Server](#trigger-server) below). Pass in `triggerEndpoint` prop to `<PusherProvider />`. Any auth headers from `config.auth.headers` automatically get passed to the `fetch` call.\n\n```typescript\nimport { useTrigger } from '@harelpls/use-pusher';\n\nconst Example = () => {.\n  const trigger = useTrigger();\n  const handleClick = () =>\n    trigger(\"channel-name\", \"event-name\", \"hello\");\n\n  return (\n    <button onClick={handleClick}>Say Hello</button>\n  )\n}\n```\n\n## `usePusher`\n\nGet access to the Pusher instance to do other things.\n\n```typescript\nimport { usePusher } from \"@harelpls/use-pusher\";\n\nconst Example = () => {\n  const { client } = usePusher();\n  client.log(\"Look ma, logs!\");\n\n  return null;\n};\n```\n\n## Trigger Server\n\nIn order to trigger an event, you'll have to create a simple lambda (or an express server if that's your thing). Below is a short lambda that can handle triggered events from `useTrigger`.\n\n```typescript\nimport Pusher from \"pusher\";\n\nconst pusher = new Pusher({\n  appId: \"app-id\",\n  key: \"client-key\",\n  secret: \"mad-secret\",\n  cluster: \"ap4\"\n});\n\nexport async function handler(event) {\n  const { channelName, eventName, data } = JSON.parse(event.body);\n  pusher.trigger(channelName, eventName, data);\n  return { statusCode: 200 };\n}\n```\n\n## `useClientTrigger`\n\n> _I don't want a server though_\n\nI hear ya. If you're feeling audacious, you can use [client events](https://pusher.com/docs/channels/using_channels/events#triggering-client-events) to push directly from the client:\n\n```typescript\nimport { useChannel, useClientTrigger } from \"@harelpls/use-pusher\";\n\nconst Example = () => {\n  const channel = useChannel(\"presence-ca\");\n  const trigger = useClientTrigger(channel);\n  const handleClientEvent = () => {\n    trigger(\"Pew pew\");\n  };\n\n  return <button onClick={handleClientEvent}>Fire</button>;\n};\n```\n\n## Typescript\n\nThis project was built using typescript, so types are built-in. Yeeeew!\n\n## Testing\n\nI've teamed up with [@nikolalsvk](https://github.com/nikolalsvk) on [`pusher-js-mock`](https://github.com/nikolalsvk/pusher-js-mock) to bring y'all a great pusher mock.\n\nTesting emitted events with jest can be achieved using `jest.mock` and `@testing-library/react` (or `enzyme`, though your tests should reflect what the user should see **NOT** how the component handles events internally):\n\n```typescript\n// Example.tsx\nimport React from \"react\";\nimport { useChannel, useEvent } from \"@harelpls/use-pusher\";\n\nconst Example = () => {\n  const [title, setTitle] = useState();\n  const channel = useChannel(\"my-channel\");\n  useEvent(channel, \"title\", ({ data }) => setTitle(data));\n\n  return <span>{title}</span>;\n};\n\n// Example.test.tsx\nimport { render, act } from \"@testing-library/react\";\nimport { PusherMock, PusherChannelMock } from \"pusher-js-mock\";\n\n// mock out the result of the useChannel hook\nconst mockChannel = new PusherChannelMock();\njest.mock(\"@harelpls/use-pusher\", () => ({\n  ...require.requireActual(\"@harelpls/use-pusher\"),\n  useChannel: () => mockChannel\n}));\n\ntest(\"should show a title when it receives a title event\", async () => {\n  // mock the client\n  const client = new PusherMock(\"client-key\", { cluster: \"ap4\" });\n\n  // render component and provider with a mocked context value\n  const { findByText } = render(\n    <PusherProvider clientKey=\"client-key\" cluster=\"ap4\" value={{ client }}>\n      <Example />\n    </PusherProvider>\n  );\n\n  // emit an event on the mocked channel\n  act(() => mockChannel.emit(\"title\", { data: \"Hello world\" }));\n\n  // assert expectations\n  expect(await findByText(\"Hello world\")).toBeInTheDocument();\n});\n```\n\n[Check out the example tests](https://github.com/mayteio/use-pusher/blob/master/src/__tests__/Example.tsx) for testing presence channels.\n\n## Contributing\n\n1. Clone the repository and run `yarn && yarn test:watch`\n2. Get coding!\n\nPlease write tests (100% jest coverage) and types.\n\n## License\n\nMIT © [@mayteio](https://github.com/@mayteio)\n\n---\n\nThis hook is created using [create-react-hook](https://github.com/hermanya/create-react-hook).\n","_id":"@harelpls/use-pusher@4.1.1","dist":{"shasum":"918964c61f1dcc595d828a8cea70cc4e7318ecea","integrity":"sha512-YM3cMv35XOsJMPjMpWrmidSFAnwRjpbSbEfeonaWTf1FTpYgc1O20SXs38jA30A5vZ2fxhcGREV7GwG6MIctRg==","tarball":"https://registry.npmjs.org/@harelpls/use-pusher/-/use-pusher-4.1.1.tgz","fileCount":9,"unpackedSize":112172,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeXeuCCRA9TVsSAnZWagAAn1YP/jPiouGVdiwGbAQI0Z8q\ngJ0IW7CvxVhrisZ49QrhMV+U/oXfIVg0TeciDhq16eKkRfXdwCHjfZWNeeZ+\n++PSimdrXYlvWRF5iiMZ0jC4tvCD1c1rogE2jSqyRTFTaLWzCKGx/MJRYDD5\n4z7q3I3XXget1Xq789TJLMVg6xviqfY72ykBRZyiUpi2x6dVpyQiBkdeLLgW\nKYdtHdXbc+73/zkthHJnQ/Fc1inP1JPHWYeZQSSt1gAQVaKRhW6p1ynY4icv\nM7UFuzXPQpcDbvFJYD4eOztGefE6RwHdmbnlZhh0BP/9KQbGDkmZ0iEGk0NZ\nIeA8DNbElJ0o1zEGxhWothhixOX+2iVe3aeplOUOuIjpw6LxPFDFrkZAR1Q1\nuheWaSDET8QRtv6ygcw/ZmJ6vp4qyOzH463QHc2d0kjPBCqFXYFJjockGghu\nBVxEXlt5rSyI+z8eMq9WO9vnDI9fWK6m2VxHalJAugJfTOK+ta2cdjnrdCBV\n3FvKIeJG2QmfpZROx83F9lTFmktMthyJxmDduecZJvDYMuhBn58V12Qp6uKe\nj4l8qU5hwj7+fOntlZQlhqM6CUk5ljG0KZvvSNiGzxQGpML0+EAx4ZuK2Y2J\nB91Du2W03xEz/QbCwbuJe3ZXwr687+LBpmATPXPx9sXcfuil5Q6MciIJPkCa\nrnY/\r\n=XNpa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEAc8RcxllwmKdyjknCkYtdK3ogeXPZhs3n8bPVJSQDLAiBTPUbMYB/YkBaIHg888b+lDyxhdH94Br55L3thapa6ZA=="}]},"maintainers":[{"name":"harelpls","email":"harley.alexander@melbourne.vic.gov.au"}],"_npmUser":{"name":"harelpls","email":"harley.alexander.au@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-pusher_4.1.1_1583213442423_0.036135698801671445"},"_hasShrinkwrap":false},"4.1.2":{"name":"@harelpls/use-pusher","version":"4.1.2","description":"A wrapper around pusher-js for easy-as hooks in React.","author":{"name":"@mayteio"},"keywords":["react","react hooks","pusher","channels","pusher-js","websockets","realtime messaging","typescript"],"license":"MIT","repository":{"type":"git","url":"https://github.com/mayteio/use-pusher"},"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","types":"dist/index.d.ts","engines":{"node":">=8","npm":">=5"},"scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rimraf dist && rollup -c","start":"rollup -c -w","types":"dts-bundle-generator -o ./dist/index.d.ts ./src/index.ts --external-imports pusher-js","docs":"typedoc --options ./typedoc.js ./src","release":"yarn test && yarn build && yarn types && yarn publish && ntl deploy"},"dependencies":{"dequal":"^1.0.0","invariant":"^2.2.4","pusher-js":"^5.1.0"},"peerDependencies":{"react":"^16.9.0","react-dom":"^16.9.0"},"devDependencies":{"@babel/core":"^7.2.2","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.3.1","@testing-library/react":"^9.1.2","@testing-library/react-hooks":"^2.0.1","@types/invariant":"^2.2.30","@types/jest":"^24.0.18","@types/react":"^16.7.22","cross-env":"^5.2.0","dts-bundle-generator":"^3.2.0","gh-pages":"^2.0.1","jest-fetch-mock":"^2.1.2","pusher-js-mock":"mayteio/pusher-js-mock#feature/presence-channels-release","react":"^16.9.0","react-dom":"^16.9.0","react-scripts":"^3.0.1","react-test-renderer":"^16.9.0","rimraf":"^3.0.2","rollup":"^1.20.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-dts":"^1.1.6","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-typescript2":"^0.22.1","rollup-plugin-url":"^2.1.0","ts-jest":"^24.0.2","typedoc":"^0.16.9","typescript":"^3.2.4"},"readmeFilename":"README.md","readme":"# `@harelpls/use-pusher`\n\n> Easy as [React hooks](https://reactjs.org/docs/hooks-intro.html) that integrate with the [`pusher-js`](https://github.com/pusher/pusher-js) library.\n\n[![NPM](https://img.shields.io/npm/v/use-pusher.svg)](https://www.npmjs.com/package/react-pusher-hooks) ![Typed](https://badgen.net/badge//types/Typescript?icon=typescript)\n\n##### [API Reference/Docs](https://use-pusher-docs.netlify.com/)\n\n## Install\n\n```bash\nyarn add @harelpls/use-pusher\n```\n\n## Hooks\n\n- [`useChannel`](#usechannel)\n- [`usePresenceChannel`](#usepresencechannel)\n- [`useEvent`](#useevent)\n- [`useTrigger`](#usetrigger)\n- [`useClientTrigger`](#useclienttrigger)\n- [`usePusher`](#usepusher)\n\n## Usage\n\nYou must wrap your app with a `PusherProvider` and pass it config props for [`pusher-js`](https://github.com/pusher/pusher-js) initialisation.\n\n```typescript\nimport React from \"react\";\nimport { PusherProvider } from \"@harelpls/use-pusher\";\n\nconst config = {\n  // required config props\n  clientKey: \"client-key\",\n  cluster: \"ap4\",\n\n  // optional if you'd like to trigger events. BYO endpoint.\n  // see \"Trigger Server\" below for more info\n  triggerEndpoint: \"/pusher/trigger\",\n\n  // required for private/presence channels\n  // also sends auth headers to trigger endpoint\n  authEndpoint: \"/pusher/auth\",\n  auth: {\n    headers: { Authorization: \"Bearer token\" }\n  }\n};\n\n// Wrap app in provider\nconst App = () => {\n  <PusherProvider {...config}>\n    <Example />\n  </PusherProvider>;\n};\n```\n\n## `useChannel`\n\nUse this hook to subscribe to a channel.\n\n```typescript\n// returns channel instance.\nconst channel = useChannel(\"channel-name\");\n```\n\n## `usePresenceChannel`\n\nAugments a regular channel with member functionality.\n\n```typescript\nconst Example = () => {\n  const { members, myID } = usePresenceChannel('presence-awesome');\n\n  return (\n    <ul>\n      {Object.entries(members)\n        // filter self from members\n        .filter([id] => id !== myID)\n        // map them to a list\n        .map([id, info] => (\n          <li key={id}>{info.name}</li>\n        ))\n      }\n    </ul>\n  )\n}\n```\n\n## `useEvent`\n\nBind to events on a channel with a callback.\n\n```typescript\nconst Example = () => {\n  const [message, setMessages] = useState();\n  const channel = useChannel(\"channel-name\");\n  useEvent(\n    channel,\n    \"message\",\n    ({ data }) => setMessages((messages) => [...messages, data]),\n    // optional dependencies array. Passed through to useCallback. Defaults to [].\n    []\n  );\n};\n```\n\n## `useTrigger`\n\nA helper function to create a **server triggered** event. BYO server (See [Trigger Server](#trigger-server) below). Pass in `triggerEndpoint` prop to `<PusherProvider />`. Any auth headers from `config.auth.headers` automatically get passed to the `fetch` call.\n\n```typescript\nimport { useTrigger } from '@harelpls/use-pusher';\n\nconst Example = () => {.\n  const trigger = useTrigger();\n  const handleClick = () =>\n    trigger(\"channel-name\", \"event-name\", \"hello\");\n\n  return (\n    <button onClick={handleClick}>Say Hello</button>\n  )\n}\n```\n\n## `usePusher`\n\nGet access to the Pusher instance to do other things.\n\n```typescript\nimport { usePusher } from \"@harelpls/use-pusher\";\n\nconst Example = () => {\n  const { client } = usePusher();\n  client.log(\"Look ma, logs!\");\n\n  return null;\n};\n```\n\n## Trigger Server\n\nIn order to trigger an event, you'll have to create a simple lambda (or an express server if that's your thing). Below is a short lambda that can handle triggered events from `useTrigger`.\n\n```typescript\nimport Pusher from \"pusher\";\n\nconst pusher = new Pusher({\n  appId: \"app-id\",\n  key: \"client-key\",\n  secret: \"mad-secret\",\n  cluster: \"ap4\"\n});\n\nexport async function handler(event) {\n  const { channelName, eventName, data } = JSON.parse(event.body);\n  pusher.trigger(channelName, eventName, data);\n  return { statusCode: 200 };\n}\n```\n\n## `useClientTrigger`\n\n> _I don't want a server though_\n\nI hear ya. If you're feeling audacious, you can use [client events](https://pusher.com/docs/channels/using_channels/events#triggering-client-events) to push directly from the client:\n\n```typescript\nimport { useChannel, useClientTrigger } from \"@harelpls/use-pusher\";\n\nconst Example = () => {\n  const channel = useChannel(\"presence-ca\");\n  const trigger = useClientTrigger(channel);\n  const handleClientEvent = () => {\n    trigger(\"Pew pew\");\n  };\n\n  return <button onClick={handleClientEvent}>Fire</button>;\n};\n```\n\n## Typescript\n\nThis project was built using typescript, so types are built-in. Yeeeew!\n\n## Testing\n\nI've teamed up with [@nikolalsvk](https://github.com/nikolalsvk) on [`pusher-js-mock`](https://github.com/nikolalsvk/pusher-js-mock) to bring y'all a great pusher mock.\n\nTesting emitted events with jest can be achieved using `jest.mock` and `@testing-library/react` (or `enzyme`, though your tests should reflect what the user should see **NOT** how the component handles events internally):\n\n```typescript\n// Example.tsx\nimport React from \"react\";\nimport { useChannel, useEvent } from \"@harelpls/use-pusher\";\n\nconst Example = () => {\n  const [title, setTitle] = useState();\n  const channel = useChannel(\"my-channel\");\n  useEvent(channel, \"title\", ({ data }) => setTitle(data));\n\n  return <span>{title}</span>;\n};\n\n// Example.test.tsx\nimport { render, act } from \"@testing-library/react\";\nimport { PusherMock, PusherChannelMock } from \"pusher-js-mock\";\n\n// mock out the result of the useChannel hook\nconst mockChannel = new PusherChannelMock();\njest.mock(\"@harelpls/use-pusher\", () => ({\n  ...require.requireActual(\"@harelpls/use-pusher\"),\n  useChannel: () => mockChannel\n}));\n\ntest(\"should show a title when it receives a title event\", async () => {\n  // mock the client\n  const client = new PusherMock(\"client-key\", { cluster: \"ap4\" });\n\n  // render component and provider with a mocked context value\n  const { findByText } = render(\n    <PusherProvider clientKey=\"client-key\" cluster=\"ap4\" value={{ client }}>\n      <Example />\n    </PusherProvider>\n  );\n\n  // emit an event on the mocked channel\n  act(() => mockChannel.emit(\"title\", { data: \"Hello world\" }));\n\n  // assert expectations\n  expect(await findByText(\"Hello world\")).toBeInTheDocument();\n});\n```\n\n[Check out the example tests](https://github.com/mayteio/use-pusher/blob/master/src/__tests__/Example.tsx) for testing presence channels.\n\n## Contributing\n\n1. Clone the repository and run `yarn && yarn test:watch`\n2. Get coding!\n\nPlease write tests (100% jest coverage) and types.\n\n## License\n\nMIT © [@mayteio](https://github.com/@mayteio)\n\n---\n\nThis hook is created using [create-react-hook](https://github.com/hermanya/create-react-hook).\n","_id":"@harelpls/use-pusher@4.1.2","dist":{"shasum":"123042917b0b35bff94bd7d112cbcc7f139e8fb4","integrity":"sha512-cSBIcLnytcPpsNqKpEiKRw9TZ0IIT4mH8OOJrqafZVpAr4DwntyLeerVNYEElYXBSNPHrjhwKyOIM3a153ZRcQ==","tarball":"https://registry.npmjs.org/@harelpls/use-pusher/-/use-pusher-4.1.2.tgz","fileCount":9,"unpackedSize":112172,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeXfszCRA9TVsSAnZWagAAhF0P/j5gMNE23bwQ4g9n/qAj\nZ4aTH2LC34Gc0Q5Gkosa51IsYzh3LUva7fl3I+Ux4ePFqei5XIGNK9lhN/ln\ncE+9tqAmNswFksd9PtiT/fqb12W9MIV4uPahLzfhyA50c2LF37DL12vSxHSV\nIGzbpt/vDf/5n+kBUzkaeOpAS8VBEPuBS8HxLDqiNCAWPJHNxYbUIU2blD8I\nyyrpbY3irxGZXEdMOn34fhHEFWl475Y8UQjH7N9S8lf2PNB9j+zyRwlLFGF1\nWa4y/HLqgmiwmlX2bDd534ocnyWZMSBMkebLAqrUyD52c+RQSnVLnK62gPJn\n2NvtEIWnMvgTZVTaIRGjqgMUOw/Cv2Vldjei24UVd2SLpM6fPoMttSf1vuQF\nuvXx9wGI28QyGWL792v9oASEgQPxOjepUZ5E+BRqyHYvK3rOMU6wOr2OWO8q\nJE/GECF85XJwYcKrOvbXPWv+8fOdbpeU9dcEneWhDKpfe6IDWCYz01/b7ruJ\nufT2O2J3lzCHReUUD4YNFBpcwQkjWqn1gjA4FRss6lEioAaQi9EX5cz9um7X\ng42Ju9wV7FSMTfJ+Gltrmdaq5D0prmGKdU2SDagkDnUjVA8jMmyBIjT8mvXG\na5Z2DWU0axnHN7tkxo8vUYw7qY/3V1Pz4/eSjvkri03Vyi/jT3FpB8M1rn8+\nz3JG\r\n=BisS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBnmvvdd37aw7LzowVKxryfECwiIUTZo4Bmo5Dq5nWAnAiBPd51PVPDpilgb0JdLLAUtFhrQI60Ob+ObS6DW7PoXxA=="}]},"maintainers":[{"name":"harelpls","email":"harley.alexander@melbourne.vic.gov.au"}],"_npmUser":{"name":"harelpls","email":"harley.alexander.au@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-pusher_4.1.2_1583217459317_0.8577618141915644"},"_hasShrinkwrap":false},"4.1.3":{"name":"@harelpls/use-pusher","version":"4.1.3","description":"A wrapper around pusher-js for easy-as hooks in React.","author":{"name":"@mayteio"},"keywords":["react","react hooks","pusher","channels","pusher-js","websockets","realtime messaging","typescript"],"license":"MIT","repository":{"type":"git","url":"https://github.com/mayteio/use-pusher"},"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","types":"dist/index.d.ts","engines":{"node":">=8","npm":">=5"},"scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rimraf dist && rollup -c","start":"rollup -c -w","types":"dts-bundle-generator -o ./dist/index.d.ts ./src/index.ts --external-imports pusher-js","docs":"typedoc --options ./typedoc.js ./src","release":"yarn test && yarn build && yarn types && yarn publish && ntl deploy"},"dependencies":{"dequal":"^1.0.0","invariant":"^2.2.4","pusher-js":"^5.1.0"},"peerDependencies":{"react":"^16.9.0","react-dom":"^16.9.0"},"devDependencies":{"@babel/core":"^7.2.2","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.3.1","@testing-library/react":"^9.1.2","@testing-library/react-hooks":"^2.0.1","@types/invariant":"^2.2.30","@types/jest":"^24.0.18","@types/react":"^16.7.22","cross-env":"^5.2.0","dts-bundle-generator":"^3.2.0","gh-pages":"^2.0.1","jest-fetch-mock":"^2.1.2","pusher-js-mock":"mayteio/pusher-js-mock#feature/presence-channels-release","react":"^16.9.0","react-dom":"^16.9.0","react-scripts":"^3.0.1","react-test-renderer":"^16.9.0","rimraf":"^3.0.2","rollup":"^1.20.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-dts":"^1.1.6","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-typescript2":"^0.22.1","rollup-plugin-url":"^2.1.0","ts-jest":"^24.0.2","typedoc":"^0.16.9","typescript":"^3.2.4"},"readmeFilename":"README.md","readme":"# `@harelpls/use-pusher`\n\n> Easy as [React hooks](https://reactjs.org/docs/hooks-intro.html) that integrate with the [`pusher-js`](https://github.com/pusher/pusher-js) library.\n\n[![NPM](https://img.shields.io/npm/v/use-pusher.svg)](https://www.npmjs.com/package/react-pusher-hooks) ![Typed](https://badgen.net/badge//types/Typescript?icon=typescript)\n\n##### [API Reference/Docs](https://use-pusher-docs.netlify.com/)\n\n## Install\n\n```bash\nyarn add @harelpls/use-pusher\n```\n\n## Hooks\n\n- [`useChannel`](#usechannel)\n- [`usePresenceChannel`](#usepresencechannel)\n- [`useEvent`](#useevent)\n- [`useTrigger`](#usetrigger)\n- [`useClientTrigger`](#useclienttrigger)\n- [`usePusher`](#usepusher)\n\n## Usage\n\nYou must wrap your app with a `PusherProvider` and pass it config props for [`pusher-js`](https://github.com/pusher/pusher-js) initialisation.\n\n```typescript\nimport React from \"react\";\nimport { PusherProvider } from \"@harelpls/use-pusher\";\n\nconst config = {\n  // required config props\n  clientKey: \"client-key\",\n  cluster: \"ap4\",\n\n  // optional if you'd like to trigger events. BYO endpoint.\n  // see \"Trigger Server\" below for more info\n  triggerEndpoint: \"/pusher/trigger\",\n\n  // required for private/presence channels\n  // also sends auth headers to trigger endpoint\n  authEndpoint: \"/pusher/auth\",\n  auth: {\n    headers: { Authorization: \"Bearer token\" }\n  }\n};\n\n// Wrap app in provider\nconst App = () => {\n  <PusherProvider {...config}>\n    <Example />\n  </PusherProvider>;\n};\n```\n\n## `useChannel`\n\nUse this hook to subscribe to a channel.\n\n```typescript\n// returns channel instance.\nconst channel = useChannel(\"channel-name\");\n```\n\n## `usePresenceChannel`\n\nAugments a regular channel with member functionality.\n\n```typescript\nconst Example = () => {\n  const { members, myID } = usePresenceChannel('presence-awesome');\n\n  return (\n    <ul>\n      {Object.entries(members)\n        // filter self from members\n        .filter([id] => id !== myID)\n        // map them to a list\n        .map([id, info] => (\n          <li key={id}>{info.name}</li>\n        ))\n      }\n    </ul>\n  )\n}\n```\n\n## `useEvent`\n\nBind to events on a channel with a callback.\n\n```typescript\nconst Example = () => {\n  const [message, setMessages] = useState();\n  const channel = useChannel(\"channel-name\");\n  useEvent(\n    channel,\n    \"message\",\n    ({ data }) => setMessages((messages) => [...messages, data]),\n    // optional dependencies array. Passed through to useCallback. Defaults to [].\n    []\n  );\n};\n```\n\n## `useTrigger`\n\nA helper function to create a **server triggered** event. BYO server (See [Trigger Server](#trigger-server) below). Pass in `triggerEndpoint` prop to `<PusherProvider />`. Any auth headers from `config.auth.headers` automatically get passed to the `fetch` call.\n\n```typescript\nimport { useTrigger } from '@harelpls/use-pusher';\n\nconst Example = () => {.\n  const trigger = useTrigger();\n  const handleClick = () =>\n    trigger(\"channel-name\", \"event-name\", \"hello\");\n\n  return (\n    <button onClick={handleClick}>Say Hello</button>\n  )\n}\n```\n\n## `usePusher`\n\nGet access to the Pusher instance to do other things.\n\n```typescript\nimport { usePusher } from \"@harelpls/use-pusher\";\n\nconst Example = () => {\n  const { client } = usePusher();\n  client.log(\"Look ma, logs!\");\n\n  return null;\n};\n```\n\n## Trigger Server\n\nIn order to trigger an event, you'll have to create a simple lambda (or an express server if that's your thing). Below is a short lambda that can handle triggered events from `useTrigger`.\n\n```typescript\nimport Pusher from \"pusher\";\n\nconst pusher = new Pusher({\n  appId: \"app-id\",\n  key: \"client-key\",\n  secret: \"mad-secret\",\n  cluster: \"ap4\"\n});\n\nexport async function handler(event) {\n  const { channelName, eventName, data } = JSON.parse(event.body);\n  pusher.trigger(channelName, eventName, data);\n  return { statusCode: 200 };\n}\n```\n\n## `useClientTrigger`\n\n> _I don't want a server though_\n\nI hear ya. If you're feeling audacious, you can use [client events](https://pusher.com/docs/channels/using_channels/events#triggering-client-events) to push directly from the client:\n\n```typescript\nimport { useChannel, useClientTrigger } from \"@harelpls/use-pusher\";\n\nconst Example = () => {\n  const channel = useChannel(\"presence-ca\");\n  const trigger = useClientTrigger(channel);\n  const handleClientEvent = () => {\n    trigger(\"Pew pew\");\n  };\n\n  return <button onClick={handleClientEvent}>Fire</button>;\n};\n```\n\n## Typescript\n\nThis project was built using typescript, so types are built-in. Yeeeew!\n\n## Testing\n\nI've teamed up with [@nikolalsvk](https://github.com/nikolalsvk) on [`pusher-js-mock`](https://github.com/nikolalsvk/pusher-js-mock) to bring y'all a great pusher mock.\n\nTesting emitted events with jest can be achieved using `jest.mock` and `@testing-library/react` (or `enzyme`, though your tests should reflect what the user should see **NOT** how the component handles events internally):\n\n```typescript\n// Example.tsx\nimport React from \"react\";\nimport { useChannel, useEvent } from \"@harelpls/use-pusher\";\n\nconst Example = () => {\n  const [title, setTitle] = useState();\n  const channel = useChannel(\"my-channel\");\n  useEvent(channel, \"title\", ({ data }) => setTitle(data));\n\n  return <span>{title}</span>;\n};\n\n// Example.test.tsx\nimport { render, act } from \"@testing-library/react\";\nimport { PusherMock, PusherChannelMock } from \"pusher-js-mock\";\n\n// mock out the result of the useChannel hook\nconst mockChannel = new PusherChannelMock();\njest.mock(\"@harelpls/use-pusher\", () => ({\n  ...require.requireActual(\"@harelpls/use-pusher\"),\n  useChannel: () => mockChannel\n}));\n\ntest(\"should show a title when it receives a title event\", async () => {\n  // mock the client\n  const client = new PusherMock(\"client-key\", { cluster: \"ap4\" });\n\n  // render component and provider with a mocked context value\n  const { findByText } = render(\n    <PusherProvider clientKey=\"client-key\" cluster=\"ap4\" value={{ client }}>\n      <Example />\n    </PusherProvider>\n  );\n\n  // emit an event on the mocked channel\n  act(() => mockChannel.emit(\"title\", { data: \"Hello world\" }));\n\n  // assert expectations\n  expect(await findByText(\"Hello world\")).toBeInTheDocument();\n});\n```\n\n[Check out the example tests](https://github.com/mayteio/use-pusher/blob/master/src/__tests__/Example.tsx) for testing presence channels.\n\n## Contributing\n\n1. Clone the repository and run `yarn && yarn test:watch`\n2. Get coding!\n\nPlease write tests (100% jest coverage) and types.\n\n## License\n\nMIT © [@mayteio](https://github.com/@mayteio)\n\n---\n\nThis hook is created using [create-react-hook](https://github.com/hermanya/create-react-hook).\n","_id":"@harelpls/use-pusher@4.1.3","dist":{"shasum":"f7ec550fb7367b0bb70697c9b0e696dc241fa249","integrity":"sha512-gd+Dz03V5HvA+r5SKnoyhx2RjGTqkyTYt92Z1t49j9QGN2WphsGYo3SNsHolXhfhPX9ub5UrYAvFSMi8S2ZwGw==","tarball":"https://registry.npmjs.org/@harelpls/use-pusher/-/use-pusher-4.1.3.tgz","fileCount":9,"unpackedSize":112172,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeXgC/CRA9TVsSAnZWagAAUfMQAJu8PBj8WEqPXIRe4ExN\nltw/L6928UiyeV2HY++/q3MQx7Zw90FmZPMnWfdpoU9X/jxsNLo8ZpMP0YjM\nGEEz+Oyl2c6IgQMZfCBPxAOAKlP1ha2sfySvie3DH4ynatI0JBKRQReB/tjb\nSdR9LTyFICq4lP1NZnbu2Lpw2MW7w3y4zq+P5xzKfIZK4SmmENSE+IbkZqlg\n/Pv5LJxvQW4/ecWZsEr5XaHZPSemzlOePcR30ImW/23O5INerAJwMDsupww8\n4xQ3cwUNKAz8f1hK8ZUDVuVfnt9lWVCsfttCqau6jMnpZ8/R9s4hWCIjwxJQ\njbq0X/t7dv2+/PY60miMcgxFOIofbyy3bnFevQlqt5XWZUckyQ46jHLPfLop\nmTXOGKWUUM25Zot45BAZHXoWPvG5BZwtiXvBbNx3QlQg6bl05+9w+bsYwoeI\nj9F394kmjsWJ7wjbWlYDInDDI5tamtFdb/YkxX4mMDaohtT+MJvMGLW63DDW\njcHuFp+s8sxoybUOzayh458hIEu+DozHUgkWtrInkKwwdTUbsfbu0Agm8wKl\nkHV+8OveD+cuAzsmV4KUzBOcsbVYCHX9t4hFp3AZULFXz/KoSqkmFnLdQSp4\nzmS3KhhBmvASeqyIZ5Gw6ZO3djX3E33PzSI6BdH6dcOCT1BOjC42aiRRz34q\nsGBc\r\n=IQQm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAsSKsbPK25E8139l3vsNbPqBYxSkswOayfWuV6riP6bAiBRQOqbV3+51azkfPvH63XQsWZM7nioyhKLrXJnMZ4zdQ=="}]},"maintainers":[{"name":"harelpls","email":"harley.alexander@melbourne.vic.gov.au"}],"_npmUser":{"name":"harelpls","email":"harley.alexander.au@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-pusher_4.1.3_1583218879400_0.18634419066341046"},"_hasShrinkwrap":false},"4.1.4":{"name":"@harelpls/use-pusher","version":"4.1.4","description":"A wrapper around pusher-js for easy-as hooks in React.","author":{"name":"@mayteio"},"keywords":["react","react hooks","pusher","channels","pusher-js","websockets","realtime messaging","typescript"],"license":"MIT","repository":{"type":"git","url":"https://github.com/mayteio/use-pusher"},"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","types":"dist/index.d.ts","engines":{"node":">=8","npm":">=5"},"scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rimraf dist && rollup -c","start":"rollup -c -w","types":"dts-bundle-generator -o ./dist/index.d.ts ./src/index.ts --external-imports pusher-js","docs":"typedoc --options ./typedoc.js ./src","release":"yarn test && yarn build && yarn types && yarn publish && ntl deploy"},"dependencies":{"dequal":"^1.0.0","invariant":"^2.2.4","pusher-js":"^5.1.0"},"peerDependencies":{"react":"^16.9.0","react-dom":"^16.9.0"},"devDependencies":{"@babel/core":"^7.2.2","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.3.1","@testing-library/react":"^9.1.2","@testing-library/react-hooks":"^2.0.1","@types/invariant":"^2.2.30","@types/jest":"^24.0.18","@types/react":"^16.7.22","cross-env":"^5.2.0","dts-bundle-generator":"^3.2.0","gh-pages":"^2.0.1","jest-fetch-mock":"^2.1.2","pusher-js-mock":"mayteio/pusher-js-mock#feature/presence-channels-release","react":"^16.9.0","react-dom":"^16.9.0","react-scripts":"^3.0.1","react-test-renderer":"^16.9.0","rimraf":"^3.0.2","rollup":"^1.20.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-dts":"^1.1.6","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-typescript2":"^0.22.1","rollup-plugin-url":"^2.1.0","ts-jest":"^24.0.2","typedoc":"^0.16.9","typescript":"^3.2.4"},"readmeFilename":"README.md","readme":"# `@harelpls/use-pusher`\n\n> Easy as [React hooks](https://reactjs.org/docs/hooks-intro.html) that integrate with the [`pusher-js`](https://github.com/pusher/pusher-js) library.\n\n[![NPM](https://img.shields.io/npm/v/use-pusher.svg)](https://www.npmjs.com/package/react-pusher-hooks) ![Typed](https://badgen.net/badge//types/Typescript?icon=typescript)\n\n##### [API Reference/Docs](https://use-pusher-docs.netlify.com/)\n\n## Install\n\n```bash\nyarn add @harelpls/use-pusher\n```\n\n## Hooks\n\n- [`useChannel`](#usechannel)\n- [`usePresenceChannel`](#usepresencechannel)\n- [`useEvent`](#useevent)\n- [`useTrigger`](#usetrigger)\n- [`useClientTrigger`](#useclienttrigger)\n- [`usePusher`](#usepusher)\n\n## Usage\n\nYou must wrap your app with a `PusherProvider` and pass it config props for [`pusher-js`](https://github.com/pusher/pusher-js) initialisation.\n\n```typescript\nimport React from \"react\";\nimport { PusherProvider } from \"@harelpls/use-pusher\";\n\nconst config = {\n  // required config props\n  clientKey: \"client-key\",\n  cluster: \"ap4\",\n\n  // optional if you'd like to trigger events. BYO endpoint.\n  // see \"Trigger Server\" below for more info\n  triggerEndpoint: \"/pusher/trigger\",\n\n  // required for private/presence channels\n  // also sends auth headers to trigger endpoint\n  authEndpoint: \"/pusher/auth\",\n  auth: {\n    headers: { Authorization: \"Bearer token\" }\n  }\n};\n\n// Wrap app in provider\nconst App = () => {\n  <PusherProvider {...config}>\n    <Example />\n  </PusherProvider>;\n};\n```\n\n## `useChannel`\n\nUse this hook to subscribe to a channel.\n\n```typescript\n// returns channel instance.\nconst channel = useChannel(\"channel-name\");\n```\n\n## `usePresenceChannel`\n\nAugments a regular channel with member functionality.\n\n```typescript\nconst Example = () => {\n  const { members, myID } = usePresenceChannel('presence-awesome');\n\n  return (\n    <ul>\n      {Object.entries(members)\n        // filter self from members\n        .filter([id] => id !== myID)\n        // map them to a list\n        .map([id, info] => (\n          <li key={id}>{info.name}</li>\n        ))\n      }\n    </ul>\n  )\n}\n```\n\n## `useEvent`\n\nBind to events on a channel with a callback.\n\n```typescript\nconst Example = () => {\n  const [message, setMessages] = useState();\n  const channel = useChannel(\"channel-name\");\n  useEvent(\n    channel,\n    \"message\",\n    ({ data }) => setMessages((messages) => [...messages, data]),\n    // optional dependencies array. Passed through to useCallback. Defaults to [].\n    []\n  );\n};\n```\n\n## `useTrigger`\n\nA helper function to create a **server triggered** event. BYO server (See [Trigger Server](#trigger-server) below). Pass in `triggerEndpoint` prop to `<PusherProvider />`. Any auth headers from `config.auth.headers` automatically get passed to the `fetch` call.\n\n```typescript\nimport { useTrigger } from '@harelpls/use-pusher';\n\nconst Example = () => {.\n  const trigger = useTrigger();\n  const handleClick = () =>\n    trigger(\"channel-name\", \"event-name\", \"hello\");\n\n  return (\n    <button onClick={handleClick}>Say Hello</button>\n  )\n}\n```\n\n## `usePusher`\n\nGet access to the Pusher instance to do other things.\n\n```typescript\nimport { usePusher } from \"@harelpls/use-pusher\";\n\nconst Example = () => {\n  const { client } = usePusher();\n  client.log(\"Look ma, logs!\");\n\n  return null;\n};\n```\n\n## Trigger Server\n\nIn order to trigger an event, you'll have to create a simple lambda (or an express server if that's your thing). Below is a short lambda that can handle triggered events from `useTrigger`.\n\n```typescript\nimport Pusher from \"pusher\";\n\nconst pusher = new Pusher({\n  appId: \"app-id\",\n  key: \"client-key\",\n  secret: \"mad-secret\",\n  cluster: \"ap4\"\n});\n\nexport async function handler(event) {\n  const { channelName, eventName, data } = JSON.parse(event.body);\n  pusher.trigger(channelName, eventName, data);\n  return { statusCode: 200 };\n}\n```\n\n## `useClientTrigger`\n\n> _I don't want a server though_\n\nI hear ya. If you're feeling audacious, you can use [client events](https://pusher.com/docs/channels/using_channels/events#triggering-client-events) to push directly from the client:\n\n```typescript\nimport { useChannel, useClientTrigger } from \"@harelpls/use-pusher\";\n\nconst Example = () => {\n  const channel = useChannel(\"presence-ca\");\n  const trigger = useClientTrigger(channel);\n  const handleClientEvent = () => {\n    trigger(\"Pew pew\");\n  };\n\n  return <button onClick={handleClientEvent}>Fire</button>;\n};\n```\n\n## Typescript\n\nThis project was built using typescript, so types are built-in. Yeeeew!\n\n## Testing\n\nI've teamed up with [@nikolalsvk](https://github.com/nikolalsvk) on [`pusher-js-mock`](https://github.com/nikolalsvk/pusher-js-mock) to bring y'all a great pusher mock.\n\nTesting emitted events with jest can be achieved using `jest.mock` and `@testing-library/react` (or `enzyme`, though your tests should reflect what the user should see **NOT** how the component handles events internally):\n\n```typescript\n// Example.tsx\nimport React from \"react\";\nimport { useChannel, useEvent } from \"@harelpls/use-pusher\";\n\nconst Example = () => {\n  const [title, setTitle] = useState();\n  const channel = useChannel(\"my-channel\");\n  useEvent(channel, \"title\", ({ data }) => setTitle(data));\n\n  return <span>{title}</span>;\n};\n\n// Example.test.tsx\nimport { render, act } from \"@testing-library/react\";\nimport { PusherMock, PusherChannelMock } from \"pusher-js-mock\";\n\n// mock out the result of the useChannel hook\nconst mockChannel = new PusherChannelMock();\njest.mock(\"@harelpls/use-pusher\", () => ({\n  ...require.requireActual(\"@harelpls/use-pusher\"),\n  useChannel: () => mockChannel\n}));\n\ntest(\"should show a title when it receives a title event\", async () => {\n  // mock the client\n  const client = new PusherMock(\"client-key\", { cluster: \"ap4\" });\n\n  // render component and provider with a mocked context value\n  const { findByText } = render(\n    <PusherProvider clientKey=\"client-key\" cluster=\"ap4\" value={{ client }}>\n      <Example />\n    </PusherProvider>\n  );\n\n  // emit an event on the mocked channel\n  act(() => mockChannel.emit(\"title\", { data: \"Hello world\" }));\n\n  // assert expectations\n  expect(await findByText(\"Hello world\")).toBeInTheDocument();\n});\n```\n\n[Check out the example tests](https://github.com/mayteio/use-pusher/blob/master/src/__tests__/Example.tsx) for testing presence channels.\n\n## Contributing\n\n1. Clone the repository and run `yarn && yarn test:watch`\n2. Get coding!\n\nPlease write tests (100% jest coverage) and types.\n\n## License\n\nMIT © [@mayteio](https://github.com/@mayteio)\n\n---\n\nThis hook is created using [create-react-hook](https://github.com/hermanya/create-react-hook).\n","_id":"@harelpls/use-pusher@4.1.4","dist":{"shasum":"baa25d2e22653bfa4ec5fcf4d4120526fa0f3576","integrity":"sha512-/nQnbkGevT8mKZ0Jy0B4cK9dVIUdUMj0FqworXeYRczQ2K6TXdP5klzGjnaSUNBJyX5K00fmVsemDUieOqBETw==","tarball":"https://registry.npmjs.org/@harelpls/use-pusher/-/use-pusher-4.1.4.tgz","fileCount":10,"unpackedSize":4573151,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeeqOVCRA9TVsSAnZWagAAnvMQAJTqxnvNwC6Uh97zG5bu\nnIIhed9Qg+UQ5tlW+Jcq9X2pKRTv3YY/08s748idMB9fsf//dqMtdCcGPvXB\nPgmaFGEEd6YQFVUaPtTlDVfHc2Y85Ryb1UJL3HrK8Lq83bSi08Nb45p+f7RI\nqL2K8kfNlnrvOw+KBosHmQkarmIE0jV7T83k02nGLRNITCPjIX2j7GurpGP6\nwwkn7ZYjEXm0lqjdHjeWSVfbd/O038ngy6PHGLWQPrcgQz/88cUp2conI49o\nE7Ui9wF/1J6eX42ggKRx3BYUvv3FB88nMtmSk9sb48ebx8xal4wgCqwm8ian\nRcGDfyj1j2HuR6lCEJt80ePFGCi+7iAWtv+MVao5ENzhLIiwpp8igTtp1oCr\nccIGNi/U90BIs0AAkepEtNxR3iKULCnwRYSBSF97sssrJqxgaxya/qpA6UGH\nIrTQkc2dQERabCI+5fJNje1TaCa758i3ui8tPfyI982fSdllBn9ulrah6F9P\nvZNwB/q9WZTh7lfXCadxuCh2FLd+xf3tiDDfG9Otj0WpgzEZuNEfNNjFEgnf\nXziq/uqz87pfA8Xq23j7OntHzdwo0NrM2QYWz50eo89UT0nLVEB3z+IyPdnC\nF5AOjKIGZzyZN6MM/8m9fYhd6cR6ygb+HnFY1zbE9j+mJTDqbJEFwXBkA8RL\n3A7m\r\n=Sh8G\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICehmD2GYjaUSVTj+DOo7QiYGYe44CECct1Bi0wglWtVAiEAqhaz3XjfvrTd5aGJ5rKD1nhjtNHxZgrwq/ZtIsjAsJ0="}]},"maintainers":[{"name":"harelpls","email":"harley.alexander@melbourne.vic.gov.au"}],"_npmUser":{"name":"harelpls","email":"harley.alexander.au@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-pusher_4.1.4_1585095572689_0.4826288208675027"},"_hasShrinkwrap":false},"4.1.5":{"name":"@harelpls/use-pusher","version":"4.1.5","description":"A wrapper around pusher-js for easy-as hooks in React.","author":{"name":"@mayteio"},"keywords":["react","react hooks","pusher","channels","pusher-js","websockets","realtime messaging","typescript"],"license":"MIT","repository":{"type":"git","url":"https://github.com/mayteio/use-pusher"},"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","types":"dist/index.d.ts","engines":{"node":">=8","npm":">=5"},"scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rimraf dist && rollup -c","start":"rollup -c -w","types":"dts-bundle-generator -o ./dist/index.d.ts ./src/index.ts --external-imports pusher-js","docs":"typedoc --options ./typedoc.js ./src","release":"yarn test && yarn build && yarn types && yarn publish && ntl deploy"},"dependencies":{"dequal":"^1.0.0","invariant":"^2.2.4","pusher-js":"^5.1.0"},"peerDependencies":{"react":"^16.9.0","react-dom":"^16.9.0"},"devDependencies":{"@babel/core":"^7.2.2","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.3.1","@testing-library/react":"^9.1.2","@testing-library/react-hooks":"^2.0.1","@types/invariant":"^2.2.30","@types/jest":"^24.0.18","@types/react":"^16.7.22","cross-env":"^5.2.0","dts-bundle-generator":"^3.2.0","gh-pages":"^2.0.1","jest-fetch-mock":"^2.1.2","pusher-js-mock":"mayteio/pusher-js-mock#feature/presence-channels-release","react":"^16.9.0","react-dom":"^16.9.0","react-scripts":"^3.0.1","react-test-renderer":"^16.9.0","rimraf":"^3.0.2","rollup":"^1.20.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-dts":"^1.1.6","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-typescript2":"^0.22.1","rollup-plugin-url":"^2.1.0","ts-jest":"^24.0.2","typedoc":"^0.16.9","typescript":"^3.2.4"},"_id":"@harelpls/use-pusher@4.1.5","dist":{"shasum":"87c9676b9033939b424a39090f13bcb5cb56d631","integrity":"sha512-nEq/dwDrnii/hyBqqk+oP2uDJcIUe7fnGz2i0mqDKIws2nT+ArCq2wVuZFOpTHtzzWOwX5BMTUEB2ZnAkCVSSw==","tarball":"https://registry.npmjs.org/@harelpls/use-pusher/-/use-pusher-4.1.5.tgz","fileCount":10,"unpackedSize":4390458,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe2Du2CRA9TVsSAnZWagAAcfEP/3oao4GM1PcMn5BIOmND\n9EBPf2tIbasfD2O8eKFq42MEATGIA+1lWYdckjeNeDn7GUxOvZtxnp8g47xI\nQ55VXVH3tQ1TRbqMQIsr634fCnv3tkVWq3gvEJR7GeyuQ+3fsRLQEc/FCNzk\nKM28ExKpctdBr4UKM0H8w+XsjsX34qxQN123HyEpPfWmRNk+znVNuXXeWsMc\nRxFirfBqYrm67gtpuuFgUpj2PZemJEQQB9ZlG+qMOM8tddRCusHVb50CnJF9\noUDLxItORSxbEqPFSPsbQYLY7gTj1p5jUMcrXFrdF380DACMtZQrTJcWPjBS\nVqEj4Mtpdn55FLgnSZLqpoq8uhEMpiPgdzWKu0NAMht24iWWr1LUv0+oI875\n/SMyLVQ3+QgWetMT34yKqRUzgc+4lmO+qlJlCAjGmtOnTXbDi/ISjb1CZB0A\nFNBQaOTXV7t1xOTBY4o2plvweulhNayesMq9+CFW12P3z8F4djkffIZHx+M2\nFYLjK8+pELoTXdxE7Q12ynFVGn0QpAvSInf/YYcsR2q9R0RVX1MxFNa4eDfJ\n7NYAKpTYL0fOSIPGcpq3r/J0Kd4XIbJeezMnlvSuv0HvTmUyaiiA27ynSE/n\nuStgdurLOaVzjsoV7Hv/BcSgohmNh6aYNQAeN7TdafMndB3H6nr+Hf4vPMpN\nceKH\r\n=DVbE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFOxR94CbS/dTicRqGUeHkd4ntTgWmsHWIts9X4aalPoAiEAwf0N5CQ+j7zSBzpyMlHbUcN6zSmKTyEdWip/ek2jKAc="}]},"maintainers":[{"name":"harelpls","email":"harley.alexander@melbourne.vic.gov.au"}],"_npmUser":{"name":"harelpls","email":"harley.alexander.au@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-pusher_4.1.5_1591229365907_0.38112078507858493"},"_hasShrinkwrap":false},"5.0.0":{"name":"@harelpls/use-pusher","version":"5.0.0","description":"A wrapper around pusher-js for easy-as hooks in React.","author":{"name":"@mayteio"},"keywords":["react","react hooks","pusher","channels","pusher-js","websockets","realtime messaging","typescript"],"license":"MIT","repository":{"type":"git","url":"https://github.com/mayteio/use-pusher"},"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","types":"dist/index.d.ts","engines":{"node":">=8","npm":">=5"},"scripts":{"test":"cross-env CI=1 yarn test:web && yarn test:rn","test:web":"jest --config=jest.config.js","test:rn":"JEST_ENV=rn jest --config=jest.rn.config.js","build":"rimraf dist react-native && rollup -c","start":"rollup -c -w","types":"dts-bundle-generator -o ./dist/index.d.ts ./src/index.ts --external-imports pusher-js","docs":"typedoc --options ./typedoc.js ./src","release":"yarn test && yarn build && yarn types && yarn publish && ntl deploy"},"dependencies":{"@react-native-community/netinfo":"^5.9.3","dequal":"^1.0.0","invariant":"^2.2.4","jest":"^25.1.0","pusher-js":"^6.0.3"},"peerDependencies":{"react":"^16.9.0","react-dom":"^16.9.0"},"devDependencies":{"@babel/core":"^7.8.6","@babel/plugin-proposal-class-properties":"^7.10.1","@babel/plugin-transform-flow-strip-types":"^7.10.1","@babel/plugin-transform-object-assign":"^7.10.3","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.3.1","@testing-library/react":"^9.1.2","@testing-library/react-hooks":"^2.0.1","@testing-library/react-native":"^5.0.3","@types/invariant":"^2.2.30","@types/jest":"^24.0.18","@types/react":"^16.7.22","@types/react-native":"^0.62.13","babel-jest":"^25.1.0","cross-env":"^5.2.0","dts-bundle-generator":"^3.2.0","gh-pages":"^2.0.1","jest-fetch-mock":"^2.1.2","pusher-js-mock":"mayteio/pusher-js-mock#feature/presence-channels-release","react":"^16.9.0","react-dom":"^16.9.0","react-native":"^0.62.2","react-native-typescript-transformer":"^1.2.13","react-test-renderer":"^16.9.0","rimraf":"^3.0.2","rollup":"^1.20.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-dts":"^1.1.6","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-typescript2":"^0.22.1","rollup-plugin-url":"^2.1.0","ts-jest":"^25.2.1","typedoc":"^0.16.9","typescript":"^3.8.3"},"_id":"@harelpls/use-pusher@5.0.0","dist":{"shasum":"0034aea96a521971f11b7c103ab81ccd113e7e66","integrity":"sha512-eIUTvvpaIxvoN6f6MAC34Ob1Ljpw3PMPB3W5hX0sGsR+AoV1CWXYkl+avfcrpg+0aU4iyWF/1XW2P8QBkoBWkA==","tarball":"https://registry.npmjs.org/@harelpls/use-pusher/-/use-pusher-5.0.0.tgz","fileCount":13,"unpackedSize":669817,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe8b2fCRA9TVsSAnZWagAAYpQP/jZp87m+35dxdTmZfz0g\nQlveLLGfICCON12O4kRiVG+a5rBU7cpUkrO8hiLQ9PKfj3Q7QKb5Q25fXGSS\ngH5I+fXzTGoJ2x+B13p+n+8Bx2i22XrSwhak8ZRFVOQaHoVsozdXATIEw1Kt\nAhES2OWxZvJ1ByjA8py9dbX/6fCjhwiJ2e/fl5JaAnoij4SUlfffh15QFMoH\nXq0yyh2IW1BuLl0BZQhv3DPHgJUU9WuVORdknoGmo2gBzh8RfW/eTKBF3fsy\n9QBGVpqTTeASn16Y5EYO8z5LMcS6VmhHikBqVJsjkU16nhl0zRpGcSgB0RQN\nIis+4dzxyQjc6CHrl/2sTHB26XxZJ8QMJYuRVX5k2fPi/588N7FibOoveaIc\nEJwFz9Bhr7w0hM8WjNd4cF82/dY6RrX3AYV8imfgpE+jcsNMQn8CVog/eS7E\nATaS4FQJFQrrI5a5Cg1xVyqfWLbFODMQvdWkCA9gi6i5SrSZ0NCMBCxlgaNi\nVsGr5sObXal+eUfqR8yTiidop2VogrOLd9tSy6tskHXnbgAnq3oRoLxm8abY\nBDU6+jSdFSD0gEQusxg6clULXwKYn4JOVY7Oxo2FiUeE+go7ivflkaJN0YF5\n8xs2vKsDtYZLB2k3nJmm1cHzyr1InfAE+nOW82fCaTI/c89GS9mQgc2iYIOR\nJ/Ef\r\n=/NyG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHXvtR2NCgKhBspAmU6sv2MZs1kGTgz9ujC80feUTvXLAiEA4iqVATwbT3ZC6Gdo0V2sgfqNvnSR5mAQY1DzQ3WidnY="}]},"maintainers":[{"name":"harelpls","email":"harley.alexander@melbourne.vic.gov.au"}],"_npmUser":{"name":"harelpls","email":"harley.alexander.au@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-pusher_5.0.0_1592901023327_0.3746610620713524"},"_hasShrinkwrap":false},"5.1.0":{"name":"@harelpls/use-pusher","version":"5.1.0","description":"A wrapper around pusher-js for easy-as hooks in React.","author":{"name":"@mayteio"},"keywords":["react","react hooks","pusher","channels","pusher-js","websockets","realtime messaging","typescript"],"license":"MIT","repository":{"type":"git","url":"https://github.com/mayteio/use-pusher"},"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","types":"dist/index.d.ts","engines":{"node":">=8","npm":">=5"},"scripts":{"test":"cross-env CI=1 yarn test:web && yarn test:rn","test:web":"jest --config=jest.config.js","test:rn":"JEST_ENV=rn jest --config=jest.rn.config.js","build":"rimraf dist react-native && rollup -c","start":"rollup -c -w","types":"dts-bundle-generator -o ./dist/index.d.ts ./src/index.ts --external-imports pusher-js","docs":"typedoc --options ./typedoc.js ./src","release":"yarn test && yarn build && yarn types && yarn publish && ntl deploy"},"dependencies":{"@react-native-community/netinfo":"^5.9.3","dequal":"^1.0.0","invariant":"^2.2.4","jest":"^25.1.0","pusher-js":"^6.0.3"},"peerDependencies":{"react":"^16.9.0","react-dom":"^16.9.0"},"devDependencies":{"@babel/core":"^7.8.6","@babel/plugin-proposal-class-properties":"^7.10.1","@babel/plugin-transform-flow-strip-types":"^7.10.1","@babel/plugin-transform-object-assign":"^7.10.3","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.3.1","@testing-library/react":"^9.1.2","@testing-library/react-hooks":"^2.0.1","@testing-library/react-native":"^5.0.3","@types/invariant":"^2.2.30","@types/jest":"^24.0.18","@types/react":"^16.7.22","@types/react-native":"^0.62.13","babel-jest":"^25.1.0","cross-env":"^5.2.0","dts-bundle-generator":"^3.2.0","gh-pages":"^2.0.1","jest-fetch-mock":"^2.1.2","pusher-js-mock":"mayteio/pusher-js-mock#feature/presence-channels-release","react":"^16.9.0","react-dom":"^16.9.0","react-native":"^0.62.2","react-native-typescript-transformer":"^1.2.13","react-test-renderer":"^16.9.0","rimraf":"^3.0.2","rollup":"^1.20.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-dts":"^1.1.6","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-typescript2":"^0.22.1","rollup-plugin-url":"^2.1.0","ts-jest":"^25.2.1","typedoc":"^0.16.9","typescript":"^3.8.3"},"_id":"@harelpls/use-pusher@5.1.0","dist":{"shasum":"72e211c2c24130b45f3b192f13d89abce61ae8d6","integrity":"sha512-Pgo3JhEpAHWCdnQKvozuMfNsX4UZ6fs5+6XFxu6cmdAcI6BjxxIlFNn/QAEjEN53OmANJn2YuYOTHuuMzYV/gQ==","tarball":"https://registry.npmjs.org/@harelpls/use-pusher/-/use-pusher-5.1.0.tgz","fileCount":13,"unpackedSize":4960310,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCSQQCRA9TVsSAnZWagAAbHgP/185sT6I2GvvSdi+sALr\nAFco2BYH7S9Flb0UAJL2uU9dJPsyWKD9TB0PAL8YhlyYVpxmMg+icxXABp/5\nowx/s+dfMWos8Vx+pR48iPz13tYmPMiyefAHPCF/8MIRr9zPDbdG6qslAz9o\nyx0+JNzWIXpzX1EUS9wzNqjydMTEgny099CI+FTr4ZGfdZWRvkDKC3ZPPZaL\n0xYNrccm+/uBw7Wq5+lybTEAdca6WIlJW6YRB/FIKW8DTsUI0ZwLmwyo69/a\n8wH96J0Jd0xDmsEegZPVKiqa639G0iU7Pk0YphNgsGVtb2ObvERKQba/uRFl\nm8Myu1Miulg655NKDiuIlO1HQgRppI+2YK+SmC8L4+jSrHAhJhWG+Q8OKTUC\n7V+nM8u2UGN8DgSAxfutWywaOpM04SdHXci4riw5cLqqmpaTbwD39Oxx+XRC\ndedwgR5CMLtZKN0omdy0aIqBaRi4RcIt5eSamL/paL3SEUTmiGTBSzm1LWAH\nYuO8FihlSU/BrjcLOFyLfNbjLParLrpoSYouCvQ4Z98ZFzCsExW/dnU5yxtc\nCir5qRUydF9tB5myf0jKc4yy6ETJbCxysjcuGjlFcvnxnIcL83UMtiqciaPS\nWOARFxIJMdt8yqK2EKBB1M+q2lnNm1MaZL60OB8rb0akeTxZG1TPfEhRme4g\nDtX8\r\n=8y9s\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGUncnhJYbpnzpyLl5oWGHY59hZN5r3fkz2zfjWxMrAwAiA9k9Yn9DVDk0o/wFfVQsEbkadgIr1pLMk7TyTTGgisyw=="}]},"maintainers":[{"name":"harelpls","email":"harley.alexander@melbourne.vic.gov.au"}],"_npmUser":{"name":"harelpls","email":"harley.alexander.au@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-pusher_5.1.0_1594434575851_0.6058518537837687"},"_hasShrinkwrap":false},"6.0.0":{"name":"@harelpls/use-pusher","version":"6.0.0","description":"A wrapper around pusher-js for easy-as hooks in React.","author":{"name":"@mayteio"},"keywords":["react","react hooks","pusher","channels","pusher-js","websockets","realtime messaging","typescript"],"license":"MIT","repository":{"type":"git","url":"https://github.com/mayteio/use-pusher"},"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","types":"dist/index.d.ts","engines":{"node":">=8","npm":">=5"},"scripts":{"test":"cross-env CI=1 yarn test:web && yarn test:rn","test:web":"jest --config=jest.config.js","test:rn":"JEST_ENV=rn jest --config=jest.rn.config.js","build":"rimraf dist react-native && rollup -c","start":"rollup -c -w","types":"dts-bundle-generator -o ./dist/index.d.ts ./src/index.ts --external-imports pusher-js","docs":"typedoc --options ./typedoc.js ./src","release":"yarn test && yarn build && yarn types && yarn publish && ntl deploy"},"dependencies":{"@react-native-community/netinfo":"^5.9.3","dequal":"^1.0.0","invariant":"^2.2.4","jest":"^25.1.0","pusher-js":"^6.0.3"},"peerDependencies":{"react":"^16.9.0","react-dom":"^16.9.0"},"devDependencies":{"@babel/core":"^7.8.6","@babel/plugin-proposal-class-properties":"^7.10.1","@babel/plugin-transform-flow-strip-types":"^7.10.1","@babel/plugin-transform-object-assign":"^7.10.3","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.3.1","@testing-library/react":"^9.1.2","@testing-library/react-hooks":"^2.0.1","@testing-library/react-native":"^5.0.3","@types/invariant":"^2.2.30","@types/jest":"^24.0.18","@types/react":"^16.7.22","@types/react-native":"^0.62.13","babel-jest":"^25.1.0","cross-env":"^5.2.0","dts-bundle-generator":"^3.2.0","gh-pages":"^2.0.1","jest-fetch-mock":"^2.1.2","pusher-js-mock":"mayteio/pusher-js-mock#feature/presence-channels-release","react":"^16.9.0","react-dom":"^16.9.0","react-native":"^0.62.2","react-native-typescript-transformer":"^1.2.13","react-test-renderer":"^16.9.0","rimraf":"^3.0.2","rollup":"^1.20.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-dts":"^1.1.6","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-typescript2":"^0.22.1","rollup-plugin-url":"^2.1.0","ts-jest":"^25.2.1","typedoc":"^0.16.9","typescript":"^3.8.3"},"_id":"@harelpls/use-pusher@6.0.0","dist":{"shasum":"d5b2574efa4a4453e875283c488540cab02a28ce","integrity":"sha512-GtG++TJuTifrefGB/WE7kJYlak4qNrifbmGR7tult9yNBqRVZWjuxQa0lyKp226StzRbS+gMnn5GGwKhoWFjow==","tarball":"https://registry.npmjs.org/@harelpls/use-pusher/-/use-pusher-6.0.0.tgz","fileCount":13,"unpackedSize":4961423,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfF71PCRA9TVsSAnZWagAAmqgQAJn/6zyPqSMztBioKr4G\nssW2A5O91p7NhT/akzqb3Gx+pbDLQEV26jWBhDdA05OvPUcqAAjDT1V4Mae2\nDXpIqRJWWoSt2XemM05X0zx0k/DSr+/VgVOfwP0j3AfGIbYTCuY/vDoLhcYd\nHj7wFpZ75XFLxowilKTWBYALm/ScHF86cxqW86gYdrncWz03NdUONkBHVqKT\nUY0FWnqHoetFyX/MwqlMwPxGk0zkuBpOdcJ4vkiR5YeK1C5kcmMCtJcN8grk\nCci385Nizv+nSAhTXRdd6irMJqFyPpgKqcynCJYgixytLu25R1Fm2MHTP2zy\ncv5DokWa3PTh6MbolLDS1aMuikr9B3d7Yoiigclh3g/Riyaa6GR3EI/wVzPc\n+vPWADGL5g61oFidn1OnW//5p/I4EcHS6SQL4DTrJI4JknVuONSRpP0fYRPn\nxAuFA+Wg7rm0TY11wL914Lwp8bKUJDPpLWNVupg+m2IIwwD8o2L9gS+onJrJ\nveL6Qd8MVIeSCQytqxgOONe42ePQkQiXHbwWHIh2zzuniUqntuRYRWa+nJRW\nwGf9PTxynoWmtKgTdFln3fdXl99bYRdsdv4so9BnWYhPL+7oVPkjmaC6Oo+x\nMnUeI4maHQM9eqCk3iiJ+P4rWmlkgBgw9ed6ujsnd9gL/y8jJ9gc8veS20kr\nKWw9\r\n=2bBG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA0Oel7uddNShfjJRwB3zwV5Z+tOIf19OipWw6dMmAjaAiEA3mXH1H0dHeqEhtoaHsTRfJ3VQUCpQvnjAa8R4WdCQhk="}]},"maintainers":[{"name":"harelpls","email":"harley.alexander@melbourne.vic.gov.au"}],"_npmUser":{"name":"harelpls","email":"harley.alexander.au@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-pusher_6.0.0_1595391311162_0.887474035488452"},"_hasShrinkwrap":false},"6.0.1":{"name":"@harelpls/use-pusher","version":"6.0.1","description":"A wrapper around pusher-js for easy-as hooks in React.","author":{"name":"@mayteio"},"keywords":["react","react hooks","pusher","channels","pusher-js","websockets","realtime messaging","typescript"],"license":"MIT","repository":{"type":"git","url":"https://github.com/mayteio/use-pusher"},"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","types":"dist/index.d.ts","engines":{"node":">=8","npm":">=5"},"scripts":{"test":"cross-env CI=1 yarn test:web && yarn test:rn","test:web":"jest --config=jest.config.js","test:rn":"JEST_ENV=rn jest --config=jest.rn.config.js","build":"rimraf dist react-native && rollup -c","start":"rollup -c -w","types":"dts-bundle-generator -o ./dist/index.d.ts ./src/index.ts --external-imports pusher-js","docs":"typedoc --options ./typedoc.js ./src && netlify deploy --prod","release":"yarn test && yarn build && yarn types && yarn publish"},"dependencies":{"@react-native-community/netinfo":"^5.9.3","dequal":"^1.0.0","invariant":"^2.2.4","jest":"^25.1.0","pusher-js":"^6.0.3"},"peerDependencies":{"react":"^16.9.0","react-dom":"^16.9.0"},"devDependencies":{"@babel/core":"^7.8.6","@babel/plugin-proposal-class-properties":"^7.10.1","@babel/plugin-transform-flow-strip-types":"^7.10.1","@babel/plugin-transform-object-assign":"^7.10.3","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.3.1","@testing-library/react":"^9.1.2","@testing-library/react-hooks":"^2.0.1","@testing-library/react-native":"^5.0.3","@types/invariant":"^2.2.30","@types/jest":"^24.0.18","@types/react":"^16.7.22","@types/react-native":"^0.62.13","babel-jest":"^25.1.0","cross-env":"^5.2.0","dts-bundle-generator":"^3.2.0","gh-pages":"^2.0.1","jest-fetch-mock":"^2.1.2","pusher-js-mock":"mayteio/pusher-js-mock#feature/presence-channels-release","react":"^16.9.0","react-dom":"^16.9.0","react-native":"^0.62.2","react-native-typescript-transformer":"^1.2.13","react-test-renderer":"^16.9.0","rimraf":"^3.0.2","rollup":"^1.20.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-dts":"^1.1.6","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-typescript2":"^0.22.1","rollup-plugin-url":"^2.1.0","ts-jest":"^25.2.1","typedoc":"^0.16.9","typescript":"^3.8.3"},"_id":"@harelpls/use-pusher@6.0.1","dist":{"shasum":"3820c217c673baab0c76c240dbfa25107cc0821d","integrity":"sha512-Aw+g9BaaUSlFqvosEs8Rgn1synIguw88cBV3eRe+vPrz71wLgA9AwCQ/cyT1EBS56ytMTvqc6K37iy0veq6I9Q==","tarball":"https://registry.npmjs.org/@harelpls/use-pusher/-/use-pusher-6.0.1.tgz","fileCount":13,"unpackedSize":4962328,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfF81GCRA9TVsSAnZWagAAP1EP/AuekUBnYijOikSRUpQZ\nQN7R6LS4N3emDDa0JOre1TGhyGO77j2X7SJEzCRmT+uxsgrVW0K8pwbhf9QM\nQlONzFYaBAWS9dBKWLYxP+gawKvdNK11DETEGng1QkwiJSqFzatrLYSWGcaN\nFp0kIaiUNGtfBRNJxDLmmPDjrNP0SqrDjuiXcbW+CXtWGOPBMnoE0F00nWH3\nl7RhEfK3qPJ1FsIp3pO5toheokZL55LdVeFvoKzXh72pq8XhBBfvbrybRu5n\nzYfBTo/v9GezVvtKK0/GOz6IFYc2Rc9NGapWlsi7NmO5cqTlMpysqxW9AVqo\nhkW/DNuUgcEdm0d0a8w2/KtjAszaa//UNlvjVp64KbDfDfDj+eTKET5rBvjh\n1ZEcAV4jB6xhJ6o6ikl6M7LBETlnLfegC25KahdDaLWXCPhC5Kl5DvRiOA2a\n8QKfmViuSzVTQRT0ky59OwS8jF0Oy9dbjS/faztKLM09o5QqCAU+pejYWRbm\nam1+VSKmChUyVT/I75AW5eVpf+NfWxs8JBxiSxcxlF71TmmJ8KdrfcycW0Nu\nE/netm1Yq51P5Yulkla5VtLU8z1DhYo98tAZE5xA6dohRZzWwKogdv+IdWZy\nllp/ecDvlaIjAcPeKmHAirx7jqwBtsae3msusjsK2HB6g3XEvBM85+nhu9e1\nbrLs\r\n=nmxT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAPaTBfu53NTHrFSvVVdzeQQ9fuzxCtwOaCJgErPGw66AiAIGUSbKmwV+94ogrGG6CEQxIxToNdyh1limjP8YzFMOQ=="}]},"maintainers":[{"name":"harelpls","email":"harley.alexander@melbourne.vic.gov.au"}],"_npmUser":{"name":"harelpls","email":"harley.alexander.au@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-pusher_6.0.1_1595395397405_0.6566207279012433"},"_hasShrinkwrap":false},"6.0.2":{"name":"@harelpls/use-pusher","version":"6.0.2","description":"A wrapper around pusher-js for easy-as hooks in React.","author":{"name":"@mayteio"},"keywords":["react","react hooks","pusher","channels","pusher-js","websockets","realtime messaging","typescript"],"license":"MIT","repository":{"type":"git","url":"https://github.com/mayteio/use-pusher"},"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","types":"dist/index.d.ts","engines":{"node":">=8","npm":">=5"},"scripts":{"test":"cross-env CI=1 yarn test:web && yarn test:rn","test:web":"jest --config=jest.config.js","test:rn":"JEST_ENV=rn jest --config=jest.rn.config.js","build":"rimraf dist react-native && rollup -c","start":"rollup -c -w","types":"dts-bundle-generator -o ./dist/index.d.ts ./src/index.ts --external-imports pusher-js","docs":"typedoc --options ./typedoc.js ./src && netlify deploy --prod","release":"yarn test && yarn build && yarn types && yarn publish"},"dependencies":{"@react-native-community/netinfo":"^5.9.3","dequal":"^1.0.0","invariant":"^2.2.4","jest":"^25.1.0","pusher-js":"^6.0.3"},"peerDependencies":{"react":"^16.9.0","react-dom":"^16.9.0"},"devDependencies":{"@babel/core":"^7.8.6","@babel/plugin-proposal-class-properties":"^7.10.1","@babel/plugin-transform-flow-strip-types":"^7.10.1","@babel/plugin-transform-object-assign":"^7.10.3","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.3.1","@testing-library/react":"^9.1.2","@testing-library/react-hooks":"^2.0.1","@testing-library/react-native":"^5.0.3","@types/invariant":"^2.2.30","@types/jest":"^24.0.18","@types/react":"^16.7.22","@types/react-native":"^0.62.13","babel-jest":"^25.1.0","cross-env":"^5.2.0","dts-bundle-generator":"^3.2.0","gh-pages":"^2.0.1","jest-fetch-mock":"^2.1.2","pusher-js-mock":"mayteio/pusher-js-mock#feature/presence-channels-release","react":"^16.9.0","react-dom":"^16.9.0","react-native":"^0.62.2","react-native-typescript-transformer":"^1.2.13","react-test-renderer":"^16.9.0","rimraf":"^3.0.2","rollup":"^1.20.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-dts":"^1.1.6","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-typescript2":"^0.22.1","rollup-plugin-url":"^2.1.0","ts-jest":"^25.2.1","typedoc":"^0.16.9","typescript":"^3.8.3"},"_id":"@harelpls/use-pusher@6.0.2","dist":{"shasum":"77703158d16b1a243983ff1c80dede0a27da3694","integrity":"sha512-BDnntsnVkBfpLpRcwGD2xfQbiSr7JqpRkCSRwVqU3VyWlnOyc1GM3+1i7a9COkx4nBQ+Bv5Vhh+wWCusBkOVPg==","tarball":"https://registry.npmjs.org/@harelpls/use-pusher/-/use-pusher-6.0.2.tgz","fileCount":13,"unpackedSize":4962742,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGROtCRA9TVsSAnZWagAA8mwQAIfVOdyxCUZ87Z0H0XnC\nZCp8/N3+VR5RCNhLPwe89sig2e0rNgper2l9UotDRU1axe0ez4nz9zNMG90h\nh2CguO2HxKqYvJG0rLAmNaAiJxO3g045HcjWNKyvmHoMQJRxsL4gHQ2I3/l1\n5cQh7M2QMCAAlVkOOAseUKaCxKyhW85y1ySk/rJyI/mVljUDYUqhsk7E3kxB\nzXH7UuEqdd0psvZcxU5RtXtc/9XyKkD/6cyUSeHCtQK4obmHoLOezEqAYG6K\n9qXpHU0hguHsumKzBR3qqsqxDfRClQG6sHTe60F41kXxnPAjso+EZcAm78j1\nvVtvf0ZPkX9g00Z/jjhPn2rxlknr8yKrjcAk9j5kiuoYqvffEchEACMWF/Dn\ncj/kI4UjCVFHLgSRtSxRfL3nxEMrpfoL7TNoWtCsvSXQQzeLNn/HWDrawxI8\nd3kbZpfXuAk2EHGrVfnRtPrmn3rRCgKGZuuZybf6SUL7r/LnNtgehNH0bmsB\nWOeHJKo/a0/RUn94zFKdkqob/UqC5VZDe/efS7ZwOZGOnEP9kA9G7r/H5hpE\nppODSsmsGR3dla3WjsR7jddKSxUK+9pM8UYw/Y8VUK5aRZ1+KCBYDcCVYdsv\nYO+iG4DAKvY/bEEETetE7r3xK2a+RGSKnx8qlawa7N2xobnGY9s8D0qudhYA\ncO9T\r\n=Njot\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF6xdrU4hBdRqRv9HIy/KTWF3Js8ApP1sg8sFZ/k3LWjAiBv/J+CPNyjK+2n1w60onHJ8qyNN58lWiqUi5hwAM8srA=="}]},"maintainers":[{"name":"harelpls","email":"harley.alexander@melbourne.vic.gov.au"}],"_npmUser":{"name":"harelpls","email":"harley.alexander.au@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-pusher_6.0.2_1595478956604_0.4184597743398979"},"_hasShrinkwrap":false},"6.0.3":{"name":"@harelpls/use-pusher","version":"6.0.3","description":"A wrapper around pusher-js for easy-as hooks in React.","author":{"name":"@mayteio"},"keywords":["react","react hooks","pusher","channels","pusher-js","websockets","realtime messaging","typescript"],"license":"MIT","repository":{"type":"git","url":"https://github.com/mayteio/use-pusher"},"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","types":"dist/index.d.ts","engines":{"node":">=8","npm":">=5"},"scripts":{"test":"cross-env CI=1 yarn test:web && yarn test:rn","test:web":"jest --config=jest.config.js","test:rn":"JEST_ENV=rn jest --config=jest.rn.config.js","build":"rimraf dist react-native && rollup -c","start":"rollup -c -w","types":"dts-bundle-generator -o ./dist/index.d.ts ./src/index.ts --external-imports pusher-js","docs":"typedoc --options ./typedoc.js ./src && netlify deploy --prod","release":"yarn test && yarn build && yarn types && yarn publish"},"dependencies":{"@react-native-community/netinfo":"^5.9.3","dequal":"^1.0.0","invariant":"^2.2.4","jest":"^25.1.0","pusher-js":"^6.0.3"},"peerDependencies":{"react":"^16.9.0","react-dom":"^16.9.0"},"devDependencies":{"@babel/core":"^7.8.6","@babel/plugin-proposal-class-properties":"^7.10.1","@babel/plugin-transform-flow-strip-types":"^7.10.1","@babel/plugin-transform-object-assign":"^7.10.3","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.3.1","@testing-library/react":"^9.1.2","@testing-library/react-hooks":"^2.0.1","@testing-library/react-native":"^5.0.3","@types/invariant":"^2.2.30","@types/jest":"^24.0.18","@types/react":"^16.7.22","@types/react-native":"^0.62.13","babel-jest":"^25.1.0","cross-env":"^5.2.0","dts-bundle-generator":"^3.2.0","gh-pages":"^2.0.1","jest-fetch-mock":"^2.1.2","pusher-js-mock":"mayteio/pusher-js-mock#feature/presence-channels-release","react":"^16.9.0","react-dom":"^16.9.0","react-native":"^0.62.2","react-native-typescript-transformer":"^1.2.13","react-test-renderer":"^16.9.0","rimraf":"^3.0.2","rollup":"^1.20.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-dts":"^1.1.6","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-typescript2":"^0.22.1","rollup-plugin-url":"^2.1.0","ts-jest":"^25.2.1","typedoc":"^0.16.9","typescript":"^3.8.3"},"_id":"@harelpls/use-pusher@6.0.3","dist":{"shasum":"cae5588175d59064671b95d776b99799d67f3f86","integrity":"sha512-oOOAQZhu+XbCZ//OlnSRzGFN2ShsmtBJlkSYHzLenz30X59m5zXEf1oQlsylyT6kjW71QKZWx/OJ+g43uRkYVw==","tarball":"https://registry.npmjs.org/@harelpls/use-pusher/-/use-pusher-6.0.3.tgz","fileCount":14,"unpackedSize":4962975,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfPFaYCRA9TVsSAnZWagAAkR8QAKFK4u/vgh1FXkVkJubT\nCoxd6Ivo9HGNlMd45EYJlhU5EbrDbV12Y9HiLEqXvIUZpedb5gCWENqfB0NF\nyiRxqQ6J2XPQLBCK4EpayJ//Du1ryIDP9uJEEgtf07nE6nEMFBoOjPblcOUb\nb+SfBvLmgZ+aI/mKs2HKphwqa4llUY7NzFXrWLcNgdQ0Zi+osqOtitXztn0b\nDVdD4ydznsEpb25HBQMhvQeG1423QmCjL0TQ+BaQFYY+TrPqJ+3uzYnvEZF6\nfBC7b7kIJVh2wnggIyrVsbF74JywSKpgw6mXP5Pgh0lyoxHIlvPusRPLT9Rs\ni7t9z37JC+NR9ZBKHJ0LCs4ppUU0c5V33Kqm8A2ji8QhyGWf9KxbSOnaQQlo\n0puxOTwkBr7iNRFD+2I1ikdH6CdByCnxQ/+H4hpu2HtfF4kcwgnPuEAJntW5\n6CqTDQV5MMXsBW/OonjJjVxBlWl3M3yeX97W151jLnjKfUYBlN56kiaPn9gw\noCVxyhrBxuDg8FIV90PLLiGwgJjZLsCOgOCgNxCpiCbQRAcwBbDFAEAGh31v\nyDTKmOnIfNuT4SSdbcNxxVBVA9cZkL9IZO+wA9x2uyCEkAfjTGOe5MhU6YuB\nrttllmcJkqKCPxw4jfBCk+0WfIdj4cLBZAdUy76/uGBb6hu20t6yX7nF2zO8\nL8Kg\r\n=+a5m\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDNcZheXv9YRoWTLrMOCHQzUpwNsy95/dnU3NiH9PSsjAIgP7MrqRz+j+HVjdEShhkDo65g2FnMibN7vhmTCpgJp4Q="}]},"maintainers":[{"name":"harelpls","email":"harley.alexander@melbourne.vic.gov.au"}],"_npmUser":{"name":"harelpls","email":"harley.alexander.au@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-pusher_6.0.3_1597789848288_0.34566545706247087"},"_hasShrinkwrap":false},"7.0.0":{"name":"@harelpls/use-pusher","version":"7.0.0","description":"A wrapper around pusher-js for easy-as hooks in React.","author":{"name":"@mayteio"},"keywords":["react","react hooks","pusher","channels","pusher-js","websockets","realtime messaging","typescript"],"license":"MIT","repository":{"type":"git","url":"https://github.com/mayteio/use-pusher"},"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","types":"dist/index.d.ts","engines":{"node":">=8","npm":">=5"},"scripts":{"test":"cross-env CI=1 yarn test:web && yarn test:rn","test:web":"jest --config=jest.config.js","test:native":"JEST_ENV=rn jest --config=jest.rn.config.js","build":"rimraf dist react-native && rollup -c","start":"rollup -c -w","types:web":"dts-bundle-generator -o ./dist/index.d.ts ./src/web/index.ts --external-imports pusher-js","types:native":"dts-bundle-generator -o ./react-native/index.d.ts ./src/native/index.ts --external-imports=pusher-js","docs":"typedoc --options ./typedoc.js ./src && netlify deploy --prod","release":"yarn test && yarn build && yarn types && yarn publish"},"dependencies":{"@react-native-community/netinfo":"^5.9.3","@types/react-dom":"^16.9.8","dequal":"^2.0.1","invariant":"^2.2.4","jest":"^26.4.0","pusher-js":"^7.0.0"},"peerDependencies":{"react":"^16.9.0","react-dom":"^16.9.0"},"devDependencies":{"@babel/core":"^7.8.6","@babel/plugin-proposal-class-properties":"^7.10.1","@babel/plugin-transform-flow-strip-types":"^7.10.1","@babel/plugin-transform-object-assign":"^7.10.3","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.3.1","@testing-library/react":"^10.4.8","@testing-library/react-hooks":"^3.4.1","@testing-library/react-native":"^7.0.2","@types/invariant":"^2.2.30","@types/jest":"^26.0.10","@types/react":"^16.7.22","@types/react-native":"^0.63.8","@wessberg/rollup-plugin-ts":"^1.3.2","babel-jest":"^26.3.0","cross-env":"^7.0.2","dts-bundle-generator":"^5.3.0","gh-pages":"^3.1.0","jest-fetch-mock":"^3.0.3","pusher-js-mock":"mayteio/pusher-js-mock#feature/presence-channels-release","react":"^16.9.0","react-dom":"^16.9.0","react-native":"^0.63.2","react-native-typescript-transformer":"^1.2.13","react-test-renderer":"^16.9.0","rimraf":"^3.0.2","rollup":"^2.26.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-dts":"^1.1.6","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-typescript2":"^0.27.2","rollup-plugin-url":"^3.0.1","ts-jest":"^26.2.0","typedoc":"^0.18.0","typescript":"^3.8.3"},"_id":"@harelpls/use-pusher@7.0.0","dist":{"shasum":"f07e696251ed991ee19ef1f8549b7047e63bb340","integrity":"sha512-EgaiSn2XWcRLm40PTJwFntzM9zWbf9CpacZ5FkP5C4Q58ay6KWRnlHz2ozD7nV8vtd1mbizheVtOM3pfjVHErw==","tarball":"https://registry.npmjs.org/@harelpls/use-pusher/-/use-pusher-7.0.0.tgz","fileCount":14,"unpackedSize":708598,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfPHslCRA9TVsSAnZWagAAIIAP/0cjjyOMfVYguJZQO2NW\n/aOIVE+2d5sSjt6z5B+O0y+0fxsXWHLN729ow0OBr7uA+jeDOx6XujYO2dFd\ngWk4kWACMcn6xOkQOBl6ZEk++GFdaiKU9AGIZuFfTaKPC899g11csCOrHSkV\nM2Yr0Qx/VlXhYRs//mayIJouwfMrQ4hlh8Ry52SC0rYTF5HujXqHQL9sqXOl\nuVWYs5582vSq1DWVWL3y919f7w3Y4KPXiPAHs66D0qn6C+dyZbxSHED4AVfm\nDhuWWfGwXuvqc6tF7zNtbZfP25T3w/Mri4ECDJrXJ+RIt2dwSZG4q3WAVhko\nsgbcZopi+lMKh/M1eDiAdsjlYXPnaZJgT4B8gs6bSc5J98TseaB5bfnuFs1e\nLCFrKNa+5+FnvIeFCHvC9v01y4VUBzkZN/Uj6XcPLaQQTFQO0jR0SJIhb8gS\nZkJMvCewnA/+vEVu3hQqQKdm50d81xKEPjP15T/MYCHo3swXosOnDzp5WSOM\n0aCfqGYD6zkpkMNgXbva0Xf6Gv7JIEvYmTf1OoxJXnBUMEEkuA8NvmOE5W5A\n0NaVVzxbe4lBINckvG/pR1GxlZ13Iyf+USzzI0gNKgPg31f814eacOaa2cJx\nwwIVFxqqJisPYLAgndkqoqh1IGCaMIMrDI8v2llvV5NmnUaT8Szp87oivRPJ\nwdTC\r\n=WuHA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH7wgBlldjL2RBT/lnxMP1XNv1I24X9tc7/ZvlnhY5y1AiBi8KXcp5wRlx0ldvr0YW0d7FXk0fTTm3PYw9E9akf4FA=="}]},"maintainers":[{"name":"harelpls","email":"harley.alexander@melbourne.vic.gov.au"}],"_npmUser":{"name":"harelpls","email":"harley.alexander.au@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-pusher_7.0.0_1597799204493_0.12903120068051033"},"_hasShrinkwrap":false},"7.1.0":{"name":"@harelpls/use-pusher","version":"7.1.0","description":"A wrapper around pusher-js for easy-as hooks in React.","author":{"name":"@mayteio"},"keywords":["react","react hooks","pusher","channels","pusher-js","websockets","realtime messaging","typescript"],"license":"MIT","repository":{"type":"git","url":"https://github.com/mayteio/use-pusher"},"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","types":"dist/index.d.ts","engines":{"node":">=8","npm":">=5"},"scripts":{"test":"cross-env CI=1 yarn test:web && yarn test:rn","test:web":"jest --config=jest.config.js","test:native":"JEST_ENV=rn jest --config=jest.rn.config.js","build":"rimraf dist react-native && rollup -c","start":"rollup -c -w","types:web":"dts-bundle-generator -o ./dist/index.d.ts ./src/web/index.ts --external-imports pusher-js","types:native":"dts-bundle-generator -o ./react-native/index.d.ts ./src/native/index.ts --external-imports=pusher-js","docs":"typedoc --options ./typedoc.js ./src && netlify deploy --prod","release":"yarn test && yarn build && yarn types && yarn publish"},"dependencies":{"@react-native-community/netinfo":"^5.9.3","@types/react-dom":"^16.9.8","dequal":"^2.0.1","invariant":"^2.2.4","jest":"^26.4.0","pusher-js":"^7.0.0"},"peerDependencies":{"react":"^16.9.0","react-dom":"^16.9.0"},"devDependencies":{"@babel/core":"^7.8.6","@babel/plugin-proposal-class-properties":"^7.10.1","@babel/plugin-transform-flow-strip-types":"^7.10.1","@babel/plugin-transform-object-assign":"^7.10.3","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.3.1","@testing-library/react":"^10.4.8","@testing-library/react-hooks":"^3.4.1","@testing-library/react-native":"^7.0.2","@types/invariant":"^2.2.30","@types/jest":"^26.0.10","@types/react":"^16.7.22","@types/react-native":"^0.63.8","@wessberg/rollup-plugin-ts":"^1.3.2","babel-jest":"^26.3.0","cross-env":"^7.0.2","dts-bundle-generator":"^5.3.0","gh-pages":"^3.1.0","jest-fetch-mock":"^3.0.3","pusher-js-mock":"mayteio/pusher-js-mock#feature/presence-channels-release","react":"^16.9.0","react-dom":"^16.9.0","react-native":"^0.63.2","react-native-typescript-transformer":"^1.2.13","react-test-renderer":"^16.9.0","rimraf":"^3.0.2","rollup":"^2.26.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-dts":"^1.1.6","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-typescript2":"^0.27.2","rollup-plugin-url":"^3.0.1","ts-jest":"^26.2.0","typedoc":"^0.18.0","typescript":"^3.8.3"},"_id":"@harelpls/use-pusher@7.1.0","dist":{"shasum":"76a547a57929c15f9a16132359320e4f02799a93","integrity":"sha512-m5yvh1AE34HphtE8fEzjmwi0VBAsC54mRRNJNwFXA+fXbFZxqhnyoTgKLd0U0XTuCvzgSFxaOYnASCHQNmU3hg==","tarball":"https://registry.npmjs.org/@harelpls/use-pusher/-/use-pusher-7.1.0.tgz","fileCount":14,"unpackedSize":709737,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfZBJwCRA9TVsSAnZWagAANKoQAI/NHbpfXeLmXIUA7Pna\ng8KTLLdJgUC/IgBA8zJ1sTXRcfcXRVtY/aGT+PCrYn8K0ygxQUfj+cE2ktnM\nHVuO6SbgCWJrXFybNOdWFxJjoJuv+3ZDm0YUcoBQXECmYZjaB8j6lMcd6MhS\n4OyEgdwz3ecrmyjfWo2NruimthXtwgb535Xq6FbAx9FzMYF2B1rJVNyr7HOy\nElLQcr5DeyVfW4zK0UIMFsQOGGEP8id5RJ3YcfiYrafBsdiYe0dfuAW/kPh2\nCIzs5BURLtv8y82OkMmrVahTcdfRRLje55/Fb0NHPy5uF/WYmz0GiWRhVEYB\nr/DnhkDe0oGKb+BPqPpQDvdbcqtH7dIIACdqSwR+MapRdfKk0HJTad6byfgQ\n+usXdCddRPIS2DUgF6i4XgQ6UOUEf24MKYL/wZLckOYnPTs0VAmtRg1D3E14\nrZqmDE0gZRBZ0HdyqsqbupDuei5QqUzYYCYg3Goksbh2NZfDBb2cO4XgeG8K\n0sWGPXoiJWkERz0/8Wke/bpx9898zMendcOL0wUyH1ezdBnrsT21JUPTY/EM\nBnuecuur2DU1xPV3DZkzAB/3gvvGunQJBwM82k2BEzDfOa1m0LhZVCSFDoHc\nFgFrvxK/6J8DqwwNUNI5fl6CuWpGE1j1mqEr3EYK4w79vVXKg/GQN4G6+V2y\ncAJf\r\n=HdOy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD3AYg0kRdI4KZcV7zet/mGeMtUCB+C1t2+GZ/ChKNlsgIgXvYk+JM/958uiTsm9Qyw0cSTBeg1tv+/p4F8nB8D21E="}]},"maintainers":[{"name":"harelpls","email":"harley.alexander.au@gmail.com"}],"_npmUser":{"name":"harelpls","email":"harley.alexander.au@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-pusher_7.1.0_1600393839494_0.7639669163351752"},"_hasShrinkwrap":false},"7.2.1":{"name":"@harelpls/use-pusher","version":"7.2.1","description":"A wrapper around pusher-js for easy-as hooks in React.","author":{"name":"@mayteio"},"keywords":["react","react hooks","pusher","channels","pusher-js","websockets","realtime messaging","typescript"],"license":"MIT","repository":{"type":"git","url":"https://github.com/mayteio/use-pusher"},"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","types":"dist/index.d.ts","engines":{"node":">=8","npm":">=5"},"scripts":{"test":"cross-env CI=1 yarn test:web && yarn test:native","test:web":"jest --config=jest.config.js","test:native":"JEST_ENV=rn jest --config=jest.rn.config.js","build":"rimraf dist react-native && rollup -c","start":"rollup -c -w","types":"yarn types:web && yarn types:native","types:web":"dts-bundle-generator -o ./dist/index.d.ts ./src/web/index.ts --external-imports pusher-js","types:native":"dts-bundle-generator -o ./react-native/index.d.ts ./src/native/index.ts --external-imports=pusher-js","docs":"typedoc --options ./typedoc.js ./src && netlify deploy --prod","release":"yarn test && yarn build && yarn types && yarn publish"},"dependencies":{"dequal":"^2.0.1","invariant":"^2.2.4","pusher-js":"^7.0.0"},"peerDependencies":{"react":"^16.9.0"},"devDependencies":{"@babel/core":"^7.8.6","@babel/plugin-proposal-class-properties":"^7.10.1","@babel/plugin-transform-flow-strip-types":"^7.10.1","@babel/plugin-transform-object-assign":"^7.10.3","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.3.1","@react-native-community/netinfo":"^5.9.3","@testing-library/react":"^10.4.8","@testing-library/react-hooks":"^3.4.1","@testing-library/react-native":"^7.0.2","@types/invariant":"^2.2.30","@types/jest":"^26.0.10","@types/react":"^16.7.22","@wessberg/rollup-plugin-ts":"^1.3.2","babel-jest":"^26.3.0","cross-env":"^7.0.2","dts-bundle-generator":"^5.3.0","gh-pages":"^3.1.0","jest":"^26.4.0","jest-fetch-mock":"^3.0.3","pusher-js-mock":"mayteio/pusher-js-mock#feature/presence-channels-release","react":"^16.9.0","react-dom":"^16.9.0","react-native":"^0.63.2","react-native-typescript-transformer":"^1.2.13","react-test-renderer":"^16.9.0","rimraf":"^3.0.2","rollup":"^2.26.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-dts":"^1.1.6","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-typescript2":"^0.27.2","rollup-plugin-url":"^3.0.1","ts-jest":"^26.2.0","typedoc":"^0.18.0","typescript":"^3.8.3"},"_id":"@harelpls/use-pusher@7.2.1","dist":{"shasum":"f1f133c09f971b89dc692dc2a11a4198ee003dce","integrity":"sha512-e94JTkNsaVKDnB6j6j4P3RRAGSNtMN6V+f3Or+gwe3TsdLUlpeGrw7JchIsSLmsxYvnJwS4YRees4fbuHLeQFQ==","tarball":"https://registry.npmjs.org/@harelpls/use-pusher/-/use-pusher-7.2.1.tgz","fileCount":14,"unpackedSize":711169,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPaSTCRA9TVsSAnZWagAAsg8P/1bofBdcGlp0tdlvH5D6\nMdT1jad01JHV8p8iwck5bsYTcbJxfaQB0rp7MbRDUbdkeBDSM7P5p0kHt7qB\nFosgEokDSKXpWxwZUi2awDRvTD4qYDcaaQ/rNaJZaT1flaUrsHNKqHdev3nr\nXzOyaMI1yLNpgnJxOglfEW2VxXKOnRu72Emx1bDIO5s7ESUFwUc024eKXnRg\ngqqxERPenubq9Cl4QLuNtJ0mEzF4iHsTqKfEGkeY3f2/QsUAcbq75hVaakSN\nNentl1MOqlPsQ1jqvMc9rXwscNESz9NyO6bG8DX2gH2JcYUmF3VmEpo71otB\nJzvFrw7bvyCKqVJKHFoE1lU9zinDvH5R1ZgGXi2Vvj9QgFTj4n+tLli2gSXu\n92AAsZEVMSw1IC0zETN5byd5uTcWhYRv6z3bTpQw3vhnyqJzTyll42ZTMA2o\n+BBAh8dk6N0KLnOZQfKswvZ7bqwvwbTmETLgS4BsNXHN1fsXoQZaE4wjgNXj\nFNhOwafNGZOqifLFzVnhSdXRaEbIsgcxSVxg5XMXNYBrOCiRwNJS3WSSbV5C\nj9OI2AyzAVRJofBF4P4LyFWn4nKbQuIMzbI+0lHMYgCQrm/KdF0QNq31HHhK\nx1mXwq9eD5NCM7ZA3eUF4Rz59lei8X0FD1p84wE2ygmx9N94pxoqGEhjK7+K\nP01w\r\n=pCM7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBBPcgPIgWdLmF/AiGbOGd5CESEYgu2pBbp80Smqw/OTAiBhC0ZckKgIfUcZe/15oN6W5hKdAvPosY1mM89PWFYgog=="}]},"_npmUser":{"name":"harelpls","email":"harley.alexander.au@gmail.com"},"directories":{},"maintainers":[{"name":"harelpls","email":"harley.alexander.au@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-pusher_7.2.1_1614652562553_0.17319077867734656"},"_hasShrinkwrap":false}},"time":{"created":"2020-01-21T03:31:18.377Z","3.0.5":"2020-01-21T03:31:18.522Z","modified":"2022-04-05T16:54:50.364Z","3.0.6":"2020-01-21T03:41:12.215Z","3.0.7":"2020-01-21T03:49:34.475Z","3.0.8":"2020-01-21T04:06:02.196Z","3.1.0":"2020-02-12T04:16:43.486Z","3.1.1":"2020-02-12T04:26:05.061Z","3.1.2":"2020-02-12T19:17:02.689Z","3.1.3":"2020-02-13T22:31:29.677Z","3.2.0":"2020-02-18T01:09:23.551Z","3.2.1":"2020-02-19T00:59:07.054Z","3.2.2":"2020-02-21T02:45:37.374Z","3.2.3":"2020-02-21T02:53:32.070Z","4.0.0":"2020-02-21T03:03:50.058Z","4.0.1":"2020-02-21T03:08:36.571Z","4.1.0":"2020-02-26T19:23:30.289Z","4.1.1":"2020-03-03T05:30:42.527Z","4.1.2":"2020-03-03T06:37:39.616Z","4.1.3":"2020-03-03T07:01:19.542Z","4.1.4":"2020-03-25T00:19:32.821Z","4.1.5":"2020-06-04T00:09:26.067Z","5.0.0":"2020-06-23T08:30:23.434Z","5.1.0":"2020-07-11T02:29:36.096Z","6.0.0":"2020-07-22T04:15:11.339Z","6.0.1":"2020-07-22T05:23:17.597Z","6.0.2":"2020-07-23T04:35:56.845Z","6.0.3":"2020-08-18T22:30:48.529Z","7.0.0":"2020-08-19T01:06:44.648Z","7.1.0":"2020-09-18T01:50:39.969Z","7.2.1":"2021-03-02T02:36:02.720Z"},"maintainers":[{"name":"harelpls","email":"harley.alexander.au@gmail.com"}],"description":"A wrapper around pusher-js for easy-as hooks in React.","keywords":["react","react hooks","pusher","channels","pusher-js","websockets","realtime messaging","typescript"],"repository":{"type":"git","url":"https://github.com/mayteio/use-pusher"},"author":{"name":"@mayteio"},"license":"MIT","readme":"# `@harelpls/use-pusher`\n\n> Easy as [React hooks](https://reactjs.org/docs/hooks-intro.html) that integrate with the [`pusher-js`](https://github.com/pusher/pusher-js) library.\n\n[![NPM](https://img.shields.io/npm/v/@harelpls/use-pusher.svg)](https://www.npmjs.com/package/@harelpls/use-pusher) ![Typed](https://badgen.net/badge//types/Typescript?icon=typescript)\n\n<!-- START doctoc generated TOC please keep comment here to allow auto update -->\n<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->\n\n- [Install](#install)\n- [Hooks](#hooks)\n- [Usage](#usage)\n- [`useChannel`](#usechannel)\n- [`usePresenceChannel`](#usepresencechannel)\n- [`useEvent`](#useevent)\n- [`useTrigger`](#usetrigger)\n- [`usePusher`](#usepusher)\n- [Trigger Server](#trigger-server)\n- [`useClientTrigger`](#useclienttrigger)\n- [Typescript](#typescript)\n- [Testing](#testing)\n- [React Native](#react-native)\n- [Contributing](#contributing)\n- [License](#license)\n\n<!-- END doctoc generated TOC please keep comment here to allow auto update -->\n\n## [API Reference/Docs](https://use-pusher-docs.netlify.com/)\n\n## Install\n\n```bash\nyarn add @harelpls/use-pusher\n```\n\n## Hooks\n\n- [`useChannel`](#usechannel)\n- [`usePresenceChannel`](#usepresencechannel)\n- [`useEvent`](#useevent)\n- [`useTrigger`](#usetrigger)\n- [`useClientTrigger`](#useclienttrigger)\n- [`usePusher`](#usepusher)\n\n## Usage\n\nYou must wrap your app with a `PusherProvider` and pass it config props for [`pusher-js`](https://github.com/pusher/pusher-js) initialisation.\n\n```typescript\nimport React from \"react\";\nimport { PusherProvider } from \"@harelpls/use-pusher\";\n\nconst config = {\n  // required config props\n  clientKey: \"client-key\",\n  cluster: \"ap4\",\n\n  // optional if you'd like to trigger events. BYO endpoint.\n  // see \"Trigger Server\" below for more info\n  triggerEndpoint: \"/pusher/trigger\",\n\n  // required for private/presence channels\n  // also sends auth headers to trigger endpoint\n  authEndpoint: \"/pusher/auth\",\n  auth: {\n    headers: { Authorization: \"Bearer token\" },\n  },\n};\n\n// Wrap app in provider\nconst App = () => {\n  <PusherProvider {...config}>\n    <Example />\n  </PusherProvider>;\n};\n```\n\n## `useChannel`\n\nUse this hook to subscribe to a channel.\n\n```typescript\n// returns channel instance.\nconst channel = useChannel(\"channel-name\");\n```\n\n## `usePresenceChannel`\n\nAugments a regular channel with member functionality.\n\n```typescript\nconst Example = () => {\n  const { members, myID } = usePresenceChannel('presence-awesome');\n\n  return (\n    <ul>\n      {Object.entries(members)\n        // filter self from members\n        .filter(([id]) => id !== myID)\n        // map them to a list\n        .map(([id, info]) => (\n          <li key={id}>{info.name}</li>\n        ))\n      }\n    </ul>\n  )\n}\n```\n\n## `useEvent`\n\nBind to events on a channel with a callback.\n\n```typescript\nconst Example = () => {\n  const [message, setMessages] = useState();\n  const channel = useChannel(\"channel-name\");\n  useEvent(channel, \"message\", ({ data }) =>\n    setMessages((messages) => [...messages, data])\n  );\n};\n```\n\n_Note_: This will bind and unbind to the event on each render. You may want to memoise your callback with `useCallback` before passing it in if you notice performance issues.\n\n## `useTrigger`\n\nA helper function to create a **server triggered** event. BYO server (See [Trigger Server](#trigger-server) below). Pass in `triggerEndpoint` prop to `<PusherProvider />`. Any auth headers from `config.auth.headers` automatically get passed to the `fetch` call.\n\n```typescript\nimport { useTrigger } from '@harelpls/use-pusher';\n\nconst Example = () => {.\n  const trigger = useTrigger(\"channel-name\");\n  const handleClick = () =>\n    trigger(\"event-name\", \"hello\");\n\n  return (\n    <button onClick={handleClick}>Say Hello</button>\n  )\n}\n```\n\n## `usePusher`\n\nGet access to the Pusher instance to do other things.\n\n```typescript\nimport { usePusher } from \"@harelpls/use-pusher\";\n\nconst Example = () => {\n  const { client } = usePusher();\n  client.log(\"Look ma, logs!\");\n\n  return null;\n};\n```\n\n## Trigger Server\n\nIn order to trigger an event, you'll have to create a simple lambda (or an express server if that's your thing). Below is a short lambda that can handle triggered events from `useTrigger`.\n\n```typescript\nimport Pusher from \"pusher\";\n\nconst pusher = new Pusher({\n  appId: \"app-id\",\n  key: \"client-key\",\n  secret: \"mad-secret\",\n  cluster: \"ap4\",\n});\n\nexport async function handler(event) {\n  const { channelName, eventName, data } = JSON.parse(event.body);\n  pusher.trigger(channelName, eventName, data);\n  return { statusCode: 200 };\n}\n```\n\n## `useClientTrigger`\n\n> _I don't want a server though_\n\nI hear ya. If you're feeling audacious, you can use [client events](https://pusher.com/docs/channels/using_channels/events#triggering-client-events) to push directly from the client:\n\n```typescript\nimport { useChannel, useClientTrigger } from \"@harelpls/use-pusher\";\n\nconst Example = () => {\n  const channel = useChannel(\"presence-ca\");\n  const trigger = useClientTrigger(channel);\n  const handleClientEvent = () => {\n    trigger(\"Pew pew\");\n  };\n\n  return <button onClick={handleClientEvent}>Fire</button>;\n};\n```\n\n## Typescript\n\nThis project was built using typescript, so types are built-in. Yeeeew!\n\n## Testing\n\nI've teamed up with [@nikolalsvk](https://github.com/nikolalsvk) on [`pusher-js-mock`](https://github.com/nikolalsvk/pusher-js-mock) to bring y'all a great pusher mock.\n\nTesting emitted events with jest can be achieved using `jest.mock` and `@testing-library/react` (or `enzyme`, though your tests should reflect what the user should see **NOT** how the component handles events internally):\n\n```typescript\n// Example.tsx\nimport React from \"react\";\nimport { useChannel, useEvent } from \"@harelpls/use-pusher\";\n\nconst Example = () => {\n  const [title, setTitle] = useState();\n  const channel = useChannel(\"my-channel\");\n  useEvent(channel, \"title\", ({ data }) => setTitle(data));\n\n  return <span>{title}</span>;\n};\n\n// Example.test.tsx\nimport { render, act } from \"@testing-library/react\";\nimport { PusherMock, PusherChannelMock } from \"pusher-js-mock\";\n\n// mock out the result of the useChannel hook\nconst mockChannel = new PusherChannelMock();\njest.mock(\"@harelpls/use-pusher\", () => ({\n  ...require.requireActual(\"@harelpls/use-pusher\"),\n  useChannel: () => mockChannel,\n}));\n\ntest(\"should show a title when it receives a title event\", async () => {\n  // mock the client\n  const client = new PusherMock(\"client-key\", { cluster: \"ap4\" });\n\n  // render component and provider with a mocked context value\n  const { findByText } = render(\n    <PusherProvider clientKey=\"client-key\" cluster=\"ap4\" value={{ client }}>\n      <Example />\n    </PusherProvider>\n  );\n\n  // emit an event on the mocked channel\n  act(() => mockChannel.emit(\"title\", { data: \"Hello world\" }));\n\n  // assert expectations\n  expect(await findByText(\"Hello world\")).toBeInTheDocument();\n});\n```\n\n[Check out the example tests](https://github.com/mayteio/use-pusher/blob/master/src/__tests__/Example.tsx) for testing presence channels.\n\n## React Native\n\nThis package comes with React Native support. Import your `PusherProvider` from `@harelpls/use-pusher/react-native` instead of the default `@harelpls/use-pusher`. All exports are re-exported from there.\n\nEnsure you add the netinfo package to your project too: [`@react-native-community/netinfo`](https://github.com/react-native-community/react-native-netinfo).\n\n```ts\nimport { PusherProvider, useChannel } from \"@harelpls/use-pusher/react-native\";\n```\n\n## Contributing\n\n1. Clone the repository and run `yarn && yarn test:watch`\n2. Get coding!\n\nPlease write tests (100% jest coverage) and types.\n\n## License\n\nMIT © [@mayteio](https://github.com/@mayteio)\n\n---\n\nThis hook is created using [create-react-hook](https://github.com/hermanya/create-react-hook).\n","readmeFilename":"README.md"}