{ "name": "@cv/api", "version": "0.0.0", "private": true, "type": "commonjs", "scripts": { "build": "tsup", "postbuild": "sh scripts/post-build.sh", "start": "node dist/main.js", "dev": "nodemon --watch src -e ts --exec \"ts-node -r tsconfig-paths/register src/main.ts\"", "lint": "biome check .", "lint:fix": "biome check --write .", "typecheck": "tsc -p tsconfig.build.json --noEmit", "test": "vitest run", "test:unit": "vitest run", "e2e:coverage:c8:start": "npm run prisma:deploy && npm run build && npx c8 -r text -r lcov node dist/main.js", "e2e:coverage:c8:report": "npx c8 report -r text -r lcov", "e2e:coverage:c8": "E2E_EXTERNAL_URL=http://localhost:3000 npm run test:e2e && npm run e2e:coverage:c8:report", "e2e:coverage:c8:stop": "pkill -f 'node dist/main.js' || true", "e2e:coverage:all": "node src/scripts/e2e-coverage-all.cjs", "prepare": "cd ../../packages/core && prisma generate || true", "prisma:generate": "cd ../../packages/core && prisma generate", "prisma:migrate": "cd ../../packages/core && prisma migrate dev", "prisma:deploy": "cd ../../packages/core && prisma migrate deploy", "prisma:studio": "cd ../../packages/core && prisma studio", "seed": "ts-node -r tsconfig-paths/register src/scripts/seed.ts", "seed:test": "ts-node -r tsconfig-paths/register src/scripts/seed-test.ts", "db:setup": "pnpm prisma:deploy && pnpm seed", "test:integration": "vitest run --config vitest.config.ts", "test:integration:watch": "vitest --config vitest.config.ts", "test:integration:ui": "vitest --ui --config vitest.config.ts" }, "dependencies": { "@apollo/server": "^5.0.0", "@as-integrations/express5": "^1.1.2", "@cv/ai-parser": "*", "@cv/ai-provider": "*", "@cv/auth": "workspace:*", "@cv/core": "workspace:*", "@cv/cv-renderer": "*", "@cv/file-storage": "*", "@cv/file-upload": "*", "@cv/utils": "*", "@nestjs/apollo": "^13.2.5", "@nestjs/common": "^11.1.18", "@nestjs/config": "^4.0.4", "@nestjs/core": "^11.1.18", "@nestjs/event-emitter": "^3.0.1", "@nestjs/graphql": "^13.2.5", "@nestjs/jwt": "^11.0.2", "@nestjs/mapped-types": "^2.1.0", "@nestjs/passport": "^11.0.5", "@nestjs/platform-express": "^11.1.18", "@prisma/adapter-pg": "^7.1.0", "@prisma/client": "^7.1.0", "@riotbyte-com/nest-service-locator": "0.3.0-rc.8", "@riotbyte-com/project-q-core": "1.0.19-rc.5", "@riotbyte-com/project-q-nestjs": "1.0.19-rc.5", "@riotbyte-com/project-q-prisma": "1.0.19-rc.5", "@types/cookie-parser": "^1.4.10", "@types/handlebars": "^4.0.40", "@types/multer": "^2.0.0", "bcryptjs": "^2.4.3", "canvas": "^3.1.0", "class-transformer": "^0.5.1", "class-validator": "^0.14.0", "cookie-parser": "^1.4.7", "dataloader": "^2.2.3", "express": "^5.1.0", "graphql": "^16.12.0", "graphql-scalars": "^1.23.0", "graphql-type-json": "^0.3.2", "handlebars": "^4.7.8", "mammoth": "^1.11.0", "multer": "^2.0.2", "nest-commander": "^3.16.0", "nestjs-zod": "^5.1.1", "passport": "^0.7.0", "passport-jwt": "^4.0.1", "passport-local": "^1.0.0", "pdf-parse": "^1.1.4", "pdf2json": "^3.1.4", "pdfjs-dist": "^3.11.174", "pg": "^8.16.3", "reflect-metadata": "^0.2.2", "resend": "^6.5.2", "rxjs": "^7.8.1", "tesseract.js": "^5.1.1", "zod": "^4.3.6" }, "devDependencies": { "@aws-sdk/client-s3": "^3.800.0", "@biomejs/biome": "^2.2.6", "@cv/biome-config": "*", "@cv/tsconfig": "*", "@faker-js/faker": "^9.9.0", "@nestjs/testing": "^11.1.18", "@swc/core": "^1.15.13", "@types/bcryptjs": "^2.4.6", "@types/express": "^5.0.0", "@types/express-serve-static-core": "^5.0.0", "@types/node": "^22.7.5", "@types/passport-jwt": "^4.0.1", "@types/passport-local": "^1.0.38", "@types/pdf-parse": "^1.1.5", "@types/pg": "^8.15.6", "@vitest/ui": "^4.0.16", "nodemon": "^3.1.7", "prisma": "^7.1.0", "supertest": "^6.3.4", "ts-node": "^10.9.2", "tsconfig-paths": "^4.2.0", "tslib": "^2.8.0", "tsup": "^8.5.1", "typescript": "^5.6.3", "vitest": "^4.0.16" } }