{"_id":"redux-ducklings","_rev":"26-9003f1a7aa048d1998fc814acbb703fe","name":"redux-ducklings","description":"[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/sammysaglam/redux-ducklings/blob/master/LICENSE) [![npm version](https://img.shields.io/npm/v/redux-ducklings.svg?style=flat)](https://www.npmjs.com/package/redux-du","dist-tags":{"latest":"1.1.1"},"versions":{"1.0.0":{"name":"redux-ducklings","version":"1.0.0","main":"index.js","author":{"name":"Sammy Saglam"},"license":"MIT","scripts":{"build-watch":"webpack --progress --watch","build-dev":"webpack --progress","build":"webpack --progress && webpack -p"},"devDependencies":{"babel-core":"^6.26.0","babel-loader":"^7.1.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.0","eslint":"^4.7.0","eslint-plugin-react":"^7.3.0","eslint-sammy-preset":"^1.0.0","uglifyjs-webpack-plugin":"^0.4.6","webpack":"^3.6.0"},"gitHead":"437a72935b5992b7093e6a0ee2391dc0cc701714","description":"Redux Ducklings: Unique Redux Bundles (based on Redux Ducks) ============================================================","_id":"redux-ducklings@1.0.0","_shasum":"7dcb59b9555d8ec4af4be6aa587db71cf9c77163","_from":".","_npmVersion":"4.2.0","_nodeVersion":"7.9.0","_npmUser":{"name":"sammysaglam","email":"sami@saglam.tk"},"dist":{"shasum":"7dcb59b9555d8ec4af4be6aa587db71cf9c77163","tarball":"https://registry.npmjs.org/redux-ducklings/-/redux-ducklings-1.0.0.tgz","integrity":"sha512-W9DcJi/MWGCQKaLwMPejMnbwkOjGh21+wPVwS4/nBp1ykQrlXnAbGWwj0g9n0JQESqnLbt1abFQGPFUXayDavA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFhMphrBQY6XQdavJrUeaQj18oBDHapjyljxFLwpAMENAiEA/aVoKVRjLQipfwHKU0PX8Z6LdWTY3v98eZO5HdtRDUo="}]},"maintainers":[{"name":"sammysaglam","email":"sami@saglam.tk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-ducklings-1.0.0.tgz_1507147789211_0.21206540754064918"},"directories":{}},"1.0.1":{"name":"redux-ducklings","version":"1.0.1","main":"index.js","author":{"name":"Sammy Saglam"},"license":"MIT","scripts":{"build-watch":"webpack --progress --watch","build-dev":"webpack --progress","build":"webpack --progress && webpack -p"},"devDependencies":{"babel-core":"^6.26.0","babel-loader":"^7.1.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.0","eslint":"^4.7.0","eslint-plugin-react":"^7.3.0","eslint-sammy-preset":"^1.0.0","uglifyjs-webpack-plugin":"^0.4.6","webpack":"^3.6.0"},"gitHead":"97ade0f78a59f057c3e6a2e5be6ec8bf45797058","description":"Redux Ducklings: Unique Redux Bundles (based on Redux Ducks) ============================================================","_id":"redux-ducklings@1.0.1","_npmVersion":"5.4.2","_nodeVersion":"7.9.0","_npmUser":{"name":"sammysaglam","email":"sami@saglam.tk"},"dist":{"integrity":"sha512-QDrwrwNFE0a4ueEoffNpmpGB8bZxHCb0jODyiy9ZCbVeLiwFrVcLbg8wbwB6A86pmoCJ+f+yXDDNdH35OqiUDQ==","shasum":"7720f514b09aee895132b986a38dbbaa7b3848af","tarball":"https://registry.npmjs.org/redux-ducklings/-/redux-ducklings-1.0.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCoI4AZYZ0UaeD4YokbUaP22Gm7hE+h1LPUKamne8Dt/gIgAICQIf+33XeqyOMXXVbkrq01KZxZJ6jxSj2SeAolTQE="}]},"maintainers":[{"name":"sammysaglam","email":"sami@saglam.tk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-ducklings-1.0.1.tgz_1507749157846_0.9737416673451662"},"directories":{}},"1.0.2":{"name":"redux-ducklings","version":"1.0.2","main":"index.js","author":{"name":"Sammy Saglam"},"license":"MIT","scripts":{"build-watch":"webpack --progress --watch","build-dev":"webpack --progress","build":"webpack --progress && webpack -p"},"devDependencies":{"babel-core":"^6.26.0","babel-loader":"^7.1.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.0","eslint":"^4.7.0","eslint-plugin-react":"^7.3.0","eslint-sammy-preset":"^1.0.0","uglifyjs-webpack-plugin":"^0.4.6","webpack":"^3.6.0"},"gitHead":"97ade0f78a59f057c3e6a2e5be6ec8bf45797058","description":"Redux Ducklings: Unique Redux Bundles (based on Redux Ducks) ============================================================","_id":"redux-ducklings@1.0.2","_npmVersion":"5.4.2","_nodeVersion":"7.9.0","_npmUser":{"name":"sammysaglam","email":"sami@saglam.tk"},"dist":{"integrity":"sha512-1CFwqGCA6RQWf2vab0EEevQUmCWMY6f41LF8D7YmCfz7eMo21VN7DHW1AJOLrCt8ndNdb3JNmF6NDwokeD+Flg==","shasum":"1d4c4c1ddb89bc7a0861c91af86793881871728b","tarball":"https://registry.npmjs.org/redux-ducklings/-/redux-ducklings-1.0.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHQUYhzuDeiRER/L+nGRvAxbg/EMdLIv5R0jn98CyrN6AiEArvHvYlCIyM5cmisW7mGmHYQwb317bZ+gLo8lUIZ/cOU="}]},"maintainers":[{"name":"sammysaglam","email":"sami@saglam.tk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-ducklings-1.0.2.tgz_1507749611003_0.4651246478315443"},"directories":{}},"1.0.3":{"name":"redux-ducklings","version":"1.0.3","main":"index.js","author":{"name":"Sammy Saglam"},"license":"MIT","scripts":{"build-watch":"webpack --progress --watch","build-dev":"webpack --progress","build":"webpack --progress && webpack -p"},"devDependencies":{"babel-core":"^6.26.0","babel-loader":"^7.1.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.0","eslint":"^4.7.0","eslint-plugin-react":"^7.3.0","eslint-sammy-preset":"^1.0.0","uglifyjs-webpack-plugin":"^0.4.6","webpack":"^3.6.0"},"gitHead":"97ade0f78a59f057c3e6a2e5be6ec8bf45797058","description":"Redux Ducklings: Unique Redux Bundles (based on Redux Ducks) ============================================================","_id":"redux-ducklings@1.0.3","_npmVersion":"5.4.2","_nodeVersion":"7.9.0","_npmUser":{"name":"sammysaglam","email":"sami@saglam.tk"},"dist":{"integrity":"sha512-oRXXbWxTVDqLCbrkZ2sg1zXo7wD6Xx/sJkyUAmp11tjZNdq6YO304sYxfFOmF+9NDPEGU4GFbKSV2SvyvRxp8Q==","shasum":"29221953ac560954af266edcc65a8e38bf78ae2b","tarball":"https://registry.npmjs.org/redux-ducklings/-/redux-ducklings-1.0.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBn12+5eRFfD20RtUOqchfAzG1Gc5TyiyLu+bYLPAR/BAiEArUj79rSp0s8zUNZ+S/8ZRkIvEsTXY4J2ad35Xl0g59Y="}]},"maintainers":[{"name":"sammysaglam","email":"sami@saglam.tk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-ducklings-1.0.3.tgz_1507750436742_0.16311963484622538"},"directories":{}},"1.0.4":{"name":"redux-ducklings","version":"1.0.4","main":"index.js","author":{"name":"Sammy Saglam"},"license":"MIT","scripts":{"build-watch":"webpack --progress --watch","build-dev":"webpack --progress","build":"webpack --progress && webpack -p"},"devDependencies":{"babel-core":"^6.26.0","babel-loader":"^7.1.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.0","eslint":"^4.7.0","eslint-plugin-react":"^7.3.0","eslint-sammy-preset":"^1.0.0","uglifyjs-webpack-plugin":"^0.4.6","webpack":"^3.6.0"},"gitHead":"97ade0f78a59f057c3e6a2e5be6ec8bf45797058","description":"Redux Ducklings: Unique Redux Bundles (based on Redux Ducks) ============================================================","_id":"redux-ducklings@1.0.4","_npmVersion":"5.4.2","_nodeVersion":"7.9.0","_npmUser":{"name":"sammysaglam","email":"sami@saglam.tk"},"dist":{"integrity":"sha512-HWu5ak3050SLG0TpK50W1uNLvKrK7ByOFTXYlOMe29K73Vn2k82+n+kCQpOHkEfcsp5rT6qbIfRgYgAaG1tc0A==","shasum":"3a1ff07d79bfac0d043ba2620f72bea7167fcf2e","tarball":"https://registry.npmjs.org/redux-ducklings/-/redux-ducklings-1.0.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHhA3gHTC7MVEfM4a33Ux0ykiA3ELyvzOQuwGdRcGD35AiA8wAyKZq3xVIebj6/cwufTRbnEcpAThW0TiFAXXJbTTg=="}]},"maintainers":[{"name":"sammysaglam","email":"sami@saglam.tk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-ducklings-1.0.4.tgz_1507750569197_0.9383159945718944"},"directories":{}},"1.0.5":{"name":"redux-ducklings","version":"1.0.5","main":"index.js","author":{"name":"Sammy Saglam"},"license":"MIT","scripts":{"build-watch":"webpack --progress --watch","build-dev":"webpack --progress","build":"webpack --progress && webpack -p"},"devDependencies":{"babel-core":"^6.26.0","babel-loader":"^7.1.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.0","eslint":"^4.7.0","eslint-plugin-react":"^7.3.0","eslint-sammy-preset":"^1.0.0","uglifyjs-webpack-plugin":"^0.4.6","webpack":"^3.6.0"},"gitHead":"97ade0f78a59f057c3e6a2e5be6ec8bf45797058","description":"Redux Ducklings: Unique Redux Bundles (based on Redux Ducks) ============================================================","_id":"redux-ducklings@1.0.5","_npmVersion":"5.4.2","_nodeVersion":"7.9.0","_npmUser":{"name":"sammysaglam","email":"sami@saglam.tk"},"dist":{"integrity":"sha512-zWqowABzNaYCIxA3YaWqNr0PwVRWvCiso40RpgndpzQgjd/G1NiEZoEZ//GIwPNxvHKq23jEfPoxPcYeOOC/Ig==","shasum":"076cbbdce6d05bb37fc7c8f6601013a17a2f455a","tarball":"https://registry.npmjs.org/redux-ducklings/-/redux-ducklings-1.0.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD+bVSYw9Xz6kXj89wXk3qqCLWbJLbVdNSK8aXMnzclHwIhAJq/f3N7Z78UbaObSFy3S5vzL8OLzXryFdpjHjmjMgFB"}]},"maintainers":[{"name":"sammysaglam","email":"sami@saglam.tk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-ducklings-1.0.5.tgz_1507750743184_0.6628354438580573"},"directories":{}},"1.0.6":{"name":"redux-ducklings","version":"1.0.6","main":"index.js","author":{"name":"Sammy Saglam"},"license":"MIT","scripts":{"build-watch":"webpack --progress --watch","build-dev":"webpack --progress","build":"webpack --progress && webpack -p"},"devDependencies":{"babel-core":"^6.26.0","babel-loader":"^7.1.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.0","eslint":"^4.7.0","eslint-plugin-react":"^7.3.0","eslint-sammy-preset":"^1.0.0","uglifyjs-webpack-plugin":"^0.4.6","webpack":"^3.6.0"},"gitHead":"97ade0f78a59f057c3e6a2e5be6ec8bf45797058","description":"Redux Ducklings: Unique Redux Bundles (based on Redux Ducks) ============================================================","_id":"redux-ducklings@1.0.6","_npmVersion":"5.4.2","_nodeVersion":"7.9.0","_npmUser":{"name":"sammysaglam","email":"sami@saglam.tk"},"dist":{"integrity":"sha512-ymPAKyKResrw8WG9pp8md6EMewwcwjpKOJ0BHYgA/Pkaohk93gdyZmDr2LCSN/7Zril2RK4vwceiTStcGjm/uw==","shasum":"67b9cd178e337c71607ee127a2e391f9567f3fe9","tarball":"https://registry.npmjs.org/redux-ducklings/-/redux-ducklings-1.0.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD+iU9soxYUkVrC3YO38znokpq7sBvZCCjCEGa6i1evbgIhAPrgp7Un8j5NnpaJ9Hn0Y4qWWLnEIwmvZ6wgNpDdhGI0"}]},"maintainers":[{"name":"sammysaglam","email":"sami@saglam.tk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-ducklings-1.0.6.tgz_1507750783086_0.8045245071407408"},"directories":{}},"1.0.7":{"name":"redux-ducklings","version":"1.0.7","main":"index.js","author":{"name":"Sammy Saglam"},"license":"MIT","scripts":{"build-watch":"webpack --progress --watch","build-dev":"webpack --progress","build":"webpack --progress && webpack -p"},"devDependencies":{"babel-core":"^6.26.0","babel-loader":"^7.1.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.0","eslint":"^4.7.0","eslint-plugin-react":"^7.3.0","eslint-sammy-preset":"^1.0.0","uglifyjs-webpack-plugin":"^0.4.6","webpack":"^3.6.0"},"gitHead":"3a1c63bbc17d34331971e2b91df6507c4d279544","description":"Redux Ducklings: Unique Redux Bundles (based on Redux Ducks) ============================================================","_id":"redux-ducklings@1.0.7","_npmVersion":"5.4.2","_nodeVersion":"7.9.0","_npmUser":{"name":"sammysaglam","email":"sami@saglam.tk"},"dist":{"integrity":"sha512-Ymr5C/GoxOpSSP8XHlAUaoUzlckPPTAVsKWHvWhFspnmlow8vGSmaVJLqdSUQfDKZaCdpn3JrZbaVSG+9srCHg==","shasum":"83b01821159c72c1d77324f45b9c3d879392ad0a","tarball":"https://registry.npmjs.org/redux-ducklings/-/redux-ducklings-1.0.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCWk0qNvbJ8va0VTadswQpQnTmZXVOLmZSNDRcxX189iwIhAPLS4OdyLnH9H+S4zrrkhhlGiLYFo4NSfHr8ipXFpgwZ"}]},"maintainers":[{"name":"sammysaglam","email":"sami@saglam.tk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-ducklings-1.0.7.tgz_1507751785827_0.2879087636247277"},"directories":{}},"1.0.9":{"name":"redux-ducklings","version":"1.0.9","main":"index.js","author":{"name":"Sammy Saglam"},"license":"MIT","scripts":{"build-watch":"webpack --progress --watch","build-dev":"webpack --progress","build":"webpack --progress && webpack -p"},"devDependencies":{"babel-core":"^6.26.0","babel-loader":"^7.1.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.0","eslint":"^4.7.0","eslint-plugin-react":"^7.3.0","eslint-sammy-preset":"^1.0.0","uglifyjs-webpack-plugin":"^0.4.6","webpack":"^3.6.0"},"gitHead":"3a1c63bbc17d34331971e2b91df6507c4d279544","description":"Redux Ducklings: Unique Redux Bundles (based on Redux Ducks) ============================================================","_id":"redux-ducklings@1.0.9","_npmVersion":"5.4.2","_nodeVersion":"7.9.0","_npmUser":{"name":"sammysaglam","email":"sami@saglam.tk"},"dist":{"integrity":"sha512-gLNA9aU7TppVsX7o28D0Cj7l9fwSIQwbnBCd70NDCjJPdIKXcjsTW6pwXjJnufWReSX+P3fQI8mpFp6F0NzM+g==","shasum":"f0441c8f80a68e676de20406e950c45bcfdf4cc1","tarball":"https://registry.npmjs.org/redux-ducklings/-/redux-ducklings-1.0.9.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDkYH62rYzfqWBEjkgVfhxkarFYGvjUFkI1joOXBNuvVAiEArYq+QGd79bPKzMLLNP+xrsvZmdtSnezwBvhVw5wSTSE="}]},"maintainers":[{"name":"sammysaglam","email":"sami@saglam.tk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-ducklings-1.0.9.tgz_1507752463574_0.33535494841635227"},"directories":{}},"1.0.11":{"name":"redux-ducklings","version":"1.0.11","main":"index.js","author":{"name":"Sammy Saglam"},"license":"MIT","scripts":{"build-watch":"webpack --progress --watch","build-dev":"webpack --progress","build":"webpack --progress && webpack -p"},"devDependencies":{"babel-core":"^6.26.0","babel-loader":"^7.1.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.0","eslint":"^4.7.0","eslint-plugin-react":"^7.3.0","eslint-sammy-preset":"^1.0.0","uglifyjs-webpack-plugin":"^0.4.6","webpack":"^3.6.0"},"gitHead":"3a1c63bbc17d34331971e2b91df6507c4d279544","description":"Redux Ducklings: Unique Redux Bundles (based on Redux Ducks) ============================================================","_id":"redux-ducklings@1.0.11","_npmVersion":"5.4.2","_nodeVersion":"7.9.0","_npmUser":{"name":"sammysaglam","email":"sami@saglam.tk"},"dist":{"integrity":"sha512-WaDnXd3DG2byftiL/FtWQasnqqVom1Q09RAsYry0WS85gVRqzi3+6cKNyJ3tqvh+n4SmO2blnAOR0xmnDtt2Xw==","shasum":"c5d2d87f3ea97cbc661b283e7d04a5f8b4d67afa","tarball":"https://registry.npmjs.org/redux-ducklings/-/redux-ducklings-1.0.11.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEMW/9QzGs71Y7PO7fSjyKdxWmXqn+4ybRg5SMXPSeMuAiEAjuKSBALAmFGl49rIHcxosuzPZebUq6zeDofpDbzM4jE="}]},"maintainers":[{"name":"sammysaglam","email":"sami@saglam.tk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-ducklings-1.0.11.tgz_1507752578983_0.9544005126226693"},"directories":{}},"1.0.12":{"name":"redux-ducklings","version":"1.0.12","main":"index.js","author":{"name":"Sammy Saglam"},"license":"MIT","scripts":{"build-watch":"webpack --progress --watch","build-dev":"webpack --progress","build":"webpack --progress && webpack -p"},"devDependencies":{"babel-core":"^6.26.0","babel-loader":"^7.1.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.0","eslint":"^4.7.0","eslint-plugin-react":"^7.3.0","eslint-sammy-preset":"^1.0.0","uglifyjs-webpack-plugin":"^0.4.6","webpack":"^3.6.0"},"gitHead":"3a1c63bbc17d34331971e2b91df6507c4d279544","description":"Redux Ducklings: Unique Redux Bundles (based on Redux Ducks) ============================================================","_id":"redux-ducklings@1.0.12","_npmVersion":"5.4.2","_nodeVersion":"7.9.0","_npmUser":{"name":"sammysaglam","email":"sami@saglam.tk"},"dist":{"integrity":"sha512-zoJx28pQV/tANHqM7EpBSwvE5MVskTxhBUZNjaAeYKgG69LTjqZ801Qr0hHRKEQIXGOjE9D/gjD3ZOWpydC67Q==","shasum":"c3217c1947440bae766ca4e143ed6d02fdb8031f","tarball":"https://registry.npmjs.org/redux-ducklings/-/redux-ducklings-1.0.12.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFSHKOWiK79tv2MXr7TV5kjW27Spgtq92HzzVfsQo1JGAiEA/+UBTlrGJxAEq16Rygf1k+u9CIRDPRO9Y64onmxjmy0="}]},"maintainers":[{"name":"sammysaglam","email":"sami@saglam.tk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-ducklings-1.0.12.tgz_1507752732535_0.35620281915180385"},"directories":{}},"1.0.13":{"name":"redux-ducklings","version":"1.0.13","main":"index.js","author":{"name":"Sammy Saglam"},"license":"MIT","scripts":{"build-watch":"webpack --progress --watch","build-dev":"webpack --progress","build":"webpack --progress && webpack -p"},"devDependencies":{"babel-core":"^6.26.0","babel-loader":"^7.1.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.0","eslint":"^4.7.0","eslint-plugin-react":"^7.3.0","eslint-sammy-preset":"^1.0.0","uglifyjs-webpack-plugin":"^0.4.6","webpack":"^3.6.0"},"gitHead":"3a1c63bbc17d34331971e2b91df6507c4d279544","description":"Redux Ducklings: Unique Redux Bundles (based on Redux Ducks) ============================================================","_id":"redux-ducklings@1.0.13","_npmVersion":"5.4.2","_nodeVersion":"7.9.0","_npmUser":{"name":"sammysaglam","email":"sami@saglam.tk"},"dist":{"integrity":"sha512-00oy7k5dm9BxxBdDZOzs5Fj/T99Sw5VtMt8b6fq7n8UPZ82Ek7J1lw8Mh6vW7ItFJRIvzcYr4lTJMJQAPHAH2Q==","shasum":"dd9aaba9f1411144e4f2d941fb9878016d588c57","tarball":"https://registry.npmjs.org/redux-ducklings/-/redux-ducklings-1.0.13.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG2Zkki5H+8YfSaiQNoEwDXHRddfPWw4O0ytvLaHw3gaAiEAjJOjMMM0KxMmjEab88DR0XhX1lSE4nbiXjBbI7FcsvE="}]},"maintainers":[{"name":"sammysaglam","email":"sami@saglam.tk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-ducklings-1.0.13.tgz_1507752838174_0.15488268714398146"},"directories":{}},"1.0.14":{"name":"redux-ducklings","version":"1.0.14","main":"index.js","author":{"name":"Sammy Saglam"},"license":"MIT","scripts":{"build-watch":"webpack --progress --watch","build-dev":"webpack --progress","build":"webpack --progress && webpack -p"},"devDependencies":{"babel-core":"^6.26.0","babel-loader":"^7.1.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.0","eslint":"^4.7.0","eslint-plugin-react":"^7.3.0","eslint-sammy-preset":"^1.0.0","uglifyjs-webpack-plugin":"^0.4.6","webpack":"^3.6.0"},"gitHead":"3a1c63bbc17d34331971e2b91df6507c4d279544","description":"Redux Ducklings: Unique Redux Bundles (based on Redux Ducks) ============================================================","_id":"redux-ducklings@1.0.14","_npmVersion":"5.4.2","_nodeVersion":"7.9.0","_npmUser":{"name":"sammysaglam","email":"sami@saglam.tk"},"dist":{"integrity":"sha512-ou3JwoCaZ2HHtGe2Y6Npn6o16xbnRrFeZBXxEQfwXo8O9wDSvRyHjmelqxCGPb281IMJgyeflQi7x1t2LaoYkA==","shasum":"0afb8730eca8ce65696f7325b6818b8d8e0e6b1d","tarball":"https://registry.npmjs.org/redux-ducklings/-/redux-ducklings-1.0.14.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH6kP3SsokINInm+5+mkJHn0yiXPLlbZV9/iJ/pgXn7jAiEAkoxPIdzbDU1+/a+WZlAtneD9us0e9f5Cht8YnNFGoLc="}]},"maintainers":[{"name":"sammysaglam","email":"sami@saglam.tk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-ducklings-1.0.14.tgz_1507752961450_0.9224889292381704"},"directories":{}},"1.0.15":{"name":"redux-ducklings","version":"1.0.15","main":"index.js","author":{"name":"Sammy Saglam"},"license":"MIT","scripts":{"build-watch":"webpack --progress --watch","build-dev":"webpack --progress","build":"webpack --progress && webpack -p"},"devDependencies":{"babel-core":"^6.26.0","babel-loader":"^7.1.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.0","eslint":"^4.7.0","eslint-plugin-react":"^7.3.0","eslint-sammy-preset":"^1.0.0","uglifyjs-webpack-plugin":"^0.4.6","webpack":"^3.6.0"},"gitHead":"3a1c63bbc17d34331971e2b91df6507c4d279544","description":"Redux Ducklings: Unique Redux Bundles (based on Redux Ducks) ============================================================","_id":"redux-ducklings@1.0.15","_npmVersion":"5.4.2","_nodeVersion":"7.9.0","_npmUser":{"name":"sammysaglam","email":"sami@saglam.tk"},"dist":{"integrity":"sha512-wfirx9u/yO8UgACb2McW7Y0Np1hW21A2yMvZco3LAaED0YkOq/XCQ9n9TtJJ4ocVoTULL+95Naf3LsB0WRuilg==","shasum":"af343d9dc4885eb610101cc0e083833279cd8284","tarball":"https://registry.npmjs.org/redux-ducklings/-/redux-ducklings-1.0.15.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDuOKV7orx6Me3OOVu+/d9yMS2EanclWXBVWj9N9qJ6WAIgFMpqbFOQpbbQnEsPV5wXXpoJjis7r/o5Xvdw5INtddg="}]},"maintainers":[{"name":"sammysaglam","email":"sami@saglam.tk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-ducklings-1.0.15.tgz_1507753017054_0.14869739883579314"},"directories":{}},"1.0.16":{"name":"redux-ducklings","version":"1.0.16","main":"index.js","author":{"name":"Sammy Saglam"},"license":"MIT","scripts":{"build-watch":"webpack --progress --watch","build-dev":"webpack --progress","build":"webpack --progress && webpack -p"},"devDependencies":{"babel-core":"^6.26.0","babel-loader":"^7.1.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.0","eslint":"^4.7.0","eslint-plugin-react":"^7.3.0","eslint-sammy-preset":"^1.0.0","uglifyjs-webpack-plugin":"^0.4.6","webpack":"^3.6.0"},"gitHead":"3a1c63bbc17d34331971e2b91df6507c4d279544","description":"Redux Ducklings: Unique Redux Bundles (based on Redux Ducks) ============================================================","_id":"redux-ducklings@1.0.16","_npmVersion":"5.4.2","_nodeVersion":"7.9.0","_npmUser":{"name":"sammysaglam","email":"sami@saglam.tk"},"dist":{"integrity":"sha512-IdnxWiJS6RLzizz3/a6a1DjfH38Rh2A57SgcPIoQQhTqx3AzzDflVAEGZWUnLMbJLa8wjfWtX1Iabc5aCmEeeQ==","shasum":"9ad2689c7d41a96ed1b33e317201c9b291af7da7","tarball":"https://registry.npmjs.org/redux-ducklings/-/redux-ducklings-1.0.16.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQClcFMpe8dEghqfXyQZFQkz4OmVtpLh7dZx48PXKhq0qQIhAKy2ML7u9ixKTNy+FrmD0YdHElnS4WXUm7Z1TgNPFSlR"}]},"maintainers":[{"name":"sammysaglam","email":"sami@saglam.tk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-ducklings-1.0.16.tgz_1507753104929_0.9246943525504321"},"directories":{}},"1.0.17":{"name":"redux-ducklings","version":"1.0.17","main":"index.js","author":{"name":"Sammy Saglam"},"license":"MIT","scripts":{"build-watch":"webpack --progress --watch","build-dev":"webpack --progress","build":"webpack --progress && webpack -p"},"devDependencies":{"babel-core":"^6.26.0","babel-loader":"^7.1.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.0","eslint":"^4.7.0","eslint-plugin-react":"^7.3.0","eslint-sammy-preset":"^1.0.0","uglifyjs-webpack-plugin":"^0.4.6","webpack":"^3.6.0"},"gitHead":"3a1c63bbc17d34331971e2b91df6507c4d279544","description":"Redux Ducklings: Unique Redux Bundles (based on Redux Ducks) ============================================================","_id":"redux-ducklings@1.0.17","_npmVersion":"5.4.2","_nodeVersion":"7.9.0","_npmUser":{"name":"sammysaglam","email":"sami@saglam.tk"},"dist":{"integrity":"sha512-8jjTyS1cngPxprPBOyzLh7m5ur/z/QUegAJNIBW0w1g6uCeyBUBO5HCjlsAJ+xAjfHPoBR/hvKqF6sVz6JieXg==","shasum":"7859cb44bf2ef1692aacd93fcf883a4488a0d6d7","tarball":"https://registry.npmjs.org/redux-ducklings/-/redux-ducklings-1.0.17.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID9aYcSb5WtTWxtQhhy2ktDLj/rzicMtTBo2XOWC5B6ZAiEAuUhZnIvrIU5MDPCeyvrz29YfiBgfdhXcATViuc/1NDE="}]},"maintainers":[{"name":"sammysaglam","email":"sami@saglam.tk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-ducklings-1.0.17.tgz_1507753199093_0.5047705250326544"},"directories":{}},"1.0.18":{"name":"redux-ducklings","version":"1.0.18","main":"index.js","author":{"name":"Sammy Saglam"},"license":"MIT","scripts":{"build-watch":"webpack --progress --watch","build-dev":"webpack --progress","build":"webpack --progress && webpack -p"},"devDependencies":{"babel-core":"^6.26.0","babel-loader":"^7.1.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.0","eslint":"^4.7.0","eslint-plugin-react":"^7.3.0","eslint-sammy-preset":"^1.0.0","uglifyjs-webpack-plugin":"^0.4.6","webpack":"^3.6.0"},"gitHead":"3a1c63bbc17d34331971e2b91df6507c4d279544","description":"Redux Ducklings: Unique Redux Bundles (based on Redux Ducks) ============================================================","_id":"redux-ducklings@1.0.18","_npmVersion":"5.4.2","_nodeVersion":"7.9.0","_npmUser":{"name":"sammysaglam","email":"sami@saglam.tk"},"dist":{"integrity":"sha512-X8w8yucMCHJOXjmWtOLTjJkLC4QfuVr1SuNWf2STmSxqAA0/eab/Um75OHTomaC8y1H3zJcavfyvg7vkjTUq0g==","shasum":"ea7c7832e23778a9a6207997b3b82fd5934895d6","tarball":"https://registry.npmjs.org/redux-ducklings/-/redux-ducklings-1.0.18.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICaCO7d6KkGukfREFfgYk5jkzc4Y5PPqik9M62xTeyruAiEAhH4G+tCRkXqQ5LYvtO/GNqgwUYSVX321QrH7rvLXB8o="}]},"maintainers":[{"name":"sammysaglam","email":"sami@saglam.tk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-ducklings-1.0.18.tgz_1507753263552_0.14534927159547806"},"directories":{}},"1.0.19":{"name":"redux-ducklings","version":"1.0.19","main":"index.js","author":{"name":"Sammy Saglam"},"license":"MIT","scripts":{"build-watch":"webpack --progress --watch","build-dev":"webpack --progress","build":"webpack --progress && webpack -p"},"devDependencies":{"babel-core":"^6.26.0","babel-loader":"^7.1.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.0","eslint":"^4.7.0","eslint-plugin-react":"^7.3.0","eslint-sammy-preset":"^1.0.0","uglifyjs-webpack-plugin":"^0.4.6","webpack":"^3.6.0"},"gitHead":"97ade0f78a59f057c3e6a2e5be6ec8bf45797058","description":"Redux Ducklings: Unique Redux Bundles (based on Redux Ducks) ============================================================","_id":"redux-ducklings@1.0.19","_npmVersion":"5.4.2","_nodeVersion":"7.9.0","_npmUser":{"name":"sammysaglam","email":"sami@saglam.tk"},"dist":{"integrity":"sha512-Y8j4sc7ufP4s6vu3C7TaoruAMYGssFWPKjvJXLd1AIn2t6gFDiX2S099E9xgqffwqkRsjuiAZ7DHmWSOGxPl8w==","shasum":"9d54e8e806df3f141691910223653c6a42b68731","tarball":"https://registry.npmjs.org/redux-ducklings/-/redux-ducklings-1.0.19.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBQVI/t/ArIgz830t6xXqT4Y/L2iXNqZ3wOOkGSA7ANmAiEAu6ST9bc+DddDqYhMouweUcTdEoCHggP3hG2F9QtnG0E="}]},"maintainers":[{"name":"sammysaglam","email":"sami@saglam.tk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-ducklings-1.0.19.tgz_1507753649811_0.21212303917855024"},"directories":{}},"1.0.20":{"name":"redux-ducklings","version":"1.0.20","main":"index.js","author":{"name":"Sammy Saglam"},"license":"MIT","scripts":{"build-watch":"webpack --progress --watch","build-dev":"webpack --progress","build":"webpack --progress && webpack -p"},"devDependencies":{"babel-core":"^6.26.0","babel-loader":"^7.1.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.0","eslint":"^4.7.0","eslint-plugin-react":"^7.3.0","eslint-sammy-preset":"^1.0.0","uglifyjs-webpack-plugin":"^0.4.6","webpack":"^3.6.0"},"gitHead":"97ade0f78a59f057c3e6a2e5be6ec8bf45797058","description":"Redux Ducklings: Unique Redux Bundles (based on Redux Ducks) ============================================================","_id":"redux-ducklings@1.0.20","_npmVersion":"5.4.2","_nodeVersion":"7.9.0","_npmUser":{"name":"sammysaglam","email":"sami@saglam.tk"},"dist":{"integrity":"sha512-7y+mdu94PC/+q/MxtTOJU13fiQMhEyoCKrBn2j5qymNsOeUcnqAZLeckItD/jxcNYE14Q9Quip4qzBhX+WVYVw==","shasum":"a48a86a03f655bc89b694c5606896dd92c66e844","tarball":"https://registry.npmjs.org/redux-ducklings/-/redux-ducklings-1.0.20.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGiFC5A1znbb69vp4h1OdFDOQpvAMKSyg6BO/qfDTSC1AiEA0GDiyfW+1j+ziuU8pfaPaclUELtp2sLejANT5gFEqZE="}]},"maintainers":[{"name":"sammysaglam","email":"sami@saglam.tk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-ducklings-1.0.20.tgz_1507754006677_0.7886885108891875"},"directories":{}},"1.0.21":{"name":"redux-ducklings","version":"1.0.21","main":"index.js","author":{"name":"Sammy Saglam"},"license":"MIT","scripts":{"build-watch":"webpack --progress --watch","build-dev":"webpack --progress","build":"webpack --progress && webpack -p"},"devDependencies":{"babel-core":"^6.26.0","babel-loader":"^7.1.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.0","eslint":"^4.7.0","eslint-plugin-react":"^7.3.0","eslint-sammy-preset":"^1.0.0","uglifyjs-webpack-plugin":"^0.4.6","webpack":"^3.6.0"},"gitHead":"97ade0f78a59f057c3e6a2e5be6ec8bf45797058","description":"Redux Ducklings: Unique Redux Bundles (based on Redux Ducks) ============================================================","_id":"redux-ducklings@1.0.21","_npmVersion":"5.4.2","_nodeVersion":"7.9.0","_npmUser":{"name":"sammysaglam","email":"sami@saglam.tk"},"dist":{"integrity":"sha512-kSTZ7ahO0JBh1b6cknyFU6pylR2o7Oy9B+J2HX1Q1hlDalPuFWvbuX9772sUy6aXiNcf6NxCiMxM42uvuZErsA==","shasum":"3a3087a9a0aaae3c146065258e93a511d89e8995","tarball":"https://registry.npmjs.org/redux-ducklings/-/redux-ducklings-1.0.21.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF/VvxzqgtY2+X2G4VGlZ13KdBIzpQGx0ZN3pxD+VoMEAiAIUuQNwJBEPhSxBIbiWKVS8pdkts/X2CluSs/3Fa2Vrg=="}]},"maintainers":[{"name":"sammysaglam","email":"sami@saglam.tk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-ducklings-1.0.21.tgz_1507754221620_0.9162851013243198"},"directories":{}},"1.0.22":{"name":"redux-ducklings","version":"1.0.22","main":"index.js","author":{"name":"Sammy Saglam"},"license":"MIT","scripts":{"build-watch":"webpack --progress --watch","build-dev":"webpack --progress","build":"webpack --progress && webpack -p"},"devDependencies":{"babel-core":"^6.26.0","babel-loader":"^7.1.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.0","eslint":"^4.7.0","eslint-plugin-react":"^7.3.0","eslint-sammy-preset":"^1.0.0","uglifyjs-webpack-plugin":"^0.4.6","webpack":"^3.6.0"},"gitHead":"97ade0f78a59f057c3e6a2e5be6ec8bf45797058","description":"Redux Ducklings: Unique Redux Bundles (based on Redux Ducks) ============================================================","_id":"redux-ducklings@1.0.22","_npmVersion":"5.4.2","_nodeVersion":"7.9.0","_npmUser":{"name":"sammysaglam","email":"sami@saglam.tk"},"dist":{"integrity":"sha512-XUFXMVf8DnfjmMftl0LCeAQM374ZMsETEJnpJIgC+7MSJXvOC+60l6Y1/mcpE+ScMiAkgKUXXILFYuBoC1ZxfA==","shasum":"83b51bdc7432e2e50c87efc4d9892aa7811e5bf7","tarball":"https://registry.npmjs.org/redux-ducklings/-/redux-ducklings-1.0.22.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD+K3Y0qjxYM6nvJyFVV0HhRZ0fN52jCUhmf6Y60EM2XAIhAMJRxw7LA2a9x2qUeSS9HNVjidzApxPGvUEIDGE4noK4"}]},"maintainers":[{"name":"sammysaglam","email":"sami@saglam.tk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-ducklings-1.0.22.tgz_1507754290650_0.5173823430668563"},"directories":{}},"1.1.0":{"name":"redux-ducklings","version":"1.1.0","main":"index.js","author":{"name":"Sammy Saglam"},"license":"MIT","scripts":{"build-watch":"webpack --progress --watch","build-dev":"webpack --progress","build":"webpack --progress && webpack -p"},"devDependencies":{"babel-core":"^6.26.0","babel-loader":"^7.1.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.0","eslint":"^4.7.0","eslint-plugin-react":"^7.3.0","eslint-sammy-preset":"^1.0.0","uglifyjs-webpack-plugin":"^0.4.6","webpack":"^3.6.0"},"gitHead":"97ade0f78a59f057c3e6a2e5be6ec8bf45797058","description":"Redux Ducklings: Unique Redux Bundles (based on Redux Ducks) ============================================================","_id":"redux-ducklings@1.1.0","_npmVersion":"5.4.2","_nodeVersion":"7.9.0","_npmUser":{"name":"sammysaglam","email":"sami@saglam.tk"},"dist":{"integrity":"sha512-Pr/DxlQfAbus9+QJxsaTQnHaErU+ysPm79lL9sHfqSz74pAu2kX0g+14QACvnLE8eS0tArfD5WrzTscD+Zic4A==","shasum":"a734f74b428439f91006a08df410a3a435f742ec","tarball":"https://registry.npmjs.org/redux-ducklings/-/redux-ducklings-1.1.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDyt8gEGqfAyMQC6NVX/AigoQSr8BFaO1527WVdWllooAIgKbgBeElBbHPyGwI3cZNeHZL7mAWBFcEmrAz4Gg0HqT8="}]},"maintainers":[{"name":"sammysaglam","email":"sami@saglam.tk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-ducklings-1.1.0.tgz_1507754428851_0.16937650297768414"},"directories":{}},"1.1.1":{"name":"redux-ducklings","version":"1.1.1","main":"index.js","author":{"name":"Sammy Saglam"},"license":"MIT","scripts":{"build-watch":"webpack --progress --watch","build-dev":"webpack --progress","build":"webpack --progress && webpack -p"},"devDependencies":{"babel-core":"^6.26.0","babel-loader":"^7.1.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.0","eslint":"^4.7.0","eslint-plugin-react":"^7.3.0","eslint-sammy-preset":"^1.0.0","uglifyjs-webpack-plugin":"^0.4.6","webpack":"^3.6.0"},"gitHead":"7e32d03a8657c497b898baa27289a95a73058446","description":"[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/sammysaglam/redux-ducklings/blob/master/LICENSE) [![npm version](https://img.shields.io/npm/v/redux-ducklings.svg?style=flat)](https://www.npmjs.com/package/redux-du","_id":"redux-ducklings@1.1.1","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"sammysaglam","email":"sami@saglam.tk"},"dist":{"integrity":"sha512-M+XgDMAH8q4BLKj76AMsMAhEZTMCjV2hgOPczi6p82RtmuElie0cCU54oLmDsg36WVHPDL0+0wqMmC586bYK7A==","shasum":"b02a96cbfe0e2dd8312adae8c5df0dd6bd0cd235","tarball":"https://registry.npmjs.org/redux-ducklings/-/redux-ducklings-1.1.1.tgz","fileCount":13,"unpackedSize":27400,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIATTEgg93GauWC/TWSISyP8YaJ+OIlVxBWAb9HufeEX0AiBuzWbe1SQqk/WArMiQc9oAHTXwzDF2vhhOeRZLd+OXfQ=="}]},"maintainers":[{"name":"sammysaglam","email":"sami@saglam.tk"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-ducklings_1.1.1_1522578724300_0.48812755582827827"},"_hasShrinkwrap":false}},"readme":"# Redux Ducklings: Unique Redux Bundles (based on Redux Ducks)\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/sammysaglam/redux-ducklings/blob/master/LICENSE)\n[![npm version](https://img.shields.io/npm/v/redux-ducklings.svg?style=flat)](https://www.npmjs.com/package/redux-ducklings)\n![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)\n\nThis project is a spin-off based\non [Redux Ducks](https://github.com/erikras/ducks-modular-redux) by [erikras](https://github.com/erikras), and\nprovides a helper function (createReduxDuckling) to spawn Redux Ducks as unique\nchild instances called **Ducklings**.\n\n## createReduxDuckling(ACTIONS , createReduce , actionCreators)\n\n```\nconst reduxDucklingCreator = (() => {\n    return createReduxDuckling(\n    \n        // 1st parameter: your ACTIONS\n        // type: object -> in the form of {actionName:'action string' , ...}\n        // e.g. {INCREMENT:'counter/INCREMENT'}\n        ACTIONS ,\n        \n        // 2nd parameter: your createReducer function\n        // type: function -> which takes in parameter \"ACTIONS\"\n        // e.g. ACTIONS => yourCustomArgs => (state = {} , action = {}) => {return state}\n        createReducer ,\n        \n        // 3rd parameter: your actionCreators\n        // type: function -> which takes in parameter \"ACTIONS\"\n        // e.g. ACTIONS => yourCustomArgs => ({  increment:() => ({type:ACTIONS.INCREMENT})  })\n        actionCreators \n    );\n})();\n\nconst firstComponentReduxDuckling = reduxDucklingCreator('first');\nconst secondComponentReduxDuckling = reduxDucklingCreator('second');\nconst thirdComponentReduxDuckling = reduxDucklingCreator('third');\nconst fourthComponentReduxDuckling = reduxDucklingCreator('fourth');\nconst fifthComponentReduxDuckling = reduxDucklingCreator(); // leaving empty will create a random ID\n\nconst reducers = combineReducers({\n    firstComponent:firstComponentReduxDuckling.createReducer() ,\n    secondComponent:secondComponentReduxDuckling.createReducer() ,\n    thirdComponent:thirdComponentReduxDuckling.createReducer() ,\n    fourthComponent:fourthComponentReduxDuckling.createReducer() ,\n    fifthComponentReduxDuckling:fifthComponentReduxDuckling.createReducer()\n});\nconst store = createStore(reducers);\n\n// get actionCreators\nconst firstCounterActionCreators = firstCounterRedux.actionCreators('a-custom-argument');\nconst secondCounterActionCreators = secondCounterRedux.actionCreators();\n...\n\n// dispatch some actions\nstore.dispatch(firstComponentActionCreators.increment());\nstore.dispatch(secondCounterActionCreators.increment());\n...\n\n```\n\n### Usage Example\nSee [dist/example.html](https://github.com/sammysaglam/redux-ducklings/blob/master/dist/example.html) for\nan example of how to create ReduxDucklings. \n\n# Redux Ducks (the mother of Ducklings)\n\nThe proposal behind [Redux Ducks](https://github.com/erikras/ducks-modular-redux), is very\nsimple: to better modularize your Redux code by bundling all your Actions, Action Creators\nand Reducers into a single file per logical module. Though very elegant, by doing this, I\nfound that when I wanted to use my Redux bundle, I could only do so for a single instance\nof a React component, or add a lot of additional code to support multiple instances, which\nmakes assumptions that there will be multiple instances when imported into other projects: I\nbelieve this negatively affects from the *seperation of concerns* principle.\n\nTo the rescue Redux Ducklings! Redux Ducklings creates children\nof [Redux Ducks](https://github.com/erikras/ducks-modular-redux) by appending a unique ID\nto each Action, so you can safely use clean Redux Ducks and support multiple instances with\nlittle modification to your code.\n\n# Redux Ducklings Explained by Example\n\nBefore demonstrating Redux Ducklings, consider the example below:\n\nUsing [Redux Ducks](https://github.com/erikras/ducks-modular-redux) (without Ducklings) to\nhandle state for a single TableOfContents component, would look a bit like this:\n\n```\nimport {combineReducers , createStore} from 'redux';\nimport {Provider , connect} from 'react-redux';\nimport TableOfContents from './components/TableOfContents';\n\n// -----------------------------------------------------------------------\n// ----------------------------- REDUX DUCKS -----------------------------\n// -----------------------------------------------------------------------\n\n// actions\nconst CHANGE_SELECTED_ITEM = 'table-of-contents/ITEM_CLICK';\n\n// reducer\nconst createReducer = defaultItem => (state = {currentItem:defaultItem} , action = {}) => {\n\tswitch (action.type) {\n\t\tcase CHANGE_SELECTED_ITEM:\n\t\t\treturn {\n\t\t\t\t...state ,\n\t\t\t\tcurrentItem:action.newItem\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn state;\n\t}\n}\n\n// action Creators\nconst itemClick = newItem => ({\n\ttype:CHANGE_SELECTED_ITEM ,\n\tnewItem\n});\n\n// -----------------------------------------------------------------------\n// -----------------------------------------------------------------------\n// -----------------------------------------------------------------------\n\n\n\n// -----------------------------------------------------------------------\n// --------------------------------- App ---------------------------------\n// -----------------------------------------------------------------------\n\n// create store\nconst reducers = combineReducers({\n    tableOfContents:createReducer('dashboard')\n});\nconst store = createStore(\n    reducers\n);\n\n// react-redux connection\nconst mapStateToProps = (state , ownProps) => ({\n    currentItem:state.tableOfContents.currentItem\n});\nconst mapDispatchToProps = dispatch => ({\n    onItemClick:itemKey => {\n        dispatch(itemClick(itemKey));\n    }\n});\nconst TableOfContentsContainer = connect(\n    mapStateToProps ,\n    mapDispatchToProps\n)(TableOfContents);\n\n// render react component\nvar component = ReactDOM.render(\n    <Provider store={store}>\n        <TableOfContentsContainer />\n    </Provider> ,\n    document.getElementById('table-of-contents')\n);\n\n// -----------------------------------------------------------------------\n// -----------------------------------------------------------------------\n// -----------------------------------------------------------------------\n```\n\nThe above looks good. However, if I want to have multiple TableOfContents components, it\ngets a bit more difficult, as the two different TableOfContents components' redux bundles\nACTIONS will clash with eachother (as they will be identical). So, the reducer must be\nmodified to manage multiple TableOfContents instances using a `tableOfContentsId`, as follows:\n\n```\nimport {combineReducers , createStore} from 'redux';\nimport {Provider , connect} from 'react-redux';\nimport TableOfContents from './TableOfContents';\n\n// -----------------------------------------------------------------------\n// ----------------------------- REDUX DUCKS -----------------------------\n// -----------------------------------------------------------------------\n\n// actions\nconst CHANGE_SELECTED_ITEM = 'table-of-contents/ITEM_CLICK';\n\n// reducer\nconst createReducer = defaultItem => (state = {currentItem:defaultItem} , action = {}) => {\n\tswitch (action.type) {\n\t\tcase CHANGE_SELECTED_ITEM:\n\t\t\treturn {\n\t\t\t\t...state ,\n\t\t\t\t// below change from: currentItem:action.newItem\n\t\t\t\tcurrentItem:{\n\t\t\t\t    [action.tableOfContentsId]:action.newItem\n\t\t\t\t}\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn state;\n\t}\n}\n\n// action Creators\nconst itemClick = (tableOfContentsId,newItem) => ({\n\ttype:CHANGE_SELECTED_ITEM ,\n\ttableOfContentsId , // added\n\tnewItem\n});\n\n// -----------------------------------------------------------------------\n// -----------------------------------------------------------------------\n// -----------------------------------------------------------------------\n\n\n\n// -----------------------------------------------------------------------\n// --------------------------------- App ---------------------------------\n// -----------------------------------------------------------------------\n\n// create store\nconst reducers = combineReducers({\n    tableOfContents:createReducer('dashboard')\n});\nconst store = createStore(reducers);\n\n// 1st react-redux connection\nconst firstTableOfContentsId = '1st';\nconst mapStateToProps1 = (state , ownProps) => ({\n    currentItem:state.tableOfContents.currentItem[firstTableOfContentsId]\n});\nconst mapDispatchToProps1 = dispatch => ({\n    onItemClick:itemKey => {\n        dispatch(itemClick(firstTableOfContentsId,itemKey));\n    }\n});\nconst TableOfContentsContainer = connect(\n    mapStateToProps1 ,\n    mapDispatchToProps1\n)(TableOfContents);\n\n// 2nd react-redux connection\nconst secondTableOfContentsId = '2nd';\nconst mapStateToProps2 = (state , ownProps) => ({\n    currentItem:state.tableOfContents.currentItem[secondTableOfContentsId]\n});\nconst mapDispatchToProps1 = dispatch => ({\n    onItemClick:itemKey => {\n        dispatch(itemClick(secondTableOfContentsId,itemKey));\n    }\n});\nconst SecondTableOfContentsContainer = connect(\n    mapStateToProps2 ,\n    mapDispatchToProps2\n)(TableOfContents);\n\n// render react component\nvar component = ReactDOM.render(\n    <Provider store={store}>\n        <TableOfContentsContainer />\n        <SecondTableOfContentsContainer />\n    </Provider> ,\n    document.getElementById('table-of-contents')\n);\n\n// -----------------------------------------------------------------------\n// -----------------------------------------------------------------------\n// -----------------------------------------------------------------------\n```\n\nThe above is not very nice though, since it breaks the modularity by being built\nfor multiple instances of a component (as well requires code modification).\n\nInstead, see below code, which uses createReduxDuckling:\n\n```\nimport {combineReducers , createStore} from 'redux';\nimport {Provider , connect} from 'react-redux';\nimport TableOfContents from './components/TableOfContents';\n\nimport createReduxDuckling from 'redux-ducklings';\n\n// -----------------------------------------------------------------------\n// --------------------------- REDUX DUCKLINGS ---------------------------\n// -----------------------------------------------------------------------\n\nconst TableOfContentsDuckling = (() => {\n    \n    // actions\n    const ACTIONS = {\n        CHANGE_SELECTED_ITEM:'table-of-contents/ITEM_CLICK'\n    }\n    \n    // reducer\n    const createReducer = ACTIONS => defaultItem => (state = {currentItem:defaultItem} , action = {}) => {\n        switch (action.type) {\n            case CHANGE_SELECTED_ITEM:\n                return {\n                    ...state ,\n                    currentItem:action.newItem\n                };\n    \n            default:\n                return state;\n        }\n    }\n    \n    // action Creators\n    const actionCreators = ACTIONS => () => {\n        const itemClick = newItem => ({\n            type:CHANGE_SELECTED_ITEM ,\n            newItem\n        });\n        \n        return {\n            itemClick\n        }\n    }\n    \n    \n    // duckling\n    return createReduxDuckling(\n        ACTIONS ,\n        createReducer ,\n        actionCreators\n    );\n\n})();\n\n// -----------------------------------------------------------------------\n// -----------------------------------------------------------------------\n// -----------------------------------------------------------------------\n\n\n\n// -----------------------------------------------------------------------\n// --------------------------------- App ---------------------------------\n// -----------------------------------------------------------------------\n\n// instantiate multiple ducklings\nconst firstReduxDuckling = tableOfContentsReduxDuckling('1st');\nconst secondReduxDuckling = tableOfContentsReduxDuckling(); // no argument will generate a random ID\n\n// get actionCreators\nconst firstActionCreators = firstReduxDuckling.actionCreators();\nconst secondActionCreators = secondReduxDuckling.actionCreators();\n\n// create store\nconst reducers = combineReducers({\n    firstTableOfContents:firstReduxDuckling.createReducer() ,\n    secondTableOfContents:secondReduxDuckling.createReducer()\n});\nconst store = createStore(reducers);\n\n// first react-redux connection\nconst mapStateToProps1 = (state , ownProps) => ({\n    currentItem:state.firstTableOfContents.currentItem\n});\nconst mapDispatchToProps1 = dispatch => ({\n    onItemClick:itemKey => {\n        dispatch(firstActionCreators.itemClick(itemKey));\n    }\n});\nconst FirstTableOfContentsContainer = connect(\n    mapStateToProps1 ,\n    mapDispatchToProps1\n)(TableOfContents);\n\n// second react-redux connection\nconst mapStateToProps2 = (state , ownProps) => ({\n    currentItem:state.secondTableOfContents.currentItem\n});\nconst mapDispatchToProps2 = dispatch => ({\n    onItemClick:itemKey => {\n        dispatch(secondActionCreators.itemClick(itemKey));\n    }\n});\nconst SecondTableOfContentsContainer = connect(\n    mapStateToProps2 ,\n    mapDispatchToProps2\n)(TableOfContents);\n\n// render react component\nvar component = ReactDOM.render(\n    <Provider store={store}>\n        <FirstTableOfContentsContainer />\n        <SecondTableOfContentsContainer />\n    </Provider> ,\n    document.getElementById('table-of-contents')\n);\n\n// -----------------------------------------------------------------------\n// -----------------------------------------------------------------------\n// -----------------------------------------------------------------------\n```\n\nLicense\n-------\nMIT","maintainers":[{"name":"sammysaglam","email":"sami@saglam.tk"}],"time":{"modified":"2022-06-26T10:06:30.936Z","created":"2017-10-04T20:09:50.524Z","1.0.0":"2017-10-04T20:09:50.524Z","1.0.1":"2017-10-11T19:12:38.865Z","1.0.2":"2017-10-11T19:20:12.071Z","1.0.3":"2017-10-11T19:33:57.760Z","1.0.4":"2017-10-11T19:36:10.410Z","1.0.5":"2017-10-11T19:39:04.204Z","1.0.6":"2017-10-11T19:39:44.007Z","1.0.7":"2017-10-11T19:56:27.239Z","1.0.9":"2017-10-11T20:07:44.688Z","1.0.11":"2017-10-11T20:09:40.148Z","1.0.12":"2017-10-11T20:12:13.535Z","1.0.13":"2017-10-11T20:13:59.116Z","1.0.14":"2017-10-11T20:16:02.576Z","1.0.15":"2017-10-11T20:16:58.073Z","1.0.16":"2017-10-11T20:18:25.961Z","1.0.17":"2017-10-11T20:20:00.031Z","1.0.18":"2017-10-11T20:21:04.661Z","1.0.19":"2017-10-11T20:27:30.851Z","1.0.20":"2017-10-11T20:33:27.661Z","1.0.21":"2017-10-11T20:37:02.635Z","1.0.22":"2017-10-11T20:38:11.625Z","1.1.0":"2017-10-11T20:40:29.853Z","1.1.1":"2018-04-01T10:32:04.353Z"},"author":{"name":"Sammy Saglam"},"license":"MIT","readmeFilename":"README.md"}