1
0
Эх сурвалжийг харах

Merge remote-tracking branch 'upstream/master' into whiteboards

Peng Xiao 3 жил өмнө
parent
commit
0ff5324c02

+ 1 - 1
deps/db/package.json

@@ -3,6 +3,6 @@
   "version": "1.0.0",
   "private": true,
   "devDependencies": {
-    "@logseq/nbb-logseq": "^0.6.125"
+    "@logseq/nbb-logseq": "^0.7.133"
   }
 }

+ 4 - 4
deps/db/yarn.lock

@@ -2,10 +2,10 @@
 # yarn lockfile v1
 
 
-"@logseq/nbb-logseq@^0.6.125":
-  version "0.6.125"
-  resolved "https://registry.yarnpkg.com/@logseq/nbb-logseq/-/nbb-logseq-0.6.125.tgz#197dbb01040f9cfdf7040399b9fbed9b862dee5b"
-  integrity sha512-1UB4Urt6O95Cwwni68B/f05x+wsL+ju+dCGLE47WTvF9F8WQwhiADfWhMbFOt35ImswLSzM1rgVGIMIj0g6fkQ==
+"@logseq/nbb-logseq@^0.7.133":
+  version "0.7.133"
+  resolved "https://registry.yarnpkg.com/@logseq/nbb-logseq/-/nbb-logseq-0.7.133.tgz#793492c6f0bc3089f394795052ca0b8503018161"
+  integrity sha512-eraxs2j1HT4RjxYCB51Rlb3KBx5oihIKoFueB1QHZYnMOwPMLIn6iMzHvyGyEGweqp422PcdDXfK3Nl4iTw/wA==
   dependencies:
     import-meta-resolve "^1.1.1"
 

+ 1 - 1
deps/graph-parser/package.json

