@loradb/lora-wasm 0.11.4 → 0.14.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/decode.d.ts.map +1 -1
- package/dist/decode.js.map +1 -1
- package/dist/index.d.ts +106 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +185 -2
- package/dist/index.js.map +1 -1
- package/dist/snapshot.d.ts.map +1 -1
- package/dist/snapshot.js.map +1 -1
- package/dist/types.d.ts +82 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +70 -11
- package/dist/types.js.map +1 -1
- package/dist/worker-client.d.ts +35 -6
- package/dist/worker-client.d.ts.map +1 -1
- package/dist/worker-client.js +307 -14
- package/dist/worker-client.js.map +1 -1
- package/dist/worker-protocol.d.ts +132 -0
- package/dist/worker-protocol.d.ts.map +1 -1
- package/dist/worker.js +145 -5
- package/dist/worker.js.map +1 -1
- package/package.json +1 -1
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
|
@@ -15,22 +15,40 @@
|
|
|
15
15
|
// Guards
|
|
16
16
|
// ---------------------------------------------------------------------------
|
|
17
17
|
export function isNode(v) {
|
|
18
|
-
return typeof v === "object" &&
|
|
18
|
+
return (typeof v === "object" &&
|
|
19
|
+
v !== null &&
|
|
20
|
+
!Array.isArray(v) &&
|
|
21
|
+
v.kind === "node");
|
|
19
22
|
}
|
|
20
23
|
export function isRelationship(v) {
|
|
21
|
-
return typeof v === "object" &&
|
|
24
|
+
return (typeof v === "object" &&
|
|
25
|
+
v !== null &&
|
|
26
|
+
!Array.isArray(v) &&
|
|
27
|
+
v.kind === "relationship");
|
|
22
28
|
}
|
|
23
29
|
export function isPath(v) {
|
|
24
|
-
return typeof v === "object" &&
|
|
30
|
+
return (typeof v === "object" &&
|
|
31
|
+
v !== null &&
|
|
32
|
+
!Array.isArray(v) &&
|
|
33
|
+
v.kind === "path");
|
|
25
34
|
}
|
|
26
35
|
export function isPoint(v) {
|
|
27
|
-
return typeof v === "object" &&
|
|
36
|
+
return (typeof v === "object" &&
|
|
37
|
+
v !== null &&
|
|
38
|
+
!Array.isArray(v) &&
|
|
39
|
+
v.kind === "point");
|
|
28
40
|
}
|
|
29
41
|
export function isVector(v) {
|
|
30
|
-
return typeof v === "object" &&
|
|
42
|
+
return (typeof v === "object" &&
|
|
43
|
+
v !== null &&
|
|
44
|
+
!Array.isArray(v) &&
|
|
45
|
+
v.kind === "vector");
|
|
31
46
|
}
|
|
32
47
|
export function isBinary(v) {
|
|
33
|
-
return typeof v === "object" &&
|
|
48
|
+
return (typeof v === "object" &&
|
|
49
|
+
v !== null &&
|
|
50
|
+
!Array.isArray(v) &&
|
|
51
|
+
v.kind === "binary");
|
|
34
52
|
}
|
|
35
53
|
export function isTemporal(v) {
|
|
36
54
|
if (typeof v !== "object" || v === null || Array.isArray(v))
|
|
@@ -48,10 +66,22 @@ export function isTemporal(v) {
|
|
|
48
66
|
// ---------------------------------------------------------------------------
|
|
49
67
|
export const date = (iso) => ({ kind: "date", iso });
|
|
50
68
|
export const time = (iso) => ({ kind: "time", iso });
|
|
51
|
-
export const localtime = (iso) => ({
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
69
|
+
export const localtime = (iso) => ({
|
|
70
|
+
kind: "localtime",
|
|
71
|
+
iso,
|
|
72
|
+
});
|
|
73
|
+
export const datetime = (iso) => ({
|
|
74
|
+
kind: "datetime",
|
|
75
|
+
iso,
|
|
76
|
+
});
|
|
77
|
+
export const localdatetime = (iso) => ({
|
|
78
|
+
kind: "localdatetime",
|
|
79
|
+
iso,
|
|
80
|
+
});
|
|
81
|
+
export const duration = (iso) => ({
|
|
82
|
+
kind: "duration",
|
|
83
|
+
iso,
|
|
84
|
+
});
|
|
55
85
|
/**
|
|
56
86
|
* Build a `LoraVector` parameter value. Mirrors the on-wire tagged
|
|
57
87
|
* shape the engine emits, so round-trips (receive from a query, pass
|
|
@@ -98,6 +128,35 @@ export const wgs84_3d = (longitude, latitude, height) => ({
|
|
|
98
128
|
latitude,
|
|
99
129
|
height,
|
|
100
130
|
});
|
|
131
|
+
const KNOWN_ERROR_CODES = new Set([
|
|
132
|
+
"LORA_PARSE",
|
|
133
|
+
"LORA_SEMANTIC",
|
|
134
|
+
"LORA_INVALID_PARAMS",
|
|
135
|
+
"LORA_READ_ONLY",
|
|
136
|
+
"LORA_NOT_FOUND",
|
|
137
|
+
"LORA_CONSTRAINT",
|
|
138
|
+
"LORA_INVALID_VECTOR",
|
|
139
|
+
"LORA_TIMEOUT",
|
|
140
|
+
"LORA_DATABASE_NAME",
|
|
141
|
+
"LORA_CONFIG",
|
|
142
|
+
"LORA_VALIDATION",
|
|
143
|
+
"LORA_UNIQUE_CONSTRAINT",
|
|
144
|
+
"LORA_NOT_NULL_CONSTRAINT",
|
|
145
|
+
"LORA_FOREIGN_KEY",
|
|
146
|
+
"LORA_TRANSACTION",
|
|
147
|
+
"LORA_IO",
|
|
148
|
+
"LORA_CONNECTION",
|
|
149
|
+
"LORA_WAL_CORRUPTION",
|
|
150
|
+
"LORA_WAL_POISONED",
|
|
151
|
+
"LORA_SNAPSHOT_CODEC",
|
|
152
|
+
"LORA_SNAPSHOT_CRYPTO",
|
|
153
|
+
"LORA_INTERNAL",
|
|
154
|
+
"WORKER_ERROR",
|
|
155
|
+
"UNKNOWN",
|
|
156
|
+
]);
|
|
157
|
+
export function isLoraErrorCode(value) {
|
|
158
|
+
return (typeof value === "string" && KNOWN_ERROR_CODES.has(value));
|
|
159
|
+
}
|
|
101
160
|
/**
|
|
102
161
|
* Error thrown by `Database.execute` when Lora parsing, analysis, or
|
|
103
162
|
* execution fails.
|
|
@@ -120,7 +179,7 @@ export function wrapError(err) {
|
|
|
120
179
|
if (!(err instanceof Error))
|
|
121
180
|
return new LoraError(String(err), "UNKNOWN");
|
|
122
181
|
const match = ERROR_PREFIX_RE.exec(err.message);
|
|
123
|
-
if (match) {
|
|
182
|
+
if (match && isLoraErrorCode(match[1])) {
|
|
124
183
|
return new LoraError(match[2], match[1]);
|
|
125
184
|
}
|
|
126
185
|
return err;
|
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/dist/worker-client.d.ts
CHANGED
|
@@ -5,20 +5,23 @@
|
|
|
5
5
|
* runs off the main thread. The API mirrors the in-process `Database` class
|
|
6
6
|
* so consumers can choose the execution model without rewriting their code.
|
|
7
7
|
*/
|
|
8
|
-
import type { LoraParams, LoraValue, QueryResult } from "./types.js";
|
|
9
|
-
import type {
|
|
10
|
-
import type { WasmSnapshotByteOptions, WasmSnapshotLoadOptions, WasmSnapshotSource, RowStream, SnapshotInfo, SnapshotMeta, TransactionMode, TransactionStatement } from "./index.js";
|
|
8
|
+
import type { LoraParams, LoraValue, QueryResult, RowExportStats, RowFormat, RowImportStats, RowMapping } from "./types.js";
|
|
9
|
+
import type { GraphStatsSnapshot, MemoryReportSnapshot } from "./worker-protocol.js";
|
|
10
|
+
import type { WasmSnapshotByteOptions, WasmSnapshotLoadOptions, WasmSnapshotSource, ImportStreamOptions, RowStream, SnapshotInfo, SnapshotMeta, TransactionMode, TransactionStatement } from "./index.js";
|
|
11
11
|
export interface WorkerLike {
|
|
12
12
|
postMessage(message: unknown): void;
|
|
13
13
|
terminate(): void;
|
|
14
14
|
addEventListener(type: "message", listener: (event: {
|
|
15
|
-
data:
|
|
15
|
+
data: unknown;
|
|
16
16
|
}) => void): void;
|
|
17
17
|
addEventListener(type: "error", listener: (event: {
|
|
18
18
|
message?: string;
|
|
19
19
|
}) => void): void;
|
|
20
|
+
addEventListener(type: "messageerror", listener: (event: {
|
|
21
|
+
message?: string;
|
|
22
|
+
}) => void): void;
|
|
20
23
|
removeEventListener(type: "message", listener: (event: {
|
|
21
|
-
data:
|
|
24
|
+
data: unknown;
|
|
22
25
|
}) => void): void;
|
|
23
26
|
}
|
|
24
27
|
export interface WorkerDatabase {
|
|
@@ -51,11 +54,37 @@ export interface WorkerDatabase {
|
|
|
51
54
|
} & WasmSnapshotByteOptions): Promise<URL>;
|
|
52
55
|
loadSnapshot(source: WasmSnapshotSource, options?: WasmSnapshotLoadOptions): Promise<SnapshotMeta>;
|
|
53
56
|
snapshotInfo(bytes: Uint8Array): Promise<SnapshotInfo>;
|
|
57
|
+
exportRows(query: string, params: LoraParams | null | undefined, format: RowFormat): Promise<{
|
|
58
|
+
bytes: Uint8Array;
|
|
59
|
+
stats: RowExportStats;
|
|
60
|
+
}>;
|
|
61
|
+
openExportStream(query: string, params: LoraParams | null | undefined, format: RowFormat): ReadableStream<Uint8Array>;
|
|
62
|
+
importRows(bytes: Uint8Array, format: RowFormat, mapping: RowMapping, batchSize?: number | null): Promise<RowImportStats>;
|
|
63
|
+
importRowsWithCypher(bytes: Uint8Array, format: RowFormat, template: string, batchSize?: number | null): Promise<RowImportStats>;
|
|
64
|
+
importStream(source: ReadableStream<Uint8Array>, format: RowFormat, mappingOrTemplate: RowMapping | string, options?: ImportStreamOptions): Promise<RowImportStats>;
|
|
54
65
|
clear(): Promise<void>;
|
|
55
66
|
nodeCount(): Promise<number>;
|
|
56
67
|
relationshipCount(): Promise<number>;
|
|
68
|
+
/**
|
|
69
|
+
* Cardinality + per-label / per-(label,property) snapshot — cheap to
|
|
70
|
+
* compute, suitable for refreshing on user action (e.g. opening the
|
|
71
|
+
* Stats side panel). Not polled internally.
|
|
72
|
+
*/
|
|
73
|
+
graphStats(): Promise<GraphStatsSnapshot>;
|
|
74
|
+
/**
|
|
75
|
+
* Approximate retained-heap breakdown by component. See
|
|
76
|
+
* [`MemoryReportSnapshot`] for the per-field meaning.
|
|
77
|
+
*/
|
|
78
|
+
memoryReport(): Promise<MemoryReportSnapshot>;
|
|
57
79
|
dispose(): Promise<void>;
|
|
58
80
|
}
|
|
81
|
+
export interface WorkerDatabaseOptions {
|
|
82
|
+
/**
|
|
83
|
+
* Maximum time to wait for an individual worker request. Use `0` or
|
|
84
|
+
* `Infinity` to disable the guard for hosts that provide their own timeout.
|
|
85
|
+
*/
|
|
86
|
+
requestTimeoutMs?: number;
|
|
87
|
+
}
|
|
59
88
|
/**
|
|
60
89
|
* Build a Database client that proxies to the supplied worker.
|
|
61
90
|
*
|
|
@@ -66,5 +95,5 @@ export interface WorkerDatabase {
|
|
|
66
95
|
* const result = await db.execute("MATCH (n) RETURN n");
|
|
67
96
|
* ```
|
|
68
97
|
*/
|
|
69
|
-
export declare function createWorkerDatabase(worker: WorkerLike): WorkerDatabase;
|
|
98
|
+
export declare function createWorkerDatabase(worker: WorkerLike, options?: WorkerDatabaseOptions): WorkerDatabase;
|
|
70
99
|
//# sourceMappingURL=worker-client.d.ts.map
|
|
@@ -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,
|
|
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
|
@@ -5,9 +5,10 @@
|
|
|
5
5
|
* runs off the main thread. The API mirrors the in-process `Database` class
|
|
6
6
|
* so consumers can choose the execution model without rewriting their code.
|
|
7
7
|
*/
|
|
8
|
-
import { LoraError } from "./types.js";
|
|
8
|
+
import { isLoraErrorCode, LoraError } from "./types.js";
|
|
9
9
|
import { snapshotAsArrayBuffer, snapshotAsBlob, snapshotAsObjectUrl, snapshotAsReadableStream, snapshotAsResponse, readSnapshotSource, } from "./snapshot.js";
|
|
10
10
|
import { decodeResult } from "./decode.js";
|
|
11
|
+
const DEFAULT_REQUEST_TIMEOUT_MS = 120_000;
|
|
11
12
|
class WorkerRowStream {
|
|
12
13
|
#open;
|
|
13
14
|
#call;
|
|
@@ -75,15 +76,27 @@ class WorkerRowStream {
|
|
|
75
76
|
* const result = await db.execute("MATCH (n) RETURN n");
|
|
76
77
|
* ```
|
|
77
78
|
*/
|
|
78
|
-
export function createWorkerDatabase(worker) {
|
|
79
|
+
export function createWorkerDatabase(worker, options = {}) {
|
|
79
80
|
let nextId = 1;
|
|
80
81
|
const pending = new Map();
|
|
82
|
+
let closed = false;
|
|
83
|
+
let failedError = null;
|
|
84
|
+
const requestTimeoutMs = options.requestTimeoutMs === undefined
|
|
85
|
+
? DEFAULT_REQUEST_TIMEOUT_MS
|
|
86
|
+
: options.requestTimeoutMs;
|
|
81
87
|
worker.addEventListener("message", (event) => {
|
|
82
|
-
const
|
|
88
|
+
const parsed = parseWorkerResponse(event.data);
|
|
89
|
+
if (!parsed.ok) {
|
|
90
|
+
failWorker(parsed.error);
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
const { id, body } = parsed.response;
|
|
83
94
|
const p = pending.get(id);
|
|
84
95
|
if (!p)
|
|
85
96
|
return;
|
|
86
97
|
pending.delete(id);
|
|
98
|
+
if (p.timer)
|
|
99
|
+
clearTimeout(p.timer);
|
|
87
100
|
if (body.ok) {
|
|
88
101
|
p.resolve(body.result);
|
|
89
102
|
}
|
|
@@ -91,24 +104,92 @@ export function createWorkerDatabase(worker) {
|
|
|
91
104
|
p.reject(new LoraError(body.error.message, body.error.code));
|
|
92
105
|
}
|
|
93
106
|
});
|
|
107
|
+
function makeAbortError(signal) {
|
|
108
|
+
const reason = signal
|
|
109
|
+
.reason;
|
|
110
|
+
if (reason instanceof Error)
|
|
111
|
+
return reason;
|
|
112
|
+
const message = typeof reason === "string" && reason.length > 0
|
|
113
|
+
? reason
|
|
114
|
+
: "import aborted";
|
|
115
|
+
if (typeof DOMException === "function") {
|
|
116
|
+
return new DOMException(message, "AbortError");
|
|
117
|
+
}
|
|
118
|
+
const err = new Error(message);
|
|
119
|
+
err.name = "AbortError";
|
|
120
|
+
return err;
|
|
121
|
+
}
|
|
94
122
|
worker.addEventListener("error", (event) => {
|
|
95
123
|
const message = event.message ?? "worker errored";
|
|
96
|
-
|
|
97
|
-
|
|
124
|
+
failWorker(new LoraError(message, "WORKER_ERROR"));
|
|
125
|
+
});
|
|
126
|
+
worker.addEventListener("messageerror", (event) => {
|
|
127
|
+
const message = event.message ?? "worker message could not be decoded";
|
|
128
|
+
failWorker(new LoraError(message, "WORKER_ERROR"));
|
|
129
|
+
});
|
|
130
|
+
function failWorker(error) {
|
|
131
|
+
failedError = error;
|
|
132
|
+
for (const pendingCall of pending.values()) {
|
|
133
|
+
if (pendingCall.timer)
|
|
134
|
+
clearTimeout(pendingCall.timer);
|
|
135
|
+
pendingCall.reject(error);
|
|
98
136
|
}
|
|
99
137
|
pending.clear();
|
|
100
|
-
}
|
|
101
|
-
function
|
|
138
|
+
}
|
|
139
|
+
function makeTransportError(message) {
|
|
140
|
+
return new LoraError(message, "WORKER_ERROR");
|
|
141
|
+
}
|
|
142
|
+
function timeoutFor(id) {
|
|
143
|
+
if (!Number.isFinite(requestTimeoutMs) || requestTimeoutMs <= 0) {
|
|
144
|
+
return null;
|
|
145
|
+
}
|
|
146
|
+
return setTimeout(() => {
|
|
147
|
+
const pendingCall = pending.get(id);
|
|
148
|
+
if (!pendingCall)
|
|
149
|
+
return;
|
|
150
|
+
pending.delete(id);
|
|
151
|
+
pendingCall.reject(makeTransportError(`database worker did not respond within ${requestTimeoutMs}ms`));
|
|
152
|
+
}, requestTimeoutMs);
|
|
153
|
+
}
|
|
154
|
+
function call(body, transfer) {
|
|
155
|
+
if (closed) {
|
|
156
|
+
return Promise.reject(makeTransportError("database worker is closed"));
|
|
157
|
+
}
|
|
158
|
+
if (failedError) {
|
|
159
|
+
return Promise.reject(failedError);
|
|
160
|
+
}
|
|
102
161
|
const id = nextId++;
|
|
103
162
|
return new Promise((resolve, reject) => {
|
|
104
|
-
pending.set(id, {
|
|
163
|
+
pending.set(id, {
|
|
164
|
+
resolve: resolve,
|
|
165
|
+
reject,
|
|
166
|
+
timer: timeoutFor(id),
|
|
167
|
+
});
|
|
105
168
|
const msg = { id, body };
|
|
106
|
-
|
|
169
|
+
try {
|
|
170
|
+
if (transfer && transfer.length > 0) {
|
|
171
|
+
worker.postMessage(msg, transfer);
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
worker.postMessage(msg);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
catch (err) {
|
|
178
|
+
const pendingCall = pending.get(id);
|
|
179
|
+
pending.delete(id);
|
|
180
|
+
if (pendingCall?.timer)
|
|
181
|
+
clearTimeout(pendingCall.timer);
|
|
182
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
183
|
+
reject(makeTransportError(message));
|
|
184
|
+
}
|
|
107
185
|
});
|
|
108
186
|
}
|
|
109
187
|
async function saveSnapshot(options) {
|
|
110
|
-
const bytes = await call({
|
|
111
|
-
|
|
188
|
+
const bytes = await call({
|
|
189
|
+
op: "saveSnapshot",
|
|
190
|
+
options: options ?? null,
|
|
191
|
+
});
|
|
192
|
+
const format = options && "format" in options ? (options.format ?? "bytes") : "bytes";
|
|
112
193
|
const mimeType = options && "mimeType" in options ? options.mimeType : undefined;
|
|
113
194
|
switch (format) {
|
|
114
195
|
case "bytes":
|
|
@@ -151,7 +232,11 @@ export function createWorkerDatabase(worker) {
|
|
|
151
232
|
return this.stream(query, params);
|
|
152
233
|
},
|
|
153
234
|
transaction(statements, mode = "read_write") {
|
|
154
|
-
return call({
|
|
235
|
+
return call({
|
|
236
|
+
op: "transaction",
|
|
237
|
+
statements,
|
|
238
|
+
mode,
|
|
239
|
+
});
|
|
155
240
|
},
|
|
156
241
|
saveSnapshot,
|
|
157
242
|
async loadSnapshot(source, options) {
|
|
@@ -164,6 +249,171 @@ export function createWorkerDatabase(worker) {
|
|
|
164
249
|
snapshotInfo(bytes) {
|
|
165
250
|
return call({ op: "snapshotInfo", bytes });
|
|
166
251
|
},
|
|
252
|
+
exportRows(query, params, format) {
|
|
253
|
+
return call({
|
|
254
|
+
op: "exportRows",
|
|
255
|
+
query,
|
|
256
|
+
params: params ?? null,
|
|
257
|
+
format,
|
|
258
|
+
});
|
|
259
|
+
},
|
|
260
|
+
openExportStream(query, params, format) {
|
|
261
|
+
// The native cursor lives in the worker, identified by exportId.
|
|
262
|
+
// Each `pull` hops to the worker for one chunk; the worker
|
|
263
|
+
// returns one chunk's worth of encoded bytes (with the buffer
|
|
264
|
+
// transferred, no clone) and we enqueue it. When the cursor is
|
|
265
|
+
// drained the worker returns null and we close the stream.
|
|
266
|
+
let exportId = null;
|
|
267
|
+
let openPromise = null;
|
|
268
|
+
const ensureOpen = () => {
|
|
269
|
+
if (openPromise)
|
|
270
|
+
return openPromise;
|
|
271
|
+
openPromise = call({
|
|
272
|
+
op: "exportOpen",
|
|
273
|
+
query,
|
|
274
|
+
params: params ?? null,
|
|
275
|
+
format,
|
|
276
|
+
}).then((res) => {
|
|
277
|
+
exportId = res.exportId;
|
|
278
|
+
});
|
|
279
|
+
return openPromise;
|
|
280
|
+
};
|
|
281
|
+
return new ReadableStream({
|
|
282
|
+
async pull(controller) {
|
|
283
|
+
try {
|
|
284
|
+
await ensureOpen();
|
|
285
|
+
if (exportId === null) {
|
|
286
|
+
controller.close();
|
|
287
|
+
return;
|
|
288
|
+
}
|
|
289
|
+
const chunk = await call({
|
|
290
|
+
op: "exportNext",
|
|
291
|
+
exportId,
|
|
292
|
+
});
|
|
293
|
+
if (chunk === null) {
|
|
294
|
+
exportId = null;
|
|
295
|
+
controller.close();
|
|
296
|
+
return;
|
|
297
|
+
}
|
|
298
|
+
controller.enqueue(chunk);
|
|
299
|
+
}
|
|
300
|
+
catch (err) {
|
|
301
|
+
controller.error(err);
|
|
302
|
+
if (exportId !== null) {
|
|
303
|
+
void call({
|
|
304
|
+
op: "exportClose",
|
|
305
|
+
exportId,
|
|
306
|
+
});
|
|
307
|
+
exportId = null;
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
},
|
|
311
|
+
async cancel() {
|
|
312
|
+
if (exportId !== null) {
|
|
313
|
+
await call({ op: "exportClose", exportId });
|
|
314
|
+
exportId = null;
|
|
315
|
+
}
|
|
316
|
+
},
|
|
317
|
+
});
|
|
318
|
+
},
|
|
319
|
+
importRows(bytes, format, mapping, batchSize) {
|
|
320
|
+
return call({
|
|
321
|
+
op: "importRows",
|
|
322
|
+
bytes,
|
|
323
|
+
format,
|
|
324
|
+
mapping,
|
|
325
|
+
batchSize: batchSize ?? null,
|
|
326
|
+
});
|
|
327
|
+
},
|
|
328
|
+
importRowsWithCypher(bytes, format, template, batchSize) {
|
|
329
|
+
return call({
|
|
330
|
+
op: "importRowsWithCypher",
|
|
331
|
+
bytes,
|
|
332
|
+
format,
|
|
333
|
+
template,
|
|
334
|
+
batchSize: batchSize ?? null,
|
|
335
|
+
});
|
|
336
|
+
},
|
|
337
|
+
async importStream(source, format, mappingOrTemplate, options) {
|
|
338
|
+
const signal = options?.signal;
|
|
339
|
+
const open = await call({
|
|
340
|
+
op: "importOpen",
|
|
341
|
+
format,
|
|
342
|
+
mappingOrTemplate,
|
|
343
|
+
batchSize: options?.batchSize ?? null,
|
|
344
|
+
dryRun: options?.dryRun ?? null,
|
|
345
|
+
permissive: options?.permissive ?? null,
|
|
346
|
+
});
|
|
347
|
+
const importId = open.importId;
|
|
348
|
+
if (signal?.aborted) {
|
|
349
|
+
try {
|
|
350
|
+
await call({ op: "importClose", importId });
|
|
351
|
+
}
|
|
352
|
+
catch {
|
|
353
|
+
// ignore
|
|
354
|
+
}
|
|
355
|
+
throw makeAbortError(signal);
|
|
356
|
+
}
|
|
357
|
+
const reader = source.getReader();
|
|
358
|
+
try {
|
|
359
|
+
try {
|
|
360
|
+
while (true) {
|
|
361
|
+
if (signal?.aborted) {
|
|
362
|
+
await reader.cancel();
|
|
363
|
+
try {
|
|
364
|
+
await call({ op: "importClose", importId });
|
|
365
|
+
}
|
|
366
|
+
catch {
|
|
367
|
+
// ignore
|
|
368
|
+
}
|
|
369
|
+
throw makeAbortError(signal);
|
|
370
|
+
}
|
|
371
|
+
const { value, done } = await reader.read();
|
|
372
|
+
if (done)
|
|
373
|
+
break;
|
|
374
|
+
// Transfer the chunk's underlying buffer instead of copying it
|
|
375
|
+
// across the worker boundary. The local `value` is detached
|
|
376
|
+
// after this call (we don't reference it again before the
|
|
377
|
+
// next `reader.read()`), so structured-clone copying would
|
|
378
|
+
// be pure waste — for a 5M-row CSV that's hundreds of MB
|
|
379
|
+
// of avoidable memcpy. If the chunk happens to share its
|
|
380
|
+
// ArrayBuffer with a sibling view we'd want to skip the
|
|
381
|
+
// transfer, but `File.stream()` always yields chunks that
|
|
382
|
+
// own their backing buffer.
|
|
383
|
+
const progress = await call({
|
|
384
|
+
op: "importFeed",
|
|
385
|
+
importId,
|
|
386
|
+
chunk: value,
|
|
387
|
+
}, [value.buffer]);
|
|
388
|
+
options?.onProgress?.(progress);
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
finally {
|
|
392
|
+
try {
|
|
393
|
+
reader.releaseLock();
|
|
394
|
+
}
|
|
395
|
+
catch {
|
|
396
|
+
// releaseLock throws on an already-released reader;
|
|
397
|
+
// ignore so the original error path stays intact.
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
return await call({
|
|
401
|
+
op: "importFinish",
|
|
402
|
+
importId,
|
|
403
|
+
});
|
|
404
|
+
}
|
|
405
|
+
catch (err) {
|
|
406
|
+
// Best-effort cleanup; swallow secondary errors so the
|
|
407
|
+
// original cause propagates.
|
|
408
|
+
try {
|
|
409
|
+
await call({ op: "importClose", importId });
|
|
410
|
+
}
|
|
411
|
+
catch {
|
|
412
|
+
// ignore
|
|
413
|
+
}
|
|
414
|
+
throw err;
|
|
415
|
+
}
|
|
416
|
+
},
|
|
167
417
|
async clear() {
|
|
168
418
|
await call({ op: "clear" });
|
|
169
419
|
},
|
|
@@ -173,10 +423,53 @@ export function createWorkerDatabase(worker) {
|
|
|
173
423
|
relationshipCount() {
|
|
174
424
|
return call({ op: "relationshipCount" });
|
|
175
425
|
},
|
|
426
|
+
graphStats() {
|
|
427
|
+
return call({ op: "graphStats" });
|
|
428
|
+
},
|
|
429
|
+
memoryReport() {
|
|
430
|
+
return call({ op: "memoryReport" });
|
|
431
|
+
},
|
|
176
432
|
async dispose() {
|
|
177
|
-
|
|
178
|
-
|
|
433
|
+
if (closed)
|
|
434
|
+
return;
|
|
435
|
+
try {
|
|
436
|
+
if (!failedError) {
|
|
437
|
+
await call({ op: "dispose" });
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
finally {
|
|
441
|
+
closed = true;
|
|
442
|
+
worker.terminate();
|
|
443
|
+
}
|
|
179
444
|
},
|
|
180
445
|
};
|
|
181
446
|
}
|
|
447
|
+
function parseWorkerResponse(value) {
|
|
448
|
+
const error = (message) => ({
|
|
449
|
+
ok: false,
|
|
450
|
+
error: new LoraError(message, "WORKER_ERROR"),
|
|
451
|
+
});
|
|
452
|
+
if (!isRecord(value))
|
|
453
|
+
return error("worker returned a malformed response");
|
|
454
|
+
const { id, body } = value;
|
|
455
|
+
if (typeof id !== "number" || !Number.isInteger(id) || !isRecord(body)) {
|
|
456
|
+
return error("worker returned a malformed response");
|
|
457
|
+
}
|
|
458
|
+
if (body.ok === true) {
|
|
459
|
+
if (!("result" in body))
|
|
460
|
+
return error("worker returned a malformed response");
|
|
461
|
+
return { ok: true, response: value };
|
|
462
|
+
}
|
|
463
|
+
if (body.ok !== false || !isRecord(body.error)) {
|
|
464
|
+
return error("worker returned a malformed response");
|
|
465
|
+
}
|
|
466
|
+
const { message, code } = body.error;
|
|
467
|
+
if (typeof message !== "string" || !isLoraErrorCode(code)) {
|
|
468
|
+
return error("worker returned a malformed error");
|
|
469
|
+
}
|
|
470
|
+
return { ok: true, response: value };
|
|
471
|
+
}
|
|
472
|
+
function isRecord(value) {
|
|
473
|
+
return typeof value === "object" && value !== null;
|
|
474
|
+
}
|
|
182
475
|
//# sourceMappingURL=worker-client.js.map
|