{"_id":"redux-observable-source","_rev":"28-99acbf8e6a484144fe48578199b0c1fb","name":"redux-observable-source","description":"A Redux Middleware and data flow architecture for passing an Observable stream through an adapter to populate the branches on a state tree with data","dist-tags":{"latest":"1.0.9"},"versions":{"1.0.0":{"name":"redux-observable-source","version":"1.0.0","description":"A Redux Middleware and data flow architecture for passing an Observable stream through an adapter to populate the branches on a state tree with data","keywords":["npm-package","package","es6","redux","rxjs"],"license":"MIT","author":{"name":"Adam Gedney"},"homepage":"https://github.com/OlympusatDevelopment/redux-observable-source","repository":{"type":"git","url":"git+ssh://git@github.com/OlympusatDevelopment/redux-observable-source.git"},"bugs":{"url":"https://github.com/OlympusatDevelopment/redux-observable-source/issues"},"main":"index.js","scripts":{"clean":"rimraf ./.nyc_output ./.tmp ./coverage ./lib","dev":"node -r babel-register ./node_modules/webpack/bin/webpack --config webpack.config.build.development.js","build":"node -r babel-register ./node_modules/webpack/bin/webpack --config webpack.config.build.production.js","test":"mocha-webpack --webpack-config webpack.config.test.js \"test/runner.js\"","test:watch":"mocha-webpack --webpack-config webpack.config.test.js \"test/runner.js\" --watch","cover":"nyc --reporter=lcov --reporter=text npm run test","coveralls":"nyc --reporter=lcov --reporter=text npm run test && cat ./coverage/lcov.info | coveralls","lint":"eslint src test","prepublish":"npm run clean && npm run lint && npm run test && npm run build"},"nyc":{"include":["src/**/*.js"],"instrument":false,"sourceMap":false},"dependencies":{},"devDependencies":{"babel-core":"^6.24.1","babel-eslint":"^7.2.3","babel-loader":"^7.0.0","babel-preset-es2015":"^6.24.1","babel-preset-stage-0":"^6.24.1","babel-register":"^6.24.1","chai":"^4.0.1","coveralls":"^2.13.1","eslint":"^3.15.0","eslint-config-airbnb":"^15.0.1","eslint-plugin-import":"^2.3.0","eslint-plugin-jsx-a11y":"^5.0.3","eslint-plugin-react":"^7.0.1","fs-file-tree":"^1.0.4","istanbul-instrumenter-loader":"^2.0.0","mocha":"^3.4.2","mocha-webpack":"^0.7.0","nyc":"^11.0.1","rimraf":"^2.6.1","sinon":"^2.3.2","webpack":"^2.6.1","webpack-merge":"^4.1.0","webpack-node-externals":"^1.6.0","webpack-uglify-js-plugin":"^1.1.9"},"gitHead":"9b42204e86447f23b28711b94bc67f2ed6644fb2","_id":"redux-observable-source@1.0.0","_shasum":"564e339835f955140c60978b34a8c02fb6ce5ecc","_from":".","_npmVersion":"4.2.0","_nodeVersion":"6.2.2","_npmUser":{"name":"olympusat","email":"webteam@olympusat.com"},"dist":{"shasum":"564e339835f955140c60978b34a8c02fb6ce5ecc","tarball":"https://registry.npmjs.org/redux-observable-source/-/redux-observable-source-1.0.0.tgz","integrity":"sha512-wWNa+jdE1wmdTjPY9tF41rKpO3hwGbUZI0iH2V5zRBWVzkCDy0eP5O8SnKJwvnC8RGT/wuptzoxPsQ9jxf4Hug==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFaz9IaIyqmki5YcsIhHsyYB4BHZ0tb9tSFGxBEkQdRJAiAvJxi07OAcuRIVZ6QbVEKWqoRCH+WRt520y8YHcSDl8g=="}]},"maintainers":[{"name":"olympusat","email":"webteam@olympusat.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-observable-source-1.0.0.tgz_1507210502563_0.7086133470293134"},"directories":{}},"1.0.1":{"name":"redux-observable-source","version":"1.0.1","description":"A Redux Middleware and data flow architecture for passing an Observable stream through an adapter to populate the branches on a state tree with data","keywords":["npm-package","package","es6","redux","rxjs"],"license":"MIT","author":{"name":"Adam Gedney"},"homepage":"https://github.com/OlympusatDevelopment/redux-observable-source","repository":{"type":"git","url":"git+ssh://git@github.com/OlympusatDevelopment/redux-observable-source.git"},"bugs":{"url":"https://github.com/OlympusatDevelopment/redux-observable-source/issues"},"main":"index.js","scripts":{"clean":"rimraf ./.nyc_output ./.tmp ./coverage ./lib","dev":"node -r babel-register ./node_modules/webpack/bin/webpack --config webpack.config.build.development.js","build":"node -r babel-register ./node_modules/webpack/bin/webpack --config webpack.config.build.production.js","test":"mocha-webpack --webpack-config webpack.config.test.js \"test/runner.js\"","test:watch":"mocha-webpack --webpack-config webpack.config.test.js \"test/runner.js\" --watch","cover":"nyc --reporter=lcov --reporter=text npm run test","coveralls":"nyc --reporter=lcov --reporter=text npm run test && cat ./coverage/lcov.info | coveralls","lint":"eslint src test","prepublish":"npm run clean && npm run lint && npm run test && npm run build"},"nyc":{"include":["src/**/*.js"],"instrument":false,"sourceMap":false},"dependencies":{},"devDependencies":{"babel-core":"^6.24.1","babel-eslint":"^7.2.3","babel-loader":"^7.0.0","babel-preset-es2015":"^6.24.1","babel-preset-stage-0":"^6.24.1","babel-register":"^6.24.1","chai":"^4.0.1","coveralls":"^2.13.1","eslint":"^3.15.0","eslint-config-airbnb":"^15.0.1","eslint-plugin-import":"^2.3.0","eslint-plugin-jsx-a11y":"^5.0.3","eslint-plugin-react":"^7.0.1","fs-file-tree":"^1.0.4","istanbul-instrumenter-loader":"^2.0.0","mocha":"^3.4.2","mocha-webpack":"^0.7.0","nyc":"^11.0.1","rimraf":"^2.6.1","sinon":"^2.3.2","webpack":"^2.6.1","webpack-merge":"^4.1.0","webpack-node-externals":"^1.6.0","webpack-uglify-js-plugin":"^1.1.9"},"gitHead":"9b42204e86447f23b28711b94bc67f2ed6644fb2","_id":"redux-observable-source@1.0.1","_shasum":"776d566aa9647fe439b04738a81fe5ffe7d867de","_from":".","_npmVersion":"4.2.0","_nodeVersion":"6.2.2","_npmUser":{"name":"olympusat","email":"webteam@olympusat.com"},"dist":{"shasum":"776d566aa9647fe439b04738a81fe5ffe7d867de","tarball":"https://registry.npmjs.org/redux-observable-source/-/redux-observable-source-1.0.1.tgz","integrity":"sha512-zayRMrY6WjqQuagcmSoWWJGOVR1zYU7B/yYnM8Drx6fCIJ5TSMusG5luGHdSe8fMrLtCu2+9amkfNjYboMYKLw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHy3x3RpGcxihd50/6gDBHBkZVWJ9Atx1MjlJpbwVhcCAiEAnFbgLU4w8wTG8b4zUIwc9cqIIEeYgElNcPJt6Nq+0+c="}]},"maintainers":[{"name":"olympusat","email":"webteam@olympusat.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-observable-source-1.0.1.tgz_1507210642352_0.046941669657826424"},"directories":{}},"1.0.2":{"name":"redux-observable-source","version":"1.0.2","description":"A Redux Middleware and data flow architecture for passing an Observable stream through an adapter to populate the branches on a state tree with data","keywords":["npm-package","package","es6","redux","rxjs"],"license":"MIT","author":{"name":"Adam Gedney"},"homepage":"https://github.com/OlympusatDevelopment/redux-observable-source","repository":{"type":"git","url":"git+ssh://git@github.com/OlympusatDevelopment/redux-observable-source.git"},"bugs":{"url":"https://github.com/OlympusatDevelopment/redux-observable-source/issues"},"main":"index.js","scripts":{"clean":"rimraf ./.nyc_output ./.tmp ./coverage ./lib","dev":"node -r babel-register ./node_modules/webpack/bin/webpack --config webpack.config.build.development.js","build":"node -r babel-register ./node_modules/webpack/bin/webpack --config webpack.config.build.production.js","test":"mocha-webpack --webpack-config webpack.config.test.js \"test/runner.js\"","test:watch":"mocha-webpack --webpack-config webpack.config.test.js \"test/runner.js\" --watch","cover":"nyc --reporter=lcov --reporter=text npm run test","coveralls":"nyc --reporter=lcov --reporter=text npm run test && cat ./coverage/lcov.info | coveralls","lint":"eslint src test","prepublish":"npm run clean && npm run lint && npm run test && npm run build"},"nyc":{"include":["src/**/*.js"],"instrument":false,"sourceMap":false},"dependencies":{},"devDependencies":{"babel-core":"^6.24.1","babel-eslint":"^7.2.3","babel-loader":"^7.0.0","babel-preset-es2015":"^6.24.1","babel-preset-stage-0":"^6.24.1","babel-register":"^6.24.1","chai":"^4.0.1","coveralls":"^2.13.1","eslint":"^3.15.0","eslint-config-airbnb":"^15.0.1","eslint-plugin-import":"^2.3.0","eslint-plugin-jsx-a11y":"^5.0.3","eslint-plugin-react":"^7.0.1","fs-file-tree":"^1.0.4","istanbul-instrumenter-loader":"^2.0.0","mocha":"^3.4.2","mocha-webpack":"^0.7.0","nyc":"^11.0.1","rimraf":"^2.6.1","sinon":"^2.3.2","webpack":"^2.6.1","webpack-merge":"^4.1.0","webpack-node-externals":"^1.6.0","webpack-uglify-js-plugin":"^1.1.9"},"gitHead":"a15af03f4c1f07ccba317d18ead260730d93b3aa","_id":"redux-observable-source@1.0.2","_shasum":"6f3c89cad502a0af46e23c833154946b725f8d7e","_from":".","_npmVersion":"4.2.0","_nodeVersion":"6.2.2","_npmUser":{"name":"olympusat","email":"webteam@olympusat.com"},"dist":{"shasum":"6f3c89cad502a0af46e23c833154946b725f8d7e","tarball":"https://registry.npmjs.org/redux-observable-source/-/redux-observable-source-1.0.2.tgz","integrity":"sha512-KRKsnjoYDtpZO4HHXI85k4oFD+MyScTzL6IFYx66JkWd90ZfPV40r/BtsWsi+aGxyOCfTHfQmYYsCZzcVoZdjg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGpLw+W14bdoMH6u3xKDqKMbP/0BamvEMVT2uRGotjb5AiEAoCEeI8lxpUAUTx0K+e2cp96TTj1uIXtsPJFZ+ADeA5o="}]},"maintainers":[{"name":"olympusat","email":"webteam@olympusat.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-observable-source-1.0.2.tgz_1507210820788_0.5207623385358602"},"directories":{}},"1.0.3":{"name":"redux-observable-source","version":"1.0.3","description":"A Redux Middleware and data flow architecture for passing an Observable stream through an adapter to populate the branches on a state tree with data","keywords":["npm-package","package","es6","redux","rxjs"],"license":"MIT","author":{"name":"Adam Gedney"},"homepage":"https://github.com/OlympusatDevelopment/redux-observable-source","repository":{"type":"git","url":"git+ssh://git@github.com/OlympusatDevelopment/redux-observable-source.git"},"bugs":{"url":"https://github.com/OlympusatDevelopment/redux-observable-source/issues"},"main":"index.js","scripts":{"clean":"rimraf ./.nyc_output ./.tmp ./coverage ./lib","dev":"node -r babel-register ./node_modules/webpack/bin/webpack --config webpack.config.build.development.js","build":"node -r babel-register ./node_modules/webpack/bin/webpack --config webpack.config.build.production.js","test":"mocha-webpack --webpack-config webpack.config.test.js \"test/runner.js\"","test:watch":"mocha-webpack --webpack-config webpack.config.test.js \"test/runner.js\" --watch","cover":"nyc --reporter=lcov --reporter=text npm run test","coveralls":"nyc --reporter=lcov --reporter=text npm run test && cat ./coverage/lcov.info | coveralls","lint":"eslint src test","prepublish":"npm run clean && npm run lint && npm run test && npm run build"},"nyc":{"include":["src/**/*.js"],"instrument":false,"sourceMap":false},"dependencies":{},"devDependencies":{"babel-core":"^6.24.1","babel-eslint":"^7.2.3","babel-loader":"^7.0.0","babel-preset-es2015":"^6.24.1","babel-preset-stage-0":"^6.24.1","babel-register":"^6.24.1","chai":"^4.0.1","coveralls":"^2.13.1","eslint":"^3.15.0","eslint-config-airbnb":"^15.0.1","eslint-plugin-import":"^2.3.0","eslint-plugin-jsx-a11y":"^5.0.3","eslint-plugin-react":"^7.0.1","fs-file-tree":"^1.0.4","istanbul-instrumenter-loader":"^2.0.0","mocha":"^3.4.2","mocha-webpack":"^0.7.0","nyc":"^11.0.1","rimraf":"^2.6.1","sinon":"^2.3.2","webpack":"^2.6.1","webpack-merge":"^4.1.0","webpack-node-externals":"^1.6.0","webpack-uglify-js-plugin":"^1.1.9"},"gitHead":"a15af03f4c1f07ccba317d18ead260730d93b3aa","_id":"redux-observable-source@1.0.3","_shasum":"67e5545552d7194ea03f34125ce1381e701b1e57","_from":".","_npmVersion":"4.2.0","_nodeVersion":"6.2.2","_npmUser":{"name":"olympusat","email":"webteam@olympusat.com"},"dist":{"shasum":"67e5545552d7194ea03f34125ce1381e701b1e57","tarball":"https://registry.npmjs.org/redux-observable-source/-/redux-observable-source-1.0.3.tgz","integrity":"sha512-or3/IHUXHG9rfXL9Nd0RUGSnxUaWmG4s0iXj9nBUqggPAYU+tqKAqveeiebq6y6WN2Grnohi71LGEGDbkMxg9A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGy7hjh9BZ3Eu6JulaJp1CR/4U5nlXjUJu09sjbKGAHoAiAWolgBeoOoEbQOUPtEy8Gbg6GjpXSyorIwNYHGmmv8Hw=="}]},"maintainers":[{"name":"olympusat","email":"webteam@olympusat.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-observable-source-1.0.3.tgz_1507211005613_0.8585990252904594"},"directories":{}},"1.0.4":{"name":"redux-observable-source","version":"1.0.4","description":"A Redux Middleware and data flow architecture for passing an Observable stream through an adapter to populate the branches on a state tree with data","keywords":["npm-package","package","es6","redux","rxjs"],"license":"MIT","author":{"name":"Adam Gedney"},"homepage":"https://github.com/OlympusatDevelopment/redux-observable-source","repository":{"type":"git","url":"git+ssh://git@github.com/OlympusatDevelopment/redux-observable-source.git"},"bugs":{"url":"https://github.com/OlympusatDevelopment/redux-observable-source/issues"},"main":"index.js","scripts":{"clean":"rimraf ./.nyc_output ./.tmp ./coverage ./lib","dev":"node -r babel-register ./node_modules/webpack/bin/webpack --config webpack.config.build.development.js","build":"node -r babel-register ./node_modules/webpack/bin/webpack --config webpack.config.build.production.js","test":"mocha-webpack --webpack-config webpack.config.test.js \"test/runner.js\"","test:watch":"mocha-webpack --webpack-config webpack.config.test.js \"test/runner.js\" --watch","cover":"nyc --reporter=lcov --reporter=text npm run test","coveralls":"nyc --reporter=lcov --reporter=text npm run test && cat ./coverage/lcov.info | coveralls","lint":"eslint src test","prepublish":"npm run clean && npm run lint && npm run test && npm run build"},"nyc":{"include":["src/**/*.js"],"instrument":false,"sourceMap":false},"dependencies":{},"devDependencies":{"babel-core":"^6.24.1","babel-eslint":"^7.2.3","babel-loader":"^7.0.0","babel-preset-es2015":"^6.24.1","babel-preset-stage-0":"^6.24.1","babel-register":"^6.24.1","chai":"^4.0.1","coveralls":"^2.13.1","eslint":"^3.15.0","eslint-config-airbnb":"^15.0.1","eslint-plugin-import":"^2.3.0","eslint-plugin-jsx-a11y":"^5.0.3","eslint-plugin-react":"^7.0.1","fs-file-tree":"^1.0.4","istanbul-instrumenter-loader":"^2.0.0","mocha":"^3.4.2","mocha-webpack":"^0.7.0","nyc":"^11.0.1","rimraf":"^2.6.1","sinon":"^2.3.2","webpack":"^2.6.1","webpack-merge":"^4.1.0","webpack-node-externals":"^1.6.0","webpack-uglify-js-plugin":"^1.1.9"},"gitHead":"986339f9e6f4247d41302d7464187174e5398e25","_id":"redux-observable-source@1.0.4","_shasum":"55d6ce0e4887b297fd4dd56f48ab1e1e71812e1a","_from":".","_npmVersion":"4.2.0","_nodeVersion":"6.2.2","_npmUser":{"name":"olympusat","email":"webteam@olympusat.com"},"dist":{"shasum":"55d6ce0e4887b297fd4dd56f48ab1e1e71812e1a","tarball":"https://registry.npmjs.org/redux-observable-source/-/redux-observable-source-1.0.4.tgz","integrity":"sha512-o+20QpfrjaraGfjV04UWHzPRceyH/q/lxtO1kLkM3HALSQV68OfxZI+GRPbWePLWmgtI06K7xRvjhXD9VFrUlw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDdGSHj5haMUYg0vr7wbo0pAVnhKBNIVYUB0zkVtenEhAIgUIXyxsDW8vo5Ba/7jpPbpVGvN1oexwihPk0GomfM9OY="}]},"maintainers":[{"name":"olympusat","email":"webteam@olympusat.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-observable-source-1.0.4.tgz_1507211547892_0.3849861961789429"},"directories":{}},"1.0.5":{"name":"redux-observable-source","version":"1.0.5","description":"A Redux Middleware and data flow architecture for passing an Observable stream through an adapter to populate the branches on a state tree with data","keywords":["npm-package","package","es6","redux","rxjs"],"license":"MIT","author":{"name":"Adam Gedney"},"homepage":"https://github.com/OlympusatDevelopment/redux-observable-source","repository":{"type":"git","url":"git+ssh://git@github.com/OlympusatDevelopment/redux-observable-source.git"},"bugs":{"url":"https://github.com/OlympusatDevelopment/redux-observable-source/issues"},"main":"index.js","scripts":{"clean":"rimraf ./.nyc_output ./.tmp ./coverage ./lib","dev":"node -r babel-register ./node_modules/webpack/bin/webpack --config webpack.config.build.development.js","build":"node -r babel-register ./node_modules/webpack/bin/webpack --config webpack.config.build.production.js","test":"mocha-webpack --webpack-config webpack.config.test.js \"test/runner.js\"","test:watch":"mocha-webpack --webpack-config webpack.config.test.js \"test/runner.js\" --watch","cover":"nyc --reporter=lcov --reporter=text npm run test","coveralls":"nyc --reporter=lcov --reporter=text npm run test && cat ./coverage/lcov.info | coveralls","lint":"eslint src test","prepublish":"npm run clean && npm run lint && npm run test && npm run build"},"nyc":{"include":["src/**/*.js"],"instrument":false,"sourceMap":false},"dependencies":{},"devDependencies":{"babel-core":"^6.24.1","babel-eslint":"^7.2.3","babel-loader":"^7.0.0","babel-preset-es2015":"^6.24.1","babel-preset-stage-0":"^6.24.1","babel-register":"^6.24.1","chai":"^4.0.1","coveralls":"^2.13.1","eslint":"^3.15.0","eslint-config-airbnb":"^15.0.1","eslint-plugin-import":"^2.3.0","eslint-plugin-jsx-a11y":"^5.0.3","eslint-plugin-react":"^7.0.1","fs-file-tree":"^1.0.4","istanbul-instrumenter-loader":"^2.0.0","mocha":"^3.4.2","mocha-webpack":"^0.7.0","nyc":"^11.0.1","rimraf":"^2.6.1","sinon":"^2.3.2","webpack":"^2.6.1","webpack-merge":"^4.1.0","webpack-node-externals":"^1.6.0","webpack-uglify-js-plugin":"^1.1.9"},"gitHead":"986339f9e6f4247d41302d7464187174e5398e25","_id":"redux-observable-source@1.0.5","_shasum":"b8907561b5a861f286ffc3790d4677d4d6e4a6f7","_from":".","_npmVersion":"4.2.0","_nodeVersion":"6.2.2","_npmUser":{"name":"olympusat","email":"webteam@olympusat.com"},"dist":{"shasum":"b8907561b5a861f286ffc3790d4677d4d6e4a6f7","tarball":"https://registry.npmjs.org/redux-observable-source/-/redux-observable-source-1.0.5.tgz","integrity":"sha512-Ms/2CxgFyrlwzYtWgDKX7+qOzDNGUeR5iwYIhvZlVvsMNUx4ZWzaoy/8ayFN9r7TmQvmVzjjkiN8asg2rPKArg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCsi1/TXoJLV2beUhBd14zJbG2FgIXdp0WC9fuxudTA8QIgNp8u1lrPzUbsNhPQ2dWMD1vuwmQNpUgOcE4DepsbrT8="}]},"maintainers":[{"name":"olympusat","email":"webteam@olympusat.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-observable-source-1.0.5.tgz_1507211653773_0.8928332384675741"},"directories":{}},"1.0.6":{"name":"redux-observable-source","version":"1.0.6","description":"A Redux Middleware and data flow architecture for passing an Observable stream through an adapter to populate the branches on a state tree with data","keywords":["npm-package","package","es6","redux","rxjs"],"license":"MIT","author":{"name":"Adam Gedney"},"homepage":"https://github.com/OlympusatDevelopment/redux-observable-source","repository":{"type":"git","url":"git+ssh://git@github.com/OlympusatDevelopment/redux-observable-source.git"},"bugs":{"url":"https://github.com/OlympusatDevelopment/redux-observable-source/issues"},"main":"index.js","scripts":{"clean":"rimraf ./.nyc_output ./.tmp ./coverage ./lib","dev":"node -r babel-register ./node_modules/webpack/bin/webpack --config webpack.config.build.development.js","build":"node -r babel-register ./node_modules/webpack/bin/webpack --config webpack.config.build.production.js","test":"mocha-webpack --webpack-config webpack.config.test.js \"test/runner.js\"","test:watch":"mocha-webpack --webpack-config webpack.config.test.js \"test/runner.js\" --watch","cover":"nyc --reporter=lcov --reporter=text npm run test","coveralls":"nyc --reporter=lcov --reporter=text npm run test && cat ./coverage/lcov.info | coveralls","lint":"eslint src test","prepublish":"npm run clean && npm run lint && npm run test && npm run build"},"nyc":{"include":["src/**/*.js"],"instrument":false,"sourceMap":false},"dependencies":{},"devDependencies":{"babel-core":"^6.24.1","babel-eslint":"^7.2.3","babel-loader":"^7.0.0","babel-preset-es2015":"^6.24.1","babel-preset-stage-0":"^6.24.1","babel-register":"^6.24.1","chai":"^4.0.1","coveralls":"^2.13.1","eslint":"^3.15.0","eslint-config-airbnb":"^15.0.1","eslint-plugin-import":"^2.3.0","eslint-plugin-jsx-a11y":"^5.0.3","eslint-plugin-react":"^7.0.1","fs-file-tree":"^1.0.4","istanbul-instrumenter-loader":"^2.0.0","mocha":"^3.4.2","mocha-webpack":"^0.7.0","nyc":"^11.0.1","rimraf":"^2.6.1","sinon":"^2.3.2","webpack":"^2.6.1","webpack-merge":"^4.1.0","webpack-node-externals":"^1.6.0","webpack-uglify-js-plugin":"^1.1.9"},"gitHead":"4249a03249881ab56c5b4c37711d813c4529af4f","_id":"redux-observable-source@1.0.6","_shasum":"26e39539942ad0913c3cabc66e7012802ddceb42","_from":".","_npmVersion":"4.2.0","_nodeVersion":"6.2.2","_npmUser":{"name":"olympusat","email":"webteam@olympusat.com"},"dist":{"shasum":"26e39539942ad0913c3cabc66e7012802ddceb42","tarball":"https://registry.npmjs.org/redux-observable-source/-/redux-observable-source-1.0.6.tgz","integrity":"sha512-q8KrNmTrIFn0Rzj95q3V5UcGHO96/0RatGzOpvOnaxbSD4aEPscyzbGl+hv+cweCev/aezeFdq6JqfhuaE6yVA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEOVr0dprlTvu8D/jn8uRY1zdRZS+rJFCVNQxDR27tvAAiAp4edrFXIik1PecA7p/tsS6M8NrEAbpqo+JBAyX9FXZQ=="}]},"maintainers":[{"name":"olympusat","email":"webteam@olympusat.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-observable-source-1.0.6.tgz_1507223272044_0.43264061072841287"},"directories":{}},"1.0.7":{"name":"redux-observable-source","version":"1.0.7","description":"A Redux Middleware and data flow architecture for passing an Observable stream through an adapter to populate the branches on a state tree with data","keywords":["npm-package","package","es6","redux","rxjs"],"license":"MIT","author":{"name":"Adam Gedney"},"homepage":"https://github.com/OlympusatDevelopment/redux-observable-source","repository":{"type":"git","url":"git+ssh://git@github.com/OlympusatDevelopment/redux-observable-source.git"},"bugs":{"url":"https://github.com/OlympusatDevelopment/redux-observable-source/issues"},"main":"index.js","scripts":{"clean":"rimraf ./.nyc_output ./.tmp ./coverage ./lib","dev":"node -r babel-register ./node_modules/webpack/bin/webpack --config webpack.config.build.development.js","build":"node -r babel-register ./node_modules/webpack/bin/webpack --config webpack.config.build.production.js","test":"mocha-webpack --webpack-config webpack.config.test.js \"test/runner.js\"","test:watch":"mocha-webpack --webpack-config webpack.config.test.js \"test/runner.js\" --watch","cover":"nyc --reporter=lcov --reporter=text npm run test","coveralls":"nyc --reporter=lcov --reporter=text npm run test && cat ./coverage/lcov.info | coveralls","lint":"eslint src test","prepublish":"npm run clean && npm run lint && npm run test && npm run build"},"nyc":{"include":["src/**/*.js"],"instrument":false,"sourceMap":false},"dependencies":{},"devDependencies":{"babel-core":"^6.24.1","babel-eslint":"^7.2.3","babel-loader":"^7.0.0","babel-preset-es2015":"^6.24.1","babel-preset-stage-0":"^6.24.1","babel-register":"^6.24.1","chai":"^4.0.1","coveralls":"^2.13.1","eslint":"^3.15.0","eslint-config-airbnb":"^15.0.1","eslint-plugin-import":"^2.3.0","eslint-plugin-jsx-a11y":"^5.0.3","eslint-plugin-react":"^7.0.1","fs-file-tree":"^1.0.4","istanbul-instrumenter-loader":"^2.0.0","mocha":"^3.4.2","mocha-webpack":"^0.7.0","nyc":"^11.0.1","rimraf":"^2.6.1","sinon":"^2.3.2","webpack":"^2.6.1","webpack-merge":"^4.1.0","webpack-node-externals":"^1.6.0","webpack-uglify-js-plugin":"^1.1.9"},"gitHead":"dff5f4ae9fbb0dcefdc1cd2e72ae246c0152450c","_id":"redux-observable-source@1.0.7","_shasum":"140bf626fb3f97480ccacda76d1b2e0f6ded3cb6","_from":".","_npmVersion":"4.2.0","_nodeVersion":"6.2.2","_npmUser":{"name":"olympusat","email":"webteam@olympusat.com"},"dist":{"shasum":"140bf626fb3f97480ccacda76d1b2e0f6ded3cb6","tarball":"https://registry.npmjs.org/redux-observable-source/-/redux-observable-source-1.0.7.tgz","integrity":"sha512-0ex1lmOjxUq2V9K2bb0E5RKCmNwj1sOWgeWIvWhpn9vJWuqGbwDbyG0wpIq/vJlUPlx8dHRMJnNTsqQgCsXbmA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCzqL0XAi92lS3qqE4iWXxSALCQ3OaqXT8+5UDYcOAz5QIgaqnOidRrBpytLx/t6s2Z4MJuk0aJDvWvx+kXmvqIBYA="}]},"maintainers":[{"name":"olympusat","email":"webteam@olympusat.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-observable-source-1.0.7.tgz_1507223473968_0.8384996082168072"},"directories":{}},"1.0.8":{"name":"redux-observable-source","version":"1.0.8","description":"A Redux Middleware and data flow architecture for passing an Observable stream through an adapter to populate the branches on a state tree with data","keywords":["npm-package","package","es6","redux","rxjs"],"license":"MIT","author":{"name":"Adam Gedney"},"homepage":"https://github.com/OlympusatDevelopment/redux-observable-source","repository":{"type":"git","url":"git+ssh://git@github.com/OlympusatDevelopment/redux-observable-source.git"},"bugs":{"url":"https://github.com/OlympusatDevelopment/redux-observable-source/issues"},"main":"index.js","scripts":{"clean":"rimraf ./.nyc_output ./.tmp ./coverage ./lib","dev":"node -r babel-register ./node_modules/webpack/bin/webpack --config webpack.config.build.development.js","build":"node -r babel-register ./node_modules/webpack/bin/webpack --config webpack.config.build.production.js","test":"mocha-webpack --webpack-config webpack.config.test.js \"test/runner.js\"","test:watch":"mocha-webpack --webpack-config webpack.config.test.js \"test/runner.js\" --watch","cover":"nyc --reporter=lcov --reporter=text npm run test","coveralls":"nyc --reporter=lcov --reporter=text npm run test && cat ./coverage/lcov.info | coveralls","lint":"eslint src test","prepublish":"npm run clean && npm run lint && npm run test && npm run build"},"nyc":{"include":["src/**/*.js"],"instrument":false,"sourceMap":false},"dependencies":{},"devDependencies":{"babel-core":"^6.24.1","babel-eslint":"^7.2.3","babel-loader":"^7.0.0","babel-preset-es2015":"^6.24.1","babel-preset-stage-0":"^6.24.1","babel-register":"^6.24.1","chai":"^4.0.1","coveralls":"^2.13.1","eslint":"^3.15.0","eslint-config-airbnb":"^15.0.1","eslint-plugin-import":"^2.3.0","eslint-plugin-jsx-a11y":"^5.0.3","eslint-plugin-react":"^7.0.1","fs-file-tree":"^1.0.4","istanbul-instrumenter-loader":"^2.0.0","mocha":"^3.4.2","mocha-webpack":"^0.7.0","nyc":"^11.0.1","rimraf":"^2.6.1","sinon":"^2.3.2","webpack":"^2.6.1","webpack-merge":"^4.1.0","webpack-node-externals":"^1.6.0","webpack-uglify-js-plugin":"^1.1.9"},"gitHead":"dff5f4ae9fbb0dcefdc1cd2e72ae246c0152450c","_id":"redux-observable-source@1.0.8","_shasum":"3417803fdfb216c0787a2fdcffe6c86b94932562","_from":".","_npmVersion":"4.2.0","_nodeVersion":"6.2.2","_npmUser":{"name":"olympusat","email":"webteam@olympusat.com"},"dist":{"shasum":"3417803fdfb216c0787a2fdcffe6c86b94932562","tarball":"https://registry.npmjs.org/redux-observable-source/-/redux-observable-source-1.0.8.tgz","integrity":"sha512-s1xq64YF+JZMbt4iD+2mKsdW8uwYYTqNJHmxjlOe6LPZ+psuNfdtOZHsIS+1KrvwE4EKfZ+hPrHWVPW9ADP0mg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD0Ij41Wgkm83T+/O0xrjC/GxxhZ4+GZF13BzbOUN26nAIhAPudHdzvUPCahmypirrwz3qC5hWWBmQ8SqU+w0NeqtC1"}]},"maintainers":[{"name":"olympusat","email":"webteam@olympusat.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-observable-source-1.0.8.tgz_1507223878686_0.6465990340802819"},"directories":{}},"1.0.9":{"name":"redux-observable-source","version":"1.0.9","description":"A Redux Middleware and data flow architecture for passing an Observable stream through an adapter to populate the branches on a state tree with data","keywords":["npm-package","package","es6","redux","rxjs"],"license":"MIT","author":{"name":"Adam Gedney"},"homepage":"https://github.com/OlympusatDevelopment/redux-observable-source","repository":{"type":"git","url":"git+ssh://git@github.com/OlympusatDevelopment/redux-observable-source.git"},"bugs":{"url":"https://github.com/OlympusatDevelopment/redux-observable-source/issues"},"main":"index.js","scripts":{"clean":"rimraf ./.nyc_output ./.tmp ./coverage ./lib","dev":"node -r babel-register ./node_modules/webpack/bin/webpack --config webpack.config.build.development.js","build":"node -r babel-register ./node_modules/webpack/bin/webpack --config webpack.config.build.production.js","test":"mocha-webpack --webpack-config webpack.config.test.js \"test/runner.js\"","test:watch":"mocha-webpack --webpack-config webpack.config.test.js \"test/runner.js\" --watch","cover":"nyc --reporter=lcov --reporter=text npm run test","coveralls":"nyc --reporter=lcov --reporter=text npm run test && cat ./coverage/lcov.info | coveralls","lint":"eslint src test","prepublish":"npm run clean && npm run lint && npm run test && npm run build"},"nyc":{"include":["src/**/*.js"],"instrument":false,"sourceMap":false},"dependencies":{},"devDependencies":{"babel-core":"^6.24.1","babel-eslint":"^7.2.3","babel-loader":"^7.0.0","babel-preset-es2015":"^6.24.1","babel-preset-stage-0":"^6.24.1","babel-register":"^6.24.1","chai":"^4.0.1","coveralls":"^2.13.1","eslint":"^3.15.0","eslint-config-airbnb":"^15.0.1","eslint-plugin-import":"^2.3.0","eslint-plugin-jsx-a11y":"^5.0.3","eslint-plugin-react":"^7.0.1","fs-file-tree":"^1.0.4","istanbul-instrumenter-loader":"^2.0.0","mocha":"^3.4.2","mocha-webpack":"^0.7.0","nyc":"^11.0.1","rimraf":"^2.6.1","sinon":"^2.3.2","webpack":"^2.6.1","webpack-merge":"^4.1.0","webpack-node-externals":"^1.6.0","webpack-uglify-js-plugin":"^1.1.9"},"gitHead":"fa3bb0dcbb3a5b4fa63fffed00ed0727ce32a5c0","_id":"redux-observable-source@1.0.9","_shasum":"baf36c2b8590d63be33adc170c78729896fe94a9","_from":".","_npmVersion":"4.2.0","_nodeVersion":"6.2.2","_npmUser":{"name":"olympusat","email":"webteam@olympusat.com"},"dist":{"shasum":"baf36c2b8590d63be33adc170c78729896fe94a9","tarball":"https://registry.npmjs.org/redux-observable-source/-/redux-observable-source-1.0.9.tgz","integrity":"sha512-ykDg5NDRzr4Sp5tpAlqoa29LuDpuP1GRwErFI0UW3seWjAOx5xdXRb1x1zC8oLBzcX3hqmBFsZJGxP0fS1SxQA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID1Lakjs1gJZ9XPo78JqHhjI6/8+2NwNAwe86EXmP8DdAiA2x3UZ/LQeICjYKQ0Ktk4sRI7z+MGiMKu363ptf+RdIQ=="}]},"maintainers":[{"name":"olympusat","email":"webteam@olympusat.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-observable-source-1.0.9.tgz_1508527201422_0.7533369194716215"},"directories":{}}},"readme":"# redux-observable-source\n### As an integral piece in an Event-Driven Architecture, redux-observable-source is a Redux Middleware and data flow architecture for passing an Observable stream through an adapter to populate the branches on a state tree with data. How you get data to the observable is up to you, making it highly adaptable to your data sources, ie. websocket or ajax response as providers.\n\n[https://www.npmjs.com/package/redux-observable-source](https://www.npmjs.com/package/redux-observable-source)\n\nSee this article on event driven architectures\n[https://hackernoon.com/by-2020-50-of-managed-apis-projected-to-be-event-driven-88f7041ea6d8](https://hackernoon.com/by-2020-50-of-managed-apis-projected-to-be-event-driven-88f7041ea6d8)\n\n\n#### Install\n```\nnpm i -S redux-observable-source\n```\n\n#### Example Use\n1. Import the SourceReducer and add to your Redux combineReducers object\n\n```\n  import { SourceReducer } from 'redux-observable-source';\n  \n  export default function createReducer(asyncReducers) {\n    return combineReducers({\n      SourceReducer,\n      ...yourOtherReducers\n    })\n  }\n```\n\n2. Import the middleware, create the adapter, compose the middleware by currying in the adapter, and pass it an Observable that can be subscribed to\n```\n  import { createSourceMiddleware  } from 'redux-observable-source';\n\n  const adapterMap = [\n    {\n      dataKey: 'data.data.offers',// dot syntax gets parsed to the correct location in the object, for graphql use cases\n      branch : 'offers',\n      strategy : false // \"theirs\", \"ours\", false(replace)\n    }\n  ];\n\n  const sourceMiddleware = createSourceMiddleware(adapterMap)(someObservable$);\n```\n\n3. Add the `sourceMiddleware` middleware to your store configuration wherever and however your project is adding middleware. In the react-boilerplate it is added like this, your implementation may be different:\n\n```\n  export default function configureStore(initialState = {}, history) {\n    // Create the store with two middlewares\n    // 1. sagaMiddleware: Makes redux-sagas work\n    // 2. routerMiddleware: Syncs the location/URL path to the state\n    const middlewares = [\n      sagaMiddleware,\n      sourceMiddleware,\n      routerMiddleware(history)\n    ];\n\n    const enhancers = [\n      applyMiddleware(...middlewares),\n    ];\n\n    // If Redux DevTools Extension is installed use it, otherwise use Redux compose\n    /* eslint-disable no-underscore-dangle */\n    const composeEnhancers =\n      process.env.NODE_ENV !== 'production' &&\n      typeof window === 'object' &&\n      window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ?\n        window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ : compose;\n    /* eslint-enable */\n\n    const store = createStore(\n      createReducer(),\n      fromJS(initialState),\n      composeEnhancers(...enhancers)\n    );\n\n    ...etc\n```\n\n### The Adapter\nInternally, the middleqware takes an adapter collection in order to decipher how you want your streamed data to be mapped to your state tree branches.\n\nIf you look, each object in the adapterMap array has a `dataKey`, `branch`, and `strategy` property.\n```\n  {\n    dataKey: 'data.data.offers',// dot syntax gets parsed to the correct location in the object, for graphql use cases\n    branch : 'offers',\n    strategy : false // theirs, ours, false(replace)\n  }\n```\n##### dataKey \nA string representation of the object key used to hold the payload, the data you have received. It may be a single value or a dot notation representation.\n\n`data.data.offers` maps to:\n```\n{\n  data: {\n    data : {\n      offers:[\n        {...someSchema}\n      ]\n    }\n  }\n}\n```\n\nYou can also pass a single key name like `offers` that will map to:\n```\n{\n  offers:[\n    {...someSchema}\n  ]\n}\n```\n\n##### branch \nSimply the branch in the store/state tree that you want your payload data put in. For instance, given the above `offers` scenario, the payload data, the array portion, `{offers:[{...someSchema}]}` will end up populating the `store.offers` property after running through the middleware. If the branch property doesn't already exist in the store, it will be created.\n\n##### strategy\nThis is the merge/replace strategy you'd like to use to update the data on the branch if it already has data. You have 3 options:\n- 'theirs'\n- 'ours'\n- false\n\n`theirs` means you prefer to merge objects in preferring the data that already exists, and for array payloads, if `theirs` is the strategy then array payloads will be `pushed` onto the existing array.\n\n`ours` means that for object payloads the object will be merged in by preferring our new data over the existing data. For arrays, our array payload will be `unshifted` into the beginning of the array. \n\n`false` (or simply leaving out the `strategy` key) means you would like to `replace` the branch's existing data with the new incoming data. This is the most likely scenario.\n\n\n\n### Important \nHow you populate your Observable is up to you. The middleware only expects there to be an observable we can subscribe to, that has a payload with a deciperable key `{getUserById:{name:'Adam','age:'old''}}`.\n\n**In the test case the application has one main rxjs Subject on the window object in the browser (or global in node).** This lets any part of the application (websockets or ajax call functions) access the Subject. The Subject is \"nexted\" from the response of the ajax call function and/or also from a websocket callback function. Now any response from any ajax call and any data pushed up the socket by an API can be adapted to map to a branch on the state tree which child components can be selectively \"subscribed\" to.\n\nSee rxjs docs for how to make a subject: [https://github.com/ReactiveX/rxjs](https://github.com/ReactiveX/rxjs)\n\n### The value of this architecture?\nBy using this architecture we can do away with Thunk or Saga middleware essentially, simplifying our apps. Each component can use a single utility function to make ajax calls, the results of which are directly streamed into the store. The component doesn't have to handle the response to the call then dispatch a change to the store itself; it just has to announce what it needs. This greatly decouples the component and makes it easier to reason about.\n\nBy standardizing how the store gets its data, the application is now open to an easier implementation of websocket streamed data or individual requests.\n\n\n#### Rough sketch of the architecture possible using a single source\n![https://github.com/OlympusatDevelopment/redux-observable-source](/architecture.png?raw=true \"https://github.com/OlympusatDevelopment/redux-observable-source\")\n\n#### Key Data Flow Takeaways:\n1. Components only announce they need data\n2. Components can not directly dispatch for data. (Eliminates the need for Thunks or Sagas, reducing app complexity)\n3. AJAX calls are made via the same fn and the response is fed to the Observable\n4. Websocket pushes are fed to the same Observable getting AJAX responses\n5. An Event Manager [ The Adapter ] is responsible for mapping data to branches in the State Tree\n6. State Tree data is fed to components via branches.","maintainers":[{"email":"kyle@olympusat.com","name":"olykyle"},{"email":"webteam@olympusat.com","name":"olympusat-admin"},{"email":"keiler.2006@gmail.com","name":"kagonzalez84"}],"time":{"modified":"2023-09-01T17:11:37.215Z","created":"2017-10-05T13:35:03.430Z","1.0.0":"2017-10-05T13:35:03.430Z","1.0.1":"2017-10-05T13:37:23.260Z","1.0.2":"2017-10-05T13:40:21.698Z","1.0.3":"2017-10-05T13:43:26.636Z","1.0.4":"2017-10-05T13:52:29.196Z","1.0.5":"2017-10-05T13:54:14.941Z","1.0.6":"2017-10-05T17:07:53.866Z","1.0.7":"2017-10-05T17:11:15.191Z","1.0.8":"2017-10-05T17:18:00.041Z","1.0.9":"2017-10-20T19:20:02.900Z"},"homepage":"https://github.com/OlympusatDevelopment/redux-observable-source","keywords":["npm-package","package","es6","redux","rxjs"],"repository":{"type":"git","url":"git+ssh://git@github.com/OlympusatDevelopment/redux-observable-source.git"},"author":{"name":"Adam Gedney"},"bugs":{"url":"https://github.com/OlympusatDevelopment/redux-observable-source/issues"},"license":"MIT","readmeFilename":"README.md"}