{
  "name": "undici",
  "version": "7.21.0",
  "description": "An HTTP/1.1 client, written from scratch for Node.js",
  "homepage": "https://undici.nodejs.org",
  "bugs": {
    "url": "https://github.com/nodejs/undici/issues"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/nodejs/undici.git"
  },
  "license": "MIT",
  "contributors": [
    {
      "name": "Daniele Belardi",
      "url": "https://github.com/dnlup",
      "author": true
    },
    {
      "name": "Ethan Arrowood",
      "url": "https://github.com/ethan-arrowood",
      "author": true
    },
    {
      "name": "Matteo Collina",
      "url": "https://github.com/mcollina",
      "author": true
    },
    {
      "name": "Matthew Aitken",
      "url": "https://github.com/KhafraDev",
      "author": true
    },
    {
      "name": "Robert Nagy",
      "url": "https://github.com/ronag",
      "author": true
    },
    {
      "name": "Szymon Marczak",
      "url": "https://github.com/szmarczak",
      "author": true
    },
    {
      "name": "Tomas Della Vedova",
      "url": "https://github.com/delvedor",
      "author": true
    }
  ],
  "keywords": [
    "fetch",
    "http",
    "https",
    "promise",
    "request",
    "curl",
    "wget",
    "xhr",
    "whatwg"
  ],
  "main": "index.js",
  "types": "index.d.ts",
  "scripts": {
    "build:node": "esbuild index-fetch.js --bundle --platform=node --outfile=undici-fetch.js --define:esbuildDetection=1 --keep-names && node scripts/strip-comments.js",
    "build:wasm": "node build/wasm.js --docker",
    "generate-pem": "node scripts/generate-pem.js",
    "lint": "eslint --cache",
    "lint:fix": "eslint --fix --cache",
    "test": "npm run test:javascript && cross-env NODE_V8_COVERAGE= npm run test:typescript",
    "test:javascript": "npm run test:javascript:no-jest && npm run test:jest",
    "test:javascript:no-jest": "npm run generate-pem && npm run test:unit && npm run test:fetch && npm run test:node-fetch && npm run test:infra && npm run test:cache && npm run test:cache-interceptor && npm run test:interceptors && npm run test:cookies && npm run test:eventsource && npm run test:subresource-integrity && npm run test:wpt && npm run test:websocket && npm run test:node-test && npm run test:cache-tests",
    "test:javascript:without-intl": "npm run test:javascript:no-jest",
    "test:busboy": "borp --timeout 180000 -p \"test/busboy/*.js\"",
    "test:cache": "borp --timeout 180000 -p \"test/cache/*.js\"",
    "test:cache-interceptor": "borp --timeout 180000 -p \"test/cache-interceptor/*.js\"",
    "test:cache-interceptor:sqlite": "cross-env NODE_OPTIONS=--experimental-sqlite npm run test:cache-interceptor",
    "test:cookies": "borp --timeout 180000 -p \"test/cookie/*.js\"",
    "test:eventsource": "npm run build:node && borp --timeout 180000 --expose-gc -p \"test/eventsource/*.js\"",
    "test:fuzzing": "node test/fuzzing/fuzzing.test.js",
    "test:fetch": "npm run build:node && borp --timeout 180000 --expose-gc --concurrency 1 -p \"test/fetch/*.js\" && npm run test:webidl && npm run test:busboy",
    "test:subresource-integrity": "borp --timeout 180000 -p \"test/subresource-integrity/*.js\"",
    "test:h2": "npm run test:h2:core && npm run test:h2:fetch",
    "test:h2:core": "borp --timeout 180000 -p \"test/+(http2|h2)*.js\"",
    "test:h2:fetch": "npm run build:node && borp --timeout 180000 -p \"test/fetch/http2*.js\"",
    "test:infra": "borp --timeout 180000 -p \"test/infra/*.js\"",
    "test:interceptors": "borp --timeout 180000 -p \"test/interceptors/*.js\"",
    "test:jest": "cross-env NODE_V8_COVERAGE= jest",
    "test:unit": "borp --timeout 180000 --expose-gc -p \"test/*.js\"",
    "test:node-fetch": "borp --timeout 180000 -p \"test/node-fetch/**/*.js\"",
    "test:node-test": "borp --timeout 180000 -p \"test/node-test/**/*.js\"",
    "test:tdd": "borp --timeout 180000 --expose-gc -p \"test/*.js\"",
    "test:tdd:node-test": "borp --timeout 180000 -p \"test/node-test/**/*.js\" -w",
    "test:typescript": "tsd && tsc test/imports/undici-import.ts --typeRoots ./types --noEmit && tsc ./types/*.d.ts --noEmit --typeRoots ./types",
    "test:webidl": "borp --timeout 180000 -p \"test/webidl/*.js\"",
    "test:websocket": "borp --timeout 180000 -p \"test/websocket/**/*.js\"",
    "test:websocket:autobahn": "node test/autobahn/client.js",
    "test:websocket:autobahn:report": "node test/autobahn/report.js",
    "test:wpt:setup": "node test/web-platform-tests/wpt-runner.mjs setup",
    "test:wpt": "npm run test:wpt:setup && node test/web-platform-tests/wpt-runner.mjs run /fetch /mimesniff /xhr /websockets /serviceWorkers /eventsource",
    "test:cache-tests": "node test/cache-interceptor/cache-tests.mjs --ci",
    "coverage": "npm run coverage:clean && cross-env NODE_V8_COVERAGE=./coverage/tmp npm run test:javascript && npm run coverage:report",
    "coverage:ci": "npm run coverage:clean && cross-env NODE_V8_COVERAGE=./coverage/tmp npm run test:javascript && npm run coverage:report:ci",
    "coverage:clean": "node ./scripts/clean-coverage.js",
    "coverage:report": "cross-env NODE_V8_COVERAGE= c8 report",
    "coverage:report:ci": "c8 report",
    "bench": "echo \"Error: Benchmarks have been moved to '/benchmarks'\" && exit 1",
    "serve:website": "echo \"Error: Documentation has been moved to '/docs'\" && exit 1",
    "prepare": "husky && node ./scripts/platform-shell.js"
  },
  "devDependencies": {
    "@fastify/busboy": "3.2.0",
    "@matteo.collina/tspl": "^0.2.0",
    "@metcoder95/https-pem": "^1.0.0",
    "@sinonjs/fake-timers": "^12.0.0",
    "@types/node": "^20.19.22",
    "abort-controller": "^3.0.0",
    "borp": "^0.20.0",
    "c8": "^10.0.0",
    "cross-env": "^10.0.0",
    "dns-packet": "^5.4.0",
    "esbuild": "^0.25.2",
    "eslint": "^9.9.0",
    "fast-check": "^4.1.1",
    "husky": "^9.0.7",
    "jest": "^30.0.5",
    "jsondiffpatch": "^0.7.3",
    "neostandard": "^0.12.0",
    "node-forge": "^1.3.1",
    "proxy": "^2.1.1",
    "tsd": "^0.33.0",
    "typescript": "^5.6.2",
    "ws": "^8.11.0"
  },
  "engines": {
    "node": ">=20.18.1"
  },
  "tsd": {
    "directory": "test/types",
    "compilerOptions": {
      "esModuleInterop": true,
      "lib": [
        "esnext"
      ]
    }
  },
  "jest": {
    "testMatch": [
      "<rootDir>/test/jest/**"
    ]
  }
}
