[Feat] New settings passwd UX & Config enc support

This commit is contained in:
Minoricew
2025-06-05 00:35:50 +08:00
parent fbc5cf1f57
commit 7c8d3d4fbc
33 changed files with 2006 additions and 675 deletions

View File

@@ -11,7 +11,7 @@ const buildIpcMain = (electron) => {
/**
* @type {import("../../types/main/electron").AuraIPCMain}
*/
// @ts-ignore
// @ts-expect-error
const ipcMain = electron.ipcMain;
/**
@@ -28,11 +28,33 @@ const buildIpcMain = (electron) => {
* @param {string} chan
* @param {any} targetData
*/
if (!global.__HUGO_AURA__.hookedWindows) {
return {
success: false,
};
}
const sendDataToWebContents = (key, chan, targetData) => {
const webContents =
global.__HUGO_AURA__.hookedWindows.get(key).webContents;
// @ts-expect-error
global.__HUGO_AURA__.hookedWindows.get(key)?.webContents;
if (grep !== webContents) webContents.send(chan, targetData);
if (!webContents) {
console.error(
`[HugoAura / Main / IPC / ERROR] Failed sending data to ${key}: WebContents not found`
);
return {
success: false,
};
}
if (grep !== webContents) {
webContents.send(chan, targetData);
}
return {
success: true,
};
};
if (windowKey === "*") {
@@ -51,6 +73,7 @@ const buildIpcMain = (electron) => {
}
};
const { applyConfigIpcHandler } = require("./ipcModules/configIpcHandler");
const { applyPlsIpcHandler } = require("./ipcModules/plsIpcHandler");
ipcMain.handle("$aura.base.restartApplication", async () => {
@@ -58,6 +81,7 @@ const buildIpcMain = (electron) => {
app.exit(0);
});
applyConfigIpcHandler(ipcMain);
applyPlsIpcHandler(ipcMain);
};

View File

@@ -0,0 +1,79 @@
// @ts-check
const __SCOPE = "main";
/**
*
* @param {import("../../../types/main/electron").AuraIPCMain} ipcMain
*/
const applyConfigIpcHandler = (ipcMain) => {
const methodBase = "$aura.config";
const mainEventBus = global.__HUGO_AURA_EVENT_BUS__;
const ConfigManager = require("../../shared/configManager");
const configManager = global.__HUGO_AURA_CONFIG_MGR__
? global.__HUGO_AURA_CONFIG_MGR__
: new ConfigManager();
ipcMain.on(`${methodBase}.refreshMainConfig`, (_event) => {
mainEventBus.emit("$aura.config.refreshConfig");
});
ipcMain.handle(
`${methodBase}.setConfigEncSettings`,
(
/** @type {import("electron").IpcMainInvokeEvent} */ _event,
/** @type {{ target: boolean }} */ arg
) => {
mainEventBus.emit("$aura.config.updateConfigEncSettings", arg.target);
return {
success: true,
};
}
);
ipcMain.on(`${methodBase}.getConfigFromMainSync`, (event, _arg) => {
if (
global.__HUGO_AURA_CONFIG__ &&
Object.keys(global.__HUGO_AURA_CONFIG__).length !== 0
) {
event.returnValue = {
success: true,
data: global.__HUGO_AURA_CONFIG__,
};
} else {
console.warn(
"[HugoAura / Main / IPC / Config / WARN] Global config var not found!"
);
event.returnValue = {
success: false,
data: {},
};
}
});
ipcMain.handle(
`${methodBase}.dispatchConfigFromRenderer`,
(_event, /** @type {{data: string, writeConfig?: boolean}} */ arg) => {
const parsedData = JSON.parse(arg.data);
global.__HUGO_AURA_CONFIG__ = parsedData;
if (arg.writeConfig) {
const result = configManager.writeConfig(parsedData);
if (!result) {
return {
success: false,
};
}
}
return {
success: true,
};
}
);
};
module.exports = { applyConfigIpcHandler };

View File

@@ -52,7 +52,7 @@ const applyPlsIpcHandler = (ipcMain) => {
`${methodBase}.getPlsStats`,
/**
*
* @returns {{ success: boolean; data: PLSStatus; }}
* @returns {{ success: boolean; data: PLSStatus | null | undefined; }}
*/
(_event, _arg) => {
return {
@@ -83,7 +83,7 @@ const applyPlsIpcHandler = (ipcMain) => {
`${methodBase}.getPlsSettings`,
/**
*
* @returns {{ success: boolean; data: Record<any, any> }}
* @returns {{ success: boolean; data: Record<any, any> | null | undefined }}
*/
(_event, _arg) => {
return {
@@ -113,7 +113,7 @@ const applyPlsIpcHandler = (ipcMain) => {
`${methodBase}.getPlsRules`,
/**
*
* @returns {{ success: boolean; data: Record<any, any> }}
* @returns {{ success: boolean; data: Record<any, any> | null | undefined }}
*/
(_event, _arg) => {
return {