Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
d45ecb5
First nbb-logseq that works with passing datascript tests
logseq-cldwalker Dec 8, 2023
43a5831
Add compiled output for npm git releases
logseq-cldwalker Dec 11, 2023
e4910df
Update version to resolve missing lib/ when installing this as git dep
logseq-cldwalker Dec 11, 2023
9e891fd
Update datascript with delete fix and release feat-db-v2
logseq-cldwalker Dec 18, 2023
5133148
Update datascript with another delete fix and release feat-db-v3
logseq-cldwalker Dec 19, 2023
ee701fa
Update for delete and release compilation issues
logseq-cldwalker Dec 21, 2023
090ad77
Update datascript for a dirty flag bug
logseq-cldwalker Jan 2, 2024
76b9e28
Update datascript for transact! option and
logseq-cldwalker Jan 11, 2024
633a00d
Add cljs.core/Atom to nbb
logseq-cldwalker Jan 15, 2024
5fa1d8c
Update to point back to upstream nbb
logseq-cldwalker Jan 15, 2024
fda0d72
Update to latest released nbb for cljs.core/exists?
logseq-cldwalker Mar 6, 2024
8a4bfaa
Add stub cljs-bean.transit to nbb
logseq-cldwalker Mar 11, 2024
5117a37
Update to datascript with new schema abilities
logseq-cldwalker Apr 2, 2024
8274d8b
Add ordered dep and 2 more datascript fns
logseq-cldwalker Apr 30, 2024
77aaffe
Bump datascript
logseq-cldwalker May 22, 2024
675a60b
Bump to latest datascript with 1.7.1 changes
logseq-cldwalker Jun 27, 2024
2555e10
Bump to latest datascript with 1.7.3 changes
logseq-cldwalker Jul 27, 2024
5c52c28
Bump to latest datascript with persistent-sorted-set changes
logseq-cldwalker Aug 26, 2024
79f0b49
Add more cljs-time bindings
tiensonqin Dec 26, 2024
7015a18
Add local-date
tiensonqin Dec 26, 2024
1cd15bf
fix: previous version didn't update package version
logseq-cldwalker Jan 2, 2025
3684828
fix: remove extra lockfile
logseq-cldwalker Jan 8, 2025
a370e3e
first pass on building tx for any movie with multiple prop types supp…
logseq-cldwalker Feb 21, 2025
37b32b4
Create nbb-logseq equivalent of bb task and use graph's actual schema
logseq-cldwalker Feb 23, 2025
6253d06
basic chat works for any schema class!
logseq-cldwalker Feb 23, 2025
5ec7089
Allow nested property objects to have their own properties
logseq-cldwalker Feb 24, 2025
c7ef846
chat adds page by default but can add it as a block via option
logseq-cldwalker Feb 24, 2025
0d64235
properties can have a temp chat name via :chat-ident
logseq-cldwalker Feb 24, 2025
31fbf0e
add docs for ollama-chat and cleanup user-config
logseq-cldwalker Feb 25, 2025
e5b1ed2
edits from demo
logseq-cldwalker Feb 25, 2025
637be56
Use malli instead of building raw json schema
logseq-cldwalker Feb 28, 2025
ee4a9bf
require one for :many properties to avoid generating empty values
logseq-cldwalker Feb 28, 2025
ff922d4
Add options to allow for dynamic properies
logseq-cldwalker Mar 1, 2025
46b30d3
Add random properties option and workaround for description
logseq-cldwalker Mar 2, 2025
4fb8f9b
default global-properties to "url" and provide way
logseq-cldwalker Mar 2, 2025
9fadf2f
Add :many-objects option to allow for easy
logseq-cldwalker Mar 2, 2025
ccbf75a
copy to clipboard on osx
logseq-cldwalker Mar 2, 2025
498e88e
print properties to recreate random option
logseq-cldwalker Mar 2, 2025
236c747
remove urls that dont match regex and require names to at least be 2 …
logseq-cldwalker Mar 3, 2025
bf404cd
update readme to show options that can be used to explore new types +…
logseq-cldwalker Mar 3, 2025
16fe9a4
fix -h
logseq-cldwalker Mar 4, 2025
ca32553
enhance: add tc/to-date and cut feat-db-v19
logseq-cldwalker Mar 10, 2025
7fb6342
Bump to latest datascript with storage fixes
logseq-cldwalker Apr 24, 2025
39aa208
enhance: add cljs-bean.transit through nbb's build features
logseq-cldwalker May 14, 2025
f516abd
Bump to latest nbb and cut release
logseq-cldwalker May 14, 2025
76384a7
fix: cut release to include missing lib files
logseq-cldwalker May 14, 2025
810782c
enhance: add rewrite-clj to nbb-logseq and cut release
logseq-cldwalker May 14, 2025
618bd96
chore: bump ollama-chat example to latest nbb-logseq
logseq-cldwalker May 20, 2025
507e560
chore: update from-js and multiple-databases to use latest nbb-logseq…
logseq-cldwalker May 20, 2025
73931df
chore: update remaining examples to use latest nbb-logseq and logseq
logseq-cldwalker May 20, 2025
3d5b78b
Bump nbb version and datascript version
logseq-cldwalker Jun 6, 2025
4b3c8ba
chore: Prepare repo for merging db version to main branch
logseq-cldwalker Jul 16, 2025
c02b37a
Run CI on PR
logseq-cldwalker Jul 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,21 @@ name: CI

