Files
company-celebration/packages/server/package.json
empty f4736b6ebd feat: implement QR code scan login system with admin control
- Add scan login service with Redis-based token management
- Add scan login API routes for token generation and validation
- Add QRCodeLogin component for PC-side QR code display
- Add EntryQRCode component for mass login scenarios
- Add ScanLoginView for mobile-side login form
- Add localStorage persistence for user identity
- Add logout functionality to mobile client
- Add auto-redirect for logged-in users
- Add admin console control for QR code display on big screen
- Add socket event forwarding from admin to screen display

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 21:44:52 +08:00

57 lines
1.8 KiB
JSON

{
"name": "@gala/server",
"version": "1.0.0",
"private": true,
"type": "module",
"scripts": {
"dev": "tsx watch src/index.ts",
"build": "tsup src/index.ts --format esm --target node20 --clean",
"start": "node dist/index.js",
"typecheck": "tsc --noEmit",
"db:generate": "prisma generate",
"db:migrate": "prisma migrate dev",
"db:push": "prisma db push",
"db:seed": "tsx src/scripts/seed.ts",
"test": "vitest",
"test:load": "artillery run load-test/vote-load-test.yaml -e standard",
"test:load:smoke": "artillery run load-test/vote-load-test.yaml -e smoke",
"test:load:peak": "artillery run load-test/vote-load-test.yaml -e peak",
"test:load:stress": "artillery run load-test/vote-load-test.yaml -e stress",
"test:load:report": "artillery run load-test/vote-load-test.yaml -e standard --output load-test/report.json && artillery report load-test/report.json"
},
"dependencies": {
"@gala/shared": "workspace:*",
"@prisma/client": "^6.2.1",
"@socket.io/redis-adapter": "^8.3.0",
"compression": "^1.7.5",
"cors": "^2.8.5",
"dotenv": "^16.4.7",
"express": "^4.21.2",
"helmet": "^8.0.0",
"ioredis": "^5.4.2",
"jsonwebtoken": "^9.0.3",
"multer": "^2.0.2",
"nanoid": "^5.0.9",
"pino": "^9.6.0",
"pino-pretty": "^13.0.0",
"socket.io": "^4.8.1",
"uuid": "^13.0.0",
"xlsx": "^0.18.5",
"zod": "^3.24.1"
},
"devDependencies": {
"@types/compression": "^1.7.5",
"@types/cors": "^2.8.17",
"@types/express": "^5.0.0",
"@types/jsonwebtoken": "^9.0.10",
"@types/multer": "^2.0.0",
"@types/uuid": "^11.0.0",
"artillery": "^2.0.28",
"prisma": "^6.2.1",
"socket.io-client": "^4.8.1",
"tsup": "^8.3.5",
"tsx": "^4.19.2",
"typescript": "^5.7.3",
"vitest": "^2.1.8"
}
}