entry.ts

1.3 KB · raw

1import { Capacitor } from "@capacitor/core";2import { setupMessageHandler } from "./messages";3import { setupAutoLock } from "./alarms";4import { setupPasskeyProxy } from "./passkey";5import { setupCommands } from "./commands";67// Keep alive for MV3 service worker8chrome.runtime.onInstalled.addListener(() => {});910// The chrome.idle.onStateChanged listener lives in ./alarms (the architectural11// home for auto-lock timing). Keeping it in only one place avoids drift.1213async function setupSyncLifecycle(): Promise<void> {14  if (Capacitor.isNativePlatform()) return;15  try {16    const sync = await import("./sync");17    const lifecycle = await import("./sync-lifecycle");18    // Register the incoming pairing subscriber once. Best-effort: subsequent19    // sync.connectSyncHost / advertise calls trigger PEER_CONNECTED events20    // that route through the subscriber.21    lifecycle.setupIncomingPairingSubscriber();22    try {23      sync.connectSyncHost();24      lifecycle.onNativeHostConnected();25    } catch {26      // Native host not installed yet — lifecycle will engage when it is.27    }28  } catch (err) {29    console.warn("setupSyncLifecycle failed:", err);30  }31}3233export function start() {34  setupMessageHandler();35  void setupAutoLock();36  setupCommands();37  void setupPasskeyProxy();38  void setupSyncLifecycle();39}4041start();