const { contextBridge, ipcRenderer } = require('electron'); // Exposer des APIs sécurisées au renderer process contextBridge.exposeInMainWorld('electron', { platform: process.platform, // Token management getToken: () => ipcRenderer.invoke('get-token'), setToken: (token: string) => ipcRenderer.invoke('set-token', token), removeToken: () => ipcRenderer.invoke('remove-token'), // Auth events loginSuccess: (token: string) => ipcRenderer.send('login-success', token), logout: () => ipcRenderer.send('logout'), // Database operations generateEncryptionKey: (userId: string) => ipcRenderer.invoke('generate-encryption-key', userId), getUserEncryptionKey: (userId: string) => ipcRenderer.invoke('get-user-encryption-key', userId), setUserEncryptionKey: (userId: string, encryptionKey: string) => ipcRenderer.invoke('set-user-encryption-key', userId, encryptionKey), dbInitialize: (userId: string, encryptionKey: string) => ipcRenderer.invoke('db-initialize', userId, encryptionKey), dbGetBooks: () => ipcRenderer.invoke('db-get-books'), dbGetBook: (bookId: string) => ipcRenderer.invoke('db-get-book', bookId), dbSaveBook: (book: any, authorId?: string) => ipcRenderer.invoke('db-save-book', book, authorId), dbDeleteBook: (bookId: string) => ipcRenderer.invoke('db-delete-book', bookId), dbSaveChapter: (chapter: any, bookId: string, contentId?: string) => ipcRenderer.invoke('db-save-chapter', chapter, bookId, contentId), dbGetCharacters: (bookId: string) => ipcRenderer.invoke('db-get-characters', bookId), dbSaveCharacter: (character: any, bookId: string) => ipcRenderer.invoke('db-save-character', character, bookId), dbGetConversations: (bookId: string) => ipcRenderer.invoke('db-get-conversations', bookId), dbSaveConversation: (conversation: any, bookId: string) => ipcRenderer.invoke('db-save-conversation', conversation, bookId), dbGetSyncStatus: () => ipcRenderer.invoke('db-get-sync-status'), dbGetPendingChanges: (limit?: number) => ipcRenderer.invoke('db-get-pending-changes', limit), });