@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/dist/index.d.ts CHANGED
@@ -5,7 +5,7 @@
5
5
  * native layer, which runs each query on the libuv threadpool so the JS
6
6
  * event loop stays responsive. This file only narrows the `unknown`-valued
7
7
  * native surface into the strongly-typed `QueryResult<T>` / `LoraParams`
8
- * shapes defined in the shared TS contract (`crates/shared-ts/types.ts`).
8
+ * shapes defined in the shared TS contract (`crates/bindings/shared-ts/types.ts`).
9
9
  *
10
10
  * **Initialization is async-only.** The canonical entry point is
11
11
  * `createDatabase(...)`, optionally with archive-backed persistence. There is no
@@ -14,7 +14,7 @@
14
14
  */
15
15
  import { Buffer } from "node:buffer";
16
16
  import { Readable } from "node:stream";
17
- import type { LoraParams, LoraValue, QueryResult } from "./types.js";
17
+ import type { LoraParams, LoraQueryPlan, LoraQueryProfile, LoraValue, QueryResult } from "./types.js";
18
18
  declare const NativeDatabase: typeof import("./native.js").Database;
19
19
  export * from "./types.js";
20
20
  /**
@@ -29,16 +29,53 @@ export interface SnapshotMeta {
29
29
  relationshipCount: number;
30
30
  walLsn: number | null;
31
31
  }
32
+ export type SnapshotCompression = "none" | "gzip" | {
33
+ format: "none";
34
+ } | {
35
+ format: "gzip";
36
+ level?: number;
37
+ };
38
+ export interface SnapshotPasswordParams {
39
+ memoryCostKib?: number;
40
+ timeCost?: number;
41
+ parallelism?: number;
42
+ }
43
+ export type SnapshotEncryption = {
44
+ type?: "password" | "passphrase";
45
+ keyId?: string;
46
+ password: string;
47
+ params?: SnapshotPasswordParams;
48
+ } | {
49
+ type: "key" | "rawKey" | "raw_key";
50
+ keyId?: string;
51
+ key: number[];
52
+ };
53
+ export interface SnapshotCodecOptions {
54
+ compression?: SnapshotCompression;
55
+ encryption?: SnapshotEncryption | null;
56
+ }
57
+ export interface SnapshotLoadOptions {
58
+ credentials?: SnapshotEncryption | null;
59
+ encryption?: SnapshotEncryption | null;
60
+ }
32
61
  export type NodeSnapshotChunk = string | Uint8Array | ArrayBuffer | Buffer;
33
62
  export type NodeSnapshotSource = string | URL | Uint8Array | ArrayBuffer | Buffer | Readable | ReadableStream<NodeSnapshotChunk> | AsyncIterable<NodeSnapshotChunk>;
34
- export type NodeSnapshotSaveFormat = "binary" | "base64";
35
- export type NodeSnapshotSaveOptions = {
63
+ export type NodeSnapshotSaveFormat = "buffer" | "binary" | "uint8Array" | "arrayBuffer" | "base64" | "stream" | "path";
64
+ export type NodeSnapshotSaveOptions = ({
65
+ format?: "buffer" | "binary";
66
+ } & SnapshotCodecOptions) | ({
67
+ format: "uint8Array";
68
+ } & SnapshotCodecOptions) | ({
69
+ format: "arrayBuffer";
70
+ } & SnapshotCodecOptions) | ({
71
+ format: "base64";
72
+ } & SnapshotCodecOptions) | ({
73
+ format: "stream";
74
+ } & SnapshotCodecOptions) | ({
36
75
  format: "path";
37
76
  path: string | URL;
38
- } | {
39
- format: NodeSnapshotSaveFormat;
40
- };
41
- export type NodeSnapshotSaveTarget = string | URL | NodeSnapshotSaveFormat | NodeSnapshotSaveOptions;
77
+ } & SnapshotCodecOptions);
78
+ export type NodeSnapshotSaveTarget = string | URL | NodeSnapshotSaveOptions | SnapshotCodecOptions;
42
79
  export interface CreateDatabaseOptions {
43
80
  databaseDir?: string;
44
81
  /**
@@ -56,6 +93,29 @@ export interface CreateDatabaseOptions {
56
93
  */
57
94
  groupSyncIntervalMs?: number;
58
95
  }
