{"_id":"redis-sliding-rate-limiter","_rev":"35-95c66a7499324cd08c3946cf33a4b04c","name":"redis-sliding-rate-limiter","dist-tags":{"latest":"7.0.2"},"versions":{"1.0.0":{"name":"redis-sliding-rate-limiter","version":"1.0.0","keywords":["redis","ioredis","rate","limiter","throttle","sliding","rolling","window","express","middleware"],"author":{"name":"Ludovico Fabbri"},"license":"ISC","_id":"redis-sliding-rate-limiter@1.0.0","maintainers":[{"name":"spinlud","email":"ludovico.fabbri@gmail.com"}],"homepage":"https://github.com/spinlud/redis-sliding-rate-limiter#readme","bugs":{"url":"https://github.com/spinlud/redis-sliding-rate-limiter.git/issues"},"dist":{"shasum":"3134fdde104e017e00d9aab3c29292e34ac7153a","tarball":"https://registry.npmjs.org/redis-sliding-rate-limiter/-/redis-sliding-rate-limiter-1.0.0.tgz","fileCount":44,"integrity":"sha512-2PnoDhwZtdySESUR/MsyZ29l4NT+1JcA5IHEuik2H1SPKZyYCEXC94Erzgq08CDP95L4icXSSAxCWiwUBNXIoA==","signatures":[{"sig":"MEUCIB0txHKMMDVJ+uBb60iEtwkG3lLIf59jPqr8bkkx4durAiEAvxThOiVLcYxlHeEwmXL20ZpQqV+VddwUk6IZ45EbvXU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":100024,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf8uotCRA9TVsSAnZWagAAtpUQAICppdT7FPgud/oTxXua\nevmjc+ml0BGWESVXPbQw35L7kc+vM2tDK7hy9ofSL0Xa5M8F470uGa2QNIS4\nw5S2CLR1BErQv0Vj9cfXGMkdmq6bFm1gleJXPlUvT3b9Zp8KfJetiVE1EzEd\nBMpvm6qiadhuVdhIKVwGfQQkf7ZYTHEk7bLDJGB3cCUL656uCEogFHMOltBd\nxM1uPgJvFdJNktxqgfJ6JLw44Bf8PkxmwYwQFH7t9rp6RNBhjIGPmH4K3I4H\nLwGlxu+QKItfon9nYIBjSuJIU1KrSclF7muqr/pqMyk0QYU3c1MA9TjMpokt\n0CoN+NaC1yPC295sLhQksTaggQ4QU0hU6tZ16HUIxTTUoGXgzF3iAYO8nLLT\nZ/iSiQovtLzuvayvlTRYq+XC5WXNLMjus31NXIhcipzzMdnJfGnVTux82Jgy\nM0Eniby062lnYPMVWC22MxUP6HIqie4LhICfMmLxJ8+FmCPwp+atmRynwQe7\nhmmYXdnY8Yp0Obrtm8ZdH5d+9xxyzyJwchXixPBQVUG3Kx7BvX0EzB5V+JK5\nCdVmm4/aD+GuEYL+4CiJI9o08cmDgdzZuSjHGJ1wXjek0hs+EB/WY7NtsKAb\nxJfWlx50OoZqSEjdccTld8piDDAa+Ib/G3xr0199/7P8AUyMObyytMgh5BmN\nO2BH\r\n=2kl3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","types":"build/index.d.ts","scripts":{"test":"jest","build":"npm run clean && tsc","clean":"rm -fr build"},"_npmUser":{"name":"spinlud","email":"ludovico.fabbri@gmail.com"},"repository":{"url":"git+https://github.com/spinlud/redis-sliding-rate-limiter.git","type":"git"},"_npmVersion":"6.14.8","description":"Flexible and fast rate limiter compatible ","directories":{},"_nodeVersion":"12.20.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","redis":"^3.0.2","express":"^4.17.1","ioredis":"^4.19.4","ts-jest":"^26.4.4","ts-node":"^9.1.1","supertest":"^6.0.1","typescript":"^4.1.3","@types/jest":"^26.0.19","@types/redis":"^2.8.28","@types/express":"^4.17.9","@types/ioredis":"^4.17.10","@types/supertest":"^2.0.10"},"_npmOperationalInternal":{"tmp":"tmp/redis-sliding-rate-limiter_1.0.0_1609755180700_0.4348579108185353","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"redis-sliding-rate-limiter","version":"1.0.2","keywords":["redis","ioredis","rate","limiter","throttle","sliding","rolling","window","express","middleware"],"author":{"name":"Ludovico Fabbri"},"license":"ISC","_id":"redis-sliding-rate-limiter@1.0.2","maintainers":[{"name":"spinlud","email":"ludovico.fabbri@gmail.com"}],"homepage":"https://github.com/spinlud/redis-sliding-rate-limiter#readme","bugs":{"url":"https://github.com/spinlud/redis-sliding-rate-limiter.git/issues"},"dist":{"shasum":"6fab86f524779f212e73db57cde8e0c1d168d6f9","tarball":"https://registry.npmjs.org/redis-sliding-rate-limiter/-/redis-sliding-rate-limiter-1.0.2.tgz","fileCount":44,"integrity":"sha512-+MYEYjLAhq6l3KC93Mjy+pVtGp8MDPz2dmHFMDkD5c0ugEMW2hl8Hr/uSC66vg09NVqY57HQRwfFe8Fu3nF+HQ==","signatures":[{"sig":"MEQCIC9QqFZsFfaP0f1n5VvjPESr3R/Y1IyvLchLLCiLbchjAiB7u3b27lhapIrcPAssy590Pzm5P8pAzM7kFpkCtKes9Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":100149,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf8vGhCRA9TVsSAnZWagAAwz0P/jAE/OFplsanwlySSHzY\ntyylscRw2LLHVru2fUfhe5ZZUSD+XL7MOUZDUQlxuivBz+T2gKNqsaVElvd4\nhElZ6mIyF5PtE0ykLV47A+DtJsUjUBxN+kwWQnymQikMi5rBI5YlKR7s7eD0\nbb+aHiNuKQ2Hg5nMs+BKlyWe0U5/WDMkqFTs9NddQ0bX8Qvs7qYMvkvXgz5p\nZMLYqB0KzKtPUwlF0d8eOdSeCpyl+qwsAjV00Q5x1mkich+Li0B3pSy8qEEI\nXI37Yaj/sdsWsDY5TQyCL69pPGKPfGVqcMffJmlTtZnn3GEs9VuV3rSmzKpg\nYi8Be80/aCnGG33NXIECGas5kxZijUVDvME0lQgLXeqrdYrWERLzrSxWUaxF\ncGVNoGwIqRr9Mlmds4ZV3rNLiTgrskSTLX2ISR4DVf4dxL6dVjPtgDxQbeoV\nd28DSln7mVDJUtnpIwHbTYDZuAWyAoGZSoSv0S3Dc5XM2ZtgsvVO/we6FLiL\nKa3FGtCm1z5klxU+OoSHE7NRx4ak0MoWff+qA6oBZCNV2BidWf7W3pnlICEj\nkRZ0eiZsmR8XGCIm8mHCNTtoCBWtyaDqHs3AYx1zIo5dc3rAVRsbS5G+zz6F\n4/g+YT7HIZ4ejSBUP+J/vylKg6ZpyWUyXpTWl9RTcbA5qXqDmfSSGty14bzm\n8jnE\r\n=zBnP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","types":"build/index.d.ts","scripts":{"test":"jest","build":"npm run clean && tsc","clean":"rm -fr build"},"_npmUser":{"name":"spinlud","email":"ludovico.fabbri@gmail.com"},"repository":{"url":"git+https://github.com/spinlud/redis-sliding-rate-limiter.git","type":"git"},"_npmVersion":"6.14.8","description":"Flexible and performant rate limiter based on sliding window algorithm with arbitrary precision","directories":{},"_nodeVersion":"12.20.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","redis":"^3.0.2","express":"^4.17.1","ioredis":"^4.19.4","ts-jest":"^26.4.4","ts-node":"^9.1.1","supertest":"^6.0.1","typescript":"^4.1.3","@types/jest":"^26.0.19","@types/redis":"^2.8.28","@types/express":"^4.17.9","@types/ioredis":"^4.17.10","@types/supertest":"^2.0.10"},"_npmOperationalInternal":{"tmp":"tmp/redis-sliding-rate-limiter_1.0.2_1609757088783_0.40005385275166017","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"redis-sliding-rate-limiter","version":"1.1.1","keywords":["redis","ioredis","rate","limiter","throttle","sliding","rolling","window","express","middleware"],"author":{"name":"Ludovico Fabbri"},"license":"ISC","_id":"redis-sliding-rate-limiter@1.1.1","maintainers":[{"name":"spinlud","email":"ludovico.fabbri@gmail.com"}],"homepage":"https://github.com/spinlud/redis-sliding-rate-limiter#readme","bugs":{"url":"https://github.com/spinlud/redis-sliding-rate-limiter.git/issues"},"dist":{"shasum":"d0d59a0b32ac3ebd3ec2fd3481a070c2e4f82664","tarball":"https://registry.npmjs.org/redis-sliding-rate-limiter/-/redis-sliding-rate-limiter-1.1.1.tgz","fileCount":44,"integrity":"sha512-0yRFGZCdcrgrkVNAEKQQa7GnrokMF47LMRvPfs6yPPROsIxBKW6DCz6Y0NR9ODmjOge/ygGPcbRYrjhyyL9n1Q==","signatures":[{"sig":"MEUCIDcmvxl2atrosRRoez+G36jvWMC83x0l+4gYvvX1AoqVAiEArSUK2iP5N+Q4icxFRMPNXIFoRsygkgHjXHvCTdReTzk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":102154,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf90rlCRA9TVsSAnZWagAAMeMP/397RjVvXR+flPooH0/b\ngEI2fJFzA58gt5LG62/suDoZAv5F2wGAQNq/PDaUd6WHp7H9qd8ArIIPmQtY\n+KdcngKeHxPim5fb+JwAILk/fKETXlDY1ZZo+2mDQ+u3CSw3hQML+nlqlXqY\n590SGcdAtKM3d0XdRHLvAzqap2XqPKbZntTpL+R1eA0N6E9GuCa6H/dYo8tw\nyYitDDaIAPQpChVLV7WnP+bouHDPfbl+w1oS/awLIxk3zCMc6P9LLrMAtc6/\nZ9y/a8wQW9DO1EzaEg9wb0NyX1Tgshe0W4klfQ9DrU9BMqx5/Mm/ZtYQDu9F\nSqyrElySJtIdMdqT1c9PqvUWCKNk6hSHYvnPSlhHUrrEaDRSFuaqIRGGPcP2\nwoGRsBQRJ421zhr5lgxMtf78HxfpsiAT22Ix6VQeoVn1yts/1w7rU7zD6Ksr\neTHaqRDXMDe7OW3X0VsUsz86GjqHNeSBflDvrmu+tnIjGmj8n5wX89LZiQnj\nau1E3EN0ejp9yvX9XI234FcN+7/X2fViAVTvif0J3AnodFJPRpCKaOVeX4sp\ntScWB4+6FluvWcDOC+zTb/NaSTqyrvHyMGVvY8NuRqSJLlxVkNJP6wAqtwRZ\nzxNR3TuFlRBmPde2CQMSOBH8d/YWXnQqYwkR7I1MwHHkjLpYTNOy2BFq/oim\n/u4Y\r\n=08ij\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","types":"build/index.d.ts","scripts":{"test":"jest","build":"npm run clean && tsc","clean":"rm -fr build"},"_npmUser":{"name":"spinlud","email":"ludovico.fabbri@gmail.com"},"repository":{"url":"git+https://github.com/spinlud/redis-sliding-rate-limiter.git","type":"git"},"_npmVersion":"6.14.10","description":"Flexible and performant rate limiter based on sliding window algorithm with arbitrary precision","directories":{},"_nodeVersion":"12.20.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","redis":"^3.0.2","express":"^4.17.1","ioredis":"^4.19.4","ts-jest":"^26.4.4","ts-node":"^9.1.1","supertest":"^6.0.1","typescript":"^4.1.3","@types/jest":"^26.0.19","@types/redis":"^2.8.28","@types/express":"^4.17.9","@types/ioredis":"^4.17.10","@types/supertest":"^2.0.10"},"_npmOperationalInternal":{"tmp":"tmp/redis-sliding-rate-limiter_1.1.1_1610042085099_0.6695134717627584","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"redis-sliding-rate-limiter","version":"1.2.0","keywords":["redis","ioredis","rate","limiter","throttle","sliding","rolling","window","express","middleware"],"author":{"name":"Ludovico Fabbri"},"license":"ISC","_id":"redis-sliding-rate-limiter@1.2.0","maintainers":[{"name":"spinlud","email":"ludovico.fabbri@gmail.com"}],"homepage":"https://github.com/spinlud/redis-sliding-rate-limiter#readme","bugs":{"url":"https://github.com/spinlud/redis-sliding-rate-limiter.git/issues"},"dist":{"shasum":"44d979fd31bac98fd64358aa27b5dfbe139b6b11","tarball":"https://registry.npmjs.org/redis-sliding-rate-limiter/-/redis-sliding-rate-limiter-1.2.0.tgz","fileCount":44,"integrity":"sha512-4wnfGNrP6oAZnFWkaiz7mJ1dI8Puamjml2bZjyYnr3xax3/b1fnR/uN86/HJZKNNSHezFjv/u+VSBWtU/IJHuQ==","signatures":[{"sig":"MEUCIFrXHeYnIbO121muebOyVtU7NNaLF83kniyf4G0qnn1UAiEAiEN1JczqLfxRvNe1+CCHpceSreMsPyISNa5wtwpNfaA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105064,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf+HNzCRA9TVsSAnZWagAAu8sP/0GEzvGk3T4Fg+qm8rB1\nSC8sFMXJA8zfwBLS6LyYfu9gXUEkORrZ4zafXALjFI9xqyoHXLkTNd9uelDT\n64gV1MfJesIocUAMPYngW/weJ6M4JjpjcXQdDJiJ878QZMA+ucFEoaa23Rbh\nkLlktMUOeduoo4Cp4bKPe5O/Or7Yi533+lWVyjf8Zw8BM0Z4gyFWrfjQUJwC\nFCDRjP/0cvM1it83KZv0yC/NTuGdBLP9u7jjo43gzHXFsnFvxOQ+ls8eAB4G\nr5u9NGoii/faya6UADCcfXBhCnF7wppZsWQP9bj/4e+Sl4/5kjm8ZFIFa4Ed\n+x8nrwK5vDP1LOtw2q4/uZTkLaJ4f9B8lgwe61Yrz/KoF+Q49deRBIKxofdf\njc90RdNR7objMb7Kn2M6JIiJ8P1xgTJsmqf5xn1YdMgoXjLuhKY2rcj+UnR8\n06ygXfl9Wx2RY3hGpQAYsvGQRqHFK8Nvg6qr9XiyzU+Z0vVoM6HXcmu6mFjP\nrxPBOXyGdk7WEuilND3BHtUMyYCSnN0NM/LV25QI/ayP6OAZLtmQ6rW17ikk\nw1HLZhOUtxL6r1RESmDX6hov6URtXHblnA96FxlbFT3DnMW3KpfqP1LOOAPl\nxcgE9ouD6pse2pKSRHcX5zwRc8Gg3+5A/CARjOdCoUZqiwdxzA15HGvOO2Qf\ngPuf\r\n=ajTT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","types":"build/index.d.ts","scripts":{"test":"jest","build":"npm run clean && tsc","clean":"rm -fr build"},"_npmUser":{"name":"spinlud","email":"ludovico.fabbri@gmail.com"},"repository":{"url":"git+https://github.com/spinlud/redis-sliding-rate-limiter.git","type":"git"},"_npmVersion":"6.14.10","description":"Flexible and performant rate limiter based on sliding window algorithm with arbitrary precision","directories":{},"_nodeVersion":"12.20.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","redis":"^3.0.2","express":"^4.17.1","ioredis":"^4.19.4","ts-jest":"^26.4.4","ts-node":"^9.1.1","supertest":"^6.0.1","typescript":"^4.1.3","@types/jest":"^26.0.19","@types/redis":"^2.8.28","@types/express":"^4.17.9","@types/ioredis":"^4.17.10","@types/supertest":"^2.0.10"},"_npmOperationalInternal":{"tmp":"tmp/redis-sliding-rate-limiter_1.2.0_1610118002982_0.8951942014088372","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"redis-sliding-rate-limiter","version":"1.3.0","keywords":["redis","ioredis","rate","limiter","throttle","sliding","rolling","window","express","middleware"],"author":{"name":"Ludovico Fabbri"},"license":"ISC","_id":"redis-sliding-rate-limiter@1.3.0","maintainers":[{"name":"spinlud","email":"ludovico.fabbri@gmail.com"}],"homepage":"https://github.com/spinlud/redis-sliding-rate-limiter#readme","bugs":{"url":"https://github.com/spinlud/redis-sliding-rate-limiter.git/issues"},"dist":{"shasum":"87ff48b939e34f63019e146956bd670ade4eea3d","tarball":"https://registry.npmjs.org/redis-sliding-rate-limiter/-/redis-sliding-rate-limiter-1.3.0.tgz","fileCount":44,"integrity":"sha512-7dr9/GED9+mwmauTq7BJkeErqRdxJo6vniLGGpBTiCI9JvJjjOip3AVADqP3UXXXD+nFn4PSVKWVI4S2sMsf+g==","signatures":[{"sig":"MEUCIQDxDgqRdaDCaKfFw83j3B6vgpVU9JvC3105j2nfsQFzUAIgP3zSrOTIh46XMe1QT2vgGxGf9a5wLG9hu0So+DdzbH8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108036,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf+H46CRA9TVsSAnZWagAAnFIP/Redmm1ZklqKyImzzu+Q\n4dNrpYaWZmdcbc+YVedQKFhluTo7IbGTroofbGy0cmvt+OWHBOXsXvHp2XyQ\nEIvpP4RJBUQ3aPuT3VWlK/FSfoolBWku7EmQ9o+x93ofLRJOohZJmItQq7Dz\nnf3ZgFp2srNZz9JBXqxucy8oh+ZYcV4TCqcDLU5x7ct8Wq846BZfI9TdQFP6\nh3BLlr/txSLtJQ7uCJSQy8SF8J495qPO5f5f12w1SPx9ZcsGyUAGBrZOOkUa\ngY0Xg8MCsIlOIeXzYK/IoI31BWqna9FFMQc09U54A1Iwv3zUVloBaWN91dF2\nl5Ua48h3nqKdkLBg7gA5wNrD3JTbjPol17thN8br3+sNEi2pr9HjPiAxD7By\n06uFq4k3K35QVLy8JgTqmezFRp9g048ZJcJ9CAdxpqHUMWpjnRO3MCe8UQ1s\npwRClS17sJSRYdDUvYTC7jJcFlvT0XM1Xe2lUdizP2eS3lnhi1mV1SyuusuJ\nPdje8u6mTmQV0LAFwNYmR/2sU8S4FkjkFmuOfIxSRK5wr9fnexJL7lqcC4hM\n2k5aDQYi5Grqt23XfPVaH+AGiye1cHpGOs9zFYjIx/oJ1S0MQKbF1i8B2R79\nfCTPzfpU/xHE/H368zrbu5enX/ZL6l7Yu9AVIzUlGbybRCM6r6KuKJTQ5Eq3\nHYBW\r\n=sPTj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","types":"build/index.d.ts","scripts":{"test":"jest","build":"npm run clean && tsc","clean":"rm -fr build"},"_npmUser":{"name":"spinlud","email":"ludovico.fabbri@gmail.com"},"repository":{"url":"git+https://github.com/spinlud/redis-sliding-rate-limiter.git","type":"git"},"_npmVersion":"6.14.10","description":"Flexible and performant rate limiter based on sliding window algorithm with arbitrary precision","directories":{},"_nodeVersion":"12.20.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","redis":"^3.0.2","express":"^4.17.1","ioredis":"^4.19.4","ts-jest":"^26.4.4","ts-node":"^9.1.1","supertest":"^6.0.1","typescript":"^4.1.3","@types/jest":"^26.0.19","@types/redis":"^2.8.28","@types/express":"^4.17.9","@types/ioredis":"^4.17.10","@types/supertest":"^2.0.10"},"_npmOperationalInternal":{"tmp":"tmp/redis-sliding-rate-limiter_1.3.0_1610120761919_0.039224368659183106","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"redis-sliding-rate-limiter","version":"2.0.0","keywords":["redis","ioredis","rate","limiter","throttle","sliding","rolling","window","express","middleware"],"author":{"name":"Ludovico Fabbri"},"license":"ISC","_id":"redis-sliding-rate-limiter@2.0.0","maintainers":[{"name":"spinlud","email":"ludovico.fabbri@gmail.com"}],"homepage":"https://github.com/spinlud/redis-sliding-rate-limiter#readme","bugs":{"url":"https://github.com/spinlud/redis-sliding-rate-limiter.git/issues"},"dist":{"shasum":"102eb40b7f5c1fe21a5dabba37e9896e60ba321b","tarball":"https://registry.npmjs.org/redis-sliding-rate-limiter/-/redis-sliding-rate-limiter-2.0.0.tgz","fileCount":44,"integrity":"sha512-CqjzXe9USlIyLAcnXC6soQubGG3106r5P9I3Rbe2uwDetk8VPUoYhNOkd5Y7ME5gw7R8aXZ19N+TH/pGZ+u8sA==","signatures":[{"sig":"MEYCIQC9QKaw/y+DeUaNaHU4qLvZckGzVsrEDTrneNunuOCu0AIhAP0fz8zftC0dHq4CY8jYWc+t+PmWJcSr4TDJ7q46Egv7","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":109572,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf/bAaCRA9TVsSAnZWagAAGWQP/18BW86eJZjTPinl/aYq\n0wOh0udx942u3Y6+VeVsmwxhra277tB7uw4/djuarKp2SwpdB1HAX31ADpY+\noYgqNpaYrkZC0CGm4yYzPrbucKJw/8oh2o7AAjrw+W7WQFQ7+FmNhEC0f3Gk\ndjTj9Hs0S+ab7u6y6vICWhovG4kEPO63K7ht/Uy3+jWY22kgntqbmv613/y4\nsUISTYllyRUWtFqOUFd6PfE7yVAiHMrpsk1sYJ0VG427aPftRmYyAP9jlPGr\nY1s9xmZM3oRv93hTzoI3cR27lZ7r/w7yObBptJbAuygM2kajq9/L1gbhEIkn\nSqZcHGzup6r51TLGTLWmT2fj0XpERcwAgVIUtnhGJqUs6NsePZOR7gX7bMAb\n70hCHTm8goofyr8DYL17ESHTa8o07BZb7jXwKMWPSkCOohTorleZKevzPRGc\ncUHP0COJZc9p5iJKjxni7Gh1jLB+PjebNFvAQKuHQ/UnlagF+rM0v9Ekn5um\n86TwJm3oFYySAHjZFux3y8zSJLYcqtFbhwPyCptVFYjQ01uGPlDvcCB4Jen/\nIF7SK63GWqPIlnBanWK+RFzhiLDJ896aNSQw2Q/dtBlwxygXOwqXAYUsIADC\nwdYptcFQxEeHQi6IepEBJGksYVTg2GbKF+8ErTT6YcVlsEZB9YGsjvoXQ8qe\nl/Rp\r\n=R75n\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","types":"build/index.d.ts","scripts":{"test":"jest","build":"npm run clean && tsc","clean":"rm -fr build"},"_npmUser":{"name":"spinlud","email":"ludovico.fabbri@gmail.com"},"repository":{"url":"git+https://github.com/spinlud/redis-sliding-rate-limiter.git","type":"git"},"_npmVersion":"6.14.10","description":"Flexible and performant rate limiter based on sliding window algorithm with arbitrary precision","directories":{},"_nodeVersion":"12.20.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","redis":"^3.0.2","express":"^4.17.1","ioredis":"^4.19.4","ts-jest":"^26.4.4","ts-node":"^9.1.1","supertest":"^6.0.1","typescript":"^4.1.3","@types/jest":"^26.0.19","@types/redis":"^2.8.28","@types/express":"^4.17.9","@types/ioredis":"^4.17.10","@types/supertest":"^2.0.10"},"_npmOperationalInternal":{"tmp":"tmp/redis-sliding-rate-limiter_2.0.0_1610461210126_0.01837108160009171","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"redis-sliding-rate-limiter","version":"2.0.1","keywords":["redis","ioredis","rate","limiter","throttle","sliding","rolling","window","express","middleware"],"author":{"name":"Ludovico Fabbri"},"license":"ISC","_id":"redis-sliding-rate-limiter@2.0.1","maintainers":[{"name":"spinlud","email":"ludovico.fabbri@gmail.com"}],"homepage":"https://github.com/spinlud/redis-sliding-rate-limiter#readme","bugs":{"url":"https://github.com/spinlud/redis-sliding-rate-limiter.git/issues"},"dist":{"shasum":"76eaa2e4b81028360fdf60616fc51a5ab7fc4fe5","tarball":"https://registry.npmjs.org/redis-sliding-rate-limiter/-/redis-sliding-rate-limiter-2.0.1.tgz","fileCount":44,"integrity":"sha512-hgw3hno0/BXot18EBcuaBqh0IfADh+xnQy6fu3+LeV+0a5iEYLnck8lKlNuP9vpFu13q3vBIAqiUTN6QeXmr7A==","signatures":[{"sig":"MEUCIQCt6O6q93PkpaXC8o0l/MY7IE5/YVvymgRL3yWY0ZpQRQIgWgYPNSS6/v5YCP0AfPSFkEeuwDUXeJisYaQqX83jT3o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":109242,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf/bVeCRA9TVsSAnZWagAASqEP/3SppOWmgrdCCqhKsmOy\nR+aMEAePGEoquw52Af9w3Q+pP1FsWB6GIi2EE4QilUa+MyhsTEyTcQLMNNXv\n6pGdlEQXPnk3uSStdJBDxpkfKC2S8O0DofCKUbPGMQTS6omnOVb38UMojv41\ncFkURwDzfn1RtZd/DbfeEbY5Tku465DTAkLPUBarKFt5JWDx81eDyVyAFr5Y\nf++gxNvR7DHgzMnD2cmyl73VO3p7aW3N1PJXo/BA1A7rCBfWpJntGP20oHDf\nWGhW+ERGJW6m1yUnvZeVucOpDeqKwN8RC81uU1o+XVHrqq3ZdKZUb+x3ydnz\nGa4fh8g+eRUnsnh9xlnXtpA6SeCLI2dkoM/3bsPscKR+7D1MuY+zEf78FRh3\nSAGQjDjBMM5JSIUd2B+KZHe6fvz9IxA/q3mvpT9G7Id9tvuTaCvSfZE7zJeT\nXcYxZkFJmNDY0nj+vh2KuGUtCFRrZJU4dfsnxAU3HUVwwGPnAD1U3uEcvfC2\n//BeupGj3yY/TR0o2mLjhlzc7zBU2OO9HiIcSMc3SaV0toIC/PPa7flvW21m\naj4CWslnw88n/9JjkKPgrEavgySMHHhN54dLKhbAlAt2E14XZ15XVHzswfmE\ndlZj3cmCO59uXovJ7GB6Depgyqxqb7CqMhkLnxn/o4BZ0UUvCcrfMyE8Sz03\nyWQZ\r\n=uhpw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","types":"build/index.d.ts","scripts":{"test":"jest","build":"npm run clean && tsc","clean":"rm -fr build"},"_npmUser":{"name":"spinlud","email":"ludovico.fabbri@gmail.com"},"repository":{"url":"git+https://github.com/spinlud/redis-sliding-rate-limiter.git","type":"git"},"_npmVersion":"6.14.10","description":"Flexible and performant rate limiter based on sliding window algorithm with arbitrary precision","directories":{},"_nodeVersion":"12.20.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","redis":"^3.0.2","express":"^4.17.1","ioredis":"^4.19.4","ts-jest":"^26.4.4","ts-node":"^9.1.1","supertest":"^6.0.1","typescript":"^4.1.3","@types/jest":"^26.0.19","@types/redis":"^2.8.28","@types/express":"^4.17.9","@types/ioredis":"^4.17.10","@types/supertest":"^2.0.10"},"_npmOperationalInternal":{"tmp":"tmp/redis-sliding-rate-limiter_2.0.1_1610462557557_0.5532617311104782","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"redis-sliding-rate-limiter","version":"2.1.0","keywords":["redis","ioredis","rate","limiter","throttle","sliding","rolling","window","express","middleware"],"author":{"name":"Ludovico Fabbri"},"license":"ISC","_id":"redis-sliding-rate-limiter@2.1.0","maintainers":[{"name":"spinlud","email":"ludovico.fabbri@gmail.com"}],"homepage":"https://github.com/spinlud/redis-sliding-rate-limiter#readme","bugs":{"url":"https://github.com/spinlud/redis-sliding-rate-limiter.git/issues"},"dist":{"shasum":"774f49d667a319540e22fdd60ab9077a44252e7f","tarball":"https://registry.npmjs.org/redis-sliding-rate-limiter/-/redis-sliding-rate-limiter-2.1.0.tgz","fileCount":44,"integrity":"sha512-G8U7XoL6+c5xIXd/duUg72V1K6tIaMBtzAoakQ8ALRM1Wmsq6KJStAuLQ/Dk1rqPP8CXYhk48V+onkFQ4j6r2w==","signatures":[{"sig":"MEYCIQDI2WOxp5sVSEUZBBwblDdPN13kw7+LZDdMQl4iOvrMegIhAMhwowGAvXGo+kYYkEwQ3sM2Vc7YKDWWd73VbCoA7MGU","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":114868,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf/cYiCRA9TVsSAnZWagAA1Q0QAIej7Vo0QEQaNNYQhaIK\n71xTSVF8mhqvtd5d4VKIdoUzId+8gFGTUwW91DVPCxSPFGsjQRxy3lG81MGa\nTtuCK7nhxyxJG6Tr6POWodD56GPf0d88yp7S356zF5Ut+YUipjKOxEF0vWq8\nRWaW0j3CWWdLxgohRVmgyVwWqnotJC53VBZ00Z3h6nolIANPp61qcXdyiCmA\nQAPmEtneGhwE91bnRFWzuBlPDpfwNzNf67RC3Oj1V6Q8U4+VFUDOI3gi9vmJ\nxGC8TV59kBuVEyzljPgDgvYCt++R5q/0fBsjL4F4oLNqXyVFgsGkbxJlX2LR\nx+WNnWwfyVyZB5bEZf9DdPR6emJPJDQLJOQJLPzg7qoTTue8/uHwmTFhyzMI\nw/AapMzM2bziS4pg975TFvrzUCZm1d93IafrbsQiU++8Ro1Fntr8iVNvhU/e\nHJ45vBaYxaNkVx+TauGvpWIgSZBCVbM2xH86qyK9bWsYINoZRQdnXp3ggqDM\n0gogoUgTph9hTWhlMyAfngTCNdkLzuwhEG/gcXPdKDJnDKjkkod855CUWD6q\ncGnhTEzn4mqv68Qd8FyAsi9hZS6ZFweOt25eIlPbufanAQvxlc/eVo6KVo5u\nMcAv9s8jCcPjY7iIMGLh8strEk3qRC/O/WEGvVuWhU7Po2hgkS+5D2Amf/6p\nyFKO\r\n=V53A\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","types":"build/index.d.ts","scripts":{"test":"jest","build":"npm run clean && tsc","clean":"rm -fr build"},"_npmUser":{"name":"spinlud","email":"ludovico.fabbri@gmail.com"},"repository":{"url":"git+https://github.com/spinlud/redis-sliding-rate-limiter.git","type":"git"},"_npmVersion":"6.14.10","description":"Flexible and performant rate limiter based on sliding window algorithm with arbitrary precision","directories":{},"_nodeVersion":"12.20.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","redis":"^3.0.2","express":"^4.17.1","ioredis":"^4.19.4","ts-jest":"^26.4.4","ts-node":"^9.1.1","supertest":"^6.0.1","typescript":"^4.1.3","@types/jest":"^26.0.19","@types/redis":"^2.8.28","@types/express":"^4.17.9","@types/ioredis":"^4.17.10","@types/supertest":"^2.0.10"},"_npmOperationalInternal":{"tmp":"tmp/redis-sliding-rate-limiter_2.1.0_1610466850369_0.8048221747159481","host":"s3://npm-registry-packages"}},"2.2.0":{"name":"redis-sliding-rate-limiter","version":"2.2.0","keywords":["redis","ioredis","rate","limiter","throttle","sliding","rolling","window","express","middleware"],"author":{"name":"Ludovico Fabbri"},"license":"ISC","_id":"redis-sliding-rate-limiter@2.2.0","maintainers":[{"name":"spinlud","email":"ludovico.fabbri@gmail.com"}],"homepage":"https://github.com/spinlud/redis-sliding-rate-limiter#readme","bugs":{"url":"https://github.com/spinlud/redis-sliding-rate-limiter.git/issues"},"dist":{"shasum":"29f7e4fc39a31fa847556827e39c5d46d9945663","tarball":"https://registry.npmjs.org/redis-sliding-rate-limiter/-/redis-sliding-rate-limiter-2.2.0.tgz","fileCount":44,"integrity":"sha512-Er1gKfi3EkMQbSFnC5zQY/sVzrtl4puKy+It3zvThv8YH3Jb52dXy7nlB5qcdTw16PgI7Nq2KBCLG1JRdZqVCQ==","signatures":[{"sig":"MEUCIQCmCmdu+p4wVNhaHavAP7NBNx6DxlTGX5+TebeOP+YinAIgRAJ2r85w/MJe/zXrYiSBbVnekaFc3X1ieZP5F1FDI+8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":117666,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgAVs5CRA9TVsSAnZWagAAtb8P/2vlN1bMQxP12jdJvIcC\nQlNex/fpbENpCnMDHchC+WdX11/LZkx91Wvu6ew2oPjLSZZGqeKkwthb0FzU\nT0WfY9OLl+OGdyzXKv058xwz4nMOmLCMJlVHgEIoQdOb/mx1IKiBokWVJTZi\nGbzECTJyRpie3X1bXqvQcLCpjFZw4eJIenVC5Job5z2wxHgRS2JYod5hiM4k\njx+0hvBmP64ePQPm8X3ZqUbKqjV3tbfOs027o4txPhrAoakREtsJOkd42iVY\nPHpS5sD6Ml+T6lfijIHNhSYqZYfpWdabRR/volNYAVN82kSsqPaExpNDv3Sz\ni0rAhRr0umi6nTZeaxD3JCkV6ULDbfcTlLyNf9l5slgxRYjzUTyhh+ZbMaEP\nm6+IUmyprRqXOa9eNCYpfVw+zuSjOUPmAH86yjtcX0IlIUyyi3LjUxkNEi51\n89PJo3MFlv3GbFxovR3ROmaBcEeT1qPr53lZuojTHV0uLZk58Cf4i9ZyKcY2\n7nfOLUk07QUKqOGu+IWcn284YpCBXDKOH0E7j95ioxUJVYa1c2MqoHoSH3Ck\nkUmBYlc7sdh3HSOeWI8mlRraTf8lv0H2uLcx+Ry5BSp29seVqcavFZGKG9M+\nm3PHbLab8ECZELZrTrfg0GTgjfmGZmzpPz8J2zMXc2RDiMdpO9Af7r6RF/Dv\n4Wpk\r\n=+Zyr\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","types":"build/index.d.ts","scripts":{"test":"jest","build":"npm run clean && tsc","clean":"rm -fr build"},"_npmUser":{"name":"spinlud","email":"ludovico.fabbri@gmail.com"},"repository":{"url":"git+https://github.com/spinlud/redis-sliding-rate-limiter.git","type":"git"},"_npmVersion":"6.14.10","description":"Flexible and performant rate limiter based on sliding window algorithm with arbitrary precision","directories":{},"_nodeVersion":"12.20.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","redis":"^3.0.2","express":"^4.17.1","ioredis":"^4.19.4","ts-jest":"^26.4.4","ts-node":"^9.1.1","supertest":"^6.0.1","typescript":"^4.1.3","@types/jest":"^26.0.19","@types/redis":"^2.8.28","@types/express":"^4.17.9","@types/ioredis":"^4.17.10","@types/supertest":"^2.0.10"},"_npmOperationalInternal":{"tmp":"tmp/redis-sliding-rate-limiter_2.2.0_1610701624739_0.20142278601951236","host":"s3://npm-registry-packages"}},"2.3.0":{"name":"redis-sliding-rate-limiter","version":"2.3.0","keywords":["redis","ioredis","rate","limiter","throttle","sliding","rolling","window","express","middleware"],"author":{"name":"Ludovico Fabbri"},"license":"ISC","_id":"redis-sliding-rate-limiter@2.3.0","maintainers":[{"name":"spinlud","email":"ludovico.fabbri@gmail.com"}],"homepage":"https://github.com/spinlud/redis-sliding-rate-limiter#readme","bugs":{"url":"https://github.com/spinlud/redis-sliding-rate-limiter.git/issues"},"dist":{"shasum":"c8bfac731e2811aff25b55f393b61e8802307361","tarball":"https://registry.npmjs.org/redis-sliding-rate-limiter/-/redis-sliding-rate-limiter-2.3.0.tgz","fileCount":44,"integrity":"sha512-e4i4Vgt5HqF1pfxKOSwCaCTgyAH1dNjJjRRgxKBfNB7mTSeZyJzEMxFVuBnf8fi9iQiy+xxUgP760Mmr/8ciEQ==","signatures":[{"sig":"MEYCIQCfh8ccL47nHLbMhbEahUvh2hlO51CKWimJyYKEoboj4QIhANs/EbkpsRqMwuDwaJ2zwiOb6XnD7pvqYILC691zVFzL","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":119959,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgBaKICRA9TVsSAnZWagAA6t8QAJqDaj85v6JKqBl0990a\novyGKrcC8szf/acZpFvubFdem6z+dHg4SwVdh3ClwJ7k2/ynQpCPNksFnHwu\nVbnlaeZOW4W3rkxJWYnncv2v8qtTWc8GEgUw4JG4JPY3R8A/BCq6ZIfFspQ8\nwK2pyd2QHn9ZURPNhiG3JfsN3AaxlN9IbOAJuzp123T7K3tm2QRMD7vfaxr7\nDGLq+yzXclc75ieO+zVTUVNuGd8mbHgZvadh8QTZ+6md3TavaTpHoN6YJ8z/\nCc3BSeKflElJoP6P9JxHB0Ym/0V9QhFRJ+nlpXPZqQ3TrDTdMYQWDXdERImB\nMqg6wAL8bYbUf6NqM5VI7vosJVo4+6jritieQ/AQB41Sly9zcErrpsFYlicQ\n2He5qr1n4PA4PpAi0fgEofHvSCa3NDFYzOC/CTlwxGo/NZn5Vlu8p1qmNbUP\nN2MhOqFrkswX6r7MsR2SIkSemn/HHSNjXRcw619Fd9tm9MgHQXYxljlTbELS\nu/Zye7rI4FbmRVRGNCtOKvgVo10V2z8Yxwj2KRP4bB9kVaLBzgpEA334smIU\nhZ1rWfmx4euHG3Qzo702O4sVbJbqJCGvvyzjzhXoqm5CT4CByKKcZJjSd5I2\naYRSfinzY977TmdU3vM2+uWOr0WLv2/me6k76n9IXbuzuVs9FkOwR8j07ODn\nCa0p\r\n=Es5w\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","types":"build/index.d.ts","scripts":{"test":"jest","build":"npm run clean && tsc","clean":"rm -fr build"},"_npmUser":{"name":"spinlud","email":"ludovico.fabbri@gmail.com"},"repository":{"url":"git+https://github.com/spinlud/redis-sliding-rate-limiter.git","type":"git"},"_npmVersion":"6.14.10","description":"Flexible and performant rate limiter based on sliding window algorithm with arbitrary precision","directories":{},"_nodeVersion":"12.20.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","redis":"^3.0.2","express":"^4.17.1","ioredis":"^4.19.4","ts-jest":"^26.4.4","ts-node":"^9.1.1","supertest":"^6.0.1","typescript":"^4.1.3","@types/jest":"^26.0.19","@types/redis":"^2.8.28","@types/express":"^4.17.9","@types/ioredis":"^4.17.10","@types/supertest":"^2.0.10"},"_npmOperationalInternal":{"tmp":"tmp/redis-sliding-rate-limiter_2.3.0_1610982024329_0.8736174463864055","host":"s3://npm-registry-packages"}},"2.4.0":{"name":"redis-sliding-rate-limiter","version":"2.4.0","keywords":["redis","ioredis","rate","limiter","throttle","sliding","rolling","window","express","middleware"],"author":{"name":"Ludovico Fabbri"},"license":"ISC","_id":"redis-sliding-rate-limiter@2.4.0","maintainers":[{"name":"spinlud","email":"ludovico.fabbri@gmail.com"}],"homepage":"https://github.com/spinlud/redis-sliding-rate-limiter#readme","bugs":{"url":"https://github.com/spinlud/redis-sliding-rate-limiter.git/issues"},"dist":{"shasum":"6aed41488dfc23f6cac203c7d8bd8d90a502e4d2","tarball":"https://registry.npmjs.org/redis-sliding-rate-limiter/-/redis-sliding-rate-limiter-2.4.0.tgz","fileCount":44,"integrity":"sha512-jaPHvmVGgtGmQ8f80+CkiCCGPKaRAX1VVi3OBiYCv+41Ztw9q4QyGqC4HFCiy0suP3bWjqCxcQzHSTLQLzYebw==","signatures":[{"sig":"MEUCIDqWLHVMxyyzOcjAZOrrgmuirqYMsr4e3cYRAFC00dVMAiEA4LvXGlUG/eaLQKYA3ytVIIIAhNB8i8A4vLSepk2rdcA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":119953,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgBaaxCRA9TVsSAnZWagAAfc0QAJhTrXfQPZyeX8R0ZG1f\nfZlCZxy0NtdZFEX7w6llw5EOQaEjzabzjMKlPB+PnQg923RM0UzFolBwKX7F\nHGFC7BYD6H9oVbb3+Z8ke95vQu0siJ215lV2ZYlPhyfwd93mEWmlaqBnTDws\n0JxJ6jabkE4uF8e2lZhj09Tsx0FYJgVq8Uia0NtMlQnXWcvHmPlWPnwqZg33\nsB4pb6m7HZL9NEPWA6UYtaGs6mofCU1zGRQERfHP+JXAnCcSaZbEmRa5u2R6\n73Tvj7T6XzAgmYgaYh2PjxF/ASBEHUbj6+PXGVQJND/L5bZZxFrpISKv/D/e\nnVyXAZjMVaJspdqzDrii+hkFB8SQym7ndNg/0M6ZrtFtfW7fi7W3Vh4W/2sJ\nsoFmPcm0yQ10wH5QhGz8p78LKmvxpl0nxchueaU0amhskZ2q1yefm+jumkoK\na4ToAtSQEU70wm6VK7lAuNRxlYkwHZNeTjRKGMsSYR2uVYx3D7BkThv/EjoT\nhPBhE9zoeGQeDd9J4oTcSOkfrxJ50B+tgFy0dU7iiR7tW7Us+hJ496Mmumkg\nfFuLZJBzuJD/vrvB2sVpV2K3TYXbT9vwruE6hUimJoMcCajZcpfkfpUfvYVw\n+cNi4qxZwA7HwQqC8xY0cSoOzKMXKqlDjsrW80eoTm8TNp6Cir6JJ0jDtq6l\nf2wl\r\n=jA5d\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","types":"build/index.d.ts","scripts":{"test":"jest","build":"npm run clean && tsc","clean":"rm -fr build"},"_npmUser":{"name":"spinlud","email":"ludovico.fabbri@gmail.com"},"repository":{"url":"git+https://github.com/spinlud/redis-sliding-rate-limiter.git","type":"git"},"_npmVersion":"6.14.10","description":"Flexible and performant rate limiter based on sliding window algorithm with arbitrary precision","directories":{},"_nodeVersion":"12.20.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","redis":"^3.0.2","express":"^4.17.1","ioredis":"^4.19.4","ts-jest":"^26.4.4","ts-node":"^9.1.1","supertest":"^6.0.1","typescript":"^4.1.3","@types/jest":"^26.0.19","@types/redis":"^2.8.28","@types/express":"^4.17.9","@types/ioredis":"^4.17.10","@types/supertest":"^2.0.10"},"_npmOperationalInternal":{"tmp":"tmp/redis-sliding-rate-limiter_2.4.0_1610983089473_0.882844844983496","host":"s3://npm-registry-packages"}},"2.4.1":{"name":"redis-sliding-rate-limiter","version":"2.4.1","keywords":["redis","ioredis","rate","limiter","throttle","sliding","rolling","window","express","middleware"],"author":{"name":"Ludovico Fabbri"},"license":"ISC","_id":"redis-sliding-rate-limiter@2.4.1","maintainers":[{"name":"spinlud","email":"ludovico.fabbri@gmail.com"}],"homepage":"https://github.com/spinlud/redis-sliding-rate-limiter#readme","bugs":{"url":"https://github.com/spinlud/redis-sliding-rate-limiter.git/issues"},"dist":{"shasum":"6bf15ac4b8f734594cf4783187d999ebee08730a","tarball":"https://registry.npmjs.org/redis-sliding-rate-limiter/-/redis-sliding-rate-limiter-2.4.1.tgz","fileCount":44,"integrity":"sha512-/BNo+prA9ghFYNwGKQs7uqaAvTcb5X10Dfq6z5jLSnvSna+k4+6TnSZn47+f9C5qMFuOtPXpaRhp+GoeI/chCw==","signatures":[{"sig":"MEUCIGfs7umumwSyHpzZNidqdKsJUafyFomIWe/BChIHp+WAAiEAumdK+IDEV0h7lXZvS8jxnrM0VfCY4G1j/cpQ3rVUvHI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":119956,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgBaejCRA9TVsSAnZWagAAa0IP/R3vitmDvircLE5iB0wn\n978hJK5M37iQ1+OR2ck9q4G5kJ++NRwd1LkCDyNd8FMxmQwxIy26pOgePXLX\nAFplsNj1giI64RApNpzerz7y5sAmHgeqFmUsA+ZOxQ9T9r9esYxHxE/zxczh\nNJroPBDmgz7LPRRVHN2rH+P72cM63bFoA6+ZDUYvb8o6tsSDOyBnnuVsTHOm\nP0ZjkC9fHH9TW1bVDldDkFgYVMCF2fbo7dmc9NRUZncfTaJaQmhXf4xemXrG\n8YtfDv4Q5mQGkE5rrd9uacBCTQS5LhszSBzdcvycCm9xAVYs3Cjt657W/ZCq\nbk6OKZNQW9YsLxAOv/PDKL4R2RcaaE83sSgOl6gbNjWFz8eelRoE+xlCaSNJ\nNRTMx52tck6U66FsQNdKxarKocjAJ8VhALvQBx5MihLaOQSYkAe9C2TRSarP\nGxkuoYrUtx8eORHfpQlQyoAq0j3ewS+RNvaZ4eBurFchiJwS5L3qHzQuGkLE\nl82nVc1XIPB4Br8IeW8FuhlhB8uyt/+gETVuMBStkyBGWFIHkClifh3KQXOl\n/sy+ATg5+KW2ullmjFDO2DosZFvREVSSqXcfkxvPzVD/tC+tqfgZJL7cAnl2\nZYUVgcbigBzDjiUEGO5UoNpq/LncAqbE2AGXuygkke74SDSRDXpOCC0B4KI9\n4Yzt\r\n=B14E\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","types":"build/index.d.ts","scripts":{"test":"jest","build":"npm run clean && tsc","clean":"rm -fr build"},"_npmUser":{"name":"spinlud","email":"ludovico.fabbri@gmail.com"},"repository":{"url":"git+https://github.com/spinlud/redis-sliding-rate-limiter.git","type":"git"},"_npmVersion":"6.14.10","description":"Flexible and performant rate limiter based on sliding window algorithm with arbitrary precision","directories":{},"_nodeVersion":"12.20.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","redis":"^3.0.2","express":"^4.17.1","ioredis":"^4.19.4","ts-jest":"^26.4.4","ts-node":"^9.1.1","supertest":"^6.0.1","typescript":"^4.1.3","@types/jest":"^26.0.19","@types/redis":"^2.8.28","@types/express":"^4.17.9","@types/ioredis":"^4.17.10","@types/supertest":"^2.0.10"},"_npmOperationalInternal":{"tmp":"tmp/redis-sliding-rate-limiter_2.4.1_1610983330558_0.5038584524445544","host":"s3://npm-registry-packages"}},"1.3.1":{"name":"redis-sliding-rate-limiter","version":"1.3.1","keywords":["redis","ioredis","rate","limiter","throttle","sliding","rolling","window","express","middleware"],"author":{"name":"Ludovico Fabbri"},"license":"MIT","_id":"redis-sliding-rate-limiter@1.3.1","maintainers":[{"name":"spinlud","email":"ludovico.fabbri@gmail.com"}],"homepage":"https://github.com/spinlud/redis-sliding-rate-limiter#readme","bugs":{"url":"https://github.com/spinlud/redis-sliding-rate-limiter.git/issues"},"dist":{"shasum":"c52cddebf046c774e51d90ce192177db9e320569","tarball":"https://registry.npmjs.org/redis-sliding-rate-limiter/-/redis-sliding-rate-limiter-1.3.1.tgz","fileCount":44,"integrity":"sha512-LUBptsL5xggqgH93gC/zwLpZ460Zcv5UkUHbCk74J6CBWnnScjnAjbN+OAo4jFnO0YF4n7tc+F9ZA5V2GFlN0A==","signatures":[{"sig":"MEUCIECv6efr3M4s3J2n4JL1s+SMEfISFuqowI+kVWLFYdNiAiEA8bRL6CWPQ8Zz75Ps5pdb0VbRaRDUkI4RRDzBTzNQAUQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108036,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgEZoNCRA9TVsSAnZWagAA/98QAKBq4/+ogBtBOaqrf/Sv\n0p4SJuKuqcVyNV5B7qa75h0Ev96S1qfMGnD4Di1RjeXKuKcycRaOTVPunOpt\no2MOow+BVaBYNHF6vAeAX8JqEsR7rjFnidPNlNl1qWPhgfa4z/nVcEVzURW9\nzgLQuW3WnAw+aqPZIIQek4MtVHRdQZ69xGq/IhRVh92lWfzNR8DW7d0cVFD4\nSCKsTtu6micyPz8rfa6+K1LRDhKN8jpjl6Q5qsWuzSuZ/4KynMB1u8g3UOWA\n1YARwqEtb6V0objv8sihxKl6gAMIpsqFcIybdyrfTYW90Nx1Kc8R3BHcMmTw\nIU45h6cdXRC/S5t0/lPFdJf9ph/QXr3Ryym2iefLheyihKnP4F76Fp9m4qld\nIfVzHWVgy440NJDAfTHAqFPZqdm4ZV4zfL11ZniXRtGgjmb3d7a9jZDyAq9Q\nue3KMKpEv+r4qsV9f99W1H3o5CaoWgshR1ftVe7kIKzEcq2V2dsvVZdgt50/\nQHwj9jTZIYYvzz9IuMBWGMMz5X5H0Sxxaul06zYBMGHwpuBrQLD+/3L8R98J\nF+bfP0WQMLY/ppOzoXctdjB14xo+Thux3492X/daiu73wPul5DE2uH7/1kSk\nEeHuAnuJyHEUlUqi1yeH60VrN/yhLcf1vdmD1qXQ+OmRStB5zSKZkir7QkEj\nQew2\r\n=1r/K\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","types":"build/index.d.ts","scripts":{"test":"jest","build":"npm run clean && tsc","clean":"rm -fr build"},"_npmUser":{"name":"spinlud","email":"ludovico.fabbri@gmail.com"},"repository":{"url":"git+https://github.com/spinlud/redis-sliding-rate-limiter.git","type":"git"},"_npmVersion":"6.14.10","description":"Flexible and performant rate limiter based on sliding window algorithm with arbitrary precision","directories":{},"_nodeVersion":"12.20.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","redis":"^3.0.2","express":"^4.17.1","ioredis":"^4.19.4","ts-jest":"^26.4.4","ts-node":"^9.1.1","supertest":"^6.0.1","typescript":"^4.1.3","@types/jest":"^26.0.19","@types/redis":"^2.8.28","@types/express":"^4.17.9","@types/ioredis":"^4.17.10","@types/supertest":"^2.0.10"},"_npmOperationalInternal":{"tmp":"tmp/redis-sliding-rate-limiter_1.3.1_1611766285008_0.9822937549693369","host":"s3://npm-registry-packages"}},"2.4.2":{"name":"redis-sliding-rate-limiter","version":"2.4.2","keywords":["redis","ioredis","rate","limiter","throttle","sliding","rolling","window","express","middleware"],"author":{"name":"Ludovico Fabbri"},"license":"ISC","_id":"redis-sliding-rate-limiter@2.4.2","maintainers":[{"name":"spinlud","email":"ludovico.fabbri@gmail.com"}],"homepage":"https://github.com/spinlud/redis-sliding-rate-limiter#readme","bugs":{"url":"https://github.com/spinlud/redis-sliding-rate-limiter.git/issues"},"dist":{"shasum":"e95bed310f46278bda15efc3fdb2c476cf5c2fc1","tarball":"https://registry.npmjs.org/redis-sliding-rate-limiter/-/redis-sliding-rate-limiter-2.4.2.tgz","fileCount":44,"integrity":"sha512-ci+06ROnKkuT27MU/8aS3/llwnuXHZdKXTmDD6gvWXBidv9Ge16isrz+P/aJvcZXXJ43uhrXyPRP3dM90bnMAw==","signatures":[{"sig":"MEQCIEPulhZQB4e1liwaR/F6uxlgq3Dr0sUd1ghfoZOn6ZPxAiAdfTZ3bp5JnOl/p5sPOIbXPVXPbp/pUIM65d3Wfdhl/w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":119862,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPhKvCRA9TVsSAnZWagAA4HcP/RkN2usoc+H72DsEgXGB\nbarcOA0PHZbrPMF/2SuRI0XGY4ZLztUEt3SGgu+GZ2hZD9D6wlCl9k6GKFop\nGqaxXP9MSgxYTrDh2IUKGqImxNfwPYVaVSYfX7PYFIJNHTys2anCKIIghEwL\n0cOrpl1hGONUmkSnbAULmvWOWUsXdfCLAJs9buoJ3kcSRlMFNYeOfaXny/Mc\nVhH2gbaCG9XT+QJG4FhiqruXRaUeAmoi3iWmuFj4MVHpW14A7WfisjtM0awU\ntOB2zlp5eZoNYDZxM323rwGOxWimOPlBBldLQMzUilpiQ1OeaF8M+J4Kgpb0\n8Tf4cJfWk0odCU0r+0lJ9xMZsRQ0V7Gm9BM8hhFM2GEjFaBYQUytCpci+eeO\nsV96hYhFGhSNP7lKlTOXpkrTtz95noyQzN1tba+r/D6ctgy/tyERY10oIX3O\n2/7qHBGmU1jtWCsk6R21mZEiaiqXfrHaAsembuq2WpipoMzTkcyaGOIYfrP7\nPh/4gRu2XWcBq3WLm7Sy3fWzetaK1mMME1cwwjnnCSbOhZxOnSACt5ZoT+Ol\nDSQz+HIjxG3pWkY4B9UUHaPFC1sZfYW5uGXiUIEknUF8RG4hCJIOE+xiOkDH\n2Q7GmitcnNgqK9QSeGdUZKOtRIY9ztyAcK/Xdc/ay3FO9nFJwtgGA1pjgAWi\nxjh5\r\n=wl/I\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","types":"build/index.d.ts","scripts":{"test":"jest","build":"npm run clean && tsc","clean":"rm -fr build"},"_npmUser":{"name":"spinlud","email":"ludovico.fabbri@gmail.com"},"repository":{"url":"git+https://github.com/spinlud/redis-sliding-rate-limiter.git","type":"git"},"_npmVersion":"6.14.11","description":"Flexible and performant rate limiter based on sliding window algorithm with arbitrary precision","directories":{},"_nodeVersion":"12.20.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","redis":"^3.0.2","express":"^4.17.1","ioredis":"^4.19.4","ts-jest":"^26.4.4","ts-node":"^9.1.1","supertest":"^6.0.1","typescript":"^4.1.3","@types/jest":"^26.0.19","@types/redis":"^2.8.28","@types/express":"^4.17.9","@types/ioredis":"^4.17.10","@types/supertest":"^2.0.10"},"_npmOperationalInternal":{"tmp":"tmp/redis-sliding-rate-limiter_2.4.2_1614680750741_0.7450458005905403","host":"s3://npm-registry-packages"}},"2.5.0":{"name":"redis-sliding-rate-limiter","version":"2.5.0","keywords":["redis","ioredis","rate","limiter","throttle","sliding","rolling","window","express","middleware"],"author":{"name":"Ludovico Fabbri"},"license":"ISC","_id":"redis-sliding-rate-limiter@2.5.0","maintainers":[{"name":"spinlud","email":"ludovico.fabbri@gmail.com"}],"homepage":"https://github.com/spinlud/redis-sliding-rate-limiter#readme","bugs":{"url":"https://github.com/spinlud/redis-sliding-rate-limiter.git/issues"},"dist":{"shasum":"762cdd700a895f6601c20100cc0fb16d8cd218e7","tarball":"https://registry.npmjs.org/redis-sliding-rate-limiter/-/redis-sliding-rate-limiter-2.5.0.tgz","fileCount":44,"integrity":"sha512-go3r+2Re/e+3lc5MNZ68mh0BlYTw58sH1vpT/vdmYEYEKTC468A2y3MgCYnznNDigGo7qheGMIv9GUv3pcU/Tg==","signatures":[{"sig":"MEUCIQDoYB+YPV4pm31m5OAPkOo1EqF5CSSUDHO8Fs9TkrpRQQIgaPRuc/eli4yDjEJ6dOMojqfWQ1jgYjyhgVAavwVy/5Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":119861,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgcrCQCRA9TVsSAnZWagAAqE0P/1dRRDE6uJ2d55KJAYC3\nrORVblkWspfqqShNBtAO19V23B1MSBS9+OUi5/9Imy/+BDmP8DUDU6M5fCFS\nXCDYflRBlWpIEc8E4oub2k9T6dRgqUixxyB3jrI/cG9CJNv4isoQUeyFuelt\nAbAhn3RPjKGupoaNyRQrKJ6Sl5tdI4L95lmxJGtCRl0jk2GeSpnuhVBCX9Ad\n+ORpw7LI2+8sULye/zEtMSfo7sA3QAMSOii3gCjD77Hk2+QMA7pulg4l62Jn\n7rLFGk8Qm/q2rnMiXh3s6NICyPen9P0UYWJdN3NTo8HOXjKa4boPYK+EMr0+\n9/o2hYTixUsmP3ZBWcQwNMdwcLHEyrCXXBkkPzZqyMJLzUPoVPOFKbJfpDyw\nn2ptDjvc4Xjy35cCTyAijetofP/AVuWtM65A2HF9eqSE4L6Bmy0BmKArI5La\nQGv6P+HfvlFtQ/assdFR1cw+NPQKciSNSOGr9Pws4LuUlm3uhJaq6U8hWLoM\ngcstlJBAIck/kcWhoEcpvB2r3SASVhUyZN/LXnJTEEQIydOIhmRrJppBwxOR\ncH1+yYHvNdTC4w+qv1KfGst0H6u0Lmf7XJEQ1P1Ul5eWCzwtB6ib2niKvwjT\nz7Ae6Q96lQiMQs6KZ42BOgBOhpEZq0O9aHCy/4tNeaD83+TtR29ef1+N6ocI\nQz0c\r\n=OKnl\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","types":"build/index.d.ts","scripts":{"test":"jest","build":"npm run clean && tsc","clean":"rm -fr build"},"_npmUser":{"name":"spinlud","email":"ludovico.fabbri@gmail.com"},"repository":{"url":"git+https://github.com/spinlud/redis-sliding-rate-limiter.git","type":"git"},"_npmVersion":"6.14.11","description":"Flexible and performant rate limiter based on sliding window algorithm with arbitrary precision","directories":{},"_nodeVersion":"12.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","redis":"^3.1.0","express":"^4.17.1","ioredis":"^4.26.0","ts-jest":"^26.5.4","ts-node":"^9.1.1","supertest":"^6.1.3","typescript":"^4.2.4","@types/jest":"^26.0.22","@types/redis":"^2.8.28","@types/express":"^4.17.11","@types/ioredis":"^4.22.3","@types/supertest":"^2.0.11"},"_npmOperationalInternal":{"tmp":"tmp/redis-sliding-rate-limiter_2.5.0_1618129040103_0.29793935459100096","host":"s3://npm-registry-packages"}},"2.6.0":{"name":"redis-sliding-rate-limiter","version":"2.6.0","keywords":["redis","ioredis","rate","limiter","throttle","sliding","rolling","window","express","middleware"],"author":{"name":"Ludovico Fabbri"},"license":"ISC","_id":"redis-sliding-rate-limiter@2.6.0","maintainers":[{"name":"spinlud","email":"ludovico.fabbri@gmail.com"}],"homepage":"https://github.com/spinlud/redis-sliding-rate-limiter#readme","bugs":{"url":"https://github.com/spinlud/redis-sliding-rate-limiter.git/issues"},"dist":{"shasum":"324c5b68b574a456bca4e55b483eb7ce36b4640b","tarball":"https://registry.npmjs.org/redis-sliding-rate-limiter/-/redis-sliding-rate-limiter-2.6.0.tgz","fileCount":44,"integrity":"sha512-Z3WUpJjYIByIeKVvypQVQEO/Uf2hmsja0O3GG1CVehgNJypzO504h+uyi2weDno3B98RBOkmtESaQb3DVqh5yA==","signatures":[{"sig":"MEQCICYg1QBksp1ea6yxwdAUcfYgFPdJ2YbSlrExYg9RzKZeAiAZDlfHuqqy+5sC3v4liySpRqck+OQfO+xjMy+5gLvnvA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":119861,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgoOGXCRA9TVsSAnZWagAAcSsQAIQn05hokUcsIk49VfOs\nURbNBvIYR20B6u/M9D1X5QoXnPMaiHZ98mlmBdklr1LQenJNEolEJdYRGb2/\nbgrQGOJrmaTpwsX2yEsg7tGa9nxs7VAYHVZ679DtrXOCh1sIBNPJ+l72soKv\nhhi0N27Im1/w3ivGYLDx2qBJWIDZj2PXkgZn8obrgFYEbVr29tDn9nJBee8p\nKkIWipsqqBV5qsoqDVSTVrWsjUfCA963uyPfxbM176JiyIPZTsA6TMncm1NB\njBEkU1PcEjzbsAmPiy0sL9KQfDduAC9lZH1y5IUQGJPF52u6xBHK/dLVEgcb\nPA2814zdT4HdcN5WX/oi8DwBQel8AMHgwfgWxx2zgcdsb/+Un/k5FpQoDEL+\ngs6ZOg49QpjOaExXM9GNBVDyycfjcuONZn6E/tjzNCxGmT7zZWpnbwHBMWjk\nnsTgKexjQwfpjYaJjRL1qjmcTPJgyvT1bp1EBKesdiojxzD4XLDYh7i7lXss\ncRfYBPOshTr4PYFj9pBMXAkXg5gZEttduiMPZNWtHm3kP4xEVKeBVYOOgs+K\nJyLv47HfG4ZZCHCMmJ3GYSD7aR7peKRXbij1Z5ET6nRyZOxKNPSQOhcVgsyt\nEKuwe+AbtPbMR+hdZ5EaRbdDftUf7kFaOL0eIz7oU+HaJcHauLSkBIu2ASNY\ncrbL\r\n=vCfF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","types":"build/index.d.ts","scripts":{"test":"jest","build":"npm run clean && tsc","clean":"rm -fr build"},"_npmUser":{"name":"spinlud","email":"ludovico.fabbri@gmail.com"},"repository":{"url":"git+https://github.com/spinlud/redis-sliding-rate-limiter.git","type":"git"},"_npmVersion":"6.14.11","description":"Flexible and performant rate limiter based on sliding window algorithm with arbitrary precision","directories":{},"_nodeVersion":"12.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","redis":"^3.1.2","express":"^4.17.1","ioredis":"^4.27.2","ts-jest":"^26.5.6","ts-node":"^9.1.1","supertest":"^6.1.3","typescript":"^4.2.4","@types/jest":"^26.0.23","@types/redis":"^2.8.28","@types/express":"^4.17.11","@types/ioredis":"^4.26.3","@types/supertest":"^2.0.11"},"_npmOperationalInternal":{"tmp":"tmp/redis-sliding-rate-limiter_2.6.0_1621156247399_0.9864959636495809","host":"s3://npm-registry-packages"}},"2.6.2":{"name":"redis-sliding-rate-limiter","version":"2.6.2","keywords":["redis","ioredis","rate","limiter","throttle","sliding","rolling","window","express","middleware"],"author":{"name":"Ludovico Fabbri"},"license":"ISC","_id":"redis-sliding-rate-limiter@2.6.2","maintainers":[{"name":"spinlud","email":"ludovico.fabbri@gmail.com"}],"homepage":"https://github.com/spinlud/redis-sliding-rate-limiter#readme","bugs":{"url":"https://github.com/spinlud/redis-sliding-rate-limiter.git/issues"},"dist":{"shasum":"231e593e72328aa197daac1073fb319288d50760","tarball":"https://registry.npmjs.org/redis-sliding-rate-limiter/-/redis-sliding-rate-limiter-2.6.2.tgz","fileCount":44,"integrity":"sha512-VOlKvSy/4sjs2+9Ew87p46VDZjkBOLEU5eNsEjBznPrGs7ueEHgN94S9DUi4o8U99ZZleDFtCwTuQMWBJcR2vw==","signatures":[{"sig":"MEUCIBqUr2mcBWJ23ZzJq0+r9IFEa2N36BHds0NQ0NLVPG5MAiEA3RIEWBtZXGe9YlNT6xAqZSi+vPtu1VPz5fUNsA+0zDs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":119861,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgoUteCRA9TVsSAnZWagAAwj4QAKJTd4nzZC33MVYvb7zK\nmR6+ClP9v1xqmytmmUQ7VaAzaV5uxXVuZl6ob9A1gtNLh5MoAC8+P2KOoPgi\ntb6dE5Z4PD/Mf6nge7YUUczm76vCQzDkTtlqK4fBGSZrQv6gm0OllVUL8tEm\n0hhjzw1gSp0ukZLmX9a1l55VEt1z2pu2ZoS8a+NsjAqsfYCSUzzkeBJi3mh2\nmYP1jPWf3oVcMOoNxjfDzd853uq7L84DhgOySdX7tL3tfIg4PGIH2r6Aqy7G\nFMQ65rDTmkTtxZC6lohw1g3hyCNVMMnVkRIxrYAkyfEob9rvHobarnajLcnI\nW509jrLslUmJNMGxXqxQ8MKwFiIPx5CPAb5B0UHaykPNVefdiOwtlO28J2qv\n7weOtKkZH8wjPbtN+kbyFHBBwpjLjzuYtNaOA6WQQpRstn1gQLa0feIVKpDE\nIqP7CyZmAzArQORTt2zcpFS7o8NH2QC7ecRI0TeLbhOOC+mxT5C7ycDvftNh\nsm3rulX3x0gHoPk57TCblp8IUBzozQS8gjwHVR4mp3YoEtglBvmCbXIBsr60\nXc+/32MOVYwkQk3TPyislQgIbA6EEjDiOUNuJK6NfK/si0E+2sbutwyGMkbt\nXCqCXpnvgevrDJvyQNN95tkg8Gk6rQrwyEDisgSneigY9VZAOZKGF5/4wICC\ni6PG\r\n=EKDz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","types":"build/index.d.ts","scripts":{"test":"jest","build":"npm run clean && tsc","clean":"rm -fr build"},"_npmUser":{"name":"spinlud","email":"ludovico.fabbri@gmail.com"},"repository":{"url":"git+https://github.com/spinlud/redis-sliding-rate-limiter.git","type":"git"},"_npmVersion":"6.14.11","description":"Flexible and performant rate limiter based on sliding window algorithm with arbitrary precision","directories":{},"_nodeVersion":"12.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","redis":"^3.1.2","express":"^4.17.1","ioredis":"^4.27.2","ts-jest":"^26.5.6","ts-node":"^9.1.1","supertest":"^6.1.3","typescript":"^4.2.4","@types/jest":"^26.0.23","@types/redis":"^2.8.28","@types/express":"^4.17.11","@types/ioredis":"^4.26.3","@types/supertest":"^2.0.11"},"_npmOperationalInternal":{"tmp":"tmp/redis-sliding-rate-limiter_2.6.2_1621183326026_0.11891641468377379","host":"s3://npm-registry-packages"}},"2.7.0":{"name":"redis-sliding-rate-limiter","version":"2.7.0","keywords":["redis","ioredis","rate","limiter","throttle","sliding","rolling","window","express","middleware"],"author":{"name":"Ludovico Fabbri"},"license":"ISC","_id":"redis-sliding-rate-limiter@2.7.0","maintainers":[{"name":"spinlud","email":"ludovico.fabbri@gmail.com"}],"homepage":"https://github.com/spinlud/redis-sliding-rate-limiter#readme","bugs":{"url":"https://github.com/spinlud/redis-sliding-rate-limiter.git/issues"},"dist":{"shasum":"2776488a3639dac9bcf897f0fa8dfed4a6a70561","tarball":"https://registry.npmjs.org/redis-sliding-rate-limiter/-/redis-sliding-rate-limiter-2.7.0.tgz","fileCount":44,"integrity":"sha512-TA9QcSTnZ+Hem9GJCQZUsjEiGaIxE2dhwuk3tQq6cucyz6+R2IEHuXSHut6Ce6EOf2OVlCBHKb36FAyR6B0DLw==","signatures":[{"sig":"MEQCIC1yFcBQQxHsynd6UAl1qr9pmzfO2ozMM5OJjvuKsZHxAiA5UMU4g8bLeyH9tYR8FjGfukFV28aUlJLP9LL2Z9R24Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":119863,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3X/FCRA9TVsSAnZWagAAQ58P/0Fq7uahBJLQI98DtFwT\nsSc96/aYUrs7iPWo+pv4EHk7N0l47QNFR2f+Ond/aY8RNBH0nxzJmAohkVvV\nnx9Y9nLJhalyJqx3KP71QmoS8Tfenmgz0A8GQxy0qRJnVOpc0wOZj+nHa+0s\nQIhNxvcGBe/3CJoOmuSGfT7U/ysaljkOO7pmJKja04A4BCgqiHDc1UPY0A93\nNI6G6ao7UF+nJpvUaT7nrwc4cyrIUSOddD65ITj5Ec6Aa47mRAEB6VIOyDmV\nzqh+fe0oshnEqfM8nTcbZsxyl1taWQVDAYu/U5Ph2d/lmsmub5FIRRmjKCjV\noKNKRO/r8ZkZLke7E5uUHO3TgWiIqdc/4rBr+I+sZ+PJcjaQ39jqWV65x7Cc\nWsZxq4vp5ydTSRpoqD9CE1Nzirya6tPtjf2ibOPemsE0HFWNypOU1oLStrZL\nlwWGDHClIQHM0IcgXrrrvLZchb8lDpYoaGtCzZy7WQrwckzPocv5CzVxnEFD\n5rLWUL5rar3QrEGlmkJtmXJ+hCsnNsQkKUlVN70ACvqYiOBVG2QquRPxj5Zz\n/cM7pQ7mhekp2fKS+lLQEw6d0zL6JJEFcgGOU7goc9XF8jOsJtkXlbMUvdq3\nbBLexKxlXmO4VAFCp7pNCZ1WRy9B1eI3llHgUlYejZbAekoaXYaA5IGjubD9\nnqOJ\r\n=iTcP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","types":"build/index.d.ts","scripts":{"test":"jest","build":"npm run clean && tsc","clean":"rm -fr build"},"_npmUser":{"name":"spinlud","email":"ludovico.fabbri@gmail.com"},"repository":{"url":"git+https://github.com/spinlud/redis-sliding-rate-limiter.git","type":"git"},"_npmVersion":"6.14.11","description":"Flexible and performant rate limiter based on sliding window algorithm with arbitrary precision","directories":{},"_nodeVersion":"12.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^27.0.6","redis":"^3.1.2","express":"^4.17.1","ioredis":"^4.27.6","ts-jest":"^27.0.3","ts-node":"^10.0.0","supertest":"^6.1.3","typescript":"^4.3.5","@types/jest":"^26.0.23","@types/redis":"^2.8.30","@types/express":"^4.17.12","@types/ioredis":"^4.26.4","@types/supertest":"^2.0.11"},"_npmOperationalInternal":{"tmp":"tmp/redis-sliding-rate-limiter_2.7.0_1625128901002_0.3403521136944223","host":"s3://npm-registry-packages"}},"2.8.0":{"name":"redis-sliding-rate-limiter","version":"2.8.0","keywords":["redis","ioredis","rate","limiter","throttle","sliding","rolling","window","express","middleware"],"author":{"name":"Ludovico Fabbri"},"license":"ISC","_id":"redis-sliding-rate-limiter@2.8.0","maintainers":[{"name":"spinlud","email":"ludovico.fabbri@gmail.com"}],"homepage":"https://github.com/spinlud/redis-sliding-rate-limiter#readme","bugs":{"url":"https://github.com/spinlud/redis-sliding-rate-limiter.git/issues"},"dist":{"shasum":"78a958a290fc2d7d32c3486e96cd870f55088303","tarball":"https://registry.npmjs.org/redis-sliding-rate-limiter/-/redis-sliding-rate-limiter-2.8.0.tgz","fileCount":44,"integrity":"sha512-rsrBgeAgyCM3SJXz6gcZVUc6gQQOZC2480M7EgZJu+qnwbQ5iuvO+zJPF9+LN24nqH+djOCbIVUZAoCpMVMHtQ==","signatures":[{"sig":"MEUCIDtG9tsayuXnsjOrb/XaYXV2wPJjbi/mDFM+BfbPrynVAiEAgifyZ6Q28rmsBSMjKrd7tWh5BOZFWAjeiWHEAQpB6xI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":119884,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhM416CRA9TVsSAnZWagAAW9kP/RnpG0C0YexBP91lI/Gp\nYuTGSGSiE/oMsXsATNIkVC3YguoJeeR92EqPkSytMrnQj+ZgwG35ytMBYTm2\nM++RGgC4/+naqsC6tdP+Eg/DGkxn9TuA0TuvXV7mKlGZ7pH8SXNXZW7XX4tl\n3EenxpD7QuY6daoM1nIIahtUUpLCLetA2QvncKbhHymm7Tm23bYOrjCtaAxd\noeHUNIQDchqCyhqDMSxBAuQB+0ijNW3CG/bH/HwNJkwq+qTTpvez1BDsum6T\no0sAqAqc4QNeEqMz0EHJD339/1I7ul5FPRjbzAvv5ZClobPx0BaAwumczLNW\nhqZPFs/6wp1/oHhNR2IJPZFNiu6dhprSjl1JZ2NXXQk4UEvprCzHt5BWNv18\nHhYofGr6YLc068nJuZhXYM234FYv1jhUwAs+qSeqZgr4wKrC6keR7liZeDVS\nadJ0EfX8er69wN3fj9tepME74gumech21XfWP1B7z4SnP+6Gga8P/dcd030J\n6H4ibfIciDk+WqIv4e6E3RrPPf5t9voZ1EM0gRNNmxmDsSb8uFDsI7QJkPvY\nfoACLNBrdk2Vt/kpxhKo0gO7FwB4yOY9p/+2WqzW3Qyswrc1/skgfN/+BSqF\nZ6RQA151P8YHUOVB8NEsm8WTy1oJG0l+lu0xKTDXP06Qx5FpqzrUzjd/EA2S\nG7D+\r\n=h4bA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","types":"build/index.d.ts","scripts":{"test":"jest","build":"npm run clean && tsc","clean":"rm -fr build"},"_npmUser":{"name":"spinlud","email":"ludovico.fabbri@gmail.com"},"repository":{"url":"git+https://github.com/spinlud/redis-sliding-rate-limiter.git","type":"git"},"_npmVersion":"6.14.11","description":"Flexible and performant rate limiter based on sliding window algorithm with arbitrary precision","directories":{},"_nodeVersion":"12.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^27.1.0","redis":"^3.1.2","express":"^4.17.1","ioredis":"^4.27.9","ts-jest":"^27.0.5","ts-node":"^10.2.1","supertest":"^6.1.6","typescript":"^4.4.2","@types/jest":"^27.0.1","@types/redis":"^2.8.31","@types/express":"^4.17.13","@types/ioredis":"^4.27.1","@types/supertest":"^2.0.11"},"_npmOperationalInternal":{"tmp":"tmp/redis-sliding-rate-limiter_2.8.0_1630768506836_0.3490665778886137","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"redis-sliding-rate-limiter","version":"3.0.0","keywords":["redis","ioredis","rate","limiter","throttle","sliding","rolling","window","express","middleware"],"author":{"name":"Ludovico Fabbri"},"license":"ISC","_id":"redis-sliding-rate-limiter@3.0.0","maintainers":[{"name":"spinlud","email":"ludovico.fabbri@gmail.com"}],"homepage":"https://github.com/spinlud/redis-sliding-rate-limiter#readme","bugs":{"url":"https://github.com/spinlud/redis-sliding-rate-limiter.git/issues"},"dist":{"shasum":"71ecad20c1f45bc9612a6fd2f068d112b72cf670","tarball":"https://registry.npmjs.org/redis-sliding-rate-limiter/-/redis-sliding-rate-limiter-3.0.0.tgz","fileCount":45,"integrity":"sha512-QdCbTz/cn7BUBX1EfqR4HBawkTenYvGPcYN+o8/8oDkLoL8XE0O9SnR1PKr9V3uk8m4eLkpfjzz872EAlt6cfA==","signatures":[{"sig":"MEUCIQC6+ysRKc3wT3/eyD3cW4eMfSHCHOU9hscDQ31yAWc9DQIgc3INIvTDG3YLdL4J3dZaSNGxaBmV/beapbV+N2GHx7E=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":121221,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiNL5JACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmry1g//e1Cth6HEXe8Qu5d7IICWFx0Q0ZSZGg59c7b5U03RCNodxhSj\r\nleFRTP521UsM343u4It0w0RxVZkjwY/BM+yeCdpDPm+9Akq+fbtaNK1dLqzl\r\nqXXLpOl4k72AR9KaJyFx9xZ7S1azk9aDCEaXKR7DX+xOuIlojWklMnvsCr/J\r\nMPVlvEQrpgfocSmwqYcMjcZT/TjIVHNy8Vu7rV6O+tWg+2G9mHvpu2IH5Tvn\r\nCQPiY1xEi0Ldl9m1F0TXUZQ/Mmvs4crP75pt97uGvRDZCQ1OpBjfsxv8sAQe\r\nbxQCzO9BT9om/1/GWSw5Brh6ghFLFPSDMj0bS62JfebSs42eV8cJHIpYEX4U\r\noVIY8MsH3W+poQMf5nljGpVtAOwaYGvlHpSevNj02JDM5sQVULDnV39cjPDJ\r\n6Ju2eTgLrQCeAYmD1q1S98uMdO1DUeUgYRa4+4FIUbw318fs1NvLdUB/VXhJ\r\nI35wxNK+fW1zcSWgksrx38Z7JBmyBikOG5YX8njS5R3MQwW9Y/WnfIRg9Ko+\r\niRx19b5Pjx9ycOcsSoR+2MmWgTpXYJnn6fhjBqXjF4fNuVZOagOUEqxn4Tu/\r\nJwyi4/iAFg74GMPskxo6Xs+fkD1YY0y8+f5cUmql+ZXHBjaSfB3hLg/QgDGH\r\n4r79irWLAkW1iZeW6njZxDwYC2/GV/3n/kw=\r\n=P0tM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","types":"build/index.d.ts","scripts":{"test":"jest","build":"npm run clean && tsc","clean":"rm -fr build"},"_npmUser":{"name":"spinlud","email":"ludovico.fabbri@gmail.com"},"repository":{"url":"git+https://github.com/spinlud/redis-sliding-rate-limiter.git","type":"git"},"_npmVersion":"6.14.11","description":"Flexible and performant rate limiter based on sliding window algorithm with arbitrary precision","directories":{},"_nodeVersion":"12.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","redis":"^4.0.4","express":"^4.17.3","ioredis":"^4.28.5","ts-jest":"^27.1.3","ts-node":"^10.7.0","supertest":"^6.2.2","typescript":"^4.6.2","@types/jest":"^27.4.1","@types/redis":"^4.0.10","@types/express":"^4.17.13","@types/ioredis":"^4.28.9","@types/supertest":"^2.0.11"},"_npmOperationalInternal":{"tmp":"tmp/redis-sliding-rate-limiter_3.0.0_1647623753058_0.4680946265037882","host":"s3://npm-registry-packages"}},"4.1.0":{"name":"redis-sliding-rate-limiter","version":"4.1.0","keywords":["redis","ioredis","rate","limiter","throttle","sliding","rolling","window","express","middleware"],"author":{"name":"Ludovico Fabbri"},"license":"MIT","_id":"redis-sliding-rate-limiter@4.1.0","maintainers":[{"name":"spinlud","email":"ludovico.fabbri@gmail.com"}],"homepage":"https://github.com/spinlud/redis-sliding-rate-limiter#readme","bugs":{"url":"https://github.com/spinlud/redis-sliding-rate-limiter.git/issues"},"dist":{"shasum":"53a8bf3bd81abf162490d81e892a2d2d8f813bb5","tarball":"https://registry.npmjs.org/redis-sliding-rate-limiter/-/redis-sliding-rate-limiter-4.1.0.tgz","fileCount":45,"integrity":"sha512-oiaLL7y1FI9ILS7RMNINlz0tqZNGuhifhf8Tqr7nmMxnfdGYwFTbJUCfqrjKZphbnhYTKZ9ejnviV1W3fYGqWQ==","signatures":[{"sig":"MEQCIDosq+DtCq58GpfxBcf/8t/sNTrQLJVTHLrZEAhBkf1pAiB2nCVV4pKoLNAcnOMPYaVAD4PoX7yWvsHjrHdRbk5T4Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":121568,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiQtGIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoTZQ/+MdHnU1Oi3reh23PWGa1W2V/qeveERKAJE8ukIkPe1RNXBENu\r\nwwzC+bsZGripq5cLdXu7sF9kHnIb6H2AMsiTLPE4DdCIvrxbjI7D2V2GEvE2\r\nSRWOc1i6uOGVLKWpbn36QKNh3rYJaF7B2UazMnscWaFIBOnFmc5oJTOZbj0y\r\nz69qD2QInq9RQE79DHjHnszw+EKCjzIm5GSO222iVAGOVKVLmoGhKyotZb7n\r\n1KH7kvO1WabgmwMFeJeFzY01aVVKfqRN8BqyWoW4lUi6xxMZ8f7jlSgeglwX\r\nCz5OsDtH3CqefVvJ11b+1ONGDAx6wMdJxpbK+qmP4DEu+Yx3LC/taQwywS4A\r\n9YKWWznDLPgN0WCjhwOsRjnks457DhzBav+LETeFcNkI9Cnxffc9yZQl5kJG\r\n939B7mIWTtDlxDHn3faTo4aBaNRLsug5tqzigJCLhWq4M83G6dgmZQo8XYue\r\nlyT3sHCuStLMyEsVm67mA/jc60MibdiePxCE6p0aAQOWGJz72RBicp8izNIB\r\n9aHZQ6Iv/cpwIeBk04P3IS63CIxEoLOBvKVSzfG//pQiUVxTtykSEVCtQ+R0\r\nnaWb2oZcvOgidEoEHEGK7aglPBkOBbD6a2+uU8iVRuX31wPrgzWKiRMTYdI/\r\nbn1DYdjGwVpdhmoi8Ofq49y/ZGUKbsauvjA=\r\n=hb1k\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","types":"build/index.d.ts","scripts":{"test":"jest","build":"npm run clean && tsc","clean":"rm -fr build"},"_npmUser":{"name":"spinlud","email":"ludovico.fabbri@gmail.com"},"repository":{"url":"git+https://github.com/spinlud/redis-sliding-rate-limiter.git","type":"git"},"_npmVersion":"6.14.11","description":"Flexible and performant rate limiter based on sliding window algorithm with arbitrary precision","directories":{},"_nodeVersion":"12.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","redis":"^4.0.4","express":"^4.17.3","ioredis":"^5.0.1","ts-jest":"^27.1.4","ts-node":"^10.7.0","supertest":"^6.2.2","typescript":"^4.6.3","@types/jest":"^27.4.1","@types/redis":"^4.0.10","@types/express":"^4.17.13","@types/supertest":"^2.0.12"},"_npmOperationalInternal":{"tmp":"tmp/redis-sliding-rate-limiter_4.1.0_1648546184011_0.07607679230222186","host":"s3://npm-registry-packages"}},"4.1.1":{"name":"redis-sliding-rate-limiter","version":"4.1.1","keywords":["redis","ioredis","rate","limiter","throttle","sliding","rolling","window","express","middleware"],"author":{"name":"Ludovico Fabbri"},"license":"MIT","_id":"redis-sliding-rate-limiter@4.1.1","maintainers":[{"name":"spinlud","email":"ludovico.fabbri@gmail.com"}],"homepage":"https://github.com/spinlud/redis-sliding-rate-limiter#readme","bugs":{"url":"https://github.com/spinlud/redis-sliding-rate-limiter.git/issues"},"dist":{"shasum":"4851098df4a1995bf1011ff0c694faa6ff8b75b4","tarball":"https://registry.npmjs.org/redis-sliding-rate-limiter/-/redis-sliding-rate-limiter-4.1.1.tgz","fileCount":45,"integrity":"sha512-qoEzRVMHwvrMRnwr6hn0nLL4z1jBH2YDPprgB+IxqWnX/t/JLQuBZ+3lPr8Z5xU8dQVzmG97lQQs2pZCdMatNQ==","signatures":[{"sig":"MEUCIDXz54+BIzpXLYX+JKPjaWCgudrRAVSohfnIwMwAosNuAiEAse85J1GVpan76vaFfJ3ALO4MufWYX7xO6uHAPoOuHKo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":121568,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiUciNACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrdNQ//aZmTdccy1+25v/q3VHGRb2azaijSMynedn2RSuizoJOE+X15\r\negqEbTQxmlQVw6pxBSyk9H89wMbYRslGO7a+jj97Fzeclef6ok/fslhOeWlo\r\nRmCy1mPDCsxYo9GRhRcYqd4Li1oVoZmuC5P4h15ZXy/3f2hrD5bgVRJTpTpP\r\nAOBVZ+Qn9+ykgU43nwfLm6J05PZYcXAshZ3wNoQdrhAPX8jEbpa+sWmhFM/W\r\nLBgVx8Tk1/7Bt4xAlkeR9RzzpLPhKfKCnhDcLaeq3IiyaIS8omA19EYpcAiM\r\nmf4Kn+3b+ma7dLmbYPvQhj+Nb2gmOCJKoRYmofEKVc+NnGrvWT6gJ3qEVpYu\r\nWMh4LfDkT88gI8gGzTgJ0eSSgRtx8SdwVQodgUq0WlMolMLwNU09FXdAS1Ir\r\nYdcDYEe+LMmRQkA3H+la0JLiY5EIYban0ftl7yZC6v5HMLghcI/CCq0YIZhW\r\nf1TTD7dlBQhfOjzVA52zxXCiPCKT3PbuDx4XY1KaAyRBEw14XBhORNiu0Sq8\r\nlpCX4VNhtmRqV7wZR4rZEm96NqyCjEn31D8IXZ+RLnEwGF0LXP5plaJV64rf\r\ng3aXiU5tuiPdSE5ADDl1FYHeM7YQ0aamc3gmPP/sIHbckwx7vAZhGcw+qdaa\r\n32FDKH7E6VIa37SZzypR1jEZ7rAJPcrPLeU=\r\n=MMmq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","types":"build/index.d.ts","scripts":{"test":"jest","build":"npm run clean && tsc","clean":"rm -fr build"},"_npmUser":{"name":"spinlud","email":"ludovico.fabbri@gmail.com"},"repository":{"url":"git+https://github.com/spinlud/redis-sliding-rate-limiter.git","type":"git"},"_npmVersion":"6.14.11","description":"Flexible and performant rate limiter based on sliding window algorithm with arbitrary precision","directories":{},"_nodeVersion":"12.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","redis":"^4.0.6","express":"^4.17.3","ioredis":"^5.0.4","ts-jest":"^27.1.4","ts-node":"^10.7.0","supertest":"^6.2.2","typescript":"^4.6.3","@types/jest":"^27.4.1","@types/redis":"^4.0.10","@types/express":"^4.17.13","@types/supertest":"^2.0.12"},"_npmOperationalInternal":{"tmp":"tmp/redis-sliding-rate-limiter_4.1.1_1649526925619_0.09227107279768831","host":"s3://npm-registry-packages"}},"5.0.1":{"name":"redis-sliding-rate-limiter","version":"5.0.1","keywords":["redis","ioredis","rate","limiter","throttle","sliding","rolling","window","express","middleware"],"author":{"name":"Ludovico Fabbri"},"license":"MIT","_id":"redis-sliding-rate-limiter@5.0.1","maintainers":[{"name":"spinlud","email":"ludovico.fabbri@gmail.com"}],"homepage":"https://github.com/spinlud/redis-sliding-rate-limiter#readme","bugs":{"url":"https://github.com/spinlud/redis-sliding-rate-limiter.git/issues"},"dist":{"shasum":"4485141766e792944cf1f061d2f772b1f894c103","tarball":"https://registry.npmjs.org/redis-sliding-rate-limiter/-/redis-sliding-rate-limiter-5.0.1.tgz","fileCount":45,"integrity":"sha512-UjjExyvV8QZ60XpY2HmUHgZ6pdphIRaEOKpxOOZ7SZ0emCKVrGTgu8l/JWqYaOKKjXjBC2gmssAySxv4VuAnoQ==","signatures":[{"sig":"MEUCIQCv/CBnVdSgxhi+JmkNxSgcy8JPv7xdr9XAWDznKX7RWgIgXSip+dZdy60RH2M/+d+dPFrr251V0uyDKcVoRiRDXNI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":122166,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjBI6mACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpQ6g/6A6IF7aztRGKlRCn4QEcwtxoaWd5NRVVfhxQ2bdE5SqOjWjbY\r\nWkRzxc+ltdEPgZ4YqkcgTVrN2uLj0dloye2x/Z56qFznY+gU9uUJ8CGV36od\r\nEO51C5yk+kdMMGzwuMxNg6vyzKhHr4is9Z4Bjl+3STGklmIZpvtPZjaH+wX0\r\noKRhad3LzfRsXE84d6dwlQ2YtIec2QrBhgTbLgbd0Rtjv2SQ4GufgPVnD4eP\r\nBtZGMBX3LqDcwVmgpwFXqBCfkkpoUMwpKYiK157md8ffoBIRNqEaSQjS4/MJ\r\nlRzNwZ7qDCUJgWB2ru2qYtBwbuQ6FedMQkSfAZ4cxvN1BzSqZqytkg7PJYw1\r\nHcYOmssgIzWJdfrVISvAPFtsnu0cnxQB3feXF+cTKPO/bHiCjF1j+JEp9tI7\r\nAeSHBnsGpoA2IeogMU7yWDA4pSsAVY63vFmgZ4DuRoGi3M2cix5gTvq9xzim\r\nKm9aIx1cTPxCYFqs6+JXY1DykUH02AhS925lTTKjvvMN8s3HmPksktxV+PAF\r\nK/Y82CU0XWtH5ccf4JBMXNch3TcIMlVUxyAsYPnoAIoKLTse04nE9di9akSc\r\nqIJ9AdlOPMsxHd56g6FIGT0xW19LgxdNLJCiq+Kxn8zZtBQ6UcxVGG5OA2JF\r\nQwB8U8oAllBejekhtKQz7K1rrZ93XPQRsqM=\r\n=acs0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","types":"build/index.d.ts","engines":{"node":">=14.0.0"},"scripts":{"test":"jest --runInBand","build":"npm run clean && tsc","clean":"rm -fr build"},"_npmUser":{"name":"spinlud","email":"ludovico.fabbri@gmail.com"},"repository":{"url":"git+https://github.com/spinlud/redis-sliding-rate-limiter.git","type":"git"},"_npmVersion":"6.14.17","description":"Flexible and performant rate limiter based on sliding window algorithm with arbitrary precision","directories":{},"_nodeVersion":"14.20.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","redis":"^4.3.0","express":"^4.18.1","ioredis":"^5.2.2","ts-jest":"^28.0.8","ts-node":"^10.9.1","supertest":"^6.2.4","typescript":"^4.7.4","@types/jest":"^28.1.7","@types/redis":"^4.0.10","@types/express":"^4.17.13","@types/supertest":"^2.0.12"},"_npmOperationalInternal":{"tmp":"tmp/redis-sliding-rate-limiter_5.0.1_1661243046526_0.21024440440447467","host":"s3://npm-registry-packages"}},"5.0.2":{"name":"redis-sliding-rate-limiter","version":"5.0.2","keywords":["redis","ioredis","rate","limiter","throttle","sliding","rolling","window","express","middleware"],"author":{"name":"Ludovico Fabbri"},"license":"MIT","_id":"redis-sliding-rate-limiter@5.0.2","maintainers":[{"name":"spinlud","email":"ludovico.fabbri@gmail.com"}],"homepage":"https://github.com/spinlud/redis-sliding-rate-limiter#readme","bugs":{"url":"https://github.com/spinlud/redis-sliding-rate-limiter.git/issues"},"dist":{"shasum":"e85603066d715cfc183df338cf3b175b1f345871","tarball":"https://registry.npmjs.org/redis-sliding-rate-limiter/-/redis-sliding-rate-limiter-5.0.2.tgz","fileCount":45,"integrity":"sha512-mi+cD1xWf13uLC9w1GLRXVmfGnFJPVQs64Mgo0JedJkJm4fNIV4pwNlzsLGj3Ufcnr3A2ZpDWs7Cl7wI7JSrxg==","signatures":[{"sig":"MEUCIQDoCiG1M7+7Swx94SeYHKlTDH0QfkQJVWzZPjmTZkBT5wIgNPVPke2b3q3aCG74SXGlX/xrbL4uOKvCODad2fO5L60=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":122129,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjBJC4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrWXQ/+OY84sL74+oal0UKPQEkndd7mKXdcwaH3h7Fit6VHLLm25X6k\r\nUziool4YaszsHUskQJpF8FygNOe+YIKnzV1pHb+uGxFFEWgTikz3HvDN+ube\r\nASz9mjjfmsiLljU+8t9et+40PrlWebr7fiN7VqpQp/nETATldMqycI7Qh6Ry\r\n71mYIko6ymy2BzfahqXdKbl345I7WrteZ+veTiqQ32xois8RzZPXbQf0pdiG\r\nn7g9MjyU1KSpxe0pwYFfrnHk0yl8poK96Etvkh+wAkjOVpaW6sBtG66kBDJM\r\n9deTvXOCWA3kX+ZfqLgGAaijkcppsavrq9OYl5TnIu4+x2FqQ32lXjcrltP+\r\n3OYz3Aqw111lsXyXi9/wCFlYadCAMU9boWyLGAiupMTY6xUPXeKV9ewe0MP0\r\n9oKFhBaqOLAaY/L5cl9fYxYmX/uiG7TgndIsHvPAgND9S/8CyIr7n7+0PwEp\r\n18CAG3UtquNKZeVcJVmEInCXqCTZcJ6cR0S2prB8Sa6JtDlYMIunOyusZ5h5\r\nlO1/V5rrMEq0SXviSK/DCo14zzg6+1nIOCuGAy5/iVQ1YKKnrpsohbpXLl9+\r\nj6rM4rkFLtFu8/SkduFy129j3rPXM0NYGlwUW7KNM7e2DvJRSi1L4QhYLnk3\r\nuJsxmrgT86oQs4i8nIlFbBYnde4QBz2IT1E=\r\n=06hs\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","types":"build/index.d.ts","engines":{"node":">=14.0.0"},"scripts":{"test":"jest --runInBand","build":"npm run clean && tsc","clean":"rm -fr build"},"_npmUser":{"name":"spinlud","email":"ludovico.fabbri@gmail.com"},"repository":{"url":"git+https://github.com/spinlud/redis-sliding-rate-limiter.git","type":"git"},"_npmVersion":"6.14.17","description":"Flexible and performant rate limiter based on sliding window algorithm with arbitrary precision","directories":{},"_nodeVersion":"14.20.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","redis":"^4.3.0","express":"^4.18.1","ioredis":"^5.2.2","ts-jest":"^28.0.8","ts-node":"^10.9.1","supertest":"^6.2.4","typescript":"^4.7.4","@types/jest":"^28.1.7","@types/redis":"^4.0.10","@types/express":"^4.17.13","@types/supertest":"^2.0.12"},"_npmOperationalInternal":{"tmp":"tmp/redis-sliding-rate-limiter_5.0.2_1661243576367_0.9689880145443484","host":"s3://npm-registry-packages"}},"5.0.3":{"name":"redis-sliding-rate-limiter","version":"5.0.3","keywords":["redis","ioredis","rate","limiter","throttle","sliding","rolling","window","express","middleware"],"author":{"name":"Ludovico Fabbri"},"license":"MIT","_id":"redis-sliding-rate-limiter@5.0.3","maintainers":[{"name":"spinlud","email":"ludovico.fabbri@gmail.com"}],"homepage":"https://github.com/spinlud/redis-sliding-rate-limiter#readme","bugs":{"url":"https://github.com/spinlud/redis-sliding-rate-limiter.git/issues"},"dist":{"shasum":"b4d1849a8aa3cd40dfa3c03168158f37ed4f2dec","tarball":"https://registry.npmjs.org/redis-sliding-rate-limiter/-/redis-sliding-rate-limiter-5.0.3.tgz","fileCount":45,"integrity":"sha512-WyOU0tsDzcJH6SnGDMcdHfUaLhZR+4GxdkzjqzfvD+4ap9PN/FUzCnKUV4Laox3mue8sXClj8ZUcx6UxrxHwSw==","signatures":[{"sig":"MEYCIQC1LhVL5IMPYe31Xxj74foBQOO25LTi1b1LqKEomS/CxgIhAIKIgALj8U6yWf1kbt1oF6jGJQfhjJWhI4vlEQpRtBkw","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":122160,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjBOWsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpFwg/+LYN5hWUS/XV5rOrrVOOBsy94fY8h8TDkfT37KeEzCq2Mavss\r\nCyKzXH+ZeuQb8FqKd82Gc9PSo1WCnKOuXACN/qjjrD7TKTOG4r9b5wujTeb2\r\nph16CmaDlx0rWmFKnNBdHWKrBLG+aLbTMFzXqlC+C+to1cZswLHTn5PXwslA\r\nqa8d0znPjXoXGp/DCRTU1SDIvR+MobvZy20Rz/FeEGG4ZobNL3ULPIB/Gkc4\r\nj6wXUBZSIR5Xyzj3skWwgRbRLjF5vRrOo3/P2VQIFH/767EO+pZ5d+Y4gCxs\r\ndaN0JFtvXGfh2NLYn4YDwSeych3bBlgI0dLo52+nqjYEoQH2CmaYrxFIEgO/\r\nGK5hgrJ4T4JIwGAzW/oSVBJFj+fc70iZvTer7m6JTnYLthO20TXLKPZiiyTH\r\ndpPb/2yOVtwMq2Xfn85tGM69+gCfckjM6wlqLu3ay1WUrRTqPzqdhW31/Oy8\r\nr6hEpTWDH8KxXkdBLlYZEaH8Sj0smlWYTGWI42fVAoFw5N5ZFfsB4i7OOE34\r\nSiZmALKYnJxvCEwW9vFI3+x5lSJKWhXGySvWe78TQFHfDbJYsqIbPUKA56av\r\n9jfJMNd94+0V0XmOQU723yFn3JCVOzvswgC7VRK8IGp6TyvU5tqTHxjR7z75\r\nviWk/I6EumoVOugrh1BMkvVluRG17/eT8Qw=\r\n=Qo9N\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","types":"build/index.d.ts","engines":{"node":">=12.20.0"},"scripts":{"test":"jest --runInBand","build":"npm run clean && tsc","clean":"rm -fr build"},"_npmUser":{"name":"spinlud","email":"ludovico.fabbri@gmail.com"},"repository":{"url":"git+https://github.com/spinlud/redis-sliding-rate-limiter.git","type":"git"},"_npmVersion":"6.14.17","description":"Flexible and performant rate limiter based on sliding window algorithm with arbitrary precision","directories":{},"_nodeVersion":"14.20.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","redis":"^4.3.0","express":"^4.18.1","ioredis":"^5.2.2","ts-jest":"^28.0.8","ts-node":"^10.9.1","supertest":"^6.2.4","typescript":"^4.7.4","@types/jest":"^28.1.7","@types/redis":"^4.0.10","@types/express":"^4.17.13","@types/supertest":"^2.0.12"},"_npmOperationalInternal":{"tmp":"tmp/redis-sliding-rate-limiter_5.0.3_1661265323358_0.8385200649365672","host":"s3://npm-registry-packages"}},"5.0.4":{"name":"redis-sliding-rate-limiter","version":"5.0.4","keywords":["redis","ioredis","rate","limiter","throttle","sliding","rolling","window","express","middleware"],"author":{"name":"Ludovico Fabbri"},"license":"MIT","_id":"redis-sliding-rate-limiter@5.0.4","maintainers":[{"name":"spinlud","email":"ludovico.fabbri@gmail.com"}],"homepage":"https://github.com/spinlud/redis-sliding-rate-limiter#readme","bugs":{"url":"https://github.com/spinlud/redis-sliding-rate-limiter.git/issues"},"dist":{"shasum":"0e72cbd98caa24da79945f6952d8b557f6f2c2ca","tarball":"https://registry.npmjs.org/redis-sliding-rate-limiter/-/redis-sliding-rate-limiter-5.0.4.tgz","fileCount":45,"integrity":"sha512-i5w31iIFZjimB3Wq8v+qkGAw+pZa11TjsMs9uZPeVc0DiEivkhvM0/wZGsgalZ76WVbyDgpAKspZovnv4MU3Tg==","signatures":[{"sig":"MEUCIFyD2unv7Tsp5unfix1vDRK6xfLIEwcW22JqTgVwMCj9AiEApFnJfTF7Kdi9iONy2SRCutBA2bIHeUl6++tx+4FMOFA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":122160,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjVPgeACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrw6Q//XZroWrCAUnqAZiJL/mxB4ElpFAFQ0c5spGr8fuWEs9yB95zV\r\nPzu4ouEaSIe+M/Se4ZUs+KfYlRCz/RIvA1SJ3uFda3ZU1PTc5+B5TMeq+eq8\r\nDFllD7VcljWFbAoQDBcRHNJLzKsl8ca1PQy8spRPG7y9CNdU13+dgKJtgVBN\r\nuTqn897iWYJsTen875drA5Zlk+7gZu1qda3Wz7fT4R5T66R2ASsIxiwKHbj6\r\nH9poMd6mm/x6DclZvmfmBFQGyorjCKNrFpKsSxVen5W3RCBTjpUqYSYugOjd\r\nIdB7V/TXVUdr9OBXlCqRiG4zAu1YQgwPH/TN1jmjTtsbkz823oqtcu1JqOAe\r\nwF0oxsoiju4+rmO3LhgFnBKfvtYsk5hMT0ebywkU7nj06VrffFt81Tm44OP/\r\nEpOOJ6VjVRK+tsAqiw6FBzteXhpcDgho7VFg6fJL6nIeB1J84YzgmMu5IR+O\r\nhJdElmoEMCW85X3+Aa8PHYmcOOq7nl8QPUeJpdeQia2rOXdHpL715PLUijc/\r\nctXMsReUWG/L7GtuYeq+22UcBrPW2AD7A9IURv+BQK7yQc8jEmizRZohpGY/\r\nf5LJ3pdLcm0nq2fCsA2HwyTtrkewBe1DfYZI3i2+YOKubBsNfPxTsaQMmyqZ\r\nnRSYnhU4YRocNDTYDOrdRnuE+j5AHi2azuc=\r\n=yIcm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","types":"build/index.d.ts","engines":{"node":">=12.20.0"},"scripts":{"test":"jest --runInBand","build":"npm run clean && tsc","clean":"rm -fr build"},"_npmUser":{"name":"spinlud","email":"ludovico.fabbri@gmail.com"},"repository":{"url":"git+https://github.com/spinlud/redis-sliding-rate-limiter.git","type":"git"},"_npmVersion":"6.14.17","description":"Flexible and performant rate limiter based on sliding window algorithm with arbitrary precision","directories":{},"_nodeVersion":"14.20.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","redis":"^4.3.1","express":"^4.18.2","ioredis":"^5.2.3","ts-jest":"^28.0.8","ts-node":"^10.9.1","supertest":"^6.3.0","typescript":"^4.8.4","@types/jest":"^28.1.7","@types/redis":"^4.0.10","@types/express":"^4.17.14","@types/supertest":"^2.0.12"},"_npmOperationalInternal":{"tmp":"tmp/redis-sliding-rate-limiter_5.0.4_1666512926133_0.6369238446050143","host":"s3://npm-registry-packages"}},"5.0.5":{"name":"redis-sliding-rate-limiter","version":"5.0.5","keywords":["redis","ioredis","rate","limiter","throttle","sliding","rolling","window","express","middleware"],"author":{"name":"Ludovico Fabbri"},"license":"MIT","_id":"redis-sliding-rate-limiter@5.0.5","maintainers":[{"name":"spinlud","email":"ludovico.fabbri@gmail.com"}],"homepage":"https://github.com/spinlud/redis-sliding-rate-limiter#readme","bugs":{"url":"https://github.com/spinlud/redis-sliding-rate-limiter.git/issues"},"dist":{"shasum":"3076e800a6894ae8dfa8a7ca6217b172054c8c7b","tarball":"https://registry.npmjs.org/redis-sliding-rate-limiter/-/redis-sliding-rate-limiter-5.0.5.tgz","fileCount":45,"integrity":"sha512-JFDD1bYa8aUJnJ1JBTtlQUrP4gSjbUQRR18gTfm73hKNef0RinovklUW08ZTphG6w0u4QDq/AqhkAE4/UjrgHA==","signatures":[{"sig":"MEYCIQCE7CMPgdNggFn4Vd/bFEmAXv7xD57+05JjwVeH3/6muQIhAP3HJRrrngUJP8MMJnO36sLDFWSkhGu/PdCnK0/ImCMX","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":122136,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjiGrmACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpJgRAAlRfi8uy0suB0xMUfesim2IiJ7aLeBP6V6gjNZN8hpibaYUk1\r\nCTeaXVn7x5hVTmsF9M3ySh9LbmzxA5pjzKCumB9Vr1zzORSAs22l4SUYVDYP\r\nRHi5Vm/a3EGPLbNYKce8LBZgg4y8MCgBAMNHTI0SyvpnfXPH3hSeDCaSyl1a\r\nfGZDFQJr8PzmwIynysVffIOHUaV3gVyWOBhkCDEKpVdNMQ/dewOr55R0kwEA\r\n0khxXCtSaQxVlRYwnw4dOkc0UG+41iN/ZNtHrUnMT9htn1UN2sjOwl/2Nf1s\r\nEb6mHXzatc6BXZQVVxNzoYB5LbF8+22Yu4wQrnCOE/0LUgy61sq14ys7an+p\r\nDHKuaKplPik2GFPBl31qNN0GLSCqAX5SQH3YPha5lXgJBEb2RkfiMlUjaNHY\r\nN3FM+l7JPtofbYN565JtAQTzeBusocO+I6FCDpWbHIEI0uvdjo5zHiEVAN/D\r\nR1k7JFpCgF109ITobWZgaxBkx2aphW/4tgfMAI4fzmmMVyYqiXID76LNP2fa\r\nOKy76u4ISYNUQ8Q4zkEOZY6fyE3Ld9ksu0eNBL6KNOjtvY9Cg/I1pFNzf8/j\r\n7qnixY2ti870C+unX9lnkg01zx80gTDVFARsG5fiNluudDHg4rkJ0cPoBtFu\r\nW1fotPo2Piq07F+F9UpehYuKzaFs2Hd909c=\r\n=d5F+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","types":"build/index.d.ts","engines":{"node":">=12.20.0"},"scripts":{"test":"jest --runInBand","build":"npm run clean && tsc","clean":"rm -fr build"},"_npmUser":{"name":"spinlud","email":"ludovico.fabbri@gmail.com"},"repository":{"url":"git+https://github.com/spinlud/redis-sliding-rate-limiter.git","type":"git"},"_npmVersion":"6.14.17","description":"Flexible and performant rate limiter based on sliding window algorithm with arbitrary precision","directories":{},"_nodeVersion":"14.21.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","redis":"^4.5.1","express":"^4.18.2","ioredis":"^5.2.4","ts-jest":"^28.0.8","ts-node":"^10.9.1","supertest":"^6.3.1","typescript":"^4.9.3","@types/jest":"^28.1.7","@types/redis":"^4.0.10","@types/express":"^4.17.14","@types/supertest":"^2.0.12"},"_npmOperationalInternal":{"tmp":"tmp/redis-sliding-rate-limiter_5.0.5_1669884645948_0.9301999954248039","host":"s3://npm-registry-packages"}},"5.0.6":{"name":"redis-sliding-rate-limiter","version":"5.0.6","keywords":["redis","ioredis","rate","limiter","throttle","sliding","rolling","window","express","middleware"],"author":{"name":"Ludovico Fabbri"},"license":"MIT","_id":"redis-sliding-rate-limiter@5.0.6","maintainers":[{"name":"spinlud","email":"ludovico.fabbri@gmail.com"}],"homepage":"https://github.com/spinlud/redis-sliding-rate-limiter#readme","bugs":{"url":"https://github.com/spinlud/redis-sliding-rate-limiter.git/issues"},"dist":{"shasum":"a1fb02b74c5fa6e243079ca57ce60600d4f76daa","tarball":"https://registry.npmjs.org/redis-sliding-rate-limiter/-/redis-sliding-rate-limiter-5.0.6.tgz","fileCount":45,"integrity":"sha512-eC2CMZNS+arn7udZlcKUyNAZwGUf1ZUv+vcpxCIwj9g9Kaic3ijrp3hrW45beiUG4qZmq7csf2Nlo81NwNFzqg==","signatures":[{"sig":"MEUCIFvYkpdS7S0SLoMiL7WTmOCBYweHOi/QMgtj2k0GT0DUAiEA9NHFB3kfDF9nh4dZ610c4YIZybqXQsJeTPT9XWcnqY0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":122136,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjtvH0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo0mQ/+IaSr2yvTuFoKDUrHUdtPmVjFxvxqmvd8eK4xi1r7o9t+IH6a\r\nMZk4efnFuRQfh9wsEma2U6mf8K1TZ/0J3zBIDdpuR51fuJjIPI1C2OWE3OJe\r\naS8xA6DSUNvQGtxwEmwhGpHpFjXMmdm1wZP1GyCsVBQ/sdNseTmMSh1Wctem\r\nSdO1d41JSEVMQGD1gbZARVFqKR1kXoP3CVYIif3ieYBkfoue1tWlPyi9PVq7\r\nauWv0iSVryC/5zEVgkVB5Z2YVclElFtn+f/Xo7HgtmaNwS8ueoBj+eK44LHp\r\n4Ma1f//7N6xyUQhbBh6aHh2CkL2sHrY31MjwZyy+BgJl6RRDhpm4JY9SASry\r\n/j3m07KhKreGNPlf2vFR7QDhi8yfKNj8sPFNhL5WFRc4328vNNtwCHFEmtXB\r\nrqUDsVmzJzAlJXzfchU4yqSCLJHJmrHhkg5Y6i4M4mtbRLl/ofjNGzjNxCc0\r\ntBcBnukYHOUEuvmtqU6PEMpNca53ohsMgEQw45OLvoLAbyfLhsPJKWw1+PHh\r\nkeBd2nTFrA2qR17H5YdgPthT7LaWb2AvCjFFpPMCPCrsNsil96sKDemPIOn0\r\nqisEFdTrB3NQe4NawwQXAcPREEPuWzeIqtUl7/b91KYRfGSc8S5qNd15imo9\r\nDWjYnqxldxsMqFEef6C8XQBJcpzp9NmbYGw=\r\n=B6dB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","types":"build/index.d.ts","engines":{"node":">=12.20.0"},"scripts":{"test":"jest --runInBand","build":"npm run clean && tsc","clean":"rm -fr build"},"_npmUser":{"name":"spinlud","email":"ludovico.fabbri@gmail.com"},"repository":{"url":"git+https://github.com/spinlud/redis-sliding-rate-limiter.git","type":"git"},"_npmVersion":"6.14.17","description":"Flexible and performant rate limiter based on sliding window algorithm with arbitrary precision","directories":{},"_nodeVersion":"14.21.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","redis":"^4.5.1","express":"^4.18.2","ioredis":"^5.2.4","ts-jest":"^28.0.8","ts-node":"^10.9.1","supertest":"^6.3.3","typescript":"^4.9.4","@types/jest":"^28.1.7","@types/redis":"^4.0.10","@types/express":"^4.17.15","@types/supertest":"^2.0.12"},"_npmOperationalInternal":{"tmp":"tmp/redis-sliding-rate-limiter_5.0.6_1672933876417_0.11250245620959087","host":"s3://npm-registry-packages"}},"5.0.7":{"name":"redis-sliding-rate-limiter","version":"5.0.7","keywords":["redis","ioredis","rate","limiter","throttle","sliding","rolling","window","express","middleware"],"author":{"name":"Ludovico Fabbri"},"license":"MIT","_id":"redis-sliding-rate-limiter@5.0.7","maintainers":[{"name":"spinlud","email":"ludovico.fabbri@gmail.com"}],"homepage":"https://github.com/spinlud/redis-sliding-rate-limiter#readme","bugs":{"url":"https://github.com/spinlud/redis-sliding-rate-limiter.git/issues"},"dist":{"shasum":"d475dc89588caddc2cc5c7d9563c4b23dbf8e98b","tarball":"https://registry.npmjs.org/redis-sliding-rate-limiter/-/redis-sliding-rate-limiter-5.0.7.tgz","fileCount":45,"integrity":"sha512-ohgZuekRcLxcE4Gb1hQyqpib9VIHGLuJ7UBKCsypLMjDn2HOYLyFiPCd/VWsXIgljmbgJlXIfYasSMRRaW6itw==","signatures":[{"sig":"MEQCIHTfLnpRprlJ9Uxvj41X1LEMZX/ldXyWGILSYjYmtJzQAiARZTBx8XtJc7Plcn+oT1P+OLR9u1AmV7YfKb0P0Y3P4w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":122136,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkFZM4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmos3w/8CwySd7R6k3BPrIDRTqhV2Loq/NvfK0GuI6mhZHCUBIT0HCAh\r\n6XCblaVU40CRV8Oltqf1OlzmxXSiIys1QKla0HuaowtHkUAoCJ9El+UM9HU4\r\n7c/NZN/5ptZcnElzjEFwMN+x1uhfqH+fHvub2AQai7bDCVV/bVaNvYVM9Dro\r\ncvFdNE6RUBMkfdflOdvvLFVhbMgNQJfbmpkLac8Z7QPMuGlPrlZ0osBhpp/c\r\n3U/O8DTPwFxJuf304Cwt2dGlAdEKaYJmEVTNlGCRx0vZ452qSXeBNwQsMObB\r\ncq+aj3dl98b2n5V+sMuHj1vh4cTifm2nohZL5B6GpYtvifYm/ckLGVP5eU+9\r\n8m3w0G5ysovOlBl/z3/udzgR6q3z6ZYxrSt93b13/LBw6rvFPLJxIiUae12y\r\nP08TPUl+86UddaUWvwG9vAzzg+Bbxc10Q1qnQN3j77a0F4O2Ov/ORAbTevuf\r\nHWP5MS8zv5fxKGnmUXDwkDNITFGx1PyZZK2aArXqzBHmP/pq4hqmTbKQR/br\r\n4WwroCEa4O5xWI9N9XQw0s8S27VZHLra5FlOn9t/ySXO/QQva18WHaMm1BXy\r\nMjWs5kdGzkEycg3N6RxGAhMcxL9LutR4goTL2+Ju8i6PUp+cPW2egU7qQsT2\r\nojX/JfLk5V8J0hu+TzaQiS/Up/DRTEP2nFQ=\r\n=xVPQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","types":"build/index.d.ts","engines":{"node":">=12.20.0"},"scripts":{"test":"jest --runInBand","build":"npm run clean && tsc","clean":"rm -fr build"},"_npmUser":{"name":"spinlud","email":"ludovico.fabbri@gmail.com"},"repository":{"url":"git+https://github.com/spinlud/redis-sliding-rate-limiter.git","type":"git"},"_npmVersion":"6.14.18","description":"Flexible and performant rate limiter based on sliding window algorithm with arbitrary precision","directories":{},"_nodeVersion":"14.21.3","_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","redis":"^4.6.5","express":"^4.18.2","ioredis":"^5.3.1","ts-jest":"^28.0.8","ts-node":"^10.9.1","supertest":"^6.3.3","typescript":"^5.0.2","@types/jest":"^28.1.7","@types/redis":"^4.0.10","@types/express":"^4.17.17","@types/supertest":"^2.0.12"},"_npmOperationalInternal":{"tmp":"tmp/redis-sliding-rate-limiter_5.0.7_1679135544495_0.33875802451638304","host":"s3://npm-registry-packages"}},"5.0.8":{"name":"redis-sliding-rate-limiter","version":"5.0.8","keywords":["redis","ioredis","rate","limiter","throttle","sliding","rolling","window","express","middleware"],"author":{"name":"Ludovico Fabbri"},"license":"MIT","_id":"redis-sliding-rate-limiter@5.0.8","maintainers":[{"name":"spinlud","email":"ludovico.fabbri@gmail.com"}],"homepage":"https://github.com/spinlud/redis-sliding-rate-limiter#readme","bugs":{"url":"https://github.com/spinlud/redis-sliding-rate-limiter.git/issues"},"dist":{"shasum":"90d11a8a9b79992d2a7d1dc2cf0968bdce73d103","tarball":"https://registry.npmjs.org/redis-sliding-rate-limiter/-/redis-sliding-rate-limiter-5.0.8.tgz","fileCount":46,"integrity":"sha512-xKleJQP0vWDM+vJyBOKu7h8M1kAdCa4UDiIqgYwnn7FSbvCcjiYM4uls5iouunmIyA3uBuva+dRoGiHEmhNOSA==","signatures":[{"sig":"MEUCIDHEk6/7Emyl3Zxsg0pAIcPkg7iIIQM5NYM41FHYU+p4AiEAy5VeSNLWK1Wp55HkMlsDFl3le6s6suXoh8yTbg1UZf0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":122153},"main":"build/index.js","types":"build/index.d.ts","engines":{"node":">=12.20.0"},"scripts":{"test":"jest --runInBand","build":"npm run clean && tsc","clean":"rm -fr build"},"_npmUser":{"name":"spinlud","email":"ludovico.fabbri@gmail.com"},"repository":{"url":"git+https://github.com/spinlud/redis-sliding-rate-limiter.git","type":"git"},"_npmVersion":"6.14.18","description":"Flexible and performant rate limiter based on sliding window algorithm with arbitrary precision","directories":{},"_nodeVersion":"14.21.3","_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","redis":"^4.6.5","express":"^4.18.2","ioredis":"^5.3.1","ts-jest":"^28.0.8","ts-node":"^10.9.1","supertest":"^6.3.3","typescript":"^5.0.2","@types/jest":"^28.1.7","@types/redis":"^4.0.10","@types/express":"^4.17.17","@types/supertest":"^2.0.12"},"_npmOperationalInternal":{"tmp":"tmp/redis-sliding-rate-limiter_5.0.8_1697901954317_0.1276850430159897","host":"s3://npm-registry-packages"}},"6.0.0":{"name":"redis-sliding-rate-limiter","version":"6.0.0","keywords":["redis","ioredis","rate","limiter","throttle","sliding","rolling","window","express","middleware"],"author":{"name":"Ludovico Fabbri"},"license":"MIT","_id":"redis-sliding-rate-limiter@6.0.0","maintainers":[{"name":"spinlud","email":"ludovico.fabbri@gmail.com"}],"homepage":"https://github.com/spinlud/redis-sliding-rate-limiter#readme","bugs":{"url":"https://github.com/spinlud/redis-sliding-rate-limiter.git/issues"},"dist":{"shasum":"2a3f1a93b230e69ee55d08ffb7719ccd1de760e9","tarball":"https://registry.npmjs.org/redis-sliding-rate-limiter/-/redis-sliding-rate-limiter-6.0.0.tgz","fileCount":46,"integrity":"sha512-lNd5DshMxo4+0iIJ0uQ/vSTWMkVWKvZN2NgePZxnDc+NcKF1LhazkocGqzm7ouZKfXuCvPysQ7SSLSXU290EAg==","signatures":[{"sig":"MEUCIDNIIRkYK8OhR19gqOJD6OMp7e7hmIYq2bO3rDtdPefoAiEAglkRfj09oG0Y06351G1rUuB8iPZUow70m1ixKRRk3CU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":122219},"main":"build/index.js","types":"build/index.d.ts","engines":{"node":">=12.20.0"},"scripts":{"test":"jest --runInBand","build":"npm run clean && tsc","clean":"rm -fr build"},"_npmUser":{"name":"spinlud","email":"ludovico.fabbri@gmail.com"},"repository":{"url":"git+https://github.com/spinlud/redis-sliding-rate-limiter.git","type":"git"},"_npmVersion":"6.14.18","description":"Flexible and performant rate limiter based on sliding window algorithm with arbitrary precision","directories":{},"_nodeVersion":"14.21.3","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","redis":"^4.6.11","express":"^4.18.2","ioredis":"^5.3.2","ts-jest":"^29.1.1","ts-node":"^10.9.1","supertest":"^6.3.3","typescript":"^5.3.2","@types/jest":"^29.5.10","@types/redis":"^4.0.10","@types/express":"^4.17.21","@types/supertest":"^2.0.16"},"_npmOperationalInternal":{"tmp":"tmp/redis-sliding-rate-limiter_6.0.0_1701251824776_0.12892369512191237","host":"s3://npm-registry-packages"}},"7.0.0":{"name":"redis-sliding-rate-limiter","version":"7.0.0","keywords":["redis","ioredis","rate","limiter","throttle","sliding","rolling","window","express","middleware"],"author":{"name":"Ludovico Fabbri"},"license":"MIT","_id":"redis-sliding-rate-limiter@7.0.0","maintainers":[{"name":"spinlud","email":"ludovico.fabbri@gmail.com"}],"homepage":"https://github.com/spinlud/redis-sliding-rate-limiter#readme","bugs":{"url":"https://github.com/spinlud/redis-sliding-rate-limiter.git/issues"},"dist":{"shasum":"b8f0efaac2fab82a51cf693e47e302a566a8c44c","tarball":"https://registry.npmjs.org/redis-sliding-rate-limiter/-/redis-sliding-rate-limiter-7.0.0.tgz","fileCount":8,"integrity":"sha512-p5j9B2AhvMFVUO5mh6ITPmOevdCZepUtT6zKpe045IbQWBd7HmQsH0p/zzCV2RzqBMjUSjB/mWSfz6uMWo+NlQ==","signatures":[{"sig":"MEUCIQDlEgiixsLNOdSajT2WNstXiBIO7s8en7JdGMU/NGMlAAIgKthuDTejo+Vd4SoA9g+SOhUviU1aYBhUydOydtexNjY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/redis-sliding-rate-limiter@7.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":113638},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./package.json":"./package.json"},"gitHead":"4bced4aa56ccd45f596fc2024d7971ac994c1e90","scripts":{"test":"jest --runInBand","build":"tsup","clean":"rm -fr dist"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:41ac578d-88b5-4b48-a1d8-d77ff5153b51"}},"repository":{"url":"git+https://github.com/spinlud/redis-sliding-rate-limiter.git","type":"git"},"_npmVersion":"12.0.2","description":"Flexible and performant rate limiter based on sliding window algorithm with arbitrary precision","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"jest":"30.5.1","tsup":"^8.5.1","redis":"6.2.1","express":"5.2.1","ioredis":"6.0.0","ts-jest":"29.4.12","ts-node":"10.9.2","supertest":"7.2.2","typescript":"5.9.3","@types/jest":"30.0.0","@types/express":"5.0.6","@types/supertest":"7.2.1"},"_npmOperationalInternal":{"tmp":"tmp/redis-sliding-rate-limiter_7.0.0_1789317082898_0.7883049030104092","host":"s3://npm-registry-packages-npm-production"}},"7.0.1":{"name":"redis-sliding-rate-limiter","version":"7.0.1","keywords":["redis","ioredis","rate","limiter","throttle","sliding","rolling","window","express","middleware"],"author":{"name":"Ludovico Fabbri"},"license":"MIT","_id":"redis-sliding-rate-limiter@7.0.1","maintainers":[{"name":"spinlud","email":"ludovico.fabbri@gmail.com"}],"homepage":"https://github.com/spinlud/redis-sliding-rate-limiter#readme","bugs":{"url":"https://github.com/spinlud/redis-sliding-rate-limiter.git/issues"},"dist":{"shasum":"c4c9a68ba461649787bd58e8493e56c692badee1","tarball":"https://registry.npmjs.org/redis-sliding-rate-limiter/-/redis-sliding-rate-limiter-7.0.1.tgz","fileCount":8,"integrity":"sha512-yh4KDdri5lC5a5fvkrc76hOlaSGXHfZdZZZHo7qC+Sf1Gj3+FEVU6QPBlXuvWlS2z3NGMR9SESoNfKx4yZ+E5g==","signatures":[{"sig":"MEQCIFiMfu//fTpfwOcvZkwlwbfRlOdrdkFIcIaZUOUsMXoFAiB2AMKIgOtMfi1BtR3IAMInwRBpFb8QN+4/iTAzoPTxzw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/redis-sliding-rate-limiter@7.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":116776},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./package.json":"./package.json"},"gitHead":"10e3df0ba266290f82f8b68270add12102ddbe59","scripts":{"test":"jest --runInBand","build":"tsup","clean":"rm -fr dist"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:41ac578d-88b5-4b48-a1d8-d77ff5153b51"}},"repository":{"url":"git+https://github.com/spinlud/redis-sliding-rate-limiter.git","type":"git"},"_npmVersion":"12.0.2","description":"Flexible and performant rate limiter based on sliding window algorithm with arbitrary precision","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"jest":"30.5.1","tsup":"^8.5.1","redis":"6.2.1","express":"5.2.1","ioredis":"6.0.0","ts-jest":"29.4.12","ts-node":"10.9.2","supertest":"7.2.2","typescript":"5.9.3","@types/jest":"30.0.0","@types/express":"5.0.6","@types/supertest":"7.2.1"},"_npmOperationalInternal":{"tmp":"tmp/redis-sliding-rate-limiter_7.0.1_1789317983348_0.5292188285612789","host":"s3://npm-registry-packages-npm-production"}},"7.0.2":{"name":"redis-sliding-rate-limiter","version":"7.0.2","description":"Flexible and performant rate limiter based on sliding window algorithm with arbitrary precision","engines":{"node":">=20"},"main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./package.json":"./package.json"},"sideEffects":false,"scripts":{"clean":"rm -fr dist","build":"tsup","test":"jest --runInBand"},"repository":{"type":"git","url":"git+https://github.com/spinlud/redis-sliding-rate-limiter.git"},"bugs":{"url":"https://github.com/spinlud/redis-sliding-rate-limiter.git/issues"},"author":{"name":"Ludovico Fabbri"},"license":"MIT","devDependencies":{"@types/express":"5.0.6","@types/jest":"30.0.0","@types/supertest":"7.2.1","express":"5.2.1","ioredis":"6.0.0","jest":"30.5.1","redis":"6.2.1","supertest":"7.2.2","ts-jest":"29.4.12","ts-node":"10.9.2","tsup":"^8.5.1","typescript":"5.9.3"},"keywords":["redis","ioredis","rate","limiter","throttle","sliding","rolling","window","express","middleware"],"gitHead":"cb8304438864780f6776392d7a3919632b9c4fb2","_id":"redis-sliding-rate-limiter@7.0.2","homepage":"https://github.com/spinlud/redis-sliding-rate-limiter#readme","_nodeVersion":"22.23.2","_npmVersion":"12.0.2","dist":{"integrity":"sha512-xR35h3Wf3acT5x+FIWZhIORKqIwWTWy4TCHp9cRdQ73TtWdhq04iHP4Ethmx/RjIU0E4a1oSLwFgn7tfA4GIYw==","shasum":"3980226a657b7a5694c95247ed424423f9cf1462","tarball":"https://registry.npmjs.org/redis-sliding-rate-limiter/-/redis-sliding-rate-limiter-7.0.2.tgz","fileCount":8,"unpackedSize":118387,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/redis-sliding-rate-limiter@7.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD6ZYgJx2u6PU5ZKkUDXo81KUJD8+uLt5w2q81PAZcsVwIhAL8JJQsfe3eRRfHP+fWYuzzSP9XtXl1x3Lsp6O0HEjNx"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:41ac578d-88b5-4b48-a1d8-d77ff5153b51"}},"directories":{},"maintainers":[{"name":"spinlud","email":"ludovico.fabbri@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/redis-sliding-rate-limiter_7.0.2_1789319754059_0.6216562601427595"},"_hasShrinkwrap":false}},"time":{"created":"2021-01-04T10:13:00.700Z","modified":"2026-09-13T17:15:54.522Z","1.0.0":"2021-01-04T10:13:00.867Z","1.0.2":"2021-01-04T10:44:48.897Z","1.1.1":"2021-01-07T17:54:45.208Z","1.2.0":"2021-01-08T15:00:03.254Z","1.3.0":"2021-01-08T15:46:02.048Z","2.0.0":"2021-01-12T14:20:10.281Z","2.0.1":"2021-01-12T14:42:37.714Z","2.1.0":"2021-01-12T15:54:10.525Z","2.2.0":"2021-01-15T09:07:04.884Z","2.3.0":"2021-01-18T15:00:24.506Z","2.4.0":"2021-01-18T15:18:09.594Z","2.4.1":"2021-01-18T15:22:10.774Z","1.3.1":"2021-01-27T16:51:25.185Z","2.4.2":"2021-03-02T10:25:50.872Z","2.5.0":"2021-04-11T08:17:20.251Z","2.6.0":"2021-05-16T09:10:47.554Z","2.6.2":"2021-05-16T16:42:06.167Z","2.7.0":"2021-07-01T08:41:41.148Z","2.8.0":"2021-09-04T15:15:06.979Z","3.0.0":"2022-03-18T17:15:53.230Z","4.1.0":"2022-03-29T09:29:44.143Z","4.1.1":"2022-04-09T17:55:25.764Z","5.0.1":"2022-08-23T08:24:06.679Z","5.0.2":"2022-08-23T08:32:56.514Z","5.0.3":"2022-08-23T14:35:24.626Z","5.0.4":"2022-10-23T08:15:26.259Z","5.0.5":"2022-12-01T08:50:46.136Z","5.0.6":"2023-01-05T15:51:16.593Z","5.0.7":"2023-03-18T10:32:24.679Z","5.0.8":"2023-10-21T15:25:54.502Z","6.0.0":"2023-11-29T09:57:04.964Z","7.0.0":"2026-09-13T16:31:23.048Z","7.0.1":"2026-09-13T16:46:23.503Z","7.0.2":"2026-09-13T17:15:54.231Z"},"bugs":{"url":"https://github.com/spinlud/redis-sliding-rate-limiter.git/issues"},"author":{"name":"Ludovico Fabbri"},"license":"MIT","homepage":"https://github.com/spinlud/redis-sliding-rate-limiter#readme","keywords":["redis","ioredis","rate","limiter","throttle","sliding","rolling","window","express","middleware"],"repository":{"type":"git","url":"git+https://github.com/spinlud/redis-sliding-rate-limiter.git"},"description":"Flexible and performant rate limiter based on sliding window algorithm with arbitrary precision","maintainers":[{"name":"spinlud","email":"ludovico.fabbri@gmail.com"}],"readme":"# redis-sliding-rate-limiter\n> Flexible and performant sliding-window rate limiter for Node.js, backed by Redis and\n> exact to the microsecond. Works with both popular Redis clients:\n> [node-redis](https://www.npmjs.com/package/redis) and [ioredis](https://www.npmjs.com/package/ioredis).\n\n![node-redis](https://img.shields.io/badge/node--redis-5%20%7C%206-D82C20)\n![ioredis](https://img.shields.io/badge/ioredis-5%20%7C%206-D82C20)\n\n## Table of Contents\n\n* [Why another rate limiter?](#why-another-rate-limiter)\n* [Installation](#installation)\n* [Compatibility](#compatibility)\n* [Usage](#usage)\n* [Client input: `client` vs `sendCommand`](#client-input-client-vs-sendcommand)\n* [How the sliding window works](#how-the-sliding-window-works)\n* [Response fields](#response-fields)\n* [Changing the limit at runtime](#changing-the-limit-at-runtime)\n* [Express middleware](#express-middleware)\n* [Running the tests](#running-the-tests)\n* [Migration](#migration)\n* [License](#license)\n\n## Why another rate limiter?\nNaive rate limiter algorithms suffer from a well known problem where a burst of requests at the window boundary\ncan let through more requests than intended for a particular key. For example, with a limit of 100 requests per\nminute, a client could send 100 requests in the last second of the first minute and another 100 requests in the\nfirst second of the second minute, resulting in 200 accepted requests in 2 seconds. This library implements an\nexact sliding window on top of Redis that eliminates that boundary burst.\n\nThe main features are:\n\n* **Exact sliding window at microsecond precision.** The window slides continuously; there is no subdivision\n  unit and no bucketing, so a request counts against exactly the trailing window that precedes it.\n* **Redis server clock as the single source of truth.** All timing is derived from the Redis server clock, so\n  application clocks and network latency never affect the count.\n* **Per-request expiration timestamps.** Every response carries `firstExpireAtMs` (when the oldest member in the\n  window expires) and `windowExpireAtMs` (when the window becomes empty), so a client knows precisely when a free\n  slot opens up.\n* **Express middleware** with customizable status code, messages and response headers.\n* Works with both **node-redis** and **ioredis** (majors 5 and 6), via a duck-typed `client` or an explicit\n  `sendCommand` callback.\n* Ships **dual CJS and ESM** builds with an `exports` map and bundled type declarations.\n* **Zero runtime dependencies.**\n\n## Installation\n```shell\nnpm install --save redis-sliding-rate-limiter\n```\n`redis` and `ioredis` are peer libraries: install whichever client you use yourself. The limiter has no runtime\ndependencies of its own.\n\n## Compatibility\n\n| Component      | Supported                     |\n| -------------- | ----------------------------- |\n| Node.js        | `>=20` (CI tests 22 and 24)   |\n| node-redis     | `5`, `6`                      |\n| ioredis        | `5`, `6`                      |\n| Redis server   | `7` (tested)                  |\n| Module formats | CommonJS + ESM                |\n\n## Usage\nThe primary example uses node-redis, passing the client directly through the `client` option (the client is\nduck-typed, so no adapter is required).\n\n```js\nconst { createClient } = require('redis');\nconst { RateLimiter, Unit } = require('redis-sliding-rate-limiter');\n\n(async () => {\n  const client = createClient({\n    url: 'redis://localhost:6379',\n  });\n\n  await client.connect();\n\n  // 10 requests every 3 seconds, allowing 10% of the limit (1 request) to exceed it.\n  const limiter = new RateLimiter({\n    client: client,\n    window: {\n      unit: Unit.SECOND,\n      size: 3,\n    },\n    limit: 10,\n    // Fraction of the limit allowed to exceed it, rounded down (10 * 0.1 = 1 extra request).\n    limitOverhead: 0.1,\n  });\n\n  const key = 'OneRing';\n\n  const results = await Promise.all([\n    limiter.get(key), // 1\n    limiter.get(key), // 2\n    limiter.get(key), // 3\n    limiter.get(key), // 4\n    limiter.get(key), // 5\n    limiter.get(key), // 6\n    limiter.get(key), // 7\n    limiter.get(key), // 8\n    limiter.get(key), // 9\n    limiter.get(key), // 10\n    limiter.get(key), // 11 - allowed thanks to the overhead\n    limiter.get(key), // 12 - denied\n  ]);\n\n  for (const res of results) {\n    const { allowed, remaining, firstExpireAtMs, windowExpireAtMs } = res;\n    console.log({ allowed, remaining, firstExpireAtMs, windowExpireAtMs });\n  }\n\n  // The first ten requests are allowed and `remaining` counts down to 0; the eleventh is still\n  // allowed because of the overhead; the twelfth is denied. `firstExpireAtMs` and `windowExpireAtMs`\n  // are epoch-millisecond timestamps derived from the Redis server clock.\n\n  await client.quit();\n})();\n```\n\n## Client input: `client` vs `sendCommand`\nA limiter talks to Redis through exactly one of two mutually exclusive options. The constructor throws if both\nare provided, and throws if neither is provided.\n\n* **`client`** — a Redis client instance. The limiter detects the command interface: node-redis exposes\n  `sendCommand(args)`, ioredis exposes `call(command, ...args)`.\n* **`sendCommand`** — an explicit callback you wire yourself. This is useful for clients, pools or proxies that\n  the duck-typing does not recognise:\n\n```ts\ntype SendCommandFn = (...args: string[]) => Promise<unknown>;\n```\n\nBoth forms below apply to majors 5 and 6 of each client.\n\n### node-redis\n\n```js\nconst { createClient } = require('redis');\nconst { RateLimiter, Unit } = require('redis-sliding-rate-limiter');\n\nconst client = createClient({ url: 'redis://localhost:6379' });\nawait client.connect();\n\n// Passing the client directly.\nconst a = new RateLimiter({\n  client: client,\n  window: { unit: Unit.SECOND, size: 1 },\n  limit: 5,\n});\n\n// The equivalent sendCommand callback.\nconst b = new RateLimiter({\n  sendCommand: (...args) => client.sendCommand(args),\n  window: { unit: Unit.SECOND, size: 1 },\n  limit: 5,\n});\n```\n\n### ioredis\n\n```js\nconst Redis = require('ioredis');\nconst { RateLimiter, Unit } = require('redis-sliding-rate-limiter');\n\nconst client = new Redis({ host: 'localhost', port: 6379 });\n\n// Passing the client directly.\nconst a = new RateLimiter({\n  client: client,\n  window: { unit: Unit.SECOND, size: 1 },\n  limit: 5,\n});\n\n// The equivalent sendCommand callback.\nconst b = new RateLimiter({\n  sendCommand: (...args) => client.call(args[0], ...args.slice(1)),\n  window: { unit: Unit.SECOND, size: 1 },\n  limit: 5,\n});\n```\n\n## How the sliding window works\nEach `key` maps to a Redis sorted set. Every request is stored as a distinct member scored by the current\nmicrosecond timestamp read from the Redis server clock. On each call the limiter:\n\n1. Evicts members whose score falls outside the trailing window, so the window slides continuously rather than\n   being bucketed into fixed intervals.\n2. Counts the members still inside the window; the count against `limit` (plus any overhead) decides `allowed`\n   and `remaining`.\n3. Adds a member and refreshes the key TTL (`PEXPIRE`) **only when the request is allowed**. A denied request\n   neither adds a member nor refreshes the TTL.\n\n## Response fields\n`limiter.get(key)` resolves with a `RateLimiterResponse`:\n\n| Field              | Type      | Meaning                                                                                                       |\n| ------------------ | --------- | ------------------------------------------------------------------------------------------------------------ |\n| `allowed`          | `boolean` | Whether this request is allowed.                                                                              |\n| `remaining`        | `number`  | Requests still allowed after this one, clamped at 0. Computed against the base `limit` (overhead not counted).|\n| `firstExpireAtMs`  | `number`  | Epoch milliseconds at which the oldest member in the window expires (`-1` when the window is empty).          |\n| `windowExpireAtMs` | `number`  | Epoch milliseconds at which the whole window empties (`-1` when the window is empty).                         |\n\n## Changing the limit at runtime\nEvery setting used by `get()` is read at call time, so assigning `limiter.limit`, `limiter.windowSize`,\n`limiter.windowUnit` or `limiter.limitOverheadFraction` takes effect on the very next call, with no reload or\nreconnection. This makes it easy to drive the limit from a value stored in Redis and updated elsewhere: keep a\ndedicated subscriber connection (Redis does not allow a subscriber to run other commands) and reassign\n`limiter.limit` whenever a new value is published.\n\n```js\nconst Redis = require('ioredis');\nconst { RateLimiter, Unit } = require('redis-sliding-rate-limiter');\n\nconst client = new Redis({ host: 'localhost', port: 6379 });\n\nconst limiter = new RateLimiter({\n  client: client,\n  window: { unit: Unit.SECOND, size: 1 },\n  limit: 5,\n});\n\n// A subscriber cannot issue other commands, so use a separate connection for pub/sub.\nconst subscriber = new Redis({ host: 'localhost', port: 6379 });\n\nsubscriber.psubscribe('ratelimit:limit:*');\n\nsubscriber.on('pmessage', (pattern, channel, message) => {\n  const nextLimit = Number.parseInt(message, 10);\n  // Ignore payloads that are not a positive integer.\n  if (Number.isInteger(nextLimit) && nextLimit > 0) {\n    limiter.limit = nextLimit;\n  }\n});\n```\n\nUnlike the constructor, the setter does not validate the assigned value, so guard it yourself as shown above.\nFor per-request limits driven by the incoming request rather than a shared value, use the Express middleware's\n[`overrideLimit` / `overrideLimitFn`](#express-middleware) instead.\n\n## Express middleware\nThe library exposes a middleware factory for [Express](https://www.npmjs.com/package/express). Each middleware\nevaluates one or more limiters per request.\n\n```js\nconst express = require('express');\nconst Redis = require('ioredis');\nconst { RateLimiter, Unit, createExpressMiddleware } = require('redis-sliding-rate-limiter');\n\n(async () => {\n  const app = express();\n\n  const client = new Redis({\n    host: 'localhost',\n    port: 6379,\n  });\n\n  const middleware = createExpressMiddleware({\n    // Limiters evaluated for each request, in order.\n    limiters: [\n      {\n        limiter: new RateLimiter({\n          client: client,\n          window: {\n            unit: Unit.SECOND,\n            size: 1,\n          },\n          limit: 5,\n        }),\n        overrideKey: true,\n        // Compute the Redis key from the request and limiter. Can also be defined at middleware level (below).\n        overrideKeyFn: (req, limiter) => {\n          return req.path + limiter.name;\n        },\n        key: 'This key will be overridden',\n        errorMessage: '[Peak] Too many requests',\n      },\n      {\n        limiter: new RateLimiter({\n          client: client,\n          window: {\n            unit: Unit.HOUR,\n            size: 1,\n          },\n          limit: 10000, // This will be overridden.\n        }),\n        overrideLimit: true,\n        // Override the limiter limit. Can also be defined at middleware level (below).\n        overrideLimitFn: (req, limiter) => {\n          return parseInt(req.query.limit, 10); // Make sure this returns a positive integer.\n        },\n        // Optional per-limiter skip. Return true to skip evaluation of this limiter.\n        skipFn: (req, limiter) => {\n          return false;\n        },\n        errorMessage: '[Hourly] Too many requests',\n      },\n    ],\n\n    // Middleware-level key override.\n    // Fallback when a limiter has overrideKey enabled but provides no overrideKeyFn.\n    overrideKeyFn: (req, limiter) => {\n      return 'some key';\n    },\n\n    // Middleware-level limit override.\n    // Fallback when a limiter has overrideLimit enabled but provides no overrideLimitFn.\n    overrideLimitFn: (req, limiter) => {\n      return 666;\n    },\n\n    // Status code returned when a request is throttled (default 429).\n    errorStatusCode: 429,\n\n    // Enable/disable setting rate-limit headers on the response (default true).\n    setHeaders: true,\n\n    // Custom function to set headers on the response. Called only when setHeaders is enabled;\n    // when omitted, default X-Rate-Limit-* headers are set instead.\n    setHeadersFn: (req, res, limiter, limiterResponse) => {\n      const { remaining, firstExpireAtMs, windowExpireAtMs } = limiterResponse;\n      res.set(`X-Rate-Limit-Remaining-${limiter.name}`, '' + remaining);\n      res.set(`X-Rate-Limit-First-Expire-${limiter.name}`, '' + firstExpireAtMs);\n      res.set(`X-Rate-Limit-Reset-${limiter.name}`, '' + windowExpireAtMs);\n    },\n\n    // Optional whitelist. Return true to skip rate limiting entirely for the request.\n    skipFn: (req) => {\n      return false;\n    },\n\n    // Called when a request is throttled (not allowed).\n    onThrottleRequest: (req, res, key) => {\n      return res.status(429).send(`Too many requests for key ${key}`);\n    },\n  });\n\n  // Plug in the middleware.\n  app.use(middleware);\n\n  app.get('/', (req, res) => {\n    return res.send('Yo!');\n  });\n\n  app.listen(8080, () => console.log('Server listening on port 8080...'));\n})();\n```\n\n## Running the tests\n```bash\n# start a local Redis (ephemeral)\ndocker compose up -d redis\n# install deps, build, run the suite against Redis on localhost:6379\nnpm install\nnpm run build\nnpm test\n# tear down\ndocker compose down\n```\nTests default to `REDIS_HOST=localhost` / `REDIS_PORT=6379` and exercise both node-redis and ioredis.\n\n## Migration\nUpgrading from v6? See [MIGRATION.md](./MIGRATION.md) for the full list of breaking changes and what to do.\n\n## License\n[MIT License](http://en.wikipedia.org/wiki/MIT_License)\n","readmeFilename":"README.md"}