Browse Source

Merge branch 'feat/db' into feat/capacitor-new

charlie 4 months ago
parent
commit
f0dcc24e50

+ 1 - 1
.github/workflows/build-android.yml

@@ -42,7 +42,7 @@ on:
 
 env:
   CLOJURE_VERSION: '1.11.1.1413'
-  NODE_VERSION: '22'
+  NODE_VERSION: '20'
   JAVA_VERSION: '17'
 
 jobs:

+ 1 - 1
.github/workflows/build-demo.yml

@@ -19,7 +19,7 @@ on:
 
 env:
   CLOJURE_VERSION: '1.11.1.1413'
-  NODE_VERSION: '22'
+  NODE_VERSION: '20'
   JAVA_VERSION: '17'
 
 jobs:

+ 1 - 1
.github/workflows/build-desktop-release.yml

@@ -48,7 +48,7 @@ on:
 
 env:
   CLOJURE_VERSION: '1.11.1.1413'
-  NODE_VERSION: '22'
+  NODE_VERSION: '20'
   JAVA_VERSION: '11'
 
 jobs:

+ 1 - 1
.github/workflows/build-ios-release.yml

@@ -12,7 +12,7 @@ on:
 
 env:
   CLOJURE_VERSION: '1.11.1.1413'
-  NODE_VERSION: '22'
+  NODE_VERSION: '20'
   JAVA_VERSION: '11'
 
 jobs:

+ 1 - 1
.github/workflows/build-ios.yml

@@ -17,7 +17,7 @@ on:
 
 env:
   CLOJURE_VERSION: '1.11.1.1413'
-  NODE_VERSION: '22'
+  NODE_VERSION: '20'
   JAVA_VERSION: '11'
 
 jobs:

+ 1 - 1
.github/workflows/build-stage.yml

@@ -19,7 +19,7 @@ on:
 
 env:
   CLOJURE_VERSION: '1.11.1.1413'
-  NODE_VERSION: '22'
+  NODE_VERSION: '20'
   JAVA_VERSION: '17'
 
 jobs:

+ 1 - 1
.github/workflows/build.yml

@@ -14,7 +14,7 @@ env:
   CLOJURE_VERSION: '1.11.1.1413'
   JAVA_VERSION: '11'
   # This is the latest node version we can run.
-  NODE_VERSION: '22'
+  NODE_VERSION: '20'
   BABASHKA_VERSION: '1.0.168'
 
 jobs:

+ 2 - 2
.github/workflows/clj-rtc-e2e.yml

@@ -85,8 +85,8 @@ jobs:
 
       - name: Run e2e tests
         run: cd clj-e2e && timeout 30m bb run-rtc-extra-test
-        env:
-          DEBUG: "pw:api"
+        # env:
+        # DEBUG: "pw:api"
 
       - name: Collect screenshots
         if: ${{ failure() }}

+ 1 - 1
.github/workflows/db.yml

@@ -23,7 +23,7 @@ env:
   CLOJURE_VERSION: '1.11.1.1413'
   JAVA_VERSION: '11'
   # This is the latest node version we can run.
-  NODE_VERSION: '22'
+  NODE_VERSION: '20'
   BABASHKA_VERSION: '1.0.168'
 
 jobs:

+ 1 - 1
.github/workflows/e2e.yml

@@ -19,7 +19,7 @@ env:
   CLOJURE_VERSION: '1.11.1.1413'
   JAVA_VERSION: '11'
   # This is the latest node version we can run.
-  NODE_VERSION: '22'
+  NODE_VERSION: '20'
   BABASHKA_VERSION: '1.0.168'
 
 jobs:

+ 1 - 1
.github/workflows/graph-parser.yml

@@ -28,7 +28,7 @@ env:
   # This is the same as 1.8.
   JAVA_VERSION: '11'
   # This is the latest node version we can run.
-  NODE_VERSION: '22'
+  NODE_VERSION: '20'
   BABASHKA_VERSION: '1.0.168'
 
 jobs:

+ 1 - 1
.github/workflows/logseq-common.yml

@@ -23,7 +23,7 @@ env:
   CLOJURE_VERSION: '1.11.1.1413'
   JAVA_VERSION: '11'
   # This is the latest node version we can run.
