{
  "name": "@goodgo/iam-service",
  "version": "1.0.0",
  "description": "Enterprise IAM (Identity and Access Management) Service",
  "main": "./dist/main.js",
  "scripts": {
    "dev": "tsx watch src/main.ts",
    "build": "tsc",
    "start": "node dist/main.js",
    "test": "jest",
    "test:unit": "jest --testPathPattern='src/modules/.*\\.test\\.ts$'",
    "test:integration": "./scripts/test-integration.sh",
    "test:e2e": "jest --testPathPattern='src/__tests__/.*\\.e2e\\.ts$'",
    "test:watch": "jest --watch",
    "test:coverage": "jest --coverage",
    "lint": "eslint src --ext .ts",
    "typecheck": "tsc --noEmit",
    "prisma:generate": "prisma generate",
    "prisma:migrate": "prisma migrate dev",
    "prisma:deploy": "prisma migrate deploy",
    "prisma:seed": "tsx prisma/seed.ts",
    "clean": "rm -rf dist"
  },
  "dependencies": {
    "@fingerprintjs/fingerprintjs": "^5.0.1",
    "@goodgo/auth-sdk": "workspace:*",
    "@goodgo/logger": "workspace:*",
    "@goodgo/tracing": "workspace:*",
    "@goodgo/types": "workspace:*",
    "@prisma/client": "^5.9.1",
    "@simplewebauthn/server": "^9.0.0",
    "@types/dompurify": "^3.2.0",
    "@types/jsdom": "^27.0.0",
    "bcryptjs": "^2.4.3",
    "cookie-parser": "^1.4.6",
    "cors": "^2.8.5",
    "dompurify": "^3.3.1",
    "dotenv": "^17.2.3",
    "express": "^4.22.1",
    "express-rate-limit": "^7.1.5",
    "helmet": "^7.1.0",
    "ioredis": "^5.3.2",
    "jsdom": "^27.4.0",
    "jsonwebtoken": "^9.0.2",
    "node-cache": "^5.1.2",
    "oidc-provider": "^8.0.0",
    "openid-client": "^5.6.5",
    "opossum": "^9.0.0",
    "passport": "^0.7.0",
    "passport-facebook": "^3.0.0",
    "passport-github2": "^0.1.12",
    "passport-google-oauth20": "^2.0.0",
    "prom-client": "^15.1.3",
    "qrcode": "^1.5.3",
    "rate-limit-redis": "^4.3.1",
    "speakeasy": "^2.0.0",
    "swagger-jsdoc": "^6.2.8",
    "swagger-ui-express": "^5.0.1",
    "uuid": "^9.0.1",
    "zod": "^3.22.4"
  },
  "devDependencies": {
    "@faker-js/faker": "^10.1.0",
    "@goodgo/eslint-config": "workspace:*",
    "@goodgo/tsconfig": "workspace:*",
    "@jest/globals": "^29.7.0",
    "@types/bcryptjs": "^2.4.6",
    "@types/cookie-parser": "^1.4.6",
    "@types/cors": "^2.8.17",
    "@types/dotenv": "^8.2.3",
    "@types/express": "^4.17.21",
    "@types/ioredis": "^5.0.0",
    "@types/jest": "^29.5.11",
    "@types/jsonwebtoken": "^9.0.5",
    "@types/node": "^20.11.0",
    "@types/node-cache": "^4.2.5",
    "@types/opossum": "^8.1.9",
    "@types/passport": "^1.0.16",
    "@types/passport-facebook": "^3.0.4",
    "@types/passport-github2": "^1.2.9",
    "@types/passport-google-oauth20": "^2.0.14",
    "@types/qrcode": "^1.5.5",
    "@types/speakeasy": "^2.0.10",
    "@types/supertest": "^6.0.2",
    "@types/swagger-jsdoc": "^6.0.1",
    "@types/swagger-ui-express": "^4.1.6",
    "@types/uuid": "^9.0.7",
    "jest": "^29.7.0",
    "prisma": "^5.9.1",
    "supertest": "^7.0.0",
    "ts-jest": "^29.1.2",
    "ts-node": "^10.9.2",
    "tsx": "^4.7.1",
    "typescript": "^5.3.3"
  },
  "pnpm": {
    "overrides": {
      "glob@>=10.2.0 <10.5.0": ">=10.5.0",
      "qs@<6.14.1": ">=6.14.1"
    }
  }
}
