From a0b44bde580313c3508f6b346e459b8b7567e17a Mon Sep 17 00:00:00 2001 From: Nystik <236107-Nystik@users.noreply.gitlab.com> Date: Wed, 20 May 2026 17:05:29 +0200 Subject: [PATCH] move UI code into new package --- build.js | 17 ++-------- package-lock.json | 31 ++++++------------- packages/ui/build.js | 17 ++++++++++ packages/ui/package.json | 14 ++++++++- {src/ui => packages/ui/src}/bootstrap.js | 0 .../src}/components/display/ListItem.svelte | 0 .../ui/src}/components/input/Button.svelte | 0 .../src}/components/input/SearchInput.svelte | 0 .../components/layout/ConfirmDialog.svelte | 0 .../components/layout/MessageDialog.svelte | 0 .../ui/src}/components/layout/Modal.svelte | 0 .../layout/PluginInstallDialog.svelte | 0 .../components/layout/PromptDialog.svelte | 0 .../src}/components/menu/PopoverMenu.svelte | 0 {src/ui => packages/ui/src}/index.js | 0 .../ui/src}/views/SyncSetupModal.svelte | 0 .../ui/src}/views/VaultManager.svelte | 0 .../ui/src}/views/sync/CreateVaultForm.svelte | 0 .../ui/src}/views/sync/VaultList.svelte | 0 .../ui/src}/views/sync/VaultRow.svelte | 0 server/index.js | 1 + 21 files changed, 43 insertions(+), 37 deletions(-) create mode 100644 packages/ui/build.js rename {src/ui => packages/ui/src}/bootstrap.js (100%) rename {src/ui => packages/ui/src}/components/display/ListItem.svelte (100%) rename {src/ui => packages/ui/src}/components/input/Button.svelte (100%) rename {src/ui => packages/ui/src}/components/input/SearchInput.svelte (100%) rename {src/ui => packages/ui/src}/components/layout/ConfirmDialog.svelte (100%) rename {src/ui => packages/ui/src}/components/layout/MessageDialog.svelte (100%) rename {src/ui => packages/ui/src}/components/layout/Modal.svelte (100%) rename {src/ui => packages/ui/src}/components/layout/PluginInstallDialog.svelte (100%) rename {src/ui => packages/ui/src}/components/layout/PromptDialog.svelte (100%) rename {src/ui => packages/ui/src}/components/menu/PopoverMenu.svelte (100%) rename {src/ui => packages/ui/src}/index.js (100%) rename {src/ui => packages/ui/src}/views/SyncSetupModal.svelte (100%) rename {src/ui => packages/ui/src}/views/VaultManager.svelte (100%) rename {src/ui => packages/ui/src}/views/sync/CreateVaultForm.svelte (100%) rename {src/ui => packages/ui/src}/views/sync/VaultList.svelte (100%) rename {src/ui => packages/ui/src}/views/sync/VaultRow.svelte (100%) diff --git a/build.js b/build.js index db213d1..7b0bbee 100644 --- a/build.js +++ b/build.js @@ -1,5 +1,4 @@ const esbuild = require("esbuild"); -const sveltePlugin = require("esbuild-svelte"); const path = require("path"); const { version: ignisVersion } = require("./package.json"); @@ -22,20 +21,8 @@ Promise.all([ logLevel: "info", }), - // Build ignis-ui.js - esbuild.build({ - entryPoints: [path.join(__dirname, "src", "ui", "index.js")], - bundle: true, - outfile: path.join(__dirname, "dist", "ignis-ui.js"), - format: "iife", - globalName: "IgnisUI", - platform: "browser", - target: ["chrome90"], - mainFields: ["svelte", "browser", "module", "main"], - conditions: ["svelte", "browser"], - plugins: [sveltePlugin({ compilerOptions: { css: "injected" } })], - logLevel: "info", - }), + // Build ignis-ui.js (delegated to packages/ui) + require("./packages/ui/build.js"), // Build ignis-bridge plugin esbuild.build({ diff --git a/package-lock.json b/package-lock.json index aa625d6..03d1fc0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -43,7 +43,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", @@ -540,7 +539,6 @@ "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", @@ -551,7 +549,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" @@ -561,14 +558,12 @@ "version": "1.5.5", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.31", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -1009,7 +1004,6 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", - "dev": true, "license": "MIT" }, "node_modules/@vitest/expect": { @@ -1156,7 +1150,6 @@ "version": "8.16.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", - "dev": true, "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -1242,7 +1235,6 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", - "dev": true, "license": "Apache-2.0", "engines": { "node": ">= 0.4" @@ -1274,7 +1266,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", - "dev": true, "license": "Apache-2.0", "engines": { "node": ">= 0.4" @@ -1604,7 +1595,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz", "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15", @@ -1789,7 +1779,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", - "dev": true, "license": "MIT", "dependencies": { "mdn-data": "2.0.30", @@ -1981,7 +1970,6 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "dev": true, "license": "MIT", "dependencies": { "@types/estree": "^1.0.0" @@ -2406,7 +2394,6 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz", "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==", - "dev": true, "license": "MIT", "dependencies": { "@types/estree": "^1.0.6" @@ -2504,7 +2491,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", - "dev": true, "license": "MIT" }, "node_modules/lodash": { @@ -2530,7 +2516,6 @@ "version": "0.577.0", "resolved": "https://registry.npmjs.org/lucide-svelte/-/lucide-svelte-0.577.0.tgz", "integrity": "sha512-0i88o57KsaHWnc80J57fY99CWzlZsSdtH5kKjLUJa7z8dum/9/AbINNLzJ7NiRFUdOgMnfAmJt8jFbW2zeC5qQ==", - "dev": true, "license": "ISC", "peerDependencies": { "svelte": "^3 || ^4 || ^5.0.0-next.42" @@ -2540,7 +2525,6 @@ "version": "0.30.21", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" @@ -2559,7 +2543,6 @@ "version": "2.0.30", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "dev": true, "license": "CC0-1.0" }, "node_modules/media-typer": { @@ -2811,7 +2794,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", - "dev": true, "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", @@ -3221,7 +3203,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -3383,7 +3364,6 @@ "version": "4.2.20", "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.20.tgz", "integrity": "sha512-eeEgGc2DtiUil5ANdtd8vPwt9AgaMdnuUFnPft9F5oMvU/FHu5IHFic+p1dR/UOB7XU2mX2yHW+NcTch4DCh5Q==", - "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.1", @@ -4468,7 +4448,16 @@ }, "packages/ui": { "name": "@ignis/ui", - "version": "0.0.0-internal" + "version": "0.0.0-internal", + "dependencies": { + "@ignis/services": "*", + "lucide-svelte": "^0.577.0", + "svelte": "^4.2.20" + }, + "devDependencies": { + "esbuild": "^0.20.0", + "esbuild-svelte": "^0.9.4" + } } } } diff --git a/packages/ui/build.js b/packages/ui/build.js new file mode 100644 index 0000000..67b14b5 --- /dev/null +++ b/packages/ui/build.js @@ -0,0 +1,17 @@ +const esbuild = require("esbuild"); +const sveltePlugin = require("esbuild-svelte"); +const path = require("path"); + +module.exports = esbuild.build({ + entryPoints: [path.join(__dirname, "src", "index.js")], + bundle: true, + outfile: path.join(__dirname, "dist", "ignis-ui.js"), + format: "iife", + globalName: "IgnisUI", + platform: "browser", + target: ["chrome90"], + mainFields: ["svelte", "browser", "module", "main"], + conditions: ["svelte", "browser"], + plugins: [sveltePlugin({ compilerOptions: { css: "injected" } })], + logLevel: "info", +}); diff --git a/packages/ui/package.json b/packages/ui/package.json index d6256db..fea9b52 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -1,5 +1,17 @@ { "name": "@ignis/ui", "version": "0.0.0-internal", - "private": true + "private": true, + "scripts": { + "build": "node build.js" + }, + "dependencies": { + "@ignis/services": "*", + "lucide-svelte": "^0.577.0", + "svelte": "^4.2.20" + }, + "devDependencies": { + "esbuild": "^0.20.0", + "esbuild-svelte": "^0.9.4" + } } diff --git a/src/ui/bootstrap.js b/packages/ui/src/bootstrap.js similarity index 100% rename from src/ui/bootstrap.js rename to packages/ui/src/bootstrap.js diff --git a/src/ui/components/display/ListItem.svelte b/packages/ui/src/components/display/ListItem.svelte similarity index 100% rename from src/ui/components/display/ListItem.svelte rename to packages/ui/src/components/display/ListItem.svelte diff --git a/src/ui/components/input/Button.svelte b/packages/ui/src/components/input/Button.svelte similarity index 100% rename from src/ui/components/input/Button.svelte rename to packages/ui/src/components/input/Button.svelte diff --git a/src/ui/components/input/SearchInput.svelte b/packages/ui/src/components/input/SearchInput.svelte similarity index 100% rename from src/ui/components/input/SearchInput.svelte rename to packages/ui/src/components/input/SearchInput.svelte diff --git a/src/ui/components/layout/ConfirmDialog.svelte b/packages/ui/src/components/layout/ConfirmDialog.svelte similarity index 100% rename from src/ui/components/layout/ConfirmDialog.svelte rename to packages/ui/src/components/layout/ConfirmDialog.svelte diff --git a/src/ui/components/layout/MessageDialog.svelte b/packages/ui/src/components/layout/MessageDialog.svelte similarity index 100% rename from src/ui/components/layout/MessageDialog.svelte rename to packages/ui/src/components/layout/MessageDialog.svelte diff --git a/src/ui/components/layout/Modal.svelte b/packages/ui/src/components/layout/Modal.svelte similarity index 100% rename from src/ui/components/layout/Modal.svelte rename to packages/ui/src/components/layout/Modal.svelte diff --git a/src/ui/components/layout/PluginInstallDialog.svelte b/packages/ui/src/components/layout/PluginInstallDialog.svelte similarity index 100% rename from src/ui/components/layout/PluginInstallDialog.svelte rename to packages/ui/src/components/layout/PluginInstallDialog.svelte diff --git a/src/ui/components/layout/PromptDialog.svelte b/packages/ui/src/components/layout/PromptDialog.svelte similarity index 100% rename from src/ui/components/layout/PromptDialog.svelte rename to packages/ui/src/components/layout/PromptDialog.svelte diff --git a/src/ui/components/menu/PopoverMenu.svelte b/packages/ui/src/components/menu/PopoverMenu.svelte similarity index 100% rename from src/ui/components/menu/PopoverMenu.svelte rename to packages/ui/src/components/menu/PopoverMenu.svelte diff --git a/src/ui/index.js b/packages/ui/src/index.js similarity index 100% rename from src/ui/index.js rename to packages/ui/src/index.js diff --git a/src/ui/views/SyncSetupModal.svelte b/packages/ui/src/views/SyncSetupModal.svelte similarity index 100% rename from src/ui/views/SyncSetupModal.svelte rename to packages/ui/src/views/SyncSetupModal.svelte diff --git a/src/ui/views/VaultManager.svelte b/packages/ui/src/views/VaultManager.svelte similarity index 100% rename from src/ui/views/VaultManager.svelte rename to packages/ui/src/views/VaultManager.svelte diff --git a/src/ui/views/sync/CreateVaultForm.svelte b/packages/ui/src/views/sync/CreateVaultForm.svelte similarity index 100% rename from src/ui/views/sync/CreateVaultForm.svelte rename to packages/ui/src/views/sync/CreateVaultForm.svelte diff --git a/src/ui/views/sync/VaultList.svelte b/packages/ui/src/views/sync/VaultList.svelte similarity index 100% rename from src/ui/views/sync/VaultList.svelte rename to packages/ui/src/views/sync/VaultList.svelte diff --git a/src/ui/views/sync/VaultRow.svelte b/packages/ui/src/views/sync/VaultRow.svelte similarity index 100% rename from src/ui/views/sync/VaultRow.svelte rename to packages/ui/src/views/sync/VaultRow.svelte diff --git a/server/index.js b/server/index.js index eaad423..2d35ea8 100644 --- a/server/index.js +++ b/server/index.js @@ -156,6 +156,7 @@ app.use((req, res, next) => { next(); }); +app.use(express.static(path.join(__dirname, "..", "packages", "ui", "dist"))); app.use(express.static(path.join(__dirname, "..", "dist"))); app.use(express.static(config.obsidianAssetsPath));