{
  "name": "upharm-app-backend",
  "version": "1.0.0",
  "main": "dist/app.js",
  "author": "makavelli6 <adigahjosh@gmail.com>",
  "license": "MIT",
  "scripts": {
    "start": "node ./dist/app.js",
    "start:dev": "ts-node ./src/app.ts",
    "dev": "nodemon",
    "deploy": "npm ci && npm run db:generate && tsc && tsc-alias",
    "build": "npm run db:generate && tsc && tsc-alias",
    "typecheck": "tsc --noEmit",
    "db:generate": "prisma generate --config prisma.config.ts",
    "db:validate": "prisma validate --config prisma.config.ts",
    "db:migrate": "prisma migrate dev --config prisma.config.ts",
    "db:migrate:deploy": "prisma migrate deploy --config prisma.config.ts",
    "db:studio": "prisma studio --config prisma.config.ts",
    "test:identity": "ts-node -r tsconfig-paths/register src/tests/identity-contract.test.ts",
    "test:learning": "ts-node -r tsconfig-paths/register src/tests/learning-contract.test.ts",
    "test:assessment": "ts-node -r tsconfig-paths/register src/tests/assessment-contract.test.ts",
    "test:realtime": "ts-node -r tsconfig-paths/register src/tests/realtime-contract.test.ts",
    "test:email": "ts-node -r tsconfig-paths/register src/tests/email-contract.test.ts",
    "test:search": "ts-node -r tsconfig-paths/register src/tests/search-contract.test.ts",
    "test:notifications": "ts-node -r tsconfig-paths/register src/tests/notifications-contract.test.ts",
    "test:certificates": "ts-node -r tsconfig-paths/register src/tests/certificates-contract.test.ts",
    "test:billing": "ts-node -r tsconfig-paths/register src/tests/billing-contract.test.ts",
    "test:admin-operations": "ts-node -r tsconfig-paths/register src/tests/admin-operations-contract.test.ts",
    "test:operational-admin": "ts-node -r tsconfig-paths/register src/tests/operational-admin-contract.test.ts",
    "test:groups": "ts-node -r tsconfig-paths/register src/tests/groups-contract.test.ts",
    "test": "npm run typecheck && npm run db:validate && npm run test:email && npm run test:identity && npm run test:learning && npm run test:assessment",
    "db:create-admin": "ts-node -r tsconfig-paths/register src/scripts/create-admin.ts"
  },
  "dependencies": {
    "@google-cloud/storage": "^8.2.0",
    "@prisma/client": "^6.19.3",
    "axios": "^1.9.0",
    "bcryptjs": "^3.0.2",
    "class-variance-authority": "^0.7.1",
    "cookie": "^1.1.1",
    "cookie-parser": "^1.4.7",
    "cors": "^2.8.5",
    "date-fns": "^4.1.0",
    "dotenv": "^16.5.0",
    "express": "^4.17.1",
    "express-fileupload": "^1.5.2",
    "express-rate-limit": "^8.6.2",
    "jsonwebtoken": "^9.0.2",
    "moment": "^2.30.1",
    "node-cron": "^4.5.0",
    "passport": "^0.7.0",
    "passport-jwt": "^4.0.1",
    "pdfkit": "^0.19.1",
    "qrcode": "^1.5.4",
    "resend": "^6.34.1",
    "socket.io": "^4.8.3",
    "speakeasy": "^2.0.0",
    "stripe": "^23.0.1",
    "uuid": "^11.1.0",
    "winston": "^3.17.0",
    "winston-daily-rotate-file": "^5.0.0",
    "zod": "^3.25.1"
  },
  "devDependencies": {
    "@types/bcryptjs": "^2.4.3",
    "@types/cookie-parser": "^1.4.2",
    "@types/cors": "^2.8.12",
    "@types/express": "^4.17.13",
    "@types/express-fileupload": "^1.4.3",
    "@types/jest": "^30.0.0",
    "@types/jsonwebtoken": "^9.0.9",
    "@types/node": "^20.19.43",
    "@types/node-cron": "^3.0.11",
    "@types/passport": "^1.0.17",
    "@types/passport-jwt": "^4.0.1",
    "@types/pdfkit": "^0.17.6",
    "@types/qrcode": "^1.5.5",
    "@types/speakeasy": "^2.0.10",
    "nodemon": "^3.1.10",
    "prisma": "^6.19.3",
    "ts-node": "^10.9.2",
    "tsc-alias": "^1.8.10",
    "tsconfig-paths": "^4.2.0",
    "typescript": "^5.5.3"
  },
  "packageManager": "yarn@1.22.22+sha1.ac34549e6aa8e7ead463a7407e1c7390f61a6610"
}
