@yydb/light-db 0.0.18 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/index.d.ts +4 -9
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +3 -6
- package/dist/api/index.js.map +1 -1
- package/dist/api/types.d.ts +71 -42
- package/dist/api/types.d.ts.map +1 -1
- package/dist/api/types.js +5 -3
- package/dist/api/types.js.map +1 -1
- package/dist/api/wasm-database.d.ts +134 -27
- package/dist/api/wasm-database.d.ts.map +1 -1
- package/dist/api/wasm-database.js +172 -28
- package/dist/api/wasm-database.js.map +1 -1
- package/dist/index.d.ts +14 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -11
- package/dist/index.js.map +1 -1
- package/dist/shared/micro.d.ts +86 -0
- package/dist/shared/micro.d.ts.map +1 -0
- package/dist/shared/micro.js +194 -0
- package/dist/shared/micro.js.map +1 -0
- package/dist/shared/udf-types.d.ts +31 -0
- package/dist/shared/udf-types.d.ts.map +1 -0
- package/dist/shared/udf-types.js +12 -0
- package/dist/shared/udf-types.js.map +1 -0
- package/package.json +5 -7
- package/readme.md +60 -63
- package/dist/api/database.d.ts +0 -101
- package/dist/api/database.d.ts.map +0 -1
- package/dist/api/database.js +0 -149
- package/dist/api/database.js.map +0 -1
- package/dist/api/schema.d.ts +0 -33
- package/dist/api/schema.d.ts.map +0 -1
- package/dist/api/schema.js +0 -80
- package/dist/api/schema.js.map +0 -1
- package/dist/api/transaction.d.ts +0 -26
- package/dist/api/transaction.d.ts.map +0 -1
- package/dist/api/transaction.js +0 -52
- package/dist/api/transaction.js.map +0 -1
- package/dist/codec/binary.d.ts +0 -196
- package/dist/codec/binary.d.ts.map +0 -1
- package/dist/codec/binary.js +0 -342
- package/dist/codec/binary.js.map +0 -1
- package/dist/codec/checksum.d.ts +0 -21
- package/dist/codec/checksum.d.ts.map +0 -1
- package/dist/codec/checksum.js +0 -46
- package/dist/codec/checksum.js.map +0 -1
- package/dist/codec/index.d.ts +0 -12
- package/dist/codec/index.d.ts.map +0 -1
- package/dist/codec/index.js +0 -10
- package/dist/codec/index.js.map +0 -1
- package/dist/codec/page.d.ts +0 -114
- package/dist/codec/page.d.ts.map +0 -1
- package/dist/codec/page.js +0 -225
- package/dist/codec/page.js.map +0 -1
- package/dist/codec/record.d.ts +0 -62
- package/dist/codec/record.d.ts.map +0 -1
- package/dist/codec/record.js +0 -82
- package/dist/codec/record.js.map +0 -1
- package/dist/core/broadcast.d.ts +0 -39
- package/dist/core/broadcast.d.ts.map +0 -1
- package/dist/core/broadcast.js +0 -54
- package/dist/core/broadcast.js.map +0 -1
- package/dist/core/checkpoint.d.ts +0 -23
- package/dist/core/checkpoint.d.ts.map +0 -1
- package/dist/core/checkpoint.js +0 -49
- package/dist/core/checkpoint.js.map +0 -1
- package/dist/core/engine.d.ts +0 -142
- package/dist/core/engine.d.ts.map +0 -1
- package/dist/core/engine.js +0 -304
- package/dist/core/engine.js.map +0 -1
- package/dist/core/index.d.ts +0 -17
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -13
- package/dist/core/index.js.map +0 -1
- package/dist/core/lease.d.ts +0 -32
- package/dist/core/lease.d.ts.map +0 -1
- package/dist/core/lease.js +0 -81
- package/dist/core/lease.js.map +0 -1
- package/dist/core/records.d.ts +0 -49
- package/dist/core/records.d.ts.map +0 -1
- package/dist/core/records.js +0 -70
- package/dist/core/records.js.map +0 -1
- package/dist/core/recovery.d.ts +0 -43
- package/dist/core/recovery.d.ts.map +0 -1
- package/dist/core/recovery.js +0 -99
- package/dist/core/recovery.js.map +0 -1
- package/dist/core/wal.d.ts +0 -50
- package/dist/core/wal.d.ts.map +0 -1
- package/dist/core/wal.js +0 -114
- package/dist/core/wal.js.map +0 -1
- package/dist/storage/StorageAdapter.d.ts +0 -97
- package/dist/storage/StorageAdapter.d.ts.map +0 -1
- package/dist/storage/StorageAdapter.js +0 -9
- package/dist/storage/StorageAdapter.js.map +0 -1
- package/dist/storage/index.d.ts +0 -11
- package/dist/storage/index.d.ts.map +0 -1
- package/dist/storage/index.js +0 -10
- package/dist/storage/index.js.map +0 -1
- package/dist/storage/indexeddb/IndexedDbStorageAdapter.d.ts +0 -140
- package/dist/storage/indexeddb/IndexedDbStorageAdapter.d.ts.map +0 -1
- package/dist/storage/indexeddb/IndexedDbStorageAdapter.js +0 -403
- package/dist/storage/indexeddb/IndexedDbStorageAdapter.js.map +0 -1
- package/dist/storage/memory/MemoryStorageAdapter.d.ts +0 -76
- package/dist/storage/memory/MemoryStorageAdapter.d.ts.map +0 -1
- package/dist/storage/memory/MemoryStorageAdapter.js +0 -212
- package/dist/storage/memory/MemoryStorageAdapter.js.map +0 -1
- package/dist/storage/opfs/OpfsStorageAdapter.d.ts +0 -141
- package/dist/storage/opfs/OpfsStorageAdapter.d.ts.map +0 -1
- package/dist/storage/opfs/OpfsStorageAdapter.js +0 -400
- package/dist/storage/opfs/OpfsStorageAdapter.js.map +0 -1
|
@@ -1,12 +1,39 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* WASM-backed Database — the production path for `@yydb/light-db`.
|
|
3
|
+
*
|
|
4
|
+
* Delegates to `@yydb/yydb-unknown-wasm32`, which ships a Rust semantic
|
|
5
|
+
* core compiled to WebAssembly. This gives browser users the same VOS
|
|
6
|
+
* schema validation, transaction semantics, OPFS persistence and UDF
|
|
7
|
+
* execution as the Node-side `@yydb/yydb`.
|
|
8
|
+
*
|
|
9
|
+
* ```ts
|
|
10
|
+
* // Node
|
|
11
|
+
* import { Database } from '@yydb/yydb';
|
|
12
|
+
* const db = await Database.open('app.yydb');
|
|
13
|
+
*
|
|
14
|
+
* // Browser
|
|
15
|
+
* import { Database } from '@yydb/light-db';
|
|
16
|
+
* const db = await Database.open('app');
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
import { initWasm, openPersistentSession, createMemorySession, yydbVersion, } from '@yydb/yydb-unknown-wasm32';
|
|
2
20
|
import { emitSource } from '@voml/vos';
|
|
3
21
|
import { LightDbError } from '../errors/index.js';
|
|
4
|
-
|
|
22
|
+
import { MicroSessionRegistry, defineMicro as buildMicro, microFingerprint, udfWireKind, } from '../shared/micro.js';
|
|
23
|
+
// ---------------------------------------------------------------------------
|
|
24
|
+
// Transaction-local handle (callback-style)
|
|
25
|
+
// ---------------------------------------------------------------------------
|
|
26
|
+
/**
|
|
27
|
+
* Transaction-local handle passed to {@link Database.transaction} callbacks.
|
|
28
|
+
* All methods forward to the underlying WASM session; commit/rollback are
|
|
29
|
+
* owned by {@link Database.transaction}.
|
|
30
|
+
*/
|
|
5
31
|
export class TransactionHandle {
|
|
6
32
|
session;
|
|
7
33
|
constructor(session) {
|
|
8
34
|
this.session = session;
|
|
9
35
|
}
|
|
36
|
+
/** Parse a WASM envelope, converting `{ ok: false, error }` to a thrown error. */
|
|
10
37
|
parseResult(raw) {
|
|
11
38
|
const parsed = JSON.parse(raw);
|
|
12
39
|
if (!parsed.ok) {
|
|
@@ -65,21 +92,34 @@ export class TransactionHandle {
|
|
|
65
92
|
this.parseResult(this.session.executeVosWrite(source));
|
|
66
93
|
}
|
|
67
94
|
}
|
|
95
|
+
// ---------------------------------------------------------------------------
|
|
96
|
+
// Database — WASM-backed production path
|
|
97
|
+
// ---------------------------------------------------------------------------
|
|
68
98
|
/**
|
|
69
|
-
* Browser
|
|
99
|
+
* Browser-local YYDB handle.
|
|
70
100
|
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
101
|
+
* This is the main {@link Database} export of `@yydb/light-db`. It owns a
|
|
102
|
+
* Rust-backed WASM session (memory or OPFS) and exposes the same user API
|
|
103
|
+
* as the Node-side `@yydb/yydb`.
|
|
73
104
|
*/
|
|
74
|
-
export class
|
|
75
|
-
/**
|
|
105
|
+
export class Database {
|
|
106
|
+
/** Database name (OPFS path). */
|
|
76
107
|
name;
|
|
77
108
|
session;
|
|
109
|
+
registry;
|
|
78
110
|
constructor(name, session) {
|
|
79
111
|
this.name = name;
|
|
80
112
|
this.session = session;
|
|
113
|
+
this.registry = new MicroSessionRegistry();
|
|
114
|
+
// Route WASM host-micro callbacks into our per-session registry.
|
|
115
|
+
session.setMicroHostInvoker((payload) => this.registry.invokeFromWire(payload));
|
|
81
116
|
}
|
|
82
|
-
/**
|
|
117
|
+
/**
|
|
118
|
+
* Initialize WASM and open a session (in-memory or OPFS persistent).
|
|
119
|
+
*
|
|
120
|
+
* @param name Database name. Persistent sessions use it as the OPFS path.
|
|
121
|
+
* @param options Open options — pass `{ memory: true }` for a transient session.
|
|
122
|
+
*/
|
|
83
123
|
static async open(name, options = {}) {
|
|
84
124
|
if (!name || name.length === 0) {
|
|
85
125
|
throw new Error('database name must not be empty');
|
|
@@ -88,9 +128,9 @@ export class WasmDatabase {
|
|
|
88
128
|
const session = options.memory
|
|
89
129
|
? createMemorySession()
|
|
90
130
|
: openPersistentSession(name);
|
|
91
|
-
return new
|
|
131
|
+
return new Database(name, session);
|
|
92
132
|
}
|
|
93
|
-
/**
|
|
133
|
+
/** Parse a WASM envelope, converting `{ ok: false, error }` to a thrown error. */
|
|
94
134
|
parseResult(raw) {
|
|
95
135
|
const parsed = JSON.parse(raw);
|
|
96
136
|
if (!parsed.ok) {
|
|
@@ -99,19 +139,34 @@ export class WasmDatabase {
|
|
|
99
139
|
}
|
|
100
140
|
return parsed;
|
|
101
141
|
}
|
|
102
|
-
/**
|
|
142
|
+
/** Engine version string (same as `@yydb/yydb` semver). */
|
|
143
|
+
serverVersion() {
|
|
144
|
+
return yydbVersion();
|
|
145
|
+
}
|
|
146
|
+
/** Basic diagnostics: session info from the WASM core. */
|
|
147
|
+
info() {
|
|
148
|
+
return this.session.info();
|
|
149
|
+
}
|
|
150
|
+
/** Published schema metadata, or `null` before the first schema. */
|
|
103
151
|
async getSchema() {
|
|
104
152
|
const raw = this.parseResult(this.session.getSchema());
|
|
105
153
|
if (!raw.schema)
|
|
106
154
|
return null;
|
|
107
155
|
return raw.schema;
|
|
108
156
|
}
|
|
109
|
-
/**
|
|
157
|
+
/**
|
|
158
|
+
* Validate and publish a VOS schema document.
|
|
159
|
+
*
|
|
160
|
+
* Accepts either a raw `.vos` source string, or `@voml/vos` descriptors
|
|
161
|
+
* (`v.table()`, `v.class()`). When descriptors are supplied, they are
|
|
162
|
+
* rendered to source via `emitSource` before being handed to the Rust
|
|
163
|
+
* core for validation.
|
|
164
|
+
*/
|
|
110
165
|
async ensureSchema(...input) {
|
|
111
166
|
const document = typeof input[0] === 'string' ? input[0] : emitSource(input);
|
|
112
167
|
this.parseResult(this.session.ensureSchema(document));
|
|
113
168
|
}
|
|
114
|
-
/**
|
|
169
|
+
/** Read one record, or `null`. */
|
|
115
170
|
async get(key) {
|
|
116
171
|
const raw = JSON.parse(this.session.get(key));
|
|
117
172
|
if (!raw.ok)
|
|
@@ -122,16 +177,16 @@ export class WasmDatabase {
|
|
|
122
177
|
return new Uint8Array(raw.value);
|
|
123
178
|
return new Uint8Array(raw.value);
|
|
124
179
|
}
|
|
125
|
-
/**
|
|
180
|
+
/** Insert or replace one record. */
|
|
126
181
|
async put(key, value) {
|
|
127
182
|
const bytes = typeof value === 'string' ? new TextEncoder().encode(value) : value;
|
|
128
183
|
this.parseResult(this.session.put(key, bytes));
|
|
129
184
|
}
|
|
130
|
-
/**
|
|
185
|
+
/** Delete one record. Silently succeeds when the key is absent. */
|
|
131
186
|
async delete(key) {
|
|
132
187
|
this.parseResult(this.session.delete(key));
|
|
133
188
|
}
|
|
134
|
-
/**
|
|
189
|
+
/** List key/value pairs in lexical order. */
|
|
135
190
|
async scan(options = {}) {
|
|
136
191
|
const raw = JSON.parse(this.session.scanPrefix(options.prefix ?? '', options.after ?? null, options.limit ?? 1000));
|
|
137
192
|
if (!raw.ok)
|
|
@@ -141,7 +196,7 @@ export class WasmDatabase {
|
|
|
141
196
|
value: new Uint8Array(r.value),
|
|
142
197
|
}));
|
|
143
198
|
}
|
|
144
|
-
/**
|
|
199
|
+
/** Atomically write or delete many keys in one call. */
|
|
145
200
|
async batch(changes) {
|
|
146
201
|
const body = changes.map((c) => ({
|
|
147
202
|
key: c.key,
|
|
@@ -149,7 +204,10 @@ export class WasmDatabase {
|
|
|
149
204
|
}));
|
|
150
205
|
this.parseResult(this.session.writeBatch(new TextEncoder().encode(JSON.stringify(body))));
|
|
151
206
|
}
|
|
152
|
-
/**
|
|
207
|
+
/**
|
|
208
|
+
* Compare-and-swap: replace or delete `key` only when its current value
|
|
209
|
+
* exactly equals `expected`. Both may be `null` (meaning absent / delete).
|
|
210
|
+
*/
|
|
153
211
|
async compareExchange(key, expected, replacement) {
|
|
154
212
|
const toBytes = (v) => v === null ? null : typeof v === 'string' ? new TextEncoder().encode(v) : v;
|
|
155
213
|
const raw = JSON.parse(this.session.compareExchange(key, toBytes(expected), toBytes(replacement)));
|
|
@@ -157,7 +215,26 @@ export class WasmDatabase {
|
|
|
157
215
|
throw (LightDbError.fromDiagnosticJson(raw.error) ?? new Error(raw.error));
|
|
158
216
|
return raw.success ?? false;
|
|
159
217
|
}
|
|
160
|
-
/**
|
|
218
|
+
/** Fold the WAL into the main storage. */
|
|
219
|
+
async checkpoint() {
|
|
220
|
+
this.parseResult(this.session.checkpoint());
|
|
221
|
+
}
|
|
222
|
+
/** Begin an explicit transaction. Balanced with {@link commit} or {@link rollback}. */
|
|
223
|
+
async begin() {
|
|
224
|
+
this.parseResult(this.session.begin());
|
|
225
|
+
}
|
|
226
|
+
/** Commit the current transaction. */
|
|
227
|
+
async commit() {
|
|
228
|
+
this.parseResult(this.session.commit());
|
|
229
|
+
}
|
|
230
|
+
/** Roll back the current transaction. */
|
|
231
|
+
async rollback() {
|
|
232
|
+
this.parseResult(this.session.rollback());
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Run `fn` inside an explicit transaction. Commits on normal return,
|
|
236
|
+
* rolls back on throw. Nested calls are not supported.
|
|
237
|
+
*/
|
|
161
238
|
async transaction(fn) {
|
|
162
239
|
this.parseResult(this.session.begin());
|
|
163
240
|
const tx = new TransactionHandle(this.session);
|
|
@@ -176,18 +253,21 @@ export class WasmDatabase {
|
|
|
176
253
|
throw err;
|
|
177
254
|
}
|
|
178
255
|
}
|
|
179
|
-
/**
|
|
256
|
+
/** Execute a VOS read pipeline and return typed rows. */
|
|
180
257
|
async query(source) {
|
|
181
258
|
const raw = JSON.parse(this.session.queryVos(source));
|
|
182
259
|
if (!raw.ok)
|
|
183
260
|
throw (LightDbError.fromDiagnosticJson(raw.error) ?? new Error(raw.error));
|
|
184
261
|
return (raw.rows ?? []);
|
|
185
262
|
}
|
|
186
|
-
/**
|
|
263
|
+
/** Execute a VOS write program. */
|
|
187
264
|
async execute(source) {
|
|
188
265
|
this.parseResult(this.session.executeVosWrite(source));
|
|
189
266
|
}
|
|
190
|
-
/**
|
|
267
|
+
/**
|
|
268
|
+
* Publish a new schema version, migrating existing records when their
|
|
269
|
+
* shape no longer matches. Accepts raw `.vos` source or descriptors.
|
|
270
|
+
*/
|
|
191
271
|
async migrateSchema(documentOrSource, ...rest) {
|
|
192
272
|
let document;
|
|
193
273
|
let options = {};
|
|
@@ -208,17 +288,81 @@ export class WasmDatabase {
|
|
|
208
288
|
const renamesJson = options.renames?.length ? JSON.stringify(options.renames) : null;
|
|
209
289
|
this.parseResult(this.session.migrateSchema(document, renamesJson));
|
|
210
290
|
}
|
|
211
|
-
/**
|
|
212
|
-
|
|
213
|
-
|
|
291
|
+
/**
|
|
292
|
+
* Override the host micro invoker.
|
|
293
|
+
*
|
|
294
|
+
* The constructor wires this to the per-session {@link MicroSessionRegistry}
|
|
295
|
+
* so that high-level {@link registerMicro} + {@link callScalar} works out of
|
|
296
|
+
* the box. Call this only if you need to replace the default resolution
|
|
297
|
+
* logic (e.g. to inject a mock invoker in tests).
|
|
298
|
+
*/
|
|
299
|
+
overrideMicroHostInvoker(invoker) {
|
|
300
|
+
this.session.setMicroHostInvoker(invoker);
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Build a typed session-local micro definition without registering it.
|
|
304
|
+
*
|
|
305
|
+
* Same signature as the Node-side `@yydb/yydb`; this is a thin alias
|
|
306
|
+
* over the shared `defineMicro` helper so author code stays portable.
|
|
307
|
+
*/
|
|
308
|
+
defineMicro(input) {
|
|
309
|
+
return buildMicro(input);
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* Install a session-local host micro into both the JS registry and the
|
|
313
|
+
* WASM core. Host micros never persist across sessions.
|
|
314
|
+
*
|
|
315
|
+
* Uses the high-level JSON bridge (`registerMicroJson`) so we never
|
|
316
|
+
* encode wire bodies in TS; Rust owns the protocol.
|
|
317
|
+
*/
|
|
318
|
+
async registerMicro(definition) {
|
|
319
|
+
const handle = this.registry.register(definition);
|
|
320
|
+
const argTypes = definition.args.map((d) => udfWireKind(d));
|
|
321
|
+
const returnType = udfWireKind(definition.returns);
|
|
322
|
+
const fingerprint = Array.from(microFingerprint(definition.name, definition.version));
|
|
323
|
+
const json = JSON.stringify({
|
|
324
|
+
name: definition.name,
|
|
325
|
+
version: definition.version,
|
|
326
|
+
argTypes,
|
|
327
|
+
returnType,
|
|
328
|
+
hostId: handle.hostId,
|
|
329
|
+
functionId: handle.functionId,
|
|
330
|
+
handleVersion: handle.implementationVersion,
|
|
331
|
+
fingerprint,
|
|
332
|
+
});
|
|
333
|
+
this.parseResult(this.session.registerMicroJson(json));
|
|
334
|
+
return handle;
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Invoke a registered scalar UDF via the WASM core.
|
|
338
|
+
*
|
|
339
|
+
* Uses the high-level JSON bridge (`callScalarJson`) — args are encoded
|
|
340
|
+
* as plain JSON scalars (`number`, `string`, `boolean`, `null`).
|
|
341
|
+
*/
|
|
342
|
+
async callScalar(name, version, args) {
|
|
343
|
+
const json = JSON.stringify({ name, version, args });
|
|
344
|
+
const raw = JSON.parse(this.session.callScalarJson(json));
|
|
345
|
+
if (!raw.ok)
|
|
346
|
+
throw (LightDbError.fromDiagnosticJson(raw.error) ?? new Error(raw.error));
|
|
347
|
+
const value = raw.value;
|
|
348
|
+
if (value === null || value === undefined)
|
|
349
|
+
return null;
|
|
350
|
+
return value;
|
|
214
351
|
}
|
|
215
|
-
/**
|
|
352
|
+
/**
|
|
353
|
+
* Close the session. Idempotent — further calls fail.
|
|
354
|
+
*
|
|
355
|
+
* On persistent (OPFS) sessions this triggers a final snapshot publish.
|
|
356
|
+
*/
|
|
216
357
|
async close() {
|
|
217
358
|
this.session.close();
|
|
218
359
|
}
|
|
219
360
|
}
|
|
220
|
-
|
|
361
|
+
// ---------------------------------------------------------------------------
|
|
362
|
+
// Convenience entry
|
|
363
|
+
// ---------------------------------------------------------------------------
|
|
364
|
+
/** Open a browser database — convenience alias for {@link Database.open}. */
|
|
221
365
|
export async function openLightDatabase(name, options = {}) {
|
|
222
|
-
return
|
|
366
|
+
return Database.open(name, options);
|
|
223
367
|
}
|
|
224
368
|
//# sourceMappingURL=wasm-database.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wasm-database.js","sourceRoot":"","sources":["../../src/api/wasm-database.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wasm-database.js","sourceRoot":"","sources":["../../src/api/wasm-database.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,19 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `@yydb/light-db`
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Browser-native YYDB database — a thin TypeScript facade over
|
|
5
|
+
* `@yydb/yydb-unknown-wasm32`, which ships the Rust semantic core
|
|
6
|
+
* compiled to WebAssembly. VOS schema validation, transaction
|
|
7
|
+
* semantics, OPFS persistence and UDF execution all live in WASM.
|
|
6
8
|
*
|
|
7
|
-
*
|
|
9
|
+
* ```ts
|
|
10
|
+
* import { Database } from '@yydb/light-db';
|
|
11
|
+
* const db = await Database.open('app');
|
|
12
|
+
* await db.ensureSchema('// @yydb-schema-version: 1\nUser { ... }');
|
|
13
|
+
* await db.put('User:1', new Uint8Array([1, 2, 3]));
|
|
14
|
+
* const row = await db.get('User:1');
|
|
15
|
+
* await db.close();
|
|
16
|
+
* ```
|
|
8
17
|
*/
|
|
9
18
|
export { LightDbError, LightDbErrorCodes } from './errors';
|
|
10
19
|
export type { LightDbErrorOptions } from './errors';
|
|
11
|
-
export {
|
|
12
|
-
export type {
|
|
13
|
-
export { STORAGE_FILES, MemoryStorageAdapter, MemoryStorageBackend, OpfsStorageAdapter, OpfsStorageAdapterFactory, isOpfsAvailable, IndexedDbStorageAdapter, IndexedDbStorageAdapterFactory, isIndexedDbAvailable, } from './storage';
|
|
14
|
-
export type { StorageAdapter, StorageAdapterFactory, StorageAdapterKind, StorageFile, StorageHandle, StorageOpenMode } from './storage';
|
|
15
|
-
export { StorageEngine, DEFAULT_WAL_THRESHOLD, acquireWriterLease, listenDatabaseEvents } from './core';
|
|
16
|
-
export type { CheckpointResult, LeaseMode, RecoveryOutcome, StorageEngineOptions, StorageEngineStats, TransactionState, DatabaseEvent, DatabaseEventType, WriterLease, } from './core';
|
|
17
|
-
export { Database, WasmDatabase, openLightDatabase, Transaction, SCHEMA_KEY, RESERVED_KEY_PREFIX, documentVersion, parseSchemaDocument, encodeSchema, decodeSchema, } from './api';
|
|
18
|
-
export type { OpenOptions, ScanRow, ScanOptions, BatchChange, MigrateOptions, LightDatabase, LightDatabaseOptions, SchemaVersion } from './api';
|
|
20
|
+
export { Database, TransactionHandle, openLightDatabase } from './api';
|
|
21
|
+
export type { BatchChange, LightDatabase, MigrateOptions, OpenOptions, ScanOptions, ScanRow, SchemaVersion, } from './api';
|
|
19
22
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC3D,YAAY,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAGpD,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AACvE,YAAY,EACR,WAAW,EACX,aAAa,EACb,cAAc,EACd,WAAW,EACX,WAAW,EACX,OAAO,EACP,aAAa,GAChB,MAAM,OAAO,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,19 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `@yydb/light-db`
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Browser-native YYDB database — a thin TypeScript facade over
|
|
5
|
+
* `@yydb/yydb-unknown-wasm32`, which ships the Rust semantic core
|
|
6
|
+
* compiled to WebAssembly. VOS schema validation, transaction
|
|
7
|
+
* semantics, OPFS persistence and UDF execution all live in WASM.
|
|
6
8
|
*
|
|
7
|
-
*
|
|
9
|
+
* ```ts
|
|
10
|
+
* import { Database } from '@yydb/light-db';
|
|
11
|
+
* const db = await Database.open('app');
|
|
12
|
+
* await db.ensureSchema('// @yydb-schema-version: 1\nUser { ... }');
|
|
13
|
+
* await db.put('User:1', new Uint8Array([1, 2, 3]));
|
|
14
|
+
* const row = await db.get('User:1');
|
|
15
|
+
* await db.close();
|
|
16
|
+
* ```
|
|
8
17
|
*/
|
|
9
18
|
// 错误模型
|
|
10
19
|
export { LightDbError, LightDbErrorCodes } from './errors';
|
|
11
|
-
//
|
|
12
|
-
export {
|
|
13
|
-
// 存储平台边界
|
|
14
|
-
export { STORAGE_FILES, MemoryStorageAdapter, MemoryStorageBackend, OpfsStorageAdapter, OpfsStorageAdapterFactory, isOpfsAvailable, IndexedDbStorageAdapter, IndexedDbStorageAdapterFactory, isIndexedDbAvailable, } from './storage';
|
|
15
|
-
// 数据库语义
|
|
16
|
-
export { StorageEngine, DEFAULT_WAL_THRESHOLD, acquireWriterLease, listenDatabaseEvents } from './core';
|
|
17
|
-
// 作者面
|
|
18
|
-
export { Database, WasmDatabase, openLightDatabase, Transaction, SCHEMA_KEY, RESERVED_KEY_PREFIX, documentVersion, parseSchemaDocument, encodeSchema, decodeSchema, } from './api';
|
|
20
|
+
// 唯一作者面 —— WASM-backed Database + 稳定类型合同
|
|
21
|
+
export { Database, TransactionHandle, openLightDatabase } from './api';
|
|
19
22
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO;AACP,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAG3D,yCAAyC;AACzC,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Host micro registry and definition helpers for `@yydb/light-db`.
|
|
3
|
+
*
|
|
4
|
+
* Mirrors the Node-side `@yydb/yydb` micro contract but speaks to the WASM
|
|
5
|
+
* session's JSON bridge (`registerMicroJson` / `callScalarJson`) instead of
|
|
6
|
+
* the N-API layer. No binary wire protocol is encoded here — Rust owns that.
|
|
7
|
+
*/
|
|
8
|
+
import type { AnyTypeDescriptor } from '@voml/vos';
|
|
9
|
+
import type { InferUdfArgs, InferUdfReturn, MicroEffect, MicroInvocationMode, UdfScalarDescriptor } from './udf-types.js';
|
|
10
|
+
/** Value shape accepted and produced on the wire micro path. */
|
|
11
|
+
type MicroWireValue = string | number | boolean | null;
|
|
12
|
+
/** Wire kinds a VOS descriptor can map onto. */
|
|
13
|
+
type UdfWireKind = 'i64' | 'bool' | 'text';
|
|
14
|
+
/** Map a VOS descriptor onto its wire tag. Throws for unsupported kinds. */
|
|
15
|
+
export declare function udfWireKind(descriptor: AnyTypeDescriptor): UdfWireKind;
|
|
16
|
+
/** Input accepted by {@link defineMicro}. */
|
|
17
|
+
export interface TsMicroDefinitionInput<TArgs extends readonly UdfScalarDescriptor[], TReturn extends UdfScalarDescriptor> {
|
|
18
|
+
readonly name: string;
|
|
19
|
+
readonly version: number;
|
|
20
|
+
readonly args: TArgs;
|
|
21
|
+
readonly returns: TReturn;
|
|
22
|
+
readonly effect: MicroEffect;
|
|
23
|
+
readonly deterministic: boolean;
|
|
24
|
+
readonly mode?: MicroInvocationMode;
|
|
25
|
+
readonly fn: (...args: InferUdfArgs<TArgs>) => InferUdfReturn<TReturn>;
|
|
26
|
+
}
|
|
27
|
+
/** Opaque definition produced by `defineMicro` before session registration. */
|
|
28
|
+
export interface DefinedMicro<TArgs extends readonly UdfScalarDescriptor[] = readonly UdfScalarDescriptor[], TReturn extends UdfScalarDescriptor = UdfScalarDescriptor> {
|
|
29
|
+
readonly name: string;
|
|
30
|
+
readonly version: number;
|
|
31
|
+
readonly args: TArgs;
|
|
32
|
+
readonly returns: TReturn;
|
|
33
|
+
readonly effect: MicroEffect;
|
|
34
|
+
readonly deterministic: boolean;
|
|
35
|
+
readonly mode: MicroInvocationMode;
|
|
36
|
+
readonly placement: 'host';
|
|
37
|
+
readonly fn: (...args: InferUdfArgs<TArgs>) => InferUdfReturn<TReturn>;
|
|
38
|
+
}
|
|
39
|
+
/** Handle returned after a micro is installed into the session. */
|
|
40
|
+
export interface MicroHandle {
|
|
41
|
+
readonly name: string;
|
|
42
|
+
readonly version: number;
|
|
43
|
+
readonly functionId: string;
|
|
44
|
+
readonly hostId: number;
|
|
45
|
+
readonly implementationVersion: number;
|
|
46
|
+
}
|
|
47
|
+
type AnyDefinedMicro = DefinedMicro<readonly UdfScalarDescriptor[], UdfScalarDescriptor>;
|
|
48
|
+
/**
|
|
49
|
+
* Per-session registry for JS functions behind opaque host handles.
|
|
50
|
+
*
|
|
51
|
+
* WASM keeps `hostId + functionId + handleVersion`, never the closure. The
|
|
52
|
+
* WASM session's `setMicroHostInvoker` should call
|
|
53
|
+
* {@link MicroSessionRegistry.invokeFromWire} to route host calls back into
|
|
54
|
+
* author code.
|
|
55
|
+
*/
|
|
56
|
+
export declare class MicroSessionRegistry {
|
|
57
|
+
readonly hostId: number;
|
|
58
|
+
private nextFunctionId;
|
|
59
|
+
private readonly byKey;
|
|
60
|
+
private readonly byFunctionId;
|
|
61
|
+
constructor(hostId?: number);
|
|
62
|
+
/** Installs a defined micro into this session registry. */
|
|
63
|
+
register<TArgs extends readonly UdfScalarDescriptor[], TReturn extends UdfScalarDescriptor>(definition: DefinedMicro<TArgs, TReturn>): MicroHandle;
|
|
64
|
+
/** Returns a registered micro by opaque host handle. */
|
|
65
|
+
resolve(handle: {
|
|
66
|
+
hostId: number;
|
|
67
|
+
functionId: string;
|
|
68
|
+
}): AnyDefinedMicro | undefined;
|
|
69
|
+
/** Invokes a registered micro from a wire `MicroHostInvoke` payload. */
|
|
70
|
+
invokeFromWire(payload: {
|
|
71
|
+
hostId: number;
|
|
72
|
+
handleVersion: number;
|
|
73
|
+
functionId: string;
|
|
74
|
+
args: readonly unknown[];
|
|
75
|
+
}): MicroWireValue;
|
|
76
|
+
/** Direct scalar invocation (host adapter entry point). */
|
|
77
|
+
invokeScalar(handle: MicroHandle, args: unknown[]): unknown;
|
|
78
|
+
/** Lists logical names currently registered in this session. */
|
|
79
|
+
list(): string[];
|
|
80
|
+
}
|
|
81
|
+
/** Build a session-local micro definition without registering it. */
|
|
82
|
+
export declare function defineMicro<TArgs extends readonly UdfScalarDescriptor[], TReturn extends UdfScalarDescriptor>(input: TsMicroDefinitionInput<TArgs, TReturn>): DefinedMicro<TArgs, TReturn>;
|
|
83
|
+
/** Stable 32-byte fingerprint for a logical micro name and version. */
|
|
84
|
+
export declare function microFingerprint(name: string, version: number): Uint8Array;
|
|
85
|
+
export {};
|
|
86
|
+
//# sourceMappingURL=micro.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"micro.d.ts","sourceRoot":"","sources":["../../src/shared/micro.ts"],"names":[],"mappings":"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"}
|