diff --git a/bb.edn b/bb.edn index 1d68d47e6e..08019ec2f9 100644 --- a/bb.edn +++ b/bb.edn @@ -1,7 +1,7 @@ {:paths ["scripts/src" "src/main" "src/resources"] :deps {metosin/malli - {:mvn/version "0.10.0"} + {:mvn/version "0.16.1"} logseq/bb-tasks #_{:local/root "../bb-tasks"} {:git/url "https://github.com/logseq/bb-tasks" diff --git a/deps.edn b/deps.edn index 1e609dc7cb..854c4b0d88 100644 --- a/deps.edn +++ b/deps.edn @@ -37,12 +37,12 @@ logseq/outliner {:local/root "deps/outliner"} logseq/publishing {:local/root "deps/publishing"} logseq/shui {:local/root "deps/shui"} - metosin/malli {:mvn/version "0.10.0"} + metosin/malli {:mvn/version "0.16.1"} com.cognitect/transit-cljs {:mvn/version "0.8.280"} missionary/missionary {:mvn/version "b.39"}} :aliases {:cljs {:extra-paths ["src/dev-cljs/" "src/test/" "src/electron/"] - :extra-deps {org.clojure/clojurescript {:mvn/version "1.11.54"} + :extra-deps {org.clojure/clojurescript {:mvn/version "1.11.132"} org.clojure/tools.namespace {:mvn/version "0.2.11"} cider/cider-nrepl {:mvn/version "0.47.0"} org.clojars.knubie/cljs-run-test {:mvn/version "1.0.1"} @@ -50,7 +50,7 @@ :main-opts ["-m" "shadow.cljs.devtools.cli"]} :test {:extra-paths ["src/test/"] - :extra-deps {org.clojure/clojurescript {:mvn/version "1.11.54"} + :extra-deps {org.clojure/clojurescript {:mvn/version "1.11.132"} org.clojure/test.check {:mvn/version "1.1.1"} pjstadig/humane-test-output {:mvn/version "0.11.0"} org.clojars.knubie/cljs-run-test {:mvn/version "1.0.1"} diff --git a/deps/common/deps.edn b/deps/common/deps.edn index 25f8738f7b..d1a76cb795 100644 --- a/deps/common/deps.edn +++ b/deps/common/deps.edn @@ -5,7 +5,7 @@ :aliases {:test {:extra-paths ["test"] :extra-deps {olical/cljs-test-runner {:mvn/version "3.8.0"} - org.clojure/clojurescript {:mvn/version "1.11.54"}} + org.clojure/clojurescript {:mvn/version "1.11.132"}} :main-opts ["-m" "cljs-test-runner.main"]} :clj-kondo {:replace-deps {clj-kondo/clj-kondo {:mvn/version "2023.05.26"}} diff --git a/deps/db/nbb.edn b/deps/db/nbb.edn index 885beac9ec..026b11f38f 100644 --- a/deps/db/nbb.edn +++ b/deps/db/nbb.edn @@ -3,6 +3,6 @@ {logseq/common {:local/root "../common"} metosin/malli - {:mvn/version "0.10.0"} + {:mvn/version "0.16.1"} io.github.nextjournal/nbb-test-runner {:git/sha "60ed57aa04bca8d604f5ba6b28848bd887109347"}}} diff --git a/deps/graph-parser/deps.edn b/deps/graph-parser/deps.edn index 4675c302c4..98f9f0999a 100644 --- a/deps/graph-parser/deps.edn +++ b/deps/graph-parser/deps.edn @@ -17,7 +17,7 @@ ;; with karma, shadow-cljs.edn and headless mode on CI {:test {:extra-paths ["test"] :extra-deps {olical/cljs-test-runner {:mvn/version "3.8.0"} - org.clojure/clojurescript {:mvn/version "1.11.54"}} + org.clojure/clojurescript {:mvn/version "1.11.132"}} :main-opts ["-m" "cljs-test-runner.main"]} :clj-kondo {:replace-deps {clj-kondo/clj-kondo {:mvn/version "2023.05.26"}} diff --git a/deps/outliner/deps.edn b/deps/outliner/deps.edn index fb6ba54052..912b369faf 100644 --- a/deps/outliner/deps.edn +++ b/deps/outliner/deps.edn @@ -5,7 +5,7 @@ logseq/db {:local/root "../db"} logseq/graph-parser {:local/root "../db"} com.cognitect/transit-cljs {:mvn/version "0.8.280"} - metosin/malli {:mvn/version "0.10.0"}} + metosin/malli {:mvn/version "0.16.1"}} :aliases {:clj-kondo {:replace-deps {clj-kondo/clj-kondo {:mvn/version "2023.05.26"}} diff --git a/deps/outliner/nbb.edn b/deps/outliner/nbb.edn index 3cd1885460..6d5ca90038 100644 --- a/deps/outliner/nbb.edn +++ b/deps/outliner/nbb.edn @@ -5,6 +5,6 @@ logseq/graph-parser {:local/root "../graph-parser"} metosin/malli - {:mvn/version "0.10.0"} + {:mvn/version "0.16.1"} io.github.nextjournal/nbb-test-runner {:git/sha "60ed57aa04bca8d604f5ba6b28848bd887109347"}}} diff --git a/deps/shui/deps.edn b/deps/shui/deps.edn index f9549917cd..8731c2e55c 100644 --- a/deps/shui/deps.edn +++ b/deps/shui/deps.edn @@ -1,7 +1,7 @@ {:paths ["src"] :deps {org.clojure/clojure {:mvn/version "1.11.1"} - org.clojure/clojurescript {:mvn/version "1.11.54"} + org.clojure/clojurescript {:mvn/version "1.11.132"} funcool/promesa {:mvn/version "4.0.2"} rum/rum {:mvn/version "0.12.9"} medley/medley {:mvn/version "1.4.0"} diff --git a/src/main/frontend/extensions/code.cljs b/src/main/frontend/extensions/code.cljs index 099034b574..26dd78b906 100644 --- a/src/main/frontend/extensions/code.cljs +++ b/src/main/frontend/extensions/code.cljs @@ -251,6 +251,20 @@ :vector "[]" nil)) +;; TODO: mu/to-map-syntax has been deprecated, consider removing usage +(defn -map-syntax-walker [schema _ children _] + (let [properties (m/properties schema) + options (m/options schema) + r (when properties (properties :registry)) + properties (if r (assoc properties :registry (m/-property-registry r options m/-form)) properties)] + (cond-> {:type (m/type schema)} + (seq properties) (assoc :properties properties) + (seq children) (assoc :children children)))) + +(defn- malli-to-map-syntax + ([?schema] (malli-to-map-syntax ?schema nil)) + ([?schema options] (m/walk ?schema -map-syntax-walker options))) + (.registerHelper CodeMirror "hint" "clojure" (fn [cm _options] (let [cur (.getCursor cm) @@ -324,7 +338,7 @@ "false" nil) :enum - (let [{:keys [children]} (mu/to-map-syntax schema)] + (let [{:keys [children]} (malli-to-map-syntax schema)] (doseq [child children] (swap! result assoc (str child) nil))) diff --git a/src/main/frontend/handler/db_based/property.cljs b/src/main/frontend/handler/db_based/property.cljs index f3e0108535..39560d2134 100644 --- a/src/main/frontend/handler/db_based/property.cljs +++ b/src/main/frontend/handler/db_based/property.cljs @@ -197,14 +197,19 @@ (catch :default e (notification/show! (str e) :error false) nil)) - old-values (get block (:db/ident property))] + old-values (get block (:db/ident property)) + deleted-values (remove values' old-values)] (when (not= old-values values') (if-let [msg (validate-property-value schema values')] (let [msg' (str "\"" (:block/original-name property) "\"" " " (if (coll? msg) (first msg) msg))] (notification/show! msg' :warning)) (do (upsert-property! repo property-id (assoc property-schema :type property-type) {}) - (let [tx-data (build-property-value-tx-data block property-id values' false)] + (let [tx-data (concat + (map (fn [v] + (let [v' (if (map? v) (:db/id v) v)] + [:db/retract (:db/id block) property-id v'])) deleted-values) + (build-property-value-tx-data block property-id values' false))] (db/transact! repo tx-data {:outliner-op :save-block}))))))))) (defn- resolve-tag diff --git a/src/main/frontend/util.cljc b/src/main/frontend/util.cljc index ba41ba86bf..29fa110f1d 100644 --- a/src/main/frontend/util.cljc +++ b/src/main/frontend/util.cljc @@ -40,7 +40,7 @@ #?(:cljs (extend-protocol IPrintWithWriter - js/Symbol + symbol (-pr-writer [sym writer _] (-write writer (str "\"" (.toString sym) "\""))))) #?(:cljs