{"_id":"redux-views","_rev":"16-6ecf97c6ab895de1cb6f7ee1d715101e","name":"redux-views","dist-tags":{"latest":"1.0.3"},"versions":{"0.0.1":{"name":"redux-views","version":"0.0.1","license":"MIT","repository":{"type":"git","url":"git+https://github.com/josepot/redux-views.git"},"bugs":{"url":"https://github.com/josepot/redux-views/issues"},"keywords":["redux","selectors","cached","functional"],"author":{"name":"Josep M Sobrepere","url":"https://github.com/josepot"},"main":"lib/redux-views.js","types":"types/index.d.ts","unpkg":"dist/redux-views.js","module":"es/redux-views.js","scripts":{"clean":"rimraf lib dist es coverage","format":"prettier --write \"{src,test}/**/*.js\"","format:check":"prettier --list-different \"{src,test}/**/*.js\"","lint":"eslint src test","pretest":"npm run build","test":"jest","test:watch":"npm test -- --watch","test:cov":"npm test -- --coverage","test:types":"dtslint types","build":"rollup -c","prepare":"npm run clean && npm run format:check && npm run lint && npm test"},"dependencies":{"loose-envify":"^1.1.0"},"devDependencies":{"@babel/cli":"^7.1.2","@babel/core":"^7.1.2","@babel/node":"^7.0.0","@babel/plugin-external-helpers":"^7.0.0","@babel/plugin-proposal-object-rest-spread":"^7.0.0","@babel/preset-env":"^7.1.0","@babel/preset-flow":"^7.0.0","@babel/register":"^7.0.0","babel-core":"^7.0.0-bridge.0","babel-eslint":"^9.0.0","babel-jest":"^23.6.0","cross-env":"^5.1.4","deep-freeze":"^0.0.1","dtslint":"^0.3.0","eslint":"^5.6.1","eslint-config-react-app":"^3.0.3","eslint-plugin-flowtype":"^2.50.3","eslint-plugin-import":"^2.11.0","eslint-plugin-jsx-a11y":"^6.1.2","eslint-plugin-react":"^7.7.0","glob":"^7.1.1","jest":"^23.6.0","prettier":"^1.14.3","ramda":"^0.25.0","redux":"^4.0.0","rimraf":"^2.6.2","rollup":"^0.66.4","rollup-plugin-babel":"^4.0.3","rollup-plugin-node-resolve":"^3.3.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-terser":"^3.0.0"},"npmName":"redux-views","npmFileMap":[{"basePath":"/dist/","files":["*.js"]}],"browserify":{"transform":["loose-envify"]},"jest":{"testRegex":"(/test/.*\\.spec.js)$","testURL":"http://localhost/"},"sideEffects":false,"gitHead":"37ac1cfdcbca273076c2f32f5bfb3805bee645b2","description":"Create declarative redux reducers without boilerplate.","homepage":"https://github.com/josepot/redux-views#readme","_id":"redux-views@0.0.1","_npmVersion":"6.4.1","_nodeVersion":"8.11.1","_npmUser":{"name":"josepot","email":"josep@sbrpr.com"},"dist":{"integrity":"sha512-68pSx8jgsaiDikC9YbLsj/rIC2sBR10MAeIFKCaZhm743FfN+Er3a4IuzUDUgkvA9wOShlh03f7WmgvQLGqDnA==","shasum":"ab4a3244dcb3efcf6189f19bb6f05933109fb04d","tarball":"https://registry.npmjs.org/redux-views/-/redux-views-0.0.1.tgz","fileCount":10,"unpackedSize":27851,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcdyWdCRA9TVsSAnZWagAA5csP/RA0eCds2dWiOZK1VvtO\nFmdFksJ+ToGHMXf/WAleczuhDa/7EKGSeNzNjJcGLthhEZueh/RF00JcsQlo\nFBCpVuuMXTqiuqUAgJwRmrSfC/2ss9O6rTrLDIevONAM/ulOsgmqoaWF9ZNf\nKPbTCE5GiFs4vhJhQNEVexKEbKys7RLOC6aOHYyMoX1AamGMaJHOVK5wkohM\nLN044YErpthZEpbvzsACoJ56OJ1rIp0N4lR1FiVj0Tz/FGL9aPAZvzSy9IzM\niriT7J0s4/fE6aSnK2JkoxNOcSFuBmO8EtIOsxC9kDsRpa/WOoyb3Z6eIZV3\noEOF126DcdnFqdYb6T9xh80rD6jAMyNGSDAHf6ZGorgbcnAB7PTOcVbn7ssP\nOqUKIA/YbMd3UnCQFTbO+E1L1eGDyY6deWNsCQtY6PQesKWH2V2EIQo/0ohx\nsKWkY/IEDOZi7T8q6ulNcUISxNUeWJJ9MtWkRLYRY+t1FtpBZaSLc/CUBXE4\nvAtRFfIaAn46KO6dYQDW54FKTwAWN5Bvx98UrOq+00vc3FelC5pmhrRJST6Q\nLPIdZPXFqjm5UC1F2AYaulhla86iMKhP1LXbD3LRj4Cz5Fw8flsxqROoLoG9\nN4cyZkWaKIbMYkYlQYU6UOAAGOhlXET4UFuU8M9MBfIE+mIjPI2TGdfXqsoP\nxSW3\r\n=G0ip\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGbCFG3iTp0W6ILCOdNiyWib9I75Wm9uf2HLtPMpXCntAiEA9BgHsTSlrmU2GfbuN9xzussDjtldb48QlRhrR4EkMNM="}]},"maintainers":[{"name":"josepot","email":"josep@sbrpr.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-views_0.0.1_1551312285072_0.30241782892200564"},"_hasShrinkwrap":false},"0.0.2":{"name":"redux-views","version":"0.0.2","license":"MIT","repository":{"type":"git","url":"git+https://github.com/josepot/redux-views.git"},"bugs":{"url":"https://github.com/josepot/redux-views/issues"},"keywords":["redux","selectors","cached","functional"],"author":{"name":"Josep M Sobrepere","url":"https://github.com/josepot"},"main":"lib/redux-views.js","unpkg":"dist/redux-views.js","module":"es/redux-views.js","scripts":{"clean":"rimraf lib dist es coverage","format":"prettier --write \"{src,test}/**/*.js\"","format:check":"prettier --list-different \"{src,test}/**/*.js\"","lint":"eslint src test","pretest":"npm run build","test":"jest","test:watch":"npm test -- --watch","test:cov":"npm test -- --coverage","build":"rollup -c","prepare":"npm run clean && npm run format:check && npm run lint && npm test"},"dependencies":{"loose-envify":"^1.1.0"},"devDependencies":{"@babel/cli":"^7.2.3","@babel/core":"^7.2.2","@babel/node":"^7.2.2","@babel/plugin-external-helpers":"^7.2.0","@babel/plugin-proposal-object-rest-spread":"^7.3.1","@babel/preset-env":"^7.3.1","@babel/preset-flow":"^7.0.0","@babel/register":"^7.0.0","babel-core":"^7.0.0-bridge.0","babel-eslint":"^10.0.1","babel-jest":"^24.0.0","cross-env":"^5.2.0","eslint":"^5.12.1","eslint-config-react-app":"^3.0.6","eslint-plugin-flowtype":"^3.2.1","eslint-plugin-import":"^2.15.0","eslint-plugin-jsx-a11y":"^6.2.0","eslint-plugin-react":"^7.12.4","glob":"^7.1.3","jest":"^24.0.0","prettier":"^1.16.1","rimraf":"^2.6.3","rollup":"^1.1.2","rollup-plugin-babel":"^4.3.2","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.3"},"npmName":"redux-views","npmFileMap":[{"basePath":"/dist/","files":["*.js"]}],"browserify":{"transform":["loose-envify"]},"jest":{"testRegex":"(/test/.*\\.spec.js)$","testURL":"http://localhost/"},"sideEffects":false,"gitHead":"8543c22e2a9a39d371ca8fcc19c448033b71a4df","homepage":"https://github.com/josepot/redux-views#readme","_id":"redux-views@0.0.2","_nodeVersion":"8.11.3","_npmVersion":"6.8.0","dist":{"integrity":"sha512-sHCRXl1D76F+mxg+hA8t3nHQftOVf0Su6tebG+FENSTlzqDPzfqmCBNgr8hIelOMt+nv4KHc8EpPuLhsOkrHYg==","shasum":"5c5659974454ea85420b7b50e7151c3e19825859","tarball":"https://registry.npmjs.org/redux-views/-/redux-views-0.0.2.tgz","fileCount":8,"unpackedSize":23941,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcfbBXCRA9TVsSAnZWagAAuHkP/RMxG7v6CYuHJzICFmsA\nftS1WKi9gx3V41S/OkLmYeb0z1Z2sux5YQ73/Pr3KsCZdBdlxb4vdBjq9iWx\nzbR/0TUJp2p4ltQTyKkDXAEcHgqm+HxFYhLyUWLNbEmQ+ouOl0jhoH+7naXQ\n6Jv1Dr0MJu0FdIEcD8JffKQF/FFyG+JJkN0bXkaHJHU51LaPZ9OR0KIDnsz9\nFYAEacQZtWoOUIJhhxF1wg/fdS2aQstSh8QWySksBLB/aCZXlp0VsLXQ9siC\n/gi+S9t1MLPSfWDU8sYmnSTG88mN5eIdk/wc6LMOvFGd7iLLOFq5c6FLl0yq\n5WJHonLZ7I40gvAVEYvy3jm4xIzmu6X8wezoXDlYSpgDPQTq7Cer0lsIx1rh\nWuy4uzkUGUBotceKBx9RpcA19lJZbrt0Ayq0fxrjU7GI2V8SSYsITem6Bncm\n16DlSnWMwH6nJtOiaVQceouYatku9Zfd8oDYfxrZ0ApguL3sgsEXvyVTQ0dS\nOsRX/GYLhdQFG5vsmSl014CxC1sc/JdossTwlOAIpT1rDEl22v69EdfHfRBp\nCkj0KkL2RB6VzXhA6/I5HQhZgf/vfV9k0DBDvizy2mcRdqNoacQC7enoLT/L\n8OkpTrFjtnqA3LCIMRVI95ZyUjfDwW2SEhUrLtW4svTNGPo4EWjS8XNnnkwe\nfYax\r\n=1rI7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDBvaisiphxP+zOyjTu9kKmGTPII9a3aeAqmzFcMokaGAIgFzGZy0mjcUzQT66/cqLSKqyRG1xbmwtjg9AY9lNLdic="}]},"maintainers":[{"name":"josepot","email":"josep@sbrpr.com"}],"_npmUser":{"name":"josepot","email":"josep@sbrpr.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-views_0.0.2_1551741015110_0.9870088405688207"},"_hasShrinkwrap":false},"0.1.0":{"name":"redux-views","version":"0.1.0","license":"MIT","repository":{"type":"git","url":"git+https://github.com/josepot/redux-views.git"},"bugs":{"url":"https://github.com/josepot/redux-views/issues"},"keywords":["redux","selectors","cached","functional"],"author":{"name":"Josep M Sobrepere","url":"https://github.com/josepot"},"main":"lib/redux-views.js","unpkg":"dist/redux-views.js","module":"es/redux-views.js","scripts":{"clean":"rimraf lib dist es coverage","format":"prettier --write \"{src,test}/**/*.js\"","format:check":"prettier --list-different \"{src,test}/**/*.js\"","lint":"eslint src test","pretest":"npm run build","test":"jest","test:watch":"npm test -- --watch","test:cov":"npm test -- --coverage","build":"rollup -c","prepare":"npm run clean && npm run format:check && npm run lint && npm test"},"dependencies":{"loose-envify":"^1.1.0"},"devDependencies":{"@babel/cli":"^7.2.3","@babel/core":"^7.2.2","@babel/node":"^7.2.2","@babel/plugin-external-helpers":"^7.2.0","@babel/plugin-proposal-object-rest-spread":"^7.3.1","@babel/preset-env":"^7.3.1","@babel/preset-flow":"^7.0.0","@babel/register":"^7.0.0","babel-core":"^7.0.0-bridge.0","babel-eslint":"^10.0.1","babel-jest":"^24.0.0","cross-env":"^5.2.0","eslint":"^5.12.1","eslint-config-react-app":"^3.0.6","eslint-plugin-flowtype":"^3.2.1","eslint-plugin-import":"^2.15.0","eslint-plugin-jsx-a11y":"^6.2.0","eslint-plugin-react":"^7.12.4","glob":"^7.1.3","jest":"^24.0.0","prettier":"^1.16.1","ramda":"^0.26.1","rimraf":"^2.6.3","rollup":"^1.1.2","rollup-plugin-babel":"^4.3.2","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.3"},"npmName":"redux-views","npmFileMap":[{"basePath":"/dist/","files":["*.js"]}],"browserify":{"transform":["loose-envify"]},"jest":{"testRegex":"(/test/.*\\.spec.js)$","testURL":"http://localhost/"},"sideEffects":false,"gitHead":"ba55703ac247a10c452a881a7121cfbe2eb6d1fe","homepage":"https://github.com/josepot/redux-views#readme","_id":"redux-views@0.1.0","_nodeVersion":"8.11.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-cLGgINlODzBQf1npqwPQuNBc2pWIAk1+fW0Gaoa8U5XN9uUIgVU9D0pAMQLaEv0SqFlVmHvlx8T+bMsJ/n8Ggw==","shasum":"5301c46e7bca9367bd35834e5856c6256cfa2f96","tarball":"https://registry.npmjs.org/redux-views/-/redux-views-0.1.0.tgz","fileCount":8,"unpackedSize":42307,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcgHXACRA9TVsSAnZWagAAQd0QAJ7FExvyBjSVJzFgkpWO\nm8Man2uPSBlng8+GYKCNQxXRfm5/Axu/+NxmDJh8M7q8vylUoqb5ZmqUGVWZ\noAFP9x1+jYgNUs3/MG3+9XqxmKwwydVUoWAJPJL/JxcN2vk6kHL26/hx7evG\ni40nkoCdr2gHPC8N1hw+x+/LKsDGeeKVLnzjK/rFTbDv8n80rHxLapM/r3yK\nY+Sl86A07cjNqMxXEMvjRMU3nkTTPgE9a3/Su019Ht5KadGABgeQ9dmvxnNw\n1Oqp2L9aBgJ202OM2KJH0FxBovI5zqHe2oHE44rM4TBXlo0j4UeBfc5zf5i3\ncjWbcEM94SPGkdQXGeQuFiyWwhRtqfPsKB6oG/ZoNckKuy23sPLEBNtEGIFZ\ntWjcMmxIkvUcW8J/AeGQ67jF31rDKZNQ5V8OUA6BLtn4KO/fZcw+Oj6m8su1\ncXO6bqCRpdRtz+TgUgRKCmuY1vuML33hcoCsGzbRYxaRLDtjHPaEk3EF+Mjw\nG9BahIgX1g3PPL96QhvlNkoVsUaKx094fh+H4lU06bCUN9sN78+wIfcJ80pK\nGRn5fE3F9eY6iOaoHXOl2gFbaYTQnBF/qBKrHDJ8is6PLAGZrY+vePghpcUy\nCo2ggXZt9jKc4EV4M2UGRoZbqfe4/8wBl2kprefPU9b6iQEZ3N89aiAwPBFh\nvxeA\r\n=/QuI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC2S533W2Dcn1ElTW+7OYQQVlFgnaOR06CjwaF3x+ju2gIhAOjqGQMdpEeGbeX/i9D/DDcL3f4p/bXt6ghW0iCzlmeP"}]},"maintainers":[{"name":"josepot","email":"josep@sbrpr.com"}],"_npmUser":{"name":"josepot","email":"josep@sbrpr.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-views_0.1.0_1551922623553_0.06141163187675547"},"_hasShrinkwrap":false},"0.2.0":{"name":"redux-views","version":"0.2.0","license":"MIT","repository":{"type":"git","url":"git+https://github.com/josepot/redux-views.git"},"bugs":{"url":"https://github.com/josepot/redux-views/issues"},"keywords":["redux","selectors","cached","functional"],"author":{"name":"Josep M Sobrepere","url":"https://github.com/josepot"},"main":"lib/redux-views.js","unpkg":"dist/redux-views.js","module":"es/redux-views.js","scripts":{"clean":"rimraf lib dist es coverage","format":"prettier --write \"{src,test}/**/*.js\"","format:check":"prettier --list-different \"{src,test}/**/*.js\"","lint":"eslint src test","pretest":"npm run build","test":"jest","test:watch":"npm test -- --watch","test:cov":"npm test -- --coverage","build":"rollup -c","prepare":"npm run clean && npm run format:check && npm run lint && npm test"},"dependencies":{"loose-envify":"^1.1.0"},"devDependencies":{"@babel/cli":"^7.2.3","@babel/core":"^7.2.2","@babel/node":"^7.2.2","@babel/plugin-external-helpers":"^7.2.0","@babel/plugin-proposal-object-rest-spread":"^7.3.1","@babel/preset-env":"^7.3.1","@babel/preset-flow":"^7.0.0","@babel/register":"^7.0.0","babel-core":"^7.0.0-bridge.0","babel-eslint":"^10.0.1","babel-jest":"^24.0.0","cross-env":"^5.2.0","eslint":"^5.12.1","eslint-config-react-app":"^3.0.6","eslint-plugin-flowtype":"^3.2.1","eslint-plugin-import":"^2.15.0","eslint-plugin-jsx-a11y":"^6.2.0","eslint-plugin-react":"^7.12.4","glob":"^7.1.3","jest":"^24.0.0","prettier":"^1.16.1","ramda":"^0.26.1","rimraf":"^2.6.3","rollup":"^1.1.2","rollup-plugin-babel":"^4.3.2","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.3"},"npmName":"redux-views","npmFileMap":[{"basePath":"/dist/","files":["*.js"]}],"browserify":{"transform":["loose-envify"]},"jest":{"testRegex":"(/test/.*\\.spec.js)$","testURL":"http://localhost/"},"sideEffects":false,"gitHead":"b622d6dcce1ca5e09568a0702020f87decea55eb","homepage":"https://github.com/josepot/redux-views#readme","_id":"redux-views@0.2.0","_nodeVersion":"8.11.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-Rbjle6pMpENlcOTALcwVIYRZ9LdOAetei6CAl5ifmRVN3FkMbliaoyXqnkBEKVPHpOdkwegHkBulA4JZu0uZGw==","shasum":"7319ea55ebdb00a8e18eaa45002b772a59d0fff1","tarball":"https://registry.npmjs.org/redux-views/-/redux-views-0.2.0.tgz","fileCount":8,"unpackedSize":31061,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcgvqbCRA9TVsSAnZWagAAG3UP/jbTQWTK7JWYOqt4CHwY\nx7al/I1Aryr2u+BzClljj/Czlvp8IVLApoYMyqUJ36f79jpqIZFkOesJhGML\neDLxK1ldNWwwXgmKZE933oT/BF3GEoRoHce9y+YwyfOBO6d7j+fq861hq2Jz\nlI4Ue3k535dO2Znygi9h3VEIxB/3nxrq/Y3OHD2vUhA9aI8Ju9XvlcvwF3qJ\n6U8O8k/4HrQ5fArjEEkhtMled8/zb+JaSiqByIx/P7M0rOyRETZ141tPuUqK\nnicsmsldo/guCE008Kn7vl0IBPoqmS+/j/ySwUgZ+cJ3d74ujlX1iYzUCiGm\n7oJNiZltX9T2LeKNvt4jdYS4aqpTb/p9IgBlCnf4RCTRIvaki6dQI7YodczG\n/h6Y0S2t2BfhDN5s33bV4bhUwq58bNpMPBRmf9PHZMaAVyAZ5FgewAj9t3jg\ngJykjF+1r3Sa/6KOsKfZfrQKA8DaEs3u31KEjt9Xq4GscPlCu75d7mKTuAJb\ns56OF0cW5Pf7WujUq9vpZE9Fh1l60HL5748i/SwrS0sCVEKdOwVBsljUK7mM\nOc2oql6Q2qeyKSDYoVXeBWC/ydSbqI/utXeR0H5tdEr9P0+ruHFNK3ZikDpS\nm0k2YghpquBoEUodLIveMSgQiJ9cLa9ykhDG9rqgtFMu+Ke/D9xqrd4l91bX\nkfkh\r\n=D42G\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCAqajtyTT+IoU5tgWk+ZJ0DCcdKY1lccaNDsgpMM4CwwIhALVv+gLpnmx4MRLmP0VAaOWFyn7zATtGYbpF03ygUUhh"}]},"maintainers":[{"name":"josepot","email":"josep@sbrpr.com"}],"_npmUser":{"name":"josepot","email":"josep@sbrpr.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-views_0.2.0_1552087706310_0.11598908808789288"},"_hasShrinkwrap":false},"0.3.0":{"name":"redux-views","version":"0.3.0","license":"MIT","repository":{"type":"git","url":"git+https://github.com/josepot/redux-views.git"},"bugs":{"url":"https://github.com/josepot/redux-views/issues"},"keywords":["redux","selectors","cached","functional"],"author":{"name":"Josep M Sobrepere","url":"https://github.com/josepot"},"main":"lib/redux-views.js","types":"types/index.d.ts","unpkg":"dist/redux-views.js","module":"es/redux-views.js","scripts":{"clean":"rimraf lib dist es coverage","format":"prettier --write \"{src,test}/**/*.js\"","format:check":"prettier --list-different \"{src,test}/**/*.js\"","lint":"eslint src test","pretest":"npm run build","test":"jest","test:watch":"npm test -- --watch","test:cov":"npm test -- --coverage","test:types":"dtslint types","build":"rollup -c","prepare":"npm run clean && npm run format:check && npm run lint && npm test"},"dependencies":{"loose-envify":"^1.1.0"},"devDependencies":{"@babel/cli":"^7.2.3","@babel/core":"^7.2.2","@babel/node":"^7.2.2","@babel/plugin-external-helpers":"^7.2.0","@babel/plugin-proposal-object-rest-spread":"^7.3.1","@babel/preset-env":"^7.3.1","@babel/preset-flow":"^7.0.0","@babel/register":"^7.0.0","babel-core":"^7.0.0-bridge.0","babel-eslint":"^10.0.1","babel-jest":"^24.0.0","cross-env":"^5.2.0","dtslint":"^0.5.3","eslint":"^5.12.1","eslint-config-react-app":"^3.0.6","eslint-plugin-flowtype":"^3.2.1","eslint-plugin-import":"^2.15.0","eslint-plugin-jsx-a11y":"^6.2.0","eslint-plugin-react":"^7.12.4","glob":"^7.1.3","jest":"^24.3.1","prettier":"^1.16.1","ramda":"^0.26.1","rimraf":"^2.6.3","rollup":"^1.1.2","rollup-plugin-babel":"^4.3.2","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.3"},"npmName":"redux-views","npmFileMap":[{"basePath":"/dist/","files":["*.js"]}],"browserify":{"transform":["loose-envify"]},"jest":{"testRegex":"(/test/.*\\.spec.js)$","testURL":"http://localhost/"},"sideEffects":false,"gitHead":"1d6e56a5cd7ee16e2a4798db9c9e04a9c5761d1c","homepage":"https://github.com/josepot/redux-views#readme","_id":"redux-views@0.3.0","_nodeVersion":"8.11.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-C38p+1PsPk3ABUSAKMU8Agz9Md0OPK1CNNmvmTmJk3kU7RIpIivfh1oFBX9/lCYe7C3/bJnqNZJQ4zb8RTX17w==","shasum":"b834116865b5d9b86999352418ef3f3154757b7c","tarball":"https://registry.npmjs.org/redux-views/-/redux-views-0.3.0.tgz","fileCount":9,"unpackedSize":42539,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJchvUICRA9TVsSAnZWagAApjQP/1m/+C/PT3ld69Bex0Sr\nEMz3gS915aREBqkMKobzMNICl6M7Ej1Csb6DZhnetyJA022Cu3eEu0+owBid\noFakFHX7rwLV78D+hSsLxl/vJjUfChRxpZfdGfWS16lgpmvGYSpKwki74iAX\nhsK04UCaflrZ6FmOAl9sl2guUmfXn43TKw9RIOnFRwcKbQv0giPcf8am2qFt\nvya2Y5iiNW0rVQRyyGs9rexBOIVVJnK0PvSZDCR+qj4+b3woBN/2XH280F4I\nAkSOWA3PVi7c995qXrYcssLZJVbjyR9M+ZbDPYowaMAUC4Zlw578uRRUpOb9\nMX8FyII4cf0S8y7wwEw22ELfVqjDuLNpwgp+kBkI5qj9QGPOZBCq0k+SefHn\nPOqxXtzl23+o6dXUJTjUZ53FdojeO5jhsu602wtEKIga1PkJq1fQFhaheWVg\nfc0LMOF1wjy94PCxAfLyYgO9KQ/wdTR5rORJMNnMa4oLP8CP5IsJHApQWViU\nnZrsZpG9K3I1zSQSY8sTIBfmJc/2HXpP04FcCyC+QXKbzuf14IFbAvlJ3Nci\nyML2d0U1oHQMMNyNFjzdFUvTcUl0nV5uvb9zoK7farSzvLzZFUuPOPyT906H\n3IATJAXnPF+sO+5yM5JPLO7lXAhxN7oLRhFRblhRiTi4FGlN5CjTuY/QN8l3\nPwgx\r\n=DdHg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAOK/7Ah8+TLWkjxVfzr73OOy7T6dKHim6rY13nxxg3gAiEAp/10+glgTU8nfy2QljpyhdPZMPoUP/2zE2O97xxvHgA="}]},"maintainers":[{"name":"josepot","email":"josep@sbrpr.com"}],"_npmUser":{"name":"josepot","email":"josep@sbrpr.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-views_0.3.0_1552348424087_0.3633745795001535"},"_hasShrinkwrap":false},"0.4.0":{"name":"redux-views","version":"0.4.0","license":"MIT","repository":{"type":"git","url":"git+https://github.com/josepot/redux-views.git"},"bugs":{"url":"https://github.com/josepot/redux-views/issues"},"keywords":["redux","selectors","cached","functional"],"author":{"name":"Josep M Sobrepere","url":"https://github.com/josepot"},"main":"lib/redux-views.js","types":"types/index.d.ts","unpkg":"dist/redux-views.js","module":"es/redux-views.js","scripts":{"clean":"rimraf lib dist es coverage","format":"prettier --write \"{src,test}/**/*.js\"","format:check":"prettier --list-different \"{src,test}/**/*.js\"","lint":"eslint src test","pretest":"npm run build","test":"jest","test:watch":"npm test -- --watch","test:cov":"npm test -- --coverage","test:types":"dtslint types","build":"rollup -c","prepare":"npm run clean && npm run format:check && npm run lint && npm test"},"dependencies":{"loose-envify":"^1.1.0"},"devDependencies":{"@babel/cli":"^7.2.3","@babel/core":"^7.2.2","@babel/node":"^7.2.2","@babel/plugin-external-helpers":"^7.2.0","@babel/plugin-proposal-object-rest-spread":"^7.3.1","@babel/preset-env":"^7.3.1","@babel/preset-flow":"^7.0.0","@babel/register":"^7.0.0","babel-core":"^7.0.0-bridge.0","babel-eslint":"^10.0.1","babel-jest":"^24.0.0","cross-env":"^5.2.0","dtslint":"^0.5.3","eslint":"^5.12.1","eslint-config-react-app":"^3.0.6","eslint-plugin-flowtype":"^3.2.1","eslint-plugin-import":"^2.15.0","eslint-plugin-jsx-a11y":"^6.2.0","eslint-plugin-react":"^7.12.4","glob":"^7.1.3","jest":"^24.3.1","prettier":"^1.16.1","ramda":"^0.26.1","rimraf":"^2.6.3","rollup":"^1.1.2","rollup-plugin-babel":"^4.3.2","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.3"},"npmName":"redux-views","npmFileMap":[{"basePath":"/dist/","files":["*.js"]}],"browserify":{"transform":["loose-envify"]},"jest":{"testRegex":"(/test/.*\\.spec.js)$","testURL":"http://localhost/"},"sideEffects":false,"gitHead":"5d7be757c85d503f9e8b05615cb7a6cc783bf577","homepage":"https://github.com/josepot/redux-views#readme","_id":"redux-views@0.4.0","_nodeVersion":"8.11.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-9yJK2bAW5bD5rOXhvutFZp7PGqT5ZeY4GhtufwitQ5Sb5dufthLP99vi1QXfRFKQcXEczeqqqgqzH9T9vNmPgw==","shasum":"e570cdb3a508c5669e321063eac1457c50a3ccc4","tarball":"https://registry.npmjs.org/redux-views/-/redux-views-0.4.0.tgz","fileCount":9,"unpackedSize":40538,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJciGJUCRA9TVsSAnZWagAAiNUQAImg9j+CIq95scYQW//l\nfpIT96pLEwylupitZ5y7cok5l7lQkGX53k2Vl/Xn8QLa9DUa8yJzFTnQD2e6\nWaWYiZY75H5kCrd2+K3r8nYr3pvF6xk7Oq92yw5AGaYjVZz1GSuwdRfX8xnf\n4K4UWpU8RfjcnFj0rP24DKSNRgYUE5+Qr+rGexF4yZFNY8iAAM2E7qh3pw4k\nYd/Hfzoyohi0gH9fIpA5iqaDefkzHIGoHhaMj8BVf9wfs347xshhBVYCB1kB\nUdd0GA6vDKxBhUKbs2Ro6qc1FNUHFGb08dUm8uY8DBhbbjefrP7vsai7geyb\nukcIY85ARIFQctwid9DTAGm7wB9kcb7t41fFhINrvTop1GkSTOUEkuMdoEoU\nOycjJJWft2y3wm9WZ3o0izc/d6AVlv6BLnXzYnUH+5cwH88p/XfORnVDgw56\n+/93JaolADTVWwPp5VX1eUBPJ8+tywfqjySjRdNl7mdhXyk1bZwATCnlDSfo\nn9qJfkQqPmc8I5IbznwG9r4oiuExvxxLyzxMZLUhdIULyjtdkuKLu/c3JsX0\neozH2E3BK48tHA/O0YB5BrMR+Wtxn3BfxNWybBk6BADkpxyfpGDYvl6VeSxl\nMq7uYXWm+xOQJdtLlPWD7jdKtoq/N4ltq/YzvXgDW7SjD2/kAGzZl6Nt1cyL\nFc9m\r\n=V0B+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDnXVnjb5/NfguyA/iM2e89xTNFTvbLhyFwdgYHnlLumgIgVo1tNFrONXEN1OFrlrmoSuwUA8zLZUlpTlpv1A5V/M8="}]},"maintainers":[{"name":"josepot","email":"josep@sbrpr.com"}],"_npmUser":{"name":"josepot","email":"josep@sbrpr.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-views_0.4.0_1552441940286_0.10285568309755"},"_hasShrinkwrap":false},"0.4.1":{"name":"redux-views","version":"0.4.1","license":"MIT","repository":{"type":"git","url":"git+https://github.com/josepot/redux-views.git"},"bugs":{"url":"https://github.com/josepot/redux-views/issues"},"keywords":["redux","selectors","cached","functional"],"author":{"name":"Josep M Sobrepere","url":"https://github.com/josepot"},"main":"lib/redux-views.js","types":"types/index.d.ts","unpkg":"dist/redux-views.js","module":"es/redux-views.js","scripts":{"clean":"rimraf lib dist es coverage","format":"prettier --write \"{src,test}/**/*.js\"","format:check":"prettier --list-different \"{src,test}/**/*.js\"","lint":"eslint src test","pretest":"npm run build","test":"jest","test:watch":"npm test -- --watch","test:cov":"npm test -- --coverage","test:types":"dtslint types","build":"rollup -c","prepare":"npm run clean && npm run format:check && npm run lint && npm test"},"dependencies":{"loose-envify":"^1.1.0"},"devDependencies":{"@babel/cli":"^7.2.3","@babel/core":"^7.2.2","@babel/node":"^7.2.2","@babel/plugin-external-helpers":"^7.2.0","@babel/plugin-proposal-object-rest-spread":"^7.3.1","@babel/preset-env":"^7.3.1","@babel/preset-flow":"^7.0.0","@babel/register":"^7.0.0","babel-core":"^7.0.0-bridge.0","babel-eslint":"^10.0.1","babel-jest":"^24.0.0","cross-env":"^5.2.0","dtslint":"^0.5.3","eslint":"^5.12.1","eslint-config-react-app":"^3.0.6","eslint-plugin-flowtype":"^3.2.1","eslint-plugin-import":"^2.15.0","eslint-plugin-jsx-a11y":"^6.2.0","eslint-plugin-react":"^7.12.4","glob":"^7.1.3","jest":"^24.3.1","prettier":"^1.16.1","ramda":"^0.26.1","rimraf":"^2.6.3","rollup":"^1.1.2","rollup-plugin-babel":"^4.3.2","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.3"},"npmName":"redux-views","npmFileMap":[{"basePath":"/dist/","files":["*.js"]}],"browserify":{"transform":["loose-envify"]},"jest":{"testRegex":"(/test/.*\\.spec.js)$","testURL":"http://localhost/"},"sideEffects":false,"gitHead":"13a236ecb1e5484949ce2be296f45e9ef7c10679","description":"Redux-Views aims to solve the problem with [shared selectors](https://github.com/reduxjs/reselect#sharing-selectors-with-props-across-multiple-component-instances) in a way that makes them easier to compose and to work with.","homepage":"https://github.com/josepot/redux-views#readme","_id":"redux-views@0.4.1","_npmVersion":"6.4.0","_nodeVersion":"8.11.3","_npmUser":{"name":"josepot","email":"josep@sbrpr.com"},"dist":{"integrity":"sha512-s0azjNvIrg86Fm4Emg0rVTDgcz8BBkCv/pu8971i4CyvCESAAZxLVheSVwQ+Wh+6h2m2aFt8xfPNUU+YS9dKOg==","shasum":"8614c6440dc3a88e649fdce0d64ca09544940c3b","tarball":"https://registry.npmjs.org/redux-views/-/redux-views-0.4.1.tgz","fileCount":10,"unpackedSize":50552,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJckiiHCRA9TVsSAnZWagAAYPEQAInQ1Bs+6EfKyj4k0h8/\nfwBR2upu67Y/ehBdsl2aG3eDvhXBLO6/88Z5mbQAHg8OWp9GGT3piXmCX4DT\nt54KyQ9s8EvjTW4i1EItn+/kTvCBnrljPWau9FT6g/1Ld94QIiZpylR0JQuG\nuGRzEIpcDYKF+a6Zd4enNEJ6Hfez4w8WxNQP7HCwyJjXN+YcUQih7KKx4G7H\nwTEVChLReAwmynoJFq6qcNawlTxlVWK/ha0MoNG6sgNPOHmrqe9oqlPrvd/B\nFdNgeJj3k1vpwSiS97Sp8fErbdg1PiJ+HQ7jUBJGODDLMlccrIL9FhS5g0EJ\nUYmsrHCJi26/HDCMxTQFpUJVlNDM6dLHK0dpeSniTwmoNuvuFxwBqGFNGZTF\nB6quXXChC2UHKwkhszdN/5oQjG4FAF6XyYrtkpq4JKvfN/0QraixuvDtm4mr\n/jGQ6rFNi72aXWmPmwBc6O5B1cct0sCTe6SBS3oQjBERHSRZdLGUqUtqKaqG\nUyWWB05XMcu8pdknsIicMBRoi3ZQ9gSORdpwfkwIOZ56SHRnY0wRDJRBmqEs\nOhLpUKNJ8ivUsk0RLEIivnfKXPf243jVUaLJwStLb+obqz5lMbPwDhm5Bt+y\nZ920HNptrtosiNmy8+jZimcDbV0wqrsKWwbdfDovH5jPbg75o+8g7+YTczzR\nnB81\r\n=l86R\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEZ4UKiL2hVLgbfCdOTEN5+Fu7bZdQVWEkw1TjTDGAIvAiEAv46BRro3NhYE8LLJB8e/sSgvzPlpBSXy9mYciC2Szzw="}]},"maintainers":[{"name":"josepot","email":"josep@sbrpr.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-views_0.4.1_1553082502728_0.40011360242520655"},"_hasShrinkwrap":false},"0.5.0":{"name":"redux-views","version":"0.5.0","license":"MIT","repository":{"type":"git","url":"git+https://github.com/josepot/redux-views.git"},"bugs":{"url":"https://github.com/josepot/redux-views/issues"},"keywords":["redux","selectors","cached","functional"],"author":{"name":"Josep M Sobrepere","url":"https://github.com/josepot"},"main":"lib/redux-views.js","types":"types/index.d.ts","unpkg":"dist/redux-views.js","module":"es/redux-views.js","scripts":{"clean":"rimraf lib dist es coverage","format":"prettier --write \"{src,test}/**/*.js\"","format:check":"prettier --list-different \"{src,test}/**/*.js\"","lint":"eslint src test","pretest":"npm run build","test":"jest","test:watch":"npm test -- --watch","test:cov":"npm test -- --coverage","test:types":"dtslint types","build":"rollup -c","prepare":"npm run clean && npm run format:check && npm run lint && npm test"},"dependencies":{"loose-envify":"^1.1.0"},"devDependencies":{"@babel/cli":"^7.2.3","@babel/core":"^7.2.2","@babel/node":"^7.2.2","@babel/plugin-external-helpers":"^7.2.0","@babel/plugin-proposal-object-rest-spread":"^7.3.1","@babel/preset-env":"^7.3.1","@babel/preset-flow":"^7.0.0","@babel/register":"^7.0.0","babel-core":"^7.0.0-bridge.0","babel-eslint":"^10.0.1","babel-jest":"^24.0.0","cross-env":"^5.2.0","dtslint":"^0.5.3","eslint":"^5.12.1","eslint-config-react-app":"^3.0.6","eslint-plugin-flowtype":"^3.2.1","eslint-plugin-import":"^2.15.0","eslint-plugin-jsx-a11y":"^6.2.0","eslint-plugin-react":"^7.12.4","glob":"^7.1.3","jest":"^24.3.1","prettier":"^1.16.1","ramda":"^0.26.1","rimraf":"^2.6.3","rollup":"^1.1.2","rollup-plugin-babel":"^4.3.2","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.3"},"npmName":"redux-views","npmFileMap":[{"basePath":"/dist/","files":["*.js"]}],"browserify":{"transform":["loose-envify"]},"jest":{"testRegex":"(/test/.*\\.spec.js)$","testURL":"http://localhost/"},"sideEffects":false,"gitHead":"74f850d7b68653b4d02a52481459798cdf90e74e","description":"Redux-Views aims to solve the problem with [shared selectors](https://github.com/reduxjs/reselect#sharing-selectors-with-props-across-multiple-component-instances) in a way that makes them easier to compose and to work with.","homepage":"https://github.com/josepot/redux-views#readme","_id":"redux-views@0.5.0","_nodeVersion":"8.11.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-/cmB6d4z1u6IMTVvGJDPaAV/RlFcqbwAVlqSTMqc4hwlW6jSmcwkJJmUeVUoUqRbpfCZROWgqMIzgaTt5geYvA==","shasum":"75fb335a449da016bbe0d00b348c51f76458d910","tarball":"https://registry.npmjs.org/redux-views/-/redux-views-0.5.0.tgz","fileCount":10,"unpackedSize":51484,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJclp+aCRA9TVsSAnZWagAAPaIP/2CeLyTIcP1KwmyeP03u\nEYYqnIGPIYsutSW60y+yPrQP5AaA9N5iICePq6BVhiaUkFmJjsP+8gKxJy2T\nhCr+9CeXruoXOzGw85FogscGbEgxM8TPwSfsfy88y53Ew98UmGIq2xEE5Vk4\nynlwgJbfRiNOvZQI7YRuS20I3182zrN0YFRs/9NueTFye1YSeqPmVm6VWSaE\nb1phipcpsw1MWUUDvR9MIYOPNN84wsiuD6kEvDwaQ1IHdqWzMWsQpPw5Ta2L\nZ0S4IFo7t08LR1pCz+OuvKBz9nEB1jcEOtShTZ6Ja9oj5w4B3qWFu+k8MHZe\n7rt9G2z/nJ/KYXirwUxIN9YaV22ZhBp0CIhlmMyKI70U/4o3FfGxBbCdAW4y\n62Dt5QLa4PPXFdr2IInoFForqmV98lmAMElqj3+akQi4Paltq+ecp3xamk/p\nJuJJytgX8iO1DoTBALPFW/58jzKW3pJMGWLsMllywkOtZfEFd7p4lbfi2du/\nfWQg7/1zEXvmJSCCEG5K/a84UL1XdnrM9nrpoKzzSIMEkZffkbzss7NBYz94\nkBdZtF1EyqKnK425kXY9YDpfGqQJwNYcYz7jjo6W76SDGWHHppA5G68Kvlxd\ntGy//QeIXP/6ibMrrRNe7WqzNxh+V1xoPYAm2i8Iz8w3Im4UkT7gagkp2F47\nHjev\r\n=KFgx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAlX7kSPVbPYaiOA3Fvpp6m1ybSd+qDFfq+LnN/ckcJJAiEAuc0Z60RKNshET6zg90kCVcfUq7kjkjq2wW40WNk6tcY="}]},"maintainers":[{"name":"josepot","email":"josep@sbrpr.com"}],"_npmUser":{"name":"josepot","email":"josep@sbrpr.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-views_0.5.0_1553375129649_0.25468586089709966"},"_hasShrinkwrap":false},"0.6.0":{"name":"redux-views","version":"0.6.0","license":"MIT","repository":{"type":"git","url":"git+https://github.com/josepot/redux-views.git"},"bugs":{"url":"https://github.com/josepot/redux-views/issues"},"keywords":["redux","selectors","cached","functional"],"author":{"name":"Josep M Sobrepere","url":"https://github.com/josepot"},"main":"lib/redux-views.js","types":"types/index.d.ts","unpkg":"dist/redux-views.js","module":"es/redux-views.js","scripts":{"clean":"rimraf lib dist es coverage","format":"prettier --write \"{src,test}/**/*.js\"","format:check":"prettier --list-different \"{src,test}/**/*.js\"","lint":"eslint src test","pretest":"npm run build","test":"jest","test:watch":"npm test -- --watch","test:cov":"npm test -- --coverage","test:types":"dtslint types","build":"rollup -c","prepare":"npm run clean && npm run format:check && npm run lint && npm test"},"dependencies":{"loose-envify":"^1.1.0"},"devDependencies":{"@babel/cli":"^7.2.3","@babel/core":"^7.2.2","@babel/node":"^7.2.2","@babel/plugin-external-helpers":"^7.2.0","@babel/plugin-proposal-object-rest-spread":"^7.3.1","@babel/preset-env":"^7.3.1","@babel/preset-flow":"^7.0.0","@babel/register":"^7.0.0","babel-core":"^7.0.0-bridge.0","babel-eslint":"^10.0.1","babel-jest":"^24.0.0","cross-env":"^5.2.0","dtslint":"^0.5.3","eslint":"^5.12.1","eslint-config-react-app":"^3.0.6","eslint-plugin-flowtype":"^3.2.1","eslint-plugin-import":"^2.15.0","eslint-plugin-jsx-a11y":"^6.2.0","eslint-plugin-react":"^7.12.4","glob":"^7.1.3","jest":"^24.3.1","prettier":"^1.16.1","ramda":"^0.26.1","rimraf":"^2.6.3","rollup":"^1.1.2","rollup-plugin-babel":"^4.3.2","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.3"},"npmName":"redux-views","npmFileMap":[{"basePath":"/dist/","files":["*.js"]}],"browserify":{"transform":["loose-envify"]},"jest":{"testRegex":"(/test/.*\\.spec.js)$","testURL":"http://localhost/"},"sideEffects":false,"gitHead":"2d1e498b3794b2a140c0cfe7b4adcde4b5077b25","description":"Redux-Views aims to solve the problem with [shared selectors](https://github.com/reduxjs/reselect#sharing-selectors-with-props-across-multiple-component-instances) in a way that makes them easier to compose and to work with.","homepage":"https://github.com/josepot/redux-views#readme","_id":"redux-views@0.6.0","_nodeVersion":"8.11.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-CDcY008Xo4B7klMeQxoDBSlTyALKL9V2gFo5lgvD9YdDYZHZmVXW7XAkI+QFX2dZnm/Dy9gMIxbrTIhy52SLhA==","shasum":"17feb9065436f7ee6fd29903d6aaa4940efb4590","tarball":"https://registry.npmjs.org/redux-views/-/redux-views-0.6.0.tgz","fileCount":10,"unpackedSize":52036,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcoQxvCRA9TVsSAnZWagAApLIQAKK3yh3gX849XdBODPq9\n7XLmtxnSOBLQPVkRJ0iWbuTsHit72mVgFxdNiRfzW8wOPoiwKfiuNrDAcFOE\nCGw2+nvNr2wIdb0B4hEbhR4OA2JBtvSrDoHHJmTBWjvXHsN3FnOmKd5CK6AW\nrKnea3QIu+fmLm96D5JIEWKobRXm350EaSfZQqZGMWEAf06qOBlK2ILeBy4L\nFiYwgZVKpLrumm5gu31J7jZDvOBN1L9c69TTSjMKU++B1bbf/uUZrQTYAr2Q\n3PKuCgFOwPJy0i1obbiCvDwyzp2WOKL3o9g37ts3HWQi8nAyBeT+S3+vBCx3\nrr+JxHRzQyg4xt7nGX9QXrv9GNZrcis+r4BuNFK0V2AGTdbqdZkV8FACn3jY\nz7s/6tg2y4RYDIYeHaRg4F2obCEVXo0Uok6vWqcmdvzd1sGnxDY9xRjCWfJ0\nITZzPE2ey2Q9anzMEfD3j4nYu/PrQzK3+SPTsZ5lxtZDO3HhfBJT/E85d9kW\nr6vW92qoP6ratmMOHum56+g6GmKgEU1xeciYPPjMST40ki5R/r8hC5kBMqAP\naWg+kA5BfKfOCMjNynUg8vgNcTdiewHzAj+RD+8GidsA0era8CUscNTCHpKu\nYmIm0Iog+8bvTFRmer1Xprsw/Iz4WaIhqzoIkEdqS/LDax4LYPtRr5vd1Cd1\nP8MP\r\n=lrMd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDMj4ERWDo9o0MeKRRtPSfcLx8FxSl5AlfPwW1XAFJ1DgIhAMSJ+YvUL11/qu7McvjjfIKj6P0SH4zDPnPeda5+1Zr+"}]},"maintainers":[{"name":"josepot","email":"josep@sbrpr.com"}],"_npmUser":{"name":"josepot","email":"josep@sbrpr.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-views_0.6.0_1554058351040_0.30182622713109164"},"_hasShrinkwrap":false},"0.6.1":{"name":"redux-views","version":"0.6.1","license":"MIT","repository":{"type":"git","url":"git+https://github.com/josepot/redux-views.git"},"bugs":{"url":"https://github.com/josepot/redux-views/issues"},"keywords":["redux","selectors","cached","functional"],"author":{"name":"Josep M Sobrepere","url":"https://github.com/josepot"},"main":"lib/redux-views.js","types":"types/index.d.ts","unpkg":"dist/redux-views.js","module":"es/redux-views.js","scripts":{"clean":"rimraf lib dist es coverage","format":"prettier --write \"{src,test}/**/*.js\"","format:check":"prettier --list-different \"{src,test}/**/*.js\"","lint":"eslint src test","pretest":"npm run build","test":"jest","test:watch":"npm test -- --watch","test:cov":"npm test -- --coverage","test:types":"dtslint types","build":"rollup -c","prepare":"npm run clean && npm run format:check && npm run lint && npm test"},"dependencies":{"loose-envify":"^1.1.0"},"devDependencies":{"@babel/cli":"^7.2.3","@babel/core":"^7.2.2","@babel/node":"^7.2.2","@babel/plugin-external-helpers":"^7.2.0","@babel/plugin-proposal-object-rest-spread":"^7.3.1","@babel/preset-env":"^7.3.1","@babel/preset-flow":"^7.0.0","@babel/register":"^7.0.0","babel-core":"^7.0.0-bridge.0","babel-eslint":"^10.0.1","babel-jest":"^24.0.0","cross-env":"^5.2.0","dtslint":"^0.5.3","eslint":"^5.12.1","eslint-config-react-app":"^3.0.6","eslint-plugin-flowtype":"^3.2.1","eslint-plugin-import":"^2.15.0","eslint-plugin-jsx-a11y":"^6.2.0","eslint-plugin-react":"^7.12.4","glob":"^7.1.3","jest":"^24.3.1","prettier":"^1.16.1","ramda":"^0.26.1","rimraf":"^2.6.3","rollup":"^1.1.2","rollup-plugin-babel":"^4.3.2","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.3"},"npmName":"redux-views","npmFileMap":[{"basePath":"/dist/","files":["*.js"]}],"browserify":{"transform":["loose-envify"]},"jest":{"testRegex":"(/test/.*\\.spec.js)$","testURL":"http://localhost/"},"sideEffects":false,"gitHead":"581152d0ad9c29b2dcd1a51655e89fbc3f67a40b","description":"Redux-Views aims to solve the problem with [shared selectors](https://github.com/reduxjs/reselect#sharing-selectors-with-props-across-multiple-component-instances) in a way that makes them easier to compose and to work with.","homepage":"https://github.com/josepot/redux-views#readme","_id":"redux-views@0.6.1","_npmVersion":"6.4.0","_nodeVersion":"8.11.3","_npmUser":{"name":"josepot","email":"josep@sbrpr.com"},"dist":{"integrity":"sha512-+Y/EoXqIPn7S4JQLInEzXWVkTHzKbfN6PjOU7WfP+MTQwYU6VG11dejfp+73L/WcEc6/otDyQBujs5NPk3ytlw==","shasum":"798e01c5cdabda7c4a1f4589296c3ed26121c8f5","tarball":"https://registry.npmjs.org/redux-views/-/redux-views-0.6.1.tgz","fileCount":10,"unpackedSize":52190,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcrww6CRA9TVsSAnZWagAA4TEP/0vUxK2NBtpHKTZBxYsV\nAB7gCP77aDk3C3VHARk685o0oySeuE0/or49JGB+TrTjO6DeVHJmDBvcKVfV\nE6Q/5CAx8PWVl4P1Vqeq3DA1G3M4B/5B26y2sRHbMCBDd/q0lYbv0OyfwT+o\nJCZMjtoUGMa4JZOGVoWK5xcIXISsi+f8qIBLxrlRSoJmZtq3+qFKoG9QZKST\nDNz1HMnuO7i8IgSEHCknvR4byDq5/VYbpnKuJ64bFEXcbanCRgVAXvwby2hc\nnbkXMLrF6MsFZujfcIwvEETkfHI2Q7HWyJrV3eWeL0ShfTPjhSG83Cb0IJLJ\nnPffzWXg/+fiKf41tDCbeAAaqt4wWBbigMZQB66vs+UKRoVC1z7to0elsimw\nE2M0gWPJGoFF8EndCDjtt498E/uMMV59ArKPFyAdZzfI1urVWCVrPTdAYKrg\n/716hc/LpMt0B9+Sne2s3O2LHFP9OqyPuWVrjJWYcBO+3iTmzNanhus732Gv\n9BZ3+gfg5Z0AwJIqVbglEY5lSaBJb+bF6vVfxQi/E69f6HVl9kaWP+j3SKAi\n+cfZE7YZ1kBl17fHJdjPQnXG4hU5vMAVWeE89H8gUjb+q3vKhoqeG9nq6RSh\naLb2AYshSkv1UC6XI1F+wcwzFR4EAKyehmqFWAnm6pbHK03usHTc8AdYHQBh\nk+aS\r\n=vRdh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDkP09fr1qIJ/h6K8hSNmA79DPtZ2PJStsQYUP8X0UvPQIgDkncdO8aqA/ydo9WuNTZ7lis6uGg8ZTkEKa3WoEdyyc="}]},"maintainers":[{"name":"josepot","email":"josep@sbrpr.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-views_0.6.1_1554975801570_0.10753517863667228"},"_hasShrinkwrap":false},"0.7.0":{"name":"redux-views","version":"0.7.0","license":"MIT","repository":{"type":"git","url":"git+https://github.com/josepot/redux-views.git"},"bugs":{"url":"https://github.com/josepot/redux-views/issues"},"keywords":["redux","selectors","cached","functional"],"author":{"name":"Josep M Sobrepere","url":"https://github.com/josepot"},"main":"lib/redux-views.js","types":"types/index.d.ts","unpkg":"dist/redux-views.js","module":"es/redux-views.js","scripts":{"clean":"rimraf lib dist es coverage","format":"prettier --write \"{src,test}/**/*.js\"","format:check":"prettier --list-different \"{src,test}/**/*.js\"","lint":"eslint src test","pretest":"npm run build","test":"jest","test:watch":"npm test -- --watch","test:cov":"npm test -- --coverage","test:types":"dtslint types","build":"rollup -c","prepare":"npm run clean && npm run format:check && npm run lint && npm test"},"dependencies":{"loose-envify":"^1.1.0"},"devDependencies":{"@babel/cli":"^7.2.3","@babel/core":"^7.2.2","@babel/node":"^7.2.2","@babel/plugin-external-helpers":"^7.2.0","@babel/plugin-proposal-object-rest-spread":"^7.3.1","@babel/preset-env":"^7.3.1","@babel/preset-flow":"^7.0.0","@babel/register":"^7.0.0","babel-core":"^7.0.0-bridge.0","babel-eslint":"^10.0.1","babel-jest":"^24.0.0","cross-env":"^5.2.0","dtslint":"^0.8.0","eslint":"^5.12.1","eslint-config-react-app":"^4.0.1","eslint-plugin-flowtype":"^3.10.1","eslint-plugin-import":"^2.15.0","eslint-plugin-jsx-a11y":"^6.2.0","eslint-plugin-react":"^7.12.4","eslint-plugin-react-hooks":"^1.6.0","glob":"^7.1.3","jest":"^24.3.1","prettier":"^1.16.1","ramda":"^0.26.1","rimraf":"^2.6.3","rollup":"^1.15.1","rollup-plugin-babel":"^4.3.2","rollup-plugin-node-resolve":"^5.0.1","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^5.0.0"},"npmName":"redux-views","npmFileMap":[{"basePath":"/dist/","files":["*.js"]}],"browserify":{"transform":["loose-envify"]},"jest":{"testRegex":"(/test/.*\\.spec.js)$","testURL":"http://localhost/"},"sideEffects":false,"gitHead":"807d8712ecad51cf6673770a2fafcb1f5a1af67c","description":"Redux-Views aims to solve the problem with [shared selectors](https://github.com/reduxjs/reselect#sharing-selectors-with-props-across-multiple-component-instances) in a way that makes them easier to compose and to work with.","homepage":"https://github.com/josepot/redux-views#readme","_id":"redux-views@0.7.0","_npmVersion":"6.4.1","_nodeVersion":"8.16.0","_npmUser":{"name":"josepot","email":"josep@sbrpr.com"},"dist":{"integrity":"sha512-4p4z8iYTtzCt0lGI4B/gaOQ9KBB44DydU8JJzgi6YwgZOqtAZA6N1huN+URXbxJ89zQdgPTydlui1D0efservQ==","shasum":"5fe93112d5a8bc515f3f01e4851e62d5dea4cb8b","tarball":"https://registry.npmjs.org/redux-views/-/redux-views-0.7.0.tgz","fileCount":14,"unpackedSize":51336,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdAV69CRA9TVsSAnZWagAAFKoQAIONvyAfQptdEmBsEO4r\nuFixmMhdnwlOlkf8/ZGQSvloROtRkVnC+rZJz7Jyruco37oa+YgIpwdFzWIK\nNULeMVlVGVU7+AQGEELKdYd9HNE3WfRi48R6vRg/zJvfi56eSsZi8BI87kVn\nWNv7dbS3hdXUQk0w6XniFcgwDssecYjrUepSljrnWnN/Rje+1odUD5xfW4Vk\njlRHT/buAzwhq5yyZGqKNJtHndtvE9L8uE+DesnJbnYPI+Gv1TlAcYHKZuNW\n8stIfCefKaAzt4jldBJ5yVPed/GrpjwqUmBHQPWauz2tURemqvccXM99Xa50\n4aJIwo/6lHgwSsW0xXijqK3cFQDu0NKTVRy/uFncfXJFOPsioNNQwdH/yL1x\nul/6e9CxNE7bdqvT68v61+X8q8IRIWsGtDo7gJnxCcX+fbsgs2sGILM9Av77\nu6PEijgWCyqNMtXsO+fc+ffk2Yr/zABljvPg/1J0zjXZ2zVrHeQwJuG8J8kM\nndQULFiSOkmIasd1vbty2ZK6nSrOk3z931hpQgYHpK3yw0C0Snw8y7wwYmcJ\n5epHfyHAqibRY+szkOHUWBu6KbIvUsg68l72JlxSPgASSgFnkS05+njamfrM\noNgUxNkK/UNr0xZOoX6tO2LyivoZwpduQR5L9YRrCCBylw6utrVobQ6lE0Ky\n7D6t\r\n=eM1A\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFuyqppva30hZGk1rG+CiHVjhRuZ3UOtGSBKly/0GTosAiEA9xr6IAalM9epTBjwUgH2ESzALN40ZaFlQRqvHexNX7U="}]},"maintainers":[{"name":"josepot","email":"josep@sbrpr.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-views_0.7.0_1560370876358_0.7153316526414844"},"_hasShrinkwrap":false},"0.7.1":{"name":"redux-views","version":"0.7.1","license":"MIT","repository":{"type":"git","url":"git+https://github.com/josepot/redux-views.git"},"bugs":{"url":"https://github.com/josepot/redux-views/issues"},"keywords":["redux","selectors","cached","functional"],"author":{"name":"Josep M Sobrepere","url":"https://github.com/josepot"},"main":"lib/redux-views.js","types":"types/index.d.ts","unpkg":"dist/redux-views.js","module":"es/redux-views.js","scripts":{"clean":"rimraf lib dist es coverage","format":"prettier --write \"{src,test}/**/*.js\"","format:check":"prettier --list-different \"{src,test}/**/*.js\"","lint":"eslint src test","pretest":"npm run build","test":"jest","test:watch":"npm test -- --watch","test:cov":"npm test -- --coverage","test:types":"dtslint types","build":"rollup -c","prepare":"npm run clean && npm run format:check && npm run lint && npm test"},"dependencies":{"loose-envify":"^1.1.0"},"devDependencies":{"@babel/cli":"^7.5.0","@babel/core":"^7.5.4","@babel/node":"^7.5.0","@babel/plugin-external-helpers":"^7.2.0","@babel/plugin-proposal-object-rest-spread":"^7.5.4","@babel/preset-env":"^7.5.4","@babel/preset-flow":"^7.0.0","@babel/register":"^7.0.0","babel-core":"^7.0.0-bridge.0","babel-eslint":"^10.0.2","babel-jest":"^24.0.0","cross-env":"^5.2.0","dtslint":"^0.8.0","eslint":"^5.16.0","eslint-config-react-app":"^4.0.1","eslint-plugin-flowtype":"^2.50.3","eslint-plugin-import":"^2.18.0","eslint-plugin-jsx-a11y":"^6.2.3","eslint-plugin-react":"^7.14.2","eslint-plugin-react-hooks":"^1.6.1","glob":"^7.1.3","jest":"^24.3.1","prettier":"^1.16.1","ramda":"^0.26.1","rimraf":"^2.6.3","rollup":"^1.17.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^5.1.1"},"npmName":"redux-views","npmFileMap":[{"basePath":"/dist/","files":["*.js"]}],"browserify":{"transform":["loose-envify"]},"jest":{"testRegex":"(/test/.*\\.spec.js)$","testURL":"http://localhost/"},"sideEffects":false,"gitHead":"55e0bea0c0873b98ac59a957f302b61962a64ef7","description":"Redux-Views aims to solve the problem with [shared selectors](https://github.com/reduxjs/reselect#sharing-selectors-with-props-across-multiple-component-instances) in a way that makes them easier to compose and to work with.","homepage":"https://github.com/josepot/redux-views#readme","_id":"redux-views@0.7.1","_nodeVersion":"10.15.3","_npmVersion":"6.10.0","dist":{"integrity":"sha512-0enqGuRJlOxDyDlyC3MDMf4qHcUoFkwriiMOryyUD1nmnTsX6XM2Xy/xlHHjZyLTujIQwLtbFIxrcaoArgAx1A==","shasum":"b53cb3a5b35e9f17a1e34144e0529c73b973f0be","tarball":"https://registry.npmjs.org/redux-views/-/redux-views-0.7.1.tgz","fileCount":14,"unpackedSize":51006,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdLJehCRA9TVsSAnZWagAA0zgP/RpN660desqqxeWXoPDL\nW/9EbHDzuPMuYsaEzwUzWBQqghTerT1TzcqqWE7ohrr4BA5pwPUxOoPMhH7I\nYomodlVIYAJL387/6nexUgtuuTEweBayEIphkRSRhWiwNOho3lbCqt9PEu/F\nQZujW4wunen2xVTCqocwfKIH/H1PQRkdB19Yn5CTKRhir1PxrmHwRA/zJg5U\nHGunCgNirkio1J5nKaz9H0rlS7i0gj98iKhvtuScYgNf+L6GJ3xtGLUxzn17\n0xA4Lk4gl0FVPBkjOFQ7j4eoxguniR1AXBay/sfLtFJmMTTPDzqFcm6reCLr\nCKojgMU9+mdae7B8szESeh55iUoDjayig7P70YXUWn8ZUdm3aJwb3qYvPEv6\nCxamt2xsYkABtC92w6JQOs0GuEY8PGCbSkIpvMaXgmrZJzVDo3dZbPyZ3aZ3\n6e4WgY9HSSEbYqxUCcZzaO9onFNrTSZOmYcDyv//AOB733vKdRXdxIUc/l/H\nkj4xvofS9FiDvUqeG1j1p9tBxxHEN1vMRehzXTymoU2J41UsDROO/tACnu2d\neeghBUMtTzQi/JH0oYZamBBZleCkOeypOUOtLJF8KGUQg2GOJ/qQMkY/8AZj\nVPS6+5mhFI8350xqKRENe5nv5brpmDWI+1M8JVzBH/3Bhm2e/O62dLS8G7qo\nn62L\r\n=iycW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICrYXjw4/14RhupwekHHB7gdw7hSpUhRB5pdVRc1AuysAiBfYl+u875bzsKctcaMf54IQ+HbScvhZwvqpQ5bE6UwbQ=="}]},"maintainers":[{"name":"josepot","email":"josep@sbrpr.com"}],"_npmUser":{"name":"josepot","email":"josep@sbrpr.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-views_0.7.1_1563203488557_0.9521578657330627"},"_hasShrinkwrap":false},"1.0.0":{"name":"redux-views","version":"1.0.0","license":"MIT","repository":{"type":"git","url":"git+https://github.com/josepot/redux-views.git"},"bugs":{"url":"https://github.com/josepot/redux-views/issues"},"keywords":["redux","selectors","cached","functional"],"author":{"name":"Josep M Sobrepere","url":"https://github.com/josepot"},"main":"lib/redux-views.js","types":"types/index.d.ts","unpkg":"dist/redux-views.js","module":"es/redux-views.js","scripts":{"clean":"rimraf lib dist es coverage","format":"prettier --write \"{src,test}/**/*.js\"","format:check":"prettier --list-different \"{src,test}/**/*.js\"","lint":"eslint src test","pretest":"npm run build","test":"jest","test:watch":"npm test -- --watch","test:cov":"npm test -- --coverage","test:types":"dtslint types","build":"cross-env NODE_ENV=production rollup -c","prepare":"npm run clean && npm run format:check && npm run lint && npm test"},"dependencies":{"loose-envify":"^1.1.0"},"devDependencies":{"@babel/cli":"^7.7.7","@babel/core":"^7.7.7","@babel/node":"^7.7.7","@babel/plugin-external-helpers":"^7.7.4","@babel/plugin-proposal-object-rest-spread":"^7.7.7","@babel/preset-env":"^7.7.7","@babel/preset-flow":"^7.7.4","@babel/register":"^7.7.7","babel-core":"^7.0.0-bridge.0","babel-eslint":"^10.0.3","babel-jest":"^24.9.0","cross-env":"^6.0.3","dtslint":"^2.0.3","eslint":"^6.8.0","eslint-config-react-app":"^5.1.0","eslint-plugin-flowtype":"^4.5.3","eslint-plugin-import":"^2.19.1","eslint-plugin-jsx-a11y":"^6.2.3","eslint-plugin-react":"^7.17.0","eslint-plugin-react-hooks":"^2.3.0","glob":"^7.1.6","jest":"^24.9.0","prettier":"^1.19.1","ramda":"^0.26.1","rimraf":"^3.0.0","rollup":"^1.27.14","rollup-plugin-babel":"^4.3.3","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^5.1.3","tslint-config-prettier":"^1.18.0"},"npmName":"redux-views","npmFileMap":[{"basePath":"/dist/","files":["*.js"]}],"browserify":{"transform":["loose-envify"]},"jest":{"testRegex":"(/test/.*\\.spec.js)$","testURL":"http://localhost/"},"sideEffects":false,"gitHead":"563dbecc4cd7ebb9477e9e0848470a0f904818b2","description":"Selector library designed for state management libraries (like Redux), with built-in support for shared selectors.","homepage":"https://github.com/josepot/redux-views#readme","_id":"redux-views@1.0.0","_nodeVersion":"12.4.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-P5E3HvPwIGExw/E2H0Xcw5dnT3cKacDFQf/gkHIebgXpPrzvbtqxW63O9JzwUJMBXSDvKmI0bLTV0evE68Defw==","shasum":"e7d03f921b6a0b9dc039db0dd06a917e5575a4f6","tarball":"https://registry.npmjs.org/redux-views/-/redux-views-1.0.0.tgz","fileCount":13,"unpackedSize":46624,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeDmtqCRA9TVsSAnZWagAAI9sP/2mimqjdBmp00PqFGia+\naT9FBr91GFq1NGQlCO9FkZR50Fqr2JjbAODZ15QjIZ+/Ey6Kh/VF0U/kR2w2\nfox4uwK8CI6BBMp4ya5jPFrlPhxwE9+e2BH2Uow5oL4p3NV6TUQgF0+5QNTc\nyb3C0huLQYY7PkbtyG+aCc5IVtQQF/nHim/SD7V1l6ojt/kx2GimEWH4Jh0r\nVUwXvrgXTmSz9mgOzcLAUROwwv9S9dJlWxXuG2r6SKVSN4CRDfOJbMMatOud\n67rI9C8NPIa4hPcBJjyWeAAxKw3CMLe60tErWaaTkIX9z03lZ4TgJBI5E9Zt\nCmzKYvs1wzP5mgg/nxVMrFkhnULrVWVwIpktE5Xqd6MzPBxNbSJ7lt2v0D9N\n2tvsJsKDkKhSrC7KcYxqieEVtnzfYslKxzuXlVffYshelFzUfjmTqpEhLSEu\nLJiRGNWJO8QwNnINb4bNqhbPBYv5Wi95BQIHz+mG08VBDDPpTikuQLt5sTTH\nSYLaC4olCambulyr35wk7MBBaP10e2snZyE9HMAH5ZQTCCrd+akApZhZNbp5\noq8Cl6/LHAlOt3NIP29QtmCaQaooEHgoculOsERzznB+ciwru5aHXfCUgRYp\nLTWfiZIBae8l+AbzvXV++uKmya+lgAMIvUfAvbMNwqwxybEx4htkPMtIWmQJ\nelIv\r\n=6gEk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDN2anAs6Ardn24jfamOYxywPcfqJkWUfe/Mrk3wz+QvAiEAtJulXg1dJYYhXDm6WKzb3/Ggyd92hlSsRMoIO/VgKHY="}]},"maintainers":[{"name":"josepot","email":"josep@sbrpr.com"}],"_npmUser":{"name":"josepot","email":"josep@sbrpr.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-views_1.0.0_1578003306184_0.8584883921877573"},"_hasShrinkwrap":false},"1.0.1":{"name":"redux-views","version":"1.0.1","license":"MIT","repository":{"type":"git","url":"git+https://github.com/josepot/redux-views.git"},"bugs":{"url":"https://github.com/josepot/redux-views/issues"},"keywords":["redux","selectors","cached","functional"],"author":{"name":"Josep M Sobrepere","url":"https://github.com/josepot"},"main":"lib/redux-views.js","types":"types/index.d.ts","unpkg":"dist/redux-views.js","module":"es/redux-views.js","scripts":{"clean":"rimraf lib dist es coverage","format":"prettier --write \"{src,test}/**/*.js\"","format:check":"prettier --list-different \"{src,test}/**/*.js\"","lint":"eslint src test","pretest":"npm run build","test":"jest","test:watch":"npm test -- --watch","test:cov":"npm test -- --coverage","test:types":"dtslint types","build":"cross-env NODE_ENV=production rollup -c","prepare":"npm run clean && npm run format:check && npm run lint && npm test"},"dependencies":{"loose-envify":"^1.1.0"},"devDependencies":{"@babel/cli":"^7.7.7","@babel/core":"^7.7.7","@babel/node":"^7.7.7","@babel/plugin-external-helpers":"^7.7.4","@babel/plugin-proposal-object-rest-spread":"^7.7.7","@babel/preset-env":"^7.7.7","@babel/preset-flow":"^7.7.4","@babel/register":"^7.7.7","babel-core":"^7.0.0-bridge.0","babel-eslint":"^10.0.3","babel-jest":"^24.9.0","cross-env":"^6.0.3","dtslint":"^2.0.3","eslint":"^6.8.0","eslint-config-react-app":"^5.1.0","eslint-plugin-flowtype":"^4.5.3","eslint-plugin-import":"^2.19.1","eslint-plugin-jsx-a11y":"^6.2.3","eslint-plugin-react":"^7.17.0","eslint-plugin-react-hooks":"^2.3.0","glob":"^7.1.6","jest":"^24.9.0","prettier":"^1.19.1","ramda":"^0.26.1","rimraf":"^3.0.0","rollup":"^1.27.14","rollup-plugin-babel":"^4.3.3","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^5.1.3","tslint-config-prettier":"^1.18.0"},"npmName":"redux-views","npmFileMap":[{"basePath":"/dist/","files":["*.js"]}],"browserify":{"transform":["loose-envify"]},"jest":{"testRegex":"(/test/.*\\.spec.js)$","testURL":"http://localhost/"},"sideEffects":false,"gitHead":"6fe6c8deed3949feea5753c49a7c743e855e3853","description":"Selector library designed for state management libraries (like Redux), with built-in support for shared selectors.","homepage":"https://github.com/josepot/redux-views#readme","_id":"redux-views@1.0.1","_nodeVersion":"12.4.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-cIbCCMrKggf/yjkyn0pr8ysTaegxQLE38uLoW/6rVPLnRDTz8ZeHDrPl27tNaqolY5kvaPuNbwLMD4rNv5nB/g==","shasum":"c3d23221bf21d80768fa4b3e8c4a1f79f55d0ee9","tarball":"https://registry.npmjs.org/redux-views/-/redux-views-1.0.1.tgz","fileCount":13,"unpackedSize":46660,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeDm9VCRA9TVsSAnZWagAAVdUP/jiQ5flzta/uuZN8DrOZ\nAh80LjdE+Gd/TsibB656KXr5MNZ/4bTxPiuuyvZcvuxGIDu/FY6AogoyHGem\nMjeeeSBWJerjCiMHdGNjR06suakgt8ZY4Rmv9BZQBk+ODBfyqd+LkFmRtznN\nugtttjnFmnJVT9+5rIRRhCycMOM2CNqDoTV+LKBfZ87JmJ6iigMZ8Nm+vmDr\nDpRidKeK3sWE5pdsS37ZG99buax3e/Zg684oq/XrlyxRIm2S/ASg1roD/FHa\nlepECIMh6zUpl27YGWj8Tdqoa8GPR8/x4fAw4YHSazeYR+kyKdvnb2vvHPYN\nlZNoOGdBjE4pIE29lppjjO3zl55TAvdElrcLDnUBuoc+kU9/fcn0VlNHnsAt\nyWgOJQho5AjeAszvdgBf7OzOxuQnAYO6QPmulKARqLJWAI580cNhrEURsSog\nC9oZVzWNScFIcdH1QofrM3v7yhl5IUcy7ZSkiouLgXWvax3TQMOaxfcku/zS\nuXpnoRZDkEsWvRqc+u3Gi6A8pIc+1IL9MPIGtCyTEwbzJR8zMg4mDfTHuk2b\nz5K7aGBodz4B5gQqA9U643b9HaFNxbwMIYQIU5SHa2tuVucC2JqhO9MC+f1P\n/E0yumtQIRyO+MRNtixv7gtSV+vEcN+37jyIuhpIL9wz++xSWtlgA7s+ZG61\nnVTk\r\n=p+gj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDlTwVFMSHpuJfeOh95cOTj4PrWKB2x+odu2NHG5iofWgIhAIAJdVCzFiq+hKSJQfMsDty2VjkvbT7cszRnQ6l044bv"}]},"maintainers":[{"name":"josepot","email":"josep@sbrpr.com"}],"_npmUser":{"name":"josepot","email":"josep@sbrpr.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-views_1.0.1_1578004309497_0.06879325827570293"},"_hasShrinkwrap":false},"1.0.2":{"name":"redux-views","version":"1.0.2","license":"MIT","repository":{"type":"git","url":"git+https://github.com/josepot/redux-views.git"},"bugs":{"url":"https://github.com/josepot/redux-views/issues"},"keywords":["redux","selectors","cached","functional"],"author":{"name":"Josep M Sobrepere","url":"https://github.com/josepot"},"main":"lib/redux-views.js","types":"types/index.d.ts","unpkg":"dist/redux-views.js","module":"es/redux-views.js","scripts":{"clean":"rimraf lib dist es coverage","format":"prettier --write \"{src,test}/**/*.js\"","format:check":"prettier --list-different \"{src,test}/**/*.js\"","lint":"eslint src test","pretest":"npm run build","test":"jest","test:watch":"npm test -- --watch","test:cov":"npm test -- --coverage","test:types":"dtslint types","build":"cross-env NODE_ENV=production rollup -c","prepare":"npm run clean && npm run format:check && npm run lint && npm test"},"dependencies":{"loose-envify":"^1.1.0"},"devDependencies":{"@babel/cli":"^7.7.7","@babel/core":"^7.7.7","@babel/node":"^7.7.7","@babel/plugin-external-helpers":"^7.7.4","@babel/plugin-proposal-object-rest-spread":"^7.7.7","@babel/preset-env":"^7.7.7","@babel/preset-flow":"^7.7.4","@babel/register":"^7.7.7","babel-core":"^7.0.0-bridge.0","babel-eslint":"^10.0.3","babel-jest":"^24.9.0","cross-env":"^6.0.3","dtslint":"^3.6.8","eslint":"^6.8.0","eslint-config-react-app":"^5.1.0","eslint-plugin-flowtype":"^4.5.3","eslint-plugin-import":"^2.19.1","eslint-plugin-jsx-a11y":"^6.2.3","eslint-plugin-react":"^7.17.0","eslint-plugin-react-hooks":"^2.3.0","glob":"^7.1.6","jest":"^24.9.0","prettier":"^1.19.1","ramda":"^0.26.1","rimraf":"^3.0.0","rollup":"^1.27.14","rollup-plugin-babel":"^4.3.3","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^5.1.3","tslint-config-prettier":"^1.18.0"},"npmName":"redux-views","npmFileMap":[{"basePath":"/dist/","files":["*.js"]}],"browserify":{"transform":["loose-envify"]},"jest":{"testRegex":"(/test/.*\\.spec.js)$","testURL":"http://localhost/"},"sideEffects":false,"gitHead":"f3c566b59dd1b94b7ee39178a8320eae3ae78a64","description":"Selector library designed for state management libraries (like Redux), with built-in support for shared selectors.","homepage":"https://github.com/josepot/redux-views#readme","_id":"redux-views@1.0.2","_nodeVersion":"14.15.1","_npmVersion":"7.6.0","dist":{"integrity":"sha512-MIk3YACqfi6waMxVziC8OZ0vT79TpR/nN2ai/JceV1qz1fUBf1TwW5qQsEHNyIANYc4UrtBaDP4sYA2VC+avHA==","shasum":"61ab4cda63d8b0b681f0899e920889da490293ee","tarball":"https://registry.npmjs.org/redux-views/-/redux-views-1.0.2.tgz","fileCount":13,"unpackedSize":65980,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgUzSeCRA9TVsSAnZWagAALYoP/0pj5IiHTOXweJZCYdI0\nww02p11asHAyTg34dlKSwqQKFhkc/N8o4l7lJKMEZq8di5a8tmvLJH+AS8po\nU22HdT1jL5KqmhabUCrNeti7kHvtRLTi+SiHIPyGFg+YJgtq9QyndkVjUU8T\nVoB9z670WP2Bt695DQea08sVO+TIbW7r/cYpImU/9rFkON8IoAqNPfbget+J\nuTsWCY6ooJxXD6ILdfH9yryx0Kq4vADovjTAUtMYILeE5gWG4J7VjS/NQHl6\ngixOMCPis5kc5Uf1FVNUr/1y75PRfNogSfMue9ItWaWMdzlSBuhPc9+OvvSQ\n4L/kYl8VQW3dwoDKcUkGN1y0CsXL4FibO8CeI9ZoA0QEVtSJi0W15oLNN52C\nnqLFYolH2KpKRIxh39DwFM8Vv0RGCNhBzxGJX3Zn1uyHK4BW/f/xqUAvkPbw\ncMUSRdd0H17QMxsH0LO2N7QnYawGmEb7af2IUag3UTSnwDoIwAbIa8nbvJnM\nPX4fIh91vr+dT7wIsRE1WMCZ7WCI/hoiLYlReu8nQQPqwpU24fzaoxV6abOB\nq0MrWGS8plQCPDRm9240F63MAuQguCRYcaoS0yBb9ffiMmGYbZlF2MQWFNGZ\nP9giboNmnsnIOPRyvysQ5kf+wTTe4NHI54pYZp1B8soR/nH6BdEdR2KbE4Nz\nAHCE\r\n=qjhm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDpUGWJ5Tt/r7o7BRxiswDgnRe2hpSLH1y2hgGrze+RHgIhALObmmH1gpxcAu2iDs01eu9hjiQttgqaK61D6Bp8sfGr"}]},"_npmUser":{"name":"josepot","email":"josep@sbrpr.com"},"directories":{},"maintainers":[{"name":"josepot","email":"josep@sbrpr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-views_1.0.2_1616065693692_0.7275305773045657"},"_hasShrinkwrap":false},"1.0.3":{"name":"redux-views","version":"1.0.3","license":"MIT","repository":{"type":"git","url":"git+https://github.com/josepot/redux-views.git"},"bugs":{"url":"https://github.com/josepot/redux-views/issues"},"keywords":["redux","selectors","cached","functional"],"author":{"name":"Josep M Sobrepere","url":"https://github.com/josepot"},"main":"lib/redux-views.js","types":"types/ts3.0.d.ts","typesVersions":{">=4.1":{"*":["types/ts4.1/index.d.ts"]}},"unpkg":"dist/redux-views.js","module":"es/redux-views.js","scripts":{"clean":"rimraf lib dist es coverage","format":"prettier --write \"{src,test}/**/*.js\"","format:check":"prettier --list-different \"{src,test}/**/*.js\"","lint":"eslint src test","pretest":"npm run build","test":"jest","test:watch":"npm test -- --watch","test:cov":"npm test -- --coverage","test:types":"dtslint types/ts4.1","build":"cross-env NODE_ENV=production rollup -c","prepare":"npm run clean && npm run format:check && npm run lint && npm test"},"dependencies":{"loose-envify":"^1.1.0"},"devDependencies":{"@babel/cli":"^7.7.7","@babel/core":"^7.7.7","@babel/node":"^7.7.7","@babel/plugin-external-helpers":"^7.7.4","@babel/plugin-proposal-object-rest-spread":"^7.7.7","@babel/preset-env":"^7.7.7","@babel/preset-flow":"^7.7.4","@babel/register":"^7.7.7","babel-core":"^7.0.0-bridge.0","babel-eslint":"^10.0.3","babel-jest":"^24.9.0","cross-env":"^6.0.3","dtslint":"^4.0.7","eslint":"^6.8.0","eslint-config-react-app":"^5.1.0","eslint-plugin-flowtype":"^4.5.3","eslint-plugin-import":"^2.19.1","eslint-plugin-jsx-a11y":"^6.2.3","eslint-plugin-react":"^7.17.0","eslint-plugin-react-hooks":"^2.3.0","glob":"^7.1.6","jest":"^24.9.0","prettier":"^1.19.1","ramda":"^0.26.1","rimraf":"^3.0.0","rollup":"^1.27.14","rollup-plugin-babel":"^4.3.3","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^5.1.3","tslint-config-prettier":"^1.18.0"},"npmName":"redux-views","npmFileMap":[{"basePath":"/dist/","files":["*.js"]}],"browserify":{"transform":["loose-envify"]},"jest":{"testRegex":"(/test/.*\\.spec.js)$","testURL":"http://localhost/"},"sideEffects":false,"gitHead":"2546cd67bbd4d5aeb4b3a23ad6160bf44277c688","description":"Selector library designed for state management libraries (like Redux), with built-in support for shared selectors.","homepage":"https://github.com/josepot/redux-views#readme","_id":"redux-views@1.0.3","_nodeVersion":"14.15.1","_npmVersion":"7.6.0","dist":{"integrity":"sha512-x4ArakkKF7BiGoU6Y1hCU3zDUrhrSRXQLPJAu1dFxz/nDYzvnotimr/YqaBsOlwYgRMImNIwlu9se56UH8BXcQ==","shasum":"9234edcc222918ad93040821104c5c06623150f2","tarball":"https://registry.npmjs.org/redux-views/-/redux-views-1.0.3.tgz","fileCount":14,"unpackedSize":74071,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgVk1YCRA9TVsSAnZWagAA7eMP/2UHUFYOSyLqsfE2wZHR\niuAxjD57f/WIXmt4KYahXEjcDlvx+YxEZZvElmYx5KGtnUBOwQpG9T83fWEY\nFqq0/am04XdTcuqb0TQjW9OK2EOWVrzfv8NS550OFFAZx2+DTtPfahbJGiAd\nna8WWHuf7FwKjqyYeGVKPUzwHfoTZ7dmewfj/1AcmrCuD+Us3YGK7q+PMKpq\n61KOGlKJiUBdWdEfFgh2b4RccICMQTbpj/O0R8UzY01WMB0MW5y2iPWaE/00\nCxrUmaSlX3EPHR1hHxePLMiHd1iOEDEBbu+arBCE5cZgZx4n+qfihL03dzgv\nJpm/LIND+NhjWGGRJWpuuLKvfCFduZyvCxy3lXRHW7I+IZi97gqYM9vfp3ei\nqx0LKgl2ddA/ECBKE3a+EvOr3m/oZ1tg7oq0hjZFymakA8zrPxJx6laA+Ohz\n3TVk0WrlRxow6IVx6r2kZqaYUzcim+SMxMOnETPd3ZW3/0g4uz1WAtmGKuqp\ndY45Y24G3OLkWiD7TMHxmtQ2ZG2as+gqF9XQislGDzJkTZ6dfN3hqQ/8A0hk\nQvub9pGWnmxgLW6tAAYl+y2sNKCuCCTwcjL+KTARQmMW/tqSUijWOXBMoLlj\nntx8lZV76JsiqoWLXFZDUEcr0mdYyd1E/e53MMdM7C0RfTQ/LtkPWE9mfbS0\niTPg\r\n=ujix\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEbuCndYUcuEvjzDHMBwpQ4QPDs9ahyWPwOJ0rPiwXAaAiEA83Ad2t3wJu4WDEr0y4oJYf5yVFlHFfeebsjYxx2pCKE="}]},"_npmUser":{"name":"josepot","email":"josep@sbrpr.com"},"directories":{},"maintainers":[{"name":"josepot","email":"josep@sbrpr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-views_1.0.3_1616268632177_0.05117325084375457"},"_hasShrinkwrap":false}},"time":{"created":"2019-02-28T00:04:45.072Z","0.0.1":"2019-02-28T00:04:45.225Z","modified":"2022-05-15T16:19:57.257Z","0.0.2":"2019-03-04T23:10:15.288Z","0.1.0":"2019-03-07T01:37:03.692Z","0.2.0":"2019-03-08T23:28:26.453Z","0.3.0":"2019-03-11T23:53:44.169Z","0.4.0":"2019-03-13T01:52:20.396Z","0.4.1":"2019-03-20T11:48:23.002Z","0.5.0":"2019-03-23T21:05:29.841Z","0.6.0":"2019-03-31T18:52:31.214Z","0.6.1":"2019-04-11T09:43:21.759Z","0.7.0":"2019-06-12T20:21:16.484Z","0.7.1":"2019-07-15T15:11:28.680Z","1.0.0":"2020-01-02T22:15:06.442Z","1.0.1":"2020-01-02T22:31:49.646Z","1.0.2":"2021-03-18T11:08:13.842Z","1.0.3":"2021-03-20T19:30:32.303Z"},"maintainers":[{"name":"josepot","email":"josep@sbrpr.com"}],"homepage":"https://github.com/josepot/redux-views#readme","keywords":["redux","selectors","cached","functional"],"repository":{"type":"git","url":"git+https://github.com/josepot/redux-views.git"},"author":{"name":"Josep M Sobrepere","url":"https://github.com/josepot"},"bugs":{"url":"https://github.com/josepot/redux-views/issues"},"license":"MIT","readme":"# redux-views\n\nSelector library designed for state management libraries (like Redux), with built-in support for shared selectors.\n\n## Installation\n\n```sh\nnpm install --save redux-views\n```\n\n## Simple usage\n\nSelectors are functions that compute derived data given a state, allowing that state to contain less redundant data.\n\n```js\nimport { createSelector } from 'redux-views';\n\nconst getAllCars = state => state.cars;\n\nconst getRunningCars = createSelector(\n  [getAllCars],\n  cars => cars.filter(car => car.isRunning)\n);\n```\n\nAll selectors created by redux-views are memoized: This means that if you call a selector multiple times with the same state and parameters, you'll always get the same result, without running the computation again.\n\n```js\nconst activeCars1 = getRunningCars(myState);\nconst activeCars2 = getRunningCars(myState);\n\nassert(activeCars1 === activeCars2);\nassert(getRunningCars.recomputations() === 1);\n```\n\n## Parametric selectors\n\nSometimes we need to build selectors that take parameters, usually to identify a specific instance. Consider the following selector which returns the passengers of a specific car:\n\n```js\nconst getRunningCarPassengers = (state, props) => {\n  const { carId } = props;\n\n  const runningCars = getRunningCars(state);\n  const passengers = getPassengers(state);\n\n  const car = runningCars\n    .find(car => car.id === carId);\n\n  return car.passengerIds\n    .map(id => passengers[id]);\n}\n\nconst passengersCar1_0 = getRunningCarPassengers(state, { carId: 1 });\nconst passengersCar2 = getRunningCarPassengers(state, { carId: 2 });\nconst passengersCar1_1 = getRunningCarPassengers(state, { carId: 1 });\n\nassert(passengersCar1_0 !== passengersCar1_1);\n// getRunningCarPassengers recomputed 3 times\n```\n\nAs you can imagine, the `getRunningCarPassengers` function is not memoized and it will re-evaluate every time that it's called.\n\nWith `redux-views` we can create instance selectors like this one, which will be automatically memoized. It just needs to know which parameters does it depend on. For this reason, we can create an id selector:\n\n```js\nimport { createIdSelector } from 'redux-views';\n\nconst getCarIdProp = createIdSelector(props => props.carId);\nconst getRunningCar = createSelector(\n  [\n    getRunningCars,\n    getCarIdProp\n  ],\n  (cars, carId) => cars.find(car => car.id === carId)\n);\nconst getRunningCarPassengers = createSelector(\n  [\n    getRunningCar,\n    getPassengers\n  ],\n  (car, passengers) => car.passengerIds.map(id => passengers[id])\n);\n\nconst passengersCar1_0 = getRunningCarPassengers(state, { carId: 1 }); // computes\nconst passengersCar2 = getRunningCarPassengers(state, { carId: 2 }); // computes\nconst passengersCar1_1 = getRunningCarPassengers(state, { carId: 1 }); // cached\n\nassert(passengersCar1_0 === passengersCar1_1);\nassert(getRunningCars.recomputations() === 2);\n```\n\nThis way, `redux-views` knows that `getRunningCarPassengers` will probably give different results for each `carId`, effectively allowing it to memoize the value for each one.\n\nIt's good to know that, by default, `redux-views` will keep those memoized values for as long as the application runs. However, it provides two ways of clearing the cache, either manually or with a ref count which automatically clears the cache when the selector is not used anymore. This is something internal and rarely used for individual projects, as it's meant for bindings with state management libraries.\n\nIf you're using a binding that supports ref count, you most likely don't need to worry about invalidating the cache.\n\n## Migrating from reselect@4.0\n\nThis version of `redux-views` removes the variadic overload of `createSelector` from `reselect@4.0`, which means that all calls that were using this overload will need to be changed. For example:\n\n```js\ncreateSelector(\n  getRunningCars,\n  getPassengers,\n  (cars, passengers) => ...\n);\n```\n\nbecomes\n\n```js\ncreateSelector(\n  [\n    getRunningCars,\n    getPassengers,\n  ],\n  (cars, passengers) => ...\n);\n```\n\nThat's the only breaking change for the simple usage. `redux-views` passes all the tests from `reselect@4.0`. There's a codemod in the works that will allow to replace all of these automatically.\n\nNow, to make use of the built-in memoization in parametric selectors it will need extra work, but basically you'll need to find all of the selectors that use props, and replace them with a `createIdSelector`. Possible examples:\n\n```js\ncreateSelector(\n  getRunningCars,\n  (_, props) => props.carId,\n  (cars, carId) => cars[props.carId]\n);\n```\n\nbecomes\n\n```js\nconst getCarIdProp = createIdSelector(props => props.carId);\n\ncreateSelector(\n  getRunningCars,\n  getCarIdProp,\n  (cars, carId) => cars[props.carId]\n);\n```\n\nThis will allow you to get rid of all selector creators (`reselect@4.0`'s solution for memoizing shared parametric selectors)\n\n## Migrating from re-reselect\n\n`re-reselect` has a very similar concept to `redux-views`, but you had to define a \"keySelector\" for every parametric selector you needed. So grabbing the example from their doc:\n\n```js\nconst getUsers = state => state.users;\nconst getLibraryId = (state, libraryName) => state.libraries[libraryName].id;\n\nconst getUsersByLibrary = createCachedSelector(\n  // inputSelectors\n  getUsers,\n  getLibraryId,\n\n  // resultFunc\n  (users, libraryId) => expensiveComputation(users, libraryId),\n)(\n  // re-reselect keySelector (receives selectors' arguments)\n  // Use \"libraryName\" as cacheKey\n  (_state_, libraryName) => libraryName\n);\n```\n\nNow becomes\n\n```js\nconst getUsers = state => state.users;\nconst getLibraryName = createIdSelector(libraryName => libraryName);\nconst getLibraryId = createSelector(\n  [\n    state => state.libraries,\n    getLibraryName,\n  ],\n  (libraries, libraryName) => libraries[libraryName].id\n);\n\nconst getUsersByLibrary = createSelector(\n  [\n    getUsers,\n    getLibraryId,\n  ],\n  (users, libraryId) => expensiveComputation(users, libraryId),\n);\n```\n\nAnd we don't need to define any keySelector for every other selector we want to create that hangs from this one.\n\n## API\n\n### createSelector\n\n```ts\nfunction createSelector<T, R>(\n  selectors: Array<Selector<R>>,\n  combiner: (...res: Array<R>) => T,\n  equalityFn?: (a: T, b: T) => boolean\n): Selector<T>;\n```\n\nCreates a new selector by combining other selectors. Parameters:\n\n* selectors: List of input selectors\n* combiner: Computing function. Receives through arguments the result of the input selectors (in the same order as they are defined)\n* equalityFn: Optional function that checks whether two values returned by `combiner` are equal. Defaults to strict equality (`===`).\n\n### createIdSelector\n\n```ts\nfunction createIdSelector(\n  idSelector: (...props: Array) => string\n): Selector<string>;\n```\n\nCreates a selector from props. Parameters:\n\n* idSelector: Function that should return a string representing the id.\n\n### createStructuredSelector\n\n```ts\nexport function createStructuredSelector<T>(\n  selectors: Dictionary<Selector<T>>\n): Selector<Dictionary<T>>\n```\n\nConvenience function that creates a selector by combining them in an object. Example:\n\n```ts\nconst getDataA = createSelector(...);\nconst getDataB = createSelector(...);\n\ncreateStructuredSelector({\n  a: getDataA,\n  b: getDataB\n});\n\n// Is the same as\n\ncreateSelector(\n  [\n    getDataA,\n    getDataB\n  ],\n  (a, b) => ({\n    a,\n    b\n  }),\n  shallowCompare\n);\n```\n\n## Internal API\n\n> This API is only meant when building bindings of this library for state management ones (like Redux), for internal testing, or for low-level access to the internal cache. Normal usage of this library in individual projects shouldn't need any of these.\n\nEvery selector created by `redux-views` has the following properties:\n\n* recomputations: Function that returns the number of computations performed by this selector.\n* resetRecomputations: Function that clears the number of computations.\n* dependencies: Original list of dependencies.\n* resultFunc: Original combiner function.\n\nAdditionally, those selectors that have a selector created by `createIdSelector` in their dependency chain, will have:\n\n* idSelector: Function that returns the id for an instance.\n* use: Function that adds a usage to the ref count for a given instance.\n* clearCache: Function that immediately clears the cache.\n\nThe most important function is `use`. It has the following signature:\n\n```ts\nfunction use(\n  id: string\n): () => void;\n```\n\nWhat this function does is mark that the value computed for the instance `id` is in use through a ref count.\n\nThe function returned by `use` is the clean-up function, and when the ref count reaches 0, the value whose idSelector returns that `id` is removed from the cache.\n\nTypically, for every instance of a component, you want to grab the `id` of that instance by using the `idSelector` function and call `use` with it. Then, every time that `id` changes, call the clean-up function and call `use` again with the new id.\n\nThis API makes is very easy to integrate with React. For instance, we could easily create a hook like `usePropsSelector` that uses the `useSelector` hook from `react-redux`: \n\n```js\nconst usePropsSelector = (selector, props) => {\n  const id = selector.idSelector && selector.idSelector(null, props);\n  useEffect(() => selector.use && selector.use(id), [selector, id]);\n\n  return useSelector(x => selector(x, props));\n};\n```\n","readmeFilename":"README.md","description":"Selector library designed for state management libraries (like Redux), with built-in support for shared selectors."}