@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.
Files changed (110) hide show
  1. package/dist/api/index.d.ts +4 -9
  2. package/dist/api/index.d.ts.map +1 -1
  3. package/dist/api/index.js +3 -6
  4. package/dist/api/index.js.map +1 -1
  5. package/dist/api/types.d.ts +71 -42
  6. package/dist/api/types.d.ts.map +1 -1
  7. package/dist/api/types.js +5 -3
  8. package/dist/api/types.js.map +1 -1
  9. package/dist/api/wasm-database.d.ts +134 -27
  10. package/dist/api/wasm-database.d.ts.map +1 -1
  11. package/dist/api/wasm-database.js +172 -28
  12. package/dist/api/wasm-database.js.map +1 -1
  13. package/dist/index.d.ts +14 -11
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +14 -11
  16. package/dist/index.js.map +1 -1
  17. package/dist/shared/micro.d.ts +86 -0
  18. package/dist/shared/micro.d.ts.map +1 -0
  19. package/dist/shared/micro.js +194 -0
  20. package/dist/shared/micro.js.map +1 -0
  21. package/dist/shared/udf-types.d.ts +31 -0
  22. package/dist/shared/udf-types.d.ts.map +1 -0
  23. package/dist/shared/udf-types.js +12 -0
  24. package/dist/shared/udf-types.js.map +1 -0
  25. package/package.json +5 -7
  26. package/readme.md +60 -63
  27. package/dist/api/database.d.ts +0 -101
  28. package/dist/api/database.d.ts.map +0 -1
  29. package/dist/api/database.js +0 -149
  30. package/dist/api/database.js.map +0 -1
  31. package/dist/api/schema.d.ts +0 -33
  32. package/dist/api/schema.d.ts.map +0 -1
  33. package/dist/api/schema.js +0 -80
  34. package/dist/api/schema.js.map +0 -1
  35. package/dist/api/transaction.d.ts +0 -26
  36. package/dist/api/transaction.d.ts.map +0 -1
  37. package/dist/api/transaction.js +0 -52
  38. package/dist/api/transaction.js.map +0 -1
  39. package/dist/codec/binary.d.ts +0 -196
  40. package/dist/codec/binary.d.ts.map +0 -1
  41. package/dist/codec/binary.js +0 -342
  42. package/dist/codec/binary.js.map +0 -1
  43. package/dist/codec/checksum.d.ts +0 -21
  44. package/dist/codec/checksum.d.ts.map +0 -1
  45. package/dist/codec/checksum.js +0 -46
  46. package/dist/codec/checksum.js.map +0 -1
  47. package/dist/codec/index.d.ts +0 -12
  48. package/dist/codec/index.d.ts.map +0 -1
  49. package/dist/codec/index.js +0 -10
  50. package/dist/codec/index.js.map +0 -1
  51. package/dist/codec/page.d.ts +0 -114
  52. package/dist/codec/page.d.ts.map +0 -1
  53. package/dist/codec/page.js +0 -225
  54. package/dist/codec/page.js.map +0 -1
  55. package/dist/codec/record.d.ts +0 -62
  56. package/dist/codec/record.d.ts.map +0 -1
  57. package/dist/codec/record.js +0 -82
  58. package/dist/codec/record.js.map +0 -1
  59. package/dist/core/broadcast.d.ts +0 -39
  60. package/dist/core/broadcast.d.ts.map +0 -1
  61. package/dist/core/broadcast.js +0 -54
  62. package/dist/core/broadcast.js.map +0 -1
  63. package/dist/core/checkpoint.d.ts +0 -23
  64. package/dist/core/checkpoint.d.ts.map +0 -1
  65. package/dist/core/checkpoint.js +0 -49
  66. package/dist/core/checkpoint.js.map +0 -1
  67. package/dist/core/engine.d.ts +0 -142
  68. package/dist/core/engine.d.ts.map +0 -1
  69. package/dist/core/engine.js +0 -304
  70. package/dist/core/engine.js.map +0 -1
  71. package/dist/core/index.d.ts +0 -17
  72. package/dist/core/index.d.ts.map +0 -1
  73. package/dist/core/index.js +0 -13
  74. package/dist/core/index.js.map +0 -1
  75. package/dist/core/lease.d.ts +0 -32
  76. package/dist/core/lease.d.ts.map +0 -1
  77. package/dist/core/lease.js +0 -81
  78. package/dist/core/lease.js.map +0 -1
  79. package/dist/core/records.d.ts +0 -49
  80. package/dist/core/records.d.ts.map +0 -1
  81. package/dist/core/records.js +0 -70
  82. package/dist/core/records.js.map +0 -1
  83. package/dist/core/recovery.d.ts +0 -43
  84. package/dist/core/recovery.d.ts.map +0 -1
  85. package/dist/core/recovery.js +0 -99
  86. package/dist/core/recovery.js.map +0 -1
  87. package/dist/core/wal.d.ts +0 -50
  88. package/dist/core/wal.d.ts.map +0 -1
  89. package/dist/core/wal.js +0 -114
  90. package/dist/core/wal.js.map +0 -1
  91. package/dist/storage/StorageAdapter.d.ts +0 -97
  92. package/dist/storage/StorageAdapter.d.ts.map +0 -1
  93. package/dist/storage/StorageAdapter.js +0 -9
  94. package/dist/storage/StorageAdapter.js.map +0 -1
  95. package/dist/storage/index.d.ts +0 -11
  96. package/dist/storage/index.d.ts.map +0 -1
  97. package/dist/storage/index.js +0 -10
  98. package/dist/storage/index.js.map +0 -1
  99. package/dist/storage/indexeddb/IndexedDbStorageAdapter.d.ts +0 -140
  100. package/dist/storage/indexeddb/IndexedDbStorageAdapter.d.ts.map +0 -1
  101. package/dist/storage/indexeddb/IndexedDbStorageAdapter.js +0 -403
  102. package/dist/storage/indexeddb/IndexedDbStorageAdapter.js.map +0 -1
  103. package/dist/storage/memory/MemoryStorageAdapter.d.ts +0 -76
  104. package/dist/storage/memory/MemoryStorageAdapter.d.ts.map +0 -1
  105. package/dist/storage/memory/MemoryStorageAdapter.js +0 -212
  106. package/dist/storage/memory/MemoryStorageAdapter.js.map +0 -1
  107. package/dist/storage/opfs/OpfsStorageAdapter.d.ts +0 -141
  108. package/dist/storage/opfs/OpfsStorageAdapter.d.ts.map +0 -1
  109. package/dist/storage/opfs/OpfsStorageAdapter.js +0 -400
  110. package/dist/storage/opfs/OpfsStorageAdapter.js.map +0 -1