on:
push:
pull_request:
branches: [main]

jobs:
test:
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: '16'
node-version: '22'
- name: Setup Babashka
uses: turtlequeue/[email protected]
with:
Expand Down
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
.shadow-cljs
node_modules
lib
shadow-cljs.edn
/report.html
/test/libraries
Expand Down
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,13 @@
* Unless a version is noted below, versions map to nbb version as described in
https://github.com/logseq/nbb-logseq/blob/main/README.md#versioning.

## Unreleased
* Alpha version of nbb-logseq which supports the database version
* 1.3.X nbb with more included libraries: cljs-bean.transit, rewrite-clj and ordered
* Versioned as logseq/nbb-logseq#feat-db-*

## 1.2.173

## 1.1.158
* 1.1.158 nbb with 3 new cljs-time fns for compatibility with logseq's :inputs

Expand Down
11 changes: 11 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,17 @@ $ nbb-logseq -e '(+ 1 2 3)'
6
```

## Database Version

To use `nbb-logseq` with [the database version](https://github.com/logseq/logseq#-database-version), specify the version as `logseq/nbb-logseq#feat-db-v24`. This version is only available through github and has not been released to npm. An npm version will be released when the database version has a desktop release.

Unlike file graphs, DB graphs can be written by scripts. This is powerful and opens up more use cases for scripting. To write your own script, you'll need a package.json and nbb.edn. Use [this example package.json](https://github.com/logseq/publish-spa/blob/feat/db/package.json) and [this example nbb.edn](https://github.com/logseq/publish-spa/blob/feat/db/nbb.edn). Some example database graph scripts:

* https://github.com/logseq/logseq/tree/master/deps/db/script - Scripts to query, validate and create any graph
* https://github.com/logseq/logseq/blob/master/deps/outliner/script/transact.cljs - Script to transact (modify) nodes queried from the commandline
* https://github.com/logseq/logseq/tree/master/scripts/src/logseq/tasks/db_graph - More complex scripts to generate graphs with all property types or with schema.org's ontology. See [this readme](https://github.com/logseq/logseq/tree/master/scripts#nbb-scripts) for using these.
* [Example querying a LLM and a schema.org based DB graph](examples/ollama-chat/)

## Dependency Management

