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:
3
bun.lock
3
bun.lock
@@ -32,6 +32,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": {
|
||||
@@ -487,6 +488,8 @@
|
||||
|
||||
"hono": ["hono@4.12.9", "", {}, "sha512-wy3T8Zm2bsEvxKZM5w21VdHDDcwVS1yUFFY6i8UobSsKfFceT7TOwhbhfKsDyx7tYQlmRM5FLpIuYvNFyjctiA=="],
|
||||
|
||||
"idb": ["idb@8.0.3", "", {}, "sha512-LtwtVyVYO5BqRvcsKuB2iUMnHwPVByPCXFXOpuU96IZPPoPN6xjOGxZQ74pgSVVLQWtUOYgyeL4GE98BY5D3wg=="],
|
||||
|
||||
"is-core-module": ["is-core-module@2.16.1", "", { "dependencies": { "hasown": "^2.0.2" } }, "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w=="],
|
||||
|
||||
"is-module": ["is-module@1.0.0", "", {}, "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g=="],
|
||||
|
||||
Reference in New Issue
Block a user