jazz-wasm 2.0.0-alpha.2 → 2.0.0-alpha.20

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jazz-wasm",
3
- "version": "2.0.0-alpha.2",
3
+ "version": "2.0.0-alpha.20",
4
4
  "description": "WebAssembly bindings for the Jazz database engine",
5
5
  "keywords": [
6
6
  "crdt",
@@ -20,6 +20,10 @@
20
20
  ],
21
21
  "main": "pkg/jazz_wasm.js",
22
22
  "types": "pkg/jazz_wasm.d.ts",
23
+ "publishConfig": {
24
+ "access": "public",
25
+ "tag": "alpha"
26
+ },
23
27
  "devDependencies": {
24
28
  "wasm-pack": "^0.14.0"
25
29
  },
@@ -1,57 +1,5 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
- export interface WasmColumnDescriptor {
4
- name: string;
5
- column_type: WasmColumnType;
6
- nullable: boolean;
7
- references?: string;
8
- }
9
-
10
- export interface WasmOperationPolicy {
11
- using?: WasmPolicyExpr;
12
- with_check?: WasmPolicyExpr;
13
- }
14
-
15
- export interface WasmRow {
16
- id: string;
17
- values: WasmValue[];
18
- }
19
-
20
- export interface WasmRowDelta {
21
- added: WasmRow[];
22
- removed: WasmRow[];
23
- updated: [WasmRow, WasmRow][];
24
- pending: boolean;
25
- }
26
-
27
- export interface WasmSchema {
28
- tables: Record<string, WasmTableSchema>;
29
- }
30
-
31
- export interface WasmTablePolicies {
32
- select?: WasmOperationPolicy;
33
- insert?: WasmOperationPolicy;
34
- update?: WasmOperationPolicy;
35
- delete?: WasmOperationPolicy;
36
- }
37
-
38
- export interface WasmTableSchema {
39
- columns: WasmColumnDescriptor[];
40
- policies?: WasmTablePolicies;
41
- }
42
-
43
- export type WasmCmpOp = "Eq" | "Ne" | "Lt" | "Le" | "Gt" | "Ge";
44
-
45
- export type WasmColumnType = { type: "Integer" } | { type: "BigInt" } | { type: "Boolean" } | { type: "Text" } | { type: "Enum"; variants: string[] } | { type: "Timestamp" } | { type: "Uuid" } | { type: "Array"; element: WasmColumnType } | { type: "Row"; columns: WasmColumnDescriptor[] };
46
-
47
- export type WasmPolicyExpr = { type: "Cmp"; column: string; op: WasmCmpOp; value: WasmPolicyValue } | { type: "IsNull"; column: string } | { type: "IsNotNull"; column: string } | { type: "In"; column: string; session_path: string[] } | { type: "Exists"; table: string; condition: WasmPolicyExpr } | { type: "ExistsRel"; rel: any } | { type: "Inherits"; operation: WasmPolicyOperation; via_column: string; max_depth?: number } | { type: "And"; exprs: WasmPolicyExpr[] } | { type: "Or"; exprs: WasmPolicyExpr[] } | { type: "Not"; expr: WasmPolicyExpr } | { type: "True" } | { type: "False" };
48
-
49
- export type WasmPolicyOperation = "Select" | "Insert" | "Update" | "Delete";
50
-
51
- export type WasmPolicyValue = { type: "Literal"; value: WasmValue } | { type: "SessionRef"; path: string[] };
52
-
53
- export type WasmValue = { type: "Integer"; value: number } | { type: "BigInt"; value: number } | { type: "Boolean"; value: boolean } | { type: "Text"; value: string } | { type: "Timestamp"; value: number } | { type: "Uuid"; value: string } | { type: "Array"; value: WasmValue[] } | { type: "Row"; value: WasmValue[] } | { type: "Null" };
54
-
55
3
 
