@loradb/lora-wasm 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.
Files changed (45) hide show
  1. package/README.md +76 -34
  2. package/dist/decode.d.ts +29 -0
  3. package/dist/decode.d.ts.map +1 -0
  4. package/dist/decode.js +338 -0
  5. package/dist/decode.js.map +1 -0
  6. package/dist/index.d.ts +21 -31
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +35 -37
  9. package/dist/index.js.map +1 -1
  10. package/dist/loader-node.d.ts +1 -1
  11. package/dist/snapshot.d.ts +49 -16
  12. package/dist/snapshot.d.ts.map +1 -1
  13. package/dist/snapshot.js +36 -54
  14. package/dist/snapshot.js.map +1 -1
  15. package/dist/types.d.ts +81 -7
  16. package/dist/types.d.ts.map +1 -1
  17. package/dist/types.js +10 -2
  18. package/dist/types.js.map +1 -1
  19. package/dist/worker-client.d.ts +20 -20
  20. package/dist/worker-client.d.ts.map +1 -1
  21. package/dist/worker-client.js +32 -22
  22. package/dist/worker-client.js.map +1 -1
  23. package/dist/worker-protocol.d.ts +5 -2
  24. package/dist/worker-protocol.d.ts.map +1 -1
  25. package/dist/worker.js +18 -10
  26. package/dist/worker.js.map +1 -1
  27. package/package.json +5 -5
  28. package/pkg-bundler/README.md +76 -34
  29. package/pkg-bundler/lora_wasm.d.ts +37 -10
  30. package/pkg-bundler/lora_wasm_bg.js +173 -26
  31. package/pkg-bundler/lora_wasm_bg.wasm +0 -0
  32. package/pkg-bundler/lora_wasm_bg.wasm.d.ts +5 -2
  33. package/pkg-bundler/package.json +1 -1
  34. package/pkg-node/README.md +76 -34
  35. package/pkg-node/lora_wasm.d.ts +37 -10
  36. package/pkg-node/lora_wasm.js +173 -26
  37. package/pkg-node/lora_wasm_bg.wasm +0 -0
  38. package/pkg-node/lora_wasm_bg.wasm.d.ts +5 -2
  39. package/pkg-node/package.json +1 -1
  40. package/pkg-web/README.md +76 -34
  41. package/pkg-web/lora_wasm.d.ts +42 -12
  42. package/pkg-web/lora_wasm.js +156 -26
  43. package/pkg-web/lora_wasm_bg.wasm +0 -0
  44. package/pkg-web/lora_wasm_bg.wasm.d.ts +5 -2
  45. package/pkg-web/package.json +1 -1
@@ -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
@@ -17,8 +17,9 @@
17
17
  */
18
18
  import { wrapError } from "./types.js";
19
19
  import { WasmDatabase, init as wasmInit } from "./loader-node.js";
20
+ import { decodeResult } from "./decode.js";
20
21
  import { createWorkerDatabase } from "./worker-client.js";
21
- import { downloadSnapshotBytes, resolveSnapshotSaveFormat, snapshotBytesToBase64, snapshotBytesToBlob, snapshotSourceToBytes, } from "./snapshot.js";
22
+ import { snapshotAsArrayBuffer, snapshotAsBlob, snapshotAsObjectUrl, snapshotAsReadableStream, snapshotAsResponse, readSnapshotSource, } from "./snapshot.js";
22
23
  export * from "./types.js";
23
24
  export { createWorkerDatabase, } from "./worker-client.js";
