{
  "name": "@riavzon/bot-detector",
  "version": "2.0.11",
  "type": "module",
  "main": "./dist/main.cjs",
  "types": "./dist/main.d.cts",
  "author": "Sergio contact@riavzon.com",
  "license": "Apache-2.0",
  "description": "Express middleware for multi layered bot detection. Runs a two-phase pipeline of 17 pluggable checkers with a cumulative scoring system, pluggable cache, and multi DB/storage support.",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/Sergo706/botDetector.git"
  },
  "homepage": "https://docs.riavzon.com/docs/bot-detection",
  "bugs": {
    "url": "https://github.com/Sergo706/botDetector/issues"
  },
  "keywords": [
    "bot-detection",
    "express-middleware",
    "security",
    "geoip",
    "geolocation",
    "threat-intelligence",
    "mmdb",
    "bot detector",
    "detect bots"
  ],
  "bin": {
    "bot-detector": "dist/index.mjs"
  },
  "files": [
    "dist"
  ],
  "exports": {
    ".": {
      "import": {
        "types": "./dist/main.d.mts",
        "default": "./dist/main.mjs"
      },
      "require": {
        "types": "./dist/main.d.cts",
        "default": "./dist/main.cjs"
      }
    }
  },
  "scripts": {
    "build": "tsdown",
    "lint": "eslint .",
    "build:tables": "node ./dist/botDetector/db/schema.js",
    "test:exs": "SKIP_STRESS=1 vitest run",
    "test": "vitest run --coverage",
    "prepublishOnly": "npm run build",
    "docs:markdown": "typedoc --options ./typedoc.json"
  },
  "dependencies": {
    "@riavzon/shield-base": "^3.0.4",
    "@riavzon/utils": "^1.1.6",
    "citty": "0.2.1",
    "consola": "3.4.2",
    "db0": "0.3.4",
    "magic-regexp": "0.11.0",
    "maxmind": "5.0.5",
    "pino": "9.7.0",
    "ua-parser-js": "2.0.3",
    "unstorage": "1.17.4",
    "zod": "^4.3.6"
  },
  "peerDependencies": {
    "cookie-parser": "^1.4.7",
    "express": "^5.1.0",
    "mysql2": ">=3.0.0"
  },
  "peerDependenciesMeta": {
    "mysql2": {
      "optional": true
    }
  },
  "devDependencies": {
    "@planetscale/database": "^1.19.0",
    "@types/better-sqlite3": "^7.6.13",
    "@types/cookie-parser": "^1.4.8",
    "@types/date-fns": "^2.5.3",
    "@types/express": "^5.0.3",
    "@types/node": "^24.5.2",
    "@types/pg": "^8.18.0",
    "@types/supertest": "^7.2.0",
    "@vitest/coverage-v8": "^4.1.0",
    "better-sqlite3": "^12.8.0",
    "eslint": "^10.1.0",
    "mysql2": "^3.14.0",
    "pg": "^8.20.0",
    "publint": "^0.3.18",
    "supertest": "^7.2.2",
    "tsdown": "^0.21.4",
    "typedoc": "^0.28.9",
    "typedoc-plugin-markdown": "^4.8.0",
    "typescript": "^5.4.0",
    "typescript-eslint": "^8.57.1",
    "vitest": "^4.1.0"
  }
}
