{ "name": "vite-react-typescript-starter", "private": true, "version": "0.0.0", "scripts": { "dev": "nodemon", "start": "NODE_ENV=production ts-node src/server/main.ts", "build": "vite build && pnpm build:tracker && pnpm build:geo", "build:tracker": "ts-node scripts/build-tracker.ts", "build:geo": "ts-node scripts/build-geo.ts", "db:push": "prisma db push", "db:generate": "prisma generate", "db:studio": "prisma studio" }, "dependencies": { "@ant-design/charts": "^1.4.2", "@ant-design/icons": "^5.2.5", "@prisma/client": "^5.2.0", "@tanstack/react-query": "^4.33.0", "@types/uuid": "^9.0.3", "antd": "^5.8.5", "axios": "^1.5.0", "bcryptjs": "^2.4.3", "clsx": "^2.0.0", "compose-middleware": "^5.0.1", "compression": "^1.7.4", "dayjs": "^1.11.9", "detect-browser": "^5.3.0", "dotenv": "^16.3.1", "express": "^4.18.2", "express-async-errors": "^3.1.1", "express-validator": "^7.0.1", "is-localhost-ip": "^2.0.0", "jsonwebtoken": "^9.0.2", "lodash": "^4.17.21", "lodash-es": "^4.17.21", "maxmind": "^4.3.11", "morgan": "^1.10.0", "nanoid": "^3.3.6", "passport": "^0.6.0", "passport-jwt": "^4.0.1", "react": "^18.2.0", "react-dom": "^18.2.0", "react-router": "^6.15.0", "react-router-dom": "^6.15.0", "request-ip": "^3.3.0", "socket.io": "^4.7.2", "socket.io-client": "^4.7.2", "ts-node": "^10.9.1", "typescript": "^4.9.5", "uuid": "^9.0.0", "vite-express": "^0.10.0", "yup": "^1.2.0", "zustand": "^4.4.1" }, "devDependencies": { "@types/bcryptjs": "^2.4.3", "@types/compression": "^1.7.2", "@types/express": "^4.17.17", "@types/jsonwebtoken": "^9.0.2", "@types/lodash": "^4.14.198", "@types/lodash-es": "^4.17.9", "@types/morgan": "^1.9.5", "@types/node": "^18.17.12", "@types/passport": "^1.0.12", "@types/passport-jwt": "^3.0.9", "@types/react": "^18.2.21", "@types/react-dom": "^18.2.7", "@types/request-ip": "^0.0.38", "@types/tar": "^6.1.5", "@vitejs/plugin-react": "^4.0.4", "autoprefixer": "^10.4.15", "nodemon": "^2.0.22", "postcss": "^8.4.29", "prisma": "^5.2.0", "tailwindcss": "^3.3.3", "tar": "^6.1.15", "vite": "^4.4.9" } }