{ "name": "@basil/api", "version": "1.0.0", "description": "Basil API server", "main": "dist/index.js", "scripts": { "dev": "tsx watch src/index.ts", "build": "tsc", "start": "node dist/index.js", "test": "vitest run", "test:watch": "vitest", "test:ui": "vitest --ui", "test:coverage": "vitest run --coverage", "prisma:generate": "prisma generate", "prisma:migrate": "prisma migrate dev", "prisma:studio": "prisma studio", "create-admin": "tsx src/scripts/create-admin.ts", "lint": "eslint src --ext .ts" }, "keywords": [ "basil", "api" ], "license": "MIT", "dependencies": { "@basil/shared": "^1.0.0", "@prisma/client": "^6.18.0", "archiver": "^7.0.1", "axios": "^1.7.9", "bcrypt": "^5.1.1", "cheerio": "^1.0.0", "cookie-parser": "^1.4.6", "cors": "^2.8.5", "dotenv": "^16.4.7", "express": "^4.21.2", "express-rate-limit": "^7.1.5", "express-validator": "^7.0.1", "extract-zip": "^2.0.1", "jsonwebtoken": "^9.0.2", "multer": "^2.0.2", "nodemailer": "^6.9.8", "passport": "^0.7.0", "passport-google-oauth20": "^2.0.0", "passport-jwt": "^4.0.1", "passport-local": "^1.0.0" }, "devDependencies": { "@types/archiver": "^6.0.2", "@types/bcrypt": "^5.0.2", "@types/cookie-parser": "^1.4.6", "@types/cors": "^2.8.17", "@types/express": "^5.0.0", "@types/jsonwebtoken": "^9.0.5", "@types/multer": "^1.4.12", "@types/node": "^22.10.2", "@types/nodemailer": "^6.4.14", "@types/passport": "^1.0.16", "@types/passport-google-oauth20": "^2.0.14", "@types/passport-jwt": "^4.0.1", "@types/passport-local": "^1.0.38", "@types/supertest": "^6.0.2", "@typescript-eslint/eslint-plugin": "^8.18.2", "@typescript-eslint/parser": "^8.18.2", "@vitest/coverage-v8": "^2.1.8", "@vitest/ui": "^2.1.8", "eslint": "^9.17.0", "prisma": "^6.18.0", "supertest": "^7.0.0", "tsx": "^4.19.2", "typescript": "^5.7.2", "vitest": "^2.1.8" } }