@quereus/sync-client 0.7.3 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,152 +1,154 @@
1
- # @quereus/sync-client
2
-
3
- WebSocket sync client for [Quereus](https://github.com/gotchoices/quereus). Handles connection management, reconnection, and bidirectional change synchronization.
4
-
5
- ## Features
6
-
7
- - **Automatic reconnection**: Exponential backoff (1s → 60s max) on connection loss
8
- - **Local change batching**: Debounces rapid changes into efficient batches
9
- - **Delta sync**: Only sends changes since last successful sync
10
- - **Framework agnostic**: Works in any JavaScript environment with WebSocket support
11
- - **Type-safe**: Full TypeScript support
12
-
13
- ## Installation
14
-
15
- ```bash
16
- npm install @quereus/sync-client
17
- ```
18
-
19
- ## Quick Start
20
-
21
- ```typescript
22
- import { SyncClient } from '@quereus/sync-client';
23
- import { createSyncModule } from '@quereus/sync';
24
-
25
- // Assuming you have a SyncManager from sync
26
- const { syncManager, syncEvents } = await createSyncModule(kvStore, storeEvents);
27
-
28
- // Create the sync client
29
- const client = new SyncClient({
30
- syncManager,
31
- syncEvents,
32
- onStatusChange: (status) => {
33
- console.log('Connection status:', status.status);
34
- },
35
- onRemoteChanges: (result, changeSets) => {
36
- console.log(`Applied ${result.applied} changes`);
37
- },
38
- onError: (error) => {
39
- console.error('Sync error:', error);
40
- },
41
- });
42
-
43
- // Connect to the sync server
44
- await client.connect('wss://your-server.com/sync/ws', 'a1-s1', authToken);
45
-
46
- // Changes are synced automatically via syncEvents listener
47
- // When done:
48
- await client.disconnect();
49
- ```
50
-
51
- ## API
52
-
53
- ### `SyncClient`
54
-
55
- Main class for WebSocket-based synchronization.
56
-
57
- #### Constructor Options
58
-
59
- ```typescript
60
- interface SyncClientOptions {
61
- /** SyncManager from @quereus/sync */
62
- syncManager: SyncManager;
63
-
64
- /** SyncEventEmitter for local change notifications */
65
- syncEvents?: SyncEventEmitter;
66
-
67
- /** Called when connection status changes */
68
- onStatusChange?: (status: SyncStatus) => void;
69
-
70
- /** Called when remote changes are applied */
71
- onRemoteChanges?: (result: ApplyResult, changeSets: ChangeSet[]) => void;
72
-
73
- /** Called on sync events (for logging/UI) */
74
- onSyncEvent?: (event: SyncEvent) => void;
75
-
76
- /** Called on errors */
77
- onError?: (error: Error) => void;
78
-
79
- /** Enable automatic reconnection (default: true) */
80
- autoReconnect?: boolean;
81
-
82
- /** Initial reconnect delay in ms (default: 1000) */
83
- reconnectDelayMs?: number;
84
-
85
- /** Maximum reconnect delay in ms (default: 60000) */
86
- maxReconnectDelayMs?: number;
87
-
88
- /** Debounce window for local changes in ms (default: 50) */
89
- localChangeDebounceMs?: number;
90
- }
91
- ```
92
-
93
- #### Methods
94
-
95
- - `connect(url: string, databaseId: string, token?: string): Promise<void>` - Connect to sync server
96
- - `disconnect(): Promise<void>` - Disconnect and stop reconnection attempts
97
- - `getStatus(): SyncStatus` - Get current connection status
98
-
99
- ### Serialization Helpers
100
-
101
- The package exports helpers for ChangeSet serialization:
102
-
103
- ```typescript
104
- import {
105
- serializeChangeSet,
106
- deserializeChangeSet,
107
- serializeHLC,
108
- deserializeHLC,
109
- } from '@quereus/sync-client';
110
- ```
111
-
112
- ## Connection States
113
-
114
- The client goes through these states:
115
-
116
- ```
117
- DISCONNECTED → CONNECTING → SYNCING → SYNCED
118
- ↑ │
119
- └────────────────────┘ (on connection loss)
120
- ```
121
-
122
- - `disconnected`: Not connected
123
- - `connecting`: WebSocket connecting, handshake in progress
124
- - `syncing`: Connected, exchanging initial changes
125
- - `synced`: Fully synchronized, real-time updates active
126
- - `error`: Connection error (will auto-reconnect if enabled)
127
-
128
- ## Protocol
129
-
130
- The client implements the Quereus sync WebSocket protocol:
131
-
132
- | Message | Direction | Purpose |
133
- |---------|-----------|---------|
134
- | `handshake` | Client→Server | Authenticate with siteId and token |
135
- | `handshake_ack` | Server→Client | Confirm connection |
136
- | `get_changes` | Client→Server | Request changes since HLC |
137
- | `changes` | Server→Client | Initial/requested changes |
138
- | `apply_changes` | Client→Server | Send local changes |
139
- | `apply_result` | Server→Client | Confirm changes applied |
140
- | `push_changes` | Server→Client | Real-time changes from other clients |
141
- | `ping`/`pong` | Both | Keepalive |
142
-
143
- ## Related Packages
144
-
145
- - [`@quereus/sync`](../quereus-sync/) - Sync module (provides SyncManager)
146
- - [`@quereus/sync-coordinator`](../sync-coordinator/) - Server-side coordinator
147
- - [`@quereus/store`](../quereus-store/) - Storage base layer
148
-
149
- ## License
150
-
151
- MIT
152
-
1
+ # @quereus/sync-client
2
+
3
+ WebSocket sync client for [Quereus](https://github.com/gotchoices/quereus). Handles connection management, reconnection, and bidirectional change synchronization.
4
+
5
+ ## Features
6
+
7
+ - **Automatic reconnection**: Exponential backoff (1s → 60s max) on connection loss
8
+ - **Local change batching**: Debounces rapid changes into efficient batches
9
+ - **Delta sync**: Only sends changes since last successful sync
10
+ - **Framework agnostic**: Works in any JavaScript environment with WebSocket support
11
+ - **Type-safe**: Full TypeScript support
12
+
13
+ ## Installation
14
+
15
+ ```bash
16
+ npm install @quereus/sync-client
17
+ ```
18
+
19
+ ## Quick Start
20
+
21
+ ```typescript
22
+ import { SyncClient } from '@quereus/sync-client';
23
+ import { createSyncModule } from '@quereus/sync';
24
+
25
+ // Assuming you have a SyncManager from sync
26
+ const { syncManager, syncEvents } = await createSyncModule(kvStore, storeEvents);
27
+
28
+ // Create the sync client
29
+ const client = new SyncClient({
30
+ syncManager,
31
+ syncEvents,
32
+ onStatusChange: (status) => {
33
+ console.log('Connection status:', status.status);
34
+ },
35
+ onRemoteChanges: (result, changeSets) => {
36
+ console.log(`Applied ${result.applied} changes`);
37
+ },
38
+ onError: (error) => {
39
+ console.error('Sync error:', error);
40
+ },
41
+ });
42
+
43
+ // Connect to the sync server
44
+ await client.connect('wss://your-server.com/sync/ws', 'a1-s1', authToken);
45
+
46
+ // Changes are synced automatically via syncEvents listener
47
+ // When done:
48
+ await client.disconnect();
49
+ ```
50
+
51
+ ## API
52
+
53
+ ### `SyncClient`
54
+
55
+ Main class for WebSocket-based synchronization.
56
+
57
+ #### Constructor Options
58
+
59
+ ```typescript
60
+ interface SyncClientOptions {
61
+ /** SyncManager from @quereus/sync */
62
+ syncManager: SyncManager;
63
+
64
+ /** SyncEventEmitter for local change notifications */
65
+ syncEvents: SyncEventEmitter;
66
+
67
+ /** Called when connection status changes */
68
+ onStatusChange?: (status: SyncStatus) => void;
69
+
70
+ /** Called when remote changes are applied */
71
+ onRemoteChanges?: (result: ApplyResult, changeSets: ChangeSet[]) => void;
72
+
73
+ /** Called on sync events (for logging/UI) */
74
+ onSyncEvent?: (event: SyncEvent) => void;
75
+
76
+ /** Called on errors */
77
+ onError?: (error: Error) => void;
78
+
79
+ /** Enable automatic reconnection (default: true) */
80
+ autoReconnect?: boolean;
81
+
82
+ /** Initial reconnect delay in ms (default: 1000) */
83
+ reconnectDelayMs?: number;
84
+
85
+ /** Maximum reconnect delay in ms (default: 60000) */
86
+ maxReconnectDelayMs?: number;
87
+
88
+ /** Debounce window for local changes in ms (default: 50) */
89
+ localChangeDebounceMs?: number;
90
+ }
91
+ ```
92
+
93
+ #### Methods
94
+
95
+ - `connect(url: string, databaseId: string, token?: string): Promise<void>` - Connect to sync server
96
+ - `disconnect(): Promise<void>` - Disconnect and stop reconnection attempts
97
+ - `status: SyncStatus` - Current connection status (getter property)
98
+ - `isConnected: boolean` - Whether the WebSocket is open (getter property)
99
+ - `isSynced: boolean` - Whether the client is fully synced (getter property)
100
+
101
+ ### Serialization Helpers
102
+
103
+ The package exports helpers for ChangeSet serialization:
104
+
105
+ ```typescript
106
+ import {
107
+ serializeChangeSet,
108
+ deserializeChangeSet,
109
+ serializeHLCForTransport,
110
+ deserializeHLCFromTransport,
111
+ } from '@quereus/sync-client';
112
+ ```
113
+
114
+ ## Connection States
115
+
116
+ The client goes through these states:
117
+
118
+ ```
119
+ DISCONNECTED → CONNECTING → SYNCING → SYNCED
120
+ ↑ │
121
+ └────────────────────┘ (on connection loss)
122
+ ```
123
+
124
+ - `disconnected`: Not connected
125
+ - `connecting`: WebSocket connecting, handshake in progress
126
+ - `syncing`: Connected, exchanging initial changes
127
+ - `synced`: Fully synchronized, real-time updates active
128
+ - `error`: Connection error (will auto-reconnect if enabled)
129
+
130
+ ## Protocol
131
+
132
+ The client implements the Quereus sync WebSocket protocol:
133
+
134
+ | Message | Direction | Purpose |
135
+ |---------|-----------|---------|
136
+ | `handshake` | Client→Server | Authenticate with siteId and token |
137
+ | `handshake_ack` | Server→Client | Confirm connection |
138
+ | `get_changes` | Client→Server | Request changes since HLC |
139
+ | `changes` | Server→Client | Initial/requested changes |
140
+ | `apply_changes` | Client→Server | Send local changes |
141
+ | `apply_result` | Server→Client | Confirm changes applied |
142
+ | `push_changes` | Server→Client | Real-time changes from other clients |
143
+ | `ping`/`pong` | Both | Keepalive |
144
+
145
+ ## Related Packages
146
+
147
+ - [`@quereus/sync`](../quereus-sync/) - Sync module (provides SyncManager)
148
+ - [`@quereus/sync-coordinator`](../sync-coordinator/) - Server-side coordinator
149
+ - [`@quereus/store`](../quereus-store/) - Storage base layer
150
+
151
+ ## License
152
+
153
+ MIT
154
+
@@ -1 +1 @@
1
- {"version":3,"file":"sync-client.d.ts","sourceRoot":"","sources":["../../src/sync-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAaH,OAAO,KAAK,EACV,iBAAiB,EACjB,UAAU,EAGX,MAAM,YAAY,CAAC;AAcpB;;;;;GAKG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAED;IAGvB,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,YAAY,CAAuB;IAG3C,OAAO,CAAC,OAAO,CAA0C;IACzD,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,eAAe,CAAiC;IAGxD,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,qBAAqB,CAAS;IAGtC,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,cAAc,CAAoB;IAG1C,OAAO,CAAC,aAAa,CAA8C;IACnE,OAAO,CAAC,uBAAuB,CAAK;IAGpC,OAAO,CAAC,sBAAsB,CAA6B;gBAE/C,OAAO,EAAE,iBAAiB;IAYtC,gCAAgC;IAChC,IAAI,MAAM,IAAI,UAAU,CAEvB;IAED,iDAAiD;IACjD,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,yCAAyC;IACzC,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;;;;;;OAOG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6D7E;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YA8BnB,aAAa;YAoCb,kBAAkB;YAoBlB,aAAa;IAgC3B,OAAO,CAAC,iBAAiB;YASX,oBAAoB;IAqBlC,OAAO,CAAC,aAAa;YAUP,wBAAwB;IAatC,OAAO,CAAC,IAAI;IAWZ,OAAO,CAAC,uBAAuB;IAa/B,OAAO,CAAC,wBAAwB;YASlB,gBAAgB;IAyC9B,OAAO,CAAC,iBAAiB;IA0BzB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,aAAa;CAatB"}
1
+ {"version":3,"file":"sync-client.d.ts","sourceRoot":"","sources":["../../src/sync-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAaH,OAAO,KAAK,EACV,iBAAiB,EACjB,UAAU,EAKX,MAAM,YAAY,CAAC;AAyBpB;;;;;GAKG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAED;IAGvB,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,YAAY,CAAuB;IAG3C,OAAO,CAAC,OAAO,CAA0C;IACzD,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,eAAe,CAAiC;IAGxD,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,qBAAqB,CAAS;IAGtC,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,cAAc,CAAoB;IAG1C,OAAO,CAAC,aAAa,CAA8C;IACnE,OAAO,CAAC,uBAAuB,CAAK;IAGpC,OAAO,CAAC,sBAAsB,CAA6B;gBAE/C,OAAO,EAAE,iBAAiB;IAYtC,gCAAgC;IAChC,IAAI,MAAM,IAAI,UAAU,CAEvB;IAED,iDAAiD;IACjD,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,yCAAyC;IACzC,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;;;;;;OAOG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6D7E;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YA8BnB,aAAa;YAoCb,kBAAkB;YAuBlB,aAAa;IA2B3B,OAAO,CAAC,iBAAiB;YASX,oBAAoB;IAqBlC,OAAO,CAAC,aAAa;YAUP,wBAAwB;IAYtC,OAAO,CAAC,IAAI;IAWZ,OAAO,CAAC,uBAAuB;IAa/B,OAAO,CAAC,wBAAwB;YASlB,gBAAgB;IAoC9B,OAAO,CAAC,iBAAiB;IA0BzB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,aAAa;CAatB"}
@@ -14,6 +14,16 @@ import { serializeChangeSet, deserializeChangeSet, serializeHLCForTransport, des
14
14
  const DEFAULT_RECONNECT_DELAY_MS = 1000;
15
15
  const DEFAULT_MAX_RECONNECT_DELAY_MS = 60_000;
16
16
  const DEFAULT_LOCAL_CHANGE_DEBOUNCE_MS = 50;
17
+ /** Find the maximum HLC in a list of change sets. */
18
+ function maxHLCFromChangeSets(changeSets) {
19
+ let max;
20
+ for (const cs of changeSets) {
21
+ if (!max || compareHLC(cs.hlc, max) > 0) {
22
+ max = cs.hlc;
23
+ }
24
+ }
25
+ return max;
26
+ }
17
27
  /**
18
28
  * WebSocket sync client for Quereus.
19
29
  *
@@ -191,22 +201,20 @@ export class SyncClient {
191
201
  this.emitSyncEvent('state-change', `Authenticated with server (connection: ${message.connectionId?.slice(0, 8) ?? 'unknown'})`);
192
202
  // Request changes from server since our last sync with this peer
193
203
  await this.requestChangesFromServer();
194
- // Subscribe to local changes for pushing to server
195
- this.subscribeToLocalChanges();
196
- // Push any existing local changes to server (changes made while offline)
197
- await this.pushLocalChanges();
204
+ // In read-only (pull-only) mode, skip push entirely
205
+ if (!this.options.readOnly) {
206
+ // Subscribe to local changes for pushing to server
207
+ this.subscribeToLocalChanges();
208
+ // Push any existing local changes to server (changes made while offline)
209
+ await this.pushLocalChanges();
210
+ }
198
211
  }
199
212
  async handleChanges(serializedChangeSets) {
200
213
  const changeSets = serializedChangeSets.map(cs => deserializeChangeSet(cs));
201
214
  const result = await this.syncManager.applyChanges(changeSets);
202
215
  // Update peer sync state with the max HLC from received changes
203
216
  if (changeSets.length > 0 && this.serverSiteId) {
204
- let maxHLC;
205
- for (const cs of changeSets) {
206
- if (!maxHLC || compareHLC(cs.hlc, maxHLC) > 0) {
207
- maxHLC = cs.hlc;
208
- }
209
- }
217
+ const maxHLC = maxHLCFromChangeSets(changeSets);
210
218
  if (maxHLC) {
211
219
  await this.syncManager.updatePeerSyncState(this.serverSiteId, maxHLC);
212
220
  }
@@ -259,11 +267,12 @@ export class SyncClient {
259
267
  if (!this.serverSiteId)
260
268
  return;
261
269
  const lastSyncHLC = await this.syncManager.getPeerSyncState(this.serverSiteId);
262
- const msg = { type: 'get_changes' };
263
270
  if (lastSyncHLC) {
264
- msg.sinceHLC = serializeHLCForTransport(lastSyncHLC);
271
+ this.send({ type: 'get_changes', sinceHLC: serializeHLCForTransport(lastSyncHLC) });
272
+ }
273
+ else {
274
+ this.send({ type: 'get_changes' });
265
275
  }
266
- this.send(msg);
267
276
  }
268
277
  send(message) {
269
278
  if (this.ws?.readyState === WebSocket.OPEN) {
@@ -292,6 +301,8 @@ export class SyncClient {
292
301
  }, this.options.localChangeDebounceMs);
293
302
  }
294
303
  async pushLocalChanges() {
304
+ if (this.options.readOnly)
305
+ return;
295
306
  if (!this.isConnected || !this.serverSiteId)
296
307
  return;
297
308
  // Get changes since lastSentHLC (delta sync)
@@ -301,13 +312,7 @@ export class SyncClient {
301
312
  if (changes.length === 0)
302
313
  return;
303
314
  // Track the max HLC we're sending for delta sync
304
- let maxHLC;
305
- for (const cs of changes) {
306
- if (!maxHLC || compareHLC(cs.hlc, maxHLC) > 0) {
307
- maxHLC = cs.hlc;
308
- }
309
- }
310
- this.pendingSentHLC = maxHLC ?? null;
315
+ this.pendingSentHLC = maxHLCFromChangeSets(changes) ?? null;
311
316
  // Serialize and send
312
317
  const serialized = changes.map(cs => serializeChangeSet(cs));
313
318
  this.emitSyncEvent('local-change', `Sending ${changes.length} change set(s) to server`, {
@@ -1 +1 @@
1
- {"version":3,"file":"sync-client.js","sourceRoot":"","sources":["../../src/sync-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-client.js","sourceRoot":"","sources":["../../src/sync-client.ts"],"names":[],"mappings":"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"}
@@ -86,6 +86,13 @@ export interface SyncClientOptions {
86
86
  * @default 50
87
87
  */
88
88
  localChangeDebounceMs?: number;
89
+ /**
90
+ * When true, the client operates in pull-only mode: it receives remote
91
+ * changes but never pushes local changes to the server. Useful for
92
+ * read-only / view-permission shared scenarios.
93
+ * @default false
94
+ */
95
+ readOnly?: boolean;
89
96
  }
90
97
  /** Client → Server: Handshake */
91
98
  export interface HandshakeMessage {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAM3F;;GAEG;AACH,MAAM,MAAM,UAAU,GAClB;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,GAC1B;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE,GACxB;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzC;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG,cAAc,GAAG,UAAU,GAAG,cAAc,GAAG,OAAO,GAAG,MAAM,CAAC;AAE9G;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAMD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,WAAW,EAAE,WAAW,CAAC;IAEzB;;;OAGG;IACH,UAAU,EAAE,gBAAgB,CAAC;IAE7B;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAE9C;;OAEG;IACH,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;IAEzE;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAEzC;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEjC;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAMD,iCAAiC;AACjC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,uCAAuC;AACvC,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,2CAA2C;AAC3C,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAChC;AAED,wCAAwC;AACxC,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,cAAc,CAAC;CACtB;AAED,iCAAiC;AACjC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,aAAa,GACrB,gBAAgB,GAChB,iBAAiB,GACjB,mBAAmB,GACnB,kBAAkB,GAClB,WAAW,CAAC;AAEhB,gDAAgD;AAChD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,eAAe,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wCAAwC;AACxC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,mBAAmB,EAAE,CAAC;CACnC;AAED,wDAAwD;AACxD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,cAAc,CAAC;IACrB,UAAU,EAAE,mBAAmB,EAAE,CAAC;CACnC;AAED,oCAAoC;AACpC,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,6BAA6B;AAC7B,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,0CAA0C;AAC1C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,aAAa,GACrB,mBAAmB,GACnB,cAAc,GACd,kBAAkB,GAClB,kBAAkB,GAClB,YAAY,GACZ,WAAW,CAAC;AAMhB;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,gBAAgB,EAAE,yBAAyB,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,OAAO,EAAE,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;CACvB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quereus/sync-client",
3
- "version": "0.7.3",
3
+ "version": "0.8.0",
4
4
  "type": "module",
5
5
  "description": "WebSocket sync client for Quereus - handles connection, reconnection, and change synchronization",
6
6
  "keywords": [
@@ -39,7 +39,7 @@
39
39
  "test:single": "cd ../.. && node --import ./packages/quereus-sync-client/register.mjs node_modules/mocha/bin/mocha.js --bail"
40
40
  },
41
41
  "peerDependencies": {
42
- "@quereus/sync": "^0.6.3"
42
+ "@quereus/sync": "^0.7.0"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@quereus/sync": "*",