diff --git a/public/uncloseai.js b/public/uncloseai.js index d0e9386..cf47868 100644 --- a/public/uncloseai.js +++ b/public/uncloseai.js @@ -16,6 +16,30 @@ import * as Storage from "./src/storage.js"; import * as Translation from "./src/translation.js"; import * as TTS from "./src/tts.js"; import * as UI from "./src/ui.js"; +import { UncloseVault } from "./src/vault.js"; + +// ------------------------- +// Vault Support +// ------------------------- + +// Load CryptoJS dynamically for vault encryption +async function ensureCryptoJS() { + if (typeof CryptoJS !== 'undefined') return true; + + return new Promise((resolve) => { + const script = document.createElement('script'); + script.src = 'https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.2.0/crypto-js.min.js'; + script.onload = () => resolve(true); + script.onerror = () => { + console.warn('uncloseai.js: Failed to load CryptoJS - vault features disabled'); + resolve(false); + }; + document.head.appendChild(script); + }); +} + +// Export vault for external use +export { UncloseVault }; // ------------------------- // Public API - Main Functions @@ -112,11 +136,19 @@ window.hideProgressIndicator = FileUpload.hideProgressIndicator; window.handleTTSFromElement = UI.handleTTSFromElement; window.handleUploadFromElement = UI.handleUploadFromElement; window.handleSmartTranslate = UI.handleSmartTranslate; +window.UncloseVault = UncloseVault; // Initialize on page load -window.addEventListener("load", () => { +window.addEventListener("load", async () => { console.log("uncloseai.js: window.onload event fired."); + // Load CryptoJS and initialize vault early + await ensureCryptoJS(); + if (UncloseVault.isAvailable()) { + const restored = UncloseVault.init(); + console.log("uncloseai.js: Vault initialized, session restored:", restored); + } + // Check skip init flag first if (window.UNCLOSEAI_SKIP_INIT === true) { console.log(