{ "name": "yesplamusic", "productName": "YesPlayMusic", "private": true, "version": "2.0.0", "description": "A nifty third-party NetEase Music player", "homepage": "https://github.com/qier222/YesPlayMusic", "license": "MIT", "author": "qier222 ", "repository": "github:qier222/YesPlayMusic", "main": "dist/main/index.js", "scripts": { "install:sqlite3": "node scripts/build.sqlite3.js", "dev": "concurrently -n=vite,main -c=#646cff,#74b1be \"npm run dev:renderer\" \"node scripts/build.main.mjs --watch\"", "dev:renderer": "vite dev", "build:main": "node scripts/build.main.mjs", "build:renderer": "vite build", "build": "cross-env-shell IS_ELECTRON=true npm run build:renderer && npm run build:main", "build:app": "npm run build && electron-builder --config .electron-builder.config.js", "build:app-dir": "npm run build && electron-builder --config .electron-builder.config.js --dir", "build:app-win": "npm run build && electron-builder --config .electron-builder.config.js --win", "build:app-mac": "npm run build && electron-builder --config .electron-builder.config.js --mac", "build:app-linux": "npm run build && electron-builder --config .electron-builder.config.js --linux", "debug": "cross-env-shell NODE_ENV=debug \"npm run typecheck && node scripts/build.mjs && vite ./src/renderer\"", "test": "vitest", "test:ui": "vitest --ui", "test:coverage": "vitest run --coverage", "test:types": "npm run test:types-renderer && npm run test:types-main && npm run test:types-shared", "test:types-renderer": "tsc --noEmit --project src/renderer/tsconfig.json", "test:types-main": "tsc --noEmit --project src/main/tsconfig.json", "test:types-shared": "tsc --noEmit --project src/shared/tsconfig.json", "eslint": "eslint --ext .ts,.js ./", "prettier": "prettier --write './**/*.{ts,js,tsx,jsx}'" }, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "dependencies": { "@sentry/node": "^6.19.6", "@sentry/tracing": "^6.19.6", "NeteaseCloudMusicApi": "^4.5.12", "better-sqlite3": "7.5.1", "change-case": "^4.1.2", "cookie-parser": "^1.4.6", "electron-log": "^4.4.6", "electron-store": "^8.0.1", "express": "^4.17.3", "fast-folder-size": "^1.6.1" }, "devDependencies": { "@sentry/react": "^6.19.6", "@testing-library/react": "^13.1.0", "@types/better-sqlite3": "^7.5.0", "@types/cookie-parser": "^1.4.2", "@types/express": "^4.17.13", "@types/express-fileupload": "^1.2.2", "@types/howler": "^2.2.7", "@types/js-cookie": "^3.0.1", "@types/lodash-es": "^4.17.6", "@types/md5": "^2.3.2", "@types/qrcode": "^1.4.2", "@types/react": "^18.0.5", "@types/react-dom": "^18.0.1", "@typescript-eslint/eslint-plugin": "^5.19.0", "@typescript-eslint/parser": "^5.19.0", "@vitejs/plugin-react": "^1.3.1", "@vitest/ui": "^0.9.3", "autoprefixer": "^10.4.4", "axios": "^0.26.1", "c8": "^7.11.0", "classnames": "^2.3.1", "color.js": "^1.2.0", "colord": "^2.9.2", "concurrently": "^7.1.0", "cross-env": "^7.0.3", "dayjs": "^1.11.1", "dotenv": "^16.0.0", "electron": "^18.0.4", "electron-builder": "^23.0.3", "electron-devtools-installer": "^3.2.0", "electron-rebuild": "^3.2.7", "electron-releases": "^3.987.0", "esbuild": "^0.14.36", "eslint": "^8.13.0", "eslint-plugin-react": "^7.29.4", "eslint-plugin-react-hooks": "^4.4.0", "express-fileupload": "^1.3.1", "framer-motion": "^6.3.0", "howler": "^2.2.3", "js-cookie": "^3.0.1", "jsdom": "^19.0.0", "lodash-es": "^4.17.21", "md5": "^2.3.0", "minimist": "^1.2.6", "music-metadata": "^7.12.3", "ora": "^6.1.0", "picocolors": "^1.0.0", "postcss": "^8.4.12", "prettier": "2.6.2", "prettier-plugin-tailwindcss": "^0.1.8", "qrcode": "^1.5.0", "react": "^18.0.0", "react-dom": "^18.0.0", "react-ga4": "^1.4.1", "react-hot-toast": "^2.2.0", "react-query": "^3.34.19", "react-router-dom": "^6.3.0", "react-use": "^17.3.2", "rollup-plugin-visualizer": "^5.6.0", "sass": "^1.50.0", "tailwindcss": "^3.0.24", "typescript": "^4.6.3", "unplugin-auto-import": "^0.7.1", "valtio": "^1.5.2", "vite": "^2.9.5", "vite-plugin-svg-icons": "^2.0.1", "vitest": "^0.9.3", "wait-on": "^6.0.1" } }