{
  "name": "browser-gateway",
  "version": "0.4.23",
  "description": "The open router for cloud browsers. One endpoint, any provider: failover, load balancing, persistent profiles, session replay, REST API, MCP server, dashboard.",
  "mcpName": "io.github.browser-gateway/browser-gateway",
  "keywords": [
    "browser",
    "gateway",
    "proxy",
    "cdp",
    "chrome-devtools-protocol",
    "mcp",
    "model-context-protocol",
    "ai-agent",
    "playwright",
    "puppeteer",
    "headless",
    "headless-browser",
    "failover",
    "load-balancer",
    "websocket"
  ],
  "homepage": "https://browsergateway.com",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/browser-gateway/browser-gateway.git"
  },
  "bugs": {
    "url": "https://github.com/browser-gateway/browser-gateway/issues",
    "email": "hello@browsergateway.com"
  },
  "license": "MIT",
  "author": "Monostellar Limited (https://monostellar.com)",
  "funding": "https://monostellar.com",
  "type": "module",
  "main": "dist/server/index.js",
  "types": "dist/server/index.d.ts",
  "exports": {
    ".": {
      "types": "./dist/server/index.d.ts",
      "default": "./dist/server/index.js"
    },
    "./agent-tools": {
      "types": "./dist/agent-tools/index.d.ts",
      "default": "./dist/agent-tools/index.js"
    },
    "./selection": {
      "types": "./dist/core/selection.d.ts",
      "default": "./dist/core/selection.js"
    },
    "./transport": {
      "types": "./dist/core/transport.d.ts",
      "default": "./dist/core/transport.js"
    },
    "./types": {
      "types": "./dist/core/types.d.ts",
      "default": "./dist/core/types.js"
    },
    "./webhooks": {
      "types": "./dist/core/webhooks.d.ts",
      "default": "./dist/core/webhooks.js"
    },
    "./auto-detect": {
      "types": "./dist/core/auto-detect.d.ts",
      "default": "./dist/core/auto-detect.js"
    },
    "./profile/types": {
      "types": "./dist/core/profile/types.d.ts",
      "default": "./dist/core/profile/types.js"
    },
    "./profile/crypto": {
      "types": "./dist/core/profile/crypto.d.ts",
      "default": "./dist/core/profile/crypto.js"
    },
    "./profile/playwright": {
      "types": "./dist/core/profile/playwright-format.d.ts",
      "default": "./dist/core/profile/playwright-format.js"
    },
    "./replay/types": {
      "types": "./dist/server/replay/types.d.ts",
      "default": "./dist/server/replay/types.js"
    },
    "./replay/constants": {
      "types": "./dist/server/replay/constants.d.ts",
      "default": "./dist/server/replay/constants.js"
    },
    "./core": {
      "types": "./dist/core.d.ts",
      "default": "./dist/core.js"
    },
    "./live-client": {
      "types": "./dist/live-client/index.d.ts",
      "default": "./dist/live-client/index.js"
    },
    "./pipeline": {
      "types": "./dist/pipeline/index.d.ts",
      "default": "./dist/pipeline/index.js"
    },
    "./provider-form": {
      "types": "./dist/provider-form/index.d.ts",
      "default": "./dist/provider-form/index.js"
    },
    "./page-runner": {
      "types": "./dist/core/cdp/page-runner.d.ts",
      "default": "./dist/core/cdp/page-runner.js"
    },
    "./rest-schemas": {
      "types": "./dist/rest-schemas/index.d.ts",
      "default": "./dist/rest-schemas/index.js"
    },
    "./rest-schemas/helpers": {
      "types": "./dist/rest-schemas/helpers.d.ts",
      "default": "./dist/rest-schemas/helpers.js"
    }
  },
  "bin": {
    "browser-gateway": "dist/server/index.js"
  },
  "files": [
    "dist",
    "web/dist",
    "LICENSE",
    "README.md"
  ],
  "scripts": {
    "dev": "BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev",
    "dev:server": "BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml",
    "dev:web": "cd web && npm run dev",
    "build": "tsc",
    "build:web": "cd web && npm run build",
    "build:all": "npm run build && npm run build:web",
    "start": "node dist/server/index.js",
    "live": "npm run build:all && node dist/server/index.js serve --config gateway.dev.yml",
    "test": "vitest",
    "test:run": "vitest run",
    "lint": "tsc --noEmit",
    "lint:dup": "jscpd src tests/integration tests/core",
    "lint:dead": "knip --no-progress",
    "lint:eslint": "eslint . --max-warnings 0",
    "lint:all": "npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead",
    "catalog:gen": "tsx scripts/gen-helper-catalog.ts",
    "catalog:check": "tsx scripts/gen-helper-catalog.ts --check",
    "docs:gen-rest": "tsx scripts/gen-rest-docs.ts",
    "docs:check-rest": "tsx scripts/gen-rest-docs.ts --check",
    "api:check": "npm run build && api-extractor run",
    "api:update": "npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'",
    "stryker": "stryker run",
    "stryker:incremental": "stryker run --incremental",
    "precommit:gates": "npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run",
    "prepush:gates": "npm run stryker:incremental",
    "prepublishOnly": "npm run test:run && npm run build:all",
    "publish": "npm publish",
    "docker:build": "docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .",
    "docker:push": "docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest",
    "docker:release": "npm run docker:build && npm run docker:push",
    "prepare": "husky",
    "stryker:clean": "rm -f reports/stryker-incremental.json && stryker run",
    "prerelease:gates": "npm run precommit:gates && npm run stryker:clean"
  },
  "dependencies": {
    "@modelcontextprotocol/sdk": "^1.28.0",
    "chrome-launcher": "^1.2.1",
    "defuddle": "^0.19.4",
    "hono": "^4.12.26",
    "linkedom": "^0.18.0",
    "pino": "^10.3.1",
    "pino-pretty": "^13.0.0",
    "playwright-core": "^1.58.0",
    "proper-lockfile": "^4.1.2",
    "write-file-atomic": "^7.0.1",
    "ws": "^8.21.0",
    "yaml": "^2.8.3",
    "zod": "^4.3.6"
  },
  "devDependencies": {
    "@eslint/js": "^10.0.1",
    "@microsoft/api-extractor": "^7.58.9",
    "@stryker-mutator/core": "^10.0.0",
    "@stryker-mutator/vitest-runner": "^10.0.0",
    "@types/node": "^26.6.2",
    "@types/proper-lockfile": "^4.1.4",
    "@types/write-file-atomic": "^4.0.3",
    "@types/ws": "^8.18.1",
    "eslint": "^10.5.0",
    "eslint-plugin-sonarjs": "^4.1.0",
    "husky": "^9.1.7",
    "jscpd": "^5.0.11",
    "knip": "^6.17.1",
    "puppeteer-core": "25.11.0",
    "ts-morph": "^28.0.0",
    "tsx": "^4.21.0",
    "typescript": "^5.7.0",
    "typescript-eslint": "^8.61.1",
    "vitest": "4.1.11"
  },
  "engines": {
    "node": ">=20.17.0"
  },
  "overrides": {
    "esbuild": ">=0.28.1",
    "qs": ">=6.15.2"
  }
}