`nbb-logseq` can use libraries from both NPM and ClojureScript. For NPM
Expand Down
23 changes: 15 additions & 8 deletions bb.edn
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,30 @@
:deps
{nbb.build/nbb.build
{:git/url "https://github.com/babashka/nbb"
:git/sha "35e4e94966d0ae45bb87569940b7c1fb05c19467"
:git/sha "9119dbe9b5f660cb77d29058b3b762978ee4b939"
:deps/root "build"}
#_{:local/root "../nbb/build"}
nbb/nbb
{:git/url "https://github.com/babashka/nbb"
:git/sha "35e4e94966d0ae45bb87569940b7c1fb05c19467"
:git/tag "v1.2.173"}
:git/sha "9119dbe9b5f660cb77d29058b3b762978ee4b939"}
#_{:local/root "../nbb"}
org.babashka/sci
{:mvn/version "0.8.41"}
datascript/deps
{:git/url "https://github.com/babashka/nbb-features"
:git/sha "912ca86f1744b80d58d2c5c613df3a77d9f8624e"
{:git/url "https://github.com/logseq/nbb-features"
:git/sha "c16679a2f7327830a88fb61688e69e86eea015a0"
:deps/root "features/datascript"}
#_{:local/root "../nbb-features/features/datascript"}
datascript-transit/deps
{:git/url "https://github.com/babashka/nbb-features"
:git/sha "912ca86f1744b80d58d2c5c613df3a77d9f8624e"
{:git/url "https://github.com/logseq/nbb-features"
:git/sha "c16679a2f7327830a88fb61688e69e86eea015a0"
:deps/root "features/datascript-transit"}
cljs-time/deps {:local/root "features/cljs-time"}}
#_{:local/root "../nbb-features/features/datascript-transit"}
cljs-time/deps {:local/root "features/cljs-time"}
;; nbb comes with cljs-bean but not cljs-bean.transit
cljs-bean-transit/deps {:local/root "features/cljs-bean-transit"}
rewrite-clj/deps {:local/root "features/rewrite-clj"}
ordered/deps {:local/root "features/ordered"}}

:tasks
{:requires ([babashka.fs :as fs]
Expand Down
2 changes: 1 addition & 1 deletion examples/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ nbb-logseq query.cljs docs '[:find (pull ?b [*]) :where [?b :block/marker]]'
{:timestamps [], :properties [], :start-pos 774, :end-pos 824},
:block/format :markdown,
:block/level 3,
:block/content "LATER [#A] research balalah is a top priority",
:block/title "LATER [#A] research balalah is a top priority",
:db/id 6361,
:block/path-refs [{:db/id 5} {:db/id 14} {:db/id 1969}],
:block/parent {:db/id 6360},
Expand Down
2 changes: 1 addition & 1 deletion examples/fly-io/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ bb '(->> *input* (map :block/properties))'
To try this service locally on your Logseq graph:

1. Install [babashka](https://github.com/babashka/babashka) >= 0.8.156.
2. Install node.js >= 16.3.1.
2. Install node.js >= 22.
3. Run `npm install` to install npm dependencies.
4. Clone your graph: `git clone YOUR-GRAPH resources/graph`
* If you don't have a graph, try the Logseq docs
Expand Down
5 changes: 2 additions & 3 deletions examples/fly-io/nbb.edn
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
{:deps
{logseq/graph-parser
{:git/url "https://github.com/logseq/logseq"
:git/sha "82cf4d3c65acbf230a3170640fe271dd74095067"
:git/tag "0.9.8"
:git/sha "65640ed8857199d89268295863cd556f5d90ea0b"
:deps/root "deps/graph-parser"}
#_{:local/root "../../../logseq/deps/graph-parser"}}}
#_{:local/root "../../../logseq/deps/graph-parser"}}}
45 changes: 23 additions & 22 deletions examples/fly-io/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions examples/fly-io/package.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"name": "mysite",
"dependencies": {
"@logseq/nbb-logseq": "^1.1.155",
"@logseq/nbb-logseq": "logseq/nbb-logseq#feat-db-v24",
"express": "^4.18.1",
"mldoc": "1.5.1"
"mldoc": "1.5.9"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
Expand Down
7 changes: 4 additions & 3 deletions examples/fly-io/server.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
[clojure.edn :as edn]
[goog.string :as gstring]
[logseq.graph-parser.cli :as gp-cli]
[logseq.db.rules :as rules]
[logseq.db.file-based.rules :as file-rules]
[logseq.db.frontend.rules :as rules]
[datascript.core :as d]))

(def app (express))
Expand Down Expand Up @@ -41,8 +42,8 @@
query' (if add-rules? (into query [:in '$ '%]) query)
_ (println "Query:" (pr-str query'))
res (map first
(apply d/q query' @@db-conn
(if add-rules? [(vals rules/query-dsl-rules)] [])))]
(d/q query' @@db-conn
(if add-rules? (rules/extract-rules file-rules/query-dsl-rules) [])))]
(with-out-str
(pprint/pprint res))))))

