{ "name": "server", "version": "0.21.0", "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": { "@aws-sdk/client-s3": "3.701.0", "@aws-sdk/lib-storage": "3.701.0", "@aws-sdk/s3-request-presigner": "3.701.0", "@casl/ability": "^6.7.3", "@fastify/cookie": "^11.0.2", "@fastify/multipart": "^9.0.3", "@fastify/static": "^8.2.0", "@nestjs/bullmq": "^11.0.2", "@nestjs/common": "^11.1.3", "@nestjs/config": "^4.0.2", "@nestjs/core": "^11.1.3", "@nestjs/event-emitter": "^3.0.1", "@nestjs/jwt": "^11.0.0", "@nestjs/mapped-types": "^2.1.0", "@nestjs/passport": "^11.0.5", "@nestjs/platform-fastify": "^11.1.3", "@nestjs/platform-socket.io": "^11.1.3", "@nestjs/schedule": "^6.0.0", "@nestjs/terminus": "^11.0.0", "@nestjs/websockets": "^11.1.3", "@node-saml/passport-saml": "^5.0.1", "@react-email/components": "0.0.28", "@react-email/render": "1.0.2", "@socket.io/redis-adapter": "^8.3.0", "bcrypt": "^5.1.1", "bullmq": "^5.53.2", "cache-manager": "^6.4.3", "cheerio": "^1.1.0", "class-transformer": "^0.5.1", "class-validator": "^0.14.1", "cookie": "^1.0.2", "fs-extra": "^11.3.0", "happy-dom": "^15.11.6", "jsonwebtoken": "^9.0.2", "kysely": "^0.28.2", "kysely-migration-cli": "^0.4.2", "mime-types": "^2.1.35", "nanoid": "3.3.11", "nestjs-kysely": "^1.2.0", "nodemailer": "^7.0.3", "openai": "^5.8.2", "openid-client": "^5.7.1", "passport-google-oauth20": "^2.0.0", "passport-jwt": "^4.0.1", "pg": "^8.16.0", "pg-tsquery": "^8.4.2", "postmark": "^4.0.5", "react": "^18.3.1", "redis": "^5.5.6", "reflect-metadata": "^0.2.2", "rxjs": "^7.8.2", "sanitize-filename-ts": "^1.0.2", "socket.io": "^4.8.1", "stripe": "^17.5.0", "tmp-promise": "^3.0.3", "ws": "^8.18.2", "yauzl": "^3.2.0" }, "devDependencies": { "@eslint/js": "^9.20.0", "@nestjs/cli": "^11.0.4", "@nestjs/schematics": "^11.0.1", "@nestjs/testing": "^11.0.10", "@types/bcrypt": "^5.0.2", "@types/debounce": "^1.2.4", "@types/fs-extra": "^11.0.4", "@types/jest": "^29.5.14", "@types/mime-types": "^2.1.4", "@types/node": "^22.13.4", "@types/nodemailer": "^6.4.17", "@types/passport-google-oauth20": "^2.0.16", "@types/passport-jwt": "^4.0.1", "@types/pg": "^8.11.11", "@types/supertest": "^6.0.2", "@types/ws": "^8.5.14", "@types/yauzl": "^2.10.3", "eslint": "^9.20.1", "eslint-config-prettier": "^10.0.1", "globals": "^15.15.0", "jest": "^29.7.0", "kysely-codegen": "^0.17.0", "prettier": "^3.5.1", "react-email": "3.0.2", "source-map-support": "^0.5.21", "supertest": "^7.0.0", "ts-jest": "^29.2.5", "ts-loader": "^9.5.2", "ts-node": "^10.9.2", "tsconfig-paths": "^4.2.0", "typescript": "^5.7.3", "typescript-eslint": "^8.24.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" } }