@loradb/lora-node 0.5.6 → 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 +81 -20
- package/dist/decode.d.ts +29 -0
- package/dist/decode.d.ts.map +1 -0
- package/dist/decode.js +341 -0
- package/dist/decode.js.map +1 -0
- package/dist/index.d.ts +111 -18
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +142 -48
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +81 -7
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +13 -3
- package/dist/types.js.map +1 -1
- package/package.json +11 -10
- package/ts/native.d.ts +31 -7
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.
|
|
@@ -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 | LoraVector;
|
|
22
|
+
} | LoraDate | LoraTime | LoraLocalTime | LoraDateTime | LoraLocalDateTime | LoraDuration | LoraPoint | LoraVector | LoraBinary;
|
|
23
23
|
export type LoraParams = Record<string, LoraParam>;
|
|
24
24
|
export interface LoraNode {
|
|
25
25
|
kind: "node";
|
|
@@ -165,19 +165,71 @@ export interface LoraVector {
|
|
|
165
165
|
coordinateType: LoraVectorCoordinateType;
|
|
166
166
|
values: number[];
|
|
167
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* Segmented binary/blob value. Each segment is a byte array; concatenate
|
|
170
|
+
* segments in order to reconstruct the logical binary value.
|
|
171
|
+
*/
|
|
172
|
+
export interface LoraBinary {
|
|
173
|
+
kind: "binary";
|
|
174
|
+
length: number;
|
|
175
|
+
segments: number[][];
|
|
176
|
+
}
|
|
168
177
|
export type LoraValue = null | boolean | number | string | LoraValue[] | {
|
|
169
178
|
[key: string]: LoraValue;
|
|
170
|
-
} | LoraNode | LoraRelationship | LoraPath | LoraDate | LoraTime | LoraLocalTime | LoraDateTime | LoraLocalDateTime | LoraDuration | LoraPoint | LoraVector;
|
|
179
|
+
} | LoraNode | LoraRelationship | LoraPath | LoraDate | LoraTime | LoraLocalTime | LoraDateTime | LoraLocalDateTime | LoraDuration | LoraPoint | LoraVector | LoraBinary;
|
|
171
180
|
export type QueryRow<T extends Record<string, LoraValue> = Record<string, LoraValue>> = T;
|
|
172
181
|
export interface QueryResult<T extends Record<string, LoraValue> = Record<string, LoraValue>> {
|
|
173
182
|
columns: string[];
|
|
174
183
|
rows: QueryRow<T>[];
|
|
175
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
|
+
}
|
|
176
227
|
export declare function isNode(v: LoraValue): v is LoraNode;
|
|
177
228
|
export declare function isRelationship(v: LoraValue): v is LoraRelationship;
|
|
178
229
|
export declare function isPath(v: LoraValue): v is LoraPath;
|
|
179
230
|
export declare function isPoint(v: LoraValue): v is LoraPoint;
|
|
180
231
|
export declare function isVector(v: LoraValue): v is LoraVector;
|
|
232
|
+
export declare function isBinary(v: LoraValue): v is LoraBinary;
|
|
181
233
|
export declare function isTemporal(v: LoraValue): v is LoraTemporal;
|
|
182
234
|
export declare const date: (iso: string) => LoraDate;
|
|
183
235
|
export declare const time: (iso: string) => LoraTime;
|
|
@@ -191,19 +243,41 @@ export declare const duration: (iso: string) => LoraDuration;
|
|
|
191
243
|
* back into the next query) work without any conversion.
|
|
192
244
|
*/
|
|
193
245
|
export declare const vector: (values: number[], dimension: number, coordinateType: LoraVectorCoordinateType) => LoraVector;
|
|
246
|
+
export declare const binary: (segments: number[][]) => LoraBinary;
|
|
194
247
|
export declare const cartesian: (x: number, y: number) => LoraCartesianPoint;
|
|
195
248
|
export declare const cartesian3d: (x: number, y: number, z: number) => LoraCartesianPoint3D;
|
|
196
249
|
export declare const wgs84: (longitude: number, latitude: number) => LoraWgs84Point;
|
|
197
250
|
export declare const wgs84_3d: (longitude: number, latitude: number, height: number) => LoraWgs84Point3D;
|
|
198
251
|
/**
|
|
199
|
-
* 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
|
|
200
275
|
*
|
|
201
|
-
* -
|
|
202
|
-
* - `INVALID_PARAMS` — a param value could not be mapped to a Lora value
|
|
276
|
+
* Binding-only:
|
|
203
277
|
* - `WORKER_ERROR` — worker transport / lifecycle failure (wasm worker only)
|
|
204
278
|
* - `UNKNOWN` — fall-through for unrecognised error shapes
|
|
205
279
|
*/
|
|
206
|
-
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";
|
|
207
281
|
/**
|
|
208
282
|
* Error thrown by `Database.execute` when Lora parsing, analysis, or
|
|
209
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
|
@@ -7,18 +7,19 @@
|
|
|
7
7
|
* spatial values are tagged so TypeScript can narrow safely after a
|
|
8
8
|
* query runs.
|
|
9
9
|
*
|
|
10
|
-
* Canonical source: `crates/shared-ts/types.ts`. Each JS-facing package
|
|
10
|
+
* Canonical source: `crates/bindings/shared-ts/types.ts`. Each JS-facing package
|
|
11
11
|
* (`lora-node`, `lora-wasm`) copies this file into its own `ts/` dir
|
|
12
12
|
* via its `sync:types` npm script. The `verify:types` script fails CI if
|
|
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.vector = 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.binary = 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
21
|
exports.isVector = isVector;
|
|
22
|
+
exports.isBinary = isBinary;
|
|
22
23
|
exports.isTemporal = isTemporal;
|
|
23
24
|
exports.wrapError = wrapError;
|
|
24
25
|
// ---------------------------------------------------------------------------
|
|
@@ -39,6 +40,9 @@ function isPoint(v) {
|
|
|
39
40
|
function isVector(v) {
|
|
40
41
|
return typeof v === "object" && v !== null && !Array.isArray(v) && v.kind === "vector";
|
|
41
42
|
}
|
|
43
|
+
function isBinary(v) {
|
|
44
|
+
return typeof v === "object" && v !== null && !Array.isArray(v) && v.kind === "binary";
|
|
45
|
+
}
|
|
42
46
|
function isTemporal(v) {
|
|
43
47
|
if (typeof v !== "object" || v === null || Array.isArray(v))
|
|
44
48
|
return false;
|
|
@@ -72,6 +76,12 @@ exports.duration = duration;
|
|
|
72
76
|
*/
|
|
73
77
|
const vector = (values, dimension, coordinateType) => ({ kind: "vector", dimension, coordinateType, values });
|
|
74
78
|
exports.vector = vector;
|
|
79
|
+
const binary = (segments) => ({
|
|
80
|
+
kind: "binary",
|
|
81
|
+
length: segments.reduce((sum, segment) => sum + segment.length, 0),
|
|
82
|
+
segments,
|
|
83
|
+
});
|
|
84
|
+
exports.binary = binary;
|
|
75
85
|
const cartesian = (x, y) => ({
|
|
76
86
|
kind: "point",
|
|
77
87
|
srid: 7203,
|
|
@@ -124,7 +134,7 @@ class LoraError extends Error {
|
|
|
124
134
|
}
|
|
125
135
|
}
|
|
126
136
|
exports.LoraError = LoraError;
|
|
127
|
-
const ERROR_PREFIX_RE = /^(
|
|
137
|
+
const ERROR_PREFIX_RE = /^(LORA_[A-Z_]+|WORKER_ERROR):\s*(.*)$/s;
|
|
128
138
|
/**
|
|
129
139
|
* Normalise a thrown value into a `LoraError` with a narrowed `code`
|
|
130
140
|
* 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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loradb/lora-node",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.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.",
|
|
@@ -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-node"
|
|
11
|
+
"directory": "crates/bindings/lora-node"
|
|
12
12
|
},
|
|
13
13
|
"bugs": {
|
|
14
14
|
"url": "https://github.com/lora-db/lora/issues"
|
|
@@ -64,8 +64,8 @@
|
|
|
64
64
|
"node": ">=18"
|
|
65
65
|
},
|
|
66
66
|
"scripts": {
|
|
67
|
-
"sync:types": "node -e \"require('fs').copyFileSync('../shared-ts/
|
|
68
|
-
"verify:types": "node -e \"const fs=require('fs'); const a=fs.readFileSync('../shared-ts/
|
|
67
|
+
"sync:types": "node -e \"const fs=require('fs'); for (const f of ['types.ts','decode.ts']) fs.copyFileSync('../shared-ts/' + f, 'ts/' + f);\"",
|
|
68
|
+
"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);} } \"",
|
|
69
69
|
"prebuild": "npm run sync:types",
|
|
70
70
|
"pretypecheck": "npm run sync:types",
|
|
71
71
|
"pretest": "npm run sync:types",
|
|
@@ -76,9 +76,10 @@
|
|
|
76
76
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
77
77
|
"test": "vitest run",
|
|
78
78
|
"test:watch": "vitest",
|
|
79
|
+
"bench": "node bench/run.mjs",
|
|
79
80
|
"artifacts": "napi artifacts",
|
|
80
81
|
"create-npm-dirs": "napi create-npm-dir -t .",
|
|
81
|
-
"copy-license": "node -e \"const fs=require('fs'); try { fs.copyFileSync('
|
|
82
|
+
"copy-license": "node -e \"const fs=require('fs'); try { fs.copyFileSync('../../../LICENSE','LICENSE'); } catch (e) { if (e.code !== 'ENOENT') throw e; }\"",
|
|
82
83
|
"prepack": "npm run sync:types && npm run copy-license && npm run build",
|
|
83
84
|
"pack:dry": "npm pack --dry-run"
|
|
84
85
|
},
|
|
@@ -89,10 +90,10 @@
|
|
|
89
90
|
"vitest": "^2.1.1"
|
|
90
91
|
},
|
|
91
92
|
"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.
|
|
93
|
+
"@loradb/lora-node-linux-x64-gnu": "0.8.0",
|
|
94
|
+
"@loradb/lora-node-linux-arm64-gnu": "0.8.0",
|
|
95
|
+
"@loradb/lora-node-darwin-x64": "0.8.0",
|
|
96
|
+
"@loradb/lora-node-darwin-arm64": "0.8.0",
|
|
97
|
+
"@loradb/lora-node-win32-x64-msvc": "0.8.0"
|
|
97
98
|
}
|
|
98
99
|
}
|
package/ts/native.d.ts
CHANGED
|
@@ -18,18 +18,39 @@ export interface NativeSnapshotMeta {
|
|
|
18
18
|
walLsn: number | null;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
+
export type NativeSnapshotOptions = unknown;
|
|
22
|
+
|
|
21
23
|
export declare class Database {
|
|
22
24
|
constructor(
|
|
23
25
|
databaseName?: string | null,
|
|
24
26
|
databaseDir?: string | null,
|
|
25
27
|
syncMode?: "group" | "perCommit" | "per_commit" | null,
|
|
26
28
|
groupSyncIntervalMs?: number | null,
|
|
29
|
+
walDir?: string | null,
|
|
30
|
+
snapshotDir?: string | null,
|
|
31
|
+
snapshotEveryCommits?: number | null,
|
|
32
|
+
snapshotKeepOld?: number | null,
|
|
33
|
+
snapshotOptions?: NativeSnapshotOptions | null,
|
|
27
34
|
);
|
|
28
|
-
/**
|
|
35
|
+
/**
|
|
36
|
+
* Non-blocking: runs on the libuv threadpool, returns a Promise.
|
|
37
|
+
* Resolves to the encoded result Buffer; the TS wrapper decodes it
|
|
38
|
+
* into the public `{columns, rows}` shape.
|
|
39
|
+
*/
|
|
29
40
|
execute(
|
|
30
41
|
query: string,
|
|
31
42
|
params?: Record<string, unknown> | null,
|
|
32
|
-
): Promise<
|
|
43
|
+
): Promise<Buffer>;
|
|
44
|
+
/** Compile a query and return its plan without executing it. */
|
|
45
|
+
explain(
|
|
46
|
+
query: string,
|
|
47
|
+
params?: Record<string, unknown> | null,
|
|
48
|
+
): Promise<unknown>;
|
|
49
|
+
/** Execute a query and return the plan plus runtime metrics. PROFILE executes writes. */
|
|
50
|
+
profile(
|
|
51
|
+
query: string,
|
|
52
|
+
params?: Record<string, unknown> | null,
|
|
53
|
+
): Promise<unknown>;
|
|
33
54
|
openStream(
|
|
34
55
|
query: string,
|
|
35
56
|
params?: Record<string, unknown> | null,
|
|
@@ -40,7 +61,7 @@ export declare class Database {
|
|
|
40
61
|
transaction(
|
|
41
62
|
statements: Array<{ query: string; params?: Record<string, unknown> | null }>,
|
|
42
63
|
mode?: "read_write" | "read_only" | "readwrite" | "readonly" | "rw" | "ro" | null,
|
|
43
|
-
): Promise<
|
|
64
|
+
): Promise<Buffer[]>;
|
|
44
65
|
/** Force pending WAL bytes and the portable archive mirror to disk. */
|
|
45
66
|
sync(): Promise<void>;
|
|
46
67
|
clear(): Promise<void>;
|
|
@@ -48,11 +69,14 @@ export declare class Database {
|
|
|
48
69
|
relationshipCount(): number;
|
|
49
70
|
dispose(): void;
|
|
50
71
|
/** Atomic save. Synchronous under the store read lock. */
|
|
51
|
-
saveSnapshot(path: string): NativeSnapshotMeta;
|
|
72
|
+
saveSnapshot(path: string, options?: NativeSnapshotOptions | null): NativeSnapshotMeta;
|
|
52
73
|
/** Serialize the current graph into snapshot bytes. */
|
|
53
|
-
|
|
74
|
+
saveSnapshotBuffer(options?: NativeSnapshotOptions | null): Buffer;
|
|
54
75
|
/** Replace the current graph with the snapshot at `path`. */
|
|
55
|
-
loadSnapshot(path: string): NativeSnapshotMeta;
|
|
76
|
+
loadSnapshot(path: string, options?: NativeSnapshotOptions | null): NativeSnapshotMeta;
|
|
56
77
|
/** Replace the current graph with snapshot bytes. */
|
|
57
|
-
|
|
78
|
+
loadSnapshotBuffer(
|
|
79
|
+
bytes: Uint8Array | Buffer,
|
|
80
|
+
options?: NativeSnapshotOptions | null,
|
|
81
|
+
): NativeSnapshotMeta;
|
|
58
82
|
}
|