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.
Files changed (71) hide show
  1. package/dist/browser/host.d.ts.map +1 -1
  2. package/dist/browser/host.js +8 -29
  3. package/dist/browser/host.js.map +1 -1
  4. package/dist/browser/types.d.ts +4 -2
  5. package/dist/browser/types.d.ts.map +1 -1
  6. package/dist/browser/types.js.map +1 -1
  7. package/dist/cf-do/application-sql.d.ts +24 -5
  8. package/dist/cf-do/application-sql.d.ts.map +1 -1
  9. package/dist/cf-do/application-sql.js +51 -43
  10. package/dist/cf-do/application-sql.js.map +1 -1
  11. package/dist/cf-do/worker.d.ts +74 -14
  12. package/dist/cf-do/worker.d.ts.map +1 -1
  13. package/dist/cf-do/worker.js +195 -92
  14. package/dist/cf-do/worker.js.map +1 -1
  15. package/dist/do-sql-tracking.d.ts +17 -0
  16. package/dist/do-sql-tracking.d.ts.map +1 -1
  17. package/dist/do-sql-tracking.js +17 -0
  18. package/dist/do-sql-tracking.js.map +1 -1
  19. package/dist/realtime/host.d.ts +7 -0
  20. package/dist/realtime/host.d.ts.map +1 -0
  21. package/dist/realtime/host.js +77 -0
  22. package/dist/realtime/host.js.map +1 -0
  23. package/dist/realtime/hub.d.ts +10 -5
  24. package/dist/realtime/hub.d.ts.map +1 -1
  25. package/dist/realtime/hub.js +133 -53
  26. package/dist/realtime/hub.js.map +1 -1
  27. package/dist/realtime/index.d.ts +15 -2
  28. package/dist/realtime/index.d.ts.map +1 -1
  29. package/dist/realtime/index.js +12 -0
  30. package/dist/realtime/index.js.map +1 -1
  31. package/dist/realtime/local.d.ts +15 -0
  32. package/dist/realtime/local.d.ts.map +1 -0
  33. package/dist/realtime/local.js +63 -0
  34. package/dist/realtime/local.js.map +1 -0
  35. package/dist/realtime/manifest.d.ts +5 -1
  36. package/dist/realtime/manifest.d.ts.map +1 -1
  37. package/dist/realtime/manifest.js +1 -1
  38. package/dist/realtime/manifest.js.map +1 -1
  39. package/dist/realtime/message-port.d.ts +34 -0
  40. package/dist/realtime/message-port.d.ts.map +1 -0
  41. package/dist/realtime/message-port.js +141 -0
  42. package/dist/realtime/message-port.js.map +1 -0
  43. package/dist/realtime/producer-socket.d.ts +10 -0
  44. package/dist/realtime/producer-socket.d.ts.map +1 -0
  45. package/dist/realtime/producer-socket.js +90 -0
  46. package/dist/realtime/producer-socket.js.map +1 -0
  47. package/dist/realtime/producer.d.ts +16 -0
  48. package/dist/realtime/producer.d.ts.map +1 -0
  49. package/dist/realtime/producer.js +51 -0
  50. package/dist/realtime/producer.js.map +1 -0
  51. package/dist/realtime/protocol.d.ts +38 -2
  52. package/dist/realtime/protocol.d.ts.map +1 -1
  53. package/dist/realtime/protocol.js +34 -0
  54. package/dist/realtime/protocol.js.map +1 -1
  55. package/dist/realtime/publisher.d.ts +1 -0
  56. package/dist/realtime/publisher.d.ts.map +1 -1
  57. package/dist/realtime/publisher.js +29 -1
  58. package/dist/realtime/publisher.js.map +1 -1
  59. package/dist/realtime/socket-host.d.ts +25 -0
  60. package/dist/realtime/socket-host.d.ts.map +1 -0
  61. package/dist/realtime/socket-host.js +95 -0
  62. package/dist/realtime/socket-host.js.map +1 -0
  63. package/dist/realtime/store.d.ts +4 -4
  64. package/dist/realtime/store.d.ts.map +1 -1
  65. package/dist/realtime/store.js +0 -0
  66. package/dist/realtime/store.js.map +1 -1
  67. package/dist/realtime/writer.d.ts +17 -0
  68. package/dist/realtime/writer.d.ts.map +1 -0
  69. package/dist/realtime/writer.js +138 -0
  70. package/dist/realtime/writer.js.map +1 -0
  71. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"hub.d.ts","sourceRoot":"","sources":["../../src/realtime/hub.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hub.d.ts","sourceRoot":"","sources":["../../src/realtime/hub.ts"],"names":[],"mappings":"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"}
