{ "name": "beacon", "version": "1.11.0", "packageManager": "pnpm@11.5.0", "description": "A modern self-hosted music player with Multi-room casting support.", "keywords": [ "subsonic", "navidrome", "jellyfin", "react", "electron" ], "homepage": "https://github.com/mihaitom/beacon", "bugs": { "url": "https://github.com/mihaitom/beacon/issues" }, "license": "GPL-3.0", "type": "module", "main": "./out/main/index.js", "desktopName": "beacon.desktop", "author": { "name": "Thomas Mihailovits", "email": "beacon@users.noreply.github.com", "url": "https://github.com/mihaitom/" }, "scripts": { "dev": "concurrently -k -s first -n connect,electron,party \"pnpm:dev:connect\" \"pnpm:dev:electron\" \"pnpm:dev:party\"", "dev:electron": "install-electron && electron-vite dev", "dev:connect": "cd connect && uv run python main.py", "dev:web": "concurrently -k -s first -n connect,web,party \"pnpm:dev:connect\" \"pnpm:dev:web:vite\" \"pnpm:dev:party\"", "dev:party": "vite build --config party.vite.config.ts --watch", "dev:web:vite": "vite --config web.vite.config.ts", "build": "electron-vite build", "build:web": "vite build --config web.vite.config.ts", "build:party": "vite build --config party.vite.config.ts", "start": "install-electron && electron-vite preview", "test:unit": "vitest run", "test:unit:watch": "vitest", "test:unit:coverage": "vitest run --coverage", "test:layout": "vitest run --config vitest.browser.config.ts", "screenshots": "node scripts/screenshots/take.mjs", "package:connect": "pnpm build:party && cd connect && uv run python packaging/build-binary.py", "package:ffmpeg": "bash scripts/build-ffmpeg.sh", "package": "npm run package:ffmpeg && npm run package:connect && electron-vite build && electron-builder --publish never", "package:dir": "npm run package:ffmpeg && npm run package:connect && electron-vite build && electron-builder --dir --publish never", "publish": "npm run package:ffmpeg && npm run package:connect && electron-vite build && electron-builder --publish always", "publish:linux": "npm run package:ffmpeg && npm run package:connect && electron-vite build && electron-builder --publish always --linux --x64", "publish:linux-arm64": "npm run package:ffmpeg && npm run package:connect && electron-vite build && electron-builder --publish always --linux --arm64", "publish:mac": "npm run package:ffmpeg && npm run package:connect && electron-vite build && electron-builder --publish always --mac", "publish:win": "npm run package:ffmpeg && npm run package:connect && electron-vite build && electron-builder --publish always --win --x64", "publish:win-arm64": "npm run package:ffmpeg && npm run package:connect && electron-vite build && electron-builder --publish always --win --arm64", "type-check": "vue-tsc --build", "bump-version": "pnpm version --no-git-tag-version --no-git-checks", "postversion": "node ./scripts/sync-connect-version.mjs && node ./scripts/finalize-changelog.mjs", "prepare": "husky", "lint": "run-s \"lint:*\"", "lint:oxlint": "oxlint . --fix", "lint:eslint": "eslint . --fix --cache", "format": "prettier --write --experimental-cli src/", "format:check": "prettier --check --experimental-cli src/" }, "dependencies": { "@electron-toolkit/preload": "^3.0.2", "@electron-toolkit/utils": "^4.0.0", "@fontsource-variable/inter": "^5.3.0", "@mdi/font": "^7.4.47", "blueimp-md5": "^2.19.0", "dotenv": "^18.0.9", "electron-updater": "^6.8.11", "markdown-it": "^15.0.3", "mitt": "^3.0.1", "pinia": "^4.1.0", "qrcode": "^1.5.4", "vue": "^3.5.44", "vue-i18n": "^11.4.16", "vue-router": "^5.4.0", "vuetify": "^4.3.1" }, "devDependencies": { "@pinia/testing": "^2.0.2", "@tsconfig/node24": "^24.0.5", "@types/blueimp-md5": "^2.18.2", "@types/markdown-it": "^14.2.0", "@types/node": "^26.6.6", "@types/qrcode": "^1.5.6", "@vitejs/plugin-vue": "^6.0.10", "@vitest/browser-playwright": "4.1.12", "@vitest/coverage-v8": "^4.1.12", "@vue/eslint-config-typescript": "^14.9.0", "@vue/test-utils": "^2.5.1", "@vue/tsconfig": "^0.9.1", "concurrently": "^10.0.6", "electron": "^45.2.1", "electron-builder": "^26.18.0", "electron-vite": "^6.0.0", "eslint": "^10.14.0", "eslint-config-prettier": "^10.1.8", "eslint-plugin-oxlint": "~1.90.0", "eslint-plugin-vue": "~10.12.0", "fast-check": "^4.10.2", "husky": "^9.1.7", "jiti": "^2.7.0", "jsdom": "^30.1.3", "lint-staged": "^17.6.0", "npm-run-all2": "^9.0.4", "oxlint": "~1.90.0", "playwright": "^1.64.1", "prettier": "3.9.10", "typescript": "~6.0.3", "vite": "^8.3.5", "vite-plugin-vue-devtools": "^8.2.1", "vite-plugin-vuetify": "^2.1.3", "vitest": "^4.1.12", "vue-eslint-parser": "^10.4.1", "vue-tsc": "^3.3.14" }, "engines": { "node": "^22.18.0 || >=24.12.0" }, "allowScripts": { "electron@39.8.10": true, "esbuild@0.25.12": true, "esbuild@0.28.2": true, "electron-winstaller@5.4.0": true }, "lint-staged": { "src/**/*.{ts,vue,mts,tsx}": [ "oxlint --fix", "eslint --fix --cache", "prettier --write --experimental-cli" ], "src/**/*.{css,html,json,webmanifest}": "prettier --write --experimental-cli" } }