From 321e59b3acd676869da1a9e51ea4f4adf1607c6d Mon Sep 17 00:00:00 2001 From: sudacode Date: Tue, 10 Feb 2026 02:01:33 -0800 Subject: [PATCH] Add core services and utils barrel exports --- src/core/services/index.ts | 124 +++++++++++++++++++++++++++++++++++++ src/core/utils/index.ts | 6 ++ 2 files changed, 130 insertions(+) create mode 100644 src/core/services/index.ts create mode 100644 src/core/utils/index.ts diff --git a/src/core/services/index.ts b/src/core/services/index.ts new file mode 100644 index 0000000..9dacd8b --- /dev/null +++ b/src/core/services/index.ts @@ -0,0 +1,124 @@ +export { TexthookerService } from "./texthooker-service"; +export { hasMpvWebsocketPlugin, SubtitleWebSocketService } from "./subtitle-ws-service"; +export { registerGlobalShortcutsService } from "./shortcut-service"; +export { registerIpcHandlersService } from "./ipc-service"; +export { isGlobalShortcutRegisteredSafe, shortcutMatchesInputForLocalFallback } from "./shortcut-fallback-service"; +export { registerOverlayShortcutsService } from "./overlay-shortcut-service"; +export { createOverlayShortcutRuntimeHandlers } from "./overlay-shortcut-runtime-service"; +export { handleCliCommandService } from "./cli-command-service"; +export { cycleSecondarySubModeService } from "./secondary-subtitle-service"; +export { + refreshOverlayShortcutsRuntimeService, + syncOverlayShortcutsRuntimeService, + unregisterOverlayShortcutsRuntimeService, +} from "./overlay-shortcut-lifecycle-service"; +export { + copyCurrentSubtitleService, + handleMineSentenceDigitService, + handleMultiCopyDigitService, + markLastCardAsAudioCardService, + mineSentenceCardService, + triggerFieldGroupingService, + updateLastCardFromClipboardService, +} from "./mining-runtime-service"; +export { startAppLifecycleService } from "./app-lifecycle-service"; +export { + playNextSubtitleRuntimeService, + replayCurrentSubtitleRuntimeService, + sendMpvCommandRuntimeService, + setMpvSubVisibilityRuntimeService, + showMpvOsdRuntimeService, +} from "./mpv-runtime-service"; +export { + getInitialInvisibleOverlayVisibilityService, + isAutoUpdateEnabledRuntimeService, + shouldAutoInitializeOverlayRuntimeFromConfigService, + shouldBindVisibleOverlayToMpvSubVisibilityService, +} from "./runtime-config-service"; +export { openYomitanSettingsWindow } from "./yomitan-settings-service"; +export { tokenizeSubtitleService } from "./tokenizer-service"; +export { loadYomitanExtensionService } from "./yomitan-extension-loader-service"; +export { + getJimakuLanguagePreferenceService, + getJimakuMaxEntryResultsService, + jimakuFetchJsonService, + resolveJimakuApiKeyService, +} from "./jimaku-runtime-service"; +export { + loadSubtitlePositionService, + saveSubtitlePositionService, + updateCurrentMediaPathService, +} from "./subtitle-position-service"; +export { + createOverlayWindowService, + enforceOverlayLayerOrderService, + ensureOverlayWindowLevelService, + updateOverlayBoundsService, +} from "./overlay-window-service"; +export { initializeOverlayRuntimeService } from "./overlay-runtime-init-service"; +export { syncInvisibleOverlayMousePassthroughService } from "./overlay-visibility-runtime-service"; +export { + setInvisibleOverlayVisibleRuntimeFacadeService, + setVisibleOverlayVisibleRuntimeFacadeService, + toggleInvisibleOverlayRuntimeFacadeService, + toggleVisibleOverlayRuntimeFacadeService, +} from "./overlay-visibility-facade-service"; +export { MpvIpcClient, MPV_REQUEST_ID_SECONDARY_SUB_VISIBILITY } from "./mpv-service"; +export { applyMpvSubtitleRenderMetricsPatchService } from "./mpv-render-metrics-service"; +export { handleMpvCommandFromIpcService } from "./ipc-command-service"; +export { handleOverlayModalClosedService } from "./overlay-modal-restore-service"; +export { + broadcastRuntimeOptionsChangedRuntimeService, + broadcastToOverlayWindowsRuntimeService, + getOverlayWindowsRuntimeService, + setOverlayDebugVisualizationEnabledRuntimeService, +} from "./overlay-broadcast-runtime-service"; +export { createMpvIpcClientDepsRuntimeService } from "./mpv-client-deps-runtime-service"; +export { createAppLifecycleDepsRuntimeService } from "./app-lifecycle-deps-runtime-service"; +export { createCliCommandDepsRuntimeService } from "./cli-command-deps-runtime-service"; +export { createIpcDepsRuntimeService } from "./ipc-deps-runtime-service"; +export { createAnkiJimakuIpcDepsRuntimeService } from "./anki-jimaku-ipc-deps-runtime-service"; +export { createFieldGroupingOverlayRuntimeService } from "./field-grouping-overlay-runtime-service"; +export { createSubsyncRuntimeDepsService } from "./subsync-deps-runtime-service"; +export { createNumericShortcutRuntimeService } from "./numeric-shortcut-runtime-service"; +export { createOverlayVisibilityFacadeDepsRuntimeService } from "./overlay-visibility-facade-deps-runtime-service"; +export { createMpvCommandIpcDepsRuntimeService } from "./mpv-command-ipc-deps-runtime-service"; +export { createRuntimeOptionsIpcDepsRuntimeService } from "./runtime-options-ipc-deps-runtime-service"; +export { createTokenizerDepsRuntimeService } from "./tokenizer-deps-runtime-service"; +export { + createInitializeOverlayRuntimeDepsService, + createInvisibleOverlayVisibilityDepsRuntimeService, + createOverlayWindowRuntimeDepsService, + createVisibleOverlayVisibilityDepsRuntimeService, +} from "./overlay-runtime-deps-service"; +export { + createOverlayShortcutLifecycleDepsRuntimeService, + createOverlayShortcutRuntimeDepsService, +} from "./overlay-shortcut-runtime-deps-service"; +export { + createCopyCurrentSubtitleDepsRuntimeService, + createHandleMineSentenceDigitDepsRuntimeService, + createHandleMultiCopyDigitDepsRuntimeService, + createMarkLastCardAsAudioCardDepsRuntimeService, + createMineSentenceCardDepsRuntimeService, + createTriggerFieldGroupingDepsRuntimeService, + createUpdateLastCardFromClipboardDepsRuntimeService, +} from "./mining-runtime-deps-service"; +export { + createGlobalShortcutRegistrationDepsRuntimeService, + createSecondarySubtitleCycleDepsRuntimeService, + createYomitanSettingsWindowDepsRuntimeService, + runOverlayShortcutLocalFallbackRuntimeService, +} from "./shortcut-ui-runtime-deps-service"; +export { createStartupLifecycleHooksRuntimeService } from "./startup-lifecycle-hooks-runtime-service"; +export { createRuntimeOptionsManagerRuntimeService } from "./runtime-options-manager-runtime-service"; +export { createAppLoggingRuntimeService } from "./app-logging-runtime-service"; +export { + createMecabTokenizerAndCheckRuntimeService, + createSubtitleTimingTrackerRuntimeService, +} from "./startup-resource-runtime-service"; +export { runGenerateConfigFlowRuntimeService } from "./config-generation-runtime-service"; +export { runStartupBootstrapRuntimeService } from "./startup-bootstrap-runtime-service"; +export { runSubsyncManualFromIpcRuntimeService, triggerSubsyncFromConfigRuntimeService } from "./subsync-runtime-service"; +export { updateInvisibleOverlayVisibilityService, updateVisibleOverlayVisibilityService } from "./overlay-visibility-service"; +export { registerAnkiJimakuIpcRuntimeService } from "./anki-jimaku-runtime-service"; diff --git a/src/core/utils/index.ts b/src/core/utils/index.ts new file mode 100644 index 0000000..5196718 --- /dev/null +++ b/src/core/utils/index.ts @@ -0,0 +1,6 @@ +export { generateDefaultConfigFile } from "./config-gen"; +export { enforceUnsupportedWaylandMode, forceX11Backend } from "./electron-backend"; +export { asBoolean, asFiniteNumber, asString } from "./coerce"; +export { resolveKeybindings } from "./keybindings"; +export { resolveConfiguredShortcuts } from "./shortcut-config"; +export { showDesktopNotification } from "./notification";