orez-lite 0.10.7 → 0.11.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/browser/host.d.ts.map +1 -1
- package/dist/browser/host.js +8 -29
- package/dist/browser/host.js.map +1 -1
- package/dist/browser/types.d.ts +4 -2
- package/dist/browser/types.d.ts.map +1 -1
- package/dist/browser/types.js.map +1 -1
- package/dist/cf-do/application-sql.d.ts +24 -5
- package/dist/cf-do/application-sql.d.ts.map +1 -1
- package/dist/cf-do/application-sql.js +51 -43
- package/dist/cf-do/application-sql.js.map +1 -1
- package/dist/cf-do/worker.d.ts +74 -14
- package/dist/cf-do/worker.d.ts.map +1 -1
- package/dist/cf-do/worker.js +195 -92
- package/dist/cf-do/worker.js.map +1 -1
- package/dist/do-sql-tracking.d.ts +17 -0
- package/dist/do-sql-tracking.d.ts.map +1 -1
- package/dist/do-sql-tracking.js +17 -0
- package/dist/do-sql-tracking.js.map +1 -1
- package/dist/realtime/host.d.ts +7 -0
- package/dist/realtime/host.d.ts.map +1 -0
- package/dist/realtime/host.js +77 -0
- package/dist/realtime/host.js.map +1 -0
- package/dist/realtime/hub.d.ts +10 -5
- package/dist/realtime/hub.d.ts.map +1 -1
- package/dist/realtime/hub.js +133 -53
- package/dist/realtime/hub.js.map +1 -1
- package/dist/realtime/index.d.ts +15 -2
- package/dist/realtime/index.d.ts.map +1 -1
- package/dist/realtime/index.js +12 -0
- package/dist/realtime/index.js.map +1 -1
- package/dist/realtime/local.d.ts +15 -0
- package/dist/realtime/local.d.ts.map +1 -0
- package/dist/realtime/local.js +63 -0
- package/dist/realtime/local.js.map +1 -0
- package/dist/realtime/manifest.d.ts +5 -1
- package/dist/realtime/manifest.d.ts.map +1 -1
- package/dist/realtime/manifest.js +1 -1
- package/dist/realtime/manifest.js.map +1 -1
- package/dist/realtime/message-port.d.ts +34 -0
- package/dist/realtime/message-port.d.ts.map +1 -0
- package/dist/realtime/message-port.js +141 -0
- package/dist/realtime/message-port.js.map +1 -0
- package/dist/realtime/producer-socket.d.ts +10 -0
- package/dist/realtime/producer-socket.d.ts.map +1 -0
- package/dist/realtime/producer-socket.js +90 -0
- package/dist/realtime/producer-socket.js.map +1 -0
- package/dist/realtime/producer.d.ts +16 -0
- package/dist/realtime/producer.d.ts.map +1 -0
- package/dist/realtime/producer.js +51 -0
- package/dist/realtime/producer.js.map +1 -0
- package/dist/realtime/protocol.d.ts +38 -2
- package/dist/realtime/protocol.d.ts.map +1 -1
- package/dist/realtime/protocol.js +34 -0
- package/dist/realtime/protocol.js.map +1 -1
- package/dist/realtime/publisher.d.ts +1 -0
- package/dist/realtime/publisher.d.ts.map +1 -1
- package/dist/realtime/publisher.js +29 -1
- package/dist/realtime/publisher.js.map +1 -1
- package/dist/realtime/socket-host.d.ts +25 -0
- package/dist/realtime/socket-host.d.ts.map +1 -0
- package/dist/realtime/socket-host.js +95 -0
- package/dist/realtime/socket-host.js.map +1 -0
- package/dist/realtime/store.d.ts +4 -4
- package/dist/realtime/store.d.ts.map +1 -1
- package/dist/realtime/store.js +0 -0
- package/dist/realtime/store.js.map +1 -1
- package/dist/realtime/writer.d.ts +17 -0
- package/dist/realtime/writer.d.ts.map +1 -0
- package/dist/realtime/writer.js +138 -0
- package/dist/realtime/writer.js.map +1 -0
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hub.d.ts","sourceRoot":"","sources":["../../src/realtime/hub.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAE/D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;CAC/B,CAAA;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAA;IACnC,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;CAC3B;AAMD,MAAM,MAAM,sBAAsB,GAC9B;IAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAA;CAAE,GACzC;IAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAE1D,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAA;IACvC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAA;IACvC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAA;IACtC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAE9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;CAC/B,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,SAMhC,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"hub.d.ts","sourceRoot":"","sources":["../../src/realtime/hub.ts"],"names":[],"mappings":"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"}
|
package/dist/realtime/hub.js
CHANGED
|
@@ -28,12 +28,23 @@ export class RealtimeHub {
|
|
|
28
28
|
#subscribers = new Map();
|
|
29
29
|
#connectionTopics = new Map();
|
|
30
30
|
#connections = new Map();
|
|
31
|
-
// producer id ->
|
|
32
|
-
//
|
|
31
|
+
// producer id -> every generation it currently leases. An application server
|
|
32
|
+
// streaming twenty agent sessions holds one connection, not twenty, so the
|
|
33
|
+
// lease is a set: the socket closing releases all of them at once.
|
|
33
34
|
#producerGenerations = new Map();
|
|
34
35
|
// per-connection outbound batch, flushed on the batching window
|
|
35
36
|
#outbox = new Map();
|
|
36
|
-
#
|
|
37
|
+
#flushScheduled = false;
|
|
38
|
+
// One chain per connection so its subscribe and unsubscribe frames apply in
|
|
39
|
+
// arrival order even though authorization may await. Without it, a
|
|
40
|
+
// subscribe/unsubscribe pair sent back to back could resolve out of order and
|
|
41
|
+
// leave a connection subscribed to a topic it had already dropped.
|
|
42
|
+
#connectionQueue = new Map();
|
|
43
|
+
// Bumped by dropConnection. A subscribe captures the epoch when the frame
|
|
44
|
+
// ARRIVES, not when its queued task runs, so a socket that closes while its
|
|
45
|
+
// authorization is still in flight abandons the subscription instead of
|
|
46
|
+
// completing it against a connection nobody is reading from.
|
|
47
|
+
#connectionEpoch = new Map();
|
|
37
48
|
constructor(options) {
|
|
38
49
|
this.#manifest = options.manifest;
|
|
39
50
|
this.#authorize = options.authorizeSubscribe;
|
|
@@ -41,12 +52,38 @@ export class RealtimeHub {
|
|
|
41
52
|
this.#schedule =
|
|
42
53
|
options.scheduleFlush ??
|
|
43
54
|
((flush, ms) => {
|
|
44
|
-
|
|
45
|
-
return () => clearTimeout(timer);
|
|
55
|
+
setTimeout(flush, ms);
|
|
46
56
|
});
|
|
47
57
|
}
|
|
48
58
|
// ---- subscribers --------------------------------------------------------
|
|
59
|
+
// Queued per connection: the returned promise resolves once this frame has
|
|
60
|
+
// been applied, which is what a host adapter awaits before processing the
|
|
61
|
+
// next frame from the same socket.
|
|
49
62
|
subscribe(connection, topic) {
|
|
63
|
+
const epoch = this.#connectionEpoch.get(connection.id) ?? 0;
|
|
64
|
+
return this.#enqueue(connection.id, () => this.#subscribe(connection, topic, epoch));
|
|
65
|
+
}
|
|
66
|
+
unsubscribe(connection, topic) {
|
|
67
|
+
return this.#enqueue(connection.id, () => {
|
|
68
|
+
const resolved = resolveTopic(this.#manifest, topic);
|
|
69
|
+
if ('reason' in resolved)
|
|
70
|
+
return;
|
|
71
|
+
this.#removeSubscription(connection.id, resolved.id);
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
#enqueue(connectionID, task) {
|
|
75
|
+
const previous = this.#connectionQueue.get(connectionID) ?? Promise.resolve();
|
|
76
|
+
// a rejected task must not poison the chain for later frames
|
|
77
|
+
const next = previous.then(task).catch(() => { });
|
|
78
|
+
this.#connectionQueue.set(connectionID, next);
|
|
79
|
+
return next;
|
|
80
|
+
}
|
|
81
|
+
#isCurrent(connectionID, epoch) {
|
|
82
|
+
return (this.#connectionEpoch.get(connectionID) ?? 0) === epoch;
|
|
83
|
+
}
|
|
84
|
+
async #subscribe(connection, topic, epoch) {
|
|
85
|
+
if (!this.#isCurrent(connection.id, epoch))
|
|
86
|
+
return;
|
|
50
87
|
this.#connections.set(connection.id, connection);
|
|
51
88
|
const resolved = resolveTopic(this.#manifest, topic);
|
|
52
89
|
if ('reason' in resolved) {
|
|
@@ -84,7 +121,10 @@ export class RealtimeHub {
|
|
|
84
121
|
return;
|
|
85
122
|
}
|
|
86
123
|
}
|
|
87
|
-
const authorization = this.#authorize(connection.identity, topic, spec);
|
|
124
|
+
const authorization = await this.#authorize(connection.identity, topic, spec);
|
|
125
|
+
// the socket can close while authorization is in flight
|
|
126
|
+
if (!this.#isCurrent(connection.id, epoch))
|
|
127
|
+
return;
|
|
88
128
|
if (authorization.status === 'denied') {
|
|
89
129
|
connection.send(['subscribe-error', { topic: id, reason: authorization.reason }]);
|
|
90
130
|
return;
|
|
@@ -104,7 +144,7 @@ export class RealtimeHub {
|
|
|
104
144
|
// lets append-mode frames be safe for late joiners, and it is sent
|
|
105
145
|
// immediately rather than batched so a mid-stream mount paints at once.
|
|
106
146
|
const generation = this.#generations.get(id);
|
|
107
|
-
if (authorization.status === 'active' && generation
|
|
147
|
+
if (authorization.status === 'active' && generation) {
|
|
108
148
|
connection.send([
|
|
109
149
|
'field',
|
|
110
150
|
{
|
|
@@ -121,13 +161,9 @@ export class RealtimeHub {
|
|
|
121
161
|
]);
|
|
122
162
|
}
|
|
123
163
|
}
|
|
124
|
-
unsubscribe(connection, topic) {
|
|
125
|
-
const resolved = resolveTopic(this.#manifest, topic);
|
|
126
|
-
if ('reason' in resolved)
|
|
127
|
-
return;
|
|
128
|
-
this.#removeSubscription(connection.id, resolved.id);
|
|
129
|
-
}
|
|
130
164
|
dropConnection(connectionID) {
|
|
165
|
+
this.#connectionEpoch.set(connectionID, (this.#connectionEpoch.get(connectionID) ?? 0) + 1);
|
|
166
|
+
this.#connectionQueue.delete(connectionID);
|
|
131
167
|
for (const topicID of this.#connectionTopics.get(connectionID) ?? []) {
|
|
132
168
|
this.#subscribers.get(topicID)?.forEach((connection) => {
|
|
133
169
|
if (connection.id === connectionID)
|
|
@@ -201,9 +237,8 @@ export class RealtimeHub {
|
|
|
201
237
|
const { spec, id } = resolved;
|
|
202
238
|
const previous = this.#generations.get(id);
|
|
203
239
|
if (previous && previous.streamID !== streamID) {
|
|
204
|
-
previous.superseded = true;
|
|
205
240
|
if (previous.producer) {
|
|
206
|
-
this.#
|
|
241
|
+
this.#releaseLease(previous.producer.id, id);
|
|
207
242
|
previous.producer.send(['superseded', { topic: id, streamID: previous.streamID }]);
|
|
208
243
|
}
|
|
209
244
|
}
|
|
@@ -214,42 +249,68 @@ export class RealtimeHub {
|
|
|
214
249
|
seq: -1,
|
|
215
250
|
value: spec.mode === 'append' ? '' : null,
|
|
216
251
|
producer,
|
|
217
|
-
superseded: false,
|
|
218
252
|
});
|
|
219
|
-
this.#producerGenerations.
|
|
253
|
+
const leases = this.#producerGenerations.get(producer.id);
|
|
254
|
+
if (leases)
|
|
255
|
+
leases.add(id);
|
|
256
|
+
else
|
|
257
|
+
this.#producerGenerations.set(producer.id, new Set([id]));
|
|
220
258
|
return { ok: true, topicID: id };
|
|
221
259
|
}
|
|
222
|
-
// Accept one update from a producer, accumulate it, and fan it out.
|
|
223
|
-
//
|
|
224
|
-
//
|
|
260
|
+
// Accept one update from a producer, accumulate it, and fan it out. The
|
|
261
|
+
// rejection REASON is returned rather than a bare false: a producer that is
|
|
262
|
+
// told only "refused" has to guess between supersession, a stale sequence, and
|
|
263
|
+
// a manifest bound, and every adapter was inventing the same vague guess.
|
|
225
264
|
publish(producer, update) {
|
|
226
265
|
const generation = this.#generations.get(update.topic);
|
|
227
|
-
if (!generation)
|
|
228
|
-
return false;
|
|
229
|
-
|
|
230
|
-
//
|
|
231
|
-
//
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
if (
|
|
239
|
-
return
|
|
266
|
+
if (!generation) {
|
|
267
|
+
return { ok: false, reason: `no open generation for '${update.topic}'` };
|
|
268
|
+
}
|
|
269
|
+
// Only the producer holding this generation may publish. A subscriber
|
|
270
|
+
// socket is never a producer, so a leaked streamID grants nothing: the check
|
|
271
|
+
// is on the producer handle, not the frame contents. A superseded generation
|
|
272
|
+
// needs no flag of its own, because beginGeneration REPLACED it in this map;
|
|
273
|
+
// its old producer falls out here, and its old stream id falls out below.
|
|
274
|
+
if (generation.producer?.id !== producer.id) {
|
|
275
|
+
return { ok: false, reason: `another producer holds '${update.topic}'` };
|
|
276
|
+
}
|
|
277
|
+
if (generation.streamID !== update.streamID) {
|
|
278
|
+
return {
|
|
279
|
+
ok: false,
|
|
280
|
+
reason: `stream ${update.streamID} is not the current generation for '${update.topic}'`,
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
if (update.seq <= generation.seq) {
|
|
284
|
+
return {
|
|
285
|
+
ok: false,
|
|
286
|
+
reason: `seq ${update.seq} is not newer than the delivered ${generation.seq}`,
|
|
287
|
+
};
|
|
288
|
+
}
|
|
240
289
|
switch (update.op) {
|
|
241
290
|
case 'snapshot': {
|
|
242
|
-
if (!this.#validate(generation.spec, update.value))
|
|
243
|
-
return
|
|
291
|
+
if (!this.#validate(generation.spec, update.value)) {
|
|
292
|
+
return {
|
|
293
|
+
ok: false,
|
|
294
|
+
reason: `value failed the manifest bounds for '${update.topic}'`,
|
|
295
|
+
};
|
|
296
|
+
}
|
|
244
297
|
generation.value = update.value;
|
|
245
298
|
break;
|
|
246
299
|
}
|
|
247
300
|
case 'append': {
|
|
248
|
-
if (generation.spec.mode !== 'append')
|
|
249
|
-
return
|
|
301
|
+
if (generation.spec.mode !== 'append') {
|
|
302
|
+
return {
|
|
303
|
+
ok: false,
|
|
304
|
+
reason: `'${update.topic}' is replace mode and takes no appends`,
|
|
305
|
+
};
|
|
306
|
+
}
|
|
250
307
|
const next = generation.value + update.text;
|
|
251
|
-
if (byteLength(next) > generation.spec.maxBytes)
|
|
252
|
-
return
|
|
308
|
+
if (byteLength(next) > generation.spec.maxBytes) {
|
|
309
|
+
return {
|
|
310
|
+
ok: false,
|
|
311
|
+
reason: `append would exceed maxBytes for '${update.topic}'`,
|
|
312
|
+
};
|
|
313
|
+
}
|
|
253
314
|
generation.value = next;
|
|
254
315
|
break;
|
|
255
316
|
}
|
|
@@ -261,22 +322,32 @@ export class RealtimeHub {
|
|
|
261
322
|
this.#fanOut(update);
|
|
262
323
|
if (update.op === 'end' || update.op === 'abort') {
|
|
263
324
|
this.#generations.delete(update.topic);
|
|
264
|
-
this.#
|
|
325
|
+
this.#releaseLease(producer.id, update.topic);
|
|
265
326
|
}
|
|
266
|
-
return true;
|
|
327
|
+
return { ok: true };
|
|
328
|
+
}
|
|
329
|
+
#releaseLease(producerID, topicID) {
|
|
330
|
+
const leases = this.#producerGenerations.get(producerID);
|
|
331
|
+
if (!leases)
|
|
332
|
+
return;
|
|
333
|
+
leases.delete(topicID);
|
|
334
|
+
if (leases.size === 0)
|
|
335
|
+
this.#producerGenerations.delete(producerID);
|
|
267
336
|
}
|
|
268
337
|
// A producer socket closed without a terminal frame (a crash, or a lost
|
|
269
338
|
// connection). The generation's lease is released so the next `begin` is
|
|
270
339
|
// clean; subscribers fall back to their inactivity deadline, which reveals
|
|
271
340
|
// the durable value rather than inventing a recovery value here.
|
|
272
341
|
dropProducer(producerID) {
|
|
273
|
-
const
|
|
342
|
+
const leases = this.#producerGenerations.get(producerID);
|
|
274
343
|
this.#producerGenerations.delete(producerID);
|
|
275
|
-
if (!
|
|
344
|
+
if (!leases)
|
|
276
345
|
return;
|
|
277
|
-
const
|
|
278
|
-
|
|
279
|
-
|
|
346
|
+
for (const topicID of leases) {
|
|
347
|
+
const generation = this.#generations.get(topicID);
|
|
348
|
+
if (generation?.producer?.id === producerID)
|
|
349
|
+
this.#generations.delete(topicID);
|
|
350
|
+
}
|
|
280
351
|
}
|
|
281
352
|
#validate(spec, value) {
|
|
282
353
|
if (spec.mode === 'append' && typeof value !== 'string')
|
|
@@ -296,14 +367,24 @@ export class RealtimeHub {
|
|
|
296
367
|
else
|
|
297
368
|
this.#outbox.set(connection.id, [update]);
|
|
298
369
|
}
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
370
|
+
this.#scheduleFlush();
|
|
371
|
+
}
|
|
372
|
+
// The "is a flush already pending" flag is separate from the cancel handle
|
|
373
|
+
// because a scheduler is allowed to run its callback SYNCHRONOUSLY, which the
|
|
374
|
+
// local in-process host does (there is no socket, so there is nothing to
|
|
375
|
+
// batch for). In that case flush() completes during the schedule call and
|
|
376
|
+
// clears its state before the handle could be assigned, so guarding on the
|
|
377
|
+
// handle alone left it permanently set and no later batch was ever scheduled.
|
|
378
|
+
#scheduleFlush() {
|
|
379
|
+
if (this.#flushScheduled)
|
|
380
|
+
return;
|
|
381
|
+
this.#flushScheduled = true;
|
|
382
|
+
this.#schedule(() => this.flush(), this.#limits.batchWindowMs);
|
|
302
383
|
}
|
|
303
384
|
// Deliver every pending batch. Public so an adapter can force a flush before
|
|
304
385
|
// it lets its runtime go idle.
|
|
305
386
|
flush() {
|
|
306
|
-
this.#
|
|
387
|
+
this.#flushScheduled = false;
|
|
307
388
|
if (this.#outbox.size === 0)
|
|
308
389
|
return;
|
|
309
390
|
const outbox = [...this.#outbox];
|
|
@@ -330,9 +411,8 @@ export class RealtimeHub {
|
|
|
330
411
|
requeued = true;
|
|
331
412
|
}
|
|
332
413
|
}
|
|
333
|
-
if (requeued
|
|
334
|
-
this.#
|
|
335
|
-
}
|
|
414
|
+
if (requeued)
|
|
415
|
+
this.#scheduleFlush();
|
|
336
416
|
}
|
|
337
417
|
// ---- introspection for adapters and tests -------------------------------
|
|
338
418
|
get activeTopics() {
|
package/dist/realtime/hub.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hub.js","sourceRoot":"","sources":["../../src/realtime/hub.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hub.js","sourceRoot":"","sources":["../../src/realtime/hub.ts"],"names":[],"mappings":"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"}
|
package/dist/realtime/index.d.ts
CHANGED
|
@@ -1,11 +1,24 @@
|
|
|
1
1
|
export { defineStreamingFields, resolveTopic } from './manifest.js';
|
|
2
|
-
export type { FieldMode, StreamingFieldDeclaration, StreamingFieldOptions, StreamingFieldRef, StreamingFieldSpec, StreamingManifest, ZeroSchemaShape, } from './manifest.js';
|
|
2
|
+
export type { FieldMode, StreamingFieldDeclaration, StreamingFieldOptions, StreamingFieldHandle, StreamingFieldRef, StreamingFieldSpec, StreamingManifest, ZeroSchemaShape, } from './manifest.js';
|
|
3
3
|
export { canonicalPrimaryKey, canonicalTopic, decodeFrame, encodeFrame, isLegacyWake, LEGACY_WAKE_FRAME, TOPIC_SEPARATOR, } from './protocol.js';
|
|
4
|
-
export type { ClientFrame, FieldUpdate, HostFrame, RealtimeKeyValue, RealtimeTopic, } from './protocol.js';
|
|
4
|
+
export type { AnyFrame, ClientFrame, FieldUpdate, HostFrame, ProducerFrame, ProducerHostFrame, RealtimeKeyValue, RealtimeTopic, } from './protocol.js';
|
|
5
5
|
export { canonicalEncode, RealtimeStore } from './store.js';
|
|
6
6
|
export type { RealtimeStoreOptions, StreamingFieldState, StreamingPhase, } from './store.js';
|
|
7
7
|
export { RealtimePublisher } from './publisher.js';
|
|
8
8
|
export type { BeginOptions, PublisherTransport, StreamSession } from './publisher.js';
|
|
9
9
|
export { DEFAULT_HUB_LIMITS, RealtimeHub } from './hub.js';
|
|
10
10
|
export type { HubConnection, HubLimits, HubOptions, HubProducer, RealtimeIdentity, SubscribeAuthorization, } from './hub.js';
|
|
11
|
+
export { FieldWriter } from './writer.js';
|
|
12
|
+
export type { FieldWriterOptions } from './writer.js';
|
|
13
|
+
export { createLocalRealtime } from './local.js';
|
|
14
|
+
export type { LocalRealtime, LocalRealtimeOptions } from './local.js';
|
|
15
|
+
export { BrowserRealtime, connectRealtimePort } from './message-port.js';
|
|
16
|
+
export type { BrowserRealtimeOptions, MembershipReader } from './message-port.js';
|
|
17
|
+
export { applyClientFrame, applyHostFrame, applyProducerFrame } from './host.js';
|
|
18
|
+
export { createProducer, inProcessTransport } from './producer.js';
|
|
19
|
+
export type { ProducerOptions, RealtimeProducer } from './producer.js';
|
|
20
|
+
export { createSocketHost } from './socket-host.js';
|
|
21
|
+
export type { HostConnection, HostSocket, RealtimeSocketHost } from './socket-host.js';
|
|
22
|
+
export { createSocketProducer } from './producer-socket.js';
|
|
23
|
+
export type { ProducerSocket, SocketProducer } from './producer-socket.js';
|
|
11
24
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/realtime/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AACnE,YAAY,EACV,SAAS,EACT,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,GAChB,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,WAAW,EACX,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,eAAe,GAChB,MAAM,eAAe,CAAA;AACtB,YAAY,EACV,WAAW,EACX,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,aAAa,GACd,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC3D,YAAY,EACV,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,GACf,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAClD,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAErF,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAC1D,YAAY,EACV,aAAa,EACb,SAAS,EACT,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,UAAU,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/realtime/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AACnE,YAAY,EACV,SAAS,EACT,yBAAyB,EACzB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,GAChB,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,WAAW,EACX,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,eAAe,GAChB,MAAM,eAAe,CAAA;AACtB,YAAY,EACV,QAAQ,EACR,WAAW,EACX,WAAW,EACX,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,GACd,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC3D,YAAY,EACV,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,GACf,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAClD,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAErF,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAC1D,YAAY,EACV,aAAa,EACb,SAAS,EACT,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,UAAU,CAAA;AAEjB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAErD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAChD,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAErE,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACxE,YAAY,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAGjF,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAGhF,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAGtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAItF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC3D,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA"}
|
package/dist/realtime/index.js
CHANGED
|
@@ -10,6 +10,18 @@ export { canonicalPrimaryKey, canonicalTopic, decodeFrame, encodeFrame, isLegacy
|
|
|
10
10
|
export { canonicalEncode, RealtimeStore } from './store.js';
|
|
11
11
|
export { RealtimePublisher } from './publisher.js';
|
|
12
12
|
export { DEFAULT_HUB_LIMITS, RealtimeHub } from './hub.js';
|
|
13
|
+
export { FieldWriter } from './writer.js';
|
|
14
|
+
export { createLocalRealtime } from './local.js';
|
|
15
|
+
export { BrowserRealtime, connectRealtimePort } from './message-port.js';
|
|
16
|
+
// Frame routing. One applier per direction; every surface is built from these.
|
|
17
|
+
export { applyClientFrame, applyHostFrame, applyProducerFrame } from './host.js';
|
|
18
|
+
// The producer role, identical on every surface
|
|
19
|
+
export { createProducer, inProcessTransport } from './producer.js';
|
|
20
|
+
// The host role over sockets, for any runtime that has them
|
|
21
|
+
export { createSocketHost } from './socket-host.js';
|
|
22
|
+
// A producer that reaches the hub over a socket: an application server
|
|
23
|
+
// generating values while the subscribers are browsers elsewhere
|
|
24
|
+
export { createSocketProducer } from './producer-socket.js';
|
|
13
25
|
// The React binding lives in on-zero, which already owns the React peer
|
|
14
26
|
// dependency. orez-lite stays framework-free: see on-zero's useStreamingField.
|
|
15
27
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/realtime/index.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,EAAE;AACF,sEAAsE;AACtE,+EAA+E;AAC/E,gFAAgF;AAChF,4EAA4E;AAC5E,gBAAgB;AAEhB,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/realtime/index.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,EAAE;AACF,sEAAsE;AACtE,+EAA+E;AAC/E,gFAAgF;AAChF,4EAA4E;AAC5E,gBAAgB;AAEhB,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAYnE,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,WAAW,EACX,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,eAAe,GAChB,MAAM,eAAe,CAAA;AAYtB,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAO3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAGlD,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAU1D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAGzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAGhD,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAGxE,+EAA+E;AAC/E,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAEhF,gDAAgD;AAChD,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAGlE,4DAA4D;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAGnD,uEAAuE;AACvE,iEAAiE;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAG3D,wEAAwE;AACxE,+EAA+E"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { RealtimeStore } from './store.js';
|
|
2
|
+
import type { StreamingManifest } from './manifest.js';
|
|
3
|
+
import type { RealtimeProducer } from './producer.js';
|
|
4
|
+
export type LocalRealtimeOptions = {
|
|
5
|
+
readonly manifest: StreamingManifest;
|
|
6
|
+
readonly staleAfterMs?: number;
|
|
7
|
+
readonly onError?: (message: string) => void;
|
|
8
|
+
};
|
|
9
|
+
export type LocalRealtime = RealtimeProducer & {
|
|
10
|
+
readonly store: RealtimeStore;
|
|
11
|
+
readonly flush: () => void;
|
|
12
|
+
readonly close: () => void;
|
|
13
|
+
};
|
|
14
|
+
export declare function createLocalRealtime(options: LocalRealtimeOptions): LocalRealtime;
|
|
15
|
+
//# sourceMappingURL=local.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/realtime/local.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAG1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAGrD,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAA;IAEpC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAC7C,CAAA;AAID,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAAG;IAE7C,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAA;IAG7B,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAA;CAC3B,CAAA;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,aAAa,CA0ChF"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// Single-client realtime: a hub, a publisher, and a store wired together in
|
|
2
|
+
// one JavaScript context, with no socket, no host, and no authorization.
|
|
3
|
+
//
|
|
4
|
+
// This is the shape an application needs when the thing producing the values
|
|
5
|
+
// and the thing displaying them are the same client. Soot's agent loop runs in
|
|
6
|
+
// the browser: the tab running the agent is the tab rendering its output, so
|
|
7
|
+
// routing those values through a server and back would add latency and an auth
|
|
8
|
+
// surface to reach the component sitting next to the producer.
|
|
9
|
+
//
|
|
10
|
+
// It is the same RealtimeHub every other host runs, so a stream behaves
|
|
11
|
+
// identically here and over a socket: same generations, same append
|
|
12
|
+
// accumulation, same durable handoff, same manifest bounds. Moving an
|
|
13
|
+
// application from local to a shared host changes which realtime it constructs
|
|
14
|
+
// and nothing about its components or its producer code.
|
|
15
|
+
//
|
|
16
|
+
// What it deliberately does NOT do is reach other clients. Values live in this
|
|
17
|
+
// context only. The durable Zero row remains the cross-client story, which is
|
|
18
|
+
// exactly the guarantee the overlay already makes: a reload, another tab, or
|
|
19
|
+
// another user sees the committed value, never the in-flight one.
|
|
20
|
+
import { applyClientFrame, applyHostFrame } from './host.js';
|
|
21
|
+
import { RealtimeHub } from './hub.js';
|
|
22
|
+
import { createProducer, inProcessTransport } from './producer.js';
|
|
23
|
+
import { RealtimeStore } from './store.js';
|
|
24
|
+
export function createLocalRealtime(options) {
|
|
25
|
+
// Every row is authorized: there is one client, it is the producer, and it
|
|
26
|
+
// already holds the data it is about to display. There is nothing to
|
|
27
|
+
// authorize against and nobody to withhold it from.
|
|
28
|
+
const hub = new RealtimeHub({
|
|
29
|
+
manifest: options.manifest,
|
|
30
|
+
authorizeSubscribe: () => ({ status: 'active' }),
|
|
31
|
+
// No batching: the window exists to collapse several updates into one
|
|
32
|
+
// WebSocket frame, and there is no socket here. Deferring an in-process
|
|
33
|
+
// call would only add a tick of latency between the producer and the
|
|
34
|
+
// component next to it.
|
|
35
|
+
scheduleFlush: (flush) => flush(),
|
|
36
|
+
});
|
|
37
|
+
const store = new RealtimeStore({
|
|
38
|
+
send: (frame) => void applyClientFrame(hub, connection, frame),
|
|
39
|
+
staleAfterMs: options.staleAfterMs,
|
|
40
|
+
onError: options.onError,
|
|
41
|
+
});
|
|
42
|
+
const connection = {
|
|
43
|
+
id: 'local',
|
|
44
|
+
identity: { userID: 'local', clientID: 'local', clientGroupID: 'local' },
|
|
45
|
+
// Frames are handed straight to the store, not serialized: this is one
|
|
46
|
+
// context, and a JSON round trip per token would be pure cost. The routing
|
|
47
|
+
// is still the shared one, so a frame means the same thing here as it does
|
|
48
|
+
// over a socket.
|
|
49
|
+
send: (frame) => applyHostFrame(store, frame),
|
|
50
|
+
};
|
|
51
|
+
const producerHandle = { id: 'local-producer', send: () => { } };
|
|
52
|
+
const producer = createProducer(inProcessTransport(hub, producerHandle), options);
|
|
53
|
+
return {
|
|
54
|
+
store,
|
|
55
|
+
...producer,
|
|
56
|
+
flush: () => hub.flush(),
|
|
57
|
+
close: () => {
|
|
58
|
+
hub.dropProducer(producerHandle.id);
|
|
59
|
+
hub.dropConnection(connection.id);
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=local.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local.js","sourceRoot":"","sources":["../../src/realtime/local.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,yEAAyE;AACzE,EAAE;AACF,6EAA6E;AAC7E,+EAA+E;AAC/E,6EAA6E;AAC7E,+EAA+E;AAC/E,+DAA+D;AAC/D,EAAE;AACF,wEAAwE;AACxE,oEAAoE;AACpE,sEAAsE;AACtE,+EAA+E;AAC/E,yDAAyD;AACzD,EAAE;AACF,+EAA+E;AAC/E,8EAA8E;AAC9E,6EAA6E;AAC7E,kEAAkE;AAElE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAyB1C,MAAM,UAAU,mBAAmB,CAAC,OAA6B;IAC/D,2EAA2E;IAC3E,qEAAqE;IACrE,oDAAoD;IACpD,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC;QAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QAChD,sEAAsE;QACtE,wEAAwE;QACxE,qEAAqE;QACrE,wBAAwB;QACxB,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE;KAClC,CAAC,CAAA;IAEF,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC;QAC9B,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,KAAoB,CAAC;QAC7E,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAA;IAEF,MAAM,UAAU,GAAkB;QAChC,EAAE,EAAE,OAAO;QACX,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE;QACxE,uEAAuE;QACvE,2EAA2E;QAC3E,2EAA2E;QAC3E,iBAAiB;QACjB,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,KAAkB,CAAC;KAC3D,CAAA;IAED,MAAM,cAAc,GAAgB,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAA;IAC5E,MAAM,QAAQ,GAAG,cAAc,CAAC,kBAAkB,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAA;IAEjF,OAAO;QACL,KAAK;QACL,GAAG,QAAQ;QACX,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE;QACxB,KAAK,EAAE,GAAG,EAAE;YACV,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;YACnC,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;QACnC,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -26,7 +26,11 @@ export type StreamingManifest = {
|
|
|
26
26
|
readonly fields: ReadonlyMap<string, StreamingFieldSpec>;
|
|
27
27
|
readonly schemaKey: string;
|
|
28
28
|
};
|
|
29
|
-
export type
|
|
29
|
+
export type StreamingFieldHandle = {
|
|
30
|
+
readonly topic: RealtimeTopic;
|
|
31
|
+
readonly spec: StreamingFieldSpec;
|
|
32
|
+
};
|
|
33
|
+
export type StreamingFieldRef<Key, Value> = ((key: Key) => StreamingFieldHandle) & {
|
|
30
34
|
readonly spec: StreamingFieldSpec;
|
|
31
35
|
readonly __value?: Value;
|
|
32
36
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/realtime/manifest.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAEpE,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CACvB,MAAM,CACJ,MAAM,EACN;QACE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;YAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC,CAAA;QACrE,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;KACvC,CACF,CACF,CAAA;CACF,CAAA;AAOD,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAA;AAE5C,MAAM,MAAM,qBAAqB,GAAG;IAElC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IAEzB,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAA;IAGpC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;IAElC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAA;IAKzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAA;CAChD,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,qBAAqB,GAAG;IACvD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;IAIxD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B,CAAA;AAGD,MAAM,MAAM,iBAAiB,CAAC,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/realtime/manifest.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAEpE,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CACvB,MAAM,CACJ,MAAM,EACN;QACE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;YAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC,CAAA;QACrE,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;KACvC,CACF,CACF,CAAA;CACF,CAAA;AAOD,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAA;AAE5C,MAAM,MAAM,qBAAqB,GAAG;IAElC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IAEzB,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAA;IAGpC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;IAElC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAA;IAKzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAA;CAChD,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,qBAAqB,GAAG;IACvD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;IAIxD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B,CAAA;AAMD,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAA;IAC7B,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAA;CAClC,CAAA;AAGD,MAAM,MAAM,iBAAiB,CAAC,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,oBAAoB,CAAC,GAAG;IACjF,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAA;IAEjC,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAA;CACzB,CAAA;AAoBD,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAC9C,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAChE,CAAA;AAED,wBAAgB,qBAAqB,CAAC,WAAW,SAAS,yBAAyB,EACjF,MAAM,EAAE,eAAe,EACvB,WAAW,EAAE,WAAW,GACvB;IACD,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAA;CACrC,GAAG;IACF,QAAQ,EAAE,KAAK,IAAI,MAAM,WAAW,GAAG;QACrC,QAAQ,EAAE,KAAK,IAAI,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,iBAAiB,CAC7D,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAChC,OAAO,CACR;KACF;CACF,CA0EA;AAuBD,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,iBAAiB,EAC3B,KAAK,EAAE,aAAa,GAElB;IAAE,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC1D;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAU9B"}
|
|
@@ -64,7 +64,7 @@ export function defineStreamingFields(schema, declaration) {
|
|
|
64
64
|
throw new TypeError(`streaming topic '${table}.${field}' is missing primary key column '${column}'`);
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
|
-
return { table, key, field };
|
|
67
|
+
return { topic: { table, key, field }, spec };
|
|
68
68
|
});
|
|
69
69
|
Object.defineProperty(ref, 'spec', { value: spec, enumerable: true });
|
|
70
70
|
refs[field] = ref;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/realtime/manifest.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,eAAe;AACf,EAAE;AACF,2EAA2E;AAC3E,8EAA8E;AAC9E,gFAAgF;AAChF,2EAA2E;AAC3E,+EAA+E;AAC/E,mBAAmB;AAEnB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/realtime/manifest.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,eAAe;AACf,EAAE;AACF,2EAA2E;AAC3E,8EAA8E;AAC9E,gFAAgF;AAChF,2EAA2E;AAC3E,+EAA+E;AAC/E,mBAAmB;AAEnB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAwE9C,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;AAC5C,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;AAElD,SAAS,cAAc,CACrB,MAAuB,EACvB,MAAqC;IAErC,6EAA6E;IAC7E,sEAAsE;IACtE,OAAO,MAAM;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAE,CAAA;QACxC,OAAO,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;IACpG,CAAC,CAAC;SACD,IAAI,EAAE;SACN,IAAI,CAAC,GAAG,CAAC,CAAA;AACd,CAAC;AAMD,MAAM,UAAU,qBAAqB,CACnC,MAAuB,EACvB,WAAwB;IAWxB,MAAM,KAAK,GAAyB,EAAE,CAAA;IACtC,MAAM,MAAM,GAAsE,EAAE,CAAA;IAEpF,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAC1D,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACxC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,SAAS,CAAC,0BAA0B,KAAK,6BAA6B,CAAC,CAAA;QACnF,CAAC;QACD,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,SAAS,CAAC,0BAA0B,KAAK,sBAAsB,CAAC,CAAA;QAC5E,CAAC;QACD,MAAM,IAAI,GAAsD,EAAE,CAAA;QAElE,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACtD,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACzC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,SAAS,CACjB,oBAAoB,KAAK,IAAI,KAAK,6BAA6B,CAChE,CAAA;YACH,CAAC;YACD,IAAI,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3C,MAAM,IAAI,SAAS,CACjB,oBAAoB,KAAK,IAAI,KAAK,0FAA0F,CAC7H,CAAA;YACH,CAAC;YACD,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;YAErC,MAAM,IAAI,GACR,OAAO,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;YAC5E,IAAI,IAAI,KAAK,QAAQ,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5D,MAAM,IAAI,SAAS,CACjB,oBAAoB,KAAK,IAAI,KAAK,UAAU,MAAM,CAAC,IAAI,sEAAsE,CAC9H,CAAA;YACH,CAAC;YACD,IAAI,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACnE,MAAM,IAAI,SAAS,CACjB,oBAAoB,KAAK,IAAI,KAAK,UAAU,MAAM,CAAC,IAAI,iIAAiI,CACzL,CAAA;YACH,CAAC;YAED,MAAM,IAAI,GAAuB;gBAC/B,GAAG,OAAO;gBACV,KAAK;gBACL,KAAK;gBACL,IAAI;gBACJ,UAAU,EAAE,MAAM,CAAC,IAAI;gBACvB,UAAU,EAAE,WAAW,CAAC,UAAU;aACnC,CAAA;YACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAEhB,MAAM,GAAG,GAAG,CAAC,CAAC,GAAqC,EAAwB,EAAE;gBAC3E,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACrC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;wBAC9B,MAAM,IAAI,SAAS,CACjB,oBAAoB,KAAK,IAAI,KAAK,oCAAoC,MAAM,GAAG,CAChF,CAAA;oBACH,CAAC;gBACH,CAAC;gBACD,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAA;YAC/C,CAAC,CAAiD,CAAA;YAClD,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;YACrE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA;QACnB,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;IACtB,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA8B,CAAA;IACtD,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAA;IAE3E,OAAO;QACL,GAAG,MAAM;QACT,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE;KAChE,CAAA;AACZ,CAAC;AAED,SAAS,cAAc,CACrB,KAAa,EACb,KAAa,EACb,OAA8B;IAE9B,MAAM,MAAM,GAAG;QACb,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC;QAC9B,CAAC,qBAAqB,EAAE,OAAO,CAAC,mBAAmB,CAAC;QACpD,CAAC,mBAAmB,EAAE,OAAO,CAAC,iBAAiB,CAAC;KACxC,CAAA;IACV,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACvE,MAAM,IAAI,SAAS,CAAC,oBAAoB,KAAK,IAAI,KAAK,sBAAsB,IAAI,EAAE,CAAC,CAAA;QACrF,CAAC;IACH,CAAC;AACH,CAAC;AAED,6EAA6E;AAC7E,4EAA4E;AAC5E,+EAA+E;AAC/E,sEAAsE;AACtE,MAAM,UAAU,YAAY,CAC1B,QAA2B,EAC3B,KAAoB;IAIpB,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;IACjE,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,MAAM,EAAE,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,4BAA4B,EAAE,CAAA;IACxF,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC/B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,EAAE,MAAM,EAAE,wCAAwC,MAAM,GAAG,EAAE,CAAA;QACtE,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,CAAA;AAC7D,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { RealtimeHub } from './hub.js';
|
|
2
|
+
import { RealtimeStore } from './store.js';
|
|
3
|
+
import type { RealtimeIdentity } from './hub.js';
|
|
4
|
+
import type { StreamingManifest } from './manifest.js';
|
|
5
|
+
import type { RealtimeTopic } from './protocol.js';
|
|
6
|
+
import type { RealtimePublisher } from './publisher.js';
|
|
7
|
+
import type { FieldWriter } from './writer.js';
|
|
8
|
+
export type MembershipReader = (identity: RealtimeIdentity, table: string, key: Readonly<Record<string, boolean | null | number | string>>) => Promise<{
|
|
9
|
+
readonly ownsGroup: boolean;
|
|
10
|
+
readonly authorized: boolean;
|
|
11
|
+
}>;
|
|
12
|
+
export type BrowserRealtimeOptions = {
|
|
13
|
+
readonly manifest: StreamingManifest;
|
|
14
|
+
readonly readMembership: MembershipReader;
|
|
15
|
+
readonly onError?: (message: string) => void;
|
|
16
|
+
};
|
|
17
|
+
export declare class BrowserRealtime {
|
|
18
|
+
#private;
|
|
19
|
+
constructor(options: BrowserRealtimeOptions);
|
|
20
|
+
get fields(): FieldWriter;
|
|
21
|
+
get publisher(): RealtimePublisher;
|
|
22
|
+
connect(port: MessagePort, identity: RealtimeIdentity): () => void;
|
|
23
|
+
revokeMembership(clientGroupID: string, removed: readonly RealtimeTopic[]): void;
|
|
24
|
+
flush(): void;
|
|
25
|
+
get hub(): RealtimeHub;
|
|
26
|
+
}
|
|
27
|
+
export declare function connectRealtimePort(port: MessagePort, options?: {
|
|
28
|
+
readonly staleAfterMs?: number;
|
|
29
|
+
readonly onError?: (message: string) => void;
|
|
30
|
+
}): {
|
|
31
|
+
readonly store: RealtimeStore;
|
|
32
|
+
readonly close: () => void;
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=message-port.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-port.d.ts","sourceRoot":"","sources":["../../src/realtime/message-port.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAGtC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE1C,OAAO,KAAK,EAGV,gBAAgB,EAEjB,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAEtD,OAAO,KAAK,EAAa,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAI9C,MAAM,MAAM,gBAAgB,GAAG,CAC7B,QAAQ,EAAE,gBAAgB,EAC1B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC,KAC5D,OAAO,CAAC;IAAE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAAC,CAAA;AAE3E,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAA;IACpC,QAAQ,CAAC,cAAc,EAAE,gBAAgB,CAAA;IACzC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAC7C,CAAA;AAED,qBAAa,eAAe;;gBAMd,OAAO,EAAE,sBAAsB;IAqC3C,IAAI,MAAM,IAAI,WAAW,CAExB;IAID,IAAI,SAAS,IAAI,iBAAiB,CAEjC;IAKD,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,gBAAgB,GAAG,MAAM,IAAI;IAqClE,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,aAAa,EAAE,GAAG,IAAI;IAIhF,KAAK,IAAI,IAAI;IAIb,IAAI,GAAG,IAAI,WAAW,CAErB;CACF;AAKD,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,WAAW,EACjB,OAAO,GAAE;IACP,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CACxC,GACL;IAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAA;CAAE,CAiC/D"}
|