56
4
  /**
57
5
  * WASM-exposed QueryBuilder with camelCase methods.
@@ -155,6 +103,14 @@ export class WasmQueryBuilder {
155
103
  export class WasmRuntime {
156
104
  free(): void;
157
105
  [Symbol.dispose](): void;
106
+ /**
107
+ * Debug helper: expose schema/lens state currently loaded in SchemaManager.
108
+ */
109
+ __debugSchemaState(): any;
110
+ /**
111
+ * Debug helper: seed a historical schema and persist schema/lens catalogue objects.
112
+ */
113
+ __debugSeedLiveSchema(schema_json: string): void;
158
114
  /**
159
115
  * Add a client connection (for server-side use in tests).
160
116
  */
@@ -167,6 +123,11 @@ export class WasmRuntime {
167
123
  * before the call returns, rather than being deferred to a microtask.
168
124
  */
169
125
  addServer(): void;
126
+ /**
127
+ * Phase 1 of 2-phase subscribe: allocate a handle and store query params.
128
+ * No compilation, no sync, no tick — just bookkeeping.
129
+ */
130
+ createSubscription(query_json: string, session_json?: string | null, settled_tier?: string | null, options_json?: string | null): number;
170
131
  /**
171
132
  * Delete a row by ObjectId.
172
133
  */
@@ -174,7 +135,23 @@ export class WasmRuntime {
174
135
  /**
175
136
  * Delete a row and return a Promise that resolves when the tier acks.
176
137
  */
177
- deleteWithAck(object_id: string, tier: string): Promise<any>;
138
+ deleteDurable(object_id: string, tier: string): Promise<any>;
139
+ /**
140
+ * Delete a row and return a Promise that resolves when the tier acks,
141
+ * scoped to an explicit session principal.
142
+ */
143
+ deleteDurableWithSession(object_id: string, session_json: string | null | undefined, tier: string): Promise<any>;
144
+ /**
145
+ * Delete a row by ObjectId as an explicit session principal.
146
+ */
147
+ deleteWithSession(object_id: string, session_json?: string | null): void;
148
+ /**
149
+ * Phase 2 of 2-phase subscribe: compile graph, register subscription,
150
+ * sync to servers, attach callback, and deliver the first delta.
151
+ *
152
+ * No-ops silently if the handle was already unsubscribed.
153
+ */
154
+ executeSubscription(handle: number, on_update: Function): void;
178
155
  /**
179
156
  * Flush all data to persistent storage (snapshot).
180
157
  */
@@ -195,15 +172,24 @@ export class WasmRuntime {
195
172
  * Insert a row into a table.
196
173
  *
197
174
  * # Returns
198
- * The new row's ObjectId as a UUID string.
175
+ * The inserted row as `{ id, values }`.
199
176
  */
200
- insert(table: string, values: any): string;
177
+ insert(table: string, values: any): any;
201
178
  /**
202
179
  * Insert a row and return a Promise that resolves when the tier acks.
203
180
  *
204
- * `tier` must be one of: "worker", "edge", "core".
181
+ * `tier` must be one of: "worker", "edge", "global".
182
+ */
183
+ insertDurable(table: string, values: any, tier: string): Promise<any>;
184
+ /**
185
+ * Insert a row and return a Promise that resolves when the tier acks,
186
+ * scoped to an explicit session principal.
205
187
  */
206
- insertWithAck(table: string, values: any, tier: string): Promise<any>;
188
+ insertDurableWithSession(table: string, values: any, session_json: string | null | undefined, tier: string): Promise<any>;
189
+ /**
190
+ * Insert a row into a table as an explicit session principal.
191
+ */
192
+ insertWithSession(table: string, values: any, session_json?: string | null): any;
207
193
  /**
208
194
  * Create a new WasmRuntime.
209
195
  *
@@ -214,25 +200,28 @@ export class WasmRuntime {
214
200
  * * `app_id` - Application identifier
215
201
  * * `env` - Environment (e.g., "dev", "prod")
216
202
  * * `user_branch` - User's branch name (e.g., "main")
217
- * * `tier` - Optional persistence tier ("worker", "edge", "core").
203
+ * * `tier` - Optional node durability tier ("worker", "edge", "global").
218
204
  * Set for server nodes to enable ack emission.
205
+ * * `use_binary_encoding` - Optional outgoing sync payload encoding mode.
206
+ * `Some(true)` emits postcard bytes (`Uint8Array`), otherwise JSON strings.
219
207
  */
220
- constructor(schema_json: string, app_id: string, env: string, user_branch: string, tier?: string | null);
208
+ constructor(schema_json: string, app_id: string, env: string, user_branch: string, tier?: string | null, use_binary_encoding?: boolean | null);
221
209
  /**
222
210
  * Called by JS when a sync message arrives from the server.
223
211
  *
224
212
  * # Arguments
225
- * * `message_json` - JSON-encoded SyncPayload
213
+ * * `payload` - Either postcard-encoded SyncPayload bytes (`Uint8Array`)
214
+ * or JSON-encoded SyncPayload (`string`)
226
215
  */
227
- onSyncMessageReceived(message_json: string): void;
216
+ onSyncMessageReceived(payload: any): void;
228
217
  /**
229
218
  * Called by JS when a sync message arrives from a client (not a server).
230
219
  *
231
220
  * # Arguments
232
221
  * * `client_id` - UUID string of the sending client
233
- * * `message_json` - JSON-encoded SyncPayload
222
+ * * `payload` - Postcard-encoded SyncPayload bytes
234
223
  */
235
- onSyncMessageReceivedFromClient(client_id: string, message_json: string): void;
224
+ onSyncMessageReceivedFromClient(client_id: string, payload: any): void;
236
225
  /**
237
226
  * Register a callback for outgoing sync messages.
238
227
  */
@@ -243,13 +232,13 @@ export class WasmRuntime {
243
232
  * Opens a single OPFS file namespace and restores state from the latest
244
233
  * durable checkpoint.
245
234
  */
246
- static openPersistent(schema_json: string, app_id: string, env: string, user_branch: string, db_name: string, tier?: string | null): Promise<WasmRuntime>;
235
+ static openPersistent(schema_json: string, app_id: string, env: string, user_branch: string, db_name: string, tier: string | null | undefined, use_binary_encoding: boolean): Promise<WasmRuntime>;
247
236
  /**
248
237
  * Execute a query and return results as a Promise.
249
238
  *
250
- * Optional `settled_tier` holds delivery until the tier confirms.
239
+ * Optional durability tier controls remote settlement behavior.
251
240
  */
252
- query(query_json: string, session_json?: string | null, settled_tier?: string | null): Promise<any>;
241
+ query(query_json: string, session_json?: string | null, settled_tier?: string | null, options_json?: string | null): Promise<any>;
253
242
  /**
254
243
  * Remove the current upstream server connection.
255
244
  */
@@ -269,12 +258,12 @@ export class WasmRuntime {
269
258
  * - with upstream server: first callback waits for protocol QuerySettled convergence
270
259
  * - without upstream server: first callback is local-immediate
271
260
  *
272
- * Pass `settled_tier` to override this default.
261
+ * Pass durability options to override this default.
273
262
  *
274
263
  * # Returns
275
264
  * Subscription handle (f64) for later unsubscription.
276
265
  */
277
- subscribe(query_json: string, on_update: Function, session_json?: string | null, settled_tier?: string | null): number;
266
+ subscribe(query_json: string, on_update: Function, session_json?: string | null, settled_tier?: string | null, options_json?: string | null): number;
278
267
  /**
279
268
  * Unsubscribe from a query.
280
269
  */
@@ -286,7 +275,21 @@ export class WasmRuntime {
286
275
  /**
287
276
  * Update a row and return a Promise that resolves when the tier acks.
288
277
  */
289
- updateWithAck(object_id: string, values: any, tier: string): Promise<any>;
278
+ updateDurable(object_id: string, values: any, tier: string): Promise<any>;
279
+ /**
280
+ * Update a row and return a Promise that resolves when the tier acks,
281
+ * scoped to an explicit session principal.
282
+ */
283
+ updateDurableWithSession(object_id: string, values: any, session_json: string | null | undefined, tier: string): Promise<any>;
284
+ /**
285
+ * Update a row by ObjectId as an explicit session principal.
286
+ *
287
+ * # Arguments
288
+ * * `object_id` - UUID string of target object
289
+ * * `values` - Partial update map (`{ columnName: Value }`)
290
+ * * `session_json` - Optional JSON-encoded Session used for policy checks
291
+ */
292
+ updateWithSession(object_id: string, values: any, session_json?: string | null): void;
290
293
  }
291
294
 
292
295
  export function bench_get_cache_bytes(): number;
@@ -365,6 +368,39 @@ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembl
365
368
 
366
369
  export interface InitOutput {
367
370
  readonly memory: WebAssembly.Memory;
371
+ readonly __wbg_wasmruntime_free: (a: number, b: number) => void;
372
+ readonly wasmruntime___debugSchemaState: (a: number) => [number, number, number];
373
+ readonly wasmruntime___debugSeedLiveSchema: (a: number, b: number, c: number) => [number, number];
374
+ readonly wasmruntime_addClient: (a: number) => [number, number];
375
+ readonly wasmruntime_addServer: (a: number) => void;
376
+ readonly wasmruntime_createSubscription: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number, number];
377
+ readonly wasmruntime_delete: (a: number, b: number, c: number) => [number, number];
378
+ readonly wasmruntime_deleteDurable: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
379
+ readonly wasmruntime_deleteDurableWithSession: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number];
380
+ readonly wasmruntime_deleteWithSession: (a: number, b: number, c: number, d: number, e: number) => [number, number];
381
+ readonly wasmruntime_executeSubscription: (a: number, b: number, c: any) => [number, number];
382
+ readonly wasmruntime_flush: (a: number) => void;
383
+ readonly wasmruntime_flushWal: (a: number) => void;
384
+ readonly wasmruntime_getSchema: (a: number) => [number, number, number];
385
+ readonly wasmruntime_getSchemaHash: (a: number) => [number, number];
386
+ readonly wasmruntime_insert: (a: number, b: number, c: number, d: any) => [number, number, number];
387
+ readonly wasmruntime_insertDurable: (a: number, b: number, c: number, d: any, e: number, f: number) => [number, number, number];
388
+ readonly wasmruntime_insertDurableWithSession: (a: number, b: number, c: number, d: any, e: number, f: number, g: number, h: number) => [number, number, number];
389
+ readonly wasmruntime_insertWithSession: (a: number, b: number, c: number, d: any, e: number, f: number) => [number, number, number];
390
+ readonly wasmruntime_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) => [number, number, number];
391
+ readonly wasmruntime_onSyncMessageReceived: (a: number, b: any) => [number, number];
392
+ readonly wasmruntime_onSyncMessageReceivedFromClient: (a: number, b: number, c: number, d: any) => [number, number];
393
+ readonly wasmruntime_onSyncMessageToSend: (a: number, b: any) => void;
394
+ readonly wasmruntime_openPersistent: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number) => any;
395
+ readonly wasmruntime_query: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number, number];
396
+ readonly wasmruntime_removeServer: (a: number) => void;
397
+ readonly wasmruntime_setClientRole: (a: number, b: number, c: number, d: number, e: number) => [number, number];
398
+ readonly wasmruntime_subscribe: (a: number, b: number, c: number, d: any, e: number, f: number, g: number, h: number, i: number, j: number) => [number, number, number];
399
+ readonly wasmruntime_unsubscribe: (a: number, b: number) => void;
400
+ readonly wasmruntime_update: (a: number, b: number, c: number, d: any) => [number, number];
401
+ readonly wasmruntime_updateDurable: (a: number, b: number, c: number, d: any, e: number, f: number) => [number, number, number];
402
+ readonly wasmruntime_updateDurableWithSession: (a: number, b: number, c: number, d: any, e: number, f: number, g: number, h: number) => [number, number, number];
403
+ readonly wasmruntime_updateWithSession: (a: number, b: number, c: number, d: any, e: number, f: number) => [number, number];
368
404
  readonly __wbg_wasmquerybuilder_free: (a: number, b: number) => void;
369
405
  readonly currentTimestamp: () => bigint;
370
406
  readonly generateId: () => [number, number];
@@ -391,29 +427,6 @@ export interface InitOutput {
391
427
  readonly wasmquerybuilder_orderByDesc: (a: number, b: number, c: number) => number;
392
428
  readonly wasmquerybuilder_select: (a: number, b: number, c: number) => number;
393
429
  readonly init: () => void;
394
- readonly __wbg_wasmruntime_free: (a: number, b: number) => void;
395
- readonly wasmruntime_addClient: (a: number) => [number, number];
396
- readonly wasmruntime_addServer: (a: number) => void;
397
- readonly wasmruntime_delete: (a: number, b: number, c: number) => [number, number];
398
- readonly wasmruntime_deleteWithAck: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
399
- readonly wasmruntime_flush: (a: number) => void;
400
- readonly wasmruntime_flushWal: (a: number) => void;
401
- readonly wasmruntime_getSchema: (a: number) => [number, number, number];
402
- readonly wasmruntime_getSchemaHash: (a: number) => [number, number];
403
- readonly wasmruntime_insert: (a: number, b: number, c: number, d: any) => [number, number, number, number];
404
- readonly wasmruntime_insertWithAck: (a: number, b: number, c: number, d: any, e: number, f: number) => [number, number, number];
405
- readonly wasmruntime_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => [number, number, number];
406
- readonly wasmruntime_onSyncMessageReceived: (a: number, b: number, c: number) => [number, number];
407
- readonly wasmruntime_onSyncMessageReceivedFromClient: (a: number, b: number, c: number, d: number, e: number) => [number, number];
408
- readonly wasmruntime_onSyncMessageToSend: (a: number, b: any) => void;
409
- readonly wasmruntime_openPersistent: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number) => any;
410
- readonly wasmruntime_query: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number];
411
- readonly wasmruntime_removeServer: (a: number) => void;
412
- readonly wasmruntime_setClientRole: (a: number, b: number, c: number, d: number, e: number) => [number, number];
413
- readonly wasmruntime_subscribe: (a: number, b: number, c: number, d: any, e: number, f: number, g: number, h: number) => [number, number, number];
414
- readonly wasmruntime_unsubscribe: (a: number, b: number) => void;
415
- readonly wasmruntime_update: (a: number, b: number, c: number, d: any) => [number, number];
416
- readonly wasmruntime_updateWithAck: (a: number, b: number, c: number, d: any, e: number, f: number) => [number, number, number];
417
430
  readonly bench_get_pin_internal_pages: () => number;
