(function installIpcLogger(WandEnhancer) { if (globalThis.__wandIpcLoggerInstalled) { return; } globalThis.__wandIpcLoggerInstalled = true; try { const electron = window.require ? window.require('electron') : null; if (!electron?.ipcRenderer) { console.warn( '[WandEnhancer] ipc-logger: electron.ipcRenderer not found. Node integration might be disabled or hidden behind contextBridge.', ); return; } const { ipcRenderer } = electron; // Backup original methods const originalInvoke = ipcRenderer.invoke.bind(ipcRenderer); const originalSend = ipcRenderer.send.bind(ipcRenderer); // Hook invoke (Promises) ipcRenderer.invoke = async (channel, ...args) => { const startTime = performance.now(); try { const result = await originalInvoke(channel, ...args); const duration = (performance.now() - startTime).toFixed(1); console.log( `%c[IPC INVOKE]%c ${channel} %c(${duration}ms) =>`, 'color: #00c7f2; font-weight: bold;', 'color: white;', 'color: gray;', { args, result }, ); return result; } catch (err) { console.error( `%c[IPC INVOKE ERROR]%c ${channel} =>`, 'color: #ff0056; font-weight: bold;', 'color: white;', { args, err }, ); throw err; } }; // Hook send (Fire & Forget) ipcRenderer.send = (channel, ...args) => { console.log( `%c[IPC SEND]%c ${channel} =>`, 'color: #acff35; font-weight: bold;', 'color: white;', { args }, ); return originalSend(channel, ...args); }; console.log( '%c[WandEnhancer]%c IPC Logger installed successfully! Use Ctrl+Shift+D to view logs.', 'color: #1293ff; font-weight: bold;', 'color: inherit;', ); } catch (err) { console.error('[WandEnhancer] Failed to hook IPC:', err); } })(globalThis.WandEnhancer);