{ "name": "@goodgo/iam-service", "version": "1.0.0", "type": "module", "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:*", "@neondatabase/serverless": "^1.0.2", "@prisma/adapter-neon": "^7.2.0", "@prisma/client": "^7.2.0", "@simplewebauthn/server": "^13.2.2", "@types/dompurify": "^3.2.0", "@types/jsdom": "^27.0.0", "bcryptjs": "^3.0.3", "cookie-parser": "^1.4.7", "cors": "^2.8.5", "dompurify": "^3.3.1", "dotenv": "^17.2.3", "express": "^5.2.1", "express-rate-limit": "^8.2.1", "helmet": "^8.1.0", "ioredis": "^5.9.0", "jsdom": "^27.4.0", "jsonwebtoken": "^9.0.3", "node-cache": "^5.1.2", "oidc-provider": "^9.6.0", "openid-client": "^6.8.1", "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.4", "rate-limit-redis": "^4.3.1", "speakeasy": "^2.0.0", "swagger-jsdoc": "^6.2.8", "swagger-ui-express": "^5.0.1", "uuid": "^13.0.0", "zod": "^4.3.5" }, "devDependencies": { "@faker-js/faker": "^10.2.0", "@goodgo/eslint-config": "workspace:*", "@goodgo/tsconfig": "workspace:*", "@jest/globals": "^30.2.0", "@types/bcryptjs": "^3.0.0", "@types/cookie-parser": "^1.4.10", "@types/cors": "^2.8.19", "@types/dotenv": "^8.2.3", "@types/express": "^5.0.6", "@types/ioredis": "^5.0.0", "@types/jest": "^30.0.0", "@types/jsonwebtoken": "^9.0.10", "@types/node": "^25.0.3", "@types/node-cache": "^4.2.5", "@types/opossum": "^8.1.9", "@types/passport": "^1.0.17", "@types/passport-facebook": "^3.0.4", "@types/passport-github2": "^1.2.9", "@types/passport-google-oauth20": "^2.0.17", "@types/qrcode": "^1.5.6", "@types/speakeasy": "^2.0.10", "@types/supertest": "^6.0.3", "@types/swagger-jsdoc": "^6.0.4", "@types/swagger-ui-express": "^4.1.8", "@types/uuid": "^11.0.0", "jest": "^30.2.0", "prisma": "^7.2.0", "supertest": "^7.2.2", "ts-jest": "^29.4.6", "ts-node": "^10.9.2", "tsx": "^4.21.0", "typescript": "^5.9.3" }, "pnpm": { "overrides": { "glob@>=10.2.0 <10.5.0": ">=10.5.0", "qs@<6.14.1": ">=6.14.1" } } }