@loradb/lora-node 0.1.0 → 0.3.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/dist/index.d.ts +28 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -0
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +30 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +12 -1
- package/dist/types.js.map +1 -1
- package/package.json +8 -8
- package/ts/native.d.ts +11 -0
package/dist/index.d.ts
CHANGED
|
@@ -14,6 +14,18 @@
|
|
|
14
14
|
import type { LoraParams, LoraValue, QueryResult } from "./types.js";
|
|
15
15
|
declare const NativeDatabase: typeof import("./native.js").Database;
|
|
16
16
|
export * from "./types.js";
|
|
17
|
+
/**
|
|
18
|
+
* Metadata returned by `saveSnapshot` / `loadSnapshot`. Mirrors the Rust
|
|
19
|
+
* `SnapshotMeta` struct and matches the shape used by every other binding
|
|
20
|
+
* (Python, WASM, Go, FFI) so snapshots can be described in the same way
|
|
21
|
+
* regardless of language.
|
|
22
|
+
*/
|
|
23
|
+
export interface SnapshotMeta {
|
|
24
|
+
formatVersion: number;
|
|
25
|
+
nodeCount: number;
|
|
26
|
+
relationshipCount: number;
|
|
27
|
+
walLsn: number | null;
|
|
28
|
+
}
|
|
17
29
|
/**
|
|
18
30
|
* In-memory Lora graph database instance.
|
|
19
31
|
*
|
|
@@ -41,6 +53,22 @@ declare class DatabaseImpl {
|
|
|
41
53
|
nodeCount(): Promise<number>;
|
|
42
54
|
/** Number of relationships currently in the graph. */
|
|
43
55
|
relationshipCount(): Promise<number>;
|
|
56
|
+
/**
|
|
57
|
+
* Save the graph to a snapshot file. Writes atomically via a `.tmp` +
|
|
58
|
+
* rename dance — the target path is only replaced once the full payload
|
|
59
|
+
* has been written and fsync'd.
|
|
60
|
+
*
|
|
61
|
+
* Synchronous in the native layer (point-in-time consistency requires
|
|
62
|
+
* holding the store mutex for the duration of the save); the returned
|
|
63
|
+
* Promise resolves immediately once the save returns.
|
|
64
|
+
*/
|
|
65
|
+
saveSnapshot(path: string): Promise<SnapshotMeta>;
|
|
66
|
+
/**
|
|
67
|
+
* Replace the current graph state with a snapshot loaded from `path`.
|
|
68
|
+
* Concurrent `execute()` calls block on the store mutex until the load
|
|
69
|
+
* completes.
|
|
70
|
+
*/
|
|
71
|
+
loadSnapshot(path: string): Promise<SnapshotMeta>;
|
|
44
72
|
}
|
|
45
73
|
/**
|
|
46
74
|
* Public type for a LoraDB instance.
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,SAAS,EACT,WAAW,EACZ,MAAM,YAAY,CAAC;AAOpB,QAAA,MAAM,cAAc,EAAE,cAAc,aAAa,EAAE,QAA0B,CAAC;AAE9E,cAAc,YAAY,CAAC;AAE3B;;;;;;;;;;;GAWG;AACH,cAAM,YAAY;;gBAGJ,KAAK,EAAE,YAAY,CAAC,OAAO,cAAc,CAAC;IAItD;;;;OAIG;IACG,OAAO,CACX,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAC/D,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAS9D,sEAAsE;IAChE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,8CAA8C;IACxC,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAIlC,sDAAsD;IAChD,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,SAAS,EACT,WAAW,EACZ,MAAM,YAAY,CAAC;AAOpB,QAAA,MAAM,cAAc,EAAE,cAAc,aAAa,EAAE,QAA0B,CAAC;AAE9E,cAAc,YAAY,CAAC;AAE3B;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;;;;;;;;;;GAWG;AACH,cAAM,YAAY;;gBAGJ,KAAK,EAAE,YAAY,CAAC,OAAO,cAAc,CAAC;IAItD;;;;OAIG;IACG,OAAO,CACX,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAC/D,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAS9D,sEAAsE;IAChE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,8CAA8C;IACxC,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAIlC,sDAAsD;IAChD,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAI1C;;;;;;;;OAQG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAQvD;;;;OAIG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CAOxD;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,QAAQ,GAAG,YAAY,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,QAAQ,CAAC,CAExD"}
|
package/dist/index.js
CHANGED
|
@@ -80,6 +80,36 @@ class DatabaseImpl {
|
|
|
80
80
|
async relationshipCount() {
|
|
81
81
|
return this.#inner.relationshipCount();
|
|
82
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Save the graph to a snapshot file. Writes atomically via a `.tmp` +
|
|
85
|
+
* rename dance — the target path is only replaced once the full payload
|
|
86
|
+
* has been written and fsync'd.
|
|
87
|
+
*
|
|
88
|
+
* Synchronous in the native layer (point-in-time consistency requires
|
|
89
|
+
* holding the store mutex for the duration of the save); the returned
|
|
90
|
+
* Promise resolves immediately once the save returns.
|
|
91
|
+
*/
|
|
92
|
+
async saveSnapshot(path) {
|
|
93
|
+
try {
|
|
94
|
+
return this.#inner.saveSnapshot(path);
|
|
95
|
+
}
|
|
96
|
+
catch (err) {
|
|
97
|
+
throw (0, types_js_1.wrapError)(err);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Replace the current graph state with a snapshot loaded from `path`.
|
|
102
|
+
* Concurrent `execute()` calls block on the store mutex until the load
|
|
103
|
+
* completes.
|
|
104
|
+
*/
|
|
105
|
+
async loadSnapshot(path) {
|
|
106
|
+
try {
|
|
107
|
+
return this.#inner.loadSnapshot(path);
|
|
108
|
+
}
|
|
109
|
+
catch (err) {
|
|
110
|
+
throw (0, types_js_1.wrapError)(err);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
83
113
|
}
|
|
84
114
|
/**
|
|
85
115
|
* Create and initialize a new in-memory LoraDB instance.
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;;;;;;;;;;;;;;;;;AAiJH,wCAEC;AA5ID,yCAAuC;AAEvC,6DAA6D;AAC7D,wDAAwD;AACxD,4DAAiC;AAEjC,MAAM,cAAc,GAA0C,mBAAM,CAAC,QAAQ,CAAC;AAE9E,6CAA2B;AAe3B;;;;;;;;;;;GAWG;AACH,MAAM,YAAY;IACP,MAAM,CAAsC;IAErD,YAAY,KAA0C;QACpD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAEX,KAAa,EAAE,MAAmB;QAClC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,IAAI,IAAI,CAAC,CAAC;YAC7D,OAAO,GAAqB,CAAC;QAC/B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAA,oBAAS,EAAC,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,8CAA8C;IAC9C,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;IACjC,CAAC;IAED,sDAAsD;IACtD,KAAK,CAAC,iBAAiB;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;IACzC,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,YAAY,CAAC,IAAY;QAC7B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAiB,CAAC;QACxD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAA,oBAAS,EAAC,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAC,IAAY;QAC7B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAiB,CAAC;QACxD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAA,oBAAS,EAAC,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;CACF;AAgBD;;;;;;;;;;;;;;;;;;;GAmBG;AACI,KAAK,UAAU,cAAc;IAClC,OAAO,IAAI,YAAY,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC;AAChD,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
*/
|
|
20
20
|
export type LoraParam = null | boolean | number | string | LoraParam[] | {
|
|
21
21
|
[key: string]: LoraParam;
|
|
22
|
-
} | LoraDate | LoraTime | LoraLocalTime | LoraDateTime | LoraLocalDateTime | LoraDuration | LoraPoint;
|
|
22
|
+
} | LoraDate | LoraTime | LoraLocalTime | LoraDateTime | LoraLocalDateTime | LoraDuration | LoraPoint | LoraVector;
|
|
23
23
|
export type LoraParams = Record<string, LoraParam>;
|
|
24
24
|
export interface LoraNode {
|
|
25
25
|
kind: "node";
|
|
@@ -144,9 +144,30 @@ export interface LoraWgs84Point3D {
|
|
|
144
144
|
* `crs` discriminator (or the `isPoint` guard plus `point.srid`).
|
|
145
145
|
*/
|
|
146
146
|
export type LoraPoint = LoraCartesianPoint | LoraCartesianPoint3D | LoraWgs84Point | LoraWgs84Point3D;
|
|
147
|
+
/**
|
|
148
|
+
* Canonical coordinate type emitted for every VECTOR value returned by
|
|
149
|
+
* the engine. Aliases (`FLOAT`, `INT`, `SIGNED INTEGER`, …) are accepted
|
|
150
|
+
* by the `vector()` constructor on input but normalised to one of these
|
|
151
|
+
* six tags on the wire.
|
|
152
|
+
*/
|
|
153
|
+
export type LoraVectorCoordinateType = "FLOAT64" | "FLOAT32" | "INTEGER" | "INTEGER32" | "INTEGER16" | "INTEGER8";
|
|
154
|
+
/**
|
|
155
|
+
* Tagged VECTOR value.
|
|
156
|
+
*
|
|
157
|
+
* `values.length` always equals `dimension`. Values are rendered as JS
|
|
158
|
+
* numbers regardless of the underlying coordinate type — precision for
|
|
159
|
+
* small-integer vectors is preserved because INTEGER* types always fit
|
|
160
|
+
* in an `f64` mantissa.
|
|
161
|
+
*/
|
|
162
|
+
export interface LoraVector {
|
|
163
|
+
kind: "vector";
|
|
164
|
+
dimension: number;
|
|
165
|
+
coordinateType: LoraVectorCoordinateType;
|
|
166
|
+
values: number[];
|
|
167
|
+
}
|
|
147
168
|
export type LoraValue = null | boolean | number | string | LoraValue[] | {
|
|
148
169
|
[key: string]: LoraValue;
|
|
149
|
-
} | LoraNode | LoraRelationship | LoraPath | LoraDate | LoraTime | LoraLocalTime | LoraDateTime | LoraLocalDateTime | LoraDuration | LoraPoint;
|
|
170
|
+
} | LoraNode | LoraRelationship | LoraPath | LoraDate | LoraTime | LoraLocalTime | LoraDateTime | LoraLocalDateTime | LoraDuration | LoraPoint | LoraVector;
|
|
150
171
|
export type QueryRow<T extends Record<string, LoraValue> = Record<string, LoraValue>> = T;
|
|
151
172
|
export interface QueryResult<T extends Record<string, LoraValue> = Record<string, LoraValue>> {
|
|
152
173
|
columns: string[];
|
|
@@ -156,6 +177,7 @@ export declare function isNode(v: LoraValue): v is LoraNode;
|
|
|
156
177
|
export declare function isRelationship(v: LoraValue): v is LoraRelationship;
|
|
157
178
|
export declare function isPath(v: LoraValue): v is LoraPath;
|
|
158
179
|
export declare function isPoint(v: LoraValue): v is LoraPoint;
|
|
180
|
+
export declare function isVector(v: LoraValue): v is LoraVector;
|
|
159
181
|
export declare function isTemporal(v: LoraValue): v is LoraTemporal;
|
|
160
182
|
export declare const date: (iso: string) => LoraDate;
|
|
161
183
|
export declare const time: (iso: string) => LoraTime;
|
|
@@ -163,6 +185,12 @@ export declare const localtime: (iso: string) => LoraLocalTime;
|
|
|
163
185
|
export declare const datetime: (iso: string) => LoraDateTime;
|
|
164
186
|
export declare const localdatetime: (iso: string) => LoraLocalDateTime;
|
|
165
187
|
export declare const duration: (iso: string) => LoraDuration;
|
|
188
|
+
/**
|
|
189
|
+
* Build a `LoraVector` parameter value. Mirrors the on-wire tagged
|
|
190
|
+
* shape the engine emits, so round-trips (receive from a query, pass
|
|
191
|
+
* back into the next query) work without any conversion.
|
|
192
|
+
*/
|
|
193
|
+
export declare const vector: (values: number[], dimension: number, coordinateType: LoraVectorCoordinateType) => LoraVector;
|
|
166
194
|
export declare const cartesian: (x: number, y: number) => LoraCartesianPoint;
|
|
167
195
|
export declare const cartesian3d: (x: number, y: number, z: number) => LoraCartesianPoint3D;
|
|
168
196
|
export declare const wgs84: (longitude: number, latitude: number) => LoraWgs84Point;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../ts/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GACjB,IAAI,GACJ,OAAO,GACP,MAAM,GACN,MAAM,GACN,SAAS,EAAE,GACX;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC5B,QAAQ,GACR,QAAQ,GACR,aAAa,GACb,YAAY,GACZ,iBAAiB,GACjB,YAAY,GACZ,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../ts/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -13,11 +13,12 @@
|
|
|
13
13
|
* the copies drift — do not edit the per-package copies directly.
|
|
14
14
|
*/
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
exports.LoraError = exports.wgs84_3d = exports.wgs84 = exports.cartesian3d = exports.cartesian = exports.duration = exports.localdatetime = exports.datetime = exports.localtime = exports.time = exports.date = void 0;
|
|
16
|
+
exports.LoraError = exports.wgs84_3d = exports.wgs84 = exports.cartesian3d = exports.cartesian = exports.vector = exports.duration = exports.localdatetime = exports.datetime = exports.localtime = exports.time = exports.date = void 0;
|
|
17
17
|
exports.isNode = isNode;
|
|
18
18
|
exports.isRelationship = isRelationship;
|
|
19
19
|
exports.isPath = isPath;
|
|
20
20
|
exports.isPoint = isPoint;
|
|
21
|
+
exports.isVector = isVector;
|
|
21
22
|
exports.isTemporal = isTemporal;
|
|
22
23
|
exports.wrapError = wrapError;
|
|
23
24
|
// ---------------------------------------------------------------------------
|
|
@@ -35,6 +36,9 @@ function isPath(v) {
|
|
|
35
36
|
function isPoint(v) {
|
|
36
37
|
return typeof v === "object" && v !== null && !Array.isArray(v) && v.kind === "point";
|
|
37
38
|
}
|
|
39
|
+
function isVector(v) {
|
|
40
|
+
return typeof v === "object" && v !== null && !Array.isArray(v) && v.kind === "vector";
|
|
41
|
+
}
|
|
38
42
|
function isTemporal(v) {
|
|
39
43
|
if (typeof v !== "object" || v === null || Array.isArray(v))
|
|
40
44
|
return false;
|
|
@@ -61,6 +65,13 @@ const localdatetime = (iso) => ({ kind: "localdatetime", iso });
|
|
|
61
65
|
exports.localdatetime = localdatetime;
|
|
62
66
|
const duration = (iso) => ({ kind: "duration", iso });
|
|
63
67
|
exports.duration = duration;
|
|
68
|
+
/**
|
|
69
|
+
* Build a `LoraVector` parameter value. Mirrors the on-wire tagged
|
|
70
|
+
* shape the engine emits, so round-trips (receive from a query, pass
|
|
71
|
+
* back into the next query) work without any conversion.
|
|
72
|
+
*/
|
|
73
|
+
const vector = (values, dimension, coordinateType) => ({ kind: "vector", dimension, coordinateType, values });
|
|
74
|
+
exports.vector = vector;
|
|
64
75
|
const cartesian = (x, y) => ({
|
|
65
76
|
kind: "point",
|
|
66
77
|
srid: 7203,
|
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":";AAAA;;;;;;;;;;;;GAYG;;;AAgRH,wBAEC;AAED,wCAEC;AAED,wBAEC;AAED,0BAEC;AAED,4BAEC;AAED,gCAWC;AAiHD,8BAOC;AA3JD,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E,SAAgB,MAAM,CAAC,CAAY;IACjC,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAK,CAAwB,CAAC,IAAI,KAAK,MAAM,CAAC;AAC/G,CAAC;AAED,SAAgB,cAAc,CAAC,CAAY;IACzC,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAK,CAAwB,CAAC,IAAI,KAAK,cAAc,CAAC;AACvH,CAAC;AAED,SAAgB,MAAM,CAAC,CAAY;IACjC,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAK,CAAwB,CAAC,IAAI,KAAK,MAAM,CAAC;AAC/G,CAAC;AAED,SAAgB,OAAO,CAAC,CAAY;IAClC,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAK,CAAwB,CAAC,IAAI,KAAK,OAAO,CAAC;AAChH,CAAC;AAED,SAAgB,QAAQ,CAAC,CAAY;IACnC,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAK,CAAwB,CAAC,IAAI,KAAK,QAAQ,CAAC;AACjH,CAAC;AAED,SAAgB,UAAU,CAAC,CAAY;IACrC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1E,MAAM,IAAI,GAAI,CAAwB,CAAC,IAAI,CAAC;IAC5C,OAAO,CACL,IAAI,KAAK,MAAM;QACf,IAAI,KAAK,MAAM;QACf,IAAI,KAAK,WAAW;QACpB,IAAI,KAAK,UAAU;QACnB,IAAI,KAAK,eAAe;QACxB,IAAI,KAAK,UAAU,CACpB,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAEvE,MAAM,IAAI,GAAG,CAAC,GAAW,EAAY,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAA1D,QAAA,IAAI,QAAsD;AAChE,MAAM,IAAI,GAAG,CAAC,GAAW,EAAY,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAA1D,QAAA,IAAI,QAAsD;AAChE,MAAM,SAAS,GAAG,CAAC,GAAW,EAAiB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;AAAzE,QAAA,SAAS,aAAgE;AAC/E,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAgB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;AAAtE,QAAA,QAAQ,YAA8D;AAC5E,MAAM,aAAa,GAAG,CAAC,GAAW,EAAqB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC;AAArF,QAAA,aAAa,iBAAwE;AAC3F,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAgB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;AAAtE,QAAA,QAAQ,YAA8D;AAEnF;;;;GAIG;AACI,MAAM,MAAM,GAAG,CACpB,MAAgB,EAChB,SAAiB,EACjB,cAAwC,EAC5B,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC;AAJ5D,QAAA,MAAM,UAIsD;AAElE,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,CAAS,EAAsB,EAAE,CAAC,CAAC;IACtE,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,IAAI;IACV,GAAG,EAAE,WAAW;IAChB,CAAC;IACD,CAAC;CACF,CAAC,CAAC;AANU,QAAA,SAAS,aAMnB;AAEI,MAAM,WAAW,GAAG,CACzB,CAAS,EACT,CAAS,EACT,CAAS,EACa,EAAE,CAAC,CAAC;IAC1B,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,IAAI;IACV,GAAG,EAAE,cAAc;IACnB,CAAC;IACD,CAAC;IACD,CAAC;CACF,CAAC,CAAC;AAXU,QAAA,WAAW,eAWrB;AAEI,MAAM,KAAK,GAAG,CACnB,SAAiB,EACjB,QAAgB,EACA,EAAE,CAAC,CAAC;IACpB,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,IAAI;IACV,GAAG,EAAE,WAAW;IAChB,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,QAAQ;IACX,SAAS;IACT,QAAQ;CACT,CAAC,CAAC;AAXU,QAAA,KAAK,SAWf;AAEI,MAAM,QAAQ,GAAG,CACtB,SAAiB,EACjB,QAAgB,EAChB,MAAc,EACI,EAAE,CAAC,CAAC;IACtB,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,IAAI;IACV,GAAG,EAAE,WAAW;IAChB,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,QAAQ;IACX,CAAC,EAAE,MAAM;IACT,SAAS;IACT,QAAQ;IACR,MAAM;CACP,CAAC,CAAC;AAdU,QAAA,QAAQ,YAclB;AAoBH;;;GAGG;AACH,MAAa,SAAU,SAAQ,KAAK;IAClB,IAAI,CAAgB;IAEpC,YAAY,OAAe,EAAE,OAAsB,SAAS;QAC1D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AARD,8BAQC;AAED,MAAM,eAAe,GAAG,qDAAqD,CAAC;AAE9E;;;;GAIG;AACH,SAAgB,SAAS,CAAC,GAAY;IACpC,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC;QAAE,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC;IAC1E,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,KAAK,CAAC,CAAC,CAAkB,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loradb/lora-node",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Node.js / TypeScript bindings for the Lora in-memory graph database",
|
|
5
5
|
"license": "BUSL-1.1",
|
|
6
6
|
"author": "LoraDB, Inc.",
|
|
@@ -19,9 +19,9 @@
|
|
|
19
19
|
"graph",
|
|
20
20
|
"cypher",
|
|
21
21
|
"database",
|
|
22
|
+
"embedded",
|
|
22
23
|
"napi",
|
|
23
|
-
"n-api"
|
|
24
|
-
"neo4j"
|
|
24
|
+
"n-api"
|
|
25
25
|
],
|
|
26
26
|
"main": "dist/index.js",
|
|
27
27
|
"types": "dist/index.d.ts",
|
|
@@ -89,10 +89,10 @@
|
|
|
89
89
|
"vitest": "^2.1.1"
|
|
90
90
|
},
|
|
91
91
|
"optionalDependencies": {
|
|
92
|
-
"@loradb/lora-node-linux-x64-gnu": "0.
|
|
93
|
-
"@loradb/lora-node-linux-arm64-gnu": "0.
|
|
94
|
-
"@loradb/lora-node-darwin-x64": "0.
|
|
95
|
-
"@loradb/lora-node-darwin-arm64": "0.
|
|
96
|
-
"@loradb/lora-node-win32-x64-msvc": "0.
|
|
92
|
+
"@loradb/lora-node-linux-x64-gnu": "0.3.0",
|
|
93
|
+
"@loradb/lora-node-linux-arm64-gnu": "0.3.0",
|
|
94
|
+
"@loradb/lora-node-darwin-x64": "0.3.0",
|
|
95
|
+
"@loradb/lora-node-darwin-arm64": "0.3.0",
|
|
96
|
+
"@loradb/lora-node-win32-x64-msvc": "0.3.0"
|
|
97
97
|
}
|
|
98
98
|
}
|
package/ts/native.d.ts
CHANGED
|
@@ -11,6 +11,13 @@ export interface NativeQueryResult {
|
|
|
11
11
|
rows: Array<Record<string, unknown>>;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
+
export interface NativeSnapshotMeta {
|
|
15
|
+
formatVersion: number;
|
|
16
|
+
nodeCount: number;
|
|
17
|
+
relationshipCount: number;
|
|
18
|
+
walLsn: number | null;
|
|
19
|
+
}
|
|
20
|
+
|
|
14
21
|
export declare class Database {
|
|
15
22
|
constructor();
|
|
16
23
|
/** Non-blocking: runs on the libuv threadpool, returns a Promise. */
|
|
@@ -21,4 +28,8 @@ export declare class Database {
|
|
|
21
28
|
clear(): void;
|
|
22
29
|
nodeCount(): number;
|
|
23
30
|
relationshipCount(): number;
|
|
31
|
+
/** Atomic save. Synchronous under the store mutex. */
|
|
32
|
+
saveSnapshot(path: string): NativeSnapshotMeta;
|
|
33
|
+
/** Replace the current graph with the snapshot at `path`. */
|
|
34
|
+
loadSnapshot(path: string): NativeSnapshotMeta;
|
|
24
35
|
}
|