@moltendb-web/query 0.4.0 → 1.0.0-rc.1
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/LICENSE.md +21 -0
- package/README.md +12 -6
- package/dist/index.d.ts +0 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +0 -41
- package/dist/index.js +1 -42
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/index.ts +0 -44
package/LICENSE.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Maximilian Both
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -25,12 +25,12 @@ import { MoltenDB } from '@moltendb-web/core';
|
|
|
25
25
|
import { MoltenDBClient, WorkerTransport } from '@moltendb-web/query';
|
|
26
26
|
|
|
27
27
|
// 1. Initialize the Core Engine (boots WASM worker)
|
|
28
|
-
const
|
|
29
|
-
const db = new MoltenDB('moltendb_demo', { syncEnabled: false, workerUrl });
|
|
28
|
+
const db = new MoltenDB('moltendb_demo');
|
|
30
29
|
await db.init();
|
|
31
30
|
|
|
32
31
|
// 2. Connect the Query Builder to the worker
|
|
33
|
-
const client = new MoltenDBClient(
|
|
32
|
+
const client = new MoltenDBClient(db);
|
|
33
|
+
|
|
34
34
|
// SET — insert / upsert
|
|
35
35
|
await client.collection('laptops')
|
|
36
36
|
.set({
|
|
@@ -214,7 +214,7 @@ class FetchTransport implements MoltenTransport {
|
|
|
214
214
|
}
|
|
215
215
|
}
|
|
216
216
|
|
|
217
|
-
const db = new MoltenDBClient(new FetchTransport('https://
|
|
217
|
+
const db = new MoltenDBClient(new FetchTransport('[https://api.mydomain.com](https://api.mydomain.com)', myToken));
|
|
218
218
|
```
|
|
219
219
|
|
|
220
220
|
---
|
|
@@ -222,11 +222,17 @@ const db = new MoltenDBClient(new FetchTransport('https://localhost:1538', myTok
|
|
|
222
222
|
## Build
|
|
223
223
|
|
|
224
224
|
```bash
|
|
225
|
-
npm run
|
|
225
|
+
npm run build # Builds CJS, ESM, and type declarations
|
|
226
|
+
npm run typecheck # Type-check without emitting
|
|
227
|
+
npm run test # Run the Jest test suite
|
|
226
228
|
```
|
|
227
229
|
|
|
230
|
+
## Contributing & Feedback
|
|
231
|
+
|
|
232
|
+
Found a bug or have a feature request? Please open an issue on the [GitHub issue tracker](https://github.com/maximilian27/moltendb-web/issues).
|
|
233
|
+
|
|
228
234
|
---
|
|
229
235
|
|
|
230
236
|
## License
|
|
231
237
|
|
|
232
|
-
MIT
|
|
238
|
+
MIT
|
package/dist/index.d.ts
CHANGED
|
@@ -64,21 +64,6 @@ export type ExtendsMap = {
|
|
|
64
64
|
export interface MoltenTransport {
|
|
65
65
|
sendMessage(action: 'get' | 'set' | 'update' | 'delete', payload: Document): Promise<JsonValue>;
|
|
66
66
|
}
|
|
67
|
-
/**
|
|
68
|
-
* Default transport that communicates with a MoltenDB Web Worker.
|
|
69
|
-
*
|
|
70
|
-
* The worker must follow the moltendb-worker.js message protocol:
|
|
71
|
-
* postMessage({ id, action, ...payload })
|
|
72
|
-
* onmessage → { id, result } | { id, error }
|
|
73
|
-
*/
|
|
74
|
-
export declare class WorkerTransport implements MoltenTransport {
|
|
75
|
-
private worker;
|
|
76
|
-
private messageId;
|
|
77
|
-
private pending;
|
|
78
|
-
onEvent?: (event: any) => void;
|
|
79
|
-
constructor(worker: Worker, startId?: number);
|
|
80
|
-
sendMessage(action: 'get' | 'set' | 'update' | 'delete', payload: Document): Promise<JsonValue>;
|
|
81
|
-
}
|
|
82
67
|
/**
|
|
83
68
|
* Builder for GET (read/query) operations.
|
|
84
69
|
*
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA4CA,uCAAuC;AACvC,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,EAAE,GACX;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAEjC,mEAAmE;AACnE,MAAM,MAAM,QAAQ,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAEpD,yEAAyE;AACzE,MAAM,MAAM,OAAO,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAA;CAAE,CAAC;AAIlD,wDAAwD;AACxD,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC;IAClB,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,CAAC;CAC7C,CAAC;AAIF,mCAAmC;AACnC,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CACxB;AAID,mCAAmC;AACnC,MAAM,WAAW,QAAQ;IACvB,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,EAAE,EAAE,MAAM,CAAC;IACX,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAID;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AAIrD;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,MAAM,EAAE,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,EAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;CACjG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.esm.js
CHANGED
|
@@ -40,47 +40,6 @@
|
|
|
40
40
|
// await db.collection('laptops').delete().drop().exec();
|
|
41
41
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
42
42
|
|
|
43
|
-
// ─── WorkerTransport ──────────────────────────────────────────────────────────
|
|
44
|
-
/**
|
|
45
|
-
* Default transport that communicates with a MoltenDB Web Worker.
|
|
46
|
-
*
|
|
47
|
-
* The worker must follow the moltendb-worker.js message protocol:
|
|
48
|
-
* postMessage({ id, action, ...payload })
|
|
49
|
-
* onmessage → { id, result } | { id, error }
|
|
50
|
-
*/
|
|
51
|
-
class WorkerTransport {
|
|
52
|
-
constructor(worker, startId = 0) {
|
|
53
|
-
this.pending = new Map();
|
|
54
|
-
this.messageId = startId;
|
|
55
|
-
this.worker = worker;
|
|
56
|
-
this.worker.addEventListener('message', (event) => {
|
|
57
|
-
// 1. Intercept unsolicited broadcast events from the Rust core
|
|
58
|
-
if (event.data && event.data.type === 'event') {
|
|
59
|
-
if (this.onEvent)
|
|
60
|
-
this.onEvent(event.data);
|
|
61
|
-
return; // Don't try to process this as a promise resolution
|
|
62
|
-
}
|
|
63
|
-
// 2. Standard request/response routing
|
|
64
|
-
const { id, result, error } = event.data;
|
|
65
|
-
const p = this.pending.get(id);
|
|
66
|
-
if (!p)
|
|
67
|
-
return;
|
|
68
|
-
this.pending.delete(id);
|
|
69
|
-
if (error)
|
|
70
|
-
p.reject(new Error(error));
|
|
71
|
-
else
|
|
72
|
-
p.resolve(result ?? null);
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
sendMessage(action, payload) {
|
|
76
|
-
return new Promise((resolve, reject) => {
|
|
77
|
-
const id = this.messageId++;
|
|
78
|
-
this.pending.set(id, { resolve, reject });
|
|
79
|
-
this.worker.postMessage({ id, action, ...payload });
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
export { WorkerTransport as WorkerTransport };
|
|
84
43
|
// ─── GetQuery ─────────────────────────────────────────────────────────────────
|
|
85
44
|
/**
|
|
86
45
|
* Builder for GET (read/query) operations.
|
package/dist/index.js
CHANGED
|
@@ -41,48 +41,7 @@
|
|
|
41
41
|
// await db.collection('laptops').delete().drop().exec();
|
|
42
42
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
43
43
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
44
|
-
exports.MoltenDBClient = exports.CollectionHandle = exports.DeleteQuery = exports.UpdateQuery = exports.SetQuery = exports.GetQuery =
|
|
45
|
-
// ─── WorkerTransport ──────────────────────────────────────────────────────────
|
|
46
|
-
/**
|
|
47
|
-
* Default transport that communicates with a MoltenDB Web Worker.
|
|
48
|
-
*
|
|
49
|
-
* The worker must follow the moltendb-worker.js message protocol:
|
|
50
|
-
* postMessage({ id, action, ...payload })
|
|
51
|
-
* onmessage → { id, result } | { id, error }
|
|
52
|
-
*/
|
|
53
|
-
class WorkerTransport {
|
|
54
|
-
constructor(worker, startId = 0) {
|
|
55
|
-
this.pending = new Map();
|
|
56
|
-
this.messageId = startId;
|
|
57
|
-
this.worker = worker;
|
|
58
|
-
this.worker.addEventListener('message', (event) => {
|
|
59
|
-
// 1. Intercept unsolicited broadcast events from the Rust core
|
|
60
|
-
if (event.data && event.data.type === 'event') {
|
|
61
|
-
if (this.onEvent)
|
|
62
|
-
this.onEvent(event.data);
|
|
63
|
-
return; // Don't try to process this as a promise resolution
|
|
64
|
-
}
|
|
65
|
-
// 2. Standard request/response routing
|
|
66
|
-
const { id, result, error } = event.data;
|
|
67
|
-
const p = this.pending.get(id);
|
|
68
|
-
if (!p)
|
|
69
|
-
return;
|
|
70
|
-
this.pending.delete(id);
|
|
71
|
-
if (error)
|
|
72
|
-
p.reject(new Error(error));
|
|
73
|
-
else
|
|
74
|
-
p.resolve(result ?? null);
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
sendMessage(action, payload) {
|
|
78
|
-
return new Promise((resolve, reject) => {
|
|
79
|
-
const id = this.messageId++;
|
|
80
|
-
this.pending.set(id, { resolve, reject });
|
|
81
|
-
this.worker.postMessage({ id, action, ...payload });
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
exports.WorkerTransport = WorkerTransport;
|
|
44
|
+
exports.MoltenDBClient = exports.CollectionHandle = exports.DeleteQuery = exports.UpdateQuery = exports.SetQuery = exports.GetQuery = void 0;
|
|
86
45
|
// ─── GetQuery ─────────────────────────────────────────────────────────────────
|
|
87
46
|
/**
|
|
88
47
|
* Builder for GET (read/query) operations.
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,iFAAiF;AACjF,mDAAmD;AACnD,EAAE;AACF,yEAAyE;AACzE,6EAA6E;AAC7E,iBAAiB;AACjB,EAAE;AACF,qEAAqE;AACrE,+CAA+C;AAC/C,8CAA8C;AAC9C,qCAAqC;AACrC,2CAA2C;AAC3C,EAAE;AACF,oCAAoC;AACpC,EAAE;AACF,2CAA2C;AAC3C,EAAE;AACF,6BAA6B;AAC7B,mDAAmD;AACnD,aAAa;AACb,iCAAiC;AACjC,2CAA2C;AAC3C,gDAAgD;AAChD,iBAAiB;AACjB,eAAe;AACf,EAAE;AACF,2BAA2B;AAC3B,mCAAmC;AACnC,sDAAsD;AACtD,eAAe;AACf,EAAE;AACF,8BAA8B;AAC9B,mCAAmC;AACnC,wDAAwD;AACxD,eAAe;AACf,EAAE;AACF,2CAA2C;AAC3C,gEAAgE;AAChE,yEAAyE;AACzE,2DAA2D;AAC3D,gFAAgF;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@moltendb-web/query",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0-rc.1",
|
|
4
4
|
"description": "Type-safe query builder for MoltenDB — chainable API for get, set, update and delete operations.",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.esm.js",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"test": "node --experimental-vm-modules node_modules/.bin/jest"
|
|
27
27
|
},
|
|
28
28
|
"keywords": ["moltendb", "database", "query-builder", "nosql", "wasm"],
|
|
29
|
-
"license": "MIT
|
|
29
|
+
"license": "MIT",
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"typescript": "^6.0.
|
|
31
|
+
"typescript": "^6.0.2"
|
|
32
32
|
}
|
|
33
33
|
}
|
package/src/index.ts
CHANGED
|
@@ -125,50 +125,6 @@ export interface MoltenTransport {
|
|
|
125
125
|
sendMessage(action: 'get' | 'set' | 'update' | 'delete', payload: Document): Promise<JsonValue>;
|
|
126
126
|
}
|
|
127
127
|
|
|
128
|
-
// ─── WorkerTransport ──────────────────────────────────────────────────────────
|
|
129
|
-
|
|
130
|
-
/**
|
|
131
|
-
* Default transport that communicates with a MoltenDB Web Worker.
|
|
132
|
-
*
|
|
133
|
-
* The worker must follow the moltendb-worker.js message protocol:
|
|
134
|
-
* postMessage({ id, action, ...payload })
|
|
135
|
-
* onmessage → { id, result } | { id, error }
|
|
136
|
-
*/
|
|
137
|
-
export class WorkerTransport implements MoltenTransport {
|
|
138
|
-
private worker: Worker;
|
|
139
|
-
private messageId: number;
|
|
140
|
-
private pending = new Map<number, { resolve: (v: JsonValue) => void; reject: (e: Error) => void }>();
|
|
141
|
-
public onEvent?: (event: any) => void;
|
|
142
|
-
|
|
143
|
-
constructor(worker: Worker, startId = 0) {
|
|
144
|
-
this.messageId = startId;
|
|
145
|
-
this.worker = worker;
|
|
146
|
-
this.worker.addEventListener('message', (event: MessageEvent) => {
|
|
147
|
-
// 1. Intercept unsolicited broadcast events from the Rust core
|
|
148
|
-
if (event.data && event.data.type === 'event') {
|
|
149
|
-
if (this.onEvent) this.onEvent(event.data);
|
|
150
|
-
return; // Don't try to process this as a promise resolution
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
// 2. Standard request/response routing
|
|
154
|
-
const { id, result, error } = event.data as { id: number; result?: JsonValue; error?: string };
|
|
155
|
-
const p = this.pending.get(id);
|
|
156
|
-
if (!p) return;
|
|
157
|
-
|
|
158
|
-
this.pending.delete(id);
|
|
159
|
-
if (error) p.reject(new Error(error));
|
|
160
|
-
else p.resolve(result ?? null);
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
sendMessage(action: 'get' | 'set' | 'update' | 'delete', payload: Document): Promise<JsonValue> {
|
|
165
|
-
return new Promise((resolve, reject) => {
|
|
166
|
-
const id = this.messageId++;
|
|
167
|
-
this.pending.set(id, { resolve, reject });
|
|
168
|
-
this.worker.postMessage({ id, action, ...payload });
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
128
|
|
|
173
129
|
// ─── GetQuery ─────────────────────────────────────────────────────────────────
|
|
174
130
|
|