feat: rename mukke to music, add cover art upload via mana-media

Rename the music module from "Mukke" to "Music" across the entire
codebase: API routes, web app module, shared packages, search provider,
dashboard widgets, i18n keys, app registry, and route paths.

Add POST /api/v1/music/cover/upload endpoint that uploads cover art
images through mana-media for deduplication, thumbnails, and Photos
gallery visibility.

Dexie table names (mukkePlaylists, mukkeProjects) kept unchanged to
preserve existing IndexedDB data.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Till JS 2026-04-05 15:25:34 +02:00
parent ee7ff7d5e8
commit d4700a07f9
64 changed files with 258 additions and 214 deletions

View file

@ -160,7 +160,7 @@ const track = {
questions: createModuleTracker('questions'),
photos: createModuleTracker('photos'),
storage: createModuleTracker('storage'),
mukke: createModuleTracker('mukke'),
music: createModuleTracker('music'),
zitare: createModuleTracker('zitare'),
presi: createModuleTracker('presi'),
subscription: createModuleTracker('subscription'),
@ -434,21 +434,21 @@ export const StorageEvents = {
};
/**
* Mukke App Events
* Music App Events
*/
export const MukkeEvents = {
songUploaded: () => track.mukke('song_uploaded'),
songUploadFailed: () => track.mukke('song_upload_failed'),
songPlayed: () => track.mukke('song_played'),
songFavorited: (favorited: boolean) => track.mukke('song_favorited', { favorited }),
songDeleted: () => track.mukke('song_deleted'),
playlistCreated: () => track.mukke('playlist_created'),
playlistDeleted: () => track.mukke('playlist_deleted'),
playlistPlayAll: () => track.mukke('playlist_play_all'),
playlistShufflePlay: () => track.mukke('playlist_shuffle_play'),
projectCreated: () => track.mukke('project_created'),
projectDeleted: () => track.mukke('project_deleted'),
projectExported: (format: string) => track.mukke('project_exported', { format }),
export const MusicEvents = {
songUploaded: () => track.music('song_uploaded'),
songUploadFailed: () => track.music('song_upload_failed'),
songPlayed: () => track.music('song_played'),
songFavorited: (favorited: boolean) => track.music('song_favorited', { favorited }),
songDeleted: () => track.music('song_deleted'),
playlistCreated: () => track.music('playlist_created'),
playlistDeleted: () => track.music('playlist_deleted'),
playlistPlayAll: () => track.music('playlist_play_all'),
playlistShufflePlay: () => track.music('playlist_shuffle_play'),
projectCreated: () => track.music('project_created'),
projectDeleted: () => track.music('project_deleted'),
projectExported: (format: string) => track.music('project_exported', { format }),
};
/**