{ "name": "supporthub-api", "version": "1.0.0", "description": "SupportHub API — Production Enterprise Modular Monolith API", "main": "dist/server.js", "scripts": { "dev": "tsx watch --env-file=.env.development src/server.ts", "development": "tsx watch --env-file=.env.development src/server.ts", "dev:env": "tsx watch --env-file=.env.development src/server.ts", "build": "prisma generate && tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json", "build:development": "prisma generate && tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json", "build:test": "prisma generate && tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json", "build:prod": "prisma generate && tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json", "start": "node dist/src/server.js", "start:dev": "node --env-file=.env.development dist/src/server.js", "start:test": "node --env-file=.env.test dist/src/server.js", "start:prod": "node --env-file=.env.prod dist/src/server.js", "typecheck": "tsc --noEmit", "architecture:check": "tsx scripts/check-architecture.ts", "lint": "eslint \"src/**/*.ts\" \"tests/**/*.ts\" \"scripts/**/*.ts\"", "lint:fix": "eslint \"src/**/*.ts\" \"tests/**/*.ts\" \"scripts/**/*.ts\" --fix", "format": "prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"scripts/**/*.ts\" \"prisma/**/*.ts\"", "format:check": "prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"scripts/**/*.ts\" \"prisma/**/*.ts\"", "test": "npm run test:unit", "test:unit": "vitest run tests/unit", "test:watch": "vitest", "test:env": "vitest run --env-file=.env.test", "test:integration": "vitest run tests/integration", "test:e2e": "vitest run tests/e2e", "test:concurrency": "vitest run tests/concurrency", "test:coverage": "vitest run --coverage", "prisma:generate": "prisma generate", "prisma:migrate": "prisma migrate dev", "prisma:deploy": "prisma migrate deploy", "prisma:seed": "tsx prisma/seed/index.ts", "openapi:generate": "tsx scripts/generate-openapi.ts", "docker:up:dev": "docker compose --env-file .env.development -f docker-compose.development.yml up -d", "docker:down:dev": "docker compose --env-file .env.development -f docker-compose.development.yml down", "docker:up:test": "docker compose --env-file .env.test -f docker-compose.test.yml up -d", "docker:down:test": "docker compose --env-file .env.test -f docker-compose.test.yml down", "docker:up:prod": "docker compose --env-file .env.prod -f docker-compose.prod.yml up -d", "docker:down:prod": "docker compose --env-file .env.prod -f docker-compose.prod.yml down", "docker:build:dev": "docker compose --env-file .env.development -f docker-compose.development.yml build", "docker:build:test": "docker compose --env-file .env.test -f docker-compose.test.yml build", "docker:build:prod": "docker compose --env-file .env.prod -f docker-compose.prod.yml build" }, "dependencies": { "@anthropic-ai/sdk": "^0.123.0", "@aws-sdk/client-s3": "^3.556.0", "@aws-sdk/s3-request-presigner": "^3.556.0", "@fastify/cors": "^9.0.1", "@fastify/helmet": "^11.1.1", "@fastify/rate-limit": "^9.1.0", "@fastify/swagger": "^8.14.0", "@fastify/swagger-ui": "^3.0.0", "@opentelemetry/api": "^1.8.0", "@opentelemetry/context-async-hooks": "^2.11.0", "@opentelemetry/exporter-trace-otlp-http": "^0.222.0", "@opentelemetry/resources": "^2.11.0", "@opentelemetry/sdk-trace-base": "^2.11.0", "@prisma/client": "^5.12.1", "bcryptjs": "^3.0.3", "bullmq": "^5.7.1", "dotenv": "^16.4.5", "fastify": "^4.26.2", "fastify-plugin": "^4.5.1", "ioredis": "^5.3.2", "jsonwebtoken": "^9.0.3", "luxon": "^3.7.2", "pino": "^8.20.0", "pino-pretty": "^11.0.0", "prom-client": "^15.1.1", "zod": "^3.22.4" }, "devDependencies": { "@types/autocannon": "^7.12.7", "@types/bcryptjs": "^2.4.6", "@types/jsonwebtoken": "^9.0.10", "@types/luxon": "^3.7.5", "@types/node": "^20.12.7", "@typescript-eslint/eslint-plugin": "^7.6.0", "@typescript-eslint/parser": "^7.6.0", "autocannon": "^8.0.0", "eslint": "^8.57.0", "eslint-config-prettier": "^9.1.0", "husky": "^9.0.11", "lint-staged": "^15.2.2", "prettier": "^3.2.5", "prisma": "^5.12.1", "tsc-alias": "^1.9.2", "tsx": "^4.23.13", "typescript": "^5.4.5", "vitest": "^1.5.0" }, "engines": { "node": ">=20.0.0" }, "private": true }