@multiplatform.one/frappe 6.4.3 → 6.7.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/dist/cjs/collection.cjs +25 -9
- package/dist/cjs/collection.native.js +25 -9
- package/dist/cjs/collection.native.js.map +1 -1
- package/dist/cjs/db.cjs +13 -2
- package/dist/cjs/db.native.js +18 -2
- package/dist/cjs/db.native.js.map +1 -1
- package/dist/cjs/frappeReact.cjs +10 -3
- package/dist/cjs/frappeReact.native.js +10 -3
- package/dist/cjs/frappeReact.native.js.map +1 -1
- package/dist/cjs/index.cjs +1 -0
- package/dist/cjs/index.native.js +1 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/realtime.cjs +222 -11
- package/dist/cjs/realtime.native.js +352 -14
- package/dist/cjs/realtime.native.js.map +1 -1
- package/dist/cjs/sync/index.cjs +6 -1
- package/dist/cjs/sync/index.native.js +6 -1
- package/dist/cjs/sync/index.native.js.map +1 -1
- package/dist/cjs/sync/mutationEngine.cjs +43 -19
- package/dist/cjs/sync/mutationEngine.native.js +51 -21
- package/dist/cjs/sync/mutationEngine.native.js.map +1 -1
- package/dist/cjs/sync/subscriptionManager.cjs +4 -0
- package/dist/cjs/sync/subscriptionManager.native.js +4 -0
- package/dist/cjs/sync/subscriptionManager.native.js.map +1 -1
- package/dist/cjs/sync/types.native.js.map +1 -1
- package/dist/esm/collection.mjs +24 -9
- package/dist/esm/collection.mjs.map +1 -1
- package/dist/esm/collection.native.js +24 -9
- package/dist/esm/collection.native.js.map +1 -1
- package/dist/esm/db.mjs +13 -2
- package/dist/esm/db.mjs.map +1 -1
- package/dist/esm/db.native.js +18 -2
- package/dist/esm/db.native.js.map +1 -1
- package/dist/esm/frappeReact.mjs +11 -4
- package/dist/esm/frappeReact.mjs.map +1 -1
- package/dist/esm/frappeReact.native.js +11 -4
- package/dist/esm/frappeReact.native.js.map +1 -1
- package/dist/esm/index.mjs +2 -2
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +2 -2
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/realtime.mjs +222 -11
- package/dist/esm/realtime.mjs.map +1 -1
- package/dist/esm/realtime.native.js +352 -14
- package/dist/esm/realtime.native.js.map +1 -1
- package/dist/esm/sync/index.mjs +6 -1
- package/dist/esm/sync/index.mjs.map +1 -1
- package/dist/esm/sync/index.native.js +6 -1
- package/dist/esm/sync/index.native.js.map +1 -1
- package/dist/esm/sync/mutationEngine.mjs +43 -19
- package/dist/esm/sync/mutationEngine.mjs.map +1 -1
- package/dist/esm/sync/mutationEngine.native.js +51 -21
- package/dist/esm/sync/mutationEngine.native.js.map +1 -1
- package/dist/esm/sync/subscriptionManager.mjs +4 -0
- package/dist/esm/sync/subscriptionManager.mjs.map +1 -1
- package/dist/esm/sync/subscriptionManager.native.js +4 -0
- package/dist/esm/sync/subscriptionManager.native.js.map +1 -1
- package/dist/esm/sync/types.mjs.map +1 -1
- package/dist/esm/sync/types.native.js.map +1 -1
- package/dist/jsx/collection.mjs +24 -9
- package/dist/jsx/collection.mjs.map +1 -1
- package/dist/jsx/collection.native.js +25 -9
- package/dist/jsx/collection.native.js.map +1 -1
- package/dist/jsx/db.mjs +13 -2
- package/dist/jsx/db.mjs.map +1 -1
- package/dist/jsx/db.native.js +18 -2
- package/dist/jsx/db.native.js.map +1 -1
- package/dist/jsx/frappeReact.mjs +11 -4
- package/dist/jsx/frappeReact.mjs.map +1 -1
- package/dist/jsx/frappeReact.native.js +10 -3
- package/dist/jsx/frappeReact.native.js.map +1 -1
- package/dist/jsx/index.js +2 -2
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +2 -2
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +1 -0
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/realtime.mjs +222 -11
- package/dist/jsx/realtime.mjs.map +1 -1
- package/dist/jsx/realtime.native.js +352 -14
- package/dist/jsx/realtime.native.js.map +1 -1
- package/dist/jsx/sync/index.mjs +6 -1
- package/dist/jsx/sync/index.mjs.map +1 -1
- package/dist/jsx/sync/index.native.js +6 -1
- package/dist/jsx/sync/index.native.js.map +1 -1
- package/dist/jsx/sync/mutationEngine.mjs +43 -19
- package/dist/jsx/sync/mutationEngine.mjs.map +1 -1
- package/dist/jsx/sync/mutationEngine.native.js +51 -21
- package/dist/jsx/sync/mutationEngine.native.js.map +1 -1
- package/dist/jsx/sync/subscriptionManager.mjs +4 -0
- package/dist/jsx/sync/subscriptionManager.mjs.map +1 -1
- package/dist/jsx/sync/subscriptionManager.native.js +4 -0
- package/dist/jsx/sync/subscriptionManager.native.js.map +1 -1
- package/dist/jsx/sync/types.mjs.map +1 -1
- package/dist/jsx/sync/types.native.js.map +1 -1
- package/package.json +7 -7
- package/src/collection.ts +53 -8
- package/src/db.spec.ts +70 -0
- package/src/db.ts +28 -2
- package/src/frappeReact.spec.ts +7 -1
- package/src/frappeReact.ts +30 -6
- package/src/frappeReactLiveQueryGc.spec.ts +44 -4
- package/src/index.ts +13 -1
- package/src/realtime.ts +406 -14
- package/src/realtimeSse.spec.ts +547 -0
- package/src/sync/index.ts +10 -1
- package/src/sync/mutationEngine.ts +81 -20
- package/src/sync/optimisticCreateReconcile.spec.ts +372 -0
- package/src/sync/subscriptionManager.spec.ts +41 -0
- package/src/sync/subscriptionManager.ts +10 -0
- package/src/sync/subscriptions.spec.ts +4 -0
- package/src/sync/types.ts +9 -0
- package/types/collection.d.ts +12 -0
- package/types/collection.d.ts.map +1 -1
- package/types/db.d.ts.map +1 -1
- package/types/frappeReact.d.ts.map +1 -1
- package/types/index.d.ts +2 -1
- package/types/index.d.ts.map +1 -1
- package/types/realtime.d.ts +166 -1
- package/types/realtime.d.ts.map +1 -1
- package/types/sync/index.d.ts.map +1 -1
- package/types/sync/mutationEngine.d.ts.map +1 -1
- package/types/sync/subscriptionManager.d.ts.map +1 -1
- package/types/sync/types.d.ts +9 -0
- package/types/sync/types.d.ts.map +1 -1
package/dist/jsx/realtime.mjs
CHANGED
|
@@ -12,11 +12,20 @@ function docRoomKey(doctype, name) {
|
|
|
12
12
|
}
|
|
13
13
|
class RealtimeModule {
|
|
14
14
|
socket;
|
|
15
|
+
/** Live EventSource when the `"sse"` transport is active. */
|
|
16
|
+
eventSource;
|
|
15
17
|
handlerMap = /* @__PURE__ */new Map();
|
|
16
18
|
/** Tracks events with socket listeners attached to prevent duplicates. */
|
|
17
19
|
attachedSocketEvents = /* @__PURE__ */new Set();
|
|
18
20
|
/** Stored socket event handler references for proper cleanup. */
|
|
19
21
|
socketEventHandlers = /* @__PURE__ */new Map();
|
|
22
|
+
/** Tracks SSE event types with listeners attached to prevent duplicates. */
|
|
23
|
+
attachedSseEvents = /* @__PURE__ */new Set();
|
|
24
|
+
/** Stored SSE listener references for proper cleanup. */
|
|
25
|
+
sseListeners = /* @__PURE__ */new Map();
|
|
26
|
+
/** One-shot debug notices for SSE's one-way limitations. */
|
|
27
|
+
sseRoomNoticeLogged = false;
|
|
28
|
+
sseEmitNoticeLogged = false;
|
|
20
29
|
/** Active doc rooms — re-emitted on every (re)connect. */
|
|
21
30
|
docRooms = /* @__PURE__ */new Map();
|
|
22
31
|
/** Active list rooms — re-emitted on every (re)connect. */
|
|
@@ -131,8 +140,11 @@ class RealtimeModule {
|
|
|
131
140
|
for (const resolve of this.healthyWaiters) resolve(ok);
|
|
132
141
|
this.healthyWaiters.clear();
|
|
133
142
|
}
|
|
143
|
+
isSSE() {
|
|
144
|
+
return this.config.transport === "sse";
|
|
145
|
+
}
|
|
134
146
|
waitUntilHealthy(timeoutMs = 2e4) {
|
|
135
|
-
if (this.
|
|
147
|
+
if (this.isHealthy()) return Promise.resolve(true);
|
|
136
148
|
return new Promise(resolve => {
|
|
137
149
|
const timer = setTimeout(() => {
|
|
138
150
|
this.healthyWaiters.delete(onReady);
|
|
@@ -146,8 +158,8 @@ class RealtimeModule {
|
|
|
146
158
|
});
|
|
147
159
|
}
|
|
148
160
|
async ensureConnected() {
|
|
149
|
-
if (this.
|
|
150
|
-
if (!this.socket && !this.isConnecting) {
|
|
161
|
+
if (this.isHealthy()) return;
|
|
162
|
+
if (!this.socket && !this.eventSource && !this.isConnecting) {
|
|
151
163
|
await this.connect();
|
|
152
164
|
}
|
|
153
165
|
await this.waitUntilHealthy();
|
|
@@ -161,7 +173,16 @@ class RealtimeModule {
|
|
|
161
173
|
this.socket.emit("doctype_subscribe", room.doctype);
|
|
162
174
|
}
|
|
163
175
|
}
|
|
176
|
+
/**
|
|
177
|
+
* Open the realtime transport now. Room-driven auto-connect
|
|
178
|
+
* (subscribeDoc/subscribeList) remains the primary lifecycle in both
|
|
179
|
+
* transports — this is public for SSE consumers that use no doc/list room
|
|
180
|
+
* bookkeeping: a one-way stream has nothing to emit on join, so nothing
|
|
181
|
+
* else would ever open it. Idempotent while a transport exists or a
|
|
182
|
+
* connect is in flight.
|
|
183
|
+
*/
|
|
164
184
|
async connect() {
|
|
185
|
+
if (this.isSSE()) return this.connectSSE();
|
|
165
186
|
if (this.socket || this.isConnecting) return;
|
|
166
187
|
this.isConnecting = true;
|
|
167
188
|
try {
|
|
@@ -190,6 +211,153 @@ class RealtimeModule {
|
|
|
190
211
|
throw err;
|
|
191
212
|
}
|
|
192
213
|
}
|
|
214
|
+
/**
|
|
215
|
+
* SSE branch of connect(): construct an EventSource against the configured
|
|
216
|
+
* stream URL. EventSource connects at construction, auto-reconnects on
|
|
217
|
+
* failure, and resumes missed frames itself by sending the stream's last
|
|
218
|
+
* `id:` as the `Last-Event-ID` request header — none of that is
|
|
219
|
+
* reimplemented here.
|
|
220
|
+
*/
|
|
221
|
+
async connectSSE() {
|
|
222
|
+
if (this.eventSource || this.isConnecting) return;
|
|
223
|
+
this.isConnecting = true;
|
|
224
|
+
try {
|
|
225
|
+
const sse = this.config.sse;
|
|
226
|
+
const EventSourceCtor = sse?.EventSource ?? globalThis.EventSource;
|
|
227
|
+
if (!EventSourceCtor) {
|
|
228
|
+
throw new Error('[RealtimeModule] transport "sse" needs an EventSource implementation, and this runtime has no global EventSource (React Native and Node < 22 ship none). Pass a constructor via config.sse.EventSource \u2014 e.g. the "eventsource" npm package on Node or "react-native-sse" on React Native.');
|
|
229
|
+
}
|
|
230
|
+
const url = await this.buildSSEURL();
|
|
231
|
+
this.eventSource = new EventSourceCtor(url, {
|
|
232
|
+
withCredentials: sse?.withCredentials
|
|
233
|
+
});
|
|
234
|
+
this.initSSEHandlers();
|
|
235
|
+
} catch (err) {
|
|
236
|
+
this.isConnecting = false;
|
|
237
|
+
this.resolveHealthyWaiters(false);
|
|
238
|
+
throw err;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
async buildSSEURL() {
|
|
242
|
+
const sse = this.config.sse;
|
|
243
|
+
let url;
|
|
244
|
+
if (sse?.url) {
|
|
245
|
+
url = sse.url;
|
|
246
|
+
} else if (sse?.path) {
|
|
247
|
+
const base = this.config.baseURL.replace(/\/$/, "");
|
|
248
|
+
url = `${base}${sse.path.startsWith("/") ? "" : "/"}${sse.path}`;
|
|
249
|
+
} else {
|
|
250
|
+
throw new Error('[RealtimeModule] transport "sse" requires config.sse.url or config.sse.path. There is no default stream path: SSE endpoints are server-specific (the SHC daemon serves "/api/method/shc.events.stream"; a real Frappe bench has no SSE endpoint at all), so a framework default would only ever 404.');
|
|
251
|
+
}
|
|
252
|
+
const params = Object.entries(this.config.sse?.queryParams ?? {});
|
|
253
|
+
if (params.length === 0) return url;
|
|
254
|
+
const parts = [];
|
|
255
|
+
for (const [key, value] of params) {
|
|
256
|
+
const resolved = typeof value === "function" ? await value() : value;
|
|
257
|
+
parts.push(`${encodeURIComponent(key)}=${encodeURIComponent(resolved)}`);
|
|
258
|
+
}
|
|
259
|
+
return `${url}${url.includes("?") ? "&" : "?"}${parts.join("&")}`;
|
|
260
|
+
}
|
|
261
|
+
initSSEHandlers() {
|
|
262
|
+
this.attachedSseEvents.clear();
|
|
263
|
+
this.sseListeners.clear();
|
|
264
|
+
this.attachSSEListener("open");
|
|
265
|
+
this.attachSSEListener("error");
|
|
266
|
+
this.attachSSEListener("message");
|
|
267
|
+
for (const type of this.config.sse?.events ?? []) {
|
|
268
|
+
this.attachSSEListener(type);
|
|
269
|
+
}
|
|
270
|
+
for (const event of this.handlerMap.keys()) {
|
|
271
|
+
this.attachSSEListener(event);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
attachSSEListener(type) {
|
|
275
|
+
if (!this.eventSource || this.attachedSseEvents.has(type)) return;
|
|
276
|
+
const listener = event => {
|
|
277
|
+
this.handleSSEEvent(type, event);
|
|
278
|
+
};
|
|
279
|
+
this.sseListeners.set(type, listener);
|
|
280
|
+
this.attachedSseEvents.add(type);
|
|
281
|
+
this.eventSource.addEventListener(type, listener);
|
|
282
|
+
}
|
|
283
|
+
detachSSEListener(type) {
|
|
284
|
+
if (this.isCoreSSEType(type)) return;
|
|
285
|
+
if (!this.eventSource || !this.attachedSseEvents.has(type)) return;
|
|
286
|
+
const listener = this.sseListeners.get(type);
|
|
287
|
+
if (listener) {
|
|
288
|
+
this.eventSource.removeEventListener(type, listener);
|
|
289
|
+
this.sseListeners.delete(type);
|
|
290
|
+
}
|
|
291
|
+
this.attachedSseEvents.delete(type);
|
|
292
|
+
}
|
|
293
|
+
isCoreSSEType(type) {
|
|
294
|
+
return type === "open" || type === "error" || type === "message" || (this.config.sse?.events ?? []).includes(type);
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Single entry point for everything the EventSource dispatches. Dataless
|
|
298
|
+
* events are transport lifecycle (`open`/`error` as plain Events); anything
|
|
299
|
+
* carrying `data` is a server frame — including frames the server
|
|
300
|
+
* classified `event: error`, which arrive as MessageEvents WITH data and
|
|
301
|
+
* must not be mistaken for connection errors.
|
|
302
|
+
*/
|
|
303
|
+
handleSSEEvent(type, event) {
|
|
304
|
+
if (event?.data === void 0) {
|
|
305
|
+
if (type === "open") {
|
|
306
|
+
this.isConnecting = false;
|
|
307
|
+
this.socketHealthy = true;
|
|
308
|
+
this.emitToHandlers("connected", {
|
|
309
|
+
transport: "sse"
|
|
310
|
+
});
|
|
311
|
+
this.resolveHealthyWaiters(true);
|
|
312
|
+
} else if (type === "error") {
|
|
313
|
+
this.isConnecting = false;
|
|
314
|
+
this.socketHealthy = false;
|
|
315
|
+
this.emitToHandlers("disconnect", {
|
|
316
|
+
reason: "sse-error"
|
|
317
|
+
});
|
|
318
|
+
this.resolveHealthyWaiters(false);
|
|
319
|
+
}
|
|
320
|
+
return;
|
|
321
|
+
}
|
|
322
|
+
const frame = {
|
|
323
|
+
type,
|
|
324
|
+
data: String(event.data),
|
|
325
|
+
lastEventId: event.lastEventId ?? ""
|
|
326
|
+
};
|
|
327
|
+
const mapFrame = this.config.sse?.mapFrame;
|
|
328
|
+
if (mapFrame) {
|
|
329
|
+
let mapped;
|
|
330
|
+
try {
|
|
331
|
+
mapped = mapFrame(frame);
|
|
332
|
+
} catch (err) {
|
|
333
|
+
console.warn("[RealtimeModule] sse.mapFrame threw; frame dropped:", err);
|
|
334
|
+
return;
|
|
335
|
+
}
|
|
336
|
+
if (!mapped) return;
|
|
337
|
+
for (const {
|
|
338
|
+
event: mappedEvent,
|
|
339
|
+
payload: payload2
|
|
340
|
+
} of mapped) {
|
|
341
|
+
this.emitToHandlers(mappedEvent, payload2);
|
|
342
|
+
}
|
|
343
|
+
return;
|
|
344
|
+
}
|
|
345
|
+
let payload = frame.data;
|
|
346
|
+
try {
|
|
347
|
+
payload = JSON.parse(frame.data);
|
|
348
|
+
} catch {}
|
|
349
|
+
this.emitToHandlers(frame.type, payload);
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Logged once: SSE is one-way, so doc/list room membership can't be sent
|
|
353
|
+
* upstream — rooms are recorded client-side (see getDocRooms/getListRooms)
|
|
354
|
+
* for mapFrame-driven filtering and for a future two-way transport.
|
|
355
|
+
*/
|
|
356
|
+
logSSERoomNoticeOnce() {
|
|
357
|
+
if (this.sseRoomNoticeLogged) return;
|
|
358
|
+
this.sseRoomNoticeLogged = true;
|
|
359
|
+
console.debug("[RealtimeModule] SSE transport is one-way: doc/list room subscriptions are recorded client-side only (getDocRooms()/getListRooms()) and nothing is sent to the server \u2014 filter server-side via sse.queryParams or route frames with sse.mapFrame.");
|
|
360
|
+
}
|
|
193
361
|
/**
|
|
194
362
|
* Tear down the socket without clearing app handlers or room subscriptions.
|
|
195
363
|
* Used by auth refresh so listeners/rooms survive credential rotation.
|
|
@@ -202,8 +370,17 @@ class RealtimeModule {
|
|
|
202
370
|
this.socket.disconnect();
|
|
203
371
|
this.socket = void 0;
|
|
204
372
|
}
|
|
373
|
+
if (this.eventSource) {
|
|
374
|
+
for (const [type, listener] of this.sseListeners) {
|
|
375
|
+
this.eventSource.removeEventListener(type, listener);
|
|
376
|
+
}
|
|
377
|
+
this.eventSource.close();
|
|
378
|
+
this.eventSource = void 0;
|
|
379
|
+
}
|
|
205
380
|
this.attachedSocketEvents.clear();
|
|
206
381
|
this.socketEventHandlers.clear();
|
|
382
|
+
this.attachedSseEvents.clear();
|
|
383
|
+
this.sseListeners.clear();
|
|
207
384
|
this.socketHealthy = false;
|
|
208
385
|
this.isConnecting = false;
|
|
209
386
|
this.resolveHealthyWaiters(false);
|
|
@@ -280,7 +457,11 @@ class RealtimeModule {
|
|
|
280
457
|
this.handlerMap.set(event, handlerSet);
|
|
281
458
|
}
|
|
282
459
|
handlerSet.add(handler);
|
|
283
|
-
this.
|
|
460
|
+
if (this.isSSE()) {
|
|
461
|
+
this.attachSSEListener(event);
|
|
462
|
+
} else {
|
|
463
|
+
this.attachSocketListener(event);
|
|
464
|
+
}
|
|
284
465
|
}
|
|
285
466
|
off(event, handler) {
|
|
286
467
|
const handlerSet = this.handlerMap.get(event);
|
|
@@ -288,7 +469,11 @@ class RealtimeModule {
|
|
|
288
469
|
handlerSet.delete(handler);
|
|
289
470
|
if (handlerSet.size === 0) {
|
|
290
471
|
this.handlerMap.delete(event);
|
|
291
|
-
this.
|
|
472
|
+
if (this.isSSE()) {
|
|
473
|
+
this.detachSSEListener(event);
|
|
474
|
+
} else {
|
|
475
|
+
this.detachSocketListener(event);
|
|
476
|
+
}
|
|
292
477
|
}
|
|
293
478
|
}
|
|
294
479
|
async subscribeDoc(doctype, name) {
|
|
@@ -296,14 +481,15 @@ class RealtimeModule {
|
|
|
296
481
|
doctype,
|
|
297
482
|
name
|
|
298
483
|
});
|
|
484
|
+
if (this.isSSE()) this.logSSERoomNoticeOnce();
|
|
299
485
|
await this.ensureConnected();
|
|
300
|
-
if (this.socket && this.socketHealthy) {
|
|
486
|
+
if (!this.isSSE() && this.socket && this.socketHealthy) {
|
|
301
487
|
this.socket.emit("doc_subscribe", doctype, name);
|
|
302
488
|
}
|
|
303
489
|
}
|
|
304
490
|
unsubscribeDoc(doctype, name) {
|
|
305
491
|
this.docRooms.delete(docRoomKey(doctype, name));
|
|
306
|
-
if (this.socket && this.socketHealthy) {
|
|
492
|
+
if (!this.isSSE() && this.socket && this.socketHealthy) {
|
|
307
493
|
this.socket.emit("doc_unsubscribe", doctype, name);
|
|
308
494
|
}
|
|
309
495
|
this.teardownWhenIdle();
|
|
@@ -320,14 +506,15 @@ class RealtimeModule {
|
|
|
320
506
|
doctype,
|
|
321
507
|
filters
|
|
322
508
|
});
|
|
509
|
+
if (this.isSSE()) this.logSSERoomNoticeOnce();
|
|
323
510
|
await this.ensureConnected();
|
|
324
|
-
if (this.socket && this.socketHealthy) {
|
|
511
|
+
if (!this.isSSE() && this.socket && this.socketHealthy) {
|
|
325
512
|
this.socket.emit("doctype_subscribe", doctype);
|
|
326
513
|
}
|
|
327
514
|
}
|
|
328
515
|
unsubscribeList(doctype) {
|
|
329
516
|
this.listRooms.delete(doctype);
|
|
330
|
-
if (this.socket && this.socketHealthy) {
|
|
517
|
+
if (!this.isSSE() && this.socket && this.socketHealthy) {
|
|
331
518
|
this.socket.emit("doctype_unsubscribe", doctype);
|
|
332
519
|
}
|
|
333
520
|
this.teardownWhenIdle();
|
|
@@ -343,13 +530,14 @@ class RealtimeModule {
|
|
|
343
530
|
*/
|
|
344
531
|
teardownWhenIdle() {
|
|
345
532
|
if (this.docRooms.size > 0 || this.listRooms.size > 0) return;
|
|
346
|
-
if (!this.socket && !this.isConnecting) return;
|
|
533
|
+
if (!this.socket && !this.eventSource && !this.isConnecting) return;
|
|
347
534
|
this.emitToHandlers("disconnect", {
|
|
348
535
|
reason: "idle-teardown"
|
|
349
536
|
});
|
|
350
537
|
this.softDisconnect();
|
|
351
538
|
}
|
|
352
539
|
isHealthy() {
|
|
540
|
+
if (this.isSSE()) return this.socketHealthy && this.eventSource !== void 0;
|
|
353
541
|
return this.socketHealthy && this.socket?.connected === true;
|
|
354
542
|
}
|
|
355
543
|
disconnect() {
|
|
@@ -360,13 +548,20 @@ class RealtimeModule {
|
|
|
360
548
|
}
|
|
361
549
|
async updateAuth(auth) {
|
|
362
550
|
this.config.auth = auth;
|
|
363
|
-
const shouldReconnect = this.docRooms.size > 0 || this.listRooms.size > 0;
|
|
551
|
+
const shouldReconnect = this.docRooms.size > 0 || this.listRooms.size > 0 || this.isSSE() && this.eventSource !== void 0;
|
|
364
552
|
this.softDisconnect();
|
|
365
553
|
if (shouldReconnect) {
|
|
366
554
|
await this.connect();
|
|
367
555
|
}
|
|
368
556
|
}
|
|
369
557
|
emit(event, data) {
|
|
558
|
+
if (this.isSSE()) {
|
|
559
|
+
if (!this.sseEmitNoticeLogged) {
|
|
560
|
+
this.sseEmitNoticeLogged = true;
|
|
561
|
+
console.debug("[RealtimeModule] emit() is a no-op under the SSE transport \u2014 SSE is one-way (server \u2192 client). Use HTTP calls for client \u2192 server communication.");
|
|
562
|
+
}
|
|
563
|
+
return;
|
|
564
|
+
}
|
|
370
565
|
if (this.socket && this.socketHealthy) {
|
|
371
566
|
this.socket.emit(event, data);
|
|
372
567
|
}
|
|
@@ -374,6 +569,22 @@ class RealtimeModule {
|
|
|
374
569
|
getSocket() {
|
|
375
570
|
return this.socket;
|
|
376
571
|
}
|
|
572
|
+
/** Live EventSource when the SSE transport is connected (undefined otherwise). */
|
|
573
|
+
getEventSource() {
|
|
574
|
+
return this.eventSource;
|
|
575
|
+
}
|
|
576
|
+
/**
|
|
577
|
+
* Doc rooms recorded by subscribeDoc. Under SSE these are client-side
|
|
578
|
+
* bookkeeping only (nothing is emitted upstream) — mapFrame-driven apps
|
|
579
|
+
* consult them to filter or route frames.
|
|
580
|
+
*/
|
|
581
|
+
getDocRooms() {
|
|
582
|
+
return [...this.docRooms.values()];
|
|
583
|
+
}
|
|
584
|
+
/** List rooms recorded by subscribeList — same client-side semantics as getDocRooms. */
|
|
585
|
+
getListRooms() {
|
|
586
|
+
return [...this.listRooms.values()];
|
|
587
|
+
}
|
|
377
588
|
}
|
|
378
589
|
export { RealtimeModule, RealtimePlatform };
|
|
379
590
|
//# sourceMappingURL=realtime.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isNative","io","isBrowser","isGjs","RealtimePlatform","RealtimePlatform2","docRoomKey","doctype","name","RealtimeModule","socket","handlerMap","Map","attachedSocketEvents","Set","socketEventHandlers","docRooms","listRooms","socketHealthy","isConnecting","healthyWaiters","config","authRefreshInflight","constructor","platform","detectPlatform","navigator","product","userAgent","includes","getSocketURL","base","baseURL","replace","url","URL","port","socketPort","String","host","hostname","siteName","protocol","result","split","getAuthOptions","authOptions","extraHeaders","Origin","origin","auth","sessionId","Cookie","useToken","token","authType","type","Authorization","transportOptions","websocket","polling","refreshSocketAuth","Promise","resolve","manager","opts","Object","assign","resolveHealthyWaiters","ok","clear","waitUntilHealthy","timeoutMs","connected","timer","setTimeout","delete","onReady","clearTimeout","add","ensureConnected","connect","resubscribeRooms","room","values","emit","socketURL","transports","autoConnect","path","randomizationFactor","reconnection","reconnectionAttempts","Number","POSITIVE_INFINITY","reconnectionDelay","reconnectionDelayMax","timeout","withCredentials","socketOptions","initHandlers","err","softDisconnect","removeAllListeners","disconnect","on","emitToHandlers","sid","id","reason","error","event","keys","attachSocketListener","has","handler","payload","set","detachSocketListener","get","off","handlerSet","size","subscribeDoc","unsubscribeDoc","teardownWhenIdle","subscribeList","filters","unsubscribeList","isHealthy","updateAuth","shouldReconnect","data","getSocket"],"sources":["../../src/realtime.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["isNative","io","isBrowser","isGjs","RealtimePlatform","RealtimePlatform2","docRoomKey","doctype","name","RealtimeModule","socket","eventSource","handlerMap","Map","attachedSocketEvents","Set","socketEventHandlers","attachedSseEvents","sseListeners","sseRoomNoticeLogged","sseEmitNoticeLogged","docRooms","listRooms","socketHealthy","isConnecting","healthyWaiters","config","authRefreshInflight","constructor","platform","detectPlatform","navigator","product","userAgent","includes","getSocketURL","base","baseURL","replace","url","URL","port","socketPort","String","host","hostname","siteName","protocol","result","split","getAuthOptions","authOptions","extraHeaders","Origin","origin","auth","sessionId","Cookie","useToken","token","authType","type","Authorization","transportOptions","websocket","polling","refreshSocketAuth","Promise","resolve","manager","opts","Object","assign","resolveHealthyWaiters","ok","clear","isSSE","transport","waitUntilHealthy","timeoutMs","isHealthy","timer","setTimeout","delete","onReady","clearTimeout","add","ensureConnected","connect","resubscribeRooms","room","values","emit","connectSSE","socketURL","transports","autoConnect","path","randomizationFactor","reconnection","reconnectionAttempts","Number","POSITIVE_INFINITY","reconnectionDelay","reconnectionDelayMax","timeout","withCredentials","socketOptions","initHandlers","err","sse","EventSourceCtor","EventSource","globalThis","Error","buildSSEURL","initSSEHandlers","startsWith","params","entries","queryParams","length","parts","key","value","resolved","push","encodeURIComponent","join","attachSSEListener","events","event","keys","has","listener","handleSSEEvent","set","addEventListener","detachSSEListener","isCoreSSEType","get","removeEventListener","data","emitToHandlers","reason","frame","lastEventId","mapFrame","mapped","console","warn","mappedEvent","payload","payload2","JSON","parse","logSSERoomNoticeOnce","debug","softDisconnect","removeAllListeners","disconnect","close","on","sid","id","error","attachSocketListener","handler","detachSocketListener","off","handlerSet","size","subscribeDoc","unsubscribeDoc","teardownWhenIdle","subscribeList","filters","unsubscribeList","connected","updateAuth","shouldReconnect","getSocket","getEventSource","getDocRooms","getListRooms"],"sources":["../../src/realtime.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|