mirror of
https://github.com/R0m1k3/EveFlow.git
synced 2026-10-11 17:29:03 +02:00
32 lines
1.7 KiB
JavaScript
32 lines
1.7 KiB
JavaScript
const { contextBridge, ipcRenderer } = require('electron');
|
|
|
|
// Exposition sécurisée via contextBridge (Zéro Trust contextIsolation)
|
|
contextBridge.exposeInMainWorld('electronAPI', {
|
|
windowControl: (action) => ipcRenderer.send('window-control', action),
|
|
setWindowMode: (mode) => ipcRenderer.send('set-window-mode', mode),
|
|
onWindowModeChanged: (callback) => {
|
|
const subscription = (event, mode) => callback(mode);
|
|
ipcRenderer.on('window-mode-changed', subscription);
|
|
return () => ipcRenderer.removeListener('window-mode-changed', subscription);
|
|
},
|
|
// Logging : envoie une entrée structurée vers le processus principal pour écriture disque
|
|
writeLog: (entry) => ipcRenderer.send('write-log', entry),
|
|
// Webhook : abonnement aux events pushés par Hermes
|
|
onHermesPush: (callback) => {
|
|
const subscription = (event, data) => callback(data);
|
|
ipcRenderer.on('hermes-push', subscription);
|
|
return () => ipcRenderer.removeListener('hermes-push', subscription);
|
|
},
|
|
// Store persistant fichier — indépendant de l'origine HTTP/file://
|
|
storeGet: (key) => ipcRenderer.invoke('store-get', key),
|
|
storeSet: (key, value) => ipcRenderer.invoke('store-set', key, value),
|
|
// Lecture de fichier local sécurisée
|
|
readLocalFile: (filePath) => ipcRenderer.invoke('read-local-file', filePath),
|
|
// Télémétrie réelle système
|
|
getSystemMetrics: () => ipcRenderer.invoke('get-system-metrics'),
|
|
// Écriture de fichier partagé
|
|
writeSharedFile: (filename, content, isBase64) => ipcRenderer.invoke('write-shared-file', filename, content, isBase64),
|
|
// Ouverture de fichier local
|
|
openLocalFile: (filePath) => ipcRenderer.invoke('open-local-file', filePath),
|
|
});
|