96
+ export interface WalDatabaseOptions {
97
+ /**
98
+ * Explicit WAL directory. Use `openWalDatabase` for this lower-level
99
+ * persistent storage shape.
100
+ * Pair with `snapshotDir` for managed snapshots.
101
+ */
102
+ walDir: string;
103
+ /** Directory for managed checkpoint snapshots. Requires `walDir`. */
104
+ snapshotDir?: string;
105
+ /**
106
+ * Automatically checkpoint after this many committed WAL transactions.
107
+ * Omit or pass 0 to keep checkpoints manual.
108
+ */
109
+ snapshotEveryCommits?: number;
110
+ /** Number of older managed snapshot files to retain. Defaults to 1. */
111
+ snapshotKeepOld?: number;
112
+ /** Compression/encryption options used for managed snapshots. */
113
+ snapshotOptions?: SnapshotCodecOptions;
114
+ /** Durability mode for WAL commits. */
115
+ syncMode?: "group" | "perCommit";
116
+ /** Background fsync cadence for `syncMode: "group"`, in milliseconds. */
117
+ groupSyncIntervalMs?: number;
118
+ }
59
119
  export type TransactionMode = "read_write" | "read_only" | "readwrite" | "readonly" | "rw" | "ro";
60
120
  export interface TransactionStatement {
61
121
  query: string;
@@ -85,9 +145,29 @@ declare class DatabaseImpl {
85
145
  /**
86
146
  * Execute a Lora query on the libuv threadpool. Returns a Promise that
87
147
  * resolves with `{ columns, rows }`; errors surface as `LoraError`
88
- * with a narrowed `code` (`LORA_ERROR` / `INVALID_PARAMS`).
148
+ * with a narrowed `code` from the `LoraErrorCode` union (e.g.
149
+ * `LORA_PARSE`, `LORA_INVALID_PARAMS`, `LORA_INTERNAL`).
89
150
  */
90
151
  execute<T extends Record<string, LoraValue> = Record<string, LoraValue>>(query: string, params?: LoraParams): Promise<QueryResult<T>>;
152
+ /**
153
+ * Compile a query and return its execution plan without running it.
154
+ *
155
+ * This is a separate API method from `execute()`; it never invokes the
156
+ * executor, so calling `explain()` on a mutating query (`CREATE`,
157
+ * `MERGE`, `SET`, `DELETE`, `REMOVE`) leaves the graph untouched.
158
+ * Errors surface with the same `LoraError` shape as `execute()`.
159
+ */
160
+ explain(query: string, params?: LoraParams): Promise<LoraQueryPlan>;
161
+ /**
162
+ * Execute a query and return the plan plus runtime metrics.
163
+ *
164
+ * **`profile()` runs the query for real.** Mutating queries
165
+ * (`CREATE`, `MERGE`, `SET`, `DELETE`, `REMOVE`) produce the same
166
+ * side effects as `execute()`: the WAL is written, snapshots observe
167
+ * the commit, and the live store advances. Use `explain()` if you
168
+ * want to inspect a mutating plan without running it.
169
+ */
170
+ profile(query: string, params?: LoraParams): Promise<LoraQueryProfile>;
91
171
  /**
92
172
  * Return an async row iterator for a query.
93
173
  *
@@ -129,27 +209,35 @@ declare class DatabaseImpl {
129
209
  * process. New operations after disposal reject with `database is closed`.
130
210
  */
131
211
  dispose(): void;
132
- saveSnapshot(format: "binary"): Promise<Buffer>;
133
- saveSnapshot(format: "base64"): Promise<string>;
212
+ saveSnapshot(): Promise<Buffer>;
213
+ saveSnapshot(options: SnapshotCodecOptions): Promise<Buffer>;
134
214
  saveSnapshot(path: string | URL): Promise<SnapshotMeta>;
215
+ saveSnapshot(path: string | URL, options: SnapshotCodecOptions): Promise<SnapshotMeta>;
135
216
  saveSnapshot(options: {
136
- format: "binary";
137
- }): Promise<Buffer>;
217
+ format?: "buffer" | "binary";
218
+ } & SnapshotCodecOptions): Promise<Buffer>;
219
+ saveSnapshot(options: {
220
+ format: "uint8Array";
221
+ } & SnapshotCodecOptions): Promise<Uint8Array>;
222
+ saveSnapshot(options: {
223
+ format: "arrayBuffer";
224
+ } & SnapshotCodecOptions): Promise<ArrayBuffer>;
138
225
  saveSnapshot(options: {
139
226
  format: "base64";
140
- }): Promise<string>;
227
+ } & SnapshotCodecOptions): Promise<string>;
228
+ saveSnapshot(options: {
229
+ format: "stream";
230
+ } & SnapshotCodecOptions): Promise<Readable>;
141
231
  saveSnapshot(options: {
142
232
  format: "path";
143
233
  path: string | URL;
144
- }): Promise<SnapshotMeta>;
145
- saveSnapshotToBytes(): Promise<Buffer>;
234
+ } & SnapshotCodecOptions): Promise<SnapshotMeta>;
146
235
  /**
147
236
  * Replace the current graph state with a snapshot loaded from `path`.
148
237
  * Concurrent `execute()` calls block on the store write lock until the
149
238
  * load completes.
150
239
  */
