feat(lightwrite): add Beat/Lyrics Editor app

- Add NestJS backend with project, beat, marker, lyrics, export modules
- Add SvelteKit web app with wavesurfer.js waveform visualization
- Add BPM detection using Web Audio API peak detection
- Add marker timeline for parts, hooks, bridges
- Add lyrics editor with timestamp sync
- Add export to LRC, SRT, JSON formats
- Add shared-storage support for lightwrite
- Fix mana-core-auth env loading (add dotenv before validation)
- Add lightwrite to setup-databases.sh
- Fix matrix-onboarding-bot type errors (displayName → fullName)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Till-JS 2026-02-16 11:13:08 +01:00
parent 7b2ae94474
commit 78c7383d54
81 changed files with 5244 additions and 34 deletions

View file

@ -157,3 +157,10 @@ export function createInventoryStorage(publicUrl?: string): StorageClient {
publicUrl: publicUrl ?? process.env.INVENTORY_S3_PUBLIC_URL,
});
}
/**
* Create a storage client for the LightWrite project
*/
export function createLightWriteStorage(): StorageClient {
return createStorageClient({ name: BUCKETS.LIGHTWRITE });
}

View file

@ -16,6 +16,7 @@ export {
createStorageStorage,
createMailStorage,
createInventoryStorage,
createLightWriteStorage,
} from './factory';
// Utilities

View file

@ -87,6 +87,7 @@ export const BUCKETS = {
STORAGE: 'storage-storage',
MAIL: 'mail-storage',
INVENTORY: 'inventory-storage',
LIGHTWRITE: 'lightwrite-storage',
} as const;
export type BucketName = (typeof BUCKETS)[keyof typeof BUCKETS];