24
25
  class NativeRowStream {
@@ -103,8 +104,13 @@ class DatabaseImpl {
103
104
  }
104
105
  async execute(query, params) {
105
106
  try {
106
- const raw = this.#inner.execute(query, (params ?? null));
107
- return raw;
107
+ // executeBuffer ships a single binary buffer instead of building
108
+ // the JS object tree inside Rust + serialising it through
109
+ // serde_wasm_bindgen value-by-value. We decode once on the JS
110
+ // side in JIT'd code, which is materially faster.
111
+ const native = this.#inner;
112
+ const buf = native.executeBuffer(query, (params ?? null));
113
+ return decodeResult(buf);
108
114
  }
109
115
  catch (err) {
110
116
  throw wrapError(err);
@@ -141,48 +147,40 @@ class DatabaseImpl {
141
147
  return this.#inner.relationshipCount();
142
148
  }
143
149
  /**
144
- * Serialize the current graph to a `Uint8Array`. WASM has no filesystem
145
- * access — the caller is responsible for persisting the bytes (IndexedDB,
146
- * localStorage, fetch POST, `fs.writeFileSync` in Node, etc.) and passing
147
- * them back to `loadSnapshotFromBytes` on a future database instance.
148
- */
149
- async saveSnapshotToBytes() {
150
- try {
151
- return this.#inner.saveSnapshotToBytes();
152
- }
153
- catch (err) {
154
- throw wrapError(err);
155
- }
156
- }
157
- async saveSnapshot(target) {
158
- const options = resolveSnapshotSaveFormat(target);
159
- const bytes = await this.saveSnapshotToBytes();
160
- switch (options.format) {
161
- case "binary":
162
- return bytes;
163
- case "base64":
164
- return snapshotBytesToBase64(bytes);
165
- case "blob":
166
- return snapshotBytesToBlob(bytes, options.mimeType);
167
- case "download":
168
- return downloadSnapshotBytes(bytes, options.filename, options.mimeType);
169
- }
170
- }
171
- /**
172
- * Replace the current graph state with a snapshot decoded from `bytes`.
173
- * Returns metadata describing the restored snapshot.
150
+ * Serialize the current graph to a host-friendly snapshot object. WASM has
151
+ * no filesystem access; callers persist the returned bytes/Blob/stream/URL
152
+ * through host-provided storage.
174
153
  */
175
- async loadSnapshotFromBytes(bytes) {
154
+ async saveSnapshot(options) {
176
155
  try {
177
- return this.#inner.loadSnapshotFromBytes(bytes);
156
+ const native = this.#inner;
157
+ const bytes = native.saveSnapshot(options ?? null);
158
+ const format = options && "format" in options ? options.format ?? "bytes" : "bytes";
159
+ const mimeType = options && "mimeType" in options ? options.mimeType : undefined;
160
+ switch (format) {
161
+ case "bytes":
162
+ return bytes;
163
+ case "arrayBuffer":
164
+ return snapshotAsArrayBuffer(bytes);
165
+ case "blob":
166
+ return snapshotAsBlob(bytes, mimeType);
167
+ case "response":
168
+ return snapshotAsResponse(bytes, mimeType);
169
+ case "stream":
170
+ return snapshotAsReadableStream(bytes);
171
+ case "url":
172
+ return snapshotAsObjectUrl(bytes, mimeType);
173
+ }
178
174
  }
179
175
  catch (err) {
180
176
  throw wrapError(err);
181
177
  }
182
178
  }
183
- async loadSnapshot(source) {
179
+ async loadSnapshot(source, options) {
184
180
  try {
185
- return this.#inner.loadSnapshotFromBytes(await snapshotSourceToBytes(source));
181
+ const bytes = await readSnapshotSource(source);
182
+ const native = this.#inner;
183
+ return native.loadSnapshot(bytes, options ?? null);
186
184
  }
187
185
  catch (err) {
188
186
  throw 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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"}
@@ -8,7 +8,7 @@ export interface NativeModule {
8
8
  init: () => void;
9
9
  }
10
10
  /**
11
- * Shape of the snapshot metadata emitted by `loadSnapshotFromBytes`. The
11
+ * Shape of the snapshot metadata emitted by `loadSnapshot`. The
12
12
  * native Rust layer returns this as a plain JS object via `serde-wasm-bindgen`.
13
13
  */
14
14
  export interface NativeSnapshotMeta {
@@ -1,22 +1,55 @@
1
- export type WasmSnapshotSource = string | URL | Uint8Array | ArrayBuffer | Blob | Response | ReadableStream<Uint8Array | ArrayBuffer>;
2
- export type WasmSnapshotSaveFormat = "binary" | "base64" | "blob" | "download";
3
- export type WasmSnapshotSaveOptions = {
4
- format: "binary";
1
+ export type WasmSnapshotSource = URL | Uint8Array | ArrayBuffer | Blob | Response | ReadableStream<Uint8Array | ArrayBuffer>;
2
+ export type WasmSnapshotCompression = "none" | "gzip" | {
3
+ format: "none";
5
4
  } | {
6
- format: "base64";
5
+ format: "gzip";
6
+ level?: number;
7
+ };
8
+ export interface WasmSnapshotPasswordParams {
9
+ memoryCostKib?: number;
10
+ timeCost?: number;
11
+ parallelism?: number;
12
+ }
13
+ export type WasmSnapshotEncryption = {
14
+ type?: "password" | "passphrase";
15
+ keyId?: string;
16
+ password: string;
17
+ params?: WasmSnapshotPasswordParams;
7
18
  } | {
19
+ type: "key" | "rawKey" | "raw_key";
20
+ keyId?: string;
21
+ key: number[];
22
+ };
23
+ export interface WasmSnapshotByteOptions {
24
+ compression?: WasmSnapshotCompression;
25
+ encryption?: WasmSnapshotEncryption | null;
26
+ }
27
+ export interface WasmSnapshotLoadOptions {
28
+ credentials?: WasmSnapshotEncryption | null;
29
+ encryption?: WasmSnapshotEncryption | null;
30
+ }
31
+ export type WasmSnapshotSaveFormat = "bytes" | "arrayBuffer" | "blob" | "response" | "stream" | "url";
32
+ export type WasmSnapshotSaveOptions = ({
33
+ format?: "bytes";
34
+ } & WasmSnapshotByteOptions) | ({
35
+ format: "arrayBuffer";
36
+ } & WasmSnapshotByteOptions) | ({
8
37
  format: "blob";
9
38
  mimeType?: string;
10
- } | {
11
- format: "download";
12
- filename?: string;
39
+ } & WasmSnapshotByteOptions) | ({
40
+ format: "response";
13
41
  mimeType?: string;
14
- };
15
- export type WasmSnapshotSaveTarget = WasmSnapshotSaveFormat | WasmSnapshotSaveOptions | undefined;
16
- export declare function bytesToUint8Array(bytes: Uint8Array | ArrayBuffer): Uint8Array;
17
- export declare function snapshotBytesToBase64(bytes: Uint8Array): string;
18
- export declare function snapshotBytesToBlob(bytes: Uint8Array, mimeType?: string): Blob;
19
- export declare function downloadSnapshotBytes(bytes: Uint8Array, filename?: string, mimeType?: string): void;
20
- export declare function resolveSnapshotSaveFormat(target: WasmSnapshotSaveTarget): WasmSnapshotSaveOptions;
21
- export declare function snapshotSourceToBytes(source: WasmSnapshotSource): Promise<Uint8Array>;
42
+ } & WasmSnapshotByteOptions) | ({
43
+ format: "stream";
44
+ } & WasmSnapshotByteOptions) | ({
45
+ format: "url";
46
+ mimeType?: string;
47
+ } & WasmSnapshotByteOptions);
48
+ export declare function asUint8Array(bytes: Uint8Array | ArrayBuffer): Uint8Array;
49
+ export declare function snapshotAsArrayBuffer(bytes: Uint8Array): ArrayBuffer;
50
+ export declare function snapshotAsBlob(bytes: Uint8Array, mimeType?: string): Blob;
51
+ export declare function snapshotAsResponse(bytes: Uint8Array, mimeType?: string): Response;
52
+ export declare function snapshotAsReadableStream(bytes: Uint8Array): ReadableStream<Uint8Array>;
53
+ export declare function snapshotAsObjectUrl(bytes: Uint8Array, mimeType?: string): URL;
54
+ export declare function readSnapshotSource(source: WasmSnapshotSource): Promise<Uint8Array>;
22
55
  //# sourceMappingURL=snapshot.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../ts/snapshot.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAC1B,MAAM,GACN,GAAG,GACH,UAAU,GACV,WAAW,GACX,IAAI,GACJ,QAAQ,GACR,cAAc,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC;AAC7C,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;AAC/E,MAAM,MAAM,uBAAuB,GAC/B;IAAE,MAAM,EAAE,QAAQ,CAAA;CAAE,GACpB;IAAE,MAAM,EAAE,QAAQ,CAAA;CAAE,GACpB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACjE,MAAM,MAAM,sBAAsB,GAC9B,sBAAsB,GACtB,uBAAuB,GACvB,SAAS,CAAC;AAKd,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,UAAU,CAK7E;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAe/D;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,UAAU,EACjB,QAAQ,SAA6B,GACpC,IAAI,CAIN;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,UAAU,EACjB,QAAQ,SAA4B,EACpC,QAAQ,SAA6B,GACpC,IAAI,CAsCN;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,sBAAsB,GAC7B,uBAAuB,CAQzB;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,UAAU,CAAC,CAkBrB"}
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../ts/snapshot.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAC1B,GAAG,GACH,UAAU,GACV,WAAW,GACX,IAAI,GACJ,QAAQ,GACR,cAAc,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC;AAE7C,MAAM,MAAM,uBAAuB,GAC/B,MAAM,GACN,MAAM,GACN;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAClB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvC,MAAM,WAAW,0BAA0B;IACzC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,sBAAsB,GAC9B;IACE,IAAI,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,0BAA0B,CAAC;CACrC,GACD;IACE,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,EAAE,CAAC;CACf,CAAC;AAEN,MAAM,WAAW,uBAAuB;IACtC,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC,UAAU,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAC5C,UAAU,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;CAC5C;AAED,MAAM,MAAM,sBAAsB,GAC9B,OAAO,GACP,aAAa,GACb,MAAM,GACN,UAAU,GACV,QAAQ,GACR,KAAK,CAAC;AAEV,MAAM,MAAM,uBAAuB,GAC/B,CAAC;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,uBAAuB,CAAC,GAChD,CAAC;IAAE,MAAM,EAAE,aAAa,CAAA;CAAE,GAAG,uBAAuB,CAAC,GACrD,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,uBAAuB,CAAC,GACjE,CAAC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,uBAAuB,CAAC,GACrE,CAAC;IAAE,MAAM,EAAE,QAAQ,CAAA;CAAE,GAAG,uBAAuB,CAAC,GAChD,CAAC;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,uBAAuB,CAAC,CAAC;AAIrE,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,UAAU,CAKxE;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,CAIpE;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,UAAU,EACjB,QAAQ,SAA6B,GACpC,IAAI,CAEN;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,UAAU,EACjB,QAAQ,SAA6B,GACpC,QAAQ,CAIV;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,UAAU,GAChB,cAAc,CAAC,UAAU,CAAC,CAS5B;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,UAAU,EACjB,QAAQ,SAA6B,GACpC,GAAG,CAKL;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,UAAU,CAAC,CAsBrB"}
package/dist/snapshot.js CHANGED
@@ -1,79 +1,61 @@
1
1
  const DEFAULT_SNAPSHOT_MIME_TYPE = "application/octet-stream";
2
- const DEFAULT_SNAPSHOT_FILENAME = "lora-snapshot.bin";
3
- export function bytesToUint8Array(bytes) {
2
+ export function asUint8Array(bytes) {
4
3
  if (bytes instanceof Uint8Array) {
5
4
  return bytes;
6
5
  }
7
6
  return new Uint8Array(bytes);
8
7
  }
9
- export function snapshotBytesToBase64(bytes) {
10
- const buffer = globalThis.Buffer;
11
- if (buffer) {
12
- return buffer.from(bytes).toString("base64");
13
- }
14
- const chunkSize = 0x8000;
15
- let binary = "";
16
- for (let offset = 0; offset < bytes.byteLength; offset += chunkSize) {
17
- const chunk = bytes.subarray(offset, offset + chunkSize);
18
- binary += String.fromCharCode(...chunk);
19
- }
20
- return btoa(binary);
21
- }
22
- export function snapshotBytesToBlob(bytes, mimeType = DEFAULT_SNAPSHOT_MIME_TYPE) {
8
+ export function snapshotAsArrayBuffer(bytes) {
23
9
  const copy = new Uint8Array(bytes.byteLength);
24
10
  copy.set(bytes);
25
- return new Blob([copy.buffer], { type: mimeType });
11
+ return copy.buffer;
26
12
  }
27
- export function downloadSnapshotBytes(bytes, filename = DEFAULT_SNAPSHOT_FILENAME, mimeType = DEFAULT_SNAPSHOT_MIME_TYPE) {
28
- const doc = globalThis.document;
29
- const urlApi = globalThis.URL;
30
- if (!doc || !urlApi?.createObjectURL) {
31
- throw new Error("LORA_ERROR: snapshot download requires a browser document");
32
- }
33
- const url = urlApi.createObjectURL(snapshotBytesToBlob(bytes, mimeType));
34
- const anchor = doc.createElement("a");
35
- anchor.href = url;
36
- anchor.download = filename;
37
- if (anchor.style) {
38
- anchor.style.display = "none";
39
- }
40
- doc.body?.appendChild(anchor);
41
- try {
42
- anchor.click();
43
- }
44
- finally {
45
- anchor.remove?.();
46
- setTimeout(() => urlApi.revokeObjectURL(url), 0);
47
- }
13
+ export function snapshotAsBlob(bytes, mimeType = DEFAULT_SNAPSHOT_MIME_TYPE) {
14
+ return new Blob([snapshotAsArrayBuffer(bytes)], { type: mimeType });
48
15
  }
49
- export function resolveSnapshotSaveFormat(target) {
50
- if (target === undefined) {
51
- return { format: "binary" };
52
- }
53
- if (typeof target === "string") {
54
- return { format: target };
16
+ export function snapshotAsResponse(bytes, mimeType = DEFAULT_SNAPSHOT_MIME_TYPE) {
17
+ return new Response(snapshotAsArrayBuffer(bytes), {
18
+ headers: { "content-type": mimeType },
19
+ });
20
+ }
21
+ export function snapshotAsReadableStream(bytes) {
22
+ const copy = new Uint8Array(bytes.byteLength);
23
+ copy.set(bytes);
24
+ return new ReadableStream({
25
+ start(controller) {
26
+ controller.enqueue(copy);
27
+ controller.close();
28
+ },
29
+ });
30
+ }
31
+ export function snapshotAsObjectUrl(bytes, mimeType = DEFAULT_SNAPSHOT_MIME_TYPE) {
32
+ if (typeof URL === "undefined" || typeof URL.createObjectURL !== "function") {
33
+ throw new Error("LORA_CONFIG: snapshot URL output requires URL.createObjectURL");
55
34
  }
56
- return target;
35
+ return new URL(URL.createObjectURL(snapshotAsBlob(bytes, mimeType)));
57
36
  }
58
- export async function snapshotSourceToBytes(source) {
37
+ export async function readSnapshotSource(source) {
59
38
  if (source instanceof Uint8Array || source instanceof ArrayBuffer) {
60
- return bytesToUint8Array(source);
39
+ return asUint8Array(source);
61
40
  }
62
41
  if (typeof Blob !== "undefined" && source instanceof Blob) {
63
42
  return new Uint8Array(await source.arrayBuffer());
64
43
  }
65
44
  if (typeof Response !== "undefined" && source instanceof Response) {
66
- return responseToBytes(source);
45
+ return readSnapshotResponse(source);
46
+ }
47
+ if (source instanceof URL) {
48
+ return readSnapshotResponse(await fetch(source));
67
49
  }
68
50
  if (isReadableStream(source)) {
69
- return readableStreamToBytes(source);
51
+ return readSnapshotStream(source);
70
52
  }
71
- return responseToBytes(await fetch(source));
53
+ throw new Error("LORA_INVALID_PARAMS: unsupported snapshot source");
72
54
  }
73
55
  function isReadableStream(source) {
74
56
  return typeof source.getReader === "function";
75
57
  }
76
- async function readableStreamToBytes(stream) {
58
+ async function readSnapshotStream(stream) {
77
59
  const reader = stream.getReader();
78
60
  const chunks = [];
79
61
  let total = 0;
@@ -89,7 +71,7 @@ async function readableStreamToBytes(stream) {
89
71
  }
90
72
  return merged;
91
73
  }
92
- const chunk = bytesToUint8Array(value);
74
+ const chunk = asUint8Array(value);
93
75
  chunks.push(chunk);
94
76
  total += chunk.byteLength;
95
77
  }
@@ -98,9 +80,9 @@ async function readableStreamToBytes(stream) {
98
80
  reader.releaseLock();
99
81
  }
100
82
  }
101
- async function responseToBytes(response) {
83
+ async function readSnapshotResponse(response) {
102
84
  if (!response.ok) {
103
- throw new Error(`LORA_ERROR: snapshot fetch failed (${response.status} ${response.statusText})`);
85
+ throw new Error(`LORA_IO: snapshot fetch failed (${response.status} ${response.statusText})`);
104
86
  }
105
87
  return new Uint8Array(await response.arrayBuffer());
106
88
  }
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../ts/snapshot.ts"],"names":[],"mappings":"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"}
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.
@@ -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
- * - `LORA_ERROR` — parse / analyze / execute failure
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 = "LORA_ERROR" | "INVALID_PARAMS" | "WORKER_ERROR" | "UNKNOWN";
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.
@@ -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":"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,GACT,UAAU,GACV,UAAU,CAAC;AAEf,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAMnD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,cAAc,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAMD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB;IACnB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,4CAA4C;IAC5C,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,eAAe,CAAC;IACtB,kCAAkC;IAClC,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,MAAM,GACN,WAAW,GACX,UAAU,GACV,eAAe,GACf,UAAU,CAAC;AAEf,MAAM,MAAM,YAAY,GACpB,QAAQ,GACR,QAAQ,GACR,aAAa,GACb,YAAY,GACZ,iBAAiB,GACjB,YAAY,CAAC;AAMjB;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEtD;;;;GAIG;AACH,MAAM,MAAM,YAAY,GACpB,WAAW,GACX,cAAc,GACd,WAAW,GACX,WAAW,CAAC;AAEhB,0BAA0B;AAC1B,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,IAAI,CAAC;IACX,GAAG,EAAE,WAAW,CAAC;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,0BAA0B;AAC1B,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,IAAI,CAAC;IACX,GAAG,EAAE,cAAc,CAAC;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,IAAI,CAAC;IACX,GAAG,EAAE,WAAW,CAAC;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,IAAI,CAAC;IACX,GAAG,EAAE,WAAW,CAAC;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,MAAM,SAAS,GACjB,kBAAkB,GAClB,oBAAoB,GACpB,cAAc,GACd,gBAAgB,CAAC;AAMrB;;;;;GAKG;AACH,MAAM,MAAM,wBAAwB,GAChC,SAAS,GACT,SAAS,GACT,SAAS,GACT,WAAW,GACX,WAAW,GACX,UAAU,CAAC;AAEf;;;;;;;GAOG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,wBAAwB,CAAC;IACzC,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAMD;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC;CACtB;AAMD,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,gBAAgB,GAChB,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,aAAa,GACb,YAAY,GACZ,iBAAiB,GACjB,YAAY,GACZ,SAAS,GACT,UAAU,GACV,UAAU,CAAC;AAEf,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AAE1F,MAAM,WAAW,WAAW,CAC1B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC;IAE/D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;CACrB;AAMD,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,UAAU,CAAC;AAEpD,MAAM,WAAW,YAAY;IAC3B,+HAA+H;IAC/H,EAAE,EAAE,MAAM,CAAC;IACX,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAC;IACjB,iJAAiJ;IACjJ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,6DAA6D;IAC7D,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,aAAa,CAAC;IACrB,+FAA+F;IAC/F,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,IAAI,EAAE,YAAY,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,wFAAwF;IACxF,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,+CAA+C;IAC/C,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE;QACP,gEAAgE;QAChE,cAAc,EAAE,MAAM,CAAC;QACvB,iEAAiE;QACjE,SAAS,EAAE,MAAM,CAAC;QAClB,kDAAkD;QAClD,OAAO,EAAE,OAAO,CAAC;QACjB,gGAAgG;QAChG,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;KAClD,CAAC;CACH;AAMD,wBAAgB,MAAM,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,IAAI,QAAQ,CAElD;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,IAAI,gBAAgB,CAElE;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,IAAI,QAAQ,CAElD;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,IAAI,SAAS,CAEpD;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,IAAI,UAAU,CAEtD;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,IAAI,UAAU,CAEtD;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,IAAI,YAAY,CAW1D;AAMD,eAAO,MAAM,IAAI,GAAI,KAAK,MAAM,KAAG,QAAmC,CAAC;AACvE,eAAO,MAAM,IAAI,GAAI,KAAK,MAAM,KAAG,QAAmC,CAAC;AACvE,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,KAAG,aAA6C,CAAC;AACtF,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,KAAG,YAA2C,CAAC;AACnF,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,KAAG,iBAAqD,CAAC;AAClG,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,KAAG,YAA2C,CAAC;AAEnF;;;;GAIG;AACH,eAAO,MAAM,MAAM,GACjB,QAAQ,MAAM,EAAE,EAChB,WAAW,MAAM,EACjB,gBAAgB,wBAAwB,KACvC,UAAqE,CAAC;AAEzE,eAAO,MAAM,MAAM,GAAI,UAAU,MAAM,EAAE,EAAE,KAAG,UAI5C,CAAC;AAEH,eAAO,MAAM,SAAS,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,KAAG,kBAM/C,CAAC;AAEH,eAAO,MAAM,WAAW,GACtB,GAAG,MAAM,EACT,GAAG,MAAM,EACT,GAAG,MAAM,KACR,oBAOD,CAAC;AAEH,eAAO,MAAM,KAAK,GAChB,WAAW,MAAM,EACjB,UAAU,MAAM,KACf,cAQD,CAAC;AAEH,eAAO,MAAM,QAAQ,GACnB,WAAW,MAAM,EACjB,UAAU,MAAM,EAChB,QAAQ,MAAM,KACb,gBAUD,CAAC;AAMH;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,MAAM,aAAa,GACrB,YAAY,GACZ,eAAe,GACf,qBAAqB,GACrB,gBAAgB,GAChB,gBAAgB,GAChB,iBAAiB,GACjB,qBAAqB,GACrB,cAAc,GACd,oBAAoB,GACpB,aAAa,GACb,SAAS,GACT,qBAAqB,GACrB,mBAAmB,GACnB,qBAAqB,GACrB,sBAAsB,GACtB,eAAe,GACf,cAAc,GACd,SAAS,CAAC;AAEd;;;GAGG;AACH,qBAAa,SAAU,SAAQ,KAAK;IAClC,SAAgB,IAAI,EAAE,aAAa,CAAC;gBAExB,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,aAAyB;CAK7D;AAID;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,KAAK,CAO7C"}
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.
@@ -29,6 +29,9 @@ export function isPoint(v) {
29
29
  export function isVector(v) {
30
30
  return typeof v === "object" && v !== null && !Array.isArray(v) && v.kind === "vector";
31
31
  }
32
+ export function isBinary(v) {
33
+ return typeof v === "object" && v !== null && !Array.isArray(v) && v.kind === "binary";
34
+ }
32
35
  export function isTemporal(v) {
33
36
  if (typeof v !== "object" || v === null || Array.isArray(v))
34
37
  return false;
@@ -55,6 +58,11 @@ export const duration = (iso) => ({ kind: "duration", iso });
55
58
  * back into the next query) work without any conversion.
56
59
  */
57
60
  export const vector = (values, dimension, coordinateType) => ({ kind: "vector", dimension, coordinateType, values });
61
+ export const binary = (segments) => ({
62
+ kind: "binary",
63
+ length: segments.reduce((sum, segment) => sum + segment.length, 0),
64
+ segments,
65
+ });
58
66
  export const cartesian = (x, y) => ({
59
67
  kind: "point",
60
68
  srid: 7203,
@@ -102,7 +110,7 @@ export class LoraError extends Error {
102
110
  this.code = code;
103
111
  }
104
112
  }
105
- const ERROR_PREFIX_RE = /^(LORA_ERROR|INVALID_PARAMS|WORKER_ERROR):\s*(.*)$/s;
113
+ const ERROR_PREFIX_RE = /^(LORA_[A-Z_]+|WORKER_ERROR):\s*(.*)$/s;
106
114
  /**
107
115
  * Normalise a thrown value into a `LoraError` with a narrowed `code`
108
116
  * when the message carries a recognised prefix; otherwise returns the