{"_id":"lore-hook-websockets-actioncable","_rev":"50-9d13ce13d2bac04f5a3771a194eda66f","name":"lore-hook-websockets-actioncable","description":"A lore hook that add websockets support for the ActionCable implementation in Rails","dist-tags":{"latest":"0.13.0","next":"0.13.0-rc.2"},"versions":{"0.9.0-rc.1":{"name":"lore-hook-websockets-actioncable","version":"0.9.0-rc.1","license":"MIT","main":"./lib/index.js","description":"A lore hook that add websockets support for the ActionCable implementation in Rails","keywords":["lore","hook","websockets","actioncable","rails"],"scripts":{"build":"../../node_modules/.bin/babel src --out-dir lib","clean":"rimraf lib","debug":"mocha debug --compilers js:babel-core/register --recursive","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register --recursive"},"dependencies":{"lodash":"^4.0.0","lore-websockets":"^0.9.0-rc.1","pluralize":"1.2.1"},"devDependencies":{"actioncable":"^5.0.0","chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"peerDependencies":{"actioncable":"^5.0.0"},"_id":"lore-hook-websockets-actioncable@0.9.0-rc.1","_shasum":"e126ce992e165031fc643633d7b44a2c1ca50ddd","_from":".","_npmVersion":"3.9.5","_nodeVersion":"6.2.2","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"shasum":"e126ce992e165031fc643633d7b44a2c1ca50ddd","tarball":"https://registry.npmjs.org/lore-hook-websockets-actioncable/-/lore-hook-websockets-actioncable-0.9.0-rc.1.tgz","integrity":"sha512-VhPwgt144jgRcZwvWxHz5a/aFRN5n/XEO8DKoCZSraJvyim3SNFP1znXjWNMIrKLd4bkR+RIoBrNTgdi4ycvcw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCFO1ZquHnxTXjyHtsjQ6bcgJc19i7kJeQVI+ssH9jzqAIgRXF2L5fpSafgPMJgiKAwe7SgfB7a8rAjnAyYBKYkrPo="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/lore-hook-websockets-actioncable-0.9.0-rc.1.tgz_1473454911808_0.6081453415099531"},"directories":{}},"0.9.0":{"name":"lore-hook-websockets-actioncable","version":"0.9.0","license":"MIT","main":"./lib/index.js","description":"A lore hook that add websockets support for the ActionCable implementation in Rails","keywords":["lore","hook","websockets","actioncable","rails"],"scripts":{"build":"../../node_modules/.bin/babel src --out-dir lib","clean":"rimraf lib","debug":"mocha debug --compilers js:babel-core/register --recursive","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register --recursive"},"dependencies":{"lodash":"^4.0.0","lore-websockets":"^0.9.0","pluralize":"1.2.1"},"devDependencies":{"actioncable":"^5.0.0","chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"peerDependencies":{"actioncable":"^5.0.0"},"_id":"lore-hook-websockets-actioncable@0.9.0","_shasum":"6af8e3d842173f6464a14f5ebf3ce7f29c029659","_from":".","_npmVersion":"3.9.5","_nodeVersion":"6.2.2","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"shasum":"6af8e3d842173f6464a14f5ebf3ce7f29c029659","tarball":"https://registry.npmjs.org/lore-hook-websockets-actioncable/-/lore-hook-websockets-actioncable-0.9.0.tgz","integrity":"sha512-lRpC5l0hzo8FM/eOoTd+tZ2BQ18Uok9Zc/8q3j/ctasA5Icnz+NdxA/9v1u2VK9oRKBg3yCkpZN5eT7X4VvguA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE0c5WQ3funKLhIv87WtT8rrzWkxYDasAHYAv3P7LkbuAiEAg5uDdsfG8BvHtjARvf7q5N6N94YUzkKEpqVcjsZWGX0="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/lore-hook-websockets-actioncable-0.9.0.tgz_1473582764053_0.3485305451322347"},"directories":{}},"0.10.0-beta.1":{"name":"lore-hook-websockets-actioncable","version":"0.10.0-beta.1","license":"MIT","main":"./lib/index.js","description":"A lore hook that add websockets support for the ActionCable implementation in Rails","keywords":["lore","hook","websockets","actioncable","rails"],"scripts":{"build":"../../node_modules/.bin/babel src --out-dir lib","clean":"rimraf lib","debug":"mocha debug --compilers js:babel-core/register --recursive","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register --recursive"},"dependencies":{"lodash":"^4.0.0","lore-websockets":"^0.10.0-beta.1","pluralize":"1.2.1"},"devDependencies":{"actioncable":"^5.0.0","chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"peerDependencies":{"actioncable":"^5.0.0"},"_id":"lore-hook-websockets-actioncable@0.10.0-beta.1","_shasum":"79b3af3cf0940a47e1160d0c4c541c8f24411545","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.6.0","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"shasum":"79b3af3cf0940a47e1160d0c4c541c8f24411545","tarball":"https://registry.npmjs.org/lore-hook-websockets-actioncable/-/lore-hook-websockets-actioncable-0.10.0-beta.1.tgz","integrity":"sha512-wEr8CXdJ+6J5qJcP5w7ahjJbhCXhhrfo4efiu7uu6tt5hbaFZZpIz/u0cHQwC8jFwqQXXhp2AMGi2R3t5N+Lyg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC2lGHAP7XYd5Gwb+bpQShp9mlE0UcaPCsjWRV3JNZbowIhALAVBQhS1PghWmibMdzBELlbx1nKdImE+pIHDMQMPNfI"}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/lore-hook-websockets-actioncable-0.10.0-beta.1.tgz_1475572928164_0.35255695483647287"},"directories":{}},"0.10.0":{"name":"lore-hook-websockets-actioncable","version":"0.10.0","license":"MIT","main":"./lib/index.js","description":"A lore hook that add websockets support for the ActionCable implementation in Rails","keywords":["lore","hook","websockets","actioncable","rails"],"scripts":{"build":"../../node_modules/.bin/babel src --out-dir lib","clean":"rimraf lib","debug":"mocha debug --compilers js:babel-core/register --recursive","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register --recursive"},"dependencies":{"lodash":"^4.0.0","lore-websockets":"~0.10.0","pluralize":"1.2.1"},"devDependencies":{"actioncable":"^5.0.0","chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"peerDependencies":{"actioncable":"^5.0.0"},"_id":"lore-hook-websockets-actioncable@0.10.0","_shasum":"62c1613bf2f35afdbc06d3ab05fb631738b8dbb0","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.6.0","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"shasum":"62c1613bf2f35afdbc06d3ab05fb631738b8dbb0","tarball":"https://registry.npmjs.org/lore-hook-websockets-actioncable/-/lore-hook-websockets-actioncable-0.10.0.tgz","integrity":"sha512-wBMJ4zNvOXZOh2zsV38mlxkUSYcPFgy+/BKCwC2MaEyMBiw5u48+Sx5dzO7pCIlCtDLtktZ8pgzr2lo6hBYwiw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC5LCCiUEE1+jcb3mki+9fAHNTPfFz/s4zS7z+XjNBcTQIhALEZw8E01fYSd5ie6FuCEfsgElVsEXWUEfSNRIdw1J5C"}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/lore-hook-websockets-actioncable-0.10.0.tgz_1476337320181_0.448471253272146"},"directories":{}},"0.11.0-beta.1":{"name":"lore-hook-websockets-actioncable","version":"0.11.0-beta.1","license":"MIT","main":"./lib/index.js","description":"A lore hook that add websockets support for the ActionCable implementation in Rails","keywords":["lore","hook","websockets","actioncable","rails"],"scripts":{"build":"../../node_modules/.bin/babel src --out-dir lib","clean":"rimraf lib","debug":"mocha debug --compilers js:babel-core/register --recursive","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register --recursive"},"dependencies":{"lodash":"^4.0.0","lore-websockets":"^0.11.0-beta.1","pluralize":"1.2.1"},"devDependencies":{"actioncable":"^5.0.0","chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"peerDependencies":{"actioncable":"^5.0.0"},"_id":"lore-hook-websockets-actioncable@0.11.0-beta.1","_shasum":"9772912e5fb52ef718c26ee88327ba2167edbf75","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.6.0","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"shasum":"9772912e5fb52ef718c26ee88327ba2167edbf75","tarball":"https://registry.npmjs.org/lore-hook-websockets-actioncable/-/lore-hook-websockets-actioncable-0.11.0-beta.1.tgz","integrity":"sha512-RXrd25+qgtiAT4RV2KLaWyAZxde7rPALanABoiZNhp4XqihuK1J9VA3pGIgF3UlDpF4Flja9yMayiMv13ZAVag==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDsEv7a4zqScJV5or8GFReU8bBNJQGv0FbehcUdJte/FgIgaT91/eCl+klcS1daVkDtHTIzArQQH9KFGtmlP2j+duc="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/lore-hook-websockets-actioncable-0.11.0-beta.1.tgz_1481523871965_0.12873433763161302"},"directories":{}},"0.11.0-rc.1":{"name":"lore-hook-websockets-actioncable","version":"0.11.0-rc.1","license":"MIT","main":"./lib/index.js","description":"A lore hook that add websockets support for the ActionCable implementation in Rails","keywords":["lore","hook","websockets","actioncable","rails"],"scripts":{"build":"../../node_modules/.bin/babel src --out-dir lib","clean":"rimraf lib","debug":"mocha debug --compilers js:babel-core/register --recursive","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register --recursive"},"dependencies":{"lodash":"^4.0.0","lore-websockets":"^0.11.0-rc.1","pluralize":"1.2.1"},"devDependencies":{"actioncable":"^5.0.0","chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"peerDependencies":{"actioncable":"^5.0.0"},"_id":"lore-hook-websockets-actioncable@0.11.0-rc.1","_shasum":"8c102d8ab0b4e3b95349fd238cb1b18a905ccb7d","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.6.0","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"shasum":"8c102d8ab0b4e3b95349fd238cb1b18a905ccb7d","tarball":"https://registry.npmjs.org/lore-hook-websockets-actioncable/-/lore-hook-websockets-actioncable-0.11.0-rc.1.tgz","integrity":"sha512-BE6TnWlvB69p6gEDQrZUj7yfdL80SAAZZqxCGyfs80pi5wRwUkeY/L9NlwavYCNKuLWMh6EddXkIdVXFfZSfCA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBuOAuVe9C+ILtyaJ9vWmVBBvj0nvIwWkXBjVWhhHYW2AiBROZX+PqsSKGM6GnZ8MLZ9OwzqSNg8dhEM9tOOi5rZUA=="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/lore-hook-websockets-actioncable-0.11.0-rc.1.tgz_1485239118049_0.05195135809481144"},"directories":{}},"0.11.0":{"name":"lore-hook-websockets-actioncable","version":"0.11.0","license":"MIT","main":"./lib/index.js","description":"A lore hook that add websockets support for the ActionCable implementation in Rails","keywords":["lore","hook","websockets","actioncable","rails"],"scripts":{"build":"../../node_modules/.bin/babel src --out-dir lib","clean":"rimraf lib","debug":"mocha debug --compilers js:babel-core/register --recursive","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register --recursive"},"dependencies":{"lodash":"^4.0.0","lore-websockets":"^0.11.0","pluralize":"1.2.1"},"devDependencies":{"actioncable":"^5.0.0","chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"peerDependencies":{"actioncable":"^5.0.0"},"_id":"lore-hook-websockets-actioncable@0.11.0","_shasum":"0ee62d2f997b1fe568dba26d42729e6454ea013b","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.6.0","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"shasum":"0ee62d2f997b1fe568dba26d42729e6454ea013b","tarball":"https://registry.npmjs.org/lore-hook-websockets-actioncable/-/lore-hook-websockets-actioncable-0.11.0.tgz","integrity":"sha512-rfe24Uv8QTbKm7qCQJTIxTL/FFqV8PIsWcG+BTva7RdXajeJ+WUyCvmUTRC5IWnYNRgy0yHaP85CHJdx4hJBqg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCNpcTjgiSxFowk6GrgXvDuBlCEp0VhjWDXg4EHcgaMbAIgbNU8rdcnoVNTlj6XY+W3JA8jyCeGXAdfpCsmzXvoaNk="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/lore-hook-websockets-actioncable-0.11.0.tgz_1485665719321_0.30176115641370416"},"directories":{}},"0.12.0-beta.1":{"name":"lore-hook-websockets-actioncable","version":"0.12.0-beta.1","license":"MIT","main":"./lib/index.js","description":"A lore hook that add websockets support for the ActionCable implementation in Rails","keywords":["lore","hook","websockets","actioncable","rails"],"scripts":{"build":"../../node_modules/.bin/babel src --out-dir lib","clean":"rimraf lib","debug":"mocha debug --compilers js:babel-core/register --recursive","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register --recursive"},"dependencies":{"lodash":"^4.0.0","lore-websockets":"^0.12.0-beta.1","pluralize":"1.2.1"},"devDependencies":{"actioncable":"^5.0.0","chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"peerDependencies":{"actioncable":"^5.0.0"},"_id":"lore-hook-websockets-actioncable@0.12.0-beta.1","_shasum":"d0e418f17043c1d21edbedbdad3e6e785c60a27e","_from":".","_npmVersion":"4.4.0","_nodeVersion":"6.6.0","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"shasum":"d0e418f17043c1d21edbedbdad3e6e785c60a27e","tarball":"https://registry.npmjs.org/lore-hook-websockets-actioncable/-/lore-hook-websockets-actioncable-0.12.0-beta.1.tgz","integrity":"sha512-U0y+9NuRDEYxyo5HCRNogBQ1RRFXb185VReda0RsUzbYRpX8PY5CjxkhjRM+bP1OxscEW5rZ19wOg/xe8+sshw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDOFyFXIAu4d0v6ftjMDRFuVcCwJziGXwzbn+utrrMtBgIgK1oWKTvunx/j8RzEWhp1qgBWY6JUiuZvRia655jt/L8="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/lore-hook-websockets-actioncable-0.12.0-beta.1.tgz_1488758414805_0.6535403896123171"},"directories":{}},"0.11.5":{"name":"lore-hook-websockets-actioncable","version":"0.11.5","license":"MIT","main":"./lib/index.js","description":"A lore hook that add websockets support for the ActionCable implementation in Rails","keywords":["lore","hook","websockets","actioncable","rails"],"scripts":{"build":"../../node_modules/.bin/babel src --out-dir lib","clean":"rimraf lib","debug":"mocha debug --compilers js:babel-core/register --recursive","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register --recursive"},"dependencies":{"lodash":"^4.0.0","lore-websockets":"~0.11.0","pluralize":"1.2.1"},"devDependencies":{"actioncable":"^5.0.0","chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"peerDependencies":{"actioncable":"^5.0.0"},"_id":"lore-hook-websockets-actioncable@0.11.5","_shasum":"3d5b0ef71a1561e5486415f72bc0f12495138e7c","_from":".","_npmVersion":"4.4.4","_nodeVersion":"6.6.0","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"shasum":"3d5b0ef71a1561e5486415f72bc0f12495138e7c","tarball":"https://registry.npmjs.org/lore-hook-websockets-actioncable/-/lore-hook-websockets-actioncable-0.11.5.tgz","integrity":"sha512-nrEfdbTa9zhxRkZKKw5L9bMrUD5nZ4IRq1eY7en3P6zah3c8ejHvHQ3ZQ8k5dNqw+k/ygchnID8HNePBmduPfA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDvtGsEPIZkm3j6INrcIQUhCDRXwB4UtCyY1dm7IC7ndAIga0cywcuYKEiC5HEFsF+c7UWOLeXR6N0PHwcxpBS471w="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/lore-hook-websockets-actioncable-0.11.5.tgz_1493712289471_0.8687195666134357"},"directories":{}},"0.12.0-rc.1":{"name":"lore-hook-websockets-actioncable","version":"0.12.0-rc.1","license":"MIT","main":"./lib/index.js","description":"A lore hook that add websockets support for the ActionCable implementation in Rails","keywords":["lore","hook","websockets","actioncable","rails"],"scripts":{"build":"../../node_modules/.bin/babel src --out-dir lib","clean":"rimraf lib","debug":"mocha debug --compilers js:babel-core/register --recursive","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register --recursive"},"dependencies":{"lodash":"^4.0.0","lore-websockets":"^0.12.0-rc.1","pluralize":"1.2.1"},"devDependencies":{"actioncable":"^5.0.0","chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"peerDependencies":{"actioncable":"^5.0.0"},"_id":"lore-hook-websockets-actioncable@0.12.0-rc.1","_shasum":"9a6d4c2b86567f34b4f06b37fe767a2116d21a9a","_from":".","_npmVersion":"4.4.4","_nodeVersion":"6.6.0","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"shasum":"9a6d4c2b86567f34b4f06b37fe767a2116d21a9a","tarball":"https://registry.npmjs.org/lore-hook-websockets-actioncable/-/lore-hook-websockets-actioncable-0.12.0-rc.1.tgz","integrity":"sha512-cE3IiJG0lB/hj3S71WaOWuB7uWHn9EcVcfkPhr7j++71rzylIBb170DG9GQy7lHLgH+yyD1WMAMpQO7k69nJKg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDJuO0SzFPIalI2OeC+oBdxJXvd7ArSqeHzTMjDs98PoAiBq04scGxo3UH0THElcnVV8GuhbAXph8P1edU+1GqIX8Q=="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/lore-hook-websockets-actioncable-0.12.0-rc.1.tgz_1493715358978_0.7530612300615758"},"directories":{}},"0.12.0":{"name":"lore-hook-websockets-actioncable","version":"0.12.0","license":"MIT","main":"./lib/index.js","description":"A lore hook that add websockets support for the ActionCable implementation in Rails","keywords":["lore","hook","websockets","actioncable","rails"],"scripts":{"build":"../../node_modules/.bin/babel src --out-dir lib","clean":"rimraf lib","debug":"mocha debug --compilers js:babel-core/register --recursive","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register --recursive"},"dependencies":{"lodash":"^4.0.0","lore-websockets":"^0.12.0","pluralize":"1.2.1"},"devDependencies":{"actioncable":"^5.0.0","chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"peerDependencies":{"actioncable":"^5.0.0"},"_id":"lore-hook-websockets-actioncable@0.12.0","_shasum":"4570bfac4c6696e6e142f0b092172c1a224431f5","_from":".","_npmVersion":"4.4.4","_nodeVersion":"6.6.0","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"shasum":"4570bfac4c6696e6e142f0b092172c1a224431f5","tarball":"https://registry.npmjs.org/lore-hook-websockets-actioncable/-/lore-hook-websockets-actioncable-0.12.0.tgz","integrity":"sha512-+HamTLxaQzGPr+kjBzVA5Mn6+/CsSq/zhU3sSqTPoWj2BwFLSB3BVgROm19yQBCl02nZKpPv/M2vuNWyQeu9UQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCiEhFtDK8zMgw+OXD68UJ3GTNkTcAAlYhGpl3UrTOTbAIhAJ56jciTA4Xm55dikCSSNfeX9c6E1oLQ9VTtKIrS+SVl"}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/lore-hook-websockets-actioncable-0.12.0.tgz_1494219623816_0.5002643945626915"},"directories":{}},"0.12.6":{"name":"lore-hook-websockets-actioncable","version":"0.12.6","license":"MIT","main":"./lib/index.js","description":"A lore hook that add websockets support for the ActionCable implementation in Rails","keywords":["lore","hook","websockets","actioncable","rails"],"scripts":{"build":"../../node_modules/.bin/babel src --out-dir lib","clean":"rimraf lib","debug":"mocha debug --compilers js:babel-core/register --recursive","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register --recursive"},"dependencies":{"lodash":"^4.0.0","lore-websockets":"^0.12.6","pluralize":"1.2.1"},"devDependencies":{"actioncable":"^5.0.0","chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"peerDependencies":{"actioncable":"^5.0.0"},"_id":"lore-hook-websockets-actioncable@0.12.6","_npmVersion":"5.0.4","_nodeVersion":"6.11.0","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-QRFTdSkJjaKDqNBD+qynBw0jaglx779FG+WST/BLvnZyWt+mKpEhJJYk8e4dVhdbwQDZxkadIoykX5j6wVk7Hw==","shasum":"a05317a6335bd44e8a9aae8805b967c4d405959a","tarball":"https://registry.npmjs.org/lore-hook-websockets-actioncable/-/lore-hook-websockets-actioncable-0.12.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDoCz3ovD0Lm777VRDOXXaUSMIYIUUB77r8sNdytUqz7AIgYO8hpG+CKDjM+DMj5wyeVNF8BBe5Q4GPyH8W82+QPIw="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-websockets-actioncable-0.12.6.tgz_1499144977786_0.13200204842723906"},"directories":{}},"0.12.7-rc.1":{"name":"lore-hook-websockets-actioncable","version":"0.12.7-rc.1","license":"MIT","main":"lib/index.js","module":"es/index.js","description":"A lore hook that add websockets support for the ActionCable implementation in Rails","keywords":["lore","hook","websockets","actioncable","rails"],"scripts":{"build":"npm run build:cjs && npm run build:es","build:cjs":"BABEL_ENV=cjs ../../node_modules/.bin/babel src --out-dir lib","build:es":"BABEL_ENV=es ../../node_modules/.bin/babel src --out-dir es","clean":"rimraf lib && rimraf es","debug":"mocha debug --compilers js:babel-core/register --recursive","prepublish":"npm run build","test":"BABEL_ENV=test mocha --compilers js:babel-core/register --recursive"},"dependencies":{"lodash":"^4.0.0","lore-websockets":"^0.12.7-rc.1","pluralize":"1.2.1"},"devDependencies":{"actioncable":"^5.0.0","chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"peerDependencies":{"actioncable":"^5.0.0"},"_id":"lore-hook-websockets-actioncable@0.12.7-rc.1","_npmVersion":"5.1.0","_nodeVersion":"6.11.0","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-gQ4yxtsUixZ68FaIUUGPS4cNwbSbFVhAupLmhlU9Pger3onhIu885ukTzBf2iwQoXkxWmSNMN3pzSPodsSh0Sw==","shasum":"34411e6ccce746bea9a52945767dd32a95b0ec60","tarball":"https://registry.npmjs.org/lore-hook-websockets-actioncable/-/lore-hook-websockets-actioncable-0.12.7-rc.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAH5RboRvc/JhDOFRqhGomdgm2AHUXRiOn4hYiHYQwThAiEA37GjzksgUIKnYdq1SEYMGEaYlq3WR/Tumu486fRmuZ4="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-websockets-actioncable-0.12.7-rc.1.tgz_1499638578431_0.7127203366253525"},"directories":{}},"0.13.0-beta.1":{"name":"lore-hook-websockets-actioncable","version":"0.13.0-beta.1","license":"MIT","main":"lib/index.js","description":"A lore hook that add websockets support for the ActionCable implementation in Rails","keywords":["lore","hook","websockets","actioncable","rails"],"scripts":{"build":"npm run build:cjs && npm run build:es","build:cjs":"BABEL_ENV=cjs ../../node_modules/.bin/babel src --out-dir lib","build:es":"BABEL_ENV=es ../../node_modules/.bin/babel src --out-dir es","clean":"rimraf lib && rimraf es","debug":"mocha debug --compilers js:babel-core/register --recursive","lint":"../../node_modules/.bin/eslint src","prepublish":"npm run build","test":"BABEL_ENV=test mocha --compilers js:babel-core/register --recursive"},"dependencies":{"lodash":"^4.0.0","lore-websockets":"^0.13.0-beta.1","pluralize":"1.2.1"},"devDependencies":{"actioncable":"^5.0.0","chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"peerDependencies":{"actioncable":"^5.0.0"},"_id":"lore-hook-websockets-actioncable@0.13.0-beta.1","_npmVersion":"5.4.2","_nodeVersion":"8.5.0","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-f/ow9q/cUcZPsqJ0URIuX4u41YVvjSc78BSc0bKo2wQizK3TvdS2sK/MR6QbfXfFKn8TPaQuip6jXfeMfNTe+g==","shasum":"7ed3940aa9627a34c762b4884eaa530f14386bbd","tarball":"https://registry.npmjs.org/lore-hook-websockets-actioncable/-/lore-hook-websockets-actioncable-0.13.0-beta.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDMSm28GhFlw8WcDy4aRQu+oNfXH7SIn2DE75vIXmB8vAiEA8syim34stnT2lgOterE3BGxFd0H5xKUVHRGh3flMaQE="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-websockets-actioncable-0.13.0-beta.1.tgz_1505764651085_0.07767151156440377"},"directories":{}},"0.13.0-beta.3":{"name":"lore-hook-websockets-actioncable","version":"0.13.0-beta.3","license":"MIT","main":"lib/index.js","module":"es/index.js","description":"A lore hook that add websockets support for the ActionCable implementation in Rails","keywords":["lore","hook","websockets","actioncable","rails"],"scripts":{"build":"npm run build:cjs && npm run build:es","build:cjs":"BABEL_ENV=cjs ../../node_modules/.bin/babel src --out-dir lib","build:es":"BABEL_ENV=es ../../node_modules/.bin/babel src --out-dir es","clean":"rimraf lib && rimraf es","debug":"mocha debug --compilers js:babel-core/register --recursive","lint":"../../node_modules/.bin/eslint src","prepublish":"npm run build","test":"BABEL_ENV=test mocha --compilers js:babel-core/register --recursive"},"dependencies":{"lodash":"^4.0.0","lore-websockets":"^0.13.0-beta.3","pluralize":"1.2.1"},"devDependencies":{"actioncable":"^5.0.0","chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"peerDependencies":{"actioncable":"^5.0.0"},"_id":"lore-hook-websockets-actioncable@0.13.0-beta.3","_npmVersion":"5.4.2","_nodeVersion":"8.5.0","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-pxMDwWZLcnooezjWeBeIVgFtrU3CFJFk/weFblcORBc97y148Y/Mu9xMBd5+bOlRnwriM9sJH4EpEG5rmfwEvg==","shasum":"405f77f54631d503dcad8010f5f42841d151e251","tarball":"https://registry.npmjs.org/lore-hook-websockets-actioncable/-/lore-hook-websockets-actioncable-0.13.0-beta.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDYTq0J2ItNuRACmn27jgc0Kk2YU5RibesTdXp/Xvg7NAIgQEiscIzxssA5cHrQAKnDfvWrwLKQ7jLsKOIwDe+fnnw="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-websockets-actioncable-0.13.0-beta.3.tgz_1505773911283_0.20222969423048198"},"directories":{}},"0.13.0-beta.5":{"name":"lore-hook-websockets-actioncable","version":"0.13.0-beta.5","license":"MIT","main":"lib/index.js","module":"es/index.js","description":"A lore hook that add websockets support for the ActionCable implementation in Rails","keywords":["lore","hook","websockets","actioncable","rails"],"scripts":{"build":"npm run build:cjs && npm run build:es","build:cjs":"BABEL_ENV=cjs ../../node_modules/.bin/babel src --out-dir lib","build:es":"BABEL_ENV=es ../../node_modules/.bin/babel src --out-dir es","clean":"rimraf lib && rimraf es","debug":"mocha debug --compilers js:babel-core/register --recursive","lint":"../../node_modules/.bin/eslint src","prepublish":"npm run build","test":"BABEL_ENV=test mocha --compilers js:babel-core/register --recursive"},"dependencies":{"lodash":"^4.0.0","lore-websockets":"^0.13.0-beta.5","pluralize":"1.2.1"},"devDependencies":{"actioncable":"^5.0.0","chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"peerDependencies":{"actioncable":"^5.0.0"},"_id":"lore-hook-websockets-actioncable@0.13.0-beta.5","_npmVersion":"5.4.2","_nodeVersion":"8.6.0","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-LRYQ7LPhZQNhlvIMlwLgMStVJ4H/WfLjYFytWtY4Zkd1imYuMAuUyH99yiu++Dyj4uWZlp9Os8baYG65YkyNUg==","shasum":"2c134e725e7517ca0e25a2fd2f785d15b98957c6","tarball":"https://registry.npmjs.org/lore-hook-websockets-actioncable/-/lore-hook-websockets-actioncable-0.13.0-beta.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDrsPwUvNvXa4XuWrE0l17n+N9F9Zh+bqz/TC0zkcE8nQIhAPfo2kQLlQa38mmAH16mhLW+9jxnAdH1t56XfYCu4EtE"}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-websockets-actioncable-0.13.0-beta.5.tgz_1510692777520_0.4068450815975666"},"directories":{}},"0.13.0-beta.6":{"name":"lore-hook-websockets-actioncable","version":"0.13.0-beta.6","license":"MIT","main":"lib/index.js","module":"es/index.js","description":"A lore hook that add websockets support for the ActionCable implementation in Rails","keywords":["lore","hook","websockets","actioncable","rails"],"scripts":{"build":"npm run build:cjs && npm run build:es","build:cjs":"BABEL_ENV=cjs ../../node_modules/.bin/babel src --out-dir lib","build:es":"BABEL_ENV=es ../../node_modules/.bin/babel src --out-dir es","clean":"rimraf lib && rimraf es","debug":"mocha debug --compilers js:babel-core/register --recursive","lint":"../../node_modules/.bin/eslint src","prepublish":"npm run build","test":"BABEL_ENV=test mocha --compilers js:babel-core/register --recursive"},"dependencies":{"lodash":"^4.0.0","lore-websockets":"^0.13.0-beta.6","pluralize":"1.2.1"},"devDependencies":{"actioncable":"^5.0.0","chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"peerDependencies":{"actioncable":"^5.0.0"},"_id":"lore-hook-websockets-actioncable@0.13.0-beta.6","_npmVersion":"5.4.2","_nodeVersion":"8.6.0","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-hsWQ41lOciPUy1Ep+FsM5muuLWgG73K3k5uwKN5ByHJYQHIFOzoNjUCQwyH8KFwHen1oOCIsFhdZ5NU9ZIX0Vw==","shasum":"7e88c11d8eae096c8047234a63ebb09d64eb12e6","tarball":"https://registry.npmjs.org/lore-hook-websockets-actioncable/-/lore-hook-websockets-actioncable-0.13.0-beta.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID/5NeUhJLxHqMP2dyqnwvPJIywbiCihM+3w+gyiNqLNAiB/GJ+Q4IT+wBqtGoCugjadikfZQEonVCRjHpIrkltKfQ=="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-websockets-actioncable-0.13.0-beta.6.tgz_1510698385046_0.15933033707551658"},"directories":{}},"0.13.0-beta.7":{"name":"lore-hook-websockets-actioncable","version":"0.13.0-beta.7","license":"MIT","main":"lib/index.js","module":"es/index.js","description":"A lore hook that add websockets support for the ActionCable implementation in Rails","keywords":["lore","hook","websockets","actioncable","rails"],"scripts":{"build":"npm run build:cjs && npm run build:es","build:cjs":"BABEL_ENV=cjs ../../node_modules/.bin/babel src --out-dir lib","build:es":"BABEL_ENV=es ../../node_modules/.bin/babel src --out-dir es","clean":"rimraf lib && rimraf es","debug":"mocha debug --compilers js:babel-core/register --recursive","lint":"../../node_modules/.bin/eslint src","prepublish":"npm run build","test":"BABEL_ENV=test mocha --compilers js:babel-core/register --recursive"},"dependencies":{"lodash":"^4.0.0","lore-websockets":"^0.13.0-beta.7","pluralize":"1.2.1"},"devDependencies":{"actioncable":"^5.0.0","chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"peerDependencies":{"actioncable":"^5.0.0"},"_id":"lore-hook-websockets-actioncable@0.13.0-beta.7","_npmVersion":"5.4.2","_nodeVersion":"8.6.0","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-Q6Xa9nMGfLsxsKKiAEA7obXtlc2349sRaXCzCZDe9zMtzeh1YJzSSPo2Pga8Ui4GhGFH9tbqW7dbfdsNy6lS2w==","shasum":"55635cf60b088e43af99925edf762b64c6444a58","tarball":"https://registry.npmjs.org/lore-hook-websockets-actioncable/-/lore-hook-websockets-actioncable-0.13.0-beta.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDP3+vqkTbUknWu7Q9Tmclb/MSyhtckfHPoM8DvEBSvlwIgdB7oonu6eLt9eGR23e/T+tO3pipDWayfo6ARWL+/58c="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-websockets-actioncable-0.13.0-beta.7.tgz_1510699132879_0.8145496188662946"},"directories":{}},"0.13.0-beta.9":{"name":"lore-hook-websockets-actioncable","version":"0.13.0-beta.9","license":"MIT","main":"lib/index.js","module":"es/index.js","description":"A lore hook that add websockets support for the ActionCable implementation in Rails","keywords":["lore","hook","websockets","actioncable","rails"],"scripts":{"build":"npm run build:cjs && npm run build:es","build:cjs":"BABEL_ENV=cjs ../../node_modules/.bin/babel src --out-dir lib","build:es":"BABEL_ENV=es ../../node_modules/.bin/babel src --out-dir es","clean":"rimraf lib && rimraf es","debug":"mocha debug --compilers js:babel-core/register --recursive","lint":"../../node_modules/.bin/eslint src","prepublish":"npm run build","test":"BABEL_ENV=test mocha --compilers js:babel-core/register --recursive"},"dependencies":{"lodash":"^4.0.0","lore-websockets":"^0.13.0-beta.9","pluralize":"1.2.1"},"devDependencies":{"actioncable":"^5.0.0","chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"peerDependencies":{"actioncable":"^5.0.0"},"_id":"lore-hook-websockets-actioncable@0.13.0-beta.9","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-+DBJr4jcOP8ZTP3T37u2BftXd7COtQ1MoiEynOMXn75dh35HdpHoGyJb6FekIJa720CIFmPGD0kqrIA9Jvw2yw==","shasum":"7b3651d78f5608d67f145f0d75ab990ce70c5d69","tarball":"https://registry.npmjs.org/lore-hook-websockets-actioncable/-/lore-hook-websockets-actioncable-0.13.0-beta.9.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH41P1idP+0iTfkq8bkZ6jb0SdaJ4LDOH7q2SSspphcbAiBvwq7ih9Zcj2jc9xEUAaAVdUITL+uD/pzHhmGzZ2XS2w=="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-websockets-actioncable-0.13.0-beta.9.tgz_1511594314171_0.6622712917160243"},"directories":{}},"0.13.0-beta.10":{"name":"lore-hook-websockets-actioncable","version":"0.13.0-beta.10","license":"MIT","main":"lib/index.js","module":"es/index.js","description":"A lore hook that add websockets support for the ActionCable implementation in Rails","keywords":["lore","hook","websockets","actioncable","rails"],"scripts":{"build":"npm run build:cjs && npm run build:es","build:cjs":"BABEL_ENV=cjs ../../node_modules/.bin/babel src --out-dir lib","build:es":"BABEL_ENV=es ../../node_modules/.bin/babel src --out-dir es","clean":"rimraf lib && rimraf es","debug":"mocha debug --compilers js:babel-core/register --recursive","lint":"../../node_modules/.bin/eslint src","prepublish":"npm run build","test":"BABEL_ENV=test mocha --compilers js:babel-core/register --recursive"},"dependencies":{"lodash":"^4.0.0","lore-websockets":"^0.13.0-beta.10","pluralize":"1.2.1"},"devDependencies":{"actioncable":"^5.0.0","chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"peerDependencies":{"actioncable":"^5.0.0"},"_id":"lore-hook-websockets-actioncable@0.13.0-beta.10","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-EjNwBdOqO9rzvE0xNamBMQGr9RWAq0SXzDiyxlLewi9WWQT4A1T6+ljJXM1Hktc+i0iBBV0fp2uEMi2nogBOHw==","shasum":"5973ec15a0edb594d241d373889d6674f0cff77b","tarball":"https://registry.npmjs.org/lore-hook-websockets-actioncable/-/lore-hook-websockets-actioncable-0.13.0-beta.10.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICD5i8LcyfHsTF6+0cc4P/U6Tn2qRSVPfinBRbnoYQGxAiEAlW12Y6J+95BJCJiadtzer5P/qFf/CSwGCcko4l7nVB8="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-websockets-actioncable-0.13.0-beta.10.tgz_1513286427200_0.08440355979837477"},"directories":{}},"0.13.0-beta.11":{"name":"lore-hook-websockets-actioncable","version":"0.13.0-beta.11","license":"MIT","main":"lib/index.js","module":"es/index.js","description":"A lore hook that add websockets support for the ActionCable implementation in Rails","keywords":["lore","hook","websockets","actioncable","rails"],"scripts":{"build":"npm run build:cjs && npm run build:es","build:cjs":"BABEL_ENV=cjs ../../node_modules/.bin/babel src --out-dir lib","build:es":"BABEL_ENV=es ../../node_modules/.bin/babel src --out-dir es","clean":"rimraf lib && rimraf es","debug":"mocha debug --compilers js:babel-core/register --recursive","lint":"../../node_modules/.bin/eslint src","prepublish":"npm run build","test":"BABEL_ENV=test mocha --compilers js:babel-core/register --recursive"},"dependencies":{"lodash":"^4.0.0","lore-websockets":"^0.13.0-beta.11","pluralize":"1.2.1"},"devDependencies":{"actioncable":"^5.0.0","chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"peerDependencies":{"actioncable":"^5.0.0"},"_id":"lore-hook-websockets-actioncable@0.13.0-beta.11","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-+bdYxKy5xfmBGvvpwGPoPEPr+2PJu7RJcE+LxNmweld/XXKU49Us0bG3UBqLSVQNG2tnp3bAsWPY48rUwCtRGA==","shasum":"7dd2a614883fb5610741bf5dbf114ad10f46e0b7","tarball":"https://registry.npmjs.org/lore-hook-websockets-actioncable/-/lore-hook-websockets-actioncable-0.13.0-beta.11.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD5yUmOWfPI7p6Ob4uPUGbLXsA1sZ5dvw8jbmZOI3D2yAIhAJsbX06zVFGFVEOx+cezJviLRvHgA8M6iUykzUMSOIpv"}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-websockets-actioncable-0.13.0-beta.11.tgz_1513716348672_0.8908773462753743"},"directories":{}},"0.13.0-beta.12":{"name":"lore-hook-websockets-actioncable","version":"0.13.0-beta.12","license":"MIT","main":"lib/index.js","module":"es/index.js","description":"A lore hook that add websockets support for the ActionCable implementation in Rails","keywords":["lore","hook","websockets","actioncable","rails"],"scripts":{"build":"npm run build:cjs && npm run build:es","build:cjs":"BABEL_ENV=cjs ../../node_modules/.bin/babel src --out-dir lib","build:es":"BABEL_ENV=es ../../node_modules/.bin/babel src --out-dir es","clean":"rimraf lib && rimraf es","debug":"mocha debug --compilers js:babel-core/register --recursive","lint":"../../node_modules/.bin/eslint src","prepublish":"npm run build","test":"BABEL_ENV=test mocha --compilers js:babel-core/register --recursive"},"dependencies":{"lodash":"^4.0.0","lore-websockets":"^0.13.0-beta.12","pluralize":"1.2.1"},"devDependencies":{"actioncable":"^5.0.0","chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"peerDependencies":{"actioncable":"^5.0.0"},"readme":"# lore-hook-websockets-actioncable\n\nThe ActionCable hook behaves identical to the SocketIO hook, except for the implementation. The big callout here is the \ninterface that ActionCable uses, which is a bit different than the other two implementations.\n\nInstead of using `namespaces`, ActionCable uses `channels`. I _think_ they're equivalent, but not sure. Meaning \nSocket.io breaks data up into namespaces & rooms, but ActionCable seems to only use one of those (?). I played with \nit only enough to get this to work and see if the interface could adapt to something not based in Node : )\n\n``` js\nvar _ = require('lodash');\nvar WebSocketConnection = require('lore-websockets').WebSocketConnection;\nvar ActionCable = require('actioncable');\n\nmodule.exports = WebSocketConnection.extend({\n\n  // serverUrl: 'http://localhost:1337/cable',\n  // channel: 'PostsChannel',\n\n  connect: function () {\n    this.cable = ActionCable.createConsumer(this.serverUrl);\n  },\n\n  subscribe: function subscribe() {\n    var that = this;\n\n    this.cable.subscriptions.create(this.channel, {\n      connected: function () {\n        console.log('ActionCable:WebSocket - connected!')\n      },\n\n      disconnected: function () {\n        console.log('ActionCable:WebSocket - disconnected!')\n      },\n\n      received: function (data) {\n        that.dispatch(data);\n      }\n    });\n  }\n});\n```\n\n# Usage\n\nTo use any of these hooks, you need to do four things:\n\n1. Install it\n2. Tell Lore about it\n3. Create a configuration file for it\n4. Connect and subscribe to your data\n\n### Install the Desired Hook\n\nIf you have a Sails backend for example, then you'll need to run:\n\n`npm install lore-hook-websockets-sails --save`\n\n### Tell Lore about the Hook\nTo notify Lore about the hook (so it loads it during the build process) modify the `lore.summon` method call in \nyour `index.js` file at the root of the project to look like this:\n\n```\nlore.summon({\n  hooks: {\n    websockets: require('lore-hook-websockets-sails')\n  }\n});\n```\n\n### Create the WebSockets Config File\nLastly, you need to create a file called `websockets.js` in your `/config` folder that looks like this (replacing \nthe serverUrl with the real location of your server):\n\n``` js\n// config/websockets.js\n\nmodule.exports = {\n  serverUrl: 'http://localhost:1337'\n}\n```\n\n### Connect and Subscribe\n\nEach of these hooks create dispatchers for handling messages about created, updated or deleted resources. So if you\nhave models for `post` and `comment`, you'll have corresponding `connect()` and `subscribe()` methods user \n`lore.websockets.post` and `lore.websockets.comment`. Just invoke those methods in your `src/components/Master.js` \ncomponent and you should start seeing data appear.\n\n# Needed Improvements\n\nOverall I think this is a decent first/second pass (first at a generic implementation), but there's a few things that \nneed to be added before it's \"complete\":\n\n1. The example(s) need to be updated to visually display the websocket status, such as when it's connected,\ndisconnected, and reconnecting. This is important as it's fairly standard these days to display connection issues to \nthe user (and a good user experience overall). That will also provide a good test of the expressiveness of the \ninterface and it's ability to integrate into an app with more real-world type concerns.\n\n2. Combining optimistic updates with websockets requires sending a client-generated ID to the server to allow \nlinking the optimistic data to the real data when it comes back. Lore supports that (and it's tested in a non-example \napp), but the configuration isn't exposed in this PR. There needs to be an option to a) send the cid to the server, b) \ncontrol the name of the cid field that's sent (so it doesn't have to be called cid), c) make it optional to send that \nfield, and d) change the generator for that field, so it could be a UUID instead of something like `c1`. Right now that \nbehavior can be obtained by overriding actions, but it would be good to have it supported as a built-in feature.\n\n3. The cascading overrides that are standard for other lore configuration is not yet implemented in the hooks. Meaning,\nthe behavior should be something like:\n   - Start with default hook configuration\n   - Override with conventions\n   - Override with values in config/websockets.js\n   - Override with model-specific values in models/post.js (or whatever model is called)\n\n4. Allow the user to add custom dispatchers and actions by creating a `websockets` folder and places files inside. For\n example, `src/websockets/post/dispatchers/created.js` would be a custom implementation to override the default \n `created` dispatcher. Actions could also be created by placing them inside `src/websockets/post/actions/create.js` \n if you also wanted to perform CRUD actions through the websocket connection (something the hooks might support, but \n not yet). Aside from overriding the defaults, you could also place custom dispatchers and actions there that the \n blueprints wouldn't provide by default.\n","readmeFilename":"README.md","_id":"lore-hook-websockets-actioncable@0.13.0-beta.12","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-hXElFoIn/fPIE4n1JMX0A5Ibs1+Jft0xuRroHg3460k58B0G2LAzPFVImIWFWnPJ2C1sNw4KB5t/caHcs7aZHA==","shasum":"97820ade0796cc905c0ac2997a77d78fb84726b0","tarball":"https://registry.npmjs.org/lore-hook-websockets-actioncable/-/lore-hook-websockets-actioncable-0.13.0-beta.12.tgz","fileCount":9,"unpackedSize":15367,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEWHbvyyA0f9krW8NmAAC0AWDossKsy1P/DEMgP0RQS3AiEAsLRHdInVrIzVT1x5UFCVjS2Ty3KFm0nCCMGAmzxEpBo="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-websockets-actioncable_0.13.0-beta.12_1520214964088_0.46363712543692737"},"_hasShrinkwrap":false},"0.13.0-beta.13":{"name":"lore-hook-websockets-actioncable","version":"0.13.0-beta.13","license":"MIT","main":"lib/index.js","module":"es/index.js","description":"A lore hook that add websockets support for the ActionCable implementation in Rails","keywords":["lore","hook","websockets","actioncable","rails"],"scripts":{"build":"npm run build:cjs && npm run build:es","build:cjs":"BABEL_ENV=cjs ../../node_modules/.bin/babel src --out-dir lib","build:es":"BABEL_ENV=es ../../node_modules/.bin/babel src --out-dir es","clean":"rimraf lib && rimraf es","debug":"mocha debug --compilers js:babel-core/register --recursive","lint":"../../node_modules/.bin/eslint src","prepublish":"npm run build","test":"BABEL_ENV=test mocha --compilers js:babel-core/register --recursive"},"dependencies":{"lodash":"^4.0.0","lore-websockets":"^0.13.0-beta.13","pluralize":"1.2.1"},"devDependencies":{"actioncable":"^5.0.0","chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"peerDependencies":{"actioncable":"^5.0.0"},"readme":"# lore-hook-websockets-actioncable\n\nThe ActionCable hook behaves identical to the SocketIO hook, except for the implementation. The big callout here is the \ninterface that ActionCable uses, which is a bit different than the other two implementations.\n\nInstead of using `namespaces`, ActionCable uses `channels`. I _think_ they're equivalent, but not sure. Meaning \nSocket.io breaks data up into namespaces & rooms, but ActionCable seems to only use one of those (?). I played with \nit only enough to get this to work and see if the interface could adapt to something not based in Node : )\n\n``` js\nvar _ = require('lodash');\nvar WebSocketConnection = require('lore-websockets').WebSocketConnection;\nvar ActionCable = require('actioncable');\n\nmodule.exports = WebSocketConnection.extend({\n\n  // serverUrl: 'http://localhost:1337/cable',\n  // channel: 'PostsChannel',\n\n  connect: function () {\n    this.cable = ActionCable.createConsumer(this.serverUrl);\n  },\n\n  subscribe: function subscribe() {\n    var that = this;\n\n    this.cable.subscriptions.create(this.channel, {\n      connected: function () {\n        console.log('ActionCable:WebSocket - connected!')\n      },\n\n      disconnected: function () {\n        console.log('ActionCable:WebSocket - disconnected!')\n      },\n\n      received: function (data) {\n        that.dispatch(data);\n      }\n    });\n  }\n});\n```\n\n# Usage\n\nTo use any of these hooks, you need to do four things:\n\n1. Install it\n2. Tell Lore about it\n3. Create a configuration file for it\n4. Connect and subscribe to your data\n\n### Install the Desired Hook\n\nIf you have a Sails backend for example, then you'll need to run:\n\n`npm install lore-hook-websockets-sails --save`\n\n### Tell Lore about the Hook\nTo notify Lore about the hook (so it loads it during the build process) modify the `lore.summon` method call in \nyour `index.js` file at the root of the project to look like this:\n\n```\nlore.summon({\n  hooks: {\n    websockets: require('lore-hook-websockets-sails')\n  }\n});\n```\n\n### Create the WebSockets Config File\nLastly, you need to create a file called `websockets.js` in your `/config` folder that looks like this (replacing \nthe serverUrl with the real location of your server):\n\n``` js\n// config/websockets.js\n\nmodule.exports = {\n  serverUrl: 'http://localhost:1337'\n}\n```\n\n### Connect and Subscribe\n\nEach of these hooks create dispatchers for handling messages about created, updated or deleted resources. So if you\nhave models for `post` and `comment`, you'll have corresponding `connect()` and `subscribe()` methods user \n`lore.websockets.post` and `lore.websockets.comment`. Just invoke those methods in your `src/components/Master.js` \ncomponent and you should start seeing data appear.\n\n# Needed Improvements\n\nOverall I think this is a decent first/second pass (first at a generic implementation), but there's a few things that \nneed to be added before it's \"complete\":\n\n1. The example(s) need to be updated to visually display the websocket status, such as when it's connected,\ndisconnected, and reconnecting. This is important as it's fairly standard these days to display connection issues to \nthe user (and a good user experience overall). That will also provide a good test of the expressiveness of the \ninterface and it's ability to integrate into an app with more real-world type concerns.\n\n2. Combining optimistic updates with websockets requires sending a client-generated ID to the server to allow \nlinking the optimistic data to the real data when it comes back. Lore supports that (and it's tested in a non-example \napp), but the configuration isn't exposed in this PR. There needs to be an option to a) send the cid to the server, b) \ncontrol the name of the cid field that's sent (so it doesn't have to be called cid), c) make it optional to send that \nfield, and d) change the generator for that field, so it could be a UUID instead of something like `c1`. Right now that \nbehavior can be obtained by overriding actions, but it would be good to have it supported as a built-in feature.\n\n3. The cascading overrides that are standard for other lore configuration is not yet implemented in the hooks. Meaning,\nthe behavior should be something like:\n   - Start with default hook configuration\n   - Override with conventions\n   - Override with values in config/websockets.js\n   - Override with model-specific values in models/post.js (or whatever model is called)\n\n4. Allow the user to add custom dispatchers and actions by creating a `websockets` folder and places files inside. For\n example, `src/websockets/post/dispatchers/created.js` would be a custom implementation to override the default \n `created` dispatcher. Actions could also be created by placing them inside `src/websockets/post/actions/create.js` \n if you also wanted to perform CRUD actions through the websocket connection (something the hooks might support, but \n not yet). Aside from overriding the defaults, you could also place custom dispatchers and actions there that the \n blueprints wouldn't provide by default.\n","readmeFilename":"README.md","_id":"lore-hook-websockets-actioncable@0.13.0-beta.13","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-Ni9kecsg+gmolTnizYKxXgn77npQ/rq1UdiJ9CImRemNY+Y5awxfkfAJd/KUJ9j1Pd22CFmd9p3zdievmY+Ukg==","shasum":"f6090c117187304aa097561793790135c692534e","tarball":"https://registry.npmjs.org/lore-hook-websockets-actioncable/-/lore-hook-websockets-actioncable-0.13.0-beta.13.tgz","fileCount":9,"unpackedSize":15367,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHbj0oB+sjUbqqSszyM0O2qEu3rofikXu6O6IzJG3mr2AiAqGADENUrDDYo7LGmXbTnwv3VXYrgC6evPh99Wz4fbGw=="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-websockets-actioncable_0.13.0-beta.13_1521940008584_0.10152453617395807"},"_hasShrinkwrap":false},"0.13.0-beta.14":{"name":"lore-hook-websockets-actioncable","version":"0.13.0-beta.14","license":"MIT","main":"lib/index.js","module":"es/index.js","description":"A lore hook that add websockets support for the ActionCable implementation in Rails","keywords":["lore","hook","websockets","actioncable","rails"],"scripts":{"build":"npm run build:cjs && npm run build:es","build:cjs":"BABEL_ENV=cjs ../../node_modules/.bin/babel src --out-dir lib","build:es":"BABEL_ENV=es ../../node_modules/.bin/babel src --out-dir es","clean":"rimraf lib && rimraf es","debug":"mocha debug --compilers js:babel-core/register --recursive","lint":"../../node_modules/.bin/eslint src","prepublish":"npm run build","test":"BABEL_ENV=test mocha --compilers js:babel-core/register --recursive"},"dependencies":{"lodash":"^4.0.0","lore-websockets":"^0.13.0-beta.14","pluralize":"1.2.1"},"devDependencies":{"actioncable":"^5.0.0","chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"peerDependencies":{"actioncable":"^5.0.0"},"readme":"# lore-hook-websockets-actioncable\n\nThe ActionCable hook behaves identical to the SocketIO hook, except for the implementation. The big callout here is the \ninterface that ActionCable uses, which is a bit different than the other two implementations.\n\nInstead of using `namespaces`, ActionCable uses `channels`. I _think_ they're equivalent, but not sure. Meaning \nSocket.io breaks data up into namespaces & rooms, but ActionCable seems to only use one of those (?). I played with \nit only enough to get this to work and see if the interface could adapt to something not based in Node : )\n\n``` js\nvar _ = require('lodash');\nvar WebSocketConnection = require('lore-websockets').WebSocketConnection;\nvar ActionCable = require('actioncable');\n\nmodule.exports = WebSocketConnection.extend({\n\n  // serverUrl: 'http://localhost:1337/cable',\n  // channel: 'PostsChannel',\n\n  connect: function () {\n    this.cable = ActionCable.createConsumer(this.serverUrl);\n  },\n\n  subscribe: function subscribe() {\n    var that = this;\n\n    this.cable.subscriptions.create(this.channel, {\n      connected: function () {\n        console.log('ActionCable:WebSocket - connected!')\n      },\n\n      disconnected: function () {\n        console.log('ActionCable:WebSocket - disconnected!')\n      },\n\n      received: function (data) {\n        that.dispatch(data);\n      }\n    });\n  }\n});\n```\n\n# Usage\n\nTo use any of these hooks, you need to do four things:\n\n1. Install it\n2. Tell Lore about it\n3. Create a configuration file for it\n4. Connect and subscribe to your data\n\n### Install the Desired Hook\n\nIf you have a Sails backend for example, then you'll need to run:\n\n`npm install lore-hook-websockets-sails --save`\n\n### Tell Lore about the Hook\nTo notify Lore about the hook (so it loads it during the build process) modify the `lore.summon` method call in \nyour `index.js` file at the root of the project to look like this:\n\n```\nlore.summon({\n  hooks: {\n    websockets: require('lore-hook-websockets-sails')\n  }\n});\n```\n\n### Create the WebSockets Config File\nLastly, you need to create a file called `websockets.js` in your `/config` folder that looks like this (replacing \nthe serverUrl with the real location of your server):\n\n``` js\n// config/websockets.js\n\nmodule.exports = {\n  serverUrl: 'http://localhost:1337'\n}\n```\n\n### Connect and Subscribe\n\nEach of these hooks create dispatchers for handling messages about created, updated or deleted resources. So if you\nhave models for `post` and `comment`, you'll have corresponding `connect()` and `subscribe()` methods user \n`lore.websockets.post` and `lore.websockets.comment`. Just invoke those methods in your `src/components/Master.js` \ncomponent and you should start seeing data appear.\n\n# Needed Improvements\n\nOverall I think this is a decent first/second pass (first at a generic implementation), but there's a few things that \nneed to be added before it's \"complete\":\n\n1. The example(s) need to be updated to visually display the websocket status, such as when it's connected,\ndisconnected, and reconnecting. This is important as it's fairly standard these days to display connection issues to \nthe user (and a good user experience overall). That will also provide a good test of the expressiveness of the \ninterface and it's ability to integrate into an app with more real-world type concerns.\n\n2. Combining optimistic updates with websockets requires sending a client-generated ID to the server to allow \nlinking the optimistic data to the real data when it comes back. Lore supports that (and it's tested in a non-example \napp), but the configuration isn't exposed in this PR. There needs to be an option to a) send the cid to the server, b) \ncontrol the name of the cid field that's sent (so it doesn't have to be called cid), c) make it optional to send that \nfield, and d) change the generator for that field, so it could be a UUID instead of something like `c1`. Right now that \nbehavior can be obtained by overriding actions, but it would be good to have it supported as a built-in feature.\n\n3. The cascading overrides that are standard for other lore configuration is not yet implemented in the hooks. Meaning,\nthe behavior should be something like:\n   - Start with default hook configuration\n   - Override with conventions\n   - Override with values in config/websockets.js\n   - Override with model-specific values in models/post.js (or whatever model is called)\n\n4. Allow the user to add custom dispatchers and actions by creating a `websockets` folder and places files inside. For\n example, `src/websockets/post/dispatchers/created.js` would be a custom implementation to override the default \n `created` dispatcher. Actions could also be created by placing them inside `src/websockets/post/actions/create.js` \n if you also wanted to perform CRUD actions through the websocket connection (something the hooks might support, but \n not yet). Aside from overriding the defaults, you could also place custom dispatchers and actions there that the \n blueprints wouldn't provide by default.\n","readmeFilename":"README.md","_id":"lore-hook-websockets-actioncable@0.13.0-beta.14","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-J0I2N/VP1eLOme06h/SMtsp3UR9MjXZCyiUhNS++UeW1zke8KBcKZh0YVDqUyMx0ds3394tymJV4LuQF7sEZwA==","shasum":"79add545373f9b99dfc1a021cc12fcf1e8a7ba09","tarball":"https://registry.npmjs.org/lore-hook-websockets-actioncable/-/lore-hook-websockets-actioncable-0.13.0-beta.14.tgz","fileCount":9,"unpackedSize":15367,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDDbs9H90vTv5I54EAt215aEoC0JPoGlKqSmW9EXRwmPQIhAIm0yWxGPK/3ifDpHH7aZir/4faKup+2MxXd7V0pNRk6"}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-websockets-actioncable_0.13.0-beta.14_1522531115443_0.817100341428088"},"_hasShrinkwrap":false},"0.13.0-beta.15":{"name":"lore-hook-websockets-actioncable","version":"0.13.0-beta.15","license":"MIT","main":"lib/index.js","module":"es/index.js","description":"A lore hook that add websockets support for the ActionCable implementation in Rails","keywords":["lore","hook","websockets","actioncable","rails"],"scripts":{"build":"npm run build:cjs && npm run build:es","build:cjs":"BABEL_ENV=cjs ../../node_modules/.bin/babel src --out-dir lib","build:es":"BABEL_ENV=es ../../node_modules/.bin/babel src --out-dir es","clean":"rimraf lib && rimraf es","debug":"mocha debug --compilers js:babel-core/register --recursive","lint":"../../node_modules/.bin/eslint src","prepublish":"npm run build","test":"BABEL_ENV=test mocha --compilers js:babel-core/register --recursive"},"dependencies":{"lodash":"^4.0.0","lore-websockets":"^0.13.0-beta.15","pluralize":"1.2.1"},"devDependencies":{"actioncable":"^5.0.0","chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"peerDependencies":{"actioncable":"^5.0.0"},"readme":"# lore-hook-websockets-actioncable\n\nThe ActionCable hook behaves identical to the SocketIO hook, except for the implementation. The big callout here is the \ninterface that ActionCable uses, which is a bit different than the other two implementations.\n\nInstead of using `namespaces`, ActionCable uses `channels`. I _think_ they're equivalent, but not sure. Meaning \nSocket.io breaks data up into namespaces & rooms, but ActionCable seems to only use one of those (?). I played with \nit only enough to get this to work and see if the interface could adapt to something not based in Node : )\n\n``` js\nvar _ = require('lodash');\nvar WebSocketConnection = require('lore-websockets').WebSocketConnection;\nvar ActionCable = require('actioncable');\n\nmodule.exports = WebSocketConnection.extend({\n\n  // serverUrl: 'http://localhost:1337/cable',\n  // channel: 'PostsChannel',\n\n  connect: function () {\n    this.cable = ActionCable.createConsumer(this.serverUrl);\n  },\n\n  subscribe: function subscribe() {\n    var that = this;\n\n    this.cable.subscriptions.create(this.channel, {\n      connected: function () {\n        console.log('ActionCable:WebSocket - connected!')\n      },\n\n      disconnected: function () {\n        console.log('ActionCable:WebSocket - disconnected!')\n      },\n\n      received: function (data) {\n        that.dispatch(data);\n      }\n    });\n  }\n});\n```\n\n# Usage\n\nTo use any of these hooks, you need to do four things:\n\n1. Install it\n2. Tell Lore about it\n3. Create a configuration file for it\n4. Connect and subscribe to your data\n\n### Install the Desired Hook\n\nIf you have a Sails backend for example, then you'll need to run:\n\n`npm install lore-hook-websockets-sails --save`\n\n### Tell Lore about the Hook\nTo notify Lore about the hook (so it loads it during the build process) modify the `lore.summon` method call in \nyour `index.js` file at the root of the project to look like this:\n\n```\nlore.summon({\n  hooks: {\n    websockets: require('lore-hook-websockets-sails')\n  }\n});\n```\n\n### Create the WebSockets Config File\nLastly, you need to create a file called `websockets.js` in your `/config` folder that looks like this (replacing \nthe serverUrl with the real location of your server):\n\n``` js\n// config/websockets.js\n\nmodule.exports = {\n  serverUrl: 'http://localhost:1337'\n}\n```\n\n### Connect and Subscribe\n\nEach of these hooks create dispatchers for handling messages about created, updated or deleted resources. So if you\nhave models for `post` and `comment`, you'll have corresponding `connect()` and `subscribe()` methods user \n`lore.websockets.post` and `lore.websockets.comment`. Just invoke those methods in your `src/components/Master.js` \ncomponent and you should start seeing data appear.\n\n# Needed Improvements\n\nOverall I think this is a decent first/second pass (first at a generic implementation), but there's a few things that \nneed to be added before it's \"complete\":\n\n1. The example(s) need to be updated to visually display the websocket status, such as when it's connected,\ndisconnected, and reconnecting. This is important as it's fairly standard these days to display connection issues to \nthe user (and a good user experience overall). That will also provide a good test of the expressiveness of the \ninterface and it's ability to integrate into an app with more real-world type concerns.\n\n2. Combining optimistic updates with websockets requires sending a client-generated ID to the server to allow \nlinking the optimistic data to the real data when it comes back. Lore supports that (and it's tested in a non-example \napp), but the configuration isn't exposed in this PR. There needs to be an option to a) send the cid to the server, b) \ncontrol the name of the cid field that's sent (so it doesn't have to be called cid), c) make it optional to send that \nfield, and d) change the generator for that field, so it could be a UUID instead of something like `c1`. Right now that \nbehavior can be obtained by overriding actions, but it would be good to have it supported as a built-in feature.\n\n3. The cascading overrides that are standard for other lore configuration is not yet implemented in the hooks. Meaning,\nthe behavior should be something like:\n   - Start with default hook configuration\n   - Override with conventions\n   - Override with values in config/websockets.js\n   - Override with model-specific values in models/post.js (or whatever model is called)\n\n4. Allow the user to add custom dispatchers and actions by creating a `websockets` folder and places files inside. For\n example, `src/websockets/post/dispatchers/created.js` would be a custom implementation to override the default \n `created` dispatcher. Actions could also be created by placing them inside `src/websockets/post/actions/create.js` \n if you also wanted to perform CRUD actions through the websocket connection (something the hooks might support, but \n not yet). Aside from overriding the defaults, you could also place custom dispatchers and actions there that the \n blueprints wouldn't provide by default.\n","readmeFilename":"README.md","_id":"lore-hook-websockets-actioncable@0.13.0-beta.15","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-uVdfnfqRDJGhU/g3C6BmXKHuSYn5w27hmfAFcB2+5ZUPhmXhnGThMe93DN3GD+l/C3zRk380BLAeQkkED3WlFA==","shasum":"22e2b5bd153ca78c9f620fd583fabc6974d575a6","tarball":"https://registry.npmjs.org/lore-hook-websockets-actioncable/-/lore-hook-websockets-actioncable-0.13.0-beta.15.tgz","fileCount":9,"unpackedSize":15367,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC/YHFhpL39yuBJbwIAQIcxhOSOVH02x8Qrj8gNJYKZPwIhAJ5bOxIHOd+a1TRUb2jEaMdNi4wEZ7TBTMufnQR74ApX"}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-websockets-actioncable_0.13.0-beta.15_1523329175131_0.6978226522468856"},"_hasShrinkwrap":false},"0.13.0-beta.16":{"name":"lore-hook-websockets-actioncable","version":"0.13.0-beta.16","license":"MIT","main":"lib/index.js","module":"es/index.js","description":"A lore hook that add websockets support for the ActionCable implementation in Rails","keywords":["lore","hook","websockets","actioncable","rails"],"scripts":{"build":"npm run build:cjs && npm run build:es","build:cjs":"BABEL_ENV=cjs ../../node_modules/.bin/babel src --out-dir lib","build:es":"BABEL_ENV=es ../../node_modules/.bin/babel src --out-dir es","clean":"rimraf lib && rimraf es","debug":"mocha debug --compilers js:babel-core/register --recursive","lint":"../../node_modules/.bin/eslint src","prepublish":"npm run build","test":"BABEL_ENV=test mocha --compilers js:babel-core/register --recursive"},"dependencies":{"lodash":"^4.0.0","lore-websockets":"^0.13.0-beta.16","pluralize":"1.2.1"},"devDependencies":{"actioncable":"^5.0.0","chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"peerDependencies":{"actioncable":"^5.0.0"},"readme":"# lore-hook-websockets-actioncable\n\nThe ActionCable hook behaves identical to the SocketIO hook, except for the implementation. The big callout here is the \ninterface that ActionCable uses, which is a bit different than the other two implementations.\n\nInstead of using `namespaces`, ActionCable uses `channels`. I _think_ they're equivalent, but not sure. Meaning \nSocket.io breaks data up into namespaces & rooms, but ActionCable seems to only use one of those (?). I played with \nit only enough to get this to work and see if the interface could adapt to something not based in Node : )\n\n``` js\nvar _ = require('lodash');\nvar WebSocketConnection = require('lore-websockets').WebSocketConnection;\nvar ActionCable = require('actioncable');\n\nmodule.exports = WebSocketConnection.extend({\n\n  // serverUrl: 'http://localhost:1337/cable',\n  // channel: 'PostsChannel',\n\n  connect: function () {\n    this.cable = ActionCable.createConsumer(this.serverUrl);\n  },\n\n  subscribe: function subscribe() {\n    var that = this;\n\n    this.cable.subscriptions.create(this.channel, {\n      connected: function () {\n        console.log('ActionCable:WebSocket - connected!')\n      },\n\n      disconnected: function () {\n        console.log('ActionCable:WebSocket - disconnected!')\n      },\n\n      received: function (data) {\n        that.dispatch(data);\n      }\n    });\n  }\n});\n```\n\n# Usage\n\nTo use any of these hooks, you need to do four things:\n\n1. Install it\n2. Tell Lore about it\n3. Create a configuration file for it\n4. Connect and subscribe to your data\n\n### Install the Desired Hook\n\nIf you have a Sails backend for example, then you'll need to run:\n\n`npm install lore-hook-websockets-sails --save`\n\n### Tell Lore about the Hook\nTo notify Lore about the hook (so it loads it during the build process) modify the `lore.summon` method call in \nyour `index.js` file at the root of the project to look like this:\n\n```\nlore.summon({\n  hooks: {\n    websockets: require('lore-hook-websockets-sails')\n  }\n});\n```\n\n### Create the WebSockets Config File\nLastly, you need to create a file called `websockets.js` in your `/config` folder that looks like this (replacing \nthe serverUrl with the real location of your server):\n\n``` js\n// config/websockets.js\n\nmodule.exports = {\n  serverUrl: 'http://localhost:1337'\n}\n```\n\n### Connect and Subscribe\n\nEach of these hooks create dispatchers for handling messages about created, updated or deleted resources. So if you\nhave models for `post` and `comment`, you'll have corresponding `connect()` and `subscribe()` methods user \n`lore.websockets.post` and `lore.websockets.comment`. Just invoke those methods in your `src/components/Master.js` \ncomponent and you should start seeing data appear.\n\n# Needed Improvements\n\nOverall I think this is a decent first/second pass (first at a generic implementation), but there's a few things that \nneed to be added before it's \"complete\":\n\n1. The example(s) need to be updated to visually display the websocket status, such as when it's connected,\ndisconnected, and reconnecting. This is important as it's fairly standard these days to display connection issues to \nthe user (and a good user experience overall). That will also provide a good test of the expressiveness of the \ninterface and it's ability to integrate into an app with more real-world type concerns.\n\n2. Combining optimistic updates with websockets requires sending a client-generated ID to the server to allow \nlinking the optimistic data to the real data when it comes back. Lore supports that (and it's tested in a non-example \napp), but the configuration isn't exposed in this PR. There needs to be an option to a) send the cid to the server, b) \ncontrol the name of the cid field that's sent (so it doesn't have to be called cid), c) make it optional to send that \nfield, and d) change the generator for that field, so it could be a UUID instead of something like `c1`. Right now that \nbehavior can be obtained by overriding actions, but it would be good to have it supported as a built-in feature.\n\n3. The cascading overrides that are standard for other lore configuration is not yet implemented in the hooks. Meaning,\nthe behavior should be something like:\n   - Start with default hook configuration\n   - Override with conventions\n   - Override with values in config/websockets.js\n   - Override with model-specific values in models/post.js (or whatever model is called)\n\n4. Allow the user to add custom dispatchers and actions by creating a `websockets` folder and places files inside. For\n example, `src/websockets/post/dispatchers/created.js` would be a custom implementation to override the default \n `created` dispatcher. Actions could also be created by placing them inside `src/websockets/post/actions/create.js` \n if you also wanted to perform CRUD actions through the websocket connection (something the hooks might support, but \n not yet). Aside from overriding the defaults, you could also place custom dispatchers and actions there that the \n blueprints wouldn't provide by default.\n","readmeFilename":"README.md","_id":"lore-hook-websockets-actioncable@0.13.0-beta.16","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-5nkNp6lETAmuPFD/lsIqeFo4Ri/T/KrtAJqg6I9U/HRGzZbSZP6imLj507BZVFy36mXK71TiLRUSWra3YgXfoQ==","shasum":"2d0b548a34ecc437fba701610236ae725019a611","tarball":"https://registry.npmjs.org/lore-hook-websockets-actioncable/-/lore-hook-websockets-actioncable-0.13.0-beta.16.tgz","fileCount":9,"unpackedSize":15367,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa4kK2CRA9TVsSAnZWagAA6G8P/2koDdgmJsLuHtjp6Lmt\n/7JSfPAodJqmPP1k7A05SvQ930c9UtBJrmPZ3g7XXXAB2qL1DJOoUoaRg4KS\nFsfuHDK2wrnRagWeY1UvWE3DM4xan8iKUPz2XvlUM2X/lA+JK2SDDjqSBhyG\n/IBSkIthkBRYEEuDc68bLvMgHAjlLXi4Np+Mifpq627AjCUry34ONYJr21ny\nMym/ApXEIYX3f0OFVXUmdi7bWb9IkpMNZHL1JBw3rwIqyYlsf3kU2VgwqlyJ\nMMOi3wqGSIJTGBXjXyFrVZrqXcEn6KzTCLgGyuoNtdPGI4RZ5PAP6mWBRvsR\n5xSdXrOVxFhUoT8YUgoKEDN39CSrvuR9k2HMxykd+8lTZPZSnRiRC+WKPaQx\nyRo/LRlr2fdiMsDXfXEFLtS5nfhUy7/UNqv8QFHZNHYIk8x9TSRrTqnKsLwt\nbMnG4KQkrJ0NhCj0CXJC+UtkZ6UBZPxUQC/OZ2dswHsAJl7qqhZkS1HThSNw\n8EnZX87XqRK81JYKqdWem5rqoaDE8g+kYefO2PIG6mRoXxn5WyniWJjW/RiJ\nRBaQ2at6YcdDGJ6guqipS2oijshJy7tc3bR995XXTy0vzJWOvy6wcBU0tpSF\naYYyJ/CKHYs+yit5viNFzooqMEa7HoB055AOXkR4+ftbbNKpSqL/ifgILj2g\nqDj0\r\n=1lo2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAP2bq68MrAmXpxwCCkGrNpfJm/XTxCWotKNoELcARIUAiEA9GBJUyhennSwuvjHnNEX9E8RsPUC0n0o0rMQouIFP5w="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-websockets-actioncable_0.13.0-beta.16_1524777653627_0.8881477859790496"},"_hasShrinkwrap":false},"0.13.0-rc.1":{"name":"lore-hook-websockets-actioncable","version":"0.13.0-rc.1","license":"MIT","main":"lib/index.js","module":"es/index.js","description":"A lore hook that add websockets support for the ActionCable implementation in Rails","keywords":["lore","hook","websockets","actioncable","rails"],"scripts":{"build":"npm run build:cjs && npm run build:es","build:cjs":"BABEL_ENV=cjs ../../node_modules/.bin/babel src --out-dir lib","build:es":"BABEL_ENV=es ../../node_modules/.bin/babel src --out-dir es","clean":"rimraf lib && rimraf es","debug":"mocha debug --compilers js:babel-core/register --recursive","lint":"../../node_modules/.bin/eslint src","prepublish":"npm run build","test":"BABEL_ENV=test mocha --compilers js:babel-core/register --recursive"},"dependencies":{"lodash":"^4.0.0","lore-websockets":"^0.13.0-rc.1","pluralize":"1.2.1"},"devDependencies":{"actioncable":"^5.0.0","chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"peerDependencies":{"actioncable":"^5.0.0"},"readme":"# lore-hook-websockets-actioncable\n\nThe ActionCable hook behaves identical to the SocketIO hook, except for the implementation. The big callout here is the \ninterface that ActionCable uses, which is a bit different than the other two implementations.\n\nInstead of using `namespaces`, ActionCable uses `channels`. I _think_ they're equivalent, but not sure. Meaning \nSocket.io breaks data up into namespaces & rooms, but ActionCable seems to only use one of those (?). I played with \nit only enough to get this to work and see if the interface could adapt to something not based in Node : )\n\n``` js\nvar _ = require('lodash');\nvar WebSocketConnection = require('lore-websockets').WebSocketConnection;\nvar ActionCable = require('actioncable');\n\nmodule.exports = WebSocketConnection.extend({\n\n  // serverUrl: 'http://localhost:1337/cable',\n  // channel: 'PostsChannel',\n\n  connect: function () {\n    this.cable = ActionCable.createConsumer(this.serverUrl);\n  },\n\n  subscribe: function subscribe() {\n    var that = this;\n\n    this.cable.subscriptions.create(this.channel, {\n      connected: function () {\n        console.log('ActionCable:WebSocket - connected!')\n      },\n\n      disconnected: function () {\n        console.log('ActionCable:WebSocket - disconnected!')\n      },\n\n      received: function (data) {\n        that.dispatch(data);\n      }\n    });\n  }\n});\n```\n\n# Usage\n\nTo use any of these hooks, you need to do four things:\n\n1. Install it\n2. Tell Lore about it\n3. Create a configuration file for it\n4. Connect and subscribe to your data\n\n### Install the Desired Hook\n\nIf you have a Sails backend for example, then you'll need to run:\n\n`npm install lore-hook-websockets-sails --save`\n\n### Tell Lore about the Hook\nTo notify Lore about the hook (so it loads it during the build process) modify the `lore.summon` method call in \nyour `index.js` file at the root of the project to look like this:\n\n```\nlore.summon({\n  hooks: {\n    websockets: require('lore-hook-websockets-sails')\n  }\n});\n```\n\n### Create the WebSockets Config File\nLastly, you need to create a file called `websockets.js` in your `/config` folder that looks like this (replacing \nthe serverUrl with the real location of your server):\n\n``` js\n// config/websockets.js\n\nmodule.exports = {\n  serverUrl: 'http://localhost:1337'\n}\n```\n\n### Connect and Subscribe\n\nEach of these hooks create dispatchers for handling messages about created, updated or deleted resources. So if you\nhave models for `post` and `comment`, you'll have corresponding `connect()` and `subscribe()` methods user \n`lore.websockets.post` and `lore.websockets.comment`. Just invoke those methods in your `src/components/Master.js` \ncomponent and you should start seeing data appear.\n\n# Needed Improvements\n\nOverall I think this is a decent first/second pass (first at a generic implementation), but there's a few things that \nneed to be added before it's \"complete\":\n\n1. The example(s) need to be updated to visually display the websocket status, such as when it's connected,\ndisconnected, and reconnecting. This is important as it's fairly standard these days to display connection issues to \nthe user (and a good user experience overall). That will also provide a good test of the expressiveness of the \ninterface and it's ability to integrate into an app with more real-world type concerns.\n\n2. Combining optimistic updates with websockets requires sending a client-generated ID to the server to allow \nlinking the optimistic data to the real data when it comes back. Lore supports that (and it's tested in a non-example \napp), but the configuration isn't exposed in this PR. There needs to be an option to a) send the cid to the server, b) \ncontrol the name of the cid field that's sent (so it doesn't have to be called cid), c) make it optional to send that \nfield, and d) change the generator for that field, so it could be a UUID instead of something like `c1`. Right now that \nbehavior can be obtained by overriding actions, but it would be good to have it supported as a built-in feature.\n\n3. The cascading overrides that are standard for other lore configuration is not yet implemented in the hooks. Meaning,\nthe behavior should be something like:\n   - Start with default hook configuration\n   - Override with conventions\n   - Override with values in config/websockets.js\n   - Override with model-specific values in models/post.js (or whatever model is called)\n\n4. Allow the user to add custom dispatchers and actions by creating a `websockets` folder and places files inside. For\n example, `src/websockets/post/dispatchers/created.js` would be a custom implementation to override the default \n `created` dispatcher. Actions could also be created by placing them inside `src/websockets/post/actions/create.js` \n if you also wanted to perform CRUD actions through the websocket connection (something the hooks might support, but \n not yet). Aside from overriding the defaults, you could also place custom dispatchers and actions there that the \n blueprints wouldn't provide by default.\n","readmeFilename":"README.md","_id":"lore-hook-websockets-actioncable@0.13.0-rc.1","_npmVersion":"6.0.1","_nodeVersion":"8.11.1","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-+8aeIuEN0Jj2YXMt6lFRJ4+bGDS5mTy6NRcGyuOgB7chb8dXLr4+U70hx4dslEecK1t9wF7BuKPeZl8WLCUTJw==","shasum":"c76152ad8d699bf56ed2b26a77cc43720c2c1a37","tarball":"https://registry.npmjs.org/lore-hook-websockets-actioncable/-/lore-hook-websockets-actioncable-0.13.0-rc.1.tgz","fileCount":9,"unpackedSize":15361,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa+Ic0CRA9TVsSAnZWagAA5+0QAIFk01JuErjv5Wyi2hCm\nn21CoFWlIF/XfQH/2SrkNO47kNyD6kEYXEnv5vPyY0JMGbph3MlZXZxozFZy\nL9HdmmRBKYBulW7AzWb5ya8nt3SNDQTK/h+CGimOzRnt+gkU4GAhu7cWmGJ+\nv7fPVi9Kr4BRK2GjaCUPV5No+9HvJz+v7XVBJKBUAr1DPqKX6QwMKliRGfbb\n/c8yXc2F3ftfiinvtN6RmCorUTJScy5I76vmiA0J37IGa7iIXKZomNF8er1x\nXowgqEWj/pxIY+O0PbOku3vedMm/dH42q5Jk6patBVr8O1pP0GyXJxro/GdX\n1elf3D/Ftry+jSgiexfGSigWVY+VPrhUwhMIPCn4e7dgcmHkl3ojYxsGHJ55\nM+OrDtZpbWQwXCrFsDkwujQFPpKfyyLK3QrQbbfmLCKURA7Qh8ZBvMpNWqg0\niEBKn8eGTB4VvpnkgIieOJRlX/POpUINcVFDAFxh2D1uM0VTldEYM0Tdyczw\n5MotMQewZI6Iqf1BQi8iyfRLrlWzTbGEhUutuK+6NqF3XYNM6mML5/+i2glI\nzdOG7Q2KJZpLjeypzr0BGfUdx1y+Tbj/DgA+C2pmqLjg6v8//wuCOI0jaib/\nvDoO6YXRanwc060ndWKCuGpKRhBjXiwoGSJS4pTy0jdyuhP5Z9QgT67Zov/+\nReTD\r\n=wSY5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICBZN2Nc6VSvtBvgUEUqgRsFg3eb/h03Mc0UeEMwSoIAAiEAyTQP+j4ZhS1sAAMRUW5yrBYtM5/fyvL2lZaImVjf60M="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-websockets-actioncable_0.13.0-rc.1_1526236979604_0.7536494520502521"},"_hasShrinkwrap":false},"0.13.0-rc.2":{"name":"lore-hook-websockets-actioncable","version":"0.13.0-rc.2","license":"MIT","main":"lib/index.js","module":"es/index.js","description":"A lore hook that add websockets support for the ActionCable implementation in Rails","keywords":["lore","hook","websockets","actioncable","rails"],"scripts":{"build":"npm run build:cjs && npm run build:es","build:cjs":"BABEL_ENV=cjs ../../node_modules/.bin/babel src --out-dir lib","build:es":"BABEL_ENV=es ../../node_modules/.bin/babel src --out-dir es","clean":"rimraf lib && rimraf es","debug":"mocha debug --compilers js:babel-core/register --recursive","lint":"../../node_modules/.bin/eslint src","prepublish":"npm run build","test":"BABEL_ENV=test mocha --compilers js:babel-core/register --recursive"},"dependencies":{"lodash":"^4.0.0","lore-websockets":"^0.13.0-rc.2","pluralize":"1.2.1"},"devDependencies":{"actioncable":"^5.0.0","chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"peerDependencies":{"actioncable":"^5.0.0"},"readme":"# lore-hook-websockets-actioncable\n\nThe ActionCable hook behaves identical to the SocketIO hook, except for the implementation. The big callout here is the \ninterface that ActionCable uses, which is a bit different than the other two implementations.\n\nInstead of using `namespaces`, ActionCable uses `channels`. I _think_ they're equivalent, but not sure. Meaning \nSocket.io breaks data up into namespaces & rooms, but ActionCable seems to only use one of those (?). I played with \nit only enough to get this to work and see if the interface could adapt to something not based in Node : )\n\n``` js\nvar _ = require('lodash');\nvar WebSocketConnection = require('lore-websockets').WebSocketConnection;\nvar ActionCable = require('actioncable');\n\nmodule.exports = WebSocketConnection.extend({\n\n  // serverUrl: 'http://localhost:1337/cable',\n  // channel: 'PostsChannel',\n\n  connect: function () {\n    this.cable = ActionCable.createConsumer(this.serverUrl);\n  },\n\n  subscribe: function subscribe() {\n    var that = this;\n\n    this.cable.subscriptions.create(this.channel, {\n      connected: function () {\n        console.log('ActionCable:WebSocket - connected!')\n      },\n\n      disconnected: function () {\n        console.log('ActionCable:WebSocket - disconnected!')\n      },\n\n      received: function (data) {\n        that.dispatch(data);\n      }\n    });\n  }\n});\n```\n\n# Usage\n\nTo use any of these hooks, you need to do four things:\n\n1. Install it\n2. Tell Lore about it\n3. Create a configuration file for it\n4. Connect and subscribe to your data\n\n### Install the Desired Hook\n\nIf you have a Sails backend for example, then you'll need to run:\n\n`npm install lore-hook-websockets-sails --save`\n\n### Tell Lore about the Hook\nTo notify Lore about the hook (so it loads it during the build process) modify the `lore.summon` method call in \nyour `index.js` file at the root of the project to look like this:\n\n```\nlore.summon({\n  hooks: {\n    websockets: require('lore-hook-websockets-sails')\n  }\n});\n```\n\n### Create the WebSockets Config File\nLastly, you need to create a file called `websockets.js` in your `/config` folder that looks like this (replacing \nthe serverUrl with the real location of your server):\n\n``` js\n// config/websockets.js\n\nmodule.exports = {\n  serverUrl: 'http://localhost:1337'\n}\n```\n\n### Connect and Subscribe\n\nEach of these hooks create dispatchers for handling messages about created, updated or deleted resources. So if you\nhave models for `post` and `comment`, you'll have corresponding `connect()` and `subscribe()` methods user \n`lore.websockets.post` and `lore.websockets.comment`. Just invoke those methods in your `src/components/Master.js` \ncomponent and you should start seeing data appear.\n\n# Needed Improvements\n\nOverall I think this is a decent first/second pass (first at a generic implementation), but there's a few things that \nneed to be added before it's \"complete\":\n\n1. The example(s) need to be updated to visually display the websocket status, such as when it's connected,\ndisconnected, and reconnecting. This is important as it's fairly standard these days to display connection issues to \nthe user (and a good user experience overall). That will also provide a good test of the expressiveness of the \ninterface and it's ability to integrate into an app with more real-world type concerns.\n\n2. Combining optimistic updates with websockets requires sending a client-generated ID to the server to allow \nlinking the optimistic data to the real data when it comes back. Lore supports that (and it's tested in a non-example \napp), but the configuration isn't exposed in this PR. There needs to be an option to a) send the cid to the server, b) \ncontrol the name of the cid field that's sent (so it doesn't have to be called cid), c) make it optional to send that \nfield, and d) change the generator for that field, so it could be a UUID instead of something like `c1`. Right now that \nbehavior can be obtained by overriding actions, but it would be good to have it supported as a built-in feature.\n\n3. The cascading overrides that are standard for other lore configuration is not yet implemented in the hooks. Meaning,\nthe behavior should be something like:\n   - Start with default hook configuration\n   - Override with conventions\n   - Override with values in config/websockets.js\n   - Override with model-specific values in models/post.js (or whatever model is called)\n\n4. Allow the user to add custom dispatchers and actions by creating a `websockets` folder and places files inside. For\n example, `src/websockets/post/dispatchers/created.js` would be a custom implementation to override the default \n `created` dispatcher. Actions could also be created by placing them inside `src/websockets/post/actions/create.js` \n if you also wanted to perform CRUD actions through the websocket connection (something the hooks might support, but \n not yet). Aside from overriding the defaults, you could also place custom dispatchers and actions there that the \n blueprints wouldn't provide by default.\n","readmeFilename":"README.md","_id":"lore-hook-websockets-actioncable@0.13.0-rc.2","_npmVersion":"6.0.1","_nodeVersion":"8.11.1","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-B0ylJAS+xV+de1L2UCE6S4eHbXahVo1+lKFCpJv8UhuUlXcAFa3b5Lvykom/L/ZJprsb2cIolvnxbV6GgYU/Tw==","shasum":"3e955a46cf15fa4a05dab4eaacb541c75a0af13c","tarball":"https://registry.npmjs.org/lore-hook-websockets-actioncable/-/lore-hook-websockets-actioncable-0.13.0-rc.2.tgz","fileCount":9,"unpackedSize":15361,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbAhMhCRA9TVsSAnZWagAARO0P/2CyuVykoz3iKI302+y9\nv7skV9U2E60uGDqLOJ4gndjabaT/BVU9XyuJDcuQqIXUWKz5oFoSwo/1etYa\nLp2Ca1tc1awpRCdQtaB2n3t2EA5ReIiM0rXRgWbdxSD0LlJuNuehFI+CcsGE\nSvzydkc8Wuy/A9pKvh1v5Bma8C5AFwpzo33hq0kSgn15OEZ6U+FcpW7wB+F1\nZUdb3xvUCEP8foDsGc+8Wq3Oyf5uQK+esR0Mpt1W4mwhoW32nLxR2XgyCctv\n1qJoijBoEJFJryO+IhF0rZCrdJVsRh8rwrb49qa90RSwquPy/GG1KMiavPAa\naIHeU587wlLqgwVTOsZhDN28LWpgCY+B5Y1HCzI3aoV7X66hu8oW5oM/vKLe\nb3ugeG8lS8CcwZFXkoT7xKM3fdbvuhn9g3mvQhpOmmxBM6UTKOVPkIcrabkK\noFbZZA/E3pH4t7INEfN7xYqk8wWWewJJxp9ToG1bSIQba11lPs9h56wR1b/R\nKwzjc5BjmfmmTM4O/e7Js2jJ1j3bIA3oQeP5dYV2whqU9oqRqv+6Ym0PWszt\n30NytIPucnnOgY9X7p16FryXmAg1LmbUC4uY9d5O6tiRvvODcK77GHZIeg83\nF9ifmeVhD/UmbF12/tewbomLB+Xa+wNtTK5G051XeG2/5yR0LruIfJfrqdu8\nvyrU\r\n=7zK+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBndT/NLsbxWjU+qyP+y+cCdwjKBJA7a4PxMILwasn/0AiEAp1dh2cg7xwu5s4Ndmne/oHRj0X3zPDRaKOM+uAywjcw="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-websockets-actioncable_0.13.0-rc.2_1526862625459_0.35752199662523854"},"_hasShrinkwrap":false},"0.13.0":{"name":"lore-hook-websockets-actioncable","version":"0.13.0","license":"MIT","main":"lib/index.js","module":"es/index.js","description":"A lore hook that add websockets support for the ActionCable implementation in Rails","keywords":["lore","hook","websockets","actioncable","rails"],"scripts":{"build":"npm run build:cjs && npm run build:es","build:cjs":"BABEL_ENV=cjs ../../node_modules/.bin/babel src --out-dir lib","build:es":"BABEL_ENV=es ../../node_modules/.bin/babel src --out-dir es","clean":"rimraf lib && rimraf es","debug":"mocha debug --compilers js:babel-core/register --recursive","lint":"../../node_modules/.bin/eslint src","prepublish":"npm run build","test":"BABEL_ENV=test mocha --compilers js:babel-core/register --recursive"},"dependencies":{"lodash":"^4.0.0","lore-websockets":"^0.13.0","pluralize":"1.2.1"},"devDependencies":{"actioncable":"^5.0.0","chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"peerDependencies":{"actioncable":"^5.0.0"},"_id":"lore-hook-websockets-actioncable@0.13.0","_npmVersion":"6.0.1","_nodeVersion":"8.11.1","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-P7kBq6jbrxe3kIihD//RMjz7uydmA3H4tpVgMLOHarfxhTXABRZqqdDTu+zlf2kum5yQC0RD09DMxhXsFtEAIw==","shasum":"d38b4c18ae4fb16231744e31ab209464ee23f6ed","tarball":"https://registry.npmjs.org/lore-hook-websockets-actioncable/-/lore-hook-websockets-actioncable-0.13.0.tgz","fileCount":9,"unpackedSize":15351,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbLvkcCRA9TVsSAnZWagAAaMQQAJnHYE6Dzb3gr/+Yr5QB\nx3Hud76MRzwE418E5SWOwyz/V03g8rpwTEIQ3d7gomkBLxERPlqspMkVBGmN\nnplEMRNVnp7Uw9BrOPMOrSiSl33z7DH0knFbKrTUsx8URige03mwCflzOjsI\nupTdkXnuu7usGW/oFFdnhI9cBbFheTIy2kXIbCvVB/NIrDiFZk39KS3ohbnw\nuKD+aO4sTg5UHTphoRcuRbPuF6qgCx4C9J5Z702QAw/p0t52J45qo/ymjq0+\nUrxcwmP9pclWNLfEWOOjSfsno3FZ5OLQuBRoQGEw3n5PHSVTz26ox3lGG6uh\nAR3Ahiwf/CjS8R4pa8j1AnQbwUUspwwScXKfJNG2q6SG72SUlLrZOglorHyz\nIuRVKRF0Yxp1i5AQFF+d153jpuG4Lh+pghCH38ixys9ixYvRZIc4AuQP91Hg\nzEIiGyq0PPa5rDArWmN2/yVFUUcc0PtOfSJJmeYDI6g/6NWRwiIijBssgFnx\njhUGzcATIF0w9FiHPIFg9w4N5pssvVeL/fX6rGELqHTGdjRvbC3DzV5Jn3lx\nPPGsFYqGHYPod002V/sCNkhQVUq720kEU4oCTtY+XLYTlZ0whTR3RTybzZkK\nCpJjTSh/MeFrrC18p9nRGGxJtXUcm+pGDLAQafeeiElZtUqina0end1DLLkO\nqyWT\r\n=kJT1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGFzFbAyl3OEevHxK4G7FrWjXbOfQeg7No+Hcg5YjbCtAiBqI5/QuEdV4eSmUamQqmI1Ij3OUJOmfPvINnkgCle30g=="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-websockets-actioncable_0.13.0_1529805084114_0.9907534692445161"},"_hasShrinkwrap":false}},"readme":"# lore-hook-websockets-actioncable\n\nThe ActionCable hook behaves identical to the SocketIO hook, except for the implementation. The big callout here is the \ninterface that ActionCable uses, which is a bit different than the other two implementations.\n\nInstead of using `namespaces`, ActionCable uses `channels`. I _think_ they're equivalent, but not sure. Meaning \nSocket.io breaks data up into namespaces & rooms, but ActionCable seems to only use one of those (?). I played with \nit only enough to get this to work and see if the interface could adapt to something not based in Node : )\n\n``` js\nvar _ = require('lodash');\nvar WebSocketConnection = require('lore-websockets').WebSocketConnection;\nvar ActionCable = require('actioncable');\n\nmodule.exports = WebSocketConnection.extend({\n\n  // serverUrl: 'http://localhost:1337/cable',\n  // channel: 'PostsChannel',\n\n  connect: function () {\n    this.cable = ActionCable.createConsumer(this.serverUrl);\n  },\n\n  subscribe: function subscribe() {\n    var that = this;\n\n    this.cable.subscriptions.create(this.channel, {\n      connected: function () {\n        console.log('ActionCable:WebSocket - connected!')\n      },\n\n      disconnected: function () {\n        console.log('ActionCable:WebSocket - disconnected!')\n      },\n\n      received: function (data) {\n        that.dispatch(data);\n      }\n    });\n  }\n});\n```\n\n# Usage\n\nTo use any of these hooks, you need to do four things:\n\n1. Install it\n2. Tell Lore about it\n3. Create a configuration file for it\n4. Connect and subscribe to your data\n\n### Install the Desired Hook\n\nIf you have a Sails backend for example, then you'll need to run:\n\n`npm install lore-hook-websockets-sails --save`\n\n### Tell Lore about the Hook\nTo notify Lore about the hook (so it loads it during the build process) modify the `lore.summon` method call in \nyour `index.js` file at the root of the project to look like this:\n\n```\nlore.summon({\n  hooks: {\n    websockets: require('lore-hook-websockets-sails')\n  }\n});\n```\n\n### Create the WebSockets Config File\nLastly, you need to create a file called `websockets.js` in your `/config` folder that looks like this (replacing \nthe serverUrl with the real location of your server):\n\n``` js\n// config/websockets.js\n\nmodule.exports = {\n  serverUrl: 'http://localhost:1337'\n}\n```\n\n### Connect and Subscribe\n\nEach of these hooks create dispatchers for handling messages about created, updated or deleted resources. So if you\nhave models for `post` and `comment`, you'll have corresponding `connect()` and `subscribe()` methods user \n`lore.websockets.post` and `lore.websockets.comment`. Just invoke those methods in your `src/components/Master.js` \ncomponent and you should start seeing data appear.\n\n# Needed Improvements\n\nOverall I think this is a decent first/second pass (first at a generic implementation), but there's a few things that \nneed to be added before it's \"complete\":\n\n1. The example(s) need to be updated to visually display the websocket status, such as when it's connected,\ndisconnected, and reconnecting. This is important as it's fairly standard these days to display connection issues to \nthe user (and a good user experience overall). That will also provide a good test of the expressiveness of the \ninterface and it's ability to integrate into an app with more real-world type concerns.\n\n2. Combining optimistic updates with websockets requires sending a client-generated ID to the server to allow \nlinking the optimistic data to the real data when it comes back. Lore supports that (and it's tested in a non-example \napp), but the configuration isn't exposed in this PR. There needs to be an option to a) send the cid to the server, b) \ncontrol the name of the cid field that's sent (so it doesn't have to be called cid), c) make it optional to send that \nfield, and d) change the generator for that field, so it could be a UUID instead of something like `c1`. Right now that \nbehavior can be obtained by overriding actions, but it would be good to have it supported as a built-in feature.\n\n3. The cascading overrides that are standard for other lore configuration is not yet implemented in the hooks. Meaning,\nthe behavior should be something like:\n   - Start with default hook configuration\n   - Override with conventions\n   - Override with values in config/websockets.js\n   - Override with model-specific values in models/post.js (or whatever model is called)\n\n4. Allow the user to add custom dispatchers and actions by creating a `websockets` folder and places files inside. For\n example, `src/websockets/post/dispatchers/created.js` would be a custom implementation to override the default \n `created` dispatcher. Actions could also be created by placing them inside `src/websockets/post/actions/create.js` \n if you also wanted to perform CRUD actions through the websocket connection (something the hooks might support, but \n not yet). Aside from overriding the defaults, you could also place custom dispatchers and actions there that the \n blueprints wouldn't provide by default.\n","maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"time":{"modified":"2022-06-19T14:20:16.521Z","created":"2016-09-09T21:01:52.114Z","0.9.0-rc.1":"2016-09-09T21:01:52.114Z","0.9.0":"2016-09-11T08:32:44.294Z","0.10.0-beta.1":"2016-10-04T09:22:09.814Z","0.10.0":"2016-10-13T05:42:02.152Z","0.11.0-beta.1":"2016-12-12T06:24:33.981Z","0.11.0-rc.1":"2017-01-24T06:25:18.282Z","0.11.0":"2017-01-29T04:55:19.577Z","0.12.0-beta.1":"2017-03-06T00:00:15.024Z","0.11.5":"2017-05-02T08:04:51.157Z","0.12.0-rc.1":"2017-05-02T08:55:59.202Z","0.12.0":"2017-05-08T05:00:24.071Z","0.12.6":"2017-07-04T05:09:37.878Z","0.12.7-rc.1":"2017-07-09T22:16:18.508Z","0.13.0-beta.1":"2017-09-18T19:57:31.153Z","0.13.0-beta.3":"2017-09-18T22:31:51.348Z","0.13.0-beta.5":"2017-11-14T20:52:57.598Z","0.13.0-beta.6":"2017-11-14T22:26:25.144Z","0.13.0-beta.7":"2017-11-14T22:38:52.951Z","0.13.0-beta.9":"2017-11-25T07:18:34.240Z","0.13.0-beta.10":"2017-12-14T21:20:27.263Z","0.13.0-beta.11":"2017-12-19T20:45:48.739Z","0.13.0-beta.12":"2018-03-05T01:56:04.201Z","0.13.0-beta.13":"2018-03-25T01:06:48.635Z","0.13.0-beta.14":"2018-03-31T21:18:35.570Z","0.13.0-beta.15":"2018-04-10T02:59:35.215Z","0.13.0-beta.16":"2018-04-26T21:20:53.733Z","0.13.0-rc.1":"2018-05-13T18:42:59.677Z","0.13.0-rc.2":"2018-05-21T00:30:25.536Z","0.13.0":"2018-06-24T01:51:24.191Z"},"keywords":["lore","hook","websockets","actioncable","rails"],"license":"MIT","readmeFilename":"README.md"}