{"_id":"express-better-ratelimit","_rev":"26-b7b4509524783efde383a74a1d1adab0","name":"express-better-ratelimit","description":"Express.js request rate limit middleware by IP with MemoryStore","dist-tags":{"latest":"1.1.2"},"versions":{"1.0.0":{"name":"express-better-ratelimit","version":"1.0.0","description":"Express.js request rate limit middleware by IP with MemoryStore","main":"index.js","scripts":{"lint":"npm install && ./node_modules/.bin/jshint ./*.js","test":"npm run lint && NODE_ENV=test ./node_modules/.bin/mocha","test-cov":"npm test && NODE_ENV=test node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha","test-travis":"npm test && NODE_ENV=test node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha --report lcovonly"},"author":{"name":"Charlike Make Reagent","email":"mameto_100@mail.bg","url":"https://github.com/tunnckoCore"},"repository":{"type":"git","url":"git://github.com/tunnckoCore/express-better-ratelimit.git"},"keywords":["express","middleware","ratelimit","requestlimit","limit","in-memory","memorystore","rate"],"dependencies":{"ipchecker":"*"},"devDependencies":{"coveralls":"*","istanbul":"*","jshint":"*","express":">=4","mocha":">=2","mocha-lcov-reporter":"*","supertest":"*"},"licenses":[{"type":"MIT","url":"https://github.com/tunnckoCore/express-better-ratelimit/blob/master/license.md"}],"gitHead":"16613a8a1b199804588ffc35ccecfedea77b9201","bugs":{"url":"https://github.com/tunnckoCore/express-better-ratelimit/issues"},"homepage":"https://github.com/tunnckoCore/express-better-ratelimit","_id":"express-better-ratelimit@1.0.0","_shasum":"7a46f291a208fef4f7e96d781a4f326917d3c439","_from":".","_npmVersion":"2.0.0","_npmUser":{"name":"tunnckocore","email":"mameto_100@mail.bg"},"maintainers":[{"name":"tunnckocore","email":"mameto_100@mail.bg"}],"dist":{"shasum":"7a46f291a208fef4f7e96d781a4f326917d3c439","tarball":"https://registry.npmjs.org/express-better-ratelimit/-/express-better-ratelimit-1.0.0.tgz","integrity":"sha512-4U7sJ+GTgM1haeKwzMK/K1+P+/z7fCXN9aw0pEjOOo5ZaUG4YImvRjQUaPAMA3h96bNf3FS5rhjzqXdln/myoA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDMTlx+dKwz9HJiQWueFU6egE7HtBRYGo0Rp2OW3It7ogIgLo1fpgSIb1z2bdyuB/Iict1+5n2Uwk6/afMzOioWuKA="}]},"directories":{}},"1.0.1":{"name":"express-better-ratelimit","version":"1.0.1","description":"Express.js request rate limit middleware by IP with MemoryStore","main":"index.js","scripts":{"lint":"npm install && ./node_modules/.bin/jshint ./*.js","test":"npm run lint && NODE_ENV=test ./node_modules/.bin/mocha","test-cov":"npm test && NODE_ENV=test node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha","test-travis":"npm test && NODE_ENV=test node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha --report lcovonly"},"author":{"name":"Charlike Make Reagent","email":"mameto_100@mail.bg","url":"https://github.com/tunnckoCore"},"repository":{"type":"git","url":"git://github.com/tunnckoCore/express-better-ratelimit.git"},"keywords":["express","middleware","ratelimit","requestlimit","limit","in-memory","memorystore","rate"],"dependencies":{"ipchecker":"*"},"devDependencies":{"coveralls":"*","istanbul":"*","jshint":"*","express":">=4","mocha":">=2","mocha-lcov-reporter":"*","supertest":"*"},"licenses":[{"type":"MIT","url":"https://github.com/tunnckoCore/express-better-ratelimit/blob/master/license.md"}],"gitHead":"5fb0e46cb2c344f33e12dc00387f2e3adf30d54b","bugs":{"url":"https://github.com/tunnckoCore/express-better-ratelimit/issues"},"homepage":"https://github.com/tunnckoCore/express-better-ratelimit","_id":"express-better-ratelimit@1.0.1","_shasum":"b6082f1dedcc7e243bf7228b060c2e5a60e146a3","_from":".","_npmVersion":"2.0.0","_npmUser":{"name":"tunnckocore","email":"mameto_100@mail.bg"},"maintainers":[{"name":"tunnckocore","email":"mameto_100@mail.bg"}],"dist":{"shasum":"b6082f1dedcc7e243bf7228b060c2e5a60e146a3","tarball":"https://registry.npmjs.org/express-better-ratelimit/-/express-better-ratelimit-1.0.1.tgz","integrity":"sha512-lGe91SzdNsEGH5SjaB8kN4tdMwA1VsfbCov9Kw1O2XBtN3T+ofCMc6DIh+5Qh/MiCAKrJusDbabR9Gwg8tQImA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIByNRQMySuPT5S1JL1/TUMfp1ejTm6MFejdeKXvOVloFAiBIhNSvInvskbPIBHWEN8UmpJmgilQBq7yJJgs+fvApBw=="}]},"directories":{}},"1.0.2":{"name":"express-better-ratelimit","version":"1.0.2","description":"Express.js request rate limit middleware by IP with MemoryStore","main":"index.js","scripts":{"lint":"npm install && node_modules/.bin/jshint .","test":"npm run lint && node_modules/.bin/mocha","test-cov":"npm run lint && node_modules/.bin/istanbul cover node_modules/.bin/_mocha","test-travis":"npm run lint && node_modules/.bin/istanbul cover node_modules/.bin/_mocha --report lcovonly && cat coverage/lcov.info | node_modules/.bin/coveralls"},"author":{"name":"Charlike Make Reagent","email":"mameto_100@mail.bg","url":"https://github.com/tunnckoCore"},"repository":{"type":"git","url":"git://github.com/tunnckoCore/express-better-ratelimit.git"},"keywords":["express","middleware","ratelimit","requestlimit","limit","in-memory","memorystore","rate"],"dependencies":{"ipchecker":"*"},"devDependencies":{"coveralls":"*","express":">=4","jshint":"*","istanbul":"*","mocha":">=2","mocha-lcov-reporter":"*","supertest":"*"},"licenses":[{"type":"MIT","url":"https://github.com/tunnckoCore/express-better-ratelimit/blob/master/license.md"}],"gitHead":"6bab2414f62195257a67c2cab25fa73b4aea21fb","bugs":{"url":"https://github.com/tunnckoCore/express-better-ratelimit/issues"},"homepage":"https://github.com/tunnckoCore/express-better-ratelimit","_id":"express-better-ratelimit@1.0.2","_shasum":"fc5281a638d318948cc6b5dd46db4a4ccdf1f24d","_from":".","_npmVersion":"2.0.0","_npmUser":{"name":"tunnckocore","email":"mameto_100@mail.bg"},"maintainers":[{"name":"tunnckocore","email":"mameto_100@mail.bg"}],"dist":{"shasum":"fc5281a638d318948cc6b5dd46db4a4ccdf1f24d","tarball":"https://registry.npmjs.org/express-better-ratelimit/-/express-better-ratelimit-1.0.2.tgz","integrity":"sha512-Fa/D/K2ZhSqtMHBKKQYKGGj5NXjm15HJAhzS9hdt9EiwmtUi5wOcw2l37O8bj3CfLJz5ocTB9c+fCB5uE94AJg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDxa2V0ZpfRhSf9Jx3ZfrQdOqtNqBnV97pR4Tg12tw1ZQIgaxPk8tHxykuAxDuxpJSWKR/nUJwsgXtfnzRMxE0Nl8E="}]},"directories":{}},"1.1.0":{"name":"express-better-ratelimit","description":"Express.js request rate limit middleware by IP with MemoryStore","version":"1.1.0","scripts":{"lint":"npm install && node_modules/.bin/jshint . && node_modules/.bin/jscs . --reporter inline","test":"npm run lint && node_modules/.bin/mocha --require should","test-cov":"npm run lint && node_modules/.bin/istanbul cover node_modules/.bin/_mocha -- --require should","test-travis":"npm run lint && node_modules/.bin/istanbul cover node_modules/.bin/_mocha --report lcovonly -- --require should","coveralls":"npm run test-travis && cat coverage/lcov.info | node_modules/.bin/coveralls"},"author":{"name":"Charlike Make Reagent","email":"mameto_100@mail.bg","url":"https://github.com/tunnckoCore"},"keywords":["express","middleware","ratelimit","requestlimit","limit","in-memory","memorystore","rate"],"repository":{"type":"git","url":"git://github.com/tunnckoCore/express-better-ratelimit.git"},"license":{"type":"MIT","url":"https://github.com/tunnckoCore/express-better-ratelimit/blob/master/license.md"},"dependencies":{"ipchecker":"*"},"devDependencies":{"express":">=4","should":"*","supertest":"*","coveralls":"^2.11.2","istanbul-harmony":"^0.3.1","jscs":"^1.7.3","jscs-jsdoc":"^0.1.0","jshint":"^2.5.10","mocha":"^2.0.1","mocha-lcov-reporter":"0.0.1"},"engines":{"node":">= 0.10.33","npm":">= 1.4.28"},"gitHead":"f230d295019da1f4151448e25204734c94722539","bugs":{"url":"https://github.com/tunnckoCore/express-better-ratelimit/issues"},"homepage":"https://github.com/tunnckoCore/express-better-ratelimit","_id":"express-better-ratelimit@1.1.0","_shasum":"7b7cfa63f50163b19b617eaf574e4d4d8eac2605","_from":".","_npmVersion":"2.0.0","_npmUser":{"name":"tunnckocore","email":"mameto_100@mail.bg"},"maintainers":[{"name":"tunnckocore","email":"mameto_100@mail.bg"}],"dist":{"shasum":"7b7cfa63f50163b19b617eaf574e4d4d8eac2605","tarball":"https://registry.npmjs.org/express-better-ratelimit/-/express-better-ratelimit-1.1.0.tgz","integrity":"sha512-j1yfTHjwzM6968wugMImsbmHyrEYOjlIVEblFZswvt3nSTNOOZRmczj+fepAN1w451Ae8Dp7P0EyUazxRy6SDw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCYvUOGtPGnRiq3wa6HMSSoj4CxtS0RPq26tGr9dD0/dgIhAIYP6R1nfaJdD4zC1F27Uupym15BChwZ3ATp9bXN87E+"}]},"directories":{}},"1.1.1":{"name":"express-better-ratelimit","description":"Express.js request rate limit middleware by IP with MemoryStore","version":"1.1.1","scripts":{"lint":"npm install && node_modules/.bin/jshint . && node_modules/.bin/jscs . --reporter inline","test":"npm run lint && node_modules/.bin/mocha --require should","test-cov":"npm run lint && node_modules/.bin/istanbul cover node_modules/.bin/_mocha -- --require should","test-travis":"npm run lint && node_modules/.bin/istanbul cover node_modules/.bin/_mocha --report lcovonly -- --require should","coveralls":"npm run test-travis && cat coverage/lcov.info | node_modules/.bin/coveralls"},"author":{"name":"Charlike Make Reagent","email":"mameto_100@mail.bg","url":"https://github.com/tunnckoCore"},"keywords":["express","middleware","ratelimit","requestlimit","limit","in-memory","memorystore","rate"],"repository":{"type":"git","url":"git://github.com/tunnckoCore/express-better-ratelimit.git"},"license":{"type":"MIT","url":"https://github.com/tunnckoCore/express-better-ratelimit/blob/master/license.md"},"dependencies":{"ipchecker":"*"},"devDependencies":{"express":">=4","should":"*","supertest":"*","coveralls":"^2.11.2","istanbul-harmony":"^0.3.1","jscs":"^1.7.3","jscs-jsdoc":"^0.1.0","jshint":"^2.5.10","mocha":"^2.0.1","mocha-lcov-reporter":"0.0.1"},"engines":{"node":">= 0.10.33","npm":">= 1.4.28"},"gitHead":"7a234399f5582e11e0c0ce385df09bf278289684","bugs":{"url":"https://github.com/tunnckoCore/express-better-ratelimit/issues"},"homepage":"https://github.com/tunnckoCore/express-better-ratelimit","_id":"express-better-ratelimit@1.1.1","_shasum":"bf7a8ec756aae597d26cd28feb87a2d81292bffa","_from":".","_npmVersion":"2.0.0","_npmUser":{"name":"tunnckocore","email":"mameto_100@mail.bg"},"maintainers":[{"name":"tunnckocore","email":"mameto_100@mail.bg"}],"dist":{"shasum":"bf7a8ec756aae597d26cd28feb87a2d81292bffa","tarball":"https://registry.npmjs.org/express-better-ratelimit/-/express-better-ratelimit-1.1.1.tgz","integrity":"sha512-rkmfFbOzTOqw/cWiV9v7Ao3K3s5uJmuYoc+vugaPn/4oG75aHw9DU5lRQy0ejgmiQrLei8JzOvbJqsf/qSeQvQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDgnADlbG//Gwe5frysYOwXyCAkdJs/rxsvl2JvJ42U1QIhAJUFDMRBl6via6frMck93Lt3NWhqU1eTG76Bx3xK5uRT"}]},"directories":{}},"1.1.2":{"name":"express-better-ratelimit","description":"Express.js request rate limit middleware by IP with MemoryStore","version":"1.1.2","scripts":{"lint":"npm install && node_modules/.bin/jshint . && node_modules/.bin/jscs . --reporter inline","test":"npm run lint && node_modules/.bin/mocha --require should","test-cov":"npm run lint && node_modules/.bin/istanbul cover node_modules/.bin/_mocha -- --require should","test-travis":"npm run lint && node_modules/.bin/istanbul cover node_modules/.bin/_mocha --report lcovonly -- --require should","coveralls":"npm run test-travis && cat coverage/lcov.info | node_modules/.bin/coveralls"},"author":{"name":"Charlike Make Reagent","email":"mameto_100@mail.bg","url":"https://github.com/tunnckoCore"},"keywords":["express","middleware","ratelimit","requestlimit","limit","in-memory","memorystore","rate"],"repository":{"type":"git","url":"git://github.com/tunnckoCore/express-better-ratelimit.git"},"license":{"type":"MIT","url":"https://github.com/tunnckoCore/express-better-ratelimit/blob/master/license.md"},"dependencies":{"ipchecker":"*"},"devDependencies":{"express":">=4","should":"*","supertest":"*","coveralls":"^2.11.2","istanbul-harmony":"^0.3.1","jscs":">=1.8.0","jscs-jsdoc":">=0.2.0","jshint":"^2.5.10","mocha":"^2.0.1","mocha-lcov-reporter":"0.0.1"},"engines":{"node":">= 0.10.33","npm":">= 1.4.28"},"gitHead":"6968d6e1c58ee4c282f5c337feb3c7652cd2c43d","bugs":{"url":"https://github.com/tunnckoCore/express-better-ratelimit/issues"},"homepage":"https://github.com/tunnckoCore/express-better-ratelimit","_id":"express-better-ratelimit@1.1.2","_shasum":"aae8933b8361caf3f263670c1aecf97896f2e9dc","_from":".","_npmVersion":"2.0.0","_npmUser":{"name":"tunnckocore","email":"mameto_100@mail.bg"},"maintainers":[{"name":"tunnckocore","email":"mameto_100@mail.bg"}],"dist":{"shasum":"aae8933b8361caf3f263670c1aecf97896f2e9dc","tarball":"https://registry.npmjs.org/express-better-ratelimit/-/express-better-ratelimit-1.1.2.tgz","integrity":"sha512-9pz+WGoXQH2ZR6Q+pact97xIDV6YIi31khkG0BqpobUt2AgWeiWLjzF/PBuekRPulgpYiUGp9oxqFbg17oDH6w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDFwp/AEYRIxfqWBN1xZZLu8S79MPwJpZKcwKd59q+MyAIgLDlmEUZhA1Y3ikDqyVttosSmN7qrll6RBVMu6kIJCic="}]},"directories":{}}},"readme":"# better-ratelimit [![NPM version][npmjs-shields]][npmjs-url] [![Build Status][travis-img]][travis-url] [![Dependency Status][depstat-img]][depstat-url] [![Coveralls][coveralls-shields]][coveralls-url]\n> [Express.js][express-url] request rate limit middleware by IP with MemoryStore\n\n\n## Install [![Nodei.co stats][npmjs-install]][npmjs-url]\n> Install with [npm](https://npmjs.org)\n\n```\n$ npm install express-better-ratelimit\n$ npm test\n```\n\n**This package follows [ferver](https://github.com/jonathanong/ferver)**\n> Please read [history.md](history.md) for more info!\n\n- option `message_429` deprecated **>=v1.1.x**, instead use `accessLimited`\n- option `message_403` deprecated **>=v1.1.x**, instead use `accessForbidden`\n\n\n## Usage\n> Some demo example which is exactly `example.js`\n\n```js\nvar express = require('express');\nvar limit = require('./index');\n\nvar app = express();\n\napp.use(limit({\n  duration: 30000, //30 seconds\n  max: 5\n  //blackList: ['127.0.0.1']\n}));\n\napp.use(function helloWorld(req, res, next) {\n  res.set('Content-Type', 'text/plain');\n  res.status(200).send('Hello world');\n  next();\n});\n\nvar port = process.env.PORT || 3333;\napp.listen(port);\nconsole.log('Express server start listening on port %s', port);\nconsole.log('Type few times: curl -i http://localhost:%s', port);\n```\n\n\n## [.expressBetterRatelimit](index.js#L32)\n> With options through init you can control black/white lists, limit per ip and reset interval.\n\n* `[options]` **{Object}**\n  - `duration` **{Integer}** Limit duration in milliseconds, default `1000 * 60 * 60 * 1` (1 hour)\n  - `whiteList` **{Array}** All ips that won't be limited, default `empty array`\n  - `blackList` **{Array}** All ips that always be limited and 403, default `empty array`\n  - `accessLimited` **{String}** Message for all requests after limit, default `429: Too Many Requests.`\n  - `accessForbidden` **{String}** Message for limited/forbidden, default `403: This is forbidden area for you.`\n  - `max` **{Integer}** Max requests per ip, default `500`\n  - `env` **{Boolean}** Manage enviroment, for tests will use `x-koaip` header, default `null`\n* `return` **{Function}**\n\n\n## Authors & Contributors \n**Charlike Make Reagent** [![author tips][author-gittip-img]][author-gittip]\n+ [gittip/tunnckoCore][author-gittip]\n+ [github/tunnckoCore][author-github]\n+ [twitter/tunnckoCore][author-twitter]\n+ [npmjs/tunnckoCore][author-npmjs]\n\n\n## License [![MIT license][license-img]][license-url]\nCopyright (c) 2014 [Charlike Make Reagent][author-website], [contributors](https://github.com/tunnckoCore/express-better-ratelimit/graphs/contributors).  \nReleased under the [`MIT`][license-url] license.\n\n[npmjs-url]: http://npm.im/express-better-ratelimit\n[npmjs-shields]: http://img.shields.io/npm/v/express-better-ratelimit.svg\n[npmjs-install]: https://nodei.co/npm/express-better-ratelimit.svg?mini=true\n\n[coveralls-url]: https://coveralls.io/r/tunnckoCore/express-better-ratelimit?branch=master\n[coveralls-shields]: https://img.shields.io/coveralls/tunnckoCore/express-better-ratelimit.svg\n\n[license-url]: https://github.com/tunnckoCore/express-better-ratelimit/blob/master/license.md\n[license-img]: http://img.shields.io/badge/license-MIT-blue.svg\n\n[travis-url]: https://travis-ci.org/tunnckoCore/express-better-ratelimit\n[travis-img]: https://travis-ci.org/tunnckoCore/express-better-ratelimit.svg?branch=master\n\n[depstat-url]: https://david-dm.org/tunnckoCore/express-better-ratelimit\n[depstat-img]: https://david-dm.org/tunnckoCore/express-better-ratelimit.svg\n\n[author-gittip-img]: http://img.shields.io/gittip/tunnckoCore.svg\n[author-gittip]: https://www.gittip.com/tunnckoCore\n[author-github]: https://github.com/tunnckoCore\n[author-twitter]: https://twitter.com/tunnckoCore\n\n[author-website]: http://www.whistle-bg.tk\n[author-npmjs]: https://npmjs.org/~tunnckocore\n\n[express-url]: https://github.com/strongloop/express","maintainers":[{"email":"super.ludiq@gmail.com","name":"vanchoy"},{"email":"mameto2011@gmail.com","name":"tunnckocore"}],"time":{"modified":"2022-06-17T22:10:11.828Z","created":"2014-10-27T15:34:44.672Z","1.0.0":"2014-10-27T15:34:44.672Z","1.0.1":"2014-10-27T19:12:54.240Z","1.0.2":"2014-11-14T02:25:47.533Z","1.1.0":"2014-11-26T22:30:33.648Z","1.1.1":"2014-11-26T22:43:47.842Z","1.1.2":"2014-11-26T23:31:11.409Z"},"homepage":"https://github.com/tunnckoCore/express-better-ratelimit","keywords":["express","middleware","ratelimit","requestlimit","limit","in-memory","memorystore","rate"],"repository":{"type":"git","url":"git://github.com/tunnckoCore/express-better-ratelimit.git"},"author":{"name":"Charlike Make Reagent","email":"mameto_100@mail.bg","url":"https://github.com/tunnckoCore"},"bugs":{"url":"https://github.com/tunnckoCore/express-better-ratelimit/issues"},"readmeFilename":"readme.md","license":{"type":"MIT","url":"https://github.com/tunnckoCore/express-better-ratelimit/blob/master/license.md"}}