{ "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 \"tsx watch --clear-screen=false ./src/server.ts\" \"tsc --preserveWatchOutput --noEmit --watch\" \"npx eslint-watch \"./src/**/*.ts\"\"", "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 && 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": "18.20.4" }, "dependencies": { "@date-fns/utc": "1.2.0", "@monkeytype/contracts": "*", "@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.0.1", "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": "9.0.1", "winston": "3.6.0" }, "devDependencies": { "@monkeytype/shared-types": "*", "@monkeytype/typescript-config": "*", "@monkeytype/eslint-config": "*", "@redocly/cli": "1.18.1", "@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/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": "8.3.4", "@vitest/coverage-v8": "1.6.0", "concurrently": "8.2.2", "eslint": "8.57.0", "eslint-watch": "8.0.0", "ioredis-mock": "7.4.0", "readline-sync": "1.4.10", "supertest": "6.2.3", "tsx": "4.16.2", "typescript": "5.5.3", "vitest": "1.6.0", "vitest-mongodb": "1.0.0" } }