151
- loadSnapshot(source: NodeSnapshotSource): Promise<SnapshotMeta>;
152
- loadSnapshotFromBytes(bytes: Uint8Array | ArrayBuffer | Buffer): Promise<SnapshotMeta>;
240
+ loadSnapshot(source: NodeSnapshotSource, options?: SnapshotLoadOptions): Promise<SnapshotMeta>;
153
241
  }
154
242
  /**
155
243
  * Public type for a LoraDB instance.
@@ -191,6 +279,10 @@ export type Database = DatabaseImpl;
191
279
  * const nestedPersistent = await createDatabase("app", {
192
280
  * databaseDir: "./data",
193
281
  * }); // ./data/app.loradb
282
+ * const walPersistent = await openWalDatabase({
283
+ * walDir: "./data/wal",
284
+ * snapshotDir: "./data/snapshots",
285
+ * });
194
286
  * ```
195
287
  *
196
288
  * Passing a database name enables persistence. The database name is validated
@@ -203,4 +295,5 @@ export type Database = DatabaseImpl;
203
295
  * lock to prevent split-brain writers.
204
296
  */
205
297
  export declare function createDatabase(databaseName?: string, options?: CreateDatabaseOptions): Promise<Database>;
298
+ export declare function openWalDatabase(options: WalDatabaseOptions): Promise<Database>;
206
299
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -6,7 +6,7 @@
6
6
  * native layer, which runs each query on the libuv threadpool so the JS
7
7
  * event loop stays responsive. This file only narrows the `unknown`-valued
8
8
  * native surface into the strongly-typed `QueryResult<T>` / `LoraParams`
9
- * shapes defined in the shared TS contract (`crates/shared-ts/types.ts`).
9
+ * shapes defined in the shared TS contract (`crates/bindings/shared-ts/types.ts`).
10
10
  *
11
11
  * **Initialization is async-only.** The canonical entry point is
12
12
  * `createDatabase(...)`, optionally with archive-backed persistence. There is no
@@ -32,10 +32,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
32
32
  };
33
33
  Object.defineProperty(exports, "__esModule", { value: true });
34
34
  exports.createDatabase = createDatabase;
35
+ exports.openWalDatabase = openWalDatabase;
35
36
  const node_buffer_1 = require("node:buffer");
36
37
  const node_stream_1 = require("node:stream");
37
38
  const node_url_1 = require("node:url");
38
39
  const types_js_1 = require("./types.js");
40
+ const decode_js_1 = require("./decode.js");
39
41
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
40
42
  // @ts-ignore - resolved at runtime via native.js loader
41
43
  const native_js_1 = __importDefault(require("./native.js"));
@@ -125,6 +127,16 @@ function snapshotChunkToBuffer(chunk) {
125
127
  ? node_buffer_1.Buffer.from(chunk)
126
128
  : node_buffer_1.Buffer.from(bytesToUint8Array(chunk));
127
129
  }
