From 174ca08954312367b8a9ead4b3613792ea92704a Mon Sep 17 00:00:00 2001 From: vorotamoroz Date: Mon, 17 Nov 2025 12:52:52 +0900 Subject: [PATCH 01/12] Add production switch on environment vars --- esbuild.config.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/esbuild.config.mjs b/esbuild.config.mjs index 284a35a..18de237 100644 --- a/esbuild.config.mjs +++ b/esbuild.config.mjs @@ -12,7 +12,7 @@ import inlineWorkerPlugin from "esbuild-plugin-inline-worker"; import { terserOption } from "./terser.config.mjs"; import path from "node:path"; -const prod = process.argv[2] === "production"; +const prod = process.argv[2] === "production" || process.env?.BUILD_MODE === "production"; const keepTest = true; //!prod; const manifestJson = JSON.parse(fs.readFileSync("./manifest.json") + ""); From cd6946bce207cd7cfb9b47c71537994f11372311 Mon Sep 17 00:00:00 2001 From: vorotamoroz Date: Mon, 17 Nov 2025 12:53:11 +0900 Subject: [PATCH 02/12] node 22 to 24 --- .github/workflows/release.yml | 14 +-- package-lock.json | 231 ++++++++++++++-------------------- 2 files changed, 100 insertions(+), 145 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 30d9051..e8b9bd8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -10,19 +10,19 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: fetch-depth: 0 # otherwise, you will failed to push refs to dest repo submodules: recursive - name: Use Node.js - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: - node-version: '22.x' # You might need to adjust this value to your own version + node-version: '24.x' # You might need to adjust this value to your own version # Get the version number and put it in a variable - name: Get Version id: version run: | - echo "::set-output name=tag::$(git describe --abbrev=0 --tags)" + echo "tag=$(git describe --abbrev=0 --tags)" >> $GITHUB_OUTPUT # Build the plugin - name: Build id: build @@ -41,10 +41,10 @@ jobs: uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - VERSION: ${{ github.ref }} + VERSION: ${{ steps.version.outputs.tag }} with: - tag_name: ${{ github.ref }} - release_name: ${{ github.ref }} + tag_name: ${{ steps.version.outputs.tag }} + release_name: ${{ steps.version.outputs.tag }} draft: true prerelease: false # Upload the packaged release file diff --git a/package-lock.json b/package-lock.json index 2d7db53..1c5b71b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1793,6 +1793,7 @@ "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.14.4.tgz", "integrity": "sha512-pUxEGmR+uu21OG/icAovjlu1fcYJzyVhhT0rsCrn+zi+nHtrS43Bp9KPn9KGa4NMspCUE++nkyiqziuIvJdwzw==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@firebase/component": "0.7.0", "@firebase/logger": "0.5.0", @@ -1859,6 +1860,7 @@ "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.5.4.tgz", "integrity": "sha512-T7ifGmb+awJEcp542Ek4HtNfBxcBrnuk1ggUdqyFEdsXHdq7+wVlhvE6YukTL7NS8hIkEfL7TMAPx/uCNqt30g==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@firebase/app": "0.14.4", "@firebase/component": "0.7.0", @@ -1874,7 +1876,8 @@ "version": "0.9.3", "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.3.tgz", "integrity": "sha512-kRVpIl4vVGJ4baogMDINbyrIOtOxqhkZQg4jTq3l8Lw6WSk0xfpEYzezFu+Kl4ve4fbPl79dvwRtaFqAC/ucCw==", - "license": "Apache-2.0" + "license": "Apache-2.0", + "peer": true }, "node_modules/@firebase/app/node_modules/idb": { "version": "7.1.1", @@ -2343,6 +2346,7 @@ "integrity": "sha512-0AZUyYUfpMNcztR5l09izHwXkZpghLgCUaAGjtMwXnCg3bj4ml5VgiwqOMOxJ+Nw4qN/zJAaOQBcJ7KGkWStqQ==", "hasInstallScript": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "tslib": "^2.1.0" }, @@ -3200,8 +3204,7 @@ "optional": true, "os": [ "android" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-android-arm64": { "version": "4.52.5", @@ -3215,8 +3218,7 @@ "optional": true, "os": [ "android" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-darwin-arm64": { "version": "4.52.5", @@ -3230,8 +3232,7 @@ "optional": true, "os": [ "darwin" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-darwin-x64": { "version": "4.52.5", @@ -3245,8 +3246,7 @@ "optional": true, "os": [ "darwin" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-freebsd-arm64": { "version": "4.52.5", @@ -3260,8 +3260,7 @@ "optional": true, "os": [ "freebsd" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-freebsd-x64": { "version": "4.52.5", @@ -3275,8 +3274,7 @@ "optional": true, "os": [ "freebsd" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { "version": "4.52.5", @@ -3290,8 +3288,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { "version": "4.52.5", @@ -3305,8 +3302,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { "version": "4.52.5", @@ -3320,8 +3316,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { "version": "4.52.5", @@ -3335,8 +3330,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-loong64-gnu": { "version": "4.52.5", @@ -3350,8 +3344,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { "version": "4.52.5", @@ -3365,8 +3358,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { "version": "4.52.5", @@ -3380,8 +3372,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { "version": "4.52.5", @@ -3395,8 +3386,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { "version": "4.52.5", @@ -3410,8 +3400,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { "version": "4.52.5", @@ -3425,8 +3414,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-x64-musl": { "version": "4.52.5", @@ -3440,8 +3428,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-openharmony-arm64": { "version": "4.52.5", @@ -3455,8 +3442,7 @@ "optional": true, "os": [ "openharmony" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { "version": "4.52.5", @@ -3470,8 +3456,7 @@ "optional": true, "os": [ "win32" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { "version": "4.52.5", @@ -3485,8 +3470,7 @@ "optional": true, "os": [ "win32" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-win32-x64-gnu": { "version": "4.52.5", @@ -3500,8 +3484,7 @@ "optional": true, "os": [ "win32" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { "version": "4.52.5", @@ -3515,8 +3498,7 @@ "optional": true, "os": [ "win32" - ], - "peer": true + ] }, "node_modules/@rtsao/scc": { "version": "1.1.0", @@ -4378,6 +4360,7 @@ "integrity": "sha512-YZs/OSKOQAQCnJvM/P+F1URotNnYNeU3P2s4oIpzm1uFaqUEqRxUB0g5ejMjEb5Gjb9/PiBI5Ktrq4rUUF8UVQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@sveltejs/vite-plugin-svelte-inspector": "^5.0.0", "debug": "^4.4.1", @@ -4774,6 +4757,7 @@ "integrity": "sha512-BnOroVl1SgrPLywqxyqdJ4l3S2MsKVLDVxZvjI1Eoe8ev2r3kGDo+PcMihNmDE+6/KjkTubSJnmqGZZjQSBq/g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.46.2", "@typescript-eslint/types": "8.46.2", @@ -5338,6 +5322,7 @@ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -6416,6 +6401,7 @@ "dev": true, "hasInstallScript": true, "license": "MIT", + "peer": true, "bin": { "esbuild": "bin/esbuild" }, @@ -6504,6 +6490,7 @@ "integrity": "sha512-t5aPOpmtJcZcz5UJyY2GbvpDlsK5E8JqRqoKtfiKE3cNh437KIqfJr3A3AKf5k64NPx6d0G3dno6XDY05PqPtw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -8427,9 +8414,9 @@ "license": "MIT" }, "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, "license": "MIT", "dependencies": { @@ -8631,6 +8618,7 @@ "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-2.8.11.tgz", "integrity": "sha512-EjkyN0CI6uP+e4OOkEcZvhbZtlwFl4Y0rkkMvDbXmcfILX4E4n/jKE4Ppoc1qhNufxToxVWCMDS2ipniQgiYaw==", "license": "Apache-2.0 OR MIT", + "peer": true, "dependencies": { "@chainsafe/is-ip": "^2.1.0", "@chainsafe/netmask": "^2.0.0", @@ -9520,6 +9508,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -9544,6 +9533,7 @@ "url": "https://github.com/sponsors/ai" } ], + "peer": true, "dependencies": { "lilconfig": "^3.1.1" }, @@ -10235,7 +10225,6 @@ "integrity": "sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/estree": "1.0.8" }, @@ -10806,8 +10795,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.0.0.tgz", "integrity": "sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/sublevel-pouchdb": { "version": "9.0.0", @@ -10878,6 +10866,7 @@ "integrity": "sha512-0a/huwc8e2es+7KFi70esqsReRfRbrT8h1cJSY/+z1lF0yKM6TT+//HYu28Yxstr50H7ifaqZRDGd0KuKDxP7w==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jridgewell/remapping": "^2.3.4", "@jridgewell/sourcemap-codec": "^1.5.0", @@ -10940,21 +10929,6 @@ } } }, - "node_modules/svelte-check/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/svelte-eslint-parser": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-1.4.0.tgz", @@ -11060,6 +11034,7 @@ "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", "dev": true, "license": "BSD-2-Clause", + "peer": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -11105,7 +11080,6 @@ "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" @@ -11123,7 +11097,6 @@ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12.0.0" }, @@ -11251,6 +11224,7 @@ "integrity": "sha512-ytQKuwgmrrkDTFP4LjR0ToE2nqgy886GpvRSpU0JAnrdBYppuY5rLkRUYPU1yCryb24SsKBTL/hlDQAEFVwtZg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "esbuild": "~0.25.0", "get-tsconfig": "^4.7.5" @@ -11376,6 +11350,7 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -11563,7 +11538,6 @@ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12.0.0" }, @@ -11620,8 +11594,7 @@ "version": "2.2.4", "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.4.tgz", "integrity": "sha512-tOhfEwEzFLJzf6d1ZPkYfGj+FWhIpBux9ppoP3rlclw3Z0BZv3N7b7030Z1kYth+6rDuAsXUFr+d0VE6Ed1ikw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/weald": { "version": "1.1.1", @@ -11950,6 +11923,7 @@ "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", "dev": true, "license": "ISC", + "peer": true, "bin": { "yaml": "bin.mjs" }, @@ -13174,6 +13148,7 @@ "version": "0.14.4", "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.14.4.tgz", "integrity": "sha512-pUxEGmR+uu21OG/icAovjlu1fcYJzyVhhT0rsCrn+zi+nHtrS43Bp9KPn9KGa4NMspCUE++nkyiqziuIvJdwzw==", + "peer": true, "requires": { "@firebase/component": "0.7.0", "@firebase/logger": "0.5.0", @@ -13227,6 +13202,7 @@ "version": "0.5.4", "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.5.4.tgz", "integrity": "sha512-T7ifGmb+awJEcp542Ek4HtNfBxcBrnuk1ggUdqyFEdsXHdq7+wVlhvE6YukTL7NS8hIkEfL7TMAPx/uCNqt30g==", + "peer": true, "requires": { "@firebase/app": "0.14.4", "@firebase/component": "0.7.0", @@ -13238,7 +13214,8 @@ "@firebase/app-types": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.3.tgz", - "integrity": "sha512-kRVpIl4vVGJ4baogMDINbyrIOtOxqhkZQg4jTq3l8Lw6WSk0xfpEYzezFu+Kl4ve4fbPl79dvwRtaFqAC/ucCw==" + "integrity": "sha512-kRVpIl4vVGJ4baogMDINbyrIOtOxqhkZQg4jTq3l8Lw6WSk0xfpEYzezFu+Kl4ve4fbPl79dvwRtaFqAC/ucCw==", + "peer": true }, "@firebase/auth": { "version": "1.11.0", @@ -13566,6 +13543,7 @@ "version": "1.13.0", "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.13.0.tgz", "integrity": "sha512-0AZUyYUfpMNcztR5l09izHwXkZpghLgCUaAGjtMwXnCg3bj4ml5VgiwqOMOxJ+Nw4qN/zJAaOQBcJ7KGkWStqQ==", + "peer": true, "requires": { "tslib": "^2.1.0" } @@ -14224,176 +14202,154 @@ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.5.tgz", "integrity": "sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@rollup/rollup-android-arm64": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.5.tgz", "integrity": "sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@rollup/rollup-darwin-arm64": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.5.tgz", "integrity": "sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@rollup/rollup-darwin-x64": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.5.tgz", "integrity": "sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@rollup/rollup-freebsd-arm64": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.5.tgz", "integrity": "sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@rollup/rollup-freebsd-x64": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.5.tgz", "integrity": "sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@rollup/rollup-linux-arm-gnueabihf": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.5.tgz", "integrity": "sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@rollup/rollup-linux-arm-musleabihf": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.5.tgz", "integrity": "sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@rollup/rollup-linux-arm64-gnu": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.5.tgz", "integrity": "sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@rollup/rollup-linux-arm64-musl": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.5.tgz", "integrity": "sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@rollup/rollup-linux-loong64-gnu": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.5.tgz", "integrity": "sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@rollup/rollup-linux-ppc64-gnu": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.5.tgz", "integrity": "sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@rollup/rollup-linux-riscv64-gnu": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.5.tgz", "integrity": "sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@rollup/rollup-linux-riscv64-musl": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.5.tgz", "integrity": "sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@rollup/rollup-linux-s390x-gnu": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.5.tgz", "integrity": "sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@rollup/rollup-linux-x64-gnu": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.5.tgz", "integrity": "sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@rollup/rollup-linux-x64-musl": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.5.tgz", "integrity": "sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@rollup/rollup-openharmony-arm64": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.5.tgz", "integrity": "sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@rollup/rollup-win32-arm64-msvc": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.5.tgz", "integrity": "sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@rollup/rollup-win32-ia32-msvc": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.5.tgz", "integrity": "sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@rollup/rollup-win32-x64-gnu": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.5.tgz", "integrity": "sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@rollup/rollup-win32-x64-msvc": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.5.tgz", "integrity": "sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@rtsao/scc": { "version": "1.1.0", @@ -15023,6 +14979,7 @@ "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-6.2.1.tgz", "integrity": "sha512-YZs/OSKOQAQCnJvM/P+F1URotNnYNeU3P2s4oIpzm1uFaqUEqRxUB0g5ejMjEb5Gjb9/PiBI5Ktrq4rUUF8UVQ==", "dev": true, + "peer": true, "requires": { "@sveltejs/vite-plugin-svelte-inspector": "^5.0.0", "debug": "^4.4.1", @@ -15375,6 +15332,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.46.2.tgz", "integrity": "sha512-BnOroVl1SgrPLywqxyqdJ4l3S2MsKVLDVxZvjI1Eoe8ev2r3kGDo+PcMihNmDE+6/KjkTubSJnmqGZZjQSBq/g==", "dev": true, + "peer": true, "requires": { "@typescript-eslint/scope-manager": "8.46.2", "@typescript-eslint/types": "8.46.2", @@ -15747,7 +15705,8 @@ "version": "8.15.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", - "dev": true + "dev": true, + "peer": true }, "acorn-jsx": { "version": "5.3.2", @@ -16475,6 +16434,7 @@ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz", "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==", "dev": true, + "peer": true, "requires": { "@esbuild/aix-ppc64": "0.25.0", "@esbuild/android-arm": "0.25.0", @@ -16538,6 +16498,7 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.38.0.tgz", "integrity": "sha512-t5aPOpmtJcZcz5UJyY2GbvpDlsK5E8JqRqoKtfiKE3cNh437KIqfJr3A3AKf5k64NPx6d0G3dno6XDY05PqPtw==", "dev": true, + "peer": true, "requires": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -17832,9 +17793,9 @@ "integrity": "sha512-BcJPCQeLg6WjEx3FE591wVAevlli8lxsxm9/FzV4HXkV49TmBH38Yvrpce6fjbADGMKFrBMGTqrVz3qPIZ88Gg==" }, "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, "requires": { "argparse": "^2.0.1" @@ -17978,6 +17939,7 @@ "version": "2.8.11", "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-2.8.11.tgz", "integrity": "sha512-EjkyN0CI6uP+e4OOkEcZvhbZtlwFl4Y0rkkMvDbXmcfILX4E4n/jKE4Ppoc1qhNufxToxVWCMDS2ipniQgiYaw==", + "peer": true, "requires": { "@chainsafe/is-ip": "^2.1.0", "@chainsafe/netmask": "^2.0.0", @@ -18580,6 +18542,7 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", "dev": true, + "peer": true, "requires": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -18591,6 +18554,7 @@ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", "dev": true, + "peer": true, "requires": { "lilconfig": "^3.1.1" } @@ -19104,7 +19068,6 @@ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.5.tgz", "integrity": "sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==", "dev": true, - "peer": true, "requires": { "@rollup/rollup-android-arm-eabi": "4.52.5", "@rollup/rollup-android-arm64": "4.52.5", @@ -19469,8 +19432,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.0.0.tgz", "integrity": "sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw==", - "dev": true, - "peer": true + "dev": true }, "sublevel-pouchdb": { "version": "9.0.0", @@ -19529,6 +19491,7 @@ "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.41.1.tgz", "integrity": "sha512-0a/huwc8e2es+7KFi70esqsReRfRbrT8h1cJSY/+z1lF0yKM6TT+//HYu28Yxstr50H7ifaqZRDGd0KuKDxP7w==", "dev": true, + "peer": true, "requires": { "@jridgewell/remapping": "^2.3.4", "@jridgewell/sourcemap-codec": "^1.5.0", @@ -19565,14 +19528,6 @@ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, "requires": {} - }, - "picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "optional": true, - "peer": true } } }, @@ -19610,6 +19565,7 @@ "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz", "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", "dev": true, + "peer": true, "requires": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -19645,7 +19601,6 @@ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", "dev": true, - "peer": true, "requires": { "fdir": "^6.5.0", "picomatch": "^4.0.3" @@ -19656,7 +19611,6 @@ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, - "peer": true, "requires": {} }, "picomatch": { @@ -19751,6 +19705,7 @@ "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.20.6.tgz", "integrity": "sha512-ytQKuwgmrrkDTFP4LjR0ToE2nqgy886GpvRSpU0JAnrdBYppuY5rLkRUYPU1yCryb24SsKBTL/hlDQAEFVwtZg==", "dev": true, + "peer": true, "requires": { "esbuild": "~0.25.0", "fsevents": "~2.3.3", @@ -19833,7 +19788,8 @@ "version": "5.9.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", - "dev": true + "dev": true, + "peer": true }, "uint8-varint": { "version": "2.0.4", @@ -19934,7 +19890,6 @@ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, - "peer": true, "requires": {} }, "picomatch": { @@ -19963,8 +19918,7 @@ "version": "2.2.4", "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.4.tgz", "integrity": "sha512-tOhfEwEzFLJzf6d1ZPkYfGj+FWhIpBux9ppoP3rlclw3Z0BZv3N7b7030Z1kYth+6rDuAsXUFr+d0VE6Ed1ikw==", - "dev": true, - "peer": true + "dev": true }, "weald": { "version": "1.1.1", @@ -20189,7 +20143,8 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", - "dev": true + "dev": true, + "peer": true }, "yargs": { "version": "17.7.2", From 893eac5c927148e87a5ded20deb21aac3d2313f5 Mon Sep 17 00:00:00 2001 From: vorotamoroz Date: Mon, 17 Nov 2025 13:06:26 +0900 Subject: [PATCH 03/12] Move from deprecated --- .github/workflows/release.yml | 128 +++++++++++++++++++--------------- 1 file changed, 73 insertions(+), 55 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e8b9bd8..16445d7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -36,59 +36,77 @@ jobs: cp main.js manifest.json styles.css README.md ${{ github.event.repository.name }} zip -r ${{ github.event.repository.name }}.zip ${{ github.event.repository.name }} # Create the release on github - - name: Create Release - id: create_release - uses: actions/create-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - VERSION: ${{ steps.version.outputs.tag }} + # - name: Create Release + # id: create_release + # uses: actions/create-release@v1 + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # VERSION: ${{ steps.version.outputs.tag }} + # with: + # tag_name: ${{ steps.version.outputs.tag }} + # release_name: ${{ steps.version.outputs.tag }} + # draft: true + # prerelease: false + # # Upload the packaged release file + # - name: Upload zip file + # id: upload-zip + # uses: actions/upload-release-asset@v1 + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # with: + # upload_url: ${{ steps.create_release.outputs.upload_url }} + # asset_path: ./${{ github.event.repository.name }}.zip + # asset_name: ${{ github.event.repository.name }}-${{ steps.version.outputs.tag }}.zip + # asset_content_type: application/zip + # # Upload the main.js + # - name: Upload main.js + # id: upload-main + # uses: actions/upload-release-asset@v1 + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # with: + # upload_url: ${{ steps.create_release.outputs.upload_url }} + # asset_path: ./main.js + # asset_name: main.js + # asset_content_type: text/javascript + # # Upload the manifest.json + # - name: Upload manifest.json + # id: upload-manifest + # uses: actions/upload-release-asset@v1 + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # with: + # upload_url: ${{ steps.create_release.outputs.upload_url }} + # asset_path: ./manifest.json + # asset_name: manifest.json + # asset_content_type: application/json + # # Upload the style.css + # - name: Upload styles.css + # id: upload-css + # uses: actions/upload-release-asset@v1 + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # with: + # upload_url: ${{ steps.create_release.outputs.upload_url }} + # asset_path: ./styles.css + # asset_name: styles.css + # asset_content_type: text/css + - name: Determine Asset Suffix + id: vars + run: | + if [ "${{ github.ref_name }}" = "main" ]; then + echo "asset_suffix=" >> $GITHUB_OUTPUT + else + echo "asset_suffix=-${{ github.ref_name }}" >> $GITHUB_OUTPUT + fi + - name: Create Release and Upload Assets + uses: softprops/action-gh-release@v2 with: - tag_name: ${{ steps.version.outputs.tag }} - release_name: ${{ steps.version.outputs.tag }} - draft: true - prerelease: false - # Upload the packaged release file - - name: Upload zip file - id: upload-zip - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./${{ github.event.repository.name }}.zip - asset_name: ${{ github.event.repository.name }}-${{ steps.version.outputs.tag }}.zip - asset_content_type: application/zip - # Upload the main.js - - name: Upload main.js - id: upload-main - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./main.js - asset_name: main.js - asset_content_type: text/javascript - # Upload the manifest.json - - name: Upload manifest.json - id: upload-manifest - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./manifest.json - asset_name: manifest.json - asset_content_type: application/json - # Upload the style.css - - name: Upload styles.css - id: upload-css - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./styles.css - asset_name: styles.css - asset_content_type: text/css - # TODO: release notes??? + files: | + ${{ github.event.repository.name }}${{ steps.vars.outputs.asset_suffix }}.zip + main.js + manifest.json + styles.css + name: ${{ steps.version.outputs.tag }}${{ steps.vars.outputs.asset_suffix }} + tag_name: ${{ steps.version.outputs.tag }} + draft: true \ No newline at end of file From 8f488b205b64d373d870a7ab87ee08fa1dda7bd9 Mon Sep 17 00:00:00 2001 From: vorotamoroz Date: Mon, 17 Nov 2025 13:07:47 +0900 Subject: [PATCH 04/12] fix releaseing --- .github/workflows/release.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 16445d7..801b49f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -92,13 +92,13 @@ jobs: # asset_name: styles.css # asset_content_type: text/css - name: Determine Asset Suffix - id: vars - run: | - if [ "${{ github.ref_name }}" = "main" ]; then - echo "asset_suffix=" >> $GITHUB_OUTPUT - else - echo "asset_suffix=-${{ github.ref_name }}" >> $GITHUB_OUTPUT - fi + id: vars + run: | + if [ "${{ github.ref_name }}" = "main" ]; then + echo "asset_suffix=" >> $GITHUB_OUTPUT + else + echo "asset_suffix=-${{ github.ref_name }}" >> $GITHUB_OUTPUT + fi - name: Create Release and Upload Assets uses: softprops/action-gh-release@v2 with: From 23aa0a82cab94a5379338652e171b6c01ca9ddb6 Mon Sep 17 00:00:00 2001 From: vorotamoroz Date: Mon, 17 Nov 2025 13:09:59 +0900 Subject: [PATCH 05/12] fix again.. --- .github/workflows/release.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 801b49f..975c7ea 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -107,6 +107,6 @@ jobs: main.js manifest.json styles.css - name: ${{ steps.version.outputs.tag }}${{ steps.vars.outputs.asset_suffix }} - tag_name: ${{ steps.version.outputs.tag }} - draft: true \ No newline at end of file + name: ${{ steps.version.outputs.tag }}${{ steps.vars.outputs.asset_suffix }} + tag_name: ${{ steps.version.outputs.tag }} + draft: true \ No newline at end of file From df273d273b387308322bfac0e3139c838c09a6d7 Mon Sep 17 00:00:00 2001 From: vorotamoroz Date: Mon, 17 Nov 2025 13:14:56 +0900 Subject: [PATCH 06/12] Sorry for broke exist release... --- .github/workflows/release.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 975c7ea..a3ee67e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -30,11 +30,19 @@ jobs: npm ci npm run build --if-present # Package the required files into a zip + - name: Determine Asset Suffix + id: vars + run: | + if [ "${{ github.ref_name }}" = "main" ]; then + echo "asset_suffix=" >> $GITHUB_OUTPUT + else + echo "asset_suffix=-${{ github.ref_name }}" >> $GITHUB_OUTPUT + fi - name: Package run: | mkdir ${{ github.event.repository.name }} cp main.js manifest.json styles.css README.md ${{ github.event.repository.name }} - zip -r ${{ github.event.repository.name }}.zip ${{ github.event.repository.name }} + zip -r ${{ github.event.repository.name }}${{ steps.vars.outputs.asset_suffix }}.zip ${{ github.event.repository.name }} # Create the release on github # - name: Create Release # id: create_release @@ -91,14 +99,6 @@ jobs: # asset_path: ./styles.css # asset_name: styles.css # asset_content_type: text/css - - name: Determine Asset Suffix - id: vars - run: | - if [ "${{ github.ref_name }}" = "main" ]; then - echo "asset_suffix=" >> $GITHUB_OUTPUT - else - echo "asset_suffix=-${{ github.ref_name }}" >> $GITHUB_OUTPUT - fi - name: Create Release and Upload Assets uses: softprops/action-gh-release@v2 with: @@ -108,5 +108,5 @@ jobs: manifest.json styles.css name: ${{ steps.version.outputs.tag }}${{ steps.vars.outputs.asset_suffix }} - tag_name: ${{ steps.version.outputs.tag }} + tag_name: ${{ steps.version.outputs.tag }}${{ steps.vars.outputs.asset_suffix }} draft: true \ No newline at end of file From ca8af80a2789f7ecf3838513863a210a2f559a43 Mon Sep 17 00:00:00 2001 From: vorotamoroz Date: Mon, 17 Nov 2025 13:15:56 +0900 Subject: [PATCH 07/12] again. --- .github/workflows/release.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a3ee67e..58bc5ea 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -30,14 +30,14 @@ jobs: npm ci npm run build --if-present # Package the required files into a zip - - name: Determine Asset Suffix - id: vars - run: | - if [ "${{ github.ref_name }}" = "main" ]; then - echo "asset_suffix=" >> $GITHUB_OUTPUT - else - echo "asset_suffix=-${{ github.ref_name }}" >> $GITHUB_OUTPUT - fi + - name: Determine Asset Suffix + id: vars + run: | + if [ "${{ github.ref_name }}" = "main" ]; then + echo "asset_suffix=" >> $GITHUB_OUTPUT + else + echo "asset_suffix=-${{ github.ref_name }}" >> $GITHUB_OUTPUT + fi - name: Package run: | mkdir ${{ github.event.repository.name }} From 5130bc5f2a4c793f0043d3dca92412067493945a Mon Sep 17 00:00:00 2001 From: vorotamoroz Date: Mon, 17 Nov 2025 13:16:50 +0900 Subject: [PATCH 08/12] I'm really sorry. Is there any way I can test this locally? --- .github/workflows/release.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 58bc5ea..ea1d653 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -31,13 +31,13 @@ jobs: npm run build --if-present # Package the required files into a zip - name: Determine Asset Suffix - id: vars - run: | - if [ "${{ github.ref_name }}" = "main" ]; then - echo "asset_suffix=" >> $GITHUB_OUTPUT - else - echo "asset_suffix=-${{ github.ref_name }}" >> $GITHUB_OUTPUT - fi + id: vars + run: | + if [ "${{ github.ref_name }}" = "main" ]; then + echo "asset_suffix=" >> $GITHUB_OUTPUT + else + echo "asset_suffix=-${{ github.ref_name }}" >> $GITHUB_OUTPUT + fi - name: Package run: | mkdir ${{ github.event.repository.name }} From 18f9a842b7e9ba94102361455858155f32ec5656 Mon Sep 17 00:00:00 2001 From: vorotamoroz Date: Mon, 17 Nov 2025 13:18:55 +0900 Subject: [PATCH 09/12] ### New feature - We can now configure hidden file synchronisation to always overwrite with the latest version (#579). ### Fixed - Timing dependency issues during initialisation have been mitigated (#714) ### Improved - Error logs now contain stack-traces for better inspection. --- .../HiddenFileSync/CmdHiddenFileSync.ts | 7 +++++ src/lib | 2 +- src/modules/features/ModuleLog.ts | 31 ++++++++++++++----- .../features/SettingDialogue/PaneSelector.ts | 21 +++++++++++++ src/modules/main/ModuleLiveSyncMain.ts | 19 ++++++++---- 5 files changed, 65 insertions(+), 15 deletions(-) diff --git a/src/features/HiddenFileSync/CmdHiddenFileSync.ts b/src/features/HiddenFileSync/CmdHiddenFileSync.ts index 758a78c..9f66b87 100644 --- a/src/features/HiddenFileSync/CmdHiddenFileSync.ts +++ b/src/features/HiddenFileSync/CmdHiddenFileSync.ts @@ -722,6 +722,13 @@ Offline Changed files: ${processFiles.length}`; } else { this._log(`Object merge is not applicable.`, LOG_LEVEL_VERBOSE); } + // const pat = this.settings.syncInternalFileOverwritePatterns; + const regExp = getFileRegExp(this.settings, "syncInternalFileOverwritePatterns"); + if (regExp.some((r) => r.test(stripAllPrefixes(path)))) { + this._log(`Overwrite rule applied for conflicted hidden file: ${path}`, LOG_LEVEL_INFO); + await this.resolveByNewerEntry(id, path, doc, revA, revB); + return []; + } return [{ path, revA, revB, id, doc }]; } // When not JSON file, resolve conflicts by choosing a newer one. diff --git a/src/lib b/src/lib index f99e662..86b0a95 160000 --- a/src/lib +++ b/src/lib @@ -1 +1 @@ -Subproject commit f99e662309066a1f9ecb43e64a9c78cd76aa132b +Subproject commit 86b0a95d56e0410514264ab9d0b60d04c9165eb1 diff --git a/src/modules/features/ModuleLog.ts b/src/modules/features/ModuleLog.ts index e65eef7..b614c11 100644 --- a/src/modules/features/ModuleLog.ts +++ b/src/modules/features/ModuleLog.ts @@ -34,12 +34,17 @@ import { serialized } from "octagonal-wheels/concurrency/lock"; import { $msg } from "src/lib/src/common/i18n.ts"; import { P2PLogCollector } from "../../lib/src/replication/trystero/P2PReplicatorCore.ts"; import type { LiveSyncCore } from "../../main.ts"; +import { LiveSyncError } from "@/lib/src/common/LSError.ts"; // This module cannot be a core module because it depends on the Obsidian UI. // DI the log again. setGlobalLogFunction((message: any, level?: number, key?: string) => { - const entry = { message, level, key } as LogEntry; + const messageX = + message instanceof Error + ? new LiveSyncError("[Error Logged]: " + message.message, { cause: message }) + : message; + const entry = { message: messageX, level, key } as LogEntry; logStore.enqueue(entry); }); let recentLogs = [] as string[]; @@ -398,19 +403,29 @@ export class ModuleLog extends AbstractObsidianModule { const vaultName = this.services.vault.getVaultName(); const now = new Date(); const timestamp = now.toLocaleString(); + let errorInfo = ""; + if (message instanceof Error) { + if (message instanceof LiveSyncError) { + errorInfo = `${message.cause?.name}:${message.cause?.message}\n[StackTrace]: ${message.stack}\n[CausedBy]: ${message.cause?.stack}`; + } else { + const thisStack = new Error().stack; + errorInfo = `${message.name}:${message.message}\n[StackTrace]: ${message.stack}\n[LogCallStack]: ${thisStack}`; + } + } const messageContent = typeof message == "string" ? message : message instanceof Error - ? `${message.name}:${message.message}` + ? `${errorInfo}` : JSON.stringify(message, null, 2); - if (message instanceof Error) { - // debugger; - console.dir(message.stack); - } const newMessage = timestamp + "->" + messageContent; - - console.log(vaultName + ":" + newMessage); + if (message instanceof Error) { + console.error(vaultName + ":" + newMessage); + } else if (level >= LOG_LEVEL_INFO) { + console.log(vaultName + ":" + newMessage); + } else { + console.debug(vaultName + ":" + newMessage); + } if (!this.settings?.showOnlyIconsOnEditor) { this.statusLog.value = messageContent; } diff --git a/src/modules/features/SettingDialogue/PaneSelector.ts b/src/modules/features/SettingDialogue/PaneSelector.ts index 3e79cb3..ff0ac95 100644 --- a/src/modules/features/SettingDialogue/PaneSelector.ts +++ b/src/modules/features/SettingDialogue/PaneSelector.ts @@ -117,5 +117,26 @@ export function paneSelector(this: ObsidianLiveSyncSettingTab, paneEl: HTMLEleme await addDefaultPatterns(defaultSkipPatternXPlat); }); }); + + const overwritePatterns = new Setting(paneEl) + .setName("Overwrite patterns") + .setClass("wizardHidden") + .setDesc("Patterns to match files for overwriting instead of merging"); + const patTarget2 = splitCustomRegExpList(this.editingSettings.syncInternalFileOverwritePatterns, ","); + mount(MultipleRegExpControl, { + target: overwritePatterns.controlEl, + props: { + patterns: patTarget2, + originals: [...patTarget2], + apply: async (newPatterns: CustomRegExpSource[]) => { + this.editingSettings.syncInternalFileOverwritePatterns = constructCustomRegExpList( + newPatterns, + "," + ); + await this.saveAllDirtySettings(); + this.display(); + }, + }, + }); }); } diff --git a/src/modules/main/ModuleLiveSyncMain.ts b/src/modules/main/ModuleLiveSyncMain.ts index ba51989..22c5734 100644 --- a/src/modules/main/ModuleLiveSyncMain.ts +++ b/src/modules/main/ModuleLiveSyncMain.ts @@ -62,12 +62,19 @@ export class ModuleLiveSyncMain extends AbstractModule { _wireUpEvents() { eventHub.onEvent(EVENT_SETTING_SAVED, (settings: ObsidianLiveSyncSettings) => { - this.localDatabase.settings = settings; - setLang(settings.displayLanguage); - eventHub.emitEvent(EVENT_REQUEST_RELOAD_SETTING_TAB); - }); - eventHub.onEvent(EVENT_SETTING_SAVED, (settings: ObsidianLiveSyncSettings) => { - fireAndForget(() => this.core.services.setting.realiseSetting()); + fireAndForget(async () => { + try { + await this.core.services.setting.realiseSetting(); + const lang = this.core.services.setting.currentSettings()?.displayLanguage ?? undefined; + if (lang !== undefined) { + setLang(this.core.services.setting.currentSettings()?.displayLanguage); + } + eventHub.emitEvent(EVENT_REQUEST_RELOAD_SETTING_TAB); + } catch (e) { + this._log(`Error in Setting Save Event`, LOG_LEVEL_NOTICE); + this._log(e, LOG_LEVEL_VERBOSE); + } + }); }); return Promise.resolve(true); } From b0661cdbabecad3784fcd1c3e4aebcf0b38d9497 Mon Sep 17 00:00:00 2001 From: vorotamoroz Date: Mon, 17 Nov 2025 13:20:16 +0900 Subject: [PATCH 10/12] bump --- manifest.json | 2 +- package-lock.json | 223 ++++++++++++++++++++++++++++------------------ package.json | 2 +- updates.md | 83 +++-------------- updates_old.md | 69 ++++++++++++++ 5 files changed, 218 insertions(+), 161 deletions(-) diff --git a/manifest.json b/manifest.json index 3400e1c..d4cab8c 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-livesync", "name": "Self-hosted LiveSync", - "version": "0.25.27", + "version": "0.25.28", "minAppVersion": "0.9.12", "description": "Community implementation of self-hosted livesync. Reflect your vault changes to some other devices immediately. Please make sure to disable other synchronize solutions to avoid content corruption or duplication.", "author": "vorotamoroz", diff --git a/package-lock.json b/package-lock.json index 1c5b71b..a6b8280 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "obsidian-livesync", - "version": "0.25.27", + "version": "0.25.28", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "obsidian-livesync", - "version": "0.25.27", + "version": "0.25.28", "license": "MIT", "dependencies": { "@aws-sdk/client-s3": "^3.808.0", @@ -1793,7 +1793,6 @@ "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.14.4.tgz", "integrity": "sha512-pUxEGmR+uu21OG/icAovjlu1fcYJzyVhhT0rsCrn+zi+nHtrS43Bp9KPn9KGa4NMspCUE++nkyiqziuIvJdwzw==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@firebase/component": "0.7.0", "@firebase/logger": "0.5.0", @@ -1860,7 +1859,6 @@ "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.5.4.tgz", "integrity": "sha512-T7ifGmb+awJEcp542Ek4HtNfBxcBrnuk1ggUdqyFEdsXHdq7+wVlhvE6YukTL7NS8hIkEfL7TMAPx/uCNqt30g==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@firebase/app": "0.14.4", "@firebase/component": "0.7.0", @@ -1876,8 +1874,7 @@ "version": "0.9.3", "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.3.tgz", "integrity": "sha512-kRVpIl4vVGJ4baogMDINbyrIOtOxqhkZQg4jTq3l8Lw6WSk0xfpEYzezFu+Kl4ve4fbPl79dvwRtaFqAC/ucCw==", - "license": "Apache-2.0", - "peer": true + "license": "Apache-2.0" }, "node_modules/@firebase/app/node_modules/idb": { "version": "7.1.1", @@ -2346,7 +2343,6 @@ "integrity": "sha512-0AZUyYUfpMNcztR5l09izHwXkZpghLgCUaAGjtMwXnCg3bj4ml5VgiwqOMOxJ+Nw4qN/zJAaOQBcJ7KGkWStqQ==", "hasInstallScript": true, "license": "Apache-2.0", - "peer": true, "dependencies": { "tslib": "^2.1.0" }, @@ -3204,7 +3200,8 @@ "optional": true, "os": [ "android" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-android-arm64": { "version": "4.52.5", @@ -3218,7 +3215,8 @@ "optional": true, "os": [ "android" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-darwin-arm64": { "version": "4.52.5", @@ -3232,7 +3230,8 @@ "optional": true, "os": [ "darwin" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-darwin-x64": { "version": "4.52.5", @@ -3246,7 +3245,8 @@ "optional": true, "os": [ "darwin" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-freebsd-arm64": { "version": "4.52.5", @@ -3260,7 +3260,8 @@ "optional": true, "os": [ "freebsd" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-freebsd-x64": { "version": "4.52.5", @@ -3274,7 +3275,8 @@ "optional": true, "os": [ "freebsd" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { "version": "4.52.5", @@ -3288,7 +3290,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { "version": "4.52.5", @@ -3302,7 +3305,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-linux-arm64-gnu": { "version": "4.52.5", @@ -3316,7 +3320,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-linux-arm64-musl": { "version": "4.52.5", @@ -3330,7 +3335,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-linux-loong64-gnu": { "version": "4.52.5", @@ -3344,7 +3350,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { "version": "4.52.5", @@ -3358,7 +3365,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { "version": "4.52.5", @@ -3372,7 +3380,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-linux-riscv64-musl": { "version": "4.52.5", @@ -3386,7 +3395,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-linux-s390x-gnu": { "version": "4.52.5", @@ -3400,7 +3410,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-linux-x64-gnu": { "version": "4.52.5", @@ -3414,7 +3425,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-linux-x64-musl": { "version": "4.52.5", @@ -3428,7 +3440,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-openharmony-arm64": { "version": "4.52.5", @@ -3442,7 +3455,8 @@ "optional": true, "os": [ "openharmony" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-win32-arm64-msvc": { "version": "4.52.5", @@ -3456,7 +3470,8 @@ "optional": true, "os": [ "win32" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-win32-ia32-msvc": { "version": "4.52.5", @@ -3470,7 +3485,8 @@ "optional": true, "os": [ "win32" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-win32-x64-gnu": { "version": "4.52.5", @@ -3484,7 +3500,8 @@ "optional": true, "os": [ "win32" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-win32-x64-msvc": { "version": "4.52.5", @@ -3498,7 +3515,8 @@ "optional": true, "os": [ "win32" - ] + ], + "peer": true }, "node_modules/@rtsao/scc": { "version": "1.1.0", @@ -4360,7 +4378,6 @@ "integrity": "sha512-YZs/OSKOQAQCnJvM/P+F1URotNnYNeU3P2s4oIpzm1uFaqUEqRxUB0g5ejMjEb5Gjb9/PiBI5Ktrq4rUUF8UVQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@sveltejs/vite-plugin-svelte-inspector": "^5.0.0", "debug": "^4.4.1", @@ -4757,7 +4774,6 @@ "integrity": "sha512-BnOroVl1SgrPLywqxyqdJ4l3S2MsKVLDVxZvjI1Eoe8ev2r3kGDo+PcMihNmDE+6/KjkTubSJnmqGZZjQSBq/g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.46.2", "@typescript-eslint/types": "8.46.2", @@ -5322,7 +5338,6 @@ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -6401,7 +6416,6 @@ "dev": true, "hasInstallScript": true, "license": "MIT", - "peer": true, "bin": { "esbuild": "bin/esbuild" }, @@ -6490,7 +6504,6 @@ "integrity": "sha512-t5aPOpmtJcZcz5UJyY2GbvpDlsK5E8JqRqoKtfiKE3cNh437KIqfJr3A3AKf5k64NPx6d0G3dno6XDY05PqPtw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -8618,7 +8631,6 @@ "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-2.8.11.tgz", "integrity": "sha512-EjkyN0CI6uP+e4OOkEcZvhbZtlwFl4Y0rkkMvDbXmcfILX4E4n/jKE4Ppoc1qhNufxToxVWCMDS2ipniQgiYaw==", "license": "Apache-2.0 OR MIT", - "peer": true, "dependencies": { "@chainsafe/is-ip": "^2.1.0", "@chainsafe/netmask": "^2.0.0", @@ -9508,7 +9520,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -9533,7 +9544,6 @@ "url": "https://github.com/sponsors/ai" } ], - "peer": true, "dependencies": { "lilconfig": "^3.1.1" }, @@ -10225,6 +10235,7 @@ "integrity": "sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/estree": "1.0.8" }, @@ -10795,7 +10806,8 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.0.0.tgz", "integrity": "sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw==", - "dev": true + "dev": true, + "peer": true }, "node_modules/sublevel-pouchdb": { "version": "9.0.0", @@ -10866,7 +10878,6 @@ "integrity": "sha512-0a/huwc8e2es+7KFi70esqsReRfRbrT8h1cJSY/+z1lF0yKM6TT+//HYu28Yxstr50H7ifaqZRDGd0KuKDxP7w==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jridgewell/remapping": "^2.3.4", "@jridgewell/sourcemap-codec": "^1.5.0", @@ -10929,6 +10940,21 @@ } } }, + "node_modules/svelte-check/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/svelte-eslint-parser": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-1.4.0.tgz", @@ -11034,7 +11060,6 @@ "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", "dev": true, "license": "BSD-2-Clause", - "peer": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -11080,6 +11105,7 @@ "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" @@ -11097,6 +11123,7 @@ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12.0.0" }, @@ -11224,7 +11251,6 @@ "integrity": "sha512-ytQKuwgmrrkDTFP4LjR0ToE2nqgy886GpvRSpU0JAnrdBYppuY5rLkRUYPU1yCryb24SsKBTL/hlDQAEFVwtZg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "esbuild": "~0.25.0", "get-tsconfig": "^4.7.5" @@ -11350,7 +11376,6 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -11538,6 +11563,7 @@ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12.0.0" }, @@ -11594,7 +11620,8 @@ "version": "2.2.4", "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.4.tgz", "integrity": "sha512-tOhfEwEzFLJzf6d1ZPkYfGj+FWhIpBux9ppoP3rlclw3Z0BZv3N7b7030Z1kYth+6rDuAsXUFr+d0VE6Ed1ikw==", - "dev": true + "dev": true, + "peer": true }, "node_modules/weald": { "version": "1.1.1", @@ -11923,7 +11950,6 @@ "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", "dev": true, "license": "ISC", - "peer": true, "bin": { "yaml": "bin.mjs" }, @@ -13148,7 +13174,6 @@ "version": "0.14.4", "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.14.4.tgz", "integrity": "sha512-pUxEGmR+uu21OG/icAovjlu1fcYJzyVhhT0rsCrn+zi+nHtrS43Bp9KPn9KGa4NMspCUE++nkyiqziuIvJdwzw==", - "peer": true, "requires": { "@firebase/component": "0.7.0", "@firebase/logger": "0.5.0", @@ -13202,7 +13227,6 @@ "version": "0.5.4", "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.5.4.tgz", "integrity": "sha512-T7ifGmb+awJEcp542Ek4HtNfBxcBrnuk1ggUdqyFEdsXHdq7+wVlhvE6YukTL7NS8hIkEfL7TMAPx/uCNqt30g==", - "peer": true, "requires": { "@firebase/app": "0.14.4", "@firebase/component": "0.7.0", @@ -13214,8 +13238,7 @@ "@firebase/app-types": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.3.tgz", - "integrity": "sha512-kRVpIl4vVGJ4baogMDINbyrIOtOxqhkZQg4jTq3l8Lw6WSk0xfpEYzezFu+Kl4ve4fbPl79dvwRtaFqAC/ucCw==", - "peer": true + "integrity": "sha512-kRVpIl4vVGJ4baogMDINbyrIOtOxqhkZQg4jTq3l8Lw6WSk0xfpEYzezFu+Kl4ve4fbPl79dvwRtaFqAC/ucCw==" }, "@firebase/auth": { "version": "1.11.0", @@ -13543,7 +13566,6 @@ "version": "1.13.0", "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.13.0.tgz", "integrity": "sha512-0AZUyYUfpMNcztR5l09izHwXkZpghLgCUaAGjtMwXnCg3bj4ml5VgiwqOMOxJ+Nw4qN/zJAaOQBcJ7KGkWStqQ==", - "peer": true, "requires": { "tslib": "^2.1.0" } @@ -14202,154 +14224,176 @@ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.5.tgz", "integrity": "sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "@rollup/rollup-android-arm64": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.5.tgz", "integrity": "sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "@rollup/rollup-darwin-arm64": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.5.tgz", "integrity": "sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "@rollup/rollup-darwin-x64": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.5.tgz", "integrity": "sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "@rollup/rollup-freebsd-arm64": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.5.tgz", "integrity": "sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "@rollup/rollup-freebsd-x64": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.5.tgz", "integrity": "sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "@rollup/rollup-linux-arm-gnueabihf": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.5.tgz", "integrity": "sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "@rollup/rollup-linux-arm-musleabihf": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.5.tgz", "integrity": "sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "@rollup/rollup-linux-arm64-gnu": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.5.tgz", "integrity": "sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "@rollup/rollup-linux-arm64-musl": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.5.tgz", "integrity": "sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "@rollup/rollup-linux-loong64-gnu": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.5.tgz", "integrity": "sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "@rollup/rollup-linux-ppc64-gnu": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.5.tgz", "integrity": "sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "@rollup/rollup-linux-riscv64-gnu": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.5.tgz", "integrity": "sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "@rollup/rollup-linux-riscv64-musl": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.5.tgz", "integrity": "sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "@rollup/rollup-linux-s390x-gnu": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.5.tgz", "integrity": "sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "@rollup/rollup-linux-x64-gnu": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.5.tgz", "integrity": "sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "@rollup/rollup-linux-x64-musl": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.5.tgz", "integrity": "sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "@rollup/rollup-openharmony-arm64": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.5.tgz", "integrity": "sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "@rollup/rollup-win32-arm64-msvc": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.5.tgz", "integrity": "sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "@rollup/rollup-win32-ia32-msvc": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.5.tgz", "integrity": "sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "@rollup/rollup-win32-x64-gnu": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.5.tgz", "integrity": "sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "@rollup/rollup-win32-x64-msvc": { "version": "4.52.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.5.tgz", "integrity": "sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "@rtsao/scc": { "version": "1.1.0", @@ -14979,7 +15023,6 @@ "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-6.2.1.tgz", "integrity": "sha512-YZs/OSKOQAQCnJvM/P+F1URotNnYNeU3P2s4oIpzm1uFaqUEqRxUB0g5ejMjEb5Gjb9/PiBI5Ktrq4rUUF8UVQ==", "dev": true, - "peer": true, "requires": { "@sveltejs/vite-plugin-svelte-inspector": "^5.0.0", "debug": "^4.4.1", @@ -15332,7 +15375,6 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.46.2.tgz", "integrity": "sha512-BnOroVl1SgrPLywqxyqdJ4l3S2MsKVLDVxZvjI1Eoe8ev2r3kGDo+PcMihNmDE+6/KjkTubSJnmqGZZjQSBq/g==", "dev": true, - "peer": true, "requires": { "@typescript-eslint/scope-manager": "8.46.2", "@typescript-eslint/types": "8.46.2", @@ -15705,8 +15747,7 @@ "version": "8.15.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", - "dev": true, - "peer": true + "dev": true }, "acorn-jsx": { "version": "5.3.2", @@ -16434,7 +16475,6 @@ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz", "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==", "dev": true, - "peer": true, "requires": { "@esbuild/aix-ppc64": "0.25.0", "@esbuild/android-arm": "0.25.0", @@ -16498,7 +16538,6 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.38.0.tgz", "integrity": "sha512-t5aPOpmtJcZcz5UJyY2GbvpDlsK5E8JqRqoKtfiKE3cNh437KIqfJr3A3AKf5k64NPx6d0G3dno6XDY05PqPtw==", "dev": true, - "peer": true, "requires": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -17939,7 +17978,6 @@ "version": "2.8.11", "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-2.8.11.tgz", "integrity": "sha512-EjkyN0CI6uP+e4OOkEcZvhbZtlwFl4Y0rkkMvDbXmcfILX4E4n/jKE4Ppoc1qhNufxToxVWCMDS2ipniQgiYaw==", - "peer": true, "requires": { "@chainsafe/is-ip": "^2.1.0", "@chainsafe/netmask": "^2.0.0", @@ -18542,7 +18580,6 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", "dev": true, - "peer": true, "requires": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -18554,7 +18591,6 @@ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", "dev": true, - "peer": true, "requires": { "lilconfig": "^3.1.1" } @@ -19068,6 +19104,7 @@ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.5.tgz", "integrity": "sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==", "dev": true, + "peer": true, "requires": { "@rollup/rollup-android-arm-eabi": "4.52.5", "@rollup/rollup-android-arm64": "4.52.5", @@ -19432,7 +19469,8 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.0.0.tgz", "integrity": "sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw==", - "dev": true + "dev": true, + "peer": true }, "sublevel-pouchdb": { "version": "9.0.0", @@ -19491,7 +19529,6 @@ "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.41.1.tgz", "integrity": "sha512-0a/huwc8e2es+7KFi70esqsReRfRbrT8h1cJSY/+z1lF0yKM6TT+//HYu28Yxstr50H7ifaqZRDGd0KuKDxP7w==", "dev": true, - "peer": true, "requires": { "@jridgewell/remapping": "^2.3.4", "@jridgewell/sourcemap-codec": "^1.5.0", @@ -19528,6 +19565,14 @@ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, "requires": {} + }, + "picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "optional": true, + "peer": true } } }, @@ -19565,7 +19610,6 @@ "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz", "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", "dev": true, - "peer": true, "requires": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -19601,6 +19645,7 @@ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", "dev": true, + "peer": true, "requires": { "fdir": "^6.5.0", "picomatch": "^4.0.3" @@ -19611,6 +19656,7 @@ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, + "peer": true, "requires": {} }, "picomatch": { @@ -19705,7 +19751,6 @@ "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.20.6.tgz", "integrity": "sha512-ytQKuwgmrrkDTFP4LjR0ToE2nqgy886GpvRSpU0JAnrdBYppuY5rLkRUYPU1yCryb24SsKBTL/hlDQAEFVwtZg==", "dev": true, - "peer": true, "requires": { "esbuild": "~0.25.0", "fsevents": "~2.3.3", @@ -19788,8 +19833,7 @@ "version": "5.9.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", - "dev": true, - "peer": true + "dev": true }, "uint8-varint": { "version": "2.0.4", @@ -19890,6 +19934,7 @@ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, + "peer": true, "requires": {} }, "picomatch": { @@ -19918,7 +19963,8 @@ "version": "2.2.4", "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.4.tgz", "integrity": "sha512-tOhfEwEzFLJzf6d1ZPkYfGj+FWhIpBux9ppoP3rlclw3Z0BZv3N7b7030Z1kYth+6rDuAsXUFr+d0VE6Ed1ikw==", - "dev": true + "dev": true, + "peer": true }, "weald": { "version": "1.1.1", @@ -20143,8 +20189,7 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", - "dev": true, - "peer": true + "dev": true }, "yargs": { "version": "17.7.2", diff --git a/package.json b/package.json index ba21ef2..6c26e0c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "obsidian-livesync", - "version": "0.25.27", + "version": "0.25.28", "description": "Reflect your vault changes to some other devices immediately. Please make sure to disable other synchronize solutions to avoid content corruption or duplication.", "main": "main.js", "type": "module", diff --git a/updates.md b/updates.md index 7c56c3e..32b66dd 100644 --- a/updates.md +++ b/updates.md @@ -4,6 +4,19 @@ Since 19th July, 2025 (beta1 in 0.25.0-beta1, 13th July, 2025) The head note of 0.25 is now in [updates_old.md](https://github.com/vrtmrz/obsidian-livesync/blob/main/updates_old.md). Because 0.25 got a lot of updates, thankfully, compatibility is kept and we do not need breaking changes! In other words, when get enough stabled. The next version will be v1.0.0. Even though it my hope. +## 0.25.28 + +17th November, 2025 + +### New feature +- We can now configure hidden file synchronisation to always overwrite with the latest version (#579). + +### Fixed +- Timing dependency issues during initialisation have been mitigated (#714) + +### Improved +- Error logs now contain stack-traces for better inspection. + ## 0.25.27 12th November, 2025 @@ -75,75 +88,5 @@ And, tips about JWT Authentication on CouchDB have been added to the documentati - The notification area is no longer imposing, distracting, and overwhelming. - With a pale background, but bordered and with icons. -## 0.25.24 - -04th November, 2025 - -(Beta release notes have been consolidated to this note). - -### Guidance and UI improvements! - -Since several issues were pointed out, our setup procedure had been quite `system-oriented`. This is not good for users. Therefore, I have changed the procedure to be more `goal-oriented`. I have made extensive use of Svelte, resulting in a very straightforward setup. -While I would like to accelerate documentation and i18n adoption, I do not want to confuse everyone who's already working on it. Therefore, I have decided to release a Beta version at this stage. Significant changes are not expected from this point onward, so I will proceed to stabilise the codebase. (However, this is significant). - -### TURN server support and important notice - -TURN server settings are only necessary if you are behind a strict NAT or firewall that prevents direct P2P -connections. In most cases, you do not need to set up a TURN server. - -Using public TURN servers may have privacy implications, as your data will be relayed through third-party -servers. Even if your data are encrypted, your existence may be known to them. Please ensure you trust the TURN -server provider before using their services. Also your `network administrator` too. You should consider setting -up your own TURN server for your FQDN, if possible. - -### New features - -- We can use the TURN server for P2P connections now. - -### Fixed - -- P2P Replication got more robust and stable. - - Update [Trystero](https://github.com/dmotz/trystero) to the official v0.22.0! - - Fixed a bug that caused P2P connections to drop or (unwanted reconnection to the relay server) unexpectedly in some environments. - - Now, the connection status is more accurately reported. - - While in the background, the connection to the signalling server is now disconnected to save resources. - - When returning to the foreground, it will not reconnect automatically for safety. Please reconnect manually. -- All connection configurations should be edited in each dedicated dialogue now. -- No longer will larger files create chunks during preparing `Reset Synchronisation on This Device`. -- Now hidden file synchronisation respects the filters correctly (#631, #735) - - And `ignore-files` settings are also respected and surely read during the start-up. - -### Behaviour changes - -- The setup wizard is now more `goal-oriented`. Brand-new screens are introduced. -- `Fetch everything` and `Rebuild everything` are now `Reset Synchronisation on This Device` and `Overwrite Server Data with This Device's Files`. -- Remote configuration and E2EE settings are now separated into each modal dialogue. - - Remote configuration is now more straightforward. And if we need the rebuild (No... `Overwrite Server Data with This Device's Files`), it is now clearly indicated. -- Peer-to-Peer settings are also separated into their own modal dialogue (still in progress, and we need to open a P2P pane, still). -- Setup-URI, and Report for the Issue are now not copied to the clipboard automatically. Instead, there are copy-dialogue and buttons to copy them explicitly. - - This is to avoid confusion for users who do not want to use these features. -- No longer optional features are introduced during the setup, or `Reset Synchronisation on This Device`, `Overwrite Server Data with This Device's Files`. - - This is to avoid confusion for users who do not want to use these features. Instead, we will be informed that optional features are available after the setup is completed. -- We cannot perform `Fetch everything` and `Rebuild everything` (Removed, so the old name) without restarting Obsidian now. - -### Miscellaneous - -- Setup QR Code generation is separated into a src/lib/src/API/processSetting.ts file. Please use it as a subrepository if you want to generate QR codes in your own application. -- Setup-URI is also separated into a src/lib/src/API/processSetting.ts -- Some direct access to web APIs is now wrapped into the services layer. - -### Dependency updates - -- Many dependencies are updated. Please see `package.json`. - - This is the hardest part of this update. I read most of the changes in the dependencies. If you find any extra information, please let me know. -- As upgrading TypeScript, Fixed many UInt8Array and Uint8Array type mismatches. -- - -### Breaking changes - -- Sending configuration via Peer-to-Peer connection is not compatible with older versions. - - Please upgrade all devices to v0.25.24.beta1 or later to use this feature again. - - This is due to security improvements in the encryption scheme. - Older notes are in [updates_old.md](https://github.com/vrtmrz/obsidian-livesync/blob/main/updates_old.md). diff --git a/updates_old.md b/updates_old.md index 27d1d42..c8668fd 100644 --- a/updates_old.md +++ b/updates_old.md @@ -9,6 +9,75 @@ I have now rewritten the E2EE code to be more robust and easier to understand. I As a result, this is the first time in a while that forward compatibility has been broken. We have also taken the opportunity to change all metadata to use encryption rather than obfuscation. Furthermore, the `Dynamic Iteration Count` setting is now redundant and has been moved to the `Patches` pane in the settings. Thanks to Rabin-Karp, the eden setting is also no longer necessary and has been relocated accordingly. Therefore, v0.25.0 represents a legitimate and correct evolution. --- +## 0.25.24 + +04th November, 2025 + +(Beta release notes have been consolidated to this note). + +### Guidance and UI improvements! + +Since several issues were pointed out, our setup procedure had been quite `system-oriented`. This is not good for users. Therefore, I have changed the procedure to be more `goal-oriented`. I have made extensive use of Svelte, resulting in a very straightforward setup. +While I would like to accelerate documentation and i18n adoption, I do not want to confuse everyone who's already working on it. Therefore, I have decided to release a Beta version at this stage. Significant changes are not expected from this point onward, so I will proceed to stabilise the codebase. (However, this is significant). + +### TURN server support and important notice + +TURN server settings are only necessary if you are behind a strict NAT or firewall that prevents direct P2P +connections. In most cases, you do not need to set up a TURN server. + +Using public TURN servers may have privacy implications, as your data will be relayed through third-party +servers. Even if your data are encrypted, your existence may be known to them. Please ensure you trust the TURN +server provider before using their services. Also your `network administrator` too. You should consider setting +up your own TURN server for your FQDN, if possible. + +### New features + +- We can use the TURN server for P2P connections now. + +### Fixed + +- P2P Replication got more robust and stable. + - Update [Trystero](https://github.com/dmotz/trystero) to the official v0.22.0! + - Fixed a bug that caused P2P connections to drop or (unwanted reconnection to the relay server) unexpectedly in some environments. + - Now, the connection status is more accurately reported. + - While in the background, the connection to the signalling server is now disconnected to save resources. + - When returning to the foreground, it will not reconnect automatically for safety. Please reconnect manually. +- All connection configurations should be edited in each dedicated dialogue now. +- No longer will larger files create chunks during preparing `Reset Synchronisation on This Device`. +- Now hidden file synchronisation respects the filters correctly (#631, #735) + - And `ignore-files` settings are also respected and surely read during the start-up. + +### Behaviour changes + +- The setup wizard is now more `goal-oriented`. Brand-new screens are introduced. +- `Fetch everything` and `Rebuild everything` are now `Reset Synchronisation on This Device` and `Overwrite Server Data with This Device's Files`. +- Remote configuration and E2EE settings are now separated into each modal dialogue. + - Remote configuration is now more straightforward. And if we need the rebuild (No... `Overwrite Server Data with This Device's Files`), it is now clearly indicated. +- Peer-to-Peer settings are also separated into their own modal dialogue (still in progress, and we need to open a P2P pane, still). +- Setup-URI, and Report for the Issue are now not copied to the clipboard automatically. Instead, there are copy-dialogue and buttons to copy them explicitly. + - This is to avoid confusion for users who do not want to use these features. +- No longer optional features are introduced during the setup, or `Reset Synchronisation on This Device`, `Overwrite Server Data with This Device's Files`. + - This is to avoid confusion for users who do not want to use these features. Instead, we will be informed that optional features are available after the setup is completed. +- We cannot perform `Fetch everything` and `Rebuild everything` (Removed, so the old name) without restarting Obsidian now. + +### Miscellaneous + +- Setup QR Code generation is separated into a src/lib/src/API/processSetting.ts file. Please use it as a subrepository if you want to generate QR codes in your own application. +- Setup-URI is also separated into a src/lib/src/API/processSetting.ts +- Some direct access to web APIs is now wrapped into the services layer. + +### Dependency updates + +- Many dependencies are updated. Please see `package.json`. + - This is the hardest part of this update. I read most of the changes in the dependencies. If you find any extra information, please let me know. +- As upgrading TypeScript, Fixed many UInt8Array and Uint8Array type mismatches. +- + +### Breaking changes + +- Sending configuration via Peer-to-Peer connection is not compatible with older versions. + - Please upgrade all devices to v0.25.24.beta1 or later to use this feature again. + - This is due to security improvements in the encryption scheme. ## 0.25.23 From 477913456f0783aa2b25df7e663e7c464eae3a91 Mon Sep 17 00:00:00 2001 From: vorotamoroz Date: Mon, 17 Nov 2025 13:24:45 +0900 Subject: [PATCH 11/12] OK. --- .github/workflows/release.yml | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ea1d653..b0720e6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -30,19 +30,11 @@ jobs: npm ci npm run build --if-present # Package the required files into a zip - - name: Determine Asset Suffix - id: vars - run: | - if [ "${{ github.ref_name }}" = "main" ]; then - echo "asset_suffix=" >> $GITHUB_OUTPUT - else - echo "asset_suffix=-${{ github.ref_name }}" >> $GITHUB_OUTPUT - fi - name: Package run: | mkdir ${{ github.event.repository.name }} cp main.js manifest.json styles.css README.md ${{ github.event.repository.name }} - zip -r ${{ github.event.repository.name }}${{ steps.vars.outputs.asset_suffix }}.zip ${{ github.event.repository.name }} + zip -r ${{ github.event.repository.name }}.zip ${{ github.event.repository.name }} # Create the release on github # - name: Create Release # id: create_release @@ -103,10 +95,10 @@ jobs: uses: softprops/action-gh-release@v2 with: files: | - ${{ github.event.repository.name }}${{ steps.vars.outputs.asset_suffix }}.zip + ${{ github.event.repository.name }}.zip main.js manifest.json styles.css - name: ${{ steps.version.outputs.tag }}${{ steps.vars.outputs.asset_suffix }} - tag_name: ${{ steps.version.outputs.tag }}${{ steps.vars.outputs.asset_suffix }} + name: ${{ steps.version.outputs.tag }} + tag_name: ${{ steps.version.outputs.tag }} draft: true \ No newline at end of file From bab66a64d7ab9ed6f5725ce966f0ab7e236e9fab Mon Sep 17 00:00:00 2001 From: vorotamoroz Date: Mon, 17 Nov 2025 13:27:26 +0900 Subject: [PATCH 12/12] bump again for release.. --- manifest.json | 2 +- package-lock.json | 4 ++-- package.json | 2 +- updates.md | 3 ++- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/manifest.json b/manifest.json index d4cab8c..0dfe06b 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-livesync", "name": "Self-hosted LiveSync", - "version": "0.25.28", + "version": "0.25.29", "minAppVersion": "0.9.12", "description": "Community implementation of self-hosted livesync. Reflect your vault changes to some other devices immediately. Please make sure to disable other synchronize solutions to avoid content corruption or duplication.", "author": "vorotamoroz", diff --git a/package-lock.json b/package-lock.json index a6b8280..49d8744 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "obsidian-livesync", - "version": "0.25.28", + "version": "0.25.29", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "obsidian-livesync", - "version": "0.25.28", + "version": "0.25.29", "license": "MIT", "dependencies": { "@aws-sdk/client-s3": "^3.808.0", diff --git a/package.json b/package.json index 6c26e0c..ebb3d57 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "obsidian-livesync", - "version": "0.25.28", + "version": "0.25.29", "description": "Reflect your vault changes to some other devices immediately. Please make sure to disable other synchronize solutions to avoid content corruption or duplication.", "main": "main.js", "type": "module", diff --git a/updates.md b/updates.md index 32b66dd..c19e338 100644 --- a/updates.md +++ b/updates.md @@ -4,7 +4,8 @@ Since 19th July, 2025 (beta1 in 0.25.0-beta1, 13th July, 2025) The head note of 0.25 is now in [updates_old.md](https://github.com/vrtmrz/obsidian-livesync/blob/main/updates_old.md). Because 0.25 got a lot of updates, thankfully, compatibility is kept and we do not need breaking changes! In other words, when get enough stabled. The next version will be v1.0.0. Even though it my hope. -## 0.25.28 +## ~~0.25.28~~ 0.25.29 +(0.25.28 was skipped due to a packaging issue.) 17th November, 2025