diff --git a/Dockerfile b/Dockerfile index eb625c3..8717b40 100644 --- a/Dockerfile +++ b/Dockerfile @@ -33,7 +33,7 @@ RUN chmod +x /app/scripts/entrypoint.sh ENV PORT=8080 ENV VAULT_ROOT=/vaults -ENV OBSIDIAN_VERSION=1.8.9 +ENV OBSIDIAN_VERSION=1.12.4 ENV OBSIDIAN_ASSETS_PATH=/app/obsidian-app EXPOSE 8080 diff --git a/server/config.js b/server/config.js index b2f2448..e729840 100644 --- a/server/config.js +++ b/server/config.js @@ -64,4 +64,18 @@ module.exports = { obsidianAssetsPath: process.env.OBSIDIAN_ASSETS_PATH || path.join(__dirname, "..", "investigation", "obsidian.asar.unpacked"), + + get obsidianVersion() { + const assetsPath = + process.env.OBSIDIAN_ASSETS_PATH || + path.join(__dirname, "..", "investigation", "obsidian.asar.unpacked"); + try { + const pkg = JSON.parse( + fs.readFileSync(path.join(assetsPath, "package.json"), "utf-8"), + ); + return pkg.version || "0.0.0"; + } catch { + return "0.0.0"; + } + }, }; diff --git a/server/routes/vault.js b/server/routes/vault.js index a63ee05..9bb3d80 100644 --- a/server/routes/vault.js +++ b/server/routes/vault.js @@ -28,7 +28,7 @@ router.get("/info", (req, res) => { name: vaultId, path: vaultPath, platform: process.platform, - version: "0.1.0", + version: config.obsidianVersion, }); }); diff --git a/shims/electron/ipc-renderer.js b/shims/electron/ipc-renderer.js index 44ce92b..051c97a 100644 --- a/shims/electron/ipc-renderer.js +++ b/shims/electron/ipc-renderer.js @@ -4,7 +4,7 @@ const listeners = new Map(); const syncHandlers = { vault: () => window.__vaultConfig || { id: "default-vault", path: "/" }, - version: () => "1.8.9", + version: () => window.__obsidianVersion || "0.0.0", "is-dev": () => false, "file-url": () => "/vault-files/" + encodeURIComponent(window.__currentVaultId || "") + "/", diff --git a/shims/electron/remote/app.js b/shims/electron/remote/app.js index 0c1faee..cddbfed 100644 --- a/shims/electron/remote/app.js +++ b/shims/electron/remote/app.js @@ -12,7 +12,7 @@ export const appShim = { }, getVersion() { - return "1.8.9"; + return window.__obsidianVersion || "0.0.0"; }, getName() { diff --git a/shims/electron/remote/index.js b/shims/electron/remote/index.js index 0118fdd..8707c37 100644 --- a/shims/electron/remote/index.js +++ b/shims/electron/remote/index.js @@ -25,6 +25,17 @@ export const remoteShim = { screen: screenShim, nativeImage: nativeImageShim, Notification: notificationShim, + safeStorage: { + isEncryptionAvailable() { + return false; + }, + encryptString(plainText) { + return Buffer.from(plainText); + }, + decryptString(encrypted) { + return encrypted.toString(); + }, + }, getCurrentWindow() { return windowShim._current(); diff --git a/shims/loader.js b/shims/loader.js index 1b33475..1321af1 100644 --- a/shims/loader.js +++ b/shims/loader.js @@ -141,11 +141,16 @@ window.__currentVaultId = _urlParams.get("vault") || ""; if (xhr.status === 200) { const info = JSON.parse(xhr.responseText); window.__currentVaultId = info.id; + window.__obsidianVersion = info.version || "0.0.0"; window.__vaultConfig = { id: info.id, path: "/", }; console.log("[obsidian-bridge] Vault:", window.__vaultConfig); + console.log( + "[obsidian-bridge] Obsidian version:", + window.__obsidianVersion, + ); } else { console.warn("[obsidian-bridge] No vault found, will show manager"); }