@moltendb-web/core 1.5.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -16
- package/dist/index.d.ts +13 -5
- package/dist/index.js +44 -11
- package/dist/moltendb-worker.js +1 -1
- package/dist/wasm/moltendb_core.d.ts +9 -6
- package/dist/wasm/moltendb_core.js +16 -13
- package/dist/wasm/moltendb_core_bg.wasm +0 -0
- package/dist/wasm/moltendb_core_bg.wasm.d.ts +3 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
[](https://www.npmjs.com/package/@moltendb-web/core)
|
|
12
12
|
[](LICENSE.md)
|
|
13
13
|
[](https://webassembly.org/)
|
|
14
|
-
[]()
|
|
15
15
|
|
|
16
16
|
</div>
|
|
17
17
|
|
|
@@ -23,7 +23,7 @@ MoltenDb is a JSON document database written in Rust that runs directly in your
|
|
|
23
23
|
|
|
24
24
|
Beyond being a full-featured embedded database, MoltenDb can also serve as a **persistent state manager** for your application. Because all data is written to OPFS, your app's state survives page reloads, browser crashes, and unexpected connection loss — your users will never lose their work.
|
|
25
25
|
|
|
26
|
-
>
|
|
26
|
+
> **✅ Stable** — The core engine, multi-tab sync, storage layer, and **transparent at-rest encryption** are feature-complete and stabilised. Server sync and analytics are planned for a future release.
|
|
27
27
|
|
|
28
28
|
### 🎮 Explore the Full Functionality
|
|
29
29
|
|
|
@@ -220,6 +220,8 @@ MoltenDb supports a variety of operators in the `where` clause:
|
|
|
220
220
|
| `$contains` | `$ct` | Substring check (string) or membership check (array) |
|
|
221
221
|
| `$in` | `$oneOf` | Field value is one of a list |
|
|
222
222
|
| `$nin` | `$notIn` | Field value is not in a list |
|
|
223
|
+
| `$or` | | At least one of the sub-conditions must match (array of where-style objects) |
|
|
224
|
+
| `$and` | | All sub-conditions must match (array of where-style objects) |
|
|
223
225
|
|
|
224
226
|
// Inline reference embedding (`extends`)
|
|
225
227
|
|
|
@@ -266,15 +268,15 @@ await db.init();
|
|
|
266
268
|
|
|
267
269
|
### Options Reference
|
|
268
270
|
|
|
269
|
-
| Property | Type | Default | Description
|
|
270
|
-
| :--- | :--- | :---
|
|
271
|
-
| `hotThreshold` | `number` | `50000` | **Hybrid Bitcask Limit:** Maximum documents per collection to keep in RAM. When exceeded, the oldest documents are paged out to OPFS to save memory.
|
|
272
|
-
| `encryptionKey` | `string` | `undefined` | **At-Rest Encryption:** If provided, all data written to OPFS is encrypted using XChaCha20-Poly1305. If omitted, data is stored as plain JSON.
|
|
271
|
+
| Property | Type | Default | Description |
|
|
272
|
+
| :--- | :--- | :--- |:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
273
|
+
| `hotThreshold` | `number` | `50000` | **Hybrid Bitcask Limit:** Maximum documents per collection to keep in RAM. When exceeded, the oldest documents are paged out to OPFS to save memory. |
|
|
274
|
+
| `encryptionKey` | `string` | `undefined` | **At-Rest Encryption:** If provided, all data written to OPFS is encrypted using XChaCha20-Poly1305. If omitted, data is stored as plain JSON. |
|
|
273
275
|
| `writeMode` | `'async' \| 'sync'` | `'async'` | **Durability vs Speed:** `'async'` is blazing fast (high throughput), while `'sync'` ensures every write is flushed to disk before returning (safer but slower). **Note:** `async` is recommended for most web apps to avoid blocking during heavy write bursts. |
|
|
274
|
-
| `workerUrl` | `string \| URL` | `undefined` | Custom path to the Web Worker script.
|
|
275
|
-
| `maxBodySize` | `number` | `10485760` | **Payload Limit:** Max body size in bytes. Prevents memory spikes from large messages.
|
|
276
|
-
| `
|
|
277
|
-
| `
|
|
276
|
+
| `workerUrl` | `string \| URL` | `undefined` | Custom path to the Web Worker script. |
|
|
277
|
+
| `maxBodySize` | `number` | `10485760` | **Payload Limit:** Max body size in bytes. Prevents memory spikes from large messages. |
|
|
278
|
+
| `maxKeysPerRequest` | `number` | `1000` | **Batch Limit:** Maximum number of keys allowed per JSON request. |
|
|
279
|
+
| `inMemory` | `boolean` | `false` | **Ephemeral Mode:** Run entirely in RAM — no OPFS writes, no WAL. All data is lost when **any** tab refreshes or closes. Ideal for CI environments and ephemeral caches. |
|
|
278
280
|
|
|
279
281
|
---
|
|
280
282
|
## Storage Architecture
|
|
@@ -394,16 +396,16 @@ This monorepo contains the following packages:
|
|
|
394
396
|
|
|
395
397
|
## Roadmap
|
|
396
398
|
|
|
397
|
-
- [x] **Multi-Tab Sync:** Leader election for multiple tabs to share a single OPFS instance
|
|
398
|
-
- [x] **Automatic Compaction:** Log compacts automatically at 500 entries or 5 MB
|
|
399
|
-
- [x] **Rich Test Suite:** 50 unit, integration, and stress tests via Vitest
|
|
399
|
+
- [x] **Multi-Tab Sync:** Leader election for multiple tabs to share a single OPFS instance.
|
|
400
|
+
- [x] **Automatic Compaction:** Log compacts automatically at 500 entries or 5 MB.
|
|
401
|
+
- [x] **Rich Test Suite:** 50 unit, integration, and stress tests via Vitest.
|
|
400
402
|
- [ ] **React Adapter:** Official `@moltendb-web/react` package with `useQuery` hooks and real-time context providers.
|
|
401
403
|
- [x] **Angular Adapter:** Official `@moltendb-web/angular` package featuring Signal-based data fetching.
|
|
402
404
|
- [ ] **Delta Sync:** Automatic two-way sync with the MoltenDb Rust server.
|
|
403
|
-
- [x] **Data Encryption:** Transparent encryption-at-rest using hardware-backed keys (Argon2id + XChaCha20)
|
|
404
|
-
- [x] **Hybrid Bitcask:** Seamlessly handle datasets larger than RAM by paging docs to OPFS
|
|
405
|
+
- [x] **Data Encryption:** Transparent encryption-at-rest using hardware-backed keys (Argon2id + XChaCha20).
|
|
406
|
+
- [x] **Hybrid Bitcask:** Seamlessly handle datasets larger than RAM by paging docs to OPFS.
|
|
405
407
|
- [ ] **Analytics Functionality:** Run complex analytics queries straight in the browser without blocking the UI.
|
|
406
|
-
- [x] **Configurable Limits:** User-defined RAM thresholds and request body sizes for edge and browser environments
|
|
408
|
+
- [x] **Configurable Limits:** User-defined RAM thresholds and request body sizes for edge and browser environments.
|
|
407
409
|
|
|
408
410
|
|
|
409
411
|
## Contributing & Feedback
|
package/dist/index.d.ts
CHANGED
|
@@ -7,12 +7,20 @@ export interface MoltenDbOptions {
|
|
|
7
7
|
encryptionKey?: string;
|
|
8
8
|
/** Storage write mode: 'async' (default, high throughput) or 'sync' (durable). */
|
|
9
9
|
writeMode?: 'async' | 'sync';
|
|
10
|
-
/**
|
|
11
|
-
rateLimitRequests?: number;
|
|
12
|
-
/** (Server only) Rate-limit window size in seconds. */
|
|
13
|
-
rateLimitWindow?: number;
|
|
14
|
-
/** (Server only) Maximum request body size in bytes. */
|
|
10
|
+
/** Maximum request body size in bytes. */
|
|
15
11
|
maxBodySize?: number;
|
|
12
|
+
/** Maximum number of keys allowed per JSON request. Default: 1000. */
|
|
13
|
+
maxKeysPerRequest?: number;
|
|
14
|
+
/**
|
|
15
|
+
* Run entirely in RAM — no OPFS writes.
|
|
16
|
+
*
|
|
17
|
+
* All tabs share a single in-memory store via the leader/follower election.
|
|
18
|
+
* Data persists as long as at least one tab is open.
|
|
19
|
+
* When **any** tab refreshes or closes, the shared RAM store is wiped for all tabs.
|
|
20
|
+
*
|
|
21
|
+
* Default: false.
|
|
22
|
+
*/
|
|
23
|
+
inMemory?: boolean;
|
|
16
24
|
}
|
|
17
25
|
export interface DbEvent {
|
|
18
26
|
type: 'event';
|
package/dist/index.js
CHANGED
|
@@ -46,7 +46,17 @@ export class MoltenDb {
|
|
|
46
46
|
// 1. If initialization has already started or finished, return the existing promise
|
|
47
47
|
if (this.initPromise)
|
|
48
48
|
return this.initPromise;
|
|
49
|
-
// 2.
|
|
49
|
+
// 2. When running in-memory, any tab refresh should wipe the shared RAM store.
|
|
50
|
+
// Broadcast a clear_all signal on beforeunload so the leader can wipe the Rust DashMap.
|
|
51
|
+
if (this.options.inMemory) {
|
|
52
|
+
window.addEventListener('beforeunload', () => {
|
|
53
|
+
try {
|
|
54
|
+
this.bc?.postMessage({ type: 'clear_all' });
|
|
55
|
+
}
|
|
56
|
+
catch { }
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
// 3. Otherwise, start the initialization and store the promise
|
|
50
60
|
this.initPromise = new Promise((resolveInit, rejectInit) => {
|
|
51
61
|
this.bc = new BroadcastChannel(`moltendb_channel_${this.dbName}`);
|
|
52
62
|
navigator.locks.request(`moltendb_lock_${this.dbName}`, { ifAvailable: true }, async (lock) => {
|
|
@@ -76,12 +86,14 @@ export class MoltenDb {
|
|
|
76
86
|
}
|
|
77
87
|
async startAsLeader() {
|
|
78
88
|
// Guard: OPFS is required
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
'
|
|
89
|
+
if (!this.options.inMemory) {
|
|
90
|
+
try {
|
|
91
|
+
await navigator.storage.getDirectory();
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
throw new Error('[MoltenDb] Origin Private File System (OPFS) is not available in this browser context. ' +
|
|
95
|
+
'Try a non-private window or a browser that supports OPFS (Chrome 102+, Firefox 111+, Safari 15.2+).');
|
|
96
|
+
}
|
|
85
97
|
}
|
|
86
98
|
this.isLeader = true;
|
|
87
99
|
if (this.worker)
|
|
@@ -107,15 +119,27 @@ export class MoltenDb {
|
|
|
107
119
|
// Wait for worker to boot
|
|
108
120
|
await this.sendMessage('init', {
|
|
109
121
|
dbName: this.dbName,
|
|
110
|
-
hotThreshold: this.options.hotThreshold,
|
|
111
122
|
encryptionKey: this.options.encryptionKey,
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
rateLimitWindow: this.options.rateLimitWindow,
|
|
123
|
+
hotThreshold: this.options.hotThreshold,
|
|
124
|
+
inMemory: this.options.inMemory,
|
|
115
125
|
maxBodySize: this.options.maxBodySize,
|
|
126
|
+
maxKeysPerRequest: this.options.maxKeysPerRequest,
|
|
127
|
+
writeMode: this.options.writeMode,
|
|
116
128
|
});
|
|
117
129
|
this.bc.onmessage = async (e) => {
|
|
118
130
|
const msg = e.data;
|
|
131
|
+
// Any tab unloading in in-memory mode broadcasts this — wipe the shared RAM store.
|
|
132
|
+
if (msg.type === 'clear_all') {
|
|
133
|
+
try {
|
|
134
|
+
await this.sendMessage('clear', {});
|
|
135
|
+
this.bc.postMessage({ type: 'cleared' });
|
|
136
|
+
console.log('[MoltenDb] In-memory store wiped (tab unloaded).');
|
|
137
|
+
}
|
|
138
|
+
catch (err) {
|
|
139
|
+
console.warn('[MoltenDb] Failed to clear in-memory store:', err);
|
|
140
|
+
}
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
119
143
|
if (msg.type === 'query' && msg.action) {
|
|
120
144
|
try {
|
|
121
145
|
const result = await this.sendMessage(msg.action, msg.payload);
|
|
@@ -139,6 +163,15 @@ export class MoltenDb {
|
|
|
139
163
|
this.dispatchEvent(data); // ⬅️ Trigger new dispatcher
|
|
140
164
|
return;
|
|
141
165
|
}
|
|
166
|
+
// In-memory wipe notification from leader — reject all in-flight requests.
|
|
167
|
+
if (data.type === 'cleared') {
|
|
168
|
+
console.log('[MoltenDb] In-memory store was wiped by another tab.');
|
|
169
|
+
for (const [id, req] of this.pendingRequests) {
|
|
170
|
+
req.reject(new Error('[MoltenDb] In-memory store was cleared by a tab reload.'));
|
|
171
|
+
this.pendingRequests.delete(id);
|
|
172
|
+
}
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
142
175
|
if (data.type === 'response') {
|
|
143
176
|
const req = this.pendingRequests.get(data.id);
|
|
144
177
|
if (req) {
|
package/dist/moltendb-worker.js
CHANGED
|
@@ -9,7 +9,7 @@ self.onmessage = async (e) => {
|
|
|
9
9
|
initPromise = (async () => {
|
|
10
10
|
await init();
|
|
11
11
|
// Pass all config flags to Rust
|
|
12
|
-
const instance = await WorkerDb.create(payload.dbName, payload.hotThreshold, payload.encryptionKey, payload.writeMode, payload.
|
|
12
|
+
const instance = await WorkerDb.create(payload.dbName, payload.hotThreshold, payload.encryptionKey, payload.writeMode, payload.maxBodySize, payload.maxKeysPerRequest, payload.inMemory);
|
|
13
13
|
// Listen to Rust and broadcast events
|
|
14
14
|
instance.subscribe((eventStr) => {
|
|
15
15
|
try {
|
|
@@ -59,11 +59,13 @@ export class WorkerDb {
|
|
|
59
59
|
* * `hot_threshold` — Optional maximum documents per collection to keep in RAM (default: 50,000).
|
|
60
60
|
* * `encryption_key` — Optional password for at-rest encryption.
|
|
61
61
|
* * `write_mode` — Optional write mode: "async" (default) or "sync".
|
|
62
|
-
* * `rate_limit_requests` — Optional max requests per window (default: 100).
|
|
63
|
-
* * `rate_limit_window` — Optional window size in seconds (default: 60).
|
|
64
62
|
* * `max_body_size` — Optional maximum request body size in bytes (default: 10MB).
|
|
63
|
+
* * `max_keys_per_request` — Optional maximum keys allowed per request (default: 1000).
|
|
64
|
+
* * `in_memory` — Optional flag to run entirely in RAM with no OPFS writes (default: false).
|
|
65
|
+
* When `true`, all data is lost when the worker is terminated — useful for ephemeral
|
|
66
|
+
* session caches or testing without touching OPFS storage.
|
|
65
67
|
*/
|
|
66
|
-
static create(db_name: string, hot_threshold?: number | null, encryption_key?: string | null, write_mode?: string | null,
|
|
68
|
+
static create(db_name: string, hot_threshold?: number | null, encryption_key?: string | null, write_mode?: string | null, max_body_size?: number | null, max_keys_per_request?: number | null, in_memory?: boolean | null): Promise<WorkerDb>;
|
|
67
69
|
/**
|
|
68
70
|
* Route an incoming message from the JavaScript worker to the correct handler.
|
|
69
71
|
*
|
|
@@ -80,6 +82,7 @@ export class WorkerDb {
|
|
|
80
82
|
* - "delete" → delete documents or drop: { collection, keys: ... } or { drop: true }
|
|
81
83
|
* - "compact" → compact the OPFS log file
|
|
82
84
|
* - "get_size" → return current OPFS file size in bytes
|
|
85
|
+
* - "clear" → wipe all in-memory state (in-memory mode only)
|
|
83
86
|
*
|
|
84
87
|
* Returns a JsValue result on success, or a JsValue error string on failure.
|
|
85
88
|
*/
|
|
@@ -98,11 +101,11 @@ export interface InitOutput {
|
|
|
98
101
|
readonly memory: WebAssembly.Memory;
|
|
99
102
|
readonly __wbg_workerdb_free: (a: number, b: number) => void;
|
|
100
103
|
readonly workerdb_analytics: (a: number, b: number, c: number, d: number) => void;
|
|
101
|
-
readonly workerdb_create: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j:
|
|
104
|
+
readonly workerdb_create: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => number;
|
|
102
105
|
readonly workerdb_handle_message: (a: number, b: number, c: number) => void;
|
|
103
106
|
readonly workerdb_subscribe: (a: number, b: number) => void;
|
|
104
|
-
readonly
|
|
105
|
-
readonly
|
|
107
|
+
readonly __wasm_bindgen_func_elem_4220: (a: number, b: number, c: number, d: number) => void;
|
|
108
|
+
readonly __wasm_bindgen_func_elem_4230: (a: number, b: number, c: number, d: number) => void;
|
|
106
109
|
readonly __wbindgen_export: (a: number, b: number) => number;
|
|
107
110
|
readonly __wbindgen_export2: (a: number, b: number, c: number, d: number) => number;
|
|
108
111
|
readonly __wbindgen_export3: (a: number) => void;
|
|
@@ -91,26 +91,28 @@ export class WorkerDb {
|
|
|
91
91
|
* * `hot_threshold` — Optional maximum documents per collection to keep in RAM (default: 50,000).
|
|
92
92
|
* * `encryption_key` — Optional password for at-rest encryption.
|
|
93
93
|
* * `write_mode` — Optional write mode: "async" (default) or "sync".
|
|
94
|
-
* * `rate_limit_requests` — Optional max requests per window (default: 100).
|
|
95
|
-
* * `rate_limit_window` — Optional window size in seconds (default: 60).
|
|
96
94
|
* * `max_body_size` — Optional maximum request body size in bytes (default: 10MB).
|
|
95
|
+
* * `max_keys_per_request` — Optional maximum keys allowed per request (default: 1000).
|
|
96
|
+
* * `in_memory` — Optional flag to run entirely in RAM with no OPFS writes (default: false).
|
|
97
|
+
* When `true`, all data is lost when the worker is terminated — useful for ephemeral
|
|
98
|
+
* session caches or testing without touching OPFS storage.
|
|
97
99
|
* @param {string} db_name
|
|
98
100
|
* @param {number | null} [hot_threshold]
|
|
99
101
|
* @param {string | null} [encryption_key]
|
|
100
102
|
* @param {string | null} [write_mode]
|
|
101
|
-
* @param {number | null} [rate_limit_requests]
|
|
102
|
-
* @param {bigint | null} [rate_limit_window]
|
|
103
103
|
* @param {number | null} [max_body_size]
|
|
104
|
+
* @param {number | null} [max_keys_per_request]
|
|
105
|
+
* @param {boolean | null} [in_memory]
|
|
104
106
|
* @returns {Promise<WorkerDb>}
|
|
105
107
|
*/
|
|
106
|
-
static create(db_name, hot_threshold, encryption_key, write_mode,
|
|
108
|
+
static create(db_name, hot_threshold, encryption_key, write_mode, max_body_size, max_keys_per_request, in_memory) {
|
|
107
109
|
const ptr0 = passStringToWasm0(db_name, wasm.__wbindgen_export, wasm.__wbindgen_export2);
|
|
108
110
|
const len0 = WASM_VECTOR_LEN;
|
|
109
111
|
var ptr1 = isLikeNone(encryption_key) ? 0 : passStringToWasm0(encryption_key, wasm.__wbindgen_export, wasm.__wbindgen_export2);
|
|
110
112
|
var len1 = WASM_VECTOR_LEN;
|
|
111
113
|
var ptr2 = isLikeNone(write_mode) ? 0 : passStringToWasm0(write_mode, wasm.__wbindgen_export, wasm.__wbindgen_export2);
|
|
112
114
|
var len2 = WASM_VECTOR_LEN;
|
|
113
|
-
const ret = wasm.workerdb_create(ptr0, len0, isLikeNone(hot_threshold) ? 0x100000001 : (hot_threshold) >>> 0, ptr1, len1, ptr2, len2, isLikeNone(
|
|
115
|
+
const ret = wasm.workerdb_create(ptr0, len0, isLikeNone(hot_threshold) ? 0x100000001 : (hot_threshold) >>> 0, ptr1, len1, ptr2, len2, isLikeNone(max_body_size) ? 0x100000001 : (max_body_size) >>> 0, isLikeNone(max_keys_per_request) ? 0x100000001 : (max_keys_per_request) >>> 0, isLikeNone(in_memory) ? 0xFFFFFF : in_memory ? 1 : 0);
|
|
114
116
|
return takeObject(ret);
|
|
115
117
|
}
|
|
116
118
|
/**
|
|
@@ -129,6 +131,7 @@ export class WorkerDb {
|
|
|
129
131
|
* - "delete" → delete documents or drop: { collection, keys: ... } or { drop: true }
|
|
130
132
|
* - "compact" → compact the OPFS log file
|
|
131
133
|
* - "get_size" → return current OPFS file size in bytes
|
|
134
|
+
* - "clear" → wipe all in-memory state (in-memory mode only)
|
|
132
135
|
*
|
|
133
136
|
* Returns a JsValue result on success, or a JsValue error string on failure.
|
|
134
137
|
* @param {any} data
|
|
@@ -417,7 +420,7 @@ function __wbg_get_imports() {
|
|
|
417
420
|
const a = state0.a;
|
|
418
421
|
state0.a = 0;
|
|
419
422
|
try {
|
|
420
|
-
return
|
|
423
|
+
return __wasm_bindgen_func_elem_4230(a, state0.b, arg0, arg1);
|
|
421
424
|
} finally {
|
|
422
425
|
state0.a = a;
|
|
423
426
|
}
|
|
@@ -564,8 +567,8 @@ function __wbg_get_imports() {
|
|
|
564
567
|
return ret;
|
|
565
568
|
}, arguments); },
|
|
566
569
|
__wbindgen_cast_0000000000000001: function(arg0, arg1) {
|
|
567
|
-
// Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [Externref], shim_idx:
|
|
568
|
-
const ret = makeMutClosure(arg0, arg1,
|
|
570
|
+
// Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [Externref], shim_idx: 774, ret: Result(Unit), inner_ret: Some(Result(Unit)) }, mutable: true }) -> Externref`.
|
|
571
|
+
const ret = makeMutClosure(arg0, arg1, __wasm_bindgen_func_elem_4220);
|
|
569
572
|
return addHeapObject(ret);
|
|
570
573
|
},
|
|
571
574
|
__wbindgen_cast_0000000000000002: function(arg0) {
|
|
@@ -607,10 +610,10 @@ function __wbg_get_imports() {
|
|
|
607
610
|
};
|
|
608
611
|
}
|
|
609
612
|
|
|
610
|
-
function
|
|
613
|
+
function __wasm_bindgen_func_elem_4220(arg0, arg1, arg2) {
|
|
611
614
|
try {
|
|
612
615
|
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
613
|
-
wasm.
|
|
616
|
+
wasm.__wasm_bindgen_func_elem_4220(retptr, arg0, arg1, addHeapObject(arg2));
|
|
614
617
|
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
615
618
|
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
616
619
|
if (r1) {
|
|
@@ -621,8 +624,8 @@ function __wasm_bindgen_func_elem_4053(arg0, arg1, arg2) {
|
|
|
621
624
|
}
|
|
622
625
|
}
|
|
623
626
|
|
|
624
|
-
function
|
|
625
|
-
wasm.
|
|
627
|
+
function __wasm_bindgen_func_elem_4230(arg0, arg1, arg2, arg3) {
|
|
628
|
+
wasm.__wasm_bindgen_func_elem_4230(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
|
|
626
629
|
}
|
|
627
630
|
|
|
628
631
|
const WorkerDbFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
Binary file
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
export const memory: WebAssembly.Memory;
|
|
4
4
|
export const __wbg_workerdb_free: (a: number, b: number) => void;
|
|
5
5
|
export const workerdb_analytics: (a: number, b: number, c: number, d: number) => void;
|
|
6
|
-
export const workerdb_create: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j:
|
|
6
|
+
export const workerdb_create: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => number;
|
|
7
7
|
export const workerdb_handle_message: (a: number, b: number, c: number) => void;
|
|
8
8
|
export const workerdb_subscribe: (a: number, b: number) => void;
|
|
9
|
-
export const
|
|
10
|
-
export const
|
|
9
|
+
export const __wasm_bindgen_func_elem_4220: (a: number, b: number, c: number, d: number) => void;
|
|
10
|
+
export const __wasm_bindgen_func_elem_4230: (a: number, b: number, c: number, d: number) => void;
|
|
11
11
|
export const __wbindgen_export: (a: number, b: number) => number;
|
|
12
12
|
export const __wbindgen_export2: (a: number, b: number, c: number, d: number) => number;
|
|
13
13
|
export const __wbindgen_export3: (a: number) => void;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@moltendb-web/core",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"description": "MoltenDb WASM runtime — the database engine, Web Worker, and main-thread client in one package.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "Maximilian Both <maximilian.both27@outlook.com>",
|