{ "name": "@monkeytype/backend", "version": "1.14.3", "license": "GPL-3.0", "private": true, "scripts": { "lint": "eslint \"./src/**/*.ts\"", "build": "npm run gen-docs && tsc --build", "watch": "tsc --build --watch", "clean": "tsc --build --clean", "ts-check": "tsc --noEmit", "start": "node ./dist/server.js", "test": "vitest run", "test-coverage": "vitest run --coverage", "dev": "concurrently -p none \"tsx watch --clear-screen=false --inspect ./src/server.ts\" \"tsc --preserveWatchOutput --noEmit --watch\" \"esw src/ -w --ext .ts --cache --color\"", "knip": "knip", "docker-db-only": "docker compose -f docker/compose.db-only.yml up", "docker": "docker compose -f docker/compose.yml up", "gen-docs": "tsx scripts/openapi.ts dist/static/api/openapi.json && openapi-recursive-tagging dist/static/api/openapi.json dist/static/api/openapi-tagged.json && redocly build-docs -o dist/static/api/internal.html internal@v2 && redocly bundle -o dist/static/api/public.json public-filter && redocly build-docs -o dist/static/api/public.html public@v2" }, "engines": { "node": "20.16.0" }, "dependencies": { "@date-fns/utc": "1.2.0", "@monkeytype/contracts": "workspace:*", "@ts-rest/core": "3.45.2", "@ts-rest/express": "3.45.2", "@ts-rest/open-api": "3.45.2", "bcrypt": "5.1.1", "bullmq": "1.91.1", "chalk": "4.1.2", "cors": "2.8.5", "cron": "2.3.0", "date-fns": "3.6.0", "dotenv": "10.0.0", "express": "4.19.2", "express-rate-limit": "6.2.1", "firebase-admin": "12.0.0", "helmet": "4.6.0", "ioredis": "4.28.5", "joi": "17.6.0", "lodash": "4.17.21", "lru-cache": "7.10.1", "mjml": "4.15.0", "mongodb": "6.3.0", "mustache": "4.2.0", "node-fetch": "2.6.7", "nodemailer": "6.9.9", "nodemon": "3.1.4", "object-hash": "3.0.0", "path": "0.12.7", "prom-client": "14.0.1", "rate-limiter-flexible": "2.3.7", "simple-git": "3.16.0", "string-similarity": "4.0.4", "swagger-stats": "0.99.5", "swagger-ui-express": "4.3.0", "ua-parser-js": "0.7.33", "uuid": "10.0.0", "winston": "3.6.0", "zod": "3.23.8" }, "devDependencies": { "@monkeytype/eslint-config": "workspace:*", "@monkeytype/shared-types": "workspace:*", "@monkeytype/typescript-config": "workspace:*", "@redocly/cli": "1.19.0", "@types/bcrypt": "5.0.2", "@types/cors": "2.8.12", "@types/cron": "1.7.3", "@types/express": "4.17.21", "@types/ioredis": "4.28.10", "@types/lodash": "4.14.178", "@types/mjml": "4.7.4", "@types/mustache": "4.2.2", "@types/node": "20.14.11", "@types/node-fetch": "2.6.1", "@types/nodemailer": "6.4.7", "@types/object-hash": "2.2.1", "@types/readline-sync": "1.4.8", "@types/string-similarity": "4.0.0", "@types/supertest": "2.0.12", "@types/swagger-stats": "0.95.11", "@types/swagger-ui-express": "4.1.3", "@types/ua-parser-js": "0.7.36", "@types/uuid": "10.0.0", "@vitest/coverage-v8": "2.0.5", "concurrently": "8.2.2", "eslint": "8.57.0", "eslint-watch": "8.0.0", "ioredis-mock": "7.4.0", "openapi-recursive-tagging": "0.0.6", "readline-sync": "1.4.10", "supertest": "6.2.3", "tsx": "4.16.2", "typescript": "5.5.4", "vitest": "2.0.5", "vitest-mongodb": "1.0.0" } }