{"_id":"redux-area","_rev":"42-714a208c586c0ee5499c78a38cb99847","name":"redux-area","dist-tags":{"latest":"0.5.1","next":"0.4.17","es5":"0.4.6"},"versions":{"0.0.1":{"name":"redux-area","version":"0.0.1","description":"simplified strongly typed redux","keywords":["redux","typescript"],"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"ISC","dependencies":{"immer":"^4.0.1","redux":"^4.0.4"},"gitHead":"39c555e8b2bd3cb70c131ba00374429c66cb67ff","_id":"redux-area@0.0.1","_nodeVersion":"12.1.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-KDKo0/5UFy1pNb0hSKG6gcO9gvcPxokR5WksnJPWeuUGATO38n5l7F2adukm5eYCwWufen6i3bp8SFx24rDtCw==","shasum":"1d1e804c16e7c5fb00117058e08cf8165ec725bd","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.0.1.tgz","fileCount":4,"unpackedSize":8071,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdr2M3CRA9TVsSAnZWagAAeKkP/2hnMcfM5f1TI2H+LENW\ntxBlJ0QAVytcEYSsDc2cD99U8LoDBkBOJ9NOC9jTks5wRU1hgyeFl1PZ9ecY\npOpSYwxA9BSa7fXceWxBF92vZ9CDwNF3UswU3lmn4d5Gt1z15o7XGXqiZzug\n94PaYy7vpMai3d8cJWgdA2c3lOezt3F5Ns7kx1otdu0QZhLwMiVCIC9FTxA4\nDAJJk0WjMQMh6uyWeWMvDl9DzBTf2eDPPEjBveBTgZfD/Qxkh32cn7Yql+uR\n5S9kYSHEx3e4Oo/0cb41a/0vSVDz2IMcXpl4omTSMzW+n8BvFgjVrRRY4+lV\nAvqEjgUk13b3ICIlFYcoL9CRcF1bHGWSRNLyRSnL2jGTewgp4VE2gt1/JPQO\nSpLKZAXSiAIlMU9NJudiBIFWHZLgTmzSKHRI+Rv/p2rAzT2nT0tC08+9amPY\nT9aJ4fT0sI812HUzPV6s/UwWadXWaNiV49ZXAIL0e0x8E5anVhGDKl/JKSRu\nbB4BIenL11wEkKbyFXVv7jpUUJDOUYPRGy9vG8YWqb6LlDUpsf5cyi+0Gwe0\nw6NEAzqi/WU5F/qehbIoZiDBBnJVO1UcsjMDeUqrgDErEhBlbA+64pBi4E71\nnP12jNbAWBgUIKjeXl0aRXBqStCJYQX7wmJCqhDsuS0qtMevrewCwoQyc8sT\nf1Cb\r\n=KbBR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCeRwSBFFSEcYyVTelEsb2KRqDGxOJQ32vUubZ+FLW/YQIhALXsM1mqIHrQWDYbwDapAyVQmu7J1T8aPE75NcjzIQv6"}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.0.1_1571775286899_0.1930759159533575"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.0.2":{"name":"redux-area","version":"0.0.2","description":"simplified strongly typed redux","keywords":["redux","typescript"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","dependencies":{"immer":"^4.0.1","redux":"^4.0.4"},"gitHead":"39c555e8b2bd3cb70c131ba00374429c66cb67ff","_id":"redux-area@0.0.2","_nodeVersion":"12.1.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-hD5cxgunVBwPEE9kSgYYFvF1OOIq8gXsVjoEkvEeOGKueRCJtTHPRHtXWwXkF0b5IF1EA3S1C7j6i6hIi1I2hA==","shasum":"b0ac5d6e44723dbb3acb1807e89965d51c5be668","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.0.2.tgz","fileCount":8,"unpackedSize":13193,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdr2brCRA9TVsSAnZWagAApQkQAJLQsJr8mqWfYCRRdO2X\nXFSLbEWeTbxpjQG0lNVnD9LDiO9AGbmzMiZRYLP7sxnx4U65AePKqwzitgwz\n7XdcAqt3FTosGwheYxjuM35P0RktddkBcuaAvp3C/CQFWX+54P9cHpPactHH\ni9XqMispbya5yBZjTSeyBY7LPST47fuvwdUdMjoRkhzaQu+CvjOCTBoRFKww\n3cOY7D8Ien9aY72OnTKOt7eHUJymEtrrBanX+OXjR3yaD33xKY7BSb+wvIPq\n1IxxV2SRAQAIl+i/pDB2S2RZZfdGKo8k22fscw0BsPUDOjB/70PNoYad0Xkh\nlUKnJ/ReGicEZgWWS44fVuUc6uk+LZOmaItsw0G9JZTYkkJoNDheTB62CcJz\n98ZtbcIF1yXwP/3SzCL64/ZyU7EgGTzbcdLP3SXYNa68A1k9uvQUrbAbxMxv\nTVZYlNfWrHV7S+nmyMwg7ar5C8JvCdp5FhUOIT+idw4KAR7nVKwbJqO4N7vd\npFKMX8VGyrnBRyNjP+SkGCostwCB5nIRC3JOp6YWkh/Q/2M3vq5sXmKeLK3X\nYF8CPEdSn3+iYmUMiTi/E3ojuxQ/NuRJdI9IxNGVA0Vd3h4Rozxi1L51MKul\nLCVHtGD6vKr1/oS032x70AAj/LoTyZY9iG2BVYrqZ5NuQ9tOJ1+19gO8zpZ6\nydAq\r\n=qCDo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHZPtqvGJOBb1yHnUd6EC2jLiV2oI5LO/Mc6mUpkT0pOAiEA717nm/Qx3l4GgZ3n5d8miq5G/8a3zNqOGIkcoUAV0lY="}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.0.2_1571776234707_0.6616644827824958"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.0.3":{"name":"redux-area","version":"0.0.3","description":"simplified strongly typed redux","keywords":["redux","typescript"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^4.0.1","redux":"^4.0.4"},"gitHead":"39c555e8b2bd3cb70c131ba00374429c66cb67ff","_id":"redux-area@0.0.3","_nodeVersion":"12.1.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-bcc0RrYU/ouKba3/KuNYQ/ZoKXasFEVN/+zDX2+tzWKAl/QfeCowTAD0Ajda7PxWS8h8eOLjeFHeFOjq4APqZg==","shasum":"c4560e94da0fbc83f199d8500ace65bd67c0de88","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.0.3.tgz","fileCount":8,"unpackedSize":13259,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdr2csCRA9TVsSAnZWagAA+IUP/0c0byxg4oSTMvUkDemH\nUmJNcRxePoLL/CoJ3We/9JptpdtxaFu+kWOL36udGpm9McXLmLIX6mJ9ZlOi\nDUr2Ag3nWzp7M6w0v8W7wvn+AQ31/NbSmBuxhbAIiJeRQgXUZhO/v5uxcikK\nkh4Fojn6ggscsrcyFzW9HKVl3aZPNFv/ivTzEwVfq/X7TVhqieaRr4iw6KpI\noSsxg4pltToWCyyU++h7N2W5KjSsto9hgSqgg4mAsMBrcQbqSYinZm/GWi92\nALNJF1ZhmPGievMtHOQ+8ZNJAD2sOFkcF9zzNNISK+az38s11XbVtPN9OLo9\nmBa6CgZPkEyodCuLTEAHfxWoLFjRgI1bJWWM+Xb/V5XjDi0yDTz83xB5F0Si\nF+8fueRxRX8bpGKccoBse3A/GZxrMBLTMfjp+Uts6mVAHZKXjID3CDAgDNQ9\npD5DHh5Cgz0ndaYbExpebC5jer4Pbxv9V5wmWBoW4jN0NQwVQJXZiA3cKDiL\nuCjNxpG2gmdHrixPRER5SaZEfbocwLXG/Z2zcLvFxxNDWpxXH+CvgHUwBLlp\n832DeS4ZXrp4/mwboAGmVNss2emZIYt9MDTXXZxI9EkK4h1A6wqo2rp11bK9\neCvJ+398KSQkNpkLe7EPvn3viJIQXbv+Qk91fwEejkBOd7JQ+JefwZ8uEq/D\nVQS4\r\n=/YN9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC/N6huVEcYB3utlrRBhtaCB2NzSqoviQuml71+7nFZcAIhALt1Zz0gKY/aU44CB4hEH3WoJ/QQSV+Ro4XK0IUUkapb"}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.0.3_1571776300172_0.4662812851641116"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.0.4":{"name":"redux-area","version":"0.0.4","description":"simplified strongly typed redux","keywords":["redux","typescript"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^4.0.1","redux":"^4.0.4"},"gitHead":"38d39c4a63e14513e44f500212d9cd2f52a8c10f","_id":"redux-area@0.0.4","_nodeVersion":"12.1.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-PkKKk/2LbY6yKwJIT/bGTWstNI/Cuk3zhYMJ4IUNke+HtGYc6yqTb28R2jlhOz2CRwE4NiFZ9S3Agw6dtpQyQQ==","shasum":"694ce7005624c8f2c318cec4f37cde46429076fc","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.0.4.tgz","fileCount":8,"unpackedSize":12380,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdr2s7CRA9TVsSAnZWagAAhjwQAI9EVh5gjd4v5BkSRZ7T\n3aGRSebjPN6u/r0XW/CyTn8u2LCpz1RZ/ABWlwexRTIaSDPzKwU+BJNl8zQ/\n40hTmBH+dKlBxEvFlPtt7k9L1lXOW0Q45FjIRkkFKDqzCQ1bXC4btbRTGAsJ\n6FW/xf9Bm79hYKvkbLhvPfTw67sRBI0ZuqPUsNoEtYJXVfkQOwwn1MR5WxIR\noq9+Cy2zR6cyXoGlplcFZ+fyAUYgFPyFc492iKtX8EsqAbEVxycn51U994E4\nNbj0h7kyvXHKpETjQRev/Q0mEUSEahtIrcZFmUmC19CDidUeGrFFI/Ym5Rr8\ni0zE1PLOJPOumoRebbpadSkt8ZG9XxmvRQyFXhvPu4G+wjPHBr2z3WrmAmjj\nltpDJtmyRhrlxwuH5jsRoTE+RauEY9hF4X0X2zbNRnBeUonGKsNOj85jaL88\nsPD+YI//j6U7/h52Ond+Sq3uhBWkHMdILmCu5iTjnj/lxKJxraEwRRQQyqoV\n6ViSe7L8Wvhh3zw1xSsUJgDc8tyZlo01Tmnd6XZXZrpJ2rygl9pT+c1vI2zF\nMfy8SZgUzOXtpBQOv7LcYjXu3A1rmBAo40A0r3lfpwGCiMWjlctaNtPkb5b8\n8kgwwNFWG6Bl2Z2nCFLlJjegUTYebKJAi+0iFBfkK01Yvum6l3FQaH1l7xqd\n7F6T\r\n=Ijmx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDgHFyxZFuF0jqanTgunaGxp6XwEco5xVthgzhBmkcmiAIgFMBPDpTOFLsz5sZP7Q6gLWaHFlUjV05FEcMh6XpyRN4="}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.0.4_1571777339297_0.14104812547060575"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.0.5":{"name":"redux-area","version":"0.0.5","description":"simplified strongly typed redux","keywords":["redux","typescript"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^4.0.1","redux":"^4.0.4"},"gitHead":"6f1df7b41cb4510b5be39d5c944d54af507fc24e","_id":"redux-area@0.0.5","_nodeVersion":"12.1.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-UOYfBiyeEEpTlrBficIQf2KCWzVWoNQmskAqY5gn3kjLavITrDvEz31y3scmUm1t4kcPuy8F8dZ95N/S0yFg4g==","shasum":"9ff559ec420dfed191243ff828aa56572c81bc70","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.0.5.tgz","fileCount":9,"unpackedSize":13436,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdscYiCRA9TVsSAnZWagAAWC8P/R5Jc/IHN6FnbuyrUGNo\nSvbY8KCWtUUkX3mMOnzf67DU/EAMxsEP34s5hSpVhoG0sVymxfuuKIYB+SX8\nrcqypeZZGOxYgKy7tnPsYqcBz54zmXH+vJJ4YkfO92nC4iCULUS4joTYklTy\nOC/LiJbM/UZgsmQxrZr/bd+NrYyCF6Mew0AdCmwCbqjz7uzbYLFxcPaCx6oV\n5Piw2k2exS4DtB+YOF+rVerLu+tfJtXX3DwYXLyXlSsINiSCyVqLtDcc/tHf\niDZEPbXLh8u28XmLJW5AArodLnVoFIcwtFxAZdKL27wS/seQjySDrgu5tObf\ndlCHXhbz4XEZVAf6uxnZRcHQZYV44ONRN0EG8oMqzKKRxT+5KUJxxLaJQW3h\nOkduS+17Vn095d9DScSNfOiPhhh8ygBqtkWxKQ2vJrBcP7YlmrHLOZ8MWQg+\n8PlV+ei9c8WtsPTja7+HbAMvBdtKN63FzfbbpDY0YB9DdhvqRHAO3NcfUhwW\nFgbpnNTWu1OOndGCCEUmH7ZTCOvSNT8BlzePKQcVmUH8fjYpXpwX1eenrV4+\nzdbEdmDhuz9wEyOZodNlkgj9OKQEEHYJ3x8hvsNe1O45MHGSYh1M0gK41xhf\nOGdmyQkl9K582XxG/C5b8Fli9ZwXbpGLQx3PSEyF105K3iawVZ0GojkwSpmr\nlcDU\r\n=RJhB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEiuiVwgSqWvJz/8ygrTgfjv+0BbOkOdQNQz2Bh+YlZIAiB1cMGso1+hUg8IFsrBvuOl78uiQJ1gWGfHueb82N2tmw=="}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.0.5_1571931681837_0.43495986401186015"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.0.6":{"name":"redux-area","version":"0.0.6","description":"simplified strongly typed redux","keywords":["redux","typescript"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^4.0.1","redux":"^4.0.4"},"gitHead":"3cd29575e98fe5950ddc2b204fc49de67abce533","_id":"redux-area@0.0.6","_nodeVersion":"12.1.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-lOkCCjE5mm0TImxP/W/yv0R+Or5ZMCpeukBAQVy08ZOFwqTxTTPBLGvyiGOPfY+Mdo01HT+yJOOhN3xVDkFqOQ==","shasum":"99bbc15a3fbcb5af5fdb5175acc891ea02d8f291","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.0.6.tgz","fileCount":9,"unpackedSize":13612,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdsej0CRA9TVsSAnZWagAAeKoQAKNYJd0zTQ3BNuS/hJNY\n6vqh7lwUOJ6c6q0IoPA1aDc2oX9jmXHHo5JCH/GRhZo1bsnsVb1pd2Xi/Cxj\nAiHppC0ZVAEWyYsxG2gNNa8RY59DPpOmkJrRTHWtpVCXYD1LcMeVmFYv7CfO\n+OE97/dte0zTHYig+If3y+RQyb1m4BUFn78tPAk5WtQX+KzE17lLjMlW4RBf\n5fzxuheYM+kDA+3wHqSvKUSCwRS2UzbdR/iKnPLxOhO/er3l97KOHIvNpdLz\nsgc/PYXXUshy9w9JT+pWPLcDbeenwrE3I3vQgvAUVDwAHgQ7UDP5wRrKP0NP\nDP3BfA3mCZW1KFytxTS0px6nBBaLQl4UqSdIwj8G1wxt+M5SkWGZAsk2E77f\nRc0rf/23SuBor6hGcKy5UH8LznMvlMyu+ND5uL2gyE3lgPtgPT3yH+HLIKgv\n2uxfKp8opqq2bhosIjUH2HuKRz7htPy7x4ZKP4K0ftvFftShPJYmcIMgDemN\nRNLDdsIWJDwTdtxuM4IqiY6AGI0PXio5EPODNI/WEwL+3c9gTzRt6TsWmbbU\nggeCFOcRUNgmHOiyzecsTJiGyuzhQhxattV4zh8Sa7G7SD/EW3Ezy0AMkiS+\nov6XhfSw97IvBUEgnBOW/2pk7Wk0Fp1365r8r+zR9q9SjasJ2JrY1acBVGNB\ns8og\r\n=6zwS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFgQcAJS6kNFkSYKWQ7KwdjL2MmFA0y81HJ7W9y7arh1AiEAqD2caA8DljtbT3JhAIy/2PZhWCNvhUPhIHoAyISmD6A="}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.0.6_1571940595675_0.46809219309100314"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.0.7":{"name":"redux-area","version":"0.0.7","description":"simplified strongly typed redux","keywords":["redux","typescript"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^4.0.1","redux":"^4.0.4"},"gitHead":"3e9335615260d5e1c16daf767b039cc5804a0551","_id":"redux-area@0.0.7","_nodeVersion":"12.1.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-jvyiIxxqAz6n8iCby56iSsCmvRvxaUFwHQitjEWzY+uRdgRmxJSZ6mkQoG4fF06CLtHocRQ4k4MIw/A6DLx4Ig==","shasum":"9648ebed782ebb4cc045a64b4667ae51825d3061","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.0.7.tgz","fileCount":9,"unpackedSize":14060,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdt9D3CRA9TVsSAnZWagAAxT0P/0/ETHYA4IhGi9WJGLvB\nKyLxP9WLN0d9a+Ox6bfmZdDbIKBG7LFNTUPP/kjYlSmcPpi76XDHhYX3NS0K\nlYGY/uDXxHapid0j73Fc3BgXMJLHNKb/6hrYbycv0fBZSjpdj35F3DIo4cmH\nIkVCaZfNoQLAL9XmQK5xIy2TnoRU/u7n9vZYMoUeMqe9jfNh6PM6YmFJzh1R\n23efId9W974XDPblEnPP4b+FX03yoDkT/SpNjQj9/vJZOt57CZn5AkUDG6u8\ny/QnT0SGuhq2wsPOAXAhnkn9gi7WFDRgDItj8W9QRXNzQm7zTPY6SPlergiv\niUDYo/MXIX7aDN9oIHxG/PIEk1rK0yC3rmGMMe5PbahZWqFJ3RVtXcv4T9UH\n+FpUuLSJJ+IGDJb0a9fOFPkW08/emLz9mmkD3L5kwb/+bvrcN9tUTz0GR0d0\naMhK6EBP4Gv5f0rUOsoqqRgwNloaVmdc4D/N2pykOwKQgEuLJtn+YRwGFQoR\n2jinF5O83V1u/Aw9TgOkpChcPoDxeE2JrigkbFFjXkjz8P++N0BoyMnmYMd9\nkk4tKcKg4F1POfarjefAGE5dkXylx6jrPOOmHtNFa6MnbAh1niBndsGQv/22\n7zUtpkmtvbNQfmFOArLk6Q9LtUvHLn2sdkJWkAPf3GTYUd4xlZYP09c8GmDH\nPeua\r\n=tBjh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFFiEfMTw9EqYMK0310hyINIhZZFiCASG6Fs6+WSA57dAiBAj/4HiHC8ErBxA/Jtv9phuexpI3R6ePc5KQkTdN0OpA=="}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.0.7_1572327670830_0.33838361457095156"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.0.8":{"name":"redux-area","version":"0.0.8","description":"simplified strongly typed redux","keywords":["redux","typescript"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^4.0.1","redux":"^4.0.4"},"gitHead":"5d295078263d976e90af3091bbe2c1775364d8d1","_id":"redux-area@0.0.8","_nodeVersion":"12.1.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-xC/EUnQ7FqbFcSLrDnMXWrvKpOCxNkEDrIpnuvYFWtvbZUrAV1p4fUyzFZ1NmLKi8ilBquONjFOvhINsqtIoaA==","shasum":"21cb9c68c9d89eedd6daa99ef9a6d66a6e0d1216","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.0.8.tgz","fileCount":9,"unpackedSize":14252,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdt9I/CRA9TVsSAnZWagAAkvEP/jZRCIPbpaMENZFApixM\nkiL0L+S3Wo0KFS24icfQiZ0UPt/oZhAANizcraR+jg0yrgeLwgKQVNj/NZnA\n3TBbkTr/4rIqbHI9ev67tVMyPXWGSIbu2QFyzvSmr4PhzbScZ+RlD4buNDkQ\nNehR9z6IziWebPLJe5qjAo9ZW8/kI6aLNeIal5TnjKi+KuSLLpFM/luQ9/By\nOYgG7sC3fVZXaHbcjdjhfS7Uq/wbMmckl2vC5pYmKmaLjc2CZZT4HakPlQcs\nsrUTy4n8S2iqH93/XWD984s9zeIEGuayQv3yrAXDKk9OKf9hFj1jr/R/OEsU\nt0eeDC3z3pjDQDmSdGO/ckt4TZFRO8w4al0FGPNS07FiYAQo8vXXpvxwnvrx\nr/NU6J6JmtZI69/8wLcC/BEuKgBilo6AdctTw3VvsfB2D10mLZp346x2t+4n\njE9jUzx5jW+uimhRdQfOOi+sr0hVzb5Hn12GGTb1Ae3aatI7OyWqCerRlcep\nEfVLO8EcAMDghCyJ9bekrvamrh0tozyidurHRqgMq0AjrPlpGq5UA1YB+4PO\nkIK6U3jkKjdTXVYgEJAu0NTVzel7zW3N4EX+nVPsyoIEqKzvj0Wz5GTabOBz\nt43d99LDgaTo7ro0iWkWwNzLG5jtgpgra2rwpohoY+gYdEhDAh6RQ8KFE3G9\nVxFG\r\n=dcZj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFtqTBprrkSZB96Py8Fd/WpOubOfgJnzJec/04bW1icrAiEAwkqZhQRrQm2gKEX4XlUoTwiAQYoEhygsmkuQPlNcllA="}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.0.8_1572327999146_0.33399592574072656"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.0.9":{"name":"redux-area","version":"0.0.9","description":"simplified strongly typed redux","keywords":["redux","typescript"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^4.0.1","redux":"^4.0.4"},"gitHead":"5d295078263d976e90af3091bbe2c1775364d8d1","_id":"redux-area@0.0.9","_nodeVersion":"12.1.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-FXaXptfSPzG7D4Vd4USl9jJAoBqEjRdst9Xg+QfyZfMfXNWz4ry+UdpEJK7AWhJeaeRPkRvTW5GtdOpuf+lqEw==","shasum":"03cb58366cc6b2db649bca6c5c7b78d57e15ec43","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.0.9.tgz","fileCount":9,"unpackedSize":14803,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdu87UCRA9TVsSAnZWagAAYasP/1XAI4FDlcg8mn2sQpkb\nz7D60QY/DaH+bPw+E4vMyG+Z2/o/ALWfkf6/KTzneYcGlSsrEbGF2tSGjj6R\nDGidnw5EMzBJUQRuv98ye3Sffu7o6oPqUG2LM5NSnyVUMe7F6NOf5xCaYLIb\n4a++vXTqw0roBBCUh8BMio45hDoVmz85cJ0iBuQs7B3XVcDE3g85GDIpWRHc\nA9N4DwsC4ggezRcXn8yb47qIl3zlnknhDiIF7pzgKhjSIxdr6e2W3Gn1Cr6C\n1hheouoF2/nWfa+tFInU1bQRttmmzl+n5rydVNLHSwIom3w1Fj/POz2nRXP8\nw5VvawRivxsYsSlsbvDHYd+zJBrGQ4zgaGUjVVTSHII1b+nFf2PNyqnyH0qx\n2U3jeWAMbRLoH/7hUhoKkIGmR4dBA7DR5TzhraW5e8d/U1lil8QgP9EDqiPY\nHS9H/SupKhTEaOKutQCtd0y0x+ltq7gLxHjYo+zbtJ5iAqR2yZjJ/SK9aWX/\nBHD+Zypzc5c7FFlEcLzc18oysWS7QfP10XZ4z5fD14D0Q5+Q+T9uDWKZ5jXw\nG0bkrvXRrVHUSP0PBglZOif/cp1nJZEBpoLOlpshsKm+bQrHqfGBBg6yzqIk\nRdN75OGpLJ1omxSG5z2Kjue5cDpOMp0lLfxNcKSaWfwdv2du/XxPUxt9GGXh\nR/9t\r\n=CJi7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAHCei1SKaedd78xa2gQcpN7kakSQxvOTBxJdG+QO5R3AiEA3qNlElwAAGjLhiwOSfOC7bf0fzDF1pyvkKFV3Tti4u0="}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.0.9_1572589267844_0.1809987758359548"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.0.10":{"name":"redux-area","version":"0.0.10","description":"simplified strongly typed redux","keywords":["redux","typescript"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^4.0.1","redux":"^4.0.4"},"gitHead":"58ffba6fb925af66687e7c464003cada9d006126","_id":"redux-area@0.0.10","_nodeVersion":"12.1.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-Duf7A2xXFYGBHfcOQSM/x2/djnEztt0BPHSiWiekxlkRyH6tknrWxO/FHEWS0U99feYgkPSetDbN9ciIhMO6nQ==","shasum":"ecc83d09fc771e73f2e83aec8dfb820b3618ec9e","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.0.10.tgz","fileCount":9,"unpackedSize":14902,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdu9BGCRA9TVsSAnZWagAAXUEP/jPIA9HiZLI4Xr66A48g\nyA6OSUkOcOyWz8KHMv5t1LqrCIWT3EdCJ1G9YSGqNVd+J8rCneeN4Ecp4MxP\nGfWJGTpn0QBIRK1k5I5P3wcTe/1/aQZhySrpDxCzTpO4p2JmhrayOc8dn0ug\nvkySMZQw7ALBorRRox48BSDhtDcwgN2Bm7UkKgGMOr61pKAxW3r9Sbcss+AP\nQ7KnAZ70k4N6FHgcE6ELfPz30zteO0A8LuVQLA1sSNpx00erZc4TiWa5jBFd\ngiGD6ULeJuvMMxSUB/TQxfEDYYtm/M/nsDRh+qP7wpr6/Ft31XfJRhWkAmSj\nTg9QAm1lWEP2Sv7v1C5jkQAzx1AnwxpynbUt6VyshKLF/F94F8joY6tfAoow\nfhHnhP0YUNw8uQe8f1pWqGLg2iDXjYWbqciHjBIY6NMyvn/+DEC0h1N6v8Z3\n06aHe7lt8xr+Gch6qGqHeVehEUazwyohzMgsioJM+/QtDvWThYgfhBK9jtcT\nZAltGhu/5g+mCVtWbcT3d5s6tJxiHz9H8ULRUZH4QhMMZVmR12K721/j8OQt\nINTRN86I/6SNzKFDYj+ENJsGCp+EnSsLScxZdRPotL6GP9OJKs0NsQgjgLSL\nKwV/ZJjg+YuY9M7Vg0lh6tf4OzRUpo4e1BLDN4/UTg5YODx+/e4nzALd6S4s\n/HpH\r\n=vzxL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCcY5MtDDI7GQ70qyQhdemoxiA0XX4Qk8nzWVA3QcAiRAIhAIuD5KS4dbnqMTUJ0Al3NffiQV/hvNp52EIw8nxzVK0v"}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.0.10_1572589638155_0.5291687876468405"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.0.11":{"name":"redux-area","version":"0.0.11","description":"simplified strongly typed redux","keywords":["redux","typescript","simple","strongly-typed","auto generated interface"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^5.0.0","redux":"^4.0.4"},"gitHead":"2708eac6838da1c790ad7f883de9ce6bd8004ac8","_id":"redux-area@0.0.11","_nodeVersion":"12.1.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-OF0juLbdLkbZKEZqZ6EHjL9oif7eNSDdgpUUmiZs0Do8rJJhix0TVNjP9xtGYxmEUkR+dXjAKzEsNwu1jxZCHA==","shasum":"3c30b9eaf3e7df8278d6bf246a0fe1546126f011","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.0.11.tgz","fileCount":9,"unpackedSize":15018,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdvoEOCRA9TVsSAnZWagAAjYIQAI509EsPH9kP3Ikk531Q\n5xxQw7ouzqlz5qHLd6WrweIQQ31uZsPkxECc6tWygL+EnKrWfsc/NMmjhNX+\ntAsjALO1KTdSW+hyC7l86eGyZUJaTzNXWqCWQd+DWyO32OuEyWtH79VY4w07\nkBfY5BNlV4yUHrinEwas53wLLEfBRvgofr38DMbSDVULEIKQSg2d4ZlZHbeM\nsa8cGTmfmYA9LzCE/86ZuB1r+73xJhNGHoStMSQqDFGThPj70516AZUoUYRz\nxlEI/Auv571X0P4d8Lj/Q9Seog/GQH+UdkIwCakAt9nwUBb0tvp1NXVGEof4\nfM9SOfXVCpJ44XlHoKQBiB6YEXa8D15TnfrxBlJPADmXyEKHQGMl2ybsBRZY\nZzqWcxKwUlhX+xivPlTwtH0vVeM+2G6OyZECPdYcUt43bF+ubwWFGOIRPwyv\nSqbXtY9DLxORbLweQyTfR4GuJNXeJ7UmoabtT6NnPVnTKhUKu+TcTs3iIQvw\nq2WnFfdGz1ECKowSfWKeti3BQ+vzfvG16ytCBYlOm10naLtcDMN7SwE589Ox\nqBySEOT4zr4LhV/pKOOrRpK71NC6hnatqgQiAMAuk5cQ/VQBN2AB+882lWPK\nvpQNUKN/metzO9H8TNueIY0UUb3jOH9kv64X3rUaawiGtnj27Jl2qpBpbPnr\nrNH2\r\n=qnJK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICeWVn/I5mKfZWIriHu5y5fCG6Kajm/2lfrvW2WU1kSlAiBtGUApO+RQdHkgVQ8Fo6Lx20C2+q1Gc+Yjsbc4XymEoQ=="}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.0.11_1572765966019_0.44303708852442414"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.0":{"name":"redux-area","version":"0.1.0","description":"simplified strongly typed redux","keywords":["redux","typescript","simple","strongly-typed","auto generated interface"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^5.0.0","redux":"^4.0.4"},"gitHead":"cd66932c9725a0c2b584483ef07e7192518b3a1d","_id":"redux-area@0.1.0","_nodeVersion":"12.1.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-jzaOlW3/3lx8j12yUisYRoZgAmDuJ2u6A0OlwMGeXMBARgBtY6354jLcxBvVFdSdXAbLSVCM7EoeZzrgAvv3Ww==","shasum":"72ba49ac0e5bfd366142953b0654565965df599e","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.1.0.tgz","fileCount":9,"unpackedSize":34160,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdxQMnCRA9TVsSAnZWagAAZaUP/0ctWakFimlBnfKuLJun\ndKAYsAx5GodaR+UpfjBgboNFasf0FzhCuhf9EXJy78eSW0NMn83d5r6Zf0qo\njSE3qKfUSwSi5opjuXUxmwslI4/NuEd+oiDTj4tF+y6tlP5on56qi3UCoPU9\nn2myMS9B3uUTJTMB0kVChaBTLr0II1BKQJhoFiwJ7TkxXKYz7LGxtX+QDqck\nDJuML7TD0YlQxb4YAzIvuJQij1vQa0X8jQNd0G3MY2OYhqblhEoDjz/ED3Ud\n2amWcjlt5hxmFbIKzFjktQjFK7mqMbHGnS7UOuwG6UUdCAG88rTvNL84mTum\njk41D1NZj7J3DzJVCkg2xdn2GjRpp8Enu2H2+XZQdKtwm/CS8DPBmjWSfHTQ\n8EhrPSZIWXDPuk0E3pr6qYHboRV1gL5qx9nYwv4TsufETOO5H9KmbUWeUaJd\nnA7j+fU6xCl9VJ8XS9wian8YWxETIod7ipXDVWqUFBFaoOYMlarolYCE4l9m\nhQM4Seph7jmknHvn3+LU+cEGwJepE/kh3iNXyh1+WqA68JnfRWyvYU7SXSVY\nGQnABs7Rk44+yILkLhAQUr8CmG3sv47gIv/6l7GLUGXG/UiqsPPnUK3SKHdg\n32kzeOb7P7C3fV30DpJsCCuhDZnpjFQ3Wf8e7g5cUczHX0jHpP0lOlI1u7xg\nDW28\r\n=IReJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHGeW221WFBgVL7Sf8R3DqIZj1NFwgnnQop7Yimsz2zrAiBtOfeaFMzHl3EFfFe25+XNuE6x05rO6cx92UCkMYfCIw=="}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.1.0_1573192486875_0.9074824821956509"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.1":{"name":"redux-area","version":"0.1.1","description":"simplified strongly typed redux","keywords":["redux","typescript","simple","strongly-typed","auto generated interface"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^5.0.0","redux":"^4.0.4"},"gitHead":"cd66932c9725a0c2b584483ef07e7192518b3a1d","_id":"redux-area@0.1.1","_nodeVersion":"12.1.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-bqoCDEr2uTPizByZyCKJ4zPRPOWrOXAtSi8xct4u2cALxb8MocImpors8q0ZvKVuOa6e9XVlpPuCr0nzs9lFeA==","shasum":"8e04b740f09534117503b1739bfa9b1d06a19c0c","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.1.1.tgz","fileCount":9,"unpackedSize":34658,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd3g8yCRA9TVsSAnZWagAAoycP/2UtbUhBPncQr0gZf0S8\nDqAV0t5Qr9TPYxKXzRGQJKf7804jRNckZ5jBrzZZFb34LzSchrj/sHkRPWbH\nyDkDZd5+iahXOx0iK2ufLZNULZHw75JUCRSOBTZ3AHOy2/BaCOOhpga4bgkQ\nWSyGmowsR7UkpOkOrSyGT7EpHokN6R2wXttPATL827QDaYflraxvWsx7BLkX\nsfrA5TX84ZSwJnM6HxmIXbCMy7JJjaYTfug8yQCluUcVfSERjgZjepd0vqR/\nJNUN9ahg7mdWNWw67VfwHVIR9Ia3BU/MAIjqPkhUx4UqhIJ0JhgRMzZ9PDCJ\nP7luVT4Qe/V1vLb86Neh7nIm9+/zW97uoDdYpeCf3JSSMIwMUBCaCfmlvvG4\nvXH1pVsVuyWT3JT/a6D8hWu6pSv8eFIodZDXcs/wWTS9TtmyJodk4Sfo1yoN\nGA6rI7CMuhyoF1YACH6twRJnzggjtYSXHJgS4U38/DJxh0G+BpcJgWHM+Q8/\nIQpA01Jl371adRpswKdgUj1buuH6jvF6vJqfz+5zxwvLwb7bKFJRj3hAswjO\nvV43HGPra/YVM/AL/WHb5br2fDmV8bCqCfC8yD97Tvkz1mjkkfjXxEypxNwc\nwpAd7XW33h7do/AmP37BfatXnkHVw2Qc++K7WTFvHY2lY8FxcGzY/NKAQGIn\nURP6\r\n=T95E\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC8EMGHtyPupbtwexoF+00va6PT7FyPDb4eJ6tpVSEBRgIhALdSLsf/0zBeHfj04qYKYFiijNR+Ozz/c86z+wVXyATX"}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.1.1_1574833970374_0.6484791280036806"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.2":{"name":"redux-area","version":"0.1.2","description":"simplified strongly typed redux","keywords":["redux","typescript","simple","strongly-typed","auto generated interface"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^5.0.0","redux":"^4.0.4"},"gitHead":"cd66932c9725a0c2b584483ef07e7192518b3a1d","_id":"redux-area@0.1.2","_nodeVersion":"12.1.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-clP+Z6GRzQHIqyWoNgF9QLarztHpPbCZZv2FbDiCrcVSYKoEPMILajrRNpkjbwzbClvqr0CfWUrXZDs5SS4lAA==","shasum":"3f23c54d67ca9783ecbfc6d0ad89642ea1661028","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.1.2.tgz","fileCount":9,"unpackedSize":34769,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd3g/SCRA9TVsSAnZWagAAsg0QAKDNmQOkeE/097zVDl+/\n1ZPpbk92ZAgNpOanou0HzNszOdF9lj8uOT4GI1FfoBoN3mcYY9KkusW3a+Vh\nNAarmBwF8/4dkc3IfNAmr7N8awOXrxdrDw02vVfNFm1KB0BDFbOVXrCSRH+T\nGkFayRPdhL32cmmJlhHbs1Qw+H7Ua52VnI4fysHHUVdho/xUVvKZhPkc0xQB\nhG27sBPosped6Od8TCO2JneZV69wsc2fb4g1qbAjbjq17sadfnW0zGJJFWDL\nyT5R8cbMo62OweSdm/KMJgMsLFpP4t6i0T8ohg6lmmy/luDZD/2GC8HITW0E\nI+ZegJCmf4wJ2fi5Z6GNhVVioMbDsYF4Kwh/eKolqKyU8ZaRNCqXuas3Mcbu\n8KfpvubeOD/tx/Aj122JR66fMw51p8K8cfWGuCOvIMG7Oq5nW5z/Gu1n8k0d\nuEGhociiDbV/hPug6MZUXJL7d+2CAoXEWLw7HvppLy9YqUKQbCzx+dsBMoby\n2UPD+ao90Q1crVZpVqVGG1dYF2sqd+lB+hqqTsk+Xhl8Dvfq/KsLZ/WFP+IN\nbFsUfh+3bHXhEC3FAiKXq5r4OS3ngxBqweiN9cORMWqukMwDCNLQr1oTYRwC\nHDWw8EK0i+LEpqLvd5k8Q6n7IiuCOLGmi7DxPZWJLRxolEKhIBlMdjm3r4KQ\nznbu\r\n=/i76\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGGLigl89DVotB6dwtUAa1AXGLTdSYe6f2yhpvIbqbqvAiEA8EeoxixxYIeOuXr7/R+43EpXNDfZVBCfIkRpwm4GFgk="}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.1.2_1574834129805_0.06043593829595517"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.3":{"name":"redux-area","version":"0.1.3","description":"simplified strongly typed redux","keywords":["redux","typescript","simple","strongly-typed","auto generated interface"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^5.0.0","redux":"^4.0.4"},"gitHead":"cd66932c9725a0c2b584483ef07e7192518b3a1d","_id":"redux-area@0.1.3","_nodeVersion":"12.1.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-JQ1FuC4iooGwbYd8Evh84obpkA/wBnao06kMFcen7dhX7ma5iW3rhOdMCziqbtvlrk2NgcuJZZV7DJZsV9MAAQ==","shasum":"1f40cc76d39861d9a98ca6c96520d54e51348523","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.1.3.tgz","fileCount":9,"unpackedSize":35115,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd5f9HCRA9TVsSAnZWagAA96sP/AnYXSs/cnepTjm1tp/U\nIK1p+V1ZeH8oGB/DDq3HR/P5lAeBfEkFBZuCEnXEM9Wjt0kNFoCOBoYaCnV2\nHo0BJ2FD72UW7C5hgM7vsZSJAvHYRzMJWrn8n+Dr4W64Uww2dlBzV1aAuQDG\n4aWSdOPAE/du3zFyvXDvf3iY5rQDkQi/X74e+f3HUHXN1DcQRt49fR1wB0tX\ntnEx2Z7KxWgWcqvnD+5UfBEFpQ9pugk1wY+cu8pNz3ffZK01VHz7ks8I04sc\nrj2IU26itu716QFjNQAW2QgLuOX5gRB2YPXRAYQpZlHrcFoaT9X6E599RQfl\nrjhhvfc8IaJyrjPK3FpuIEBmdeK49i6IixYtd32jtcQLPmNiuWhM3faWJL0/\nmxPqXS080NLzH5/DkjyTfYRBJTYO+zy31KKk3YjTBiGZ0JU4c7LmDka3GSTk\nYLjtoHOM7iyLdYOM+MMdGh2OzrLetEuwdnlHh3s5+/ONeT6gg3YMKB3gw0Ow\nnH+kzxrc0JhCtuxWGgTpwr7vcnFBVNr8M5Vy40k77gAcpDX2TEisHvRYxkmA\n7bTtEx163rp9s/JKH3ARHDmCQyG3YGvZ4h62K79nMve6Cx9eZtYK9CfWuwcr\nfxe4MsHog7yEHylJpzjmIP3vvnyn/UwlgKxOY1W9qy1k/aM9PPqzjjiNNUvv\n5phS\r\n=XdX+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDQiKrPufHNfttA91ig4lHHct2B9thVQ2u2qBDSb4fHIgIgde3JjzetVOdvm4asLkzg2876vGHBteY92a6JtbQ6Kwc="}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.1.3_1575354183065_0.02166458981916941"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.4":{"name":"redux-area","version":"0.1.4","description":"simplified strongly typed redux","keywords":["redux","typescript","simple","strongly-typed","auto generated interface"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^5.0.0","redux":"^4.0.4"},"gitHead":"cd66932c9725a0c2b584483ef07e7192518b3a1d","_id":"redux-area@0.1.4","_nodeVersion":"12.1.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-C6BAaMtOAjUNXLVHdYlxK6FUAf1lbfAr+KsUqPAF8aWIqH2Lg7y3s/Uowy1R47n4tEerD3ce9CemEIiuqToNvQ==","shasum":"b9fc10e3f2d2205e06810f8f81849bfa630dd4f9","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.1.4.tgz","fileCount":9,"unpackedSize":35788,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd5f+WCRA9TVsSAnZWagAAlkoP/3ZEd6AH4wKbxmNEKk7R\nmTNjSfMZFJhEuUkOd/qcJ+IR7WYJ08svCch3TA68PX0fy9Rdhrofw9SRw/mP\n3Zjh7S50+GaCRnEZKqqKJWg00LiGIRfAfpLndfToaRJXFVYAolRhulJpEsEa\nxn1Hoz/ckz+592ioRL/Q+oVqoLcoe7iF3LkmoobxQclfJoqY4mSCeY1deL5X\nDdwLARTOYJ1+VPrR5kPoMAC9/Zb3MnI1g335PQlSfgoVcWb+tJNrIeOVHBBs\nj3NSzV5P9izKhadCLZvTusXC7Z9YVh/dGvTUzetW3Hw4N4Mvwf6H1y7W+FyC\nRKv/8UzwSjHs1FV8iQhA9rha3Josc2nZkf4/XubZobBaYyhp9kIdEUPW22z+\n+D4pxLVJwsvkwQrqZYzp68ZdtbI5F7I7WdlAxQ6t2vU8PnTJEmhkPeofBS4j\nt2Vkx3SlXTfsbC6/RQix/yGWw8MaL+DZxawle9V+YsqXz3tr/ngu3r+aRum7\npmW+Do9FJN08LEsWM24g1/TbaCd/cu5jFqaZ7WGPAQ3deU2F8wDjDmDMKTLw\nzoWs7SS0Gjrqdki3Q2CFXakVuLk6QwY1QQYdfYINNDEvXKrjs2lb9xyQRyRF\nuIQgRNLydDYBAuGvzV6CEHY3suXz+85lmFa7UTeXZHv7QN4843oOnTcHQkaz\nvVva\r\n=ISJz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDAkwfglXDQJ+wQgCuagXlToiLNEjLFWw9+Ho9vTmRgnAIgGFUol/nN85lGytLYjcZhJQ5HyzqmGmzr46zYFNVfWhU="}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.1.4_1575354262111_0.4897933493854689"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.5":{"name":"redux-area","version":"0.1.5","description":"simplified strongly typed redux","keywords":["redux","typescript","simple","strongly-typed","auto generated interface"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^5.0.0","redux":"^4.0.4"},"gitHead":"c505a496949ca6940996f7e272bc23c5d2f52911","_id":"redux-area@0.1.5","_nodeVersion":"12.1.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-QZ14TI/qIq4c4IHMceVBcNtTQ7fVZ/x2BTdYozXZYYE8pIvF+HWhpIL/dKtgfxCKRr9cERUHB5ab5GJP5GnuMA==","shasum":"9dcc7a93832e30235eff7d486ef7a32e4b4950d0","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.1.5.tgz","fileCount":9,"unpackedSize":36753,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd5s/yCRA9TVsSAnZWagAApKkQAJ6cWdFGiXhnbhaDumia\nbBxPv7Wu5OZkj/Frrf1odaywA/IpPJmxeR5Wfp8YJYqw5egM0iN/Xmsg0JVZ\nTnT4qlUyMIcgK0sPDpRFrzMaaXbXwl6aLLx4xiliqeUOVB5alaPXtlOcQkuN\n5a/bxFUOWI83tiwa1/AZpJ8JIvMwT6mMJBzoPRaDth/4sD+SDdkX6hRMWJRw\nqQENJSWNf/I0mhdWFNKyo+s/pjOIMrGyruP/ZILewFOT/BPB5l1cpAGw5ZHF\nEtAVqGmIJsHbvjcg9kb6wORLfQy7Ppq9evEH6r0pmZLPMkANQ3EOUbTNHNU/\nIrGxJ08J94o2YKEawm7ZWqwaDvyjVYYIPZObguD0WBt31xq6l1+U0cAexj1i\ndy2l43v22GjNgKyZroxkGcgmOiUWI/R33w/oJ8lgsQA7VsX4YiTKr7eoFRFM\ncgvrme00JTC8H9+L8N3yHvRXWgBUjpI6IYUH+wcznna1yIn+OM9749v5MHCj\nm4Jlzqbi4mXGYbRcCUeYj7KI4uHtUWFG0Uw9WdYLXEEX08i+TC4jE9k0NjIR\n0SlwJDEomawWHsFgHTxY6cPgQoSX1qN6x10J82JiSH8SoAqTet1doWLGMgEu\nmhNOsbh5F/DB4BpK/vq1gDccts6zu+hpDXQbJ3nGI5uDfqVPxyaS/9ZH4R6M\nT4Za\r\n=3rib\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC81fp2scbHq3j3+JtQJVsEo2xessanetJ1Aw5cfio7aQIgEU6ZinKotXjd99ZDo1noSsLp2mbGX1HCO227SV+3SuE="}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.1.5_1575407601666_0.13433254782172988"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.2.0":{"name":"redux-area","version":"0.2.0","description":"simplified strongly typed redux","keywords":["redux","typescript","simple","strongly-typed","auto generated interface"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^5.0.0","redux":"^4.0.4"},"gitHead":"6ac4d5a1be3ffbb05acc0e517e1f6850a5dd64b4","_id":"redux-area@0.2.0","_nodeVersion":"12.1.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-ugDcmpUcHsMS3Rw+h39r83RrZ71YjP3EdsXDXHBtitlF6Cq6Keo7gK+l8PaaljG9CnnwtOB4LTW7xCPdVP7KFw==","shasum":"5ac770665a9663da9530f3faf60373d2d7702029","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.2.0.tgz","fileCount":9,"unpackedSize":56288,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd6KMICRA9TVsSAnZWagAAkp4P/Rm9MLFFejgi26TljmuV\n3pR0mv7o1R53XKjQLaZBol21hJq2U6cmhPjsQNUKg94VCyE31kKWGaVC3r8T\nwlwltSzvwJKGiKKFGHXF+4slCpbD4hTfygZmUiA4FmXbquZYCs4wBU3//xhu\naQAuCk03ExF2ZmE3QgylZItS0K+rGb6fuJac5Utko20EFy6bkSBOE0e38tE4\np9/wpfTO9n6dEs6+IAyomNy3HFbAwMJgCex0FumfCy5V2ndcYjZMTHoN4KG4\n0D3vbwJTVvSbWo7hlS0P2FCFtrPeAzBa0/niq3I/m31qqs4HhsB34eSp64EJ\n/BfLEPt/TKYCDb9cCyGYKPXpvV77RCdWQDdGBuVbvPgiEUmDk7HGaVH3IvLj\n26d7bh0OUDUBXEAFK7z23YSYgHuIgr3FzOS5zCYE3JKr3+BEmO0wCSftTkr1\nLvtKTtaLjBqVYOidK3GC+h/D6ooyKdbkb3s72diAaBnYhvjPZKp2Q9mDPQGx\nqAII5O/w6k5AHp+ODlnIFVAHZ5rErnGe1t7igB+K5jWHmVxc1MP7Ka9u0zqX\nXkCOJwgGCkNh2izNcm6Xlxl3RFLcCoEaS5jO49DHx8LiwYAkml1atAZyic7w\nLtZMWJaf7NscZldzd7kfkSlFydrLEIwAKN5nTsyS471AF4jJ6opjEkyJA6hQ\nd6tg\r\n=xKAh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDFDGzseUcsmhUgN4aG/ngZxzlhJKhCm2gjGzazUBvv/AiEAkyMz2BShvE0kSrqAEydKYcs7oy0VJgrmTqMPfs/Cn38="}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.2.0_1575527176265_0.6175745206284631"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.3.0":{"name":"redux-area","version":"0.3.0","description":"simplified strongly typed redux","keywords":["redux","typescript","simple","strongly-typed","auto generated interface"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^5.0.0","redux":"^4.0.4"},"readme":"# Redux-area\n\n## Description\n\n**Short:** `Simplified strongly typed redux`\n\nWhen defining redux actions and reducers with typescript,\nyou often need a lot of typing for interfaces to ensure that you can use your actions,\naction-creators and reducers with autocompletion ect.\n\nredux-area tries to simplify creation of redux logic by hiding / calculating types,\nand thereby holding the code more clean.\n\nIt uses the [immer](https://github.com/immerjs/immer) npm module for keeping the reducers as simple as possible.\n\n> You can create normal reducers if you need them\n\nSource: [github/redux-area](https://github.com/alfnielsen/redux-area) | [npm/redux-area](https://www.npmjs.com/package/redux-area)\n\nDemo: [Demo in React](https://codesandbox.io/s/hardcore-snow-jql32?fontsize=14) _(editable codesandbox.io)_\n\n## Example\n\nMyArea.ts\n\n```ts\nimport CreateReduxArea from 'redux-area'\n\n// State (Optional)\nexport interface IMyAreaState {\n   name: string,\n   loading: boolean\n   error?: Error\n}\n// InitialState\nconst area = CreateReduxArea<IMyAreaState>({\n   name: ''\n   loading: false\n})\n\n// Change options for area (Optional)\narea.options({\n   namePrefix: '@@MyApp/MyArea/',\n})\n\n// Add single action\nconst updateName = area\n   .add('updateName')\n   .action((name: string) => ({\n      name\n   }))\n   .produce((draft, { name }) => {\n      draft.name = name\n   })\n\n// Add single empty action (action has only a type and no other values)\nconst clearName = area\n   .add('clearName')\n   .produce(draft => {\n      draft.name = ''\n   })\n\n// Add fetch action (3 actions)\nconst getName = area\n   .addFetch('getName')\n   .action((id: number) => ({ id }))\n   .produce(draft => {\n      draft.loading = true\n   })\n   .successAction((name: string) => ({ name }))\n   .successProduce((draft, { name }) => {\n      draft.name = name\n      draft.loading = false\n   })\n   .failureAction((error: Error) => ({ error }))\n   .failureProduce((draft, { error }) => {\n      draft.loading = false\n      draft.error = error\n   })\n\n// Export Redux actions\nexport const MyAreaActions = {\n   updateName,\n   clearName,\n   getNameFetch: getName.fetch,\n   getNameSuccess: getName.success,\n   getNameFailure: getName.failure\n}\n// You can get the action type definition for Saga custom reducers ect. like this:\ntype UpdateNameActionType = typeof updateName.type\n\n// Export initial state for area\nexport const MyAreaInitState = area.initialState\n// Export root-reducer for area\nexport const MyAreaRootReducer = area.rootReducer()\n```\n\nconfigureStore.ts (The same as normal redux)\n\n```ts\nimport { createStore, combineReducers } from \"redux\"\nimport { MyAreaRootReducer, IMyAreaState } from \"./MyArea.ts\"\nimport { OtherAreaRootReducer, IOtherAreaState } from \"./OtherAreaReducer.ts\"\n// import { composeWithDevTools } from 'redux-devtools-extension/developmentOnly' // <-- Add for Dev Extention\n\n// Optional create full interface for entire store:\nexport interface StoreState {\n  myArea: IMyAreaState\n  otherArea: IOtherAreaState\n}\n\n// Combined different areas into the store root reducer\nconst rootReducer = combineReducers({\n  myArea: MyAreaRootReducer,\n  otherArea: OtherAreaRootReducer\n})\n\n// Normal redux store setup\nconst configureStore = () => {\n  const newStore = createStore(\n    rootReducer\n    // composeWithDevTools() // <-- Add for Dev Extention\n    //applyMiddleware(...middleware),\n  )\n  return newStore\n}\n```\n\n## Install\n\n```sh\nnpm install redux-area\n```\n\nOr\n\n```sh\nyarn add redux-area\n```\n\n## Usage\n\n### 1) Define an area\n\nCreate an interface that describe the initial state for the redux area\nthen create it with the default values:\n\n```ts\nimport CreateReduxArea from \"redux-area\"\n\ninterface IMyAreaState {\n  name: string\n}\n\nconst area = CreateReduxArea<IMyAreaState>({\n  name: \"\"\n})\n```\n\n### 1.2) Optional options\n\n**namePrefix** Prefix all names in `add` and `addFetch` _(Default: '')_\n\n**fetchPostfix** Postfix the 3 action created with `addFetch` _(Default: ['Request', 'Success', 'Failure'])_\n\n```ts\narea.options({\n  namePrefix: \"@@MyApp/MyArea/\",\n  fetchPostfix: [\"Request\", \"Success\", \"Failure\"]\n})\n```\n\n### 2) Add Actions\n\nYou can now add actions to the area:\n\n```ts\nconst updateName = area\n  .add(\"updateName\")\n  .action((name: string) => ({\n    name\n  }))\n  .produce((draft, { name }) => {\n    draft.name = name\n  })\n```\n\nredux-area will use typescripts generic `ReturnType` and `Parameters` to\ndeterment how the actions is by extracting the return from the actionCreator.\nThe type defined in `add` will automatically be added.\n\nIn this case the actual action will be defined as: `{ type: string, name: string}`\n\n### 2.2) Add Fetch Actions\n\nYou can also add a fetch actions to the area:\n\nIt will create three action-creators and three reducers.\n\nThe name (action type) wil be the name in `addFetch` postfix with 'Request', 'Success' and 'Failure'. _(Can be changed in area options)_\n\n```ts\nconst getName = area\n  .addFetch(\"getName\")\n  .action((id: number) => ({ id }))\n  .produce(draft => {\n    draft.loading = true\n  })\n  .successAction((name: string) => ({ name }))\n  .successProduce((draft, { name }) => {\n    draft.name = name\n    draft.loading = false\n  })\n  .failureAction((error: Error) => ({ error }))\n  .failureProduce((draft, { error }) => {\n    draft.loading = false\n    draft.error = error\n  })\n```\n\n### Intercept and omitting fetch (auto generated)\n\nFrom version 0.3.0 interception can be added from the options.\n\nThere is 4 interception:\n\n- _normal_ all normal (non fetch) action\n- _request_, _success_ and _failure_\n\nBy using interception in combination of addFetch you can avoid writing a lot of boilerplate code,\nlike loading flag ect.\n\nTogether with the interception, version 0.3.0 allows omitting all parts of a addFetch\n(except that it needs either the of the ending produce: failureProduce or standardFailure)\n\n_interceptFailure_ will also intercept standardFailure if its created.\n\nNote: Redux (and Saga's) can intercept any action by it self.\nThe interception in redux-area is just an easy way of controller interception for an area,\nand helping auto-generate common boilerplate code.\n\n```ts\nimport CreateReduxArea from \"redux-area\"\n\nconst area = CreateReduxArea({\n  types: [] as ITypes,\n  lastCalled: \"\",\n  loading: false\n})\n  .options({\n    namePrefix: \"@@MyApp/MyArea/\",\n    interceptNormal: (draft, { type }) => {\n      draft.lastCalled = type\n    },\n    interceptRequest: draft => {\n      draft.loading = true\n    },\n    interceptSuccess: draft => {\n      draft.loading = false\n    },\n    interceptFailure: draft => {\n      draft.loading = false\n    }\n  })\n  .setStandardFetchFailure(\n    (error: Error) => ({ error }),\n    (draft, { error }) => {\n      draft.error = error\n    }\n  )\n\nconst getAllType = area\n  .addFetch(\"getAllType\")\n  .successAction((types: ITypes) => ({ types }))\n  .successProduce((draft, { types }) => {\n    draft.types = types\n  })\n  .standardFailure()\n```\n\nThe _getAllType_ will still create all 3 action (request, success and failure),\nbut the request action is just an empty action:\n\n```ts\nconst getAllType = area\n  .addFetch(\"getAllType\")\n  .successAction((types: ITypes) => ({ types }))\n  .successProduce((draft, { types }) => {\n    draft.types = types\n  })\n  .standardFailure()\n\n// same as result:\nconst getAllType = area\n  .addFetch(\"getAllType\")\n  .action(() => ({}))\n  .produce((draft, { types }) => {})\n  .successAction((types: ITypes) => ({ types }))\n  .successProduce((draft, { types }) => {\n    draft.types = types\n  })\n  .standardFailure()\n```\n\nFor rare cases the simplest version of an addFetch can be like:\n\n```ts\nconst saveData = area.addFetch(\"saveData\").standardFailure()\n```\n\nThis is still create 3 action, and enabling following the action.\n\n### Standard fetch failure\n\nYou can add a standard fetch failure with fluent interface on CreateReduxArea.\n\n> NOTE: you cannot add it on an area like area.setStandardFetchFailure !\n\nDue to the way typescript calculate generic there are some setStandardFetchFailure need\nto be set directly (fluent interface) on the original CreateReduxArea\n\nThis will create a version of area that has `standardFailure()` options beside the normal `addFailure`\n\n```ts\nconst area = CreateReduxArea(state)\n  .options({\n    namePrefix: \"@@MyArea/\"\n  })\n  .setStandardFetchFailure(\n    (error: Error) => ({ error }),\n    (draft, { error }) => {\n      draft.error = error\n    }\n  )\n\nconst fetchAction = area\n  .addFetch(\"getAll\")\n  .successProduce((draft, action) => {})\n  .standardFailure()\n```\n\n### 3) Export area (Actions, Names, Reducers and AreaRootReducer)\n\nHow you want to export the actionCreators is up to you and your team.\n\nYou can export each action directly if you prefer:\n\n```ts\nexport const updateName = area\n   .add('updateName')\n   (...)\n```\n\nOr as an area action map:\n\n```ts\nexport const MyAreaActions = {\n   updateName,\n   (...)\n}\n```\n\nEach action has added two properties: `name` and `reducer` (and a type props for easy 'typeof' use)\n\nIf your using Saga's or other types of reducer/elements that need the action name,\nyou can get them by the _name_ property and you can get the type definition with the _type_ property:\n\n```ts\nconst action = updateName // => the action creator\nconst actionName = updateName.name // => 'MY_AREA_UPDATE_NAME'\nconst reducer = updateName.reducer // => the reducer method\ntype ActionType = typeof updateName.type // => undefined (Only for type definition)\n```\n\nAn area contains five properties: `rootReducer`, `initialState`, `actions`, `namePrefix` and `fetchPostfix`\n\nNormally it's only 'rootReducer' and maybe 'initialState' that is used.\n\n```ts\nexport const MyAreaInitState = area.initialState\nexport const MyAreaRootReducer = area.rootReducer()\n```\n\n## Use other producer in a producer\n\nSometime some logic in one producer should be use by another.\n\nFor this eac action has the `use` property, which can be call from other producers\n\nEX:\n\n```ts\nconst setAllOptions = area\n  .add(\"setAllOptions\")\n  .action((options: IOption) => ({ options }))\n  .produce((draft, { options }) => {\n    setOption1.use(draft, { ...options.option1 })\n    setOption2.use(draft, { ...options.option2 })\n  })\n```\n\nThe use method will automatically set the action type.\n\n```ts\nsetOption1.use(draft, { ...options.option1 })\n// The action will be { type: setOption1.name, ...options.option1 }\n```\n\n## Immer\n\nRedux-area uses the [immer](https://github.com/immerjs/immer) project as it's base for creating simplified reducers.\n\n## produce vs reducer\n\nIts recommended to always use `produce` instead of `reducer`.\nThe `produce` uses [immer](https://github.com/immerjs/immer) to ensure immutable state,\n\nUsing `reducer` will creates a normal redux reducer,\nand you need to ensure immutable state yourself.\n\nYou can still use `reducer` for the rare cases, where optimized reducer's are needed.\n\n## Debug your producer\n\nThe _produce_ functionality from [immer](https://github.com/immerjs/immer) creates a Proxy object,\nand you will not be able to console.log(draft) you draft state.\n\nIn this case you can change the 'produce' to 'reducer' to create a normal reducer.\nIt will not actually work as a reducer since you don't return a new state,\nbut you will be able to console.log and debug state values.\n","readmeFilename":"README.md","gitHead":"b9b192f9e3c2005a7d6eea8c448c6b129ffb18e7","_id":"redux-area@0.3.0","_nodeVersion":"12.1.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-uHuZ85wiWd80TSH9fgV657/GhDMOqo4xRvcxpkO6FAgjlFVbK0k8MEBlL7siWsLSWUkr2F7XhzzAIYzI+uRGGQ==","shasum":"fb7fed7d4521d0e7b8e9b8f847c44b1b84a85fc4","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.3.0.tgz","fileCount":9,"unpackedSize":74372,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeQcfRCRA9TVsSAnZWagAAFBUP/jp/z9RpHqCVqsRkkOEU\nkueg2YqBCieMslqCBNyRWxoJk2GFY5jRwLfPWf9GLtRBpUr9Ge2k1LLOBx+w\nJ1vFN0nw5qyLoxBLEeOJ2KGBHZkwnDDqBKMYqdxzE/wF/tkoUR99kxmSSVIn\ng5dbqIbe7IAXioEnPsnzilaIHD7QSzor8SR1/BjOJbOFiCuVk9btSgeadrbA\nLRsgM/TWmgVFr1hrL3yrbyW3qYIlprBkHq/PJdkgnLLx8i+g7GafLm1jyU59\n8AsyNBvzFFw3VUQ2FsxBoUgMumYr4OT/3NaPN+T7mvXHop+MUWQAjXIExk47\nI0xeE56stfEHUl5OeoyMEKLbbakFwy/dzBNNOsd8Xr/PLh/ld5XYiy1nyjg/\ntMleYZjbXzb0tY5XjBwxunAuF13PrmVXPYMfxLLZaYWgUmBmKd1xMH2E4A1z\nR+lMTLN+5qJdoLteCClWkXKE1ERU0kgTTo2UM79cPpokp/fGLvDuuGW4zuwF\nd6/kM8JeX3dXB6TUbLq455GBL2kSeN/vqWdCnc7JnDiLdN9v5CAtBpROVZwU\n2iT5eDBCgrtXt9U2MtLbt1AcxvbcfFGtNfXxHJf9v87GhQz/uWTk7vzJGl3m\nuVkNiw6buRwsvCoO/RdaAqloHjZiqKuY3Z3eXmtO3Xu58NyeVSt9+jC0tkmm\nHXV6\r\n=S+mB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICB2Zd+fUR3kuyryF91IaHSqE40aa2XxUeKAM3v4LuAbAiEA2iDgiM38ebmilGFuV/RzTeSUoMbilADAESF6IXmDCfA="}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.3.0_1581369297359_0.3484034742842963"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.4.0":{"name":"redux-area","version":"0.4.0","description":"simplified strongly typed redux","keywords":["redux","typescript","simple","strongly-typed","auto generated interface"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^5.3.6","redux":"^4.0.5"},"readme":"# Redux-area\n**Short:** `Simplified strongly typed redux`\n\n_(version 0.4.0)_\n\nWhen defining redux actions and reducers with typescript,\nyou often need a lot of typing for interfaces to ensure that you can use your actions,\naction-creators and reducers with autocompletion ect.\n\nredux-area tries to simplify creation of redux logic by hiding / calculating types,\nand thereby holding the code more clean.\n\nIt uses the [immer](https://github.com/immerjs/immer) npm module for keeping the reducers as simple as possible.\n\n> You can create normal reducers if you need them\n\nGithub [Source](https://github.com/alfnielsen/redux-area) Code\n\nThe npm [package](https://www.npmjs.com/package/redux-area)\n\nSee Github Wiki for full [Documentation](https://github.com/alfnielsen/redux-area/wiki).\n\n**The goal is:** to ease and reduce the amount of code we need to write to get all benefits of both\n\n- redux _(single truth, deterministic state transition and view rendering, time travel ect..)_\n  and\n- typescript _(strongly typed symbols and interfaces, code checking/nullable check, auto-rewriting, autocompletion, auto-importing ect..)_.\n\n## Usage\n\nMyArea.ts\n\n```ts\nimport { FetchAreaBase } from 'redux-area'\n\n// State (Optional)\nexport interface IMyAreaState {\n   name: string,\n   loading: boolean\n   error?: Error\n}\n\n// Create Area\nconst area = FetchAreaBase(MyApp).CreateArea({\n   namePrefix: 'MyArea',\n   state: {\n     name: ''\n   }\n)\n\n// Add single action\nconst updateName = area\n   .add('updateName')\n   .action((name: string) => ({\n      name\n   }))\n   .produce((draft, { name }) => {\n      draft.name = name\n   })\n\n// Add single empty action (action has only a type and no other values)\nconst clearName = area\n   .add('clearName')\n   .produce(draft => {\n      draft.name = ''\n   })\n\n// Add fetch action (3 actions)\nconst getName = area\n   .addFetch('getName')\n   .action((id: number) => ({ id }))\n   .produce((draft) => {\n      draft.name = ''\n   })\n   .successAction((name: string) => ({ name }))\n   .successProduce((draft, { name }) => {\n      draft.name = name\n   })\n   .failureAction((error: Error) => ({ error }))\n   .failureProduce((draft, { error }) => {\n      draft.error = error\n   })\n\n// We don't need to add empty action (They will still be created in the 'getNewName')\nexport const getNewName = area\n   .addFetch('getNewName')\n   .successAction((newName: string) => ({ newName }))\n   .successProduce((draft, { newName }) => {\n      draft.name = newName\n   })\n   .baseFailure()\n\n// Export Redux actions\nexport const MyAreaActions = {\n   updateName,\n   clearName,\n   getNameFetch: getName.fetch,\n   getNameSuccess: getName.success,\n   getNameFailure: getName.failure,\n   // By exporting the 'getNewName',\n   // Saga's ect. can get the success and failure methods,\n   // and you only have to expose then fetch to views.\n   // (Or you can add all like the 'getName')\n   getNewName: getNewName.fetch\n}\n// You can get the action type definition for Saga's, custom reducers, ect. like this:\ntype UpdateNameActionType = typeof updateName.type\n\n// Export initial state for area\nexport const MyAreaInitState = area.initialState\n// Export root-reducer for area\nexport const MyAreaRootReducer = area.rootReducer()\n```\n\n## Install\n\n```sh\nnpm install redux-area\n```\n\nOr\n\n```sh\nyarn add redux-area\n```\n\n## Demo\n\n_(editable codesandbox.io)_\n\nDemo: [Demo in React](https://codesandbox.io/s/redux-area-base-ex-obn9u?fontsize=14&hidenavigation=1&theme=dark)\n\nDemo: [Demo in React (No interfaces)](https://codesandbox.io/s/redux-area-no-interfaces-r256o?fontsize=14&hidenavigation=1&theme=dark)\n\n[![Demo CountPages alpha](./ExImage.png)](https://codesandbox.io/s/redux-area-no-interfaces-r256o?fontsize=14&hidenavigation=1&theme=dark)\n","readmeFilename":"README.md","gitHead":"daa4f1d8422d1be03b4b580d477a35c04d7bdad7","_id":"redux-area@0.4.0","_nodeVersion":"12.1.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-zfd3lu6OKZnll8DB7aeCl7BU7XtdgfKyqjMrMe5BZ+R57fzsM7lBD8YJkk44Ia3lNl09VyTP21adrUSr5rwzeQ==","shasum":"53914651ed91a93cb8e097e723f5768143248122","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.4.0.tgz","fileCount":10,"unpackedSize":519001,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeXBaXCRA9TVsSAnZWagAAdyEP/R6UWRmqg34FasLUGZul\nISrcOC+gpcpXcSKcyJA/i8Ca1vVjrU0cEr0R2I94+W4y5cyDQUehHQQOr9mH\nBVabZzAjOXPZyay8zTm76dPSLQBoPj5ki/FHobQROgif9R306gb5gjzA72iS\nFDhkm7F2Qy7DOg6gQX8BdrXocrTLPiszZlgn4es/fH1puq+wxaeYGqS8l3hO\nzTUgZsbjGeqn84AjeYMVpIWxb36smYkxvk1M6e2XYcjohFkKioiQj9GLTJib\niHmTNuhOD+CCRICMpYOMz9sHUVJOg6huuCC3DQC/3EGi3GColLWo/pUuc1XF\nxmAL12tmpEmrpcoHtd4wLVtWRI8Hgw2QMOF42ABNfilg2fS47HXDiQ1f6KQE\ns/azocJsR42SwMnR5MIolzxNkUG6Il/Y3rv3k0H64TcmJUWilY+kF6G4KMwM\n1JZiQv6/OxTZW1aYHxNgKa5f9DI3WDmzWdsxx8NpBJxJEl0Ky5xEfvBNvwVm\n0GEKfBsl+d1QAdWecNa3bw0mORgFI5bBGXNVq3AV7Ig6U1ziROTVddWtyzeQ\nC4uUkcxqvgOdp2S8LBSoWuRUqTtR5ibJE9Ru764vuFHkDBdX8OdOxKwzBVuY\n/3LpeaIzf6Pj5K+0For9gGqCnnoMJ4jjl+kyiNes2r9RKxp/0EaNkoh7vlyQ\nyh7C\r\n=h3Jj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHfqnbZbEYnxjrVsTBuMhEwRZ8tUc9Aae+LFJND1fZYlAiBvVlJBh4ZYkqOLxjjPW6qHHdrxXy170y4Y4Q/8lCGRuQ=="}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.4.0_1583093399191_0.4461357302453335"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.4.1":{"name":"redux-area","version":"0.4.1","description":"simplified strongly typed redux","keywords":["redux","typescript","simple","strongly-typed","auto generated interface"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^5.3.6","redux":"^4.0.5"},"readme":"# Redux-area\n**Short:** `Simplified strongly typed redux`\n\n_(version 0.4.0)_\n\nWhen defining redux actions and reducers with typescript,\nyou often need a lot of typing for interfaces to ensure that you can use your actions,\naction-creators and reducers with autocompletion ect.\n\nredux-area tries to simplify creation of redux logic by hiding / calculating types,\nand thereby holding the code more clean.\n\nIt uses the [immer](https://github.com/immerjs/immer) npm module for keeping the reducers as simple as possible.\n\n> You can create normal reducers if you need them\n\nGithub [Source](https://github.com/alfnielsen/redux-area) Code\n\nThe npm [package](https://www.npmjs.com/package/redux-area)\n\nSee Github Wiki for full [Documentation](https://github.com/alfnielsen/redux-area/wiki).\n\n**The goal is:** to ease and reduce the amount of code we need to write to get all benefits of both\n\n- redux _(single truth, deterministic state transition and view rendering, time travel ect..)_\n  and\n- typescript _(strongly typed symbols and interfaces, code checking/nullable check, auto-rewriting, autocompletion, auto-importing ect..)_.\n\n## Usage\n\nMyArea.ts\n\n```ts\nimport { FetchAreaBase } from 'redux-area'\n\n// State (Optional)\nexport interface IMyAreaState {\n   name: string,\n   loading: boolean\n   error?: Error\n}\n\n// Create Area\nconst area = FetchAreaBase(MyApp).CreateArea({\n   namePrefix: 'MyArea',\n   state: {\n     name: ''\n   }\n)\n\n// Add single action\nconst updateName = area\n   .add('updateName')\n   .action((name: string) => ({\n      name\n   }))\n   .produce((draft, { name }) => {\n      draft.name = name\n   })\n\n// Add single empty action (action has only a type and no other values)\nconst clearName = area\n   .add('clearName')\n   .produce(draft => {\n      draft.name = ''\n   })\n\n// Add fetch action (3 actions)\nconst getName = area\n   .addFetch('getName')\n   .action((id: number) => ({ id }))\n   .produce((draft) => {\n      draft.name = ''\n   })\n   .successAction((name: string) => ({ name }))\n   .successProduce((draft, { name }) => {\n      draft.name = name\n   })\n   .failureAction((error: Error) => ({ error }))\n   .failureProduce((draft, { error }) => {\n      draft.error = error\n   })\n\n// We don't need to add empty action (They will still be created in the 'getNewName')\nexport const getNewName = area\n   .addFetch('getNewName')\n   .successAction((newName: string) => ({ newName }))\n   .successProduce((draft, { newName }) => {\n      draft.name = newName\n   })\n   .baseFailure()\n\n// Export Redux actions\nexport const MyAreaActions = {\n   updateName,\n   clearName,\n   getNameFetch: getName.fetch,\n   getNameSuccess: getName.success,\n   getNameFailure: getName.failure,\n   // By exporting the 'getNewName',\n   // Saga's ect. can get the success and failure methods,\n   // and you only have to expose then fetch to views.\n   // (Or you can add all like the 'getName')\n   getNewName: getNewName.fetch\n}\n// You can get the action type definition for Saga's, custom reducers, ect. like this:\ntype UpdateNameActionType = typeof updateName.type\n\n// Export initial state for area\nexport const MyAreaInitState = area.initialState\n// Export root-reducer for area\nexport const MyAreaRootReducer = area.rootReducer()\n```\n\n## Install\n\n```sh\nnpm install redux-area\n```\n\nOr\n\n```sh\nyarn add redux-area\n```\n\n## Demo\n\n_(editable codesandbox.io)_\n\nDemo: [Demo in React](https://codesandbox.io/s/redux-area-base-ex-obn9u?fontsize=14&hidenavigation=1&theme=dark)\n\nDemo: [Demo in React (No interfaces)](https://codesandbox.io/s/redux-area-no-interfaces-r256o?fontsize=14&hidenavigation=1&theme=dark)\n\n[![Demo CountPages alpha](./ExImage.png)](https://codesandbox.io/s/redux-area-no-interfaces-r256o?fontsize=14&hidenavigation=1&theme=dark)\n","readmeFilename":"README.md","gitHead":"daa4f1d8422d1be03b4b580d477a35c04d7bdad7","_id":"redux-area@0.4.1","_nodeVersion":"12.1.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-gl07+wotY0OXHDDUECxQkAeXXZDXdM9pkSdx3+ojQaSP06dLt40p80urCyyFaTMCmze6+QeGLcLHihTQRPS3Mw==","shasum":"67c9d603ef28ce5b757d829edd5e6dccd96d79eb","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.4.1.tgz","fileCount":10,"unpackedSize":514143,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeXlfUCRA9TVsSAnZWagAAao4QAILRRbg5POCQikGvKHyd\nPWlYs2bTWSVJ09sQf9bMtI1Gy5cM6mhPZv5ZVbydpn8D7T70W37biSTlGBis\njteUytXmlX4pkefembWRru3QnKMOTpxaUrOYcyoajuJHUUuIZKq4Oo58AV/J\ntfZy3UwWkoMcQ/8wM29hgn2uT5c1Yw92RBxEGtWyijk2RrYEQXdZmUtSQAwo\nc/LD/dEWKzwGQzwbFvH7X3itVVQhEUjfLdlEfrwEmEYi2FozRv4XHcB29dwm\nsM3esKxWaKeuoYPHeO18E4gf53bnYez//ALu/L6jatSpcG92j9w5fpwwRfNO\n6XsTyv2WFVa2oR9yJLK6PVAZppq/cjg6gvPcW4PjZ3mrC0MVltuE+WopAICu\nkPUDqeUH6OKGx1vWCNruyIu3EbyI2C1nvYmaLlbRNwNwN6u7MlPs580eYzc+\nxjqVjY+Zo32eL+yoXzW3xMGhxoDnn6doNzloV7z2uoTU/VSeZFppFESzHt/0\n2pAjwawOdDuU80lADohlDW71FsnrypMz7crM9ghHV9kbfdX2vR0IWt7rI6s2\nj/xxew70dIHv0SV313ffEFGk6RPWQrnYhFZOf9nue9I4Gv54xteUq0sTfUQI\nFdqbpbyBlM1wXN6hf/xoxcMUZx1Rm7XyIYNK20gugsmyMBPO2hRccZbJtKco\nhFnW\r\n=U9g8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCodAPzDp2MibOfqWZRZmT+/ja4/kbOyvFfAw7Q229cVQIhAKlbLmOwfd2fPYLOc3hCyHbpzkLVP/upoXOObnN24ujq"}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.4.1_1583241171741_0.7200602547696946"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.4.2":{"name":"redux-area","version":"0.4.2","description":"simplified strongly typed redux","keywords":["redux","typescript","simple","strongly-typed","auto generated interface"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^5.3.6","redux":"^4.0.5"},"readme":"# Redux-area\n**Short:** `Simplified strongly typed redux`\n\n_(version 0.4.0)_\n\nWhen defining redux actions and reducers with typescript,\nyou often need a lot of typing for interfaces to ensure that you can use your actions,\naction-creators and reducers with autocompletion ect.\n\nredux-area tries to simplify creation of redux logic by hiding / calculating types,\nand thereby holding the code more clean.\n\nIt uses the [immer](https://github.com/immerjs/immer) npm module for keeping the reducers as simple as possible.\n\n> You can create normal reducers if you need them\n\nGithub [Source](https://github.com/alfnielsen/redux-area) Code\n\nThe npm [package](https://www.npmjs.com/package/redux-area)\n\nSee Github Wiki for full [Documentation](https://github.com/alfnielsen/redux-area/wiki).\n\n**The goal is:** to ease and reduce the amount of code we need to write to get all benefits of both\n\n- redux _(single truth, deterministic state transition and view rendering, time travel ect..)_\n  and\n- typescript _(strongly typed symbols and interfaces, code checking/nullable check, auto-rewriting, autocompletion, auto-importing ect..)_.\n\n## Usage\n\nMyArea.ts\n\n```ts\nimport { FetchAreaBase } from 'redux-area'\n\n// State (Optional)\nexport interface IMyAreaState {\n   name: string,\n   loading: boolean\n   error?: Error\n}\n\n// Create Area\nconst area = FetchAreaBase(MyApp).CreateArea({\n   namePrefix: 'MyArea',\n   state: {\n     name: ''\n   }\n)\n\n// Add single action\nconst updateName = area\n   .add('updateName')\n   .action((name: string) => ({\n      name\n   }))\n   .produce((draft, { name }) => {\n      draft.name = name\n   })\n\n// Add single empty action (action has only a type and no other values)\nconst clearName = area\n   .add('clearName')\n   .produce(draft => {\n      draft.name = ''\n   })\n\n// Add fetch action (3 actions)\nconst getName = area\n   .addFetch('getName')\n   .action((id: number) => ({ id }))\n   .produce((draft) => {\n      draft.name = ''\n   })\n   .successAction((name: string) => ({ name }))\n   .successProduce((draft, { name }) => {\n      draft.name = name\n   })\n   .failureAction((error: Error) => ({ error }))\n   .failureProduce((draft, { error }) => {\n      draft.error = error\n   })\n\n// We don't need to add empty action (They will still be created in the 'getNewName')\nexport const getNewName = area\n   .addFetch('getNewName')\n   .successAction((newName: string) => ({ newName }))\n   .successProduce((draft, { newName }) => {\n      draft.name = newName\n   })\n   .baseFailure()\n\n// Export Redux actions\nexport const MyAreaActions = {\n   updateName,\n   clearName,\n   getNameFetch: getName.fetch,\n   getNameSuccess: getName.success,\n   getNameFailure: getName.failure,\n   // By exporting the 'getNewName',\n   // Saga's ect. can get the success and failure methods,\n   // and you only have to expose then fetch to views.\n   // (Or you can add all like the 'getName')\n   getNewName: getNewName.fetch\n}\n// You can get the action type definition for Saga's, custom reducers, ect. like this:\ntype UpdateNameActionType = typeof updateName.type\n\n// Export initial state for area\nexport const MyAreaInitState = area.initialState\n// Export root-reducer for area\nexport const MyAreaRootReducer = area.rootReducer()\n```\n\n## Install\n\n```sh\nnpm install redux-area\n```\n\nOr\n\n```sh\nyarn add redux-area\n```\n\n## Demo\n\n_(editable codesandbox.io)_\n\nDemo: [Demo in React](https://codesandbox.io/s/redux-area-base-ex-obn9u?fontsize=14&hidenavigation=1&theme=dark)\n\nDemo: [Demo in React (No interfaces)](https://codesandbox.io/s/redux-area-no-interfaces-r256o?fontsize=14&hidenavigation=1&theme=dark)\n\n[![Demo CountPages alpha](./ExImage.png)](https://codesandbox.io/s/redux-area-no-interfaces-r256o?fontsize=14&hidenavigation=1&theme=dark)\n","readmeFilename":"README.md","gitHead":"daa4f1d8422d1be03b4b580d477a35c04d7bdad7","_id":"redux-area@0.4.2","_nodeVersion":"12.1.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-EQXg4hgzZEtomEHuvFn4+lEfQzQxAXMdrm7VGzhscdpxq1hmF94rEYbdlRggVZlQdlTIdJmEnx9j5XGLhNA1ng==","shasum":"eb6adee66cf5b561e574c0f04a34ff749198a65b","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.4.2.tgz","fileCount":10,"unpackedSize":595956,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejdKOCRA9TVsSAnZWagAAlfUQAJhaUPiE7V3EXWZ0wl8t\n/MrSfatqvOwdPvRWP/5AfDnHkXRuhsJSveSJdcnz2P92gC42A0yj+LEFzR2G\nbceRMVpUahmMehnt53f7Hb0h95z7PaMBGcPyySgG+YBA7LtAWA/Mla/rczAW\nLsO673kLByuTuXK+T4ml+Q0+GqCuSyc8ai8Fa5nTzqTWa06zd56t1DwZQ/qb\nifMKPAU6DCHYvryK2cu0HniMOsOHdFOjcxMliyE29G0ei1pCYn3ZNOZIIolw\nUh4OvasCX3/Yv8249zmakQHadPiN99OH5pqVdamsWhjeWCbrpPQEMsfMlo3c\nmMEeCed6U95uAfz0CNpINJvfMOy1c9C5XQQxP6zYKc0+rwOKQC/XVz3vlAlR\nm1BA8kxPmZiCmHiZtGKAVeegAWEVi2nS6BqW1uRU78WBTRdxAEXV/EPIOxLd\nF6cPYEVdqbpaKwR+J7WBqHoOBLvyFANioIYkgs2cAVCeurml/OxHpmczmJVi\nFVKgRmqUKcJtvuh2eFUURhWCeQJvRKNKNwO9UDIeEjyySuR62EHkHoEUq7z6\npCxavDcrrSRRDjvg+JfVz0MFTKMc4YCbMKGY0PpZPsvF8LFXQnFV7eY3+Xln\nvOVSM15sxQfQNVvR0n3ewsr1L9YDscJJ/Jn10Y4zW0yj6++CGxmAGoCek24b\ntJQu\r\n=hXTA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCaOZqF7rGu00uY90sq6ZH0d8rViBhdIGPj2r6KWYZz5gIgFtfpCrLTyQ3ZsdkrMvBfoU3WGdWEfPrEwKTpotKFiDs="}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.4.2_1586352782103_0.9991743057372289"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.4.3":{"name":"redux-area","version":"0.4.3","description":"simplified strongly typed redux","keywords":["redux","typescript","simple","strongly-typed","auto generated interface"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^5.3.6","redux":"^4.0.5"},"readme":"# Redux-area\n**Short:** `Simplified strongly typed redux`\n\n_(version 0.4.0)_\n\nWhen defining redux actions and reducers with typescript,\nyou often need a lot of typing for interfaces to ensure that you can use your actions,\naction-creators and reducers with autocompletion ect.\n\nredux-area tries to simplify creation of redux logic by hiding / calculating types,\nand thereby holding the code more clean.\n\nIt uses the [immer](https://github.com/immerjs/immer) npm module for keeping the reducers as simple as possible.\n\n> You can create normal reducers if you need them\n\nGithub [Source](https://github.com/alfnielsen/redux-area) Code\n\nThe npm [package](https://www.npmjs.com/package/redux-area)\n\nSee Github Wiki for full [Documentation](https://github.com/alfnielsen/redux-area/wiki).\n\n**The goal is:** to ease and reduce the amount of code we need to write to get all benefits of both\n\n- redux _(single truth, deterministic state transition and view rendering, time travel ect..)_\n  and\n- typescript _(strongly typed symbols and interfaces, code checking/nullable check, auto-rewriting, autocompletion, auto-importing ect..)_.\n\n## Usage\n\nMyArea.ts\n\n```ts\nimport { FetchAreaBase } from 'redux-area'\n\n// State (Optional)\nexport interface IMyAreaState {\n   name: string,\n   loading: boolean\n   error?: Error\n}\n\n// Create Area\nconst area = FetchAreaBase(MyApp).CreateArea({\n   namePrefix: 'MyArea',\n   state: {\n     name: ''\n   }\n)\n\n// Add single action\nconst updateName = area\n   .add('updateName')\n   .action((name: string) => ({\n      name\n   }))\n   .produce((draft, { name }) => {\n      draft.name = name\n   })\n\n// Add single empty action (action has only a type and no other values)\nconst clearName = area\n   .add('clearName')\n   .produce(draft => {\n      draft.name = ''\n   })\n\n// Add fetch action (3 actions)\nconst getName = area\n   .addFetch('getName')\n   .action((id: number) => ({ id }))\n   .produce((draft) => {\n      draft.name = ''\n   })\n   .successAction((name: string) => ({ name }))\n   .successProduce((draft, { name }) => {\n      draft.name = name\n   })\n   .failureAction((error: Error) => ({ error }))\n   .failureProduce((draft, { error }) => {\n      draft.error = error\n   })\n\n// We don't need to add empty action (They will still be created in the 'getNewName')\nexport const getNewName = area\n   .addFetch('getNewName')\n   .successAction((newName: string) => ({ newName }))\n   .successProduce((draft, { newName }) => {\n      draft.name = newName\n   })\n   .baseFailure()\n\n// Export Redux actions\nexport const MyAreaActions = {\n   updateName,\n   clearName,\n   getNameFetch: getName.fetch,\n   getNameSuccess: getName.success,\n   getNameFailure: getName.failure,\n   // By exporting the 'getNewName',\n   // Saga's ect. can get the success and failure methods,\n   // and you only have to expose then fetch to views.\n   // (Or you can add all like the 'getName')\n   getNewName: getNewName.fetch\n}\n// You can get the action type definition for Saga's, custom reducers, ect. like this:\ntype UpdateNameActionType = typeof updateName.type\n\n// Export initial state for area\nexport const MyAreaInitState = area.initialState\n// Export root-reducer for area\nexport const MyAreaRootReducer = area.rootReducer()\n```\n\n## Install\n\n```sh\nnpm install redux-area\n```\n\nOr\n\n```sh\nyarn add redux-area\n```\n\n## Demo\n\n_(editable codesandbox.io)_\n\nDemo: [Demo in React](https://codesandbox.io/s/redux-area-base-ex-obn9u?fontsize=14&hidenavigation=1&theme=dark)\n\nDemo: [Demo in React (No interfaces)](https://codesandbox.io/s/redux-area-no-interfaces-r256o?fontsize=14&hidenavigation=1&theme=dark)\n\n[![Demo CountPages alpha](./ExImage.png)](https://codesandbox.io/s/redux-area-no-interfaces-r256o?fontsize=14&hidenavigation=1&theme=dark)\n","readmeFilename":"README.md","gitHead":"046d1375cfc6e5aa82a1baa9304e7bd10d3190ba","_id":"redux-area@0.4.3","_nodeVersion":"12.1.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-DlUkEVs3fxZikfqUWfEYKLxpcvPFHhVcIWDO5Ro6nYbZqIsj7gXDIU3bVoWNEnx54wCz2pckoyebWYgOPdA3MA==","shasum":"525871c4d851394d74779a639e8ea1103344839c","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.4.3.tgz","fileCount":10,"unpackedSize":599305,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJekNgFCRA9TVsSAnZWagAAC20P/jJYeDyhrXJe51PFYxPl\nvq5Dzh/qz2szNK+mlCswhg4zP+13XGYbUeBRN6xAfm9KPNPom3XDml4oCOBL\nPzWiV7qSXFVQ8m99TFQ1Ga9ZLj1GjuBJa1jIQamoGCxg9zxvB/Mh/5IYWTSk\nLFqDxynGxtUsw9r0yEtweG20MqS7WOOvNaJOOsN5bXMD6+tcGwV9dm36JnMk\nE6ayJ/N/K4k7yyghEO/+MsGiLoyp7ZCZ5hwwEgcgxXgZ2ZN/4Qtm5PLTvT7h\n1D5DzgqWjpo7GoTy51Up7mXFLszZJG0NKPkjKofNxTNOIdPBuOjrLXq6SuL2\ngdwZwGs/4odVfeREWm6LHEOHuLXvalVx798F4jiLx3Y2gffQoJqc2V6pkaMO\ncZe9QNB1aPbm4s8npziGp7gYmjKD/grurXM3P+Hrd5KGa/PJ7AYWSgGpqKq0\nW+9JCciIP1Ig++EdszmhwFX3jAU0B5lVVEhiH0dz/WLq7TZYeyHkR224SvWP\nyZLxCk0iGpnAmb4f1Nf4TyUwrH+sugPdByY71lNbp0A9+QGdmdpmwA7uoDDt\n1fQZavxSRsQZIvlZWE3Oru4RAAH2Hd5flV1gVECaBiGEC4ZLqS0GvvvjUZqp\nk997DKnc9+TxIzdnOfykl0KFeLPme9zGJwuD0lWWXEYpfYRhcWss2LimkE/g\nxOij\r\n=ddx+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDU2brwFgK4Sgpx7nUFxxF6khAlB3EE0Ie9jme2WyMbVgIgDo9Bc901g+2D0NU8aZgrsOKCSRPARqs9OsSqtoPDSeI="}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.4.3_1586550788932_0.73387524725952"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.4.4":{"name":"redux-area","version":"0.4.4","description":"simplified strongly typed redux","keywords":["redux","typescript","simple","strongly-typed","auto generated interface"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^5.3.6","redux":"^4.0.5"},"readme":"# Redux-area\n**Short:** `Simplified strongly typed redux`\n\n_(version 0.4.0)_\n\nWhen defining redux actions and reducers with typescript,\nyou often need a lot of typing for interfaces to ensure that you can use your actions,\naction-creators and reducers with autocompletion ect.\n\nredux-area tries to simplify creation of redux logic by hiding / calculating types,\nand thereby holding the code more clean.\n\nIt uses the [immer](https://github.com/immerjs/immer) npm module for keeping the reducers as simple as possible.\n\n> You can create normal reducers if you need them\n\nGithub [Source](https://github.com/alfnielsen/redux-area) Code\n\nThe npm [package](https://www.npmjs.com/package/redux-area)\n\nSee Github Wiki for full [Documentation](https://github.com/alfnielsen/redux-area/wiki).\n\n**The goal is:** to ease and reduce the amount of code we need to write to get all benefits of both\n\n- redux _(single truth, deterministic state transition and view rendering, time travel ect..)_\n  and\n- typescript _(strongly typed symbols and interfaces, code checking/nullable check, auto-rewriting, autocompletion, auto-importing ect..)_.\n\n## Usage\n\nMyArea.ts\n\n```ts\nimport { FetchAreaBase } from 'redux-area'\n\n// State (Optional)\nexport interface IMyAreaState {\n   name: string,\n   loading: boolean\n   error?: Error\n}\n\n// Create Area\nconst area = FetchAreaBase(MyApp).CreateArea({\n   namePrefix: 'MyArea',\n   state: {\n     name: ''\n   }\n)\n\n// Add single action\nconst updateName = area\n   .add('updateName')\n   .action((name: string) => ({\n      name\n   }))\n   .produce((draft, { name }) => {\n      draft.name = name\n   })\n\n// Add single empty action (action has only a type and no other values)\nconst clearName = area\n   .add('clearName')\n   .produce(draft => {\n      draft.name = ''\n   })\n\n// Add fetch action (3 actions)\nconst getName = area\n   .addFetch('getName')\n   .action((id: number) => ({ id }))\n   .produce((draft) => {\n      draft.name = ''\n   })\n   .successAction((name: string) => ({ name }))\n   .successProduce((draft, { name }) => {\n      draft.name = name\n   })\n   .failureAction((error: Error) => ({ error }))\n   .failureProduce((draft, { error }) => {\n      draft.error = error\n   })\n\n// We don't need to add empty action (They will still be created in the 'getNewName')\nexport const getNewName = area\n   .addFetch('getNewName')\n   .successAction((newName: string) => ({ newName }))\n   .successProduce((draft, { newName }) => {\n      draft.name = newName\n   })\n   .baseFailure()\n\n// Export Redux actions\nexport const MyAreaActions = {\n   updateName,\n   clearName,\n   getNameFetch: getName.fetch,\n   getNameSuccess: getName.success,\n   getNameFailure: getName.failure,\n   // By exporting the 'getNewName',\n   // Saga's ect. can get the success and failure methods,\n   // and you only have to expose then fetch to views.\n   // (Or you can add all like the 'getName')\n   getNewName: getNewName.fetch\n}\n// You can get the action type definition for Saga's, custom reducers, ect. like this:\ntype UpdateNameActionType = typeof updateName.type\n\n// Export initial state for area\nexport const MyAreaInitState = area.initialState\n// Export root-reducer for area\nexport const MyAreaRootReducer = area.rootReducer()\n```\n\n## Install\n\n```sh\nnpm install redux-area\n```\n\nOr\n\n```sh\nyarn add redux-area\n```\n\n## Demo\n\n_(editable codesandbox.io)_\n\nDemo: [Demo in React](https://codesandbox.io/s/redux-area-base-ex-obn9u?fontsize=14&hidenavigation=1&theme=dark)\n\nDemo: [Demo in React (No interfaces)](https://codesandbox.io/s/redux-area-no-interfaces-r256o?fontsize=14&hidenavigation=1&theme=dark)\n\n[![Demo CountPages alpha](./ExImage.png)](https://codesandbox.io/s/redux-area-no-interfaces-r256o?fontsize=14&hidenavigation=1&theme=dark)\n","readmeFilename":"README.md","gitHead":"4385ef3acd79625cecb578f135fdf81f6f75d437","_id":"redux-area@0.4.4","_nodeVersion":"12.1.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-X+MB8j7SPLpNBxRwebXAr4iduUev7GPg9S8CnfhH+zNk6eS0XhpC1WcS8CN8artePldZ1C29XgBKGIcajwGAlg==","shasum":"083a76a13f633b562f3839abc7773276277860e5","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.4.4.tgz","fileCount":10,"unpackedSize":599259,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJekaJiCRA9TVsSAnZWagAAtSYP/jRkb3adlAYitQwiU5Hw\nD3W/Ln0g1mGpcp3dz5zr/683QfPIK0fRywWcmMrVuT7RnX3XDdRN5RtPNNyE\n/vhbgn2K21rRoZOBLb3HwAPSjLfUR6hIfTZSPytOW/5N5X/8GPIVRGO6Jxu0\nx/2++67yakkJYrEu8z0BCZwZucDBJX5/8UAaHvxSjuq6YIgrDMqQa5AWDFx8\nybX50AOMBZhN4+ViFZWl2IZ5foRRZLmTC0tU53Z0r0kIjXZLUTdPtwUIHAGd\npa2ktmqE86II64NEugaWs8kTeUCkvRe5HOl+HtSMVWfTJApwPG62ynwFrpGZ\ndk1E9q7yjaMP4QzPrV+jpUl9ntPZpFUCUZf+lLq2lmZdN5uWiOWWjiISIR5b\n1Oa4krS6NpaCH5i+oUEUzCQbYiI5mzxiwy0PjUKhfOUwH2CSh4T/N6KTl+bM\nxonMbnRPbrF6oOUN4Y1ZHOeH6PKxYYPf2iPkBw/KOcgPwCLsQouym3OuppLI\n2B9ozHNc98BC+dPltvU7HnkXY1fprwrJsJvGMqz+dYObcoxr/w9YdXm/jK/Z\ndHQKWvvO2W1a3yrUeUEd200k0eF0+RFCRFxuPxRhybiiHg4r18Erp+dsXfz+\n7hkPZ49NwG5F5nIuXnWRBCEF+qkkxRTPVruff0hFRfsINyvAGEdKEZxHRmjm\n0dy1\r\n=6bNn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCUE4+16x4hdRqNMa7hqfAkwHKoMtKFd3lHGWOM2I1MYAIhAPDVNKTEoZ4qUn8nXwYPJ+tPZvsecGYMcbz78duc1Os7"}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.4.4_1586602593808_0.8729465210536289"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.4.5":{"name":"redux-area","version":"0.4.5","description":"simplified strongly typed redux","keywords":["redux","typescript","simple","strongly-typed","auto generated interface"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^5.3.6","redux":"^4.0.5"},"readme":"# Redux-area\n**Short:** `Simplified strongly typed redux`\n\n_(version 0.4.0)_\n\nWhen defining redux actions and reducers with typescript,\nyou often need a lot of typing for interfaces to ensure that you can use your actions,\naction-creators and reducers with autocompletion ect.\n\nredux-area tries to simplify creation of redux logic by hiding / calculating types,\nand thereby holding the code more clean.\n\nIt uses the [immer](https://github.com/immerjs/immer) npm module for keeping the reducers as simple as possible.\n\n> You can create normal reducers if you need them\n\nGithub [Source](https://github.com/alfnielsen/redux-area) Code\n\nThe npm [package](https://www.npmjs.com/package/redux-area)\n\nSee Github Wiki for full [Documentation](https://github.com/alfnielsen/redux-area/wiki).\n\n**The goal is:** to ease and reduce the amount of code we need to write to get all benefits of both\n\n- redux _(single truth, deterministic state transition and view rendering, time travel ect..)_\n  and\n- typescript _(strongly typed symbols and interfaces, code checking/nullable check, auto-rewriting, autocompletion, auto-importing ect..)_.\n\n## Usage\n\nMyArea.ts\n\n```ts\nimport { FetchAreaBase } from 'redux-area'\n\n// State (Optional)\nexport interface IMyAreaState {\n   name: string,\n   loading: boolean\n   error?: Error\n}\n\n// Create Area\nconst area = FetchAreaBase(MyApp).CreateArea({\n   namePrefix: 'MyArea',\n   state: {\n     name: ''\n   }\n)\n\n// Add single action\nconst updateName = area\n   .add('updateName')\n   .action((name: string) => ({\n      name\n   }))\n   .produce((draft, { name }) => {\n      draft.name = name\n   })\n\n// Add single empty action (action has only a type and no other values)\nconst clearName = area\n   .add('clearName')\n   .produce(draft => {\n      draft.name = ''\n   })\n\n// Add fetch action (3 actions)\nconst getName = area\n   .addFetch('getName')\n   .action((id: number) => ({ id }))\n   .produce((draft) => {\n      draft.name = ''\n   })\n   .successAction((name: string) => ({ name }))\n   .successProduce((draft, { name }) => {\n      draft.name = name\n   })\n   .failureAction((error: Error) => ({ error }))\n   .failureProduce((draft, { error }) => {\n      draft.error = error\n   })\n\n// We don't need to add empty action (They will still be created in the 'getNewName')\nexport const getNewName = area\n   .addFetch('getNewName')\n   .successAction((newName: string) => ({ newName }))\n   .successProduce((draft, { newName }) => {\n      draft.name = newName\n   })\n   .baseFailure()\n\n// Export Redux actions\nexport const MyAreaActions = {\n   updateName,\n   clearName,\n   getNameFetch: getName.fetch,\n   getNameSuccess: getName.success,\n   getNameFailure: getName.failure,\n   // By exporting the 'getNewName',\n   // Saga's ect. can get the success and failure methods,\n   // and you only have to expose then fetch to views.\n   // (Or you can add all like the 'getName')\n   getNewName: getNewName.fetch\n}\n// You can get the action type definition for Saga's, custom reducers, ect. like this:\ntype UpdateNameActionType = typeof updateName.type\n\n// Export initial state for area\nexport const MyAreaInitState = area.initialState\n// Export root-reducer for area\nexport const MyAreaRootReducer = area.rootReducer()\n```\n\n## Install\n\n```sh\nnpm install redux-area\n```\n\nOr\n\n```sh\nyarn add redux-area\n```\n\n## Demo\n\n_(editable codesandbox.io)_\n\nDemo: [Demo in React](https://codesandbox.io/s/redux-area-base-ex-obn9u?fontsize=14&hidenavigation=1&theme=dark)\n\nDemo: [Demo in React (No interfaces)](https://codesandbox.io/s/redux-area-no-interfaces-r256o?fontsize=14&hidenavigation=1&theme=dark)\n\n[![Demo CountPages alpha](./ExImage.png)](https://codesandbox.io/s/redux-area-no-interfaces-r256o?fontsize=14&hidenavigation=1&theme=dark)\n","readmeFilename":"README.md","gitHead":"0b5f87865585b53bb61c4ab6e4a689e3dbfa7472","_id":"redux-area@0.4.5","_nodeVersion":"12.1.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-8HzvZObdoEsXeW3GjYL31Lv2qmh931y9vehwLL0goCNulhnRGM1Yf7S6K+wPSap7D+LPwv8o7ZuXbGYu4vZ3IA==","shasum":"aebeb1289e83e5ccdc08d28853b15cb2faf8e8ee","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.4.5.tgz","fileCount":10,"unpackedSize":599914,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJekaj4CRA9TVsSAnZWagAA0D0P/0H4vUGsZDVpBKxOvy+q\nBIY8dekXCw3eu4kSHKvkaQ8zV5izb1moeeKugUnVO5yWV+a7DzDfW5Gsi6hy\nQFoRKeFF/IkhuHwzxz0bqvoL+620Lb3EMU62r2rPiWTePjlfjPIG7frEowuo\n+R1QxNP6ugSX0tcGmLRhKEE0OVDGlc2N52a/s2rxfe8bGTjPv26lZa5Owfs7\nRx72n0HdXuob7wO8DdRksWMdZRVBv88sPE+YlHYN9zLi/0FOAxJGWs4hh6NL\nVPiCf52Vl1FtbjckeiQOYfQyXIyWh99MRKATRs6on7pqNyHKlMGBufl8uqEe\nbWgbvpo6LrXvECHEwCV+M9KYlcvkwZSo5UmcijHVmZ0RwhA4dQZPCocU5NtF\naBOmZUs34Ao7eaQ3DSbkOaqf0JArTP0YTs6CZXvFxAznIJ49PuTwEYQZmEZ8\n782Qq3q6gmv/j8b9VEPh2cUDkyBwSHbN9MbTmwKBnf+ayMJycwT4qh88L6+4\n5m4cTJUoqJQxEv8iSypycpZklti2Q4zZYfvKnkB39xxEUqsx1oSCYLX12vJ+\nU1E/p7oO/q7VCXUQFKPJjVBOPEoDI2/Fe/6dhJuohhVxdsTMpMgeA/PB6a3R\nDWa9DFm0991a2slxg5avYc4qn8P8qmhvWGKjg2Rx4ySYmCzlRlTI/AxokktH\nMvL0\r\n=RBFq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCAfU8QYm2MmAxTRGat0oJFEV9XHUgTv2UKTmwP1uVY6wIgdWrEdbtYVTq3ZiQvACRjU8FJnHg5IL9IMr4M3MFhZBE="}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.4.5_1586604280041_0.5527664239428591"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.4.6":{"name":"redux-area","version":"0.4.6","description":"simplified strongly typed redux","keywords":["redux","typescript","simple","strongly-typed","auto generated interface"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^5.3.6","redux":"^4.0.5"},"readme":"# Redux-area\n**Short:** `Simplified strongly typed redux`\n\n_(version 0.4.0)_\n\nWhen defining redux actions and reducers with typescript,\nyou often need a lot of typing for interfaces to ensure that you can use your actions,\naction-creators and reducers with autocompletion ect.\n\nredux-area tries to simplify creation of redux logic by hiding / calculating types,\nand thereby holding the code more clean.\n\nIt uses the [immer](https://github.com/immerjs/immer) npm module for keeping the reducers as simple as possible.\n\n> You can create normal reducers if you need them\n\nGithub [Source](https://github.com/alfnielsen/redux-area) Code\n\nThe npm [package](https://www.npmjs.com/package/redux-area)\n\nSee Github Wiki for full [Documentation](https://github.com/alfnielsen/redux-area/wiki).\n\n**The goal is:** to ease and reduce the amount of code we need to write to get all benefits of both\n\n- redux _(single truth, deterministic state transition and view rendering, time travel ect..)_\n  and\n- typescript _(strongly typed symbols and interfaces, code checking/nullable check, auto-rewriting, autocompletion, auto-importing ect..)_.\n\n## Usage\n\nMyArea.ts\n\n```ts\nimport { FetchAreaBase } from 'redux-area'\n\n// State (Optional)\nexport interface IMyAreaState {\n   name: string,\n   loading: boolean\n   error?: Error\n}\n\n// Create Area\nconst area = FetchAreaBase(MyApp).CreateArea({\n   namePrefix: 'MyArea',\n   state: {\n     name: ''\n   }\n)\n\n// Add single action\nconst updateName = area\n   .add('updateName')\n   .action((name: string) => ({\n      name\n   }))\n   .produce((draft, { name }) => {\n      draft.name = name\n   })\n\n// Add single empty action (action has only a type and no other values)\nconst clearName = area\n   .add('clearName')\n   .produce(draft => {\n      draft.name = ''\n   })\n\n// Add fetch action (3 actions)\nconst getName = area\n   .addFetch('getName')\n   .action((id: number) => ({ id }))\n   .produce((draft) => {\n      draft.name = ''\n   })\n   .successAction((name: string) => ({ name }))\n   .successProduce((draft, { name }) => {\n      draft.name = name\n   })\n   .failureAction((error: Error) => ({ error }))\n   .failureProduce((draft, { error }) => {\n      draft.error = error\n   })\n\n// We don't need to add empty action (They will still be created in the 'getNewName')\nexport const getNewName = area\n   .addFetch('getNewName')\n   .successAction((newName: string) => ({ newName }))\n   .successProduce((draft, { newName }) => {\n      draft.name = newName\n   })\n   .baseFailure()\n\n// Export Redux actions\nexport const MyAreaActions = {\n   updateName,\n   clearName,\n   getNameFetch: getName.fetch,\n   getNameSuccess: getName.success,\n   getNameFailure: getName.failure,\n   // By exporting the 'getNewName',\n   // Saga's ect. can get the success and failure methods,\n   // and you only have to expose then fetch to views.\n   // (Or you can add all like the 'getName')\n   getNewName: getNewName.fetch\n}\n// You can get the action type definition for Saga's, custom reducers, ect. like this:\ntype UpdateNameActionType = typeof updateName.type\n\n// Export initial state for area\nexport const MyAreaInitState = area.initialState\n// Export root-reducer for area\nexport const MyAreaRootReducer = area.rootReducer()\n```\n\n## Install\n\n```sh\nnpm install redux-area\n```\n\nOr\n\n```sh\nyarn add redux-area\n```\n\n## Demo\n\n_(editable codesandbox.io)_\n\nDemo: [Demo in React](https://codesandbox.io/s/redux-area-base-ex-obn9u?fontsize=14&hidenavigation=1&theme=dark)\n\nDemo: [Demo in React (No interfaces)](https://codesandbox.io/s/redux-area-no-interfaces-r256o?fontsize=14&hidenavigation=1&theme=dark)\n\n[![Demo CountPages alpha](./ExImage.png)](https://codesandbox.io/s/redux-area-no-interfaces-r256o?fontsize=14&hidenavigation=1&theme=dark)\n","readmeFilename":"README.md","gitHead":"0b5f87865585b53bb61c4ab6e4a689e3dbfa7472","_id":"redux-area@0.4.6","_nodeVersion":"12.1.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-RhVnl+z4vjXRL2sHu+xXdtPEqSjQ9MpnapJlUmtbuvxIArA0LJhBjOSUWHtZ33e7DCTqHPK3UhRtgoFwc/S+BA==","shasum":"e2fd33a76a48ad000fab68e0d8e9efd04d67b3d5","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.4.6.tgz","fileCount":10,"unpackedSize":603073,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJekfGUCRA9TVsSAnZWagAAWX4P/3rmre8dtnjcBOBDHEJt\n/85Frn2HdMPOLXsjToESeqHvcJuQNfmF2Tu7fP6H9DhuSnqPyAFF8gVzRLAf\nK2i5OZsZB13tnP1W/ABYMjpe+rpQKiFMfeM4JbdofCJtlbdY1ilcgdbZlUhv\n5lIoEaRzqIo2n1vRDqmBUsjAzxtn0VhhepfcbhkUC8tBufrRMGL7Kp71WiCt\nGppk8GBwKagv2Qxs4nvB7PGBGK2/0nS0SGCzd1Qm498pvOQYYEhArodg6x96\nneGbrjowQI79pIDdxdB9v4VuufqRqQ4zehjDSng3JT09fSvIoq6gIZliWwLp\nJ7u8SAKGq0P01/gjjGg8XEiWkGh8yQLPZaOsZesw2A6Or8AN8f+NsrGjboSy\nClWhd+O6/8h4k0ao1hC/mcsY/0QGeARmLA5iHXlZzV/imwCc3/zm1Br9Iq9n\nEQ2qL8BsIdy98CoXu0zrl8oZZ5n8wEBXftToaXb+VvzOt0D+Ll+2Jm6s/TnE\n7P/kgQuj6g5JXnqLjuBbnTsyJa8cRbD5XouNkxVqU/z+8vjBp7Q80NO+1TQo\nGNIcb3Mxbisk7BaaQz/wwzxEl3PRcdkFbMZONUjWZZMU1owZXczkggBoKvV8\n9nkaAClEvQ5ulVNx4vp/MnRzV8hAFe/cvvERO62JtJYBTM436j1bU4kXF8LW\nENp7\r\n=vEuT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIChyeMIMOkWoWJIPGVTmmNWtrQOKt0E2Cm8i65MyUoWwAiEA7k2+WMOKChwNeTBEit4XG2lOJNttVDhNpMT1IXec/co="}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.4.6_1586622867373_0.01946774186837974"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.4.7":{"name":"redux-area","version":"0.4.7","description":"simplified strongly typed redux","keywords":["redux","typescript","simple","strongly-typed","auto generated interface"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^5.3.6","redux":"^4.0.5"},"gitHead":"f6288f9030425c2e6d28f9153454365f9706ae9a","_id":"redux-area@0.4.7","_nodeVersion":"12.1.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-1FUkT87rNfEkaoN5aQ5Ni1kWEMp5DrwkS4wT7cVaxdENMoOB/fjI6ysLUv1KUpG2AEYyOqUKIXLEs0nvw3EI4g==","shasum":"d8b29f7268b7c0f425cd11513fcad1128288878d","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.4.7.tgz","fileCount":10,"unpackedSize":442673,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJelE5jCRA9TVsSAnZWagAAXm4P/ip/0RrF8S5Tg1T96PeC\ng+fTjH0SUTeuo5m1iikw4u5rR5j1O7j6duRp9u5iRVeBdKI/5DIZ9IY7BRcK\ng8MAih0U+KvauVsGapzkLv44PTfKlzJF2FDBo27nkrQKlQ6+dfBl77RMuGC3\nYw6YxZjOEFZM9DqvOwcAR8BT3FDR3gS4Bt/95VMERtnkeIxGwi5LabnHMel2\nyEz6NjHegVVIJPKqyje/Ow9rHcFSk8Wsqyj5pp12NWFkTxVW6gQon3KzQDuq\nuCPgHe6IGzzckbrQJNrk3D9v6Lc58ZpmUpuSLQXntBl6xVVWMhiRmd3pQoi8\nnWx4TOwC/88LpDLfZh4Vk/sSGLRUPZYGFlrw1xOznyAF5cCWytxUIMe/XvYG\n0QKwHYk1SM2S3P8QB5IjwuZKk7Vm2qIPXSvlM/xLPEvXr2uYlL7h49cEaWmy\nOF+ru13RqwneUKVFs68EbAGo+hJq1BF4972XheGwXhNrh9HTEnt9gjKRZEYs\n98Wt1ED0l1XpnhaaupRYQiO5Pah6u6rg/9V88mGjtligBoY7jrhYbEesPHZy\n1/PAutJ4E79/8e6RBWPP4uAufHW7gKlfl7BVoQ/SRCqvbe3imBlHfch9+BJh\nQqe/NRb5lDgbXo/p4LxzL4Kp592iRm1J1vZ2zSlfhw4SJLFD3rYl1SIALox7\nFIOv\r\n=vSPg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGL3plIpQoRF1M45D4SL+eB5GpXFQg66i/e0rqQLPV4DAiEAghyRoBXeqAU9ZmIB4e3ILOkdYslAMpHxdxuVonozKFc="}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.4.7_1586777699020_0.40080809020543273"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.4.8":{"name":"redux-area","version":"0.4.8","description":"simplified strongly typed redux","keywords":["redux","typescript","simple","strongly-typed","auto generated interface"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^5.3.6","redux":"^4.0.5"},"readme":"# Redux-area\n\n**Short:** `Simplified strongly typed redux`\n\n_(version 0.4.x)_\n\nWhen defining redux actions and reducers with typescript,\nyou often need a lot of typing for interfaces to ensure that you can use your actions,\naction-creators and reducers with autocompletion ect.\n\nRedux-area tries to simplify creation of redux logic by hiding / calculating types,\nkeeping the code more clean.\n\n**The goal is:** to ease and reduce the amount of code we need to write to get all benefits of both\n\n- redux _(single truth, deterministic state transition and view rendering, time travel ect..)_\n  and\n- typescript _(strongly typed symbols and interfaces, code checking/nullable check, auto-rewriting, autocompletion, auto-importing ect..)_.\n\n\nRedux-area uses the [immer](https://github.com/immerjs/immer) npm module for keeping the reducers as simple as possible.\n\n> You can create normal reducers if you need them\n\nGithub [Source Code](https://github.com/alfnielsen/redux-area) (The npm [package](https://www.npmjs.com/package/redux-area))\n\nSee codesandbox [Demo in React](https://codesandbox.io/s/redux-area-base-ex-tb1lr?fontsize=14&hidenavigation=1&theme=dark)\n\nSee Github Wiki for full [Documentation](https://github.com/alfnielsen/redux-area/wiki) (The wiki includes all new options, new features and a guide for upgrading from v0.2.x to v0.4.x)\n\n## Usage\n\nMyArea.ts\n\n```ts\nimport { FetchAreaBase } from 'redux-area'\n\n// State (Optional)\nexport interface IMyAreaState {\n   name: string,\n   loading: boolean\n   error?: Error\n}\n\n// Create Area\nconst area = FetchAreaBase(\"MyApp\").CreateArea({\n   namePrefix: 'MyArea',\n   state: {\n     name: ''\n   }\n)\n\n// Add single action\nconst updateName = area\n   .add('updateName')\n   .action((name: string) => ({\n      name\n   }))\n   .produce((draft, { name }) => {\n      draft.name = name\n   })\n\n// Add single empty action (action has only a type and no other values)\nconst clearName = area\n   .add('clearName')\n   .produce(draft => {\n      draft.name = ''\n   })\n\n// Add fetch action (3 actions)\nconst getName = area\n   .addFetch('getName')\n   .action((id: number) => ({ id }))\n   .produce((draft) => {\n      draft.name = ''\n   })\n   .successAction((name: string) => ({ name }))\n   .successProduce((draft, { name }) => {\n      draft.name = name\n   })\n   .failureAction((error: Error) => ({ error }))\n   .failureProduce((draft, { error }) => {\n      draft.error = error\n   })\n\n// We don't need to add empty action (They will still be created in the 'getNewName')\nexport const getNewName = area\n   .addFetch('getNewName')\n   .successAction((newName: string) => ({ newName }))\n   .successProduce((draft, { newName }) => {\n      draft.name = newName\n   })\n   .baseFailure()\n\n// Export Redux actions\nexport const MyAreaActions = {\n   updateName,\n   clearName,\n   getNameFetch: getName.fetch,\n   getNameSuccess: getName.success,\n   getNameFailure: getName.failure,\n   // By exporting the 'getNewName',\n   // Saga's ect. can get the success and failure methods,\n   // and you only have to expose then fetch to views.\n   // (Or you can add all like the 'getName')\n   getNewName: getNewName.fetch\n}\n// You can get the action type definition for Saga's, custom reducers, ect. like this:\ntype UpdateNameActionType = typeof updateName.type\n\n// Export initial state for area\nexport const MyAreaInitState = area.initialState\n// Export root-reducer for area\nexport const MyAreaRootReducer = area.rootReducer()\n```\n\n## Install\n\n```sh\nnpm install redux-area\n```\n\nOr\n\n```sh\nyarn add redux-area\n```\n\n## Demo\n\n_(editable codesandbox.io)_\n\nDemo: [Demo in React](https://codesandbox.io/s/redux-area-base-ex-tb1lr?fontsize=14&hidenavigation=1&theme=dark)\n\n[![Demo CountPages alpha](./ExImage.png)](https://codesandbox.io/s/redux-area-base-ex-tb1lr?fontsize=14&hidenavigation=1&theme=dark)\n","readmeFilename":"README.md","gitHead":"7c0ff1166c4d01562cbf8d5b8fd8b4671aa80c71","_id":"redux-area@0.4.8","_nodeVersion":"12.1.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-5CoNI8ax68Un+sPxKkf8RZaRFCuQ9NtBt8+EJM1z6oszmocoh6eDC7jHTQb1P0RfBgOwBDVbXAbj1zm94vGjTw==","shasum":"9bc9822dc090e13691ede45a0c2565cbdfbfdd81","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.4.8.tgz","fileCount":10,"unpackedSize":444466,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeotyeCRA9TVsSAnZWagAAHKUP+QDEjXbVdgtflHkOZHCW\nKOiLgleoDvmY0gK1C9eJ/alQVqDZFofZLEIWSaBv+uvH6wwpY/LDi9XlZmWy\nllbROgB/rbPADL0UJCOTO7ylFcKX9eJYqpO305JUFh6IHjgkTegZXki8b6Tc\nH3t8PugZDwmtHm0FJ124Bnx3pC8M1oNY9TdWCgdU9ZmDIg+ivvDLkJ9B5JPX\nABIE7aHCuf+/db9hEfdDNIuHqkPjytxozJkAVc7lzvXM6bWUG5IYaVx+wq+O\nLM9OWt9Buoqi7HmPXBSSHWzjL2/UMufvs14QXA94WS8XtWZMZPY/147lNjNv\nNu3yocK3uIRdpAfupG05mt0wvx9aJvd63f0fz1w2akgJClodxgqqsBkXVmrc\ngl8Q9CwdcyZzZxrMRPP8ZUMcj6vgXAA9l0OPsW1Ux/K5MiD/A2PYa7iiYztP\nQyC6+8Zuy/BE0MPmRxwFrKvQm4iq+7scNvLlm82xwiKpR6mFxpZF6qF2LAxU\naLK3NJTdpR8K3gy1Lnb4Y0uOEnJT1a/pX9r6543kaitb/tQ6/YDI3Mw05ppJ\nRSDVlrcMF78wVQRqaE+JBzpTLIzDy9rI89kits1vqd6xxuQGQqxpSZludqoy\n7q0oZYgIzuA9DyNjqP1PaAcB1yPi487cd1+rEIv3Sd+Iy7IKpDFUwZ+VdZi0\nIdG9\r\n=SDMZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDVZqEF1sSPv4FGuSjUYB+WPfBvEJAH+DazzVcGQPiqSAIhANFKDXgmJh5FVZcX+I4ZPiXsHyKPWtk38/ljBY20qtra"}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.4.8_1587731613423_0.42630221714244887"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.4.9":{"name":"redux-area","version":"0.4.9","description":"simplified strongly typed redux","keywords":["redux","typescript","simple","strongly-typed","auto generated interface"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^5.3.6","redux":"^4.0.5"},"readme":"# Redux-area\n\n**Short:** `Simplified strongly typed redux`\n\n_(version 0.4.x)_\n\nWhen defining redux actions and reducers with typescript,\nyou often need a lot of typing for interfaces to ensure that you can use your actions,\naction-creators and reducers with autocompletion ect.\n\nRedux-area tries to simplify creation of redux logic by hiding / calculating types,\nkeeping the code more clean.\n\n**The goal is:** to ease and reduce the amount of code we need to write to get all benefits of both\n\n- redux _(single truth, deterministic state transition and view rendering, time travel ect..)_\n  and\n- typescript _(strongly typed symbols and interfaces, code checking/nullable check, auto-rewriting, autocompletion, auto-importing ect..)_.\n\n\nRedux-area uses the [immer](https://github.com/immerjs/immer) npm module for keeping the reducers as simple as possible.\n\n> You can create normal reducers if you need them\n\nGithub [Source Code](https://github.com/alfnielsen/redux-area) (The npm [package](https://www.npmjs.com/package/redux-area))\n\nSee codesandbox [Demo in React](https://codesandbox.io/s/redux-area-base-ex-tb1lr?fontsize=14&hidenavigation=1&theme=dark)\n\nSee Github Wiki for full [Documentation](https://github.com/alfnielsen/redux-area/wiki) (The wiki includes all new options, new features and a guide for upgrading from v0.2.x to v0.4.x)\n\n## Usage\n\nMyArea.ts\n\n```ts\nimport { FetchAreaBase } from 'redux-area'\n\n// State (Optional)\nexport interface IMyAreaState {\n   name: string,\n   loading: boolean\n   error?: Error\n}\n\n// Create Area\nconst area = FetchAreaBase(\"MyApp\").CreateArea({\n   namePrefix: 'MyArea',\n   state: {\n     name: ''\n   }\n)\n\n// Add single action\nconst updateName = area\n   .add('updateName')\n   .action((name: string) => ({\n      name\n   }))\n   .produce((draft, { name }) => {\n      draft.name = name\n   })\n\n// Add single empty action (action has only a type and no other values)\nconst clearName = area\n   .add('clearName')\n   .produce(draft => {\n      draft.name = ''\n   })\n\n// Add fetch action (3 actions)\nconst getName = area\n   .addFetch('getName')\n   .action((id: number) => ({ id }))\n   .produce((draft) => {\n      draft.name = ''\n   })\n   .successAction((name: string) => ({ name }))\n   .successProduce((draft, { name }) => {\n      draft.name = name\n   })\n   .failureAction((error: Error) => ({ error }))\n   .failureProduce((draft, { error }) => {\n      draft.error = error\n   })\n\n// We don't need to add empty action (They will still be created in the 'getNewName')\nexport const getNewName = area\n   .addFetch('getNewName')\n   .successAction((newName: string) => ({ newName }))\n   .successProduce((draft, { newName }) => {\n      draft.name = newName\n   })\n   .baseFailure()\n\n// Export Redux actions\nexport const MyAreaActions = {\n   updateName,\n   clearName,\n   getNameFetch: getName.fetch,\n   getNameSuccess: getName.success,\n   getNameFailure: getName.failure,\n   // By exporting the 'getNewName',\n   // Saga's ect. can get the success and failure methods,\n   // and you only have to expose then fetch to views.\n   // (Or you can add all like the 'getName')\n   getNewName: getNewName.fetch\n}\n// You can get the action type definition for Saga's, custom reducers, ect. like this:\ntype UpdateNameActionType = typeof updateName.type\n\n// Export initial state for area\nexport const MyAreaInitState = area.initialState\n// Export root-reducer for area\nexport const MyAreaRootReducer = area.rootReducer()\n```\n\n## Install\n\n```sh\nnpm install redux-area\n```\n\nOr\n\n```sh\nyarn add redux-area\n```\n\n## Demo\n\n_(editable codesandbox.io)_\n\nDemo: [Demo in React](https://codesandbox.io/s/redux-area-base-ex-tb1lr?fontsize=14&hidenavigation=1&theme=dark)\n\n[![Demo CountPages alpha](./ExImage.png)](https://codesandbox.io/s/redux-area-base-ex-tb1lr?fontsize=14&hidenavigation=1&theme=dark)\n","readmeFilename":"README.md","gitHead":"7c0ff1166c4d01562cbf8d5b8fd8b4671aa80c71","_id":"redux-area@0.4.9","_nodeVersion":"12.1.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-mu35LHbrt0tpzvEkOTjO5LmX4NtEjcezKXEv9+rWIqWbQ4O80CE92h68xeoV7fwZi/Jb6Fm0wBajcA9ngny4aA==","shasum":"b1346adcf44a5bffb23c5901b244941817b19cb4","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.4.9.tgz","fileCount":10,"unpackedSize":446439,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeouFFCRA9TVsSAnZWagAAGzkP+wRjOkZCkoQ5QIOHfcup\nPwlDeKGUZWKRwlZCcYtNRImpDTx8wzCzmI8d8i18+T7oU9mn0oFFNjI1dqM6\nkHZphLnqiP0mP1s0lFTi3exj2vn/Sj4r5zCu7R6TWyskbP74UIxLSsgQDSSU\n7vdRfm1mhCgqHso0f+RnT2pzm97lHFpqJOC52E04G3UYFJCzmk9BajVA6kgh\no6m2UkLhm0e5G4RoMpERW+ip3p9/XD/GkmPdv/JEA2A473lGBqjQTIp9z7wC\nvzC+Nb94ey/wKtS1U23n4hGl9Yhen1flKZHsVM//X+GRWGRrKw5Cy2OqlCWp\nGcwRhBdJ+XzGv6E3f8Br29nZyxjVMSucNGHYCORjLlXVNairHYaj7fDUgvRS\nydJmkuO3v0u4qMNsXeFnGUoM8OXD7cKWaHm+vrqmaU2DFVTD0q5i7vMDV2lL\nHdyx5kw5zx10TpwZRpT4tQNEv5E3IMAvL5LgWLsVe7RoYlho5eLID4jis0Oe\nJZtLD8kiKvrRxYP4IqPS4mDHSK4p9KEvsf/406psR6RkSx7n1TvU/H0tU77E\nJKIk6TPWqymNPwiTFMbeXVSGwRJXvRAElufxJbaHZ2a6xq34/XoPO32qCdgO\ngxns22RkR7szUsu+Xl+GOGdgDm0Dff+uZZAYxwLesv0dsXy/KTjabBysr4Kj\ngIro\r\n=mG6y\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHaIOzRspJkIFA3kvIjhV2EPbrJMS+y9CiW0w1CYGswTAiEAshWj9jyPdfagTl9qFilWzBJvqBbCItUnjtOjVT6JZ7c="}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.4.9_1587732805137_0.32597571158132044"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.4.10":{"name":"redux-area","version":"0.4.10","description":"simplified strongly typed redux","keywords":["redux","typescript","simple","strongly-typed","auto generated interface"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^5.3.6","redux":"^4.0.5"},"readme":"# Redux-area\n\n**Short:** `Simplified strongly typed redux`\n\n_(version 0.4.x)_\n\nWhen defining redux actions and reducers with typescript,\nyou often need a lot of typing for interfaces to ensure that you can use your actions,\naction-creators and reducers with autocompletion ect.\n\nRedux-area tries to simplify creation of redux logic by hiding / calculating types,\nkeeping the code more clean.\n\n**The goal is:** to ease and reduce the amount of code we need to write to get all benefits of both\n\n- redux _(single truth, deterministic state transition and view rendering, time travel ect..)_\n  and\n- typescript _(strongly typed symbols and interfaces, code checking/nullable check, auto-rewriting, autocompletion, auto-importing ect..)_.\n\n\nRedux-area uses the [immer](https://github.com/immerjs/immer) npm module for keeping the reducers as simple as possible.\n\n> You can create normal reducers if you need them\n\nGithub [Source Code](https://github.com/alfnielsen/redux-area) (The npm [package](https://www.npmjs.com/package/redux-area))\n\nSee codesandbox [Demo in React](https://codesandbox.io/s/redux-area-base-ex-tb1lr?fontsize=14&hidenavigation=1&theme=dark)\n\nSee Github Wiki for full [Documentation](https://github.com/alfnielsen/redux-area/wiki) (The wiki includes all new options, new features and a guide for upgrading from v0.2.x to v0.4.x)\n\n## Usage\n\nMyArea.ts\n\n```ts\nimport { FetchAreaBase } from 'redux-area'\n\n// State (Optional)\nexport interface IMyAreaState {\n   name: string,\n   loading: boolean\n   error?: Error\n}\n\n// Create Area\nconst area = FetchAreaBase(\"MyApp\").CreateArea({\n   namePrefix: 'MyArea',\n   state: {\n     name: ''\n   }\n)\n\n// Add single action\nconst updateName = area\n   .add('updateName')\n   .action((name: string) => ({\n      name\n   }))\n   .produce((draft, { name }) => {\n      draft.name = name\n   })\n\n// Add single empty action (action has only a type and no other values)\nconst clearName = area\n   .add('clearName')\n   .produce(draft => {\n      draft.name = ''\n   })\n\n// Add fetch action (3 actions)\nconst getName = area\n   .addFetch('getName')\n   .action((id: number) => ({ id }))\n   .produce((draft) => {\n      draft.name = ''\n   })\n   .successAction((name: string) => ({ name }))\n   .successProduce((draft, { name }) => {\n      draft.name = name\n   })\n   .failureAction((error: Error) => ({ error }))\n   .failureProduce((draft, { error }) => {\n      draft.error = error\n   })\n\n// We don't need to add empty action (They will still be created in the 'getNewName')\nexport const getNewName = area\n   .addFetch('getNewName')\n   .successAction((newName: string) => ({ newName }))\n   .successProduce((draft, { newName }) => {\n      draft.name = newName\n   })\n   .baseFailure()\n\n// Export Redux actions\nexport const MyAreaActions = {\n   updateName,\n   clearName,\n   getNameFetch: getName.fetch,\n   getNameSuccess: getName.success,\n   getNameFailure: getName.failure,\n   // By exporting the 'getNewName',\n   // Saga's ect. can get the success and failure methods,\n   // and you only have to expose then fetch to views.\n   // (Or you can add all like the 'getName')\n   getNewName: getNewName.fetch\n}\n// You can get the action type definition for Saga's, custom reducers, ect. like this:\ntype UpdateNameActionType = typeof updateName.type\n\n// Export initial state for area\nexport const MyAreaInitState = area.initialState\n// Export root-reducer for area\nexport const MyAreaRootReducer = area.rootReducer()\n```\n\n## Install\n\n```sh\nnpm install redux-area\n```\n\nOr\n\n```sh\nyarn add redux-area\n```\n\n## Demo\n\n_(editable codesandbox.io)_\n\nDemo: [Demo in React](https://codesandbox.io/s/redux-area-base-ex-tb1lr?fontsize=14&hidenavigation=1&theme=dark)\n\n[![Demo CountPages alpha](./ExImage.png)](https://codesandbox.io/s/redux-area-base-ex-tb1lr?fontsize=14&hidenavigation=1&theme=dark)\n","readmeFilename":"README.md","gitHead":"7c0ff1166c4d01562cbf8d5b8fd8b4671aa80c71","_id":"redux-area@0.4.10","_nodeVersion":"12.1.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-ZjAeSOsCVYJvjwGlbKl5QINiMEcV4Bsss5kInV+eaVtNUIgpnH83DOt+C0EwhBLbkHdM3hdqCB/uiDQ3GdSGDw==","shasum":"dcbb3ffa8f51661a9c7506c1c83293ed40806724","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.4.10.tgz","fileCount":10,"unpackedSize":443544,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeo8yeCRA9TVsSAnZWagAAseYP/ie09Hxfan1TTGQOmN1x\nWqxe4nRG4SuFugMYsNeDwVGi3RdS9DD6FhJurc2Svz7d3yTeUN3wIdGeu3v0\nrAOiw2Lf2TwUzO68bm84OoiUujKe387mH3EGkA7Kb7wVMs9INo3g9n2jUGqL\n/d5So0Fmboq1vUeyBV4sBpDWV4pzmpteUE0LE5Iq1Sbo+OXNZ4Te000qGRVs\nZXjL6RJv3jjPRmqgW94HQA1OIHKUYTdMIOC+o/Fi08nEx45jriamccug7HWb\nxjwrKAgP9fNu4PRDg7GmBQiYk6IfkE+pX2jHUZzmUC0WyZ7yOn3OlZVPfe43\na1+ZgMwlc1iPDnVrr8DcEaIFkGoOfIgavNoDT9CIf8f3LdGrFojuDQReub4K\nouDPImTVKaLv/w4JuGvKf1Tzq3sNbiwHDtK42CQfCDIzXV0epignYN/MO9Pg\naKXsbrLSS2J1XID0PF1C2VL4Qi8zCGTOlP1VDA0ViykOL9zMdXTj+LZs8sH0\ntgZ9iiSBm/2prUC21LAXW2FxEXXr3bZrBLpgd8IH5BxgH4bvx1uzlxTyqyKR\nOVJ4PvEF/J5SFQQNTNGk/3p2CMdTLPaBCczcdEXm6m6LA6kF7GKfrE+bKWmb\nBy8IBJg38RlAyoQgnEgrSlJdUQtgPhirFPnT0dHWB96qLtQ0rrAVfqy4FcWP\nH4LA\r\n=zcU7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGZ9i/BCzrV45mSuFLtRvCwu2uWEZWwQrlY+i7+oRoOwAiBhi8QvFA7JGABfGBiNGJtomggl8eYrgyxM/M7t9FyYVQ=="}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.4.10_1587793054184_0.6312629677299291"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.4.11":{"name":"redux-area","version":"0.4.11","description":"simplified strongly typed redux","keywords":["redux","typescript","simple","strongly-typed","auto generated interface"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^5.3.6","redux":"^4.0.5"},"readme":"# Redux-area\n\n**Short:** `Simplified strongly typed redux`\n\n_(version 0.4.x)_\n\nWhen defining redux actions and reducers with typescript,\nyou often need a lot of typing for interfaces to ensure that you can use your actions,\naction-creators and reducers with autocompletion ect.\n\nRedux-area tries to simplify creation of redux logic by hiding / calculating types,\nkeeping the code more clean.\n\n**The goal is:** to ease and reduce the amount of code we need to write to get all benefits of both\n\n- redux _(single truth, deterministic state transition and view rendering, time travel ect..)_\n  and\n- typescript _(strongly typed symbols and interfaces, code checking/nullable check, auto-rewriting, autocompletion, auto-importing ect..)_.\n\n\nRedux-area uses the [immer](https://github.com/immerjs/immer) npm module for keeping the reducers as simple as possible.\n\n> You can create normal reducers if you need them\n\nGithub [Source Code](https://github.com/alfnielsen/redux-area) (The npm [package](https://www.npmjs.com/package/redux-area))\n\nSee codesandbox [Demo in React](https://codesandbox.io/s/redux-area-base-ex-tb1lr?fontsize=14&hidenavigation=1&theme=dark)\n\nSee Github Wiki for full [Documentation](https://github.com/alfnielsen/redux-area/wiki) (The wiki includes all new options, new features and a guide for upgrading from v0.2.x to v0.4.x)\n\n## Usage\n\nMyArea.ts\n\n```ts\nimport { FetchAreaBase } from 'redux-area'\n\n// State (Optional)\nexport interface IMyAreaState {\n   name: string,\n   loading: boolean\n   error?: Error\n}\n\n// Create Area\nconst area = FetchAreaBase(\"MyApp\").CreateArea({\n   namePrefix: 'MyArea',\n   state: {\n     name: ''\n   }\n)\n\n// Add single action\nconst updateName = area\n   .add('updateName')\n   .action((name: string) => ({\n      name\n   }))\n   .produce((draft, { name }) => {\n      draft.name = name\n   })\n\n// Add single empty action (action has only a type and no other values)\nconst clearName = area\n   .add('clearName')\n   .produce(draft => {\n      draft.name = ''\n   })\n\n// Add fetch action (3 actions)\nconst getName = area\n   .addFetch('getName')\n   .action((id: number) => ({ id }))\n   .produce((draft) => {\n      draft.name = ''\n   })\n   .successAction((name: string) => ({ name }))\n   .successProduce((draft, { name }) => {\n      draft.name = name\n   })\n   .failureAction((error: Error) => ({ error }))\n   .failureProduce((draft, { error }) => {\n      draft.error = error\n   })\n\n// We don't need to add empty action (They will still be created in the 'getNewName')\nexport const getNewName = area\n   .addFetch('getNewName')\n   .successAction((newName: string) => ({ newName }))\n   .successProduce((draft, { newName }) => {\n      draft.name = newName\n   })\n   .baseFailure()\n\n// Export Redux actions\nexport const MyAreaActions = {\n   updateName,\n   clearName,\n   getNameFetch: getName.fetch,\n   getNameSuccess: getName.success,\n   getNameFailure: getName.failure,\n   // By exporting the 'getNewName',\n   // Saga's ect. can get the success and failure methods,\n   // and you only have to expose then fetch to views.\n   // (Or you can add all like the 'getName')\n   getNewName: getNewName.fetch\n}\n// You can get the action type definition for Saga's, custom reducers, ect. like this:\ntype UpdateNameActionType = typeof updateName.type\n\n// Export initial state for area\nexport const MyAreaInitState = area.initialState\n// Export root-reducer for area\nexport const MyAreaRootReducer = area.rootReducer()\n```\n\n## Install\n\n```sh\nnpm install redux-area\n```\n\nOr\n\n```sh\nyarn add redux-area\n```\n\n## Demo\n\n_(editable codesandbox.io)_\n\nDemo: [Demo in React](https://codesandbox.io/s/redux-area-base-ex-tb1lr?fontsize=14&hidenavigation=1&theme=dark)\n\n[![Demo CountPages alpha](./ExImage.png)](https://codesandbox.io/s/redux-area-base-ex-tb1lr?fontsize=14&hidenavigation=1&theme=dark)\n","readmeFilename":"README.md","gitHead":"7c0ff1166c4d01562cbf8d5b8fd8b4671aa80c71","_id":"redux-area@0.4.11","_nodeVersion":"12.1.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-UTj+s5nRV6IY4A+EgbL1IqYXnUWF0xZWFqk7TofwpfB2GPSYgkA0cB3uvVS548R94aPxzZIhUgZgYotlD4qtJg==","shasum":"e447d9afb08f76e55ba372ed21182fdef2285c36","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.4.11.tgz","fileCount":10,"unpackedSize":447883,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeo9eoCRA9TVsSAnZWagAA0RIP/jgC0MMyToipyoj5l/kr\ncNxRADdAQ+/jW+RNL1IutkhGHutTsdTJvk9+/gnUbM6ty7TZ0Y4iJC8c8xrG\nz+oyRKbyMoQFXtvr9tkfxne4gIgpEyEYrLaJ8kXmSMKFTpyEhh0JxYNc0/X+\nGDRQP3AWTGrZj4/+y9fb8Oi0+hsq3t/akxkVG0nbyHTRIIrbuZz2jpe/YYe5\ng8rT9tHQ/OOg06kmPei01mBlBsieM7vt44BdSUkCCd8QeRo7bcHjCEj92GBg\nMfCVBvuRvyiDdaW9Iuo/jG+PL1+gzBQRbrUIPNgEMVDVO0FTn3fc7ua/8B0Y\n+Ur9d9sb7MjSz2Z6T4swJv3DZipM1Iv6GubdyQmjFEpuErjnj8nvNKfrtmhW\nHVKhZc6GWaYfxlkz4h2LXnaRtzUgD2ssXSu3UDlyCpQ8MWbqQvgsIwL2+BUN\nPWp6q8q+06F198nC62qyEqNMJjrhjmJJ4eStEiB3nCpxnxrnIyKDdws+xzm9\nUPdLxZOzTkkbHBWyZqwYkH9S5AeaSYsF6oGxlSltHU/WsSEKv/0KgVrOC9gU\nIwEn695KWSzb4RVM/VMp5wFLMnINaSacBT0onYbg2hg2i2Ax2fw2kuVnss8b\nssPPDexuFv8bTQ/eb6rEC8pPqXrnwvDRGOb3TayW4ti5/Z2bQcY5mhzpOX8y\nUJUM\r\n=C/zb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFQCpz5NBzoxK96bVCilgQQUqra56uWSKpLEv6etEyuRAiA03G972wrMtlYB+eadJychISyhN53LcwShs7YzppCvKQ=="}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.4.11_1587795880144_0.5004392629422925"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.4.12":{"name":"redux-area","version":"0.4.12","description":"simplified strongly typed redux","keywords":["redux","typescript","simple","strongly-typed","auto generated interface"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^5.3.6","redux":"^4.0.5"},"readme":"# Redux-area\n\n**Short:** `Simplified strongly typed redux`\n\n_(version 0.4.x)_\n\nWhen defining redux actions and reducers with typescript,\nyou often need a lot of typing for interfaces to ensure that you can use your actions,\naction-creators and reducers with autocompletion ect.\n\nRedux-area tries to simplify creation of redux logic by hiding / calculating types,\nkeeping the code more clean.\n\n**The goal is:** to ease and reduce the amount of code we need to write to get all benefits of both\n\n- redux _(single truth, deterministic state transition and view rendering, time travel ect..)_\n  and\n- typescript _(strongly typed symbols and interfaces, code checking/nullable check, auto-rewriting, autocompletion, auto-importing ect..)_.\n\n\nRedux-area uses the [immer](https://github.com/immerjs/immer) npm module for keeping the reducers as simple as possible.\n\n> You can create normal reducers if you need them\n\nGithub [Source Code](https://github.com/alfnielsen/redux-area) (The npm [package](https://www.npmjs.com/package/redux-area))\n\nSee codesandbox [Demo in React](https://codesandbox.io/s/redux-area-base-ex-tb1lr?fontsize=14&hidenavigation=1&theme=dark)\n\nSee Github Wiki for full [Documentation](https://github.com/alfnielsen/redux-area/wiki) (The wiki includes all new options, new features and a guide for upgrading from v0.2.x to v0.4.x)\n\n## Usage\n\nMyArea.ts\n\n```ts\nimport { FetchAreaBase } from 'redux-area'\n\n// State (Optional)\nexport interface IMyAreaState {\n   name: string,\n   loading: boolean\n   error?: Error\n}\n\n// Create Area\nconst area = FetchAreaBase(\"MyApp\").CreateArea({\n   namePrefix: 'MyArea',\n   state: {\n     name: ''\n   }\n)\n\n// Add single action\nconst updateName = area\n   .add('updateName')\n   .action((name: string) => ({\n      name\n   }))\n   .produce((draft, { name }) => {\n      draft.name = name\n   })\n\n// Add single empty action (action has only a type and no other values)\nconst clearName = area\n   .add('clearName')\n   .produce(draft => {\n      draft.name = ''\n   })\n\n// Add fetch action (3 actions)\nconst getName = area\n   .addFetch('getName')\n   .action((id: number) => ({ id }))\n   .produce((draft) => {\n      draft.name = ''\n   })\n   .successAction((name: string) => ({ name }))\n   .successProduce((draft, { name }) => {\n      draft.name = name\n   })\n   .failureAction((error: Error) => ({ error }))\n   .failureProduce((draft, { error }) => {\n      draft.error = error\n   })\n\n// We don't need to add empty action (They will still be created in the 'getNewName')\nexport const getNewName = area\n   .addFetch('getNewName')\n   .successAction((newName: string) => ({ newName }))\n   .successProduce((draft, { newName }) => {\n      draft.name = newName\n   })\n   .baseFailure()\n\n// Export Redux actions\nexport const MyAreaActions = {\n   updateName,\n   clearName,\n   getNameFetch: getName.fetch,\n   getNameSuccess: getName.success,\n   getNameFailure: getName.failure,\n   // By exporting the 'getNewName',\n   // Saga's ect. can get the success and failure methods,\n   // and you only have to expose then fetch to views.\n   // (Or you can add all like the 'getName')\n   getNewName: getNewName.fetch\n}\n// You can get the action type definition for Saga's, custom reducers, ect. like this:\ntype UpdateNameActionType = typeof updateName.type\n\n// Export initial state for area\nexport const MyAreaInitState = area.initialState\n// Export root-reducer for area\nexport const MyAreaRootReducer = area.rootReducer()\n```\n\n## Install\n\n```sh\nnpm install redux-area\n```\n\nOr\n\n```sh\nyarn add redux-area\n```\n\n## Demo\n\n_(editable codesandbox.io)_\n\nDemo: [Demo in React](https://codesandbox.io/s/redux-area-base-ex-tb1lr?fontsize=14&hidenavigation=1&theme=dark)\n\n[![Demo CountPages alpha](./ExImage.png)](https://codesandbox.io/s/redux-area-base-ex-tb1lr?fontsize=14&hidenavigation=1&theme=dark)\n","readmeFilename":"README.md","gitHead":"7c0ff1166c4d01562cbf8d5b8fd8b4671aa80c71","_id":"redux-area@0.4.12","_nodeVersion":"12.1.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-unEOcwdRWV/WAeCyOCGOTsoJVRkMqofmKNr9YoeuF0pvFepaPaKjjoccN/eeqN++sBXrr/s7Aiq/NYeT4aK27w==","shasum":"8733ba7cbbd05edd06d9831311969582b68caa6e","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.4.12.tgz","fileCount":10,"unpackedSize":633141,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeo9g4CRA9TVsSAnZWagAAsIgP/3iqfB2Rik63ckas/2rt\nph9P38PO/KOCnIN/WKOJ6riDDHVGIZ28Jx5hLnDstbwZXU0LOXSurCIXJj1P\nf9RZQibSaheSQrafA7Y5lJ9SyUl8pZipKKIIcv/RNofe8I9u+7a0Sso+66LW\nx9JuB/eqHUk8n7XZMTDck8E0yL36WO9pfq6y2WdfmSoIPjdkuIhw4Iuo5hPb\nigGLGk4L5eKru8eBAFwITHVjwMNjD+iOyqbQvgl1lIr1OC0rVUzDL1mFxwIJ\n56j1x1ET9PSQVgcsJ5kePeoZzcbqLoqMXrdCFJCB9LGeUzJnXyRzR5heS/om\n4SlzCnj1vYb3fCzcS2yhhhvULgWgL+856tGIsyyU7n8yZBoZjvH3DYVtQZDu\nJoWUVF2JWcZ43GjoLi//U3q4YIQBygAgSiTHa+b1oCOHh6xwVaWuns6xeFI9\nZqtfr7UNxN4GsLh0LC8C5hxCIS2QG84oboOY4FrQ0+uqBEJQdV1/Q+IEopXF\n5IeaMVMpM/R491QGyva6WHzea3WeMO+v4PlR9mi2d4/78OfsPK2PQgeUOBdt\ntmqJKh6Tk+ShwzUgJj8q1D8HxO64awg4Ut6LtICYlzvE3KN8tHszTZ/fsW7n\nzBQFPly9KUPfzFQbQs/BrSH7IgsuIjyPIL9QIyY0qgyWCmAA0SOCgBdy38Uw\nRkep\r\n=4DQL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGUYtsNkNLxqYom5shy07E5gphUN75WAW10s5DHPCg7VAiA35KJn2gO0z1bBsAKe18EMJGxZxazbMsn6SKqB2gP6cQ=="}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.4.12_1587796024001_0.7169160250194953"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.4.13":{"name":"redux-area","version":"0.4.13","description":"simplified strongly typed redux","keywords":["redux","typescript","simple","strongly-typed","auto generated interface"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^5.3.6","redux":"^4.0.5"},"gitHead":"dd96532550b9633b9e9e2caf5fc02820a2fc65cd","_id":"redux-area@0.4.13","_nodeVersion":"12.1.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-1WTzFfFR8oU/OOm8FpEnLNuleGzUAlzTWQiCllzBsYGiUFys6Z5TVhavSDN1krE/Tu+5Twwkewpnool0yLwUmw==","shasum":"b0a300e8a1ec3b98e2410703a930c892e149a5a4","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.4.13.tgz","fileCount":10,"unpackedSize":633453,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeo/TjCRA9TVsSAnZWagAAutkP/ROo/q6g3QBMK/Bw3eb+\nRG8hUmDiw2waOMY4lEgQYoGLQQQ8yLjyffpIpvMBo6dVO66ICRE7CVMNUM3i\nQ1ZfwUjYGiJMlVo3ZXNpJ2F2EnUvy7P1NUqo7SEda/ujVI7nXmwccr5qbkDa\nO1X41CXXkcAXCfjfGPcck389kb88xYo7u4qi5Y24RGNVL366VLWiA9Gnilmn\nmeqte9/5xdTCXhiSCkXbDmn6KU/Ft+M7oISd3KoMA09AKMq2kYj5uqVkjiKv\nZTCt9pXeeuHAA38yTb028zmBNFMcNkwlVG2deFDH5KVQcsFGTbt92KpDpJJN\nEQq8JDkLB7jVyPTya1mHc2RvjAGnJhrHP47wKAWLuIoW9RfTxrJ580Cg8FcO\n3+S6OVqulTCP3VbTfu+bY+yWm4aGjxIQCLWD8Apx7hS5Q4mPRM3reDBWo7q1\nMMa363hBgWtDZmRMtRqiVPAYkfd0yKYNCHh897ocWzsLCx9zz4U4yO9w53+K\ndlWo8S91gvKbKXFldcKQCjGLwp8EKXnn4KI6nhEtkqAkF1QF67eHNZY17+fS\nXuog0Mh6wSTggRP1EVaVRAwU0Gx+kqeYhVmfqOMhE+g6Jk/ZpjItNX+oAyy9\nUG/pl/aaA3DyBBGitpurGaQK3qVO+9ofTtb8zRCuF7vbWaMK3djDo2boBpJ+\nqaLF\r\n=tEj3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCV6xTLjNMhJVfR996LuKjc9Gpz770gINVhYIUHNMjCAQIgNlOzZXkXnb3TF1A0eLBv5HttUlSL6sEqeOs1FDo2xvc="}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.4.13_1587803362492_0.2616895952669367"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.4.14":{"name":"redux-area","version":"0.4.14","description":"simplified strongly typed redux","keywords":["redux","typescript","simple","strongly-typed","auto generated interface"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^5.3.6","redux":"^4.0.5","redux-saga":"^1.1.3"},"readme":"# Redux-area\n\n**Short:** `Simplified strongly typed redux`\n\n_(version 0.4.x)_\n\nWhen defining redux actions and reducers with typescript,\nyou often need a lot of typing for interfaces to ensure that you can use your actions,\naction-creators and reducers with autocompletion ect.\n\nRedux-area tries to simplify creation of redux logic by hiding / calculating types,\nkeeping the code more clean.\n\n**The goal is:** to ease and reduce the amount of code we need to write to get all benefits of both\n\n- redux _(single truth, deterministic state transition and view rendering, time travel ect..)_\n  and\n- typescript _(strongly typed symbols and interfaces, code checking/nullable check, auto-rewriting, autocompletion, auto-importing ect..)_.\n\n\nRedux-area uses the [immer](https://github.com/immerjs/immer) npm module for keeping the reducers as simple as possible.\n\n> You can create normal reducers if you need them\n\nGithub [Source Code](https://github.com/alfnielsen/redux-area) (The npm [package](https://www.npmjs.com/package/redux-area))\n\nSee codesandbox [Demo in React](https://codesandbox.io/s/redux-area-base-ex-tb1lr?fontsize=14&hidenavigation=1&theme=dark)\n\nSee Github Wiki for full [Documentation](https://github.com/alfnielsen/redux-area/wiki) (The wiki includes all new options, new features and a guide for upgrading from v0.2.x to v0.4.x)\n\n## Usage\n\nMyArea.ts\n\n```ts\nimport { FetchAreaBase } from 'redux-area'\n\n// State (Optional)\nexport interface IMyAreaState {\n   name: string,\n   loading: boolean\n   error?: Error\n}\n\n// Create Area\nconst area = FetchAreaBase(\"MyApp\").CreateArea({\n   namePrefix: 'MyArea',\n   state: {\n     name: ''\n   }\n)\n\n// Add single action\nconst updateName = area\n   .add('updateName')\n   .action((name: string) => ({\n      name\n   }))\n   .produce((draft, { name }) => {\n      draft.name = name\n   })\n\n// Add single empty action (action has only a type and no other values)\nconst clearName = area\n   .add('clearName')\n   .produce(draft => {\n      draft.name = ''\n   })\n\n// Add fetch action (3 actions)\nconst getName = area\n   .addFetch('getName')\n   .action((id: number) => ({ id }))\n   .produce((draft) => {\n      draft.name = ''\n   })\n   .successAction((name: string) => ({ name }))\n   .successProduce((draft, { name }) => {\n      draft.name = name\n   })\n   .failureAction((error: Error) => ({ error }))\n   .failureProduce((draft, { error }) => {\n      draft.error = error\n   })\n\n// We don't need to add empty action (They will still be created in the 'getNewName')\nexport const getNewName = area\n   .addFetch('getNewName')\n   .successAction((newName: string) => ({ newName }))\n   .successProduce((draft, { newName }) => {\n      draft.name = newName\n   })\n   .baseFailure()\n\n// Export Redux actions\nexport const MyAreaActions = {\n   updateName,\n   clearName,\n   getNameFetch: getName.fetch,\n   getNameSuccess: getName.success,\n   getNameFailure: getName.failure,\n   // By exporting the 'getNewName',\n   // Saga's ect. can get the success and failure methods,\n   // and you only have to expose then fetch to views.\n   // (Or you can add all like the 'getName')\n   getNewName: getNewName.fetch\n}\n// You can get the action type definition for Saga's, custom reducers, ect. like this:\ntype UpdateNameActionType = typeof updateName.type\n\n// Export initial state for area\nexport const MyAreaInitState = area.initialState\n// Export root-reducer for area\nexport const MyAreaRootReducer = area.rootReducer()\n```\n\n## Install\n\n```sh\nnpm install redux-area\n```\n\nOr\n\n```sh\nyarn add redux-area\n```\n\n## Demo\n\n_(editable codesandbox.io)_\n\nDemo: [Demo in React](https://codesandbox.io/s/redux-area-base-ex-tb1lr?fontsize=14&hidenavigation=1&theme=dark)\n\n[![Demo CountPages alpha](./ExImage.png)](https://codesandbox.io/s/redux-area-base-ex-tb1lr?fontsize=14&hidenavigation=1&theme=dark)\n","readmeFilename":"README.md","gitHead":"dd96532550b9633b9e9e2caf5fc02820a2fc65cd","_id":"redux-area@0.4.14","_nodeVersion":"12.1.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-S595d9rO9z/qLBTMuGMLVw9NVqlFaS1llzvaNZ4SmEFNC+JJ4CCNi0qWL0TvhZUlIco/hB/khfqnygPMZ7OX2w==","shasum":"48e321280bb88b746cdccd34d4b645d5df6e7fb4","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.4.14.tgz","fileCount":10,"unpackedSize":633709,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/piDCRA9TVsSAnZWagAAUG4QAKCuiNBiaTJcFwCsrYeP\n6ulJ64vlRZ0iAO2EdoPXwqrelMoAlvhFxUwQ4AMUHFvll0jgmVDzcE1jrRyB\nTXe2aYosQkCRx1kp5sKA6H1POjMKbgdi8Qa/vtP6IByQHgDHYv52yFBXFMo9\n0kYWm4/BROB5N2Hc3q8GN9mWt9PuvDaHrdrYYvB20nq8fpFcbdpr+3fPubsz\noYjbpMXZcK2kgiiwQeeTWWEsJBLzEWHnXnmWf5NWnJrTPdQo/Ai9sd3yRWug\n5sVPcX5pSLnPYWE2F44wdI7jWZwr0/hpY+UqXMadw98xVJExodpEmTGPJeyf\nxLhmb0MY5khC+4yUc+Nh7UPP/NIUhJcdlT1GoS+o+LbrhtROGftaJd8HcRDL\nOnQyYQD3uKkZvUqf5kbtzsIQsEPsZgBLka6IUn+oAvP+e22oPkbvnpDvg0mR\nQRggSKeaD93gdFr0gSTwgkcmJ4wJ1cEt7SSXyJcX5WupyKzfV5/K1gSSKjgl\ndV/6bp3Egm1Wu7oqjL+CSbX5MfcbrxGvWg/MvPigRkKLVh7RTmDmofrbauJ6\nouQjOy2Be1j8RMZv1dpr48K9OOOFLqHaX9BHsVB3Yl6aKsEgYtRl0TOvqCSa\nhxuVzY2fDzTNPB1AOGN7xX0g8g2tWD5ksjONkjlCu6VjxkR4N8+YpxaP3Djw\nNu/r\r\n=NSDF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID6wXxc5HLvcrUAdXT74fHHg9ygBqsXHBJvoFcCVf+RtAiEAnopdhgpXRIYqxynj/e9yziVEiZg/f4uMS7fbowAQYKk="}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.4.14_1593743490489_0.7693849883414365"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.4.15":{"name":"redux-area","version":"0.4.15","description":"simplified strongly typed redux","keywords":["redux","typescript","simple","strongly-typed","auto generated interface"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^5.3.6","redux":"^4.0.5","redux-saga":"^1.1.3"},"readme":"# Redux-area\n\n**Short:** `Simplified strongly typed redux`\n\n_(version 0.4.x)_\n\nWhen defining redux actions and reducers with typescript,\nyou often need a lot of typing for interfaces to ensure that you can use your actions,\naction-creators and reducers with autocompletion ect.\n\nRedux-area tries to simplify creation of redux logic by hiding / calculating types,\nkeeping the code more clean.\n\n**The goal is:** to ease and reduce the amount of code we need to write to get all benefits of both\n\n- redux _(single truth, deterministic state transition and view rendering, time travel ect..)_\n  and\n- typescript _(strongly typed symbols and interfaces, code checking/nullable check, auto-rewriting, autocompletion, auto-importing ect..)_.\n\n\nRedux-area uses the [immer](https://github.com/immerjs/immer) npm module for keeping the reducers as simple as possible.\n\n> You can create normal reducers if you need them\n\nGithub [Source Code](https://github.com/alfnielsen/redux-area) (The npm [package](https://www.npmjs.com/package/redux-area))\n\nSee codesandbox [Demo in React](https://codesandbox.io/s/redux-area-base-ex-tb1lr?fontsize=14&hidenavigation=1&theme=dark)\n\nSee Github Wiki for full [Documentation](https://github.com/alfnielsen/redux-area/wiki) (The wiki includes all new options, new features and a guide for upgrading from v0.2.x to v0.4.x)\n\n## Usage\n\nMyArea.ts\n\n```ts\nimport { FetchAreaBase } from 'redux-area'\n\n// State (Optional)\nexport interface IMyAreaState {\n   name: string,\n   loading: boolean\n   error?: Error\n}\n\n// Create Area\nconst area = FetchAreaBase(\"MyApp\").CreateArea({\n   namePrefix: 'MyArea',\n   state: {\n     name: ''\n   }\n)\n\n// Add single action\nconst updateName = area\n   .add('updateName')\n   .action((name: string) => ({\n      name\n   }))\n   .produce((draft, { name }) => {\n      draft.name = name\n   })\n\n// Add single empty action (action has only a type and no other values)\nconst clearName = area\n   .add('clearName')\n   .produce(draft => {\n      draft.name = ''\n   })\n\n// Add fetch action (3 actions)\nconst getName = area\n   .addFetch('getName')\n   .action((id: number) => ({ id }))\n   .produce((draft) => {\n      draft.name = ''\n   })\n   .successAction((name: string) => ({ name }))\n   .successProduce((draft, { name }) => {\n      draft.name = name\n   })\n   .failureAction((error: Error) => ({ error }))\n   .failureProduce((draft, { error }) => {\n      draft.error = error\n   })\n\n// We don't need to add empty action (They will still be created in the 'getNewName')\nexport const getNewName = area\n   .addFetch('getNewName')\n   .successAction((newName: string) => ({ newName }))\n   .successProduce((draft, { newName }) => {\n      draft.name = newName\n   })\n   .baseFailure()\n\n// Export Redux actions\nexport const MyAreaActions = {\n   updateName,\n   clearName,\n   getNameFetch: getName.fetch,\n   getNameSuccess: getName.success,\n   getNameFailure: getName.failure,\n   // By exporting the 'getNewName',\n   // Saga's ect. can get the success and failure methods,\n   // and you only have to expose then fetch to views.\n   // (Or you can add all like the 'getName')\n   getNewName: getNewName.fetch\n}\n// You can get the action type definition for Saga's, custom reducers, ect. like this:\ntype UpdateNameActionType = typeof updateName.type\n\n// Export initial state for area\nexport const MyAreaInitState = area.initialState\n// Export root-reducer for area\nexport const MyAreaRootReducer = area.rootReducer()\n```\n\n## Install\n\n```sh\nnpm install redux-area\n```\n\nOr\n\n```sh\nyarn add redux-area\n```\n\n## Demo\n\n_(editable codesandbox.io)_\n\nDemo: [Demo in React](https://codesandbox.io/s/redux-area-base-ex-tb1lr?fontsize=14&hidenavigation=1&theme=dark)\n\n[![Demo CountPages alpha](./ExImage.png)](https://codesandbox.io/s/redux-area-base-ex-tb1lr?fontsize=14&hidenavigation=1&theme=dark)\n","readmeFilename":"README.md","gitHead":"dd96532550b9633b9e9e2caf5fc02820a2fc65cd","_id":"redux-area@0.4.15","_nodeVersion":"12.1.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-l3mt9uVebdkENZiwDCZEKEBEMGikPvXXMMrTOwMXzoFN6I4rjLkrNOuyhNnb4tYMBmqwu4wQs0pL0BEkVh7Drg==","shasum":"c18a483d48a288f124bf6694db8542bd3d4d4a9a","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.4.15.tgz","fileCount":10,"unpackedSize":634412,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfAfSOCRA9TVsSAnZWagAAIJ8P/i3nprglcBN9u9SD46yM\nPpeJJyTkJ3Y0Dbwo7pjcxNgW+5aJ1RQOXLMurpgVX04r3mfS4XzKx6hD/Yys\n7btZy68Z4l9yEeqfAOB+zEz1UL11SeGX3st9X2xq1DwsAUuJVjMvvQgkc+uP\noPpxV6NwMRpKSoSV76uz77kPhdSMQPRqifIFCgbbIRnCmCPWmbNalPbWCtA7\nwFrJh0o4ngFKnar1iNnL0XbDx8xs+U9DV46bu9p3GibL9s/exfu7HQuxnhat\nPwvgWAGdhY5zhraT0UWBd03otNzQc0/OfY/ac0N4uEPGC2O6+LqcWEl4uANb\nXGj88Hh7jHnQ+fSmN2/kCc6tb7pYEDBXg/MMQMuzaLKqPEEsM3wIC3hDjl3W\nJPQCZxYIIbrlCwBYbSOegbjO7Q/awoAZI27QMLJz3Vz+L/UxiUD3Qc4r01KS\nl4MdoFYeWppnmjEk0OOYBZupKEv4wsxuArQYvdTEqs+ofu8NKTMqfOYvJ7KL\nqfQjdIqLBxQhvZehira8nho+OAYcYw4ptdOg35GMWe/B/13wQx1wWyktsJTv\nEK3PojHOPwexTXy6OpVxvnWvyiIW9/SbXwM9ixQ/SIzUaBh325CLxSHDHkeZ\nXDfge0DOJl+7ui1NW5DMN7U6Na/O3a16pQLUrapevC/yw7LOvCVqZKx/nAZP\nmRj3\r\n=3VvL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDFBilCLtzXEOgWbuuyxtUEvbUTKecxWfTh3tTAulrHhAiEA1KQHse08ckvbaLN21lEcP4dj2IHABGuYRHtWqHJzPOA="}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.4.15_1593963662369_0.7855578190106272"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.4.16":{"name":"redux-area","version":"0.4.16","description":"simplified strongly typed redux","keywords":["redux","typescript","simple","strongly-typed","auto generated interface"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^5.3.6","redux":"^4.0.5","redux-saga":"^1.1.3"},"readme":"# Redux-area\n\n**Short:** `Simplified strongly typed redux`\n\n_(version 0.4.x)_\n\nWhen defining redux actions and reducers with typescript,\nyou often need a lot of typing for interfaces to ensure that you can use your actions,\naction-creators and reducers with autocompletion ect.\n\nRedux-area tries to simplify creation of redux logic by hiding / calculating types,\nkeeping the code more clean.\n\n**The goal is:** to ease and reduce the amount of code we need to write to get all benefits of both\n\n- redux _(single truth, deterministic state transition and view rendering, time travel ect..)_\n  and\n- typescript _(strongly typed symbols and interfaces, code checking/nullable check, auto-rewriting, autocompletion, auto-importing ect..)_.\n\n\nRedux-area uses the [immer](https://github.com/immerjs/immer) npm module for keeping the reducers as simple as possible.\n\n> You can create normal reducers if you need them\n\nGithub [Source Code](https://github.com/alfnielsen/redux-area) (The npm [package](https://www.npmjs.com/package/redux-area))\n\nSee codesandbox [Demo in React](https://codesandbox.io/s/redux-area-base-ex-tb1lr?fontsize=14&hidenavigation=1&theme=dark)\n\nSee Github Wiki for full [Documentation](https://github.com/alfnielsen/redux-area/wiki) (The wiki includes all new options, new features and a guide for upgrading from v0.2.x to v0.4.x)\n\n## Usage\n\nMyArea.ts\n\n```ts\nimport { FetchAreaBase } from 'redux-area'\n\n// State (Optional)\nexport interface IMyAreaState {\n   name: string,\n   loading: boolean\n   error?: Error\n}\n\n// Create Area\nconst area = FetchAreaBase(\"MyApp\").CreateArea({\n   namePrefix: 'MyArea',\n   state: {\n     name: ''\n   }\n)\n\n// Add single action\nconst updateName = area\n   .add('updateName')\n   .action((name: string) => ({\n      name\n   }))\n   .produce((draft, { name }) => {\n      draft.name = name\n   })\n\n// Add single empty action (action has only a type and no other values)\nconst clearName = area\n   .add('clearName')\n   .produce(draft => {\n      draft.name = ''\n   })\n\n// Add fetch action (3 actions)\nconst getName = area\n   .addFetch('getName')\n   .action((id: number) => ({ id }))\n   .produce((draft) => {\n      draft.name = ''\n   })\n   .successAction((name: string) => ({ name }))\n   .successProduce((draft, { name }) => {\n      draft.name = name\n   })\n   .failureAction((error: Error) => ({ error }))\n   .failureProduce((draft, { error }) => {\n      draft.error = error\n   })\n\n// We don't need to add empty action (They will still be created in the 'getNewName')\nexport const getNewName = area\n   .addFetch('getNewName')\n   .successAction((newName: string) => ({ newName }))\n   .successProduce((draft, { newName }) => {\n      draft.name = newName\n   })\n   .baseFailure()\n\n// Export Redux actions\nexport const MyAreaActions = {\n   updateName,\n   clearName,\n   getNameFetch: getName.fetch,\n   getNameSuccess: getName.success,\n   getNameFailure: getName.failure,\n   // By exporting the 'getNewName',\n   // Saga's ect. can get the success and failure methods,\n   // and you only have to expose then fetch to views.\n   // (Or you can add all like the 'getName')\n   getNewName: getNewName.fetch\n}\n// You can get the action type definition for Saga's, custom reducers, ect. like this:\ntype UpdateNameActionType = typeof updateName.type\n\n// Export initial state for area\nexport const MyAreaInitState = area.initialState\n// Export root-reducer for area\nexport const MyAreaRootReducer = area.rootReducer()\n```\n\n## Install\n\n```sh\nnpm install redux-area\n```\n\nOr\n\n```sh\nyarn add redux-area\n```\n\n## Demo\n\n_(editable codesandbox.io)_\n\nDemo: [Demo in React](https://codesandbox.io/s/redux-area-base-ex-tb1lr?fontsize=14&hidenavigation=1&theme=dark)\n\n[![Demo CountPages alpha](./ExImage.png)](https://codesandbox.io/s/redux-area-base-ex-tb1lr?fontsize=14&hidenavigation=1&theme=dark)\n","readmeFilename":"README.md","gitHead":"ff8cd92e498573f638fc577c28333a5fb677f113","_id":"redux-area@0.4.16","_nodeVersion":"12.1.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-6XJtkeBwgQlCZ9f1WZeJtKZVKZk54km+FxDzJt+0VSD1GZKcJp9AIaXSXr+xPAWOK8VvEmhWQJ10vxjwoQZJUA==","shasum":"b66393d964126795209e538b9a2c5c36ae443977","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.4.16.tgz","fileCount":10,"unpackedSize":638410,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfA2FbCRA9TVsSAnZWagAAU3MP/2f2RJn7HnVrAoz+kopz\naunljJMmpydlDG+SAjPwKlrbFiR2A195aXbZRgdwC7ChOL0punttiJKSgigU\n7NtVsrCD+utNa2Fzmj5bv0Oh7ergVrs6/jJq2ucdXT+xeq5//FUE0cL3RvEh\ntVmPBksttmKW9c0l841wbVc6urcjqg7m8pw+5Fj00/drVUVmDhZalfAuGJcS\n2eeSlr+aNXOkQadqiGKFffBu4YpDE5R+/rTY3C6/kF2mXvxqej6UxGB7WY5O\nKMdWK5ROB2UoIg9wGic5fW8NtbzHBbycSOdLy8hnHzLSKhT0MuYkjbPBZe28\nYukc3Xy11fUgPjW18buKqun0cRElLIVS+p8wXw/mutgT5PFWQ729vmjmLppG\nsB0oTIPN+NQHGPzCkujHq5ZFL3dPdjJS3szkIZMqb5V/8cmG90EoRs7ZwWIF\nzrvBZ3X16fSubTDALtz13V515+4OUSLVj3NQRJb3nul16JFDPJxx5jeO2rOE\ngyyM+Io+F2LZT7WLvzlkXcpDBiNZAxCuIGh4lCro27BiSVXIyiAhHROCxw/K\n1u+7jj6HhWCQ+zuJLU5TX1tkqTILnvcwbxclsPO5uD+EwTQDS9Q0VQJ61pqE\nM6nU/Rq5jgsE9WKl8kkVT/+11SMhYlMHsnVaoEFe7LQ03lGvtS2vg5FO4vJo\n1CB1\r\n=LIFr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCdj7EG3Dkym/trxkN7K7u9l4WPTHp9z+nGG4a/SaT4PQIgTnsHO578j9p5m7MkJCzoKOgaRS3Gq67ySJfmPDVZw/0="}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.4.16_1594057050701_0.47714019643634664"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.4.17":{"name":"redux-area","version":"0.4.17","description":"simplified strongly typed redux","keywords":["redux","typescript","simple","strongly-typed","auto generated interface"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^5.3.6","redux":"^4.0.5","redux-saga":"^1.1.3"},"readme":"# Redux-area\n\n**Short:** `Simplified strongly typed redux`\n\n_(version 0.4.x)_\n\nWhen defining redux actions and reducers with typescript,\nyou often need a lot of typing for interfaces to ensure that you can use your actions,\naction-creators and reducers with autocompletion ect.\n\nRedux-area tries to simplify creation of redux logic by hiding / calculating types,\nkeeping the code more clean.\n\n**The goal is:** to ease and reduce the amount of code we need to write to get all benefits of both\n\n- redux _(single truth, deterministic state transition and view rendering, time travel ect..)_\n  and\n- typescript _(strongly typed symbols and interfaces, code checking/nullable check, auto-rewriting, autocompletion, auto-importing ect..)_.\n\n\nRedux-area uses the [immer](https://github.com/immerjs/immer) npm module for keeping the reducers as simple as possible.\n\n> You can create normal reducers if you need them\n\nGithub [Source Code](https://github.com/alfnielsen/redux-area) (The npm [package](https://www.npmjs.com/package/redux-area))\n\nSee codesandbox [Demo in React](https://codesandbox.io/s/redux-area-base-ex-tb1lr?fontsize=14&hidenavigation=1&theme=dark)\n\nSee Github Wiki for full [Documentation](https://github.com/alfnielsen/redux-area/wiki) (The wiki includes all new options, new features and a guide for upgrading from v0.2.x to v0.4.x)\n\n## Usage\n\nMyArea.ts\n\n```ts\nimport { FetchAreaBase } from 'redux-area'\n\n// State (Optional)\nexport interface IMyAreaState {\n   name: string,\n   loading: boolean\n   error?: Error\n}\n\n// Create Area\nconst area = FetchAreaBase(\"MyApp\").CreateArea({\n   namePrefix: 'MyArea',\n   state: {\n     name: ''\n   }\n)\n\n// Add single action\nconst updateName = area\n   .add('updateName')\n   .action((name: string) => ({\n      name\n   }))\n   .produce((draft, { name }) => {\n      draft.name = name\n   })\n\n// Add single empty action (action has only a type and no other values)\nconst clearName = area\n   .add('clearName')\n   .produce(draft => {\n      draft.name = ''\n   })\n\n// Add fetch action (3 actions)\nconst getName = area\n   .addFetch('getName')\n   .action((id: number) => ({ id }))\n   .produce((draft) => {\n      draft.name = ''\n   })\n   .successAction((name: string) => ({ name }))\n   .successProduce((draft, { name }) => {\n      draft.name = name\n   })\n   .failureAction((error: Error) => ({ error }))\n   .failureProduce((draft, { error }) => {\n      draft.error = error\n   })\n\n// We don't need to add empty action (They will still be created in the 'getNewName')\nexport const getNewName = area\n   .addFetch('getNewName')\n   .successAction((newName: string) => ({ newName }))\n   .successProduce((draft, { newName }) => {\n      draft.name = newName\n   })\n   .baseFailure()\n\n// Export Redux actions\nexport const MyAreaActions = {\n   updateName,\n   clearName,\n   getNameFetch: getName.fetch,\n   getNameSuccess: getName.success,\n   getNameFailure: getName.failure,\n   // By exporting the 'getNewName',\n   // Saga's ect. can get the success and failure methods,\n   // and you only have to expose then fetch to views.\n   // (Or you can add all like the 'getName')\n   getNewName: getNewName.fetch\n}\n// You can get the action type definition for Saga's, custom reducers, ect. like this:\ntype UpdateNameActionType = typeof updateName.type\n\n// Export initial state for area\nexport const MyAreaInitState = area.initialState\n// Export root-reducer for area\nexport const MyAreaRootReducer = area.rootReducer()\n```\n\n## Install\n\n```sh\nnpm install redux-area\n```\n\nOr\n\n```sh\nyarn add redux-area\n```\n\n## Demo\n\n_(editable codesandbox.io)_\n\nDemo: [Demo in React](https://codesandbox.io/s/redux-area-base-ex-tb1lr?fontsize=14&hidenavigation=1&theme=dark)\n\n[![Demo CountPages alpha](./ExImage.png)](https://codesandbox.io/s/redux-area-base-ex-tb1lr?fontsize=14&hidenavigation=1&theme=dark)\n","readmeFilename":"README.md","gitHead":"0787df35e67683086f6b7fcd34a6f51ea77e74ca","_id":"redux-area@0.4.17","_nodeVersion":"12.1.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-tO1ZJoazbZvFu86VGsKzPd/02TXAVnG5KGaeNaESa/4lcbZdUAtM1dCLwm6ZQ6swZrzOdaKUtfbnbrkSWqkLCA==","shasum":"7ca3d6e7e64b5cd98d36b1b066e5bb6d1574e56b","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.4.17.tgz","fileCount":10,"unpackedSize":638417,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfBDWMCRA9TVsSAnZWagAA3/sP/0KPqB9W8gjl3VJWmzJW\nGQrUNp+KOybd8oQCGOfE2BhccFMUrAc+H40/6tG69nBWyokHVoyAtSDLLb1w\ngwZ2+hW758f/ixIVE4seuP+Z56qGiOIZkYLwLWw8u/aUUmOv1Rz2CFpK6K59\nReDiV/vrgw9JHummt+7SoSP1/ravqVgbo5R2iY0UYLwPFTFk6/hCJPFfU3xX\nOphMDtePBBsPvgQHaXbWPt4rYOD2ruQnv+jzTiR5xJNcFpsD+gw9xNjUwAyN\n4fioWtIPKwrIaG2doRaKuUt/YCS2gI/f0pFreUpk9e8AiJ/gNjCJd96PdXF9\nj7DWe65YOoAjv9+bbBEqAFHMp0At4nGi0ANNvSp/47ZzLZgDyg9YsW0X1pUr\nREK0TP95ObY5pHsgGV7jA/cbPDvK6QFYlQd6C1Gbg/kaeiMBYVJfw6uqfCEI\nfI0tnCngjV10d9VFhKoW25Kalb4JFDepFat94/YIGsx/iFN1cubkwHXjLaFX\nN/2eODC4TMq+6FGJpjvAZ5j5j5jRTo6w7VD/Ul6pEwWiUBPDS+HCMk3n2ya0\n6kSg8EUkCiMx5n8A2onGiRl67buETMZhhDhP1tcLfiG4EkVHBfm8LJ6GNvw2\nGB4d7xq7N1rHv4zJ2UziUZ13+XlGTElfpLJBVs5L7dxXwAiR12OGUQ0DVh7K\nuqGl\r\n=05Rb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC+NZzdd+aAfo3IkdscraFCfqPpwqQ4ibWMGTKvWlK3/AiEA3l5yJMo7fQWB7oo0X2RtHZMcICpq66tJXCuWmNAYTH4="}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.4.17_1594111371933_0.6698032416233728"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.4.18":{"name":"redux-area","version":"0.4.18","description":"simplified strongly typed redux","keywords":["redux","typescript","simple","strongly-typed","auto generated interface"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^5.3.6","redux":"^4.0.5","redux-saga":"^1.1.3"},"gitHead":"0a27aba755665a03e1463ab71526a04123aa6fc4","_id":"redux-area@0.4.18","_nodeVersion":"12.1.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-Mbz8EyevfPa3N/WFFb/vtZh095tK1M/sv0tUEa79L4Tg+cpHzgDtzFCVpusz0rAh2n8WMDc+l/LIpADSKpXB8w==","shasum":"f10a2aef1c8db98bb90daf47241fb10a22f86185","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.4.18.tgz","fileCount":10,"unpackedSize":638800,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfChf3CRA9TVsSAnZWagAACVcP/353+SM9FrHKUAtyMADA\nL939sVyxIcSnr46QSZNr+rPQNtNOsCcULwkjUKro6/adKENAdWZRb0S9KAHe\n2u9y1mv+vltGZV2NFlYQASN7Q1oWtlN0mCoY9/o6cK/47zBpI5vSfNwfLv19\nOsdBh4t4+Rp+eg53TqTjuzYhOSUqyk1IsaayLFrUqNT5/O1oh20CMoq0sYJP\nNCD7gU1rlrmHjoUm4xRqTqEeQr7bI9K0bNoUxmp2c1qWPBNI2Xes5WHvQnOF\nfCOWXe3kL2U+xDkWQR5zvfUQUotUIE2EMD0KAgFBrMAOmE4cJisZUiPg0OJ5\nkglaNns+0ZZoWquh/c6wT4e8/VQFupJmxPlq/eY8L0j39RycX8apWVmlMYLo\nm8nlxB84/Cq1Kv9Z3KNbkE1J/E6X84QqyIRaVODcjGWX5a3mSULS9A6j0QbG\ncWMtb2Zz+lwY9/XiL2wjLUXch03pQOzIOxonAxLqxcz43/aDx0KSWw2w0Mn6\nDYqEsVhvSuAoHkg5g/+IV1hIgcKJgEYPVlyCutG51JJY5MXIsA5W0lkFx6Al\nWYvJICysAc3P2pRg/VRGbJAqjQq69kexGxzm7mjHV1ojjKnOFX1uCLZQIB7d\n0ufoFEf1btSgftZjYnStmvQsCEFXYgi2iHZ/3ehqnZfz+RKTprA3WgC8i2ht\nDfEB\r\n=Zdin\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGboHyf/v+GTNRQu/byLVVzourwCXS5ErQWx3JCmF/2NAiA/faB0oqpkXr4LrDUOzUm/4OCyiYqi9IQ3nmbk7tNQDw=="}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.4.18_1594497014875_0.5530798568315483"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.4.19":{"name":"redux-area","version":"0.4.19","description":"simplified strongly typed redux","keywords":["redux","typescript","simple","strongly-typed","auto generated interface"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","dependencies":{"immer":"^5.3.6","redux":"^4.0.5","redux-saga":"^1.1.3"},"gitHead":"9c5f6de3057a7870f841d8531b5db643e202d249","_id":"redux-area@0.4.19","_nodeVersion":"12.1.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-6ttEnD6PFEgy+iQIWxCxAcTK8midsWVFGuq+mqkcD7ukkHcZmOzsSB05+UaMpM3ZxOVo7OYHBWXCZvAu1Clirw==","shasum":"1a39ba368e4cc8e29a8923e88ebc70232394acd7","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.4.19.tgz","fileCount":10,"unpackedSize":640008,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCiGOCRA9TVsSAnZWagAAY+YP/1rs/l+0E/qb1Eq6CvjB\n2APTqSTIiuXzHvZbd02rWyTJv4G5eEHfvluU9z8a4p9tZSxDSPd1FhsAdNtU\newlrwb7vZzOgPB7FQUYhR1DHYOdrQcoiTLvlHZYSg1vKUS3GATNUHY0rGX0A\n6Ie48PYpe+Cg9+33HYsWXhcAjaFm+uylvWlNDjr43bmI/o1MiWEqd/LEhn5V\nurQiZY1vj3tM2LnBI+wKiTks4BYWdaJcNtSbnUPNfgiBz0Ez3MA0rhA1Z/Gh\n388ux2YtQYy/pIXAG9ioN7YlRIATwwpwauhDdB42zOd3yxo5M4X9SPLuW8Wc\n4fsEpZ0FT7KhguhvmrtvLrDJrdfVgNpAH02ywUseilPXvPjdQ3HzzLCIQ8P4\nu/0BmW+/LvOBmxWiTxOoNdlc/IOjo1AtKo+IRcIixa2w1m/jwMTxshHel+aG\nPGWxBNVrL5Z1ytuiSbeUZUXMIKMXYEiozM1potTeNNE2Zn443jRdnwwk0w0R\nnANZcC/TBbYo4kJhxDKrEa0SjcEshW37GBA11TBxcGvjumPbQwK5LVW8qBQE\nrYx2ZOsgPljYMFLgMw9c/fVPpjGq92v742LK5Op/Dsbt/wYeMEPVVaC2aIhs\nClY9wQtin8K2sSXTc+OnH5pBG/DVEKlWrAyhHnmQp9CZjLHFilezI2ZSx99P\ng2ud\r\n=MJYK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAUh/er8wcl4lxCpzogws2jnUX7JxBeN+2iciX118IbAAiBPKQjlV/kXtoj7Fz6SCtLJO1ZeO7RTcSC8ZSaiSg6LZA=="}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.4.19_1594499470409_0.8626460087426795"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.5.0":{"name":"redux-area","version":"0.5.0","description":"simplified strongly typed redux","keywords":["redux","typescript","simple","strongly-typed","auto generated interface"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","peerDependencies":{"immer":"^5.x","redux":"^4.x"},"devDependencies":{"@types/redux-saga":"^0.10.5"},"gitHead":"35ff8dff22ce5a86cc958df8a605eaba670af0ec","_id":"redux-area@0.5.0","_nodeVersion":"12.1.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-y9gXmbmzB1Mw/WT6DiCAkrRYJA2kX7v0ALrlhK7vkqbzsgOiVLRVdGvPJ3IkSdMxUjOHN1BDI4fd2l/r/gA0sQ==","shasum":"8d390c8c512db751949b5e3670f8e3222497029a","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.5.0.tgz","fileCount":14,"unpackedSize":694812,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKFuECRA9TVsSAnZWagAAaHEQAKBehpk9VgsaXUJZr55t\nLBzO64jzuEUcUUdBCRGO/Bktr123qHaGZqejPb5xIycmgI/lDJVfsIzuAk/a\nEv0wuYXqPIhnFmN0QWRFXuoOjxutDtJf1JXC1Q3phI1bpcAClWlDIOEFWD0H\nhpdslcnAh/EThwcr/lAuijsor7xxF9l8gxqIFCYNdGmS7Vgdtrky8aGajzDR\nnCC1KaTZd6rGJ0klB4y9Hj2aNf1zHX5AY/J6Yl3b9RG+reG1LwsByqMJeXEe\nlAdqZtVMzaRumMC+qSNCHifJj31tpMZ29mFgiHP8BL4kqBEagqYf7ZaCVCzc\n438FDpgi52IZNTq8rEhR0qEmGO4dnAdyC0e3rZy8E9YfkEoAv8qPPgG1tv9F\nvxc/awxD2q0pv8midCuirl3Kto26gZAVP2LHoNFSwMKfATOoH77R0AI4ZwWr\nB+QpJF72gAz9V09+41N09Z7YPIV9OYXps9/qBHf03iGAGggDfZDTz/RCE2bL\nzNaf2cDieRIn6TOeH6uSj8PM5RJBmbO2rOmXzIJ4/UBgXvpZ/ki98s+nKM6u\nueA9j1MYTtFlNK6LGtbeh866yfOvpH8BbZXQClzCTutShvTrjjBz9nC5HoJ3\n27JpC8UjdOe2hIdOKI1aCGdK990ckv8nTJjwiQSpQ6vbtIFPLAfwjBYRpGRK\nxoVj\r\n=8DGB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCwJKZG+Z7IqpCbCdyTUpcdfwY/WpORbPCqEBuB9HaIQgIgWGYPKjqxxtfrrQaFM1d3+NziEXpMGHR3lQJx27V5cOo="}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.5.0_1596480388427_0.1294127503181477"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.5.1":{"name":"redux-area","version":"0.5.1","description":"simplified strongly typed redux","keywords":["redux","typescript","simple","strongly-typed","auto generated interface"],"publisher":"alfnielsen","main":"out/ReduxArea.js","types":"out/ReduxArea.d.ts","scripts":{"build":"tsc --declaration"},"author":"","license":"ISC","homepage":"https://github.com/alfnielsen/redux-area#readme","peerDependencies":{"immer":"^5.x","redux":"^4.x"},"devDependencies":{"@types/redux-saga":"^0.10.5"},"gitHead":"5f64a427f38e926e6291650392d5f21661b42dc9","_id":"redux-area@0.5.1","_nodeVersion":"12.1.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-ArQ+lhel7TLxVtJEi6DBHCxDu1Jmdqy9QFzSNPp541GgdTOMGtuDQuJ83ohDD92VV2cv0pYsm2dE7o9wIR3+5w==","shasum":"4d3ef951acb7ef6deb1c3e16671a45400657ee7c","tarball":"https://registry.npmjs.org/redux-area/-/redux-area-0.5.1.tgz","fileCount":14,"unpackedSize":694861,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKFwQCRA9TVsSAnZWagAAozwP/iEliWLiUQNpG1IhP5s2\nLICQ+HnlZvGu6xJlq1+S4ucygr5DowA9oz8yR2dOv0tTphmhvjAzF8d3MgKm\nVUoYKc7xp08qV/N+w0y6TeLLgycHRXNFXLmYhdTJvK6vqIRMo4ezLouOOjce\nQf6qRbtV1gFRMiASSuFU6tJs0C0cNg3PsGzZwuoccsbalOJKY183W2067M5+\nDyLHA9gdPmwAX7Kc9oy/x7qCutKQUmeh8uZG6BkbxbrcU2+gJVaQsbaKNxSt\nhvxS5dzAesvNCm6/DlC0Jmz7V82CcvTrtkpPD+k+acswyUShm8SJZ6l/2/D9\nXQ1Lpy2ovmhnFARA89B3X4zqVKqB0iQLjOvVZe4kpCB+X+/g4a/zVqKs8iIN\nnpIuIIxocChuyOtoibtBG5DbGY+7Qqt0lGSrfalYNtZP1FZUSL7VoSfofxgD\nzjf27Bs0S/abLdQDtAhwqyMKuKvWd6PkDRgjEWYG4NrBymvzpy2TlitBL+LK\nmsRMRQenTTSdwRatHCo1U7ONPO+bYNb0BUfWneC7m21sZoou9nuR3dwyZ8Cp\nI3O9Qi2VmOrT+kDe7K5r5S0CS4gMab2q93wmUEK47jMh2WE+T38IxSuZH33i\n8R9bZdPjALJqFxuXHJFKixmFlPgsSfGvWF4Zf28Wa5eB66DlrfR95vYuOCcd\nL14F\r\n=NiCl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICRG2E/Us3ZNDqWzW4AJF1NrX2VpXey4fMF8sAQ+lMbzAiEAnlradKN/IDHn/4UPdML7K2hCTIsGKWm4am3RUS9rQIM="}]},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"_npmUser":{"name":"alfnielsen","email":"alfnielsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-area_0.5.1_1596480527947_0.8072152149235321"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."}},"time":{"created":"2019-10-22T20:14:46.898Z","0.0.1":"2019-10-22T20:14:47.033Z","modified":"2023-06-09T08:09:41.666Z","0.0.2":"2019-10-22T20:30:34.809Z","0.0.3":"2019-10-22T20:31:40.289Z","0.0.4":"2019-10-22T20:48:59.504Z","0.0.5":"2019-10-24T15:41:21.966Z","0.0.6":"2019-10-24T18:09:55.792Z","0.0.7":"2019-10-29T05:41:10.973Z","0.0.8":"2019-10-29T05:46:39.326Z","0.0.9":"2019-11-01T06:21:07.988Z","0.0.10":"2019-11-01T06:27:18.257Z","0.0.11":"2019-11-03T07:26:06.170Z","0.1.0":"2019-11-08T05:54:47.003Z","0.1.1":"2019-11-27T05:52:50.518Z","0.1.2":"2019-11-27T05:55:29.958Z","0.1.3":"2019-12-03T06:23:03.192Z","0.1.4":"2019-12-03T06:24:22.213Z","0.1.5":"2019-12-03T21:13:21.788Z","0.2.0":"2019-12-05T06:26:16.410Z","0.3.0":"2020-02-10T21:14:57.479Z","0.4.0":"2020-03-01T20:09:59.359Z","0.4.1":"2020-03-03T13:12:51.958Z","0.4.2":"2020-04-08T13:33:02.243Z","0.4.3":"2020-04-10T20:33:09.043Z","0.4.4":"2020-04-11T10:56:34.026Z","0.4.5":"2020-04-11T11:24:40.226Z","0.4.6":"2020-04-11T16:34:27.584Z","0.4.7":"2020-04-13T11:34:59.151Z","0.4.8":"2020-04-24T12:33:33.606Z","0.4.9":"2020-04-24T12:53:25.271Z","0.4.10":"2020-04-25T05:37:34.372Z","0.4.11":"2020-04-25T06:24:40.364Z","0.4.12":"2020-04-25T06:27:04.245Z","0.4.13":"2020-04-25T08:29:22.667Z","0.4.14":"2020-07-03T02:31:30.725Z","0.4.15":"2020-07-05T15:41:02.528Z","0.4.16":"2020-07-06T17:37:30.845Z","0.4.17":"2020-07-07T08:42:52.097Z","0.4.18":"2020-07-11T19:50:15.064Z","0.4.19":"2020-07-11T20:31:10.594Z","0.5.0":"2020-08-03T18:46:28.578Z","0.5.1":"2020-08-03T18:48:48.108Z"},"maintainers":[{"name":"alfnielsen","email":"alfnielsen@gmail.com"}],"description":"simplified strongly typed redux","keywords":["redux","typescript","simple","strongly-typed","auto generated interface"],"license":"ISC","readme":"# Redux-area\n\n> Unless you don't want to use saga's, it recommended to install [`redux-saga-area`](https://www.npmjs.com/package/redux-saga-area) instead of `redux-area`\n\n**Short:** `Simplified strongly typed redux`\n\nWhen defining redux actions and reducers with typescript,\nyou often need a lot of typing for interfaces to ensure that you can use your actions,\naction-creators and reducers with autocompletion ect.\n\nRedux-area tries to simplify creation of redux logic by hiding / calculating types,\nkeeping the code more clean.\n\n**The goal is:** to ease and reduce the amount of code we need to write to get all benefits of both\n\n- redux _(single truth, deterministic state transition and view rendering, time travel ect..)_\n  and\n- typescript _(strongly typed symbols and interfaces, code checking/nullable check, auto-rewriting, autocompletion, auto-importing ect..)_.\n\nRedux-area uses the [immer](https://github.com/immerjs/immer) npm module for keeping the reducers as simple as possible.\n\n> You can create normal reducers if you need them\n\nGithub [Source Code](https://github.com/alfnielsen/redux-area) (The npm [package](https://www.npmjs.com/package/redux-area))\n\nSee codesandbox [Demo in React](https://codesandbox.io/s/redux-area-base-ex-tb1lr?fontsize=14&hidenavigation=1&theme=dark)\n\nSee Github Wiki for full [Documentation](https://github.com/alfnielsen/redux-area/wiki)\n\n## See also\n\n**redux-saga-area** Same functionality with added [redux-saga](https://redux-saga.js.org/) functionality\n\n[redux-saga-area](https://www.npmjs.com/package/react-redux-area)\n\n**react-redux-area** is another module the add React specific functionality to redux-area:\n\n[react-redux-area](https://www.npmjs.com/package/react-redux-area)\n\n## Install\n\n```sh\nnpm install redux-area\n```\n\nOr\n\n```sh\nyarn add redux-area\n```\n\nYou need to have installed: \"immer\": \"^5.x\", \"redux\": \"^4.x\",\n\nFull install\n\n```sh\nyarn add immer redux redux-area\n```\n\n## Demo\n\n_(editable codesandbox.io)_\n\nDemo: [Demo in React](https://codesandbox.io/s/redux-area-base-ex-tb1lr?fontsize=14&hidenavigation=1&theme=dark)\n","readmeFilename":"README.md","homepage":"https://github.com/alfnielsen/redux-area#readme"}