{ "name": "recipe-api", "version": "0.0.1", "private": true, "scripts": { "build": "nest build", "start": "node dist/main", "start:dev": "nest start --watch", "prisma:generate": "prisma generate", "prisma:validate": "prisma validate --schema prisma/schema.prisma", "prisma:migrate": "prisma migrate dev", "prisma:deploy": "prisma migrate deploy", "typecheck": "tsc --noEmit", "lint": "eslint \"src/**/*.ts\"", "audit:high": "npm audit --audit-level=high", "quality:ci": "npm run prisma:validate && npm run prisma:generate && npm run typecheck && npm run lint && npm test && npm run build && npm run audit:high", "test": "jest", "test:watch": "jest --watch" }, "dependencies": { "@mistralai/mistralai": "^0.5.0", "@nestjs/common": "^11.1.19", "@nestjs/core": "^11.1.19", "@nestjs/jwt": "^11.0.2", "@nestjs/passport": "^11.0.5", "@nestjs/platform-express": "^11.1.19", "@nestjs/schedule": "^6.1.3", "@nestjs/throttler": "^6.4.0", "@prisma/client": "6.12.0", "bcryptjs": "^2.4.3", "class-transformer": "^0.5.1", "class-validator": "^0.15.1", "helmet": "^8.0.0", "multer": "^2.1.1", "passport": "^0.7.0", "passport-jwt": "^4.0.1", "pdf-parse": "^1.1.1", "prisma": "6.12.0", "reflect-metadata": "^0.2.2", "rxjs": "^7.8.1", "sharp": "^0.33.5", "tesseract.js": "^5.1.1", "uuid": "^11.1.0" }, "devDependencies": { "@nestjs/cli": "^11.0.21", "@nestjs/schematics": "^11.1.0", "@nestjs/testing": "^11.1.19", "@types/bcryptjs": "^2.4.6", "@types/express": "^5.0.5", "@types/jest": "^30.0.0", "@types/multer": "^1.4.12", "@types/node": "^22.19.19", "@types/passport-jwt": "^4.0.1", "@types/pdf-parse": "^1.1.5", "@types/supertest": "^7.2.0", "@types/uuid": "^10.0.0", "@typescript-eslint/eslint-plugin": "^8.46.2", "@typescript-eslint/parser": "^8.46.2", "eslint": "^9.38.0", "jest": "^30.4.2", "supertest": "^7.2.2", "ts-jest": "^29.4.11", "typescript": "^5.4.5" }, "overrides": { "test-exclude": "^8.0.0" }, "jest": { "preset": "ts-jest", "testEnvironment": "node", "rootDir": "src", "testRegex": ".*\\.spec\\.ts$", "moduleFileExtensions": [ "js", "json", "ts" ], "transformIgnorePatterns": [ "node_modules/(@mistralai)" ] } }