@gonvex/client 0.1.10 → 0.1.12

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
@@ -87,12 +87,63 @@ Use `GonvexErrorReporter` directly when integrating an existing application
87
87
  logger. See the Error Tracking guide in the full documentation for privacy,
88
88
  grouping, persistence, and dashboard details.
89
89
 
90
+ ## Connection reliability
91
+
92
+ The client reconnects automatically after an unexpected socket close (exponential
93
+ backoff from ~250ms to 5s). On reconnect it re-authenticates, then resubscribes
94
+ active live queries and pending one-shot queries. Explicit `close()` disables
95
+ reconnect.
96
+
97
+ ```ts
98
+ client.connectionState();
99
+ // {
100
+ // isWebSocketConnected, hasEverConnected, connectionCount, connectionRetries,
101
+ // hasInflightRequests, inflightMutations, inflightActions, inflightOneShotQueries
102
+ // }
103
+
104
+ const stop = client.subscribeToConnectionState((state) => {
105
+ // drive banners / health UI
106
+ });
107
+ ```
108
+
109
+ ### Timeouts (defaults)
110
+
111
+ | Operation | Default |
112
+ | --- | --- |
113
+ | One-shot `query()` | 20s |
114
+ | `mutation()` | 20s |
115
+ | `action()` | 60s |
116
+
117
+ Override per client (`timeouts` option) or per call (`{ timeoutMs }`). Use `0` to disable.
118
+
119
+ ### Typed errors
120
+
121
+ Rejected operations throw `GonvexClientError` with `code`:
122
+
123
+ - `server` — runtime executed the function and returned an error
124
+ - `timeout` — no response within the timeout
125
+ - `disconnected` — socket dropped while the operation was pending
126
+ - `closed` — client was explicitly closed
127
+ - `auth` — authentication rejected
128
+
129
+ ### Mutation / action fail-closed policy
130
+
131
+ Pending mutations and actions are **never** auto-replayed after disconnect.
132
+ They reject with `code: "disconnected"` (or `timeout` / `closed`). Silent
133
+ re-fire of non-idempotent writes is unsafe; offline queues belong in the app
134
+ (or mobile offline layer), not this client.
135
+
136
+ Live queries keep last-good data at the React layer (`useQueryResult`) and
137
+ resubscribe after reconnect. Call `client.retryQuery(ref, args)` to force a
138
+ re-request after a server error or soft timeout.
139
+
90
140
  ## Exports
91
141
 
92
142
  The package exports:
93
143
 
94
144
  - `GonvexClient`
95
145
  - `ConvexReactClient` compatibility alias
146
+ - `GonvexClientError`, `ConnectionState`, timeout defaults
96
147
  - transparent persistent query caching and lower-level experimental cache helpers
97
148
  - browser capability and telemetry helpers
98
149
  - `GonvexErrorReporter` and automatic operation error reporting
package/dist/index.d.ts CHANGED
@@ -14,10 +14,60 @@ export type { QueryCacheDirective } from "@gonvex/protocol";
14
14
  type SubscriptionHandler = (message: ServerMessage) => void;
15
15
  type WatchUpdateHandler = () => void;
16
16
  type TelemetryHandler = (event: GonvexTelemetryEvent) => void;
17
+ type ConnectionStateHandler = (state: ConnectionState) => void;
17
18
  export type FunctionReference = {
18
19
  kind: string;
19
20
  path: string;
20
21
  };
