const Config = (() => { // Función para codificar en Base64 const encode = (str) => btoa(unescape(encodeURIComponent(str))); // Función para decodificar en Base64 const decode = (str) => decodeURIComponent(escape(atob(str))); // Configuración privada con datos encriptados const _settings = { isActivated: true, defaultLicense: "SF-DX5EZ7-ART", licenseKey: "", encryptedExpectedH1Text: "U3RyZWFtRnVzaW9u", encryptedExpectedApiKey: "MzJlNWU1Mzk5OWUzODBhMDI5MWQ2NmZiMzA0MTUzZmU=", }; // Almacenamiento local const _storage = { saveLicense: (license) => localStorage.setItem("streamfusion_license", license), getLicense: () => localStorage.getItem("streamfusion_license"), setActivated: (value) => localStorage.setItem("streamfusion_activated", value ? "true" : "false"), isActivated: () => localStorage.getItem("streamfusion_activated") === "true", clearLicense: () => { localStorage.removeItem("streamfusion_license"); localStorage.removeItem("streamfusion_activated"); } }; // API público return { getSettings: () => ({ ..._settings, expectedH1Text: decode(_settings.encryptedExpectedH1Text), expectedApiKey: decode(_settings.encryptedExpectedApiKey), }), setActivated: (value) => { _settings.isActivated = value; }, setLicenseKey: (value) => { _settings.licenseKey = value; }, storage: { saveLicense: _storage.saveLicense, getLicense: _storage.getLicense, setActivated: _storage.setActivated, isActivated: _storage.isActivated, clearLicense: _storage.clearLicense } }; })();