@@ -1,12 +1,39 @@
1
- import { initWasm, openPersistentSession, createMemorySession, } from '@yydb/yydb-unknown-wasm32';
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
- /** Transaction-local handle for callback-style transactions. */
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/WASM 侧 YYDB 数据库句柄(可选后端)。
99
+ * Browser-local YYDB handle.
70
100
  *
71
- * 这是 `@yydb/light-db` 的 WASM 路径。默认可选——包主线是 {@link Database}
72
- * (`api/database.ts`,纯 TS,无 WASM 依赖),宿主按需显式 import 本文件以引入 WASM。
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 WasmDatabase {
75
- /** 数据库名(OPFS 路径)。 */
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
- /** 初始化 WASM 并打开一个 session(memory 或 OPFS persistent)。 */
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 WasmDatabase(name, session);
131
+ return new Database(name, session);
92
132
  }
93
- /** 解析 WASM JSON 结果,失败时转 LightDbError。 */
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
- /** 读取已持久化的 schema,或 `null`。 */
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
- /** 声明 schema 文档。 */
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
- /** 读取键,或 `null`。 */
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
- /** Compare-and-swap。 */
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
- /** Callback-style 事务:自动 begin/commit,异常自动 rollback。 */
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
- /** 执行 VOS read pipeline,返回 typed rows。 */
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
- /** 执行 VOS write program。 */
263
+ /** Execute a VOS write program. */
187
264
  async execute(source) {
188
265
  this.parseResult(this.session.executeVosWrite(source));
189
266
  }
