{
  "name": "n8n",
  "version": "2.8.4",
  "description": "n8n Workflow Automation Tool",
  "main": "dist/index",
  "types": "dist/index.d.ts",
  "bin": {
    "n8n": "./bin/n8n"
  },
  "keywords": [
    "automate",
    "automation",
    "IaaS",
    "iPaaS",
    "n8n",
    "workflow"
  ],
  "engines": {
    "node": ">=20.19 <= 24.x"
  },
  "files": [
    "bin",
    "templates",
    "dist",
    "LICENSE.md",
    "LICENSE_EE.md"
  ],
  "devDependencies": {
    "@redocly/cli": "^1.28.5",
    "@types/aws4": "^1.5.1",
    "@types/bcryptjs": "^2.4.2",
    "@types/compression": "^1.7.5",
    "@types/convict": "^6.1.1",
    "@types/cookie-parser": "^1.4.8",
    "@types/express": "^5.0.1",
    "@types/flat": "^5.0.5",
    "@types/formidable": "^3.4.5",
    "@types/json-diff": "^1.0.0",
    "@types/jsonwebtoken": "9.0.10",
    "@types/lodash": "4.17.17",
    "@types/psl": "^1.1.0",
    "@types/replacestream": "^4.0.1",
    "@types/shelljs": "^0.8.11",
    "@types/sshpk": "^1.17.4",
    "@types/superagent": "^8.1.9",
    "@types/swagger-ui-express": "^4.1.8",
    "@types/syslog-client": "^1.1.2",
    "@types/uuid": "^10.0.0",
    "@types/validator": "^13.7.0",
    "@types/ws": "^8.18.1",
    "@types/xml2js": "^0.4.14",
    "@types/yamljs": "^0.2.31",
    "@types/yargs-parser": "21.0.0",
    "@vvo/tzdb": "^6.141.0",
    "concurrently": "^8.2.0",
    "ioredis-mock": "^8.8.1",
    "mjml": "^4.15.3",
    "openapi-types": "^12.1.3",
    "ts-essentials": "^7.0.3",
    "@n8n/backend-test-utils": "1.8.2",
    "n8n-containers": "1.0.0",
    "@n8n/typescript-config": "1.3.0"
  },
  "dependencies": {
    "@aws-sdk/client-secrets-manager": "3.808.0",
    "@azure/identity": "4.13.0",
    "@azure/keyvault-secrets": "4.8.0",
    "@google-cloud/secret-manager": "5.6.0",
    "@modelcontextprotocol/sdk": "1.25.2",
    "@n8n/typeorm": "0.3.20-15",
    "@n8n_io/ai-assistant-sdk": "1.20.0",
    "@n8n_io/license-sdk": "2.25.0",
    "@parcel/watcher": "^2.5.1",
    "@rudderstack/rudder-sdk-node": "3.0.0",
    "@sentry/node": "^10.36.0",
    "aws4": "1.11.0",
    "axios": "1.12.0",
    "bcryptjs": "2.4.3",
    "bull": "4.16.4",
    "cache-manager": "5.2.3",
    "change-case": "4.1.2",
    "class-transformer": "0.5.1",
    "class-validator": "0.14.0",
    "compression": "1.8.1",
    "convict": "6.2.4",
    "cookie-parser": "1.4.7",
    "csrf": "3.1.0",
    "dotenv": "17.2.3",
    "express": "5.1.0",
    "express-handlebars": "8.0.1",
    "express-openapi-validator": "5.5.3",
    "express-prom-bundle": "8.0.0",
    "express-rate-limit": "7.5.0",
    "fast-glob": "3.2.12",
    "flat": "5.0.2",
    "flatted": "3.2.7",
    "formidable": "3.5.4",
    "handlebars": "4.7.8",
    "helmet": "8.1.0",
    "http-proxy-middleware": "^3.0.5",
    "infisical-node": "1.3.0",
    "ioredis": "5.3.2",
    "isbot": "3.6.13",
    "json-diff": "1.0.6",
    "jsonschema": "1.4.1",
    "jsonwebtoken": "9.0.3",
    "ldapts": "4.2.6",
    "lodash": "4.17.23",
    "luxon": "3.7.2",
    "nanoid": "3.3.8",
    "nodemailer": "7.0.11",
    "oauth-1.0a": "2.2.6",
    "open": "7.4.2",
    "openid-client": "6.5.0",
    "otpauth": "9.1.1",
    "p-cancelable": "2.1.1",
    "p-lazy": "3.1.0",
    "pg": "8.17.0",
    "picocolors": "1.0.1",
    "pkce-challenge": "5.0.0",
    "posthog-node": "3.2.1",
    "prom-client": "15.1.3",
    "psl": "1.9.0",
    "raw-body": "3.0.0",
    "reflect-metadata": "0.2.2",
    "replacestream": "4.0.3",
    "samlify": "2.10.0",
    "semver": "7.5.4",
    "shelljs": "0.8.5",
    "simple-git": "3.28.0",
    "source-map-support": "0.5.21",
    "sqlite3": "5.1.7",
    "sshpk": "1.18.0",
    "swagger-ui-express": "5.0.1",
    "undici": "^7.16.0",
    "uuid": "10.0.0",
    "validator": "13.15.22",
    "ws": "8.17.1",
    "xml2js": "0.6.2",
    "xmllint-wasm": "3.0.1",
    "xss": "1.0.15",
    "yamljs": "0.3.0",
    "yargs-parser": "21.1.1",
    "zod": "3.25.67",
    "@n8n/ai-workflow-builder": "1.8.1",
    "@n8n/api-types": "1.8.1",
    "@n8n/chat-hub": "1.1.1",
    "@n8n/backend-common": "1.8.1",
    "@n8n/client-oauth2": "1.0.0-rc.0",
    "@n8n/config": "2.7.1",
    "@n8n/db": "1.8.2",
    "@n8n/constants": "0.18.0",
    "@n8n/errors": "0.6.0",
    "@n8n/n8n-nodes-langchain": "2.8.1",
    "@n8n/decorators": "1.8.0",
    "@n8n/di": "0.10.0",
    "@n8n/permissions": "0.49.0",
    "@n8n/utils": "1.24.0",
    "@n8n/syslog-client": "1.2.0",
    "n8n-core": "2.8.1",
    "@n8n/task-runner": "2.8.1",
    "n8n-nodes-base": "2.8.1",
    "n8n-editor-ui": "2.8.3",
    "n8n-workflow": "2.8.0"
  },
  "license": "SEE LICENSE IN LICENSE.md",
  "homepage": "https://n8n.io",
  "author": {
    "name": "Jan Oberhauser",
    "email": "jan@n8n.io"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/n8n-io/n8n.git"
  },
  "scripts": {
    "clean": "rimraf dist .turbo",
    "typecheck": "tsc --noEmit",
    "build": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && pnpm run build:data",
    "build:data": "node scripts/build.mjs",
    "buildAndDev": "pnpm run build && pnpm run dev",
    "dev": "concurrently -k -n \"TypeScript,Node\" -c \"yellow.bold,cyan.bold\" \"npm run watch\" \"nodemon --delay 1\"",
    "dev:worker": "concurrently -k -n \"TypeScript,Node\" -c \"yellow.bold,cyan.bold\" \"npm run watch\" \"nodemon worker\"",
    "dev:webhook": "concurrently -k -n \"TypeScript,Node\" -c \"yellow.bold,cyan.bold\" \"npm run watch\" \"nodemon webhook\"",
    "format": "biome format --write .",
    "format:check": "biome ci .",
    "lint": "eslint . --quiet",
    "lint:fix": "eslint . --fix",
    "start": "node ../../scripts/os-normalize.mjs --dir bin n8n",
    "test": "N8N_LOG_LEVEL=silent DB_SQLITE_POOL_SIZE=4 DB_TYPE=sqlite jest",
    "test:unit": "N8N_LOG_LEVEL=silent DB_SQLITE_POOL_SIZE=4 DB_TYPE=sqlite jest --config=jest.config.unit.js",
    "test:integration": "N8N_LOG_LEVEL=silent DB_SQLITE_POOL_SIZE=4 DB_TYPE=sqlite jest --config=jest.config.integration.js",
    "test:dev": "N8N_LOG_LEVEL=silent DB_SQLITE_POOL_SIZE=4 DB_TYPE=sqlite jest --watch",
    "test:sqlite": "N8N_LOG_LEVEL=silent DB_SQLITE_POOL_SIZE=4 DB_TYPE=sqlite jest --config=jest.config.integration.js --no-coverage",
    "test:sqlite:migrations": "N8N_LOG_LEVEL=silent DB_SQLITE_POOL_SIZE=4 DB_TYPE=sqlite jest --config=jest.config.migration.js --no-coverage",
    "test:sqlite:migrations:tc": "TESTCONTAINERS_RYUK_DISABLED=true N8N_LOG_LEVEL=silent DB_SQLITE_POOL_SIZE=4 DB_TYPE=sqlite jest --config=jest.config.migration.testcontainers.js --no-coverage",
    "test:postgres": "N8N_LOG_LEVEL=silent DB_TYPE=postgresdb DB_POSTGRESDB_SCHEMA=alt_schema DB_TABLE_PREFIX=test_ jest --config=jest.config.integration.js --no-coverage",
    "test:postgres:migrations": "N8N_LOG_LEVEL=silent DB_TYPE=postgresdb DB_POSTGRESDB_SCHEMA=alt_schema DB_TABLE_PREFIX=test_ jest --config=jest.config.migration.js --no-coverage",
    "test:postgres:migrations:tc": "TESTCONTAINERS_RYUK_DISABLED=true N8N_LOG_LEVEL=silent DB_TYPE=postgresdb DB_POSTGRESDB_SCHEMA=alt_schema DB_TABLE_PREFIX=test_ jest --config=jest.config.migration.testcontainers.js --no-coverage",
    "test:postgres:tc": "TESTCONTAINERS_RYUK_DISABLED=true N8N_LOG_LEVEL=silent jest --config=jest.config.integration.testcontainers.js --no-coverage",
    "test:postgres:integration:tc": "TESTCONTAINERS_RYUK_DISABLED=true N8N_LOG_LEVEL=silent jest --config=jest.config.integration.testcontainers.js --no-coverage --testPathIgnorePatterns=/test/migration/",
    "test:mariadb": "echo true",
    "test:win": "set N8N_LOG_LEVEL=silent&& set DB_SQLITE_POOL_SIZE=4&& set DB_TYPE=sqlite&& jest",
    "test:dev:win": "set N8N_LOG_LEVEL=silent&& set DB_SQLITE_POOL_SIZE=4&& set DB_TYPE=sqlite&& jest --watch",
    "test:sqlite:win": "set N8N_LOG_LEVEL=silent&& set DB_SQLITE_POOL_SIZE=4&& set DB_TYPE=sqlite&& jest --config=jest.config.integration.js",
    "test:postgres:win": "set N8N_LOG_LEVEL=silent&& set DB_TYPE=postgresdb&& set DB_POSTGRESDB_SCHEMA=alt_schema&& set DB_TABLE_PREFIX=test_&& jest --config=jest.config.integration.js --no-coverage",
    "test:mariadb:win": "echo true",
    "watch": "tsc-watch -p tsconfig.build.json --onCompilationComplete \"tsc-alias -p tsconfig.build.json\""
  }
}