{"_id":"@feardread/feature-factory","_rev":"40-962f77b20e19c111a476390a5cd4637c","name":"@feardread/feature-factory","dist-tags":{"latest":"6.1.1"},"versions":{"1.1.2":{"name":"@feardread/feature-factory","version":"1.1.2","author":{"url":"FearDread","name":"Garrett Haptonstall"},"license":"MIT","_id":"@feardread/feature-factory@1.1.2","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"535ff7e321ffaa699a6dea38ca57fe4ca1bcd8ba","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-1.1.2.tgz","fileCount":18,"integrity":"sha512-OqrAMQO8GCcA0elArhQxmT2u1/NnUpT9Lr0KOAh5i4A1/0ZnhuC/vI1M7wfBU7PLKAGdAf8S+LDLgjKsuoJn4g==","signatures":[{"sig":"MEQCIG4Dpw1/E1ujSTefkniTncUum6pnvqIvWTHErt4j0kIBAiA+yGLE07XtnVpsYoHm31OvhbcIscoYZKvj3/drNHkZYA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1227051},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c"},"_npmUser":{"name":"feardread","actor":{"name":"feardread","type":"user","email":"ghaptonstall@gmail.com"},"email":"ghaptonstall@gmail.com"},"description":"","directories":{},"dependencies":{"axios":"^1.7.7","react":"^18.3.1","react-dom":"^18.3.1","react-redux":"^9.1.2","react-toastify":"^10.0.5","@reduxjs/toolkit":"^2.2.7","@rollup/plugin-terser":"^0.4.4","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.22.4","@babel/preset-env":"^7.25.4","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_1.1.2_1750441781958_0.24892814717925282","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@feardread/feature-factory","version":"1.1.3","author":{"url":"FearDread","name":"Garrett Haptonstall"},"license":"MIT","_id":"@feardread/feature-factory@1.1.3","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"0ed22ed17d2d4a8b995d4aad83646d71ae11db3a","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-1.1.3.tgz","fileCount":18,"integrity":"sha512-LFvgTNYVylKjIhiQkVOFAMYgrDpQCnH/BQcRnMCYliMncrR3/7rdkaZrbi9rFIBXs9DKCpeeXq//PIV/k70+rg==","signatures":[{"sig":"MEUCIQC6CtdqBlLT9ONZgQWYFl1nf5a5tWTkOXFNZWE6Oo52gQIgbHmRursO0dNEqBlGXf4TFEZBVN9nQkBAYTEsGVLoTmU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1230422},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c"},"_npmUser":{"name":"feardread","actor":{"name":"feardread","type":"user","email":"ghaptonstall@gmail.com"},"email":"ghaptonstall@gmail.com"},"description":"","directories":{},"dependencies":{"axios":"^1.7.7","react":"^18.3.1","react-dom":"^18.3.1","react-redux":"^9.1.2","react-toastify":"^10.0.5","@reduxjs/toolkit":"^2.2.7","@rollup/plugin-terser":"^0.4.4","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.22.4","@babel/preset-env":"^7.25.4","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_1.1.3_1750476931363_0.6168601884481739","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@feardread/feature-factory","version":"1.1.4","author":{"url":"FearDread","name":"Garrett Haptonstall"},"license":"MIT","_id":"@feardread/feature-factory@1.1.4","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"7d9139ff5824bdefde23cdc7e0f36e3c6e998284","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-1.1.4.tgz","fileCount":18,"integrity":"sha512-zXm3ijqOI+HYkrToq2Yfh7/Zm7+id/QPwjjjU9d4siYyhw6fGkOdW/pOYX6hDitzUeYrnBdAGJPWcmit68Dk+A==","signatures":[{"sig":"MEYCIQD6wHGHmyfwFkBBz3bhv6j/9NJLehDt6YneMIRPCdd+8QIhAIdxDyO++ZPB2hnwbMvzLJkShw4LZC8T+zuzPC3+pcvF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1230334},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c"},"_npmUser":{"name":"feardread","actor":{"name":"feardread","type":"user","email":"ghaptonstall@gmail.com"},"email":"ghaptonstall@gmail.com"},"description":"","directories":{},"dependencies":{"axios":"^1.7.7","react":"^18.3.1","react-dom":"^18.3.1","react-redux":"^9.1.2","react-toastify":"^10.0.5","@reduxjs/toolkit":"^2.2.7","@rollup/plugin-terser":"^0.4.4","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.22.4","@babel/preset-env":"^7.25.4","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_1.1.4_1750478050284_0.4327887827197321","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"@feardread/feature-factory","version":"1.1.5","author":{"url":"FearDread","name":"Garrett Haptonstall"},"license":"MIT","_id":"@feardread/feature-factory@1.1.5","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"063ce825899b0225cf98cf945680d93a66631f51","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-1.1.5.tgz","fileCount":18,"integrity":"sha512-4a150b6SYpJc4ZJSK73w9PHBDPhvXWlxhpdRa/fue4Yr+cVmk/M3y3Ajz9Qmtfz7RuHdpFdmAdBj04E9+1btog==","signatures":[{"sig":"MEQCIBtPRoUdULUgvxKLQOfS7rorn95LnIxryuaD4MlZn6ZzAiAFNDeh2LE3XncrquS2IXmxaZqA4SSY8iOBJdGMs7Z87g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1235871},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c"},"_npmUser":{"name":"feardread","actor":{"name":"feardread","type":"user","email":"ghaptonstall@gmail.com"},"email":"ghaptonstall@gmail.com"},"description":"","directories":{},"dependencies":{"axios":"^1.7.7","react":"^18.3.1","react-dom":"^18.3.1","react-redux":"^9.1.2","react-toastify":"^10.0.5","@reduxjs/toolkit":"^2.2.7","@rollup/plugin-terser":"^0.4.4","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.22.4","@babel/preset-env":"^7.25.4","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_1.1.5_1750478972489_0.8192063877316846","host":"s3://npm-registry-packages-npm-production"}},"1.1.6":{"name":"@feardread/feature-factory","version":"1.1.6","author":{"url":"FearDread","name":"Garrett Haptonstall"},"license":"MIT","_id":"@feardread/feature-factory@1.1.6","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"e8a3591b6fc3ee35461850fcf1d106d7894522eb","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-1.1.6.tgz","fileCount":18,"integrity":"sha512-lyZ05qN4m6A286cR0jrf/jSfyEbEIT8V8Lso5v0UhhC4MYxuyi96ysPjK7kEiBRzKdjfsIG4N7ufuvn3Odza2w==","signatures":[{"sig":"MEQCIFV8lWh6RpyeKsPyEuL9sbdZhIsGNloLR4xhuVvcaoCkAiAF5om/78GPkRXpGbDVRJTMKsdwMFGr5BI4mC0pMda+sQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1230133},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c"},"_npmUser":{"name":"feardread","actor":{"name":"feardread","type":"user","email":"ghaptonstall@gmail.com"},"email":"ghaptonstall@gmail.com"},"description":"","directories":{},"dependencies":{"axios":"^1.7.7","react":"^18.3.1","react-dom":"^18.3.1","react-redux":"^9.1.2","react-toastify":"^10.0.5","@reduxjs/toolkit":"^2.2.7","@rollup/plugin-terser":"^0.4.4","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.22.4","@babel/preset-env":"^7.25.4","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_1.1.6_1750516940306_0.7939442781789297","host":"s3://npm-registry-packages-npm-production"}},"1.1.7":{"name":"@feardread/feature-factory","version":"1.1.7","author":{"url":"FearDread","name":"Garrett Haptonstall"},"license":"MIT","_id":"@feardread/feature-factory@1.1.7","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"ae0181fd0f13a7c72857b4c24c4db586cc88b267","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-1.1.7.tgz","fileCount":18,"integrity":"sha512-QFYpss+R0HZeTDVhpg4s82ccwwOddCy/qE9wrwwpgjDeCJJqwohERVCxfBd5zrW06pcDSfhcnkAlqECeP2FHTw==","signatures":[{"sig":"MEUCIGrEd2JwhT0puuWF9smJuVVU2xX/8odbd+nDzN8lfeilAiEA4WHgrMCmuJAc8t8LtMiNicRrGZVN+nWhQ0ETr+eS8Nw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1237496},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c"},"_npmUser":{"name":"feardread","actor":{"name":"feardread","type":"user","email":"ghaptonstall@gmail.com"},"email":"ghaptonstall@gmail.com"},"description":"","directories":{},"dependencies":{"axios":"^1.7.7","react":"^18.3.1","react-dom":"^18.3.1","react-redux":"^9.1.2","react-toastify":"^10.0.5","@reduxjs/toolkit":"^2.2.7","@rollup/plugin-terser":"^0.4.4","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.22.4","@babel/preset-env":"^7.25.4","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_1.1.7_1750556718902_0.11496512683099636","host":"s3://npm-registry-packages-npm-production"}},"1.1.8":{"name":"@feardread/feature-factory","version":"1.1.8","author":{"url":"FearDread","name":"Garrett Haptonstall"},"license":"MIT","_id":"@feardread/feature-factory@1.1.8","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"8c41ce1e4c545f0bbfcbb599767d828edd5d4de8","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-1.1.8.tgz","fileCount":18,"integrity":"sha512-53Fn/ZAGhdKrf8iOvBzJhLhNDeTVBPujc8YqBHf0+BO7CLknE8rlIRKTLVjic7ex/hV65BXUbDgTDaNmckEYXg==","signatures":[{"sig":"MEYCIQCb8Fyq03jvCNRAkAzDCuHd712gAM2Faed970yf1b7CrQIhAIQVOslKjPgH+ZCszOYme/PR+EW5GJm6/BKnDhtcnm7f","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1237316},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c"},"_npmUser":{"name":"feardread","actor":{"name":"feardread","type":"user","email":"ghaptonstall@gmail.com"},"email":"ghaptonstall@gmail.com"},"description":"","directories":{},"dependencies":{"axios":"^1.7.7","react":"^18.3.1","react-dom":"^18.3.1","react-redux":"^9.1.2","react-toastify":"^10.0.5","@reduxjs/toolkit":"^2.2.7","@rollup/plugin-terser":"^0.4.4","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.22.4","@babel/preset-env":"^7.25.4","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_1.1.8_1750818005167_0.1785361730392443","host":"s3://npm-registry-packages-npm-production"}},"1.1.9":{"name":"@feardread/feature-factory","version":"1.1.9","author":{"url":"FearDread","name":"Garrett Haptonstall"},"license":"MIT","_id":"@feardread/feature-factory@1.1.9","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"d313e0a258e4c81c293274d31d8d7f6656add4ad","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-1.1.9.tgz","fileCount":18,"integrity":"sha512-rsIcNovmGeSgzJFdco8eT6tNqCztR0jzmmBD5lkud3UlsVCvRcZWhAUnlUkMOec4MzoSGq8/lwO3ez5DLhfHGQ==","signatures":[{"sig":"MEUCIFyBm8wudobAigDzSModah5VZwQBQZJci+r6u58MrVboAiEA/LIZmiXpIJrXhMOsKthTUmYwfuL8EdcWC/VWtWziiJU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1237316},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c"},"_npmUser":{"name":"feardread","actor":{"name":"feardread","type":"user","email":"ghaptonstall@gmail.com"},"email":"ghaptonstall@gmail.com"},"description":"","directories":{},"dependencies":{"axios":"^1.7.7","react":"^18.3.1","react-dom":"^18.3.1","react-redux":"^9.1.2","react-toastify":"^10.0.5","@reduxjs/toolkit":"^2.2.7","@rollup/plugin-terser":"^0.4.4","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.22.4","@babel/preset-env":"^7.25.4","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_1.1.9_1750818865672_0.15365373917788205","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@feardread/feature-factory","version":"2.0.0","author":{"url":"FearDread","name":"Garrett Haptonstall"},"license":"MIT","_id":"@feardread/feature-factory@2.0.0","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"47ceeee2eb2155fa9b9927029581558ca8c39f1e","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-2.0.0.tgz","fileCount":18,"integrity":"sha512-dek6qVCTgMu+KhjBD+//88pJMvi0OfPRBW9ggKjEPlOoq1C0d6BrzIx4F6xAVm4husFj2/jYj7eeQt5aHY4NHQ==","signatures":[{"sig":"MEUCIQDpgcHJNkZmtsTgDTUcrZdTh587lewq7031VJChtQn04AIgUU/4WMlUCNNND/E6xFpLpbTDP63UiznZZuu3UOBLNYw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1237254},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c"},"_npmUser":{"name":"feardread","actor":{"name":"feardread","type":"user","email":"ghaptonstall@gmail.com"},"email":"ghaptonstall@gmail.com"},"description":"","directories":{},"dependencies":{"axios":"^1.7.7","react":"^18.3.1","react-dom":"^18.3.1","react-redux":"^9.1.2","react-toastify":"^10.0.5","@reduxjs/toolkit":"^2.2.7","@rollup/plugin-terser":"^0.4.4","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.22.4","@babel/preset-env":"^7.25.4","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_2.0.0_1750819416170_0.8771748119072593","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@feardread/feature-factory","version":"2.0.1","author":{"url":"FearDread","name":"Garrett Haptonstall"},"license":"MIT","_id":"@feardread/feature-factory@2.0.1","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"458ef092ce8dae5c9200e6713a8e76c3154099b1","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-2.0.1.tgz","fileCount":18,"integrity":"sha512-nBdS6bHggu6WY6RiiIGa9wIcHmh9jyM2bqTPllOface17ZlrxNcfGTbu2iHGQ12XQhvr/dIhc54u0qlR7xZS1g==","signatures":[{"sig":"MEYCIQDY79mH1UXnrh4zYJ2zB1i6X6gGQVxS+zAHkhbk5FRAKAIhANBXTzUhHAiY9up260eMiKkO4a8Z2wZHbTHmn5S5TVeB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1237271},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c"},"_npmUser":{"name":"feardread","actor":{"name":"feardread","type":"user","email":"ghaptonstall@gmail.com"},"email":"ghaptonstall@gmail.com"},"description":"","directories":{},"dependencies":{"axios":"^1.7.7","react":"^18.3.1","react-dom":"^18.3.1","react-redux":"^9.1.2","react-toastify":"^10.0.5","@reduxjs/toolkit":"^2.2.7","@rollup/plugin-terser":"^0.4.4","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.22.4","@babel/preset-env":"^7.25.4","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_2.0.1_1750828625931_0.5604216731367029","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@feardread/feature-factory","version":"2.0.2","author":{"url":"FearDread","name":"Garrett Haptonstall"},"license":"MIT","_id":"@feardread/feature-factory@2.0.2","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"746e7dc576abb50bb8ba47007adab5d6934fcd6a","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-2.0.2.tgz","fileCount":18,"integrity":"sha512-5hO+Y6WHtMDR2NPLSq/UkJrddArnkg06QH7elsKazjPTQFbWXIA4Iq/m637xd5/wfyGmDHIcat6v5MxiAkK4XQ==","signatures":[{"sig":"MEYCIQC95ly12gwjZkkiZuvx+R5YoxrshojHfi4/UxtXhgabWwIhANHF+WhFLq3609wkpn7riz3mNJaXLrC9YzTO/+Ai+lNr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1237460},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c"},"_npmUser":{"name":"feardread","actor":{"name":"feardread","type":"user","email":"ghaptonstall@gmail.com"},"email":"ghaptonstall@gmail.com"},"description":"","directories":{},"dependencies":{"axios":"^1.7.7","react":"^18.3.1","react-dom":"^18.3.1","react-redux":"^9.1.2","react-toastify":"^10.0.5","@reduxjs/toolkit":"^2.2.7","@rollup/plugin-terser":"^0.4.4","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.22.4","@babel/preset-env":"^7.25.4","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_2.0.2_1751272838947_0.07971751917898384","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@feardread/feature-factory","version":"2.0.3","author":{"url":"FearDread","name":"Garrett Haptonstall"},"license":"MIT","_id":"@feardread/feature-factory@2.0.3","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"6c4fdb467b1971825d04995aa88340eef98659e7","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-2.0.3.tgz","fileCount":18,"integrity":"sha512-PXu7l2jBQKPnMl2M9HRab54GL6N58H1RZkwbBUXj4VYci0ER3dGah8TCWnbHsZhsqHeJQbgVXrwwvghd2U8PcQ==","signatures":[{"sig":"MEQCIHDrpobh0k/pHPI9hI0QByHn95SP+NlM9k4WOkPTmfo6AiBMFeN11/N7Bvbi86t73erMYgKxIoFUJy1pdr+0x3mw9w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1237440},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c"},"_npmUser":{"name":"feardread","actor":{"name":"feardread","type":"user","email":"ghaptonstall@gmail.com"},"email":"ghaptonstall@gmail.com"},"description":"","directories":{},"dependencies":{"axios":"^1.7.7","react":"^18.3.1","react-dom":"^18.3.1","react-redux":"^9.1.2","react-toastify":"^10.0.5","@reduxjs/toolkit":"^2.2.7","@rollup/plugin-terser":"^0.4.4","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.22.4","@babel/preset-env":"^7.25.4","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_2.0.3_1751272987035_0.2540074660469116","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"@feardread/feature-factory","version":"2.0.4","author":{"url":"FearDread","name":"Garrett Haptonstall"},"license":"MIT","_id":"@feardread/feature-factory@2.0.4","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"5fc43ff8ed2cda6aa2a707c91871e6327ede6d14","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-2.0.4.tgz","fileCount":18,"integrity":"sha512-o22A1O1qqfP2ZPbp0FPpkPTYoGmAOk7dtDxkNBhfv023vmV1CO6eYQ3tVk3PmzxG9RzrKeus9lVk2+L3/bRCmw==","signatures":[{"sig":"MEUCICC/VA2RqER5LB0Yi+ThzD3/nXlZUaSDPtqFe/9B+2++AiEA+FkUEE9hoOncKbl056CiOEsDjxVAxLdSqll0f9dM73g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1237610},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c"},"_npmUser":{"name":"feardread","actor":{"name":"feardread","type":"user","email":"ghaptonstall@gmail.com"},"email":"ghaptonstall@gmail.com"},"description":"","directories":{},"dependencies":{"axios":"^1.7.7","react":"^18.3.1","react-dom":"^18.3.1","react-redux":"^9.1.2","react-toastify":"^10.0.5","@reduxjs/toolkit":"^2.2.7","@rollup/plugin-terser":"^0.4.4","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.22.4","@babel/preset-env":"^7.25.4","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_2.0.4_1751273315771_0.5981749103728626","host":"s3://npm-registry-packages-npm-production"}},"2.0.5":{"name":"@feardread/feature-factory","version":"2.0.5","author":{"url":"FearDread","name":"Garrett Haptonstall"},"license":"MIT","_id":"@feardread/feature-factory@2.0.5","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"07420aa763944631bad693de3ddab89f98cfd9e9","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-2.0.5.tgz","fileCount":18,"integrity":"sha512-tkK2bb6d7NhxMNQc6+B/V2/oaaUta6z5KdkuY6bb7YJiqkplWxBSbqXwdjMTlZzaUprb4BOxZUAOJCnXbiAKRA==","signatures":[{"sig":"MEUCICeADiSMgYNxj3gVhKfzf4KpPs+e/dGj2+fmTXmxMaq5AiEAqyPyZ9MqRCW00F5Wv3q9UZ+VsAz8vwixnter0NCMQfI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1237587},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c"},"_npmUser":{"name":"feardread","actor":{"name":"feardread","type":"user","email":"ghaptonstall@gmail.com"},"email":"ghaptonstall@gmail.com"},"description":"","directories":{},"dependencies":{"axios":"^1.7.7","react":"^18.3.1","react-dom":"^18.3.1","react-redux":"^9.1.2","react-toastify":"^10.0.5","@reduxjs/toolkit":"^2.2.7","@rollup/plugin-terser":"^0.4.4","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.22.4","@babel/preset-env":"^7.25.4","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_2.0.5_1751273783925_0.9605076419481884","host":"s3://npm-registry-packages-npm-production"}},"2.0.6":{"name":"@feardread/feature-factory","version":"2.0.6","author":{"url":"FearDread","name":"Garrett Haptonstall"},"license":"MIT","_id":"@feardread/feature-factory@2.0.6","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"44cc83f253811ec39f0d604583347087cd6d364d","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-2.0.6.tgz","fileCount":18,"integrity":"sha512-1iaJevz3iNQBX47m4ZlPbkqce3XdE/6JEXHOzsCdYpksRNS0prV5edOB3Ir1FgwnMWFh3fUgf9g2ad5ai4nSVA==","signatures":[{"sig":"MEQCICnJQVH5rKtvmQ0JubgvoW+3U26WdurgBCjkt1R2k7TaAiBKGnyy3nG+aG4zG2BBkZFGG9ljwKxzlVYEJ91Ons+zzw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1239104},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c"},"_npmUser":{"name":"feardread","actor":{"name":"feardread","type":"user","email":"ghaptonstall@gmail.com"},"email":"ghaptonstall@gmail.com"},"description":"","directories":{},"dependencies":{"axios":"^1.7.7","react":"^18.3.1","react-dom":"^18.3.1","react-redux":"^9.1.2","react-toastify":"^10.0.5","@reduxjs/toolkit":"^2.2.7","@rollup/plugin-terser":"^0.4.4","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.22.4","@babel/preset-env":"^7.25.4","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_2.0.6_1751275341746_0.011608486228789294","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"@feardread/feature-factory","version":"3.0.1","keywords":["ecommerce","features","redux","toolkit"],"author":{"name":"FearDread"},"license":"MIT","_id":"@feardread/feature-factory@3.0.1","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"2b832d9bc0458ac48970f4ee471551874a3f87ac","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-3.0.1.tgz","fileCount":36,"integrity":"sha512-6TW3v0r+kHjqz6QySmvQ/SZq7TOpsrTLZrMPuo6fe1tPUHmFPKU9u0uwWR8DgzE3Y7WWwaRaQ07dpjFSojE4IQ==","signatures":[{"sig":"MEUCIE/7Cp5NXzBnyfo+jwuJCggUzu2GSqJDujTit90/IkJzAiEAvv2h0J/ug+wQoKw5bMJof3ivny47UGrS/k6+nQ4o6vo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2440600},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npx rollup -c "},"_npmUser":{"name":"feardread","email":"ghaptonstall@gmail.com"},"description":"Library to interact with redux toolkit and reduce boilerplate / repeated code","directories":{},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"axios":"^1.11.0","react":"^19.1.0","typescript":"^5.8.3","@babel/core":"^7.28.0","react-redux":"^9.2.0","@reduxjs/toolkit":"^2.8.2"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.22.4","@babel/preset-env":"^7.25.4","rollup-plugin-dts":"^6.1.1","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_3.0.1_1753871622232_0.3884694710245722","host":"s3://npm-registry-packages-npm-production"}},"3.0.2":{"name":"@feardread/feature-factory","version":"3.0.2","keywords":["ecommerce","features","redux","toolkit"],"author":{"name":"FearDread"},"license":"MIT","_id":"@feardread/feature-factory@3.0.2","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"3e1f055ebf8a60a011b4bfe96099148d7a4ae12c","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-3.0.2.tgz","fileCount":36,"integrity":"sha512-ggOITDjNlN3YXL6eh5YDhpCNQ9U8ajgToNJOItE7ftwhdO/zhkccyXaWQ3+iIR+JIwHZqdkcT2ah1qq4zvmtZA==","signatures":[{"sig":"MEUCIQDVn26bNCGMsCVHuTEFuCY17XIx/3O7u+YqmNpZ7IcSzAIgBjPrAmU5Ks7jpAtW3RLfTMP31ZQy0H1Pn/Q1wO0VIxU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2439156},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npx rollup -c "},"_npmUser":{"name":"feardread","email":"ghaptonstall@gmail.com"},"description":"Library to interact with redux toolkit and reduce boilerplate / repeated code","directories":{},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"axios":"^1.11.0","react":"^19.1.0","typescript":"^5.8.3","@babel/core":"^7.28.0","react-redux":"^9.2.0","@reduxjs/toolkit":"^2.8.2"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.22.4","@babel/preset-env":"^7.25.4","rollup-plugin-dts":"^6.1.1","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_3.0.2_1754188764518_0.07349115442247056","host":"s3://npm-registry-packages-npm-production"}},"4.0.1":{"name":"@feardread/feature-factory","version":"4.0.1","keywords":["ecommerce","features","redux","toolkit"],"author":{"name":"FearDread"},"license":"MIT","_id":"@feardread/feature-factory@4.0.1","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"88b1df10324385426ab9b39ca79153f255bff4c8","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-4.0.1.tgz","fileCount":21,"integrity":"sha512-iOIxHhFF1KwogQFuzRnxaAMiqU3ecv2+NtJ2xeZap/BLR0BUwjj+A8jSybnbs1wOYQynxjUDwDD/qUYKEKjB9Q==","signatures":[{"sig":"MEYCIQDgZBn2ccC76+vs81saQpKoC0aymE6kuiiHdi9Bl4H5pgIhAO+Ce19WWDy3KKdsrg9gXXhSezZYc/8kp0Ex08LYqeZg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2622154},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npx rollup -c "},"_npmUser":{"name":"feardread","email":"ghaptonstall@gmail.com"},"description":"Library to interact with redux toolkit and reduce boilerplate / repeated code","directories":{},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"axios":"^1.11.0","react":"^19.1.0","typescript":"^5.8.3","@babel/core":"^7.28.0","react-redux":"^9.2.0","@reduxjs/toolkit":"^2.8.2"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.22.4","@babel/preset-env":"^7.25.4","rollup-plugin-dts":"^6.1.1","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_4.0.1_1756233556690_0.005383845807902965","host":"s3://npm-registry-packages-npm-production"}},"4.0.2":{"name":"@feardread/feature-factory","version":"4.0.2","keywords":["ecommerce","features","redux","toolkit"],"author":{"name":"FearDread"},"license":"MIT","_id":"@feardread/feature-factory@4.0.2","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"8fae9bfb72ca6e8c090c0e941ec29961feffcebf","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-4.0.2.tgz","fileCount":21,"integrity":"sha512-OL51u6YWo4fbDsQPgefWes46Akc9RsWh4UDG4k5GwdfYKJWfyq9C5Do5r+XvvEaaL52BiTl+t7UliaK55YAUyg==","signatures":[{"sig":"MEUCIQCYKOLiMgoJPzEZ8gjp8Y3ZihAn/QAy5lgpPR5WuNTPrAIgJ2Kj1XvLJkK81at6o+NhITA/F1GNjMzBFPq/Nue2JS4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2694872},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npx rollup -c "},"_npmUser":{"name":"feardread","email":"ghaptonstall@gmail.com"},"description":"Library to interact with redux toolkit and reduce boilerplate / repeated code","directories":{},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"axios":"^1.11.0","react":"^19.1.0","typescript":"^5.8.3","@babel/core":"^7.28.0","react-redux":"^9.2.0","@reduxjs/toolkit":"^2.8.2"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.22.4","@babel/preset-env":"^7.25.4","rollup-plugin-dts":"^6.1.1","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_4.0.2_1756234477748_0.11118918049487747","host":"s3://npm-registry-packages-npm-production"}},"4.0.3":{"name":"@feardread/feature-factory","version":"4.0.3","keywords":["ecommerce","features","redux","toolkit"],"author":{"name":"FearDread"},"license":"MIT","_id":"@feardread/feature-factory@4.0.3","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"d5d26767f9113391175805795a033bd34a74c101","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-4.0.3.tgz","fileCount":22,"integrity":"sha512-x9MfbXOrYnuQhaq6EeCuByGOwpndw+UkZg87LZZrC3tJyy4Z+H+QDbuO7RTJ1HsLUuh27tY/RQ5c+CgrgDHmEA==","signatures":[{"sig":"MEUCIEglmJ8aAQS2wHVo6Pfp0VhF+3O+41w8rDcwEMU5uzOPAiEA+ydII3tX3TNx8raabiowauUyG9ym8JFkVPv8LugHS+g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2713379},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npx rollup -c "},"_npmUser":{"name":"feardread","email":"ghaptonstall@gmail.com"},"description":"Library to interact with redux toolkit and reduce boilerplate / repeated code","directories":{},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"axios":"^1.11.0","react":"^19.1.0","typescript":"^5.8.3","@babel/core":"^7.28.0","react-redux":"^9.2.0","@reduxjs/toolkit":"^2.8.2"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.22.4","@babel/preset-env":"^7.25.4","rollup-plugin-dts":"^6.1.1","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_4.0.3_1756397856793_0.33144950694142716","host":"s3://npm-registry-packages-npm-production"}},"4.0.4":{"name":"@feardread/feature-factory","version":"4.0.4","keywords":["ecommerce","features","redux","toolkit"],"author":{"name":"FearDread"},"license":"MIT","_id":"@feardread/feature-factory@4.0.4","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"53b169b419e449ebeb4ba0ce34a014924f3da2be","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-4.0.4.tgz","fileCount":22,"integrity":"sha512-gPX7yIs6bVuW04OHdZjqSXhtorEetlmYYAQLQeeNNVG+LAvP3WMMkrcBw6Y+C1bWSlAborF76mkGg0voM+8pSg==","signatures":[{"sig":"MEUCIDPhekr5XD8iuFDqUHoZufYui31nFbRjYrFMebDCefosAiEApPuVL8z3SlaKhsCjtYJ+CCUgqpdAyiNfH+2A+sqGNi0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2715506},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npx rollup -c "},"_npmUser":{"name":"feardread","email":"ghaptonstall@gmail.com"},"description":"Library to interact with redux toolkit and reduce boilerplate / repeated code","directories":{},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"axios":"^1.11.0","react":"^19.1.0","typescript":"^5.8.3","@babel/core":"^7.28.0","react-redux":"^9.2.0","@reduxjs/toolkit":"^2.8.2"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.22.4","@babel/preset-env":"^7.25.4","rollup-plugin-dts":"^6.1.1","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_4.0.4_1756399493140_0.14593800641170374","host":"s3://npm-registry-packages-npm-production"}},"4.0.5":{"name":"@feardread/feature-factory","version":"4.0.5","keywords":["ecommerce","features","redux","toolkit"],"author":{"name":"FearDread"},"license":"MIT","_id":"@feardread/feature-factory@4.0.5","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"82136f3d1b76f09a23c448672b4b79d802625150","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-4.0.5.tgz","fileCount":22,"integrity":"sha512-0jY7qLQj9vBUqCh3bW7nFDYc704ISPQ4jb1zW+HPzSjIRCbsDHbpNwS8A1LzToR3GrY8uZ1hMq05A1KSXiEkNg==","signatures":[{"sig":"MEUCIQCseycdctn4dpbysAGXIkqw4OruaF/XGx7uHvKvKlX0jQIgc+0Cv5X9pCM7JIDq8EuieIzAdvVjvq9wi7S5LWL1+H0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2715566},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npx rollup -c "},"_npmUser":{"name":"feardread","email":"ghaptonstall@gmail.com"},"description":"Library to interact with redux toolkit and reduce boilerplate / repeated code","directories":{},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"axios":"^1.11.0","react":"^19.1.0","typescript":"^5.8.3","@babel/core":"^7.28.0","react-redux":"^9.2.0","@reduxjs/toolkit":"^2.8.2"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.22.4","@babel/preset-env":"^7.25.4","rollup-plugin-dts":"^6.1.1","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_4.0.5_1756399775630_0.7541175455230906","host":"s3://npm-registry-packages-npm-production"}},"4.0.6":{"name":"@feardread/feature-factory","version":"4.0.6","keywords":["ecommerce","features","redux","toolkit"],"author":{"name":"FearDread"},"license":"MIT","_id":"@feardread/feature-factory@4.0.6","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"555f421755484bfacf5c5d05e134e4120d031a5f","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-4.0.6.tgz","fileCount":22,"integrity":"sha512-IiTCDd26oEGfIgzGacHJ+JlyYCZL4gKVNdOIAFd2W/YaZcWRREvKn0mXyFClFGrHT2QDsKs77OdWBdFlD6sD/A==","signatures":[{"sig":"MEUCIQDrzxRLMN1lgNVh5bprx5lYNF3fe0D6QUo4/Eg/C/YQXAIgahT4KVWFTfA2vp4ShVp8/hE5gzsA1Qe13lKrUon4sT0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2716375},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npx rollup -c "},"_npmUser":{"name":"feardread","email":"ghaptonstall@gmail.com"},"description":"Library to interact with redux toolkit and reduce boilerplate / repeated code","directories":{},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"axios":"^1.11.0","react":"^19.1.0","typescript":"^5.8.3","@babel/core":"^7.28.0","react-redux":"^9.2.0","@reduxjs/toolkit":"^2.8.2"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.22.4","@babel/preset-env":"^7.25.4","rollup-plugin-dts":"^6.1.1","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_4.0.6_1756587203026_0.39027413671407274","host":"s3://npm-registry-packages-npm-production"}},"4.0.7":{"name":"@feardread/feature-factory","version":"4.0.7","keywords":["ecommerce","features","redux","toolkit"],"author":{"name":"FearDread"},"license":"MIT","_id":"@feardread/feature-factory@4.0.7","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"93c2dfddb15d2b7a79b3ea0c30a7fe0309cf56a9","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-4.0.7.tgz","fileCount":22,"integrity":"sha512-S/z1v1jJGg4rfH3fsKi6S2aEiZ/vG+WzPym/RBYg122Nd+eATDWN1z1tkycehw6lav42582FlTmpn4NyCOLMTQ==","signatures":[{"sig":"MEUCICh1CHSm21QYB/EwBV26NVTUiYH1qjCw2h+gUD9ch1zGAiEAtt7qAMD2AeQQq9DG+pTxKYs0rBEtNqi7iDda66We1Bo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2714964},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npx rollup -c "},"_npmUser":{"name":"feardread","email":"ghaptonstall@gmail.com"},"description":"Library to interact with redux toolkit and reduce boilerplate / repeated code","directories":{},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"axios":"^1.11.0","react":"^19.1.0","typescript":"^5.8.3","@babel/core":"^7.28.0","react-redux":"^9.2.0","@reduxjs/toolkit":"^2.8.2"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.22.4","@babel/preset-env":"^7.25.4","rollup-plugin-dts":"^6.1.1","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_4.0.7_1756606715451_0.8935900203221336","host":"s3://npm-registry-packages-npm-production"}},"4.0.8":{"name":"@feardread/feature-factory","version":"4.0.8","keywords":["ecommerce","features","redux","toolkit"],"author":{"name":"FearDread"},"license":"MIT","_id":"@feardread/feature-factory@4.0.8","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"7654133957481ccf5076b69517203e24d1220e38","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-4.0.8.tgz","fileCount":22,"integrity":"sha512-J5jVX52nLwdIObqyDJkmWaJhfYjk/1DJrEwyfAPzT02aI+JpyzsVl2lCJny3mTn1ipYrfPoaUxUrC58OKsXk3w==","signatures":[{"sig":"MEYCIQDn3HZvgc1YUeW44pcvVfcuXjjan2i4/CLuXBEYEEsUOAIhAJC44qA5uR+IyAhpLwZ7bLBwaPsGvKY93KjqGSw7isUj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2714903},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npx rollup -c "},"_npmUser":{"name":"feardread","email":"ghaptonstall@gmail.com"},"description":"Library to interact with redux toolkit and reduce boilerplate / repeated code","directories":{},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"axios":"^1.11.0","react":"^19.1.0","typescript":"^5.8.3","@babel/core":"^7.28.0","react-redux":"^9.2.0","@reduxjs/toolkit":"^2.8.2"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.22.4","@babel/preset-env":"^7.25.4","rollup-plugin-dts":"^6.1.1","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_4.0.8_1756613678579_0.7122993113758824","host":"s3://npm-registry-packages-npm-production"}},"5.0.0":{"name":"@feardread/feature-factory","version":"5.0.0","keywords":["ecommerce","features","redux","toolkit"],"author":{"name":"FearDread"},"license":"MIT","_id":"@feardread/feature-factory@5.0.0","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"a7402718139b6b734457f33f2fbed077031ff080","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-5.0.0.tgz","fileCount":22,"integrity":"sha512-bxx0ybvHwoCx4QHZQwQ3IDFjY061NNMw96y+M5Tipv/PqTVYuM6aDBjb5lpysuAJBD+c5goE/5CIBNRJyir5jA==","signatures":[{"sig":"MEUCIQCP+vAgyAaXBMqELmfeGJk7yO9vg9VVWG+IhNnHOO9LTQIgcMiORay1mSHfWFBaH4GLo+GMtjcnVeCB+xau6HKp7xA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2714991},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npx rollup -c "},"_npmUser":{"name":"feardread","email":"ghaptonstall@gmail.com"},"description":"Library to interact with redux toolkit and reduce boilerplate / repeated code","directories":{},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"axios":"^1.11.0","react":"^19.1.0","typescript":"^5.8.3","@babel/core":"^7.28.0","react-redux":"^9.2.0","@reduxjs/toolkit":"^2.8.2"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.22.4","@babel/preset-env":"^7.25.4","rollup-plugin-dts":"^6.1.1","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_5.0.0_1756613934440_0.03234144329096278","host":"s3://npm-registry-packages-npm-production"}},"5.0.1":{"name":"@feardread/feature-factory","version":"5.0.1","keywords":["ecommerce","features","redux","toolkit"],"author":{"name":"FearDread"},"license":"MIT","_id":"@feardread/feature-factory@5.0.1","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"d418ae3719d48effc5de63bae9244e483fe8886d","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-5.0.1.tgz","fileCount":22,"integrity":"sha512-PmhcVNC4avyQyzQxh5+MD6jvAdkgHSTvCfckYJ+hgeurKIrnPTI93tKB/kKWmUiQDYLY6cCN7r/SVsF8lSyxDQ==","signatures":[{"sig":"MEUCIGCZr8qqelJLugmZIT7uBh3e8JR4S815WeqEZYPhriPRAiEA5jOmBqP0FwGHTkR46Xj9SU5CTLfcNQsKMmzztj9sonA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2715351},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npx rollup -c "},"_npmUser":{"name":"feardread","email":"ghaptonstall@gmail.com"},"description":"Library to interact with redux toolkit and reduce boilerplate / repeated code","directories":{},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"axios":"^1.11.0","react":"^19.1.0","typescript":"^5.8.3","@babel/core":"^7.28.0","react-redux":"^9.2.0","@reduxjs/toolkit":"^2.8.2"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.22.4","@babel/preset-env":"^7.25.4","rollup-plugin-dts":"^6.1.1","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_5.0.1_1756683178456_0.8982176399787563","host":"s3://npm-registry-packages-npm-production"}},"5.0.2":{"name":"@feardread/feature-factory","version":"5.0.2","keywords":["ecommerce","features","redux","toolkit"],"author":{"name":"FearDread"},"license":"MIT","_id":"@feardread/feature-factory@5.0.2","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"fda3542c8d32c422252a6f85a1cc73df74952c9f","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-5.0.2.tgz","fileCount":22,"integrity":"sha512-GzcAJ1nMBWLZwI8wUOx1Uj97az1OUrPuVp4qVDKjlUHJ591fS5cX48qOExHySrCVrffyG7Q5qImK5F4pOSFe/g==","signatures":[{"sig":"MEUCIQD+BZzS9Uc7ysXtI8jFl/qABROnn/CtUhK5g/AdvuY+OQIgZFu/FVIlsp9dFRmdyEAIqBxe0m6h20PMv8xCtXq7hR0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2715419},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npx rollup -c "},"_npmUser":{"name":"feardread","email":"ghaptonstall@gmail.com"},"description":"Library to interact with redux toolkit and reduce boilerplate / repeated code","directories":{},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"axios":"^1.11.0","react":"^19.1.0","typescript":"^5.8.3","@babel/core":"^7.28.0","react-redux":"^9.2.0","@reduxjs/toolkit":"^2.8.2"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.22.4","@babel/preset-env":"^7.25.4","rollup-plugin-dts":"^6.1.1","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_5.0.2_1756698883085_0.30168686424265445","host":"s3://npm-registry-packages-npm-production"}},"5.0.3":{"name":"@feardread/feature-factory","version":"5.0.3","keywords":["ecommerce","features","redux","toolkit"],"author":{"name":"FearDread"},"license":"MIT","_id":"@feardread/feature-factory@5.0.3","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"1dc20b47d23ee5e65e9a3105ba03cd5b830a710c","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-5.0.3.tgz","fileCount":22,"integrity":"sha512-udldFxFAlEZ5nro4VPrDHarpzgUEDwCGAmMwWWpctW4IXV9jwHNkTswXg/Iwu4PuKtH6WT9bTRjlmZdc20P/pw==","signatures":[{"sig":"MEYCIQDs1vYzmyj90sdQqr6mpZaLsZyOzW9GYuo90FvPQQoXbQIhAJ1sKSxHLtZdjWvJxGlRsYg3U9rxgpgt57q9oHTvO1q7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2715137},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npx rollup -c "},"_npmUser":{"name":"feardread","email":"ghaptonstall@gmail.com"},"description":"Library to interact with redux toolkit and reduce boilerplate / repeated code","directories":{},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"axios":"^1.11.0","react":"^19.1.0","typescript":"^5.8.3","@babel/core":"^7.28.0","react-redux":"^9.2.0","@reduxjs/toolkit":"^2.8.2"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.22.4","@babel/preset-env":"^7.25.4","rollup-plugin-dts":"^6.1.1","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_5.0.3_1756699376388_0.35992580158200327","host":"s3://npm-registry-packages-npm-production"}},"5.0.4":{"name":"@feardread/feature-factory","version":"5.0.4","keywords":["ecommerce","features","redux","toolkit"],"author":{"name":"FearDread"},"license":"MIT","_id":"@feardread/feature-factory@5.0.4","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"74eb777a2d777e1099708fd1de7d6f9f9c48e61d","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-5.0.4.tgz","fileCount":22,"integrity":"sha512-ynMurb8/XjU1KmfHzoevgKFb12Qf2eEfOPLrSWGkzaG6sl7DRvui8JWaXCKg6vIe3KY2SXLv52wyjiL5ClK5aA==","signatures":[{"sig":"MEUCIGrBILnkvw7JoMeXPFgGF1sXaUK2qOvbpulHRsfpbjdHAiEA/UjNMSoQux1/7MAxcEoJ+R+UbPXw3i6JYoi2HZ4U9ns=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2715002},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npx rollup -c "},"_npmUser":{"name":"feardread","email":"ghaptonstall@gmail.com"},"description":"Library to interact with redux toolkit and reduce boilerplate / repeated code","directories":{},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"axios":"^1.11.0","react":"^19.1.0","typescript":"^5.8.3","@babel/core":"^7.28.0","react-redux":"^9.2.0","@reduxjs/toolkit":"^2.8.2"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.22.4","@babel/preset-env":"^7.25.4","rollup-plugin-dts":"^6.1.1","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_5.0.4_1756709614697_0.3068511024494165","host":"s3://npm-registry-packages-npm-production"}},"5.0.5":{"name":"@feardread/feature-factory","version":"5.0.5","keywords":["ecommerce","features","redux","toolkit"],"author":{"name":"FearDread"},"license":"MIT","_id":"@feardread/feature-factory@5.0.5","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"7846c946e5e308f1fc2dc916da1684038e41b127","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-5.0.5.tgz","fileCount":22,"integrity":"sha512-pvgcX8y2w0J7HHBZQeCnjbqv6yzn6U5EI2Xyue+LiN/t1ugOADw6FO7/amMCzaSgP4bB96GWZURf2t0DCBZw2g==","signatures":[{"sig":"MEUCIFOnCR9IsybsZa+0VpmcICTLAFonY18WauquIZl5HtspAiEAy0/UE1cyYhbe+L2dyeqF/TwDx1i773fdDPk/IJRT+5w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2715005},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npx rollup -c "},"_npmUser":{"name":"feardread","email":"ghaptonstall@gmail.com"},"description":"Library to interact with redux toolkit and reduce boilerplate / repeated code","directories":{},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"axios":"^1.11.0","react":"^19.1.0","typescript":"^5.8.3","@babel/core":"^7.28.0","react-redux":"^9.2.0","@reduxjs/toolkit":"^2.8.2"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.22.4","@babel/preset-env":"^7.25.4","rollup-plugin-dts":"^6.1.1","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_5.0.5_1756712045603_0.6837834021056399","host":"s3://npm-registry-packages-npm-production"}},"5.0.6":{"name":"@feardread/feature-factory","version":"5.0.6","keywords":["ecommerce","features","redux","toolkit"],"author":{"name":"FearDread"},"license":"MIT","_id":"@feardread/feature-factory@5.0.6","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"13ce2b2d8a25b63de15cec8adc96ded7b1294380","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-5.0.6.tgz","fileCount":22,"integrity":"sha512-CSs1Z9q19SjCYpr4oWxbtBx4+D93Q1iaymJFgfm1QCsH8FA7hOLV8c+wWLaUoaJRi93Kf4NbrSqJNAavA5XQpg==","signatures":[{"sig":"MEYCIQD6lQgk7vhLwC+NNIHMFlJn9Nl1Ij6IJHPOfURqAPhpMgIhAPqeRmF+3CuZ+4LGrcf2bXMtv49Y8EjB1sSvvyasl2id","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2714636},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npx rollup -c "},"_npmUser":{"name":"feardread","email":"ghaptonstall@gmail.com"},"description":"Library to interact with redux toolkit and reduce boilerplate / repeated code","directories":{},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"axios":"^1.11.0","react":"^19.1.0","typescript":"^5.8.3","@babel/core":"^7.28.0","react-redux":"^9.2.0","@reduxjs/toolkit":"^2.8.2"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.22.4","@babel/preset-env":"^7.25.4","rollup-plugin-dts":"^6.1.1","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_5.0.6_1756740881795_0.520991962092096","host":"s3://npm-registry-packages-npm-production"}},"5.0.7":{"name":"@feardread/feature-factory","version":"5.0.7","keywords":["ecommerce","features","redux","toolkit"],"author":{"name":"FearDread"},"license":"MIT","_id":"@feardread/feature-factory@5.0.7","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"ea4c25ed295a4cd4d1105e0d930bfb2fd14feff5","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-5.0.7.tgz","fileCount":22,"integrity":"sha512-hR/rcyyO5WiMR2+87/MonSftbB03bywPX31birnwYIljNBLAsfo3f/L75rhukkyq1W60ni/3gLZXBGwSSOdE1g==","signatures":[{"sig":"MEUCIQCJzyaRD6OfX+ohFXn944+EYclVUHhdDaHYJDL6SBarOAIgcg0ufHpJK5tEe/SFNcU6iyRvxugno4iicXZKMG7XdCQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2715781},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npx rollup -c "},"_npmUser":{"name":"feardread","email":"ghaptonstall@gmail.com"},"description":"Library to interact with redux toolkit and reduce boilerplate / repeated code","directories":{},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"axios":"^1.11.0","react":"^19.1.0","typescript":"^5.8.3","@babel/core":"^7.28.0","react-redux":"^9.2.0","@reduxjs/toolkit":"^2.8.2"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.22.4","@babel/preset-env":"^7.25.4","rollup-plugin-dts":"^6.1.1","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_5.0.7_1756770518633_0.7810065913567688","host":"s3://npm-registry-packages-npm-production"}},"5.0.8":{"name":"@feardread/feature-factory","version":"5.0.8","keywords":["ecommerce","features","redux","toolkit"],"author":{"name":"FearDread"},"license":"MIT","_id":"@feardread/feature-factory@5.0.8","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"ad8a9e2980fceffedfe954e4e66745ce4496f14b","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-5.0.8.tgz","fileCount":21,"integrity":"sha512-z2aUgI4AJn5KQ1KAJDEgBu4JVRczIXipO+yfZq1k1Jo9MZAQQtWifFeprIoq7FIJsMMaCn7bwBQ0jfu8tvPMhg==","signatures":[{"sig":"MEUCIHHCsSvvRe/v/ZzDJSVhBS8tgwDeSyeA1WlAuvBHmkVtAiEAqYy7zI705Ks1Vl3bUtjRDdHOOM7gyEwcZqc12Da0eOc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2755457},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npx rollup -c "},"_npmUser":{"name":"feardread","email":"ghaptonstall@gmail.com"},"description":"Library to interact with redux toolkit and reduce boilerplate / repeated code","directories":{},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"axios":"^1.11.0","react":"^19.1.0","typescript":"^5.8.3","@babel/core":"^7.28.0","react-redux":"^9.2.0","@reduxjs/toolkit":"^2.8.2","@rollup/plugin-typescript":"^12.1.4"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.22.4","@babel/preset-env":"^7.25.4","rollup-plugin-dts":"^6.1.1","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_5.0.8_1758242409504_0.6491239159452622","host":"s3://npm-registry-packages-npm-production"}},"5.1.0":{"name":"@feardread/feature-factory","version":"5.1.0","keywords":["ecommerce","features","redux","toolkit"],"author":{"name":"FearDread"},"license":"MIT","_id":"@feardread/feature-factory@5.1.0","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"bf1df9317b960534dafb0e1040dadc3e21dd8e90","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-5.1.0.tgz","fileCount":22,"integrity":"sha512-xDKzQ2qwTJ5+xDklfkosjnKS8wbsbEbYMSorV6FOHNtoLn4x3NWwaqqVOCn3kWp4Artcq4H8OEpll06OnPjPFA==","signatures":[{"sig":"MEUCIDkdx5lHnZd6FvuPxILwYZZXhZfsNgbNmK4Rh256ULKxAiEA9jaqdPZYZAx3t45jd8qK7omAKNLRvA4RSOhN17Wdybs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2826036},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npx rollup -c "},"_npmUser":{"name":"feardread","email":"ghaptonstall@gmail.com"},"description":"Library to interact with redux toolkit and reduce boilerplate / repeated code","directories":{},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"axios":"^1.11.0","react":"^19.1.0","typescript":"^5.8.3","@babel/core":"^7.28.0","react-redux":"^9.2.0","@reduxjs/toolkit":"^2.8.2","@rollup/plugin-typescript":"^12.1.4"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.51.0","@babel/preset-env":"^7.25.4","rollup-plugin-dts":"^6.1.1","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_5.1.0_1766062586006_0.6219883553246068","host":"s3://npm-registry-packages-npm-production"}},"5.1.1":{"name":"@feardread/feature-factory","version":"5.1.1","keywords":["ecommerce","features","redux","toolkit"],"author":{"name":"FearDread"},"license":"MIT","_id":"@feardread/feature-factory@5.1.1","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"73cc8e83af3cf51d760b292d208f07c0fde9df4a","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-5.1.1.tgz","fileCount":22,"integrity":"sha512-mZy2FaIqsVpSk8BczkHlkOpYO0vKIlmZCURgPO9Zo1eLNrPVSqOfGBZnQ0tdZO2iB3HOvP1uRVcPs3Hgbl/beg==","signatures":[{"sig":"MEYCIQDH2D6M8LDo5TTaHwPEO7weJVVMgT+bdmguC2FoN4WKpgIhAKhPLlvc2J5xDQxHEW/5au5qWmpaedw9VRqI3ZosWKm6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2826361},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npx rollup -c "},"_npmUser":{"name":"feardread","email":"ghaptonstall@gmail.com"},"description":"Library to interact with redux toolkit and reduce boilerplate / repeated code","directories":{},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"axios":"^1.11.0","react":"^19.1.0","typescript":"^5.8.3","@babel/core":"^7.28.0","react-redux":"^9.2.0","@reduxjs/toolkit":"^2.8.2","@rollup/plugin-typescript":"^12.1.4"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.51.0","@babel/preset-env":"^7.25.4","rollup-plugin-dts":"^6.1.1","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_5.1.1_1766064366309_0.4025048559426063","host":"s3://npm-registry-packages-npm-production"}},"5.1.2":{"name":"@feardread/feature-factory","version":"5.1.2","keywords":["ecommerce","features","redux","toolkit"],"author":{"name":"FearDread"},"license":"MIT","_id":"@feardread/feature-factory@5.1.2","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"bd15a411b61378fdcf0dd929b2f4b14160c66e93","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-5.1.2.tgz","fileCount":22,"integrity":"sha512-tWM1nesCPrYfGdn5LJpWgDsqywSvMbl9gA43Y5TMwIXSZtfOFrArf6E6oJXJTPRvCrzCnfZKed6e/qzE05ew5w==","signatures":[{"sig":"MEQCIF0BAe81SgreZCpiXZqs2eBtsJdndyOjDS8OcCE1y6D9AiB+pRBo5ShuaOlRTdx06SObwOXovdn+tiM4Y3+FNMF9gA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2827755},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npx rollup -c "},"_npmUser":{"name":"feardread","email":"ghaptonstall@gmail.com"},"description":"Library to interact with redux toolkit and reduce boilerplate / repeated code","directories":{},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"axios":"^1.11.0","react":"^19.1.0","typescript":"^5.8.3","@babel/core":"^7.28.0","react-redux":"^9.2.0","@reduxjs/toolkit":"^2.8.2","@rollup/plugin-typescript":"^12.1.4"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.51.0","@babel/preset-env":"^7.25.4","rollup-plugin-dts":"^6.1.1","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_5.1.2_1766117393000_0.18074833785919853","host":"s3://npm-registry-packages-npm-production"}},"5.2.3":{"name":"@feardread/feature-factory","version":"5.2.3","keywords":["ecommerce","features","redux","toolkit"],"author":{"name":"FearDread"},"license":"MIT","_id":"@feardread/feature-factory@5.2.3","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"8a69f0846fec2e72fe59c90eada6bc71bb8ba408","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-5.2.3.tgz","fileCount":22,"integrity":"sha512-I+aJxg0koDeFD8bZNxcuJur+1C15Es+glZKZZBDroNH1Eo9vwmOVAK7i0UTxQgcM55B1dHVH+69IWt6DODmibw==","signatures":[{"sig":"MEUCIEMc/xm9WaojO8HeiWqlo2zw7ZZSUZj3lFRururL9kawAiEA6yemxjg0Ienr4nzKErEUPVPVOimrJLanucE+SF+9tZs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2826925},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npx rollup -c "},"_npmUser":{"name":"feardread","email":"ghaptonstall@gmail.com"},"description":"Library to interact with redux toolkit and reduce boilerplate / repeated code","directories":{},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"axios":"^1.11.0","react":"^19.1.0","typescript":"^5.8.3","@babel/core":"^7.28.0","react-redux":"^9.2.0","@reduxjs/toolkit":"^2.8.2","@rollup/plugin-typescript":"^12.1.4"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.51.0","@babel/preset-env":"^7.25.4","rollup-plugin-dts":"^6.1.1","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_5.2.3_1767490387975_0.7808551225347466","host":"s3://npm-registry-packages-npm-production"}},"6.0.1":{"name":"@feardread/feature-factory","version":"6.0.1","keywords":["ecommerce","features","redux","toolkit"],"author":{"name":"FearDread"},"license":"MIT","_id":"@feardread/feature-factory@6.0.1","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"dist":{"shasum":"0589d29a10ad98686a568be971930c3f0a0fe52c","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-6.0.1.tgz","fileCount":23,"integrity":"sha512-/bDSGBqVsBzpD5ceQkCOBhPMx9/bvAQrij9G49HPYAu83iKyL3msDdhDwm2XeHRl6dcEwtLA6SRLcc+xPamgMQ==","signatures":[{"sig":"MEUCIEOuNYFO/4adSAw4wOH8BH5FdrILnsYUku/YCmZ2FI2SAiEAuZHgWdCreDUQgzbALM2YkK7KwBSShGBLN1eM3guunH4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2823844},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npx rollup -c "},"_npmUser":{"name":"feardread","email":"ghaptonstall@gmail.com"},"description":"Library to interact with redux toolkit and reduce boilerplate / repeated code","directories":{},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"axios":"^1.11.0","react":"^19.1.0","typescript":"^5.8.3","@babel/core":"^7.28.0","react-redux":"^9.2.0","@reduxjs/toolkit":"^2.8.2","@rollup/plugin-typescript":"^12.1.4"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.51.0","@babel/preset-env":"^7.25.4","rollup-plugin-dts":"^6.1.1","@babel/preset-react":"^7.24.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-node-resolve":"^15.3.0","rollup-plugin-polyfill-node":"^0.13.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_npmOperationalInternal":{"tmp":"tmp/feature-factory_6.0.1_1774318638647_0.05352580987852806","host":"s3://npm-registry-packages-npm-production"}},"6.1.1":{"name":"@feardread/feature-factory","version":"6.1.1","description":"Library to interact with redux toolkit and reduce boilerplate / repeated code","main":"dist/index.js","scripts":{"build":"npx rollup -c ","test":"echo \"Error: no test specified\" && exit 1"},"keywords":["ecommerce","features","redux","toolkit"],"author":{"name":"FearDread"},"license":"MIT","dependencies":{"@babel/core":"^7.28.0","@reduxjs/toolkit":"^2.8.2","@rollup/plugin-typescript":"^12.1.4","axios":"^1.11.0","react":"^19.1.0","react-redux":"^9.2.0","typescript":"^5.8.3"},"devDependencies":{"@babel/preset-env":"^7.25.4","@babel/preset-react":"^7.24.7","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-node-resolve":"^15.3.0","@rollup/plugin-terser":"^0.4.4","rollup":"^4.51.0","rollup-plugin-dts":"^6.1.1","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-polyfill-node":"^0.13.0"},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"_id":"@feardread/feature-factory@6.1.1","dist":{"shasum":"da9d1d3f43c20855cebfe31b61baeed34ba95d98","integrity":"sha512-Yu10sdUkSxN74J7+bmfz9aNf3QFJcJnQLiVQbnfE4nEC6w2miAubevLwePgFLVGLNTmHDyHmrBQ3vhYZFU3sQg==","tarball":"https://registry.npmjs.org/@feardread/feature-factory/-/feature-factory-6.1.1.tgz","fileCount":23,"unpackedSize":2823697,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICwPBbNsubOEdo0SC5M5mOOBPCTTaFlc2WNDEx1Tz4SUAiBzJmMJQr3pR4ZZtbM4hl4mrVR+NtVK/+sEkx9WKPOIsA=="}]},"_npmUser":{"name":"feardread","email":"ghaptonstall@gmail.com"},"directories":{},"maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/feature-factory_6.1.1_1774319174203_0.19611073373819266"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-20T17:49:41.898Z","modified":"2026-03-24T02:26:14.574Z","1.1.2":"2025-06-20T17:49:42.206Z","1.1.3":"2025-06-21T03:35:31.601Z","1.1.4":"2025-06-21T03:54:10.487Z","1.1.5":"2025-06-21T04:09:32.751Z","1.1.6":"2025-06-21T14:42:20.489Z","1.1.7":"2025-06-22T01:45:19.124Z","1.1.8":"2025-06-25T02:20:05.398Z","1.1.9":"2025-06-25T02:34:25.848Z","2.0.0":"2025-06-25T02:43:36.375Z","2.0.1":"2025-06-25T05:17:06.193Z","2.0.2":"2025-06-30T08:40:39.207Z","2.0.3":"2025-06-30T08:43:07.224Z","2.0.4":"2025-06-30T08:48:36.023Z","2.0.5":"2025-06-30T08:56:24.175Z","2.0.6":"2025-06-30T09:22:21.974Z","3.0.1":"2025-07-30T10:33:42.469Z","3.0.2":"2025-08-03T02:39:24.757Z","4.0.1":"2025-08-26T18:39:16.951Z","4.0.2":"2025-08-26T18:54:38.041Z","4.0.3":"2025-08-28T16:17:37.077Z","4.0.4":"2025-08-28T16:44:53.357Z","4.0.5":"2025-08-28T16:49:35.902Z","4.0.6":"2025-08-30T20:53:23.298Z","4.0.7":"2025-08-31T02:18:35.687Z","4.0.8":"2025-08-31T04:14:38.812Z","5.0.0":"2025-08-31T04:18:54.750Z","5.0.1":"2025-08-31T23:32:58.762Z","5.0.2":"2025-09-01T03:54:43.302Z","5.0.3":"2025-09-01T04:02:56.621Z","5.0.4":"2025-09-01T06:53:34.934Z","5.0.5":"2025-09-01T07:34:05.832Z","5.0.6":"2025-09-01T15:34:42.096Z","5.0.7":"2025-09-01T23:48:38.915Z","5.0.8":"2025-09-19T00:40:09.872Z","5.1.0":"2025-12-18T12:56:26.485Z","5.1.1":"2025-12-18T13:26:06.499Z","5.1.2":"2025-12-19T04:09:53.194Z","5.2.3":"2026-01-04T01:33:08.203Z","6.0.1":"2026-03-24T02:17:18.914Z","6.1.1":"2026-03-24T02:26:14.452Z"},"author":{"name":"FearDread"},"license":"MIT","keywords":["ecommerce","features","redux","toolkit"],"description":"Library to interact with redux toolkit and reduce boilerplate / repeated code","maintainers":[{"name":"feardread","email":"ghaptonstall@gmail.com"}],"readme":"# Redux Factory Suite\n\nA comprehensive collection of factory utilities for Redux applications, providing standardized patterns for creating slices, async thunks, state management, and caching. This suite eliminates boilerplate code and enforces consistent patterns across your Redux application.\n\n## Table of Contents\n\n- [Overview](#overview)\n- [Installation](#installation)\n- [Core Components](#core-components)\n- [Quick Start](#quick-start)\n- [API Reference](#api-reference)\n- [Examples](#examples)\n- [Best Practices](#best-practices)\n- [Contributing](#contributing)\n\n## Overview\n\nThe Redux Factory Suite consists of five main components:\n\n1. **FeatureFactory** - Creates complete Redux features with slices, async actions, and reducers\n2. **ThunkFactory** - Generates standardized async thunks for API operations\n3. **StateFactory** - Creates comprehensive initial state structures\n4. **CacheFactory** - Provides browser storage utilities with fallback support\n5. **ApiFactory** - Creates RTK Query APIs with standardized CRUD operations and caching\n\n## Installation\n\n```bash\nnpm install @feardread/feature-factory\n# The factory utilities are included in your project source\n```\n\ndependencies:\n```bash\nnpm install @reduxjs/toolkit react-redux\n```\n\n## Core Components\n\n### FeatureFactory\n\nCreates complete Redux features with standardized structure including slices, async actions, and reducers.\n\n```javascript\nimport { FeatureFactory } from './FeatureFactory';\n\nconst userFeature = FeatureFactory('users', {\n  setCurrentUser: (state, action) => {\n    state.currentUser = action.payload;\n  }\n});\n\nconst { slice, asyncActions } = userFeature.create();\n```\n\n### ThunkFactory\n\nFactory for creating Redux async thunks with standardized patterns for HTTP operations.\n\n```javascript\nimport ThunkFactory from './ThunkFactory';\n\n// Create individual thunks\nconst fetchUsers = ThunkFactory.create('users', 'all');\nconst createUser = ThunkFactory.post('users', 'create');\n\n// Create full CRUD suite\nconst userThunks = ThunkFactory.createCrud('users');\n```\n\n### StateFactory\n\nCreates comprehensive initial state structures with optional features like pagination, filtering, and validation.\n\n```javascript\nimport StateFactory from './StateFactory';\n\n// Full-featured state\nconst initialState = StateFactory('users');\n\n// Minimal state\nconst minimalState = StateFactory.minimal('users');\n\n// List-optimized state\nconst listState = StateFactory.forList('users');\n```\n\n### CacheFactory\n\nBrowser storage utilities with automatic fallback to memory storage.\n\n```javascript\nimport CacheFactory from './CacheFactory';\n\nconst cache = CacheFactory({ type: 'local', prefix: 'myapp_' });\n\nawait cache.set('user', userData);\nconst user = await cache.get('user');\n```\n\n### ApiFactory\n\nCreates RTK Query APIs with standardized CRUD operations, caching, and tag invalidation.\n\n```javascript\nimport ApiFactory from './ApiFactory';\n\n// Create complete API with standard CRUD endpoints\nconst usersApi = ApiFactory.createComplete('users');\n\n// Create custom API\nconst customApi = ApiFactory('products')\n  .inject('getFeatured', {\n    method: 'GET',\n    url: 'products/featured',\n    providesTags: ['Product']\n  })\n  .create();\n```\n\n## Quick Start\n\nHere's how to create a complete feature using all components:\n\n```javascript\nimport { FeatureFactory } from './FeatureFactory';\nimport StateFactory from './StateFactory';\nimport ThunkFactory from './ThunkFactory';\nimport ApiFactory from './ApiFactory';\n\n// 1. Create RTK Query API (recommended for new projects)\nconst productsApi = ApiFactory.createComplete('products', {\n  tagTypes: ['Product', 'Category']\n});\n\n// OR use traditional async thunks\n// 1. Create initial state\nconst initialState = StateFactory.forList('products');\n\n// 2. Create custom async actions\nconst customActions = {\n  searchProducts: ThunkFactory.create('products', 'search'),\n  getPopularProducts: ThunkFactory.custom('products', 'popular', {\n    method: 'GET',\n    customUrl: 'products/popular'\n  })\n};\n\n// 3. Create the feature\nconst productFeature = FeatureFactory('products', {\n  toggleFavorite: (state, action) => {\n    const product = state.products.find(p => p.id === action.payload);\n    if (product) {\n      product.isFavorite = !product.isFavorite;\n    }\n  }\n});\n\n// 4. Generate slice and actions\nconst { slice, asyncActions } = productFeature.create({\n  service: customActions,\n  initialState\n});\n\nexport const productReducer = slice.reducer;\nexport const productActions = { ...slice.actions, ...asyncActions };\n\n// For RTK Query approach, use generated hooks:\n// const { data, error, isLoading } = productsApi.useGetAllQuery();\n```\n\n## API Reference\n\n### FeatureFactory API\n\n#### `FeatureFactory(entity, reducers, endpoints)`\n\nCreates a feature factory instance.\n\n**Parameters:**\n- `entity` (string): Entity name for the feature\n- `reducers` (Object): Custom reducers to include in the slice\n- `endpoints` (Object|null): API endpoints (currently unused)\n\n**Returns:** Feature factory instance\n\n#### Methods\n\n- `create(options)`: Creates slice and async actions\n- `manager(initialReducers)`: Creates dynamic reducer manager\n- `inject(source, destination)`: Merges objects\n- `getEntityName()`: Returns entity name\n- `getAdapter()`: Returns RTK entity adapter\n\n### ThunkFactory API\n\n#### Static Methods\n\n- `create(entity, prefix)`: Creates GET request thunk\n- `post(entity, prefix)`: Creates POST request thunk  \n- `put(entity, prefix)`: Creates PUT request thunk\n- `patch(entity, prefix)`: Creates PATCH request thunk\n- `delete(entity, prefix)`: Creates DELETE request thunk\n- `custom(entity, prefix, options)`: Creates custom configured thunk\n- `createCrud(entity)`: Creates complete CRUD thunk suite\n\n#### Standard Operations\n\n- `all`: GET /entity/all\n- `one`: GET /entity/:id  \n- `search`: GET /entity/search?params\n- `create`: POST /entity/create\n- `update`: PUT /entity/:id\n- `patch`: PATCH /entity/:id\n- `delete`: DELETE /entity/:id\n\n### StateFactory API\n\n#### `StateFactory(namespace, options)`\n\nCreates comprehensive initial state.\n\n**Parameters:**\n- `namespace` (string): Entity namespace\n- `options` (Object): Configuration options\n\n**Options:**\n- `includeEntityState` (boolean): Include entity-specific state\n- `includePagination` (boolean): Include pagination state\n- `includeFiltering` (boolean): Include filtering state  \n- `includeSorting` (boolean): Include sorting state\n- `includeSelection` (boolean): Include selection state\n- `includeValidation` (boolean): Include validation state\n- `includeMetadata` (boolean): Include metadata state\n- `customFields` (Object): Custom fields to add\n\n#### Preset Methods\n\n- `StateFactory.minimal(namespace)`: Minimal state structure\n- `StateFactory.forList(namespace)`: List/table optimized state\n- `StateFactory.forForm(namespace)`: Form optimized state\n- `StateFactory.forRealTime(namespace)`: Real-time data state\n- `StateFactory.normalized(namespace)`: Normalized entities state\n- `StateFactory.withOperations(namespace, operations)`: Custom operations tracking\n\n### CacheFactory API\n\n#### `CacheFactory(options)`\n\nCreates cache instance.\n\n**Options:**\n- `type` (string): 'local' or 'session'\n- `prefix` (string): Key prefix for namespacing\n- `enableLogging` (boolean): Enable debug logging\n- `fallbackToMemory` (boolean): Use memory storage fallback\n- `maxRetries` (number): Maximum retry attempts\n\n#### Methods\n\n- `set(key, value)`: Store value\n- `get(key, defaultValue)`: Retrieve value\n- `remove(key)`: Remove value\n- `clear()`: Clear all values\n- `keys()`: Get all keys\n- `has(key)`: Check if key exists\n- `getStats()`: Get storage statistics\n- `bulk.set(items)`: Set multiple items\n- `bulk.get(keys)`: Get multiple items\n- `bulk.remove(keys)`: Remove multiple items\n\n### ApiFactory API\n\n#### `ApiFactory(sliceName, options)`\n\nCreates an RTK Query API factory instance.\n\n**Parameters:**\n- `sliceName` (string): Entity/slice name\n- `options` (Object): Configuration options\n\n**Options:**\n- `tagTypes` (string[]): Cache tag types for invalidation\n- `baseQuery` (Object): Custom base query configuration  \n- `includeStandardEndpoints` (boolean): Include CRUD endpoints\n\n#### Static Methods\n\n- `createComplete(sliceName, options)`: Creates API with all standard endpoints\n- `createCustom(sliceName, endpoints, options)`: Creates API with only custom endpoints\n- `getStandardEndpoints()`: Returns standard endpoint configurations\n- `getHttpMethods()`: Returns HTTP methods constants\n\n#### Instance Methods\n\n- `inject(name, config)`: Inject single endpoint\n- `injectMany(endpoints)`: Inject multiple endpoints  \n- `create()`: Create the final API\n- `createStandard()`: Add standard CRUD endpoints\n- `createBulk()`: Add bulk operation endpoints\n- `createCustom(name, config)`: Add custom endpoint\n- `withAuth(token)`: Create API with authentication\n- `withBaseUrl(url)`: Create API with custom base URL\n\n#### Standard Endpoints Generated\n\n- `getAll`: GET /entity/all\n- `getById`: GET /entity/:id\n- `create`: POST /entity\n- `update`: PUT /entity/:id  \n- `patch`: PATCH /entity/:id\n- `delete`: DELETE /entity/:id\n- `search`: GET /entity/search\n\n## Examples\n\n### Complete User Management Feature\n\n```javascript\n// userFeature.js\nimport { FeatureFactory } from './FeatureFactory';\nimport StateFactory from './StateFactory';\nimport ThunkFactory from './ThunkFactory';\n\n// Create state optimized for user lists\nconst initialState = StateFactory.forList('users');\n\n// Create custom service actions\nconst userService = {\n  fetchProfile: ThunkFactory.custom('users', 'profile', {\n    method: 'GET',\n    customUrl: 'auth/profile'\n  }),\n  updateProfile: ThunkFactory.put('users', 'profile'),\n  changePassword: ThunkFactory.post('users', 'change-password')\n};\n\n// Create feature factory\nconst userFeature = FeatureFactory('users', {\n  setActiveUser: (state, action) => {\n    state.activeUser = action.payload;\n  },\n  clearUsers: (state) => {\n    state.data = [];\n    state.usersList = [];\n  }\n});\n\n// Generate the complete feature\nconst { slice, asyncActions } = userFeature.create({\n  service: userService,\n  initialState\n});\n\nexport const userReducer = slice.reducer;\nexport const userActions = { ...slice.actions, ...asyncActions };\n```\n\n### Using the Cache System\n\n```javascript\n// cacheService.js\nimport CacheFactory from './CacheFactory';\n\n// Create application cache\nconst appCache = CacheFactory({\n  type: 'local',\n  prefix: 'myapp_',\n  enableLogging: process.env.NODE_ENV === 'development'\n});\n\n// Cache service\nexport const cacheService = {\n  async cacheUserData(userId, userData) {\n    await appCache.set(`user_${userId}`, userData);\n  },\n\n  async getUserData(userId) {\n    return await appCache.get(`user_${userId}`);\n  },\n\n  async clearUserCache(userId) {\n    await appCache.remove(`user_${userId}`);\n  },\n\n  async cacheUserPreferences(preferences) {\n    await appCache.set('user_preferences', preferences);\n  }\n};\n```\n\n### RTK Query API with ApiFactory\n\n```javascript\n// productsApi.js\nimport ApiFactory from './ApiFactory';\n\n// Create complete API with all CRUD operations\nexport const productsApi = ApiFactory.createComplete('products', {\n  tagTypes: ['Product', 'Category', 'Review'],\n  baseQuery: {\n    baseUrl: process.env.REACT_APP_API_URL,\n    prepareHeaders: (headers, { getState }) => {\n      const token = getState().auth.token;\n      if (token) {\n        headers.set('authorization', `Bearer ${token}`);\n      }\n      return headers;\n    }\n  }\n});\n\n// Add custom endpoints\nconst enhancedApi = productsApi.injectEndpoints({\n  endpoints: (builder) => ({\n    getFeaturedProducts: builder.query({\n      query: () => 'products/featured',\n      providesTags: ['Product'],\n    }),\n    getProductsByCategory: builder.query({\n      query: (categoryId) => `products/category/${categoryId}`,\n      providesTags: (result, error, categoryId) => [\n        { type: 'Product', id: `CATEGORY_${categoryId}` },\n      ],\n    }),\n    toggleProductFavorite: builder.mutation({\n      query: ({ id, isFavorite }) => ({\n        url: `products/${id}/favorite`,\n        method: 'PATCH',\n        body: { isFavorite },\n      }),\n      invalidatesTags: (result, error, { id }) => [\n        { type: 'Product', id },\n      ],\n    }),\n  }),\n});\n\n// Export hooks for use in components\nexport const {\n  useGetAllQuery,\n  useGetByIdQuery,\n  useCreateMutation,\n  useUpdateMutation,\n  useDeleteMutation,\n  useGetFeaturedProductsQuery,\n  useGetProductsByCategoryQuery,\n  useToggleProductFavoriteMutation,\n} = enhancedApi;\n```\n\n### Using ApiFactory in Components\n\n```javascript\n// ProductList.jsx\nimport React from 'react';\nimport { \n  useGetAllQuery, \n  useDeleteMutation,\n  useGetFeaturedProductsQuery \n} from '../api/productsApi';\n\nconst ProductList = () => {\n  const { \n    data: products = [], \n    error, \n    isLoading \n  } = useGetAllQuery();\n  \n  const { \n    data: featuredProducts = [] \n  } = useGetFeaturedProductsQuery();\n  \n  const [deleteProduct, { isLoading: isDeleting }] = useDeleteMutation();\n\n  const handleDelete = async (productId) => {\n    try {\n      await deleteProduct({ id: productId }).unwrap();\n      // Success - cache automatically invalidated\n    } catch (error) {\n      console.error('Failed to delete product:', error);\n    }\n  };\n\n  if (isLoading) return <div>Loading products...</div>;\n  if (error) return <div>Error: {error.message}</div>;\n\n  return (\n    <div>\n      <section>\n        <h2>Featured Products</h2>\n        {featuredProducts.map(product => (\n          <ProductCard key={product.id} product={product} />\n        ))}\n      </section>\n      \n      <section>\n        <h2>All Products</h2>\n        {products.map(product => (\n          <ProductCard \n            key={product.id} \n            product={product}\n            onDelete={() => handleDelete(product.id)}\n            isDeleting={isDeleting}\n          />\n        ))}\n      </section>\n    </div>\n  );\n};\n```\n\n### Advanced State Management\n\n```javascript\n// advancedState.js\nimport StateFactory from './StateFactory';\n\n// Create state for a complex dashboard\nconst dashboardState = StateFactory('dashboard', {\n  includeMetadata: true,\n  includePagination: true,\n  customFields: {\n    widgets: [],\n    layout: 'grid',\n    theme: 'light',\n    notifications: [],\n    isFullscreen: false,\n    lastRefresh: null\n  }\n});\n\n// Create form state with validation\nconst userFormState = StateFactory.forForm('userForm');\n\n// Create real-time chat state\nconst chatState = StateFactory.forRealTime('chat');\n```\n\n## Best Practices\n\n### 1. Entity Naming\nUse consistent, descriptive entity names:\n```javascript\n// Good\nconst userFeature = FeatureFactory('users');\nconst productFeature = FeatureFactory('products');\n\n// Avoid\nconst feature1 = FeatureFactory('u');\nconst myFeature = FeatureFactory('thing');\n```\n\n### 2. State Organization\nChoose appropriate state factories for your use case:\n```javascript\n// For data tables/lists\nconst listState = StateFactory.forList('products');\n\n// For forms\nconst formState = StateFactory.forForm('userForm');\n\n// For simple data\nconst minimalState = StateFactory.minimal('settings');\n```\n\n### 3. Async Actions\nUse descriptive prefixes for custom actions:\n```javascript\nconst customActions = {\n  fetchUserProfile: ThunkFactory.create('users', 'profile'),\n  searchActiveUsers: ThunkFactory.create('users', 'active-search'),\n  bulkUpdateUsers: ThunkFactory.post('users', 'bulk-update')\n};\n```\n\n### 4. Error Handling\nAlways handle async action states in components:\n```javascript\nconst { data, loading, error } = useSelector(state => state.users);\n\nif (loading) return <LoadingSpinner />;\nif (error) return <ErrorMessage error={error} />;\n```\n\n### 5. Caching Strategy\nUse appropriate cache types and prefixes:\n```javascript\n// Session data (cleared on browser close)\nconst sessionCache = CacheFactory({ type: 'session' });\n\n// Persistent data\nconst persistentCache = CacheFactory({ \n  type: 'local', \n  prefix: 'app_v1_' \n});\n```\n\n### 6. RTK Query vs Async Thunks\nChoose the appropriate data fetching approach:\n\n```javascript\n// RTK Query - Recommended for new projects (automatic caching, background refetching)\nconst usersApi = ApiFactory.createComplete('users');\n\n// Async Thunks - Better for complex business logic or existing codebases\nconst userFeature = FeatureFactory('users').create({\n  service: ThunkFactory.createCrud('users')\n});\n```\n\n### 7. API Configuration\nConfigure APIs with proper error handling and authentication:\n```javascript\nconst api = ApiFactory('products', {\n  baseQuery: {\n    baseUrl: process.env.REACT_APP_API_URL,\n    prepareHeaders: (headers, { getState }) => {\n      const token = getState().auth.token;\n      if (token) {\n        headers.set('authorization', `Bearer ${token}`);\n      }\n      return headers;\n    },\n  },\n  tagTypes: ['Product', 'Category']\n});\n```\n\n## TypeScript Support\n\nThe factories can be used with TypeScript by defining interfaces:\n\n```typescript\ninterface User {\n  id: number;\n  name: string;\n  email: string;\n}\n\ninterface UserState {\n  users: User[];\n  currentUser: User | null;\n  loading: boolean;\n  error: string | null;\n}\n\n// Use with proper typing\nconst userFeature = FeatureFactory<UserState>('users', reducers);\n```\n\n## Contributing\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n## Dependencies\n\n- `@reduxjs/toolkit` - Required for Redux functionality\n- Modern browser with ES6+ support\n- Node.js 14+ for development\n\n## Browser Support\n\n- Chrome 60+\n- Firefox 55+\n- Safari 12+\n- Edge 79+\n\nFor older browsers, the CacheFactory will automatically fallback to memory storage if localStorage/sessionStorage is unavailable.","readmeFilename":"README.md"}