@pantheon-systems/css-client 0.12.0 → 0.13.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 +1 -1
- package/dist/auth.js +0 -25
- package/dist/auth.js.map +1 -1
- package/dist/broker.d.ts +30 -2
- package/dist/broker.d.ts.map +1 -1
- package/dist/broker.js +92 -33
- package/dist/broker.js.map +1 -1
- package/dist/client.d.ts +12 -4
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +5 -97
- package/dist/client.js.map +1 -1
- package/dist/content.js +0 -8
- package/dist/content.js.map +1 -1
- package/dist/endpoints/agent-edit.js +0 -66
- package/dist/endpoints/agent-edit.js.map +1 -1
- package/dist/endpoints/agent-registry.js +0 -46
- package/dist/endpoints/agent-registry.js.map +1 -1
- package/dist/endpoints/base.js +1 -56
- package/dist/endpoints/base.js.map +1 -1
- package/dist/endpoints/branches.js +0 -20
- package/dist/endpoints/branches.js.map +1 -1
- package/dist/endpoints/checkpoints.js +0 -23
- package/dist/endpoints/checkpoints.js.map +1 -1
- package/dist/endpoints/documents.js +0 -32
- package/dist/endpoints/documents.js.map +1 -1
- package/dist/endpoints/index.d.ts +2 -0
- package/dist/endpoints/index.d.ts.map +1 -1
- package/dist/endpoints/index.js +2 -7
- package/dist/endpoints/index.js.map +1 -1
- package/dist/endpoints/merge.d.ts +17 -1
- package/dist/endpoints/merge.d.ts.map +1 -1
- package/dist/endpoints/merge.js +26 -32
- package/dist/endpoints/merge.js.map +1 -1
- package/dist/endpoints/migration-conflicts.js +0 -11
- package/dist/endpoints/migration-conflicts.js.map +1 -1
- package/dist/endpoints/presence.js +0 -44
- package/dist/endpoints/presence.js.map +1 -1
- package/dist/endpoints/relations.d.ts +20 -0
- package/dist/endpoints/relations.d.ts.map +1 -0
- package/dist/endpoints/relations.js +10 -0
- package/dist/endpoints/relations.js.map +1 -0
- package/dist/endpoints/sites.js +0 -11
- package/dist/endpoints/sites.js.map +1 -1
- package/dist/endpoints/templates.js +0 -41
- package/dist/endpoints/templates.js.map +1 -1
- package/dist/endpoints/translations.d.ts +44 -0
- package/dist/endpoints/translations.d.ts.map +1 -0
- package/dist/endpoints/translations.js +39 -0
- package/dist/endpoints/translations.js.map +1 -0
- package/dist/endpoints/versions.js +0 -25
- package/dist/endpoints/versions.js.map +1 -1
- package/dist/errors.js +0 -65
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -13
- package/dist/index.js.map +1 -1
- package/dist/jwt-utils.js +0 -6
- package/dist/jwt-utils.js.map +1 -1
- package/dist/oauth.d.ts +2 -1
- package/dist/oauth.d.ts.map +1 -1
- package/dist/oauth.js +0 -27
- package/dist/oauth.js.map +1 -1
- package/dist/realtime.d.ts +21 -11
- package/dist/realtime.d.ts.map +1 -1
- package/dist/realtime.js +57 -232
- package/dist/realtime.js.map +1 -1
- package/dist/sdk-version.d.ts +1 -1
- package/dist/sdk-version.js +1 -9
- package/dist/sdk-version.js.map +1 -1
- package/dist/telemetry-headers.js +0 -28
- package/dist/telemetry-headers.js.map +1 -1
- package/dist/types.d.ts +167 -6
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +7 -6
- package/dist/types.js.map +1 -1
- package/dist/utils.js +0 -11
- package/dist/utils.js.map +1 -1
- package/package.json +3 -3
package/dist/realtime.js
CHANGED
|
@@ -1,45 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Phase 2.1: RealtimeClient
|
|
3
|
-
*
|
|
4
|
-
* WebSocket-based real-time collaboration client using Yjs CRDT.
|
|
5
|
-
* Provides bidirectional sync between client and DocumentSession Durable Object.
|
|
6
|
-
* Uses ReconnectingWebSocket from partysocket for automatic reconnection with exponential backoff.
|
|
7
|
-
*/
|
|
8
1
|
import * as Y from 'yjs';
|
|
9
2
|
import { WebSocket as ReconnectingWebSocket } from 'partysocket';
|
|
10
|
-
/**
|
|
11
|
-
* Real-time collaboration client using Yjs CRDT over WebSocket.
|
|
12
|
-
* Uses PartySocket for automatic reconnection with exponential backoff.
|
|
13
|
-
*
|
|
14
|
-
* @example
|
|
15
|
-
* ```typescript
|
|
16
|
-
* const client = new RealtimeClient({
|
|
17
|
-
* baseUrl: 'wss://api.example.com',
|
|
18
|
-
* onUpdate: (snapshot) => {
|
|
19
|
-
* console.log('Document updated:', snapshot);
|
|
20
|
-
* },
|
|
21
|
-
* onReconnecting: (attempt) => {
|
|
22
|
-
* console.log(`Reconnecting... attempt ${attempt}`);
|
|
23
|
-
* },
|
|
24
|
-
* reconnection: {
|
|
25
|
-
* maxRetries: 10,
|
|
26
|
-
* minReconnectionDelay: 1000,
|
|
27
|
-
* maxReconnectionDelay: 30000,
|
|
28
|
-
* },
|
|
29
|
-
* });
|
|
30
|
-
*
|
|
31
|
-
* client.connect({
|
|
32
|
-
* siteId: 'site-123',
|
|
33
|
-
* branchId: 'branch-456',
|
|
34
|
-
* documentPath: 'pages/home',
|
|
35
|
-
* actorId: 'user-789',
|
|
36
|
-
* actorType: 'user',
|
|
37
|
-
* });
|
|
38
|
-
*
|
|
39
|
-
* // When done
|
|
40
|
-
* client.disconnect();
|
|
41
|
-
* ```
|
|
42
|
-
*/
|
|
43
3
|
export class RealtimeClient {
|
|
44
4
|
config;
|
|
45
5
|
ydoc;
|
|
@@ -52,60 +12,42 @@ export class RealtimeClient {
|
|
|
52
12
|
lastReportedRetryCount = 0;
|
|
53
13
|
reconnectCheckInterval = null;
|
|
54
14
|
visibilityHandler = null;
|
|
55
|
-
|
|
15
|
+
hasConnectedToServer = false;
|
|
16
|
+
syncBaselineTimer = null;
|
|
17
|
+
serverGateClosed = false;
|
|
18
|
+
static YJS_EMPTY_UPDATE_LENGTH = 2;
|
|
56
19
|
sendTimestamps = [];
|
|
57
20
|
pendingUpdates = [];
|
|
58
21
|
flushTimer = null;
|
|
59
|
-
static RATE_THRESHOLD = 40;
|
|
60
|
-
static RATE_WINDOW_MS = 1000;
|
|
61
|
-
// Echo suppression: track the last JSON snapshot sent to the DO.
|
|
62
|
-
// If a Y.Doc update produces the same JSON snapshot as we last sent,
|
|
63
|
-
// it's a no-op echo (typically from Puck's onChange after receiving
|
|
64
|
-
// a remote sync) and should NOT be sent to avoid overwriting newer data.
|
|
22
|
+
static RATE_THRESHOLD = 40;
|
|
23
|
+
static RATE_WINDOW_MS = 1000;
|
|
65
24
|
lastSentSnapshot = null;
|
|
66
|
-
// Delivery acknowledgment state
|
|
67
25
|
pendingDeliveryAcks = new Map();
|
|
68
26
|
static DELIVERY_ACK_TIMEOUT_MS = 5000;
|
|
69
|
-
// Publish request state
|
|
70
27
|
pendingPublishRequests = new Map();
|
|
71
28
|
static PUBLISH_TIMEOUT_MS = 30000;
|
|
72
|
-
// Action metadata state — best-effort metadata sent alongside CRDT updates
|
|
73
29
|
pendingActionMetadata = null;
|
|
74
30
|
constructor(config) {
|
|
75
31
|
this.config = config;
|
|
76
32
|
this.ydoc = new Y.Doc();
|
|
77
|
-
// Listen for local changes to broadcast
|
|
78
33
|
this.ydoc.on('update', (update, origin) => {
|
|
79
|
-
// Only broadcast if this update didn't come from remote
|
|
80
34
|
if (origin !== 'remote' && this.ws && this.ws.readyState === WebSocket.OPEN) {
|
|
81
35
|
const root = this.ydoc.getMap('root');
|
|
82
36
|
const currentSnapshot = JSON.stringify(root.toJSON());
|
|
83
|
-
// Echo suppression: if the Y.Doc's JSON snapshot hasn't changed since
|
|
84
|
-
// the last time we sent (or since the last remote update), this is a
|
|
85
|
-
// no-op full-rebuild echo. Don't send it — it would overwrite newer
|
|
86
|
-
// data on the DO if another client has edited since.
|
|
87
37
|
if (currentSnapshot === this.lastSentSnapshot) {
|
|
88
38
|
this.sendPendingActionMetadata();
|
|
89
39
|
return;
|
|
90
40
|
}
|
|
91
41
|
this.lastSentSnapshot = currentSnapshot;
|
|
92
42
|
this.rateLimitedSend(update);
|
|
93
|
-
// Send any pending action metadata after the CRDT update
|
|
94
43
|
this.sendPendingActionMetadata();
|
|
95
44
|
}
|
|
96
45
|
else if (origin === 'remote') {
|
|
97
|
-
// Track the remote snapshot so we can detect echoes
|
|
98
46
|
const root = this.ydoc.getMap('root');
|
|
99
47
|
this.lastSentSnapshot = JSON.stringify(root.toJSON());
|
|
100
48
|
}
|
|
101
49
|
});
|
|
102
50
|
}
|
|
103
|
-
/**
|
|
104
|
-
* Connect to a document session via WebSocket.
|
|
105
|
-
* Uses PartySocket for automatic reconnection on connection loss.
|
|
106
|
-
*
|
|
107
|
-
* @param params - Connection parameters including site, branch, document, and actor info
|
|
108
|
-
*/
|
|
109
51
|
connect(params) {
|
|
110
52
|
if (this.ws) {
|
|
111
53
|
this.disconnect();
|
|
@@ -113,51 +55,33 @@ export class RealtimeClient {
|
|
|
113
55
|
this.currentApiKey = this.config.apiKey;
|
|
114
56
|
this.intentionalDisconnect = false;
|
|
115
57
|
this.hasConnectedOnce = false;
|
|
58
|
+
this.hasConnectedToServer = false;
|
|
116
59
|
this.lastReportedRetryCount = 0;
|
|
117
|
-
// Build WebSocket URL
|
|
118
60
|
const baseUrl = this.config.baseUrl.replace(/^http/, 'ws');
|
|
119
61
|
const encodedPath = encodeURIComponent(params.documentPath);
|
|
120
62
|
const url = new URL(`/api/sites/${params.siteId}/branches/${params.branchId}/documents/${encodedPath}/connect`, baseUrl);
|
|
121
|
-
// Add actor info as query params (WebSocket can't send headers)
|
|
122
63
|
url.searchParams.set('actorId', params.actorId);
|
|
123
64
|
url.searchParams.set('actorType', params.actorType);
|
|
124
|
-
// Note: apiKey is NOT added to the base URL here — it is injected inside
|
|
125
|
-
// urlProvider so that a refreshed token is picked up on each reconnect.
|
|
126
|
-
// Add session ID for agent authorization (obtained from startEdit())
|
|
127
65
|
if (params.sessionId) {
|
|
128
66
|
url.searchParams.set('sessionId', params.sessionId);
|
|
129
67
|
}
|
|
130
|
-
// Get reconnection config with defaults
|
|
131
68
|
const reconnection = this.config.reconnection ?? {};
|
|
132
69
|
const maxRetries = reconnection.maxRetries ?? Infinity;
|
|
133
70
|
const minReconnectionDelay = reconnection.minReconnectionDelay ?? 1000;
|
|
134
71
|
const maxReconnectionDelay = reconnection.maxReconnectionDelay ?? 30000;
|
|
135
72
|
const reconnectionDelayGrowFactor = reconnection.reconnectionDelayGrowFactor ?? 1.5;
|
|
136
|
-
// Build the base WebSocket URL (without state vector)
|
|
137
73
|
const baseWsUrl = url.toString();
|
|
138
|
-
// Create a URL provider function for PartySocket.
|
|
139
|
-
// On the initial connect the state vector is omitted so the server sends
|
|
140
|
-
// the full CRDT history. On every subsequent (re)connect the current Yjs
|
|
141
|
-
// state vector is included so the server can respond with only the delta.
|
|
142
|
-
// Also injects the current API key on every call so that a refreshed token
|
|
143
|
-
// (set by tokenRefresher after an unexpected close) is used for each
|
|
144
|
-
// reconnect attempt.
|
|
145
74
|
const urlProvider = () => {
|
|
146
75
|
const connectUrl = new URL(baseWsUrl);
|
|
147
|
-
// Inject current token — may have been refreshed after an unexpected disconnect
|
|
148
76
|
if (this.currentApiKey) {
|
|
149
77
|
connectUrl.searchParams.set('apiKey', this.currentApiKey);
|
|
150
78
|
}
|
|
151
|
-
|
|
152
|
-
// connection so the server can send a delta rather than full history.
|
|
153
|
-
if (this.hasConnectedOnce) {
|
|
79
|
+
if (this.hasConnectedToServer) {
|
|
154
80
|
const sv = Y.encodeStateVector(this.ydoc);
|
|
155
|
-
|
|
156
|
-
connectUrl.searchParams.set('stateVector', svBase64);
|
|
81
|
+
connectUrl.searchParams.set('stateVector', btoa(String.fromCharCode(...sv)));
|
|
157
82
|
}
|
|
158
83
|
return connectUrl.toString();
|
|
159
84
|
};
|
|
160
|
-
// Create ReconnectingWebSocket with URL provider and reconnection options
|
|
161
85
|
this.ws = new ReconnectingWebSocket(urlProvider, [], {
|
|
162
86
|
maxRetries,
|
|
163
87
|
minReconnectionDelay,
|
|
@@ -165,40 +89,40 @@ export class RealtimeClient {
|
|
|
165
89
|
reconnectionDelayGrowFactor,
|
|
166
90
|
});
|
|
167
91
|
this.ws.binaryType = 'arraybuffer';
|
|
168
|
-
// Start monitoring for reconnection attempts
|
|
169
92
|
this.startReconnectMonitoring();
|
|
170
|
-
// Start visibility change monitoring to handle tab backgrounding
|
|
171
93
|
this.startVisibilityMonitoring();
|
|
172
94
|
this.ws.addEventListener('open', () => {
|
|
173
95
|
this.connected = true;
|
|
174
|
-
// Send local state when doc has content (seeded or from prior session).
|
|
175
|
-
// On initial connect with seeded data, this ensures bidirectional sync.
|
|
176
|
-
// On reconnect, this sends any edits made while disconnected.
|
|
177
|
-
if (this.ws) {
|
|
178
|
-
const root = this.ydoc.getMap('root');
|
|
179
|
-
if (root.size > 0) {
|
|
180
|
-
const localState = Y.encodeStateAsUpdate(this.ydoc);
|
|
181
|
-
this.ws.send(localState);
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
96
|
this.hasConnectedOnce = true;
|
|
97
|
+
this.hasConnectedToServer = true;
|
|
185
98
|
this.lastReportedRetryCount = 0;
|
|
99
|
+
this.serverGateClosed = false;
|
|
186
100
|
this.config.onConnect?.();
|
|
101
|
+
if (this.syncBaselineTimer !== null) {
|
|
102
|
+
clearTimeout(this.syncBaselineTimer);
|
|
103
|
+
this.syncBaselineTimer = null;
|
|
104
|
+
}
|
|
105
|
+
this.syncBaselineTimer = setTimeout(() => {
|
|
106
|
+
this.syncBaselineTimer = null;
|
|
107
|
+
if (!this.ws || this.ws.readyState !== WebSocket.OPEN)
|
|
108
|
+
return;
|
|
109
|
+
const delta = Y.encodeStateAsUpdate(this.ydoc);
|
|
110
|
+
if (delta.length > RealtimeClient.YJS_EMPTY_UPDATE_LENGTH) {
|
|
111
|
+
this.ws.send(delta);
|
|
112
|
+
}
|
|
113
|
+
}, 5000);
|
|
187
114
|
});
|
|
188
115
|
this.ws.addEventListener('message', (event) => {
|
|
189
116
|
try {
|
|
190
|
-
// Distinguish text (presence JSON) from binary (Yjs CRDT) messages
|
|
191
117
|
if (typeof event.data === 'string') {
|
|
192
|
-
// Text frame: JSON presence message
|
|
193
118
|
this.handleTextMessage(event.data);
|
|
194
119
|
return;
|
|
195
120
|
}
|
|
196
|
-
// Binary frame: Yjs CRDT update
|
|
197
121
|
const data = event.data;
|
|
198
122
|
const update = new Uint8Array(data);
|
|
199
|
-
|
|
123
|
+
if (this.serverGateClosed)
|
|
124
|
+
return;
|
|
200
125
|
Y.applyUpdate(this.ydoc, update, 'remote');
|
|
201
|
-
// Notify listeners of new snapshot
|
|
202
126
|
const root = this.ydoc.getMap('root');
|
|
203
127
|
const snapshot = root.toJSON();
|
|
204
128
|
this.config.onUpdate?.(snapshot);
|
|
@@ -211,42 +135,40 @@ export class RealtimeClient {
|
|
|
211
135
|
this.ws.addEventListener('close', (event) => {
|
|
212
136
|
this.connected = false;
|
|
213
137
|
const closeEvent = event;
|
|
214
|
-
// Server-initiated reload (e.g. after migration) — clear the local
|
|
215
|
-
// Y.Doc so the reconnect receives fresh state from the server instead
|
|
216
|
-
// of sending stale data back and overwriting the migration.
|
|
217
138
|
if (closeEvent.code === 4001) {
|
|
218
139
|
const root = this.ydoc.getMap('root');
|
|
219
140
|
this.ydoc.transact(() => {
|
|
220
141
|
root.clear();
|
|
221
142
|
});
|
|
222
143
|
this.lastSentSnapshot = null;
|
|
144
|
+
this.hasConnectedToServer = false;
|
|
223
145
|
this.config.onServerReload?.();
|
|
224
|
-
// PartySocket will reconnect automatically; the open handler
|
|
225
|
-
// skips sending state when root.size === 0
|
|
226
146
|
}
|
|
227
|
-
|
|
147
|
+
if (closeEvent.code === 4002) {
|
|
148
|
+
this.intentionalDisconnect = true;
|
|
149
|
+
this.stopReconnectMonitoring();
|
|
150
|
+
const ws = this.ws;
|
|
151
|
+
this.ws = null;
|
|
152
|
+
ws?.close();
|
|
153
|
+
this.config.onDisconnect?.();
|
|
154
|
+
this.config.onBaselineReset?.();
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
228
157
|
if (closeEvent.code === 4401 || closeEvent.code === 4403) {
|
|
229
|
-
// Authorization failure - do not attempt to reconnect
|
|
230
158
|
this.intentionalDisconnect = true;
|
|
231
159
|
this.stopReconnectMonitoring();
|
|
232
160
|
this.ws?.close();
|
|
233
161
|
this.ws = null;
|
|
234
|
-
// Call authorization error callback
|
|
235
162
|
const reason = closeEvent.reason || 'Authorization failed';
|
|
236
163
|
this.config.onAuthorizationError?.(new Error(reason));
|
|
237
164
|
this.config.onDisconnect?.();
|
|
238
165
|
return;
|
|
239
166
|
}
|
|
240
|
-
// Only call onDisconnect for intentional disconnects or when max retries exceeded
|
|
241
167
|
if (this.intentionalDisconnect) {
|
|
242
168
|
this.stopReconnectMonitoring();
|
|
243
169
|
this.ws = null;
|
|
244
170
|
this.config.onDisconnect?.();
|
|
245
171
|
}
|
|
246
|
-
// PartySocket will automatically attempt to reconnect otherwise
|
|
247
|
-
// Fire-and-forget token refresh on unexpected close so the next
|
|
248
|
-
// urlProvider call uses a fresh token for the reconnect URL.
|
|
249
|
-
// Guard prevents concurrent refreshes when the socket flaps rapidly.
|
|
250
172
|
if (!this.intentionalDisconnect && this.config.tokenRefresher && !this.tokenRefreshInFlight) {
|
|
251
173
|
this.tokenRefreshInFlight = true;
|
|
252
174
|
this.config.tokenRefresher().then((freshToken) => {
|
|
@@ -254,7 +176,6 @@ export class RealtimeClient {
|
|
|
254
176
|
this.currentApiKey = freshToken;
|
|
255
177
|
}
|
|
256
178
|
}).catch(() => {
|
|
257
|
-
// Ignore errors — the reconnect will proceed with the stale token
|
|
258
179
|
}).finally(() => {
|
|
259
180
|
this.tokenRefreshInFlight = false;
|
|
260
181
|
});
|
|
@@ -264,19 +185,13 @@ export class RealtimeClient {
|
|
|
264
185
|
this.config.onError?.(new Error('WebSocket error'));
|
|
265
186
|
});
|
|
266
187
|
}
|
|
267
|
-
/**
|
|
268
|
-
* Start monitoring for reconnection attempts by polling retryCount.
|
|
269
|
-
* This is needed because PartySocket doesn't expose a reconnection callback.
|
|
270
|
-
*/
|
|
271
188
|
startReconnectMonitoring() {
|
|
272
189
|
this.stopReconnectMonitoring();
|
|
273
|
-
// Poll every 100ms to detect retry count changes
|
|
274
190
|
this.reconnectCheckInterval = setInterval(() => {
|
|
275
191
|
if (!this.ws || this.intentionalDisconnect) {
|
|
276
192
|
return;
|
|
277
193
|
}
|
|
278
194
|
const currentRetryCount = this.ws.retryCount;
|
|
279
|
-
// If retry count increased and we've connected before, we're reconnecting
|
|
280
195
|
if (currentRetryCount > this.lastReportedRetryCount &&
|
|
281
196
|
this.hasConnectedOnce) {
|
|
282
197
|
this.lastReportedRetryCount = currentRetryCount;
|
|
@@ -284,69 +199,49 @@ export class RealtimeClient {
|
|
|
284
199
|
}
|
|
285
200
|
}, 100);
|
|
286
201
|
}
|
|
287
|
-
/**
|
|
288
|
-
* Stop the reconnection monitoring interval.
|
|
289
|
-
*/
|
|
290
202
|
stopReconnectMonitoring() {
|
|
291
203
|
if (this.reconnectCheckInterval) {
|
|
292
204
|
clearInterval(this.reconnectCheckInterval);
|
|
293
205
|
this.reconnectCheckInterval = null;
|
|
294
206
|
}
|
|
295
207
|
}
|
|
296
|
-
/**
|
|
297
|
-
* Start monitoring for page visibility changes.
|
|
298
|
-
* When the page becomes visible after being hidden, check connection health
|
|
299
|
-
* and force a reconnection sync if needed.
|
|
300
|
-
*/
|
|
301
208
|
startVisibilityMonitoring() {
|
|
302
209
|
this.stopVisibilityMonitoring();
|
|
303
|
-
// Only set up if document is available (browser environment)
|
|
304
210
|
if (typeof document === 'undefined') {
|
|
305
211
|
return;
|
|
306
212
|
}
|
|
307
213
|
this.visibilityHandler = () => {
|
|
308
214
|
if (document.visibilityState === 'visible' && !this.intentionalDisconnect && this.ws) {
|
|
309
|
-
// Force a reconnection by calling reconnect() on PartySocket.
|
|
310
|
-
// This ensures we get a fresh connection even if the old one appears open
|
|
311
|
-
// but is actually stale (server closed it while tab was backgrounded).
|
|
312
|
-
// PartySocket's reconnect() will close the current connection and open a new one.
|
|
313
|
-
// The 'open' event handler will then send local state for bidirectional sync.
|
|
314
215
|
this.ws.reconnect();
|
|
315
216
|
}
|
|
316
217
|
};
|
|
317
218
|
document.addEventListener('visibilitychange', this.visibilityHandler);
|
|
318
219
|
}
|
|
319
|
-
/**
|
|
320
|
-
* Stop visibility change monitoring.
|
|
321
|
-
*/
|
|
322
220
|
stopVisibilityMonitoring() {
|
|
323
221
|
if (this.visibilityHandler && typeof document !== 'undefined') {
|
|
324
222
|
document.removeEventListener('visibilitychange', this.visibilityHandler);
|
|
325
223
|
this.visibilityHandler = null;
|
|
326
224
|
}
|
|
327
225
|
}
|
|
328
|
-
/**
|
|
329
|
-
* Disconnect from the current session.
|
|
330
|
-
* This permanently closes the connection and stops any reconnection attempts.
|
|
331
|
-
*/
|
|
332
226
|
disconnect() {
|
|
333
227
|
this.intentionalDisconnect = true;
|
|
334
228
|
this.stopReconnectMonitoring();
|
|
335
229
|
this.stopVisibilityMonitoring();
|
|
336
|
-
|
|
230
|
+
if (this.syncBaselineTimer !== null) {
|
|
231
|
+
clearTimeout(this.syncBaselineTimer);
|
|
232
|
+
this.syncBaselineTimer = null;
|
|
233
|
+
}
|
|
337
234
|
if (this.flushTimer !== null) {
|
|
338
235
|
clearTimeout(this.flushTimer);
|
|
339
236
|
this.flushTimer = null;
|
|
340
237
|
}
|
|
341
238
|
this.pendingUpdates = [];
|
|
342
239
|
this.sendTimestamps = [];
|
|
343
|
-
// Reject all pending delivery ack promises
|
|
344
240
|
for (const [requestId, pending] of this.pendingDeliveryAcks) {
|
|
345
241
|
clearTimeout(pending.timer);
|
|
346
242
|
pending.reject(new Error('Disconnected'));
|
|
347
243
|
this.pendingDeliveryAcks.delete(requestId);
|
|
348
244
|
}
|
|
349
|
-
// Reject all pending publish request promises
|
|
350
245
|
for (const [requestId, pending] of this.pendingPublishRequests) {
|
|
351
246
|
clearTimeout(pending.timer);
|
|
352
247
|
pending.reject(new Error('Disconnected'));
|
|
@@ -358,33 +253,14 @@ export class RealtimeClient {
|
|
|
358
253
|
this.connected = false;
|
|
359
254
|
}
|
|
360
255
|
}
|
|
361
|
-
/**
|
|
362
|
-
* Apply a local Yjs update.
|
|
363
|
-
* This is typically called from Puck-Yjs binding when local edits occur.
|
|
364
|
-
* Uses rate-aware sending to avoid exceeding the server's rate limit.
|
|
365
|
-
*
|
|
366
|
-
* @param update - Raw Yjs update bytes
|
|
367
|
-
*/
|
|
368
256
|
applyLocalUpdate(update) {
|
|
369
257
|
if (this.ws && this.ws.readyState === WebSocket.OPEN) {
|
|
370
258
|
this.rateLimitedSend(update);
|
|
371
259
|
}
|
|
372
260
|
}
|
|
373
|
-
/**
|
|
374
|
-
* Set pending action metadata to be sent after the next CRDT update.
|
|
375
|
-
* The metadata is best-effort — if the WebSocket is not open or the
|
|
376
|
-
* send fails, the CRDT update still goes through without metadata.
|
|
377
|
-
*
|
|
378
|
-
* @param meta - Action type and metadata from Puck's onAction callback
|
|
379
|
-
*/
|
|
380
261
|
setActionMetadata(actions) {
|
|
381
262
|
this.pendingActionMetadata = actions;
|
|
382
263
|
}
|
|
383
|
-
/**
|
|
384
|
-
* Send any pending action metadata as a text message and clear it.
|
|
385
|
-
* Called after a CRDT update is sent to associate the metadata with
|
|
386
|
-
* the most recent edit.
|
|
387
|
-
*/
|
|
388
264
|
sendPendingActionMetadata() {
|
|
389
265
|
if (this.pendingActionMetadata && this.pendingActionMetadata.length > 0 && this.ws && this.ws.readyState === WebSocket.OPEN) {
|
|
390
266
|
try {
|
|
@@ -400,31 +276,20 @@ export class RealtimeClient {
|
|
|
400
276
|
this.pendingActionMetadata = null;
|
|
401
277
|
}
|
|
402
278
|
}
|
|
403
|
-
/**
|
|
404
|
-
* Send a Yjs update with rate awareness.
|
|
405
|
-
* Sends immediately when under the threshold (40 msgs/sec).
|
|
406
|
-
* Buffers and coalesces updates when approaching the server's 50 msg/sec limit.
|
|
407
|
-
*/
|
|
408
279
|
rateLimitedSend(update) {
|
|
409
280
|
if (!this.ws)
|
|
410
281
|
return;
|
|
411
282
|
const now = Date.now();
|
|
412
|
-
// Prune timestamps outside the sliding window
|
|
413
283
|
this.sendTimestamps = this.sendTimestamps.filter((ts) => now - ts < RealtimeClient.RATE_WINDOW_MS);
|
|
414
284
|
if (this.sendTimestamps.length < RealtimeClient.RATE_THRESHOLD) {
|
|
415
|
-
// Under threshold — send immediately
|
|
416
285
|
this.sendTimestamps.push(now);
|
|
417
286
|
this.ws.send(update);
|
|
418
287
|
}
|
|
419
288
|
else {
|
|
420
|
-
// At or above threshold — buffer for coalesced flush
|
|
421
289
|
this.pendingUpdates.push(update);
|
|
422
290
|
this.scheduleFlush();
|
|
423
291
|
}
|
|
424
292
|
}
|
|
425
|
-
/**
|
|
426
|
-
* Schedule a flush of buffered updates after the rate window resets.
|
|
427
|
-
*/
|
|
428
293
|
scheduleFlush() {
|
|
429
294
|
if (this.flushTimer !== null)
|
|
430
295
|
return;
|
|
@@ -433,9 +298,6 @@ export class RealtimeClient {
|
|
|
433
298
|
this.flushPendingUpdates();
|
|
434
299
|
}, RealtimeClient.RATE_WINDOW_MS);
|
|
435
300
|
}
|
|
436
|
-
/**
|
|
437
|
-
* Flush all buffered updates as a single coalesced message.
|
|
438
|
-
*/
|
|
439
301
|
flushPendingUpdates() {
|
|
440
302
|
if (this.pendingUpdates.length === 0)
|
|
441
303
|
return;
|
|
@@ -443,45 +305,24 @@ export class RealtimeClient {
|
|
|
443
305
|
this.pendingUpdates = [];
|
|
444
306
|
return;
|
|
445
307
|
}
|
|
446
|
-
// Merge all pending updates into a single Yjs update
|
|
447
308
|
const merged = Y.mergeUpdates(this.pendingUpdates);
|
|
448
309
|
this.pendingUpdates = [];
|
|
449
|
-
// Reset window and send
|
|
450
310
|
this.sendTimestamps = [Date.now()];
|
|
451
311
|
this.ws.send(merged);
|
|
452
312
|
}
|
|
453
|
-
/**
|
|
454
|
-
* Get the current document snapshot as JSON.
|
|
455
|
-
*/
|
|
456
313
|
getSnapshot() {
|
|
457
314
|
const root = this.ydoc.getMap('root');
|
|
458
315
|
return root.toJSON();
|
|
459
316
|
}
|
|
460
|
-
/**
|
|
461
|
-
* Get the underlying Y.Doc for direct manipulation.
|
|
462
|
-
* Use with caution - prefer using the Puck-Yjs binding utilities.
|
|
463
|
-
*/
|
|
464
317
|
getYDoc() {
|
|
465
318
|
return this.ydoc;
|
|
466
319
|
}
|
|
467
|
-
/**
|
|
468
|
-
* Check if currently connected.
|
|
469
|
-
*/
|
|
470
320
|
isConnected() {
|
|
471
321
|
return this.connected;
|
|
472
322
|
}
|
|
473
|
-
/**
|
|
474
|
-
* Check if presence updates are available via WebSocket.
|
|
475
|
-
* Returns true when connected and able to send/receive presence messages.
|
|
476
|
-
*/
|
|
477
323
|
get presenceViaWebSocket() {
|
|
478
324
|
return this.connected && this.ws !== null && this.ws.readyState === WebSocket.OPEN;
|
|
479
325
|
}
|
|
480
|
-
/**
|
|
481
|
-
* Send focus regions update to the server.
|
|
482
|
-
* @param focusRegions - JSON paths the actor is focused on
|
|
483
|
-
* @returns true if message was sent, false if not connected
|
|
484
|
-
*/
|
|
485
326
|
sendFocusRegions(focusRegions) {
|
|
486
327
|
if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {
|
|
487
328
|
return false;
|
|
@@ -494,10 +335,6 @@ export class RealtimeClient {
|
|
|
494
335
|
this.ws.send(JSON.stringify(message));
|
|
495
336
|
return true;
|
|
496
337
|
}
|
|
497
|
-
/**
|
|
498
|
-
* Send a presence heartbeat to keep the connection alive.
|
|
499
|
-
* @param state - Optional state update (active, idle, editing)
|
|
500
|
-
*/
|
|
501
338
|
sendHeartbeat(state) {
|
|
502
339
|
if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {
|
|
503
340
|
return;
|
|
@@ -509,18 +346,6 @@ export class RealtimeClient {
|
|
|
509
346
|
};
|
|
510
347
|
this.ws.send(JSON.stringify(message));
|
|
511
348
|
}
|
|
512
|
-
/**
|
|
513
|
-
* Wait for the server to acknowledge that all preceding WebSocket messages
|
|
514
|
-
* have been processed. This uses TCP ordering guarantees: a text frame sent
|
|
515
|
-
* after binary CRDT updates is guaranteed to arrive after those updates.
|
|
516
|
-
* The server echoes back a delivery_ack with the matching requestId.
|
|
517
|
-
*
|
|
518
|
-
* Used before publish to ensure the Durable Object has received and applied
|
|
519
|
-
* the latest edits before the HTTP publish request arrives.
|
|
520
|
-
*
|
|
521
|
-
* @returns Promise that resolves when the server confirms delivery
|
|
522
|
-
* @throws Error if not connected or if timeout expires (5 seconds)
|
|
523
|
-
*/
|
|
524
349
|
waitForDelivery() {
|
|
525
350
|
if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {
|
|
526
351
|
return Promise.reject(new Error('Not connected'));
|
|
@@ -540,17 +365,6 @@ export class RealtimeClient {
|
|
|
540
365
|
}));
|
|
541
366
|
});
|
|
542
367
|
}
|
|
543
|
-
/**
|
|
544
|
-
* Request the server to publish the current document via WebSocket.
|
|
545
|
-
* TCP ordering guarantees all preceding binary CRDT updates have been
|
|
546
|
-
* processed before this message is handled, eliminating stale-version races.
|
|
547
|
-
*
|
|
548
|
-
* The Durable Object handles the entire flow: flush to Postgres, then
|
|
549
|
-
* call /internal/publish to create the checkpoint.
|
|
550
|
-
*
|
|
551
|
-
* @returns Promise that resolves with the publish result
|
|
552
|
-
* @throws Error if not connected or if timeout expires (30 seconds)
|
|
553
|
-
*/
|
|
554
368
|
requestPublish() {
|
|
555
369
|
if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {
|
|
556
370
|
return Promise.reject(new Error('Not connected'));
|
|
@@ -570,10 +384,6 @@ export class RealtimeClient {
|
|
|
570
384
|
}));
|
|
571
385
|
});
|
|
572
386
|
}
|
|
573
|
-
/**
|
|
574
|
-
* Handle incoming text (JSON) messages for presence protocol.
|
|
575
|
-
* @param data - Raw JSON string from WebSocket
|
|
576
|
-
*/
|
|
577
387
|
handleTextMessage(data) {
|
|
578
388
|
try {
|
|
579
389
|
const message = JSON.parse(data);
|
|
@@ -585,7 +395,6 @@ export class RealtimeClient {
|
|
|
585
395
|
this.config.onFocusRegionBroadcast?.(message.actorId, message.focusRegions);
|
|
586
396
|
break;
|
|
587
397
|
case 'focus_region_ack':
|
|
588
|
-
// Acknowledgment received
|
|
589
398
|
break;
|
|
590
399
|
case 'delivery_ack': {
|
|
591
400
|
const pending = this.pendingDeliveryAcks.get(message.requestId);
|
|
@@ -610,6 +419,22 @@ export class RealtimeClient {
|
|
|
610
419
|
}
|
|
611
420
|
break;
|
|
612
421
|
}
|
|
422
|
+
case 'sync_baseline': {
|
|
423
|
+
if (this.syncBaselineTimer !== null) {
|
|
424
|
+
clearTimeout(this.syncBaselineTimer);
|
|
425
|
+
this.syncBaselineTimer = null;
|
|
426
|
+
}
|
|
427
|
+
if (message.gate !== 'open') {
|
|
428
|
+
this.serverGateClosed = true;
|
|
429
|
+
break;
|
|
430
|
+
}
|
|
431
|
+
const serverSv = Uint8Array.from(atob(message.serverStateVector), c => c.charCodeAt(0));
|
|
432
|
+
const delta = Y.encodeStateAsUpdate(this.ydoc, serverSv);
|
|
433
|
+
if (delta.length > RealtimeClient.YJS_EMPTY_UPDATE_LENGTH) {
|
|
434
|
+
this.ws?.send(delta);
|
|
435
|
+
}
|
|
436
|
+
break;
|
|
437
|
+
}
|
|
613
438
|
case 'presence_error':
|
|
614
439
|
if (message.code === 'RATE_LIMITED') {
|
|
615
440
|
this.config.onRateLimited?.();
|
package/dist/realtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"realtime.js","sourceRoot":"","sources":["../src/realtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"realtime.js","sourceRoot":"","sources":["../src/realtime.ts"],"names":[],"mappings":"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"}
|
package/dist/sdk-version.d.ts
CHANGED
|
@@ -7,5 +7,5 @@
|
|
|
7
7
|
/** Name half of `x-p1-sdk`. */
|
|
8
8
|
export declare const SDK_NAME = "css-client";
|
|
9
9
|
/** Version half of `x-p1-sdk`, matching the published release. */
|
|
10
|
-
export declare const SDK_VERSION = "0.
|
|
10
|
+
export declare const SDK_VERSION = "0.13.0";
|
|
11
11
|
//# sourceMappingURL=sdk-version.d.ts.map
|