{ "name": "gpi-app", "version": "1.0.0", "private": true, "type": "module", "scripts": { "dev": "concurrently \"vite\" \"tsx watch src/server/index.ts\"", "build:client": "vite build", "build:server": "tsc -p tsconfig.server.json", "build": "npm run build:client && npm run build:server", "lint": "eslint .", "preview": "vite preview", "start": "node dist/server/index.js" }, "dependencies": { "@tailwindcss/postcss": "^4.1.18", "@types/uuid": "^10.0.0", "axios": "^1.13.2", "bcryptjs": "^3.0.3", "clsx": "^2.1.1", "cors": "^2.8.5", "date-fns": "^4.1.0", "dequal": "^2.0.3", "dotenv": "^17.2.3", "enhanced-resolve": "^5.18.4", "express": "^5.2.1", "jsonwebtoken": "^9.0.3", "lucide-react": "^0.562.0", "multer": "^2.0.2", "pdf-parse": "^1.1.1", "pg": "^8.20.0", "prop-types": "^15.8.1", "react": "^19.2.0", "react-dom": "^19.2.0", "react-is": "^19.2.3", "react-router-dom": "^7.12.0", "recharts": "^3.7.0", "search-web": "^1.0.3", "tailwind-merge": "^3.4.0", "tesseract.js": "^7.0.0", "uuid": "^13.0.0" }, "devDependencies": { "@eslint/js": "^9.39.1", "@types/bcryptjs": "^2.4.6", "@types/cors": "^2.8.19", "@types/express": "^5.0.6", "@types/jsonwebtoken": "^9.0.10", "@types/multer": "^2.0.0", "@types/node": "^24.10.1", "@types/pg": "^8.18.0", "@types/react": "^19.2.5", "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^5.1.1", "autoprefixer": "^10.4.23", "concurrently": "^9.1.2", "eslint": "^9.39.1", "eslint-plugin-react-hooks": "^7.0.1", "eslint-plugin-react-refresh": "^0.4.24", "globals": "^16.5.0", "nodemon": "^3.1.11", "postcss": "^8.5.6", "tailwindcss": "^4.1.18", "ts-node": "^10.9.2", "tsx": "^4.21.0", "typescript": "~5.9.3", "typescript-eslint": "^8.46.4", "vite": "^7.2.4", "vite-plugin-pwa": "^1.2.0" } }