@@ -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 -> the one generation it leases. One producer socket carries
32
- // one generation, so the socket closing is what releases the lease.
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
- #cancelFlush;
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
- const timer = setTimeout(flush, ms);
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 && !generation.superseded) {
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.#producerGenerations.delete(previous.producer.id);
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.set(producer.id, id);
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. Returns
223
- // false when the frame was rejected, which the adapter turns into a producer
224
- // error rather than silently dropping.
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
- // Only the unsuperseded producer holding this generation may publish. A
230
- // subscriber socket is never a producer, so a leaked streamID grants
231
- // nothing: the check is on the producer handle, not the frame contents.
232
- if (generation.superseded)
233
- return false;
234
- if (generation.producer?.id !== producer.id)
235
- return false;
236
- if (generation.streamID !== update.streamID)
237
- return false;
238
- if (update.seq <= generation.seq)
239
- return false;
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 false;
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 false;
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 false;
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.#producerGenerations.delete(producer.id);
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 topicID = this.#producerGenerations.get(producerID);
342
+ const leases = this.#producerGenerations.get(producerID);
274
343
  this.#producerGenerations.delete(producerID);
275
- if (!topicID)
344
+ if (!leases)
276
345
  return;
277
- const generation = this.#generations.get(topicID);
278
- if (generation?.producer?.id === producerID)
279
- this.#generations.delete(topicID);
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
- if (!this.#cancelFlush) {
300
- this.#cancelFlush = this.#schedule(() => this.flush(), this.#limits.batchWindowMs);
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.#cancelFlush = undefined;
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 && !this.#cancelFlush) {
334
- this.#cancelFlush = this.#schedule(() => this.flush(), this.#limits.batchWindowMs);
335
- }
414
+ if (requeued)
415
+ this.#scheduleFlush();
336
416
  }
337
417
  // ---- introspection for adapters and tests -------------------------------
