{"_id":"redux-rewire","_rev":"41-7775ef44d0470b3a31c5b4a445993f93","time":{"created":"2023-01-18T07:44:41.004Z","0.1.0":"2018-04-15T17:45:16.845Z","modified":"2024-02-08T06:52:27.519Z","0.2.0":"2018-04-15T18:16:43.744Z","0.2.1":"2018-04-15T19:03:36.066Z","0.3.0":"2018-04-15T20:35:20.269Z","0.3.1":"2018-04-15T20:37:14.685Z","0.4.0":"2018-04-21T20:06:03.966Z","0.0.1-beta.0":"2023-01-18T07:44:41.180Z","0.0.1-beta.2":"2023-01-18T07:58:24.092Z","0.0.1-beta.3":"2023-01-18T09:30:39.570Z","0.0.1-beta.4":"2023-01-18T10:51:25.105Z","0.0.1-beta.5":"2023-01-23T10:20:19.010Z","0.0.1-beta.6":"2023-01-23T10:33:40.956Z","0.0.1-beta.7":"2023-01-23T10:39:20.077Z","0.0.1-beta.8":"2023-02-16T08:32:08.503Z","0.0.1-beta.9":"2023-02-16T08:33:14.222Z","0.0.1":"2023-05-30T07:23:17.108Z","0.0.2":"2023-05-30T07:29:59.157Z","0.0.3":"2023-05-31T08:06:45.017Z","0.0.4":"2023-06-01T02:56:57.371Z","0.0.5":"2023-06-05T09:17:31.235Z","0.0.6":"2023-06-06T06:50:36.651Z","0.0.7":"2023-06-06T06:55:18.439Z","0.0.8":"2023-06-26T08:00:41.647Z","0.0.9":"2023-06-26T08:01:43.708Z","0.0.10":"2023-06-26T08:03:41.106Z","0.0.11":"2023-06-30T03:51:03.848Z","0.0.12":"2023-09-04T09:31:27.358Z","0.0.13":"2023-09-04T09:33:31.129Z","0.0.14":"2023-09-04T09:44:39.987Z","0.0.15":"2023-09-04T10:03:02.163Z","0.0.22-beta.0":"2023-11-06T04:42:33.037Z","0.0.16-beta.0":"2023-11-06T04:51:13.934Z","0.0.16-beta.1":"2023-11-06T05:16:14.281Z","0.0.16-beta.2":"2023-11-16T12:49:35.759Z","0.0.16-beta.3":"2023-11-17T12:52:54.449Z","0.0.16-beta.4":"2023-11-18T14:49:16.255Z","0.0.16-beta.5":"2023-12-12T13:37:44.014Z","0.0.16":"2024-02-08T06:52:27.308Z"},"name":"redux-rewire","dist-tags":{"latest":"0.0.16","beta":"0.0.16-beta.5"},"versions":{"0.0.1-beta.0":{"name":"redux-rewire","version":"0.0.1-beta.0","description":"State management library for react based applications","main":"./lib/cjs/index.js","scripts":{"test":"jest","test:watch":"jest -- --watch","test:ci":"jest --coverage && coveralls < coverage/lcov.info","lint":"eslint . --ext .ts,.tsx","lint:fix":"eslint --ext .ts,.tsx --fix","prettier":"prettier --check \"**/*.{ts,tsx}\"","prettier:fix":"prettier --write \"**/*.{ts,tsx}\"","build":"rm -rf ./lib && yarn tsc && yarn tsc --module CommonJS --outDir lib/cjs && node ./publish.js","prepublish":"yarn build","postinstall":"yarn build"},"author":{"name":"FanCode"},"license":"ISC","dependencies":{},"devDependencies":{"@types/chai":"^4.3.4","@types/jest":"^29.2.4","chai":"^4.3.7","jest":"26.6.3","jsdoc":"^4.0.0","typescript":"^4.9.4"},"peerDependencies":{"react":"18.x","react-redux":"^8.0.5","redux":"^4.2.0","typescript":"^4.9.4"},"module":"./lib/esm/index.js","types":"./lib/esm/index.d.ts","gitHead":"b80728a8a5a2db5c5b74acd03484690954a6fec8","_id":"redux-rewire@0.0.1-beta.0","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-3yN6ZcxnlopwtwzmAr3yMpJG5TTpuE3r41Tk3r9iUAWbSQsHC8kgJAIs3S4phdDxuRi9zEwcVWTgBOyBVSWupg==","shasum":"cf299202678c3be64fb919ed8ffb52b9597118ed","tarball":"https://registry.npmjs.org/redux-rewire/-/redux-rewire-0.0.1-beta.0.tgz","fileCount":181,"unpackedSize":129144,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHf1qYd3JwYWp5PL7scVxihqIoZjJnooBy3h0P5cxjwmAiEAuN/1YHRYa2BvLAsvvAME93+I08UfhBMk1J7kLs4nZg4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjx6NpACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr6PBAAifL5JTWLaEh6lCoTN6G4OyeTn+du0aJa8d3YPrvAeyYTQ5g6\r\nILJYGE3LFIRgH4Ie5a0Rb2Ofy+gVnKWn3CLTQy8SJecVGH+Q5VzzotFyGnYf\r\nCrCNPz54tsgf3R6aGtUk5rwnXLLF5Mt023+GvvbfFrVMYc9jBBP1zjYPkmjp\r\naG9Jr0xMKx6B0t+G/9xfmsMmKXk1PLSDcxJPlamQFfvfAHNhqvRqtYt8287M\r\ntVCUyY1fnuqNH5X72lXUxsmkifzzY6GI9aTO6SE46LaBvHlQXPzC4lDQcsJg\r\nHaS3uJt5XMgBxtCnerVsXqYtLNacVnHQgHJGBd1GL934ucE2jRVyquGzB4N2\r\n4DfpxJMycF5PmZ4FBaVB7YExIvsIcZE0J7RvfWfOvH9Z/U5bMQ989EdSJEeV\r\nBMldXI2SUoFHrvfF20l6OpLFvwgQazylr+T8wO/esXB7uajzNq2F8T4YUQAB\r\ncL090/GR+uFp08GfOGePZaVbK7OMkLw3dJ160dNMMl6GlL2nRAPZfECdxLhA\r\nvb7bAcdUmiGO9TVdSnmlA9w9JO26s4eoC7uCdG7aO7Gb2dep21FFEBcYVqBN\r\noidU4nZWd/jKvF5H165QgYBIMmE1xHURiIzEHxYr+hpFPy9zL2acgFsksgpc\r\nmol67bVSncbvTCvRYkCYxlZNbhddfWSU4lU=\r\n=Qr4v\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kamleshsharma","email":"kamleshs35@gmail.com"},"directories":{},"maintainers":[{"name":"kamleshsharma","email":"kamleshs35@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-rewire_0.0.1-beta.0_1674027881005_0.6944317529536372"},"_hasShrinkwrap":false},"0.0.1-beta.2":{"name":"redux-rewire","version":"0.0.1-beta.2","description":"State management library for react based applications","main":"./lib/cjs/index.js","author":{"name":"FanCode"},"license":"ISC","dependencies":{},"peerDependencies":{"react":"18.x","react-redux":"^8.0.5","redux":"^4.2.0","typescript":"^4.9.4"},"module":"./lib/esm/index.js","types":"./lib/esm/index.d.ts","gitHead":"b80728a8a5a2db5c5b74acd03484690954a6fec8","readme":"ERROR: No README data found!","_id":"redux-rewire@0.0.1-beta.2","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-X+RLA28Om/mUtOobY0gPuNcWbmLTVBiMKP+/Oz6Jnm4XXWvjx3VEDKaGi0aiN+WRfZvT0BigUtZI0xSrtRYRrw==","shasum":"96b4901dda623ad67371be7539dc228c04a3d891","tarball":"https://registry.npmjs.org/redux-rewire/-/redux-rewire-0.0.1-beta.2.tgz","fileCount":181,"unpackedSize":128378,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCnEyGNnTeUq0O/8SwRjWSuHDDcy/mrYPgs5cARanvmwwIhAOPMdU87vFpvnMf3Z2ikvYexM/tq7n/v69SWbvg6BtGC"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjx6agACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpL0w//QtPvkled6osBStUs4224jwfBzKoriI+HMONBZ+g0FXH60+31\r\niFaSWG9L/acdMhhgEfLaKbsbzCFyWTzqoxn7+/Q1c/9IioCcnzes7P5Ex42U\r\nKiSu01vQjXRC/oOekDWC3tRq4Ag/n8pI7jPvuOhbcbv5Rj49fqAkji/VVHHY\r\niqiR8lFzUDnzxknj0JOLZ5MB36gYaD0oLaA3GKnmVrXUShIVwZUnMuykMjPE\r\nGxiFxzMOUkt+4D/84xQQ5MgA4j/otoFEluhQSaX60FHGSz59rZMMPbdxewxF\r\nRF51+00h/dgy9+YOJS4pISQeUKZ8ySIxQN5hzWN+vvaHVN7qSGiHleUR0c0k\r\n1lH2mQs0Ofuso2dxJj9xG+B9RSWBnwehN8a1sJfVzyL33KLMl5Y2j5mAMHg2\r\nUyCvMgOYJ7xjgZv5Eovf98nd6l+9+M9f6IcqIxUqphCpiKZeZ8feKNoduKsG\r\nd31RhYW9z/5BGbLCoWpneRqTkDZ89/Ff6VzxUUl8HOkRmN7QxBy+mBElS1NO\r\nbL34kMSccepNBW/EZRTdhCUrziPpwBsG4KBTO2ktNG4escZ0lduNNzrjH6Of\r\nDum60yh7bWoLzbMTNR6ERsEDu8yhYD9fm59rf8CVneMX6EOrgNCM4Fnq+JVZ\r\ntkz9Kn/5bSbokRUuPVpmcrm5kJN80KJGsIo=\r\n=0FBg\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kamleshsharma","email":"kamleshs35@gmail.com"},"directories":{},"maintainers":[{"name":"kamleshsharma","email":"kamleshs35@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-rewire_0.0.1-beta.2_1674028703924_0.9010624988832148"},"_hasShrinkwrap":false},"0.0.1-beta.3":{"name":"redux-rewire","version":"0.0.1-beta.3","description":"State management library for react based applications","main":"./cjs/index.js","author":{"name":"FanCode"},"license":"ISC","dependencies":{},"peerDependencies":{"react":"18.x","react-redux":"^8.0.5","redux":"^4.2.0","typescript":"^4.9.4"},"module":"./esm/index.js","types":"./esm/index.d.ts","gitHead":"7922b530f443b27b11b7bc2c7e2aff457311abed","readme":"ERROR: No README data found!","_id":"redux-rewire@0.0.1-beta.3","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-VsYCesdSYL5imgkWob4MlO9wrNUssyScHOQQMrpKyykC6q3g6gG0z1yiM54zG30SkkLjvHA8eKQkx10KUONXyQ==","shasum":"0de964e6acd95050852859adf310c2088cbf6e38","tarball":"https://registry.npmjs.org/redux-rewire/-/redux-rewire-0.0.1-beta.3.tgz","fileCount":181,"unpackedSize":128352,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCyrLu5QfhT4ZkkssKRUdVhZaMpYYK0CIeiInFUMyARswIgdyFPnrsGeaPA/8cwEnbOWyRGDqjtbXgF0Dn9GqnIf0I="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjx7w/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrYdQ/+L9WaIyOs7uitrh1MKLM9L3YHGiVfyXRBCczApJJWifr4Q6Al\r\nunJtZvjbnndFHMe2D88U7zW52noVQi+tzE56t9YeTaDTNLfv2ntn505xI4RI\r\nrRITwmdi8CqtEWBHztNSUUFffbOQJmrDPtm0GGmzA/Af236+awXwqtSUrv0h\r\nUKYtH3NhvnDnyyBp1la4gvG3g2DlCKSc0wSlhc3v02dma+v7+PFVp8eUUGUS\r\nAWtnR31QNOiLevO5g+ftDcIfHdTj+MCaM7LLhaj9KCbaSvIyZ1SbH7M2B/2g\r\nGRd6RZb+JT5NXP0VOtnSVzCE9/nlIMzvPlLc5QG7ZBdB+HjOqEpkeHBhrMff\r\nc8ncb1JWFpAbhghej8/ONsyG9lc1IZtd21etzIG2Wa/pPOjZuvs5hVEg5k2D\r\nrYugeAzXoKoHreuheb8r8fD2Lg5q/o/4fAgeFSUTf5F3m2Ytg7DBktwiepIp\r\nLblXpGh0NvD5Icnhd0Hfi8JfSZfPDwKfjL/s9zUNCfmq563QZ/m9SXdhAtOa\r\nI7rqY+GmiStRWcDyXfeZOoH99evk4d9r2yqjitDQaJG6oL7gEkdDbMk7yPGZ\r\nKI5IrXKUnDcmBfoZESNB/zjjFGVw4Hx0vtj0FfOmVGKuuixPRRNeRsa427Dj\r\nN981niJ4wJ97CJ8yx+IGb4V+8+QrgWZSWk0=\r\n=xSaW\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kamleshsharma","email":"kamleshs35@gmail.com"},"directories":{},"maintainers":[{"name":"kamleshsharma","email":"kamleshs35@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-rewire_0.0.1-beta.3_1674034239428_0.19545076394946115"},"_hasShrinkwrap":false},"0.0.1-beta.4":{"name":"redux-rewire","version":"0.0.1-beta.4","description":"State management library for react based applications","main":"./cjs/index.js","author":{"name":"FanCode"},"license":"ISC","dependencies":{},"peerDependencies":{"react":"18.x","react-redux":"^8.0.5","redux":"^4.2.0","typescript":"^4.9.4"},"module":"./esm/index.js","types":"./esm/index.d.ts","gitHead":"d774ff18e0325f0ef379fabce749dc305f467a8b","readme":"ERROR: No README data found!","_id":"redux-rewire@0.0.1-beta.4","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-6drE5lteAMRJXLi0kj4gZ9JLuDeXsyzFhqqa6hpChlvtRMp/+x9PhUoY3iknvrStcQZA5YkXlSSFo0hI3mbcnA==","shasum":"99efce30bf6d298a7b384f2892e2544f29dcb4f0","tarball":"https://registry.npmjs.org/redux-rewire/-/redux-rewire-0.0.1-beta.4.tgz","fileCount":182,"unpackedSize":166131,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDP9200BcOEzm6O7qROqyc1WGboV+bIS7ulh4fBsw3fwwIhANX4pC6EiZ3cO6LylRG72bwOxX1CnkRvxy3nkPaHX+53"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjx88tACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqCLA//TE4/1aOu2NXnjRZqJ288tnW/aHEdMtHRb8tTlEFuOIG+a8Ge\r\nqf5oTRr1KDPKYgYAn1ktpx7mjWE6bOmgRrfKa6x0jeXu7bL1wPPaO/JHBe3D\r\nkyCS75vIeiS/15+q5BYXgzUAdN7Q3uUYVg6OWdIzaWCAfkyW4JuosomrdMjT\r\n/Joz0xgsngdW31uHFwFv6DuZAwOU/+D+XU2WIlln1epYIm4UA5m9LqHmcesC\r\nBZZnHabehnvROQ1rZOIHUQg2gak7mIoetiKKOB7TcrDIDI5M3UAcajHFrGxu\r\n8BchxhBNF0UeAvCU/VEVvgS3uXhbfTTY1WRB57pY/QS3B6wrDTYS9AP4I6qw\r\nAbfeRhx983yPKR6PsAfFNKBKu2tuO91iBUccgSWYIcj9fv+4kG/KmbPzT3tu\r\n+XVfvAcg2Vj1xkjrNGx9gSD3BEMA52b+5yTKS1mp5pUUJc2/HaM46VlOlyXN\r\nQBcUsDl7feuWG54KFCCk0Zl/gueCOE7YdwRlDpsrzIG5ShJzwjSiIUKlLPIi\r\n5SxtYlCUxKJqkxcUK/cmxXtxkJcpMML2SruGky8a/w3rauR0pTdzsdT/GFHu\r\ncrP8I5k+KdgebRopbQixYZauLzzf09lJr7wXzXfnZXasePN70Pu8j/xoe+zz\r\nxqlLfPcK6qF2gsYstbMgdlspqy4x/3eZp3s=\r\n=+dt4\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kamleshsharma","email":"kamleshs35@gmail.com"},"directories":{},"maintainers":[{"name":"kamleshsharma","email":"kamleshs35@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-rewire_0.0.1-beta.4_1674039084918_0.7882512545622069"},"_hasShrinkwrap":false},"0.0.1-beta.5":{"name":"redux-rewire","version":"0.0.1-beta.5","description":"State management library for react based applications","main":"./cjs/index.js","author":{"name":"FanCode"},"license":"ISC","dependencies":{},"peerDependencies":{"react":"18.x","react-redux":"^8.0.5","redux":"^4.2.0","typescript":"^4.9.4"},"module":"./esm/index.js","types":"./esm/index.d.ts","gitHead":"51c87af8e828dd833e1d68af20829869ea4ded5f","readme":"ERROR: No README data found!","_id":"redux-rewire@0.0.1-beta.5","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-0Dg7r46Z1bRnTdwZohsRye3L5NBK/4EBIoOqg7kuVqMB5a1ve0DYlt2oJJaCRBB9y7Kd6y7I5Ut4xKFERztNtA==","shasum":"9d60cd33f924a4fb3b355bb41f323d73f27558a9","tarball":"https://registry.npmjs.org/redux-rewire/-/redux-rewire-0.0.1-beta.5.tgz","fileCount":182,"unpackedSize":167102,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFKRNEZZjHFmriZRLoKcwwohVENqSclZiU81zZS+ghwZAiAwSPorttveX4PRnyXLXQb3PWNUC6SKc5mm8ujhSz7rpg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjzl9jACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoq5w/+KWwj/cvei4Kvc3nYk1s3yCmwLmWOqYUenBFNxhJhAWdLc89C\r\nrBXsHvqqTQRt4d4PtZZhjApQuczjBkBqdQLcVdisCCQWYwsG5+bugcwn/faL\r\nIwCdutCr5BKjekBjA8BDrtu7fZgSZUQ6l+6H1H6Bo+5I+/+nM+aXYuJk5m9n\r\n0xPUdvCQyGEVoZd/o7jqTidbD/vKmmXYghnZNghHQoy7zGwa357hhTPVoKY8\r\nErkJz6nbYZdK154jGOBU7+iJIyaaqHlN/qDOQxHSkiim4i9ZO/ZQ+j1oQOcx\r\nkHtof2tfMDkVnpErZ3nvlmLJMzY6PDVVy0ujc3Ue5W+VeGJQx17o4zOiB0Oe\r\nLLYMhsnVmDrPMEk08jSyOJ1xKiTuBQlE0ezvNfQev9V84UHDtv18I6L87CWf\r\nA4QwyPewQ0e4IHeOAvWsqVhwfb1Ik8E4QXkXbVF5CdqIYXlcUL3/Cucg5q7r\r\neg+hSPxGaCNKmcq850sY9s5yFY+0+QvfLQMPL3hLeJnTAGFu2QfwPkfvCNEo\r\nCfWTvsgYcwl+c4Esh32oWPOakcMH1liShGE2LMHf8C4Mg1X+LlrZ/8Q0Gs4/\r\n5UkJV0KDg0Hqjg1HUjKQ4c+tuvGKMxoSCEdgn9OhB8u4BU45PEHgClyrYXy0\r\n5FiKcvzXuVklh2Mh//hJl5EMwritmezxdqo=\r\n=mAFc\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kamleshsharma","email":"kamleshs35@gmail.com"},"directories":{},"maintainers":[{"name":"kamleshsharma","email":"kamleshs35@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-rewire_0.0.1-beta.5_1674469218829_0.9062226437706233"},"_hasShrinkwrap":false},"0.0.1-beta.6":{"name":"redux-rewire","version":"0.0.1-beta.6","description":"State management library for react based applications","main":"./cjs/index.js","author":{"name":"FanCode"},"license":"ISC","dependencies":{},"peerDependencies":{"react":"18.x","react-redux":"^8.0.5","redux":"^4.2.0","typescript":"^4.9.4"},"module":"./esm/index.js","types":"./esm/index.d.ts","gitHead":"51c87af8e828dd833e1d68af20829869ea4ded5f","readme":"ERROR: No README data found!","_id":"redux-rewire@0.0.1-beta.6","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-j1Gk9q/2lyBsFyMZ2w2tCDtUkK4lvPEPki0qI1/iE5ve3UsJw0DSmaj7QN/aIGv2gAiKtC40uui7fmCwDJlY5g==","shasum":"0ed3dd1dd25699d700c8b43e2f60af21b93be576","tarball":"https://registry.npmjs.org/redux-rewire/-/redux-rewire-0.0.1-beta.6.tgz","fileCount":182,"unpackedSize":166704,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDlptyWPKqtYzu5zPozwO6ftbS/Dh3Pm80PrLzu1UWVhAIgF5AKKiQkBUX0rLP3TuqTsSgeOBXjAxfgTHMeT1VrwQY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjzmKEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmomPA//dcAKpfaqdtw6LDK2ncwpAOKHXktBrr70k3FnDuSpu0CvahFr\r\ndB3BBl109XEkgXjC0qtm4tTeFL4ewr+69+pqbATcU1owEaf31LfDBekqoQIu\r\n7GPwZS7WiNZyjj2tODX2lAR1h6bz0oanp8UowdTR537OXt+9lrM2qNREgDDY\r\n0oOYNBiYZG74lokwr/no5g+2uLVG2EI8PLP5rs8aPvM2ypiaWRkDIC5PU4zh\r\nFctl+4LamrcyIuLGmzwCWzTg2W8p3KA7omPQ2H3EZJnW1NT0LOz0Loq19IGD\r\nloQsn4sx08TaYQ7cxWevMgEby25YG/L+lCg68XafbrBg21lffeuJ4Nd67+fz\r\nFyQiHZAbVDMtyC9TcYFpUyyyfh8i7/ohGWHmNYmkwbVU8TW7axekRwGfk20c\r\nrWmoMTijtWueaRLpH/ai4h7Xi9A9Qxfb1BEruiZ2/88n/01hkGUrztBmLUTS\r\nuWwFGGPw4fBpNhX2kXbW+k37RTRJ3rdJD7rWD/nX2I8/T5W0uC2x2u3DNiNO\r\nO58K088fu+IJ0HUOIG2cBI5zfCD6S0mjrdj4YrzW2yA1f7WZzDEtzjQG2RBm\r\nhXLaH1kMp/+Q3hCpV/rrLdKJxHMp9pfGq0+loji6nJn97rsfsElyohTiPLPZ\r\n36foFQ96r3zsg7AgVQ+11DEuS/EsoN5w3SA=\r\n=L1Za\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kamleshsharma","email":"kamleshs35@gmail.com"},"directories":{},"maintainers":[{"name":"kamleshsharma","email":"kamleshs35@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-rewire_0.0.1-beta.6_1674470020758_0.07872215894116597"},"_hasShrinkwrap":false},"0.0.1-beta.7":{"name":"redux-rewire","version":"0.0.1-beta.7","description":"State management library for react based applications","main":"./cjs/index.js","author":{"name":"FanCode"},"license":"ISC","dependencies":{},"peerDependencies":{"react":"18.x","react-redux":"^8.0.5","redux":"^4.2.0","typescript":"^4.9.4"},"module":"./esm/index.js","types":"./esm/index.d.ts","gitHead":"51c87af8e828dd833e1d68af20829869ea4ded5f","readme":"ERROR: No README data found!","_id":"redux-rewire@0.0.1-beta.7","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-8kRsT7AgYu2q3MaEPS6WhjB9d8FSaHuUaF8AHjle7xX1/7CoJ3fY0griTOZAAUwOzen05DabWpBZ6DmiWjF3VA==","shasum":"2b1e4f0f302edc0e1fa74ca2d336e9d1f34f4fd5","tarball":"https://registry.npmjs.org/redux-rewire/-/redux-rewire-0.0.1-beta.7.tgz","fileCount":182,"unpackedSize":166832,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDQCQU/4yF66jT8w2KjVvNUv8uq65YDWZHSs0Rvw/ohCwIhAJTwjOWGDfXlJ5CZL9j14NnfnMwn9fEEgIEeCkX8YiTc"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjzmPYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpoSw//UCWiTe7H7qnPBz90MnGZ3hu0/VJ2u4tePotW/O/O2t+YPLpl\r\nucYakAWZo41nRkd0qeDPfvcpQELdNgG+C7n5aO1EtebFN5zMKK9WzI/5I983\r\nUQajH3TYfWUNbIFoO2F0o8PxWH1MMcDVVjnR8SDsMLwuFPmUv5NGb4fPMQEF\r\nO0H2K8yHeCDRTMWNj+a6M9gLyY1U2uoaX5jw8cuAEr3pXJWrYs0XtCPeQbCx\r\nGOu0BkUzFDYS3aT96pXPb9OK+1UMCFAQt4YlkCQ0nTzA5v9UkmOEURK0FBVe\r\nXqotgM5aLc6pHfjHnnXWerlDAQpAz0v2S2r+yY1sDWseP9FMG9T2bAiRGcyq\r\nq5n95o/SOg1NlYF11+qgYPKzzUiqsDQH3Kl1FWdib3yBSEDylAn0aRtFpw5J\r\nbTrUd/eIuLcA7AN6TYQBNq/UA/xiPZHacvDyaFVooZg5dLF2ET0hqgVWSl3c\r\nFW30Hw9YKr4FXQwsOJTJFyzE6xW9sDwa7x1qrRGaohsqP21XCOlNGkgITtSL\r\nGYUQH6XGCWSq7LtxJWWFH/H8Ud3ARx6JZSJVmMBx2PbQzjb8b8Tb6cio3fIA\r\nMhhby1gqZB/cktwyHKPUTjNN/LoFYN7jauFNbdGxHxx+SEmOsBtndVyoxBXY\r\nPUDypBSSCIObYfBszjgCdNzrPoTLwRwhez8=\r\n=n//L\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kamleshsharma","email":"kamleshs35@gmail.com"},"directories":{},"maintainers":[{"name":"kamleshsharma","email":"kamleshs35@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-rewire_0.0.1-beta.7_1674470359863_0.7759674068692586"},"_hasShrinkwrap":false},"0.0.1-beta.8":{"name":"redux-rewire","version":"0.0.1-beta.8","description":"State management library for react based applications","main":"src/index.ts","scripts":{"test":"jest","test:watch":"jest -- --watch","test:ci":"jest --coverage && coveralls < coverage/lcov.info","lint":"eslint . --ext .ts,.tsx","lint:fix":"eslint --ext .ts,.tsx --fix","prettier":"prettier --check \"**/*.{ts,tsx}\"","prettier:fix":"prettier --write \"**/*.{ts,tsx}\"","build":"rm -rf ./lib && yarn tsc && yarn tsc --module CommonJS --outDir lib/cjs && node ./publish.js","postinstall":"yarn build"},"author":{"name":"FanCode"},"license":"ISC","dependencies":{"immer":"^9.0.12","react-redux":"^8.0.5","redux":"^4.2.0"},"devDependencies":{"@types/chai":"^4.3.4","@types/jest":"^29.2.4","chai":"^4.3.7","jest":"26.6.3","jsdoc":"^4.0.0","typescript":"^4.9.4"},"peerDependencies":{"react":"18.x"},"readme":"# redux-rewire\n\n## Content\n- [Introduction](#Introduction)\n- [Installation](#Installation)\n- [Basic Usage](#Basic-Usage)\n- [API Definitions](#api-definitions)\n- [Examples](#Examples)\n- [Advance Usage](#Advance-Usage)\n- [About](#About)\n\n## Introduction\nState management library for react application built on top of redux and react-redux, \nworks well with large scale frontend applications\n\nFollowing are the benefits of redux-rewire\n\n- Incremental store: The state for a component is only added once it is part of the rendered view\n- Immutable state: Redux-rewire automatically takes care of state mutation with the help of [immer](https://github.com/immerjs/immer) objects\n- Suitable with React Server side rendering.\n- Works well with react-native projects.\n- Full type safe: Redux-rewire is created with the intention to integrate will with large scale typescript projects\n\n\n## Installation\nUsing npm\n```shell\nnpm install redux-rewire --save-prod\n```\nUsing yarn package manager\n```shell\nyarn add redux-rewire -S\n```\n\n## Basic Usage\nInitialise the redux-rewire at the root of the app.\n```typescript jsx\n// App.js\nimport { configureStore, RewireProvider } from \"redux-rewire\";\nimport AppRoutes from './app/appRoutes'\n\nfunction App() {\n  const initialReducers = {}\n  const initialState = {}\n  const store = configureStore(initialReducers, initialState, {\n    middlewares: [], // We can pass middlewares to the redux\n  });\n  return (\n    <React.StrictMode>\n        <RewireProvider store={store}>\n          <AppRoutes />\n        </RewireProvider>\n    </React.StrictMode>\n  );\n}\n\nexport default App;\n```\n\nAfter the above initialization is done we can create build our stateful components.\n\nLet's take an example of component which is called homeScreen.tsx\n- homeScreen.ts\n- homeScreen.reducer.ts\n- homeScreen.actions.ts\n- homeScreen.init.ts\n\nAbove the file is suffixed with .reducer, .action is just for the matter of understanding the purpose of file\n\nStart with creating initial state for our home screen component\n```typescript\n// Following is the content of homeScreen.init.ts\n\nimport {createInitialState }from 'redux-rewire'\n\ninterface InitialStateType { data: string[] }\n\nexport const initialState = createInitialState<InitialStateType>(\"home-key\",{\n  data: [],\n});\n```\n\nNow, we will create the reducers for the component which will update the state\nHere, we are adding tha add reducers which will add the todo item in the state\n\nNote: Do not worry about direct state mutation, internally state object is an [immer](https://github.com/immerjs/immer) object\n\n```typescript\n// Following is the content of homeScreen.reducers.ts\n\nimport { createReducerSlice } from \"redux-rewire\";\nimport { initialState } from \"./homeScreen.init\";\n\n// The intial state created in the homeScreen.init.ts\nexport const reducerSlice = createReducerSlice(initialState, {\n  // state is the latest state of the home screnn component\n  // actionData is the data passed while calling from home screen view\n  add: (state, actionData: string) => {\n    state.list.push(actionData);\n    return state;\n  },\n});\n\n```\n\nFollowing file contains all the side effects or async task for the homeScreen component \n\nFor eg. we might need to send analytics to the backend when ever the todo item is added\n\n```typescript\n// Following is the content of homeScreen.action.ts\n\nimport { createActionSlice } from \"redux-rewire\";\nimport {  reducerSlice } from \"./homeScreen.reducer\";\nexport const actionSlice = createActionSlice(reducerSlice, {\n  add: (state, actions, actionData, key, globalState) => {\n    \n    // The following array returned has nothing to do with redux-rewire, it is application specific\n    return [{\n      actionType: \"Analytics\",\n      payload: {\n        eventNAme: \"ToDOAdded\",\n        data: actionData\n      }\n    }];\n  },\n});\n```\nNow, in the view file we will initial our state using useReduxState api which will add the component state to redux when the view if rendered for the first time\n\n```typescript jsx\n// Following is the content of homeScreen.tsx\nimport {identitySelector, useGlobalState, useReduxState} from 'redux-rewire'\nimport {actionSlice} from './homeScreen.actions'\nimport {useCallback} from 'react'\n\nconst HomeScreen = (props) => {\n  const [key, state, actions] = useReduxState(\n    'home-key',\n    actionSlice,\n    identitySelector\n  )\n  const addToDo = useCallback(() => {\n    if (inputRef.current) {\n      const value = inputRef.current.value\n      actions.add(value)\n    }\n  }, [actions])\n  return (\n    <div >\n      <div>\n        <input ref={inputRef} />\n        <button onClick={addToDo}>ADD TO-DO</button>\n      </div>\n      <div>\n        {state.list.map((v) => {\n            return <div className={'item'}>Test</div>\n        })}\n        {state.list.length === 0 ? <div>Your To Do list is empty</div> : null}\n      </div>\n    </div>\n  )\n}\n\n  export default HomeScreen\n\n\n```\n\n\n## API Definitions\n| Api                | input                                          | Description | usage |\n|--------------------|------------------------------------------------|-------------|-------|\n| createInitialState | (compKey, intialState)                         |             |       |\n| createReducerSlice | (state, actionData, compKey, globalState)      |             |       |\n| createActionSlice  | (state, actions, actionData, key, globalState) |             |       |\n| useReduxState      | (compKey, actionSlice, selectors)              |             |       |\n\n\n## Examples\nPlease refer the [examples](https://github.com/ds-fancode/redux-rewire/tree/main/example) directory\n\n## Advance Usage\nComing Soon\n## About\nRedux-Rewire is developed and maintained by [Fancode](https://www.fancode.com/) and many amazing contributors.\n\n","readmeFilename":"README.md","gitHead":"9478256b3d236d32e23f56789c77459289d137d7","_id":"redux-rewire@0.0.1-beta.8","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-xu5aZdtWDZNkhIZdgltnGCfy8Wt0gmeTfNGDHgWK63A41VWLLgFW6gRnomk2QECotht+gCT6MGjpV8kl28FCLg==","shasum":"ce38cdb67d7f08d0d4687bf0a9368cabc9e9ca05","tarball":"https://registry.npmjs.org/redux-rewire/-/redux-rewire-0.0.1-beta.8.tgz","fileCount":250,"unpackedSize":244347,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH7yOPFi8ZTPPZwrXG85loYea3KG6ob9ijGTwDYLFVRhAiEAq2rBpgCH8cU1fua85aEPJVz5tCzYFwPfD1Vt1RIE7eU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj7eoIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrddg/9FlCHE4cgIUyI1eWCL9XnqAX595BVBo8lXTV2pUgWJHd0cfNM\r\njs7qZAzTIqIQdV8PhHmOcKmSpCdoCxCRM2ONllHv3hWN+VvZj5ziTur/V9yl\r\nR7mJJaJxRuo7Qp4RxOdsFys5qQ8Pmyua//yqI9Vp37zEzS8g8KC7X0HljlOR\r\nleYSftJ0Q+Q/+BbYVoo2wsx3b9y+Oz7Tl25YCYdytJw4D5qyEm4GkX6C5POo\r\nVDdpkfXz0EOEL7cFfPAQ8qOOMrTKe9BgSbMtTbGbj2Dx9hY5tk8pVq6pi82n\r\n3IzCv05zSLC1ZNBFr3MtN3rvKiP7MaitPs01paN9DglypqtScjXFYapeqewE\r\n44ox5KgnRNIqxVV4WSmYee6HZDhXuUEg1k2ei13NVuyhTb+KgrczTJ7NsDIu\r\nmy4VzhYAEyG6WzZiQHRlEJkRkofEDns+ETMCBsh7iNF8dAjB7LbLzHejJJkD\r\nHQLG9PESqP0ERqZAr8ClwW+Oh2/KOARHeQ+2dB2N+wzQr6VT6Pa10MjZzonL\r\nOB+VbotghAvo7UGwGznxkvCFIdGwcv1RYfiBtwjJN3L2OgeYRzyo4mAZmcuK\r\nelNmELXOGdCQShHkgqGJxq2GwsHOXxTblK5tGwzU3I4BjWbSsFm4gkRE8vF3\r\nKHt8mveV+0/KEhBHeWTeL4wMHsxtB0d9/e8=\r\n=qDg2\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kamleshsharma","email":"kamleshs35@gmail.com"},"directories":{},"maintainers":[{"name":"kamleshsharma","email":"kamleshs35@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-rewire_0.0.1-beta.8_1676536328271_0.27861491368505953"},"_hasShrinkwrap":false},"0.0.1-beta.9":{"name":"redux-rewire","version":"0.0.1-beta.9","description":"State management library for react based applications","main":"./cjs/index.js","author":{"name":"FanCode"},"license":"ISC","dependencies":{"immer":"^9.0.12"},"peerDependencies":{"react":"18.x","react-redux":"^8.0.5","redux":"^4.2.0","typescript":"^4.9.4"},"module":"./esm/index.js","types":"./esm/index.d.ts","gitHead":"9478256b3d236d32e23f56789c77459289d137d7","readme":"ERROR: No README data found!","_id":"redux-rewire@0.0.1-beta.9","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-0V4SLrg08i5RPRZvfxv1sZsEUFZcjS/ib6Ir74V9C9hw0EKGXP1fILD0jwajvXKTDYNR9L2AsIGHluJj5SyGxQ==","shasum":"1f74e5a634e80ebf3cad1f87c00219d5c99dc69c","tarball":"https://registry.npmjs.org/redux-rewire/-/redux-rewire-0.0.1-beta.9.tgz","fileCount":182,"unpackedSize":166850,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCnqaxx0n1cXmscz8Y4SblFGsWDDG+pra/Kw5zgplF8EAIgdl+/Fr63T0EPP6fTUM+9Yk0HWIAjqFqscH9ZeRHEUGU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj7epKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrEcw/9Gdupb/IlV/aaDUlpwgSsPQD1HQMt/6o2IeMMJtODgmW6XQcV\r\nlR+IbsUUuE0w9TLKM0jjMAfR/CDweDP5VXH/r7xKC2GkwShG/cQ4Esk8t1NE\r\nc6Uw+2JCk9zQ61mTZB36MeYigMf1jogPDY3aKc3XUPUKgc8pX8zwA1ZdN9+q\r\nk1Vv7ztUX9mOCPQCtt0Wi/GwqixmAsJ913OHZyaMb4RmPuF9Pu2G2wOFoNnV\r\nRXmsWFzXTk6QsugM7GPPw9pbKRdVxEDx5WP1BbQjq352FvzQQwr9P+QkAX9y\r\njOvE36mPYKnzw/1zGF67Qi5t8xl/U9l4m5WLKyBcoWxm5o5i/U5H5OthoEX/\r\n/G+Qs8T07ksrs455o3lvY+eesBNHZm0PFucFRsURpjaUlDvrhxcFoWSr3cHl\r\nxox9j/8QeaGl13ICimWZg02+O8W+7HN5cGNcipzqJejwQ2xbHDY2aG939EGd\r\n/Igmd9SXf8bZ+eii1R0AoT3MaesayAYbh7Hi0dzj8bzMiO6KJqN5gvswnB5e\r\nIf+jHqju2hpuuPbK2KoE50cGC2pGqPk4JSJ+C/b4CcVKfkZFYqPOtxgw925j\r\nIKiBJ5e3srljc7+TKq1fGYbd1ReSBHpkYbXnfdTwAPR3YC3mKemgQOXLPd8R\r\nvZC7eg4cT07NPkjb2Qf09PIjhLUEGqg5lTw=\r\n=DN9b\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kamleshsharma","email":"kamleshs35@gmail.com"},"directories":{},"maintainers":[{"name":"kamleshsharma","email":"kamleshs35@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-rewire_0.0.1-beta.9_1676536394073_0.8755460514269497"},"_hasShrinkwrap":false},"0.0.1":{"name":"redux-rewire","version":"0.0.1","description":"State management library for react based applications","main":"src/index.ts","scripts":{"test":"jest","test:watch":"jest -- --watch","test:ci":"jest --coverage && coveralls < coverage/lcov.info","lint":"eslint . --ext .ts,.tsx","lint:fix":"eslint --ext .ts,.tsx --fix","prettier":"prettier --check \"**/*.{ts,tsx}\"","prettier:fix":"prettier --write \"**/*.{ts,tsx}\"","build":"rm -rf ./lib && yarn tsc && yarn tsc --module CommonJS --outDir lib/cjs && node ./publish.js","postinstall":"yarn build"},"author":{"name":"FanCode"},"license":"ISC","dependencies":{"immer":"^9.0.12","react-redux":"^8.0.5","redux":"^4.2.0"},"devDependencies":{"@types/chai":"^4.3.4","@types/jest":"^29.2.4","chai":"^4.3.7","jest":"26.6.3","jsdoc":"^4.0.0","prettier":"^2.8.8","typescript":"^4.9.4"},"peerDependencies":{"react":"18.x"},"_id":"redux-rewire@0.0.1","dist":{"shasum":"6086c352db57ea2cb6ac8387cf1710e2ff95ca13","integrity":"sha512-RNDrRqx9oa4S9RiUV3oKAChYEj/+8vzS0MPsyKQwi4c19wpNeS+zAKEGp2rrDTisx+hnUSxLGE5SUz1GKvKdvA==","tarball":"https://registry.npmjs.org/redux-rewire/-/redux-rewire-0.0.1.tgz","fileCount":256,"unpackedSize":225094,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD7ZCB45BOoaCKklwL65EhTKvPkJMbfzpsyfpjh80KbNQIgDBZ9RR4ysFN2roJxvbfFg5dgeoXW1BkVBWT8L6Vo4pE="}]},"_npmUser":{"name":"hugebelieve","email":"hugebelieve@gmail.com"},"directories":{},"maintainers":[{"name":"hugebelieve","email":"hugebelieve@gmail.com"},{"name":"kamleshsharma","email":"kamleshs35@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-rewire_0.0.1_1685431396912_0.44685084088997407"},"_hasShrinkwrap":false},"0.0.2":{"name":"redux-rewire","version":"0.0.2","description":"State management library for react based applications","main":"./cjs/index.js","author":{"name":"FanCode"},"license":"ISC","dependencies":{},"peerDependencies":{"react":"18.x","react-redux":"^8.0.5","redux":"^4.2.0","typescript":"^4.9.4"},"module":"./esm/index.js","types":"./esm/index.d.ts","_id":"redux-rewire@0.0.2","dist":{"shasum":"a285bc106d0589d4ec8e98c5ce3e33436d54e815","integrity":"sha512-ZnMgIQWbJwQ7KCVcReyHGYBV6OKNNeaRw0SDH8KwWwa3Twu4M9wvy+yAOLuywxg+cL3p82UTJ9G7Ko0JQaYaLw==","tarball":"https://registry.npmjs.org/redux-rewire/-/redux-rewire-0.0.2.tgz","fileCount":205,"unpackedSize":177378,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCv2oMz3uxxQPq6iqzrMw78plH4q01DvYOiLKzVY7p3UgIhANFyJimduS18V9j0Oi9A5E/wF1SVjKqPBDq5CsD8Bttl"}]},"_npmUser":{"name":"hugebelieve","email":"hugebelieve@gmail.com"},"directories":{},"maintainers":[{"name":"hugebelieve","email":"hugebelieve@gmail.com"},{"name":"kamleshsharma","email":"kamleshs35@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-rewire_0.0.2_1685431798916_0.007976873119035055"},"_hasShrinkwrap":false},"0.0.3":{"name":"redux-rewire","version":"0.0.3","description":"State management library for react based applications","main":"./cjs/index.js","author":{"name":"FanCode"},"license":"ISC","dependencies":{},"peerDependencies":{"react":"18.x","react-redux":"^8.0.5","redux":"^4.2.0","typescript":"^4.9.4"},"module":"./esm/index.js","types":"./esm/index.d.ts","_id":"redux-rewire@0.0.3","dist":{"shasum":"c720876b589bb2bd43f2a79c784190a7169d62b5","integrity":"sha512-GLziGbdntcNOYVrVZwjZfODSk8zkcInzEDn5HQySwjMRnOYUqljN8t5Twb8lyZR6F64lEFt4mqsNSI20MytiLQ==","tarball":"https://registry.npmjs.org/redux-rewire/-/redux-rewire-0.0.3.tgz","fileCount":205,"unpackedSize":178186,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE5C4bQgkK1yGiTGeuw86NBQg/V7mVS+142/mPKAGzZ+AiEA/qraLuNErteImpNunFooSij33/ru3LTGnEMhXySeZBI="}]},"_npmUser":{"name":"hugebelieve","email":"hugebelieve@gmail.com"},"directories":{},"maintainers":[{"name":"hugebelieve","email":"hugebelieve@gmail.com"},{"name":"kamleshsharma","email":"kamleshs35@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-rewire_0.0.3_1685520404768_0.2982120255582543"},"_hasShrinkwrap":false},"0.0.4":{"name":"redux-rewire","version":"0.0.4","description":"State management library for react based applications","main":"./cjs/index.js","author":{"name":"FanCode"},"license":"ISC","dependencies":{},"peerDependencies":{"react":"18.x","react-redux":"^8.0.5","redux":"^4.2.0","typescript":"^4.9.4"},"module":"./esm/index.js","types":"./esm/index.d.ts","_id":"redux-rewire@0.0.4","dist":{"shasum":"8453a7193d18ecdcfc4828abfe2b593f248bb47d","integrity":"sha512-0H256Lnscg3MaBS1iD7SpaosFgUAkR+fBUpgL6unHrXroMgfIt9LURinO7l3HiiUE1wJeGH/Lw9Brj8De6iVPg==","tarball":"https://registry.npmjs.org/redux-rewire/-/redux-rewire-0.0.4.tgz","fileCount":206,"unpackedSize":183916,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEZYc/RHCJ0J9Ure5yl2DL/plxWJsPQZbigZpvS26n4CAiEAwxBSSigzlvdWwB1eIz/zuaL2YXsfPEZrZH0Q5gBSy/U="}]},"_npmUser":{"name":"hugebelieve","email":"hugebelieve@gmail.com"},"directories":{},"maintainers":[{"name":"hugebelieve","email":"hugebelieve@gmail.com"},{"name":"kamleshsharma","email":"kamleshs35@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-rewire_0.0.4_1685588217209_0.3719869303087209"},"_hasShrinkwrap":false},"0.0.5":{"name":"redux-rewire","version":"0.0.5","description":"State management library for react based applications","main":"src/index.ts","scripts":{"test":"jest","test:watch":"jest -- --watch","test:ci":"jest --coverage && coveralls < coverage/lcov.info","lint":"eslint . --ext .ts,.tsx","lint:fix":"eslint --ext .ts,.tsx --fix","prettier":"prettier --check \"**/*.{ts,tsx}\"","prettier:fix":"prettier --write \"**/*.{ts,tsx}\"","build":"rm -rf ./lib && yarn tsc && yarn tsc --module CommonJS --outDir lib/cjs && node ./publish.js","postinstall":"yarn build"},"author":{"name":"FanCode"},"license":"ISC","dependencies":{"immer":"^9.0.12","react-redux":"^8.0.5","redux":"^4.2.0"},"devDependencies":{"@types/chai":"^4.3.4","@types/jest":"^29.2.4","chai":"^4.3.7","jest":"26.6.3","jsdoc":"^4.0.0","prettier":"^2.8.8","typescript":"^4.9.4"},"peerDependencies":{"react":"18.x"},"_id":"redux-rewire@0.0.5","dist":{"shasum":"fe1e61e6bc5f74fc85195fee27b79dadce2c51b0","integrity":"sha512-/RWrYkN/iFMecWE7AxSXtylei35t8yK62CrwrNHwRdzaM+jaNmtD9Q1li5LuAK18NJdbuaH7S/iq3O1xy9Q7+g==","tarball":"https://registry.npmjs.org/redux-rewire/-/redux-rewire-0.0.5.tgz","fileCount":257,"unpackedSize":231781,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC5sPIGWmhn6xsKh7IK6bu9dZe/FoTlFSHuVjzY8WvQkgIge4M753VUYDqbkgDWVucNTFvK0fNcNCEhgF7CNpm8TME="}]},"_npmUser":{"name":"hugebelieve","email":"hugebelieve@gmail.com"},"directories":{},"maintainers":[{"name":"hugebelieve","email":"hugebelieve@gmail.com"},{"name":"kamleshsharma","email":"kamleshs35@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-rewire_0.0.5_1685956650973_0.09014219653284905"},"_hasShrinkwrap":false},"0.0.6":{"name":"redux-rewire","version":"0.0.6","description":"State management library for react based applications","main":"./cjs/index.js","author":{"name":"FanCode"},"license":"ISC","dependencies":{"react-redux":"*","immer":"*","redux":"*"},"peerDependencies":{"react":"18.x","typescript":"^4.9.4"},"module":"./esm/index.js","types":"./esm/index.d.ts","_id":"redux-rewire@0.0.6","dist":{"shasum":"49014831902c3b88557895335887cac2994fa5eb","integrity":"sha512-hYZrDslfg6XOMBNaUzweX1HKRU4rmTwTHd64xyqZn7qwpO3GlFs/9Q7aDjxVfaYfgD+f4kuYXuB6KIyMDcmI6A==","tarball":"https://registry.npmjs.org/redux-rewire/-/redux-rewire-0.0.6.tgz","fileCount":206,"unpackedSize":183917,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDt/TeskRbbupI36DCklAuP/oGAggxCYOF21ac6tzNWEwIgGkRjnbAeoJY7QHCtXzvC5GCwgrk42ijE6gSb+ViF3zQ="}]},"_npmUser":{"name":"hugebelieve","email":"hugebelieve@gmail.com"},"directories":{},"maintainers":[{"name":"hugebelieve","email":"hugebelieve@gmail.com"},{"name":"kamleshsharma","email":"kamleshs35@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-rewire_0.0.6_1686034236414_0.7111353826586155"},"_hasShrinkwrap":false},"0.0.7":{"name":"redux-rewire","version":"0.0.7","description":"State management library for react based applications","main":"./cjs/index.js","author":{"name":"FanCode"},"license":"ISC","dependencies":{"react-redux":"^8.0.5","redux":"^4.2.0","typescript":"^4.9.4","immer":"^9.0.12"},"peerDependencies":{"react":"18.x","typescript":"^4.9.4"},"module":"./esm/index.js","types":"./esm/index.d.ts","_id":"redux-rewire@0.0.7","dist":{"shasum":"10a76a622edd1e21726da0c9f57cfd5719619ed1","integrity":"sha512-qCJsnVOr73nNn3FEXHsyYW1lvjvY/8cBhaM9ycrR+y0C382C3XgpOccIhXI8xZWezcg6wdIVt53bul8Gwp1aVw==","tarball":"https://registry.npmjs.org/redux-rewire/-/redux-rewire-0.0.7.tgz","fileCount":206,"unpackedSize":183955,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGKYEr7P+odQorxtz5k89VWMNy3VZXVCpfmP55wCcBWHAiAD1Sab8Y7U1Y/xnSPRpv/4qROqkkAsdnVT4s8mXu7OSA=="}]},"_npmUser":{"name":"hugebelieve","email":"hugebelieve@gmail.com"},"directories":{},"maintainers":[{"name":"hugebelieve","email":"hugebelieve@gmail.com"},{"name":"kamleshsharma","email":"kamleshs35@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-rewire_0.0.7_1686034518219_0.23925727791838414"},"_hasShrinkwrap":false},"0.0.8":{"name":"redux-rewire","version":"0.0.8","description":"State management library for react based applications","main":"./cjs/index.js","author":{"name":"FanCode"},"license":"ISC","dependencies":{"react-redux":"^8.0.5","redux":"^4.2.0","typescript":"^4.9.4","immer":"^9.0.12"},"peerDependencies":{"react":"18.x","typescript":"^4.9.4"},"module":"./esm/index.js","types":"./esm/index.d.ts","_id":"redux-rewire@0.0.8","dist":{"shasum":"b3e9b24667978fe5b686bb58f6cc3f5e7dab03b9","integrity":"sha512-+KmHX7pZwecDLYzufQKG7lSnIdBXEVa7f+zNBlfOyg76ZBqT4FjpJZtGGaavGh+bBf1RXoeYref3FuJXOblxAA==","tarball":"https://registry.npmjs.org/redux-rewire/-/redux-rewire-0.0.8.tgz","fileCount":206,"unpackedSize":184051,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGV0HiZUuHCp0bpxgl5rnBULfQ/s/GzHTo/y+Ufxt0O9AiA0NgYB4yUJyb7eAGikuWs2fR12d5jLWtLoBOj02e4L7w=="}]},"_npmUser":{"name":"hugebelieve","email":"hugebelieve@gmail.com"},"directories":{},"maintainers":[{"name":"hugebelieve","email":"hugebelieve@gmail.com"},{"name":"kamleshsharma","email":"kamleshs35@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-rewire_0.0.8_1687766441455_0.459392013923136"},"_hasShrinkwrap":false},"0.0.9":{"name":"redux-rewire","version":"0.0.9","description":"State management library for react based applications","main":"./cjs/index.js","author":{"name":"FanCode"},"license":"ISC","dependencies":{"react-redux":"^8.0.5","redux":"^4.2.0","typescript":"^4.9.4","immer":"^9.0.12"},"peerDependencies":{"react":"18.x","typescript":"^4.9.4"},"module":"./esm/index.js","types":"./esm/index.d.ts","_id":"redux-rewire@0.0.9","dist":{"shasum":"b382e74dd7cf173cd9bbfca9bef1555a5eb34504","integrity":"sha512-htYy149mmyT6cZ+/VxcPBMme07zth5uEmFzhfbtxyqbbY2xj4CIXjcqWvKXf/CiddCHX9cfMlTLrbJY9N3FXOA==","tarball":"https://registry.npmjs.org/redux-rewire/-/redux-rewire-0.0.9.tgz","fileCount":206,"unpackedSize":184050,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDb54BPvyveOHKu1sLz7djczdDKUXtB4rEUccmvbyes8QIgcjVtPuuxqD/xR1BZZjzg0tQj2KCf9MggioqTSQjRXUM="}]},"_npmUser":{"name":"hugebelieve","email":"hugebelieve@gmail.com"},"directories":{},"maintainers":[{"name":"hugebelieve","email":"hugebelieve@gmail.com"},{"name":"kamleshsharma","email":"kamleshs35@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-rewire_0.0.9_1687766503457_0.1975414135113429"},"_hasShrinkwrap":false},"0.0.10":{"name":"redux-rewire","version":"0.0.10","description":"State management library for react based applications","main":"./cjs/index.js","author":{"name":"FanCode"},"license":"ISC","dependencies":{"react-redux":"^8.0.5","redux":"^4.2.0","typescript":"^4.9.4","immer":"^9.0.12"},"peerDependencies":{"react":"18.x","typescript":"^4.9.4"},"module":"./esm/index.js","types":"./esm/index.d.ts","_id":"redux-rewire@0.0.10","dist":{"shasum":"bae24a79c5ed618412d7b99e9a853b05f440a7c3","integrity":"sha512-x7ifr9rnD2nKDAAlH6E3keDkGQAmbnIitN/0TKzKDQOWa2Gt+fzVEzTy74WE5qVn0j1ilW6XsqP12zky4t5jyQ==","tarball":"https://registry.npmjs.org/redux-rewire/-/redux-rewire-0.0.10.tgz","fileCount":206,"unpackedSize":184050,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCtmdK4SPzCEPsOBlZPNiCnDmT28BqmG3ra/imGPMeE8AIhAKLnmOfCqli27N1qWJXR50ISJpV9zpc5iLonfeKUTYLd"}]},"_npmUser":{"name":"hugebelieve","email":"hugebelieve@gmail.com"},"directories":{},"maintainers":[{"name":"hugebelieve","email":"hugebelieve@gmail.com"},{"name":"kamleshsharma","email":"kamleshs35@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-rewire_0.0.10_1687766620902_0.05150367295697045"},"_hasShrinkwrap":false},"0.0.11":{"name":"redux-rewire","version":"0.0.11","description":"State management library for react based applications","main":"./cjs/index.js","author":{"name":"FanCode"},"license":"ISC","dependencies":{"react-redux":"^8.0.5","redux":"^4.2.0","typescript":"^4.9.4","immer":"^9.0.12"},"peerDependencies":{"react":"18.x","typescript":"^4.9.4"},"repository":{"type":"git","url":"https://github.com/ds-fancode/redux-rewire"},"module":"./esm/index.js","types":"./esm/index.d.ts","_id":"redux-rewire@0.0.11","dist":{"shasum":"8c4bc25af8ad1fe8f92ac4de91a88e07f135cc3e","integrity":"sha512-LAF6nuJJCOQw+036GBAkTasvGYQPPnLILWnNhlu9MyItwFgRJAYyZiUqRvxubtEz/Ii/aEuHUlhtUnJ/Ao4vmw==","tarball":"https://registry.npmjs.org/redux-rewire/-/redux-rewire-0.0.11.tgz","fileCount":206,"unpackedSize":184129,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDIuYuzCHzvPHp0idJV/IDTqviTgYMbSFnWwcFTOSUh8AIhAKRyonpzHXk0aluH0zYNPC4njuWyT03jy/1JI9UqYWux"}]},"_npmUser":{"name":"hugebelieve","email":"hugebelieve@gmail.com"},"directories":{},"maintainers":[{"name":"hugebelieve","email":"hugebelieve@gmail.com"},{"name":"kamleshsharma","email":"kamleshs35@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-rewire_0.0.11_1688097063650_0.21983865835991767"},"_hasShrinkwrap":false},"0.0.12":{"name":"redux-rewire","version":"0.0.12","description":"State management library for react based applications","main":"./cjs/index.js","author":{"name":"FanCode"},"license":"ISC","dependencies":{"react-redux":"^8.0.5","redux":"^4.2.0","typescript":"^4.9.4","immer":"^9.0.12"},"peerDependencies":{"react":"18.x","typescript":"^4.9.4"},"repository":{"type":"git","url":"https://github.com/ds-fancode/redux-rewire"},"module":"./esm/index.js","types":"./esm/index.d.ts","_id":"redux-rewire@0.0.12","dist":{"shasum":"ba1b1e0b0b2c224eef7f838ce7f36c16408be39e","integrity":"sha512-52fJ69dVK/5d9HdO7x/EbOJp7gf8OOl0TK3aVqFyrz+NiM/u/avqg5s3W6uM8LODvQQ3yBaaeiY+9ub/mlKgqw==","tarball":"https://registry.npmjs.org/redux-rewire/-/redux-rewire-0.0.12.tgz","fileCount":206,"unpackedSize":184193,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE9jxkm2JBd8wTJWXItkiAm1ZAxEEV9GNhqudYpT2l3tAiEApcJj/11QCZ13PfiPBOMTPqTx1k0TKHCzE9fxDBvw48g="}]},"_npmUser":{"name":"hugebelieve","email":"hugebelieve@gmail.com"},"directories":{},"maintainers":[{"name":"hugebelieve","email":"hugebelieve@gmail.com"},{"name":"kamleshsharma","email":"kamleshs35@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-rewire_0.0.12_1693819887074_0.2694323140231094"},"_hasShrinkwrap":false},"0.0.13":{"name":"redux-rewire","version":"0.0.13","description":"State management library for react based applications","main":"./cjs/index.js","author":{"name":"FanCode"},"license":"ISC","dependencies":{"react-redux":"^8.0.5","redux":"^4.2.0","typescript":"^4.9.4","immer":"^9.0.12"},"peerDependencies":{"react":"18.x","typescript":"^4.9.4"},"repository":{"type":"git","url":"https://github.com/ds-fancode/redux-rewire"},"module":"./esm/index.js","types":"./esm/index.d.ts","_id":"redux-rewire@0.0.13","dist":{"shasum":"84f2741478cf9956dd9b2d2481a89a30de989f62","integrity":"sha512-kAMAcnGrX2B62imwbFQQp4WD1NFlFbYoUnfhNvWcb4nUkc2J7PImNuYhVOxDXaO3QEM8YcS+Prgj6nvp2A+pQw==","tarball":"https://registry.npmjs.org/redux-rewire/-/redux-rewire-0.0.13.tgz","fileCount":206,"unpackedSize":184339,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBdRvN+pO16LABcdvl3nTsGHMqyPxoAy0Cl1Xesy7EAWAiEAnyCSNJi6Uz1vQlt3yHZLWaBodygzwDpnE6c3gz43l70="}]},"_npmUser":{"name":"hugebelieve","email":"hugebelieve@gmail.com"},"directories":{},"maintainers":[{"name":"hugebelieve","email":"hugebelieve@gmail.com"},{"name":"kamleshsharma","email":"kamleshs35@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-rewire_0.0.13_1693820010841_0.8374768539942192"},"_hasShrinkwrap":false},"0.0.14":{"name":"redux-rewire","version":"0.0.14","description":"State management library for react based applications","main":"./cjs/index.js","author":{"name":"FanCode"},"license":"ISC","dependencies":{"react-redux":"^8.0.5","redux":"^4.2.0","typescript":"^4.9.4","immer":"^9.0.12"},"peerDependencies":{"react":"18.x","typescript":"^4.9.4"},"repository":{"type":"git","url":"https://github.com/ds-fancode/redux-rewire"},"module":"./esm/index.js","types":"./esm/index.d.ts","_id":"redux-rewire@0.0.14","dist":{"shasum":"8d719d01815755538b65eaa581787fd7067c388e","integrity":"sha512-KcnnTBLVC+FDQnYz2BlHNMBaDsmbpFw6gSLi9/3jBsRmeH56D4vG2L7htXvrxaKjONxUEfJh/a05LGYJKqvZog==","tarball":"https://registry.npmjs.org/redux-rewire/-/redux-rewire-0.0.14.tgz","fileCount":206,"unpackedSize":184193,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDVA0jk9ink3BZigODEmooQknACd6NTCDHoOWwAWFGB5AiBgtj/OmQw2AwE4htdTieM8yccywwexGjUB7aKw9GgI7A=="}]},"_npmUser":{"name":"hugebelieve","email":"hugebelieve@gmail.com"},"directories":{},"maintainers":[{"name":"hugebelieve","email":"hugebelieve@gmail.com"},{"name":"kamleshsharma","email":"kamleshs35@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-rewire_0.0.14_1693820679746_0.09115708387719046"},"_hasShrinkwrap":false},"0.0.15":{"name":"redux-rewire","version":"0.0.15","description":"State management library for react based applications","main":"./cjs/index.js","author":{"name":"FanCode"},"license":"ISC","dependencies":{"react-redux":"^8.0.5","redux":"^4.2.0","typescript":"^4.9.4","immer":"^9.0.12"},"peerDependencies":{"react":"18.x","typescript":"^4.9.4"},"repository":{"type":"git","url":"https://github.com/ds-fancode/redux-rewire"},"module":"./esm/index.js","types":"./esm/index.d.ts","_id":"redux-rewire@0.0.15","dist":{"shasum":"0c86d135c1a9db1552df9a7a0acdd8133891d3c8","integrity":"sha512-EtVs4GCGTKSgMlUo2dhpSIM8vPiSSdXVFYtntX/Sehb4D8qwBIRS9b/FDa4jaLkl/Ndq+frluhdfBeBNYfH9rw==","tarball":"https://registry.npmjs.org/redux-rewire/-/redux-rewire-0.0.15.tgz","fileCount":206,"unpackedSize":184211,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCpe0+FCMQUXS4bLTihR2eeAo63kQD1BCVb053+Fj7YrgIgF012Kp2ufXVdKY16IayGfhZgItYYimVf5Ar6oDY68to="}]},"_npmUser":{"name":"hugebelieve","email":"hugebelieve@gmail.com"},"directories":{},"maintainers":[{"name":"hugebelieve","email":"hugebelieve@gmail.com"},{"name":"kamleshsharma","email":"kamleshs35@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-rewire_0.0.15_1693821781819_0.5715740952694264"},"_hasShrinkwrap":false},"0.0.22-beta.0":{"name":"redux-rewire","version":"0.0.22-beta.0","description":"State management library for react based applications","main":"./cjs/index.js","scripts":{},"author":{"name":"FanCode"},"license":"ISC","dependencies":{"react-redux":"^8.0.5","redux":"^4.2.0","immer":"^9.0.12"},"devDependencies":{},"peerDependencies":{"react":"18.x"},"repository":{"type":"git","url":"git+https://github.com/ds-fancode/redux-rewire.git"},"module":"./esm/index.js","types":"./esm/index.d.ts","readme":"# redux-rewire\n\n## Content\n- [Introduction](#Introduction)\n- [Installation](#Installation)\n- [Basic Usage](#Basic-Usage)\n- [API Definitions](#api-definitions)\n- [Examples](#Examples)\n- [Advance Usage](#Advance-Usage)\n- [About](#About)\n\n## Introduction\nState management library for react application built on top of redux and react-redux, \nworks well with large scale frontend applications\n\nFollowing are the benefits of redux-rewire\n\n- Incremental store: The state for a component is only added once it is part of the rendered view\n- Immutable state: Redux-rewire automatically takes care of state mutation with the help of [immer](https://github.com/immerjs/immer) objects\n- Suitable with React Server side rendering.\n- Works well with react-native projects.\n- Full type safe: Redux-rewire is created with the intention to integrate will with large scale typescript projects\n\n\n## Installation\nUsing npm\n```shell\nnpm install redux-rewire --save-prod\n```\nUsing yarn package manager\n```shell\nyarn add redux-rewire -S\n```\n\n## Basic Usage\nInitialise the redux-rewire at the root of the app.\n```typescript jsx\n// App.js\nimport { configureStore, RewireProvider } from \"redux-rewire\";\nimport AppRoutes from './app/appRoutes'\n\nfunction App() {\n  const initialReducers = {}\n  const initialState = {}\n  const store = configureStore(initialReducers, initialState, {\n    middlewares: [], // We can pass middlewares to the redux\n  });\n  return (\n    <React.StrictMode>\n        <RewireProvider store={store}>\n          <AppRoutes />\n        </RewireProvider>\n    </React.StrictMode>\n  );\n}\n\nexport default App;\n```\n\nAfter the above initialization is done we can create build our stateful components.\n\nLet's take an example of component which is called homeScreen.tsx\n- homeScreen.ts\n- homeScreen.reducer.ts\n- homeScreen.actions.ts\n- homeScreen.init.ts\n\nAbove the file is suffixed with .reducer, .action is just for the matter of understanding the purpose of file\n\nStart with creating initial state for our home screen component\n```typescript\n// Following is the content of homeScreen.init.ts\n\nimport {createInitialState }from 'redux-rewire'\n\ninterface InitialStateType { data: string[] }\n\nexport const initialState = createInitialState<InitialStateType>(\"home-key\",{\n  data: [],\n});\n```\n\nNow, we will create the reducers for the component which will update the state\nHere, we are adding tha add reducers which will add the todo item in the state\n\nNote: Do not worry about direct state mutation, internally state object is an [immer](https://github.com/immerjs/immer) object\n\n```typescript\n// Following is the content of homeScreen.reducers.ts\n\nimport { createReducerSlice } from \"redux-rewire\";\nimport { initialState } from \"./homeScreen.init\";\n\n// The intial state created in the homeScreen.init.ts\nexport const reducerSlice = createReducerSlice(initialState, {\n  // state is the latest state of the home screnn component\n  // actionData is the data passed while calling from home screen view\n  add: (state, actionData: string) => {\n    state.list.push(actionData);\n    return state;\n  },\n});\n\n```\n\nFollowing file contains all the side effects or async task for the homeScreen component \n\nFor eg. we might need to send analytics to the backend when ever the todo item is added\n\n```typescript\n// Following is the content of homeScreen.action.ts\n\nimport { createActionSlice } from \"redux-rewire\";\nimport {  reducerSlice } from \"./homeScreen.reducer\";\nexport const actionSlice = createActionSlice(reducerSlice, {\n  add: (state, actions, actionData, key, globalState) => {\n    \n    // The following array returned has nothing to do with redux-rewire, it is application specific\n    return [{\n      actionType: \"Analytics\",\n      payload: {\n        eventNAme: \"ToDOAdded\",\n        data: actionData\n      }\n    }];\n  },\n});\n```\nNow, in the view file we will initial our state using useRewireState api which will add the component state to redux when the view if rendered for the first time\n\n```typescript jsx\n// Following is the content of homeScreen.tsx\nimport {identitySelector, useGlobalState, useRewireState} from 'redux-rewire'\nimport {actionSlice} from './homeScreen.actions'\nimport {useCallback} from 'react'\n\nconst HomeScreen = (props) => {\n  const [key, state, actions] = useRewireState(\n    'home-key',\n    actionSlice,\n    identitySelector\n  )\n  const addToDo = useCallback(() => {\n    if (inputRef.current) {\n      const value = inputRef.current.value\n      actions.add(value)\n    }\n  }, [actions])\n  return (\n    <div >\n      <div>\n        <input ref={inputRef} />\n        <button onClick={addToDo}>ADD TO-DO</button>\n      </div>\n      <div>\n        {state.list.map((v) => {\n            return <div className={'item'}>Test</div>\n        })}\n        {state.list.length === 0 ? <div>Your To Do list is empty</div> : null}\n      </div>\n    </div>\n  )\n}\n\n  export default HomeScreen\n\n\n```\n\n\n## API Definitions\n| Api                | input                                          | Description | usage |\n|--------------------|------------------------------------------------|-------------|-------|\n| createInitialState | (compKey, intialState)                         |             |       |\n| createReducerSlice | (state, actionData, compKey, globalState)      |             |       |\n| createActionSlice  | (state, actions, actionData, key, globalState) |             |       |\n| useRewireState     | (compKey, actionSlice, selectors)              |             |       |\n\n\n## Examples\nPlease refer the [examples](https://github.com/ds-fancode/redux-rewire/tree/main/example) directory\n\n## Link to Docs\nPlease refer the [docs](https://ds-fancode.github.io/redux-rewire) directory\n\n## Advance Usage\nComing Soon\n## About\nRedux-Rewire is developed and maintained by [Fancode](https://www.fancode.com/) and many amazing contributors.\n\n","readmeFilename":"README.md","gitHead":"ad816368e796e16f257fd01d259cfc489da91b82","bugs":{"url":"https://github.com/ds-fancode/redux-rewire/issues"},"homepage":"https://github.com/ds-fancode/redux-rewire#readme","_id":"redux-rewire@0.0.22-beta.0","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-iyL1k+emZnsNUDAEoGbpzerVqyO7e+a+m2K3KVNtJ8KhobcAi8Of1ChGFPoqUx5KMHTXYlgNtKtfuZ7puTms9Q==","shasum":"67dc4afd45c6430f35e21cc4da658ce6dc7c1366","tarball":"https://registry.npmjs.org/redux-rewire/-/redux-rewire-0.0.22-beta.0.tgz","fileCount":315,"unpackedSize":271851,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAMvCRCZ97HTRPN4pp3jkPL9TF71NpK9Yl7VWlyrR2h6AiEAvBGLOieLZ2CWp6d0X/gQYrLc9TnK8omIUO+v/hFVL5Y="}]},"_npmUser":{"name":"kamleshsharma","email":"kamleshs35@gmail.com"},"directories":{},"maintainers":[{"name":"hugebelieve","email":"hugebelieve@gmail.com"},{"name":"kamleshsharma","email":"kamleshs35@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-rewire_0.0.22-beta.0_1699245752802_0.23895734386359235"},"_hasShrinkwrap":false},"0.0.16-beta.0":{"name":"redux-rewire","version":"0.0.16-beta.0","description":"State management library for react based applications","main":"./cjs/index.js","scripts":{},"author":{"name":"FanCode"},"license":"ISC","dependencies":{"react-redux":"^8.0.5","redux":"^4.2.0","immer":"^9.0.12"},"devDependencies":{},"peerDependencies":{"react":"18.x"},"repository":{"type":"git","url":"git+https://github.com/ds-fancode/redux-rewire.git"},"module":"./esm/index.js","types":"./esm/index.d.ts","readme":"# redux-rewire\n\n## Content\n- [Introduction](#Introduction)\n- [Installation](#Installation)\n- [Basic Usage](#Basic-Usage)\n- [API Definitions](#api-definitions)\n- [Examples](#Examples)\n- [Advance Usage](#Advance-Usage)\n- [About](#About)\n\n## Introduction\nState management library for react application built on top of redux and react-redux, \nworks well with large scale frontend applications\n\nFollowing are the benefits of redux-rewire\n\n- Incremental store: The state for a component is only added once it is part of the rendered view\n- Immutable state: Redux-rewire automatically takes care of state mutation with the help of [immer](https://github.com/immerjs/immer) objects\n- Suitable with React Server side rendering.\n- Works well with react-native projects.\n- Full type safe: Redux-rewire is created with the intention to integrate will with large scale typescript projects\n\n\n## Installation\nUsing npm\n```shell\nnpm install redux-rewire --save-prod\n```\nUsing yarn package manager\n```shell\nyarn add redux-rewire -S\n```\n\n## Basic Usage\nInitialise the redux-rewire at the root of the app.\n```typescript jsx\n// App.js\nimport { configureStore, RewireProvider } from \"redux-rewire\";\nimport AppRoutes from './app/appRoutes'\n\nfunction App() {\n  const initialReducers = {}\n  const initialState = {}\n  const store = configureStore(initialReducers, initialState, {\n    middlewares: [], // We can pass middlewares to the redux\n  });\n  return (\n    <React.StrictMode>\n        <RewireProvider store={store}>\n          <AppRoutes />\n        </RewireProvider>\n    </React.StrictMode>\n  );\n}\n\nexport default App;\n```\n\nAfter the above initialization is done we can create build our stateful components.\n\nLet's take an example of component which is called homeScreen.tsx\n- homeScreen.ts\n- homeScreen.reducer.ts\n- homeScreen.actions.ts\n- homeScreen.init.ts\n\nAbove the file is suffixed with .reducer, .action is just for the matter of understanding the purpose of file\n\nStart with creating initial state for our home screen component\n```typescript\n// Following is the content of homeScreen.init.ts\n\nimport {createInitialState }from 'redux-rewire'\n\ninterface InitialStateType { data: string[] }\n\nexport const initialState = createInitialState<InitialStateType>(\"home-key\",{\n  data: [],\n});\n```\n\nNow, we will create the reducers for the component which will update the state\nHere, we are adding tha add reducers which will add the todo item in the state\n\nNote: Do not worry about direct state mutation, internally state object is an [immer](https://github.com/immerjs/immer) object\n\n```typescript\n// Following is the content of homeScreen.reducers.ts\n\nimport { createReducerSlice } from \"redux-rewire\";\nimport { initialState } from \"./homeScreen.init\";\n\n// The intial state created in the homeScreen.init.ts\nexport const reducerSlice = createReducerSlice(initialState, {\n  // state is the latest state of the home screnn component\n  // actionData is the data passed while calling from home screen view\n  add: (state, actionData: string) => {\n    state.list.push(actionData);\n    return state;\n  },\n});\n\n```\n\nFollowing file contains all the side effects or async task for the homeScreen component \n\nFor eg. we might need to send analytics to the backend when ever the todo item is added\n\n```typescript\n// Following is the content of homeScreen.action.ts\n\nimport { createActionSlice } from \"redux-rewire\";\nimport {  reducerSlice } from \"./homeScreen.reducer\";\nexport const actionSlice = createActionSlice(reducerSlice, {\n  add: (state, actions, actionData, key, globalState) => {\n    \n    // The following array returned has nothing to do with redux-rewire, it is application specific\n    return [{\n      actionType: \"Analytics\",\n      payload: {\n        eventNAme: \"ToDOAdded\",\n        data: actionData\n      }\n    }];\n  },\n});\n```\nNow, in the view file we will initial our state using useRewireState api which will add the component state to redux when the view if rendered for the first time\n\n```typescript jsx\n// Following is the content of homeScreen.tsx\nimport {identitySelector, useGlobalState, useRewireState} from 'redux-rewire'\nimport {actionSlice} from './homeScreen.actions'\nimport {useCallback} from 'react'\n\nconst HomeScreen = (props) => {\n  const [key, state, actions] = useRewireState(\n    'home-key',\n    actionSlice,\n    identitySelector\n  )\n  const addToDo = useCallback(() => {\n    if (inputRef.current) {\n      const value = inputRef.current.value\n      actions.add(value)\n    }\n  }, [actions])\n  return (\n    <div >\n      <div>\n        <input ref={inputRef} />\n        <button onClick={addToDo}>ADD TO-DO</button>\n      </div>\n      <div>\n        {state.list.map((v) => {\n            return <div className={'item'}>Test</div>\n        })}\n        {state.list.length === 0 ? <div>Your To Do list is empty</div> : null}\n      </div>\n    </div>\n  )\n}\n\n  export default HomeScreen\n\n\n```\n\n\n## API Definitions\n| Api                | input                                          | Description | usage |\n|--------------------|------------------------------------------------|-------------|-------|\n| createInitialState | (compKey, intialState)                         |             |       |\n| createReducerSlice | (state, actionData, compKey, globalState)      |             |       |\n| createActionSlice  | (state, actions, actionData, key, globalState) |             |       |\n| useRewireState     | (compKey, actionSlice, selectors)              |             |       |\n\n\n## Examples\nPlease refer the [examples](https://github.com/ds-fancode/redux-rewire/tree/main/example) directory\n\n## Link to Docs\nPlease refer the [docs](https://ds-fancode.github.io/redux-rewire) directory\n\n## Advance Usage\nComing Soon\n## About\nRedux-Rewire is developed and maintained by [Fancode](https://www.fancode.com/) and many amazing contributors.\n\n","readmeFilename":"README.md","gitHead":"e5bfbce2dbb4054d2c6d4c9c803aaef89c8a56f6","bugs":{"url":"https://github.com/ds-fancode/redux-rewire/issues"},"homepage":"https://github.com/ds-fancode/redux-rewire#readme","_id":"redux-rewire@0.0.16-beta.0","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-149VsQ5LrtJhmdMJV4swL+SWlFxy3sRPnzFWnntDfEG3xRCIwNsK0FyJ5oktxYQMNAIkQ80VjO1z9wQTorppNQ==","shasum":"e1e038688a72472dce4b6f102991ea16958fdd25","tarball":"https://registry.npmjs.org/redux-rewire/-/redux-rewire-0.0.16-beta.0.tgz","fileCount":315,"unpackedSize":271851,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCKzgEenYkrDxXwj5q71OtwU7z7o1Mm4jBN1Kbu44N44QIhAOfhfnweJqtuz/E0qfZEZH5svNhbBw5H42hCYY67S1/e"}]},"_npmUser":{"name":"kamleshsharma","email":"kamleshs35@gmail.com"},"directories":{},"maintainers":[{"name":"hugebelieve","email":"hugebelieve@gmail.com"},{"name":"kamleshsharma","email":"kamleshs35@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-rewire_0.0.16-beta.0_1699246273698_0.9364284000186429"},"_hasShrinkwrap":false},"0.0.16-beta.1":{"name":"redux-rewire","version":"0.0.16-beta.1","description":"State management library for react based applications","main":"./cjs/index.js","scripts":{},"author":{"name":"FanCode"},"license":"ISC","dependencies":{"react-redux":"^8.0.5","redux":"^4.2.0","immer":"^9.0.12"},"devDependencies":{},"peerDependencies":{"react":"18.x"},"repository":{"type":"git","url":"git+https://github.com/ds-fancode/redux-rewire.git"},"module":"./esm/index.js","types":"./esm/index.d.ts","readme":"# redux-rewire\n\n## Content\n- [Introduction](#Introduction)\n- [Installation](#Installation)\n- [Basic Usage](#Basic-Usage)\n- [API Definitions](#api-definitions)\n- [Examples](#Examples)\n- [Advance Usage](#Advance-Usage)\n- [About](#About)\n\n## Introduction\nState management library for react application built on top of redux and react-redux, \nworks well with large scale frontend applications\n\nFollowing are the benefits of redux-rewire\n\n- Incremental store: The state for a component is only added once it is part of the rendered view\n- Immutable state: Redux-rewire automatically takes care of state mutation with the help of [immer](https://github.com/immerjs/immer) objects\n- Suitable with React Server side rendering.\n- Works well with react-native projects.\n- Full type safe: Redux-rewire is created with the intention to integrate will with large scale typescript projects\n\n\n## Installation\nUsing npm\n```shell\nnpm install redux-rewire --save-prod\n```\nUsing yarn package manager\n```shell\nyarn add redux-rewire -S\n```\n\n## Basic Usage\nInitialise the redux-rewire at the root of the app.\n```typescript jsx\n// App.js\nimport { configureStore, RewireProvider } from \"redux-rewire\";\nimport AppRoutes from './app/appRoutes'\n\nfunction App() {\n  const initialReducers = {}\n  const initialState = {}\n  const store = configureStore(initialReducers, initialState, {\n    middlewares: [], // We can pass middlewares to the redux\n  });\n  return (\n    <React.StrictMode>\n        <RewireProvider store={store}>\n          <AppRoutes />\n        </RewireProvider>\n    </React.StrictMode>\n  );\n}\n\nexport default App;\n```\n\nAfter the above initialization is done we can create build our stateful components.\n\nLet's take an example of component which is called homeScreen.tsx\n- homeScreen.ts\n- homeScreen.reducer.ts\n- homeScreen.actions.ts\n- homeScreen.init.ts\n\nAbove the file is suffixed with .reducer, .action is just for the matter of understanding the purpose of file\n\nStart with creating initial state for our home screen component\n```typescript\n// Following is the content of homeScreen.init.ts\n\nimport {createInitialState }from 'redux-rewire'\n\ninterface InitialStateType { data: string[] }\n\nexport const initialState = createInitialState<InitialStateType>(\"home-key\",{\n  data: [],\n});\n```\n\nNow, we will create the reducers for the component which will update the state\nHere, we are adding tha add reducers which will add the todo item in the state\n\nNote: Do not worry about direct state mutation, internally state object is an [immer](https://github.com/immerjs/immer) object\n\n```typescript\n// Following is the content of homeScreen.reducers.ts\n\nimport { createReducerSlice } from \"redux-rewire\";\nimport { initialState } from \"./homeScreen.init\";\n\n// The intial state created in the homeScreen.init.ts\nexport const reducerSlice = createReducerSlice(initialState, {\n  // state is the latest state of the home screnn component\n  // actionData is the data passed while calling from home screen view\n  add: (state, actionData: string) => {\n    state.list.push(actionData);\n    return state;\n  },\n});\n\n```\n\nFollowing file contains all the side effects or async task for the homeScreen component \n\nFor eg. we might need to send analytics to the backend when ever the todo item is added\n\n```typescript\n// Following is the content of homeScreen.action.ts\n\nimport { createActionSlice } from \"redux-rewire\";\nimport {  reducerSlice } from \"./homeScreen.reducer\";\nexport const actionSlice = createActionSlice(reducerSlice, {\n  add: (state, actions, actionData, key, globalState) => {\n    \n    // The following array returned has nothing to do with redux-rewire, it is application specific\n    return [{\n      actionType: \"Analytics\",\n      payload: {\n        eventNAme: \"ToDOAdded\",\n        data: actionData\n      }\n    }];\n  },\n});\n```\nNow, in the view file we will initial our state using useRewireState api which will add the component state to redux when the view if rendered for the first time\n\n```typescript jsx\n// Following is the content of homeScreen.tsx\nimport {identitySelector, useGlobalState, useRewireState} from 'redux-rewire'\nimport {actionSlice} from './homeScreen.actions'\nimport {useCallback} from 'react'\n\nconst HomeScreen = (props) => {\n  const [key, state, actions] = useRewireState(\n    'home-key',\n    actionSlice,\n    identitySelector\n  )\n  const addToDo = useCallback(() => {\n    if (inputRef.current) {\n      const value = inputRef.current.value\n      actions.add(value)\n    }\n  }, [actions])\n  return (\n    <div >\n      <div>\n        <input ref={inputRef} />\n        <button onClick={addToDo}>ADD TO-DO</button>\n      </div>\n      <div>\n        {state.list.map((v) => {\n            return <div className={'item'}>Test</div>\n        })}\n        {state.list.length === 0 ? <div>Your To Do list is empty</div> : null}\n      </div>\n    </div>\n  )\n}\n\n  export default HomeScreen\n\n\n```\n\n\n## API Definitions\n| Api                | input                                          | Description | usage |\n|--------------------|------------------------------------------------|-------------|-------|\n| createInitialState | (compKey, intialState)                         |             |       |\n| createReducerSlice | (state, actionData, compKey, globalState)      |             |       |\n| createActionSlice  | (state, actions, actionData, key, globalState) |             |       |\n| useRewireState     | (compKey, actionSlice, selectors)              |             |       |\n\n\n## Examples\nPlease refer the [examples](https://github.com/ds-fancode/redux-rewire/tree/main/example) directory\n\n## Link to Docs\nPlease refer the [docs](https://ds-fancode.github.io/redux-rewire) directory\n\n## Advance Usage\nComing Soon\n## About\nRedux-Rewire is developed and maintained by [Fancode](https://www.fancode.com/) and many amazing contributors.\n\n","readmeFilename":"README.md","gitHead":"92ae101800d25efe6ddaed3995dd6a68fd2c1f28","bugs":{"url":"https://github.com/ds-fancode/redux-rewire/issues"},"homepage":"https://github.com/ds-fancode/redux-rewire#readme","_id":"redux-rewire@0.0.16-beta.1","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-87SObyyQUHWn3lDiYWuUyhuKEOUj29Kg3zJPnWZsSnNo6pxWS1SA3314v7rNr4eLC0avhNdZSQ8mYEfk9vqcBQ==","shasum":"3f03fe39b58a383f86c40c3a5c9699f990998245","tarball":"https://registry.npmjs.org/redux-rewire/-/redux-rewire-0.0.16-beta.1.tgz","fileCount":315,"unpackedSize":271343,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHV1hNb3VC0xTHMUZc5tm9SNY7eNjxC9Q2ijnMcKI1SXAiEAjllXqy1xGWbOJ5mI3G594gvw+Lfn28FZNIgoWhx7Bkg="}]},"_npmUser":{"name":"kamleshsharma","email":"kamleshs35@gmail.com"},"directories":{},"maintainers":[{"name":"hugebelieve","email":"hugebelieve@gmail.com"},{"name":"kamleshsharma","email":"kamleshs35@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-rewire_0.0.16-beta.1_1699247774069_0.40081183145209276"},"_hasShrinkwrap":false},"0.0.16-beta.2":{"name":"redux-rewire","version":"0.0.16-beta.2","description":"State management library for react based applications","main":"./cjs/index.js","scripts":{},"author":{"name":"FanCode"},"license":"ISC","dependencies":{"react-redux":"^8.0.5","redux":"^4.2.0","immer":"^9.0.12"},"devDependencies":{},"peerDependencies":{"react":"18.x"},"repository":{"type":"git","url":"git+https://github.com/ds-fancode/redux-rewire.git"},"module":"./esm/index.js","types":"./esm/index.d.ts","readme":"# redux-rewire\n\n## Content\n- [Introduction](#Introduction)\n- [Installation](#Installation)\n- [Basic Usage](#Basic-Usage)\n- [API Definitions](#api-definitions)\n- [Examples](#Examples)\n- [Advance Usage](#Advance-Usage)\n- [About](#About)\n\n## Introduction\nState management library for react application built on top of redux and react-redux, \nworks well with large scale frontend applications\n\nFollowing are the benefits of redux-rewire\n\n- Incremental store: The state for a component is only added once it is part of the rendered view\n- Immutable state: Redux-rewire automatically takes care of state mutation with the help of [immer](https://github.com/immerjs/immer) objects\n- Suitable with React Server side rendering.\n- Works well with react-native projects.\n- Full type safe: Redux-rewire is created with the intention to integrate will with large scale typescript projects\n\n\n## Installation\nUsing npm\n```shell\nnpm install redux-rewire --save-prod\n```\nUsing yarn package manager\n```shell\nyarn add redux-rewire -S\n```\n\n## Basic Usage\nInitialise the redux-rewire at the root of the app.\n```typescript jsx\n// App.js\nimport { configureStore, RewireProvider } from \"redux-rewire\";\nimport AppRoutes from './app/appRoutes'\n\nfunction App() {\n  const initialReducers = {}\n  const initialState = {}\n  const store = configureStore(initialReducers, initialState, {\n    middlewares: [], // We can pass middlewares to the redux\n  });\n  return (\n    <React.StrictMode>\n        <RewireProvider store={store}>\n          <AppRoutes />\n        </RewireProvider>\n    </React.StrictMode>\n  );\n}\n\nexport default App;\n```\n\nAfter the above initialization is done we can create build our stateful components.\n\nLet's take an example of component which is called homeScreen.tsx\n- homeScreen.ts\n- homeScreen.reducer.ts\n- homeScreen.actions.ts\n- homeScreen.init.ts\n\nAbove the file is suffixed with .reducer, .action is just for the matter of understanding the purpose of file\n\nStart with creating initial state for our home screen component\n```typescript\n// Following is the content of homeScreen.init.ts\n\nimport {createInitialState }from 'redux-rewire'\n\ninterface InitialStateType { data: string[] }\n\nexport const initialState = createInitialState<InitialStateType>(\"home-key\",{\n  data: [],\n});\n```\n\nNow, we will create the reducers for the component which will update the state\nHere, we are adding tha add reducers which will add the todo item in the state\n\nNote: Do not worry about direct state mutation, internally state object is an [immer](https://github.com/immerjs/immer) object\n\n```typescript\n// Following is the content of homeScreen.reducers.ts\n\nimport { createReducerSlice } from \"redux-rewire\";\nimport { initialState } from \"./homeScreen.init\";\n\n// The intial state created in the homeScreen.init.ts\nexport const reducerSlice = createReducerSlice(initialState, {\n  // state is the latest state of the home screnn component\n  // actionData is the data passed while calling from home screen view\n  add: (state, actionData: string) => {\n    state.list.push(actionData);\n    return state;\n  },\n});\n\n```\n\nFollowing file contains all the side effects or async task for the homeScreen component \n\nFor eg. we might need to send analytics to the backend when ever the todo item is added\n\n```typescript\n// Following is the content of homeScreen.action.ts\n\nimport { createActionSlice } from \"redux-rewire\";\nimport {  reducerSlice } from \"./homeScreen.reducer\";\nexport const actionSlice = createActionSlice(reducerSlice, {\n  add: (state, actions, actionData, key, globalState) => {\n    \n    // The following array returned has nothing to do with redux-rewire, it is application specific\n    return [{\n      actionType: \"Analytics\",\n      payload: {\n        eventNAme: \"ToDOAdded\",\n        data: actionData\n      }\n    }];\n  },\n});\n```\nNow, in the view file we will initial our state using useRewireState api which will add the component state to redux when the view if rendered for the first time\n\n```typescript jsx\n// Following is the content of homeScreen.tsx\nimport {identitySelector, useGlobalState, useRewireState} from 'redux-rewire'\nimport {actionSlice} from './homeScreen.actions'\nimport {useCallback} from 'react'\n\nconst HomeScreen = (props) => {\n  const [key, state, actions] = useRewireState(\n    'home-key',\n    actionSlice,\n    identitySelector\n  )\n  const addToDo = useCallback(() => {\n    if (inputRef.current) {\n      const value = inputRef.current.value\n      actions.add(value)\n    }\n  }, [actions])\n  return (\n    <div >\n      <div>\n        <input ref={inputRef} />\n        <button onClick={addToDo}>ADD TO-DO</button>\n      </div>\n      <div>\n        {state.list.map((v) => {\n            return <div className={'item'}>Test</div>\n        })}\n        {state.list.length === 0 ? <div>Your To Do list is empty</div> : null}\n      </div>\n    </div>\n  )\n}\n\n  export default HomeScreen\n\n\n```\n\n\n## API Definitions\n| Api                | input                                          | Description | usage |\n|--------------------|------------------------------------------------|-------------|-------|\n| createInitialState | (compKey, intialState)                         |             |       |\n| createReducerSlice | (state, actionData, compKey, globalState)      |             |       |\n| createActionSlice  | (state, actions, actionData, key, globalState) |             |       |\n| useRewireState     | (compKey, actionSlice, selectors)              |             |       |\n\n\n## Examples\nPlease refer the [examples](https://github.com/ds-fancode/redux-rewire/tree/main/example) directory\n\n## Link to Docs\nPlease refer the [docs](https://ds-fancode.github.io/redux-rewire) directory\n\n## Advance Usage\nComing Soon\n## About\nRedux-Rewire is developed and maintained by [Fancode](https://www.fancode.com/) and many amazing contributors.\n\n","readmeFilename":"README.md","gitHead":"22865964df14fb304c15533820a39eb46d210ea2","bugs":{"url":"https://github.com/ds-fancode/redux-rewire/issues"},"homepage":"https://github.com/ds-fancode/redux-rewire#readme","_id":"redux-rewire@0.0.16-beta.2","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-iNAmh5cNxkHBlZlSli19AEEQUd4IsT/fv/NWyv87AIE0MRDf4FeHimpHfpham+cOIZNCi5xk+cT+25BS7rUaDw==","shasum":"aa8c0f11d2fa1b50c7a87b669b767c732e89d63f","tarball":"https://registry.npmjs.org/redux-rewire/-/redux-rewire-0.0.16-beta.2.tgz","fileCount":321,"unpackedSize":278482,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCY2foFeYAvQSAjyyOsgkunu5r6PW1ltbO1OnFnCXPT+gIgPtS0cVtJPBABV0c74fotUl0G4qHOQnHpzEUoU+0M5+0="}]},"_npmUser":{"name":"kamleshsharma","email":"kamleshs35@gmail.com"},"directories":{},"maintainers":[{"name":"hugebelieve","email":"hugebelieve@gmail.com"},{"name":"kamleshsharma","email":"kamleshs35@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-rewire_0.0.16-beta.2_1700138975596_0.6000361779622476"},"_hasShrinkwrap":false},"0.0.16-beta.3":{"name":"redux-rewire","version":"0.0.16-beta.3","description":"State management library for react based applications","main":"./cjs/index.js","scripts":{},"author":{"name":"FanCode"},"license":"ISC","dependencies":{"react-redux":"^8.0.5","redux":"^4.2.0","immer":"^9.0.12"},"devDependencies":{},"peerDependencies":{"react":"18.x"},"repository":{"type":"git","url":"git+https://github.com/ds-fancode/redux-rewire.git"},"module":"./esm/index.js","types":"./esm/index.d.ts","readme":"# redux-rewire\n\n## Content\n- [Introduction](#Introduction)\n- [Installation](#Installation)\n- [Basic Usage](#Basic-Usage)\n- [API Definitions](#api-definitions)\n- [Examples](#Examples)\n- [Advance Usage](#Advance-Usage)\n- [About](#About)\n\n## Introduction\nState management library for react application built on top of redux and react-redux, \nworks well with large scale frontend applications\n\nFollowing are the benefits of redux-rewire\n\n- Incremental store: The state for a component is only added once it is part of the rendered view\n- Immutable state: Redux-rewire automatically takes care of state mutation with the help of [immer](https://github.com/immerjs/immer) objects\n- Suitable with React Server side rendering.\n- Works well with react-native projects.\n- Full type safe: Redux-rewire is created with the intention to integrate will with large scale typescript projects\n\n\n## Installation\nUsing npm\n```shell\nnpm install redux-rewire --save-prod\n```\nUsing yarn package manager\n```shell\nyarn add redux-rewire -S\n```\n\n## Basic Usage\nInitialise the redux-rewire at the root of the app.\n```typescript jsx\n// App.js\nimport { configureStore, RewireProvider } from \"redux-rewire\";\nimport AppRoutes from './app/appRoutes'\n\nfunction App() {\n  const initialReducers = {}\n  const initialState = {}\n  const store = configureStore(initialReducers, initialState, {\n    middlewares: [], // We can pass middlewares to the redux\n  });\n  return (\n    <React.StrictMode>\n        <RewireProvider store={store}>\n          <AppRoutes />\n        </RewireProvider>\n    </React.StrictMode>\n  );\n}\n\nexport default App;\n```\n\nAfter the above initialization is done we can create build our stateful components.\n\nLet's take an example of component which is called homeScreen.tsx\n- homeScreen.ts\n- homeScreen.reducer.ts\n- homeScreen.actions.ts\n- homeScreen.init.ts\n\nAbove the file is suffixed with .reducer, .action is just for the matter of understanding the purpose of file\n\nStart with creating initial state for our home screen component\n```typescript\n// Following is the content of homeScreen.init.ts\n\nimport {createInitialState }from 'redux-rewire'\n\ninterface InitialStateType { data: string[] }\n\nexport const initialState = createInitialState<InitialStateType>(\"home-key\",{\n  data: [],\n});\n```\n\nNow, we will create the reducers for the component which will update the state\nHere, we are adding tha add reducers which will add the todo item in the state\n\nNote: Do not worry about direct state mutation, internally state object is an [immer](https://github.com/immerjs/immer) object\n\n```typescript\n// Following is the content of homeScreen.reducers.ts\n\nimport { createReducerSlice } from \"redux-rewire\";\nimport { initialState } from \"./homeScreen.init\";\n\n// The intial state created in the homeScreen.init.ts\nexport const reducerSlice = createReducerSlice(initialState, {\n  // state is the latest state of the home screnn component\n  // actionData is the data passed while calling from home screen view\n  add: (state, actionData: string) => {\n    state.list.push(actionData);\n    return state;\n  },\n});\n\n```\n\nFollowing file contains all the side effects or async task for the homeScreen component \n\nFor eg. we might need to send analytics to the backend when ever the todo item is added\n\n```typescript\n// Following is the content of homeScreen.action.ts\n\nimport { createActionSlice } from \"redux-rewire\";\nimport {  reducerSlice } from \"./homeScreen.reducer\";\nexport const actionSlice = createActionSlice(reducerSlice, {\n  add: (state, actions, actionData, key, globalState) => {\n    \n    // The following array returned has nothing to do with redux-rewire, it is application specific\n    return [{\n      actionType: \"Analytics\",\n      payload: {\n        eventNAme: \"ToDOAdded\",\n        data: actionData\n      }\n    }];\n  },\n});\n```\nNow, in the view file we will initial our state using useRewireState api which will add the component state to redux when the view if rendered for the first time\n\n```typescript jsx\n// Following is the content of homeScreen.tsx\nimport {identitySelector, useGlobalState, useRewireState} from 'redux-rewire'\nimport {actionSlice} from './homeScreen.actions'\nimport {useCallback} from 'react'\n\nconst HomeScreen = (props) => {\n  const [key, state, actions] = useRewireState(\n    'home-key',\n    actionSlice,\n    identitySelector\n  )\n  const addToDo = useCallback(() => {\n    if (inputRef.current) {\n      const value = inputRef.current.value\n      actions.add(value)\n    }\n  }, [actions])\n  return (\n    <div >\n      <div>\n        <input ref={inputRef} />\n        <button onClick={addToDo}>ADD TO-DO</button>\n      </div>\n      <div>\n        {state.list.map((v) => {\n            return <div className={'item'}>Test</div>\n        })}\n        {state.list.length === 0 ? <div>Your To Do list is empty</div> : null}\n      </div>\n    </div>\n  )\n}\n\n  export default HomeScreen\n\n\n```\n\n\n## API Definitions\n| Api                | input                                          | Description | usage |\n|--------------------|------------------------------------------------|-------------|-------|\n| createInitialState | (compKey, intialState)                         |             |       |\n| createReducerSlice | (state, actionData, compKey, globalState)      |             |       |\n| createActionSlice  | (state, actions, actionData, key, globalState) |             |       |\n| useRewireState     | (compKey, actionSlice, selectors)              |             |       |\n\n\n## Examples\nPlease refer the [examples](https://github.com/ds-fancode/redux-rewire/tree/main/example) directory\n\n## Link to Docs\nPlease refer the [docs](https://ds-fancode.github.io/redux-rewire) directory\n\n## Advance Usage\nComing Soon\n## About\nRedux-Rewire is developed and maintained by [Fancode](https://www.fancode.com/) and many amazing contributors.\n\n","readmeFilename":"README.md","gitHead":"c1f56600836543f659cc41ca9352ce3d9a1aba5b","bugs":{"url":"https://github.com/ds-fancode/redux-rewire/issues"},"homepage":"https://github.com/ds-fancode/redux-rewire#readme","_id":"redux-rewire@0.0.16-beta.3","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-W3ZkhRGBtAicQdZpJPg94bUBKv4cXR5CJHa53Y6eR78h+r5aPGLM13fi2i6j5yXmMh6fNykfgLjh2aaR9rhMcw==","shasum":"49a4f1a980acad27eda4f2212c135caf22f6d9a9","tarball":"https://registry.npmjs.org/redux-rewire/-/redux-rewire-0.0.16-beta.3.tgz","fileCount":321,"unpackedSize":278432,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICqhzGaBbRYUMagGeTMS78EJvqWkQkGcpkzt6lNEZSFPAiEA9jp+TcIvqoknacy29WwKW4qgoVhlV2JTg/SgHkSD2Wg="}]},"_npmUser":{"name":"kamleshsharma","email":"kamleshs35@gmail.com"},"directories":{},"maintainers":[{"name":"hugebelieve","email":"hugebelieve@gmail.com"},{"name":"kamleshsharma","email":"kamleshs35@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-rewire_0.0.16-beta.3_1700225574272_0.6922859737461033"},"_hasShrinkwrap":false},"0.0.16-beta.4":{"name":"redux-rewire","version":"0.0.16-beta.4","description":"State management library for react based applications","main":"./cjs/index.js","scripts":{},"author":{"name":"FanCode"},"license":"ISC","dependencies":{"react-redux":"^8.0.5","redux":"^4.2.0","immer":"^9.0.12"},"devDependencies":{},"peerDependencies":{"react":"18.x"},"repository":{"type":"git","url":"git+https://github.com/ds-fancode/redux-rewire.git"},"module":"./esm/index.js","types":"./esm/index.d.ts","readme":"# redux-rewire\n\n## Content\n- [Introduction](#Introduction)\n- [Installation](#Installation)\n- [Basic Usage](#Basic-Usage)\n- [API Definitions](#api-definitions)\n- [Examples](#Examples)\n- [Advance Usage](#Advance-Usage)\n- [About](#About)\n\n## Introduction\nState management library for react application built on top of redux and react-redux, \nworks well with large scale frontend applications\n\nFollowing are the benefits of redux-rewire\n\n- Incremental store: The state for a component is only added once it is part of the rendered view\n- Immutable state: Redux-rewire automatically takes care of state mutation with the help of [immer](https://github.com/immerjs/immer) objects\n- Suitable with React Server side rendering.\n- Works well with react-native projects.\n- Full type safe: Redux-rewire is created with the intention to integrate will with large scale typescript projects\n\n\n## Installation\nUsing npm\n```shell\nnpm install redux-rewire --save-prod\n```\nUsing yarn package manager\n```shell\nyarn add redux-rewire -S\n```\n\n## Basic Usage\nInitialise the redux-rewire at the root of the app.\n```typescript jsx\n// App.js\nimport { configureStore, RewireProvider } from \"redux-rewire\";\nimport AppRoutes from './app/appRoutes'\n\nfunction App() {\n  const initialReducers = {}\n  const initialState = {}\n  const store = configureStore(initialReducers, initialState, {\n    middlewares: [], // We can pass middlewares to the redux\n  });\n  return (\n    <React.StrictMode>\n        <RewireProvider store={store}>\n          <AppRoutes />\n        </RewireProvider>\n    </React.StrictMode>\n  );\n}\n\nexport default App;\n```\n\nAfter the above initialization is done we can create build our stateful components.\n\nLet's take an example of component which is called homeScreen.tsx\n- homeScreen.ts\n- homeScreen.reducer.ts\n- homeScreen.actions.ts\n- homeScreen.init.ts\n\nAbove the file is suffixed with .reducer, .action is just for the matter of understanding the purpose of file\n\nStart with creating initial state for our home screen component\n```typescript\n// Following is the content of homeScreen.init.ts\n\nimport {createInitialState }from 'redux-rewire'\n\ninterface InitialStateType { data: string[] }\n\nexport const initialState = createInitialState<InitialStateType>(\"home-key\",{\n  data: [],\n});\n```\n\nNow, we will create the reducers for the component which will update the state\nHere, we are adding tha add reducers which will add the todo item in the state\n\nNote: Do not worry about direct state mutation, internally state object is an [immer](https://github.com/immerjs/immer) object\n\n```typescript\n// Following is the content of homeScreen.reducers.ts\n\nimport { createReducerSlice } from \"redux-rewire\";\nimport { initialState } from \"./homeScreen.init\";\n\n// The intial state created in the homeScreen.init.ts\nexport const reducerSlice = createReducerSlice(initialState, {\n  // state is the latest state of the home screnn component\n  // actionData is the data passed while calling from home screen view\n  add: (state, actionData: string) => {\n    state.list.push(actionData);\n    return state;\n  },\n});\n\n```\n\nFollowing file contains all the side effects or async task for the homeScreen component \n\nFor eg. we might need to send analytics to the backend when ever the todo item is added\n\n```typescript\n// Following is the content of homeScreen.action.ts\n\nimport { createActionSlice } from \"redux-rewire\";\nimport {  reducerSlice } from \"./homeScreen.reducer\";\nexport const actionSlice = createActionSlice(reducerSlice, {\n  add: (state, actions, actionData, key, globalState) => {\n    \n    // The following array returned has nothing to do with redux-rewire, it is application specific\n    return [{\n      actionType: \"Analytics\",\n      payload: {\n        eventNAme: \"ToDOAdded\",\n        data: actionData\n      }\n    }];\n  },\n});\n```\nNow, in the view file we will initial our state using useRewireState api which will add the component state to redux when the view if rendered for the first time\n\n```typescript jsx\n// Following is the content of homeScreen.tsx\nimport {identitySelector, useGlobalState, useRewireState} from 'redux-rewire'\nimport {actionSlice} from './homeScreen.actions'\nimport {useCallback} from 'react'\n\nconst HomeScreen = (props) => {\n  const [key, state, actions] = useRewireState(\n    'home-key',\n    actionSlice,\n    identitySelector\n  )\n  const addToDo = useCallback(() => {\n    if (inputRef.current) {\n      const value = inputRef.current.value\n      actions.add(value)\n    }\n  }, [actions])\n  return (\n    <div >\n      <div>\n        <input ref={inputRef} />\n        <button onClick={addToDo}>ADD TO-DO</button>\n      </div>\n      <div>\n        {state.list.map((v) => {\n            return <div className={'item'}>Test</div>\n        })}\n        {state.list.length === 0 ? <div>Your To Do list is empty</div> : null}\n      </div>\n    </div>\n  )\n}\n\n  export default HomeScreen\n\n\n```\n\n\n## API Definitions\n| Api                | input                                          | Description | usage |\n|--------------------|------------------------------------------------|-------------|-------|\n| createInitialState | (compKey, intialState)                         |             |       |\n| createReducerSlice | (state, actionData, compKey, globalState)      |             |       |\n| createActionSlice  | (state, actions, actionData, key, globalState) |             |       |\n| useRewireState     | (compKey, actionSlice, selectors)              |             |       |\n\n\n## Examples\nPlease refer the [examples](https://github.com/ds-fancode/redux-rewire/tree/main/example) directory\n\n## Link to Docs\nPlease refer the [docs](https://ds-fancode.github.io/redux-rewire) directory\n\n## Advance Usage\nComing Soon\n## About\nRedux-Rewire is developed and maintained by [Fancode](https://www.fancode.com/) and many amazing contributors.\n\n","readmeFilename":"README.md","gitHead":"780d67adb7c7a4d120df8ff84ea9843ec4fccef1","bugs":{"url":"https://github.com/ds-fancode/redux-rewire/issues"},"homepage":"https://github.com/ds-fancode/redux-rewire#readme","_id":"redux-rewire@0.0.16-beta.4","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-D938SbBeCS4dQNRA+DdoR3BqyoI00q+BKwTvkeqZ/UGcKbhe3sDACMzAmrXaoGk72Ie7gD5mRrymPge0tKM+7Q==","shasum":"7bd508dbfdc3583d4df960a799be6e9320187e2b","tarball":"https://registry.npmjs.org/redux-rewire/-/redux-rewire-0.0.16-beta.4.tgz","fileCount":321,"unpackedSize":278614,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGLcpFHMznd+YqRw0uMV58BnKIgBfOjdS28dI2FclJc6AiEAqjO5Ct+L97BzVvp3Fv9ndLg7dzg9YWfAQpbMoUaj0JI="}]},"_npmUser":{"name":"kamleshsharma","email":"kamleshs35@gmail.com"},"directories":{},"maintainers":[{"name":"hugebelieve","email":"hugebelieve@gmail.com"},{"name":"kamleshsharma","email":"kamleshs35@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-rewire_0.0.16-beta.4_1700318956017_0.2087209119988902"},"_hasShrinkwrap":false},"0.0.16-beta.5":{"name":"redux-rewire","version":"0.0.16-beta.5","description":"State management library for react based applications","main":"./cjs/index.js","scripts":{},"author":{"name":"FanCode"},"license":"ISC","dependencies":{"react-redux":"^8.0.5","redux":"^4.2.0","immer":"^9.0.12"},"devDependencies":{},"peerDependencies":{"react":"18.x"},"repository":{"type":"git","url":"git+https://github.com/ds-fancode/redux-rewire.git"},"module":"./esm/index.js","types":"./esm/index.d.ts","readme":"# redux-rewire\n\n## Content\n- [Introduction](#Introduction)\n- [Installation](#Installation)\n- [Basic Usage](#Basic-Usage)\n- [API Definitions](#api-definitions)\n- [Examples](#Examples)\n- [Advance Usage](#Advance-Usage)\n- [About](#About)\n\n## Introduction\nState management library for react application built on top of redux and react-redux, \nworks well with large scale frontend applications\n\nFollowing are the benefits of redux-rewire\n\n- Incremental store: The state for a component is only added once it is part of the rendered view\n- Immutable state: Redux-rewire automatically takes care of state mutation with the help of [immer](https://github.com/immerjs/immer) objects\n- Suitable with React Server side rendering.\n- Works well with react-native projects.\n- Full type safe: Redux-rewire is created with the intention to integrate will with large scale typescript projects\n\n\n## Installation\nUsing npm\n```shell\nnpm install redux-rewire --save-prod\n```\nUsing yarn package manager\n```shell\nyarn add redux-rewire -S\n```\n\n## Basic Usage\nInitialise the redux-rewire at the root of the app.\n```typescript jsx\n// App.js\nimport { configureStore, RewireProvider } from \"redux-rewire\";\nimport AppRoutes from './app/appRoutes'\n\nfunction App() {\n  const initialReducers = {}\n  const initialState = {}\n  const store = configureStore(initialReducers, initialState, {\n    middlewares: [], // We can pass middlewares to the redux\n  });\n  return (\n    <React.StrictMode>\n        <RewireProvider store={store}>\n          <AppRoutes />\n        </RewireProvider>\n    </React.StrictMode>\n  );\n}\n\nexport default App;\n```\n\nAfter the above initialization is done we can create build our stateful components.\n\nLet's take an example of component which is called homeScreen.tsx\n- homeScreen.ts\n- homeScreen.reducer.ts\n- homeScreen.actions.ts\n- homeScreen.init.ts\n\nAbove the file is suffixed with .reducer, .action is just for the matter of understanding the purpose of file\n\nStart with creating initial state for our home screen component\n```typescript\n// Following is the content of homeScreen.init.ts\n\nimport {createInitialState }from 'redux-rewire'\n\ninterface InitialStateType { data: string[] }\n\nexport const initialState = createInitialState<InitialStateType>(\"home-key\",{\n  data: [],\n});\n```\n\nNow, we will create the reducers for the component which will update the state\nHere, we are adding tha add reducers which will add the todo item in the state\n\nNote: Do not worry about direct state mutation, internally state object is an [immer](https://github.com/immerjs/immer) object\n\n```typescript\n// Following is the content of homeScreen.reducers.ts\n\nimport { createReducerSlice } from \"redux-rewire\";\nimport { initialState } from \"./homeScreen.init\";\n\n// The intial state created in the homeScreen.init.ts\nexport const reducerSlice = createReducerSlice(initialState, {\n  // state is the latest state of the home screnn component\n  // actionData is the data passed while calling from home screen view\n  add: (state, actionData: string) => {\n    state.list.push(actionData);\n    return state;\n  },\n});\n\n```\n\nFollowing file contains all the side effects or async task for the homeScreen component \n\nFor eg. we might need to send analytics to the backend when ever the todo item is added\n\n```typescript\n// Following is the content of homeScreen.action.ts\n\nimport { createActionSlice } from \"redux-rewire\";\nimport {  reducerSlice } from \"./homeScreen.reducer\";\nexport const actionSlice = createActionSlice(reducerSlice, {\n  add: (state, actions, actionData, key, globalState) => {\n    \n    // The following array returned has nothing to do with redux-rewire, it is application specific\n    return [{\n      actionType: \"Analytics\",\n      payload: {\n        eventNAme: \"ToDOAdded\",\n        data: actionData\n      }\n    }];\n  },\n});\n```\nNow, in the view file we will initial our state using useRewireState api which will add the component state to redux when the view if rendered for the first time\n\n```typescript jsx\n// Following is the content of homeScreen.tsx\nimport {identitySelector, useGlobalState, useRewireState} from 'redux-rewire'\nimport {actionSlice} from './homeScreen.actions'\nimport {useCallback} from 'react'\n\nconst HomeScreen = (props) => {\n  const [key, state, actions] = useRewireState(\n    'home-key',\n    actionSlice,\n    identitySelector\n  )\n  const addToDo = useCallback(() => {\n    if (inputRef.current) {\n      const value = inputRef.current.value\n      actions.add(value)\n    }\n  }, [actions])\n  return (\n    <div >\n      <div>\n        <input ref={inputRef} />\n        <button onClick={addToDo}>ADD TO-DO</button>\n      </div>\n      <div>\n        {state.list.map((v) => {\n            return <div className={'item'}>Test</div>\n        })}\n        {state.list.length === 0 ? <div>Your To Do list is empty</div> : null}\n      </div>\n    </div>\n  )\n}\n\n  export default HomeScreen\n\n\n```\n\n\n## API Definitions\n| Api                | input                                          | Description | usage |\n|--------------------|------------------------------------------------|-------------|-------|\n| createInitialState | (compKey, intialState)                         |             |       |\n| createReducerSlice | (state, actionData, compKey, globalState)      |             |       |\n| createActionSlice  | (state, actions, actionData, key, globalState) |             |       |\n| useRewireState     | (compKey, actionSlice, selectors)              |             |       |\n\n\n## Examples\nPlease refer the [examples](https://github.com/ds-fancode/redux-rewire/tree/main/example) directory\n\n## Link to Docs\nPlease refer the [docs](https://ds-fancode.github.io/redux-rewire) directory\n\n## Advance Usage\nComing Soon\n## About\nRedux-Rewire is developed and maintained by [Fancode](https://www.fancode.com/) and many amazing contributors.\n\n","readmeFilename":"README.md","gitHead":"1e915014152cd2f10b4f1df092fca381fa335092","bugs":{"url":"https://github.com/ds-fancode/redux-rewire/issues"},"homepage":"https://github.com/ds-fancode/redux-rewire#readme","_id":"redux-rewire@0.0.16-beta.5","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-rSZ2y6jQhUKtXPVsne4rr+DDihcKJQpjYzbz6ZRgACc2rsdJJRYrBRXeoIxkix8CXy0nEcLfMVJuNf5YLoefsA==","shasum":"00f0ea8d5db5df3c0c9d83d52229fac9d45cd7a5","tarball":"https://registry.npmjs.org/redux-rewire/-/redux-rewire-0.0.16-beta.5.tgz","fileCount":321,"unpackedSize":277611,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCd6ig7DWL8G77XNZHpmF+ultQs9xXFp7vXMJgUnBw5awIgYaV9b/SIUBjrEukJJLK9+53itoPR8VSqctlrCK7zCFg="}]},"_npmUser":{"name":"kamleshsharma","email":"kamleshs35@gmail.com"},"directories":{},"maintainers":[{"name":"hugebelieve","email":"hugebelieve@gmail.com"},{"name":"kamleshsharma","email":"kamleshs35@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-rewire_0.0.16-beta.5_1702388263845_0.15611410698745232"},"_hasShrinkwrap":false},"0.0.16":{"name":"redux-rewire","version":"0.0.16","description":"State management library for react based applications","main":"./cjs/index.js","scripts":{},"author":{"name":"FanCode"},"license":"ISC","dependencies":{"react-redux":"^8.0.5","redux":"^4.2.0","immer":"^9.0.12"},"devDependencies":{},"peerDependencies":{"react":"18.x"},"repository":{"type":"git","url":"git+https://github.com/ds-fancode/redux-rewire.git"},"module":"./esm/index.js","types":"./esm/index.d.ts","_id":"redux-rewire@0.0.16","gitHead":"f84ed07a196eae340cceadcbf0679a8b3c472e68","bugs":{"url":"https://github.com/ds-fancode/redux-rewire/issues"},"homepage":"https://github.com/ds-fancode/redux-rewire#readme","_nodeVersion":"21.2.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-z+ewe7nSrAnXsvIuSwMBoW8AXIeQFa2QN41EFiDL5PZs1tYc/iZFXAM2b6S0eEBRgL5qf0Un9AJwbS8cJi0i4g==","shasum":"00be4c1d0ff0dbc44812559a46f241a994169ae1","tarball":"https://registry.npmjs.org/redux-rewire/-/redux-rewire-0.0.16.tgz","fileCount":321,"unpackedSize":277630,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFacpF+7XErAaTviLyc5fYDlkpl8SODJt48kghXHAmaNAiEAniPlGHDCdovAfAU0ljjvj/KaDdb3ZbbsR8uM7LFX+pY="}]},"_npmUser":{"name":"kamleshsharma","email":"kamleshs35@gmail.com"},"directories":{},"maintainers":[{"name":"hugebelieve","email":"hugebelieve@gmail.com"},{"name":"kamleshsharma","email":"kamleshs35@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-rewire_0.0.16_1707375147134_0.5458432885432845"},"_hasShrinkwrap":false}},"maintainers":[{"name":"hugebelieve","email":"hugebelieve@gmail.com"},{"name":"kamleshsharma","email":"kamleshs35@gmail.com"}],"description":"State management library for react based applications","author":{"name":"FanCode"},"license":"ISC","readme":"# redux-rewire\n\n## Content\n- [Introduction](#Introduction)\n- [Installation](#Installation)\n- [Basic Usage](#Basic-Usage)\n- [API Definitions](#api-definitions)\n- [Examples](#Examples)\n- [Advance Usage](#Advance-Usage)\n- [About](#About)\n\n## Introduction\nState management library for react application built on top of redux and react-redux, \nworks well with large scale frontend applications\n\nFollowing are the benefits of redux-rewire\n\n- Incremental store: The state for a component is only added once it is part of the rendered view\n- Immutable state: Redux-rewire automatically takes care of state mutation with the help of [immer](https://github.com/immerjs/immer) objects\n- Suitable with React Server side rendering.\n- Works well with react-native projects.\n- Full type safe: Redux-rewire is created with the intention to integrate will with large scale typescript projects\n\n\n## Installation\nUsing npm\n```shell\nnpm install redux-rewire --save-prod\n```\nUsing yarn package manager\n```shell\nyarn add redux-rewire -S\n```\n\n## Basic Usage\nInitialise the redux-rewire at the root of the app.\n```typescript jsx\n// App.js\nimport { configureStore, RewireProvider } from \"redux-rewire\";\nimport AppRoutes from './app/appRoutes'\n\nfunction App() {\n  const initialReducers = {}\n  const initialState = {}\n  const store = configureStore(initialReducers, initialState, {\n    middlewares: [], // We can pass middlewares to the redux\n  });\n  return (\n    <React.StrictMode>\n        <RewireProvider store={store}>\n          <AppRoutes />\n        </RewireProvider>\n    </React.StrictMode>\n  );\n}\n\nexport default App;\n```\n\nAfter the above initialization is done we can create build our stateful components.\n\nLet's take an example of component which is called homeScreen.tsx\n- homeScreen.ts\n- homeScreen.reducer.ts\n- homeScreen.actions.ts\n- homeScreen.init.ts\n\nAbove the file is suffixed with .reducer, .action is just for the matter of understanding the purpose of file\n\nStart with creating initial state for our home screen component\n```typescript\n// Following is the content of homeScreen.init.ts\n\nimport {createInitialState }from 'redux-rewire'\n\ninterface InitialStateType { data: string[] }\n\nexport const initialState = createInitialState<InitialStateType>(\"home-key\",{\n  data: [],\n});\n```\n\nNow, we will create the reducers for the component which will update the state\nHere, we are adding tha add reducers which will add the todo item in the state\n\nNote: Do not worry about direct state mutation, internally state object is an [immer](https://github.com/immerjs/immer) object\n\n```typescript\n// Following is the content of homeScreen.reducers.ts\n\nimport { createReducerSlice } from \"redux-rewire\";\nimport { initialState } from \"./homeScreen.init\";\n\n// The intial state created in the homeScreen.init.ts\nexport const reducerSlice = createReducerSlice(initialState, {\n  // state is the latest state of the home screnn component\n  // actionData is the data passed while calling from home screen view\n  add: (state, actionData: string) => {\n    state.list.push(actionData);\n    return state;\n  },\n});\n\n```\n\nFollowing file contains all the side effects or async task for the homeScreen component \n\nFor eg. we might need to send analytics to the backend when ever the todo item is added\n\n```typescript\n// Following is the content of homeScreen.action.ts\n\nimport { createActionSlice } from \"redux-rewire\";\nimport {  reducerSlice } from \"./homeScreen.reducer\";\nexport const actionSlice = createActionSlice(reducerSlice, {\n  add: (state, actions, actionData, key, globalState) => {\n    \n    // The following array returned has nothing to do with redux-rewire, it is application specific\n    return [{\n      actionType: \"Analytics\",\n      payload: {\n        eventNAme: \"ToDOAdded\",\n        data: actionData\n      }\n    }];\n  },\n});\n```\nNow, in the view file we will initial our state using useRewireState api which will add the component state to redux when the view if rendered for the first time\n\n```typescript jsx\n// Following is the content of homeScreen.tsx\nimport {identitySelector, useGlobalState, useRewireState} from 'redux-rewire'\nimport {actionSlice} from './homeScreen.actions'\nimport {useCallback} from 'react'\n\nconst HomeScreen = (props) => {\n  const [key, state, actions] = useRewireState(\n    'home-key',\n    actionSlice,\n    identitySelector\n  )\n  const addToDo = useCallback(() => {\n    if (inputRef.current) {\n      const value = inputRef.current.value\n      actions.add(value)\n    }\n  }, [actions])\n  return (\n    <div >\n      <div>\n        <input ref={inputRef} />\n        <button onClick={addToDo}>ADD TO-DO</button>\n      </div>\n      <div>\n        {state.list.map((v) => {\n            return <div className={'item'}>Test</div>\n        })}\n        {state.list.length === 0 ? <div>Your To Do list is empty</div> : null}\n      </div>\n    </div>\n  )\n}\n\n  export default HomeScreen\n\n\n```\n\n\n## API Definitions\n| Api                | input                                          | Description | usage |\n|--------------------|------------------------------------------------|-------------|-------|\n| createInitialState | (compKey, intialState)                         |             |       |\n| createReducerSlice | (state, actionData, compKey, globalState)      |             |       |\n| createActionSlice  | (state, actions, actionData, key, globalState) |             |       |\n| useRewireState     | (compKey, actionSlice, selectors)              |             |       |\n\n\n## Examples\nPlease refer the [examples](https://github.com/ds-fancode/redux-rewire/tree/main/example) directory\n\n## Link to Docs\nPlease refer the [docs](https://ds-fancode.github.io/redux-rewire) directory\n\n## Advance Usage\nComing Soon\n## About\nRedux-Rewire is developed and maintained by [Fancode](https://www.fancode.com/) and many amazing contributors.\n\n","readmeFilename":"README.md","repository":{"type":"git","url":"git+https://github.com/ds-fancode/redux-rewire.git"},"homepage":"https://github.com/ds-fancode/redux-rewire#readme","bugs":{"url":"https://github.com/ds-fancode/redux-rewire/issues"}}