CH-J Server Manager
Durchsuchen Sie Verzeichnisse und Dateien einer bestimmten Anwendungsausgabe.
Die Quellen werden unter der CH-J Proprietary Software License 1.14 bereitgestellt. Ihre Verfügbarkeit ändert die Lizenzbedingungen nicht und gewährt keine zusätzlichen Rechte.
"use strict";const path = require("node:path");function showLicenseWindow({ BrowserWindow, ipcMain, acceptance, language = "cs", onWindow = () => {} }) { return new Promise((resolve, reject) => { const window = new BrowserWindow({ title: "CH-J Server Manager — License", width: 900, height: 760, minWidth: 640, minHeight: 520, show: false, autoHideMenuBar: true, webPreferences: { preload: path.join(__dirname, "..", "..", "preload", "licensePreload.js"), contextIsolation: true, nodeIntegration: false, sandbox: true, webSecurity: true, spellcheck: false } }); onWindow(window); let accepted = false; let guidancePresented = false; let guidanceShown = false; function trusted(event) { if (window.isDestroyed() || event.sender !== window.webContents || event.senderFrame !== window.webContents.mainFrame) { throw new Error("Untrusted license IPC sender."); } } ipcMain.handle("license:read", (event) => { trusted(event); guidancePresented = true; return { text: acceptance.text, guidance: acceptance.guidance, ...acceptance.identity, language }; }); ipcMain.handle("license:show", (event, payload) => { trusted(event); if (!guidancePresented || payload?.guidanceSha256 !== acceptance.identity.guidanceSha256) { throw new Error("Display the current operational guidance before continuing."); } guidanceShown = true; return { ok: true }; }); ipcMain.handle("license:accept", (event, payload) => { trusted(event); if (!guidanceShown) throw new Error("Display operational guidance before accepting the license."); acceptance.accept({ ...payload, guidanceShown }); accepted = true; // Let the IPC reply reach the renderer before closing its window. setImmediate(() => window.close()); return { ok: true }; }); ipcMain.handle("license:decline", (event) => { trusted(event); setImmediate(() => window.close()); return { ok: true }; }); window.webContents.setWindowOpenHandler(() => ({ action: "deny" })); window.webContents.on("will-navigate", event => event.preventDefault()); window.webContents.on("will-attach-webview", event => event.preventDefault()); window.once("ready-to-show", () => window.show()); window.once("closed", () => { for (const channel of ["license:read", "license:show", "license:accept", "license:decline"]) ipcMain.removeHandler(channel); onWindow(null); resolve(accepted); }); window.loadFile(path.join(__dirname, "..", "..", "renderer", "license.html")).catch(error => { window.destroy(); reject(error); }); });}module.exports = { showLicenseWindow };SHA-256: 6fa6ddf1727d48995de3d72afef49d4450b1c36f2ffc2afc37f569e33c068915
SHA-256 des Archivs: 5ac91caf4fa32a6fdb114f2430deed486fbe7489d5eea343d1f034169fafb5e0