130
+ function snapshotBufferToUint8Array(buffer) {
131
+ const bytes = new Uint8Array(buffer.byteLength);
132
+ bytes.set(buffer);
133
+ return bytes;
134
+ }
135
+ function snapshotBufferToArrayBuffer(buffer) {
136
+ const arrayBuffer = new ArrayBuffer(buffer.byteLength);
137
+ new Uint8Array(arrayBuffer).set(buffer);
138
+ return arrayBuffer;
139
+ }
128
140
  function resolveNodeSnapshotPath(path) {
129
141
  if (path instanceof URL) {
130
142
  if (path.protocol !== "file:") {
@@ -204,6 +216,26 @@ async function resolveNodeSnapshotSource(source) {
204
216
  }
205
217
  return node_buffer_1.Buffer.from(bytesToUint8Array(source));
206
218
  }
219
+ function normalizeSnapshotCodecOptions(options) {
220
+ if (!options)
221
+ return null;
222
+ const out = {};
223
+ if ("compression" in options)
224
+ out.compression = options.compression;
225
+ if ("encryption" in options)
226
+ out.encryption = options.encryption;
227
+ return Object.keys(out).length === 0 ? null : out;
228
+ }
229
+ function normalizeSnapshotLoadOptions(options) {
230
+ if (!options)
231
+ return null;
232
+ const out = {};
233
+ if ("credentials" in options)
234
+ out.credentials = options.credentials;
235
+ if ("encryption" in options)
236
+ out.encryption = options.encryption;
237
+ return Object.keys(out).length === 0 ? null : out;
238
+ }
207
239
  /**
208
240
  * Lora graph database instance.
209
241
  *
@@ -225,12 +257,46 @@ class DatabaseImpl {
225
257
  /**
226
258
  * Execute a Lora query on the libuv threadpool. Returns a Promise that
227
259
  * resolves with `{ columns, rows }`; errors surface as `LoraError`
228
- * with a narrowed `code` (`LORA_ERROR` / `INVALID_PARAMS`).
260
+ * with a narrowed `code` from the `LoraErrorCode` union (e.g.
261
+ * `LORA_PARSE`, `LORA_INVALID_PARAMS`, `LORA_INTERNAL`).
229
262
  */
230
263
  async execute(query, params) {
231
264
  try {
232
- const raw = await this.#inner.execute(query, params ?? null);
233
- return raw;
265
+ const buf = await this.#inner.execute(query, params ?? null);
266
+ return (0, decode_js_1.decodeResult)(buf);
267
+ }
268
+ catch (err) {
269
+ throw (0, types_js_1.wrapError)(err);
270
+ }
271
+ }
272
+ /**
273
+ * Compile a query and return its execution plan without running it.
274
+ *
275
+ * This is a separate API method from `execute()`; it never invokes the
276
+ * executor, so calling `explain()` on a mutating query (`CREATE`,
277
+ * `MERGE`, `SET`, `DELETE`, `REMOVE`) leaves the graph untouched.
278
+ * Errors surface with the same `LoraError` shape as `execute()`.
279
+ */
280
+ async explain(query, params) {
281
+ try {
282
+ return (await this.#inner.explain(query, params ?? null));
283
+ }
284
+ catch (err) {
285
+ throw (0, types_js_1.wrapError)(err);
286
+ }
287
+ }
288
+ /**
289
+ * Execute a query and return the plan plus runtime metrics.
290
+ *
291
+ * **`profile()` runs the query for real.** Mutating queries
292
+ * (`CREATE`, `MERGE`, `SET`, `DELETE`, `REMOVE`) produce the same
293
+ * side effects as `execute()`: the WAL is written, snapshots observe
294
+ * the commit, and the live store advances. Use `explain()` if you
295
+ * want to inspect a mutating plan without running it.
296
+ */
297
+ async profile(query, params) {
298
+ try {
299
+ return (await this.#inner.profile(query, params ?? null));
234
300
  }
235
301
  catch (err) {
236
302
  throw (0, types_js_1.wrapError)(err);
@@ -265,7 +331,8 @@ class DatabaseImpl {
265
331
  */
266
332
  async transaction(statements, mode = "read_write") {
267
333
  try {
268
- return (await this.#inner.transaction(statements, mode));
334
+ const buffers = await this.#inner.transaction(statements, mode);
335
+ return buffers.map((buf) => (0, decode_js_1.decodeResult)(buf));
269
336
  }
270
337
  catch (err) {
271
338
  throw (0, types_js_1.wrapError)(err);
@@ -332,42 +399,42 @@ class DatabaseImpl {
332
399
  /**
333
400
  * Save the graph as a snapshot.
334
401
  *
335
- * - `saveSnapshot(path)` and `saveSnapshot({ format: "path", path })`
336
- * write atomically to a local file and return `SnapshotMeta`.
337
- * - `saveSnapshot("binary")` / `{ format: "binary" }` return a `Buffer`.
338
- * - `saveSnapshot("base64")` / `{ format: "base64" }` return base64 text.
402
+ * - `saveSnapshot()` / `{ format: "buffer" }` return a Node `Buffer`.
403
+ * - `saveSnapshot(path)` and `{ format: "path", path }` write atomically
404
+ * to a local file and return `SnapshotMeta`.
405
+ * - `{ format: "uint8Array" | "arrayBuffer" | "base64" | "stream" }`
406
+ * return in-memory snapshot data in that shape.
339
407
  */
340
- async saveSnapshot(target) {
408
+ async saveSnapshot(target, options) {
341
409
  try {
342
- if (target === "binary" || (typeof target === "object"
343
- && !(target instanceof URL)
344
- && target.format === "binary")) {
345
- return this.saveSnapshotToBytes();
410
+ if (typeof target === "string" || target instanceof URL) {
411
+ return this.#inner.saveSnapshot(resolveNodeSnapshotPath(target), normalizeSnapshotCodecOptions(options));
346
412
  }
347
- if (target === "base64" || (typeof target === "object"
348
- && !(target instanceof URL)
349
- && target.format === "base64")) {
350
- return (await this.saveSnapshotToBytes()).toString("base64");
351
- }
352
- let path;
353
- if (typeof target === "object" && !(target instanceof URL)) {
354
- if (target.format !== "path") {
355
- throw new Error(`LORA_ERROR: unsupported snapshot save format '${target.format}'`);
413
+ const saveOptions = target ?? {};
414
+ if ("format" in saveOptions && saveOptions.format === "path") {
415
+ const path = "path" in saveOptions ? saveOptions.path : undefined;
416
+ if (!(typeof path === "string" || path instanceof URL)) {
417
+ throw new Error("LORA_ERROR: snapshot path format requires a path");
356
418
  }
357
- path = target.path;
419
+ return this.#inner.saveSnapshot(resolveNodeSnapshotPath(path), normalizeSnapshotCodecOptions({ ...options, ...saveOptions }));
358
420
  }
359
- else {
360
- path = target;
421
+ const format = ("format" in saveOptions ? saveOptions.format : "buffer") ?? "buffer";
422
+ const bytes = this.#inner.saveSnapshotBuffer(normalizeSnapshotCodecOptions({ ...options, ...saveOptions }));
423
+ switch (format) {
424
+ case "buffer":
425
+ case "binary":
426
+ return bytes;
427
+ case "uint8Array":
428
+ return snapshotBufferToUint8Array(bytes);
429
+ case "arrayBuffer":
430
+ return snapshotBufferToArrayBuffer(bytes);
431
+ case "base64":
432
+ return bytes.toString("base64");
433
+ case "stream":
434
+ return node_stream_1.Readable.from([bytes]);
435
+ default:
436
+ throw new Error(`LORA_ERROR: unsupported snapshot save format '${format}'`);
361
437
  }
362
- return this.#inner.saveSnapshot(resolveNodeSnapshotPath(path));
363
- }
364
- catch (err) {
365
- throw (0, types_js_1.wrapError)(err);
366
- }
367
- }
368
- async saveSnapshotToBytes() {
369
- try {
370
- return this.#inner.saveSnapshotToBytes();
371
438
  }
372
439
  catch (err) {
373
440
  throw (0, types_js_1.wrapError)(err);
@@ -378,21 +445,14 @@ class DatabaseImpl {
378
445
  * Concurrent `execute()` calls block on the store write lock until the
379
446
  * load completes.
380
447
  */
381
- async loadSnapshot(source) {
448
+ async loadSnapshot(source, options) {
382
449
  try {
383
450
  const resolved = await resolveNodeSnapshotSource(source);
451
+ const loadOptions = normalizeSnapshotLoadOptions(options);
384
452
  if (typeof resolved === "string") {
385
- return this.#inner.loadSnapshot(resolved);
453
+ return this.#inner.loadSnapshot(resolved, loadOptions);
386
454
  }
387
- return this.#inner.loadSnapshotFromBytes(resolved);
388
- }
389
- catch (err) {
390
- throw (0, types_js_1.wrapError)(err);
391
- }
392
- }
393
- async loadSnapshotFromBytes(bytes) {
394
- try {
395
- return this.#inner.loadSnapshotFromBytes(node_buffer_1.Buffer.from(bytesToUint8Array(bytes)));
455
+ return this.#inner.loadSnapshotBuffer(resolved, loadOptions);
396
456
  }
397
457
  catch (err) {
398
458
  throw (0, types_js_1.wrapError)(err);
@@ -426,6 +486,10 @@ class DatabaseImpl {
426
486
  * const nestedPersistent = await createDatabase("app", {
427
487
  * databaseDir: "./data",
428
488
  * }); // ./data/app.loradb
489
+ * const walPersistent = await openWalDatabase({
490
+ * walDir: "./data/wal",
491
+ * snapshotDir: "./data/snapshots",
492
+ * });
429
493
  * ```
430
494
  *
431
495
  * Passing a database name enables persistence. The database name is validated
@@ -442,14 +506,44 @@ async function createDatabase(databaseName, options = {}) {
442
506
  const hasPersistenceOptions = options.databaseDir !== undefined ||
443
507
  options.syncMode !== undefined ||
444
508
  options.groupSyncIntervalMs !== undefined;
509
+ const rawOptions = options;
510
+ const hasWalOptions = rawOptions.walDir !== undefined ||
511
+ rawOptions.snapshotDir !== undefined ||
512
+ rawOptions.snapshotEveryCommits !== undefined ||
513
+ rawOptions.snapshotKeepOld !== undefined ||
514
+ rawOptions.snapshotOptions !== undefined;
515
+ if (hasWalOptions) {
516
+ throw new types_js_1.LoraError("walDir/snapshotDir are not valid for createDatabase(); use openWalDatabase()", "LORA_INVALID_PARAMS");
517
+ }
445
518
  if (databaseName == null && hasPersistenceOptions) {
446
- throw new types_js_1.LoraError("databaseName is required when persistence options are provided", "INVALID_PARAMS");
519
+ throw new types_js_1.LoraError("databaseName is required when persistence options are provided", "LORA_INVALID_PARAMS");
447
520
  }
448
521
  const syncMode = options.syncMode ?? null;
449
522
  const groupSyncIntervalMs = options.groupSyncIntervalMs ?? null;
450
523
  return new DatabaseImpl(databaseName == null
451
524
  ? new NativeDatabase()
452
- : new NativeDatabase(databaseName, options.databaseDir ?? null, syncMode, groupSyncIntervalMs));
525
+ : new NativeDatabase(databaseName, options.databaseDir ?? null, syncMode, groupSyncIntervalMs, null, null, null, null, null));
526
+ }
527
+ catch (err) {
528
+ throw (0, types_js_1.wrapError)(err);
529
+ }
530
+ }
531
+ async function openWalDatabase(options) {
532
+ try {
533
+ const hasSnapshotTuningOptions = options.snapshotEveryCommits !== undefined ||
534
+ options.snapshotKeepOld !== undefined ||
535
+ options.snapshotOptions !== undefined;
536
+ if (!options.walDir) {
537
+ throw new types_js_1.LoraError("walDir is required for openWalDatabase()", "LORA_INVALID_PARAMS");
538
+ }
539
+ if (options.snapshotDir === undefined && hasSnapshotTuningOptions) {
540
+ throw new types_js_1.LoraError("snapshotDir is required when managed snapshot options are provided", "LORA_INVALID_PARAMS");
541
+ }
542
+ const syncMode = options.syncMode ?? null;
543
+ const groupSyncIntervalMs = options.groupSyncIntervalMs ?? null;
544
+ const snapshotEveryCommits = options.snapshotEveryCommits ?? null;
545
+ const snapshotKeepOld = options.snapshotKeepOld ?? null;
546
+ return new DatabaseImpl(new NativeDatabase(null, null, syncMode, groupSyncIntervalMs, options.walDir, options.snapshotDir ?? null, snapshotEveryCommits, snapshotKeepOld, options.snapshotOptions ?? null));
453
547
  }
454
548
  catch (err) {
455
549
  throw (0, types_js_1.wrapError)(err);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"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"}