{"_id":"redux-scuttlebutt","_rev":"27-f32e2ad76b62d5444826e047de1d2710","name":"redux-scuttlebutt","description":"Redux distributed dispatcher","dist-tags":{"latest":"0.3.5"},"versions":{"0.0.1-alpha":{"name":"redux-scuttlebutt","version":"0.0.1-alpha","description":"Redux distributed dispatcher","main":"lib/index.js","files":["dist","lib","src"],"scripts":{"build:commonjs":"BABEL_ENV=commonjs babel src --out-dir lib","build:umd":"BABEL_ENV=commonjs NODE_ENV=development webpack src/index.js dist/index.js","build:umd:min":"BABEL_ENV=commonjs NODE_ENV=production webpack src/index.js dist/index.min.js","build":"npm run build:commonjs # && npm run build:umd && npm run build:umd:min","test":"NODE_ENV=test mocha --recursive --compilers js:babel-register","test:watch":"npm test -- --watch"},"repository":{"type":"git","url":"git+https://github.com/grrowl/redux-scuttlebutt.git"},"license":"MIT","bugs":{"url":"https://github.com/grrowl/redux-scuttlebutt/issues"},"homepage":"https://github.com/grrowl/redux-scuttlebutt","dependencies":{"babel-preset-stage-0":"^6.5.0","primus":"^5.2.2"},"devDependencies":{"babel-cli":"^6.10.1","babel-core":"^6.3.15","babel-loader":"^6.2.0","babel-preset-es2015":"^6.3.13","enzyme":"^2.0.0","expect":"^1.6.0","express":"^4.13.3","mocha":"^2.2.5","node-libs-browser":"^0.5.2"},"npmName":"redux-scuttlebutt","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"3482a5b3f60f3719fcb04302105c702452f37f4e","_id":"redux-scuttlebutt@0.0.1-alpha","_shasum":"0448113b564ae8c40e46457adefc44f06edf96bd","_from":".","_npmVersion":"3.9.3","_nodeVersion":"6.2.1","_npmUser":{"name":"grrowl","email":"tom@chillidonut.com"},"dist":{"shasum":"0448113b564ae8c40e46457adefc44f06edf96bd","tarball":"https://registry.npmjs.org/redux-scuttlebutt/-/redux-scuttlebutt-0.0.1-alpha.tgz","integrity":"sha512-Zxps2bil7kgmEv5hesGkNz7KCIL23Z3/LsBs5f7+2xz37blwWHRrBw69OA+UJ82M5YhlsOWjMTc7+hJ2id2DYw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAQKhp8CWdkCLgLIYhoFwfiC9AmIDbj6gCDLnn1TV6/IAiEAoTFaqhV/8maP+eD75sRpPPnnQtq4afa2jZoeQqftHuk="}]},"maintainers":[{"name":"grrowl","email":"tom@chillidonut.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/redux-scuttlebutt-0.0.1-alpha.tgz_1468150107292_0.901982348645106"}},"0.0.1-alpha.2":{"name":"redux-scuttlebutt","version":"0.0.1-alpha.2","description":"Redux distributed dispatcher","main":"lib/index.js","files":["dist","lib","src"],"scripts":{"build:commonjs":"BABEL_ENV=commonjs babel src --out-dir lib","build:umd":"BABEL_ENV=commonjs NODE_ENV=development webpack src/index.js dist/index.js","build:umd:min":"BABEL_ENV=commonjs NODE_ENV=production webpack src/index.js dist/index.min.js","build":"npm run build:commonjs # && npm run build:umd && npm run build:umd:min","test":"NODE_ENV=test mocha --recursive --compilers js:babel-register","test:watch":"npm test -- --watch"},"repository":{"type":"git","url":"git+https://github.com/grrowl/redux-scuttlebutt.git"},"license":"MIT","bugs":{"url":"https://github.com/grrowl/redux-scuttlebutt/issues"},"homepage":"https://github.com/grrowl/redux-scuttlebutt","dependencies":{"primus":"^5.2.2"},"devDependencies":{"babel-cli":"^6.10.1","babel-core":"^6.3.15","babel-loader":"^6.2.0","babel-preset-es2015":"^6.3.13","babel-preset-stage-0":"^6.5.0","enzyme":"^2.0.0","expect":"^1.6.0","express":"^4.13.3","mocha":"^2.2.5","node-libs-browser":"^0.5.2"},"npmName":"redux-scuttlebutt","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"f9f6fc9598766c2d72470d4f37cdec478ca48219","_id":"redux-scuttlebutt@0.0.1-alpha.2","_shasum":"f0be4eaf9c8e235153c1cc3bfa0c85285fe16ed0","_from":".","_npmVersion":"3.9.3","_nodeVersion":"6.2.1","_npmUser":{"name":"grrowl","email":"tom@chillidonut.com"},"dist":{"shasum":"f0be4eaf9c8e235153c1cc3bfa0c85285fe16ed0","tarball":"https://registry.npmjs.org/redux-scuttlebutt/-/redux-scuttlebutt-0.0.1-alpha.2.tgz","integrity":"sha512-XiAEXhsLVmIQMSDC2cM8IJXTjeBf1ZuUmhKnWm1k46kaEESFS4TKDnF/MnYuCABt3j6dpKFQKEeUEwaTg5nqKA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHP6eUtY+nw545+/C0nb2Lf1qsC4haFdA2hEm+CfN/vYAiEAoPC9sC5m/KEOg/9OUeIpm8DDFjsVsZXwQ5dLw9V1aHw="}]},"maintainers":[{"name":"grrowl","email":"tom@chillidonut.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/redux-scuttlebutt-0.0.1-alpha.2.tgz_1468239946124_0.7760525955818594"}},"0.0.1-beta.1":{"name":"redux-scuttlebutt","version":"0.0.1-beta.1","description":"Redux distributed dispatcher","main":"lib/index.js","files":["dist","lib","src"],"scripts":{"build:commonjs":"BABEL_ENV=commonjs babel src --out-dir lib","build:umd":"BABEL_ENV=commonjs NODE_ENV=development webpack src/index.js dist/index.js","build:umd:min":"BABEL_ENV=commonjs NODE_ENV=production webpack src/index.js dist/index.min.js","build":"npm run build:commonjs # && npm run build:umd && npm run build:umd:min","test":"node test","_test":"NODE_ENV=test mocha --recursive --compilers js:babel-register","_test:watch":"npm test -- --watch"},"repository":{"type":"git","url":"git+https://github.com/grrowl/redux-scuttlebutt.git"},"license":"MIT","bugs":{"url":"https://github.com/grrowl/redux-scuttlebutt/issues"},"homepage":"https://github.com/grrowl/redux-scuttlebutt","dependencies":{"lodash":"^4.14.0","primus":"^5.2.2"},"devDependencies":{"babel-cli":"^6.10.1","babel-core":"^6.3.15","babel-loader":"^6.2.0","babel-preset-es2015":"^6.3.13","babel-preset-stage-0":"^6.5.0","babel-register":"^6.9.0","enzyme":"^2.0.0","expect":"^1.6.0","express":"^4.13.3","mocha":"^2.2.5","node-libs-browser":"^0.5.2","tap-pessimist":"^1.0.1","tape":"^4.6.0"},"npmName":"redux-scuttlebutt","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"c1e179e8defd38ff67c936fb15687a608d28cfe3","_id":"redux-scuttlebutt@0.0.1-beta.1","_shasum":"c1b7a05c08ac9027bf8c5d94b12f71b353b09c1c","_from":".","_npmVersion":"3.9.3","_nodeVersion":"6.2.1","_npmUser":{"name":"grrowl","email":"tom@chillidonut.com"},"dist":{"shasum":"c1b7a05c08ac9027bf8c5d94b12f71b353b09c1c","tarball":"https://registry.npmjs.org/redux-scuttlebutt/-/redux-scuttlebutt-0.0.1-beta.1.tgz","integrity":"sha512-blZAKj6kLUzlIFOhoT8s0AwdQBoxS4K4NdBnuwL3j38zqvd18DMZ3z1QV+4urI/1hlm5Vsd1m/Hb9dlCsa5C0A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCJNmmx7CwnZJAPDLDJuzADczkDxzkKZVXEo8TpwngtSwIgc9n0zdWJ6FRgF8WysU5D8gD1nQBskOh2OlwwqAC70Fw="}]},"maintainers":[{"name":"grrowl","email":"tom@chillidonut.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/redux-scuttlebutt-0.0.1-beta.1.tgz_1470302458039_0.3451191068161279"}},"0.0.2":{"name":"redux-scuttlebutt","version":"0.0.2","description":"Redux distributed dispatcher","main":"lib/index.js","files":["dist","lib","src"],"scripts":{"build:commonjs":"BABEL_ENV=commonjs babel src --out-dir lib","build:umd":"BABEL_ENV=commonjs NODE_ENV=development webpack src/index.js dist/index.js","build:umd:min":"BABEL_ENV=commonjs NODE_ENV=production webpack src/index.js dist/index.min.js","build":"npm run build:commonjs # && npm run build:umd && npm run build:umd:min","test":"node test","_test":"NODE_ENV=test mocha --recursive --compilers js:babel-register","_test:watch":"npm test -- --watch"},"repository":{"type":"git","url":"git+https://github.com/grrowl/redux-scuttlebutt.git"},"license":"MIT","bugs":{"url":"https://github.com/grrowl/redux-scuttlebutt/issues"},"homepage":"https://github.com/grrowl/redux-scuttlebutt","dependencies":{"lodash":"^4.14.0","scuttlebutt":"^5.6.14"},"devDependencies":{"babel-cli":"^6.10.1","babel-core":"^6.3.15","babel-loader":"^6.2.0","babel-preset-es2015":"^6.3.13","babel-preset-stage-0":"^6.5.0","babel-register":"^6.9.0","enzyme":"^2.0.0","expect":"^1.6.0","express":"^4.13.3","mocha":"^2.2.5","node-libs-browser":"^0.5.2","primus":"^5.2.2","tap-pessimist":"^1.0.1","tape":"^4.6.0"},"npmName":"redux-scuttlebutt","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"f946e0c39adadd9c6d4fb90a8aec1d8d416fcee0","_id":"redux-scuttlebutt@0.0.2","_shasum":"d626f3ee98a3c5c8af0bafb2b2d472186fc70482","_from":".","_npmVersion":"3.9.3","_nodeVersion":"6.2.1","_npmUser":{"name":"grrowl","email":"tom@chillidonut.com"},"dist":{"shasum":"d626f3ee98a3c5c8af0bafb2b2d472186fc70482","tarball":"https://registry.npmjs.org/redux-scuttlebutt/-/redux-scuttlebutt-0.0.2.tgz","integrity":"sha512-YiLBb1aNuOIzA5t4kn5ILRhBlt1HE9hLAw7eJm6eiI1t/dydWEJlNAy9uJ4aIQlQeyKOPhrPRKjkO7b4qt3EkQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDTa78pPJty8bVeJy+o791Jn9k5apAxAgZNS5WWNCGLEwIhALAqIUQOJdTrxSiZsASs0SFeVKP7vWgj9ruujKiAWzx1"}]},"maintainers":[{"name":"grrowl","email":"tom@chillidonut.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/redux-scuttlebutt-0.0.2.tgz_1470354758944_0.9622987804468721"}},"0.0.3":{"name":"redux-scuttlebutt","version":"0.0.3","description":"Redux distributed dispatcher","main":"lib/index.js","files":["dist","lib","src"],"scripts":{"build:commonjs":"BABEL_ENV=commonjs babel src --out-dir lib","build:umd":"BABEL_ENV=commonjs NODE_ENV=development webpack src/index.js dist/index.js","build:umd:min":"BABEL_ENV=commonjs NODE_ENV=production webpack src/index.js dist/index.min.js","build":"npm run build:commonjs # && npm run build:umd && npm run build:umd:min","test":"node test","_test":"NODE_ENV=test mocha --recursive --compilers js:babel-register","_test:watch":"npm test -- --watch"},"repository":{"type":"git","url":"git+https://github.com/grrowl/redux-scuttlebutt.git"},"license":"MIT","bugs":{"url":"https://github.com/grrowl/redux-scuttlebutt/issues"},"homepage":"https://github.com/grrowl/redux-scuttlebutt","dependencies":{"lodash":"^4.14.0","primus":"^5.2.2","scuttlebutt":"^5.6.14"},"peerDependencies":{"redux":"^3.5.2","primus":"^5.2.2"},"devDependencies":{"babel-cli":"^6.10.1","babel-core":"^6.3.15","babel-loader":"^6.2.0","babel-preset-es2015":"^6.3.13","babel-preset-react":"^6.16.0","babel-preset-stage-0":"^6.5.0","babel-register":"^6.9.0","enzyme":"^2.0.0","eslint-plugin-react":"^6.4.1","expect":"^1.6.0","express":"^4.13.3","mocha":"^2.2.5","node-libs-browser":"^0.5.2","tap-pessimist":"^1.0.1","tape":"^4.6.0"},"npmName":"redux-scuttlebutt","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"a2edec25cc3f384c21b2210fd387d0e070179742","_id":"redux-scuttlebutt@0.0.3","_shasum":"3e811f57cd7982b1f69b5145c9026c57c81100da","_from":".","_npmVersion":"3.9.5","_nodeVersion":"6.2.2","_npmUser":{"name":"grrowl","email":"tom@chillidonut.com"},"dist":{"shasum":"3e811f57cd7982b1f69b5145c9026c57c81100da","tarball":"https://registry.npmjs.org/redux-scuttlebutt/-/redux-scuttlebutt-0.0.3.tgz","integrity":"sha512-CnsjtEVjVPQ4soaDd06ktqgUr0itJ0dxxz6CGrWbn2xneOs8kZs+1aPuWI/lWf2JAeKxsHJC9oqUPnDKDhOsTQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICZrLlO+z5T6TCskj6o4IDu/3tuWgV0CztdBvL21ZzC7AiEAu2y6zmnAKO5xezovM3Y6r4Gfsh412m0jDf9h1cOQjrU="}]},"maintainers":[{"name":"grrowl","email":"tom@chillidonut.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/redux-scuttlebutt-0.0.3.tgz_1477116230341_0.7810828832443804"}},"0.0.4-a":{"name":"redux-scuttlebutt","version":"0.0.4-a","description":"Redux distributed dispatcher","main":"lib/index.js","files":["dist","lib","src"],"scripts":{"build:commonjs":"BABEL_ENV=commonjs babel src --out-dir lib","build:umd":"BABEL_ENV=commonjs NODE_ENV=development webpack src/index.js dist/index.js","build:umd:min":"BABEL_ENV=commonjs NODE_ENV=production webpack src/index.js dist/index.min.js","build":"npm run build:commonjs # && npm run build:umd && npm run build:umd:min","test":"node test","_test":"NODE_ENV=test mocha --recursive --compilers js:babel-register","_test:watch":"npm test -- --watch"},"repository":{"type":"git","url":"git+https://github.com/grrowl/redux-scuttlebutt.git"},"license":"MIT","bugs":{"url":"https://github.com/grrowl/redux-scuttlebutt/issues"},"homepage":"https://github.com/grrowl/redux-scuttlebutt","dependencies":{"lodash":"^4.14.0","primus":"^5.2.2","scuttlebutt":"^5.6.14"},"peerDependencies":{"redux":"^3.5.2","primus":"^5.2.2"},"devDependencies":{"babel-cli":"^6.10.1","babel-core":"^6.3.15","babel-loader":"^6.2.0","babel-preset-es2015":"^6.3.13","babel-preset-react":"^6.16.0","babel-preset-stage-0":"^6.5.0","babel-register":"^6.9.0","enzyme":"^2.0.0","eslint-plugin-react":"^6.4.1","expect":"^1.6.0","express":"^4.13.3","mocha":"^2.2.5","node-libs-browser":"^0.5.2","tap-pessimist":"^1.0.1","tape":"^4.6.0"},"npmName":"redux-scuttlebutt","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"7b646585782e7b45ebdd098a97368e9f62e3e557","_id":"redux-scuttlebutt@0.0.4-a","_shasum":"cd1fccef490104935ac2a9a292942130e201a57d","_from":".","_npmVersion":"3.9.5","_nodeVersion":"6.2.2","_npmUser":{"name":"grrowl","email":"tom@chillidonut.com"},"dist":{"shasum":"cd1fccef490104935ac2a9a292942130e201a57d","tarball":"https://registry.npmjs.org/redux-scuttlebutt/-/redux-scuttlebutt-0.0.4-a.tgz","integrity":"sha512-JyIAUu4Tyn4jvmx5bcHm3cXCJrR8plxeg6mqWXsIug+VtL0Zeuew2denUIQTArh0p5a2NBrKTR6/V54NPHArfg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDevqe8epzFs4kSjvJpHXj3mF+qnRsx2Y8VoSRyUiakIAiEAzSwiqYFp2hFRnz7L0WhWBn2xYP9/zFH2XSs6vxmu+0E="}]},"maintainers":[{"name":"grrowl","email":"tom@chillidonut.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/redux-scuttlebutt-0.0.4-a.tgz_1477283023037_0.31184023013338447"}},"0.0.4-alpha.2":{"name":"redux-scuttlebutt","version":"0.0.4-alpha.2","description":"Redux distributed dispatcher","main":"lib/index.js","files":["dist","lib","src"],"scripts":{"build:commonjs":"BABEL_ENV=commonjs babel src --out-dir lib","build:umd":"BABEL_ENV=commonjs NODE_ENV=development webpack src/index.js dist/index.js","build:umd:min":"BABEL_ENV=commonjs NODE_ENV=production webpack src/index.js dist/index.min.js","build":"npm run build:commonjs # && npm run build:umd && npm run build:umd:min","test":"node test","_test":"NODE_ENV=test mocha --recursive --compilers js:babel-register","_test:watch":"npm test -- --watch"},"repository":{"type":"git","url":"git+https://github.com/grrowl/redux-scuttlebutt.git"},"license":"MIT","bugs":{"url":"https://github.com/grrowl/redux-scuttlebutt/issues"},"homepage":"https://github.com/grrowl/redux-scuttlebutt","dependencies":{"lodash":"^4.14.0","primus":"^5.2.2","scuttlebutt":"^5.6.14"},"peerDependencies":{"redux":"^3.5.2","primus":"^5.2.2"},"devDependencies":{"babel-cli":"^6.10.1","babel-core":"^6.3.15","babel-loader":"^6.2.0","babel-preset-es2015":"^6.3.13","babel-preset-react":"^6.16.0","babel-preset-stage-0":"^6.5.0","babel-register":"^6.9.0","enzyme":"^2.0.0","eslint-plugin-react":"^6.4.1","expect":"^1.6.0","express":"^4.13.3","mocha":"^2.2.5","node-libs-browser":"^0.5.2","tap-pessimist":"^1.0.1","tape":"^4.6.0"},"npmName":"redux-scuttlebutt","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"8d863a63689d27d58c1678e96ed1f91b2ebbabc9","_id":"redux-scuttlebutt@0.0.4-alpha.2","_shasum":"d3a25488ed914685f04ec1999fc17f200e046030","_from":".","_npmVersion":"3.9.5","_nodeVersion":"6.2.2","_npmUser":{"name":"grrowl","email":"tom@chillidonut.com"},"dist":{"shasum":"d3a25488ed914685f04ec1999fc17f200e046030","tarball":"https://registry.npmjs.org/redux-scuttlebutt/-/redux-scuttlebutt-0.0.4-alpha.2.tgz","integrity":"sha512-uJPWCznknK/OGJ6/oC1Ql/wcc3keD/j1qYOQkRJeytnJKmOhhx9US6qG6eUZYGD6jJE/bl1LADiWlyv4JamiMQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHoTRiDysEeJUiyfeYm9WOnn9DKHZOkSkfSVJcCq87S+AiBt5xTF3oDNPViaHdgElPF9r4QE5cGZRP8ucbszwHLNZQ=="}]},"maintainers":[{"name":"grrowl","email":"tom@chillidonut.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/redux-scuttlebutt-0.0.4-alpha.2.tgz_1477400631735_0.08286411641165614"}},"0.0.4-alpha.3":{"name":"redux-scuttlebutt","version":"0.0.4-alpha.3","description":"Redux distributed dispatcher","main":"lib/index.js","files":["dist","lib","src"],"scripts":{"build:commonjs":"BABEL_ENV=commonjs babel src --out-dir lib","build:umd":"BABEL_ENV=commonjs NODE_ENV=development webpack src/index.js dist/index.js","build:umd:min":"BABEL_ENV=commonjs NODE_ENV=production webpack src/index.js dist/index.min.js","build":"npm run build:commonjs # && npm run build:umd && npm run build:umd:min","test":"node test","_test":"NODE_ENV=test mocha --recursive --compilers js:babel-register","_test:watch":"npm test -- --watch"},"repository":{"type":"git","url":"git+https://github.com/grrowl/redux-scuttlebutt.git"},"license":"MIT","bugs":{"url":"https://github.com/grrowl/redux-scuttlebutt/issues"},"homepage":"https://github.com/grrowl/redux-scuttlebutt","dependencies":{"lodash":"^4.14.0","primus":"^5.2.2","scuttlebutt":"^5.6.14"},"peerDependencies":{"redux":"^3.5.2","primus":"^5.2.2"},"devDependencies":{"babel-cli":"^6.10.1","babel-core":"^6.3.15","babel-loader":"^6.2.0","babel-preset-es2015":"^6.3.13","babel-preset-react":"^6.16.0","babel-preset-stage-0":"^6.5.0","babel-register":"^6.9.0","enzyme":"^2.0.0","eslint-plugin-react":"^6.4.1","expect":"^1.6.0","express":"^4.13.3","mocha":"^2.2.5","node-libs-browser":"^0.5.2","tap-pessimist":"^1.0.1","tape":"^4.6.0"},"npmName":"redux-scuttlebutt","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"64e8a9f327765a90010e4b2e3e3e2166153e071a","_id":"redux-scuttlebutt@0.0.4-alpha.3","_shasum":"b047ef38621ccb850df3d70be0ae8e4de19a248b","_from":".","_npmVersion":"3.9.5","_nodeVersion":"6.2.2","_npmUser":{"name":"grrowl","email":"tom@chillidonut.com"},"dist":{"shasum":"b047ef38621ccb850df3d70be0ae8e4de19a248b","tarball":"https://registry.npmjs.org/redux-scuttlebutt/-/redux-scuttlebutt-0.0.4-alpha.3.tgz","integrity":"sha512-YvgJuPlf52r3KFT9/Q6AbScRMvxK7GSRQO4I03ekSXFaqJQFEda4GbdfRuwFNXWXmz632rLqk4y/sI3IQJvxOg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDeXd/bC0s+71NRKE2DXLk6X0Jn5aX0OgqK2oe6aEGx1wIgXMaz0e0ayy/lr7HS/V3jCevtC83kZzKQDnP4YX0PEgY="}]},"maintainers":[{"name":"grrowl","email":"tom@chillidonut.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/redux-scuttlebutt-0.0.4-alpha.3.tgz_1477564823759_0.26357664982788265"}},"0.0.5-alpha.1":{"name":"redux-scuttlebutt","version":"0.0.5-alpha.1","description":"Redux distributed dispatcher","main":"lib/index.js","files":["dist","lib","src"],"scripts":{"build:commonjs":"BABEL_ENV=commonjs babel src --out-dir lib","build:umd":"BABEL_ENV=commonjs NODE_ENV=development webpack src/index.js dist/index.js","build:umd:min":"BABEL_ENV=commonjs NODE_ENV=production webpack src/index.js dist/index.min.js","build":"npm run build:commonjs # && npm run build:umd && npm run build:umd:min","test":"node test","_test":"NODE_ENV=test mocha --recursive --compilers js:babel-register","_test:watch":"npm test -- --watch"},"repository":{"type":"git","url":"git+https://github.com/grrowl/redux-scuttlebutt.git"},"license":"MIT","bugs":{"url":"https://github.com/grrowl/redux-scuttlebutt/issues"},"homepage":"https://github.com/grrowl/redux-scuttlebutt","dependencies":{"lodash":"^4.14.0","primus":"^5.2.2","scuttlebutt":"github:grrowl/scuttlebutt#32f6702a66ae8e19f25d6b68f81b3b28ebd3c7ee","ws":"^1.1.1"},"peerDependencies":{"redux":"^3.5.2","primus":"^5.2.2"},"devDependencies":{"babel-cli":"^6.10.1","babel-core":"^6.3.15","babel-loader":"^6.2.0","babel-preset-es2015":"^6.3.13","babel-preset-react":"^6.16.0","babel-preset-stage-0":"^6.5.0","babel-register":"^6.9.0","enzyme":"^2.0.0","eslint-plugin-react":"^6.4.1","expect":"^1.6.0","express":"^4.13.3","mocha":"^2.2.5","node-libs-browser":"^0.5.2","tap-pessimist":"^1.0.1","tape":"^4.6.0"},"npmName":"redux-scuttlebutt","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"17fa82559bd042439118c0b5df78bb87dba16ca9","_id":"redux-scuttlebutt@0.0.5-alpha.1","_shasum":"7855ee38bcc8605d66a00a6f4abd15895cd7d88a","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"grrowl","email":"tom@chillidonut.com"},"dist":{"shasum":"7855ee38bcc8605d66a00a6f4abd15895cd7d88a","tarball":"https://registry.npmjs.org/redux-scuttlebutt/-/redux-scuttlebutt-0.0.5-alpha.1.tgz","integrity":"sha512-DF2EsWg6ICHXCJ9BlLiwsnTTpfzAltM7Q2s1ENjXTNqEMqPss0rNqzR57ym4NDmqkYlWtFj3AMzb3a1WRm+Clg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDuitcW2MHGnpF7aVRj8wWrBVi69z3bazI5b8geb+awYwIgEoyFsN8sU1e3dyGKAInUUGlxgmxldd4M3TqG9YX+zj4="}]},"maintainers":[{"name":"grrowl","email":"tom@chillidonut.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/redux-scuttlebutt-0.0.5-alpha.1.tgz_1479206262928_0.7179636766668409"}},"0.2.0-rc.1":{"name":"redux-scuttlebutt","version":"0.2.0-rc.1","description":"Redux distributed dispatcher","main":"lib/index.js","files":["dist","lib","src"],"scripts":{"build:commonjs":"BABEL_ENV=commonjs babel src --out-dir lib","build:umd":"BABEL_ENV=commonjs NODE_ENV=development webpack src/index.js dist/index.js","build:umd:min":"BABEL_ENV=commonjs NODE_ENV=production webpack src/index.js dist/index.min.js","build":"npm run build:commonjs # && npm run build:umd && npm run build:umd:min","test":"node test | tap-spec"},"repository":{"type":"git","url":"git+https://github.com/grrowl/redux-scuttlebutt.git"},"license":"MIT","bugs":{"url":"https://github.com/grrowl/redux-scuttlebutt/issues"},"homepage":"https://github.com/grrowl/redux-scuttlebutt","dependencies":{"lodash":"^4.14.0","primus":"^5.2.2","scuttlebutt":"github:grrowl/scuttlebutt#logical-timestamps","tap-spec":"^4.1.1","ws":"^1.1.1"},"peerDependencies":{"primus":"^5.2.2","redux":"^3.5.2"},"devDependencies":{"babel-cli":"^6.10.1","babel-core":"^6.3.15","babel-loader":"^6.2.0","babel-preset-es2015":"^6.3.13","babel-preset-react":"^6.16.0","babel-preset-stage-0":"^6.5.0","babel-register":"^6.9.0","enzyme":"^2.0.0","eslint-plugin-react":"^6.4.1","expect":"^1.6.0","express":"^4.13.3","mocha":"^2.2.5","node-libs-browser":"^0.5.2","tap-pessimist":"^1.0.1","tap-spec":"^4.1.1","tape":"^4.6.0"},"npmName":"redux-scuttlebutt","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"72b512e83dacaf7ae3b6f8a18e4a8445851678c7","_id":"redux-scuttlebutt@0.2.0-rc.1","_shasum":"c2f4325d9006fa0d3604cf8d0d3cde536feaa9d2","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"grrowl","email":"tom@chillidonut.com"},"dist":{"shasum":"c2f4325d9006fa0d3604cf8d0d3cde536feaa9d2","tarball":"https://registry.npmjs.org/redux-scuttlebutt/-/redux-scuttlebutt-0.2.0-rc.1.tgz","integrity":"sha512-TqnxyMqE6CcmHoyOt9jHMoPvj+a4nHkQ5gGIOZPYreLnb611KK8oAumo9kS1r0lkVca3vXtwtpub7D1jAm93Vw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDphJaPCI27cJDpHiPlE4TIlGo7RObneRlldgoCF5InhgIgI2gE4DIkoZlbE36GjT6E+a1LOqlHOYyZi43sjJbunBU="}]},"maintainers":[{"name":"grrowl","email":"tom@chillidonut.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/redux-scuttlebutt-0.2.0-rc.1.tgz_1479899549939_0.19779558363370597"}},"0.2.0":{"name":"redux-scuttlebutt","version":"0.2.0","description":"Redux distributed dispatcher","main":"lib/index.js","files":["dist","lib","src"],"scripts":{"build:commonjs":"BABEL_ENV=commonjs babel src --out-dir lib","build:umd":"BABEL_ENV=commonjs NODE_ENV=development webpack src/index.js dist/index.js","build:umd:min":"BABEL_ENV=commonjs NODE_ENV=production webpack src/index.js dist/index.min.js","build":"npm run build:commonjs # && npm run build:umd && npm run build:umd:min","test":"node test | tap-spec"},"repository":{"type":"git","url":"git+https://github.com/grrowl/redux-scuttlebutt.git"},"license":"MIT","bugs":{"url":"https://github.com/grrowl/redux-scuttlebutt/issues"},"homepage":"https://github.com/grrowl/redux-scuttlebutt","dependencies":{"lodash":"^4.14.0","primus":"^6.0.5","scuttlebutt":"github:grrowl/scuttlebutt#logical-timestamps","ws":"^1.1.1"},"peerDependencies":{"primus":"^6.0.0","redux":"^3.5.2"},"devDependencies":{"babel-cli":"^6.10.1","babel-core":"^6.3.15","babel-loader":"^6.2.0","babel-preset-es2015":"^6.3.13","babel-preset-react":"^6.16.0","babel-preset-stage-0":"^6.5.0","babel-register":"^6.9.0","eslint-plugin-react":"^6.4.1","expect":"^1.6.0","express":"^4.13.3","tap-spec":"^4.1.1","tape":"^4.6.0"},"npmName":"redux-scuttlebutt","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"87240e470ed637e16f7fadb11e1a03554b106f0b","_id":"redux-scuttlebutt@0.2.0","_shasum":"8aa9de5ecce008ff3617438e8f85c817c55d60e7","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"grrowl","email":"tom@chillidonut.com"},"dist":{"shasum":"8aa9de5ecce008ff3617438e8f85c817c55d60e7","tarball":"https://registry.npmjs.org/redux-scuttlebutt/-/redux-scuttlebutt-0.2.0.tgz","integrity":"sha512-VKt0RRur8USQLmOHrXojYK97uTWRijIF+DoBFeEVfZqd1s9rvMiLng0F1AHB8/0AkiJ47E2ef2W9GFoEWVvRmQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH6rW2PZmzUtrJD/5RvlRKNcQYq7efDtrhcu+SRC/m9oAiEAoeWJELQ03ppa6iGjWnc4A+RFriEFliZlfIMlwffyW9w="}]},"maintainers":[{"name":"grrowl","email":"tom@chillidonut.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/redux-scuttlebutt-0.2.0.tgz_1479902997492_0.3400199799798429"}},"0.3.0-alpha.1":{"name":"redux-scuttlebutt","version":"0.3.0-alpha.1","description":"Redux distributed dispatcher","main":"lib/index.js","files":["dist","lib","src"],"scripts":{"build:commonjs":"BABEL_ENV=commonjs babel src --out-dir lib","build:umd":"BABEL_ENV=commonjs NODE_ENV=development webpack src/index.js dist/index.js","build:umd:min":"BABEL_ENV=commonjs NODE_ENV=production webpack src/index.js dist/index.min.js","build":"npm run build:commonjs # && npm run build:umd && npm run build:umd:min","test":"node test | tap-spec"},"repository":{"type":"git","url":"git+https://github.com/grrowl/redux-scuttlebutt.git"},"license":"MIT","bugs":{"url":"https://github.com/grrowl/redux-scuttlebutt/issues"},"homepage":"https://github.com/grrowl/redux-scuttlebutt","dependencies":{"lodash":"^4.14.0","primus":"^6.0.5","scuttlebutt":"github:grrowl/scuttlebutt#logical-timestamps","ws":"^1.1.1"},"peerDependencies":{"primus":"^6.0.0","redux":"^3.5.2"},"devDependencies":{"babel-cli":"^6.10.1","babel-core":"^6.3.15","babel-loader":"^6.2.0","babel-preset-es2015":"^6.3.13","babel-preset-react":"^6.16.0","babel-preset-stage-0":"^6.5.0","babel-register":"^6.9.0","eslint-plugin-react":"^6.4.1","expect":"^1.6.0","express":"^4.13.3","tap-spec":"^4.1.1","tape":"^4.6.0"},"npmName":"redux-scuttlebutt","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"5e738831a59ec439e5f49f8ecdab8474ab189640","_id":"redux-scuttlebutt@0.3.0-alpha.1","_shasum":"0bda15f4689ae1cda72706e5be340b58c617ffe0","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"grrowl","email":"tom@chillidonut.com"},"dist":{"shasum":"0bda15f4689ae1cda72706e5be340b58c617ffe0","tarball":"https://registry.npmjs.org/redux-scuttlebutt/-/redux-scuttlebutt-0.3.0-alpha.1.tgz","integrity":"sha512-qs6bb+nPhxbFsMkpKBqSVm98OtPGKWaqipVeacx9hpp6AXFkFmBPJ9of9XTP+7WbSUnSpj925+c1lYH91QYqCg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC7uLFzyi+6f5a6MZRoMWfCRYHmmgQYeMD8kVoGEp3BIAIgTzZw0lgPFwi3juf/qG6YDSjtAOGCvy0U01KWmjLKwFQ="}]},"maintainers":[{"name":"grrowl","email":"tom@chillidonut.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/redux-scuttlebutt-0.3.0-alpha.1.tgz_1479985242036_0.3532895757816732"}},"0.3.0":{"name":"redux-scuttlebutt","version":"0.3.0","description":"Redux distributed dispatcher","main":"lib/index.js","files":["dist","lib","src"],"scripts":{"build:commonjs":"BABEL_ENV=commonjs babel src --out-dir lib","build:umd":"BABEL_ENV=commonjs NODE_ENV=development webpack src/index.js dist/index.js","build:umd:min":"BABEL_ENV=commonjs NODE_ENV=production webpack src/index.js dist/index.min.js","build":"npm run build:commonjs # && npm run build:umd && npm run build:umd:min","test":"node test | tap-spec"},"repository":{"type":"git","url":"git+https://github.com/grrowl/redux-scuttlebutt.git"},"license":"MIT","bugs":{"url":"https://github.com/grrowl/redux-scuttlebutt/issues"},"homepage":"https://github.com/grrowl/redux-scuttlebutt","dependencies":{"lodash":"^4.14.0","primus":"^6.0.5","scuttlebutt":"github:grrowl/scuttlebutt#logical-timestamps","ws":"^1.1.1"},"peerDependencies":{"primus":"^6.0.0","redux":"^3.5.2"},"devDependencies":{"babel-cli":"^6.10.1","babel-core":"^6.3.15","babel-loader":"^6.2.0","babel-preset-es2015":"^6.3.13","babel-preset-react":"^6.16.0","babel-preset-stage-0":"^6.5.0","babel-register":"^6.9.0","eslint-plugin-react":"^6.4.1","expect":"^1.6.0","express":"^4.13.3","sinon":"^1.17.6","tap-spec":"^4.1.1","tape":"^4.6.0"},"npmName":"redux-scuttlebutt","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"4eff6a4a190df5ba4dcd931ac27ac0818f5c4798","_id":"redux-scuttlebutt@0.3.0","_shasum":"8796789cdbdcba3ec1a527484d80a8a015dd1895","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"grrowl","email":"tom@chillidonut.com"},"dist":{"shasum":"8796789cdbdcba3ec1a527484d80a8a015dd1895","tarball":"https://registry.npmjs.org/redux-scuttlebutt/-/redux-scuttlebutt-0.3.0.tgz","integrity":"sha512-iOX2UnYTDS78hpLJ1tTgIT6/C3tL+aa7f/jeFPjnpMPenz81Bhrq+u42I7nIHFOr3lMUKuAJIWCVO4ozcjk3jw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMJyZK/TsEyTfyF2qUCeQ6Zki8aAuUVPmY3PFSDfchbgIgLM1whxIZA7x4ZneyLledpEpiV9KShUyn1T7IKou+zCw="}]},"maintainers":[{"name":"grrowl","email":"tom@chillidonut.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/redux-scuttlebutt-0.3.0.tgz_1483015035894_0.1878218473866582"}},"0.3.1":{"name":"redux-scuttlebutt","version":"0.3.1","description":"Redux distributed dispatcher","main":"lib/index.js","files":["dist","lib","src"],"scripts":{"build:commonjs":"BABEL_ENV=commonjs babel src --out-dir lib","build:umd":"BABEL_ENV=commonjs NODE_ENV=development webpack src/index.js dist/index.js","build:umd:min":"BABEL_ENV=commonjs NODE_ENV=production webpack src/index.js dist/index.min.js","build":"npm run build:commonjs # && npm run build:umd && npm run build:umd:min","test":"node test | tap-spec"},"repository":{"type":"git","url":"git+https://github.com/grrowl/redux-scuttlebutt.git"},"license":"MIT","bugs":{"url":"https://github.com/grrowl/redux-scuttlebutt/issues"},"homepage":"https://github.com/grrowl/redux-scuttlebutt","dependencies":{"lodash":"^4.14.0","primus":"^6.0.5","scuttlebutt":"github:grrowl/scuttlebutt#logical-timestamps","ws":"^1.1.1"},"peerDependencies":{"primus":"^6.0.0","redux":"^3.5.2"},"devDependencies":{"babel-cli":"^6.10.1","babel-core":"^6.3.15","babel-loader":"^6.2.0","babel-preset-es2015":"^6.3.13","babel-preset-react":"^6.16.0","babel-preset-stage-0":"^6.5.0","babel-register":"^6.9.0","eslint-plugin-react":"^6.4.1","expect":"^1.6.0","express":"^4.13.3","sinon":"^1.17.6","tap-spec":"^4.1.1","tape":"^4.6.0"},"npmName":"redux-scuttlebutt","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"a04946d34aef72f4b6edbca4776da404c463e581","_id":"redux-scuttlebutt@0.3.1","_shasum":"dadf018b989c31a35fd2f24d5e3b59c94deb5205","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"grrowl","email":"tom@chillidonut.com"},"dist":{"shasum":"dadf018b989c31a35fd2f24d5e3b59c94deb5205","tarball":"https://registry.npmjs.org/redux-scuttlebutt/-/redux-scuttlebutt-0.3.1.tgz","integrity":"sha512-CHsyIw74Cms6ScLqqKbI91URFF3IoRWG1kcAcAxmcot323LIqw1U0hVlycMDDIlfc4IB1Cbq21a5kU4Rc/bmOA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEwiWpT0d1XhH37OuyAKjh36YLHOpHNmN+KSCIcYLwykAiAZbqt8vHYRhV16Zp/w41c9CGzmk0vMREDdGbL8dxkthg=="}]},"maintainers":[{"name":"grrowl","email":"tom@chillidonut.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/redux-scuttlebutt-0.3.1.tgz_1483876891069_0.9144392649177462"}},"0.3.2":{"name":"redux-scuttlebutt","version":"0.3.2","description":"Redux distributed dispatcher","main":"lib/index.js","files":["dist","lib","src"],"scripts":{"build:commonjs":"BABEL_ENV=commonjs babel src --out-dir lib","build:umd":"BABEL_ENV=commonjs NODE_ENV=development webpack src/index.js dist/index.js","build:umd:min":"BABEL_ENV=commonjs NODE_ENV=production webpack src/index.js dist/index.min.js","build":"npm run build:commonjs # && npm run build:umd && npm run build:umd:min","test":"node test | tap-spec"},"repository":{"type":"git","url":"git+https://github.com/grrowl/redux-scuttlebutt.git"},"license":"MIT","bugs":{"url":"https://github.com/grrowl/redux-scuttlebutt/issues"},"homepage":"https://github.com/grrowl/redux-scuttlebutt","dependencies":{"lodash":"^4.14.0","primus":"^6.0.5","scuttlebutt":"github:grrowl/scuttlebutt#logical-timestamps","ws":"^1.1.1"},"peerDependencies":{"primus":"^6.0.0","redux":"^3.5.2"},"devDependencies":{"babel-cli":"^6.10.1","babel-core":"^6.3.15","babel-loader":"^6.2.0","babel-preset-es2015":"^6.3.13","babel-preset-react":"^6.16.0","babel-preset-stage-0":"^6.5.0","babel-register":"^6.9.0","eslint-plugin-react":"^6.4.1","expect":"^1.6.0","express":"^4.13.3","sinon":"^1.17.6","tap-spec":"^4.1.1","tape":"^4.6.0"},"npmName":"redux-scuttlebutt","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"c67a6ab5e47f82c10d52c3c77e3716dac7e7ea17","_id":"redux-scuttlebutt@0.3.2","_shasum":"c5947a6e4cabf22a3637775fc9d7e5e0f63af87c","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"grrowl","email":"tom@chillidonut.com"},"dist":{"shasum":"c5947a6e4cabf22a3637775fc9d7e5e0f63af87c","tarball":"https://registry.npmjs.org/redux-scuttlebutt/-/redux-scuttlebutt-0.3.2.tgz","integrity":"sha512-9INT7bVxT00I8Bm8IKrkxoOSFzm5z4l/DZ5U0N/RuIdBoEVEWDJwnfR9DEAwanb9aSSxDig9+q2YyIwdhiwjdw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHQpKxCsliMNiqnWHhB+LQ71CBlDxwgYrhr1MtZ4CV5IAiAlk2O32+LaDVbjDvHQGut/ZHIo5Ji89MGLeDGRCjTVfg=="}]},"maintainers":[{"name":"grrowl","email":"tom@chillidonut.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/redux-scuttlebutt-0.3.2.tgz_1484265593964_0.7007720172405243"}},"0.3.3":{"name":"redux-scuttlebutt","version":"0.3.3","description":"Redux distributed dispatcher","main":"lib/index.js","engines":{"node":">=6.0"},"files":["dist","lib","src"],"scripts":{"build:commonjs":"BABEL_ENV=commonjs babel src --out-dir lib","build:umd":"BABEL_ENV=commonjs NODE_ENV=development webpack src/index.js dist/index.js","build:umd:min":"BABEL_ENV=commonjs NODE_ENV=production webpack src/index.js dist/index.min.js","build":"npm run build:commonjs # && npm run build:umd && npm run build:umd:min","test":"node test | tap-spec"},"repository":{"type":"git","url":"git+https://github.com/grrowl/redux-scuttlebutt.git"},"license":"MIT","bugs":{"url":"https://github.com/grrowl/redux-scuttlebutt/issues"},"homepage":"https://github.com/grrowl/redux-scuttlebutt","dependencies":{"lodash":"^4.14.0","primus":"^6.0.5","scuttlebutt-vector":"^6.0.0","ws":"^1.1.1"},"peerDependencies":{"primus":"^6.0.0","redux":"^3.5.2"},"devDependencies":{"babel-cli":"^6.10.1","babel-core":"^6.3.15","babel-loader":"^6.2.0","babel-preset-es2015":"^6.3.13","babel-preset-react":"^6.16.0","babel-preset-stage-0":"^6.5.0","babel-register":"^6.9.0","eslint-plugin-react":"^6.4.1","expect":"^1.6.0","express":"^4.13.3","sinon":"^1.17.6","tap-spec":"^4.1.1","tape":"^4.6.0"},"npmName":"redux-scuttlebutt","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"15ea5d3ba8cf87333e853af47b04627b6ddecfe4","_id":"redux-scuttlebutt@0.3.3","_shasum":"977b7813f0103590e79623834ace2dea385d3d54","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"grrowl","email":"tom@chillidonut.com"},"dist":{"shasum":"977b7813f0103590e79623834ace2dea385d3d54","tarball":"https://registry.npmjs.org/redux-scuttlebutt/-/redux-scuttlebutt-0.3.3.tgz","integrity":"sha512-havS+FVbjGDvh6QkJY8sIHq/hZtiOXMNnoEJMDDpQZzAgspJpgmXC0AKS82cBtrEqD8EltsxjirJiGpzo01TAA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCsnI5Oq0nY9jluBkyvvbLta7wCzFBqqhyUwFTR7H02/AIgC4mEvyXncb2IlxQ0NKcBdkuzdPO29w8Kfm64u2hRx0E="}]},"maintainers":[{"name":"grrowl","email":"tom@chillidonut.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/redux-scuttlebutt-0.3.3.tgz_1485048909293_0.9991948320530355"}},"0.3.4":{"name":"redux-scuttlebutt","version":"0.3.4","description":"Redux distributed dispatcher","main":"lib/index.js","engines":{"node":">=6.0"},"files":["dist","lib","src"],"scripts":{"build:commonjs":"BABEL_ENV=commonjs babel src --out-dir lib","build:umd":"BABEL_ENV=commonjs NODE_ENV=development webpack src/index.js dist/index.js","build:umd:min":"BABEL_ENV=commonjs NODE_ENV=production webpack src/index.js dist/index.min.js","build":"npm run build:commonjs # && npm run build:umd && npm run build:umd:min","test":"node test | tap-spec"},"repository":{"type":"git","url":"git+https://github.com/grrowl/redux-scuttlebutt.git"},"license":"MIT","bugs":{"url":"https://github.com/grrowl/redux-scuttlebutt/issues"},"homepage":"https://github.com/grrowl/redux-scuttlebutt","dependencies":{"lodash":"^4.14.0","primus":"^6.0.5","scuttlebutt-vector":"^6.0.0","ws":"^1.1.1"},"peerDependencies":{"primus":"^6.0.0","redux":"^3.5.2"},"devDependencies":{"babel-cli":"^6.10.1","babel-core":"^6.3.15","babel-loader":"^6.2.0","babel-preset-es2015":"^6.3.13","babel-preset-react":"^6.16.0","babel-preset-stage-0":"^6.5.0","babel-register":"^6.9.0","eslint-plugin-react":"^6.4.1","expect":"^1.6.0","express":"^4.13.3","sinon":"^1.17.6","tap-spec":"^4.1.1","tape":"^4.6.0"},"npmName":"redux-scuttlebutt","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"6237c75cb33aabdfae560a8a25ae1a26c511a7df","_id":"redux-scuttlebutt@0.3.4","_shasum":"7d99310dfb092be937f6ee15ebd942a1863e8032","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"grrowl","email":"tom@chillidonut.com"},"dist":{"shasum":"7d99310dfb092be937f6ee15ebd942a1863e8032","tarball":"https://registry.npmjs.org/redux-scuttlebutt/-/redux-scuttlebutt-0.3.4.tgz","integrity":"sha512-Ez8pv+dI+Yk/xXHtSjn+NpMEo53q+lsLpREAfEaFrbS2jrIApvGzu0MJs65zRUWjPwc9lS7vqhMNnk53/ekUFA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF3XZ08KHj7gaLQFTEoHX/SZ9DxemiSUveeSw5DW8utmAiBwElCTAhxkfTME6g2arfxNsIAnwlPhcztB9cggmCbVFQ=="}]},"maintainers":[{"name":"grrowl","email":"tom@chillidonut.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/redux-scuttlebutt-0.3.4.tgz_1485083622746_0.2996955190319568"}},"0.3.5":{"name":"redux-scuttlebutt","version":"0.3.5","description":"Redux distributed dispatcher","main":"lib/index.js","engines":{"node":">=6.0"},"files":["dist","lib","src"],"scripts":{"build:commonjs":"BABEL_ENV=commonjs babel src --out-dir lib","build:umd":"BABEL_ENV=commonjs NODE_ENV=development webpack src/index.js dist/index.js","build:umd:min":"BABEL_ENV=commonjs NODE_ENV=production webpack src/index.js dist/index.min.js","build":"npm run build:commonjs # && npm run build:umd && npm run build:umd:min","test":"node test | tap-spec"},"repository":{"type":"git","url":"git+https://github.com/grrowl/redux-scuttlebutt.git"},"license":"MIT","bugs":{"url":"https://github.com/grrowl/redux-scuttlebutt/issues"},"homepage":"https://github.com/grrowl/redux-scuttlebutt","dependencies":{"lodash":"^4.14.0","primus":"^6.0.5","scuttlebutt-vector":"^6.0.0","ws":"^1.1.1"},"peerDependencies":{"primus":"^6.0.0","redux":"^3.5.2"},"devDependencies":{"babel-cli":"^6.10.1","babel-core":"^6.3.15","babel-loader":"^6.2.0","babel-preset-es2015":"^6.3.13","babel-preset-react":"^6.16.0","babel-preset-stage-0":"^6.5.0","babel-register":"^6.9.0","eslint-plugin-react":"^6.4.1","expect":"^1.6.0","express":"^4.13.3","sinon":"^1.17.6","tap-spec":"^4.1.1","tape":"^4.6.0"},"npmName":"redux-scuttlebutt","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"0e7c26636d0696cf6b467f0211dfef192b647f1b","_id":"redux-scuttlebutt@0.3.5","_shasum":"504ec49b33624068fa0f9c33614c3448278672bf","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"grrowl","email":"tom@chillidonut.com"},"dist":{"shasum":"504ec49b33624068fa0f9c33614c3448278672bf","tarball":"https://registry.npmjs.org/redux-scuttlebutt/-/redux-scuttlebutt-0.3.5.tgz","integrity":"sha512-o2JneJplgqRNhxgk1qP4tw4HKqaAXT2ym+ym/qpB8BW87B9lHyQ2QE5jwgm00PtcZ6+QH9L7fiSr2XViVNrLEQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCPnp53FgNLBK7C/MebWWvC5zwqEO2BfiU7zc/MIBjyXAIgLLgjpO9dNeLY1ynd/g2drW9rZ/ZoLsXki6NWlBQSHzQ="}]},"maintainers":[{"name":"grrowl","email":"tom@chillidonut.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/redux-scuttlebutt-0.3.5.tgz_1485087936232_0.2791683755349368"}}},"readme":"\n# redux-scuttlebutt\n\n<!--\nSelf-replicating, self-ordering log of actions shared between all clients.\nUsing the power behind redux's hot reloading and time travel, your client\ndispatches actions itself and so does every other client, they share the state,\nand it all just works.\n-->\n\n## scuttlebutt\n\n> This seems like a silly name, but I assure you, this is real science.\n> — [dominictarr/scuttlebutt](https://github.com/dominictarr/scuttlebutt)\n\nEfficient peer to peer reconciliation. We use it as the underlying\nprotocol to share dispatched redux actions among peers, and eventually agree on\ntheir order in time. As actions from the past arrive, we replay history as if\nthey had always existed.\n\nA sample \"server\" peer is included, which might sync state changes to a\ndatabase, write a persistent log, or manage system/world/NPC actors.\n\nWhile it works great in a traditional client-server set up, you can flexibly\nupgrade/downgrade to peer-to-peer connections, go offline for minutes or days,\nand changes will sync when you next connect to another scuttlebutt instance.\n\nNote, by default, scuttlebutt itself does not make any guarantees of security or\nidentity: peer `Bob` is able to lie to `Jane` about `Amy`'s actions. Security\nguarantees can added using the\n[`signAsync` and `verifyAsync`](#signasync--verifyasync)] dispatcher options.\n\nFor more, read the\n[Scuttlebutt paper](http://www.cs.cornell.edu/home/rvr/papers/flowgossip.pdf).\n\n## dispatcher\n\n`Dispatcher` is our Scuttlebutt model. It handles remote syncing of local\nactions, local dispatching of remote actions, and altering action history\n(rolling back to past checkpoints and replaying actions) as required.\n\n## Redux store enhancer\n\nOur default export is the store enhancer. You use it like this:\n\n```js\n// configureStore.js\n\nimport { createStore, applyMiddleware } from 'redux'\n\nimport rootReducer from '../reducers'\nimport scuttlebutt from 'redux-scuttlebutt'\n\nexport default (initialState) => {\n  return createStore(rootReducer, initialState, scuttlebutt({\n    uri: 'http://localhost:3000',\n  }))\n}\n```\n\nIt wraps your store's root reducer (to store history), `getState` (to return the\ncurrent state in history) and `dispatch` (to connect to peers).\n\nIf you're using the redux dev-tools enhancer, it must come *after* the redux-\nscuttlebutt enhancer (or scuttlebutt will emit `PERFORM_ACTION` actions over the\nnetwork).\n\n## options\n\nThe store enhancer takes an options object, including the key\n`dispatcherOptions` which is passed directly through to the internal dispatcher:\n\n```js\nscuttlebutt({\n  // uri of a scuttlebutt peer or server\n  uri: `${window.location.protocol}//${window.location.host}`,\n\n  // options for primus.io <https://github.com/primus/primus#getting-started>\n  primusOptions: {},\n\n  // the Primus object, can be switched out with any compatible transport.\n  primus: (typeof window === 'object' && window.Primus),\n\n  // options passed through to the dispatcher (and their defaults)\n  dispatcherOptions: {\n    customDispatch: function getDelayedDispatch(dispatcher) {\n      return function (action) {\n        // the default will batch-reduce actions by the hundred, firing redux's\n        // subscribe method on the last one, triggering the actual rendering on\n        // the next animationFrame.\n        // see: https://github.com/grrowl/redux-scuttlebutt/blob/master/src/dispatcher.js#L22\n      }\n    },\n\n    isGossipType: function(actionType) {\n      // returns a boolean representing whether an action's type should be\n      // broadcast to the network.\n      // (by default, returns false for actions prefixed with @@, such as @@INIT\n      // and internal @@scuttlebutt-prefixed action types)\n    },\n\n    verifyAsync: function(callback, action, getStateHistory) {\n      // if specified, the verifyAsync function must call callback(false) if the\n      // action is invalid, or callback(true) if the action is valid.\n      // getStateHistory() will return an array of ordered updates\n    },\n\n    signAsync: function(callback, action, getStateHistory) {\n      // if specified, the signAsync will be called for every locally dispatched\n      // action. must call callback(action) and can mutate the action if\n      // desired.\n      // getStateHistory() will return an array of ordered updates\n    },\n  }\n})\n```\n\n### signAsync & verifyAsync\n\nThe dispatcher options `signAsync` and `verifyAsync` allows you to add arbitrary\nmetadata to actions as they are dispatched, and filter remote actions which are\nreceived from peers. This means you can validate any action against itself or\nthe redux state, other actions in history, a cryptographic signature, rate\nlimit, or any arbitrary rule.\n\nFor security, you can use\n[redux-signatures](https://github.com/grrowl/redux-signatures) to add Ed25519\nsignatures to your actions. This could be used to\nverify authors in a peering or mesh structure.\n\n```js\nimport { Ed25519, verifyAction, signAction } from 'redux-signatures'\n\nconst identity = new Ed25519()\n\nscuttlebutt({\n  uri: 'http://localhost:3000',\n  signAsync: signAction.bind(this, identity),\n  verifyAsync: verifyAction.bind(this, identity),\n}))\n```\n\nThe `getStateHistory` parameter returns an array of the form\n`[UPDATE_ACTION, UPDATE_TIMESTAMP, UPDATE_SOURCE, UPDATE_SNAPSHOT]`. These\n`UPDATE_*` constants are exported from scuttlebutt.\n\nNote, if your verification is computationally expensive, you are responsible for\nthrottling/delay (like you might for\n[getDelayedDispatch](https://github.com/grrowl/redux-scuttlebutt/blob/4eb737a65e442f388cc1c69c917c8f7b1ee11271/src/dispatcher.js#L23)).\n\n## conflict-free reducers\n\nWhile `redux-scuttlebutt` facilitates action sharing and enhancing the store,\nit's the responsiblity of the app's reducers to apply actions. Overall your app\nmust be strictly pure, without side effects or non-deterministic mutations.\n\nIn a complex real-time multi-user app, this is easier said than done. Some\nstrategies may be,\n\n* Avoid preconditions. The Game Of Life example only dispatches TOGGLE and STEP.\n  Neither have preconditions, there's no \"illegal\" way to dispatch them, and\n  they'll always successfully mutate state.\n* Only allow peers (action sources) control over their own domain (entity). An\n  entity might request something of another entity, which that entity would then\n  dispatch its own action to mutate its own domain.\n* Implement a Conflict-free data type, which only allows certain operations in\n  exchange for never conflicting.\n  See: https://github.com/pfrazee/crdt_notes#portfolio-of-basic-crdts\n  * We'd love to expose the most useful and common ones from this library to\n    assist with development.\n\n## example\n\nExamples are found under `examples/`.\n\n* `counter`:\n  [redux counter example](https://github.com/reactjs/redux/tree/master/examples/counter)\n  with the addition of redux-scuttlebutt.\n* `chat`: A very basic chat application.\n* `grrowl/redux-game-of-life-scuttlebutt`:\n  [Conway's Game Of Life](https://github.com/grrowl/redux-game-of-life-scuttlebutt)\n  multiplayer edition.\n\n## roadmap and thoughts\n\n* message validation on top of our existing scuttlebutt library\n  * robust crypto in the browser comes with a number of performance and security\n    tradeoffs, which we don't want to bake into the library itself.\n  * our recommendation is to implement what's right for your implementation in\n    userland.\n  * have released an example of message signing with ed25519 signatures and\n    asyncronous message validation\n    [in this gist](https://gist.github.com/grrowl/ca94e47a6da2062e9bd6dad211588597).\n  * released [redux-signatures](https://github.com/grrowl/redux-signatures)\n    which plugs directly into the dispatcher.\n    * Allows flexible implementation, e.g. in a client-server topology you may\n      only want to use `sign` on the client and `verify` on the server only.\n      This avoids running the most processor intensive part on the clients with\n      no loss of security.\n* underlying `scuttlebutt` implementation\n  * currently depends on our\n    [own scuttlebutt fork](https://github.com/grrowl/scuttlebutt#logical-timestamps),\n    not yet published to npm, I'm not sure if dominictarr wants to accept these\n    changes upstream.\n  * should probably republish as `scuttlebutt-logical`\n* add a `@@scuttlebutt/COMPACTION` action\n  * reducers would receive the whole history array as `state`\n  * enables removing multiple actions from history which are inconsequential —\n    such as multiple \"SET_VALUE\" actions, when only the last one applies.\n  * also enables forgetting, and therefore not replaying to other clients,\n    actions after a certain threshold.\n* implement CRDT helpers for reducers to easily implement complex shared data\n  types.\n* tests\n  * simulate a multi-hop distributed network with delay, ensure consistency\n  * ensure rewind/reordering works\n  * ensure API\n* allow pluggable socket library/transport\n* more example applications! something real-time, event driven.\n* WebRTC support\n  * Genericize server into websockets and webrtc versions\n  * Write client modules to support either\n\n## contributions\n\nContributions very welcomed. **This project is still in its very early,\nexperimental stages.**\n\nA major aim of this project is to be able to drop this middleware into an\nexisting, compatible project and have it \"just work\". Additional features should\nbe configurable in redux-scuttlebutt itself or at the highest level of the\napplication without heavy modification with the redux application's\nstructure/actions/reducers\n\n## licence\n\nMIT. Without open source projects like React, Redux, Scuttlebutt, and all the\namazing technology which has been the bedrock and inspiration for this project,\nmany wonderful things in this world wouldn't exist.\n","maintainers":[{"name":"grrowl","email":"tom@chillidonut.com"}],"time":{"modified":"2022-06-26T10:25:55.424Z","created":"2016-07-10T11:28:27.743Z","0.0.1-alpha":"2016-07-10T11:28:27.743Z","0.0.1-alpha.2":"2016-07-11T12:25:48.682Z","0.0.1-beta.1":"2016-08-04T09:21:00.578Z","0.0.2":"2016-08-04T23:52:41.828Z","0.0.3":"2016-10-22T06:03:52.906Z","0.0.4":"2016-10-22T12:40:58.051Z","0.0.4-a":"2016-10-24T04:23:45.601Z","0.0.4-alpha.2":"2016-10-25T13:03:52.004Z","0.0.4-alpha.3":"2016-10-27T10:40:27.818Z","0.0.5-alpha.1":"2016-11-15T10:37:43.188Z","0.2.0-rc.1":"2016-11-23T11:12:31.868Z","0.2.0":"2016-11-23T12:09:59.306Z","0.3.0-alpha.1":"2016-11-24T11:00:42.263Z","0.3.0":"2016-12-29T12:37:17.883Z","0.3.1":"2017-01-08T12:01:31.311Z","0.3.2":"2017-01-12T23:59:54.206Z","0.3.3":"2017-01-22T01:35:11.196Z","0.3.4":"2017-01-22T11:13:42.981Z","0.3.5":"2017-01-22T12:25:37.998Z"},"homepage":"https://github.com/grrowl/redux-scuttlebutt","repository":{"type":"git","url":"git+https://github.com/grrowl/redux-scuttlebutt.git"},"bugs":{"url":"https://github.com/grrowl/redux-scuttlebutt/issues"},"license":"MIT","readmeFilename":"README.md","users":{"grrowl":true,"hootiebrown":true,"cmtegner":true}}