@@ -3,7 +3,7 @@
   "version": "1.0.0",
   "private": true,
   "devDependencies": {
-    "@logseq/nbb-logseq": "^0.6.125"
+    "@logseq/nbb-logseq": "^0.7.133"
   },
   "dependencies": {
     "mldoc": "^1.3.9"

+ 1 - 1
deps/graph-parser/src/logseq/graph_parser/block.cljs

@@ -211,7 +211,7 @@
                                              (string/replace " " "-")
                                              (string/replace "_" "-")
                                              (string/replace #"[\"|^|(|)|{|}]+" ""))]
-                                   (if (gp-util/valid-edn-keyword? (str ":" k))
+                                   (if (gp-property/valid-property-name? (str ":" k))
                                      (let [k (if (contains? #{"custom_id" "custom-id"} k)
                                                "id"
                                                k)

+ 17 - 9
deps/graph-parser/src/logseq/graph_parser/extract.cljc

@@ -47,12 +47,12 @@
 (defn- build-page-entity
   [properties file page-name page ref-tags {:keys [date-formatter db]}]
   (let [alias (:alias properties)
-        alias (if (string? alias) [alias] alias)
-        aliases (and alias
+        alias' (if (string? alias) [alias] alias)
+        aliases (and alias'
                      (seq (remove #(or (= page-name (gp-util/page-name-sanity-lc %))
                                        (string/blank? %)) ;; disable blank alias
-                                  alias)))
-        aliases (->>
+                                  alias')))
+        aliases' (->>
                  (map
                   (fn [alias]
                     (let [page-name (gp-util/page-name-sanity-lc alias)
@@ -70,18 +70,26 @@
                          :block/alias aliases}
                         {:block/name page-name})))
                   aliases)
-                 (remove nil?))]
+                 (remove nil?))
+        [*valid-properties *invalid-properties]
+        ((juxt filter remove)
+         (fn [[k _v]] (gp-property/valid-property-name? (str k))) properties)
+        valid-properties (into {} *valid-properties)
+        invalid-properties (set (map (comp name first) *invalid-properties))]
     (cond->
      (gp-util/remove-nils
       (assoc
        (gp-block/page-name->map page false db true date-formatter)
        :block/file {:file/path (gp-util/path-normalize file)}))
 
-      (seq properties)
-      (assoc :block/properties properties)
+     (seq valid-properties)
+     (assoc :block/properties valid-properties)
 
-      (seq aliases)
-      (assoc :block/alias aliases)
+     (seq invalid-properties)
+     (assoc :block/invalid-properties invalid-properties)
+
+     (seq aliases')
+     (assoc :block/alias aliases')
 
       (:tags properties)
       (assoc :block/tags (let [tags (:tags properties)

+ 2 - 0
deps/graph-parser/src/logseq/graph_parser/property.cljs

@@ -21,6 +21,8 @@
   (second (re-find (re-pattern (str property colons "\\s+(.*)"))
                    content)))
 
+(def valid-property-name? gp-util/valid-edn-keyword?)
+
 (defn properties-ast?
   [block]
   (and

+ 4 - 5
deps/graph-parser/src/logseq/graph_parser/util.cljs

@@ -152,12 +152,11 @@
     (normalize-format (keyword (string/lower-case (last (string/split file #"\.")))))))
 
 (defn valid-edn-keyword?
-  [k]
+  "Determine if string is a valid edn keyword"
+  [s]
   (try
-    (let [s (str k)]
-      (and (= \: (first s))
-           (edn/read-string (str "{" s " nil}"))))
-    true
+    (boolean (and (= \: (first s))
+                  (edn/read-string (str "{" s " nil}"))))
     (catch :default _
       false)))
 

+ 11 - 8
deps/graph-parser/test/logseq/graph_parser/nbb_test_runner.cljs

@@ -8,6 +8,7 @@
             [logseq.graph-parser.extract-test]
             [logseq.graph-parser.cli-test]
             [logseq.graph-parser.util.page-ref-test]
+            [logseq.graph-parser.util-test]
             [logseq.graph-parser-test]))
 
 (defmethod cljs.test/report [:cljs.test/default :end-run-tests] [m]
@@ -16,11 +17,13 @@
 
 ;; run this function with: nbb-logseq -m logseq.test.nbb-test-runner/run-tests
 (defn run-tests []
-  (t/run-tests 'logseq.graph-parser.mldoc-test
-               'logseq.graph-parser.text-test
-               'logseq.graph-parser.property-test
-               'logseq.graph-parser.block-test
-               'logseq.graph-parser.extract-test
-               'logseq.graph-parser.cli-test
-               'logseq.graph-parser.util.page-ref-test
-               'logseq.graph-parser-test))
+  (t/run-tests
+   'logseq.graph-parser.mldoc-test
+   'logseq.graph-parser.text-test
+   'logseq.graph-parser.property-test
+   'logseq.graph-parser.block-test
+   'logseq.graph-parser.extract-test
+   'logseq.graph-parser.cli-test
+   'logseq.graph-parser.util.page-ref-test
+   'logseq.graph-parser-test
+   'logseq.graph-parser.util-test))

+ 14 - 0
deps/graph-parser/test/logseq/graph_parser/util_test.cljs

@@ -0,0 +1,14 @@
+(ns logseq.graph-parser.util-test
+  (:require [clojure.test :refer [deftest are]]
+            [logseq.graph-parser.util :as gp-util]))
+
+(deftest valid-edn-keyword?
+  (are [x y]
+       (= (gp-util/valid-edn-keyword? x) y)
+
+       ":foo-bar"  true
+       ":foo!"     true
+       ":foo,bar"  false
+       "4"         false
+       "foo bar"   false
+       "`property" false))

+ 32 - 0
deps/graph-parser/test/logseq/graph_parser_test.cljs

@@ -234,3 +234,35 @@
         :desc #{"link"}
         :comma-prop "one, two,three"}
        {:rich-property-values? true}))))
+
+(deftest invalid-properties
+  (let [conn (ldb/start-conn)
+        properties {"foo" "valid"
+                    "[[foo]]" "invalid"
+                    "some,prop" "invalid"}
+        body (str (gp-property/->block-content properties)
+                  "\n- " (gp-property/->block-content properties))]
+    (graph-parser/parse-file conn "foo.md" body {})
+
+    (is (= [{:block/properties {:foo "valid"}
+             :block/invalid-properties #{"[[foo]]" "some,prop"}}]
+           (->> (d/q '[:find (pull ?b [*])
+                       :in $
+                       :where
+                       [?b :block/properties]
+                       [(missing? $ ?b :block/pre-block?)]
+                       [(missing? $ ?b :block/name)]]
+                     @conn)
+                (map first)
+                (map #(select-keys % [:block/properties :block/invalid-properties]))))
+        "Has correct (in)valid block properties")
+
+    (is (= [{:block/properties {:foo "valid"}
+             :block/invalid-properties #{"[[foo]]" "some,prop"}}]
+           (->> (d/q '[:find (pull ?b [*])
+                       :in $
+                       :where [?b :block/properties] [?b :block/name]]
+                     @conn)
+                (map first)
+                (map #(select-keys % [:block/properties :block/invalid-properties]))))
+        "Has correct (in)valid page properties")))

+ 4 - 4
deps/graph-parser/yarn.lock

@@ -2,10 +2,10 @@
 # yarn lockfile v1
 
 
-"@logseq/nbb-logseq@^0.6.125":
-  version "0.6.125"
-  resolved "https://registry.yarnpkg.com/@logseq/nbb-logseq/-/nbb-logseq-0.6.125.tgz#197dbb01040f9cfdf7040399b9fbed9b862dee5b"
-  integrity sha512-1UB4Urt6O95Cwwni68B/f05x+wsL+ju+dCGLE47WTvF9F8WQwhiADfWhMbFOt35ImswLSzM1rgVGIMIj0g6fkQ==
+"@logseq/nbb-logseq@^0.7.133":
+  version "0.7.133"
+  resolved "https://registry.yarnpkg.com/@logseq/nbb-logseq/-/nbb-logseq-0.7.133.tgz#793492c6f0bc3089f394795052ca0b8503018161"
+  integrity sha512-eraxs2j1HT4RjxYCB51Rlb3KBx5oihIKoFueB1QHZYnMOwPMLIn6iMzHvyGyEGweqp422PcdDXfK3Nl4iTw/wA==
   dependencies:
     import-meta-resolve "^1.1.1"
 

+ 35 - 13
docs/develop-logseq-on-windows.md

@@ -9,6 +9,7 @@ This is a guide on creating Logseq development environment on Windows with `Powe
 * Node.js 16.x
 * Clojure (follow this [Guidance](https://clojure.org/guides/getting_started#_installation_on_windows))
 * JRE 8 (required for Clojure)
+* Visual Studio (required for desktop app)
 
 (updated 20220218. May confirm via JAVA_VERSION and NODE_VERSION in [THIS FILE](https://github.com/logseq/logseq/blob/master/.github/workflows/build.yml))
 
@@ -28,32 +29,53 @@ This is a guide on creating Logseq development environment on Windows with `Powe
 Congrats! The pre-requisites are ready.
 
 ## Set-up development environment (web app)
+
 The basic idea is replacing the `clojure` commands in [package.json](https://github.com/logseq/logseq/blob/master/package.json) to `clj`.  
-Go to your cloned Logseq repo. Then install dependencies, execute the `clj` equivalent of `yarn watch` via doing the `gulp`'s job manually (as it's not available on Windows). Refer [THIS](#an-example-of-setting-up-proxy-in-powershell) if you want to setup proxy in `PowerShell`.
-* copy files in `resources` to `static`
-* ```
-  yarn
-  clj -M:cljs watch app electron
+Go to your cloned Logseq repo. Then install dependencies, execute the `clj` equivalent of `yarn watch`. Refer [THIS](#an-example-of-setting-up-proxy-in-powershell) if you want to setup proxy in `PowerShell`.
+
+* Copy files in `resources` to `static`
+
+* Compile static assets(css, icons...)
   ```
-* ```
-  yarn css:watch
+  yarn add --dev gulp
+  yarn
+  yarn gulp:watch
   ```
 
+* Open another powershell window, and run `yarn cljs:watch`. Clojure CLI will pull dependencies from Maven and Clojars, build the app and start the development server. Refer [THIS](#set-up-clojure-cli-repository-mirror) if your network access to Maven and Clojars is unstable.
+
 Now you can access the app via `http://localhost:3001` and all changes to the code will be watched.
 
 ## Set-up development environment (desktop)
 To run the desktop app in development mode, after setting up web app development environment, run following commands which are equivalent to `yarn dev-electron-app`:
-* ```
-  cd static
-  yarn
-  yarn electron:dev
-  ```
+
+```
+cd static
+yarn
+yarn electron:dev
+```
+
 The desktop app should pop-up on your screen.
 
+During the build process `node-gyp` may complain that it cannot find Visual Studio. Try building the app in Developer Powershell for VS(shipped with Visual Studio). If this does not work for you, [This issue](https://github.com/nodejs/node-gyp/issues/2203) may be helpful.
+
 ## An example of setting up proxy in PowerShell
 ```
 $env:GLOBAL_AGENT_HTTPS_PROXY='http://<proxy-host>:<proxy-port>'
 $env:ELECTRON_GET_USE_PROXY='true'
 $env:HTTPS_PROXY='http://<proxy-host>:<proxy-port>'
 $env:HTTP_PROXY='http://<proxy-host>:<proxy-port>'
-```
+```
+
+## Set up Clojure CLI repository mirror
+
+add the following pair to `deps.edn`:
+
+```
+:mvn/repos {
+  "central" {:url "https://maven.aliyun.com/repository/public"}
+  "clojars" {:url "https://mirrors.tuna.tsinghua.edu.cn/clojars"}
+}
+```
+
+The mirrors above are friendly to Chinese developers(with bad network), developers with self-hosted repositories can use their own services.

+ 1 - 1
package.json

@@ -94,7 +94,7 @@
         "codemirror": "5.58.1",
         "d3-force": "3.0.0",
         "diff": "5.0.0",
-        "electron": "19.0.10",
+        "electron": "19.0.12",
         "electron-dl": "3.3.0",
         "fs": "0.0.1-security",
         "fs-extra": "9.1.0",

+ 3 - 3
resources/package.json

@@ -12,7 +12,7 @@
     "electron:make": "electron-forge make",
     "electron:make-macos-arm64": "electron-forge make --platform=darwin --arch=arm64",
     "electron:publish:github": "electron-forge publish",
-    "rebuild:better-sqlite3": "electron-rebuild -v 19.0.10 -f -w better-sqlite3",
+    "rebuild:better-sqlite3": "electron-rebuild -v 19.0.12 -f -w better-sqlite3",
     "postinstall": "install-app-deps"
   },
   "config": {
@@ -47,13 +47,13 @@
     "@electron-forge/maker-rpm": "^6.0.0-beta.57",
     "@electron-forge/maker-squirrel": "^6.0.0-beta.57",
     "@electron-forge/maker-zip": "^6.0.0-beta.57",
-    "electron": "19.0.10",
+    "electron": "19.0.12",
     "electron-builder": "^22.11.7",
     "electron-forge-maker-appimage": "trusktr/electron-forge-maker-appimage#patch-1",
     "electron-rebuild": "3.2.5"
   },
   "resolutions": {
-    "**/electron": "19.0.10",
+    "**/electron": "19.0.12",
     "**/node-gyp": "9.0.0"
   }
 }

+ 9 - 4
src/main/frontend/components/block.cljs

@@ -465,7 +465,7 @@
       :data-ref page-name
       :on-mouse-down (fn [e] (open-page-ref e page-name redirect-page-name page-name-in-block contents-page? whiteboard-page?))
       :on-key-up (fn [e] ((when (= (.-key e) "Enter")
-                            (open-page-ref e page-name redirect-page-name page-name-in-block contents-page? whiteboard-page?))))}
+                           (open-page-ref e page-name redirect-page-name page-name-in-block contents-page? whiteboard-page?))))}
 
      (if (and (coll? children) (seq children))
        (for [child children]
@@ -1926,10 +1926,10 @@
   (when (seq invalid-properties)
     [:div.invalid-properties.mb-2
      [:div.warning {:title "Invalid properties"}
-      "Invalid property keys: "
+      "Invalid property names: "
       (for [p invalid-properties]
         [:button.p-1.mr-2 p])]
-     [:code "Property key begins with a non-numeric character and can contain alphanumeric characters and . * + ! - _ ? $ % & = < >. If -, + or . are the first character, the second character (if any) must be non-numeric."]]))
+     [:code "Property name begins with a non-numeric character and can contain alphanumeric characters and . * + ! - _ ? $ % & = < >. If -, + or . are the first character, the second character (if any) must be non-numeric."]]))
 
 (rum/defcs timestamp-cp < rum/reactive
   (rum/local false ::show?)
@@ -2509,7 +2509,10 @@
         *navigating-block (get state ::navigating-block)
         navigating-block (rum/react *navigating-block)
         navigated? (and (not= (:block/uuid block) navigating-block) navigating-block)
-        block (if (or (and custom-query? (empty? (:block/children block)))
+        block (if (or (and custom-query?
+                           (empty? (:block/children block))
+                           (not (and (:dsl-query? config)
+                                     (string/includes? (:query config) "not"))))
                       navigated?)
                 (let [block (db/pull [:block/uuid navigating-block])
                       blocks (db/get-paginated-blocks repo (:db/id block)
@@ -3004,6 +3007,8 @@
                (and (seq result) (or only-blocks? blocks-grouped-by-page?))
                (->hiccup result (cond-> (assoc config
                                                :custom-query? true
+                                               :dsl-query? dsl-query?
+                                               :query query
                                                :breadcrumb-show? (if (some? breadcrumb-show?)
                                                                    breadcrumb-show?
                                                                    true)

+ 1 - 1
src/main/frontend/components/reference.cljs

@@ -36,7 +36,7 @@
                                               (dissoc % lc-reference)))
                        (page-handler/save-filter! page-name @filters-atom))
            :small? true
-           :intent "link"
+           :intent "border-link"
            :key ref-name))))])
 
 (rum/defcs filter-dialog-inner < rum/reactive (rum/local "" ::filterSearch)

+ 3 - 2
src/main/frontend/components/sidebar.cljs

@@ -235,7 +235,8 @@
        (repo/repos-dropdown)
 
        [:div.nav-header.flex.gap-1.flex-col
-        (if-let [page (:page default-home)]
+        (let [page (:page default-home)]
+          (if (and page (not (state/enable-journals? (state/get-current-repo))))
           (sidebar-item
            {:class            "home-nav"
             :title            page
@@ -250,7 +251,7 @@
                                    (or (= route-name :all-journals) (= route-name :home)))
             :title            (t :left-side-bar/journals)
             :on-click-handler route-handler/go-to-journals!
-            :icon             "calendar"}))
+            :icon             "calendar"})))
 
         (when (state/enable-flashcards? (state/get-current-repo))
           [:div.flashcards-nav

+ 2 - 1
src/main/frontend/dicts.cljc

@@ -4268,7 +4268,8 @@
         :themes "Temelar"
         :developer-mode-alert "Eklenti sistemini etkinleştirmek için uygulamayı yeniden başlatmanız gerekir. Şimdi yeniden başlatmak istiyor musunuz?"
         :relaunch-confirm-to-work "Çalışması için uygulama yeniden başlatılmalı. Şimdi yeniden başlatmak istiyor musunuz?"
-        :import "İçe aktar"
+        :import "İçeri aktar"
+        :importing "İçeri aktarılıyor"
         :join-community "Topluluğa katıl"
         :sponsor-us "Bize Sponsor Olun"
         :discourse-title "Forum sayfamız!"

+ 7 - 8
src/main/frontend/handler/block.cljs

@@ -248,18 +248,17 @@
   (reset! *swipe nil))
 
 (defn get-blocks-refed-pages
-  [aliases ref-blocks]
-  (let [refs (->> (mapcat :block/refs ref-blocks)
-                  (remove #(aliases (:db/id %))))
-        pages (->> (map :block/page ref-blocks)
-                   (distinct)
-                   (remove #(aliases (:db/id %))))
-        all-refs (concat pages refs)]
+  [aliases [block & children]]
+  (let [children-refs (mapcat :block/refs children)
+        refs (->>
+              (:block/path-refs block)
+              (concat children-refs)
+              (remove #(aliases (:db/id %))))]
     (keep (fn [ref]
             (when (:block/name ref)
               {:db/id (:db/id ref)
                :block/name (:block/name ref)
-               :block/original-name (:block/original-name ref)})) all-refs)))
+               :block/original-name (:block/original-name ref)})) refs)))
 
 (defn filter-blocks
   [ref-blocks filters]

+ 8 - 2
src/main/frontend/handler/editor.cljs

@@ -2735,9 +2735,15 @@
         (do (util/stop e)
             (autopair input-id "(" format nil))
 
+        ;; If you type `xyz`, the last backtick should close the first and not add another autopair
+        ;; If you type several backticks in a row, each one should autopair to accommodate multiline code (```)        
         (contains? (set (keys autopair-map)) key)
-        (do (util/stop e)
-            (autopair input-id key format nil))
+        (let [curr (get-current-input-char input)
+                  prev (util/nth-safe value (dec pos))]
+            (util/stop e) 
+            (if (and (= key "`") (= "`" curr) (not= "`" prev))
+              (cursor/move-cursor-forward input)
+              (autopair input-id key format nil)))
 
         (and hashtag? (or (zero? pos) (re-matches #"\s" (get value (dec pos)))))
         (do

+ 2 - 1
src/main/frontend/handler/export.cljs

@@ -25,6 +25,7 @@
             [logseq.graph-parser.util :as gp-util]
             [logseq.graph-parser.util.block-ref :as block-ref]
             [logseq.graph-parser.util.page-ref :as page-ref]
+            [logseq.graph-parser.property :as gp-property]
             [promesa.core :as p]
             [frontend.handler.notification :as notification])
   (:import
@@ -450,7 +451,7 @@
           (fn [properties]
             (when (seq properties)
               (->> (filter (fn [[k _v]]
-                             (gp-util/valid-edn-keyword? k)) properties)
+                             (gp-property/valid-property-name? (str k))) properties)
                    (into {}))))))
 
 (defn- blocks [db]

+ 3 - 0
src/main/frontend/modules/shortcut/dicts.cljc

@@ -1321,6 +1321,9 @@
              :command.editor/zoom-out                "Düzenlenen bloğu uzaklaştır / Aksi takdirde geri git"
              :command.ui/toggle-brackets             "Köşeli ayraçların görüntülenip görüntülenmeyeceğini değiştir"
              :command.go/search-in-page              "Geçerli sayfada ara"
+             :command.go/electron-find-in-page       "Sayfada bul"
+             :command.go/electron-jump-to-the-next   "Aramanız için bir sonraki eşleşmeye atlayın"
+             :command.go/electron-jump-to-the-previous "Aramanız için bir önceki eşleşmeye atlayın"
              :command.go/search                      "Tam metin araması"
              :command.go/journals                    "Günlüğe git"
              :command.go/backward                    "Geriye git"

+ 5 - 1
src/main/frontend/ui.css

@@ -254,7 +254,7 @@ html.is-mobile {
     }
   }
 
-  &[intent='link'] {
+  &[intent='link'], &[intent='border-link'] {
     @apply focus:border-gray-500 dark:hover:text-gray-200;
 
     color: var(--ls-primary-text-color);
@@ -265,6 +265,10 @@ html.is-mobile {
     }
   }
 
+  &[intent='border-link'] {
+      border: 1px solid;
+  }
+
   &.p-1 {
     padding: 0.25rem 0.5rem !important;
   }

+ 2 - 2
src/main/frontend/util/text.cljs

@@ -66,7 +66,7 @@
       result)))
 
 (defn surround-by?
-  "`pos` must be surrounded by `before` and `and` in string `value`, e.g. ((|))"
+  "`pos` must be surrounded by `before` and `end` in string `value`, e.g. ((|))"
   [value pos before end]
   (let [start-pos (if (= :start before) 0 (- pos (count before)))
         end-pos (if (= :end end) (count value) (+ pos (count end)))]
@@ -97,7 +97,7 @@
        acc))))
 
 (defn wrapped-by?
-  "`pos` must be wrapped by `before` and `and` in string `value`, e.g. ((a|b))"
+  "`pos` must be wrapped by `before` and `end` in string `value`, e.g. ((a|b))"
   [value pos before end]
   ;; Increment 'before' matches by (length of before string - 0.5) to make them be just before the cursor position they precede.
   ;; Increment 'after' matches by 0.5 to make them be just after the cursor position they follow.

+ 2 - 1
templates/config.edn

@@ -229,7 +229,8 @@
  ;; :property-pages/excludelist
 
  ;; Enables property values to contain a mix of tags, page-refs, special
- ;; punctuation and free-form text
+ ;; punctuation and free-form text.
+ ;; Re-index current graph for config to take effect
  ;; :rich-property-values? true
 
  ;; logbook setup

+ 4 - 4
yarn.lock

@@ -2554,10 +2554,10 @@ electron-to-chromium@^1.4.84:
   resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.87.tgz#1aeacfa50b2fbf3ecf50a78fbebd8f259d4fe208"
   integrity sha512-EXXTtDHFUKdFVkCnhauU7Xp8wmFC1ZG6GK9a1BeI2vvNhy61IwfNPo/CRexhf7mh4ajxAHJPind62BzpzVUeuQ==
 
[email protected]0:
-  version "19.0.10"
-  resolved "https://registry.yarnpkg.com/electron/-/electron-19.0.10.tgz#4d2f03f307fbb70a295ff419112130b75661eda9"
-  integrity sha512-EiWtPWdD7CzkRkp1cw7t0N9W2qhI5XZOudHX7daOh5wI076nsdV2dtlAf/XyTHhPNoKR5qhTWrSnYL9PY6D1vg==
[email protected]2:
+  version "19.0.12"
+  resolved "https://registry.yarnpkg.com/electron/-/electron-19.0.12.tgz#73d11cc2a3e4dbcd61fdc1c39561e7a7911046e9"
+  integrity sha512-GOvG0t2NCeJYIfmC3g/dnEAQ71k3nQDbRVqQhpi2YbsYMury0asGJwqnVAv2uZQEwCwSx4XOwOQARTFEG/msWw==
   dependencies:
     "@electron/get" "^1.14.1"
     "@types/node" "^16.11.26"