rate-limiter-flexible
Advanced tools
Comparing version 4.0.1 to 5.0.0
@@ -14,2 +14,3 @@ const RateLimiterRedis = require('./lib/RateLimiterRedis'); | ||
const RateLimiterDynamo = require('./lib/RateLimiterDynamo'); | ||
const RateLimiterPrisma = require('./lib/RateLimiterPrisma'); | ||
@@ -31,3 +32,4 @@ module.exports = { | ||
RateLimiterRes, | ||
RateLimiterDynamo | ||
RateLimiterDynamo, | ||
RateLimiterPrisma, | ||
}; |
@@ -9,3 +9,4 @@ const LIMITER_TYPES = { | ||
POSTGRES: 'postgres', | ||
DYNAMO: 'dynamo' | ||
DYNAMO: 'dynamo', | ||
PRISMA: 'prisma', | ||
}; | ||
@@ -12,0 +13,0 @@ |
@@ -352,2 +352,6 @@ export interface IRateLimiterRes { | ||
export class RateLimiterPrisma extends RateLimiterStoreAbstract { | ||
constructor(opts: IRateLimiterStoreNoAutoExpiryOptions, cb?: ICallbackReady); | ||
} | ||
export class RateLimiterMemcache extends RateLimiterStoreAbstract { } | ||
@@ -354,0 +358,0 @@ |
{ | ||
"name": "rate-limiter-flexible", | ||
"version": "4.0.1", | ||
"version": "5.0.0", | ||
"description": "Node.js rate limiter by key and protection from DDoS and Brute-Force attacks in process Memory, Redis, MongoDb, Memcached, MySQL, PostgreSQL, Cluster or PM", | ||
@@ -9,3 +9,4 @@ "main": "index.js", | ||
"dc:down": "docker-compose -f docker-compose.yml down", | ||
"test": "nyc --reporter=html --reporter=text mocha", | ||
"prisma:postgres": "prisma generate --schema=./test/RateLimiterPrisma/Postgres/schema.prisma && prisma db push --schema=./test/RateLimiterPrisma/Postgres/schema.prisma", | ||
"test": "npm run prisma:postgres && nyc --reporter=html --reporter=text mocha", | ||
"debug-test": "mocha --inspect-brk lib/**/**.test.js", | ||
@@ -21,2 +22,3 @@ "coveralls": "cat ./coverage/lcov.info | coveralls", | ||
"keywords": [ | ||
"ratelimter", | ||
"authorization", | ||
@@ -26,13 +28,13 @@ "security", | ||
"limit", | ||
"ratelimter", | ||
"brute", | ||
"force", | ||
"bruteforce", | ||
"throttle", | ||
"redis", | ||
"mongodb", | ||
"dynamodb", | ||
"mysql", | ||
"postgres", | ||
"prisma", | ||
"koa", | ||
"express", | ||
"hapi", | ||
"auth", | ||
"ddos", | ||
"queue" | ||
"hapi" | ||
], | ||
@@ -48,2 +50,3 @@ "author": "animir <animirr@gmail.com>", | ||
"@aws-sdk/client-dynamodb": "^3.431.0", | ||
"@prisma/client": "^5.8.0", | ||
"chai": "^4.1.2", | ||
@@ -61,2 +64,3 @@ "coveralls": "^3.0.1", | ||
"nyc": "^15.1.0", | ||
"prisma": "^5.8.0", | ||
"redis": "^4.6.8", | ||
@@ -63,0 +67,0 @@ "redis-mock": "^0.48.0", |
@@ -1,2 +0,1 @@ | ||
[![Coverage Status](https://coveralls.io/repos/animir/node-rate-limiter-flexible/badge.svg?branch=master)](https://coveralls.io/r/animir/node-rate-limiter-flexible?branch=master) | ||
[![npm version](https://badge.fury.io/js/rate-limiter-flexible.svg)](https://www.npmjs.com/package/rate-limiter-flexible) | ||
@@ -7,3 +6,3 @@ ![npm](https://img.shields.io/npm/dm/rate-limiter-flexible.svg) | ||
[node-image]: https://img.shields.io/badge/node.js-%3E=_14.0-green.svg?style=flat-square | ||
[node-image]: https://img.shields.io/badge/node.js-%3E=_16.0-green.svg?style=flat-square | ||
[node-url]: http://nodejs.org/download/ | ||
@@ -56,2 +55,4 @@ | ||
import { RateLimiterMemory } from "rate-limiter-flexible"; | ||
// or | ||
import RateLimiterMemory from "rate-limiter-flexible/lib/RateLimiterMemory.js"; | ||
``` | ||
@@ -107,3 +108,2 @@ | ||
* TypeScript declaration bundled | ||
* allow traffic burst with [BurstyRateLimiter](https://github.com/animir/node-rate-limiter-flexible/wiki/BurstyRateLimiter) | ||
* Block Strategy against really powerful DDoS attacks (like 100k requests per sec) [Read about it and benchmarking here](https://github.com/animir/node-rate-limiter-flexible/wiki/In-memory-Block-Strategy) | ||
@@ -114,2 +114,4 @@ * Insurance Strategy as emergency solution if database / store is down [Read about Insurance Strategy here](https://github.com/animir/node-rate-limiter-flexible/wiki/Insurance-Strategy) | ||
Full documentation is on [Wiki](https://github.com/animir/node-rate-limiter-flexible/wiki) | ||
### Middlewares, plugins and other packages | ||
@@ -142,11 +144,12 @@ * [Express middleware](https://github.com/animir/node-rate-limiter-flexible/wiki/Express-Middleware) | ||
* [API methods](https://github.com/animir/node-rate-limiter-flexible/wiki/API-methods) | ||
* [Redis](https://github.com/animir/node-rate-limiter-flexible/wiki/Redis) | ||
* [Memory](https://github.com/animir/node-rate-limiter-flexible/wiki/Memory) | ||
* [DynamoDb](https://github.com/animir/node-rate-limiter-flexible/wiki/DynamoDB) | ||
* [Prisma](https://github.com/animir/node-rate-limiter-flexible/wiki/Prisma) | ||
* [BurstyRateLimiter](https://github.com/animir/node-rate-limiter-flexible/wiki/BurstyRateLimiter) Traffic burst support | ||
* [RateLimiterRedis](https://github.com/animir/node-rate-limiter-flexible/wiki/Redis) | ||
* [RateLimiterDynamo](https://github.com/animir/node-rate-limiter-flexible/wiki/DynamoDB) | ||
* [RateLimiterMemcache](https://github.com/animir/node-rate-limiter-flexible/wiki/Memcache) | ||
* [RateLimiterMongo](https://github.com/animir/node-rate-limiter-flexible/wiki/Mongo) (with [sharding support](https://github.com/animir/node-rate-limiter-flexible/wiki/Mongo#mongodb-sharding-options)) | ||
* [RateLimiterMySQL](https://github.com/animir/node-rate-limiter-flexible/wiki/MySQL) (support Sequelize and Knex) | ||
* [RateLimiterPostgres](https://github.com/animir/node-rate-limiter-flexible/wiki/PostgreSQL) (support Sequelize, TypeORM and Knex) | ||
* [Mongo](https://github.com/animir/node-rate-limiter-flexible/wiki/Mongo) (with [sharding support](https://github.com/animir/node-rate-limiter-flexible/wiki/Mongo#mongodb-sharding-options)) | ||
* [MySQL](https://github.com/animir/node-rate-limiter-flexible/wiki/MySQL) (support Sequelize and Knex) | ||
* [Postgres](https://github.com/animir/node-rate-limiter-flexible/wiki/PostgreSQL) (support Sequelize, TypeORM and Knex) | ||
* [RateLimiterCluster](https://github.com/animir/node-rate-limiter-flexible/wiki/Cluster) ([PM2 cluster docs read here](https://github.com/animir/node-rate-limiter-flexible/wiki/PM2-cluster)) | ||
* [RateLimiterMemory](https://github.com/animir/node-rate-limiter-flexible/wiki/Memory) | ||
* [Memcache](https://github.com/animir/node-rate-limiter-flexible/wiki/Memcache) | ||
* [RateLimiterUnion](https://github.com/animir/node-rate-limiter-flexible/wiki/RateLimiterUnion) Combine 2 or more limiters to act as single | ||
@@ -153,0 +156,0 @@ * [RLWrapperBlackAndWhite](https://github.com/animir/node-rate-limiter-flexible/wiki/Black-and-White-lists) Black and White lists |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
140837
31
3799
260
18