{"_id":"@brendanatme/redux-model","_rev":"9-b95789d60cf97c4fbd4341aba72122ec","name":"@brendanatme/redux-model","dist-tags":{"latest":"2.0.0"},"versions":{"0.1.0":{"name":"@brendanatme/redux-model","version":"0.1.0","description":"Max your Redux, scrap your boilerplate","main":"index.js","typings":"index.d.ts","repository":{"type":"git","url":"git+https://github.com/brendanatme/redux-model.git"},"license":"MIT","keywords":[],"scripts":{"build":"run-p build:*","build:main":"tsc -p tsconfig.json","fix":"run-s fix:*","fix:lint":"eslint src --ext .ts --fix","test":"run-s build test:*","test:lint":"eslint src --ext .ts","test:spelling":"cspell \"{README.md,.github/*.md,src/**/*.ts}\"","test:unit":"nyc --silent ava","check-cli":"run-s test diff-integration-tests check-integration-tests","check-integration-tests":"run-s check-integration-test:*","diff-integration-tests":"mkdir -p diff && rm -rf diff/test && cp -r test diff/test && rm -rf diff/test/test-*/.git && cd diff && git init --quiet && git add -A && git commit --quiet --no-verify --allow-empty -m 'WIP' && echo '\\n\\nCommitted most recent integration test output in the \"diff\" directory. Review the changes with \"cd diff && git diff HEAD\" or your preferred git diff viewer.'","watch:build":"tsc -p tsconfig.json -w","watch:test":"nyc --silent ava --watch","cov":"run-s build test:unit cov:html cov:lcov && open-cli coverage/index.html","cov:html":"nyc report --reporter=html","cov:lcov":"nyc report --reporter=lcov","cov:send":"run-s cov:lcov && codecov","cov:check":"nyc report && nyc check-coverage --lines 90 --functions 90 --branches 90","doc":"run-s doc:html && open-cli dist/docs/index.html","doc:html":"typedoc src/ --exclude **/*.spec.ts --target ES6 --mode file --out dist/docs","doc:json":"typedoc src/ --exclude **/*.spec.ts --target ES6 --mode file --json dist/docs/typedoc.json","doc:publish":"gh-pages -m \"[ci skip] Updates\" -d dist/docs","reset-hard":"git clean -dfx && git reset --hard && npm i","prepare-release":"run-s reset-hard test cov:check doc:html doc:publish","release":"node scripts/release.js"},"engines":{"node":">=10"},"dependencies":{"reselect":"^4.0.0"},"peerDependencies":{"redux":"^4.0.5","redux-thunk":"^2.3.0"},"devDependencies":{"@ava/typescript":"^1.1.1","@istanbuljs/nyc-config-typescript":"^1.0.1","@typescript-eslint/eslint-plugin":"^4.0.1","@typescript-eslint/parser":"^4.0.1","ava":"^3.12.1","codecov":"^3.5.0","cspell":"^4.1.0","cz-conventional-changelog":"^3.3.0","eslint":"^7.8.0","eslint-config-prettier":"^6.11.0","eslint-plugin-eslint-comments":"^3.2.0","eslint-plugin-functional":"^3.0.2","eslint-plugin-import":"^2.22.0","gh-pages":"^3.1.0","npm-run-all":"^4.1.5","nyc":"^15.1.0","open-cli":"^6.0.1","redux":"^4.0.5","redux-thunk":"^2.3.0","ts-node":"^9.0.0","typedoc":"^0.19.0","typescript":"^4.0.2"},"ava":{"failFast":true,"timeout":"60s","typescript":{"rewritePaths":{"src/":"dist/"}},"files":["**/*.spec.ts"]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"nyc":{"extends":"@istanbuljs/nyc-config-typescript","exclude":["**/*.spec.js"]},"bugs":{"url":"https://github.com/brendanatme/redux-model/issues"},"homepage":"https://github.com/brendanatme/redux-model#readme","_id":"@brendanatme/redux-model@0.1.0","_nodeVersion":"12.18.2","_npmVersion":"6.14.5","dist":{"integrity":"sha512-W9u4Mvhc7HXcUIMMg2NP6WNeODd+ovusuap0rlCbcLZCGtNA9n5oL7ka4D1UA8IPpTb8YBmPaxfN+T5/y6IWbA==","shasum":"556f4c8db8e3618e6b613db1b4273f6e45ca04b1","tarball":"https://registry.npmjs.org/@brendanatme/redux-model/-/redux-model-0.1.0.tgz","fileCount":3,"unpackedSize":5862,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfZB1XCRA9TVsSAnZWagAAB/AP/3x2WE89GLsp+sG8uTkG\nljjQ5dOcXCJ9urj68El5cub0nJeMEXRGkNrD/96IAPu2jpDaYmvqbaNl2KC3\n39yX4Yy8/udb5/9JD+ZwfgYQ2MJIBfeuUf121toNHtrY7TkYVf6u7a6PYqYC\nhH1gspVC++1PolFDp40q+wNyzrvHMsP+Yf2mnHrIAaax7ZRy/GYLxrOEKvY+\n+60I6rgr5rNEA1mIhgcBzCqZagHstFRViNYqq0BLOldj32thefVh+xKIIuna\nDQEZh2N4Hk6X55xulndwMqSIiam+LLgngWT2z7eoQQtLX5daPWERVLgDRtUv\niJyt4GOAdg1kmw4/utEZKoQ58FebI+H26eL3hhj+WShBIO2Y6gJeVL7TAqR6\nX86eQqehEkPy+smCrjUvJHoykSmac/4aYT8LijX+/cjpDLK9o5gxIVzqcZQj\nvGmF3s0ptbTNz7Pmx+0hcMgHE+reLX8mfpdu30EGjr3ET/yLOdJL+r0mX6es\nmogKK532Sw7aQ+thQrwahRWG5eO+SJkaC0wEl5oDJbqBdjpPZzktIxa59Rdq\nemYNC8Az+AKeSVCEpAwI5N5uTmiI13msP68i4kNMJKDI8gNeVubhIU1woEF9\neVlqtPXmhHwjxGcHOpKDpTPtCbyTvWI2ohscg/HY6Qd+Y7HxwJq3PflQNCIm\nvYmP\r\n=ComH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC/rRUVUWjEJWppYtL9yDjICwxCFUcCi1CzbI98DHkPqgIhAJAtTTpsFFbBPsnWiIqNqu3fhNUl1QoOeUZlpldK/8I1"}]},"maintainers":[{"name":"brendanatme","email":"registrations@brendanat.me"}],"_npmUser":{"name":"brendanatme","email":"registrations@brendanat.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-model_0.1.0_1600396631094_0.507011354208809"},"_hasShrinkwrap":false},"0.1.1":{"name":"@brendanatme/redux-model","version":"0.1.1","description":"Max your Redux, scrap your boilerplate","main":"index.js","typings":"index.d.ts","repository":{"type":"git","url":"git+https://github.com/brendanatme/redux-model.git"},"license":"MIT","keywords":[],"scripts":{"build":"run-p build:*","build:main":"tsc -p tsconfig.json","fix":"run-s fix:*","fix:lint":"eslint src --ext .ts --fix","test":"run-s build test:*","test:lint":"eslint src --ext .ts","test:spelling":"cspell \"{README.md,.github/*.md,src/**/*.ts}\"","test:unit":"nyc --silent ava","check-cli":"run-s test diff-integration-tests check-integration-tests","check-integration-tests":"run-s check-integration-test:*","diff-integration-tests":"mkdir -p diff && rm -rf diff/test && cp -r test diff/test && rm -rf diff/test/test-*/.git && cd diff && git init --quiet && git add -A && git commit --quiet --no-verify --allow-empty -m 'WIP' && echo '\\n\\nCommitted most recent integration test output in the \"diff\" directory. Review the changes with \"cd diff && git diff HEAD\" or your preferred git diff viewer.'","watch:build":"tsc -p tsconfig.json -w","watch:test":"nyc --silent ava --watch","cov":"run-s build test:unit cov:html cov:lcov && open-cli coverage/index.html","cov:html":"nyc report --reporter=html","cov:lcov":"nyc report --reporter=lcov","cov:send":"run-s cov:lcov && codecov","cov:check":"nyc report && nyc check-coverage --lines 90 --functions 90 --branches 90","doc":"run-s doc:html && open-cli dist/docs/index.html","doc:html":"typedoc src/ --exclude **/*.spec.ts --target ES6 --mode file --out dist/docs","doc:json":"typedoc src/ --exclude **/*.spec.ts --target ES6 --mode file --json dist/docs/typedoc.json","doc:publish":"gh-pages -m \"[ci skip] Updates\" -d dist/docs","reset-hard":"git clean -dfx && git reset --hard && npm i","prepare-release":"run-s reset-hard test cov:check doc:html doc:publish","release":"node scripts/release.js"},"engines":{"node":">=10"},"dependencies":{"reselect":"^4.0.0"},"peerDependencies":{"redux":"^4.0.5","redux-thunk":"^2.3.0"},"devDependencies":{"@ava/typescript":"^1.1.1","@istanbuljs/nyc-config-typescript":"^1.0.1","@typescript-eslint/eslint-plugin":"^4.0.1","@typescript-eslint/parser":"^4.0.1","ava":"^3.12.1","codecov":"^3.5.0","cspell":"^4.1.0","cz-conventional-changelog":"^3.3.0","eslint":"^7.8.0","eslint-config-prettier":"^6.11.0","eslint-plugin-eslint-comments":"^3.2.0","eslint-plugin-functional":"^3.0.2","eslint-plugin-import":"^2.22.0","gh-pages":"^3.1.0","npm-run-all":"^4.1.5","nyc":"^15.1.0","open-cli":"^6.0.1","redux":"^4.0.5","redux-thunk":"^2.3.0","ts-node":"^9.0.0","typedoc":"^0.19.0","typescript":"^4.0.2"},"ava":{"failFast":true,"timeout":"60s","typescript":{"rewritePaths":{"src/":"dist/"}},"files":["**/*.spec.ts"]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"nyc":{"extends":"@istanbuljs/nyc-config-typescript","exclude":["**/*.spec.js"]},"bugs":{"url":"https://github.com/brendanatme/redux-model/issues"},"homepage":"https://github.com/brendanatme/redux-model#readme","_id":"@brendanatme/redux-model@0.1.1","_nodeVersion":"12.18.2","_npmVersion":"6.14.5","dist":{"integrity":"sha512-qI2GKrSfx4bOX2cpTboKeGlXct2Uqn8dFgdW/HHiO0FN95PDDQlzy+cxUn0M8rByDyC9G14jF50FOBEQhiG/dw==","shasum":"28da5a5863c16f181e86f08060f51d0a1ff7fce6","tarball":"https://registry.npmjs.org/@brendanatme/redux-model/-/redux-model-0.1.1.tgz","fileCount":3,"unpackedSize":5535,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfZLNJCRA9TVsSAnZWagAAr98P/2oWs/yZxbPUTs0Vkl2a\nwOO21S8Zq841ExgmfAtyl++rQrw3FgwCiZnMpmT/RVuZHNJW0XDDIHWecCIe\nHwLBulihWiq2gYXe/1QuGcR4XoOMTq+WluXw/Cc+evOaVYTRN+m/Jo8apBWb\nnczhyF1Bo/dd/AK+qJa56qjzbu9z0bqpDt2RJAxYx5/IwwfE67beaYaueRXQ\ndpvPotMmBxzUr7mpe7eY5aDM7JZejJowEr/jbp1zjUJA2nsdImcZvLjfro/w\nLXQmDRozjDH2v0S3h5x73JZggROZEcy1sM/i71reo2JDQv5Y6aAvW5L6ar5/\ndTYKRTu95JC9O0DPjyIc9q9QNj7xlIze3bs7XawmHungxR5UwH3XP//ftofH\nQah9xMvmdUSvOfoWXg5GicqIkuDy9W7qTinmjHbQ9RGH++ooVA17Lr1dB3OO\nuGD1ZhKb30Cn7/YVai0aeApVQIkiRmBNLJoDlq+/PEmMLIN40uAhQsYMH6Ck\n0lzh7PR/6mU20DtvE29AHWLX4tG5zt7cyFNYMgpKhtqHypLHpbGyag3Lj0Jt\nTCZwe8iUSh9JmrhR2xZrwATPnxhGFduhOQoQnChe+PL6VNNZ2uWSGtzot7Mb\nRxXa1FOPp1RGkXk3CXGoDpcAYzt4CeGGmhnl/uLwBf25/hwBkPiRtXEWBssp\n+BAR\r\n=0Qks\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDrO7+gtRjG59yyhbAk1yT8sP4Mu88ZmfqMgn7Uwj21mQIgOljfAmPs8IhuSC9TjnOPQEFBjutKTb5pvOu5tnGpLiw="}]},"maintainers":[{"name":"brendanatme","email":"registrations@brendanat.me"}],"_npmUser":{"name":"brendanatme","email":"registrations@brendanat.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-model_0.1.1_1600435016818_0.7253524887254112"},"_hasShrinkwrap":false},"0.1.2":{"name":"@brendanatme/redux-model","version":"0.1.2","description":"Max your Redux, scrap your boilerplate","main":"index.js","typings":"index.d.ts","repository":{"type":"git","url":"git+https://github.com/brendanatme/redux-model.git"},"license":"MIT","keywords":[],"scripts":{"build":"run-p build:*","build:main":"tsc -p tsconfig.json","fix":"run-s fix:*","fix:lint":"eslint src --ext .ts --fix","test":"run-s build test:*","test:lint":"eslint src --ext .ts","test:spelling":"cspell \"{README.md,.github/*.md,src/**/*.ts}\"","test:unit":"nyc --silent ava","check-cli":"run-s test diff-integration-tests check-integration-tests","check-integration-tests":"run-s check-integration-test:*","diff-integration-tests":"mkdir -p diff && rm -rf diff/test && cp -r test diff/test && rm -rf diff/test/test-*/.git && cd diff && git init --quiet && git add -A && git commit --quiet --no-verify --allow-empty -m 'WIP' && echo '\\n\\nCommitted most recent integration test output in the \"diff\" directory. Review the changes with \"cd diff && git diff HEAD\" or your preferred git diff viewer.'","watch:build":"tsc -p tsconfig.json -w","watch:test":"nyc --silent ava --watch","cov":"run-s build test:unit cov:html cov:lcov && open-cli coverage/index.html","cov:html":"nyc report --reporter=html","cov:lcov":"nyc report --reporter=lcov","cov:send":"run-s cov:lcov && codecov","cov:check":"nyc report && nyc check-coverage --lines 90 --functions 90 --branches 90","doc":"run-s doc:html && open-cli dist/docs/index.html","doc:html":"typedoc src/ --exclude **/*.spec.ts --target ES6 --mode file --out dist/docs","doc:json":"typedoc src/ --exclude **/*.spec.ts --target ES6 --mode file --json dist/docs/typedoc.json","doc:publish":"gh-pages -m \"[ci skip] Updates\" -d dist/docs","reset-hard":"git clean -dfx && git reset --hard && npm i","prepare-release":"run-s reset-hard test cov:check doc:html doc:publish","release":"node scripts/release.js"},"engines":{"node":">=10"},"dependencies":{"reselect":"^4.0.0"},"peerDependencies":{"redux":"^4.0.5","redux-thunk":"^2.3.0"},"devDependencies":{"@ava/typescript":"^1.1.1","@istanbuljs/nyc-config-typescript":"^1.0.1","@typescript-eslint/eslint-plugin":"^4.0.1","@typescript-eslint/parser":"^4.0.1","ava":"^3.12.1","codecov":"^3.5.0","cspell":"^4.1.0","cz-conventional-changelog":"^3.3.0","eslint":"^7.8.0","eslint-config-prettier":"^6.11.0","eslint-plugin-eslint-comments":"^3.2.0","eslint-plugin-functional":"^3.0.2","eslint-plugin-import":"^2.22.0","gh-pages":"^3.1.0","npm-run-all":"^4.1.5","nyc":"^15.1.0","open-cli":"^6.0.1","redux":"^4.0.5","redux-thunk":"^2.3.0","ts-node":"^9.0.0","typedoc":"^0.19.0","typescript":"^4.0.2"},"ava":{"failFast":true,"timeout":"60s","typescript":{"rewritePaths":{"src/":"dist/"}},"files":["**/*.spec.ts"]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"nyc":{"extends":"@istanbuljs/nyc-config-typescript","exclude":["**/*.spec.js"]},"bugs":{"url":"https://github.com/brendanatme/redux-model/issues"},"homepage":"https://github.com/brendanatme/redux-model#readme","_id":"@brendanatme/redux-model@0.1.2","_nodeVersion":"12.18.2","_npmVersion":"6.14.5","dist":{"integrity":"sha512-NDyohdv92SB/z25i42lBaIu9JNMC+xe/rUrvYqQg1SzLSkzWlepKesrCO98A0FxINpHbF2/6qDkMjD/V93eCBg==","shasum":"207b0b6dc9d179c9225951e41ab848173bcc57b4","tarball":"https://registry.npmjs.org/@brendanatme/redux-model/-/redux-model-0.1.2.tgz","fileCount":3,"unpackedSize":5535,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfZLWmCRA9TVsSAnZWagAAW64QAIog4KBNglwAvMNrlmMA\nq3M4A1FJKGznbSf6Sdmuc9A8bfFi9W0GA2QYo14W9JP0m/srntjN4yR0sdKF\nyNwNMgaukfF8rALcA50+N77kapt2Bsn23Q4UROp7t9/qdn4H4ZdqLklkL9eg\nVNwhQ5ZGIiE9ATFqnvL/O0hNuJWyOBe+0NuKVg7cWK0oHFUwoEt9g5iHgD9j\nYihtvhydzo+Wl4Q4SGLL95N70ImtGkI/jf1yQtXc+Gc3zGKjmoCeAmtbnCeo\naCtpNpgsfgALiPu1W7MlL2wR/LNbhTYunxXvAv0BRaSyZXDtwgJ+aoMcgAFT\n0d3Yz1UUqEql0IZdOzFY4d1YUOEXosxp/gI0s+2TvM7wbi64PX7es8usalzF\nIpeiYKqrIcNEpiOd2yh7YS1dkGba8CHODhzigQ7ajX8pq+kO0lwePxEm6HcP\nyJv2VjFi0qpnscpWVZBZ0gAmo5TydrWw0v50chaayhNNMDolYjzLKG5UKURT\n311nYQY4S3f9sj9EbdUx2ZeaVMrKi1rHqFsGxs8j/9XNP6ZubYIr+ouE5k+K\nRsvC+FW5Q/DyXXoD8tNplx2CyJqtxyzC0ycbiYAe8i2d+h3yCnaUGvOXUZ3o\nYyShAtprUqL9OlCIXg/xdajax4yR8cOJGXooDJRFsa+LqqaNtCA6h2yNERRn\nRWIP\r\n=7Hyl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDJ8qXV7QMDyNMbamgleMww0IiRnMMfN6pX4OEQzW6cNAiA/04Hol8qBDnGIK/ffmePaPq0IEoopAi2LFlJcde3MJA=="}]},"maintainers":[{"name":"brendanatme","email":"registrations@brendanat.me"}],"_npmUser":{"name":"brendanatme","email":"registrations@brendanat.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-model_0.1.2_1600435621293_0.7175059766766363"},"_hasShrinkwrap":false},"0.1.3":{"name":"@brendanatme/redux-model","version":"0.1.3","description":"Max your Redux, scrap your boilerplate","main":"index.js","typings":"index.d.ts","repository":{"type":"git","url":"git+https://github.com/brendanatme/redux-model.git"},"license":"MIT","keywords":[],"scripts":{"build":"run-p build:*","build:main":"tsc -p tsconfig.json","fix":"run-s fix:*","fix:lint":"eslint src --ext .ts --fix","test":"run-s build test:*","test:lint":"eslint src --ext .ts","test:spelling":"cspell \"{README.md,.github/*.md,src/**/*.ts}\"","test:unit":"nyc --silent ava","check-cli":"run-s test diff-integration-tests check-integration-tests","check-integration-tests":"run-s check-integration-test:*","diff-integration-tests":"mkdir -p diff && rm -rf diff/test && cp -r test diff/test && rm -rf diff/test/test-*/.git && cd diff && git init --quiet && git add -A && git commit --quiet --no-verify --allow-empty -m 'WIP' && echo '\\n\\nCommitted most recent integration test output in the \"diff\" directory. Review the changes with \"cd diff && git diff HEAD\" or your preferred git diff viewer.'","watch:build":"tsc -p tsconfig.json -w","watch:test":"nyc --silent ava --watch","cov":"run-s build test:unit cov:html cov:lcov && open-cli coverage/index.html","cov:html":"nyc report --reporter=html","cov:lcov":"nyc report --reporter=lcov","cov:send":"run-s cov:lcov && codecov","cov:check":"nyc report && nyc check-coverage --lines 90 --functions 90 --branches 90","doc":"run-s doc:html && open-cli dist/docs/index.html","doc:html":"typedoc src/ --exclude **/*.spec.ts --target ES6 --mode file --out dist/docs","doc:json":"typedoc src/ --exclude **/*.spec.ts --target ES6 --mode file --json dist/docs/typedoc.json","doc:publish":"gh-pages -m \"[ci skip] Updates\" -d dist/docs","reset-hard":"git clean -dfx && git reset --hard && npm i","prepare-release":"run-s reset-hard test cov:check doc:html doc:publish","release":"node scripts/release.js"},"engines":{"node":">=10"},"dependencies":{"reselect":"^4.0.0"},"peerDependencies":{"redux":"^4.0.5","redux-thunk":"^2.3.0"},"devDependencies":{"@ava/typescript":"^1.1.1","@istanbuljs/nyc-config-typescript":"^1.0.1","@typescript-eslint/eslint-plugin":"^4.0.1","@typescript-eslint/parser":"^4.0.1","ava":"^3.12.1","codecov":"^3.5.0","cspell":"^4.1.0","cz-conventional-changelog":"^3.3.0","eslint":"^7.8.0","eslint-config-prettier":"^6.11.0","eslint-plugin-eslint-comments":"^3.2.0","eslint-plugin-functional":"^3.0.2","eslint-plugin-import":"^2.22.0","gh-pages":"^3.1.0","npm-run-all":"^4.1.5","nyc":"^15.1.0","open-cli":"^6.0.1","redux":"^4.0.5","redux-thunk":"^2.3.0","ts-node":"^9.0.0","typedoc":"^0.19.0","typescript":"^4.0.2"},"ava":{"failFast":true,"timeout":"60s","typescript":{"rewritePaths":{"src/":"dist/"}},"files":["**/*.spec.ts"]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"nyc":{"extends":"@istanbuljs/nyc-config-typescript","exclude":["**/*.spec.js"]},"bugs":{"url":"https://github.com/brendanatme/redux-model/issues"},"homepage":"https://github.com/brendanatme/redux-model#readme","_id":"@brendanatme/redux-model@0.1.3","_nodeVersion":"12.18.2","_npmVersion":"6.14.5","dist":{"integrity":"sha512-rEnODaI6CyIovT7ZoM4ZuS2MlJwF6izwKNgwIaeEfuOwOEIpzToKEf9zx25cHouutIs+XRAxLdSyVMrKIqaYcw==","shasum":"605641721cbc7da8efbd4404b66530d50ca3a4bf","tarball":"https://registry.npmjs.org/@brendanatme/redux-model/-/redux-model-0.1.3.tgz","fileCount":12,"unpackedSize":26299,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfZLZHCRA9TVsSAnZWagAARv0P/3jw6pu5MB5xor+iZ3MN\nixfPvwGY5E7kgDP07H7DubvtV4+Vbjiac5U1/0QJI+tZ0QuIijN4Q2OZq2ki\n162VqSiD8Y31qmBUP5c5nAXVKUc3Vzmrd+YQkHDicdgqiqYLYASb6G6Iuo/8\nzQ76PAiLk5kbohBiLu1hK3Pe2iUJRj7onzJz9wZ0MeZunocCEpgeflOI4D0Z\n7mbiVgsARwCaMLY53mOEO0LhsnSCX80gD4l/Oprm8wzt2JNARMHiIPwuo2/2\nWC8/rI+V8LFEW+51xnJJfOB4FdyKufoIs/J2IHr758Y34DCl5xsqQCrFuKws\nXk6o3BopWAPMcHn3BD+XgIiKv3bNkRE+KzdE/HRIw7mexhLDIzYeEUkesoLg\nQ2I8nSIHWPIDD+ryKCAqHQQtJoay4HI23mFJtnku4PPTbMYWHBWVseBD6yW+\nW0bTkkgEpzvfxtkt+MRhz/OLsNL22xRLPWnkHIC1k9zrCRaNi3el9seKIAFb\nqIY80ea+W+rRGnlItqounGl82PXxODbcXYlkXvN88EWFzc+GAmczVpne5GYR\nA+ZwUAFrUB9ODk/e5BLBgYen5WCbqCIYCz4B/NTanmjZlQTQ43GsjPjjy3I6\nr9KP9+fjtJp9ujr+EK53eCBurhl3+x19IWGnjDY/sweA+UpgGIM6TM//gkm8\nbfMe\r\n=JP7/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC0Eu9taXAyzjuDlJRUGhq/V26ZeeU0w94//trVwufu7wIgM/I4oJr1tCOQ53Z0KvYZycA64JtDT9PM/6U1XKZLVqQ="}]},"maintainers":[{"name":"brendanatme","email":"registrations@brendanat.me"}],"_npmUser":{"name":"brendanatme","email":"registrations@brendanat.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-model_0.1.3_1600435783320_0.20981186189846857"},"_hasShrinkwrap":false},"0.2.0":{"name":"@brendanatme/redux-model","version":"0.2.0","description":"Max your Redux, scrap your boilerplate","main":"index.js","typings":"index.d.ts","repository":{"type":"git","url":"git+https://github.com/brendanatme/redux-model.git"},"license":"MIT","keywords":[],"scripts":{"build":"run-p build:*","build:main":"tsc -p tsconfig.json","fix":"run-s fix:*","fix:lint":"eslint src --ext .ts --fix","test":"run-s build test:*","test:lint":"eslint src --ext .ts","test:spelling":"cspell \"{README.md,.github/*.md,src/**/*.ts}\"","test:unit":"nyc --silent ava","check-cli":"run-s test diff-integration-tests check-integration-tests","check-integration-tests":"run-s check-integration-test:*","diff-integration-tests":"mkdir -p diff && rm -rf diff/test && cp -r test diff/test && rm -rf diff/test/test-*/.git && cd diff && git init --quiet && git add -A && git commit --quiet --no-verify --allow-empty -m 'WIP' && echo '\\n\\nCommitted most recent integration test output in the \"diff\" directory. Review the changes with \"cd diff && git diff HEAD\" or your preferred git diff viewer.'","watch:build":"tsc -p tsconfig.json -w","watch:test":"nyc --silent ava --watch","cov":"run-s build test:unit cov:html cov:lcov && open-cli coverage/index.html","cov:html":"nyc report --reporter=html","cov:lcov":"nyc report --reporter=lcov","cov:send":"run-s cov:lcov && codecov","cov:check":"nyc report && nyc check-coverage --lines 90 --functions 90 --branches 90","doc":"run-s doc:html && open-cli dist/docs/index.html","doc:html":"typedoc src/ --exclude **/*.spec.ts --target ES6 --mode file --out dist/docs","doc:json":"typedoc src/ --exclude **/*.spec.ts --target ES6 --mode file --json dist/docs/typedoc.json","doc:publish":"gh-pages -m \"[ci skip] Updates\" -d dist/docs","reset-hard":"git clean -dfx && git reset --hard && npm i","prepare-release":"run-s reset-hard test cov:check doc:html doc:publish","release":"node scripts/release.js"},"engines":{"node":">=10"},"dependencies":{"@types/react-redux":"^7.1.9","react-redux":"^7.2.1","reselect":"^4.0.0"},"peerDependencies":{"react":"^16.13.1","react-dom":"^16.13.1","redux":"^4.0.5","redux-thunk":"^2.3.0"},"devDependencies":{"@ava/typescript":"^1.1.1","@istanbuljs/nyc-config-typescript":"^1.0.1","@typescript-eslint/eslint-plugin":"^4.0.1","@typescript-eslint/parser":"^4.0.1","ava":"^3.12.1","codecov":"^3.5.0","cspell":"^4.1.0","cz-conventional-changelog":"^3.3.0","eslint":"^7.8.0","eslint-config-prettier":"^6.11.0","eslint-plugin-eslint-comments":"^3.2.0","eslint-plugin-functional":"^3.0.2","eslint-plugin-import":"^2.22.0","gh-pages":"^3.1.0","npm-run-all":"^4.1.5","nyc":"^15.1.0","open-cli":"^6.0.1","react":"^16.13.1","react-dom":"^16.13.1","redux":"^4.0.5","redux-thunk":"^2.3.0","ts-node":"^9.0.0","typedoc":"^0.19.0","typescript":"^4.0.2"},"ava":{"failFast":true,"timeout":"60s","typescript":{"rewritePaths":{"src/":"dist/"}},"files":["**/*.spec.ts"]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"nyc":{"extends":"@istanbuljs/nyc-config-typescript","exclude":["**/*.spec.js"]},"bugs":{"url":"https://github.com/brendanatme/redux-model/issues"},"homepage":"https://github.com/brendanatme/redux-model#readme","_id":"@brendanatme/redux-model@0.2.0","_nodeVersion":"12.18.2","_npmVersion":"6.14.5","dist":{"integrity":"sha512-QWqcwbdQn+o2dcSPVba4oOuYWybprSL0Y0+IoBSrVGMDf4dTR9twQsPaFJcpNjXLLRgnRKFKRAqjHN6BCgohJA==","shasum":"395bdf42fffe7fea5496307b75997eb9a83a0bf5","tarball":"https://registry.npmjs.org/@brendanatme/redux-model/-/redux-model-0.2.0.tgz","fileCount":14,"unpackedSize":29993,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfZNKvCRA9TVsSAnZWagAABAUP/13ZZ9nsy02w2RO6sqIW\nJg3z/tonNQ0LOiyD5UXVzDGslFHx/RAclsVXVB/7h3yVtpOC+rq0b+9cz13j\nx6f9WwdQg43Vk5BL//oaPAN1e5McRrgy9LRdBxbzAttTb4fH/XfRQ33ewBla\nlIvLfyzAybjq0HXuMf49TncDSwvoxCMq4dj51j+alOUQZZ9+M61hyVwscupy\nyxPHWRi9SZROkVMYtX6DhOrkqv+11/6oI78oEEoaYudyNy8c3qnZTBn+2AXm\nHjQMFPGH5U1EGGuKVmbXcx6Lsx83oaqeR62LEZXhg6cgmAFOL9Yc9pMdSkOX\nNb32rPjX+wLj8gk9QoVB45IgCQwYK4AE2bj8jdwMkl3SpHfQ7Cbt8jY3TuAF\nW1elrO1N6BNv4xTXUkhHM5gy3i3I85+zb/EaR+2uhsPQgy2OtSqoBZ/sX5dD\nu6XM+x87lC8QwuY5RO4cpVf+Za35hVvanxp8E3QXmUJSH85c9Ic0lqEmh7rv\nuQk1WGrExuYZaaZ7W7yYjn9O3zWq7NTJl8bQtGYh2dHYfFlqOKylXwlb3eIQ\nS6bYp1jXl+7Wwbctr5akcS7UrZPABQqeYs3yxqW/mXmj4Df56U0ktOd0LbBS\n778RTG738eyeRS/RXNWd3r4abCGN1Wrlcebf2uC3OHRtUZGmln0iVqvUZqZf\nL9t4\r\n=WNoL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHHbahvxNLarZdbKZPx2k2JpZbsNw31PJKdtb4Yr17plAiAxmt21YXjhMf4ZNXn/tTGwzHVqRY7vvvdhY26ayNcrdQ=="}]},"maintainers":[{"name":"brendanatme","email":"registrations@brendanat.me"}],"_npmUser":{"name":"brendanatme","email":"registrations@brendanat.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-model_0.2.0_1600443055109_0.4828789967183944"},"_hasShrinkwrap":false},"0.2.1":{"name":"@brendanatme/redux-model","version":"0.2.1","description":"Max your Redux, scrap your boilerplate","main":"index.js","typings":"index.d.ts","repository":{"type":"git","url":"git+https://github.com/brendanatme/redux-model.git"},"license":"MIT","keywords":[],"scripts":{"build":"run-p build:*","build:main":"tsc -p tsconfig.json","fix":"run-s fix:*","fix:lint":"eslint src --ext .ts --fix","test":"run-s build test:*","test:lint":"eslint src --ext .ts","test:spelling":"cspell \"{README.md,.github/*.md,src/**/*.ts}\"","test:unit":"nyc --silent ava","check-cli":"run-s test diff-integration-tests check-integration-tests","check-integration-tests":"run-s check-integration-test:*","diff-integration-tests":"mkdir -p diff && rm -rf diff/test && cp -r test diff/test && rm -rf diff/test/test-*/.git && cd diff && git init --quiet && git add -A && git commit --quiet --no-verify --allow-empty -m 'WIP' && echo '\\n\\nCommitted most recent integration test output in the \"diff\" directory. Review the changes with \"cd diff && git diff HEAD\" or your preferred git diff viewer.'","watch:build":"tsc -p tsconfig.json -w","watch:test":"nyc --silent ava --watch","cov":"run-s build test:unit cov:html cov:lcov && open-cli coverage/index.html","cov:html":"nyc report --reporter=html","cov:lcov":"nyc report --reporter=lcov","cov:send":"run-s cov:lcov && codecov","cov:check":"nyc report && nyc check-coverage --lines 90 --functions 90 --branches 90","doc":"run-s doc:html && open-cli dist/docs/index.html","doc:html":"typedoc src/ --exclude **/*.spec.ts --target ES6 --mode file --out dist/docs","doc:json":"typedoc src/ --exclude **/*.spec.ts --target ES6 --mode file --json dist/docs/typedoc.json","doc:publish":"gh-pages -m \"[ci skip] Updates\" -d dist/docs","reset-hard":"git clean -dfx && git reset --hard && npm i","prepare-release":"run-s reset-hard test cov:check doc:html doc:publish","release":"node scripts/release.js"},"engines":{"node":">=10"},"dependencies":{"@types/react-redux":"^7.1.9","react-redux":"^7.2.1","reselect":"^4.0.0"},"peerDependencies":{"react":"^16.13.1","react-dom":"^16.13.1","redux":"^4.0.5","redux-thunk":"^2.3.0"},"devDependencies":{"@ava/typescript":"^1.1.1","@istanbuljs/nyc-config-typescript":"^1.0.1","@typescript-eslint/eslint-plugin":"^4.0.1","@typescript-eslint/parser":"^4.0.1","ava":"^3.12.1","codecov":"^3.5.0","cspell":"^4.1.0","cz-conventional-changelog":"^3.3.0","eslint":"^7.8.0","eslint-config-prettier":"^6.11.0","eslint-plugin-eslint-comments":"^3.2.0","eslint-plugin-functional":"^3.0.2","eslint-plugin-import":"^2.22.0","gh-pages":"^3.1.0","npm-run-all":"^4.1.5","nyc":"^15.1.0","open-cli":"^6.0.1","react":"^16.13.1","react-dom":"^16.13.1","redux":"^4.0.5","redux-thunk":"^2.3.0","ts-node":"^9.0.0","typedoc":"^0.19.0","typescript":"^4.0.2"},"ava":{"failFast":true,"timeout":"60s","typescript":{"rewritePaths":{"src/":"dist/"}},"files":["**/*.spec.ts"]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"nyc":{"extends":"@istanbuljs/nyc-config-typescript","exclude":["**/*.spec.js"]},"bugs":{"url":"https://github.com/brendanatme/redux-model/issues"},"homepage":"https://github.com/brendanatme/redux-model#readme","_id":"@brendanatme/redux-model@0.2.1","_nodeVersion":"12.18.2","_npmVersion":"6.14.5","dist":{"integrity":"sha512-3PtI1TEctPvtIsUdBtWjJpIXX29DA3mTY2SWkHFg7/txFNIyy19IR0HMbptwogAoveqEXHRo93LJ0/smuSDv5w==","shasum":"138c84042dffa67a1d931ee1be6fd68976413687","tarball":"https://registry.npmjs.org/@brendanatme/redux-model/-/redux-model-0.2.1.tgz","fileCount":14,"unpackedSize":30324,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfbqQ2CRA9TVsSAnZWagAAAtIP/jT2jdaYPwUPb42eL9Py\n/425U9uAONIsW5P4SgS0k0PY0Ml2EGjtUwWpmNKH603bfjdGgyfTAMvgb6l5\nZxCfIPVCXrkFMbWj3WC+/rqgP//3/OjdG61JlkgV9/iqCOxYpbpCrjYXUtq4\nHdP0A7NrujajJIyWusBnZHxBG4Wg6gR0upsqCg/IgoDJlwIkFbS3CI8VNzyp\n1CDgM8gAYQ3H3SJkY6elDwVF27eb2iHyQN5Ego3gotSGBkQaLglLu+becSr6\n5x0BFV8jFOgRn5Tyg0zrWyhSvlgmNlPgxF0cZrPFMP8TxRkiCwoxJSywb6OX\n7GWu2YIlSYVKFGZnSzYA6lFhbFucWySCfZUbVjTOBI5hJkeEJyjdqDnS9+vR\nxigGvi3nVNZ5UfMeB7/5KGuSAJrWRp8FrJgboWYiuUYk7cLizUvATgmOijyT\ncow0BOyHv5FKJb83vjFj7b8TjankYQp+2dnCJMFVlocAzMmmvZSSIY9/QiDa\nKLaLLBctfwMe9q3U7F2cZyKe5r5Loauug6oUVaNnTZ8X0lbcwhDHwz0z3vtT\nHoFZe32I9SU+uVWnrhLiduy9zf1nk9ynfe5tf4OO9LvO7Q1TyVp66q7hO8dA\ncckzydizkrMwbP5vdhs1jV1wecAsKp7pZn6AmDRWnle1VEwn4KgxkX4q1ZVR\nMhyk\r\n=gYDO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDeDLZ2VAikX/JlzEAF/k20zWi9BtFJEVBjcJjX9w/00AiEAmiwhLIuBMFTMoZRSAQx/FZs39hTXZfMEQUCAARsPD04="}]},"maintainers":[{"name":"brendanatme","email":"registrations@brendanat.me"}],"_npmUser":{"name":"brendanatme","email":"registrations@brendanat.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-model_0.2.1_1601086517461_0.52121394833285"},"_hasShrinkwrap":false},"0.3.0":{"name":"@brendanatme/redux-model","version":"0.3.0","description":"Max your Redux, scrap your boilerplate","main":"index.js","typings":"index.d.ts","repository":{"type":"git","url":"git+https://github.com/brendanatme/redux-model.git"},"license":"MIT","keywords":[],"scripts":{"build":"run-p build:*","build:main":"tsc -p tsconfig.json","fix":"run-s fix:*","fix:lint":"eslint src --ext .ts --fix","test":"run-s build test:*","test:lint":"eslint src --ext .ts","test:spelling":"cspell \"{README.md,.github/*.md,src/**/*.ts}\"","test:unit":"nyc --silent ava","check-cli":"run-s test diff-integration-tests check-integration-tests","check-integration-tests":"run-s check-integration-test:*","diff-integration-tests":"mkdir -p diff && rm -rf diff/test && cp -r test diff/test && rm -rf diff/test/test-*/.git && cd diff && git init --quiet && git add -A && git commit --quiet --no-verify --allow-empty -m 'WIP' && echo '\\n\\nCommitted most recent integration test output in the \"diff\" directory. Review the changes with \"cd diff && git diff HEAD\" or your preferred git diff viewer.'","watch:build":"tsc -p tsconfig.json -w","watch:test":"nyc --silent ava --watch","cov":"run-s build test:unit cov:html cov:lcov && open-cli coverage/index.html","cov:html":"nyc report --reporter=html","cov:lcov":"nyc report --reporter=lcov","cov:send":"run-s cov:lcov && codecov","cov:check":"nyc report && nyc check-coverage --lines 90 --functions 90 --branches 90","doc":"run-s doc:html && open-cli dist/docs/index.html","doc:html":"typedoc src/ --exclude **/*.spec.ts --target ES6 --mode file --out dist/docs","doc:json":"typedoc src/ --exclude **/*.spec.ts --target ES6 --mode file --json dist/docs/typedoc.json","doc:publish":"gh-pages -m \"[ci skip] Updates\" -d dist/docs","reset-hard":"git clean -dfx && git reset --hard && npm i","prepare-release":"run-s reset-hard test cov:check doc:html doc:publish","release":"node scripts/release.js"},"engines":{"node":">=10"},"dependencies":{"@types/react-redux":"^7.1.9","react-redux":"^7.2.1","redux-devtools-extension":"^2.13.8","reselect":"^4.0.0"},"peerDependencies":{"react":"^16.13.1","react-dom":"^16.13.1","redux":"^4.0.5"},"devDependencies":{"@ava/typescript":"^1.1.1","@istanbuljs/nyc-config-typescript":"^1.0.1","@typescript-eslint/eslint-plugin":"^4.0.1","@typescript-eslint/parser":"^4.0.1","ava":"^3.12.1","codecov":"^3.5.0","cspell":"^4.1.0","cz-conventional-changelog":"^3.3.0","eslint":"^7.8.0","eslint-config-prettier":"^6.11.0","eslint-plugin-eslint-comments":"^3.2.0","eslint-plugin-functional":"^3.0.2","eslint-plugin-import":"^2.22.0","gh-pages":"^3.1.0","npm-run-all":"^4.1.5","nyc":"^15.1.0","open-cli":"^6.0.1","react":"^16.13.1","react-dom":"^16.13.1","redux":"^4.0.5","redux-thunk":"^2.3.0","ts-node":"^9.0.0","typedoc":"^0.19.0","typescript":"^4.0.2"},"ava":{"failFast":true,"timeout":"60s","typescript":{"rewritePaths":{"src/":"dist/"}},"files":["**/*.spec.ts"]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"nyc":{"extends":"@istanbuljs/nyc-config-typescript","exclude":["**/*.spec.js"]},"bugs":{"url":"https://github.com/brendanatme/redux-model/issues"},"homepage":"https://github.com/brendanatme/redux-model#readme","_id":"@brendanatme/redux-model@0.3.0","_nodeVersion":"12.18.2","_npmVersion":"6.14.5","dist":{"integrity":"sha512-+mFdbZEg91eR1WTIhjvTelm+fOcYCNsGQ0Cwe3+kBKi+TH6TkEEtxN+C7vAlwCjLNwapzSPEuQ9VoqQvbpkorA==","shasum":"dd8b1f26703ab106707ddb7af41bc420c242e5ad","tarball":"https://registry.npmjs.org/@brendanatme/redux-model/-/redux-model-0.3.0.tgz","fileCount":16,"unpackedSize":33662,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfdVefCRA9TVsSAnZWagAAN/oP/2luweg2dNJg6FYYmAUs\nkdX3ypl674rY7czy1SYn/KtmjZV1t6QBa4fed8pD6ZaJ0yF6Uf03vCDxcz3x\nhD1Ht+a/a+bSG2vmAJfsgHHA3784x7y9tlN93445jNLY7lYW0NeF0UPR+Ok0\nJa7Y3HRtlM4kefffE7GLMoWiVz5Y1kwa2P0PaHRZrSGVW4Qw6CcOqsE8KSEO\n+XyfMK/nidlLvWiR//nkvPGsXNJtWEytm58pIPFnxm8imyZMw1kZcA7bPutq\nqebodSaHigrCN4mvwMuhRrxVRGezAoPDWHU9KCauQw14zHGODe4a1EcIa420\nXMX7McoCsU4wQedc/CpnWDeELqCRksxluH9mOXbg67Ww3RV3zcrkDv0n1Tmg\neEXSDbih4eL0Oi5R8g8oIFs0CcOVPsGRRCN1CoZp2hCEVZiiYgjz9pc4KWv1\nIC+0YdAGF2p9ksHa2UvxwDHKRBORj7nYyg+MxPFmbhNnwuqJQFZ7AQVz57JF\n26LOGaliKFUpQRsJXogb4uW2n9sa8asfCE6B8b1N1MbrV4y5Fb4WITqV1PLy\nqowqTlGtjRda+xrvj6OtS8YFhprIF5qfXlonitTdLuTS/JkclkCaI83+gLdD\nmq411J/Hmaj8+lFmuLQ7TcI5gJ6iCE+DJtoEwQmuoHALpJ6PGGIuSCIzxqgu\nEJBN\r\n=hX/o\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEskBcga6TgP3zv6NmZidgIBHfuC7sEFU8yvHHZHQ2zdAiAP+/XuiQKEjcF6XLDOaLiyFk3LFm0NMG6GO7nfQyoYMg=="}]},"maintainers":[{"name":"brendanatme","email":"registrations@brendanat.me"}],"_npmUser":{"name":"brendanatme","email":"registrations@brendanat.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-model_0.3.0_1601525663111_0.15002046360043897"},"_hasShrinkwrap":false},"1.0.0":{"name":"@brendanatme/redux-model","version":"1.0.0","description":"Max your Redux, scrap your boilerplate","main":"index.js","typings":"index.d.ts","repository":{"type":"git","url":"git+https://github.com/brendanatme/redux-model.git"},"license":"MIT","keywords":[],"scripts":{"build":"run-p build:*","build:main":"tsc -p tsconfig.json","fix":"run-s fix:*","fix:lint":"eslint src --ext .ts --fix","test":"run-s build test:*","test:lint":"eslint src --ext .ts","test:spelling":"cspell \"{README.md,.github/*.md,src/**/*.ts}\"","test:unit":"nyc --silent ava","check-cli":"run-s test diff-integration-tests check-integration-tests","check-integration-tests":"run-s check-integration-test:*","diff-integration-tests":"mkdir -p diff && rm -rf diff/test && cp -r test diff/test && rm -rf diff/test/test-*/.git && cd diff && git init --quiet && git add -A && git commit --quiet --no-verify --allow-empty -m 'WIP' && echo '\\n\\nCommitted most recent integration test output in the \"diff\" directory. Review the changes with \"cd diff && git diff HEAD\" or your preferred git diff viewer.'","watch:build":"tsc -p tsconfig.json -w","watch:test":"nyc --silent ava --watch","cov":"run-s build test:unit cov:html cov:lcov && open-cli coverage/index.html","cov:html":"nyc report --reporter=html","cov:lcov":"nyc report --reporter=lcov","cov:send":"run-s cov:lcov && codecov","cov:check":"nyc report && nyc check-coverage --lines 90 --functions 90 --branches 90","doc":"run-s doc:html && open-cli dist/docs/index.html","doc:html":"typedoc src/ --exclude **/*.spec.ts --out dist/docs","doc:json":"typedoc src/ --exclude **/*.spec.ts --json dist/docs/typedoc.json","doc:publish":"gh-pages -m \"[ci skip] Updates\" -d dist/docs","reset-hard":"git clean -dfx && git reset --hard && npm i","prepare-release":"run-s reset-hard test cov:check doc:html doc:publish","release":"node scripts/release.js"},"engines":{"node":">=12"},"dependencies":{"react-redux":"^7.2.1","redux-devtools-extension":"^2.13.8","reselect":"^4.0.0"},"peerDependencies":{"react":"^16.13.1","react-dom":"^16.13.1","redux":"^4.0.5"},"devDependencies":{"@ava/typescript":"^1.1.1","@istanbuljs/nyc-config-typescript":"^1.0.1","@types/react-redux":"^7.1.17","@typescript-eslint/eslint-plugin":"^4.0.1","@typescript-eslint/parser":"^4.0.1","ava":"^3.12.1","codecov":"^3.5.0","cspell":"^4.1.0","cz-conventional-changelog":"^3.3.0","eslint":"^7.8.0","eslint-config-prettier":"^6.11.0","eslint-plugin-eslint-comments":"^3.2.0","eslint-plugin-functional":"^3.0.2","eslint-plugin-import":"^2.22.0","gh-pages":"^3.2.3","npm-run-all":"^4.1.5","nyc":"^15.1.0","open-cli":"^6.0.1","react":"^16.13.1","react-dom":"^16.13.1","redux":"^4.0.5","redux-thunk":"^2.3.0","ts-node":"^9.0.0","typedoc":"^0.21.2","typescript":"^4.0.2"},"ava":{"failFast":true,"timeout":"60s","typescript":{"rewritePaths":{"src/":"dist/"}},"files":["**/*.spec.ts"]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"nyc":{"extends":"@istanbuljs/nyc-config-typescript","exclude":["**/*.spec.js"]},"bugs":{"url":"https://github.com/brendanatme/redux-model/issues"},"homepage":"https://github.com/brendanatme/redux-model#readme","_id":"@brendanatme/redux-model@1.0.0","_nodeVersion":"12.22.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-uCdt3RYLRlWpkotDVsqUlXUn3lxGzjZH0etjdAdpQ7o91vsemYd4NzSwQz5pJQbzlJFddkcCOdknzgIDIbYAbg==","shasum":"a57db27bb4346a78f1b54ea7ea701506569f8f21","tarball":"https://registry.npmjs.org/@brendanatme/redux-model/-/redux-model-1.0.0.tgz","fileCount":16,"unpackedSize":39618,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg5mPQCRA9TVsSAnZWagAATMIP/iNFNopPtm76HTRTj9E/\nS+FMPHMwIl+iZzNQwGnevRr+gnu9IjI2wsGH1k46L4WKL+12PW+HtDEm9EOJ\ntTD0GwjiD091BfbZdQHZQDLQKOHnJyoIvpH6+dZg5zdhp2jSZeZmhqBs7VUZ\nDeHmEyomDRwPuMHtOqcLFiXaLNT4RgYWiqrSZl/QHQG0DlbH1RIYtHogOQEW\nIDI8aYELYShFDrLNwaG+etjiElXMRK5zdjbvluaddW4UectJwZZFOqnPXF9L\nOLhHJjIslcKfSuHUdsZyHBeaCbqyPRzAepvtoM7sLkp8gu6iF+zeV4Wujwzj\njEMMv9GcxcXMDEvbyImnkJheqhzqQjjOhK9OnmDFaWk6O9l3gt4qdWghYkmm\nE6cGnXs510Hl/75G34dtJaZEAFc5l0Ub/y/ltVmB0ATzz0vXkwE7o70LmxgN\n386lnWbt6H3ruaTSpVDCZr4GVF7mp+piFIojx14b9AlqHEH6HKZQTDHLKxHO\niZebSYGmZ3v4L12+Qb5hiQhVah6P2G3L19FfE37wLN3mxTL7twNVbnomluXP\nQBRpAz632zR8vi2sOWTY6JJxu/6Ukws+oZ5GbEVzno9/6LMrM/WRwgg5PB/y\ndWlKgoEOZGtj5ULJU+cxCr+xvAS93345bHXtEgnWc3HQVAvoOTwlYVHe0HPH\nRf+J\r\n=tDU/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCCf4i6Jgau+fVIVT7hGMm5L1x1tXLl9Oh1wnvqD64J7AIgb031J1qtZUA+ufQmRYAqaxYAdpEud5Ipeqcb0ELzgZw="}]},"_npmUser":{"name":"brendanatme","email":"registrations@brendanat.me"},"directories":{},"maintainers":[{"name":"brendanatme","email":"registrations@brendanat.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-model_1.0.0_1625711568046_0.965538407687893"},"_hasShrinkwrap":false},"2.0.0":{"name":"@brendanatme/redux-model","version":"2.0.0","description":"Max your Redux, scrap your boilerplate","main":"index.js","typings":"index.d.ts","repository":{"type":"git","url":"git+https://github.com/brendanatme/redux-model.git"},"license":"MIT","keywords":[],"scripts":{"build":"run-p build:*","build:main":"tsc -p tsconfig.json","fix":"run-s fix:*","fix:lint":"eslint src --ext .ts --fix","test":"run-s build test:*","test:lint":"eslint src --ext .ts","test:spelling":"cspell \"{README.md,.github/*.md,src/**/*.ts}\"","test:unit":"nyc --silent ava","check-cli":"run-s test diff-integration-tests check-integration-tests","check-integration-tests":"run-s check-integration-test:*","diff-integration-tests":"mkdir -p diff && rm -rf diff/test && cp -r test diff/test && rm -rf diff/test/test-*/.git && cd diff && git init --quiet && git add -A && git commit --quiet --no-verify --allow-empty -m 'WIP' && echo '\\n\\nCommitted most recent integration test output in the \"diff\" directory. Review the changes with \"cd diff && git diff HEAD\" or your preferred git diff viewer.'","watch:build":"tsc -p tsconfig.json -w","watch:test":"nyc --silent ava --watch","cov":"run-s build test:unit cov:html cov:lcov && open-cli coverage/index.html","cov:html":"nyc report --reporter=html","cov:lcov":"nyc report --reporter=lcov","cov:send":"run-s cov:lcov && codecov","cov:check":"nyc report && nyc check-coverage --lines 90 --functions 90 --branches 90","doc":"run-s doc:html && open-cli dist/docs/index.html","doc:html":"typedoc src/ --exclude **/*.spec.ts --out dist/docs","doc:json":"typedoc src/ --exclude **/*.spec.ts --json dist/docs/typedoc.json","doc:publish":"gh-pages -m \"[ci skip] Updates\" -d dist/docs","reset-hard":"git clean -dfx && git reset --hard && npm i","prepare-release":"run-s reset-hard test cov:check doc:html doc:publish","release":"node scripts/release.js"},"engines":{"node":">=12"},"dependencies":{},"peerDependencies":{"redux":"^4.1.0","redux-devtools-extension":"^2.13.9","redux-thunk":"^2.3.0","reselect":"^4.0.0"},"devDependencies":{"@ava/typescript":"^1.1.1","@istanbuljs/nyc-config-typescript":"^1.0.1","@typescript-eslint/eslint-plugin":"^4.0.1","@typescript-eslint/parser":"^4.0.1","ava":"^3.12.1","codecov":"^3.5.0","cspell":"^4.1.0","cz-conventional-changelog":"^3.3.0","eslint":"^7.8.0","eslint-config-prettier":"^6.11.0","eslint-plugin-eslint-comments":"^3.2.0","eslint-plugin-functional":"^3.0.2","eslint-plugin-import":"^2.22.0","gh-pages":"^3.2.3","npm-run-all":"^4.1.5","nyc":"^15.1.0","open-cli":"^6.0.1","redux":"^4.1.0","redux-devtools-extension":"^2.13.9","redux-thunk":"^2.3.0","reselect":"^4.0.0","ts-node":"^9.0.0","typedoc":"^0.21.2","typescript":"^4.0.2"},"ava":{"failFast":true,"timeout":"60s","typescript":{"rewritePaths":{"src/":"dist/"}},"files":["**/*.spec.ts"]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"nyc":{"extends":"@istanbuljs/nyc-config-typescript","exclude":["**/*.spec.js"]},"bugs":{"url":"https://github.com/brendanatme/redux-model/issues"},"homepage":"https://github.com/brendanatme/redux-model#readme","_id":"@brendanatme/redux-model@2.0.0","_nodeVersion":"12.22.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-gSj37gqwxImt/MMxqRdRhOVh+CU6BLjgEKy4POBDOqeOdQet40/e7/iDR5U9Koyn1FLaVJphIg5hEqRWKknBQQ==","shasum":"f8da1e80e356b1e7f5e90997cf3e9ab50173caae","tarball":"https://registry.npmjs.org/@brendanatme/redux-model/-/redux-model-2.0.0.tgz","fileCount":14,"unpackedSize":37186,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg5wXMCRA9TVsSAnZWagAADgYP/0NHBs6nvrDPyCG5hqQd\n58zV2AozH0lUVpbXgbxFVx+p2xK9MCQ7ybEKje3ibKGKxJ8aNvNEkLjBFVeR\nJcNT1ZxBbirZdlgQ8ExQFQnyWPGj4SY3KPtxv/wRzOBHFE681ZOGOsTh118f\nmfk+GfQLc/rC+enBJYldQYbHHTvNr1T4VmO3Lown3zOBuNUAYxKyTgPIx66A\nykdwy24n94Ybp4Ec3L5GoC3nFNc/Ngbt0As0XIJF2GaMJesfZDoZxyRdM27K\nPdHWQPa2OzPfWZec7JA/0GBx/OsA5ZSrFlMOgy3AKPfN2R7MTEf3kehVqRR0\nEZX+I3sS7RGV1npOSDP4QW4PKBCqEA3FHu6ej3Rioz/PxFUgf2TxYKF4eQIx\nD9ssnjwRcdXnvcC7ZQ9iQrPkHPFyPYYF35noX127SJYzc6cRfgq9872v0z9j\nbUQXozUdR68LGbekOH7grNDBcudE1cK4EDKOEVNQyFYKuXFf8oTzyqBAkYL0\nUO0GxqIi5GRdIJDaul254+mRV/BSrKhyb9RX2g8QmZ0COYD7SUVal7B1qP6o\nv/Lz9CMUWy6OECV5ine41Dbccn07r5nQ5Cwo+sY7CCVMlSbSKcV9QvsPKhgq\n6XlmwmctTe3cBDbX3faS/y6noLxGu78SO9Gyt03Y4i0lQA0iQgXtB8ZWrF9a\ntPnA\r\n=hyif\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGjUtfjKuQZCcfooOswQs5O6Vjs1u4CLpjW63MIJOvZQAiEA0oz5G4kZ6MppUahdfHH1M67KJTHmYMI4LboFz2PH27Y="}]},"_npmUser":{"name":"brendanatme","email":"registrations@brendanat.me"},"directories":{},"maintainers":[{"name":"brendanatme","email":"registrations@brendanat.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-model_2.0.0_1625753036124_0.7992289835185984"},"_hasShrinkwrap":false}},"time":{"created":"2020-09-18T02:37:11.055Z","0.1.0":"2020-09-18T02:37:11.193Z","modified":"2022-04-04T20:30:49.929Z","0.1.1":"2020-09-18T13:16:56.924Z","0.1.2":"2020-09-18T13:27:01.838Z","0.1.3":"2020-09-18T13:29:43.430Z","0.2.0":"2020-09-18T15:30:55.270Z","0.2.1":"2020-09-26T02:15:17.576Z","0.3.0":"2020-10-01T04:14:23.288Z","1.0.0":"2021-07-08T02:32:48.237Z","2.0.0":"2021-07-08T14:03:56.258Z"},"maintainers":[{"name":"brendanatme","email":"registrations@brendanat.me"}],"description":"Max your Redux, scrap your boilerplate","homepage":"https://github.com/brendanatme/redux-model#readme","keywords":[],"repository":{"type":"git","url":"git+https://github.com/brendanatme/redux-model.git"},"bugs":{"url":"https://github.com/brendanatme/redux-model/issues"},"license":"MIT","readme":"# Redux-model\n\nMax your redux, scrap your boilerplate\n\nRedux-model is an opinionated layer built on top of Redux designed to cut out your boilerplate, encourage structure and best practices, and give powerful features from line zero. Throw out all those folders and files full of action types, action creators, selectors, effects, and reducers... and create simple models that do what you always want them to by default, while retaining all the flexibility of redux.\n\n## Installing\n\n```bash\n$ npm install --save @brendanatme/redux-model\n```\n\n## Usage\n\n```javascript\n// your model code\nimport { ReduxModel } from \"@brendanatme/redux-model\";\nimport * as api from \"../my-api\";\n\nconst productModel = new ReduxModel(\"products\");\n\n// define action creators as thunks or simple action creators\nproductModel.addAction(\"FetchById\", (id) => async (dispatch) => {\n  // leverage pre-existing built-in action creators\n  dispatch(productModel.actions.BeginFetch());\n\n  try {\n    const item = await api.get(`/products/${id}`);\n\n    // follow data-shape conventions to make your life easier,\n    // and your code more consistent and readable\n    dispatch(productModel.actions.FetchSuccess({ item }));\n  } catch (e) {\n    // redux-model gives you the tools that make following best-practices,\n    // like proper network status handling,\n    // quite trivial\n    dispatch(productModel.actions.FetchFailure());\n  }\n});\n\nexport default productModel;\n```\n\n```javascript\n// your redux store startup code\nimport { configureStore } from \"@brendanatme/redux-model\";\nimport productModel from \"../my/model/above\";\n\nconst initStore = configureStore(\n  {\n    [productModel.key]: productModel.reducer,\n  }\n  // {}, // (optional) initial state\n  // [], // (optional) redux middlewares\n);\n\n// call this function to initialize your store\nexport default initStore;\n```\n\n```javascript\n// your React component code\nimport React from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport productModel from \"../my/model/above\";\n\nexport default ({ id }) => {\n  const dispatch = useDispatch();\n\n  // use built-in selectors to access data consistently\n  // without needing to write or repeat procedural code\n  const product = useSelector(productModel.selectors.item);\n  const network = useSelector(productModel.selectors.network);\n\n  useEffect(() => {\n    dispatch(productModel.actions.FetchById(id));\n  }, [product]);\n\n  if (network.fetching) {\n    return <Loader />;\n  }\n\n  if (network.failed) {\n    return <Error />;\n  }\n\n  return <code>{JSON.stringify(product)}</code>;\n};\n```\n\n## Docs\n\n### Model-based approach\n\nModels contain a key, a reducer, action types, action creators, selectors, and connectors. To instantiate a model, you only need to provide the key:\n\n```javascript\nimport { ReduxModel } from \"@brendanatme/redux-model\";\n\nconst productModel = new ReduxModel(\"products\");\n```\n\nYou can optionally add your own reducers:\n\n```javascript\nimport { ReduxModel } from \"@brendanatme/redux-model\";\n\nconst productModel = new ReduxModel(\"products\", {\n  reducers: {\n    Foo: (state, action) => ({ ...state, ...action.payload }),\n  },\n});\n```\n\nYou can access action types associated with your created reducers:\n\n```javascript\nimport { ReduxModel } from \"@brendanatme/redux-model\";\n\nconst productModel = new ReduxModel(\"products\", {\n  reducers: {\n    Foo: (state, action) => ({ ...state, ...action.payload }),\n  },\n});\n\nconsole.log(productModel.ActionTypes.Foo); // --> 'products/Foo'\nconsole.log(productModel.ActionTypes.Bar); // --> undefined\n```\n\nYou can also add your own action creators; types will be created for those as well.\n\n```javascript\nimport { ReduxModel } from \"@brendanatme/redux-model\";\n\nconst productModel = new ReduxModel(\"products\", {\n  reducers: {\n    Foo: (state, action) => ({ ...state, ...action.payload }),\n  },\n});\n\nproductModel.addAction(\"Bar\", async (dispatch) => {\n  dispatch({ type: productModel.ActionTypes.Foo, payload: \"baz\" });\n});\n\nconsole.log(productModel.ActionTypes.Foo); // --> 'products/Foo'\nconsole.log(productModel.ActionTypes.Bar); // --> 'products/Bar'\n```\n\nNext, we'll talk about the out-of-the-box actions redux-model provides,\nand the default, opinionated way, it handles state.\n\n### Opinionated state handling\n\nRedux-model provides a number of actions to make commonplace tasks like fetching data and selecting items easy, consistent, and robust. Take fetching a resource, for example:\n\n```javascript\nimport { ReduxModel } from \"@brendanatme/redux-model\";\nimport * as api from \"../my-api\";\n\nconst productModel = new ReduxModel(\"products\");\n\nproductModel.addAction(\"FetchById\", (id) => async (dispatch) => {\n  // initiate the BeginFetch() action\n  // this sets our model's network state as such:\n  // state.network = { failed: false, fetched: false, fetching: true }\n  dispatch(productModel.actions.BeginFetch());\n\n  try {\n    const item = await api.get(`/products/${id}`);\n\n    // when we successfully receive a response,\n    // we can initiate the FetchSuccess() action\n    // to a) update our network state: state.network = { failed: false, fetched: true, fetching: false }\n    // and b) update our data state, using the 'item' key for a single resource or the 'items' key for an array\n    dispatch(productModel.actions.FetchSuccess({ item }));\n  } catch (e) {\n    // if our request fails,\n    // we can use the FetchFailure() built-in action creator\n    // to update our network state to:\n    // state.network = { failed: true, fetched: false, fetching: false }\n    dispatch(productModel.actions.FetchFailure());\n  }\n});\n\n// we now have access to the action type as well as the action creator:\nconsole.log(productModel.ActionTypes.FetchById); // --> 'products/FetchById'\nconsole.log(productModel.actions.FetchById); // --> function\n\n// usage:\ndispatch(productModel.actions.FetchById(\"f49wjto\"));\n```\n\n### Setting Model State\n\nThe best way to put data into your model state is by using the `FetchSuccess` method. This is because redux-model assumes you're loading your data from somewhere else, and so the `FetchSuccess` action will also automatically update your network status. The `FetchSuccess` method accepts an object for an argument with a key of `item`, or `items`, or both:\n\n```javascript\n// ...\n\ndispatch(productModel.actions.FetchSuccess({\n\n  // for a singular resource\n  item: {\n    foo: 'bar',\n  },\n\n  // for an array of items\n  items: [\n    { id: 'f5soghl24', name: 'Product A' },\n    { id: 'f5soghl25', name: 'Product B' },\n  ],\n\n});\n\n```\n\nSetting your data this way will give you easy access to it elsewhere with redux-model's built-in selectors, and will also give you added built-in functionality such as easily selecting an item from your array:\n\n```javascript\n// get all items\nconst items = useSelector(productModel.selectors.items);\n\n// ...\n\n// set the selectedItem (using an id from objects within the 'items' array)\ndispatch(productModel.actions.SelectItem(\"f5soghl25\"));\n\n// ...\n\n// access the 'selectedItem'\nconst selectedItem = useSelector(productModel.selectors.selectedItem);\n```\n\n### Escape Hatch\n\nIf you can't follow the convention, or just plain don't want to, you can use the `Update()` action creator as an escape hatch to set your state however you want:\n\n```javascript\n// ...\n\n// set a custom property\ndispatch(productModel.actions.Update({ foo: \"bar\" }));\n\n// ...\n\n// get the model's entire state\nconst { foo } = useSelector(productModel.selectors.state);\n```\n","readmeFilename":"README.md"}