Expand Down
1 change: 1 addition & 0 deletions examples/from-js/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
knowledge-garden
14 changes: 7 additions & 7 deletions examples/from-js/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ examples](https://github.com/babashka/nbb#calling-nbb-from-javascript).

## Setup

* Install node.js >= 16 and yarn.
* Install node.js >= 22 and yarn.
* Run `yarn install` to install npm dependencies.
* Install [babashka](https://github.com/babashka/babashka)

Expand All @@ -25,18 +25,18 @@ Datalog query the Logseq app can, but from the commandline. Here's how to use
this script:

```sh
# First clone an example graph like the logseq docs
$ git clone https://github.com/logseq/docs && cd docs
# First clone an example graph like this user's graph
$ git clone https://github.com/pengx17/knowledge-garden && cd knowledge-garden

# Print all the page names in the graph
$ node query.mjs . '[:find ?n :where [?b :block/name ?n]]'
$ node ../query.mjs . '[:find ?n :where [?b :block/name ?n]]'
Parsing 269 files...
[
"setting___enable journals",
...

# Print all the tasks' contents
$ node query.mjs . '[:find (pull ?b [:block/content]) :where (task ?b #{"TODO"})]'
$ node ../query.mjs . '[:find (pull ?b [:block/title]) :where (task ?b #{"DONE"})]'
Parsing 269 files...
[
{
Expand Down Expand Up @@ -86,8 +86,8 @@ $ yarn nbb-logseq -m graph-ast/-main -h

Here's how to use this script:
```sh
# First clone an example graph like the logseq docs
$ git clone https://github.com/logseq/docs && cd docs
# First clone an example graph like this user's graph
$ git clone https://github.com/pengx17/knowledge-garden && cd knowledge-garden

# Saves all ast data in the graph.
$ logseq-graph-ast . -o asts.edn
Expand Down
5 changes: 2 additions & 3 deletions examples/from-js/nbb.edn
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
{:deps
{logseq/graph-parser
{:git/url "https://github.com/logseq/logseq"
:git/sha "82cf4d3c65acbf230a3170640fe271dd74095067"
:git/tag "0.9.8"
:git/sha "65640ed8857199d89268295863cd556f5d90ea0b"
:deps/root "deps/graph-parser"}
#_{:local/root "../../../logseq/deps/graph-parser"}}}
#_{:local/root "../../../logseq/deps/graph-parser"}}}
4 changes: 2 additions & 2 deletions examples/from-js/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
"name": "@logseq/nbb-logseq-from-js",
"version": "1.0.0",
"dependencies": {
"@logseq/nbb-logseq": "^1.2.168",
"mldoc": "1.5.1"
"@logseq/nbb-logseq": "logseq/nbb-logseq#feat-db-v24",
"mldoc": "1.5.9"
},
"bin": {
"logseq-graph-ast": "graph_ast.mjs"
Expand Down
5 changes: 3 additions & 2 deletions examples/from-js/query.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,15 @@ if (args.length < 2) {
const results = await loadString(`
(ns query
(:require [logseq.graph-parser.cli :as gp-cli]
[logseq.db.rules :as rules]
[logseq.db.file-based.rules :as file-rules]
[logseq.db.frontend.rules :as rules]
[datascript.core :as d]
[clojure.edn :as edn]))

(defn- main [graph-dir query*]
(let [{:keys [conn]} (gp-cli/parse-graph graph-dir {:verbose false})
query (into query* [:in '$ '%]) ;; assumes no :in are in queries
results (map first (apply d/q query @conn [(vals rules/query-dsl-rules)]))]
results (map first (d/q query @conn (rules/extract-rules file-rules/query-dsl-rules)))]
(clj->js results)))

(main "${args[0]}" '${args[1]})
Expand Down
25 changes: 12 additions & 13 deletions examples/from-js/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,11 @@
# yarn lockfile v1


"@logseq/nbb-logseq@^1.2.168":
version "1.2.168"
resolved "https://registry.yarnpkg.com/@logseq/nbb-logseq/-/nbb-logseq-1.2.168.tgz#e4120c4a7eb6c80737473292c1e20919b4453c91"
integrity sha512-lgZuAhck/74+9mT4vr6jVLkPcyRA/RO8ApBizq3d1L6LsPlPjdRp4nIaC2I1/p/AaIIB5vP89pMpqZfVsIHHQg==
"@logseq/nbb-logseq@logseq/nbb-logseq#feat-db-v24":
version "1.2.173-feat-db-v24"
resolved "https://codeload.github.com/logseq/nbb-logseq/tar.gz/3d5b78b0382c7253bf9874c1f38586dd338434f4"
dependencies:
import-meta-resolve "^2.1.0"
import-meta-resolve "^4.1.0"

ansi-regex@^2.0.0:
version "2.1.1"
Expand Down Expand Up @@ -93,10 +92,10 @@ get-stream@^4.0.0:
dependencies:
pump "^3.0.0"

import-meta-resolve@^2.1.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-2.2.0.tgz#701aa29a044954bd135214049294745ac70dd607"
integrity sha512-CpPOtiCHxP9HdtDM5F45tNiAe66Cqlv3f5uHoJjt+KlaLrUh9/Wz9vepADZ78SlqEo62aDWZtj9ydMGXV+CPnw==
import-meta-resolve@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz#f9db8bead9fafa61adb811db77a2bf22c5399706"
integrity sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==

invert-kv@^2.0.0:
version "2.0.0"
Expand Down Expand Up @@ -161,10 +160,10 @@ mimic-fn@^2.0.0:
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==

[email protected].1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/mldoc/-/mldoc-1.5.1.tgz#570ae860d621e167e9a586f5be2b1bb96faf8bb7"
integrity sha512-FlmspawzeYjIegvHlUxx2VoZx2ExHKS5h+f80yCFjhuW3yeqdvq4zFP19GJGVGbAWnyTL0DfUoROf84IMAL8Fw==
[email protected].9:
version "1.5.9"
resolved "https://registry.yarnpkg.com/mldoc/-/mldoc-1.5.9.tgz#43d740351c64285f0f4988ac9497922d54ae66fc"
integrity sha512-87FQ7hseS87tsk+VdpIigpu8LH+GwmbbFgpxgFwvnbH5oOjmIrc47laH4Dyggzqiy8/vMjDHkl7vsId0eXhCDQ==
dependencies:
yargs "^12.0.2"

Expand Down
2 changes: 1 addition & 1 deletion examples/linked-data/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ in to existing ones.

## Setup

* Install node.js >= 16 and yarn.
* Install node.js >= 22 and yarn.
* Run `yarn install` to install npm dependencies.
* Install [babashka](https://github.com/babashka/babashka)

Expand Down
Loading