{"_id":"@hart/hart-redux","_rev":"74-923acda3bb3c6ce524b6c36221416fc0","name":"@hart/hart-redux","dist-tags":{"next":"2.0.0-alpha","latest":"1.0.4"},"versions":{"0.0.1":{"name":"@hart/hart-redux","version":"0.0.1","author":{"name":"Mark Zepeda"},"license":"ISC","_id":"@hart/hart-redux@0.0.1","maintainers":[{"name":"markario","email":"markzepedajr@gmail.com"}],"dist":{"shasum":"0717d9f6b97f1122df1faae4d339bc485f9625b2","tarball":"https://registry.npmjs.org/@hart/hart-redux/-/hart-redux-0.0.1.tgz","integrity":"sha512-scSTKG6GGhnDxNc6QAKjqhFWkcBeZhc8M2jrb8YOH4nnodx1A8RJXWCrkc6f6oxzQodYtHZXEezprS74zdVhAg==","signatures":[{"sig":"MEQCIB0Hkysgc9V39WJukP8xYKaE2S2yY1NnNo4Hlwbe6+UmAiBWjguweRY30w/PeccWgXC6+ekgvrOJOz8uxo3ikgKx7w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/index.js","_from":".","_shasum":"0717d9f6b97f1122df1faae4d339bc485f9625b2","gitHead":"850b06d5e1c61ec0bc639ba2ff6e1ecf0febd1ff","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"markario","email":"markzepedajr@gmail.com"},"repository":{"url":"git@gitlab.hrt.io:frontend/hart-redux.git","type":"git"},"_npmVersion":"3.10.8","description":"","directories":{},"_nodeVersion":"6.9.1","dependencies":{"redux":"^3.7.2"},"_npmOperationalInternal":{"tmp":"tmp/hart-redux-0.0.1.tgz_1502301946526_0.6171803902834654","host":"s3://npm-registry-packages"}},"0.1.0":{"name":"@hart/hart-redux","version":"0.1.0","author":{"name":"Mark Zepeda"},"license":"ISC","_id":"@hart/hart-redux@0.1.0","maintainers":[{"name":"markario","email":"markzepedajr@gmail.com"},{"name":"yitongwang","email":"yitong.wang@hart.com"},{"name":"hartbot","email":"tools@hart.com"},{"name":"evliu","email":"azn_logik@yahoo.com"},{"name":"arronhunt","email":"arronjhunt@gmail.com"},{"name":"ptariche","email":"ptariche@gmail.com"}],"dist":{"shasum":"87fd2015d56351e0138623178be331cb28f76447","tarball":"https://registry.npmjs.org/@hart/hart-redux/-/hart-redux-0.1.0.tgz","integrity":"sha512-S3PvOQM1KHxjrA18ajZxl1gl6MiYjDZnK2vXjxPkRaS1po3WYRJQ38QgWxUnDYz7qtBu7dsjnh0ChA+E/t0Shg==","signatures":[{"sig":"MEYCIQD4DPAdoL25NsKKtpGl7gmkGGRxogo/jgMfD20W8sOi2gIhALDq1Yq2Obu2Qdb5HDeEcLXvfZBHQrqWk5x1pJB9YUJK","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/index.js","_from":".","_shasum":"87fd2015d56351e0138623178be331cb28f76447","gitHead":"d56614e67678f346fb09f1a6e577f848e022df6d","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"markario","email":"markzepedajr@gmail.com"},"repository":{"url":"git@gitlab.hrt.io:frontend/hart-redux.git","type":"git"},"_npmVersion":"3.10.8","description":"","directories":{},"_nodeVersion":"6.9.1","dependencies":{"redux":"^3.7.2"},"_npmOperationalInternal":{"tmp":"tmp/hart-redux-0.1.0.tgz_1502820270858_0.808756418293342","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"@hart/hart-redux","version":"0.2.0","author":{"name":"Mark Zepeda"},"license":"ISC","_id":"@hart/hart-redux@0.2.0","maintainers":[{"name":"markario","email":"markzepedajr@gmail.com"},{"name":"yitongwang","email":"yitong.wang@hart.com"},{"name":"hartbot","email":"tools@hart.com"},{"name":"evliu","email":"azn_logik@yahoo.com"},{"name":"arronhunt","email":"arronjhunt@gmail.com"},{"name":"ptariche","email":"ptariche@gmail.com"}],"dist":{"shasum":"41ef400999bae75294db2970710ec16bce8db7d7","tarball":"https://registry.npmjs.org/@hart/hart-redux/-/hart-redux-0.2.0.tgz","integrity":"sha512-UBGDkGKCtxoz+Q8VBFLETSEHOr9r+7pr73A2cKH18fyl8IApMne6l+hjV5n7V9lm/NZJfqptpcUwHStbknFUCw==","signatures":[{"sig":"MEQCID8U0yzjUwcwfDuge51i52e9CVxK+lTREVE0EawFv5+cAiBv9Ay2neK/0Gh4Zmn9qnopywcJUbscbc/qCz9quXJLCw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","gitHead":"a111c50d505a139058582d645eb1226e6e0e3a47","scripts":{"build":"neutrino build"},"_npmUser":{"name":"markario","email":"markzepedajr@gmail.com"},"repository":{"url":"git@gitlab.hrt.io:frontend/hart-redux.git","type":"git"},"_npmVersion":"5.3.0","description":"","directories":{},"_nodeVersion":"8.2.1","dependencies":{"redux":"^3.7.2"},"devDependencies":{"neutrino":"^6.1.5","babel-preset-next-react":"^1.1.1","neutrino-preset-component":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/hart-redux-0.2.0.tgz_1502845754769_0.9690586156211793","host":"s3://npm-registry-packages"}},"0.3.0":{"name":"@hart/hart-redux","version":"0.3.0","author":{"name":"Mark Zepeda"},"license":"ISC","_id":"@hart/hart-redux@0.3.0","maintainers":[{"name":"markario","email":"markzepedajr@gmail.com"},{"name":"yitongwang","email":"yitong.wang@hart.com"},{"name":"hartbot","email":"tools@hart.com"},{"name":"evliu","email":"azn_logik@yahoo.com"},{"name":"arronhunt","email":"arronjhunt@gmail.com"},{"name":"ptariche","email":"ptariche@gmail.com"}],"dist":{"shasum":"509d422eb4579217b2a4f4e260b3876bd3396700","tarball":"https://registry.npmjs.org/@hart/hart-redux/-/hart-redux-0.3.0.tgz","integrity":"sha512-vDn6xcRd0yjUg3yxUEph6d2kzC93jsO3qknIh1vPZSy1aZdue1O53suGSn1mQL2yLjc85ixT79bjUA9Gnl6OPQ==","signatures":[{"sig":"MEQCICT8lSBeUupmbJAtKPHR87GlmPKz6F6OFnsi+YeuTzLVAiA+SGjOm9cf6Mq4jEfqfXqoVgge8jjduXp9EBwXC6m5Sw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","gitHead":"c03d7d6a55a41b4fa655848f2285ad09535ef1f0","scripts":{"build":"neutrino build"},"_npmUser":{"name":"markario","email":"markzepedajr@gmail.com"},"repository":{"url":"git@gitlab.hrt.io:frontend/hart-redux.git","type":"git"},"_npmVersion":"5.3.0","description":"","directories":{},"_nodeVersion":"8.2.1","dependencies":{"redux":"^3.7.2"},"devDependencies":{"neutrino":"^6.1.5","babel-preset-next-react":"^1.1.1","neutrino-preset-component":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/hart-redux-0.3.0.tgz_1502848343210_0.6390973445959389","host":"s3://npm-registry-packages"}},"0.4.0":{"name":"@hart/hart-redux","version":"0.4.0","author":{"name":"Mark Zepeda"},"license":"ISC","_id":"@hart/hart-redux@0.4.0","maintainers":[{"name":"markario","email":"markzepedajr@gmail.com"},{"name":"yitongwang","email":"yitong.wang@hart.com"},{"name":"hartbot","email":"tools@hart.com"},{"name":"evliu","email":"azn_logik@yahoo.com"},{"name":"arronhunt","email":"arronjhunt@gmail.com"},{"name":"ptariche","email":"ptariche@gmail.com"}],"dist":{"shasum":"3c6222491eb3fea5d0da2a603604db5fd2dadee4","tarball":"https://registry.npmjs.org/@hart/hart-redux/-/hart-redux-0.4.0.tgz","integrity":"sha512-hw9BQ8pjgkYE1/tlyCD2INQZ3SyuHJPSEJEvq9D4FktjGXFvNyCcGJ7rN21pKWR5HE5mrnIi+de1fPt3WKzjEg==","signatures":[{"sig":"MEUCIQDuX/QAP5C54IMyy5fxJdoj03i2raw5TBDH14IwLUOVywIgNXWkWKm09aD+Z1uJ9c/buD9wK05g+vds3QeUmEmIMZU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/index.js","gitHead":"95e5cb1af613d6d1774452e455a37e1bba24f34b","_npmUser":{"name":"markario","email":"markzepedajr@gmail.com"},"repository":{"url":"git@gitlab.hrt.io:frontend/hart-redux.git","type":"git"},"_npmVersion":"5.3.0","description":"","directories":{},"_nodeVersion":"8.2.1","dependencies":{"redux":"^3.7.2"},"_npmOperationalInternal":{"tmp":"tmp/hart-redux-0.4.0.tgz_1502849308308_0.5797333340160549","host":"s3://npm-registry-packages"}},"0.5.0":{"name":"@hart/hart-redux","version":"0.5.0","author":{"name":"Mark Zepeda"},"license":"ISC","_id":"@hart/hart-redux@0.5.0","maintainers":[{"name":"markario","email":"markzepedajr@gmail.com"},{"name":"yitongwang","email":"yitong.wang@hart.com"},{"name":"hartbot","email":"tools@hart.com"},{"name":"evliu","email":"azn_logik@yahoo.com"},{"name":"arronhunt","email":"arronjhunt@gmail.com"},{"name":"ptariche","email":"ptariche@gmail.com"}],"dist":{"shasum":"aa691b27afe29395b8a8027095c697b46c111cb4","tarball":"https://registry.npmjs.org/@hart/hart-redux/-/hart-redux-0.5.0.tgz","integrity":"sha512-OYuMCuWb2DaOOl6ULmqN4oCQLNDWoTO+XIqNlxfkVGH83t8N7kJ1X7mFz827QMsrERyhM2My0pxOiyUCaQCMsA==","signatures":[{"sig":"MEUCIHD3KPKLzG5CVsKDKEZK4b7rMaYZAMaJjHHxxI3iEyLXAiEAhojASaLMFxI3AAfcWqmN33m3OMsXBapXZ/ex1y4GDRc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/index.js","gitHead":"93f745c5110583e2b5d9c86e36cdaa6a5a3d541a","scripts":{"test":"neutrino test --use neutrino-preset-node neutrino-preset-mocha"},"_npmUser":{"name":"markario","email":"markzepedajr@gmail.com"},"repository":{"url":"git@gitlab.hrt.io:frontend/hart-redux.git","type":"git"},"_npmVersion":"5.3.0","description":"","directories":{},"_nodeVersion":"8.2.1","dependencies":{"redux":"^3.7.2"},"devDependencies":{"neutrino":"^6.1.5","neutrino-preset-node":"^6.1.5","neutrino-preset-mocha":"^6.1.5"},"_npmOperationalInternal":{"tmp":"tmp/hart-redux-0.5.0.tgz_1502850179212_0.288249455858022","host":"s3://npm-registry-packages"}},"0.5.1":{"name":"@hart/hart-redux","version":"0.5.1","author":{"name":"Mark Zepeda"},"license":"ISC","_id":"@hart/hart-redux@0.5.1","maintainers":[{"name":"markario","email":"markzepedajr@gmail.com"},{"name":"yitongwang","email":"yitong.wang@hart.com"},{"name":"hartbot","email":"tools@hart.com"},{"name":"evliu","email":"azn_logik@yahoo.com"},{"name":"arronhunt","email":"arronjhunt@gmail.com"},{"name":"ptariche","email":"ptariche@gmail.com"}],"dist":{"shasum":"5331b147e1e5410d3a726a92b33e441793ed7732","tarball":"https://registry.npmjs.org/@hart/hart-redux/-/hart-redux-0.5.1.tgz","integrity":"sha512-a0G8MzBcK2WTLd+s26YEb+wSlAzkfCJg7fFyPyIptULBJIHr5PWc2uaZ+EkOfUYEZKlT341DL3AQuUuGxDyMBw==","signatures":[{"sig":"MEQCIFdvLrzJr1tQKvScufAy7K1p0ASP3RC9FJUvXFknr1W/AiAeoVOfe3UxuPecakYGhO3kJwNo2aaKSmkmHIoJhh71VQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/index.js","gitHead":"df4a8838b33afa5de08c5d3f0c89bc41363e8636","scripts":{"test":"neutrino test --use neutrino-preset-node neutrino-preset-mocha"},"_npmUser":{"name":"markario","email":"markzepedajr@gmail.com"},"repository":{"url":"git@gitlab.hrt.io:frontend/hart-redux.git","type":"git"},"_npmVersion":"5.3.0","description":"","directories":{},"_nodeVersion":"8.2.1","dependencies":{"redux":"^3.7.2"},"devDependencies":{"neutrino":"^6.1.5","neutrino-preset-node":"^6.1.5","neutrino-preset-mocha":"^6.1.5"},"_npmOperationalInternal":{"tmp":"tmp/hart-redux-0.5.1.tgz_1502850684086_0.17779801227152348","host":"s3://npm-registry-packages"}},"0.6.0":{"name":"@hart/hart-redux","version":"0.6.0","author":{"name":"Mark Zepeda"},"license":"ISC","_id":"@hart/hart-redux@0.6.0","maintainers":[{"name":"markario","email":"markzepedajr@gmail.com"},{"name":"yitongwang","email":"yitong.wang@hart.com"},{"name":"hartbot","email":"tools@hart.com"},{"name":"evliu","email":"azn_logik@yahoo.com"},{"name":"arronhunt","email":"arronjhunt@gmail.com"},{"name":"ptariche","email":"ptariche@gmail.com"}],"dist":{"shasum":"c6f1a9b370b725159d4de8bc84541964d99dbbcf","tarball":"https://registry.npmjs.org/@hart/hart-redux/-/hart-redux-0.6.0.tgz","integrity":"sha512-m5yZk3yNMLw4la17TpvTZuqENl1KSKD1WZP9CI9d/vbvROkfuF7KEWc+UwEo82ga/OksTb2f345glPBMqoimUA==","signatures":[{"sig":"MEUCIQDYUHfbgfnmbd911HanVntyGy7ojDHLTe803CrAvV/6uwIgUkiWxTIobhrIWAwMuUOlxFP86kKkPpVUsuc0eWPjirQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/index.js","gitHead":"518745f5d9a711021ed76ed7c76118e2a6706f15","scripts":{"test":"neutrino test --use neutrino-preset-node neutrino-preset-mocha"},"_npmUser":{"name":"markario","email":"markzepedajr@gmail.com"},"repository":{"url":"git@gitlab.hrt.io:frontend/hart-redux.git","type":"git"},"_npmVersion":"5.3.0","description":"","directories":{},"_nodeVersion":"8.2.1","dependencies":{"redux":"^3.7.2"},"devDependencies":{"neutrino":"^6.1.5","neutrino-preset-node":"^6.1.5","neutrino-preset-mocha":"^6.1.5"},"_npmOperationalInternal":{"tmp":"tmp/hart-redux-0.6.0.tgz_1502903908424_0.28730011242441833","host":"s3://npm-registry-packages"}},"0.7.0":{"name":"@hart/hart-redux","version":"0.7.0","author":{"name":"Mark Zepeda"},"license":"ISC","_id":"@hart/hart-redux@0.7.0","maintainers":[{"name":"markario","email":"markzepedajr@gmail.com"},{"name":"yitongwang","email":"yitong.wang@hart.com"},{"name":"hartbot","email":"tools@hart.com"},{"name":"evliu","email":"azn_logik@yahoo.com"},{"name":"arronhunt","email":"arronjhunt@gmail.com"},{"name":"ptariche","email":"ptariche@gmail.com"}],"dist":{"shasum":"5b4087e97bf4c39f49e15e1697dc505a7edfb3c0","tarball":"https://registry.npmjs.org/@hart/hart-redux/-/hart-redux-0.7.0.tgz","integrity":"sha512-4pH9W4VByoRSNfvRCRPDR9fK6NGUXnvZQorjRaMYZbvqbdtvW/2rv4UyJjdncQRTaNeZdq8+EU933AORoZZ/uQ==","signatures":[{"sig":"MEUCIQC+axWiy2/nOvPVf/ANEVrFI2yL24HIzq4T/Cg/lBb71QIgAaxjR9ZbHaOAulaUJVKdxOqNGJtP+r9VhLKJBcPqGrU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/index.js","gitHead":"193eb8e202b41657233af828a4504c396e5e986c","scripts":{"test":"neutrino test --use neutrino-preset-node neutrino-preset-mocha"},"_npmUser":{"name":"markario","email":"markzepedajr@gmail.com"},"repository":{"url":"git@gitlab.hrt.io:frontend/hart-redux.git","type":"git"},"_npmVersion":"5.3.0","description":"","directories":{},"_nodeVersion":"8.2.1","dependencies":{"redux":"^3.7.2"},"devDependencies":{"neutrino":"^6.1.5","neutrino-preset-node":"^6.1.5","neutrino-preset-mocha":"^6.1.5"},"_npmOperationalInternal":{"tmp":"tmp/hart-redux-0.7.0.tgz_1502909452368_0.047429506899788976","host":"s3://npm-registry-packages"}},"0.8.0":{"name":"@hart/hart-redux","version":"0.8.0","author":{"name":"Mark Zepeda"},"license":"ISC","_id":"@hart/hart-redux@0.8.0","maintainers":[{"name":"markario","email":"markzepedajr@gmail.com"},{"name":"yitongwang","email":"yitong.wang@hart.com"},{"name":"hartbot","email":"tools@hart.com"},{"name":"evliu","email":"azn_logik@yahoo.com"},{"name":"arronhunt","email":"arronjhunt@gmail.com"},{"name":"ptariche","email":"ptariche@gmail.com"}],"dist":{"shasum":"c9757e1a97314714d7d13c7145d5c7c5a9c992e9","tarball":"https://registry.npmjs.org/@hart/hart-redux/-/hart-redux-0.8.0.tgz","integrity":"sha512-p/HJKtN+m5oSAUdri0S0rsgIBtqtMsBLyjRAAlEb5tWq7GT9k6lqenXz9+kqowHHGBsnSfEpaBTpPwtvtorWhg==","signatures":[{"sig":"MEUCID3k78HzQto3uzC4Gy2FwIXp8QKeuk5jvUcBGSgbKp4yAiEApePKIgBgZUSSk5/sYdE6pV/gjeWISkhcDsu0RmPqztI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/index.js","gitHead":"bfe5777018b6c5e86c34e5b0f0276a37244e8b4e","scripts":{"test":"neutrino test --use neutrino-preset-node neutrino-preset-mocha"},"_npmUser":{"name":"markario","email":"markzepedajr@gmail.com"},"repository":{"url":"git@gitlab.hrt.io:frontend/hart-redux.git","type":"git"},"_npmVersion":"5.3.0","description":"","directories":{},"_nodeVersion":"8.2.1","dependencies":{"redux":"^3.7.2"},"devDependencies":{"chai":"^4.1.1","neutrino":"^6.1.5","redux-thunk":"^2.2.0","redux-promise":"^0.5.3","neutrino-preset-node":"^6.1.5","neutrino-preset-mocha":"^6.1.5"},"_npmOperationalInternal":{"tmp":"tmp/hart-redux-0.8.0.tgz_1503072283907_0.09931909898295999","host":"s3://npm-registry-packages"}},"0.8.1":{"name":"@hart/hart-redux","version":"0.8.1","author":{"name":"Mark Zepeda"},"license":"ISC","_id":"@hart/hart-redux@0.8.1","maintainers":[{"name":"markario","email":"markzepedajr@gmail.com"},{"name":"yitongwang","email":"yitong.wang@hart.com"},{"name":"hartbot","email":"tools@hart.com"},{"name":"evliu","email":"azn_logik@yahoo.com"},{"name":"arronhunt","email":"arronjhunt@gmail.com"},{"name":"ptariche","email":"ptariche@gmail.com"}],"dist":{"shasum":"cd0c0b0a95fee8795fbcf1b007eccfdafc7f9d3d","tarball":"https://registry.npmjs.org/@hart/hart-redux/-/hart-redux-0.8.1.tgz","integrity":"sha512-cAL8eO3kzv4+wA4N3U/TDLKMsq3QIs1WoYu3NncrnpAYGbCtqj6qM527cRyYWs2QhjjiKd3gqsc3p7TkuH1zVA==","signatures":[{"sig":"MEQCIGeEeADIeVwOYx4bqLkelneRGBCPi7GhNpo7yaZYpW8uAiBABfptYytlV/OoEA5gdWIY0oWyH2hr4zt6u3+xhs/aeA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/index.js","gitHead":"f773c853cc73d8a30a316399f847e5b827dbb236","scripts":{"test":"neutrino test --use neutrino-preset-node neutrino-preset-mocha"},"_npmUser":{"name":"markario","email":"markzepedajr@gmail.com"},"repository":{"url":"git@gitlab.hrt.io:frontend/hart-redux.git","type":"git"},"_npmVersion":"5.3.0","description":"","directories":{},"_nodeVersion":"8.2.1","dependencies":{"redux":"^3.7.2"},"devDependencies":{"chai":"^4.1.1","neutrino":"^6.1.5","redux-thunk":"^2.2.0","redux-promise":"^0.5.3","neutrino-preset-node":"^6.1.5","neutrino-preset-mocha":"^6.1.5"},"_npmOperationalInternal":{"tmp":"tmp/hart-redux-0.8.1.tgz_1503072785175_0.8501135245896876","host":"s3://npm-registry-packages"}},"0.9.0":{"name":"@hart/hart-redux","version":"0.9.0","author":{"name":"Mark Zepeda"},"license":"ISC","_id":"@hart/hart-redux@0.9.0","maintainers":[{"name":"markario","email":"markzepedajr@gmail.com"},{"name":"yitongwang","email":"yitong.wang@hart.com"},{"name":"hartbot","email":"tools@hart.com"},{"name":"evliu","email":"azn_logik@yahoo.com"},{"name":"arronhunt","email":"arronjhunt@gmail.com"},{"name":"ptariche","email":"ptariche@gmail.com"}],"dist":{"shasum":"ff4a289e8dfb966551090f87b04134670e3ab1ba","tarball":"https://registry.npmjs.org/@hart/hart-redux/-/hart-redux-0.9.0.tgz","integrity":"sha512-CX8+YUlK50O6kG99XwsYxnpxbfsZPX+WQ0qikvq6wKbkSpXfakp5crkWDXZLMD90cP620iTYlYYiA1ivqiKnXA==","signatures":[{"sig":"MEUCIQCpzMCclpn6rbOtgqOJwoMZ29/v+aTM2HhoqGAL8KFjRQIgQBp8U7pmkElciX9mIL43ULth82v/JycFK1VvLku28uQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/index.js","gitHead":"b31ab2e30fee761db3b0ae13030886268502d11b","scripts":{"test":"neutrino test --use neutrino-preset-node neutrino-preset-mocha"},"_npmUser":{"name":"markario","email":"markzepedajr@gmail.com"},"repository":{"url":"git@gitlab.hrt.io:frontend/hart-redux.git","type":"git"},"_npmVersion":"5.3.0","description":"","directories":{},"_nodeVersion":"8.2.1","dependencies":{"redux":"^3.7.2"},"devDependencies":{"chai":"^4.1.1","neutrino":"^6.1.5","redux-thunk":"^2.2.0","redux-promise":"^0.5.3","neutrino-preset-node":"^6.1.5","neutrino-preset-mocha":"^6.1.5"},"_npmOperationalInternal":{"tmp":"tmp/hart-redux-0.9.0.tgz_1503073025289_0.5374422504100949","host":"s3://npm-registry-packages"}},"0.10.0":{"name":"@hart/hart-redux","version":"0.10.0","author":{"name":"Mark Zepeda"},"license":"ISC","_id":"@hart/hart-redux@0.10.0","maintainers":[{"name":"markario","email":"markzepedajr@gmail.com"},{"name":"yitongwang","email":"yitong.wang@hart.com"},{"name":"hartbot","email":"tools@hart.com"},{"name":"evliu","email":"azn_logik@yahoo.com"},{"name":"arronhunt","email":"arronjhunt@gmail.com"},{"name":"ptariche","email":"ptariche@gmail.com"}],"dist":{"shasum":"b23d675c51a0af0ff80866823b6635099a18bbe6","tarball":"https://registry.npmjs.org/@hart/hart-redux/-/hart-redux-0.10.0.tgz","integrity":"sha512-l3c2kKhy5+a+VkRfhQyTzgGNowZBG3KSxNC7M88xgY+67oMGbsvz9prV4+vMFpVuD+NCUVvS8u0dEzCo29CuFQ==","signatures":[{"sig":"MEUCIAske54MEmhSXYyZllHNSsyJ2aVqan06bVlBDkLDUg9FAiEAsxTzC0GnXA74TeEn3RELR+Rcwdx+ua/RcdNTwN4qQbM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/index.js","gitHead":"cfb68d330a79780f1ae5e5fe85dc5dabaa0650fb","scripts":{"test":"neutrino test --use neutrino-preset-node neutrino-preset-mocha"},"_npmUser":{"name":"markario","email":"markzepedajr@gmail.com"},"repository":{"url":"git@gitlab.hrt.io:frontend/hart-redux.git","type":"git"},"_npmVersion":"5.3.0","description":"","directories":{},"_nodeVersion":"8.2.1","dependencies":{"redux":"^3.7.2"},"devDependencies":{"chai":"^4.1.1","neutrino":"^6.1.5","redux-thunk":"^2.2.0","redux-promise":"^0.5.3","neutrino-preset-node":"^6.1.5","neutrino-preset-mocha":"^6.1.5"},"_npmOperationalInternal":{"tmp":"tmp/hart-redux-0.10.0.tgz_1503075643286_0.7405854545067996","host":"s3://npm-registry-packages"}},"0.11.0":{"name":"@hart/hart-redux","version":"0.11.0","author":{"name":"Mark Zepeda"},"license":"ISC","_id":"@hart/hart-redux@0.11.0","maintainers":[{"name":"markario","email":"markzepedajr@gmail.com"},{"name":"yitongwang","email":"yitong.wang@hart.com"},{"name":"hartbot","email":"tools@hart.com"},{"name":"evliu","email":"azn_logik@yahoo.com"},{"name":"arronhunt","email":"arronjhunt@gmail.com"},{"name":"ptariche","email":"ptariche@gmail.com"}],"dist":{"shasum":"8e032032f7a8a320a067e94e80fe1e7fc2271015","tarball":"https://registry.npmjs.org/@hart/hart-redux/-/hart-redux-0.11.0.tgz","integrity":"sha512-wrsRzFwsPKItdUC8aPXVa+QZBIxxv2lCGEVas1KT3bCQpYM2BJPntkKZ8tCahEZWNblXsZODcRMY15k1Vhx8aw==","signatures":[{"sig":"MEUCIEpxyYGpbTy4TwK2DTCuNYAp1XF9BJxcK+EKZepGrncxAiEA1kiVvnMTmClocrZoR2SgCiRl2jTHYmbsfHpeTxKpgMM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/index.js","gitHead":"743b622033b4da832c25d5514eea1c1fe8659f63","scripts":{"test":"neutrino test --use neutrino-preset-node neutrino-preset-mocha"},"_npmUser":{"name":"markario","email":"markzepedajr@gmail.com"},"repository":{"url":"git@gitlab.hrt.io:frontend/hart-redux.git","type":"git"},"_npmVersion":"5.3.0","description":"","directories":{},"_nodeVersion":"8.4.0","dependencies":{"redux":"^3.7.2","lodash":"^4.17.4"},"devDependencies":{"chai":"^4.1.1","neutrino":"^6.1.5","redux-thunk":"^2.2.0","redux-promise":"^0.5.3","neutrino-preset-node":"^6.1.5","neutrino-preset-mocha":"^6.1.5"},"_npmOperationalInternal":{"tmp":"tmp/hart-redux-0.11.0.tgz_1503694724190_0.7804507273249328","host":"s3://npm-registry-packages"}},"0.11.1":{"name":"@hart/hart-redux","version":"0.11.1","author":{"name":"Mark Zepeda"},"license":"ISC","_id":"@hart/hart-redux@0.11.1","maintainers":[{"name":"markario","email":"markzepedajr@gmail.com"},{"name":"yitongwang","email":"yitong.wang@hart.com"},{"name":"hartbot","email":"tools@hart.com"},{"name":"evliu","email":"azn_logik@yahoo.com"},{"name":"arronhunt","email":"arronjhunt@gmail.com"},{"name":"ptariche","email":"ptariche@gmail.com"}],"dist":{"shasum":"969862abcea3c73f4fc5be9364d642afe894b476","tarball":"https://registry.npmjs.org/@hart/hart-redux/-/hart-redux-0.11.1.tgz","integrity":"sha512-tgh8D0yZ3GjnvZ7ClGhDBHSRDy6E4CUrmdgWnHrQQUINQ4MDD2+6vUw9DDdoKnihe2YU6at75f7oDlagI58v1g==","signatures":[{"sig":"MEYCIQDwa+Es8feK66u3WlBHy3HEyGhG99Ny72VdA3ZgLohDfwIhAMoq9eoyUifBVlb+M8lPhtcg+pP03QcC0u10raS8IPhI","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/index.js","gitHead":"3f4ac385b2a8936138733a3d53750e3def55f753","scripts":{"test":"neutrino test --use neutrino-preset-node neutrino-preset-mocha"},"_npmUser":{"name":"markario","email":"markzepedajr@gmail.com"},"repository":{"url":"git@gitlab.hrt.io:frontend/hart-redux.git","type":"git"},"_npmVersion":"5.3.0","description":"","directories":{},"_nodeVersion":"8.4.0","dependencies":{"redux":"^3.7.2","lodash":"^4.17.4"},"devDependencies":{"chai":"^4.1.1","neutrino":"^6.1.5","redux-thunk":"^2.2.0","redux-promise":"^0.5.3","neutrino-preset-node":"^6.1.5","neutrino-preset-mocha":"^6.1.5"},"_npmOperationalInternal":{"tmp":"tmp/hart-redux-0.11.1.tgz_1503947312546_0.85903415735811","host":"s3://npm-registry-packages"}},"0.11.2":{"name":"@hart/hart-redux","version":"0.11.2","author":{"name":"Mark Zepeda"},"license":"ISC","_id":"@hart/hart-redux@0.11.2","maintainers":[{"name":"markario","email":"markzepedajr@gmail.com"},{"name":"yitongwang","email":"yitong.wang@hart.com"},{"name":"hartbot","email":"tools@hart.com"},{"name":"evliu","email":"azn_logik@yahoo.com"},{"name":"arronhunt","email":"arronjhunt@gmail.com"},{"name":"ptariche","email":"ptariche@gmail.com"}],"dist":{"shasum":"89b84f1dfb653cbb518db4f56b789cad1be1dcf1","tarball":"https://registry.npmjs.org/@hart/hart-redux/-/hart-redux-0.11.2.tgz","integrity":"sha512-vMn9GrWLys19kNqxTSahaUNOWsAbRA+lKcBpku6IqiPRG+4s0BI5TO5q2CqyCkHYyJvLjDlHQP9XB8rk6jIHmQ==","signatures":[{"sig":"MEUCIQDjS5+e7wOnPcbEOfInIPfL13ddotHDyMJuzwFbrfPQgwIgRrks3bDdBohif+0uMsYxfnxT6L+I3w9Gp2b93/ryDzY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/index.js","gitHead":"a114ef64b63e65a703cdbedcaf24091368b3aa34","scripts":{"test":"neutrino test --use neutrino-preset-node neutrino-preset-mocha"},"_npmUser":{"name":"markario","email":"markzepedajr@gmail.com"},"repository":{"url":"git@gitlab.hrt.io:frontend/hart-redux.git","type":"git"},"_npmVersion":"5.3.0","description":"","directories":{},"_nodeVersion":"8.4.0","dependencies":{"redux":"^3.7.2","lodash":"^4.17.4"},"devDependencies":{"chai":"^4.1.1","neutrino":"^6.1.5","redux-thunk":"^2.2.0","redux-promise":"^0.5.3","neutrino-preset-node":"^6.1.5","neutrino-preset-mocha":"^6.1.5"},"_npmOperationalInternal":{"tmp":"tmp/hart-redux-0.11.2.tgz_1503947478234_0.814922665245831","host":"s3://npm-registry-packages"}},"0.12.0":{"name":"@hart/hart-redux","version":"0.12.0","author":{"name":"Mark Zepeda"},"license":"ISC","_id":"@hart/hart-redux@0.12.0","maintainers":[{"name":"roosri","email":"loosli@gmail.com"},{"name":"markario","email":"markzepedajr@gmail.com"},{"name":"yitongwang","email":"yitong.wang@hart.com"},{"name":"hartbot","email":"tools@hart.com"},{"name":"evliu","email":"azn_logik@yahoo.com"},{"name":"arronhunt","email":"arronjhunt@gmail.com"},{"name":"ptariche","email":"ptariche@gmail.com"}],"dist":{"shasum":"ffc24a41baf71d55b73abeec609fd9fb43bec111","tarball":"https://registry.npmjs.org/@hart/hart-redux/-/hart-redux-0.12.0.tgz","integrity":"sha512-8D9sKqgV1+fS9TPYV2agx3r4qulIz7q8ExEROyGm+dwgKHu0uKiJAfEuOXAe1r2VI/tHh8OOgiwIVnY3rqVblw==","signatures":[{"sig":"MEYCIQD4i3MoceALnV5GV6sdrcuNJrY7e1ZJrx9pnNKYT3DtggIhAPkWOijlCiOTY/2xvDImKyzzlz6VMxTkiJYxsrechakp","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/index.js","gitHead":"2a3c03ed4854a9f9c73be0ce2e1ed5a76b6ac4ca","scripts":{"test":"neutrino test --use neutrino-preset-node neutrino-preset-mocha"},"_npmUser":{"name":"markario","email":"markzepedajr@gmail.com"},"repository":{"url":"git@gitlab.hrt.io:frontend/hart-redux.git","type":"git"},"_npmVersion":"5.3.0","description":"","directories":{},"_nodeVersion":"8.4.0","dependencies":{"redux":"^3.7.2","lodash":"^4.17.4"},"devDependencies":{"chai":"^4.1.1","neutrino":"^6.1.5","redux-thunk":"^2.2.0","redux-promise":"^0.5.3","neutrino-preset-node":"^6.1.5","neutrino-preset-mocha":"^6.1.5"},"_npmOperationalInternal":{"tmp":"tmp/hart-redux-0.12.0.tgz_1503957880047_0.5230651334859431","host":"s3://npm-registry-packages"}},"0.13.0":{"name":"@hart/hart-redux","version":"0.13.0","author":{"name":"Mark Zepeda"},"license":"ISC","_id":"@hart/hart-redux@0.13.0","maintainers":[{"name":"roosri","email":"loosli@gmail.com"},{"name":"markario","email":"markzepedajr@gmail.com"},{"name":"yitongwang","email":"yitong.wang@hart.com"},{"name":"hartbot","email":"tools@hart.com"},{"name":"evliu","email":"azn_logik@yahoo.com"},{"name":"arronhunt","email":"arronjhunt@gmail.com"},{"name":"ptariche","email":"ptariche@gmail.com"}],"dist":{"shasum":"2ea9b1b5df20b32698ddef25e88c40f60f0cabf1","tarball":"https://registry.npmjs.org/@hart/hart-redux/-/hart-redux-0.13.0.tgz","integrity":"sha512-VDXNopiCMKBaFYmD6vC0AN1GK7DxlTWyRFtHZddS0X77MjbS3k8zg1gW8SJR1jCC0G3dwPA9uayC1L6keaIMfA==","signatures":[{"sig":"MEQCIBCHyQrqxpFQ5lPPxYBbPYxf2mkz7PpDbuH75ZALbKHOAiBEkeYNVrNZLP9eMyDBIA0KYBtR3GIkzTOQf326gZmUhg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/index.js","gitHead":"43578a63215e1d4a029403562c206e8b4557bcf1","scripts":{"test":"neutrino test --use neutrino-preset-node neutrino-preset-mocha"},"_npmUser":{"name":"markario","email":"markzepedajr@gmail.com"},"repository":{"url":"git@gitlab.hrt.io:frontend/hart-redux.git","type":"git"},"_npmVersion":"5.3.0","description":"","directories":{},"_nodeVersion":"8.4.0","dependencies":{"redux":"^3.7.2","lodash":"^4.17.4"},"devDependencies":{"chai":"^4.1.1","neutrino":"^6.1.5","redux-thunk":"^2.2.0","redux-promise":"^0.5.3","neutrino-preset-node":"^6.1.5","neutrino-preset-mocha":"^6.1.5"},"_npmOperationalInternal":{"tmp":"tmp/hart-redux-0.13.0.tgz_1504197728018_0.7454799332190305","host":"s3://npm-registry-packages"}},"0.14.0":{"name":"@hart/hart-redux","version":"0.14.0","author":{"name":"Mark Zepeda"},"license":"ISC","_id":"@hart/hart-redux@0.14.0","maintainers":[{"name":"roosri","email":"loosli@gmail.com"},{"name":"markario","email":"markzepedajr@gmail.com"},{"name":"yitongwang","email":"yitong.wang@hart.com"},{"name":"hartbot","email":"tools@hart.com"},{"name":"evliu","email":"azn_logik@yahoo.com"},{"name":"arronhunt","email":"arronjhunt@gmail.com"},{"name":"ptariche","email":"ptariche@gmail.com"}],"dist":{"shasum":"8d646a00080e70b5baf6e0c5b7356ee24656a82b","tarball":"https://registry.npmjs.org/@hart/hart-redux/-/hart-redux-0.14.0.tgz","integrity":"sha512-dTO8eT6zJXHFUHaSu/KY6xdXbpROzMHFoFyNdJbxvjZEPIcvdZ0ERq2zC69C8OCYPbubqos94fKAyvptkjfMMw==","signatures":[{"sig":"MEQCICJhkxLS1h0glQ2KzzTnT9jxMcW654vtU5VZhBMhIFf6AiBcbAcKTj40m9+kSY0OaUn8VnX+WliHJHTzFhU6DCngcA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/index.js","gitHead":"6fc5c5b4e51b5e4e6615a07d980b6d3cf04dedbe","scripts":{"test":"neutrino test --use neutrino-preset-node neutrino-preset-mocha"},"_npmUser":{"name":"markario","email":"markzepedajr@gmail.com"},"repository":{"url":"git@gitlab.hrt.io:frontend/hart-redux.git","type":"git"},"_npmVersion":"5.3.0","description":"","directories":{},"_nodeVersion":"8.4.0","dependencies":{"redux":"^3.7.2","lodash":"^4.17.4"},"devDependencies":{"chai":"^4.1.1","neutrino":"^6.1.5","redux-thunk":"^2.2.0","redux-promise":"^0.5.3","neutrino-preset-node":"^6.1.5","neutrino-preset-mocha":"^6.1.5"},"_npmOperationalInternal":{"tmp":"tmp/hart-redux-0.14.0.tgz_1504208227465_0.2253077500499785","host":"s3://npm-registry-packages"}},"0.14.1":{"name":"@hart/hart-redux","version":"0.14.1","author":{"name":"Mark Zepeda"},"license":"ISC","_id":"@hart/hart-redux@0.14.1","maintainers":[{"name":"roosri","email":"loosli@gmail.com"},{"name":"markario","email":"markzepedajr@gmail.com"},{"name":"yitongwang","email":"yitong.wang@hart.com"},{"name":"hartbot","email":"tools@hart.com"},{"name":"evliu","email":"azn_logik@yahoo.com"},{"name":"arronhunt","email":"arronjhunt@gmail.com"},{"name":"ptariche","email":"ptariche@gmail.com"}],"dist":{"shasum":"fda436f1c8484de6df9ab766c3396e95227ff477","tarball":"https://registry.npmjs.org/@hart/hart-redux/-/hart-redux-0.14.1.tgz","integrity":"sha512-9FPJ5okM6owvgyNxP/Nggu7oSmuc5NJJylwqjXsXiPQTZH0ddVb9DgfvIYDhUuD/Pz1VUELrghAaHeICp8zW+g==","signatures":[{"sig":"MEUCIQDdPb0cKCXrKV6nRv9+DiKRRmzDV0lZhdhDAXRU7Bk0TAIgI7wqr1AVHLjaSASLSdXD2sJZ8sxGJuF1JLobwrTp+/o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/index.js","gitHead":"4f600248318c09434115aa2ce18262a99aca766e","scripts":{"test":"neutrino test --use neutrino-preset-node neutrino-preset-mocha"},"_npmUser":{"name":"markario","email":"markzepedajr@gmail.com"},"repository":{"url":"git@gitlab.hrt.io:frontend/hart-redux.git","type":"git"},"_npmVersion":"5.3.0","description":"","directories":{},"_nodeVersion":"8.4.0","dependencies":{"redux":"^3.7.2","lodash":"^4.17.4"},"devDependencies":{"chai":"^4.1.1","neutrino":"^6.1.5","redux-thunk":"^2.2.0","redux-promise":"^0.5.3","neutrino-preset-node":"^6.1.5","neutrino-preset-mocha":"^6.1.5"},"_npmOperationalInternal":{"tmp":"tmp/hart-redux-0.14.1.tgz_1504209190877_0.7792246644385159","host":"s3://npm-registry-packages"}},"0.15.0":{"name":"@hart/hart-redux","version":"0.15.0","author":{"name":"Mark Zepeda"},"license":"ISC","_id":"@hart/hart-redux@0.15.0","maintainers":[{"name":"roosri","email":"loosli@gmail.com"},{"name":"markario","email":"markzepedajr@gmail.com"},{"name":"yitongwang","email":"yitong.wang@hart.com"},{"name":"hartbot","email":"tools@hart.com"},{"name":"evliu","email":"azn_logik@yahoo.com"},{"name":"arronhunt","email":"arronjhunt@gmail.com"},{"name":"ptariche","email":"ptariche@gmail.com"}],"dist":{"shasum":"f2720dd31ae994e9c6f847b91b107ab789380940","tarball":"https://registry.npmjs.org/@hart/hart-redux/-/hart-redux-0.15.0.tgz","integrity":"sha512-+kzDixutQChIa5cIAszDJ/E8OPzktFnxqdBR1PGNK7evldpf8uN2qnjNbljX18wY189c5BFvsDKUTMutQqqnMA==","signatures":[{"sig":"MEYCIQCykcfZ9K63bg7r4CPQOxcqCBhkZo6FE4cUpSPQwhf50gIhAPUTyzWomG2XNxdUCgIQblMJVnIhcNbP9TkPqFFJEvET","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/index.js","gitHead":"6ae2636c9a680e0b54dc2999c7aa3ad4f7f1b5e2","scripts":{"test":"neutrino test --use neutrino-preset-node neutrino-preset-mocha"},"_npmUser":{"name":"markario","email":"markzepedajr@gmail.com"},"repository":{"url":"git@gitlab.hrt.io:frontend/hart-redux.git","type":"git"},"_npmVersion":"5.3.0","description":"","directories":{},"_nodeVersion":"8.4.0","dependencies":{"redux":"^3.7.2","lodash":"^4.17.4"},"devDependencies":{"chai":"^4.1.1","neutrino":"^6.1.5","redux-thunk":"^2.2.0","redux-promise":"^0.5.3","neutrino-preset-node":"^6.1.5","neutrino-preset-mocha":"^6.1.5"},"_npmOperationalInternal":{"tmp":"tmp/hart-redux-0.15.0.tgz_1504217281221_0.8954476120416075","host":"s3://npm-registry-packages"}},"0.15.1":{"name":"@hart/hart-redux","version":"0.15.1","author":{"name":"Mark Zepeda"},"license":"ISC","_id":"@hart/hart-redux@0.15.1","maintainers":[{"name":"roosri","email":"loosli@gmail.com"},{"name":"markario","email":"markzepedajr@gmail.com"},{"name":"yitongwang","email":"yitong.wang@hart.com"},{"name":"hartbot","email":"tools@hart.com"},{"name":"evliu","email":"azn_logik@yahoo.com"},{"name":"arronhunt","email":"arronjhunt@gmail.com"},{"name":"ptariche","email":"ptariche@gmail.com"}],"dist":{"shasum":"68f4cdf6805be2056e1cda42bf29ffb4b460b03d","tarball":"https://registry.npmjs.org/@hart/hart-redux/-/hart-redux-0.15.1.tgz","integrity":"sha512-vbcOt2csSIx42Btxwg23gYqcbisEWkWeP1MktAG5yqEf9kMokbAVIdpnoqg8OZnvNXUZRE5qYJddpV+V2T+DGg==","signatures":[{"sig":"MEUCIQD0UoYOWiS4MoehE6RS7ekTN2CmciV6pptlBpJm9/DTzAIgLR2Jy8Simi7Bs4tGXCA8hgs5QN5KHZPuN5nmWntTsV8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/index.js","gitHead":"59121293a1e175d150b5135b5a1e933d4bc594da","scripts":{"test":"neutrino test --use neutrino-preset-node neutrino-preset-mocha"},"_npmUser":{"name":"markario","email":"markzepedajr@gmail.com"},"repository":{"url":"git@gitlab.hrt.io:frontend/hart-redux.git","type":"git"},"_npmVersion":"5.3.0","description":"","directories":{},"_nodeVersion":"8.4.0","dependencies":{"redux":"^3.7.2","lodash":"^4.17.4"},"devDependencies":{"chai":"^4.1.1","neutrino":"^6.1.5","redux-thunk":"^2.2.0","redux-promise":"^0.5.3","neutrino-preset-node":"^6.1.5","neutrino-preset-mocha":"^6.1.5"},"_npmOperationalInternal":{"tmp":"tmp/hart-redux-0.15.1.tgz_1504217693800_0.6578386831097305","host":"s3://npm-registry-packages"}},"0.15.2":{"name":"@hart/hart-redux","version":"0.15.2","author":{"name":"Mark Zepeda"},"license":"ISC","_id":"@hart/hart-redux@0.15.2","maintainers":[{"name":"roosri","email":"loosli@gmail.com"},{"name":"markario","email":"markzepedajr@gmail.com"},{"name":"yitongwang","email":"yitong.wang@hart.com"},{"name":"hartbot","email":"tools@hart.com"},{"name":"evliu","email":"azn_logik@yahoo.com"},{"name":"arronhunt","email":"arronjhunt@gmail.com"},{"name":"ptariche","email":"ptariche@gmail.com"}],"dist":{"shasum":"400f8586e2351e2c5f4d7844d59c87829de97e22","tarball":"https://registry.npmjs.org/@hart/hart-redux/-/hart-redux-0.15.2.tgz","integrity":"sha512-HLxvmDmxilOCKAwPz8XgYDV7dvw4K23FYicDiZrjlKpP6Ll6gIm4sL2KpNgC7drxBu31l/tz4Gz29KLwfUoIHw==","signatures":[{"sig":"MEUCIGyixoiVAS7FqZM2J1DBD0mfTVn1SWTDyAYvyWEuQBbBAiEA+XTUA1qnF+u8FUsrnrRyx+DtCvu4wg3Ua1bCBvCFmXg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/index.js","gitHead":"b32983d25e0307448823a4d34cf541389c8fa223","scripts":{"test":"neutrino test --use neutrino-preset-node neutrino-preset-mocha"},"_npmUser":{"name":"markario","email":"markzepedajr@gmail.com"},"repository":{"url":"git@gitlab.hrt.io:frontend/hart-redux.git","type":"git"},"_npmVersion":"5.3.0","description":"","directories":{},"_nodeVersion":"8.4.0","dependencies":{"redux":"^3.7.2","lodash":"^4.17.4"},"devDependencies":{"chai":"^4.1.1","neutrino":"^6.1.5","redux-thunk":"^2.2.0","redux-promise":"^0.5.3","neutrino-preset-node":"^6.1.5","neutrino-preset-mocha":"^6.1.5"},"_npmOperationalInternal":{"tmp":"tmp/hart-redux-0.15.2.tgz_1505501463365_0.6081040364224464","host":"s3://npm-registry-packages"}},"1.0.0-alpha":{"name":"@hart/hart-redux","version":"1.0.0-alpha","author":{"name":"Mark Zepeda"},"license":"ISC","_id":"@hart/hart-redux@1.0.0-alpha","maintainers":[{"name":"roosri","email":"loosli@gmail.com"},{"name":"markario","email":"markzepedajr@gmail.com"},{"name":"yitongwang","email":"yitong.wang@hart.com"},{"name":"hartbot","email":"tools@hart.com"},{"name":"evliu","email":"azn_logik@yahoo.com"},{"name":"arronhunt","email":"arronjhunt@gmail.com"},{"name":"ptariche","email":"ptariche@gmail.com"}],"dist":{"shasum":"150fffa8fe89427869566b0ecc83c47b7ed9dac3","tarball":"https://registry.npmjs.org/@hart/hart-redux/-/hart-redux-1.0.0-alpha.tgz","integrity":"sha512-oQ98mqZqEPXtmExwxqzcWuqxQFBhGcqUrfhU0FDuTnHmPZ1Hp+Kh+T0JoB4iDhOGUVnOZ2OYToqURQ6kScp4Sg==","signatures":[{"sig":"MEYCIQDncL8cXFBSXO7+r1vBM9OafuUBhCNmWNqUlT23/rQwhgIhAL5PgIfjpq3DIQzo1L7bDMaXZB7QU4/zlWyhinTO79q0","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","files":["css","es","lib","umd"],"module":"es/index.js","scripts":{"test":"nwb test-react","build":"nwb build-react-component","clean":"nwb clean-module && nwb clean-demo","start":"nwb serve-react-demo","test:watch":"nwb test-react --server","test:coverage":"nwb test-react --coverage"},"_npmUser":{"name":"markario","email":"markzepedajr@gmail.com"},"repository":{"url":"git@gitlab.hrt.io:frontend/hart-redux.git","type":"git"},"description":"","directories":{},"dependencies":{"redux":"^3.7.2","lodash":"^4.17.4"},"devDependencies":{"nwb":"0.18.x","chai":"^4.1.2","redux-thunk":"^2.2.0","redux-promise":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/hart-redux-1.0.0-alpha.tgz_1506388285114_0.9633859919849783","host":"s3://npm-registry-packages"}},"1.0.1-alpha":{"name":"@hart/hart-redux","version":"1.0.1-alpha","author":{"name":"Mark Zepeda"},"license":"ISC","_id":"@hart/hart-redux@1.0.1-alpha","maintainers":[{"name":"roosri","email":"loosli@gmail.com"},{"name":"markario","email":"markzepedajr@gmail.com"},{"name":"yitongwang","email":"yitong.wang@hart.com"},{"name":"hartbot","email":"tools@hart.com"},{"name":"evliu","email":"azn_logik@yahoo.com"},{"name":"arronhunt","email":"arronjhunt@gmail.com"},{"name":"ptariche","email":"ptariche@gmail.com"}],"dist":{"shasum":"0a0fdd28c1d3f309438970500c3503486c257ea1","tarball":"https://registry.npmjs.org/@hart/hart-redux/-/hart-redux-1.0.1-alpha.tgz","integrity":"sha512-BJKwLA5FVUu9y3bVfxojmsdxwg4JF8aeaXhkJKNMr9T57NKhleVumHQUCWbtKRjNMA+yuRLkYOVYYJNVRuis+Q==","signatures":[{"sig":"MEYCIQChhz1CuMhH4hM8MuyJFuMGfdAg6kurVnUpmkXMVtdZiAIhALYWgkcaV9BtXwpMdJf5GIJdQK+08fpah5F336gOEtTn","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","files":["css","es","lib","umd"],"module":"es/index.js","gitHead":"acbf8b2a11317bb2a917b3b7e5d05e6955c94811","scripts":{"test":"nwb test-react","build":"nwb build-react-component","clean":"nwb clean-module && nwb clean-demo","start":"nwb serve-react-demo","test:watch":"nwb test-react --server","test:coverage":"nwb test-react --coverage"},"_npmUser":{"name":"markario","email":"markzepedajr@gmail.com"},"repository":{"url":"git@gitlab.hrt.io:frontend/hart-redux.git","type":"git"},"_npmVersion":"5.3.0","description":"","directories":{},"_nodeVersion":"8.4.0","dependencies":{"redux":"^3.7.2","lodash":"^4.17.4"},"devDependencies":{"nwb":"0.18.x","chai":"^4.1.2","redux-thunk":"^2.2.0","redux-promise":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/hart-redux-1.0.1-alpha.tgz_1506457761027_0.8582777592819184","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@hart/hart-redux","version":"1.0.1","author":{"name":"Mark Zepeda"},"license":"ISC","_id":"@hart/hart-redux@1.0.1","maintainers":[{"name":"roosri","email":"loosli@gmail.com"},{"name":"markario","email":"markzepedajr@gmail.com"},{"name":"yitongwang","email":"yitong.wang@hart.com"},{"name":"hartbot","email":"tools@hart.com"},{"name":"evliu","email":"azn_logik@yahoo.com"},{"name":"arronhunt","email":"arronjhunt@gmail.com"},{"name":"ptariche","email":"ptariche@gmail.com"}],"dist":{"shasum":"b9bd7b152057f0ad047ff6d594554bda779f432a","tarball":"https://registry.npmjs.org/@hart/hart-redux/-/hart-redux-1.0.1.tgz","integrity":"sha512-CmgLVaL8gj1/9fGL0+2EkSDH9PzsUic57Av9FkmWeiMJcKm5m1hrQMAuqk+cb4+DKANqp10sAlfz2cOu+xsQlw==","signatures":[{"sig":"MEUCIDabu8CpZnrv1++awE0F76dNfTs3lxqYFCV3ZUrehUbKAiEA4vkQ7/a0cSgMc9oeuq9K8q7DLdvTl9kpSda+5p7SjgA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","files":["css","es","lib","umd"],"module":"es/index.js","gitHead":"ba3293ab9fe51558d0ddaff66fda6f4114d4887c","scripts":{"test":"nwb test-react","build":"nwb build-react-component","clean":"nwb clean-module && nwb clean-demo","start":"nwb serve-react-demo","test:watch":"nwb test-react --server","test:coverage":"nwb test-react --coverage"},"_npmUser":{"name":"markario","email":"markzepedajr@gmail.com"},"repository":{"url":"git@gitlab.hrt.io:frontend/hart-redux.git","type":"git"},"_npmVersion":"5.3.0","description":"yikes","directories":{},"_nodeVersion":"8.4.0","dependencies":{"redux":"^3.7.2","lodash":"^4.17.4"},"devDependencies":{"nwb":"0.18.x","chai":"^4.1.2","redux-thunk":"^2.2.0","redux-promise":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/hart-redux-1.0.1.tgz_1506635866802_0.6153193237259984","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"@hart/hart-redux","version":"1.0.2","author":{"name":"Mark Zepeda"},"license":"ISC","_id":"@hart/hart-redux@1.0.2","maintainers":[{"name":"markario","email":"markzepedajr@gmail.com"},{"name":"yitongwang","email":"yitong.wang@hart.com"},{"name":"hartbot","email":"tools@hart.com"},{"name":"evliu","email":"azn_logik@yahoo.com"},{"name":"arronhunt","email":"arronjhunt@gmail.com"},{"name":"ptariche","email":"ptariche@gmail.com"}],"dist":{"shasum":"b24e782c407f28be0f97ceefdcfa94d1b162bb09","tarball":"https://registry.npmjs.org/@hart/hart-redux/-/hart-redux-1.0.2.tgz","integrity":"sha512-PGx0OCNr9XD2p3oFdqwdnuDi71b7IhqwHAEclVv4WfLlurA/fW1GUVhY3TmGJZd4IqGYwd0/k6HEOMu4QS8aHw==","signatures":[{"sig":"MEYCIQCVv+8GsP1GvM4dyfs4tOkGEofbfgmVsQ/GeWjsjbev1wIhAJsR1inlIQBRuTE1Ovbag1uJ7Ath47Vu/RlcYndVdP+f","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","files":["css","es","lib","umd"],"module":"es/index.js","gitHead":"4151d76b741d91ea0f3491cc55d36d8829213e24","scripts":{"test":"nwb test-react","build":"nwb build-react-component","clean":"nwb clean-module && nwb clean-demo","start":"nwb serve-react-demo","test:watch":"nwb test-react --server","test:coverage":"nwb test-react --coverage"},"_npmUser":{"name":"markario","email":"markzepedajr@gmail.com"},"repository":{"url":"git@gitlab.hrt.io:frontend/hart-redux.git","type":"git"},"_npmVersion":"5.3.0","description":"Hart Redux provides a set of modules that each aim to simplify and accelerate Redux development. These modules work equally well independently or mixed and matched. The philosophy behind these modules is to maintain flexibility and interoperability. If yo","directories":{},"_nodeVersion":"8.4.0","dependencies":{"redux":"^3.7.2","lodash":"^4.17.4"},"devDependencies":{"nwb":"0.18.x","chai":"^4.1.2","redux-thunk":"^2.2.0","redux-promise":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/hart-redux-1.0.2.tgz_1510710015298_0.6514289295300841","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"@hart/hart-redux","version":"1.0.3","author":{"name":"Mark Zepeda"},"license":"ISC","_id":"@hart/hart-redux@1.0.3","maintainers":[{"name":"markario","email":"markzepedajr@gmail.com"},{"name":"yitongwang","email":"yitong.wang@hart.com"},{"name":"hartbot","email":"tools@hart.com"},{"name":"evliu","email":"azn_logik@yahoo.com"},{"name":"arronhunt","email":"arronjhunt@gmail.com"},{"name":"ptariche","email":"ptariche@gmail.com"}],"dist":{"shasum":"f6c03a28d153f1507f5b070d0a236adbb9ea49fa","tarball":"https://registry.npmjs.org/@hart/hart-redux/-/hart-redux-1.0.3.tgz","integrity":"sha512-ca7sWMB8YyIplgr3Lk36+vNu9G6XVPCDAQmVV+/XxEyNOHMJv56wQyVTpUs9Yac+XiQkKcepukIGmQgmnIje4g==","signatures":[{"sig":"MEUCIF+9Bhj36YrZVTq2pMQMjFBMEMhUbsCva8nBI0LA32UkAiEAxLLt7vXUGDBx8lkRB0Nl9D4415Ag/wHobzRKcXINKjI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","files":["css","es","lib","umd"],"module":"es/index.js","gitHead":"4151d76b741d91ea0f3491cc55d36d8829213e24","scripts":{"test":"nwb test-react","build":"nwb build-react-component","clean":"nwb clean-module && nwb clean-demo","start":"nwb serve-react-demo","test:watch":"nwb test-react --server","test:coverage":"nwb test-react --coverage"},"_npmUser":{"name":"markario","email":"markzepedajr@gmail.com"},"repository":{"url":"git@gitlab.hrt.io:frontend/hart-redux.git","type":"git"},"_npmVersion":"5.3.0","description":"Hart Redux provides a set of modules that each aim to simplify and accelerate Redux development. These modules work equally well independently or mixed and matched. The philosophy behind these modules is to maintain flexibility and interoperability. If yo","directories":{},"_nodeVersion":"8.4.0","dependencies":{"redux":"^3.7.2","lodash":"^4.17.4"},"devDependencies":{"nwb":"0.18.x","chai":"^4.1.2","redux-thunk":"^2.2.0","redux-promise":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/hart-redux-1.0.3.tgz_1510948303933_0.8045908792410046","host":"s3://npm-registry-packages"}},"2.0.0-alpha":{"name":"@hart/hart-redux","version":"2.0.0-alpha","author":{"name":"Mark Zepeda"},"license":"ISC","_id":"@hart/hart-redux@2.0.0-alpha","maintainers":[{"name":"markario","email":"markzepedajr@gmail.com"},{"name":"yitongwang","email":"yitong.wang@hart.com"},{"name":"hartbot","email":"tools@hart.com"},{"name":"evliu","email":"azn_logik@yahoo.com"},{"name":"arronhunt","email":"arronjhunt@gmail.com"},{"name":"ptariche","email":"ptariche@gmail.com"}],"dist":{"shasum":"3ce5404e46b74237b8d44298bd8680e106bc1994","tarball":"https://registry.npmjs.org/@hart/hart-redux/-/hart-redux-2.0.0-alpha.tgz","integrity":"sha512-6WANXx1VglHvjIVOQJiUyDd/h0dxmec/VEnIbHlMyf0b5mf96DpT/elW8c+8+/qecOsVqRP6ntKpreEFRC/5vw==","signatures":[{"sig":"MEUCIBCd4jUSA4n4U+6UUYVgwBPM40vMMb0Cr5UArwjVJ+NEAiEAy6UN6OqbzmPGMblSG7aGTYC7V77ONeppFzFcwVpdJ3I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","files":["css","es","lib","umd"],"module":"es/index.js","gitHead":"e6081751cb68e47a922456eb48d4c512a73d507b","scripts":{"test":"nwb test-react","build":"nwb build-react-component","clean":"nwb clean-module && nwb clean-demo","start":"nwb serve-react-demo","test:watch":"nwb test-react --server","test:coverage":"nwb test-react --coverage"},"_npmUser":{"name":"markario","email":"markzepedajr@gmail.com"},"repository":{"url":"git@gitlab.hrt.io:frontend/hart-redux.git","type":"git"},"_npmVersion":"5.3.0","description":"Hart Redux provides a set of modules that each aim to simplify and accelerate Redux development. These modules work equally well independently or mixed and matched. The philosophy behind these modules is to maintain flexibility and interoperability. If yo","directories":{},"_nodeVersion":"8.4.0","dependencies":{"redux":"^3.7.2","lodash":"^4.17.4"},"devDependencies":{"nwb":"0.18.x","chai":"^4.1.2","redux-thunk":"^2.2.0","redux-promise":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/hart-redux-2.0.0-alpha.tgz_1513793647813_0.38095490355044603","host":"s3://npm-registry-packages"}},"1.0.4":{"name":"@hart/hart-redux","version":"1.0.4","author":{"name":"Mark Zepeda"},"license":"ISC","_id":"@hart/hart-redux@1.0.4","maintainers":[{"name":"arronhunt","email":"arronjhunt@gmail.com"},{"name":"coreybruyere","email":"hello@coreybruyere.com"},{"name":"evliu","email":"azn_logik@yahoo.com"},{"name":"hartbot","email":"tools@hart.com"},{"name":"hoahohart","email":"hoa.ho@hart.com"},{"name":"markbrooke","email":"mark@markbrooke.com"},{"name":"ptariche","email":"ptariche@gmail.com"},{"name":"walston","email":"nathanielwalston@gmail.com"},{"name":"yitongwang","email":"yitong.wang@hart.com"}],"dist":{"shasum":"7c75e6be794d07a4b8f5d97f85fc0dca66a5530f","tarball":"https://registry.npmjs.org/@hart/hart-redux/-/hart-redux-1.0.4.tgz","fileCount":23,"integrity":"sha512-y0cKrbP8X7U+ylqEhHlPoO/bzkUthz7CbMzy29XpTjKx91KfPOkBcFQoWG2dIET1twP05q2OMkxQkYAtfONJOQ==","signatures":[{"sig":"MEQCIBpJALUlEpiOAzNWZfDVKXm+JSL74n+bemyxMsyVgrPaAiBWDlq9j44xdRYvBnbyGowlnzFVZw7kFwyOVzr3amsIEQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":59019,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2J8ECRA9TVsSAnZWagAAeUgQAJjuRsDZJ20WcOhjhFed\nYN1f/G7cLEhyJj8uguj2Bg8k08DeAuPOI6u4Iwq9veiWPoDJ1sNCYYmvAAyF\nh3ZwuHaoPbtotHiZ9GhtKexo93JfJKulbcahJ8eSL95nNheoYzSkKbNfq/OT\nukoHSIgi8Ts6tR84jpjlHs/CseG3jVAA17h61NzIN98QhTzOj9g8lyeTcG5A\nuP8JNjFLFYoNaxI6gSxD8ai6/4mvITlwMWWjilNmbvITen21Tl5XO3lqzFHP\nzGFqOTevBKaEtpAWlnKxouzSBEEwsK6KqQ219JGHmNLlnaSmOJ/kpQyM9H6b\nid4gxYFobU6L1PiCpVlFMULnYHeDlq0MQiqv9IulHM6RE7c4zfHRasbduJe+\niqz7YNfZ5VNDsmKrto/+hSJhrQkZr6fbJeMvCKYjw4X+KCO17jar9GfX4JwG\nUa9ldrPPEuY2VYP61Ga3MgzDGQ7mavlpKA8ejQcw7mBaCirQyl4FS4dv9WhG\nnbQyeJGL96S/RZm7URaPZKm1g0OiM4fyJxQ2AZz58MpfLbOY7O1h5ttTGJUX\nFg8H3tDZkwwkZXzoDw5MZYLWTy84khWQr7j5Fuf4ZpEEqP2JeqNl6n7kjH8M\n/Twwj+yIMDLBUFrM/PxTqQK9VjDSIdGPNC0ebFNrUFTGAe9gDoEVj3Xkfbpr\n25/+\r\n=lEuG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","files":["css","es","lib","umd"],"module":"es/index.js","gitHead":"01dfa99ae0d94735e4057ef000e23eec0ac77ad2","scripts":{"test":"nwb test-react","build":"nwb build-react-component","clean":"nwb clean-module && nwb clean-demo","start":"nwb serve-react-demo","test:watch":"nwb test-react --server","test:coverage":"nwb test-react --coverage"},"_npmUser":{"name":"evliu","email":"azn_logik@yahoo.com"},"repository":{"url":"git@gitlab.hrt.io:frontend/hart-redux.git","type":"git"},"_npmVersion":"6.1.0","description":"Hart Redux provides a set of modules that each aim to simplify and accelerate Redux development. These modules work equally well independently or mixed and matched. The philosophy behind these modules is to maintain flexibility and interoperability. If yo","directories":{},"_nodeVersion":"10.6.0","dependencies":{"redux":"^4.0.0","lodash":"^4.17.10"},"_hasShrinkwrap":false,"devDependencies":{"nwb":"^0.22.0","chai":"^4.1.2","redux-thunk":"^2.3.0","redux-promise":"^0.6.0"},"_npmOperationalInternal":{"tmp":"tmp/hart-redux_1.0.4_1532129410067_0.4600238243320738","host":"s3://npm-registry-packages"}}},"time":{"created":"2017-08-09T18:05:46.621Z","modified":"2024-12-16T16:47:04.939Z","0.0.1":"2017-08-09T18:05:46.621Z","0.1.0":"2017-08-15T18:04:31.082Z","0.2.0":"2017-08-16T01:09:15.018Z","0.3.0":"2017-08-16T01:52:23.301Z","0.4.0":"2017-08-16T02:08:28.448Z","0.5.0":"2017-08-16T02:22:59.422Z","0.5.1":"2017-08-16T02:31:24.198Z","0.6.0":"2017-08-16T17:18:28.483Z","0.7.0":"2017-08-16T18:50:52.585Z","0.8.0":"2017-08-18T16:04:44.003Z","0.8.1":"2017-08-18T16:13:05.412Z","0.9.0":"2017-08-18T16:17:05.365Z","0.10.0":"2017-08-18T17:00:43.406Z","0.11.0":"2017-08-25T20:58:44.337Z","0.11.1":"2017-08-28T19:08:32.724Z","0.11.2":"2017-08-28T19:11:18.404Z","0.12.0":"2017-08-28T22:04:40.223Z","0.13.0":"2017-08-31T16:42:08.203Z","0.14.0":"2017-08-31T19:37:07.594Z","0.14.1":"2017-08-31T19:53:10.974Z","0.15.0":"2017-08-31T22:08:01.401Z","0.15.1":"2017-08-31T22:14:53.893Z","0.15.2":"2017-09-15T18:51:03.482Z","1.0.0-alpha":"2017-09-26T01:11:25.194Z","1.0.1-alpha":"2017-09-26T20:29:21.100Z","1.0.1":"2017-09-28T21:57:46.909Z","1.0.2":"2017-11-15T01:40:15.404Z","1.0.3":"2017-11-17T19:51:44.314Z","2.0.0-alpha":"2017-12-20T18:14:07.933Z","1.0.4":"2018-07-20T23:30:10.142Z"},"author":{"name":"Mark Zepeda"},"license":"ISC","repository":{"url":"git@gitlab.hrt.io:frontend/hart-redux.git","type":"git"},"description":"Hart Redux provides a set of modules that each aim to simplify and accelerate Redux development. These modules work equally well independently or mixed and matched. The philosophy behind these modules is to maintain flexibility and interoperability. If yo","maintainers":[{"email":"tools@hart.com","name":"hartbot"},{"email":"drew.delano@hart.com","name":"drewdelanohart"},{"email":"kortnee.johnson@hart.com","name":"kortnee"},{"email":"madsen.adam@gmail.com","name":"ajmadsen"}],"readme":"# Hart Redux\n\nHart Redux provides a set of modules that each aim to simplify and accelerate Redux development. These modules work equally well independently or mixed and matched. The philosophy behind these modules is to maintain flexibility and interoperability. If your project requires more and more custom code, you can remove/replace every Hart Redux component gracefully; as such, these modules are excellent for jump-starting your development without committment.\n\n## Install\n\n```\nnpm install @hart/hart-redux\n\nyarn add @hart/hart-redux\n```\n\n## Modules\n\n### ActionTypes\n\nThe ActionTypes module generates a nested map of action type strings for your Action Creators and Reducers to reference. The map consists of top-level \"operations\" with sub-maps of each of the \"actions\".\n\n#### Usage\n\n```\nimport { ActionTypes } from '@hart/hart-redux';\n\n//pass in a unique model name\nconst actionTypes = ActionTypes(\"Foo\");\n```\n\n##### Result\n\n```\n{\n\tCREATE: {\n\t\tREQUEST: 'FOO_CREATE_REQUEST',\n\t\tSUCCESS: 'FOO_CREATE_SUCCESS',\n\t\tERROR: 'FOO_CREATE_ERROR'\n\t},\n\tREAD: {\n\t\tREQUEST: 'FOO_READ_REQUEST',\n\t\tSUCCESS: 'FOO_READ_SUCCESS',\n\t\tERROR: 'FOO_READ_ERROR',\n\t}\n\t...\n}\n\n//Now you can access or match your structured set of actions\n\nconst action = {\n\ttype: actionTypes.CREATE.REQUEST,\n\tpayload: ...\n}\n\nswitch(action.type){\n case actionTypes.CREATE.REQUEST:\n \t...\n case actionTypes.CREATE.SUCCESS:\n \t...\n case actionTypes.CREATE.ERROR:\n \t...\n default:\n \t...\n}\n```\n\nAction types strings are created with the following pattern: MODELNAME_OPERATION_ACTION\n\nThe module, by default, generates using the values [\"CREATE\", \"READ\", \"UPDATE\", \"DELETE\"] for operation names and [\"REQUEST\", \"SUCCESS\", \"ERROR\"] for action names. These values can be overriden.\n\n#### Override Defaults\n\n```\nimport ActionTypes, { Defaults } from '@hart/hart-redux/ActionTypes';\n\nconst actionTypes = ActionTypes(\"Foo\", [...Defaults.operations, \"UPSERT\"], [\"REQUEST\", \"SUCCESS\", \"SORTA_WORKED\"]);\n```\n\n##### Results\n\n```\n{\n\tCREATE: {\n\t\tREQUEST: 'FOO_CREATE_SUCCESS',\n\t\tSUCCESS: 'FOO_CREATE_SUCCESS',\n\t\tSORTA_WORKED: 'FOO_CREATE_SORTA_WORKED',\n\t},\n\t...\n\tUPSERT: {\n\t\tREQUEST: 'FOO_UPSERT_REQUEST',\n\t\tSUCCESS: 'FOO_UPSERT_SUCCESS',\n\t\tSORTA_WORKED: 'FOO_UPSERT_SORTA_WORKED',\n\t}\n}\n```\n\nIf you intend to use this module with the Normalized module, it is recommended to append to the defaults rather than remove/replace. Normalized expects the default structure and while you may remap the defaults in Normalized, it may not yield intended results.\n\n#### Operations\n\nDefault operations that correspond to Operation/Action combinations that Normalized Reducers/Selectors expect.\n\n##### CREATE\n\nOperation that attempts to create an object with a resulting id.\n\n##### READ\n\nOperation that attempts to retrieve an object with a specific id.\n\n##### UPDATE\n\nOperation that attempts to update an object with a specific id.\n\n##### DELETE\n\nOperation that attempts to delete an object with a specific id.\n\n#### Actions\n\nDefault actions that correspond to Operation/Action combinations that Normalized Reducers/Selectors expect.\n\n##### REQUEST\n\nAction that attempts an Operation that will return a result that subsequently would be used for a SUCCESS or ERROR action.\n\n##### SUCCESS\n\nAction to dispatch the result of REQUEST action's result.\n\n##### ERROR\n\nAction to dispatch when a REQUEST action fails.\n\n### Normalized\n\nThe Normalized module aims to simplify the common use-case of handling collections of objects with ids in your redux store. \n\nNormalized generates Reducers and Selectors for common (CRUD) operations.  It does so using a map of ActionTypes. The ActionTypes module generates all of the neccesary ActionTypes and by pairing the two modules you can focus on writing the logic of your Action creators. The Normalized module is flexible and allows for renaming for reducers/selectors as well as working along side custom reducers.\n\n#### Usage\n\n```\nconst actionTypes = {\n\tCREATE: {\n\t\tREQUEST: 'FOO_CREATE_REQUEST',\n\t\tSUCCESS: 'FOO_CREATE_SUCCESS',\n\t\tERROR: 'FOO_CREATE_ERROR'\n\t},\n\tREAD: {\n\t\tREQUEST: 'FOO_READ_REQUEST',\n\t\tSUCCESS: 'FOO_READ_SUCCESS',\n\t\tERROR: 'FOO_READ_ERROR',\n\t}\n\t...\n}\n\nconst normalized = Normalized(actionTypes);\n\n```\n\n##### Result\n\nThe resulting object has reducers and selectors mapped to the actionTypes you supplied. With this result you can create a fully functioning Redux store!\n\n```\n\nconst normalized = {\n\treducers: {\n\t\tallIds,\n\t\tbyIds,\n\t\tareObjectsLoading,\n\t\thasObjects,\n\t\tobjectCreating,\n\t\tobjectUpdating,\n\t\tobjectDeleting,\n\t\tpageIds,\n\t\tpages\n\t},\n\tselectors: {\n\t\tgetObjectIds,\n\t\tgetObjects,\n\t\tgetObjectById,\n\t\tgetObjectsByIds,\n\t\tareObjectsLoading,\n\t\thasObjects,\n\t\tisObjectCreating,\n\t\tisObjectUpdating,\n\t\tisObjectDeleting,\n\t\tgetObjectIdsByPage,\n\t\tgetPageMetadata\n\t}\n}\n\n\n```\n\n##### Reducers\n\n###### allIds\n\nReducer that stores an array of object ids. Uses READ, CREATE, and DELETE, SUCCESS actions to add and remove ids from the store.\n\n###### byIds\n\nReducer that stores a map of all of this collection's objects. Uses READ, CREATE, UPDATE, and DELETE, SUCCESS actions to add, update, and remove objects from the store.\n\n###### areObjectsLoading\n\nReducer stores the status of READ operations.\n\n###### hasObjects\n\nReducers that stores an object monitoring READ operations.\n\n###### objectCreating\n\nReducer stores the status of CREATE operations.\n\n###### objectUpdating\n\nReducer stores the status of UPDATE operations.\n\n###### objectDeleting\n\nReducer stores the status of DELETE operations.\n\n###### pageIds\n\nReducer that stores arrays of object ids mapped to page ids from READ.SUCCESS results.\n\n###### pages\n\nReducer that stores metadata from the last READ.SUCCESS result.\n\n##### Selectors\n\n###### getObjectIds(state)\n\nReturns an array of all object ids. Not in any particular order.\n\n###### getObjects(state)\n\nReturns an array of all objects in this collection.\n\n###### getObjectById(state, id)\n\nReturns a specific object with the specified id.\n\n###### getObjectsByIds(state, ids<array>)\n\nReturns an array of objects corresponding to the array of ids specified.\n\n###### areObjectsLoading(state)\n\nReturns true if a READ.REQUEST is still outstanding.\n\n###### hasObjects(state)\n\nReturns an object { hasObjects, error }.\n\nhasObjects will return true/false if there are objects in this collection AND READ.SUCCESS has returned; otherwise, hasObjects will be null and in the case of READ.ERROR, error will hold the last response's error.\n\n###### isObjectCreating(state)\n\nReturns true if a CREATE.REQUEST is still outstanding.\n\n###### isObjectUpdating(state)\n\nReturns true if a UPDATE.REQUEST is still outstanding.\n\n###### isObjectDeleting(state)\n\nReturns true if a DELETE.REQUEST is still outstanding.\n\n###### getObjectIdsByPage(state, pageIndex)\n\nReturns an array of object ids for a given page index.\n\n###### getPageMetadata(state)\n\nReturns an object with metadata from the last paged response of READ.SUCCESS.\n\n```\n{\n\titemsPerPage: int,\n\ttotalItems: int,\n\ttotalPages: int\n}\n```\n\n#### Override Defaults\n\nIf you would like to supply custom Reducer and/or Selector names, Normalized can handle this for you while maintaining all expected functionality.\n\nIn this example we selectively rename some Reducers and some Selectors. \n\nAll Reducer and Selector names are required when overriding; so, feel free to follow this approach if you intend to only rename/use some of the Reducers/Selectors.\n\n```\nimport Normalized, { Defaults } from '@hart/hart-redux/Normalized';\n\nconst reducerNames = Object.assign({}, Defaults.reducerNames, {\n\tareObjectsLoading: \"areFoosLoading\",\n\thasObjects: \"hasFoos\",\n\tobjectCreating: \"fooCreating\",\n\tobjectUpdating: \"fooUpdating\",\n\tobjectDeleting: \"fooDeleting\"\n});\n\nconst selectorNames = Object.assign({}, Defaults.selectorNames, {\n\tgetObjectIds: \"getFooIds\",\n\tgetObjects: \"getFoos\",\n\tgetObjectById: \"getFooById\",\n\tareObjectsLoading: \"areFoosLoading\",\n\thasObjects: \"hasFoos\",\n\tisObjectCreating: \"isFooCreating\",\n\tisObjectUpdating: \"isFooUpdating\",\n\tisObjectDeleting: \"isFooDeleting\",\n});\n\nconst normalized = Normalized(actionTypes, reducerNames, selectorNames);\n\n```\n\n#### Result\n\n```\n\nconst normalized = {\n\treducers: {\n\t\tallIds,\n\t\tbyIds,\n\t\tareFoosLoading,\n\t\thasFoos,\n\t\tfooCreating,\n\t\tfooUpdating,\n\t\tfooDeleting,\n\t\tpageIds,\n\t\tpages\n\t},\n\tselectors: {\n\t\tgetFooIds,\n\t\tgetFoos,\n\t\tgetFooById,\n\t\tgetObjectsByIds,\n\t\tareFoosLoading,\n\t\thasFoos,\n\t\tisFooCreating,\n\t\tisFooUpdating,\n\t\tisFooDeleting,\n\t\tgetObjectIdsByPage,\n\t\tgetPageMetadata\n\t}\n}\n\n```\n\n### RequestAction\n\nThe RequestAction module makes it simple to define action creators for long promise based operations. This makes it very simple to wire up an api with conditional logic for running the operation and dispatch actions before the request and once it succeeds or errors.\n\n#### Usage with ActionTypes and Normalized modules\n\n```\nimport { ActionTypes, Normalized, RequestAction } from '@hart/hart-redux';\n\nconst ActionTypes = ActionTypes(\"foos\");\nconst normalized = Normalized(actionTypes);\nconst { selectors } = normalized;\n\nconst api = {\n\tgetFoo: fooId => Promise.resolve({ \n\t\tdata: [{ id: fooId, name: \"Foo!\" }]  \n\t})\n}\n\nconst loadFoos = RequestAction({\n\tshouldSkip: (getState, ...params) => selectors.isObjectLoading(getState()),\n\toperation: ActionTypes.READ,\n\tpromise: (getState, fooId) => api.getFoo(fooId)\n});\n\n//Hart-Redux will load the foo(s) into state if you loaded normalized.reducers into your Redux Store\n//selectors.getObjectById(state, fooId) === { id: fooId, name: \"Foo!\" }\n```\n\n#### Standalone Usage\n\n```\nimport { RequestAction } from '@hart/hart-redux';\n\nconst ActionTypes = {\n\tREAD: {\n\t\tREQUEST: 'FOO_READ_REQUEST',\n\t\tSUCCESS: 'FOO_READ_SUCCESS',\n\t\tERROR: 'FOO_READ_ERROR',\n\t}\n}\n\nconst Selectors = {\n\tshouldLoad: (state, ...params) => { ... }\n}\n\nconst api = {\n\tgetFoo: fooId => Promise.resolve({ \n\t\tdata: [{ id: fooId, name: \"Foo!\" }]  \n\t})\n}\n\nconst loadFoos = RequestAction({\n\tshouldSkip: (getState, ...params) => Selectors.shouldLoad(getState(), ...params),\n\toperation: ActionTypes.READ,\n\tpromise: (getState, fooId) => api.returnFoos(fooId)\n});\n\nawait loadFoos(1234);\n\n//State will reflect the outcome of ActionTypes.READ.SUCCESS with the {data} returned from the api.getFoo action\n\n```\n\n### Namespace\n\nThe Namespace module applies a namespace to your Selectors so that you can easily organize your top-level modules into your Redux Store without each module having knowledge of the overall store's structure.\n\n#### Usage\n\n```\nimport { Namespace } from '@hart/hart-redux';\nor\nimport { applyNamespace, applyNamespaceToAll } from '@hart/hart-redux/Namespace';\n\nconst state = {\n\tperson: {\n    \tname: \"Tester McTesterson\", \n    \tage: 30\n\t}\n}\n\nconst getName = state => state.name;\nconst getAge = state => state.age;\n\nconst getPersonName = applyNamespace(\"person\", getName);\nconst selectors = applyNamespaceToAll(\"person\", {getName, getAge});\n\nconst name = getPersonName(state); // \"Tester McTesterson\"\nconst age = selectors.getAge(state); // 30\n```\n\n### ModuleConfig\n\nThe ModuleConfig module presents a builder pattern for assembling your Reducers, Selectors, ActionTypes, and Action Creators into a single packaged module using a Namespace. This can optionally also remap your Action Creators with ActionTypes and Selectors to reduce interdepedency between the sources that create Action Creators, Reducers, and Selectors.\n\n#### Usage\n\nThis example returns a function that accepts a Namespace before creating the Redux module. This pattern is useful to keep organization of the store out of the individual redux modules.\n\n```\nimport { ModuleConfig } from '@hart/hart-redux';\n\nexport default function(namespace){\n\treturn new ModuleConfig(namespace)\n\t\t.reducers(reducers)\n\t\t.selectors(selectors)\n\t\t.actionTypes(actionTypes)\n\t\t.actions(actions)\n\t\t.module();\n}\n```\n\n#### Mapping ActionTypes/Selectors to Action Creators\n\n```\nimport { ModuleConfig, ActionTypes, Normalized, RequestAction } from '@hart/hart-redux';\n\nconst actionTypes = ActionTypes(\"bars\");\nconst normalized = Normalized(actionTypes);\nconst actions = {\n\tloadBar: (ActionTypes, Selectors) => RequestAction({\n\t\tshouldSkip: (getState, ...params) => Selectors.isObjectLoading(getState()),\n\t\toperation: ActionTypes.READ,\n\t\tpromise: (getState, bar) => Promise.resolve({data: bar})\n\t})\n}\n\nexport default function(namespace){\n\treturn new ModuleConfig(namespace)\n\t\t.reducers(normalized.reducers)\n\t\t.selectors(normalized.selectors)\n\t\t.actionTypes(actionTypes)\n\t\t.buildActions(actions)\n\t\t.module();\n}\n\n```\n#### api\n\nEach function, except module(), returns the ModuleConfig object for chaining.\n\n##### selectors(selectors<map>)\n\nAccepts a map of selector functions, maps each to the Namespace, and finally adds each into the ModuleConfig. \n\nCan be called multiple times and successive calls will add new keys and replace same-keyed values.\n\n##### reducer(reducer<fn>)\n\nAccepts a single reducer function. Use when you have a single or combined reducer.\n\nSuccessive calls will overwrite the reducer assigned to the ModuleConfig. \n\nIf both reducer() and reducers() are called, the reducer() call will prevail.\n\n##### reducers(reducers<map>)\n\nAccepts a map of reducer functions and adds each into the ModuleConfig. \n\nCan be called multiple times and successive calls will add new keys and replace same-keyed values.\n\nIf both reducer() and reducers() are called, the reducer() call will prevail.\n\n##### actionTypes(actionTypes<map>)\n\nAccepts a map of ActionTypes and adds each into the ModuleConfig. \n\nCan be called multiple times and successive calls will add new keys and replace same-keyed values.\n\n##### actions(actions<map<fn>>)\n\nAccepts a map of Action/Creator functions and adds each into the ModuleConfig. \n\nCan be called multiple times and successive calls will add new keys and replace same-keyed values.\n\n##### buildActions(actions<map<fn>>)\n\nAccepts a map of Action/Creator functions, maps each expecting the signature below, and finally adds each resulting function into the ModuleConfig. \n\nCan be called multiple times and successive calls will add new keys and replace same-keyed values.\n\n```\n(ActionTypes, Selectors) => fn\n```\n\n##### module()\n\nReturns the assembled Redux module.\n\n### MakeStore\n\nMakeStore is a utility function to combine initialState, middleware, enhancers, and a reducer into a Redux store.\n\n#### Usage\n\n```\nimport { combineReducers } from 'redux';\nimport { MakeStore } from '@hart/hart-redux';\n\nconst store = MakeStore({\n\treducer: combineReducers({ reducer1, reducer2 }),\n\tenhancers: [ enhancer1, enhancer2 ],\n\tmiddleware: [ middlewareFn1, middleWareFn2 ],\n\tinitialState: {}\n});\n\n```\n\n### StoreConfig\n\nThe StoreConfig module presents a builder pattern for assembling a Redux store. When combined with modules made with ModuleConfig, a Redux store can be created in a very readable and terse manner.\n\n#### Usage\n\n```\nimport { StoreConfig } from '@hart/hart-redux';\n\nconst storeConfig = new StoreConfig({ initialState: {} });\n\nimport thunkMiddleware from 'redux-thunk';\n\nimport Foos from './Foos'; //Module assembled using ModuleConfig\n\nstoreConfig\n.addEnhancer(enhancerFunction)\n.addMiddleware(thunkMiddleware)\n.addModule(Foos(\"Foos\")); //Passing \"Foos\" as the Namespace for the Foos modules\n\nexport const store = storeConfig.getStore();\n```\n\n#### constructor\n\nThe StoreConfig constructor accepts an object with the following options.\n\n##### reducers\n\nMap of reducer functions keyed by their Namespace.\n\n##### enhancers\n\nArray of enhancer functions.\n\n##### middleware\n\nArray of middleware functions\n\n##### initialState\n\nObject to represent the initial state of the Redux store.\n\n##### \\_combineReducers\n\nOverride the default 'redux' combineReducers function when using getStore().\n\n##### onModuleLoaded\n\nFunction to call for each instance of addModule called.\n\n```\n(namespace, module) => {}\n```\n\n#### api\n\nEach function, except get() and getStore(), returns the StoreConfig object for chaining.\n\n##### addReducer(namespace, reducer<fn>)\n\nAdds a reducer using namespace.\n\n##### addReducers(namespace, reducers<map>)\n\nCombines and adds the resulting combined reducer using namespace.\n\n##### addModule(module<map>)\n\nAdds an entire Redux module to this store. \n\nA Redux module is defined as an object following this pattern.\n\nModules created with ModuleConfig follow this pattern.\n\n```\nconst module = {\n\treducer: fn, //reducer or reducers will be added using the module's namespace.\n\treducers: {}, // passing both reducer and reducers will result in an Error.\n\tnamespace: \"\", //required\n\t... any additional properties //optional\n}\n```\n\n##### addEnhancer(enhancer<fn>)\n\nAdds an enhancer function into the config.\n\n##### addMiddleware(middleware<fn>)\n\nAdds a middleware function into config.\n\n##### get()\n\nget() returns a copy of the config object if you intend to create a Redux store without getStore().\n\n##### getStore()\n\ngetStore() creates and returns a new Redux Store using the MakeStore utility. This will use 'combineReducers' from the 'redux' library to combine reducers added to this config. If does not fit your use case, you can instead use get() to get the final configuration; or pass in \\_combineReducers in the StoreConfig constructor.\n\n## Author\n\n- [Mark Zepeda](https://github.com/markario)\n","readmeFilename":"README.md"}