{"_id":"@redux-model/taro","_rev":"159-e47bb85c0f6bd6643567f20a4cd55f87","name":"@redux-model/taro","dist-tags":{"latest":"9.0.6","next":"9.1.0-alpha.1","taro2.x":"6.10.0","taro1.x":"6.9.5"},"versions":{"0.0.1":{"name":"@redux-model/taro","version":"0.0.1","keywords":["redux-model","redux","typescript","taro"],"main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model-ts.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","redux":"*"},"dependencies":{"qs":"^6.7.0","tslib":"^1.10.0"},"description":"[简体中文](https://github.com/fwh1990/redux-model-ts/blob/master/README-cn.md)","bugs":{"url":"https://github.com/fwh1990/redux-model-ts/issues"},"homepage":"https://github.com/fwh1990/redux-model-ts#readme","_id":"@redux-model/taro@0.0.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-Xui2yPaUc2YpdbeA5MFp/kzLwV+b3VJThagPxi11OC8R0lVFObumOxVWzoTUWgC4C4ODgUl4Agx5/owRJmYRSw==","shasum":"25db875ee635bfe8cacd7b62c502bfd42d3f7a97","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-0.0.1.tgz","fileCount":33,"unpackedSize":57565,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdNUMpCRA9TVsSAnZWagAAMygP/1VuWkmvP9VnlZLlVnJL\nbtSSOrE47K3kWApEE/xjSXQPPw1uC5SDVVqOXsGJF2HYsDPb/qEWDmn7gAOu\nQ2Wxht7AL/rY/J3bnEHOu9beg6ur1MEwo/v4hYSpqDqU48eic0+ijmhe5ehO\n57x3KnRv643pkC7b06tjxs5NnS3Ljcm+DNJbzwggrFLrLiCqeQG0jU/WaXTV\nreZYjnS/VnvgtbHGFuur/JfSD1G5PV3Oax+JPVo24Ek/1tCqSW3gmtAjyjCS\nlN/yUR3uRrlT1Cu17q3YjQkSvDxWxjjFw5TxsNXv6o0ZkMRZs1cj5o35IaOk\n+SnhV+YeB1tX6MMlDLqm0/8itxKnPrjH4b8QeO1SudKwLfuV2DNYRBE7sv5R\nD1pDhrrI2NhTUpZVxpcelW3ttoY0boXq3r7BRtsYLO8je5d7grU9OORmZe9j\nJdi6w2qg3OBx2LePEIn9rQrG0ytcQM1c91S5Ydtv0+7YYG+FU2uH0j6SpfOF\ndO9QizkpgF4gINGQxS9HpgsgqCysp229X+JeRqBsNdbE4droNs37DhBdNuub\nNi+xLsYimMw9Cg4T4YKX0HHpParEu9k6mUJn4KzgzClMz9DfLmuKRnQqTwes\n3y4DO46Xf2JAgkWrCG1ZgS0lu/bovFfeTbboipjKXHp0AS/tavtUwaG21yUY\ndpnQ\r\n=gH04\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCIAIH4VUswGk1MCWJ21Yal3XVLBeyE+fJyeJo8piWgtwIgVpDn/k52Sjs/+glTwydZk05YidzVLwcPr8/O+x0jUK0="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_0.0.1_1563771688528_0.36544853489578366"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"0.0.2":{"name":"@redux-model/taro","version":"0.0.2","keywords":["redux-model","redux","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model-ts.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","redux":"*"},"dependencies":{"qs":"^6.7.0","tslib":"^1.10.0"},"description":"[简体中文](https://github.com/fwh1990/redux-model-ts/blob/master/README-cn.md)","bugs":{"url":"https://github.com/fwh1990/redux-model-ts/issues"},"homepage":"https://github.com/fwh1990/redux-model-ts#readme","_id":"@redux-model/taro@0.0.2","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-XTVYZzMR3dBVZ8prD10Kg2HfPkXI6SwDWr28hjxjJT5LSW74pVU7nqfVYAt7u88JG1DeP7ox6i+L1BOIhXgpuQ==","shasum":"fe902733d72a0cfed69e8aa36151424bfd575f6e","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-0.0.2.tgz","fileCount":32,"unpackedSize":58430,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdNW39CRA9TVsSAnZWagAAt0UP/RCltIE950C5rvYn/Iiy\n5Rnl0MYjE/KSG1rrGvapiyG6SB8VHK2Tzr7aCnsKJMxogFscDyHqD4K1HEd8\nnSRAHhyHNZUwbApTEiubZu4HB/a1nMFd7dRsPGKVTZG/3h2CcMejxYb5lZj7\n8PZP+lAE/Mcir5S07EPigf0k7Joq62IrsCG3wYd9RaBp+3T+tUaYN4hyxZwo\nAGM1DdZsCU4HqkOLYKYhmeK8R3wXolvMRXPuG4a6u97ViBmEz6CVTyHZ7PJQ\nhEICkm46vG4WGYjz3PBB0RlYkuPmJH7gjyQ/awVePGJtQcU6Iv7ykyxK1VT7\n1wC0Dkl8ovctXhQBPeZHDEQduMSwD14e26tu2fAd2xWw+Yy7AXc3nMOgRYjU\npMqpRC0yDxotVjqtM+kcKVHNgWqnczqRWhYOiX6qGTtbmS57STSrIn5i4H+l\nt226Cqj6KaStZ6M96FzmEAp7N3lDjQtc9gi5XWFqipa5GUC1a4a54AJtkT/M\nqzdV/MH1sbI8KDL7Do0pQ3hh0X8hzq3HC2qfGn0MxiMxFBfmUzqiDFg4sQc9\nVwZWJohSY9Nsj3Wt3Oa6X4+SmuntQyR0MhaflPdkeEOhS8s8J4myVydOZ2W+\nBaQz4QOI8FTNeh5a3XRgCdg8Z6a5hxATOVolE8t3Z5avwyzTE77/8XB0teXN\nnEes\r\n=gvT+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDhqlJytlBZcOqYEOjtPknFp1bK71JTXXMgT9DTmsJZGgIhALRVyTJ8fuc5t+fy9Qha3Wkw+pHroUsbRvZGwdY5vj1p"}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_0.0.2_1563782652806_0.3524343097710898"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"4.0.0":{"name":"@redux-model/taro","version":"4.0.0","keywords":["redux-model","redux","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model-ts.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","redux":"*"},"dependencies":{"qs":"^6.7.0","tslib":"^1.10.0"},"description":"[简体中文](https://github.com/fwh1990/@redux-model/*/blob/master/README-cn.md)","bugs":{"url":"https://github.com/fwh1990/redux-model-ts/issues"},"homepage":"https://github.com/fwh1990/redux-model-ts#readme","_id":"@redux-model/taro@4.0.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-QSKA1qeXy2NJy61SY0KEkEMf9nn5ijMF96k/69k34SRSe0INfrl1cYMi2VdspkoJoWy5Dc/Z8iH4n5MfvhtY2Q==","shasum":"87c3b6dd2685d20ef8c5187910fd86674bb67536","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-4.0.0.tgz","fileCount":32,"unpackedSize":58630,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdNXG+CRA9TVsSAnZWagAAhW8P/3jNLUSALB7pewfRMUtT\nVMqfyhLqIOG0WW8dnz72wcajFVDwJYMoTvXo/8NMf76helqV1+JpjEdIUon1\nPYgwuCxqeqenTeBDp+Qzy+/Pib+uF2i+8nfQr/sQGgYCFjM96gAlfjD5GaD7\nJK+nseYW34CWFpNiiOUGgU+0+ARm4K2gFyiFQKOa+OMjo+UjIr23zj95COXn\n2hh8hHcFo+P9MCw7SCkq9mMlAtxZf6c81gq2GpgoiTONJ2XMNRUanE23rFv+\nbSG3Aehc5NhV170aYWWZCZALFHXHzebI9vzkTAVaMIIAyGYY4LZMo3UVwZ8d\n0Zh+uVg9+zUKmJ26mZx/OmZFdnxfd/4CydzwsXeOb159E6JMjvikff0DyKQV\nXVCml3XwAvYJE1sm0kMmekbTUhMg9AZw0d9PWIAhL2Bzy7JqOrpgQVmStYMR\nl32lB7W6CU1hciiSnZLRVOzb4bkA1IpLw1ebsphpkZ4KBibM2PWGL5JigbpK\njBUZPjY5fNccWU88A5zA5JICyiyqbu2rMd0I5R6U6+Kek8lLt+E9EaHe7WUo\nz6vyhI4cGo5wngz2KiFML1qcWc0wwOTAzoXVDvFZ5YeWIw7Dw9p+PSO4nheu\nXzcFfCaOtu8N6PQsZ11hDAYTVgLoRyIk0wUxIuZqJJPewEsGhUrk+0JGl8BD\neWD3\r\n=aMKu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDYpecaU/594v7QX0oBErlFKWRJC8/8q0Xy5GJU+A0kwAIhAPUomELXOhi4kc3gibbkqzpovkCq/y3333K1weFxse31"}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_4.0.0_1563783613501_0.73528340369856"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"4.0.1":{"name":"@redux-model/taro","version":"4.0.1","keywords":["redux-model","redux","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model-ts.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","redux":"*"},"dependencies":{"qs":"^6.7.0","tslib":"^1.10.0"},"description":"[简体中文](https://github.com/fwh1990/redux-model-ts/blob/master/README-cn.md)","bugs":{"url":"https://github.com/fwh1990/redux-model-ts/issues"},"homepage":"https://github.com/fwh1990/redux-model-ts#readme","_id":"@redux-model/taro@4.0.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-inEgLgQnAHjBWDtjNFozyAesXYh1QEAwB55F6FEDP1Sm4ZoW1pw8UuB3phwIKHFdYhXgwQQdjwwM5iV12ynPLg==","shasum":"4b6954110c585eb07ce4fc39515fb63a04a78fa3","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-4.0.1.tgz","fileCount":32,"unpackedSize":58615,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdNZp7CRA9TVsSAnZWagAADAYP/2u0u3koNXhcsS3VgQ1M\nbnbzCkjmab0IREDMSBHgTuTlUKBoLZjwIM78KztX/38mWBm8nFJnl52wNRpI\nnhqwR6xBBG5xhipbhvoB8vT+u+oK/0jZV8x4ops2uUOM2ZnqOeCri8c+pFMx\nt6Aidjr5Fxng5Zuxn9Scs3SPE2tOwXXgRp+1VmKxwHP31Nve2gPoJhZNzhvs\n1FOQF93I6y5d7HGP4K8lusAH8LgZk1LLj7OUHQ6h+4Aii8DX+qChVMczf47V\nZ8/eTZ2Zu7AAiGacxfr2OPCzacvD1sIoIMWuDDbaTPCeQGLhT9FtnGwt6aHm\n4m9brMNIcztCY0jf23CC4CiPmqRVo7zDsJVGBfl67RvDS+O+mE8PAv0kxikX\nhMWTZCzzUBzedEjgrjiLNdLnWxdfa0xfGsX+mb/xjVNCNMBg8BTnexNrA5A5\nyX3mFSTmCHMRGDcyzc19TEb+r2PleuQBBDoPZIa4RCH9DaY932wy9xBK9K8c\nMN2Gwh/us5luRGrywIdTYlGzVDniNDFIogdylJgQMEe73hLkH6ZJp1Ctli+/\nQHXFNxjsyXCyU9VU/Sgo8vbbkbOa0VvSEXlYLInnESjeptGCVDg61Qem7OqF\noUVJU86UdaMmzL6MdmBjPHkHFhmJGSRtdbOxaX0C+Jn6YGCZat4MKq7DjZXa\n0QNW\r\n=g4di\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAUCq1lz6pX2e99vlFllXK8EgXMCJpKGUoQWyOajtS6oAiEAhMMkraqi9rp3WA4H4xCFzDgoAHjxmqgcetn1MPTC0ps="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_4.0.1_1563794042255_0.23703255773766552"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"4.0.2":{"name":"@redux-model/taro","version":"4.0.2","keywords":["redux-model","redux","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model-ts.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"qs":"^6.7.0","tslib":"^1.10.0"},"description":"[简体中文](https://github.com/fwh1990/redux-model-ts/blob/master/README-cn.md)","bugs":{"url":"https://github.com/fwh1990/redux-model-ts/issues"},"homepage":"https://github.com/fwh1990/redux-model-ts#readme","_id":"@redux-model/taro@4.0.2","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-/1wEecSpfMLMGBsKNb87ONR/YKBOhOOfPJ+srxuLdP7LNQeWZ0K8Q6+AcM5JsaOgnqTN9jYA0lo5Lb9UMmk0ow==","shasum":"226f2fd239c9e5918c5a35a091ea71e5d879e2e2","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-4.0.2.tgz","fileCount":32,"unpackedSize":58405,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdNbSaCRA9TVsSAnZWagAAc2cP/jfcl2zlIeCJWcCA4r0X\nPlYAesVSwMHJifV8rjCTKc9JvYjnfB6sLG6G7nTXm/HmREHDPwmmsTvYjNjB\nj2iM29eOpqjAznVJ1KLJhvh4drU4MTkmMz4P0PyTXGI4v4kH2vrbO5feQrpk\nq0vEh3o9tTK6DSkb+Z3QyXNzO2jOQXosC+1EWND/4mgel92DoebaVz6O0ckw\nx638Cjpz2/J8BlI+rtCI2TGo5Zz/DpwMOkaDibFIu3jxVapIfMRQMqQOnjoX\nHEoTYCpDTyDZ3Ic1yR7sdnpETmaZx55QCD5CfmeRj4oKGj1L8T8QgRZKP4Ay\nhGKwFgWTwTsbJSh8nEcCtmXSjOgJ8xlJZJwJkeiK0s/HzDl/JWvV5AeynkXR\n28Yuo/WvSM9PEHDeeW2/L9hywmnTVfNQ369V0QYes+JUnoQZdTdivBiLd7E7\nCY2OW6iW0ME73jGoJ4Y6ExUSHFkez0DKfUHM6GY+FmvVWn1IYw20eXNlaaR7\nXRjZvL9xGfvoj62NVutGsw3Wl9vmh1sQGGzdqcgngJRDA32UFOXiI8wCeF1j\nqrjaYST7gYCRN71cBVByIYQYYmxvFKdHGOkaYUZi4phkthKX/+sjIzBIlTLC\nT5LZ+5y8y4yt18hF/ZCZPUsLq/fMk/jNwPVr8WN3sSZAgNaUhVyhBObsqzc7\nsVqB\r\n=9KKU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFhuicu5g6bAkPZuXaj8oYVqdY6yrR5Ge/7gI7olUu4gAiEA6FIYCzrC72m9NhXtJ2+Mes6ptvRNJhefVe6ky5OquRg="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_4.0.2_1563800728702_0.26014652603520405"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"4.1.0":{"name":"@redux-model/taro","version":"4.1.0","keywords":["redux-model","redux","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model-ts.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"qs":"^6.7.0","tslib":"^1.10.0"},"description":"[简体中文](https://github.com/fwh1990/redux-model-ts/blob/master/README-cn.md)","bugs":{"url":"https://github.com/fwh1990/redux-model-ts/issues"},"homepage":"https://github.com/fwh1990/redux-model-ts#readme","_id":"@redux-model/taro@4.1.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-uoDu9YLLSFTmLiBkuZbp07TS1e2Srgppj/dzADQgksfldyjD3vgFWg6Z/VBpJdADXNoIirYYsmlf6iJPCm4cEw==","shasum":"a5dba54b510b49e01a3fea824f479d9a841e242a","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-4.1.0.tgz","fileCount":32,"unpackedSize":58418,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdNcH4CRA9TVsSAnZWagAAm04QAJc8iYEa7RmuKCx1frv3\nZIJBtqEeBCk52fTp9qqlCpH4yuY2sisCHwGxwdBjSYcnMt56SrD0gwmzNN7k\nXhPQaeta7m1TO6YNog6F4TxRnDW9Oa/Dl+CGEr0uKp/WxNEMxecaIvhQfY6h\ns+3zDx96u962wqIH09FJxmWQpbuYnuOL7Mb51b0eEuG6BB5gDnenDQDke1db\nDnZnYz6Cwm65B2mwFZ+kJNNeujtaOaQjV1KvzADJmuGdILLi7GGXK27Q5+Ec\nh+Pd0gFZVujCNpeWegk+qUPlrqzDMHGBf8nm442C5qJD4tSsdHV/zRNZmhKP\nD2rPGqxpeOsEPh2VGh8+O5E+ioxFVEkUI9Sl7Pa4CaocQ1bq3g7WKpCSLiXC\n7DlD/lSvz/WpJk/HHfnvSnID0bWsb9EzRhFO5RNZ31ZNqFZJSRSz5zlNCt0o\nsWUxIJIxE6jc4dW1UbWPoDFmv+xDNOXeSHQb/jw9twOPjN2WOSbh0LLF8KGz\nDdE3mWweGMWV5rjbIJVb25p/17YOeK63/KoaiytZpshP3N+fVtY+KMJzvIXc\nNHn47V+wOgpK8uUDxA6giITuRzQj70cseehDEzWI1u5IHfDSGGONrTDqEpFB\neHEV9qasfAUsQqWptZbK5fKbYUUiTOs4rRmo/mLCHMsf0R8nFZiDmGRf2fqe\nVAaF\r\n=nBQn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDQZ+rZm6X8sHH/w6ELI9KYLrIN4EJt3WjEwrYMi18JLQIgNqASgquDy8mK8XbKyaAtRlLuh/HADisjv9hmOqadH9w="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_4.1.0_1563804151230_0.26556179585455086"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"4.1.1":{"name":"@redux-model/taro","version":"4.1.1","keywords":["redux-model","redux","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model-ts.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"qs":"^6.7.0","tslib":"^1.10.0"},"description":"[简体中文](https://github.com/fwh1990/redux-model-ts/blob/master/README-cn.md)","bugs":{"url":"https://github.com/fwh1990/redux-model-ts/issues"},"homepage":"https://github.com/fwh1990/redux-model-ts#readme","_id":"@redux-model/taro@4.1.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-cAL15dKsGAgxPcKdm4a/DEtIDWvLEYD3WE9rwF5oSdgrUsQn8Yfg1majLNKHBwePfs0Kvhgsfnmrv9cqzzYPnw==","shasum":"301a3739428a7e7483b05949e8fae385b2806a63","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-4.1.1.tgz","fileCount":32,"unpackedSize":58335,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdNnntCRA9TVsSAnZWagAAIXoP/iVnz8oaFkN8reUhMVlW\n4gzlCHOOjVi+DmxIN1MS0ZbxBvAk54T/F0CB0B3dE2saqpb4SQC6n0bqhtpY\nPGGAEVx2hvYUFoV+ryJXQldUaCGGF28rR13oPB1Avufr6Ia0A95Fym8Fm8Ht\nCqRuQzTFNqQ0dHWkxy+xjc3vppOIEx04N35OcTNrpGV2kwSiLdBetaA8nFJO\nGGN88/L7VQrlAbG1hRSP2EpohJzj+6dXuX+jw6Il1l+ioCDVhgiZNiJPT638\ndE+/gRrOUpFAc7I+cV+Jp+ca+LyqV2WdykFN7JLTlB5YA2bTDdjQzctigQNn\nx2SLgoPTsE/orb1MDXo4kJYUXccDAzMxzWcRmdqveM3bb8jAmrycZA2WVFB3\nWbjOv9Ea0QavRfzi7pTgu41Xb5pY9JCFdSTJrMz4i/gR1gKGy4h6PTO7ekGh\nl2OuNX5lr5UU5sZO95W59/OPNNXFtRnRCaHMXzZPdNkTPL9YyKgKzO4AMr2P\nxMqW8qse+7+JzCZwRnBj6Vcx/LtSHS96lr/7141aKiXzEHsdhqrzClc6c9z5\n/637rHY1EMco8RbIgIuCfeBodzSyMaVL2sG0Rnp1OtYuRl78ewvXjE5JYqSV\neUvxYz9TJYaqnkpf/OM+TZQEqVglLXimFBI2YHetGmpm4t9x/JeVhij/6PBZ\nOujw\r\n=x3w4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIED4vXB0MAByZ/FmVUomkmeD5GJpvyNEAwXZJ4wL0+QkAiAjsfnnkgEmxAYt7lPleCopxKNNnQS8dKstVhEdARzSkQ=="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_4.1.1_1563851244255_0.581629032797192"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"4.1.2-rc.0":{"name":"@redux-model/taro","version":"4.1.2-rc.0","keywords":["redux-model","redux","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model-ts.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"qs":"^6.7.0","tslib":"^1.10.0"},"readme":"[简体中文](https://github.com/fwh1990/redux-model-ts/blob/master/README-cn.md)\n\nHow many people are writing redux in functional way? And how much time you had wasted since you are repeating action,types,reducer.\nNow, I want to tell you, I am in modern way to write redux. I'am using OOP instead of Functional Programming.\n\n# Compare\n|     | Original Redux | redux-model-ts |\n| ----| ---- | ---- |\n| Coding way | Functional | Class |\n| TS support | Normal | Perfect |\n| Split action and reducer file | Yes | No |\n| Define types | Yes | BuiltIn |\n| Sync action | Thunk OR Saga | BuiltIn |\n| Sync loading status | Code in reducer | BuiltIn |\n| Business code size | Large | Half |\n\n-------------------\n\n**You will get 100% Type checking when you are using typescript.**\n\n# Installation\n\n#### Browser / [React-Native](https://github.com/facebook/react-native)\n```bash\n# By npm or yarn\nnpm install @redux-model/web\nnpm install redux redux-thunk react-redux\n```\n\nRemember: redux-thunk is not required until you want to use method `actionThunk()`\n\nRemember: Keep react version at **16.8.3+** and react-redux at **7.1.0+** when you are using `React Hooks`\n\n#### [Taro](https://github.com/NervJS/taro)\n```bash\n# By npm or yarn\nnpm install @redux-model/taro\nnpm install redux redux-thunk @tarojs/redux @tarojs/redux-h5\n```\n\n# Run Demo\n\nForward to repository: [redux-model-ts-demo](https://github.com/fwh1990/redux-model-ts-demo)\n\n# Snippets\nSearch plugin `bluewaitor.tsreact` in vscode extension.\n\n![](https://github.com/fwh1990/misc/blob/master/redux-model-ts.gif?raw=true)\n\n# Usage\n\n## Define Model\nYou should define a model before you want to use reducer. As rule, one model can only includes one or zero reducer. Firstly, let's define an interface and initialize the reducer.\n```typescript\n// test.ts\nimport { Model } from '@redux-model/*';\n\ninterface Data {\n  foo: string;\n}\n\nclass Test extends Model<Data> {\n  protected initReducer(): Data {\n    return {\n      foo: 'init',\n    };\n  }\n}\n\nexport const test = new Test();\n```\n\nAnd how to strip reducer? You just need to return `null` from method `initReducer()` and remove generic `Data`.\n\n## Register Reducer\nAs we know, the reducer data must be registered to store by `createStore()`, so the model instance has provided a method named `register()` to do that thing.\n```typescript\n// reducers.ts\nimport { combineReducers } from 'redux';\n\nconst reducers = {\n  ...test.register(),\n};\n\nexport const rootReducers = combineReducers(reducers);\n```\n\n## Define Action\nWe only have 3 kind of actions here, but remember that one model can includes unlimited actions. And I will show you how to use them.\n>- Normal Action\n>- Request Action\n>- Thunk Action\n\n## Define Normal Action\nNormal Action is the mostly basic action. It can just send message to reducer.\n\n```typescript\n// test.ts\nclass Test extends Model<Data> {\n  myFirstAction = this.actionNormal({\n    action: (name: string) => {\n      return this.emit({\n        name,\n      });\n    },\n    onSuccess: (state, action) => {\n      return {\n        foo: 'new name: ' + action.payload.name,\n      };\n    },\n  });\n}\n\nexport const test = new Test();\n```\nThe method `onSuccess()` will change reducer data from this model. But remember that it's an **optional property**, that means you can remove it and this action will never change this model who's reducer data is here any more.\n\nHowever, Action can also effect other model no matter onSuccess is defined or not. I'll show you later.\n\n------------\n\nLet's find out how to use action and reducer data in React Component. As usual, we can inject them by method `connect()`\n```typescript jsx\n// By Connect\nimport React, { FunctionComponent } from 'react';\nimport { connect } from 'react-redux';\nimport { test } from './Test';\n\ntype Props = ReturnType<typeof mapStateToProps> & typeof mapDispatchToProps;\n\nconst App: FunctionComponent<Props> = (props) => {\n  const { runAction, name } = props;\n\n  return (\n    <button onClick={() => runAction('New Name')}>\n      Click me: {name}\n    </button>\n  );\n};\n\nconst mapStateToProps = (state) => {\n  return {\n    name: test.connectData(state).foo,\n  };\n};\n\nconst mapDispatchToProps = () => {\n  runAction: test.myFirstAction.action,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(App);\n```\nOnce you click the button, `runAction` will be invoked,\n and `test.reducer` will be modified by the method `onSuccess()` defined in action right now.\n\n----------\nSince React version `>=16.8.3` and react-redux version `>=7.1.0`, you can use hooks to refactor code from above.\n```typescript jsx\n// By React Hooks\nimport React, { FunctionComponent } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { test } from './Test';\n\nconst App: FunctionComponent = (props) => {\n  const dispatch = useDispatch();\n  const name = test.useData((item) => item.foo);\n\n  return (\n    <button onClick={() => dispatch(test.myFirstAction.action('New Name'))}>\n      Click me: {name}\n    </button>\n  );\n};\n\nexport default App;\n```\n\n## Define Request Action\nWe are always need to fetch data from api, and there are lots of detail we should deal with. Such as we need to keep loading status before we fetch succeed. Such as we want to alert message when fetch event is success or failure. And so on.\n\nAha, Don't worry about that, I have resolved these already.\n\nWe want to make action as soon as easy to implement, so we just hide the detail things into `middleware`. First of all, you need to create a middleware.\n\n```typescript\nimport { createRequestMiddleware, Model } from '@redux-model/*';\n\nexport const apiMiddleware = createRequestMiddleware({\n  // Unique name so we can related the sync action.\n  id: Model.middlewareName,\n  // Your base address.\n  baseUrl: 'http://api.xxx.com',\n  // Headers are always necessary.\n  getHeaders: ({ getState }) => {\n    // You are free to get data from redux\n    // Such as access_token like:\n    // const token = tokenModel.connectData(getState()).access_token;\n    return {\n      Authorization: `Bearer token`,\n      Accept: 'application/json',\n     'Content-Type': 'application/json',\n   };\n  },\n  // Collect your meta.\n  onFail: (error: HttpError, transform) => {\n    const { data } = error.response;\n\n    transform.businessCode = data ? data.code : undefined;\n    transform.errorMessage = (data && data.message) || error.message;\n  },\n  // The behavior when action.successText is set.\n  onShowSuccess: (successText) => {\n    console.log(successText);\n  },\n  // The behavior when api respond error http status.\n  // You can set action.hideError=false to stop invoking this method.\n  onShowError: (errorMessage) => {\n    console.error(errorMessage);\n  },\n});\n```\nAnd then inject this middleware into store.\n\n```typescript\n// middlewares.ts\nimport { createStore, compose, applyMiddleware } from 'redux';\nimport { apiMiddleware } from './apiMiddleware.ts';\nimport { rootReducers } from './reducers.ts';\n\nconst store = createStore(\n  rootReducers,\n  {},\n  compose(applyMiddleware(apiMiddleware)),\n);\n```\n----------------\nAll right. You get everything ready and let's go on.\n\n```typescript\n// profile.ts\ninterface Data {\n  id: number;\n  name: string;\n}\n\nclass ProfileModel extends Model<Data> {\n  manage = this.actionRequest({\n    action: (id: number) => {\n      return this.get({\n        uri: '/test/api',\n        query: {\n          id: page,\n        },\n      });\n    },\n    onSuccess: (state, action) => {\n      return action.response;\n    },\n  });\n\n  edit = this.actionRequest({\n    action: (id: number, name: string) => {\n      return this.put({\n        uri: `/test/api/${id}`,\n        body: {\n          name: name,\n        },\n        payload: {\n          name: name,\n        },\n        successText: 'Your profile is updated',\n      });\n    },\n    onSuccess: (state, action) => {\n      return {\n        ...state,\n        name: action.payload.name,\n      };\n    },\n  });\n\n  protected initReducer(): Data {\n    return {\n      id: 0,\n      name: '',\n    };\n  }\n}\n\nexport const profileModel = new ProfileModel();\n```\n\nWe define two Request Action in this model. And there are more property we can use.\n\n**uri**&nbsp;&nbsp;[string] `required`\n<br>\nThe relative url.\n<br><br>\n**query**&nbsp;&nbsp;[object]\n<br>\nQuery string that will merge into url.\n<br><br>\n**body**&nbsp;&nbsp;[object]\n<br>\nThe stream data，It only works for `post put patch delete`.\n<br><br>\n**payload**&nbsp;&nbsp;[object]\n<br>\nExtra params for reducer.\n<br><br>\n**hideError**&nbsp;&nbsp;[boolean | (response) => boolean]\n<br>\nDecide show or hide error message when fetch fail. The default value is false.\n<br><br>\n**successText**&nbsp;&nbsp;[string]\n<br>\nSuccess message you want to show in screen when fetch succeed.\n\n## Define Thunk Action\nI suppose you understand what is [Redux Thunk](https://github.com/reduxjs/redux-thunk), and you have put `thunk middleware` into store. And then, let's go on.\n```typescript\n// test.ts\nimport { profileModel } from './ProfileModel.ts';\n\nclass Test extends Model {\n  myFirstAction = this.actionNormal(...);\n\n  /////////////////////////////////\n  /// Usage: test.myThunk();   ///\n  ////////////////////////////////\n  myThunk = this.actionThunk((/* Action parameters here */) => {\n    return (dispatch, getState) => {\n      dispatch(this.myFirstAction.action());\n      dispatch(profileModel.manage.action());\n      ...\n    };\n  });\n}\n\nexport const test = new Test();\n```\n\n## Model effects.\nIn some case, We expect the action can effect reducer from owner model but also other model. Yep, you can override protected method `effects()` and receive effect from other model.\n```typescript\nclass BarModel extends Model {\n  reset = this.action.actionNormal(...);\n  request = this.action.actionRequest(...);\n}\n\nconst barModel = new BarModel();\n\n// --------\n\nimport { Effects, Model } from '@redux-model/*';\n\ninterface Data {\n  foo: string;\n}\n\nclass Test extends Model<Data> {\n  protected effects(): Effects<Data> {\n    return [\n      barModel.reset.onSuccess((state, action) => {\n        return {\n          foo: 'Oops, reset',\n        };\n      }),\n      barModel.request.onSuccess((state, action) => {\n        return {\n          foo: action.response.name,\n        };\n      }),\n      barModel.request.onFail((state, action) => {\n        return {\n          foo: 'reset again',\n        };\n      }),\n    ];\n  }\n\n  protected initReducer(): Data {\n    return {\n      foo: 'init',\n    };\n  }\n}\n```\nFor Normal Action, it only use `model.action.onSuccess(fn)` to change data for other model.\n\nFor Request Action, it can use `onPrepare(fn)` `onSuccess(fn)` and `onFail(fn)` to subscriber action effect.\n\n## Request Action Promise\nWe can use `promise` in React Component when Request Action is invoked. Now, enjoy 100% type checking for response data.\n\n```typescript jsx\n// By React Hooks\nimport React, { FunctionComponent } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { profileModel } from './ProfileModel.ts';\n\nconst App: FunctionComponent = (props) => {\n  const dispatch = useDispatch();\n  const name = profileModel.useData((item) => item.name);\n  const handleClick = () => {\n    dispatch(profileModel.manage.action(1))\n      .then(({ response }) => {\n        console.log('Hello, ' + response.name);\n      })\n      .catch(() => {\n        console.warn('What is wrong?');\n      })\n      .finally(() => {\n        console.log('Wow, cool bro.');\n      });\n  };\n\n  return (\n    <button onClick={this.handleClick}>\n      Click me: {name}\n    </button>\n  );\n};\n\nexport default App;\n```\n\n## Request Action Loading\nEach Request Action has loading status itself. Feel free to use it whenever you want.\n\n```typescript jsx\n// By React Hooks\nimport React, { FunctionComponent } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { profileModel } from './ProfileModel.ts';\n\nconst App: FunctionComponent = (props) => {\n  const dispatch = useDispatch();\n  const name = profileModel.useData((item) => item.name);\n  // It's boolean type.\n  const loading = profileModel.manage.useLoading();\n\n  return (\n    <button onClick={() => dispatch(profileModel.manage.action(1))}>\n      Click me: {name} {loading ? 'Waiting...' : ''}\n    </button>\n  );\n};\n\nexport default App;\n```\n\nYou can inject loading into props by `connect()` if you don't like hooks.\n\n```typescript\nconst mapStateToProps = (state) => {\n  loading: profileModel.manage.connectLoading(state),\n};\n\nexport default(mapStateToProps)(App);\n```\n\n------------------\nSometimes, you may have to show multiple loading status at the same time. In this case, we provide a property `meta` for Request Action.\n\n```typescript\nclass Profile extends Model {\n  someAction = this.actionRequest({\n    action: (id: number, data: any) => {\n      return this.post({\n        uri: '/profile/api',\n        body: data,\n        payload: {\n          idKey: id,\n        },\n      });\n    },\n    meta: 'idKey',\n  });\n}\n```\nRemember: Make sure the value of meta can be found in key of payload.\n\nLet me show usage in react component.\n```typescript\n// By React Hooks\nimport React, { FunctionComponent } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { profileModel } from './ProfileModel.ts';\n\nconst App: FunctionComponent = (props) => {\n  const dispatch = useDispatch();\n  const name = profileModel.useData((item) => item.name);\n  const userId = 1;\n  const secondUserId = 2;\n  const loading = profileModel.manage.useLoading(userId);\n  const secondLoading = profileModel.manage.useLoading(secondUserId);\n\n  return (\n    <button onClick={() => dispatch(profileModel.manage.action(userId))}>\n      Click me: {name}\n      {loading ? 'Waiting...' : ''}\n      {secondLoading ? 'Second waiting...' : ''}\n    </button>\n  );\n};\n\nexport default App;\n```\n\n\n## Generics\nRequest Action is enable to inject generic `Response` and `Payload`. Remember that you only need to inject once, and the whole project will enjoin type checking where code is related with this action.\n```typescript\nimport { Model } from '@redux-model/*';\n\ntype Data = Array<{\n  id: number;\n  name: string;\n}>;\n\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Payload {\n  id: number;\n}\n\nclass Profile extends Model<Data> {\n  getProfile = this.actionRequest({\n    action: (id: number) => {\n      // Inject here\n      return this.get<Response, Payload>({\n        uri: `/profile/api/${id}`,\n        payload: {\n          id: id,\n        },\n      });\n    },\n    onSuccess: (state, action) => {\n      return {\n        ...state,\n        [action.payload.id]: action.response,\n      };\n    },\n  });\n}\n```\n\n\n--------------------\nCool package.\n\nFeel free to use this package, and you are welcome to create issue and send me PR.\n","readmeFilename":"README.md","description":"[简体中文](https://github.com/fwh1990/redux-model-ts/blob/master/README-cn.md)","bugs":{"url":"https://github.com/fwh1990/redux-model-ts/issues"},"homepage":"https://github.com/fwh1990/redux-model-ts#readme","_id":"@redux-model/taro@4.1.2-rc.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-imAsu7zs22K8N2H549FLue1Ow3vB7fKMn6d5DosgZiDoTmW5A8hISMAFQy3MbLoik6kZ6hZms8RkeeumMQZJVw==","shasum":"9edcd217e63671eb900bf4879f4312e682eff20d","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-4.1.2-rc.0.tgz","fileCount":32,"unpackedSize":52034,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdNwKwCRA9TVsSAnZWagAAQkQP/1GvG1NWpMjH6+sCA/V4\nSMvGbyp4ijOqjAz9bj5P6TyvzVbFiOR+pyRkAaNuPAf4fLK+kf7BNT7hHtwz\nn9hvtzKAN/IIGquFUm3hFZfa9bn6VdQf+bCygnpLu/aVdsYUSPpf59ONtlZy\nd3c3mC0HJqxTUdDteaTf25VoWuDp1P1VMN6LiEE66LjDwhtTA6dWdAVOEcnQ\nzxkWrphhSjsOuVetiGgMUafzkrZmD7pc91v+I4WTRBxdSbmmpEwhOWskVh1e\niltmnS3c95iL5ab61QkvsSq1RiL0YWei+j0kAyGmQJmXOE7kN46bcnCgxsRh\nz84WxmRjTO4lVe5uzfUh6NlhQ6YvqePk21GyqQLlE0d5vkWirfPAkoC8zf3M\nqv3+ijv6Ik9l+1Co42EegTM6+yzC2C5L6xGIEY//yy75hR3a+O7sMGUsFLDt\n0ID0IFJTyzUAA92Xnqetb72xCcfmf1D8VgbIDTQb+M2SzDGGdP2Zpms6SPT3\n6c6vlMAEN2ndogySrvGDlZFeQY92x8jFeqqWYTRjBa2hdrVr3l+C8L0F/SmM\nmzReGATGO53N3tyR9lVGLUkl8hBJEYsIPGYtVPenCXAAOQB3Bduf3pSsX9kc\nDUDFv8UoyWNs0OfGvz9YDF5K9p3pH0HIA9J5whnY35LuNC3OWJuojY6Eqlk2\niIZt\r\n=mbhF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDOohJyOaAkBI6EJFL+EhzL2xL+cbaT3H1RPOdp9XnsswIgY1vT15LT5sIp5f5bNhQUGlSEygFre9OohqADoG5OZH4="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_4.1.2-rc.0_1563886256190_0.09995952579099843"},"_hasShrinkwrap":false},"4.1.2-rc.1":{"name":"@redux-model/taro","version":"4.1.2-rc.1","keywords":["redux-model","redux","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model-ts.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"qs":"^6.7.0","tslib":"^1.10.0"},"readme":"[简体中文](https://github.com/fwh1990/redux-model-ts/blob/master/README-cn.md)\n\nHow many people are writing redux in functional way? And how much time you had wasted since you are repeating action,types,reducer.\nNow, I want to tell you, I am in modern way to write redux. I'am using OOP instead of Functional Programming.\n\n# Compare\n|     | Original Redux | redux-model-ts |\n| ----| ---- | ---- |\n| Coding way | Functional | Class |\n| TS support | Normal | Perfect |\n| Split action and reducer file | Yes | No |\n| Define types | Yes | BuiltIn |\n| Sync action | Thunk OR Saga | BuiltIn |\n| Sync loading status | Code in reducer | BuiltIn |\n| Business code size | Large | Half |\n\n-------------------\n\n**You will get 100% Type checking when you are using typescript.**\n\n# Installation\n\n#### Browser / [React-Native](https://github.com/facebook/react-native)\n```bash\n# By npm or yarn\nnpm install @redux-model/web\nnpm install redux redux-thunk react-redux\n```\n\nRemember: redux-thunk is not required until you want to use method `actionThunk()`\n\nRemember: Keep react version at **16.8.3+** and react-redux at **7.1.0+** when you are using `React Hooks`\n\n#### [Taro](https://github.com/NervJS/taro)\n```bash\n# By npm or yarn\nnpm install @redux-model/taro\nnpm install redux redux-thunk @tarojs/redux @tarojs/redux-h5\n```\n\n# Run Demo\n\nForward to repository: [redux-model-ts-demo](https://github.com/fwh1990/redux-model-ts-demo)\n\n# Snippets\nSearch plugin `bluewaitor.tsreact` in vscode extension.\n\n![](https://github.com/fwh1990/misc/blob/master/redux-model-ts.gif?raw=true)\n\n# Usage\n\n## Define Model\nYou should define a model before you want to use reducer. As rule, one model can only includes one or zero reducer. Firstly, let's define an interface and initialize the reducer.\n```typescript\n// test.ts\nimport { Model } from '@redux-model/*';\n\ninterface Data {\n  foo: string;\n}\n\nclass Test extends Model<Data> {\n  protected initReducer(): Data {\n    return {\n      foo: 'init',\n    };\n  }\n}\n\nexport const test = new Test();\n```\n\nAnd how to strip reducer? You just need to return `null` from method `initReducer()` and remove generic `Data`.\n\n## Register Reducer\nAs we know, the reducer data must be registered to store by `createStore()`, so the model instance has provided a method named `register()` to do that thing.\n```typescript\n// reducers.ts\nimport { combineReducers } from 'redux';\n\nconst reducers = {\n  ...test.register(),\n};\n\nexport const rootReducers = combineReducers(reducers);\n```\n\n## Define Action\nWe only have 3 kind of actions here, but remember that one model can includes unlimited actions. And I will show you how to use them.\n>- Normal Action\n>- Request Action\n>- Thunk Action\n\n## Define Normal Action\nNormal Action is the mostly basic action. It can just send message to reducer.\n\n```typescript\n// test.ts\nclass Test extends Model<Data> {\n  myFirstAction = this.actionNormal({\n    action: (name: string) => {\n      return this.emit({\n        name,\n      });\n    },\n    onSuccess: (state, action) => {\n      return {\n        foo: 'new name: ' + action.payload.name,\n      };\n    },\n  });\n}\n\nexport const test = new Test();\n```\nThe method `onSuccess()` will change reducer data from this model. But remember that it's an **optional property**, that means you can remove it and this action will never change this model who's reducer data is here any more.\n\nHowever, Action can also effect other model no matter onSuccess is defined or not. I'll show you later.\n\n------------\n\nLet's find out how to use action and reducer data in React Component. As usual, we can inject them by method `connect()`\n```typescript jsx\n// By Connect\nimport React, { FunctionComponent } from 'react';\nimport { connect } from 'react-redux';\nimport { test } from './Test';\n\ntype Props = ReturnType<typeof mapStateToProps> & typeof mapDispatchToProps;\n\nconst App: FunctionComponent<Props> = (props) => {\n  const { runAction, name } = props;\n\n  return (\n    <button onClick={() => runAction('New Name')}>\n      Click me: {name}\n    </button>\n  );\n};\n\nconst mapStateToProps = (state) => {\n  return {\n    name: test.connectData(state).foo,\n  };\n};\n\nconst mapDispatchToProps = () => {\n  runAction: test.myFirstAction.action,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(App);\n```\nOnce you click the button, `runAction` will be invoked,\n and `test.reducer` will be modified by the method `onSuccess()` defined in action right now.\n\n----------\nSince React version `>=16.8.3` and react-redux version `>=7.1.0`, you can use hooks to refactor code from above.\n```typescript jsx\n// By React Hooks\nimport React, { FunctionComponent } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { test } from './Test';\n\nconst App: FunctionComponent = (props) => {\n  const dispatch = useDispatch();\n  const name = test.useData((item) => item.foo);\n\n  return (\n    <button onClick={() => dispatch(test.myFirstAction.action('New Name'))}>\n      Click me: {name}\n    </button>\n  );\n};\n\nexport default App;\n```\n\n## Define Request Action\nWe are always need to fetch data from api, and there are lots of detail we should deal with. Such as we need to keep loading status before we fetch succeed. Such as we want to alert message when fetch event is success or failure. And so on.\n\nAha, Don't worry about that, I have resolved these already.\n\nWe want to make action as soon as easy to implement, so we just hide the detail things into `middleware`. First of all, you need to create a middleware.\n\n```typescript\nimport { createRequestMiddleware, Model } from '@redux-model/*';\n\nexport const apiMiddleware = createRequestMiddleware({\n  // Unique name so we can related the sync action.\n  id: Model.middlewareName,\n  // Your base address.\n  baseUrl: 'http://api.xxx.com',\n  // Headers are always necessary.\n  getHeaders: ({ getState }) => {\n    // You are free to get data from redux\n    // Such as access_token like:\n    // const token = tokenModel.connectData(getState()).access_token;\n    return {\n      Authorization: `Bearer token`,\n      Accept: 'application/json',\n     'Content-Type': 'application/json',\n   };\n  },\n  // Collect your meta.\n  onFail: (error: HttpError, transform) => {\n    const { data } = error.response;\n\n    transform.businessCode = data ? data.code : undefined;\n    transform.errorMessage = (data && data.message) || error.message;\n  },\n  // The behavior when action.successText is set.\n  onShowSuccess: (successText) => {\n    console.log(successText);\n  },\n  // The behavior when api respond error http status.\n  // You can set action.hideError=false to stop invoking this method.\n  onShowError: (errorMessage) => {\n    console.error(errorMessage);\n  },\n});\n```\nAnd then inject this middleware into store.\n\n```typescript\n// middlewares.ts\nimport { createStore, compose, applyMiddleware } from 'redux';\nimport { apiMiddleware } from './apiMiddleware.ts';\nimport { rootReducers } from './reducers.ts';\n\nconst store = createStore(\n  rootReducers,\n  {},\n  compose(applyMiddleware(apiMiddleware)),\n);\n```\n----------------\nAll right. You get everything ready and let's go on.\n\n```typescript\n// profile.ts\ninterface Data {\n  id: number;\n  name: string;\n}\n\nclass ProfileModel extends Model<Data> {\n  manage = this.actionRequest({\n    action: (id: number) => {\n      return this.get({\n        uri: '/test/api',\n        query: {\n          id: page,\n        },\n      });\n    },\n    onSuccess: (state, action) => {\n      return action.response;\n    },\n  });\n\n  edit = this.actionRequest({\n    action: (id: number, name: string) => {\n      return this.put({\n        uri: `/test/api/${id}`,\n        body: {\n          name: name,\n        },\n        payload: {\n          name: name,\n        },\n        successText: 'Your profile is updated',\n      });\n    },\n    onSuccess: (state, action) => {\n      return {\n        ...state,\n        name: action.payload.name,\n      };\n    },\n  });\n\n  protected initReducer(): Data {\n    return {\n      id: 0,\n      name: '',\n    };\n  }\n}\n\nexport const profileModel = new ProfileModel();\n```\n\nWe define two Request Action in this model. And there are more property we can use.\n\n**uri**&nbsp;&nbsp;[string] `required`\n<br>\nThe relative url.\n<br><br>\n**query**&nbsp;&nbsp;[object]\n<br>\nQuery string that will merge into url.\n<br><br>\n**body**&nbsp;&nbsp;[object]\n<br>\nThe stream data，It only works for `post put patch delete`.\n<br><br>\n**payload**&nbsp;&nbsp;[object]\n<br>\nExtra params for reducer.\n<br><br>\n**hideError**&nbsp;&nbsp;[boolean | (response) => boolean]\n<br>\nDecide show or hide error message when fetch fail. The default value is false.\n<br><br>\n**successText**&nbsp;&nbsp;[string]\n<br>\nSuccess message you want to show in screen when fetch succeed.\n\n## Define Thunk Action\nI suppose you understand what is [Redux Thunk](https://github.com/reduxjs/redux-thunk), and you have put `thunk middleware` into store. And then, let's go on.\n```typescript\n// test.ts\nimport { profileModel } from './ProfileModel.ts';\n\nclass Test extends Model {\n  myFirstAction = this.actionNormal(...);\n\n  /////////////////////////////////\n  /// Usage: test.myThunk();   ///\n  ////////////////////////////////\n  myThunk = this.actionThunk((/* Action parameters here */) => {\n    return (dispatch, getState) => {\n      dispatch(this.myFirstAction.action());\n      dispatch(profileModel.manage.action());\n      ...\n    };\n  });\n}\n\nexport const test = new Test();\n```\n\n## Model effects.\nIn some case, We expect the action can effect reducer from owner model but also other model. Yep, you can override protected method `effects()` and receive effect from other model.\n```typescript\nclass BarModel extends Model {\n  reset = this.action.actionNormal(...);\n  request = this.action.actionRequest(...);\n}\n\nconst barModel = new BarModel();\n\n// --------\n\nimport { Effects, Model } from '@redux-model/*';\n\ninterface Data {\n  foo: string;\n}\n\nclass Test extends Model<Data> {\n  protected effects(): Effects<Data> {\n    return [\n      barModel.reset.onSuccess((state, action) => {\n        return {\n          foo: 'Oops, reset',\n        };\n      }),\n      barModel.request.onSuccess((state, action) => {\n        return {\n          foo: action.response.name,\n        };\n      }),\n      barModel.request.onFail((state, action) => {\n        return {\n          foo: 'reset again',\n        };\n      }),\n    ];\n  }\n\n  protected initReducer(): Data {\n    return {\n      foo: 'init',\n    };\n  }\n}\n```\nFor Normal Action, it only use `model.action.onSuccess(fn)` to change data for other model.\n\nFor Request Action, it can use `onPrepare(fn)` `onSuccess(fn)` and `onFail(fn)` to subscriber action effect.\n\n## Request Action Promise\nWe can use `promise` in React Component when Request Action is invoked. Now, enjoy 100% type checking for response data.\n\n```typescript jsx\n// By React Hooks\nimport React, { FunctionComponent } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { profileModel } from './ProfileModel.ts';\n\nconst App: FunctionComponent = (props) => {\n  const dispatch = useDispatch();\n  const name = profileModel.useData((item) => item.name);\n  const handleClick = () => {\n    dispatch(profileModel.manage.action(1))\n      .then(({ response }) => {\n        console.log('Hello, ' + response.name);\n      })\n      .catch(() => {\n        console.warn('What is wrong?');\n      })\n      .finally(() => {\n        console.log('Wow, cool bro.');\n      });\n  };\n\n  return (\n    <button onClick={this.handleClick}>\n      Click me: {name}\n    </button>\n  );\n};\n\nexport default App;\n```\n\n## Request Action Loading\nEach Request Action has loading status itself. Feel free to use it whenever you want.\n\n```typescript jsx\n// By React Hooks\nimport React, { FunctionComponent } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { profileModel } from './ProfileModel.ts';\n\nconst App: FunctionComponent = (props) => {\n  const dispatch = useDispatch();\n  const name = profileModel.useData((item) => item.name);\n  // It's boolean type.\n  const loading = profileModel.manage.useLoading();\n\n  return (\n    <button onClick={() => dispatch(profileModel.manage.action(1))}>\n      Click me: {name} {loading ? 'Waiting...' : ''}\n    </button>\n  );\n};\n\nexport default App;\n```\n\nYou can inject loading into props by `connect()` if you don't like hooks.\n\n```typescript\nconst mapStateToProps = (state) => {\n  loading: profileModel.manage.connectLoading(state),\n};\n\nexport default(mapStateToProps)(App);\n```\n\n------------------\nSometimes, you may have to show multiple loading status at the same time. In this case, we provide a property `meta` for Request Action.\n\n```typescript\nclass Profile extends Model {\n  someAction = this.actionRequest({\n    action: (id: number, data: any) => {\n      return this.post({\n        uri: '/profile/api',\n        body: data,\n        payload: {\n          idKey: id,\n        },\n      });\n    },\n    meta: 'idKey',\n  });\n}\n```\nRemember: Make sure the value of meta can be found in key of payload.\n\nLet me show usage in react component.\n```typescript\n// By React Hooks\nimport React, { FunctionComponent } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { profileModel } from './ProfileModel.ts';\n\nconst App: FunctionComponent = (props) => {\n  const dispatch = useDispatch();\n  const name = profileModel.useData((item) => item.name);\n  const userId = 1;\n  const secondUserId = 2;\n  const loading = profileModel.manage.useLoading(userId);\n  const secondLoading = profileModel.manage.useLoading(secondUserId);\n\n  return (\n    <button onClick={() => dispatch(profileModel.manage.action(userId))}>\n      Click me: {name}\n      {loading ? 'Waiting...' : ''}\n      {secondLoading ? 'Second waiting...' : ''}\n    </button>\n  );\n};\n\nexport default App;\n```\n\n\n## Generics\nRequest Action is enable to inject generic `Response` and `Payload`. Remember that you only need to inject once, and the whole project will enjoin type checking where code is related with this action.\n```typescript\nimport { Model } from '@redux-model/*';\n\ntype Data = Array<{\n  id: number;\n  name: string;\n}>;\n\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Payload {\n  id: number;\n}\n\nclass Profile extends Model<Data> {\n  getProfile = this.actionRequest({\n    action: (id: number) => {\n      // Inject here\n      return this.get<Response, Payload>({\n        uri: `/profile/api/${id}`,\n        payload: {\n          id: id,\n        },\n      });\n    },\n    onSuccess: (state, action) => {\n      return {\n        ...state,\n        [action.payload.id]: action.response,\n      };\n    },\n  });\n}\n```\n\n\n--------------------\nCool package.\n\nFeel free to use this package, and you are welcome to create issue and send me PR.\n","readmeFilename":"README.md","description":"[简体中文](https://github.com/fwh1990/redux-model-ts/blob/master/README-cn.md)","bugs":{"url":"https://github.com/fwh1990/redux-model-ts/issues"},"homepage":"https://github.com/fwh1990/redux-model-ts#readme","_id":"@redux-model/taro@4.1.2-rc.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-1Ids8z9AZVJ9sUZr2bJAjTHLZeLtSblb+0cnIds9LeLHDjrdtU+BkLgHDuy1g2axfIV/1uN1PHun3DlCmgYOqg==","shasum":"18d10b86eb5dd78f93d37620442ff4a1cf2c87d4","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-4.1.2-rc.1.tgz","fileCount":32,"unpackedSize":58482,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdNw4oCRA9TVsSAnZWagAAZW0P/3QtWNp63F9uAagbPt0d\nCk8VqpuyJj4iqGk1RmjBpSZQGbYz+BT3NX2nxwqGvhOjnjAtlDu+n//Tci8W\nCuQDn/HcWGxuOoq6xytj+uoGhqzT6CvtNv0LACEJSC66mx2LhU5RZFLNqczF\nE5mQAG/yIfeA+r/ELEvm8tFsB9QygQGmrLTQpo95GShJcZrX6N/t0aMhu3uo\nabuhO6yWB+vVrERIokvutMvc5o76mYIRwZvRatNfeatbus3RF1S+9kKOWpkL\nKx2PNrBAkqWY53ioOpnMu1m0n/KZEKHd3GE1JBaDt7OKKbjCjnejCbSABkVc\n0epllVVA3bk9sTumGgk5cOFzpelTGIXKaPWtBzWbUgvJ5wTRLZiqOsBVkX/N\nUEO0UU3aGD0Zfa9nMaZVCWCdRHFDg0R5CC1hkzdkJyvERUsdUiHB5Xu150dg\nEjwUEK2OVdn8b8T19tGGOnrq9kz0JcjdPolvyZaA5WLiHwaMEXbFlOXSTkut\nPsjSMIuNpZdh5l9HbhBbbpACatNjwqttuXYOePA1j092eB5WvlJjFcef70i7\nhRoK7y4qoRQyo4MatNpfQ78b23nczat5Md82meTDJMmj/KPtJ5aDNMonBrH2\najDrMF9PIqmthGCcSesRCtchaaKhOKnSEpfVl0I82pMpfk0s+USbuO0ISSKD\nIG2y\r\n=M4a/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHHiw8OUKEPrNjgGQuL33b/b+Z9BCgsbXXsrwC3lH8HnAiEAmGuEcBrkeo7AegwOGIrUf4/95eK4GELu0/VlsjBR9MQ="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_4.1.2-rc.1_1563889191560_0.9146094534440512"},"_hasShrinkwrap":false},"4.1.2-rc.2":{"name":"@redux-model/taro","version":"4.1.2-rc.2","keywords":["redux-model","redux","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model-ts.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"qs":"^6.7.0","tslib":"^1.10.0"},"readme":"[简体中文](https://github.com/fwh1990/redux-model-ts/blob/master/README-cn.md)\n\nHow many people are writing redux in functional way? And how much time you had wasted since you are repeating action,types,reducer.\nNow, I want to tell you, I am in modern way to write redux. I'am using OOP instead of Functional Programming.\n\n# Compare\n|     | Original Redux | redux-model-ts |\n| ----| ---- | ---- |\n| Coding way | Functional | Class |\n| TS support | Normal | Perfect |\n| Split action and reducer file | Yes | No |\n| Define types | Yes | BuiltIn |\n| Sync action | Thunk OR Saga | BuiltIn |\n| Sync loading status | Code in reducer | BuiltIn |\n| Business code size | Large | Half |\n\n-------------------\n\n**You will get 100% Type checking when you are using typescript.**\n\n# Installation\n\n#### Browser / [React-Native](https://github.com/facebook/react-native)\n```bash\n# By npm or yarn\nnpm install @redux-model/web\nnpm install redux redux-thunk react-redux\n```\n\nRemember: redux-thunk is not required until you want to use method `actionThunk()`\n\nRemember: Keep react version at **16.8.3+** and react-redux at **7.1.0+** when you are using `React Hooks`\n\n#### [Taro](https://github.com/NervJS/taro)\n```bash\n# By npm or yarn\nnpm install @redux-model/taro\nnpm install redux redux-thunk @tarojs/redux @tarojs/redux-h5\n```\n\n# Run Demo\n\nForward to repository: [redux-model-ts-demo](https://github.com/fwh1990/redux-model-ts-demo)\n\n# Snippets\nSearch plugin `bluewaitor.tsreact` in vscode extension.\n\n![](https://github.com/fwh1990/misc/blob/master/redux-model-ts.gif?raw=true)\n\n# Usage\n\n## Define Model\nYou should define a model before you want to use reducer. As rule, one model can only includes one or zero reducer. Firstly, let's define an interface and initialize the reducer.\n```typescript\n// test.ts\nimport { Model } from '@redux-model/*';\n\ninterface Data {\n  foo: string;\n}\n\nclass Test extends Model<Data> {\n  protected initReducer(): Data {\n    return {\n      foo: 'init',\n    };\n  }\n}\n\nexport const test = new Test();\n```\n\nAnd how to strip reducer? You just need to return `null` from method `initReducer()` and remove generic `Data`.\n\n## Register Reducer\nAs we know, the reducer data must be registered to store by `createStore()`, so the model instance has provided a method named `register()` to do that thing.\n```typescript\n// reducers.ts\nimport { combineReducers } from 'redux';\n\nconst reducers = {\n  ...test.register(),\n};\n\nexport const rootReducers = combineReducers(reducers);\n```\n\n## Define Action\nWe only have 3 kind of actions here, but remember that one model can includes unlimited actions. And I will show you how to use them.\n>- Normal Action\n>- Request Action\n>- Thunk Action\n\n## Define Normal Action\nNormal Action is the mostly basic action. It can just send message to reducer.\n\n```typescript\n// test.ts\nclass Test extends Model<Data> {\n  myFirstAction = this.actionNormal({\n    action: (name: string) => {\n      return this.emit({\n        name,\n      });\n    },\n    onSuccess: (state, action) => {\n      return {\n        foo: 'new name: ' + action.payload.name,\n      };\n    },\n  });\n}\n\nexport const test = new Test();\n```\nThe method `onSuccess()` will change reducer data from this model. But remember that it's an **optional property**, that means you can remove it and this action will never change this model who's reducer data is here any more.\n\nHowever, Action can also effect other model no matter onSuccess is defined or not. I'll show you later.\n\n------------\n\nLet's find out how to use action and reducer data in React Component. As usual, we can inject them by method `connect()`\n```typescript jsx\n// By Connect\nimport React, { FunctionComponent } from 'react';\nimport { connect } from 'react-redux';\nimport { test } from './Test';\n\ntype Props = ReturnType<typeof mapStateToProps> & typeof mapDispatchToProps;\n\nconst App: FunctionComponent<Props> = (props) => {\n  const { runAction, name } = props;\n\n  return (\n    <button onClick={() => runAction('New Name')}>\n      Click me: {name}\n    </button>\n  );\n};\n\nconst mapStateToProps = (state) => {\n  return {\n    name: test.connectData(state).foo,\n  };\n};\n\nconst mapDispatchToProps = () => {\n  runAction: test.myFirstAction.action,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(App);\n```\nOnce you click the button, `runAction` will be invoked,\n and `test.reducer` will be modified by the method `onSuccess()` defined in action right now.\n\n----------\nSince React version `>=16.8.3` and react-redux version `>=7.1.0`, you can use hooks to refactor code from above.\n```typescript jsx\n// By React Hooks\nimport React, { FunctionComponent } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { test } from './Test';\n\nconst App: FunctionComponent = (props) => {\n  const dispatch = useDispatch();\n  const name = test.useData((item) => item.foo);\n\n  return (\n    <button onClick={() => dispatch(test.myFirstAction.action('New Name'))}>\n      Click me: {name}\n    </button>\n  );\n};\n\nexport default App;\n```\n\n## Define Request Action\nWe are always need to fetch data from api, and there are lots of detail we should deal with. Such as we need to keep loading status before we fetch succeed. Such as we want to alert message when fetch event is success or failure. And so on.\n\nAha, Don't worry about that, I have resolved these already.\n\nWe want to make action as soon as easy to implement, so we just hide the detail things into `middleware`. First of all, you need to create a middleware.\n\n```typescript\nimport { createRequestMiddleware, Model } from '@redux-model/*';\n\nexport const apiMiddleware = createRequestMiddleware({\n  // Unique name so we can related the sync action.\n  id: Model.middlewareName,\n  // Your base address.\n  baseUrl: 'http://api.xxx.com',\n  // Headers are always necessary.\n  getHeaders: ({ getState }) => {\n    // You are free to get data from redux\n    // Such as access_token like:\n    // const token = tokenModel.connectData(getState()).access_token;\n    return {\n      Authorization: `Bearer token`,\n      Accept: 'application/json',\n     'Content-Type': 'application/json',\n   };\n  },\n  // Collect your meta.\n  onFail: (error: HttpError, transform) => {\n    const { data } = error.response;\n\n    transform.businessCode = data ? data.code : undefined;\n    transform.errorMessage = (data && data.message) || error.message;\n  },\n  // The behavior when action.successText is set.\n  onShowSuccess: (successText) => {\n    console.log(successText);\n  },\n  // The behavior when api respond error http status.\n  // You can set action.hideError=false to stop invoking this method.\n  onShowError: (errorMessage) => {\n    console.error(errorMessage);\n  },\n});\n```\nAnd then inject this middleware into store.\n\n```typescript\n// middlewares.ts\nimport { createStore, compose, applyMiddleware } from 'redux';\nimport { apiMiddleware } from './apiMiddleware.ts';\nimport { rootReducers } from './reducers.ts';\n\nconst store = createStore(\n  rootReducers,\n  {},\n  compose(applyMiddleware(apiMiddleware)),\n);\n```\n----------------\nAll right. You get everything ready and let's go on.\n\n```typescript\n// profile.ts\ninterface Data {\n  id: number;\n  name: string;\n}\n\nclass ProfileModel extends Model<Data> {\n  manage = this.actionRequest({\n    action: (id: number) => {\n      return this.get({\n        uri: '/test/api',\n        query: {\n          id: page,\n        },\n      });\n    },\n    onSuccess: (state, action) => {\n      return action.response;\n    },\n  });\n\n  edit = this.actionRequest({\n    action: (id: number, name: string) => {\n      return this.put({\n        uri: `/test/api/${id}`,\n        body: {\n          name: name,\n        },\n        payload: {\n          name: name,\n        },\n        successText: 'Your profile is updated',\n      });\n    },\n    onSuccess: (state, action) => {\n      return {\n        ...state,\n        name: action.payload.name,\n      };\n    },\n  });\n\n  protected initReducer(): Data {\n    return {\n      id: 0,\n      name: '',\n    };\n  }\n}\n\nexport const profileModel = new ProfileModel();\n```\n\nWe define two Request Action in this model. And there are more property we can use.\n\n**uri**&nbsp;&nbsp;[string] `required`\n<br>\nThe relative url.\n<br><br>\n**query**&nbsp;&nbsp;[object]\n<br>\nQuery string that will merge into url.\n<br><br>\n**body**&nbsp;&nbsp;[object]\n<br>\nThe stream data，It only works for `post put patch delete`.\n<br><br>\n**payload**&nbsp;&nbsp;[object]\n<br>\nExtra params for reducer.\n<br><br>\n**hideError**&nbsp;&nbsp;[boolean | (response) => boolean]\n<br>\nDecide show or hide error message when fetch fail. The default value is false.\n<br><br>\n**successText**&nbsp;&nbsp;[string]\n<br>\nSuccess message you want to show in screen when fetch succeed.\n\n## Define Thunk Action\nI suppose you understand what is [Redux Thunk](https://github.com/reduxjs/redux-thunk), and you have put `thunk middleware` into store. And then, let's go on.\n```typescript\n// test.ts\nimport { profileModel } from './ProfileModel.ts';\n\nclass Test extends Model {\n  myFirstAction = this.actionNormal(...);\n\n  /////////////////////////////////\n  /// Usage: test.myThunk();   ///\n  ////////////////////////////////\n  myThunk = this.actionThunk((/* Action parameters here */) => {\n    return (dispatch, getState) => {\n      dispatch(this.myFirstAction.action());\n      dispatch(profileModel.manage.action());\n      ...\n    };\n  });\n}\n\nexport const test = new Test();\n```\n\n## Model effects.\nIn some case, We expect the action can effect reducer from owner model but also other model. Yep, you can override protected method `effects()` and receive effect from other model.\n```typescript\nclass BarModel extends Model {\n  reset = this.action.actionNormal(...);\n  request = this.action.actionRequest(...);\n}\n\nconst barModel = new BarModel();\n\n// --------\n\nimport { Effects, Model } from '@redux-model/*';\n\ninterface Data {\n  foo: string;\n}\n\nclass Test extends Model<Data> {\n  protected effects(): Effects<Data> {\n    return [\n      barModel.reset.onSuccess((state, action) => {\n        return {\n          foo: 'Oops, reset',\n        };\n      }),\n      barModel.request.onSuccess((state, action) => {\n        return {\n          foo: action.response.name,\n        };\n      }),\n      barModel.request.onFail((state, action) => {\n        return {\n          foo: 'reset again',\n        };\n      }),\n    ];\n  }\n\n  protected initReducer(): Data {\n    return {\n      foo: 'init',\n    };\n  }\n}\n```\nFor Normal Action, it only use `model.action.onSuccess(fn)` to change data for other model.\n\nFor Request Action, it can use `onPrepare(fn)` `onSuccess(fn)` and `onFail(fn)` to subscriber action effect.\n\n## Request Action Promise\nWe can use `promise` in React Component when Request Action is invoked. Now, enjoy 100% type checking for response data.\n\n```typescript jsx\n// By React Hooks\nimport React, { FunctionComponent } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { profileModel } from './ProfileModel.ts';\n\nconst App: FunctionComponent = (props) => {\n  const dispatch = useDispatch();\n  const name = profileModel.useData((item) => item.name);\n  const handleClick = () => {\n    dispatch(profileModel.manage.action(1))\n      .then(({ response }) => {\n        console.log('Hello, ' + response.name);\n      })\n      .catch(() => {\n        console.warn('What is wrong?');\n      })\n      .finally(() => {\n        console.log('Wow, cool bro.');\n      });\n  };\n\n  return (\n    <button onClick={this.handleClick}>\n      Click me: {name}\n    </button>\n  );\n};\n\nexport default App;\n```\n\n## Request Action Loading\nEach Request Action has loading status itself. Feel free to use it whenever you want.\n\n```typescript jsx\n// By React Hooks\nimport React, { FunctionComponent } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { profileModel } from './ProfileModel.ts';\n\nconst App: FunctionComponent = (props) => {\n  const dispatch = useDispatch();\n  const name = profileModel.useData((item) => item.name);\n  // It's boolean type.\n  const loading = profileModel.manage.useLoading();\n\n  return (\n    <button onClick={() => dispatch(profileModel.manage.action(1))}>\n      Click me: {name} {loading ? 'Waiting...' : ''}\n    </button>\n  );\n};\n\nexport default App;\n```\n\nYou can inject loading into props by `connect()` if you don't like hooks.\n\n```typescript\nconst mapStateToProps = (state) => {\n  loading: profileModel.manage.connectLoading(state),\n};\n\nexport default(mapStateToProps)(App);\n```\n\n------------------\nSometimes, you may have to show multiple loading status at the same time. In this case, we provide a property `meta` for Request Action.\n\n```typescript\nclass Profile extends Model {\n  someAction = this.actionRequest({\n    action: (id: number, data: any) => {\n      return this.post({\n        uri: '/profile/api',\n        body: data,\n        payload: {\n          idKey: id,\n        },\n      });\n    },\n    meta: 'idKey',\n  });\n}\n```\nRemember: Make sure the value of meta can be found in key of payload.\n\nLet me show usage in react component.\n```typescript\n// By React Hooks\nimport React, { FunctionComponent } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { profileModel } from './ProfileModel.ts';\n\nconst App: FunctionComponent = (props) => {\n  const dispatch = useDispatch();\n  const name = profileModel.useData((item) => item.name);\n  const userId = 1;\n  const secondUserId = 2;\n  const loading = profileModel.manage.useLoading(userId);\n  const secondLoading = profileModel.manage.useLoading(secondUserId);\n\n  return (\n    <button onClick={() => dispatch(profileModel.manage.action(userId))}>\n      Click me: {name}\n      {loading ? 'Waiting...' : ''}\n      {secondLoading ? 'Second waiting...' : ''}\n    </button>\n  );\n};\n\nexport default App;\n```\n\n\n## Generics\nRequest Action is enable to inject generic `Response` and `Payload`. Remember that you only need to inject once, and the whole project will enjoin type checking where code is related with this action.\n```typescript\nimport { Model } from '@redux-model/*';\n\ntype Data = Array<{\n  id: number;\n  name: string;\n}>;\n\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Payload {\n  id: number;\n}\n\nclass Profile extends Model<Data> {\n  getProfile = this.actionRequest({\n    action: (id: number) => {\n      // Inject here\n      return this.get<Response, Payload>({\n        uri: `/profile/api/${id}`,\n        payload: {\n          id: id,\n        },\n      });\n    },\n    onSuccess: (state, action) => {\n      return {\n        ...state,\n        [action.payload.id]: action.response,\n      };\n    },\n  });\n}\n```\n\n\n--------------------\nCool package.\n\nFeel free to use this package, and you are welcome to create issue and send me PR.\n","readmeFilename":"README.md","description":"[简体中文](https://github.com/fwh1990/redux-model-ts/blob/master/README-cn.md)","bugs":{"url":"https://github.com/fwh1990/redux-model-ts/issues"},"homepage":"https://github.com/fwh1990/redux-model-ts#readme","_id":"@redux-model/taro@4.1.2-rc.2","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-LwXJSI6hmEI3QRmzCUZKk7yWWw/Z8/adR5lAy+W/4EjWQoZ6WKRz4aFQGKPDOLzvKJYRDkss4yflcSPe3r9cJg==","shasum":"94b9ace12886915ca50d9b7ed68a1a2565bbf0b1","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-4.1.2-rc.2.tgz","fileCount":32,"unpackedSize":58444,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdNw7DCRA9TVsSAnZWagAAelYP/27B3AbuGHCs1BiZQ2iA\ncrcYp9SwfOw4YH3RuMIgPfrfnedkTzGq3k+Bd76FwlLhX+V7YPARRjgmxOOV\nOTjt6pd+nTC499IVA6VH6Fk3/p8TAguVpTssPBGUB8iwFcTpOchYMs3+K9vj\n6NyOBvzZhWZRkivcjolV83gJ2X/L/gSBNQ5BJeU+8TIBqzeX3yr+XcSIje3I\ncmoT/LkxHJ2xAF6v91Up4nNOvCayfn0Pul5BqbbpU+M+O7vbU7WnixMIUzKs\nZ9P+25TF6KlNLz6Z/WktEeNxM49pIgjLHWZZ+bXM2N+npFAfIDt0BnM4YJJ7\n6kyK4rUApLC44hxvJl+Ngp26/gBfdYS5B7V1wFly88oAILf40fVtdysN8nhI\nSCC2fJmLeG4Goyk+CHBYg6AWAMEp/nO240tHILR+IgmL8ZIDey+7LPzIgUbO\nwn/jPX4fu6yFm8RFlnUjmC89KnCd7tgFAw9CJ8H8BmVB5iSdK6inN7FD1mRS\n3E7GLbTF++Sy+HBqwSIa7IYoUMqgAvjytU2g2EnXauyu19I4MIlr4g/xF9hc\nbeS0RJzhZTjKcDrqUZbwdWapR1sQi8i2z34ivg553IciPIl3nYkHPjnm6oRz\nznSW8gm9juA3n83ny5p4pnp4VfYECdRlj3MnJmeM0z1+i3vn+zpfrZv9W1sc\nvzGH\r\n=3ZIN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGYxoO+3FafmXe4Uk5SF1TrqWITL+vSTfAqhtPC6kMG6AiEA1RXDFx6DIne/hKXlmHIp4W0GcaFdbfUahb3v0hn30BA="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_4.1.2-rc.2_1563889346543_0.324690043613749"},"_hasShrinkwrap":false},"4.1.2-rc.3":{"name":"@redux-model/taro","version":"4.1.2-rc.3","keywords":["redux-model","redux","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model-ts.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"qs":"^6.7.0","tslib":"^1.10.0"},"readme":"[简体中文](https://github.com/fwh1990/redux-model-ts/blob/master/README-cn.md)\n\nHow many people are writing redux in functional way? And how much time you had wasted since you are repeating action,types,reducer.\nNow, I want to tell you, I am in modern way to write redux. I'am using OOP instead of Functional Programming.\n\n# Compare\n|     | Original Redux | redux-model-ts |\n| ----| ---- | ---- |\n| Coding way | Functional | Class |\n| TS support | Normal | Perfect |\n| Split action and reducer file | Yes | No |\n| Define types | Yes | BuiltIn |\n| Sync action | Thunk OR Saga | BuiltIn |\n| Sync loading status | Code in reducer | BuiltIn |\n| Business code size | Large | Half |\n\n-------------------\n\n**You will get 100% Type checking when you are using typescript.**\n\n# Installation\n\n#### Browser / [React-Native](https://github.com/facebook/react-native)\n```bash\n# By npm or yarn\nnpm install @redux-model/web\nnpm install redux redux-thunk react-redux\n```\n\nRemember: redux-thunk is not required until you want to use method `actionThunk()`\n\nRemember: Keep react version at **16.8.3+** and react-redux at **7.1.0+** when you are using `React Hooks`\n\n#### [Taro](https://github.com/NervJS/taro)\n```bash\n# By npm or yarn\nnpm install @redux-model/taro\nnpm install redux redux-thunk @tarojs/redux @tarojs/redux-h5\n```\n\n# Run Demo\n\nForward to repository: [redux-model-ts-demo](https://github.com/fwh1990/redux-model-ts-demo)\n\n# Snippets\nSearch plugin `bluewaitor.tsreact` in vscode extension.\n\n![](https://github.com/fwh1990/misc/blob/master/redux-model-ts.gif?raw=true)\n\n# Usage\n\n## Define Model\nYou should define a model before you want to use reducer. As rule, one model can only includes one or zero reducer. Firstly, let's define an interface and initialize the reducer.\n```typescript\n// test.ts\nimport { Model } from '@redux-model/*';\n\ninterface Data {\n  foo: string;\n}\n\nclass Test extends Model<Data> {\n  protected initReducer(): Data {\n    return {\n      foo: 'init',\n    };\n  }\n}\n\nexport const test = new Test();\n```\n\nAnd how to strip reducer? You just need to return `null` from method `initReducer()` and remove generic `Data`.\n\n## Register Reducer\nAs we know, the reducer data must be registered to store by `createStore()`, so the model instance has provided a method named `register()` to do that thing.\n```typescript\n// reducers.ts\nimport { combineReducers } from 'redux';\n\nconst reducers = {\n  ...test.register(),\n};\n\nexport const rootReducers = combineReducers(reducers);\n```\n\n## Define Action\nWe only have 3 kind of actions here, but remember that one model can includes unlimited actions. And I will show you how to use them.\n>- Normal Action\n>- Request Action\n>- Thunk Action\n\n## Define Normal Action\nNormal Action is the mostly basic action. It can just send message to reducer.\n\n```typescript\n// test.ts\nclass Test extends Model<Data> {\n  myFirstAction = this.actionNormal({\n    action: (name: string) => {\n      return this.emit({\n        name,\n      });\n    },\n    onSuccess: (state, action) => {\n      return {\n        foo: 'new name: ' + action.payload.name,\n      };\n    },\n  });\n}\n\nexport const test = new Test();\n```\nThe method `onSuccess()` will change reducer data from this model. But remember that it's an **optional property**, that means you can remove it and this action will never change this model who's reducer data is here any more.\n\nHowever, Action can also effect other model no matter onSuccess is defined or not. I'll show you later.\n\n------------\n\nLet's find out how to use action and reducer data in React Component. As usual, we can inject them by method `connect()`\n```typescript jsx\n// By Connect\nimport React, { FunctionComponent } from 'react';\nimport { connect } from 'react-redux';\nimport { test } from './Test';\n\ntype Props = ReturnType<typeof mapStateToProps> & typeof mapDispatchToProps;\n\nconst App: FunctionComponent<Props> = (props) => {\n  const { runAction, name } = props;\n\n  return (\n    <button onClick={() => runAction('New Name')}>\n      Click me: {name}\n    </button>\n  );\n};\n\nconst mapStateToProps = (state) => {\n  return {\n    name: test.connectData(state).foo,\n  };\n};\n\nconst mapDispatchToProps = () => {\n  runAction: test.myFirstAction.action,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(App);\n```\nOnce you click the button, `runAction` will be invoked,\n and `test.reducer` will be modified by the method `onSuccess()` defined in action right now.\n\n----------\nSince React version `>=16.8.3` and react-redux version `>=7.1.0`, you can use hooks to refactor code from above.\n```typescript jsx\n// By React Hooks\nimport React, { FunctionComponent } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { test } from './Test';\n\nconst App: FunctionComponent = (props) => {\n  const dispatch = useDispatch();\n  const name = test.useData((item) => item.foo);\n\n  return (\n    <button onClick={() => dispatch(test.myFirstAction.action('New Name'))}>\n      Click me: {name}\n    </button>\n  );\n};\n\nexport default App;\n```\n\n## Define Request Action\nWe are always need to fetch data from api, and there are lots of detail we should deal with. Such as we need to keep loading status before we fetch succeed. Such as we want to alert message when fetch event is success or failure. And so on.\n\nAha, Don't worry about that, I have resolved these already.\n\nWe want to make action as soon as easy to implement, so we just hide the detail things into `middleware`. First of all, you need to create a middleware.\n\n```typescript\nimport { createRequestMiddleware, Model } from '@redux-model/*';\n\nexport const apiMiddleware = createRequestMiddleware({\n  // Unique name so we can related the sync action.\n  id: Model.middlewareName,\n  // Your base address.\n  baseUrl: 'http://api.xxx.com',\n  // Headers are always necessary.\n  getHeaders: ({ getState }) => {\n    // You are free to get data from redux\n    // Such as access_token like:\n    // const token = tokenModel.connectData(getState()).access_token;\n    return {\n      Authorization: `Bearer token`,\n      Accept: 'application/json',\n     'Content-Type': 'application/json',\n   };\n  },\n  // Collect your meta.\n  onFail: (error: HttpError, transform) => {\n    const { data } = error.response;\n\n    transform.businessCode = data ? data.code : undefined;\n    transform.errorMessage = (data && data.message) || error.message;\n  },\n  // The behavior when action.successText is set.\n  onShowSuccess: (successText) => {\n    console.log(successText);\n  },\n  // The behavior when api respond error http status.\n  // You can set action.hideError=false to stop invoking this method.\n  onShowError: (errorMessage) => {\n    console.error(errorMessage);\n  },\n});\n```\nAnd then inject this middleware into store.\n\n```typescript\n// middlewares.ts\nimport { createStore, compose, applyMiddleware } from 'redux';\nimport { apiMiddleware } from './apiMiddleware.ts';\nimport { rootReducers } from './reducers.ts';\n\nconst store = createStore(\n  rootReducers,\n  {},\n  compose(applyMiddleware(apiMiddleware)),\n);\n```\n----------------\nAll right. You get everything ready and let's go on.\n\n```typescript\n// profile.ts\ninterface Data {\n  id: number;\n  name: string;\n}\n\nclass ProfileModel extends Model<Data> {\n  manage = this.actionRequest({\n    action: (id: number) => {\n      return this.get({\n        uri: '/test/api',\n        query: {\n          id: page,\n        },\n      });\n    },\n    onSuccess: (state, action) => {\n      return action.response;\n    },\n  });\n\n  edit = this.actionRequest({\n    action: (id: number, name: string) => {\n      return this.put({\n        uri: `/test/api/${id}`,\n        body: {\n          name: name,\n        },\n        payload: {\n          name: name,\n        },\n        successText: 'Your profile is updated',\n      });\n    },\n    onSuccess: (state, action) => {\n      return {\n        ...state,\n        name: action.payload.name,\n      };\n    },\n  });\n\n  protected initReducer(): Data {\n    return {\n      id: 0,\n      name: '',\n    };\n  }\n}\n\nexport const profileModel = new ProfileModel();\n```\n\nWe define two Request Action in this model. And there are more property we can use.\n\n**uri**&nbsp;&nbsp;[string] `required`\n<br>\nThe relative url.\n<br><br>\n**query**&nbsp;&nbsp;[object]\n<br>\nQuery string that will merge into url.\n<br><br>\n**body**&nbsp;&nbsp;[object]\n<br>\nThe stream data，It only works for `post put patch delete`.\n<br><br>\n**payload**&nbsp;&nbsp;[object]\n<br>\nExtra params for reducer.\n<br><br>\n**hideError**&nbsp;&nbsp;[boolean | (response) => boolean]\n<br>\nDecide show or hide error message when fetch fail. The default value is false.\n<br><br>\n**successText**&nbsp;&nbsp;[string]\n<br>\nSuccess message you want to show in screen when fetch succeed.\n\n## Define Thunk Action\nI suppose you understand what is [Redux Thunk](https://github.com/reduxjs/redux-thunk), and you have put `thunk middleware` into store. And then, let's go on.\n```typescript\n// test.ts\nimport { profileModel } from './ProfileModel.ts';\n\nclass Test extends Model {\n  myFirstAction = this.actionNormal(...);\n\n  /////////////////////////////////\n  /// Usage: test.myThunk();   ///\n  ////////////////////////////////\n  myThunk = this.actionThunk((/* Action parameters here */) => {\n    return (dispatch, getState) => {\n      dispatch(this.myFirstAction.action());\n      dispatch(profileModel.manage.action());\n      ...\n    };\n  });\n}\n\nexport const test = new Test();\n```\n\n## Model effects.\nIn some case, We expect the action can effect reducer from owner model but also other model. Yep, you can override protected method `effects()` and receive effect from other model.\n```typescript\nclass BarModel extends Model {\n  reset = this.action.actionNormal(...);\n  request = this.action.actionRequest(...);\n}\n\nconst barModel = new BarModel();\n\n// --------\n\nimport { Effects, Model } from '@redux-model/*';\n\ninterface Data {\n  foo: string;\n}\n\nclass Test extends Model<Data> {\n  protected effects(): Effects<Data> {\n    return [\n      barModel.reset.onSuccess((state, action) => {\n        return {\n          foo: 'Oops, reset',\n        };\n      }),\n      barModel.request.onSuccess((state, action) => {\n        return {\n          foo: action.response.name,\n        };\n      }),\n      barModel.request.onFail((state, action) => {\n        return {\n          foo: 'reset again',\n        };\n      }),\n    ];\n  }\n\n  protected initReducer(): Data {\n    return {\n      foo: 'init',\n    };\n  }\n}\n```\nFor Normal Action, it only use `model.action.onSuccess(fn)` to change data for other model.\n\nFor Request Action, it can use `onPrepare(fn)` `onSuccess(fn)` and `onFail(fn)` to subscriber action effect.\n\n## Request Action Promise\nWe can use `promise` in React Component when Request Action is invoked. Now, enjoy 100% type checking for response data.\n\n```typescript jsx\n// By React Hooks\nimport React, { FunctionComponent } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { profileModel } from './ProfileModel.ts';\n\nconst App: FunctionComponent = (props) => {\n  const dispatch = useDispatch();\n  const name = profileModel.useData((item) => item.name);\n  const handleClick = () => {\n    dispatch(profileModel.manage.action(1))\n      .then(({ response }) => {\n        console.log('Hello, ' + response.name);\n      })\n      .catch(() => {\n        console.warn('What is wrong?');\n      })\n      .finally(() => {\n        console.log('Wow, cool bro.');\n      });\n  };\n\n  return (\n    <button onClick={this.handleClick}>\n      Click me: {name}\n    </button>\n  );\n};\n\nexport default App;\n```\n\n## Request Action Loading\nEach Request Action has loading status itself. Feel free to use it whenever you want.\n\n```typescript jsx\n// By React Hooks\nimport React, { FunctionComponent } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { profileModel } from './ProfileModel.ts';\n\nconst App: FunctionComponent = (props) => {\n  const dispatch = useDispatch();\n  const name = profileModel.useData((item) => item.name);\n  // It's boolean type.\n  const loading = profileModel.manage.useLoading();\n\n  return (\n    <button onClick={() => dispatch(profileModel.manage.action(1))}>\n      Click me: {name} {loading ? 'Waiting...' : ''}\n    </button>\n  );\n};\n\nexport default App;\n```\n\nYou can inject loading into props by `connect()` if you don't like hooks.\n\n```typescript\nconst mapStateToProps = (state) => {\n  loading: profileModel.manage.connectLoading(state),\n};\n\nexport default(mapStateToProps)(App);\n```\n\n------------------\nSometimes, you may have to show multiple loading status at the same time. In this case, we provide a property `meta` for Request Action.\n\n```typescript\nclass Profile extends Model {\n  someAction = this.actionRequest({\n    action: (id: number, data: any) => {\n      return this.post({\n        uri: '/profile/api',\n        body: data,\n        payload: {\n          idKey: id,\n        },\n      });\n    },\n    meta: 'idKey',\n  });\n}\n```\nRemember: Make sure the value of meta can be found in key of payload.\n\nLet me show usage in react component.\n```typescript\n// By React Hooks\nimport React, { FunctionComponent } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { profileModel } from './ProfileModel.ts';\n\nconst App: FunctionComponent = (props) => {\n  const dispatch = useDispatch();\n  const name = profileModel.useData((item) => item.name);\n  const userId = 1;\n  const secondUserId = 2;\n  const loading = profileModel.manage.useLoading(userId);\n  const secondLoading = profileModel.manage.useLoading(secondUserId);\n\n  return (\n    <button onClick={() => dispatch(profileModel.manage.action(userId))}>\n      Click me: {name}\n      {loading ? 'Waiting...' : ''}\n      {secondLoading ? 'Second waiting...' : ''}\n    </button>\n  );\n};\n\nexport default App;\n```\n\n\n## Generics\nRequest Action is enable to inject generic `Response` and `Payload`. Remember that you only need to inject once, and the whole project will enjoin type checking where code is related with this action.\n```typescript\nimport { Model } from '@redux-model/*';\n\ntype Data = Array<{\n  id: number;\n  name: string;\n}>;\n\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Payload {\n  id: number;\n}\n\nclass Profile extends Model<Data> {\n  getProfile = this.actionRequest({\n    action: (id: number) => {\n      // Inject here\n      return this.get<Response, Payload>({\n        uri: `/profile/api/${id}`,\n        payload: {\n          id: id,\n        },\n      });\n    },\n    onSuccess: (state, action) => {\n      return {\n        ...state,\n        [action.payload.id]: action.response,\n      };\n    },\n  });\n}\n```\n\n\n--------------------\nCool package.\n\nFeel free to use this package, and you are welcome to create issue and send me PR.\n","readmeFilename":"README.md","description":"[简体中文](https://github.com/fwh1990/redux-model-ts/blob/master/README-cn.md)","bugs":{"url":"https://github.com/fwh1990/redux-model-ts/issues"},"homepage":"https://github.com/fwh1990/redux-model-ts#readme","_id":"@redux-model/taro@4.1.2-rc.3","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-6AZrc9bADDv2ufGxG1NQjXiV9Bu9AgiiaFTO+ihyTRX6w8RDdeSyaPSvuZ11chSUHiwCQmk6XCZM7lAmWrkYpA==","shasum":"03a05dd6a6f6fcbccccc20dc277e00402a73822f","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-4.1.2-rc.3.tgz","fileCount":32,"unpackedSize":58461,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdNw8ZCRA9TVsSAnZWagAAm/QP/2KICuQ9r+WQ51Ax3XiK\nCr05c4j24PyTcAbV7u2nTMatoZjDoywC9l1hI1LF/oEWqV7JO5YExeDu0TLU\nM43zw8FQ4bmxO4sbcwvBHOQ5REnXTaGSzUieaqQtZcg85wuPIyg+W6v6LTaj\n8uD4rZ1vpywdgZ5X3pdIISFLGlLKv0kY5ilgE78dJPo7tYKrE7QAfz1uYE5+\n5k2mie0Igx3VAQ2R/Iv3CxcttpwiPPx/ryVI3Kf0pqlbgnAGQc/iU2KLV7vx\n8r3VYP0zeXBpU88QUaovjtyc3ZJ+5OSBs9CYShUnEoUmKS6EvS6rNa7lrrl/\nnlaAqpB3EwaHiWgVJnHbKJIKEeHTdrXlJ+EyNEU+oc7uaOR77RNG5hm6TFQG\nJJEI0XxveDPTqV4sZ0MQIp+GhS3d7gDJB0Uw3CDESnO99dhLoxenzp8fGjf2\nRGQXApuCXpeZ4zirmR+fpMWdPA6EoYp7SSgGvnoe/ijQYX6dCWA/uVG9arLa\n4YMT5mSFvXEixlG4rrZnE9WWzuEu4Qa6e8hLF1AqAKtP2yFLfFE1zsMMbPC0\nUVhkQLqcEXblrknwTQUWpfDv3+tX694q5oFMDCEJGMoR1+6lCTpMqjeWZ6hu\nmAJ23MGOB17EGx1yMnwAoN1BbogAU1CdUn3vlK+PvFsqV5Vc+L9X6Ta0qFyY\neotv\r\n=lhbh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDGl/fWpinYzTydw41KnKI6Y2lOWsiN+xnMJArR2OMncQIgYLoEcydSfpOOqj1gt4ZRyusikQgVCmNLFH7jN3NrJNI="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_4.1.2-rc.3_1563889433095_0.4989990988282087"},"_hasShrinkwrap":false},"4.1.2":{"name":"@redux-model/taro","version":"4.1.2","keywords":["redux-model","redux","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model-ts.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"qs":"^6.7.0","tslib":"^1.10.0"},"readme":"[简体中文](https://github.com/fwh1990/redux-model-ts/blob/master/README-cn.md)\n\nHow many people are writing redux in functional way? And how much time you had wasted since you are repeating action,types,reducer.\nNow, I want to tell you, I am in modern way to write redux. I'am using OOP instead of Functional Programming.\n\n# Compare\n|     | Original Redux | redux-model-ts |\n| ----| ---- | ---- |\n| Coding way | Functional | Class |\n| TS support | Normal | Perfect |\n| Split action and reducer file | Yes | No |\n| Define types | Yes | BuiltIn |\n| Sync action | Thunk OR Saga | BuiltIn |\n| Sync loading status | Code in reducer | BuiltIn |\n| Business code size | Large | Half |\n\n-------------------\n\n**You will get 100% Type checking when you are using typescript.**\n\n# Installation\n\n#### Browser / [React-Native](https://github.com/facebook/react-native)\n```bash\n# By npm or yarn\nnpm install @redux-model/web\nnpm install redux redux-thunk react-redux\n```\n\nRemember: redux-thunk is not required until you want to use method `actionThunk()`\n\nRemember: Keep react version at **16.8.3+** and react-redux at **7.1.0+** when you are using `React Hooks`\n\n#### [Taro](https://github.com/NervJS/taro)\n```bash\n# By npm or yarn\nnpm install @redux-model/taro\nnpm install redux redux-thunk @tarojs/redux @tarojs/redux-h5\n```\n\n# Run Demo\n\nForward to repository: [redux-model-ts-demo](https://github.com/fwh1990/redux-model-ts-demo)\n\n# Snippets\nSearch plugin `bluewaitor.tsreact` in vscode extension.\n\n![](https://github.com/fwh1990/misc/blob/master/redux-model-ts.gif?raw=true)\n\n# Usage\n\n## Define Model\nYou should define a model before you want to use reducer. As rule, one model can only includes one or zero reducer. Firstly, let's define an interface and initialize the reducer.\n```typescript\n// test.ts\nimport { Model } from '@redux-model/*';\n\ninterface Data {\n  foo: string;\n}\n\nclass Test extends Model<Data> {\n  protected initReducer(): Data {\n    return {\n      foo: 'init',\n    };\n  }\n}\n\nexport const test = new Test();\n```\n\nAnd how to strip reducer? You just need to return `null` from method `initReducer()` and remove generic `Data`.\n\n## Register Reducer\nAs we know, the reducer data must be registered to store by `createStore()`, so the model instance has provided a method named `register()` to do that thing.\n```typescript\n// reducers.ts\nimport { combineReducers } from 'redux';\n\nconst reducers = {\n  ...test.register(),\n};\n\nexport const rootReducers = combineReducers(reducers);\n```\n\n## Define Action\nWe only have 3 kind of actions here, but remember that one model can includes unlimited actions. And I will show you how to use them.\n>- Normal Action\n>- Request Action\n>- Thunk Action\n\n## Define Normal Action\nNormal Action is the mostly basic action. It can just send message to reducer.\n\n```typescript\n// test.ts\nclass Test extends Model<Data> {\n  myFirstAction = this.actionNormal({\n    action: (name: string) => {\n      return this.emit({\n        name,\n      });\n    },\n    onSuccess: (state, action) => {\n      return {\n        foo: 'new name: ' + action.payload.name,\n      };\n    },\n  });\n}\n\nexport const test = new Test();\n```\nThe method `onSuccess()` will change reducer data from this model. But remember that it's an **optional property**, that means you can remove it and this action will never change this model who's reducer data is here any more.\n\nHowever, Action can also effect other model no matter onSuccess is defined or not. I'll show you later.\n\n------------\n\nLet's find out how to use action and reducer data in React Component. As usual, we can inject them by method `connect()`\n```typescript jsx\n// By Connect\nimport React, { FunctionComponent } from 'react';\nimport { connect } from 'react-redux';\nimport { test } from './Test';\n\ntype Props = ReturnType<typeof mapStateToProps> & typeof mapDispatchToProps;\n\nconst App: FunctionComponent<Props> = (props) => {\n  const { runAction, name } = props;\n\n  return (\n    <button onClick={() => runAction('New Name')}>\n      Click me: {name}\n    </button>\n  );\n};\n\nconst mapStateToProps = (state) => {\n  return {\n    name: test.connectData(state).foo,\n  };\n};\n\nconst mapDispatchToProps = () => {\n  runAction: test.myFirstAction.action,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(App);\n```\nOnce you click the button, `runAction` will be invoked,\n and `test.reducer` will be modified by the method `onSuccess()` defined in action right now.\n\n----------\nSince React version `>=16.8.3` and react-redux version `>=7.1.0`, you can use hooks to refactor code from above.\n```typescript jsx\n// By React Hooks\nimport React, { FunctionComponent } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { test } from './Test';\n\nconst App: FunctionComponent = (props) => {\n  const dispatch = useDispatch();\n  const name = test.useData((item) => item.foo);\n\n  return (\n    <button onClick={() => dispatch(test.myFirstAction.action('New Name'))}>\n      Click me: {name}\n    </button>\n  );\n};\n\nexport default App;\n```\n\n## Define Request Action\nWe are always need to fetch data from api, and there are lots of detail we should deal with. Such as we need to keep loading status before we fetch succeed. Such as we want to alert message when fetch event is success or failure. And so on.\n\nAha, Don't worry about that, I have resolved these already.\n\nWe want to make action as soon as easy to implement, so we just hide the detail things into `middleware`. First of all, you need to create a middleware.\n\n```typescript\nimport { createRequestMiddleware, Model } from '@redux-model/*';\n\nexport const apiMiddleware = createRequestMiddleware({\n  // Unique name so we can related the sync action.\n  id: Model.middlewareName,\n  // Your base address.\n  baseUrl: 'http://api.xxx.com',\n  // Headers are always necessary.\n  getHeaders: ({ getState }) => {\n    // You are free to get data from redux\n    // Such as access_token like:\n    // const token = tokenModel.connectData(getState()).access_token;\n    return {\n      Authorization: `Bearer token`,\n      Accept: 'application/json',\n     'Content-Type': 'application/json',\n   };\n  },\n  // Collect your meta.\n  onFail: (error: HttpError, transform) => {\n    const { data } = error.response;\n\n    transform.businessCode = data ? data.code : undefined;\n    transform.errorMessage = (data && data.message) || error.message;\n  },\n  // The behavior when action.successText is set.\n  onShowSuccess: (successText) => {\n    console.log(successText);\n  },\n  // The behavior when api respond error http status.\n  // You can set action.hideError=false to stop invoking this method.\n  onShowError: (errorMessage) => {\n    console.error(errorMessage);\n  },\n});\n```\nAnd then inject this middleware into store.\n\n```typescript\n// middlewares.ts\nimport { createStore, compose, applyMiddleware } from 'redux';\nimport { apiMiddleware } from './apiMiddleware.ts';\nimport { rootReducers } from './reducers.ts';\n\nconst store = createStore(\n  rootReducers,\n  {},\n  compose(applyMiddleware(apiMiddleware)),\n);\n```\n----------------\nAll right. You get everything ready and let's go on.\n\n```typescript\n// profile.ts\ninterface Data {\n  id: number;\n  name: string;\n}\n\nclass ProfileModel extends Model<Data> {\n  manage = this.actionRequest({\n    action: (id: number) => {\n      return this.get({\n        uri: '/test/api',\n        query: {\n          id: page,\n        },\n      });\n    },\n    onSuccess: (state, action) => {\n      return action.response;\n    },\n  });\n\n  edit = this.actionRequest({\n    action: (id: number, name: string) => {\n      return this.put({\n        uri: `/test/api/${id}`,\n        body: {\n          name: name,\n        },\n        payload: {\n          name: name,\n        },\n        successText: 'Your profile is updated',\n      });\n    },\n    onSuccess: (state, action) => {\n      return {\n        ...state,\n        name: action.payload.name,\n      };\n    },\n  });\n\n  protected initReducer(): Data {\n    return {\n      id: 0,\n      name: '',\n    };\n  }\n}\n\nexport const profileModel = new ProfileModel();\n```\n\nWe define two Request Action in this model. And there are more property we can use.\n\n**uri**&nbsp;&nbsp;[string] `required`\n<br>\nThe relative url.\n<br><br>\n**query**&nbsp;&nbsp;[object]\n<br>\nQuery string that will merge into url.\n<br><br>\n**body**&nbsp;&nbsp;[object]\n<br>\nThe stream data，It only works for `post put patch delete`.\n<br><br>\n**payload**&nbsp;&nbsp;[object]\n<br>\nExtra params for reducer.\n<br><br>\n**hideError**&nbsp;&nbsp;[boolean | (response) => boolean]\n<br>\nDecide show or hide error message when fetch fail. The default value is false.\n<br><br>\n**successText**&nbsp;&nbsp;[string]\n<br>\nSuccess message you want to show in screen when fetch succeed.\n\n## Define Thunk Action\nI suppose you understand what is [Redux Thunk](https://github.com/reduxjs/redux-thunk), and you have put `thunk middleware` into store. And then, let's go on.\n```typescript\n// test.ts\nimport { profileModel } from './ProfileModel.ts';\n\nclass Test extends Model {\n  myFirstAction = this.actionNormal(...);\n\n  /////////////////////////////////\n  /// Usage: test.myThunk();   ///\n  ////////////////////////////////\n  myThunk = this.actionThunk((/* Action parameters here */) => {\n    return (dispatch, getState) => {\n      dispatch(this.myFirstAction.action());\n      dispatch(profileModel.manage.action());\n      ...\n    };\n  });\n}\n\nexport const test = new Test();\n```\n\n## Model effects.\nIn some case, We expect the action can effect reducer from owner model but also other model. Yep, you can override protected method `effects()` and receive effect from other model.\n```typescript\nclass BarModel extends Model {\n  reset = this.action.actionNormal(...);\n  request = this.action.actionRequest(...);\n}\n\nconst barModel = new BarModel();\n\n// --------\n\nimport { Effects, Model } from '@redux-model/*';\n\ninterface Data {\n  foo: string;\n}\n\nclass Test extends Model<Data> {\n  protected effects(): Effects<Data> {\n    return [\n      barModel.reset.onSuccess((state, action) => {\n        return {\n          foo: 'Oops, reset',\n        };\n      }),\n      barModel.request.onSuccess((state, action) => {\n        return {\n          foo: action.response.name,\n        };\n      }),\n      barModel.request.onFail((state, action) => {\n        return {\n          foo: 'reset again',\n        };\n      }),\n    ];\n  }\n\n  protected initReducer(): Data {\n    return {\n      foo: 'init',\n    };\n  }\n}\n```\nFor Normal Action, it only use `model.action.onSuccess(fn)` to change data for other model.\n\nFor Request Action, it can use `onPrepare(fn)` `onSuccess(fn)` and `onFail(fn)` to subscriber action effect.\n\n## Request Action Promise\nWe can use `promise` in React Component when Request Action is invoked. Now, enjoy 100% type checking for response data.\n\n```typescript jsx\n// By React Hooks\nimport React, { FunctionComponent } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { profileModel } from './ProfileModel.ts';\n\nconst App: FunctionComponent = (props) => {\n  const dispatch = useDispatch();\n  const name = profileModel.useData((item) => item.name);\n  const handleClick = () => {\n    dispatch(profileModel.manage.action(1))\n      .then(({ response }) => {\n        console.log('Hello, ' + response.name);\n      })\n      .catch(() => {\n        console.warn('What is wrong?');\n      })\n      .finally(() => {\n        console.log('Wow, cool bro.');\n      });\n  };\n\n  return (\n    <button onClick={this.handleClick}>\n      Click me: {name}\n    </button>\n  );\n};\n\nexport default App;\n```\n\n## Request Action Loading\nEach Request Action has loading status itself. Feel free to use it whenever you want.\n\n```typescript jsx\n// By React Hooks\nimport React, { FunctionComponent } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { profileModel } from './ProfileModel.ts';\n\nconst App: FunctionComponent = (props) => {\n  const dispatch = useDispatch();\n  const name = profileModel.useData((item) => item.name);\n  // It's boolean type.\n  const loading = profileModel.manage.useLoading();\n\n  return (\n    <button onClick={() => dispatch(profileModel.manage.action(1))}>\n      Click me: {name} {loading ? 'Waiting...' : ''}\n    </button>\n  );\n};\n\nexport default App;\n```\n\nYou can inject loading into props by `connect()` if you don't like hooks.\n\n```typescript\nconst mapStateToProps = (state) => {\n  loading: profileModel.manage.connectLoading(state),\n};\n\nexport default(mapStateToProps)(App);\n```\n\n------------------\nSometimes, you may have to show multiple loading status at the same time. In this case, we provide a property `meta` for Request Action.\n\n```typescript\nclass Profile extends Model {\n  someAction = this.actionRequest({\n    action: (id: number, data: any) => {\n      return this.post({\n        uri: '/profile/api',\n        body: data,\n        payload: {\n          idKey: id,\n        },\n      });\n    },\n    meta: 'idKey',\n  });\n}\n```\nRemember: Make sure the value of meta can be found in key of payload.\n\nLet me show usage in react component.\n```typescript\n// By React Hooks\nimport React, { FunctionComponent } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { profileModel } from './ProfileModel.ts';\n\nconst App: FunctionComponent = (props) => {\n  const dispatch = useDispatch();\n  const name = profileModel.useData((item) => item.name);\n  const userId = 1;\n  const secondUserId = 2;\n  const loading = profileModel.manage.useLoading(userId);\n  const secondLoading = profileModel.manage.useLoading(secondUserId);\n\n  return (\n    <button onClick={() => dispatch(profileModel.manage.action(userId))}>\n      Click me: {name}\n      {loading ? 'Waiting...' : ''}\n      {secondLoading ? 'Second waiting...' : ''}\n    </button>\n  );\n};\n\nexport default App;\n```\n\n\n## Generics\nRequest Action is enable to inject generic `Response` and `Payload`. Remember that you only need to inject once, and the whole project will enjoin type checking where code is related with this action.\n```typescript\nimport { Model } from '@redux-model/*';\n\ntype Data = Array<{\n  id: number;\n  name: string;\n}>;\n\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Payload {\n  id: number;\n}\n\nclass Profile extends Model<Data> {\n  getProfile = this.actionRequest({\n    action: (id: number) => {\n      // Inject here\n      return this.get<Response, Payload>({\n        uri: `/profile/api/${id}`,\n        payload: {\n          id: id,\n        },\n      });\n    },\n    onSuccess: (state, action) => {\n      return {\n        ...state,\n        [action.payload.id]: action.response,\n      };\n    },\n  });\n}\n```\n\n\n--------------------\nCool package.\n\nFeel free to use this package, and you are welcome to create issue and send me PR.\n","readmeFilename":"README.md","description":"[简体中文](https://github.com/fwh1990/redux-model-ts/blob/master/README-cn.md)","bugs":{"url":"https://github.com/fwh1990/redux-model-ts/issues"},"homepage":"https://github.com/fwh1990/redux-model-ts#readme","_id":"@redux-model/taro@4.1.2","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-xJQfg/nNfp50SPSq9fHGxEg/07tcQWb9wXsfgQxRCYApB2FoYnZZme1NrZ9MjgeOVJpCtfDronlILxzb3o3Upw==","shasum":"3f1050add44d37224bdb92c44b641f19dca39e5e","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-4.1.2.tgz","fileCount":32,"unpackedSize":58456,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdNw9jCRA9TVsSAnZWagAAPdsP/118vDbewDeze/yuuZez\nh403TnjXsYZmvYMUVpUjiFg4+IxM8Sw2l1c+KuakZET/ltuJYgswGfQUuxVL\nGQViYt3ErCoNa24o0A6Mh+EOysnG5Lxa8yqTA8SKcKjUPoSohCJ+vB7KqmM0\nvYzcH3J2qx2OEzzNcZ7q0qsKWUI+92yo42cqsXCfZ3UEp8V9Hd231VVqzFP+\n/eGcy5677LTZU+dgeB1Ycv+NokHSYxdxeSPSx8IVzmcPyWQjkvcSlJHBv5T8\nZ1RZjPC9OVXQkxf/xPiX1bFPf2zEEnCxV0ki5NCAVmQ7AXjERxDmcT1mDZ8s\nCLR/t6EstdMbJlYFIOmMOG1LFqf0akTiIGzgc2xuUfkrk5MAhCnVUFxLKHsK\ni3qN+XiOUjF6ZT+NzxTCj1b7I1nP7P5cLssKvBec3/LjDlaArr1hgruB7XF6\nlRMqLhFK9mbPSqAJUUW3g8wftWVy1k/p94CgF2C71J8FYzvaru6aqS5zFwO+\nAg45l5N0e18GsjeACSbrbZK3S4cEJ7RD3KMbrHqvXYm8QB8iz6ZtzVSc/kHr\n0dT02Vkstouu/oFs3UCf8CojQHq6SBzZhgBPvJEzD+z8pB38qpBAvY7j18x6\n6+vVolUD1pBjc07+3ibYByU4hTlti2nxRi/LsNg8+a7sE8QR+Q+yI+9gXXtw\nwB42\r\n=eK9l\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICOzBQVlWDigfr/wcdUpUqKKAUDbE2KsH4iBU8A25lt3AiBYrpbRBRwJ4JgLId83JceVQGaty9H3kDl8ce5sRKaQ5Q=="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_4.1.2_1563889506562_0.6933805365687264"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"4.1.3":{"name":"@redux-model/taro","version":"4.1.3","keywords":["redux-model","redux","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model-ts.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"qs":"^6.7.0","tslib":"^1.10.0"},"description":"[简体中文](https://github.com/fwh1990/redux-model-ts/blob/master/README-cn.md)","bugs":{"url":"https://github.com/fwh1990/redux-model-ts/issues"},"homepage":"https://github.com/fwh1990/redux-model-ts#readme","_id":"@redux-model/taro@4.1.3","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-MnWh28dn5L7Ij1LvIehDZdV3c14KyeM3MWBcDeeEVYH+D4NZH0LtPA7sRIgd5DmoUlaIKyVFCXK2ZtidOUm8wg==","shasum":"f1d6be703a9b7c83886a86a2604be2b9898852a6","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-4.1.3.tgz","fileCount":32,"unpackedSize":58618,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdNxHWCRA9TVsSAnZWagAAYQwP/j63NWE8fKcIu/koavis\nSuUMvy6BEWeN/gGra7FBmxXCmBS7wkTfhAs26TO6OVbiPAIN1jKEzel7Wu+I\nv52+E7nWLeFaBU56Ofg0U9bq4fzUbgn2ayGXhi3BVwk3jY6tVhkPWjGoJ+pH\ny7qLMpxkJhVX6evetyWhKkArh+Y21bMAtoAUpA1EWE/3XxrmmkG0U9q/IrdE\nhEQyqe7lNhffk71oJzS63nlpfqWTs9APS/PYSn2HklSSvpD/fPBCldSz6l5c\nWRWjF68sDIV6Kk4NP8t9gx+uuJbK+HA8ohxfoO0RSysHJwcC1Q60hocHIDRi\nyta7sscF6MXWally22GdwsPbciXtAoDsAkWf2hWcrCKTYMCYyoqoLaZaOPdH\n/kMXnw70LFTuj2e35np1Dy8zVlxG/lBN+n3JVXiyYzR4VZ1iX2UFFoaXf7k1\nDCENgpHHnyDkXaoLQ3mfTiKUVvwn0+Z0LK8pc3PlrOauSEZljObat+yAAlCk\nl14YI3iSSOnsPOOdpU36E2WsosDrG0/4hcjBpyxPaQF3QKcQEZ7ChEAQzZ4q\n59wzHOEjJMkD6JSzwaXz0mZmFWS7lDFbEOdN8NT0hb9ck9DaNwIfMS0p6A4B\nhMy5DA9tn1W7DIHGV/9d6pPS7kdmAkOjMuWTxu79QzUSRuTpgv2ZdgvQRBHT\nOzSj\r\n=aYmm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDdwjuj5UlCBCJ/8D13i/7wJ2/4evk6JkySo6zO9y0fawIhAOpP8cl6C6wLSVDZ9SCXS32+b+VMqwQfnzHdJlYEz+nS"}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_4.1.3_1563890133866_0.3178319074596099"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"4.1.4-rc.0":{"name":"@redux-model/taro","version":"4.1.4-rc.0","keywords":["redux-model","redux","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model-ts.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"qs":"^6.7.0","tslib":"^1.10.0"},"description":"How many people are writing redux in functional way? And how much time you had wasted since you are repeating action,types,reducer. Now, I want to tell you, I am in modern way to write redux. I'am using OOP instead of Functional Programming.","bugs":{"url":"https://github.com/fwh1990/redux-model-ts/issues"},"homepage":"https://github.com/fwh1990/redux-model-ts#readme","_id":"@redux-model/taro@4.1.4-rc.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-3hzeEdkTFBsPz8BuFd5qLJw0gIGKcELHliLwuHTxxaekhanvZViT611AXHmxbUBSt6Mnq02/wNt1J/PH2nDgFg==","shasum":"9c1d782924f6a76c7cf101ca423e6153e40763ed","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-4.1.4-rc.0.tgz","fileCount":32,"unpackedSize":58624,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdN8e8CRA9TVsSAnZWagAACVQP/2/1j4rXxoHJQB+Z1XdZ\nzQhV+k/eS68ZI/hdycmo49MvCdbeDfKOLYLV1BDXwd5pum2jSDgIGIA3DAXe\nnHIyf2hM200oWywl1rk5KfLd+4Dac6pypUcf6Oh8bCwCXPMLP8cgvuoC9C46\njeL/kw4mQKyB0WAZsnwJzQHF3ZQ5lCJZnq7IdjclnJgg6RlGiJ/Juwl8w4Us\nAkjDJlgTFvx8rF1a+e2FCsvrQZ51TFNWwUpvXcqAa1QM81Gqki3A6BScMQJQ\neo1BPHJ1kClBEgjPBLjsV29PsoXdXEGxZxSJxOBLPjUbVFkERcc1xD5wqYcE\ndC0ynSry7unDZbhQe65UZHk0h8E/3k2tdv47nkA0fZktSy6AQKQVk1tHTH5D\ns0pR0MhhuSTI32BrJIyX/1Z1Rw/NCQhvxm7vYg1AmKu5OdATFPCKNg1lfDts\nL6rfQhn+K8S/7AJyioMLOb8scG98kfAKE+nBpkRiSmOcIi9WcaSuW9X7NHxk\nWihi4TUnpjR+vcECMXJxBufE6YcUTgCJGPho4UA3ThnlxxLvFPVbbWweCIyW\n2xAYnyZKRa67Zuaue6HVWmQ22oUe/V4xQn6tS19G/MyG9KUcAFu7mjVk6551\nyLiVmMuhoK9FcTh/cksHuNxTO28t+2MvIVnmp79EwabbkKBr8Y6gq6+qUiP5\nsP5R\r\n=mXpJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHdImS3Eq6NprrXg6ZIPG6OIvw2iZXqr/MQgbZ8vXakaAiBG+h36G9SpXTWY3KvV473aoj+rA76zzhC/S+l++vmW1g=="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_4.1.4-rc.0_1563936699241_0.06853470901641456"},"_hasShrinkwrap":false},"4.1.4":{"name":"@redux-model/taro","version":"4.1.4","keywords":["redux-model","redux","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model-ts.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"qs":"^6.7.0","tslib":"^1.10.0"},"description":"How many people are writing redux in functional way? And how much time you had wasted since you are repeating action,types,reducer. Now, I want to tell you, I am in modern way to write redux. I'am using OOP instead of Functional Programming.","bugs":{"url":"https://github.com/fwh1990/redux-model-ts/issues"},"homepage":"https://github.com/fwh1990/redux-model-ts#readme","_id":"@redux-model/taro@4.1.4","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-pf4z4uLFdWlGJAGJjyePmgh7kjwehGShzlj3WPK3RpiSaBQCrwF3oQHO4EhEe/Q7+Kgcez0dG8uWK5Vw7W8jqg==","shasum":"e24a27b9152e56bb8a9710a15f4afb92330b3252","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-4.1.4.tgz","fileCount":32,"unpackedSize":58619,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdN8oiCRA9TVsSAnZWagAARRMP/RoNLpIsfk5Gs8R2znEc\nVOVywANWGP7iTvhfUen4u4s9B9WkPlgHIMygRqApKwi34M2FfcBpr13AQgpw\nvgN3xO9EyJfGqcKQrRnqhFWDq7xCBKIk5VWjYVzfBiud4WjenOtiGRMwdQ6b\nPdJ7Q1WbUpb2eTV3DFFCKzW4oJP3TT7LtdD6vZ+1qTR/vZHJ1jFcu4WK3C7p\nSGa4jdImaEf5EeWzxXg/9kNAD5kaNXReH/noqprzJGP81/s85SrERixIZYRY\nI1KijeuYQhF1qHANFJ79ldPnAF5+AD8enAwq3+PE/BRJGb+SglptMov5Vz/x\nN0kAbktnKUWO16u7U0NAY1SB6p642AkCRXuu4yzicg8lJe5N8jbLS2V8uGLm\nrEqfiYtP0X72oCU8oSegacNA3N/XwJC97SaHY0Yf5Bkc/0mHIOAHYkox3AHn\n/HLdtI2PJ+O64o8WXlpZQwIqevMx4jJN1QvOIOF0J6WTp5Spui2cW/AOjUQf\niecsV2XD2bYPe/DIfAW/2hTOhaCU3CNvkBf6Uw001q4ImmRzD9oUYB4wj9Di\nkViLHbwl6D2/PECGj6iO+FRdsHZl9XrrlnaPd5CAzn6pNFbpWkh9QZ3qjn24\nFKLB4qkMLF5fuk9ddubhUjiHHVo2IdzelgTB+4t9U45kfGIAgeWd7dOMrybQ\nsOf/\r\n=iBfC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID++djyPhRHcCMHnStw6Ed+DkF3653ptAFEVeiLcgJdnAiEA/l0CQVfsKif5c4CBDv0rG/xSGZpkDMzOY4lya8uuJ9M="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_4.1.4_1563937314010_0.5224980056142352"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"4.1.5":{"name":"@redux-model/taro","version":"4.1.5","keywords":["redux-model","redux","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model-ts.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"qs":"^6.7.0","tslib":"^1.10.0"},"description":"How many people are writing redux in functional way? And how much time you had wasted since you are repeating action,types,reducer. Now, I want to tell you, I am in modern way to write redux. I'am using OOP instead of Functional Programming.","bugs":{"url":"https://github.com/fwh1990/redux-model-ts/issues"},"homepage":"https://github.com/fwh1990/redux-model-ts#readme","_id":"@redux-model/taro@4.1.5","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-9HP3UfcBJm/NTD03Z4O93bgYNeiuJhPk3JT5dxnEDokljoYd1JNp0SiPtsSGTTkzZH3iFvB6sZezWH6U8+ywCQ==","shasum":"2a378f04bb8617327029456d3f49e8be5715197f","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-4.1.5.tgz","fileCount":32,"unpackedSize":58674,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdN8v1CRA9TVsSAnZWagAADIkP/0vT4PjSbqs6j7F4zzRb\nYqruTwWdz0Ew1I8ZiqQdl2PKINTo3zeeyXfZkRfMMBX9ggIrdsHqoLNPhi5K\nC0r0DkVr0yPnb6BPn3EFYD+ckp0WFdadzxKkQLKcYMWFEt/kJquRl+1V+qMR\ndyvG91dYfK0jKzGzh0UcljiSo24bg2Fkmf7bzwNMaRTXV9zXVDSipv/KufLx\nSi1PhdAigIINuHi1ll9eC9FW4UTOYnxnXMlyehMThZaMzbBMZmfxrt8Xc4KJ\n0Ap5CknL7j1BTQEyuWGZvyQKfM54LWZGGFfrsKCRRY3UPau7RzFw1+oE3F1b\nOxezhsrMQDBXes2trydPsYikT/pubUZZYrAIezqO+wKt+KUhVUQc6l5KIhQP\nYhbTjbvip/8SQBj1QON+Utd+SklGAcdrU40GFUXHpINx9GAmEtbYtjAkw1Lw\nGxijV/02L3SygEBIXkS9HvTUMLTyHt2nYnUTA8uy8LE8g3Ct9Sijc+V2h3vP\n4gymy/8Nin5YDKTVzXHp1neqGTk8lrFmD+IZtEay/E1MsI9lJYjxIbawd/Kd\nAW9bpZ05RLdDk9OBV+Yb1bLNC7Y+aKaQnDXiJhNVXI+GFMxvZaRaFQ1ERGb2\nVfst0UtydOuvRfamOlwhSezY6JyxPCC/nA5WmnPcOZX8TeWn+wRwWwwCJ07j\nbJ/y\r\n=4tHS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDgd2YhSKT+WzXzS6IPqHMmOHTYUM4ubZlrg2lQK6ZvqAIhAK9BVmEiDKt17ZmbB46OBo6cBmdFDv7TjhbYkPPuAPeg"}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_4.1.5_1563937780604_0.5374091410342208"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"4.2.0":{"name":"@redux-model/taro","version":"4.2.0","keywords":["redux-model","redux","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model-ts.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^3.1.3","qs":"^6.7.0","tslib":"^1.10.0"},"description":"How many people are writing redux in functional way? And how much time you had wasted since you are repeating action,types,reducer. Now, I want to tell you, I am in modern way to write redux. I'am using OOP instead of Functional Programming.","bugs":{"url":"https://github.com/fwh1990/redux-model-ts/issues"},"homepage":"https://github.com/fwh1990/redux-model-ts#readme","_id":"@redux-model/taro@4.2.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-1VB7KVNEyIftNeYlnaxW2N+WMb6f/bX7iy2dze8pJZ1jEkpIyVjax59717bWk25v4pEu6EDcc0c5QU0zHss1Ag==","shasum":"a99963e9ce7ca44d4c0329ff3a4e9fd03a6b9e62","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-4.2.0.tgz","fileCount":32,"unpackedSize":59266,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdOB0qCRA9TVsSAnZWagAAhNsP/2FcJ6JPVPrUqlNGixGX\nLNwtEOVl86bFuwnVTEpX6sgj0Zey9u09onJ5sPY/kyAJthz6IxooRLcJfNYf\nTN51Iha0UmWX8qHjhznqec+G6v+rFGEjobp2THd8QGyUfKUZpCTgnD5HK+wY\nZ4nIXaanhKwrSH3e9tVYATEo07t/714+Aa0+jxXYGegnHBYcSUSOgT3vwaSH\n7U4GiLuefJ9ZGakifZUvSihcC4p/Kss7YEE0L+5QZgdXeL0yiPF81In9P7tH\nQb8OOzj0RzVZJYBcNMY4Scc9593W8Vs+Oi4ddHn5O6ILgW2fvMM5+7K3EPI4\nBBgsM45dF0pwbuwQK0ZBVYB1lIBTwScvfEBKP9eFLwZkQv2TQXkYs6EYasH6\nuBgC/0H2hdGnXR9rgKCEoiRslOOWRhnoZ3E583K6BNAGmVAAqkPkyFclENGx\nJHex/G5dvapsZf85nH1CwnNOOM9Rqdd6P0qwbeWiixikm3C5lrnct44Cd3cY\nrLy0zGiSQC5Dwm+30WblCb1rkRnGnOAgTjR6Qwat/qj9Rzekw47ZNk9Gkoo4\nl6yr3gdZEhfUrW44fqvHBu3gUQMI7ecRdTh5pnH8BN2Zq6rVlg4R4hTxPgBz\nJD+OMquWuDH/zGS6fTDV0BaRXLBiIoyCo82yZbE66zWS/MYRuU1zY7UW3FAZ\nCEUm\r\n=XIgH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIATzdZia21YLSOmzITdqrK7pG1mffUHE/VQa1sdUKgxCAiEAwgsEOFqX+KJPJ01n+W20ojtd4T40+ETUzJ7RKTPqXjY="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_4.2.0_1563958569670_0.807696784566051"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"4.2.1":{"name":"@redux-model/taro","version":"4.2.1","keywords":["redux-model","redux","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model-ts.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^3.1.3","qs":"^6.7.0","tslib":"^1.10.0"},"description":"How many people are writing redux in functional way? And how much time you had wasted since you are repeating action,types,reducer. Now, I want to tell you, I am in modern way to write redux. I'am using OOP instead of Functional Programming.","bugs":{"url":"https://github.com/fwh1990/redux-model-ts/issues"},"homepage":"https://github.com/fwh1990/redux-model-ts#readme","_id":"@redux-model/taro@4.2.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-OYv0rMdoYpRxtZamFkJf1DRCtIBaBdz+NqCZ8MTBFKl8758CquExRosYVabU28iYsraY6R/GN9w8ZsBPKfgXfg==","shasum":"904eb25807ab2c9afb961ea94806af98d9cc7040","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-4.2.1.tgz","fileCount":32,"unpackedSize":59012,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdOD30CRA9TVsSAnZWagAAW/oP/2QfWhNH9IswIhy3QfK4\n6UzTdsjpBfxQNJOj9tB/Pdd4zyw9LdGrtHeilPzI23ydH4+a2mmNXzUoPHpY\nQjC3Y+CMkB+XcOCHcklMcAmMAPgyhYd5sw14B8hGZeoU3vpet5w7XuaqdK7U\nEx+QlR4mRNREy6J6rK0YMII0C6HGDltxw9XP57cPYncn3XSpqmkS+1vruvdG\nqC6K0xtCBPFbNtrtkSDw2MHI61UOoe2kMbIy26obmfLm1/ZgHgSP7NU1ae8m\nOYsKhefB+GGlWoqooOnSwDAo64UK9UA5+eQ8+/PFmh1DcACBQlg7X2rROhEW\n6Veyt2+yCuWYhOH66Qf+trbrDA7UIvXgQ/DolqoYTj1JUeL5jZ2fIkEAmZHA\ny5ESncDbGdc8m8iHqWMIv21ekEUl+Y5aGnE7dLm/Xrg2w606y9irWQMYvSF7\nXTMRkJ9Zdq2ioIKzEqe95HQex97TSFUJie/DNzF8AtoIBvSjaBMdCyHPFtpc\nyMHFD0bRRAMyjZeHsGqBplej2FTFWM4GzH2X6eYZUOYMs9e/zKjpATzlUUBe\n+gE3g+HZVeXJkoPPo0BZCxsLLKsa13biup1op2nYFXkhlEFTF3MDKK3SIo1U\nWQBQs0sXmU+Y9yCc90WJ2lEOg7HxwCwirX9LBGqbzkttCSsDCpbEUcQHvhXm\nQcl9\r\n=O/MF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEMCHws4JrV0PDHaU5a3uAUmvcanyAZNsopBHo+0yeXfOIYCICS8jHMnNotkqkv4wAik4HFHM8K44/1fmtsZVdouqHDF"}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_4.2.1_1563966963673_0.13520023834139328"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"4.2.3":{"name":"@redux-model/taro","version":"4.2.3","keywords":["redux-model","redux","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model-ts.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^3.1.3","qs":"^6.7.0","tslib":"^1.10.0"},"description":"How many people are writing redux in functional way? And how much time you had wasted since you are repeating action,types,reducer. Now, I want to tell you, I am in modern way to write redux. I'am using OOP instead of Functional Programming.","bugs":{"url":"https://github.com/fwh1990/redux-model-ts/issues"},"homepage":"https://github.com/fwh1990/redux-model-ts#readme","_id":"@redux-model/taro@4.2.3","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-i1QgAGPeFHE8ZlsQRsWN80A6jg14GTwdbcKPzcJMUNTB65NOviCRdPjCocFAMyKtga49qtFExonb/J3bg28VRA==","shasum":"25b0950cef68d8964b2bb5416ff7d261b7e29972","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-4.2.3.tgz","fileCount":32,"unpackedSize":58806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdOTGqCRA9TVsSAnZWagAAnlQP/A2b/60/teq3ZYsxjh0N\nw5w+JdGcgsbNT05lalh3+aW5HxH9aFbejk/t3wM5IoM1ovfaZEfoyJqUt2lN\n6hGyY2HjaxHr3ths/duf1Gu7L9xlNLs7V+DinH5hnVZbvpUxOUanVY7KYrDn\nEe6c0m14W2+s+z3lgBrE5wgAJXkHD5UwTw5H+F0pTr0nqbxL2ufHUVF4rZ9d\nVoAtkf2Z1Dh74fxk4wXPM/u+anov1VCVc53fc7MG5lVPItOoOHfz2gfvlKCX\nJ3X4M/7VYIHfPBNX3Blk+Oi/KTymEfQRUg7CJ4H82TyxM/w/9zUyobB+aFCe\nUia1zv3t8fqqEJpxX/lNIC9fGLktciYuh5cAAWphU/mhR6CMCj//QI3c2/Lh\nkMEm/bFdBhxqgd+RRMho4+JzhuzT0aGYm7wP9wfDSoQ6ZP53WdYDCQGy1aFG\nP6YXX0nL+42U6epmu/Jm+qpBEP+uyRvS5JxwDQGkQXNF4bf6L0xuWbMDS1a4\nsbiEm7ndxjQfLrBDqtOLBv4aZrFSUrcEVgBqDch627bg+ZCvf1Xrt1CxO39a\nDqW/jPDQsbbAj8uQ2QQnHqrQf2sjwR2YsdFtWZwUKf1aor0WOrudXm6yvLgR\n1SKKNWQJGWZiRS8KBAvymKbAEgRNSFSEDsMG26Fz9nkfkpXp1KK5U0t3eNuZ\nJWS6\r\n=1eIg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEoSfHxYXYE4L6Hv78XMBLzE5T3XuT23nGyh5CYzQ0X0AiEA6H4y/3nm4NQu8BY/2qKHhCci53a+Vt0KlMUdB7d76hw="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_4.2.3_1564029354065_0.04942916700487987"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"4.2.4":{"name":"@redux-model/taro","version":"4.2.4","keywords":["redux-model","redux","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model-ts.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^3.1.3","qs":"^6.7.0","tslib":"^1.10.0"},"description":"How many people are writing redux in functional way? And how much time you had wasted since you are repeating action,types,reducer. Now, I want to tell you, I am in modern way to write redux. I'am using OOP instead of Functional Programming.","bugs":{"url":"https://github.com/fwh1990/redux-model-ts/issues"},"homepage":"https://github.com/fwh1990/redux-model-ts#readme","_id":"@redux-model/taro@4.2.4","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-rmenD+CiHwNCarSUJuVeiXsLNgZQIhdShvb0qcT/P2ZUH93mzG0qbrszrQLeM2Z7/HPlUADg8Tw7oy0gHoOz2g==","shasum":"d1ada44796bd71c6cdf02a2458a41bccc613c01e","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-4.2.4.tgz","fileCount":32,"unpackedSize":58953,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdOnXYCRA9TVsSAnZWagAA5tsP/0DDK15NmPvelvI3pucD\nBMS3N9L+P8yZ67XmiGdrYKKlztJ2YTNhA+oKSfJOLkK8/GuFnUgJ6ChoaVRq\nOpGs9tpcRkye2jtfb3tS68v1uS1OwyddDrZQg98bwtf9Cf24B7+EH9VqHPI3\no7qaTxXVBdDbGf+uyMl4TyYZVpmpEnZIpOfBscXD7EHEZ+H1qke1kIkzLsna\ntv3wmKCKFl69yMmeowj45prAVjhg5DR5P9RSNYxI7brhmxs+5k0WfuzENKY4\nSFSNoUF/mwZUJg2vAfqQcXUpwlVfQ6lHaDL2ExShmFGr9zh67pU1WUtYi3Pe\nl4SWMcoYCjFGo+FHV6Nc1ckVhACgf3EaLHZ/gwQ+CgysHGygixCMgHPoc+KG\nbySJUa+95j7p5DbmlQd2FwFcQL2wu44h00PNpjXDrZOoXe6uK8cN83mp5iN7\nLAAyFXN03sSh/SzccK2skWoMpWx2cv93WpCjSjvz8HOtgwmveEz7+72NVmSx\njZQaQ40gCYhphT0qRpbdIJAlt2Uq7gEUuonC38Ln9oAlSCjQmtexmeiPzWdp\n12zn4kvN6M2NORNjj9paqjsPGzYlWDHw70vPGHxDMS2E0k3mBnq4d8Tt93a+\nDg5k3ffDBd2W4R8o30ZHDMDRQtVwFL6/yE9E1cMiT1lTuEvTtH5+O8BUJfIv\nFY6B\r\n=A+Z3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHsJpOC7R26cUS6hSANOSiUIgDB/LYS7/yJ0VYr0FivAAiEAkW7ID61m5wzKE3HyNA4SPnH35twLkRbv9DvGozvPBkA="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_4.2.4_1564112343688_0.596316534852414"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"4.3.0":{"name":"@redux-model/taro","version":"4.3.0","keywords":["redux-model","redux","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model-ts.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^3.1.3","qs":"^6.7.0","tslib":"^1.10.0"},"description":"Redux模型是对原生redux的一次面向对象封装，OOP方案可以实现隐藏重复代码、提高工作效率以及减少开发时间的效果。你只需要花半个小时，就能完全了解模型的用法，并从中受益。","bugs":{"url":"https://github.com/fwh1990/redux-model-ts/issues"},"homepage":"https://github.com/fwh1990/redux-model-ts#readme","_id":"@redux-model/taro@4.3.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-rryWkr3elApVRjLRA17LNEZvC7i4I6+482zA15nGeBn50hYOg9gW9p4z7Z2SQ+svp4oTFJvwpI09PhTw2E7vMw==","shasum":"88e372a121d571f919fd6c187018557e8fe42871","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-4.3.0.tgz","fileCount":34,"unpackedSize":59788,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdPBtvCRA9TVsSAnZWagAAa+EP/ibO8MXqyhKvh2b0bcth\n6SnnuSwbkvvROpsZtA3FijUMXyvnXS9keauE+PVTtWh65gdLBTT/jlPXMFj+\n+RS/UOV9hIWn9b8OhJE0c/22ivmgbiFi3LQaUnB+YPY4UuPoQrEmBgngc+rH\nKVYL9uI9z8/84lk3n+Clm28PrXms3fJy3M7A8KlvTflNKJcceuJDNatzbx8z\nN+oY9UaMpyUs9cGY6/vxVvQDwMQytRVrgMz1/JvoIvNyiCgLGuVwZgMpGowE\nY5B4Wp4dQlZPKfXTNx8/pmCQllzQ/Nrwj9B82jlghaPd/h0Ywo0bI3aeIrdj\ngoN6WhXMgFOeKHIWGZOap0VOJWXN8LPQLaKf6DVdJFZSbC6rCxMTbo2x+LH/\nknxkXL7EaKueaKj0xqpcBrXog8xqvMgnFomKmPtd2Rq5H6ruaEJSG80q/yUN\nxI4e834oSvf4BegvigEGI8lnT6Sm2IQHazK9tATQEDL1IuQy2/Agwi1UmXJX\n5TkOvEaDYr36o9GET+H9/o+W6A+c1SMEIj0ON1ZM6dV2kjDAZQdm5CmJsJLx\ncJZ4GQx8DdI4s7ZT/xt3HeBue7nif/FHbfKoQLrNibjCIomlpTBIIiJauPO4\n7InEegpQ5HxRf8ExEQ2k9EzAI8Y4Zwv8IRbf4Tc2VnNYQ19a7Voe9h1SLyiU\np7Xx\r\n=0cDn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC4VovW8z2qcHX++hOyMMpekJEuWVKKlkcRIZ6ZPgEDrAiEAwoU6IZKl42AvQnQQY4IYq8WyBnRly8PCETWqmXoHSys="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_4.3.0_1564220270171_0.010393122684202671"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"4.3.1":{"name":"@redux-model/taro","version":"4.3.1","keywords":["redux-model","redux","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model-ts.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^3.1.3","qs":"^6.7.0","tslib":"^1.10.0"},"description":"Redux模型是对原生redux的一次面向对象封装，OOP方案可以实现隐藏重复代码、提高工作效率以及减少开发时间的效果。你只需要花半个小时，就能完全了解模型的用法，并从中受益。","bugs":{"url":"https://github.com/fwh1990/redux-model-ts/issues"},"homepage":"https://github.com/fwh1990/redux-model-ts#readme","_id":"@redux-model/taro@4.3.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-D1wF4X3SSvUYQxp1unH16a+d4OjA8fJf7spYKbCValxyGxGRoceNWdSzbjqUPi/GGaw+N4R7Ja5xixEDZeiZlQ==","shasum":"8834ee6b8c3805e6c1132022c2b35a9989fda1c9","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-4.3.1.tgz","fileCount":34,"unpackedSize":60448,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdTSaiCRA9TVsSAnZWagAA6IAP/0WO3M1rVokTHHYtWFLO\njqKKYKrPa0j9IYPoDaKGMPgo9ve9DSVS0bsmIljt/LQ9wNTYzJse6yjcYp7J\n9FwGMASNym12xnpijzMFU+ZUDD8H8bdPmkhLhob9+tZP0Jvl8lOs5DXR4LlT\nnAw5bZuV/QDUMUKm9a5lSPr4Zt8DvuNi4/3Qxn0nBj/AuIfYsnDd6KK+ZNtM\nGzQQjP8WIjCX5ukD8WI6EAL3PQPBUbRzXmVkgxnrjnOIRWpPfiK1+eNMj7uy\n7RpEzAUx6N7bzcTiHleEDRItuZ3a+rCkR06FBPsWpICsyvMxNBBkpvEmxjLw\nuONasnRxRhFqxN1zK9NLJ9UGCDTWOLMFahnUTdHoyfTUxpoPjMpDbdKlt6W9\nMfchEWi50/CNcS+2NbFgxKjyJ2quQxCyMJbvKxRqbpgWshsh3invnXwSqstl\nvCRUysARX6yRZhBgxKw/hy48XMPn4yPWCgAV4FIXTGtp1LmcK/oEHUv7ZT2B\nLWjfUonlIE+IyqdFYzITVD1vVzWYd3kDzCrg6eVn1eF6a3LZynBIl3Kt0x1L\nuWOsI1erKoZHKPajKT7nqyDrcIzEwUpZ1J63N50p8KYsUB0oY+r+PWHEgIwC\nqytwDPgsd9ahchyYi1sR/7HjHymAfRevflSdqI3UoiJzk3p58FcuVLXbSMsl\nDGn2\r\n=wz9n\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDzH2209IQD9l28e3/7xzB037OZ/8ee8PkWO8x7LAJdYwIhAJROckFwtbAO5ku9M1CpsdS2tDyInFDsB41Ym/sryHmU"}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_4.3.1_1565337249894_0.8849637529566956"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"5.0.0":{"name":"@redux-model/taro","version":"5.0.0","keywords":["redux-model","redux","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model-ts.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^3.2.0","qs":"^6.7.0","tslib":"^1.10.0"},"description":"Redux模型是对原生redux的一次面向对象封装，OOP方案可以实现隐藏重复代码、提高工作效率以及减少开发时间的效果。你只需要花半个小时，就能完全了解模型的用法，并从中受益。","bugs":{"url":"https://github.com/fwh1990/redux-model-ts/issues"},"homepage":"https://github.com/fwh1990/redux-model-ts#readme","_id":"@redux-model/taro@5.0.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-aQt9TNN3lQ6ljItJpoKx6r2GixlH/BrXcC8EMmrQa20p4EUqK5MFxE6qUx40MedJ+JuA83rLn53xx149MnXaug==","shasum":"b6fe05fb4c24ccc1b8ad6b66e8effc1e887fa698","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-5.0.0.tgz","fileCount":44,"unpackedSize":65703,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdVhJyCRA9TVsSAnZWagAAr5UQAKJ/tVdYBCzBGInikU1R\nN2qbdje3+dyJConYM1kHWCDixDZIRQuV4wjg7t4TlfWX0XeFnATg3ELqQYoA\nEzgEavWygxaOVGlidBhUiZeKv6e4IWVAwsn+ETRSEAhG+pWeRZYoKjiP0vs7\n0yR/HGvtRIqq9MBAVgo6EezQJZBbbuEAghir1GIReIhnBaahsiTvJ3hh6QRm\nZ6w18Y+veqIZJ0k+jbt2WLkrOw+Fhznl0baq5fIbgrsX8SrNKHNKrRLQ90qA\nl9XOSBxLMmq+3KoiO2TRFK5KWjl2jvLyS1TVCoJ/nbUVH1UatuH3jr9krW49\nUmLgOVLtcMy+q7iFyTc2nNygMUKIAIGBLuSgumO7uGN2DHKRuLxc6zv1/zPX\ncwnCiVHwNIifmP1PJtJj1n+VBbKI5IfpxO+JGjxgL2Jo8I67AGkXxQnMzmPI\nQJxxAkjDvb9lrT/VBmGdfq6igoysb1e/82wub/bn7fDrWtUDiJfFGO48d8Gg\nKNiEkDeL1AxSl5G/Mv65gZ/OOkhsED1YrTr7utzQmox35bY6KYvXgGx+aYW7\n8cRekJwnFa0mEVbJGXUj4dEaS8O6wo9Ogopw7LATOpyG4W3K2zKhO9+zNFRU\n5zD5XTDoM8jeEeWZifzqOLG71sWwEZ7A/ZbK7KtMft8Zqh3UBx3tTY6Bnzmo\ns6vI\r\n=XT+4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCzoyekHyYy5dsYtPLY67jT5r7ebSqoNfvqpln4gmLocQIhAIHKIyUBT9vCuyt4jK8Uqk0jnb5Wyds2eRqV3NJeM90t"}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_5.0.0_1565921905608_0.7264185960079659"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"5.1.0":{"name":"@redux-model/taro","version":"5.1.0","keywords":["redux-model","redux","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model-ts.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^3.2.0","qs":"^6.7.0","tslib":"^1.10.0"},"description":"Redux模型是对原生redux的一次面向对象封装，OOP方案可以实现隐藏重复代码、提高工作效率以及减少开发时间的效果。你只需要花半个小时，就能完全了解模型的用法，并从中受益。","bugs":{"url":"https://github.com/fwh1990/redux-model-ts/issues"},"homepage":"https://github.com/fwh1990/redux-model-ts#readme","_id":"@redux-model/taro@5.1.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-mcOGCLZ4Wzqdpg9PeVSWhDBMmDbrEA33gW7wHDyofMNg0usM/QBoVfcHhNJTy3X8YEMoe2W24Oy/eG3PfyMYLg==","shasum":"b29a0085f21cbf9269d19459b53a3c139992137b","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-5.1.0.tgz","fileCount":44,"unpackedSize":64182,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdViLJCRA9TVsSAnZWagAAb8sP/1qe8cozavV5FMOXz4uo\n3qIHxh/7ivnCTK5OUG4Wy9Ycvfe6vk5FHSnOUi8xW8oZInf4C45Y5eR3xrio\nKl2j5PQdflpeVdWUSGRIMEwsewjcg48HeaKNS2uRv+8CvQ8S7O5v3NwjUWI8\nnZb42XkQSwbZ4hlRigLE7QB7bm/lmpoFIh35HWzB2uz52UmHP1b7f+PHmSoG\n6xGxlEktiZFxwcyilqAd1CpeBe8Ob6RL05JBT2Z9R3hkFvqIhbhz/Y64fcbW\nM28I6RAZykUxBdRadTLhHDSeokvJ2xA96+0DxZabM/Mk+mTgmTUBB5h0eCij\nr8RgbGKRFZsa+kWskC4phtxu4sCI/VXx/OrtNSUf5SQWF7K1J/z9/kWQCtfH\nak306ulh6pEzUq0n+qzv4qB4Rewgn8Qc9sgqRws/Qn50eUADoAYIGEVZb4la\ncd7qzjPluH2vAuuRprEcuQwePFPmyIPmhMbOkdwuIJgQFELzUAxLdRY3PVwQ\nE6XVv0idVfvrWeS/NdcRZyfNvnAILAZUncBybvOJo95+a4QrwJUYUR269xBU\nBqN0nzuS8xxOXYpokuqW8EwqI0ViH2S++v9JaWmfGwkOqkCSZmoDbvTqnl1r\nGAldraB2hDXCoS9+sgEqJcq2ZzP6G8hd5d+0u28A14OGKeRQdvHVX6u5vMal\n8Kr4\r\n=U0BS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDXtai7ZIcu9N1K3A340wF2GfiWXJ+LeYzDRdW+PzS6cQIhAPCDqYcaHm7W5E1R2CSUVmhaBp059btkn62WIXm7krTA"}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_5.1.0_1565926089017_0.28041645051270314"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"5.1.1":{"name":"@redux-model/taro","version":"5.1.1","keywords":["redux-model","redux","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model-ts.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^3.2.0","qs":"^6.7.0","tslib":"^1.10.0"},"description":"Redux模型是对原生redux的一次面向对象封装，OOP方案可以实现隐藏重复代码、提高工作效率以及减少开发时间的效果。你只需要花半个小时，就能完全了解模型的用法，并从中受益。","bugs":{"url":"https://github.com/fwh1990/redux-model-ts/issues"},"homepage":"https://github.com/fwh1990/redux-model-ts#readme","_id":"@redux-model/taro@5.1.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-AEeLovJSu8jUkirPihNvHJoCs4wngC0L7D9CPUSd1ukqlaGLuB/2UT4Z/SbkLDSKyMbqdZ+GAWUwPXPWp+cFPA==","shasum":"867d3ee728af96f4f838c74eeb25d1cf6f07b50c","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-5.1.1.tgz","fileCount":44,"unpackedSize":64107,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdVj+zCRA9TVsSAnZWagAATokP/32XUtGEu2pV+SFOJCsa\nFawjsQtd3KvkI+fqw+69NGe7XLdyVWxISgvld3ZdXSuifebTWc7+VqnLUoBX\nhFRZTAzlk919FyfEIVZUdanFo4jgkp7AKwoqsSVZO7AWATfspGptdw+FVk4X\n1G/rv7f2p5kH9GTZXP/YKyQD5esVIggVRT0W6OLQjh3HOU1BDLjNvkGI4S/H\nurAxdQY5/ANzW4OG7pqIjj7go5UPj0/v42EHybRLrZJnqn1xrg/6U/wc5TvM\nM8dC5tOe9eV0gv80GZ68uS6ZRB6Axm4OJYbb0Xo8yNI4rlGgykdZv75wCJvT\nJzs/eL3A91/4mwN+3st3EbRx4qEZ3l9MkPDTVBGDD3rb3AqB3MjKIE08QQ8u\nT64adMmKlm8+CoGaXB9+xJ9BjPbsMv0KcoKl4nhDOzS9Asxwr/5Te4CTcDSf\nZhnNHQcq171TC0U8nlJsPDPiv5EXUMGLU5ufjkuK/UOi+aYYLN7VavqAl3af\nLb2Bnx79oYjXnTHOeEn/5Vx7jrhRrKIN8cnrOZIGmUR4oDrByTfB3QWPTIwU\njbBrCZdJXr5A5AA9uDsz8wYkhEfvA+/n6eCXDb8HpQSOt/NSwiJw4YltkRVT\nrRVq/i/smIRj/K/dKQeFkhRHcjNbTbtyeG8FIuepBIT/4iS0U1zBRg/pExtk\naxMx\r\n=m/C9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA6kuMuk83lymYCk79qM1y8Z8thn3zXBMDpKNKg0YmlhAiEAjvmoV9ozXIX707KIzPa/yq3ZdCoCZzAZ+lttbVPOAAM="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_5.1.1_1565933491092_0.6487924841132926"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"5.2.0":{"name":"@redux-model/taro","version":"5.2.0","keywords":["redux-model","redux","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model-ts.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^3.2.0","qs":"^6.7.0","tslib":"^1.10.0"},"description":"Redux模型是对原生redux的一次面向对象封装，OOP方案可以实现隐藏重复代码、提高工作效率以及减少开发时间的效果。你只需要花半个小时，就能完全了解模型的用法，并从中受益。","bugs":{"url":"https://github.com/fwh1990/redux-model-ts/issues"},"homepage":"https://github.com/fwh1990/redux-model-ts#readme","_id":"@redux-model/taro@5.2.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-/pK4V1nMcMGvUUOrl0FAvKk8VvbiiQfz7t1rr/Ycq6KRy7G+QIgAG2HenE9OO/bbC8rboYlRSsxQfAgBh8vRcg==","shasum":"22cd6f13be3e7ad80318148ee0ad8c3cbd28832f","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-5.2.0.tgz","fileCount":44,"unpackedSize":66761,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdWNf6CRA9TVsSAnZWagAAQ/cP/jy6S5sOD+EpfgQMbVh9\nb/ibcWPkoB5wobq/7xmQLjwYSujaN2mqcutuL822opjJLBZ57tCQJvB91jAj\nclpGhYsGG0t84sSXRitQC1OmQQ+VtCsvr9ypBjCN7sLjhbSaJAVcrk0z7zJY\n8HQsVS50eKZBQ6gvWbo/gosYgt/rkZ9pHqDvGZmofmR4/YWF2NZHDxuiNSu/\nDTRFUK/7pjStRiLf40Q9QFUpeqCDCLeObAEKNzRH0/GGXwSlqh6T7PfyHSj+\ns14bcmsvTSCquzn1kOn7JXogSPCbFSP16XW4I7m30H6mcyZCRQf7VzALR81k\nbAGCXbpByd2QWaQuc8348aiYSRNTK7lEP3q/ZrRRU75UnUHTTcf2W5B9Ysk/\nauESujuYn8kaKxBMMgGF1TCWpwdnL4qRcOVb5QhBpFp+VMJ2ZnikBl9E9Wz2\ntoSqzIXFMm60T17Y21oymrxKBQm0qwMlW07jugpH0wfQyJFVVcThCNoHNHNS\njsrmNmMO6kLABiwnpmYrOvbSUpPCyEHoOrP/alpO2UXiXiHa1Qx6VS6x9se/\n3DvAXJieztNNkojUhmj5Ojh07NLPTf6gyOPSZzbuh+NbfLOH0Iz7bIZ98zhk\nL/UlXrvfmaeVw4TqYB6Ks77fkZLSOmGOTw8YwRaFLX48d0qYoZEeJ5IacjCr\nWhGc\r\n=iy1t\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDAMPdZTe13uTYkjBz2igzTK0gQ2eIXHuJs/4GrX8s4DwIhANJnnB46IzfV9cjSQuog/rKPJDNNGajSDkw/hdd1xTAe"}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_5.2.0_1566103545683_0.6383741665524985"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"5.2.2":{"name":"@redux-model/taro","version":"5.2.2","keywords":["redux-model","redux","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model-ts.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^3.2.0","qs":"^6.7.0","tslib":"^1.10.0"},"description":"Redux模型是对原生redux的一次面向对象封装，OOP方案可以实现隐藏重复代码、提高工作效率以及减少开发时间的效果。你只需要花半个小时，就能完全了解模型的用法，并从中受益。","bugs":{"url":"https://github.com/fwh1990/redux-model-ts/issues"},"homepage":"https://github.com/fwh1990/redux-model-ts#readme","_id":"@redux-model/taro@5.2.2","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-wA37ysLEEWT/ErfIyK1VYbS9CsSACCcogWQzMMPNObRwSWMtKe9Yps4tY4cJpVluTRsvSM+dEE3Qw9LSdCiGOg==","shasum":"b2eb04e8d7f8d9f202d18c8a5c9a2b6f14f7e9b2","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-5.2.2.tgz","fileCount":46,"unpackedSize":68776,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdWSVpCRA9TVsSAnZWagAAfiYQAI1pludgKBwR1uveUmzQ\nHOx+dBhBGYTtHnXbJRFjMFOarZr4YsRLyYEl+TnIIcIw+Xq84LudFTp9A6V0\nJJcwk30tBDbNDDixzfUj9uiZICfCxYaO42npaXGhJZFvyu6yTRbhTPxeL3q8\ndCZLStS/rGQU23bjBZR/89bx1Ki+/e7UYMKObWkGlPcE1EhvOmcKgrnP2F8T\n9ARhCf/hctA9I9vXERmrbxOnC0TWEP9JEjHkp+BVas5nAWWUH4XXyXoTtgAz\n1aUSfBzEPS3o4ZjInAUyOBQGm05xQMXe91SEqyxDHa84EVvrgMtPTE18izIy\nqItp0LRE9Rfw2xZZXy8QQ7WamJ7vQtGSTviu0C6HvCEHb79rGoAePrDeYLc0\nI+v78tTESBBLJCtbDH03POriIItm6GyzDYStxbVsF7u7rWNL+nvVuKoHB91J\nkBb0qT/h0oYUcWSXY3RAVlJDiBuC8T97xT2elX9LReHrrLu4XCsNhC1bIHey\nSVkV6+R489wt8lUzyqEz4fhEjgWLOsd7bC10zkMRiKN5tDdM6d9zqznTuyOx\noWPWkJEN/Pe2C/hxabsThDD3QoH071oyRKn0zDh6d40ki/GMJ+s688SvHw0s\noU7pbC7s3Da8W1SPsb2TkuuLPYwRTg0isqOXuaq3GMqsLOI3DNyVPB+5JFh+\nmgrr\r\n=Odmt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDocLTR1cSoR69He3Gq5NRYrwWfXV9+LqaQs6+7+pJ5LAiEAss+1jFO+b4RFWyYiFMV+ki046Wxzr+vjNYNssBxotdI="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_5.2.2_1566123368565_0.8568152961091651"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"5.3.0":{"name":"@redux-model/taro","version":"5.3.0","keywords":["redux-model","redux","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model-ts.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^3.2.0","qs":"^6.7.0","tslib":"^1.10.0"},"description":"Redux模型是对原生redux的一次面向对象封装，OOP方案可以实现隐藏重复代码、提高工作效率以及减少开发时间的效果。你只需要花半个小时，就能完全了解模型的用法，并从中受益。","bugs":{"url":"https://github.com/fwh1990/redux-model-ts/issues"},"homepage":"https://github.com/fwh1990/redux-model-ts#readme","_id":"@redux-model/taro@5.3.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-A4kK2vLZYjEHEt2Z4OcxJlUIXCC9VJrlSsTljEhW4IOzzuP+wGikEZu1tRDmuSujfM2IlcM8pzy1HWyiP9yAnw==","shasum":"546a172d7044a0706d19a7eae6d567f9a4dc786b","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-5.3.0.tgz","fileCount":46,"unpackedSize":69279,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdXMubCRA9TVsSAnZWagAAkeQP/3HAke69WYE5NmthC0YD\nRY/dHx3X4BIzvnb5nszTqFpAFh8LiKlKuFBbElOpGQ9LaoGUBXmHcR37JTNA\nf+ZkhMtRBff/AaHL4VMHA07Cur88rpiyCKLtp07hozSJIKWNZbkpz7u1RDy7\n9UKlsPxOT56O78g26OdmBFaivUrcrd5v+ruaySKEUtsOco23dFlHGVNzSLpj\nn2KvDfUA3cI8d30bRmgPSgzZ52oGBtW2PAxL5MbE88vHCQkx6xgYhqToqecG\nXUd6xdGd58hMELT25BDN8lyzw8oFX2skTnvJOecrwJQFuqRqRxH+a32d0TjT\nCEq4EdN1hgnBKpIN1CNzDCHUArhrsZBSs+iOXsXonfNtzgpmKKf6o+tbx3bv\nkrKOmI4xYj1oMS0T5I9k9Fi7c53qH4KMMcp8mHCX4jdjgWAwvoVp44/iigTc\nHZyhBc8/IzqFtfpQ9HGRJb/PE7PBZtQ6/t4ttp8rIYsUWER6AV46vO8YAn27\nsAeDdenwzOPQhtbY7fDiy8k+1xTM/HZ7/3SPmC0O3Neg6xxsIiIVXprEabDU\nihrgGjOZ939A9aOJw/EdEzn+TkxNl4lf1CkaoryvbsqrT+gdORaAUbXRCeto\n4cmF49PcC/6pMc3+UyCs58J9CeNesWy/lBmmCDWqZvf6sslSddwgT1G5TEfa\n9UPC\r\n=D/vW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDdQLda58chzLwjCa4VVEtZmKtfEf+loEavulMlcUJmdAiBYjEwMoo/UXEGO+uvEgUaA/WyzrLzHYOF/19+P7sggwQ=="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_5.3.0_1566362523164_0.5691805465973467"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"5.4.0":{"name":"@redux-model/taro","version":"5.4.0","keywords":["redux-model","redux","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model-ts.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^3.2.0","qs":"^6.7.0","tslib":"^1.10.0"},"description":"Redux模型是对原生redux的一次面向对象封装，OOP方案可以实现隐藏重复代码、提高工作效率以及减少开发时间的效果。你只需要花半个小时，就能完全了解模型的用法，并从中受益。","bugs":{"url":"https://github.com/fwh1990/redux-model-ts/issues"},"homepage":"https://github.com/fwh1990/redux-model-ts#readme","_id":"@redux-model/taro@5.4.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-u7njFAyLY96mwJNjNmdYJBodVzAuvAbXlY334cDaYlHVKTFrkKNcwYpki0GMZkQrKyG9gWxdzkwuq6OQJ4s8UQ==","shasum":"3cfc7239b56a3e45d34339d8f368cfbd0c4d89ee","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-5.4.0.tgz","fileCount":46,"unpackedSize":69427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdXOQOCRA9TVsSAnZWagAAQqgP/AvN1BcseymST1e9wA+d\nJJychzhxTvJ6HyFb2fKgNg9X7ii0QsNQ/Vda6Cb628PF5jwiBjw8GZCsDA/R\nX8fQzb/+qodjMVp0+d0iy3MNL2seIrSdv0Dlc9UCMlW3woh8qoZoUXi+ptUB\nz0qNcFWBTY5NKyI8vJI8ZVcwh2XLJZjY5ljI36b1Wz3JgSOnj5dr0di5V+D4\ntnqRORzrAnOKeiVxVnF3/kZNja3AWDTnS5vbLLIQBb62rfz9U0UVUmywOGoP\nEDhui1VxWzs05BtJ9sD34nVwy9HYhQhXuWTPFmBCbv8el99Pew4f880KIS9H\nq3lt5Zr0/mcWITj+UxZRipDEr2h3NOERJiXWUKUPY/tA4Ig2lLHkloTxU7fD\nk8DDbWNS0nYTB9u+fZW98+HrHjFOrD+TGuZShYu4dKCXtWO6E3bRmk91Ao7S\nVgaJJrGuYQE+SR3qYD20qz2XzubAZa+3zo1HFoYENRmCUuYaJAvUi2HUOcMV\nIpea2CHUVo+UUmeS02Poq4ZeMJdQJ5oQfB0mVdSSz+1fUInAIY4WiCAAKcjQ\nFVZioS/EkRPalOHshFW8gQjh3LPlUW5p8dfnE2wpKtTbERL0L/kL+PKDAwzd\nYsgdPdJwJhALE5Dq3xE5SWu36g70sxfBrhCMOE1QCvIlLPPme7DcEaBqwOmm\nMdDk\r\n=uAtN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGehg6gBNd8HpunC+V3IKe96y1+QTKpoRxo9iPJ9J0GZAiB1Pum3Lecrmh97UGQSX26GTain7LrX0uQmoGI0q2GKZQ=="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_5.4.0_1566368781818_0.5734569307473414"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"5.4.2":{"name":"@redux-model/taro","version":"5.4.2","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model-ts.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^3.2.0","qs":"^6.7.0","tslib":"^1.10.0"},"description":"Redux模型是对原生redux的一次面向对象封装，OOP方案可以实现隐藏重复代码、提高工作效率以及减少开发时间的效果。你只需要花半个小时，就能完全了解模型的用法，并从中受益。","bugs":{"url":"https://github.com/fwh1990/redux-model-ts/issues"},"homepage":"https://github.com/fwh1990/redux-model-ts#readme","_id":"@redux-model/taro@5.4.2","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-zeBJ7FLPlIyP3nQ052i56fBZdm+sKanCfkBML1d20DLx/Krrl7xRNiwF8vfsbzcLX2WvxwF1T8rWXcXyURtAKw==","shasum":"f48cfa81a0fdfb560c2b1448b28030ce9ecbcbb0","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-5.4.2.tgz","fileCount":46,"unpackedSize":69791,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdX4rjCRA9TVsSAnZWagAA77YQAIt5VGJOVjg5Opfmcm29\nFoNUrTxe11dyJ/NBD2Y9SvxZWPoxmE2P/CVLOMt38kTqg1I0WBBqy4wRbhqZ\nicNmxo3GCNTQfSxS1RVaKCGV72YdW+daypITIuDE44UE8WFXmcCn5tj20Tbk\nVoTPadSJCjjv/KTf8RcXAcKno9f25/QjDaniBr9Z2bu2cgjYKcZacYVz9+a9\n5pE7rgluHDUkgTFwU/1uHDqcABPKIDVS50CDRy779i25bhkHmVe7gdSMwZ5g\nUUdWV5tLCA+UG40/QXessNHfme8v5zgXPhu4pgvin2mhMr7CSc6oIuzf+DfF\nb7DxKNNdoMeRedY0YDjyvdjEHJ57bXXnIwhahh3py9uvqI/bxQkQY1ip8iqN\nloXn6B9vYjvww2gyOcSuXMW7Q9K8RK0ZFYaHg56dPAEjLEaHKmR3M6kFZEHz\nQgdsOZEhwcnf83zdrQ6kABE1CQq6ErBuIwLcCmretJfxaB4KsLZf12CyJbVS\nAN907HOD17qsYo7Ew/0e2DY31D7dibSRuWA9OrUs7EjMV2HZ//Idk/7QOqWO\nqPeOB9MZm6V04atEv1KWJY7UeybhINqWSMSuQC4l6X6W7lcyCMAnGBi6ZBcj\nce/JuPTGQP5L+sTHYDhZUSKOJKBnlQREWviRbo3kthiwpcW3LzayvkJaDNZ3\ndkKe\r\n=3vN9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCJgn1csaYcxiXB7P32jowKugNm8MGrSyXqV8fvUwdm4gIgTb4kmQ51W+xgeBJiQYl8DsvyZ9gcb2Phdyp+adjkB/M="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_5.4.2_1566542562463_0.6257499054190403"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"5.4.3":{"name":"@redux-model/taro","version":"5.4.3","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model-ts.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^3.2.0","qs":"^6.7.0","tslib":"^1.10.0"},"description":"Redux模型是对原生redux的一次面向对象封装，OOP方案可以实现隐藏重复代码、提高工作效率以及减少开发时间的效果。你只需要花半个小时，就能完全了解模型的用法，并从中受益。","bugs":{"url":"https://github.com/fwh1990/redux-model-ts/issues"},"homepage":"https://github.com/fwh1990/redux-model-ts#readme","_id":"@redux-model/taro@5.4.3","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-TvivPcoPujD8oNh86wqBBLArO8xbDgl9WI2C1viHqUr7UWv4VTLjqakAp1wsZYZ0ouKXSO7lWghY1MmYlSCVcw==","shasum":"3d20c6493aed1a658fc7c9170e25e2f457796a9e","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-5.4.3.tgz","fileCount":46,"unpackedSize":70755,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdX7A1CRA9TVsSAnZWagAAwt4P/0uVNLV2UOBy5QxAWv9k\nKagqSX67X/Z+6kLLh/+jM4eWkNxHT2hte00B4GzK6cbo4a4SNEa7RV+KbsTc\niAt46WSDjcepfZArAkpzrh+2cKo8qIepgfBLuiqSnkCrThh34I/Mzt39pFE+\nmrM8bpwJ8ZG3nDoUiRp8NzSIy/ehB2RY93Ec8lN/N6wGVxMNxIsPTsHnH1nb\n7WK6hQIxBPzo2HbWQ6pCZ3/oFzGBRBqIs1CWzAbEZexBwfD9LW3NSM1z8VAj\nZUApZ6lHf8mGXf2H/vvZoPRHcJYoWSAq6UvxS3bmND2/Vt8aPKbwboq6FLlU\n8qo1OMPUuV1iy6aB7e5YP2ABl+wDEtmequiq9Dp1MWYExUCTET5y9xGwMj/E\ndbwIMGyWFGfSv2J4YFW7QlLlKW9bgiow5PgVoEDq0MV6mjU2bNaxq88wRGD8\nNXPqLKYw7NEkuwsKkS1yQ6p5xqie3Bf1baVTwiRSZxveX1Rwmuxs/LMltWIT\nfwga/51eyCK0sKZvzkf8k6NNufIeAoKha2XdRDfhLPlOExQCGoj+hphy+vEc\nKt4cE2yqSMlRbyM415OGxnfmwBPyI++MTHcPK0qBKjfr5gQJRfc8AMag49nh\ndU6Yu2Ijw6T/Sbjp0ftj2Mefa+h+p7ZEtyand0OnRRL9oo9X5vFm1//haRS9\n+j7w\r\n=t42Z\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDDBS7m9/RqL3E6iK9+Dd/YpXpLbAijILghbXX1NUP39gIgXdZA58FDsnrl4iBWRm3lSnzEXP9DGQUBNSLO3zPM8yQ="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_5.4.3_1566552117002_0.798189921256993"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"5.4.4":{"name":"@redux-model/taro","version":"5.4.4","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model-ts.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^3.2.0","qs":"^6.7.0","tslib":"^1.10.0"},"description":"Redux模型是对原生redux的一次面向对象封装，OOP方案可以实现隐藏重复代码、提高工作效率以及减少开发时间的效果。你只需要花半个小时，就能完全了解模型的用法，并从中受益。","bugs":{"url":"https://github.com/fwh1990/redux-model-ts/issues"},"homepage":"https://github.com/fwh1990/redux-model-ts#readme","_id":"@redux-model/taro@5.4.4","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-dOyhNnqobA5qWn//Q1WmSnKHa0Mu1nhB9EOFd6dZnVJqYc2PxoSKLg2IJrVJyjJAjcL3OFJVXx9Z21MfcpnfgQ==","shasum":"82c1446cdbd17299dface6138d906146ae5e5c78","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-5.4.4.tgz","fileCount":46,"unpackedSize":71363,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdbpMkCRA9TVsSAnZWagAALm0QAJWiG2Tr/91BRsvYQe9J\notmQtNhIx6uq/dJWtyVGqj8cFpYXygoXiT1HtXBHEpoQeJxltwyAAChh4U/6\naRPGzxQA3vlLbBVom0tKukopXYkSsJEPFwI5pp4K26dUuQxzt5QSm0QhVWyf\nY/KVueO5ve6VLn45cEgUOr4zPDLBqWBWFq+s4ty5wUc8UiV9blTJErGXNX+a\n0s/U1OdL5J6yhI1Q4k4Tg0wtA3S8qJsOy5ThffxtJgkdAXJvNWAuqzEScLeX\ny9HmP6XrTengcUbB4HZ23tjxCdETb6F/U7xmZKGwFcxRpJX0uUn8dw4umE9m\nkPJkfKab+ZYi08q0riMKxIOs75bIUlFqzxO5nGnFeZ0H+MDsbhCQtAKKqBXa\nGAdO2ddxTgmXnAIYfqTY9H4of/zkawrojiz2v0xgyCBB16DDYV/oEK0wErki\nYTghsCsPdhDTmmoGpl8YcxnEcogGLF+TfOcJAdk/yvKW0Q3eCqfesdiH8RAw\nhFs7h2j1lsuPkR3E3BT5OlJ/2Ap/5z6BhtZlBNg6uU1Imd+n1zzAajtYAXnt\nXRiqOZtTKaIzF48SpOLMuhx1MT5gAB88r1jSzj7Eqtzt1J94biPFdOaDkF6X\nJMDUW5g6xxKrdG+S4sfOGErs40k/mEZmWKEu6xObzRZj3CVDqDe8UknfEpuy\nERMI\r\n=bhjx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBBcXsQJ7gOTqFYgcaSIXvw4qfPtP/ClQPnVnJyEo3uhAiEArH9BRRnyJfn5rH9Wj5EDiy5O/O0TB57ozDRp76KaZbE="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_5.4.4_1567527715582_0.6929614574144596"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"5.4.5":{"name":"@redux-model/taro","version":"5.4.5","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model-ts.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^3.2.0","qs":"^6.7.0","tslib":"^1.10.0"},"description":"Redux模型是对原生redux的一次面向对象封装，OOP方案可以实现隐藏重复代码、提高工作效率以及减少开发时间的效果。你只需要花半个小时，就能完全了解模型的用法，并从中受益。","bugs":{"url":"https://github.com/fwh1990/redux-model-ts/issues"},"homepage":"https://github.com/fwh1990/redux-model-ts#readme","_id":"@redux-model/taro@5.4.5","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-TZbdQCY6S/tb9RfFTnkI6lRsVjqZytY5PRgWpDlKvuOS3T1yqkxGmecd2WADqfBObLrTP0WStzHgJvH1V5hc5Q==","shasum":"52369cfdc20b632e7125050d80c3a141e46acefd","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-5.4.5.tgz","fileCount":46,"unpackedSize":71296,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdcOm/CRA9TVsSAnZWagAAxrcP/2+3n3+IugNZZgXpzEF9\nUySbPvO8AF1No3ecJwDIZx84YFBX6tdtR/GvMaU5pivyETdogA3eL7cct5/y\nGpo4dSkeiMehMijSH0xktxUrhVMBzDahNJezhBp1HxEtpMpTvFw3oJ9U+rr0\nkox6XhVVN0nsSYBw4or1EKjmZxt+jz3S8ewiWLsdpG1wyrl5jvy70TUfYT2R\nPdot8EoFZHAv77ur8ab1hRjCk2uRcTYSqxkcRI52bJ7aZRMmyWu1Be0DxpG6\n93yaB1UYVB6youjFOGVN08nYMyCid3MwF88cMk2qoGqPWySa34U6cVZdMgYT\n86yJ4JM1ogeQQy0TuYBsAP/YL13P/6w2ObnOxWiWI/OHg6NTSfeOUZe9ioJ6\nLnBjZ3/HDfulZ/bj1Q6C9YIZwBBUA7s07Z35I08JbZPFult1fNXms55NJ1mj\nyjgmSmGdFY2MAdvKo0bXmxm+ngDLuq/q4VRpuwrE/AKhwWlKfCNbGdnJTLzh\nfCbG/6+iewOwj/km6eAl55Z3WvIXEnWZUjWBZluN4h0iyZofnqKuGkCLx04a\n7YtkL8OF25cCyZvcMvAByaE5Rr4uG35WdgBqn13xJ3Oqr93M6GAeFGDYLUvk\ngV7gX+nznYqHWgA554djwVXTpG+7C2ITRX8Aw5j7+z8fc8WW4P4LFf44zmOb\nk1Iw\r\n=c3hf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCXIg6UbyZ8CXhR/QOY2kKUarKuuG5U8Ox/OSYpoN42VwIgb+Ym5RpJNj4Bow2rBxsocO+9uvPTWNOzWmHzNySTIMA="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_5.4.5_1567680958993_0.44278087942212796"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"5.5.0-rc.0":{"name":"@redux-model/taro","version":"5.5.0-rc.0","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^3.2.0","qs":"^6.7.0","tslib":"^1.10.0"},"readme":"### [English Document](https://github.com/fwh1990/redux-model-ts/blob/master/README-en.md) | 简体中文文档\n\nRedux模型是对原生redux的一次面向对象封装，OOP方案可以实现隐藏重复代码、提高工作效率以及减少开发时间的效果。你只需要花半个小时，就能完全了解模型的用法，并从中受益。\n\n![](https://img.shields.io/github/license/fwh1990/redux-model-ts)\n[![](https://img.shields.io/npm/dt/@redux-model/web.svg?label=@redux-model/web)](https://www.npmjs.com/package/@redux-model/web)\n[![](https://img.shields.io/npm/dt/@redux-model/react-native.svg?label=@redux-model/react-native)](https://www.npmjs.com/package/@redux-model/react-native)\n[![](https://img.shields.io/npm/dt/@redux-model/taro.svg?label=@redux-model/taro)](https://www.npmjs.com/package/@redux-model/taro)\n\n# 特性\n\n* 纯面向对象\n* 支持mvvm操作\n* 代码量比函数式redux写法少一半\n* action与reducer合体\n* 无需定义types\n* 无需包裹dispatch()\n* 完美支持typescript，拥有100%无死角的代码类型提示\n* 请求操作内置loading状态\n\n# 安装\n\n**如果你想使用react的hooks特性，请保持react的版本在`16.8.3+`以及react-redux的版本在`7.1.0+`**\n\n\n#### [H5 / Web](https://reactjs.org)\n```bash\n# 使用 npm 或者 yarn\nnpm install @redux-model/web\nnpm install redux react-redux\n```\n\n如果你想要使用Redux控制路由，类似connected-react-router或者react-router-redux，那么你现在不需要使用它们了。我推荐用更加适配的插件：[@redux-model/web-router](https://github.com/fwh1990/redux-model-web-router)。\n\n\n#### [React-Native](https://github.com/facebook/react-native)\n\n```bash\n# 使用 npm 或者 yarn\nnpm install @redux-model/react-native\nnpm install redux react-redux\n```\n\n#### [Taro](https://github.com/NervJS/taro)\n```bash\n# 使用 npm 或者 yarn\nnpm install @redux-model/taro\nnpm install redux @tarojs/redux @tarojs/redux-h5\n```\n\n\n# 运行案例（Demo）\n\n请查看项目：[redux-model-ts-demo](https://github.com/fwh1990/redux-model-ts-demo)\n\n# 代码片段\n请在vscode的扩展中搜索插件 `bluewaitor.tsreact`\n\n用上代码片段之后，你基本上不用写一行redux代码。\n# 使用\n\n## 定义Model\n想要定义reducer，就必须先定义一个模型类，因为一个模型可以包含一个或不带reducer。我们需要为reducer定义一个接口，并注入到模型中，这样我们就可以在整个项目中得到数据类型的提示。\n```typescript\n// Test.ts\nimport { Model } from '@redux-model/*';\n\ninterface Data {\n  foo: string;\n}\n\nclass Test extends Model<Data> {\n  protected initReducer(): Data {\n    return {\n      foo: 'init',\n    };\n  }\n}\n\nexport const test = new Test();\n```\n\n如果你不想使用reducer，那么你可以在`initReducer()`方法中返回`null`并移除注入的泛型Data\n\n## 注册Reducer\n我们都知道，reducer是要挂载到store中的，所以我们为实例化后的模型提供了一个`register()`方法。\n```typescript\n// reducers.ts\nimport { combineReducers } from 'redux';\nimport { createReduxStore } from '@redux-model/*';\n\nconst reducers = {\n  ...test.register(),\n};\n\nconst rootReducers = combineReducers(reducers);\n\nconst store = createReduxStore(rootReducers);\n```\n\n## 定义Action\n在模型中，我们只需要2种类型的action，而且一个模型支持写入无限个action。\n>- 普通action\n>- 异步请求action\n\n## 定义普通action\n普通的action是最基础的action，它的作用就是同步发送一次消息\n\n```typescript\n// Test.ts\nclass Test extends Model<Data> {\n  myFirstAction = this.actionNormal((state, payload: { name: string }) => {\n      state.foo = 'new name: ' + payload.name;\n  });\n}\n\nexport const test = new Test();\n```\n这里定义了一个匿名函数，它隐式地定义了一个`action`和一个`onSuccess`函数，你只需要在函数体里更改reducer的值就行了。\n\n待会我会告诉你如何用这个action去影响其他模型的reducer数据。\n\n------------\n先让我们看看普通action如何使用在React组件中。我们可以通过`connect()`方法注入action\n```typescript jsx\n// By Connect\nimport React, { FunctionComponent } from 'react';\nimport { connect } from 'react-redux';\nimport { test } from './Test';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nconst App: FunctionComponent<Props> = (props) => {\n  const { name } = props;\n\n  return (\n    <button onClick={() => test.myFirstAction({ name: 'New Name' })}>\n      Click me: {name}\n    </button>\n  );\n};\n\nconst mapStateToProps = () => {\n  return {\n    name: test.data.foo,\n  };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n一旦你点击了按钮，执行action会立马变更test模型中reducer数据\n\n----------\n如果你的React版本`>=16.8.3`，而且react-redux的版本`>=7.1.0`，那么你可以用hooks实现数据的注入，这样做可以让你的代码看起来更清晰\n```typescript jsx\n// By React Hooks\nimport React, { FunctionComponent } from 'react';\nimport { test } from './Test';\n\nconst App: FunctionComponent = () => {\n  const name = test.useData((item) => item.foo);\n\n  return (\n    <button onClick={() => test.myFirstAction({ name: 'New Name' })}>\n      Click me: {name}\n    </button>\n  );\n};\n\nexport default App;\n```\n\n## 定义异步请求Action\n我们总是需要请求后端接口以展示动态的内容，其中包含很多细节需要处理。在数据成功返回之前，我们可能需要确保界面上有loading加载条。在数据返回失败时，我们需要展示错误的弹窗信息。在数据更新成功的时候，我们需要展示成功的弹窗信息。\n\n别紧张，这一切我都替你想好了。\n\n为了确保action写起来足够简单，我们把诸多细节隐藏到`middleware`中，所以在开始使用异步请求action之前，我们需要先定义一个自己的中间件\n\n```typescript\n// apiMiddleware.ts\nimport { createRequestMiddleware, Model } from '@redux-model/*';\n\nexport const apiMiddleware = createRequestMiddleware({\n  // action和中间件的对应关系\n  id: Model.middlewareName,\n  // 请求的通用地址前缀\n  baseUrl: 'http://api.xxx.com',\n  // 请求头信息\n  getHeaders: ({ getState }) => {\n    // header一般要带token等信息做权限校验，如果token存在reducer中，那么可以直接获取：\n    // const token = tokenModel.data.access_token;\n    return {\n      Authorization: `Bearer token`,\n      Accept: 'application/json',\n     'Content-Type': 'application/json',\n   };\n  },\n  // 定位业务场景下的错误码等信息，会自动存入meta中\n  onFail: (error: HttpError<{}>, transform) => {\n    const { data } = error.response;\n\n    transform.businessCode = data ? data.code : undefined;\n    transform.errorMessage = (data && data.message) || error.message;\n  },\n  // 可以做一些弹窗操作。\n  // 只有当模型提供了successText属性才会触发。\n  onShowSuccess: (successText) => {\n    alert(successText);\n  },\n  // 可以做一些弹窗操作。\n  // 只有当请求异常或者失败时才会触发。\n  // 模型中提供了 hideError 属性时，不再触发。\n  onShowError: (errorMessage) => {\n    alert(errorMessage);\n  },\n});\n```\n接着注入到store中\n```typescript\n// middlewares.ts\nimport { createReduxStore } from '@redux-model/*';\nimport { compose, applyMiddleware } from 'redux';\nimport { apiMiddleware } from './apiMiddleware.ts';\nimport { rootReducers } from './reducers.ts';\n\nconst store = createReduxStore(\n  rootReducers,\n  {},\n  compose(applyMiddleware(apiMiddleware)),\n);\n```\n----------------\n好了，准备就绪，开始写第一个异步action\n```typescript\n// Profile.ts\ninterface Data {\n  id: number;\n  name: string;\n}\n\nclass ProfileModel extends Model<Data> {\n  manage = this.actionRequest({\n    action: (id: number) => {\n      return this.get({\n        uri: '/test/api',\n        query: {\n          id: page,\n        },\n      });\n    },\n    onSuccess: (state, action) => {\n      return action.response;\n    },\n  });\n\n  edit = this.actionRequest({\n    action: (id: number, name: string) => {\n      return this.put({\n        uri: `/test/api/${id}`,\n        body: {\n          name: name,\n        },\n        payload: {\n          name: name,\n        },\n        successText: '信息更新成功',\n      });\n    },\n    onSuccess: (state, action) => {\n      state.name = action.payload.name;\n    },\n  });\n\n  protected initReducer(): Data {\n    return {\n      id: 0,\n      name: '',\n    };\n  }\n}\n\nexport const profileModel = new ProfileModel();\n```\n\n我们有更多请求的参数还没有列出来：\n\n**uri**&nbsp;&nbsp;[string] `required`\n<br>\n请求的相对路径\n<br><br>\n**query**&nbsp;&nbsp;[object]\n<br>\n查询字符串\n<br><br>\n**body**&nbsp;&nbsp;[object]\n<br>\n请求实体，仅在`post put patch delete`中有效\n<br><br>\n**payload**&nbsp;&nbsp;[object]\n<br>\n额外数据，在改变reducer时使用\n<br><br>\n**hideError**&nbsp;&nbsp;[boolean | (response) => boolean]\n<br>\n请求出错时是否隐藏错误\n<br><br>\n**successText**&nbsp;&nbsp;[string]\n<br>\n请求成功时要展示的成功文字\n<br><br>\n**failText**&nbsp;&nbsp;[string]\n<br>\n请求失败时要展示的文字，如果没有提供，则展示接口返回的错误信息\n\n## 模型交叉\n有时候，执行某个模型下的action可能需要变更其它模型的reducer数据，这是很常见的操作方式，我们提供了一个保护方法`effects()`来做这个事情。\n```typescript\nclass Other extends Model {\n  reset = this.action.actionNormal(...);\n  request = this.action.actionRequest(...);\n}\n\nconst other = new Other();\n\n// --------\n\nimport { Effects, Model } from '@redux-model/*';\ninterface Data {\n  foo: string;\n}\n\nclass Test extends Model<Data> {\n  protected effects(): Effects<Data> {\n    return [\n      other.reset.onSuccess((state, action) => {\n        return {\n          foo: 'Oops, reset',\n        };\n      }),\n      other.request.onSuccess((state, action) => {\n        return {\n          foo: action.response.name,\n        };\n      }),\n      other.request.onFail((state, action) => {\n        return {\n          foo: 'reset again',\n        };\n      }),\n    ];\n  }\n\n  protected initReducer(): Data {\n    return {\n      foo: 'init',\n    };\n  }\n}\n```\n对于普通的action，我们使用`model.action.onSuccess(fn)`来监听数据的变化。如果是异步请求action，我们总共有`onPrepare(fn)` `onSuccess(fn)` `onFail(fn)` 3个监听事件\n\n## 异步请求Promise\n对于异步请求的action，我们可以在React组件中使用Promise方法，并获得请求的数据。注意，这里也有100%的response代码提示\n\n```typescript jsx\n// By React Hooks\nimport React, { FunctionComponent } from 'react';\nimport { profileModel } from './ProfileModel.ts';\n\nconst App: FunctionComponent = (props) => {\n  const name = profileModel.useData((item) => item.name);\n  const handleClick = () => {\n    profileModel.manage(1)\n      .then(({ response }) => {\n        console.log('Hello, ' + response.name);\n      })\n      .catch(() => {\n        console.warn('What is wrong?');\n      })\n      .finally(() => {\n        console.log('Wow, cool bro.');\n      });\n  };\n\n  return (\n    <button onClick={this.handleClick}>\n      Click me: {name}\n    </button>\n  );\n};\n\nexport default App;\n```\n\n## 异步请求Loading\n每个异步请求action都带有loading状态，只要你愿意，你可以随时使用它。\n\n```typescript jsx\n// By React Hooks\nimport React, { FunctionComponent } from 'react';\nimport { profileModel } from './ProfileModel.ts';\n\nconst App: FunctionComponent = (props) => {\n  const name = profileModel.useData((item) => item.name);\n  // 这是个布尔值\n  const loading = profileModel.manage.useLoading();\n\n  return (\n    <button onClick={() => profileModel.manage(1)}>\n      Click me: {name} {loading ? 'Waiting...' : ''}\n    </button>\n  );\n};\n\nexport default App;\n```\n\n如果你不喜欢hooks，我们可以用`connect()`方法注入到props中：\n```typescript\nconst mapStateToProps = () => {\n  loading: profileModel.manage.connectLoading(),\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n------------------\n\n有时候，请求粒度会细到某条数据上，也就是说，你想在一个屏幕上同时使用多个loading状态，这时候我们就需要精确知道loading的作用范围。这个其实很简单就实现了，我们利用meta属性：\n\n```typescript\nclass Profile extends Model {\n  someAction = this.actionRequest({\n    action: (id: number, data: any) => {\n      return this.post({\n        uri: '/profile/api',\n        body: data,\n        payload: {\n          idKey: id,\n        },\n      });\n    },\n    meta: 'idKey',\n  });\n}\n```\n必须确保meta的value在payload中能找到相应的key。否则将会产生bug。\n\n接着我们看看如何在React中使用它\n```typescript\n// By React Hooks\nimport React, { FunctionComponent } from 'react';\nimport { profileModel } from './ProfileModel.ts';\n\nconst App: FunctionComponent = (props) => {\n  const name = profileModel.useData((item) => item.name);\n  const userId = 1;\n  const secondUserId = 2;\n  const loading = profileModel.manage.useLoading(userId);\n  const secondLoading = profileModel.manage.useLoading(secondUserId);\n\n  return (\n    <button onClick={() => profileModel.manage(userId)}>\n      Click me: {name}\n      {loading ? 'Waiting...' : ''}\n      {secondLoading ? 'Second waiting...' : ''}\n    </button>\n  );\n};\n\nexport default App;\n```\n\n## 泛型\n在异步请求action中，你可以加入Response和Payload泛型。你只需要注入一次，就可以在项目的任何地方享受到关于这个action的静态检查\n```typescript\nimport { Model } from '@redux-model/*';\n\ntype Data = Array<{\n  id: number;\n  name: string;\n}>;\n\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Payload {\n  id: number;\n}\n\nclass Profile extends Model<Data> {\n  getProfile = this.actionRequest({\n    action: (id: number) => {\n      // 这里注入\n      return this.get<Response, Payload>({\n        uri: `/profile/api/${id}`,\n        payload: {\n          id: id,\n        },\n      });\n    },\n    onSuccess: (state, action) => {\n      state[action.payload.id] = action.response;\n    },\n  });\n}\n```\n\n---------------------\n欢迎您自由使用并随时创建issue和PR。\n","readmeFilename":"README.md","description":"Redux模型是对原生redux的一次面向对象封装，OOP方案可以实现隐藏重复代码、提高工作效率以及减少开发时间的效果。你只需要花半个小时，就能完全了解模型的用法，并从中受益。","bugs":{"url":"https://github.com/fwh1990/redux-model/issues"},"homepage":"https://github.com/fwh1990/redux-model#readme","_id":"@redux-model/taro@5.5.0-rc.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-I8wcJ5DxxDKoR2b9w1XDLvivcZHRd+DAhzia8j/mS8rNT85mHIH3SXrpifynspD9Vr810bQxXn0H1ZK6eDbpAw==","shasum":"6e1453ff0ade46ffee33a947f30da190c2d07a1b","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-5.5.0-rc.0.tgz","fileCount":46,"unpackedSize":71349,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdfE0HCRA9TVsSAnZWagAANroQAInJKYzkxm4Y7xxc69VM\ntkJ/EgS/6E4ePiOXYBUTsJjR9xSBkeYJFpHtVvC3ytIE/kyrNXXm+Y/E/tmV\n2/uNs3MjDXlrj75SAXjkpXP99wHcByiNN7x6UnR5iQ+hZHogwjJdtdLO8Wqk\n63Eb5qgwUHmJ0Rxr8XdDvqHKfXdF+j0hyaIDaFbjLUgRIzyMfKkEBbrLPDGw\nTq87Tt6OflwuMDKPut/a4PAzt0CaAHKe+SDDdn4JFsLDe72icORaaAsT+mv+\nPcaWCcqTdDEYJOSPynDJ/OzkRLKUEnmeW9BgoXeMtHi1yI1rKHRYjXyZUkTt\nJdc+eSUu4X7z3iv6o0+5fOc2sfssMTGvQFU+3SDnq+uc/ujkimJWRmUxsS9K\nd/kYfpdrNG2mTpVTu+mPAOLFRNdPaOb6CaAW6v07w/RKjumUFuXze0B4ZhEx\nxQ7Ibg+Ih92l8C1R+kXqHLI5NGSb5ZcjvwRHNJZr0wnLh2o23V6hMznv6PUE\nvwOUzQHZrV6HylISF5RG4Arm6J/37cu6rlK7bsUEaCRD3NHkAs/eWAq7pHZt\ntl2lxT7fMV2qx6YUqr5N/FmtcITI4Q63pcjnoBC7Firs9+PhnFJBqNDtSXSs\nOqQtHfCvTLpIXjtL8/NAgKoQ1PwDNBbSyGvHiZTJDS1jYgoF0xYAaE7VBuP9\n/zLE\r\n=aA8w\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCHGO8CFD6qdsBro7m3I7j0i1n2E7IqVf+Uwbo2BLRlQgIgF65Vix4hiwZbXYxrRWZVObvYOYDj+jZSLYsa0HbR5Xg="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_5.5.0-rc.0_1568427270574_0.06869025237556392"},"_hasShrinkwrap":false},"5.5.0-rc.1":{"name":"@redux-model/taro","version":"5.5.0-rc.1","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^3.2.0","qs":"^6.7.0","tslib":"^1.10.0"},"readme":"### [English Document](https://github.com/fwh1990/redux-model-ts/blob/master/README-en.md) | 简体中文文档\n\nRedux模型是对原生redux的一次面向对象封装，OOP方案可以实现隐藏重复代码、提高工作效率以及减少开发时间的效果。你只需要花半个小时，就能完全了解模型的用法，并从中受益。\n\n![](https://img.shields.io/github/license/fwh1990/redux-model-ts)\n[![](https://img.shields.io/npm/dt/@redux-model/web.svg?label=@redux-model/web)](https://www.npmjs.com/package/@redux-model/web)\n[![](https://img.shields.io/npm/dt/@redux-model/react-native.svg?label=@redux-model/react-native)](https://www.npmjs.com/package/@redux-model/react-native)\n[![](https://img.shields.io/npm/dt/@redux-model/taro.svg?label=@redux-model/taro)](https://www.npmjs.com/package/@redux-model/taro)\n\n# 特性\n\n* 纯面向对象\n* 支持mvvm操作\n* 代码量比函数式redux写法少一半\n* action与reducer合体\n* 无需定义types\n* 无需包裹dispatch()\n* 完美支持typescript，拥有100%无死角的代码类型提示\n* 请求操作内置loading状态\n\n# 安装\n\n**如果你想使用react的hooks特性，请保持react的版本在`16.8.3+`以及react-redux的版本在`7.1.0+`**\n\n\n#### [H5 / Web](https://reactjs.org)\n```bash\n# 使用 npm 或者 yarn\nnpm install @redux-model/web\nnpm install redux react-redux\n```\n\n如果你想要使用Redux控制路由，类似connected-react-router或者react-router-redux，那么你现在不需要使用它们了。我推荐用更加适配的插件：[@redux-model/web-router](https://github.com/fwh1990/redux-model-web-router)。\n\n\n#### [React-Native](https://github.com/facebook/react-native)\n\n```bash\n# 使用 npm 或者 yarn\nnpm install @redux-model/react-native\nnpm install redux react-redux\n```\n\n#### [Taro](https://github.com/NervJS/taro)\n```bash\n# 使用 npm 或者 yarn\nnpm install @redux-model/taro\nnpm install redux @tarojs/redux @tarojs/redux-h5\n```\n\n\n# 运行案例（Demo）\n\n请查看项目：[redux-model-ts-demo](https://github.com/fwh1990/redux-model-ts-demo)\n\n# 代码片段\n请在vscode的扩展中搜索插件 `bluewaitor.tsreact`\n\n用上代码片段之后，你基本上不用写一行redux代码。\n# 使用\n\n## 定义Model\n想要定义reducer，就必须先定义一个模型类，因为一个模型可以包含一个或不带reducer。我们需要为reducer定义一个接口，并注入到模型中，这样我们就可以在整个项目中得到数据类型的提示。\n```typescript\n// Test.ts\nimport { Model } from '@redux-model/*';\n\ninterface Data {\n  foo: string;\n}\n\nclass Test extends Model<Data> {\n  protected initReducer(): Data {\n    return {\n      foo: 'init',\n    };\n  }\n}\n\nexport const test = new Test();\n```\n\n如果你不想使用reducer，那么你可以在`initReducer()`方法中返回`null`并移除注入的泛型Data\n\n## 注册Reducer\n我们都知道，reducer是要挂载到store中的，所以我们为实例化后的模型提供了一个`register()`方法。\n```typescript\n// reducers.ts\nimport { combineReducers } from 'redux';\nimport { createReduxStore } from '@redux-model/*';\n\nconst reducers = {\n  ...test.register(),\n};\n\nconst rootReducers = combineReducers(reducers);\n\nconst store = createReduxStore(rootReducers);\n```\n\n## 定义Action\n在模型中，我们只需要2种类型的action，而且一个模型支持写入无限个action。\n>- 普通action\n>- 异步请求action\n\n## 定义普通action\n普通的action是最基础的action，它的作用就是同步发送一次消息\n\n```typescript\n// Test.ts\nclass Test extends Model<Data> {\n  myFirstAction = this.actionNormal((state, payload: { name: string }) => {\n      state.foo = 'new name: ' + payload.name;\n  });\n}\n\nexport const test = new Test();\n```\n这里定义了一个匿名函数，它隐式地定义了一个`action`和一个`onSuccess`函数，你只需要在函数体里更改reducer的值就行了。\n\n待会我会告诉你如何用这个action去影响其他模型的reducer数据。\n\n------------\n先让我们看看普通action如何使用在React组件中。我们可以通过`connect()`方法注入action\n```typescript jsx\n// By Connect\nimport React, { FunctionComponent } from 'react';\nimport { connect } from 'react-redux';\nimport { test } from './Test';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nconst App: FunctionComponent<Props> = (props) => {\n  const { name } = props;\n\n  return (\n    <button onClick={() => test.myFirstAction({ name: 'New Name' })}>\n      Click me: {name}\n    </button>\n  );\n};\n\nconst mapStateToProps = () => {\n  return {\n    name: test.data.foo,\n  };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n一旦你点击了按钮，执行action会立马变更test模型中reducer数据\n\n----------\n如果你的React版本`>=16.8.3`，而且react-redux的版本`>=7.1.0`，那么你可以用hooks实现数据的注入，这样做可以让你的代码看起来更清晰\n```typescript jsx\n// By React Hooks\nimport React, { FunctionComponent } from 'react';\nimport { test } from './Test';\n\nconst App: FunctionComponent = () => {\n  const name = test.useData((item) => item.foo);\n\n  return (\n    <button onClick={() => test.myFirstAction({ name: 'New Name' })}>\n      Click me: {name}\n    </button>\n  );\n};\n\nexport default App;\n```\n\n## 定义异步请求Action\n我们总是需要请求后端接口以展示动态的内容，其中包含很多细节需要处理。在数据成功返回之前，我们可能需要确保界面上有loading加载条。在数据返回失败时，我们需要展示错误的弹窗信息。在数据更新成功的时候，我们需要展示成功的弹窗信息。\n\n别紧张，这一切我都替你想好了。\n\n为了确保action写起来足够简单，我们把诸多细节隐藏到`middleware`中，所以在开始使用异步请求action之前，我们需要先定义一个自己的中间件\n\n```typescript\n// apiMiddleware.ts\nimport { createRequestMiddleware, Model } from '@redux-model/*';\n\nexport const apiMiddleware = createRequestMiddleware({\n  // action和中间件的对应关系\n  id: Model.middlewareName,\n  // 请求的通用地址前缀\n  baseUrl: 'http://api.xxx.com',\n  // 请求头信息\n  getHeaders: ({ getState }) => {\n    // header一般要带token等信息做权限校验，如果token存在reducer中，那么可以直接获取：\n    // const token = tokenModel.data.access_token;\n    return {\n      Authorization: `Bearer token`,\n      Accept: 'application/json',\n     'Content-Type': 'application/json',\n   };\n  },\n  // 定位业务场景下的错误码等信息，会自动存入meta中\n  onRespondError: (error: HttpError<{}>, transform) => {\n    const { data } = error.response;\n\n    transform.businessCode = data ? data.code : undefined;\n    transform.errorMessage = (data && data.message) || error.message;\n  },\n  // 可以做一些弹窗操作。\n  // 只有当模型提供了successText属性才会触发。\n  onShowSuccess: (successText) => {\n    alert(successText);\n  },\n  // 可以做一些弹窗操作。\n  // 只有当请求异常或者失败时才会触发。\n  // 模型中提供了 hideError 属性时，不再触发。\n  onShowError: (errorMessage) => {\n    alert(errorMessage);\n  },\n});\n```\n接着注入到store中\n```typescript\n// middlewares.ts\nimport { createReduxStore } from '@redux-model/*';\nimport { compose, applyMiddleware } from 'redux';\nimport { apiMiddleware } from './apiMiddleware.ts';\nimport { rootReducers } from './reducers.ts';\n\nconst store = createReduxStore(\n  rootReducers,\n  {},\n  compose(applyMiddleware(apiMiddleware)),\n);\n```\n----------------\n好了，准备就绪，开始写第一个异步action\n```typescript\n// Profile.ts\ninterface Data {\n  id: number;\n  name: string;\n}\n\nclass ProfileModel extends Model<Data> {\n  manage = this.actionRequest({\n    action: (id: number) => {\n      return this.get({\n        uri: '/test/api',\n        query: {\n          id: page,\n        },\n      });\n    },\n    onSuccess: (state, action) => {\n      return action.response;\n    },\n  });\n\n  edit = this.actionRequest({\n    action: (id: number, name: string) => {\n      return this.put({\n        uri: `/test/api/${id}`,\n        body: {\n          name: name,\n        },\n        payload: {\n          name: name,\n        },\n        successText: '信息更新成功',\n      });\n    },\n    onSuccess: (state, action) => {\n      state.name = action.payload.name;\n    },\n  });\n\n  protected initReducer(): Data {\n    return {\n      id: 0,\n      name: '',\n    };\n  }\n}\n\nexport const profileModel = new ProfileModel();\n```\n\n我们有更多请求的参数还没有列出来：\n\n**uri**&nbsp;&nbsp;[string] `required`\n<br>\n请求的相对路径\n<br><br>\n**query**&nbsp;&nbsp;[object]\n<br>\n查询字符串\n<br><br>\n**body**&nbsp;&nbsp;[object]\n<br>\n请求实体，仅在`post put patch delete`中有效\n<br><br>\n**payload**&nbsp;&nbsp;[object]\n<br>\n额外数据，在改变reducer时使用\n<br><br>\n**hideError**&nbsp;&nbsp;[boolean | (response) => boolean]\n<br>\n请求出错时是否隐藏错误\n<br><br>\n**successText**&nbsp;&nbsp;[string]\n<br>\n请求成功时要展示的成功文字\n<br><br>\n**failText**&nbsp;&nbsp;[string]\n<br>\n请求失败时要展示的文字，如果没有提供，则展示接口返回的错误信息\n\n## 模型交叉\n有时候，执行某个模型下的action可能需要变更其它模型的reducer数据，这是很常见的操作方式，我们提供了一个保护方法`effects()`来做这个事情。\n```typescript\nclass Other extends Model {\n  reset = this.action.actionNormal(...);\n  request = this.action.actionRequest(...);\n}\n\nconst other = new Other();\n\n// --------\n\nimport { Effects, Model } from '@redux-model/*';\ninterface Data {\n  foo: string;\n}\n\nclass Test extends Model<Data> {\n  protected effects(): Effects<Data> {\n    return [\n      other.reset.onSuccess((state, action) => {\n        return {\n          foo: 'Oops, reset',\n        };\n      }),\n      other.request.onSuccess((state, action) => {\n        return {\n          foo: action.response.name,\n        };\n      }),\n      other.request.onFail((state, action) => {\n        return {\n          foo: 'reset again',\n        };\n      }),\n    ];\n  }\n\n  protected initReducer(): Data {\n    return {\n      foo: 'init',\n    };\n  }\n}\n```\n对于普通的action，我们使用`model.action.onSuccess(fn)`来监听数据的变化。如果是异步请求action，我们总共有`onPrepare(fn)` `onSuccess(fn)` `onFail(fn)` 3个监听事件\n\n## 异步请求Promise\n对于异步请求的action，我们可以在React组件中使用Promise方法，并获得请求的数据。注意，这里也有100%的response代码提示\n\n```typescript jsx\n// By React Hooks\nimport React, { FunctionComponent } from 'react';\nimport { profileModel } from './ProfileModel.ts';\n\nconst App: FunctionComponent = (props) => {\n  const name = profileModel.useData((item) => item.name);\n  const handleClick = () => {\n    profileModel.manage(1)\n      .then(({ response }) => {\n        console.log('Hello, ' + response.name);\n      })\n      .catch(() => {\n        console.warn('What is wrong?');\n      })\n      .finally(() => {\n        console.log('Wow, cool bro.');\n      });\n  };\n\n  return (\n    <button onClick={this.handleClick}>\n      Click me: {name}\n    </button>\n  );\n};\n\nexport default App;\n```\n\n## 异步请求Loading\n每个异步请求action都带有loading状态，只要你愿意，你可以随时使用它。\n\n```typescript jsx\n// By React Hooks\nimport React, { FunctionComponent } from 'react';\nimport { profileModel } from './ProfileModel.ts';\n\nconst App: FunctionComponent = (props) => {\n  const name = profileModel.useData((item) => item.name);\n  // 这是个布尔值\n  const loading = profileModel.manage.useLoading();\n\n  return (\n    <button onClick={() => profileModel.manage(1)}>\n      Click me: {name} {loading ? 'Waiting...' : ''}\n    </button>\n  );\n};\n\nexport default App;\n```\n\n如果你不喜欢hooks，我们可以用`connect()`方法注入到props中：\n```typescript\nconst mapStateToProps = () => {\n  loading: profileModel.manage.connectLoading(),\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n------------------\n\n有时候，请求粒度会细到某条数据上，也就是说，你想在一个屏幕上同时使用多个loading状态，这时候我们就需要精确知道loading的作用范围。这个其实很简单就实现了，我们利用meta属性：\n\n```typescript\nclass Profile extends Model {\n  someAction = this.actionRequest({\n    action: (id: number, data: any) => {\n      return this.post({\n        uri: '/profile/api',\n        body: data,\n        payload: {\n          idKey: id,\n        },\n      });\n    },\n    meta: 'idKey',\n  });\n}\n```\n必须确保meta的value在payload中能找到相应的key。否则将会产生bug。\n\n接着我们看看如何在React中使用它\n```typescript\n// By React Hooks\nimport React, { FunctionComponent } from 'react';\nimport { profileModel } from './ProfileModel.ts';\n\nconst App: FunctionComponent = (props) => {\n  const name = profileModel.useData((item) => item.name);\n  const userId = 1;\n  const secondUserId = 2;\n  const loading = profileModel.manage.useLoading(userId);\n  const secondLoading = profileModel.manage.useLoading(secondUserId);\n\n  return (\n    <button onClick={() => profileModel.manage(userId)}>\n      Click me: {name}\n      {loading ? 'Waiting...' : ''}\n      {secondLoading ? 'Second waiting...' : ''}\n    </button>\n  );\n};\n\nexport default App;\n```\n\n## 泛型\n在异步请求action中，你可以加入Response和Payload泛型。你只需要注入一次，就可以在项目的任何地方享受到关于这个action的静态检查\n```typescript\nimport { Model } from '@redux-model/*';\n\ntype Data = Array<{\n  id: number;\n  name: string;\n}>;\n\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Payload {\n  id: number;\n}\n\nclass Profile extends Model<Data> {\n  getProfile = this.actionRequest({\n    action: (id: number) => {\n      // 这里注入\n      return this.get<Response, Payload>({\n        uri: `/profile/api/${id}`,\n        payload: {\n          id: id,\n        },\n      });\n    },\n    onSuccess: (state, action) => {\n      state[action.payload.id] = action.response;\n    },\n  });\n}\n```\n\n---------------------\n欢迎您自由使用并随时创建issue和PR。\n","readmeFilename":"README.md","description":"Redux模型是对原生redux的一次面向对象封装，OOP方案可以实现隐藏重复代码、提高工作效率以及减少开发时间的效果。你只需要花半个小时，就能完全了解模型的用法，并从中受益。","bugs":{"url":"https://github.com/fwh1990/redux-model/issues"},"homepage":"https://github.com/fwh1990/redux-model#readme","_id":"@redux-model/taro@5.5.0-rc.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-KNdSBR3OIE02Upo0VS7tbQX24DfSpVPJo91KY1xJiY830B3KhExL7U9SqkNxWZSpZSFwkMCunHQ+ihV3KelJ+w==","shasum":"427ec10042cf885062bd6455d3db0c7caaa066e8","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-5.5.0-rc.1.tgz","fileCount":46,"unpackedSize":71951,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdfG1tCRA9TVsSAnZWagAAJmEQAIR1ax/2BcPYV/DCXbwu\nyTG/y1hYjsv31hZmURvtEbJbhFhdY1elUui4119QJMlf8NNwDRsMByTKGZ1Q\nELwFT/J+06Vi5bQI0PDBsaYuDhDhn8ennsNfP56/JnPtoVvTu1C54aRVZO98\nwEr04BQn/D39HZujHs1MaH9mys9l5J1qWPyn0jlA5ZYOnTrVsez10VD60rc0\natgI9zuVqHwI3JeE28t4xFdHMHAw1pqb2EJdCCMOYZRMr5xUgkYc325xjXQ7\nTNf3LNzDFfHbgtGTmpLAexgMlvLl1cxWxGDjfosnk21EffwOI65jMfRcETks\ncc7rpL7LNAWfavWe2Fm5FARDx7AQpWbKMOXdEWx8eIZQ4TGNdIM8dZ4RJW3h\ncXUA7rzDLMDLiWeh1e8EVmv6CO+WYKX8JHUoBxof0Wdzks+f17jw1f7XydXS\nCS9PEPhiKaNxEQiJNhDcsOgB4FIDBe+iGOE3CEXqDPkWq5dG2b4Bdq8ubdqy\n1APQwNTXSF5ltqitnf7xJQzl+7ewrXWw3yh3bsS3u7L83C7OHh1SOMD+RkH+\nn5fPI8NfL1SbAencYDSM5ORT/PBhlyUnHB6r2eqA5zO7DJ9gJJNwGqm0OxaB\n1JN2tux3p2QP81bcHGLFWdTJV/2h0TTAO6bRNIDM9SEGWE8P2FaUWK8usU4u\nLoDz\r\n=VoxF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBSWqHBG7KLnYSdClX7vnmWqIZtw3tYIm0g0AN5vI02sAiA1TeO6AbsINoncW0s0TuJdTVl2O0P2KjZG4vLM05PQNg=="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_5.5.0-rc.1_1568435564636_0.9779403145368208"},"_hasShrinkwrap":false},"5.5.1":{"name":"@redux-model/taro","version":"5.5.1","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^4.0.0","qs":"^6.8.0","tslib":"^1.10.0"},"description":"Redux模型是对原生redux的一次面向对象封装，OOP方案可以实现隐藏重复代码、提高工作效率以及减少开发时间的效果。你只需要花半个小时，就能完全了解模型的用法，并从中受益。","bugs":{"url":"https://github.com/fwh1990/redux-model/issues"},"homepage":"https://github.com/fwh1990/redux-model#readme","_id":"@redux-model/taro@5.5.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-kPuBIcAGK24S0wIE6O4bac56wMjbHD8hnXCBBXgFS92yNr6Z7eN6X7XTv7ae5yrz2OzuzpL5oMTsMhw1AO+Z7Q==","shasum":"ef2def409994eb26a8e96e146e67e6583acb1c79","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-5.5.1.tgz","fileCount":46,"unpackedSize":72330,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdgy74CRA9TVsSAnZWagAAH8wP/0RCV4rHtMhVfdqvM6zh\nZrGrTBpJVS2mRTd26HdiSK2zVHobQ+GZnxC3Qcoh4CTr02YiggE0g8CdD4An\nChKY7dNouSbkGbD4dMtnwQi4lte9J0ayosYj40yYtSbU9OqiiO9jIgzi26+3\nlx8ChupYyyTRzwBSKkwUNCmNH52gJs75txBba/G18kFR52E89pOIPySJyyBz\nTslbzLQJlREqEnGVJCRgqJ2ht2oflriiSIyaIa9cS/lGuGBZBGB0plmBwWxh\n1WR57szHu4gSeb/NhI5mXKvXJ5bWE6eN8hSCWT18oAVK2RJmi3S/hWpJ0jTq\n7yZV6POm3I2pNcQNh300uJkoWw/Ry/mimapHrP/XDzqdmPjHq6ouPYHoxX7F\nPQmYf4DFAXqlwVr/yS07zTZW8FJiExLw5g96A0ZNb27ACI4//tv8oyoamOQX\nUY4ECg5HHneFadrugS0HvWDnQGn/9pIAUdwArSpeb4ycPDoYa3vnmtPhuHDO\nyslJ/JTswnWDLALsDVV92NMF28pfsYg6LF73azZ51+C5WQ+QtAGbpOWgEAAR\ngzJ+hqShh8UUc1xfXCNgucq3Frjxs4exXZ5Uz0Ff+qLaPwwotNAtzs5B9nIC\ntMqYYUB7glTW+fQscAHvY02St0F6HFl2E0rGo5Mra8fPZh9mm19oNQ8LoAA/\nsBxO\r\n=tACe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCVzzZRvTwNuzK21QKe0aQNqrzr9oxao9h85dZW86IR2QIhAPu7fdOz3btwhXTnNBONmREOOesPH3vPGASoPiPDhzA9"}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_5.5.1_1568878327735_0.19449391560006735"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"5.6.0":{"name":"@redux-model/taro","version":"5.6.0","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^4.0.0","qs":"^6.8.0","tslib":"^1.10.0"},"description":"Redux模型是对原生redux的一次面向对象封装，OOP方案可以实现隐藏重复代码、提高工作效率以及减少开发时间的效果。你只需要花半个小时，就能完全了解模型的用法，并从中受益。","bugs":{"url":"https://github.com/fwh1990/redux-model/issues"},"homepage":"https://github.com/fwh1990/redux-model#readme","_id":"@redux-model/taro@5.6.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-uFMW3MK7+awRQPlZ/UjjVxjZyoPwYX3mj4QeF2216exGs8q4KKbmTX2cUEtICp9i1R9UMdYWUHcfQa4/dJcw4Q==","shasum":"f1f26138581cf7054c2d8bdb600fe993e9aa55f6","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-5.6.0.tgz","fileCount":48,"unpackedSize":73287,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdiJhTCRA9TVsSAnZWagAA+1YP/0Cpgna/C3+uB7Pyfv2G\noZ9B2L6AGkWvD8wXKwZOEb89qfy7DAjCNMhwGPRVqi3D+3LeQXI5IJkU34Gv\nE0/eL0liS3WTzc6aeBtidAQ0qcNb8h1dzRtkGcDADcc5YoZnMLywVixWM47d\nXl4cPNYQxIHP3SDQsTj6Xr+4Xynk+Lu0yCx9VGUp5PpAeunEMoqAItqjo10h\nmhLblsczxzopk8ttYgwCO/N2/sJUmrZAoYENBeBYHBgCc8Sx238Nvs6fSzvj\njPSBFBs+1ti/W15dM8XdPu8FzcykOYAWHnCANp/MlKcZS6cOJh+Q5fO64y5l\n85HlTa1sIStOt3wNsacm/q+kqebxBgorY6VbpZsRREOFsJq8SJInTaO8xbGK\nrL0v7H3PWTq7Tyi/9AF0SfgUkoN0nPgZ0i0Cv4vl4kyeq1dFUCBE6loOZcuS\nZLtQZXNgticLqUqXot767LppPsAPhrraCDmzaDM0azfty/qPJxgoZRA+dxrb\n/GUPQloubX1y0lCIiFqFmkDmSFBQkpc5ToB04M60cZWFjCRBuRvzFrKXmYiT\nskztWsZZQEHhHDnDIfzC6umeYoAoZ6ez1dh8c9U3MW5RYq8MtN6neEQJZ4Z8\narGaOK/gNNF/Sp32hsy9t4UX9wD1prBWF/z8Y/S/fMJk85gjaY+v4exKlruL\nDt5T\r\n=ZLwv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDbxk9IzLd3P9oKWkPBfPiLtxq9vEx72L7jvCogIuvZgAIhAM+38tDtVJuIWXzkPKkZk5SaAOrxDVqS403BPxVfqt2v"}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_5.6.0_1569232978446_0.060129785320986784"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"5.7.0":{"name":"@redux-model/taro","version":"5.7.0","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^4.0.0","qs":"^6.9.0","tslib":"^1.10.0"},"description":"Redux模型是对原生redux的一次面向对象封装，OOP方案可以实现隐藏重复代码、提高工作效率以及减少开发时间的效果。你只需要花半个小时，就能完全了解模型的用法，并从中受益。","bugs":{"url":"https://github.com/fwh1990/redux-model/issues"},"homepage":"https://github.com/fwh1990/redux-model#readme","_id":"@redux-model/taro@5.7.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-c/dWga1DojMTJZHACJgeAtXJG2Kjowt/bXlpTpZSuetxan4InAH8Nm2tJwzi/Gti4KfnrkHjJ492IefbqYrD9A==","shasum":"e2d6e0bbda6e0d7fd8af302b284787140e692597","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-5.7.0.tgz","fileCount":48,"unpackedSize":77196,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnE3QCRA9TVsSAnZWagAAfCUP/iCqU0vPiWY3oGkojRUm\n13+TGBR0q4gjwx5yUzQpL9qVR/MaX+HtuBz672M4gmZSyItq402wHYV+tVQY\nD8auNdWc60Lw5fZwAhVBMI8EMw7Q9mnBJCMAqmBhRsALeJIfLdjXrToB8LIG\nH+Uoo9MrUKSLW9O0l1Ublw5VNxieBpYe94MitM+tX0jYyFp7/ghGQKblp1pC\nsBsNBTb7wrn4fHh8O5/XRIN0G1Z8z8J2/VK/GNv8N2KcxTDftO2i5Q6Qb9H7\n/RcpVGK2srceXZ/GhZyxTYWkVh77iXBfZzexMHrjWZ6fDBuEMfnngMjt+h/M\njasviwT6WAwWcf3ZbgXJsCGp+893QN+NMd/ra54bcB/vASTNkNp/Vi5wexWO\nJC1RgI7NHeFNTDEUIbwMHOdalhE2HHepr8hfk0iIUD4e2inbK1dSZhfLq2Bq\nRPbYNjy1Mg0+6Xvxknjb5TgO5PSLft1tH9OIxQObIxJtrBUGfwAawORkKu9m\nAd5x7ppNhZ8ClRA44uMeQg4bRnptzbq7XI/k7gD3572M/PmJ8MnPoQN0gqkp\n+TaUFFGuiZFkMFnQNSR70kZ/+eS9HlJZjhArApZK0YwhM0MK3VkjVexPJyo0\nVv4sYOqrldZGsBAnxEBZQmnOEPBeUkxrK2/WWuH2Aq3gbaZKjVypL47drziP\n1uv0\r\n=Xpj2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDx4s+/gqsdp1AOL7qqYTjSIgaFUNAcXVQQEl+CMGHZzQIhAK853eRc5l3jb0ccnHE8rKhLdA0XMmR/HAvgM+rhVjsJ"}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_5.7.0_1570524623511_0.36261540583450347"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"5.10.6":{"name":"@redux-model/taro","version":"5.10.6","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^4.0.1","qs":"^6.9.0","tslib":"^1.10.0"},"description":"Redux模型是对原生redux的一次面向对象封装，OOP方案可以实现隐藏重复代码、提高工作效率以及减少开发时间的效果。你只需要花半个小时，就能完全了解模型的用法，并从中受益。","bugs":{"url":"https://github.com/fwh1990/redux-model/issues"},"homepage":"https://github.com/fwh1990/redux-model#readme","_id":"@redux-model/taro@5.10.6","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-jG2E6sAT9N6HoVs6XHbm2+XT7LAfzB4Ca4LN5C8e19s/rmHtylz32FZwnwSlr3Rmb/0Z4+VnmHghqy3TiCph2A==","shasum":"c5cc6340bf2be617f5a499cf6ad76e5cd8d596ea","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-5.10.6.tgz","fileCount":56,"unpackedSize":84215,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnw5kCRA9TVsSAnZWagAAfm8P/1ZPutQbXTtU49h78Or1\n4VWDNGP11qX0rnvNJj+pliSC56NL12ZglT9Q/Fr2NIPApCNc5VwCIko07zBM\njIf/OTiJg6z9Jx89urGR/hMqZ0eEvd/J5AKNLBmJEXusInPxwTAjJ414x38N\nPc0M++/g+tX2s5enD53dgAFqSqiViKzXpFjq3cjY65KfLnCNZ6qJAuzDcKJ5\nXnhJQaVtk40fwf1BkjIgnQl59OpWTFK+A/CiDKdu50cT84v/yg6Hmcp3XZtW\nkJAYjN/bBM83mvLg6QN3QVl2DW1e0mY8y65X/gDquViIdr6tbbydwTYmnvwv\n+KBi2Y4yg118x4cpDwlPxVQI5qiq3O9ZHNA1XBKmUUjULq4kP6Y2/9Sgp45G\nQqk94goOt4/LJAAkpaxT8OIyBH7+Np/tCGcekkPKqrPy2hLxkDnUM11om+L0\nRmi+PI9Py6pMEBUfXUMly+OduFAmuP8i41S/A/gKyQSzbZ9KQGv9yU70XbIi\nsjyRd1DfFGOvpsg11SI681TiBXDlpXHRkA+oslQuQZcVZHNti5r59sqUqsdY\nbeRBGnqEhN7vEQQVqGa77cE+/ALJvWzJTXvr7Pnb3cCc+U794NqXLIe5e400\nKn3yveNlYR/UoCa33gtkxGabirCthpS0DAi4avayYm0uW+7rMZSph/FdILUy\nEv9G\r\n=Pmlv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDH27OGPXlpk6ZeAsyNMJ6WQrQp5NxgMnWKOb1sQsR80AiAlsqgP8sa5z+X3zC8OIArZME9tHCdaCBZuiYypCAYzfw=="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_5.10.6_1570704995771_0.742369782430297"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"5.10.7":{"name":"@redux-model/taro","version":"5.10.7","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^4.0.1","qs":"^6.9.0","tslib":"^1.10.0"},"description":"Redux模型是对原生redux的一次面向对象封装，OOP方案可以实现隐藏重复代码、提高工作效率以及减少开发时间的效果。你只需要花半个小时，就能完全了解模型的用法，并从中受益。","bugs":{"url":"https://github.com/fwh1990/redux-model/issues"},"homepage":"https://github.com/fwh1990/redux-model#readme","_id":"@redux-model/taro@5.10.7","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-bhcYSvu4zzRJVeXQdWB0SMZnAMR1ha4dG9E9eOGDdnIze629wH3Wc31zLNOR93UzjdoaB3k0nyYhGC2pih5nIw==","shasum":"880daf6c093ee913fa0a7fd1058fc022db77ab36","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-5.10.7.tgz","fileCount":56,"unpackedSize":85214,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdoHaLCRA9TVsSAnZWagAA/nUP/jQ5yaNPYWPciXk2V0+R\n9hJd0YKrxB2h+DIfK+Sbd+qjwNGhDYKV/TAX2hHrb+p8RsuHQCno5cbhgeOs\nGgs3mscTe1+lWyh5CBTYemC9CKMhdjJBJo9m+OfmHNGS57ISxal3EZmTytJZ\nytFGgKxv3ziY3TDK0c02AUOJFos0+cQXeGP89nM/RPVTWgtIecN9wLyG8VKo\ntqP4ArlIb304cISKEySqqgsDRBu+nc9yhfc2PdVerJA0MA/Sy2an1dANEovB\ndBTPOxVlou8Z6LcTJ7Fl/LCmmUcUC1OZRMZCDGtCU9nCbqllvKQWb0YsR4Gb\ncPniM6hQ4UAsvEX3cB31Dk4FcsE+gJIdzx1E88HKFXcy1TwPbngNaNe4r3kb\npJyoj5fW5Ya7KDj6tJHnbdGj5gug89qSBJJGy0wYoZS/J8iEcOE8L9jTEXTl\np/FvOcx5jNT+eLGd5I+lhVUIN5+nHwudDKNEcSjPJR/+4zkm43O7xsgeALen\nuBLFJwR7oClTiMCT77DnMOiTSXlD6F9NgeeA7y/cxNLp1keN8QgtYQzkiiRI\nyK38y1Gp5bf5w4zHDyLaf7cgzw4QzU+HkL0kdJ6GIlZHdThwO6lLT1Uqwyvd\nd8bwJkHvUNaS042U7MTzWZzHq8JnR2ymOJ8JA6Ks9+0n6HfGNWdS79pFz69z\n+RPw\r\n=ucBO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDkEnij9FJpDtKRgtgaDcAFPD0di68S98l5pjSWqtNvuAiBTl1N8HYE0REPjwwsmrE4jQOtsqbqawt3RMguHCyfshg=="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_5.10.7_1570797194276_0.7426201445218119"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"5.11.0":{"name":"@redux-model/taro","version":"5.11.0","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^4.0.1","qs":"^6.9.0","tslib":"^1.10.0"},"description":"Redux模型是对原生redux的一次面向对象封装，OOP方案可以实现隐藏重复代码、提高工作效率以及减少开发时间的效果。你只需要花半个小时，就能完全了解模型的用法，并从中受益。","bugs":{"url":"https://github.com/fwh1990/redux-model/issues"},"homepage":"https://github.com/fwh1990/redux-model#readme","_id":"@redux-model/taro@5.11.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-rjBL0isz8KLqGNP/T43OjWX3KSCqoO8rkFfjG5XDOTXaTDsLsvHqoFPLTnsRgmdJ1+6Q2aXQcENaoTT21IKMzg==","shasum":"c931f9feeb50907e215b02852c7157d7aff5eea7","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-5.11.0.tgz","fileCount":58,"unpackedSize":73650,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdonpjCRA9TVsSAnZWagAAhasP/3ZwzVt9WMKiDURRpuJX\nZ8nH42UD46aNS/6l77e+MYHMmNnGMpjAlyto1W47/hyUpJLLtPLklCjODlIL\nhRUF+LV6rkv8qltx2VUwlwfO8ULY2pcdQR42axaIyHEea+rJMpBT/BMnn8JD\n9/1aaAMbGrNJp7bk5uRYeOU8mjooVMeR9unIlQy28p4OZmNJiB1LVmwNjNTs\nOTgnYb7Jahpf+DRXzYyCK8gtUz4eI0Y/WbzDF0Om8Bb34YG9BYM440Kw2LZu\nWz5Q/9Cd54EQF8fiDNOfgmJkthWLukx1MDaGfDKHMxTyTMVvWzg/iBfEo5yx\nbfpnr66ealGGCYvQijsUtvK6x68tZFTWjkwxC1c61s3P9hWU5KMe0eHfvxGc\nenPQ+r8hUt3dOtrllvv557Uq/5Jb5UJkbJeP/JaO9mfzy2SNFr2mO0B6HuOK\nZMnmeqe00uSenNE2oXDzXJ/fWVGt9Ntb05OR4G4tx4KlIkTlx1mICQ/4yn4o\nWHqHQoPlkkDQc0ucZbYopQS3R7ueTt+uqkAM57342nbgW46y6MxB02FJMcU2\nihtAqlVMd7yLHnQqR9G7Mm+AJEjjTrf9Vg3GwcddShwFUYSjBHAypAwvT17r\nv0i05F5ZQ++IGMkC04RCVGYuPIZA9VW03gFzmLJYexTH9mb3Kh/WETxH4gBw\nquFz\r\n=f95Y\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGB/qWT1EuulNNgWMNwZhnoTznz3+FxEKOW73roHo+L+AiEA9aosvHFuUPd/EvUG7h7mx0d2LpA4tHUsS7XtwFuoSFY="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_5.11.0_1570929251058_0.38509587981457916"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"5.12.0":{"name":"@redux-model/taro","version":"5.12.0","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^4.0.1","qs":"^6.9.0","tslib":"^1.10.0"},"description":"Redux模型是对原生redux的一次面向对象封装，OOP方案可以实现隐藏重复代码、提高工作效率以及减少开发时间的效果。你只需要花半个小时，就能完全了解模型的用法，并从中受益。","bugs":{"url":"https://github.com/fwh1990/redux-model/issues"},"homepage":"https://github.com/fwh1990/redux-model#readme","_id":"@redux-model/taro@5.12.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-kPm5k+lIL8acwvq/Eo69YVVv1F1duK4cHTpTRhlp6BGSVz0Yv/rzZ3Id/uN1BtrnNANciTpgQE6q2Z1RDrx/dw==","shasum":"9390236687e32d4935f3545520cf9336c6ca95ad","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-5.12.0.tgz","fileCount":58,"unpackedSize":73827,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdpnJyCRA9TVsSAnZWagAAco0P/25/i3KjAPuxbDLwx8IX\nKKAsarfBocXVBb7RqXFPGGrmc/WH+xS7r2k3FtBRl7s4O9WOkWCW3zrhnYdG\nsM2f6Ltu9pzqT3XjGb8sD8MJK32qROp6ZAXZrI/I24VJsEHz2cDzI48DdKHq\nv0q/UWdgnIIgnR0Zq90v/q78UW041WjrCR2hTZO6FOi0EWZK7roxwNsznip2\nmJC3rjeLGdji1aqh7HWYJM/gxSD08ZWvveFCJ1Ex8fqiOQt4G/ioMNMmIsLV\n7cnFX6i5p37BVUwgYRC8ZCLssIQh8T56v5Ughp3TVCgLebgmUSj6j4QTSCPj\nNPMUH6ci5WKEdYYGx3yika6zxZiC5wKNUKwCajHA0RSgyGFukJQOUq2sw11J\nq+exzdOqSac1WDz1iNDeH3UmbB0k4NLs56a+oujuD76AacOHhV/ztGHKgIpj\nZ3z1Llc4L0X995QnhtOGfSVXpkquyDdPacoR1IGdd+3oOZ2R6/vNMvBVb7iS\nvJFNtOcerMSInh85OkZPTgBOFfG2C//B3X98xjkNr0K/+VgeHVT348te+1ss\njeAwFKsdC6Xju5t0JrupAW+kEkoQ2ycgVL/EhCLZDXXYMr3XOutIvVv0NlBa\noEdFxLJsZVX10D1hxuR+y2Ki+kavAT5lw9aTe1ZT8OFKsiA6TDcYpMTf/kMR\nAvAg\r\n=peQe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCOqDDekKm9ZPWcfOQMcMdw2tgZL7/LUISvpYOYbZYGdAIgW+ktBL+GEbGsW1tbr0MCP07BK3Td40sGAxypw+Oic6A="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_5.12.0_1571189362323_0.6290632788408226"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.0.0":{"name":"@redux-model/taro","version":"6.0.0","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^4.0.1","qs":"^6.9.0","tslib":"^1.10.0"},"description":"Redux模型是对原生redux的一次面向对象封装，OOP方案可以实现隐藏重复代码、提高工作效率以及减少开发时间的效果。你只需要花半个小时，就能完全了解模型的用法，并从中受益。","bugs":{"url":"https://github.com/fwh1990/redux-model/issues"},"homepage":"https://github.com/fwh1990/redux-model#readme","_id":"@redux-model/taro@6.0.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-e8u1hUUuNtuhKgGM48EFOJ0g0xst08mXNMmlAnPGSgb/3qpe/AIF3MPNh6j4lBdtkMThoXsGRPTR48KY4FEeBw==","shasum":"6ecfb857807bb9beea5b379ef1ae080b32a0280b","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.0.0.tgz","fileCount":58,"unpackedSize":75474,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdqCPGCRA9TVsSAnZWagAA8H4P/2djjMmYe7hPar8Lv6Rx\n4srfmktxebZmqGyNnpv0CLLj2WNpF6vDIuAqjBmSY36ruVUBuPzOXwRpvg3/\n4SAVMdEz5yHLAWK54JhZ/6RyKNelTPfvH/QGxHr806WypI2gGW/BtxZsq+v9\n864Uq23A6Bw3SwkyyeN7PUjsdklc9awURTjdM6ffpY8WfbdLdJMY+MWHd8sr\nWqFnR4MK81WeZBRlMq5rb2gQmH5QnNRQUWpeTpiiOazf2IVGwaYnfUHohDX7\nmV5l/Y6CIA+xrX0Q2VOlAtCPG4QDQRcybKhizhHkpjK7aDVjtnVUZ1NNl6gc\nGRFNqJSXQxoMuUTWU2mLC/kTjmy62F2H03k6vfeac9ov3bonJIodgnft8cw3\nx/gJocx1FL8ikhgAttQvj7yQM4giOiOHHATOO9wm5wL8AXHXdnHWAUfdUFVI\nxuiTwia7dRxJj4sUIPWxUYobe3piAfmGLXIYWHYv6OIIw5DaD0s5E568sfhx\nHrEKpJ9lJ+ivQWQS3nwxOC7IFehI1hGkZ8yh+77Y4/ht1ap1/1VQmhKBqs3H\nNN1OD19Iwb7VNcrMcoJ7XnlQwZC1UoqcgnB0oibpR5CncQ+fCnLLiXym/9OC\n3uVaZHyiYNjA5vXvVMGDxzvaKRB3F+1/jFA/lrUJ9VL7Ir37oEFYoIsq+juf\nzoP7\r\n=jzU7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG4SFVq4bHPsARs9hdfVGakh9hqWc3cYax/nQ9ZRMglfAiEA+E/zvQByjzjXtqsWsazuObxjD5/wX3lxqW42FEFLhGw="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.0.0_1571300293398_0.10150997048755439"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.1.1":{"name":"@redux-model/taro","version":"6.1.1","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^4.0.1","qs":"^6.9.0","tslib":"^1.10.0"},"description":"Redux模型是对原生redux的一次面向对象封装，OOP方案可以实现隐藏重复代码、提高工作效率以及减少开发时间的效果。你只需要花半个小时，就能完全了解模型的用法，并从中受益。","bugs":{"url":"https://github.com/fwh1990/redux-model/issues"},"homepage":"https://github.com/fwh1990/redux-model#readme","_id":"@redux-model/taro@6.1.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-htZREtRHkMmHFK/iHl4kZJtOBbj6t6zlmwLkDLFkzpF9tgpKCsgd9Fon/MzF/maR8y1RcblGlqU+i9DQDNDsAQ==","shasum":"5123a4e6fda41fe39e2d2b0d011713029d22a260","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.1.1.tgz","fileCount":58,"unpackedSize":72690,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdqScPCRA9TVsSAnZWagAArWUQAKE4VyXSmSHIinAwgSTR\nZiMmyzX98MH+Je3rgUjpZE/aHKNtXOLFkE742Y3L5ZTpTin2eiZBGzKd9dtR\nKqihRB4Ya3PkMTJDG4tOpVpY1kFkn/eH9ftHLd+C+214A1aVceH7JT7mmCGw\nhJuO/daVlsFvTQPlH4bYpAP/rEfmAJStGLYq0eEe3968vLOE51oOW9t/tL9w\n8LT13F6Ivp9EJM/hC5pCSh7zjG9zS3q7QS9k152UZ9NsHLorTEFKch4tft7I\nNV3/LqGKrIbim0gWZb2GkC1jJkj8Ke2MBLejDEqKOCOrQXoT6YhM6KtKFRoH\ncJaaTJw9dnopyBr2W7fdEYG3WVXFtK7KB+UhBivs63vNwzWqjxY9r30g6/gf\nu+fCnLFSNKM8Vwm1S4OHks9CXNN77V4s6AZ04+zsrbtFb5xk/S9bx4ag3Ut6\n0Xmod76rR+B9JHHiSKt4bNpP17GuDTnRJc/10XOLQNumJi81UF32FVGIJw9G\n1Jobvy5tEmbUPkUEmJvOOj3GnyYmq+SAF5iZF77AbIaILwHA8W9WvMw6FhTg\njaQX92LT9UknN3yP8vsvwwSs4JTw9zwsEd89Y08UAuGqk+xAjvF37Ml1S1Qf\nZ9Og5H7I5zrRIqWEDkfY7Tv1dsxnAARnVAJyFy/SWaNqBRiZH5AuXanTWUpk\nWDLV\r\n=T/4x\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCNF6f2lCXzlckf8BrjY4sAtRKPzC51KFL6D9mRZxg4AwIhAOi43/8qkpg1y89puUdIdHnXCFhscw18jFDcsK0Fldua"}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.1.1_1571366670832_0.17728132842269995"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.1.2":{"name":"@redux-model/taro","version":"6.1.2","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^4.0.1","qs":"^6.9.0","tslib":"^1.10.0"},"description":"Redux模型是对原生redux的一次面向对象封装，OOP方案可以实现隐藏重复代码、提高工作效率以及减少开发时间的效果。你只需要花半个小时，就能完全了解模型的用法，并从中受益。","bugs":{"url":"https://github.com/fwh1990/redux-model/issues"},"homepage":"https://github.com/fwh1990/redux-model#readme","_id":"@redux-model/taro@6.1.2","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-dyMLFfeDi11y+jgeBTxSjxv78/fDsf9nD4PJPaAVTjsqH1izZ7JLFB4l1a68ZTosibmsz//NR7TBQgLsW8pybg==","shasum":"88ae8dff8d95d77893f6291e3852c05e1726fe56","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.1.2.tgz","fileCount":58,"unpackedSize":72641,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdqUPLCRA9TVsSAnZWagAAGoIP/RA+Y6T8tGfyWx11iHMI\nI8XKVfTFeHMJg3Bwq9wn/xcyFp0+v/SUgXvf+iP5FJCY2OIy6p+9x9VnYxsf\n6SwNNcxur5PAeeqk+4PshYQCG5bCBJUTgQtewwSd+5dPapXZFNvcmMZu0jC0\nvlJVEp4FPaZzH45iP0gKe82RtpV5Ebfw1pNos0DMe7foPiGjUKHc9nclmf14\nEc79SXt8NzQKreluHfPAcdi5/e59MFH8OWAHZk1OHuTiYmYLwmIncfqNypEO\nv4j/UbSUDjJYYYQOIRO/3MxD4znTQhnS3/he+QRFyxNGPA4OOEqzvYWwqR6S\nILpPIyr8+9xXZwDD8JsxC7430EiXG2ptVe6Pu65XrwUJdRLiMDSgx+RpfVQ+\njxizy+MZS18Li4I82hlYmk++2uONf7acIhW6mbSEkt7Gxx/C4IuwK4KSN1P3\nqDirehqhKBNsTfx/pQU5ap3BWpc2VRLKcBQMP3x2WnW8BMbFmncy19efb1bt\nNhjAFTWH6wzMLe0CbyBfikw1Dg+W2LsTR7YKBV4ICU0EiwAAI34m9OJxzWUl\n+WNqXlGe+oGYvKBZV8TMVHNHiRxw7Xh3ZP4tPeuRnFOKv4hC+FSsYAAtao9j\nahU4vth3fT4zZM8uqikqOivVpySC7YLqcvIMJ+6P1wDezxymchqoOHCE1Iq4\nrFM/\r\n=XrrH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDQMIUWX8oYnhqrtiJ6GKCuyF92H1EqhyiXU2EN7cAkygIhAP+k7OocecB284cnMu7p0e8/wR5lbnyHnWsrU5RrfiQp"}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.1.2_1571374026624_0.5710432590716283"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.1.3":{"name":"@redux-model/taro","version":"6.1.3","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^4.0.1","qs":"^6.9.0","tslib":"^1.10.0"},"description":"Redux模型是对原生redux的一次面向对象封装，OOP方案可以实现隐藏重复代码、提高工作效率以及减少开发时间的效果。你只需要花半个小时，就能完全了解模型的用法，并从中受益。","bugs":{"url":"https://github.com/fwh1990/redux-model/issues"},"homepage":"https://github.com/fwh1990/redux-model#readme","_id":"@redux-model/taro@6.1.3","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-zlIV1nFsOhlWQYXv8NNyFPEOkxnFbIoDYU8SVonYKNAeiVKC4rIinbN+Ay7BXQb+U9I+twvdcyzlhNuD7kFysQ==","shasum":"49249c90b7981859086f2471388427d2458c50ec","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.1.3.tgz","fileCount":58,"unpackedSize":72539,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdqYU5CRA9TVsSAnZWagAA9LEQAImdq8ds8Ow6W3MdeNpg\nDVpSY3RWGWCzDF3PQKBaQVfTRPrjRDtciqccla65Cs6AJrG7gywadhUzSUhl\n6uargxRul9SKQf3uoi3aG0gqRiyBOWMSHCvQSHy2kvlzNlhCL9eGl03fX4ao\nZoN1ca42iIwkkyuHotBQBdV1F+XWcMxvlbAGPDCWiF2w2e0VEgyDQ8jUIJp1\nQZOB6ObPO/bM3jjDWASoFHIIDTPX31EDklbdmQcYG3oY1LWoUSPF1pLf9Lu3\nq2tZLp96F4jHOFHhNIPQjYZ5nXWUpKhmbqrU2+tYpjJL7tzXv9338KMXoHlw\nHEXsd0m3X00ZHiNUbrPEnvSwjK6T4Wg1YBQ/u8WdILK6qdKqAV7+0Lc7msrb\nuLkJKKsa33cZS+teHg/0rSzMilvjXWrjUDugxmU3dpJJxvHoMzuYuKTu6yv+\nkqMcRutLQMx/r2ngvfYU9ftUG0vhUQirZqjBoFm+eQILUTmJm01SVNcsQMxs\nfCaGvOpQLvmBrU21COsrTh5jQ8FH9DttxNpM5dyOISbA5u7CoTKgIl9ldswe\n6pMYWEYHWZGdJfik9ttV/UbFxzqPDQz1jnsMjK2b8+NkDuaSWvXr87/hlVaU\n1X3IUmkkxTZMVoEIl4PeEWOdiKcgFWi2nhBeHBLln4T8m6DaYY6NSQDjngwf\nLQfn\r\n=CZ7a\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBEpPcAihPL3qbzHv81ez0DJ+i6MK6R+V1uaVIe1k/M0AiAX+g/hwKGpbyiVPqW7PkDmBoAnHDUadTtB/KeOomF82g=="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.1.3_1571390776564_0.5833603415814306"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.2.0":{"name":"@redux-model/taro","version":"6.2.0","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^4.0.1","qs":"^6.9.0","tslib":"^1.10.0"},"description":"Redux模型是对原生redux的一次面向对象封装，OOP方案可以实现隐藏重复代码、提高工作效率以及减少开发时间的效果。你只需要花半个小时，就能完全了解模型的用法，并从中受益。","bugs":{"url":"https://github.com/fwh1990/redux-model/issues"},"homepage":"https://github.com/fwh1990/redux-model#readme","_id":"@redux-model/taro@6.2.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-NLqwoMElwnuhf1FnrTug/pa9fHrHh2eT+dkXFhnG7SODJV/Opo6u3nr05orBDRO+zft5CAMbr5fzSbvwyPc+Fw==","shasum":"c0308b1d41a2a74837aa8eee37d757e6703b1cca","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.2.0.tgz","fileCount":58,"unpackedSize":74241,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdrW4ACRA9TVsSAnZWagAAYoUP/iJLoAA0ocoiY96hJCCI\nBGjk7nFsmUsL9OV37f5tm0yTtRYPW6gCoCLpwFvZGsEYXUmZHjnqkxyD/+at\nh6rXOf+U0GyesAOap832JDzqry+OfCrD5hL86OPaHUArFh9LGiMCI0ziQ/6g\n4Vj01nOeW1jr4mbNfBF+zFUErjIeaj0z7iO5Tjg1iM40d+GMpzeAyGKeAXvp\n1D3v6PN5Lt5RLq/sc7L9OrExvjhVJ+hP7sSeR7rIpzgVxJUzlKaJv3aNmxIQ\nY1fvGDYiz0n6mpzDQY47W9eUbIBbG+bVkqGyyBWvsaqOTASgqA58WZYh5ZHW\n4YzyyR0/GgIMZxyIW6/tZG/zy/LQZ9xph7GTowkNJJGsrEvxrZud7a8D+y8Q\nOmMMlnSgDL/33nrCy7lCJyYi+pveHtR6pfLEsXXEVFNhOlxP+En5zZrnnM0/\nATY6CiD7IJw+XmzbD7+jbN+Nbe7VUI+EDzeXeAHsw/obXGQkKq5uLhW3/14r\nOmMNgsD/cwv+wq/RsuElNnYIpUfp0t+Ftvoq7FixMTTuQYdxCqmKPEgdNwaT\nsPOG3Ac5ms6MSgPQYTahWJrXJG54E1l/h3a9+H89kUiAFfX4x8X/p19+u0Tv\nr5mEwE/e5hvPBhn3G1U+B3cEbsLm4Z2Fofn14jsJsprg8cEXzCLj7ihP1u+2\npvs8\r\n=kN7m\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDlgCxIhpGIKyA7gQA5xtkabcGTvkDwfeysdVB51GDVAAIhAODx90I7zU6DeJADMZW6wsw4SAqX3M96ZRTUK+Kxmn9C"}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.2.0_1571646976105_0.28977713829584184"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.3.0":{"name":"@redux-model/taro","version":"6.3.0","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^4.0.1","qs":"^6.9.0","tslib":"^1.10.0"},"description":"Redux模型是对原生redux的一次面向对象封装，OOP方案可以实现隐藏重复代码、提高工作效率以及减少开发时间的效果。你只需要花半个小时，就能完全了解模型的用法，并从中受益。","bugs":{"url":"https://github.com/fwh1990/redux-model/issues"},"homepage":"https://github.com/fwh1990/redux-model#readme","_id":"@redux-model/taro@6.3.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-PlSdmKgWgEWFNeoy6AYLQrBmWHVkxJrN8OnqC2Brx3gzSvCeykbMy4kzmBwTtOrsuRXrMaDqYrcDXAREqp7fQA==","shasum":"e3cd93bf48434aeac9ded03fb96657676b68a98a","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.3.0.tgz","fileCount":58,"unpackedSize":72816,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdrq1pCRA9TVsSAnZWagAAAJ4P/11/ajPR0YxBRl2NAAqV\niIhB+ckKqpSNCy/ON+Z28AfeHaB149Sp69tkwe1KxK/9ZlQSkL4zNqF7VECH\nBHlxTRGGwhLKIiL5wF9UQ3yDGLq9kdKRJHKvFQqjLF+aiQ1eY7f/vSWkkdLJ\n8zyQ1WTC36CqblAIugZ/06WnohDvr6kz2S/e0aTxQicqagaQCelQIfMcilHW\ndgkUcNEzWsi4ItjqyMYjD5QK9DKhJtmqgGHtzqJ3gYv+fCjDeHLdAJqOaukS\n5sM1op6B2hSWHwdLEnhqdSo4A16wLvJ+ZH8s9rgg9N+WptR5WJ/H7U93X3bu\n5xLF1HORUKlYGSWcZBLckbl6GQ1ymd55gWKlJeUTfKRnMyCXMe2fqN2NcVhx\nr3+C5+MkRmNA0DWggzz5T9xhrIYQa4footlTLiK9EzfksdtxEGuImG5PlZ+r\nIhVT63W8oc9NnMzhZeImz6KJW2lSPyprZfDi94fJ0NEzV6z7cjSw1YKYu2k5\nW1HVo3Yut/M2s2v72Yeb/INaeYDRkj41BwtLg1FY3Y8fYB3njKYaeHx4L5tX\n4LpPIyHaCYtA9JKudHcwtWeu9p6Ob6iPRCYFCYZBTQkP2gXVzu4bnmVL8ysF\nGfprg913bKiKCLDxFalDnLTNeKQE+XK3QnV3b+DrIqXaYXezhDu2VzHQBFhN\nJkWV\r\n=1/Lm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBQ7qqKU7DlGSKkd63y2xHN3lXczx40Zq4Fsy0oyKYu7AiEAsWgfWgX6CwrRXM6HV2vq7iNVWlIySHTisEJLuuQBe5s="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.3.0_1571728744383_0.4895847299792535"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.4.0":{"name":"@redux-model/taro","version":"6.4.0","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^4.0.1","qs":"^6.9.0","tslib":"^1.10.0"},"description":"Redux模型是对原生redux的一次面向对象封装，OOP方案可以实现隐藏重复代码、提高工作效率以及减少开发时间的效果。你只需要花半个小时，就能完全了解模型的用法，并从中受益。","bugs":{"url":"https://github.com/fwh1990/redux-model/issues"},"homepage":"https://github.com/fwh1990/redux-model#readme","_id":"@redux-model/taro@6.4.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-Vh4bSymh31EsKJEYDVgNonW5WOWbTF9u9uDUnX1K0z7geYlz9EMObYRI2Jv2T3+B4D6Ej4qboiErISb6VRqTbQ==","shasum":"37e5c48dd0537e18084f6067479c6e4f528cc58c","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.4.0.tgz","fileCount":58,"unpackedSize":73041,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdrtkrCRA9TVsSAnZWagAAGd4P/i6B/ROirsFvnw4A76E9\nasHWSwqxYHwrG5KTWYsPR+CvAxh8i5cVbcA5+BYnPdkF0eRbz0Namnh+qNId\nhuk3uyNopvAcY7HcsZsRkCIrq0Cw2/x6cD5xCoUXp9BnsXIJJICIG2Oyqjqq\n0xx6dL17KfibjHmTGAPzdHQvh5K7qfCAwfEOTk9IYaSnOI5+DjlV8mIZGFi2\nj0OtJgDUD3zpQgD0sD/A/jvXNDLmZNQn7q7yiHfYg4V0eGNndC/zDE5h59r0\nHUs17WcvnycdIwphPceuu4ctmWxl2lmqdsIiai0p1bwPBnLo/mbkUL4ki6OV\n0Py2LxFEX0qEvaMsNQJwEwN0t4YpgJ3jf52losz3GfRMIiuEAC/5SkRV4kYY\nEzjju0xKKU8XHuY7obVlLQEs+7kOypEHx+hr4Lw/1YWLOqCg+Uvr9m5Wv45E\nmlGbvD/e93fLjY3d+TQuKkCZr54Uz09WciWkGZW7pRZKhnHhdIgkfMg7Y6G+\nuXVmvzmtO7WQyyxDOiQFH8n9//4RPsZfQ65DN/Begp4jzG2E2EOJasO1I+tK\n4rHC8Z2X+iT/lePHVoLNKr2qGdWRAvnYpa9ZRdA1zDjy5Gc3eRD3g+PcxnHd\nTjU0k0Io5HWLSUjxpPefaLMpRI3dRyYAwopA496k9wWTlfgIiJAYxBANCvsf\nbpc+\r\n=nVxq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAnQC9+zjrnx2sFPXfQ+kxALKowAJ1ZWtdnlxxtsPlcLAiAPNMWIumHJvVOxeg0jSFYHoq/mMmlNWD4VJc8eConNhA=="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.4.0_1571739946545_0.01161628496994127"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.4.1":{"name":"@redux-model/taro","version":"6.4.1","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^4.0.1","qs":"^6.9.0","tslib":"^1.10.0"},"description":"Redux模型是对原生redux的一次面向对象封装，OOP方案可以实现隐藏重复代码、提高工作效率以及减少开发时间的效果。你只需要花半个小时，就能完全了解模型的用法，并从中受益。","bugs":{"url":"https://github.com/fwh1990/redux-model/issues"},"homepage":"https://github.com/fwh1990/redux-model#readme","_id":"@redux-model/taro@6.4.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-6O3Wf1T0SqXYuwnbR7x/RJWWZ1cJttojfuNTzwq5kJcxajfdrnDUba1cNImhmJwnoJBMb04aMZwJdbLHYTmbGg==","shasum":"ebf745755e9761444cc07758cfe6875bab7e045e","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.4.1.tgz","fileCount":58,"unpackedSize":72514,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdrwNBCRA9TVsSAnZWagAAf6MQAJ9w6uDUZDvCIdeB7QFH\nVao2CqGiB9rTMtHx/0Bk037GnAW8fN5lYIdtniEkUUTRJ7Z/zqV1yDX1zGPG\nMF2c/2ICSrG+gnedZH7xkiNd4OQkNLn43xYAoMTYXzG4uNgxmMJrfLhhGmJk\n8gzy8rNWqizOP4mmi2KeJgWcrXyOYEBEWm95GZveEsjja+M47upFV5MCzPgO\ndCMgZreX2cLpPr0qKeV6TJY0dUv5ZWm0cJhcJOhPU3kg9DWCDe8mdmVQS7rP\nuc0wkSKcrTTtxStcXqamjujAnFLBje+sqDJMKbBRTN177jk6//1MvIqbnuc4\nnwKnNcEwfeCGrtBziHYT3xoStTXaYuymTTVXNYoxU4L7DotjmRr16aC9R1yG\nv29iSJ0PbDyOowddq81CYVJL5k7846MBfhWO7BWK16AQhcY5bkZTdDwuOZ3b\nJu9XOJW0wWTdqExNXVa16tsfu0Lwf2Tc4LS4SwxgtgBvgqJj7zsWJVc+5TIV\nn+pLcedTdI7neezALKj7jPqVxBBIfU7Tl+X7VSyvBS0msNQuHp7zKZ+MtAnf\neFb6jp6u49GOFhZPgtQ/Jb3DRcM3UA6iXziBN39Wa/rzVGCQw/scuj48Cves\n5dl4MJs9kTdbUgHykmeEyz4wbhPT3yFEm7OVxWv7zhMjKIVeors4/weudclY\nalED\r\n=Wrng\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGcRF9D/sqkmoAmtJGFQTqYoM30BB2KDumkYlnYNGPI3AiEA/zvYfpUIYsqVqaNYsIQHB29MDIEwIFk5Jc5R7e8emYU="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.4.1_1571750720794_0.7657993303331656"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.4.2":{"name":"@redux-model/taro","version":"6.4.2","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^4.0.1","qs":"^6.9.0","tslib":"^1.10.0"},"description":"<h1 align=\"center\">   <a href=\"https://fwh1990.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/fwh1990/redux-model/issues"},"homepage":"https://github.com/fwh1990/redux-model#readme","_id":"@redux-model/taro@6.4.2","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-Jx6wGAIM64fEAg2hdUKNqqV2unGeFh7LQbXXlrZ1imGHuz/N4O9DVY3FvriN+Ptb5XNRIQJVCEbolpMrR1WXSg==","shasum":"fd3beb57cfc0cfc01a5ee760afa41063d4168ad2","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.4.2.tgz","fileCount":58,"unpackedSize":71320,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdswYqCRA9TVsSAnZWagAAWSkP/i68YTW+PCx6XnrXhIkU\neDaQqO5SKwWYwJZdAlNmZZKMPvmVLmpiyuxbqDyO3BksJqbRRhQKQz9F8+XQ\ncEx3cum2AQHHIEgqUWh5CslXlLkWuQLWqFCtroCdd+HB1FTHHT49ps9LA+7P\nPuGdTcMPQTW92AIhP7gWvhmZ0Ktc/AJoLDVhUJNAwYFSJrdFXCWIfSvARxbT\nE2YNdggQQWScyIMPjReqiZUoz3zGy7CYq6QnzuPiajsfodmMG3bh+D3uWztT\no/tYDbNy+IXTQxVeBy3Xt+EGiyeP3FtLTayPgeOA7vDAkIvNwjdvp6kk4V5O\n6qB1o4FdRBsiOBu98HjGxVMJM40bFa7VruVDV+/GOdIEe1IbU9dSXDKsrTZk\ngZBoAs6AXkC1iFdui96W6Mp4b4LNdS44RtRh8EdOEiyySbYlgxpWc5l1TCNn\n84K2tNC/qV7iuIXgUhss7QjDBMyIou+MOvidiV9KVWc3DNoDRhWbux2ApqFD\nJT1qorFPSGuqzI8mwyFWIfGB3APUsDdEb5EcFpwTaWR1sgT2m/qlU6NVwS0U\nrWueaRXkbR9uYsGo5ZgDe0iae80lubzNbOdMXhdUdMa9S7SBMWSdNO7z+06R\nPzEZxQGrLqfeavpegYnDqsZlNrvSdH0tQ7KwyeRq9BC7jhwdKrcCW29kzVKr\nEe0N\r\n=fVVZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICFwy92e5dw9GdbW4GOqDrFJ6XqwSbrzjZdxb186WxD/AiAQuOcO0NIagvWWwFFpE9k13siJZGvbirW4l/iHthxCZw=="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.4.2_1572013609744_0.7157504054672916"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.4.3":{"name":"@redux-model/taro","version":"6.4.3","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^4.0.1","qs":"^6.9.0","tslib":"^1.10.0"},"description":"<h1 align=\"center\">   <a href=\"https://fwh1990.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/fwh1990/redux-model/issues"},"homepage":"https://github.com/fwh1990/redux-model#readme","_id":"@redux-model/taro@6.4.3","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-lS9dxMaiu3wyWkJABc+Tc4mPZv29K7fLrw1VMOmFrFDzBhrpLytlhNZMSLocIh3qEbfMNYevCIjRSxsIOsnnrw==","shasum":"5b93e5105012ca8a6365abf0d4b81bab699554b9","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.4.3.tgz","fileCount":58,"unpackedSize":71450,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdsxBGCRA9TVsSAnZWagAAq1wP/3DU06IAPPG0+t4959Sf\nv3vl+wcIDPoBtTCoMjRThplUpi7yzszVZY+a9zF3hbZNDsTWBrodyZGo28iC\nhHdRRA7xMkwonY+QNa1zp+N3VyvlknD06mFisW4JVcZh09OSdQQ/bjj0cAN3\nkmvAxaFr7jH+ZKxQJbVajRpnUIsKizCxGsKwTFoLGZ3vNdWq8pjieivaJ2YL\nie37zQPU9RVs9Z8+wzy1VrM9JOgZfZnx/X39xuyPsyaTLP0ziJGbEERCG3Vk\nR5kaJ2W2zzhw5MkE20123LxEkmOw0WEwbF0JlJfBAyWqVFDh5X90RMk6PCCn\n3gwbWksoJa1PWsuK1tRx1mRi0/Zkia6hzkAAYlJXzf7TyEwCQtBTdLjje+OJ\nT0/DJoZc+VUROqoiuUy8R1esvoW/lwqKpCn5scpUD3YhzgbcBuoULxEacDOc\niBaFTRNacSswuXoSbIa6OXn/yFcwukVXeXYKKXM9xja9s4nRhaFvSW23ufML\ndfMGq0JGWCEdp0H90LUPmMjfgGzIA5aYQSOLDmhDQT2Y0vWM78KBGUfa4KIH\nVZ+9qrJsz0Mj1xWZiEdq5MxlULT3qYQROf6CPr2vNiD+8e3gH/nq/NVNE9vJ\nyl5OOD9xomnKxjIGKBzkq2/M39LaZDvJSicCBR0V9gxfUhWzXj/BeiZTgzhN\nUjDZ\r\n=HDFQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICM2nHInSOiWTkLLQbyxyZKek2KxQDsNkLNET3q5QIEEAiEAzC8QewXstFZ7Pfaq4eHD7gad0NrT/FldkB3BOVUDj0s="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.4.3_1572016197844_0.9516772308160859"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.5.0":{"name":"@redux-model/taro","version":"6.5.0","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^4.0.1","lodash.clonedeep":"^4.5.0","qs":"^6.9.0","tslib":"^1.10.0"},"description":"<h1 align=\"center\">   <a href=\"https://fwh1990.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/fwh1990/redux-model/issues"},"homepage":"https://github.com/fwh1990/redux-model#readme","_id":"@redux-model/taro@6.5.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-ttKJd6zynZgg2xJSA2W1u/T+4xiGqu8Ct7gnWgf9Un3VWfMMlcTR6ZZqINrij/S5yTra3slf8VXZ1SB9nZFtHw==","shasum":"38957efa5ce1401ef51176e82febe7e9e4409b08","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.5.0.tgz","fileCount":58,"unpackedSize":74871,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdtpxzCRA9TVsSAnZWagAAmsEP/jWpLPqV3cNR50fm0o36\nAeDX6tqjcz4139FfyxjAF3APvIq81wkWlKGdHF33OGuW9J3582d010Rd7x+e\nWnz2x1vclAxWXA/IJtqN0OXwjgre3xAqiLh2JoEqOypOXHz1sraYMXNuF3yO\nEbxn6uoDt5ROSNa+4Jgk2YnuE6HzKtzl7vtkuNtpVVDRIfxPlPcqklcKWUAh\nAKVtE6uRFnbWaWxPZZYKqThvJiYsnt/Mid/fGc9wMUx0IRAKYZPpHKymxprM\nNAK6Tv9AnwmbbknWBoaDj/yghMc7D+VrYYBSaqqMV5kjjlKP7Ml8r42qsPab\nducWAHoHe0B+uEkKnG1pOb9PmYVlSNRSv+YajAohFtC28Kqi7GAdOEQ4IWpa\nIAMsXsfNvdnrrQZ/pq77y/TrENdGUnUluzpz1pfpNW5FEj7jMvfmiILbSt03\n6jdHjxM60DWNp64sutU7lrU9vhpLLs3NTWjsxXu7/k7F3bqQDKckdYfu/57L\nI0Bg/bJjFpmhZAsA6aOK+MQHztPCfjo/iXLN18UOhroVucwVjQ9Hlmw4Wp+Y\nl+M+7O0utiX+RO2fpPv2kdgNhwVKPanlsviOZGNsJAaFpShE6o1gPKCC13yw\nSn03n+BwKMu827Ti20Leek4jhGaBRfhRX8JPpe2z4e00YFNJ73CbQvADq/Za\nVOnD\r\n=t4+q\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBWIG0YcuzWrvyAxkj/KJhfLpwFjmDHFFIEim5xVXlJWAiBo+6PlT7fnJPgc4Z5vTXl8PfTADbJyUZgji7WXfnwxWw=="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.5.0_1572248690622_0.27720552576924584"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.5.1":{"name":"@redux-model/taro","version":"6.5.1","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^4.0.1","lodash.clonedeep":"^4.5.0","qs":"^6.9.0","tslib":"^1.10.0"},"description":"<h1 align=\"center\">   <a href=\"https://fwh1990.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/fwh1990/redux-model/issues"},"homepage":"https://github.com/fwh1990/redux-model#readme","_id":"@redux-model/taro@6.5.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-zhHg434jTDgFAAqPlVYCjWykI1ZBrZ3//+dx4CNkVOzpXdnIgTwlYFFMZ7+/zqH0ompOHpH79tJ72lyjHp0rBw==","shasum":"8e6c9b7013ccf353f74ed6ae44bbccaf62ead7e4","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.5.1.tgz","fileCount":58,"unpackedSize":74876,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdtqh/CRA9TVsSAnZWagAACgoP/irPyDbOIL5I8MypVgsW\nqC/t3PY07SEatcUfLgijvFGPCkJkY44MJ6CpGwXDNc1wUxj3wWZ4kCaydvFB\nwyEUL1Chs9m6I5TfFszaBS7h8ieAiDezoGHx+Pc/C/a7UV9QlJxQExsrQRV3\n8YTrcwSfPblURvjM72HWl5+bpUOKzyBv0j1NIyQHIL1jVuInzAMTthtRPita\nliyrTnL1LdhESMe3jAOP9a7LmHNxeMQ/DXaSs7O7R3fueteZPUC7ore3LLG6\nMgDdCaTosMCI1NqNVlTfnHIHlxm2VfXkzUGzLRQdGWhuep2JcFPvG/HG847G\nRYpoVfE/c/L3V95D/B2z1KhdnkFlK+Ki6SwOB5xefSSxawH62zG0UzEQgta+\nS8uAihR5OjVAUb3I9Gj5U958XsLC0qz0srXatmbwd/VBcN8EvodG96Uq4Q5f\n2iwOwRQWjOfyUKvcb9/+hgr44CzIeYkqyg7M76DHqzrFCJVsPiuHurXL4/9b\ni3zEwW5jdIysimSojfoSGiRXT6YLhJDiNgx2BUkj66elzZ6He/Ze3Qmsekxr\nbHHhsMVzTUS4BRncKf6EIXWH2Tb4SX7wH5ULXLgQWZaKb/8OTAZVV6igaPTO\nR4SGEdWU1belWzA0ry5AH9iTSqJy/QGPGWpSuP89GLQ4S5fzlZG02VvHE2zp\nbLpA\r\n=CrNA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDa5Hs5QAVObmQFuHLiBCpVF7NtvzmePYK27R9fsXaJqQIgQA0EOSqNDJyY/rR+ymbboQHCjdKsyKGt3sjxLIoeb8I="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.5.1_1572251775121_0.12406147806267454"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.5.2":{"name":"@redux-model/taro","version":"6.5.2","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/fwh1990/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^4.0.1","lodash.clonedeep":"^4.5.0","qs":"^6.9.0","tslib":"^1.10.0"},"description":"<h1 align=\"center\">   <a href=\"https://fwh1990.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/fwh1990/redux-model/issues"},"homepage":"https://github.com/fwh1990/redux-model#readme","_id":"@redux-model/taro@6.5.2","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-sVbx5b+TI+bBmy7vaGrnHkh7Nl361hllPfN53X2OEV4fqcx0IcKA9B5iGXAbCkzTpl5KTmJqMNaMNfkFDohAcw==","shasum":"4f401639fcbca9b824d8a8817bec673caca92feb","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.5.2.tgz","fileCount":58,"unpackedSize":74851,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdtrK2CRA9TVsSAnZWagAAD2IP/jTattt+mmzUy+nPqdTd\ns1V7zqkm3siEvTxNaIs1d79UEsU1pTTTbMY5sAXpflpY74gv3fmZ7vKvtCr8\nzVXk8EYjYZ3IzA2NSw/9fmgh0tF5d1FUsAC1Gf6m0XTFyDua0V6p9+mdnt/B\nhQ0S6Nn/DzVkAmI0TveLjffnQbfawNOJMjzuHaSl2KysgxKgosW5w9G6y1yI\nzGGU8KMiP90Ebbp/et5vQwwrTuHRpkxX6ob3M5H2nibuvehHUPC2Y89UGD4U\n1iU2QOCF+lyhpftN6bUzp4KvyhjcNWD5mPu5Nn3bsWR4gSfsaOQ3dJpK+dtd\nXPzYDH+V0RFTg2u5ENB4Drfrb6dTd30TzJUoYCjanTyb6NNvedIMCpKzukjL\nbBIFaWX1QsXu25tSvyziNlScT/RX9V47siM39iSWig9m2nIpPF1pDGHuZjMv\nAU4p7QKOVOqInngyphwtyTuN5Rccx3YMayMjb1I/ooe+Xgzpdr3mpDf7AkVT\nOMDLgeJ4T3MmrnubORNkADGuck07y/JagXJfZnYhm1dNNeP6vBfWH3it90cU\n3EVuqXNvHzAdZt0/4Fprhd2EwJw01zmpEkNAWJPyIS3qRkEZSKtbQLPmT+gX\nN7/ubbLj9KXdeeh+RiJ9EPyzynlCQr0lDxw8lw1bvX+aNjorbdJ2R7UHGo6B\nBrLc\r\n=oUH4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC1FeNiV7Pkbuh4X4dscFhFr9TzfZZMhHfNTQcEVxugBQIhAPyKamk5MEWsuWDYkmlnx826Lcw80+f6Sn9E7/e7+TCi"}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.5.2_1572254390219_0.09915446255590532"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.5.3":{"name":"@redux-model/taro","version":"6.5.3","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^5.0.0","lodash.clonedeep":"^4.5.0","qs":"^6.9.0","tslib":"^1.10.0"},"description":"<h1 align=\"center\">   <a href=\"https://fwh1990.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@6.5.3","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-v04ZQiClG7LrWPrYCZ60DeoRcH3e2l4xq92j9ibi9Fcggrlz+6SM+EUxZbcJRf6ymS6X23SnEmhppkP6eDJecg==","shasum":"8214636b36138cd27442503562ec578d402d6c68","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.5.3.tgz","fileCount":58,"unpackedSize":75919,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdw+s3CRA9TVsSAnZWagAAbJIP/R+VEOnrqSpWkraYiYmR\nSmje4VVJgIRz6ozlmCW526rz5wZCahIA1floJ9XTCY9XNNm8tNfV1ZiWsgDX\nNeWzxMcNkm4zLbvzpGVL7+PBmH4VAaoIW6EiULn9uSzAKTyymbb1HQGCV1qy\ntny+eAGfe+pBNOdWoxRxr/R837CCRil9nAtW+Wytf0qzuto6lVjtUZ2xAFwU\n2GApqoKYi2EiBayJ7dv0rCRD4uPxkZMrF/oKiuNwZL8fco4Rs5EF+soGbBL4\n0kfW393z0kRWYl0LDNXQH46PN+x0W+OLhKOY+NJIHNSt72bu8xj75odoFGw8\nJw2gMtMBQKHpkvBqDUijNKN3lYrFlUEAvv7oc4VEaQAfgcdyY+3rKvnQdxPP\n4TXPCo564xOgL9DwwyQtpTW9Y+enBadl8G693vLv6zGMSRk+7mXcObRBL4Nn\np7q022ayL1cM0t7zScOjsbcRriFjd73FMALvpenkYmeTsL9r9E4Mwxli0HSE\nk2wLxihaouxtvsGIGrlsSlLjnKSns8Z+nFw3Yru2JWVhY+CMzD1nqBWF8g3Z\nSlTELZkgJvfHET9b6jPiWoMX0digN3IgsE0Uqe5/fgzskaSyfZLwB5xrPmRZ\nHDks1JuGUI6J1SL17bozD70zHn5FMOXtsud0nXLFslBTbJ2KNnxaPJRhffVY\ncSE4\r\n=R0Ci\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE8jf1dHyyOovORN9wVumKcImvEfaXtis736nS8VvfbIAiAr9lQiW12eq+iG3HQCEwcES6BDXzXvwkq1d6B9i1UxlQ=="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.5.3_1573120823010_0.67374170779484"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.5.4":{"name":"@redux-model/taro","version":"6.5.4","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^5.0.0","lodash.clonedeep":"^4.5.0","qs":"^6.9.0","tslib":"^1.10.0"},"description":"<h1 align=\"center\">   <a href=\"https://fwh1990.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@6.5.4","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-7NpPycOid31msO9mihwamq8b397L9W78UPrgcT2WbCXfbtguaN/gcc5kMqG8g3nqPM+x7f+HZN/JLJK6zacucQ==","shasum":"e86d28ae0758715696f50e2488eabebed71425fc","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.5.4.tgz","fileCount":58,"unpackedSize":76235,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdw/AVCRA9TVsSAnZWagAAwiwP/1Kwqb1UBwYErZ2U92MU\neQtDCJMiNqXsxXhdYBEQiQUw3DY9a59gBDVHpkv04u3zIk1aHoTaUWuDqRMS\nrU4JznxyvIixjSsUUg9qyA84cGw4JMSLoaAKxfR07sQaTypMlqkJzmXTkLU3\n6bs21oOIufwMSXbtsr3jXHAyFH+TMUplGG1DKsVXo0woCAWVmPe78ZbTkYzC\n12HnVFlyUi5B/jNMRYsuJg2TTR2mzRI4HY52+gOtyQpYK/DihuyD9H9LImsS\nFjol1Bqd2thHQWlG0FtQiMUTCMzCIDG5GcFamrDTa/uiYaf4OYg6N7RnqjfS\n98kasaOyMV+VlciJgIB/AlCU8DQQKeMncPZz0HzWoZwRHfcZ/WihL2NV8N9b\nuXJ0ZICRweSnqjuwINqsHM5tprW7OhdLHOj75Q8ZnpPmQRf429gBMuSP5rG6\nmOM9TDUEtURzn7/OOOps+QaPYft8Sc/RfEPpvNkV2RqqdNQ0URwRbq5yY+NB\n0uHl0hxCFiF80azudqSpN3eRM1SY3D+D6YCEKDaZ/Ciimp67d9TIne8WdXxY\nI7hBNZ/attI/DecJ9dLhSNM5LFf6nJuoahWs1yq8zfI1Xkfq8ArBf5ACNfFg\nZ6aMmRJ//mfPHWEKEHgF6K1q4DUpNZXV8CDy0vWF7i3p0SC9sSXwnDypnUdr\nmRBG\r\n=LA0u\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCLCmJzjfBiBtUZ8XVIsG+dFOActwn/90+NKObp0oxM4AIgNk8sMvMku3pU2PWOJwiycj1qXUIS6LkTOsD7bHmo50E="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.5.4_1573122069121_0.39680649846682425"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.5.5":{"name":"@redux-model/taro","version":"6.5.5","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^5.0.0","lodash.clonedeep":"^4.5.0","qs":"^6.9.0","tslib":"^1.10.0"},"description":"<h1 align=\"center\">   <a href=\"https://fwh1990.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@6.5.5","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-HcW2cRIXbsf4gRPvGt0M0UhLYojAJbPI3eor4aILk1r8P7bWjZQ9+XFfJHX2GT448MpQrvCN5DVUa07rfZu4TA==","shasum":"132ce12adc5e57f1e804ed034c33dd9c3cd90f5f","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.5.5.tgz","fileCount":58,"unpackedSize":76651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdxM9zCRA9TVsSAnZWagAAoEwQAI9wjAdvwj/fYhFSPi5P\n9AZ+pORCAwre2VaRaGQxdeVEFhAW8tQYqiF46S7mMheAoxTNLGd8Fl6pnPBR\n1MzVJlCMj/3RXkrxu6spyK6xBZUe35JFNTfoAPdtWMaoqfbi9Uhwo7OJZz2e\nybZNi63/l6uXpFtbYPcTcruiWmQQwnbNgwzo4U7g5vejHcsQc7gatlUH6ivz\nwhRM93hKUa5xQ3hlzDqqaVQN3YF+qesPT/YGqp/apD6DV0EYEjJQKEVObolu\nFJBt6g833EZEyHxh+E7vwIm762NKraOLprN/BJYh1GsIkxYNsJ0iHkh6VvNV\nK1Zk4+5F2SzYxhHZpuIjDvnGgnoKqPIGbBQawbwEVb7Frvn8skAHdxHbX3o0\nWTvcwL4DmlQBk2wAn1hPyvxwNWQ25AA/WLyeh/YLaXsXkyYjga6/bY6HVMPu\nmcAwb73jmzSoo4LrZyTZWxfb5rhT8bJ1zjSzaQMGWBIskIcq6pEmRmo+V/B0\npeAlMLljirKySbM/DET8B7XO9tI3+9NeytCFgI4pLm6oPp7uOSGpzu0Dpq9E\nXsJdpXicMY4dS6bYjcVS2GT3vajS7Ifvt6eSWLKiT3QLdUhIIG8vkaDkHOGV\n0VuzTiz4sydjjS4drjfL2ajH8/CqBdUhzFSaB1j0O35nECFfQ2S6y+waoq7b\npWoK\r\n=vLpN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF3bjasDulrhZ/oi5VW+Zic/rtCBqZszLPJVYzZbtP16AiBUDjWawAAe7mWM75PhlsY94eRX4eKzRSTvU1e7AOcnSA=="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.5.5_1573179250748_0.7659613585527463"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.5.6":{"name":"@redux-model/taro","version":"6.5.6","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^5.0.0","lodash.clonedeep":"^4.5.0","qs":"^6.9.0","tslib":"^1.10.0"},"description":"<h1 align=\"center\">   <a href=\"https://fwh1990.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@6.5.6","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-8myeVwF/tHBbf+JEGynee9u96s44lrmOj5EXxbxwm8c1PkDD3oknS9bIRD5ih79cYnNCI8qmvcyUWAbLUgxjng==","shasum":"ce02ee14ac7ebd139e3401448b7d1741b423cdf0","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.5.6.tgz","fileCount":58,"unpackedSize":76769,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdxNXZCRA9TVsSAnZWagAAo8kP/jQgzrflZwt5LHB7Cn+A\nZRDyCvQ9KBHPTjFcLH3DeatwVsrJC2uvG+Noe0qJkXEuF+EfPQDt/7ipEFJ+\n/kTHbGzf4vWp+ThpxhtcyytHDGc/IX9Mg7RiS20gcQboXyyUpUvOhqtHzy77\nQjNpc+oEP59U5V86Fl9t/XupcMrHLBugGja1PeAHc/2oR+KfPBwm/02HidJp\notMYWOfQbDehmM/gencTfitWOCiKMBkv40wm5Z14ROzxWv5nA12HRDZevLwY\nrPm3p9QYYB78wKfV0/auXqd4sp5xOH4dpBhBIWlgk1UPZBJAaZFTPbty765Z\nwSJpvP1EUvj7xkoXJ5XaGi+pqY4CxqMQfnO5SDVTZsmTWkdq9uH3d+UEjUVi\nb48lB0kYr5L1RTqHJd35+tnzNEz3jlV0R5FzREWc7UItv/Q7nM+LP0AZ07GV\nw7rVKxzxarUlzg4kmNhQ59bT5WC9Z6TxbUBcZqoMyDcT3WaRolwWFB55ynSD\nhll9p0Vm9sAmfQOMDlhgOjMImcgZYFlJLMzFlsW/4igWN/RGOKk3omlfs7NL\nXZlRUW/Q85ZdpZoVZy+kY0ZoAn4vOZx+5RWfRnUjj90FUHvHpW5kWWfTh5Uo\nbACcJv3T5/nPtpXasHNXpLYTjuNP/iExto4ULdjRR8ciqQTxjG+T7fPHNZVC\nNnMD\r\n=YN06\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD6URvTu3GnIJG+PgFbraNtdvWMNv0NGJiJNbEl4cR5TAIhAJDgU4WPgvc73L0y6Okp2vCYkwh4lrToAZpWW0XIF4o+"}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.5.6_1573180889115_0.6092907268704473"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.5.7":{"name":"@redux-model/taro","version":"6.5.7","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^5.0.0","lodash.clonedeep":"^4.5.0","qs":"^6.9.0","tslib":"^1.10.0"},"description":"<h1 align=\"center\">   <a href=\"https://fwh1990.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@6.5.7","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-zz/LrBmEYirdGCc74Rxu2ZuYeT4dEbSHrxlNWN2KPI1PKeLs0cfeOOtLLgKLdQM4yNjMuNliZqTlt4IMyWMatw==","shasum":"67cfe5eed5b1bcd7e222fd00aaa544527db47685","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.5.7.tgz","fileCount":58,"unpackedSize":76651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdxN3cCRA9TVsSAnZWagAAZ7QP/3qdTtU749KWpArwXf1b\nOTnnK9FCI+VXdQIV9oPrweqbKDLhXYdTmdNy/ZNHVc9mrpyIPS5MQcOZX5V6\nt6IJQfU8cqslpIAIS3L+7k/2bNwM97v2AohaKr2+FOhdqG8PEBs0wiKkPXEn\nXii1zlAi7cWSWvdO2Gt96fg93t92Pn5KLZaytGH+eb9wNNj1lclkk4lsAnon\nxQswTwG/qgM9Xp2xbtz1A0aDs8qbCJb6pMTVdSPLZOlQRjwZm4ziMWkovigS\n+H47gTAM3Kbp4/La71TJ1AekkMm+Utw96muq+sQj6227yWCBRQquo8QPv+c/\nLy6iy00zLbGXVLiMO+CAf6Dd+f32O/w7GOKj1WQFWYe0Oi9M4EXgcvmzDnyx\nIDpeDKiecit5OtVKJFWaeYOUDrJDYYxhfuOjPjV54OZvHIaeRXCMgjsZTtIK\nQjqS7IuonJJX4eMvA9qGDm5fpTqIVGkmS+rF+xEv3AVA2rGxoIbMLBGlSIaP\n2wMcLivMEcjs/riU3dfXj8RDUYQ4EA6/eKgOR/oJ4iOyobG2r7B9Oljaerk3\n+WPGt7F38AbvNHVYVkN7LsfbDQWS+L5Fr28P05fF1svwxvV0VNhadz0tZNsQ\nQHQFUsFH7Ic8Ja1ehUshLL5jLOJmVXGAhSc7DAFDLZ4tyLWv3pAetjwPvHmT\nBEo2\r\n=kpgT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBNarwqF+sC/Fhr2ChERi+4zVUGzdreaRCQNsHlHDqHQAiEAtBxyzJbAMg5N8PSCzIJqOQuI8IWCauMML8AyTxmRBdQ="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.5.7_1573182940307_0.9724485643669134"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.5.8":{"name":"@redux-model/taro","version":"6.5.8","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^5.0.0","lodash.clonedeep":"^4.5.0","qs":"^6.9.0","tslib":"^1.10.0"},"description":"<h1 align=\"center\">   <a href=\"https://fwh1990.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@6.5.8","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-qfynNS8IyudInxLphrZ0x7jJNtjtROvYm3dap6/asoEDFaFF7WJIN2LZ7yqa0x8aD7x2yh1erQLDrqJsxc3tlQ==","shasum":"a24568e6fc11f844d4515771f9ac58daef81b11d","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.5.8.tgz","fileCount":58,"unpackedSize":76662,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdxN+FCRA9TVsSAnZWagAAKIgP/1Myc0GBTRj/v2DRV/OE\nAvsN9l868eovXgScBTZg38GmyKrmwbEaTDjETKcetdFAFZ5zTDzXW8bL11xn\n3mhNsL4L8aiCgGjDGxwXslTVacp939iYjVTGyNeUOtqgBpNDfKw9My4Gx9qA\nsM7LIb6Jw3VZQsup7lUV01Tgk0LBbbLelAzP3FoFwNGb0lhf4CF3HeOlPjo+\nuhmlDTc6CoWnXqMobAw2qLVMF91CbzB52+eF5SBSnnHnOlUO3DlnWlonNG5h\n9elnCUqO3g/ovnQbAVckK4DGx7SMGcYYsOXTbl2R10PLjIiQidm+HXC1OBm2\nUSovmcpyzl0fuEP+3aB1C7LT0bLmMIKvI/EjNWuGbbPkuxGt3yZtP5ZKG+FY\nzqUre1u7C+7cRR3IjG/Mqor+pzWyFVR3QkP4G++nT8KCa5adPvyGlb1uwRRu\nYaCADjGFMjFd0cgECLK283Dk+mC7mpJeASN/LdfL3zCbSFIotBKf0WFqeTxU\ngmU1R2hq5xqSH7RmvyaZ+eQ3NfrheC6K/k4d7Ak1Fbwd45Nb5E3BCzwQRhyk\npi6YVC+HReIynOVMf7zBL69K7BCwCasdlgKVn5sQ3ULsFwDUHhWbenlsLbzv\nBRGSjACTCbjN1wzzDwaOUfrfzk1uJ/ztdiYoSSeiFO9vANZBuZTyC6HtyOga\nXauG\r\n=zI/0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICle59TmPaq+KjncmUxM9TZ7BPf11wf9gpIBaPMXAPTYAiEAu37rRIb/EW7OwmzuN7Sb63xidnC5dgm9Baql7yVjFbc="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.5.8_1573183364737_0.9718632738740929"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.5.9-beta.0":{"name":"@redux-model/taro","version":"6.5.9-beta.0","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^5.0.0","lodash.clonedeep":"^4.5.0","qs":"^6.9.0","tslib":"^1.10.0"},"readme":"<h1 align=\"center\">\n  <a href=\"https://fwh1990.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\nRedux Model is created to enhance original redux framework, which has complex development flow and lots of template fragments, and then cause low efficiency.\n\nWith typescript, you are required to define type or inject interface for every action and reducer. Additionally, it's difficult to build relation between request action and middleware through type definition.\n\nFortunately, **Redux Model** has resolved the whole problems. Simplify development flow, reduce code size, smart type checking, and so on.\n\n![License](https://img.shields.io/github/license/redux-model/redux-model?color=blue)\n![Travis (.com)](https://img.shields.io/travis/com/redux-model/redux-model)\n![Coveralls github](https://img.shields.io/coveralls/github/redux-model/redux-model)\n\n[![](https://img.shields.io/npm/dt/@redux-model/web.svg?label=@redux-model/web)](https://www.npmjs.com/package/@redux-model/web)\n[![](https://img.shields.io/npm/dt/@redux-model/react-native.svg?label=@redux-model/react-native)](https://www.npmjs.com/package/@redux-model/react-native)\n[![](https://img.shields.io/npm/dt/@redux-model/taro.svg?label=@redux-model/taro)](https://www.npmjs.com/package/@redux-model/taro)\n[![](https://img.shields.io/npm/dt/@redux-model/vue.svg?label=@redux-model/vue)](https://www.npmjs.com/package/@redux-model/vue)\n\n\n# Features\n\n* Less code and higher efficiency\n* Modify reducer by MVVM\n* Absolutely 100% static type checking with typescript\n* Trace loading status for each request action\n* Support hooks\n\n# Define Model\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n    increase = this.action((state) => {\n        state.counter += 1;\n    });\n\n    getUser = $api.action((id) => {\n        return this\n            .get<Response>('/api/user/' + id)\n            .onSuccess((state, action) => {\n                state.counter += 1;\n                state.users[id] = action.response;\n            });\n    });\n\n    protected initReducer(): Data {\n        return {\n            counter: 0,\n            users: {},\n        };\n    }\n}\n\nexport const testModel = new TestModel();\n```\n\n# With React Hooks\n```typescript\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    const increase = () => {\n        testModel.increase();\n        testModel.getUser(3);\n    };\n\n    return (\n        <button onClick={increase}>\n            {loading ? 'Waiting...' : `You clicked ${counter} times`}\n        </button>\n    );\n};\n\nexport default App;\n```\n\n# With Redux connect\n```typescript\nimport React, { FC } from 'react';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nconst App: FC<Props> = (props) => {\n    const { loading, counter } = props;\n\n    const increase = () => {\n        testModel.increase();\n        testModel.getUser(3);\n    };\n\n    return (\n        <button onClick={increase}>\n            {loading ? 'Waiting...' : `You clicked ${counter} times`}\n        </button>\n    );\n};\n\nconst mapStateToProps = () => {\n    return {\n        counter: testModel.data.counter,\n        loading: testModel.getUser.loading,\n    };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# With Vue\n```html\n<template>\n  <button @click=\"increase\">\n    {{loading ? 'Waiting...' : `You clicked ${counter} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n  name: 'HelloWorld',\n  methods: {\n    increase() {\n      testModel.increase();\n      testModel.getUser(3);\n    },\n  },\n  computed: {\n    counter() {\n      return testModel.data.counter;\n    },\n    loading() {\n        return testModel.getUser.loading;\n    },\n  },\n};\n</script>\n```\n\n# Demos\n\n**React Web:** [redux-model-web-demo](https://github.com/redux-model/redux-model-web-demo)\n\n# Documents\n\nHere is the [document](https://redux-model.github.io/redux-model)\n\n---------------------\n\nFeel free to use it and welcome to send PR to me.\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://fwh1990.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@6.5.9-beta.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-YkJSSa97p0AjWx8EZmA0WqOv0iUUpNNlIRhUc8Fc+eF8sBMjJJWNsazJh5J+fow8R2oSQpnjMXNUzJNClnSIyw==","shasum":"b95a4eea7026b9424c21dc0218003c5d69bbe7bb","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.5.9-beta.0.tgz","fileCount":58,"unpackedSize":76649,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdxRU4CRA9TVsSAnZWagAAbl0P/j+EBSGEk5jxbg/iDkR+\nxed63qHaX6ES5eEDOWbWfqSMw5c+Ta2oRjq/qFc3K9DxZIG8oIWQ18/t/lxA\ngRSQ2FGwcdud/hIX2Ehmq46DyJRgqSu8BJ6PaCDSOXUOp8HLBI+6Q5dVGFUv\nTXk4ycRj/V9Cx3VZuLGUnwViyLKQJIpOtCVk+X8OWgtjgvJPpW/fdTcllm3w\nB71j5uDHZ1MvYZAcuX1pUDw9QGOMa4HtZcmUSqooKxRt35R1q/Re9Oz2QHP6\nEsEnLaXHBHjNHTY/mOSM9TuamjYTDdECkQmOXkw+BmIr2UYBAuzMMMYnyKz6\nak4+NZqqoYAFN+dyKY5MQ6uGaa/QKiho5C56BVhCvQr20w92/RwbuD6lbLEQ\nKx+77UlS0nPEf+uid3UUU0is1boBmPm8io3ciCp6y5KSrIRO4IbNA3NyxvmT\ni3nkaYiWTYj97yDNO7zxAV8uhi05/U5XXQ8lzvQTYopP1PLmizrOVkirc20H\nYJd+1Geku/crFxXXwWrxmyd1dqfnAVIu62t29sS7uaPZP8NpWVxKaGokB9kV\n8NqDKNkl8pesI1piyb9csCHLOQw+KKnws0xmxVa9LDw5krFPYm3RaDnS6r7S\nLxGHO0loV+/7PW4Qy32RlMJxM+LBMXJdCcLmy4T4NuS+9Cnk9bZDr0otPFPu\n5t7+\r\n=axJ8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAHurEwTSD7DabBSKoB0mFE1nYDTqE7bJhta249muiqzAiBJLxdeHv8Y+eJSUFcWDc6Q0rMADXsEZPObd9MlWoXTJw=="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.5.9-beta.0_1573197112327_0.8332435580492956"},"_hasShrinkwrap":false},"6.5.9":{"name":"@redux-model/taro","version":"6.5.9","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^5.0.0","lodash.clonedeep":"^4.5.0","qs":"^6.9.0","tslib":"^1.10.0"},"description":"<h1 align=\"center\">   <a href=\"https://fwh1990.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@6.5.9","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-HUc1tU82bs3euDNCYrJAb0tLNMj+8yh7fzQFOH16wW1tqxv1s25KSTuS3JJ69vwfyTw60sGL3T7pfk3FySMOeg==","shasum":"35660e6fda8d4af66e0b9e39e59432ee2e4a2f4d","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.5.9.tgz","fileCount":58,"unpackedSize":76642,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdxRZsCRA9TVsSAnZWagAA1KQP/iXeKKt+QQlWuguyCNXd\n65tEN9Sh7SE794kz0014P6X06YzecqM3jfj4/pdn8egYb3kmvf77J82t1UWP\nIcVipWrsL3XORj0QNT/rqK/Bkr85VTo2NngvmYf8HcdnmpuuAMJU6hGRgXmZ\n+o6qJEm7pu3uHCn/f3tyRL6+n6VQkunXtgd4LxyjSWwGwZoDYc8OxZ8kMpne\nepGYS61ByZlQO8M9bNZ7dl4undUygnBHICAJwfXm5umu+HustY1ZHqw4WOuM\n+lcSUjJKSDkN2/WmpA/Or1mePPUy3Aur3OWpjqT8Yf9kcMrADU1kbqiwGLsc\nLF9x7qCQTKPGmssaG+zoHRUgp+Gzn0B4a31gzrYoMgq+bwGX7G3U9KVudre8\nSqvCMFgfV9bMVeZPTaa/Ji5eC2qdL8PrU/8N4K3ufKV9Ey6wlJBKSAycV1lb\n6T4nHOrJIKT5CxBaSTWyzx58OmL40NCgocFRhfF7I8L0AgLQdBpOttBRZrIK\nT1J0/pNpCb4NcDKS/Hgiw958CwkNQkEgdRR+/kNQom3q7S8n1c5gt15ziVmL\nei/gwJNxD6pH2JEmYNizATGK1QgCkAP/3b/2H/5bejtLa8u8Ely9E8pCBVge\nh6qS3AnCO5kwBDv3n2w81dHsBb2ezxJwy2PAN200LzG5cGAMO9fJmHepXXYq\nCm6a\r\n=z2vs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD8+0LIANOyAbSUZol/J1dEgFSSsbxTIjdBS8VRPdsuPwIhALqIDg5LwKxajS5UFuyli5YWj0QgtCuLu8ibOQKRYZYs"}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.5.9_1573197420218_0.1769543713247339"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.5.10":{"name":"@redux-model/taro","version":"6.5.10","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^5.0.0","lodash.clonedeep":"^4.5.0","qs":"^6.9.0","tslib":"^1.10.0"},"description":"<h1 align=\"center\">   <a href=\"https://fwh1990.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@6.5.10","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-B3GLg699v2q8iE8J06w3md2JvnzxCe3tPo2XpyMxN0iRTJe7U41vYG/g3LWLKU7fCMILZbFgH6kLQfELhyOCow==","shasum":"acf7df093d3e54f3d3bb9321c2ea80dd52fcb711","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.5.10.tgz","fileCount":58,"unpackedSize":77112,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdxTtSCRA9TVsSAnZWagAAETAQAI5lWd1dcU6UWf8los8/\naSGmr2kIGd+aQMQP2UcD7arHKvcOqiKYkwvZu88SViutjtSzCKAt9PsU0W30\nfncFpC/GN7pRS1l6kNr6Feq/Ms0x3y0x8XSHyWR3kGx1DN1lVZ4UIrikG0Bq\nqVayxmf9wlt6Gv8zchKsPf+14R5QrMbOukmafBVskF72UA1iUIzPPRUEO7hy\n1MWQ9fhQYmb4gBW0Via3PDZSkNVyHq3YgBlZ+5co+fEPHDwIIng/C70WrcQn\nQwGc49TvFDKMX5u0WcYjohsrMCgz3meBSOMoGc69c8IV2mrWJ1GWFreNhw3z\n1ZEOqTBcSFRwk69AeM1knS3lS4D+s5VYIzCp+F7FxKraElS+AdpcQS1HKXfQ\niQNM9cUwqRNiOZTilYu8tc3aSi//rdNHTE75o3D8+59eulvmf5C6OVNzTIxf\ngEdTlcro/vLE0Czqy9h3bl4Pk0FSBXXOqwoTzCzOPz7trETUzbkwQ3onOZDL\nixkl0Dl3v0cVwqQ//HAXl+5ZAlGUtwHFyvj0/dyNaBI19i+cjKXJoea94MnW\nYFrPciOysKS0fw3SgHDeFt7sq1RFh1ZeBoaxZn638XkA6XGAyGdwEvHjIJTi\niCqIJ8Qu8+D07P+nHg8HZnX5OmtAxkjKCoVUU8xbSLHvJPwUQp+0yW+9lZ5a\n5ina\r\n=BbGP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIClNM5ggh67YmGT4kyIxrKcJQfZcKwQBzvcQDmrSXD+JAiEA5D3DBwOwlTNOdpNb8IIE7oS0FG3Df8BjCqbGwD5RwmQ="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.5.10_1573206866046_0.6200552646902948"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.5.11":{"name":"@redux-model/taro","version":"6.5.11","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^5.0.0","lodash.clonedeep":"^4.5.0","qs":"^6.9.0","tslib":"^1.10.0"},"description":"<h1 align=\"center\">   <a href=\"https://fwh1990.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@6.5.11","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-jLIpy5jammFL/HV+lvfOwRZvN5tL4kbMdvltBq4a1BducJ6n6qOeaoKLQ4eICTgWMfYF7xvDCC4wf8ZaD/hxRQ==","shasum":"a3f1d9b4423e69f2dff0a7b28bbd1fa0207e8605","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.5.11.tgz","fileCount":58,"unpackedSize":77238,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdy3j7CRA9TVsSAnZWagAA/uoP/R3zgWeeJ6oCzh6arIYo\nVyFkbH51GSVZdSBwudZA6YQFmELeSBW7ClwKkk4ju7m1rrlAOPAZsGhnnOtY\nnflxtadanvEgedI30bedmHJir/cvJo/aIrZ1gIve6nNUwMNV36VtR2AKxCV2\n/cAdZrlZlHG9YSTswZUiEmpj7M+JEvSF5RbG46xYMtOHsEchIqxSnitsCHKN\ngADmAKUiMT+UELHtCjmE7DexwkZc6d+/yCuc2BIaC6OdA43nGhEgXW39SUXn\nbTQT8HPgLsDxZrglk7YL8EONpIFMSm1tciAH2ebA1OvJ49O3j8OejT3AvPiJ\npjzKSbyFV34bEcRMGpwdI1xKn168SHMqNUNDBsIdfT5BVAF0gs6Cw7Q0D1L6\nFii88gNev7Kz1KBH/QYSyGoaR+K7j9W4lLw9N+OPnyXilYtYM9ea7jQ0MUsY\ngB9/qljSVUe2k6DopAVXoZvBwSdp5jEODSOIpx4EChIMA83efIyLUs9k/4ls\nQqvYWQcYNCNiW6qY+RuxF1aTWLfnX88d32PYznAh6XsocTbi9mDcZowvnbVZ\ndKKuF2MZ5qXDKvAR3ZLqh09es+g1I5/E/nkIi+BMdoB+1Wa+jwTaaZ7/o4LI\nBT7kqjWM9HFwe1rntHGIYZXFP8gOpEfaOSo8xC8sNIhMXA0JhDhdOixlBR4o\nFiZ3\r\n=b6JN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGL3v5safoTFkqSeVkQsSgabbnXOtkPvc0OnuPdytsbJAiEAm3QbKSQIHxvNfcfgJcWN8DrJSvWE39wZBJR4nKExFc4="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.5.11_1573615867001_0.9177403958962553"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.6.0":{"name":"@redux-model/taro","version":"6.6.0","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^5.0.0","lodash.clonedeep":"^4.5.0","qs":"^6.9.0","tslib":"^1.10.0"},"description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@6.6.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-98Fdq8CftrTaJr58XKFBJ6izcVd5d0bFrLOobQeJykL9p1BaKttsJDfdnwYZbQ6Rol19MeS1H7Y2htpnEbSL9g==","shasum":"905a9ccddb7dddd64712a2f646e0d92bf50f6dda","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.6.0.tgz","fileCount":58,"unpackedSize":76293,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzk59CRA9TVsSAnZWagAAPKUP/ihzQhUX/ErJEo/W4Mew\nvyVBJIni4BlJk6F7Uw0DtsEmT6/AGk485JS+vdPyjKTVorPl9FBGYC1fJdnF\nw7fUQ7mAcQ0fUy5xAk+Xln9wBCRZMVGyS9ToHhnsD+rqobMS2JboVEYQzwV0\n0qJpDfk2KAw9z4h1aoB+POyp0x9yNUaklQW9oWkXtcd+4rLxNsHMRmWXy1vh\nV1rTQaE2B9CDQL0Avti0WIa55KQevDNuBAjMK8C/C1RbakPAtO+PEEvWvAlW\nM8tqJH0zJEEqXDGWJsWp3spkgS4pxazqtx7eAcL/7nbniLIRCPpxWkz556B8\nMz+1JRZTt2XpViQ6HyZ0KKEja2i3eGRdLK5fRWU+wG79miXgTT5k4Xvx0J1B\n/3AJE6cay6SZW3BHdUFOUcS5dyEjd0XmeoWFoADeDsChRI1Br39pONKaPN4E\nSlblUFm1EuI1NhqEm69u47tYmMtwHt1/JxekV/oQXG6fbJlR3vUAtthOv0AJ\n9I8/9pfa5Q1AllO5V6lwB36loCYA1r9+PKOF9swd0pG/mfWpnabbQcA13NJs\nBn/UBvYjJl8kgoCZugltw7C7vjUlOlFMh0/K8Fi0NxxUD0Ca+j+mbAb2/khM\nsanLs7lmYUdJXciPDIYY0rwK8W6bv+TLWkrTSdcOCfLAx/swCsOTPmt+/moO\nB7tl\r\n=9+g/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFpjszEdwVaaokH+RnU4ZBp0gx1vYmsTeYjQqw//UJ+OAiBN2OctfG6DqJaa5P0VGdvYmDFuyibmk8RVsmlMH6FKwg=="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.6.0_1573801597375_0.7572873659175594"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.7.1":{"name":"@redux-model/taro","version":"6.7.1","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^5.0.0","lodash.clonedeep":"^4.5.0","qs":"^6.9.0","tslib":"^1.10.0"},"description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@6.7.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-l4IbD7zSTw/AwgYhDUS4IbCUkPE/vKVZAe0t904qxDvNmuj3k3OIDJr/4QAwermUHHmruOK4AZTEjLu1hMXwuQ==","shasum":"206b093d61dfb6bae2b1477605663c9a0bdabf90","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.7.1.tgz","fileCount":64,"unpackedSize":86923,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd255aCRA9TVsSAnZWagAAa1wP/3ajo1FigQGfSso2mApj\nsKLnei3JjDQouUernl0DBx3/kujkFwK6zbC59QkSGQe+zSnzZm7McxHN4Ez+\nYqvJ3CKfKpUAL7PSi7YBVgfJppy+V58kDoW8bUIlyLdu0g/ovdYvcw2jJHG2\nooEr2Yd1ZiSUgfcUS+quvscM27p/Qf88j0S1GztvKhWyJOkn31PQPnexaAc/\nT2s/Wn51mmAr/0igbGiwjzrQqJs++nRAsoYY+ocjiQhLBZNTKHnva0FYH0pB\nCyOgYIdabfWIgVG9qL5ZjNPzgXTi1UOAPq63RNcZdnl6hrOKbTBzXBJ2t9Lr\nkj0bY/xNyxkajkck/o8DAwBaU9iD08V8SIuHrDGkjCzXFk4mZtadljIxBT81\nCdIPuNCPppoQsH1+mg+DoGgYyIDm1BlxF4MlDC4WC0ZTrZxtVFrzI+uoHuAY\ns41SPC2Y8XcKvE+vyHSoNl4lwH2050aaafHnU4aTWKwz3V8N4R2Li5YnIk+R\nlHnM630uD8ggvM+B/tTvx1h9A+swN5EEjrvRD6j32JUvMkMuJwkRAlv+3Ghe\nBkeLB9Jaz5y9ruwBGlX6MNp1Q5wzqZzU2vBfRV4TLJvHpkdhCZBU6SK9PX1+\ndI7GTjwUBhwmjZlLJPVkoiZhOnirvV4Vh0zpX7IxtT7CrSJjrlFnUqg5w6+U\nZgQ5\r\n=a258\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDcBMy4f2rr4oP6ALgi0y4yTAE9k45Hu2oXPg0ewNwIdAiEAnRR6CQxZ+LBchkon7c2F1W3VCswqFAEuQFRobVet/FI="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.7.1_1574674010545_0.17424383836393798"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.7.2":{"name":"@redux-model/taro","version":"6.7.2","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^5.0.1","lodash.clonedeep":"^4.5.0","qs":"^6.9.1","tslib":"^1.10.0"},"description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@6.7.2","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-q3t9a/83oeTtZ6RR/Mnig1OF28YEVOOintQTdJKdFNzU86DP2URoFb/TgtIxCrwuFxKiJ9LoxwIxnu5fb8dV4A==","shasum":"933994963b4d3e2965c5eec3356c57b6f34e2e4f","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.7.2.tgz","fileCount":64,"unpackedSize":87061,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd7zVyCRA9TVsSAnZWagAAiW4P+wdsY0dlGGFBS7pMhTDZ\nOBeAWN9jwbVtiNQGYY/U7tvkqtK5Tm2LIPmWnXAC/MbTyJbTCsDmVDPVqAm/\nFVOARL/tyKCDQlNkfR7B6u8TnwFrrZnfhwUNHnRoB4V/j17YxCJbFGL+1NBh\nAb6rUiTGinzLmIiguEZZl8Oq/3gSzGML9Y/MD3P8J0L7U51UYCociErA4X0n\n8SIFRKp/cZQb3zb2w/O52nUIGEZjLe8u2quQX8iiz+dXpcw44iPnfufV/Nvw\nVP1CUx8PA6X33UZXgeKy6CGa/qHfrC8eT20AR45KsSgEQXPuv+MIUjLnF5rq\ntp2cDTQCBTiX4ODGniRlOs2V3xO/c4YwmTr9Y3rZtzIdun+OatCbNrR60gRB\nrSx75HBP//evJ8MrcIRLmwpZZByW42Lk0RHkgeuia2WS8X9MXLM0I4cy0oXY\naoqIqF1OchluBTgGQvlztID3d7LIGVu2x5ov5v4TmnwlQrSalfla7I6SBDTf\nvgxJ3Wcmaz8JDP2fQilWfRH+HBmf/CNK1tkvp3V82lUWm0eKirkr1E4fnliz\nikkZNYsSTve+Hg6mjYmyUOoUpRWMrfJSpBmm8A3ADQ9vpxXnOlBnl9wWtETo\nbN/geJA/lkswAw69NAyX+KB6Ole9y9SsHNWlbmITj2lq+FV15VRDxZ9YeXDE\nRVon\r\n=c2EG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIChXbuCU1auBae2lA1kQBj6qZ9xSN8nRKso3nBkDXxDUAiAJI7i2LZ6ktOql4HuYVUr19JC7pj1pt4TqIYyW4pY8DA=="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.7.2_1575957874228_0.8543442375705765"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.7.3":{"name":"@redux-model/taro","version":"6.7.3","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^5.0.1","lodash.clonedeep":"^4.5.0","qs":"^6.9.1","tslib":"^1.10.0"},"description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@6.7.3","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-rBCoRbIShW8Bqwvxhe8pn7sOScnJ4/c1G76GUZ0VuJCUSPNce81/0OLDA0KFfCrduumxnCUAvuE5i3DBqi9Low==","shasum":"8b23812ca614d97e3f16ba3e0c0af74044b064d3","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.7.3.tgz","fileCount":64,"unpackedSize":87127,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd72H7CRA9TVsSAnZWagAAoQ8P/1aUN9TyOLkR0+SDcm47\nj+fdEnF383FA9BIMb1H0taaBd2BSPhX4yPM85TJdaMP/71g/eKv9DlGtHZ4O\nQha+NW9miiDzt1itAs9k4HZB2fXy98vX9QFlnvePSJzkFiS5WaVZOakqbB5t\n1e7gKrwsLZO0y1Cg8wZgnMAVHE24zmqQgCwtxJA9u+s1gYVtZCys4heJVEb5\nSW5uCGNdRKmOMTwfADcAlC6aUMgUUHmUEbSHd3cYqeLynqrRb0OSITWe9MFU\nidQq5tDv7lOJ2U23tm+H5JRFQF4TOQVCLBvufN668YHlUUPTkENovDnyktG4\nFx1P5WUr/I4w0J8LcQHQthp8aFTZei77jor6ykAsenKRAlFzlFwCDSs9Cc99\nVxQV/V77lek2W+2Hg2vQ+zm1OinyeF8XySPQC/lWL5IoklgIjcL6t4S5QQyD\nI6mD+Y90uy1m90JhxCGQCM1Dhz75898ncuWuXuNzLIxrQf1WL+R/qHfxveSM\nxLwko2NB2qI+lmfXjAooTURHENtS3UaHiQXPR3FnslMWEgxztzlpYA2N3Grt\nBlNrK/U3CuULXZL87GFW6OMBWQh4Wdve+cBLaHQXx0fxlR3idXomNfnym6q0\nRhRmdVyuFlt0ZYCAo00BkIRn/QlAYR+bpjk35xhtqTE49pjAHjcbAmFMVbQN\na+7q\r\n=n988\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICmcw0qRKjCNelnRoe9czgndIJhOXHQ7tor1Wdd5buL7AiEAoxDxYsjaA8CCDA4Z+dq2wof+ERFP8UBMPRsBHEdbkho="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.7.3_1575969274759_0.483747524053596"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.7.5":{"name":"@redux-model/taro","version":"6.7.5","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^5.1.0","lodash.clonedeep":"^4.5.0","qs":"^6.9.1","shallow-equal":"^1.2.1","tslib":"^1.10.0"},"description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@6.7.5","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-VPY0afu4qivLlT01tlHDyORbylHEt67SHUnNe24pf4TM5JUQaOwGqP/ecnPWShOxdvNUwqQoD7JGHF6yih13VA==","shasum":"c31c38f2e402bb9e2430295bb3b4e9010114e944","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.7.5.tgz","fileCount":64,"unpackedSize":87287,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeAsSUCRA9TVsSAnZWagAAWbsQAJ7EMVSgKsY6Y2zyxftZ\nR3bwZODrDjT3z1CagxOa5AC6eVH5UoYzQXU9OySyIgL2s7syI52Jlf20IC7M\ncc0Ck3l7+mBcIGS9zLiDWHn1RGxg76H3OA+DWEvQHOtH3b6aNbPpkn/BiHyv\nmEJWNBCi6RN/hX6Bk+tCM2s/xGVjIbiADr6mM3/j0Fkp26f6c3dNRoKkHB3v\nAlCsH08L+mkmEzXYe+e8c6pEJhbLPQtnyGcOyVpdYrO2k3eX4wrIOBbPaqQa\nqV/ruybtZTxTOi1UNEQII77QkHDwSWBAi9df0PqQMmSOi9rhGxTX7sR6ORQe\n4sOWoks3yMeH5uNX+24vSAV2myH6dZ1yoPLkaEAAOAS5sa9HCrz38IHFuUQM\nuf3+29MKptCq2viYJn+hpnld+l6UNyvfjwrD+SgOwdxwl1XpXR6E3lsDUbUQ\n8yZxJD1poR8XNyqd1AOw7rkSFPtSiREfUYf8kHRArPr6s4Zq6BqJaejSVVz+\nK3maZk09F/l+gCN0Y6UZS4Zz+lIOhrnBPuXxnqm3gh9swC6r0RLzX+JCKaXf\npCZ9a/tBtiy+c0MQgLTncPRK1BY065phhNkv4ivcqc65su4o71o16k8mXhaR\nCBV9uoOjhMpe2uKoGKuSngAyHlsi/TxaymFsGbxHTiD+sZkHAE7DI8n2FmIg\nk9I3\r\n=vlfN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC5E8KxvRNVORtbQfVRc/M5Fnhwy1hY3Iaqs2YsR9MJTAIhALRHeTDiJJvQCe9cpTjP5c6ckJ1uG3y1IK9vB1IZiWkm"}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.7.5_1577239700066_0.16698928668092416"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.7.7":{"name":"@redux-model/taro","version":"6.7.7","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^5.1.0","lodash.clonedeep":"^4.5.0","qs":"^6.9.1","shallow-equal":"^1.2.1","tslib":"^1.10.0"},"description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@6.7.7","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-W0ZV+E1zKE2L7YujX9bzbaUIyjUdDPKc3Z3DwRhxUziRXZOdqeDwHvdlKIWfokZrk4tSyHuvbUzg9TebKLl9Yg==","shasum":"f0afc4ac83269f0a73e3f37ca7bc6413d829387c","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.7.7.tgz","fileCount":64,"unpackedSize":87274,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeAs9JCRA9TVsSAnZWagAAzfIP/jbIUDsOEy+SkxsAkPrE\nLJhPTOTzVucS47kNujwtn7TgMVx8KAQy+XjNuT2gcG2umVE9cfVkM0Ilsagt\n6iNfwX2sH42LbCCz2NY34D2TxDLb9erwuRFtNAhyETTAkWNQY/ShhjOR1rHh\nxzYVnYBNRtYYvJV+uUxLbUb7RwiW44w3ms0Vqimu9BAcf6XjW74qirB+N6Ur\n4qvqOttjcK69Fpx3mpTTDOvZhCwfqSoP/BrMqUZK0cYum1HPevwGKWQXwqL9\n9mSeMDu3uBrIQ3+7LZ/gKoHV8PQDP5MnGHgLQJXZJ5Nt4ioTJHz15g/EFPvh\nvW3s58uRYrSSw5oARqv5aGh4sFukqN4LplyYoz2A6cvmF0fGLGGfURW50zfD\nHeoH6SnUsD8/0ECSe10HwPDLvcy9fZGOQGE1s2MudcBkYbL4Oamkan8qHsL7\nD1Ls07b+1S4gJtzeKDZPXMJim869Ru5rFb+GWssAjZeq9YLP+4xK8MFwmkZg\nvk01XH29z9XesR9VV9jBvSrlk+j37H56FCa0qEDW3ztZ5v2UXl3aFT+eyFBx\nY9dGMJYY1T7kuYBhS4OBoak850QeqQ+awhoWOP1q/PWHvCcxDT7FY0c186Qi\n0AUrzH3pZzA1RYptNXQH87e42BqU3cNi0vH7tgP8VjfP7IDzrcADdt3QQ0Jg\nnU3k\r\n=+2vL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDGx8BQif+sqSo3hx9hW451++qvh/Ph6sKn1bu+8lQRNgIgP7xd+iCUbPjhqKTpBgI9iriKD2DGFP3k2IPHnVGefJw="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.7.7_1577242441387_0.8056073916531101"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.7.8-beta.0":{"name":"@redux-model/taro","version":"6.7.8-beta.0","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","@tarojs/redux-h5":"*","redux":"*"},"dependencies":{"immer":"^5.1.0","lodash.clonedeep":"^4.5.0","qs":"^6.9.1","shallow-equal":"^1.2.1","tslib":"^1.10.0"},"readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\nRedux Model is created to enhance original redux framework, which has complex development flow and lots of template fragments.\n\n![License](https://img.shields.io/github/license/redux-model/redux-model?color=blue)\n![Travis (.com)](https://img.shields.io/travis/com/redux-model/redux-model)\n![Coveralls github](https://img.shields.io/coveralls/github/redux-model/redux-model)\n\n[![](https://img.shields.io/npm/dt/@redux-model/web.svg?label=@redux-model/web)](https://www.npmjs.com/package/@redux-model/web)\n[![](https://img.shields.io/npm/dt/@redux-model/react-native.svg?label=@redux-model/react-native)](https://www.npmjs.com/package/@redux-model/react-native)\n[![](https://img.shields.io/npm/dt/@redux-model/taro.svg?label=@redux-model/taro)](https://www.npmjs.com/package/@redux-model/taro)\n[![](https://img.shields.io/npm/dt/@redux-model/vue.svg?label=@redux-model/vue)](https://www.npmjs.com/package/@redux-model/vue)\n\n\n# Features\n\n* Less code and higher efficiency\n* Modify reducer by MVVM\n* Absolutely 100% static type checking with typescript\n* Trace loading status for each request action\n* Support react/vue hooks\n\n# Installation\n\n#### Web\n```bash\nnpm install @redux-model/web   redux react-redux\n```\n\n#### React-Native\n\n```bash\nnpm install @redux-model/react-native   redux react-redux\n```\n\n#### Vue\n\n```bash\nnpm install @redux-model/vue   redux\n```\n\n\n#### Taro\n```bash\nnpm install @redux-model/taro redux   @tarojs/redux @tarojs/redux-h5\n```\n\n# Define Model\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n    increase = this.action((state) => {\n        state.counter += 1;\n    });\n\n    getUser = $api.action((id: number) => {\n        return this\n            .get<Response>(`/api/user/${id}`)\n            .onSuccess((state, action) => {\n                state.counter += 1;\n                state.users[id] = action.response;\n            });\n    });\n\n    protected initReducer(): Data {\n        return {\n            counter: 0,\n            users: {},\n        };\n    }\n}\n\nexport const testModel = new TestModel();\n```\n\n# With React Hooks\n```typescript jsx\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    const increase = () => {\n        testModel.increase();\n        testModel.getUser(3);\n    };\n\n    return (\n        <button onClick={increase}>\n            {loading ? 'Waiting...' : `You clicked ${counter} times`}\n        </button>\n    );\n};\n\nexport default App;\n```\n\n# With Redux connect\n```typescript jsx\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nclass App extends Component<Props> {\n    increase() {\n        testModel.increase();\n        testModel.getUser(3);\n    }\n\n    render() {\n        const { loading, counter } = this.props;\n        return (\n            <button onClick={this.increase}>\n                {loading ? 'Waiting...' : `You clicked ${counter} times`}\n            </button>\n        );\n    }\n}\n\nconst mapStateToProps = () => {\n    return {\n        counter: testModel.data.counter,\n        loading: testModel.getUser.loading,\n    };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# With Vue\n```vue\n<template>\n  <button @click=\"increase\">\n    {{loading ? 'Waiting...' : `You clicked ${counter} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n  name: 'HelloWorld',\n  methods: {\n    increase() {\n      testModel.increase();\n      testModel.getUser(3);\n    },\n  },\n  computed: {\n    counter() {\n      return testModel.data.counter;\n    },\n    loading() {\n        return testModel.getUser.loading;\n    },\n  },\n};\n</script>\n```\n\n# Demos\n\n* [React Web](https://github.com/redux-model/redux-model-web-demo)\n\n# Documents\n\nHere is the [document](https://redux-model.github.io/redux-model)\n\n---------------------\n\nFeel free to use it and welcome to send PR to me.\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@6.7.8-beta.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-3mCiwaz70lxt9F50DqzVoj4+ntKbV6rZnZ85WvtEG/clbaMnlSSIn1oKaaEYucAaGUp+6FNV5dpAkzG9QjN51w==","shasum":"b849f923696b0c25764e9ed2023d908a6e532fa3","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.7.8-beta.0.tgz","fileCount":64,"unpackedSize":87296,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeAtu7CRA9TVsSAnZWagAAYiUP/RSG+696M8HF8OFp2fLb\npygdK+ZBvlly8LaHXxU1vkSFjktJ3w320xFCMi5rFpTlZnrzjZAvTvZzATQ6\nCU/ob1vfN8DxSP9yULRpkUWcE8KHz21uzea1KGGC6p2onqTif9QbmezySra2\nsc5mfBK7pgUUDlFEMeyOG1ePy/JCEEfqhXGh2YZSmRQruzXbpwdcMv5VdyJh\n15bqFUSgQ39KliiGmTgwxjkQ2hTzuUhFgd9OTGwwkKYDosGWNQPo0vScnCm6\nITjmksAv6CxBrX9ADtkaryDaBSTr2CpZKNekBCY6lqoiUZWnfmEvcCl9uBjx\nwyvgxY8Gkaibg1L9CFaT0YNab/tDm5oQKYy5Cv9VzkiopB+q4T9mYr+BsC62\n/rwtOR6EsLQASuLTbFEdnZgkJ+3dQSaaRfaurTRNJY7mSlaB3zkYpO/8R8jD\nzsEXbmDOpNJ8FwsAITXO1CXP/0Y61y5JpEMcemlbwUBiUTBuWlAtB59veq42\n1LMkQzJa2RsN/eVFTdKShn57N3U7gAOWj8qymzACtBnybBfbaBLzvrS9rM7L\nh/B11uGmokoOrlwOpz5LCVXVevkumCfe6NB5BSnXgNf5rOQfztrKlKoXOnKI\nnTvzeOBPM2Gw+/etlAItv+atTZzto13OAvnobPJ0d1Ir12v+kPGo6U+BeGEJ\nu8uJ\r\n=LK5g\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICRFZqSpCk4nzZGblQZ+WSROOQozBt4kMcnWXsx93ik6AiEAmLkEmuWtWGBXXRBcYXOcffZadziruiuj4uWhYq8ZZGk="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.7.8-beta.0_1577245627434_0.4137869918941799"},"_hasShrinkwrap":false},"6.7.8-beta.1":{"name":"@redux-model/taro","version":"6.7.8-beta.1","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","redux":"*"},"dependencies":{"immer":"^5.1.0","lodash.clonedeep":"^4.5.0","qs":"^6.9.1","shallow-equal":"^1.2.1","tslib":"^1.10.0"},"readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\nRedux Model is created to enhance original redux framework, which has complex development flow and lots of template fragments.\n\n![License](https://img.shields.io/github/license/redux-model/redux-model?color=blue)\n![Travis (.com)](https://img.shields.io/travis/com/redux-model/redux-model)\n![Coveralls github](https://img.shields.io/coveralls/github/redux-model/redux-model)\n\n[![](https://img.shields.io/npm/dt/@redux-model/web.svg?label=@redux-model/web)](https://www.npmjs.com/package/@redux-model/web)\n[![](https://img.shields.io/npm/dt/@redux-model/react-native.svg?label=@redux-model/react-native)](https://www.npmjs.com/package/@redux-model/react-native)\n[![](https://img.shields.io/npm/dt/@redux-model/taro.svg?label=@redux-model/taro)](https://www.npmjs.com/package/@redux-model/taro)\n[![](https://img.shields.io/npm/dt/@redux-model/vue.svg?label=@redux-model/vue)](https://www.npmjs.com/package/@redux-model/vue)\n\n\n# Features\n\n* Less code and higher efficiency\n* Modify reducer by MVVM\n* Absolutely 100% static type checking with typescript\n* Trace loading status for each request action\n* Support react/vue hooks\n\n# Installation\n\n#### Web\n```bash\nnpm install @redux-model/web   redux react-redux\n```\n\n#### React-Native\n\n```bash\nnpm install @redux-model/react-native   redux react-redux\n```\n\n#### Vue\n\n```bash\nnpm install @redux-model/vue   redux\n```\n\n\n#### Taro\n```bash\nnpm install @redux-model/taro redux   @tarojs/redux @tarojs/redux-h5\n```\n\n# Define Model\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n    increase = this.action((state) => {\n        state.counter += 1;\n    });\n\n    getUser = $api.action((id: number) => {\n        return this\n            .get<Response>(`/api/user/${id}`)\n            .onSuccess((state, action) => {\n                state.counter += 1;\n                state.users[id] = action.response;\n            });\n    });\n\n    protected initReducer(): Data {\n        return {\n            counter: 0,\n            users: {},\n        };\n    }\n}\n\nexport const testModel = new TestModel();\n```\n\n# With React Hooks\n```typescript jsx\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    const increase = () => {\n        testModel.increase();\n        testModel.getUser(3);\n    };\n\n    return (\n        <button onClick={increase}>\n            {loading ? 'Waiting...' : `You clicked ${counter} times`}\n        </button>\n    );\n};\n\nexport default App;\n```\n\n# With Redux connect\n```typescript jsx\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nclass App extends Component<Props> {\n    increase() {\n        testModel.increase();\n        testModel.getUser(3);\n    }\n\n    render() {\n        const { loading, counter } = this.props;\n        return (\n            <button onClick={this.increase}>\n                {loading ? 'Waiting...' : `You clicked ${counter} times`}\n            </button>\n        );\n    }\n}\n\nconst mapStateToProps = () => {\n    return {\n        counter: testModel.data.counter,\n        loading: testModel.getUser.loading,\n    };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# With Vue\n```vue\n<template>\n  <button @click=\"increase\">\n    {{loading ? 'Waiting...' : `You clicked ${counter} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n  name: 'HelloWorld',\n  methods: {\n    increase() {\n      testModel.increase();\n      testModel.getUser(3);\n    },\n  },\n  computed: {\n    counter() {\n      return testModel.data.counter;\n    },\n    loading() {\n        return testModel.getUser.loading;\n    },\n  },\n};\n</script>\n```\n\n# Demos\n\n* [React Web](https://github.com/redux-model/redux-model-web-demo)\n\n# Documents\n\nHere is the [document](https://redux-model.github.io/redux-model)\n\n---------------------\n\nFeel free to use it and welcome to send PR to me.\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@6.7.8-beta.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-U8F+FpLwGvfLY3tOaOI+yQL592sV9OqOo3qZCD43TjYB9TdruHzWQZ1BgbobwDarL64U/zbGgOlH2B4n5ER/5A==","shasum":"9068c25153a25b16fa533f9489c359cff3a58b79","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.7.8-beta.1.tgz","fileCount":68,"unpackedSize":87627,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeAugrCRA9TVsSAnZWagAAwTsP/2N5p4GvUAs6oIQlQU40\nDzupLmkn4WShbA0fc8lXEy6KrqkSOcFux5025o7VwojNg4KjM6THeyWjBghj\nvDWaDcShwCGZ/q/WEu+NFw2Er3D8jmA0oM3MhWN0arQgBONexMYrcO/smZ/r\nCa6w7jb5fvgerN2Js6jrTY5aVhD9ak+grt741amwSRJu1NCJSwc2t3tKbCK+\n6GNOPJwqTF/7BtTD8uBqPDmEzckZFQSkzQtg6Zo6471mn6cU8QgX+jkHjcdZ\nayG7BfhJR4SoS9BoA7VQtuwozuY5gnDXV5rwNNUAwI9b4YpSeCVut3UkiINP\ngKku8c1Fkixjb5c/PFywbMhcP7TyiJxoaItE3hGp4CDEyKWUxmhvAsxkRiP0\n3pKzbPUFBHMKreomImXndOaMC1zqPDL38n6T3HsOKFdEe9n5ccI9D1WNuo1g\nRkFEnVtg7sKCnc89qhxCc0n395O5N/gR5NuKdDJFo0GPWfhYFMi35Qf4juyR\n4zoW6yIzjg89R5bKSlmp97YAfmgbLlcGJhtKSqL0vq2BJ2cOzKU/rkB0Blsw\nJJyoHIS5pxr2yl1gh2DzuHOZo86M3QSDyCFl88n0EhXX9hCoUSHCQswBpzba\nGHbFmcMKuqMU+VnXavmTLu1lN2VJPZhFKqHSzon+S7/U0AswoH55e7Wd5RvX\nx5FX\r\n=FW/o\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGXG0qyj8kxtC2d94jodmJhOYTH837+LwiuDEduPaTo/AiAvotuOTZnunCJeMpZBd6ioZg+FdKMdRp/bbv9Lstt58A=="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.7.8-beta.1_1577248810798_0.025228361137703104"},"_hasShrinkwrap":false},"6.7.8-beta.2":{"name":"@redux-model/taro","version":"6.7.8-beta.2","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","redux":"*"},"dependencies":{"immer":"^5.1.0","lodash.clonedeep":"^4.5.0","qs":"^6.9.1","shallow-equal":"^1.2.1","tslib":"^1.10.0"},"readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\nRedux Model is created to enhance original redux framework, which has complex development flow and lots of template fragments.\n\n![License](https://img.shields.io/github/license/redux-model/redux-model?color=blue)\n![Travis (.com)](https://img.shields.io/travis/com/redux-model/redux-model)\n![Coveralls github](https://img.shields.io/coveralls/github/redux-model/redux-model)\n\n[![](https://img.shields.io/npm/dt/@redux-model/web.svg?label=@redux-model/web)](https://www.npmjs.com/package/@redux-model/web)\n[![](https://img.shields.io/npm/dt/@redux-model/react-native.svg?label=@redux-model/react-native)](https://www.npmjs.com/package/@redux-model/react-native)\n[![](https://img.shields.io/npm/dt/@redux-model/taro.svg?label=@redux-model/taro)](https://www.npmjs.com/package/@redux-model/taro)\n[![](https://img.shields.io/npm/dt/@redux-model/vue.svg?label=@redux-model/vue)](https://www.npmjs.com/package/@redux-model/vue)\n\n\n# Features\n\n* Less code and higher efficiency\n* Modify reducer by MVVM\n* Absolutely 100% static type checking with typescript\n* Trace loading status for each request action\n* Support react/vue hooks\n\n# Installation\n\n#### Web\n```bash\nnpm install @redux-model/web   redux react-redux\n```\n\n#### React-Native\n\n```bash\nnpm install @redux-model/react-native   redux react-redux\n```\n\n#### Vue\n\n```bash\nnpm install @redux-model/vue   redux\n```\n\n\n#### Taro\n```bash\nnpm install @redux-model/taro redux   @tarojs/redux @tarojs/redux-h5\n```\n\n# Define Model\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n    increase = this.action((state) => {\n        state.counter += 1;\n    });\n\n    getUser = $api.action((id: number) => {\n        return this\n            .get<Response>(`/api/user/${id}`)\n            .onSuccess((state, action) => {\n                state.counter += 1;\n                state.users[id] = action.response;\n            });\n    });\n\n    protected initReducer(): Data {\n        return {\n            counter: 0,\n            users: {},\n        };\n    }\n}\n\nexport const testModel = new TestModel();\n```\n\n# With React Hooks\n```typescript jsx\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    const increase = () => {\n        testModel.increase();\n        testModel.getUser(3);\n    };\n\n    return (\n        <button onClick={increase}>\n            {loading ? 'Waiting...' : `You clicked ${counter} times`}\n        </button>\n    );\n};\n\nexport default App;\n```\n\n# With Redux connect\n```typescript jsx\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nclass App extends Component<Props> {\n    increase() {\n        testModel.increase();\n        testModel.getUser(3);\n    }\n\n    render() {\n        const { loading, counter } = this.props;\n        return (\n            <button onClick={this.increase}>\n                {loading ? 'Waiting...' : `You clicked ${counter} times`}\n            </button>\n        );\n    }\n}\n\nconst mapStateToProps = () => {\n    return {\n        counter: testModel.data.counter,\n        loading: testModel.getUser.loading,\n    };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# With Vue\n```vue\n<template>\n  <button @click=\"increase\">\n    {{loading ? 'Waiting...' : `You clicked ${counter} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n  name: 'HelloWorld',\n  methods: {\n    increase() {\n      testModel.increase();\n      testModel.getUser(3);\n    },\n  },\n  computed: {\n    counter() {\n      return testModel.data.counter;\n    },\n    loading() {\n        return testModel.getUser.loading;\n    },\n  },\n};\n</script>\n```\n\n# Demos\n\n* [React Web](https://github.com/redux-model/redux-model-web-demo)\n\n# Documents\n\nHere is the [document](https://redux-model.github.io/redux-model)\n\n---------------------\n\nFeel free to use it and welcome to send PR to me.\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@6.7.8-beta.2","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-gfS/C8rnG9J2T9BVGSpd/AKEUXfNtG4YORHeGvr6UDMxu5Mno0xXSo5PK6nJLPA8J2eh+Ghlw91lexE6txJlJQ==","shasum":"d931686b90ee64fbd912df8d9e77be9f8a5a37ae","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.7.8-beta.2.tgz","fileCount":68,"unpackedSize":87919,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeAuk9CRA9TVsSAnZWagAAdbMP/RQFm1Y8n6nmPE/Vv4eM\nRnjAayPEhdxUN/B9k/cmEpCO9S0n7d/JGhijWUpgepWgWn8GEoGJphT5NJOp\nW0TDK07ncBXKjIwDLNuDt2eyk2myqhuhd2ev1Dg9gxuYcceGG6ks8qyKL22F\nAX9OJ3d8L0H2jtBznK7+BTeDu6E01xk0bY05xniZ3O4csdG1g/MdsPZR9QWM\nlrJO6Y63kWCn05B2Qnp+aY9KiQbeF+GoZIveofxfG8wX0ZGh6T1pFKCtv6aI\ns3xT0RSlvxnyu4TyWpYdoFxa4pJt1OveKUazqZdeD3HxJ4bgf/PnZm8hd4z6\ndfX5xDXQleCVHkf+n/1zdkrMbkgBA8i0Lpqjsbg0vY3PNHzsEdLXTwgrw6aH\n47Hv3VqIFWdo+NFrTYspSFwLI8Hz/t2GPcsFrKKvwcAoGw16cx2T9kI5nNho\n1x/AnHApTLcpryxzDwJUl5vHmLlGIGXlMuZIeubRDZ55Z041r8M/uir1+ez+\nEJJSjchnEkJVmGch/lHg3rKW5N1Bb4/kLGJ9ufQXKian8NhEn3xj44gLKERQ\ndhmDzEtnIA2hBkDVibLPAdy9ZLJtbpu9SN7ZnHVh5Z/jh92CEBIix6EvsowL\nPInncDdAhxF3Zq9mKCIWjfI1kI9QJcxK/NerqfH0GBLypYYjffKRh80SgqQq\ncgKw\r\n=0mw4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC0TkNW+Hxzf8ldrP2sx78CJ8+y480jTw4+giSP1B5gqwIhAKipZsWSRZ1geEKEvnPGy0q38UshUp5GKBKQ0Y0GgxTl"}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.7.8-beta.2_1577249084976_0.037020485486662036"},"_hasShrinkwrap":false},"6.7.8-beta.3":{"name":"@redux-model/taro","version":"6.7.8-beta.3","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","redux":"*"},"dependencies":{"immer":"^5.1.0","lodash.clonedeep":"^4.5.0","qs":"^6.9.1","shallow-equal":"^1.2.1","tslib":"^1.10.0"},"readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\nRedux Model is created to enhance original redux framework, which has complex development flow and lots of template fragments.\n\n![License](https://img.shields.io/github/license/redux-model/redux-model?color=blue)\n![Travis (.com)](https://img.shields.io/travis/com/redux-model/redux-model)\n![Coveralls github](https://img.shields.io/coveralls/github/redux-model/redux-model)\n\n[![](https://img.shields.io/npm/dt/@redux-model/web.svg?label=@redux-model/web)](https://www.npmjs.com/package/@redux-model/web)\n[![](https://img.shields.io/npm/dt/@redux-model/react-native.svg?label=@redux-model/react-native)](https://www.npmjs.com/package/@redux-model/react-native)\n[![](https://img.shields.io/npm/dt/@redux-model/taro.svg?label=@redux-model/taro)](https://www.npmjs.com/package/@redux-model/taro)\n[![](https://img.shields.io/npm/dt/@redux-model/vue.svg?label=@redux-model/vue)](https://www.npmjs.com/package/@redux-model/vue)\n\n\n# Features\n\n* Less code and higher efficiency\n* Modify reducer by MVVM\n* Absolutely 100% static type checking with typescript\n* Trace loading status for each request action\n* Support react/vue hooks\n\n# Installation\n\n#### Web\n```bash\nnpm install @redux-model/web   redux react-redux\n```\n\n#### React-Native\n\n```bash\nnpm install @redux-model/react-native   redux react-redux\n```\n\n#### Vue\n\n```bash\nnpm install @redux-model/vue   redux\n```\n\n\n#### Taro\n```bash\nnpm install @redux-model/taro redux   @tarojs/redux @tarojs/redux-h5\n```\n\n# Define Model\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n    increase = this.action((state) => {\n        state.counter += 1;\n    });\n\n    getUser = $api.action((id: number) => {\n        return this\n            .get<Response>(`/api/user/${id}`)\n            .onSuccess((state, action) => {\n                state.counter += 1;\n                state.users[id] = action.response;\n            });\n    });\n\n    protected initReducer(): Data {\n        return {\n            counter: 0,\n            users: {},\n        };\n    }\n}\n\nexport const testModel = new TestModel();\n```\n\n# With React Hooks\n```typescript jsx\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    const increase = () => {\n        testModel.increase();\n        testModel.getUser(3);\n    };\n\n    return (\n        <button onClick={increase}>\n            {loading ? 'Waiting...' : `You clicked ${counter} times`}\n        </button>\n    );\n};\n\nexport default App;\n```\n\n# With Redux connect\n```typescript jsx\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nclass App extends Component<Props> {\n    increase() {\n        testModel.increase();\n        testModel.getUser(3);\n    }\n\n    render() {\n        const { loading, counter } = this.props;\n        return (\n            <button onClick={this.increase}>\n                {loading ? 'Waiting...' : `You clicked ${counter} times`}\n            </button>\n        );\n    }\n}\n\nconst mapStateToProps = () => {\n    return {\n        counter: testModel.data.counter,\n        loading: testModel.getUser.loading,\n    };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# With Vue\n```vue\n<template>\n  <button @click=\"increase\">\n    {{loading ? 'Waiting...' : `You clicked ${counter} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n  name: 'HelloWorld',\n  methods: {\n    increase() {\n      testModel.increase();\n      testModel.getUser(3);\n    },\n  },\n  computed: {\n    counter() {\n      return testModel.data.counter;\n    },\n    loading() {\n        return testModel.getUser.loading;\n    },\n  },\n};\n</script>\n```\n\n# Demos\n\n* [React Web](https://github.com/redux-model/redux-model-web-demo)\n\n# Documents\n\nHere is the [document](https://redux-model.github.io/redux-model)\n\n---------------------\n\nFeel free to use it and welcome to send PR to me.\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@6.7.8-beta.3","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-Q3p2JZLZzeSfK7knrpZi/00Hxnb2Qo7TcyiWcmGwHxIwCj2r/ma3HX1iAPOaRyZjzQtQKWC14hVK0xJRfOoFJQ==","shasum":"1b2f876fdc9f43ab014acb9a5d94a1c4ea172623","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.7.8-beta.3.tgz","fileCount":68,"unpackedSize":87665,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeAuwTCRA9TVsSAnZWagAAyoAP+wdeOU/0nRFSur3T6Ggq\n/xZTgp5oInI3udjGi6zq+lD0fupjwFVZHmqFUlB5GQ34sIOm9R+2jFubTuYL\nZW+7gqvTRZ7XK8vuOZYJc/pLlRpnalnd2o5nwKjzjf7gcJtS0u7t3xGtDeA5\nlOWpJ0aoUA/xIjPuGym3gXjQALDx3PGrEWwp/f0l9+iYBBPYmUVzqyzijNoV\nF/tC5J1867bcYXyJfI3UPogCveBdt/RwfmkAXnSKZgi6Sgiycet3dOjcxuY8\nNgLNpuEwlKGjHSNEIO501fn1DINjMsI31kc6YiJZ0hnAoMv+hryOn+b3KcPW\nJzq3LgnDq6iNPIXsUMyrCxQI56Z+RHBkUBs5hz201Sjl08+WSwF2p+ArYtbg\nu8BGildAFulu1gwovZcWgJo2uKK0SMfnOaSVGCTJscgCp3//b4gEnkI/Rw2x\nMB42CDgit37oKgnlDrm1XCJXC+qfc+aZPaNNGvyGcz99bXsbcSwIb8lh+C4s\nO9qEji/9J6wR9nGwzG5IErNC9VAnJ9vWXxjBpX9aZPHi+v/VufD7Qsbf7tq6\npNMFMmWUoyBfvuWSeF553z/Ap5YSJDsIasIx8wKgemZFhJBKcrt6xr18XfFw\nwXXM/W0mYrvuxFXAgOSLqmI/PsWB0VxGxce9DMX4ceaeH2ZUzy0pVh794+Zd\nORej\r\n=OPJY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCkQjlbFlCwZYBBMVgJ22NntW8IEhZGAxupDnA8CHdrHwIhAMTgO6x5JY26R3nt489z6mq+5hWwnr1OFXp8giAMeAUZ"}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.7.8-beta.3_1577249810778_0.24968510402533917"},"_hasShrinkwrap":false},"6.7.8":{"name":"@redux-model/taro","version":"6.7.8","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","redux":"*"},"dependencies":{"immer":"^5.1.0","lodash.clonedeep":"^4.5.0","qs":"^6.9.1","shallow-equal":"^1.2.1","tslib":"^1.10.0"},"description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@6.7.8","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-/ib+kBeZlRCxZi5lIWRWhSs+/dMoGW6n3GuLhWKvF/dZAO141hoXOHJ3TSHdHhUvEAn5zorBt7PLgX1ruY/bEw==","shasum":"4c3ee3145de80a280359d5f5f0c5741dd4fcfcc4","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.7.8.tgz","fileCount":64,"unpackedSize":87268,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeAvO4CRA9TVsSAnZWagAAqw0P/2UV7GOFbGtmrKAYAXJW\ncYlQYevpceIyR8zbGSJUxPG25keZa8E0+yTYh3Q1Co2jXgF9uJ05hLZjwjiI\n+yOFkZKCD1cqUPhO43umOx7DTztwz85Cg0fWZfzf4lKYf7jKuklB9aX4a/0+\nZaYzFdWGKa6TkxZsVExAJF++iHtULk1p31IfEWDoLInY89bYU2CZJV/RvBkR\nrlSfIUijtUcXCGGzmzv3LUAlWzNqFlmFgW/FPOUiNDyCDgtaXbISVRtSvCSw\n7rR2hXbzmHyvJd5VQn5nGuxx3xSDPWr5/PV8cgrgsoXDPlmqcTHhExJyz9pF\nqaeVBceKpH766TP/g4BIG+arMrhdxHvrtYjfq5zKRT1+INyrY83MO6XjWrD8\nhKiN1ODZQD2E4zlIqfwuU+e8vVJp2FPolWbg0JYd4SSpyKQp4qc1wrcCVsuz\nvV6xEi/o8mI7GDO/n7iKxUiXktvvWzaSihS2R9UeMIQB5oe4+c+3DBO9ov4U\nPsC7JrAd6BgKPcj3TQFnh+zmP7h95VlvduGrblZnryO3PUV++YFqE+z6bDrS\n7mW6MdRu9XMqCSP3teKBYA/9RMVaazbRMwja/c+v6wc+yyicE9M7cmtdAgmK\nkzJz1VAWYzNVXtKLQhqNxjjatVxP7dxm00N84H2Di+eKgA7et1oxUZXDKAGk\nJ2GZ\r\n=4j7C\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCeOUmdRJFPjogk4wZN063NxSczb+32ADF82ylnIEQ6IwIhAJ9sc57t14fLITVAru8Lzfy/zF4vayNIe6WMVn/DoM7R"}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.7.8_1577251768212_0.6688723109838695"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.7.9":{"name":"@redux-model/taro","version":"6.7.9","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","redux":"*"},"dependencies":{"immer":"^5.1.0","lodash.clonedeep":"^4.5.0","qs":"^6.9.1","shallow-equal":"^1.2.1","tslib":"^1.10.0"},"description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@6.7.9","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-e6hmHNBDvRFq1ysqPFTE+l21XvUahoEZYl4OVM815tzt0Tgqjx57zNrg6rebNo598QIkt7/xKCxnKoqTmWs8CA==","shasum":"371f177fa60b44484a6ed83f5a4bedc314d25da9","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.7.9.tgz","fileCount":64,"unpackedSize":87846,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeBEHxCRA9TVsSAnZWagAAZ6YQAIaxi5NajhzwBmeCF1FZ\nGkRELI9dU4KXij3JAF4MzmkIzOCs/RtnABu66dPexcC7wlImTuKlcLOedF6c\nB9DUKeU9W9RmejYQitxKBYwQZRJSrl54E67hK/qJcUum8Pf5Tr947PT2wDS6\n+GJ40KPjmg6u5Sm5+dNArDTeIBoBd8CWkyDtHSgqUf6ecH+Uw78VCqTwiRZw\ny2Ci4bQPr7z7mNCHyKBrHNh7S3mp1n4BJymMByenwY/TiflsaBLZPV8CE0Aj\n95GkxOPnY12DfZyuTdgIz3KPBPzu6ZBd1rCbX1NZwrDBjSBTnPFVimi5AYpH\npywcPCbPKtGO2Am9PztPTjYuqGMTsVdDIkzV247vDQSszrY1kUWeBFNqzJSt\nq6OU0mm1BtqERqtNruVq2vKIO33Z67VXwtBRSUxx/XnrWQv+k9vDdRGPod/N\n+xojqzar2ok0halmh5iddJI2cWn8T8V7tNgxUwT9/1T2977UzpZEW/7EHL2p\n+FU5yvWYP6/C0CuKOHOveIq28SXHLo3l5wb+8qfEZelpeeNjUmNNZG2W+fpu\nifTgH5ksyx2hrZDZbVtb4OQDSkKGXSTo2hk9rWu5pqGWtSWihPsrPXDhFUsc\njgNRILnPRm0orH190Z5SwbHVOKmpQQaLmqBfeppF0c7n0Eqa5cHfXKrXYmWE\ntYVi\r\n=p3Mu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDd+MMGnM2MJUQ+d0v4mRbzGX0cr4R8cRK+pmtGJ5WSNAIgKDWFH4DYCavgjBCvGzwciYYe5YECFLcZrLEZ5u+MYsA="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.7.9_1577337329233_0.5817031481602826"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.7.10":{"name":"@redux-model/taro","version":"6.7.10","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","redux":"*"},"dependencies":{"immer":"^5.1.0","lodash.clonedeep":"^4.5.0","qs":"^6.9.1","shallow-equal":"^1.2.1","tslib":"^1.10.0"},"description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@6.7.10","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-sdd56FMXn+M4welR4FgyTz+K1G3L1dJ57EV7mpNwbisMBHrgChk938fuHFFFE35Sru57+OIRkwPXuhibL3YWkA==","shasum":"de92643c9b2f97dca3be3ad461499ab5cb0a5da0","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.7.10.tgz","fileCount":64,"unpackedSize":88158,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeDx+NCRA9TVsSAnZWagAApOoP/i62nhe4zFd5D3ggWQlt\nmdSHwJrzCM0MHKxfzQcF8+GmeaRnMhrfY/V5+gEIviwR121tLr6bn2QKde7U\nRtTud2BniRymgDBU9MiNG8ar+O2HXixn4MB2RI1s7RAnPSOua70JNJVwUfjM\nXkP5v2WZldJUNXOs5YJKQ42QRVLyfy/9/2DOiCnZc3C42smGd9yslnHlm17z\nga6dv56Yp31o7VdwrpocrDoqfYe2yYgfOSYTwy8DeevvGAe51ZOZYcOqrGvd\no59rFCiRveU3/6XmNl6cEjnPMzkt6GxfR/OE1l4ibt7XikV/E+BzjudlH6fO\n8cOFJ6dlI1ogFkwU7D56RGLNVR78ccv7tlxMFsvU3KvBqQnhYtub5boAVyNf\nqtly45b14LPv6rQbYzXO2DJUz9jVg+5tmmi6m5bqQm6EeBHGjRsfZ9JRDdgk\nEXTsNOE4tLnTJiY6UQdpXjRrzQl28CRspfEV+Y67D/8i0WaTxWQ0VrvTNrLC\nfOlVJkwn0T6g0WzJlPlq4HgPMylCXS1bEvSjJHoyyR+IbWnEZkzMQ/AhrYvc\n9yYGiyMWAg60axtcsOysdJ0rxtousSfr7EvMwbmgCPoGgwCSc5oHiuXYPKLN\nORiFL4hZmaOtJoqCltvy0b7uI/1uGubATKelnyFH7n4LgeICePGqx0w+kunm\nONiu\r\n=kceQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGCIMKkrqVPjSoGtTOKqlEi2PUVEevN7pa0fB/8tEh3SAiEAxgh53C4i1zsRp+LpxUeDAfuK8YQtV9W3nmrLwHpBUR4="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.7.10_1578049420958_0.4562050366246557"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.8.0":{"name":"@redux-model/taro","version":"6.8.0","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","redux":"*"},"dependencies":{"immer":"^5.1.0","lodash.clonedeep":"^4.5.0","qs":"^6.9.1","tslib":"^1.10.0"},"description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@6.8.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-Qus4Y6588r6+cZZJlzTPXm0boWUF67QUdNL9z4wcYI098OWyyxFbvZXDpqtZ4pqUWYtY7QI5jQGE+DG4abIoHw==","shasum":"dfd54a8b3d52372680e7b03ace97488245b9c209","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.8.0.tgz","fileCount":64,"unpackedSize":89687,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeFHPdCRA9TVsSAnZWagAAQqwP/0OBRehRzk77sHndsW17\nMCsBV8Z0Y4uuAaubiVCk1YHBe7H6UNSHB0PjxrAcoWKXmzTWwjilLID2dwcg\nszA8CFcRxvoppwtzbdx4SJgmXH2+jjvim7Zwr5+zyUzhgmlGduroG6TUCHW+\n7kCf6UKsQLI/jH1tud/yFJGctfmgGGxHQ0zpFbiBxPjfikRPZLpT6R+CNEZs\nvST9fUJZS/AUX+JI530RNH5nHp4ah+AFex9bkW2XnLQ50qrCXABTTMEv/3WK\nkxupuEe2Db9DI4Qes8gdbXaGb0ZBHhWDLnQUD6vIZFAKjRSFuAJubiqdv/va\n1lsC7k6inxH1oF8Z/kU4363j+Rw6wiVn7vYa4j1JJXqEbkqSahEwYPGE0Cao\nMJ+TwInWTR8Xp/vaouLLLeClHuD7JIzcgi3c3NL93tY12iU9fHbtpFaV7sCk\nE90jWkxF5p2GWTjs5MYNFb+qz/j285DXPe/+fxxAjm5sB0QIxzrMxFDCqAnx\nEdL1uJaIEIKComzpXOSkvK1a4bEU6iqh6oXF32tIMOnB/XK/SrK21IkvvZuA\nh+SFn8ceUESSrRG3oOtyQT9+ARVgK9dI9YB9e9HEqgee0fsa8FWQwXAW95+O\n6751WG/DGYk5/0ZtSBJhnj/BS+cgrf57vxN48Z6fHI+y5gKlvt6xrzUjjWkv\nJJ8C\r\n=m7+v\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC4mD44kwtrelq9KGFJObyBNM3RS1DPft8d6o+VDrp96AIhAOHv9y2E8hY2BA8SqivvHeoJhVLLEpO5yqY4vmIoKChW"}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.8.0_1578398684786_0.9027829496311965"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.8.1":{"name":"@redux-model/taro","version":"6.8.1","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","redux":"*"},"dependencies":{"immer":"^5.1.0","lodash.clonedeep":"^4.5.0","qs":"^6.9.1","tslib":"^1.10.0"},"description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@6.8.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-ixK6WVEJMx3sUvz7meaBXc5gqy4PQJykf5z+jIuPnUm55Ik/1m1tI8kGlAqTo3fMUo25xcbPSh57fxVs5oQkPQ==","shasum":"be7435e707f8ca7091f0209367d6adb7a8161b0b","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.8.1.tgz","fileCount":64,"unpackedSize":89695,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeFp3RCRA9TVsSAnZWagAAmQoP/1SsyBA44HJa1EMkwtpP\nuSpNVScO1onsi5Fqnv0a5qbEvdqJxyFT6DaJlAreiLv+aEXr+tvWNGySqXPA\na6fWE9wmBe10xyzvpeUAXbW/B6wpK5DFCfvFDldAMDq1qcv60VLOppzHfqbT\nMSiCEAFaODwU76jl+NgAoh4P5IJ6wgXQvcSnhaN7a2lrgCKH8jIaPabIRVjK\nI+b74rMng/sKptNEyhNGJAX5qwfqzFUubOjgxB+vDSHUqQ2KmhpyNkmJnuDq\naXG9DovN/DE49N1bQCbJqzL6v94nVzYBCupVohi8zg+RWTEfAPa6uQqySqqa\ncSSFmzZs3G/IogWlQXIJqzj3jtwnDI+/mDrhgnlb0+gGMPZb10J2t5oBKYTZ\nx55v8d+EOUwnUNFZPrh5Rp27q7vqc7/VKKMhsv42G+TEJzlS0HGsy3TBlF1R\nfT2wS5IouzCbnmBfjkmr3gaEmduQs1R2q3gS2bYBst+R5b2bvHzOjcCu6X0V\nJARo9IbxTvql67JCKJcwqsftKnCzFT9s6MoF2bdxWiK+WZRLxxjQV3hgr+T7\nwhiok13A7M5xY8BTShBI7MIjfd0me/sYFuJIQ0c/eUZWQulKrdI8iEJCWn1a\ng97oeAXkbOfjx0otQiH+MWLaWhlnFBJyP1PC2gC10YC8UhVjnchBP/AxKolj\nT56N\r\n=nS2l\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICRpxP1E9GTL1Em2QLnGOxzG8ABAex4Sox87CzW1QBRvAiEA96XqXWeJmWUJLhnUJe5DdcAnlXmnOqha0AJ7vsFsggM="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.8.1_1578540497254_0.2886007408464979"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.8.2":{"name":"@redux-model/taro","version":"6.8.2","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","redux":"*"},"dependencies":{"immer":"^5.1.0","lodash.clonedeep":"^4.5.0","object-assign":"^4.1.1","qs":"^6.9.1","tslib":"^1.10.0"},"description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@6.8.2","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-/leE3vae97XIubX5x6RsdIdCGYZdRC+bvoVYf73cGPEczuydcNAJegqaNrqfYPjEEj7L+kv7/PoIsE3V000Icg==","shasum":"a8bf7b8b79bdaeb495509b1c21efd56d1d6bdcb0","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.8.2.tgz","fileCount":64,"unpackedSize":89915,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeFud0CRA9TVsSAnZWagAAojMP/05VhKX/j9wuaU/k5lL+\n1j7FMBNH+Jl2qR7a8M2C+ZfI4rsDEARFw3bHO3BA7nglisC7Bk9yO4k1fHmD\nLIHnZRGg/WyQo15JpJpzwwLxryCCK9h0MdcaZQ2dZRT8lHJN5fT9Cued8OE5\nKw3bjuLRB+IVT5KwbmksuTmNon3m/bvppfJsgRJ6K+FV2J43w8UU1gpCfH+8\nLuf1y5z8D5NUAt1Ym8M9Lt02/cR9YQTHMqTAyPl44+NbeZAuGwu5VUuxHg4U\n7nIAv9yCQzZCn0Rl5neH5mXU3/XS4z2Yd5NDRSjVQtYyHYbZ28Si+42h5UAj\nbxOOagMRqbEfvPRN48iFtWOJEuefyqN7Qah2jKxwsUYWEJ9/14hojiWyELwp\ni1g16tyXzdY1YxfvBGpIibMsWKqxpFq7mAn786xioLsP0lT1EF2OJUw+rqr2\nhyqkFUa29pcdqARiDzbBAvxyBZIIAs1v1S29Sw1/9+8cJxTE88HcQ4CoM6zo\nGpokHzHTREk+B2gkxYNLftkNy/X0Jg+CirTDh+fqFp6ob87445ldaE08gJbQ\na7CDHB45MFLlX6PZLCX2bAxQF5lTR1NzhasV+nv6nbRT14lQxTy+AqGrM6y2\nh6G/e8tbcqoy8+EXxcyzMq9CjJtWbQ3eYdmPQrp1w7BM1mNzcHAjdW48M1Vs\nMzKK\r\n=gCDD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFemnuF9xwtS6aEgxCobs6LwJZWDmXVpipm5WJl+mOQxAiBlaClTEpdwHgnrw5JQDQGlHI4E8/hkpRyV77U28+b3KA=="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.8.2_1578559348025_0.33909515941715873"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.8.3":{"name":"@redux-model/taro","version":"6.8.3","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*","redux":"*"},"dependencies":{"immer":"^5.3.6","lodash.clonedeep":"^4.5.0","object-assign":"^4.1.1","qs":"^6.9.1","tslib":"^1.10.0"},"description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@6.8.3","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-9V4HcOnGKSWN2tQFDS+G1NTHam1O2j7FW1Ij/E75CpgVPWP0K8w1c60jucqj6dCS8O699Rk7GYIbvja3gOBCTg==","shasum":"0675fa114bd2d64dcf9891979d999bf36c22ab4b","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.8.3.tgz","fileCount":64,"unpackedSize":90232,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeTVB6CRA9TVsSAnZWagAA6kgP/Riuhq+SBCwg1EAbb+vz\nBGYHMWpumfo+dW/jwcG41/Bo3keqjCtp+TVtTmY0l/saM7R3gtyVmUlCybXU\nKALZOg3JfIAbL8URdG46aDStqH0FSzm3zHLXwESn515M9oWYfpf68JRmmIX6\nzMiIsmUcwKnpuZUmeWNuiMIun2DMYfdm8iZbHQNAH458LO8xRbSzK/axL9Va\nXl8JG5CzsxEO8Qj2ZS8gH6G8tZYB6d2ZVGyPx9afcFhbdFdKa7qkcmbMe+/w\n257O3smjZYkB5aGB4MdaeCQjOv9sFJayTJHUDr6AxSTXH73K8TqIuz6DmbcU\nnDr6DskCtssx6VSENDF8FRZjn5V+Dekrj4lOrYx/K4cxJwlGuG704GqUojzR\nFaqAx5Dg9hwAYgMXAuvUPGEEV+8YpyxTwFxu7lWryjk+GrLtwBIqf1itrBcx\nz0DEBEGTbfN8wuYyS4DrZa3jbZjsyB9C7aYuMsajN43jGwcFUUV3m0N4fOQF\naM/aIpnNq5+Vra/9yhHtjPvtU+2Tli5clEv+q+bQlJcZqmc0luLM/p1Mf2m7\nKOYZwFjlz65y5WonNqoYsHwWyoXcz/EAdJM5/dhsnqSO0Ks2TT62LP2FacMH\nm3I4dTPiSbVAqTOjZIeAbxLbqsSBrCd2aQuTHwjdiEQP1vHuv8cwycEaIZSB\nfQ0H\r\n=e/Fr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCio7XCJLv7jcP1QJBqAPF6smrn8Z0LnOy2RGTr8tunBgIhALVifzuC01F6aBpJaleKhX1S9Y0BTbCoP5O1e7rqamJ1"}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.8.3_1582125178229_0.10762870814379877"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.9.0":{"name":"@redux-model/taro","version":"6.9.0","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*"},"dependencies":{"immer":"^5.3.6","clone":"^2.1.2","object-assign":"^4.1.1","qs":"^6.9.1","redux":"^4.0.5","tslib":"^1.11.1"},"description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@6.9.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-L1pUSo+Out6IQu/Zt++im3ISEN3tAzAqCa86DZ+1L/gzJ1gA0lSNCeyvwa4+U0IjOKfTRYcBaG74Z+w0gHWF5g==","shasum":"cfeb890eb5305cdf64b3d5ab908eec7df364e174","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.9.0.tgz","fileCount":64,"unpackedSize":92827,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejaJlCRA9TVsSAnZWagAAbTsP/2ipe2GVBMqZVXRJK+j6\n8zbzAXKt/xKN46ofDIo1skQlwkplMuMAUG4IpSRzmnNIQcIh9BXxrE/R57gI\n6xA2XsDLjTNLMDzdP9B8vLvuB7g2Ee8rgn0NX5GgjVpLXMDMEHRKwDZIZqkd\nKvAkapIKtN6sK1QE6+o1gV5t/3syJujxKgxG2lYqGlG6/3XBghMGUNLC/4PB\nebZdwfS9x/l1fclN6117cooQqhmMzrKEhB9MrAFSIe2vCY5D7OLjTjoSHbx4\nQvv7ka/HOI6PVIKI4dnqKmrtzDsvPwo1+f04S3SCbRYK0+9NdvGxxFiH3wVJ\nVjamxrypArBi9DXqWaN+AgQ3A6nEUgOBWsBYymyCgGn7ouTLWmfCtl1czsnM\nIp/rYVGVuPPtl3FDuJBRgJ9mySMw/c6ROtNO5BATjc0sSQPvosyArOSHgQ5l\n91AVjTqu1vFlGvy/jzlGwwJpUenZMVN1OHgzScSmAJHDSIob2putXxUWrkGm\niDjA6M/HkGrFunWvTHxvPN/HRWYG1CUAD8kaImI2PIye5QHpsUWKYWwTb5E/\n+AH2urX4KiSF8FvoLNSmo6btAymuGaid07A1nLYECFA7kpg+OpXedh6az5H2\nGKffvWhHqKHga76t8VbbrGEtGu04S+9XqsPqFl/DM1H3aOsiEUJBRJjmBDTa\nKjkU\r\n=EzOh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC/wqsV60tVuFBGgnJIzMIrMGCeKVcn8sIZdW35Cjvc6QIhAI8O4cfBBv9q4zZ4+EOA1S21WyMJF01/lhNVtq0iXbl/"}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.9.0_1586340453470_0.30088492994566307"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.9.2":{"name":"@redux-model/taro","version":"6.9.2","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*"},"dependencies":{"immer":"^5.3.6","clone":"^2.1.2","object-assign":"^4.1.1","qs":"^6.9.1","redux":"^4.0.5","tslib":"^1.11.1"},"description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@6.9.2","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"dist":{"integrity":"sha512-Y4QqztF7//ihPP7rgDyLS+bPGkNCPuQe4GzXKWlW+2pJ/fHWumgCiiybFF8bYBoTx/qXBAO2y687Mvvo+wjCvg==","shasum":"03e9956b53c81fb2e20a303323f0bc27b34ad09d","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.9.2.tgz","fileCount":64,"unpackedSize":92776,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeuPFDCRA9TVsSAnZWagAAiOEP/R9DXFCkRxQJq7hHtKyQ\nD9C0pzucK8rUBgYoapmxjvoDOjxvK/laUjM9MWIRmykC7C5S9i+X1n+FLe3s\nDhUwcvrim0TJVBGwTXRSvnHtMB6HqsyrGpwwLaobNSjSj205X75gajzhaR+s\nq7sBg7kEb0ehxFnFrHfL2E/Eeelfj2b+Khi6vckHlYBn/eioQRR+uAYYlqvJ\nsMfn845aa9BHHN+aA/nF0DEnRQ+2ZpNTNzR15N3r+Kay+FimgoA5X023v+aE\nl23gGMbdHC7Y3D15uJMAMFjysK/mS9hD7pZkW/T+YyHAjDRE1J17LdkybirW\nmBwiKGJTiXIrDhkJYN4RvGZZl7YK1XGLuSeZ2K9rGxhitExVm2iTi5u4KHVz\n4k7rKFuYjBZ1dgI3UbCt5JALjVhcKK1kerpWX9vay1jk/flqDMjywQ7Qvbj5\n1ySE6KqTzTPCRBgJdgYP06wKj5mK/Ne+B4VQEQNQ4LVLx4ezR+UvQyourwsV\n9wlONlzNnMk5b71i1RyKRc3hcmanlRVffooRlTWqOGabeKwFO9VTCGlnHw2g\ngpBibLGLc/S8RRYtiJ3ARIcScBUCP53Qa3pSFRZb+9PBimR3+PNEI61ztqQC\nOTvJn8upxYl+kdFZrXifbCfuDg6vnq4LQDsV2gK9+UaibQf6LOXEE+qp5Tup\nKavw\r\n=3Oks\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHOiaQQOF3noY/Y+RLx/oRX6790hMP5MqjPyGP74UQVYAiEAivnD95OrbDxV72GNdTda8A1+7B9irdPkOURcoghrN6A="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.9.2_1589178690696_0.19668164237450658"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"7.0.0-alpha.4":{"name":"@redux-model/taro","version":"7.0.0-alpha.4","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","prebuild":"sh ../../scripts/link.sh","preinstall":"sh ../../scripts/link.sh","focuslink":"rm -rf src/core && ln -s $(dirname $PWD)/core src/core"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"clone":"2.1.2","immer":"7.0.5","qs":"6.9.4","tslib":"2.0.0"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/clone":"^0.1.30","@types/qs":"^6.9.3","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","public-refactor":"^0.5.1","react-redux":"^7.2.0","redux":"^4.0.5","typescript":"^3.9.6"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"303872b4185926f62a091191196d70ba8267dec6","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\nRedux Model is created to enhance original redux framework, which has complex development flow and lots of template fragments.\n\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# Features\n\n* Less code and higher efficiency\n* Modify reducer by MVVM\n* Absolutely 100% static type checking with typescript\n* Trace loading status for each request action\n* Support react hooks\n\n# Installation\n\n#### React or React-Native\n```bash\nnpm install @redux-model/react redux react-redux\n```\n\n#### Taro 3.0+\n```bash\nnpm install @redux-model/taro redux react-redux\n```\nFor `taro@2`, install @redux-model/taro@6.9.2\n\n#### Vue 3.0+\n```bash\nnpm install @redux-model/vue redux\n```\nFor `vue@2`, install @redux-model/vue@6.9.2\n\n# Define Model\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n    increase = this.action((state) => {\n        state.counter += 1;\n    });\n\n    getUser = $api.action((id: number) => {\n        return this\n            .get<Response>(`/api/user/${id}`)\n            .onSuccess((state, action) => {\n                state.counter += 1;\n                state.users[id] = action.response;\n            });\n    });\n\n    protected initReducer(): Data {\n        return {\n            counter: 0,\n            users: {},\n        };\n    }\n}\n\nexport const testModel = new TestModel();\n```\n\n# With React Hooks\n```typescript jsx\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    const increase = () => {\n        testModel.increase();\n        testModel.getUser(3);\n    };\n\n    return (\n        <button onClick={increase}>\n            {loading ? 'Waiting...' : `You clicked ${counter} times`}\n        </button>\n    );\n};\n\nexport default App;\n```\n\n# With Redux connect\n```typescript jsx\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nclass App extends Component<Props> {\n    increase() {\n        testModel.increase();\n        testModel.getUser(3);\n    }\n\n    render() {\n        const { loading, counter } = this.props;\n        return (\n            <button onClick={this.increase}>\n                {loading ? 'Waiting...' : `You clicked ${counter} times`}\n            </button>\n        );\n    }\n}\n\nconst mapStateToProps = () => {\n    return {\n        counter: testModel.data.counter,\n        loading: testModel.getUser.loading,\n    };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# With Vue\n```vue\n<template>\n  <button @click=\"increase\">\n    {{loading ? 'Waiting...' : `You clicked ${counter} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n  name: 'HelloWorld',\n  methods: {\n    increase() {\n      testModel.increase();\n      testModel.getUser(3);\n    },\n  },\n  computed: {\n    counter() {\n      return testModel.data.counter;\n    },\n    loading() {\n        return testModel.getUser.loading;\n    },\n  },\n};\n</script>\n```\n\n# Demos\n\n* [React Web](https://github.com/redux-model/redux-model-web-demo)\n\n# Documents\n\nHere is the [document](https://redux-model.github.io/redux-model)\n\n---------------------\n\nFeel free to use it and welcome to send PR to me.\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@7.0.0-alpha.4","_nodeVersion":"10.13.0","_npmVersion":"lerna/3.22.1/node@v10.13.0+x64 (darwin)","dist":{"integrity":"sha512-ZL5MEZzFPHsSkElZKziyTa21vscV5XZGvxCPjX2aWfUoeS5Wbp2/jA/1Q/2MIbFH+AInAjTv/pxD5epMycWWAw==","shasum":"9e440781a563ba7b486de99af5f284a722166ca9","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-7.0.0-alpha.4.tgz","fileCount":81,"unpackedSize":115457,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfDVZnCRA9TVsSAnZWagAAsYsP/0qlb81lSTXzFAMJAwBH\nSK5pKNAqew9sBDuymuttXlS0GbsTbjfwgDO6xmKGKMF2wYoXAQQ3CtPxZc6Y\no8qo8DYoV3KkEH+G5bAl6Q1ydPRKM4m2Ejsxa1L0WQwFEyGNw+jrfRiz71z9\nY2Pz+yHHqSq5yJ0vtBgMKk6Vo26hbOLjTEMdlOAo6Ofv5it4o/l4SHcsYdFh\n3mFynITOgUx8SL4F5e/vmIZy9gBt3rBq9jqnIMh6i/k+IGsyhf/WAyAZfned\n9YKYiAF88W0KIsKssKi5ePaOVgQRuapkpnqNzTsUIT2NjEr5nIL9KRFZGlbF\nJjZU9Un2gJQuE12XoWnc2GkSiAZ4QEurVR1qK6WzwOR/7BY63VJlbYhf3+dY\nelaH0ooNc5wdF4+GtNx4tvxKZ9NRTlcb4IyHclbEkCvwGZcyxtyJJf8D22YD\ncq7n1pXUKl8kXtxK+MSwkuXphnpUGjKGqhIJf/55KkrgdChSYBK0tj+Lyoa5\nt9RQ4ykjVuj83DeMY7eUPO8PpHvQQF60OsUTfLWBa/eI6QEwMus24ZqO85+/\nu0rLH/24k4xTWfbaFVqIWGq1e4b+I1hKxaZfbmXv/vzitNjrMpfulWT1gz+Z\nFxLpNzo8vaGpuuM+PIq3Lisau7dAXYJGjlW4G/qtVAcKaNKFW/EjQGyKk3ZO\nP/tT\r\n=Hxnp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDIiTeBAHv7Zat4tuYMDxqaadjbXtjht75RaX26m8Wv5gIgdLJ7WDJ4oWxYrKL4KlWcTvzeCPDcUGestwXLkoVYEUk="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_7.0.0-alpha.4_1594709607158_0.13645973670453326"},"_hasShrinkwrap":false},"7.0.0-alpha.6":{"name":"@redux-model/taro","version":"7.0.0-alpha.6","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","prebuild":"yarn link","link":"sh ../../scripts/link.sh","forcelink":"rm -rf src/core && ln -s $(dirname $PWD)/core src/core","clean":"rm -rf ./build","outdated":"yarn outdated"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"clone":"2.1.2","immer":"7.0.5","qs":"6.9.4","tslib":"2.0.0"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/clone":"^0.1.30","@types/qs":"^6.9.3","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","public-refactor":"^0.5.1","react-redux":"^7.2.0","redux":"^4.0.5","typescript":"^3.9.6"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"322e687b0807e1be08ae630a1b8e81a22aa2148c","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\nRedux Model is created to enhance original redux framework, which has complex development flow and lots of template fragments.\n\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# Features\n\n* Less code and higher efficiency\n* Modify reducer by MVVM\n* Absolutely 100% static type checking with typescript\n* Trace loading status for each request action\n* Support react hooks\n\n# Installation\n\n#### React or React-Native\n```bash\nnpm install @redux-model/react redux react-redux\n```\n\n#### Taro 3.0+\n```bash\nnpm install @redux-model/taro redux react-redux\n```\nFor `taro@2`, install @redux-model/taro@6.9.2\n\n#### Vue 3.0+\n```bash\nnpm install @redux-model/vue redux\n```\nFor `vue@2`, install @redux-model/vue@6.9.2\n\n# Define Model\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n    increase = this.action((state) => {\n        state.counter += 1;\n    });\n\n    getUser = $api.action((id: number) => {\n        return this\n            .get<Response>(`/api/user/${id}`)\n            .onSuccess((state, action) => {\n                state.counter += 1;\n                state.users[id] = action.response;\n            });\n    });\n\n    protected initReducer(): Data {\n        return {\n            counter: 0,\n            users: {},\n        };\n    }\n}\n\nexport const testModel = new TestModel();\n```\n\n# With React Hooks\n```typescript jsx\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    const increase = () => {\n        testModel.increase();\n        testModel.getUser(3);\n    };\n\n    return (\n        <button onClick={increase}>\n            {loading ? 'Waiting...' : `You clicked ${counter} times`}\n        </button>\n    );\n};\n\nexport default App;\n```\n\n# With Redux connect\n```typescript jsx\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nclass App extends Component<Props> {\n    increase() {\n        testModel.increase();\n        testModel.getUser(3);\n    }\n\n    render() {\n        const { loading, counter } = this.props;\n        return (\n            <button onClick={this.increase}>\n                {loading ? 'Waiting...' : `You clicked ${counter} times`}\n            </button>\n        );\n    }\n}\n\nconst mapStateToProps = () => {\n    return {\n        counter: testModel.data.counter,\n        loading: testModel.getUser.loading,\n    };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# With Vue\n```vue\n<template>\n  <button @click=\"increase\">\n    {{loading ? 'Waiting...' : `You clicked ${counter} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n  name: 'HelloWorld',\n  methods: {\n    increase() {\n      testModel.increase();\n      testModel.getUser(3);\n    },\n  },\n  computed: {\n    counter() {\n      return testModel.data.counter;\n    },\n    loading() {\n        return testModel.getUser.loading;\n    },\n  },\n};\n</script>\n```\n\n# Demos\n\n* [React Web](https://github.com/redux-model/redux-model-web-demo)\n\n# Documents\n\nHere is the [document](https://redux-model.github.io/redux-model)\n\n---------------------\n\nFeel free to use it and welcome to send PR to me.\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@7.0.0-alpha.6","_nodeVersion":"10.13.0","_npmVersion":"lerna/3.22.1/node@v10.13.0+x64 (darwin)","dist":{"integrity":"sha512-kOxkWddwAVzjXwNnP4CgzoDAGLJELpFE7bSwxCuvFRtqgFDTCBv5iCDkaSZlg26FDmaR4Go/0rJyKkz/QFCmsA==","shasum":"2f20f47b739b5903b18daaeac3252afc23a85233","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-7.0.0-alpha.6.tgz","fileCount":81,"unpackedSize":115500,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfDVsTCRA9TVsSAnZWagAAeDUP/A9tT9fgin8J9MCVAIOP\n3muQLM5jzOyLfC+jnEctdVQO4p5HxawEWBI+zDgw9JCXmf9Qv26TMLpYsKML\n1U1fAJq9OFaC9B7XbD93Bxa9wwPLfqNpUOlY9jtN/yImBUrfpYnXqIVMJfEy\nvSXjqW3qp/lDueyVfvzE+gBdCpZLAEi2pPJNho18cklyCShWxGTFjD7lZhHZ\ncdLr93jj1zHpyPmRZT7iq4BjQmMudhKEACjFFMVr5dFi1C4QAyvnt76zDLd4\n+zFFieXfQ3UpMEcFosbN3366ghBAe0T7wdSCfSvKmpMCu27ApKeDk8NVX7ro\nmWZOdlrTUUFTDtlHjKBdXhOKODvxZCu/7JHDGmwjbIAa5FLv6v48YaJc1nW6\nBhLFMGlHBW+BxJrUtwib6PrPeKGyUg8ffdNSQsBiy1DlF526vgGBbih8ehk5\nOPzCjD/DwhU6RziiyDVk0wMoSKwijFYnN7OFdKTczzZI58mCeHzIKsuZTWSy\nWx+Kt3Hewv27wyh7FMUVY5Jy7FoMK9ttEHkrZCDcUle/GSzfFfDM895KfYu+\nK6lXzx/EFwzcuYavlRG3BkqUACnX17OSAam4LhnItVIdbXXT7oRpL+8AAQKo\nRAwxKCwUcLeMGiDnyQHSi56nlxbqNB00Bs6RPDkeGmSwWlnoLOiPMgCCexVG\n9d1A\r\n=3DVC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCirtZtZKhFAF5FxcoZXPqBPhVYjjXABqNuRX1G42RnYwIhAO1AoTbdLc3G+Y3PcqGFlUjplijcHZGoeZIyIEJeGnYh"}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_7.0.0-alpha.6_1594710802814_0.09232260812768645"},"_hasShrinkwrap":false},"7.0.0-alpha.7":{"name":"@redux-model/taro","version":"7.0.0-alpha.7","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","prebuild":"yarn run link","link":"sh ../../scripts/link.sh","forcelink":"sh ../../scripts/forcelink.sh","clean":"rm -rf ./build","outdated":"yarn outdated"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"clone":"2.1.2","immer":"7.0.5","qs":"6.9.4","tslib":"2.0.0"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/qs":"^6.9.3","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","public-refactor":"^0.5.1","react-redux":"^7.2.0","typescript":"^3.9.6"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"0d6caae29a658853836180e3124d3b37dd382310","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\nRedux Model is created to enhance original redux framework, which has complex development flow and lots of template fragments.\n\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# Features\n\n* Less code and higher efficiency\n* Modify reducer by MVVM\n* Absolutely 100% static type checking with typescript\n* Trace loading status for each request action\n* Support react hooks\n\n# Installation\n\n#### React or React-Native\n```bash\nnpm install @redux-model/react redux react-redux\n```\n\n#### Taro 3.0+\n```bash\nnpm install @redux-model/taro redux react-redux\n```\nFor `taro@2`, install @redux-model/taro@6.9.2\n\n#### Vue 3.0+\n```bash\nnpm install @redux-model/vue redux\n```\nFor `vue@2`, install @redux-model/vue@6.9.2\n\n# Define Model\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n    increase = this.action((state) => {\n        state.counter += 1;\n    });\n\n    getUser = $api.action((id: number) => {\n        return this\n            .get<Response>(`/api/user/${id}`)\n            .onSuccess((state, action) => {\n                state.counter += 1;\n                state.users[id] = action.response;\n            });\n    });\n\n    protected initReducer(): Data {\n        return {\n            counter: 0,\n            users: {},\n        };\n    }\n}\n\nexport const testModel = new TestModel();\n```\n\n# With React Hooks\n```typescript jsx\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    const increase = () => {\n        testModel.increase();\n        testModel.getUser(3);\n    };\n\n    return (\n        <button onClick={increase}>\n            {loading ? 'Waiting...' : `You clicked ${counter} times`}\n        </button>\n    );\n};\n\nexport default App;\n```\n\n# With Redux connect\n```typescript jsx\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nclass App extends Component<Props> {\n    increase() {\n        testModel.increase();\n        testModel.getUser(3);\n    }\n\n    render() {\n        const { loading, counter } = this.props;\n        return (\n            <button onClick={this.increase}>\n                {loading ? 'Waiting...' : `You clicked ${counter} times`}\n            </button>\n        );\n    }\n}\n\nconst mapStateToProps = () => {\n    return {\n        counter: testModel.data.counter,\n        loading: testModel.getUser.loading,\n    };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# With Vue\n```vue\n<template>\n  <button @click=\"increase\">\n    {{loading ? 'Waiting...' : `You clicked ${counter} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n  name: 'HelloWorld',\n  methods: {\n    increase() {\n      testModel.increase();\n      testModel.getUser(3);\n    },\n  },\n  computed: {\n    counter() {\n      return testModel.data.counter;\n    },\n    loading() {\n        return testModel.getUser.loading;\n    },\n  },\n};\n</script>\n```\n\n# Demos\n\n* [React Web](https://github.com/redux-model/redux-model-web-demo)\n\n# Documents\n\nHere is the [document](https://redux-model.github.io/redux-model)\n\n---------------------\n\nFeel free to use it and welcome to send PR to me.\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@7.0.0-alpha.7","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-eKxvo0ylb0kNjRbecnj8WWrv64sR9Eye1VqrWoB6sC1U76zbTSpNvnbfk8lVRTjJjelS2mykU/IK6e4c5E1+Dg==","shasum":"90b7027ba20fd22222fc106832e8f141eac37a1a","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-7.0.0-alpha.7.tgz","fileCount":81,"unpackedSize":116734,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfDzaQCRA9TVsSAnZWagAAVxoP+wSGe+PFTptI0rKQCp+b\nMkoqaO/IMslN5h+T++PLmtnCmgWsQaxFpwa1cEBtqFtArdrJ08Zw/0VM+Abn\nJ2fX/68oD2VUc5av4CajxQnHNTbySSqS+rZYZ1NVS6nmhiJC6n/GYq2k5TXT\nPj65/xZFvoHK//ZrInLwkdWFa5wpTrWRQ5erkj1lXRYdHv+965gNr8NozTAn\nEUAjWOlUGEbJf7bfIlBoipQBXOoVHOOw/aAmox5y0SOzjp3OS7m4qJod8ih5\nScETdHPz14TDjLOWSFIXodeoLyLb2WGfsx8UuISe3H+IllKPQdr9gDNdA/P3\nA2bBsu35+zgyQuYvkVso63UDdGHpMtcMBniN3luRTtYumDrWOfMd9rGdCvft\npP3sFuMuAMAzMRgm7+L7u8l/krNqG/5h51kw3bilX4RUNfhe90dryj7GRCpC\nLiOo97Aa6I5FDG/sX6M5bS+LDa7CYSh7zHzNHp3MGuaCfqt+7ldhLMj0KPNF\nLh7MNg7FNjddI4qQp2EbmAMElkUdXUXNbJYg4dxJ1Pr9ZkyPtYv8EzPVCDnP\ns9ItjSY2DQztmHfxPn01xyggdoyTkgJL7ftjHT2TnB8Zc+uPPXUHTJ1Ip/o8\n0zDDO7VuGqs3IZVJ29Vj0JWJCGBZEXaOCkE3wUERk01dTGOItESITORQqTBm\nC6zw\r\n=60ND\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHThnhub4tbdDDUHCPffiaSkV12Zo5TOeDAe7qbw2nNMAiEArdSHFAx4vDpMNWVFRu1yEIiVK8xZ7BTzuCtSlArabbw="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_7.0.0-alpha.7_1594832528565_0.7069509586591678"},"_hasShrinkwrap":false},"7.0.0-beta.0":{"name":"@redux-model/taro","version":"7.0.0-beta.0","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","prebuild":"yarn run link","link":"sh ../../scripts/link.sh","forcelink":"sh ../../scripts/forcelink.sh","clean":"rm -rf ./build","outdated":"yarn outdated"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"clone":"2.1.2","immer":"7.0.5","qs":"6.9.4","tslib":"2.0.0"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/qs":"^6.9.3","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","react-redux":"^7.2.0"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"4a4f8e5b07cd652da146a31a193eb69823f0394e","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\nRedux Model is created to enhance original redux framework, which has complex development flow and lots of template fragments.\n\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# Features\n\n* Less code and higher efficiency\n* Modify reducer by MVVM\n* Absolutely 100% static type checking with typescript\n* Trace loading status for each request action\n* Support react hooks\n\n# Installation\n\n### React or React-Native\n```bash\nnpm install @redux-model/react redux react-redux\n```\n\n### Taro v3\n```bash\nnpm install @redux-model/taro redux react-redux\n```\n\n### Vue v3\n```bash\nnpm install @redux-model/vue redux\n```\n\n### Others\n* For `taro < 3`, install @redux-model/taro@6.9.2 instead\n* For `vue < 3`, install @redux-model/vue@6.9.2 instead\n\n# Define Model\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n    increase = this.action((state) => {\n        state.counter += 1;\n    });\n\n    getUser = $api.action((id: number) => {\n        return this\n            .get<Response>(`/api/user/${id}`)\n            .onSuccess((state, action) => {\n                state.counter += 1;\n                state.users[id] = action.response;\n            });\n    });\n\n    protected initReducer(): Data {\n        return {\n            counter: 0,\n            users: {},\n        };\n    }\n}\n\nexport const testModel = new TestModel();\n```\n\n# With React Hooks\n```typescript jsx\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    const increase = () => {\n        testModel.increase();\n        testModel.getUser(3);\n    };\n\n    return (\n        <button onClick={increase}>\n            {loading ? 'Waiting...' : `You clicked ${counter} times`}\n        </button>\n    );\n};\n\nexport default App;\n```\n\n# With Redux connect\n```typescript jsx\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nclass App extends Component<Props> {\n    increase() {\n        testModel.increase();\n        testModel.getUser(3);\n    }\n\n    render() {\n        const { loading, counter } = this.props;\n        return (\n            <button onClick={this.increase}>\n                {loading ? 'Waiting...' : `You clicked ${counter} times`}\n            </button>\n        );\n    }\n}\n\nconst mapStateToProps = () => {\n    return {\n        counter: testModel.data.counter,\n        loading: testModel.getUser.loading,\n    };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# With Vue\n```vue\n<template>\n  <button @click=\"increase\">\n    {{loading ? 'Waiting...' : `You clicked ${counter} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n  name: 'HelloWorld',\n  methods: {\n    increase() {\n      testModel.increase();\n      testModel.getUser(3);\n    },\n  },\n  computed: {\n    counter() {\n      return testModel.data.counter;\n    },\n    loading() {\n        return testModel.getUser.loading;\n    },\n  },\n};\n</script>\n```\n\n# Demos\n\n* [React Web](https://github.com/redux-model/redux-model-web-demo)\n\n# Documents\n\nHere is the [document](https://redux-model.github.io/redux-model)\n\n---------------------\n\nFeel free to use it and welcome to send PR to me.\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@7.0.0-beta.0","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-V4Zrn6aaPKrFp7uEQpohdGDXvilG08AV5rFtK4hp5woc9xuZTPhAYB4BWdfiB2Pt6NPAfMOYZBTmwngQlmHbtA==","shasum":"748095c724c93d6bb2165ae82f47cf9326a88793","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-7.0.0-beta.0.tgz","fileCount":81,"unpackedSize":116947,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfD89SCRA9TVsSAnZWagAA4OcQAIBo4fDON979cDGD5pgn\ns5JAsujGPY228tEg6vnJEviLTNDHYdmLrd1jwk/GZVgewzXA+RWWpaw4fwAG\npty8DxhENMPN8DCciK/Hh+i1+FaAYEvh6hB+J/V8JfxKWilaZtiUPmChfhy6\nRhiHUKwffI9nWA/IHK1Qhn/prDnoq5h+CfabRCcWXQddbwQcXuFPWGV+qilg\njvkJxvNbDyLs8kLu5xcr3eE9QJfzNTzRo0Ew0yYE9xpRPlA+a3o96ZSry75r\nnjDsr39l/t5i+aezjcRIfbPPibKVmxMGp5QPayZgpJ4lC6cV5Ig2AkwSq2L1\nMtwwBDtCX/EsDWK0Wl2QjvFQGd6mMvW4npTDVm3m58G9trncQLocTxtnRJ8E\nU6asfrCjZLgK59esLSoQnxDEaE37Td42oty+C92wpMP/enjnYw/AfIw7W8Hl\n7YOR5YruooiVBaeB3MSYKDhBnZfvPhyuo5X3bpM3Qt16EhaxR56uRqHW+9AT\noPQTIuqjRZJFvCI8abxctPzVVaE0uRwb4iss1+VFMJiJznmyaxDfbjlT0BMw\nwk49G7NPz/oagvNWK4T/0UMSr07Ks/NbPFIUUu0omVbM+4SjQvnSAQmivMJR\nocz6JJ4afAUoEfDUNN6YKRarJhENktEu9eU8CEFYD98Rk5j+6Fr6IvDLXVy7\nmAZM\r\n=GPFb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDGRP1PLRgRU1FW/6udLgEaxNLbA2axKOhIpxKsqXAvgAIgLa4ytoRkAJOH8IWP4G2BghRm1lbVanRiiw1Or/u08wo="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_7.0.0-beta.0_1594871634203_0.4244383059829624"},"_hasShrinkwrap":false},"7.0.0-beta.2":{"name":"@redux-model/taro","version":"7.0.0-beta.2","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","prebuild":"yarn run link","link":"sh ../../scripts/link.sh","forcelink":"sh ../../scripts/forcelink.sh","clean":"rm -rf ./build","outdated":"yarn outdated"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"clone":"2.1.2","immer":"7.0.5","qs":"6.9.4","tslib":"2.0.0"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/qs":"^6.9.3","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","react-redux":"^7.2.0"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"b842f1adb2cecfebf7055733ce7315d8410825f7","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\nRedux Model is created to enhance original redux framework, which has complex development flow and lots of template fragments.\n\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# Features\n\n* Less code and higher efficiency\n* Modify reducer by MVVM\n* Absolutely 100% static type checking with typescript\n* Trace loading status for each request action\n* Support react hooks\n\n# Installation\n\n### React or React-Native\n```bash\nnpm install @redux-model/react redux react-redux\n```\n\n### Taro v3\n```bash\nnpm install @redux-model/taro redux react-redux\n```\n\n### Vue v3\n```bash\nnpm install @redux-model/vue redux\n```\n\n### Others\n* For `taro < 3`, install @redux-model/taro@6.9.2 instead\n* For `vue < 3`, install @redux-model/vue@6.9.2 instead\n\n# Define Model\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n    increase = this.action((state) => {\n        state.counter += 1;\n    });\n\n    getUser = $api.action((id: number) => {\n        return this\n            .get<Response>(`/api/user/${id}`)\n            .onSuccess((state, action) => {\n                state.counter += 1;\n                state.users[id] = action.response;\n            });\n    });\n\n    protected initReducer(): Data {\n        return {\n            counter: 0,\n            users: {},\n        };\n    }\n}\n\nexport const testModel = new TestModel();\n```\n\n# With React Hooks\n```typescript jsx\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    const increase = () => {\n        testModel.increase();\n        testModel.getUser(3);\n    };\n\n    return (\n        <button onClick={increase}>\n            {loading ? 'Waiting...' : `You clicked ${counter} times`}\n        </button>\n    );\n};\n\nexport default App;\n```\n\n# With Redux connect\n```typescript jsx\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nclass App extends Component<Props> {\n    increase() {\n        testModel.increase();\n        testModel.getUser(3);\n    }\n\n    render() {\n        const { loading, counter } = this.props;\n        return (\n            <button onClick={this.increase}>\n                {loading ? 'Waiting...' : `You clicked ${counter} times`}\n            </button>\n        );\n    }\n}\n\nconst mapStateToProps = () => {\n    return {\n        counter: testModel.data.counter,\n        loading: testModel.getUser.loading,\n    };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# With Vue\n```vue\n<template>\n  <button @click=\"increase\">\n    {{loading ? 'Waiting...' : `You clicked ${counter} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n  name: 'HelloWorld',\n  methods: {\n    increase() {\n      testModel.increase();\n      testModel.getUser(3);\n    },\n  },\n  computed: {\n    counter() {\n      return testModel.data.counter;\n    },\n    loading() {\n        return testModel.getUser.loading;\n    },\n  },\n};\n</script>\n```\n\n# Demos\n\n* [React Web](https://github.com/redux-model/redux-model-web-demo)\n\n# Documents\n\nHere is the [document](https://redux-model.github.io/redux-model)\n\n---------------------\n\nFeel free to use it and welcome to send PR to me.\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@7.0.0-beta.2","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-1zodU6fEbqkp7QUF2kA/k1lay7DXyjntXfwpRuygMk98rr8WYr+YfAN2lZoEauh06DG+CR+QpKYxUiMy+2VrMg==","shasum":"aa10bed387dce0ce7ec2b4a10bf4237bc894541d","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-7.0.0-beta.2.tgz","fileCount":81,"unpackedSize":116932,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfECt6CRA9TVsSAnZWagAAkvQQAIXVwrO8hITYGfv057P0\nbL+s789xG6RuXZghBRHx4YIsPgUdubelsBozHcmFC5DxeSj+L00c/qnrbm/3\nokkrwyAjjbpL7nqSBowEhPqdA9ybWXXDauSDiCZJa3pGZEgo1pqn8Nx0zvh3\nGgZ2XDIGKo9i/xOZiBlhIKY1V62GKd4nPrPCWaZ4ge5YkiubS9cbYrYuCOdB\nYUjIX6WiHtiVFNXE5ODMWmcGweigYs40MsduTD6qo7LPU6vG5wgtgRedLHCx\nw1kOwOyX0ZH1zx7Lujrw9CiJtbpnzMQJvDj+giJQeIjMhnVYU7TNGEzD3jFZ\nmxgVQAlHfLb43zslWluw0TjWb00x0ygK8HhIRi+w3RzOGOEv4T9MIefB3ouA\nFQvraZNbGe3VvLarXvCIctV+EI8OoIkl9wuC4kl4+BTQxHylVcI+y+P/cawS\nhA6MNrc1agRrKD5i/g7QUx6Xkevkgd6epuwIFrV34lpOhK2B7enXpNyadceW\nvpWP/QaLhavjX22dPtegoOOP4888sJi8UFkOxhvSpR0RyXvKRD5ykY+4uqPE\nv0lhDYwqmKVxF5J0aB3LVb3cJER3DnlMlj/nt96QXssrtJ+/xacIsRoa41xp\nawlPA56n+vOg/RocUjHqQg5HyJ9Wa3Wp53+7MT71Rpvr0F6F7eOWKSXKiB/1\npP8T\r\n=vChK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCw2plLprm1VMfyqApBV6WBHH9Le2JVsZ8auVoqYJtxyAIgC/aaf7OGJN2YcCDe6KKsmQiU9EFoRHyLr2Pa49Pq4S4="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_7.0.0-beta.2_1594895226484_0.9798065222781598"},"_hasShrinkwrap":false},"7.0.0-beta.3":{"name":"@redux-model/taro","version":"7.0.0-beta.3","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","prebuild":"yarn run link","link":"sh ../../scripts/link.sh","forcelink":"sh ../../scripts/forcelink.sh","clean":"rm -rf ./build","outdated":"yarn outdated"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"clone":"2.1.2","immer":"7.0.5","qs":"6.9.4","tslib":"2.0.0"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/qs":"^6.9.3","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","react-redux":"^7.2.0"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"49f81302616ce29aaf53ade32d310e7fc9bef0c4","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\nRedux Model is created to enhance original redux framework, which has complex development flow and lots of template fragments.\n\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# Features\n\n* Less code and higher efficiency\n* Modify reducer by MVVM\n* Absolutely 100% static type checking with typescript\n* Trace loading status for each request action\n* Support react hooks\n\n# Installation\n\n### React or React-Native\n```bash\nnpm install @redux-model/react redux react-redux\n```\n\n### Taro v3\n```bash\nnpm install @redux-model/taro redux react-redux\n```\n\n### Vue v3\n```bash\nnpm install @redux-model/vue redux\n```\n\n### Others\n* For `taro < 3`, install @redux-model/taro@6.9.2 instead\n* For `vue < 3`, install @redux-model/vue@6.9.2 instead\n\n# Define Model\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n    increase = this.action((state) => {\n        state.counter += 1;\n    });\n\n    getUser = $api.action((id: number) => {\n        return this\n            .get<Response>(`/api/user/${id}`)\n            .onSuccess((state, action) => {\n                state.counter += 1;\n                state.users[id] = action.response;\n            });\n    });\n\n    protected initReducer(): Data {\n        return {\n            counter: 0,\n            users: {},\n        };\n    }\n}\n\nexport const testModel = new TestModel();\n```\n\n# With React Hooks\n```typescript jsx\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    const increase = () => {\n        testModel.increase();\n        testModel.getUser(3);\n    };\n\n    return (\n        <button onClick={increase}>\n            {loading ? 'Waiting...' : `You clicked ${counter} times`}\n        </button>\n    );\n};\n\nexport default App;\n```\n\n# With Redux connect\n```typescript jsx\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nclass App extends Component<Props> {\n    increase() {\n        testModel.increase();\n        testModel.getUser(3);\n    }\n\n    render() {\n        const { loading, counter } = this.props;\n        return (\n            <button onClick={this.increase}>\n                {loading ? 'Waiting...' : `You clicked ${counter} times`}\n            </button>\n        );\n    }\n}\n\nconst mapStateToProps = () => {\n    return {\n        counter: testModel.data.counter,\n        loading: testModel.getUser.loading,\n    };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# With Vue\n```vue\n<template>\n  <button @click=\"increase\">\n    {{loading ? 'Waiting...' : `You clicked ${counter} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n  name: 'HelloWorld',\n  methods: {\n    increase() {\n      testModel.increase();\n      testModel.getUser(3);\n    },\n  },\n  computed: {\n    counter() {\n      return testModel.data.counter;\n    },\n    loading() {\n        return testModel.getUser.loading;\n    },\n  },\n};\n</script>\n```\n\n# Demos\n\n* [React Web](https://github.com/redux-model/redux-model-web-demo)\n\n# Documents\n\nHere is the [document](https://redux-model.github.io/redux-model)\n\n---------------------\n\nFeel free to use it and welcome to send PR to me.\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@7.0.0-beta.3","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-nBosf5IYYVCdCc/hHu/gQ3ws5NcPBk8cWzm69H1OF+O8wGiqJN3n0WqJMkCFklome5NblPpjglAN91UZ33BRsw==","shasum":"c0ca6b2fb7d4e327be7d3e0c3837fd8478cb8bf0","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-7.0.0-beta.3.tgz","fileCount":81,"unpackedSize":117051,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfEDL/CRA9TVsSAnZWagAAaPUP/RrLNcfXZpNdlByf+H4P\nvPOV0Fux7mBjdECR9iIWk1R2aeSmek//otz2HKpn2xb4jjpjUGQq4b0EaHdw\n/HmaCrQCjR1bXgClY9mYBSOPBGmuHLKBfij5eKxxcnao6LJJCF3cGI+4l56q\nbXMFjHAc4CEEjcxq/lMPgZNgDUlcvZLqUyOXTg11VeP21T8035uVuwR815vU\nM9jHu6qStAM2f2wo7smWsunKSr3uPY/7/Agxrtw7Fpf7zaN5rGDRB7A4qQhX\nWDiQiVsEyMnJ3M9Dyo8shJ5Gys/pFSqvTqijU/YB2cB6XR7NJ5/Sa+yEqCeS\nK2Tzyxtj+o5SHJdW4AliuiZtq+TwW2QF7E6RZU7yBdWLS0drZBrHgwbJXldG\n3mdYBfCfxziTieZ8vnvR6R/lPhgL61fXHrqv5mdTKOD7GCoXSeUlbnS1q+/S\nj+OieQTzC9An/iMo9Eb7f6QoI/C9iWoywm18K7aIT/iLaXoK96CMftnbYfFI\nfrnhyKZCvkN70IMqzoAz9KsTVb6/nHX5YvZXF7pHv59quxFuahH/UFZYq8bZ\ndTbHiXR2i95Girl1jt6opDlMBlMsk48mz91/PbVALIHsdqWz9vueSTKsohXa\nxwF8p8IXQI0cs5ub6Kz+61vJb1fmBw7y2myYLDCiUoPs+d83K183XPRTBksC\n8yZ/\r\n=jOZx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDb1XDf3kq611Hu/N+8muWI7F2F6PBx6a8UKml4AEl/AAiBpRyfRyA2+j86g7e9v6+KRVM+2H0Kyo/FrTelz6GpSTQ=="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_7.0.0-beta.3_1594897151286_0.8968176670028871"},"_hasShrinkwrap":false},"7.0.0-beta.4":{"name":"@redux-model/taro","version":"7.0.0-beta.4","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","prebuild":"yarn run link","link":"sh ../../scripts/link.sh","forcelink":"sh ../../scripts/forcelink.sh","clean":"rm -rf ./build","outdated":"yarn outdated"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"clone":"2.1.2","immer":"7.0.5","qs":"6.9.4","tslib":"2.0.0"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","react-redux":"^7.2.0"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"5c53e08e6b1b9208ed81210d373da11fbc7c7a0d","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\nRedux Model is created to enhance original redux framework, which has complex development flow and lots of template fragments.\n\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# Features\n\n* Less code and higher efficiency\n* Modify reducer by MVVM\n* Absolutely 100% static type checking with typescript\n* Trace loading status for each request action\n* Support react hooks\n\n# Installation\n\n### React or React-Native\n```bash\nnpm install @redux-model/react redux react-redux\n```\n\n### Taro v3\n```bash\nnpm install @redux-model/taro redux react-redux\n```\n\n### Vue v3\n```bash\nnpm install @redux-model/vue redux\n```\n\n### Others\n* For `taro < 3`, install @redux-model/taro@6.9.2 instead\n* For `vue < 3`, install @redux-model/vue@6.9.2 instead\n\n# Define Model\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n    increase = this.action((state) => {\n        state.counter += 1;\n    });\n\n    getUser = $api.action((id: number) => {\n        return this\n            .get<Response>(`/api/user/${id}`)\n            .onSuccess((state, action) => {\n                state.counter += 1;\n                state.users[id] = action.response;\n            });\n    });\n\n    protected initReducer(): Data {\n        return {\n            counter: 0,\n            users: {},\n        };\n    }\n}\n\nexport const testModel = new TestModel();\n```\n\n# With React Hooks\n```typescript jsx\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    const increase = () => {\n        testModel.increase();\n        testModel.getUser(3);\n    };\n\n    return (\n        <button onClick={increase}>\n            {loading ? 'Waiting...' : `You clicked ${counter} times`}\n        </button>\n    );\n};\n\nexport default App;\n```\n\n# With Redux connect\n```typescript jsx\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nclass App extends Component<Props> {\n    increase() {\n        testModel.increase();\n        testModel.getUser(3);\n    }\n\n    render() {\n        const { loading, counter } = this.props;\n        return (\n            <button onClick={this.increase}>\n                {loading ? 'Waiting...' : `You clicked ${counter} times`}\n            </button>\n        );\n    }\n}\n\nconst mapStateToProps = () => {\n    return {\n        counter: testModel.data.counter,\n        loading: testModel.getUser.loading,\n    };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# With Vue\n```vue\n<template>\n  <button @click=\"increase\">\n    {{loading ? 'Waiting...' : `You clicked ${counter} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n  name: 'HelloWorld',\n  methods: {\n    increase() {\n      testModel.increase();\n      testModel.getUser(3);\n    },\n  },\n  computed: {\n    counter() {\n      return testModel.data.counter;\n    },\n    loading() {\n        return testModel.getUser.loading;\n    },\n  },\n};\n</script>\n```\n\n# Demos\n\n* [React Web](https://github.com/redux-model/redux-model-web-demo)\n\n# Documents\n\nHere is the [document](https://redux-model.github.io/redux-model)\n\n---------------------\n\nFeel free to use it and welcome to send PR to me.\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@7.0.0-beta.4","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-qjsXtOmTR9c+tsOQ95lryJ1To73OKF9OFF8PeScrITdL/FTsThEygFRqCD3c3vKkcYzg0k99QjUIstI2AMHsPQ==","shasum":"0bf057531d28203c0bcd6485098f4e8d7944f031","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-7.0.0-beta.4.tgz","fileCount":81,"unpackedSize":117459,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfEEzeCRA9TVsSAnZWagAAgGAP/0p2b2gKVrO02GMzCeMF\nYAccw1K91UBN5lajgbEPH9DXfW6lFEphw2Bz1azlVTtlB7CN+a6lNxGwHA5A\nmEfsqps3FuZ7sgbbW11iuFNQVvqTbxH4ERBu4MhXp4S6yYH7bI6eMA4vj4wF\n/rNJlw5TgFUqj4Asq2ZLDGB1paH3fcoTXljwsembVwC6qZaSwB2Y6m4fAoSq\n/xsOAigkV7Sambn9fjyUvv9CI5hMlVM6pShn9cEOY6E6OzYMJfa4waCcyN/b\nIoTrAV1FmYxwO2QtDKpUIGBzN0V9KGVuqFF/NK6rdbaONIfFTjI7ugEZlvpS\nK39SNbMy1bhsemgVeOC7iu0e0LaL9yysjf/jd9fHzmJkTK0xJCfX3Xi/lpGM\nxZGQNerNAz8MeYL+wuQ7zi87CqRPTdAtFaNWJxsiF20MRX16tDUgr3OvbmqV\nWHx6tGhjtYoFblpsqlH7oM9uIMRZQKIA71NoMrB8MszY6BbPJe8H83HiMbQh\ndRIecNJ4OqFUlNAtveQvd3IJ5P51K5kx6+bKdZjhaFma7En48CEm7rYUQ6Dj\n1a+/R41tofa/XWZpGEjeWhCQhGvf4RERonrLZqXsi2nsTce1fmIpPjA5ujMR\nJV6fkRJ6psVwHBJ6D3oKOE9WWtuF/jRjMEgFinfIA9zTZ/RuTt1Zh1en9osH\nQRVf\r\n=ZYrM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAv2dvuT2BlP6//x0xyj6rfgZYGRMlP0tIydCICwykeLAiAyFJiD3gBUfoB55DaVJ8bmjzmTXI7/GmyJChcKWPlVZQ=="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_7.0.0-beta.4_1594903773816_0.15041191387275776"},"_hasShrinkwrap":false},"7.0.0-beta.5":{"name":"@redux-model/taro","version":"7.0.0-beta.5","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","prebuild":"yarn run link","link":"sh ../../scripts/link.sh","forcelink":"sh ../../scripts/forcelink.sh","clean":"rm -rf ./build","outdated":"yarn outdated"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"clone":"2.1.2","immer":"7.0.5","qs":"6.9.4","tslib":"2.0.0"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","react-redux":"^7.2.0"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"b3c6a72f5f7dae646328e57642b65978ec15368c","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\nRedux Model is created to enhance original redux framework, which has complex development flow and lots of template fragments.\n\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# Features\n\n* Less code and higher efficiency\n* Modify reducer by MVVM\n* Absolutely 100% static type checking with typescript\n* Trace loading status for each request action\n* Support react hooks\n\n# Installation\n\n### React or React-Native\n```bash\nnpm install @redux-model/react redux react-redux\n```\n\n### Taro v3\n```bash\nnpm install @redux-model/taro redux react-redux\n```\n\n### Vue v3\n```bash\nnpm install @redux-model/vue redux\n```\n\n### Others\n* For `taro < 3`, install @redux-model/taro@6.9.2 instead\n* For `vue < 3`, install @redux-model/vue@6.9.2 instead\n\n# Define Model\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n    increase = this.action((state) => {\n        state.counter += 1;\n    });\n\n    getUser = $api.action((id: number) => {\n        return this\n            .get<Response>(`/api/user/${id}`)\n            .onSuccess((state, action) => {\n                state.counter += 1;\n                state.users[id] = action.response;\n            });\n    });\n\n    protected initReducer(): Data {\n        return {\n            counter: 0,\n            users: {},\n        };\n    }\n}\n\nexport const testModel = new TestModel();\n```\n\n# With React Hooks\n```typescript jsx\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    const increase = () => {\n        testModel.increase();\n        testModel.getUser(3);\n    };\n\n    return (\n        <button onClick={increase}>\n            {loading ? 'Waiting...' : `You clicked ${counter} times`}\n        </button>\n    );\n};\n\nexport default App;\n```\n\n# With Redux connect\n```typescript jsx\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nclass App extends Component<Props> {\n    increase() {\n        testModel.increase();\n        testModel.getUser(3);\n    }\n\n    render() {\n        const { loading, counter } = this.props;\n        return (\n            <button onClick={this.increase}>\n                {loading ? 'Waiting...' : `You clicked ${counter} times`}\n            </button>\n        );\n    }\n}\n\nconst mapStateToProps = () => {\n    return {\n        counter: testModel.data.counter,\n        loading: testModel.getUser.loading,\n    };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# With Vue\n```vue\n<template>\n  <button @click=\"increase\">\n    {{loading ? 'Waiting...' : `You clicked ${counter} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n  name: 'HelloWorld',\n  methods: {\n    increase() {\n      testModel.increase();\n      testModel.getUser(3);\n    },\n  },\n  computed: {\n    counter() {\n      return testModel.data.counter;\n    },\n    loading() {\n        return testModel.getUser.loading;\n    },\n  },\n};\n</script>\n```\n\n# Demos\n\n* [React Web](https://github.com/redux-model/redux-model-web-demo)\n\n# Documents\n\nHere is the [document](https://redux-model.github.io/redux-model)\n\n---------------------\n\nFeel free to use it and welcome to send PR to me.\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@7.0.0-beta.5","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-kHykua2Vw+FPYN5ebpq+1ZfX7ToMgftTftPo5kXQh1yEl9pQH6qRT+fF7jJP4BeQar2XjGialfDdvID4JVAYqQ==","shasum":"97f5bbeecc8a943ee2b406adb72847689d273e9a","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-7.0.0-beta.5.tgz","fileCount":81,"unpackedSize":117587,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfEF+OCRA9TVsSAnZWagAAhvYP+wYJ4e9Bav6SQD/nxFns\nRlog91fMJWFVO5rZIlcKGxA3PlbzSa1YC6dzLwFXG0Ap7im46ALtp9Yavasy\nzRcmP6NWAixocFmQspMiLatjcH+WsNFTjIXgRrK3lKq9EZUKpqu8syRFA3MR\n9J+nRzhpsyUHpEhv5FmpWOVhV45Z97zzl7Al+w7vnYCmbrp5QYfpJVFKq3Ix\nvZFSxsYNFw6RavxE6KJ+LZzRRA+iRexqoG7eKHuNnhlG5q35OeCxuZsiQRGr\nicVz0VxpSr8M173y3ltjZjqDlGzYK0iVtl/mtJfGz1guY+7XXinAbH9VKAw2\nkE9R8SIjVdcPFuylUAC2T5i1n238UTqa9G5DXcAY6h/4KkMuGWwr+0UcFvZi\nT5f6FsFxVbZNLihaokk7Z76PbpBL3JvUqKHT6pyeab7ONhaWPKdQ0zUYZ2in\nAxdwLOoF9lmTBtdY4dLhItIrGo2Wm63JdP3hpajvWyKZ5a/IVWSBIyfdMvzM\nB5LphiVNPGqb/BITwYzy8mWuv62/v+796MBFHYuzIRlBOdvijiCIEL78VyHc\nWADHjfpRlutdTg8+pL6WCSUtMooh56v5tUhiukeBVJMQQqAlFQH07pWFtGJA\n5sG2yQ9C0iS04NVSKbhZy6XGJa00B0hcMhPYcVOvkKsf0X4rJEDn/kmBUf7m\nBU4i\r\n=6UyI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBHBI3j1TROnm2Of6ZJFygaRu61zxI2Z2LDqOu12zl2IAiEA+1LtSczKasaPD+8CeHa1Kzc5TgSSl3sk7C17ZnVdVjQ="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_7.0.0-beta.5_1594908558240_0.4992440302162495"},"_hasShrinkwrap":false},"7.0.0-beta.6":{"name":"@redux-model/taro","version":"7.0.0-beta.6","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","prebuild":"yarn run link","link":"sh ../../scripts/link.sh","forcelink":"sh ../../scripts/forcelink.sh","clean":"rm -rf ./build","outdated":"yarn outdated"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"clone":"2.1.2","immer":"7.0.5","qs":"6.9.4","tslib":"2.0.0"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","react-redux":"^7.2.0"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"c717831e0e85f186407ae413b432dfed1fd7838a","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\nRedux Model is created to enhance original redux framework, which has complex development flow and lots of template fragments.\n\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# Features\n\n* Less code and higher efficiency\n* Modify reducer by MVVM\n* Absolutely 100% static type checking with typescript\n* Trace loading status for each request action\n* Support react hooks\n\n# Installation\n\n### React or React-Native\n```bash\nnpm install @redux-model/react redux react-redux\n```\n\n### Taro v3\n```bash\nnpm install @redux-model/taro redux react-redux\n```\n\n### Vue v3\n```bash\nnpm install @redux-model/vue redux\n```\n\n### Others\n* For `taro < 3`, install @redux-model/taro@6.9.2 instead\n* For `vue < 3`, install @redux-model/vue@6.9.2 instead\n\n# Define Model\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n    increase = this.action((state) => {\n        state.counter += 1;\n    });\n\n    getUser = $api.action((id: number) => {\n        return this\n            .get<Response>(`/api/user/${id}`)\n            .onSuccess((state, action) => {\n                state.counter += 1;\n                state.users[id] = action.response;\n            });\n    });\n\n    protected initReducer(): Data {\n        return {\n            counter: 0,\n            users: {},\n        };\n    }\n}\n\nexport const testModel = new TestModel();\n```\n\n# With React Hooks\n```typescript jsx\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    const increase = () => {\n        testModel.increase();\n        testModel.getUser(3);\n    };\n\n    return (\n        <button onClick={increase}>\n            {loading ? 'Waiting...' : `You clicked ${counter} times`}\n        </button>\n    );\n};\n\nexport default App;\n```\n\n# With Redux connect\n```typescript jsx\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nclass App extends Component<Props> {\n    increase() {\n        testModel.increase();\n        testModel.getUser(3);\n    }\n\n    render() {\n        const { loading, counter } = this.props;\n        return (\n            <button onClick={this.increase}>\n                {loading ? 'Waiting...' : `You clicked ${counter} times`}\n            </button>\n        );\n    }\n}\n\nconst mapStateToProps = () => {\n    return {\n        counter: testModel.data.counter,\n        loading: testModel.getUser.loading,\n    };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# With Vue\n```vue\n<template>\n  <button @click=\"increase\">\n    {{loading ? 'Waiting...' : `You clicked ${counter} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n  name: 'HelloWorld',\n  methods: {\n    increase() {\n      testModel.increase();\n      testModel.getUser(3);\n    },\n  },\n  computed: {\n    counter() {\n      return testModel.data.counter;\n    },\n    loading() {\n        return testModel.getUser.loading;\n    },\n  },\n};\n</script>\n```\n\n# Demos\n\n* [React Web](https://github.com/redux-model/redux-model-web-demo)\n\n# Documents\n\nHere is the [document](https://redux-model.github.io/redux-model)\n\n---------------------\n\nFeel free to use it and welcome to send PR to me.\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@7.0.0-beta.6","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-QsFMRqh0IRqy+tPWyGlfcGQlN0yICCl8qNdngJFLQ5TiCH0S6WgQNzlEzQOovST4ExncDftJBlUn20lWNi9RNg==","shasum":"08882f76c6a2422c0a3ba9d6f9896b8d59126386","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-7.0.0-beta.6.tgz","fileCount":81,"unpackedSize":117650,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfEGj8CRA9TVsSAnZWagAA7X4P/1m7MPfLfqM3Umdrr0D+\ndiD6ygkHQ2HQH7uX+vfAUmqsT0vpOdJNaixJw23g6C5oIqsTIvsEml5ikTWR\ni2jfjzDLq5eFjlp3mzJxwn2UrTQ+qXeg18EclYHTeKdffacGEEnG6RKULtv9\nJuX65VhIgyRokWHT+Zk6Klu1FBKMAZLWfe+R6jOSZTpyEw+BlUvlUdtn1CXX\nYP8jVDmlivD1LPsbiWy6LfVEhgZtWvzopFY09AH+e/TFfbXUN9mqfyaLhjcs\nfM64eHlIW0TbkRanRLz7NwJLQHs+rJZ9LdmO5Kj+57ILLxto2jwxiS7FPKMe\nein/kXoCxFpQl+jMAU7h0sAzghtwdn8o7iG32Ig5qfICaO2kiNpvlkvKgn9y\nIex4E8yWiELORuC/OGmtQPK6efIUoh/omvbbUfAHUx3GXALX9Pwj5j05v46I\nanKkaadvFdvyELFWia5z47MylCg2RKzevkKW9zLjeaCS5GUk7LE30+qEGDo4\n/PYJzOeV1Hk8WI+98AAXrsxbHzP22PzPiJ2/vTfA1CFv5wzEXiG+P8X1tsxM\nit8BCMsu+RGzH/BuC69Guk7LCEf8mCwKPpgt4I29xc2zQaxFLVMlyVbgTGzv\n3Yf+crMA8HLS968SLzMRtDu3IVxO7hdLkofw8v2Ryk0ReSA3Do3H9K2fD8Q5\nskSB\r\n=2EY5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCH0Pvl66iHwecij96CoXC74Tw7Uk6jA+mNcuCy8wXV8QIgbgdssiyh8nrFAU9Md1KIBY7K89BpuFJSh79KKTrmrrs="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_7.0.0-beta.6_1594910971993_0.003406690969447679"},"_hasShrinkwrap":false},"7.0.0-beta.7":{"name":"@redux-model/taro","version":"7.0.0-beta.7","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","prebuild":"yarn run link","link":"sh ../../scripts/link.sh","forcelink":"sh ../../scripts/forcelink.sh","clean":"rm -rf ./build","outdated":"yarn outdated"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"clone":"2.1.2","immer":"7.0.5","qs":"6.9.4","tslib":"2.0.0"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","react-redux":"^7.2.0"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"3247b73af8947bc69c6f306e55893cb465d14d5b","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\nRedux Model is created to enhance original redux framework, which has complex development flow and lots of template fragments.\n\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# Features\n\n* Less code and higher efficiency\n* Modify reducer by MVVM\n* Absolutely 100% static type checking with typescript\n* Trace loading status for each request action\n* Support react hooks\n\n# Installation\n\n### React or React-Native\n```bash\nnpm install @redux-model/react redux react-redux\n```\n\n### Taro v3\n```bash\nnpm install @redux-model/taro redux react-redux\n```\n\n### Vue v3\n```bash\nnpm install @redux-model/vue redux\n```\n\n### Others\n* For `taro < 3`, install @redux-model/taro@6.9.2 instead\n* For `vue < 3`, install @redux-model/vue@6.9.2 instead\n\n# Define Model\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n    increase = this.action((state) => {\n        state.counter += 1;\n    });\n\n    getUser = $api.action((id: number) => {\n        return this\n            .get<Response>(`/api/user/${id}`)\n            .onSuccess((state, action) => {\n                state.counter += 1;\n                state.users[id] = action.response;\n            });\n    });\n\n    protected initReducer(): Data {\n        return {\n            counter: 0,\n            users: {},\n        };\n    }\n}\n\nexport const testModel = new TestModel();\n```\n\n# With React Hooks\n```typescript jsx\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    const increase = () => {\n        testModel.increase();\n        testModel.getUser(3);\n    };\n\n    return (\n        <button onClick={increase}>\n            {loading ? 'Waiting...' : `You clicked ${counter} times`}\n        </button>\n    );\n};\n\nexport default App;\n```\n\n# With Redux connect\n```typescript jsx\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nclass App extends Component<Props> {\n    increase() {\n        testModel.increase();\n        testModel.getUser(3);\n    }\n\n    render() {\n        const { loading, counter } = this.props;\n        return (\n            <button onClick={this.increase}>\n                {loading ? 'Waiting...' : `You clicked ${counter} times`}\n            </button>\n        );\n    }\n}\n\nconst mapStateToProps = () => {\n    return {\n        counter: testModel.data.counter,\n        loading: testModel.getUser.loading,\n    };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# With Vue\n```vue\n<template>\n  <button @click=\"increase\">\n    {{loading ? 'Waiting...' : `You clicked ${counter} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n  name: 'HelloWorld',\n  methods: {\n    increase() {\n      testModel.increase();\n      testModel.getUser(3);\n    },\n  },\n  computed: {\n    counter() {\n      return testModel.data.counter;\n    },\n    loading() {\n        return testModel.getUser.loading;\n    },\n  },\n};\n</script>\n```\n\n# Demos\n\n* [React Web](https://github.com/redux-model/redux-model-web-demo)\n\n# Documents\n\nHere is the [document](https://redux-model.github.io/redux-model)\n\n---------------------\n\nFeel free to use it and welcome to send PR to me.\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@7.0.0-beta.7","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-sIescJVHtuKoLjDcNJWQ7ZDg/955jnQURtr7zqN7k1T5oPEo+Fw42Xh9Puc1wEiAMJYAbT9KkodZ4PtuAdd3cw==","shasum":"0efa5bca0f695b808e8150cbd7e7014734abdb3c","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-7.0.0-beta.7.tgz","fileCount":81,"unpackedSize":117803,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfEHxkCRA9TVsSAnZWagAAvpUP/iWLf+sNHkG37OMJQD1E\nThz6lh/089K82xEc14m9Er3OYuONIJ/RKMoJva0AB8soOXe7ZL0+cx5C2UwX\nAdNz+MM484KT5hXz1vlqOtRioKmKzEYIgEZupmjl/+oQGoZVHmXNciJwmRzL\np5VkhBIqJLjjgeHbYAbrnba9Jnv1BnwuUcIKP3G7WIk0odm5a5ggMCK7ZAL+\nWC3bcTrKmTX7JJ82gV8N6WvS1XvxjC/9mGTuIsO5pzkYbtDXDQKVBDM6WPgT\nZ67noxI8rTczAiYRuHYaOZLPgd5aOZ4lyTJ0ZVtj6Irk/lOnVmdhj0R1TfGN\nJAA2/uObiapzETrvuhINnKTN17UhUvZqERP/Y/VXmAhdJqqcy6JrayQDdAUg\nx4IwIhwNL+/exVu5NS+6uwHDoplrzicwiULvSUA3jysRUNJtpR/5B9e2++1E\nM2kDjLORvN7aHX0z7MawbbxwxiRkw7kG0eNAoZUhgbGpPwdkfZ/Yaowdi35w\njaaNYsv5aSUSCVpE9TNpIsaQPTnLRkQ7I4nLheM7P2K4pOkWsVFUwRJHPNe0\nBhu2Sx/VA0p2eO3b/EdXlAGNgnSMurYsA9k9ZEOmwjCWinmjq32Wtb5SqlbE\nhzRocp6PbvNc6ITr4o+UnJwKtFY/EP4OgNSIEgyPYHlfFYbCKODdsmPk4QsG\n3LPo\r\n=tYSQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFttt6FAoqvvVhWcM5Yldz2a5AAngF9a7wWoX3ZYym8hAiA9uf4tTVkr81ZDGjWXqGVNY5IlAis3Ss3B7Ly+oy0LIg=="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_7.0.0-beta.7_1594915940157_0.49902282913877527"},"_hasShrinkwrap":false},"7.0.0-beta.9":{"name":"@redux-model/taro","version":"7.0.0-beta.9","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","prebuild":"yarn run link","link":"sh ../../scripts/link.sh","forcelink":"sh ../../scripts/forcelink.sh","clean":"rm -rf ./build","outdated":"yarn outdated"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"clone":"2.1.2","immer":"7.0.5","qs":"6.9.4","tslib":"2.0.0"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","react-redux":"^7.2.0"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"525a8fd13577b2c9463ba6fb9b88ba10a5ef4f6f","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\nRedux Model is created to enhance original redux framework, which has complex development flow and lots of template fragments.\n\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# Features\n\n* Less code and higher efficiency\n* Modify reducer by MVVM\n* Absolutely 100% static type checking with typescript\n* Trace loading status for each request action\n* Support react/vue hooks\n\n# Installation\n\n### React or React-Native\n```bash\nnpm install @redux-model/react redux react-redux\n```\n\n### Vue v3\n```bash\nnpm install @redux-model/vue redux\n```\n\n### Taro v3\n```bash\nnpm install @redux-model/taro redux react-redux\n```\n\n### Others\n* For `taro < v3`, install @redux-model/taro@6.9.2 instead\n* For `vue < v3`, install @redux-model/vue@6.9.2 instead\n\n# Define Model\n```typescript\ninterface Response {\n    id: number;\n    name: string;\n}\n\ninterface Data {\n    counter: number;\n    users: Partial<{\n        [key: string]: Response;\n    }>;\n}\n\nclass TestModel extends Model<Data> {\n    increase = this.action((state) => {\n        state.counter += 1;\n    });\n\n    getUser = $api.action((id: number) => {\n        return this\n            .get<Response>(`/api/user/${id}`)\n            .onSuccess((state, action) => {\n                state.counter += 1;\n                state.users[id] = action.response;\n            });\n    });\n\n    protected initReducer(): Data {\n        return {\n            counter: 0,\n            users: {},\n        };\n    }\n}\n\nexport const testModel = new TestModel();\n```\n\n# With React Hooks\n```typescript jsx\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    const increase = () => {\n        testModel.increase();\n        testModel.getUser(3);\n    };\n\n    return (\n        <button onClick={increase}>\n            {loading ? 'Waiting...' : `You clicked ${counter} times`}\n        </button>\n    );\n};\n\nexport default App;\n```\n\n# With Vue Hooks\n```vue\n<template>\n  <button @click=\"increase\">\n    {{loading.value ? 'Waiting...' : `You clicked ${counter.value} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n    setup() {\n        const increase = () => {\n            testModel.increase();\n            testModel.getUser(3);\n        };\n\n        const counter = testModel.useData((data) => data.counter);\n        const loading = testModel.getUser.useLoading();\n\n        return {\n            increase,\n            counter,\n            loading,\n        };\n    }\n};\n</script>\n```\n\n# With Redux Connect\n```typescript jsx\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nclass App extends Component<Props> {\n    increase() {\n        testModel.increase();\n        testModel.getUser(3);\n    }\n\n    render() {\n        const { loading, counter } = this.props;\n        return (\n            <button onClick={this.increase}>\n                {loading ? 'Waiting...' : `You clicked ${counter} times`}\n            </button>\n        );\n    }\n}\n\nconst mapStateToProps = () => {\n    return {\n        counter: testModel.data.counter,\n        loading: testModel.getUser.loading,\n    };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# Demos\n\n* [React Web](https://github.com/redux-model/redux-model-web-demo)\n\n# Documents\n\nHere is the [document](https://redux-model.github.io/redux-model)\n\n---------------------\n\nFeel free to use it and welcome to send PR to me.\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@7.0.0-beta.9","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-2108tEGHjHDGXMlcujrOwPoYUOeWTJREHRub9QoW82nnD8zoKHJRktcXnI5hVujXd7jjobzJsqxqVJzb1vfUbg==","shasum":"4a4c5d7843af6d3a5aa52786ac64679e691c0533","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-7.0.0-beta.9.tgz","fileCount":81,"unpackedSize":117676,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfEbXVCRA9TVsSAnZWagAAmVQQAJOIxbHG35scdC1/BJah\n5fE7Of5aujYvdnPUgJDYy/5D/rStBn/1MQud2bYno4Rk08IaHkFM78TxFFjx\nfYXjceiX0XEbigUdGeugcMveBAyHbkHgWG5OC7wAdSxB81AbMwTMxRaClftc\nhZ6fxsPNVDdExAbiAQlvlnUjvuzFdpELEYDp0ppmykGHCJiRAx7K4trvLWq+\nYboLGIj7ISwMbxsYQFI6+kb0+eD1stzqRSNFTJrfgtzHpLX4ecoEZoK+QxDf\nTQOtVA+JXNlvxtTwRWNfkKMJpEm9XOAXwYLnuR9AFBy6TVT+gKsgGsvObh+V\nfXL5BTAhMRMIiCUDsULMxO0jekW6N3OiuvScpa3f9ufyURR7dVCX0/e8OEIm\nS5++IMKKuKtUcf4BoE4LoNMJv5yXI9uVMuEstPeMOAvnJ+Ev00DKQh/x5GZZ\nrOVZFCn4KYxAwk0GgLVRD+Qs2CTkfwcw3J+oBBO8GEC+VQ1hAVSF0dkctuUc\nxc/GDkZ7gbo5EkutnUKgXwnR/J0T+xiveJT6N8wKMtR1Fw9Zmcp2ht5x6ZbN\np7xveju4yOAXLf9SEp+8Nl7etkvHBri4RmEBipUr+TZI8aNf7vmxjzZM67V5\nS2XzRkdkHa8vU9YS4mG4jOD8eBcj73Y7mBcdOhFaEV03xAUNy91mdiQh5fcE\nuh4B\r\n=z6RO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDmcXaFRKrflMo2whqJlG5jHON5hOYGAtFQoz2X4+NQewIhAMoHmUz97yEdPbS6XYnyh0o9v588B2bq4qjXW0KjqWmg"}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_7.0.0-beta.9_1594996181157_0.42846347867712575"},"_hasShrinkwrap":false},"7.0.0-beta.10":{"name":"@redux-model/taro","version":"7.0.0-beta.10","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","outdated":"yarn outdated","tsc":"../../node_modules/.bin/tsc"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"@redux-model/core":"^7.0.0-beta.10","clone":"2.1.2","immer":"7.0.5","qs":"6.9.4","tslib":"2.0.0"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","react-redux":"^7.2.0"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"3064a85b8fb698b2bcae88262410a1ae4a4e3776","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\nRedux Model is created to enhance original redux framework, which has complex development flow and lots of template fragments.\n\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# Features\n\n* Less code and higher efficiency\n* Modify reducer by MVVM\n* Absolutely 100% static type checking with typescript\n* Trace loading status for each request action\n* Support react/vue hooks\n\n# Installation\n\n### React or React-Native\n```bash\nnpm install @redux-model/react redux react-redux\n```\n\n### Vue v3\n```bash\nnpm install @redux-model/vue redux\n```\n\n### Taro v3\n```bash\nnpm install @redux-model/taro redux react-redux\n```\n\n### Others\n* For `taro < v3`, install @redux-model/taro@6.9.2 instead\n* For `vue < v3`, install @redux-model/vue@6.9.2 instead\n\n# Define Model\n```typescript\ninterface Response {\n    id: number;\n    name: string;\n}\n\ninterface Data {\n    counter: number;\n    users: Partial<{\n        [key: string]: Response;\n    }>;\n}\n\nclass TestModel extends Model<Data> {\n    increase = this.action((state) => {\n        state.counter += 1;\n    });\n\n    getUser = $api.action((id: number) => {\n        return this\n            .get<Response>(`/api/user/${id}`)\n            .onSuccess((state, action) => {\n                state.counter += 1;\n                state.users[id] = action.response;\n            });\n    });\n\n    protected initReducer(): Data {\n        return {\n            counter: 0,\n            users: {},\n        };\n    }\n}\n\nexport const testModel = new TestModel();\n```\n\n# With React Hooks\n```typescript jsx\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    const increase = () => {\n        testModel.increase();\n        testModel.getUser(3);\n    };\n\n    return (\n        <button onClick={increase}>\n            {loading ? 'Waiting...' : `You clicked ${counter} times`}\n        </button>\n    );\n};\n\nexport default App;\n```\n\n# With Vue Hooks\n```vue\n<template>\n  <button @click=\"increase\">\n    {{loading.value ? 'Waiting...' : `You clicked ${counter.value} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n    setup() {\n        const increase = () => {\n            testModel.increase();\n            testModel.getUser(3);\n        };\n\n        const counter = testModel.useData((data) => data.counter);\n        const loading = testModel.getUser.useLoading();\n\n        return {\n            increase,\n            counter,\n            loading,\n        };\n    }\n};\n</script>\n```\n\n# With Redux Connect\n```typescript jsx\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nclass App extends Component<Props> {\n    increase() {\n        testModel.increase();\n        testModel.getUser(3);\n    }\n\n    render() {\n        const { loading, counter } = this.props;\n        return (\n            <button onClick={this.increase}>\n                {loading ? 'Waiting...' : `You clicked ${counter} times`}\n            </button>\n        );\n    }\n}\n\nconst mapStateToProps = () => {\n    return {\n        counter: testModel.data.counter,\n        loading: testModel.getUser.loading,\n    };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# Demos\n\n* [React Web](https://github.com/redux-model/redux-model-web-demo)\n\n# Documents\n\nHere is the [document](https://redux-model.github.io/redux-model)\n\n---------------------\n\nFeel free to use it and welcome to send PR to me.\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@7.0.0-beta.10","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-JlDgMDHKUHTtbfkehEqcnhlfg/tZV9UeibSPTxXMMP6WWAjF2542din1K0A8vYpfH1KTavCMWXjsKbn+pjKGMQ==","shasum":"0525f295c24279c29db70d9734c477595f879ec0","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-7.0.0-beta.10.tgz","fileCount":19,"unpackedSize":26472,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfEleJCRA9TVsSAnZWagAAuOQQAJ0sQXGgGU9BiSqq+8Bx\nOzrQLk8rW6J7PZ6tqJOdyLaGXB0+Yk9as9h0gqw//oLEvf81dc945LX7FA95\nYdjkoHD8QaLGh4kA35xhQWv5SzSBzAOl4qR6o5hEx3+kTcUWj3yn29ZNwIcO\nzkwAqLEC8D8YNJ/7NCy0t12Ac6BBONgHSCFVSrE/smehlOgJJJhW9ZcV0GEC\n8fgDvlOVfSt2bhC612EmsEQRyNeyDhpk1+gqq69j3UdGsW5/hpOCMDBNe5MU\nCoPcGMwospPTl8wMmgSWY5gAYjO1oDuw+5GMoLBEHpO4AhxJZLmg2kkS0Uqi\n3k3u+cysxtvoNGQ17WKcHOnJHPX+wZ+rptgex5ATERJZ8PybTDNZkw+vSE7+\nftBjDptPcJ/Xau6Nof01GAc6Pa6LrlA4+p97uJojBMRB3z3CgmV31PeIChdT\nrplWlqB8OWNhnb0xGdAnzjWPcDHSTpEo+lxAg+1jZAqqzZkjGpRsrZtv2qIo\nIhZqmWpSADeCAm2V0TVYJOclsjl9S7SxoUja/lH1nw3BDtXBG7Zbm+BzMmV9\n2tLYDXUaL2DG0beJtjqIwaXPv+sP4kbcGx14EBqW3Xa8Pbd3b75Myu2AxCsG\nGdyBNeU4Tt/VLLK4G9+qubYoegKMteKI1TnG3w+5Jg6ndUrk0Drj6tv1nz6p\nsryy\r\n=DkTt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCJkbh3nlucpm6NmPFg1htB9eyOfsP1SKnxN3hfSA1CSwIgQNQJaoWyNbBkviFovjjivvG7hPAzf5se04LRs0zcndI="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_7.0.0-beta.10_1595037577049_0.7820445475454794"},"_hasShrinkwrap":false},"7.0.0-beta.11":{"name":"@redux-model/taro","version":"7.0.0-beta.11","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","outdated":"yarn outdated","tsc":"../../node_modules/.bin/tsc","relink":"sh ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"@redux-model/core":"^7.0.0-beta.11","clone":"2.1.2","immer":"7.0.5","qs":"6.9.4","tslib":"2.0.0"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","react-redux":"^7.2.0"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"c2247c0ca9ab995ecdc20ea8e78b2af66503513c","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\nRedux Model is created to enhance original redux framework, which has complex development flow and lots of template fragments.\n\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# Features\n\n* Less code and higher efficiency\n* Modify reducer by MVVM\n* Absolutely 100% static type checking with typescript\n* Trace loading status for each request action\n* Support react/vue hooks\n\n# Installation\n\n### React or React-Native\n```bash\nnpm install @redux-model/react redux react-redux\n```\n\n### Vue v3\n```bash\nnpm install @redux-model/vue redux\n```\n\n### Taro v3\n```bash\nnpm install @redux-model/taro redux react-redux\n```\n\n### Others\n* For `taro < v3`, install @redux-model/taro@6.9.2 instead\n* For `vue < v3`, install @redux-model/vue@6.9.2 instead\n\n# Define Model\n```typescript\ninterface Response {\n    id: number;\n    name: string;\n}\n\ninterface Data {\n    counter: number;\n    users: Partial<{\n        [key: string]: Response;\n    }>;\n}\n\nclass TestModel extends Model<Data> {\n    increase = this.action((state) => {\n        state.counter += 1;\n    });\n\n    getUser = $api.action((id: number) => {\n        return this\n            .get<Response>(`/api/user/${id}`)\n            .onSuccess((state, action) => {\n                state.counter += 1;\n                state.users[id] = action.response;\n            });\n    });\n\n    protected initReducer(): Data {\n        return {\n            counter: 0,\n            users: {},\n        };\n    }\n}\n\nexport const testModel = new TestModel();\n```\n\n# With React Hooks\n```typescript jsx\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    const increase = () => {\n        testModel.increase();\n        testModel.getUser(3);\n    };\n\n    return (\n        <button onClick={increase}>\n            {loading ? 'Waiting...' : `You clicked ${counter} times`}\n        </button>\n    );\n};\n\nexport default App;\n```\n\n# With Vue Hooks\n```vue\n<template>\n  <button @click=\"increase\">\n    {{loading.value ? 'Waiting...' : `You clicked ${counter.value} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n    setup() {\n        const increase = () => {\n            testModel.increase();\n            testModel.getUser(3);\n        };\n\n        const counter = testModel.useData((data) => data.counter);\n        const loading = testModel.getUser.useLoading();\n\n        return {\n            increase,\n            counter,\n            loading,\n        };\n    }\n};\n</script>\n```\n\n# With Redux Connect\n```typescript jsx\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nclass App extends Component<Props> {\n    increase() {\n        testModel.increase();\n        testModel.getUser(3);\n    }\n\n    render() {\n        const { loading, counter } = this.props;\n        return (\n            <button onClick={this.increase}>\n                {loading ? 'Waiting...' : `You clicked ${counter} times`}\n            </button>\n        );\n    }\n}\n\nconst mapStateToProps = () => {\n    return {\n        counter: testModel.data.counter,\n        loading: testModel.getUser.loading,\n    };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# Demos\n\n* [React Web](https://github.com/redux-model/redux-model-web-demo)\n\n# Documents\n\nHere is the [document](https://redux-model.github.io/redux-model)\n\n---------------------\n\nFeel free to use it and welcome to send PR to me.\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@7.0.0-beta.11","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-/DRNPvekJSH6xHSR2D8ae00096FlXkwbtELWGT1MZ0120B1zNGeG0fvgDHeBOq6FiSNLJImNwm6Q6YUVzEn5xQ==","shasum":"a5ad64081c4fc2e9099c14d503753c0e4182e7c5","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-7.0.0-beta.11.tgz","fileCount":19,"unpackedSize":26516,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfEl+rCRA9TVsSAnZWagAA81kP/jGkmmf9i0cnyCcxfc9/\nIFfK8XKm5f5Qw2kdU3fVoi/rofgg0V5x32KcrdJAkPENW5iO02LoiESnCUVz\nBLroBAxfgu2hoson7c3SkmL3X+9nVK1Z9oQAj9hf7PL61rA7Wq/ja5nowGxd\nC83c4H/GC5GAKPia8b3DIIOM2hYFefPzimG7mPMQIE56bDaxs9MxzvlPNOo7\nNIs7UQzVt3sTQJ1JC7fpBZSvmCmpSy/bxrKsZapRShwr1BACclmaKn7AkkW+\nxPJ9tg8vJLQxBdE7B72adJU/yKiTAjCLovyieRLbZpFdYzcGr7WfIya8+2oF\nuC1ZiObyaHezimeLNhWPNRJPgsTNzBQdFJhY1GecJr0zJyZO5/mEMcURBr0a\nMuE8hMz+8iXZcXz0HZ+enUrBp1rD8khqYxeFX9qMKy3Myj7PHrxiRWVKmjzO\nSTyfbyWfyeCFMOeVQxrUl3wU3iWChwHpp6zTevhIP01tyQTCCbcU4SaQJeD9\npU1fIgx+v2rCXsruITYLAU29D3AwKGE/COPsGO/Jk4YEuPRWJq/xR55LYJb+\n1c9ySxmHywdc2V/opq8QdBzc+Ji4FdqPJHLm48ptmhn7lwr+rByxR+4rEYr+\nY9oPTMyJFODWq82I1x/Ap5mHHF2XSXHnxqNzcmCW6T/bjAMQH4QNTYgIeuXE\n+CFG\r\n=sPGH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCz3L5jX9s+W7n07pWIOWcJtn/r2PyHSuW2Y79s7d2LhQIgK/arZYReyemr6BX7rsibvyznNtpUdvfHcVdxQLLCZyc="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_7.0.0-beta.11_1595039658923_0.4995990536479642"},"_hasShrinkwrap":false},"7.0.0-beta.12":{"name":"@redux-model/taro","version":"7.0.0-beta.12","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","outdated":"yarn outdated","tsc":"../../node_modules/.bin/tsc","relink":"sh ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"@redux-model/core":"7.0.0-beta.11","qs":"6.9.4","tslib":"2.0.0"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","react-redux":"^7.2.0"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"483e3f2dc50915a54cba1185cf57313e112a3374","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\nRedux Model is created to enhance original redux framework, which has complex development flow and lots of template fragments.\n\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# Features\n\n* Less code and higher efficiency\n* Modify reducer by MVVM\n* Absolutely 100% static type checking with typescript\n* Trace loading status for each request action\n* Support react/vue hooks\n\n# Installation\n\n### React or React-Native\n```bash\nnpm install @redux-model/react redux react-redux\n```\n\n### Vue v3\n```bash\nnpm install @redux-model/vue redux\n```\n\n### Taro v3\n```bash\nnpm install @redux-model/taro redux react-redux\n```\n\n### Others\n* For `taro < v3`, install @redux-model/taro@6.9.2 instead\n* For `vue < v3`, install @redux-model/vue@6.9.2 instead\n\n# Define Model\n```typescript\ninterface Response {\n    id: number;\n    name: string;\n}\n\ninterface Data {\n    counter: number;\n    users: Partial<{\n        [key: string]: Response;\n    }>;\n}\n\nclass TestModel extends Model<Data> {\n    increase = this.action((state) => {\n        state.counter += 1;\n    });\n\n    getUser = $api.action((id: number) => {\n        return this\n            .get<Response>(`/api/user/${id}`)\n            .onSuccess((state, action) => {\n                state.counter += 1;\n                state.users[id] = action.response;\n            });\n    });\n\n    protected initReducer(): Data {\n        return {\n            counter: 0,\n            users: {},\n        };\n    }\n}\n\nexport const testModel = new TestModel();\n```\n\n# With React Hooks\n```typescript jsx\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    const increase = () => {\n        testModel.increase();\n        testModel.getUser(3);\n    };\n\n    return (\n        <button onClick={increase}>\n            {loading ? 'Waiting...' : `You clicked ${counter} times`}\n        </button>\n    );\n};\n\nexport default App;\n```\n\n# With Vue Hooks\n```vue\n<template>\n  <button @click=\"increase\">\n    {{loading.value ? 'Waiting...' : `You clicked ${counter.value} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n    setup() {\n        const increase = () => {\n            testModel.increase();\n            testModel.getUser(3);\n        };\n\n        const counter = testModel.useData((data) => data.counter);\n        const loading = testModel.getUser.useLoading();\n\n        return {\n            increase,\n            counter,\n            loading,\n        };\n    }\n};\n</script>\n```\n\n# With Redux Connect\n```typescript jsx\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nclass App extends Component<Props> {\n    increase() {\n        testModel.increase();\n        testModel.getUser(3);\n    }\n\n    render() {\n        const { loading, counter } = this.props;\n        return (\n            <button onClick={this.increase}>\n                {loading ? 'Waiting...' : `You clicked ${counter} times`}\n            </button>\n        );\n    }\n}\n\nconst mapStateToProps = () => {\n    return {\n        counter: testModel.data.counter,\n        loading: testModel.getUser.loading,\n    };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# Demos\n\n* [React Web](https://github.com/redux-model/redux-model-web-demo)\n\n# Documents\n\nHere is the [document](https://redux-model.github.io/redux-model)\n\n---------------------\n\nFeel free to use it and welcome to send PR to me.\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@7.0.0-beta.12","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-xtlpJDQE5ccBVydZE3QNp/1hQA0Sfv0LfQ4KNkGIUpq5T+R37N8bD3AcZM92IUZJIWh9hQLetUbAX7WdsyceIQ==","shasum":"96398cc2ab19bf6824d5ca37e897708e86385c19","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-7.0.0-beta.12.tgz","fileCount":19,"unpackedSize":26471,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfEmH3CRA9TVsSAnZWagAAKswQAJK5H76Adpdfdb83pR4m\nswg3jtXAYc031KSVf+A3Yhk1oFp+O7mExdxCmiqlPFfX37aWmcTwNX79jW8/\nkx1KGxWDkWUhn1d6VV0lBZNGlLoBeSdMOQUE+m4aXjzii1QaKTapnE218WNi\n/T3k+s7idG1TxyBYLurLYKQB/9O9rA870fhMobo7jm8wU7zrQRP6Tre2hhac\n+4vaoMdLGH467EmCSp0U+o09EXAPS/5JrxPPLoxNvsyLMWMMc+CPM7scpzSF\nE5og15O7cFPiUTHQydWKoi1TnjUooe/w/SpapprZhr+aDAsA1LUp24RMqJPi\nlUrZu0TkfkfmCYorq0pGS+zn8jFK3NmrweJLsGxianzmfkjTSj2T66GV0avb\nfHgnjF/4dynth8SrKTWlV9MlR3CdFl39kK+h2ljJTICxcIhxiqrbC73ZDWKC\nTORXqdue1c1NmLQVhLDuRQkUukSISpwo8pAb1LKqn17chX0gjvd/skK6+0pV\n8GV9nvNHAubciw7yqfdgQpfoIorc1NIeQcA7+bVesLzQQgemBJs3/0J+iJhX\nUPjSpZtc1U+Z11BiGmVYYhU2JGWfakAsAQ/MxojGmpFapLIHhG/mVUOUm6hA\ndPWtjoTz9gUZuBtm2Qd0OvgbLbyPYqYchGA7agN+OGNVtp93IAzKBrbllQkI\n4yYC\r\n=A5S1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIANg3de+HUD+tzQ4YkzdJhJp38KgSChEeeR8TwPst9zeAiAO0Wz4JIHC1GJ5hAsMVzkO97I0ikOU9dbnmuPLlCBhCg=="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_7.0.0-beta.12_1595040247346_0.381760934685933"},"_hasShrinkwrap":false},"7.0.0-beta.13":{"name":"@redux-model/taro","version":"7.0.0-beta.13","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"@redux-model/core":"^7.0.0-beta.13","qs":"6.9.4","tslib":"2.0.0"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","react-redux":"^7.2.0"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"4e57d7d5e466ca2567d9d8f5d40059b1b23b9224","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\nRedux Model is created to enhance original redux framework, which has complex development flow and lots of template fragments.\n\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# Features\n\n* Less code and higher efficiency\n* Modify reducer by MVVM\n* Absolutely 100% static type checking with typescript\n* Trace loading status for each request action\n* Support react/vue hooks\n\n# Installation\n\n### React or React-Native\n```bash\nnpm install @redux-model/react redux react-redux\n```\n\n### Vue v3\n```bash\nnpm install @redux-model/vue redux\n```\n\n### Taro v3\n```bash\nnpm install @redux-model/taro redux react-redux\n```\n\n### Others\n* For `taro < v3`, install @redux-model/taro@6.9.2 instead\n* For `vue < v3`, install @redux-model/vue@6.9.2 instead\n\n# Define Model\n```typescript\ninterface Response {\n    id: number;\n    name: string;\n}\n\ninterface Data {\n    counter: number;\n    users: Partial<{\n        [key: string]: Response;\n    }>;\n}\n\nclass TestModel extends Model<Data> {\n    increase = this.action((state) => {\n        state.counter += 1;\n    });\n\n    getUser = $api.action((id: number) => {\n        return this\n            .get<Response>(`/api/user/${id}`)\n            .onSuccess((state, action) => {\n                state.counter += 1;\n                state.users[id] = action.response;\n            });\n    });\n\n    protected initReducer(): Data {\n        return {\n            counter: 0,\n            users: {},\n        };\n    }\n}\n\nexport const testModel = new TestModel();\n```\n\n# With React Hooks\n```typescript jsx\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    const increase = () => {\n        testModel.increase();\n        testModel.getUser(3);\n    };\n\n    return (\n        <button onClick={increase}>\n            {loading ? 'Waiting...' : `You clicked ${counter} times`}\n        </button>\n    );\n};\n\nexport default App;\n```\n\n# With Vue Hooks\n```vue\n<template>\n  <button @click=\"increase\">\n    {{loading.value ? 'Waiting...' : `You clicked ${counter.value} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n    setup() {\n        const increase = () => {\n            testModel.increase();\n            testModel.getUser(3);\n        };\n\n        const counter = testModel.useData((data) => data.counter);\n        const loading = testModel.getUser.useLoading();\n\n        return {\n            increase,\n            counter,\n            loading,\n        };\n    }\n};\n</script>\n```\n\n# With Redux Connect\n```typescript jsx\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nclass App extends Component<Props> {\n    increase() {\n        testModel.increase();\n        testModel.getUser(3);\n    }\n\n    render() {\n        const { loading, counter } = this.props;\n        return (\n            <button onClick={this.increase}>\n                {loading ? 'Waiting...' : `You clicked ${counter} times`}\n            </button>\n        );\n    }\n}\n\nconst mapStateToProps = () => {\n    return {\n        counter: testModel.data.counter,\n        loading: testModel.getUser.loading,\n    };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# Demos\n\n* [React Web](https://github.com/redux-model/redux-model-web-demo)\n\n# Documents\n\nHere is the [document](https://redux-model.github.io/redux-model)\n\n---------------------\n\nFeel free to use it and welcome to send PR to me.\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@7.0.0-beta.13","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-uR+G+ntaEAjQP2LzHcT8oSj5YWV8BygsmOXXx/sOeJ7NwjyjIFc+XfoVj74x5WYPcGkmLDnxkWxx3PcC1Ed7xQ==","shasum":"0dc8260ed00f76e9e90beb2e96e746d16f5c7434","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-7.0.0-beta.13.tgz","fileCount":19,"unpackedSize":26549,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfEwx4CRA9TVsSAnZWagAAs84P/1FvsdYkO4ksVjHRFGOq\nlwcjy9MGY2OK2kV0E0VqkfYdl0cL7Qu3pyh6Jcb64gH7pj/GvltrBWubxhZ2\nB39/HcdxA7veF6t+z2/MCd1iNxMDsooBfV2qKQIB23AX0uIvL6t3DFuTVVDV\n1cTX8WN0/nGkZEhJhvxTNdjICdOcvEkS3TbHWTPC4bjyRu0zdsVN0A7VfyuZ\nfkA0TrVcv8EBIJdw40yGxEVQO4lXNhD2G4aW3tfiTG4bg7AePl+TuTIJE6RQ\nZ3C9811w42kJgLgbG9Ur+zJoONWb2RTeD8X7jIFn0TyLj96OHOfPiv4KXUt/\nK2sBz7nfQ+RhVM//wcxGrK8X9i8zaQyqodrPL5iRa9U609VQnLrSKsQqLAdq\n2dbuKImARScDjt/uAWfvSFdcTu/nXAZhKNfVW9M0NHbI8cdW3eHI04+1OSXQ\nimyF7rj/NKfq7gVuBc1UDxKA03d7etGgKnmBkdA7Lv2RNtihrrKKHm1rUued\n41qb+zW+aLC8uXNabBvnQ+6JKC3vp9ZHN2bfvUjfRfXqVYCCwuIb7ImTJLAv\nfJffroIPJ53oMZOxV5yefrbcGfryqbrp/+FEZpFa/evTvwUpS/uD87I9Gr7e\nmZszgZCYLGEaT1D5Jyw7PCk6/bvq55oyzmMSPtXWmhk3E7YlNUBtX847np83\nNz4v\r\n=g2Yi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAtxvI2m5pZSp1XWqfODd0BERC/XuglcrFyQoyPss7qRAiEAm7I+VLs/g9NHTa3nc4B/6gs3yss9RKExdwarZ3babgA="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_7.0.0-beta.13_1595083895881_0.4049925018113265"},"_hasShrinkwrap":false},"7.0.0-beta.14":{"name":"@redux-model/taro","version":"7.0.0-beta.14","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"@redux-model/core":"^7.0.0-beta.14","qs":"6.9.4","tslib":"2.0.0"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","react-redux":"^7.2.0"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"824cc9e7c45b3db6d59da0759e361493e844611c","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\nRedux Model is created to enhance original redux framework, which has complex development flow and lots of template fragments.\n\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# Features\n\n* Less code and higher efficiency\n* Modify reducer by MVVM\n* Absolutely 100% static type checking with typescript\n* Trace loading status for each request action\n* Support react/vue hooks\n\n# Installation\n\n### React or React-Native\n```bash\nnpm install @redux-model/react redux react-redux\n```\n\n### Vue v3\n```bash\nnpm install @redux-model/vue redux\n```\n\n### Taro v3\n```bash\nnpm install @redux-model/taro redux react-redux\n```\n\n### Others\n* For `taro < v3`, install @redux-model/taro@6.9.2 instead\n* For `vue < v3`, install @redux-model/vue@6.9.2 instead\n\n# Define Model\n```typescript\ninterface Response {\n    id: number;\n    name: string;\n}\n\ninterface Data {\n    counter: number;\n    users: Partial<{\n        [key: string]: Response;\n    }>;\n}\n\nclass TestModel extends Model<Data> {\n    increase = this.action((state) => {\n        state.counter += 1;\n    });\n\n    getUser = $api.action((id: number) => {\n        return this\n            .get<Response>(`/api/user/${id}`)\n            .onSuccess((state, action) => {\n                state.counter += 1;\n                state.users[id] = action.response;\n            });\n    });\n\n    protected initReducer(): Data {\n        return {\n            counter: 0,\n            users: {},\n        };\n    }\n}\n\nexport const testModel = new TestModel();\n```\n\n# With React Hooks\n```typescript jsx\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    const increase = () => {\n        testModel.increase();\n        testModel.getUser(3);\n    };\n\n    return (\n        <button onClick={increase}>\n            {loading ? 'Waiting...' : `You clicked ${counter} times`}\n        </button>\n    );\n};\n\nexport default App;\n```\n\n# With Vue Hooks\n```vue\n<template>\n  <button @click=\"increase\">\n    {{loading.value ? 'Waiting...' : `You clicked ${counter.value} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n    setup() {\n        const increase = () => {\n            testModel.increase();\n            testModel.getUser(3);\n        };\n\n        const counter = testModel.useData((data) => data.counter);\n        const loading = testModel.getUser.useLoading();\n\n        return {\n            increase,\n            counter,\n            loading,\n        };\n    }\n};\n</script>\n```\n\n# With Redux Connect\n```typescript jsx\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nclass App extends Component<Props> {\n    increase() {\n        testModel.increase();\n        testModel.getUser(3);\n    }\n\n    render() {\n        const { loading, counter } = this.props;\n        return (\n            <button onClick={this.increase}>\n                {loading ? 'Waiting...' : `You clicked ${counter} times`}\n            </button>\n        );\n    }\n}\n\nconst mapStateToProps = () => {\n    return {\n        counter: testModel.data.counter,\n        loading: testModel.getUser.loading,\n    };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# Demos\n\n* [React Web](https://github.com/redux-model/redux-model-web-demo)\n\n# Documents\n\nHere is the [document](https://redux-model.github.io/redux-model)\n\n---------------------\n\nFeel free to use it and welcome to send PR to me.\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@7.0.0-beta.14","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-4gH2Qnp0G8iLC6GO2HjFRETtxI9u146QOVW4L1dZxAfo45lbi7c3qEWgUqQWE9t0Un7S5or5q6TLjMiCJwlOVA==","shasum":"2b6408abe38401f7c6c0b4c29f9e2fad63af2579","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-7.0.0-beta.14.tgz","fileCount":19,"unpackedSize":26014,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFCH3CRA9TVsSAnZWagAApm4P/0+sTlnLKVcMPvgR6W4p\nPafP9rSdwYMjcB6AxYC9PTYPsHvgvHGvlzpcKggc/mOXrXdw6pfWYPHPXcVw\nZVN6p+qKIGtebaK0O4bkHAuRpM3rvDHRqVwxyBf59ApbyDSs40g5Lqj6Vqcb\nM2WWXPtjQ2ZaBez21m16pr8lSbFN5px69pCDcMJ0Rf7M+24CK+DsizF5kEyu\n2TcGIP5QXCACTNZrYIRWK2CcUhisMKSaZvRRZuIVFTsXoHVvE+dAFxDMf28l\nTNC+TrGYcc6nC9a97Ae5XMXaMoMDRcO5M78hF5qprl1/ZnphQSUJgLUhcHqG\nR4Pps4upuuUleSnl2bbPGNve+d1Na6EYvBqdGiUqGhx1HyXKH6TAIyIIG0rE\nqnCnpfFuuCAJEzr7wqgnS98CPkZ9Z93BIoCny757kpIKrziobMj+KKe+vaSw\naRcsT377QJQVlXPuFKvG6JvOokUPnfqHYNvQnmnR0Mws251PsCAwT4+zi/LM\nDJ/gCE85Y/3OjNSRkXSbCdroVKOMPxcdxUFrv6ITqb06llftDaBHTmeVcoTP\nEahkrzht71+RA3Tbb1o5wDwXbICqbA6pN+A8UjM57s5AlvKD8fyC1BN5PjX5\nEVT2NpsALUKd3Xvs1Q/s7Pyqk89RBK+xN1lwEJGyP8pXwjs8Z+PS36hR5bzA\nENzO\r\n=g5OK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBSws5+cvg97rhX9dVAuHjKxSwvSI/A6cgYCujz56/lCAiA7xZXYcmEwhR5ffDVuchk3snYC+QOlLS/6AXhvADPuwQ=="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_7.0.0-beta.14_1595154935546_0.5971833498692971"},"_hasShrinkwrap":false},"7.0.0-rc.0":{"name":"@redux-model/taro","version":"7.0.0-rc.0","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"@redux-model/core":"^7.0.0-rc.0","qs":"6.9.4","tslib":"2.0.0"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","react-redux":"^7.2.0"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"53d0feae1f63bd6b0eed2cce9f624c061507ef81","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\nRedux Model is created to enhance original redux framework, which has complex development flow and lots of template fragments.\n\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# Features\n\n* Less code and higher efficiency\n* Modify reducer by MVVM\n* Absolutely 100% static type checking with typescript\n* Trace loading status for each request action\n* Support react/vue hooks\n\n# Installation\n\n### React or React-Native\n```bash\nnpm install @redux-model/react redux react-redux\n```\n\n### Vue v3\n```bash\nnpm install @redux-model/vue redux\n```\n\n### Taro v3\n```bash\nnpm install @redux-model/taro redux react-redux\n```\n\n### Others\n* For `taro < v3`, install @redux-model/taro@6.9.2 instead\n* For `vue < v3`, install @redux-model/vue@6.9.2 instead\n\n# Define Model\n```typescript\ninterface Response {\n    id: number;\n    name: string;\n}\n\ninterface Data {\n    counter: number;\n    users: Partial<{\n        [key: string]: Response;\n    }>;\n}\n\nclass TestModel extends Model<Data> {\n    increase = this.action((state) => {\n        state.counter += 1;\n    });\n\n    getUser = $api.action((id: number) => {\n        return this\n            .get<Response>(`/api/user/${id}`)\n            .onSuccess((state, action) => {\n                state.counter += 1;\n                state.users[id] = action.response;\n            });\n    });\n\n    protected initReducer(): Data {\n        return {\n            counter: 0,\n            users: {},\n        };\n    }\n}\n\nexport const testModel = new TestModel();\n```\n\n# With React Hooks\n```typescript jsx\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    const increase = () => {\n        testModel.increase();\n        testModel.getUser(3);\n    };\n\n    return (\n        <button onClick={increase}>\n            {loading ? 'Waiting...' : `You clicked ${counter} times`}\n        </button>\n    );\n};\n\nexport default App;\n```\n\n# With Vue Hooks\n```vue\n<template>\n  <button @click=\"increase\">\n    {{loading.value ? 'Waiting...' : `You clicked ${counter.value} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n    setup() {\n        const increase = () => {\n            testModel.increase();\n            testModel.getUser(3);\n        };\n\n        const counter = testModel.useData((data) => data.counter);\n        const loading = testModel.getUser.useLoading();\n\n        return {\n            increase,\n            counter,\n            loading,\n        };\n    }\n};\n</script>\n```\n\n# With Redux Connect\n```typescript jsx\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nclass App extends Component<Props> {\n    increase() {\n        testModel.increase();\n        testModel.getUser(3);\n    }\n\n    render() {\n        const { loading, counter } = this.props;\n        return (\n            <button onClick={this.increase}>\n                {loading ? 'Waiting...' : `You clicked ${counter} times`}\n            </button>\n        );\n    }\n}\n\nconst mapStateToProps = () => {\n    return {\n        counter: testModel.data.counter,\n        loading: testModel.getUser.loading,\n    };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# Demos\n\n* [React Web](https://github.com/redux-model/redux-model-web-demo)\n\n# Documents\n\nHere is the [document](https://redux-model.github.io/redux-model)\n\n---------------------\n\nFeel free to use it and welcome to send PR to me.\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@7.0.0-rc.0","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-PJnZHD47zwR+GW3akzJyU2O17KIn2+bLwaKmxwwbRgK+RAzZjXbJJKvwfxlNf6qi5wDIpKN1JD0hpofFyIPehA==","shasum":"9c280d5874bbdacec2da23e5606f4ca9aa07c0b1","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-7.0.0-rc.0.tgz","fileCount":19,"unpackedSize":26533,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFFPLCRA9TVsSAnZWagAAwWMP/0l4JLKCZUtdDX4t9bQT\nELFYArBDLD1hmKqm1vRxRfDfl8whZELWngrAjIZ/aaafFLgDAy7zvs0uUI3J\n4Y3fwrVN39zWEDpzcTItV72QiKJ5wRd4ZM4kpDhYHOc1NsJV06Dq37/HIoC1\noT2kZgkwOIycXpwtGRgBo9CA2sR0LMnrBPN0JrYDqspgHfomfSksYAr0Ji7g\nRR3TACrlUujho1QO4vIt7zUn24N2Pi7+U+OstCzodHo2eLtMPbsA6HqO2M/T\nZ15tb04SR/lmf6tIK0R6diYqwqyNt6VnCpjPlSVCf8IZ92UT4i512vpLUlOT\nChFPDHZChMscf4IYx0tmX4DNKG5pcDzPp1W4Bp3/pd/jl8STAM79WnG/cVw9\naz67FLeUeam5babiCMcqlgBDMCif2RK4nsDIMvcWbSm5ZZW9K6dRp4Z7XO+f\n9m47o1dAUaMjrFzisejUJJYYa/cfYq0MTxeRHB/pLtLNL+vvrcakVT0o0NIT\nW8qnv95JH7DxE95EE1QTpdRAdQJUlDBhB8EIOknb+pzaxnAeUAKirKQYYxP7\nyS3vhhdIWeMXAcHxn1e0D1BqE0/BftDs+wiLHjL+fEeKTk0vniqCGxBZ+dJk\nTv/EhqAKEoM3F+hzrzkKRzI8OrAU2lX9Gf4fN9IjVuSiFUNtVkUv/UI73loa\nukM0\r\n=+28k\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDz7LnaWlMkq5K9HuSugvPpasp/oZ7CjAx54s7TfHq7twIgSsd0h0DOyTiYDSpL0m4kV35R4EHrioquHn7bpdZJU3U="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_7.0.0-rc.0_1595167691167_0.6113423721689479"},"_hasShrinkwrap":false},"7.0.0-rc.1":{"name":"@redux-model/taro","version":"7.0.0-rc.1","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"@redux-model/core":"^7.0.0-rc.1","qs":"6.9.4","tslib":"2.0.0"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","react-redux":"^7.2.0"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"d7f45bfdea72fe5921e038fa3c480b92d5bb41b4","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\nRedux Model is created to enhance original redux framework, which has complex development flow and lots of template fragments.\n\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# Features\n\n* Less code and higher efficiency\n* Modify reducer by MVVM\n* Absolutely 100% static type checking with typescript\n* Trace loading status for each request action\n* Support react/vue hooks\n\n# Installation\n\n### React or React-Native\n```bash\nnpm install @redux-model/react redux react-redux\n```\n\n### Vue v3\n```bash\nnpm install @redux-model/vue redux\n```\n\n### Taro v3\n```bash\nnpm install @redux-model/taro redux react-redux\n```\n\n### Others\n* For `taro < v3`, install @redux-model/taro@6.9.2 instead\n* For `vue < v3`, install @redux-model/vue@6.9.2 instead\n\n# Define Model\n```typescript\ninterface Response {\n    id: number;\n    name: string;\n}\n\ninterface Data {\n    counter: number;\n    users: Partial<{\n        [key: string]: Response;\n    }>;\n}\n\nclass TestModel extends Model<Data> {\n    increase = this.action((state) => {\n        state.counter += 1;\n    });\n\n    getUser = $api.action((id: number) => {\n        return this\n            .get<Response>(`/api/user/${id}`)\n            .onSuccess((state, action) => {\n                state.counter += 1;\n                state.users[id] = action.response;\n            });\n    });\n\n    protected initReducer(): Data {\n        return {\n            counter: 0,\n            users: {},\n        };\n    }\n}\n\nexport const testModel = new TestModel();\n```\n\n# With React Hooks\n```typescript jsx\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    const increase = () => {\n        testModel.increase();\n        testModel.getUser(3);\n    };\n\n    return (\n        <button onClick={increase}>\n            {loading ? 'Waiting...' : `You clicked ${counter} times`}\n        </button>\n    );\n};\n\nexport default App;\n```\n\n# With Vue Hooks\n```vue\n<template>\n  <button @click=\"increase\">\n    {{loading.value ? 'Waiting...' : `You clicked ${counter.value} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n    setup() {\n        const increase = () => {\n            testModel.increase();\n            testModel.getUser(3);\n        };\n\n        const counter = testModel.useData((data) => data.counter);\n        const loading = testModel.getUser.useLoading();\n\n        return {\n            increase,\n            counter,\n            loading,\n        };\n    }\n};\n</script>\n```\n\n# With Redux Connect\n```typescript jsx\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nclass App extends Component<Props> {\n    increase() {\n        testModel.increase();\n        testModel.getUser(3);\n    }\n\n    render() {\n        const { loading, counter } = this.props;\n        return (\n            <button onClick={this.increase}>\n                {loading ? 'Waiting...' : `You clicked ${counter} times`}\n            </button>\n        );\n    }\n}\n\nconst mapStateToProps = () => {\n    return {\n        counter: testModel.data.counter,\n        loading: testModel.getUser.loading,\n    };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# Demos\n\n* [React Web](https://github.com/redux-model/redux-model-web-demo)\n\n# Documents\n\nHere is the [document](https://redux-model.github.io/redux-model)\n\n---------------------\n\nFeel free to use it and welcome to send PR to me.\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@7.0.0-rc.1","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-l/Ak9F5ixeMT2pY1VzCkEvln3TRT9Y44V6MgqiUVHuoWZkEUQV+CNDr82RcvmqBCcz9cy0tijG4R4+jJOlI68w==","shasum":"915780c0894f15e3f2659f335f08862ca4139195","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-7.0.0-rc.1.tgz","fileCount":19,"unpackedSize":26533,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFHcXCRA9TVsSAnZWagAA2FUP/2ItuQd3ZQdJ0Z0z7AIr\nWxDW0nxqk1aXP5Hae3PLcM7rPxtdmmyG40j6D2breWAyAxYsTGOQlceJg0e0\nEPXDceLiv0wDLX8SVlK3IVSlSlCl24B+E7VYHqk/YDtbsEtS1JbyTRO+ifFn\n4Svvboza8UUwZIthj/IU0Qn9vOt/D6lL41Tm423LJFSpNt2UyMdGT9WgVarW\no8yf3yGhhR3kAfn+ezgnuA+Kxz0CRIVKtVI0eqHM/XBxOVpfXZdfPEEr1U2P\nigIWF/xYWXgvDrMCCw/UhYUsXvlczU7dc1AaezVkEl5HGVhO1g90c4WKSeNk\nJu6/8d8JPyGUtxKk0xlCcq7gvp1HXEoZXkX9XWlEvop19YSG+8CBQw52u41R\n4E+er9gfra9ABs5xzYJ3+QMs2RPWzADjutL83l1OsrQUl6EZqd5rKPaJhSQr\n7C2oR3i3Smnb+poEMpBvoKrNZvayATes7Bt7YcTwa3a8cA6oVTgZNv0YY4nn\nFH37BGoigzkzPfWGjEf5XJWl6i+g6BN1BRBcnKXomYwV+OSCGdv1wx/ZGdTZ\nqAQZWnYG/qyq5yhkYUe6xmIoWdTpU/GpDok0t91dxVt0FtFEhxgvc3W7SMGg\nCgNdc84qs5nBXrQuZIPY7svzJRZj/RyQO8LEP/K0PDJ7VHT2Ll6CBRYjfKdR\n13B8\r\n=M3b5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCaRqRreh8PS/I8YwXqZYwwu8/T82KlD8MUl3cEdFwWDQIhAIk69YVSXcWATX8pzHEmCYID6xPgtBm/YW0d2gcqx9bK"}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_7.0.0-rc.1_1595176726904_0.22366082098954343"},"_hasShrinkwrap":false},"7.0.0":{"name":"@redux-model/taro","version":"7.0.0","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"@redux-model/core":"^7.0.0","qs":"6.9.4","tslib":"2.0.0"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","react-redux":"^7.2.0"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"b7454cdbfdb128ea00aafb659d7fd712d4aa281d","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@7.0.0","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-rR+pPLhPYxIBlJJNsVMN92nLj3yvXPTU1+4VVYw85nv2PxJE2EIX8TR/00oWsIVQlDKKgaCkMv3jLLhasTOz6w==","shasum":"dfdbf02ca21e3b6ffe4cbf0fcf1374222ff5bdfc","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-7.0.0.tgz","fileCount":20,"unpackedSize":29871,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFPxBCRA9TVsSAnZWagAA18MP/iBv0ShMRczr9Jqqoz2G\nai4KWmk/U5dT6+LV20VASX4vlWwzYmi4t03PnmzupM6rKbd+BHHzCcWTghwL\nSF2MpDFxjDV+ebfgPynCHFNz/S7l40AS3Tc17sXGN/U7SvBAZ6dyRVbQ2lm/\ngGBrCq4URwsFmmOHBvHS5oJGn/WaHNrKxR9ISn2rz7UY4rJC+HpnOSYs4fxy\n7H9PaYn9fsqizvd8sKBfdSJOGBh6t7lzY7KObyDCMLeOUK68d7E6laJfq8MF\nE+z3Ub7OLUTqor4HxvgJ5RDAnwsijfa1jqtlKmbwT8QcnQ2hrwEwAeeKYtcd\nx4+hG9SCxui67QqHB0fnTy67U1SvhjrYRcf/Ke1wBQGm22FvWMb5Rcby7ohK\nlSqDRWtcDpLwFmAobt2uHJgCFOXjaO/6e9mqsO4Tr5+7fmYHNAAtCdgmAh4E\n0BY5QvUbNRlVWdcDtaeAQc7Yi7HMYlSpLz1xbC4ARAEjlWwnBaYri6ba+uZu\n8kELhikl7VLRwPzxZZHj+k988HaUqUdCcXnptQrIHctoNC09pnHUIrzmRhEK\nRTPslssYrblType5fof8fQkn6CDY+5rV/izVNZy686EUj/W3Rmw5ovnqYeSI\nEy+UGY37Ynml6tMza3jKKxe718HzTS0cIoqAsMBpmwzZv9L3PN4NvNzJsr68\nqoMW\r\n=mpaE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEFp6YLoKC1qwHCX++7Xow1+zXSpm6fosDsFvYtB2/kYAiEAp/EU4sN/wi6WPYW0G3aawvp1g3nUd5Toy8Fe77+HOxA="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_7.0.0_1595210817171_0.0996231782986392"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"7.0.1-alpha.0":{"name":"@redux-model/taro","version":"7.0.1-alpha.0","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"@redux-model/core":"^7.0.1-alpha.0","qs":"6.9.4","tslib":"2.0.0"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","react-redux":"^7.2.0"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"548d90f08f1fcc31e55558052fc490ddff94b6fa","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\n[English](./README-EN.md)\n\nRedux Model的存在是为了弥补原生Redux繁琐的开发流程，开发者重复劳动效率低下，模板文件导致代码量臃肿，以及因action和reducer文件分散造成代码追踪困难的问题而设计的。\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# 特性\n\n* 代码量极简，超高开发效率\n* 使用mvvm更改reducer，一步到位\n* **基于typescript定制，拥有100%无死角的业务代码类型提示**\n* 每个请求的action都自带loading状态记录\n* 支持 Hooks\n\n\n# 安装\n\n### React 或 React-Native\n```bash\nnpm install @redux-model/react redux react-redux\n```\n\n### Vue v3\n```bash\nnpm install @redux-model/vue redux\n```\n\n### Taro v3\n```bash\nnpm install @redux-model/taro redux react-redux\n```\n\n### 其它\n* 对于Taro 3.0之前的版本，请安装 **@redux-model/taro@6.9.2**\n* 对于Vue 3.0之前的版本，请安装 **@redux-model/vue@6.9.2**\n\n# 定义模型\n```typescript\ninterface Response {\n    id: number;\n    name: string;\n}\n\ninterface Data {\n    counter: number;\n    users: Partial<{\n        [key: string]: Response;\n    }>;\n}\n\nclass TestModel extends Model<Data> {\n    increase = this.action((state) => {\n        state.counter += 1;\n    });\n\n    getUser = $api.action((id: number) => {\n        return this\n            .get<Response>(`/api/user/${id}`)\n            .onSuccess((state, action) => {\n                state.counter += 1;\n                state.users[id] = action.response;\n            });\n    });\n\n    protected initReducer(): Data {\n        return {\n            counter: 0,\n            users: {},\n        };\n    }\n}\n\nexport const testModel = new TestModel();\n```\n\n# 在React Hooks中使用\n```typescript jsx\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    const increase = () => {\n        testModel.increase();\n        testModel.getUser(3);\n    };\n\n    return (\n        <button onClick={increase}>\n            {loading ? 'Waiting...' : `You clicked ${counter} times`}\n        </button>\n    );\n};\n\nexport default App;\n```\n\n# 在Vue Hooks中使用\n```vue\n<template>\n  <button @click=\"increase\">\n    {{loading.value ? 'Waiting...' : `You clicked ${counter.value} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n    setup() {\n        const increase = () => {\n            testModel.increase();\n            testModel.getUser(3);\n        };\n\n        const counter = testModel.useData((data) => data.counter);\n        const loading = testModel.getUser.useLoading();\n\n        return {\n            increase,\n            counter,\n            loading,\n        };\n    }\n};\n</script>\n```\n\n# 在Redux Connect中使用\n```typescript jsx\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nclass App extends Component<Props> {\n    increase() {\n        testModel.increase();\n        testModel.getUser(3);\n    }\n\n    render() {\n        const { loading, counter } = this.props;\n        return (\n            <button onClick={this.increase}>\n                {loading ? 'Waiting...' : `You clicked ${counter} times`}\n            </button>\n        );\n    }\n}\n\nconst mapStateToProps = () => {\n    return {\n        counter: testModel.data.counter,\n        loading: testModel.getUser.loading,\n    };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# 简单的例子\n\n* [React Web](https://github.com/redux-model/redux-model-web-demo)\n\n# 文档\n\n请点击[这里查看文档](https://redux-model.github.io/redux-model)\n\n---------------------\n\n欢迎使用并随时给我建议\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@7.0.1-alpha.0","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-UmXH2TvUPw09JYuBmzi7l1u2Kv+RZRL/DgJPAgd1WcF66qMWPvYDq5+1pwEPK/hfAKtqCf8+/NQdJoLyAZt63w==","shasum":"02fc6106cf2059e3dcd98e76ccf23164b7fff46a","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-7.0.1-alpha.0.tgz","fileCount":22,"unpackedSize":30526,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfHjygCRA9TVsSAnZWagAAhJsP/RM3Gg9kPemUbHQNfbzz\nc8mQD+Lvm1D698ej/9C3bQDf/XYwDUEMiD4kQ3B+JGNPmIyv7Pn3c/Vllv8L\nZ4KfNUc+P6aX+IPegwjLma0h3eUWrS9cG2/wZ3rlevdVP9/jpy3Ady88RjxG\nKp+S3b8HgfgJLffK6Hx0zkUo4JFFX67FFrDN7YueP1qKM3mP/tcP6q6JMMDs\niMOeMXwYWGoJXE2a4n+afKGKCdsJDq53jzW5iWwXUxQViTCs4utZAVfeYKuJ\nB2DePh+IZllweIlAfCc3GMJ6jr+HHdshUUfPDnpBxhnOe8v2owfP+cwJ3Ekx\nlhQKMyPG4vdR5RHWQsxbhp+awVom9qVH05tHkQEQxDIcMr+dpag5HCXQ+Af2\nfX7hHiJ3myyLt8DPhT68o8aQCM4wFG2lanas7nTyWbW99ntOK8GTSaM7VBKk\nybC3fsMsjIYw0mqtHBwIQeILuA4HdK2iU/vgzo7Ohxpp5s0LGBmDAyFxjb9o\nGq0EiwfQNKpU4n8mXweupuQxQ0hNsf4Sa659MFNKXd8EDancmfTADfy4iKoo\nWkKXR/7SO3gRfde/SYkt8/Ks9ce3qHGxWhJ6yYI0M1CNSQN0LUN3gQQcDm92\nZSP5Vw4CwbBe1E00wj/v675S4KPTamhnymtN+38Tz294swgNhV1Vnuvo6sJF\nhrOS\r\n=zAl5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCw7uffd/GVx7GYs+Wh6GD/si7UR0wII2QVR5Oi927HcAIhAP2u2uL6Zz22cvpQ8ya4nuIvEBVQxhCkWuOb/xMxHP3w"}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_7.0.1-alpha.0_1595817119600_0.30931312393215116"},"_hasShrinkwrap":false},"7.0.1":{"name":"@redux-model/taro","version":"7.0.1","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"@redux-model/core":"^7.0.1","qs":"6.9.4","tslib":"2.0.0"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","react-redux":"^7.2.0"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"606d7c142dfd7717c847b0aeaa60e76e477764b5","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@7.0.1","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-JfPeAdKuTRtlz8HvtAKWu3qGno2JI1i5wn0d0vdTqW90aT5OQolZqR/LG1LFACimumtOonB1ayFOqO0okeU/Ww==","shasum":"670383eb196c0ee5c8c5373ef8481b5f48ccdef7","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-7.0.1.tgz","fileCount":22,"unpackedSize":30926,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfHkKLCRA9TVsSAnZWagAAk3IQAKOX9qFLyv210WqsXZhl\nMhh1vZZRU9Z1vXV8CjJR3DGYlHOAls/w8dHAXweJFDquWntKIB3vah9J4+VL\nSad6ckV96EW4bH6aGQQujjUYZkbeYLkcLUFy6BhcWeWNyMi/zgKO+J2wQbgI\nLHIPxRbSfiG8ktZYt8IoT3hcDQnpSXHb2x7s0hqUA66ObRSVOEjc6IuesPBk\nMqZEYOoopmJyqKV4IqUja2L6CU0irUDbrZyLjACbS0CuBy7efLd7lYH5tOgT\nfYFpO5I4C6Qcm9RXLtjgLDuQMhSHhhnN0d9+p23sUba/PpP2kEQS/qBPOnru\ne4sPxOunEYYV6bF3vBENsu5v+nDB8CaGeEr80G0rKHxWAKbYhKXoc2c9DOOU\n++nh35JRAK0jwnKFgF9PePbE1RQGyFmvwv6sTWqb9SsqNwD/w0eqnYQ9PZ4S\nZovrY/7yT4MIt+yX6l7LeEHtYEAzu8FRzzHuIDh5nVfcYQQjvroeC2R/Tw0G\nG0FPAynUYsb+5FmKKo+HlSR9Nco4G9zBWk5yy9ziV+UyhOA3W6y9BYNVLJQY\nQrPWu9HjNnEXhMpeJUThfccAylGCNgQCAgL6iU15xelZeLnNKTFbuii4Do1j\nyTaq+Um2ZYjlqOXhHRt2hpfZ8AKHCyCYPM/TdiXZYdvXeWBctHM3xu3OE/4I\nZS3f\r\n=/UFt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDVUoU7NU1MQ/Taq47deBBbTT8ChsGeU1JHe+GpjmQdCwIhAKswoIdpObZjRVwHkWjUUNXex2fNQaGW3w69arttfJN4"}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_7.0.1_1595818635509_0.16941139450163"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"7.1.0":{"name":"@redux-model/taro","version":"7.1.0","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"@redux-model/core":"^7.1.0","qs":"6.9.4","tslib":"2.0.0"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","react-redux":"^7.2.0"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"07dc213467b9e4c05b18b6d4bdcd11f02be628a4","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@7.1.0","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-JnedIBiX9gf5wEDpU6Mq/BFSsEC977xUuPDi2MHoZTDRJuGxFExDud9JVttIfPY0dxFU3ZYeIqZYb3ESxzQyyg==","shasum":"ef2ef7ed0480ef822efbf7609c6bb1c5d42c2644","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-7.1.0.tgz","fileCount":22,"unpackedSize":32301,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfIRSwCRA9TVsSAnZWagAAo9YP/1IW2t1pvLJTJmQqThuJ\nU6g7ZU2aovB9jN/+YBB1Ea8x1EO3qai4sxlbamDHnyC2wSaYkzFam9mMcSk8\n0fnI2LU4v52HkObYegxB443AFkSeS8R4nQRATdL/wFwYT6n44LzPjc1EG6Rh\nJSvwPkERv9ytPcKnaD/bMCIrSvI9OiJkHaDOpqlStzsV5WikRER333pUcs1d\nV2VpQ03nN/lOnp6dHRWWle3N3ivVOCYmvIuumb9jQmk6GofcNxI5uG8IiZAo\nAE19NeR3xQZwZbsg35/8M8XfYgBAkM8KfCdi8wR3d05j4jpcdQ5oFPF+WFi9\nXDKY+nMnspgEZc0lKp/W3j9gn6wLtAxiVlAgJL29K4RElrdA5623SJ/95+Gz\ns37ru0Iy+5z5DdI72SsO0+7dgRxUivL7eIEOHtpg5ARFL349ofo+hcVAOjG1\n3xX2QsWm+1sl7+HfwkI4kpAmcyWSIcXcEhYtbVVTV2Um1QP+eX3uxVKzFZgt\nCY1pOQLZTWFkNrgUErAw7hasnu5lVQXkc2vVcj2Ijp5M2g9nOjP7F4BsYErg\n7pXSsMRzP3wXP02jMxCv1jbv0fYuIDEJlEQ5CQpKbqiJWQVc2XUgiBmSq5f9\n7M+8aDhTpbk9a7IJYpfAEGKy6/oqK20j+8LqnwAnDo9V9wSjhjVHgtN8Xy3Z\nEjLc\r\n=mk8C\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE/kIsUNkuWXhdtw4xSNbvLPiGtO/0St/Ay94/mGmQF7AiEA0KLGcxg+ZI1j0QIwf50qOYwNPG8VvBB2QA4eYeOkvoY="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_7.1.0_1596003503647_0.43318206713858953"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"7.1.1-alpha.0":{"name":"@redux-model/taro","version":"7.1.1-alpha.0","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"@redux-model/core":"7.1.1-alpha.0","qs":"6.9.4","tslib":"2.0.0"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","react-redux":"^7.2.0"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"38ceb1f67bb451ccba8c032e017c0f95f3cda3c4","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\n[English](./README-EN.md)\n\nRedux-Model是为了弥补原生Redux繁琐的开发流程，开发者重复劳动效率低下，模板文件导致代码量臃肿，以及因action和reducer文件分散造成代码追踪困难的问题而设计的。\n\n众多知名的状态管理框架，基本都是为JS用户设计的。离散的代码结构、严格的设计模式、不合时宜的细节封装，都意味着想完美融入TypeScript，就必须经常手动注入类型。幸运的是，Redux-Model专门为Typescript设计，强健的自动推导能力，允许类型一次注入，到处使用。\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# 特性\n\n* 深度封装，超高开发效率\n* 使用mvvm快速处理reducer\n* **无typescript不编程，拥有100%无死角的业务代码类型提示**\n* 内置http服务，请求action自带loading追踪、节流\n* React/Vue Hooks\n* 数据持久化\n\n\n# 安装\n\n### React 或 React-Native\n```bash\nnpm install @redux-model/react redux react-redux\n```\n\n### Vue v3\n```bash\nnpm install @redux-model/vue redux\n```\n\n### Taro v3\n```bash\nnpm install @redux-model/taro redux react-redux\n```\n\n### 其它\n* 对于Taro 3.0之前的版本，请安装 **@redux-model/taro@6.9.2**\n* 对于Vue 3.0之前的版本，请安装 **@redux-model/vue@6.9.2**\n\n# 定义模型\n```typescript\ninterface Response {\n    id: number;\n    name: string;\n}\n\ninterface Data {\n    counter: number;\n    users: Partial<{\n        [key: string]: Response;\n    }>;\n}\n\nclass TestModel extends Model<Data> {\n    increase = this.action((state) => {\n        state.counter += 1;\n    });\n\n    getUser = $api.action((id: number) => {\n        return this\n            .get<Response>(`/api/user/${id}`)\n            .onSuccess((state, action) => {\n                state.counter += 1;\n                state.users[id] = action.response;\n            });\n    });\n\n    protected initReducer(): Data {\n        return {\n            counter: 0,\n            users: {},\n        };\n    }\n}\n\nexport const testModel = new TestModel();\n```\n\n# 在React Hooks中使用\n```typescript jsx\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    const increase = () => {\n        testModel.increase();\n        testModel.getUser(3);\n    };\n\n    return (\n        <button onClick={increase}>\n            {loading ? 'Waiting...' : `You clicked ${counter} times`}\n        </button>\n    );\n};\n\nexport default App;\n```\n\n# 在Vue Hooks中使用\n```vue\n<template>\n  <button @click=\"increase\">\n    {{loading.value ? 'Waiting...' : `You clicked ${counter.value} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n    setup() {\n        const increase = () => {\n            testModel.increase();\n            testModel.getUser(3);\n        };\n\n        const counter = testModel.useData((data) => data.counter);\n        const loading = testModel.getUser.useLoading();\n\n        return {\n            increase,\n            counter,\n            loading,\n        };\n    }\n};\n</script>\n```\n\n# 在Redux Connect中使用\n```typescript jsx\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nclass App extends Component<Props> {\n    increase() {\n        testModel.increase();\n        testModel.getUser(3);\n    }\n\n    render() {\n        const { loading, counter } = this.props;\n        return (\n            <button onClick={this.increase}>\n                {loading ? 'Waiting...' : `You clicked ${counter} times`}\n            </button>\n        );\n    }\n}\n\nconst mapStateToProps = () => {\n    return {\n        counter: testModel.data.counter,\n        loading: testModel.getUser.loading,\n    };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# 简单的例子\n\n* [React Web](https://github.com/redux-model/redux-model-web-demo)\n\n# 文档\n\n请点击[这里查看文档](https://redux-model.github.io/redux-model)\n\n---------------------\n\n欢迎使用并随时给我建议\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@7.1.1-alpha.0","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-am94rCTN6s/vcPyQRfCQxQtxw/i271wbcu4ymr/K5Ayn+9gbtoO+CKExRd7cMKZtt72uihzsbrr7itqImvkiQQ==","shasum":"76919674c49ec02366ba0c1b1bf6d93bf3a798a7","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-7.1.1-alpha.0.tgz","fileCount":22,"unpackedSize":31795,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfI7etCRA9TVsSAnZWagAAzA8QAJ2fpG7T71C8ykRTTiUU\nSJz7iXYUdFMLx1soCQ/58JqgWTMGTTjAF67m1qhbmxLJFSkOPCbQEd7LeznS\nwr+KIHtR3/vtfQZCvxJxCdadggb3iEX0qVH3kH+bPS9KydtPGQuTfIaxECH7\nFe/XQQ6PLCk38QQYqG4njbBwgIpefg9fQWzAv+9F8lxo+oMXf6V91+uUSHlk\nDZtpJ9WIwFyS3vAV7QQIOCJftYtiWhbQdhW0RwRzxrmB7/4+RLqljksmVeVA\ncWW7qFVFwm0bK6gjRDDsCfaWGRBMFZ6lpmRfTCCXUF32Jmndedxj/RGwdakG\nATMwtnzWsHZDklfL8PvIGNr4gMNp6opzhGZLUJpaFWQ43YwQkz+lV8aSvlaH\nCrlZ66zchb5pfH/DAfn31huoC1ol7OjAwvRUYWwJGdvoJ1TNdqFFfw09JMIy\nyfoLtBIE9UEK5jW6eQo9tkYdcJzCQH/kR7vhowR9XDC5iycyZMuepME37/bF\nX5L1zViz/Yul2vgxaCR+xak+kKnNdn5fqk8LYcRts8KSYfLcdddPo7+75+hO\n/CuD548Nfnp3arHffrxMMi7WyeZi/MV6HT6yPxDelSwu9j9lH6LPBsEFAfFE\npBUqpuvHO9oFNBKi8DXkdZMDdPG7tTtSdPYOG4f87QX6X++Ksr5AR4Ca8LgK\nK0OK\r\n=guUZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCJgpM9C71vmokHhjuc/Mnuw+6mEYvZot1FWn0hXubMywIgfHDAeZ+9K00Mz56NuHHszV5rs4XIb1HoSK9PHF6AngU="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_7.1.1-alpha.0_1596176301138_0.6733560425627971"},"_hasShrinkwrap":false},"7.2.0-alpha.0":{"name":"@redux-model/taro","version":"7.2.0-alpha.0","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"@redux-model/core":"7.2.0-alpha.0","qs":"6.9.4","tslib":"2.0.0"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","react-redux":"^7.2.0"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"5bdba5ee3d56c9dd2db90a57d243f149a9cd7636","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\n[English](./README-EN.md)\n\nRedux-Model是为了弥补原生Redux繁琐的开发流程，开发者重复劳动效率低下，模板文件导致代码量臃肿，以及因action和reducer文件分散造成代码追踪困难的问题而设计的。\n\n众多知名的状态管理框架，基本都是为JS用户设计的。离散的代码结构、严格的设计模式、不合时宜的细节封装，都意味着想完美融入TypeScript，就必须经常手动注入类型。幸运的是，Redux-Model专门为Typescript设计，强健的自动推导能力，允许类型一次注入，到处使用。\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# 特性\n\n* 深度封装，超高开发效率\n* 使用mvvm快速处理reducer\n* **无typescript不编程，拥有100%无死角的业务代码类型提示**\n* 内置http服务，请求action自带loading追踪、节流\n* React/Vue Hooks\n* 数据持久化\n\n\n# 安装\n\n### React 或 React-Native\n```bash\nnpm install @redux-model/react redux react-redux\n```\n\n### Vue v3\n```bash\nnpm install @redux-model/vue redux\n```\n\n### Taro v3\n```bash\nnpm install @redux-model/taro redux react-redux\n```\n\n### 其它\n* 对于Taro 3.0之前的版本，请安装 **@redux-model/taro@6.9.2**\n* 对于Vue 3.0之前的版本，请安装 **@redux-model/vue@6.9.2**\n\n# 定义模型\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n  increase = this.action((state) => {\n    state.counter += 1;\n  });\n\n  getUser = $api.action((id: number) => {\n    return this\n      .get<Response>(`/api/user/${id}`)\n      .onSuccess((state, action) => {\n        state.counter += 1;\n        state.users[id] = action.response;\n      });\n  });\n\n  protected initReducer(): Data {\n    return {\n      counter: 0,\n      users: {},\n    };\n  }\n}\n\nexport const testModel = new TestModel();\n```\n\n# 在React Hooks中使用\n```typescript jsx\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n  const counter = testModel.useData((data) => data.counter);\n  const loading = testModel.getUser.useLoading();\n\n  const increase = () => {\n    testModel.increase();\n    testModel.getUser(3);\n  };\n\n  return (\n    <button onClick={increase}>\n      {loading ? 'Waiting...' : `You clicked ${counter} times`}\n    </button>\n  );\n};\n\nexport default App;\n```\n\n# 在Vue Hooks中使用\n```vue\n<template>\n  <button @click=\"increase\">\n    {{loading.value ? 'Waiting...' : `You clicked ${counter.value} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n  setup() {\n    const increase = () => {\n      testModel.increase();\n      testModel.getUser(3);\n    };\n\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    return {\n      increase,\n      counter,\n      loading,\n    };\n  }\n};\n</script>\n```\n\n# 在Redux Connect中使用\n```typescript jsx\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nclass App extends Component<Props> {\n  increase() {\n    testModel.increase();\n    testModel.getUser(3);\n  }\n\n  render() {\n    const { loading, counter } = this.props;\n    return (\n      <button onClick={this.increase}>\n          {loading ? 'Waiting...' : `You clicked ${counter} times`}\n      </button>\n    );\n  }\n}\n\nconst mapStateToProps = () => {\n  return {\n    counter: testModel.data.counter,\n    loading: testModel.getUser.loading,\n  };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# 简单的例子\n\n* [React Web](https://github.com/redux-model/redux-model-web-demo)\n\n# 文档\n\n请点击[这里查看文档](https://redux-model.github.io/redux-model)\n\n---------------------\n\n欢迎使用并随时给我建议\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@7.2.0-alpha.0","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-1ZU8aqWxYp/2eKqTFEgl9n9VvBNN8CBxe/FBzTKVPbCMqb1OSMvy/Lhd+edjC4E2n3Oq06NhIq8c5XR63cisJA==","shasum":"7a81d0c097419d01a57f3285011dcd7e75e19437","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-7.2.0-alpha.0.tgz","fileCount":22,"unpackedSize":31659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfJ3FJCRA9TVsSAnZWagAAqk4P/jwrva4w2M/RA3Qgv1RJ\nef6eavwIBOtWJdtgdKXReSy4IvWyDyBVPyiyK/y0EbjateORdKFEreyqPEHG\nTakJFgkYpXbyStOXxDLHhoZbl3YTOteGt02YATSdWno4PHfXiL3og72WQvAf\nJvs+kuBwEMuJhr7Vfz/ubj0UvFaoiJv0z+AphMyrAc3chNvHFxkY7GDSJaMb\ntNyj5k4FNaT3R2768Ju5sw0rnegUza0tIHdPkJms2GKTB5FFSxp9szVK0+iT\ndZ8DYChm/TChLHGl3wIMi6AZdpWU+5Tc48t8eFskOeTQs6/BGrF2vpJJgnvM\ndaEgmHBufBHI2T2mdfuAMUsOkRTGLCM9Ka33R1WmENgxuQZ9Q0nKXPdpZ3hu\nv8FeEm2hswkVooHgyjgIN5KNGGH68sZNAmcLfV6w6IDdzhqracnHiM+cXy0V\nZQ8Z6bT7v18elaXZozV3o9QCH04L3KRd45mRCDlpuz9DvbJHxcJPQava5KAa\nlDrmiITy03SgUaA+FTPudknQLEYLYtHBfcXfC/AFNM1uXWUpPcmzwy09JAAu\ncVGJ6C4L/1CmmYZAFx73ndDWSHxmObvcBzdC2oxd9/iKKXQcJqfhHWhTYjTg\nAwPFtrUf5/rOcAgLVZAjnTzOtxtvDUm6Gd+eS3nGtDbcBCn48N/BPrCBKOao\nK8Gg\r\n=7tbF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGa7ZTTQdtcvFxEJT28qKv3mpfDhLuhe3xwaLldbWZ0sAiB8XCTTGeTgN1XO7mciztVFnSl+LIkP6+vbf6rhNsnv2A=="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_7.2.0-alpha.0_1596420425022_0.3018124614519728"},"_hasShrinkwrap":false},"7.2.0":{"name":"@redux-model/taro","version":"7.2.0","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"@redux-model/core":"7.2.0","qs":"6.9.4","tslib":"2.0.0"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","react":"16.13.1","react-dom":"16.13.1","react-redux":"^7.2.0"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"2186dee4cf041788e4549be4d8fc3a14da6a8daf","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@7.2.0","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-55X9NzY452BBwiF9/S9GhDC3MxDbAK/TpS02qn4L5S5WaP+K+CvVA5uuqbNvvuWpICYn6fypjgLCQ902rODeaQ==","shasum":"9d9adb26348bfc37be813c2c026f37c5145c6a75","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-7.2.0.tgz","fileCount":22,"unpackedSize":32046,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKAOjCRA9TVsSAnZWagAAy34QAIWHIUJHfv7R49cktBZ8\nVztcyqrktTjMbJ/gt3OTNUB3ZDdb6f0JhY6Bx/B8O3Y+x0vGPKar5N1Htr74\nwoT+R43V2Uy+SBbrAt4/1l6Oud6veBLX3F4YcTCryXusnQubfVmo+F42pmEm\n8o8twBbOrPc9DiQ7obl/QtgcPYbrJnaQk4E6qYlwbPBeGjSvWL0uSoaT+9XX\nbWWeE3nRlLzqYaqPJIe+E+RffEowAYDi3oAnoGc1dGhjm+/AswFMYoNiwFZo\nXitr01nEGvaoU7BrGqgrnxDAvEfmwQA79+DZCgokwLqvy3tL+M7hfjAOSxGC\nwIfjbnW14t/mU3FZq5oQe0Nf5hxcfjo8rWQirr6eyD6lanUUr28q1iqpEZ7A\n/Jrxl/tWmaRaX5Pi6VClfEOXMcueoewPgMipnrPFuRwOyf0rNz1Q1xtOT933\n9pYvjlE/2cC7wOZQXlzEEJSm0QkZssX6OU3bzW5qc5RG9SAeAAgvqKm6VXG9\nqflyayvX46QXE+IZ+//db71F+LF7ZaiYsuiCn1zg7WeCMhHHnqQYzijdixIJ\nLIoIUZykEgmAbB73vISPjXTDYXl9CeL4bSTGClKhP1Jl9Ua3pxQDe3jPOHkp\nZl25lqpeeiRnDkFowcD3MItcy3MVvkN4vvRMVhI0HVl/vfoRcYi0KTowhXNz\ne+4L\r\n=NODd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAbqC7Y9I22j5Gi0jJvevMdMfuQ9bLMbqVu4/3ehtTnuAiEA7FCGekBqb+C0jePLOnmi5rZ3r4XEbldJ5WI99E70hM0="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_7.2.0_1596457891429_0.25802834834002786"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"7.2.1":{"name":"@redux-model/taro","version":"7.2.1","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"@redux-model/core":"7.2.1","qs":"6.9.4","tslib":"2.0.0"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","react":"16.13.1","react-dom":"16.13.1","react-redux":"^7.2.0"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"82481530922b2c3e74f1be2664b87115ee49de5d","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@7.2.1","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-js7Gcsr+qYX3WaPQFfTo4Oh3rt3O0mPUnvIhTfof8n+7tXRBfeMJBPAzyMXex+bXSf/MIfYZNyHa/HThPe2g2A==","shasum":"c687ca7b1db3ce80963d46c33080643987e6244f","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-7.2.1.tgz","fileCount":22,"unpackedSize":32369,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKhKrCRA9TVsSAnZWagAAv/wP/1rECnh7MToosDlVRjmK\n3sacSvR5HmV0fuyWepB+0F9TAsMdEb3R4h38pHvjDvnGR5NASGiMXbXlkAcD\nyUxWp14MxlQO/He7v/PRFqxCD1kcfzOM7zdN445kXiBUvm+SynMGpNIOZo/x\ns9ENKbi52iS6pITVpXOqX9hMeyPiUswxm6O9t5gJ3LvpdJD9bBjmkkTgVrPS\n21ECCObVgwSChNLAXm55oLIGjK8DmcbIaxBhuOFFUgtakm9l82UVWnaKMGqE\nwT1OyaEVqKumPY5No+TcoCqvdS31GTtMgs0ecqJUA0AseNfaie8e0Q+5KR6q\nAsQVDLAMAaGp2lhOgb2HyZPyQVRf8p+05TATynaIdfHET0FHD9SYHOKORqG1\nix9/dVzRCwZF01tWqgTysejym8Vtg34qMFjyRSrq4MF0MrNL6xqOFsVirBWP\nzAYtJGkO0g78B5X/9pmj0zv3w0oDMGJPB6rz8DNJfUAL8gd4LHqbOOlgBWAV\njjnq6IgW5+6FN3L+AW2dg0FXeqtQ6GZnmFq/wKKxDPo7fPTcGoSF8LSzoKki\nM/hadzjIHfaENiSllEDFkSnvCZTZ+QrtotFDaKAmJx4tOIYpDBohbVIRbHCT\nK1kBXJkaG+y7E2CWPt+0lfTyhkv5EPFtn0MhfrBVCNfjBFgDq/y/smu+5Nbm\ntdpP\r\n=Unpx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDjrYOytP8uxjq1jmf7wxsHfE4Ax+Vjvhaq7yao5P8AEwIgTTFSAFVnnhp5KTn/MsLUGXgOi2xPIuPIZCQLQ1gZyW4="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_7.2.1_1596592811196_0.8266649624249309"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"7.3.0":{"name":"@redux-model/taro","version":"7.3.0","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"@redux-model/core":"7.3.0","qs":"6.9.4","tslib":"2.0.0"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","react":"16.13.1","react-dom":"16.13.1","react-redux":"^7.2.0"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"2a3fce2db29cb7e48bc5c89f4559da07cf56e3d5","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@7.3.0","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-GQCgB2Em1tiyFr/Ze2zfANoO29JTMmWfqJfTa9Jnr6CwdWjyDHLuz0/85xBvek+q4+GPF7jwJrJhe7VHOlWBfw==","shasum":"f9d1dcc0e6e671d0837b188244ced3252ebda7b6","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-7.3.0.tgz","fileCount":22,"unpackedSize":32731,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKkQqCRA9TVsSAnZWagAAUGoP/1lMsbjqqmNXpKrurLuh\n87Bv3dd1QsWLHAdJkNIEkVXZM8PaSSuf+AI8BPPcV8y+ctgYqXiGcuCaLNS7\n3zhwNO2NPaI2oA4gHG4bpFN4nLdhscIhQp3UPN2dC6p78HiY2PuUu9ookPMz\nd7ZkYK6gfzC14PjhuXUfjcJWL2X/n9shF1tB+rkjjhA+Lg7mCv2ZOFWRTTE4\n17C6LcgABkUBhbOeCGY4DFTtceUoMUMR4pMBT3Wtxpj5rclG7lH/ksY5p5l7\n3VxnQOhMQLNXdGGHcX3F/RpGYKo4+rqZdh00C8bS824GabmsaVymxFYoIFvv\nkIxOOLF46Qvy6CAwNaSOVdiCHifkuibsCUfskQhUWhJBI/THPmztiMa9QClj\ngcnL9OauXr9NW2Zw9gWCi88hTiXEE9T4sZPMuutIo1/L3LNdidtB1DIdzU4r\n6RQDdYRfrsTF6yjBnIYsBpecObxwMC4AjSzDIsUOE5GxUOqEvW8HTPxoDRsi\nZ51RIT5iguP99Ps6pWlJXPilW83PHUiM20OJsyR9b39sWp7QwKSCdbfryyjU\nUbL7Rmn38DSdBlR2aK/eRn5RIWsVWV3/ZULz5Vedc8EhnLyuFpYB+6x791GB\nB3aaxoa6NzDtx1PNKgQNefRr9+pUjSA5tFLIoY4kStOEd7WKAuAroytm/ugF\nv5n/\r\n=5bKj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCnoSAWfvBmMIIJ7Ij7XvlSHbac83Y82edLGtr9dA6mIAIhAJt6YaWZcuZhkz31GD03AtyIPlwW/A5HKpL9ydLS59EV"}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_7.3.0_1596605482017_0.5356724548335163"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"7.3.1-alpha.0":{"name":"@redux-model/taro","version":"7.3.1-alpha.0","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"@redux-model/core":"7.3.1-alpha.0","qs":"6.9.4","tslib":"2.0.0"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","react":"16.13.1","react-dom":"16.13.1","react-redux":"^7.2.0"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"c6c9f1e6e0f6473df428823964f13683d0613ef9","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\n[English](./README-EN.md)\n\nRedux-Model是为了弥补原生Redux繁琐的开发流程，开发者重复劳动效率低下，模板文件导致代码量臃肿，以及因action和reducer文件分散造成代码追踪困难的问题而设计的。\n\n众多知名的状态管理框架，基本都是为JS用户设计的。离散的代码结构、严格的设计模式、不合时宜的细节封装，都意味着想完美融入TypeScript，就必须经常手动注入类型。幸运的是，Redux-Model专门为Typescript设计，强健的自动推导能力，允许类型一次注入，到处使用。\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# 特性\n\n* 深度封装，超高开发效率\n* 使用mvvm快速处理reducer\n* **无typescript不编程，拥有100%无死角的业务代码类型提示**\n* 内置http服务，请求action自带loading追踪、节流\n* React/Vue Hooks\n* 数据持久化\n\n\n# 安装\n\n### React 或 React-Native\n```bash\nnpm install @redux-model/react redux react-redux\n```\n\n### Vue v3\n```bash\nnpm install @redux-model/vue redux\n```\n\n### Taro v3\n```bash\nnpm install @redux-model/taro redux react-redux\n```\n\n### 其它\n* 对于Taro 3.0之前的版本，请安装 **@redux-model/taro@6.9.2**\n* 对于Vue 3.0之前的版本，请安装 **@redux-model/vue@6.9.2**\n\n# 定义模型\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n  increase = this.action((state) => {\n    state.counter += 1;\n  });\n\n  getUser = $api.action((id: number) => {\n    return this\n      .get<Response>(`/api/user/${id}`)\n      .onSuccess((state, action) => {\n        state.counter += 1;\n        state.users[id] = action.response;\n      });\n  });\n\n  protected initReducer(): Data {\n    return {\n      counter: 0,\n      users: {},\n    };\n  }\n}\n\nexport const testModel = new TestModel();\n```\n\n# 在React Hooks中使用\n```typescript jsx\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n  const counter = testModel.useData((data) => data.counter);\n  const loading = testModel.getUser.useLoading();\n\n  const increase = () => {\n    testModel.increase();\n    testModel.getUser(3);\n  };\n\n  return (\n    <button onClick={increase}>\n      {loading ? 'Waiting...' : `You clicked ${counter} times`}\n    </button>\n  );\n};\n\nexport default App;\n```\n\n# 在Vue Hooks中使用\n```vue\n<template>\n  <button @click=\"increase\">\n    {{loading.value ? 'Waiting...' : `You clicked ${counter.value} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n  setup() {\n    const increase = () => {\n      testModel.increase();\n      testModel.getUser(3);\n    };\n\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    return {\n      increase,\n      counter,\n      loading,\n    };\n  }\n};\n</script>\n```\n\n# 在Redux Connect中使用\n```typescript jsx\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nclass App extends Component<Props> {\n  increase() {\n    testModel.increase();\n    testModel.getUser(3);\n  }\n\n  render() {\n    const { loading, counter } = this.props;\n    return (\n      <button onClick={this.increase}>\n          {loading ? 'Waiting...' : `You clicked ${counter} times`}\n      </button>\n    );\n  }\n}\n\nconst mapStateToProps = () => {\n  return {\n    counter: testModel.data.counter,\n    loading: testModel.getUser.loading,\n  };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# 简单的例子\n\n* [React Web](https://github.com/redux-model/redux-model-web-demo)\n\n# 文档\n\n请点击[这里查看文档](https://redux-model.github.io/redux-model)\n\n---------------------\n\n欢迎使用并随时给我建议\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@7.3.1-alpha.0","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-QdiHCSCwbMQbtKqKo5UJTtzmOmlpKrF+JmxhmFiRJI3JHkyO2veSfwiz6IKF0ctVKkq5pPu+wg8FOrKHbpOrog==","shasum":"dcf0e3db62ef7435e1c43e7509536ae0cee1467e","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-7.3.1-alpha.0.tgz","fileCount":22,"unpackedSize":32732,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfMLnZCRA9TVsSAnZWagAAkFgP/iOzfb9J7yMKM10LqF0M\nN1CVoKbefCFZ90pQ938ch6zn8z2bGdsQj+lOjimQqWusqMFW0KwqQOIbdx2e\naeo92uLqcWefTUE8hhMHqYLKL31eEpCwipoTdSIG9UPZHDpVH1X1mKQC7bAY\nAZq1PzU0a9d2MT4QK3GcTCxyLq7hzMOgw7Ek+gls3GzrKPwkqQ7kmsaoPLEo\nIxZa8sw4qlZ56eiyZBwD1VU2r1O8vSyMo0rnmyqQCfMvK4tFYPAJJiehaI2W\nEipJWXl2KIQNkttM4xbO1pbQsug61lksr4CXjD1NrqCyJzHx6kDnK9xyMY7U\ndnBRe18mcfAcRQ0UvbglXxA9Y/y0dSjmq71rHmJD0yDYZdK7TPwettCZivrO\nIkfuJWX3ChlK1V/uesSIuVuRvP3NtsxoRn//Q0cJbCWC9JI3VFl32DwGM4Tt\nF0Rd6c7yu4kT4goNAH0v1Ogp8Prqz27Lq717lDyxaCYKUA6eg1w2gCz8XcgX\noY+GYepTOe/fSr9YRGFdFugEzggmnlL3NRmN6rOKLk13RxNynkH+XfDDo6Hh\nswMN6/gnmzgv+26P3ZQhRbeKoQNWR1jR8vM29P0aj/pWarQ2WWDHZMeDqqml\ndyOX96woEwYHjiau+gIIZ/7G5kMrpE797PvP9Dh31HyI6ttPnh5+HFyKrnnh\nysk9\r\n=W3Wq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH8ql0BCD9Js8dLvPCYGqIrdeYi4Fs78Jl1VsUfld8gaAiBxR8PE0VHXCJYTmnCjIfV/xT0VdLM7GEBAb/Ulired8Q=="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_7.3.1-alpha.0_1597028825390_0.5790266911707309"},"_hasShrinkwrap":false},"8.0.0-alpha.0":{"name":"@redux-model/taro","version":"8.0.0-alpha.0","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"@redux-model/core":"8.0.0-alpha.0","qs":"6.9.4","tslib":"2.0.0"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","react":"16.13.1","react-dom":"16.13.1","react-redux":"^7.2.0"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"06026d37d061fff5305bb71d822acbbf377ce294","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\n[English](./README-EN.md)\n\nRedux-Model是为了弥补原生Redux繁琐的开发流程，开发者重复劳动效率低下，模板文件导致代码量臃肿，以及因action和reducer文件分散造成代码追踪困难的问题而设计的。\n\n众多知名的状态管理框架，基本都是为JS用户设计的。离散的代码结构、严格的设计模式、不合时宜的细节封装，都意味着想完美融入TypeScript，就必须经常手动注入类型。幸运的是，Redux-Model专门为Typescript设计，强健的自动推导能力，允许类型一次注入，到处使用。\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# 特性\n\n* 深度封装，超高开发效率\n* 使用mvvm快速处理reducer\n* **无typescript不编程，拥有100%无死角的业务代码类型提示**\n* 内置http服务，请求action自带loading追踪、节流\n* React/Vue Hooks\n* 数据持久化\n\n\n# 安装\n\n### React 或 React-Native\n```bash\nnpm install @redux-model/react redux react-redux\n```\n\n### Vue v3\n```bash\nnpm install @redux-model/vue redux\n```\n\n### Taro v3\n```bash\nnpm install @redux-model/taro redux react-redux\n```\n\n### 其它\n* 对于Taro 3.0之前的版本，请安装 **@redux-model/taro@6.9.2**\n* 对于Vue 3.0之前的版本，请安装 **@redux-model/vue@6.9.2**\n\n# 定义模型\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n  increase = this.action((state) => {\n    state.counter += 1;\n  });\n\n  getUser = $api.action((id: number) => {\n    return this\n      .get<Response>(`/api/user/${id}`)\n      .onSuccess((state, action) => {\n        state.counter += 1;\n        state.users[id] = action.response;\n      });\n  });\n\n  protected initialState(): Data {\n    return {\n      counter: 0,\n      users: {},\n    };\n  }\n}\n\nexport const testModel = new TestModel();\n```\n\n# 在React Hooks中使用\n```typescript jsx\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n  const counter = testModel.useData((data) => data.counter);\n  const loading = testModel.getUser.useLoading();\n\n  const increase = () => {\n    testModel.increase();\n    testModel.getUser(3);\n  };\n\n  return (\n    <button onClick={increase}>\n      {loading ? 'Waiting...' : `You clicked ${counter} times`}\n    </button>\n  );\n};\n\nexport default App;\n```\n\n# 在Vue Hooks中使用\n```vue\n<template>\n  <button @click=\"increase\">\n    {{loading.value ? 'Waiting...' : `You clicked ${counter.value} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n  setup() {\n    const increase = () => {\n      testModel.increase();\n      testModel.getUser(3);\n    };\n\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    return {\n      increase,\n      counter,\n      loading,\n    };\n  }\n};\n</script>\n```\n\n# 在Redux Connect中使用\n```typescript jsx\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nclass App extends Component<Props> {\n  increase() {\n    testModel.increase();\n    testModel.getUser(3);\n  }\n\n  render() {\n    const { loading, counter } = this.props;\n    return (\n      <button onClick={this.increase}>\n          {loading ? 'Waiting...' : `You clicked ${counter} times`}\n      </button>\n    );\n  }\n}\n\nconst mapStateToProps = () => {\n  return {\n    counter: testModel.data.counter,\n    loading: testModel.getUser.loading,\n  };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# 简单的例子\n\n* [React Web](https://github.com/redux-model/redux-model-web-demo)\n\n# 文档\n\n请点击[这里查看文档](https://redux-model.github.io/redux-model)\n\n---------------------\n\n欢迎使用并随时给我建议\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@8.0.0-alpha.0","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-T5t6lqq278jqHD60bk3bt0pey5CA/lLUT8UOBb7mksvhFxLzkenu4LU6fhYh7iHkgkvdUp09eC3+0gWZ8CbqUQ==","shasum":"e046866ede0e74b4cce7fbb4cea7927742a2ece7","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-8.0.0-alpha.0.tgz","fileCount":22,"unpackedSize":33319,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfM47jCRA9TVsSAnZWagAAZz8P/29BxSIMbiAneBcfGYfx\nC0tp+75NExrVfHOahZeWMdJBRNdKGXv75sgihq88pVlyJO7Hlk37kXpOLWRJ\naueeCQQ4AMqT7687a1FUMm/XyNRhmqPNZaq0FAhw/kXKVAhi1+wByfNJxvq7\nz0FIaSimUAtDgDBgQWk4a3fqqgG1knKAagVr2SQUy+SVxUiK/JwGAD6BMvJb\naV5R3RDyOeE3617IqSpfEvC42QbPI0hc/ryc2vAxCX219HR+JqOncp8MFF1G\njkAKqEdT86E/5uk3aPg0OFUj4hdIPMG65z/Zbi39Gm8B9QaCeP71gKABtVzG\nd1ZSmpc4dPf32SOr/C04Wrn7UIg6mMOMd6YzqR8SIdtzEzT7kUwAeWrrR6/J\n7nM50hHqa+DDLi1Iudtx3785xeLcEQF2PMMyKhTNa+lvI7X1W8b192h1QwvV\nODDjRi644YCZoPBuFBbQd1p2+yuEVd58jxvMl/glIpqSgQkY12CInojmUuy1\n0IeW+ykBQmxJjHz2NRMU56lCnrG6YGrnGIr46NOrlsp0iKLnisKHPFxr+hwp\nMkRfttVUO5YPPJwJmmOMYjqhYYKP3XcWKZCSfcTHaViM52NuoZpN8l5Q3Me3\nqfm07/q+VaL1OUmWMVHu/1Zp40IyQZV7N/ey/p0m98744JJ0FaC+D3ANDFeE\nGRG8\r\n=5wb7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHoyqwtjHPLQ3pNjkctm6B6iR0AIMYmIESBNzti896LlAiEAs6sOnPsn21XH7nu2sWbNvkKlp1+yKLiZeV5nWQx7bdQ="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_8.0.0-alpha.0_1597214434943_0.17418994906368646"},"_hasShrinkwrap":false},"8.0.0":{"name":"@redux-model/taro","version":"8.0.0","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"@redux-model/core":"8.0.0","qs":"6.9.4","tslib":"2.0.0"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","react":"16.13.1","react-dom":"16.13.1","react-redux":"^7.2.0"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"5cd6cdc0359c13f9afb97758a490b3fcbed7a4c9","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@8.0.0","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-pV4OMeeohKASNAAS/QFFlY0TiJL0VoyybNQb3y3ae0f+8uvRO1ZH/MUd2fzL+Up8F+d5QE+Pbxh3fqMHkZRXSA==","shasum":"6800cddb61f2b52981d5d43867af82c9ea1d386f","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-8.0.0.tgz","fileCount":22,"unpackedSize":33303,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfM5DqCRA9TVsSAnZWagAAaP4P/0iGcE6XrUCGqt4sZCWL\n28p1mKTBUnhkuPFInBiJ3ESaMOEVTPaQXQiWThKilNQlP2MinbHsm41phdZl\ncaD3h3FW2wBroB/Kfq1hwc/WLz6k0eC5shf9Ymxn2KldWCTd8Z6LNGVEVT1j\nmKDcHF60AEPQJpFh2y04e8Ko6Hed4lVREb30KQkn6Qo/xJXvifX0LAQF2Wht\ndp6S4oc3nu1kJNH9sA46vOrifIC974IVW6OQoWszWIVXujszig2YOs0vx/SI\nVj0JDaS9A9l6qJ18BG//y3srG3JRH/j3JRNyaCrnc2zKldOB4XEfCjeDblSv\nXxa0zpYFk3Tfc5/TXqn4FL3UA1AGiutINiyIt76r8me2Rl8hDYkf1Kh9dQeZ\n+kLsi+G9aZVtMb5AQ4MvHf0MMBqKM8le1ti/DMPeD3jglzpziYZ1iBkqUCDR\nhUg1DeLral3H6BOKLFfwna/l0Rs/bxUk98RooJ1xg2kDL6INAjgOnZSJ8ej7\nkAkjOs/4vedKCO4YJ7kxuEdHGDo3vUdnod2JO00ve0PSKIOJMYbBx+HvHRn7\nNAgIZfIVnciJB+VY+BeYLzPPFIqiTWkP+d07lD3y9ngLhdZIqYjwtPZwM1lp\ng0DgeGy76YjKivAheAEgBYzbxkZsS7yJA2H/Eu68y4Ug/W4RINRrGmRgyK1u\nWbpS\r\n=jQMM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEbokhvBkNVB3ZkVkSTBXiza5JkZVVfm1mq8PIrTW+QMAiEA0cpJgBJWnoFOUuSViWd+VdeZrQZ5rtnCvPvgrIm09JE="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_8.0.0_1597214953839_0.40367307211282766"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"8.0.1-alpha.1":{"name":"@redux-model/taro","version":"8.0.1-alpha.1","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"@redux-model/core":"8.0.1-alpha.1","qs":"6.9.4","tslib":"2.0.0"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","react":"16.13.1","react-dom":"16.13.1","react-redux":"^7.2.0"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"63e11a241dd23d819996d405f775acde8f96bea9","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\n[English](./README-EN.md)\n\nRedux-Model是为了弥补原生Redux繁琐的开发流程，开发者重复劳动效率低下，模板文件导致代码量臃肿，以及因action和reducer文件分散造成代码追踪困难的问题而设计的。\n\n众多知名的状态管理框架，基本都是为JS用户设计的。离散的代码结构、严格的设计模式、不合时宜的细节封装，都意味着想完美融入TypeScript，就必须经常手动注入类型。幸运的是，Redux-Model专门为Typescript设计，强健的自动推导能力，允许类型一次注入，到处使用。\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# 特性\n\n* 深度封装，超高开发效率\n* 使用mvvm快速处理reducer\n* **无typescript不编程，拥有100%无死角的业务代码类型提示**\n* 内置http服务，请求action自带loading追踪、节流\n* React/Vue Hooks\n* 数据持久化\n\n\n# 安装\n\n### React 或 React-Native\n```bash\nnpm install @redux-model/react redux react-redux\n```\n\n### Vue v3\n```bash\nnpm install @redux-model/vue redux\n```\n\n### Taro v3\n```bash\nnpm install @redux-model/taro redux react-redux\n```\n\n### 其它\n* 对于Taro 3.0之前的版本，请安装 **@redux-model/taro@6.9.2**\n* 对于Vue 3.0之前的版本，请安装 **@redux-model/vue@6.9.2**\n\n# 定义模型\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n  increase = this.action((state) => {\n    state.counter += 1;\n  });\n\n  getUser = $api.action((id: number) => {\n    return this\n      .get<Response>(`/api/user/${id}`)\n      .onSuccess((state, action) => {\n        state.counter += 1;\n        state.users[id] = action.response;\n      });\n  });\n\n  protected initialState(): Data {\n    return {\n      counter: 0,\n      users: {},\n    };\n  }\n}\n\nexport const testModel = new TestModel();\n```\n\n# 在React Hooks中使用\n```typescript jsx\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n  const counter = testModel.useData((data) => data.counter);\n  const loading = testModel.getUser.useLoading();\n\n  const increase = () => {\n    testModel.increase();\n    testModel.getUser(3);\n  };\n\n  return (\n    <button onClick={increase}>\n      {loading ? 'Waiting...' : `You clicked ${counter} times`}\n    </button>\n  );\n};\n\nexport default App;\n```\n\n# 在Vue Hooks中使用\n```vue\n<template>\n  <button @click=\"increase\">\n    {{loading.value ? 'Waiting...' : `You clicked ${counter.value} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n  setup() {\n    const increase = () => {\n      testModel.increase();\n      testModel.getUser(3);\n    };\n\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    return {\n      increase,\n      counter,\n      loading,\n    };\n  }\n};\n</script>\n```\n\n# 在Redux Connect中使用\n```typescript jsx\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nclass App extends Component<Props> {\n  increase() {\n    testModel.increase();\n    testModel.getUser(3);\n  }\n\n  render() {\n    const { loading, counter } = this.props;\n    return (\n      <button onClick={this.increase}>\n          {loading ? 'Waiting...' : `You clicked ${counter} times`}\n      </button>\n    );\n  }\n}\n\nconst mapStateToProps = () => {\n  return {\n    counter: testModel.data.counter,\n    loading: testModel.getUser.loading,\n  };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# 简单的例子\n\n* [React Web](https://github.com/redux-model/redux-model-web-demo)\n\n# 文档\n\n请点击[这里查看文档](https://redux-model.github.io/redux-model)\n\n---------------------\n\n欢迎使用并随时给我建议\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@8.0.1-alpha.1","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-RUGz4K/46Y7mUdZEzi3nwYOGNpltsbxOA4hQKBfkHQvy2lNc+Ej9RznIEfBrJ3QBL5m1I3hT6kmdPe21KvC04A==","shasum":"cf26c4e8c25330cfcb447fde17e386e759f9d8a2","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-8.0.1-alpha.1.tgz","fileCount":22,"unpackedSize":33289,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOBVcCRA9TVsSAnZWagAAUHMP/2O5fthVsil2NLWxc+Hu\naEsfnFkD6bAj6XkT44eVfbZcOYr8ys14eqB8aivo6+XWjgVcV30VQiLujr5k\nwj1Lquu2U+6084oizxGidpKzY9iM5ZWLFYdNARB3SJh8J/evyfi5NR1k0iv2\nY6RxISvFpC5Q59xg7Cw6ln//xyuMxH6oBi3qtECgbag0nXZZ1fmyLPQtj9Uz\nPjtebPKZpfPirX3MuYJrA/KwPMFYZKDj0Mz9VdRHCorGokp8Vbm+mMlwuRgU\nA8G9xoG+uo6nDrKKTejB72csWT4TDUHzJSKK4YLuDJvKnDjnfYanWKNNbD84\nlhA/tnqvUqfpTJJL9mDuKwPW8x+jwdzJHmUxV30m0zGgV0snjyitiWGYmTyn\nyyH4U4z6shXdNkwUZde8WKR8V749sysqzGiwocsSvYE/koKHIthQT+GrL/a1\nfw97Zxnk71iIL4VOrs3D+9AbCyha10ZM/4CUrRdSe/GczMXHcO+O2he5/dww\nh5heQhznRmr5xRbP8KtP6SgG/aFIsVY8aqplDpRb/aSBbDpF3f7LC2JuvR3k\nvhAiEDqaqymSwAg8uknLNmX03S4sZaXF4cHiDDIJQ79ROcYz1f4pairXPb9u\n/vnU8CLkG7VnrpjLsFWzjixLh9O230a10dKOPOzLcg44PQNNUI3IZrKHDNHj\nD9Rj\r\n=miVe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD1bShyJMXrDnKrbisxsSdsGKR7DestwULK7GH5GFYyQQIhAN1brZcBrCQqgVJx8/F9G4+QREYgHKdYptw6Kp2OUmpv"}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_8.0.1-alpha.1_1597511003937_0.15003506372753117"},"_hasShrinkwrap":false},"8.0.1-alpha.2":{"name":"@redux-model/taro","version":"8.0.1-alpha.2","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"@redux-model/core":"8.0.1-alpha.2","qs":"6.9.4","tslib":"2.0.0"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","react":"16.13.1","react-dom":"16.13.1","react-redux":"^7.2.0"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"145803b3a1e6c7bb83a6fdf4ef23d5ae2f2c86fd","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\n[English](./README-EN.md)\n\nRedux-Model是为了弥补原生Redux繁琐的开发流程，开发者重复劳动效率低下，模板文件导致代码量臃肿，以及因action和reducer文件分散造成代码追踪困难的问题而设计的。\n\n众多知名的状态管理框架，基本都是为JS用户设计的。离散的代码结构、严格的设计模式、不合时宜的细节封装，都意味着想完美融入TypeScript，就必须经常手动注入类型。幸运的是，Redux-Model专门为Typescript设计，强健的自动推导能力，允许类型一次注入，到处使用。\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# 特性\n\n* 深度封装，超高开发效率\n* 使用mvvm快速处理reducer\n* **无typescript不编程，拥有100%无死角的业务代码类型提示**\n* 内置http服务，请求action自带loading追踪、节流\n* React/Vue Hooks\n* 数据持久化\n\n\n# 安装\n\n### React 或 React-Native\n```bash\nnpm install @redux-model/react redux react-redux\n```\n\n### Vue v3\n```bash\nnpm install @redux-model/vue redux\n```\n\n### Taro v3\n```bash\nnpm install @redux-model/taro redux react-redux\n```\n\n### 其它\n* 对于Taro 3.0之前的版本，请安装 **@redux-model/taro@6.9.2**\n* 对于Vue 3.0之前的版本，请安装 **@redux-model/vue@6.9.2**\n\n# 定义模型\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n  increase = this.action((state) => {\n    state.counter += 1;\n  });\n\n  getUser = $api.action((id: number) => {\n    return this\n      .get<Response>(`/api/user/${id}`)\n      .onSuccess((state, action) => {\n        state.counter += 1;\n        state.users[id] = action.response;\n      });\n  });\n\n  protected initialState(): Data {\n    return {\n      counter: 0,\n      users: {},\n    };\n  }\n}\n\nexport const testModel = new TestModel();\n```\n\n# 在React Hooks中使用\n```typescript jsx\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n  const counter = testModel.useData((data) => data.counter);\n  const loading = testModel.getUser.useLoading();\n\n  const increase = () => {\n    testModel.increase();\n    testModel.getUser(3);\n  };\n\n  return (\n    <button onClick={increase}>\n      {loading ? 'Waiting...' : `You clicked ${counter} times`}\n    </button>\n  );\n};\n\nexport default App;\n```\n\n# 在Vue Hooks中使用\n```vue\n<template>\n  <button @click=\"increase\">\n    {{loading.value ? 'Waiting...' : `You clicked ${counter.value} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n  setup() {\n    const increase = () => {\n      testModel.increase();\n      testModel.getUser(3);\n    };\n\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    return {\n      increase,\n      counter,\n      loading,\n    };\n  }\n};\n</script>\n```\n\n# 在Redux Connect中使用\n```typescript jsx\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nclass App extends Component<Props> {\n  increase() {\n    testModel.increase();\n    testModel.getUser(3);\n  }\n\n  render() {\n    const { loading, counter } = this.props;\n    return (\n      <button onClick={this.increase}>\n          {loading ? 'Waiting...' : `You clicked ${counter} times`}\n      </button>\n    );\n  }\n}\n\nconst mapStateToProps = () => {\n  return {\n    counter: testModel.data.counter,\n    loading: testModel.getUser.loading,\n  };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# 简单的例子\n\n* [React Web](https://github.com/redux-model/redux-model-web-demo)\n\n# 文档\n\n请点击[这里查看文档](https://redux-model.github.io/redux-model)\n\n---------------------\n\n欢迎使用并随时给我建议\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@8.0.1-alpha.2","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-7S+cClPquTqkfoAV3FdtbVZOsFgpfkX2Yq1c1JdfZnzg+eVoIKsZNH3Oq/LXnq5A+/yM5tlE8KmWFfT5/Lqgsw==","shasum":"9e37ed5871a7713e0947cf53e2bda94d1ec2aa0b","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-8.0.1-alpha.2.tgz","fileCount":22,"unpackedSize":33319,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOKh8CRA9TVsSAnZWagAAJgkP/A5I7M5h9TAu1N7II9AC\nFvjoljcENOu9ClALVmjWCWl43mFyyrGv6oHFH08OpCP3k3R5hJ7e8Q1bCNHV\ntw8UeUtFguTUoRZE2823ZsfP26bJ0IKigdw8yW75aB0sfkHjttUjSLwdnFF/\nk60pyww+3j+pp1HrdwjTys81BMma07ceFLjCGdv5gah1DOVuRVSH/hmXlC/d\nk/O3QmjcrQdz58ZyK0GJbgT9RUsnDC03Mz7rkAJOWIqKQSHos/h0dxCso3LW\nUNuLoa8ISyvaYe/U2GXl+CSzKwjLMXfpr8+nVX8fz7lXaBTmpefbG9ubTlL5\n/rksUGyJxJTE4z/rFAgYY+yXGBWDnNK8t6GKKc9s0wBxlnqwdED1IaMFQbzm\nsCQOHxF0P3o98Oba2Df21ipD/2iIUzRBYReeUIWHDXLUh34boaLCXeSKyfts\nsipiKMug5fon/v9oe2y/bf3sPvYr2Y6HxOvpW8W1KxEKZKGk193BELTjp9Co\nZsAMyYWspvhOodeHekYefqSuKrxu2g4xU5KUL2zpp1xYs2j+3biYqmG6h8+G\nKoYM8wVCbi122d1slcUWTANqL9irv2/POSMgi8pEUIyL+QmtVsJmN8pcQDJ0\n3rh7R/++DdoqHt8gErMSQFNn08D7C6xd9w6nNRIziG2IwjaTyLQKKl5kPvDS\n3eLI\r\n=Sbkg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAXPh2Sv5YCKHle3Jc18D+3ZObGpEs7bkHcNYVs0g1XVAiBTfRSbQXaWhaqrDscsd0t6NOlrFVN8+DLHgvuvxY8fBw=="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_8.0.1-alpha.2_1597548667563_0.8089397920497536"},"_hasShrinkwrap":false},"8.0.1-alpha.3":{"name":"@redux-model/taro","version":"8.0.1-alpha.3","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"@redux-model/core":"8.0.1-alpha.3","qs":"6.9.4","tslib":"2.0.0"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","react":"16.13.1","react-dom":"16.13.1","react-redux":"^7.2.0"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"3b6c036be8449bd2ac43edff2ecea39b488da247","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\n[English](./README-EN.md)\n\nRedux-Model是为了弥补原生Redux繁琐的开发流程，开发者重复劳动效率低下，模板文件导致代码量臃肿，以及因action和reducer文件分散造成代码追踪困难的问题而设计的。\n\n众多知名的状态管理框架，基本都是为JS用户设计的。离散的代码结构、严格的设计模式、不合时宜的细节封装，都意味着想完美融入TypeScript，就必须经常手动注入类型。幸运的是，Redux-Model专门为Typescript设计，强健的自动推导能力，允许类型一次注入，到处使用。\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# 特性\n\n* 深度封装，超高开发效率\n* 使用mvvm快速处理reducer\n* **无typescript不编程，拥有100%无死角的业务代码类型提示**\n* 内置http服务，请求action自带loading追踪、节流\n* React/Vue Hooks\n* 数据持久化\n\n\n# 安装\n\n### React 或 React-Native\n```bash\nnpm install @redux-model/react redux react-redux\n```\n\n### Vue v3\n```bash\nnpm install @redux-model/vue redux\n```\n\n### Taro v3\n```bash\nnpm install @redux-model/taro redux react-redux\n```\n\n### 其它\n* 对于Taro 3.0之前的版本，请安装 **@redux-model/taro@6.9.2**\n* 对于Vue 3.0之前的版本，请安装 **@redux-model/vue@6.9.2**\n\n# 定义模型\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n  increase = this.action((state) => {\n    state.counter += 1;\n  });\n\n  getUser = $api.action((id: number) => {\n    return this\n      .get<Response>(`/api/user/${id}`)\n      .onSuccess((state, action) => {\n        state.counter += 1;\n        state.users[id] = action.response;\n      });\n  });\n\n  protected initialState(): Data {\n    return {\n      counter: 0,\n      users: {},\n    };\n  }\n}\n\nexport const testModel = new TestModel();\n```\n\n# 在React Hooks中使用\n```typescript jsx\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n  const counter = testModel.useData((data) => data.counter);\n  const loading = testModel.getUser.useLoading();\n\n  const increase = () => {\n    testModel.increase();\n    testModel.getUser(3);\n  };\n\n  return (\n    <button onClick={increase}>\n      {loading ? 'Waiting...' : `You clicked ${counter} times`}\n    </button>\n  );\n};\n\nexport default App;\n```\n\n# 在Vue Hooks中使用\n```vue\n<template>\n  <button @click=\"increase\">\n    {{loading.value ? 'Waiting...' : `You clicked ${counter.value} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n  setup() {\n    const increase = () => {\n      testModel.increase();\n      testModel.getUser(3);\n    };\n\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    return {\n      increase,\n      counter,\n      loading,\n    };\n  }\n};\n</script>\n```\n\n# 在Redux Connect中使用\n```typescript jsx\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nclass App extends Component<Props> {\n  increase() {\n    testModel.increase();\n    testModel.getUser(3);\n  }\n\n  render() {\n    const { loading, counter } = this.props;\n    return (\n      <button onClick={this.increase}>\n          {loading ? 'Waiting...' : `You clicked ${counter} times`}\n      </button>\n    );\n  }\n}\n\nconst mapStateToProps = () => {\n  return {\n    counter: testModel.data.counter,\n    loading: testModel.getUser.loading,\n  };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# 简单的例子\n\n* [React Web](https://github.com/redux-model/redux-model-web-demo)\n\n# 文档\n\n请点击[这里查看文档](https://redux-model.github.io/redux-model)\n\n---------------------\n\n欢迎使用并随时给我建议\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@8.0.1-alpha.3","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-gbNw59bPV1/Y0486dxRLHWgZeLXzMMPF3JiiDUxJyp5IT5IczXaFYJlbGboZS2oPilgPoey1zktzz7TC+HpoNA==","shasum":"a2caaa2eaa5ca954be5227dde95218f60ae1bfd9","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-8.0.1-alpha.3.tgz","fileCount":22,"unpackedSize":33319,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOMGDCRA9TVsSAnZWagAAxs0P/R587d3rdEn5Edmwlom8\nhfsf/5TzP5Wb5C5kzuFHr5bGMqGm8+7B2byFm9m+VT9BmQ4DQa2kiLmrzsys\nNEQhsfUwb7+q95VwKP4WYEpWIhWvXP8CsBhixe1t7K7Jy1qQjTk3CZFHlgAz\nigoOVw1s7TREoj+PNfVb7+MJBVLvL2UuNhVkdbZyR2BD+bYgcNkPI+FXtrw/\nvStSgFSq7LZxQGwqBrAj82L0MQ6wnCu/sQRwQfUBvQ56Rpdi+Ipn3drC14pa\nAyNofvIuXgo7AQx7AarKINIV1zEPliMfkw9cOhiIvEyDFfhktCSNK/x/foy7\nY2gteMt8HwQdHZV7Xi/KoOePY0KP8hEo7F+dvnTzEfphzt4Iy3pmCqsi+TbW\nOAbO7jCTiK7eSLirfPYJcEt+Z4BpseBRnSpGcN6lueWnuD0/ZFIf22alGR/C\nK23/oPKda3XLX88taY2/pJV3A49Rj/AuGK/UFGMix8+mN/AjtIZU2f+rZYYH\nrv705lr5UTYBvs50p3ByMkHtt35KLeFIQwtZox7o5xus9QlNKi4l4dCKElnW\n9IYbtZ69lhOCfKiz0FSKHbgGF1nNqKOTS/acNW/KSXtjgHmXcZ0y2PNiU0aF\nMNVFwFyRKNNkO76evETJ1/f16xhu4dKNaJBqaED4VBfVRvRynA1puE5Yay2R\ns2Xd\r\n=sSAk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDkyn5rcU4SevWZoe7QM4t0wNaaQ3jYKGHLDk3xXYuMMQIhAKCjmfDzut/rzzYWa3utkT2/9t8kb77NdUTf8NmsUxhA"}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_8.0.1-alpha.3_1597555074978_0.2532806129663179"},"_hasShrinkwrap":false},"8.0.1-alpha.4":{"name":"@redux-model/taro","version":"8.0.1-alpha.4","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"@redux-model/core":"8.0.1-alpha.4","qs":"6.9.4","tslib":"2.0.0"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","react":"16.13.1","react-dom":"16.13.1","react-redux":"^7.2.0"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"acb90bfd9766e7f1ef68766d3b9bbc51a8c7f46d","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\n[English](./README-EN.md)\n\nRedux-Model是为了弥补原生Redux繁琐的开发流程，开发者重复劳动效率低下，模板文件导致代码量臃肿，以及因action和reducer文件分散造成代码追踪困难的问题而设计的。\n\n众多知名的状态管理框架，基本都是为JS用户设计的。离散的代码结构、严格的设计模式、不合时宜的细节封装，都意味着想完美融入TypeScript，就必须经常手动注入类型。幸运的是，Redux-Model专门为Typescript设计，强健的自动推导能力，允许类型一次注入，到处使用。\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# 特性\n\n* 深度封装，超高开发效率\n* 使用mvvm快速处理reducer\n* **无typescript不编程，拥有100%无死角的业务代码类型提示**\n* 内置http服务，请求action自带loading追踪、节流\n* React/Vue Hooks\n* 数据持久化\n\n\n# 安装\n\n### React 或 React-Native\n```bash\nnpm install @redux-model/react redux react-redux\n```\n\n### Vue v3\n```bash\nnpm install @redux-model/vue redux\n```\n\n### Taro v3\n```bash\nnpm install @redux-model/taro redux react-redux\n```\n\n### 其它\n* 对于Taro 3.0之前的版本，请安装 **@redux-model/taro@6.9.2**\n* 对于Vue 3.0之前的版本，请安装 **@redux-model/vue@6.9.2**\n\n# 定义模型\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n  increase = this.action((state) => {\n    state.counter += 1;\n  });\n\n  getUser = $api.action((id: number) => {\n    return this\n      .get<Response>(`/api/user/${id}`)\n      .onSuccess((state, action) => {\n        state.counter += 1;\n        state.users[id] = action.response;\n      });\n  });\n\n  protected initialState(): Data {\n    return {\n      counter: 0,\n      users: {},\n    };\n  }\n}\n\nexport const testModel = new TestModel();\n```\n\n# 在React Hooks中使用\n```typescript jsx\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n  const counter = testModel.useData((data) => data.counter);\n  const loading = testModel.getUser.useLoading();\n\n  const increase = () => {\n    testModel.increase();\n    testModel.getUser(3);\n  };\n\n  return (\n    <button onClick={increase}>\n      {loading ? 'Waiting...' : `You clicked ${counter} times`}\n    </button>\n  );\n};\n\nexport default App;\n```\n\n# 在Vue Hooks中使用\n```vue\n<template>\n  <button @click=\"increase\">\n    {{loading.value ? 'Waiting...' : `You clicked ${counter.value} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n  setup() {\n    const increase = () => {\n      testModel.increase();\n      testModel.getUser(3);\n    };\n\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    return {\n      increase,\n      counter,\n      loading,\n    };\n  }\n};\n</script>\n```\n\n# 在Redux Connect中使用\n```typescript jsx\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nclass App extends Component<Props> {\n  increase() {\n    testModel.increase();\n    testModel.getUser(3);\n  }\n\n  render() {\n    const { loading, counter } = this.props;\n    return (\n      <button onClick={this.increase}>\n          {loading ? 'Waiting...' : `You clicked ${counter} times`}\n      </button>\n    );\n  }\n}\n\nconst mapStateToProps = () => {\n  return {\n    counter: testModel.data.counter,\n    loading: testModel.getUser.loading,\n  };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# 简单的例子\n\n* [React Web](https://github.com/redux-model/redux-model-web-demo)\n\n# 文档\n\n请点击[这里查看文档](https://redux-model.github.io/redux-model)\n\n---------------------\n\n欢迎使用并随时给我建议\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@8.0.1-alpha.4","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-w3afp3VldJiZMsedpHSj9dWNZFRh4KrV2jXeQtMd8IubLjaAf2BFC6/JTF5nA6Ag9fDA1kvvn+ypQqO+Q40fwA==","shasum":"f6060e2c74438ce4742e8ee91aef997a35111a61","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-8.0.1-alpha.4.tgz","fileCount":22,"unpackedSize":33319,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOM2yCRA9TVsSAnZWagAA010QAJeNstLj/xnOe/GY8JzH\nyeY4YXP8CJI66aspwNzFHtA2Epz5WzL9gD+14nJz9QoC0bES3xcsHngssNZ0\ndGtVtfSq1LOWPQbNkCuYd6TrXODeOmWYXl6TY/2cCJ2k6SsUXw/NZKLF57Dj\nHRe3MEH9qE2I6nuEw7xCDFv/C2/GOMOVQNlw+AJewZj2gEb+FR4G2j/SqKFP\naMrAvxMkI2WofVDC1Rgr12lL+dAp9MfFZiBFfzA65I+ZsA+NE4X1MDQDXRza\nzk5sWompgk5SFPOHSjdYo5ozb95QP3suNSJ2ul+YR2Ih1EOqHl+Hryrp8y4B\nRnSibVn1cBI/adekZupurYQO3vogsJAint23rv1w23zQQHTtcjF7ID/pbf69\naTKbCYokwB+O2wLFp2/pnIkkf/OYsCu4uoEP3DNVcmcAHj7pbSRS/jd0ols5\nHeCmRyckDinSzvvjtqOcbg1MDi9xaCMJJiHFjbyJ4x1AFAOLGKqNCq2gkh0U\nBFLveSC5cB6jt1KpUgJlflc5054a/JSuPh1DhpMyosalCiGpPZTuNzTKDmIV\nKWEK/blObz3lS9wbwT9BvgEP6gIg2jQLPQuFHc4CvzX3q4dj7NoRTCRXwYqm\nrVd/F6a1hXCJRA5l0HTVqcjy3yHgK5gWC8jDPqZE9TQKEtpAkugh01jLxWPb\nlTU8\r\n=IcqL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDfOU5yJFGj3hg4TyK0RfIVXS7/xr9pKiaxzVqEEQDkGAiA4KrOo+H7R7f5cCzfiLae9O+qtENFvZYyy31QQua1m8Q=="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_8.0.1-alpha.4_1597558194136_0.4940464712384258"},"_hasShrinkwrap":false},"8.0.1":{"name":"@redux-model/taro","version":"8.0.1","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"@redux-model/core":"8.0.1","qs":"6.9.4","tslib":"2.0.1"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","react":"16.13.1","react-dom":"16.13.1","react-redux":"^7.2.0"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"9adf76d65601db511572df06cfd01a68cf610750","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@8.0.1","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-euuiWLAuS7jRTnLHdO0o8PPIXkNdpbG62S20L6n/EMxwKoSteeqEIA9W/aZuH7t4qK2QpEPsJjDXGxhAvXcC+Q==","shasum":"449f8b5d9de2c66d954d93c499c18811f9b8101b","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-8.0.1.tgz","fileCount":22,"unpackedSize":33504,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOPclCRA9TVsSAnZWagAAHfsP/1hiQbn5DR2KMpvXn75s\noY2rX+C8Eez8TwTRFR91ipgxrKVxn+kI4d1Q2mXPdbKiLg6FlxgqWP4CBc6Z\nN3fF2KQ1RwHaDs84rsKElHjcBq4c6rb/5Ow5MBXS11vJp5bXJ/vpS+98/Wnq\nZa8nM57zh75s7F4pQxKeu7wd1ENwk9BkIX70dIAkAnvvWdfD/trLoBRh2Enr\nU+regjyIpkqkC7qHvDC0Tego63TobT71tw5kdoCLmaL251eIIdoGf9USY0Vq\n5O/D2ZgSTNjhQCg2mvmsgUWAylELyuncdCRYTv0n3SEu7OIp0IqBJIbxWEaY\nMZrciKLXodOlA6HhV7wLNQuSg1VolZUlb9B5fWl6aRSs/28ClvhDdcuYHVCz\nAVqiZq7Nz5CLoiZD9rv4Lk9Uh6jxGHO7WOKSNGQMc6EpDzYrvNjgSMNUy1UK\nalYMW0liJxp6TXN1oqrSrECxUFzqE6F25E5ckdg/9tBrrlwqpLM0Jm9f4nH7\n2WWwx7viZR9+SSU56GuJbISPj2Glm5eSWyopnS7p+8S7gWj0F2gzUDmJx71d\nsoP309ugM/YaMpJN6T1KRl6yAxDXuSoXYK6uAC1gdb0kgyVliLmDWJHg8g3L\nMAFWp72DIBu4swPR+VkBC1W+uOpKWGp7FqzC3w80vNhjwdBIGGqXkexHAK6Y\nHABv\r\n=YYP5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGSNqoJQNcFSP3c8vHm3Vwhw0dDhz91/aI4hzhKJzoThAiBY4Zr75LNoOA/0iLdAahDZMU2OwoqbtPrFmKR3nm1iTw=="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_8.0.1_1597568805251_0.26273363929248505"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"8.0.2":{"name":"@redux-model/taro","version":"8.0.2","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"@redux-model/core":"8.0.2","qs":"6.9.4","tslib":"2.0.1"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","react":"16.13.1","react-dom":"16.13.1","react-redux":"^7.2.0"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"91293ca98a4cd8cbe436410b62e7a752b42da4fb","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@8.0.2","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-GdwD/dlRY69gznW7wNSDqhUpU5KesrtA1HvZ4TTL6fu226Wf5Bxh78KPnnfZazC6iET72WutefHWJ8+1Iw/O7Q==","shasum":"6ae5265d4918d236f28d9d22d217b9d39191cf19","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-8.0.2.tgz","fileCount":22,"unpackedSize":34072,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfSv8RCRA9TVsSAnZWagAAC7MQAIgu+K98MPVlY9DagNTk\nKQ4ohMorUglmj4FcVfhBISMbaQGkywa22nhZLney5Jg9lu42WWy/yaxJrBa6\npCev2v7LecvUD3/Zu2DWkWsS0E4ay1jE+tY0GqY3w72u7KaDlS9hDXHxgz8Z\nXXQQzvRsZpMUro7fUi/4jsxFugl+RSNBNBlYPHv2RWUxqcdvwT5uY/fhSBoq\nGx5rovD1BGrPrZugXZxhFW6IDvHmI9PMqw4TBQLq+YdxUsvsBIB/RlwEDidh\nhgsnAkj1KNWU7EyPnqkzprEVOwvvUtMOWovQBEUbaEe1Z40gH8kKC+Z7Xe0Y\ncezrnJQXAaopasEFGLdMAuMhV3GlynMVi0arJ7ft1OCYQxw1Kx0KxD+Q1sYl\nlxolyuDd45HHHmkGXfdaRwb2pOAg8pogWFsDhLBLCLUQvg88xTN+9DCVn4Eu\nF/LMTUvlaojWvbiJKtmBdwkDyn0kIBx/kLNBeXcLz3qtgQtl0rdokMxRVMs7\nO5TRDQeIgVLmNcI5u9wJpKEkbFA31z2Wv0uYFOsMpj7+iiRSWkFlwVu85CRo\nKdEqxY4OvOlCGUO2y8BwHF+6S2J/Cut3ZEuR7XhkDppX7+5lfigA4sueAh+d\nq4gKpMIIVf3o7EAD0jwTS6sGGztuj1QCOL2qLfxiBY+ra0OfVGZu5+nnV/h7\nfAEm\r\n=eKx6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF4eY0oYJXimL3LHFTBkRwWE2A3WTrx+5oCbG5gzDq4dAiEAwv3HS1qL1F8/VQ25xfnt1PZFIXQIjfE2V5MYIsjQVDs="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_8.0.2_1598750480652_0.7155656913193833"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"8.1.0":{"name":"@redux-model/taro","version":"8.1.0","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"@redux-model/core":"8.1.0","qs":"6.9.4","tslib":"2.0.1"},"devDependencies":{"@tarojs/taro":"^3.0.2","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","@types/vue":"^2.0.0","react":"16.13.1","react-dom":"16.13.1","react-redux":"^7.2.0"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"fc3ee2197148517e2a85318f570f3a2d67c0784d","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@8.1.0","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-2LEKzFEIK/prBls7RTla0onqZls3v7+bHu0BqnKR8mqP+2r0k5pzGE1dG2YNflP/ATR7IDW3tTPdyrl42QVOJg==","shasum":"58c0ae057b12cf4b705bbf8833ef54b24565e907","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-8.1.0.tgz","fileCount":22,"unpackedSize":34445,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfSyqkCRA9TVsSAnZWagAAs6cP/jZzh8zsvW3vOGjKZqHQ\nevFdGcN/wc6vpM6wtDp68fFFvyWHMcz3Omp5WsxX1A+E05BLuwNuwHsS1+92\nlgDOhiLE0igAHlKipqs6AgCSGA96i3i0egTYvnpJLTwa2e1V2sbtByscPhU3\nCJLkpqW+6xH2qp6ZcIY2NrOHmTwPYR4cWmLBaHZYkfN3BwydGx0S5neOD4w0\nSKgD7y0wdkLBy6mkH4pnkwdm6FtK3zrw93n0ZpR0eveXoRJEn8cXSPxGDIDC\nih+bdRf+la875WYDxvPgt2bZUymui6fSxkd/iQcipcrhzmGeHVEGEkLUfXXJ\nCXRGPb9A3bdoCqyPwiAvWxC+s0yVnuPLNVoR7BKLO9G2YdD2k2ktsz6K9xVp\nTYPVOenFuXfLQGF1988PmStmjTgq4xBZMMA/nSw2vYBtexO/uNw878p2m2He\n82RYO3DfantA/jI9bABJIbVb6eZLwYUuO+M6KJzq9n0pXTIK+Xd4Z+6z+LpG\nDPkgCYq8NCvPxMJnCfgFPRAFxcSEeAG6TFi9tYvkDDu3t9raNnpgZ9lGz2zG\nM9/ni/ZKcbAlNsEPFZohShp1RFRNSwMJtnjbkvKWPQZXKO98LEka8SjxA8Dk\n6SBRap/TCSiZ2N8G1XONR7z8WcZMAD6jIzG90IK9VM1uSFsvk1T7ATD+S3d6\ngmZD\r\n=s0Rj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH0Cb6fia9d9Wk5dNK8XiS81Dz1PNepJMtQ9GFFNUWIrAiEAnDsvE57WBcUQqRx0eYjOEQGDz3ZnhYjz+qq0frIA0N0="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_8.1.0_1598761636352_0.565691238988467"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.9.3":{"name":"@redux-model/taro","version":"6.9.3","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*"},"dependencies":{"immer":"^5.3.6","clone":"^2.1.2","object-assign":"^4.1.1","qs":"^6.9.1","redux":"^4.0.5","tslib":"^1.11.1"},"readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\nRedux Model is created to enhance original redux framework, which has complex development flow and lots of template fragments.\n\n![License](https://img.shields.io/github/license/redux-model/redux-model?color=blue)\n![Travis (.com)](https://img.shields.io/travis/com/redux-model/redux-model)\n![Coveralls github](https://img.shields.io/coveralls/github/redux-model/redux-model)\n\n[![](https://img.shields.io/npm/dt/@redux-model/web.svg?label=@redux-model/web)](https://www.npmjs.com/package/@redux-model/web)\n[![](https://img.shields.io/npm/dt/@redux-model/react-native.svg?label=@redux-model/react-native)](https://www.npmjs.com/package/@redux-model/react-native)\n[![](https://img.shields.io/npm/dt/@redux-model/taro.svg?label=@redux-model/taro)](https://www.npmjs.com/package/@redux-model/taro)\n[![](https://img.shields.io/npm/dt/@redux-model/vue.svg?label=@redux-model/vue)](https://www.npmjs.com/package/@redux-model/vue)\n\n\n# Features\n\n* Less code and higher efficiency\n* Modify reducer by MVVM\n* Absolutely 100% static type checking with typescript\n* Trace loading status for each request action\n* Support react hooks\n\n# Installation\n\n#### Web\n```bash\nnpm install @redux-model/web react-redux\n```\n\n#### React-Native\n\n```bash\nnpm install @redux-model/react-native react-redux\n```\n\n#### Vue\n\n```bash\nnpm install @redux-model/vue\n```\n\n\n#### Taro\n\n```bash\nnpm install @redux-model/taro @tarojs/redux\n```\n\n# Define Model\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n    increase = this.action((state) => {\n        state.counter += 1;\n    });\n\n    getUser = $api.action((id: number) => {\n        return this\n            .get<Response>(`/api/user/${id}`)\n            .onSuccess((state, action) => {\n                state.counter += 1;\n                state.users[id] = action.response;\n            });\n    });\n\n    protected initReducer(): Data {\n        return {\n            counter: 0,\n            users: {},\n        };\n    }\n}\n\nexport const testModel = new TestModel();\n```\n\n# With React Hooks\n```typescript jsx\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    const increase = () => {\n        testModel.increase();\n        testModel.getUser(3);\n    };\n\n    return (\n        <button onClick={increase}>\n            {loading ? 'Waiting...' : `You clicked ${counter} times`}\n        </button>\n    );\n};\n\nexport default App;\n```\n\n# With Redux connect\n```typescript jsx\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nclass App extends Component<Props> {\n    increase() {\n        testModel.increase();\n        testModel.getUser(3);\n    }\n\n    render() {\n        const { loading, counter } = this.props;\n        return (\n            <button onClick={this.increase}>\n                {loading ? 'Waiting...' : `You clicked ${counter} times`}\n            </button>\n        );\n    }\n}\n\nconst mapStateToProps = () => {\n    return {\n        counter: testModel.data.counter,\n        loading: testModel.getUser.loading,\n    };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# With Vue\n```vue\n<template>\n  <button @click=\"increase\">\n    {{loading ? 'Waiting...' : `You clicked ${counter} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n  name: 'HelloWorld',\n  methods: {\n    increase() {\n      testModel.increase();\n      testModel.getUser(3);\n    },\n  },\n  computed: {\n    counter() {\n      return testModel.data.counter;\n    },\n    loading() {\n        return testModel.getUser.loading;\n    },\n  },\n};\n</script>\n```\n\n# Demos\n\n* [React Web](https://github.com/redux-model/redux-model-web-demo)\n\n# Documents\n\nHere is the [document](https://redux-model.github.io/redux-model)\n\n---------------------\n\nFeel free to use it and welcome to send PR to me.\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@6.9.3","_nodeVersion":"12.17.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-zJnFLTusePD76JYGrWLTBnEn9KNK2Jj2jeC56kaq/lC+N+9Rov74FMOKb/H7gTSyS8kwQ5cGTXfTHSJKONx/Aw==","shasum":"3a4a8f7866246b0dbbfd5d416d2fda88ec722a8e","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.9.3.tgz","fileCount":66,"unpackedSize":93337,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfUacQCRA9TVsSAnZWagAATGIP/3OJZGyoC/Xo5rUnKx95\nj3uG0DXYS1HvwYfWdRZW3e+3cGZVwr34IeNctidDwiLvYlrgRk/uGkaZ4rqv\nyJMsPy6OqYsU1MvAGLKzzzJDrNB9XPQ65tJb5WmvARUuZpynqV6sXg7K6IlV\n7COcGZvjIb0erhCMQ6fxxlwkGYJSXug782Wo8C7lA2y34RMVJJwu6jCu0D/v\n+n+izijA0ag72jFryZW2LU8ly9Ktiu96U5zzVUgSgT2PJ1/kNFkGvIqS3g2Z\nR8CRXJurGUbJrSOD6SIoTEhNg41SGHJYE+VnKucklC3W4LjmoXzBV/X7tNaM\ngUh+IdojBuadpNl6DXNB/yt6/1FK3kAlffk1Do3xZt2vtv3rpzBtp3ht09D1\nq6zjGC+vOmSzJSOkeecpVyre8CzqRLfN3UkR2auppH9o44Ng4h5uCp5rCN7P\njka77KsLucC/BG93SJX7hFcYu24poJ7NLz1GPIZFMszZPRExRSGd+7jTbpDu\nJ0T4sl0cH4HvJ7Z0j1rCpMf/1/xQ6+67crbsKEk5ZaaB9jgR2xeq7JqOjMrD\nb9UHZkhcGRHhl/UIPWXbWhjaVmeM7T6KPpPgoEdvQ3iDba5wt1pYOiRtXX6i\nPztEbtf8OM1b0Qohoewl1AeL7KJQNE19qbJ2WEHIuI6taiZzZ5Lw7xWUupjo\nIqUt\r\n=ALql\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDVIjm33ITGrsOYAHR0WzNPKdKCf43/Xss9va3aZu21wAiEA8f8fEFtjHQSbYMnCGMLQYy8JXHpsN9+l2xTjAmvbOAQ="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.9.3_1599186703425_0.5203106852342936"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.9.4":{"name":"@redux-model/taro","version":"6.9.4","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"*"},"dependencies":{"immer":"^5.3.6","clone":"^2.1.2","object-assign":"^4.1.1","qs":"^6.9.1","redux":"^4.0.5","tslib":"^1.11.1"},"readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\nRedux Model is created to enhance original redux framework, which has complex development flow and lots of template fragments.\n\n![License](https://img.shields.io/github/license/redux-model/redux-model?color=blue)\n![Travis (.com)](https://img.shields.io/travis/com/redux-model/redux-model)\n![Coveralls github](https://img.shields.io/coveralls/github/redux-model/redux-model)\n\n[![](https://img.shields.io/npm/dt/@redux-model/web.svg?label=@redux-model/web)](https://www.npmjs.com/package/@redux-model/web)\n[![](https://img.shields.io/npm/dt/@redux-model/react-native.svg?label=@redux-model/react-native)](https://www.npmjs.com/package/@redux-model/react-native)\n[![](https://img.shields.io/npm/dt/@redux-model/taro.svg?label=@redux-model/taro)](https://www.npmjs.com/package/@redux-model/taro)\n[![](https://img.shields.io/npm/dt/@redux-model/vue.svg?label=@redux-model/vue)](https://www.npmjs.com/package/@redux-model/vue)\n\n\n# Features\n\n* Less code and higher efficiency\n* Modify reducer by MVVM\n* Absolutely 100% static type checking with typescript\n* Trace loading status for each request action\n* Support react hooks\n\n# Installation\n\n#### Web\n```bash\nnpm install @redux-model/web react-redux\n```\n\n#### React-Native\n\n```bash\nnpm install @redux-model/react-native react-redux\n```\n\n#### Vue\n\n```bash\nnpm install @redux-model/vue\n```\n\n\n#### Taro\n\n```bash\nnpm install @redux-model/taro @tarojs/redux\n```\n\n# Define Model\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n    increase = this.action((state) => {\n        state.counter += 1;\n    });\n\n    getUser = $api.action((id: number) => {\n        return this\n            .get<Response>(`/api/user/${id}`)\n            .onSuccess((state, action) => {\n                state.counter += 1;\n                state.users[id] = action.response;\n            });\n    });\n\n    protected initReducer(): Data {\n        return {\n            counter: 0,\n            users: {},\n        };\n    }\n}\n\nexport const testModel = new TestModel();\n```\n\n# With React Hooks\n```typescript jsx\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    const increase = () => {\n        testModel.increase();\n        testModel.getUser(3);\n    };\n\n    return (\n        <button onClick={increase}>\n            {loading ? 'Waiting...' : `You clicked ${counter} times`}\n        </button>\n    );\n};\n\nexport default App;\n```\n\n# With Redux connect\n```typescript jsx\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nclass App extends Component<Props> {\n    increase() {\n        testModel.increase();\n        testModel.getUser(3);\n    }\n\n    render() {\n        const { loading, counter } = this.props;\n        return (\n            <button onClick={this.increase}>\n                {loading ? 'Waiting...' : `You clicked ${counter} times`}\n            </button>\n        );\n    }\n}\n\nconst mapStateToProps = () => {\n    return {\n        counter: testModel.data.counter,\n        loading: testModel.getUser.loading,\n    };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# With Vue\n```vue\n<template>\n  <button @click=\"increase\">\n    {{loading ? 'Waiting...' : `You clicked ${counter} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n  name: 'HelloWorld',\n  methods: {\n    increase() {\n      testModel.increase();\n      testModel.getUser(3);\n    },\n  },\n  computed: {\n    counter() {\n      return testModel.data.counter;\n    },\n    loading() {\n        return testModel.getUser.loading;\n    },\n  },\n};\n</script>\n```\n\n# Demos\n\n* [React Web](https://github.com/redux-model/redux-model-web-demo)\n\n# Documents\n\nHere is the [document](https://redux-model.github.io/redux-model)\n\n---------------------\n\nFeel free to use it and welcome to send PR to me.\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@6.9.4","_nodeVersion":"12.17.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-jXTYX4fBQNDTE89ORvmp1L1IOIlpXm/ImHHW0RFXzhNtIsrSEIgjLSFg/+3YmjGGzbxKopWkDg6L5Eng5CTxIw==","shasum":"5ab5509777d175823a02b172030f4418b71d5947","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.9.4.tgz","fileCount":66,"unpackedSize":93333,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfUarZCRA9TVsSAnZWagAAkp4P/27FjHwNUud0Hja74b5o\nidZKwx36vKu/L097gR0M7nGZOuq84eqeRTOLKYp8e38b6w1ovlIO4rXIG+r3\nUbbJZ/XPCWKYRqAxZcyLsbSIKNLbvE/J9wlDKXsRigj0G1XZSjy1BWJn30oT\nmSo9k1MESXgq+34zlLhquNl7wGaHBUx0o/61lXOJxFD0q/ZadLeAm507pv23\nO7q+dndhVIHHlFRJXduv790o2LujlPbiyEA8Gejjqa2j2QL5qh0+UTrBkuvU\nA9yREiebV5v6E7P8zOaOXbQn8Xdxvw3edc++i4peXCabWyIwVBtJldOBwVJS\nFz2fgCpZRwNExFQqGddYflGyw25+M0me4MGjnVSHTfeVPZJdz7zmKG22FgLw\n/8eyZCF02pscQiZh9lnveKwrqiaenz69RtbUz0JcZ0eIKydYobLTDkcz/7tv\nQBoosWZsu27tFtp77vkpAbRS2XpZvG74dWAzwcZxcvaxgwiq9dybvCAwqeVZ\nF71F8Wnv6hNKSVfGopglxrTAhZxS8AVI9eDvmh6lsCqNj5LS8LoTXVWOAE2H\n9OoldylAt3zxJ8iQEFu/q1PbmgwqRC4fYr0gkiMAbCtzKzjjGxWfmyqTJPON\nXvvSkXMJWsZ1UM4eHeasW/CfyffabmZzrtdC/EOTwvM8Ca6//KWHwW5kf1eJ\nnOCO\r\n=IopQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCDIqsv7IJAMWxTFr6qcx88hJPPaLODoxDXcmRbUCoxMwIgERJBSSVyciOigasxYTdy6hvGHpMRMX8sLDbf8IxLL+g="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.9.4_1599187672605_0.4389488082355759"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.10.0":{"name":"@redux-model/taro","version":"6.10.0","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"^2"},"dependencies":{"immer":"^5.3.6","clone":"^2.1.2","object-assign":"^4.1.1","qs":"^6.9.1","redux":"^4.0.5","tslib":"^1.11.1"},"readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\nRedux Model is created to enhance original redux framework, which has complex development flow and lots of template fragments.\n\n![License](https://img.shields.io/github/license/redux-model/redux-model?color=blue)\n![Travis (.com)](https://img.shields.io/travis/com/redux-model/redux-model)\n![Coveralls github](https://img.shields.io/coveralls/github/redux-model/redux-model)\n\n[![](https://img.shields.io/npm/dt/@redux-model/web.svg?label=@redux-model/web)](https://www.npmjs.com/package/@redux-model/web)\n[![](https://img.shields.io/npm/dt/@redux-model/react-native.svg?label=@redux-model/react-native)](https://www.npmjs.com/package/@redux-model/react-native)\n[![](https://img.shields.io/npm/dt/@redux-model/taro.svg?label=@redux-model/taro)](https://www.npmjs.com/package/@redux-model/taro)\n[![](https://img.shields.io/npm/dt/@redux-model/vue.svg?label=@redux-model/vue)](https://www.npmjs.com/package/@redux-model/vue)\n\n\n# Features\n\n* Less code and higher efficiency\n* Modify reducer by MVVM\n* Absolutely 100% static type checking with typescript\n* Trace loading status for each request action\n* Support react hooks\n\n# Installation\n\n#### Web\n```bash\nnpm install @redux-model/web react-redux\n```\n\n#### React-Native\n\n```bash\nnpm install @redux-model/react-native react-redux\n```\n\n#### Vue\n\n```bash\nnpm install @redux-model/vue\n```\n\n\n#### Taro\n\n```bash\nnpm install @redux-model/taro @tarojs/redux\n```\n\n# Define Model\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n    increase = this.action((state) => {\n        state.counter += 1;\n    });\n\n    getUser = $api.action((id: number) => {\n        return this\n            .get<Response>(`/api/user/${id}`)\n            .onSuccess((state, action) => {\n                state.counter += 1;\n                state.users[id] = action.response;\n            });\n    });\n\n    protected initReducer(): Data {\n        return {\n            counter: 0,\n            users: {},\n        };\n    }\n}\n\nexport const testModel = new TestModel();\n```\n\n# With React Hooks\n```typescript jsx\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    const increase = () => {\n        testModel.increase();\n        testModel.getUser(3);\n    };\n\n    return (\n        <button onClick={increase}>\n            {loading ? 'Waiting...' : `You clicked ${counter} times`}\n        </button>\n    );\n};\n\nexport default App;\n```\n\n# With Redux connect\n```typescript jsx\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nclass App extends Component<Props> {\n    increase() {\n        testModel.increase();\n        testModel.getUser(3);\n    }\n\n    render() {\n        const { loading, counter } = this.props;\n        return (\n            <button onClick={this.increase}>\n                {loading ? 'Waiting...' : `You clicked ${counter} times`}\n            </button>\n        );\n    }\n}\n\nconst mapStateToProps = () => {\n    return {\n        counter: testModel.data.counter,\n        loading: testModel.getUser.loading,\n    };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# With Vue\n```vue\n<template>\n  <button @click=\"increase\">\n    {{loading ? 'Waiting...' : `You clicked ${counter} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n  name: 'HelloWorld',\n  methods: {\n    increase() {\n      testModel.increase();\n      testModel.getUser(3);\n    },\n  },\n  computed: {\n    counter() {\n      return testModel.data.counter;\n    },\n    loading() {\n        return testModel.getUser.loading;\n    },\n  },\n};\n</script>\n```\n\n# Demos\n\n* [React Web](https://github.com/redux-model/redux-model-web-demo)\n\n# Documents\n\nHere is the [document](https://redux-model.github.io/redux-model)\n\n---------------------\n\nFeel free to use it and welcome to send PR to me.\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@6.10.0","_nodeVersion":"12.17.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-0+CZU8cAbum+CLA9623zLfaxj+K6WQ/tXpr/zHuYhy4gcVouyPBMaISh/D3wy0aHln6BsS/EepadE8RA96lpsQ==","shasum":"e7522dbf4c7afff7a1d13daff3091f3030fd0a9b","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.10.0.tgz","fileCount":66,"unpackedSize":93385,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfUjiiCRA9TVsSAnZWagAAfiUP/1xcrpNeUK5QuRPjLv71\nZ6n4q03iTBjWE0AmCcdS8Ks+ZFok47i9N9DpiIYRKx1NTal4QxCSY+oUbXsn\nYnb7vMbZgDD2EqoHE8wRsE2sc+P35nRSQSTBeKZwuvyiSSYVQkynO4k08PSX\nmrIP+eN9XT33ohcOs27SWSBu3lLG0zqGNL4LBzflv01uv5+w1bcdyVQhThBE\nICCJYJl5xvIps53ToKFiqbQZN703F0BI+mZJ/4VC9V6AxPQgNLSMyQ9eOA/T\nA4hdsFXELu8DfY/Hz5X/xmk5HRKH3dGWISYeIRJwcGbnagBcskv7/o8QvXM9\nIgohGgiWZMO9AJrkDsAyPr7MJWIcyZb3HScwdxENFnvw8u7OfSn2N9IELxsu\n4B30rftNLIqJ+HqJ9+147TjsxUBOuM1I3qd+KwLS+dtVhNsZcJX1q52jbcPx\n6G5mpAHmhGuflADVN0vLuTtmRXEAejfdrqXo4H95L6Ya4O216R7Dr9+07tbU\nB8utQ5tmP+1CyuHLpDISD3LOSuWL518uS+sQ5jSkY5BQhpd8d5I2kByi48wg\nFuYsX2W14jaIxRboT1jvk1zAFUQ9Xwp+P1WIR+5aQ0GRKFJY9jltoI+kaeL1\nCHViptTNiBmUQV4IgEmOZAGg6YHfUa4OUogvc6Slx44MYAgjSjn9rht8XDM3\nVMeo\r\n=v/m8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGneDO9mYcJVsk13vYIOQc2I+acbmRBadmxS5CoG+u4VAiEA45kcBUm4CRM9umFS0PJRjrVq1o5wJ33rIBbOT5QwpQM="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.10.0_1599223969559_0.6217890096531062"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"6.9.5":{"name":"@redux-model/taro","version":"6.9.5","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"libs/index.js","types":"libs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","peerDependencies":{"@tarojs/redux":"^1"},"dependencies":{"immer":"^5.3.6","clone":"^2.1.2","object-assign":"^4.1.1","qs":"^6.9.1","redux":"^4.0.5","tslib":"^1.11.1"},"readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\nRedux Model is created to enhance original redux framework, which has complex development flow and lots of template fragments.\n\n![License](https://img.shields.io/github/license/redux-model/redux-model?color=blue)\n![Travis (.com)](https://img.shields.io/travis/com/redux-model/redux-model)\n![Coveralls github](https://img.shields.io/coveralls/github/redux-model/redux-model)\n\n[![](https://img.shields.io/npm/dt/@redux-model/web.svg?label=@redux-model/web)](https://www.npmjs.com/package/@redux-model/web)\n[![](https://img.shields.io/npm/dt/@redux-model/react-native.svg?label=@redux-model/react-native)](https://www.npmjs.com/package/@redux-model/react-native)\n[![](https://img.shields.io/npm/dt/@redux-model/taro.svg?label=@redux-model/taro)](https://www.npmjs.com/package/@redux-model/taro)\n[![](https://img.shields.io/npm/dt/@redux-model/vue.svg?label=@redux-model/vue)](https://www.npmjs.com/package/@redux-model/vue)\n\n\n# Features\n\n* Less code and higher efficiency\n* Modify reducer by MVVM\n* Absolutely 100% static type checking with typescript\n* Trace loading status for each request action\n* Support react hooks\n\n# Installation\n\n#### Web\n```bash\nnpm install @redux-model/web react-redux\n```\n\n#### React-Native\n\n```bash\nnpm install @redux-model/react-native react-redux\n```\n\n#### Vue\n\n```bash\nnpm install @redux-model/vue\n```\n\n\n#### Taro\n\n```bash\nnpm install @redux-model/taro @tarojs/redux\n```\n\n# Define Model\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n    increase = this.action((state) => {\n        state.counter += 1;\n    });\n\n    getUser = $api.action((id: number) => {\n        return this\n            .get<Response>(`/api/user/${id}`)\n            .onSuccess((state, action) => {\n                state.counter += 1;\n                state.users[id] = action.response;\n            });\n    });\n\n    protected initReducer(): Data {\n        return {\n            counter: 0,\n            users: {},\n        };\n    }\n}\n\nexport const testModel = new TestModel();\n```\n\n# With React Hooks\n```typescript jsx\nimport React, { FC } from 'react';\n\nconst App: FC = () => {\n    const counter = testModel.useData((data) => data.counter);\n    const loading = testModel.getUser.useLoading();\n\n    const increase = () => {\n        testModel.increase();\n        testModel.getUser(3);\n    };\n\n    return (\n        <button onClick={increase}>\n            {loading ? 'Waiting...' : `You clicked ${counter} times`}\n        </button>\n    );\n};\n\nexport default App;\n```\n\n# With Redux connect\n```typescript jsx\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\ntype Props = ReturnType<typeof mapStateToProps>;\n\nclass App extends Component<Props> {\n    increase() {\n        testModel.increase();\n        testModel.getUser(3);\n    }\n\n    render() {\n        const { loading, counter } = this.props;\n        return (\n            <button onClick={this.increase}>\n                {loading ? 'Waiting...' : `You clicked ${counter} times`}\n            </button>\n        );\n    }\n}\n\nconst mapStateToProps = () => {\n    return {\n        counter: testModel.data.counter,\n        loading: testModel.getUser.loading,\n    };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# With Vue\n```vue\n<template>\n  <button @click=\"increase\">\n    {{loading ? 'Waiting...' : `You clicked ${counter} times`}}\n  </button>\n</template>\n\n<script>\nexport default {\n  name: 'HelloWorld',\n  methods: {\n    increase() {\n      testModel.increase();\n      testModel.getUser(3);\n    },\n  },\n  computed: {\n    counter() {\n      return testModel.data.counter;\n    },\n    loading() {\n        return testModel.getUser.loading;\n    },\n  },\n};\n</script>\n```\n\n# Demos\n\n* [React Web](https://github.com/redux-model/redux-model-web-demo)\n\n# Documents\n\nHere is the [document](https://redux-model.github.io/redux-model)\n\n---------------------\n\nFeel free to use it and welcome to send PR to me.\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@6.9.5","_nodeVersion":"12.17.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-QUX7CMEeUmvRrbrhhLgtQuXrg8jgB66HoiQeGHLUsB5kZW+/H38e3cuZx92TmU2DZfMTEg+4j9AFEzq9H2PFZw==","shasum":"3f5e378cec4be2ff3578e5d77b66156f1520c09f","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-6.9.5.tgz","fileCount":66,"unpackedSize":93303,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfUjk1CRA9TVsSAnZWagAAriMP/jyyC5h9j1Fa2C1OlTmh\nZpGpexd20tOsR047u3N5IbqzfZiTdnmjuRVx6F95x/OZIJfZAxZcwjJhp1nn\n1whyVnnbCgEZarbLeLbAjBLWBXF2cYdOBfFuQUbZE58W3Vx3A8b4pWBCRXwL\nKZY2fx0bjYt2WiWyAjqB2Qj4LgKLsEg0VI0f21/601j9raKYaFebRUzbpg3D\nFRZtSxqNi3RDDt4xtOhOz6pvWubUvtjUXTitqrcBvI7+VoG60r7oE8sOQCVV\n7Jpy0NpsAJp4LYRLL5aEV8onL3Un0CC75ACsZINYdBWVITis9HTkbhT86JY4\nuar8oPmuWk5qzJtLcSRJWfkxIBleKbh1L3yZ+TI2ozSln/MJGJe8cZK+XYa4\nJnh+3Q/g0m4p42o0YQtdJHeTHdUgm83vkembfvcNKLOvG6PeyO35amV306ZL\ne75GPhZRwpk3cXplD/YzSjgoNtUw5MQfrHB4LTY1GrDM6+Kar4A1fjJg8gDS\nMSkaxEf44p7UHu4idZJxUbVGJHcQunB+hJvf8AVNrdS4RnhKof6n6vtwLPo0\nkhNO3q1492r6X6cBijGQtcQS2XXqn+tqYDx+rkGVwLWFqFsJoe6ggQtgSQcc\nktbCCK6efTqOlkW5lhmsDAvTz9mwGfz7o2Hvt21sUT+r9WcATUBA0GZqVkKG\npT/n\r\n=8MQU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB0TrUeU8bmKqnp4ZxWyTP4Ww3OtlpL2YL8Fw1B64ksEAiEA12mURk1UadkEZqE1ImaWBm4uF0Pu/M+7VF8hdG3ja3Q="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_6.9.5_1599224117425_0.15989907387272373"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"8.1.1":{"name":"@redux-model/taro","version":"8.1.1","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"@redux-model/core":"8.1.0","promise-listen-catch":"0.0.6","qs":"6.9.4","tslib":"2.0.1"},"devDependencies":{"@tarojs/taro":"^3.0.8","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","react":"16.13.1","react-dom":"16.13.1","react-redux":"^7.2.0","vue":"^2.6.12"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"81926de20592ca5d149ff9dfed8e0feb3d3a16b9","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@8.1.1","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-UpalW4LYckW7RyYCcbdzK9hDt81cAZUmFvnVG0PaNmTrdOtwrvW7ukLf+PTGEWTMgwHN10Aw4ljS1A8NqoTz5g==","shasum":"d4a36c78cc4ce8abecc390bedffd494cb50abd74","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-8.1.1.tgz","fileCount":22,"unpackedSize":34600,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfWxazCRA9TVsSAnZWagAAhwsQAIyo/i8nnPhk41q/9kCS\nWE0gtpabeu5oEoWF/9+nAtgcIXkB6mhe+YMWfkomGZIBwsO/f2MCuyDml8PG\nPmbmkh+chu5tRZQOJ9p69oZs/qT6R//Hk4KFbebknhic7ZbeUP5Ot/DJRHfm\nP/mj4eSFf8VoW8it7sSHpmjiPjlWdxhnyAueaILR0JfQfFL9ohRQZewPwtOk\n6ChAhEWoEz4ArEex27+UQyNMFull7Od5yga2OB45Rrrf7gmDrtmVDpljBj0l\n7OEtQef/LcBXDBwWt+2u227HEnC9ShBUcyFrOS50KnldqhA6mG5HAvVNN8Id\nQh2mKTnon36Ny4XbbqggO8b+xlFgA6eZSxIEFRa+EYcARKs0mdG8dEdUkI3w\nmKQIWI6rIo0UyewyZsInkq9JA+EppqJ8V9yD8UH0LCKT9hECkUtmc+A/a9sX\ntg0oxoucwxycAvw0u2cc5cZbGunK6LLnkxxp2LCeQE9nhK0SBa/8KjN1JI+y\n+deTxfmFfp2lwkuYpXi1+ZCf1Z9XaBrh4nclls5vXWjChQBorvhdn46j8e9S\nms3u0YbfR9s5awBSkGDFf4lNc5eKZIlVzmLayZhhe08lUIuLSPnUSmc/aSr7\n5DDwsOaPK6YyQ62VnEa2I7R9eHN6o9mDJB5tvZPTxrqbxgbHjmrERuurifHR\nEfn0\r\n=JT4v\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDliSjyUsaf/7mLW0O9K9xJBBGhJ2PcmVj6K0VwlBkh/QIhAMw4Uyp76n3QrGY3rYGOOXisZF0KtHg0Cjjv8hSTRIOV"}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_8.1.1_1599805106855_0.10145830372727493"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"8.1.2":{"name":"@redux-model/taro","version":"8.1.2","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"@redux-model/core":"8.1.2","promise-listen-catch":"0.0.7","qs":"6.9.4","tslib":"2.0.1"},"devDependencies":{"@tarojs/taro":"^3.0.8","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","react":"16.13.1","react-dom":"16.13.1","react-redux":"^7.2.0","vue":"^2.6.12"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"1d01306efaf44b18afe9657f476c326bc3d9104a","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@8.1.2","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-XgAG2VvHzTyD4c66p1lpOnQFX4qdHor5aDgPjHIyw2AHibFnITM9auWW9qg7nwF5MA0gbb9TrxMaKKQ4xTJ2Qg==","shasum":"127f4b4e2732334fe79c9bdf5e8f6d5565bac428","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-8.1.2.tgz","fileCount":22,"unpackedSize":34769,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfW0nqCRA9TVsSAnZWagAAgWcP/A18YJAEQQMHshVFwNAR\nUJoirJAuTNGTk6vl6s774mEzddKjY69Y3dXTyNEKnCPYlziXQEjSL8kg/6mn\nZ1KZda9YHa/rwtHP1TcYVttP/drNwbP0lHZcD6zaA1y3hZNwC4kgLXbZAh9a\nxKK+7zkY88PcmzEBzkxzLLaA/p9uff8bbuqlOz4hjXok+f26icp1oTHdYOcx\nYIfQStfqC0Acx9VAPdvOv//Qr0nga/GAqI2Ih6sTxfQvLFqSSeA6GI2S+Ayp\nlV6W5zQXMbHQ4v3zlbz3UBN0wBDMYKbVW2m1nHGlk3nYNgZb949DhhsBDtrN\nky6du0MNdkDIR0UGZPOjmwakHHCe5o0F79kNqKSJZab0Eg+h/DatBr8EkBNe\nVjVtKVGOvnMFutad69I49S5F+gE9nwZTCtpwc30fbQcbzf5rxp7WpXohSWZe\nE5I2dGNjYk64AjrdbEhF0YsdEdbabMvvdFF4865TbLzQTHIj3iCemDVpx7m+\nwWVUYvHvraqIHOqsQTKI+9oRCZIGWVXVIe4nDCWNY94x/Kk4/QpytG+6gL2+\nx5sboWn0fEFOnt/Zm98enD1V4vhAajR1EHDWzuZf48tuNHrY2Q7rXBVxzOnx\njXRf/4Tk4OBanlyCyTvcE3mcez7jwZNBhejVCGrc3l8zdI9TEeQ0o7BfDcm6\nMgLd\r\n=MS5K\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCrUrdsdrZDFnZNyRa4EnUHxSVrEBjSFTqJbPPBRlQ1vgIgcwXTQz7qdWedAP98+zA5bVmP+JBEMBoi9IKCOBORzHI="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_8.1.2_1599818217823_0.9026150402739614"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"8.1.3":{"name":"@redux-model/taro","version":"8.1.3","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"@redux-model/core":"8.1.3","promise-listen-catch":"0.0.7","qs":"6.9.4","tslib":"2.0.1"},"devDependencies":{"@tarojs/taro":"^3.0.8","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","react":"16.13.1","react-dom":"16.13.1","react-redux":"^7.2.0","vue":"^2.6.12"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"84b23ae4e5b83f8f128372b2b06d0161b82c3f7b","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@8.1.3","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-8dIC5mkyMKYWa7FG6POO57o5zTwrPYfYaXe3gzz9DgEx3Z2w1nRV05CsTTdMAIMgMTDzoUn+2Cmzi5KWQNWTBQ==","shasum":"a4a3d93ba5c125edb6fa2efa6b5ff8fed4b21617","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-8.1.3.tgz","fileCount":22,"unpackedSize":35091,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfW1plCRA9TVsSAnZWagAAdWMP/1DhByDDXU8vvjkDFDHa\npOdrlxdKuRBff/O0HIi9HKIrH1xraX5qZ1fEWfuLAKtHDzMd3Mtx4iCo38Qt\nh9dVWkNiDolUs9zbjlR4ECe2tu3nUPEEiUFZyA0/TP9gujXVG536UI2gxDmr\nGyGVo9zY1eHTM/khsolJTELEJXuQO6D6Xxo7Mr2K6KRUeHGVztc8W7di3FmF\nYHDDW52bB6O9SqPyKWLT2/oFLlKN8n36gfHbRps2IVhE98+NbYmkw2JygW7z\nkrVEsqIFSEia+3T0k+oxb3+7Nv3P2Skt+ySE9VW2+NINg44brs7XrtRqQPK3\nZd8BNZ29IUqHbDNojHbpLU/Icwi3CsrNjv+ibv5kN8cxgQQUvCTJH7Lwuv6W\nFY9wLOC94PS2QihCnmdEmVvvGE4Dif+FZiarSz4Fi7zh8rQMYBWJZVEEtSdG\nFgtGM2PnYK7Lf7GY5sYSMO1u88hMEDoK361ds/sIUCHcronkvUOp9m8GIbIw\n2RQnYxzM9wP7VN3/4xRYdehx0YS7krmqunQhfJxdGbhCCWrt7IGdVk5EASYL\nhwxsM8pEic/Yxwxgluux4sh3FCobNjB68YIE9PnlKQ+oDJPOSqlrqczHT5Pg\n1MGpagAYWJX0l9LipXV1mCG/YPmhbNyr+HF4fpSRXq7gUj0RxpD2d7z4Ppz9\nrJwC\r\n=Rfm8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDmC1Y0buGq7bujytlTBebXUHNSyQ2MymIT/gshRtpakgIhALxd4+RGxBXKZ/OF3bPKm1nVwLQkqViiz3RwcpGb41Ob"}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_8.1.3_1599822436860_0.2826452823274901"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"8.2.0":{"name":"@redux-model/taro","version":"8.2.0","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"@redux-model/core":"8.2.0","promise-listen-catch":"1.0.0","qs":"6.9.4","tslib":"2.0.1"},"devDependencies":{"@tarojs/taro":"^3.0.8","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","react":"16.13.1","react-dom":"16.13.1","react-redux":"^7.2.0","vue":"^2.6.12"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"345e79d5f436393a010ac49e627783a6e7ad47ff","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@8.2.0","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-V8Wdyu88TWkcFt08ZPSfLqf9HtNFYW4JMduV2rclwL+xn8xYuJjYxdxJojgCa7CsxFTKA3HUN94aH7W6BSwQXQ==","shasum":"d580da2dc79e590217dfeeb151adca29d371f48a","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-8.2.0.tgz","fileCount":22,"unpackedSize":35167,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfYi7qCRA9TVsSAnZWagAAZQcQAIut+V/WL8BYyAFpFe7a\nueKtH7eWijYl2ZmC/Dg6n9n4pItT0pUwDXB6VMbDZN0+BlPujsA+w5kdEOnn\nu68EfkcyMnsk8ok9kP4bdtnKzIIIaNssoEdbSUodRy1vVYG7dv453J6gVjp5\n2oF0/1ZRBKLGMnSvKlD/xcU/Y1qN3wjzcZL6kPEq6DgogUdcOjwTUVSM4SCD\nfjeFWzom8aStWg0hodITKkqfUcyEjl/7U9ER9T5U4AwYSfTxB9BRkuJpTOis\nlVjVZybFqtUSfH+MWlWeYakgbRV9KzMoY+XlhwJxMPeKAgAUdtEs2jIQTscT\no5PFWCSWiKGlDWaM6IMgwBSX33NJ3Wgbc02sBjupUCxzXqxUBJnaqd4MjyLW\nveUn3WuEUsyuMNsMrr+PtqZ5/9YHQP/ELfpku/2+ntJQLi5rpzgNSurkLf9W\nAvp6pAMDfyrsMAlROPUSH5C0CUAekW/hlNq1TDEkkI+gLvfDROdUBm3Qh5ia\nfTYQoMJEGmWCVszmah+MqYrNjTr1XEEYvjIQhjDr9CT0xr3ZkU+tCDXXzEWK\nHLzeZxAekmyBGtrSkoDCzuG9C1M2VQDGFwJyos5XalByrJipiRlKf0MjO509\nscZweOJU5st18f+UcTl8VdF30NIAEGIHk1vkoHZxVk94HecWjudq9sxztJVJ\nfPdn\r\n=LbMU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDyffGd9dw3q8bWBOYI+/F9sMUJ+keRLoovPdEE4fwOKAiBr9aV21DcMBsSimQi8cXy1sQDACizYkIDuf68VF5TgDw=="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_8.2.0_1600270057682_0.4997575659607105"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"8.2.1":{"name":"@redux-model/taro","version":"8.2.1","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"@redux-model/core":"8.2.1","promise-listen-catch":"1.0.0","qs":"6.9.4","tslib":"2.0.1"},"devDependencies":{"@tarojs/taro":"^3.0.8","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","react":"16.13.1","react-dom":"16.13.1","react-redux":"^7.2.0","vue":"^2.6.12"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"4c2d91976814e3ed1e7e1fbaae5916117441184d","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@8.2.1","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-eEgRn913QJlqug/Qpb5KXTTOQUnkZgOAt9nkcpzE44aXoMIObBQu/GNkn8aJ01kDDnQzd8agVOKz+LMBsZ2Tfg==","shasum":"26d40c1bf79b07d05daf653620ebf542df5a91a4","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-8.2.1.tgz","fileCount":22,"unpackedSize":35331,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfa2n5CRA9TVsSAnZWagAAwxgP/0tgUohezHaRiVzhT3Ij\nrX0aV4LgQQllXB8IeRfO6n6PAMDsBIvdYwUc9RW/p+wnToWQn+re/iSol2C+\nIbNKDkenrbltpyUamwT0/XJgx16VTqYmvTwXkCuTrkLL9ni/mUFYn2HZHRXH\nKm+50El9agmiWBc+N8sU6j7gjpluojODKVP+oqLiY6sq70oUBJkNwRju6DSn\nXcYEwROl+MFO2siCcuUb+BIoVxyHagm7j9tvk6lRodWFQ9GtforafxRCz8YX\nQ/ney5X98LX7PK2TYLIqdi4YbI4d5aovlbPXMM0xYsNBr5i003T2nMZ8te1Y\n6RieErdknscpS03wcDKkzENNpBvN34oY2uJt7Gjeifkx0j/ry4XteEfIRMyH\nJATLuzaSazZ6pEFB+0yBwCiyghyKYJYHDy6LQKvsUYYhiTidvzVOMV8gFv66\nP1/c3W5QmBV1jy69AfUbQq60Z26DpGgEKOol/o5Ta7x8rXzYsE3ZVnpNscXf\nhuvNu5zSJw8LUitxKgLbDBK8FIqOyC4RJy2L2PpBH5G7iMdv3rUm6scJQkoR\ndGBsdQbXA9o0QsXU4TEjDtq3bKIaNJm8NvtlV57GWFbGL0TC4/tFBb340rYU\nqRihUxYUqIqM45DME5dPhRIibjhhFfjEqSuMUJTUhJJ5q7IR51hmYLqW9VD2\nRgka\r\n=Rp/X\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFvQCW/QCuHKXjb038x2H8Yn+pMAjlmMS4Yw2EQWZCDMAiEAwCN15Fn+hcx5Cmo8qF/ls0sD+2yfKINRWTVc5ER6QmY="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_8.2.1_1600875001106_0.869626575933117"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"8.2.2-alpha.0":{"name":"@redux-model/taro","version":"8.2.2-alpha.0","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"@redux-model/core":"8.2.2-alpha.0","promise-listen-catch":"1.0.0","qs":"6.9.4","tslib":"2.0.1"},"devDependencies":{"@tarojs/taro":"^3.0.8","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","react":"16.13.1","react-dom":"16.13.1","react-redux":"^7.2.0","vue":"^2.6.12"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"d86cdc96dfc5f87e8032e5c84a498307507b1236","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\n[English Document](./README-EN.md)\n\nRedux-Model是为了弥补原生Redux繁琐的开发流程，开发者重复劳动效率低下，模板文件导致代码量臃肿，以及因action和reducer文件分散造成代码追踪困难的问题而设计的。\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# 特性\n\n* 深度封装，模块化开发\n* 使用mvvm快速处理reducer\n* **👍真正意义上的Typescript框架，写起来比JS更流畅**\n* 内置http服务，请求action自带loading追踪、数据节流\n* 支持React/Vue Hooks\n* 支持数据持久化\n* 支持[Graphql](https://github.com/redux-model/graphql)请求\n\n\n# 安装\n\n### React 或 React-Native\n```bash\nnpm install @redux-model/react redux react-redux\n```\n\n### Taro\n```bash\n# taro 3+\nnpm install @redux-model/taro redux react-redux\n\n# taro 2+\nnpm install @redux-model/taro@6.10.0 @tarojs/redux\n\n# taro 1+\nnpm install @redux-model/taro@6.9.5 @tarojs/redux\n```\n\n### Vue\n```bash\n# vue 3+\nnpm install @redux-model/vue redux\n\n# vue 2+\nnpm install @redux-model/vue@6.9.2 redux\n```\n\n# 定义模型\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n  plus = this.action((state, step: number = 1) => {\n    state.counter += step;\n  });\n\n  getUser = $api.action((id: number) => {\n    return this\n      .get<Response>(`/api/users/${id}`)\n      .onSuccess((state, action) => {\n        state.users[id] = action.response;\n      });\n  });\n\n  protected initialState(): Data {\n    return {\n      counter: 0,\n      users: {},\n    };\n  }\n}\n\nexport const testModel = new TestModel();\n```\n\n# 执行Action\n```typescript\ntestModel.plus();\ntestModel.plus(2);\n\ntestModel.getUser(3);\ntestModel.getUser(5).then(({ response }) => {});\n```\n\n# 在 Hooks 中获取数据\n```typescript jsx\nconst data = testModel.useData(); // { counter: number, users: object }\n\nconst counter = testModel.useData((data) => data.counter); // number\nconst users = testModel.useData((data) => data.users); // object\n\nconst loading = testModel.getUser.useLoading(); // boolean\n```\n\n# 在 connect 中获取数据\n```typescript jsx\ntype ReactProps = ReturnType<typeof mapStateToProps>;\n\nconst mapStateToProps = () => {\n  return {\n    counter: testModel.data.counter, // number\n    users: testModel.data.users, // object\n    loading: testModel.getUser.loading, // boolean\n  };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# 在线运行示例\n* [计数器](https://codesandbox.io/s/redux-model-react-counter-zdgjh)\n* [数据持久化](https://codesandbox.io/s/redux-model-react-persist-uwhy8)\n* [TODO面板](https://codesandbox.io/s/redux-model-react-todo-list-zn4nv)\n* [请求](https://codesandbox.io/s/redux-model-react-request-1ocyn)\n* [请求节流](https://codesandbox.io/s/redux-model-react-request-throttle-77mfy)\n* [任务监听](https://codesandbox.io/s/redux-model-react-listener-p7khk)\n* [任务组合](https://codesandbox.io/s/redux-model-react-compose-42wrc)\n* [子任务](https://codesandbox.io/s/redux-model-react-action-in-action-oewkv)\n\n# 文档\n\n请点击[这里查看文档](https://redux-model.github.io/redux-model)\n\n---------------------\n\n欢迎使用并随时给我建议\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@8.2.2-alpha.0","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-L8BSQyhKNmVcp4R3CAzj5Fo/sRO0ePdtFUD169W0aeQ1roV+sxIIxn5pPlKCIvtNTp+dLWJgLY5/cWzVa9uBNw==","shasum":"22d93fa0e07146df7fca7856adf172713c47f182","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-8.2.2-alpha.0.tgz","fileCount":22,"unpackedSize":39549,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfccWDCRA9TVsSAnZWagAAIdsP/jq9qmssxymsosobU0Ox\nblpETT7ddqCnS2pA+ktBx6arFL5jXU9cgj5D3I2RTf9BBb9s4f8V7cguCcfp\n4IlQcv/ZkTRRND6rdnkxyKd2A57CWEoDfh8pscyA5zOXwJSogr6mmNpICxh1\nQMlG2T5NaW6emtIExzs/q4zY3XdqlxMO1WeujfHg0yg2fJCHjZ2WlDyXLVB1\nIXMVlnd8TWhDBwJzfzx8XYCcDOpz4TMt5LtHfKXS84p0WqjIkhykDjnErznz\nx/Byun+eTKAHryn6lQO7fk4OZzxJMn6HCBjR4gPvqVH+Eqm6cI+lbsE7l3JA\npOt3oh1/91NcceTAmJgQku11TBfZj/I9WqmebmeY6sHkbETcF9d8Z38y33jx\n/htvq1qXVNjSMTvOfT+i6jnKVoUM9xnC4l/Xq7gXaUutnClBjG75m0nPbCWR\n/TuDWX0tLdU/qpk/IudY/13qHivNHsJ3sGIAgZBCdkfypnUj33/w4j1DQq9Q\n5r1dZdu43fQToShgwAN6FGh3QLM+wpqhyHcSt3jXi3hl2cSPvOpy1dzn/IU1\n6a2P90OBvy7DfgIOV802R0a+nt+xwGqfobdoTybcuCO6pKclQn2+ROFMG8ue\nSi6rohlXehWNZAyfw7zNaJmbeCDeDSkoKr72+5BBzPGjo2x2lzjTaIXNgReh\nTnlK\r\n=h3zT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFU1TIVIW1vq2lfR5KI98sru97665Im/QpZOPW3+qf/sAiEAmMjnrANMX0rCtLr4AHLhZvW7sIlRQhozJ2hkIOu+qR0="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_8.2.2-alpha.0_1601291651139_0.8689412155396536"},"_hasShrinkwrap":false},"8.2.2-alpha.1":{"name":"@redux-model/taro","version":"8.2.2-alpha.1","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"@redux-model/core":"8.2.2-alpha.1","promise-listen-catch":"1.0.0","qs":"6.9.4","tslib":"2.0.1"},"devDependencies":{"@tarojs/taro":"^3.0.8","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","react":"16.13.1","react-dom":"16.13.1","react-redux":"^7.2.0","vue":"^2.6.12"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"eabcd07856cf33c01bc898c848d09d22615afe85","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\n[English Document](./README-EN.md)\n\nRedux-Model是为了弥补原生Redux繁琐的开发流程，开发者重复劳动效率低下，模板文件导致代码量臃肿，以及因action和reducer文件分散造成代码追踪困难的问题而设计的。\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# 特性\n\n* 深度封装，模块化开发\n* 使用mvvm快速处理reducer\n* **👍真正意义上的Typescript框架，写起来比JS更流畅**\n* 内置http服务，请求action自带loading追踪、数据节流\n* 支持React/Vue Hooks\n* 支持数据持久化\n* 支持[Graphql](https://github.com/redux-model/graphql)请求\n\n\n# 安装\n\n### React 或 React-Native\n```bash\nnpm install @redux-model/react redux react-redux\n```\n\n### Taro\n```bash\n# taro 3+\nnpm install @redux-model/taro redux react-redux\n\n# taro 2+\nnpm install @redux-model/taro@6.10.0 @tarojs/redux\n\n# taro 1+\nnpm install @redux-model/taro@6.9.5 @tarojs/redux\n```\n\n### Vue\n```bash\n# vue 3+\nnpm install @redux-model/vue redux\n\n# vue 2+\nnpm install @redux-model/vue@6.9.2 redux\n```\n\n# 定义模型\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n  plus = this.action((state, step: number = 1) => {\n    state.counter += step;\n  });\n\n  getUser = $api.action((id: number) => {\n    return this\n      .get<Response>(`/api/users/${id}`)\n      .onSuccess((state, action) => {\n        state.users[id] = action.response;\n      });\n  });\n\n  protected initialState(): Data {\n    return {\n      counter: 0,\n      users: {},\n    };\n  }\n}\n\nexport const testModel = new TestModel();\n```\n\n# 执行Action\n```typescript\ntestModel.plus();\ntestModel.plus(2);\n\ntestModel.getUser(3);\ntestModel.getUser(5).then(({ response }) => {});\n```\n\n# 在 Hooks 中获取数据\n```typescript jsx\nconst data = testModel.useData(); // { counter: number, users: object }\n\nconst counter = testModel.useData((data) => data.counter); // number\nconst users = testModel.useData((data) => data.users); // object\n\nconst loading = testModel.getUser.useLoading(); // boolean\n```\n\n# 在 connect 中获取数据\n```typescript jsx\ntype ReactProps = ReturnType<typeof mapStateToProps>;\n\nconst mapStateToProps = () => {\n  return {\n    counter: testModel.data.counter, // number\n    users: testModel.data.users, // object\n    loading: testModel.getUser.loading, // boolean\n  };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# 在线运行示例\n* [计数器](https://codesandbox.io/s/redux-model-react-counter-zdgjh)\n* [数据持久化](https://codesandbox.io/s/redux-model-react-persist-uwhy8)\n* [TODO面板](https://codesandbox.io/s/redux-model-react-todo-list-zn4nv)\n* [请求](https://codesandbox.io/s/redux-model-react-request-1ocyn)\n* [请求节流](https://codesandbox.io/s/redux-model-react-request-throttle-77mfy)\n* [任务监听](https://codesandbox.io/s/redux-model-react-listener-p7khk)\n* [任务组合](https://codesandbox.io/s/redux-model-react-compose-42wrc)\n* [子任务](https://codesandbox.io/s/redux-model-react-action-in-action-oewkv)\n\n# 文档\n\n请点击[这里查看文档](https://redux-model.github.io/redux-model)\n\n---------------------\n\n欢迎使用并随时给我建议\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@8.2.2-alpha.1","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-Oy0NDpYAgxhy8kVb+p9DxNLE+etrzGEYTuv5/IKP/atFpHpDXiLwc292/jF5o1PwzyMSzh+pkP9kEVuJarxhbA==","shasum":"610cde4db2acc5ca25fa5d5bad62762aaebbe571","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-8.2.2-alpha.1.tgz","fileCount":22,"unpackedSize":39549,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfcdqOCRA9TVsSAnZWagAAlrMQAIaeUgXk3P3z6kiXJCup\nkUucpTIkx/SSjkruTJ4ScsqpzaCrukidxng6zhAEGqObJYxz4bYbx0ioy+Xu\nBnX5tjyLq5+47wMgO6fd/xpkb3JinB7oU082hF5f1KBdN3ldzY7pB8qs8KeQ\nFZLFaE+/oOLg9qF/ge/7kZVtJdBX9WFQEikFc8pqms9POzLV/3BEvhjfT9xU\nC4RJCg6vT9fgTCGJ2bj3YcUzNGnT1rS5cF4eQUoiC4dR/cPZhpwEX2gIe1AL\nKQ/WmK4FjIDBVzSI1/Ut0s8zL2XO3a1XpQ7bEup2NScq9HMfiPvfoi5Qwv6o\n+zJlcoH8+oMSwF/alt5Q03GaHRW84WNkSLiRVMWCzab+Z279r+E8Y4xmLzp/\n2tI+5OmnWh2gQxEO3wbQvk7moSGQlgiXQ0FQk42hl1MZ6NjffZHSGRrqxcNx\n4QIZ94MrqGDWUuFW3XaQ0trzRoNJl/WvgV0eJX5SeCkGJ9blFFPMm9A73VPU\nPLYPlWzZcyet2QR2MdomaqIn+AMXuQ50M0o2SRx0IOe+QWZ3UPVbbMDG2YS/\n0siIwhSkN3Q0OsDs04CEdhVnzyMdSaJpLhGruK3fRnF6GlWMRQ6fIUNm+PrN\n4JU6Ap7tp5S9HvpTH4qTE1551Y5cpfY02QhOUV8jnGigImygp5GnTidHbLAO\nkOx/\r\n=M8Qb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDD88JAEolcQHDI77eVco2FbueRHcOE+pW80lfweCNzBgIgIFDs7dWx91d9d5tdNlBYFUQH2hUOEaxtX1k3lelxKHs="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_8.2.2-alpha.1_1601297037662_0.21237773699459184"},"_hasShrinkwrap":false},"8.2.2-alpha.2":{"name":"@redux-model/taro","version":"8.2.2-alpha.2","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"@redux-model/core":"8.2.2-alpha.2","promise-listen-catch":"1.0.0","qs":"6.9.4","tslib":"2.0.1"},"devDependencies":{"@tarojs/taro":"^3.0.8","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","react":"16.13.1","react-dom":"16.13.1","react-redux":"^7.2.0","vue":"^2.6.12"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"2f1fba5c8e719d7855e85d19b32622fea0d0a0f5","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\n[English Document](./README-EN.md)\n\nRedux-Model是为了弥补原生Redux繁琐的开发流程，开发者重复劳动效率低下，模板文件导致代码量臃肿，以及因action和reducer文件分散造成代码追踪困难的问题而设计的。\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# 特性\n\n* 深度封装，模块化开发\n* 使用mvvm快速处理reducer\n* **👍真正意义上的Typescript框架，写起来比JS更流畅**\n* 内置http服务，请求action自带loading追踪、数据节流\n* 支持React/Vue Hooks\n* 支持数据持久化\n* 支持[Graphql](https://github.com/redux-model/graphql)请求\n\n\n# 安装\n\n### React 或 React-Native\n```bash\nnpm install @redux-model/react redux react-redux\n```\n\n### Taro\n```bash\n# taro 3+\nnpm install @redux-model/taro redux react-redux\n\n# taro 2+\nnpm install @redux-model/taro@6.10.0 @tarojs/redux\n\n# taro 1+\nnpm install @redux-model/taro@6.9.5 @tarojs/redux\n```\n\n### Vue\n```bash\n# vue 3+\nnpm install @redux-model/vue redux\n\n# vue 2+\nnpm install @redux-model/vue@6.9.2 redux\n```\n\n# 定义模型\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n  plus = this.action((state, step: number = 1) => {\n    state.counter += step;\n  });\n\n  getUser = $api.action((id: number) => {\n    return this\n      .get<Response>(`/api/users/${id}`)\n      .onSuccess((state, action) => {\n        state.users[id] = action.response;\n      });\n  });\n\n  protected initialState(): Data {\n    return {\n      counter: 0,\n      users: {},\n    };\n  }\n}\n\nexport const testModel = new TestModel();\n```\n\n# 执行Action\n```typescript\ntestModel.plus();\ntestModel.plus(2);\n\ntestModel.getUser(3);\ntestModel.getUser(5).then(({ response }) => {});\n```\n\n# 在 Hooks 中获取数据\n```typescript jsx\nconst data = testModel.useData(); // { counter: number, users: object }\n\nconst counter = testModel.useData((data) => data.counter); // number\nconst users = testModel.useData((data) => data.users); // object\n\nconst loading = testModel.getUser.useLoading(); // boolean\n```\n\n# 在 connect 中获取数据\n```typescript jsx\ntype ReactProps = ReturnType<typeof mapStateToProps>;\n\nconst mapStateToProps = () => {\n  return {\n    counter: testModel.data.counter, // number\n    users: testModel.data.users, // object\n    loading: testModel.getUser.loading, // boolean\n  };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# 在线运行示例\n* [计数器](https://codesandbox.io/s/redux-model-react-counter-zdgjh)\n* [数据持久化](https://codesandbox.io/s/redux-model-react-persist-uwhy8)\n* [TODO面板](https://codesandbox.io/s/redux-model-react-todo-list-zn4nv)\n* [请求](https://codesandbox.io/s/redux-model-react-request-1ocyn)\n* [请求节流](https://codesandbox.io/s/redux-model-react-request-throttle-77mfy)\n* [任务监听](https://codesandbox.io/s/redux-model-react-listener-p7khk)\n* [任务组合](https://codesandbox.io/s/redux-model-react-compose-42wrc)\n* [子任务](https://codesandbox.io/s/redux-model-react-action-in-action-oewkv)\n\n# 文档\n\n请点击[这里查看文档](https://redux-model.github.io/redux-model)\n\n---------------------\n\n欢迎使用并随时给我建议\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@8.2.2-alpha.2","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-PhgP0ejDboOCXuWNPmEbHBa0Ua8v+8jv8irZ8C87TfV+eDsASsyLbAqZ9/eOXaTTSVp6/DCGTc4kytVBtczLzQ==","shasum":"f92a65eccf870f528a2ef369670bd84c493aed62","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-8.2.2-alpha.2.tgz","fileCount":40,"unpackedSize":63232,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfcv32CRA9TVsSAnZWagAAZ5IP/Rj4B2XQ+y1dm1xImuxB\nABk54iql4vvcv3s0KfH+U78mC2UqWWrvzaybfyf8UwOiCrlboOgYJPeUwb/T\nuH3MRI8yCGBTs783Eqa/AxH4mCpXgxlVSCrNxMrDlUnfHDl6RaCWFYsg09iX\n+gdJn4joxA5PLFxg9KR7IpigQsfWYSxdR897WridazSaMkYafIue4n5zoyi/\nxLR5W1+ViuB3mXW5OJ+PIbfJckiz9+JVQ1e64ln8gIov6kQ1dbsIEDCyV/Xy\nsmORAIuURqnm2FR/dH9orakmgHfkw2DtWRATGzHetG5htDATcM4iMiCG8oEb\njWP2RQxsvSM7uhx7Za1fl0YBdymesYEF78V8l1ChDxa0RQ43LKXyUBSpD/9q\ndIkJL7BKV8ZYlnWKGEIY69PJdR6gT1wYgGRfIbEv9T4f34FThwIu3YfMsXL2\n76KrqgsIe8eOeaKqpP+4NoQaVWa3R/GhkkZcqgpe+ghCn51kH+lNrxU1/zBd\nRqsqQ4vR5H8y6vf3dThsutl3VcOMEv4w1zPxUXlxrF7ejJJTIcoYLuwoVvYe\nzkIP85sAaVtuPFTv7ZfuNTJWw4nf7Fo6BYiVrjzjhkgEFrpBsh/j1jpxDN94\n8k4Hf7G2244EC8RiN/ZZlZBIwojzqTvmePbXWTtde4Xy0hZXNjXZSnR60gmA\n36e1\r\n=hDQY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC1DYQoVspBdLUPfzs/NzUEFmStcANCZOFDh5inhVu03gIgFSl+7jGS9/Yzv4BEgA0jvyd6Gaxrwd+v+qtsuF1++sU="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_8.2.2-alpha.2_1601371637770_0.015381097496472984"},"_hasShrinkwrap":false},"8.2.2":{"name":"@redux-model/taro","version":"8.2.2","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0","react-redux":"^7.1.0","redux":"^4.0.0"},"dependencies":{"@redux-model/core":"8.2.2","promise-listen-catch":"1.0.0","qs":"6.9.4","tslib":"2.0.1"},"devDependencies":{"@tarojs/taro":"^3.0.8","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","@types/react-redux":"^7.1.9","react":"16.13.1","react-dom":"16.13.1","react-redux":"^7.2.0","vue":"^2.6.12"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"3e6c6e411cbe69033f452fada09617e22d61ff1b","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@8.2.2","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-xVsc1oMs/v+jw0GTQeOl0jc4Yb+5OzrA0OohV0cm15ybbnAi4Xa5y64J0JaVohpzXRNL6s4+BzYgLs8ga4Cs/w==","shasum":"1481fcad6ff668be491af947b532f84a4656ca46","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-8.2.2.tgz","fileCount":40,"unpackedSize":63535,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfcwNHCRA9TVsSAnZWagAAfUoP+wf4Cm2SEIBHSe44ZbUl\nKqAmf41lVyRTJnzvNlHJs+qwbMNiC1VuD218gR45a0ARSXhTFAWqNsaoCI38\njlZOPDo898jrJ9gmwirzqJjDRaPWI021Ys4v8cyNxO0u2ZxGQqhDJwfAbUdm\nveQQ3gSUET9X41Vf79kEcyEZMM/XEDNsCzesJIA+SNaFgQARWd/RHGQxDkhB\ns0nCruqjz3/3Vgkk+8YcmE6jSvzOp3xhdXEDHoEzGKs42muAxBBsqgw+HgBE\ndtsNDO08rqjDvBfAycs5LT8Fi3aUqoNdcpu8FNHszZmzKk7+bmxl7uRHrMpX\nPTxq+aD5otcDpfD3cbtD//0EGudSqt1CI3QPZgZw8398pSY4cLfmbGhoT1Q5\n1MNxooz1iBiYAH+UFghx0gAW12EPbXDck45iAGKnOM/XFznkGCRxG3YywQFs\nD73Vn7SRhpwP4EpJWi2SwlVu/tLbKDwuDIfUYGaJmeGx9TKEmDv2wH2P4Tbz\np8Y1jo3qu5tRvNR11xsIx5hn2uqKgVn5aPrKBMszJu6umpDg6nvajdNhOP9W\noe4ygAC68M2BKmzNzdYI0V2W0KbMywoR7khu318r0avfasVB07pmzUx2OkqW\nrhDvXS08byOrgCs3DiDtDmpNsex5MmzEN2y3dkhebucNFVuenSdvg5/ODwWk\n/Gb+\r\n=yADs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGa+nejvelWGcqXeBVyeOcJFacew7NfnjFuIhwpsWEeEAiEA+mDKCpkr/cbxeIkidmXy65PlJsQmxgK91P0oY00++U8="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_8.2.2_1601372998681_0.8884873384801746"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"8.3.0-alpha.0":{"name":"@redux-model/taro","version":"8.3.0-alpha.0","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0"},"dependencies":{"@redux-model/core":"8.2.2","@types/react-redux":"7.1.9","promise-listen-catch":"1.0.0","qs":"6.9.4","react-redux":"7.2.1","redux":"4.0.5","tslib":"2.0.1"},"devDependencies":{"@tarojs/taro":"^3.0.8","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","react":"16.13.1","react-dom":"16.13.1","vue":"^2.6.12"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"df331bddfa50f133e583e7b39c8ec95a40b03a74","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\n[English Document](./README-EN.md)\n\nRedux-Model是为了弥补原生Redux繁琐的开发流程，开发者重复劳动效率低下，模板文件导致代码量臃肿，以及因action和reducer文件分散造成代码追踪困难的问题而设计的。\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# 特性\n\n* 深度封装，模块化开发\n* 使用mvvm快速处理reducer\n* **👍真正意义上的Typescript框架，写起来比JS更流畅**\n* 内置http服务，请求action自带loading追踪、数据节流\n* 支持React/Vue Hooks\n* 支持数据持久化\n* 支持[Graphql](https://github.com/redux-model/graphql)请求\n* 支持代码分离\n\n# 安装\n\n### React 或 React-Native\n```bash\nnpm install @redux-model/react\n```\n\n### Taro\n```bash\n# taro 3+\nnpm install @redux-model/taro\n\n# taro 2+\nnpm install @redux-model/taro@6.10.0 @tarojs/redux\n\n# taro 1+\nnpm install @redux-model/taro@6.9.5 @tarojs/redux\n```\n\n### Vue\n```bash\n# vue 3+\nnpm install @redux-model/vue\n\n# vue 2+\nnpm install @redux-model/vue@6.9.2\n```\n\n# 定义模型\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n  plus = this.action((state, step: number = 1) => {\n    state.counter += step;\n  });\n\n  getUser = $api.action((id: number) => {\n    return this\n      .get<Response>(`/api/users/${id}`)\n      .onSuccess((state, action) => {\n        state.users[id] = action.response;\n      });\n  });\n\n  protected initialState(): Data {\n    return {\n      counter: 0,\n      users: {},\n    };\n  }\n}\n\nexport const testModel = new TestModel();\n```\n\n# 执行Action\n```typescript\ntestModel.plus();\ntestModel.plus(2);\n\ntestModel.getUser(3);\ntestModel.getUser(5).then(({ response }) => {});\n```\n\n# 在 Hooks 中获取数据\n```typescript jsx\nconst data = testModel.useData(); // { counter: number, users: object }\n\nconst counter = testModel.useData((data) => data.counter); // number\nconst users = testModel.useData((data) => data.users); // object\n\nconst loading = testModel.getUser.useLoading(); // boolean\n```\n\n# 在 connect 中获取数据\n```typescript jsx\ntype ReactProps = ReturnType<typeof mapStateToProps>;\n\nconst mapStateToProps = () => {\n  return {\n    counter: testModel.data.counter, // number\n    users: testModel.data.users, // object\n    loading: testModel.getUser.loading, // boolean\n  };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# 在线运行示例\n* [计数器](https://codesandbox.io/s/redux-model-react-counter-zdgjh)\n* [数据持久化](https://codesandbox.io/s/redux-model-react-persist-uwhy8)\n* [TODO面板](https://codesandbox.io/s/redux-model-react-todo-list-zn4nv)\n* [请求](https://codesandbox.io/s/redux-model-react-request-1ocyn)\n* [请求节流](https://codesandbox.io/s/redux-model-react-request-throttle-77mfy)\n* [任务监听](https://codesandbox.io/s/redux-model-react-listener-p7khk)\n* [任务组合](https://codesandbox.io/s/redux-model-react-compose-42wrc)\n* [子任务](https://codesandbox.io/s/redux-model-react-action-in-action-oewkv)\n\n# 文档\n\n请点击[这里查看文档](https://redux-model.github.io/redux-model)\n\n---------------------\n\n欢迎使用并随时给我建议\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@8.3.0-alpha.0","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-QXoAwz759cX7z6qK+bUrmq+XYMtNwFj5AVsV90yR7/HFglTaidd1e6zQhfNctg9vfVbqykSzSscn0N2mBvEI1A==","shasum":"45a116b245ab9603c63c2393bc250208937bd65b","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-8.3.0-alpha.0.tgz","fileCount":40,"unpackedSize":64508,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfc/3cCRA9TVsSAnZWagAArQAP/3hF5jdVLO8u1OsSrWHD\nRN3YkgUwCD/B8n5X1+5ZMfy1CCrzDVQU6QlEtEg5wvj9XeiFlInPJeygc5Hb\nS7FKQSVbTeaIvH7Zc/KBCEPQoiSqObNKP9F9d/k2cWSKGtcdNVigV7GOuAiP\nRlPAUzH4CyTxScR/43equm9Kcgn3TIb5D728mrLycbTU3di3GXyQm4027WL4\n0C8Tcg3V5m9N3MsC95DS2n+MdtbjaNWShJZniuc75KHS8UJUx1fKsOoIohRu\n6UACXX03eqoST9CN7FEdLSVL6ryZzwxXgxSGz8PkhMxbYehlcwz6J9fqp/80\nYUGhpT0eErpT8X422A9RmS6j5l4j5iKj+w3spcj81dPOkFFmMa2dUKbOwb4A\nP6P3wn/eLN7Vyv1qKwoJ+QqcfO8klOIfc8uU3UxurjvkeDmRRh4omoXPauBu\nA/CnxAMnHuKRahQHZcRDIkz33AfzHhu/hnb7YQ5w248RiL1M8kt4dQRP8LWa\nDGJjBABYg59sATQ/nGU37GTeqljBaAyte3cz0T8cfywQ/sZ58D99dQqJbwoB\n4f+NI5dp0xemrAlM472+PA39/vjHJJD9zc/CR8LYtuzD7+I9G8AAOrV044uW\nZU2C0KdrCjIgBdGSROgnCleF+XiH//PpO5kmof0RQe+KxHAUYL2Al+2Eq4X3\nmxvj\r\n=Uz07\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDPzcWbLBfEr1oRa00bUaCsomEy5hNg0F0Oj2i4BclF0wIgHlsrA+dK3FPWBqH6zavZzCADd8dHULKAquuu8Jp2RP0="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_8.3.0-alpha.0_1601437147786_0.710927390346201"},"_hasShrinkwrap":false},"9.0.0-alpha.0":{"name":"@redux-model/taro","version":"9.0.0-alpha.0","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0"},"dependencies":{"@redux-model/core":"9.0.0-alpha.0","@types/react-redux":"7.1.9","promise-listen-catch":"1.0.0","qs":"6.9.4","react-redux":"7.2.1","redux":"4.0.5","tslib":"2.0.1"},"devDependencies":{"@tarojs/taro":"^3.0.8","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","react":"16.13.1","react-dom":"16.13.1","vue":"^2.6.12"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"8b541184d11fbf0e08fdfe5bd95e928021e34bc9","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\n[English Document](./README-EN.md)\n\nRedux-Model是为了弥补原生Redux繁琐的开发流程，开发者重复劳动效率低下，模板文件导致代码量臃肿，以及因action和reducer文件分散造成代码追踪困难的问题而设计的。\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# 特性\n\n* 深度封装，模块化开发\n* 使用mvvm快速处理reducer\n* **👍真正意义上的Typescript框架，写起来比JS更流畅**\n* 内置http服务，请求action自带loading追踪、数据节流\n* 支持React/Vue Hooks\n* 支持数据持久化\n* 支持[Graphql](https://github.com/redux-model/graphql)请求\n* 支持代码分离\n\n# 安装\n\n### React 或 React-Native\n```bash\nnpm install @redux-model/react\n```\n\n### Taro\n```bash\n# taro 3+\nnpm install @redux-model/taro\n\n# taro 2+\nnpm install @redux-model/taro@6.10.0 @tarojs/redux\n\n# taro 1+\nnpm install @redux-model/taro@6.9.5 @tarojs/redux\n```\n\n### Vue\n```bash\n# vue 3+\nnpm install @redux-model/vue\n\n# vue 2+\nnpm install @redux-model/vue@6.9.2\n```\n\n# 定义模型\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n  plus = this.action((state, step: number = 1) => {\n    state.counter += step;\n  });\n\n  getUser = $api.action((id: number) => {\n    return this\n      .get<Response>(`/api/users/${id}`)\n      .onSuccess((state, action) => {\n        state.users[id] = action.response;\n      });\n  });\n\n  protected initialState(): Data {\n    return {\n      counter: 0,\n      users: {},\n    };\n  }\n}\n\nexport const testModel = new TestModel();\n```\n\n# 执行Action\n```typescript\ntestModel.plus();\ntestModel.plus(2);\n\ntestModel.getUser(3);\ntestModel.getUser(5).then(({ response }) => {});\n```\n\n# 在 Hooks 中获取数据\n```typescript jsx\nconst data = testModel.useData(); // { counter: number, users: object }\n\nconst counter = testModel.useData((data) => data.counter); // number\nconst users = testModel.useData((data) => data.users); // object\n\nconst loading = testModel.getUser.useLoading(); // boolean\n```\n\n# 在 connect 中获取数据\n```typescript jsx\ntype ReactProps = ReturnType<typeof mapStateToProps>;\n\nconst mapStateToProps = () => {\n  return {\n    counter: testModel.data.counter, // number\n    users: testModel.data.users, // object\n    loading: testModel.getUser.loading, // boolean\n  };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# 在线运行示例\n* [计数器](https://codesandbox.io/s/redux-model-react-counter-zdgjh)\n* [数据持久化](https://codesandbox.io/s/redux-model-react-persist-uwhy8)\n* [TODO面板](https://codesandbox.io/s/redux-model-react-todo-list-zn4nv)\n* [请求](https://codesandbox.io/s/redux-model-react-request-1ocyn)\n* [请求节流](https://codesandbox.io/s/redux-model-react-request-throttle-77mfy)\n* [任务监听](https://codesandbox.io/s/redux-model-react-listener-p7khk)\n* [任务组合](https://codesandbox.io/s/redux-model-react-compose-42wrc)\n* [子任务](https://codesandbox.io/s/redux-model-react-action-in-action-oewkv)\n\n# 文档\n\n请点击[这里查看文档](https://redux-model.github.io/redux-model)\n\n---------------------\n\n欢迎使用并随时给我建议\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@9.0.0-alpha.0","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-zV7X6YbweV1U1MziN6X6JmlkMVwS1TRnd9ez43puVJ0MnquFw2Cg98ex94qHlCu9/Ky6Pzw2r8NgxONnvRp/yQ==","shasum":"5b74576e63246b3679653fab1a4badb21aefdb69","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-9.0.0-alpha.0.tgz","fileCount":40,"unpackedSize":64327,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfdCqACRA9TVsSAnZWagAAylwP/jZd+4nBsz3Fzwmp9Jni\nbPzwnPDo0RvFbS0gZxIcTFtuajDOsQNf3XqTR9Y2p/Yn8YqyfVF7+CyXmfkS\nP54/cat5qTfcriQu5nsDcpNowdQoD6pPq8ZGBuAaO8ywvei+Vj9U26DB4GqW\nlHyu9F/YfCQvV/Z/+H4jFAKvwrRLJmDNH0u5wlSIRMl3kz9jRjH54nAUvDtx\nut01OTRuiM5uU5+e9lZ+kqpWw7hSpFAoxykJ4zNtKKSMrbD5V1bohZMGMyge\nuoac9+sdE9adkVW3bLxeM4k35XoF3RfJ6rZ6HCB8cU2VTw3GyCAhL/DPOSKC\nG0Y91iyRCQCtxPLiO91aEbtUAwzUP7p6eNb1z9Alulv3/nQq7+hYCV/2z21d\nm+1B5KWr7bo9Ior4gc0nxuztqAjTGee3dK6lvxT/vZCQYltVllmShqBw5RET\nb8oKxWCikPM26/ER4bHTTbkpVFogARNN6mawkNZJY9du3LbTdZop5M2SLj8H\nOyOY7WFIYuLvANtdRa/g7gWpLI4+imga/LTOJd+AY061S3QzuptOvzjRIjYw\ndqpC8/SZzNjwonGA7lDq3/lVTP5hpIArOyHPsWIsR0e427B/WDAHPbzihkWD\nmn/eCep66qnCYPEGTHQS2h3lJnEanm7vkR7LtxAx/ml9px1kAftcgQ7szCkT\nMQpe\r\n=M6R9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB/8r5/Tv1Zy+ollb+uPUeMhxXzgLrMKjydtCfssxiuSAiEArhmb9QD78k0kevlM+og2lK2xlu8gVbKI2zgGMG3f4Oc="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_9.0.0-alpha.0_1601448576399_0.8219594217827526"},"_hasShrinkwrap":false},"9.0.0-alpha.1":{"name":"@redux-model/taro","version":"9.0.0-alpha.1","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0"},"dependencies":{"@redux-model/core":"9.0.0-alpha.1","@types/react-redux":"7.1.9","promise-listen-catch":"1.0.0","qs":"6.9.4","react-redux":"7.2.1","redux":"4.0.5","tslib":"2.0.1"},"devDependencies":{"@tarojs/taro":"^3.0.8","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","react":"16.13.1","react-dom":"16.13.1","vue":"^2.6.12"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"22bdedca6f34e19bb50e0204177e358b0cc81efd","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\n[English Document](./README-EN.md)\n\nRedux-Model是为了弥补原生Redux繁琐的开发流程，开发者重复劳动效率低下，模板文件导致代码量臃肿，以及因action和reducer文件分散造成代码追踪困难的问题而设计的。\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# 特性\n\n* 深度封装，模块化开发\n* 使用mvvm快速处理reducer\n* **👍真正意义上的Typescript框架，写起来比JS更流畅**\n* 内置http服务，请求action自带loading追踪、数据节流\n* 支持React/Vue Hooks\n* 支持数据持久化\n* 支持[Graphql](https://github.com/redux-model/graphql)请求\n* 支持代码分离\n\n# 安装\n\n### React 或 React-Native\n```bash\nnpm install @redux-model/react\n```\n\n### Taro\n```bash\n# taro 3+\nnpm install @redux-model/taro\n\n# taro 2+\nnpm install @redux-model/taro@6.10.0 @tarojs/redux\n\n# taro 1+\nnpm install @redux-model/taro@6.9.5 @tarojs/redux\n```\n\n### Vue\n```bash\n# vue 3+\nnpm install @redux-model/vue\n\n# vue 2+\nnpm install @redux-model/vue@6.9.2\n```\n\n# 定义模型\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n  plus = this.action((state, step: number = 1) => {\n    state.counter += step;\n  });\n\n  getUser = $api.action((id: number) => {\n    return this\n      .get<Response>(`/api/users/${id}`)\n      .onSuccess((state, action) => {\n        state.users[id] = action.response;\n      });\n  });\n\n  protected initialState(): Data {\n    return {\n      counter: 0,\n      users: {},\n    };\n  }\n}\n\nexport const testModel = new TestModel();\n```\n\n# 执行Action\n```typescript\ntestModel.plus();\ntestModel.plus(2);\n\ntestModel.getUser(3);\ntestModel.getUser(5).then(({ response }) => {});\n```\n\n# 在 Hooks 中获取数据\n```typescript jsx\nconst data = testModel.useData(); // { counter: number, users: object }\n\nconst counter = testModel.useData((data) => data.counter); // number\nconst users = testModel.useData((data) => data.users); // object\n\nconst loading = testModel.getUser.useLoading(); // boolean\n```\n\n# 在 connect 中获取数据\n```typescript jsx\ntype ReactProps = ReturnType<typeof mapStateToProps>;\n\nconst mapStateToProps = () => {\n  return {\n    counter: testModel.data.counter, // number\n    users: testModel.data.users, // object\n    loading: testModel.getUser.loading, // boolean\n  };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# 在线运行示例\n* [计数器](https://codesandbox.io/s/redux-model-react-counter-zdgjh)\n* [数据持久化](https://codesandbox.io/s/redux-model-react-persist-uwhy8)\n* [TODO面板](https://codesandbox.io/s/redux-model-react-todo-list-zn4nv)\n* [请求](https://codesandbox.io/s/redux-model-react-request-1ocyn)\n* [请求节流](https://codesandbox.io/s/redux-model-react-request-throttle-77mfy)\n* [任务监听](https://codesandbox.io/s/redux-model-react-listener-p7khk)\n* [任务组合](https://codesandbox.io/s/redux-model-react-compose-42wrc)\n* [子任务](https://codesandbox.io/s/redux-model-react-action-in-action-oewkv)\n\n# 文档\n\n请点击[这里查看文档](https://redux-model.github.io/redux-model)\n\n---------------------\n\n欢迎使用并随时给我建议\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@9.0.0-alpha.1","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-ENc3ZLbuTG5gPHOeKdViPxlpbTYMlnIoGBx49h+4dDQT8jwEiaDYzYOHywvx9Qxmw093u7O0vfXZ+46ECZHLdw==","shasum":"a648ad8118864807139685d16ffe2ebfc2f90167","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-9.0.0-alpha.1.tgz","fileCount":40,"unpackedSize":64594,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfdGWICRA9TVsSAnZWagAAsrcP/3IS2y1lx4GSzvCbLQMS\nnlQJ5WsXe9Stflk7SHVg8t+0GDVSwspm9P3DkTQwQBcLjPduycndArIy+Y38\ngt8mgeVj5XJ+C6vNFKPjK5Fn/11WHB58OSwAp6dmWrn//Oc1R6YSYZ61rk/0\nEg5mTQmu2v5ymVxvBqL9MCMuSd7h42/R8gZV7QFB+rkOIwh4cVB/Lv+XLbPu\n26vuxyt1Xfd6j6WTSg4BFd9Z95yaTT7TbyIpWpyyyzhbBrN8mGFlj7/4BSt1\nz6tTk048rHSB3BQiQucQddyRgsBiMiT5UwqdGeo9QE9kQMTTvDhFHcHioJ6L\nDrOUgi1Rni/UBcw+ls2URR6BkyT/9m+le3lbsM3teyxvC60pOqZRLPK8ZnMx\ntWMR8RunRJHnqVXYTeiVWMRJFHmj/ASi4C6M1wKwK7lvPlQlc5c+Iy4utWA+\ny6Lt+swL4h2DS/VCRPj5+JB60uzKvRbhakmlI2T+0cNFq6SP9otuIyB6oZ18\nROORhG7Wr0qsAbfX9ow90J5cI2hz6LKYsUk3DpWPojd654XvJO+i6mRpypS0\nkxDOz3OAOMQz/p8CVSzBGpR34spNpLkKzZpeBg1W7671GrfqT/p7qvfnBiYr\nzZONVQVV4jcRF3cZKlHDPaVLOxYP5M9NI4oxRs5F+Gp0CgIFIfxhfVtX7hL5\nFB25\r\n=FTbE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAZJOwXjye7ehCPAtIgvY1dn425FvvfWoVqM0+HvncDtAiEAltCHyeSQAYxVm/57fcLGFNh4y/mpsawbZp3vPdZO8U0="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_9.0.0-alpha.1_1601463687833_0.008832003725897986"},"_hasShrinkwrap":false},"9.0.0-alpha.2":{"name":"@redux-model/taro","version":"9.0.0-alpha.2","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0"},"dependencies":{"@redux-model/core":"9.0.0-alpha.2","@types/react-redux":"7.1.9","promise-listen-catch":"1.0.0","qs":"6.9.4","react-redux":"7.2.1","redux":"4.0.5","tslib":"2.0.1"},"devDependencies":{"@tarojs/taro":"^3.0.8","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","react":"16.13.1","react-dom":"16.13.1","vue":"^2.6.12"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"4a29a1732782e6d3375a6c7325945e225adec19c","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\n[English Document](./README-EN.md)\n\nRedux-Model是为了弥补原生Redux繁琐的开发流程，开发者重复劳动效率低下，模板文件导致代码量臃肿，以及因action和reducer文件分散造成代码追踪困难的问题而设计的。\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# 特性\n\n* 深度封装，模块化开发\n* 使用mvvm快速处理reducer\n* **👍真正意义上的Typescript框架，写起来比JS更流畅**\n* 内置http服务，请求action自带loading追踪、数据节流\n* 支持React/Vue Hooks\n* 支持数据持久化\n* 支持[Graphql](https://github.com/redux-model/graphql)请求\n* 支持代码分离\n\n# 安装\n\n### React 或 React-Native\n```bash\nnpm install @redux-model/react\n```\n\n### Taro\n```bash\n# taro 3+\nnpm install @redux-model/taro\n\n# taro 2+\nnpm install @redux-model/taro@6.10.0 @tarojs/redux\n\n# taro 1+\nnpm install @redux-model/taro@6.9.5 @tarojs/redux\n```\n\n### Vue\n```bash\n# vue 3+\nnpm install @redux-model/vue\n\n# vue 2+\nnpm install @redux-model/vue@6.9.2\n```\n\n# 定义模型\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n  plus = this.action((state, step: number = 1) => {\n    state.counter += step;\n  });\n\n  getUser = $api.action((id: number) => {\n    return this\n      .get<Response>(`/api/users/${id}`)\n      .onSuccess((state, action) => {\n        state.users[id] = action.response;\n      });\n  });\n\n  protected initialState(): Data {\n    return {\n      counter: 0,\n      users: {},\n    };\n  }\n}\n\nexport const testModel = new TestModel();\n```\n\n# 执行Action\n```typescript\ntestModel.plus();\ntestModel.plus(2);\n\ntestModel.getUser(3);\ntestModel.getUser(5).then(({ response }) => {});\n```\n\n# 在 Hooks 中获取数据\n```typescript jsx\nconst data = testModel.useData(); // { counter: number, users: object }\n\nconst counter = testModel.useData((data) => data.counter); // number\nconst users = testModel.useData((data) => data.users); // object\n\nconst loading = testModel.getUser.useLoading(); // boolean\n```\n\n# 在 connect 中获取数据\n```typescript jsx\ntype ReactProps = ReturnType<typeof mapStateToProps>;\n\nconst mapStateToProps = () => {\n  return {\n    counter: testModel.data.counter, // number\n    users: testModel.data.users, // object\n    loading: testModel.getUser.loading, // boolean\n  };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# 在线运行示例\n* [计数器](https://codesandbox.io/s/redux-model-react-counter-zdgjh)\n* [数据持久化](https://codesandbox.io/s/redux-model-react-persist-uwhy8)\n* [TODO面板](https://codesandbox.io/s/redux-model-react-todo-list-zn4nv)\n* [请求](https://codesandbox.io/s/redux-model-react-request-1ocyn)\n* [请求节流](https://codesandbox.io/s/redux-model-react-request-throttle-77mfy)\n* [任务监听](https://codesandbox.io/s/redux-model-react-listener-p7khk)\n* [任务组合](https://codesandbox.io/s/redux-model-react-compose-42wrc)\n* [子任务](https://codesandbox.io/s/redux-model-react-action-in-action-oewkv)\n\n# 文档\n\n请点击[这里查看文档](https://redux-model.github.io/redux-model)\n\n---------------------\n\n欢迎使用并随时给我建议\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@9.0.0-alpha.2","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-vqwsbSs8PvEnYef8UWzOiugpmRyFhg+YlWZjMNqNuqBgMeQ6d19lRDVXZtm8Ucw22FHThWw3XfhwgeKDqnfrjg==","shasum":"17d9c9c40a337f7a0ff3f30b5fe7b21945a1e76a","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-9.0.0-alpha.2.tgz","fileCount":40,"unpackedSize":64573,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJff99hCRA9TVsSAnZWagAARHgP/2X7e9f5yD498TS8kQLz\nKizHWek1feMWuC7F/vgUYLeiYzM9Gf5jl4KA73kUDPEJo4Vum5BSr6AKiB3m\n0Bei+HmXY00SQT38CJKqxcbkCfJ62ycWsMCogFqrUANPBrktS8E6stpo8GhW\nDp+WBFlCYG1Xx7q8SLId+mRgJ2AtsSQaBM7TtXLqYhfOM+SPnInt38snaIyH\n9yWn12SA7yo2CqmTa8GncG3exjiRES/QIMqFe6IBfCUPusOlw1CIc/BpTj+1\nEL7yHaBZ46+x7bX9Oh6eD0O7yRME2Qt4hLEfj/Z2rKfiNxqDjDh+YBv3KuzA\noF2CSGEEBY+xuCxrCPf3Nz7BSLHhcrPyPGYroJMNxk/5NXfzELdmBDGnIYKA\nQv6wJLVyQDrTwqJ08NjuNWVVDgqEO2N7Ta/Cb73+eVorD/404EN+QANERJ3x\ndKepntx5q2AYyAL2kye9KxhZorzwck22tGMCOefxV1pEnhjY365+u/P737MJ\nrCwZpV7XjRP6ByFTkjqNo87m35S4uFtzIjNmZXZPSbs0yR2tr34jn8NEis0U\n4nO0PJ9va1ZDBfkyrFvyG3gM59Hh6nEY43cgKa08Kxa21902N04AH+PraSNk\n3YfPAGLEYEDQjWyFuJQMXhKa9+GPP4H1MI6cjLGQHf6cWUi2GDVjyLmZdLTI\ntN1Y\r\n=SGpP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCugGZ9VL0Cj1MdZ2cciQmTKXRDaCmdZryJ2usSIe1mcgIgfGvf6OHRhrCCtRe3xm7FTK8qOAvLXjdI6g+WYkF1qsU="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_9.0.0-alpha.2_1602215776739_0.2944406458865063"},"_hasShrinkwrap":false},"9.0.0-alpha.3":{"name":"@redux-model/taro","version":"9.0.0-alpha.3","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0"},"dependencies":{"@redux-model/core":"9.0.0-alpha.3","@types/react-redux":"7.1.9","promise-listen-catch":"1.0.0","qs":"6.9.4","react-redux":"7.2.1","redux":"4.0.5","tslib":"2.0.1"},"devDependencies":{"@tarojs/taro":"^3.0.8","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","react":"16.13.1","react-dom":"16.13.1","vue":"^2.6.12"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"8964d3c4ead7b6548d4be4c49700c5c65410d392","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\n[English Document](./README-EN.md)\n\nRedux-Model是为了弥补原生Redux繁琐的开发流程，开发者重复劳动效率低下，模板文件导致代码量臃肿，以及因action和reducer文件分散造成代码追踪困难的问题而设计的。\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# 特性\n\n* 深度封装，模块化开发\n* 使用mvvm快速处理reducer\n* **👍真正意义上的Typescript框架，写起来比JS更流畅**\n* 内置http服务，请求action自带loading追踪、数据节流\n* 支持React/Vue Hooks\n* 支持数据持久化\n* 支持[Graphql](https://github.com/redux-model/graphql)请求\n* 支持代码分离\n\n# 安装\n\n### React 或 React-Native\n```bash\nnpm install @redux-model/react\n```\n\n### Taro\n```bash\n# taro 3+\nnpm install @redux-model/taro\n\n# taro 2+\nnpm install @redux-model/taro@6.10.0 @tarojs/redux\n\n# taro 1+\nnpm install @redux-model/taro@6.9.5 @tarojs/redux\n```\n\n### Vue\n```bash\n# vue 3+\nnpm install @redux-model/vue\n\n# vue 2+\nnpm install @redux-model/vue@6.9.2\n```\n\n# 定义模型\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n  plus = this.action((state, step: number = 1) => {\n    state.counter += step;\n  });\n\n  getUser = $api.action((id: number) => {\n    return this\n      .get<Response>(`/api/users/${id}`)\n      .onSuccess((state, action) => {\n        state.users[id] = action.response;\n      });\n  });\n\n  protected initialState(): Data {\n    return {\n      counter: 0,\n      users: {},\n    };\n  }\n}\n\nexport const testModel = new TestModel();\n```\n\n# 执行Action\n```typescript\ntestModel.plus();\ntestModel.plus(2);\n\ntestModel.getUser(3);\ntestModel.getUser(5).then(({ response }) => {});\n```\n\n# 在 Hooks 中获取数据\n```typescript jsx\nconst data = testModel.useData(); // { counter: number, users: object }\n\nconst counter = testModel.useData((data) => data.counter); // number\nconst users = testModel.useData((data) => data.users); // object\n\nconst loading = testModel.getUser.useLoading(); // boolean\n```\n\n# 在 connect 中获取数据\n```typescript jsx\ntype ReactProps = ReturnType<typeof mapStateToProps>;\n\nconst mapStateToProps = () => {\n  return {\n    counter: testModel.data.counter, // number\n    users: testModel.data.users, // object\n    loading: testModel.getUser.loading, // boolean\n  };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# 在线运行示例\n* [计数器](https://codesandbox.io/s/redux-model-react-counter-zdgjh)\n* [数据持久化](https://codesandbox.io/s/redux-model-react-persist-uwhy8)\n* [TODO面板](https://codesandbox.io/s/redux-model-react-todo-list-zn4nv)\n* [请求](https://codesandbox.io/s/redux-model-react-request-1ocyn)\n* [请求节流](https://codesandbox.io/s/redux-model-react-request-throttle-77mfy)\n* [任务监听](https://codesandbox.io/s/redux-model-react-listener-p7khk)\n* [任务组合](https://codesandbox.io/s/redux-model-react-compose-42wrc)\n* [子任务](https://codesandbox.io/s/redux-model-react-action-in-action-oewkv)\n\n# 文档\n\n请点击[这里查看文档](https://redux-model.github.io/redux-model)\n\n---------------------\n\n欢迎使用并随时给我建议\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@9.0.0-alpha.3","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-JjFobyKdCG2ROvpRz2mcOl+jUE0phCbtU+cxIUcwNhJkvjUNBG1GVczwNTqqZaR9kKi+NjUTCdSBYz0Bfo6jSA==","shasum":"e97d7fd27b7a7e3c11e80f3fd680caff3e2eeb38","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-9.0.0-alpha.3.tgz","fileCount":40,"unpackedSize":64763,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJff/cUCRA9TVsSAnZWagAAoA8QAIwM8RNzhTzitWMsT55L\noXkFn3bS1Fug/gUm43lfyA5iKsoOvTK+lB8aD3c0j95t8N0hIM2VdJA39p9P\nIwRSkse6TWRvU3Hbjv22d535fycxafL9JL+wEAyJlNgl2sPcQoEEaONg5qtF\nQiu23+fMmN3rv716XH3pxXM5GTGNCMCHejCNPDvQYxn9gtOw0BPGE3+C0ynZ\njGg53dZUuywTy1OQbMa+6GPK8v3vllBNCH+eEgEzJotCEE1L9eMttzRVGu3q\nU7cNJLXnJbYz/UE/9dUbRl2yqAxRJugoeEVtIZHtpbu2HKEo2Y4MCReu/600\njBkHHcKkOtN9f8a5xPOGB0j+fPBbRDCJedhndReOgPvntcbzZ2mfl7KUIjRb\npfaSue/9n7KNBt5+lYJU/lWKNpE8DRktxLhkunWt++NvTY1YuQUmmcs6znSO\nghUokjdfozXA3+X4PZi5ToN5eFv0D/RyhSovULsDsWqHIFT2YzyCBq9rNoVv\nW19XRl3KVdTOnb9/JZCbTTnERbgCHKy1e5HbWg83ZvO4fAfNRIphqBmvk606\n3HzzDWYFUdxFtRqmJcossgqpC4R1cLnIC55YCUWU2Fcw3VjcaJbYekdNldcB\n9hCw+Yu+/sVmULl4uhrQQKWPMG5aPw/dSQmLNM8t2xbxqqcngfBG7AXGfZrW\nz6T8\r\n=BnK8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCH1ont8DkHyUD9Z+yDjpgObyJI+sRIyEzmr5ZzZLBvOsCIQCzZfr7sBVbCutllMZBC5kq3K+uT72sMDbOYGE2d99QBw=="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_9.0.0-alpha.3_1602221844252_0.5584240406392329"},"_hasShrinkwrap":false},"9.0.0-alpha.4":{"name":"@redux-model/taro","version":"9.0.0-alpha.4","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0"},"dependencies":{"@redux-model/core":"9.0.0-alpha.4","@types/react-redux":"7.1.9","promise-listen-catch":"1.0.0","qs":"6.9.4","react-redux":"7.2.1","redux":"4.0.5","tslib":"2.0.2"},"devDependencies":{"@tarojs/taro":"^3.0.8","@types/qs":"^6.9.3","@types/react":"^16.9.43","@types/react-dom":"^16.9.8","react":"16.13.1","react-dom":"16.13.1","vue":"^2.6.12"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"f148688b98f361d0f6491ddcc2d3513d1509f303","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\n[English Document](./README-EN.md)\n\nRedux-Model是为了弥补原生Redux繁琐的开发流程，开发者重复劳动效率低下，模板文件导致代码量臃肿，以及因action和reducer文件分散造成代码追踪困难的问题而设计的。\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# 特性\n\n* 深度封装，模块化开发\n* 使用mvvm快速处理reducer\n* **👍真正意义上的Typescript框架，写起来比JS更流畅**\n* 内置http服务，请求action自带loading追踪、数据节流\n* 支持React/Vue Hooks\n* 支持数据持久化\n* 支持[Graphql](https://github.com/redux-model/graphql)请求\n* 支持代码分离\n\n# 安装\n\n### React 或 React-Native\n```bash\nnpm install @redux-model/react\n```\n\n### Taro\n```bash\n# taro 3+\nnpm install @redux-model/taro\n\n# taro 2+\nnpm install @redux-model/taro@6.10.0 @tarojs/redux\n\n# taro 1+\nnpm install @redux-model/taro@6.9.5 @tarojs/redux\n```\n\n### Vue\n```bash\n# vue 3+\nnpm install @redux-model/vue\n\n# vue 2+\nnpm install @redux-model/vue@6.9.2\n```\n\n# 定义模型\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n  plus = this.action((state, step: number = 1) => {\n    state.counter += step;\n  });\n\n  getUser = $api.action((id: number) => {\n    return this\n      .get<Response>(`/api/users/${id}`)\n      .onSuccess((state, action) => {\n        state.users[id] = action.response;\n      });\n  });\n\n  protected initialState(): Data {\n    return {\n      counter: 0,\n      users: {},\n    };\n  }\n}\n\nexport const testModel = new TestModel();\n```\n\n# 执行Action\n```typescript\ntestModel.plus();\ntestModel.plus(2);\n\ntestModel.getUser(3);\ntestModel.getUser(5).then(({ response }) => {});\n```\n\n# 在 Hooks 中获取数据\n```typescript jsx\nconst data = testModel.useData(); // { counter: number, users: object }\n\nconst counter = testModel.useData((data) => data.counter); // number\nconst users = testModel.useData((data) => data.users); // object\n\nconst loading = testModel.getUser.useLoading(); // boolean\n```\n\n# 在 connect 中获取数据\n```typescript jsx\ntype ReactProps = ReturnType<typeof mapStateToProps>;\n\nconst mapStateToProps = () => {\n  return {\n    counter: testModel.data.counter, // number\n    users: testModel.data.users, // object\n    loading: testModel.getUser.loading, // boolean\n  };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# 在线运行示例\n* [计数器](https://codesandbox.io/s/redux-model-react-counter-zdgjh)\n* [数据持久化](https://codesandbox.io/s/redux-model-react-persist-uwhy8)\n* [TODO面板](https://codesandbox.io/s/redux-model-react-todo-list-zn4nv)\n* [请求](https://codesandbox.io/s/redux-model-react-request-1ocyn)\n* [请求节流](https://codesandbox.io/s/redux-model-react-request-throttle-77mfy)\n* [任务监听](https://codesandbox.io/s/redux-model-react-listener-p7khk)\n* [任务组合](https://codesandbox.io/s/redux-model-react-compose-42wrc)\n* [子任务](https://codesandbox.io/s/redux-model-react-action-in-action-oewkv)\n\n# 文档\n\n请点击[这里查看文档](https://redux-model.github.io/redux-model)\n\n---------------------\n\n欢迎使用并随时给我建议\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@9.0.0-alpha.4","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-V0RXJCK8sgtHuzpwwMHgSNA1UwFvMHenGK6tRr1NvxMFo36mKqIvlIrMSFhLsMPY5K7z92sUNUUGPlAMqbHlQA==","shasum":"dbf6aacc207f2158058eaa0cd4a44314805d3071","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-9.0.0-alpha.4.tgz","fileCount":40,"unpackedSize":64438,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfgDqdCRA9TVsSAnZWagAAUXIP/RVxvJKpOkzQTKrgKV/B\nxnDC0IsZcTaLCOmNdraprWtoLyjGSV8HR+ZpJMz3jVc/rTkw9GJkt64MS56l\nncbn53xogPT1Xaj4zJOEfqjGp0hwGMAqP1q4KD4cTEl/zY6k5UFKDhMraLOW\nz624Yp0xCmFOHgJa7AoFMkkG+7qgXmBsUTCm4dvmUZPGSZwwmIlbXFZ7LO+y\nNj6TmrGsBhg38l2FB89ucdpF2QgSba+ypLbhMEDn7rjhBHXxBnaA8KDUA9K+\nzEg+uO5FC51nDJvfWG8YYBZGpiTHoOdbqDnlp/nHeY1kpVs8tNMbiaZlW8WC\nnzIrp4Xl0QJAQgAZmZcPzNn3MdWrhEKGl9NmhEdGOBkY5Iq58bjAs6ekxHK6\nZ3ul44/+UstNsPT3KDyJtTVihzzMin0ZeEETfHYC/ESIpX/Vq5TeB6LdrknO\nE7EHdSYasttt5qOMgvBVYiXyjNn13sWXaxeAxgHdX2jdFcd9wvMFw4mpNkfm\nwV+qJu+ogHaxAOm2sB3Ez7IXJzqRl2D3bJmqGj1tiVHqtnRK0tBztsrUgeKa\nW9QQ03Mc3TSv4hxFbysJ82O07SxAzHNTTSqyaTdFGdxigLjveX0UlmjskAgw\nK7xWc1fh3ytLWOc9xcAmf+cfvbLT3B09OxR+MzAQW8f0jwCgi71iEeqcv2/i\nfPic\r\n=f6RH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICWoFdc5sfTxa8RtEH3fGES0U8zJlDqMrChZ+I7T7P5cAiEA4RkNsJ36RezfBWqv/dOn9rcVdd7a97xS8ZQEUhXl0bM="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_9.0.0-alpha.4_1602239133246_0.7784995704666868"},"_hasShrinkwrap":false},"9.0.0-alpha.5":{"name":"@redux-model/taro","version":"9.0.0-alpha.5","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0"},"dependencies":{"@redux-model/core":"9.0.0-alpha.5","@types/react-redux":"7.1.9","promise-listen-catch":"1.0.0","qs":"6.9.4","react-redux":"7.2.1","redux":"4.0.5","tslib":"2.0.2"},"devDependencies":{"@tarojs/taro":"3.0.14","@types/qs":"6.9.3","@types/react":"16.9.43","@types/react-dom":"16.9.8","react":"16.13.1","react-dom":"16.13.1","vue":"2.6.12"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"92c1a803f5338e2b7b0e9ca34cbf8613da8f9347","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\n[English Document](./README-EN.md)\n\nRedux-Model是为了弥补原生Redux繁琐的开发流程，开发者重复劳动效率低下，模板文件导致代码量臃肿，以及因action和reducer文件分散造成代码追踪困难的问题而设计的。\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# 特性\n\n* 深度封装，模块化开发\n* 使用mvvm快速处理reducer\n* **👍真正意义上的Typescript框架，写起来比JS更流畅**\n* 内置http服务，请求action自带loading追踪、数据节流\n* 支持React/Vue Hooks\n* 支持数据持久化\n* 支持[Graphql](https://github.com/redux-model/graphql)请求\n* 支持代码分离\n\n# 安装\n\n### React 或 React-Native\n```bash\nnpm install @redux-model/react\n```\n\n### Taro\n```bash\n# taro 3+\nnpm install @redux-model/taro\n\n# taro 2+\nnpm install @redux-model/taro@6.10.0 @tarojs/redux\n\n# taro 1+\nnpm install @redux-model/taro@6.9.5 @tarojs/redux\n```\n\n### Vue\n```bash\n# vue 3+\nnpm install @redux-model/vue\n\n# vue 2+\nnpm install @redux-model/vue@6.9.2\n```\n\n# 定义模型\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n  plus = this.action((state, step: number = 1) => {\n    state.counter += step;\n  });\n\n  getUser = $api.action((id: number) => {\n    return this\n      .get<Response>(`/api/users/${id}`)\n      .onSuccess((state, action) => {\n        state.users[id] = action.response;\n      });\n  });\n\n  protected initialState(): Data {\n    return {\n      counter: 0,\n      users: {},\n    };\n  }\n}\n\nexport const testModel = new TestModel();\n```\n\n# 执行Action\n```typescript\ntestModel.plus();\ntestModel.plus(2);\n\ntestModel.getUser(3);\ntestModel.getUser(5).then(({ response }) => {});\n```\n\n# 在 Hooks 中获取数据\n```typescript jsx\nconst data = testModel.useData(); // { counter: number, users: object }\n\nconst counter = testModel.useData((data) => data.counter); // number\nconst users = testModel.useData((data) => data.users); // object\n\nconst loading = testModel.getUser.useLoading(); // boolean\n```\n\n# 在 connect 中获取数据\n```typescript jsx\ntype ReactProps = ReturnType<typeof mapStateToProps>;\n\nconst mapStateToProps = () => {\n  return {\n    counter: testModel.data.counter, // number\n    users: testModel.data.users, // object\n    loading: testModel.getUser.loading, // boolean\n  };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# 在线运行示例\n* [计数器](https://codesandbox.io/s/redux-model-react-counter-zdgjh)\n* [数据持久化](https://codesandbox.io/s/redux-model-react-persist-uwhy8)\n* [TODO面板](https://codesandbox.io/s/redux-model-react-todo-list-zn4nv)\n* [请求](https://codesandbox.io/s/redux-model-react-request-1ocyn)\n* [请求节流](https://codesandbox.io/s/redux-model-react-request-throttle-77mfy)\n* [任务监听](https://codesandbox.io/s/redux-model-react-listener-p7khk)\n* [任务组合](https://codesandbox.io/s/redux-model-react-compose-42wrc)\n* [子任务](https://codesandbox.io/s/redux-model-react-action-in-action-oewkv)\n\n# 文档\n\n请点击[这里查看文档](https://redux-model.github.io/redux-model)\n\n---------------------\n\n欢迎使用并随时给我建议\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@9.0.0-alpha.5","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-G/f6tfTJCHf/ZB7gYG2nxuxYsgTL5wXuC/v1tijC8NFTqXqc/T8X8y2ZQFHjSpIfnmxOOVQSjAYCJ4VFjm8yLQ==","shasum":"28e0bbed7907cfbf6c77f7a93f770adb790c77db","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-9.0.0-alpha.5.tgz","fileCount":44,"unpackedSize":70164,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfgl/ACRA9TVsSAnZWagAAD5EP/0pot36ujA+3mbOha5Zd\n1QvudQ4SrOC1tK+cHaKSc8qfg488vJwurmxTOIav9PnNKiW9OUcrlzglLAMq\nS7P8aAgdaJCur5UdTyLKSz3FGO1fFZQ8yvunpTMvZvVb24jhx7ChiSLEf8LF\nknPgc9EbCNMSTkofr0wkfuXIKR1fM6kQNBJmD/K9nwHzkkKmd2YCpYdnTxQ4\nFL8q753+XWAgtsxJQHl9ZEBL9mApevAcoQY/ghr6DzcNIFHpyCxs+VG+OPnl\ng4o6f+6UVn5qKlP77qszXDN50F2HnRUQeIXutxQV1QZlK3q8cuq3/uh3+lPt\n5Vzu+Y76Cg977e2iHZ0v9YZ9R3ZptlHpL4+FDgv9rYyomQ2qdFzVXWdI+4vj\n0kTmfaKw+fBTS27AVYPdlwgA879saMRVuPir2hIps0EHWJRatI+xc6se+8SG\ncB6GoHqAGBoUOz3rRnDBi4W4hkxLWn2l2Vph6g5yPv+iLQjBJXdxrdvMQXLu\nAxRuPjlxZn8K35cCgsjMa7pb0u29qsZlz8eaWTOA09D69WfbygEgZD88+TMg\nIQwIs66v9eV67Yli2L7X6aBnvPhq+V3W5gc1uBxwqnXVbZwEMJdY73OH3uNh\nPEt4FArV3qBJic+FcGtB5Y1R6kHCEO9DXO4Vj8UXF23Cn0jVonUanfLTZCJj\n6hzt\r\n=G2Ie\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDdVVGVRYPa2GU9f+tGIsy/5mVKrBSdhuEP4vMkuhdI5AIgVgGdnwWQiXZ+ChN6HgCcbeaKvhMCMkysazox5J7N40E="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_9.0.0-alpha.5_1602379712352_0.9326601546766868"},"_hasShrinkwrap":false},"9.0.0":{"name":"@redux-model/taro","version":"9.0.0","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0"},"dependencies":{"@redux-model/core":"9.0.0","@types/react-redux":"7.1.9","promise-listen-catch":"1.0.0","qs":"6.9.4","react-redux":"7.2.1","redux":"4.0.5","tslib":"2.0.3"},"devDependencies":{"@tarojs/taro":"3.0.14","@types/qs":"6.9.3","@types/react":"16.9.43","@types/react-dom":"16.9.8","react":"16.13.1","react-dom":"16.13.1","vue":"2.6.12"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"5ed28ab95a8f32184046d8df52b0862e9119f2ab","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@9.0.0","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-aot3ZohzRzPZzOuEYPq81TTrsHQq+sYgy6SbAmKQBz+UEcqj8EARi6DHxrjz2nMuXlS9Rj8RKCzRax+iW0ER2A==","shasum":"c625770e5f1b2baea4dcda2590a94ee255414847","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-9.0.0.tgz","fileCount":44,"unpackedSize":70291,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkF6nCRA9TVsSAnZWagAAFuEP/3Rgziu2Qq5nylGN41Sl\n9l7F3mlSHGPfLp86fJ+t/HCWVJIm39rzMgRTpZ19ltiTalBIsNIrxTdsf4od\nugppFm3Fv5xQ6nMrKs/UX7XKiEpsvmmwEEQUcMzw3wLE/AneNod/Kvq3zF0Y\nDiaf5ApajadPhevut0y4KVIaO88w506wduI6MaUZYRJhHszpbgmTIy9Xneg0\nHnvh/ND3DNK1RMwOXW0UNNX0dxH8525hurANr7FfhZ28AKqnzmX0bx0MkLrs\nf5mkZ2JD22hrsY6wpivCEZcY5E7mfBc7+JCyA/jpku/wxnTZwndfuuBW2XHR\ni3MBPVWi2uHvnzuqtCIkNWTNpmFBrFsfD7SExwXVt8OWOWd7WPcK7Tf9Pk8j\nULBPC0k6e6m8SEWL+FJXoksvA8Li4yTxz54wnT9acDL01UE0Ji0bat4h9Mu0\nbKzS8Degv0gJHR51ku55hRVrOg6UWop2Z/73Cn/9fL1LO6Dp3pMKk3dI9Ms7\nBNmhyzv8U4nMUnZ7NaiWnt0smOtGs58RarCdsHgCQFyCqNL2D1BeCn+GXOCG\nPqow3dHanRf9/MPgcsRm1eYcs3ftBPf2cnnDBMc/gQeEH6Rzage5DmakWmjl\n1EKxpdW/FZ5vbBMjv7ysIok7/1h78aNYjxtl4rQ0XVmlaVl+yhX45UNmw2C9\nOpKF\r\n=Ras9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCtfrVwBedERAVB5sSG6HkFNCw7u2JYzZ/Jtw+xgucR3QIgZ1xPdCc4+cmpT/493JzOtmGGWTsfzVMIwFWLfnaeVSE="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_9.0.0_1603296935428_0.8874156653362597"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"9.0.1":{"name":"@redux-model/taro","version":"9.0.1","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0"},"dependencies":{"@redux-model/core":"9.0.1","@types/react-redux":"7.1.9","promise-listen-catch":"1.0.0","qs":"6.9.4","react-redux":"7.2.1","redux":"4.0.5","tslib":"2.0.3"},"devDependencies":{"@tarojs/taro":"3.0.14","@types/qs":"6.9.3","@types/react":"16.9.43","@types/react-dom":"16.9.8","react":"16.13.1","react-dom":"16.13.1","vue":"2.6.12"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"64cdc5e38022304ec8f545f8bc8b9b8c2e2829a6","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@9.0.1","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-zDcYIU2mGM2scwg0BtA4vhjqn0FH7Knp17nfp6uvEfnev26bAR2sWSPbHI6RWM+YjlTS4lRaZyr9vDQnu/ebKw==","shasum":"8a6debd251a433184041e9933ffd910b6db9f948","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-9.0.1.tgz","fileCount":44,"unpackedSize":70356,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfnjX4CRA9TVsSAnZWagAAU7gP/R8QfLakIcnovNuRuviq\nrwZQQHhrLmQva67OGGAhdgnEvPAIUAp/Fr3X+X0Z3t3F9HRURdFoKytVLUrp\n0j8hFOOaSv+oNWynDeV3kw3SnvgzYwuvru89kxXAvFOX319oRF0iap0fcnpY\nCni8iJm0bdgGEj/ZqUMalHYq42FxLCM+uC0WZfBnKkufZhZnpObnYV3gMEFe\niHQHNfoaAVu9xEWrx8OXZxWqDI6YCBHxlVXaPUMRO8aKJQNiW96eBt/MppZB\nXh27dULW0yMVsaK1t5vnKslvGCKK2Mb11XJmW1mKMSHe8PGABYxZLDgIE7ZY\nvjh9JO3XC36ok949wo0gEJ/ZKnlCiPlobpgJdhM2nyPqEV/6Thlf550QpjP+\nWkaNjn5Vb1M0UjFikQEYMUZorSJSrwF9xnpiJ9+otBt0MH83aYVNgbLXlQ1X\n4AFL2wV93qTz+dx/LOYaQBtdlf0Whk5eaLe8ws7XYnBCk6LDMSsd+2iBC0vQ\n1niirdO2YIhaYQuvmvo8t1T8Mwmpkm1sq7ykxuvuNkz3PxNWJNLNxML1eYBh\nfODHs6G3CERmDeO70I+HuxhikOJj3x0YbJkgE62t86s5cXuhK8h4CJRNgW3B\nh9ozWSeySEvMn1hVguAVRloMfLtohj3g8pLov3iWi0XpaPuVQPX81Fvl9Jc2\nZj8d\r\n=Tdfw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBsPXmwh1G9M64lm4qGLr/DOyotRn2dienFu18hdTz/uAiEAzduEXHhaNhnIUUx7bff7IFN7Dm3w+U6+vlLv6emO98M="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_9.0.1_1604204023571_0.5852025445100664"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"9.0.2":{"name":"@redux-model/taro","version":"9.0.2","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0"},"dependencies":{"@redux-model/core":"9.0.2","@types/react-redux":"7.1.9","promise-listen-catch":"1.0.0","qs":"6.9.4","react-redux":"7.2.1","redux":"4.0.5","tslib":"2.0.3"},"devDependencies":{"@tarojs/taro":"3.0.14","@types/qs":"6.9.3","@types/react":"16.9.43","@types/react-dom":"16.9.8","react":"16.13.1","react-dom":"16.13.1","vue":"2.6.12"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"fbaef786fc41954f9fe6f9dff0e1c81d1c985a4f","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@9.0.2","_nodeVersion":"12.17.0","_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (darwin)","dist":{"integrity":"sha512-gzcNPys3h0Zf3AlR0eF15aYqS3d7FbEnHKVveIBoOQa9j01qC/4n0GDRkAJcsurq+8Qve8czxwZ4ALG7Sj7Fiw==","shasum":"a46496203401b51a78b705891a525fcc138b2ffd","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-9.0.2.tgz","fileCount":44,"unpackedSize":70402,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfn3mcCRA9TVsSAnZWagAARwsQAJLsfQx1Hv6JUYadd1OJ\nteAch+6xZWB8hLDkwDV+osAxMks7bWgAbldnshciWwg11ALuTarSzwkRfmnh\numpThQfwjiqpzQ4B8agOVn1cd8z/hIJ9+ezyd22a2XfcJO9PSaxc6mPPsamb\nzjLK/ADWD/TO0Ewj3Oxa6h0Ef94HtoEaPo2+Mn51ov3ZgY4rtr8U5IqAu/BB\nHUl63BQyX6dwxk0w1ObQi7bLzN0rL+r54Sqdi3PuoRx2awvrzpjbgEz9wR/v\nE1UmpMst1InSrUuyV09vMS8dLSnHAX9SmiZLpP2U5bDjHz0Vs7uvDL98t7c3\nkzR8s9KiBrKlPiT0f9BqBB7sNwwmCnh786WkZxU+ALcEa0et2UB2NLgjtXNF\nK3mK60u2+UZoFPrBgmEiZDHrcFBmiK/HC16yH7kYsZnz2E3FWqK46aAfpFmp\nWBVdzH5uWFixnzKOHoC5tzxL4VNDVl3uJIX1rEN0UJZX5RBjlN3w9lsUUYWo\n5+ExVXLkHvNbKiYRP5OnPjlbG2nh/IV+8dfqx8v6iaYc92UQGbZHX+sDT0N6\n4RgBTRuwUf4ty7Ij0NrZKuC/5uPE92HGi/GXibFCZubq7V31RMIcwNE34k/t\nx0DjzJo46AGQxE9t0IASyDm8op8IIg4Fib+/2iIT29VMqTBHiZxj9K9z7XpK\n/OCl\r\n=jRuB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHBpY14QrYoEuldq35OZw9v4CFGUoT0+8+uzwpC9eRZHAiEAvYy2GIAJJgClPf1aXX3dYwdu/QAAVnCjNjv1YSaVYdU="}]},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_9.0.2_1604286875666_0.9014145614556677"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"9.0.3":{"name":"@redux-model/taro","version":"9.0.3","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0"},"dependencies":{"@redux-model/core":"9.0.3","@types/react-redux":"7.1.11","promise-listen-catch":"1.0.0","qs":"6.9.4","react-redux":"7.2.2","redux":"4.0.5","tslib":"2.0.3"},"devDependencies":{"@tarojs/taro":"3.0.14","@types/qs":"6.9.3","@types/react":"16.9.43","@types/react-dom":"16.9.8","react":"16.13.1","react-dom":"16.13.1","vue":"2.6.12"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"5b8f3c52f0e40e52c7405eaa50b16a3553bfe33d","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@9.0.3","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.22.1/node@v10.23.0+x64 (darwin)","dist":{"integrity":"sha512-u7QeiWM+3RUrLKz9DnHc/1R5uhP/MANuGv/8ZEk1xblS8k4f9Fcpl39FZdGj/zwlBZR+/L44Si2S0xJK9OIATA==","shasum":"4393d57732c9d9f88eff4945878feaa69ac8dacc","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-9.0.3.tgz","fileCount":44,"unpackedSize":71022,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfzwzjCRA9TVsSAnZWagAANfUP/21htK+3uIA/Im+/UONK\n2edsSpnSoV1kWPSe5OgRN3xUT0MYpm/Netl3rqbk/kUkr8mveOjG5Mwah/O1\ncGWOhyE2eyPhbNNqRwe92680r4SSEkIndZNPKoqfNKwIR7P5e6touvBHm02W\nVY6tWO+ESrenEaR39m56XUPBEbxFUIPxAAU+O9YoaU8bVx/XNLYQjIlvZIYF\nWyYMwlX9yUbT3eDlvwd16t+DhSJsvkjEuZO7xoOHX8o9wLJsouinY8kKXqNk\nMW+MZCq7+0OIlwxNOqACLY5LA8vUgyexOEKKejjONuExxUEwolLzVw8LLM8/\nk/vdSCQa8ZP00ig2KU5C6dOZntwtGo5xF2E9ytHMVSIP+A675mfzCL/HCbuX\nPdKynB/pfFVoBkiP6PlNPi5B2ZfRf/3J2fG35WiJqsuX9wXYF2khVeCWY/Pg\nME3Wg3KB5jBIMdDbTEb6+diLz2VHOK0YQ6wl36ek37LPz7TreUxNpzzF5T+4\nw/XZ3cUXGWRgxMZhiNSMIG4DTcCTiQwGO59IBX9gDCOuBa7CBtNu0ZyqF0mA\n/ZOMK4+YUYQB1LiTZZAD3zCcs1H5BymaJFNKr77GDxxYVT4kvbc2CmrOozLz\n4VMGBi+/MKBIJT6/Ci3DRHeBSDcs2Mm2ThVjKYelv/e5YUJz+SMEJcd8WPG+\nNsso\r\n=0dkt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDYhX9uuZ/l5K6I3G+sC8W/xiXSfaRm/BcEhbuBvi3KuAiEAwcSK5jMIKLYKVVWQ977iqkTuQLSXjQqTwm/4OhEJoC0="}]},"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_9.0.3_1607404771277_0.7245480829839845"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"9.0.4":{"name":"@redux-model/taro","version":"9.0.4","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0"},"dependencies":{"@redux-model/core":"9.0.4","@types/react-redux":"7.1.11","promise-listen-catch":"1.0.0","qs":"6.9.4","react-redux":"7.2.2","redux":"4.0.5","tslib":"2.0.3"},"devDependencies":{"@tarojs/taro":"3.0.14","@types/qs":"6.9.3","@types/react":"16.9.43","@types/react-dom":"16.9.8","react":"16.13.1","react-dom":"16.13.1","vue":"2.6.12"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"0a5635e444586acb0975b62ec6b7ebdf054d3c54","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@9.0.4","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.22.1/node@v10.23.0+x64 (darwin)","dist":{"integrity":"sha512-DL1eDXOarHUqsoLjWhcEN+rys3nHjp205sAHDITP8aHbwQ84J4eCC7LlaaffQT1IaR8hgB5IIGzTCeBn9cEZZw==","shasum":"68282833e8837d64ff2a999d03dc727abbaca78a","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-9.0.4.tgz","fileCount":44,"unpackedSize":71087,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf10KACRA9TVsSAnZWagAAoKgP/14HHDKfincwDaIqZbtl\n6r+4Ar3Dw0+Do/HqU7FC3hjHpa/bsL5RDbpudiAFxGgdZfYfrgtjsHaLTRgz\nW21Z10rzq97vlp/PSBKd42D5mfieeheQkqZEHLwl88M3u6H0PfP+z2O9y2yu\ndEhi2820bWJkU6rFCgE/4nvQAVFcbUbmvhAbTHnwFA9IkNKo+y/cvXCiil4+\nQbFAgQB9qpFRHO0Mm/YEhKuZXAfB2qCJ9llS5qCp8h/WMso3F7zQ8XgaosTa\ngtozEABOHl48NNc2wWrIGTGX5XG11QY7zFZxsNo/qGGlzythEa0ppZJTvJOR\nsfrUdiZHA5gWCBpP3iJ4+J6MLiJ1yzNzcDCcbtx3zduBp5DYQ1WoSFz2K81e\n0Lrzw8bEZ5vVrHfkqfMwTjYZQ7b/N8tHNPia5WHdLDLd+u8jv0YS75vc0EtM\n19bOZlLjzXKdPyDvMiYXgznj3weVa33YiLRaylOorhIWMUsrR81DHIFVcVII\nXx/W/Nl0hmaAlvu4OUhk9ykUZdrTTOb78OPGsNn7kMXKX1aQp5FILNMRXl4g\nVCXwt1v96Am86laUW/XA3qfTerIsBHu0wrOJJIdvts19hRjZNnaeLAJfEI3+\nDFaD6tHUcpsHr59aqvmSgXlVAhKxoIw3E4ue5aByQHnzkKBjFMB4zRAFYBbJ\nl1xa\r\n=P7V3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICbb12hXwKYrJn33Fojg9lz4tHd61I576oahBjAX3CcNAiEAmeYafOD1HedNs7UhkvZvIrf1eaIFMJoig8W1kRlXwBw="}]},"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_9.0.4_1607942783624_0.3371455209820493"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"9.1.0-alpha.0":{"name":"@redux-model/taro","version":"9.1.0-alpha.0","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0"},"dependencies":{"@redux-model/core":"9.1.0-alpha.0","@types/react-redux":"7.1.11","promise-listen-catch":"1.0.0","qs":"6.9.4","react-redux":"7.2.2","redux":"4.0.5","tslib":"2.0.3"},"devDependencies":{"@tarojs/taro":"3.0.14","@types/qs":"6.9.3","@types/react":"16.9.43","@types/react-dom":"16.9.8","react":"16.13.1","react-dom":"16.13.1","vue":"2.6.12"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"c090b08f4b5b57a97c9126e84a517e4aeb249457","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\n[English Document](./README-EN.md)\n\nRedux-Model是为了弥补原生Redux繁琐的开发流程，开发者重复劳动效率低下，模板文件导致代码量臃肿，以及因action和reducer文件分散造成代码追踪困难的问题而设计的。\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# 特性\n\n* 深度封装，模块化开发\n* 使用mvvm快速处理reducer\n* **👍真正意义上的Typescript框架，写起来比JS更流畅**\n* 内置http服务，请求action自带loading追踪、数据节流\n* 支持React/Vue Hooks\n* 支持数据持久化\n* 支持[Graphql](https://github.com/redux-model/graphql)请求\n* 支持代码分离\n\n# 安装\n\n### React 或 React-Native\n```bash\nnpm install @redux-model/react\n```\n\n### Taro\n```bash\n# taro 3+\nnpm install @redux-model/taro\n\n# taro 2+\nnpm install @redux-model/taro@6.10.0 @tarojs/redux\n\n# taro 1+\nnpm install @redux-model/taro@6.9.5 @tarojs/redux\n```\n\n### Vue\n```bash\n# vue 3+\nnpm install @redux-model/vue\n\n# vue 2+\nnpm install @redux-model/vue@6.9.2\n```\n\n# 定义模型\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n  plus = this.action((state, step: number = 1) => {\n    state.counter += step;\n  });\n\n  getUser = $api.action((id: number) => {\n    return this\n      .get<Response>(`/api/users/${id}`)\n      .onSuccess((state, action) => {\n        state.users[id] = action.response;\n      });\n  });\n\n  protected initialState(): Data {\n    return {\n      counter: 0,\n      users: {},\n    };\n  }\n}\n\nexport const testModel = new TestModel();\n```\n\n# 执行Action\n```typescript\ntestModel.plus();\ntestModel.plus(2);\n\ntestModel.getUser(3);\ntestModel.getUser(5).then(({ response }) => {});\n```\n\n# 在 Hooks 中获取数据\n```typescript jsx\nconst data = testModel.useData(); // { counter: number, users: object }\n\nconst counter = testModel.useData((data) => data.counter); // number\nconst users = testModel.useData((data) => data.users); // object\n\nconst loading = testModel.getUser.useLoading(); // boolean\n```\n\n# 在 connect 中获取数据\n```typescript jsx\ntype ReactProps = ReturnType<typeof mapStateToProps>;\n\nconst mapStateToProps = () => {\n  return {\n    counter: testModel.data.counter, // number\n    users: testModel.data.users, // object\n    loading: testModel.getUser.loading, // boolean\n  };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# 在线运行示例\n* [计数器](https://codesandbox.io/s/redux-model-react-counter-zdgjh)\n* [数据持久化](https://codesandbox.io/s/redux-model-react-persist-uwhy8)\n* [TODO面板](https://codesandbox.io/s/redux-model-react-todo-list-zn4nv)\n* [请求](https://codesandbox.io/s/redux-model-react-request-1ocyn)\n* [请求节流](https://codesandbox.io/s/redux-model-react-request-throttle-77mfy)\n* [任务监听](https://codesandbox.io/s/redux-model-react-listener-p7khk)\n* [任务组合](https://codesandbox.io/s/redux-model-react-compose-42wrc)\n* [子任务](https://codesandbox.io/s/redux-model-react-action-in-action-oewkv)\n\n# 文档\n\n请点击[这里查看文档](https://redux-model.github.io/redux-model)\n\n# 本地开发\n* git clone 你fork的仓库\n* yarn install && yarn bootstrap\n\n执行测试用例请使用 `yarn test` <br>\n修改在线文档请使用 `yarn docs`\n\n---------------------\n\n欢迎使用并随时给我建议\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@9.1.0-alpha.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.22.1/node@v10.23.0+x64 (darwin)","dist":{"integrity":"sha512-g5BhZjmQTwlpcUvsV1IWECE0PHDPVmsN56uLo9tA0lWZZQJkQ8Ai3hyUxIe9XzuG3LJWKsz4XOFRUzjrgRiNNw==","shasum":"9aec00a8831f16da7a4c19e4bd5a05d4f8910e5f","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-9.1.0-alpha.0.tgz","fileCount":48,"unpackedSize":73059,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4XsuCRA9TVsSAnZWagAAF2wP/Rkb+UBtsdAHOc3Lyk4+\nmUTyKrXQ9YT4a3fcw/BNhZgj2vXbW47ff0AjCnBfOimzksp4aCO2BqnGwWWA\nbyCnhPW70yxccyV9S5Tjn+wgqhez6T9srlE0JyZDhbMauRHfg55ahT0Ii919\n68Fx30z78bZPmdsDIFALSNUgErnx/vpcNRRYlDhbpgLDDXLx855Vzx2z+gLC\njpo743TxL/gmr6eXXB2J/+/iJzE6vWd2wHaMDISoCq8RJ5X1o7GemgIvBcqr\nxuiH0V5U5+3gWZtu5Bg7YJdbfKedIEy96QGs5fHF+s/6qh9q6f4oxnsuw1xR\nj45L48IuQDPKSSIz0lYO+RjMOQcbzXTm0i/ST4JGuJgFV+T6EWWShVwjqauG\nu3nNfKRwAmfzNQVjY3ze1uXYcUqoJEtHCQDnVrqlP/LRcHLvUfqnQadfFN5y\nzUhFeOddkw+nID9xCjSlHx3ly0EJ81LtEi+myXAI01XnGoUslQuwMcyAA6cd\nfGGkRLLN+A5UI9HQ0VUZxN59ZALHwcwkVlMmTi60CG7IZ0P7XA8eT3DsY4aN\nCXcb24ss3iyiTniLYRV30EtttcvTJ2s3B/kQx/ShA27/uF8sVRt4l29d+wAA\n1c4qbKyBzXBJs5tRnCKuPE4ctQRAPna4MUPrY0DI40sJFPpMvePQLVm9fCTl\nRrLR\r\n=YT5n\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCr5jmrIf/2czxhvys2kQKNLtvZdUGPV5sR0KXPAOyADwIgHFyH3PqFIoCzrXetpOaRVja9Yuc6oOO1z2Eh8BDAbn8="}]},"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_9.1.0-alpha.0_1608612654391_0.7169390984534507"},"_hasShrinkwrap":false},"9.1.0-alpha.1":{"name":"@redux-model/taro","version":"9.1.0-alpha.1","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0"},"dependencies":{"@redux-model/core":"9.1.0-alpha.0","@types/react-redux":"7.1.11","promise-listen-catch":"1.0.0","qs":"6.9.4","react-redux":"7.2.2","redux":"4.0.5","tslib":"2.0.3"},"devDependencies":{"@tarojs/taro":"3.0.14","@types/qs":"6.9.3","@types/react":"16.9.43","@types/react-dom":"16.9.8","react":"16.13.1","react-dom":"16.13.1","vue":"2.6.12"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"13f20b74db312d0a03493240f8ca3ac66e5f72c4","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\n[English Document](./README-EN.md)\n\nRedux-Model是为了弥补原生Redux繁琐的开发流程，开发者重复劳动效率低下，模板文件导致代码量臃肿，以及因action和reducer文件分散造成代码追踪困难的问题而设计的。\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# 特性\n\n* 深度封装，模块化开发\n* 使用mvvm快速处理reducer\n* **👍真正意义上的Typescript框架，写起来比JS更流畅**\n* 内置http服务，请求action自带loading追踪、数据节流\n* 支持React/Vue Hooks\n* 支持数据持久化\n* 支持[Graphql](https://github.com/redux-model/graphql)请求\n* 支持代码分离\n\n# 安装\n\n### React 或 React-Native\n```bash\nnpm install @redux-model/react\n```\n\n### Taro\n```bash\n# taro 3+\nnpm install @redux-model/taro\n\n# taro 2+\nnpm install @redux-model/taro@6.10.0 @tarojs/redux\n\n# taro 1+\nnpm install @redux-model/taro@6.9.5 @tarojs/redux\n```\n\n### Vue\n```bash\n# vue 3+\nnpm install @redux-model/vue\n\n# vue 2+\nnpm install @redux-model/vue@6.9.2\n```\n\n# 定义模型\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n  plus = this.action((state, step: number = 1) => {\n    state.counter += step;\n  });\n\n  getUser = $api.action((id: number) => {\n    return this\n      .get<Response>(`/api/users/${id}`)\n      .onSuccess((state, action) => {\n        state.users[id] = action.response;\n      });\n  });\n\n  protected initialState(): Data {\n    return {\n      counter: 0,\n      users: {},\n    };\n  }\n}\n\nexport const testModel = new TestModel();\n```\n\n# 执行Action\n```typescript\ntestModel.plus();\ntestModel.plus(2);\n\ntestModel.getUser(3);\ntestModel.getUser(5).then(({ response }) => {});\n```\n\n# 在 Hooks 中获取数据\n```typescript jsx\nconst data = testModel.useData(); // { counter: number, users: object }\n\nconst counter = testModel.useData((data) => data.counter); // number\nconst users = testModel.useData((data) => data.users); // object\n\nconst loading = testModel.getUser.useLoading(); // boolean\n```\n\n# 在 connect 中获取数据\n```typescript jsx\ntype ReactProps = ReturnType<typeof mapStateToProps>;\n\nconst mapStateToProps = () => {\n  return {\n    counter: testModel.data.counter, // number\n    users: testModel.data.users, // object\n    loading: testModel.getUser.loading, // boolean\n  };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# 在线运行示例\n* [计数器](https://codesandbox.io/s/redux-model-react-counter-zdgjh)\n* [数据持久化](https://codesandbox.io/s/redux-model-react-persist-uwhy8)\n* [TODO面板](https://codesandbox.io/s/redux-model-react-todo-list-zn4nv)\n* [请求](https://codesandbox.io/s/redux-model-react-request-1ocyn)\n* [请求节流](https://codesandbox.io/s/redux-model-react-request-throttle-77mfy)\n* [任务监听](https://codesandbox.io/s/redux-model-react-listener-p7khk)\n* [任务组合](https://codesandbox.io/s/redux-model-react-compose-42wrc)\n* [子任务](https://codesandbox.io/s/redux-model-react-action-in-action-oewkv)\n\n# 文档\n\n请点击[这里查看文档](https://redux-model.github.io/redux-model)\n\n# 本地开发\n* git clone 你fork的仓库\n* yarn install && yarn bootstrap\n\n执行测试用例请使用 `yarn test` <br>\n修改在线文档请使用 `yarn docs`\n\n---------------------\n\n欢迎使用并随时给我建议\n","readmeFilename":"README.md","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@9.1.0-alpha.1","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.22.1/node@v10.23.0+x64 (darwin)","dist":{"integrity":"sha512-ovNKXcmKEyuEOf9kiodaMc59aTmKCE5qe4xq3Hy+Ed7f1qFDKqRdvT6uzeCq/GyGvzvQa9hY1JBJcEtAdtQirQ==","shasum":"9ae32d4aa72285a179a578cf5c255514f5324192","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-9.1.0-alpha.1.tgz","fileCount":48,"unpackedSize":73435,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4XwJCRA9TVsSAnZWagAA4XAP/RPJBp/GYTT1jfoTCsnV\nghmmCZaCuHYuhv4ePWLBljuxWg0wJLuOQfd7WOMIZUJWuLkGN5ftgJNHR6kX\n/yb9vvr6FeBj7HuU1uBYqUmjQpGa8JYklbjy3VhjuSaNYBBzqXc1p7wawiph\ntbEYcO0194GV0KxhL7S5Xegb4LSIVTpPCM5PEk4bl7F4h5WFBNiLY4g4fTDF\nFI3j95i1JZ1KWwCOMuReX9oLAxot7Ia3FaEFkM5JzF50b7Dl+dEDc7qSc3iY\nMT9i/y9SqUlLXnQ1KW/hrf1ZD66w5yw3e38swXxaAmGnONzjVfC1YqE1C6E4\n82QOCewKfhVCo0rfP0qnoRI2pPsR7pmKwoiG7t8BgOIYz70vQSv+L9g0g+cr\nbi4sVV8s1StCQzMGafhiLcD71n5tWTxg/ThRnv8lC1Z44VFP5kx997kayY2a\nav/ZACdDBlk1EDIc2yHP6br8fvXpd5goo6cJPG6KfxE2p10YjYGyXWrzGgnO\nzkYsLkUbtdyMBu5miQvPXtIRCngEbLwU6ODjs06bvEcgDwCjIT4G/zv3SWC1\nQaCnWQmsPcSOO4ABFcj6VhLDeJ0JFRFVgxnD5wasPkKAJyQYgg4qDDoDHaUh\ne3Vak9SAq0vnGZxnKSkMsix4DjRzIJ1CkYRbwNStWJGC+5fUQ5C5Xo0VV9td\nBFVU\r\n=haI8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB57V3XBCNDMn0xoLRFR05HAKp9v0guZ+JCxKJRyRaZ7AiEAve1pwUc/S5qYj7Sab3opCUl82LaduVkzX+c5vjy4jO8="}]},"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_9.1.0-alpha.1_1608612872971_0.12266220125170935"},"_hasShrinkwrap":false},"9.0.5":{"name":"@redux-model/taro","version":"9.0.5","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0"},"dependencies":{"@redux-model/core":"9.0.5","@types/react-redux":"7.1.11","promise-listen-catch":"1.0.0","qs":"6.9.4","react-redux":"7.2.2","redux":"4.0.5","tslib":"2.0.3"},"devDependencies":{"@tarojs/taro":"3.0.14","@types/qs":"6.9.3","@types/react":"16.9.43","@types/react-dom":"16.9.8","react":"16.13.1","react-dom":"16.13.1","vue":"2.6.12"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"cb39d74a61a5f82a310b9003b9d9b75a129565bd","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@9.0.5","_nodeVersion":"14.16.1","_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (darwin)","dist":{"integrity":"sha512-eBWwsvITbYhY2ojYHh6tL4y6Vqc8NNUMhAZvun4OpDFjUR5LhxuXQ8yklBIQ54pvgN8n60vNM8YmBQKif6BghA==","shasum":"69c92d6e9bf4b8410ad17e4df1c4fa6699cdd01d","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-9.0.5.tgz","fileCount":44,"unpackedSize":71317,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg8QYJCRA9TVsSAnZWagAA+gcP/iTA2iMxiOqqS9Hb7Shz\n9Yo23SecUFdzOblPapcbs7zDogb4lyse3a6NsHtG6td5xLFzFdybM9/VD2uo\nHYjGC47txnLBNQz2sYNsSy8jfmvOcG9lBEHRO0KZtk7OXQSII7rIrd/HL2ur\nYiRxgOAjZHg6RHyUSbIvT3vbito9nrh3Hj6CU7NYP6dNPeSJ9Hw2eXidFXaj\nWAbnRgB4OKE2EN50SlZObNtj0n7vRjaTPzyxl2WQbRpC7+Gi8Bm7K5hdHxoI\nUHj65h/g/zgKRyJc9bIf2aBsZjqoGBGIC/GYoV3EpDNQrocFCR5wk22Za0RV\nYr9V72pfEQLOKLdSRqBvo2PpkQwsV26/1sJYoq4SK/GMMptdw6GlF+hNGQk4\nSKH9EBynpIQOrq8U7grazfuIIGhg9JrHRrj0gTqizj+mTSym90PX3gqBRtk5\ng/Os6+svrzoFy3AEYBbeU3/m0iBmoq580EYqNL38LX3i6d2IAcp2Blnkg8M0\nF2Gro/iVydNDmzQSF/ojKsl5jYfH4+7oa0xj/M1MmOaYEtRPQf/d/x750TCd\n6EDqxaEVKdnDAFRsZDyhD0Hjs+XkXt+kyLnCYvoKmVucPdYKx3ehwzIvBEEG\nctj3IgT2HFxwD7ufnFdQ5QTb5vnFP4ujuGI2k2CD6DhfiioiwrDQfAyR+01H\nE5v6\r\n=wQtc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCM+hb7e/tiA0nt6gJMmkj86LtSj+dqDxI5Dy+9FbgLhAIhANEodPhBTKJZjL6/FZp3aq23KcdkM1Hh+nrL2mb+G0Co"}]},"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_9.0.5_1626408457424_0.8837195204923236"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"},"9.0.6":{"name":"@redux-model/taro","version":"9.0.6","keywords":["react","redux-model","redux","model","typescript","taro"],"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"license":"MIT","scripts":{"build":"sh ../../scripts/build.sh","prepublishOnly":"yarn run build","tsc":"../../node_modules/.bin/tsc","relink":"bash ../../scripts/relink.sh"},"peerDependencies":{"@tarojs/taro":"^3.0.0"},"dependencies":{"@redux-model/core":"9.0.6","@types/react-redux":"7.1.11","promise-listen-catch":"1.0.0","qs":"6.9.4","react-redux":"7.2.2","redux":"4.0.5","tslib":"2.0.3"},"devDependencies":{"@tarojs/taro":"3.0.14","@types/qs":"6.9.3","@types/react":"16.9.43","@types/react-dom":"16.9.8","react":"16.13.1","react-dom":"16.13.1","vue":"2.6.12"},"publishConfig":{"access":"public","directory":"build"},"gitHead":"1ceb4ebd21ecd4718d2255783a85833390e3ce6c","description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"homepage":"https://github.com/redux-model/redux-model#readme","_id":"@redux-model/taro@9.0.6","_nodeVersion":"14.16.1","_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (darwin)","dist":{"integrity":"sha512-wKo97pDVrNFf7a0nADX4wQ2ssX7v9cYHaG9qRPTqlHk9O4P2sHgnO6p9xQIueMmWSa1ItidvpkqQz0HyPI3KKg==","shasum":"0d29af8cae9098a4896494a62a1f79517050414f","tarball":"https://registry.npmjs.org/@redux-model/taro/-/taro-9.0.6.tgz","fileCount":44,"unpackedSize":71313,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg8STqCRA9TVsSAnZWagAASmsP+wU+rP/l31QrkPZQVnoP\nSy72L91hXJZr+qj9xKGfysB6hWtWb9HcnwBwblVmixBE82ZosBOf19slzHSZ\n8drzLuoqkvT1VwV+7rtnXX6s6DvbnyocjKo+g/9cxskVzswnRmyiNP0FJKDB\ne7werPm0cJYGTAXrljgUzp/qe6KqRmt4spuZh4X2vTD8mdoAx3xQ3E4Da2fk\n7ZPgU+QaVH9x2qU1OSJXis5EwlCQedUW8MqsbWxq8DfVRRfX0J2VKGmT62GA\n4gVWWYeLqe0xMrwd1nEosWO6WD5tz+RvtisK7Njt0cVaok5ZNrWUwXgNBQeR\n3XEesH4lCFtHLAbrpnmmSdN/mX7LltdiBx9+ipPzsXal3B6OhjHsRpIMAy6r\n0ou7yi5zc18+jCuSARf4gKN9CZx8Gy7VregqrBAY/g4W2ospDK91I7vU5Sts\nXdj9BBvXW8AhZj2q6jbS9e38vsAj0bp1fFyXClo9V10v5vKB6WQoJ5wQn/HZ\nEIDhkLQvgwJHjegANJlj0uGk1dYYn7tN4OTOVZTJFmvKFeU4GhviDvCtMoi6\nH/khTbNYvoZfEj2t5jFcCSaYhkEooVfzuExCGdmD7gL/Kv/kfGDTsAggiUBe\nWVeB2cqCsYDKuCWRWFyZxfvuypDXK5nOcOdzfo0VPpcDJyb+7EUwOWx+5zP2\nVJ9o\r\n=7PQ2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDSRJmWydYpJm5rdizohe1yc3eFOtpUJDwJK/cMTWOhVwIhANpHZdNWChL1RcTWnNRZDxA213sAt4QyFtumIR/efgho"}]},"_npmUser":{"name":"fwh1990","email":"531362022@qq.com"},"directories":{},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/taro_9.0.6_1626416362133_0.36285262870192714"},"_hasShrinkwrap":false,"deprecated":"Move to https://github.com/foca-js/foca"}},"time":{"created":"2019-07-22T05:01:28.317Z","0.0.1":"2019-07-22T05:01:28.730Z","modified":"2022-04-06T18:59:43.642Z","0.0.2":"2019-07-22T08:04:12.969Z","4.0.0":"2019-07-22T08:20:13.701Z","4.0.1":"2019-07-22T11:14:02.395Z","4.0.2":"2019-07-22T13:05:28.885Z","4.1.0":"2019-07-22T14:02:31.341Z","4.1.1":"2019-07-23T03:07:24.439Z","4.1.2-rc.0":"2019-07-23T12:50:56.320Z","4.1.2-rc.1":"2019-07-23T13:39:51.757Z","4.1.2-rc.2":"2019-07-23T13:42:26.740Z","4.1.2-rc.3":"2019-07-23T13:43:53.238Z","4.1.2":"2019-07-23T13:45:06.687Z","4.1.3":"2019-07-23T13:55:33.965Z","4.1.4-rc.0":"2019-07-24T02:51:39.510Z","4.1.4":"2019-07-24T03:01:54.141Z","4.1.5":"2019-07-24T03:09:40.819Z","4.2.0":"2019-07-24T08:56:09.930Z","4.2.1":"2019-07-24T11:16:03.858Z","4.2.2":"2019-07-25T03:35:45.863Z","4.2.3":"2019-07-25T04:35:54.288Z","4.2.4":"2019-07-26T03:39:03.856Z","4.3.0":"2019-07-27T09:37:50.339Z","4.3.1":"2019-08-09T07:54:10.172Z","5.0.0":"2019-08-16T02:18:25.845Z","5.1.0":"2019-08-16T03:28:09.199Z","5.1.1":"2019-08-16T05:31:31.256Z","5.2.0":"2019-08-18T04:45:45.919Z","5.2.2":"2019-08-18T10:16:08.689Z","5.3.0":"2019-08-21T04:42:03.349Z","5.4.0":"2019-08-21T06:26:21.971Z","5.4.2":"2019-08-23T06:42:42.649Z","5.4.3":"2019-08-23T09:21:57.208Z","5.4.4":"2019-09-03T16:21:55.828Z","5.4.5":"2019-09-05T10:55:59.183Z","5.5.0-rc.0":"2019-09-14T02:14:30.758Z","5.5.0-rc.1":"2019-09-14T04:32:45.166Z","5.5.0":"2019-09-19T04:38:58.380Z","5.5.1":"2019-09-19T07:32:07.962Z","5.6.0":"2019-09-23T10:02:58.600Z","5.7.0":"2019-10-08T08:50:23.706Z","5.10.6":"2019-10-10T10:56:35.889Z","5.10.7":"2019-10-11T12:33:14.419Z","5.11.0":"2019-10-13T01:14:11.245Z","5.12.0":"2019-10-16T01:29:22.459Z","6.0.0":"2019-10-17T08:18:13.548Z","6.1.1":"2019-10-18T02:44:31.010Z","6.1.2":"2019-10-18T04:47:06.783Z","6.1.3":"2019-10-18T09:26:16.679Z","6.2.0":"2019-10-21T08:36:16.242Z","6.3.0":"2019-10-22T07:19:04.543Z","6.4.0":"2019-10-22T10:25:46.684Z","6.4.1":"2019-10-22T13:25:20.962Z","6.4.2":"2019-10-25T14:26:49.983Z","6.4.3":"2019-10-25T15:09:57.965Z","6.5.0":"2019-10-28T07:44:50.854Z","6.5.1":"2019-10-28T08:36:15.252Z","6.5.2":"2019-10-28T09:19:50.358Z","6.5.3":"2019-11-07T10:00:23.143Z","6.5.4":"2019-11-07T10:21:09.288Z","6.5.5":"2019-11-08T02:14:10.936Z","6.5.6":"2019-11-08T02:41:29.281Z","6.5.7":"2019-11-08T03:15:40.479Z","6.5.8":"2019-11-08T03:22:45.286Z","6.5.9-beta.0":"2019-11-08T07:11:52.456Z","6.5.9":"2019-11-08T07:17:00.382Z","6.5.10":"2019-11-08T09:54:26.302Z","6.5.11":"2019-11-13T03:31:07.150Z","6.6.0":"2019-11-15T07:06:37.503Z","6.7.1":"2019-11-25T09:26:50.680Z","6.7.2":"2019-12-10T06:04:34.402Z","6.7.3":"2019-12-10T09:14:34.936Z","6.7.5":"2019-12-25T02:08:20.275Z","6.7.6":"2019-12-25T02:37:59.321Z","6.7.7":"2019-12-25T02:54:01.607Z","6.7.8-beta.0":"2019-12-25T03:47:07.622Z","6.7.8-beta.1":"2019-12-25T04:40:10.944Z","6.7.8-beta.2":"2019-12-25T04:44:45.110Z","6.7.8-beta.3":"2019-12-25T04:56:50.876Z","6.7.8":"2019-12-25T05:29:28.388Z","6.7.9":"2019-12-26T05:15:29.394Z","6.7.10":"2020-01-03T11:03:41.119Z","6.8.0":"2020-01-07T12:04:44.903Z","6.8.1":"2020-01-09T03:28:17.388Z","6.8.2":"2020-01-09T08:42:28.154Z","6.8.3":"2020-02-19T15:12:58.356Z","6.9.0":"2020-04-08T10:07:33.638Z","6.9.2":"2020-05-11T06:31:30.841Z","7.0.0-alpha.1":"2020-07-14T06:41:57.974Z","7.0.0-alpha.4":"2020-07-14T06:53:27.249Z","7.0.0-alpha.6":"2020-07-14T07:13:22.988Z","7.0.0-alpha.7":"2020-07-15T17:02:08.685Z","7.0.0-beta.0":"2020-07-16T03:53:54.312Z","7.0.0-beta.2":"2020-07-16T10:27:06.645Z","7.0.0-beta.3":"2020-07-16T10:59:11.398Z","7.0.0-beta.4":"2020-07-16T12:49:33.962Z","7.0.0-beta.5":"2020-07-16T14:09:18.429Z","7.0.0-beta.6":"2020-07-16T14:49:32.180Z","7.0.0-beta.7":"2020-07-16T16:12:20.251Z","7.0.0-beta.9":"2020-07-17T14:29:41.265Z","7.0.0-beta.10":"2020-07-18T01:59:37.226Z","7.0.0-beta.11":"2020-07-18T02:34:19.154Z","7.0.0-beta.12":"2020-07-18T02:44:07.478Z","7.0.0-beta.13":"2020-07-18T14:51:36.016Z","7.0.0-beta.14":"2020-07-19T10:35:35.653Z","7.0.0-rc.0":"2020-07-19T14:08:11.309Z","7.0.0-rc.1":"2020-07-19T16:38:47.044Z","7.0.0":"2020-07-20T02:06:57.332Z","7.0.1-alpha.0":"2020-07-27T02:31:59.763Z","7.0.1":"2020-07-27T02:57:15.663Z","7.1.0":"2020-07-29T06:18:23.809Z","7.1.1-alpha.0":"2020-07-31T06:18:21.418Z","7.2.0-alpha.0":"2020-08-03T02:07:05.170Z","7.2.0":"2020-08-03T12:31:31.537Z","7.2.1":"2020-08-05T02:00:11.343Z","7.3.0":"2020-08-05T05:31:22.255Z","7.3.1-alpha.0":"2020-08-10T03:07:05.492Z","8.0.0-alpha.0":"2020-08-12T06:40:35.075Z","8.0.0":"2020-08-12T06:49:14.007Z","8.0.1-alpha.1":"2020-08-15T17:03:24.174Z","8.0.1-alpha.2":"2020-08-16T03:31:07.699Z","8.0.1-alpha.3":"2020-08-16T05:17:55.087Z","8.0.1-alpha.4":"2020-08-16T06:09:54.259Z","8.0.1":"2020-08-16T09:06:45.405Z","8.0.2":"2020-08-30T01:21:20.742Z","8.1.0":"2020-08-30T04:27:16.478Z","6.9.3":"2020-09-04T02:31:43.615Z","6.9.4":"2020-09-04T02:47:52.727Z","6.10.0":"2020-09-04T12:52:49.814Z","6.9.5":"2020-09-04T12:55:17.599Z","8.1.1":"2020-09-11T06:18:27.054Z","8.1.2":"2020-09-11T09:56:58.027Z","8.1.3":"2020-09-11T11:07:17.054Z","8.2.0":"2020-09-16T15:27:37.812Z","8.2.1":"2020-09-23T15:30:01.315Z","8.2.2-alpha.0":"2020-09-28T11:14:11.314Z","8.2.2-alpha.1":"2020-09-28T12:43:57.822Z","8.2.2-alpha.2":"2020-09-29T09:27:17.922Z","8.2.2":"2020-09-29T09:49:58.841Z","8.3.0-alpha.0":"2020-09-30T03:39:07.963Z","9.0.0-alpha.0":"2020-09-30T06:49:36.495Z","9.0.0-alpha.1":"2020-09-30T11:01:27.983Z","9.0.0-alpha.2":"2020-10-09T03:56:16.887Z","9.0.0-alpha.3":"2020-10-09T05:37:24.437Z","9.0.0-alpha.4":"2020-10-09T10:25:33.410Z","9.0.0-alpha.5":"2020-10-11T01:28:32.516Z","9.0.0":"2020-10-21T16:15:35.627Z","9.0.1":"2020-11-01T04:13:43.752Z","9.0.2":"2020-11-02T03:14:36.212Z","9.0.3":"2020-12-08T05:19:31.385Z","9.0.4":"2020-12-14T10:46:23.802Z","9.1.0-alpha.0":"2020-12-22T04:50:54.535Z","9.1.0-alpha.1":"2020-12-22T04:54:33.101Z","9.0.5":"2021-07-16T04:07:37.574Z","9.0.6":"2021-07-16T06:19:22.336Z"},"maintainers":[{"name":"fwh1990","email":"531362022@qq.com"}],"description":"<h1 align=\"center\">   <a href=\"https://redux-model.github.io/redux-model\">     Redux Model   </a> </h1>","homepage":"https://github.com/redux-model/redux-model#readme","keywords":["react","redux-model","redux","model","typescript","taro"],"repository":{"type":"git","url":"git+https://github.com/redux-model/redux-model.git"},"author":{"name":"范文华","email":"531362022@qq.com"},"bugs":{"url":"https://github.com/redux-model/redux-model/issues"},"license":"MIT","readme":"<h1 align=\"center\">\n  <a href=\"https://redux-model.github.io/redux-model\">\n    Redux Model\n  </a>\n</h1>\n\n[English Document](./README-EN.md)\n\nRedux-Model是为了弥补原生Redux繁琐的开发流程，开发者重复劳动效率低下，模板文件导致代码量臃肿，以及因action和reducer文件分散造成代码追踪困难的问题而设计的。\n\n[![License](https://img.shields.io/github/license/redux-model/redux-model)](https://github.com/redux-model/redux-model/blob/master/LICENSE)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/redux-model/redux-model/CI/master)](https://github.com/redux-model/redux-model/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/redux-model/redux-model)](https://codecov.io/gh/redux-model/redux-model)\n\n\n# 特性\n\n* 深度封装，模块化开发\n* 使用mvvm快速处理reducer\n* **👍真正意义上的Typescript框架，写起来比JS更流畅**\n* 内置http服务，请求action自带loading追踪、数据节流\n* 支持React/Vue Hooks\n* 支持数据持久化\n* 支持[Graphql](https://github.com/redux-model/graphql)请求\n* 支持代码分离\n\n# 安装\n\n### React 或 React-Native\n```bash\nnpm install @redux-model/react\n```\n\n### Taro\n```bash\n# taro 3+\nnpm install @redux-model/taro\n\n# taro 2+\nnpm install @redux-model/taro@6.10.0 @tarojs/redux\n\n# taro 1+\nnpm install @redux-model/taro@6.9.5 @tarojs/redux\n```\n\n### Vue\n```bash\n# vue 3+\nnpm install @redux-model/vue\n\n# vue 2+\nnpm install @redux-model/vue@6.9.2\n```\n\n# 定义模型\n```typescript\ninterface Response {\n  id: number;\n  name: string;\n}\n\ninterface Data {\n  counter: number;\n  users: Partial<{\n    [key: string]: Response;\n  }>;\n}\n\nclass TestModel extends Model<Data> {\n  plus = this.action((state, step: number = 1) => {\n    state.counter += step;\n  });\n\n  getUser = $api.action((id: number) => {\n    return this\n      .get<Response>(`/api/users/${id}`)\n      .onSuccess((state, action) => {\n        state.users[id] = action.response;\n      });\n  });\n\n  protected initialState(): Data {\n    return {\n      counter: 0,\n      users: {},\n    };\n  }\n}\n\nexport const testModel = new TestModel();\n```\n\n# 执行Action\n```typescript\ntestModel.plus();\ntestModel.plus(2);\n\ntestModel.getUser(3);\ntestModel.getUser(5).then(({ response }) => {});\n```\n\n# 在 Hooks 中获取数据\n```typescript jsx\nconst data = testModel.useData(); // { counter: number, users: object }\n\nconst counter = testModel.useData((data) => data.counter); // number\nconst users = testModel.useData((data) => data.users); // object\n\nconst loading = testModel.getUser.useLoading(); // boolean\n```\n\n# 在 connect 中获取数据\n```typescript jsx\ntype ReactProps = ReturnType<typeof mapStateToProps>;\n\nconst mapStateToProps = () => {\n  return {\n    counter: testModel.data.counter, // number\n    users: testModel.data.users, // object\n    loading: testModel.getUser.loading, // boolean\n  };\n};\n\nexport default connect(mapStateToProps)(App);\n```\n\n# 在线运行示例\n* [计数器](https://codesandbox.io/s/redux-model-react-counter-zdgjh)\n* [数据持久化](https://codesandbox.io/s/redux-model-react-persist-uwhy8)\n* [TODO面板](https://codesandbox.io/s/redux-model-react-todo-list-zn4nv)\n* [请求](https://codesandbox.io/s/redux-model-react-request-1ocyn)\n* [请求节流](https://codesandbox.io/s/redux-model-react-request-throttle-77mfy)\n* [任务监听](https://codesandbox.io/s/redux-model-react-listener-p7khk)\n* [任务组合](https://codesandbox.io/s/redux-model-react-compose-42wrc)\n* [子任务](https://codesandbox.io/s/redux-model-react-action-in-action-oewkv)\n\n# 文档\n\n请点击[这里查看文档](https://redux-model.github.io/redux-model)\n\n# 本地开发\n* git clone 你fork的仓库\n* yarn install && yarn bootstrap\n\n执行测试用例请使用 `yarn test` <br>\n修改在线文档请使用 `yarn docs`\n\n---------------------\n\n欢迎使用并随时给我建议\n","readmeFilename":"README.md"}