{ "name": "tianji", "private": true, "version": "0.0.0", "scripts": { "dev": "nodemon", "start": "NODE_ENV=production node ./dist/server/main.js", "start:docker": "pnpm db:migrate:apply && pnpm db:generate && pnpm start", "build": "pnpm build:client && pnpm build:server && pnpm build:tracker && pnpm build:geo", "build:client": "vite build", "build:server": "tsc -p tsconfig.server.json", "build:tracker": "ts-node scripts/build-tracker.ts", "build:geo": "ts-node scripts/build-geo.ts", "check:type": "tsc --noEmit --skipLibCheck --module esnext", "db:push": "prisma db push", "db:generate": "prisma generate", "db:migrate:dev": "prisma migrate dev", "db:migrate:apply": "prisma migrate deploy", "db:studio": "prisma studio" }, "dependencies": { "@ant-design/charts": "^1.4.2", "@ant-design/icons": "^5.2.5", "@paralleldrive/cuid2": "^2.2.2", "@prisma/client": "^5.4.2", "@tanstack/react-query": "^4.33.0", "@trpc/client": "^10.38.4", "@trpc/react-query": "^10.38.4", "@trpc/server": "^10.38.4", "@types/uuid": "^9.0.3", "antd": "^5.9.3", "array-move": "^3.0.1", "axios": "^1.5.0", "badge-maker": "^3.3.1", "bcryptjs": "^2.4.3", "clsx": "^2.0.0", "colord": "^2.9.3", "compose-middleware": "^5.0.1", "compression": "^1.7.4", "croner": "^7.0.1", "dayjs": "^1.11.9", "detect-browser": "^5.3.0", "dotenv": "^16.3.1", "eventemitter-strict": "^1.0.1", "express": "^4.18.2", "express-async-errors": "^3.1.1", "express-validator": "^7.0.1", "filesize": "^10.0.12", "is-localhost-ip": "^2.0.0", "jsonwebtoken": "^9.0.2", "lodash": "^4.17.21", "lodash-es": "^4.17.21", "maxmind": "^4.3.11", "millify": "^6.1.0", "morgan": "^1.10.0", "nanoid": "^3.3.6", "nodemailer": "^6.9.5", "passport": "^0.6.0", "passport-jwt": "^4.0.1", "ping": "^0.4.4", "pretty-ms": "7.0.1", "puppeteer": "^21.3.8", "react": "^18.2.0", "react-dom": "^18.2.0", "react-easy-sort": "^1.5.3", "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", "str2int": "^1.1.0", "ts-node": "^10.9.1", "uuid": "^9.0.0", "vite-express": "^0.10.0", "yup": "^1.2.0", "zod": "^3.22.2", "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/nodemailer": "^6.4.11", "@types/passport": "^1.0.12", "@types/passport-jwt": "^3.0.9", "@types/ping": "^0.4.2", "@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.4.2", "tailwindcss": "^3.3.3", "tar": "^6.1.15", "typescript": "^5.2.2", "vite": "^4.4.9" } }