From 4d64bc995f1ed54ecfa527344f6dda4911275b59 Mon Sep 17 00:00:00 2001 From: nicwands Date: Mon, 23 Mar 2026 16:30:38 -0400 Subject: [PATCH] core refactor for runtime support --- .github/workflows/build.yml | 47 -- out/main/index.js | 537 ++++++++++++------ out/preload/index.mjs | 24 +- .../__vite-browser-external-2Ng8QIWW.js | 4 - out/renderer/assets/geist-mono-BzrJhchg.woff2 | Bin 29352 -> 0 bytes out/renderer/assets/geist-mono-OFKGen7b.woff | Bin 39348 -> 0 bytes .../assets/geist-mono-bold-Bz_UliG4.woff | Bin 40668 -> 0 bytes .../assets/geist-mono-bold-CTLtpKvJ.woff2 | Bin 30592 -> 0 bytes .../assets/neuefraktur-A4S1ACH2.woff2 | Bin 20088 -> 0 bytes out/renderer/assets/neuefraktur-CwjUIZ0G.woff | Bin 23332 -> 0 bytes out/renderer/index.html | 18 - src/core/ConfigManager.js | 55 ++ src/core/IpcAdapter.js | 10 +- src/{main => core}/NodeStorage.js | 0 src/core/PluginManager.js | 58 +- src/core/PluginRegistry.js | 8 +- src/core/{Config.js => WebStorage.js} | 85 +-- src/core/index.js | 85 ++- src/core/types.ts | 4 - src/main/index.js | 68 +-- src/preload/index.js | 30 +- src/renderer/index.html | 6 +- src/renderer/src/components/NoteRow.vue | 1 - src/renderer/src/composables/useConfig.js | 8 +- src/renderer/src/composables/useCore.js | 11 + src/renderer/src/composables/useNotes.js | 4 +- src/renderer/src/composables/usePlugins.js | 19 +- src/renderer/src/libs/getNotesAPI.js | 6 +- src/renderer/src/main.js | 2 +- src/renderer/src/plugins/core.js | 11 +- src/renderer/src/views/Directory.vue | 4 - src/renderer/src/views/Preferences.vue | 15 +- 32 files changed, 634 insertions(+), 486 deletions(-) delete mode 100644 .github/workflows/build.yml delete mode 100644 out/renderer/assets/__vite-browser-external-2Ng8QIWW.js delete mode 100644 out/renderer/assets/geist-mono-BzrJhchg.woff2 delete mode 100644 out/renderer/assets/geist-mono-OFKGen7b.woff delete mode 100644 out/renderer/assets/geist-mono-bold-Bz_UliG4.woff delete mode 100644 out/renderer/assets/geist-mono-bold-CTLtpKvJ.woff2 delete mode 100644 out/renderer/assets/neuefraktur-A4S1ACH2.woff2 delete mode 100644 out/renderer/assets/neuefraktur-CwjUIZ0G.woff delete mode 100644 out/renderer/index.html create mode 100644 src/core/ConfigManager.js rename src/{main => core}/NodeStorage.js (100%) rename src/core/{Config.js => WebStorage.js} (51%) delete mode 100644 src/core/types.ts create mode 100644 src/renderer/src/composables/useCore.js diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index 34aef1e..0000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,47 +0,0 @@ -name: Build Electron App - -on: - push: - tags: - - 'v*' - -jobs: - build: - strategy: - fail-fast: false - matrix: - include: - - os: windows-latest - script: build:win - - os: macos-latest - script: build:mac - - os: ubuntu-latest - script: build:linux - - runs-on: ${{ matrix.os }} - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Setup Node - uses: actions/setup-node@v4 - with: - node-version: 22 - cache: npm - - - name: Install dependencies - run: npm ci - - - name: Run platform build - run: npm run ${{ matrix.script }} - env: - CSC_LINK: ${{ secrets.CSC_LINK }} - CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }} - - - name: Upload artifacts - uses: actions/upload-artifact@v4 - with: - name: ${{ matrix.os }}-build - path: | - dist/** diff --git a/out/main/index.js b/out/main/index.js index a6b22de..2969fc2 100644 --- a/out/main/index.js +++ b/out/main/index.js @@ -3,28 +3,61 @@ import { electronApp, optimizer, is } from "@electron-toolkit/utils"; import { app, ipcMain, BrowserWindow, shell } from "electron"; import filesystemPlugin from "@takerofnotes/plugin-filesystem"; import supabasePlugin from "@takerofnotes/plugin-supabase"; -import "libsodium-wrappers"; -import "uuid"; -import "flexsearch"; -import fs from "fs/promises"; -import path, { join } from "path"; +import sodium from "libsodium-wrappers"; +import { v4 } from "uuid"; +import { Index } from "flexsearch"; +import { join } from "path"; import __cjs_mod__ from "node:module"; const __filename = import.meta.filename; const __dirname = import.meta.dirname; const require2 = __cjs_mod__.createRequire(import.meta.url); +const createPluginManager = (registry) => { + let activePluginId = null; + let adapter = null; + return { + listPlugins() { + return registry.list(); + }, + getPlugin(pluginId) { + return registry.get(pluginId); + }, + getAdapter(pluginId, adapterConfig = {}) { + const plugin = registry.get(pluginId); + if (!plugin) { + throw new Error(`Plugin not found: ${pluginId}`); + } + return plugin.createAdapter(adapterConfig); + }, + setActivePlugin(pluginId, adapterConfig = {}) { + activePluginId = pluginId; + adapter = this.getAdapter(pluginId, adapterConfig); + return adapter; + }, + async testPlugin(pluginId, adapterConfig = {}) { + const plugin = registry.get(pluginId); + if (!plugin) { + throw new Error(`Plugin not found: ${pluginId}`); + } + const adapter2 = this.getAdapter(pluginId, adapterConfig); + await adapter2.init(); + return await adapter2.testConnection(); + }, + getActiveAdapter() { + return adapter; + }, + getActivePluginId() { + return activePluginId; + } + }; +}; class PluginRegistry { - constructor(environment = "web") { + constructor() { this.plugins = /* @__PURE__ */ new Map(); - this.environment = environment; } register(plugin) { if (!plugin.id) { throw new Error("Plugin must have an id"); } - const environments = plugin.environments || ["electron", "web"]; - if (!environments.includes(this.environment)) { - return; - } this.plugins.set(plugin.id, plugin); } get(id) { @@ -39,146 +72,314 @@ class PluginRegistry { })); } } -function createIpcStorage() { - return { - async load() { - return await window.api.getConfig(); - }, - async save(data) { - await window.api.setConfig(data); - } - }; -} -function getDefaultConfig() { +const getDefaultConfig = () => { return { activeAdapter: "supabase", - adapters: { - supabase: { - supabaseUrl: "https://example.supabase.co", - supabaseKey: "", - bucket: "notes" - } - }, - theme: "light" - }; -} -let config = null; -let configResolve = null; -const configPromise = new Promise((resolve) => { - configResolve = resolve; -}); -function createConfigManager(environment, customStorage = null) { - let storage; - if (customStorage) { - storage = customStorage; - } else { - storage = createIpcStorage(); - } - const loadConfig = async () => { - if (config !== null) { - return config; - } - const stored = await storage.load(); - config = stored || getDefaultConfig(); - if (!stored) { - await storage.save(config); - } - configResolve(config); - return config; - }; - const writeConfig = async (newConfig) => { - await storage.save(newConfig); - config = newConfig; - }; - const getConfig = () => { - if (config !== null) { - return config; - } - return configPromise; - }; - const setConfig = async (newConfig) => { - config = newConfig; - await writeConfig(newConfig); - }; - const refreshConfig = async () => { - config = await storage.load(); - configResolve(config); + theme: "dark" }; +}; +const createConfigManager = (storage) => { + let config = null; return { - loadConfig, - getConfig, - setConfig, - refreshConfig - }; -} -const USER_DATA_STRING = "__DEFAULT_USER_DATA__"; -function createNodeStorage(defaultPlugin = null) { - const configPath = path.join(app.getPath("userData"), "config.json"); - function resolveDefaults(obj) { - if (Array.isArray(obj)) { - return obj.map(resolveDefaults); - } else if (obj && typeof obj === "object") { - const resolved = {}; - for (const [key, value] of Object.entries(obj)) { - resolved[key] = resolveDefaults(value); + async loadConfig() { + if (config) return config; + const stored = await storage.load(); + config = stored || getDefaultConfig(); + if (!stored) { + await storage.save(config); } - return resolved; - } else if (typeof obj === "string" && obj.includes(USER_DATA_STRING)) { - return obj.replace(USER_DATA_STRING, app.getPath("userData")); - } - return obj; - } - return { - async load() { - let parsed; - try { - const raw = await fs.readFile(configPath, "utf8"); - parsed = JSON.parse(raw); - } catch { - parsed = null; - } - if (!parsed || !parsed.activeAdapter) { - const defaultConfig = {}; - if (defaultPlugin) { - for (const field of defaultPlugin.configSchema) { - defaultConfig[field.key] = field.default ?? null; - } - } - parsed = { - ...parsed ? parsed : {}, - activeAdapter: defaultPlugin?.id || "supabase", - adapters: {}, - theme: "dark" - }; - if (defaultPlugin) { - parsed.adapters[defaultPlugin.id] = defaultConfig; - } - await this.save(parsed); - } else { - parsed.adapters = resolveDefaults(parsed.adapters); - } - return parsed; + return config; }, - async save(configObject) { - const dir = path.dirname(configPath); - await fs.mkdir(dir, { recursive: true }); - const resolved = { - ...configObject, - adapters: resolveDefaults(configObject.adapters) - }; - await fs.writeFile( - configPath, - JSON.stringify(resolved, null, 2), - "utf8" + getConfig() { + return config; + }, + async setConfig(newConfig) { + config = newConfig; + await storage.save(newConfig); + }, + async refreshConfig() { + config = await storage.load(); + } + }; +}; +class NotesAPI { + constructor(adapter, encryptionKey = null) { + if (!adapter) { + throw new Error("NotesAPI requires a storage adapter"); + } + this.adapter = adapter; + this.notesCache = /* @__PURE__ */ new Map(); + this.encryptionKey = encryptionKey; + this._sodiumReady = false; + this.index = new Index({ + tokenize: "forward" + }); + } + async _initSodium() { + if (!this._sodiumReady) { + await sodium.ready; + this._sodiumReady = true; + } + } + _hexToUint8Array(hex) { + const bytes = new Uint8Array(hex.length / 2); + for (let i = 0; i < bytes.length; i++) { + bytes[i] = parseInt(hex.substr(i * 2, 2), 16); + } + return bytes; + } + _concatUint8Arrays(a, b) { + const result = new Uint8Array(a.length + b.length); + result.set(a, 0); + result.set(b, a.length); + return result; + } + _uint8ArrayToBase64(bytes) { + let binary = ""; + for (let i = 0; i < bytes.length; i++) { + binary += String.fromCharCode(bytes[i]); + } + return btoa(binary); + } + _base64ToUint8Array(base64) { + const binary = atob(base64); + const bytes = new Uint8Array(binary.length); + for (let i = 0; i < binary.length; i++) { + bytes[i] = binary.charCodeAt(i); + } + return bytes; + } + _encrypt(note) { + if (!this.encryptionKey) { + throw new Error("Encryption key not set"); + } + const key = this._hexToUint8Array(this.encryptionKey); + if (key.length !== 32) { + throw new Error( + "Encryption key must be 64 hex characters (32 bytes)" ); } - }; + const nonce = sodium.randombytes_buf(sodium.crypto_secretbox_NONCEBYTES); + const message = JSON.stringify(note); + const ciphertext = sodium.crypto_secretbox_easy( + new TextEncoder().encode(message), + nonce, + key + ); + const combined = this._concatUint8Arrays(nonce, ciphertext); + return this._uint8ArrayToBase64(combined); + } + _decrypt(encryptedData) { + if (!this.encryptionKey) { + throw new Error("Encryption key not set"); + } + const key = this._hexToUint8Array(this.encryptionKey); + if (key.length !== 32) { + throw new Error( + "Encryption key must be 64 hex characters (32 bytes)" + ); + } + let combined; + try { + combined = this._base64ToUint8Array(encryptedData); + } catch (e) { + throw new Error("Invalid encrypted data: not valid base64"); + } + if (combined.length < sodium.crypto_secretbox_NONCEBYTES + sodium.crypto_secretbox_MACBYTES) { + throw new Error("Invalid encrypted data: too short"); + } + const nonce = combined.slice(0, sodium.crypto_secretbox_NONCEBYTES); + const ciphertext = combined.slice(sodium.crypto_secretbox_NONCEBYTES); + let decrypted; + try { + decrypted = sodium.crypto_secretbox_open_easy( + ciphertext, + nonce, + key + ); + } catch (e) { + throw new Error("Decryption failed: wrong key or corrupted data"); + } + if (!decrypted) { + throw new Error("Decryption failed: no data returned"); + } + const decryptedStr = new TextDecoder().decode(decrypted); + try { + return JSON.parse(decryptedStr); + } catch (e) { + throw new Error( + `Decryption succeeded but invalid JSON: ${decryptedStr}` + ); + } + } + async init() { + await this._initSodium(); + await this.adapter.init(); + this.notesCache.clear(); + const encryptedNotes = await this.adapter.getAll(); + for (const encryptedNote of encryptedNotes) { + try { + const note = this._decrypt(encryptedNote.data || encryptedNote); + this.notesCache.set(note.id, note); + const searchText = note.plainText || this._extractPlainText(note.content); + this.index.add(note.id, note.title + "\n" + searchText); + } catch (error) { + console.error("Failed to decrypt note:", error); + } + } + } + _extractPlainText(content) { + if (!content) return ""; + if (typeof content === "string") return content; + const extractText = (node) => { + if (typeof node === "string") return node; + if (!node || !node.content) return ""; + return node.content.map(extractText).join(" "); + }; + return extractText(content); + } + getCategories() { + const categories = /* @__PURE__ */ new Set(); + for (const note of this.notesCache.values()) { + if (note.category) { + categories.add(note.category); + } + } + return Array.from(categories).sort(); + } + getCategoryNotes(categoryName = null) { + return Array.from(this.notesCache.values()).filter((n) => n.category === categoryName).sort((a, b) => new Date(b.updatedAt) - new Date(a.updatedAt)).map((n) => ({ ...n })); + } + getNote(id) { + const note = this.notesCache.get(id); + return note ? { ...note } : null; + } + async createNote(metadata = {}, content = "", plainText = "") { + const id = v4(); + const now = (/* @__PURE__ */ new Date()).toISOString(); + const note = { + id, + title: metadata.title || "Untitled", + category: metadata.category || null, + createdAt: now, + updatedAt: now, + content, + plainText + }; + const encryptedNote = { + id: note.id, + data: this._encrypt(note) + }; + this.notesCache.set(id, note); + this.index.add(id, note.title + "\n" + plainText); + await this.adapter.create(encryptedNote); + return note; + } + async deleteNote(id) { + await this.adapter.delete(id); + this.notesCache.delete(id); + this.index.remove(id); + } + async updateNote(id, updates = {}) { + const note = this.notesCache.get(id); + if (!note) throw new Error("Note not found"); + const allowedFields = ["title", "category", "content", "plainText"]; + for (const key of Object.keys(updates)) { + if (!allowedFields.includes(key)) { + throw new Error(`Invalid update field: ${key}`); + } + } + const updatedNote = { + ...note, + ...updates, + updatedAt: (/* @__PURE__ */ new Date()).toISOString() + }; + const encryptedNote = { + id: updatedNote.id, + data: this._encrypt(updatedNote) + }; + this.notesCache.set(id, updatedNote); + const searchText = updatedNote.plainText || this._extractPlainText(updatedNote.content); + this.index.update(id, updatedNote.title + "\n" + searchText); + await this.adapter.update(encryptedNote); + return updatedNote; + } + search(query) { + const ids = this.index.search(query, { + limit: 50, + suggest: true + }); + return ids.map((id) => this.notesCache.get(id)); + } } +const generateEncryptionKey = () => { + const array = new Uint8Array(32); + crypto.getRandomValues(array); + return Array.from(array).map((b) => b.toString(16).padStart(2, "0")).join(""); +}; +const initPluginManager = (runtime, plugins, config) => { + const registry = new PluginRegistry(); + for (const plugin of plugins) { + registry.register(plugin); + } + const manager = createPluginManager(registry); + manager.setActivePlugin( + config.activeAdapter, + config.adapters[config.activeAdapter] + ); + return manager; +}; +const initConfigManager = async (runtime) => { + let storage; + { + const { createNodeStorage } = await import("./NodeStorage-DrLmsh6l.js"); + storage = createNodeStorage(filesystemPlugin); + } + return createConfigManager(storage); +}; +const initializeCore = async (runtime, { plugins }) => { + const configManager = await initConfigManager(); + const config = await configManager.loadConfig(); + const pluginManager = initPluginManager(runtime, plugins, config); + let notesAPI = null; + let initPromise = null; + const getNotesAPI = async () => { + if (notesAPI) return notesAPI; + if (!initPromise) { + initPromise = (async () => { + const config2 = await configManager.loadConfig(); + let encryptionKey = config2?.encryptionKey; + if (!encryptionKey) { + encryptionKey = generateEncryptionKey(); + await configManager.setConfig({ + ...config2, + encryptionKey + }); + } + const pluginId = config2?.activeAdapter || "filesystem"; + const adapterConfig = config2?.adapters?.[pluginId] || {}; + const adapter = pluginManager.getAdapter( + pluginId, + adapterConfig + ); + notesAPI = new NotesAPI(adapter, encryptionKey); + await notesAPI.init(); + return notesAPI; + })(); + } + return initPromise; + }; + return { + runtime, + pluginManager, + configManager, + getNotesAPI + }; +}; const DEFAULT_WINDOW_SIZE = { width: 354, height: 549 }; const DEFAULT_MOVE_WINDOW_SIZE = { width: 708, height: 549 }; const preloadPath = join(__dirname, "../preload/index.mjs"); const rendererPath = join(__dirname, "../renderer/index.html"); -let activeAdapter = null; function createWindow() { const mainWindow = new BrowserWindow({ width: DEFAULT_WINDOW_SIZE.width, @@ -234,44 +435,28 @@ app.whenReady().then(async () => { win.webContents.send(event, data); }); }; - const registry = new PluginRegistry("electron"); - registry.register(filesystemPlugin); - registry.register(supabasePlugin); - const nodeStorage = createNodeStorage(filesystemPlugin); - const configManager = createConfigManager("electron", nodeStorage); - const initialConfig = await configManager.loadConfig(); - const setActivePlugin = async (pluginId) => { - const currentConfig = await configManager.loadConfig(); - await configManager.setConfig({ - ...currentConfig, - activeAdapter: pluginId - }); - const plugin = registry.get(pluginId); - const adapterConfig = currentConfig.adapters[pluginId] || {}; - activeAdapter = plugin.createAdapter(adapterConfig); - await activeAdapter.init(); - ipcMain.removeHandler("adapter:call"); - ipcMain.handle("adapter:call", async (_, method, args) => { - if (!activeAdapter[method]) { - throw new Error(`Invalid adapter method: ${method}`); - } - return await activeAdapter[method](...args); - }); - broadcastNoteChange("plugin-changed", pluginId); - return true; - }; - await setActivePlugin(initialConfig.activeAdapter); - ipcMain.handle("getConfig", async () => { - return await configManager.loadConfig(); + const { pluginManager, configManager } = await initializeCore( + "electron-main", + { + plugins: [filesystemPlugin, supabasePlugin] + } + ); + ipcMain.handle("pluginManager:call", async (_, method, ...args) => { + const methodCall = await pluginManager[method](...args); + if (method === "setActivePlugin") { + broadcastNoteChange("plugin-changed"); + } + return methodCall; }); - ipcMain.handle("setConfig", async (_, newConfig) => { - await configManager.setConfig(newConfig); + ipcMain.handle("configManager:call", async (_, method, ...args) => { + return await configManager[method](...args); }); - ipcMain.handle("listPlugins", async () => { - return registry.list(); - }); - ipcMain.handle("setActivePlugin", async (_, pluginId) => { - return await setActivePlugin(pluginId); + ipcMain.handle("adapter:call", async (_, method, ...args) => { + const adapter = pluginManager.getActiveAdapter(); + if (!adapter[method]) { + throw new Error(`Invalid adapter method: ${method}`); + } + return await adapter[method](...args); }); ipcMain.on("note-changed", (_, event, data) => { broadcastNoteChange(event, data); @@ -297,8 +482,8 @@ app.whenReady().then(async () => { } }); electronApp.setAppUserModelId("com.electron"); - app.on("browser-window-created", (_, window2) => { - optimizer.watchWindowShortcuts(window2); + app.on("browser-window-created", (_, window) => { + optimizer.watchWindowShortcuts(window); }); createWindow(); app.on("activate", function() { diff --git a/out/preload/index.mjs b/out/preload/index.mjs index fe8debb..b4f58bc 100644 --- a/out/preload/index.mjs +++ b/out/preload/index.mjs @@ -1,9 +1,20 @@ import { contextBridge, ipcRenderer } from "electron"; const api = { - getConfig: () => ipcRenderer.invoke("getConfig"), - setConfig: (config) => ipcRenderer.invoke("setConfig", config), - listPlugins: () => ipcRenderer.invoke("listPlugins"), - setActivePlugin: (pluginId) => ipcRenderer.invoke("setActivePlugin", pluginId), + pluginManagerCall: (method, ...args) => ipcRenderer.invoke( + "pluginManager:call", + method, + ...args.length ? args : [] + ), + configManagerCall: (method, ...args) => ipcRenderer.invoke( + "configManager:call", + method, + ...args.length ? args : [] + ), + adapterCall: (method, ...args) => ipcRenderer.invoke( + "adapter:call", + method, + ...args.length ? args : [] + ), openNoteWindow: (noteId) => { ipcRenderer.send("open-note-window", noteId); }, @@ -29,17 +40,12 @@ const api = { ipcRenderer.invoke("move-closed"); } }; -const adapter = { - call: (method, ...args) => ipcRenderer.invoke("adapter:call", method, args) -}; if (process.contextIsolated) { try { contextBridge.exposeInMainWorld("api", api); - contextBridge.exposeInMainWorld("adapter", adapter); } catch (error) { console.error(error); } } else { window.api = api; - window.adapter = adapter; } diff --git a/out/renderer/assets/__vite-browser-external-2Ng8QIWW.js b/out/renderer/assets/__vite-browser-external-2Ng8QIWW.js deleted file mode 100644 index f2316bd..0000000 --- a/out/renderer/assets/__vite-browser-external-2Ng8QIWW.js +++ /dev/null @@ -1,4 +0,0 @@ -const __viteBrowserExternal = {}; -export { - __viteBrowserExternal as default -}; diff --git a/out/renderer/assets/geist-mono-BzrJhchg.woff2 b/out/renderer/assets/geist-mono-BzrJhchg.woff2 deleted file mode 100644 index acf07fc933cbe68d391208c3f8a3d7d5fe7f4dfd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29352 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%0Di%n&}4QCYMHk^tU?kX?ah0+8xG(%fH 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 diff --git a/out/renderer/assets/geist-mono-OFKGen7b.woff b/out/renderer/assets/geist-mono-OFKGen7b.woff deleted file mode 100644 index 5d71b23118a4a61f6208cf8e03bfa33988223142..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39348 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ǔ)dH9C&b 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 diff --git a/out/renderer/assets/geist-mono-bold-Bz_UliG4.woff b/out/renderer/assets/geist-mono-bold-Bz_UliG4.woff deleted file mode 100644 index ecaceab9fa7be043422ce57e7481e29c9be4d4f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40668 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 E0PGqU)Bpeg diff --git a/out/renderer/assets/geist-mono-bold-CTLtpKvJ.woff2 b/out/renderer/assets/geist-mono-bold-CTLtpKvJ.woff2 deleted file mode 100644 index c44b8fd3a20832bb83ff4be85d917abb8f2feac2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30592 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 diff --git a/out/renderer/assets/neuefraktur-A4S1ACH2.woff2 b/out/renderer/assets/neuefraktur-A4S1ACH2.woff2 deleted file mode 100644 index 5c41f619fc41aa167e421ae72d2c32dd0fa0dc2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20088 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⪻?xYwkjANT4DmZeK=psTIS1g{gb2%rsz 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 K5C8%H{{RDp*e+B6 diff --git a/out/renderer/index.html b/out/renderer/index.html deleted file mode 100644 index c1b7715..0000000 --- a/out/renderer/index.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - Electron - - - - - - - -
- - diff --git a/src/core/ConfigManager.js b/src/core/ConfigManager.js new file mode 100644 index 0000000..8bb5190 --- /dev/null +++ b/src/core/ConfigManager.js @@ -0,0 +1,55 @@ +const getDefaultConfig = () => { + return { + activeAdapter: 'supabase', + theme: 'dark', + } +} + +export const createConfigManager = (storage) => { + let config = null + + return { + async loadConfig() { + if (config) return config + + const stored = await storage.load() + config = stored || getDefaultConfig() + + if (!stored) { + await storage.save(config) + } + + return config + }, + + getConfig() { + return config + }, + + async setConfig(newConfig) { + config = newConfig + await storage.save(newConfig) + }, + + async refreshConfig() { + config = await storage.load() + }, + } +} + +export const createConfigManagerClient = () => { + return { + async loadConfig() { + return await window.api.configManagerCall('loadConfig') + }, + async getConfig() { + return await window.api.configManagerCall('getConfig') + }, + async setConfig(newConfig) { + return await window.api.configManagerCall('setConfig', newConfig) + }, + async refreshConfig() { + return await window.api.configManagerCall('refreshConfig') + }, + } +} diff --git a/src/core/IpcAdapter.js b/src/core/IpcAdapter.js index b2fb5bc..3c7c5b8 100644 --- a/src/core/IpcAdapter.js +++ b/src/core/IpcAdapter.js @@ -4,22 +4,22 @@ export default class IpcAdapter { } async init() { - return await window.adapter.call('init') + return await window.api.adapterCall('init') } async getAll() { - return await window.adapter.call('getAll') + return await window.api.adapterCall('getAll') } async create(note) { - return await window.adapter.call('create', note) + return await window.api.adapterCall('create', note) } async update(note) { - return await window.adapter.call('update', note) + return await window.api.adapterCall('update', note) } async delete(id) { - return await window.adapter.call('delete', id) + return await window.api.adapterCall('delete', id) } } diff --git a/src/main/NodeStorage.js b/src/core/NodeStorage.js similarity index 100% rename from src/main/NodeStorage.js rename to src/core/NodeStorage.js diff --git a/src/core/PluginManager.js b/src/core/PluginManager.js index 5b3d47e..b9c9765 100644 --- a/src/core/PluginManager.js +++ b/src/core/PluginManager.js @@ -1,16 +1,8 @@ -import PluginRegistry from './PluginRegistry.js' -import IpcAdapter from './IpcAdapter.js' +import IpcAdapter from './IpcAdapter' -let registry = null -let activePluginId = null -let adapter = null - -export default function createPluginManager(environment, plugins = []) { - registry = new PluginRegistry(environment) - - for (const plugin of plugins) { - registry.register(plugin) - } +export const createPluginManager = (registry) => { + let activePluginId = null + let adapter = null return { listPlugins() { @@ -24,10 +16,6 @@ export default function createPluginManager(environment, plugins = []) { getAdapter(pluginId, adapterConfig = {}) { const plugin = registry.get(pluginId) - if (environment === 'electron') { - return new IpcAdapter() - } - if (!plugin) { throw new Error(`Plugin not found: ${pluginId}`) } @@ -41,6 +29,19 @@ export default function createPluginManager(environment, plugins = []) { return adapter }, + async testPlugin(pluginId, adapterConfig = {}) { + const plugin = registry.get(pluginId) + + if (!plugin) { + throw new Error(`Plugin not found: ${pluginId}`) + } + + const adapter = this.getAdapter(pluginId, adapterConfig) + await adapter.init() + + return await adapter.testConnection() + }, + getActiveAdapter() { return adapter }, @@ -48,9 +49,30 @@ export default function createPluginManager(environment, plugins = []) { getActivePluginId() { return activePluginId }, + } +} - getEnvironment() { - return environment +// Client for calling manager through IPC +export const createPluginManagerClient = () => { + return { + listPlugins() { + return window.api.pluginManagerCall('listPlugins') + }, + + getAdapter(pluginId, config) { + return new IpcAdapter(pluginId, config) + }, + + setActivePlugin(pluginId, adapterConfig) { + return window.api.pluginManagerCall( + 'setActivePlugin', + pluginId, + adapterConfig, + ) + }, + + async testPlugin(id, config) { + return window.api.pluginManagerCall('testPlugin', { id, config }) }, } } diff --git a/src/core/PluginRegistry.js b/src/core/PluginRegistry.js index 064fe60..9a681fe 100644 --- a/src/core/PluginRegistry.js +++ b/src/core/PluginRegistry.js @@ -1,7 +1,6 @@ export default class PluginRegistry { - constructor(environment = 'web') { + constructor() { this.plugins = new Map() - this.environment = environment } register(plugin) { @@ -9,11 +8,6 @@ export default class PluginRegistry { throw new Error('Plugin must have an id') } - const environments = plugin.environments || ['electron', 'web'] - if (!environments.includes(this.environment)) { - return - } - this.plugins.set(plugin.id, plugin) } diff --git a/src/core/Config.js b/src/core/WebStorage.js similarity index 51% rename from src/core/Config.js rename to src/core/WebStorage.js index a57e482..f25f2f1 100644 --- a/src/core/Config.js +++ b/src/core/WebStorage.js @@ -1,3 +1,4 @@ +const USER_DATA_STRING = '__DEFAULT_USER_DATA__' const DB_NAME = 'takerofnotes' const DB_VERSION = 1 const STORE_NAME = 'config' @@ -53,7 +54,7 @@ async function saveToDB(data) { }) } -function createIndexedDBStorage() { +export function createWebStorage() { return { async load() { const stored = await getFromDB() @@ -65,84 +66,4 @@ function createIndexedDBStorage() { } } -function createIpcStorage() { - return { - async load() { - return await window.api.getConfig() - }, - async save(data) { - await window.api.setConfig(data) - }, - } -} - -function getDefaultConfig() { - return { - activeAdapter: 'supabase', - theme: 'dark', - } -} - -let config = null -let configResolve = null -const configPromise = new Promise((resolve) => { - configResolve = resolve -}) - -export function createConfigManager(environment, customStorage = null) { - let storage - - if (customStorage) { - storage = customStorage - } else if (environment === 'electron') { - storage = createIpcStorage() - } else { - storage = createIndexedDBStorage() - } - - const loadConfig = async () => { - if (config !== null) { - return config - } - - const stored = await storage.load() - config = stored || getDefaultConfig() - if (!stored) { - await storage.save(config) - } - - configResolve(config) - return config - } - - const writeConfig = async (newConfig) => { - await storage.save(newConfig) - config = newConfig - } - - const getConfig = () => { - if (config !== null) { - return config - } - return configPromise - } - - const setConfig = async (newConfig) => { - config = newConfig - await writeConfig(newConfig) - } - - const refreshConfig = async () => { - config = await storage.load() - configResolve(config) - } - - return { - loadConfig, - getConfig, - setConfig, - refreshConfig, - } -} - -export default createConfigManager +export default createWebStorage diff --git a/src/core/index.js b/src/core/index.js index 6b06702..3c7b9d0 100644 --- a/src/core/index.js +++ b/src/core/index.js @@ -1,5 +1,14 @@ -import createPluginManager from './PluginManager.js' -import createConfigManager from './Config.js' +import filesystemPlugin from '@takerofnotes/plugin-filesystem' +import { + createPluginManager, + createPluginManagerClient, +} from './PluginManager.js' +import { createWebStorage } from './WebStorage.js' +import PluginRegistry from './PluginRegistry.js' +import { + createConfigManager, + createConfigManagerClient, +} from './ConfigManager.js' import NotesAPI from './NotesAPI.js' const generateEncryptionKey = () => { @@ -10,12 +19,46 @@ const generateEncryptionKey = () => { .join('') } -let coreInstance = null +const initPluginManager = (runtime, plugins, config) => { + if (runtime === 'electron-renderer') return createPluginManagerClient() -export function initializeCore(environment, plugins = []) { - const pluginManager = createPluginManager(environment, plugins) - const configManager = createConfigManager(environment) + const registry = new PluginRegistry() + for (const plugin of plugins) { + registry.register(plugin) + } + + const manager = createPluginManager(registry) + manager.setActivePlugin( + config.activeAdapter, + config.adapters[config.activeAdapter], + ) + + return manager +} + +const initConfigManager = async (runtime) => { + if (runtime === 'electron-renderer') return createConfigManagerClient() + + let storage + if (runtime === 'electron-main') { + const { createNodeStorage } = await import('./NodeStorage.js') + storage = createNodeStorage(filesystemPlugin) + } else if (runtime === 'web') { + storage = createWebStorage() + } + + return createConfigManager(storage) +} + +export const initializeCore = async (runtime, { plugins }) => { + const configManager = await initConfigManager(runtime) + const config = await configManager.loadConfig() + const pluginManager = initPluginManager(runtime, plugins, config) + + // ------------------------- + // NotesAPI bootstrap + // ------------------------- let notesAPI = null let initPromise = null @@ -30,12 +73,15 @@ export function initializeCore(environment, plugins = []) { if (!encryptionKey) { encryptionKey = generateEncryptionKey() - await configManager.setConfig({ ...config, encryptionKey }) + await configManager.setConfig({ + ...config, + encryptionKey, + }) } const pluginId = config?.activeAdapter || 'filesystem' - const adapterConfig = - config.adapters?.[config.activeAdapter] || {} + const adapterConfig = config?.adapters?.[pluginId] || {} + const adapter = pluginManager.getAdapter( pluginId, adapterConfig, @@ -51,27 +97,10 @@ export function initializeCore(environment, plugins = []) { return initPromise } - coreInstance = { - environment, + return { + runtime, pluginManager, configManager, getNotesAPI, } - - return coreInstance } - -export function getCore() { - if (!coreInstance) { - throw new Error('Core not initialized. Call initializeCore() first.') - } - return coreInstance -} - -export { default as PluginRegistry } from './PluginRegistry.js' -export { default as IpcAdapter } from './IpcAdapter.js' -export { default as NotesAPI } from './NotesAPI.js' -export { - default as createConfigManager, - createConfigManager as createConfig, -} from './Config.js' diff --git a/src/core/types.ts b/src/core/types.ts deleted file mode 100644 index e8fd446..0000000 --- a/src/core/types.ts +++ /dev/null @@ -1,4 +0,0 @@ -export enum ENVIRONMENTS { - ELECTRON = 'electron', - WEB = 'web', -} diff --git a/src/main/index.js b/src/main/index.js index 9aa21f3..8afddb8 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -3,8 +3,7 @@ import { electronApp, optimizer, is } from '@electron-toolkit/utils' import { app, shell, BrowserWindow, ipcMain } from 'electron' import filesystemPlugin from '@takerofnotes/plugin-filesystem' import supabasePlugin from '@takerofnotes/plugin-supabase' -import { PluginRegistry, createConfigManager } from '../core/index.js' -import { createNodeStorage } from './NodeStorage.js' +import { initializeCore } from '../core/index.js' import { join } from 'path' const DEFAULT_WINDOW_SIZE = { width: 354, height: 549 } @@ -13,8 +12,6 @@ const DEFAULT_MOVE_WINDOW_SIZE = { width: 708, height: 549 } const preloadPath = join(__dirname, '../preload/index.mjs') const rendererPath = join(__dirname, '../renderer/index.html') -let activeAdapter = null - function createWindow() { const mainWindow = new BrowserWindow({ width: DEFAULT_WINDOW_SIZE.width, @@ -78,55 +75,32 @@ app.whenReady().then(async () => { }) } - const registry = new PluginRegistry('electron') - registry.register(filesystemPlugin) - registry.register(supabasePlugin) + const { pluginManager, configManager } = await initializeCore( + 'electron-main', + { + plugins: [filesystemPlugin, supabasePlugin], + }, + ) - const nodeStorage = createNodeStorage(filesystemPlugin) - const configManager = createConfigManager('electron', nodeStorage) - const initialConfig = await configManager.loadConfig() + ipcMain.handle('pluginManager:call', async (_, method, ...args) => { + const methodCall = await pluginManager[method](...args) - const setActivePlugin = async (pluginId) => { - const currentConfig = await configManager.loadConfig() - await configManager.setConfig({ - ...currentConfig, - activeAdapter: pluginId, - }) + if (method === 'setActivePlugin') { + broadcastNoteChange('plugin-changed') + } - const plugin = registry.get(pluginId) - const adapterConfig = currentConfig.adapters[pluginId] || {} - activeAdapter = plugin.createAdapter(adapterConfig) - - await activeAdapter.init() - - ipcMain.removeHandler('adapter:call') - ipcMain.handle('adapter:call', async (_, method, args) => { - if (!activeAdapter[method]) { - throw new Error(`Invalid adapter method: ${method}`) - } - - return await activeAdapter[method](...args) - }) - - broadcastNoteChange('plugin-changed', pluginId) - - return true - } - - await setActivePlugin(initialConfig.activeAdapter) - - ipcMain.handle('getConfig', async () => { - return await configManager.loadConfig() + return methodCall }) - ipcMain.handle('setConfig', async (_, newConfig) => { - await configManager.setConfig(newConfig) + ipcMain.handle('configManager:call', async (_, method, ...args) => { + return await configManager[method](...args) }) + ipcMain.handle('adapter:call', async (_, method, ...args) => { + const adapter = pluginManager.getActiveAdapter() + if (!adapter[method]) { + throw new Error(`Invalid adapter method: ${method}`) + } - ipcMain.handle('listPlugins', async () => { - return registry.list() - }) - ipcMain.handle('setActivePlugin', async (_, pluginId) => { - return await setActivePlugin(pluginId) + return await adapter[method](...args) }) ipcMain.on('note-changed', (_, event, data) => { diff --git a/src/preload/index.js b/src/preload/index.js index 8a7c5ba..c5d042a 100644 --- a/src/preload/index.js +++ b/src/preload/index.js @@ -2,11 +2,24 @@ import { contextBridge, ipcRenderer } from 'electron' // Custom APIs for renderer const api = { - getConfig: () => ipcRenderer.invoke('getConfig'), - setConfig: (config) => ipcRenderer.invoke('setConfig', config), - listPlugins: () => ipcRenderer.invoke('listPlugins'), - setActivePlugin: (pluginId) => - ipcRenderer.invoke('setActivePlugin', pluginId), + pluginManagerCall: (method, ...args) => + ipcRenderer.invoke( + 'pluginManager:call', + method, + ...(args.length ? args : []), + ), + configManagerCall: (method, ...args) => + ipcRenderer.invoke( + 'configManager:call', + method, + ...(args.length ? args : []), + ), + adapterCall: (method, ...args) => + ipcRenderer.invoke( + 'adapter:call', + method, + ...(args.length ? args : []), + ), openNoteWindow: (noteId) => { ipcRenderer.send('open-note-window', noteId) }, @@ -33,19 +46,12 @@ const api = { }, } -// Implement adapter API - communicates with plugin adapter in main process -const adapter = { - call: (method, ...args) => ipcRenderer.invoke('adapter:call', method, args), -} - if (process.contextIsolated) { try { contextBridge.exposeInMainWorld('api', api) - contextBridge.exposeInMainWorld('adapter', adapter) } catch (error) { console.error(error) } } else { window.api = api - window.adapter = adapter } diff --git a/src/renderer/index.html b/src/renderer/index.html index 2364bd2..ff85577 100644 --- a/src/renderer/index.html +++ b/src/renderer/index.html @@ -2,12 +2,12 @@ - Electron + Taker of Notes - + />--> diff --git a/src/renderer/src/components/NoteRow.vue b/src/renderer/src/components/NoteRow.vue index 0a07cb4..7a07cb7 100644 --- a/src/renderer/src/components/NoteRow.vue +++ b/src/renderer/src/components/NoteRow.vue @@ -43,7 +43,6 @@ const onMoveOpened = async () => { move: props.note.id, }, }) - console.log(route.query) } const moveActive = computed(() => route.query.move === props.note.id) diff --git a/src/renderer/src/composables/useConfig.js b/src/renderer/src/composables/useConfig.js index 8315fe2..7c2dbd5 100644 --- a/src/renderer/src/composables/useConfig.js +++ b/src/renderer/src/composables/useConfig.js @@ -1,5 +1,5 @@ import { ref, watch, toRaw, onMounted } from 'vue' -import { getCore } from '@core/index.js' +import useCore from '@/composables/useCore' const config = ref() let configResolve = null @@ -8,8 +8,7 @@ const configPromise = new Promise((resolve) => { }) export default () => { - const core = getCore() - const { configManager } = core + const { configManager } = useCore() onMounted(async () => { if (config.value) { @@ -17,8 +16,7 @@ export default () => { return } - const loadedConfig = await configManager.loadConfig() - config.value = loadedConfig + config.value = await configManager.loadConfig() configResolve() }) diff --git a/src/renderer/src/composables/useCore.js b/src/renderer/src/composables/useCore.js new file mode 100644 index 0000000..e28c5b5 --- /dev/null +++ b/src/renderer/src/composables/useCore.js @@ -0,0 +1,11 @@ +import { inject } from 'vue' + +let core + +export default () => { + if (!core) { + core = inject('core') + } + + return core +} diff --git a/src/renderer/src/composables/useNotes.js b/src/renderer/src/composables/useNotes.js index 1c7210d..bcdfb89 100644 --- a/src/renderer/src/composables/useNotes.js +++ b/src/renderer/src/composables/useNotes.js @@ -41,7 +41,9 @@ const setupListeners = () => { } const broadcastChange = (event, data) => { - window.api.notifyNoteChanged(event, data) + if (environment === 'electron') { + window.api.notifyNoteChanged(event, data) + } } if (environment === 'electron') { diff --git a/src/renderer/src/composables/usePlugins.js b/src/renderer/src/composables/usePlugins.js index e2fe2f8..704dc7b 100644 --- a/src/renderer/src/composables/usePlugins.js +++ b/src/renderer/src/composables/usePlugins.js @@ -1,20 +1,27 @@ -import { ref } from 'vue' +import useCore from '@/composables/useCore' import useConfig from './useConfig' +import { ref } from 'vue' export default async () => { - const { refreshConfig } = useConfig() + const { config } = useConfig() + const { pluginManager } = useCore() const plugins = ref([]) - plugins.value = await window.api.listPlugins() + plugins.value = await pluginManager.listPlugins() - const setActivePlugin = async (pluginId) => { - await window.api.setActivePlugin(pluginId) - await refreshConfig() + const setActivePlugin = async (pluginId, activeConfig = {}) => { + await pluginManager.setActivePlugin(pluginId, { ...activeConfig }) + config.value.activeAdapter = pluginId + } + + const testPlugin = async (pluginId, config = {}) => { + await pluginManager.testPlugin(pluginId, { ...config }) } return { plugins, setActivePlugin, + testPlugin, } } diff --git a/src/renderer/src/libs/getNotesAPI.js b/src/renderer/src/libs/getNotesAPI.js index e81e166..ce9a26d 100644 --- a/src/renderer/src/libs/getNotesAPI.js +++ b/src/renderer/src/libs/getNotesAPI.js @@ -1,4 +1,4 @@ -import { getCore } from '@core/index.js' +import useCore from '@/composables/useCore' let notesAPI = null let initPromise = null @@ -8,8 +8,8 @@ export const getNotesAPI = async () => { if (!initPromise) { initPromise = (async () => { - const core = getCore() - notesAPI = await core.getNotesAPI() + const { getNotesAPI } = useCore() + notesAPI = await getNotesAPI() return notesAPI })() } diff --git a/src/renderer/src/main.js b/src/renderer/src/main.js index 9ff2615..d99e4a3 100644 --- a/src/renderer/src/main.js +++ b/src/renderer/src/main.js @@ -6,7 +6,7 @@ import { router } from './plugins/router' const app = createApp(App) -app.use(initCore) +await initCore(app) app.use(router) app.mount('#app') diff --git a/src/renderer/src/plugins/core.js b/src/renderer/src/plugins/core.js index 96af256..e1214ac 100644 --- a/src/renderer/src/plugins/core.js +++ b/src/renderer/src/plugins/core.js @@ -2,11 +2,18 @@ import { useEnvironment } from '@/composables/useEnvironment' import { initializeCore } from '@core/index.js' import supabasePlugin from '@takerofnotes/plugin-supabase' -export const initCore = () => { +export const initCore = async (app) => { const environment = useEnvironment() + // Set runtime + const runtime = environment === 'electron' ? 'electron-renderer' : 'web' + // Plugins that are valid for web (electron uses IPC) const plugins = [supabasePlugin] - initializeCore(environment, plugins) + const core = await initializeCore(runtime, { + plugins, + }) + + app.provide('core', core) } diff --git a/src/renderer/src/views/Directory.vue b/src/renderer/src/views/Directory.vue index ce62ea7..00eb05a 100644 --- a/src/renderer/src/views/Directory.vue +++ b/src/renderer/src/views/Directory.vue @@ -19,8 +19,6 @@