@taladb/web 0.11.2 → 0.11.4
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 +2 -2
- package/package.json +1 -1
- package/pkg/README.md +2 -2
- package/pkg/package.json +1 -1
- package/pkg/taladb_web.d.ts +16 -6
- package/pkg/taladb_web.js +72 -7
- package/pkg/taladb_web_bg.wasm +0 -0
- package/pkg/taladb_web_bg.wasm.d.ts +3 -1
- package/worker/taladb.worker.js +257 -981
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@ Browser WASM bindings for TalaDB — persistent local-first storage via WASM + O
|
|
|
10
10
|
## What it provides
|
|
11
11
|
|
|
12
12
|
- Rust core compiled to WebAssembly via `wasm-bindgen`
|
|
13
|
-
- Persistent storage using [OPFS](https://developer.mozilla.org/en-US/docs/Web/API/File_System_API/Origin_private_file_system) (`FileSystemSyncAccessHandle`) — runs on a
|
|
13
|
+
- Persistent storage using [OPFS](https://developer.mozilla.org/en-US/docs/Web/API/File_System_API/Origin_private_file_system) (`FileSystemSyncAccessHandle`) — runs on a DedicatedWorker so the main thread is never blocked
|
|
14
14
|
- In-memory fallback for environments without OPFS support
|
|
15
15
|
- Bundle size target: < 400 KB gzipped
|
|
16
16
|
|
|
@@ -58,7 +58,7 @@ export default defineConfig({
|
|
|
58
58
|
|
|
59
59
|
### Web Worker (OPFS)
|
|
60
60
|
|
|
61
|
-
TalaDB spawns a
|
|
61
|
+
TalaDB spawns a DedicatedWorker internally to own the OPFS file handle. No extra configuration is required — the worker script is bundled inside this package at `@taladb/web/worker/taladb.worker.js`.
|
|
62
62
|
|
|
63
63
|
## Direct usage (advanced)
|
|
64
64
|
|
package/package.json
CHANGED
package/pkg/README.md
CHANGED
|
@@ -10,7 +10,7 @@ Browser WASM bindings for TalaDB — persistent local-first storage via WASM + O
|
|
|
10
10
|
## What it provides
|
|
11
11
|
|
|
12
12
|
- Rust core compiled to WebAssembly via `wasm-bindgen`
|
|
13
|
-
- Persistent storage using [OPFS](https://developer.mozilla.org/en-US/docs/Web/API/File_System_API/Origin_private_file_system) (`FileSystemSyncAccessHandle`) — runs on a
|
|
13
|
+
- Persistent storage using [OPFS](https://developer.mozilla.org/en-US/docs/Web/API/File_System_API/Origin_private_file_system) (`FileSystemSyncAccessHandle`) — runs on a DedicatedWorker so the main thread is never blocked
|
|
14
14
|
- In-memory fallback for environments without OPFS support
|
|
15
15
|
- Bundle size target: < 400 KB gzipped
|
|
16
16
|
|
|
@@ -58,7 +58,7 @@ export default defineConfig({
|
|
|
58
58
|
|
|
59
59
|
### Web Worker (OPFS)
|
|
60
60
|
|
|
61
|
-
TalaDB spawns a
|
|
61
|
+
TalaDB spawns a DedicatedWorker internally to own the OPFS file handle. No extra configuration is required — the worker script is bundled inside this package at `@taladb/web/worker/taladb.worker.js`.
|
|
62
62
|
|
|
63
63
|
## Direct usage (advanced)
|
|
64
64
|
|
package/pkg/package.json
CHANGED
package/pkg/taladb_web.d.ts
CHANGED
|
@@ -32,7 +32,7 @@ export class CollectionWasm {
|
|
|
32
32
|
* `dimensions` - expected vector length.
|
|
33
33
|
* `metric` - optional: `"cosine"` (default), `"dot"`, or `"euclidean"`.
|
|
34
34
|
* `index_type` - optional: `"flat"` (default) or `"hnsw"`.
|
|
35
|
-
* `hnsw_m` - HNSW connectivity (default
|
|
35
|
+
* `hnsw_m` - HNSW connectivity (2–128, default 32).
|
|
36
36
|
* `hnsw_ef_construction` - build quality (default 200).
|
|
37
37
|
*/
|
|
38
38
|
createVectorIndex(field: string, dimensions: number, metric?: string | null, index_type?: string | null, hnsw_m?: number | null, hnsw_ef_construction?: number | null): void;
|
|
@@ -111,6 +111,10 @@ export class CollectionWasm {
|
|
|
111
111
|
* Rebuild the HNSW graph from the current flat vector table.
|
|
112
112
|
*/
|
|
113
113
|
upgradeVectorIndex(field: string): void;
|
|
114
|
+
/**
|
|
115
|
+
* Internal JSON protocol for advanced vector search and index lifecycle.
|
|
116
|
+
*/
|
|
117
|
+
vectorCommand(request_json: string): string;
|
|
114
118
|
}
|
|
115
119
|
|
|
116
120
|
export class TalaDBWasm {
|
|
@@ -199,7 +203,7 @@ export class WorkerDB {
|
|
|
199
203
|
*
|
|
200
204
|
* - `metric_str`: `"cosine"` (default) | `"dot"` | `"euclidean"`
|
|
201
205
|
* - `index_type`: `"flat"` (default) | `"hnsw"`
|
|
202
|
-
* - `hnsw_m`: HNSW connectivity (
|
|
206
|
+
* - `hnsw_m`: HNSW connectivity (2–128, default 32)
|
|
203
207
|
* - `hnsw_ef_construction`: build-time quality (default 200, only used when `index_type = "hnsw"`)
|
|
204
208
|
*/
|
|
205
209
|
createVectorIndex(collection: string, field: string, dimensions: number, metric_str?: string | null, index_type?: string | null, hnsw_m?: number | null, hnsw_ef_construction?: number | null): void;
|
|
@@ -232,7 +236,7 @@ export class WorkerDB {
|
|
|
232
236
|
* Pass the returned bytes to `idbSaveSnapshot` to persist across page reloads.
|
|
233
237
|
* On next open, pass the same bytes to `openWithSnapshot` to restore all data.
|
|
234
238
|
*/
|
|
235
|
-
exportSnapshot(): Uint8Array;
|
|
239
|
+
exportSnapshot(max_bytes?: number | null): Uint8Array;
|
|
236
240
|
/**
|
|
237
241
|
* Find documents. Returns a JSON array of document objects.
|
|
238
242
|
*/
|
|
@@ -303,7 +307,7 @@ export class WorkerDB {
|
|
|
303
307
|
/**
|
|
304
308
|
* Open a database backed by an OPFS `FileSystemSyncAccessHandle`.
|
|
305
309
|
*
|
|
306
|
-
* Call sequence in the
|
|
310
|
+
* Call sequence in the DedicatedWorker:
|
|
307
311
|
* ```js
|
|
308
312
|
* const handle = await file_handle.createSyncAccessHandle();
|
|
309
313
|
* const workerDb = WorkerDB.openWithOpfs(handle);
|
|
@@ -355,7 +359,7 @@ export class WorkerDB {
|
|
|
355
359
|
* Rebuild the HNSW graph for a vector index from the current flat vector
|
|
356
360
|
* table. Use after bulk inserts or when ANN recall has degraded.
|
|
357
361
|
*
|
|
358
|
-
*
|
|
362
|
+
* A flat index is promoted with default HNSW options.
|
|
359
363
|
*/
|
|
360
364
|
upgradeVectorIndex(collection: string, field: string): void;
|
|
361
365
|
/**
|
|
@@ -376,6 +380,10 @@ export class WorkerDB {
|
|
|
376
380
|
* the `openDB({ migrations })` runner, which advances it per migration.
|
|
377
381
|
*/
|
|
378
382
|
userVersion(): number;
|
|
383
|
+
/**
|
|
384
|
+
* Internal JSON protocol for advanced vector search and index lifecycle.
|
|
385
|
+
*/
|
|
386
|
+
vectorCommand(collection: string, request_json: string): string;
|
|
379
387
|
/**
|
|
380
388
|
* This collection's write generation — a counter bumped once per committed
|
|
381
389
|
* mutation.
|
|
@@ -465,6 +473,7 @@ export interface InitOutput {
|
|
|
465
473
|
readonly collectionwasm_updateMany: (a: number, b: any, c: any) => [number, number, number];
|
|
466
474
|
readonly collectionwasm_updateOne: (a: number, b: any, c: any) => [number, number, number];
|
|
467
475
|
readonly collectionwasm_upgradeVectorIndex: (a: number, b: number, c: number) => [number, number];
|
|
476
|
+
readonly collectionwasm_vectorCommand: (a: number, b: number, c: number) => [number, number, number, number];
|
|
468
477
|
readonly idb_load_snapshot: (a: number, b: number) => any;
|
|
469
478
|
readonly idb_save_snapshot: (a: number, b: number, c: number, d: number) => any;
|
|
470
479
|
readonly is_opfs_available: () => any;
|
|
@@ -493,7 +502,7 @@ export interface InitOutput {
|
|
|
493
502
|
readonly workerdb_dropFtsIndex: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
494
503
|
readonly workerdb_dropIndex: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
495
504
|
readonly workerdb_dropVectorIndex: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
496
|
-
readonly workerdb_exportSnapshot: (a: number) => [number, number, number, number];
|
|
505
|
+
readonly workerdb_exportSnapshot: (a: number, b: number) => [number, number, number, number];
|
|
497
506
|
readonly workerdb_find: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
498
507
|
readonly workerdb_findNearest: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => [number, number, number, number];
|
|
499
508
|
readonly workerdb_findOne: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
@@ -516,6 +525,7 @@ export interface InitOutput {
|
|
|
516
525
|
readonly workerdb_upgradeVectorIndex: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
517
526
|
readonly workerdb_upsertManyWithIds: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
518
527
|
readonly workerdb_userVersion: (a: number) => [number, number, number];
|
|
528
|
+
readonly workerdb_vectorCommand: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
519
529
|
readonly workerdb_writeGeneration: (a: number, b: number, c: number) => [number, number, number];
|
|
520
530
|
readonly init: () => void;
|
|
521
531
|
readonly wasm_bindgen_e9a25e3ce4b9afff___closure__destroy___dyn_core_f0fd674eaa06beef___ops__function__FnMut__wasm_bindgen_e9a25e3ce4b9afff___JsValue____Output_______: (a: number, b: number) => void;
|
package/pkg/taladb_web.js
CHANGED
|
@@ -85,7 +85,7 @@ export class CollectionWasm {
|
|
|
85
85
|
* `dimensions` - expected vector length.
|
|
86
86
|
* `metric` - optional: `"cosine"` (default), `"dot"`, or `"euclidean"`.
|
|
87
87
|
* `index_type` - optional: `"flat"` (default) or `"hnsw"`.
|
|
88
|
-
* `hnsw_m` - HNSW connectivity (default
|
|
88
|
+
* `hnsw_m` - HNSW connectivity (2–128, default 32).
|
|
89
89
|
* `hnsw_ef_construction` - build quality (default 200).
|
|
90
90
|
* @param {string} field
|
|
91
91
|
* @param {number} dimensions
|
|
@@ -351,6 +351,31 @@ export class CollectionWasm {
|
|
|
351
351
|
throw takeFromExternrefTable0(ret[0]);
|
|
352
352
|
}
|
|
353
353
|
}
|
|
354
|
+
/**
|
|
355
|
+
* Internal JSON protocol for advanced vector search and index lifecycle.
|
|
356
|
+
* @param {string} request_json
|
|
357
|
+
* @returns {string}
|
|
358
|
+
*/
|
|
359
|
+
vectorCommand(request_json) {
|
|
360
|
+
let deferred3_0;
|
|
361
|
+
let deferred3_1;
|
|
362
|
+
try {
|
|
363
|
+
const ptr0 = passStringToWasm0(request_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
364
|
+
const len0 = WASM_VECTOR_LEN;
|
|
365
|
+
const ret = wasm.collectionwasm_vectorCommand(this.__wbg_ptr, ptr0, len0);
|
|
366
|
+
var ptr2 = ret[0];
|
|
367
|
+
var len2 = ret[1];
|
|
368
|
+
if (ret[3]) {
|
|
369
|
+
ptr2 = 0; len2 = 0;
|
|
370
|
+
throw takeFromExternrefTable0(ret[2]);
|
|
371
|
+
}
|
|
372
|
+
deferred3_0 = ptr2;
|
|
373
|
+
deferred3_1 = len2;
|
|
374
|
+
return getStringFromWasm0(ptr2, len2);
|
|
375
|
+
} finally {
|
|
376
|
+
wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
|
|
377
|
+
}
|
|
378
|
+
}
|
|
354
379
|
}
|
|
355
380
|
if (Symbol.dispose) CollectionWasm.prototype[Symbol.dispose] = CollectionWasm.prototype.free;
|
|
356
381
|
|
|
@@ -606,7 +631,7 @@ export class WorkerDB {
|
|
|
606
631
|
*
|
|
607
632
|
* - `metric_str`: `"cosine"` (default) | `"dot"` | `"euclidean"`
|
|
608
633
|
* - `index_type`: `"flat"` (default) | `"hnsw"`
|
|
609
|
-
* - `hnsw_m`: HNSW connectivity (
|
|
634
|
+
* - `hnsw_m`: HNSW connectivity (2–128, default 32)
|
|
610
635
|
* - `hnsw_ef_construction`: build-time quality (default 200, only used when `index_type = "hnsw"`)
|
|
611
636
|
* @param {string} collection
|
|
612
637
|
* @param {string} field
|
|
@@ -745,10 +770,11 @@ export class WorkerDB {
|
|
|
745
770
|
*
|
|
746
771
|
* Pass the returned bytes to `idbSaveSnapshot` to persist across page reloads.
|
|
747
772
|
* On next open, pass the same bytes to `openWithSnapshot` to restore all data.
|
|
773
|
+
* @param {number | null} [max_bytes]
|
|
748
774
|
* @returns {Uint8Array}
|
|
749
775
|
*/
|
|
750
|
-
exportSnapshot() {
|
|
751
|
-
const ret = wasm.workerdb_exportSnapshot(this.__wbg_ptr);
|
|
776
|
+
exportSnapshot(max_bytes) {
|
|
777
|
+
const ret = wasm.workerdb_exportSnapshot(this.__wbg_ptr, isLikeNone(max_bytes) ? 0x100000001 : (max_bytes) >>> 0);
|
|
752
778
|
if (ret[3]) {
|
|
753
779
|
throw takeFromExternrefTable0(ret[2]);
|
|
754
780
|
}
|
|
@@ -1074,7 +1100,7 @@ export class WorkerDB {
|
|
|
1074
1100
|
/**
|
|
1075
1101
|
* Open a database backed by an OPFS `FileSystemSyncAccessHandle`.
|
|
1076
1102
|
*
|
|
1077
|
-
* Call sequence in the
|
|
1103
|
+
* Call sequence in the DedicatedWorker:
|
|
1078
1104
|
* ```js
|
|
1079
1105
|
* const handle = await file_handle.createSyncAccessHandle();
|
|
1080
1106
|
* const workerDb = WorkerDB.openWithOpfs(handle);
|
|
@@ -1219,7 +1245,7 @@ export class WorkerDB {
|
|
|
1219
1245
|
* Rebuild the HNSW graph for a vector index from the current flat vector
|
|
1220
1246
|
* table. Use after bulk inserts or when ANN recall has degraded.
|
|
1221
1247
|
*
|
|
1222
|
-
*
|
|
1248
|
+
* A flat index is promoted with default HNSW options.
|
|
1223
1249
|
* @param {string} collection
|
|
1224
1250
|
* @param {string} field
|
|
1225
1251
|
*/
|
|
@@ -1282,6 +1308,34 @@ export class WorkerDB {
|
|
|
1282
1308
|
}
|
|
1283
1309
|
return ret[0] >>> 0;
|
|
1284
1310
|
}
|
|
1311
|
+
/**
|
|
1312
|
+
* Internal JSON protocol for advanced vector search and index lifecycle.
|
|
1313
|
+
* @param {string} collection
|
|
1314
|
+
* @param {string} request_json
|
|
1315
|
+
* @returns {string}
|
|
1316
|
+
*/
|
|
1317
|
+
vectorCommand(collection, request_json) {
|
|
1318
|
+
let deferred4_0;
|
|
1319
|
+
let deferred4_1;
|
|
1320
|
+
try {
|
|
1321
|
+
const ptr0 = passStringToWasm0(collection, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
1322
|
+
const len0 = WASM_VECTOR_LEN;
|
|
1323
|
+
const ptr1 = passStringToWasm0(request_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
1324
|
+
const len1 = WASM_VECTOR_LEN;
|
|
1325
|
+
const ret = wasm.workerdb_vectorCommand(this.__wbg_ptr, ptr0, len0, ptr1, len1);
|
|
1326
|
+
var ptr3 = ret[0];
|
|
1327
|
+
var len3 = ret[1];
|
|
1328
|
+
if (ret[3]) {
|
|
1329
|
+
ptr3 = 0; len3 = 0;
|
|
1330
|
+
throw takeFromExternrefTable0(ret[2]);
|
|
1331
|
+
}
|
|
1332
|
+
deferred4_0 = ptr3;
|
|
1333
|
+
deferred4_1 = len3;
|
|
1334
|
+
return getStringFromWasm0(ptr3, len3);
|
|
1335
|
+
} finally {
|
|
1336
|
+
wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);
|
|
1337
|
+
}
|
|
1338
|
+
}
|
|
1285
1339
|
/**
|
|
1286
1340
|
* This collection's write generation — a counter bumped once per committed
|
|
1287
1341
|
* mutation.
|
|
@@ -1562,6 +1616,9 @@ function __wbg_get_imports() {
|
|
|
1562
1616
|
const ret = arg0.getFile();
|
|
1563
1617
|
return ret;
|
|
1564
1618
|
},
|
|
1619
|
+
__wbg_getRandomValues_3f44b700395062e5: function() { return handleError(function (arg0, arg1) {
|
|
1620
|
+
globalThis.crypto.getRandomValues(getArrayU8FromWasm0(arg0, arg1));
|
|
1621
|
+
}, arguments); },
|
|
1565
1622
|
__wbg_getRandomValues_76dfc69825c9c552: function() { return handleError(function (arg0, arg1) {
|
|
1566
1623
|
globalThis.crypto.getRandomValues(getArrayU8FromWasm0(arg0, arg1));
|
|
1567
1624
|
}, arguments); },
|
|
@@ -1785,6 +1842,14 @@ function __wbg_get_imports() {
|
|
|
1785
1842
|
const ret = Date.now();
|
|
1786
1843
|
return ret;
|
|
1787
1844
|
},
|
|
1845
|
+
__wbg_now_e7c6795a7f81e10f: function(arg0) {
|
|
1846
|
+
const ret = arg0.now();
|
|
1847
|
+
return ret;
|
|
1848
|
+
},
|
|
1849
|
+
__wbg_performance_3fcf6e32a7e1ed0a: function(arg0) {
|
|
1850
|
+
const ret = arg0.performance;
|
|
1851
|
+
return ret;
|
|
1852
|
+
},
|
|
1788
1853
|
__wbg_prototypesetcall_d62e5099504357e6: function(arg0, arg1, arg2) {
|
|
1789
1854
|
Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2);
|
|
1790
1855
|
},
|
|
@@ -1880,7 +1945,7 @@ function __wbg_get_imports() {
|
|
|
1880
1945
|
return ret;
|
|
1881
1946
|
},
|
|
1882
1947
|
__wbindgen_cast_0000000000000002: function(arg0, arg1) {
|
|
1883
|
-
// Cast intrinsic for `Closure(Closure { dtor_idx:
|
|
1948
|
+
// Cast intrinsic for `Closure(Closure { dtor_idx: 623, function: Function { arguments: [Externref], shim_idx: 624, ret: Result(Unit), inner_ret: Some(Result(Unit)) }, mutable: true }) -> Externref`.
|
|
1884
1949
|
const ret = makeMutClosure(arg0, arg1, wasm.wasm_bindgen_e9a25e3ce4b9afff___closure__destroy___dyn_core_f0fd674eaa06beef___ops__function__FnMut__wasm_bindgen_e9a25e3ce4b9afff___JsValue____Output___core_f0fd674eaa06beef___result__Result_____wasm_bindgen_e9a25e3ce4b9afff___JsError___, wasm_bindgen_e9a25e3ce4b9afff___convert__closures_____invoke___wasm_bindgen_e9a25e3ce4b9afff___JsValue__core_f0fd674eaa06beef___result__Result_____wasm_bindgen_e9a25e3ce4b9afff___JsError___true_);
|
|
1885
1950
|
return ret;
|
|
1886
1951
|
},
|
package/pkg/taladb_web_bg.wasm
CHANGED
|
Binary file
|
|
@@ -26,6 +26,7 @@ export const collectionwasm_searchText: (a: number, b: number, c: number, d: num
|
|
|
26
26
|
export const collectionwasm_updateMany: (a: number, b: any, c: any) => [number, number, number];
|
|
27
27
|
export const collectionwasm_updateOne: (a: number, b: any, c: any) => [number, number, number];
|
|
28
28
|
export const collectionwasm_upgradeVectorIndex: (a: number, b: number, c: number) => [number, number];
|
|
29
|
+
export const collectionwasm_vectorCommand: (a: number, b: number, c: number) => [number, number, number, number];
|
|
29
30
|
export const idb_load_snapshot: (a: number, b: number) => any;
|
|
30
31
|
export const idb_save_snapshot: (a: number, b: number, c: number, d: number) => any;
|
|
31
32
|
export const is_opfs_available: () => any;
|
|
@@ -54,7 +55,7 @@ export const workerdb_dropCompoundIndex: (a: number, b: number, c: number, d: nu
|
|
|
54
55
|
export const workerdb_dropFtsIndex: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
55
56
|
export const workerdb_dropIndex: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
56
57
|
export const workerdb_dropVectorIndex: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
57
|
-
export const workerdb_exportSnapshot: (a: number) => [number, number, number, number];
|
|
58
|
+
export const workerdb_exportSnapshot: (a: number, b: number) => [number, number, number, number];
|
|
58
59
|
export const workerdb_find: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
59
60
|
export const workerdb_findNearest: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => [number, number, number, number];
|
|
60
61
|
export const workerdb_findOne: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
@@ -77,6 +78,7 @@ export const workerdb_updateOne: (a: number, b: number, c: number, d: number, e:
|
|
|
77
78
|
export const workerdb_upgradeVectorIndex: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
78
79
|
export const workerdb_upsertManyWithIds: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
79
80
|
export const workerdb_userVersion: (a: number) => [number, number, number];
|
|
81
|
+
export const workerdb_vectorCommand: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
80
82
|
export const workerdb_writeGeneration: (a: number, b: number, c: number) => [number, number, number];
|
|
81
83
|
export const init: () => void;
|
|
82
84
|
export const wasm_bindgen_e9a25e3ce4b9afff___closure__destroy___dyn_core_f0fd674eaa06beef___ops__function__FnMut__wasm_bindgen_e9a25e3ce4b9afff___JsValue____Output_______: (a: number, b: number) => void;
|