{"_id":"nestjs-redis-cluster","_rev":"54-420cb2847419a809a0a28de78432c097","name":"nestjs-redis-cluster","dist-tags":{"experimental":"2.1.0-experimental","latest":"2.1.0"},"versions":{"1.2.8":{"name":"nestjs-redis-cluster","version":"1.2.8","keywords":["nestjs","nest","redis","nestjs-redis"],"author":{"url":"useparagon.com","name":"Ishmael Samuel"},"license":"MIT","_id":"nestjs-redis-cluster@1.2.8","maintainers":[{"name":"useparagon","email":"ishmael@useparagon.com"}],"dist":{"shasum":"9a3c0f28e222ed35c8f23ac99565b31e0e569db3","tarball":"https://registry.npmjs.org/nestjs-redis-cluster/-/nestjs-redis-cluster-1.2.8.tgz","fileCount":35,"integrity":"sha512-UWMTBPbyPoPcJczq/h5Rq/ls7sgJqCNYcnzblxAO1RTgfBjkLIrur0kn1v+rqEJ2aFVs0HE/HkhB/Hm73b8+0A==","signatures":[{"sig":"MEYCIQCCrwoTqmP+deewKgLtDh/t47WZgnpQGhP2Zy142TPZDgIhANxVWmNT5rusRNcz+CL86hzIyT6CE22W1zi9rMxtO4wo","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":40040,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/XNeCRA9TVsSAnZWagAA1HYQAIvQbI+tXbbiejVBS4Ll\neY9FAZQvyWQ2f+7u4Ad+dpyj3E7rwZ8UnS5cvsN5SQI0Sl6s9KHVU0JremRm\n/f0y5aFSuFtY2/qV9m7oFcp682V4wHO1Ba0Cuag8KQkpbxW5kAag8dePYgZB\nCwLojBg+zc7tBe2OcM2oBhRKC1cUmdlw/+MxMRpBIb5dUxHFaV3o0E12JgFl\nJaFTxz9/ARnEb/lB1FaOtir8kQryU7FQmHcl9fQjBV/uM0ZDkfSKvQLBzGDm\nkofEWY2nB0eUDETCHXe2UjCtOdWW+3BUT3HlXCT6kB9FA2o2RC7HBJyd+BvN\n6zMNB3r+Kd2Vx1FHL1kGP6iBEiyhMWnqUysdVlo6x2iewQo0TokRTjmbmyMu\nJE4k5F2dnCh35IURd/2pXvxxQhYnv/H0fVa6RlJPskioeA+cd0hdwgn95fZj\nS9DUpZcMODgH7nbJe12gQof+HlDE7HSYFi7TWGG9DQw2WSx0SvTYuMx7yWCS\nvaZz5tHjCwMfTNtIow1y+GYc86Wy63zo1c1UkVrVF4cudoF30DX69xFIRMvU\nloopouO4toOJn53N4Vhv+k/rIvT5TCWcn0mvE4hkmAxNokSuxWzJy+FgYKzx\ni8U2DyeHjHXeQXyAG8dJHf2TbLUZgfY+wGKPBf7VVRcCh76ioPZMD5EfRF7A\n+4eD\r\n=jwXQ\r\n-----END PGP SIGNATURE-----\r\n"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"scripts":{"lint":"tslint -p tsconfig.json -c tslint.json","test":"jest","build":"rimraf dist && tsc -p tsconfig.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","precommit":"lint-staged","test:watch":"jest --watch","publish:npm":"yarn publish --access public","prepublish:npm":"yarn run build"},"_npmUser":{"name":"useparagon","email":"ishmael@useparagon.com"},"repository":{"url":"https://github.com/useparagon.com/nestjs-redis-cluster","type":"git"},"description":"A nestjs redis module w/ cluster support","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2018 KnowYourself\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","dependencies":{"rxjs":"^6.2.2","uuid":"^3.3.2","ioredis":"^4.2.0","@types/uuid":"^3.4.4","@nestjs/core":"^6.6.7","@nestjs/common":"6.3.1","@types/ioredis":"^4.0.4","reflect-metadata":"^0.1.12"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^23.6.0","rimraf":"^2.6.3","tslint":"^5.20.1","ts-jest":"^23.10.5","prettier":"^1.19.1","typescript":"^3.6.4","@types/node":"^10.7.1","@nestjs/testing":"6.3.1","tslint-config-prettier":"^1.18.0","tslint-plugin-prettier":"^2.0.1","cz-conventional-changelog":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-redis-cluster_1.2.8_1593668446531_0.6934214767283098","host":"s3://npm-registry-packages"}},"1.2.9":{"name":"nestjs-redis-cluster","version":"1.2.9","keywords":["nestjs","nest","redis","nestjs-redis"],"author":{"url":"useparagon.com","name":"Ishmael Samuel"},"license":"MIT","_id":"nestjs-redis-cluster@1.2.9","maintainers":[{"name":"useparagon","email":"ishmael@useparagon.com"}],"dist":{"shasum":"0cc6bb84fd955b7f5681417255bdcdc7d67f33db","tarball":"https://registry.npmjs.org/nestjs-redis-cluster/-/nestjs-redis-cluster-1.2.9.tgz","fileCount":35,"integrity":"sha512-uSPcDKn3APPh7m6gfQxEG+HQSOwGWckDuVAY1AqKMYsD5ArxPkemDsJmbwVaX0p/BusJ1A0AgOJbv91KNxGiTw==","signatures":[{"sig":"MEUCIQC7lkQ/dxEGj+BFin7i6YWjWiiVd3VrhTlfqqxt04V7+QIgH0c79DNYgN9pUn1u2vvrxnfBeSSGFrOVGz6teUNpmq0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":40030,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/X03CRA9TVsSAnZWagAAJ70P/217+HeF4ctM/qjsH2Gv\n4WkxSFyTXIaF/zALK59jF8Mcviuh/0u9tuDh7+AkA/RlX06byV+7XDeWZjnH\nNZpzP/VdgtGD21yHTQ9LK980u3dxyXNYjstT2Pd4EHcJkK6JVaSx9by5lDas\nIgQA6bJ0umm7nkkwAyR8OP1EXLQJJpesFaS1EG/QjGD5rcpgLV3QRLaH1pM8\n3PPjeImlxUC0LJKTJyxvywQp+tAmKEPvts7uHAvaWBt67FoAONMVOtJDCHsY\nIj7lCVFRjQSOIBJ7sfqLnXas7MgbKAEXPXjtN8P5yioCOBxGSAVmPZ11MloJ\n/BFJPC3bEgqW1JT3cnZ7iv6Dvlgo1qj38XcsslqzIAOUK/2PBWEF0DN5btkX\nIpC7ArF0xSbTbFHh8Fb97da+4Tsm/W1hd6zk5FeJkBJlTTDPguAoCpakCrdQ\njkTuXTzAw94Yuq7RhOFacITu1fP/Zy1oyMkde3ECaoILKkCPtwW7R00nalp+\nzlPwByeTew2uYbBCmet+NMrc5cdBIEylh9xdLsg8gvgtjOCjGP61Mkw8oJpq\nTZJcxK/ZGwZd5oQsN67uBJaQgqLojNvRMMwKUZvQUBFtQ61gMeiYJdoizPUj\nhP1D9derCqEPvlstxS1MgTMMV1MHoXaLzyanQVeZJhuBNjXDuvpjzORNFbXA\n19HB\r\n=+1XA\r\n-----END PGP SIGNATURE-----\r\n"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"scripts":{"lint":"tslint -p tsconfig.json -c tslint.json","test":"jest","build":"rimraf dist && tsc -p tsconfig.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","precommit":"lint-staged","test:watch":"jest --watch","publish:npm":"yarn publish --access public","prepublish:npm":"yarn run build"},"_npmUser":{"name":"useparagon","email":"ishmael@useparagon.com"},"repository":{"url":"https://github.com/useparagon.com/nestjs-redis-cluster","type":"git"},"description":"A nestjs redis module w/ cluster support","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2018 KnowYourself\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","dependencies":{"rxjs":"^6.2.2","uuid":"^3.3.2","ioredis":"^4.2.0","@types/uuid":"^3.4.4","@nestjs/core":"^6.6.7","@nestjs/common":"6.3.1","@types/ioredis":"^4.0.4","reflect-metadata":"^0.1.12"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^23.6.0","rimraf":"^2.6.3","tslint":"^5.20.1","ts-jest":"^23.10.5","prettier":"^1.19.1","typescript":"^3.6.4","@types/node":"^10.7.1","@nestjs/testing":"6.3.1","tslint-config-prettier":"^1.18.0","tslint-plugin-prettier":"^2.0.1","cz-conventional-changelog":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-redis-cluster_1.2.9_1593670966981_0.13219709699700077","host":"s3://npm-registry-packages"}},"1.2.10":{"name":"nestjs-redis-cluster","version":"1.2.10","keywords":["nestjs","nest","redis","nestjs-redis"],"author":{"url":"useparagon.com","name":"Ishmael Samuel"},"license":"MIT","_id":"nestjs-redis-cluster@1.2.10","maintainers":[{"name":"useparagon","email":"ishmael@useparagon.com"}],"dist":{"shasum":"a52034e7905953d4e59d5e0c4258198980293ce4","tarball":"https://registry.npmjs.org/nestjs-redis-cluster/-/nestjs-redis-cluster-1.2.10.tgz","fileCount":35,"integrity":"sha512-042N7AtNo5wkxnIYIgxF80qsy4eEYnjihAkCM7eYPID80LPUjsqzKw7nyUMe+Tp/1kukFnVmaTmvXJVQul8YhA==","signatures":[{"sig":"MEUCIEXshswJyPQe6SGUXPQV/7vEn+wPRbXgCLU6z1fTANGaAiEAp5f8Y6FqJSFHH9A2m0SRoQzVjX3b3K3fG8aBCDwbz9I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":40389,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/YUSCRA9TVsSAnZWagAAlXwP/jx4Gddcbm+WGayr8NRV\nS4pU3/oIPrf2NpwqjX3lrZ0hGl3b8vA5Nkqcra/CfqDLmrDdYYgH/WLX5IrZ\nVSSRPI4TAgB/8fIm60Q6IBvrpn1DTYBGiMf2cLg/VpVjeFMKi02N+nHkQaTy\n8NTaWAmL6ahMyP3JXc6TSYkS0D6CrJo4wi9l7Yq+FrKknmmHUi+m4CPbcIsk\nqURedq2mi8UYMq9AIsPgLXm0f2CKcmoYaa2qi+ohl0AH6aliey4qxhArQ9aQ\ncUfeLslzIEX6HUY1YHzQlltcWszgvMDVC7o6RpdhhKTh111/NqWFcK6UhHBO\nzCgYbMbvzSh+o6bdWu6MI4EK/OontyJPmWQfsf1vcatTt0opTbXkJ7AWoMMw\nV5vWU3K605BoHWJ4R8lguAVoAnwqRV5jGZTOuz2P6ABS5ee5hfYt7xyE4SxR\nTax8M8RZgJM+iIU/MdynWx2/QAZOjRgUJGeJbsRoj0/pVeGgoJysOZ5lGs0K\nC+rF6i98OD0mjc7GY71+HuN/LEu3ExdbG60jRfFsRPfE/n3pllwzm5wjrXSP\nGAOKn9P5Qc5wZbmMVpqTEC1KLmoKqmViyUUEYLyLSziREqxwxwTk3Qw45dJ0\nYKdSTR/ZKPeA/feUPMDKPJ5iaoJnDAP+92AmIcu9gd6IA70BSoLNMaqmcvYV\neyGQ\r\n=lNlt\r\n-----END PGP SIGNATURE-----\r\n"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"scripts":{"lint":"tslint -p tsconfig.json -c tslint.json","test":"jest","build":"rimraf dist && tsc -p tsconfig.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","precommit":"lint-staged","test:watch":"jest --watch","publish:npm":"yarn publish --access public","prepublish:npm":"yarn run build"},"_npmUser":{"name":"useparagon","email":"ishmael@useparagon.com"},"repository":{"url":"https://github.com/useparagon.com/nestjs-redis-cluster","type":"git"},"description":"A nestjs redis module w/ cluster support","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2018 KnowYourself\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","dependencies":{"rxjs":"^6.2.2","uuid":"^3.3.2","ioredis":"^4.2.0","@types/uuid":"^3.4.4","@nestjs/core":"^6.6.7","@nestjs/common":"6.3.1","@types/ioredis":"^4.0.4","reflect-metadata":"^0.1.12"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^23.6.0","rimraf":"^2.6.3","tslint":"^5.20.1","ts-jest":"^23.10.5","prettier":"^1.19.1","typescript":"^3.6.4","@types/node":"^10.7.1","@nestjs/testing":"6.3.1","tslint-config-prettier":"^1.18.0","tslint-plugin-prettier":"^2.0.1","cz-conventional-changelog":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-redis-cluster_1.2.10_1593672978450_0.3286066027583061","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"nestjs-redis-cluster","version":"2.0.1","keywords":["nestjs","nest","redis","nestjs-redis"],"author":{"url":"useparagon.com","name":"Ishmael Samuel"},"license":"MIT","_id":"nestjs-redis-cluster@2.0.1","maintainers":[{"name":"useparagon","email":"ishmael@useparagon.com"}],"homepage":"https://github.com/useparagon/nestjs-redis-cluster#readme","bugs":{"url":"https://github.com/useparagon/nestjs-redis-cluster/issues"},"dist":{"shasum":"ee4d5c581253142abdd5bbe4a9be0bd6e257edee","tarball":"https://registry.npmjs.org/nestjs-redis-cluster/-/nestjs-redis-cluster-2.0.1.tgz","fileCount":34,"integrity":"sha512-lKqzKKzrFwW9sGRz2udKHyFTDDESXZOhBi8feHgJm9KXt6LvfkR4lelHSp/t+Ue2Ql8VyQNrQ/5klhXXlvOW2g==","signatures":[{"sig":"MEUCIQDn6rK2wPq7Heeil4elYW2g1Yn46Xp+brx7u/Z82Qa2xAIgeTsvHyqIdL4cUqKgR+6aL2liiKIdKnCnnBGk+yC/uMw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":177543,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh20WkCRA9TVsSAnZWagAAId0P/jex8v1pwL4FyarVLdx3\nD+sj1oyxXYCuP8XJb88rfJ7PtK9iofNm8r4t8E8MhQMfrcp3d2Q8hpsN5vMq\naVp66T2VZEZ3gB2uPBGJSB287E3qmQYsmuvZkacKcMlJhVulD98N9Mn7hm/M\nQ6fQumlNttDn5j/9w+tEvs8PgKONDvL5kZA9xSRECXO6yPMgALHAzxJFFJ5Q\nWMxam3oWNm94Ei9SAWdhNmnpCiemoQcn3TeNPMC5DoIw8HJg9/tJ50uJwtI2\nYfNiS4unawK7toEpNMoyZvDHMbZPfYiIC2o4+c1LnAx0RKwsRFTvSn47iVaB\nyw0hmRhnNPRmpf1BqkaY66FrFPNtJmA3gjxOtcXIL5Q7v7J4LK+6Yu2LlOQ2\naJwxFcvw6YGeUUFceOOiY9S7vsD9fIy7kp3koAVNx1BYdlJWwpOHAVS/VNPw\nXU1pcDwkE4r/Qciu7blnZwV0myujHzuIHh1BtDK0793XsVYqhDEmB28WvY85\ng7/WG+mPC5+k0m2MFxKKkqmrnADBgJQj2Nir4ecA6ozrxn7hIierkbD9Y469\n1qGz5kJmf30rVkECVab6d4Zsjou4nooOjqu7cZLACGsbqhTD+dCY7xyXOeeG\nKFEbiMqk2qz3H4l9zkPIGDyrgIlG5pwV9KVkGjfh57/bkvvrFFTjdDeKAWAX\nWWfx\r\n=S0PP\r\n-----END PGP SIGNATURE-----\r\n"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"bfc270342cc72a389d2e26f9db0c2566d5d06822","scripts":{"lint":"tslint -p tsconfig.json -c tslint.json","test":"jest","build":"rimraf dist && tsc -p tsconfig.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","precommit":"lint-staged","test:watch":"jest --watch","publish:npm":"yarn publish --access public","prepublish:npm":"yarn run build"},"_npmUser":{"name":"useparagon","email":"ishmael@useparagon.com"},"repository":{"url":"git+https://github.com/useparagon/nestjs-redis-cluster.git","type":"git"},"_npmVersion":"6.14.15","description":"A nestjs redis module w/ cluster support","directories":{},"_nodeVersion":"14.17.6","dependencies":{"rxjs":"^7.3.0","uuid":"^3.3.2","ioredis":"^4.2.0","@types/uuid":"^3.4.4","@nestjs/core":"^8.0.7","@nestjs/common":"^8.0.7","@types/ioredis":"^4.0.4","reflect-metadata":"0.1.13"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^23.6.0","rimraf":"^2.6.3","tslint":"^5.20.1","ts-jest":"^23.10.5","prettier":"^1.19.1","typescript":"^3.6.4","@types/node":"^10.7.1","@nestjs/testing":"^8.0.7","tslint-config-prettier":"^1.18.0","tslint-plugin-prettier":"^2.0.1","cz-conventional-changelog":"^2.1.0"},"peerDependencies":{"rxjs":"^7.0.0","uuid":"^3.0.0","ioredis":"^4.0.0","@nestjs/core":"^8.0.0","@nestjs/common":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-redis-cluster_2.0.1_1633070137414_0.06209691122791128","host":"s3://npm-registry-packages"}},"2.0.2":{"name":"nestjs-redis-cluster","version":"2.0.2","keywords":["nestjs","nest","redis","nestjs-redis"],"author":{"url":"useparagon.com","name":"Ishmael Samuel"},"license":"MIT","_id":"nestjs-redis-cluster@2.0.2","maintainers":[{"name":"useparagon","email":"ishmael@useparagon.com"}],"dist":{"shasum":"21f29c691ef2cfc5e880fde00241b63997ced56f","tarball":"https://registry.npmjs.org/nestjs-redis-cluster/-/nestjs-redis-cluster-2.0.2.tgz","fileCount":35,"integrity":"sha512-Vsqv9q5t9v+Zau/V3PB1rJzx5qChFsCIt9ro8kL2nYNxAmP23Z9sph4e71DY3HGJG+AUgoWBfHcb4Gt4g1P8ow==","signatures":[{"sig":"MEUCICh4THU5f9U4lim+1Vqfk+NXT+Lc9hVW46EE4o0LCLKTAiEAilrST9QBCVV77iYi9BWXxZ4EF1DoTBrkdICSzZBJtF4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":40460,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjYCzpACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrdBg//TDmIkIJaZR9JInRqtnNquqRM+XLEiZw5SXEgoOz8vk3+6YOH\r\nCke762iwnuqu6mCzX5rrvsXwgZQ4zC0NvAzEusVyz9LB+aeJ7HYqxxdyQAMc\r\n4ZYDRNej73RsxpFBI4DFpS53nErazUU+ysMLi/kq21JmwaqJCtUQuIRrEc0c\r\nAd+W9VNtdPaVuRqBTMg9IMkgRvdPBsQBRLg683vB9dJBrCkoTkNbIuzEryhq\r\nErUcGMU+FJDXReLvZR8vB4F97yVCQwPS6karxc1k7GFXSxtKettPhj36O9cV\r\nGdyxoknO1j5xDmrf/O4qTPNLQy914wGnMqq/YpBW3dgM4gg3dKeIm62b9yWz\r\ni4FYIADwisHzfsePC8JiiDjyDWTNPwMnc6+0hqSkDrRrjtUZF+/5mFfO0Hax\r\nEJBBPgP+1X9+c48nR8NyIkxcizDZ6vGK65OTSJlTQ0hiSlzcvQl/FTezO/YZ\r\nonuY9EQh0BbfrjusSqJo1065M89bKReRABMlQZRI/F84xa6rSEDkjaMq+1fB\r\nhm6HpGB+dYeBd0wsLk0jycE4ffTibTKOxaubrpBs1soelbYcJyy7s5jgPD9P\r\nTlD3CVRIXpPUi/joM+ph7f+C6YRhoxwxGF+A/HDMd3w1IpcsyMSy33VywQIO\r\nJjZXnjxEKqa7AMyzTbB8Dqz+Bhcqymqm4cQ=\r\n=eRvj\r\n-----END PGP SIGNATURE-----\r\n"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"scripts":{"lint":"tslint -p tsconfig.json -c tslint.json","test":"jest","build":"rimraf dist && tsc -p tsconfig.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","precommit":"lint-staged","test:watch":"jest --watch","publish:npm":"yarn publish --access public","prepublish:npm":"yarn run build"},"_npmUser":{"name":"useparagon","email":"ishmael@useparagon.com"},"repository":{"url":"https://github.com/useparagon/nestjs-redis-cluster","type":"git"},"description":"A nestjs redis module w/ cluster support","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2018 KnowYourself\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","dependencies":{"rxjs":"^7.3.0","uuid":"^3.3.2","ioredis":"^4.28.5","@types/uuid":"^3.4.4","@nestjs/core":"^8.0.7","@nestjs/common":"^8.0.7","reflect-metadata":"0.1.13"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^23.6.0","rimraf":"^2.6.3","tslint":"^5.20.1","ts-jest":"^23.10.5","prettier":"^1.19.1","typescript":"^3.6.4","@types/node":"^10.7.1","@nestjs/testing":"^8.0.7","tslint-config-prettier":"^1.18.0","tslint-plugin-prettier":"^2.0.1","cz-conventional-changelog":"^2.1.0"},"peerDependencies":{"rxjs":"^7.0.0","uuid":"^3.0.0","ioredis":"4.x","@nestjs/core":"^8.0.0","@nestjs/common":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-redis-cluster_2.0.2_1667247336893_0.21093284951091174","host":"s3://npm-registry-packages"}},"2.0.3":{"name":"nestjs-redis-cluster","version":"2.0.3","keywords":["nestjs","nest","redis","nestjs-redis"],"author":{"url":"useparagon.com","name":"Ishmael Samuel"},"license":"MIT","_id":"nestjs-redis-cluster@2.0.3","maintainers":[{"name":"useparagon","email":"ishmael@useparagon.com"}],"dist":{"shasum":"1c063bd8be5d4bd84938fbd737b932ac847543d7","tarball":"https://registry.npmjs.org/nestjs-redis-cluster/-/nestjs-redis-cluster-2.0.3.tgz","fileCount":35,"integrity":"sha512-44U5h2Msg+lKcQbdTpKCsNZDRQV13ha2nxnyueBRycuAWhptM5i/oA+qum4rYpvP6e69s0S9ldqwPLr2pEHWZw==","signatures":[{"sig":"MEUCIQCfDGPFQQ1P/ozmC12YpfWxAQQC7XIeBucsSCY+hr6AuAIgYPgNOIichUq8HOHgsuM9BnZbeAUPnRCMTwYK+4pANMo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":40434,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjYVsmACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqOWw//UwR8aclcDs4E0/HmGHJghWZk7URkHGu3PRzv3S1b1Oivp+8a\r\naFj9tFTD7NfSeab4sEFCHErAjXGlQc2oodY90EWcf5pU9HffGjmQWLdjn0M8\r\n55auPSVftuEhPs1+ainX11RfLBIGFFMdgmJwMVCMLWqUxUPzTH3GdVP4P7SS\r\noVDW+rhKSeIlxIrlF7w/InESef2xTgQa4g9seOnq0wx3aaH+l/D1eCwgGCJd\r\nctpJ2xwTQSDaQgUiXPPbcaYmrQjhhFBRGo69C77R8qCYUca5+7J9UAjfwHbH\r\nUsTRJIqjVeVpvatTtsPABpfOI7JDQEuw6AwWK4mvz6aJD+/dQJ50tcSv9XlO\r\nBQKIFA/NWjwgGfnpkB5/XvdsEnnfGba+PluT29h9jSd+1HO6yRofRlkatRU3\r\n8Tqv0LwmRLjoCClx4rQNo0PTrOkUrey0jiDsEb9Fqy2m6ABKZbbjSeMOkq88\r\nlFfS1nl4epcEuT0Ded/FI8KBeXmPPYLMUoD0dBmfmQ0XIdpeDUaBMaBhAkZD\r\nCLyzOXID9EGhE8CaXJe1JU+C6ekOcMEBzW2ueWvbZ7UbqHCX6R5TovDfvkcp\r\nZNtwT8RgTPZLjhI3VY1CiNbWrBpPHWMoEaQkH1e98S30rRBLI+Qn8wjQwcaY\r\np7fsN5w6pfkzWvnBNeW+++ZqG2Mbvxy8SFk=\r\n=3fqN\r\n-----END PGP SIGNATURE-----\r\n"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"scripts":{"lint":"tslint -p tsconfig.json -c tslint.json","test":"jest","build":"rimraf dist && tsc -p tsconfig.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","precommit":"lint-staged","test:watch":"jest --watch","publish:npm":"yarn publish --access public","prepublish:npm":"yarn run build"},"_npmUser":{"name":"useparagon","email":"ishmael@useparagon.com"},"repository":{"url":"https://github.com/useparagon/nestjs-redis-cluster","type":"git"},"description":"A nestjs redis module w/ cluster support","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2018 KnowYourself\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","dependencies":{"rxjs":"^7.3.0","uuid":"^3.3.2","@types/uuid":"^3.4.4","@nestjs/core":"^8.0.7","@nestjs/common":"^8.0.7","reflect-metadata":"0.1.13"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^23.6.0","rimraf":"^2.6.3","tslint":"^5.20.1","ioredis":"^4.28.5","ts-jest":"^23.10.5","prettier":"^1.19.1","typescript":"^3.6.4","@types/node":"^10.7.1","@nestjs/testing":"^8.0.7","tslint-config-prettier":"^1.18.0","tslint-plugin-prettier":"^2.0.1","cz-conventional-changelog":"^2.1.0"},"peerDependencies":{"rxjs":"^7.0.0","uuid":"^3.0.0","ioredis":"4.x","@nestjs/core":"^8.0.0","@nestjs/common":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-redis-cluster_2.0.3_1667324710636_0.3219253805059836","host":"s3://npm-registry-packages"}},"2.0.4":{"name":"nestjs-redis-cluster","version":"2.0.4","keywords":["nestjs","nest","redis","nestjs-redis"],"author":{"url":"useparagon.com","name":"Ishmael Samuel"},"license":"MIT","_id":"nestjs-redis-cluster@2.0.4","maintainers":[{"name":"useparagon","email":"ishmael@useparagon.com"}],"dist":{"shasum":"3dcb05c807e956312f68fc9b1ed8e5e8454c983f","tarball":"https://registry.npmjs.org/nestjs-redis-cluster/-/nestjs-redis-cluster-2.0.4.tgz","fileCount":35,"integrity":"sha512-oP/O6Fw/sHHauvUIoabfVV/aFQ27lh9Qu0lBrGg1Rp/tYYlHDiryCbdhvNbQQqcwE8+cjc1OCYtIEwwDXoTWwQ==","signatures":[{"sig":"MEQCIGTB08XEqQGyTJ25e7iR/mVNaGEKEAfwKa8k7puORinnAiA3MPRnIN9yfkvODAYllbMfurd4hCDyyuI7dBBnr9xTHA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":40558,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjYV+GACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq4phAAhgz8ED827lHgLTUw1KpMA9yDOVYNjAPaa3fEvy9p1eAGPgzH\r\nOZS1dJURy0B6KDqI7D+rWN9SdJftBVzdgX4MGy7KnvnqFckdQMfElsZ1MhZk\r\npsQIir+e6izO4y+fX1GQyPsrEy801/01ld2NrjtfImY6slh8hmX2XStnhdmx\r\nzgTc630IKjZfx+Qg9Ke0rpMYkZPFXcMxu+PNw6h6UdUo5Lc6ZSGELICiKs7T\r\ncqyy72kHCHb4ltJaG/wuK4/NtlWrdCAM8JBWDJloFiyWaR5U/W3QaqV6ajrY\r\nODB2Qpg6KDVvi4SK9dg5igRvTx9mSvdDJGxbMJspappe8y8NloiQCAF56p4v\r\nD1lSTjU3Xe1wIH7lz78iG3L3bvmqYnmhDFnUBlLoYDk12DGXvkJ8Gqi+9pTK\r\nNNI7mZEEjs3MJkezsmPfozn+Le+6uwXir6aeR0iAy9OcKtWzavhubUIIcHnS\r\nQSBd4cVqCV7RI/47ilp1HUwX9PUDagkjY9hNZbUJcP3NkIKGmSmj8X9XOSno\r\nBCwTs+kk8v6t+P/FkhNdM2wfec7FFILJ15FO1dlbX4QkVikNhwovOL1cTb18\r\ns3qIzvEkO3lDzY7gHu3s2rvhUEO5+iXCSRllZYHFzbXDl56MhsLtx88qDuuO\r\ndRqimisrdNrOAQ9TvtgmJiReoS1M0urCyLg=\r\n=YJYz\r\n-----END PGP SIGNATURE-----\r\n"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"scripts":{"lint":"tslint -p tsconfig.json -c tslint.json","test":"jest","build":"rimraf dist && tsc -p tsconfig.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","precommit":"lint-staged","test:watch":"jest --watch","publish:npm":"yarn publish --access public","prepublish:npm":"yarn run build"},"_npmUser":{"name":"useparagon","email":"ishmael@useparagon.com"},"repository":{"url":"https://github.com/useparagon/nestjs-redis-cluster","type":"git"},"description":"A nestjs redis module w/ cluster support","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2018 KnowYourself\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","dependencies":{"rxjs":"^7.3.0","uuid":"^3.3.2","@types/uuid":"^3.4.4","@nestjs/core":"^8.0.7","@nestjs/common":"^8.0.7","reflect-metadata":"0.1.13"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^23.6.0","rimraf":"^2.6.3","tslint":"^5.20.1","ioredis":"^4.28.5","ts-jest":"^23.10.5","prettier":"^1.19.1","typescript":"^3.6.4","@types/node":"^10.7.1","@types/ioredis":"^4.28.5","@nestjs/testing":"^8.0.7","tslint-config-prettier":"^1.18.0","tslint-plugin-prettier":"^2.0.1","cz-conventional-changelog":"^2.1.0"},"peerDependencies":{"rxjs":"^7.0.0","uuid":"^3.0.0","ioredis":"4.x","@nestjs/core":"^8.0.0","@nestjs/common":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-redis-cluster_2.0.4_1667325829917_0.1406019995269039","host":"s3://npm-registry-packages"}},"2.0.5":{"name":"nestjs-redis-cluster","version":"2.0.5","keywords":["nestjs","nest","redis","nestjs-redis"],"author":{"url":"useparagon.com","name":"Ishmael Samuel"},"license":"MIT","_id":"nestjs-redis-cluster@2.0.5","maintainers":[{"name":"ethan-paragon","email":"ethan@useparagon.com"},{"name":"pawas-saxena","email":"pawas.saxena@gmail.com"},{"name":"ishmaelparagon","email":"ishmael@useparagon.com"}],"dist":{"shasum":"0c0d7671c9617e4f5480e6b56ff77b6039e95ec1","tarball":"https://registry.npmjs.org/nestjs-redis-cluster/-/nestjs-redis-cluster-2.0.5.tgz","fileCount":37,"integrity":"sha512-tKQXxgFF7Vpm/zR2cYM7eAZ9g7Nez5pH+t1pBjOTCK9/yEsGW7IaBjB/BVvps74h9URQXho08D49IVNz0w+TIA==","signatures":[{"sig":"MEUCIQDmstDgj7WdtHxwjCQA3BbSJWou9MRtG+IOSNqME+fJsAIgcdvKGubQRyV05DbtSfcZF6Un9ptUBmV26fDWj89ijTU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":41105},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"scripts":{"lint":"tslint -p tsconfig.json -c tslint.json","test":"jest","build":"rimraf dist && tsc -p tsconfig.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","precommit":"lint-staged","test:watch":"jest --watch","publish:npm":"yarn publish --access public","prepublish:npm":"yarn run build"},"_npmUser":{"name":"ishmaelparagon","email":"ishmael@useparagon.com"},"repository":{"url":"https://github.com/useparagon/nestjs-redis-cluster","type":"git"},"description":"A nestjs redis module w/ cluster support","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2018 KnowYourself\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","dependencies":{"rxjs":"^7.3.0","uuid":"^3.3.2","@types/uuid":"^3.4.4","@nestjs/core":"^8.0.7","@nestjs/common":"^8.0.7","reflect-metadata":"0.1.13"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^23.6.0","rimraf":"^2.6.3","tslint":"^5.20.1","ioredis":"^4.28.5","ts-jest":"^23.10.5","prettier":"^1.19.1","typescript":"^3.6.4","@types/node":"^10.7.1","@types/ioredis":"^4.28.5","@nestjs/testing":"^8.0.7","tslint-config-prettier":"^1.18.0","tslint-plugin-prettier":"^2.0.1","cz-conventional-changelog":"^2.1.0"},"peerDependencies":{"rxjs":"^7.0.0","uuid":"^3.0.0","ioredis":"4.x","@nestjs/core":"^8.0.0","@nestjs/common":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-redis-cluster_2.0.5_1692227082172_0.2973545549099246","host":"s3://npm-registry-packages"}},"2.0.6":{"name":"nestjs-redis-cluster","version":"2.0.6","keywords":["nestjs","nest","redis","nestjs-redis"],"author":{"url":"useparagon.com","name":"Ishmael Samuel"},"license":"MIT","_id":"nestjs-redis-cluster@2.0.6","maintainers":[{"name":"ethan-paragon","email":"ethan@useparagon.com"},{"name":"pawas-saxena","email":"pawas.saxena@gmail.com"},{"name":"ishmaelparagon","email":"ishmael@useparagon.com"}],"homepage":"https://github.com/useparagon/nestjs-redis-cluster#readme","bugs":{"url":"https://github.com/useparagon/nestjs-redis-cluster/issues"},"dist":{"shasum":"91c407f4a13e0bee4bfa18d9f6b315b0ef16cca5","tarball":"https://registry.npmjs.org/nestjs-redis-cluster/-/nestjs-redis-cluster-2.0.6.tgz","fileCount":35,"integrity":"sha512-AtqEHL4V6tJwy8hjPHmLKRAdZ72G83ee+dEMAkpUp3cKDfTNDsG7wpvKNfJmgBXci2oqKCVuyxBiTxPSwZEx3Q==","signatures":[{"sig":"MEUCIFBlw+m2e5ZKmlO0Zu3Kqdif90LP/VB1+eliaKdyqLbpAiEAzXLuEeqWiBvqtuhbbbv9dL+6C1P9hqD8Nxly1yILglw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":178180},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"6e9c7ddb610cc25886e4bdabe8137504a0daf5c4","scripts":{"lint":"tslint -p tsconfig.json -c tslint.json","test":"jest","build":"rimraf dist && tsc -p tsconfig.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","precommit":"lint-staged","test:watch":"jest --watch","publish:npm":"yarn publish --access public","prepublish:npm":"yarn run build"},"_npmUser":{"name":"ishmaelparagon","email":"ishmael@useparagon.com"},"repository":{"url":"git+https://github.com/useparagon/nestjs-redis-cluster.git","type":"git"},"_npmVersion":"6.14.15","description":"A nestjs redis module w/ cluster support","directories":{},"_nodeVersion":"14.17.6","dependencies":{"rxjs":"^7.3.0","uuid":"^3.3.2","@types/uuid":"^3.4.4","reflect-metadata":"0.1.13"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^23.6.0","rimraf":"^2.6.3","tslint":"^5.20.1","ioredis":"^4.28.5","ts-jest":"^23.10.5","prettier":"^1.19.1","typescript":"^3.6.4","@types/node":"^10.7.1","@nestjs/core":"^8.0.7","@nestjs/common":"^8.0.7","@types/ioredis":"^4.28.5","@nestjs/testing":"^8.0.7","tslint-config-prettier":"^1.18.0","tslint-plugin-prettier":"^2.0.1","cz-conventional-changelog":"^2.1.0"},"peerDependencies":{"rxjs":"^7.0.0","uuid":"^3.0.0","ioredis":"4.x","@nestjs/core":"^8.0.0","@nestjs/common":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-redis-cluster_2.0.6_1698096200597_0.6778075266132064","host":"s3://npm-registry-packages"}},"2.0.7":{"name":"nestjs-redis-cluster","version":"2.0.7","keywords":["nestjs","nest","redis","nestjs-redis"],"author":{"url":"useparagon.com","name":"Ishmael Samuel"},"license":"MIT","_id":"nestjs-redis-cluster@2.0.7","maintainers":[{"name":"paragonbot","email":"services@useparagon.com"},{"name":"anakshiant-p","email":"anand@useparagon.com"},{"name":"ted-paragon","email":"ted.oconnor@useparagon.com"},{"name":"jromero-pgn","email":"javier.romero@useparagon.com"},{"name":"ethan-paragon","email":"ethan@useparagon.com"},{"name":"ishmaelparagon","email":"ishmael@useparagon.com"}],"dist":{"shasum":"4f1deee073b25aa1a31c2abc286b805e5f8a387c","tarball":"https://registry.npmjs.org/nestjs-redis-cluster/-/nestjs-redis-cluster-2.0.7.tgz","fileCount":37,"integrity":"sha512-wC2qVSEf2V+EyUoA8DgXOE4lTveCJCUynJrU3ZXQyWfLIfiEaN0y86V3BnM2MquccDH0RV1ReEzFozulU5QFmQ==","signatures":[{"sig":"MEUCIDlkNodyWrwPgv0Snip9PGvxdvPyAkep51l6Y6zDx6w8AiEAoiLrtTN3/It9PygvaJ2svqUuy5YaN9kLkRsDOOeE9oc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":41076},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"scripts":{"lint":"tslint -p tsconfig.json -c tslint.json","test":"jest","build":"rimraf dist && tsc -p tsconfig.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","precommit":"lint-staged","test:watch":"jest --watch","publish:npm":"yarn publish --access public","prepublish:npm":"yarn run build"},"_npmUser":{"name":"ishmaelparagon","email":"ishmael@useparagon.com"},"repository":{"url":"https://github.com/useparagon/nestjs-redis-cluster","type":"git"},"description":"A nestjs redis module w/ cluster support","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2018 KnowYourself\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","dependencies":{"rxjs":"^7.3.0","uuid":"^8.3.2","reflect-metadata":"0.1.13"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^23.6.0","rimraf":"^2.6.3","tslint":"^5.20.1","ioredis":"^4.28.5","ts-jest":"^23.10.5","prettier":"^1.19.1","typescript":"^3.6.4","@types/node":"^10.7.1","@nestjs/core":"^8.0.7","@nestjs/common":"^8.0.7","@types/ioredis":"^4.28.5","@nestjs/testing":"^8.0.7","tslint-config-prettier":"^1.18.0","tslint-plugin-prettier":"^2.0.1","cz-conventional-changelog":"^2.1.0"},"peerDependencies":{"rxjs":"^7.0.0","uuid":"^3.0.0","ioredis":"4.x","@nestjs/core":"^8.0.0","@nestjs/common":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-redis-cluster_2.0.7_1714670192956_0.5260206334466508","host":"s3://npm-registry-packages"}},"2.0.8":{"name":"nestjs-redis-cluster","version":"2.0.8","keywords":["nestjs","nest","redis","nestjs-redis"],"author":{"url":"useparagon.com","name":"Ishmael Samuel"},"license":"MIT","_id":"nestjs-redis-cluster@2.0.8","maintainers":[{"name":"paragonbot","email":"services@useparagon.com"},{"name":"anakshiant-p","email":"anand@useparagon.com"},{"name":"ted-paragon","email":"ted.oconnor@useparagon.com"},{"name":"jromero-pgn","email":"javier.romero@useparagon.com"},{"name":"ethan-paragon","email":"ethan@useparagon.com"},{"name":"ishmaelparagon","email":"ishmael@useparagon.com"}],"dist":{"shasum":"ac066cc6c05670b93d0bffd1ea53f035d407ba0c","tarball":"https://registry.npmjs.org/nestjs-redis-cluster/-/nestjs-redis-cluster-2.0.8.tgz","fileCount":37,"integrity":"sha512-7gbg5EuBMFWl7HT6G+t9lvnbYoxqluJ+pVuUiE0gltJNMLZ0oIzeyKzQgDV+tTNcj3fBKlIVulZCq9ipbn6f1g==","signatures":[{"sig":"MEUCIBU+cn8KxSXvhYQ1nBmS7oDyg5ZRmOV4UFUyEKiAfJvXAiEA7nKO2JEggeqhSeKmr4W355KLdrec+bR+gJ+eU7eQNBM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":41111},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"scripts":{"lint":"tslint -p tsconfig.json -c tslint.json","test":"jest","build":"rimraf dist && tsc -p tsconfig.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","precommit":"lint-staged","test:watch":"jest --watch","publish:npm":"yarn publish --access public","prepublish:npm":"yarn run build"},"_npmUser":{"name":"ishmaelparagon","email":"ishmael@useparagon.com"},"repository":{"url":"https://github.com/useparagon/nestjs-redis-cluster","type":"git"},"description":"A nestjs redis module w/ cluster support","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2018 KnowYourself\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","dependencies":{"rxjs":"^7.3.0","uuid":"^8.3.2","reflect-metadata":"0.1.13"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^23.6.0","rimraf":"^2.6.3","tslint":"^5.20.1","ioredis":"^4.28.5","ts-jest":"^23.10.5","prettier":"^1.19.1","typescript":"^3.6.4","@types/node":"^10.7.1","@types/uuid":"^8.3.2","@nestjs/core":"^8.0.7","@nestjs/common":"^8.0.7","@types/ioredis":"^4.28.5","@nestjs/testing":"^8.0.7","tslint-config-prettier":"^1.18.0","tslint-plugin-prettier":"^2.0.1","cz-conventional-changelog":"^2.1.0"},"peerDependencies":{"rxjs":"^7.0.0","uuid":"^8.3.2","ioredis":"4.x","@nestjs/core":"^8.0.0","@nestjs/common":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-redis-cluster_2.0.8_1715033100244_0.15363382453389418","host":"s3://npm-registry-packages"}},"2.1.1-experimental":{"name":"nestjs-redis-cluster","version":"2.1.1-experimental","keywords":["nestjs","nest","redis","nestjs-redis"],"author":{"url":"useparagon.com","name":"Ishmael Samuel"},"license":"MIT","_id":"nestjs-redis-cluster@2.1.1-experimental","homepage":"https://github.com/useparagon/nestjs-redis-cluster#readme","bugs":{"url":"https://github.com/useparagon/nestjs-redis-cluster/issues"},"dist":{"shasum":"3780b3e1e9854ab4bbda89b13b2359cb4391f3fe","tarball":"https://registry.npmjs.org/nestjs-redis-cluster/-/nestjs-redis-cluster-2.1.1-experimental.tgz","fileCount":34,"integrity":"sha512-+TGJYvpOblOl457ac0h70Isu2uMHT2ISi90pesnZkIoAvsbUxY3tI15a+0QbskOD96yJRwgx4ujZxNp1a997KA==","signatures":[{"sig":"MEUCIQCoz/NqeRjftSmU5joiKUMv57+krZiAMCJ3tLqJYgqWDgIgZo98PSjY0IBQYzENkiuipJa1LGmLhAAyfBUT9ixt+NQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":41124},"types":"./index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"aae86186b80d7ba1c2cf9a6f6d96dffc4f569ddc","scripts":{"lint":"tslint -p tsconfig.json -c tslint.json","test":"jest","build":"rimraf dist && tsc -p tsconfig.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","precommit":"lint-staged","test:watch":"jest --watch","publish:npm":"yarn publish --access public","prepublish:npm":"yarn run build"},"_npmUser":{"name":"anakshiant-p","email":"anand@useparagon.com"},"repository":{"url":"git+https://github.com/useparagon/nestjs-redis-cluster.git","type":"git"},"_npmVersion":"9.6.7","description":"A nestjs redis module w/ cluster support","directories":{},"_nodeVersion":"18.17.1","dependencies":{"rxjs":"^7.3.0","uuid":"^8.3.2","reflect-metadata":"0.1.13"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^23.6.0","rimraf":"^2.6.3","tslint":"^5.20.1","ioredis":"^4.28.5","ts-jest":"^23.10.5","prettier":"^1.19.1","typescript":"^3.6.4","@types/node":"^10.7.1","@types/uuid":"^8.3.2","@nestjs/core":"^8.0.7","@nestjs/common":"^8.0.7","@types/ioredis":"^4.28.5","@nestjs/testing":"^8.0.7","tslint-config-prettier":"^1.18.0","tslint-plugin-prettier":"^2.0.1","cz-conventional-changelog":"^2.1.0"},"peerDependencies":{"rxjs":"^7.0.0","uuid":"^8.3.2","ioredis":"4.x","@nestjs/core":"^8.0.0","@nestjs/common":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-redis-cluster_2.1.1-experimental_1718957997385_0.11743233278089482","host":"s3://npm-registry-packages"}},"2.1.0-experimental":{"name":"nestjs-redis-cluster","version":"2.1.0-experimental","keywords":["nestjs","nest","redis","nestjs-redis"],"author":{"url":"useparagon.com","name":"Ishmael Samuel"},"license":"MIT","_id":"nestjs-redis-cluster@2.1.0-experimental","dist":{"shasum":"7809edb397d1c9e437007025baa1f01e23cf6a87","tarball":"https://registry.npmjs.org/nestjs-redis-cluster/-/nestjs-redis-cluster-2.1.0-experimental.tgz","fileCount":37,"integrity":"sha512-e4ghoUmMiM0q6OmJh49e2Vm22FfWGHkp7R+bpRHb7zusvr6/CxEyyAQkIro8xqjJESik1noWu3PXrC5CtyGigw==","signatures":[{"sig":"MEQCIEicWkF21NLfu0lZWikd2KizRuVZITAqiuZXVA50qq28AiAi4Da5j9bulSb9Hey+iPC28hVcW5NPv+jwnp6dZ9KArQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":43045},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"# Nestjs Redis\n\nRedis component for NestJs with cluster support.\n\n### Installation\n\n**Yarn**\n\n```bash\nyarn add nestjs-redis-cluster\n```\n\n**NPM**\n\n```bash\nnpm install nestjs-redis-cluster --save\n```\n\n### Getting Started\n\n##### RedisModule\n\nLet's register the ClusterModule and RedisModule in `app.module.ts`\n\n```typescript\nimport { Module } from '@nestjs/common';\nimport { RedisModule } from 'nestjs-redis-cluster';\n\n@Module({\n  imports: [RedisModule.register(options)],\n})\nexport class AppModule {}\n```\n\nWith Async\n\n```typescript\nimport { Module } from '@nestjs/common';\nimport { RedisModule } from 'nestjs-redis-redis';\n\n@Module({\n  imports: [\n    RedisModule.forRootAsync({\n      useFactory: (configService: ConfigService) => configService.get('redis'),\n      // or use async method\n      //useFactory: async (configService: ConfigService) => configService.get('redis'),\n      inject: [ConfigService],\n    }),\n  ],\n})\nexport class AppModule {}\n```\n\nConfig looks like this for RedisModule with single client\n\n```typescript\nexport default {\n  host: process.env.REDIS_HOST,\n  port: parseInt(process.env.REDIS_PORT),\n  db: parseInt(process.env.REDIS_DB),\n  password: process.env.REDIS_PASSWORD,\n  keyPrefix: process.env.REDIS_PRIFIX,\n};\nOr;\nexport default {\n  url: 'redis://:authpassword@127.0.0.1:6380/4',\n};\n```\n\nWith custom error handler\n\n```typescript\nexport default {\n  url: 'redis://:authpassword@127.0.0.1:6380/4',\n  onClientReady: client => {\n    client.on('error', err => {});\n  },\n};\n```\n\nWith multi client\n\n```typescript\nexport default [\n  {\n    name: 'test1',\n    url: 'redis://:authpassword@127.0.0.1:6380/4',\n  },\n  {\n    name: 'test2',\n    host: process.env.REDIS_HOST,\n    port: parseInt(process.env.REDIS_PORT),\n    db: parseInt(process.env.REDIS_DB),\n    password: process.env.REDIS_PASSWORD,\n    keyPrefix: process.env.REDIS_PRIFIX,\n  },\n];\n```\n\nAnd use in your service\n\n```typescript\nimport { Injectable } from '@nestjs/common';\nimport { RedisService } from 'nestjs-redis-cluster';\n\n@Injectable()\nexport class TestService {\n  constructor(private readonly redisService: RedisService) {}\n  async root(): Promise<boolean> {\n    const client = await this.redisService.getClient('test');\n    return true;\n  }\n}\n```\n\nOptions\n\n```typescript\ninterface RedisOptions {\n  /**\n   * client name. default is a uuid, unique.\n   */\n  name?: string;\n  url?: string;\n  port?: number;\n  host?: string;\n  /**\n   * 4 (IPv4) or 6 (IPv6), Defaults to 4.\n   */\n  family?: number;\n  /**\n   * Local domain socket path. If set the port, host and family will be ignored.\n   */\n  path?: string;\n  /**\n   * TCP KeepAlive on the socket with a X ms delay before start. Set to a non-number value to disable keepAlive.\n   */\n  keepAlive?: number;\n  connectionName?: string;\n  /**\n   * If set, client will send AUTH command with the value of this option when connected.\n   */\n  password?: string;\n  /**\n   * Database index to use.\n   */\n  db?: number;\n  /**\n   * When a connection is established to the Redis server, the server might still be loading\n   * the database from disk. While loading, the server not respond to any commands.\n   * To work around this, when this option is true, ioredis will check the status of the Redis server,\n   * and when the Redis server is able to process commands, a ready event will be emitted.\n   */\n  enableReadyCheck?: boolean;\n  keyPrefix?: string;\n  /**\n   * When the return value isn't a number, ioredis will stop trying to reconnect.\n   * Fixed in: https://github.com/DefinitelyTyped/DefinitelyTyped/pull/15858\n   */\n  retryStrategy?(times: number): number | false;\n  /**\n   * By default, all pending commands will be flushed with an error every\n   * 20 retry attempts. That makes sure commands won't wait forever when\n   * the connection is down. You can change this behavior by setting\n   * `maxRetriesPerRequest`.\n   *\n   * Set maxRetriesPerRequest to `null` to disable this behavior, and\n   * every command will wait forever until the connection is alive again\n   * (which is the default behavior before ioredis v4).\n   */\n  maxRetriesPerRequest?: number | null;\n  /**\n   * 1/true means reconnect, 2 means reconnect and resend failed command. Returning false will ignore\n   * the error and do nothing.\n   */\n  reconnectOnError?(error: Error): boolean | 1 | 2;\n  /**\n   * By default, if there is no active connection to the Redis server, commands are added to a queue\n   * and are executed once the connection is \"ready\" (when enableReadyCheck is true, \"ready\" means\n   * the Redis server has loaded the database from disk, otherwise means the connection to the Redis\n   * server has been established). If this option is false, when execute the command when the connection\n   * isn't ready, an error will be returned.\n   */\n  enableOfflineQueue?: boolean;\n  /**\n   * The milliseconds before a timeout occurs during the initial connection to the Redis server.\n   * default: 10000.\n   */\n  connectTimeout?: number;\n  /**\n   * After reconnected, if the previous connection was in the subscriber mode, client will auto re-subscribe these channels.\n   * default: true.\n   */\n  autoResubscribe?: boolean;\n  /**\n   * If true, client will resend unfulfilled commands(e.g. block commands) in the previous connection when reconnected.\n   * default: true.\n   */\n  autoResendUnfulfilledCommands?: boolean;\n  lazyConnect?: boolean;\n  tls?: tls.ConnectionOptions;\n  sentinels?: Array<{ host: string; port: number }>;\n  name?: string;\n  /**\n   * Enable READONLY mode for the connection. Only available for cluster mode.\n   * default: false.\n   */\n  readOnly?: boolean;\n  /**\n   * If you are using the hiredis parser, it's highly recommended to enable this option.\n   * Create another instance with dropBufferSupport disabled for other commands that you want to return binary instead of string\n   */\n  dropBufferSupport?: boolean;\n  /**\n   * Whether to show a friendly error stack. Will decrease the performance significantly.\n   */\n  showFriendlyErrorStack?: boolean;\n}\n```\n\n##### ClusterModule\n\nLet's register the RedisClusterModule in `app.module.ts`\n\n```typescript\nimport { Module } from '@nestjs/common';\nimport { RedisClusterModule } from 'nestjs-redis-cluster';\n\n@Module({\n  imports: [RedisClusterModule.register(options)],\n})\nexport class AppModule {}\n```\n\nWith Async\n\n```typescript\nimport { Module } from '@nestjs/common';\nimport { ClusterModule } from 'nestjs-redis-cluster';\n\n@Module({\n  imports: [\n    RedisClusterModule.forRootAsync({\n      useFactory: (configService: ConfigService) =>\n        configService.get('cluster'),\n      // or use async method\n      //useFactory: async (configService: ConfigService) => configService.get('cluster'),\n      inject: [ConfigService],\n    }),\n  ],\n})\nexport class AppModule {}\n```\n\nConfig looks like this for RedisClusterModule\n\n```typescript\nexport default {\n  nodes: [\n    {\n      host: 6380,\n      port: '127.0.0.1',\n    },\n    {\n      host: 6381,\n      port: '127.0.0.1',\n    },\n  ],\n};\nOr;\nexport default {\n  nodes: [\n    {\n      url: 'redis://:authpassword@127.0.0.1:6380/4',\n    },\n    {\n      url: 'redis://:authpassword@127.0.0.1:6381/4',\n    },\n  ],\n};\n```\n\nWith custom error handler\n\n```typescript\nexport default {\n  nodes: [\n    {\n      url: 'redis://:authpassword@127.0.0.1:6380/4',\n    },\n  ],\n  onClusterReady: cluster => {\n    cluster.on('error', err => {});\n  },\n};\n```\n\nWith multiple clusters\n\n```typescript\nexport default [\n  {\n    name: 'test1',\n    nodes: [\n      {\n        url: 'redis://:authpassword@127.0.0.1:6380/4',\n        url: 'redis://:authpassword@127.0.0.1:6380/5',\n      },\n    ],\n  },\n  {\n    name: 'test2',\n    nodes: [\n      {\n        host: process.env.REDIS_HOST,\n        port: parseInt(process.env.REDIS_PORT),\n        db: parseInt(process.env.REDIS_DB),\n        password: process.env.REDIS_PASSWORD,\n        keyPrefix: process.env.REDIS_PRIFIX,\n      },\n    ],\n  },\n];\n```\n\nAnd use in your service\n\n```typescript\nimport { Injectable } from '@nestjs/common';\nimport { RedisClusterService } from 'nestjs-redis-cluster';\n\n@Injectable()\nexport class TestService {\n  constructor(private readonly redisService: RedisClusterService) {}\n  async root(): Promise<boolean> {\n    const client = await this.redisService.getCluster('test');\n    return true;\n  }\n}\n```\n\nOptions\nAlmost all the options are passed to ioredis/cluster (https://github.com/luin/ioredis/blob/master/lib/cluster/ClusterOptions.ts)\n\nThe only additional options are `name`, `nodes`, and `onClusterReady`.\n\n```typescript\ninterface RedisClusterOptions {\n  /**\n   * client name. default is a uuid, unique.\n   */\n  name?: string;\n  nodes: (string | number | { url: string?, host?: string, port?: number )[];\n\n    /**\n   * See \"Quick Start\" section.\n   *\n   * @default (times) => Math.min(100 + times * 2, 2000)\n   */\n  clusterRetryStrategy?: (\n    times: number,\n    reason?: Error\n  ) => number | void | null;\n\n  /**\n   * See Redis class.\n   *\n   * @default true\n   */\n  enableOfflineQueue?: boolean;\n\n  /**\n   * When enabled, ioredis only emits \"ready\" event when `CLUSTER INFO`\n   * command reporting the cluster is ready for handling commands.\n   *\n   * @default true\n   */\n  enableReadyCheck?: boolean;\n\n  /**\n   * Scale reads to the node with the specified role.\n   *\n   * @default \"master\"\n   */\n  scaleReads?: NodeRole | Function;\n\n  /**\n   * When a MOVED or ASK error is received, client will redirect the\n   * command to another node.\n   * This option limits the max redirections allowed to send a command.\n   *\n   * @default 16\n   */\n  maxRedirections?: number;\n\n  /**\n   * When an error is received when sending a command (e.g.\n   * \"Connection is closed.\" when the target Redis node is down), client will retry\n   * if `retryDelayOnFailover` is valid delay time (in ms).\n   *\n   * @default 100\n   */\n  retryDelayOnFailover?: number;\n\n  /**\n   * When a CLUSTERDOWN error is received, client will retry\n   * if `retryDelayOnClusterDown` is valid delay time (in ms).\n   *\n   * @default 100\n   */\n  retryDelayOnClusterDown?: number;\n\n  /**\n   * When a TRYAGAIN error is received, client will retry\n   * if `retryDelayOnTryAgain` is valid delay time (in ms).\n   *\n   * @default 100\n   */\n  retryDelayOnTryAgain?: number;\n\n  /**\n   * The milliseconds before a timeout occurs while refreshing\n   * slots from the cluster.\n   *\n   * @default 1000\n   */\n  slotsRefreshTimeout?: number;\n\n  /**\n   * The milliseconds between every automatic slots refresh.\n   *\n   * @default 5000\n   */\n  slotsRefreshInterval?: number;\n\n  /**\n   * Passed to the constructor of `Redis`\n   *\n   * @default null\n   */\n  redisOptions?: any;\n\n  /**\n   * By default, When a new Cluster instance is created,\n   * it will connect to the Redis cluster automatically.\n   * If you want to keep the instance disconnected until the first command is called,\n   * set this option to `true`.\n   *\n   * @default false\n   */\n  lazyConnect?: boolean;\n\n  /**\n   * Hostnames will be resolved to IP addresses via this function.\n   * This is needed when the addresses of startup nodes are hostnames instead\n   * of IPs.\n   *\n   * You may provide a custom `lookup` function when you want to customize\n   * the cache behavior of the default function.\n   *\n   * @default require('dns').lookup\n   */\n  dnsLookup?: DNSLookupFunction;\n  natMap?: INatMap;\n}\n```\n\nThat's it!\n","scripts":{"lint":"tslint -p tsconfig.json -c tslint.json","test":"jest","build":"rimraf dist && tsc -p tsconfig.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","precommit":"lint-staged","test:watch":"jest --watch","publish:npm":"yarn publish --access public --tag=experimental","prepublish:npm":"yarn run build"},"_npmUser":{"name":"anakshiant-p","email":"anand@useparagon.com"},"repository":{"url":"https://github.com/useparagon/nestjs-redis-cluster","type":"git"},"description":"A nestjs redis module w/ cluster support","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2018 KnowYourself\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","dependencies":{"rxjs":"^7.3.0","uuid":"^8.3.2","reflect-metadata":"0.1.13"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^23.6.0","rimraf":"^2.6.3","tslint":"^5.20.1","ioredis":"^4.28.5","ts-jest":"^23.10.5","prettier":"^1.19.1","typescript":"^3.6.4","@types/node":"^10.7.1","@types/uuid":"^8.3.2","@nestjs/core":"^8.0.7","@nestjs/common":"^8.0.7","@types/ioredis":"^4.28.5","@nestjs/testing":"^8.0.7","tslint-config-prettier":"^1.18.0","tslint-plugin-prettier":"^2.0.1","cz-conventional-changelog":"^2.1.0"},"peerDependencies":{"rxjs":"^7.0.0","uuid":"^8.3.2","ioredis":"4.x","@nestjs/core":"^8.0.0","@nestjs/common":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-redis-cluster_2.1.0-experimental_1718961462041_0.6624172462767302","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"nestjs-redis-cluster","version":"2.1.0","keywords":["nestjs","nest","redis","nestjs-redis"],"author":{"url":"useparagon.com","name":"Ishmael Samuel"},"license":"MIT","_id":"nestjs-redis-cluster@2.1.0","dist":{"shasum":"b17e037a7a9c4751fa7793224eaa5f4d38a19908","tarball":"https://registry.npmjs.org/nestjs-redis-cluster/-/nestjs-redis-cluster-2.1.0.tgz","fileCount":37,"integrity":"sha512-ksOnONcvEF5xW/dioUzVXtrjQn1ssACRO3rgnL+1qJ+G9H9J8C4MYBLTHTJsaAdgzRJAFKDiS4xVWdLukePEpQ==","signatures":[{"sig":"MEUCIE1qhT5Zk04h8JLJ8PZv4y0kkYvyS/9o1nKV+nbWke67AiEAm3n+EERjGGGB3ewSyYm54VLwE2mt/qVsvgzRuRb/tH0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":43013},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"scripts":{"lint":"tslint -p tsconfig.json -c tslint.json","test":"jest","build":"rimraf dist && tsc -p tsconfig.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","precommit":"lint-staged","test:watch":"jest --watch","publish:npm":"yarn publish --access public","prepublish:npm":"yarn run build"},"_npmUser":{"name":"ishmaelparagon","email":"ishmael@useparagon.com"},"repository":{"url":"https://github.com/useparagon/nestjs-redis-cluster","type":"git"},"description":"A nestjs redis module w/ cluster support","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2018 KnowYourself\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","dependencies":{"rxjs":"^7.3.0","uuid":"^8.3.2","reflect-metadata":"0.1.13"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^23.6.0","rimraf":"^2.6.3","tslint":"^5.20.1","ioredis":"^4.28.5","ts-jest":"^23.10.5","prettier":"^1.19.1","typescript":"^3.6.4","@types/node":"^10.7.1","@types/uuid":"^8.3.2","@nestjs/core":"^8.0.7","@nestjs/common":"^8.0.7","@types/ioredis":"^4.28.5","@nestjs/testing":"^8.0.7","tslint-config-prettier":"^1.18.0","tslint-plugin-prettier":"^2.0.1","cz-conventional-changelog":"^2.1.0"},"peerDependencies":{"rxjs":"^7.0.0","uuid":"^8.3.2","ioredis":"4.x","@nestjs/core":"^8.0.0","@nestjs/common":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-redis-cluster_2.1.0_1719243049459_0.6640849015180827","host":"s3://npm-registry-packages"}}},"time":{"created":"2020-07-02T05:40:46.531Z","modified":"2026-06-19T12:21:38.437Z","1.2.8":"2020-07-02T05:40:46.685Z","1.2.9":"2020-07-02T06:22:47.116Z","1.2.10":"2020-07-02T06:56:18.654Z","2.0.1":"2021-10-01T06:35:37.583Z","2.0.2":"2022-10-31T20:15:37.066Z","2.0.3":"2022-11-01T17:45:10.875Z","2.0.4":"2022-11-01T18:03:50.135Z","2.0.5":"2023-08-16T23:04:42.385Z","2.0.6":"2023-10-23T21:23:20.790Z","2.0.7":"2024-05-02T17:16:33.175Z","2.0.8":"2024-05-06T22:05:00.384Z","2.1.1-experimental":"2024-06-21T08:19:57.594Z","2.1.0-experimental":"2024-06-21T09:17:42.234Z","2.1.0":"2024-06-24T15:30:49.600Z"},"author":{"url":"useparagon.com","name":"Ishmael Samuel"},"license":"MIT","keywords":["nestjs","nest","redis","nestjs-redis"],"repository":{"url":"https://github.com/useparagon/nestjs-redis-cluster","type":"git"},"description":"A nestjs redis module w/ cluster support","maintainers":[{"email":"anand@useparagon.com","name":"anakshiant-p"},{"email":"services@useparagon.com","name":"paragonbot"},{"email":"ted.oconnor@useparagon.com","name":"ted-paragon"},{"email":"ishmael@useparagon.com","name":"ishmaelparagon"}],"readme":"# Nestjs Redis\n\nRedis component for NestJs with cluster support.\n\n### Installation\n\n**Yarn**\n\n```bash\nyarn add nestjs-redis-cluster\n```\n\n**NPM**\n\n```bash\nnpm install nestjs-redis-cluster --save\n```\n\n### Getting Started\n\n##### RedisModule\n\nLet's register the ClusterModule and RedisModule in `app.module.ts`\n\n```typescript\nimport { Module } from '@nestjs/common';\nimport { RedisModule } from 'nestjs-redis-cluster';\n\n@Module({\n  imports: [RedisModule.register(options)],\n})\nexport class AppModule {}\n```\n\nWith Async\n\n```typescript\nimport { Module } from '@nestjs/common';\nimport { RedisModule } from 'nestjs-redis-redis';\n\n@Module({\n  imports: [\n    RedisModule.forRootAsync({\n      useFactory: (configService: ConfigService) => configService.get('redis'),\n      // or use async method\n      //useFactory: async (configService: ConfigService) => configService.get('redis'),\n      inject: [ConfigService],\n    }),\n  ],\n})\nexport class AppModule {}\n```\n\nConfig looks like this for RedisModule with single client\n\n```typescript\nexport default {\n  host: process.env.REDIS_HOST,\n  port: parseInt(process.env.REDIS_PORT),\n  db: parseInt(process.env.REDIS_DB),\n  password: process.env.REDIS_PASSWORD,\n  keyPrefix: process.env.REDIS_PRIFIX,\n};\nOr;\nexport default {\n  url: 'redis://:authpassword@127.0.0.1:6380/4',\n};\n```\n\nWith custom error handler\n\n```typescript\nexport default {\n  url: 'redis://:authpassword@127.0.0.1:6380/4',\n  onClientReady: client => {\n    client.on('error', err => {});\n  },\n};\n```\n\nWith multi client\n\n```typescript\nexport default [\n  {\n    name: 'test1',\n    url: 'redis://:authpassword@127.0.0.1:6380/4',\n  },\n  {\n    name: 'test2',\n    host: process.env.REDIS_HOST,\n    port: parseInt(process.env.REDIS_PORT),\n    db: parseInt(process.env.REDIS_DB),\n    password: process.env.REDIS_PASSWORD,\n    keyPrefix: process.env.REDIS_PRIFIX,\n  },\n];\n```\n\nAnd use in your service\n\n```typescript\nimport { Injectable } from '@nestjs/common';\nimport { RedisService } from 'nestjs-redis-cluster';\n\n@Injectable()\nexport class TestService {\n  constructor(private readonly redisService: RedisService) {}\n  async root(): Promise<boolean> {\n    const client = await this.redisService.getClient('test');\n    return true;\n  }\n}\n```\n\nOptions\n\n```typescript\ninterface RedisOptions {\n  /**\n   * client name. default is a uuid, unique.\n   */\n  name?: string;\n  url?: string;\n  port?: number;\n  host?: string;\n  /**\n   * 4 (IPv4) or 6 (IPv6), Defaults to 4.\n   */\n  family?: number;\n  /**\n   * Local domain socket path. If set the port, host and family will be ignored.\n   */\n  path?: string;\n  /**\n   * TCP KeepAlive on the socket with a X ms delay before start. Set to a non-number value to disable keepAlive.\n   */\n  keepAlive?: number;\n  connectionName?: string;\n  /**\n   * If set, client will send AUTH command with the value of this option when connected.\n   */\n  password?: string;\n  /**\n   * Database index to use.\n   */\n  db?: number;\n  /**\n   * When a connection is established to the Redis server, the server might still be loading\n   * the database from disk. While loading, the server not respond to any commands.\n   * To work around this, when this option is true, ioredis will check the status of the Redis server,\n   * and when the Redis server is able to process commands, a ready event will be emitted.\n   */\n  enableReadyCheck?: boolean;\n  keyPrefix?: string;\n  /**\n   * When the return value isn't a number, ioredis will stop trying to reconnect.\n   * Fixed in: https://github.com/DefinitelyTyped/DefinitelyTyped/pull/15858\n   */\n  retryStrategy?(times: number): number | false;\n  /**\n   * By default, all pending commands will be flushed with an error every\n   * 20 retry attempts. That makes sure commands won't wait forever when\n   * the connection is down. You can change this behavior by setting\n   * `maxRetriesPerRequest`.\n   *\n   * Set maxRetriesPerRequest to `null` to disable this behavior, and\n   * every command will wait forever until the connection is alive again\n   * (which is the default behavior before ioredis v4).\n   */\n  maxRetriesPerRequest?: number | null;\n  /**\n   * 1/true means reconnect, 2 means reconnect and resend failed command. Returning false will ignore\n   * the error and do nothing.\n   */\n  reconnectOnError?(error: Error): boolean | 1 | 2;\n  /**\n   * By default, if there is no active connection to the Redis server, commands are added to a queue\n   * and are executed once the connection is \"ready\" (when enableReadyCheck is true, \"ready\" means\n   * the Redis server has loaded the database from disk, otherwise means the connection to the Redis\n   * server has been established). If this option is false, when execute the command when the connection\n   * isn't ready, an error will be returned.\n   */\n  enableOfflineQueue?: boolean;\n  /**\n   * The milliseconds before a timeout occurs during the initial connection to the Redis server.\n   * default: 10000.\n   */\n  connectTimeout?: number;\n  /**\n   * After reconnected, if the previous connection was in the subscriber mode, client will auto re-subscribe these channels.\n   * default: true.\n   */\n  autoResubscribe?: boolean;\n  /**\n   * If true, client will resend unfulfilled commands(e.g. block commands) in the previous connection when reconnected.\n   * default: true.\n   */\n  autoResendUnfulfilledCommands?: boolean;\n  lazyConnect?: boolean;\n  tls?: tls.ConnectionOptions;\n  sentinels?: Array<{ host: string; port: number }>;\n  name?: string;\n  /**\n   * Enable READONLY mode for the connection. Only available for cluster mode.\n   * default: false.\n   */\n  readOnly?: boolean;\n  /**\n   * If you are using the hiredis parser, it's highly recommended to enable this option.\n   * Create another instance with dropBufferSupport disabled for other commands that you want to return binary instead of string\n   */\n  dropBufferSupport?: boolean;\n  /**\n   * Whether to show a friendly error stack. Will decrease the performance significantly.\n   */\n  showFriendlyErrorStack?: boolean;\n}\n```\n\n##### ClusterModule\n\nLet's register the RedisClusterModule in `app.module.ts`\n\n```typescript\nimport { Module } from '@nestjs/common';\nimport { RedisClusterModule } from 'nestjs-redis-cluster';\n\n@Module({\n  imports: [RedisClusterModule.register(options)],\n})\nexport class AppModule {}\n```\n\nWith Async\n\n```typescript\nimport { Module } from '@nestjs/common';\nimport { ClusterModule } from 'nestjs-redis-cluster';\n\n@Module({\n  imports: [\n    RedisClusterModule.forRootAsync({\n      useFactory: (configService: ConfigService) =>\n        configService.get('cluster'),\n      // or use async method\n      //useFactory: async (configService: ConfigService) => configService.get('cluster'),\n      inject: [ConfigService],\n    }),\n  ],\n})\nexport class AppModule {}\n```\n\nConfig looks like this for RedisClusterModule\n\n```typescript\nexport default {\n  nodes: [\n    {\n      host: 6380,\n      port: '127.0.0.1',\n    },\n    {\n      host: 6381,\n      port: '127.0.0.1',\n    },\n  ],\n};\nOr;\nexport default {\n  nodes: [\n    {\n      url: 'redis://:authpassword@127.0.0.1:6380/4',\n    },\n    {\n      url: 'redis://:authpassword@127.0.0.1:6381/4',\n    },\n  ],\n};\n```\n\nWith custom error handler\n\n```typescript\nexport default {\n  nodes: [\n    {\n      url: 'redis://:authpassword@127.0.0.1:6380/4',\n    },\n  ],\n  onClusterReady: cluster => {\n    cluster.on('error', err => {});\n  },\n};\n```\n\nWith multiple clusters\n\n```typescript\nexport default [\n  {\n    name: 'test1',\n    nodes: [\n      {\n        url: 'redis://:authpassword@127.0.0.1:6380/4',\n        url: 'redis://:authpassword@127.0.0.1:6380/5',\n      },\n    ],\n  },\n  {\n    name: 'test2',\n    nodes: [\n      {\n        host: process.env.REDIS_HOST,\n        port: parseInt(process.env.REDIS_PORT),\n        db: parseInt(process.env.REDIS_DB),\n        password: process.env.REDIS_PASSWORD,\n        keyPrefix: process.env.REDIS_PRIFIX,\n      },\n    ],\n  },\n];\n```\n\nAnd use in your service\n\n```typescript\nimport { Injectable } from '@nestjs/common';\nimport { RedisClusterService } from 'nestjs-redis-cluster';\n\n@Injectable()\nexport class TestService {\n  constructor(private readonly redisService: RedisClusterService) {}\n  async root(): Promise<boolean> {\n    const client = await this.redisService.getCluster('test');\n    return true;\n  }\n}\n```\n\nOptions\nAlmost all the options are passed to ioredis/cluster (https://github.com/luin/ioredis/blob/master/lib/cluster/ClusterOptions.ts)\n\nThe only additional options are `name`, `nodes`, and `onClusterReady`.\n\n```typescript\ninterface RedisClusterOptions {\n  /**\n   * client name. default is a uuid, unique.\n   */\n  name?: string;\n  nodes: (string | number | { url: string?, host?: string, port?: number )[];\n\n    /**\n   * See \"Quick Start\" section.\n   *\n   * @default (times) => Math.min(100 + times * 2, 2000)\n   */\n  clusterRetryStrategy?: (\n    times: number,\n    reason?: Error\n  ) => number | void | null;\n\n  /**\n   * See Redis class.\n   *\n   * @default true\n   */\n  enableOfflineQueue?: boolean;\n\n  /**\n   * When enabled, ioredis only emits \"ready\" event when `CLUSTER INFO`\n   * command reporting the cluster is ready for handling commands.\n   *\n   * @default true\n   */\n  enableReadyCheck?: boolean;\n\n  /**\n   * Scale reads to the node with the specified role.\n   *\n   * @default \"master\"\n   */\n  scaleReads?: NodeRole | Function;\n\n  /**\n   * When a MOVED or ASK error is received, client will redirect the\n   * command to another node.\n   * This option limits the max redirections allowed to send a command.\n   *\n   * @default 16\n   */\n  maxRedirections?: number;\n\n  /**\n   * When an error is received when sending a command (e.g.\n   * \"Connection is closed.\" when the target Redis node is down), client will retry\n   * if `retryDelayOnFailover` is valid delay time (in ms).\n   *\n   * @default 100\n   */\n  retryDelayOnFailover?: number;\n\n  /**\n   * When a CLUSTERDOWN error is received, client will retry\n   * if `retryDelayOnClusterDown` is valid delay time (in ms).\n   *\n   * @default 100\n   */\n  retryDelayOnClusterDown?: number;\n\n  /**\n   * When a TRYAGAIN error is received, client will retry\n   * if `retryDelayOnTryAgain` is valid delay time (in ms).\n   *\n   * @default 100\n   */\n  retryDelayOnTryAgain?: number;\n\n  /**\n   * The milliseconds before a timeout occurs while refreshing\n   * slots from the cluster.\n   *\n   * @default 1000\n   */\n  slotsRefreshTimeout?: number;\n\n  /**\n   * The milliseconds between every automatic slots refresh.\n   *\n   * @default 5000\n   */\n  slotsRefreshInterval?: number;\n\n  /**\n   * Passed to the constructor of `Redis`\n   *\n   * @default null\n   */\n  redisOptions?: any;\n\n  /**\n   * By default, When a new Cluster instance is created,\n   * it will connect to the Redis cluster automatically.\n   * If you want to keep the instance disconnected until the first command is called,\n   * set this option to `true`.\n   *\n   * @default false\n   */\n  lazyConnect?: boolean;\n\n  /**\n   * Hostnames will be resolved to IP addresses via this function.\n   * This is needed when the addresses of startup nodes are hostnames instead\n   * of IPs.\n   *\n   * You may provide a custom `lookup` function when you want to customize\n   * the cache behavior of the default function.\n   *\n   * @default require('dns').lookup\n   */\n  dnsLookup?: DNSLookupFunction;\n  natMap?: INatMap;\n}\n```\n\nThat's it!\n","readmeFilename":"README.md"}