{
  "name": "proxy-chain",
  "version": "3.0.1",
  "description": "Node.js implementation of a proxy server (think Squid) with support for SSL, authentication, upstream proxy chaining, and protocol tunneling.",
  "main": "dist/index.js",
  "type": "module",
  "exports": {
    ".": {
      "types": "./dist/index.d.ts",
      "default": "./dist/index.js"
    }
  },
  "keywords": [
    "proxy",
    "squid",
    "apify",
    "tunnel",
    "puppeteer"
  ],
  "author": {
    "name": "Apify Technologies",
    "email": "support@apify.com",
    "url": "https://apify.com"
  },
  "contributors": [
    "Jan Curn <jan@apify.com>"
  ],
  "license": "Apache-2.0",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/apify/proxy-chain"
  },
  "bugs": {
    "url": "https://github.com/apify/proxy-chain/issues"
  },
  "homepage": "https://blog.apify.com/how-to-make-headless-chrome-and-puppeteer-use-a-proxy-server-with-authentication-249a21a79212",
  "files": [
    "dist",
    "!**/*.tsbuildinfo"
  ],
  "engines": {
    "node": ">=20.11"
  },
  "devEngines": {
    "packageManager": {
      "name": "pnpm",
      "version": "10.33.4",
      "onFail": "warn"
    }
  },
  "devDependencies": {
    "@apify/eslint-config": "^2.0.6",
    "@apify/tsconfig": "^0.2.0",
    "@types/basic-auth": "^1.1.8",
    "@types/body-parser": "^1.19.6",
    "@types/express": "^5.0.6",
    "@types/node": "^26.4.0",
    "@types/underscore": "^1.13.0",
    "@types/ws": "^8.18.1",
    "@vitest/coverage-v8": "^4.1.11",
    "basic-auth": "^3.0.0",
    "basic-auth-parser": "^0.0.2",
    "body-parser": "^2.3.0",
    "cross-env": "^7.0.3",
    "eslint": "^9.18.0",
    "express": "^5.2.1",
    "portastic": "^1.0.1",
    "proxy": "^4.1.0",
    "puppeteer": "^25.1.0",
    "rimraf": "^6.1.3",
    "socksv5": "^0.0.6",
    "tsx": "^4.21.0",
    "typescript": "^6.0.3",
    "typescript-eslint": "^8.20.0",
    "underscore": "^1.13.1",
    "undici": "^7.16.0",
    "vitest": "^4.1.11",
    "ws": "^8.2.2"
  },
  "dependencies": {
    "socks": "^2.8.3",
    "socks-proxy-agent": "^10.1.0",
    "tslib": "^2.3.1"
  },
  "scripts": {
    "build:watch": "tsc -w",
    "build": "tsc",
    "clean": "rimraf dist",
    "local-proxy": "tsx test/utils/run_locally.ts",
    "test": "vitest run --coverage",
    "test:unit": "vitest run --project unit",
    "test:e2e": "vitest run --project e2e --coverage",
    "test:bun": "bun --bun run vitest run --project unit",
    "test:bun:e2e:full": "cross-env NODE_OPTIONS=--insecure-http-parser bun --bun run vitest run --project e2e",
    "test:bun:e2e:compatible": "pnpm run test:bun:e2e:full test/e2e/tcp_tunnel.ts -t 'throws error'",
    "test:bun:all": "pnpm run test:bun && pnpm run test:bun:e2e:full",
    "test:bun:supported": "pnpm run test:bun && pnpm run test:bun:e2e:compatible",
    "docker:build": "docker build --tag proxy-chain-tests --file test/Dockerfile .",
    "docker:run": "docker run --rm --add-host localhost-test:127.0.0.1 proxy-chain-tests",
    "test:docker": "pnpm run docker:build && pnpm run docker:run -- test",
    "test:docker:bun": "pnpm run docker:build && pnpm run docker:run -- test:bun:supported",
    "test:docker:bun:unit": "pnpm run docker:build && pnpm run docker:run -- test:bun",
    "test:docker:bun:e2e:compatible": "pnpm run docker:build && pnpm run docker:run -- test:bun:e2e:compatible",
    "test:docker:bun:e2e:full": "pnpm run docker:build && pnpm run docker:run -- test:bun:e2e:full",
    "test:docker:bun:full": "pnpm run docker:build && pnpm run docker:run -- test:bun:all",
    "test:docker:all": "bash scripts/test-docker-all.sh",
    "type-check": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json",
    "lint": "eslint .",
    "lint:fix": "eslint . --fix"
  }
}