浏览代码

fix: loading all new deps namespaces in nbb

- bb test:load-all-namespaces-with-nbb now passes for all deps
- Updated nbb-logseq to support cljs.core/Atom
- Adjusted datascript.impl.entity with previous datascript.db require
  so that correct loading occurs in nbb
- fixed missing deps in logseq.outliner
- Converted a minor cljs.spec to malli since malli is nbb compatible
- Changed exists? to some? since they are functionally equivalent for
  the given arg and some? is nbb compatible
Gabriel Horner 1 年之前
父节点
当前提交
ca020fcdb3

+ 1 - 1
deps/common/package.json

@@ -3,7 +3,7 @@
   "version": "1.0.0",
   "private": true,
   "devDependencies": {
-    "@logseq/nbb-logseq": "logseq/nbb-logseq#feat-db-v6"
+    "@logseq/nbb-logseq": "logseq/nbb-logseq#feat-db-v7"
   },
   "scripts": {
     "test": "yarn nbb-logseq -cp test -m nextjournal.test-runner"

+ 3 - 3
deps/common/yarn.lock

@@ -2,9 +2,9 @@
 # yarn lockfile v1
 
 
-"@logseq/nbb-logseq@logseq/nbb-logseq#feat-db-v6":
-  version "1.2.173-feat-db-v6"
-  resolved "https://codeload.github.com/logseq/nbb-logseq/tar.gz/76b9e28dbfc2c4d7d4d7320ca624819fcd66de3e"
+"@logseq/nbb-logseq@logseq/nbb-logseq#feat-db-v7":
+  version "1.2.173-feat-db-v7"
+  resolved "https://codeload.github.com/logseq/nbb-logseq/tar.gz/633a00d5e9ca0a43376a3a2edeb02b08d7bc9bd9"
   dependencies:
     import-meta-resolve "^2.1.0"
 

+ 1 - 1
deps/db/package.json

@@ -3,7 +3,7 @@
   "version": "1.0.0",
   "private": true,
   "devDependencies": {
-    "@logseq/nbb-logseq": "logseq/nbb-logseq#feat-db-v6"
+    "@logseq/nbb-logseq": "logseq/nbb-logseq#feat-db-v7"
   },
   "dependencies": {
     "better-sqlite3": "8.0.1"

+ 1 - 0
deps/db/src/logseq/db/frontend/entity_plus.cljc

@@ -6,6 +6,7 @@
   #?(:clj {:clj-kondo/config {:linters {:unresolved-namespace {:level :off}
                                         :unresolved-symbol {:level :off}}}})
   (:require [cljs.core]
+            #?(:org.babashka/nbb [datascript.db])
             [datascript.impl.entity :as entity :refer [Entity]]
             [logseq.db.frontend.content :as db-content]))
 

+ 3 - 3
deps/db/yarn.lock

@@ -2,9 +2,9 @@
 # yarn lockfile v1
 
 
-"@logseq/nbb-logseq@logseq/nbb-logseq#feat-db-v6":
-  version "1.2.173-feat-db-v6"
-  resolved "https://codeload.github.com/logseq/nbb-logseq/tar.gz/76b9e28dbfc2c4d7d4d7320ca624819fcd66de3e"
+"@logseq/nbb-logseq@logseq/nbb-logseq#feat-db-v7":
+  version "1.2.173-feat-db-v7"
+  resolved "https://codeload.github.com/logseq/nbb-logseq/tar.gz/633a00d5e9ca0a43376a3a2edeb02b08d7bc9bd9"
   dependencies:
     import-meta-resolve "^2.1.0"
 

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