338
418
  get activeTopics() {
@@ -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":"AAAA,qEAAqE;AACrE,0EAA0E;AAC1E,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,kEAAkE;AAClE,EAAE;AACF,8EAA8E;AAC9E,gFAAgF;AAChF,8EAA8E;AAC9E,+EAA+E;AAC/E,kCAAkC;AAElC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAuC5C,MAAM,CAAC,MAAM,kBAAkB,GAAc;IAC3C,sBAAsB,EAAE,GAAG;IAC3B,sBAAsB,EAAE,GAAG;IAC3B,qBAAqB,EAAE,IAAI;IAC3B,aAAa,EAAE,GAAG,GAAG,IAAI;IACzB,aAAa,EAAE,EAAE;CAClB,CAAA;AA6BD,MAAM,OAAO,WAAW;IACb,SAAS,CAAmB;IAC5B,UAAU,CAAkC;IAC5C,OAAO,CAAW;IAClB,SAAS,CAAyC;IAElD,YAAY,GAAG,IAAI,GAAG,EAAsB,CAAA;IAC5C,YAAY,GAAG,IAAI,GAAG,EAA8B,CAAA;IACpD,iBAAiB,GAAG,IAAI,GAAG,EAAuB,CAAA;IAClD,YAAY,GAAG,IAAI,GAAG,EAAyB,CAAA;IACxD,6EAA6E;IAC7E,2EAA2E;IAC3E,mEAAmE;IAC1D,oBAAoB,GAAG,IAAI,GAAG,EAAuB,CAAA;IAE9D,gEAAgE;IACvD,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAA;IACnD,eAAe,GAAG,KAAK,CAAA;IAEvB,4EAA4E;IAC5E,mEAAmE;IACnE,8EAA8E;IAC9E,mEAAmE;IAC1D,gBAAgB,GAAG,IAAI,GAAG,EAAyB,CAAA;IAE5D,0EAA0E;IAC1E,4EAA4E;IAC5E,wEAAwE;IACxE,6DAA6D;IACpD,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAA;IAErD,YAAY,OAAmB;QAC7B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAA;QACjC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAA;QAC5C,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,kBAAkB,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAA;QAC3D,IAAI,CAAC,SAAS;YACZ,OAAO,CAAC,aAAa;gBACrB,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;oBACb,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;gBACvB,CAAC,CAAC,CAAA;IACN,CAAC;IAED,4EAA4E;IAE5E,2EAA2E;IAC3E,0EAA0E;IAC1E,mCAAmC;IACnC,SAAS,CAAC,UAAyB,EAAE,KAAoB;QACvD,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;QAC3D,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;IACtF,CAAC;IAED,WAAW,CAAC,UAAyB,EAAE,KAAoB;QACzD,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE;YACvC,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;YACpD,IAAI,QAAQ,IAAI,QAAQ;gBAAE,OAAM;YAChC,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;QACtD,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,QAAQ,CAAC,YAAoB,EAAE,IAAgC;QAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAA;QAC7E,6DAA6D;QAC7D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAChD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;QAC7C,OAAO,IAAI,CAAA;IACb,CAAC;IAED,UAAU,CAAC,YAAoB,EAAE,KAAa;QAC5C,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,CAAA;IACjE,CAAC;IAED,KAAK,CAAC,UAAU,CACd,UAAyB,EACzB,KAAoB,EACpB,KAAa;QAEb,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC;YAAE,OAAM;QAClD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,CAAC,CAAA;QAChD,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;QACpD,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;YACzB,UAAU,CAAC,IAAI,CAAC;gBACd,iBAAiB;gBACjB,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE;aACpD,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAA;QAE7B,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,IAAI,GAAG,EAAU,CAAA;QAC5E,0DAA0D;QAC1D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACnB,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC;gBACtD,UAAU,CAAC,IAAI,CAAC;oBACd,iBAAiB;oBACjB,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,yCAAyC,EAAE;iBACjE,CAAC,CAAA;gBACF,OAAM;YACR,CAAC;YACD,IACE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAC5D,CAAC;gBACD,UAAU,CAAC,IAAI,CAAC;oBACd,iBAAiB;oBACjB,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,wCAAwC,EAAE;iBAChE,CAAC,CAAA;gBACF,OAAM;YACR,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAC1C,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC;gBACrE,UAAU,CAAC,IAAI,CAAC;oBACd,iBAAiB;oBACjB,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,kCAAkC,EAAE;iBAC1D,CAAC,CAAA;gBACF,OAAM;YACR,CAAC;QACH,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;QAC7E,wDAAwD;QACxD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC;YAAE,OAAM;QAClD,IAAI,aAAa,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACtC,UAAU,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;YACjF,OAAM;QACR,CAAC;QAED,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACb,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QAChD,IAAI,aAAa,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACtC,IAAI,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAC3C,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,WAAW,GAAG,IAAI,GAAG,EAAE,CAAA;gBACvB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,CAAA;YACxC,CAAC;YACD,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QAC7B,CAAC;QAED,UAAU,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QAE5E,4EAA4E;QAC5E,mEAAmE;QACnE,wEAAwE;QACxE,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC5C,IAAI,aAAa,CAAC,MAAM,KAAK,QAAQ,IAAI,UAAU,EAAE,CAAC;YACpD,UAAU,CAAC,IAAI,CAAC;gBACd,OAAO;gBACP;oBACE,OAAO,EAAE;wBACP;4BACE,KAAK,EAAE,EAAE;4BACT,QAAQ,EAAE,UAAU,CAAC,QAAQ;4BAC7B,GAAG,EAAE,UAAU,CAAC,GAAG;4BACnB,EAAE,EAAE,UAAU;4BACd,KAAK,EAAE,UAAU,CAAC,KAAK;yBACxB;qBACF;iBACF;aACF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,cAAc,CAAC,YAAoB;QACjC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CACvB,YAAY,EACZ,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CACnD,CAAA;QACD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QAC1C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;YACrE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;gBACrD,IAAI,UAAU,CAAC,EAAE,KAAK,YAAY;oBAChC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YACtD,CAAC,CAAC,CAAA;YACF,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,KAAK,CAAC;gBAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACnF,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QAC3C,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QACtC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IACnC,CAAC;IAED,mBAAmB,CAAC,YAAoB,EAAE,OAAe;QACvD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QACzD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAClD,IAAI,CAAC,WAAW;YAAE,OAAM;QACxB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,IAAI,UAAU,CAAC,EAAE,KAAK,YAAY;gBAAE,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QACpE,CAAC;QACD,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC;YAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC/D,CAAC;IAED,4EAA4E;IAC5E,8EAA8E;IAC9E,oEAAoE;IACpE,gBAAgB,CAAC,aAAqB,EAAE,OAAiC;QACvE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;YACpD,IAAI,QAAQ,IAAI,QAAQ;gBAAE,SAAQ;YAClC,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;YACtD,IAAI,CAAC,WAAW;gBAAE,SAAQ;YAC1B,KAAK,MAAM,UAAU,IAAI,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC;gBAC1C,IAAI,UAAU,CAAC,QAAQ,CAAC,aAAa,KAAK,aAAa;oBAAE,SAAQ;gBACjE,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;gBACpD,UAAU,CAAC,IAAI,CAAC;oBACd,iBAAiB;oBACjB,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,2CAA2C,EAAE;iBAC5E,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,+DAA+D;IAC/D,iBAAiB,CAAC,aAAqB;QACrC,KAAK,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YAC5D,KAAK,MAAM,UAAU,IAAI,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC;gBAC1C,IAAI,UAAU,CAAC,QAAQ,CAAC,aAAa,KAAK,aAAa;oBAAE,SAAQ;gBACjE,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;gBAChD,UAAU,CAAC,IAAI,CAAC;oBACd,iBAAiB;oBACjB,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,2CAA2C,EAAE;iBACxE,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,4EAA4E;IAE5E,2EAA2E;IAC3E,0EAA0E;IAC1E,wEAAwE;IACxE,0CAA0C;IAC1C,eAAe,CACb,QAAqB,EACrB,KAAoB,EACpB,QAAgB;QAIhB,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;QACpD,IAAI,QAAQ,IAAI,QAAQ;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAA;QACvE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAA;QAE7B,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC1C,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC/C,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACtB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;gBAC5C,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;YACpF,CAAC;QACH,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE;YACxB,OAAO,EAAE,EAAE;YACX,IAAI;YACJ,QAAQ;YACR,GAAG,EAAE,CAAC,CAAC;YACP,KAAK,EAAE,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;YACzC,QAAQ;SACT,CAAC,CAAA;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QACzD,IAAI,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;;YACrB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC9D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;IAClC,CAAC;IAED,wEAAwE;IACxE,4EAA4E;IAC5E,+EAA+E;IAC/E,0EAA0E;IAC1E,OAAO,CACL,QAAqB,EACrB,MAAmB;QAEnB,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACtD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,2BAA2B,MAAM,CAAC,KAAK,GAAG,EAAE,CAAA;QAC1E,CAAC;QACD,sEAAsE;QACtE,6EAA6E;QAC7E,6EAA6E;QAC7E,6EAA6E;QAC7E,0EAA0E;QAC1E,IAAI,UAAU,CAAC,QAAQ,EAAE,EAAE,KAAK,QAAQ,CAAC,EAAE,EAAE,CAAC;YAC5C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,2BAA2B,MAAM,CAAC,KAAK,GAAG,EAAE,CAAA;QAC1E,CAAC;QACD,IAAI,UAAU,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC5C,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,UAAU,MAAM,CAAC,QAAQ,uCAAuC,MAAM,CAAC,KAAK,GAAG;aACxF,CAAA;QACH,CAAC;QACD,IAAI,MAAM,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG,EAAE,CAAC;YACjC,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,OAAO,MAAM,CAAC,GAAG,oCAAoC,UAAU,CAAC,GAAG,EAAE;aAC9E,CAAA;QACH,CAAC;QAED,QAAQ,MAAM,CAAC,EAAE,EAAE,CAAC;YAClB,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;oBACnD,OAAO;wBACL,EAAE,EAAE,KAAK;wBACT,MAAM,EAAE,yCAAyC,MAAM,CAAC,KAAK,GAAG;qBACjE,CAAA;gBACH,CAAC;gBACD,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;gBAC/B,MAAK;YACP,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACtC,OAAO;wBACL,EAAE,EAAE,KAAK;wBACT,MAAM,EAAE,IAAI,MAAM,CAAC,KAAK,wCAAwC;qBACjE,CAAA;gBACH,CAAC;gBACD,MAAM,IAAI,GAAI,UAAU,CAAC,KAAgB,GAAG,MAAM,CAAC,IAAI,CAAA;gBACvD,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAChD,OAAO;wBACL,EAAE,EAAE,KAAK;wBACT,MAAM,EAAE,qCAAqC,MAAM,CAAC,KAAK,GAAG;qBAC7D,CAAA;gBACH,CAAC;gBACD,UAAU,CAAC,KAAK,GAAG,IAAI,CAAA;gBACvB,MAAK;YACP,CAAC;YACD,KAAK,KAAK,CAAC;YACX,KAAK,OAAO;gBACV,MAAK;QACT,CAAC;QACD,UAAU,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAA;QAC3B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAEpB,IAAI,MAAM,CAAC,EAAE,KAAK,KAAK,IAAI,MAAM,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC;YACjD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACtC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QAC/C,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;IACrB,CAAC;IAED,aAAa,CAAC,UAAkB,EAAE,OAAe;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QACxD,IAAI,CAAC,MAAM;YAAE,OAAM;QACnB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACtB,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;YAAE,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACrE,CAAC;IAED,wEAAwE;IACxE,yEAAyE;IACzE,2EAA2E;IAC3E,iEAAiE;IACjE,YAAY,CAAC,UAAkB;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QACxD,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAC5C,IAAI,CAAC,MAAM;YAAE,OAAM;QACnB,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACjD,IAAI,UAAU,EAAE,QAAQ,EAAE,EAAE,KAAK,UAAU;gBAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAChF,CAAC;IACH,CAAC;IAED,SAAS,CAAC,IAAwB,EAAE,KAAc;QAChD,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAA;QACrE,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAA;QACxD,OAAO,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAA;IAC5D,CAAC;IAED,OAAO,CAAC,MAAmB;QACzB,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACvD,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC;YAAE,OAAM;QAClD,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;YAC7C,IAAI,KAAK;gBAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;;gBACxB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;QAChD,CAAC;QACD,IAAI,CAAC,cAAc,EAAE,CAAA;IACvB,CAAC;IAED,2EAA2E;IAC3E,8EAA8E;IAC9E,yEAAyE;IACzE,0EAA0E;IAC1E,2EAA2E;IAC3E,8EAA8E;IAC9E,cAAc;QACZ,IAAI,IAAI,CAAC,eAAe;YAAE,OAAM;QAChC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;QAC3B,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;IAChE,CAAC;IAED,6EAA6E;IAC7E,+BAA+B;IAC/B,KAAK;QACH,IAAI,CAAC,eAAe,GAAG,KAAK,CAAA;QAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;YAAE,OAAM;QACnC,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAA;QAChC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;QACpB,IAAI,QAAQ,GAAG,KAAK,CAAA;QACpB,KAAK,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,MAAM,EAAE,CAAC;YAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;YACtD,IAAI,CAAC,UAAU;gBAAE,SAAQ;YACzB,yEAAyE;YACzE,uEAAuE;YACvE,IAAI,KAAK,GAAG,CAAC,CAAA;YACb,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,CAAA;YACxB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;gBACpD,KAAK,IAAI,WAAW,CAAC,OAAO,CAAC,KAAK,CAAE,CAAC,CAAA;gBACrC,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;oBACpD,GAAG,GAAG,KAAK,CAAA;oBACX,MAAK;gBACP,CAAC;YACH,CAAC;YACD,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;YAC9D,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;gBACzB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;gBAClD,QAAQ,GAAG,IAAI,CAAA;YACjB,CAAC;QACH,CAAC;QACD,IAAI,QAAQ;YAAE,IAAI,CAAC,cAAc,EAAE,CAAA;IACrC,CAAC;IAED,4EAA4E;IAE5E,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAA;IAC/B,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAA;IAC/B,CAAC;IAED,aAAa,CACX,OAAe;QAEf,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACjD,OAAO,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IACxF,CAAC;CACF;AAED,SAAS,QAAQ,CAAC,KAAoB;IACpC,OAAO,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,CAAA;AACxC,CAAC;AAED,SAAS,WAAW,CAAC,MAAmB;IACtC,IAAI,MAAM,CAAC,EAAE,KAAK,QAAQ;QAAE,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;IAC/D,IAAI,MAAM,CAAC,EAAE,KAAK,UAAU;QAAE,OAAO,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAA;IACnF,OAAO,EAAE,CAAA;AACX,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QACpC,IAAI,IAAI,GAAG,IAAI;YAAE,KAAK,IAAI,CAAC,CAAA;aACtB,IAAI,IAAI,GAAG,KAAK;YAAE,KAAK,IAAI,CAAC,CAAA;aAC5B,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,GAAG,MAAM,EAAE,CAAC;YACzC,KAAK,IAAI,CAAC,CAAA;YACV,KAAK,EAAE,CAAA;QACT,CAAC;;YAAM,KAAK,IAAI,CAAC,CAAA;IACnB,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -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"}
@@ -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;AAWnE,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,WAAW,EACX,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,eAAe,GAChB,MAAM,eAAe,CAAA;AAStB,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,wEAAwE;AACxE,+EAA+E"}
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 StreamingFieldRef<Key, Value> = ((key: Key) => RealtimeTopic) & {
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,aAAa,CAAC,GAAG;IAC1E,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"}
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":"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"}
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"}