-  NODE_VERSION: '22'
+  NODE_VERSION: '20'
   BABASHKA_VERSION: '1.0.168'
 
 jobs:

+ 1 - 1
.github/workflows/publishing.yml

@@ -28,7 +28,7 @@ env:
   # This is the same as 1.8.
   JAVA_VERSION: '11'
   # This is the latest node version we can run.
-  NODE_VERSION: '22'
+  NODE_VERSION: '20'
   BABASHKA_VERSION: '1.0.168'
 
 jobs:

+ 1 - 4
clj-e2e/src/logseq/e2e/assert.clj

@@ -40,10 +40,7 @@
 
 (defn assert-editor-mode
   []
-  (let [klass ".editor-wrapper textarea"
-        editor (w/-query klass)]
-    (w/wait-for editor)
-    editor))
+  (assert-have-count ".editor-wrapper textarea" 1))
 
 (defn assert-selected-block-text
   [text]

+ 2 - 0
clj-e2e/src/logseq/e2e/block.clj

@@ -15,6 +15,7 @@
 
 (defn save-block
   [text]
+  (assert/assert-have-count util/editor-q 1)
   (w/click util/editor-q)
   (w/fill util/editor-q text)
   (assert/assert-is-visible (loc/filter util/editor-q :has-text text)))
@@ -62,6 +63,7 @@
 
 (defn wait-editor-text
   [text]
+  (assert/assert-have-count util/editor-q 1)
   (w/wait-for (format ".editor-wrapper textarea:text('%s')" text)))
 
 (def copy #(k/press "ControlOrMeta+c" {:delay 100}))

+ 2 - 0
clj-e2e/src/logseq/e2e/rtc.clj

@@ -20,6 +20,8 @@
      ~@body
      (loop [i# 5]
        (when (zero? i#) (throw (ex-info "wait-tx-updated failed" {:old m# :new (get-rtc-tx)})))
+       (util/wait-timeout 500)
+       (w/wait-for "button.cloud.on.idle")
        (util/wait-timeout 1000)
        (let [new-m# (get-rtc-tx)
              new-local-tx# (or (:local-tx new-m#) 0)

+ 2 - 1
clj-e2e/src/logseq/e2e/util.clj

@@ -48,7 +48,8 @@
 
 (defn get-edit-block-container
   []
-  (first (w/query ".ls-block" {:has (w/-query ".editor-wrapper textarea")})))
+  (assert/assert-have-count editor-q 1)
+  (first (w/query ".ls-block" {:has (w/-query editor-q)})))
 
 (defn input
   "Notice this will replace the existing input value with `text`"

+ 1 - 0
clj-e2e/test/logseq/e2e/property_basic_test.clj

@@ -24,6 +24,7 @@
       (w/click (util/get-by-text (str title-prefix "-" property-type) true))
       (k/press "Control+e")
       (util/input-command "Add new property")
+      (w/click "input[placeholder]")
       (util/input property-name)
       (w/click (util/get-by-text "New option:" false))
       (assert/assert-is-visible (w/get-by-text "Select a property type"))

+ 36 - 4
clj-e2e/test/logseq/e2e/rtc_extra_test.clj

@@ -7,7 +7,6 @@
    [logseq.e2e.custom-report :as custom-report]
    [logseq.e2e.fixtures :as fixtures :refer [*page1 *page2]]
    [logseq.e2e.graph :as graph]
-   [logseq.e2e.keyboard :as k]
    [logseq.e2e.locator :as loc]
    [logseq.e2e.outliner-basic-test :as outliner-basic-test]
    [logseq.e2e.page :as page]
@@ -186,9 +185,7 @@
                   (rtc/with-wait-tx-updated
                     (property-basic-test/add-new-properties title-prefix))]
               (reset! *latest-remote-tx remote-tx))))]
-    (testing "page1: rtc-stop
-page2: create some user properties with different type
-page1: rtc-start"
+    (testing "add different types user properties on page2 while keeping rtc connected on page1"
       (let [*latest-remote-tx (atom nil)]
         (with-stop-restart-rtc @*page1 #(insert-new-property-blocks-in-page2 *latest-remote-tx "rtc-property-test-1"))
         (w/with-page @*page1
@@ -233,7 +230,42 @@ page1: rtc-start"
           (rtc/wait-tx-update-to @*latest-remote-tx))
         (validate-2-graphs)))))
 
+(deftest rtc-outliner-conflict-update-test
+  (let [title-prefix "rtc-outliner-conflict-update-test"]
+    (testing "add some blocks, ensure them synced"
+      (let [*latest-remote-tx (atom nil)]
+        (w/with-page @*page1
+          (let [{:keys [_local-tx remote-tx]}
+                (rtc/with-wait-tx-updated
+                  (b/new-blocks (map #(str title-prefix "-" %) (range 10))))]
+            (reset! *latest-remote-tx remote-tx)))
+        (w/with-page @*page2
+          (rtc/wait-tx-update-to @*latest-remote-tx))
+        (validate-2-graphs)))
+    (testing "disconnect on page1 and page2, do some conflict updates, reconnect and check"
+      (w/with-page @*page1 (rtc/rtc-stop))
+      (w/with-page @*page2 (rtc/rtc-stop))
+
+      ;; TODO: more updates
+      (w/with-page @*page1
+        (w/click (format ".ls-block :text('%s')" (str title-prefix "-" 1)))
+        (b/indent))
+      (w/with-page @*page2
+        (w/click (format ".ls-block :text('%s')" (str title-prefix "-" 0)))
+        (b/delete-blocks))
+      (w/with-page @*page1 (rtc/rtc-start))
+      (w/with-page @*page2 (rtc/rtc-start))
+      (w/with-page @*page1 (rtc/with-wait-tx-updated (b/new-block "xxxx")))
+      (w/with-page @*page2 (rtc/with-wait-tx-updated (b/new-block "yyyy")))
+      (validate-2-graphs))))
+
 (comment
+  (do (w/with-page @*page1 (rtc/rtc-stop))
+      (w/with-page @*page2 (rtc/rtc-stop)))
+
+  (do (w/with-page @*page1 (rtc/rtc-start))
+      (w/with-page @*page2 (rtc/rtc-start)))
+
   (let [title-prefix "xxxx"
         property-type "Text"]
     (w/with-page @*page1

+ 1 - 1
package.json

@@ -140,7 +140,7 @@
         "d3-force": "3.0.0",
         "diff": "5.0.0",
         "dompurify": "2.4.0",
-        "electron": "36.2.0",
+        "electron": "34.5.6",
         "electron-dl": "^4.0.0",
         "emoji-mart": "^5.5.2",
         "fs": "0.0.1-security",

+ 1 - 1
resources/forge.config.js

@@ -5,7 +5,7 @@ module.exports = {
   packagerConfig: {
     name: 'Logseq',
     icon: './icons/logseq_big_sur.icns',
-    buildVersion: '87',
+    buildVersion: "87",
     protocols: [
       {
         "protocol": "logseq",

+ 5 - 5
resources/package.json

@@ -14,7 +14,7 @@
     "electron:make-linux-arm64": "electron-forge make --platform=linux --arch=arm64",
     "electron:make-macos-arm64": "electron-forge make --platform=darwin --arch=arm64",
     "electron:publish:github": "electron-forge publish",
-    "rebuild:all": "electron-rebuild -v 36.2.0 -f",
+    "rebuild:all": "electron-rebuild -v 34.5.6 -f",
     "postinstall": "install-app-deps"
   },
   "config": {
@@ -22,7 +22,7 @@
   },
   "dependencies": {
     "@fastify/cors": "11.0.1",
-    "@logseq/rsapi": "0.0.91",
+    "@logseq/rsapi": "0.0.92",
     "@sentry/electron": "2.5.1",
     "abort-controller": "3.0.0",
     "chokidar": "^3.5.1",
@@ -53,14 +53,14 @@
     "@electron-forge/maker-rpm": "^7.8.0",
     "@electron-forge/maker-squirrel": "^7.8.0",
     "@electron-forge/maker-zip": "^7.8.0",
-    "@electron/rebuild": "4.0.1",
-    "electron": "36.2.0",
+    "@electron/rebuild": "3.7.2",
+    "electron": "34.5.6",
     "electron-builder": "26.0.12",
     "electron-forge-maker-appimage": "https://github.com/logseq/electron-forge-maker-appimage.git",
     "electron-devtools-installer": "^3.2.0"
   },
   "resolutions": {
-    "**/electron": "36.2.0",
+    "**/electron": "34.5.6",
     "**/node-abi": "3.75.0",
     "**/node-gyp": "11.1.0",
     "string-width": "4.2.0",

+ 7 - 7
src/main/frontend/worker/commands.cljs

@@ -8,6 +8,7 @@
             [logseq.db :as ldb]
             [logseq.db.frontend.property :as db-property]
             [logseq.db.frontend.property.type :as db-property-type]
+            [logseq.db.sqlite.util :as sqlite-util]
             [logseq.outliner.pipeline :as outliner-pipeline]))
 
 ;; TODO: allow users to add command or configure it through #Command (which parent should be #Code)
@@ -185,17 +186,16 @@
                           (when (and (true? (get property :logseq.property/enable-history?))
                                      (:added d))
                             {:property property
-                             :value (:v d)}))) datoms)
-        created-at (tc/to-long (t/now))]
+                             :value (:v d)}))) datoms)]
     (map
      (fn [{:keys [property value]}]
        (let [ref? (= :db.type/ref (:db/valueType property))
              value-key (if ref? :logseq.property.history/ref-value :logseq.property.history/scalar-value)]
-         {:block/uuid (ldb/new-block-id)
-          value-key value
-          :logseq.property.history/block (:db/id entity)
-          :logseq.property.history/property (:db/id property)
-          :block/created-at created-at}))
+         (sqlite-util/block-with-timestamps
+          {:block/uuid (ldb/new-block-id)
+           value-key value
+           :logseq.property.history/block (:db/id entity)
+           :logseq.property.history/property (:db/id property)})))
      changes)))
 
 (defmethod handle-command :default [command _db entity datoms]

+ 2 - 1
src/main/frontend/worker/rtc/remote_update.cljs

@@ -523,7 +523,8 @@ so need to pull earlier remote-data from websocket."})
     (let [r (check-block-pos @conn self parents block-order)]
       (case r
         :not-exist
-        (insert-or-move-block repo conn self parents block-order false op-value)
+        (do (insert-or-move-block repo conn self parents block-order false op-value)
+            (update-block-attrs repo conn self op-value))
         :wrong-pos
         (insert-or-move-block repo conn self parents block-order true op-value)
         ;; else

+ 63 - 71
static/yarn.lock

@@ -443,27 +443,7 @@
     tar "^6.0.5"
     yargs "^17.0.1"
 
-"@electron/[email protected]":
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/@electron/rebuild/-/rebuild-4.0.1.tgz#0620d5bb71a0b8b09a86fb9fa979244e1fcc10bf"
-  integrity sha512-iMGXb6Ib7H/Q3v+BKZJoETgF9g6KMNZVbsO4b7Dmpgb5qTFqyFTzqW9F3TOSHdybv2vKYKzSS9OiZL+dcJb+1Q==
-  dependencies:
-    "@malept/cross-spawn-promise" "^2.0.0"
-    chalk "^4.0.0"
-    debug "^4.1.1"
-    detect-libc "^2.0.1"
-    got "^11.7.0"
-    graceful-fs "^4.2.11"
-    node-abi "^4.2.0"
-    node-api-version "^0.2.1"
-    node-gyp "^11.2.0"
-    ora "^5.1.0"
-    read-binary-file-arch "^1.0.6"
-    semver "^7.3.5"
-    tar "^6.0.5"
-    yargs "^17.0.1"
-
-"@electron/rebuild@^3.7.0":
+"@electron/[email protected]", "@electron/rebuild@^3.7.0":
   version "3.7.2"
   resolved "https://registry.yarnpkg.com/@electron/rebuild/-/rebuild-3.7.2.tgz#8d808b29159c50086d27a5dec72b40bf16b4b582"
   integrity sha512-19/KbIR/DAxbsCkiaGMXIdPnMCJLkcf8AvGnduJtWBs/CBwiAjY1apCqOLVxrXg+rtXFCngbXhBanWjxLUt1Mg==
@@ -606,47 +586,47 @@
   dependencies:
     minipass "^7.0.4"
 
-"@logseq/[email protected]1":
-  version "0.0.91"
-  resolved "https://registry.yarnpkg.com/@logseq/rsapi-darwin-arm64/-/rsapi-darwin-arm64-0.0.91.tgz#e29cd37a372609b04d7dcfc7ae4c1405c7a54353"
-  integrity sha512-t3xbU7qLeXSNZMmYioCPp7FY250Y2w6W/UaFrQKkyJ0Id2hCAomM9zKxGrTEFeN9Oo5sQtIw2RGiQOTxNX2tEw==
-
-"@logseq/[email protected]1":
-  version "0.0.91"
-  resolved "https://registry.yarnpkg.com/@logseq/rsapi-darwin-x64/-/rsapi-darwin-x64-0.0.91.tgz#926df44bb030aa3eacdf0cf1e9140ed44cdfad1e"
-  integrity sha512-D8qknMzWEuCUKJfkSUKlp3HqQZ2OAhCVm2AnLp7cr/4gjznaiiuAe5/6I7arrI6FqVp2I2x5+hPsG/SXKimNSg==
-
-"@logseq/[email protected]1":
-  version "0.0.91"
-  resolved "https://registry.yarnpkg.com/@logseq/rsapi-freebsd-x64/-/rsapi-freebsd-x64-0.0.91.tgz#48411e70ddf7e8abcc5d894281cb6191f295912b"
-  integrity sha512-OLgaR3f+RiXMANK4+75cPDK0cqM/LMrOHalvJ4py2P9NoaxO+51whQ/5B4oR+mty9of4h37rNxZ+3oDvgOAFfA==
-
-"@logseq/[email protected]1":
-  version "0.0.91"
-  resolved "https://registry.yarnpkg.com/@logseq/rsapi-linux-arm64-gnu/-/rsapi-linux-arm64-gnu-0.0.91.tgz#a7bcdf1db9060718e425b12cf59eaec56e0d0c77"
-  integrity sha512-ZpSM/4/29BsM7VVYUXXpk8fyHv2rezhHpH2G3I36jW5bwTFklptmugaeOEhCgRvr70mduSHAPap8McN9NVwRew==
-
-"@logseq/[email protected]1":
-  version "0.0.91"
-  resolved "https://registry.yarnpkg.com/@logseq/rsapi-linux-x64-gnu/-/rsapi-linux-x64-gnu-0.0.91.tgz#eef06a6b2020e3540e009aa80de08d7f568eb48c"
-  integrity sha512-tDLSPQm86DHip3GABW7hAEGH3d0Fu4oiHe3c5tte2EP4y8YE7dKNccFgDYcCIqmiRdB/SxYS1lDCThDrvmGLqA==
-
-"@logseq/[email protected]1":
-  version "0.0.91"
-  resolved "https://registry.yarnpkg.com/@logseq/rsapi-win32-x64-msvc/-/rsapi-win32-x64-msvc-0.0.91.tgz#b883cc9f1e8877e171b905b55f1cf962009eeb2f"
-  integrity sha512-+9v4WjNZt2IxWFqxyEokT9TDP3WacvEo0XdxJ68qp6Enn5728yM/ptsTQApy3GVxFFrfiHigogOqVi6y/pJI9A==
-
-"@logseq/[email protected]1":
-  version "0.0.91"
-  resolved "https://registry.yarnpkg.com/@logseq/rsapi/-/rsapi-0.0.91.tgz#542fd9119542d811bee71a0bb74df11f8d6227ae"
-  integrity sha512-3YVnUw1ZbGwUmCXCwcJPAmys6M6wLsfEL3ibti3CupcmzWvi/wjejE9YnRYZ0RBUGNddtF0+PN6nDKBdLwTM4A==
+"@logseq/[email protected]2":
+  version "0.0.92"
+  resolved "https://registry.yarnpkg.com/@logseq/rsapi-darwin-arm64/-/rsapi-darwin-arm64-0.0.92.tgz#8826d11c5e1e4a1540aeae10b3725bf1dd185d6c"
+  integrity sha512-Fak9tz9TsGOzOkrm5wI9R0gnRsNTRpj5F2QwIPEC6XThKCYsrNUxMvmDzlL0TSTE1T6EEfxdYZUgd/spTs5zGA==
+
+"@logseq/[email protected]2":
+  version "0.0.92"
+  resolved "https://registry.yarnpkg.com/@logseq/rsapi-darwin-x64/-/rsapi-darwin-x64-0.0.92.tgz#645e7890783e20e8602668e97a92597e20d65d25"
+  integrity sha512-AyxuRlNNNwAnnF2sojWJO978rwntJaK6owtDS3EJSN+LmKPn8sEcQ6l5ChMVIzjcZHAjFvc+FVuxTwOeEExJUQ==
+
+"@logseq/[email protected]2":
+  version "0.0.92"
+  resolved "https://registry.yarnpkg.com/@logseq/rsapi-freebsd-x64/-/rsapi-freebsd-x64-0.0.92.tgz#49b36ab2e74e3243ae5c53f88f28ff752a048b30"
+  integrity sha512-Bu2yXMCzYN4Kwv93/qnetOQ30zfHb5DwjSMvaApqMxTkg/b2b+VBJSm+KgB9fPP8gyYAp9jYHFEriGGRqm0V4Q==
+
+"@logseq/[email protected]2":
+  version "0.0.92"
+  resolved "https://registry.yarnpkg.com/@logseq/rsapi-linux-arm64-gnu/-/rsapi-linux-arm64-gnu-0.0.92.tgz#b983c76f21b23579050b8c7cd53f27f09581dc9f"
+  integrity sha512-DKeixTnCdNAaVd3w2b095OpHextsP0e12UR/wtR7l096PLE3o0GzOamQSWmVMYhyySlpdSfv4mZvvTtG7QEfdw==
+
+"@logseq/[email protected]2":
+  version "0.0.92"
+  resolved "https://registry.yarnpkg.com/@logseq/rsapi-linux-x64-gnu/-/rsapi-linux-x64-gnu-0.0.92.tgz#8ebb3324c8681c1f44f6d6b6364dca18c9c5ee29"
+  integrity sha512-FyvNgMB2EiHn3R22dhDsXw5p4BDc5dpKMbomu+6G4X9Bet6MzIxam3vToS/OelUwGErwbFjtdDswpBVrhe5WFg==
+
+"@logseq/[email protected]2":
+  version "0.0.92"
+  resolved "https://registry.yarnpkg.com/@logseq/rsapi-win32-x64-msvc/-/rsapi-win32-x64-msvc-0.0.92.tgz#c3bb8e88c92da0a0289625da32d04c64c54668e7"
+  integrity sha512-EWv+IfKo5f7QOSFkmousMJAaetpCZL08h+qTg73YhWPxenZALQr35qwWykbUASraERwjsxkTFimv86lXMu/GZw==
+
+"@logseq/[email protected]2":
+  version "0.0.92"
+  resolved "https://registry.yarnpkg.com/@logseq/rsapi/-/rsapi-0.0.92.tgz#fac6834098a0280d923f0d68c71041b949d5a304"
+  integrity sha512-HR6HN9Q2SlYegPD5yLd7S5LOyZVwwHhJAYwdx8AE9Rc+wwD+tLEHEbamG0ocTZdcbjl7YERnYOhd7eH9fUncfQ==
   optionalDependencies:
-    "@logseq/rsapi-darwin-arm64" "0.0.91"
-    "@logseq/rsapi-darwin-x64" "0.0.91"
-    "@logseq/rsapi-freebsd-x64" "0.0.91"
-    "@logseq/rsapi-linux-arm64-gnu" "0.0.91"
-    "@logseq/rsapi-linux-x64-gnu" "0.0.91"
-    "@logseq/rsapi-win32-x64-msvc" "0.0.91"
+    "@logseq/rsapi-darwin-arm64" "0.0.92"
+    "@logseq/rsapi-darwin-x64" "0.0.92"
+    "@logseq/rsapi-freebsd-x64" "0.0.92"
+    "@logseq/rsapi-linux-arm64-gnu" "0.0.92"
+    "@logseq/rsapi-linux-x64-gnu" "0.0.92"
+    "@logseq/rsapi-win32-x64-msvc" "0.0.92"
 
 "@malept/cross-spawn-promise@^1.0.0", "@malept/cross-spawn-promise@^1.1.0":
   version "1.1.1"
@@ -895,13 +875,20 @@
   resolved "https://registry.yarnpkg.com/@types/ms/-/ms-2.1.0.tgz#052aa67a48eccc4309d7f0191b7e41434b90bb78"
   integrity sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==
 
-"@types/node@*", "@types/node@^22.7.7":
+"@types/node@*":
   version "22.15.16"
   resolved "https://registry.yarnpkg.com/@types/node/-/node-22.15.16.tgz#685cf0338ad9f5b14860f50a6ac2c3ebd58582cd"
   integrity sha512-3pr+KjwpVujqWqOKT8mNR+rd09FqhBLwg+5L/4t0cNYBzm/yEiYGCxWttjaPBsLtAo+WFNoXzGJfolM1JuRXoA==
   dependencies:
     undici-types "~6.21.0"
 
+"@types/node@^20.9.0":
+  version "20.17.50"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-20.17.50.tgz#d2640af991fc839ba746f799516fc6a4e47ebe50"
+  integrity sha512-Mxiq0ULv/zo1OzOhwPqOA13I81CV/W3nvd3ChtQZRT5Cwz3cr0FKo/wMSsbTqL3EXpaBAEQhva2B8ByRkOIh9A==
+  dependencies:
+    undici-types "~6.19.2"
+
 "@types/plist@^3.0.1":
   version "3.0.5"
   resolved "https://registry.yarnpkg.com/@types/plist/-/plist-3.0.5.tgz#9a0c49c0f9886c8c8696a7904dd703f6284036e0"
@@ -2075,13 +2062,13 @@ electron-wix-msi@^5.1.3:
   optionalDependencies:
     "@bitdisaster/exe-icon-extractor" "^1.0.10"
 
-electron@*, electron@36.2.0:
-  version "36.2.0"
-  resolved "https://registry.yarnpkg.com/electron/-/electron-36.2.0.tgz#05bb179eb4c5de0412fc6d49628abc949fd679c1"
-  integrity sha512-5yldoRjBKxPQfI0QMX+qq750o3Nl8N1SZnJqOPMq0gZ6rIJ+7y4ZLp808GrFwjfTm05TYgq3GSD8FGuKQZqwEw==
+electron@*, electron@34.5.6:
+  version "34.5.6"
+  resolved "https://registry.yarnpkg.com/electron/-/electron-34.5.6.tgz#b18f1973df9846ff41ab98c7f9a25c35d5ebf731"
+  integrity sha512-cmP0CDnWFwyZrzn72AXS9oJiOjNIRPgKpGO2ykz3Syo+9B2RJ9WQzxOKkpntcWE5/nRsyFkRUCMTgGo3uNvCxQ==
   dependencies:
     "@electron/get" "^2.0.0"
-    "@types/node" "^22.7.7"
+    "@types/node" "^20.9.0"
     extract-zip "^2.0.1"
 
 emoji-regex@^8.0.0:
@@ -2700,7 +2687,7 @@ got@^11.7.0, got@^11.8.5:
     p-cancelable "^2.0.0"
     responselike "^2.0.0"
 
-graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.6:
+graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.6:
   version "4.2.11"
   resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
   integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
@@ -3581,7 +3568,7 @@ nice-try@^1.0.4:
   resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
   integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
 
[email protected], node-abi@^3.45.0, node-abi@^4.2.0:
[email protected], node-abi@^3.45.0:
   version "3.75.0"
   resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.75.0.tgz#2f929a91a90a0d02b325c43731314802357ed764"
   integrity sha512-OhYaY5sDsIka7H7AtijtI9jwGYLyl29eQn/W623DiN/MIv5sUqc4g7BIDThX+gb7di9f6xK02nkp8sdfFWZLTg==
@@ -3598,7 +3585,7 @@ node-addon-api@^2.0.0:
   resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32"
   integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==
 
-node-api-version@^0.2.0, node-api-version@^0.2.1:
+node-api-version@^0.2.0:
   version "0.2.1"
   resolved "https://registry.yarnpkg.com/node-api-version/-/node-api-version-0.2.1.tgz#19bad54f6d65628cbee4e607a325e4488ace2de9"
   integrity sha512-2xP/IGGMmmSQpI1+O/k72jF/ykvZ89JeuKX3TLJAYPDVLUalrshrLHkeVcCCZqG/eEa635cr8IBYzgnDvM2O8Q==
@@ -3619,7 +3606,7 @@ node-fetch@^2.6.7:
   dependencies:
     whatwg-url "^5.0.0"
 
[email protected], node-gyp@^11.2.0:
[email protected]:
   version "11.1.0"
   resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-11.1.0.tgz#212a1d9c167c50d727d42659410780b40e07bbd3"
   integrity sha512-/+7TuHKnBpnMvUQnsYEb0JOozDZqarQbfNuSGLXIjhStMT0fbw7IdSqWgopOP5xhRZE+lsbIvAHcekddruPZgQ==
@@ -4741,6 +4728,11 @@ typescript@^5.3.3, typescript@^5.4.3:
   resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.8.3.tgz#92f8a3e5e3cf497356f4178c34cd65a7f5e8440e"
   integrity sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==
 
+undici-types@~6.19.2:
+  version "6.19.8"
+  resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02"
+  integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==
+
 undici-types@~6.21.0:
   version "6.21.0"
   resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb"

+ 18 - 6
yarn.lock

@@ -1180,7 +1180,7 @@
   resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e"
   integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==
 
-"@types/node@*", "@types/node@^22.7.7":
+"@types/node@*":
   version "22.15.16"
   resolved "https://registry.yarnpkg.com/@types/node/-/node-22.15.16.tgz#685cf0338ad9f5b14860f50a6ac2c3ebd58582cd"
   integrity sha512-3pr+KjwpVujqWqOKT8mNR+rd09FqhBLwg+5L/4t0cNYBzm/yEiYGCxWttjaPBsLtAo+WFNoXzGJfolM1JuRXoA==
@@ -1194,6 +1194,13 @@
   dependencies:
     undici-types "~6.20.0"
 
+"@types/node@^20.9.0":
+  version "20.17.50"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-20.17.50.tgz#d2640af991fc839ba746f799516fc6a4e47ebe50"
+  integrity sha512-Mxiq0ULv/zo1OzOhwPqOA13I81CV/W3nvd3ChtQZRT5Cwz3cr0FKo/wMSsbTqL3EXpaBAEQhva2B8ByRkOIh9A==
+  dependencies:
+    undici-types "~6.19.2"
+
 "@types/normalize-package-data@^2.4.0":
   version "2.4.4"
   resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901"
@@ -3067,13 +3074,13 @@ electron-to-chromium@^1.5.149:
   resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.151.tgz#5edd6c17e1b2f14b4662c41b9379f96cc8c2bb7c"
   integrity sha512-Rl6uugut2l9sLojjS4H4SAr3A4IgACMLgpuEMPYCVcKydzfyPrn5absNRju38IhQOf/NwjJY8OGWjlteqYeBCA==
 
-electron@36.2.0:
-  version "36.2.0"
-  resolved "https://registry.yarnpkg.com/electron/-/electron-36.2.0.tgz#05bb179eb4c5de0412fc6d49628abc949fd679c1"
-  integrity sha512-5yldoRjBKxPQfI0QMX+qq750o3Nl8N1SZnJqOPMq0gZ6rIJ+7y4ZLp808GrFwjfTm05TYgq3GSD8FGuKQZqwEw==
+electron@34.5.6:
+  version "34.5.6"
+  resolved "https://registry.yarnpkg.com/electron/-/electron-34.5.6.tgz#b18f1973df9846ff41ab98c7f9a25c35d5ebf731"
+  integrity sha512-cmP0CDnWFwyZrzn72AXS9oJiOjNIRPgKpGO2ykz3Syo+9B2RJ9WQzxOKkpntcWE5/nRsyFkRUCMTgGo3uNvCxQ==
   dependencies:
     "@electron/get" "^2.0.0"
-    "@types/node" "^22.7.7"
+    "@types/node" "^20.9.0"
     extract-zip "^2.0.1"
 
 element-resize-detector@^1.1.14:
@@ -9081,6 +9088,11 @@ undertaker@^1.2.1:
     object.reduce "^1.0.0"
     undertaker-registry "^1.0.0"
 
+undici-types@~6.19.2:
+  version "6.19.8"
+  resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02"
+  integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==
+
 undici-types@~6.20.0:
   version "6.20.0"
   resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.20.0.tgz#8171bf22c1f588d1554d55bf204bc624af388433"