Major improvements: - Replaced 226 Chinese comments with clear English equivalents across 16 files - Backend security files: Complete English documentation for KEK-DEK architecture - Frontend drag-drop hooks: Full English comments for file operations - Database routes: English comments for all encryption operations - Removed V1/V2 version identifiers, unified to single secure architecture Files affected: - Backend (11 files): Security session, user/system key managers, encryption operations - Frontend (5 files): Drag-drop functionality, API communication, type definitions - Deleted obsolete V1 security files: encryption-key-manager, database-migration Benefits: - International developer collaboration enabled - Professional coding standards maintained - Technical accuracy preserved for all cryptographic terms - Zero functional impact, TypeScript compilation and tests pass 🎯 Linus-style simplification: Code now speaks one language - engineering excellence. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
47 lines
1.6 KiB
JavaScript
47 lines
1.6 KiB
JavaScript
const { contextBridge, ipcRenderer } = require("electron");
|
|
|
|
contextBridge.exposeInMainWorld("electronAPI", {
|
|
getAppVersion: () => ipcRenderer.invoke("get-app-version"),
|
|
getPlatform: () => ipcRenderer.invoke("get-platform"),
|
|
|
|
getServerConfig: () => ipcRenderer.invoke("get-server-config"),
|
|
saveServerConfig: (config) =>
|
|
ipcRenderer.invoke("save-server-config", config),
|
|
testServerConnection: (serverUrl) =>
|
|
ipcRenderer.invoke("test-server-connection", serverUrl),
|
|
|
|
showSaveDialog: (options) => ipcRenderer.invoke("show-save-dialog", options),
|
|
showOpenDialog: (options) => ipcRenderer.invoke("show-open-dialog", options),
|
|
|
|
onUpdateAvailable: (callback) => ipcRenderer.on("update-available", callback),
|
|
onUpdateDownloaded: (callback) =>
|
|
ipcRenderer.on("update-downloaded", callback),
|
|
|
|
removeAllListeners: (channel) => ipcRenderer.removeAllListeners(channel),
|
|
isElectron: true,
|
|
isDev: process.env.NODE_ENV === "development",
|
|
|
|
invoke: (channel, ...args) => ipcRenderer.invoke(channel, ...args),
|
|
|
|
// ================== Drag & Drop API ==================
|
|
|
|
// Create temporary file for dragging
|
|
createTempFile: (fileData) =>
|
|
ipcRenderer.invoke("create-temp-file", fileData),
|
|
|
|
// Create temporary folder for dragging
|
|
createTempFolder: (folderData) =>
|
|
ipcRenderer.invoke("create-temp-folder", folderData),
|
|
|
|
// Start dragging to desktop
|
|
startDragToDesktop: (dragData) =>
|
|
ipcRenderer.invoke("start-drag-to-desktop", dragData),
|
|
|
|
// Cleanup temporary files
|
|
cleanupTempFile: (tempId) => ipcRenderer.invoke("cleanup-temp-file", tempId),
|
|
});
|
|
|
|
window.IS_ELECTRON = true;
|
|
|
|
console.log("electronAPI exposed to window");
|