From 38d50a814f7ea6ca244b4ea142bdda55dadf18c7 Mon Sep 17 00:00:00 2001 From: Nose Date: Thu, 26 Mar 2026 03:26:37 -0700 Subject: [PATCH] first commit --- .env.example | 4 + .gitignore | 6 + README.md | 168 ++ index.html | 13 + package-lock.json | 2465 +++++++++++++++++ package.json | 27 + public/manifest.json | 12 + public/no-image.svg | 4 + public/sw.js | 169 ++ .../api-media-player-open-in-mpv.user.js | 157 ++ scripts/README.md | 155 ++ scripts/README.zh-Hans.md | 155 ++ scripts/README.zh-Hant.md | 155 ++ scripts/config.toml | 18 + scripts/handler-install.bat | 82 + scripts/handler-uninstall.bat | 64 + scripts/install-mpv-handler.ps1 | 229 ++ scripts/mpv-handler-debug.exe | Bin 0 -> 545792 bytes scripts/mpv-handler.exe | Bin 0 -> 545792 bytes src/App.tsx | 357 +++ src/api/hydrusClient.ts | 698 +++++ src/appPreferences.ts | 47 + src/components/DevErrorPanel.tsx | 128 + src/components/Header.tsx | 104 + src/components/Sidebar.tsx | 118 + src/context/ServersContext.tsx | 144 + src/debugLog.ts | 62 + src/libraryCache.ts | 99 + src/main.tsx | 18 + src/mediaCache.ts | 27 + src/pages/Library.tsx | 1558 +++++++++++ src/pages/SettingsPage.tsx | 381 +++ src/sampleData.ts | 5 + src/serviceWorker.ts | 16 + src/styles.css | 55 + src/types.ts | 26 + tsconfig.json | 20 + vite.config.ts | 9 + 38 files changed, 7755 insertions(+) create mode 100644 .env.example create mode 100644 .gitignore create mode 100644 README.md create mode 100644 index.html create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/manifest.json create mode 100644 public/no-image.svg create mode 100644 public/sw.js create mode 100644 public/userscripts/api-media-player-open-in-mpv.user.js create mode 100644 scripts/README.md create mode 100644 scripts/README.zh-Hans.md create mode 100644 scripts/README.zh-Hant.md create mode 100644 scripts/config.toml create mode 100644 scripts/handler-install.bat create mode 100644 scripts/handler-uninstall.bat create mode 100644 scripts/install-mpv-handler.ps1 create mode 100644 scripts/mpv-handler-debug.exe create mode 100644 scripts/mpv-handler.exe create mode 100644 src/App.tsx create mode 100644 src/api/hydrusClient.ts create mode 100644 src/appPreferences.ts create mode 100644 src/components/DevErrorPanel.tsx create mode 100644 src/components/Header.tsx create mode 100644 src/components/Sidebar.tsx create mode 100644 src/context/ServersContext.tsx create mode 100644 src/debugLog.ts create mode 100644 src/libraryCache.ts create mode 100644 src/main.tsx create mode 100644 src/mediaCache.ts create mode 100644 src/pages/Library.tsx create mode 100644 src/pages/SettingsPage.tsx create mode 100644 src/sampleData.ts create mode 100644 src/serviceWorker.ts create mode 100644 src/styles.css create mode 100644 src/types.ts create mode 100644 tsconfig.json create mode 100644 vite.config.ts diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..13aadf1 --- /dev/null +++ b/.env.example @@ -0,0 +1,4 @@ +VITE_HYDRUS_HOST=http://localhost +VITE_HYDRUS_PORT=45869 +VITE_HYDRUS_API_KEY=95178b08e6ba3c57991e7b4e162c6efff1ce90c500005c6ebf8524122ed2486e +VITE_HYDRUS_SSL=false diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..aa4377c --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +node_modules/ +dist/ +.env +.vscode/ +.DS_Store +/public/icon-*.png diff --git a/README.md b/README.md new file mode 100644 index 0000000..66feee4 --- /dev/null +++ b/README.md @@ -0,0 +1,168 @@ +# API Media Player (PWA) + +This is a small web-first PWA prototype for browsing media from a Hydrus client via its Client API. The app ships with a demo library and routes playback to external players such as mpv or VLC instead of using an in-browser player. + +## Quick start (PowerShell) + +1. Install dependencies: + +```powershell +pwsh -c "npm install" +``` + +2. Run the dev server: + +```powershell +pwsh -c "npm run dev" +``` + +Open `http://localhost:5173` in your browser to test the PWA and external-player launch flow. + +## Configuring Hydrus + +Create a `.env` file in the project root (not committed) with these variables if you want to connect to a real Hydrus instance: + +``` +VITE_HYDRUS_HOST=http://localhost +VITE_HYDRUS_PORT=45869 +VITE_HYDRUS_API_KEY= +VITE_HYDRUS_SSL=false +``` + +> Note: browsers cannot attach custom Hydrus API headers to direct media URLs. If your Hydrus server requires header-based authentication for file access, use a reverse proxy or another trusted layer that can mint playable URLs for your external player. + +### Settings UI & quick test + +On first run the app will seed a sample server entry for `192.168.1.128:45869` so you can quickly add your API key and test connectivity via the app's Settings (top-right gear). Open Settings, choose the server, paste your `Hydrus-Client-API-Access-Key` (if needed), and click **Test connection**. The test reports whether the server is reachable, whether authentication is required (HTTP 401/403), and whether byte-range requests are supported (needed for seeking). + +If you get a CORS or network error in the browser, consider running a reverse proxy that adds proper CORS headers or packaging the app with Capacitor to avoid browser CORS limitations. + +## Violentmonkey mpv userscript + +If you want desktop or Android browsers to hand media straight to mpv instead of the in-browser player, install the userscript at: + +```text +/userscripts/api-media-player-open-in-mpv.user.js +``` + +Examples: + +```text +http://localhost:5173/userscripts/api-media-player-open-in-mpv.user.js +http://127.0.0.1:4173/userscripts/api-media-player-open-in-mpv.user.js +``` + +What it does: + +- On desktop, direct media playback is redirected to `mpv-handler://...` +- On Android, direct media playback is redirected to the mpv app via `intent://...` +- It only activates by default on `localhost`, loopback, RFC1918 LAN IPs, and `.local` / `.lan` hosts so it does not hijack unrelated public websites + +Notes: + +- Desktop requires `mpv-handler` to be installed and registered. +- Android requires `mpv-android` (`is.xyz.mpv`) to be installed. +- The script intercepts direct file URLs and Hydrus `/get_files/file` playback requests before the browser player starts. + +### Desktop setup for mpv-handler + +Official project: + +```text +https://github.com/akiirui/mpv-handler +``` + +Latest releases: + +```text +https://github.com/akiirui/mpv-handler/releases +``` + +Windows: + +1. Install `mpv` itself first if you do not already have it. +2. Download the latest Windows archive: + +```text +https://github.com/akiirui/mpv-handler/releases/latest/download/mpv-handler-windows-amd64.zip +``` + +3. Extract it somewhere permanent. +4. Edit `config.toml` in that folder and set the path to your `mpv` executable. If you use `yt-dlp`, set that path too. +5. Register the protocol with either the upstream batch file or the PowerShell installer in this repo. + +Upstream batch option: + +```powershell +Set-Location C:\path\to\mpv-handler +.\handler-install.bat +``` + +PowerShell alternative from this repo: + +```powershell +Set-Location C:\Forgejo\API-MediaPlayer +powershell -ExecutionPolicy Bypass -File .\scripts\install-mpv-handler.ps1 -InstallRoot 'C:\path\to\mpv-handler' +``` + +Or from an already elevated PowerShell window: + +```powershell +& 'C:\Forgejo\API-MediaPlayer\scripts\install-mpv-handler.ps1' -InstallRoot 'C:\path\to\mpv-handler' +``` + +If you copied `config.toml`, `mpv-handler.exe`, and `mpv-handler-debug.exe` into the same folder as [scripts/install-mpv-handler.ps1](scripts/install-mpv-handler.ps1), you can also run it without `-InstallRoot`: + +```powershell +& 'C:\Forgejo\API-MediaPlayer\scripts\install-mpv-handler.ps1' +``` + +What the PowerShell installer does: + +- validates that `config.toml`, `mpv-handler.exe`, and `mpv-handler-debug.exe` exist +- removes old `mpv://` and existing `mpv-handler://` protocol keys unless you tell it not to +- registers `mpv-handler://` and `mpv-handler-debug://` in the Windows registry +- uses the `mpv` path from `config.toml` as the icon when possible, otherwise falls back to `mpv-handler.exe` + +Requirements for the PowerShell installer: + +- run it from an elevated PowerShell window +- point `-InstallRoot` at the extracted `mpv-handler` folder +- do not dot-source it from the repo root without `-InstallRoot`, because this repo does not contain the extracted `mpv-handler` binaries + +Linux: + +1. Download the latest Linux archive: + +```text +https://github.com/akiirui/mpv-handler/releases/latest/download/mpv-handler-linux-amd64.zip +``` + +2. Extract it. +3. Copy `mpv-handler` to `$HOME/.local/bin`. +4. Copy `mpv-handler.desktop` and `mpv-handler-debug.desktop` to `$HOME/.local/share/applications/`. +5. Make the binary executable: + +```text +chmod +x $HOME/.local/bin/mpv-handler +``` + +6. Register the protocol handlers: + +```text +xdg-mime default mpv-handler.desktop x-scheme-handler/mpv-handler +xdg-mime default mpv-handler-debug.desktop x-scheme-handler/mpv-handler-debug +``` + +7. Add `$HOME/.local/bin` to `PATH` if needed. +8. Optionally copy and edit `config.toml` for your `mpv` and `yt-dlp` paths. + +After setup, clicking an `mpv-handler://...` link in the browser should launch mpv instead of showing an unknown protocol error. + +## Next steps + +- Wire the UI to a real Hydrus instance (update `src/api/hydrusClient.ts`). +- Add Capacitor for native packaging and secure storage for API keys. +- Improve Hydrus browsing and filtering UX for large libraries. + +If you want, I can run `npm install` and start the dev server now and confirm the app is reachable locally. Let me know and I'll proceed. diff --git a/index.html b/index.html new file mode 100644 index 0000000..5203cfd --- /dev/null +++ b/index.html @@ -0,0 +1,13 @@ + + + + + + + API Media Player + + +
+ + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..e957392 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,2465 @@ +{ + "name": "api-mediaplayer", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "api-mediaplayer", + "version": "0.1.0", + "dependencies": { + "@emotion/react": "^11.11.0", + "@emotion/styled": "^11.11.0", + "@mui/icons-material": "^5.14.0", + "@mui/material": "^5.14.0", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^4.0.0", + "prettier": "^2.8.8", + "typescript": "^5.3.0", + "vite": "^5.1.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.28.6.tgz", + "integrity": "sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.6.tgz", + "integrity": "sha512-2lfu57JtzctfIrcGMz992hyLlByuzgIk58+hhGCxjKZ3rWI82NnVLjXcaTqkI2NvlcvOskZaiZ5kjUALo3Lpxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.6.tgz", + "integrity": "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.28.6", + "@babel/generator": "^7.28.6", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helpers": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/generator": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.6.tgz", + "integrity": "sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", + "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", + "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", + "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", + "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz", + "integrity": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.6.tgz", + "integrity": "sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.6" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", + "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", + "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz", + "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.6.tgz", + "integrity": "sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.28.6", + "@babel/generator": "^7.28.6", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.6", + "@babel/template": "^7.28.6", + "@babel/types": "^7.28.6", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.6.tgz", + "integrity": "sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@emotion/babel-plugin": { + "version": "11.13.5", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz", + "integrity": "sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/serialize": "^1.3.3", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/cache": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz", + "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.9.0", + "@emotion/sheet": "^1.4.0", + "@emotion/utils": "^1.4.2", + "@emotion/weak-memoize": "^0.4.0", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/hash": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", + "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", + "license": "MIT" + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.4.0.tgz", + "integrity": "sha512-QgD4fyscGcbbKwJmqNvUMSE02OsHUa+lAWKdEUIJKgqe5IwRSKd7+KhibEWdaKwgjLj0DRSHA9biAIqGBk05lw==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.9.0" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", + "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==", + "license": "MIT" + }, + "node_modules/@emotion/react": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", + "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.13.5", + "@emotion/cache": "^11.14.0", + "@emotion/serialize": "^1.3.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", + "@emotion/utils": "^1.4.2", + "@emotion/weak-memoize": "^0.4.0", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz", + "integrity": "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==", + "license": "MIT", + "dependencies": { + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/unitless": "^0.10.0", + "@emotion/utils": "^1.4.2", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/sheet": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz", + "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==", + "license": "MIT" + }, + "node_modules/@emotion/styled": { + "version": "11.14.1", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.1.tgz", + "integrity": "sha512-qEEJt42DuToa3gurlH4Qqc1kVpNq8wO8cJtDzU46TjlzWjDlsVyevtYCRijVq3SrHsROS+gVQ8Fnea108GnKzw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.13.5", + "@emotion/is-prop-valid": "^1.3.0", + "@emotion/serialize": "^1.3.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", + "@emotion/utils": "^1.4.2" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0-rc.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/unitless": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz", + "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==", + "license": "MIT" + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz", + "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==", + "license": "MIT", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz", + "integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==", + "license": "MIT" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz", + "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==", + "license": "MIT" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mui/core-downloads-tracker": { + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.18.0.tgz", + "integrity": "sha512-jbhwoQ1AY200PSSOrNXmrFCaSDSJWP7qk6urkTmIirvRXDROkqe+QwcLlUiw/PrREwsIF/vm3/dAXvjlMHF0RA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + } + }, + "node_modules/@mui/icons-material": { + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.18.0.tgz", + "integrity": "sha512-1s0vEZj5XFXDMmz3Arl/R7IncFqJ+WQ95LDp1roHWGDE2oCO3IS4/hmiOv1/8SD9r6B7tv9GLiqVZYHo+6PkTg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@mui/material": "^5.0.0", + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/material": { + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.18.0.tgz", + "integrity": "sha512-bbH/HaJZpFtXGvWg3TsBWG4eyt3gah3E7nCNU8GLyRjVoWcA91Vm/T+sjHfUcwgJSw9iLtucfHBoq+qW/T30aA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/core-downloads-tracker": "^5.18.0", + "@mui/system": "^5.18.0", + "@mui/types": "~7.2.15", + "@mui/utils": "^5.17.1", + "@popperjs/core": "^2.11.8", + "@types/react-transition-group": "^4.4.10", + "clsx": "^2.1.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1", + "react-is": "^19.0.0", + "react-transition-group": "^4.4.5" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/private-theming": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.17.1.tgz", + "integrity": "sha512-XMxU0NTYcKqdsG8LRmSoxERPXwMbp16sIXPcLVgLGII/bVNagX0xaheWAwFv8+zDK7tI3ajllkuD3GZZE++ICQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/utils": "^5.17.1", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/styled-engine": { + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.18.0.tgz", + "integrity": "sha512-BN/vKV/O6uaQh2z5rXV+MBlVrEkwoS/TK75rFQ2mjxA7+NBo8qtTAOA4UaM0XeJfn7kh2wZ+xQw2HAx0u+TiBg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@emotion/cache": "^11.13.5", + "@emotion/serialize": "^1.3.3", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.4.1", + "@emotion/styled": "^11.3.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + } + } + }, + "node_modules/@mui/system": { + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.18.0.tgz", + "integrity": "sha512-ojZGVcRWqWhu557cdO3pWHloIGJdzVtxs3rk0F9L+x55LsUjcMUVkEhiF7E4TMxZoF9MmIHGGs0ZX3FDLAf0Xw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/private-theming": "^5.17.1", + "@mui/styled-engine": "^5.18.0", + "@mui/types": "~7.2.15", + "@mui/utils": "^5.17.1", + "clsx": "^2.1.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/types": { + "version": "7.2.24", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.24.tgz", + "integrity": "sha512-3c8tRt/CbWZ+pEg7QpSwbdxOk36EfmhbKf6AGZsD1EcLDLTSZoxxJ86FVtcjxvjuhdyBiWKSTGZFaXCnidO2kw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.17.1.tgz", + "integrity": "sha512-jEZ8FTqInt2WzxDV8bhImWBqeQRD99c/id/fq83H0ER9tFl+sfZlaAoCdznGvbSQQ9ividMxqSV2c7cC1vBcQg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/types": "~7.2.15", + "@types/prop-types": "^15.7.12", + "clsx": "^2.1.1", + "prop-types": "^15.8.1", + "react-is": "^19.0.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", + "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.55.1.tgz", + "integrity": "sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.55.1.tgz", + "integrity": "sha512-eFZCb1YUqhTysgW3sj/55du5cG57S7UTNtdMjCW7LwVcj3dTTcowCsC8p7uBdzKsZYa8J7IDE8lhMI+HX1vQvg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.55.1.tgz", + "integrity": "sha512-p3grE2PHcQm2e8PSGZdzIhCKbMCw/xi9XvMPErPhwO17vxtvCN5FEA2mSLgmKlCjHGMQTP6phuQTYWUnKewwGg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.55.1.tgz", + "integrity": "sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.55.1.tgz", + "integrity": "sha512-+JiU7Jbp5cdxekIgdte0jfcu5oqw4GCKr6i3PJTlXTCU5H5Fvtkpbs4XJHRmWNXF+hKmn4v7ogI5OQPaupJgOg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.55.1.tgz", + "integrity": "sha512-V5xC1tOVWtLLmr3YUk2f6EJK4qksksOYiz/TCsFHu/R+woubcLWdC9nZQmwjOAbmExBIVKsm1/wKmEy4z4u4Bw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.55.1.tgz", + "integrity": "sha512-Rn3n+FUk2J5VWx+ywrG/HGPTD9jXNbicRtTM11e/uorplArnXZYsVifnPPqNNP5BsO3roI4n8332ukpY/zN7rQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.55.1.tgz", + "integrity": "sha512-grPNWydeKtc1aEdrJDWk4opD7nFtQbMmV7769hiAaYyUKCT1faPRm2av8CX1YJsZ4TLAZcg9gTR1KvEzoLjXkg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.55.1.tgz", + "integrity": "sha512-a59mwd1k6x8tXKcUxSyISiquLwB5pX+fJW9TkWU46lCqD/GRDe9uDN31jrMmVP3feI3mhAdvcCClhV8V5MhJFQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.55.1.tgz", + "integrity": "sha512-puS1MEgWX5GsHSoiAsF0TYrpomdvkaXm0CofIMG5uVkP6IBV+ZO9xhC5YEN49nsgYo1DuuMquF9+7EDBVYu4uA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.55.1.tgz", + "integrity": "sha512-r3Wv40in+lTsULSb6nnoudVbARdOwb2u5fpeoOAZjFLznp6tDU8kd+GTHmJoqZ9lt6/Sys33KdIHUaQihFcu7g==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.55.1.tgz", + "integrity": "sha512-MR8c0+UxAlB22Fq4R+aQSPBayvYa3+9DrwG/i1TKQXFYEaoW3B5b/rkSRIypcZDdWjWnpcvxbNaAJDcSbJU3Lw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.55.1.tgz", + "integrity": "sha512-3KhoECe1BRlSYpMTeVrD4sh2Pw2xgt4jzNSZIIPLFEsnQn9gAnZagW9+VqDqAHgm1Xc77LzJOo2LdigS5qZ+gw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.55.1.tgz", + "integrity": "sha512-ziR1OuZx0vdYZZ30vueNZTg73alF59DicYrPViG0NEgDVN8/Jl87zkAPu4u6VjZST2llgEUjaiNl9JM6HH1Vdw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.55.1.tgz", + "integrity": "sha512-uW0Y12ih2XJRERZ4jAfKamTyIHVMPQnTZcQjme2HMVDAHY4amf5u414OqNYC+x+LzRdRcnIG1YodLrrtA8xsxw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.55.1.tgz", + "integrity": "sha512-u9yZ0jUkOED1BFrqu3BwMQoixvGHGZ+JhJNkNKY/hyoEgOwlqKb62qu+7UjbPSHYjiVy8kKJHvXKv5coH4wDeg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.55.1.tgz", + "integrity": "sha512-/0PenBCmqM4ZUd0190j7J0UsQ/1nsi735iPRakO8iPciE7BQ495Y6msPzaOmvx0/pn+eJVVlZrNrSh4WSYLxNg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.55.1.tgz", + "integrity": "sha512-a8G4wiQxQG2BAvo+gU6XrReRRqj+pLS2NGXKm8io19goR+K8lw269eTrPkSdDTALwMmJp4th2Uh0D8J9bEV1vg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.55.1.tgz", + "integrity": "sha512-bD+zjpFrMpP/hqkfEcnjXWHMw5BIghGisOKPj+2NaNDuVT+8Ds4mPf3XcPHuat1tz89WRL+1wbcxKY3WSbiT7w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.55.1.tgz", + "integrity": "sha512-eLXw0dOiqE4QmvikfQ6yjgkg/xDM+MdU9YJuP4ySTibXU0oAvnEWXt7UDJmD4UkYialMfOGFPJnIHSe/kdzPxg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.55.1.tgz", + "integrity": "sha512-xzm44KgEP11te3S2HCSyYf5zIzWmx3n8HDCc7EE59+lTcswEWNpvMLfd9uJvVX8LCg9QWG67Xt75AuHn4vgsXw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.55.1.tgz", + "integrity": "sha512-yR6Bl3tMC/gBok5cz/Qi0xYnVbIxGx5Fcf/ca0eB6/6JwOY+SRUcJfI0OpeTpPls7f194as62thCt/2BjxYN8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.55.1.tgz", + "integrity": "sha512-3fZBidchE0eY0oFZBnekYCfg+5wAB0mbpCBuofh5mZuzIU/4jIVkbESmd2dOsFNS78b53CYv3OAtwqkZZmU5nA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.55.1.tgz", + "integrity": "sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.55.1.tgz", + "integrity": "sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.2" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.15", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", + "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.8.tgz", + "integrity": "sha512-3MbSL37jEchWZz2p2mjntRZtPt837ij10ApxKfgmXCTuHWagYg7iA5bqPw6C8BMPfwidlvfPI/fxOc42HLhcyg==", + "license": "MIT", + "peer": true, + "dependencies": { + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", + "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.2.0" + } + }, + "node_modules/@types/react-transition-group": { + "version": "4.4.12", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz", + "integrity": "sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz", + "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.28.0", + "@babel/plugin-transform-react-jsx-self": "^7.27.1", + "@babel/plugin-transform-react-jsx-source": "^7.27.1", + "@rolldown/pluginutils": "1.0.0-beta.27", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.17.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" + } + }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.9.14", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.14.tgz", + "integrity": "sha512-B0xUquLkiGLgHhpPBqvl7GWegWBUNuujQ6kXd/r1U38ElPT6Ok8KZ8e+FpUGEc2ZoRQUzq/aUnaKFc/svWUGSg==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/browserslist": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001764", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001764.tgz", + "integrity": "sha512-9JGuzl2M+vPL+pz70gtMF9sHdMFbY9FJaQBi186cHKH3pSzDvzoUJUPV6fqiKIMyXbud9ZLg4F3Yza1vJ1+93g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.267", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz", + "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==", + "dev": true, + "license": "ISC" + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "license": "MIT" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-is": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.3.tgz", + "integrity": "sha512-qJNJfu81ByyabuG7hPFEbXqNcWSU3+eVus+KJs+0ncpGfMyYdvSmxiJxbWR65lYi1I+/0HBcliO029gc4F+PnA==", + "license": "MIT" + }, + "node_modules/react-refresh": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", + "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/rollup": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.55.1.tgz", + "integrity": "sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.55.1", + "@rollup/rollup-android-arm64": "4.55.1", + "@rollup/rollup-darwin-arm64": "4.55.1", + "@rollup/rollup-darwin-x64": "4.55.1", + "@rollup/rollup-freebsd-arm64": "4.55.1", + "@rollup/rollup-freebsd-x64": "4.55.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.55.1", + "@rollup/rollup-linux-arm-musleabihf": "4.55.1", + "@rollup/rollup-linux-arm64-gnu": "4.55.1", + "@rollup/rollup-linux-arm64-musl": "4.55.1", + "@rollup/rollup-linux-loong64-gnu": "4.55.1", + "@rollup/rollup-linux-loong64-musl": "4.55.1", + "@rollup/rollup-linux-ppc64-gnu": "4.55.1", + "@rollup/rollup-linux-ppc64-musl": "4.55.1", + "@rollup/rollup-linux-riscv64-gnu": "4.55.1", + "@rollup/rollup-linux-riscv64-musl": "4.55.1", + "@rollup/rollup-linux-s390x-gnu": "4.55.1", + "@rollup/rollup-linux-x64-gnu": "4.55.1", + "@rollup/rollup-linux-x64-musl": "4.55.1", + "@rollup/rollup-openbsd-x64": "4.55.1", + "@rollup/rollup-openharmony-arm64": "4.55.1", + "@rollup/rollup-win32-arm64-msvc": "4.55.1", + "@rollup/rollup-win32-ia32-msvc": "4.55.1", + "@rollup/rollup-win32-x64-gnu": "4.55.1", + "@rollup/rollup-win32-x64-msvc": "4.55.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", + "license": "MIT" + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/vite": { + "version": "5.4.21", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz", + "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "license": "ISC", + "engines": { + "node": ">= 6" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..e97edda --- /dev/null +++ b/package.json @@ -0,0 +1,27 @@ +{ + "name": "api-mediaplayer", + "version": "0.1.0", + "private": true, + "description": "Web-first PWA media player that integrates with Hydrus", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview", + "format": "prettier --write \"src/**/*.{ts,tsx,js,jsx,json,css,md}\"" + }, + "dependencies": { + "@emotion/react": "^11.11.0", + "@emotion/styled": "^11.11.0", + "@mui/icons-material": "^5.14.0", + "@mui/material": "^5.14.0", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^4.0.0", + "prettier": "^2.8.8", + "typescript": "^5.3.0", + "vite": "^5.1.0" + } +} diff --git a/public/manifest.json b/public/manifest.json new file mode 100644 index 0000000..caa9099 --- /dev/null +++ b/public/manifest.json @@ -0,0 +1,12 @@ +{ + "name": "API Media Player", + "short_name": "MediaPlayer", + "start_url": "/", + "display": "standalone", + "background_color": "#FFFFFF", + "theme_color": "#6200EE", + "icons": [ + { "src": "no-image.svg", "sizes": "192x192", "type": "image/svg+xml" }, + { "src": "no-image.svg", "sizes": "512x512", "type": "image/svg+xml" } + ] +} \ No newline at end of file diff --git a/public/no-image.svg b/public/no-image.svg new file mode 100644 index 0000000..7e400e1 --- /dev/null +++ b/public/no-image.svg @@ -0,0 +1,4 @@ + + + No Image + \ No newline at end of file diff --git a/public/sw.js b/public/sw.js new file mode 100644 index 0000000..b2f35e4 --- /dev/null +++ b/public/sw.js @@ -0,0 +1,169 @@ +const CACHE_NAME = 'api-mediaplayer-v1' +const MEDIA_CACHE_NAME = 'api-mediaplayer-media-v2' +const ASSETS = ['/', '/index.html', '/manifest.json', '/no-image.svg'] +const MAX_MEDIA_CACHE_ITEMS = 12 + +function getRangeBounds(rangeHeader, size) { + const match = /^bytes=(\d*)-(\d*)$/i.exec(rangeHeader || '') + if (!match) return null + + let start = match[1] ? Number(match[1]) : NaN + let end = match[2] ? Number(match[2]) : NaN + + if (Number.isNaN(start) && Number.isNaN(end)) return null + if (Number.isNaN(start)) { + const suffixLength = end + if (!Number.isFinite(suffixLength) || suffixLength <= 0) return null + start = Math.max(size - suffixLength, 0) + end = size - 1 + } else { + if (!Number.isFinite(start) || start < 0 || start >= size) return null + if (Number.isNaN(end) || end >= size) end = size - 1 + } + + if (end < start) return null + return { start, end } +} + +async function trimMediaCache(cache) { + const keys = await cache.keys() + if (keys.length <= MAX_MEDIA_CACHE_ITEMS) return + + const overflow = keys.length - MAX_MEDIA_CACHE_ITEMS + for (let index = 0; index < overflow; index += 1) { + await cache.delete(keys[index]) + } +} + +async function createRangeResponse(cachedResponse, rangeHeader) { + const blob = await cachedResponse.blob() + const size = blob.size + const bounds = getRangeBounds(rangeHeader, size) + + if (!bounds) { + return new Response(null, { + status: 416, + headers: { 'Content-Range': `bytes */${size}` } + }) + } + + const { start, end } = bounds + const slice = blob.slice(start, end + 1) + const headers = new Headers(cachedResponse.headers) + headers.set('Accept-Ranges', 'bytes') + headers.set('Content-Length', String(end - start + 1)) + headers.set('Content-Range', `bytes ${start}-${end}/${size}`) + + return new Response(slice, { + status: 206, + statusText: 'Partial Content', + headers, + }) +} + +async function handleMediaRequest(event) { + const mediaCache = await caches.open(MEDIA_CACHE_NAME) + const cacheKey = event.request.url + const rangeHeader = event.request.headers && event.request.headers.get && event.request.headers.get('range') + const cached = await mediaCache.match(cacheKey).catch(() => null) + + if (cached) { + if (rangeHeader) return createRangeResponse(cached, rangeHeader) + return cached + } + + const networkResponse = await fetch(event.request) + + if (!rangeHeader && networkResponse.ok && networkResponse.status === 200) { + event.waitUntil( + mediaCache.put(cacheKey, networkResponse.clone()).then(() => trimMediaCache(mediaCache)).catch(() => undefined) + ) + } + + return networkResponse +} + +self.addEventListener('install', (event) => { + event.waitUntil( + caches.open(CACHE_NAME).then((cache) => { + return cache.addAll(ASSETS) + }).then(() => self.skipWaiting()) + ) +}) + +self.addEventListener('activate', (event) => { + event.waitUntil( + caches.keys().then((keys) => Promise.all(keys.map((k) => (k !== CACHE_NAME && k !== MEDIA_CACHE_NAME ? caches.delete(k) : Promise.resolve())))).then(() => self.clients.claim()) + ) +}) + +self.addEventListener('fetch', (event) => { + if (event.request.method !== 'GET') return + + const url = event.request.url || '' + const acceptHeader = (event.request.headers && event.request.headers.get && event.request.headers.get('accept')) || '' + const destination = event.request.destination || '' + const hasRangeHeader = event.request.headers && event.request.headers.get && event.request.headers.get('range') + const isNativeVideoBypass = /(?:\?|&)_native_video=1(?:&|$)/i.test(url) + const isVideoRequest = destination === 'video' || /video\//i.test(acceptHeader) + const isAudioRequest = destination === 'audio' || /audio\//i.test(acceptHeader) + const isMediaRequest = isVideoRequest + || isAudioRequest + || /\/get_files\/(file|thumbnail)\?/i.test(url) + || /\.(m3u8|mp4|webm|ogg|mov)(\?|$)/i.test(url) + + if (isNativeVideoBypass || isVideoRequest) { + event.respondWith(fetch(event.request)) + return + } + + if (isMediaRequest || hasRangeHeader) { + event.respondWith(handleMediaRequest(event)) + return + } + + event.respondWith((async () => { + try { + const cached = await caches.match(event.request).catch(() => null) + if (cached) return cached + + try { + const response = await fetch(event.request) + return response + } catch (networkErr) { + // On network failure, provide a graceful fallback for images and navigation + try { + const dest = event.request.destination || '' + const url = event.request.url || '' + + // Image fallback + if (dest === 'image' || /\.(png|jpe?g|gif|svg|webp)(\?|$)/i.test(url)) { + const fallback = await caches.match('/no-image.svg').catch(() => null) + if (fallback) return fallback + return new Response("No Image", { headers: { 'Content-Type': 'image/svg+xml' } }) + } + + // Navigation fallback (HTML) + if (event.request.mode === 'navigate' || (event.request.headers && event.request.headers.get && event.request.headers.get('accept') && event.request.headers.get('accept').includes('text/html'))) { + const index = await caches.match('/index.html').catch(() => null) + if (index) return index + } + } catch (e) { + console.error('SW network error fallback failed', e) + } + + return new Response('Network error', { status: 502, statusText: 'Bad Gateway' }) + } + } catch (e) { + console.error('SW fetch handler error', e) + return new Response('SW internal error', { status: 500 }) + } + })()) +}) + +// Support skip waiting via message +self.addEventListener('message', (event) => { + if (event && event.data && event.data.type === 'SKIP_WAITING') { + self.skipWaiting() + } +}) diff --git a/public/userscripts/api-media-player-open-in-mpv.user.js b/public/userscripts/api-media-player-open-in-mpv.user.js new file mode 100644 index 0000000..a3233a6 --- /dev/null +++ b/public/userscripts/api-media-player-open-in-mpv.user.js @@ -0,0 +1,157 @@ +// ==UserScript== +// @name API Media Player: Open in mpv +// @namespace https://local.api-media-player +// @version 0.1.0 +// @description Redirect direct media playback from this app into mpv instead of playing inside the browser. +// @match *://*/* +// @run-at document-start +// @inject-into page +// @grant none +// ==/UserScript== + +(() => { + const RECENT_OPEN_WINDOW_MS = 1500 + const DIRECT_MEDIA_EXTENSION = /\.(mp4|m4v|mkv|webm|mov|mp3|m4a|flac|ogg|opus|wav|aac)(?:$|[?#])/i + const PRIVATE_IPV4_HOST = /^(?:10\.|127\.|192\.168\.|172\.(?:1[6-9]|2\d|3[0-1])\.)/ + const LOCAL_HOST_SUFFIX = /(?:\.local|\.lan)$/i + + let lastOpenedUrl = '' + let lastOpenedAt = 0 + + function isAllowedHost(hostname) { + return hostname === 'localhost' + || hostname === '[::1]' + || PRIVATE_IPV4_HOST.test(hostname) + || LOCAL_HOST_SUFFIX.test(hostname) + } + + function getMediaUrlFromElement(element) { + if (!element) return '' + return element.currentSrc + || element.src + || element.getAttribute('src') + || element.querySelector('source[src]')?.getAttribute('src') + || '' + } + + function isDirectMediaUrl(rawUrl) { + if (!rawUrl) return false + + try { + const url = new URL(rawUrl, location.href) + if (!/^https?:$/i.test(url.protocol)) return false + + return DIRECT_MEDIA_EXTENSION.test(url.pathname) + || /\/get_files\/file$/i.test(url.pathname) + || url.searchParams.has('file_id') + } catch { + return false + } + } + + function encodeUrlSafeBase64(value) { + const bytes = new TextEncoder().encode(value) + let binary = '' + for (const byte of bytes) { + binary += String.fromCharCode(byte) + } + return btoa(binary).replace(/\//g, '_').replace(/\+/g, '-').replace(/=+$/g, '') + } + + function looksLikeVideo(url, element) { + if (element?.tagName === 'VIDEO') return true + + try { + const pathname = new URL(url, location.href).pathname + return /\.(mp4|m4v|mkv|webm|mov)$/i.test(pathname) + } catch { + return false + } + } + + function buildDesktopMpvUrl(url, title) { + const encodedUrl = encodeUrlSafeBase64(url) + const encodedTitle = title ? encodeUrlSafeBase64(title) : '' + const query = encodedTitle ? `?v_title=${encodedTitle}` : '' + return `mpv-handler://play/${encodedUrl}/${query}` + } + + function buildAndroidMpvUrl(url, element) { + try { + const parsed = new URL(url, location.href) + const scheme = parsed.protocol.replace(':', '') || 'https' + const intentPath = `${parsed.host}${parsed.pathname}${parsed.search}` + const mimeType = looksLikeVideo(url, element) ? 'video/*' : 'audio/*' + return `intent://${intentPath}#Intent;scheme=${scheme};package=is.xyz.mpv;action=android.intent.action.VIEW;type=${mimeType};end` + } catch { + return url + } + } + + function buildExternalPlayerUrl(url, title, element) { + if (/Android/i.test(navigator.userAgent || '')) { + return buildAndroidMpvUrl(url, element) + } + + return buildDesktopMpvUrl(url, title) + } + + function openInExternalPlayer(url, element) { + const now = Date.now() + if (url === lastOpenedUrl && now - lastOpenedAt < RECENT_OPEN_WINDOW_MS) { + return + } + + lastOpenedUrl = url + lastOpenedAt = now + + const title = document.title || '' + const targetUrl = buildExternalPlayerUrl(url, title, element) + location.assign(targetUrl) + } + + function shouldInterceptCurrentPage() { + return isAllowedHost(location.hostname) + } + + function rejectPlaybackRedirect() { + return Promise.reject(new DOMException('Playback redirected to external player', 'AbortError')) + } + + function interceptElementPlayback(element) { + if (!shouldInterceptCurrentPage()) return false + + const mediaUrl = getMediaUrlFromElement(element) + if (!isDirectMediaUrl(mediaUrl)) return false + + try { element.pause() } catch {} + try { element.removeAttribute('src') } catch {} + try { element.load() } catch {} + + openInExternalPlayer(mediaUrl, element) + return true + } + + const originalPlay = HTMLMediaElement.prototype.play + HTMLMediaElement.prototype.play = function play(...args) { + if (interceptElementPlayback(this)) { + return rejectPlaybackRedirect() + } + + return originalPlay.apply(this, args) + } + + document.addEventListener('click', (event) => { + if (!shouldInterceptCurrentPage()) return + + const target = event.target instanceof Element ? event.target.closest('a[href]') : null + if (!target) return + + const href = target.getAttribute('href') || '' + if (!isDirectMediaUrl(href)) return + + event.preventDefault() + event.stopPropagation() + openInExternalPlayer(href) + }, true) +})() \ No newline at end of file diff --git a/scripts/README.md b/scripts/README.md new file mode 100644 index 0000000..829871e --- /dev/null +++ b/scripts/README.md @@ -0,0 +1,155 @@ +[English][readme-en] | [简体中文][readme-zh-hans] | [繁体中文][readme-zh-hant] + +[readme-en]: https://github.com/akiirui/mpv-handler/blob/main/README.md +[readme-zh-hans]: https://github.com/akiirui/mpv-handler/blob/main/README.zh-Hans.md +[readme-zh-hant]: https://github.com/akiirui/mpv-handler/blob/main/README.zh-Hant.md + +# mpv handler + +A protocol handler for **mpv**, written by Rust. + +Use **mpv** and **yt-dlp** to play video and music from the websites. + +Please use it with userscript: + +[![play-with-mpv][badges-play-with-mpv]][greasyfork-play-with-mpv] + +## Breaking changes + +### [v0.4.0][v0.4.0] + +To avoid conflicts with the `mpv://` protocol provided by mpv. + +> mpv://... +> +> mpv protocol. This is used for starting mpv from URL handler. The protocol is stripped and the rest is passed to the player as a normal open argument. Only safe network protocols are allowed to be opened this way. + +Scheme `mpv://` and `mpv-debug://` are deprecated, use `mpv-handler://` and `mpv-handler-debug://`. + +**Require manual intervention** + +#### Windows + +Run `handler-uninstall.bat` to uninstall deprecated protocol, and run `handler-install.bat` to install new procotol. + +#### Linux + +If you installed manually, please repeat the manual installation process. + +## Protocol + +![](share/proto.png) + +### Scheme + +- `mpv-handler`: Run mpv-handler without console window +- `mpv-handler-debug`: Run mpv-handler with console window to view outputs and errors + +### Plugins + +- `play`: Use mpv player to play video + +### Encoded Data + +Use [URL-safe base64][rfc-base64-url] to encode the URL or TITLE. + +Replace `/` to `_`, `+` to `-` and remove padding `=`. + +Example (JavaScript): + +```javascript +let data = btoa("https://www.youtube.com/watch?v=Ggkn2f5e-IU"); +let safe = data.replace(/\//g, "_").replace(/\+/g, "-").replace(/\=/g, ""); +``` + +### Parameters (Optional) + +``` +cookies = [ www.domain.com.txt ] +profile = [ default, low-latency, etc... ] +quality = [ 2160p, 1440p, 1080p, 720p, 480p, 360p ] +v_codec = [ av01, vp9, h265, h264 ] +v_title = [ Encoded Title ] +subfile = [ Encoded URL ] +startat = [ Seconds (float) ] +referrer = [ Encoded URL ] +``` + +## Installation + +### Linux + +#### Arch Linux + +[![mpv-handler][badges-aur]][download-aur] +[![mpv-handler-git][badges-aur-git]][download-aur-git] + +#### Manual installation + +1. Download [latest Linux release][download-linux] +2. Unzip the archive +3. Copy `mpv-handler` to `$HOME/.local/bin` +4. Copy `mpv-handler.desktop` to `$HOME/.local/share/applications/` +5. Copy `mpv-handler-debug.desktop` to `$HOME/.local/share/applications/` +6. Set executable permission for binary + + - ``` + $ chmod +x $HOME/.local/bin/mpv-handler + ``` + +7. Register xdg-mime (thanks for the [linuxuprising][linuxuprising] reminder) + + - ``` + $ xdg-mime default mpv-handler.desktop x-scheme-handler/mpv-handler + $ xdg-mime default mpv-handler-debug.desktop x-scheme-handler/mpv-handler-debug + ``` + +8. Add `$HOME/.local/bin` to your environment variable `PATH` +9. **Optional**: _Copy `config.toml` to `$HOME/.config/mpv-handler/config.toml` and configure_ + +### Windows + +Windows users need to install manually. + +#### Manual installation + +1. Download [latest Windows release][download-windows] +2. Unzip the archive to the directory you want +3. Run `handler-install.bat` to register protocol handler +4. Edit `config.toml` and set `mpv` and `ytdl` path + +## Configuration + +```toml +mpv = "/usr/bin/mpv" +# Optional, Type: String +# The path of mpv executable binary +# Default value: +# - Linux: mpv +# - Windows: mpv.com + +ytdl = "/usr/bin/yt-dlp" +# Optional, Type: String +# The path of yt-dlp executable binary + +proxy = "http://example.com:8080" +# Optional, Type: String +# HTTP(S) proxy server address + +# For Windows users: +# - The path can be "C:\\folder\\some.exe" or "C:/folder/some.exe" +# - The path target is an executable binary file, not a directory +``` + +[v0.4.0]: https://github.com/akiirui/mpv-handler/releases/tag/v0.4.0 +[rfc-base64-url]: https://datatracker.ietf.org/doc/html/rfc4648#section-5 +[badges-aur-git]: https://img.shields.io/aur/version/mpv-handler-git?style=for-the-badge&logo=archlinux&label=mpv-handler-git +[badges-aur]: https://img.shields.io/aur/version/mpv-handler?style=for-the-badge&logo=archlinux&label=mpv-handler +[badges-play-with-mpv]: https://img.shields.io/greasyfork/v/416271?style=for-the-badge&logo=greasyfork&label=play-with-mpv +[download-aur-git]: https://aur.archlinux.org/packages/mpv-handler-git/ +[download-aur]: https://aur.archlinux.org/packages/mpv-handler/ +[download-linux]: https://github.com/akiirui/mpv-handler/releases/latest/download/mpv-handler-linux-amd64.zip +[download-macos]: https://github.com/akiirui/mpv-handler/releases/latest/download/mpv-handler-macos-amd64.zip +[download-windows]: https://github.com/akiirui/mpv-handler/releases/latest/download/mpv-handler-windows-amd64.zip +[greasyfork-play-with-mpv]: https://greasyfork.org/scripts/416271-play-with-mpv +[linuxuprising]: https://www.linuxuprising.com/2021/07/open-youtube-and-more-videos-from-your.html diff --git a/scripts/README.zh-Hans.md b/scripts/README.zh-Hans.md new file mode 100644 index 0000000..892643e --- /dev/null +++ b/scripts/README.zh-Hans.md @@ -0,0 +1,155 @@ +[English][readme-en] | [简体中文][readme-zh-hans] | [繁体中文][readme-zh-hant] + +[readme-en]: https://github.com/akiirui/mpv-handler/blob/main/README.md +[readme-zh-hans]: https://github.com/akiirui/mpv-handler/blob/main/README.zh-Hans.md +[readme-zh-hant]: https://github.com/akiirui/mpv-handler/blob/main/README.zh-Hant.md + +# mpv handler + +一个 **mpv** 的协议处理程序,使用 Rust 编写。 + +使用 **mpv** 和 **yt-dlp** 播放网站上的视频与音乐。 + +请配合用户脚本使用: + +[![play-with-mpv][badges-play-with-mpv]][greasyfork-play-with-mpv] + +## 重大变更 + +### [v0.4.0][v0.4.0] + +为了避免与 mpv 所提供的 `mpv://` 协议冲突。 + +> mpv://... +> +> mpv protocol. This is used for starting mpv from URL handler. The protocol is stripped and the rest is passed to the player as a normal open argument. Only safe network protocols are allowed to be opened this way. + +协议 `mpv://` 和 `mpv-debug://` 已弃用, 请使用 `mpv-handler://` 和 `mpv-handler-debug://`. + +**需要手动干预** + +#### Windows + +运行 `handler-uninstall.bat` 卸载已弃用的协议, 然后运行 `handler-install.bat` 安装新的协议. + +#### Linux + +如果你是手动安装的,请重新执行一遍手动安装流程。 + +## 协议 + +![](share/proto.png) + +### 协议名 + +- `mpv-handler`: 在没有命令行窗口的情况下运行 mpv-handler +- `mpv-handler-debug`: 在有命令行窗口的情况下运行 mpv-handler 以便于查看输出和错误 + +### 插件 / Plugins + +- `play`: 使用 mpv 播放视频 + +### 编码数据 / Encoded Data + +使用 [URL 安全的 base64][rfc-base64-url] 编码网址或标题。 + +替换 `/` 至 `_`, `+` 至 `-` 并且删除填充的 `=`。 + +示例 (JavaScript): + +```javascript +let data = btoa("https://www.youtube.com/watch?v=Ggkn2f5e-IU"); +let safe = data.replace(/\//g, "_").replace(/\+/g, "-").replace(/\=/g, ""); +``` + +### 参数 / Parameters (可选) + +``` +cookies = [ www.domain.com.txt ] +profile = [ default, low-latency, etc... ] +quality = [ 2160p, 1440p, 1080p, 720p, 480p, 360p ] +v_codec = [ av01, vp9, h265, h264 ] +v_title = [ Encoded Title ] +subfile = [ Encoded URL ] +startat = [ Seconds (float) ] +referrer = [ Encoded URL ] +``` + +## 安装 + +### Linux + +#### Arch Linux + +[![mpv-handler][badges-aur]][download-aur] +[![mpv-handler-git][badges-aur-git]][download-aur-git] + +#### 手动安装 + +1. 下载 [最新的 Linux 压缩包][download-linux] +2. 解压缩压缩包 +3. 复制 `mpv-handler` 至 `$HOME/.local/bin` +4. 复制 `mpv-handler.desktop` 至 `$HOME/.local/share/applications/` +5. 复制 `mpv-handler-debug.desktop` 至 `$HOME/.local/share/applications/` +6. 为二进制文件设置可执行权限 + + - ``` + $ chmod +x $HOME/.local/bin/mpv-handler + ``` + +7. 注册 xdg-mime(感谢 [linuxuprising][linuxuprising] 的提醒) + + - ``` + $ xdg-mime default mpv-handler.desktop x-scheme-handler/mpv-handler + $ xdg-mime default mpv-handler-debug.desktop x-scheme-handler/mpv-handler-debug + ``` + +8. 添加 `$HOME/.local/bin` 到环境变量 `PATH` +9. **可选**: _复制 `config.toml` 至 `$HOME/.config/mpv-handler/config.toml` 并配置_ + +### Windows + +Windows 用户目前只能手动安装。 + +#### 手动安装 + +1. 下载 [最新的 Windows 压缩包][download-windows] +2. 解压缩档案到你想要的位置 +3. 运行 `handler-install.bat` 注册协议处理程序 +4. 编辑 `config.toml` 设置 `mpv` 和 `ytdl` 的路径 + +## 配置 + +```toml +mpv = "/usr/bin/mpv" +# 可选,类型:字符串 +# mpv 可执行文件的路径 +# 默认值: +# - Linux: mpv +# - Windows: mpv.com + +ytdl = "/usr/bin/yt-dlp" +# 可选,类型:字符串 +# yt-dlp 可执行文件的路径 + +proxy = "http://example.com:8080" +# 可选,类型:字符串 +# HTTP(S) 代理服务器的地址 + +# 对于 Windows 用户: +# - 路径格式可以是 "C:\\folder\\some.exe",也可以是 "C:/folder/some.exe" +# - 路径的目标是可执行二进制文件,而不是目录 +``` + +[v0.4.0]: https://github.com/akiirui/mpv-handler/releases/tag/v0.4.0 +[rfc-base64-url]: https://datatracker.ietf.org/doc/html/rfc4648#section-5 +[badges-aur-git]: https://img.shields.io/aur/version/mpv-handler-git?style=for-the-badge&logo=archlinux&label=mpv-handler-git +[badges-aur]: https://img.shields.io/aur/version/mpv-handler?style=for-the-badge&logo=archlinux&label=mpv-handler +[badges-play-with-mpv]: https://img.shields.io/greasyfork/v/416271?style=for-the-badge&logo=greasyfork&label=play-with-mpv +[download-aur-git]: https://aur.archlinux.org/packages/mpv-handler-git/ +[download-aur]: https://aur.archlinux.org/packages/mpv-handler/ +[download-linux]: https://github.com/akiirui/mpv-handler/releases/latest/download/mpv-handler-linux-amd64.zip +[download-macos]: https://github.com/akiirui/mpv-handler/releases/latest/download/mpv-handler-macos-amd64.zip +[download-windows]: https://github.com/akiirui/mpv-handler/releases/latest/download/mpv-handler-windows-amd64.zip +[greasyfork-play-with-mpv]: https://greasyfork.org/scripts/416271-play-with-mpv +[linuxuprising]: https://www.linuxuprising.com/2021/07/open-youtube-and-more-videos-from-your.html diff --git a/scripts/README.zh-Hant.md b/scripts/README.zh-Hant.md new file mode 100644 index 0000000..f1c49c1 --- /dev/null +++ b/scripts/README.zh-Hant.md @@ -0,0 +1,155 @@ +[English][readme-en] | [簡體中文][readme-zh-hans] | [繁體中文][readme-zh-hant] + +[readme-en]: https://github.com/akiirui/mpv-handler/blob/main/README.md +[readme-zh-hans]: https://github.com/akiirui/mpv-handler/blob/main/README.zh-Hans.md +[readme-zh-hant]: https://github.com/akiirui/mpv-handler/blob/main/README.zh-Hant.md + +# mpv handler + +一個 **mpv** 的協議處理程序,使用 Rust 編寫。 + +使用 **mpv** 和 **yt-dlp** 播放網站上的視頻與音樂。 + +請配合用戶腳本使用: + +[![play-with-mpv][badges-play-with-mpv]][greasyfork-play-with-mpv] + +## 重大變更 + +### [v0.4.0][v0.4.0] + +爲了避免與 mpv 所提供的 `mpv://` 協議衝突。 + +> mpv://... +> +> mpv protocol. This is used for starting mpv from URL handler. The protocol is stripped and the rest is passed to the player as a normal open argument. Only safe network protocols are allowed to be opened this way. + +協議 `mpv://` 和 `mpv-debug://` 已棄用, 請使用 `mpv-handler://` 和 `mpv-handler-debug://`. + +**需要手動干預** + +#### Windows + +運行 `handler-uninstall.bat` 卸載已棄用的協議, 然後運行 `handler-install.bat` 安裝新的協議. + +#### Linux + +如果你是手動安裝的,請重新執行一遍手動安裝流程。 + +## 協議 + +![](share/proto.png) + +### 協議名 + +- `mpv-handler`: 在沒有命令行窗口的情況下運行 mpv-handler +- `mpv-handler-debug`: 在有命令行窗口的情況下運行 mpv-handler 以便於查看輸出和錯誤 + +### 插件 / Plugins + +- `play`: 使用 mpv 播放視頻 + +### 編碼數據 / Encoded Data + +使用 [URL 安全的 base64][rfc-base64-url] 編碼網址或標題。 + +替換 `/` 至 `_`, `+` 至 `-` 並且刪除填充的 `=`。 + +示例 (JavaScript): + +```javascript +let data = btoa("https://www.youtube.com/watch?v=Ggkn2f5e-IU"); +let safe = data.replace(/\//g, "_").replace(/\+/g, "-").replace(/\=/g, ""); +``` + +### 參數 / Parameters (可選) + +``` +cookies = [ www.domain.com.txt ] +profile = [ default, low-latency, etc... ] +quality = [ 2160p, 1440p, 1080p, 720p, 480p, 360p ] +v_codec = [ av01, vp9, h265, h264 ] +v_title = [ Encoded Title ] +subfile = [ Encoded URL ] +startat = [ Seconds (float) ] +referrer = [ Encoded URL ] +``` + +## 安裝 + +### Linux + +#### Arch Linux + +[![mpv-handler][badges-aur]][download-aur] +[![mpv-handler-git][badges-aur-git]][download-aur-git] + +#### 手動安裝 + +1. 下載 [最新的 Linux 壓縮包][download-linux] +2. 解壓縮壓縮包 +3. 複製 `mpv-handler` 至 `$HOME/.local/bin` +4. 複製 `mpv-handler.desktop` 至 `$HOME/.local/share/applications/` +5. 複製 `mpv-handler-debug.desktop` 至 `$HOME/.local/share/applications/` +6. 爲二進制文件設置可執行權限 + + - ``` + $ chmod +x $HOME/.local/bin/mpv-handler + ``` + +7. 註冊 xdg-mime(感謝 [linuxuprising][linuxuprising] 的提醒) + + - ``` + $ xdg-mime default mpv-handler.desktop x-scheme-handler/mpv-handler + $ xdg-mime default mpv-handler-debug.desktop x-scheme-handler/mpv-handler-debug + ``` + +8. 添加 `$HOME/.local/bin` 到環境變量 `PATH` +9. **可選**: _複製 `config.toml` 至 `$HOME/.config/mpv-handler/config.toml` 並配置_ + +### Windows + +Windows 用戶目前只能手動安裝。 + +#### 手動安裝 + +1. 下載 [最新的 Windows 壓縮包][download-windows] +2. 解壓縮檔案到你想要的位置 +3. 運行 `handler-install.bat` 註冊協議處理程序 +4. 編輯 `config.toml` 設置 `mpv` 和 `ytdl` 的路徑 + +## 配置 + +```toml +mpv = "/usr/bin/mpv" +# 可選,類型:字符串 +# mpv 可執行文件的路徑 +# 默認值: +# - Linux: mpv +# - Windows: mpv.com + +ytdl = "/usr/bin/yt-dlp" +# 可選,類型:字符串 +# yt-dlp 可執行文件的路徑 + +proxy = "http://example.com:8080" +# 可選,類型:字符串 +# HTTP(S) 代理服務器的地址 + +# 對於 Windows 用戶: +# - 路徑格式可以是 "C:\\folder\\some.exe",也可以是 "C:/folder/some.exe" +# - 路徑的目標是可執行二進制文件,而不是目錄 +``` + +[v0.4.0]: https://github.com/akiirui/mpv-handler/releases/tag/v0.4.0 +[rfc-base64-url]: https://datatracker.ietf.org/doc/html/rfc4648#section-5 +[badges-aur-git]: https://img.shields.io/aur/version/mpv-handler-git?style=for-the-badge&logo=archlinux&label=mpv-handler-git +[badges-aur]: https://img.shields.io/aur/version/mpv-handler?style=for-the-badge&logo=archlinux&label=mpv-handler +[badges-play-with-mpv]: https://img.shields.io/greasyfork/v/416271?style=for-the-badge&logo=greasyfork&label=play-with-mpv +[download-aur-git]: https://aur.archlinux.org/packages/mpv-handler-git/ +[download-aur]: https://aur.archlinux.org/packages/mpv-handler/ +[download-linux]: https://github.com/akiirui/mpv-handler/releases/latest/download/mpv-handler-linux-amd64.zip +[download-macos]: https://github.com/akiirui/mpv-handler/releases/latest/download/mpv-handler-macos-amd64.zip +[download-windows]: https://github.com/akiirui/mpv-handler/releases/latest/download/mpv-handler-windows-amd64.zip +[greasyfork-play-with-mpv]: https://greasyfork.org/scripts/416271-play-with-mpv +[linuxuprising]: https://www.linuxuprising.com/2021/07/open-youtube-and-more-videos-from-your.html diff --git a/scripts/config.toml b/scripts/config.toml new file mode 100644 index 0000000..05c7190 --- /dev/null +++ b/scripts/config.toml @@ -0,0 +1,18 @@ +#mpv = "C:\\path\\of\\mpv.com" +# Optional, Type: String +# The path of mpv executable binary +# Default value: +# - Linux: mpv +# - Windows: mpv.com + +#ytdl = "C:\\path\\of\\yt-dlp.exe" +# Optional, Type: String +# The path of yt-dlp executable binary + +#proxy = "http://example.com:8080" +# Optional, Type: String +# HTTP(S) proxy server address + +# For Windows users: +# - The path can be "C:\\folder\\some.exe" or "C:/folder/some.exe" +# - The path is an executable binary file, not a directory diff --git a/scripts/handler-install.bat b/scripts/handler-install.bat new file mode 100644 index 0000000..844b580 --- /dev/null +++ b/scripts/handler-install.bat @@ -0,0 +1,82 @@ +@echo OFF + +:: Unattended install flag. When set, the script will not require user input. +set unattended=no +if "%1"=="/u" set unattended=yes + +:: Make sure this is Windows Vista or later +call :ensure_vista + +:: Make sure the script is running as admin +call :ensure_admin + +:: Get mpv.exe location +call :check_binary + +:: Add registry +call :add_verbs + +:die + if not [%1] == [] echo %~1 + if [%unattended%] == [yes] exit 1 + pause + exit 1 + +:ensure_admin + :: 'openfiles' is just a commmand that is present on all supported Windows + :: versions, requires admin privileges and has no side effects, see: + :: https://stackoverflow.com/questions/4051883/batch-script-how-to-check-for-admin-rights + openfiles >nul 2>&1 + if errorlevel 1 ( + echo This batch script requires administrator privileges. + echo Right-click on handler-install.bat and select "Run as administrator". + call :die + ) + goto :EOF + +:ensure_vista + ver | find "XP" >nul + if not errorlevel 1 ( + echo This batch script only works on Windows Vista and later. To create file + echo associations on Windows XP, right click on a video file and use "Open with...". + call :die + ) + goto :EOF + +:check_binary + cd /D %~dp0 + set mpv_handler_conf=%cd%\config.toml + set mpv_handler_path=%cd%\mpv-handler.exe + set mpv_handler_debug_path=%cd%\mpv-handler-debug.exe + if not exist "%mpv_handler_conf%" call :die "Not found config.toml" + if not exist "%mpv_handler_path%" call :die "Not found mpv-handler.exe" + if not exist "%mpv_handler_debug_path%" call :die "Not found mpv-handler-debug.exe" + goto :EOF + +:reg + :: Wrap the reg command to check for errors + >nul reg %* + if errorlevel 1 set error=yes + if [%error%] == [yes] echo Error in command: reg %* + if [%error%] == [yes] call :die + goto :EOF + +:add_verbs + :: Add the mpv protocol to the registry + call :reg add "HKCR\mpv-handler" /d "URL:MPV Handler" /f + call :reg add "HKCR\mpv-handler" /v "Content Type" /d "application/x-mpv-handler" /f + call :reg add "HKCR\mpv-handler" /v "URL Protocol" /f + call :reg add "HKCR\mpv-handler\DefaultIcon" /d "\"%mpv_exe_path%\",1" /f + call :reg add "HKCR\mpv-handler\shell\open\command" /d "\"%mpv_handler_path%\" \"%%%%1\"" /f + + :: Add the mpv protocol to the registry + call :reg add "HKCR\mpv-handler-debug" /d "URL:MPV Handler Debug" /f + call :reg add "HKCR\mpv-handler-debug" /v "Content Type" /d "application/x-mpv-handler-debug" /f + call :reg add "HKCR\mpv-handler-debug" /v "URL Protocol" /f + call :reg add "HKCR\mpv-handler-debug\DefaultIcon" /d "\"%mpv_exe_path%\",1" /f + call :reg add "HKCR\mpv-handler-debug\shell\open\command" /d "\"%mpv_handler_debug_path%\" \"%%%%1\"" /f + + echo Successfully installed mpv-handler + echo Enjoy! + + goto :EOF diff --git a/scripts/handler-uninstall.bat b/scripts/handler-uninstall.bat new file mode 100644 index 0000000..963bab9 --- /dev/null +++ b/scripts/handler-uninstall.bat @@ -0,0 +1,64 @@ +@echo OFF + +:: Unattended install flag. When set, the script will not require user input. +set unattended=no +if "%1"=="/u" set unattended=yes + +:: Make sure this is Windows Vista or later +call :ensure_vista + +:: Make sure the script is running as admin +call :ensure_admin + +:: Delete registry +call :del_verbs + + + +:die + if not [%1] == [] echo %~1 + if [%unattended%] == [yes] exit 1 + pause + exit 1 + +:ensure_admin + :: 'openfiles' is just a commmand that is present on all supported Windows + :: versions, requires admin privileges and has no side effects, see: + :: https://stackoverflow.com/questions/4051883/batch-script-how-to-check-for-admin-rights + openfiles >nul 2>&1 + if errorlevel 1 ( + echo This batch script requires administrator privileges. + echo Right-click on handler-uninstall.bat and select "Run as administrator". + call :die + ) + goto :EOF + +:ensure_vista + ver | find "XP" >nul + if not errorlevel 1 ( + echo This batch script only works on Windows Vista and later. To create file + echo associations on Windows XP, right click on a video file and use "Open with...". + call :die + ) + goto :EOF + +:reg + :: Wrap the reg command to check for errors + >nul reg %* + if errorlevel 1 set error=yes + if [%error%] == [yes] echo Error in command: reg %* + if [%error%] == [yes] call :die + goto :EOF + +:del_verbs + :: Delete deprecated mpv and mpv-debug protocol + call :reg delete "HKCR\mpv" /f + call :reg delete "HKCR\mpv-debug" /f + + :: Delete protocol + call :reg delete "HKCR\mpv-handler" /f + call :reg delete "HKCR\mpv-handler-debug" /f + + echo Successfully uninstalled mpv-handler + + goto :EOF diff --git a/scripts/install-mpv-handler.ps1 b/scripts/install-mpv-handler.ps1 new file mode 100644 index 0000000..3c0989b --- /dev/null +++ b/scripts/install-mpv-handler.ps1 @@ -0,0 +1,229 @@ +#Requires -Version 5.1 +#Requires -RunAsAdministrator + +[CmdletBinding()] +param( + [string]$InstallRoot, + [string]$IconPath, + [switch]$KeepExistingProtocolKeys +) + +Set-StrictMode -Version Latest +$ErrorActionPreference = 'Stop' + +function Resolve-ExistingFile { + param( + [Parameter(Mandatory = $true)] + [string]$BasePath, + + [Parameter(Mandatory = $true)] + [string]$FileName + ) + + $resolvedPath = Join-Path -Path $BasePath -ChildPath $FileName + if (-not (Test-Path -LiteralPath $resolvedPath -PathType Leaf)) { + throw "Required file not found: $resolvedPath`nInstallRoot must point at the extracted mpv-handler folder that contains config.toml, mpv-handler.exe, and mpv-handler-debug.exe." + } + + return (Resolve-Path -LiteralPath $resolvedPath).Path +} + +function Get-UsageExample { + return @" +Example usage: + powershell -ExecutionPolicy Bypass -File .\scripts\install-mpv-handler.ps1 -InstallRoot 'C:\path\to\mpv-handler' + +Or from an elevated PowerShell session: + & 'C:\Forgejo\API-MediaPlayer\scripts\install-mpv-handler.ps1' -InstallRoot 'C:\path\to\mpv-handler' + +If config.toml, mpv-handler.exe, and mpv-handler-debug.exe are in the same folder as this script, +you can run it without -InstallRoot. +"@ +} + +function Test-InstallRootContents { + param( + [string]$CandidatePath + ) + + if (-not $CandidatePath) { + return $false + } + + if (-not (Test-Path -LiteralPath $CandidatePath -PathType Container)) { + return $false + } + + return ( + (Test-Path -LiteralPath (Join-Path -Path $CandidatePath -ChildPath 'config.toml') -PathType Leaf) -and + (Test-Path -LiteralPath (Join-Path -Path $CandidatePath -ChildPath 'mpv-handler.exe') -PathType Leaf) -and + (Test-Path -LiteralPath (Join-Path -Path $CandidatePath -ChildPath 'mpv-handler-debug.exe') -PathType Leaf) + ) +} + +function Get-DefaultInstallRoot { + if (Test-InstallRootContents -CandidatePath $PSScriptRoot) { + return (Resolve-Path -LiteralPath $PSScriptRoot).Path + } + + return $null +} + +function Assert-InstallRoot { + param( + [string]$CandidatePath + ) + + if (-not $CandidatePath) { + $defaultInstallRoot = Get-DefaultInstallRoot + if ($defaultInstallRoot) { + return $defaultInstallRoot + } + + throw "InstallRoot is required.`n$(Get-UsageExample)" + } + + if (-not (Test-Path -LiteralPath $CandidatePath -PathType Container)) { + throw "InstallRoot does not exist or is not a folder: $CandidatePath`n$(Get-UsageExample)" + } + + $resolved = (Resolve-Path -LiteralPath $CandidatePath).Path + + if (Test-Path -LiteralPath (Join-Path -Path $resolved -ChildPath 'package.json') -PathType Leaf) { + throw "InstallRoot appears to be this repo, not the extracted mpv-handler folder: $resolved`n$(Get-UsageExample)" + } + + return $resolved +} + +function Get-MpvPathFromConfig { + param( + [Parameter(Mandatory = $true)] + [string]$ConfigPath + ) + + if (-not (Test-Path -LiteralPath $ConfigPath -PathType Leaf)) { + return $null + } + + $raw = Get-Content -LiteralPath $ConfigPath -Raw + $match = [regex]::Match($raw, '(?m)^\s*mpv\s*=\s*"(?[^"]+)"\s*$') + if (-not $match.Success) { + return $null + } + + $candidate = $match.Groups['path'].Value.Trim() + if (-not $candidate) { + return $null + } + + if ([System.IO.Path]::IsPathRooted($candidate) -and (Test-Path -LiteralPath $candidate -PathType Leaf)) { + return (Resolve-Path -LiteralPath $candidate).Path + } + + try { + $command = Get-Command -Name $candidate -ErrorAction Stop + return $command.Source + } catch { + return $null + } +} + +function Remove-ProtocolKey { + param( + [Parameter(Mandatory = $true)] + [string]$SchemeName + ) + + $classesRoot = [Microsoft.Win32.Registry]::ClassesRoot + try { + $classesRoot.DeleteSubKeyTree($SchemeName, $false) + } catch { + } +} + +function Register-Protocol { + param( + [Parameter(Mandatory = $true)] + [string]$SchemeName, + + [Parameter(Mandatory = $true)] + [string]$Description, + + [Parameter(Mandatory = $true)] + [string]$ContentType, + + [Parameter(Mandatory = $true)] + [string]$HandlerExecutable, + + [Parameter(Mandatory = $true)] + [string]$EffectiveIconPath + ) + + $classesRoot = [Microsoft.Win32.Registry]::ClassesRoot + $schemeKey = $classesRoot.CreateSubKey($SchemeName) + if (-not $schemeKey) { + throw "Failed to create registry key for $SchemeName" + } + + try { + $schemeKey.SetValue('', $Description, [Microsoft.Win32.RegistryValueKind]::String) + $schemeKey.SetValue('Content Type', $ContentType, [Microsoft.Win32.RegistryValueKind]::String) + $schemeKey.SetValue('URL Protocol', '', [Microsoft.Win32.RegistryValueKind]::String) + + $defaultIconKey = $schemeKey.CreateSubKey('DefaultIcon') + try { + $defaultIconKey.SetValue('', ('"{0}",1' -f $EffectiveIconPath), [Microsoft.Win32.RegistryValueKind]::String) + } finally { + $defaultIconKey.Dispose() + } + + $commandKey = $schemeKey.CreateSubKey('shell\open\command') + try { + $commandKey.SetValue('', ('"{0}" "%1"' -f $HandlerExecutable), [Microsoft.Win32.RegistryValueKind]::String) + } finally { + $commandKey.Dispose() + } + } finally { + $schemeKey.Dispose() + } +} + +if ([System.Environment]::OSVersion.Platform -ne [System.PlatformID]::Win32NT) { + throw 'This installer is only for Windows.' +} + +$installRootPath = Assert-InstallRoot -CandidatePath $InstallRoot +$configPath = Resolve-ExistingFile -BasePath $installRootPath -FileName 'config.toml' +$handlerPath = Resolve-ExistingFile -BasePath $installRootPath -FileName 'mpv-handler.exe' +$handlerDebugPath = Resolve-ExistingFile -BasePath $installRootPath -FileName 'mpv-handler-debug.exe' + +$effectiveIconPath = if ($IconPath) { + if (-not (Test-Path -LiteralPath $IconPath -PathType Leaf)) { + throw "IconPath does not exist: $IconPath" + } + (Resolve-Path -LiteralPath $IconPath).Path +} else { + Get-MpvPathFromConfig -ConfigPath $configPath +} + +if (-not $effectiveIconPath) { + $effectiveIconPath = $handlerPath +} + +if (-not $KeepExistingProtocolKeys) { + Remove-ProtocolKey -SchemeName 'mpv' + Remove-ProtocolKey -SchemeName 'mpv-debug' + Remove-ProtocolKey -SchemeName 'mpv-handler' + Remove-ProtocolKey -SchemeName 'mpv-handler-debug' +} + +Register-Protocol -SchemeName 'mpv-handler' -Description 'URL:MPV Handler' -ContentType 'application/x-mpv-handler' -HandlerExecutable $handlerPath -EffectiveIconPath $effectiveIconPath +Register-Protocol -SchemeName 'mpv-handler-debug' -Description 'URL:MPV Handler Debug' -ContentType 'application/x-mpv-handler-debug' -HandlerExecutable $handlerDebugPath -EffectiveIconPath $effectiveIconPath + +Write-Host 'Successfully installed mpv-handler protocol registration.' -ForegroundColor Green +Write-Host ('InstallRoot: {0}' -f $installRootPath) +Write-Host ('Handler: {0}' -f $handlerPath) +Write-Host ('Debug Handler: {0}' -f $handlerDebugPath) +Write-Host ('Icon: {0}' -f $effectiveIconPath) +Write-Host 'You can now test an mpv-handler:// URL from the browser.' \ No newline at end of file diff --git a/scripts/mpv-handler-debug.exe b/scripts/mpv-handler-debug.exe new file mode 100644 index 0000000000000000000000000000000000000000..9330be539579d5f6c11519779948bef8764ab220 GIT binary patch literal 545792 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≪Isx_ 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 Z;B)vH7HnAXU;)Fz84E!Pe-slF0ss$R{n-Ej literal 0 HcmV?d00001 diff --git a/scripts/mpv-handler.exe b/scripts/mpv-handler.exe new file mode 100644 index 0000000000000000000000000000000000000000..98559b6461da623d40f39d2730348e176788e9cb GIT binary patch literal 545792 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○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
s>m-k)|IN|^A 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 z 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%0D($u`<)ZD~^ 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%0A3_Dtx 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 import('./pages/SettingsPage')) +const DevErrorPanel = lazy(() => import('./components/DevErrorPanel')) + +const VIDEO_URL_PATTERN = /\.(m3u8|mp4|webm|ogv|mov|mkv|avi|wmv)$/i +const AUDIO_URL_PATTERN = /\.(mp3|m4a|aac|flac|wav|ogg|opus|oga|wma)$/i + +type MediaInfo = { + mimeType?: string + isVideo?: boolean +} + +type ExternalPlayerTarget = { + href: string + appName: string +} + +function isPlayableMediaTrack(track: Track) { + const mimeType = normalizeMimeForPlaybackCheck(track.mimeType) + if (track.isVideo) return true + if (mimeType.startsWith('audio/') || mimeType.startsWith('video/')) return true + if (mimeType.includes('mpegurl')) return true + if (VIDEO_URL_PATTERN.test(track.url)) return true + if (AUDIO_URL_PATTERN.test(track.url)) return true + return false +} + +function normalizeMimeForPlaybackCheck(mimeType?: string) { + return (mimeType || '').trim().toLowerCase() +} + +function encodeUrlSafeBase64(value: string) { + const bytes = new TextEncoder().encode(value) + let binary = '' + for (const byte of bytes) { + binary += String.fromCharCode(byte) + } + return btoa(binary).replace(/\//g, '_').replace(/\+/g, '-').replace(/=+$/g, '') +} + +function buildVlcStreamUrl(track: Track) { + const url = `vlc-x-callback://x-callback-url/stream?url=${encodeURIComponent(track.url)}` + const fileName = (track.title || '').trim() + if (!fileName) return url + return `${url}&filename=${encodeURIComponent(fileName)}` +} + +function buildAndroidMpvIntentUrl(track: Track) { + try { + const url = new URL(track.url) + const scheme = url.protocol.replace(':', '') || 'https' + const intentPath = `${url.host}${url.pathname}${url.search}` + const mimeType = track.isVideo || normalizeMimeForPlaybackCheck(track.mimeType).startsWith('video/') + ? 'video/*' + : normalizeMimeForPlaybackCheck(track.mimeType).startsWith('audio/') + ? 'audio/*' + : 'video/any' + + return `intent://${intentPath}#Intent;scheme=${scheme};package=is.xyz.mpv;action=android.intent.action.VIEW;type=${mimeType};end` + } catch { + return track.url + } +} + +function buildDesktopMpvHandlerUrl(track: Track) { + const encodedUrl = encodeUrlSafeBase64(track.url) + const title = (track.title || '').trim() + const query = title ? `?v_title=${encodeUrlSafeBase64(title)}` : '' + return `mpv-handler://play/${encodedUrl}/${query}` +} + +function App() { + const initialUiPreferences = useMemo(() => loadUiPreferences(), []) + const [activePage, setActivePage] = useState('audio') + const [mobileSidebarOpen, setMobileSidebarOpen] = useState(false) + const [desktopSidebarOpen, setDesktopSidebarOpen] = useState(true) + const [libraryQuery, setLibraryQuery] = useState(initialUiPreferences.libraryQuery) + const [libraryDisplayMode, setLibraryDisplayMode] = useState(initialUiPreferences.libraryDisplayMode) + const [devOverlayEnabled, setDevOverlayEnabled] = useState(initialUiPreferences.devOverlayEnabled) + + const theme = useMemo(() => createTheme({ + palette: { + mode: 'dark', + primary: { main: '#1db954' }, + background: { default: '#0f1113', paper: '#151617' } + } + }), []) + + const mimeCacheRef = useRef>({}) + const mimeRequestCacheRef = useRef>>({}) + const playRequestAbortRef = useRef(null) + const lastBrowsePageRef = useRef(activePage === 'settings' ? 'audio' : activePage) + const userAgent = typeof navigator !== 'undefined' ? navigator.userAgent || '' : '' + const platform = typeof navigator !== 'undefined' ? navigator.platform || '' : '' + const maxTouchPoints = typeof navigator !== 'undefined' ? navigator.maxTouchPoints || 0 : 0 + const isIosPhone = /iPhone|iPod/i.test(userAgent) + const isIpad = /iPad/i.test(userAgent) || (/Mac/i.test(platform) && maxTouchPoints > 1) + const isAppleMobileOrTablet = isIosPhone || isIpad + const isAndroidMobileOrTablet = /Android/i.test(userAgent) + const isDesktopLayout = useMediaQuery(theme.breakpoints.up('md')) + + useEffect(() => { + return () => { + try { playRequestAbortRef.current?.abort() } catch {} + } + }, []) + + useEffect(() => { + if (activePage !== 'settings') { + lastBrowsePageRef.current = activePage + } + }, [activePage]) + + useEffect(() => { + saveUiPreferences({ libraryQuery }) + }, [libraryQuery]) + + const getPreferredExternalPlayer = useCallback((track: Track): ExternalPlayerTarget => { + if (isAppleMobileOrTablet) { + return { + href: buildVlcStreamUrl(track), + appName: 'VLC', + } + } + + if (isAndroidMobileOrTablet) { + return { + href: buildAndroidMpvIntentUrl(track), + appName: 'mpv', + } + } + + return { + href: buildDesktopMpvHandlerUrl(track), + appName: 'mpv', + } + }, [isAndroidMobileOrTablet, isAppleMobileOrTablet]) + + const openInPreferredExternalPlayer = useCallback((track: Track) => { + if (!isPlayableMediaTrack(track)) { + addDevLog({ + kind: 'debug', + category: 'playback', + message: 'Opening non-media file in browser tab', + details: { + trackId: track.id, + fileId: track.fileId, + mimeType: track.mimeType, + href: track.url, + } + }) + const openedWindow = window.open(track.url, '_blank', 'noopener,noreferrer') + if (!openedWindow) { + window.location.href = track.url + } + return + } + + const target = getPreferredExternalPlayer(track) + addDevLog({ + kind: 'debug', + category: 'playback', + message: `Opening track in ${target.appName}`, + details: { + trackId: track.id, + fileId: track.fileId, + mimeType: track.mimeType, + href: target.href, + appName: target.appName, + } + }) + window.location.href = target.href + }, [getPreferredExternalPlayer]) + + const fetchMediaInfo = useCallback(async (track: Track, signal?: AbortSignal): Promise => { + try { + let res = await fetch(track.url, { method: 'HEAD', mode: 'cors', signal }) + if (!res.ok) { + res = await fetch(track.url, { method: 'GET', mode: 'cors', headers: { Range: 'bytes=0-0' }, signal }) + } + + const mimeType = res.headers.get('content-type') || undefined + const isVideo = !!mimeType && (mimeType.startsWith('video/') || mimeType.includes('mpegurl')) + const mediaInfo = { mimeType, isVideo: isVideo || undefined } + mimeCacheRef.current[track.url] = mediaInfo + return mediaInfo + } catch (error: any) { + if (error?.name === 'AbortError') throw error + return {} + } + }, []) + + const resolveMediaInfo = useCallback(async (track: Track, signal?: AbortSignal): Promise => { + if (track.mimeType || track.isVideo !== undefined) { + return { mimeType: track.mimeType, isVideo: track.isVideo } + } + + const cachedInfo = mimeCacheRef.current[track.url] + if (cachedInfo) return cachedInfo + + if (VIDEO_URL_PATTERN.test(track.url)) { + const inferredInfo = { isVideo: true } + mimeCacheRef.current[track.url] = inferredInfo + return inferredInfo + } + + if (signal) { + return fetchMediaInfo(track, signal) + } + + const pendingRequest = mimeRequestCacheRef.current[track.url] + if (pendingRequest) return pendingRequest + + const request = (async () => { + try { + return await fetchMediaInfo(track) + } finally { + delete mimeRequestCacheRef.current[track.url] + } + })() + + mimeRequestCacheRef.current[track.url] = request + return request + }, [fetchMediaInfo]) + + const playNow = useCallback(async (track: Track) => { + try { playRequestAbortRef.current?.abort() } catch {} + const controller = new AbortController() + playRequestAbortRef.current = controller + + const cachedInfo = track.mimeType || track.isVideo !== undefined + ? { mimeType: track.mimeType, isVideo: track.isVideo } + : mimeCacheRef.current[track.url] || (VIDEO_URL_PATTERN.test(track.url) ? { isVideo: true } : undefined) + + let resolved = cachedInfo ? { ...track, ...cachedInfo } : track + + if (!cachedInfo) { + try { + const mediaInfo = await resolveMediaInfo(track, controller.signal) + if (controller.signal.aborted) return + resolved = { ...track, ...mediaInfo } + } catch (error: any) { + if (error?.name === 'AbortError') return + addDevLog({ + kind: 'debug', + category: 'playback', + message: 'Media info resolution failed', + details: { + trackId: track.id, + fileId: track.fileId, + name: error?.name, + message: error?.message ?? String(error), + } + }) + } + } + + openInPreferredExternalPlayer(resolved) + }, [openInPreferredExternalPlayer, resolveMediaInfo]) + + const toggleSidebar = useCallback(() => { + if (isDesktopLayout) { + setDesktopSidebarOpen((open) => !open) + return + } + setMobileSidebarOpen((open) => !open) + }, [isDesktopLayout]) + + const closeSidebar = useCallback(() => setMobileSidebarOpen(false), []) + const openSettings = useCallback(() => setActivePage('settings'), []) + const closeSettings = useCallback(() => setActivePage(lastBrowsePageRef.current), []) + const handleDevOverlayEnabledChange = useCallback((enabled: boolean) => { + setDevOverlayEnabled(enabled) + saveUiPreferences({ devOverlayEnabled: enabled }) + }, []) + const handleLibraryDisplayModeChange = useCallback((mode: 'grid' | 'table') => { + setLibraryDisplayMode(mode) + saveUiPreferences({ libraryDisplayMode: mode }) + }, []) + const handleSidebarNavigate = useCallback((id: string) => { + if (id === 'settings') setActivePage('settings') + else setActivePage(id as MediaSection) + + if (!isDesktopLayout) { + setMobileSidebarOpen(false) + } + }, [isDesktopLayout]) + + return ( + + + + +
+ + + + + + {activePage === 'settings' + ? ( + + + + ) + : ( + + )} + + + + {devOverlayEnabled ? ( + + + + ) : null} + + + + ) +} + +export default App diff --git a/src/api/hydrusClient.ts b/src/api/hydrusClient.ts new file mode 100644 index 0000000..72e7cc3 --- /dev/null +++ b/src/api/hydrusClient.ts @@ -0,0 +1,698 @@ +export type ServerConfig = { + id: string + name?: string + host: string + port?: string | number + apiKey?: string + ssl?: boolean + forceApiKeyInQuery?: boolean +} + +export type ConnectivityResult = { + ok: boolean + message: string + status?: number | null + searchOk?: boolean + rangeSupported?: boolean +} + +export type HydrusMediaInfo = { + mimeType?: string + isVideo?: boolean +} + +export type HydrusFileDetails = HydrusMediaInfo & { + fileId: number + extension?: string + sizeBytes?: number + width?: number + height?: number + durationMs?: number + tags: string[] +} + +export function makeId() { + return Date.now().toString() + '-' + Math.random().toString(36).slice(2, 9) +} + +export type HydrusSearchTag = string | HydrusSearchTags +export type HydrusSearchTags = HydrusSearchTag[] + +const SYSTEM_PREDICATE_PATTERN = /^(system:[^<>!=]+?)\s*(<=|>=|!=|=|<|>)\s*(.+)$/i +const SEARCH_TOKEN_PATTERN = /(?:[^\s"]+:"(?:[^"\\]|\\.)*"|"(?:[^"\\]|\\.)*"|\S+)/g + +function createAbortError() { + const error = new Error('Aborted') + error.name = 'AbortError' + return error +} + +export class HydrusClient { + cfg: ServerConfig + + constructor(cfg: Partial = {}) { + this.cfg = { + id: (cfg.id as string) || makeId(), + name: cfg.name || '', + host: cfg.host || '', + port: cfg.port, + apiKey: cfg.apiKey, + ssl: !!cfg.ssl, + forceApiKeyInQuery: !!cfg.forceApiKeyInQuery + } + } + + baseUrl(): string { + if (!this.cfg.host) throw new Error('Hydrus host not defined') + let url = this.cfg.host.trim().replace(/\/+$/, '') + if (!url.startsWith('http://') && !url.startsWith('https://')) { + url = (this.cfg.ssl ? 'https://' : 'http://') + url + } + try { + const parsed = new URL(url) + if (this.cfg.port && !parsed.port) { + parsed.port = String(this.cfg.port) + } + // preserve any configured pathname (e.g., if Hydrus is hosted under /hydrus) + const path = parsed.pathname && parsed.pathname !== '/' ? parsed.pathname.replace(/\/$/, '') : '' + return parsed.origin + path + } catch (e) { + // fallback + return url + (this.cfg.port ? `:${this.cfg.port}` : '') + } + } + + getHeaders(includeApiKeyInHeader = true, includeContentType = false) { + const headers: Record = {} + if (includeContentType) headers['Content-Type'] = 'application/json' + if (this.cfg.apiKey && includeApiKeyInHeader) headers['Hydrus-Client-API-Access-Key'] = this.cfg.apiKey + return headers + } + + private appendApiKeyToUrl(url: string) { + if (!this.cfg.apiKey) return url + const separator = url.includes('?') ? '&' : '?' + return `${url}${separator}Hydrus-Client-API-Access-Key=${encodeURIComponent(this.cfg.apiKey)}` + } + + private buildApiUrl(path: string, params: Record = {}, includeApiKeyInQuery = false) { + const url = new URL(`${this.baseUrl()}${path}`) + + for (const [key, value] of Object.entries(params)) { + if (value === undefined) continue + url.searchParams.set(key, String(value)) + } + + if (includeApiKeyInQuery && this.cfg.apiKey) { + url.searchParams.set('Hydrus-Client-API-Access-Key', this.cfg.apiKey) + } + + return url.toString() + } + + private async fetchWithAuthRetry(url: string, init: RequestInit = {}) { + const requestInit: RequestInit = { mode: 'cors', ...init } + let response = await fetch(url, requestInit) + + if ((response.status === 401 || response.status === 403) && this.cfg.apiKey && !(this.cfg.forceApiKeyInQuery ?? false)) { + response = await fetch(this.appendApiKeyToUrl(url), { + ...requestInit, + headers: undefined, + }) + } + + return response + } + + private async getFileMetadataPayload(fileId: number, signal?: AbortSignal) { + const url = this.buildApiUrl('/get_files/file_metadata', { file_id: fileId }, this.cfg.forceApiKeyInQuery ?? false) + const headers = this.getHeaders(!(this.cfg.forceApiKeyInQuery ?? false)) + const res = await this.fetchWithAuthRetry(url, { method: 'GET', headers, signal }) + + if (res.status === 404) { + console.warn('[HydrusClient] getFileMetadata 404', { url, status: res.status }) + return null + } + + if (!res.ok) { + console.warn('[HydrusClient] getFileMetadata Response Error', { status: res.status, statusText: res.statusText }) + return null + } + + return res.json().catch(() => null) + } + + private getFileMetadataEntry(data: any, fileId: number) { + if (!data || typeof data !== 'object') return null + + if (data.file_metadata && typeof data.file_metadata === 'object' && !Array.isArray(data.file_metadata)) { + const direct = data.file_metadata[String(fileId)] + if (direct && typeof direct === 'object') return direct + } + + if (Array.isArray(data.file_metadata)) { + const found = data.file_metadata.find((item: any) => String(item?.file_id) === String(fileId)) + if (found && typeof found === 'object') return found + } + + if (String((data as any).file_id) === String(fileId)) return data + return null + } + + private normalizeMimeType(value: string): string | undefined { + const normalized = value.trim().toLowerCase() + if (!normalized) return undefined + + if (normalized.includes('mpegurl') || normalized.includes('m3u8')) return 'application/vnd.apple.mpegurl' + + const directMimeMatch = normalized.match(/(?:video|audio|application)\/[a-z0-9.+-]+/) + if (directMimeMatch) return directMimeMatch[0] + + const knownMimeMap: Array<[string, string]> = [ + ['quicktime', 'video/quicktime'], + ['matroska', 'video/x-matroska'], + ['mkv', 'video/x-matroska'], + ['mp4', normalized.includes('audio') ? 'audio/mp4' : 'video/mp4'], + ['webm', normalized.includes('audio') ? 'audio/webm' : 'video/webm'], + ['mpeg', normalized.includes('audio') ? 'audio/mpeg' : 'video/mpeg'], + ['avi', 'video/x-msvideo'], + ['wmv', 'video/x-ms-wmv'], + ['mov', 'video/quicktime'], + ['ogg', normalized.includes('video') ? 'video/ogg' : 'audio/ogg'], + ['mp3', 'audio/mpeg'], + ['m4a', 'audio/mp4'], + ['aac', 'audio/aac'], + ['flac', 'audio/flac'], + ['wav', 'audio/wav'], + ] + + const match = knownMimeMap.find(([token]) => normalized.includes(token)) + return match ? match[1] : undefined + } + + private extractMediaInfoFromMetadata(data: any, fileId: number): HydrusMediaInfo { + const metadata = this.getFileMetadataEntry(data, fileId) || data + if (!metadata || typeof metadata !== 'object') return {} + + let width = 0 + let height = 0 + let frameCount = 0 + let hasDuration = false + const mimeCandidates: string[] = [] + + const visit = (value: any, keyHint = '') => { + if (value == null) return + + if (typeof value === 'string') { + const lowerKey = keyHint.toLowerCase() + if (lowerKey.includes('mime') || lowerKey.includes('filetype') || lowerKey.includes('container') || lowerKey.includes('format')) { + mimeCandidates.push(value) + } + return + } + + if (typeof value === 'number') { + const lowerKey = keyHint.toLowerCase() + if (lowerKey === 'width') width = Math.max(width, value) + else if (lowerKey === 'height') height = Math.max(height, value) + else if (lowerKey.includes('frame')) frameCount = Math.max(frameCount, value) + else if (lowerKey.includes('duration')) hasDuration = hasDuration || value > 0 + return + } + + if (typeof value === 'boolean') { + if (keyHint.toLowerCase().includes('video') && value) mimeCandidates.push('video') + if (keyHint.toLowerCase().includes('audio') && value) mimeCandidates.push('audio') + return + } + + if (Array.isArray(value)) { + for (const item of value) visit(item, keyHint) + return + } + + if (typeof value === 'object') { + for (const [childKey, childValue] of Object.entries(value)) { + visit(childValue, childKey) + } + } + } + + visit(metadata) + + for (const candidate of mimeCandidates) { + const mimeType = this.normalizeMimeType(candidate) + if (mimeType) { + return { + mimeType, + isVideo: mimeType.startsWith('video/') || mimeType === 'application/vnd.apple.mpegurl' + } + } + const lower = candidate.toLowerCase() + if (lower.includes('video')) return { isVideo: true } + if (lower.includes('audio')) return { isVideo: false } + } + + if ((width > 0 || height > 0) && (frameCount > 1 || hasDuration)) return { isVideo: true } + if (hasDuration) return { isVideo: false } + + return {} + } + + private extractTagsFromMetadata(data: any, fileId: number): string[] { + if (!data) return [] + + try { + if (data.file_metadata && typeof data.file_metadata === 'object' && data.file_metadata[String(fileId)]) { + const meta = data.file_metadata[String(fileId)] + if (Array.isArray(meta.tags)) return meta.tags + + if (meta.service_keys_to_tags && typeof meta.service_keys_to_tags === 'object') { + const merged: string[] = [] + for (const value of Object.values(meta.service_keys_to_tags)) { + if (Array.isArray(value)) merged.push(...value) + else if (value && typeof value === 'object' && Array.isArray((value as any).tags)) merged.push(...(value as any).tags) + } + if (merged.length) return Array.from(new Set(merged)) + } + + if (meta.service_names_to_tags && typeof meta.service_names_to_tags === 'object') { + const merged: string[] = [] + for (const value of Object.values(meta.service_names_to_tags)) { + if (Array.isArray(value)) merged.push(...value) + else if (value && typeof value === 'object' && Array.isArray((value as any).tags)) merged.push(...(value as any).tags) + } + if (merged.length) return Array.from(new Set(merged)) + } + } + + if (Array.isArray(data.tags)) return data.tags + if (Array.isArray(data.file_tags)) return data.file_tags + + if (Array.isArray(data.file_metadata)) { + const found = data.file_metadata.find((item: any) => String(item?.file_id) === String(fileId)) + if (found) { + if (Array.isArray(found.tags)) return found.tags + if (found.service_keys_to_tags && typeof found.service_keys_to_tags === 'object') { + const merged: string[] = [] + for (const value of Object.values(found.service_keys_to_tags)) { + if (Array.isArray(value)) merged.push(...value) + else if (value && typeof value === 'object' && Array.isArray((value as any).tags)) merged.push(...(value as any).tags) + } + if (merged.length) return Array.from(new Set(merged)) + } + } + } + + const foundArrays: string[][] = [] + const walk = (obj: any) => { + if (!obj || typeof obj !== 'object') return + if (Array.isArray(obj)) { + if (obj.length > 0 && obj.every((item) => typeof item === 'string')) { + foundArrays.push(obj as string[]) + return + } + for (const entry of obj) walk(entry) + return + } + for (const value of Object.values(obj)) { + if (Array.isArray(value)) { + if (value.length > 0 && value.every((item) => typeof item === 'string')) foundArrays.push(value as string[]) + else for (const entry of value) walk(entry) + } else if (value && typeof value === 'object') { + walk(value) + } + } + } + + walk(data) + if (foundArrays.length) { + const flattened = ([] as string[]).concat(...foundArrays) + return Array.from(new Set(flattened)) + } + } catch { + // fall through + } + + return [] + } + + private extractFileDetailsFromMetadata(data: any, fileId: number): HydrusFileDetails { + const metadata = this.getFileMetadataEntry(data, fileId) || data || {} + const mediaInfo = this.extractMediaInfoFromMetadata(data, fileId) + const tags = this.extractTagsFromMetadata(data, fileId) + + let extension: string | undefined + let sizeBytes: number | undefined + let width: number | undefined + let height: number | undefined + let durationMs: number | undefined + + const visit = (value: any, keyHint = '') => { + if (value == null) return + const lowerKey = keyHint.toLowerCase() + + if (typeof value === 'string') { + if (!extension && (lowerKey === 'ext' || lowerKey === 'extension')) { + extension = value.replace(/^\./, '').trim().toLowerCase() || undefined + } + + if (!extension && (lowerKey.includes('filename') || lowerKey === 'name')) { + const match = value.match(/\.([a-z0-9]{1,10})$/i) + if (match) extension = match[1].toLowerCase() + } + + return + } + + if (typeof value === 'number') { + if ((lowerKey === 'size' || lowerKey === 'file_size' || lowerKey === 'num_bytes' || lowerKey === 'bytes') && value > 0) { + sizeBytes = Math.max(sizeBytes || 0, value) + } else if (lowerKey === 'width' && value > 0) { + width = Math.max(width || 0, value) + } else if (lowerKey === 'height' && value > 0) { + height = Math.max(height || 0, value) + } else if ((lowerKey.includes('duration') || lowerKey === 'ms') && value > 0) { + durationMs = Math.max(durationMs || 0, value) + } + return + } + + if (Array.isArray(value)) { + for (const item of value) visit(item, keyHint) + return + } + + if (typeof value === 'object') { + for (const [childKey, childValue] of Object.entries(value)) { + visit(childValue, childKey) + } + } + } + + visit(metadata) + + return { + fileId, + ...mediaInfo, + extension, + sizeBytes, + width, + height, + durationMs, + tags, + } + } + + private cleanSearchTag(value: HydrusSearchTag | undefined | null): HydrusSearchTag | null { + if (!value) return null + if (typeof value === 'string') { + const trimmed = value.trim() + if (!trimmed) return null + return /^system:/i.test(trimmed) ? this.normalizeSystemPredicate(trimmed) : trimmed + } + if (Array.isArray(value)) { + const cleaned = value + .map((item) => this.cleanSearchTag(item)) + .filter((item): item is HydrusSearchTag => item !== null) + return cleaned.length ? cleaned : null + } + return null + } + + private normalizeSystemPredicate(value: string) { + const trimmed = value.trim().replace(/\s+/g, ' ') + const match = trimmed.match(SYSTEM_PREDICATE_PATTERN) + if (!match) return trimmed + + const [, left, operator, right] = match + return `${left.trim()} ${operator} ${right.trim()}` + } + + private buildSearchTags(searchableText: string | HydrusSearchTags | undefined | null): HydrusSearchTags { + const tags: HydrusSearchTags = [] + if (!searchableText) return tags + + const seen = new Set() + + const pushValue = (value: HydrusSearchTag | undefined | null) => { + const cleaned = this.cleanSearchTag(value) + if (!cleaned) return + const key = JSON.stringify(cleaned) + if (seen.has(key)) return + seen.add(key) + tags.push(cleaned) + } + + if (typeof searchableText === 'string') { + const s = searchableText.trim() + if (!s) return tags + + if (/^system:/i.test(s)) { + pushValue(this.normalizeSystemPredicate(s)) + return tags + } + + const tokens = s.match(SEARCH_TOKEN_PATTERN)?.filter(Boolean) ?? [] + const wildcardize = (tok: string) => (tok.includes('*') ? tok : `*${tok}*`) + + if (tokens.length === 1) { + const t = tokens[0] + if (t.includes(':')) { + // user explicitly used a namespace or special token + pushValue(t) + } else { + // match either as a plain tag OR as part of title (substring) + pushValue([t, `title:${wildcardize(t)}`]) + } + } else { + // multi-token: try a full-phrase title match OR per-token matches + if (!s.includes(':')) { + pushValue([s, `title:${wildcardize(s)}`]) + } + + for (const t of tokens) { + if (t.includes(':')) pushValue(t) + else pushValue([t, `title:${wildcardize(t)}`]) + } + } + } else { + for (const tag of searchableText) { + pushValue(tag) + } + } + + return tags + } + + async searchFiles(searchableText: string | HydrusSearchTags | null = '', resultsPerPage = 20, signal?: AbortSignal): Promise { + // If server configured to prefer query param key, omit key from header + const headers = this.getHeaders(!(this.cfg.forceApiKeyInQuery ?? false)) + + const tagsArr: HydrusSearchTags = this.buildSearchTags(searchableText) + tagsArr.push(this.normalizeSystemPredicate(`system:limit=${resultsPerPage}`)) + + const url = this.buildApiUrl('/get_files/search_files', { + tags: JSON.stringify(tagsArr), + return_file_ids: 'true' + }, this.cfg.forceApiKeyInQuery ?? false) + + let res: Response + try { + res = await this.fetchWithAuthRetry(url, { method: 'GET', headers, signal }) + } catch (err: any) { + if (err && err.name === 'AbortError') throw err + throw err + } + + if (res.status === 404) { + const text = await res.text().catch(() => '') + console.warn('[HydrusClient] searchFiles 404', { url, status: res.status, body: text }) + throw new Error(`Search failed (404): ${text ? text : 'Not Found'} (request: ${url}). Note: /get_files/search_files expects GET with a 'tags' query parameter. Avoid POST fallback as this endpoint may not accept POST.`) + } + + if (!res.ok) { + const text = await res.text().catch(() => '') + console.warn('[HydrusClient] searchFiles Response Error', { status: res.status, statusText: res.statusText, body: text }) + throw new Error(`Search failed (${res.status})${text ? ': ' + (text.length > 1000 ? text.slice(0, 1000) + '...' : text) : ''} (request: ${url})`) + } + + const data = await res.json() + if (Array.isArray(data)) return data as number[] + if (data && Array.isArray((data as any).file_ids)) return (data as any).file_ids + if (data && Array.isArray((data as any).results)) return (data as any).results + return [] + } + + getFileUrl(fileId: number, includeApiKeyInQuery = true) { + return this.buildApiUrl('/get_files/file', { file_id: fileId }, includeApiKeyInQuery) + } + + getThumbnailUrl(fileId: number, includeApiKeyInQuery = true) { + return this.buildApiUrl('/get_files/thumbnail', { file_id: fileId }, includeApiKeyInQuery) + } + + async testConnectivity(): Promise { + try { + // 1) Try a simple GET search with a small limit + const searchUrl = this.buildApiUrl('/get_files/search_files', { + tags: JSON.stringify([this.normalizeSystemPredicate('system:limit=1')]), + return_file_ids: 'true' + }, this.cfg.forceApiKeyInQuery ?? false) + + const headers = this.getHeaders(!(this.cfg.forceApiKeyInQuery ?? false)) + + let res = await fetch(searchUrl, { method: 'GET', headers, mode: 'cors' }) + + if ((res.status === 401 || res.status === 403) && this.cfg.apiKey && !(this.cfg.forceApiKeyInQuery ?? false)) { + // Auth required; report it + return { ok: false, message: `Authentication required (status ${res.status})`, status: res.status } + } + + if (res.status === 404) { + const text = await res.text().catch(() => '') + return { ok: false, message: `Search endpoint not found (404): ${text ? text : 'No response body'}`, status: 404 } + } + + if (!res.ok) return { ok: false, message: `Search request failed (status ${res.status})`, status: res.status } + + const json = await res.json() + const fileId = Array.isArray(json) && json.length > 0 ? json[0] : json?.file_ids?.[0] ?? null + + const result: ConnectivityResult = { ok: true, message: 'Connected (search OK)', status: res.status, searchOk: true } + + // 2) If we have a file, test range requests for streaming/seek + if (fileId) { + try { + // Try with header first + const fileUrl = `${this.baseUrl()}/get_files/file?file_id=${fileId}` + const headers2: Record = {} + if (this.cfg.apiKey && !(this.cfg.forceApiKeyInQuery ?? false)) headers2['Hydrus-Client-API-Access-Key'] = this.cfg.apiKey + headers2['Range'] = 'bytes=0-0' + + const rres = await fetch(fileUrl, { method: 'GET', headers: headers2, mode: 'cors' }) + if (rres.status === 206 || (rres.headers.get('accept-ranges') || '').toLowerCase() === 'bytes') { + result.rangeSupported = true + result.message += '; Range requests supported' + return result + } + + // Fallback: if header approach didn't yield 206, try query-param API key (useful for HTML audio tags) + if (this.cfg.apiKey) { + const qUrl = `${this.getFileUrl(fileId, true)}` + const rres2 = await fetch(qUrl, { method: 'GET', headers: { Range: 'bytes=0-0' }, mode: 'cors' }) + if (rres2.status === 206 || (rres2.headers.get('accept-ranges') || '').toLowerCase() === 'bytes') { + result.rangeSupported = true + result.message += '; Range requests supported (via query param)' + return result + } + } + + result.rangeSupported = false + result.message += '; Range request test failed (no 206)' + } catch (e: any) { + result.rangeSupported = false + result.message += `; Range test error: ${e?.message ?? String(e)}` + } + } else { + result.message += '; No files to test Range support' + } + + return result + } catch (err: any) { + const msg = err?.message ?? String(err) + // A TypeError commonly indicates network or CORS blocks in the browser + if (msg.includes('Failed to fetch') || msg.includes('NetworkError') || msg.includes('TypeError')) { + return { ok: false, message: `Network or CORS error: ${msg}` } + } + return { ok: false, message: `Error: ${msg}` } + } + } + + async getFileTags(fileId: number, signal?: AbortSignal): Promise { + const data = await this.getFileMetadataPayload(fileId, signal) + if (!data) return [] + return this.extractTagsFromMetadata(data, fileId) + } + + async getFileMediaInfo(fileId: number, signal?: AbortSignal): Promise { + const data = await this.getFileMetadataPayload(fileId, signal) + if (!data) return {} + return this.extractMediaInfoFromMetadata(data, fileId) + } + + async getFileDetails(fileId: number, signal?: AbortSignal): Promise { + const data = await this.getFileMetadataPayload(fileId, signal) + if (!data) return { fileId, tags: [] } + return this.extractFileDetailsFromMetadata(data, fileId) + } + + async getFilesTags(fileIds: number[], concurrency = 4, signal?: AbortSignal): Promise> { + const out: Record = {} + if (!fileIds || fileIds.length === 0) return out + + let idx = 0 + const workers = new Array(Math.min(concurrency, fileIds.length)).fill(null).map(async () => { + while (true) { + if (signal?.aborted) throw createAbortError() + + const i = idx + if (i >= fileIds.length) break + idx++ + const fid = fileIds[i] + try { + out[fid] = await this.getFileTags(fid, signal) + } catch (error: any) { + if (error?.name === 'AbortError') throw error + out[fid] = [] + } + } + }) + + await Promise.all(workers) + return out + } + + async getFilesMediaInfo(fileIds: number[], concurrency = 4, signal?: AbortSignal): Promise> { + const out: Record = {} + if (!fileIds || fileIds.length === 0) return out + + let idx = 0 + const workers = new Array(Math.min(concurrency, fileIds.length)).fill(null).map(async () => { + while (true) { + if (signal?.aborted) throw createAbortError() + + const i = idx + if (i >= fileIds.length) break + idx++ + const fid = fileIds[i] + try { + out[fid] = await this.getFileMediaInfo(fid, signal) + } catch (error: any) { + if (error?.name === 'AbortError') throw error + out[fid] = {} + } + } + }) + + await Promise.all(workers) + return out + } +} + +export function extractTitleFromTags(tags: string[] | null | undefined): string | null { + if (!tags || tags.length === 0) return null + const candidates: string[] = tags.filter((t) => /^title:/i.test(t)) + if (candidates.length === 0) return null + const values = candidates + .map((t) => { + const m = t.match(/^title:(.*)$/i) + return m ? m[1].replace(/_/g, ' ').trim() : '' + }) + .filter(Boolean) + if (values.length === 0) return null + // prefer the longest (most descriptive) title + values.sort((a, b) => b.length - a.length) + return values[0] +} + diff --git a/src/appPreferences.ts b/src/appPreferences.ts new file mode 100644 index 0000000..47b0c75 --- /dev/null +++ b/src/appPreferences.ts @@ -0,0 +1,47 @@ +import type { MediaSection } from './types' + +export type UiPreferences = { + devOverlayEnabled: boolean + libraryQuery: string + libraryDisplayMode: 'grid' | 'table' + librarySortBy: string + librarySortDirection: 'asc' | 'desc' + librarySectionViews: Partial> +} + +const STORAGE_KEY = 'api_media_player_ui_preferences_v1' + +const DEFAULT_UI_PREFERENCES: UiPreferences = { + devOverlayEnabled: true, + libraryQuery: '', + libraryDisplayMode: 'grid', + librarySortBy: 'artist', + librarySortDirection: 'asc', + librarySectionViews: {}, +} + +export function loadUiPreferences(): UiPreferences { + try { + const raw = localStorage.getItem(STORAGE_KEY) + if (!raw) return DEFAULT_UI_PREFERENCES + const parsed = JSON.parse(raw) as Partial + return { + ...DEFAULT_UI_PREFERENCES, + ...parsed, + } + } catch { + return DEFAULT_UI_PREFERENCES + } +} + +export function saveUiPreferences(preferences: Partial) { + try { + const nextPreferences = { + ...loadUiPreferences(), + ...preferences, + } + localStorage.setItem(STORAGE_KEY, JSON.stringify(nextPreferences)) + } catch { + // ignore persistence failures + } +} \ No newline at end of file diff --git a/src/components/DevErrorPanel.tsx b/src/components/DevErrorPanel.tsx new file mode 100644 index 0000000..eff527f --- /dev/null +++ b/src/components/DevErrorPanel.tsx @@ -0,0 +1,128 @@ +import React, { useEffect, useMemo, useState } from 'react' +import { Box, Button, Paper, Typography, List, ListItem, ListItemText, IconButton, Chip } from '@mui/material' +import CloseIcon from '@mui/icons-material/Close' +import ContentCopyIcon from '@mui/icons-material/ContentCopy' +import { addDevLog, clearDevLogs, getDevLogs, subscribeDevLogs, type DevLogItem } from '../debugLog' + +function formatLogItem(log: DevLogItem) { + return [ + `${log.kind} - ${new Date(log.time).toLocaleString()}`, + log.category ? `category: ${log.category}` : null, + `message: ${log.message}`, + log.source ? `source: ${log.source}` : null, + log.stack ? `stack:\n${log.stack}` : null, + log.details ? `details:\n${log.details}` : null, + ].filter(Boolean).join('\n') +} + +export default function DevErrorPanel() { + const [logs, setLogs] = useState(() => getDevLogs()) + const [open, setOpen] = useState(false) + const errorCount = useMemo(() => logs.filter((item) => item.kind !== 'debug').length, [logs]) + + const copyLog = async (log: DevLogItem) => { + const payload = formatLogItem(log) + try { + if (navigator.clipboard?.writeText) { + await navigator.clipboard.writeText(payload) + addDevLog({ kind: 'debug', category: 'dev-log-panel', message: 'Copied log entry', details: { copiedId: log.id } }) + return + } + } catch (error: any) { + addDevLog({ kind: 'error', category: 'dev-log-panel', message: 'Clipboard copy failed', details: { copiedId: log.id, name: error?.name, message: error?.message ?? String(error) } }) + } + + try { + const textarea = document.createElement('textarea') + textarea.value = payload + textarea.setAttribute('readonly', 'true') + textarea.style.position = 'fixed' + textarea.style.left = '-9999px' + document.body.appendChild(textarea) + textarea.select() + document.execCommand('copy') + textarea.remove() + addDevLog({ kind: 'debug', category: 'dev-log-panel', message: 'Copied log entry', details: { copiedId: log.id, fallback: true } }) + } catch (error: any) { + addDevLog({ kind: 'error', category: 'dev-log-panel', message: 'Clipboard fallback copy failed', details: { copiedId: log.id, name: error?.name, message: error?.message ?? String(error) } }) + } + } + + useEffect(() => { + return subscribeDevLogs((items) => { + setLogs(items) + if (items.length > 0) setOpen(true) + }) + }, []) + + useEffect(() => { + const onError = (e: ErrorEvent) => { + try { + const item = { kind: 'error' as const, category: 'window', message: e.message || 'Error', stack: (e.error && (e.error.stack || e.error.message)) || undefined, source: e.filename ? `${e.filename}:${e.lineno}:${e.colno}` : undefined } + addDevLog(item) + // also log to console for developer convenience + // eslint-disable-next-line no-console + console.error('[DevErrorPanel] window.error', item) + } catch (_) {} + } + + const onRejection = (e: PromiseRejectionEvent) => { + try { + const reason: any = e.reason + const item = { kind: 'unhandledrejection' as const, category: 'window', message: (reason && (reason.message || String(reason))) || 'Unhandled rejection', stack: reason && reason.stack ? String(reason.stack) : undefined } + addDevLog(item) + // eslint-disable-next-line no-console + console.error('[DevErrorPanel] unhandledrejection', item) + } catch (_) {} + } + + window.addEventListener('error', onError) + window.addEventListener('unhandledrejection', onRejection) + + return () => { + window.removeEventListener('error', onError) + window.removeEventListener('unhandledrejection', onRejection) + } + }, []) + + if (!import.meta.env.DEV) return null + + return ( + + + + + setOpen((v) => !v)} /> + setOpen((v) => !v)} /> + Dev Log Panel + + + + setOpen((v) => !v)} aria-label="toggle" sx={{ width: 32, height: 32 }}> + + + + + + {open && ( + + {logs.map((l) => ( + + + {l.message} + {l.category && {l.category}} + {l.source && {l.source}} + {l.stack && {l.stack}} + {l.details && {l.details}} + } /> + { void copyLog(l) }} sx={{ ml: 1, alignSelf: 'flex-start' }}> + + + + ))} + + )} + + + ) +} diff --git a/src/components/Header.tsx b/src/components/Header.tsx new file mode 100644 index 0000000..0fc4a46 --- /dev/null +++ b/src/components/Header.tsx @@ -0,0 +1,104 @@ +import React, { useState } from 'react' +import { AppBar, Toolbar, IconButton, Typography, Button, Menu, MenuItem, Box, Chip, TextField } from '@mui/material' +import MenuIcon from '@mui/icons-material/Menu' +import SettingsIcon from '@mui/icons-material/Settings' +import StorageIcon from '@mui/icons-material/Storage' +import { useServers } from '../context/ServersContext' + +type HeaderProps = { + onOpenSettings?: () => void + onToggleSidebar?: () => void + searchQuery?: string + onSearchQueryChange?: (value: string) => void + searchDisabled?: boolean +} + +export default function Header({ onOpenSettings, onToggleSidebar, searchQuery = '', onSearchQueryChange, searchDisabled = false }: HeaderProps) { + const { servers, activeServerId, setActiveServerId } = useServers() + const [anchor, setAnchor] = useState(null) + + const active = servers.find((s) => s.id === activeServerId) + const activeServerLabel = active ? active.name || active.host : 'No server configured' + + const handleOpen = (e: React.MouseEvent) => setAnchor(e.currentTarget) + const handleClose = () => setAnchor(null) + + return ( + + + onToggleSidebar && onToggleSidebar()} aria-label="menu" size="medium" sx={{ flexShrink: 0 }}> + + + + onSearchQueryChange && onSearchQueryChange(event.target.value)} + disabled={searchDisabled} + size="small" + placeholder="Search library" + sx={{ + flex: { xs: '1 1 calc(100% - 104px)', sm: 1 }, + minWidth: 0, + maxWidth: { sm: 520 }, + order: { xs: 1, sm: 0 }, + '& .MuiInputBase-input': { fontSize: { xs: 14, sm: 13 }, py: 0.9 }, + }} + /> + + onOpenSettings && onOpenSettings()} aria-label="settings" size="medium" sx={{ width: 40, height: 40, flexShrink: 0, order: { xs: 2, sm: 0 } }}> + + + + + + {active?.lastTest && active.lastTest.ok === false && ( + + )} + + {servers.length === 0 ? ( + No servers configured + ) : ( + servers.map((s) => ( + { + setActiveServerId(s.id) + handleClose() + }} + > + {s.name || s.host} + + )) + )} + { + handleClose() + onOpenSettings && onOpenSettings() + }} + > + Manage servers... + + + + + + ) +} diff --git a/src/components/Sidebar.tsx b/src/components/Sidebar.tsx new file mode 100644 index 0000000..0029efb --- /dev/null +++ b/src/components/Sidebar.tsx @@ -0,0 +1,118 @@ +import React from 'react' +import { Box, Drawer, List, ListItemButton, ListItemIcon, ListItemText, Typography, Divider } from '@mui/material' +import AudiotrackIcon from '@mui/icons-material/Audiotrack' +import MovieIcon from '@mui/icons-material/Movie' +import ImageIcon from '@mui/icons-material/Image' +import AppsIcon from '@mui/icons-material/Apps' +import LibraryMusicIcon from '@mui/icons-material/LibraryMusic' +import SettingsIcon from '@mui/icons-material/Settings' +import type { MediaSection } from '../types' + +export const drawerWidth = 240 + +type NavItem = { + id: MediaSection + label: string + icon: React.ReactNode +} + +const ITEMS: NavItem[] = [ + { id: 'all', label: 'All', icon: }, + { id: 'audio', label: 'Audio', icon: }, + { id: 'video', label: 'Video', icon: }, + { id: 'image', label: 'Image', icon: }, + { id: 'application', label: 'Applications', icon: }, +] + +export default function Sidebar({ + mobileOpen, + desktopOpen = true, + onMobileClose, + onNavigate, + activeId, +}: { + mobileOpen?: boolean + desktopOpen?: boolean + onMobileClose?: () => void + onNavigate?: (id: string) => void + activeId?: string +}) { + const handleNavigate = (id: string) => { + onNavigate?.(id) + onMobileClose?.() + } + + const content = ( + + + + H + + + Hydrus + + + + + + + {ITEMS.map((it) => ( + handleNavigate(it.id)} sx={{ borderRadius: 1, mb: 0.5 }}> + {it.icon} + + + ))} + + + + + + handleNavigate('settings')} sx={{ borderRadius: 1 }}> + + + + + + + + ) + + return ( + <> + theme.transitions.create('width', { + duration: theme.transitions.duration.standard, + easing: theme.transitions.easing.sharp, + }), + }} + > + theme.transitions.create('transform', { + duration: theme.transitions.duration.standard, + easing: theme.transitions.easing.sharp, + }), + }} + > + {content} + + + + {/* Temporary drawer for mobile */} + + {content} + + + ) +} diff --git a/src/context/ServersContext.tsx b/src/context/ServersContext.tsx new file mode 100644 index 0000000..49b03b9 --- /dev/null +++ b/src/context/ServersContext.tsx @@ -0,0 +1,144 @@ +import React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react' +import type { ServerConfig, ConnectivityResult } from '../api/hydrusClient' +import { HydrusClient, makeId } from '../api/hydrusClient' +import type { ServerSyncSummary } from '../types' + +const STORAGE_KEY = 'hydrus_servers_v1' +const ACTIVE_KEY = 'hydrus_active_id_v1' + +export type Server = ServerConfig & { + lastTest?: (ConnectivityResult & { timestamp: number }) | null + syncSummary?: ServerSyncSummary | null +} + +type ServersContextType = { + servers: Server[] + activeServerId: string | null + setActiveServerId: (id: string | null) => void + addServer: (s: Omit) => Server + updateServer: (id: string, patch: Partial) => void + removeServer: (id: string) => void + testServerById: (id: string) => Promise + testServerConfig: (cfg: Omit) => Promise +} + +const ServersContext = createContext(null) + +function loadServers(): Server[] { + try { + const raw = localStorage.getItem(STORAGE_KEY) + if (!raw) return [] + return JSON.parse(raw) as Server[] + } catch (e) { + return [] + } +} + +function saveServers(servers: Server[]) { + try { + localStorage.setItem(STORAGE_KEY, JSON.stringify(servers)) + } catch (e) { + // ignore + } +} + +export function ServersProvider({ children }: { children: React.ReactNode }) { + const [servers, setServers] = useState(() => loadServers()) + const [activeServerId, setActiveServerIdState] = useState(() => { + try { + return localStorage.getItem(ACTIVE_KEY) + } catch (e) { + return null + } + }) + + useEffect(() => saveServers(servers), [servers]) + + useEffect(() => { + if (!activeServerId && servers.length > 0) { + setActiveServerIdState(servers[0].id) + localStorage.setItem(ACTIVE_KEY, servers[0].id) + } + + // Seed a local server if none exist yet (user-provided default IP) + if (servers.length === 0) { + const seedHost = '192.168.1.128' + const seedPort = '45869' + const seedName = 'Local Hydrus (192.168.1.128)' + const id = makeId() + const srv: Server = { + id, + name: seedName, + host: seedHost, + port: seedPort, + apiKey: '', + ssl: false, + forceApiKeyInQuery: false, + lastTest: { ok: false, message: 'Unauthenticated (401). Add API key to test', status: 401, searchOk: false, rangeSupported: false, timestamp: Date.now() } + } + setServers([srv]) + setActiveServerIdState(id) + localStorage.setItem(STORAGE_KEY, JSON.stringify([srv])) + localStorage.setItem(ACTIVE_KEY, id) + } + }, []) + + const setActiveServerId = useCallback((id: string | null) => { + setActiveServerIdState(id) + if (id) localStorage.setItem(ACTIVE_KEY, id) + else localStorage.removeItem(ACTIVE_KEY) + }, []) + + const addServer = useCallback((s: Omit) => { + const id = makeId() + const srv: Server = { id, ...s, lastTest: null } + setServers((prev) => [...prev, srv]) + return srv + }, []) + + const updateServer = useCallback((id: string, patch: Partial) => { + setServers((prev) => prev.map((s) => (s.id === id ? { ...s, ...patch } : s))) + }, []) + + const removeServer = useCallback((id: string) => { + setServers((prev) => prev.filter((s) => s.id !== id)) + if (activeServerId === id) setActiveServerId(null) + }, [activeServerId, setActiveServerId]) + + const testServerById = useCallback(async (id: string) => { + const server = servers.find((s) => s.id === id) + if (!server) return { ok: false, message: 'Server not found' } as ConnectivityResult + const client = new HydrusClient(server) + const res = await client.testConnectivity() + updateServer(id, { lastTest: { ...res, timestamp: Date.now() } }) + return res + }, [servers, updateServer]) + + const testServerConfig = useCallback(async (cfg: Omit) => { + const client = new HydrusClient(cfg as ServerConfig) + return client.testConnectivity() + }, []) + + const value = useMemo(() => ({ + servers, + activeServerId, + setActiveServerId, + addServer, + updateServer, + removeServer, + testServerById, + testServerConfig, + }), [servers, activeServerId, setActiveServerId, addServer, updateServer, removeServer, testServerById, testServerConfig]) + + return ( + + {children} + + ) +} + +export function useServers() { + const ctx = useContext(ServersContext) + if (!ctx) throw new Error('useServers must be used within ServersProvider') + return ctx +} diff --git a/src/debugLog.ts b/src/debugLog.ts new file mode 100644 index 0000000..300dab7 --- /dev/null +++ b/src/debugLog.ts @@ -0,0 +1,62 @@ +import { makeId } from './api/hydrusClient' + +export type DevLogItem = { + id: string + time: number + kind: 'debug' | 'error' | 'unhandledrejection' + category?: string + message: string + stack?: string + source?: string + details?: string +} + +const MAX_LOGS = 200 +let logs: DevLogItem[] = [] +const listeners = new Set<(items: DevLogItem[]) => void>() + +function notify() { + for (const listener of listeners) listener(logs) +} + +function stringifyDetails(details: unknown) { + if (details == null) return undefined + if (typeof details === 'string') return details + + try { + return JSON.stringify(details, null, 2) + } catch { + return String(details) + } +} + +export function addDevLog(entry: Omit & { details?: unknown }) { + if (!import.meta.env.DEV) return + + const item: DevLogItem = { + id: makeId(), + time: Date.now(), + ...entry, + details: stringifyDetails(entry.details), + } + + logs = [item, ...logs].slice(0, MAX_LOGS) + notify() +} + +export function clearDevLogs() { + logs = [] + notify() +} + +export function getDevLogs() { + return logs +} + +export function subscribeDevLogs(listener: (items: DevLogItem[]) => void) { + listener(logs) + listeners.add(listener) + return () => { + listeners.delete(listener) + } +} \ No newline at end of file diff --git a/src/libraryCache.ts b/src/libraryCache.ts new file mode 100644 index 0000000..6582ada --- /dev/null +++ b/src/libraryCache.ts @@ -0,0 +1,99 @@ +import type { Track } from './types' + +type CacheServerDescriptor = { + id: string + host: string + port?: string | number + ssl?: boolean +} + +type PersistedTrack = Omit + +type LibraryCacheRecord = { + cacheKey: string + updatedAt: number + tracks: PersistedTrack[] + searchCache: Record +} + +export type LibraryCacheSnapshot = { + tracks: PersistedTrack[] + searchCache: Record +} + +const DATABASE_NAME = 'api-mediaplayer-library-cache' +const DATABASE_VERSION = 1 +const STORE_NAME = 'snapshots' +const MAX_TRACKS = 5000 +const MAX_SEARCHES = 250 + +export function buildLibraryCacheKey(servers: CacheServerDescriptor[]) { + return servers.map((server) => `${server.id}:${server.host}:${server.port ?? ''}:${server.ssl ? 'https' : 'http'}`).join('|') +} + +function openLibraryCacheDatabase() { + return new Promise((resolve, reject) => { + const request = indexedDB.open(DATABASE_NAME, DATABASE_VERSION) + + request.onupgradeneeded = () => { + const database = request.result + if (!database.objectStoreNames.contains(STORE_NAME)) { + database.createObjectStore(STORE_NAME, { keyPath: 'cacheKey' }) + } + } + + request.onsuccess = () => resolve(request.result) + request.onerror = () => reject(request.error ?? new Error('Failed to open library cache database')) + }) +} + +function withStore(mode: IDBTransactionMode, handler: (store: IDBObjectStore) => IDBRequest) { + return new Promise((resolve, reject) => { + openLibraryCacheDatabase() + .then((database) => { + const transaction = database.transaction(STORE_NAME, mode) + const store = transaction.objectStore(STORE_NAME) + const request = handler(store) + + request.onsuccess = () => resolve(request.result) + request.onerror = () => reject(request.error ?? new Error('IndexedDB request failed')) + + transaction.oncomplete = () => database.close() + transaction.onerror = () => reject(transaction.error ?? new Error('IndexedDB transaction failed')) + transaction.onabort = () => reject(transaction.error ?? new Error('IndexedDB transaction aborted')) + }) + .catch(reject) + }) +} + +export async function loadLibraryCache(cacheKey: string): Promise { + if (!cacheKey || typeof indexedDB === 'undefined') return null + + const record = await withStore('readonly', (store) => store.get(cacheKey)) + if (!record) return null + + return { + tracks: Array.isArray(record.tracks) ? record.tracks : [], + searchCache: record.searchCache && typeof record.searchCache === 'object' ? record.searchCache : {}, + } +} + +export async function saveLibraryCache(cacheKey: string, tracks: Track[], searchCache: Record) { + if (!cacheKey || typeof indexedDB === 'undefined') return + + const trimmedTracks = tracks + .filter((track) => track.serverId && track.fileId != null && track.url) + .slice(-MAX_TRACKS) + .map(({ id: _id, ...track }) => track) + + const trimmedSearchCache = Object.fromEntries(Object.entries(searchCache).slice(-MAX_SEARCHES)) + + const record: LibraryCacheRecord = { + cacheKey, + updatedAt: Date.now(), + tracks: trimmedTracks, + searchCache: trimmedSearchCache, + } + + await withStore('readwrite', (store) => store.put(record)) +} \ No newline at end of file diff --git a/src/main.tsx b/src/main.tsx new file mode 100644 index 0000000..5c94507 --- /dev/null +++ b/src/main.tsx @@ -0,0 +1,18 @@ +import React from 'react' +import { createRoot } from 'react-dom/client' +import App from './App' +import './styles.css' +import { registerServiceWorker, unregisterServiceWorker } from './serviceWorker' + +createRoot(document.getElementById('root') as HTMLElement).render( + + + +) + +if (import.meta.env.PROD) { + registerServiceWorker() +} else { + // In development, unregister service workers to avoid caching/fetch oddities while iterating + unregisterServiceWorker() +} diff --git a/src/mediaCache.ts b/src/mediaCache.ts new file mode 100644 index 0000000..261fb3c --- /dev/null +++ b/src/mediaCache.ts @@ -0,0 +1,27 @@ +const MEDIA_CACHE_NAME = 'api-mediaplayer-media-v1' +const MAX_MEDIA_CACHE_ITEMS = 12 + +async function trimMediaCache(cache: Cache) { + const keys = await cache.keys() + if (keys.length <= MAX_MEDIA_CACHE_ITEMS) return + + const overflow = keys.length - MAX_MEDIA_CACHE_ITEMS + for (let index = 0; index < overflow; index += 1) { + await cache.delete(keys[index]) + } +} + +export async function cacheMediaFile(url: string) { + if (!url || typeof caches === 'undefined') return false + + const cache = await caches.open(MEDIA_CACHE_NAME) + const existing = await cache.match(url) + if (existing) return true + + const response = await fetch(url, { method: 'GET', mode: 'cors' }).catch(() => null) + if (!response || !response.ok || response.status !== 200) return false + + await cache.put(url, response.clone()) + await trimMediaCache(cache) + return true +} diff --git a/src/pages/Library.tsx b/src/pages/Library.tsx new file mode 100644 index 0000000..215cddd --- /dev/null +++ b/src/pages/Library.tsx @@ -0,0 +1,1558 @@ +import React, { useEffect, useMemo, useRef, useState } from 'react' +import { Alert, Box, Button, Card, CardActionArea, CardContent, CardMedia, Chip, Dialog, DialogActions, DialogContent, DialogTitle, FormControl, Grid, InputLabel, MenuItem, Paper, Select, Tab, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, Tabs, Typography, useMediaQuery } from '@mui/material' +import { useTheme } from '@mui/material/styles' +import { useServers } from '../context/ServersContext' +import { HydrusClient, extractTitleFromTags, type HydrusFileDetails } from '../api/hydrusClient' +import { loadUiPreferences, saveUiPreferences } from '../appPreferences' +import { buildLibraryCacheKey, loadLibraryCache, saveLibraryCache } from '../libraryCache' +import type { HydrusSearchTags } from '../api/hydrusClient' +import type { MediaSection, Track } from '../types' + +const NO_IMAGE_DATA_URL = "data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='140'%3E%3Crect fill='%23eee' width='100%25' height='100%25'/%3E%3Ctext x='50%25' y='50%25' dominant-baseline='middle' text-anchor='middle' fill='%23666' font-family='Arial, sans-serif' font-size='20'%3ENo Image%3C/text%3E%3C/svg%3E" +const RESULTS_PAGE_SIZE = 36 +const SEARCH_FETCH_LIMIT = RESULTS_PAGE_SIZE * 5 +const INITIAL_SYSTEM_FETCH_LIMIT = RESULTS_PAGE_SIZE * 10 +const SEARCH_TEXT_SCAN_LIMIT = 2000 +const LONG_PRESS_DELAY_MS = 420 + +type Props = { + mediaSection: MediaSection + onPlayNow: (track: Track) => void | Promise + query: string + onQueryChange: (value: string) => void + displayModePreference: 'grid' | 'table' +} + +type LibraryView = 'tracks' | 'albums' | 'artists' | 'text' | 'data' +type DisplayMode = 'grid' | 'table' +type SortDirection = 'asc' | 'desc' +type TrackSortField = 'title' | 'artist' | 'album' | 'server' | 'fileId' +type EntrySortField = 'name' | 'count' +type SortField = TrackSortField | EntrySortField + +type SortOption = { + id: SortField + label: string +} + +const SECTION_CONFIG: Record }> = { + all: { + label: 'All Files', + views: [ + { id: 'tracks', label: 'All Files' }, + ], + }, + audio: { + label: 'Audio', + systemPredicate: 'system:filetype = audio', + views: [ + { id: 'tracks', label: 'Tracks' }, + { id: 'albums', label: 'Albums' }, + { id: 'artists', label: 'Artists' }, + ], + }, + video: { + label: 'Video', + systemPredicate: 'system:filetype = video', + views: [ + { id: 'tracks', label: 'Videos' }, + { id: 'albums', label: 'Albums' }, + { id: 'artists', label: 'Artists' }, + ], + }, + image: { + label: 'Image', + systemPredicate: 'system:filetype = image', + views: [ + { id: 'tracks', label: 'Images' }, + { id: 'albums', label: 'Albums' }, + ], + }, + application: { + label: 'Applications', + systemPredicate: 'system:filetype = application', + views: [ + { id: 'tracks', label: 'Applications' }, + { id: 'text', label: 'Text' }, + { id: 'data', label: 'Data' }, + ], + }, +} + +type AlbumEntry = { + name: string + servers: { serverId: string; count: number; thumbnail?: string }[] + totalCount: number +} + +const TRACK_SORT_OPTIONS: SortOption[] = [ + { id: 'artist', label: 'Artist' }, + { id: 'album', label: 'Album' }, + { id: 'title', label: 'Title' }, + { id: 'server', label: 'Server' }, + { id: 'fileId', label: 'File ID' }, +] + +const ENTRY_SORT_OPTIONS: SortOption[] = [ + { id: 'name', label: 'Name' }, + { id: 'count', label: 'Items' }, +] + +function compareText(left?: string | null, right?: string | null) { + return (left || '').localeCompare((right || ''), undefined, { numeric: true, sensitivity: 'base' }) +} + +function getTrackDisplayTitle(track: Track) { + return track.title?.trim() || (track.fileId != null ? `File ${track.fileId}` : 'Untitled') +} + +function sortTracks(tracks: Track[], sortBy: TrackSortField, sortDirection: SortDirection) { + const direction = sortDirection === 'asc' ? 1 : -1 + + return [...tracks].sort((left, right) => { + let comparison = 0 + + switch (sortBy) { + case 'artist': + comparison = compareText(left.artist, right.artist) + if (comparison === 0) comparison = compareText(left.album, right.album) + if (comparison === 0) comparison = compareText(getTrackDisplayTitle(left), getTrackDisplayTitle(right)) + break + case 'album': + comparison = compareText(left.album, right.album) + if (comparison === 0) comparison = compareText(left.artist, right.artist) + if (comparison === 0) comparison = compareText(getTrackDisplayTitle(left), getTrackDisplayTitle(right)) + break + case 'server': + comparison = compareText(left.serverName, right.serverName) + if (comparison === 0) comparison = compareText(getTrackDisplayTitle(left), getTrackDisplayTitle(right)) + break + case 'fileId': + comparison = (left.fileId || 0) - (right.fileId || 0) + if (comparison === 0) comparison = compareText(getTrackDisplayTitle(left), getTrackDisplayTitle(right)) + break + case 'title': + default: + comparison = compareText(getTrackDisplayTitle(left), getTrackDisplayTitle(right)) + if (comparison === 0) comparison = compareText(left.artist, right.artist) + break + } + + return comparison * direction + }) +} + +function sortEntries(entries: AlbumEntry[], sortBy: EntrySortField, sortDirection: SortDirection) { + const direction = sortDirection === 'asc' ? 1 : -1 + + return [...entries].sort((left, right) => { + let comparison = 0 + + if (sortBy === 'count') { + comparison = left.totalCount - right.totalCount + if (comparison === 0) comparison = compareText(left.name, right.name) + } else { + comparison = compareText(left.name, right.name) + if (comparison === 0) comparison = left.totalCount - right.totalCount + } + + return comparison * direction + }) +} + +function getDefaultSortField(view: LibraryView, hasArtistsView: boolean): SortField { + if (view === 'albums' || view === 'artists') return 'name' + return hasArtistsView ? 'artist' : 'title' +} + +function getStoredSectionView(section: MediaSection, views: Partial>) { + const candidate = views[section] + return SECTION_CONFIG[section].views.some((item) => item.id === candidate) ? candidate as LibraryView : 'tracks' +} + +function tokenizeSearchWords(value: string) { + return value + .toLocaleLowerCase() + .replace(/_/g, ' ') + .split(/[^a-z0-9]+/i) + .map((part) => part.trim()) + .filter(Boolean) +} + +function formatBytes(value?: number) { + if (!value || value <= 0) return null + const units = ['B', 'KB', 'MB', 'GB', 'TB'] + let size = value + let unitIndex = 0 + + while (size >= 1024 && unitIndex < units.length - 1) { + size /= 1024 + unitIndex += 1 + } + + return `${size >= 10 || unitIndex === 0 ? size.toFixed(0) : size.toFixed(1)} ${units[unitIndex]}` +} + +function formatDuration(value?: number) { + if (!value || value <= 0) return null + const totalSeconds = Math.round(value >= 1000 ? value / 1000 : value) + const minutes = Math.floor(totalSeconds / 60) + const seconds = totalSeconds % 60 + const hours = Math.floor(minutes / 60) + + if (hours > 0) { + return `${hours}:${String(minutes % 60).padStart(2, '0')}:${String(seconds).padStart(2, '0')}` + } + + return `${minutes}:${String(seconds).padStart(2, '0')}` +} + +function getTrackKindLabel(track: Track, fallbackLabel: string) { + if (track.mediaKind && track.mediaKind !== 'all') { + return SECTION_CONFIG[track.mediaKind]?.label || fallbackLabel + } + + const mimeType = (track.mimeType || '').toLowerCase() + if (track.isVideo || mimeType.startsWith('video/')) return 'Video' + if (mimeType.startsWith('audio/')) return 'Audio' + if (mimeType.startsWith('image/')) return 'Image' + if (mimeType.startsWith('text/')) return 'Text' + if (mimeType.startsWith('application/')) return 'Application' + return fallbackLabel +} + +export default function Library({ mediaSection, onPlayNow, query, onQueryChange, displayModePreference }: Props) { + const initialUiPreferences = useMemo(() => loadUiPreferences(), []) + const initialSectionViews = useMemo(() => initialUiPreferences.librarySectionViews as Partial>, [initialUiPreferences]) + const [results, setResults] = useState([]) + const [albums, setAlbums] = useState([]) + const [artists, setArtists] = useState([]) + const [sectionViews, setSectionViews] = useState>>(initialSectionViews) + const [view, setView] = useState(() => getStoredSectionView(mediaSection, initialSectionViews)) + const [sortBy, setSortBy] = useState(initialUiPreferences.librarySortBy as SortField) + const [sortDirection, setSortDirection] = useState(initialUiPreferences.librarySortDirection) + const [loading, setLoading] = useState(false) + const [error, setError] = useState(null) + const [visibleCount, setVisibleCount] = useState(RESULTS_PAGE_SIZE) + const theme = useTheme() + const isCompactTableLayout = useMediaQuery(theme.breakpoints.down('sm')) + + const { servers, updateServer } = useServers() + const hasServers = servers.length > 0 + const serverCacheKey = buildLibraryCacheKey(servers) + const serverSearchSignature = useMemo(() => servers.map((server) => [ + server.id, + server.name, + server.host, + server.port, + server.apiKey, + server.ssl, + server.forceApiKeyInQuery, + ].join('|')).join(','), [servers]) + const searchCacheRef = React.useRef>({}) + const trackCacheRef = React.useRef>({}) + const albumCacheRef = React.useRef>({}) + const artistCacheRef = React.useRef>({}) + const albumTracksRef = React.useRef>({}) + const searchAbortRef = useRef(null) + const playMetadataAbortRef = useRef(null) + const persistTimeoutRef = useRef(null) + const detailsAbortRef = useRef(null) + const longPressTimerRef = useRef(null) + const longPressTriggeredRef = useRef(false) + const [albumFilter, setAlbumFilter] = useState(null) + const [artistFilter, setArtistFilter] = useState(null) + const [detailsTrack, setDetailsTrack] = useState(null) + const [detailsData, setDetailsData] = useState(null) + const [detailsOpen, setDetailsOpen] = useState(false) + const [detailsLoading, setDetailsLoading] = useState(false) + const [detailsError, setDetailsError] = useState(null) + const syncingSectionViewRef = useRef(false) + const sectionConfig = SECTION_CONFIG[mediaSection] + const isAllSection = mediaSection === 'all' + const isTrackLikeView = view === 'tracks' || view === 'text' || view === 'data' + const hasAlbumsView = sectionConfig.views.some((item) => item.id === 'albums') + const hasArtistsView = sectionConfig.views.some((item) => item.id === 'artists') + const effectiveDisplayMode: DisplayMode = isAllSection ? 'table' : displayModePreference + const sortOptions = useMemo(() => isTrackLikeView ? TRACK_SORT_OPTIONS : ENTRY_SORT_OPTIONS, [isTrackLikeView]) + const queryWords = useMemo(() => tokenizeSearchWords(query), [query]) + + function extractNamespaceValue(tags: string[] | null | undefined, ns: string): string | null { + if (!tags || !Array.isArray(tags)) return null + const prefix = `${ns.toLowerCase()}:` + let bestValue = '' + + for (const tag of tags) { + if (typeof tag !== 'string') continue + if (!tag.toLowerCase().startsWith(prefix)) continue + + const value = tag.slice(prefix.length).replace(/_/g, ' ').trim() + if (value.length > bestValue.length) bestValue = value + } + + return bestValue || null + } + + function escapeHydrusSearchValue(value: string) { + return value.replace(/\\/g, '\\\\').replace(/"/g, '\\"') + } + + function buildNamespaceSearch(ns: 'album' | 'artist', value: string, matchMode: 'contains' | 'exact' = 'contains') { + const trimmed = value.trim() + if (!trimmed) return `${ns}:*` + const escapedValue = escapeHydrusSearchValue(trimmed) + return matchMode === 'exact' ? `${ns}:"${escapedValue}"` : `${ns}:"*${escapedValue}*"` + } + + function normalizeNamespaceValue(value?: string | null) { + return (value || '').trim().toLocaleLowerCase() + } + + function matchesMediaSection(track: Track, section: MediaSection) { + if (section === 'all') return true + if (track.mediaKind) return track.mediaKind === section + + const mimeType = (track.mimeType || '').toLowerCase() + if (section === 'video') return !!track.isVideo || mimeType.startsWith('video/') + if (section === 'audio') return (!track.isVideo && mimeType.startsWith('audio/')) || mimeType.includes('mpegurl') + if (section === 'image') return mimeType.startsWith('image/') + if (section === 'application') return mimeType.startsWith('application/') || mimeType.startsWith('text/') + return false + } + + function getApplicationSubtype(track: Track) { + const mimeType = (track.mimeType || '').toLowerCase() + if (!mimeType) return 'application' as const + + if ( + mimeType.startsWith('text/') || + mimeType.includes('pdf') || + mimeType.includes('rtf') || + mimeType.includes('epub') || + mimeType.includes('msword') || + mimeType.includes('wordprocessingml') || + mimeType.includes('presentation') + ) { + return 'text' as const + } + + if ( + mimeType.includes('json') || + mimeType.includes('xml') || + mimeType.includes('yaml') || + mimeType.includes('csv') || + mimeType.includes('spreadsheet') || + mimeType.includes('excel') || + mimeType.includes('sqlite') + ) { + return 'data' as const + } + + return 'application' as const + } + + function filterTracksForView(tracks: Track[], currentView: LibraryView) { + const sectionTracks = filterTracksForSection(tracks, mediaSection) + if (mediaSection !== 'application') return sectionTracks + if (currentView === 'text') return sectionTracks.filter((track) => getApplicationSubtype(track) === 'text') + if (currentView === 'data') return sectionTracks.filter((track) => getApplicationSubtype(track) === 'data') + return sectionTracks + } + + function filterTracksForSection(tracks: Track[], section: MediaSection) { + return tracks.filter((track) => matchesMediaSection(track, section)) + } + + function buildSectionSearchTags(baseQuery: string, namespace?: 'album' | 'artist'): HydrusSearchTags { + const tags: HydrusSearchTags = [] + const trimmedQuery = baseQuery.trim() + + if (sectionConfig.systemPredicate) { + tags.push(sectionConfig.systemPredicate) + } + + if (namespace) tags.push(buildNamespaceSearch(namespace, trimmedQuery)) + + return tags + } + + function matchesTrackSearch(track: Track, words: string[]) { + if (words.length === 0) return true + + const searchableValues = [ + getTrackDisplayTitle(track), + ...(track.tags || []), + ] + + const searchableWords = new Set(searchableValues.flatMap((value) => tokenizeSearchWords(value))) + return words.every((word) => searchableWords.has(word)) + } + + function getTrackExtension(track: Track, details?: HydrusFileDetails | null) { + if (details?.extension) return details.extension + const match = track.url.match(/\.([a-z0-9]{1,10})(?:[?#]|$)/i) + return match ? match[1].toLowerCase() : undefined + } + + function getTrackCacheKey(serverId?: string, fileId?: number) { + return serverId && fileId != null ? `${serverId}:${fileId}` : '' + } + + function cacheTracks(tracks: Track[]) { + for (const track of tracks) { + const cacheKey = getTrackCacheKey(track.serverId, track.fileId) + if (!cacheKey) continue + const existing = trackCacheRef.current[cacheKey] + trackCacheRef.current[cacheKey] = existing ? { ...existing, ...track } : { ...track } + } + + schedulePersistLibraryCache() + } + + function addTrackToAlbumCache(track: Track) { + if (!track.album) return + const cacheKey = getTrackCacheKey(track.serverId, track.fileId) + if (!cacheKey) return + + const currentTracks = albumTracksRef.current[track.album] || [] + const existingIndex = currentTracks.findIndex((candidate) => getTrackCacheKey(candidate.serverId, candidate.fileId) === cacheKey) + + if (existingIndex >= 0) currentTracks[existingIndex] = { ...currentTracks[existingIndex], ...track } + else currentTracks.push(track) + + albumTracksRef.current[track.album] = currentTracks + } + + function schedulePersistLibraryCache() { + if (!serverCacheKey || typeof window === 'undefined') return + + if (persistTimeoutRef.current) { + window.clearTimeout(persistTimeoutRef.current) + } + + persistTimeoutRef.current = window.setTimeout(() => { + persistTimeoutRef.current = null + void saveLibraryCache(serverCacheKey, Object.values(trackCacheRef.current), searchCacheRef.current) + }, 250) + } + + function buildNamespaceEntriesFromTracks(tracks: Track[], ns: 'album' | 'artist') { + const entries: Record = {} + + for (const track of tracks) { + const name = ns === 'album' ? track.album : track.artist + if (!name) continue + + if (!entries[name]) { + entries[name] = { name, servers: [], totalCount: 0 } + } + + const entry = entries[name] + entry.totalCount += 1 + + const serverId = track.serverId || 'unknown' + let serverEntry = entry.servers.find((server) => server.serverId === serverId) + if (!serverEntry) { + serverEntry = { serverId, count: 0, thumbnail: track.thumbnail } + entry.servers.push(serverEntry) + } + + serverEntry.count += 1 + if (!serverEntry.thumbnail && track.thumbnail) serverEntry.thumbnail = track.thumbnail + } + + return Object.values(entries).sort((a, b) => a.name.localeCompare(b.name)) + } + + function buildArtistGroupsFromTracks(tracks: Track[]) { + const groupsMap: Record = {} + const seen = new Set() + + for (const track of tracks) { + const trackKey = getTrackCacheKey(track.serverId, track.fileId) || `${track.serverName || 'local'}:${track.url}` + if (seen.has(trackKey)) continue + seen.add(trackKey) + + const artistName = track.artist || 'Unknown' + if (!groupsMap[artistName]) groupsMap[artistName] = [] + groupsMap[artistName].push(track) + } + + const groups = Object.entries(groupsMap).map(([name, artistTracks]) => ({ name, tracks: [...artistTracks] })) + for (const group of groups) { + group.tracks.sort((a, b) => { + const aAlbum = (a.album || '').toLowerCase() + const bAlbum = (b.album || '').toLowerCase() + if (aAlbum && bAlbum && aAlbum !== bAlbum) return aAlbum.localeCompare(bAlbum) + return (a.title || '').toLowerCase().localeCompare((b.title || '').toLowerCase()) + }) + } + + return groups.sort((a, b) => a.name.localeCompare(b.name)) + } + + useEffect(() => { + let cancelled = false + + const restoreCachedLibrary = async () => { + if (!hasServers || !serverCacheKey) { + trackCacheRef.current = {} + searchCacheRef.current = {} + albumTracksRef.current = {} + return + } + + try { + const snapshot = await loadLibraryCache(serverCacheKey) + if (cancelled || !snapshot) return + + trackCacheRef.current = {} + albumTracksRef.current = {} + searchCacheRef.current = snapshot.searchCache || {} + + let localCounter = Date.now() + const hydratedTracks = (snapshot.tracks || []).map((track) => ({ ...track, id: ++localCounter })) + for (const track of hydratedTracks) { + const cacheKey = getTrackCacheKey(track.serverId, track.fileId) + if (cacheKey) trackCacheRef.current[cacheKey] = track + addTrackToAlbumCache(track) + } + + const sectionTracks = filterTracksForView(hydratedTracks, view) + const cachedAlbums = buildNamespaceEntriesFromTracks(sectionTracks, 'album') + const cachedArtists = buildNamespaceEntriesFromTracks(sectionTracks, 'artist') + if (!cancelled) { + setAlbums(cachedAlbums) + setArtists(cachedArtists) + + if ((view === 'tracks' || view === 'text' || view === 'data') && !query.trim() && !albumFilter && !artistFilter) { + setResults(sectionTracks) + } + } + } catch { + // ignore cache restore failures and fall back to live Hydrus data + } + } + + void restoreCachedLibrary() + + return () => { + cancelled = true + } + }, [albumFilter, artistFilter, hasServers, mediaSection, query, serverCacheKey, view]) + + + useEffect(() => { + const controller = new AbortController() + searchAbortRef.current = controller + + const performSearch = async () => { + if (!hasServers) { + setResults([]) + setError(null) + setLoading(false) + return + } + + const searchQuery = query.trim() + const isDefaultSectionSearch = view === 'tracks' && searchQuery.length === 0 + const shouldUseLocalTextSearch = isTrackLikeView && searchQuery.length > 0 + const cachedSectionTracks = filterTracksForView(Object.values(trackCacheRef.current), view) + + setLoading(true) + setError(null) + setResults((view === 'tracks' || view === 'text' || view === 'data') && !albumFilter && !artistFilter ? cachedSectionTracks : []) + + if (view === 'tracks') { + setAlbums(buildNamespaceEntriesFromTracks(cachedSectionTracks, 'album')) + setArtists(buildNamespaceEntriesFromTracks(cachedSectionTracks, 'artist')) + } else if (view === 'albums') { + albumCacheRef.current = {} + setAlbums(buildNamespaceEntriesFromTracks(cachedSectionTracks, 'album')) + } else { + artistCacheRef.current = {} + setArtists(buildNamespaceEntriesFromTracks(cachedSectionTracks, 'artist')) + } + + const cache = searchCacheRef.current + + let pending = servers.length + let localCounter = Date.now() + let successfulSearchCount = 0 + const failedMessages: string[] = [] + + const finishOne = () => { + pending -= 1 + if (pending <= 0 && !controller.signal.aborted) { + setError(successfulSearchCount === 0 && failedMessages.length > 0 ? failedMessages[0] : null) + setLoading(false) + } + } + + for (const s of servers) { + ;(async () => { + const client = new HydrusClient(s) + try { + if (view === 'tracks' || view === 'text' || view === 'data') { + const trackSearchTags = shouldUseLocalTextSearch + ? (sectionConfig.systemPredicate ? [sectionConfig.systemPredicate] : []) + : buildSectionSearchTags(searchQuery) + const cacheKey = `${s.id}|${mediaSection}|${view}|${JSON.stringify(trackSearchTags)}` + let ids: number[] = [] + + if (cache[cacheKey]) ids = cache[cacheKey] + else { + const pageSize = shouldUseLocalTextSearch || isAllSection ? SEARCH_TEXT_SCAN_LIMIT : isDefaultSectionSearch ? INITIAL_SYSTEM_FETCH_LIMIT : SEARCH_FETCH_LIMIT + ids = await client.searchFiles(trackSearchTags, pageSize, controller.signal) + cache[cacheKey] = ids + schedulePersistLibraryCache() + } + + if (controller.signal.aborted) return + successfulSearchCount += 1 + + try { updateServer && updateServer(s.id, { lastTest: { ok: true, message: 'Search OK', status: null, searchOk: true, rangeSupported: s.lastTest?.rangeSupported ?? false, timestamp: Date.now() } }) } catch {} + + if (!ids || ids.length === 0) return + + const newTracks: Track[] = [] + const cachedTracks: Track[] = [] + const baseTracksByFileId = new Map() + for (const fid of ids) { + localCounter += 1 + const cachedTrack = trackCacheRef.current[getTrackCacheKey(s.id, fid)] + const track = cachedTrack + ? { ...cachedTrack, id: localCounter, fileId: fid, serverId: s.id, serverName: s.name || s.host, url: client.getFileUrl(fid), thumbnail: cachedTrack.thumbnail || client.getThumbnailUrl(fid), mediaKind: cachedTrack.mediaKind || mediaSection } + : { id: localCounter, fileId: fid, serverId: s.id, serverName: s.name || s.host, title: '', url: client.getFileUrl(fid), thumbnail: client.getThumbnailUrl(fid), mediaKind: mediaSection } + newTracks.push(track) + baseTracksByFileId.set(fid, track) + if (cachedTrack?.tags?.length) { + cachedTracks.push(track) + addTrackToAlbumCache(track) + } + } + + cacheTracks(newTracks) + + setResults((prev) => { + const seen = new Set(prev.map((r) => `${r.serverId}:${r.fileId}`)) + const combined = [...prev] + for (const t of newTracks) { + const key = `${t.serverId}:${t.fileId}` + if (!seen.has(key)) { + combined.push(t) + seen.add(key) + } + } + return combined + }) + + // Eagerly fetch tags for a larger subset when doing a system:everything seed so we can build artist/album groups + try { + const subsetIds = ids.filter((fid) => !trackCacheRef.current[getTrackCacheKey(s.id, fid)]?.tags?.length) + if (subsetIds.length) { + const [tagMap, mediaInfoMap] = await Promise.all([ + client.getFilesTags(subsetIds, isDefaultSectionSearch ? 8 : 4, controller.signal), + mediaSection === 'application' ? client.getFilesMediaInfo(subsetIds, 6, controller.signal) : Promise.resolve({} as Record), + ]) + if (controller.signal.aborted) return + + const enrichedTrackMetadata = new Map>() + const enrichedTracks: Track[] = [] + + for (const fid of subsetIds) { + const baseTrack = baseTracksByFileId.get(fid) + if (!baseTrack) continue + + const tags = tagMap[fid] || [] + const title = extractTitleFromTags(tags) + const isVideo = /\.(m3u8|mp4|webm|ogg|mov)$/i.test(baseTrack.url) + const artist = extractNamespaceValue(tags, 'artist') + const album = extractNamespaceValue(tags, 'album') + const mediaInfo = mediaInfoMap[fid] || {} + + const metadata: Partial = { + title: title || '', + tags: tags.length ? tags : undefined, + isVideo: mediaInfo.isVideo ?? (isVideo || undefined), + artist: artist || undefined, + album: album || undefined, + mimeType: mediaInfo.mimeType, + mediaKind: mediaSection, + } + + const enrichedTrack: Track = { + ...baseTrack, + ...metadata + } + + enrichedTrackMetadata.set(fid, metadata) + enrichedTracks.push(enrichedTrack) + addTrackToAlbumCache(enrichedTrack) + } + + cacheTracks(enrichedTracks) + + if (enrichedTrackMetadata.size > 0) { + setResults((prev) => prev.map((track) => { + if (track.serverId !== s.id || track.fileId == null) return track + const metadata = enrichedTrackMetadata.get(track.fileId) + return metadata ? { ...track, ...metadata } : track + })) + } + + setAlbums(buildNamespaceEntriesFromTracks(filterTracksForView(Object.values(trackCacheRef.current), view), 'album')) + } + } catch (e) { + // per-server metadata fetch failed — ignore but continue + } + } else if (view === 'albums' || view === 'artists') { + const ns = view === 'albums' ? 'album' : 'artist' + const tagQuery = buildSectionSearchTags(query, ns) + const cacheKey = `${s.id}|${mediaSection}|${ns}|${JSON.stringify(tagQuery)}` + + let ids: number[] = [] + if (cache[cacheKey]) ids = cache[cacheKey] + else { + ids = await client.searchFiles(tagQuery, SEARCH_FETCH_LIMIT, controller.signal) + cache[cacheKey] = ids + schedulePersistLibraryCache() + } + + if (controller.signal.aborted) return + successfulSearchCount += 1 + + try { updateServer && updateServer(s.id, { lastTest: { ok: true, message: 'Search OK', status: null, searchOk: true, rangeSupported: s.lastTest?.rangeSupported ?? false, timestamp: Date.now() } }) } catch {} + + if (!ids || ids.length === 0) return + + const subsetIds = ids + try { + const tagMap = await client.getFilesTags(subsetIds, 6, controller.signal) + if (controller.signal.aborted) return + + const localAlbums: Record = {} + const hydratedTracks: Track[] = [] + const mediaInfoMap = mediaSection === 'application' ? await client.getFilesMediaInfo(subsetIds, 6, controller.signal) : {} + + for (const fid of subsetIds) { + const tags = tagMap[fid] || [] + const title = extractTitleFromTags(tags) || '' + const album = extractNamespaceValue(tags, 'album') || undefined + const artist = extractNamespaceValue(tags, 'artist') || undefined + const baseTrack: Track = { + id: Date.now() + hydratedTracks.length, + fileId: fid, + serverId: s.id, + serverName: s.name || s.host, + title, + artist, + album, + tags: tags.length ? tags : undefined, + url: client.getFileUrl(fid), + thumbnail: client.getThumbnailUrl(fid), + mimeType: mediaInfoMap[fid]?.mimeType, + isVideo: mediaInfoMap[fid]?.isVideo, + mediaKind: mediaSection, + } + + hydratedTracks.push(baseTrack) + addTrackToAlbumCache(baseTrack) + + for (const t of tags) { + const m = t.match(new RegExp(`^${ns}:(.*)$`, 'i')) + if (!m) continue + const name = m[1].replace(/_/g, ' ').trim() + if (!name) continue + if (!localAlbums[name]) localAlbums[name] = { count: 0, thumbnail: undefined } + localAlbums[name].count += 1 + if (!localAlbums[name].thumbnail) { + const url = baseTrack.thumbnail + if (url) localAlbums[name].thumbnail = url + } + } + } + + cacheTracks(hydratedTracks) + + // merge into global album/artist map + const targetRef = view === 'albums' ? albumCacheRef.current : artistCacheRef.current + for (const [name, info] of Object.entries(localAlbums)) { + const existing = targetRef[name] + if (existing) { + // add server-specific info + existing.servers = existing.servers || [] + existing.servers.push({ serverId: s.id, count: info.count, thumbnail: info.thumbnail }) + existing.totalCount = (existing.totalCount || 0) + info.count + } else { + targetRef[name] = { name, servers: [{ serverId: s.id, count: info.count, thumbnail: info.thumbnail }], totalCount: info.count } + } + } + + // update UI progressively + const arr = Object.values(view === 'albums' ? albumCacheRef.current : artistCacheRef.current) + arr.sort((a, b) => a.name.localeCompare(b.name)) + if (view === 'albums') setAlbums(arr) + else setArtists(arr) + + } catch (e) { + // ignore per-server failures + } + } + + } catch (err: any) { + if (controller.signal.aborted) return + const msg = err?.message ?? String(err) + failedMessages.push(msg) + try { updateServer && updateServer(s.id, { lastTest: { ok: false, message: msg, status: null, searchOk: false, rangeSupported: false, timestamp: Date.now() } }) } catch {} + } finally { + finishOne() + } + })() + } + } + + const t = setTimeout(performSearch, 200) + return () => { + clearTimeout(t) + if (searchAbortRef.current === controller) searchAbortRef.current = null + try { controller.abort() } catch {} + } + }, [ + mediaSection, + query, + hasServers, + serverSearchSignature, + updateServer, + view + ]) + + useEffect(() => { + syncingSectionViewRef.current = true + setView(getStoredSectionView(mediaSection, sectionViews)) + }, [mediaSection]) + + useEffect(() => { + if (syncingSectionViewRef.current) { + syncingSectionViewRef.current = false + return + } + + setSectionViews((prev) => { + if (prev[mediaSection] === view) return prev + const next = { ...prev, [mediaSection]: view } + saveUiPreferences({ librarySectionViews: next }) + return next + }) + }, [mediaSection, view]) + + useEffect(() => { + if (!sectionConfig.views.some((item) => item.id === view)) { + setView('tracks') + } + }, [sectionConfig.views, view]) + + useEffect(() => { + if (!sortOptions.some((option) => option.id === sortBy)) { + setSortBy(getDefaultSortField(view, hasArtistsView)) + } + }, [hasArtistsView, sortBy, sortOptions, view]) + + useEffect(() => { + saveUiPreferences({ + librarySortBy: sortBy, + librarySortDirection: sortDirection, + }) + }, [sortBy, sortDirection]) + + useEffect(() => { + if (view !== 'tracks') { + setAlbumFilter(null) + setArtistFilter(null) + } + }, [view]) + + useEffect(() => { + if (query.trim().length > 0) { + setAlbumFilter(null) + setArtistFilter(null) + } + }, [query]) + + useEffect(() => { + setVisibleCount(RESULTS_PAGE_SIZE) + }, [view, query, albumFilter, artistFilter]) + + useEffect(() => { + return () => { + try { searchAbortRef.current?.abort() } catch {} + try { playMetadataAbortRef.current?.abort() } catch {} + try { detailsAbortRef.current?.abort() } catch {} + if (persistTimeoutRef.current && typeof window !== 'undefined') { + window.clearTimeout(persistTimeoutRef.current) + } + if (longPressTimerRef.current && typeof window !== 'undefined') { + window.clearTimeout(longPressTimerRef.current) + } + } + }, []) + + const handlePlayNow = async (track: Track) => { + if (!track?.url) return + + try { searchAbortRef.current?.abort() } catch {} + setLoading(false) + + try { playMetadataAbortRef.current?.abort() } catch {} + const metadataController = new AbortController() + playMetadataAbortRef.current = metadataController + + // If the title is a generic fallback like 'File 123', try to fetch tags for a better title + const needsTitle = /^File\s+\d+$/i.test(track.title) + const needsMediaInfo = track.isVideo === undefined || !track.mimeType + + if (needsTitle || needsMediaInfo) { + try { + const server = servers.find((s) => s.id === track.serverId) + if (server && track.fileId != null) { + const client = new HydrusClient(server) + let nextTrack = track + + if (needsTitle) { + const tags = await client.getFileTags(track.fileId, metadataController.signal) + const title = extractTitleFromTags(tags) + if (title) { + nextTrack = { ...nextTrack, title } + } + } + + if (needsMediaInfo) { + const mediaInfo = await client.getFileMediaInfo(track.fileId, metadataController.signal) + if (mediaInfo.mimeType || mediaInfo.isVideo !== undefined) { + nextTrack = { ...nextTrack, ...mediaInfo } + } + } + + if (nextTrack !== track) { + setResults((prev) => prev.map((r) => (r.id === track.id ? { ...r, ...nextTrack } : r))) + cacheTracks([nextTrack]) + addTrackToAlbumCache(nextTrack) + track = nextTrack + } + } + } catch (e: any) { + if (e?.name === 'AbortError') return + // ignore + } + } + + await onPlayNow(track) + } + + const clearLongPressTimer = () => { + if (longPressTimerRef.current && typeof window !== 'undefined') { + window.clearTimeout(longPressTimerRef.current) + longPressTimerRef.current = null + } + } + + const closeDetails = () => { + clearLongPressTimer() + try { detailsAbortRef.current?.abort() } catch {} + setDetailsOpen(false) + setDetailsLoading(false) + setDetailsError(null) + } + + const handleDetailsTagSearch = (tag: string) => { + setAlbumFilter(null) + setArtistFilter(null) + setView('tracks') + onQueryChange(tag) + closeDetails() + } + + const openTrackDetails = async (track: Track) => { + setDetailsTrack(track) + setDetailsOpen(true) + setDetailsLoading(true) + setDetailsError(null) + setDetailsData(null) + + try { detailsAbortRef.current?.abort() } catch {} + const controller = new AbortController() + detailsAbortRef.current = controller + + try { + const server = servers.find((candidate) => candidate.id === track.serverId) + if (!server || track.fileId == null) { + setDetailsData({ + fileId: track.fileId ?? 0, + mimeType: track.mimeType, + isVideo: track.isVideo, + extension: getTrackExtension(track), + tags: track.tags || [], + }) + setDetailsLoading(false) + return + } + + const client = new HydrusClient(server) + const details = await client.getFileDetails(track.fileId, controller.signal) + if (controller.signal.aborted) return + setDetailsData(details) + setDetailsLoading(false) + } catch (error: any) { + if (error?.name === 'AbortError') return + setDetailsError(error?.message ?? String(error)) + setDetailsLoading(false) + } + } + + const handleTrackActivate = async (track: Track) => { + if (longPressTriggeredRef.current) { + longPressTriggeredRef.current = false + return + } + + await handlePlayNow(track) + } + + const getTrackInteractionProps = (track: Track) => ({ + onClick: () => { void handleTrackActivate(track) }, + onContextMenu: (event: React.MouseEvent) => { + event.preventDefault() + longPressTriggeredRef.current = true + void openTrackDetails(track) + }, + onTouchStart: () => { + if (!isCompactTableLayout || typeof window === 'undefined') return + clearLongPressTimer() + longPressTriggeredRef.current = false + longPressTimerRef.current = window.setTimeout(() => { + longPressTriggeredRef.current = true + void openTrackDetails(track) + }, LONG_PRESS_DELAY_MS) + }, + onTouchEnd: clearLongPressTimer, + onTouchCancel: clearLongPressTimer, + onTouchMove: clearLongPressTimer, + }) + + const handleImageError = (event: React.SyntheticEvent) => { + event.currentTarget.src = NO_IMAGE_DATA_URL + } + + const getDisplayTitle = (track?: Track) => (track ? getTrackDisplayTitle(track) : '') + + const getVisibleArtistGroups = (groups: Array<{ name: string; tracks: Track[] }>, limit: number) => { + const visibleGroups: Array<{ name: string; tracks: Track[] }> = [] + let remaining = limit + + for (const group of groups) { + if (remaining <= 0) break + + const visibleTracks = group.tracks.slice(0, remaining) + if (visibleTracks.length) { + visibleGroups.push({ name: group.name, tracks: visibleTracks }) + remaining -= visibleTracks.length + } + } + + return visibleGroups + } + + const filteredAlbumTracks = useMemo(() => { + if (!albumFilter) return [] + return filterTracksForSection(albumTracksRef.current[albumFilter] || results.filter((track) => track.album === albumFilter), mediaSection) + }, [albumFilter, mediaSection, results]) + + const filteredArtistTracks = useMemo(() => { + if (!artistFilter) return [] + return filterTracksForSection(Object.values(trackCacheRef.current), mediaSection) + .filter((track) => normalizeNamespaceValue(track.artist) === normalizeNamespaceValue(artistFilter)) + }, [artistFilter, mediaSection, results]) + + const currentTrackResults = useMemo(() => { + const sectionTracks = filterTracksForView(results, view) + if (!isTrackLikeView || queryWords.length === 0) return sectionTracks + return sectionTracks.filter((track) => matchesTrackSearch(track, queryWords)) + }, [isTrackLikeView, queryWords, results, view]) + const baseArtistGroups = useMemo(() => { + if (!hasArtistsView || albumFilter || artistFilter) return [] + return buildArtistGroupsFromTracks(currentTrackResults) + }, [albumFilter, artistFilter, currentTrackResults, hasArtistsView]) + const sortedFilteredAlbumTracks = useMemo(() => sortTracks(filteredAlbumTracks, sortBy as TrackSortField, sortDirection), [filteredAlbumTracks, sortBy, sortDirection]) + const sortedFilteredArtistTracks = useMemo(() => sortTracks(filteredArtistTracks, sortBy as TrackSortField, sortDirection), [filteredArtistTracks, sortBy, sortDirection]) + const sortedCurrentTrackResults = useMemo(() => sortTracks(currentTrackResults, sortBy as TrackSortField, sortDirection), [currentTrackResults, sortBy, sortDirection]) + const sortedArtistGroups = useMemo(() => { + if (!hasArtistsView) return [] + + return [...baseArtistGroups] + .map((group) => ({ name: group.name, tracks: sortTracks(group.tracks, 'title', sortDirection) })) + .sort((left, right) => compareText(left.name, right.name) * (sortDirection === 'asc' ? 1 : -1)) + }, [baseArtistGroups, hasArtistsView, sortDirection]) + const sortedAlbums = useMemo(() => sortEntries(albums, sortBy as EntrySortField, sortDirection), [albums, sortBy, sortDirection]) + const sortedArtists = useMemo(() => sortEntries(artists, sortBy as EntrySortField, sortDirection), [artists, sortBy, sortDirection]) + const shouldShowGroupedArtists = effectiveDisplayMode === 'grid' && !albumFilter && !artistFilter && hasArtistsView && sortedArtistGroups.length > 0 && sortBy === 'artist' + const visibleFilteredAlbumTracks = useMemo(() => sortedFilteredAlbumTracks.slice(0, visibleCount), [sortedFilteredAlbumTracks, visibleCount]) + const visibleFilteredArtistTracks = useMemo(() => sortedFilteredArtistTracks.slice(0, visibleCount), [sortedFilteredArtistTracks, visibleCount]) + const totalArtistGroupTracks = useMemo(() => sortedArtistGroups.reduce((count, group) => count + group.tracks.length, 0), [sortedArtistGroups]) + const visibleArtistGroups = useMemo(() => getVisibleArtistGroups(sortedArtistGroups, visibleCount), [sortedArtistGroups, visibleCount]) + const visibleResults = useMemo(() => sortedCurrentTrackResults.slice(0, visibleCount), [sortedCurrentTrackResults, visibleCount]) + const visibleAlbums = useMemo(() => sortedAlbums.slice(0, visibleCount), [sortedAlbums, visibleCount]) + const visibleArtists = useMemo(() => sortedArtists.slice(0, visibleCount), [sortedArtists, visibleCount]) + + const canLoadMore = isTrackLikeView + ? albumFilter + ? visibleCount < sortedFilteredAlbumTracks.length + : artistFilter + ? visibleCount < sortedFilteredArtistTracks.length + : shouldShowGroupedArtists + ? visibleCount < totalArtistGroupTracks + : visibleCount < sortedCurrentTrackResults.length + : view === 'albums' + ? visibleCount < sortedAlbums.length + : visibleCount < sortedArtists.length + + const renderTrackGrid = ( + tracks: Array, + options?: { showAlbum?: boolean; showFileIdFallback?: boolean } + ) => ( + + {tracks.map((track, idx) => { + const isVideoTrack = !!track?.isVideo || /\.(m3u8|mp4|webm|ogg|mov)$/i.test(track?.url || '') + + return ( + + + + + + + + + + + {track?.isVideo &&
Video
} + {track?.serverName &&
{track.serverName}
} +
+ + + {getDisplayTitle(track) ? {getDisplayTitle(track)} : null} + {options?.showAlbum && track?.album && {track.album}} + {options?.showFileIdFallback && track && !getDisplayTitle(track) && File {track.fileId}} + +
+ ) + })} +
+ ) + + const openAlbumEntry = (name: string) => { + if (filterTracksForSection(albumTracksRef.current[name] || [], mediaSection).length > 0) { + setArtistFilter(null) + onQueryChange('') + setAlbumFilter(name) + setView('tracks') + return + } + + setView('tracks') + onQueryChange(buildNamespaceSearch('album', name, 'contains')) + } + + const openArtistEntry = (name: string) => { + const cachedArtistTracks = filterTracksForSection(Object.values(trackCacheRef.current), mediaSection) + .filter((track) => normalizeNamespaceValue(track.artist) === normalizeNamespaceValue(name)) + + if (cachedArtistTracks.length > 0) { + setAlbumFilter(null) + onQueryChange('') + setArtistFilter(name) + setView('tracks') + return + } + + setView('tracks') + onQueryChange(buildNamespaceSearch('artist', name, 'contains')) + } + + const renderTrackTable = (tracks: Track[], options?: { showAlbum?: boolean; showFileIdFallback?: boolean }) => ( + isCompactTableLayout ? ( + + {tracks.map((track) => ( + + + + + {getDisplayTitle(track)} + + {track.artist || track.album || track.serverName || getTrackKindLabel(track, sectionConfig.label)} + + + {[options?.showAlbum || track.album ? (track.album || null) : null, track.serverName || null, track.fileId != null ? `#${track.fileId}` : null].filter(Boolean).join(' • ')} + + + + + ))} + + ) : ( + + + + + Track + Artist + Album + Server + ID + + + + {tracks.map((track) => ( + + + + + + {getDisplayTitle(track)} + + {getTrackKindLabel(track, sectionConfig.label)} + {options?.showFileIdFallback && !track.title?.trim() && track.fileId != null ? ` • File ${track.fileId}` : ''} + + + + + {track.artist || '—'} + {options?.showAlbum || track.album ? (track.album || '—') : '—'} + {track.serverName || '—'} + {track.fileId ?? '—'} + + ))} + +
+
+ ) + ) + + const renderEntryTable = (entries: AlbumEntry[], kind: 'album' | 'artist') => ( + isCompactTableLayout ? ( + + {entries.map((entry) => ( + { if (kind === 'album') openAlbumEntry(entry.name); else openArtistEntry(entry.name) }} sx={{ border: '1px solid rgba(255,255,255,0.08)', bgcolor: 'background.paper', backgroundImage: 'none', borderRadius: 2, px: 1.25, py: 1.1, cursor: 'pointer' }}> + + {entry.servers[0]?.thumbnail ? ( + + ) : ( + + {kind === 'album' ? 'AL' : 'AR'} + + )} + + {entry.name} + + {`${entry.totalCount} items • ${entry.servers.length} server${entry.servers.length === 1 ? '' : 's'}`} + + + + + ))} + + ) : ( + + + + + {kind === 'album' ? 'Album' : 'Artist'} + Items + Servers + + + + {entries.map((entry) => ( + { if (kind === 'album') openAlbumEntry(entry.name); else openArtistEntry(entry.name) }} sx={{ cursor: 'pointer', '& .MuiTableCell-root': { borderColor: 'rgba(255,255,255,0.08)' } }}> + + + {entry.servers[0]?.thumbnail ? ( + + ) : ( + + {kind === 'album' ? 'AL' : 'AR'} + + )} + {entry.name} + + + {entry.totalCount} + {entry.servers.length} + + ))} + +
+
+ ) + ) + + return ( + + theme.zIndex.appBar - 1, + backgroundColor: 'background.paper', + borderBottom: '1px solid rgba(255,255,255,0.08)', + boxShadow: '0 8px 18px rgba(0,0,0,0.18)', + py: 1, + mb: 2, + }} + > + {sectionConfig.views.length > 1 ? ( + setView(v)} variant="scrollable" allowScrollButtonsMobile> + {sectionConfig.views.map((item) => )} + + ) : ( + + {sectionConfig.label} + + )} + + + {!hasServers && ( + + No Hydrus server selected. Use the settings (top-right) to add one. + + )} + + {error && ( + + {error} + + )} + + + + Sort + + + + Order + + + + + + + {(view === 'tracks' || view === 'text' || view === 'data') && ( + <> + {albumFilter ? ( + + + Album: {albumFilter} + + + {hasAlbumsView && } + + + + {effectiveDisplayMode === 'table' + ? renderTrackTable(visibleFilteredAlbumTracks, { showAlbum: true }) + : renderTrackGrid(visibleFilteredAlbumTracks, { showAlbum: true })} + + ) : artistFilter ? ( + + + Artist: {artistFilter} + + + {hasArtistsView && } + + + + {effectiveDisplayMode === 'table' + ? renderTrackTable(visibleFilteredArtistTracks, { showAlbum: true }) + : renderTrackGrid(visibleFilteredArtistTracks, { showAlbum: true })} + + ) : shouldShowGroupedArtists ? ( + visibleArtistGroups.map((g) => { + const albumNames = Array.from(new Set(g.tracks.map((t: any) => (t.album || '').trim()).filter(Boolean))) + return ( + + {g.name} + + {albumNames.length > 0 && ( + + {albumNames.map((a) => { + const count = g.tracks.filter((t: any) => (t.album || '') === a).length + return { setArtistFilter(null); onQueryChange(''); setAlbumFilter(a); setView('tracks') }} /> + })} + + )} + + {renderTrackGrid(g.tracks, { showAlbum: true })} + + ) + }) + ) : ( + effectiveDisplayMode === 'table' + ? renderTrackTable(visibleResults, { showFileIdFallback: true }) + : renderTrackGrid(visibleResults, { showFileIdFallback: true }) + )} + + )} + + {view === 'albums' && hasAlbumsView && ( + effectiveDisplayMode === 'table' + ? renderEntryTable(visibleAlbums, 'album') + : ( + + {visibleAlbums.map((al) => ( + + + openAlbumEntry(al.name)}> + {al.servers[0]?.thumbnail ? ( + + ) : ( + {al.name} + )} + + + {al.name} + + + + + + + ))} + + ) + )} + + {view === 'artists' && hasArtistsView && ( + effectiveDisplayMode === 'table' + ? renderEntryTable(visibleArtists, 'artist') + : ( + + {visibleArtists.map((ar) => ( + + + openArtistEntry(ar.name)}> + {ar.servers[0]?.thumbnail ? ( + + ) : ( + {ar.name} + )} + + + {ar.name} + + + + + + + ))} + + ) + )} + + + {canLoadMore && !loading && ( + + + + )} + + {loading && (view === 'tracks' || view === 'text' || view === 'data') && currentTrackResults.length === 0 && !albumFilter && !artistFilter && ( + + Loading {sectionConfig.views.find((item) => item.id === view)?.label.toLowerCase() || sectionConfig.label.toLowerCase()}... + + )} + + {!loading && (view === 'tracks' || view === 'text' || view === 'data') && currentTrackResults.length === 0 && ( + + No results found. + + )} + + {loading && view !== 'tracks' && ((view === 'albums' && hasAlbumsView && albums.length === 0) || (view === 'artists' && hasArtistsView && artists.length === 0)) && ( + + Loading {view}... + + )} + + {view !== 'tracks' && ((view === 'albums' && hasAlbumsView && albums.length === 0) || (view === 'artists' && hasArtistsView && artists.length === 0)) && !loading && ( + + No results found. + + )} + + + {detailsTrack ? getDisplayTitle(detailsTrack) : 'Item details'} + + {detailsLoading && Loading item details...} + {!detailsLoading && detailsError && {detailsError}} + {!detailsLoading && !detailsError && detailsTrack && ( + + + {detailsTrack.serverName && } + {detailsData?.mimeType && } + {getTrackExtension(detailsTrack, detailsData) && } + {detailsData?.isVideo !== undefined && } + + + + + File ID + {detailsTrack.fileId ?? 'Unknown'} + + + Size + {formatBytes(detailsData?.sizeBytes) || 'Unknown'} + + + Resolution + {detailsData?.width && detailsData?.height ? `${detailsData.width} x ${detailsData.height}` : 'Unknown'} + + + Duration + {formatDuration(detailsData?.durationMs) || 'Unknown'} + + + + + Tags + + {(detailsData?.tags || detailsTrack.tags || []).length > 0 + ? (detailsData?.tags || detailsTrack.tags || []).map((tag) => handleDetailsTagSearch(tag)} />) + : No tags available.} + + + + )} + + + + + + + ) +} diff --git a/src/pages/SettingsPage.tsx b/src/pages/SettingsPage.tsx new file mode 100644 index 0000000..35b1325 --- /dev/null +++ b/src/pages/SettingsPage.tsx @@ -0,0 +1,381 @@ +import React, { useEffect, useState } from 'react' +import { + Box, + FormControl, + InputLabel, + Grid, + Typography, + List, + ListItem, + ListItemText, + Button, + IconButton, + TextField, + Switch, + FormControlLabel, + Chip, + Dialog, + DialogTitle, + DialogContent, + DialogActions, + MenuItem, + Select +} from '@mui/material' +import ArrowBackIcon from '@mui/icons-material/ArrowBack' +import DeleteIcon from '@mui/icons-material/Delete' +import PlayArrowIcon from '@mui/icons-material/PlayArrow' +import EditIcon from '@mui/icons-material/Edit' +import AddIcon from '@mui/icons-material/Add' +import CloudDownloadIcon from '@mui/icons-material/CloudDownload' +import type { Server } from '../context/ServersContext' +import { useServers } from '../context/ServersContext' +import { HydrusClient, extractTitleFromTags } from '../api/hydrusClient' +import { buildLibraryCacheKey, loadLibraryCache, saveLibraryCache } from '../libraryCache' +import type { MediaSection, ServerSyncSummary, Track } from '../types' + +const SYNC_SECTION_LIMIT = 2000 +const DEFAULT_SERVER_FORM = { name: '', host: '', port: undefined, apiKey: '', ssl: false, forceApiKeyInQuery: false } +const SYNC_SECTIONS: Array<{ id: MediaSection; label: string; predicate: string }> = [ + { id: 'audio', label: 'Audio', predicate: 'system:filetype = audio' }, + { id: 'video', label: 'Video', predicate: 'system:filetype = video' }, + { id: 'image', label: 'Image', predicate: 'system:filetype = image' }, + { id: 'application', label: 'Applications', predicate: 'system:filetype = application' }, +] + +type SettingsPageProps = { + onClose?: () => void + devOverlayEnabled: boolean + onDevOverlayEnabledChange: (enabled: boolean) => void + libraryDisplayMode: 'grid' | 'table' + onLibraryDisplayModeChange: (mode: 'grid' | 'table') => void +} + +export default function SettingsPage({ onClose, devOverlayEnabled, onDevOverlayEnabledChange, libraryDisplayMode, onLibraryDisplayModeChange }: SettingsPageProps) { + const { servers, addServer, updateServer, removeServer, testServerById, testServerConfig, setActiveServerId, activeServerId } = useServers() + const [editing, setEditing] = useState(null) + const [form, setForm] = useState>(DEFAULT_SERVER_FORM) + const [testing, setTesting] = useState(false) + const [syncingServerId, setSyncingServerId] = useState(null) + const [lastTest, setLastTest] = useState(null) + const [detailsOpen, setDetailsOpen] = useState(false) + const [detailsText, setDetailsText] = useState(null) + + const extractNamespaceValue = (tags: string[] | null | undefined, ns: string) => { + if (!tags || !Array.isArray(tags)) return null + const prefix = `${ns.toLowerCase()}:` + const values = tags + .filter((tag) => typeof tag === 'string' && tag.toLowerCase().startsWith(prefix)) + .map((tag) => tag.slice(prefix.length).replace(/_/g, ' ').trim()) + .filter(Boolean) + return values.sort((a, b) => b.length - a.length)[0] || null + } + + const buildTrackCacheKey = (serverId?: string, fileId?: number) => (serverId && fileId != null ? `${serverId}:${fileId}` : '') + + useEffect(() => { + setEditing(null) + setForm(DEFAULT_SERVER_FORM) + setLastTest(null) + setDetailsText(null) + setDetailsOpen(false) + }, []) + + const startAdd = () => { + setEditing(null) + setForm(DEFAULT_SERVER_FORM) + } + + const startEdit = (s: Server) => { + setEditing(s) + setForm({ name: s.name || '', host: s.host, port: s.port, apiKey: s.apiKey || '', ssl: !!s.ssl, forceApiKeyInQuery: !!s.forceApiKeyInQuery }) + setLastTest(s.lastTest ? `${s.lastTest.message} (${new Date(s.lastTest.timestamp).toLocaleString()})` : null) + } + + const handleSave = () => { + if (editing) { + updateServer(editing.id, form) + } else { + const srv = addServer(form) + setActiveServerId(srv.id) + } + onClose && onClose() + } + + const handleDelete = (s: Server) => { + if (confirm(`Delete server ${s.name || s.host}?`)) { + removeServer(s.id) + } + } + + const handleTestExisting = async (s: Server) => { + setTesting(true) + try { + const res = await testServerById(s.id) + setLastTest(`${res.message}`) + } catch (e: any) { + setLastTest(`Error: ${e?.message ?? String(e)}`) + } finally { + setTesting(false) + } + } + + const handleTestForm = async () => { + setTesting(true) + try { + const res = await testServerConfig(form) + setLastTest(`${res.message}`) + } catch (e: any) { + setLastTest(`Error: ${e?.message ?? String(e)}`) + } finally { + setTesting(false) + } + } + + const handleSyncServer = async (server: Server) => { + setSyncingServerId(server.id) + + try { + const client = new HydrusClient(server) + const cacheKey = buildLibraryCacheKey(servers) + const snapshot = await loadLibraryCache(cacheKey) + const mergedSearchCache = { ...(snapshot?.searchCache ?? {}) } + const mergedTrackMap: Record = {} + + let localCounter = Date.now() + for (const track of snapshot?.tracks ?? []) { + const hydratedTrack: Track = { ...track, id: ++localCounter } + const key = buildTrackCacheKey(hydratedTrack.serverId, hydratedTrack.fileId) + if (key) mergedTrackMap[key] = hydratedTrack + } + + const counts: ServerSyncSummary['counts'] = {} + + for (const section of SYNC_SECTIONS) { + const searchTags = [section.predicate] + const ids = await client.searchFiles(searchTags, SYNC_SECTION_LIMIT) + counts[section.id] = ids.length + mergedSearchCache[`${server.id}|${section.id}|tracks|${JSON.stringify(searchTags)}`] = ids + + if (ids.length === 0) continue + + const tagMap = await client.getFilesTags(ids, 8) + const mediaInfoMap = section.id === 'application' ? await client.getFilesMediaInfo(ids, 6) : {} + for (const fileId of ids) { + const tags = tagMap[fileId] || [] + const key = buildTrackCacheKey(server.id, fileId) + if (!key) continue + + mergedTrackMap[key] = { + id: ++localCounter, + fileId, + serverId: server.id, + serverName: server.name || server.host, + title: extractTitleFromTags(tags) || '', + artist: extractNamespaceValue(tags, 'artist') || undefined, + album: extractNamespaceValue(tags, 'album') || undefined, + tags: tags.length ? tags : undefined, + url: client.getFileUrl(fileId), + thumbnail: client.getThumbnailUrl(fileId), + mimeType: mediaInfoMap[fileId]?.mimeType, + isVideo: mediaInfoMap[fileId]?.isVideo ?? (section.id === 'video' ? true : undefined), + mediaKind: section.id, + } + } + } + + await saveLibraryCache(cacheKey, Object.values(mergedTrackMap), mergedSearchCache) + + const total = Object.values(counts).reduce((sum, value) => sum + (value || 0), 0) + const summary: ServerSyncSummary = { + updatedAt: Date.now(), + total, + counts, + message: `Synced ${total} cached items`, + } + + updateServer(server.id, { syncSummary: summary }) + setLastTest(summary.message ?? `Synced ${total} cached items`) + } catch (error: any) { + const message = error?.message ?? String(error) + updateServer(server.id, { + syncSummary: { + updatedAt: Date.now(), + total: 0, + counts: {}, + message: `Sync failed: ${message}`, + }, + }) + setLastTest(`Sync failed: ${message}`) + } finally { + setSyncingServerId(null) + } + } + + return ( + + + + + onClose && onClose()} aria-label="back" size="large" sx={{ mr: 1 }}> + + + Hydrus Servers + + + + {import.meta.env.DEV && ( + + Library display + + Choose the default Library layout so browsing controls can stay compact. + + + Display + + + + Developer tools + + Control development-only UI that can get in the way on smaller screens. + + onDevOverlayEnabledChange(event.target.checked)} />} + label={devOverlayEnabled ? 'Floating dev overlay enabled' : 'Floating dev overlay disabled'} + sx={{ alignItems: 'flex-start', m: 0 }} + /> + + )} + + {!import.meta.env.DEV && ( + + Library display + + Choose the default Library layout so browsing controls can stay compact. + + + Display + + + + )} + + + + + + Configured servers + + + + + {servers.length === 0 && No servers configured yet} + {servers.map((s) => ( + + + + + + + startEdit(s)}> + + + handleDelete(s)}> + + + + + {s.lastTest && s.lastTest.message && } + {s.syncSummary?.message && } + {s.syncSummary?.counts && Object.entries(s.syncSummary.counts).map(([section, count]) => ( + + ))} + {s.forceApiKeyInQuery && } + + {s.syncSummary?.updatedAt && ( + + Last sync: {new Date(s.syncSummary.updatedAt).toLocaleString()} + + )} + + ))} + + + + + + + {editing ? 'Edit server' : 'Add new server'} + + setForm({ ...form, name: e.target.value })} fullWidth /> + setForm({ ...form, host: e.target.value })} fullWidth /> + setForm({ ...form, port: e.target.value })} fullWidth /> + setForm({ ...form, apiKey: e.target.value })} fullWidth /> + setForm({ ...form, ssl: e.target.checked })} />} label="Use HTTPS (SSL)" /> + setForm({ ...form, forceApiKeyInQuery: e.target.checked })} />} label="Send API key in query parameter" /> + + + + + + + + {lastTest && ( + + Last test: {lastTest} + + + + + )} + + setDetailsOpen(false)} fullWidth maxWidth="md"> + Connection details + + {detailsText} + + + + + + + + + + + + ) +} diff --git a/src/sampleData.ts b/src/sampleData.ts new file mode 100644 index 0000000..44f4700 --- /dev/null +++ b/src/sampleData.ts @@ -0,0 +1,5 @@ +import type { Track } from './types' + +// No bundled sample tracks by default +export const SAMPLE_TRACKS: Track[] = [] + diff --git a/src/serviceWorker.ts b/src/serviceWorker.ts new file mode 100644 index 0000000..b6c4cf6 --- /dev/null +++ b/src/serviceWorker.ts @@ -0,0 +1,16 @@ +export function registerServiceWorker() { + if ('serviceWorker' in navigator) { + window.addEventListener('load', () => { + navigator.serviceWorker + .register('/sw.js') + .then((reg) => console.log('Service worker registered:', reg)) + .catch((err) => console.log('Service worker registration failed:', err)) + }) + } +} + +export function unregisterServiceWorker() { + if ('serviceWorker' in navigator) { + navigator.serviceWorker.getRegistrations().then((regs) => regs.forEach((r) => r.unregister())) + } +} diff --git a/src/styles.css b/src/styles.css new file mode 100644 index 0000000..fcbbb49 --- /dev/null +++ b/src/styles.css @@ -0,0 +1,55 @@ +/* Navidrome-like dark theme variables */ +:root { + --app-bg: #0f1113; + --surface: #151617; + --muted: rgba(255,255,255,0.6); + --accent: #1db954; + --sidebar-width: 240px; +} + +body { + margin: 0; + font-family: Roboto, -apple-system, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif; + background: var(--app-bg); + color: #e6eef3; +} + +#root { height: 100vh } + +/* Sidebar */ +.sidebar { + width: var(--sidebar-width); + background: linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01)); + border-right: 1px solid rgba(255,255,255,0.03); +} + +/* Library grid (album/artist style) */ +.library-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 12px; padding: 12px; } +.card-media { position: relative; overflow: hidden; border-radius: 6px; background: #0b0b0b; } +.card-media img { width: 100%; height: 160px; object-fit: cover; display: block; } +.card-overlay { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity 120ms ease-in-out; background: linear-gradient(180deg, rgba(0,0,0,0.0), rgba(0,0,0,0.32)); } +.card-media:hover .card-overlay, +.card-media:focus-within .card-overlay { opacity: 1; } +.card-badge { position: absolute; top: 8px; left: 8px; background: rgba(0,0,0,0.5); color: #fff; padding: 2px 6px; border-radius: 12px; font-size: 12px; } + +/* Play icon in overlay */ +.card-overlay .play-button { background: rgba(0,0,0,0.6); border-radius: 999px; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; } + +/* card server badge variant */ +.card-badge.server-badge { left: auto; right: 8px; background: rgba(255,255,255,0.04); } + +/* Touch-friendly helpers and mobile layout */ +.touch-target { min-height: 48px; min-width: 48px; padding: 8px 12px; } + +@media (max-width:600px) { + .app-content { padding: 4px !important; } + .touch-target { min-height: 56px; padding: 10px 16px; font-size: 1rem; } + .library-grid { grid-template-columns: repeat(auto-fill, minmax(136px, 1fr)); gap: 10px; padding: 8px 0; } + .card-media img { height: 140px; object-fit: cover; } +} + +@media (hover: none), (pointer: coarse) { + .card-overlay { opacity: 1; background: linear-gradient(180deg, rgba(0,0,0,0.08), rgba(0,0,0,0.38)); } + .card-overlay .play-button { width: 52px; height: 52px; } +} + diff --git a/src/types.ts b/src/types.ts new file mode 100644 index 0000000..f535df1 --- /dev/null +++ b/src/types.ts @@ -0,0 +1,26 @@ +export type MediaSection = 'all' | 'audio' | 'video' | 'image' | 'application' + +export type ServerSyncSummary = { + updatedAt: number + total: number + counts: Partial> + message?: string +} + +export type Track = { + id: number // local unique id used by the UI + fileId?: number // original Hydrus file id (per-server) + serverId?: string // which server this file came from + serverName?: string // friendly server name for UI + title: string + artist?: string + album?: string + url: string + thumbnail?: string + duration?: number + tags?: string[] + // Optional MIME/type hints for rendering (video vs audio) + isVideo?: boolean + mimeType?: string + mediaKind?: MediaSection +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..50ddeb6 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "target": "ES2021", + "lib": ["DOM", "DOM.Iterable", "ES2021"], + "allowJs": false, + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "moduleResolution": "Node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + "types": ["vite/client"] + }, + "include": ["src"] +} \ No newline at end of file diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..6ddd140 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,9 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +export default defineConfig({ + plugins: [react()], + server: { + port: 5173 + } +})

$!$-@V=vu6?E_Gj0%s0z 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