{
  "name": "bot-signal",
  "version": "2.0.14",
  "description": "Bot detection for JavaScript and Node.js: detect headless Chrome, Playwright, Puppeteer, Selenium and scripted input. Simple isHuman() API plus weighted instant, behavioral, and server signals (IP, TLS/JA3, timezone). No API keys.",
  "license": "MIT",
  "author": "okasi",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/okasi/bot-signal.git"
  },
  "homepage": "https://okasi.github.io/bot-signal/",
  "bugs": {
    "url": "https://github.com/okasi/bot-signal/issues"
  },
  "type": "module",
  "main": "./dist/index.cjs",
  "module": "./dist/index.js",
  "types": "./dist/index.d.ts",
  "typesVersions": {
    "*": {
      "browser": [
        "./dist/browser.d.ts"
      ],
      "server": [
        "./dist/server.d.ts"
      ]
    }
  },
  "unpkg": "./dist/browser.global.js",
  "jsdelivr": "./dist/browser.global.js",
  "sideEffects": false,
  "exports": {
    ".": {
      "browser": {
        "import": {
          "types": "./dist/browser.d.ts",
          "default": "./dist/browser.js"
        },
        "require": {
          "types": "./dist/browser.d.cts",
          "default": "./dist/browser.cjs"
        }
      },
      "node": {
        "import": {
          "types": "./dist/index.d.ts",
          "default": "./dist/index.js"
        },
        "require": {
          "types": "./dist/index.d.cts",
          "default": "./dist/index.cjs"
        }
      },
      "import": {
        "types": "./dist/index.d.ts",
        "default": "./dist/index.js"
      },
      "require": {
        "types": "./dist/index.d.cts",
        "default": "./dist/index.cjs"
      }
    },
    "./browser": {
      "import": {
        "types": "./dist/browser.d.ts",
        "default": "./dist/browser.js"
      },
      "require": {
        "types": "./dist/browser.d.cts",
        "default": "./dist/browser.cjs"
      }
    },
    "./server": {
      "import": {
        "types": "./dist/server.d.ts",
        "default": "./dist/server.js"
      },
      "require": {
        "types": "./dist/server.d.cts",
        "default": "./dist/server.cjs"
      }
    },
    "./package.json": "./package.json"
  },
  "files": [
    "dist",
    "data"
  ],
  "scripts": {
    "build": "tsup",
    "build:site": "npm run build && tsx scripts/build-site.ts",
    "check": "npm run typecheck && npm run test:coverage && npm run test:patchright && npm run build && npm run lint:package",
    "dev": "tsup --watch",
    "lint:package": "publint --strict && attw --pack . --no-emoji",
    "test": "vitest run",
    "test:coverage": "vitest run --coverage",
    "test:watch": "vitest",
    "test:patchright": "npm run build && vitest run --config vitest.patchright.config.ts",
    "test:all": "npm run test && npm run test:patchright",
    "typecheck": "tsc --noEmit && tsc --noEmit -p tsconfig.types-test.json",
    "update:ip-data": "tsx scripts/update-ip-data.ts",
    "prepublishOnly": "npm run typecheck && npm run test:coverage && npm run build && npm run lint:package"
  },
  "keywords": [
    "bot-detection",
    "bot-signal",
    "headless",
    "bot signal",
    "headless-chrome",
    "selenium",
    "webdriver",
    "playwright",
    "puppeteer",
    "phantomjs",
    "webgpu",
    "fingerprint",
    "ja3",
    "tls-fingerprint",
    "geoip",
    "datacenter",
    "abuseipdb",
    "automation",
    "scraping",
    "browser-automation",
    "mouse-movement",
    "behavioral-analysis",
    "bot",
    "anti-bot",
    "bot-protection",
    "headless-detection",
    "headless-browser-detection",
    "chromedriver",
    "cdp",
    "anti-detect",
    "browser-fingerprinting",
    "device-fingerprint",
    "web-scraping-protection"
  ],
  "dependencies": {
    "doc999tor-fast-geoip": "^1.1.443"
  },
  "devDependencies": {
    "@arethetypeswrong/cli": "^0.18.4",
    "@types/node": "^22.15.21",
    "@vitest/coverage-v8": "^3.2.6",
    "@webgpu/types": "^0.1.60",
    "patchright": "^1.61.0",
    "publint": "^0.3.21",
    "tsup": "^8.5.0",
    "tsx": "^4.22.4",
    "typescript": "^5.8.3",
    "undici": "^7.28.0",
    "vitest": "^3.2.4"
  },
  "engines": {
    "node": ">=22"
  },
  "publishConfig": {
    "access": "public"
  }
}
