{"_id":"@kesha-antonov/react-native-action-cable","_rev":"16-33c831cb46e742957bb295d43a2f7ecd","name":"@kesha-antonov/react-native-action-cable","dist-tags":{"latest":"3.0.2"},"versions":{"1.0.1":{"name":"@kesha-antonov/react-native-action-cable","version":"1.0.1","keywords":["rails","actioncable","react native"],"author":{"name":"Zach Schneider","email":"zach@schneid.io"},"license":"MIT","_id":"@kesha-antonov/react-native-action-cable@1.0.1","maintainers":[{"name":"kesha-antonov","email":"contact@skill.surf"}],"homepage":"https://github.com/kesha-antonov/react-native-action-cable#readme","bugs":{"url":"https://github.com/kesha-antonov/react-native-action-cable/issues"},"dist":{"shasum":"88bd6a61066ce2bb9dd3dc7f9424475b8bdd3e43","tarball":"https://registry.npmjs.org/@kesha-antonov/react-native-action-cable/-/react-native-action-cable-1.0.1.tgz","fileCount":24,"integrity":"sha512-F6+dRaRVlBlomesP0S0JAQQTNbW+Vqpsw6GXc0L86Vdy47iT8lNZkGv8l8TtNTD9yUd30pknZ3s0Vqvf+WfYGQ==","signatures":[{"sig":"MEYCIQDSI6xbi33Zbh+u/RwAnm97skpG7vOcV6aigXMxWnMjRwIhAJ4pGieNaimWjARrohXPA9Lpaq+SuAYaPm3AD1gpEVIc","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":133072,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb/EKMCRA9TVsSAnZWagAAvloP/3YL7HePRQwQBBUmTpli\nuVFfEPRyVG8JVq2SE2XwHbZEfJ81dtxtXAWyDf3D7pKtPVyQ5f5KdjuER0MU\nBymfNgN7i2AuP1sQxxQjnoNdy++8a6XFrDXWxLBVyLxHjiUMysjdF5+ghB/a\nEJccMtiC26hdJ4Py+OVPeJ8AMbY053UarXSGr2gJ6Lt3hTmHH/CKY6eujAAL\ncR4+ys3MKpyIlTKokQMkgkHCMBzcH/9EC1Tt6h/ji2/CGQhrrmlh0JZqwvAn\nZzCuoZm5pExr+mc7ggECBRHO9fb4ZCrOAIOYAjLVE2IctlEq9VTlN9K5hDva\nsbxF84kLzknoDVSEyYjLRM+NoZ/2j2QfwPRoVoeio9sBEifRbN8b5kMKGR3r\n5KkpDaRbtAjN7BgPS+ra8TXPEmj5WNlzlfMN6Xg3FCWb4ktx8GKOQ4S+bXCl\ninC+FVhUpStFWBYAky8hVY/35geuPknhgMRnJQYJBETOx0ZlShNhB5g1+B8X\nvpylJFdajxGafkGc1KRJ8EJZIh4H81TqthwHn/zlidt9eoMwYktS8i9Hcgo5\nNmWTPtncv8fRTnOfMsxD1UPqSkvChuwfHuevENqQLeyjzlkoWPCip2kwkBSL\nGjtc58EHif38VSLk/i9vjNhF700rOrwgfkuqH+q9ffjk3lF3oqgqk3IVBbXI\ngbi9\r\n=+ND/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"473adeb2bc547033d8d2f6dd10abf6bccfe40a72","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"kesha-antonov","email":"contact@skill.surf"},"repository":{"url":"git+https://github.com/kesha-antonov/react-native-action-cable.git","type":"git"},"_npmVersion":"6.4.1","description":"Use Rails 5 ActionCable channels with React Native for realtime magic.","directories":{"lib":"lib"},"_nodeVersion":"10.13.0","dependencies":{"eventemitter3":"3.1.0"},"_hasShrinkwrap":false,"devDependencies":{"del":"^3.0.0","gulp":"^3.9.1","gulp-coffee":"^3.0.2","coffee-loader":"^0.9.0","coffee-script":"^1.12.7","gulp-uglify-es":"^1.0.4","webpack-stream":"^4.0.3"},"_npmOperationalInternal":{"tmp":"tmp/react-native-action-cable_1.0.1_1543258763320_0.594430583815772","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"@kesha-antonov/react-native-action-cable","version":"1.0.2","keywords":["rails","actioncable","react native"],"author":{"name":"Zach Schneider","email":"zach@schneid.io"},"license":"MIT","_id":"@kesha-antonov/react-native-action-cable@1.0.2","maintainers":[{"name":"kesha-antonov","email":"contact@skill.surf"}],"homepage":"https://github.com/kesha-antonov/react-native-action-cable#readme","bugs":{"url":"https://github.com/kesha-antonov/react-native-action-cable/issues"},"dist":{"shasum":"9a91e71e68c5b9624e8d049afe89af85d343c1dd","tarball":"https://registry.npmjs.org/@kesha-antonov/react-native-action-cable/-/react-native-action-cable-1.0.2.tgz","fileCount":22,"integrity":"sha512-07nJIYxmc6E+4xNkmDrtsSUYoASlSJf2/ERL6/3fmsK5aXWQSKiTNja/iSShnj0Krf3h5tmzX7S1RXw51+fquQ==","signatures":[{"sig":"MEYCIQD0ftwXxx+UiqX4zgaaKAc9jzDd2kdnYRj+gDd3kCKxngIhAIh54fc29zn+cZz72uYcpkD20Y9DRVkqxFNjMAJOGBEm","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29979,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdGQ4MCRA9TVsSAnZWagAAYJsP/iUJFfRzHlXil5f8wf4z\n4EvFCjxjVinNq2FNF9S8ukUCeTd7rWWNycu707C0yibKXLpDztgeUPFmCW5W\n1UMOmZ8vWXeSZ6WzGaZK3CrTe70FOG8EM/oTs4WwKGPZGq+Cc2QL+3m6L8M6\nxbvak959Hkm+8leuxPY/qLSctxmkKsRijePyax/X/DblLN1bwBELzt7Fodqw\nrnagi4vmJtsao6A19FptE/QOZCh1QQFV/5u8XEHN0oIrWYB/GDRHAKyo8UGP\n9ISjieQ6Hqra7YPQtyHyf+1fPIk38sq0WPMlM5Z7D276mei5qR8Dl2oldJle\nLt7yCkBOhbJKgkUVloj9+bHdb9rPqs1nyDM4ucmdvXhKGaM2sCbCsBlpkv30\niESNI1wmwPU68XXdTqWG16nbqNhlcsSMBdOw2P616HKeao/EyKNG0jsSJpx+\nizV+zOcgrEvyZkQ5FqkLtUPVrZ6rE42CAFU6bhGCNzXGP8VckduiVr53oVyp\n5AeSsS00UEaraf8pK25Dxp5Mz+vDlmIWxAvdv3Ba8MLJtg8IVuYMiVX6A3Qr\nU6mjCD4xDA+kylV8ifMtrqQ4m+23ZLQHaGOWH46w9pdItsdHuWzbMUm/kcfF\nDIkSjGohyOnvEmEROam2MVOReB5X7MsCSxn9Af5RyPYnbYtW7gHG8/qH7RIa\nIC2J\r\n=X53Z\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"1d5a9ce6c77dba00cd3885180a639179d7abb7fb","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"kesha-antonov","email":"contact@skill.surf"},"repository":{"url":"git+https://github.com/kesha-antonov/react-native-action-cable.git","type":"git"},"_npmVersion":"6.9.0","description":"Use Rails 5+ ActionCable channels with React Native for realtime magic.","directories":{"lib":"lib"},"_nodeVersion":"10.15.0","dependencies":{"eventemitter3":"4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"del":"^4.1.1","gulp":"^4.0.2","gulp-coffee":"^3.0.3","coffee-loader":"^0.9.0","coffee-script":"^1.12.7","gulp-uglify-es":"^1.0.4","webpack-stream":"^5.2.1"},"_npmOperationalInternal":{"tmp":"tmp/react-native-action-cable_1.0.2_1561923083749_0.7138335885653051","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"@kesha-antonov/react-native-action-cable","version":"1.0.3","keywords":["rails","actioncable","react native"],"author":{"name":"Zach Schneider","email":"zach@schneid.io"},"license":"MIT","_id":"@kesha-antonov/react-native-action-cable@1.0.3","maintainers":[{"name":"kesha-antonov","email":"contact@skill.surf"}],"homepage":"https://github.com/kesha-antonov/react-native-action-cable#readme","bugs":{"url":"https://github.com/kesha-antonov/react-native-action-cable/issues"},"dist":{"shasum":"8976c3d5174882fbd8229d210528aed19b7e23a1","tarball":"https://registry.npmjs.org/@kesha-antonov/react-native-action-cable/-/react-native-action-cable-1.0.3.tgz","fileCount":22,"integrity":"sha512-1nO8Z59EIzU0KOjata0vt/eMTrQSP7bywchpk57TFgR3ODnXM1yF6lJfkfn4UGLksz/RPcs501wogQzVcqAPKQ==","signatures":[{"sig":"MEUCIBUy5qgqEBqVByj7YmEDvbrdqZNPHs7PjmqHHkrmw50hAiEA9vZsqhyVisUEOMrCsy63HxboVzwI1oJZvk9SsZYwVRY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30005,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdGRHACRA9TVsSAnZWagAAnw0P/2HU7HwuZKUbnzwPP1r8\ngso3cf/01PlGSSfvumdYkATwL6R909FwJl57xBfc+IcKaoL56rwk8yquF8Q7\nXq9O82mgtvK8xztMBEuoecgmgLHVGjWSDb1HlTj/eFaz8/OTmb1gmPkum/gx\nl3UfX2ofznYgrTQ3mqdJPZovJ/5mwWTMKSszevHbm0hVz80vucSq0FzUmW2w\nWRWUf0/D2wzNC3LTjE0+0fKISIyjKx2D+NX2wSmv+mG4ngNIf/hmbgwfjqKO\n9lJosBhSXd4YMoKNhb8T6XfcKzZ69mz+PJBPmtnl/8qsSumi7EzdXK6Ea3gb\nYNLJOkzlyvXBvdh9VvEpldBnKOj+03bxUW5TA1cW1WgBxjI1DcVoWEoCcknA\nb6IyyBng5dNdqmW52uJArcEMyXs+3Z7+uJ45TRQ6AYca/5ojD7i9UHmb8vX3\nGohi8kUKBkIzO0HnQWffRFCF0Frz3ZbHlQRBY7piAEqPo3fjEkc7XM7O2+dE\nynFMoHQUlJCwsZ1vrotzQ3RHTvXMnaFwSf6Vuink1BNJsQsd5Qqls7PINaCP\n59eGVINzpg0dMbuFv4Tai++xlpXyPMX0vyfJngNIDDhx2jkEwHkqtUs0gnPi\n30Li5wOhwBVkEMtR4SIW5eO9Emz/kGCdb1k1dM/7k5hrTXow2d/bOAI301j/\ntFhn\r\n=7tTp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"5f3062d781d89cdc36603fa25916ce0794662c36","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"kesha-antonov","email":"innokenty.longway@gmail.com"},"repository":{"url":"git+https://github.com/kesha-antonov/react-native-action-cable.git","type":"git"},"_npmVersion":"6.9.0","description":"Use Rails 5+ ActionCable channels with React Native for realtime magic.","directories":{"lib":"lib"},"_nodeVersion":"10.15.0","dependencies":{"eventemitter3":"4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"del":"^4.1.1","gulp":"^4.0.2","gulp-coffee":"^3.0.3","coffee-loader":"^0.9.0","coffee-script":"^1.12.7","gulp-uglify-es":"^1.0.4","webpack-stream":"^5.2.1"},"_npmOperationalInternal":{"tmp":"tmp/react-native-action-cable_1.0.3_1561924031667_0.8471543989953514","host":"s3://npm-registry-packages"}},"1.0.4":{"name":"@kesha-antonov/react-native-action-cable","version":"1.0.4","keywords":["rails","actioncable","react native"],"author":{"name":"Zach Schneider","email":"zach@schneid.io"},"license":"MIT","_id":"@kesha-antonov/react-native-action-cable@1.0.4","maintainers":[{"name":"kesha-antonov","email":"contact@skill.surf"}],"homepage":"https://github.com/kesha-antonov/react-native-action-cable#readme","bugs":{"url":"https://github.com/kesha-antonov/react-native-action-cable/issues"},"dist":{"shasum":"0778ab04e84b35d2e8476ffbf8128916d3c98464","tarball":"https://registry.npmjs.org/@kesha-antonov/react-native-action-cable/-/react-native-action-cable-1.0.4.tgz","fileCount":22,"integrity":"sha512-ZJWgdm/VFsOMl8Y4twjdKowwMqzt+/l1DleC1iF4RRQ3E2rCVfDR5x3mrJGOsL6BbJgqXm6tUWg+qzhmQ2Cffw==","signatures":[{"sig":"MEYCIQC0nsCOwzLFnd56r8SJf8o+uSDTtbqk2VRpgLYW5x90LAIhAIhqF2vngnigvVlRg/fYGIJn3tmHLtuA8Z2P8RX1R3r+","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30008,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdGRNOCRA9TVsSAnZWagAA8oYQAJl+jFahPPXYN0myphab\nien4Wyf4+JouzF4ELEcrzo+Dp+6u9UDfNslvZL/DkClcnqdejU3LBCeqA34H\nFV2oLSCrqrRQinOfaV612elPsGg7pN5z2apnnDRimQ+m/TX/YCtcuVq/9UZ3\nIKwGioKy8lA8QO9skDq90ApcGkpk7KwBFS1aH+pLSNIFm44Yaw+3ZZIEprvy\nezkgsQ+9R97brWcKB69NqronfbS05JcYaPUXo8QzeAJcINfiQBAmWXoHDatJ\ngVjgBaalCJupdjeHrs2cGZceovH3fVym/BeCOPopmmCe9G8CjxlcDv9K/mHo\nw8DDB5jXONFT+cnS/YfWMnu6/HQfm2GNNttXUEFWyQ9D8v89l86RDCY1Gd+X\nwkhSp/pQrta3P1OF6odtDacPrFZctCwNfJdVYPQvVWJA+CqB3PE8HA6fr2Aw\nD+vaXrlj57giD2p/CH3lGLbER/lVtpJ/aEDt4mV/SaXzW0dhyOdgIH1nVEuU\noCrTQhFL8QiTCxm3kTbPTbHbjFX5tPhzLih0X+ejDMHLNC37zavgRL1puwDA\nkLPo2YcOiDdhPzh0FbMvbGl7rL0wNLfsav4JAYwNHdwasDhiM13WvV7FarF3\ndiAcwoNbFJ7/kiv+oI7f4FqWpVw0CiAa7DU1ESk4lbIHKVBceSrg0cWVuwpJ\naVA7\r\n=Gqsp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"01aabd266264bf08c7b6090d177c12e21872357b","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"kesha-antonov","email":"innokenty.longway@gmail.com"},"repository":{"url":"git+https://github.com/kesha-antonov/react-native-action-cable.git","type":"git"},"_npmVersion":"6.9.0","description":"Use Rails 5+ ActionCable channels with React Native for realtime magic.","directories":{"lib":"lib"},"_nodeVersion":"10.15.0","dependencies":{"eventemitter3":"4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"del":"^4.1.1","gulp":"^4.0.2","gulp-coffee":"^3.0.3","coffee-loader":"^0.9.0","coffee-script":"^1.12.7","gulp-uglify-es":"^1.0.4","webpack-stream":"^5.2.1"},"_npmOperationalInternal":{"tmp":"tmp/react-native-action-cable_1.0.4_1561924430003_0.604953960594784","host":"s3://npm-registry-packages"}},"1.0.5":{"name":"@kesha-antonov/react-native-action-cable","version":"1.0.5","keywords":["rails","actioncable","react native"],"author":{"name":"Zach Schneider","email":"zach@schneid.io"},"license":"MIT","_id":"@kesha-antonov/react-native-action-cable@1.0.5","maintainers":[{"name":"kesha-antonov","email":"contact@skill.surf"}],"homepage":"https://github.com/kesha-antonov/react-native-action-cable#readme","bugs":{"url":"https://github.com/kesha-antonov/react-native-action-cable/issues"},"dist":{"shasum":"e680915c1a6c5d67bfae2e3507ec60ce9c88faf6","tarball":"https://registry.npmjs.org/@kesha-antonov/react-native-action-cable/-/react-native-action-cable-1.0.5.tgz","fileCount":22,"integrity":"sha512-JlQdNmL25kYYZBDalH754aDe2VjzmtJX3HPMiQsGJmkmwlfJHiwvfqD9uPMy6+hzVA4Mu1Pk7dM2+c7tr8rudg==","signatures":[{"sig":"MEUCIQDhuHo9nOICIEbX7dEcxa3IPpSGTPraNYlVQeRTE+Vx6wIgV0EYhlV5LvHw2OHG8AGD5NaCgRDaAuBc/u1+66TqCQw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30252,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnKPgCRA9TVsSAnZWagAA6csP/1aTCQ+npdK6vSu/yWL7\nXpmUVm8IHYYuONBHbRCqTJjcoO2H/6wI0o3zttMqWKeDWXMPA8YZy1VYrNrf\n4wzi7w5ndh3GCLmqyH4Ap9QfNkm0/0A0K66qMtMy25bQSttn8FAbGA8vAfoC\nB7g5hg2TWJ6lwNnxSa0JkMhubM3L6dD8PQ60gfSeSVxec7yTc/5KReH/BWzX\nWZaOMSKR0HFHZ1TK3z8kCbdmxML6IrhOi9wj5Ii6TNstBIx6DGroFuVtHjC5\nyqquCs47KpizMrmdPHQmDFR3+KLnuu5O2A9S7ec+4As6/lL0kMukD+AGbizC\nRh1dxuo8hBujkWRTe4E9sZ6hC+XKhFKeLWdizYHsfyXU1PrdXBaAM8DRbGCd\nD4lDTfanuyYdLHjHLZoNGPxfRqQ0zYPWOCCE3fcj9GfEqnQyOHY9BAA5u8VE\nkvro4MX3k/qPP30b9/1Mb16MPN6Hyi9aW64Qdrc3KcPAH6pc6JxMc2N4oYoo\nL/jTZlQonu0WURxpknNE8gopgG7VU5Gl//dOB5u8avtlhLCFYdDIuetHdph7\nlZuSmKFhb5+ehur7RiaEdvhR+V20leLfpQdJfDKgzwIXStk0Aa0AaOCx/F/J\nzopb5Tdu92AWMqiglzt8IwG4lKnVl2hMr/tY00xcMXFYYA5R+CfIiNvn7pYL\ncu3I\r\n=9304\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"5864aa28bc2ac0271c82997c52c9e8df58b644dc","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"kesha-antonov","email":"innokenty.longway@gmail.com"},"repository":{"url":"git+https://github.com/kesha-antonov/react-native-action-cable.git","type":"git"},"_npmVersion":"6.9.0","description":"Use Rails 5+ ActionCable channels with React Native for realtime magic.","directories":{"lib":"lib"},"_nodeVersion":"10.15.0","dependencies":{"eventemitter3":"4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"del":"^4.1.1","gulp":"^4.0.2","gulp-coffee":"^3.0.3","coffee-loader":"^0.9.0","coffee-script":"^1.12.7","gulp-uglify-es":"^1.0.4","webpack-stream":"^5.2.1"},"_npmOperationalInternal":{"tmp":"tmp/react-native-action-cable_1.0.5_1570546656035_0.8204193229131254","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@kesha-antonov/react-native-action-cable","version":"1.1.0","keywords":["rails","actioncable","react native"],"author":{"name":"Zach Schneider","email":"zach@schneid.io"},"license":"MIT","_id":"@kesha-antonov/react-native-action-cable@1.1.0","maintainers":[{"name":"kesha-antonov","email":"contact@skill.surf"}],"homepage":"https://github.com/kesha-antonov/react-native-action-cable#readme","bugs":{"url":"https://github.com/kesha-antonov/react-native-action-cable/issues"},"dist":{"shasum":"12abe6d2ee66f90a7f869dc1ac05d3ddbf7c71d4","tarball":"https://registry.npmjs.org/@kesha-antonov/react-native-action-cable/-/react-native-action-cable-1.1.0.tgz","fileCount":24,"integrity":"sha512-k+l53sXy06vFTeg9pHmX1SXlv6O+HT+Kv9sM8TZr3Wojx5IXRGtc4jOFCKWnq2dZCNszCQgLEIWwyxOk/Z9pxA==","signatures":[{"sig":"MEUCIQCQWh1Rlwmd3wzQYfcEVQerNxV3ZlleMJqHZfUHjPDQKgIgNIGACqtOSNjY4UYCjy6miIGPr5FJm4MunluR6vOlUTU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31145,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfMS78CRA9TVsSAnZWagAAtl8P/1Tx+egHNHfzMv4xkfRq\n8sysF+kFfA0i4vRcrGv1LRMFIqQHH4MtVxSHi4scrKhf9eN3GHI9YrO4TCxB\nEeKLt/f9nmdkoWIzehThsGSdMXKPCF6/nZhdTmsKxQ4leQ5Dm8xu4Jfwo4uy\nVM/KBP6dFsCDVUUCAc9OH1eYej7/BX6MfEosrOhpRNdbh445dgPtoq+5OuJ1\ncgPLm44/VYJd9q7vLdfoKLFGfvRKflhzWyr2qa1sJ8M8zyC62JgaTfY6fzug\nKyB3UL6mr+ow5SDnd5Ehq9PWPALlXL2xKBdBxJCRIVm6GhbPFSDRMVB8knGh\nIyi2VHepucJG+tNJMRtZiVyC3qjyGVO4rEyh40QnmIzlOrSMQKKO7pcTFfI5\ngArcyrn+DXw9VaCw7e7qbAlQ0HHA1kic7aijxknbr9cLItVAlPl5a1oC93Ai\nWFRv+klQJQYxMSWKB313IEW2uA2c0kVyo0wu6L+1vzlALGZjR3NgRzgsyVIB\nRuR4acZms0+uvJnc9mIzXeJbMMrVHr9ybuWe+qlSdjKCtCAyn/zAJv9SfgIR\ni5Tbmi1Ckv+86pgxzDO22Emo4Y1EvzgVc7JzRZpvk7tHEP7fAPUWuti+No9s\noKIF5h76hGnvr/Rrpti9z9xjO7iJkzh2ouHs7ewMlTRVWfJSO01s+XsuL/nr\nVee/\r\n=AgbJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"474badb9768ae84cd60d8aa831b6ebbefe236c18","scripts":{"dev":"gulp watch","test":"echo \"Error: no test specified\" && exit 1","build":"gulp"},"_npmUser":{"name":"kesha-antonov","email":"innokenty.longway@gmail.com"},"repository":{"url":"git+https://github.com/kesha-antonov/react-native-action-cable.git","type":"git"},"_npmVersion":"6.13.6","description":"Use Rails 5+ ActionCable channels with React Native for realtime magic.","directories":{"lib":"lib"},"_nodeVersion":"13.8.0","dependencies":{"eventemitter3":"4.0.4"},"_hasShrinkwrap":false,"devDependencies":{"del":"^5.1.0","gulp":"^4.0.2","gulp-coffee":"^3.0.3","coffee-loader":"^1.0.0","coffee-script":"^1.12.7","gulp-uglify-es":"^2.0.0","webpack-stream":"^5.2.1"},"_npmOperationalInternal":{"tmp":"tmp/react-native-action-cable_1.1.0_1597058811982_0.44153676725707336","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"@kesha-antonov/react-native-action-cable","version":"1.1.1","keywords":["rails","actioncable","react native"],"author":{"name":"Zach Schneider","email":"zach@schneid.io"},"license":"MIT","_id":"@kesha-antonov/react-native-action-cable@1.1.1","maintainers":[{"name":"kesha-antonov","email":"innokenty.longway@gmail.com"}],"homepage":"https://github.com/kesha-antonov/react-native-action-cable#readme","bugs":{"url":"https://github.com/kesha-antonov/react-native-action-cable/issues"},"dist":{"shasum":"6b3c8c8d99846f1089025566568212a293f3c3ec","tarball":"https://registry.npmjs.org/@kesha-antonov/react-native-action-cable/-/react-native-action-cable-1.1.1.tgz","fileCount":29,"integrity":"sha512-qAHmuKi+OGFF6uDLwTToE2/x4CyBoDbjpqp7epjhDNBK4GpVUVAiPmo4OAkRIRiSGNSWnIV/8//H9b66XzgmPw==","signatures":[{"sig":"MEQCICEdy+hfrALOkeyJL+oKajZZ3f3mwgWVH6K+/VVN/EfzAiBSKJSqbDj9M/M8R+YY0LW1Mcyde0VCqZqvo/cAdmrZOQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31374,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjbBvnACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrjfQ/+PLNtGGX254xOhuX0gSWCryAJd1cXhfWm2yup9oLTr/JQCqm7\r\nkPC9tPH4gUzBnKiWhyTKmLjbhq4TlDICrlEAdJtnmbydc7Zisk8nDSBh/tzd\r\nQPfbMMHB/WVG3jhG10rzuQu+i/Ek22ypReI2/U0IAz3E4jsyEo6GIfiUTsV7\r\n4wtze1ej/oDYkU3S4PxsjJdBSHZGZZN+MQmD3lN01OEJo+FHnCKDx0C5Lz5s\r\nkVYwKkkmYavFGrkE8aOB5ATYDeiLrU9BMorMHBj1JWlivJumPBl+ZZDbX23V\r\nwJSMfze4ss4UwYejyWk2BecDNr5aCNlSFtR+jY2TF164IK6EA6C3Z3XhdSOE\r\nER9P/KGYZjy3fl/0KQcmrMKK2wE1RTt0ol+W9Y0lTa4l2SocACSWFs9wTRY/\r\nn/OaX6dWmIKV98ULogOF/kDAkglA7yBWjMJ3uYQoBk4y9HBYMYrvP8JpsF5m\r\nyG5yJIG5X1+HI3SSpBhWANH/cr38C/dUztDSWip0fzHuZr5l0JgnXp+VvDgy\r\nEZKiyzgb0PpAy1YaT9+uPlNiqgP6NOPR5XbYr4PKM8X0CbTmxIba2mxF/eoV\r\nDWRtzx+GaGzUuXpzO/tByDfowPut6NmZ0aR6rhZxUlYd8BbAKcW5OqyTaq7Z\r\nvDmtVD2CIhQW7WBED26GrgcxWMAE11oKWAo=\r\n=/Zb7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","scripts":{"dev":"gulp watch","bump":"npm version patch","test":"echo \"Error: no test specified\" && exit 1","build":"gulp","publish":"npm publish"},"_npmUser":{"name":"kesha-antonov","email":"innokenty.longway@gmail.com"},"repository":{"url":"git+https://github.com/kesha-antonov/react-native-action-cable.git","type":"git"},"description":"Use Rails 5+ ActionCable channels with React Native for realtime magic.","directories":{},"licenseText":"The MIT License (MIT)\n\nCopyright (c) 2015 Zach Schneider\nCopyright (c) 2016-2017 Innokentii Antonov\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n","dependencies":{"eventemitter3":"4.0.7"},"_hasShrinkwrap":false,"devDependencies":{"del":"^7.0.0","gulp":"^4.0.2","webpack":"^5.75.0","gulp-coffee":"^3.0.3","coffee-loader":"^4.0.0","coffee-script":"^1.12.7","gulp-uglify-es":"^3.0.0","webpack-stream":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-action-cable_1.1.1_1668029415669_0.5110214199415102","host":"s3://npm-registry-packages"}},"1.1.2":{"name":"@kesha-antonov/react-native-action-cable","version":"1.1.2","keywords":["rails","actioncable","react native"],"author":{"name":"Zach Schneider","email":"zach@schneid.io"},"license":"MIT","_id":"@kesha-antonov/react-native-action-cable@1.1.2","maintainers":[{"name":"kesha-antonov","email":"innokenty.longway@gmail.com"}],"homepage":"https://github.com/kesha-antonov/react-native-action-cable#readme","bugs":{"url":"https://github.com/kesha-antonov/react-native-action-cable/issues"},"dist":{"shasum":"86927995b8853f988d898b99f8e80752619e8361","tarball":"https://registry.npmjs.org/@kesha-antonov/react-native-action-cable/-/react-native-action-cable-1.1.2.tgz","fileCount":29,"integrity":"sha512-5SJCfRWCCd3xbsTxzEaVhWW49SNUdEtq/3GXrmZ1gaV3F2I694IhIuXINvgcub25ymtsrzoaOAHqTLcm7NvUlg==","signatures":[{"sig":"MEUCIFjpva/cZCjqlXagCXftaZN9vfBU/Z7pNZcIlgiuClMVAiEAnsOo7sREGh+XeX8ysJy6gynzv4FbSx3s+9EglRY3Nqs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":32933,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjbCSkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo9BhAAjZF2x8fOAz+iZkxbUMP6Zq8/lar+PTtCO/YemnSmpfFiXRVd\r\nLXdQ1pvTYh+8/ny1SDevpfzBnom+v6Sb8wO5DnCWAnv7BASik4Adwkxh9HTJ\r\nUQwt14ndqhYwCS1OGreKvuAcqPa3F1gTStRcxEOO0DK+9F4kkA8qeRekPaBY\r\ncExAhTwNSUTqgFxfaIPdgcRcYHSVg2bPHF7FOxK0/fRH9GyWl26Ke5w8ntZV\r\nzhU4VD+3CmCN0Uvs/WNEiGYVeb/M6zoTmTKp7zS5Sa6KIgR4WgAQR30UbhfB\r\na22bF4Z012vMDDJMQRcOfNAcPObY1Wco9fBxS/ua4ERyRmept4ahcbwc01u8\r\nSRk+JPmbiW6GLDnqJnQuoZgZdXzJJaeDTCDvWss/Tk6FKRTkv8FQf/xzaOcD\r\nFB8/POsH0v8U7WSmrNbZGDpPtltZxrT81+peeDti/+2dRcCMZYcCVcAk/dJ2\r\nyKLUeCuu9MUA1FzLh8JzvyAWc8YXbe9FcKkDHBfBWlqN11ceEIZN+uHJdvrt\r\n8zp41OQb2Vaqc8Xdoq/WdlfsQAxyD1j72FGm1yBtkSypjXl1CDtGfsecmW6R\r\nqtEGeWKkJQz0d2ruubaAvASiapSUidh8uVyBEfm+/y5irj9Se5W6rVt9wpGC\r\nv8aCJseiyc7SNZPyIaW4k1ih9nIMQ9nzqlk=\r\n=tni2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","scripts":{"dev":"gulp watch","bump":"npm version patch","test":"echo \"Error: no test specified\" && exit 1","build":"gulp","publish":"npm publish"},"_npmUser":{"name":"kesha-antonov","email":"innokenty.longway@gmail.com"},"repository":{"url":"git+https://github.com/kesha-antonov/react-native-action-cable.git","type":"git"},"description":"Use Rails 5+ ActionCable channels with React Native for realtime magic.","directories":{},"licenseText":"The MIT License (MIT)\n\nCopyright (c) 2015 Zach Schneider\nCopyright (c) 2016-2017 Innokentii Antonov\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n","dependencies":{"eventemitter3":"4.0.7"},"_hasShrinkwrap":false,"devDependencies":{"del":"^7.0.0","gulp":"^4.0.2","webpack":"^5.75.0","gulp-coffee":"^3.0.3","coffee-loader":"^4.0.0","coffee-script":"^1.12.7","gulp-uglify-es":"^3.0.0","webpack-stream":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-action-cable_1.1.2_1668031652651_0.6616964885465504","host":"s3://npm-registry-packages"}},"1.1.3":{"name":"@kesha-antonov/react-native-action-cable","version":"1.1.3","keywords":["rails","actioncable","react native"],"author":{"name":"Zach Schneider","email":"zach@schneid.io"},"license":"MIT","_id":"@kesha-antonov/react-native-action-cable@1.1.3","maintainers":[{"name":"kesha-antonov","email":"innokenty.longway@gmail.com"}],"homepage":"https://github.com/kesha-antonov/react-native-action-cable#readme","bugs":{"url":"https://github.com/kesha-antonov/react-native-action-cable/issues"},"dist":{"shasum":"dafa49ac8c78385a97a7c04d604d24a908805ba9","tarball":"https://registry.npmjs.org/@kesha-antonov/react-native-action-cable/-/react-native-action-cable-1.1.3.tgz","fileCount":29,"integrity":"sha512-Sy5jEWmiK8U4LEtPItaoH3N6Pd7Qa8wYUUUWANUk+aNx5u43VgthiymiEofE2fgiwaAhxYZpsHxdArieO0usJQ==","signatures":[{"sig":"MEUCIQDf9Vc+tQD7jvzQ4vFVoRpBx2xhO1x8xqlpXKoNw8V28gIgJFR4OBeZNyE20kZVRPcHsm4pyJx8RhgQOc6Soq+Gy34=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":32989,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjbCUCACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqpLQ/+I19RpiuRzPO9xhJ529Dxz6y2Th8ttkQfTilcbnChg9eZXTgM\r\nStddHssJPQRaj7D9ZkNxqSWyTus/l4z1PyrkjICfdC0WbxONjbuYvCRwlMr4\r\nhQ4Tq+XHOAWBXKQYE6FH73qvTr8Apgq24jgZbzRi0TTBZTHfVc28/TSASi5w\r\nSa86qLC5BhQ2Cksvb9kBj2jms6u5GCuIOrpJw3NstNqtoTUPnr7a6YAf9w22\r\nwAVor84pb4N3xEP3trbepmR8IJGSrLEcBlpdM2jlBgPUX3ApDmdG8kraoooX\r\ndQf90FrNRk874lkEMvOkDpjMyPbyEbhetoTwD7wsg2r9SWkm/6RIBQw0oVP3\r\nLKUnXPXahseXiiMzV4nJvY8MX7C9an9aQKzTQb7/QyAmyIaasY96riFTOVwW\r\nGYxpc3AfeP88eVZJTyubRnGWxPpqyp8f5Nc1mGBGp2yxshiLD9AK5V2HJfcG\r\nEmYwPG891etEhXLhGcxks3Cx3POTl6Dg0Pt0IpFFd8NgIzT40B0RwF42gkDH\r\ni6RXU5gXvbHF7XxDxx+0g8INRTaL3w7VgjfxiLy4EEq8CY80TpjTJl4jicUI\r\nFJhOMhur17QTaTQmXKEdNwNoAjJ4DdJQ3BuxBc0KpL++x90uVd94bPHr+TCt\r\nVbVD+m6mFC3Hhz84aNYSVmq4HMGoGlD9/Pg=\r\n=0/14\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","scripts":{"dev":"gulp watch","bump":"npm version patch","test":"echo \"Error: no test specified\" && exit 1","build":"gulp","publish":"npm publish"},"_npmUser":{"name":"kesha-antonov","email":"innokenty.longway@gmail.com"},"repository":{"url":"git+https://github.com/kesha-antonov/react-native-action-cable.git","type":"git"},"description":"Use Rails 5+ ActionCable channels with React Native for realtime magic.","directories":{},"licenseText":"The MIT License (MIT)\n\nCopyright (c) 2015 Zach Schneider\nCopyright (c) 2016-2017 Innokentii Antonov\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n","dependencies":{"eventemitter3":"4.0.7"},"_hasShrinkwrap":false,"devDependencies":{"del":"^7.0.0","gulp":"^4.0.2","webpack":"^5.75.0","gulp-coffee":"^3.0.3","coffee-loader":"^4.0.0","coffee-script":"^1.12.7","gulp-uglify-es":"^3.0.0","webpack-stream":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-action-cable_1.1.3_1668031746222_0.43095286483209705","host":"s3://npm-registry-packages"}},"1.1.4":{"name":"@kesha-antonov/react-native-action-cable","version":"1.1.4","keywords":["rails","actioncable","react native"],"author":{"name":"Zach Schneider","email":"zach@schneid.io"},"license":"MIT","_id":"@kesha-antonov/react-native-action-cable@1.1.4","maintainers":[{"name":"kesha-antonov","email":"innokenty.longway@gmail.com"}],"homepage":"https://github.com/kesha-antonov/react-native-action-cable#readme","bugs":{"url":"https://github.com/kesha-antonov/react-native-action-cable/issues"},"dist":{"shasum":"117d48aba33476a1c3f7b5a1c3a32ba8ec43524f","tarball":"https://registry.npmjs.org/@kesha-antonov/react-native-action-cable/-/react-native-action-cable-1.1.4.tgz","fileCount":29,"integrity":"sha512-Qy0jozu8fcAy9d0Reb/fIkWKr+0RXtt4nkwDKPz2xx6tD3it6XhgyfX1fVk1UMqnjwy8YyPCcB61TEAH2RbeYA==","signatures":[{"sig":"MEUCIB6bY+Qiyaxes51gomhkZJRTccJaW+r/Ued2GWi7OdeGAiEAk8LrXcRYdgm89Tq7SqsHWv83M6j0pO/eAiudgaxl5wM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33159,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjbDIsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpc9A/9EYqr9XZAjAcBOhcdYTavmAl0HD9u2PGx7gjknjOFTPV9J48K\r\nMFUor7hG7iGvQBr4O2qTs+zccca5+WuVefdP269DMllgvhyqhsiaBlWnUDxH\r\ncAlM//7LeTkPvN4usd0KjjKOLSW2CNr/Tcylx5Vds+Kz1W0UepyQfEJl1hlb\r\ntwShE6R7txFvKuflzEX3yxyHKm0jBCI/Cvb3MfbAl1upFSRHPgFx+MEhgIQr\r\n8JJFKpZDUfBc2wEVyMtcCqdSkkJaTwUi22T1ezhuTLQn+3DOLh4VoP3dCpE4\r\nILxuFJ8X36a/chBri3KOuGmZgIYHwuQwGqjuhQS8TN8WF7OzixOYbBf5YY6S\r\nNDePrTKdJ4pY/2DQhC9M3rt6OKcLFebbVZUz8RdI5jda6Z1sNZOw0wGURF4v\r\ngnSjBZ4T+IrPvYJ5WG6gkmVqHly3O2rFokytaFsy2eNvrgQJWG5RyzxUcjAx\r\nYEDtByILKe8YP7RSX8jxDKeEen1fnALgW3dw9xfKlewwaSfnGzH0Oh3eNcLC\r\nq8vxC6R3T3MG+gRKlJruJcMVKkK6kx0KUmj/PoBFOKgCkpsMO2sqGCzBJk5y\r\n104Z+otAUZyVUzq5/oBw4sN559EDaXBldPrrwXgu2NhY6Fa1qJ8PseLwmfln\r\nxn/r73E5kKt44o12pJVbU1Zrg+pUSUKwVJs=\r\n=Mske\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","scripts":{"dev":"gulp watch","bump":"npm version patch","test":"echo \"Error: no test specified\" && exit 1","build":"gulp","publish":"npm publish"},"_npmUser":{"name":"kesha-antonov","email":"innokenty.longway@gmail.com"},"repository":{"url":"git+https://github.com/kesha-antonov/react-native-action-cable.git","type":"git"},"description":"Use Rails 5+ ActionCable channels with React Native for realtime magic.","directories":{},"licenseText":"The MIT License (MIT)\n\nCopyright (c) 2015 Zach Schneider\nCopyright (c) 2016-2017 Innokentii Antonov\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n","dependencies":{"eventemitter3":"4.0.7"},"_hasShrinkwrap":false,"devDependencies":{"del":"^7.0.0","gulp":"^4.0.2","webpack":"^5.75.0","gulp-coffee":"^3.0.3","coffee-loader":"^4.0.0","coffee-script":"^1.12.7","gulp-uglify-es":"^3.0.0","webpack-stream":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-action-cable_1.1.4_1668035116762_0.27599822465836854","host":"s3://npm-registry-packages"}},"1.1.5":{"name":"@kesha-antonov/react-native-action-cable","version":"1.1.5","keywords":["rails","actioncable","react native"],"author":{"name":"Zach Schneider","email":"zach@schneid.io"},"license":"MIT","_id":"@kesha-antonov/react-native-action-cable@1.1.5","maintainers":[{"name":"kesha-antonov","email":"innokenty.longway@gmail.com"}],"homepage":"https://github.com/kesha-antonov/react-native-action-cable#readme","bugs":{"url":"https://github.com/kesha-antonov/react-native-action-cable/issues"},"dist":{"shasum":"83b526ea07b8c09371733b85dfba662a8d55680a","tarball":"https://registry.npmjs.org/@kesha-antonov/react-native-action-cable/-/react-native-action-cable-1.1.5.tgz","fileCount":29,"integrity":"sha512-bnTVl5qzm3lNGdsid1KzofEY7AGuqYBR/C5AUP0+eThhqc5d2Cd7ySyo4kWE7o/fVq8jb30po5Bk6FuX4pNEEw==","signatures":[{"sig":"MEQCICt9ykyM32qte7xhl+3LC3KXCE6bDgkuwx3nxDGi53ciAiBNRfdwuTYERjCbhvHcnyfqKS8PZbJXIVp9TV6q8db02Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33857},"main":"index.js","type":"module","scripts":{"dev":"gulp watch","bump":"npm version patch","test":"echo \"Error: no test specified\" && exit 1","build":"gulp","publish":"npm publish"},"_npmUser":{"name":"kesha-antonov","email":"innokenty.longway@gmail.com"},"repository":{"url":"git+https://github.com/kesha-antonov/react-native-action-cable.git","type":"git"},"description":"Use Rails 5+ ActionCable channels with React Native for realtime magic.","directories":{},"licenseText":"The MIT License (MIT)\n\nCopyright (c) 2015 Zach Schneider\nCopyright (c) 2016-2017 Innokentii Antonov\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n","dependencies":{"eventemitter3":"5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"del":"^7.1.0","gulp":"^4.0.2","webpack":"^5.90.3","gulp-coffee":"^3.0.3","coffeescript":"^2.7.0","coffee-loader":"^5.0.0","gulp-uglify-es":"^3.0.0","webpack-stream":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-action-cable_1.1.5_1709410298550_0.9879446530793266","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"@kesha-antonov/react-native-action-cable","version":"2.0.0","keywords":["react-native","actioncable","action-cable","rails","websocket","realtime","real-time","channels","subscriptions","typescript"],"author":{"name":"Zach Schneider","email":"zach@schneid.io"},"license":"MIT","_id":"@kesha-antonov/react-native-action-cable@2.0.0","maintainers":[{"name":"kesha-antonov","email":"innokenty.longway@gmail.com"}],"homepage":"https://github.com/kesha-antonov/react-native-action-cable#readme","bugs":{"url":"https://github.com/kesha-antonov/react-native-action-cable/issues"},"dist":{"shasum":"a26ed5bca465067802f4ac193c1358ae09c147ae","tarball":"https://registry.npmjs.org/@kesha-antonov/react-native-action-cable/-/react-native-action-cable-2.0.0.tgz","fileCount":14,"integrity":"sha512-tQWgd+lUh9sTCMuOOv/WU9f/x+safYQlKFS9FcW6DUFDxMeCfd6/8GcfwnMwCVwlxZK+qbpghtCyke+9VqRy7w==","signatures":[{"sig":"MEUCIQDkOmt87SN7V/TnK9Vm+5p7daw/UvbEFYcQ6PWTnkcfZAIgB64EAS3YdZYXJXyLtpgPYxFlz2dqLDSAoo2Euh9W4eE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37018},"main":"index.ts","type":"commonjs","gitHead":"1c52af59ea89daf4fbfd13ea46c8d4fd18a09ce3","scripts":{"bump":"npm version patch","lint":"eslint .","test":"echo \"Error: no test specified\" && exit 1","prepare":"husky","publish":"npm publish","lint:fix":"eslint . --fix"},"_npmUser":{"name":"kesha-antonov","email":"innokenty.longway@gmail.com"},"repository":{"url":"git+https://github.com/kesha-antonov/react-native-action-cable.git","type":"git"},"_npmVersion":"11.6.2","description":"Connect React Native apps to Rails ActionCable for real-time bidirectional communication.","directories":{"lib":"lib"},"lint-staged":{"*.{ts,tsx}":"eslint --fix"},"_nodeVersion":"24.3.0","dependencies":{"eventemitter3":"5.0.4"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.0","eslint":"^9.27.0","typescript":"^5.9.3","lint-staged":"^15.5.0","@stylistic/eslint-plugin":"^4.2.0","@typescript-eslint/parser":"^8.32.0","@typescript-eslint/eslint-plugin":"^8.32.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-action-cable_2.0.0_1768999014954_0.8193939785333924","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@kesha-antonov/react-native-action-cable","version":"3.0.0","keywords":["react-native","actioncable","action-cable","rails","websocket","realtime","real-time","channels","subscriptions","typescript"],"author":{"name":"Zach Schneider","email":"zach@schneid.io"},"license":"MIT","_id":"@kesha-antonov/react-native-action-cable@3.0.0","maintainers":[{"name":"kesha-antonov","email":"innokenty.longway@gmail.com"}],"homepage":"https://github.com/kesha-antonov/react-native-action-cable#readme","bugs":{"url":"https://github.com/kesha-antonov/react-native-action-cable/issues"},"dist":{"shasum":"3007bac270f3727c94876d7467e48f8d20c33af7","tarball":"https://registry.npmjs.org/@kesha-antonov/react-native-action-cable/-/react-native-action-cable-3.0.0.tgz","fileCount":14,"integrity":"sha512-VZ+LLgJ/EWs8Nnr6RKaT2miRkvPI6+qaH0a7GhNenvqFt27J7W5jltCFyGFUiY1D07hd0m5HKSntyDvHCNScGQ==","signatures":[{"sig":"MEUCIQDHy9SNzuvT5HonAVMe/ppKXU/4Dc0H9a8/+V6FSblFgQIgbqGctgDqLVSO32M55tf0/EkdHAvicBNYLhPX1p375uA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52220},"main":"index.ts","type":"commonjs","gitHead":"66463ce4859664574b5f2f4d69f8b63d8348323b","scripts":{"bump":"npm version patch","lint":"eslint .","test":"jest","prepare":"husky","release":"npm publish","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit -p tsconfig.test.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"kesha-antonov","email":"innokenty.longway@gmail.com"},"repository":{"url":"git+https://github.com/kesha-antonov/react-native-action-cable.git","type":"git"},"_npmVersion":"11.12.1","description":"Use Rails ActionCable channels with React Native for real-time WebSocket communication.","directories":{"lib":"lib"},"lint-staged":{"*.{ts,tsx}":"eslint --fix"},"_nodeVersion":"24.3.0","dependencies":{"eventemitter3":"5.0.4"},"_hasShrinkwrap":false,"packageManager":"yarn@4.18.0","devDependencies":{"jest":"^30.4.2","husky":"^9.1.0","eslint":"^9.27.0","ts-jest":"^29.4.12","typescript":"^5.9.3","@types/jest":"^30.0.0","lint-staged":"^15.5.0","@jest/globals":"^30.4.1","@stylistic/eslint-plugin":"^4.2.0","@typescript-eslint/parser":"^8.32.0","@typescript-eslint/eslint-plugin":"^8.32.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-action-cable_3.0.0_1785933941618_0.12157959764515325","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"@kesha-antonov/react-native-action-cable","version":"3.0.1","keywords":["react-native","expo","actioncable","action-cable","actioncable-client","rails","ruby-on-rails","websocket","websockets","realtime","real-time","channels","subscriptions","chat","new-architecture","typescript"],"author":{"name":"Kesha Antonov","email":"innokenty.longway@gmail.com"},"license":"MIT","_id":"@kesha-antonov/react-native-action-cable@3.0.1","maintainers":[{"name":"kesha-antonov","email":"innokenty.longway@gmail.com"}],"contributors":[{"name":"Zach Schneider","email":"zach@schneid.io"}],"homepage":"https://github.com/kesha-antonov/react-native-action-cable#readme","bugs":{"url":"https://github.com/kesha-antonov/react-native-action-cable/issues"},"dist":{"shasum":"60bb7a446ecfdcd02de0aa55a267736c4be79e88","tarball":"https://registry.npmjs.org/@kesha-antonov/react-native-action-cable/-/react-native-action-cable-3.0.1.tgz","fileCount":14,"integrity":"sha512-SvIzKDLi7ZFIJZ8jAxqRqQ9Hvl9O57ZP22BgiVWo4mKND/EBVWfoXWg3336jGafEo4LIPABsHJJXjMUAaZFo0A==","signatures":[{"sig":"MEQCIDN7vYNi+Qz1wuU1CVqHECtpKKCPl/Q7er0x+Y6uvPi+AiAeGqiJyzDppX734lkhmRdJDL9xBIndYqLjZClKBqt35w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54716},"main":"index.ts","type":"commonjs","types":"index.ts","gitHead":"1f84f7583f9baa64dbebaeed4eb309fd7661a90b","scripts":{"bump":"npm version patch","lint":"eslint .","test":"jest","prepare":"husky","release":"npm publish","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit -p tsconfig.test.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"kesha-antonov","email":"innokenty.longway@gmail.com"},"repository":{"url":"git+https://github.com/kesha-antonov/react-native-action-cable.git","type":"git"},"_npmVersion":"11.12.1","description":"Use Rails ActionCable channels with React Native for real-time WebSocket communication.","directories":{"lib":"lib"},"lint-staged":{"*.{ts,tsx}":"eslint --fix"},"_nodeVersion":"24.3.0","dependencies":{"eventemitter3":"5.0.4"},"_hasShrinkwrap":false,"packageManager":"yarn@4.18.0","devDependencies":{"jest":"^30.4.2","husky":"^9.1.0","eslint":"^9.27.0","ts-jest":"^29.4.12","typescript":"^5.9.3","@types/jest":"^30.0.0","lint-staged":"^15.5.0","@jest/globals":"^30.4.1","@stylistic/eslint-plugin":"^4.2.0","@typescript-eslint/parser":"^8.32.0","@typescript-eslint/eslint-plugin":"^8.32.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-action-cable_3.0.1_1786012440865_0.18433257182348695","host":"s3://npm-registry-packages-npm-production"}},"3.0.2":{"_id":"@kesha-antonov/react-native-action-cable@3.0.2","bugs":{"url":"https://github.com/kesha-antonov/react-native-action-cable/issues"},"dist":{"shasum":"8e14069a9b2d036ea06144dacfdda967ffb37e21","tarball":"https://registry.npmjs.org/@kesha-antonov/react-native-action-cable/-/react-native-action-cable-3.0.2.tgz","fileCount":14,"integrity":"sha512-v/pNvOLNvw3jmLAht4TH5nxpVf4H4aXCdG6epmZiWc7sg548SDFOX3mEMYSCSW5OSDvP4J04KBY5kEkg6qtU7A==","signatures":[{"sig":"MEUCIG1WrvfsoUDhNMQbN0C2nAY9cUh+OVSlCAEssswKbB/CAiEAohxMCenYZyFu6KU32G21qfnTmIqYDziuKxIIV1sz6II=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDxHa2hb9Id6ym3AXVxjMMs2aP3QG7APnDLPbOmhwrTwAIgQ1RnfPhpnm9lGdYwfv3K4JrSgU30zTmobeR0lulQTOU="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kesha-antonov%2freact-native-action-cable@3.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58329},"main":"index.ts","name":"@kesha-antonov/react-native-action-cable","type":"commonjs","types":"index.ts","author":{"name":"Kesha Antonov","email":"innokenty.longway@gmail.com"},"gitHead":"ed240738065fd8daf3797f4f2d231a8c320b9532","license":"MIT","scripts":{"bump":"npm version patch","lint":"eslint .","test":"jest","prepare":"husky","release":"npm publish","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit -p tsconfig.test.json","test:watch":"jest --watch","test:coverage":"jest --coverage"},"version":"3.0.2","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b4063d03-414b-420b-94fc-fff06d58b79b"}},"homepage":"https://github.com/kesha-antonov/react-native-action-cable#readme","keywords":["react-native","expo","actioncable","action-cable","actioncable-client","rails","ruby-on-rails","websocket","websockets","realtime","real-time","channels","subscriptions","chat","new-architecture","typescript"],"repository":{"url":"git+https://github.com/kesha-antonov/react-native-action-cable.git","type":"git"},"_npmVersion":"11.19.1","description":"Use Rails ActionCable channels with React Native for real-time WebSocket communication.","directories":{"lib":"lib"},"lint-staged":{"*.{ts,tsx}":"eslint --fix"},"maintainers":[{"name":"kesha-antonov","email":"innokenty.longway@gmail.com"}],"_nodeVersion":"24.3.0","contributors":[{"name":"Zach Schneider","email":"zach@schneid.io"}],"dependencies":{"eventemitter3":"5.0.4"},"_hasShrinkwrap":false,"packageManager":"yarn@4.18.0","devDependencies":{"jest":"^30.4.2","husky":"^9.1.0","eslint":"^9.27.0","ts-jest":"^29.4.12","typescript":"^5.9.3","@types/jest":"^30.0.0","lint-staged":"^15.5.0","@jest/globals":"^30.4.1","@stylistic/eslint-plugin":"^4.2.0","@typescript-eslint/parser":"^8.32.0","@typescript-eslint/eslint-plugin":"^8.32.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react-native-action-cable_3.0.2_1789487664350_0.2748860164730562"}}},"time":{"created":"2018-11-26T18:59:23.149Z","modified":"2026-09-15T15:54:24.766Z","1.0.1":"2018-11-26T18:59:23.506Z","1.0.2":"2019-06-30T19:31:23.868Z","1.0.3":"2019-06-30T19:47:11.854Z","1.0.4":"2019-06-30T19:53:50.161Z","1.0.5":"2019-10-08T14:57:36.134Z","1.1.0":"2020-08-10T11:26:52.211Z","1.1.1":"2022-11-09T21:30:15.858Z","1.1.2":"2022-11-09T22:07:32.918Z","1.1.3":"2022-11-09T22:09:06.395Z","1.1.4":"2022-11-09T23:05:16.969Z","1.1.5":"2024-03-02T20:11:38.778Z","2.0.0":"2026-01-21T12:36:55.084Z","3.0.0":"2026-08-05T12:45:41.745Z","3.0.1":"2026-08-06T10:34:01.004Z","3.0.2":"2026-09-15T15:54:24.450Z"},"bugs":{"url":"https://github.com/kesha-antonov/react-native-action-cable/issues"},"author":{"name":"Kesha Antonov","email":"innokenty.longway@gmail.com"},"license":"MIT","homepage":"https://github.com/kesha-antonov/react-native-action-cable#readme","keywords":["react-native","expo","actioncable","action-cable","actioncable-client","rails","ruby-on-rails","websocket","websockets","realtime","real-time","channels","subscriptions","chat","new-architecture","typescript"],"repository":{"url":"git+https://github.com/kesha-antonov/react-native-action-cable.git","type":"git"},"description":"Use Rails ActionCable channels with React Native for real-time WebSocket communication.","contributors":[{"name":"Zach Schneider","email":"zach@schneid.io"}],"maintainers":[{"name":"kesha-antonov","email":"innokenty.longway@gmail.com"}],"readme":"<p align=\"center\">\n  <a href=\"https://github.com/kesha-antonov/react-native-action-cable/actions/workflows/ci.yml\"><img src=\"https://github.com/kesha-antonov/react-native-action-cable/actions/workflows/ci.yml/badge.svg\" alt=\"CI\"></a>\n  <a href=\"https://badge.fury.io/js/@kesha-antonov%2Freact-native-action-cable\"><img src=\"https://badge.fury.io/js/@kesha-antonov%2Freact-native-action-cable.svg\" alt=\"npm version\"></a>\n  <a href=\"https://www.npmjs.com/package/@kesha-antonov/react-native-action-cable\"><img src=\"https://img.shields.io/npm/dm/@kesha-antonov/react-native-action-cable.svg\" alt=\"npm downloads\"></a>\n  <a href=\"https://npm-stat.com/charts.html?package=%40kesha-antonov%2Freact-native-action-cable&from=2015-01-01\"><img src=\"https://img.shields.io/badge/total%20downloads-580k-blue.svg\" alt=\"total npm downloads\"></a>\n  <a href=\"https://www.npmjs.com/package/@kesha-antonov/react-native-action-cable\"><img src=\"https://img.shields.io/npm/dt/@kesha-antonov/react-native-action-cable.svg?label=18-months%20downloads\" alt=\"npm downloads (last 18 months)\"></a>\n  <a href=\"https://github.com/kesha-antonov/react-native-action-cable/network/dependents\"><img src=\"https://img.shields.io/badge/used%20by-130%2B%20repos-brightgreen.svg\" alt=\"used by\"></a>\n  <a href=\"https://libraries.io/npm/@kesha-antonov%2Freact-native-action-cable\"><img src=\"https://img.shields.io/librariesio/dependent-repos/npm/@kesha-antonov%2Freact-native-action-cable?label=libraries.io%20repos\" alt=\"dependent repos on libraries.io\"></a>\n  <a href=\"https://github.com/kesha-antonov/react-native-action-cable/blob/master/LICENSE\"><img src=\"https://img.shields.io/badge/license-MIT-blue.svg\" alt=\"license\"></a>\n  <img src=\"https://img.shields.io/badge/platforms-iOS%20%7C%20Android%20%7C%20Web-lightgrey.svg\" alt=\"platforms\">\n  <img src=\"https://img.shields.io/badge/TypeScript-supported-blue.svg\" alt=\"TypeScript\">\n</p>\n\n<h1 align=\"center\">React Native ActionCable</h1>\n\n<p align=\"center\">\n  Use Rails ActionCable channels with React Native for real-time WebSocket communication.\n</p>\n\n<p align=\"center\">\n  <strong><a href=\"https://kesha-antonov.github.io/react-native-action-cable/\">📖 Documentation</a></strong> &nbsp;·&nbsp;\n  <a href=\"https://kesha-antonov.github.io/react-native-action-cable/installation\">Installation</a> &nbsp;·&nbsp;\n  <a href=\"https://kesha-antonov.github.io/react-native-action-cable/quick-start\">Quick start</a> &nbsp;·&nbsp;\n  <a href=\"https://kesha-antonov.github.io/react-native-action-cable/api\">API reference</a> &nbsp;·&nbsp;\n  <a href=\"https://kesha-antonov.github.io/react-native-action-cable/advanced\">Advanced usage</a>\n</p>\n\n<p align=\"center\">\n  <sub>Using it in production? A ⭐ helps other developers find the library.</sub>\n</p>\n\n<hr />\n\n<table align=\"center\">\n<tr>\n<td align=\"center\" valign=\"top\" width=\"190\">\n  <a href=\"https://cryptoc-app.web.app/\"><img src=\"https://cryptoc-app.web.app/img/icon.png?v=3\" width=\"76\" height=\"76\" alt=\"cryptoc app icon\" /></a>\n  <br /><br />\n  <img src=\"https://cryptoc-app.web.app/img/qr-get.png?v=2\" width=\"124\" height=\"124\" alt=\"QR code that installs cryptoc\" />\n  <br />\n  <sub>Scan to install</sub>\n  <br /><br />\n  <a href=\"https://apps.apple.com/app/cryptoc/id1333169178\"><img height=\"40\" src=\"https://cryptoc-app.web.app/img/appstore.svg?v=2\" alt=\"Download on the App Store\" /></a>\n  <br />\n  <a href=\"https://play.google.com/store/apps/details?id=co.ssoul.CryptoC\"><img height=\"59\" src=\"https://cryptoc-app.web.app/img/googleplay.png?v=2\" alt=\"Get it on Google Play\" /></a>\n</td>\n<td valign=\"top\">\n\n### Support my work\n\n**[cryptoc](https://cryptoc-app.web.app/)** - my crypto portfolio app. Your coins on the home screen, lock screen and watch face. iPhone, iPad, Mac, Apple Watch, Android, Android tablet and Wear OS.\n\n- Portfolio with average buy price and 24h / 180-day / all-time P&L\n- Widgets in three sizes, refreshed in the background - most days you never open the app\n- Price alerts on 5,000+ coins, delivered while the app is closed\n- **No account, no email, no exchange API keys, no ads.** Your holdings never reach a server - they sync through your own iCloud or Google Drive\n- Free for 3 holdings, and that is not a trial timer\n\n<sub>Downloading it is what pays for the time that goes into these libraries.</sub>\n\n</td>\n</tr>\n</table>\n\n<hr />\n\n## ✨ Features\n\n- 🔌 **WebSocket Connection** - Automatic connection management with reconnection support\n- 📡 **Channel Subscriptions** - Subscribe to multiple ActionCable channels\n- 🔄 **Auto-Reconnect** - Automatically reconnects when connection is lost\n- 🔐 **Custom Headers** - Support for authentication and dynamic headers\n- 📱 **React Native Ready** - Works without `window` object polyfills, on the New Architecture (pure JS, no native module)\n- 🛡️ **Connection Reuse** - Prevent duplicate connections during hot reloads\n- ⚡ **TypeScript** - Full TypeScript support included\n\n---\n\n## 📖 Table of Contents\n\n- [✨ Features](#-features)\n- [📖 Table of Contents](#-table-of-contents)\n- [📦 Installation](#-installation)\n- [🚀 Quick Start](#-quick-start)\n  - [1. Create a consumer](#1-create-a-consumer)\n  - [2. Subscribe to a channel](#2-subscribe-to-a-channel)\n  - [3. Send messages](#3-send-messages)\n  - [4. Cleanup](#4-cleanup)\n- [📚 API Reference](#-api-reference)\n  - [ActionCable](#actioncable)\n  - [Consumer Instance](#consumer-instance)\n  - [Cable](#cable)\n  - [Channel](#channel)\n- [⚙️ Advanced Usage](#️-advanced-usage)\n- [🧪 Testing](#-testing)\n  - [Jest Mock](#jest-mock)\n- [📂 Examples](#-examples)\n- [🤝 Contributing](#-contributing)\n- [👏 Credits](#-credits)\n- [📄 License](#-license)\n\n---\n\n## 📦 Installation\n\n**Yarn**\n\n```bash\nyarn add @kesha-antonov/react-native-action-cable\n```\n\n**npm**\n\n```bash\nnpm install @kesha-antonov/react-native-action-cable\n```\n\nThe unscoped [`react-native-action-cable`](https://www.npmjs.com/package/react-native-action-cable)\nis an alias that re-exports this package in full and resolves to the latest\nrelease in the same major line. Use whichever name you prefer - the scoped one\nis the canonical package.\n\n---\n\n## 🚀 Quick Start\n\n### 1. Create a consumer\n\n```typescript\nimport { ActionCable, Cable } from '@kesha-antonov/react-native-action-cable'\n\nconst actionCable = ActionCable.createConsumer('ws://localhost:3000/cable')\nconst cable = new Cable({})\n```\n\n### 2. Subscribe to a channel\n\n```typescript\nconst channel = cable.setChannel(\n  'ChatChannel',\n  actionCable.subscriptions.create({\n    channel: 'ChatChannel',\n    roomId: 1\n  })\n)\n\nchannel\n  .on('received', (data) => console.log('Received:', data))\n  .on('connected', () => console.log('Connected!'))\n  .on('disconnected', () => console.log('Disconnected'))\n```\n\n### 3. Send messages\n\n```typescript\nchannel.perform('send_message', { text: 'Hello!' })\n```\n\n### 4. Cleanup\n\n```typescript\nchannel.unsubscribe()\n```\n\n---\n\n## 📚 API Reference\n\n### ActionCable\n\n| Method | Description |\n|--------|-------------|\n| `createConsumer(url, headers?)` | Create a new consumer and connect |\n| `getOrCreateConsumer(url, headers?)` | Reuse existing consumer or create new one |\n| `disconnectConsumer(url)` | Disconnect and remove consumer from cache |\n| `startDebugging()` | Enable debug logging |\n| `stopDebugging()` | Disable debug logging |\n\n### Consumer Instance\n\n| Method | Description |\n|--------|-------------|\n| `subscriptions.create(params)` | Create a channel subscription |\n| `connection.isOpen()` | Check if connected |\n| `connection.isActive()` | Check if connected or connecting |\n| `disconnect()` | Disconnect from server |\n\n### Cable\n\n| Method | Description |\n|--------|-------------|\n| `setChannel(name, subscription)` | Register a channel |\n| `channel(name)` | Get channel by name |\n\n### Channel\n\n| Method | Description |\n|--------|-------------|\n| `on(event, callback)` | Subscribe to events: `received`, `connected`, `disconnected`, `rejected`, `error` |\n| `on('connected', cb)` | `cb({ reconnected })` - `reconnected` is `true` when the subscription came back after a dropped connection |\n| `on('disconnected', cb)` | `cb({ willAttemptReconnect, code, reason })` - `reason` is where React Native reports why the socket dropped |\n| `on('error', cb)` | `cb({ message, event })` - a readable message, with the original platform event attached |\n| `removeListener(event, callback)` | Remove event listener |\n| `perform(action, data)` | Send message to server |\n| `unsubscribe()` | Unsubscribe from channel |\n\n---\n\n## ⚙️ Advanced Usage\n\n<details>\n<summary><strong>Custom Headers & Authentication</strong></summary>\n\n```typescript\n// Static headers\nconst actionCable = ActionCable.createConsumer('ws://localhost:3000/cable', {\n  'Authorization': 'Bearer token123'\n})\n\n// Dynamic headers (re-evaluated on each connection)\nconst actionCable = ActionCable.createConsumer('ws://localhost:3000/cable', () => ({\n  'Authorization': `Bearer ${getAuthToken()}`\n}))\n```\n\n</details>\n\n<details>\n<summary><strong>Preventing Duplicate Connections</strong></summary>\n\nUse `getOrCreateConsumer` to prevent duplicate connections during hot reloads:\n\n```typescript\n// ❌ Creates new connection every time\nconst actionCable = ActionCable.createConsumer('ws://localhost:3000/cable')\n\n// ✅ Reuses existing connection\nconst actionCable = ActionCable.getOrCreateConsumer('ws://localhost:3000/cable')\n```\n\n</details>\n\n<details>\n<summary><strong>Error Handling</strong></summary>\n\n```typescript\nchannel.on('error', ({ message, event }) => {\n  console.warn('Connection error:', message)\n  // Handle: no internet, wrong URL, server down, auth failure\n  // `event` is the original platform event, if you need it\n})\n\n// React Native reports *why* a socket dropped on the close event\nchannel.on('disconnected', ({ willAttemptReconnect, reason }) => {\n  console.log(reason, willAttemptReconnect ? '- retrying' : '- gave up')\n})\n```\n\n</details>\n\n<details>\n<summary><strong>React Hook Example</strong></summary>\n\n```typescript\nfunction useActionCable(channelName: string, params: Record<string, unknown>) {\n  const [connected, setConnected] = useState(false)\n\n  useEffect(() => {\n    const channel = cable.setChannel(\n      channelName,\n      actionCable.subscriptions.create({ channel: channelName, ...params })\n    )\n\n    channel\n      .on('connected', () => setConnected(true))\n      .on('disconnected', () => setConnected(false))\n      .on('received', handleReceived)\n\n    return () => {\n      channel.removeListener('received', handleReceived)\n      channel.unsubscribe()\n      delete cable.channels[channelName]\n    }\n  }, [channelName])\n\n  return { connected, channel: cable.channel(channelName) }\n}\n```\n\n</details>\n\n<details>\n<summary><strong>Rails style channel mixins</strong></summary>\n\n`subscriptions.create` accepts an optional mixin of callbacks, exactly like Rails\nActionCable, which makes existing Rails channel code portable:\n\n```typescript\nconst channel = actionCable.subscriptions.create({ channel: 'ChatChannel', roomId: 1 }, {\n  connected ({ reconnected }) { console.log('Connected!', reconnected) },\n  disconnected ({ willAttemptReconnect }) { console.log('Disconnected', willAttemptReconnect) },\n  received (data) { console.log('Received:', data) },\n\n  speak (text: string) { this.perform('speak', { text }) },\n})\n\nchannel.speak('Hello!')\n```\n\nA mixin replaces the event emitter callbacks it defines - use either style, not both\nfor the same event.\n\n</details>\n\n<details>\n<summary><strong>Custom Action Events</strong></summary>\n\nMessages with `data.action` attribute are emitted as separate events:\n\n```ruby\n# Rails sends:\n{ action: 'speak', text: 'hello!' }\n```\n\n```typescript\n// React Native receives:\nchannel.on('speak', (data) => {\n  console.log(data.text) // 'hello!'\n})\n```\n\n</details>\n\n---\n\n## 🧪 Testing\n\n### Jest Mock\n\n```typescript\njest.mock('@kesha-antonov/react-native-action-cable', () => ({\n  ActionCable: {\n    createConsumer: jest.fn(() => ({\n      subscriptions: {\n        create: jest.fn(() => ({\n          on: jest.fn().mockReturnThis(),\n          removeListener: jest.fn().mockReturnThis(),\n          perform: jest.fn(),\n          unsubscribe: jest.fn(),\n        })),\n      },\n      connection: {\n        isActive: jest.fn(() => true),\n        isOpen: jest.fn(() => true),\n      },\n      disconnect: jest.fn(),\n    })),\n  },\n  Cable: jest.fn(() => ({\n    channels: {},\n    channel: jest.fn(),\n    setChannel: jest.fn(),\n  })),\n}))\n```\n\nSee [examples/testing](examples/testing) for complete testing examples.\n\n### Testing this library\n\nThe library itself is covered by a Jest suite in [`__tests__`](__tests__), which\ndrives the real connection code against a WebSocket double that behaves like a\nRails ActionCable server:\n\n```bash\nyarn test           # run the suite\nyarn test:coverage  # run it with a coverage report\nyarn typecheck      # type-check the library and the tests\n```\n\n---\n\n## 📂 Examples\n\n| Example | Description |\n|---------|-------------|\n| [Complete Chat App](examples/complete-chat-app) | Full Rails backend + React Native frontend |\n| [Apollo GraphQL](examples/apollo-graphql) | ActionCable with GraphQL subscriptions |\n| [Testing](examples/testing) | Jest mocks and testing patterns |\n\n---\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n---\n\n## 👥 Author\n\nMaintained by [Kesha Antonov](https://github.com/kesha-antonov)\n\nI also build **[cryptoc](https://cryptoc-app.web.app/)** - a crypto portfolio app with home screen, lock screen and Watch widgets, no account and no exchange API keys.\n\n---\n\n## 👏 Credits\n\nBased on [action-cable-react](https://github.com/schneidmaster/action-cable-react). Code in `lib/action_cable` is adapted from [Rails ActionCable](https://github.com/rails/rails/tree/main/actioncable/app/javascript/action_cable), last synced with Rails `main` in August 2026.\n\nWhere it differs on purpose: React Native `AppState` drives reconnects instead of `document.visibilitychange`, the `WebSocket` implementation and request headers are injectable, subscriptions emit `error` events, incoming React Native Blobs are released, and urls are resolved without a `document`.\n\n> Please note that this project is maintained in free time. If you find it helpful, please consider [becoming a sponsor](https://github.com/sponsors/kesha-antonov).\n\n---\n\n## 📄 License\n\n[MIT](./LICENSE)\n","readmeFilename":"README.md"}