{ "name": "server", "version": "0.71.1", "description": "", "author": "", "private": true, "license": "", "scripts": { "build": "nest build", "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", "start": "cross-env NODE_ENV=development nest start", "start:dev": "cross-env NODE_ENV=development nest start --watch", "start:debug": "cross-env NODE_ENV=development nest start --debug --watch", "start:prod": "cross-env NODE_ENV=production node dist/main", "collab:prod": "cross-env NODE_ENV=production node dist/collaboration/server/collab-main", "collab:dev": "cross-env NODE_ENV=development node dist/collaboration/server/collab-main", "email:dev": "email dev -p 5019 -d ./src/integrations/transactional/emails", "migration:create": "tsx src/database/migrate.ts create", "migration:up": "tsx src/database/migrate.ts up", "migration:down": "tsx src/database/migrate.ts down", "migration:latest": "tsx src/database/migrate.ts latest", "migration:redo": "tsx src/database/migrate.ts redo", "migration:reset": "tsx src/database/migrate.ts down-to NO_MIGRATIONS", "migration:codegen": "kysely-codegen --dialect=postgres --camel-case --env-file=../../.env --out-file=./src/database/types/db.d.ts", "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", "test": "jest", "test:watch": "jest --watch", "test:cov": "jest --coverage", "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", "test:e2e": "jest --config test/jest-e2e.json" }, "dependencies": { "@ai-sdk/google": "^3.0.52", "@ai-sdk/openai": "^3.0.47", "@ai-sdk/openai-compatible": "^2.0.37", "@aws-sdk/client-s3": "3.1014.0", "@aws-sdk/lib-storage": "3.1014.0", "@aws-sdk/s3-request-presigner": "3.1014.0", "@clickhouse/client": "^1.18.2", "@fastify/cookie": "^11.0.2", "@fastify/multipart": "^9.4.0", "@fastify/static": "^9.0.0", "@keyv/redis": "^5.1.6", "@langchain/core": "1.1.34", "@langchain/textsplitters": "1.0.1", "@modelcontextprotocol/sdk": "^1.27.1", "@nest-lab/throttler-storage-redis": "^1.2.0", "@nestjs-labs/nestjs-ioredis": "^11.0.4", "@nestjs/bullmq": "^11.0.4", "@nestjs/cache-manager": "^3.1.0", "@nestjs/common": "^11.1.17", "@nestjs/config": "^4.0.3", "@nestjs/core": "^11.1.17", "@nestjs/event-emitter": "^3.0.1", "@nestjs/jwt": "11.0.2", "@nestjs/mapped-types": "^2.1.0", "@nestjs/passport": "^11.0.5", "@nestjs/platform-fastify": "^11.1.17", "@nestjs/platform-socket.io": "^11.1.17", "@nestjs/schedule": "^6.1.1", "@nestjs/terminus": "^11.1.1", "@nestjs/throttler": "^6.5.0", "@nestjs/websockets": "^11.1.17", "@node-saml/passport-saml": "^5.1.0", "@react-email/components": "1.0.10", "@react-email/render": "2.0.4", "@socket.io/redis-adapter": "^8.3.0", "ai": "^6.0.134", "ai-sdk-ollama": "^3.8.1", "bcrypt": "^6.0.0", "bowser": "^2.14.1", "bullmq": "^5.71.0", "cache-manager": "^7.2.8", "cheerio": "^1.2.0", "class-transformer": "^0.5.1", "class-validator": "^0.15.1", "cookie": "^1.1.1", "fastify-ip": "^2.0.0", "fs-extra": "^11.3.4", "happy-dom": "20.8.9", "ioredis": "^5.10.1", "jsonwebtoken": "^9.0.3", "kysely": "^0.28.14", "kysely-migration-cli": "^0.4.2", "kysely-postgres-js": "^3.0.0", "ldapts": "^8.1.7", "lib0": "^0.2.117", "mammoth": "^1.12.0", "mime-types": "^3.0.2", "msgpackr": "^1.11.9", "nanoid": "5.1.7", "nestjs-cls": "^6.2.0", "nestjs-kysely": "^3.1.2", "nestjs-pino": "^4.6.1", "nodemailer": "^8.0.4", "openid-client": "^6.8.2", "otpauth": "^9.5.0", "p-limit": "^7.3.0", "passport-google-oauth20": "^2.0.0", "passport-jwt": "^4.0.1", "pdfjs-dist": "^5.5.207", "pg-tsquery": "^8.4.2", "pgvector": "^0.2.1", "pino-http": "^11.0.0", "pino-pretty": "^13.1.3", "postgres": "^3.4.8", "postmark": "^4.0.7", "react": "^18.3.1", "reflect-metadata": "^0.2.2", "rxjs": "^7.8.2", "sanitize-filename-ts": "1.0.2", "socket.io": "^4.8.3", "stripe": "^17.7.0", "tlds": "^1.261.0", "tmp-promise": "^3.0.3", "tseep": "^1.3.1", "typesense": "^3.0.3", "ws": "^8.19.0", "yauzl": "^3.2.1", "zod": "^4.3.6" }, "devDependencies": { "@eslint/js": "^9.28.0", "@nestjs/cli": "^11.0.16", "@nestjs/schematics": "^11.0.9", "@nestjs/testing": "^11.1.17", "@types/bcrypt": "^6.0.0", "@types/debounce": "^1.2.4", "@types/fs-extra": "^11.0.4", "@types/jest": "^30.0.0", "@types/mime-types": "^3.0.1", "@types/node": "^25.5.0", "@types/nodemailer": "^7.0.11", "@types/passport-google-oauth20": "^2.0.17", "@types/passport-jwt": "^4.0.1", "@types/supertest": "^6.0.3", "@types/ws": "^8.18.1", "@types/yauzl": "^2.10.3", "eslint": "^9.28.0", "eslint-config-prettier": "^10.1.8", "globals": "^17.4.0", "jest": "^30.3.0", "kysely-codegen": "^0.20.0", "prettier": "^3.8.1", "react-email": "5.2.10", "source-map-support": "^0.5.21", "supertest": "^7.2.2", "ts-jest": "^29.4.6", "ts-loader": "^9.5.4", "ts-node": "^10.9.2", "tsconfig-paths": "^4.2.0", "typescript": "^5.9.3", "typescript-eslint": "^8.57.1" }, "jest": { "moduleFileExtensions": [ "js", "json", "ts" ], "rootDir": "src", "testRegex": ".*\\.spec\\.ts$", "transform": { "^.+\\.(t|j)s$": "ts-jest" }, "collectCoverageFrom": [ "**/*.(t|j)s" ], "coverageDirectory": "../coverage", "testEnvironment": "node", "moduleNameMapper": { "^@docmost/db/(.*)$": "/database/$1", "^@docmost/transactional/(.*)$": "/integrations/transactional/$1", "^@docmost/ee/(.*)$": "/ee/$1" } } }