{
  "name": "nocodb",
  "version": "0.301.3",
  "description": "NocoDB Backend",
  "main": "dist/bundle.js",
  "author": {
    "name": "NocoDB Inc",
    "url": "https://nocodb.com/"
  },
  "homepage": "https://github.com/nocodb/nocodb",
  "repository": {
    "type": "git",
    "url": "https://github.com/nocodb/nocodb.git"
  },
  "bugs": {
    "url": "https://github.com/nocodb/nocodb/issues"
  },
  "engines": {
    "node": ">=22"
  },
  "license": "Sustainable Use License",
  "dependencies": {
    "@ai-sdk/amazon-bedrock": "^4.0.3",
    "@ai-sdk/anthropic": "^3.0.1",
    "@ai-sdk/azure": "^3.0.1",
    "@ai-sdk/deepseek": "^2.0.1",
    "@ai-sdk/google": "^3.0.1",
    "@ai-sdk/groq": "^3.0.1",
    "@ai-sdk/openai": "^3.0.1",
    "@ai-sdk/openai-compatible": "^0.2.14",
    "@ai-sdk/provider": "^3.0.0",
    "@aws-sdk/client-cognito-identity-provider": "^3.816.0",
    "@aws-sdk/client-kinesis": "^3.817.0",
    "@aws-sdk/client-s3": "^3.743.0",
    "@aws-sdk/client-ses": "^3.743.0",
    "@aws-sdk/client-sns": "^3.743.0",
    "@aws-sdk/lib-storage": "^3.743.0",
    "@aws-sdk/s3-request-presigner": "^3.743.0",
    "@clickhouse/client": "^1.11.1",
    "@databricks/sql": "^1.11.0",
    "@e2b/code-interpreter": "^1.5.1",
    "@gitbeaker/rest": "^43.8.0",
    "@google-cloud/storage": "^7.15.0",
    "@govtechsg/passport-openidconnect": "^1.0.3",
    "@linear/sdk": "^40.0.0",
    "@microsoft/microsoft-graph-client": "^3.0.7",
    "@modelcontextprotocol/sdk": "^1.26.0",
    "@napi-rs/canvas": "^0.1.77",
    "@nest-lab/throttler-storage-redis": "^1.1.0",
    "@nestjs/bull": "^10.2.3",
    "@nestjs/common": "^10.4.19",
    "@nestjs/config": "^4.0.2",
    "@nestjs/core": "^10.4.19",
    "@nestjs/event-emitter": "^2.1.1",
    "@nestjs/passport": "^10.0.3",
    "@nestjs/platform-express": "^10.4.19",
    "@nestjs/platform-socket.io": "^10.4.19",
    "@nestjs/schedule": "^6.0.0",
    "@nestjs/throttler": "^6.4.0",
    "@nestjs/websockets": "^10.4.19",
    "@node-saml/passport-saml": "^5.0.1",
    "@octokit/plugin-throttling": "^11.0.3",
    "@octokit/rest": "^20.0.0",
    "@react-email/components": "0.0.41",
    "@react-email/render": "^1.1.2",
    "@sentry/nestjs": "^9.27.0",
    "@slack/web-api": "^7.11.0",
    "@socket.io/redis-adapter": "^8.3.0",
    "@types/chai": "^4.3.20",
    "ai": "^6.0.3",
    "airtable": "^0.12.2",
    "ajv": "^8.17.1",
    "ajv-formats": "^2.1.1",
    "auto-bind": "^4.0.0",
    "aws-jwt-verify": "^4.0.1",
    "aws-kcl": "^2.2.7",
    "axios": "^1.13.5",
    "bcryptjs": "^2.4.3",
    "bignumber.js": "^9.1.2",
    "boxen": "^5.1.2",
    "bull": "^4.16.5",
    "clear": "^0.1.0",
    "colors": "^1.4.0",
    "compare-versions": "^6.1.1",
    "consola": "^3.4.0",
    "content-disposition": "^0.5.4",
    "cookie-parser": "^1.4.7",
    "cors": "^2.8.5",
    "cron-parser": "^5.4.0",
    "crypto-js": "^4.2.0",
    "dataloader": "^2.2.3",
    "dayjs": "^1.11.19",
    "debug": "^4.4.0",
    "deep-object-diff": "^1.1.9",
    "dotenv": "^8.6.0",
    "ejs": "^3.1.10",
    "emittery": "^0.13.1",
    "express": "^4.21.2",
    "fast-deep-equal": "^3.1.3",
    "fast-levenshtein": "^2.0.6",
    "fs-extra": "^9.1.0",
    "get-port": "5.1.1",
    "glob": "^10.5.0",
    "googleapis": "^169.0.0",
    "handlebars": "^4.7.8",
    "handlebars-helpers-v2": "^2.2.0",
    "html-to-json-parser": "^2.0.1",
    "i": "^0.3.7",
    "iconv-lite": "^0.6.3",
    "import-fresh": "^3.3.1",
    "inflection": "^1.13.4",
    "ioredis": "5.6.1",
    "ioredis-mock": "8.9.0",
    "is-docker": "^2.2.1",
    "isomorphic-dompurify": "^2.25.0",
    "jira-client": "^8.2.2",
    "json5": "^2.2.3",
    "jsonfile": "^6.1.0",
    "jsonwebtoken": "^9.0.2",
    "knex": "3.1.0",
    "list-github-dir-content": "^3.0.0",
    "lodash": "^4.17.23",
    "mailersend": "^1.5.0",
    "marked": "^4.3.0",
    "mime": "3.0.0",
    "minio": "^8.0.4",
    "mkdirp": "^2.1.6",
    "monacopilot": "^1.2.2",
    "multer": "^2.0.2",
    "mysql2": "^3.14.1",
    "nanoid": "^3.3.8",
    "nc-jsep": "^1.7.5",
    "nc-lib-gui": "0.301.3",
    "nestjs-pino": "^3.5.0",
    "net": "^1.0.2",
    "nocodb-sdk": "0.301.3",
    "node-sql-parser": "^5.3.6",
    "nodemailer": "^7.0.11",
    "npm": "^11.3.0",
    "object-hash": "^3.0.0",
    "object-sizeof": "^2.6.5",
    "octokit": "3.2.2",
    "openai": "^5.8.2",
    "os-locale": "^6.0.2",
    "p-queue": "^6.6.2",
    "papaparse": "^5.5.2",
    "parse-database-url": "^0.3.0",
    "passport": "^0.7.0",
    "passport-custom": "^1.1.1",
    "passport-google-oauth20": "^2.0.0",
    "passport-http": "^0.3.0",
    "passport-jwt": "^4.0.1",
    "passport-local": "^1.0.0",
    "passport-saml-metadata": "^5.0.0",
    "pdf-parse": "^1.1.1",
    "pdfjs-dist": "^5.4.54",
    "pg": "^8.13.1",
    "pg-protocol": "^1.7.0",
    "pino-http": "^8.6.1",
    "posthog-node": "^3.6.3",
    "react": "^19.0.0",
    "react-dom": "^19.0.0",
    "redlock": "^5.0.0-beta.2",
    "reflect-metadata": "^0.2.2",
    "request-filtering-agent": "^3.2.0",
    "request-ip": "^3.3.0",
    "resumable-stream": "^2.2.1",
    "rfdc": "^1.4.1",
    "rxjs": "^7.8.1",
    "sharp": "0.33.4",
    "slash": "^3.0.0",
    "slug": "^8.2.3",
    "snowflake-sdk": "^2.1.0",
    "socket.io": "^4.8.1",
    "sqlite3": "^5.1.7",
    "stream-json": "^1.9.1",
    "stripe": "^18.2.1",
    "tinycolor2": "^1.6.0",
    "twilio": "^4.23.0",
    "unpdf": "^1.2.1",
    "unstructured-client": "^0.16.0",
    "uuid": "^11.1.0",
    "validator": "^13.15.22",
    "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz",
    "zod": "^3.25.76"
  },
  "devDependencies": {
    "@nestjs/cli": "^11.0.7",
    "@nestjs/schematics": "^10.2.3",
    "@nestjs/testing": "^10.4.15",
    "@nestjsplus/dyn-schematics": "^1.0.12",
    "@rspack/cli": "^1.6.7",
    "@rspack/core": "^1.6.7",
    "@swc-node/register": "^1.10.10",
    "@types/content-disposition": "^0.5.8",
    "@types/ejs": "^3.1.5",
    "@types/express": "^4.17.21",
    "@types/jest": "^29.5.14",
    "@types/mocha": "^10.0.10",
    "@types/multer": "^1.4.12",
    "@types/node": "^22.15.21",
    "@types/passport-google-oauth20": "^2.0.16",
    "@types/passport-jwt": "^4.0.1",
    "@types/react": "^19.0.10",
    "@types/react-dom": "^19.0.4",
    "@types/supertest": "^6.0.3",
    "@typescript-eslint/eslint-plugin": "^6.21.0",
    "@typescript-eslint/parser": "^6.21.0",
    "c8": "^10.1.3",
    "chai": "^4.5.0",
    "cross-env": "^7.0.3",
    "eslint": "^8.57.1",
    "eslint-config-prettier": "^8.10.0",
    "eslint-plugin-eslint-comments": "^3.2.0",
    "eslint-plugin-functional": "^5.0.8",
    "eslint-plugin-import": "^2.31.0",
    "eslint-plugin-prettier": "^4.2.1",
    "jest": "29.7.0",
    "jest-mock-extended": "^3.0.7",
    "mocha": "^10.8.2",
    "nock": "^14.0.6",
    "node-loader": "^2.1.0",
    "nodemon": "^3.1.9",
    "pino-pretty": "^10.3.1",
    "prettier": "^2.8.8",
    "react-email": "4.0.15",
    "run-script-webpack-plugin": "0.2.2",
    "semver": "^7.5.4",
    "sinon": "^21.0.0",
    "supertest": "^7.1.1",
    "ts-checker-rspack-plugin": "^1.2.1",
    "ts-jest": "29.2.5",
    "typescript": "^5.7.3",
    "webpack-obfuscator": "^3.5.1"
  },
  "scripts": {
    "build": "pnpm run docker:build",
    "build:obfuscate": "EE=true rspack --config rspack.config.js",
    "build:cli:module": "EE=true rspack --config rspack.cli.config.js",
    "obfuscate:build:publish": "pnpm run build:obfuscate && pnpm publish .",
    "registerIntegrations": "node build-utils/registerIntegrations.js",
    "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
    "start": "pnpm run watch:run",
    "start:prod": "node docker/main",
    "lint": "eslint \"src/**/*.ts\" --fix",
    "test": "jest --runInBand --forceExit --passWithNoTests",
    "test:watch": "jest --watch",
    "test:cov": "jest --coverage",
    "test:debug": "node --inspect-brk -r @swc-node/register node_modules/.bin/jest --runInBand",
    "test:e2e": "jest --config ./test/jest-e2e.json",
    "watch:run": "cross-env NODE_ENV=development NC_DISABLE_TELE=true ENTRYPOINT=src/run/docker rspack --config rspack.dev.config.js",
    "watch:run:mysql": "cross-env NODE_ENV=development NC_DISABLE_TELE=true ENTRYPOINT=src/run/dockerRunMysql rspack --config rspack.dev.config.js",
    "watch:run:pg": "cross-env NODE_ENV=development NC_DISABLE_TELE=true ENTRYPOINT=src/run/dockerRunPG rspack --config rspack.dev.config.js",
    "watch:run:playwright": "rm -f ./test_*.db; cross-env DB_TYPE=sqlite DATABASE_URL=sqlite:./test_noco.db PLAYWRIGHT_TEST=true NC_DISABLE_TELE=true NC_SNAPSHOT_WINDOW_SEC=3 ENTRYPOINT=src/run/testDocker rspack --config rspack.dev.config.js",
    "watch:run:playwright:mysql": "rm -f ./test_noco.db; cross-env DB_TYPE=mysql NC_DB=\"mysql2://localhost:3306?u=root&p=password&d=pw_ncdb\" PLAYWRIGHT_TEST=true NODE_ENV=test NC_DISABLE_TELE=true ENTRYPOINT=src/run/testDocker rspack --config rspack.dev.config.js",
    "watch:run:playwright:pg": "rm -f ./test_noco.db; cross-env DB_TYPE=pg NC_DB=\"pg://localhost:5432?u=postgres&p=password&d=pw_ncdb\" PLAYWRIGHT_TEST=true NODE_ENV=test NC_DISABLE_TELE=true ENTRYPOINT=src/run/testDocker rspack --config rspack.dev.config.js",
    "watch:run:playwright:quick": "rm -f ./test_noco.db; cp ../../tests/playwright/fixtures/noco_0_91_7.db ./test_noco.db; cross-env NODE_ENV=test DATABASE_URL=sqlite:./test_noco.db NC_DISABLE_TELE=true NODE_ENV=test ENTRYPOINT=src/run/docker rspack --config rspack.dev.config.js",
    "watch:run:playwright:pg:cyquick": "rm -f ./test_noco.db; cp ../../tests/playwright/fixtures/noco_0_91_7.db ./test_noco.db; cross-env NODE_ENV=test NC_DISABLE_TELE=true ENTRYPOINT=src/run/dockerRunPG_CyQuick.ts rspack --config rspack.dev.config.js",
    "test:unit": "cross-env NODE_ENV=test TS_NODE_PROJECT=./tests/unit/tsconfig.json mocha --require @swc-node/register tests/unit/index.test.ts --recursive --timeout 300000  --exit --delay",
    "test:unit:pg": "cp tests/unit/.pg.env tests/unit/.env; cross-env NODE_ENV=test TS_NODE_PROJECT=./tests/unit/tsconfig.json mocha --require @swc-node/register tests/unit/index.test.ts --recursive --timeout 300000  --exit --delay",
    "docker:build": "EE=\"true-xc-test\" rspack  --config docker/rspack.config.js",
    "mail": "email dev --dir src/services/mail/templates --port 8001"
  }
}