{ "name": "voicehub", "version": "1.6.4.3", "description": "校园广播站点歌管理系统 - 基于数据库存储的现代化点歌、排期和播放管理平台", "private": true, "packageManager": "pnpm@10.29.3", "type": "module", "scripts": { "build": "node --max-old-space-size=6144 ./node_modules/nuxt/bin/nuxt.mjs build", "dev": "nuxt dev", "generate": "nuxt generate", "preview": "nuxt preview", "start": "node .output/server/index.mjs", "db:migrate": "pnpm exec drizzle-kit migrate", "db:generate": "pnpm exec drizzle-kit generate --name=auto-migration", "db:push": "pnpm exec drizzle-kit push --force", "db:studio": "pnpm exec drizzle-kit studio", "db:drop": "pnpm exec drizzle-kit drop", "db:check": "pnpm exec drizzle-kit check", "setup": "pnpm install --frozen-lockfile && pnpm run db:migrate", "create-admin": "pnpm exec tsx scripts/create-admin.js", "clear-db": "pnpm exec tsx scripts/clear-database.js", "safe-migrate": "pnpm exec tsx scripts/safe-migrate.js", "deploy": "node scripts/deploy.js", "vercel-build": "node scripts/deploy.js", "netlify-build": "node scripts/netlify-build.js", "check-deploy": "node scripts/check-deploy.js", "postinstall": "nuxt prepare && node scripts/postinstall.js", "lint": "nuxt prepare && eslint .", "lint:fix": "nuxt prepare && eslint . --fix", "format": "prettier --write ." }, "dependencies": { "@applemusic-like-lyrics/lyric": "^0.3.0", "@applemusic-like-lyrics/vue": "^0.3.1", "@breezystack/lamejs": "^1.2.7", "@neteasecloudmusicapienhanced/api": "^4.31.0", "@netlify/functions": "^2.8.2", "@nuxtjs/tailwindcss": "^6.14.0", "@pixi/app": "^7.4.3", "@pixi/core": "^7.4.3", "@pixi/display": "^7.4.3", "@pixi/filter-blur": "^7.4.3", "@pixi/filter-bulge-pinch": "^5.1.1", "@pixi/filter-color-matrix": "^7.4.3", "@pixi/sprite": "^7.4.3", "@simplewebauthn/browser": "^13.3.0", "@simplewebauthn/server": "^13.3.0", "@types/bcrypt": "^5.0.2", "@types/crypto-js": "^4.2.2", "@types/jsonwebtoken": "^9.0.10", "@types/lodash-es": "^4.17.12", "@types/multer": "^2.1.0", "@types/nodemailer": "^6.4.23", "@types/pg": "^8.20.0", "@ungap/structured-clone": "^1.3.0", "@vercel/speed-insights": "^1.3.1", "axios": "^1.14.0", "bcrypt": "^6.0.0", "bezier-easing": "^2.1.0", "chalk": "^5.6.2", "crypto-js": "^4.2.0", "dayjs": "^1.11.20", "deep-freeze": "^0.0.1", "dotenv": "^17.4.0", "drizzle-kit": "^0.31.10", "drizzle-orm": "^0.45.2", "formidable": "^3.5.4", "gl-matrix": "4.0.0-beta.2", "html-to-image": "^1.11.13", "jsonwebtoken": "^9.0.3", "jspdf": "^3.0.4", "jszip": "^3.10.1", "lodash-es": "^4.18.1", "lucide-vue-next": "^0.577.0", "multer": "^2.1.1", "nodemailer": "^6.10.1", "nuxt": "^4.4.2", "otplib": "^12.0.1", "postgres": "^3.4.8", "prompts": "^2.4.2", "qrcode": "^1.5.4", "redis": "^5.11.0", "sass": "^1.99.0", "tsx": "^4.21.0", "vite-plugin-glsl": "^1.5.6", "vite-plugin-top-level-await": "^1.6.0", "vite-plugin-wasm": "^3.6.0", "vue": "^3.5.32", "vue-router": "^4.6.4", "wasm-media-encoders": "^0.7.0", "xlsx": "^0.18.5", "zod": "^4.3.6" }, "engines": { "node": ">=18.20.0", "pnpm": ">=10.0.0" }, "devDependencies": { "@nuxt/eslint": "^1.15.2", "eslint": "^9.39.4", "prettier": "^3.8.1" }, "pnpm": { "onlyBuiltDependencies": [ "@applemusic-like-lyrics/core", "@applemusic-like-lyrics/lyric", "@applemusic-like-lyrics/vue", "@parcel/watcher", "@swc/core", "bcrypt", "core-js", "esbuild", "unrs-resolver" ] } }