{"_id":"koa-ratelimit","_rev":"51-9fe78e56054d8fd0739406363208c85d","name":"koa-ratelimit","dist-tags":{"latest":"6.0.0"},"versions":{"1.0.0":{"name":"koa-ratelimit","version":"1.0.0","keywords":["koa","middleware","ratelimiter","ratelimit","rate"],"license":"MIT","_id":"koa-ratelimit@1.0.0","maintainers":[{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"homepage":"https://github.com/koajs/ratelimit","bugs":{"url":"https://github.com/koajs/ratelimit/issues"},"dist":{"shasum":"fb3ae20f252fe506f204dd6fca3b7c5bc9964c48","tarball":"https://registry.npmjs.org/koa-ratelimit/-/koa-ratelimit-1.0.0.tgz","integrity":"sha512-IG8EegXxAoOImRvjnwGKDoh1VwqX3GKmZakTpcDvSZD9c9onxDUHLgH0gSvpe3A9oJGfr5jpD+26FNYJ5WPfyg==","signatures":[{"sig":"MEUCIQCB5UlkcicuboFJhD+UkgVuHNv3XX7GMHt38vtmTnOXggIgaGsEmplKroUVlh2I3UGZzBqX5vleSg7Ez1hgRC1tekc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["index.js"],"_npmUser":{"name":"tjholowaychuk","email":"tj@vision-media.ca"},"repository":{"url":"git://github.com/koajs/ratelimit","type":"git"},"_npmVersion":"1.3.15","description":"Rate limiter middleware for koa","directories":{},"dependencies":{"ms":"~0.6.1","debug":"~0.7.4","thunkify":"0.0.1","ratelimiter":"~1.0.0"},"devDependencies":{"koa":"0.0.2","redis":"~0.9.0"}},"1.0.1":{"name":"koa-ratelimit","version":"1.0.1","keywords":["koa","middleware","ratelimiter","ratelimit","rate"],"license":"MIT","_id":"koa-ratelimit@1.0.1","maintainers":[{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"homepage":"https://github.com/koajs/ratelimit","bugs":{"url":"https://github.com/koajs/ratelimit/issues"},"dist":{"shasum":"1fee5b0b590215271f6b1d5b3200de565f70b127","tarball":"https://registry.npmjs.org/koa-ratelimit/-/koa-ratelimit-1.0.1.tgz","integrity":"sha512-9O7ZhzaDuygNo4YM2nPL/KiEwDrjqOWn5lLb3Y/yHAC0dTmubE5ubYNKbA/33N9JO41os/98rsfZctwAyHVE6g==","signatures":[{"sig":"MEUCIDBA/foXuI9UhB9j9FzKUyfdfaQknCFxkV2g+vcYi4waAiEAqMioEluD2x6J/PAxl+PJ8JjehNITZzLWE8NfCcXfo/g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["index.js"],"_npmUser":{"name":"tjholowaychuk","email":"tj@vision-media.ca"},"repository":{"url":"git://github.com/koajs/ratelimit","type":"git"},"_npmVersion":"1.3.15","description":"Rate limiter middleware for koa","directories":{},"dependencies":{"ms":"~0.6.1","debug":"~0.7.4","thunkify":"0.0.1","ratelimiter":"~1.0.0"},"devDependencies":{"koa":"0.0.2","redis":"~0.9.0"}},"1.0.3":{"name":"koa-ratelimit","version":"1.0.3","keywords":["koa","middleware","ratelimiter","ratelimit","rate"],"license":"MIT","_id":"koa-ratelimit@1.0.3","maintainers":[{"name":"tjholowaychuk","email":"tj@vision-media.ca"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"juliangruber","email":"julian@juliangruber.com"},{"name":"dead_horse","email":"dead_horse@qq.com"},{"name":"fengmk2","email":"fengmk2@gmail.com"},{"name":"eivifj","email":"eivind.fjeldstad@gmail.com"}],"homepage":"https://github.com/koajs/ratelimit","bugs":{"url":"https://github.com/koajs/ratelimit/issues"},"dist":{"shasum":"39084176f869dca1c1a47713ce61fd64e448daa0","tarball":"https://registry.npmjs.org/koa-ratelimit/-/koa-ratelimit-1.0.3.tgz","integrity":"sha512-X/SMn9tHJTojovuUsLtMlEmd9+l2yKbniL6gonDjQlJTVHq0DG/udggwIK/gpau7CHKwwQ2YexlOLltBl6my0w==","signatures":[{"sig":"MEUCIQCoor33qfWv+1pNvUuAvB7dBs7jfzv9cvDUEf7s4PZpHwIgaGn65di5tUVmuo0VVECuK4baZfaC70YGK99sDgQ8vFw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["index.js"],"engines":{"node":"> 0.11.4"},"scripts":{"test":"NODE_ENV=test node_modules/mocha/bin/mocha --harmony --reporter spec"},"_npmUser":{"name":"tjholowaychuk","email":"tj@vision-media.ca"},"repository":{"url":"git://github.com/koajs/ratelimit","type":"git"},"_npmVersion":"1.4.3","description":"Rate limiter middleware for koa","directories":{},"dependencies":{"ms":"~0.6.1","debug":"~0.7.4","thunkify":"0.0.1","ratelimiter":"~1.0.0"},"devDependencies":{"koa":"^0.6.1","mocha":"^1.19.0","redis":"^0.10.2","should":"^3.3.1","supertest":"^0.12.1"}},"1.1.0":{"name":"koa-ratelimit","version":"1.1.0","keywords":["koa","middleware","ratelimiter","ratelimit","rate"],"license":"MIT","_id":"koa-ratelimit@1.1.0","maintainers":[{"name":"tjholowaychuk","email":"tj@vision-media.ca"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"juliangruber","email":"julian@juliangruber.com"},{"name":"dead_horse","email":"dead_horse@qq.com"},{"name":"fengmk2","email":"fengmk2@gmail.com"},{"name":"eivifj","email":"eivind.fjeldstad@gmail.com"},{"name":"aheckmann","email":"aaron.heckmann+github@gmail.com"}],"homepage":"https://github.com/koajs/ratelimit","bugs":{"url":"https://github.com/koajs/ratelimit/issues"},"dist":{"shasum":"f6d1f4413be3f0090bd9e558828a2c9b04b6addc","tarball":"https://registry.npmjs.org/koa-ratelimit/-/koa-ratelimit-1.1.0.tgz","integrity":"sha512-z3cFE1D1pTmj2Qf8lXahybbcXFx72dIridHSWyO/oLBEhfKwfmZZ7p/MTKkCp6UZClibcIhLtH7J6El71oV8RQ==","signatures":[{"sig":"MEUCIAmX49hnV2TUmEF8XMZ3Q4PpVMxKkhlMDYsQNIniJuoXAiEAzHZ/Wo5IV88FhNVKR6vFi0sERY7cG0f8++pMkszWXho=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["index.js"],"_shasum":"f6d1f4413be3f0090bd9e558828a2c9b04b6addc","engines":{"node":"> 0.11.4"},"gitHead":"6ab3209fe418dbfc2ee98f7e8b5d9e85d61dd58f","scripts":{"test":"NODE_ENV=test node_modules/mocha/bin/mocha --harmony --reporter spec"},"_npmUser":{"name":"dead_horse","email":"dead_horse@qq.com"},"repository":{"url":"https://github.com/koajs/ratelimit","type":"git"},"_npmVersion":"2.0.0-beta.3","description":"Rate limiter middleware for koa","directories":{},"dependencies":{"ms":"~0.6.1","debug":"~0.7.4","thunkify":"0.0.1","ratelimiter":"~1.0.0"},"devDependencies":{"koa":"^0.6.1","mocha":"^1.19.0","redis":"^0.10.2","should":"^3.3.1","supertest":"^0.12.1"}},"2.0.0":{"name":"koa-ratelimit","version":"2.0.0","keywords":["koa","middleware","ratelimiter","ratelimit","rate"],"license":"MIT","_id":"koa-ratelimit@2.0.0","maintainers":[{"name":"tjholowaychuk","email":"tj@vision-media.ca"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"juliangruber","email":"julian@juliangruber.com"},{"name":"dead_horse","email":"dead_horse@qq.com"},{"name":"fengmk2","email":"fengmk2@gmail.com"},{"name":"eivifj","email":"eivind.fjeldstad@gmail.com"},{"name":"aheckmann","email":"aaron.heckmann+github@gmail.com"}],"homepage":"https://github.com/koajs/ratelimit","bugs":{"url":"https://github.com/koajs/ratelimit/issues"},"dist":{"shasum":"3cc1fabd22f38924a392894f71c70404dfccfb29","tarball":"https://registry.npmjs.org/koa-ratelimit/-/koa-ratelimit-2.0.0.tgz","integrity":"sha512-Pk3MymrgsGj3Jhfavmzm3MN0FVLWEMsqSyuxn2oBj9189hs8hkeAqbp0SvEM9Vah7gzm6JBZGIhZeiLyWEk/Yg==","signatures":[{"sig":"MEUCIQCH4FhgucpDSeo7MYsr7G0r5NFBNgzwE5nw/FZMvBeUzQIgXgH9faCeu0rQoNwCGT9o+HgQMVgarmey9oCjZZf4nKE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["index.js"],"_shasum":"3cc1fabd22f38924a392894f71c70404dfccfb29","engines":{"node":">= 0.11.13"},"gitHead":"d8606bf166dde88894129bee94b79467b1c815f8","scripts":{"test":"NODE_ENV=test node_modules/mocha/bin/mocha --harmony --reporter spec"},"_npmUser":{"name":"dead_horse","email":"dead_horse@qq.com"},"repository":{"url":"https://github.com/koajs/ratelimit","type":"git"},"_npmVersion":"2.1.12","description":"Rate limiter middleware for koa","directories":{},"_nodeVersion":"0.11.14","dependencies":{"ms":"^0.7.0","debug":"^2.1.1","thenify":"^3.0.0","ratelimiter":"^2.0.0"},"devDependencies":{"koa":"^0.14.0","mocha":"^2.1.0","redis":"^0.12.1","should":"^4.4.2","supertest":"^0.15.0"}},"2.1.0":{"name":"koa-ratelimit","version":"2.1.0","keywords":["koa","middleware","ratelimiter","ratelimit","rate"],"license":"MIT","_id":"koa-ratelimit@2.1.0","maintainers":[{"name":"tjholowaychuk","email":"tj@vision-media.ca"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"juliangruber","email":"julian@juliangruber.com"},{"name":"dead_horse","email":"dead_horse@qq.com"},{"name":"fengmk2","email":"fengmk2@gmail.com"},{"name":"eivifj","email":"eivind.fjeldstad@gmail.com"},{"name":"aheckmann","email":"aaron.heckmann+github@gmail.com"}],"homepage":"https://github.com/koajs/ratelimit","bugs":{"url":"https://github.com/koajs/ratelimit/issues"},"dist":{"shasum":"16d94cddd3aa5c8e3c9432d534abc3ca33643601","tarball":"https://registry.npmjs.org/koa-ratelimit/-/koa-ratelimit-2.1.0.tgz","integrity":"sha512-opkEJt58Xw5jtic74TmSTzyQvaQMnlrn2b6dW+D/Qo01NZcnLtFRA2yBjyozWm62gv5iGjlKJKpnDkG4OKJ4Lw==","signatures":[{"sig":"MEQCICNIvAVZjZzdMsL0QDVvQG5HyahVHxvT6dEe3AJuz2qeAiBMpF4LQZObcLg9TfIR4Rg4IbgIhgQW0ShwjaZ4sTE5gQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["index.js"],"_shasum":"16d94cddd3aa5c8e3c9432d534abc3ca33643601","engines":{"node":">= 0.11.13"},"gitHead":"83cf4d698111d98aef13367cbde5830e685ee238","scripts":{"test":"NODE_ENV=test node_modules/mocha/bin/mocha --harmony --reporter spec"},"_npmUser":{"name":"dead_horse","email":"dead_horse@qq.com"},"repository":{"url":"https://github.com/koajs/ratelimit","type":"git"},"_npmVersion":"2.1.12","description":"Rate limiter middleware for koa","directories":{},"_nodeVersion":"0.11.14","dependencies":{"ms":"^0.7.0","debug":"^2.1.1","thenify":"^3.0.0","ratelimiter":"^2.0.0"},"devDependencies":{"koa":"^0.14.0","mocha":"^2.1.0","redis":"^0.12.1","should":"^4.4.2","supertest":"^0.15.0"}},"2.2.0":{"name":"koa-ratelimit","version":"2.2.0","keywords":["koa","middleware","ratelimiter","ratelimit","rate"],"license":"MIT","_id":"koa-ratelimit@2.2.0","maintainers":[{"name":"aheckmann","email":"aaron.heckmann+github@gmail.com"},{"name":"coderhaoxin","email":"coderhaoxin@outlook.com"},{"name":"dead_horse","email":"dead_horse@qq.com"},{"name":"eivifj","email":"eivind.fjeldstad@gmail.com"},{"name":"fengmk2","email":"fengmk2@gmail.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"juliangruber","email":"julian@juliangruber.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"homepage":"https://github.com/koajs/ratelimit#readme","bugs":{"url":"https://github.com/koajs/ratelimit/issues"},"dist":{"shasum":"14c37d5c315273e618a7736064b83d53c6132617","tarball":"https://registry.npmjs.org/koa-ratelimit/-/koa-ratelimit-2.2.0.tgz","integrity":"sha512-eK7rN6WiwroDTKY3FsA+x4tqylJsoWLSSRS6fa5pvuf8I16C6baYDEIIvHWglH0TIlGrFPnf2+qVTHyVMyPQ8A==","signatures":[{"sig":"MEUCIEooVTFC5fUrFh2cVlozXbfqzBZYjZT/j1flcypd0CsdAiEA7TWJdTcSei/2XlOEnhbcl4qLW2ZNe6gFMvn9rfO4fw4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["index.js"],"_shasum":"14c37d5c315273e618a7736064b83d53c6132617","engines":{"node":">= 0.11.13"},"gitHead":"4efbedd0a41b651512ca825b48b67a589b3e1938","scripts":{"test":"NODE_ENV=test mocha --reporter spec"},"_npmUser":{"name":"coderhaoxin","email":"coderhaoxin@outlook.com"},"repository":{"url":"git+https://github.com/koajs/ratelimit.git","type":"git"},"_npmVersion":"3.8.3","description":"Rate limiter middleware for koa","directories":{},"_nodeVersion":"5.10.1","dependencies":{"ms":"^0.7.1","debug":"^2.2.0","thenify":"^3.2.0","ratelimiter":"^2.1.2"},"devDependencies":{"koa":"^1.2.0","mocha":"^2.4.5","redis":"^2.6.0-1","should":"^8.3.0","supertest":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/koa-ratelimit-2.2.0.tgz_1460340529739_0.8223343912977725","host":"packages-16-east.internal.npmjs.com"}},"2.3.0":{"name":"koa-ratelimit","version":"2.3.0","keywords":["koa","middleware","ratelimiter","ratelimit","rate"],"license":"MIT","_id":"koa-ratelimit@2.3.0","maintainers":[{"name":"aheckmann","email":"aaron.heckmann+github@gmail.com"},{"name":"coderhaoxin","email":"coderhaoxin@outlook.com"},{"name":"dead_horse","email":"dead_horse@qq.com"},{"name":"eivifj","email":"eivind.fjeldstad@gmail.com"},{"name":"fengmk2","email":"fengmk2@gmail.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"juliangruber","email":"julian@juliangruber.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"homepage":"https://github.com/koajs/ratelimit#readme","bugs":{"url":"https://github.com/koajs/ratelimit/issues"},"dist":{"shasum":"566f98be66e3024b2c27d68d7b7f1e96041e7416","tarball":"https://registry.npmjs.org/koa-ratelimit/-/koa-ratelimit-2.3.0.tgz","integrity":"sha512-m06r5GemE1lIWap8lxUdYeNVj1Bo0jCNcq2BSy76BlGQV7R2RJar8hxkNw7mVwDDOR0yEtMJHJUfB/HgxTPIlA==","signatures":[{"sig":"MEUCIQCIBtv5KDTjoY28VZVIt1ynqNj5nABWBwLcc7o/JX77pQIgG+JJD+WcCE+yubpbEDq9N1R2OSJlngjYz1u7E7R4qrM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["index.js"],"_shasum":"566f98be66e3024b2c27d68d7b7f1e96041e7416","engines":{"node":">= 0.11.13"},"gitHead":"1eba8731693a74ba2c942e4823b64bcddd1ef23c","scripts":{"test":"NODE_ENV=test mocha --reporter spec"},"_npmUser":{"name":"dead_horse","email":"dead_horse@qq.com"},"repository":{"url":"git+https://github.com/koajs/ratelimit.git","type":"git"},"_npmVersion":"3.3.6","description":"Rate limiter middleware for koa","directories":{},"_nodeVersion":"5.0.0","dependencies":{"ms":"^0.7.1","debug":"^2.2.0","thenify":"^3.2.0","ratelimiter":"^2.1.2"},"devDependencies":{"koa":"^1.2.0","mocha":"^2.4.5","redis":"^2.6.0-1","should":"^8.3.0","supertest":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/koa-ratelimit-2.3.0.tgz_1463027195869_0.7856622813269496","host":"packages-16-east.internal.npmjs.com"}},"2.4.0":{"name":"koa-ratelimit","version":"2.4.0","keywords":["koa","middleware","ratelimiter","ratelimit","rate"],"license":"MIT","_id":"koa-ratelimit@2.4.0","maintainers":[{"name":"aheckmann","email":"aaron.heckmann+github@gmail.com"},{"name":"coderhaoxin","email":"coderhaoxin@outlook.com"},{"name":"dead_horse","email":"dead_horse@qq.com"},{"name":"eivifj","email":"eivind.fjeldstad@gmail.com"},{"name":"fengmk2","email":"fengmk2@gmail.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"juliangruber","email":"julian@juliangruber.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"homepage":"https://github.com/koajs/ratelimit#readme","bugs":{"url":"https://github.com/koajs/ratelimit/issues"},"dist":{"shasum":"9c5c199c65a513d35a0cabf347b0f3ac32ad68e8","tarball":"https://registry.npmjs.org/koa-ratelimit/-/koa-ratelimit-2.4.0.tgz","integrity":"sha512-GDbqsMG6+BjOeqaPzSiAlWJhK02ff2LAzc+xmcep5FxltBNKkuCNcKdHKW6TKzpDp4pOOBdqNSWCC46xAn+fzQ==","signatures":[{"sig":"MEYCIQCNh9tdFvkr7VH6CzOwuL2jpaIClIlnN2/mKMrMlYC+8QIhAOaStR+Em1PC8Db/cR6bFL/OX5tU8j1aL8OcVngMzvyk","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["index.js"],"_shasum":"9c5c199c65a513d35a0cabf347b0f3ac32ad68e8","engines":{"node":">= 0.11.13"},"gitHead":"4e38fb16c45c5bcc0782fc847471b18eaf35c502","scripts":{"test":"NODE_ENV=test mocha --reporter spec"},"_npmUser":{"name":"coderhaoxin","email":"coderhaoxin@outlook.com"},"repository":{"url":"git+https://github.com/koajs/ratelimit.git","type":"git"},"_npmVersion":"3.10.8","description":"Rate limiter middleware for koa","directories":{},"_nodeVersion":"7.0.0","dependencies":{"ms":"^0.7.1","debug":"^2.2.0","thenify":"^3.2.0","ratelimiter":"^2.1.2"},"devDependencies":{"koa":"^1.2.0","mocha":"^2.4.5","redis":"^2.6.0-1","should":"^8.3.0","supertest":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/koa-ratelimit-2.4.0.tgz_1477449288089_0.5001992569305003","host":"packages-18-east.internal.npmjs.com"}},"3.0.0":{"name":"koa-ratelimit","version":"3.0.0","keywords":["koa","middleware","ratelimiter","ratelimit","rate"],"license":"MIT","_id":"koa-ratelimit@3.0.0","maintainers":[{"name":"aheckmann","email":"aaron.heckmann+github@gmail.com"},{"name":"coderhaoxin","email":"coderhaoxin@outlook.com"},{"name":"dead_horse","email":"dead_horse@qq.com"},{"name":"eivifj","email":"eivind.fjeldstad@gmail.com"},{"name":"fengmk2","email":"fengmk2@gmail.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"juliangruber","email":"julian@juliangruber.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"homepage":"https://github.com/koajs/ratelimit#readme","bugs":{"url":"https://github.com/koajs/ratelimit/issues"},"dist":{"shasum":"44b8347c2df47afeb1c6ded26ad7b498efc810f6","tarball":"https://registry.npmjs.org/koa-ratelimit/-/koa-ratelimit-3.0.0.tgz","integrity":"sha512-xZNT616K6CezlhrqEMwZ9VXU8d3Nf4tFJ4CZiM3xHsLMXTcUJww91TTBZycdmg5aWDiRGepDEgPDFWSVWgl8PQ==","signatures":[{"sig":"MEQCIGXdmO1ZNTuNNptHxKK2b4brzjK4V9vY13Py4rzmTmq9AiA1JVFdBzzLyMn5SGYjqdMDiEqjk0dzTx1PUZHZHDZayA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["index.js"],"_shasum":"44b8347c2df47afeb1c6ded26ad7b498efc810f6","engines":{"node":">= 0.11.13"},"gitHead":"3d40413989146b683761c4d7d14bba4943e85336","scripts":{"test":"NODE_ENV=test mocha --reporter spec"},"_npmUser":{"name":"coderhaoxin","email":"haoxins@outlook.com"},"repository":{"url":"git+https://github.com/koajs/ratelimit.git","type":"git"},"_npmVersion":"4.1.2","description":"Rate limiter middleware for koa","directories":{},"_nodeVersion":"7.7.2","dependencies":{"ms":"^0.7.1","debug":"^2.2.0","thenify":"^3.2.0","ratelimiter":"^3.0.2"},"devDependencies":{"koa":"^1.2.0","mocha":"^2.4.5","redis":"^2.6.0-1","should":"^8.3.0","supertest":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/koa-ratelimit-3.0.0.tgz_1489320877281_0.4956225622445345","host":"packages-18-east.internal.npmjs.com"}},"4.0.0":{"name":"koa-ratelimit","version":"4.0.0","keywords":["koa","middleware","ratelimiter","ratelimit","rate"],"license":"MIT","_id":"koa-ratelimit@4.0.0","maintainers":[{"name":"aheckmann","email":"aaron.heckmann+github@gmail.com"},{"name":"coderhaoxin","email":"coderhaoxin@outlook.com"},{"name":"dead_horse","email":"dead_horse@qq.com"},{"name":"eivifj","email":"eivind.fjeldstad@gmail.com"},{"name":"fengmk2","email":"fengmk2@gmail.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"juliangruber","email":"julian@juliangruber.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"homepage":"https://github.com/koajs/ratelimit#readme","bugs":{"url":"https://github.com/koajs/ratelimit/issues"},"dist":{"shasum":"c126e6f6ae38aaa2fa12c62f4af7759157592f3c","tarball":"https://registry.npmjs.org/koa-ratelimit/-/koa-ratelimit-4.0.0.tgz","integrity":"sha512-ZQPm+K80es+4+TYlhlvqlI8EGONvKDegEFf7UIC5MOCxK8w+KMfNEBbfdaYN3IntchVr8IB5h4tj3qNBJdGhQA==","signatures":[{"sig":"MEQCIDvdqjlpnE5qsnbovtZN267ifiKiHz7W0Y/1tSL5sVrAAiB/Jk/GkU8JHFFpwmxaIqdKcvankl3UIpNrTgRkzfrmdw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["index.js"],"_shasum":"c126e6f6ae38aaa2fa12c62f4af7759157592f3c","engines":{"node":">= 7"},"gitHead":"1787007986a205fede2f91af58ba161fe99f0e8d","scripts":{"test":"NODE_ENV=test mocha --reporter spec"},"_npmUser":{"name":"coderhaoxin","email":"haoxins@outlook.com"},"repository":{"url":"git+https://github.com/koajs/ratelimit.git","type":"git"},"_npmVersion":"4.1.2","description":"Rate limiter middleware for koa","directories":{},"_nodeVersion":"7.7.2","dependencies":{"ms":"^0.7.1","debug":"^2.2.0","thenify":"^3.2.0","ratelimiter":"^3.0.2"},"devDependencies":{"koa":"^2.0.1","mocha":"^3.2.0","should":"^11.2.0","ioredis":"^3.0.0-0","supertest":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/koa-ratelimit-4.0.0.tgz_1489326144299_0.018274894449859858","host":"packages-12-west.internal.npmjs.com"}},"4.1.0":{"name":"koa-ratelimit","version":"4.1.0","keywords":["koa","middleware","ratelimiter","ratelimit","rate"],"license":"MIT","_id":"koa-ratelimit@4.1.0","maintainers":[{"name":"aheckmann","email":"aaron.heckmann+github@gmail.com"},{"name":"coderhaoxin","email":"haoxins@outlook.com"},{"name":"dead_horse","email":"dead_horse@qq.com"},{"name":"eivifj","email":"eivind.fjeldstad@gmail.com"},{"name":"fengmk2","email":"fengmk2@gmail.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"juliangruber","email":"julian@juliangruber.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"homepage":"https://github.com/koajs/ratelimit#readme","bugs":{"url":"https://github.com/koajs/ratelimit/issues"},"dist":{"shasum":"13cd01746bfdb40c972bfa1524326229cdf17068","tarball":"https://registry.npmjs.org/koa-ratelimit/-/koa-ratelimit-4.1.0.tgz","fileCount":4,"integrity":"sha512-i76/cNgIc7FB+SHloX65m5TxrupI1hSgJMTH9pOMakcUpoudzKcpyXJORkq6aPjdnH6zd/SnwlOF1HYMbk9xUw==","signatures":[{"sig":"MEQCIGyPcVdk+9gFKLWPZsBwrCwtZWXZg0ItIhaBr0sqWj7yAiAye3UJX8wRQhyLnZfGjZCNED8U7SWlvavyTBm3kzhf4A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6891},"files":["index.js"],"engines":{"node":">= 7"},"gitHead":"560a276e2da9f64f35eb67ec6571ac761d2ec255","scripts":{"test":"NODE_ENV=test mocha --reporter spec"},"_npmUser":{"name":"coderhaoxin","email":"haoxins@outlook.com"},"repository":{"url":"git+https://github.com/koajs/ratelimit.git","type":"git"},"_npmVersion":"5.6.0","description":"Rate limiter middleware for koa","directories":{},"_nodeVersion":"9.8.0","dependencies":{"ms":"^2.0.0","debug":"^2.2.0","thenify":"^3.2.0","ratelimiter":"^3.0.2"},"_hasShrinkwrap":false,"devDependencies":{"koa":"^2.0.1","mocha":"^3.2.0","should":"^11.2.0","ioredis":"^3.0.0-0","supertest":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/koa-ratelimit_4.1.0_1523181400198_0.6964620222785878","host":"s3://npm-registry-packages"}},"4.1.1":{"name":"koa-ratelimit","version":"4.1.1","keywords":["koa","middleware","ratelimiter","ratelimit","rate"],"license":"MIT","_id":"koa-ratelimit@4.1.1","maintainers":[{"name":"aheckmann","email":"aaron.heckmann+github@gmail.com"},{"name":"coderhaoxin","email":"haoxins@outlook.com"},{"name":"dead_horse","email":"dead_horse@qq.com"},{"name":"eivifj","email":"eivind.fjeldstad@gmail.com"},{"name":"fengmk2","email":"fengmk2@gmail.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"juliangruber","email":"julian@juliangruber.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"homepage":"https://github.com/koajs/ratelimit#readme","bugs":{"url":"https://github.com/koajs/ratelimit/issues"},"dist":{"shasum":"7fa4f656dbde3cc69a77288eb57769b56e506f01","tarball":"https://registry.npmjs.org/koa-ratelimit/-/koa-ratelimit-4.1.1.tgz","fileCount":4,"integrity":"sha512-Bh06gJu+8hLd8Kbqm0hFsQRi8KXhSoHPljxV/Xuv0AZfwhypxFT7ZSANLdtLVHigjOTbFGd6LOQhsaiCW5QLkA==","signatures":[{"sig":"MEQCIFXGRCFvCyOCXCEl+anShLCD7dF3Haatz3qY7vmucbSDAiB805NXAIkjq1sLS2M/sX8iPvzbHJwriNEROy5+JO8k9w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7012,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbDTunCRA9TVsSAnZWagAAE8EQAJUL31nx0DeD5J2xmwaZ\n45FKdtPYs9WdClQwUQ3G17gc5yCEMKSoLet3HodN+38AJ1VFvt2rt9ao3Ak1\nlPIDJEIAHAxBDvsqvWeKPvZ9oWJ/WAq9LVWIKzSZEzRIdzv1g1KsMxkv0aW/\nK/hUlRa9Wrr0yazajFGN3Oc+D5MU6Ovj7eF1atMYzVIBBzc5WvzhdwHICuNt\nhePdRszuSzf2cSK5bmA6mQukq9JDXni4YRi4c/8uz/WJqnrF2zi2BiITR57+\nWlTPNFvdlTIuiVgkX8sJnBebwnSXxOvwpDn4pwpp/xdOg6kIiLi8klBbdGXU\nwebhRAdi8qeIcAAZ+LhLDy6Uph6ZvY04f7+RAQIDPE8EsFtjYYU1+b7IqD8e\nLRSF4JPKk94qE/MXdzf0JqiRdEZoO7Bxt2ihoq8U8rLvkb1wuIpcHF0I46uF\nZUgHXwAfzLAj4MUpvLTDA1YVB5Ir8d10VmITk8KvfUOq9NP+Uw09BHItPm8v\n2vrddh/ex7QtKFdPNnxGehG1vCTxKEy5YKE65TjiRlD1CYBUqbdTJTJtBHo4\nAEmc0OSQLI9Ek09wDk6zLRPPEOCdDm5odM+ZwRLEB3kDLiY3ClQizwTGi1Rg\nBRXpWc8MuRjFReh4xSP9COwKBYg8ZH3xMkLVvgu4e6bjn/J089MH8HZjbjbc\n93XK\r\n=VS7T\r\n-----END PGP SIGNATURE-----\r\n"},"files":["index.js"],"engines":{"node":">= 8"},"gitHead":"7ec542621420af304b71c2275c15ac50bf57cb7a","scripts":{"test":"NODE_ENV=test mocha --reporter spec --exit"},"_npmUser":{"name":"coderhaoxin","email":"haoxins@outlook.com"},"repository":{"url":"git+https://github.com/koajs/ratelimit.git","type":"git"},"_npmVersion":"6.1.0","description":"Rate limiter middleware for koa","directories":{},"_nodeVersion":"10.0.0","dependencies":{"ms":"^2.1.1","debug":"^3.1.0","thenify":"^3.3.0","ratelimiter":"^3.0.3"},"_hasShrinkwrap":false,"devDependencies":{"koa":"^2.5.1","mocha":"^5.2.0","should":"^13.2.1","ioredis":"^3.2.2","supertest":"^3.1.0"},"_npmOperationalInternal":{"tmp":"tmp/koa-ratelimit_4.1.1_1527593894623_0.8402620835621579","host":"s3://npm-registry-packages"}},"4.1.2":{"name":"koa-ratelimit","version":"4.1.2","keywords":["koa","middleware","ratelimiter","ratelimit","rate"],"license":"MIT","_id":"koa-ratelimit@4.1.2","maintainers":[{"name":"aheckmann","email":"aaron.heckmann+github@gmail.com"},{"name":"coderhaoxin","email":"haoxins@outlook.com"},{"name":"dead_horse","email":"dead_horse@qq.com"},{"name":"eivifj","email":"eivind.fjeldstad@gmail.com"},{"name":"fengmk2","email":"fengmk2@gmail.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"juliangruber","email":"julian@juliangruber.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"homepage":"https://github.com/koajs/ratelimit#readme","bugs":{"url":"https://github.com/koajs/ratelimit/issues"},"dist":{"shasum":"3482f6c04f25fbcd2506b0ebf6e301a45400f9b4","tarball":"https://registry.npmjs.org/koa-ratelimit/-/koa-ratelimit-4.1.2.tgz","fileCount":4,"integrity":"sha512-VB8ve0U6x5hGxlxL+a9JwadgFZK1cCbjDIkB4lyt/joLYWa3AUidm3v3Z3XK/Z2831sLb9Ta/nBtITWhXOuKtg==","signatures":[{"sig":"MEYCIQDay/tIzm7WLejX98cLMiM5KibwmueWcFPsGlPcgtvFxgIhALBAYN3qM34hYHzuhH2plToE8B8D1/HW+/zonPSg7QdG","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7076,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbIJWxCRA9TVsSAnZWagAAHH4P/35vA1cY9BQN2946E2x4\nF6etSah1gBLAqMO1BdsVFwQqZzFe+74EaZNifRIgL3nmYoPrBjuYWZO4T7cl\ncmjIjwQE2iv3Tx337MvXMZHniFNyVSKrpP+uk+WL55S+CFBZabdxxHB/ilJ/\nLXiJQf3j2vFmv6ykipgmqlMghGQtCc5UuNCoKSYv2bMA0jOhyNukjcwSUr+O\n5T6wZLzIMRbnQmWIZOG6Bf69G/wlM+heJA7e9jLj0dlf9Bht7DKfmn8b5iJM\noZfcBE1GYnNVXTYXQfGHZgeQGdfuYqidiel680Yk3WedvSzRGUTZN6ZYy3jj\nQk2A452MGITiQGLVNLddxdDojLQf0PVcj7AsCFJQkTPALKCyKgLvL2Izw6Xt\nZHDsiSf+o3bphFfrv+wIjX2sYxxfs3YBsOY1OR1/OnrP3Rc63crdCFVrhBo4\njCOlUE0YP65jfgs0hWQy6o7FlRoPAxC3bLjWZDEwQRl3qQS1UBpU/WTDW3yV\n7dYSgrF7PCn0AgSvIJVTWG7d7Mhdb+EqsCCL4DUK8iGMLurBwwQj1NPI0YFT\nan1i9SPflW7RrZgnAKhRd7bLnMsZTP9IvNjInYg3usAxDiZykdHN1YNoXfIW\nZfUlNS5+2sQ1oZtfx/XXNKdW/opi06y3lCGQKBDx8I4b6EtuEiGVvi2jQXHt\nvAD+\r\n=HB0L\r\n-----END PGP SIGNATURE-----\r\n"},"files":["index.js"],"engines":{"node":">= 8"},"gitHead":"783d751a645491f5164ebe929c7aa7a49b9b2e2c","scripts":{"test":"NODE_ENV=test mocha --reporter spec --exit"},"_npmUser":{"name":"dead_horse","email":"dead_horse@qq.com"},"repository":{"url":"git+https://github.com/koajs/ratelimit.git","type":"git"},"_npmVersion":"5.6.0","description":"Rate limiter middleware for koa","directories":{},"_nodeVersion":"8.11.1","dependencies":{"ms":"^2.1.1","debug":"^3.1.0","ratelimiter":"^3.0.3"},"_hasShrinkwrap":false,"devDependencies":{"koa":"^2.5.1","mocha":"^5.2.0","should":"^13.2.1","ioredis":"^3.2.2","supertest":"^3.1.0"},"_npmOperationalInternal":{"tmp":"tmp/koa-ratelimit_4.1.2_1528862128840_0.09973334637429598","host":"s3://npm-registry-packages"}},"4.2.0":{"name":"koa-ratelimit","version":"4.2.0","keywords":["koa","middleware","ratelimiter","ratelimit","rate"],"license":"MIT","_id":"koa-ratelimit@4.2.0","maintainers":[{"name":"aheckmann","email":"aaron.heckmann+github@gmail.com"},{"name":"coderhaoxin","email":"haoxins@outlook.com"},{"name":"dead_horse","email":"dead_horse@qq.com"},{"name":"eivifj","email":"eivind.fjeldstad@gmail.com"},{"name":"fengmk2","email":"fengmk2@gmail.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"juliangruber","email":"julian@juliangruber.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"homepage":"https://github.com/koajs/ratelimit#readme","bugs":{"url":"https://github.com/koajs/ratelimit/issues"},"dist":{"shasum":"fa286349a98423d560e9c1684c8eae3d938acf58","tarball":"https://registry.npmjs.org/koa-ratelimit/-/koa-ratelimit-4.2.0.tgz","fileCount":4,"integrity":"sha512-9gOH38TUafJfpfzVlQUrHelNnh/Nu4Y5wy0SQksB7xOhygaKZDVZQM88zBBIgGJW6RSe6zymQzU/R0Bu4Mun3g==","signatures":[{"sig":"MEUCIB3JpXV48EKgh48EFe24Aj5DdgGFGOLrNIaPebsDe6IVAiEA1Np84w8B6DVENEvZJP+1S1vSshiDIoT9k4vxxQxKj3I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7522,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcVoEbCRA9TVsSAnZWagAA92sP/106UbQNroIy8BbKv27e\nh1rnin/6cs6eScyFrQuCMOwMywGVCmkNFRpFp5VIdcEiaAgGIqNU+B5AKR2I\nb8Qb/tZ7zdlj5pJ653qx3G6xSjAe+L8mybjfZgPPSa86tHZZVS/rLb0Ns5qt\njo780BAdHFFghIeJaZQa4epBMpoDce2IkF5vsVHrexXemQvBu4sI0v4PLlkd\nz1BCClPCGclC2RfOmHUf/rdjjyP4sBksjIKn3AAUrCtxP9Obbo1V/eGrYF2r\nFbw2z0PK3VWKOCvxro7EMkTFqjsz58Thi1dOHn2PiuczEL2k2IRIHeqXXDXY\nhV892rI9arwsRJIUrV/nmUMlczQbd5Iw+ybiCXYKB+HTO7jtwjavtXF7R+Pf\nSgIJ60G+0+ZUigX9gcpufFSvWPhoQDadJ+l+AhROQfBG5Yy4asyLM1eUR1/r\nCJbYFckJE+ds0WNh4DUu++vuRefcVxka7/gNPY79rnmFu+eydh4pnhRtni17\nIU2d3wNDfE6fdhPDxUC4DVzak1iuiq7HRCFtYxU6yNWFFh9HMA1d1L3uqime\nuHOpxnxasCOJPD/vx4AyaW0uLxc/eku8n0ps6HCyDhljDbASFR4GaKbnlfLf\naPW48I7ZGz6dxFvegN9KlRONE8G2Xm7ZYwUBr/8M250hS8t8BwVEDXd4Xrf8\nf7jD\r\n=Y3We\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 8"},"gitHead":"2bc9e8b3f4fd1907951f923c10d35ddab2100afd","scripts":{"test":"NODE_ENV=test mocha --reporter spec --exit"},"_npmUser":{"name":"coderhaoxin","email":"haoxins@icloud.com"},"repository":{"url":"git+https://github.com/koajs/ratelimit.git","type":"git"},"_npmVersion":"6.1.0","description":"Rate limiter middleware for koa","directories":{},"_nodeVersion":"10.6.0","dependencies":{"ms":"^2.1.1","debug":"^4.1.1","ratelimiter":"^3.2.0"},"_hasShrinkwrap":false,"devDependencies":{"koa":"^2.7.0","mocha":"^5.2.0","should":"^13.2.3","ioredis":"^4.6.2","supertest":"^3.4.2"},"_npmOperationalInternal":{"tmp":"tmp/koa-ratelimit_4.2.0_1549173018476_0.06599570115000875","host":"s3://npm-registry-packages"}},"4.3.0":{"name":"koa-ratelimit","version":"4.3.0","keywords":["koa","middleware","ratelimiter","ratelimit","rate"],"license":"MIT","_id":"koa-ratelimit@4.3.0","maintainers":[{"name":"aheckmann","email":"aaron.heckmann+github@gmail.com"},{"name":"coderhaoxin","email":"haoxins@outlook.com"},{"name":"dead_horse","email":"dead_horse@qq.com"},{"name":"eivifj","email":"eivind.fjeldstad@gmail.com"},{"name":"fengmk2","email":"fengmk2@gmail.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"juliangruber","email":"julian@juliangruber.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"homepage":"https://github.com/koajs/ratelimit#readme","bugs":{"url":"https://github.com/koajs/ratelimit/issues"},"dist":{"shasum":"2129657f1ca5d42d7aba3faba11ce623d6ee9071","tarball":"https://registry.npmjs.org/koa-ratelimit/-/koa-ratelimit-4.3.0.tgz","fileCount":7,"integrity":"sha512-Q6vothwYLyebWcdqplHwqJ9nd+QUqKmbRz1CqzCCUhNsEpEvGXaY7ZVXl3g4RiQq7LnAj643zlWD1WX8UllQBw==","signatures":[{"sig":"MEQCIExTkNECGLZlu6FJruB7FgQY8nAPrWadsZSiIf4mM8VwAiAtA976AGafeSPlhQsghOnMQkCjHBkweXiZf3v3muLA+w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11839,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdy2qSCRA9TVsSAnZWagAAEHoP/3wFFN8QJt+mVxQI8NVP\nhAf00G0CbBwYgknQyPxBKS0HpKIIW4oDPyfsQ3jEUpKdgq8N96xmkINBSibN\nvumm/0zQMP+koVD6PZlmmkGsYJUmrW96ix3U1G3oGthIMhk1e4CHfzvi3MWB\nvkqUHo2yPIK3KBmuCxZW0nqk2LQgq7g9cA4Z3INMdUWES5OrovYnl6tjAC2f\n47ek1NP/dp7tYQLMZsqATQqB8tsm5BvuKoUoINa/9CGJ4K4eP/uh0HdN+BOz\nrQR7uT8Kk0XYSLTiQ2c0KAbfXQmVQbBRTU1h5JVlTenvQRNHd1+AB1t6i/bi\ndcTTaEyjw7zWw/iFG34jItD83QbNSYGm9PDq9Og0Nix5QvfUovTpZRhem49j\nendx5U2OkXUsq+A0eOpryH1i9ofVGuZcyjLaApyXPBpDRmgdpV95zZBQ2hr8\n3iqqlnkBCZAcKPkGRXx77LUI8vgNS4/6tOq6lrxW+x+Pi/9Dr5kFe+EGuVmZ\n5iPTaQ0KFHwQ/TNPmGRCaEh/Zs1EDPHf44kBzWhxLP0jMA5TwYXba60U3ThD\n2Dg1taB6wADJs/GRb4jZYkUe0J4fIF+VT0lwFz5SOgldTUnAQow2jGHA6g/X\ny9VERQAwvFjMYLKUCp96nIA8f5kdhi1YwVWe272a/gLzDh0gxxvuzxL58z+U\n/q0o\r\n=HMNJ\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 8"},"gitHead":"004f36857486460bc67641087480ea55b0de64e0","scripts":{"test":"NODE_ENV=test mocha --reporter spec --exit"},"_npmUser":{"name":"coderhaoxin","email":"haoxinst@gmail.com"},"repository":{"url":"git+https://github.com/koajs/ratelimit.git","type":"git"},"_npmVersion":"6.12.0","description":"Rate limiter middleware for koa","directories":{},"_nodeVersion":"13.0.1","dependencies":{"ms":"^2.1.1","debug":"^4.1.1","ratelimiter":"^3.2.0","lodash.defaults":"^4.2.0"},"_hasShrinkwrap":false,"devDependencies":{"koa":"^2.7.0","mocha":"^5.2.0","should":"^13.2.3","ioredis":"^4.6.2","supertest":"^3.4.2"},"_npmOperationalInternal":{"tmp":"tmp/koa-ratelimit_4.3.0_1573612178238_0.428898876834112","host":"s3://npm-registry-packages"}},"4.2.1":{"name":"koa-ratelimit","version":"4.2.1","keywords":["koa","middleware","ratelimiter","ratelimit","rate"],"license":"MIT","_id":"koa-ratelimit@4.2.1","maintainers":[{"name":"aheckmann","email":"aaron.heckmann+github@gmail.com"},{"name":"coderhaoxin","email":"haoxins@outlook.com"},{"name":"dead_horse","email":"dead_horse@qq.com"},{"name":"eivifj","email":"eivind.fjeldstad@gmail.com"},{"name":"fengmk2","email":"fengmk2@gmail.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"juliangruber","email":"julian@juliangruber.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"homepage":"https://github.com/koajs/ratelimit#readme","bugs":{"url":"https://github.com/koajs/ratelimit/issues"},"dist":{"shasum":"2dfed49d0aa5d83664adb162e82eaeb8fea92132","tarball":"https://registry.npmjs.org/koa-ratelimit/-/koa-ratelimit-4.2.1.tgz","fileCount":7,"integrity":"sha512-LKheeRD+nNZQd8ePDWHAhwcdl+rHvnAgilMjFMApLpyn3qnU2JER+K22BCR+b+u4Mb6JwNcwjGWjmEyEoApDSg==","signatures":[{"sig":"MEYCIQCY3BVVs5HalBt8RdYNkNtGeArq1geLwph0H2CSdWPiCgIhAJmGHbk5y2LmaRMopKLnVUuCCS3jcPRmEAq8PXlW59fI","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12566,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd47EXCRA9TVsSAnZWagAA0/cP/A1+qrl9m2WLj4OeFLSF\naUhRa965ydJ1IS6wJ4yWsta7xfYWonG/aUYVPODmxW2h0wt0yhgWQ8+i0qGK\nqYUFNyBS6TakkfDa/F4AxYMBgEXmhnyyQK5dZh3N4m2JYZ77qKAW4O4bokIF\nhDzLi+WuGuhTbAkEvdv0x4kmF9XcdsKwyLmy6OxWQYLcOV3Z3+j0xeH2pBgP\npsiBs8c0xlTmyLlDyaxVAEtO4KhLwG0NBkI/J5fAf5gKN/Vwf3dPrDejhW0l\nQSZEJKt/oO17Ymt6Ta14NTXORyN38G1/b+1am8L7behcmu5LNW8qTPE5oeiu\n/XeojEpldO8pxmmX+av/3Gv+/2LUCb1Q9uDzT8VroscfHY18AKjK8VLXniYt\nj3FonhAaJP5CtCimB7E5caHdTMov8h8SMxk1x1muKCmL+OwxIha5Q5SjmvO8\nWCKMUoCXVpQyY/rCp4EC4lup1oSakFdAccAol2Ey0iV8ymysXsBqtxkW4k4+\nr+qoY2B75dFLDYSpmnPmR8tTjtKORWbI2dYOyintxVSOownH5M8fw1nqHpxb\nk8YPsD425DcoWxfyJjMwfcwdtdD3CUQbiVTtvYtuvJ/okUQ1vb9WqM4DBt63\n39hUur39/3O/d+N9GNju8F/6EIuSnCzruZWyxC3bUvUVScBJaTkGkB9SSilT\nGVEY\r\n=jM9E\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 8"},"gitHead":"498a570c3480d264ede39886ede42319fe2ecc32","scripts":{"test":"NODE_ENV=test mocha --reporter spec --exit"},"_npmUser":{"name":"coderhaoxin","email":"haoxinst@gmail.com"},"repository":{"url":"git+https://github.com/koajs/ratelimit.git","type":"git"},"_npmVersion":"6.13.1","description":"Rate limiter middleware for koa","directories":{},"_nodeVersion":"13.2.0","dependencies":{"ms":"^2.1.1","debug":"^4.1.1","ratelimiter":"^3.2.0","lodash.defaults":"^4.2.0"},"_hasShrinkwrap":false,"devDependencies":{"koa":"^2.7.0","mocha":"^5.2.0","should":"^13.2.3","ioredis":"^4.6.2","supertest":"^3.4.2"},"_npmOperationalInternal":{"tmp":"tmp/koa-ratelimit_4.2.1_1575203094752_0.8322697382084279","host":"s3://npm-registry-packages"}},"5.0.0":{"name":"koa-ratelimit","version":"5.0.0","keywords":["koa","middleware","ratelimiter","ratelimit","rate"],"license":"MIT","_id":"koa-ratelimit@5.0.0","maintainers":[{"name":"aheckmann","email":"aaron.heckmann+github@gmail.com"},{"name":"coderhaoxin","email":"haoxinst@gmail.com"},{"name":"niftylettuce","email":"niftylettuce@gmail.com"},{"name":"juliangruber","email":"julian@juliangruber.com"},{"name":"eivifj","email":"eivind.fjeldstad@gmail.com"},{"name":"dead_horse","email":"dead_horse@qq.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"fengmk2","email":"fengmk2@gmail.com"}],"homepage":"https://github.com/koajs/maxrequests#readme","bugs":{"url":"https://github.com/koajs/maxrequests/issues"},"dist":{"shasum":"187497a57c0d7c1efed4238e27b09471273c8e70","tarball":"https://registry.npmjs.org/koa-ratelimit/-/koa-ratelimit-5.0.0.tgz","fileCount":7,"integrity":"sha512-iUNvd1jVpoev0OrVsqNDP2Lk9TxEejd3kRPi7WLuhqOMnntFaYV9VPZm3EpEwsg0IBgC0dm/JyZEQvVAZaggNw==","signatures":[{"sig":"MEYCIQCeLLLN1HIYNJ6V+7+FwyPZBt3Zny0SraeIzfjqc1H8cAIhAL4lMNoc51QWlsTqoLPtjZUh90rtz6j04ekBuYBmGIXK","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12457,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfnaxDCRA9TVsSAnZWagAAJRcP/iY65UvNcE75n+fNvugo\nB9yuci0hIk67QZiCIuz1VzHT4wqze3cCbifFoxdD8TS9+OA8x9EfLPjRteVv\nkpZcYcXvyuxNT/MTkQ4mcsmS3htuElutoeM6lItRCbiJZvS0I1aACEuDkUUo\nGj0jB7fHsi54OjNad5gRlbftlhwBn3D42nigSpEUG8T798YIkDcNJ9c8e+DF\n+aSbf+6QciQZhumHkvKss5UbbAKiUqU8BlN+Hi8WYrryirCi93JKrrN04jxg\nuX57iHlEKP5qW90dpjgshAwYPFXSqEmpDyWFQsMeD/YCTjNhN0cTtylgoVlN\ndsFClbhxcw7KXOsWNhwjsv2c99PZmgrhumyYUL/oCyYsUjZLpgZbyHfelQzt\nY6Z5c0MUEaLyPlk54Yjc+6DFzuqCtzbkC4m5sQkCRfeD2rWXxH0w4Ji3kWsi\nnwXP8DI2p+bOJeFiY6NIugSLwwPz40tivXFHnRLBBSyITcawxA6Dd3xAA6qK\nwi/BzKyASl0M+aN2+7usT8fuWMnj9aJJEZ8SHfo5yobe3BW+LKQIvd6B6IBr\nOKlcR6BdDNE361CccGt0I04ZSIcReC0e3ChPWLZF3SllWTynz5HXy+kvAXMu\nyrY6mbarAhlSxWXZIe02VMeFUJzuEeJsSioDgBU8LiFLl8MgnuywJtHNOAGx\n5Sl8\r\n=9u1F\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 10"},"gitHead":"ff04fe0fd9848cb9e1e24cf01929e7fc91546e08","scripts":{"ci":"rimraf .nyc_output && npm run lint && npm run test-cov","lint":"eslint .","test":"mocha -r should --exit","test-cov":"nyc npm run test"},"_npmUser":{"name":"niftylettuce","email":"niftylettuce@gmail.com"},"repository":{"url":"git+https://github.com/koajs/ratelimit.git","type":"git"},"_npmVersion":"6.14.4","description":"Rate limiter middleware for koa","directories":{},"_nodeVersion":"12.18.0","dependencies":{"ms":"^2.1.2","debug":"^4.1.1","async-ratelimiter":"^1.2.8"},"_hasShrinkwrap":false,"devDependencies":{"koa":"^2.13.0","nyc":"^15.1.0","mocha":"^8.1.3","eslint":"^7.5.0","rimraf":"^3.0.2","should":"^13.2.3","ioredis":"^4.17.3","supertest":"^4.0.2","eslint-plugin-node":"^11.1.0","eslint-plugin-import":"^2.22.0","eslint-plugin-promise":"^4.2.1","eslint-config-standard":"^14.1.1","eslint-plugin-standard":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/koa-ratelimit_5.0.0_1604168770437_0.8975915183903453","host":"s3://npm-registry-packages"}},"5.0.1":{"name":"koa-ratelimit","version":"5.0.1","keywords":["koa","middleware","ratelimiter","ratelimit","rate"],"license":"MIT","_id":"koa-ratelimit@5.0.1","maintainers":[{"name":"aheckmann","email":"aaron.heckmann+github@gmail.com"},{"name":"coderhaoxin","email":"haoxinst@gmail.com"},{"name":"niftylettuce","email":"niftylettuce@gmail.com"},{"name":"juliangruber","email":"julian@juliangruber.com"},{"name":"eivifj","email":"eivind.fjeldstad@gmail.com"},{"name":"dead_horse","email":"dead_horse@qq.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"fengmk2","email":"fengmk2@gmail.com"}],"homepage":"https://github.com/koajs/maxrequests#readme","bugs":{"url":"https://github.com/koajs/maxrequests/issues"},"dist":{"shasum":"e4a42c9f43510351600ba052e788fae7d4bf559d","tarball":"https://registry.npmjs.org/koa-ratelimit/-/koa-ratelimit-5.0.1.tgz","fileCount":7,"integrity":"sha512-H7IEkNS/b18Uwtm3RIvAK3orJE8ew8wEBsnezlQWz7GTWqEnDtbTNfTedVXjj07gyh8gWTkEdODEXRquGCBqmg==","signatures":[{"sig":"MEYCIQDx3+N3K3Tg+9O6MhPdzt9N0S7ePc6y+e3iyFjZnlk3xgIhALiKkclaS91EoAr+5cvVeZNYk4sML9bba2zMaXA1iKZH","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12457,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg9cKZCRA9TVsSAnZWagAAMSIP+wVya1h3/h7mtTXnGUoW\nu77ykDIHJk5vRb14SOMoJg3nletaTZyI8V9rOehj73dK4UyfNKgsdlJFK0pW\nBSZfSKRKV3a0/zykTb2gjK1B8HLfvHQx1f2iLwyvsYoAPszzXAoywuS97TB/\nvW6fEq3UWUMOOyofeHNuCVOslZDPmxhwtLkXyiooELPiVhLTzayZbVu/YMPd\ngaz8SFOLs3iB7YxKJHsWQe0KhKi2n7GElnae/k85FfqqTsq+aoaVmH0LFEFa\nsaF+1zna9UvP9KCd4wqsUxMPaQXnAyU8qmh/karPhx9XAT62ItriUzxcKU9b\ngRnX1/Y8bG4zpmMH177uhhe82xrtNJD/nfqWcOnD8+auAK2jKKZ+qjQg8HIS\n8x2adhFpmlj/un2bIJbc5fl4nTrW/yL3y5xq1NnLvMY8gGm1bKbRaC47auvT\n3uAOcXqGVUbhRi7k0aAKN2YP5M9QULe8d+tNG3COlOtwo+zH73OArG3Aa/OQ\nPeRK1wDcmrkFSxR9r3T29Seqc3AbrL+ppdT1i/6ai0Q9bTE9feTmDA/51u1k\n8vBbKiuNTWji/n0Jt1Dyb+GT3Ia0+jUwy6ncOw5nldT3xByJg6rY7KRJJGyw\nVcN9i6SetyN8QbiPUVN0cShNH6ubovNbjj3kHuadPc6YQZwohsFCS44s8lXF\n2LC4\r\n=vHlE\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">= 10"},"gitHead":"551c332af34d1389325aad811a1a7f02408a7a5f","scripts":{"ci":"rimraf .nyc_output && npm run lint && npm run test-cov","lint":"eslint .","test":"mocha -r should --exit","test-cov":"nyc npm run test"},"_npmUser":{"name":"niftylettuce","email":"niftylettuce@gmail.com"},"repository":{"url":"git+https://github.com/koajs/ratelimit.git","type":"git"},"_npmVersion":"6.14.13","description":"Rate limiter middleware for koa","directories":{},"_nodeVersion":"14.17.0","dependencies":{"ms":"^2.1.2","debug":"^4.1.1","async-ratelimiter":"^1.3.0"},"_hasShrinkwrap":false,"devDependencies":{"koa":"^2.13.0","nyc":"^15.1.0","mocha":"^8.1.3","eslint":"^7.5.0","rimraf":"^3.0.2","should":"^13.2.3","ioredis":"^4.17.3","supertest":"^4.0.2","eslint-plugin-node":"^11.1.0","eslint-plugin-import":"^2.22.0","eslint-plugin-promise":"^4.2.1","eslint-config-standard":"^14.1.1","eslint-plugin-standard":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/koa-ratelimit_5.0.1_1626718873459_0.3375674560093096","host":"s3://npm-registry-packages"}},"5.1.0":{"name":"koa-ratelimit","version":"5.1.0","keywords":["koa","middleware","ratelimiter","ratelimit","rate"],"license":"MIT","_id":"koa-ratelimit@5.1.0","maintainers":[{"name":"coderhaoxin","email":"haoxinst@gmail.com"},{"name":"niftylettuce","email":"niftylettuce@gmail.com"},{"name":"aaron","email":"aaron.heckmann+github@gmail.com"},{"name":"juliangruber","email":"julian@juliangruber.com"},{"name":"eivifj","email":"eivind.fjeldstad@gmail.com"},{"name":"dead_horse","email":"dead_horse@qq.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"fengmk2","email":"fengmk2@gmail.com"},{"name":"titanism","email":"npm@titanism.com"}],"homepage":"https://github.com/koajs/maxrequests#readme","bugs":{"url":"https://github.com/koajs/maxrequests/issues"},"dist":{"shasum":"4686e10a4ffd3c0b3b9b9416d4634b706a1d4c52","tarball":"https://registry.npmjs.org/koa-ratelimit/-/koa-ratelimit-5.1.0.tgz","fileCount":6,"integrity":"sha512-bXz1UkF9l0PTaYfj5bDCX85NFWA1W3/miBMpZjS+BEKajNPHQaqgaMDwZMM2RdbLGTYRi+mHIOjNTUjTdWjhKA==","signatures":[{"sig":"MEQCIAikid5uXMsWN4m1rE9kUfLvTSlYMUglkz/t3+JoZ8KcAiAR5/ZIE6iU41G64Tfs33dBQ6jkcT5lIiGCKj0t3ORSKQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10803},"engines":{"node":">= 10"},"gitHead":"ff212ea1f1e935b933c277b4fefe1369f66ffc93","scripts":{"ci":"rimraf .nyc_output && npm run lint && npm run test-cov","lint":"eslint .","test":"mocha -r should --exit","test-cov":"nyc npm run test"},"_npmUser":{"name":"titanism","email":"npm@titanism.com"},"repository":{"url":"git+https://github.com/koajs/ratelimit.git","type":"git"},"_npmVersion":"9.5.1","description":"Rate limiter middleware for koa","directories":{},"_nodeVersion":"18.16.0","dependencies":{"ms":"^2.1.2","debug":"^4.1.1","async-ratelimiter":"^1.3.0"},"_hasShrinkwrap":false,"devDependencies":{"koa":"^2.13.0","nyc":"^15.1.0","mocha":"^8.1.3","eslint":"^7.5.0","rimraf":"^3.0.2","should":"^13.2.3","ioredis":"^4.17.3","supertest":"^4.0.2","eslint-plugin-node":"^11.1.0","eslint-plugin-import":"^2.22.0","eslint-plugin-promise":"^4.2.1","eslint-config-standard":"^14.1.1","eslint-plugin-standard":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/koa-ratelimit_5.1.0_1701836158913_0.4060815481198994","host":"s3://npm-registry-packages"}},"6.0.0":{"name":"koa-ratelimit","version":"6.0.0","keywords":["koa","middleware","rate","ratelimit","ratelimiter"],"author":{"name":"Koa.js contributors"},"license":"MIT","_id":"koa-ratelimit@6.0.0","maintainers":[{"name":"coderhaoxin","email":"haoxinst@gmail.com"},{"name":"niftylettuce","email":"niftylettuce@gmail.com"},{"name":"aaron","email":"aaron.heckmann+github@gmail.com"},{"name":"juliangruber","email":"julian@juliangruber.com"},{"name":"eivifj","email":"eivind.fjeldstad@gmail.com"},{"name":"dead_horse","email":"dead_horse@qq.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"fengmk2","email":"fengmk2@gmail.com"},{"name":"titanism","email":"npm@titanism.com"}],"contributors":[{"url":"https://forwardemail.net","name":"Forward Email"}],"homepage":"https://github.com/koajs/ratelimit#readme","bugs":{"url":"https://github.com/koajs/ratelimit/issues"},"dist":{"shasum":"9d83e3dba7f7147df45937929b0356924052fda0","tarball":"https://registry.npmjs.org/koa-ratelimit/-/koa-ratelimit-6.0.0.tgz","fileCount":6,"integrity":"sha512-UH1CXCF+yVhx5r5Fvx5eOKhc8sMHU/HhGBNCOaJ/SLO0+IcB6g5aKIE63eWsq7L3niwQWLfEbDtNGU3epKt0Hg==","signatures":[{"sig":"MEUCIBiovXGPn00PWVwsC0xozm2iHbRYKKGFefbcfmpVkgoyAiEAnqmDWrf6zdP3ktQFrD7yyUcnEWEQhuQckuYbIjza/pE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11764},"main":"index.js","engines":{"node":">=18"},"gitHead":"212a4ff57f5aaff9c51a7633a321bfd2c051ea17","scripts":{"lint":"xo --fix && remark . -qfo && fixpack","test":"mocha -r should --exit","prepare":"husky","pretest":"npm run lint","pre-commit":"lint-staged"},"_npmUser":{"name":"titanism","email":"npm@titanism.com"},"repository":{"url":"git+https://github.com/koajs/ratelimit.git","type":"git"},"_npmVersion":"10.7.0","description":"Rate limiter middleware for koa","directories":{},"_nodeVersion":"18.20.4","dependencies":{"ms":"^2.1.3","async-ratelimiter":"^1.5.2"},"_hasShrinkwrap":false,"devDependencies":{"xo":"^0.56.0","koa":"^3.0.0","chai":"^5.2.0","husky":"^9.1.7","mocha":"^11.5.0","eslint":"^8.55.0","should":"^13.2.3","fixpack":"^4.0.0","ioredis":"^5.6.1","cross-env":"^7.0.3","supertest":"^7.1.1","remark-cli":"11","lint-staged":"^15.4.3","@commitlint/cli":"^19.8.1","remark-preset-github":"^4.0.4","eslint-config-xo-lass":"^2.0.1","@commitlint/config-conventional":"^19.8.1"},"_npmOperationalInternal":{"tmp":"tmp/koa-ratelimit_6.0.0_1749153280184_0.5728594943166396","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2013-11-13T21:23:23.797Z","modified":"2026-05-11T19:10:25.938Z","1.0.0":"2013-11-29T23:01:46.073Z","1.0.1":"2013-11-29T23:02:09.670Z","1.0.3":"2014-05-24T07:52:02.180Z","1.1.0":"2014-12-03T04:00:19.685Z","2.0.0":"2015-01-02T05:31:04.592Z","2.1.0":"2015-01-04T01:48:53.987Z","2.2.0":"2016-04-11T02:08:52.195Z","2.3.0":"2016-05-12T04:26:39.024Z","2.4.0":"2016-10-26T02:34:51.113Z","3.0.0":"2017-03-12T12:14:38.911Z","4.0.0":"2017-03-12T13:42:24.538Z","4.1.0":"2018-04-08T09:56:40.263Z","4.1.1":"2018-05-29T11:38:14.677Z","4.1.2":"2018-06-13T03:55:28.981Z","4.2.0":"2019-02-03T05:50:18.612Z","4.3.0":"2019-11-13T02:29:38.394Z","4.2.1":"2019-12-01T12:24:54.877Z","5.0.0":"2020-10-31T18:26:10.581Z","5.0.1":"2021-07-19T18:21:13.649Z","5.1.0":"2023-12-06T04:15:59.167Z","6.0.0":"2025-06-05T19:54:40.367Z"},"bugs":{"url":"https://github.com/koajs/ratelimit/issues"},"author":{"name":"Koa.js contributors"},"license":"MIT","homepage":"https://github.com/koajs/ratelimit#readme","keywords":["koa","middleware","rate","ratelimit","ratelimiter"],"repository":{"url":"git+https://github.com/koajs/ratelimit.git","type":"git"},"description":"Rate limiter middleware for koa","contributors":[{"url":"https://forwardemail.net","name":"Forward Email"}],"maintainers":[{"email":"haoxinst@gmail.com","name":"coderhaoxin"},{"email":"niftylettuce@gmail.com","name":"niftylettuce"},{"email":"julian@juliangruber.com","name":"juliangruber"},{"email":"eivind.fjeldstad@gmail.com","name":"eivifj"},{"email":"dead_horse@qq.com","name":"dead_horse"},{"email":"tj@vision-media.ca","name":"tjholowaychuk"},{"email":"jonathanrichardong@gmail.com","name":"jongleberry"},{"email":"fengmk2@gmail.com","name":"fengmk2"},{"email":"npm@titanism.com","name":"titanism"}],"readme":"# [**koa-ratelimit**](https://github.com/koajs/ratelimit)\n\n[![build status](https://github.com/koajs/ratelimit/actions/workflows/ci.yml/badge.svg)](https://github.com/koajs/ratelimit/actions/workflows/ci.yml)\n[![code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg)](https://github.com/sindresorhus/xo)\n[![styled with prettier](https://img.shields.io/badge/styled_with-prettier-ff69b4.svg)](https://github.com/prettier/prettier)\n[![made with lass](https://img.shields.io/badge/made_with-lass-95CC28.svg)](https://lass.js.org)\n[![license](https://img.shields.io/github/license/koajs/ratelimit.svg)](LICENSE)\n\n> Rate limiter middleware for koa.\n\n\n## Table of Contents\n\n* [Installation](#installation)\n* [Example](#example)\n  * [With a Redis driver](#with-a-redis-driver)\n  * [With a memory driver](#with-a-memory-driver)\n* [Options](#options)\n* [Responses](#responses)\n* [License](#license)\n\n\n## Installation\n\n```sh\nnpm install koa-ratelimit\n```\n\n\n## Example\n\n### With a Redis driver\n\n```js\nconst Koa = require('koa');\nconst ratelimit = require('koa-ratelimit');\nconst Redis = require('ioredis');\nconst app = new Koa();\n\n// apply rate limit\napp.use(ratelimit({\n  driver: 'redis',\n  db: new Redis(),\n  duration: 60000,\n  errorMessage: 'Sometimes You Just Have to Slow Down.',\n  id: (ctx) => ctx.ip,\n  headers: {\n    remaining: 'Rate-Limit-Remaining',\n    reset: 'Rate-Limit-Reset',\n    total: 'Rate-Limit-Total'\n  },\n  max: 100,\n  disableHeader: false,\n  whitelist: (ctx) => {\n    // some logic that returns a boolean\n  },\n  blacklist: (ctx) => {\n    // some logic that returns a boolean\n  },\n  onLimited: (ctx) => {\n    // optional function to run when a user is rate limited\n  }\n}));\n\n// response middleware\napp.use(async (ctx) => {\n  ctx.body = 'Stuff!';\n});\n\n// run server\napp.listen(\n  3000,\n  () => console.log('listening on port 3000')\n);\n```\n\n### With a memory driver\n\n```js\nconst Koa = require('koa');\nconst ratelimit = require('koa-ratelimit');\nconst app = new Koa();\n\n// apply rate limit\nconst db = new Map();\n\napp.use(ratelimit({\n  driver: 'memory',\n  db: db,\n  duration: 60000,\n  errorMessage: 'Sometimes You Just Have to Slow Down.',\n  id: (ctx) => ctx.ip,\n  headers: {\n    remaining: 'Rate-Limit-Remaining',\n    reset: 'Rate-Limit-Reset',\n    total: 'Rate-Limit-Total'\n  },\n  max: 100,\n  disableHeader: false,\n  whitelist: (ctx) => {\n    // some logic that returns a boolean\n  },\n  blacklist: (ctx) => {\n    // some logic that returns a boolean\n  }\n}));\n\n// response middleware\napp.use(async (ctx) => {\n  ctx.body = 'Stuff!';\n});\n\n// run server\napp.listen(\n  3000,\n  () => console.log('listening on port 3000')\n);\n```\n\n\n## Options\n\n* `driver` memory or redis \\[redis]\n* `db` redis connection instance or Map instance (memory)\n* `duration` of limit in milliseconds \\[3600000]\n* `errorMessage` custom error message\n* `id` id to compare requests \\[ip]\n* `namespace` prefix for storage driver key name \\[limit]\n* `headers` custom header names\n* `max` max requests within `duration` \\[2500]\n* `disableHeader` set whether send the `remaining, reset, total` headers \\[false]\n* `remaining` remaining number of requests \\[`'X-RateLimit-Remaining'`]\n* `reset` reset timestamp \\[`'X-RateLimit-Reset'`]\n* `total` total number of requests \\[`'X-RateLimit-Limit'`]\n* `whitelist` if function returns true, middleware exits before limiting\n* `blacklist` if function returns true, `403` error is thrown\n* `throw` call ctx.throw if true\n\n\n## Responses\n\nExample 200 with header fields:\n\n```sh\nHTTP/1.1 200 OK\nX-Powered-By: koa\nX-RateLimit-Limit: 100\nX-RateLimit-Remaining: 99\nX-RateLimit-Reset: 1384377793\nContent-Type: text/plain; charset=utf-8\nContent-Length: 6\nDate: Wed, 13 Nov 2013 21:22:13 GMT\nConnection: keep-alive\n\nStuff!\n```\n\nExample 429 response:\n\n```sh\nHTTP/1.1 429 Too Many Requests\nX-Powered-By: koa\nX-RateLimit-Limit: 100\nX-RateLimit-Remaining: 0\nX-RateLimit-Reset: 1384377716\nContent-Type: text/plain; charset=utf-8\nContent-Length: 39\nRetry-After: 7\nDate: Wed, 13 Nov 2013 21:21:48 GMT\nConnection: keep-alive\n\nRate limit exceeded, retry in 8 seconds\n```\n\n\n## License\n\n[MIT](LICENSE) © Koa.js contributors\n","readmeFilename":"README.md","users":{"detj":true,"caesor":true,"jerrywu":true,"rukeith":true,"hoitmort":true,"snowdream":true}}