22
+ export type GonvexClientErrorCode = "server" | "timeout" | "disconnected" | "closed" | "auth";
23
+ /**
24
+ * Typed error for every rejected Gonvex operation. `code` distinguishes
25
+ * server-side failures from transport-level ones so apps can decide whether
26
+ * a retry is safe:
27
+ *
28
+ * - `server`: the runtime executed the function and returned an error.
29
+ * - `timeout`: no response arrived within the operation timeout. For
30
+ * mutations/actions the write may or may not have been applied.
31
+ * - `disconnected`: the socket dropped while the operation was pending.
32
+ * Mutations/actions fail closed and are never replayed automatically.
33
+ * - `closed`: the client was explicitly closed.
34
+ * - `auth`: authentication was rejected.
35
+ */
36
+ export declare class GonvexClientError extends Error {
37
+ readonly code: GonvexClientErrorCode;
38
+ readonly path?: string;
39
+ readonly operation?: "query" | "mutation" | "action";
40
+ constructor(message: string, options: {
41
+ code: GonvexClientErrorCode;
42
+ path?: string;
43
+ operation?: "query" | "mutation" | "action";
44
+ });
45
+ }
46
+ export type ConnectionState = {
47
+ isWebSocketConnected: boolean;
48
+ hasEverConnected: boolean;
49
+ connectionCount: number;
50
+ connectionRetries: number;
51
+ hasInflightRequests: boolean;
52
+ inflightMutations: number;
53
+ inflightActions: number;
54
+ inflightOneShotQueries: number;
55
+ };
56
+ export type GonvexTimeoutOptions = {
57
+ /** One-shot `client.query()` timeout. Default 20s. `0` disables. */
58
+ queryTimeoutMs?: number;
59
+ /** `client.mutation()` timeout. Default 20s. `0` disables. */
60
+ mutationTimeoutMs?: number;
61
+ /** `client.action()` timeout. Default 60s. `0` disables. */
62
+ actionTimeoutMs?: number;
63
+ };
64
+ export declare const DEFAULT_QUERY_TIMEOUT_MS = 20000;
65
+ export declare const DEFAULT_MUTATION_TIMEOUT_MS = 20000;
66
+ export declare const DEFAULT_ACTION_TIMEOUT_MS = 60000;
67
+ export type CallOptions = {
68
+ /** Per-call override of the operation timeout. `0` disables. */
69
+ timeoutMs?: number;
70
+ };
21
71
  export type GonvexClientAuth = {
22
72
  project?: string;
23
73
  token?: string;
@@ -27,12 +77,13 @@ export type GonvexClientAuth = {
27
77
  export type GonvexClientOptions = GonvexClientAuth & {
28
78
  queryCache?: false | QueryCacheOptions;
29
79
  errorReporting?: false | Omit<ErrorReporterOptions, "endpoint" | "project" | "tenant">;
80
+ timeouts?: GonvexTimeoutOptions;
30
81
  };
31
82
  export type GonvexTelemetryEvent = {
32
83
  type: "mutation" | "action" | "query";
33
84
  id: string;
34
85
  path: string;
35
- reason?: "initial" | "invalidate";
86
+ reason?: "initial" | "invalidate" | "recover";
36
87
  outcome: "ok" | "error";
37
88
  error?: string;
38
89
  clientSentAtMs?: number;
@@ -46,6 +97,7 @@ export declare class GonvexClient {
46
97
  private socket;
47
98
  private readonly handlers;
48
99
  private readonly querySubscriptions;
100
+ private readonly oneShotQueries;
49
101
  private readonly telemetryHandlers;
50
102
  private readonly pendingMessages;
51
103
  private auth;
@@ -56,10 +108,24 @@ export declare class GonvexClient {
56
108
  private queryCacheGeneration;
57
109
  private readonly sessionScopeHandlers;
58
110
  private readonly errorReporter;
111
+ private reconnectTimer;
112
+ private reconnectAttempt;
113
+ private socketGeneration;
114
+ private manuallyClosed;
115
+ private readonly pendingCalls;
116
+ private readonly connectionStateHandlers;
117
+ private isWebSocketConnected;
118
+ private hasEverConnected;
119
+ private connectionCount;
120
+ private readonly timeouts;
59
121
  constructor(url: string, options?: GonvexClientOptions);
122
+ connectionState(): ConnectionState;
123
+ subscribeToConnectionState(handler: ConnectionStateHandler): () => void;
124
+ private notifyConnectionState;
60
125
  setAuth(auth: GonvexClientAuth): void;
61
126
  connect(): void;
62
127
  close(): void;
128
+ private rejectPendingCalls;
63
129
  onTelemetry(handler: TelemetryHandler): () => boolean;
64
130
  onSessionScopeChange(handler: () => void): () => boolean;
65
131
  clearQueryCache(options?: {
@@ -67,15 +133,28 @@ export declare class GonvexClient {
67
133
  }): Promise<void>;
68
134
  getQueryCacheStatus(): QueryCacheStatus;
69
135
  subscribeQuery(ref: FunctionReference, args: JsonValue | undefined, onMessage: SubscriptionHandler): () => void;
136
+ private normalizeSubscriptionMessage;
137
+ private acceptRevision;
70
138
  watchQuery<T = JsonValue>(ref: FunctionReference, args?: JsonValue): {
71
139
  localQueryResult(): T | undefined;
72
140
  onUpdate(handler: WatchUpdateHandler): () => void;
73
141
  };
74
- mutation<T = JsonValue>(ref: FunctionReference, args?: JsonValue): Promise<T>;
75
- action<T = JsonValue>(ref: FunctionReference, args?: JsonValue): Promise<T>;
76
- query<T = JsonValue>(ref: FunctionReference, args?: JsonValue): Promise<T>;
142
+ mutation<T = JsonValue>(ref: FunctionReference, args?: JsonValue, options?: CallOptions): Promise<T>;
143
+ action<T = JsonValue>(ref: FunctionReference, args?: JsonValue, options?: CallOptions): Promise<T>;
144
+ query<T = JsonValue>(ref: FunctionReference, args?: JsonValue, options?: CallOptions): Promise<T>;
145
+ /**
146
+ * Force a live query subscription to re-request its result from the server,
147
+ * e.g. after a `query.error` or when a subscriber gave up waiting. No-op if
148
+ * nothing is subscribed to this query.
149
+ */
150
+ retryQuery(ref: FunctionReference, args?: JsonValue): void;
77
151
  private call;
78
152
  private unsubscribeQueryListener;
153
+ private sendSubscription;
154
+ private requestSubscriptionSnapshot;
155
+ private sendOneShotQuery;
156
+ private resubscribeQueries;
157
+ private scheduleReconnect;
79
158
  private installQueryCacheDirective;
80
159
  private resetQueryCacheScope;
81
160
  private startQueryCacheRead;
package/dist/index.js CHANGED
@@ -9,11 +9,40 @@ export * from "./browser-capabilities.js";
9
9
  export * from "./persistent-cache.js";
10
10
  export * from "./query-cache.js";
11
11
  export * from "./error-reporter.js";
12
+ /**
13
+ * Typed error for every rejected Gonvex operation. `code` distinguishes
14
+ * server-side failures from transport-level ones so apps can decide whether
15
+ * a retry is safe:
16
+ *
17
+ * - `server`: the runtime executed the function and returned an error.
18
+ * - `timeout`: no response arrived within the operation timeout. For
19
+ * mutations/actions the write may or may not have been applied.
20
+ * - `disconnected`: the socket dropped while the operation was pending.
21
+ * Mutations/actions fail closed and are never replayed automatically.
22
+ * - `closed`: the client was explicitly closed.
23
+ * - `auth`: authentication was rejected.
24
+ */
25
+ export class GonvexClientError extends Error {
26
+ code;
27
+ path;
28
+ operation;
29
+ constructor(message, options) {
30
+ super(message);
31
+ this.name = "GonvexClientError";
32
+ this.code = options.code;
33
+ this.path = options.path;
34
+ this.operation = options.operation;
35
+ }
36
+ }
37
+ export const DEFAULT_QUERY_TIMEOUT_MS = 20_000;
38
+ export const DEFAULT_MUTATION_TIMEOUT_MS = 20_000;
39
+ export const DEFAULT_ACTION_TIMEOUT_MS = 60_000;
12
40
  export class GonvexClient {
13
41
  url;
14
42
  socket;
15
43
  handlers = new Map();
16
44
  querySubscriptions = new Map();
45
+ oneShotQueries = new Map();
17
46
  telemetryHandlers = new Set();
18
47
  pendingMessages = [];
19
48
  auth = {};
@@ -24,15 +53,59 @@ export class GonvexClient {
24
53
  queryCacheGeneration = 0;
25
54
  sessionScopeHandlers = new Set();
26
55
  errorReporter;
56
+ reconnectTimer;
57
+ reconnectAttempt = 0;
58
+ socketGeneration = 0;
59
+ manuallyClosed = false;
60
+ pendingCalls = new Map();
61
+ connectionStateHandlers = new Set();
62
+ isWebSocketConnected = false;
63
+ hasEverConnected = false;
64
+ connectionCount = 0;
65
+ timeouts;
27
66
  constructor(url, options = {}) {
28
67
  this.url = url;
29
68
  this.auth = authFromOptions(options);
30
69
  this.telemetryEnabled = options.telemetry === true;
31
70
  this.queryCache = createQueryCacheStore(options.queryCache);
71
+ this.timeouts = {
72
+ queryTimeoutMs: options.timeouts?.queryTimeoutMs ?? DEFAULT_QUERY_TIMEOUT_MS,
73
+ mutationTimeoutMs: options.timeouts?.mutationTimeoutMs ?? DEFAULT_MUTATION_TIMEOUT_MS,
74
+ actionTimeoutMs: options.timeouts?.actionTimeoutMs ?? DEFAULT_ACTION_TIMEOUT_MS,
75
+ };
32
76
  if (options.errorReporting && options.project) {
33
77
  this.errorReporter = new GonvexErrorReporter({ endpoint: url, project: options.project, tenant: options.tenant, ...options.errorReporting });
34
78
  }
35
79
  }
80
+ connectionState() {
81
+ const inflightMutations = countPendingCalls(this.pendingCalls, "mutation");
82
+ const inflightActions = countPendingCalls(this.pendingCalls, "action");
83
+ const inflightOneShotQueries = this.oneShotQueries.size;
84
+ return {
85
+ isWebSocketConnected: this.isWebSocketConnected,
86
+ hasEverConnected: this.hasEverConnected,
87
+ connectionCount: this.connectionCount,
88
+ connectionRetries: this.reconnectAttempt,
89
+ hasInflightRequests: inflightMutations + inflightActions + inflightOneShotQueries > 0,
90
+ inflightMutations,
91
+ inflightActions,
92
+ inflightOneShotQueries,
93
+ };
94
+ }
95
+ subscribeToConnectionState(handler) {
96
+ this.connectionStateHandlers.add(handler);
97
+ return () => {
98
+ this.connectionStateHandlers.delete(handler);
99
+ };
100
+ }
101
+ notifyConnectionState() {
102
+ if (this.connectionStateHandlers.size === 0)
103
+ return;
104
+ const state = this.connectionState();
105
+ for (const handler of Array.from(this.connectionStateHandlers)) {
106
+ handler(state);
107
+ }
108
+ }
36
109
  setAuth(auth) {
37
110
  const scopeMayChange = (hasOwn(auth, "token") && auth.token !== this.auth.token)
38
111
  || (hasOwn(auth, "tenant") && auth.tenant !== this.auth.tenant)
@@ -55,9 +128,47 @@ export class GonvexClient {
55
128
  connect() {
56
129
  if (this.socket && this.socket.readyState <= WebSocket.OPEN)
57
130
  return;
58
- this.socket = new WebSocket(this.url);
59
- this.socket.addEventListener("open", () => this.sendAuth(false));
60
- this.socket.addEventListener("message", (event) => {
131
+ const isReconnect = this.socket !== undefined;
132
+ this.manuallyClosed = false;
133
+ const generation = ++this.socketGeneration;
134
+ const socket = new WebSocket(this.url);
135
+ this.socket = socket;
136
+ socket.addEventListener("open", () => {
137
+ if (this.socket !== socket)
138
+ return;
139
+ if (this.reconnectTimer) {
140
+ clearTimeout(this.reconnectTimer);
141
+ this.reconnectTimer = undefined;
142
+ }
143
+ this.reconnectAttempt = 0;
144
+ this.isWebSocketConnected = true;
145
+ this.hasEverConnected = true;
146
+ this.connectionCount += 1;
147
+ this.sendAuth(false);
148
+ if (isReconnect)
149
+ this.resubscribeQueries(generation);
150
+ this.notifyConnectionState();
151
+ });
152
+ socket.addEventListener("close", () => {
153
+ if (this.socket !== socket || this.manuallyClosed)
154
+ return;
155
+ this.isWebSocketConnected = false;
156
+ this.authInFlight = false;
157
+ // A subscription queued for the old socket is superseded by the complete
158
+ // resubscribe below. Queued mutations/actions are rejected below, so
159
+ // drop them too — flushing them after reconnect would fire writes whose
160
+ // callers already saw a rejection.
161
+ this.pendingMessages.length = 0;
162
+ // Mutations/actions must fail closed on transport loss: silently
163
+ // replaying a non-idempotent write after reconnect is unsafe, and
164
+ // leaving the promise pending hangs the caller forever.
165
+ this.rejectPendingCalls((call) => new GonvexClientError(`Connection lost while waiting for ${call.kind} ${call.path}. The operation may or may not have been applied.`, { code: "disconnected", path: call.path, operation: call.kind }));
166
+ this.scheduleReconnect();
167
+ this.notifyConnectionState();
168
+ });
169
+ socket.addEventListener("message", (event) => {
170
+ if (this.socket !== socket)
171
+ return;
61
172
  let message;
62
173
  try {
63
174
  message = JSON.parse(String(event.data));
@@ -90,6 +201,18 @@ export class GonvexClient {
90
201
  });
91
202
  }
92
203
  close() {
204
+ this.manuallyClosed = true;
205
+ if (this.reconnectTimer) {
206
+ clearTimeout(this.reconnectTimer);
207
+ this.reconnectTimer = undefined;
208
+ }
209
+ for (const query of this.oneShotQueries.values()) {
210
+ if (query.timeoutTimer)
211
+ clearTimeout(query.timeoutTimer);
212
+ query.reject(new GonvexClientError("Gonvex client was closed", { code: "closed", path: query.path, operation: "query" }));
213
+ }
214
+ this.oneShotQueries.clear();
215
+ this.rejectPendingCalls((call) => new GonvexClientError(`Gonvex client was closed while waiting for ${call.kind} ${call.path}`, { code: "closed", path: call.path, operation: call.kind }));
93
216
  this.handlers.clear();
94
217
  this.querySubscriptions.clear();
95
218
  this.sessionScopeHandlers.clear();
@@ -97,10 +220,26 @@ export class GonvexClient {
97
220
  this.queryCacheDirective = undefined;
98
221
  this.queryCache?.close();
99
222
  this.errorReporter?.close();
100
- if (!this.socket)
101
- return;
102
- this.socket.close();
223
+ const socket = this.socket;
103
224
  this.socket = undefined;
225
+ this.isWebSocketConnected = false;
226
+ this.notifyConnectionState();
227
+ this.connectionStateHandlers.clear();
228
+ if (!socket)
229
+ return;
230
+ socket.close();
231
+ }
232
+ rejectPendingCalls(makeError) {
233
+ if (this.pendingCalls.size === 0)
234
+ return;
235
+ const calls = Array.from(this.pendingCalls.values());
236
+ this.pendingCalls.clear();
237
+ for (const call of calls) {
238
+ if (call.timeoutTimer)
239
+ clearTimeout(call.timeoutTimer);
240
+ this.handlers.delete(call.id);
241
+ call.reject(makeError(call));
242
+ }
104
243
  }
105
244
  onTelemetry(handler) {
106
245
  this.telemetryHandlers.add(handler);
@@ -131,6 +270,7 @@ export class GonvexClient {
131
270
  const key = querySubscriptionKey(ref, args);
132
271
  const existing = this.querySubscriptions.get(key);
133
272
  if (existing) {
273
+ const wasOrphaned = existing.listeners.size === 0;
134
274
  if (existing.unsubscribeTimer) {
135
275
  clearTimeout(existing.unsubscribeTimer);
136
276
  existing.unsubscribeTimer = undefined;
@@ -144,7 +284,18 @@ export class GonvexClient {
144
284
  // until the next server-side invalidation. Replaying here (not via the shared
145
285
  // handler) keeps the cached value flowing without emitting extra telemetry/traffic.
146
286
  const cached = existing.lastMessage;
147
- if (cached) {
287
+ if (wasOrphaned && cached?.type === "query.error") {
288
+ // A React error boundary can unmount and remount a failed query while the
289
+ // unsubscribe grace timer is still active. Replaying that terminal error
290
+ // traps the boundary even if the runtime was updated in the meantime.
291
+ // Treat the remount as a fresh attempt while continuing to coalesce active
292
+ // subscribers normally.
293
+ existing.lastMessage = undefined;
294
+ existing.serverSettled = false;
295
+ existing.socketGeneration = undefined;
296
+ this.sendSubscription(existing);
297
+ }
298
+ else if (cached) {
148
299
  queueMicrotask(() => {
149
300
  if (existing.listeners.has(onMessage))
150
301
  onMessage(cached);
@@ -162,6 +313,10 @@ export class GonvexClient {
162
313
  };
163
314
  this.querySubscriptions.set(key, subscription);
164
315
  this.handlers.set(subscription.id, (message) => {
316
+ const normalized = this.normalizeSubscriptionMessage(subscription, message);
317
+ if (!normalized)
318
+ return;
319
+ message = normalized;
165
320
  if (message.type === "query.result") {
166
321
  if (message.cacheScope && message.cacheScope !== this.queryCacheDirective?.scope) {
167
322
  return;
@@ -200,10 +355,71 @@ export class GonvexClient {
200
355
  this.deleteCachedQuery(subscription);
201
356
  }
202
357
  });
203
- this.send({ type: "query.subscribe", id: subscription.id, path: ref.path, args });
358
+ this.sendSubscription(subscription);
204
359
  this.startQueryCacheRead(subscription);
205
360
  return () => this.unsubscribeQueryListener(key, onMessage);
206
361
  }
362
+ normalizeSubscriptionMessage(subscription, message) {
363
+ if (message.type === "query.progress") {
364
+ if (!this.acceptRevision(subscription, message.throughRevision))
365
+ return undefined;
366
+ subscription.lastRevision = message.throughRevision;
367
+ subscription.revisionSocketGeneration = this.socketGeneration;
368
+ // Progress advances freshness without waking React/query listeners.
369
+ return undefined;
370
+ }
371
+ if (message.type === "query.patch") {
372
+ if (!sameRevision(message.baseRevision, subscription.lastRevision)) {
373
+ // A missing base is never guessed through. Re-subscribing causes the
374
+ // runtime to replay an authoritative shared snapshot.
375
+ this.requestSubscriptionSnapshot(subscription);
376
+ return undefined;
377
+ }
378
+ if (!this.acceptRevision(subscription, message.subscriptionRevision))
379
+ return undefined;
380
+ const previous = subscription.lastMessage;
381
+ if (previous?.type !== "query.result" || !Array.isArray(previous.result)) {
382
+ this.requestSubscriptionSnapshot(subscription);
383
+ return undefined;
384
+ }
385
+ const result = applyKeyedPatch(previous.result, message);
386
+ if (!result) {
387
+ this.requestSubscriptionSnapshot(subscription);
388
+ return undefined;
389
+ }
390
+ subscription.lastRevision = message.subscriptionRevision;
391
+ subscription.revisionSocketGeneration = this.socketGeneration;
392
+ return {
393
+ type: "query.result",
394
+ id: message.id,
395
+ path: message.path,
396
+ result,
397
+ reason: message.reason,
398
+ trace: message.trace,
399
+ cacheScope: message.cacheScope,
400
+ cacheRevision: message.cacheRevision,
401
+ subscriptionRevision: message.subscriptionRevision,
402
+ };
403
+ }
404
+ if (message.type === "query.result" && message.subscriptionRevision) {
405
+ if (!this.acceptRevision(subscription, message.subscriptionRevision))
406
+ return undefined;
407
+ subscription.lastRevision = message.subscriptionRevision;
408
+ subscription.revisionSocketGeneration = this.socketGeneration;
409
+ }
410
+ return message;
411
+ }
412
+ acceptRevision(subscription, next) {
413
+ const previous = subscription.lastRevision;
414
+ if (!previous)
415
+ return true;
416
+ if (next.epoch === previous.epoch)
417
+ return next.sequence > previous.sequence;
418
+ // Epochs are opaque runtime-start IDs. A different epoch is accepted only
419
+ // after the socket generation changes; otherwise a delayed old-epoch frame
420
+ // could overwrite a result already accepted on the same connection.
421
+ return subscription.revisionSocketGeneration !== this.socketGeneration;
422
+ }
207
423
  watchQuery(ref, args = {}) {
208
424
  let latest;
209
425
  let latestError;
@@ -245,19 +461,36 @@ export class GonvexClient {
245
461
  },
246
462
  };
247
463
  }
248
- mutation(ref, args = {}) {
249
- return this.call("mutation", ref, args);
464
+ mutation(ref, args = {}, options = {}) {
465
+ return this.call("mutation", ref, args, options.timeoutMs ?? this.timeouts.mutationTimeoutMs);
250
466
  }
251
- action(ref, args = {}) {
252
- return this.call("action", ref, args);
467
+ action(ref, args = {}, options = {}) {
468
+ return this.call("action", ref, args, options.timeoutMs ?? this.timeouts.actionTimeoutMs);
253
469
  }
254
- query(ref, args = {}) {
470
+ query(ref, args = {}, options = {}) {
255
471
  this.connect();
256
472
  const id = randomID();
473
+ const timeoutMs = options.timeoutMs ?? this.timeouts.queryTimeoutMs;
257
474
  return new Promise((resolve, reject) => {
475
+ const query = { id, path: ref.path, args, reject };
476
+ const settle = () => {
477
+ if (query.timeoutTimer)
478
+ clearTimeout(query.timeoutTimer);
479
+ this.oneShotQueries.delete(id);
480
+ this.handlers.delete(id);
481
+ this.notifyConnectionState();
482
+ };
483
+ if (timeoutMs > 0) {
484
+ query.timeoutTimer = setTimeout(() => {
485
+ settle();
486
+ this.send({ type: "query.unsubscribe", id });
487
+ reject(new GonvexClientError(`Query ${ref.path} timed out after ${timeoutMs}ms`, { code: "timeout", path: ref.path, operation: "query" }));
488
+ }, timeoutMs);
489
+ }
490
+ this.oneShotQueries.set(id, query);
258
491
  this.handlers.set(id, (message) => {
259
492
  if (message.type === "query.result") {
260
- this.handlers.delete(id);
493
+ settle();
261
494
  this.recordTelemetry({
262
495
  type: "query",
263
496
  id: message.id,
@@ -271,7 +504,7 @@ export class GonvexClient {
271
504
  resolve(message.result);
272
505
  }
273
506
  if (message.type === "query.error") {
274
- this.handlers.delete(id);
507
+ settle();
275
508
  this.recordTelemetry({
276
509
  type: "query",
277
510
  id: message.id,
@@ -281,37 +514,67 @@ export class GonvexClient {
281
514
  clientReceivedAtMs: nowMs(),
282
515
  });
283
516
  this.send({ type: "query.unsubscribe", id });
284
- reject(new Error(message.error));
517
+ reject(new GonvexClientError(message.error, { code: "server", path: ref.path, operation: "query" }));
285
518
  }
286
519
  });
287
- this.send({ type: "query.subscribe", id, path: ref.path, args });
520
+ this.sendOneShotQuery(query);
521
+ this.notifyConnectionState();
288
522
  });
289
523
  }
290
- call(kind, ref, args) {
524
+ /**
525
+ * Force a live query subscription to re-request its result from the server,
526
+ * e.g. after a `query.error` or when a subscriber gave up waiting. No-op if
527
+ * nothing is subscribed to this query.
528
+ */
529
+ retryQuery(ref, args = {}) {
530
+ const subscription = this.querySubscriptions.get(querySubscriptionKey(ref, args));
531
+ if (!subscription || subscription.listeners.size === 0)
532
+ return;
533
+ subscription.serverSettled = false;
534
+ subscription.socketGeneration = undefined;
535
+ this.connect();
536
+ this.sendSubscription(subscription);
537
+ }
538
+ call(kind, ref, args, timeoutMs) {
291
539
  this.connect();
292
540
  const id = randomID();
293
541
  const clientSentAtMs = nowMs();
294
542
  return new Promise((resolve, reject) => {
543
+ const pending = { id, kind, path: ref.path, reject };
544
+ const settle = () => {
545
+ if (pending.timeoutTimer)
546
+ clearTimeout(pending.timeoutTimer);
547
+ this.pendingCalls.delete(id);
548
+ this.handlers.delete(id);
549
+ this.notifyConnectionState();
550
+ };
551
+ if (timeoutMs > 0) {
552
+ pending.timeoutTimer = setTimeout(() => {
553
+ settle();
554
+ reject(new GonvexClientError(`${kind === "mutation" ? "Mutation" : "Action"} ${ref.path} timed out after ${timeoutMs}ms. The operation may or may not have been applied.`, { code: "timeout", path: ref.path, operation: kind }));
555
+ }, timeoutMs);
556
+ }
557
+ this.pendingCalls.set(id, pending);
295
558
  this.handlers.set(id, (message) => {
296
559
  if (kind === "mutation" && message.type === "mutation.result") {
297
- this.handlers.delete(id);
560
+ settle();
298
561
  this.emitTelemetryFromCall(kind, id, ref.path, "ok", clientSentAtMs, message.trace);
299
562
  resolve(message.result);
300
563
  }
301
564
  if (kind === "mutation" && message.type === "mutation.error") {
302
- this.handlers.delete(id);
565
+ settle();
303
566
  this.emitTelemetryFromCall(kind, id, ref.path, "error", clientSentAtMs, message.trace, message.error);
304
- reject(new Error(message.error));
567
+ reject(new GonvexClientError(message.error, { code: "server", path: ref.path, operation: kind }));
305
568
  }
306
569
  if (kind === "action" && message.type === "action.result") {
307
- this.handlers.delete(id);
570
+ settle();
308
571
  this.emitTelemetryFromCall(kind, id, ref.path, "ok", clientSentAtMs, message.trace);
309
572
  resolve(message.result);
310
573
  }
311
574
  if (kind === "action" && message.type === "action.error") {
312
- this.handlers.delete(id);
575
+ settle();
313
576
  this.emitTelemetryFromCall(kind, id, ref.path, "error", clientSentAtMs, message.trace, message.error);
314
- reject(new Error(message.error));
577
+ reject(new GonvexClientError(message.error, { code: "server", path: ref.path, operation: kind }));
315
578
  }
316
579
  });
317
580
  if (kind === "mutation") {
@@ -320,6 +583,7 @@ export class GonvexClient {
320
583
  else {
321
584
  this.send({ type: "action.call", id, path: ref.path, args, trace: { clientSentAtMs } });
322
585
  }
586
+ this.notifyConnectionState();
323
587
  });
324
588
  }
325
589
  unsubscribeQueryListener(key, listener) {
@@ -342,6 +606,53 @@ export class GonvexClient {
342
606
  setTimeout(() => this.handlers.delete(latest.id), 500);
343
607
  }, 250);
344
608
  }
609
+ sendSubscription(subscription) {
610
+ if (subscription.socketGeneration === this.socketGeneration)
611
+ return;
612
+ subscription.socketGeneration = this.socketGeneration;
613
+ this.send({
614
+ type: "query.subscribe",
615
+ id: subscription.id,
616
+ path: subscription.path,
617
+ args: subscription.args,
618
+ });
619
+ }
620
+ requestSubscriptionSnapshot(subscription) {
621
+ subscription.socketGeneration = undefined;
622
+ this.sendSubscription(subscription);
623
+ }
624
+ sendOneShotQuery(query) {
625
+ if (query.socketGeneration === this.socketGeneration)
626
+ return;
627
+ query.socketGeneration = this.socketGeneration;
628
+ this.send({ type: "query.subscribe", id: query.id, path: query.path, args: query.args });
629
+ }
630
+ resubscribeQueries(generation) {
631
+ if (generation !== this.socketGeneration)
632
+ return;
633
+ for (const subscription of this.querySubscriptions.values()) {
634
+ if (subscription.listeners.size === 0)
635
+ continue;
636
+ subscription.serverSettled = false;
637
+ this.sendSubscription(subscription);
638
+ }
639
+ for (const query of this.oneShotQueries.values()) {
640
+ this.sendOneShotQuery(query);
641
+ }
642
+ }
643
+ scheduleReconnect() {
644
+ if (this.manuallyClosed || this.reconnectTimer)
645
+ return;
646
+ const delay = Math.min(250 * (2 ** this.reconnectAttempt), 5_000);
647
+ this.reconnectAttempt += 1;
648
+ this.reconnectTimer = setTimeout(() => {
649
+ this.reconnectTimer = undefined;
650
+ if (!this.manuallyClosed) {
651
+ this.connect();
652
+ this.notifyConnectionState();
653
+ }
654
+ }, delay);
655
+ }
345
656
  installQueryCacheDirective(value) {
346
657
  if (!validQueryCacheDirective(value)) {
347
658
  if (this.queryCacheDirective)
@@ -524,6 +835,14 @@ export class GonvexClient {
524
835
  function querySubscriptionKey(ref, args) {
525
836
  return `${ref.path}\u0000${stableStringify(args)}`;
526
837
  }
838
+ function countPendingCalls(calls, kind) {
839
+ let count = 0;
840
+ for (const call of calls.values()) {
841
+ if (call.kind === kind)
842
+ count += 1;
843
+ }
844
+ return count;
845
+ }
527
846
  function stableStringify(value) {
528
847
  if (value === null || typeof value !== "object")
529
848
  return JSON.stringify(value);
@@ -535,6 +854,39 @@ function stableStringify(value) {
535
854
  .map((key) => `${JSON.stringify(key)}:${stableStringify(record[key])}`)
536
855
  .join(",")}}`;
537
856
  }
857
+ function sameRevision(left, right) {
858
+ return !!right && left.epoch === right.epoch && left.sequence === right.sequence;
859
+ }
860
+ function applyKeyedPatch(previous, patch) {
861
+ const rows = new Map();
862
+ for (const row of previous) {
863
+ if (!isJsonRecord(row) || typeof row.id !== "string" || rows.has(row.id))
864
+ return undefined;
865
+ rows.set(row.id, row);
866
+ }
867
+ for (const id of patch.deleted ?? [])
868
+ rows.delete(id);
869
+ for (const row of [...(patch.inserted ?? []), ...(patch.updated ?? [])]) {
870
+ if (!isJsonRecord(row) || typeof row.id !== "string")
871
+ return undefined;
872
+ rows.set(row.id, row);
873
+ }
874
+ if (patch.order) {
875
+ if (patch.order.length !== rows.size)
876
+ return undefined;
877
+ const ordered = [];
878
+ const seen = new Set();
879
+ for (const id of patch.order) {
880
+ const row = rows.get(id);
881
+ if (!row || seen.has(id))
882
+ return undefined;
883
+ seen.add(id);
884
+ ordered.push(row);
885
+ }
886
+ return ordered;
887
+ }
888
+ return Array.from(rows.values());
889
+ }
538
890
  export class ConvexReactClient extends GonvexClient {
539
891
  constructor(url, options = {}) {
540
892
  super(toWebSocketURL(url, options.project), options);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gonvex/client",
3
- "version": "0.1.10",
3
+ "version": "0.1.12",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -14,7 +14,7 @@
14
14
  "types": "./dist/index.d.ts",
15
15
  "dependencies": {
16
16
  "dexie": "^4.4.4",
17
- "@gonvex/protocol": "0.1.10"
17
+ "@gonvex/protocol": "0.1.12"
18
18
  },
19
19
  "devDependencies": {
20
20
  "fake-indexeddb": "^6.2.4",