- Extract duplicated SimpleEventEmitter class into shared utility `js/utils/eventEmitter.js`.
- Refactor AuthService, NostrService, ModerationService, and PlaybackService to use the shared class.
- Fix CI failure "matches is not iterable" in `js/channelProfile.js` by making `collectChannelVideos` synchronous and adding Array.isArray guards.
- Apply the same fix to `dist/js/channelProfile.js`.
- Add unit tests for SimpleEventEmitter.
Co-authored-by: PR0M3TH3AN <[email protected]>