{
    "name": "feishin",
    "version": "1.2.0",
    "description": "A modern self-hosted music player.",
    "keywords": [
        "subsonic",
        "navidrome",
        "jellyfin",
        "react",
        "electron"
    ],
    "homepage": "https://github.com/jeffvli/feishin",
    "bugs": {
        "url": "https://github.com/jeffvli/feishin/issues"
    },
    "license": "GPL-3.0",
    "author": {
        "name": "jeffvli",
        "email": "feishin@users.noreply.github.com",
        "url": "https://github.com/jeffvli/"
    },
    "main": "./out/main/index.js",
    "scripts": {
        "build": "pnpm run build:electron && pnpm run build:remote",
        "build:electron": "electron-vite build",
        "build:remote": "vite build --config remote.vite.config.ts",
        "build:web": "vite build --config web.vite.config.ts",
        "dev": "electron-vite dev",
        "dev:remote": "vite dev --config remote.vite.config.ts",
        "dev:watch": "electron-vite dev --watch",
        "i18next": "i18next -c src/i18n/i18next-parser.config.js",
        "postinstall": "electron-builder install-app-deps",
        "lint": "pnpm run lint-code && pnpm run lint-styles",
        "lint-code": "eslint --max-warnings=0 --cache .",
        "lint-code:fix": "eslint --cache --fix .",
        "lint-styles": "stylelint --max-warnings=0 'src/**/*.{css,scss}'",
        "lint-styles:fix": "stylelint 'src/**/*.{css,scss}' --fix",
        "lint:fix": "pnpm run lint-code:fix && pnpm run lint-styles:fix",
        "package": "pnpm run build && electron-builder",
        "package:dev": "pnpm run build && electron-builder --dir",
        "package:linux": "pnpm run build && electron-builder --linux",
        "package:linux-arm64:pr": "pnpm run build && electron-builder --linux --arm64 --publish never",
        "package:linux:pr": "pnpm run build && electron-builder --linux --publish never",
        "package:mac": "pnpm run build && electron-builder --mac",
        "package:mac:pr": "pnpm run build && electron-builder --mac --publish never",
        "package:win": "pnpm run build && electron-builder --win",
        "package:win:pr": "pnpm run build && electron-builder --win --publish never",
        "publish:linux": "pnpm run build && electron-builder --publish always --linux",
        "publish:linux-arm64": "pnpm run build && electron-builder --publish always --linux --arm64",
        "publish:linux-arm64:beta": "pnpm run build && electron-builder --config electron-builder-beta.yml --publish always --linux --arm64",
        "publish:linux:beta": "pnpm run build && electron-builder --config electron-builder-beta.yml --publish always --linux",
        "publish:mac": "pnpm run build && electron-builder --publish always --mac",
        "publish:mac:beta": "pnpm run build && electron-builder --config electron-builder-beta.yml --publish always --mac",
        "publish:win": "pnpm run build && electron-builder --publish always --win",
        "publish:win:beta": "pnpm run build && electron-builder --config electron-builder-beta.yml --publish always --win",
        "start": "electron-vite preview",
        "typecheck": "pnpm run typecheck:node && pnpm run typecheck:web",
        "typecheck:node": "tsc --noEmit -p tsconfig.node.json --composite false",
        "typecheck:web": "tsc --noEmit -p tsconfig.web.json --composite false",
        "version": "pnpm version --no-git-tag-version",
        "postversion": "node ./scripts/update-app-stream.mjs"
    },
    "dependencies": {
        "@atlaskit/pragmatic-drag-and-drop": "1.7.7",
        "@atlaskit/pragmatic-drag-and-drop-auto-scroll": "^2.1.2",
        "@atlaskit/pragmatic-drag-and-drop-hitbox": "^1.1.0",
        "@electron-toolkit/preload": "^3.0.1",
        "@electron-toolkit/utils": "^4.0.0",
        "@mantine/colors-generator": "^8.3.8",
        "@mantine/core": "^8.3.8",
        "@mantine/dates": "^8.3.8",
        "@mantine/form": "^8.3.8",
        "@mantine/hooks": "^8.3.8",
        "@mantine/modals": "^8.3.8",
        "@mantine/notifications": "^8.3.8",
        "@radix-ui/react-context-menu": "^2.2.16",
        "@tanstack/react-query": "^5.90.9",
        "@tanstack/react-query-devtools": "^5.90.2",
        "@tanstack/react-query-persist-client": "^5.90.11",
        "@ts-rest/core": "^3.52.1",
        "@wavesurfer/react": "^1.0.11",
        "@xhayper/discord-rpc": "^1.3.0",
        "audiomotion-analyzer": "^4.5.1",
        "axios": "^1.13.2",
        "butterchurn": "^3.0.0-beta.5",
        "butterchurn-presets": "^3.0.0-beta.4",
        "cheerio": "^1.1.2",
        "clsx": "^2.1.1",
        "cmdk": "^1.1.1",
        "dayjs": "^1.11.19",
        "dompurify": "^3.3.0",
        "electron-debug": "^3.2.0",
        "electron-localshortcut": "^3.2.1",
        "electron-log": "^5.4.3",
        "electron-store": "^8.2.0",
        "electron-updater": "^6.6.2",
        "fast-average-color": "^9.5.0",
        "fast-xml-parser": "^5.3.2",
        "format-duration": "^3.0.2",
        "fuse.js": "^7.1.0",
        "i18next": "^25.6.2",
        "icecast-metadata-stats": "^0.1.12",
        "idb-keyval": "^6.2.2",
        "immer": "^10.2.0",
        "is-electron": "^2.2.2",
        "lodash": "^4.17.21",
        "md5": "^2.3.0",
        "motion": "^12.23.24",
        "mpris-service": "^2.1.2",
        "nanoid": "^3.3.11",
        "node-mpv": "github:jeffvli/Node-MPV#32b4d64395289ad710c41d481d2707a7acfc228f",
        "nuqs": "^2.7.1",
        "overlayscrollbars": "^2.11.1",
        "overlayscrollbars-react": "^0.5.6",
        "qs": "^6.14.1",
        "react": "^19.1.0",
        "react-call": "^1.8.1",
        "react-dom": "^19.1.0",
        "react-error-boundary": "^5.0.0",
        "react-i18next": "^16.3.3",
        "react-icons": "^5.5.0",
        "react-image": "^4.1.0",
        "react-loading-skeleton": "^3.5.0",
        "react-player": "^2.16.0",
        "react-router": "^7.9.6",
        "react-split-pane": "^3.0.4",
        "react-virtualized-auto-sizer": "^1.0.26",
        "react-window": "1.8.11",
        "react-window-v2": "npm:react-window@^2.2.3",
        "semver": "^7.5.4",
        "string-to-color": "^2.2.2",
        "wavesurfer.js": "^7.11.1",
        "ws": "^8.18.2",
        "zod": "^3.22.3",
        "zustand": "^5.0.5"
    },
    "devDependencies": {
        "@electron-toolkit/eslint-config-prettier": "^3.0.0",
        "@electron-toolkit/eslint-config-ts": "^3.0.0",
        "@electron-toolkit/tsconfig": "^2.0.0",
        "@types/electron-localshortcut": "^3.1.0",
        "@types/lodash": "^4.17.18",
        "@types/md5": "^2.3.5",
        "@types/node": "^24.10.1",
        "@types/react": "^19.2.5",
        "@types/react-dom": "^19.2.3",
        "@types/react-window": "^1.8.8",
        "@types/source-map-support": "^0.5.10",
        "@types/ws": "^8.18.1",
        "@vitejs/plugin-react": "^5.1.1",
        "concurrently": "^9.2.1",
        "cross-env": "^10.1.0",
        "electron": "^39.2.7",
        "electron-builder": "^26.0.12",
        "electron-devtools-installer": "^4.0.0",
        "electron-vite": "^4.0.1",
        "eslint": "^9.24.0",
        "eslint-plugin-perfectionist": "^4.13.0",
        "eslint-plugin-prettier": "^5.4.0",
        "eslint-plugin-react": "^7.37.5",
        "eslint-plugin-react-hooks": "^7.0.1",
        "eslint-plugin-react-refresh": "^0.4.24",
        "i18next-parser": "^9.3.0",
        "postcss-preset-mantine": "^1.18.0",
        "postcss-simple-vars": "^7.0.1",
        "prettier": "^3.6.2",
        "prettier-plugin-packagejson": "^2.5.19",
        "stylelint": "^16.25.0",
        "stylelint-config-css-modules": "^4.5.1",
        "stylelint-config-recess-order": "^7.4.0",
        "stylelint-config-standard": "^39.0.1",
        "typescript": "^5.8.3",
        "vite": "^7.2.2",
        "vite-plugin-conditional-import": "^0.1.7",
        "vite-plugin-dynamic-import": "^1.6.0",
        "vite-plugin-ejs": "^1.7.0",
        "vite-plugin-pwa": "^1.1.0"
    },
    "pnpm": {
        "onlyBuiltDependencies": [
            "electron",
            "esbuild"
        ]
    },
    "productName": "feishin"
}