190
- /** 发布新 schema 版本。 */
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
- /** 执行检查点(折叠 WAL)。 */
212
- async checkpoint() {
213
- this.parseResult(this.session.checkpoint());
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
- /** 关闭 session。 */
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
- /** 打开浏览器 WASM 数据库的便捷函数(等价于 {@link WasmDatabase.open})。 */
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 WasmDatabase.open(name, options);
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
- * 浏览器专用的纯 TypeScript 数据库,与 `@yydb/yydb` 保持同构的用户 API。
5
- * 公共类型只有 `Uint8Array` 与 `Promise`,不依赖 Node `Buffer`、文件系统或 WASM。
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
- * @packageDocumentation
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 { BinaryUtils, ByteWriter, ByteReader, ChecksumMismatchError, crc32, checksumMatches, DEFAULT_PAGE_SIZE, SNAPSHOT_MAGIC, SNAPSHOT_VERSION, SNAPSHOT_HEADER_SIZE, PAGE_HEADER_SIZE, RecordTooLargeError, SnapshotFormatError, WalOperation, encodeSnapshot, decodeSnapshot, encodeWalRecord, decodeWalRecord, } from './codec';
12
- export type { SnapshotHeader, StoredRecord, Page, WalRecord, WalDecodeResult } from './codec';
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
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC3D,YAAY,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAGpD,OAAO,EACH,WAAW,EACX,UAAU,EACV,UAAU,EACV,qBAAqB,EACrB,KAAK,EACL,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,GAClB,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG9F,OAAO,EACH,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,yBAAyB,EACzB,eAAe,EACf,uBAAuB,EACvB,8BAA8B,EAC9B,oBAAoB,GACvB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAGxI,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AACxG,YAAY,EACR,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,WAAW,GACd,MAAM,QAAQ,CAAC;AAGhB,OAAO,EACH,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,YAAY,GACf,MAAM,OAAO,CAAC;AACf,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC"}
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
- * 浏览器专用的纯 TypeScript 数据库,与 `@yydb/yydb` 保持同构的用户 API。
5
- * 公共类型只有 `Uint8Array` 与 `Promise`,不依赖 Node `Buffer`、文件系统或 WASM。
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
- * @packageDocumentation
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 { BinaryUtils, ByteWriter, ByteReader, ChecksumMismatchError, crc32, checksumMatches, DEFAULT_PAGE_SIZE, SNAPSHOT_MAGIC, SNAPSHOT_VERSION, SNAPSHOT_HEADER_SIZE, PAGE_HEADER_SIZE, RecordTooLargeError, SnapshotFormatError, WalOperation, encodeSnapshot, decodeSnapshot, encodeWalRecord, decodeWalRecord, } from './codec';
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;;;;;;;GAOG;AAEH,OAAO;AACP,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAG3D,MAAM;AACN,OAAO,EACH,WAAW,EACX,UAAU,EACV,UAAU,EACV,qBAAqB,EACrB,KAAK,EACL,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,GAClB,MAAM,SAAS,CAAC;AAGjB,SAAS;AACT,OAAO,EACH,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,yBAAyB,EACzB,eAAe,EACf,uBAAuB,EACvB,8BAA8B,EAC9B,oBAAoB,GACvB,MAAM,WAAW,CAAC;AAGnB,QAAQ;AACR,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAaxG,MAAM;AACN,OAAO,EACH,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,YAAY,GACf,MAAM,OAAO,CAAC"}
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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"}