"use strict"; const electron = require("electron"); var IPC_EVENTS = /* @__PURE__ */ ((IPC_EVENTS2) => { IPC_EVENTS2["HOST_API_FETCH"] = "hostapi:fetch"; IPC_EVENTS2["EXTERNAL_OPEN"] = "external-open"; IPC_EVENTS2["APP_SET_FRAMELESS"] = "app:set-frameless"; IPC_EVENTS2["APP_LOAD_PAGE"] = "app:load-page"; IPC_EVENTS2["TAB_CREATE"] = "tab:create"; IPC_EVENTS2["TAB_LIST"] = "tab:list"; IPC_EVENTS2["TAB_NAVIGATE"] = "tab:navigate"; IPC_EVENTS2["TAB_RELOAD"] = "tab:reload"; IPC_EVENTS2["TAB_BACK"] = "tab:back"; IPC_EVENTS2["TAB_FORWARD"] = "tab:forward"; IPC_EVENTS2["TAB_SWITCH"] = "tab:switch"; IPC_EVENTS2["TAB_CLOSE"] = "tab:close"; IPC_EVENTS2["LOG_TO_MAIN"] = "log-to-main"; IPC_EVENTS2["READ_FILE"] = "read-file"; IPC_EVENTS2["INVOKE"] = "ipc:invoke"; IPC_EVENTS2["INVOKE_ASYNC"] = "ipc:invokeAsync"; IPC_EVENTS2["APP_MINIMIZE"] = "app:minimize"; IPC_EVENTS2["APP_MAXIMIZE"] = "app:maximize"; IPC_EVENTS2["APP_QUIT"] = "app:quit"; IPC_EVENTS2["FILE_READ"] = "file:read"; IPC_EVENTS2["FILE_WRITE"] = "file:write"; IPC_EVENTS2["CUSTOM_EVENT"] = "custom:event"; IPC_EVENTS2["TIME_UPDATE"] = "time:update"; IPC_EVENTS2["RENDERER_IS_READY"] = "renderer-ready"; IPC_EVENTS2["SHOW_CONTEXT_MENU"] = "show-context-menu"; IPC_EVENTS2["START_A_DIALOGUE"] = "start-a-dialogue"; IPC_EVENTS2["OPEN_WINDOW"] = "open-window"; IPC_EVENTS2["LOG_DEBUG"] = "log-debug"; IPC_EVENTS2["LOG_INFO"] = "log-info"; IPC_EVENTS2["LOG_WARN"] = "log-warn"; IPC_EVENTS2["LOG_ERROR"] = "log-error"; IPC_EVENTS2["CONFIG_UPDATED"] = "config-updated"; IPC_EVENTS2["SET_CONFIG"] = "set-config"; IPC_EVENTS2["GET_CONFIG"] = "get-config"; IPC_EVENTS2["UPDATE_CONFIG"] = "update-config"; IPC_EVENTS2["SET_THEME_MODE"] = "set-theme-mode"; IPC_EVENTS2["GET_THEME_MODE"] = "get-theme-mode"; IPC_EVENTS2["IS_DARK_THEME"] = "is-dark-theme"; IPC_EVENTS2["THEME_MODE_UPDATED"] = "theme-mode-updated"; IPC_EVENTS2["EXECUTE_SCRIPT"] = "execute-script"; IPC_EVENTS2["TASK_PROGRESS"] = "task:progress"; IPC_EVENTS2["TASK_STARTED"] = "task:started"; IPC_EVENTS2["TASK_COMPLETED"] = "task:completed"; IPC_EVENTS2["OPEN_CHANNEL"] = "open-channel"; IPC_EVENTS2["SCRIPT_LIST"] = "script:list"; IPC_EVENTS2["SCRIPT_GET"] = "script:get"; IPC_EVENTS2["SCRIPT_SAVE"] = "script:save"; IPC_EVENTS2["SCRIPT_DELETE"] = "script:delete"; IPC_EVENTS2["SCRIPT_TOGGLE"] = "script:toggle"; IPC_EVENTS2["SCRIPT_RUN"] = "script:run"; IPC_EVENTS2["SCRIPT_RECORD_START"] = "script:record-start"; IPC_EVENTS2["SCRIPT_RECORD_STOP"] = "script:record-stop"; IPC_EVENTS2["SCRIPT_CODEGEN"] = "script:codegen"; IPC_EVENTS2["GATEWAY_RPC"] = "gateway:rpc"; IPC_EVENTS2["GATEWAY_EVENT"] = "gateway:event"; IPC_EVENTS2["UPDATE_CHECK"] = "update:check"; IPC_EVENTS2["UPDATE_DOWNLOAD"] = "update:download"; IPC_EVENTS2["UPDATE_INSTALL"] = "update:install"; IPC_EVENTS2["UPDATE_VERSION"] = "update:version"; IPC_EVENTS2["UPDATE_STATUS_CHANGED"] = "update:status-changed"; return IPC_EVENTS2; })(IPC_EVENTS || {}); const api = { versions: process.versions, external: { open: (url) => electron.ipcRenderer.invoke("external-open", url) }, platform: process.platform, windowMinimize: () => electron.ipcRenderer.invoke("window:minimize"), windowMaximize: () => electron.ipcRenderer.invoke("window:maximize"), windowClose: () => electron.ipcRenderer.invoke("window:close"), windowIsMaximized: () => electron.ipcRenderer.invoke("window:isMaximized"), viewIsReady: () => electron.ipcRenderer.send(IPC_EVENTS.RENDERER_IS_READY), app: { setFrameless: (route) => electron.ipcRenderer.invoke(IPC_EVENTS.APP_SET_FRAMELESS, route), loadPage: (page) => electron.ipcRenderer.invoke(IPC_EVENTS.APP_LOAD_PAGE, page) }, // 通过 IPC 调用主进程 readFile: (filePath) => electron.ipcRenderer.invoke(IPC_EVENTS.READ_FILE, filePath), // 异步调用(映射为 electron 的 invoke) invoke: (channel, ...args) => electron.ipcRenderer.invoke(channel, ...args), // 异步调用(为了兼容老代码) invokeAsync: (channel, ...args) => electron.ipcRenderer.invoke(channel, ...args), // 监听主进程消息 on: (event, callback) => { const subscription = (_event, ...args) => callback(...args); electron.ipcRenderer.on(event, subscription); return () => electron.ipcRenderer.removeListener(event, subscription); }, // 发送消息到主进程 send: (channel, ...args) => electron.ipcRenderer.send(channel, ...args), // 发送日志 logger: { debug: (message, ...meta) => electron.ipcRenderer.send(IPC_EVENTS.LOG_DEBUG, message, ...meta), info: (message, ...meta) => electron.ipcRenderer.send(IPC_EVENTS.LOG_INFO, message, ...meta), warn: (message, ...meta) => electron.ipcRenderer.send(IPC_EVENTS.LOG_WARN, message, ...meta), error: (message, ...meta) => electron.ipcRenderer.send(IPC_EVENTS.LOG_ERROR, message, ...meta) }, // 执行脚本 executeScript: (params) => electron.ipcRenderer.invoke(IPC_EVENTS.EXECUTE_SCRIPT, params), // 任务事件 onTaskProgress: (cb) => { const subscription = (_event, payload) => cb(payload); electron.ipcRenderer.on(IPC_EVENTS.TASK_PROGRESS, subscription); return () => electron.ipcRenderer.removeListener(IPC_EVENTS.TASK_PROGRESS, subscription); }, onTaskStarted: (cb) => { const subscription = (_event, payload) => cb(payload); electron.ipcRenderer.on(IPC_EVENTS.TASK_STARTED, subscription); return () => electron.ipcRenderer.removeListener(IPC_EVENTS.TASK_STARTED, subscription); }, onTaskCompleted: (cb) => { const subscription = (_event, payload) => cb(payload); electron.ipcRenderer.on(IPC_EVENTS.TASK_COMPLETED, subscription); return () => electron.ipcRenderer.removeListener(IPC_EVENTS.TASK_COMPLETED, subscription); }, // 打开渠道 openChannel: (channels) => electron.ipcRenderer.invoke(IPC_EVENTS.OPEN_CHANNEL, channels), // 脚本管理 scriptApi: { list: () => electron.ipcRenderer.invoke(IPC_EVENTS.SCRIPT_LIST), get: (id) => electron.ipcRenderer.invoke(IPC_EVENTS.SCRIPT_GET, id), save: (input) => electron.ipcRenderer.invoke(IPC_EVENTS.SCRIPT_SAVE, input), delete: (id) => electron.ipcRenderer.invoke(IPC_EVENTS.SCRIPT_DELETE, id), toggle: (id, enabled) => electron.ipcRenderer.invoke(IPC_EVENTS.SCRIPT_TOGGLE, id, enabled), run: (id) => electron.ipcRenderer.invoke(IPC_EVENTS.SCRIPT_RUN, id), startRecording: (url) => electron.ipcRenderer.invoke(IPC_EVENTS.SCRIPT_RECORD_START, url), stopRecording: () => electron.ipcRenderer.invoke(IPC_EVENTS.SCRIPT_RECORD_STOP), codegen: (id, url) => electron.ipcRenderer.invoke(IPC_EVENTS.SCRIPT_CODEGEN, id, url) } }; electron.contextBridge.exposeInMainWorld("api", api);