Fresh history cut from cynarAI/evoo antigravity-handoff/project-timeline (Voice First + project timeline). Brand docs/titles as evOo; keep @rakazo/* packages as tech debt. Excludes node_modules, caches, secrets, voice blobs.
32 lines
1.3 KiB
JavaScript
32 lines
1.3 KiB
JavaScript
const { contextBridge, ipcRenderer } = require("electron");
|
|
|
|
contextBridge.exposeInMainWorld("rakazoDesktop", {
|
|
platform: process.platform,
|
|
localSettings: {
|
|
request: (pathname, body) =>
|
|
ipcRenderer.invoke("desktop.localSettings.request", pathname, body),
|
|
},
|
|
window: {
|
|
close: () => ipcRenderer.invoke("desktop.window.close"),
|
|
minimize: () => ipcRenderer.invoke("desktop.window.minimize"),
|
|
toggleMaximize: () => ipcRenderer.invoke("desktop.window.toggleMaximize"),
|
|
state: () => ipcRenderer.invoke("desktop.window.state"),
|
|
},
|
|
update: {
|
|
state: () => ipcRenderer.invoke("desktop.update.state"),
|
|
check: () => ipcRenderer.invoke("desktop.update.check"),
|
|
download: () => ipcRenderer.invoke("desktop.update.download"),
|
|
install: () => ipcRenderer.invoke("desktop.update.install"),
|
|
},
|
|
oauth: {
|
|
open: (url) => ipcRenderer.invoke("desktop.oauth.open", url),
|
|
cancel: (url) => ipcRenderer.invoke("desktop.oauth.cancel", url),
|
|
onCallback: (listener) => {
|
|
// The IpcRendererEvent stays in the preload: the renderer only sees the code.
|
|
const handler = (_event, callback) => listener(callback);
|
|
ipcRenderer.on("desktop.oauth.callback", handler);
|
|
return () => ipcRenderer.off("desktop.oauth.callback", handler);
|
|
},
|
|
},
|
|
});
|