418
431
  readonly bench_opfs_cold_random_read: (a: number, b: number) => any;
419
432
  readonly bench_opfs_cold_sequential_read: (a: number, b: number) => any;
@@ -437,9 +450,9 @@ export interface InitOutput {
437
450
  readonly bench_reset_overflow_threshold_bytes: () => void;
438
451
  readonly bench_reset_pin_internal_pages: () => void;
439
452
  readonly bench_reset_read_coalesce_pages: () => void;
440
- readonly wasm_bindgen__closure__destroy__h36582af6159eae23: (a: number, b: number) => void;
441
- readonly wasm_bindgen__convert__closures_____invoke__h87add1091edf4849: (a: number, b: number, c: any, d: any) => void;
442
- readonly wasm_bindgen__convert__closures_____invoke__h2cc017d284ea0daf: (a: number, b: number, c: any) => void;
453
+ readonly wasm_bindgen__closure__destroy__h91062c162630e93c: (a: number, b: number) => void;
454
+ readonly wasm_bindgen__convert__closures_____invoke__hc8651b792d0b9061: (a: number, b: number, c: any) => [number, number];
455
+ readonly wasm_bindgen__convert__closures_____invoke__h4abc8a55d4718cb4: (a: number, b: number, c: any, d: any) => void;
443
456
  readonly __wbindgen_malloc: (a: number, b: number) => number;
444
457
  readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
445
458
  readonly __wbindgen_exn_store: (a: number) => void;