@@ -3,7 +3,7 @@
   "version": "1.0.0",
   "private": true,
   "devDependencies": {
-    "@logseq/nbb-logseq": "logseq/nbb-logseq#feat-db-v6",
+    "@logseq/nbb-logseq": "logseq/nbb-logseq#feat-db-v7",
     "better-sqlite3": "8.0.1"
   },
   "dependencies": {

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

@@ -2,9 +2,9 @@
 # yarn lockfile v1
 
 
-"@logseq/nbb-logseq@logseq/nbb-logseq#feat-db-v6":
-  version "1.2.173-feat-db-v6"
-  resolved "https://codeload.github.com/logseq/nbb-logseq/tar.gz/76b9e28dbfc2c4d7d4d7320ca624819fcd66de3e"
+"@logseq/nbb-logseq@logseq/nbb-logseq#feat-db-v7":
+  version "1.2.173-feat-db-v7"
+  resolved "https://codeload.github.com/logseq/nbb-logseq/tar.gz/633a00d5e9ca0a43376a3a2edeb02b08d7bc9bd9"
   dependencies:
     import-meta-resolve "^2.1.0"
 

+ 3 - 1
deps/outliner/deps.edn

@@ -3,7 +3,9 @@
  {datascript/datascript {:git/url "https://github.com/logseq/datascript" ;; fork
                          :sha     "21fc7880c7042fb1d9086135d162ea7a91681f89"}
   logseq/db             {:local/root "../db"}
-  com.cognitect/transit-cljs {:mvn/version "0.8.280"}}
+  logseq/graph-parser   {:local/root "../db"}
+  com.cognitect/transit-cljs {:mvn/version "0.8.280"}
+  metosin/malli {:mvn/version "0.10.0"}}
  :aliases
  {:clj-kondo
   {:replace-deps {clj-kondo/clj-kondo {:mvn/version "2023.05.26"}}

+ 4 - 0
deps/outliner/nbb.edn

@@ -2,5 +2,9 @@
  :deps
  {logseq/db
   {:local/root "../db"}
+  logseq/graph-parser
+  {:local/root "../graph-parser"}
+  metosin/malli
+  {:mvn/version "0.10.0"}
   io.github.nextjournal/nbb-test-runner
   {:git/sha "60ed57aa04bca8d604f5ba6b28848bd887109347"}}}

+ 1 - 1
deps/outliner/package.json

@@ -3,7 +3,7 @@
   "version": "1.0.0",
   "private": true,
   "devDependencies": {
-    "@logseq/nbb-logseq": "logseq/nbb-logseq#feat-db-v6"
+    "@logseq/nbb-logseq": "logseq/nbb-logseq#feat-db-v7"
   },
   "dependencies": {
     "better-sqlite3": "8.0.1"

+ 17 - 8
deps/outliner/src/logseq/outliner/core.cljs

@@ -2,14 +2,15 @@
   "Provides the primary outliner operations and fns"
   (:require [clojure.set :as set]
             [clojure.string :as string]
-            [datascript.impl.entity :as de]
             [datascript.core :as d]
+            [datascript.impl.entity :as de]
             [logseq.db.frontend.schema :as db-schema]
             [logseq.outliner.datascript :as ds]
             [logseq.outliner.tree :as otree]
             [logseq.outliner.util :as outliner-u]
             [logseq.common.util :as common-util]
-            [cljs.spec.alpha :as s]
+            [malli.core :as m]
+            [malli.util :as mu]
             [logseq.db :as ldb]
             [logseq.graph-parser.block :as gp-block]
             [logseq.graph-parser.property :as gp-property]
@@ -17,10 +18,18 @@
             [logseq.db.sqlite.util :as sqlite-util]
             [cljs.pprint :as pprint]))
 
-(s/def ::block-map (s/keys :opt [:db/id :block/uuid :block/page :block/left :block/parent]))
+(def block-map
+  (mu/optional-keys
+   [:map
+    [:db/id :int]
+    ;; FIXME: tests use ints when they should use uuids
+    [:block/uuid [:or :uuid :int]]
+    [:block/left :map]
+    [:block/parent :map]
+    [:block/page :map]]))
 
-(s/def ::block-map-or-entity (s/or :entity de/entity?
-                                   :map ::block-map))
+(def block-map-or-entity
+  [:or [:fn de/entity?] block-map])
 
 (defrecord Block [data])
 
@@ -733,7 +742,7 @@
   [repo conn blocks target-block {:keys [_sibling? keep-uuid? outliner-op replace-empty-target? update-timestamps?] :as opts
                                   :or {update-timestamps? true}}]
   {:pre [(seq blocks)
-         (s/valid? ::block-map-or-entity target-block)]}
+         (m/validate block-map-or-entity target-block)]}
   (let [[target-block' sibling?] (get-target-block @conn blocks target-block opts)
         _ (assert (some? target-block') (str "Invalid target: " target-block))
         sibling? (if (page-block? target-block') false sibling?)
@@ -928,8 +937,8 @@
   "Move `blocks` to `target-block` as siblings or children."
   [repo conn blocks target-block {:keys [_sibling? _up? outliner-op _indent?]
                                   :as opts}]
-  [:pre [(seq blocks)
-         (s/valid? ::block-map-or-entity target-block)]]
+  {:pre [(seq blocks)
+         (m/validate block-map-or-entity target-block)]}
   (let [db @conn
         [target-block sibling?] (get-target-block db blocks target-block opts)
         non-consecutive-blocks? (seq (ldb/get-non-consecutive-blocks db blocks))

+ 1 - 1
deps/outliner/src/logseq/outliner/datascript.cljs

@@ -95,7 +95,7 @@
     (when (and (seq txs)
                (or db-based?
                    (and (fn? unlinked-graph?) (not (unlinked-graph?)))
-                   (exists? js/process)))
+                   (some? js/process)))
 
       ;; (prn :debug "DB transact")
       ;; (cljs.pprint/pprint txs)

+ 2 - 1
deps/outliner/src/logseq/outliner/transaction.cljc

@@ -6,7 +6,8 @@
 
 (def transact-opts [:or :symbol :map])
 
-#?(:cljs (m/=> transact! [:=> [:cat transact-opts :any] :any]))
+#?(:org.babashka/nbb nil
+   :cljs (m/=> transact! [:=> [:cat transact-opts :any] :any]))
 
 (defmacro transact!
   "Batch all the transactions in `body` to a single transaction, Support nested transact! calls.

+ 6 - 2
deps/outliner/src/logseq/outliner/util.cljs

@@ -1,7 +1,11 @@
 (ns logseq.outliner.util
   "Util fns for outliner"
-  (:require [datascript.impl.entity :as e]
-            [logseq.common.util :as common-util]))
+  (:require
+   #_:clj-kondo/ignore
+   ;; db needs to load before entity for nbb
+   [datascript.db]
+   [datascript.impl.entity :as e]
+   [logseq.common.util :as common-util]))
 
 (defn block-id?
   [id]

+ 3 - 3
deps/outliner/yarn.lock

@@ -2,9 +2,9 @@
 # yarn lockfile v1
 
 
-"@logseq/nbb-logseq@logseq/nbb-logseq#feat-db-v6":
-  version "1.2.173-feat-db-v6"
-  resolved "https://codeload.github.com/logseq/nbb-logseq/tar.gz/76b9e28dbfc2c4d7d4d7320ca624819fcd66de3e"
+"@logseq/nbb-logseq@logseq/nbb-logseq#feat-db-v7":
+  version "1.2.173-feat-db-v7"
+  resolved "https://codeload.github.com/logseq/nbb-logseq/tar.gz/633a00d5e9ca0a43376a3a2edeb02b08d7bc9bd9"
   dependencies:
     import-meta-resolve "^2.1.0"
 

+ 1 - 1
deps/publishing/package.json

@@ -3,7 +3,7 @@
   "version": "1.0.0",
   "private": true,
   "devDependencies": {
-    "@logseq/nbb-logseq": "logseq/nbb-logseq#feat-db-v6",
+    "@logseq/nbb-logseq": "logseq/nbb-logseq#feat-db-v7",
     "mldoc": "^1.5.1"
   },
   "dependencies": {

+ 3 - 3
deps/publishing/yarn.lock

@@ -2,9 +2,9 @@
 # yarn lockfile v1
 
 
-"@logseq/nbb-logseq@logseq/nbb-logseq#feat-db-v6":
-  version "1.2.173-feat-db-v6"
-  resolved "https://codeload.github.com/logseq/nbb-logseq/tar.gz/76b9e28dbfc2c4d7d4d7320ca624819fcd66de3e"
+"@logseq/nbb-logseq@logseq/nbb-logseq#feat-db-v7":
+  version "1.2.173-feat-db-v7"
+  resolved "https://codeload.github.com/logseq/nbb-logseq/tar.gz/633a00d5e9ca0a43376a3a2edeb02b08d7bc9bd9"
   dependencies:
     import-meta-resolve "^2.1.0"
 

+ 1 - 1
scripts/package.json

@@ -3,7 +3,7 @@
   "version": "1.0.0",
   "private": true,
   "devDependencies": {
-    "@logseq/nbb-logseq": "logseq/nbb-logseq#feat-db-v6"
+    "@logseq/nbb-logseq": "logseq/nbb-logseq#feat-db-v7"
   },
   "dependencies": {
     "better-sqlite3": "8.0.1",

+ 3 - 3
scripts/yarn.lock

@@ -2,9 +2,9 @@
 # yarn lockfile v1
 
 
-"@logseq/nbb-logseq@logseq/nbb-logseq#feat-db-v6":
-  version "1.2.173-feat-db-v6"
-  resolved "https://codeload.github.com/logseq/nbb-logseq/tar.gz/76b9e28dbfc2c4d7d4d7320ca624819fcd66de3e"
+"@logseq/nbb-logseq@logseq/nbb-logseq#feat-db-v7":
+  version "1.2.173-feat-db-v7"
+  resolved "https://codeload.github.com/logseq/nbb-logseq/tar.gz/633a00d5e9ca0a43376a3a2edeb02b08d7bc9bd9"
   dependencies:
     import-meta-resolve "^2.1.0"