@zeroback/client 0.0.3 → 0.0.5

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.
@@ -16,6 +16,8 @@ export type ClientMessage = {
16
16
  } | {
17
17
  type: "unsubscribe";
18
18
  id: string;
19
+ } | {
20
+ type: "ping";
19
21
  };
20
22
  export type ServerMessage = {
21
23
  type: "result";
@@ -46,5 +48,7 @@ export type ServerMessage = {
46
48
  message: string;
47
49
  } | {
48
50
  type: "reset";
51
+ } | {
52
+ type: "pong";
49
53
  };
50
54
  //# sourceMappingURL=Protocol.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Protocol.d.ts","sourceRoot":"","sources":["../src/Protocol.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC3D;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GACzD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAExC,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,EAAE,CAAA;CAAE,GAC7D;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC7D;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"Protocol.d.ts","sourceRoot":"","sources":["../src/Protocol.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC3D;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GACzD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,EAAE,CAAA;CAAE,GAC7D;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC7D;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC"}
@@ -8,6 +8,10 @@ export interface ZerobackClientOptions {
8
8
  maxCacheAge?: number;
9
9
  schemaVersion?: string;
10
10
  backoff?: BackoffOptions;
11
+ /** Heartbeat ping interval in milliseconds. Set to 0 to disable. Default: 30000 (30s). */
12
+ heartbeatIntervalMs?: number;
13
+ /** Timeout for mutation/action requests in milliseconds. Default: 60000 (60s). */
14
+ requestTimeoutMs?: number;
11
15
  }
12
16
  export declare class ZerobackClient {
13
17
  private ws;
@@ -18,6 +22,10 @@ export declare class ZerobackClient {
18
22
  private isConnecting;
19
23
  private messageQueue;
20
24
  private closed;
25
+ private heartbeatInterval;
26
+ private lastPongAt;
27
+ private heartbeatIntervalMs;
28
+ private requestTimeoutMs;
21
29
  private _connectionState;
22
30
  private connectionListeners;
23
31
  /** Centralized query result cache with optimistic update support. */
@@ -40,9 +48,15 @@ export declare class ZerobackClient {
40
48
  private setConnectionState;
41
49
  private connect;
42
50
  private scheduleReconnect;
51
+ private startHeartbeat;
52
+ private stopHeartbeat;
43
53
  /** Re-subscribe all active subscriptions after reconnect or server reset. */
44
54
  private resubscribeAll;
45
55
  private flushMessageQueue;
56
+ private addPendingRequest;
57
+ private resolvePending;
58
+ private rejectPending;
59
+ private rejectAllPending;
46
60
  private send;
47
61
  subscribe(fnName: string, args: unknown, callback?: (data: unknown) => void): () => void;
48
62
  /** Subscribe to changes for a specific query key in the centralized store. */
@@ -1 +1 @@
1
- {"version":3,"file":"ZerobackClient.d.ts","sourceRoot":"","sources":["../src/ZerobackClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAI9E,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,WAAW,GAAG,cAAc,CAAC;AAE1E,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,EAAE,OAAO,GAAG,kBAAkB,CAAC;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,eAAe,CAGlB;IACL,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,gBAAgB,CAAmC;IAC3D,OAAO,CAAC,mBAAmB,CAA+C;IAE1E,qEAAqE;IACrE,QAAQ,CAAC,UAAU,aAAoB;IAEvC,oFAAoF;IACpF,OAAO,CAAC,aAAa,CAAoC;IAEzD,OAAO,CAAC,sBAAsB,CAA8B;IAC5D,OAAO,CAAC,OAAO,CAAwB;gBAE3B,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB;IAsBxD;;;;OAIG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAMb,wBAAwB;IAatC,eAAe,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO;IAIvC,IAAI,eAAe,IAAI,eAAe,CAErC;IAED,kBAAkB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,GAAG,MAAM,IAAI;IAK1E,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,OAAO;IA6Cf,OAAO,CAAC,iBAAiB;IAczB,6EAA6E;IAC7E,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,IAAI;IAQZ,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI;IASxF,8EAA8E;IAC9E,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAI3D,yEAAyE;IACzE,cAAc,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS;IAIlD,QAAQ,CACN,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,EACb,IAAI,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;KAAE,GACxD,OAAO,CAAC,OAAO,CAAC;IAoCb,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ7D,OAAO,CAAC,aAAa;IAsDrB,KAAK,IAAI,IAAI;CAMd"}
1
+ {"version":3,"file":"ZerobackClient.d.ts","sourceRoot":"","sources":["../src/ZerobackClient.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,10 @@ export class ZerobackClient {
12
12
  isConnecting = false;
13
13
  messageQueue = [];
14
14
  closed = false;
15
+ heartbeatInterval = null;
16
+ lastPongAt = 0;
17
+ heartbeatIntervalMs;
18
+ requestTimeoutMs;
15
19
  _connectionState = "disconnected";
16
20
  connectionListeners = new Set();
17
21
  /** Centralized query result cache with optimistic update support. */
@@ -24,6 +28,8 @@ export class ZerobackClient {
24
28
  this.url = url;
25
29
  this.options = options ?? {};
26
30
  this.backoff = new Backoff(options?.backoff);
31
+ this.heartbeatIntervalMs = options?.heartbeatIntervalMs ?? 30_000;
32
+ this.requestTimeoutMs = options?.requestTimeoutMs ?? 60_000;
27
33
  this.subscriptions = new SubscriptionRegistry();
28
34
  if (this.options.persistence) {
29
35
  const adapter = typeof this.options.persistence === "object"
@@ -101,6 +107,7 @@ export class ZerobackClient {
101
107
  this.isConnecting = false;
102
108
  this.backoff.reset();
103
109
  this.setConnectionState("connected");
110
+ this.startHeartbeat();
104
111
  this.resubscribeAll();
105
112
  this.flushMessageQueue();
106
113
  };
@@ -115,26 +122,47 @@ export class ZerobackClient {
115
122
  };
116
123
  this.ws.onclose = () => {
117
124
  this.isConnecting = false;
125
+ this.stopHeartbeat();
118
126
  this.setConnectionState("disconnected");
119
127
  if (!this.closed)
120
128
  this.scheduleReconnect();
121
129
  };
122
130
  this.ws.onerror = () => {
123
131
  this.isConnecting = false;
132
+ this.stopHeartbeat();
124
133
  };
125
134
  }
126
135
  scheduleReconnect() {
127
136
  if (this.closed || !this.backoff.shouldRetry()) {
128
- // Reject all pending requests on permanent disconnect
129
- for (const [id, pending] of this.pendingRequests) {
130
- pending.reject(new Error("Connection lost"));
131
- this.pendingRequests.delete(id);
132
- }
137
+ this.rejectAllPending("Connection lost");
133
138
  return;
134
139
  }
135
140
  const delay = this.backoff.next();
136
141
  setTimeout(() => this.connect(), delay);
137
142
  }
143
+ startHeartbeat() {
144
+ this.stopHeartbeat();
145
+ if (this.heartbeatIntervalMs <= 0)
146
+ return;
147
+ this.lastPongAt = Date.now();
148
+ this.heartbeatInterval = setInterval(() => {
149
+ // If no pong received within 2x the interval, consider connection dead
150
+ if (Date.now() - this.lastPongAt > this.heartbeatIntervalMs * 2) {
151
+ this.stopHeartbeat();
152
+ this.ws?.close();
153
+ return;
154
+ }
155
+ if (this.ws?.readyState === WebSocket.OPEN) {
156
+ this.ws.send('{"type":"ping"}');
157
+ }
158
+ }, this.heartbeatIntervalMs);
159
+ }
160
+ stopHeartbeat() {
161
+ if (this.heartbeatInterval !== null) {
162
+ clearInterval(this.heartbeatInterval);
163
+ this.heartbeatInterval = null;
164
+ }
165
+ }
138
166
  /** Re-subscribe all active subscriptions after reconnect or server reset. */
139
167
  resubscribeAll() {
140
168
  for (const sub of this.subscriptions.getAll()) {
@@ -147,6 +175,36 @@ export class ZerobackClient {
147
175
  this.send(msg);
148
176
  }
149
177
  }
178
+ addPendingRequest(id, resolve, reject) {
179
+ const timer = setTimeout(() => {
180
+ this.pendingRequests.delete(id);
181
+ reject(new Error("Request timed out"));
182
+ }, this.requestTimeoutMs);
183
+ this.pendingRequests.set(id, { resolve, reject, timer });
184
+ }
185
+ resolvePending(id, value) {
186
+ const pending = this.pendingRequests.get(id);
187
+ if (pending) {
188
+ clearTimeout(pending.timer);
189
+ pending.resolve(value);
190
+ this.pendingRequests.delete(id);
191
+ }
192
+ }
193
+ rejectPending(id, reason) {
194
+ const pending = this.pendingRequests.get(id);
195
+ if (pending) {
196
+ clearTimeout(pending.timer);
197
+ pending.reject(reason);
198
+ this.pendingRequests.delete(id);
199
+ }
200
+ }
201
+ rejectAllPending(reason) {
202
+ for (const [id, pending] of this.pendingRequests) {
203
+ clearTimeout(pending.timer);
204
+ pending.reject(new Error(reason));
205
+ this.pendingRequests.delete(id);
206
+ }
207
+ }
150
208
  send(msg) {
151
209
  if (this.ws?.readyState === WebSocket.OPEN) {
152
210
  this.ws.send(JSON.stringify(msg));
@@ -185,7 +243,7 @@ export class ZerobackClient {
185
243
  const result = this.mutationQueue.then(async () => {
186
244
  try {
187
245
  const res = await new Promise((resolve, reject) => {
188
- this.pendingRequests.set(id, { resolve, reject });
246
+ this.addPendingRequest(id, resolve, reject);
189
247
  this.send({ type: "mutation", id, fn: fnName, args });
190
248
  });
191
249
  // Mutation succeeded — remove from persisted queue
@@ -205,7 +263,7 @@ export class ZerobackClient {
205
263
  async action(fnName, args) {
206
264
  const id = crypto.randomUUID();
207
265
  return new Promise((resolve, reject) => {
208
- this.pendingRequests.set(id, { resolve, reject });
266
+ this.addPendingRequest(id, resolve, reject);
209
267
  this.send({ type: "action", id, fn: fnName, args });
210
268
  });
211
269
  }
@@ -234,23 +292,17 @@ export class ZerobackClient {
234
292
  }
235
293
  break;
236
294
  case "mutationResult":
237
- case "actionResult": {
238
- const pending = this.pendingRequests.get(msg.id);
239
- if (pending) {
240
- pending.resolve(msg.result);
241
- this.pendingRequests.delete(msg.id);
242
- }
295
+ case "actionResult":
296
+ this.resolvePending(msg.id, msg.result);
243
297
  break;
244
- }
245
298
  case "error":
246
299
  if (msg.id) {
247
- const pending = this.pendingRequests.get(msg.id);
248
- if (pending) {
249
- pending.reject(new Error(msg.message));
250
- this.pendingRequests.delete(msg.id);
251
- }
300
+ this.rejectPending(msg.id, new Error(msg.message));
252
301
  }
253
302
  break;
303
+ case "pong":
304
+ this.lastPongAt = Date.now();
305
+ break;
254
306
  case "reset":
255
307
  // Server lost subscription state (e.g. hibernation wake) — re-subscribe
256
308
  this.queryStore.clearServerConfirmations();
@@ -260,6 +312,7 @@ export class ZerobackClient {
260
312
  }
261
313
  close() {
262
314
  this.closed = true;
315
+ this.stopHeartbeat();
263
316
  this.ws?.close();
264
317
  this.ws = null;
265
318
  this.setConnectionState("disconnected");
@@ -1 +1 @@
1
- {"version":3,"file":"ZerobackClient.js","sourceRoot":"","sources":["../src/ZerobackClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ZerobackClient.js","sourceRoot":"","sources":["../src/ZerobackClient.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeroback/client",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -10,10 +10,12 @@
10
10
  "import": "./dist/index.js"
11
11
  }
12
12
  },
13
- "files": ["dist"],
13
+ "files": [
14
+ "dist"
15
+ ],
14
16
  "dependencies": {
15
- "@zeroback/values": "^0.0.1",
16
- "@zeroback/server": "^0.0.1"
17
+ "@zeroback/values": "^0.0.5",
18
+ "@zeroback/server": "^0.0.5"
17
19
  },
18
20
  "scripts": {
19
21
  "build": "tsc --build",
@@ -22,5 +24,8 @@
22
24
  },
23
25
  "devDependencies": {
24
26
  "typescript": "^5.6.0"
27
+ },
28
+ "publishConfig": {
29
+ "access": "public"
25
30
  }
26
31
  }
@@ -1,57 +0,0 @@
1
- import { QueryStore } from "./QueryStore";
2
- import type { LocalStore, QueryKey } from "./QueryStore";
3
- import type { PersistenceAdapter } from "./persistence/PersistenceAdapter.js";
4
- export type ConnectionState = "connecting" | "connected" | "disconnected";
5
- export interface ConvexClientOptions {
6
- persistence?: boolean | PersistenceAdapter;
7
- maxCacheAge?: number;
8
- schemaVersion?: string;
9
- }
10
- export declare class ConvexClient {
11
- private ws;
12
- private subscriptions;
13
- private pendingRequests;
14
- private url;
15
- private backoff;
16
- private isConnecting;
17
- private messageQueue;
18
- private closed;
19
- private _connectionState;
20
- private connectionListeners;
21
- /** Centralized query result cache with optimistic update support. */
22
- readonly queryStore: QueryStore;
23
- /** Sequential mutation queue — ensures mutations execute one at a time in order. */
24
- private mutationQueue;
25
- private persistedMutationQueue;
26
- private options;
27
- constructor(url: string, options?: ConvexClientOptions);
28
- /**
29
- * Initialize the client with persistence.
30
- * Hydrates cached data from IndexedDB, connects the WebSocket, and replays
31
- * any persisted offline mutations. Only needed when persistence is enabled.
32
- */
33
- init(): Promise<void>;
34
- private replayPersistedMutations;
35
- hasServerResult(key: QueryKey): boolean;
36
- get connectionState(): ConnectionState;
37
- onConnectionChange(listener: (state: ConnectionState) => void): () => void;
38
- private setConnectionState;
39
- private connect;
40
- private scheduleReconnect;
41
- /** Re-subscribe all active subscriptions after reconnect or server reset. */
42
- private resubscribeAll;
43
- private flushMessageQueue;
44
- private send;
45
- subscribe(fnName: string, args: unknown, callback?: (data: unknown) => void): () => void;
46
- /** Subscribe to changes for a specific query key in the centralized store. */
47
- watchQuery(key: QueryKey, listener: () => void): () => void;
48
- /** Get the current (merged base + optimistic) result for a query key. */
49
- getQueryResult(key: QueryKey): unknown | undefined;
50
- mutation(fnName: string, args: unknown, opts?: {
51
- optimisticUpdate?: (store: LocalStore) => void;
52
- }): Promise<unknown>;
53
- action(fnName: string, args: unknown): Promise<unknown>;
54
- private handleMessage;
55
- close(): void;
56
- }
57
- //# sourceMappingURL=ConvexClient.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConvexClient.d.ts","sourceRoot":"","sources":["../src/ConvexClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAI9E,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,WAAW,GAAG,cAAc,CAAC;AAE1E,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,OAAO,GAAG,kBAAkB,CAAC;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,eAAe,CAGlB;IACL,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,gBAAgB,CAAmC;IAC3D,OAAO,CAAC,mBAAmB,CAA+C;IAE1E,qEAAqE;IACrE,QAAQ,CAAC,UAAU,aAAoB;IAEvC,oFAAoF;IACpF,OAAO,CAAC,aAAa,CAAoC;IAEzD,OAAO,CAAC,sBAAsB,CAA8B;IAC5D,OAAO,CAAC,OAAO,CAAsB;gBAEzB,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB;IAqBtD;;;;OAIG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAMb,wBAAwB;IAatC,eAAe,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO;IAIvC,IAAI,eAAe,IAAI,eAAe,CAErC;IAED,kBAAkB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,GAAG,MAAM,IAAI;IAK1E,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,OAAO;IA6Cf,OAAO,CAAC,iBAAiB;IAczB,6EAA6E;IAC7E,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,IAAI;IAQZ,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI;IASxF,8EAA8E;IAC9E,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAI3D,yEAAyE;IACzE,cAAc,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS;IAIlD,QAAQ,CACN,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,EACb,IAAI,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;KAAE,GACxD,OAAO,CAAC,OAAO,CAAC;IAoCb,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ7D,OAAO,CAAC,aAAa;IAsDrB,KAAK,IAAI,IAAI;CAMd"}
@@ -1,267 +0,0 @@
1
- import { SubscriptionRegistry } from "./SubscriptionRegistry";
2
- import { Backoff } from "./Backoff";
3
- import { QueryStore } from "./QueryStore";
4
- import { IDBPersistence } from "./persistence/IDBPersistence.js";
5
- import { MutationQueue } from "./persistence/MutationQueue.js";
6
- export class ConvexClient {
7
- ws = null;
8
- subscriptions;
9
- pendingRequests = new Map();
10
- url;
11
- backoff = new Backoff();
12
- isConnecting = false;
13
- messageQueue = [];
14
- closed = false;
15
- _connectionState = "disconnected";
16
- connectionListeners = new Set();
17
- /** Centralized query result cache with optimistic update support. */
18
- queryStore = new QueryStore();
19
- /** Sequential mutation queue — ensures mutations execute one at a time in order. */
20
- mutationQueue = Promise.resolve();
21
- persistedMutationQueue = null;
22
- options;
23
- constructor(url, options) {
24
- this.url = url;
25
- this.options = options ?? {};
26
- this.subscriptions = new SubscriptionRegistry();
27
- if (this.options.persistence) {
28
- const adapter = typeof this.options.persistence === "object"
29
- ? this.options.persistence
30
- : new IDBPersistence(url, {
31
- maxCacheAge: this.options.maxCacheAge,
32
- schemaVersion: this.options.schemaVersion,
33
- });
34
- this.queryStore.setPersistence(adapter);
35
- this.persistedMutationQueue = new MutationQueue(url);
36
- // When persistence is enabled, defer connect() to init()
37
- }
38
- else {
39
- this.connect();
40
- }
41
- }
42
- /**
43
- * Initialize the client with persistence.
44
- * Hydrates cached data from IndexedDB, connects the WebSocket, and replays
45
- * any persisted offline mutations. Only needed when persistence is enabled.
46
- */
47
- async init() {
48
- await this.queryStore.hydrate();
49
- this.connect();
50
- await this.replayPersistedMutations();
51
- }
52
- async replayPersistedMutations() {
53
- if (!this.persistedMutationQueue)
54
- return;
55
- const pending = await this.persistedMutationQueue.getAll();
56
- for (const m of pending) {
57
- try {
58
- await this.mutation(m.fnName, m.args);
59
- }
60
- catch {
61
- // Mutation failed on replay — discard it
62
- }
63
- await this.persistedMutationQueue.remove(m.id);
64
- }
65
- }
66
- hasServerResult(key) {
67
- return this.queryStore.hasServerConfirmation(key);
68
- }
69
- get connectionState() {
70
- return this._connectionState;
71
- }
72
- onConnectionChange(listener) {
73
- this.connectionListeners.add(listener);
74
- return () => this.connectionListeners.delete(listener);
75
- }
76
- setConnectionState(state) {
77
- if (this._connectionState === state)
78
- return;
79
- this._connectionState = state;
80
- for (const listener of this.connectionListeners) {
81
- listener(state);
82
- }
83
- }
84
- connect() {
85
- if (this.closed || this.isConnecting || (this.ws?.readyState === WebSocket.OPEN)) {
86
- return;
87
- }
88
- this.isConnecting = true;
89
- this.setConnectionState("connecting");
90
- try {
91
- this.ws = new WebSocket(this.url);
92
- }
93
- catch {
94
- this.isConnecting = false;
95
- this.setConnectionState("disconnected");
96
- this.scheduleReconnect();
97
- return;
98
- }
99
- this.ws.onopen = () => {
100
- this.isConnecting = false;
101
- this.backoff.reset();
102
- this.setConnectionState("connected");
103
- this.resubscribeAll();
104
- this.flushMessageQueue();
105
- };
106
- this.ws.onmessage = (event) => {
107
- try {
108
- const msg = JSON.parse(event.data);
109
- this.handleMessage(msg);
110
- }
111
- catch {
112
- // Ignore unparseable messages
113
- }
114
- };
115
- this.ws.onclose = () => {
116
- this.isConnecting = false;
117
- this.setConnectionState("disconnected");
118
- if (!this.closed)
119
- this.scheduleReconnect();
120
- };
121
- this.ws.onerror = () => {
122
- this.isConnecting = false;
123
- };
124
- }
125
- scheduleReconnect() {
126
- if (this.closed || !this.backoff.shouldRetry()) {
127
- // Reject all pending requests on permanent disconnect
128
- for (const [id, pending] of this.pendingRequests) {
129
- pending.reject(new Error("Connection lost"));
130
- this.pendingRequests.delete(id);
131
- }
132
- return;
133
- }
134
- const delay = this.backoff.next();
135
- setTimeout(() => this.connect(), delay);
136
- }
137
- /** Re-subscribe all active subscriptions after reconnect or server reset. */
138
- resubscribeAll() {
139
- for (const sub of this.subscriptions.getAll()) {
140
- this.send({ type: "query", id: sub.id, fn: sub.fnName, args: sub.args });
141
- }
142
- }
143
- flushMessageQueue() {
144
- while (this.messageQueue.length > 0) {
145
- const msg = this.messageQueue.shift();
146
- this.send(msg);
147
- }
148
- }
149
- send(msg) {
150
- if (this.ws?.readyState === WebSocket.OPEN) {
151
- this.ws.send(JSON.stringify(msg));
152
- }
153
- else {
154
- this.messageQueue.push(msg);
155
- }
156
- }
157
- subscribe(fnName, args, callback) {
158
- const subId = this.subscriptions.add(fnName, args, callback ?? (() => { }));
159
- this.send({ type: "query", id: subId, fn: fnName, args });
160
- return () => {
161
- this.subscriptions.remove(subId);
162
- this.send({ type: "unsubscribe", id: subId });
163
- };
164
- }
165
- /** Subscribe to changes for a specific query key in the centralized store. */
166
- watchQuery(key, listener) {
167
- return this.queryStore.subscribe(key, listener);
168
- }
169
- /** Get the current (merged base + optimistic) result for a query key. */
170
- getQueryResult(key) {
171
- return this.queryStore.getResult(key);
172
- }
173
- mutation(fnName, args, opts) {
174
- const id = crypto.randomUUID();
175
- // Apply optimistic update immediately (before waiting in queue)
176
- if (opts?.optimisticUpdate) {
177
- this.queryStore.addLayer(id, opts.optimisticUpdate);
178
- }
179
- // Persist mutation for offline replay (fire-and-forget)
180
- if (this.persistedMutationQueue) {
181
- this.persistedMutationQueue.add({ id, fnName, args, timestamp: Date.now() }).catch(() => { });
182
- }
183
- // Chain onto the mutation queue so mutations execute sequentially
184
- const result = this.mutationQueue.then(async () => {
185
- try {
186
- const res = await new Promise((resolve, reject) => {
187
- this.pendingRequests.set(id, { resolve, reject });
188
- this.send({ type: "mutation", id, fn: fnName, args });
189
- });
190
- // Mutation succeeded — remove from persisted queue
191
- this.persistedMutationQueue?.remove(id).catch(() => { });
192
- return res;
193
- }
194
- finally {
195
- if (opts?.optimisticUpdate) {
196
- this.queryStore.removeLayer(id);
197
- }
198
- }
199
- });
200
- // Update the queue — always resolve so subsequent mutations aren't blocked by failures
201
- this.mutationQueue = result.then(() => { }, () => { });
202
- return result;
203
- }
204
- async action(fnName, args) {
205
- const id = crypto.randomUUID();
206
- return new Promise((resolve, reject) => {
207
- this.pendingRequests.set(id, { resolve, reject });
208
- this.send({ type: "action", id, fn: fnName, args });
209
- });
210
- }
211
- handleMessage(msg) {
212
- switch (msg.type) {
213
- case "result":
214
- case "update": {
215
- // Update centralized store
216
- const sub = this.subscriptions.get(msg.id);
217
- if (sub) {
218
- const key = QueryStore.makeKey(sub.fnName, sub.args);
219
- this.queryStore.setServerResult(key, msg.result);
220
- }
221
- // Also call subscription callback (for usePaginatedQuery and direct subscribers)
222
- this.subscriptions.notify(msg.id, msg.result);
223
- break;
224
- }
225
- case "updates":
226
- for (const item of msg.items) {
227
- const sub = this.subscriptions.get(item.id);
228
- if (sub) {
229
- const key = QueryStore.makeKey(sub.fnName, sub.args);
230
- this.queryStore.setServerResult(key, item.result);
231
- }
232
- this.subscriptions.notify(item.id, item.result);
233
- }
234
- break;
235
- case "mutationResult":
236
- case "actionResult": {
237
- const pending = this.pendingRequests.get(msg.id);
238
- if (pending) {
239
- pending.resolve(msg.result);
240
- this.pendingRequests.delete(msg.id);
241
- }
242
- break;
243
- }
244
- case "error":
245
- if (msg.id) {
246
- const pending = this.pendingRequests.get(msg.id);
247
- if (pending) {
248
- pending.reject(new Error(msg.message));
249
- this.pendingRequests.delete(msg.id);
250
- }
251
- }
252
- break;
253
- case "reset":
254
- // Server lost subscription state (e.g. hibernation wake) — re-subscribe
255
- this.queryStore.clearServerConfirmations();
256
- this.resubscribeAll();
257
- break;
258
- }
259
- }
260
- close() {
261
- this.closed = true;
262
- this.ws?.close();
263
- this.ws = null;
264
- this.setConnectionState("disconnected");
265
- }
266
- }
267
- //# sourceMappingURL=ConvexClient.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConvexClient.js","sourceRoot":"","sources":["../src/ConvexClient.ts"],"names":[],"mappings":"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"}