{ "name": "express-rate-limit", "version": "7.2.0", "description": "Basic IP rate-limiting middleware for Express. Use to limit repeated requests to public APIs and/or endpoints such as password reset.", "author": { "name": "Nathan Friedly", "url": "http://nfriedly.com/" }, "license": "MIT", "homepage": "https://github.com/express-rate-limit/express-rate-limit", "repository": { "type": "git", "url": "git+https://github.com/express-rate-limit/express-rate-limit.git" }, "funding": "https://github.com/sponsors/express-rate-limit", "keywords": [ "express-rate-limit", "express", "rate", "limit", "ratelimit", "rate-limit", "middleware", "ip", "auth", "authorization", "security", "brute", "force", "bruteforce", "brute-force", "attack" ], "type": "module", "exports": { ".": { "import": { "types": "./dist/index.d.mts", "default": "./dist/index.mjs" }, "require": { "types": "./dist/index.d.cts", "default": "./dist/index.cjs" } } }, "main": "./dist/index.cjs", "module": "./dist/index.mjs", "types": "./dist/index.d.ts", "files": [ "dist/", "tsconfig.json" ], "engines": { "node": ">= 16" }, "scripts": { "clean": "del-cli dist/ coverage/ *.log *.tmp *.bak *.tgz", "build:cjs": "esbuild --platform=node --bundle --target=es2022 --format=cjs --outfile=dist/index.cjs --footer:js=\"module.exports = rateLimit; module.exports.default = rateLimit; module.exports.rateLimit = rateLimit; module.exports.MemoryStore = MemoryStore;\" source/index.ts", "build:esm": "esbuild --platform=node --bundle --target=es2022 --format=esm --outfile=dist/index.mjs source/index.ts", "build:types": "dts-bundle-generator --out-file=dist/index.d.ts source/index.ts && cp dist/index.d.ts dist/index.d.cts && cp dist/index.d.ts dist/index.d.mts", "compile": "run-s clean build:*", "docs": "cd docs && mintlify dev", "lint:code": "xo", "lint:rest": "prettier --check .", "lint": "run-s lint:*", "format:code": "xo --fix", "format:rest": "prettier --write .", "format": "run-s format:*", "test:lib": "jest", "test:ext": "cd test/external/ && bash run-all-tests", "test": "run-s lint test:lib", "pre-commit": "lint-staged", "prepare": "run-s compile && husky install config/husky" }, "peerDependencies": { "express": "4 || 5 || ^5.0.0-beta.1" }, "devDependencies": { "@express-rate-limit/prettier": "1.1.1", "@express-rate-limit/tsconfig": "1.0.2", "@jest/globals": "29.7.0", "@types/express": "4.17.20", "@types/jest": "29.5.6", "@types/node": "20.8.7", "@types/supertest": "2.0.15", "del-cli": "5.1.0", "dts-bundle-generator": "8.0.1", "esbuild": "0.19.5", "express": "4.18.2", "husky": "8.0.3", "jest": "29.7.0", "lint-staged": "15.0.2", "mintlify": "4.0.63", "npm-run-all": "4.1.5", "ratelimit-header-parser": "0.1.0", "supertest": "6.3.3", "ts-jest": "29.1.1", "ts-node": "10.9.1", "typescript": "5.2.2", "xo": "0.56.0" }, "xo": { "prettier": true, "rules": { "@typescript-eslint/no-empty-function": 0, "@typescript-eslint/no-dynamic-delete": 0, "@typescript-eslint/no-confusing-void-expression": 0, "@typescript-eslint/consistent-indexed-object-style": [ "error", "index-signature" ], "n/no-unsupported-features/es-syntax": 0 }, "overrides": [ { "files": "test/library/*.ts", "rules": { "@typescript-eslint/no-unsafe-argument": 0, "@typescript-eslint/no-unsafe-assignment": 0 } } ], "ignore": [ "test/external" ] }, "prettier": "@express-rate-limit/prettier", "lint-staged": { "{source,test}/**/*.ts": "xo --fix", "**/*.{json,yaml,md}": "prettier --write " } }