feat: PWA Phase 1 — offline audio download and playback

- API: GET /versions/:id/audio?quality=stream|original (server proxy for SW caching)
- API: GET /versions/:id/waveform-data (server proxy for offline waveform)
- SW: cache-first from musichub-offline-v1 for proxied audio/waveform endpoints
- Client: IDB-backed offline store (idb lib) with progress-tracked download
- UI: per-version offline download button with stream/original quality picker
- UI: /offline page with storage estimate and remove-all action
- Manifest: shortcuts for Dashboard + Offline-Tracks

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Robin Choice
2026-04-16 22:17:01 +02:00
parent e642e63fdc
commit e58a7c250e
10 changed files with 603 additions and 5 deletions

View File

@@ -14,6 +14,7 @@
"@fontsource-variable/inter": "^5.2.8",
"@music-hub/shared": "workspace:*",
"@sveltejs/adapter-node": "^5.5.4",
"idb": "^8.0.3",
"wavesurfer.js": "^7.12.5"
},
"devDependencies": {