Files
BYW-VoiceHub/package.json
T

121 lines
4.0 KiB
JSON

{
"name": "voicehub",
"version": "1.5.9.9",
"description": "校园广播站点歌管理系统 - 基于数据库存储的现代化点歌、排期和播放管理平台",
"private": true,
"packageManager": "pnpm@10.29.3",
"type": "module",
"scripts": {
"build": "node scripts/build.js",
"dev": "nuxt dev",
"generate": "nuxt generate",
"preview": "nuxt preview",
"start": "node .output/server/index.mjs",
"test": "node --experimental-strip-types --test \"tests/server/*.test.ts\"",
"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",
"db:reset": "pnpm exec tsx scripts/reset-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",
"redis:scan-legacy": "node scripts/redis-scan-legacy.js",
"postinstall": "node scripts/postinstall.js",
"lint": "nuxt prepare && eslint .",
"lint:fix": "nuxt prepare && eslint . --fix",
"format": "prettier --write .",
"init-help": "pnpm run db:push && pnpm run create-admin"
},
"dependencies": {
"@applemusic-like-lyrics/core": "^0.5.2",
"@applemusic-like-lyrics/lyric": "^0.4.1",
"@applemusic-like-lyrics/vue": "^0.5.2",
"@breezystack/lamejs": "^1.2.7",
"@lucide/vue": "^1.41.0",
"@neteasecloudmusicapienhanced/api": "^4.40.1",
"@netlify/functions": "^2.8.2",
"@nuxt/kit": "4.5.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",
"@sansenjian/qq-music-api": "2.6.0",
"@sentry/node": "^10.73.0",
"@sentry/vue": "^10.73.0",
"@simplewebauthn/browser": "^13.3.0",
"@simplewebauthn/server": "^13.3.3",
"@types/bcryptjs": "^2.4.6",
"@types/crypto-js": "^4.2.2",
"@types/jsonwebtoken": "^9.0.10",
"@types/lodash-es": "^4.17.12",
"@types/multer": "^2.2.0",
"@types/nodemailer": "^8.0.1",
"@types/pg": "^8.23.1",
"@ungap/structured-clone": "^1.4.0",
"@vercel/speed-insights": "^1.3.1",
"axios": "^1.20.0",
"bcryptjs": "^2.4.3",
"bezier-easing": "^2.1.0",
"chalk": "^5.6.2",
"crypto-js": "^4.2.0",
"dayjs": "^1.11.23",
"deep-freeze": "^0.0.1",
"dotenv": "^17.4.2",
"drizzle-kit": "^0.31.10",
"drizzle-orm": "^0.45.2",
"formidable": "^3.5.4",
"gl-matrix": "4.0.0-beta.2",
"h3": "1.15.11",
"html-to-image": "^1.11.13",
"jsonwebtoken": "^9.0.3",
"jspdf": "^4.2.1",
"jszip": "^3.10.1",
"lodash-es": "^4.18.1",
"marked": "^18.0.11",
"multer": "^2.3.0",
"nodemailer": "^8.0.11",
"nuxt": "^4.5.2",
"otplib": "^12.0.1",
"postgres": "^3.4.9",
"prompts": "^2.4.2",
"qrcode": "^1.5.4",
"redis": "^5.12.1",
"sass": "^1.104.0",
"svg-captcha": "^1.4.0",
"tsx": "^4.23.13",
"vite-plugin-wasm": "^3.6.0",
"vue": "^3.5.42",
"vue-router": "^4.6.4",
"wasm-media-encoders": "^0.7.0",
"xlsx": "^0.18.5",
"xss": "^1.0.15",
"zod": "^4.5.4"
},
"engines": {
"node": ">=22.11.0",
"pnpm": ">=10.0.0"
},
"devDependencies": {
"@nuxt/eslint": "^1.17.0",
"@nuxt/kit": "4.5.0",
"@unocss/nuxt": "^66.10.0",
"@unocss/preset-wind3": "^66.10.0",
"@vite-pwa/nuxt": "^1.1.1",
"eslint": "^9.39.5",
"prettier": "^3.9.6",
"typescript": "^5.9.3",
"unocss": "^66.10.0"
}
}