{
  "name": "@centralping/ergo",
  "version": "0.7.0",
  "description": "A Fast Fail REST API toolkit for Node.js -- composable middleware with structured Negotiation, Authorization, Validation, and Execution stages.",
  "main": "http/index.js",
  "type": "module",
  "types": "types/http/index.d.ts",
  "exports": {
    ".": {
      "types": "./types/http/index.d.ts",
      "default": "./http/index.js"
    },
    "./http": {
      "types": "./types/http/index.d.ts",
      "default": "./http/index.js"
    },
    "./http/*": {
      "types": "./types/http/*.d.ts",
      "default": "./http/*.js"
    },
    "./lib/cookie": {
      "types": "./types/lib/cookie/index.d.ts",
      "default": "./lib/cookie/index.js"
    },
    "./lib/json-api-query": {
      "types": "./types/lib/json-api-query/index.d.ts",
      "default": "./lib/json-api-query/index.js"
    },
    "./lib/*": {
      "types": "./types/lib/*.d.ts",
      "default": "./lib/*.js"
    },
    "./types": {
      "types": "./types/ergo.d.ts"
    },
    "./utils/buffers": {
      "types": "./types/utils/buffers/index.d.ts",
      "default": "./utils/buffers/index.js"
    },
    "./utils/iterables": {
      "types": "./types/utils/iterables/index.d.ts",
      "default": "./utils/iterables/index.js"
    },
    "./utils/observables": {
      "types": "./types/utils/observables/index.d.ts",
      "default": "./utils/observables/index.js"
    },
    "./utils/streams": {
      "types": "./types/utils/streams/index.d.ts",
      "default": "./utils/streams/index.js"
    },
    "./utils/*": {
      "types": "./types/utils/*.d.ts",
      "default": "./utils/*.js"
    }
  },
  "files": [
    "http/",
    "lib/",
    "utils/",
    "types/",
    "!**/*.spec.*.js",
    "LICENSE",
    "README.md",
    "CHANGELOG.md"
  ],
  "engines": {
    "node": ">=22"
  },
  "scripts": {
    "lint": "eslint .",
    "format": "prettier --write \"**/*.js\"",
    "format:check": "prettier --check \"**/*.js\"",
    "pretest": "npm run lint && npm run format:check",
    "test": "c8 node --test \"**/*.spec.unit.js\" \"**/*.spec.func.js\"",
    "test:watch": "node --test --watch \"**/*.spec.unit.js\" \"**/*.spec.func.js\"",
    "preversion": "npm test",
    "types": "tsc && cp -r types-override/. types/",
    "check-types": "npm run types && tsc --project tsconfig.check-types.json",
    "prepublishOnly": "npm test && npm run check-types",
    "prepare": "simple-git-hooks"
  },
  "simple-git-hooks": {
    "pre-commit": "npx lint-staged"
  },
  "lint-staged": {
    "*.js": [
      "eslint --fix",
      "prettier --write"
    ]
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/CentralPing/ergo.git"
  },
  "keywords": [
    "fast-fail",
    "rest-api",
    "json-api",
    "http",
    "middleware",
    "streaming",
    "security",
    "security-headers",
    "owasp",
    "api-security",
    "opentelemetry",
    "tracing"
  ],
  "author": "Jason Cust <jason@centralping.com>",
  "license": "MIT",
  "bugs": {
    "url": "https://github.com/CentralPing/ergo/issues"
  },
  "publishConfig": {
    "access": "public"
  },
  "homepage": "https://centralping.github.io/packages/ergo/",
  "funding": {
    "type": "github",
    "url": "https://github.com/sponsors/jasoncust"
  },
  "dependencies": {
    "@opentelemetry/api": "^1.0.0",
    "ajv": "^8.20.0",
    "ajv-formats": "^3.0.1",
    "content-type": "^2.0.0",
    "etag": "^1.8.1",
    "negotiator": "^1.0.0"
  },
  "peerDependencies": {
    "@types/node": ">= 22"
  },
  "peerDependenciesMeta": {
    "@types/node": {
      "optional": true
    }
  },
  "devDependencies": {
    "@eslint/js": "^10.0.1",
    "@opentelemetry/api": "^1.9.0",
    "@opentelemetry/sdk-trace-node": "^2.0.0",
    "@types/node": "^26.0.0",
    "c8": "^11.0.0",
    "eslint": "^10.0.3",
    "eslint-config-prettier": "^10.1.8",
    "globals": "^17.4.0",
    "lint-staged": "^17.0.3",
    "prettier": "^3.8.1",
    "simple-git-hooks": "^2.12.1",
    "typescript": "^6.0.3",
    "undici": "^8.5.0"
  },
  "c8": {
    "include": [
      "http/**/*.js",
      "lib/**/*.js",
      "utils/**/*.js"
    ],
    "exclude": [
      "**/*.spec.*.js",
      "**/node_modules/**",
      "**/coverage/**",
      "benchmarks/**",
      "eslint.config.js"
    ],
    "branches": 80,
    "functions": 100,
    "lines": 80,
    "statements": 80,
    "reporter": [
      "text",
      "lcov"
    ],
    "all": true
  }
}
