| { |
| "name": "api", |
| "version": "0.0.0", |
| "private": true, |
| "scripts": { |
| "dev": "tsx watch src/index.ts", |
| "build": "tsc --build", |
| "start": "pnpm exec tsx src/index.ts", |
| "test": "vitest run", |
| "test:ai": "vitest run test/regression/ai-pedagogy.test.ts", |
| "test:watch": "vitest" |
| }, |
| "dependencies": { |
| "@aws-sdk/client-s3": "^3.995.0", |
| "@bull-board/api": "^7.0.0", |
| "@bull-board/fastify": "^7.0.0", |
| "@fastify/cors": "^8.3.0", |
| "@fastify/jwt": "^8.0.1", |
| "@fastify/multipart": "^8.3.0", |
| "@fastify/rate-limit": "^9.1.0", |
| "@fastify/static": "^7.0.4", |
| "@fastify/view": "8", |
| "@google/generative-ai": "^0.24.1", |
| "@logtail/node": "^0.5.8", |
| "@logtail/pino": "^0.5.8", |
| "@prisma/client": "^5.0.0", |
| "@repo/ai-sdk": "workspace:*", |
| "@repo/database": "workspace:*", |
| "@repo/prompts": "workspace:*", |
| "@repo/shared-types": "workspace:*", |
| "@types/bcrypt": "^6.0.0", |
| "axios": "^1.13.5", |
| "bcrypt": "^6.0.0", |
| "bullmq": "^5.1.0", |
| "diff": "^8.0.3", |
| "dotenv": "^16.6.1", |
| "fast-levenshtein": "^3.0.0", |
| "fastify": "^4.29.1", |
| "fastify-plugin": "^4.5.1", |
| "ioredis": "^5.9.3", |
| "node-cron": "^4.2.1", |
| "openai": "^4.0.0", |
| "pino-pretty": "^13.1.3", |
| "pptxgenjs": "^3.12.0", |
| "puppeteer": "^22.0.0", |
| "web-push": "^3.6.7", |
| "xlsx": "^0.18.5", |
| "zod": "^3.25.76" |
| }, |
| "devDependencies": { |
| "@repo/tsconfig": "workspace:*", |
| "@types/diff": "^8.0.0", |
| "@types/dotenv": "^8.2.3", |
| "@types/fast-levenshtein": "^0.0.4", |
| "@types/node": "^20.0.0", |
| "@types/node-cron": "^3.0.11", |
| "@types/web-push": "^3.6.4", |
| "@vitest/ui": "^4.0.18", |
| "tsx": "^3.0.0", |
| "typescript": "^5.0.0", |
| "vitest": "^4.0.18" |
| } |
| } |