@loradb/lora-wasm 0.6.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +60 -19
- package/dist/decode.d.ts +29 -0
- package/dist/decode.d.ts.map +1 -0
- package/dist/decode.js +338 -0
- package/dist/decode.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/dist/snapshot.js +3 -3
- package/dist/snapshot.js.map +1 -1
- package/dist/types.d.ts +68 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -2
- package/dist/types.js.map +1 -1
- package/dist/worker-client.d.ts.map +1 -1
- package/dist/worker-client.js +11 -1
- package/dist/worker-client.js.map +1 -1
- package/dist/worker.js +11 -6
- package/dist/worker.js.map +1 -1
- package/package.json +5 -5
- package/pkg-bundler/README.md +60 -19
- package/pkg-bundler/lora_wasm.d.ts +25 -0
- package/pkg-bundler/lora_wasm_bg.js +60 -0
- package/pkg-bundler/lora_wasm_bg.wasm +0 -0
- package/pkg-bundler/lora_wasm_bg.wasm.d.ts +3 -0
- package/pkg-bundler/package.json +1 -1
- package/pkg-node/README.md +60 -19
- package/pkg-node/lora_wasm.d.ts +25 -0
- package/pkg-node/lora_wasm.js +60 -0
- package/pkg-node/lora_wasm_bg.wasm +0 -0
- package/pkg-node/lora_wasm_bg.wasm.d.ts +3 -0
- package/pkg-node/package.json +1 -1
- package/pkg-web/README.md +60 -19
- package/pkg-web/lora_wasm.d.ts +28 -0
- package/pkg-web/lora_wasm.js +60 -0
- package/pkg-web/lora_wasm_bg.wasm +0 -0
- package/pkg-web/lora_wasm_bg.wasm.d.ts +3 -0
- package/pkg-web/package.json +1 -1
package/dist/snapshot.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../ts/snapshot.ts"],"names":[],"mappings":"AA2DA,MAAM,0BAA0B,GAAG,0BAA0B,CAAC;AAE9D,MAAM,UAAU,YAAY,CAAC,KAA+B;IAC1D,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAiB;IACrD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC9C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChB,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,KAAiB,EACjB,QAAQ,GAAG,0BAA0B;IAErC,OAAO,IAAI,IAAI,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,KAAiB,EACjB,QAAQ,GAAG,0BAA0B;IAErC,OAAO,IAAI,QAAQ,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE;QAChD,OAAO,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE;KACtC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,KAAiB;IAEjB,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC9C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChB,OAAO,IAAI,cAAc,CAAa;QACpC,KAAK,CAAC,UAAU;YACd,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzB,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,KAAiB,EACjB,QAAQ,GAAG,0BAA0B;IAErC,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,OAAO,GAAG,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;QAC5E,MAAM,IAAI,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../ts/snapshot.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* spatial values are tagged so TypeScript can narrow safely after a
|
|
7
7
|
* query runs.
|
|
8
8
|
*
|
|
9
|
-
* Canonical source: `crates/shared-ts/types.ts`. Each JS-facing package
|
|
9
|
+
* Canonical source: `crates/bindings/shared-ts/types.ts`. Each JS-facing package
|
|
10
10
|
* (`lora-node`, `lora-wasm`) copies this file into its own `ts/` dir
|
|
11
11
|
* via its `sync:types` npm script. The `verify:types` script fails CI if
|
|
12
12
|
* the copies drift — do not edit the per-package copies directly.
|
|
@@ -182,6 +182,48 @@ export interface QueryResult<T extends Record<string, LoraValue> = Record<string
|
|
|
182
182
|
columns: string[];
|
|
183
183
|
rows: QueryRow<T>[];
|
|
184
184
|
}
|
|
185
|
+
export type LoraPlanShape = "readOnly" | "mutating";
|
|
186
|
+
export interface LoraPlanNode {
|
|
187
|
+
/** Stable physical-node id within the owning plan, or `Number.MAX_SAFE_INTEGER` for synthetic Union / UnionBranch wrappers. */
|
|
188
|
+
id: number;
|
|
189
|
+
/** Operator label, e.g. "NodeByLabelScan", "Expand", "Projection". */
|
|
190
|
+
operator: string;
|
|
191
|
+
/** Human-readable details map keyed on stable strings. Values are opaque strings — internal expression / variable types are not exposed here. */
|
|
192
|
+
details: Record<string, string>;
|
|
193
|
+
/** Reserved for a future cost model. Always `null` today. */
|
|
194
|
+
estimatedRows: number | null;
|
|
195
|
+
children: LoraPlanNode[];
|
|
196
|
+
}
|
|
197
|
+
export interface LoraQueryPlan {
|
|
198
|
+
/** The exact query string the caller submitted to `explain()`. */
|
|
199
|
+
query: string;
|
|
200
|
+
shape: LoraPlanShape;
|
|
201
|
+
/** Result column names in projection order. Empty for plans without a top-level projection. */
|
|
202
|
+
resultColumns: string[];
|
|
203
|
+
tree: LoraPlanNode;
|
|
204
|
+
}
|
|
205
|
+
export interface LoraOperatorMetrics {
|
|
206
|
+
rows: number;
|
|
207
|
+
/** Reserved for a future phase. `0` today. */
|
|
208
|
+
dbHits: number;
|
|
209
|
+
/** Wall-clock time spent inside this operator's `next_row`, *inclusive* of children. */
|
|
210
|
+
elapsedNs: number;
|
|
211
|
+
nextCalls: number;
|
|
212
|
+
}
|
|
213
|
+
export interface LoraQueryProfile {
|
|
214
|
+
/** Same shape as the result of `explain()`. */
|
|
215
|
+
plan: LoraQueryPlan;
|
|
216
|
+
metrics: {
|
|
217
|
+
/** Wall-clock time spent inside the executor for this query. */
|
|
218
|
+
totalElapsedNs: number;
|
|
219
|
+
/** Number of rows produced (before result-format projection). */
|
|
220
|
+
totalRows: number;
|
|
221
|
+
/** Whether at least one mutating operator ran. */
|
|
222
|
+
mutated: boolean;
|
|
223
|
+
/** Per-operator metrics keyed by physical node id (string-encoded for object compatibility). */
|
|
224
|
+
perOperator: Record<string, LoraOperatorMetrics>;
|
|
225
|
+
};
|
|
226
|
+
}
|
|
185
227
|
export declare function isNode(v: LoraValue): v is LoraNode;
|
|
186
228
|
export declare function isRelationship(v: LoraValue): v is LoraRelationship;
|
|
187
229
|
export declare function isPath(v: LoraValue): v is LoraPath;
|
|
@@ -207,14 +249,35 @@ export declare const cartesian3d: (x: number, y: number, z: number) => LoraCarte
|
|
|
207
249
|
export declare const wgs84: (longitude: number, latitude: number) => LoraWgs84Point;
|
|
208
250
|
export declare const wgs84_3d: (longitude: number, latitude: number, height: number) => LoraWgs84Point3D;
|
|
209
251
|
/**
|
|
210
|
-
* Error codes emitted by the engine bridges.
|
|
252
|
+
* Error codes emitted by the engine bridges. Mirrors
|
|
253
|
+
* `lora_database::LoraErrorCode::as_str` 1:1, plus two binding-only
|
|
254
|
+
* codes (`WORKER_ERROR`, `UNKNOWN`).
|
|
255
|
+
*
|
|
256
|
+
* Client errors (caller's fault):
|
|
257
|
+
* - `LORA_PARSE` — Cypher syntax could not be parsed
|
|
258
|
+
* - `LORA_SEMANTIC` — analysis failure (unknown variable, label, type mismatch, …)
|
|
259
|
+
* - `LORA_INVALID_PARAMS` — a parameter value could not be coerced
|
|
260
|
+
* - `LORA_READ_ONLY` — mutating statement issued in a read-only context
|
|
261
|
+
* - `LORA_NOT_FOUND` — a named entity does not exist
|
|
262
|
+
* - `LORA_CONSTRAINT` — a precondition (e.g. delete-with-relationships) is not satisfied
|
|
263
|
+
* - `LORA_INVALID_VECTOR` — vector value failed dimension / coordinate-type validation
|
|
264
|
+
* - `LORA_TIMEOUT` — query exceeded its cooperative deadline
|
|
265
|
+
* - `LORA_DATABASE_NAME` — logical database name violates the portable-path rules
|
|
266
|
+
* - `LORA_CONFIG` — required parameters are missing or malformed
|
|
267
|
+
*
|
|
268
|
+
* Server errors (engine-side):
|
|
269
|
+
* - `LORA_IO` — I/O failure outside the WAL / snapshot boundaries
|
|
270
|
+
* - `LORA_WAL_CORRUPTION` — WAL record was truncated, mis-CRC'd, or otherwise unreadable
|
|
271
|
+
* - `LORA_WAL_POISONED` — WAL is poisoned and no longer accepts durable writes
|
|
272
|
+
* - `LORA_SNAPSHOT_CODEC` — snapshot codec failure (bad magic, version, checksum, …)
|
|
273
|
+
* - `LORA_SNAPSHOT_CRYPTO` — snapshot encryption / decryption / KDF failure
|
|
274
|
+
* - `LORA_INTERNAL` — last-resort fallback when the engine cannot classify the failure
|
|
211
275
|
*
|
|
212
|
-
* -
|
|
213
|
-
* - `INVALID_PARAMS` — a param value could not be mapped to a Lora value
|
|
276
|
+
* Binding-only:
|
|
214
277
|
* - `WORKER_ERROR` — worker transport / lifecycle failure (wasm worker only)
|
|
215
278
|
* - `UNKNOWN` — fall-through for unrecognised error shapes
|
|
216
279
|
*/
|
|
217
|
-
export type LoraErrorCode = "
|
|
280
|
+
export type LoraErrorCode = "LORA_PARSE" | "LORA_SEMANTIC" | "LORA_INVALID_PARAMS" | "LORA_READ_ONLY" | "LORA_NOT_FOUND" | "LORA_CONSTRAINT" | "LORA_INVALID_VECTOR" | "LORA_TIMEOUT" | "LORA_DATABASE_NAME" | "LORA_CONFIG" | "LORA_IO" | "LORA_WAL_CORRUPTION" | "LORA_WAL_POISONED" | "LORA_SNAPSHOT_CODEC" | "LORA_SNAPSHOT_CRYPTO" | "LORA_INTERNAL" | "WORKER_ERROR" | "UNKNOWN";
|
|
218
281
|
/**
|
|
219
282
|
* Error thrown by `Database.execute` when Lora parsing, analysis, or
|
|
220
283
|
* execution fails.
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../ts/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../ts/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* spatial values are tagged so TypeScript can narrow safely after a
|
|
7
7
|
* query runs.
|
|
8
8
|
*
|
|
9
|
-
* Canonical source: `crates/shared-ts/types.ts`. Each JS-facing package
|
|
9
|
+
* Canonical source: `crates/bindings/shared-ts/types.ts`. Each JS-facing package
|
|
10
10
|
* (`lora-node`, `lora-wasm`) copies this file into its own `ts/` dir
|
|
11
11
|
* via its `sync:types` npm script. The `verify:types` script fails CI if
|
|
12
12
|
* the copies drift — do not edit the per-package copies directly.
|
|
@@ -110,7 +110,7 @@ export class LoraError extends Error {
|
|
|
110
110
|
this.code = code;
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
|
-
const ERROR_PREFIX_RE = /^(
|
|
113
|
+
const ERROR_PREFIX_RE = /^(LORA_[A-Z_]+|WORKER_ERROR):\s*(.*)$/s;
|
|
114
114
|
/**
|
|
115
115
|
* Normalise a thrown value into a `LoraError` with a narrowed `code`
|
|
116
116
|
* when the message carries a recognised prefix; otherwise returns the
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../ts/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../ts/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-client.d.ts","sourceRoot":"","sources":["../ts/worker-client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,SAAS,EACT,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAW,QAAQ,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EAEvB,kBAAkB,EAClB,SAAS,EACT,YAAY,EACZ,eAAe,EACf,oBAAoB,EACrB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"worker-client.d.ts","sourceRoot":"","sources":["../ts/worker-client.ts"],"names":[],"mappings":"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"}
|
package/dist/worker-client.js
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { LoraError } from "./types.js";
|
|
9
9
|
import { snapshotAsArrayBuffer, snapshotAsBlob, snapshotAsObjectUrl, snapshotAsReadableStream, snapshotAsResponse, readSnapshotSource, } from "./snapshot.js";
|
|
10
|
+
import { decodeResult } from "./decode.js";
|
|
10
11
|
class WorkerRowStream {
|
|
11
12
|
#open;
|
|
12
13
|
#call;
|
|
@@ -126,7 +127,16 @@ export function createWorkerDatabase(worker) {
|
|
|
126
127
|
}
|
|
127
128
|
return {
|
|
128
129
|
execute(query, params) {
|
|
129
|
-
|
|
130
|
+
// The real worker hands back the binary result buffer
|
|
131
|
+
// (transferable Uint8Array, no structured-clone tax) which we
|
|
132
|
+
// decode here on the main thread. The in-process test stub
|
|
133
|
+
// bypasses the encoder and returns the already-decoded object;
|
|
134
|
+
// the typeof check covers both.
|
|
135
|
+
return call({
|
|
136
|
+
op: "execute",
|
|
137
|
+
query,
|
|
138
|
+
params: params ?? null,
|
|
139
|
+
}).then((res) => res instanceof Uint8Array ? decodeResult(res) : res);
|
|
130
140
|
},
|
|
131
141
|
stream(query, params) {
|
|
132
142
|
return new WorkerRowStream(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-client.js","sourceRoot":"","sources":["../ts/worker-client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAYvC,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AA+
|
|
1
|
+
{"version":3,"file":"worker-client.js","sourceRoot":"","sources":["../ts/worker-client.ts"],"names":[],"mappings":"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"}
|
package/dist/worker.js
CHANGED
|
@@ -26,14 +26,14 @@ function ensureReady() {
|
|
|
26
26
|
return ready;
|
|
27
27
|
}
|
|
28
28
|
function extractErrorCode(message) {
|
|
29
|
-
const match = /^(
|
|
29
|
+
const match = /^(LORA_[A-Z_]+|WORKER_ERROR):/.exec(message);
|
|
30
30
|
return match?.[1] ?? "UNKNOWN";
|
|
31
31
|
}
|
|
32
32
|
self.onmessage = async (event) => {
|
|
33
33
|
const { id, body } = event.data;
|
|
34
|
-
const respond = (payload) => {
|
|
34
|
+
const respond = (payload, transfer) => {
|
|
35
35
|
const res = { id, body: payload };
|
|
36
|
-
self.postMessage(res);
|
|
36
|
+
self.postMessage(res, transfer ?? []);
|
|
37
37
|
};
|
|
38
38
|
try {
|
|
39
39
|
await ensureReady();
|
|
@@ -41,8 +41,13 @@ self.onmessage = async (event) => {
|
|
|
41
41
|
throw new Error("WORKER_ERROR: database not initialized");
|
|
42
42
|
switch (body.op) {
|
|
43
43
|
case "execute": {
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
// executeBuffer returns the encoded result as a Uint8Array;
|
|
45
|
+
// its underlying ArrayBuffer is transferable, so postMessage
|
|
46
|
+
// skips structured-clone entirely. The client decodes on the
|
|
47
|
+
// main thread in JIT'd JavaScript.
|
|
48
|
+
const native = db;
|
|
49
|
+
const buf = native.executeBuffer(body.query, body.params ?? null);
|
|
50
|
+
respond({ ok: true, result: buf }, [buf.buffer]);
|
|
46
51
|
break;
|
|
47
52
|
}
|
|
48
53
|
case "streamOpen": {
|
|
@@ -59,7 +64,7 @@ self.onmessage = async (event) => {
|
|
|
59
64
|
case "streamNext": {
|
|
60
65
|
const stream = streams.get(body.streamId);
|
|
61
66
|
if (!stream)
|
|
62
|
-
throw new Error("
|
|
67
|
+
throw new Error("LORA_INTERNAL: query stream is closed");
|
|
63
68
|
const row = stream.next();
|
|
64
69
|
if (row === null) {
|
|
65
70
|
streams.delete(body.streamId);
|
package/dist/worker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../ts/worker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,iCAAiC;AAEjC,OAAO,UAAU,EAAE,EACjB,YAAY,EACZ,IAAI,IAAI,gBAAgB,GACzB,MAAM,yBAAyB,CAAC;AAMjC,IAAI,EAAE,GAAwB,IAAI,CAAC;AACnC,IAAI,KAAK,GAAyB,IAAI,CAAC;AACvC,IAAI,YAAY,GAAG,CAAC,CAAC;AACrB,MAAM,OAAO,GAAG,IAAI,GAAG,EAInB,CAAC;AAEL,SAAS,WAAW;IAClB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE;YAClB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,8BAA8B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzE,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;YAC1B,gBAAgB,EAAE,CAAC;YACnB,EAAE,GAAG,IAAI,YAAY,EAAE,CAAC;QAC1B,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAe;IACvC,MAAM,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../ts/worker.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loradb/lora-wasm",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "WebAssembly bindings for the Lora in-memory graph database",
|
|
5
5
|
"license": "BUSL-1.1",
|
|
6
6
|
"author": "LoraDB, Inc.",
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"repository": {
|
|
9
9
|
"type": "git",
|
|
10
10
|
"url": "git+https://github.com/lora-db/lora.git",
|
|
11
|
-
"directory": "crates/lora-wasm"
|
|
11
|
+
"directory": "crates/bindings/lora-wasm"
|
|
12
12
|
},
|
|
13
13
|
"bugs": {
|
|
14
14
|
"url": "https://github.com/lora-db/lora/issues"
|
|
@@ -65,8 +65,8 @@
|
|
|
65
65
|
"node": ">=20"
|
|
66
66
|
},
|
|
67
67
|
"scripts": {
|
|
68
|
-
"sync:types": "node -e \"require('fs').copyFileSync('../shared-ts/
|
|
69
|
-
"verify:types": "node -e \"const fs=require('fs'); const a=fs.readFileSync('../shared-ts/
|
|
68
|
+
"sync:types": "node -e \"const fs=require('fs'); for (const f of ['types.ts','decode.ts']) fs.copyFileSync('../shared-ts/' + f, 'ts/' + f);\"",
|
|
69
|
+
"verify:types": "node -e \"const fs=require('fs'); for (const f of ['types.ts','decode.ts']) { const a=fs.readFileSync('../shared-ts/' + f,'utf8'); const b=fs.readFileSync('ts/' + f,'utf8'); if (a!==b) { console.error('ts/' + f + ' is out of sync with shared-ts/' + f + ' — run npm run sync:types'); process.exit(1);} } \"",
|
|
70
70
|
"prebuild": "npm run sync:types",
|
|
71
71
|
"pretypecheck": "npm run sync:types",
|
|
72
72
|
"pretest": "npm run sync:types",
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
"test:watch": "vitest",
|
|
83
83
|
"test:browser": "playwright test",
|
|
84
84
|
"test:browser:install": "playwright install chromium",
|
|
85
|
-
"copy-license": "node -e \"const fs=require('fs'); try { fs.copyFileSync('
|
|
85
|
+
"copy-license": "node -e \"const fs=require('fs'); try { fs.copyFileSync('../../../LICENSE','LICENSE'); } catch (e) { if (e.code !== 'ENOENT') throw e; }\"",
|
|
86
86
|
"prepack": "npm run sync:types && npm run copy-license && npm run build",
|
|
87
87
|
"pack:dry": "npm pack --dry-run"
|
|
88
88
|
},
|
package/pkg-bundler/README.md
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
# lora-wasm
|
|
2
2
|
|
|
3
|
-
WebAssembly bindings for the [Lora](
|
|
3
|
+
WebAssembly bindings for the [Lora](../../../README.md) in-memory graph
|
|
4
4
|
database. The package is designed for browsers and Node.js and exposes a
|
|
5
5
|
**strongly typed, async-facing API** that keeps the main thread responsive:
|
|
6
6
|
heavy query work can run inside a Web Worker while your UI code simply awaits
|
|
7
7
|
the result.
|
|
8
8
|
|
|
9
|
-
> **
|
|
9
|
+
> **Package:** `@loradb/lora-wasm`.
|
|
10
10
|
|
|
11
11
|
## Build
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
|
-
cd crates/lora-wasm
|
|
14
|
+
cd crates/bindings/lora-wasm
|
|
15
15
|
npm install
|
|
16
16
|
npm run build # wasm-pack (node + bundler) + tsc
|
|
17
17
|
npm test # vitest
|
|
@@ -52,7 +52,7 @@ fails during startup, the package emits one `console.warn` and falls back to
|
|
|
52
52
|
the in-process WASM engine so the app can still run.
|
|
53
53
|
|
|
54
54
|
```ts
|
|
55
|
-
import { createDatabase, isNode } from "lora-wasm";
|
|
55
|
+
import { createDatabase, isNode } from "@loradb/lora-wasm";
|
|
56
56
|
|
|
57
57
|
const db = await createDatabase(); // Worker-backed in browsers when possible
|
|
58
58
|
await db.execute("CREATE (:Person {name: $n})", { n: "Alice" });
|
|
@@ -63,6 +63,37 @@ for (const row of r.rows) {
|
|
|
63
63
|
}
|
|
64
64
|
```
|
|
65
65
|
|
|
66
|
+
### Explain & Profile
|
|
67
|
+
|
|
68
|
+
`db.explain()` and `db.profile()` are first-class methods alongside
|
|
69
|
+
`db.execute()`. They are intentionally *separate calls*, not a flag
|
|
70
|
+
on `execute()`, so plan inspection and runtime metrics must be
|
|
71
|
+
requested explicitly.
|
|
72
|
+
|
|
73
|
+
```ts
|
|
74
|
+
const plan = await db.explain(
|
|
75
|
+
"MATCH (p:Person) WHERE p.name = $name RETURN p",
|
|
76
|
+
{ name: "Alice" },
|
|
77
|
+
);
|
|
78
|
+
console.log(plan.shape); // "readOnly"
|
|
79
|
+
console.log(plan.tree.operator);
|
|
80
|
+
|
|
81
|
+
const profile = await db.profile(
|
|
82
|
+
"MATCH (p:Person) WHERE p.name = $name RETURN p",
|
|
83
|
+
{ name: "Alice" },
|
|
84
|
+
);
|
|
85
|
+
console.log(profile.metrics.totalElapsedNs);
|
|
86
|
+
console.log(profile.metrics.perOperator); // per-step inclusive timing
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
`explain()` never invokes the executor — calling it on a mutating
|
|
90
|
+
query (`CREATE`, `MERGE`, `SET`, `DELETE`, `REMOVE`) leaves the graph
|
|
91
|
+
untouched.
|
|
92
|
+
|
|
93
|
+
> **`profile()` executes the query for real.** Mutating queries
|
|
94
|
+
> produce the same side effects as `execute()`. Use `explain()` to
|
|
95
|
+
> inspect a mutating plan without running it.
|
|
96
|
+
|
|
66
97
|
To force the in-process engine:
|
|
67
98
|
|
|
68
99
|
```ts
|
|
@@ -84,7 +115,7 @@ const db = await createDatabase({ warnOnFallback: false });
|
|
|
84
115
|
### 2. Explicit main-thread WASM
|
|
85
116
|
|
|
86
117
|
```ts
|
|
87
|
-
import { createMainThreadDatabase } from "lora-wasm";
|
|
118
|
+
import { createMainThreadDatabase } from "@loradb/lora-wasm";
|
|
88
119
|
|
|
89
120
|
const db = await createMainThreadDatabase();
|
|
90
121
|
```
|
|
@@ -122,14 +153,14 @@ WASM has no filesystem access, so snapshots never accept string paths.
|
|
|
122
153
|
accepts `URL`, `Uint8Array`, `ArrayBuffer`, `Blob`, `Response`, and web
|
|
123
154
|
`ReadableStream<Uint8Array | ArrayBuffer>`. The bytes use the database
|
|
124
155
|
snapshot codec (`LORACOL1`) and can be loaded by native LoraDB. Older store
|
|
125
|
-
snapshots
|
|
156
|
+
snapshots use the current `LORACOL1` columnar format.
|
|
126
157
|
Snapshot bytes are uncompressed by default; pass `{ compression: "gzip" }` or
|
|
127
158
|
`{ compression: { format: "gzip", level: 1 } }` to save smaller
|
|
128
159
|
WASM-portable snapshots. Gzip levels `0..9` are supported; level `1` is the
|
|
129
160
|
fast default.
|
|
130
161
|
|
|
131
162
|
```ts
|
|
132
|
-
import { createDatabase } from "lora-wasm";
|
|
163
|
+
import { createDatabase } from "@loradb/lora-wasm";
|
|
133
164
|
|
|
134
165
|
const db = await createDatabase();
|
|
135
166
|
await db.execute("CREATE (:Person {name: 'Alice'})");
|
|
@@ -172,31 +203,42 @@ Helper constructors: `date`, `time`, `datetime`, `localtime`, `localdatetime`,
|
|
|
172
203
|
`isNode`, `isRelationship`, `isPath`, `isPoint`, `isTemporal`.
|
|
173
204
|
|
|
174
205
|
> `distance()` on WGS-84-3D points ignores `height`. See
|
|
175
|
-
> [functions reference](
|
|
206
|
+
> [functions reference](../../../apps/loradb.com/docs/functions/overview.md) for the spatial
|
|
176
207
|
> reference and out-of-scope operations.
|
|
177
208
|
|
|
178
209
|
## Errors
|
|
179
210
|
|
|
180
|
-
`db.execute(...)` and the worker client throw `LoraError` with a
|
|
181
|
-
`code
|
|
211
|
+
`db.execute(...)` and the worker client throw `LoraError` with a
|
|
212
|
+
narrowed `code` from the `LoraErrorCode` union — these mirror
|
|
213
|
+
`lora_database::LoraErrorCode` 1:1, plus `WORKER_ERROR` and `UNKNOWN`.
|
|
182
214
|
|
|
183
|
-
|
|
184
|
-
|
|
215
|
+
Common ones:
|
|
216
|
+
|
|
217
|
+
- `LORA_PARSE` — Cypher syntax could not be parsed
|
|
218
|
+
- `LORA_SEMANTIC` — analysis failure (unknown variable, label, type mismatch, …)
|
|
219
|
+
- `LORA_INVALID_PARAMS` — a parameter value could not be coerced to a `LoraValue`
|
|
220
|
+
- `LORA_INVALID_VECTOR` — vector value failed dimension / coordinate-type validation
|
|
221
|
+
- `LORA_TIMEOUT` — query exceeded its cooperative deadline
|
|
222
|
+
- `LORA_IO`, `LORA_SNAPSHOT_CODEC`, `LORA_SNAPSHOT_CRYPTO` — storage / snapshot failures
|
|
223
|
+
- `LORA_INTERNAL` — last-resort fallback when the engine cannot classify the failure
|
|
185
224
|
- `WORKER_ERROR` — worker transport / lifecycle failure (worker client only)
|
|
186
225
|
|
|
226
|
+
See `ts/types.ts` (`LoraErrorCode`) for the full list.
|
|
227
|
+
|
|
187
228
|
## Shared type contract
|
|
188
229
|
|
|
189
230
|
The public TypeScript value model (`LoraValue`, `LoraNode`, …,
|
|
190
231
|
`QueryResult`, `LoraError`) lives in a single canonical file at
|
|
191
|
-
`crates/shared-ts/types.ts` and is copied into each consumer package by
|
|
232
|
+
`crates/bindings/shared-ts/types.ts` and is copied into each consumer package by
|
|
192
233
|
its `sync:types` npm script. CI runs `verify:types` to fail on drift.
|
|
193
234
|
That keeps `lora-node` and `lora-wasm` locked to one identical
|
|
194
235
|
public surface — consumers can swap backends without rewriting types.
|
|
195
236
|
|
|
196
237
|
## Known limitations
|
|
197
238
|
|
|
198
|
-
- The wasm module
|
|
199
|
-
|
|
239
|
+
- The wasm module runs inside one JavaScript runtime. Auto-commit reads can
|
|
240
|
+
overlap on engine snapshots; write commits serialize. Use more Workers for
|
|
241
|
+
separate graphs or stronger UI isolation.
|
|
200
242
|
- I64 values are delivered as JS `number` and lose precision above 2^53.
|
|
201
243
|
Applications that need bigint precision should use the native
|
|
202
244
|
`lora-node` binding instead.
|
|
@@ -228,7 +270,7 @@ public surface — consumers can swap backends without rewriting types.
|
|
|
228
270
|
forms, parameter validation errors, and concurrent queries across the
|
|
229
271
|
worker message protocol.
|
|
230
272
|
- The TypeScript public contract is shared verbatim with `lora-node`
|
|
231
|
-
via `crates/shared-ts/types.ts`, enforced by `verify:types` in CI.
|
|
273
|
+
via `crates/bindings/shared-ts/types.ts`, enforced by `verify:types` in CI.
|
|
232
274
|
- `npm pack --dry-run` produces a 45-file, 6.6 MB tarball containing
|
|
233
275
|
all three wasm bundles plus the compiled TS wrapper. No `file:` deps,
|
|
234
276
|
no postinstall scripts.
|
|
@@ -245,9 +287,8 @@ public surface — consumers can swap backends without rewriting types.
|
|
|
245
287
|
- I64 precision is capped at `Number.MAX_SAFE_INTEGER`. For larger
|
|
246
288
|
integer properties we need a `bigint`-aware serializer on the wasm
|
|
247
289
|
boundary.
|
|
248
|
-
- The engine is synchronous inside wasm
|
|
249
|
-
|
|
250
|
-
possible), or an engine-level cooperative scheduler.
|
|
290
|
+
- The engine is synchronous inside wasm once a call enters the module. A slow
|
|
291
|
+
query blocks that Worker until completion.
|
|
251
292
|
- No query cancellation or progress streaming crosses the Worker
|
|
252
293
|
boundary; a slow query blocks that Worker until completion.
|
|
253
294
|
|
|
@@ -39,6 +39,16 @@ export class WasmDatabase {
|
|
|
39
39
|
* Returns the serialized bytes as a `Uint8Array`.
|
|
40
40
|
*/
|
|
41
41
|
saveSnapshot(options: any): Uint8Array;
|
|
42
|
+
/**
|
|
43
|
+
* Execute a Lora query and return the result as a binary buffer.
|
|
44
|
+
*
|
|
45
|
+
* Wire format is the shared `lora_binding_buffer` layout. The TS
|
|
46
|
+
* wrapper decodes it once into the same `{ columns, rows }` shape
|
|
47
|
+
* `execute()` returns, but in a tight V8 loop instead of going
|
|
48
|
+
* through `serde_wasm_bindgen` value-by-value. Materially faster
|
|
49
|
+
* on bulk reads.
|
|
50
|
+
*/
|
|
51
|
+
executeBuffer(query: string, params: any): Uint8Array;
|
|
42
52
|
relationshipCount(): number;
|
|
43
53
|
constructor();
|
|
44
54
|
clear(): void;
|
|
@@ -50,6 +60,21 @@ export class WasmDatabase {
|
|
|
50
60
|
* as a plain JS object (structured-clonable).
|
|
51
61
|
*/
|
|
52
62
|
execute(query: string, params: any): any;
|
|
63
|
+
/**
|
|
64
|
+
* Compile a query and return its plan without executing it.
|
|
65
|
+
*
|
|
66
|
+
* Mutating queries (CREATE / MERGE / SET / DELETE / REMOVE) leave
|
|
67
|
+
* the graph untouched — this method never runs the executor.
|
|
68
|
+
*/
|
|
69
|
+
explain(query: string, params: any): any;
|
|
70
|
+
/**
|
|
71
|
+
* Execute a query and return the plan plus runtime metrics.
|
|
72
|
+
*
|
|
73
|
+
* **PROFILE executes the query for real.** Mutating queries are
|
|
74
|
+
* persisted exactly as in `execute()`. Use `explain()` to inspect
|
|
75
|
+
* a mutating plan without running it.
|
|
76
|
+
*/
|
|
77
|
+
profile(query: string, params: any): any;
|
|
53
78
|
}
|
|
54
79
|
export class WasmQueryStream {
|
|
55
80
|
private constructor();
|
|
@@ -297,6 +297,29 @@ export class WasmDatabase {
|
|
|
297
297
|
wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
|
|
298
298
|
return v1;
|
|
299
299
|
}
|
|
300
|
+
/**
|
|
301
|
+
* Execute a Lora query and return the result as a binary buffer.
|
|
302
|
+
*
|
|
303
|
+
* Wire format is the shared `lora_binding_buffer` layout. The TS
|
|
304
|
+
* wrapper decodes it once into the same `{ columns, rows }` shape
|
|
305
|
+
* `execute()` returns, but in a tight V8 loop instead of going
|
|
306
|
+
* through `serde_wasm_bindgen` value-by-value. Materially faster
|
|
307
|
+
* on bulk reads.
|
|
308
|
+
* @param {string} query
|
|
309
|
+
* @param {any} params
|
|
310
|
+
* @returns {Uint8Array}
|
|
311
|
+
*/
|
|
312
|
+
executeBuffer(query, params) {
|
|
313
|
+
const ptr0 = passStringToWasm0(query, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
314
|
+
const len0 = WASM_VECTOR_LEN;
|
|
315
|
+
const ret = wasm.wasmdatabase_executeBuffer(this.__wbg_ptr, ptr0, len0, params);
|
|
316
|
+
if (ret[3]) {
|
|
317
|
+
throw takeFromExternrefTable0(ret[2]);
|
|
318
|
+
}
|
|
319
|
+
var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
|
|
320
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
|
|
321
|
+
return v2;
|
|
322
|
+
}
|
|
300
323
|
/**
|
|
301
324
|
* @returns {number}
|
|
302
325
|
*/
|
|
@@ -332,6 +355,43 @@ export class WasmDatabase {
|
|
|
332
355
|
}
|
|
333
356
|
return takeFromExternrefTable0(ret[0]);
|
|
334
357
|
}
|
|
358
|
+
/**
|
|
359
|
+
* Compile a query and return its plan without executing it.
|
|
360
|
+
*
|
|
361
|
+
* Mutating queries (CREATE / MERGE / SET / DELETE / REMOVE) leave
|
|
362
|
+
* the graph untouched — this method never runs the executor.
|
|
363
|
+
* @param {string} query
|
|
364
|
+
* @param {any} params
|
|
365
|
+
* @returns {any}
|
|
366
|
+
*/
|
|
367
|
+
explain(query, params) {
|
|
368
|
+
const ptr0 = passStringToWasm0(query, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
369
|
+
const len0 = WASM_VECTOR_LEN;
|
|
370
|
+
const ret = wasm.wasmdatabase_explain(this.__wbg_ptr, ptr0, len0, params);
|
|
371
|
+
if (ret[2]) {
|
|
372
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
373
|
+
}
|
|
374
|
+
return takeFromExternrefTable0(ret[0]);
|
|
375
|
+
}
|
|
376
|
+
/**
|
|
377
|
+
* Execute a query and return the plan plus runtime metrics.
|
|
378
|
+
*
|
|
379
|
+
* **PROFILE executes the query for real.** Mutating queries are
|
|
380
|
+
* persisted exactly as in `execute()`. Use `explain()` to inspect
|
|
381
|
+
* a mutating plan without running it.
|
|
382
|
+
* @param {string} query
|
|
383
|
+
* @param {any} params
|
|
384
|
+
* @returns {any}
|
|
385
|
+
*/
|
|
386
|
+
profile(query, params) {
|
|
387
|
+
const ptr0 = passStringToWasm0(query, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
388
|
+
const len0 = WASM_VECTOR_LEN;
|
|
389
|
+
const ret = wasm.wasmdatabase_profile(this.__wbg_ptr, ptr0, len0, params);
|
|
390
|
+
if (ret[2]) {
|
|
391
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
392
|
+
}
|
|
393
|
+
return takeFromExternrefTable0(ret[0]);
|
|
394
|
+
}
|
|
335
395
|
}
|
|
336
396
|
|
|
337
397
|
const WasmQueryStreamFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
Binary file
|