{"_id":"lore-hook-reducers","_rev":"47-6ccc17115cf8f5fa113407b08649802f","name":"lore-hook-reducers","description":"A lore hook that creates Redux reducers","dist-tags":{"latest":"0.13.0","next":"0.13.0-rc.2"},"versions":{"0.10.0-rc.1":{"name":"lore-hook-reducers","version":"0.10.0-rc.1","license":"MIT","main":"./lib/index.js","description":"A lore hook that creates Redux reducers","keywords":["lore","hook","reducers","redux"],"scripts":{"build":"../../node_modules/.bin/babel src --out-dir lib","clean":"rimraf lib","debug":"mocha debug --compilers js:babel-core/register --recursive","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register test/bootstrap.js test/**/*.spec.js --recursive"},"dependencies":{"lodash":"^4.0.0","lore-utils":"^0.10.0","topsort":"0.0.2"},"devDependencies":{"chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"_id":"lore-hook-reducers@0.10.0-rc.1","_shasum":"8a29fdb685dec230ddbbbfd09a924d832f951950","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.6.0","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"shasum":"8a29fdb685dec230ddbbbfd09a924d832f951950","tarball":"https://registry.npmjs.org/lore-hook-reducers/-/lore-hook-reducers-0.10.0-rc.1.tgz","integrity":"sha512-/4Np/z3kR2QGn2iw3LqNsjkCJCPL4hE0AQJXSGBX91+i3EG0+N3NmoxMY7kyxXhpXBp51VHo0Anb69p1k4XKyA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEn46+iMx/0bbC2JTFFjLAtbV9+TWeIVybMF5hEkupDhAiEAi5mVDs7kSMBm60l1gFRW7uEyS1U0+wdGPBYiRnAvG0Q="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/lore-hook-reducers-0.10.0-rc.1.tgz_1474234426195_0.15097816055640578"},"directories":{}},"0.10.0":{"name":"lore-hook-reducers","version":"0.10.0","license":"MIT","main":"./lib/index.js","description":"A lore hook that creates Redux reducers","keywords":["lore","hook","reducers","redux"],"scripts":{"build":"../../node_modules/.bin/babel src --out-dir lib","clean":"rimraf lib","debug":"mocha debug --compilers js:babel-core/register --recursive","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register test/bootstrap.js test/**/*.spec.js --recursive"},"dependencies":{"lodash":"^4.0.0","lore-utils":"~0.10.0","topsort":"0.0.2"},"devDependencies":{"chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"_id":"lore-hook-reducers@0.10.0","_shasum":"3f77dbbaefddad0d22965185fb6ca0e8c70aacac","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.6.0","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"shasum":"3f77dbbaefddad0d22965185fb6ca0e8c70aacac","tarball":"https://registry.npmjs.org/lore-hook-reducers/-/lore-hook-reducers-0.10.0.tgz","integrity":"sha512-Q8jBiiPjAD4sYEfB/Ei3zQHFCQE+s/WjhTlajmBUVpJP/HGW8QBW8YJvOZkM30CTldKHh75EMI+FL3DQDOx6xg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD858r4T3B45f9S+sog0NFYEH8po8SROfMGpKGLL3pykQIgUTaAT9XShpP0Ko3ny0ksvo5nGc16WgSECCdAgBLuu9Y="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/lore-hook-reducers-0.10.0.tgz_1474239548720_0.586017107591033"},"directories":{}},"0.10.0-beta.1":{"name":"lore-hook-reducers","version":"0.10.0-beta.1","license":"MIT","main":"./lib/index.js","description":"A lore hook that creates Redux reducers","keywords":["lore","hook","reducers","redux"],"scripts":{"build":"../../node_modules/.bin/babel src --out-dir lib","clean":"rimraf lib","debug":"mocha debug --compilers js:babel-core/register --recursive","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register test/bootstrap.js test/**/*.spec.js --recursive"},"dependencies":{"lodash":"^4.0.0","lore-utils":"^0.10.0-beta.1","topsort":"0.0.2"},"devDependencies":{"chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"_id":"lore-hook-reducers@0.10.0-beta.1","_shasum":"ba383f302c1d5d2fff039817454b40b1805e59a8","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.6.0","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"shasum":"ba383f302c1d5d2fff039817454b40b1805e59a8","tarball":"https://registry.npmjs.org/lore-hook-reducers/-/lore-hook-reducers-0.10.0-beta.1.tgz","integrity":"sha512-Rb0gpCK6sz1PdYS+qODLnI6+NHUsyMu1YzaGWgmLcZe6IhhUkr2q/+J6aAvGsmd7Mm4pnYrJxz7y0VmrcF85oQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDr3IO+16idvxRibXCeooz58cHpjrzKpWtP6D/Hn4N14AIhAM/z3dYZf4fSAtzglFwMQSY2m2Ts/tq0Dk0TJWUrDHGI"}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/lore-hook-reducers-0.10.0-beta.1.tgz_1475572927661_0.11427148059010506"},"directories":{}},"0.10.1":{"name":"lore-hook-reducers","version":"0.10.1","license":"MIT","main":"./lib/index.js","description":"A lore hook that creates Redux reducers","keywords":["lore","hook","reducers","redux"],"scripts":{"build":"../../node_modules/.bin/babel src --out-dir lib","clean":"rimraf lib","debug":"mocha debug --compilers js:babel-core/register --recursive","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register test/bootstrap.js test/**/*.spec.js --recursive"},"dependencies":{"lodash":"^4.0.0","lore-utils":"~0.10.0","topsort":"0.0.2"},"devDependencies":{"chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"_id":"lore-hook-reducers@0.10.1","_shasum":"31276e7f8044a157e157787ae8023a6a93256d10","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.6.0","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"shasum":"31276e7f8044a157e157787ae8023a6a93256d10","tarball":"https://registry.npmjs.org/lore-hook-reducers/-/lore-hook-reducers-0.10.1.tgz","integrity":"sha512-A0yPUhJ85vSfaYl25Sqm59YHyR6x/Vh9l8TRw+CKIicnPwA1t4BZSNKYt+lSzDUbNNxiH/XG+di0PG54iS7GlQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCF9Tu7AgW8JhRFKJAtmNbH9+f3ttJ8P5190co4Zl6NngIhAIi1Mnjx2sxR3lR9vP27yM4bHDrWO7+sQMd8QoS03REK"}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/lore-hook-reducers-0.10.1.tgz_1476337271643_0.769375987816602"},"directories":{}},"0.11.0-beta.1":{"name":"lore-hook-reducers","version":"0.11.0-beta.1","license":"MIT","main":"./lib/index.js","description":"A lore hook that creates Redux reducers","keywords":["lore","hook","reducers","redux"],"scripts":{"build":"../../node_modules/.bin/babel src --out-dir lib","clean":"rimraf lib","debug":"mocha debug --compilers js:babel-core/register --recursive","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register test/bootstrap.js test/**/*.spec.js --recursive"},"dependencies":{"lodash":"^4.0.0","lore-utils":"^0.11.0-beta.1","topsort":"0.0.2"},"devDependencies":{"chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"_id":"lore-hook-reducers@0.11.0-beta.1","_shasum":"a2f7cc4492e65e0548e32060d27be10f696f9d99","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.6.0","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"shasum":"a2f7cc4492e65e0548e32060d27be10f696f9d99","tarball":"https://registry.npmjs.org/lore-hook-reducers/-/lore-hook-reducers-0.11.0-beta.1.tgz","integrity":"sha512-ir1EU9swL8jLcaxBLd+jv7+gJjA2f51wUZxQhq8KUBDSeXumIs8ktMKqOKfKOgYSSj85iUoCEf95e1zy9YZ6Ow==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAmRKxQg5bRYPArPkoZXGseWaxl3LZHaVgJkNAq9g0YKAiEAhxLf58CDFIBF4aKNOb6amb8nn9wH5zAzSpa+Djt9YRQ="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/lore-hook-reducers-0.11.0-beta.1.tgz_1481523868122_0.6406336645595729"},"directories":{}},"0.11.0-rc.1":{"name":"lore-hook-reducers","version":"0.11.0-rc.1","license":"MIT","main":"./lib/index.js","description":"A lore hook that creates Redux reducers","keywords":["lore","hook","reducers","redux"],"scripts":{"build":"../../node_modules/.bin/babel src --out-dir lib","clean":"rimraf lib","debug":"mocha debug --compilers js:babel-core/register --recursive","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register test/bootstrap.js test/**/*.spec.js --recursive"},"dependencies":{"lodash":"^4.0.0","lore-utils":"^0.11.0-rc.1","topsort":"0.0.2"},"devDependencies":{"chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"_id":"lore-hook-reducers@0.11.0-rc.1","_shasum":"36fa429a986ac01faa2155609b944d29f47c3851","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.6.0","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"shasum":"36fa429a986ac01faa2155609b944d29f47c3851","tarball":"https://registry.npmjs.org/lore-hook-reducers/-/lore-hook-reducers-0.11.0-rc.1.tgz","integrity":"sha512-G4VxYON0xnOggFnGHI+RaJ8B16vDOe7oBRrEQXAPvpoCHnAOFtlrfzddJ8N+EWQQT1OKAKCEuCCux0/IBfQJ1Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCeAr9y8nGEmtKMWCzhQJvQHT1nOCUwn/sHrtATxl3JzwIgX3rCBVKaEk0/xr8Yw/maNgs0IMzYirgFaav/39OSLyg="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/lore-hook-reducers-0.11.0-rc.1.tgz_1485239115450_0.4712633939925581"},"directories":{}},"0.11.0":{"name":"lore-hook-reducers","version":"0.11.0","license":"MIT","main":"./lib/index.js","description":"A lore hook that creates Redux reducers","keywords":["lore","hook","reducers","redux"],"scripts":{"build":"../../node_modules/.bin/babel src --out-dir lib","clean":"rimraf lib","debug":"mocha debug --compilers js:babel-core/register --recursive","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register test/bootstrap.js test/**/*.spec.js --recursive"},"dependencies":{"lodash":"^4.0.0","lore-utils":"^0.11.0","topsort":"0.0.2"},"devDependencies":{"chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"_id":"lore-hook-reducers@0.11.0","_shasum":"45230161d379920074bf38c43a2995637af6eb75","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.6.0","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"shasum":"45230161d379920074bf38c43a2995637af6eb75","tarball":"https://registry.npmjs.org/lore-hook-reducers/-/lore-hook-reducers-0.11.0.tgz","integrity":"sha512-JQG9b/0d5MhNizploMEnWdmE/iJiNPmYuKbaZo84q/92e9yVbFuYTeI2o2os3o5PRDUe9aN+KguonoPNFk8oeA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCQekIJja3YGZlU2UUHH7Wxz2nS1zBGSNnIpDNCeqUwQQIhAIz47OOxq7in7nHbehaVDx7tyVG82Elx68b0mxfSrgLR"}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/lore-hook-reducers-0.11.0.tgz_1485665716564_0.7192922038957477"},"directories":{}},"0.12.0-beta.1":{"name":"lore-hook-reducers","version":"0.12.0-beta.1","license":"MIT","main":"./lib/index.js","description":"A lore hook that creates Redux reducers","keywords":["lore","hook","reducers","redux"],"scripts":{"build":"../../node_modules/.bin/babel src --out-dir lib","clean":"rimraf lib","debug":"mocha debug --compilers js:babel-core/register --recursive","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register test/bootstrap.js test/**/*.spec.js --recursive"},"dependencies":{"lodash":"^4.0.0","lore-utils":"^0.12.0-beta.1","topsort":"0.0.2"},"devDependencies":{"chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"_id":"lore-hook-reducers@0.12.0-beta.1","_shasum":"fe63150ea73e9da83dc2c5231726153df25525da","_from":".","_npmVersion":"4.4.0","_nodeVersion":"6.6.0","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"shasum":"fe63150ea73e9da83dc2c5231726153df25525da","tarball":"https://registry.npmjs.org/lore-hook-reducers/-/lore-hook-reducers-0.12.0-beta.1.tgz","integrity":"sha512-wNZTA12ihrHkhtm1UHLEF6KjDprhc6LsBeOqS5Z/CBx6VwbTb/IWUqQqlTBX54DOnvgxXL81zf8XkFt0AOA4DQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCH+0iZQt1g1xjcFX5Suekjwq9zXmHe/EALsM0o8g8GSwIhAKUnTBQatxOf3EgMOAb9NfDSTlJeSX/QCvFJ7OUUZaGv"}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/lore-hook-reducers-0.12.0-beta.1.tgz_1488758424739_0.767836942570284"},"directories":{}},"0.11.5":{"name":"lore-hook-reducers","version":"0.11.5","license":"MIT","main":"./lib/index.js","description":"A lore hook that creates Redux reducers","keywords":["lore","hook","reducers","redux"],"scripts":{"build":"../../node_modules/.bin/babel src --out-dir lib","clean":"rimraf lib","debug":"mocha debug --compilers js:babel-core/register --recursive","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register test/bootstrap.js test/**/*.spec.js --recursive"},"dependencies":{"lodash":"^4.0.0","lore-utils":"~0.11.0","topsort":"0.0.2"},"devDependencies":{"chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"_id":"lore-hook-reducers@0.11.5","_shasum":"0454eeb4d04d05f871fddd3f5ab6434c662bce80","_from":".","_npmVersion":"4.4.4","_nodeVersion":"6.6.0","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"shasum":"0454eeb4d04d05f871fddd3f5ab6434c662bce80","tarball":"https://registry.npmjs.org/lore-hook-reducers/-/lore-hook-reducers-0.11.5.tgz","integrity":"sha512-+ey5ts4BhkaHJFW2AkDtvbSZdxpUs2itZiN1rxOMm3rGmcoBxuycIQMiJNypUWkzGnXAoDFYAKbBTXVTjPtkWQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCTQUrV420VLiGVwp7MI7hoQ99D+It2uwbim8E0zFBCYQIgQRLtGJR3akYQ1iLgbm+JaTXuoPheMZ5IeY3ZZhDv/Ls="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/lore-hook-reducers-0.11.5.tgz_1493712260518_0.877879555337131"},"directories":{}},"0.12.0-rc.1":{"name":"lore-hook-reducers","version":"0.12.0-rc.1","license":"MIT","main":"./lib/index.js","description":"A lore hook that creates Redux reducers","keywords":["lore","hook","reducers","redux"],"scripts":{"build":"../../node_modules/.bin/babel src --out-dir lib","clean":"rimraf lib","debug":"mocha debug --compilers js:babel-core/register --recursive","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register test/bootstrap.js test/**/*.spec.js --recursive"},"dependencies":{"lodash":"^4.0.0","lore-utils":"^0.12.0-rc.1","topsort":"0.0.2"},"devDependencies":{"chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"_id":"lore-hook-reducers@0.12.0-rc.1","_shasum":"b104e4bf5b75aeeda9fb7772febb1c852a89d545","_from":".","_npmVersion":"4.4.4","_nodeVersion":"6.6.0","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"shasum":"b104e4bf5b75aeeda9fb7772febb1c852a89d545","tarball":"https://registry.npmjs.org/lore-hook-reducers/-/lore-hook-reducers-0.12.0-rc.1.tgz","integrity":"sha512-/OVnbeudsIVeKAO1WWQkYe4PY2KzQXP0VHGrq0F28SzMGvPUoifI53oMKa/3g1WAMz/SgoP9zcg089LKDzclyA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGUUHxZdc+V861Ep93ZcJ2dCtSemnjuubzwPyck+uXNRAiEAyAKq5SXu6Yg/btgskIKJpXB2RcJJW2vpXoIy2l/2lZo="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/lore-hook-reducers-0.12.0-rc.1.tgz_1493715357233_0.8700855800416321"},"directories":{}},"0.12.0":{"name":"lore-hook-reducers","version":"0.12.0","license":"MIT","main":"./lib/index.js","description":"A lore hook that creates Redux reducers","keywords":["lore","hook","reducers","redux"],"scripts":{"build":"../../node_modules/.bin/babel src --out-dir lib","clean":"rimraf lib","debug":"mocha debug --compilers js:babel-core/register --recursive","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register test/bootstrap.js test/**/*.spec.js --recursive"},"dependencies":{"lodash":"^4.0.0","lore-utils":"^0.12.0","topsort":"0.0.2"},"devDependencies":{"chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"_id":"lore-hook-reducers@0.12.0","_shasum":"e5d5c2144c354ce326837ba36d8968f2ee0e725d","_from":".","_npmVersion":"4.4.4","_nodeVersion":"6.6.0","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"shasum":"e5d5c2144c354ce326837ba36d8968f2ee0e725d","tarball":"https://registry.npmjs.org/lore-hook-reducers/-/lore-hook-reducers-0.12.0.tgz","integrity":"sha512-Bw2HBKOIu001e6kKndAUJZJUSRsfmJUxdpB9GzHKm+dpk5OKqe2p4B68YcdO5nO4XdwySz88sazMbpoBqoFOww==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDC0x95HAcTuZu8lNSU1dRljeFNRc5ignCOhQ351N7mMAiEAjODU0yq12iqoOaC99CLwB9v0gFLrnnlDv7T6uWa2wyo="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/lore-hook-reducers-0.12.0.tgz_1494219623040_0.5270025110803545"},"directories":{}},"0.12.6":{"name":"lore-hook-reducers","version":"0.12.6","license":"MIT","main":"./lib/index.js","description":"A lore hook that creates Redux reducers","keywords":["lore","hook","reducers","redux"],"scripts":{"build":"../../node_modules/.bin/babel src --out-dir lib","clean":"rimraf lib","debug":"mocha debug --compilers js:babel-core/register --recursive","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register test/bootstrap.js test/**/*.spec.js --recursive"},"dependencies":{"lodash":"^4.0.0","lore-utils":"^0.12.6","topsort":"0.0.2"},"devDependencies":{"chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"_id":"lore-hook-reducers@0.12.6","_npmVersion":"5.0.4","_nodeVersion":"6.11.0","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-KKMyCcgMlKhxxbn6zaKcdEB1aIXQUerbX5IFPpwbFUQ7iBRCIxVw31c/e5GVEk6UwnExWh1M1/Tuhd9+TnGaZQ==","shasum":"705d2bd14dbded97f696766b06c65fe6c43fba11","tarball":"https://registry.npmjs.org/lore-hook-reducers/-/lore-hook-reducers-0.12.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD9BlyxreGXXxLOiPoiR3ILKghKridW32Y/RIp1lKjYAQIgA88gLkrUAY03Uk9uesBIVI2THvJFVr0lykaUCNbmrRs="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-reducers-0.12.6.tgz_1499144976161_0.020052500534802675"},"directories":{}},"0.12.7-rc.1":{"name":"lore-hook-reducers","version":"0.12.7-rc.1","license":"MIT","main":"lib/index.js","module":"es/index.js","description":"A lore hook that creates Redux reducers","keywords":["lore","hook","reducers","redux"],"scripts":{"build":"npm run build:cjs && npm run build:es","build:cjs":"BABEL_ENV=cjs ../../node_modules/.bin/babel src --out-dir lib","build:es":"BABEL_ENV=es ../../node_modules/.bin/babel src --out-dir es","clean":"rimraf lib && rimraf es","debug":"mocha debug --compilers js:babel-core/register --recursive","prepublish":"npm run build","test":"BABEL_ENV=test mocha --compilers js:babel-core/register test/bootstrap.js test/**/*.spec.js --recursive"},"dependencies":{"lodash":"^4.0.0","lore-utils":"^0.12.7-rc.1","topsort":"0.0.2"},"devDependencies":{"chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"_id":"lore-hook-reducers@0.12.7-rc.1","_npmVersion":"5.1.0","_nodeVersion":"6.11.0","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-0Jge5yM7lmv8QZn0SQIgkdpxAIOVQPLWoxFtSBBDFeiKCQbakzTDOYXdqDi9/ibJOEQiF/dEnGNNsm0WgK7wCw==","shasum":"0ac77ae267709db50c0b02e12bced130e9c76ea6","tarball":"https://registry.npmjs.org/lore-hook-reducers/-/lore-hook-reducers-0.12.7-rc.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICj7caTu+aSL/4rZ9g5V2fyT7P/I3WIkYpQlwcwZ3rQcAiAuqVuFj+QeRfJ6MAOgA+F4BJq7Jyjla0F7TCy/yA+jqw=="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-reducers-0.12.7-rc.1.tgz_1499638575980_0.9028959961142391"},"directories":{}},"0.13.0-beta.1":{"name":"lore-hook-reducers","version":"0.13.0-beta.1","license":"MIT","main":"lib/index.js","description":"A lore hook that creates Redux reducers","keywords":["lore","hook","reducers","redux"],"scripts":{"build":"npm run build:cjs && npm run build:es","build:cjs":"BABEL_ENV=cjs ../../node_modules/.bin/babel src --out-dir lib","build:es":"BABEL_ENV=es ../../node_modules/.bin/babel src --out-dir es","clean":"rimraf lib && rimraf es","debug":"mocha debug --compilers js:babel-core/register --recursive","lint":"../../node_modules/.bin/eslint src","prepublish":"npm run build","test":"BABEL_ENV=test mocha --compilers js:babel-core/register test/bootstrap.js test/**/*.spec.js --recursive"},"dependencies":{"lodash":"^4.0.0","lore-utils":"^0.13.0-beta.1","topsort":"0.0.2"},"devDependencies":{"chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"_id":"lore-hook-reducers@0.13.0-beta.1","_npmVersion":"5.4.2","_nodeVersion":"8.5.0","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-LFXSybiFBhutnoGYlh3wwGrezmkPHj4E0G7enZDfiApVKrxg5AEsW05bYE+i/Zs59g1N1jRpF/vZKj4vrSXxEA==","shasum":"8c177ac9d83931e7074cae18393a779bd6b5b0ad","tarball":"https://registry.npmjs.org/lore-hook-reducers/-/lore-hook-reducers-0.13.0-beta.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDaiVG8CgYCNx8TUklZdQbNF0bh7kyZ20+ZsgO1HQ2vAwIhAMD5ZcGEh6a8PQZ9JhJoI3JyYSZSxa/TpPMNssvuCJKP"}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-reducers-0.13.0-beta.1.tgz_1505764650698_0.09321428462862968"},"directories":{}},"0.13.0-beta.2":{"name":"lore-hook-reducers","version":"0.13.0-beta.2","license":"MIT","main":"lib/index.js","description":"A lore hook that creates Redux reducers","keywords":["lore","hook","reducers","redux"],"scripts":{"build":"npm run build:cjs && npm run build:es","build:cjs":"BABEL_ENV=cjs ../../node_modules/.bin/babel src --out-dir lib","build:es":"BABEL_ENV=es ../../node_modules/.bin/babel src --out-dir es","clean":"rimraf lib && rimraf es","debug":"mocha debug --compilers js:babel-core/register --recursive","lint":"../../node_modules/.bin/eslint src","prepublish":"npm run build","test":"BABEL_ENV=test mocha --compilers js:babel-core/register test/bootstrap.js test/**/*.spec.js --recursive"},"dependencies":{"lodash":"^4.0.0","lore-utils":"^0.13.0-beta.2","topsort":"0.0.2"},"devDependencies":{"chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"_id":"lore-hook-reducers@0.13.0-beta.2","_npmVersion":"5.4.2","_nodeVersion":"8.5.0","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-mlp7bgIcDgvIwDrtFaTGcJerlHGfG8YgU9daJZShHeOYnQ0IfUf+cHsJ8H+/FQTI/PHz5vKz8s/6Cly+I8PDHg==","shasum":"4e4600d03e31d7aa15ab3d6ec868157f213ab58e","tarball":"https://registry.npmjs.org/lore-hook-reducers/-/lore-hook-reducers-0.13.0-beta.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCqBU+gM2QJwtCa5OnJakJ+WpSMqvkhi4XShRfYBVOgDgIhAInJqjx5/uKmSi+8U6YQx8dVdhUWf+T3hyE+Ov58OAKm"}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-reducers-0.13.0-beta.2.tgz_1505770946563_0.939196219900623"},"directories":{}},"0.13.0-beta.3":{"name":"lore-hook-reducers","version":"0.13.0-beta.3","license":"MIT","main":"lib/index.js","module":"es/index.js","description":"A lore hook that creates Redux reducers","keywords":["lore","hook","reducers","redux"],"scripts":{"build":"npm run build:cjs && npm run build:es","build:cjs":"BABEL_ENV=cjs ../../node_modules/.bin/babel src --out-dir lib","build:es":"BABEL_ENV=es ../../node_modules/.bin/babel src --out-dir es","clean":"rimraf lib && rimraf es","debug":"mocha debug --compilers js:babel-core/register --recursive","lint":"../../node_modules/.bin/eslint src","prepublish":"npm run build","test":"BABEL_ENV=test mocha --compilers js:babel-core/register test/bootstrap.js test/**/*.spec.js --recursive"},"dependencies":{"lodash":"^4.0.0","lore-utils":"^0.13.0-beta.3","topsort":"0.0.2"},"devDependencies":{"chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"_id":"lore-hook-reducers@0.13.0-beta.3","_npmVersion":"5.4.2","_nodeVersion":"8.5.0","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-scfI3Ytif3A8IKiHBZwwHa4GmsiKtYKT5FR4gh8AqdPnXfG4tPf5nVS3rHWgXcYuilL+UkoTHEYuvZhBGFJXGw==","shasum":"7f6e26ac2e14121890b289f2370f9c1da2cec351","tarball":"https://registry.npmjs.org/lore-hook-reducers/-/lore-hook-reducers-0.13.0-beta.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD450nts2OD1/DX7lJ9761NHplgydrBCGA1iA0u3T8ccAIhAMUcp0Gn1DxvCjjqweRqThqge9I1a6x0vsB0ia3A9qmw"}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-reducers-0.13.0-beta.3.tgz_1505773908864_0.5047210638877004"},"directories":{}},"0.13.0-beta.5":{"name":"lore-hook-reducers","version":"0.13.0-beta.5","license":"MIT","main":"lib/index.js","module":"es/index.js","description":"A lore hook that creates Redux reducers","keywords":["lore","hook","reducers","redux"],"scripts":{"build":"npm run build:cjs && npm run build:es","build:cjs":"BABEL_ENV=cjs ../../node_modules/.bin/babel src --out-dir lib","build:es":"BABEL_ENV=es ../../node_modules/.bin/babel src --out-dir es","clean":"rimraf lib && rimraf es","debug":"mocha debug --compilers js:babel-core/register --recursive","lint":"../../node_modules/.bin/eslint src","prepublish":"npm run build","test":"BABEL_ENV=test mocha --compilers js:babel-core/register test/bootstrap.js test/**/*.spec.js --recursive"},"dependencies":{"lodash":"^4.0.0","lore-utils":"^0.13.0-beta.5","topsort":"0.0.2"},"devDependencies":{"chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"_id":"lore-hook-reducers@0.13.0-beta.5","_npmVersion":"5.4.2","_nodeVersion":"8.6.0","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-wJmFCXuY9YlY+MU9kFED4KLG71bj+PC7UQ3fjnHflMT8+oUf1fDgxuZCU25rn3ZQyWqbSu1yHHxji3W4NHPEYA==","shasum":"872e86c61414e96160e459d2cca48a609cf90e68","tarball":"https://registry.npmjs.org/lore-hook-reducers/-/lore-hook-reducers-0.13.0-beta.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDngvnhnR1Wch3Zj8Lm6NYBxsdkC6TBzWztWHwkBpCv9wIgWNVPkkO/aNFlksFez93iY04x+PXothJ+wQuvuCSC0U4="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-reducers-0.13.0-beta.5.tgz_1510692777455_0.07459540688432753"},"directories":{}},"0.13.0-beta.6":{"name":"lore-hook-reducers","version":"0.13.0-beta.6","license":"MIT","main":"lib/index.js","module":"es/index.js","description":"A lore hook that creates Redux reducers","keywords":["lore","hook","reducers","redux"],"scripts":{"build":"npm run build:cjs && npm run build:es","build:cjs":"BABEL_ENV=cjs ../../node_modules/.bin/babel src --out-dir lib","build:es":"BABEL_ENV=es ../../node_modules/.bin/babel src --out-dir es","clean":"rimraf lib && rimraf es","debug":"mocha debug --compilers js:babel-core/register --recursive","lint":"../../node_modules/.bin/eslint src","prepublish":"npm run build","test":"BABEL_ENV=test mocha --compilers js:babel-core/register test/bootstrap.js test/**/*.spec.js --recursive"},"dependencies":{"lodash":"^4.0.0","lore-utils":"^0.13.0-beta.6","topsort":"0.0.2"},"devDependencies":{"chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"_id":"lore-hook-reducers@0.13.0-beta.6","_npmVersion":"5.4.2","_nodeVersion":"8.6.0","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-bVg9Vs2ytCfMtvEeNW1d4GR0iv6lctgGB9sGd+SCX/P7DwPldVjWwjmhgXJxiHtiu+T2YqZHaotPh3uZhk0zjA==","shasum":"7b629bf0d09b08ab112ae7997a39d9e2977f394b","tarball":"https://registry.npmjs.org/lore-hook-reducers/-/lore-hook-reducers-0.13.0-beta.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF4iVL8qiM/K9mKWXp72etT8BRW4Mamz3c1fqU7lzXjFAiEA2YrBPhXkH0o9dO3MgffJH05fLLFX7TR5ihwGQVJTQCA="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-reducers-0.13.0-beta.6.tgz_1510698384804_0.38972373330034316"},"directories":{}},"0.13.0-beta.7":{"name":"lore-hook-reducers","version":"0.13.0-beta.7","license":"MIT","main":"lib/index.js","module":"es/index.js","description":"A lore hook that creates Redux reducers","keywords":["lore","hook","reducers","redux"],"scripts":{"build":"npm run build:cjs && npm run build:es","build:cjs":"BABEL_ENV=cjs ../../node_modules/.bin/babel src --out-dir lib","build:es":"BABEL_ENV=es ../../node_modules/.bin/babel src --out-dir es","clean":"rimraf lib && rimraf es","debug":"mocha debug --compilers js:babel-core/register --recursive","lint":"../../node_modules/.bin/eslint src","prepublish":"npm run build","test":"BABEL_ENV=test mocha --compilers js:babel-core/register test/bootstrap.js test/**/*.spec.js --recursive"},"dependencies":{"lodash":"^4.0.0","lore-utils":"^0.13.0-beta.7","topsort":"0.0.2"},"devDependencies":{"chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"_id":"lore-hook-reducers@0.13.0-beta.7","_npmVersion":"5.4.2","_nodeVersion":"8.6.0","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-hmrjUzQDbNZ4zxuGcVvhCCQrv8EcKtyia8DUHvrK0ZmF8d+N7v7mqJALI5g3wdbVQz6X1MfE0oLYXbHc8ssL2A==","shasum":"ed9a1396d87f30a204a6bd04ae647c95109aa935","tarball":"https://registry.npmjs.org/lore-hook-reducers/-/lore-hook-reducers-0.13.0-beta.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDuJBqQumPmP9qh7iBwup7Rtrz9OowFA4TisPTEbALhOwIhAIIIjB288brQAyi8G8bTdzUZ0y87z5CNQc22EQq4xMAO"}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-reducers-0.13.0-beta.7.tgz_1510699132271_0.6451961013954133"},"directories":{}},"0.13.0-beta.9":{"name":"lore-hook-reducers","version":"0.13.0-beta.9","license":"MIT","main":"lib/index.js","module":"es/index.js","description":"A lore hook that creates Redux reducers","keywords":["lore","hook","reducers","redux"],"scripts":{"build":"npm run build:cjs && npm run build:es","build:cjs":"BABEL_ENV=cjs ../../node_modules/.bin/babel src --out-dir lib","build:es":"BABEL_ENV=es ../../node_modules/.bin/babel src --out-dir es","clean":"rimraf lib && rimraf es","debug":"mocha debug --compilers js:babel-core/register --recursive","lint":"../../node_modules/.bin/eslint src","prepublish":"npm run build","test":"BABEL_ENV=test mocha --compilers js:babel-core/register test/bootstrap.js test/**/*.spec.js --recursive"},"dependencies":{"lodash":"^4.0.0","lore-utils":"^0.13.0-beta.9","topsort":"0.0.2"},"devDependencies":{"chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"_id":"lore-hook-reducers@0.13.0-beta.9","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-rrF+niAlE/djv1MEOfCFebeMI5jYaCYsSSC3x9YwDevlXjBqnTUItloPZleR6sXPqxY3AVAeI72KyaZ54SmdeQ==","shasum":"7156d246b22615ea9bd3e078c3f4ea2dd5fdf243","tarball":"https://registry.npmjs.org/lore-hook-reducers/-/lore-hook-reducers-0.13.0-beta.9.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAV+k4EB2/GpuNM1K4vfTjazu94kFOQ9OqzBORT0TrgXAiAFhwZrZW2xVw9WzZpt4b1Y1TWTJXVPLgyYMlnKQVCluw=="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-reducers-0.13.0-beta.9.tgz_1511594313653_0.30378616764210165"},"directories":{}},"0.13.0-beta.10":{"name":"lore-hook-reducers","version":"0.13.0-beta.10","license":"MIT","main":"lib/index.js","module":"es/index.js","description":"A lore hook that creates Redux reducers","keywords":["lore","hook","reducers","redux"],"scripts":{"build":"npm run build:cjs && npm run build:es","build:cjs":"BABEL_ENV=cjs ../../node_modules/.bin/babel src --out-dir lib","build:es":"BABEL_ENV=es ../../node_modules/.bin/babel src --out-dir es","clean":"rimraf lib && rimraf es","debug":"mocha debug --compilers js:babel-core/register --recursive","lint":"../../node_modules/.bin/eslint src","prepublish":"npm run build","test":"BABEL_ENV=test mocha --compilers js:babel-core/register test/bootstrap.js test/**/*.spec.js --recursive"},"dependencies":{"lodash":"^4.0.0","lore-utils":"^0.13.0-beta.10","topsort":"0.0.2"},"devDependencies":{"chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"_id":"lore-hook-reducers@0.13.0-beta.10","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-YmIQmq7IO3ibUNRDMfGQmELWVdg1qMm3gJ3I063stGU2LyHY0VvdUfeWIcidZ0CipxhOLyybJisMkx95/kCTVw==","shasum":"3ce69da8ca76eb4a310e7f8588b48de29ec5f487","tarball":"https://registry.npmjs.org/lore-hook-reducers/-/lore-hook-reducers-0.13.0-beta.10.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBnugQ9VbROvj85hA4PykIQ23UxcLMKNB7oilai5FysFAiEAoNStL9VCAe3iOctbz00zu93IsDfoNHQ2hUbXQxvL3/U="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-reducers-0.13.0-beta.10.tgz_1513286426385_0.7268399673048407"},"directories":{}},"0.13.0-beta.11":{"name":"lore-hook-reducers","version":"0.13.0-beta.11","license":"MIT","main":"lib/index.js","module":"es/index.js","description":"A lore hook that creates Redux reducers","keywords":["lore","hook","reducers","redux"],"scripts":{"build":"npm run build:cjs && npm run build:es","build:cjs":"BABEL_ENV=cjs ../../node_modules/.bin/babel src --out-dir lib","build:es":"BABEL_ENV=es ../../node_modules/.bin/babel src --out-dir es","clean":"rimraf lib && rimraf es","debug":"mocha debug --compilers js:babel-core/register --recursive","lint":"../../node_modules/.bin/eslint src","prepublish":"npm run build","test":"BABEL_ENV=test mocha --compilers js:babel-core/register test/bootstrap.js test/**/*.spec.js --recursive"},"dependencies":{"lodash":"^4.0.0","lore-utils":"^0.13.0-beta.11","topsort":"0.0.2"},"devDependencies":{"chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"_id":"lore-hook-reducers@0.13.0-beta.11","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-GORKKDe7rBZ0fhHMKyh5GhaqmQZ3B+jqvbtqgmItM4nhMM1AviXdzB8t7ovKoqLsX3pgXqL+SOPT4I0Gk+8qPg==","shasum":"a7e15efa365ea531da407599c6f26ec0f51d30f5","tarball":"https://registry.npmjs.org/lore-hook-reducers/-/lore-hook-reducers-0.13.0-beta.11.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDiHhf3j12uhfZz9KlKdK7nrTLm9ZUYL/PPAdfN/bHlLgIgAqbtIRYy/3PzHJckLp9sPFkWIqHh9t4lUY2r1yIbtF0="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-reducers-0.13.0-beta.11.tgz_1513716348439_0.16613534884527326"},"directories":{}},"0.13.0-beta.12":{"name":"lore-hook-reducers","version":"0.13.0-beta.12","license":"MIT","main":"lib/index.js","module":"es/index.js","description":"A lore hook that creates Redux reducers","keywords":["lore","hook","reducers","redux"],"scripts":{"build":"npm run build:cjs && npm run build:es","build:cjs":"BABEL_ENV=cjs ../../node_modules/.bin/babel src --out-dir lib","build:es":"BABEL_ENV=es ../../node_modules/.bin/babel src --out-dir es","clean":"rimraf lib && rimraf es","debug":"mocha debug --compilers js:babel-core/register --recursive","lint":"../../node_modules/.bin/eslint src","prepublish":"npm run build","test":"BABEL_ENV=test mocha --compilers js:babel-core/register test/bootstrap.js test/**/*.spec.js --recursive"},"dependencies":{"lodash":"^4.0.0","lore-utils":"^0.13.0-beta.12","topsort":"0.0.2"},"devDependencies":{"chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"readme":"# lore-hook-reducers\n\n### Purpose\n\nLoads all user defined reducers, which will override any blueprints previously created. \n\nThe result is exposed on `lore.reducers`.\n\n### Dependant Hooks\n\nNone, but needs to be run **after** the `reducerBlueprints` hook or else the blueprints will override the user \ndefined reducers.\n\n\n### Needed improvements\n\nSuggestions are welcome. \n\n\n### Example Usage\n\nGiven a project where a custom `todo.count` reducer has been declared like so:\n\n```sh\nsrc\n|-reducers\n  |-todo\n    |-count.js\n```\n\nThis hook will find it and expose it on `lore.reducers.todo.count` and make sure it's combined into the Redux store.\n\nReducers should follow this format:\n\n```js\n// file: src/reducers/todo/count.js\n\nmodule.exports = function count(state, action) {\n   state = state || 0;\n\n   switch (action.type) {\n     case ActionTypes.ADD_TODO:\n       return state + 1;\n\n     default:\n       return nextState\n   }\n };;\n```\n\n# reducer blueprints\n\n### Purpose\n\nIf enabled, will create default reducers for all models that cover basic find operations - find by query, find by \nid, and find by cid.\n\nIterates through all models in `lore.models` and creates reducers for all of them.\n\n### Dependant Hooks\n\nDepends on the `models` hook being run first as it iterations through `lore.models`.\n\n\n### Needed improvements\n\n1. Needs to support pagination.\n2. There should be an option to turn off blueprints.\n3. `all` needs to be renamed to `find` as it's more accurate (all isn't all, it will often be only a pagninated \nsubset of data found based on some query)\n4. There's a bug preventing resources that use a number as a unique id from being stored correctly.\n5. Should support equality operators, like \"find todos that were completed before some data\"\n\n### Example Usage\n\nGiven a model called `todo`, this hook will create the following reducers:\n\n* lore.reducers.todo.all\n* lore.reducers.todo.byId\n* lore.reducers.todo.byCid\n\nThe reducers are not meant to be accessed or used directly.  Redux handles that.\n\n\n### Interfaces\n\n\n#### byId\n\nThis reducer has a standard Redux format:\n\n```js\nfunction byId(state, action) {...})\n```\n\nIt's purpose is to listen for the standard CRUD ActionTypes (`ADD_TODO`, `UPDATE_TODO`, `REMOVE_TODO`, and \n`FETCH_TODOS`) and store the results in a dictionary where the key is the model id.  If a model doesn't have an \nid (which happens during optimistic creates) the model is not stored in the dictionary.  Keeping track of the models\nthat only exist on the client side is the job of the `byCid` reducer.\n\nHere is an example of the dictionary this reducer returns:\n\n```js\n{\n  '1': {\n    id: '1',\n    cid: 'c1',\n    data: {..some data..},\n    state: \"RESOLVED\",\n    error: {}\n  },\n  '2': {\n    ...\n  }\n}\n```\n\n#### byCid\n\nThis reducer has a standard Redux format:\n\n```js\n// standard reducer arguments\nfunction byCid(state, action) {...})\n```\n\nIt's purpose is to listen for the standard CRUD ActionTypes (`ADD_TODO`, `UPDATE_TODO`, `REMOVE_TODO`, and \n`FETCH_TODOS`) and store the results in a dictionary where the key is the model cid.  There should never be a\nsituation where a model does not have a cid.\n\nHere is an example of the dictionary this reducer returns (note the `c2` resource that has no id and is currently \nbeing created):\n\n```js\n{\n  'c1': {\n    id: '1',\n    cid: 'c1',\n    data: {..some data..},\n    state: \"RESOLVED\",\n    error: {}\n  },\n  'c2': {\n    id: null,\n    cid: 'c2',\n    data: {..some data..},\n    state: \"CREATING\",\n    error: {}\n  }\n}\n```\n\n\n\n#### all\n\nThis reducer has a modified Redux format as it requires an additional third 'options' arguments that includes the \nresults from the `byId` and `byCid` reducers stored in a `nextState` object.\n\n```\nvar _byId = byId(state.byId, action);\nvar _byCid = byCid(state.byCid, action);\nvar _all = all(state.all, action, {\n  nextState: {\n    byId: _byId,\n    byCid: _byCid\n  }\n});\n```\n\nIt's purpose is to store collections of resources group by a common query, and listens for the ActionType\n`FETCH_TODOS`. If new data is created that matches the query criteria for one of the lists, it will also make sure\nthat resource is included inside that list.\n\nHere is an example of the dictionary this reducer returns:\n\n```js\n{\n  '{}': {\n    state: \"RESOLVED\",\n    data: [\n      {\n        id: '1',\n        cid: 'c1',\n        data: {\n          color: 'red'\n        },\n        state: \"RESOLVED\",\n        error: {}\n      },\n      {\n        id: '2',\n        cid: 'c2',\n        data: {\n          color: 'blue'\n        },\n        state: \"RESOLVED\",\n        error: {}\n      }\n    ],\n    error: {}\n  },\n  '{\"color\":\"blue\"}': {\n    state: \"RESOLVED\",\n    data: [\n      {\n        id: '2',\n        cid: 'c2',\n        data: {\n          color: 'blue'\n        },\n        state: \"RESOLVED\",\n        error: {}\n      }\n    ],\n    error: {}\n  }\n}\n```\n\nThe keys for the dictionary are the `JSON.stringify()` version of the query.  For example, a called to `lore.connect`\nthat looks like this:\n\n```js\nlore.connect(function(getState, props) {\n  return {\n    todos: getState('todo.all', {\n      where: {\n        color: 'blue'\n      }\n    })\n  }\n})\n```\n\nSpecifies the query `{color: 'blue'}`.  It's that query that gets passed to `JSON.stringify()` and stored as the \ndictionary key.  When new data shows in either the `byId` or `byCid` dictionaries that are new (don't currently exist\nin `todo.all`) they are inspected to see whether the any of the stored queries match the data, and if so that data is\ninserted into the collection in the dictionary.\n\n","readmeFilename":"README.md","_id":"lore-hook-reducers@0.13.0-beta.12","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-GDXa5Vbdq1/tZZE9orOYOzJxVZo1ZGpmDsmwlNSbk6/beGzaQ8IuafyMBGJUGyDEqEt3D6jL3DfqEh3NNlPbPw==","shasum":"6efdf565a85845686ae16da5cba7fde63847d2e2","tarball":"https://registry.npmjs.org/lore-hook-reducers/-/lore-hook-reducers-0.13.0-beta.12.tgz","fileCount":32,"unpackedSize":101083,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCR+r/mvP8/T8IYiLNw1kNh0A5KKF0YKyG0ZDLBsV93qAIgddVX9zh+68OhmCIP2DGviutOk/zF7gny1ESmGYUivHU="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-reducers_0.13.0-beta.12_1520214962762_0.09537704153431648"},"_hasShrinkwrap":false},"0.13.0-beta.13":{"name":"lore-hook-reducers","version":"0.13.0-beta.13","license":"MIT","main":"lib/index.js","module":"es/index.js","description":"A lore hook that creates Redux reducers","keywords":["lore","hook","reducers","redux"],"scripts":{"build":"npm run build:cjs && npm run build:es","build:cjs":"BABEL_ENV=cjs ../../node_modules/.bin/babel src --out-dir lib","build:es":"BABEL_ENV=es ../../node_modules/.bin/babel src --out-dir es","clean":"rimraf lib && rimraf es","debug":"mocha debug --compilers js:babel-core/register --recursive","lint":"../../node_modules/.bin/eslint src","prepublish":"npm run build","test":"BABEL_ENV=test mocha --compilers js:babel-core/register test/bootstrap.js test/**/*.spec.js --recursive"},"dependencies":{"lodash":"^4.0.0","lore-utils":"^0.13.0-beta.13","topsort":"0.0.2"},"devDependencies":{"chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"readme":"# lore-hook-reducers\n\n### Purpose\n\nLoads all user defined reducers, which will override any blueprints previously created. \n\nThe result is exposed on `lore.reducers`.\n\n### Dependant Hooks\n\nNone, but needs to be run **after** the `reducerBlueprints` hook or else the blueprints will override the user \ndefined reducers.\n\n\n### Needed improvements\n\nSuggestions are welcome. \n\n\n### Example Usage\n\nGiven a project where a custom `todo.count` reducer has been declared like so:\n\n```sh\nsrc\n|-reducers\n  |-todo\n    |-count.js\n```\n\nThis hook will find it and expose it on `lore.reducers.todo.count` and make sure it's combined into the Redux store.\n\nReducers should follow this format:\n\n```js\n// file: src/reducers/todo/count.js\n\nmodule.exports = function count(state, action) {\n   state = state || 0;\n\n   switch (action.type) {\n     case ActionTypes.ADD_TODO:\n       return state + 1;\n\n     default:\n       return nextState\n   }\n };;\n```\n\n# reducer blueprints\n\n### Purpose\n\nIf enabled, will create default reducers for all models that cover basic find operations - find by query, find by \nid, and find by cid.\n\nIterates through all models in `lore.models` and creates reducers for all of them.\n\n### Dependant Hooks\n\nDepends on the `models` hook being run first as it iterations through `lore.models`.\n\n\n### Needed improvements\n\n1. Needs to support pagination.\n2. There should be an option to turn off blueprints.\n3. `all` needs to be renamed to `find` as it's more accurate (all isn't all, it will often be only a pagninated \nsubset of data found based on some query)\n4. There's a bug preventing resources that use a number as a unique id from being stored correctly.\n5. Should support equality operators, like \"find todos that were completed before some data\"\n\n### Example Usage\n\nGiven a model called `todo`, this hook will create the following reducers:\n\n* lore.reducers.todo.all\n* lore.reducers.todo.byId\n* lore.reducers.todo.byCid\n\nThe reducers are not meant to be accessed or used directly.  Redux handles that.\n\n\n### Interfaces\n\n\n#### byId\n\nThis reducer has a standard Redux format:\n\n```js\nfunction byId(state, action) {...})\n```\n\nIt's purpose is to listen for the standard CRUD ActionTypes (`ADD_TODO`, `UPDATE_TODO`, `REMOVE_TODO`, and \n`FETCH_TODOS`) and store the results in a dictionary where the key is the model id.  If a model doesn't have an \nid (which happens during optimistic creates) the model is not stored in the dictionary.  Keeping track of the models\nthat only exist on the client side is the job of the `byCid` reducer.\n\nHere is an example of the dictionary this reducer returns:\n\n```js\n{\n  '1': {\n    id: '1',\n    cid: 'c1',\n    data: {..some data..},\n    state: \"RESOLVED\",\n    error: {}\n  },\n  '2': {\n    ...\n  }\n}\n```\n\n#### byCid\n\nThis reducer has a standard Redux format:\n\n```js\n// standard reducer arguments\nfunction byCid(state, action) {...})\n```\n\nIt's purpose is to listen for the standard CRUD ActionTypes (`ADD_TODO`, `UPDATE_TODO`, `REMOVE_TODO`, and \n`FETCH_TODOS`) and store the results in a dictionary where the key is the model cid.  There should never be a\nsituation where a model does not have a cid.\n\nHere is an example of the dictionary this reducer returns (note the `c2` resource that has no id and is currently \nbeing created):\n\n```js\n{\n  'c1': {\n    id: '1',\n    cid: 'c1',\n    data: {..some data..},\n    state: \"RESOLVED\",\n    error: {}\n  },\n  'c2': {\n    id: null,\n    cid: 'c2',\n    data: {..some data..},\n    state: \"CREATING\",\n    error: {}\n  }\n}\n```\n\n\n\n#### all\n\nThis reducer has a modified Redux format as it requires an additional third 'options' arguments that includes the \nresults from the `byId` and `byCid` reducers stored in a `nextState` object.\n\n```\nvar _byId = byId(state.byId, action);\nvar _byCid = byCid(state.byCid, action);\nvar _all = all(state.all, action, {\n  nextState: {\n    byId: _byId,\n    byCid: _byCid\n  }\n});\n```\n\nIt's purpose is to store collections of resources group by a common query, and listens for the ActionType\n`FETCH_TODOS`. If new data is created that matches the query criteria for one of the lists, it will also make sure\nthat resource is included inside that list.\n\nHere is an example of the dictionary this reducer returns:\n\n```js\n{\n  '{}': {\n    state: \"RESOLVED\",\n    data: [\n      {\n        id: '1',\n        cid: 'c1',\n        data: {\n          color: 'red'\n        },\n        state: \"RESOLVED\",\n        error: {}\n      },\n      {\n        id: '2',\n        cid: 'c2',\n        data: {\n          color: 'blue'\n        },\n        state: \"RESOLVED\",\n        error: {}\n      }\n    ],\n    error: {}\n  },\n  '{\"color\":\"blue\"}': {\n    state: \"RESOLVED\",\n    data: [\n      {\n        id: '2',\n        cid: 'c2',\n        data: {\n          color: 'blue'\n        },\n        state: \"RESOLVED\",\n        error: {}\n      }\n    ],\n    error: {}\n  }\n}\n```\n\nThe keys for the dictionary are the `JSON.stringify()` version of the query.  For example, a called to `lore.connect`\nthat looks like this:\n\n```js\nlore.connect(function(getState, props) {\n  return {\n    todos: getState('todo.all', {\n      where: {\n        color: 'blue'\n      }\n    })\n  }\n})\n```\n\nSpecifies the query `{color: 'blue'}`.  It's that query that gets passed to `JSON.stringify()` and stored as the \ndictionary key.  When new data shows in either the `byId` or `byCid` dictionaries that are new (don't currently exist\nin `todo.all`) they are inspected to see whether the any of the stored queries match the data, and if so that data is\ninserted into the collection in the dictionary.\n\n","readmeFilename":"README.md","_id":"lore-hook-reducers@0.13.0-beta.13","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-WcrzWUKA953s7N5NRE9kb8zImdXezYhcP7dNmx57yRRYx4zZslWoc9HlwdwspQu1wXXoPJbWpifN2Biqm1K0ug==","shasum":"5e9071a6c9ef5cc8ba562fb60eafb8c657e3807f","tarball":"https://registry.npmjs.org/lore-hook-reducers/-/lore-hook-reducers-0.13.0-beta.13.tgz","fileCount":32,"unpackedSize":101083,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBcHNOils2EVe8Mhv30q7czwZphaTParCAk3uchjEBDoAiA5hahl0hjyanc9ktllThLeKVHEH4Z1+t2oOxaPxJp02Q=="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-reducers_0.13.0-beta.13_1521940007502_0.3406143619751818"},"_hasShrinkwrap":false},"0.13.0-beta.14":{"name":"lore-hook-reducers","version":"0.13.0-beta.14","license":"MIT","main":"lib/index.js","module":"es/index.js","description":"A lore hook that creates Redux reducers","keywords":["lore","hook","reducers","redux"],"scripts":{"build":"npm run build:cjs && npm run build:es","build:cjs":"BABEL_ENV=cjs ../../node_modules/.bin/babel src --out-dir lib","build:es":"BABEL_ENV=es ../../node_modules/.bin/babel src --out-dir es","clean":"rimraf lib && rimraf es","debug":"mocha debug --compilers js:babel-core/register --recursive","lint":"../../node_modules/.bin/eslint src","prepublish":"npm run build","test":"BABEL_ENV=test mocha --compilers js:babel-core/register test/bootstrap.js test/**/*.spec.js --recursive"},"dependencies":{"lodash":"^4.0.0","lore-utils":"^0.13.0-beta.14","topsort":"0.0.2"},"devDependencies":{"chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"readme":"# lore-hook-reducers\n\n### Purpose\n\nLoads all user defined reducers, which will override any blueprints previously created. \n\nThe result is exposed on `lore.reducers`.\n\n### Dependant Hooks\n\nNone, but needs to be run **after** the `reducerBlueprints` hook or else the blueprints will override the user \ndefined reducers.\n\n\n### Needed improvements\n\nSuggestions are welcome. \n\n\n### Example Usage\n\nGiven a project where a custom `todo.count` reducer has been declared like so:\n\n```sh\nsrc\n|-reducers\n  |-todo\n    |-count.js\n```\n\nThis hook will find it and expose it on `lore.reducers.todo.count` and make sure it's combined into the Redux store.\n\nReducers should follow this format:\n\n```js\n// file: src/reducers/todo/count.js\n\nmodule.exports = function count(state, action) {\n   state = state || 0;\n\n   switch (action.type) {\n     case ActionTypes.ADD_TODO:\n       return state + 1;\n\n     default:\n       return nextState\n   }\n };;\n```\n\n# reducer blueprints\n\n### Purpose\n\nIf enabled, will create default reducers for all models that cover basic find operations - find by query, find by \nid, and find by cid.\n\nIterates through all models in `lore.models` and creates reducers for all of them.\n\n### Dependant Hooks\n\nDepends on the `models` hook being run first as it iterations through `lore.models`.\n\n\n### Needed improvements\n\n1. Needs to support pagination.\n2. There should be an option to turn off blueprints.\n3. `all` needs to be renamed to `find` as it's more accurate (all isn't all, it will often be only a pagninated \nsubset of data found based on some query)\n4. There's a bug preventing resources that use a number as a unique id from being stored correctly.\n5. Should support equality operators, like \"find todos that were completed before some data\"\n\n### Example Usage\n\nGiven a model called `todo`, this hook will create the following reducers:\n\n* lore.reducers.todo.all\n* lore.reducers.todo.byId\n* lore.reducers.todo.byCid\n\nThe reducers are not meant to be accessed or used directly.  Redux handles that.\n\n\n### Interfaces\n\n\n#### byId\n\nThis reducer has a standard Redux format:\n\n```js\nfunction byId(state, action) {...})\n```\n\nIt's purpose is to listen for the standard CRUD ActionTypes (`ADD_TODO`, `UPDATE_TODO`, `REMOVE_TODO`, and \n`FETCH_TODOS`) and store the results in a dictionary where the key is the model id.  If a model doesn't have an \nid (which happens during optimistic creates) the model is not stored in the dictionary.  Keeping track of the models\nthat only exist on the client side is the job of the `byCid` reducer.\n\nHere is an example of the dictionary this reducer returns:\n\n```js\n{\n  '1': {\n    id: '1',\n    cid: 'c1',\n    data: {..some data..},\n    state: \"RESOLVED\",\n    error: {}\n  },\n  '2': {\n    ...\n  }\n}\n```\n\n#### byCid\n\nThis reducer has a standard Redux format:\n\n```js\n// standard reducer arguments\nfunction byCid(state, action) {...})\n```\n\nIt's purpose is to listen for the standard CRUD ActionTypes (`ADD_TODO`, `UPDATE_TODO`, `REMOVE_TODO`, and \n`FETCH_TODOS`) and store the results in a dictionary where the key is the model cid.  There should never be a\nsituation where a model does not have a cid.\n\nHere is an example of the dictionary this reducer returns (note the `c2` resource that has no id and is currently \nbeing created):\n\n```js\n{\n  'c1': {\n    id: '1',\n    cid: 'c1',\n    data: {..some data..},\n    state: \"RESOLVED\",\n    error: {}\n  },\n  'c2': {\n    id: null,\n    cid: 'c2',\n    data: {..some data..},\n    state: \"CREATING\",\n    error: {}\n  }\n}\n```\n\n\n\n#### all\n\nThis reducer has a modified Redux format as it requires an additional third 'options' arguments that includes the \nresults from the `byId` and `byCid` reducers stored in a `nextState` object.\n\n```\nvar _byId = byId(state.byId, action);\nvar _byCid = byCid(state.byCid, action);\nvar _all = all(state.all, action, {\n  nextState: {\n    byId: _byId,\n    byCid: _byCid\n  }\n});\n```\n\nIt's purpose is to store collections of resources group by a common query, and listens for the ActionType\n`FETCH_TODOS`. If new data is created that matches the query criteria for one of the lists, it will also make sure\nthat resource is included inside that list.\n\nHere is an example of the dictionary this reducer returns:\n\n```js\n{\n  '{}': {\n    state: \"RESOLVED\",\n    data: [\n      {\n        id: '1',\n        cid: 'c1',\n        data: {\n          color: 'red'\n        },\n        state: \"RESOLVED\",\n        error: {}\n      },\n      {\n        id: '2',\n        cid: 'c2',\n        data: {\n          color: 'blue'\n        },\n        state: \"RESOLVED\",\n        error: {}\n      }\n    ],\n    error: {}\n  },\n  '{\"color\":\"blue\"}': {\n    state: \"RESOLVED\",\n    data: [\n      {\n        id: '2',\n        cid: 'c2',\n        data: {\n          color: 'blue'\n        },\n        state: \"RESOLVED\",\n        error: {}\n      }\n    ],\n    error: {}\n  }\n}\n```\n\nThe keys for the dictionary are the `JSON.stringify()` version of the query.  For example, a called to `lore.connect`\nthat looks like this:\n\n```js\nlore.connect(function(getState, props) {\n  return {\n    todos: getState('todo.all', {\n      where: {\n        color: 'blue'\n      }\n    })\n  }\n})\n```\n\nSpecifies the query `{color: 'blue'}`.  It's that query that gets passed to `JSON.stringify()` and stored as the \ndictionary key.  When new data shows in either the `byId` or `byCid` dictionaries that are new (don't currently exist\nin `todo.all`) they are inspected to see whether the any of the stored queries match the data, and if so that data is\ninserted into the collection in the dictionary.\n\n","readmeFilename":"README.md","_id":"lore-hook-reducers@0.13.0-beta.14","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-UepC4laAe00Q6eBDgpG5Qcx2+BmYogYF2d9TYkQz6qkksl6Vs/DtDA5Ya7x1kIVJhIZ0gL6dBSkqppBAt0tAdw==","shasum":"b4025809578c4e8f5dd63b5ff876a86a0597b852","tarball":"https://registry.npmjs.org/lore-hook-reducers/-/lore-hook-reducers-0.13.0-beta.14.tgz","fileCount":32,"unpackedSize":101083,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDnBoxNNHZ92HfTyF6/ak8cJWqhwKZq6UKWO+cZH+h2FAiB5cZA4dU3g3pcnkAZFV/0PuTyhpYhJqFZj5539zn3ZgQ=="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-reducers_0.13.0-beta.14_1522531114390_0.5424060772222812"},"_hasShrinkwrap":false},"0.13.0-beta.15":{"name":"lore-hook-reducers","version":"0.13.0-beta.15","license":"MIT","main":"lib/index.js","module":"es/index.js","description":"A lore hook that creates Redux reducers","keywords":["lore","hook","reducers","redux"],"scripts":{"build":"npm run build:cjs && npm run build:es","build:cjs":"BABEL_ENV=cjs ../../node_modules/.bin/babel src --out-dir lib","build:es":"BABEL_ENV=es ../../node_modules/.bin/babel src --out-dir es","clean":"rimraf lib && rimraf es","debug":"mocha debug --compilers js:babel-core/register --recursive","lint":"../../node_modules/.bin/eslint src","prepublish":"npm run build","test":"BABEL_ENV=test mocha --compilers js:babel-core/register test/bootstrap.js test/**/*.spec.js --recursive"},"dependencies":{"lodash":"^4.0.0","lore-utils":"^0.13.0-beta.15","topsort":"0.0.2"},"devDependencies":{"chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"readme":"# lore-hook-reducers\n\n### Purpose\n\nLoads all user defined reducers, which will override any blueprints previously created. \n\nThe result is exposed on `lore.reducers`.\n\n### Dependant Hooks\n\nNone, but needs to be run **after** the `reducerBlueprints` hook or else the blueprints will override the user \ndefined reducers.\n\n\n### Needed improvements\n\nSuggestions are welcome. \n\n\n### Example Usage\n\nGiven a project where a custom `todo.count` reducer has been declared like so:\n\n```sh\nsrc\n|-reducers\n  |-todo\n    |-count.js\n```\n\nThis hook will find it and expose it on `lore.reducers.todo.count` and make sure it's combined into the Redux store.\n\nReducers should follow this format:\n\n```js\n// file: src/reducers/todo/count.js\n\nmodule.exports = function count(state, action) {\n   state = state || 0;\n\n   switch (action.type) {\n     case ActionTypes.ADD_TODO:\n       return state + 1;\n\n     default:\n       return nextState\n   }\n };;\n```\n\n# reducer blueprints\n\n### Purpose\n\nIf enabled, will create default reducers for all models that cover basic find operations - find by query, find by \nid, and find by cid.\n\nIterates through all models in `lore.models` and creates reducers for all of them.\n\n### Dependant Hooks\n\nDepends on the `models` hook being run first as it iterations through `lore.models`.\n\n\n### Needed improvements\n\n1. Needs to support pagination.\n2. There should be an option to turn off blueprints.\n3. `all` needs to be renamed to `find` as it's more accurate (all isn't all, it will often be only a pagninated \nsubset of data found based on some query)\n4. There's a bug preventing resources that use a number as a unique id from being stored correctly.\n5. Should support equality operators, like \"find todos that were completed before some data\"\n\n### Example Usage\n\nGiven a model called `todo`, this hook will create the following reducers:\n\n* lore.reducers.todo.all\n* lore.reducers.todo.byId\n* lore.reducers.todo.byCid\n\nThe reducers are not meant to be accessed or used directly.  Redux handles that.\n\n\n### Interfaces\n\n\n#### byId\n\nThis reducer has a standard Redux format:\n\n```js\nfunction byId(state, action) {...})\n```\n\nIt's purpose is to listen for the standard CRUD ActionTypes (`ADD_TODO`, `UPDATE_TODO`, `REMOVE_TODO`, and \n`FETCH_TODOS`) and store the results in a dictionary where the key is the model id.  If a model doesn't have an \nid (which happens during optimistic creates) the model is not stored in the dictionary.  Keeping track of the models\nthat only exist on the client side is the job of the `byCid` reducer.\n\nHere is an example of the dictionary this reducer returns:\n\n```js\n{\n  '1': {\n    id: '1',\n    cid: 'c1',\n    data: {..some data..},\n    state: \"RESOLVED\",\n    error: {}\n  },\n  '2': {\n    ...\n  }\n}\n```\n\n#### byCid\n\nThis reducer has a standard Redux format:\n\n```js\n// standard reducer arguments\nfunction byCid(state, action) {...})\n```\n\nIt's purpose is to listen for the standard CRUD ActionTypes (`ADD_TODO`, `UPDATE_TODO`, `REMOVE_TODO`, and \n`FETCH_TODOS`) and store the results in a dictionary where the key is the model cid.  There should never be a\nsituation where a model does not have a cid.\n\nHere is an example of the dictionary this reducer returns (note the `c2` resource that has no id and is currently \nbeing created):\n\n```js\n{\n  'c1': {\n    id: '1',\n    cid: 'c1',\n    data: {..some data..},\n    state: \"RESOLVED\",\n    error: {}\n  },\n  'c2': {\n    id: null,\n    cid: 'c2',\n    data: {..some data..},\n    state: \"CREATING\",\n    error: {}\n  }\n}\n```\n\n\n\n#### all\n\nThis reducer has a modified Redux format as it requires an additional third 'options' arguments that includes the \nresults from the `byId` and `byCid` reducers stored in a `nextState` object.\n\n```\nvar _byId = byId(state.byId, action);\nvar _byCid = byCid(state.byCid, action);\nvar _all = all(state.all, action, {\n  nextState: {\n    byId: _byId,\n    byCid: _byCid\n  }\n});\n```\n\nIt's purpose is to store collections of resources group by a common query, and listens for the ActionType\n`FETCH_TODOS`. If new data is created that matches the query criteria for one of the lists, it will also make sure\nthat resource is included inside that list.\n\nHere is an example of the dictionary this reducer returns:\n\n```js\n{\n  '{}': {\n    state: \"RESOLVED\",\n    data: [\n      {\n        id: '1',\n        cid: 'c1',\n        data: {\n          color: 'red'\n        },\n        state: \"RESOLVED\",\n        error: {}\n      },\n      {\n        id: '2',\n        cid: 'c2',\n        data: {\n          color: 'blue'\n        },\n        state: \"RESOLVED\",\n        error: {}\n      }\n    ],\n    error: {}\n  },\n  '{\"color\":\"blue\"}': {\n    state: \"RESOLVED\",\n    data: [\n      {\n        id: '2',\n        cid: 'c2',\n        data: {\n          color: 'blue'\n        },\n        state: \"RESOLVED\",\n        error: {}\n      }\n    ],\n    error: {}\n  }\n}\n```\n\nThe keys for the dictionary are the `JSON.stringify()` version of the query.  For example, a called to `lore.connect`\nthat looks like this:\n\n```js\nlore.connect(function(getState, props) {\n  return {\n    todos: getState('todo.all', {\n      where: {\n        color: 'blue'\n      }\n    })\n  }\n})\n```\n\nSpecifies the query `{color: 'blue'}`.  It's that query that gets passed to `JSON.stringify()` and stored as the \ndictionary key.  When new data shows in either the `byId` or `byCid` dictionaries that are new (don't currently exist\nin `todo.all`) they are inspected to see whether the any of the stored queries match the data, and if so that data is\ninserted into the collection in the dictionary.\n\n","readmeFilename":"README.md","_id":"lore-hook-reducers@0.13.0-beta.15","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-6A+vXepPuYyLO/zkPsLsz9UyPMcujqXDfjdS1srKQFCDyEcZbd6IDkCulT6xlgX5O6Hzjnc7oLmMM38LTmUhvA==","shasum":"a7ef32d5d764bca8c71c6abc8751bcb63421a0be","tarball":"https://registry.npmjs.org/lore-hook-reducers/-/lore-hook-reducers-0.13.0-beta.15.tgz","fileCount":32,"unpackedSize":101083,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCJS1ASLe3lB4KiwFaTHJKzL38p8kXAqN9lWLwneThx1gIhAOSThE7TCubBmpwYYENE+iiOl6p4Ll0AdcoMvh3bc+kh"}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-reducers_0.13.0-beta.15_1523329174182_0.13556644475292434"},"_hasShrinkwrap":false},"0.13.0-beta.16":{"name":"lore-hook-reducers","version":"0.13.0-beta.16","license":"MIT","main":"lib/index.js","module":"es/index.js","description":"A lore hook that creates Redux reducers","keywords":["lore","hook","reducers","redux"],"scripts":{"build":"npm run build:cjs && npm run build:es","build:cjs":"BABEL_ENV=cjs ../../node_modules/.bin/babel src --out-dir lib","build:es":"BABEL_ENV=es ../../node_modules/.bin/babel src --out-dir es","clean":"rimraf lib && rimraf es","debug":"mocha debug --compilers js:babel-core/register --recursive","lint":"../../node_modules/.bin/eslint src","prepublish":"npm run build","test":"BABEL_ENV=test mocha --compilers js:babel-core/register test/bootstrap.js test/**/*.spec.js --recursive"},"dependencies":{"lodash":"^4.0.0","lore-utils":"^0.13.0-beta.16","topsort":"0.0.2"},"devDependencies":{"chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"readme":"# lore-hook-reducers\n\n### Purpose\n\nLoads all user defined reducers, which will override any blueprints previously created. \n\nThe result is exposed on `lore.reducers`.\n\n### Dependant Hooks\n\nNone, but needs to be run **after** the `reducerBlueprints` hook or else the blueprints will override the user \ndefined reducers.\n\n\n### Needed improvements\n\nSuggestions are welcome. \n\n\n### Example Usage\n\nGiven a project where a custom `todo.count` reducer has been declared like so:\n\n```sh\nsrc\n|-reducers\n  |-todo\n    |-count.js\n```\n\nThis hook will find it and expose it on `lore.reducers.todo.count` and make sure it's combined into the Redux store.\n\nReducers should follow this format:\n\n```js\n// file: src/reducers/todo/count.js\n\nmodule.exports = function count(state, action) {\n   state = state || 0;\n\n   switch (action.type) {\n     case ActionTypes.ADD_TODO:\n       return state + 1;\n\n     default:\n       return nextState\n   }\n };;\n```\n\n# reducer blueprints\n\n### Purpose\n\nIf enabled, will create default reducers for all models that cover basic find operations - find by query, find by \nid, and find by cid.\n\nIterates through all models in `lore.models` and creates reducers for all of them.\n\n### Dependant Hooks\n\nDepends on the `models` hook being run first as it iterations through `lore.models`.\n\n\n### Needed improvements\n\n1. Needs to support pagination.\n2. There should be an option to turn off blueprints.\n3. `all` needs to be renamed to `find` as it's more accurate (all isn't all, it will often be only a pagninated \nsubset of data found based on some query)\n4. There's a bug preventing resources that use a number as a unique id from being stored correctly.\n5. Should support equality operators, like \"find todos that were completed before some data\"\n\n### Example Usage\n\nGiven a model called `todo`, this hook will create the following reducers:\n\n* lore.reducers.todo.all\n* lore.reducers.todo.byId\n* lore.reducers.todo.byCid\n\nThe reducers are not meant to be accessed or used directly.  Redux handles that.\n\n\n### Interfaces\n\n\n#### byId\n\nThis reducer has a standard Redux format:\n\n```js\nfunction byId(state, action) {...})\n```\n\nIt's purpose is to listen for the standard CRUD ActionTypes (`ADD_TODO`, `UPDATE_TODO`, `REMOVE_TODO`, and \n`FETCH_TODOS`) and store the results in a dictionary where the key is the model id.  If a model doesn't have an \nid (which happens during optimistic creates) the model is not stored in the dictionary.  Keeping track of the models\nthat only exist on the client side is the job of the `byCid` reducer.\n\nHere is an example of the dictionary this reducer returns:\n\n```js\n{\n  '1': {\n    id: '1',\n    cid: 'c1',\n    data: {..some data..},\n    state: \"RESOLVED\",\n    error: {}\n  },\n  '2': {\n    ...\n  }\n}\n```\n\n#### byCid\n\nThis reducer has a standard Redux format:\n\n```js\n// standard reducer arguments\nfunction byCid(state, action) {...})\n```\n\nIt's purpose is to listen for the standard CRUD ActionTypes (`ADD_TODO`, `UPDATE_TODO`, `REMOVE_TODO`, and \n`FETCH_TODOS`) and store the results in a dictionary where the key is the model cid.  There should never be a\nsituation where a model does not have a cid.\n\nHere is an example of the dictionary this reducer returns (note the `c2` resource that has no id and is currently \nbeing created):\n\n```js\n{\n  'c1': {\n    id: '1',\n    cid: 'c1',\n    data: {..some data..},\n    state: \"RESOLVED\",\n    error: {}\n  },\n  'c2': {\n    id: null,\n    cid: 'c2',\n    data: {..some data..},\n    state: \"CREATING\",\n    error: {}\n  }\n}\n```\n\n\n\n#### all\n\nThis reducer has a modified Redux format as it requires an additional third 'options' arguments that includes the \nresults from the `byId` and `byCid` reducers stored in a `nextState` object.\n\n```\nvar _byId = byId(state.byId, action);\nvar _byCid = byCid(state.byCid, action);\nvar _all = all(state.all, action, {\n  nextState: {\n    byId: _byId,\n    byCid: _byCid\n  }\n});\n```\n\nIt's purpose is to store collections of resources group by a common query, and listens for the ActionType\n`FETCH_TODOS`. If new data is created that matches the query criteria for one of the lists, it will also make sure\nthat resource is included inside that list.\n\nHere is an example of the dictionary this reducer returns:\n\n```js\n{\n  '{}': {\n    state: \"RESOLVED\",\n    data: [\n      {\n        id: '1',\n        cid: 'c1',\n        data: {\n          color: 'red'\n        },\n        state: \"RESOLVED\",\n        error: {}\n      },\n      {\n        id: '2',\n        cid: 'c2',\n        data: {\n          color: 'blue'\n        },\n        state: \"RESOLVED\",\n        error: {}\n      }\n    ],\n    error: {}\n  },\n  '{\"color\":\"blue\"}': {\n    state: \"RESOLVED\",\n    data: [\n      {\n        id: '2',\n        cid: 'c2',\n        data: {\n          color: 'blue'\n        },\n        state: \"RESOLVED\",\n        error: {}\n      }\n    ],\n    error: {}\n  }\n}\n```\n\nThe keys for the dictionary are the `JSON.stringify()` version of the query.  For example, a called to `lore.connect`\nthat looks like this:\n\n```js\nlore.connect(function(getState, props) {\n  return {\n    todos: getState('todo.all', {\n      where: {\n        color: 'blue'\n      }\n    })\n  }\n})\n```\n\nSpecifies the query `{color: 'blue'}`.  It's that query that gets passed to `JSON.stringify()` and stored as the \ndictionary key.  When new data shows in either the `byId` or `byCid` dictionaries that are new (don't currently exist\nin `todo.all`) they are inspected to see whether the any of the stored queries match the data, and if so that data is\ninserted into the collection in the dictionary.\n\n","readmeFilename":"README.md","_id":"lore-hook-reducers@0.13.0-beta.16","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-dWLDIMTMWt1dSnufdlBpwzAHmwt/kj0TO7F5/XG/99WD4UmWFm8Wn93gMnKRzrriVd4FDyw+4g1Cm3QoZ8O9OQ==","shasum":"d3170983b957b2d6cc40ad7b5fc0d91b378c8213","tarball":"https://registry.npmjs.org/lore-hook-reducers/-/lore-hook-reducers-0.13.0-beta.16.tgz","fileCount":32,"unpackedSize":101083,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa4kKvCRA9TVsSAnZWagAAd80P/iWEmGfxwI3zVTDN5rYe\n93a8/6/cGBW9jtLDdSp6VhFWykGx5Vn/3JbO0vXTJej7UXkjnkhm8RTrPcxN\ng0HJmzvXPzwhufRTfqopfhRcNs6HfGlUeU6/aOpy9xgUdjwWndJs6EqQFw9i\nZ7n8ELrcpqs7AsGN2WFkrXI3KAWE5ckHGXK12yi+r3yj2JqouUu3xwejuMLg\n37iYELtLW2UbkudoKKr75TkX6ib9IcKNJy/vv/IXmGHgqmtIjCvKscY2CxB5\n8T9yDl76ZLdtjwLKRBedhbXuDyNgkI3oovG+kxnWUD8e5MvT88uYK/Kyu2s7\nEaUUBovHrT13hDm4j9jI1XkE9xG3u2QPbdDON+BU3N7k/kbxoQuUaYrTzPX5\nfMEdEu3i01Htdtt59tI0RsjnKRsn/PAJVmQhOEpZ7/UsjOY52cd0CuEoPAqB\n3jRsy3hwdNT7K11LQAAgbHb39uf+Lm0fke2S/uTWYgEjynow96rIkg7P5HVc\nX7lTiAs3i7vSskevoKeq4x8tuOMTSZs+gOxciULu7R5xzln2lV6FKKnAGu1p\norHJdrxPXGb9BhFwPbVqLxM5GKnRD5N9KBOAZrR3cIwrrruqT3QklYUDw/fR\n3lqw6uA0ycPSqfEXm/YEALkfunzds+4iLfbkam3uXWLQWOhOqJsqiCWTYqWV\nAmGY\r\n=KXaE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC3u2HEJuwmV0aw+HXsxKhf4t+3oElxv8XTh9LAqgFmowIgCiBIJxrRQjg7cFPKermhV/OD34Nw3dsHL5MG8UXAIbM="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-reducers_0.13.0-beta.16_1524777647137_0.10135963641147883"},"_hasShrinkwrap":false},"0.13.0-rc.1":{"name":"lore-hook-reducers","version":"0.13.0-rc.1","license":"MIT","main":"lib/index.js","module":"es/index.js","description":"A lore hook that creates Redux reducers","keywords":["lore","hook","reducers","redux"],"scripts":{"build":"npm run build:cjs && npm run build:es","build:cjs":"BABEL_ENV=cjs ../../node_modules/.bin/babel src --out-dir lib","build:es":"BABEL_ENV=es ../../node_modules/.bin/babel src --out-dir es","clean":"rimraf lib && rimraf es","debug":"mocha debug --compilers js:babel-core/register --recursive","lint":"../../node_modules/.bin/eslint src","prepublish":"npm run build","test":"BABEL_ENV=test mocha --compilers js:babel-core/register test/bootstrap.js test/**/*.spec.js --recursive"},"dependencies":{"lodash":"^4.0.0","lore-utils":"^0.13.0-rc.1","topsort":"0.0.2"},"devDependencies":{"chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"readme":"# lore-hook-reducers\n\n### Purpose\n\nLoads all user defined reducers, which will override any blueprints previously created. \n\nThe result is exposed on `lore.reducers`.\n\n### Dependant Hooks\n\nNone, but needs to be run **after** the `reducerBlueprints` hook or else the blueprints will override the user \ndefined reducers.\n\n\n### Needed improvements\n\nSuggestions are welcome. \n\n\n### Example Usage\n\nGiven a project where a custom `todo.count` reducer has been declared like so:\n\n```sh\nsrc\n|-reducers\n  |-todo\n    |-count.js\n```\n\nThis hook will find it and expose it on `lore.reducers.todo.count` and make sure it's combined into the Redux store.\n\nReducers should follow this format:\n\n```js\n// file: src/reducers/todo/count.js\n\nmodule.exports = function count(state, action) {\n   state = state || 0;\n\n   switch (action.type) {\n     case ActionTypes.ADD_TODO:\n       return state + 1;\n\n     default:\n       return nextState\n   }\n };;\n```\n\n# reducer blueprints\n\n### Purpose\n\nIf enabled, will create default reducers for all models that cover basic find operations - find by query, find by \nid, and find by cid.\n\nIterates through all models in `lore.models` and creates reducers for all of them.\n\n### Dependant Hooks\n\nDepends on the `models` hook being run first as it iterations through `lore.models`.\n\n\n### Needed improvements\n\n1. Needs to support pagination.\n2. There should be an option to turn off blueprints.\n3. `all` needs to be renamed to `find` as it's more accurate (all isn't all, it will often be only a pagninated \nsubset of data found based on some query)\n4. There's a bug preventing resources that use a number as a unique id from being stored correctly.\n5. Should support equality operators, like \"find todos that were completed before some data\"\n\n### Example Usage\n\nGiven a model called `todo`, this hook will create the following reducers:\n\n* lore.reducers.todo.all\n* lore.reducers.todo.byId\n* lore.reducers.todo.byCid\n\nThe reducers are not meant to be accessed or used directly.  Redux handles that.\n\n\n### Interfaces\n\n\n#### byId\n\nThis reducer has a standard Redux format:\n\n```js\nfunction byId(state, action) {...})\n```\n\nIt's purpose is to listen for the standard CRUD ActionTypes (`ADD_TODO`, `UPDATE_TODO`, `REMOVE_TODO`, and \n`FETCH_TODOS`) and store the results in a dictionary where the key is the model id.  If a model doesn't have an \nid (which happens during optimistic creates) the model is not stored in the dictionary.  Keeping track of the models\nthat only exist on the client side is the job of the `byCid` reducer.\n\nHere is an example of the dictionary this reducer returns:\n\n```js\n{\n  '1': {\n    id: '1',\n    cid: 'c1',\n    data: {..some data..},\n    state: \"RESOLVED\",\n    error: {}\n  },\n  '2': {\n    ...\n  }\n}\n```\n\n#### byCid\n\nThis reducer has a standard Redux format:\n\n```js\n// standard reducer arguments\nfunction byCid(state, action) {...})\n```\n\nIt's purpose is to listen for the standard CRUD ActionTypes (`ADD_TODO`, `UPDATE_TODO`, `REMOVE_TODO`, and \n`FETCH_TODOS`) and store the results in a dictionary where the key is the model cid.  There should never be a\nsituation where a model does not have a cid.\n\nHere is an example of the dictionary this reducer returns (note the `c2` resource that has no id and is currently \nbeing created):\n\n```js\n{\n  'c1': {\n    id: '1',\n    cid: 'c1',\n    data: {..some data..},\n    state: \"RESOLVED\",\n    error: {}\n  },\n  'c2': {\n    id: null,\n    cid: 'c2',\n    data: {..some data..},\n    state: \"CREATING\",\n    error: {}\n  }\n}\n```\n\n\n\n#### all\n\nThis reducer has a modified Redux format as it requires an additional third 'options' arguments that includes the \nresults from the `byId` and `byCid` reducers stored in a `nextState` object.\n\n```\nvar _byId = byId(state.byId, action);\nvar _byCid = byCid(state.byCid, action);\nvar _all = all(state.all, action, {\n  nextState: {\n    byId: _byId,\n    byCid: _byCid\n  }\n});\n```\n\nIt's purpose is to store collections of resources group by a common query, and listens for the ActionType\n`FETCH_TODOS`. If new data is created that matches the query criteria for one of the lists, it will also make sure\nthat resource is included inside that list.\n\nHere is an example of the dictionary this reducer returns:\n\n```js\n{\n  '{}': {\n    state: \"RESOLVED\",\n    data: [\n      {\n        id: '1',\n        cid: 'c1',\n        data: {\n          color: 'red'\n        },\n        state: \"RESOLVED\",\n        error: {}\n      },\n      {\n        id: '2',\n        cid: 'c2',\n        data: {\n          color: 'blue'\n        },\n        state: \"RESOLVED\",\n        error: {}\n      }\n    ],\n    error: {}\n  },\n  '{\"color\":\"blue\"}': {\n    state: \"RESOLVED\",\n    data: [\n      {\n        id: '2',\n        cid: 'c2',\n        data: {\n          color: 'blue'\n        },\n        state: \"RESOLVED\",\n        error: {}\n      }\n    ],\n    error: {}\n  }\n}\n```\n\nThe keys for the dictionary are the `JSON.stringify()` version of the query.  For example, a called to `lore.connect`\nthat looks like this:\n\n```js\nlore.connect(function(getState, props) {\n  return {\n    todos: getState('todo.all', {\n      where: {\n        color: 'blue'\n      }\n    })\n  }\n})\n```\n\nSpecifies the query `{color: 'blue'}`.  It's that query that gets passed to `JSON.stringify()` and stored as the \ndictionary key.  When new data shows in either the `byId` or `byCid` dictionaries that are new (don't currently exist\nin `todo.all`) they are inspected to see whether the any of the stored queries match the data, and if so that data is\ninserted into the collection in the dictionary.\n\n","readmeFilename":"README.md","_id":"lore-hook-reducers@0.13.0-rc.1","_npmVersion":"6.0.1","_nodeVersion":"8.11.1","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-jEv1k0E84SqXjEaFI2J+mAca/35DCpNm56ey4JLdBXTTm/zsAbcrbRsU0NwZfuV/gNfktBt439dw5k6iyTKS1Q==","shasum":"7b186476127d32c7c613ac1189878830eda6983d","tarball":"https://registry.npmjs.org/lore-hook-reducers/-/lore-hook-reducers-0.13.0-rc.1.tgz","fileCount":32,"unpackedSize":101077,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa+IceCRA9TVsSAnZWagAAvPgP/RiG459dJ0O+FtYhbuFX\nEY1ehvRHulrF5IAkCf+M4+WBRIw+GhE6JLSOh+DOUDkwBLLQWApSW3FqaZD6\n2MfbkPwNi4WMn92XbTxxvAJfBTEDIpZv5+TGvpYLb4vzBlnKjNX0UG/YNfBJ\nFC5W5VetcG6h4jFVbY11qO5ffJsWUtCTpzciOIiIUGgl+AseXYinnwmfU4Wp\nQ8Z1pr6lEVJiR1GA2RphcLGpfo2c/Id8OdZaeIt09OkRL2NW7gtoxG+H7J/i\nE4XAKbOItfZyFuGIxmTHnNrjcDsT2BWze7yI6YWuVCdACnvC5tBKiRG53EnD\nI9qpmoZUFp3FJ7+Eg5tlYlvwzQxN0ACAwHUrLbSeFbRLSuxf2PLHyfLP2AuX\nyFRCaPKwxmSjreHqcLB8420gm28Tc2E0bmgPnkN9lDBC2ykhmKcQuXnpy/KO\nd8E66AifqilV33EAsxJwEiBkh5rGfqUOLcODg1btSKQDaHCNUl9mxj/zx4wc\nwn6UwAqy1CU4jOQvqdn1JIfcff2Z83rN0nimbXaqbx4xt1JkCdMXZA1sK8e/\nq1htNDJgRpEWvSioj84iMc4FkLRNXTm4OUbWEWmxP7oelAc+wcVzYxZne+0V\nht2lZp0bG57kXX2ebGETUk+8YfePwKZ6pz8mw+3ZZnSXVtmnWiFGEoHCg5rO\n+Lcl\r\n=svrZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICNAw2j7VRrL3hmHibvfnc/evFv11qrXnJjK0bzOIuMdAiBmlbOmHyfkOKBaiTSSLlvHp0C0ZP/vFpIC3Bk+IP/PjA=="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-reducers_0.13.0-rc.1_1526236958420_0.8967409736172554"},"_hasShrinkwrap":false},"0.13.0-rc.2":{"name":"lore-hook-reducers","version":"0.13.0-rc.2","license":"MIT","main":"lib/index.js","module":"es/index.js","description":"A lore hook that creates Redux reducers","keywords":["lore","hook","reducers","redux"],"scripts":{"build":"npm run build:cjs && npm run build:es","build:cjs":"BABEL_ENV=cjs ../../node_modules/.bin/babel src --out-dir lib","build:es":"BABEL_ENV=es ../../node_modules/.bin/babel src --out-dir es","clean":"rimraf lib && rimraf es","debug":"mocha debug --compilers js:babel-core/register --recursive","lint":"../../node_modules/.bin/eslint src","prepublish":"npm run build","test":"BABEL_ENV=test mocha --compilers js:babel-core/register test/bootstrap.js test/**/*.spec.js --recursive"},"dependencies":{"lodash":"^4.0.0","lore-utils":"^0.13.0-rc.2","topsort":"0.0.2"},"devDependencies":{"chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"readme":"# lore-hook-reducers\n\n### Purpose\n\nLoads all user defined reducers, which will override any blueprints previously created. \n\nThe result is exposed on `lore.reducers`.\n\n### Dependant Hooks\n\nNone, but needs to be run **after** the `reducerBlueprints` hook or else the blueprints will override the user \ndefined reducers.\n\n\n### Needed improvements\n\nSuggestions are welcome. \n\n\n### Example Usage\n\nGiven a project where a custom `todo.count` reducer has been declared like so:\n\n```sh\nsrc\n|-reducers\n  |-todo\n    |-count.js\n```\n\nThis hook will find it and expose it on `lore.reducers.todo.count` and make sure it's combined into the Redux store.\n\nReducers should follow this format:\n\n```js\n// file: src/reducers/todo/count.js\n\nmodule.exports = function count(state, action) {\n   state = state || 0;\n\n   switch (action.type) {\n     case ActionTypes.ADD_TODO:\n       return state + 1;\n\n     default:\n       return nextState\n   }\n };;\n```\n\n# reducer blueprints\n\n### Purpose\n\nIf enabled, will create default reducers for all models that cover basic find operations - find by query, find by \nid, and find by cid.\n\nIterates through all models in `lore.models` and creates reducers for all of them.\n\n### Dependant Hooks\n\nDepends on the `models` hook being run first as it iterations through `lore.models`.\n\n\n### Needed improvements\n\n1. Needs to support pagination.\n2. There should be an option to turn off blueprints.\n3. `all` needs to be renamed to `find` as it's more accurate (all isn't all, it will often be only a pagninated \nsubset of data found based on some query)\n4. There's a bug preventing resources that use a number as a unique id from being stored correctly.\n5. Should support equality operators, like \"find todos that were completed before some data\"\n\n### Example Usage\n\nGiven a model called `todo`, this hook will create the following reducers:\n\n* lore.reducers.todo.all\n* lore.reducers.todo.byId\n* lore.reducers.todo.byCid\n\nThe reducers are not meant to be accessed or used directly.  Redux handles that.\n\n\n### Interfaces\n\n\n#### byId\n\nThis reducer has a standard Redux format:\n\n```js\nfunction byId(state, action) {...})\n```\n\nIt's purpose is to listen for the standard CRUD ActionTypes (`ADD_TODO`, `UPDATE_TODO`, `REMOVE_TODO`, and \n`FETCH_TODOS`) and store the results in a dictionary where the key is the model id.  If a model doesn't have an \nid (which happens during optimistic creates) the model is not stored in the dictionary.  Keeping track of the models\nthat only exist on the client side is the job of the `byCid` reducer.\n\nHere is an example of the dictionary this reducer returns:\n\n```js\n{\n  '1': {\n    id: '1',\n    cid: 'c1',\n    data: {..some data..},\n    state: \"RESOLVED\",\n    error: {}\n  },\n  '2': {\n    ...\n  }\n}\n```\n\n#### byCid\n\nThis reducer has a standard Redux format:\n\n```js\n// standard reducer arguments\nfunction byCid(state, action) {...})\n```\n\nIt's purpose is to listen for the standard CRUD ActionTypes (`ADD_TODO`, `UPDATE_TODO`, `REMOVE_TODO`, and \n`FETCH_TODOS`) and store the results in a dictionary where the key is the model cid.  There should never be a\nsituation where a model does not have a cid.\n\nHere is an example of the dictionary this reducer returns (note the `c2` resource that has no id and is currently \nbeing created):\n\n```js\n{\n  'c1': {\n    id: '1',\n    cid: 'c1',\n    data: {..some data..},\n    state: \"RESOLVED\",\n    error: {}\n  },\n  'c2': {\n    id: null,\n    cid: 'c2',\n    data: {..some data..},\n    state: \"CREATING\",\n    error: {}\n  }\n}\n```\n\n\n\n#### all\n\nThis reducer has a modified Redux format as it requires an additional third 'options' arguments that includes the \nresults from the `byId` and `byCid` reducers stored in a `nextState` object.\n\n```\nvar _byId = byId(state.byId, action);\nvar _byCid = byCid(state.byCid, action);\nvar _all = all(state.all, action, {\n  nextState: {\n    byId: _byId,\n    byCid: _byCid\n  }\n});\n```\n\nIt's purpose is to store collections of resources group by a common query, and listens for the ActionType\n`FETCH_TODOS`. If new data is created that matches the query criteria for one of the lists, it will also make sure\nthat resource is included inside that list.\n\nHere is an example of the dictionary this reducer returns:\n\n```js\n{\n  '{}': {\n    state: \"RESOLVED\",\n    data: [\n      {\n        id: '1',\n        cid: 'c1',\n        data: {\n          color: 'red'\n        },\n        state: \"RESOLVED\",\n        error: {}\n      },\n      {\n        id: '2',\n        cid: 'c2',\n        data: {\n          color: 'blue'\n        },\n        state: \"RESOLVED\",\n        error: {}\n      }\n    ],\n    error: {}\n  },\n  '{\"color\":\"blue\"}': {\n    state: \"RESOLVED\",\n    data: [\n      {\n        id: '2',\n        cid: 'c2',\n        data: {\n          color: 'blue'\n        },\n        state: \"RESOLVED\",\n        error: {}\n      }\n    ],\n    error: {}\n  }\n}\n```\n\nThe keys for the dictionary are the `JSON.stringify()` version of the query.  For example, a called to `lore.connect`\nthat looks like this:\n\n```js\nlore.connect(function(getState, props) {\n  return {\n    todos: getState('todo.all', {\n      where: {\n        color: 'blue'\n      }\n    })\n  }\n})\n```\n\nSpecifies the query `{color: 'blue'}`.  It's that query that gets passed to `JSON.stringify()` and stored as the \ndictionary key.  When new data shows in either the `byId` or `byCid` dictionaries that are new (don't currently exist\nin `todo.all`) they are inspected to see whether the any of the stored queries match the data, and if so that data is\ninserted into the collection in the dictionary.\n\n","readmeFilename":"README.md","_id":"lore-hook-reducers@0.13.0-rc.2","_npmVersion":"6.0.1","_nodeVersion":"8.11.1","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-OTHBZnRVLCUzZ0p7XMFeF9ZwXdMbi3/2mUMYILe9k+nQl7pCO0JB8HKP0eUvtjePNFasxxlM4fOZ9EjCSfQbBw==","shasum":"85edce3ac1bdd8f43a791f89b1910838723ee25a","tarball":"https://registry.npmjs.org/lore-hook-reducers/-/lore-hook-reducers-0.13.0-rc.2.tgz","fileCount":32,"unpackedSize":101056,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbAhMNCRA9TVsSAnZWagAAcmUP/24sNXi2SQYvtiu0ZFRh\nIPnzwZhFRAOm+9SO3DOhsDnhIdmVNrnVj6OgQsBsq+4p2D2AdN4DHH2Htnf2\nex5Iknp3j5aQPoeYEyzg57krvBprfk5f9o1eJvP1HXwRbztX8JPPtQUHmiix\n5FmbthuuglC6BP9uX1ag6sVMAxzCpbVzGUpOW3aLAY3eWmAaBFvwWDXuGb7/\nA49rfVl1ZksudATM5wLvnWFPEJuOzKjJxAECf0xsyZHjhsSEMsAqlFvLjoLw\nM+JUZvjp3jO577myWPKlA+aaptP9UdcPM9U/ZnuA5ceN7mWD0IREm8Bve3ia\ncJaoyw4ODzWlhOhmiJyfSEvbyze+0XgIUsxEJqbKwZjZu03hxhWCEA23vbrW\nRg9DRB+v9t8BmTSxniTricrMYqdp+Dc6DBbI4NXeDN3/N1pp6stTZob19eEl\nHrHwVI0nHxpN/wEPngLU7WQnUS9JSSm0k/Lyj2Im7vXT1nGKnsLzIxYqPgMO\n4rox5MVto/bo3yrzu9gUURTFSIpfcgYAts0ivCymm5wjUSbEr/deGuw8H7Vq\nYZ+Jr+CuAv3u9uSN5s09l/Jqd9w7bMS6BP6C7AmZiC6pqf9/t2JZS3/t67X0\nSyWg4fhLTC/WbeUX4Iwo3FatxLqKRJztNQBFuOlUBadmbtoCcpQrAhnvRZHc\nCrMc\r\n=8i13\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDlopP43TgllzXeRc1DCd7Rl4aiI/aKbK6xgx/R/ST+6gIhALm8uea16+F3Fq/3gZ+5dRXiWEZ0gJj6ethFIeAQ5glI"}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-reducers_0.13.0-rc.2_1526862605077_0.40799119413172846"},"_hasShrinkwrap":false},"0.13.0":{"name":"lore-hook-reducers","version":"0.13.0","license":"MIT","main":"lib/index.js","module":"es/index.js","description":"A lore hook that creates Redux reducers","keywords":["lore","hook","reducers","redux"],"scripts":{"build":"npm run build:cjs && npm run build:es","build:cjs":"BABEL_ENV=cjs ../../node_modules/.bin/babel src --out-dir lib","build:es":"BABEL_ENV=es ../../node_modules/.bin/babel src --out-dir es","clean":"rimraf lib && rimraf es","debug":"mocha debug --compilers js:babel-core/register --recursive","lint":"../../node_modules/.bin/eslint src","prepublish":"npm run build","test":"BABEL_ENV=test mocha --compilers js:babel-core/register test/bootstrap.js test/**/*.spec.js --recursive"},"dependencies":{"lodash":"^4.0.0","lore-utils":"^0.13.0","topsort":"0.0.2"},"devDependencies":{"chai":"3.4.1","mocha":"2.3.4","rimraf":"2.5.2"},"_id":"lore-hook-reducers@0.13.0","_npmVersion":"6.0.1","_nodeVersion":"8.11.1","_npmUser":{"name":"jchansen","email":"jason_hansen@outlook.com"},"dist":{"integrity":"sha512-NkAym1dC3fHcbJW3EA5Y4l2AE5ZLzUuU7z6zo/ZtKsOkfQuDd+/VWRBYElflSDpazKYLq3DpJ4J/Nkq25Ng/mw==","shasum":"3a85b8cc923f16f58e2e2cfffab32a0cb9e456ab","tarball":"https://registry.npmjs.org/lore-hook-reducers/-/lore-hook-reducers-0.13.0.tgz","fileCount":32,"unpackedSize":101235,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbLvkECRA9TVsSAnZWagAAxi0P/0G1zGtWKSHGA2lfPKrT\nnuYSR5lbzXygPGGqOLcHi3iumURbvmUAxo8PDeKzWTuldnd2vNCiM7rYPrKB\nPKozIKR8RJvQL43t1YXV5QK0eU4EUtY7f+e9SfLQIi9nTde5G+utDicB3S3L\n3NwREdwZWSj0+xIEP3GncgY/vcjE6wJmzoGx/dTCdYTGcjjC7RlMrMNldlCA\nnkHCxDWE6KKelXrTWGBzzUNpq4Y5zbuQofqYHMYmDqSV4FHVbTAGm91H9OYQ\n3ItgVHv00m/deX/RifXVBzLnfY3RJ1JK8VxYewSb1AulpVgULhZ0DOl5iglz\nU0SrRF49jNymSF3geO10DQKlL3VWdPJR7cw8dK7ABj04hqijYF5NnA0PciMM\nPUoCoryRPx4afKHWtUTf+7DtMD9qXzCQve3Tn4GpGSZhOs87yEmBSGPCFTio\nP0FIy9VtEDurIlPHdd6DP4BAoLfkUrouW+MK1RyzjNiEPuU2uC7vj5SnvnBJ\nsNPPKeINNvKuSjHPAM/I9AtkcSZ16BsQ5uuADCBKwY96XBfuxarInonzOrs8\n7TNoTI6MdiIZ+u3Bti2EDVd1HG2fKuE3cIh2QloVyP3d5VEAZueAhNF0Zwws\nVF0/4p7XxfRA3sXM9GmE10/YQ0Pb+K8JSbuFx/tgvl3r0EqdZvdWgkPCwY/u\ndVik\r\n=87Jm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFu3qDVIzDZAaVA49Pfg1beiVXxdnJLMQmPNFAvHhDUMAiBK3Qt7m0jZ8haYwoIDKOumHAwHQlUNF4vN92Wt2sS6Uw=="}]},"maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lore-hook-reducers_0.13.0_1529805060846_0.8699124931565889"},"_hasShrinkwrap":false}},"readme":"# lore-hook-reducers\n\n### Purpose\n\nLoads all user defined reducers, which will override any blueprints previously created. \n\nThe result is exposed on `lore.reducers`.\n\n### Dependant Hooks\n\nNone, but needs to be run **after** the `reducerBlueprints` hook or else the blueprints will override the user \ndefined reducers.\n\n\n### Needed improvements\n\nSuggestions are welcome. \n\n\n### Example Usage\n\nGiven a project where a custom `todo.count` reducer has been declared like so:\n\n```sh\nsrc\n|-reducers\n  |-todo\n    |-count.js\n```\n\nThis hook will find it and expose it on `lore.reducers.todo.count` and make sure it's combined into the Redux store.\n\nReducers should follow this format:\n\n```js\n// file: src/reducers/todo/count.js\n\nmodule.exports = function count(state, action) {\n   state = state || 0;\n\n   switch (action.type) {\n     case ActionTypes.ADD_TODO:\n       return state + 1;\n\n     default:\n       return nextState\n   }\n };;\n```\n\n# reducer blueprints\n\n### Purpose\n\nIf enabled, will create default reducers for all models that cover basic find operations - find by query, find by \nid, and find by cid.\n\nIterates through all models in `lore.models` and creates reducers for all of them.\n\n### Dependant Hooks\n\nDepends on the `models` hook being run first as it iterations through `lore.models`.\n\n\n### Needed improvements\n\n1. Needs to support pagination.\n2. There should be an option to turn off blueprints.\n3. `all` needs to be renamed to `find` as it's more accurate (all isn't all, it will often be only a pagninated \nsubset of data found based on some query)\n4. There's a bug preventing resources that use a number as a unique id from being stored correctly.\n5. Should support equality operators, like \"find todos that were completed before some data\"\n\n### Example Usage\n\nGiven a model called `todo`, this hook will create the following reducers:\n\n* lore.reducers.todo.all\n* lore.reducers.todo.byId\n* lore.reducers.todo.byCid\n\nThe reducers are not meant to be accessed or used directly.  Redux handles that.\n\n\n### Interfaces\n\n\n#### byId\n\nThis reducer has a standard Redux format:\n\n```js\nfunction byId(state, action) {...})\n```\n\nIt's purpose is to listen for the standard CRUD ActionTypes (`ADD_TODO`, `UPDATE_TODO`, `REMOVE_TODO`, and \n`FETCH_TODOS`) and store the results in a dictionary where the key is the model id.  If a model doesn't have an \nid (which happens during optimistic creates) the model is not stored in the dictionary.  Keeping track of the models\nthat only exist on the client side is the job of the `byCid` reducer.\n\nHere is an example of the dictionary this reducer returns:\n\n```js\n{\n  '1': {\n    id: '1',\n    cid: 'c1',\n    data: {..some data..},\n    state: \"RESOLVED\",\n    error: {}\n  },\n  '2': {\n    ...\n  }\n}\n```\n\n#### byCid\n\nThis reducer has a standard Redux format:\n\n```js\n// standard reducer arguments\nfunction byCid(state, action) {...})\n```\n\nIt's purpose is to listen for the standard CRUD ActionTypes (`ADD_TODO`, `UPDATE_TODO`, `REMOVE_TODO`, and \n`FETCH_TODOS`) and store the results in a dictionary where the key is the model cid.  There should never be a\nsituation where a model does not have a cid.\n\nHere is an example of the dictionary this reducer returns (note the `c2` resource that has no id and is currently \nbeing created):\n\n```js\n{\n  'c1': {\n    id: '1',\n    cid: 'c1',\n    data: {..some data..},\n    state: \"RESOLVED\",\n    error: {}\n  },\n  'c2': {\n    id: null,\n    cid: 'c2',\n    data: {..some data..},\n    state: \"CREATING\",\n    error: {}\n  }\n}\n```\n\n\n\n#### all\n\nThis reducer has a modified Redux format as it requires an additional third 'options' arguments that includes the \nresults from the `byId` and `byCid` reducers stored in a `nextState` object.\n\n```\nvar _byId = byId(state.byId, action);\nvar _byCid = byCid(state.byCid, action);\nvar _all = all(state.all, action, {\n  nextState: {\n    byId: _byId,\n    byCid: _byCid\n  }\n});\n```\n\nIt's purpose is to store collections of resources group by a common query, and listens for the ActionType\n`FETCH_TODOS`. If new data is created that matches the query criteria for one of the lists, it will also make sure\nthat resource is included inside that list.\n\nHere is an example of the dictionary this reducer returns:\n\n```js\n{\n  '{}': {\n    state: \"RESOLVED\",\n    data: [\n      {\n        id: '1',\n        cid: 'c1',\n        data: {\n          color: 'red'\n        },\n        state: \"RESOLVED\",\n        error: {}\n      },\n      {\n        id: '2',\n        cid: 'c2',\n        data: {\n          color: 'blue'\n        },\n        state: \"RESOLVED\",\n        error: {}\n      }\n    ],\n    error: {}\n  },\n  '{\"color\":\"blue\"}': {\n    state: \"RESOLVED\",\n    data: [\n      {\n        id: '2',\n        cid: 'c2',\n        data: {\n          color: 'blue'\n        },\n        state: \"RESOLVED\",\n        error: {}\n      }\n    ],\n    error: {}\n  }\n}\n```\n\nThe keys for the dictionary are the `JSON.stringify()` version of the query.  For example, a called to `lore.connect`\nthat looks like this:\n\n```js\nlore.connect(function(getState, props) {\n  return {\n    todos: getState('todo.all', {\n      where: {\n        color: 'blue'\n      }\n    })\n  }\n})\n```\n\nSpecifies the query `{color: 'blue'}`.  It's that query that gets passed to `JSON.stringify()` and stored as the \ndictionary key.  When new data shows in either the `byId` or `byCid` dictionaries that are new (don't currently exist\nin `todo.all`) they are inspected to see whether the any of the stored queries match the data, and if so that data is\ninserted into the collection in the dictionary.\n\n","maintainers":[{"name":"jchansen","email":"jason_hansen@outlook.com"}],"time":{"modified":"2022-06-19T14:20:12.520Z","created":"2016-09-18T21:33:46.453Z","0.10.0-rc.1":"2016-09-18T21:33:46.453Z","0.10.0":"2016-09-18T22:59:08.974Z","0.10.0-beta.1":"2016-10-04T09:22:07.908Z","0.10.1":"2016-10-13T05:41:11.874Z","0.11.0-beta.1":"2016-12-12T06:24:28.359Z","0.11.0-rc.1":"2017-01-24T06:25:15.680Z","0.11.0":"2017-01-29T04:55:18.458Z","0.12.0-beta.1":"2017-03-06T00:00:26.669Z","0.11.5":"2017-05-02T08:04:22.146Z","0.12.0-rc.1":"2017-05-02T08:55:59.109Z","0.12.0":"2017-05-08T05:00:23.267Z","0.12.6":"2017-07-04T05:09:36.271Z","0.12.7-rc.1":"2017-07-09T22:16:16.086Z","0.13.0-beta.1":"2017-09-18T19:57:30.792Z","0.13.0-beta.2":"2017-09-18T21:42:26.768Z","0.13.0-beta.3":"2017-09-18T22:31:49.427Z","0.13.0-beta.5":"2017-11-14T20:52:57.575Z","0.13.0-beta.6":"2017-11-14T22:26:25.589Z","0.13.0-beta.7":"2017-11-14T22:38:52.717Z","0.13.0-beta.9":"2017-11-25T07:18:33.749Z","0.13.0-beta.10":"2017-12-14T21:20:26.457Z","0.13.0-beta.11":"2017-12-19T20:45:48.520Z","0.13.0-beta.12":"2018-03-05T01:56:02.840Z","0.13.0-beta.13":"2018-03-25T01:06:47.547Z","0.13.0-beta.14":"2018-03-31T21:18:34.447Z","0.13.0-beta.15":"2018-04-10T02:59:34.283Z","0.13.0-beta.16":"2018-04-26T21:20:47.211Z","0.13.0-rc.1":"2018-05-13T18:42:38.590Z","0.13.0-rc.2":"2018-05-21T00:30:05.256Z","0.13.0":"2018-06-24T01:51:00.924Z"},"keywords":["lore","hook","reducers","redux"],"license":"MIT","readmeFilename":"README.md"}