/** * app.js — VideoPress entry point * -------------------------------- * Imports every feature module and calls its init function. * No application logic lives here — this file is intentionally thin. * * Module layout * ------------- * utils.js Pure helpers: esc(), fmtTime(), pad() * state.js Shared state object, DOM refs (els), announce() * theme.js Dark / light mode toggle * browser.js Server-side directory browser modal * scan.js /api/scan, file selection table, select-all controls * progress.js Progress bars, results card, stream-lost banner * stream.js SSE stream, reconnect, snapshot restore (applySnapshot) * compress.js Start / cancel / restart compression, notification opt-in * session.js Page-load restore via /api/compress/active * settings.js SMTP email settings modal */ 'use strict'; import { initTheme } from './modules/theme.js'; import { initBrowser } from './modules/browser.js'; import { initScan } from './modules/scan.js'; import { initStreamControls } from './modules/stream.js'; import { initCompress } from './modules/compress.js'; import { tryRestoreSession } from './modules/session.js'; import { initSettings } from './modules/settings.js'; initTheme(); initBrowser(); initScan(); initStreamControls(); initCompress(); initSettings(); tryRestoreSession();