{
  "name": "backend",
  "version": "1.0.0",
  "private": true,
  "scripts": {
    "dev": "tsx watch src/index.ts",
    "build": "tsc -p tsconfig.json && tsc-alias",
    "start": "node dist/index.js",
    "prisma:migrate": "prisma migrate dev",
    "prisma:generate": "prisma generate",
    "prisma:deploy": "prisma migrate deploy",
    "prisma:seed": "tsx prisma/seed.ts",
    "prisma:studio": "prisma studio",
    "lint": "eslint src --ext .ts",
    "clean": "rm -rf dist node_modules",
    "test": "jest --passWithNoTests"
  },
  "dependencies": {
    "@prisma/client": "^5.7.1",
    "apple-signin-auth": "^2.0.0",
    "bcryptjs": "^2.4.3",
    "cors": "^2.8.5",
    "dotenv": "^16.3.1",
    "expo-server-sdk": "^3.7.0",
    "express": "^4.18.2",
    "express-rate-limit": "^8.3.1",
    "express-validator": "^7.0.1",
    "firebase-admin": "^13.7.0",
    "google-auth-library": "^10.6.1",
    "jsonwebtoken": "^9.0.2",
    "multer": "^1.4.5-lts.1",
    "node-cron": "^4.2.1",
    "nodemailer": "^8.0.2",
    "sharp": "^0.33.1",
    "socket.io": "^4.6.1"
  },
  "devDependencies": {
    "@types/bcryptjs": "^2.4.6",
    "@types/cors": "^2.8.17",
    "@types/express": "^4.17.21",
    "@types/jest": "^30.0.0",
    "@types/jsonwebtoken": "^9.0.5",
    "@types/multer": "^1.4.11",
    "@types/node": "^20.10.6",
    "@types/node-cron": "^3.0.11",
    "@types/nodemailer": "^7.0.11",
    "@typescript-eslint/eslint-plugin": "^6.17.0",
    "@typescript-eslint/parser": "^6.17.0",
    "eslint": "^8.56.0",
    "jest": "^30.3.0",
    "prisma": "^5.7.1",
    "ts-jest": "^29.4.6",
    "tsc-alias": "^1.8.16",
    "tsx": "^4.7.0",
    "typescript": "^5.3.3"
  },
  "prisma": {
    "seed": "tsx prisma/seed.ts"
  },
  "jest": {
    "preset": "ts-jest",
    "testEnvironment": "node",
    "transform": {
      "^.+\\.tsx?$": [
        "ts-jest",
        {
          "tsconfig": "tsconfig.test.json"
        }
      ]
    },
    "moduleNameMapper": {
      "^@/(.*)$": "<rootDir>/src/$1"
    },
    "testMatch": [
      "**/tests/**/*.test.ts"
    ]
  }
}
