camusdb 0.1.1 → 0.2.1

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 (44) hide show
  1. package/README.md +94 -0
  2. package/dist/client.d.ts +25 -0
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +28 -0
  5. package/dist/client.js.map +1 -1
  6. package/dist/column-storage.d.ts +70 -0
  7. package/dist/column-storage.d.ts.map +1 -0
  8. package/dist/column-storage.js +79 -0
  9. package/dist/column-storage.js.map +1 -0
  10. package/dist/config.d.ts +29 -0
  11. package/dist/config.d.ts.map +1 -1
  12. package/dist/config.js +15 -0
  13. package/dist/config.js.map +1 -1
  14. package/dist/error-codes.d.ts +18 -2
  15. package/dist/error-codes.d.ts.map +1 -1
  16. package/dist/error-codes.js +18 -2
  17. package/dist/error-codes.js.map +1 -1
  18. package/dist/index.d.ts +1 -0
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +1 -0
  21. package/dist/index.js.map +1 -1
  22. package/dist/runtime.js +2 -0
  23. package/dist/runtime.js.map +1 -1
  24. package/dist/transport/grpc/batch-frames.d.ts +61 -0
  25. package/dist/transport/grpc/batch-frames.d.ts.map +1 -0
  26. package/dist/transport/grpc/batch-frames.js +103 -0
  27. package/dist/transport/grpc/batch-frames.js.map +1 -0
  28. package/dist/transport/grpc/batcher.d.ts +132 -3
  29. package/dist/transport/grpc/batcher.d.ts.map +1 -1
  30. package/dist/transport/grpc/batcher.js +389 -30
  31. package/dist/transport/grpc/batcher.js.map +1 -1
  32. package/dist/transport/grpc/grpc-transport.d.ts +5 -0
  33. package/dist/transport/grpc/grpc-transport.d.ts.map +1 -1
  34. package/dist/transport/grpc/grpc-transport.js +47 -5
  35. package/dist/transport/grpc/grpc-transport.js.map +1 -1
  36. package/dist/transport/grpc/messages.d.ts +18 -2
  37. package/dist/transport/grpc/messages.d.ts.map +1 -1
  38. package/dist/transport/grpc/messages.js +6 -0
  39. package/dist/transport/grpc/messages.js.map +1 -1
  40. package/dist/transport/grpc/proto.d.ts +1 -1
  41. package/dist/transport/grpc/proto.d.ts.map +1 -1
  42. package/dist/transport/grpc/proto.js.map +1 -1
  43. package/package.json +1 -1
  44. package/proto/camus_sql.proto +39 -2
@@ -7,6 +7,7 @@
7
7
  import { CamusError } from '../../errors.js';
8
8
  import { CamusErrorCode } from '../../error-codes.js';
9
9
  import { sanitizeErrorText } from '../error-text.js';
10
+ import { FRAME_MAX_BYTES, FRAME_MAX_ITEMS, frameCost } from './batch-frames.js';
10
11
  import { decodeCacheMetadata, decodeRoutingAdvice, fromWire } from './codec.js';
11
12
  import { GrpcBatchStatementKind } from './messages.js';
12
13
  export const EMPTY_CAUSAL_TOKEN = Object.freeze({ n: 0, l: 0n, c: 0n });
@@ -30,27 +31,76 @@ export class PreparedStatementStaleError extends Error {
30
31
  * share a transaction go to one stream, in arrival order, so the server sees them in the order the
31
32
  * caller wrote them; autocommit statements are free to use any stream.
32
33
  *
34
+ * Operations that wait together travel together. The pump writes the operations it drained for one
35
+ * stream as a single stream message — a frame — when that stream's server announced that it reads
36
+ * one, and it reads a response frame at any time. A frame never waits: it packs only the
37
+ * operations that already sit in the inbox, and a lone operation stays the plain single message it
38
+ * always was. It is a transport optimization alone. It gives no atomicity and no ordering that the
39
+ * stream does not already give.
40
+ *
33
41
  * A stream that faults is rebuilt by the next write, and every operation that was in flight on the
34
42
  * old one is failed so its caller can decide whether to replay it. Prepared statements are scoped
35
43
  * to the stream that registered them, and a handle from a stream that is gone is refused at the
36
44
  * last moment before it would be written.
45
+ *
46
+ * A stream is rotated when the credential it opened under is superseded. A stream presents its
47
+ * bearer token once, in its opening metadata, and then outlives it: the provider renews the token
48
+ * every few minutes, and the stream is meant to last a session. Whether the server tolerates that
49
+ * is the server's decision, and a server that re-checks the opening token per operation ends the
50
+ * stream at that token's expiry, with every transaction on it. The client does not rely on it.
51
+ *
52
+ * When the next unbound operation of a slot finds the credential changed, the slot opens a fresh
53
+ * stream under the new token, and the old one is retired. A retired stream takes no new work. It
54
+ * keeps serving the transactions that began on it, because a transaction cannot change streams,
55
+ * and the server rolls a transaction back when its stream closes. It is closed as soon as the last
56
+ * of them ends, or after `streamDrainTimeoutMs`. Rotation happens on the write path, so an idle
57
+ * client rotates on its first operation after the renewal, before that operation is sent.
37
58
  */
38
59
  export class GrpcBatcher {
39
60
  options;
40
61
  streamFactory;
62
+ /**
63
+ * Reports the credential a stream opened now would carry, which in practice is the current
64
+ * bearer token. It is compared, never inspected: a value that differs from the one a stream
65
+ * opened under is what retires that stream. Undefined means that a stream carries no credential
66
+ * that can change, and that nothing is ever rotated.
67
+ */
68
+ credentialStamp;
41
69
  slots;
42
70
  pending = new Map();
71
+ /**
72
+ * The stream each open transaction began on, by handle. An entry is written when a start is
73
+ * answered, and removed when the server answers the commit or the rollback, or when that stream
74
+ * ends. It is what lets a transaction keep its stream across a rotation of its slot.
75
+ */
76
+ openTransactions = new Map();
77
+ /**
78
+ * Retired streams that still drain, so disposal can reach them: a slot references its current
79
+ * stream alone.
80
+ */
81
+ retiring = new Set();
43
82
  requestIdSeq = 0;
44
83
  roundRobin = -1;
45
84
  transportIdSeq = 0;
46
85
  disposed = false;
47
- constructor(options, streamFactory) {
86
+ constructor(options, streamFactory, credentialStamp) {
48
87
  this.options = options;
49
88
  this.streamFactory = streamFactory;
89
+ this.credentialStamp = credentialStamp;
50
90
  const poolSize = Math.max(1, options.channelPoolSize);
51
91
  this.slots = new Array(poolSize);
52
92
  for (let i = 0; i < poolSize; i++) {
53
- this.slots[i] = { index: i, inbox: [], pumping: false, stream: undefined, prepared: new Map() };
93
+ this.slots[i] = {
94
+ index: i,
95
+ inbox: [],
96
+ run: [],
97
+ runLease: undefined,
98
+ runBytes: -1,
99
+ pumping: false,
100
+ scheduled: false,
101
+ current: undefined,
102
+ prepared: new Map(),
103
+ };
54
104
  }
55
105
  }
56
106
  /** Reserves a stream for a transaction, so all of its operations land in one ordering chain. */
@@ -96,7 +146,7 @@ export class GrpcBatcher {
96
146
  forget(slot, key, existing);
97
147
  continue;
98
148
  }
99
- if (entry.transportId === slot.stream?.id)
149
+ if (entry.transportId === slot.current?.stream.id)
100
150
  return entry;
101
151
  // The slot's stream was rebuilt since this was registered, so the handle died with it.
102
152
  forget(slot, key, existing);
@@ -171,8 +221,11 @@ export class GrpcBatcher {
171
221
  return new Promise((resolve, reject) => {
172
222
  const op = {
173
223
  requestId,
224
+ kind,
225
+ transaction: handleKey(request.txnHandle),
174
226
  settled: false,
175
227
  transportId: 0,
228
+ lease: undefined,
176
229
  resolve: (value) => resolve({ result: value, transportId: op.transportId }),
177
230
  reject,
178
231
  };
@@ -187,6 +240,23 @@ export class GrpcBatcher {
187
240
  }
188
241
  this.pending.set(requestId, op);
189
242
  slot.inbox.push({ request: { requestId, kind, request }, op, expectedTransportId });
243
+ this.schedule(slot);
244
+ });
245
+ }
246
+ /**
247
+ * Starts the slot's pump after the current turn, and not inside it.
248
+ *
249
+ * A caller that issues several statements at once — one `Promise.all` over six of them — queues
250
+ * them all in one synchronous turn. A pump that ran inside `enqueue` would write the first
251
+ * before the second was queued, and every operation would then travel alone. One microtask of
252
+ * delay costs no round trip, and it lets the operations that were issued together share a frame.
253
+ */
254
+ schedule(slot) {
255
+ if (slot.pumping || slot.scheduled)
256
+ return;
257
+ slot.scheduled = true;
258
+ queueMicrotask(() => {
259
+ slot.scheduled = false;
190
260
  void this.pump(slot);
191
261
  });
192
262
  }
@@ -206,14 +276,16 @@ export class GrpcBatcher {
206
276
  const item = slot.inbox.shift();
207
277
  if (item === undefined)
208
278
  break;
209
- this.writeItem(slot, item);
279
+ this.stage(slot, item);
210
280
  drained++;
211
281
  }
282
+ this.flush(slot);
212
283
  // Coalescing: after writing a small burst, pause briefly so more operations accumulate
213
284
  // before the next drain writes them together. It applies only after a drain of two or
214
285
  // more. A one-item drain is a request-and-reply exchange — one caller, whose next
215
- // statement cannot arrive until this one is answered — and sleeping there would add the
216
- // whole delay to every round trip while gaining nothing.
286
+ // statement cannot arrive until this one is answered — and a pause there would add the
287
+ // whole delay to every round trip for nothing. Operations that wait together already share
288
+ // a frame without any pause, so the pause only makes the next frame fuller.
217
289
  if (drained >= 2 &&
218
290
  this.options.coalescingThreshold > 1 &&
219
291
  drained < this.options.coalescingThreshold &&
@@ -224,6 +296,15 @@ export class GrpcBatcher {
224
296
  return;
225
297
  }
226
298
  }
299
+ catch (error) {
300
+ // Staging and flushing report their own failures per operation, so this is not expected. An
301
+ // item left in the run would otherwise wait for an answer to a message nothing ever wrote.
302
+ const failure = toError(error);
303
+ for (const item of slot.run.splice(0))
304
+ this.fault(item.op, failure);
305
+ slot.runLease = undefined;
306
+ slot.runBytes = -1;
307
+ }
227
308
  finally {
228
309
  slot.pumping = false;
229
310
  // An item queued while the pump was finishing must not be left waiting for the next caller.
@@ -231,40 +312,280 @@ export class GrpcBatcher {
231
312
  void this.pump(slot);
232
313
  }
233
314
  }
234
- writeItem(slot, item) {
315
+ /**
316
+ * Prepares one operation for the wire, then either writes it alone or adds it to the slot's run.
317
+ *
318
+ * A run is the set of operations that will share the next stream message. It holds consecutive
319
+ * operations bound for one stream. The operations of one drain can belong to different streams,
320
+ * so an operation for another stream flushes the run first. Operations are never reordered to
321
+ * fill a frame: the server chains the operations of a transaction by arrival order, and inbox
322
+ * order is the only order the callers gave.
323
+ */
324
+ stage(slot, item) {
325
+ // Cancelled while it sat in the inbox: it holds nothing yet, so it is simply left out.
326
+ if (!this.mustStillBeWritten(item))
327
+ return;
328
+ let lease;
235
329
  try {
236
- const stream = slot.stream ?? this.reconnect(slot);
330
+ lease = this.route(slot, item.op);
237
331
  // A prepared execution names a handle that exists only on the stream that registered it.
238
332
  // This is the last moment the two can be compared — check any earlier and the stream could
239
333
  // still be rebuilt in between — so refuse here rather than send an operation the server can
240
334
  // only answer with "unknown statement".
241
- if (item.expectedTransportId !== undefined && stream.id !== item.expectedTransportId) {
335
+ if (item.expectedTransportId !== undefined && lease.stream.id !== item.expectedTransportId) {
242
336
  throw new PreparedStatementStaleError();
243
337
  }
244
- item.op.transportId = stream.id;
245
- stream.send(item.request);
338
+ item.op.transportId = lease.stream.id;
339
+ // The hold this operation keeps on its stream, so a retired stream is not closed under it.
340
+ lease.inFlight++;
341
+ item.op.lease = lease;
246
342
  }
247
343
  catch (error) {
248
- this.fault(item.op, error instanceof Error ? error : new Error(String(error)));
344
+ this.fault(item.op, toError(error));
345
+ return;
249
346
  }
347
+ // A frame goes only to a server that announced one on this very stream. The announcement is
348
+ // read, never awaited: until it arrives, and for good against a server that makes none, every
349
+ // operation is its own message.
350
+ const framed = this.options.requestFrames && lease.stream.framesAnnounced;
351
+ if (slot.run.length > 0 && (!framed || slot.runLease !== lease))
352
+ this.flush(slot);
353
+ if (!framed) {
354
+ this.send(lease.stream, item.request, item.op);
355
+ return;
356
+ }
357
+ if (slot.run.length === 0) {
358
+ // A lone operation is never measured. It travels as the plain message whatever its size.
359
+ slot.run.push(item);
360
+ slot.runLease = lease;
361
+ slot.runBytes = -1;
362
+ return;
363
+ }
364
+ if (slot.runBytes < 0)
365
+ slot.runBytes = frameCost(slot.run[0].request);
366
+ const cost = frameCost(item.request);
367
+ // Both limits are the sender's duty, and the byte budget most of all. A message over the limit
368
+ // of the transport is refused before the server parses it, which resets the stream that every
369
+ // other operation shares. An operation over the budget ends up alone in its run, and so travels
370
+ // as a single message.
371
+ if (slot.run.length >= FRAME_MAX_ITEMS || slot.runBytes + cost > FRAME_MAX_BYTES) {
372
+ this.flush(slot);
373
+ slot.run.push(item);
374
+ slot.runLease = lease;
375
+ slot.runBytes = cost;
376
+ return;
377
+ }
378
+ slot.run.push(item);
379
+ slot.runBytes += cost;
250
380
  }
251
- reconnect(slot) {
381
+ /**
382
+ * Writes the slot's run: one frame, or the plain single message when one operation is left in
383
+ * it, so a quiet stream stays byte-identical to a stream without frames.
384
+ *
385
+ * A frame is never resent. A frame whose write failed may or may not have reached the server,
386
+ * which is true of every operation in it, so every one of them faults with the transport error.
387
+ * The retry contract above the batcher then decides, exactly as it does for the operations of a
388
+ * stream that faulted.
389
+ */
390
+ flush(slot) {
391
+ const run = slot.run.splice(0);
392
+ const lease = slot.runLease;
393
+ slot.runLease = undefined;
394
+ slot.runBytes = -1;
395
+ if (run.length === 0 || lease === undefined)
396
+ return;
397
+ // Cancelled since it was staged: nothing awaits an answer, so leave it out.
398
+ const items = run.filter((item) => this.mustStillBeWritten(item)).map((item) => item.request);
399
+ if (items.length === 0)
400
+ return;
401
+ try {
402
+ if (items.length === 1) {
403
+ lease.stream.send(items[0]);
404
+ return;
405
+ }
406
+ lease.stream.send({ requestId: 0, kind: GrpcBatchStatementKind.Frame, items });
407
+ }
408
+ catch (error) {
409
+ const failure = toError(error);
410
+ for (const item of run)
411
+ this.fault(item.op, failure);
412
+ }
413
+ }
414
+ send(stream, request, op) {
415
+ try {
416
+ stream.send(request);
417
+ }
418
+ catch (error) {
419
+ this.fault(op, toError(error));
420
+ }
421
+ }
422
+ /**
423
+ * False for an operation whose caller left — it was cancelled, or it timed out — before the
424
+ * operation was written. The server is never asked to run it.
425
+ *
426
+ * A rollback and a close are written whatever happens. Each one only releases what the server
427
+ * holds, which is a transaction's locks or a statement handle, and nothing else would.
428
+ */
429
+ mustStillBeWritten(item) {
430
+ const kind = item.request.kind;
431
+ return (kind === GrpcBatchStatementKind.Rollback ||
432
+ kind === GrpcBatchStatementKind.Close ||
433
+ this.pending.has(item.op.requestId));
434
+ }
435
+ /**
436
+ * The stream one operation belongs on.
437
+ *
438
+ * A transaction stays on the stream it began on, whatever the slot has moved to since. Anything
439
+ * else takes the slot's current stream, and that is where a credential change is noticed.
440
+ */
441
+ route(slot, op) {
442
+ if (op.transaction !== undefined && op.kind !== GrpcBatchStatementKind.Start) {
443
+ const home = this.openTransactions.get(op.transaction);
444
+ if (home !== undefined)
445
+ return home;
446
+ }
447
+ const current = slot.current;
448
+ if (current === undefined)
449
+ return this.connect(slot);
450
+ // An undefined stamp is "no token right now": one was invalidated and its replacement is not
451
+ // minted yet. That is no reason to trade a working stream for one opened with no credential.
452
+ const stamp = this.credentialStamp?.();
453
+ if (stamp !== undefined && stamp !== current.stamp) {
454
+ this.retire(current);
455
+ return this.connect(slot);
456
+ }
457
+ return current;
458
+ }
459
+ /**
460
+ * Opens a fresh stream for a slot and makes it the current one.
461
+ *
462
+ * The stamp is read before the factory reads the credential itself. If the credential is renewed
463
+ * in between, the stream is stamped older than it is, and it rotates once more than it needs to.
464
+ * Read afterwards, it could be stamped newer than it is, and would never rotate at all.
465
+ */
466
+ connect(slot) {
467
+ const stamp = this.credentialStamp?.();
252
468
  const stream = this.streamFactory(++this.transportIdSeq);
253
- slot.stream = stream;
469
+ const lease = {
470
+ slot,
471
+ stream,
472
+ stamp,
473
+ inFlight: 0,
474
+ openTransactions: 0,
475
+ retired: false,
476
+ closed: false,
477
+ drainTimer: undefined,
478
+ };
479
+ slot.current = lease;
254
480
  stream.listen({
255
481
  onMessage: (response) => this.demux(response),
256
- onClose: (error) => {
257
- // Only clear the slot when this stream is still the current one: a later reconnect must
258
- // not be undone by an older stream's close event.
259
- if (slot.stream === stream)
260
- slot.stream = undefined;
261
- this.failStreamPending(stream.id, error);
262
- },
482
+ onClose: (error) => this.close(lease, error),
263
483
  });
264
- return stream;
484
+ return lease;
485
+ }
486
+ /**
487
+ * Takes a stream out of rotation.
488
+ *
489
+ * It stays open for the transactions that began on it, and it closes when the last one ends — or
490
+ * after `streamDrainTimeoutMs`, because a transaction its caller abandoned would otherwise hold
491
+ * the stream, and its locks, open for good. Closing the stream is what makes the server roll
492
+ * such a transaction back.
493
+ */
494
+ retire(lease) {
495
+ lease.retired = true;
496
+ this.retiring.add(lease);
497
+ this.closeIfDrained(lease);
498
+ if (lease.closed)
499
+ return;
500
+ lease.drainTimer = setTimeout(() => this.close(lease), Math.max(0, this.options.streamDrainTimeoutMs));
501
+ lease.drainTimer.unref?.();
502
+ }
503
+ closeIfDrained(lease) {
504
+ if (lease.retired && lease.inFlight <= 0 && lease.openTransactions <= 0)
505
+ this.close(lease);
506
+ }
507
+ /**
508
+ * Closes a stream once, and forgets everything that was riding on it.
509
+ *
510
+ * It runs whichever end closes the stream first: this client, when a retired stream has drained,
511
+ * or the server, through the stream's own close event.
512
+ */
513
+ close(lease, error) {
514
+ if (lease.closed)
515
+ return;
516
+ lease.closed = true;
517
+ if (lease.drainTimer !== undefined) {
518
+ clearTimeout(lease.drainTimer);
519
+ lease.drainTimer = undefined;
520
+ }
521
+ // Only when it is still the slot's stream: a retired one was replaced long before it ended.
522
+ if (lease.slot.current === lease)
523
+ lease.slot.current = undefined;
524
+ this.retiring.delete(lease);
525
+ // The server rolls back a transaction whose stream closed, so none of these is open any more.
526
+ for (const [handle, home] of this.openTransactions) {
527
+ if (home === lease)
528
+ this.openTransactions.delete(handle);
529
+ }
530
+ try {
531
+ lease.stream.close();
532
+ }
533
+ catch {
534
+ // Best effort: the stream may already be broken.
535
+ }
536
+ this.failStreamPending(lease.stream.id, error ?? streamClosedError());
537
+ }
538
+ /** Drops an operation's hold on its stream, once however many paths race to do it. */
539
+ release(op) {
540
+ const lease = op.lease;
541
+ if (lease === undefined)
542
+ return;
543
+ op.lease = undefined;
544
+ lease.inFlight--;
545
+ if (lease.inFlight <= 0)
546
+ this.closeIfDrained(lease);
547
+ }
548
+ transactionBegan(handle, lease) {
549
+ // A handle is unique, so one is never counted twice.
550
+ if (lease === undefined || this.openTransactions.has(handle))
551
+ return;
552
+ this.openTransactions.set(handle, lease);
553
+ lease.openTransactions++;
554
+ }
555
+ transactionEnded(handle) {
556
+ if (handle === undefined)
557
+ return;
558
+ const lease = this.openTransactions.get(handle);
559
+ if (lease === undefined)
560
+ return;
561
+ this.openTransactions.delete(handle);
562
+ lease.openTransactions--;
563
+ if (lease.openTransactions <= 0)
564
+ this.closeIfDrained(lease);
565
+ }
566
+ /**
567
+ * True when a transaction began on a stream that was rotated out, and is finishing there.
568
+ *
569
+ * Such a transaction must not run prepared. A slot keeps one registration per statement, and
570
+ * that registration belongs to the slot's current stream, where this transaction does not write.
571
+ * To register the statement on the retired stream instead would evict the entry every autocommit
572
+ * caller is using, and the two would re-prepare against each other until the old stream closes.
573
+ * To run the statement inline is always correct, and the window is short.
574
+ */
575
+ isBoundToRetiredStream(txnIdPT, txnIdCounter) {
576
+ return this.openTransactions.get(transactionKey(txnIdPT, txnIdCounter))?.retired === true;
265
577
  }
266
578
  // ─── Demultiplex ──────────────────────────────────────────────────────────
267
579
  demux(response) {
580
+ // A response frame. Each item is handled exactly as if it had arrived alone, in order, so the
581
+ // messages of one request id keep theirs. A frame inside a frame is dropped, never followed.
582
+ if (response.payload === 'frame') {
583
+ for (const item of response.frame?.items ?? []) {
584
+ if (item.payload !== 'frame')
585
+ this.demux(item);
586
+ }
587
+ return;
588
+ }
268
589
  const op = this.pending.get(response.requestId);
269
590
  // Cancelled, timed out, or already settled. Drop it.
270
591
  if (op === undefined)
@@ -333,13 +654,33 @@ export class GrpcBatcher {
333
654
  complete(op, result) {
334
655
  if (!this.settle(op))
335
656
  return;
657
+ // Before the operation lets go of its stream: a start that was just answered is the only thing
658
+ // that holds a retired stream open until its transaction is on the books.
659
+ if (op.kind === GrpcBatchStatementKind.Start) {
660
+ const handle = result;
661
+ if (handle !== undefined)
662
+ this.transactionBegan(handleKey(handle), op.lease);
663
+ }
664
+ else if (this.finalizesTransaction(op)) {
665
+ this.transactionEnded(op.transaction);
666
+ }
667
+ this.release(op);
336
668
  op.resolve(result);
337
669
  }
338
670
  fault(op, error) {
339
671
  if (!this.settle(op))
340
672
  return;
673
+ // Only an answer from the server ends a transaction. A commit that timed out, or that its
674
+ // caller cancelled, may still be open there, and the rollback that usually follows it must
675
+ // find its stream.
676
+ if (CamusError.is(error) && this.finalizesTransaction(op))
677
+ this.transactionEnded(op.transaction);
678
+ this.release(op);
341
679
  op.reject(error);
342
680
  }
681
+ finalizesTransaction(op) {
682
+ return op.kind === GrpcBatchStatementKind.Commit || op.kind === GrpcBatchStatementKind.Rollback;
683
+ }
343
684
  settle(op) {
344
685
  if (op.settled)
345
686
  return false;
@@ -365,23 +706,41 @@ export class GrpcBatcher {
365
706
  if (this.disposed)
366
707
  return;
367
708
  this.disposed = true;
709
+ const leases = [...this.retiring];
368
710
  for (const slot of this.slots) {
369
- const stream = slot.stream;
370
- slot.stream = undefined;
711
+ if (slot.current !== undefined)
712
+ leases.push(slot.current);
713
+ slot.current = undefined;
371
714
  slot.inbox.length = 0;
372
- try {
373
- stream?.close();
374
- }
375
- catch {
376
- // Best effort: the stream may already be broken.
377
- }
715
+ slot.run.length = 0;
716
+ slot.runLease = undefined;
717
+ slot.runBytes = -1;
378
718
  }
379
719
  const closed = new CamusError(CamusErrorCode.Generic, 'This gRPC transport is closed.');
720
+ for (const lease of leases)
721
+ this.close(lease, closed);
722
+ this.retiring.clear();
723
+ this.openTransactions.clear();
380
724
  for (const op of [...this.pending.values()])
381
725
  this.fault(op, closed);
382
726
  await Promise.resolve();
383
727
  }
384
728
  }
729
+ /** The key one transaction is booked under. A handle is a pair, so both parts are in the key. */
730
+ function transactionKey(txnIdPT, txnIdCounter) {
731
+ return `${txnIdPT}:${txnIdCounter}`;
732
+ }
733
+ function handleKey(handle) {
734
+ return handle === null || handle === undefined
735
+ ? undefined
736
+ : transactionKey(handle.txnIdPt, handle.txnIdCounter);
737
+ }
738
+ function streamClosedError() {
739
+ return new CamusError(CamusErrorCode.Generic, 'The gRPC batch stream closed.');
740
+ }
741
+ function toError(error) {
742
+ return error instanceof Error ? error : new Error(String(error));
743
+ }
385
744
  function forget(slot, key, expected) {
386
745
  if (slot.prepared.get(key) === expected)
387
746
  slot.prepared.delete(key);
@@ -1 +1 @@
1
- {"version":3,"file":"batcher.js","sourceRoot":"","sources":["../../../src/transport/grpc/batcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batcher.js","sourceRoot":"","sources":["../../../src/transport/grpc/batcher.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAUhF,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAWvD,MAAM,CAAC,MAAM,kBAAkB,GAAqB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAyB1F;;;;GAIG;AACH,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IAClC,IAAI,GAAG,6BAA6B,CAAC;IAEvD;QACE,KAAK,CAAC,qFAAqF,CAAC,CAAC;IAC/F,CAAC;CACF;AAiID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,OAAO,WAAW;IACL,OAAO,CAAmB;IAE1B,aAAa,CAA8B;IAE5D;;;;;OAKG;IACc,eAAe,CAA8B;IAE7C,KAAK,CAAS;IAEd,OAAO,GAAG,IAAI,GAAG,EAAqB,CAAC;IAExD;;;;OAIG;IACc,gBAAgB,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEnE;;;OAGG;IACc,QAAQ,GAAG,IAAI,GAAG,EAAe,CAAC;IAE3C,YAAY,GAAG,CAAC,CAAC;IAEjB,UAAU,GAAG,CAAC,CAAC,CAAC;IAEhB,cAAc,GAAG,CAAC,CAAC;IAEnB,QAAQ,GAAG,KAAK,CAAC;IAEzB,YACE,OAAyB,EACzB,aAA0C,EAC1C,eAA+B;QAE/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QAEvC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAO,QAAQ,CAAC,CAAC;QAEvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;gBACd,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,EAAE;gBACT,GAAG,EAAE,EAAE;gBACP,QAAQ,EAAE,SAAS;gBACnB,QAAQ,EAAE,CAAC,CAAC;gBACZ,OAAO,EAAE,KAAK;gBACd,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,SAAS;gBAClB,QAAQ,EAAE,IAAI,GAAG,EAAE;aACpB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,gGAAgG;IAChG,WAAW;QACT,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;IAC/B,CAAC;IAED,6EAA6E;IAE7E,YAAY,CACV,OAAuB,EACvB,SAA6B,EAC7B,MAA+B,EAC/B,mBAA4B;QAE5B,OAAO,IAAI,CAAC,OAAO,CACjB,sBAAsB,CAAC,KAAK,EAC5B,OAAO,EACP,SAAS,EACT,MAAM,EACN,mBAAmB,CACpB,CAAC;IACJ,CAAC;IAED,eAAe,CACb,OAAuB,EACvB,SAA6B,EAC7B,MAA+B,EAC/B,mBAA4B;QAE5B,OAAO,IAAI,CAAC,OAAO,CACjB,sBAAsB,CAAC,QAAQ,EAC/B,OAAO,EACP,SAAS,EACT,MAAM,EACN,mBAAmB,CACpB,CAAC;IACJ,CAAC;IAED,YAAY,CACV,OAAuB,EACvB,SAAiB,EACjB,MAA+B;QAE/B,OAAO,IAAI,CAAC,OAAO,CAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC/F,CAAC;IAED,aAAa,CACX,OAAuB,EACvB,SAAiB,EACjB,MAA+B;QAE/B,OAAO,IAAI,CAAC,OAAO,CAAmB,sBAAsB,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACnG,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,OAAuB,EACvB,SAAiB,EACjB,MAA+B;QAE/B,MAAM,IAAI,CAAC,OAAO,CAAU,sBAAsB,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC3F,CAAC;IAED,6EAA6E;IAE7E;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAClB,SAAiB,EACjB,QAAgB,EAChB,GAAW,EACX,MAA+B;QAE/B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAE,CAAC;QACpC,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAExC,SAAS,CAAC;YACR,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAExC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,IAAI,KAAwB,CAAC;gBAE7B,IAAI,CAAC;oBACH,KAAK,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;gBACjC,CAAC;gBAAC,MAAM,CAAC;oBACP,uFAAuF;oBACvF,yEAAyE;oBACzE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;oBAC5B,SAAS;gBACX,CAAC;gBAED,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE;oBAAE,OAAO,KAAK,CAAC;gBAEhE,uFAAuF;gBACvF,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAC5B,SAAS;YACX,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YACxE,MAAM,YAAY,GAAyB,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;YAE5E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YAErC,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC;gBAE5B,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAC9B,OAAO,KAAK,CAAC;YACf,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;gBAChC,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAC5B,SAAiB,EACjB,QAAgB,EAChB,GAAW,EACX,MAA+B;QAE/B,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,cAAc,CACvD,sBAAsB,CAAC,OAAO,EAC9B,EAAE,QAAQ,EAAE,GAAG,EAAE,EACjB,SAAS,EACT,MAAM,EACN,SAAS,CACV,CAAC;QAEF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,cAAc,EAAE,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;IACtG,CAAC;IAED,kGAAkG;IAClG,kBAAkB,CAAC,SAAiB,EAAE,QAAgB,EAAE,GAAW,EAAE,KAAwB;QAC3F,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAE,CAAC;QACpC,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAExC,IACE,QAAQ,EAAE,QAAQ,EAAE,WAAW,KAAK,KAAK,CAAC,WAAW;YACrD,QAAQ,CAAC,QAAQ,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW,EACnD,CAAC;YACD,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,iGAAiG;IACjG,KAAK,CAAC,YAAY,CAChB,QAAgB,EAChB,GAAW;QAEX,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACxC,MAAM,KAAK,GAAsD,EAAE,CAAC;QAEpE,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5C,IAAI,YAAY,KAAK,SAAS;gBAAE,SAAS;YAEzC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAE1B,IAAI,CAAC;gBACH,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3E,CAAC;YAAC,MAAM,CAAC;gBACP,gEAAgE;YAClE,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,2EAA2E;IAC3E,KAAK,CAAC,aAAa,CACjB,SAAiB,EACjB,KAAwB,EACxB,MAA+B;QAE/B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAChB,sBAAsB,CAAC,KAAK,EAC5B,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,EAClC,SAAS,EACT,MAAM,EACN,KAAK,CAAC,WAAW,CAClB,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,mEAAmE;QACrE,CAAC;IACH,CAAC;IAED,6EAA6E;IAErE,KAAK,CAAC,OAAO,CACnB,IAA4B,EAC5B,OAAuB,EACvB,SAA6B,EAC7B,MAA+B,EAC/B,mBAA4B;QAE5B,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,cAAc,CAAI,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC;QACvG,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,cAAc,CACpB,IAA4B,EAC5B,OAAuB,EACvB,SAA6B,EAC7B,MAA+B,EAC/B,mBAAuC;QAEvC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,cAAc,CAAC,OAAO,EAAE,gCAAgC,CAAC,CAAC,CAAC;QAClG,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,cAAc,EAAE,CAAE,CAAC;QAC7D,MAAM,SAAS,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC;QAEtC,OAAO,IAAI,OAAO,CAAqC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACzE,MAAM,EAAE,GAAc;gBACpB,SAAS;gBACT,IAAI;gBACJ,WAAW,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC;gBACzC,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE,CAAC;gBACd,KAAK,EAAE,SAAS;gBAChB,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAU,EAAE,WAAW,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC;gBAChF,MAAM;aACP,CAAC;YAEF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,MAAM,CAAC,MAAM,CAAC,MAAe,CAAC,CAAC;oBAC/B,OAAO;gBACT,CAAC;gBAED,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;gBACnB,EAAE,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,MAAe,CAAC,CAAC;gBAC1D,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/D,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAEhC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,CAAC,CAAC;YACpF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACK,QAAQ,CAAC,IAAU;QACzB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAE3C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,cAAc,CAAC,GAAG,EAAE;YAClB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,IAAI,CAAC,IAAU;QAC3B,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QAEzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC;YACH,SAAS,CAAC;gBACR,IAAI,OAAO,GAAG,CAAC,CAAC;gBAEhB,SAAS,CAAC;oBACR,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;oBAChC,IAAI,IAAI,KAAK,SAAS;wBAAE,MAAM;oBAE9B,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACvB,OAAO,EAAE,CAAC;gBACZ,CAAC;gBAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAEjB,uFAAuF;gBACvF,sFAAsF;gBACtF,kFAAkF;gBAClF,uFAAuF;gBACvF,2FAA2F;gBAC3F,4EAA4E;gBAC5E,IACE,OAAO,IAAI,CAAC;oBACZ,IAAI,CAAC,OAAO,CAAC,mBAAmB,GAAG,CAAC;oBACpC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB;oBAC1C,IAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,CAAC,EAClC,CAAC;oBACD,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;gBAC9C,CAAC;gBAED,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO;YACtC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,4FAA4F;YAC5F,2FAA2F;YAC3F,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;YAE/B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;gBAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAEpE,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;YAC1B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QACrB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YAErB,4FAA4F;YAC5F,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,IAAU,EAAE,IAAgB;QACxC,uFAAuF;QACvF,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;YAAE,OAAO;QAE3C,IAAI,KAAkB,CAAC;QAEvB,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAElC,yFAAyF;YACzF,2FAA2F;YAC3F,4FAA4F;YAC5F,wCAAwC;YACxC,IAAI,IAAI,CAAC,mBAAmB,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC3F,MAAM,IAAI,2BAA2B,EAAE,CAAC;YAC1C,CAAC;YAED,IAAI,CAAC,EAAE,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YAEtC,2FAA2F;YAC3F,KAAK,CAAC,QAAQ,EAAE,CAAC;YACjB,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YACpC,OAAO;QACT,CAAC;QAED,4FAA4F;QAC5F,8FAA8F;QAC9F,gCAAgC;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC;QAE1E,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC;YAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAElF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,yFAAyF;YACzF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;YACnB,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC;YAAE,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,CAAC;QAEvE,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAErC,+FAA+F;QAC/F,8FAA8F;QAC9F,gGAAgG;QAChG,uBAAuB;QACvB,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,eAAe,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,eAAe,EAAE,CAAC;YACjF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAEjB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC;IACxB,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,IAAU;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE5B,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QAEnB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAEpD,4EAA4E;QAC5E,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE9F,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAE/B,IAAI,CAAC;YACH,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;gBAC7B,OAAO;YACT,CAAC;YAED,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACjF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;YAE/B,KAAK,MAAM,IAAI,IAAI,GAAG;gBAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAEO,IAAI,CAAC,MAAmB,EAAE,OAAgC,EAAE,EAAa;QAC/E,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,kBAAkB,CAAC,IAAgB;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QAE/B,OAAO,CACL,IAAI,KAAK,sBAAsB,CAAC,QAAQ;YACxC,IAAI,KAAK,sBAAsB,CAAC,KAAK;YACrC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CACpC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,IAAU,EAAE,EAAa;QACrC,IAAI,EAAE,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,CAAC,IAAI,KAAK,sBAAsB,CAAC,KAAK,EAAE,CAAC;YAC7E,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;YAEvD,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC;QACtC,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAE7B,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAErD,6FAA6F;QAC7F,6FAA6F;QAC7F,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QAEvC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACrB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;OAMG;IACK,OAAO,CAAC,IAAU;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAEzD,MAAM,KAAK,GAAgB;YACzB,IAAI;YACJ,MAAM;YACN,KAAK;YACL,QAAQ,EAAE,CAAC;YACX,gBAAgB,EAAE,CAAC;YACnB,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,KAAK;YACb,UAAU,EAAE,SAAS;SACtB,CAAC;QAEF,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAErB,MAAM,CAAC,MAAM,CAAC;YACZ,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC7C,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC;SAC7C,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;OAOG;IACK,MAAM,CAAC,KAAkB;QAC/B,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEzB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,IAAI,KAAK,CAAC,MAAM;YAAE,OAAO;QAEzB,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAEvG,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC;IAC7B,CAAC;IAEO,cAAc,CAAC,KAAkB;QACvC,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC;YAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC7F,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,KAAkB,EAAE,KAAa;QAC7C,IAAI,KAAK,CAAC,MAAM;YAAE,OAAO;QAEzB,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;QAEpB,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACnC,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC/B,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;QAC/B,CAAC;QAED,4FAA4F;QAC5F,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QAEjE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE5B,8FAA8F;QAC9F,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACnD,IAAI,IAAI,KAAK,KAAK;gBAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,CAAC;YACH,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,iDAAiD;QACnD,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,IAAI,iBAAiB,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,sFAAsF;IAC9E,OAAO,CAAC,EAAa;QAC3B,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;QAEvB,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAEhC,EAAE,CAAC,KAAK,GAAG,SAAS,CAAC;QACrB,KAAK,CAAC,QAAQ,EAAE,CAAC;QAEjB,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC;YAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IAEO,gBAAgB,CAAC,MAAc,EAAE,KAA8B;QACrE,qDAAqD;QACrD,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO;QAErE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACzC,KAAK,CAAC,gBAAgB,EAAE,CAAC;IAC3B,CAAC;IAEO,gBAAgB,CAAC,MAA0B;QACjD,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO;QAEjC,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEhD,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAEhC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrC,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAEzB,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC;YAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;;;OAQG;IACH,sBAAsB,CAAC,OAAe,EAAE,YAAoB;QAC1D,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5F,CAAC;IAED,6EAA6E;IAErE,KAAK,CAAC,QAAkC;QAC9C,8FAA8F;QAC9F,6FAA6F;QAC7F,IAAI,QAAQ,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YACjC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;gBAC/C,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO;oBAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjD,CAAC;YAED,OAAO;QACT,CAAC;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEhD,qDAAqD;QACrD,IAAI,EAAE,KAAK,SAAS;YAAE,OAAO;QAE7B,QAAQ,QAAQ,CAAC,OAAO,EAAE,CAAC;YACzB,KAAK,QAAQ;gBACX,EAAE,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;gBAC5B,OAAO;YAET,KAAK,KAAK;gBACR,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAI,CAAC,CAAC;gBACrC,OAAO;YAET,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAc,CAAC;gBAEzC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;oBAChB,MAAM,EAAE,EAAE,CAAC,MAAM;oBACjB,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE;oBACnB,KAAK,EAAE;wBACL,CAAC,EAAE,QAAQ,CAAC,YAAY;wBACxB,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC;wBAClC,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC;qBACnC;oBACD,aAAa,EAAE,mBAAmB,CAAC,QAAQ,CAAC,aAAa,CAAC;oBAC1D,OAAO,EAAE,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC;iBACpB,CAAC,CAAC;gBAC9B,OAAO;YACT,CAAC;YAED,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAS,CAAC;gBAEjC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;oBAChB,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,KAAK,EAAE;wBACL,CAAC,EAAE,KAAK,CAAC,YAAY;wBACrB,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC;wBAC/B,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC;qBAChC;oBACD,OAAO,EAAE,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC;iBACd,CAAC,CAAC;gBACjC,OAAO;YACT,CAAC;YAED,KAAK,YAAY;gBACf,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;gBACvC,OAAO;YAET,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAY,CAAC;gBAEpC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;oBAChB,CAAC,EAAE,KAAK,CAAC,YAAY;oBACrB,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC;oBAC/B,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC;iBACL,CAAC,CAAC;gBAC9B,OAAO;YACT,CAAC;YAED,KAAK,cAAc;gBACjB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;gBACzC,OAAO;YAET,KAAK,eAAe,CAAC;YACrB,KAAK,YAAY;gBACf,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;gBAC7B,OAAO;YAET,KAAK,OAAO;gBACV,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC,QAAQ,CAAC,KAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjG,OAAO;YAET;gBACE,OAAO;QACX,CAAC;IACH,CAAC;IAEO,QAAQ,CAAC,EAAa,EAAE,MAAe;QAC7C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAAE,OAAO;QAE7B,+FAA+F;QAC/F,0EAA0E;QAC1E,IAAI,EAAE,CAAC,IAAI,KAAK,sBAAsB,CAAC,KAAK,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,MAAmC,CAAC;YAEnD,IAAI,MAAM,KAAK,SAAS;gBAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QAChF,CAAC;aAAM,IAAI,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACjB,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,EAAa,EAAE,KAAY;QACvC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAAE,OAAO;QAE7B,0FAA0F;QAC1F,2FAA2F;QAC3F,mBAAmB;QACnB,IAAI,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC;YAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;QAEjG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACjB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAEO,oBAAoB,CAAC,EAAa;QACxC,OAAO,EAAE,CAAC,IAAI,KAAK,sBAAsB,CAAC,MAAM,IAAI,EAAE,CAAC,IAAI,KAAK,sBAAsB,CAAC,QAAQ,CAAC;IAClG,CAAC;IAEO,MAAM,CAAC,EAAa;QAC1B,IAAI,EAAE,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAE7B,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;QAElC,IAAI,EAAE,CAAC,OAAO,KAAK,SAAS;YAAE,EAAE,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;QAElF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,+FAA+F;IACvF,iBAAiB,CAAC,WAAmB,EAAE,KAAY;QACzD,KAAK,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;YAC5C,IAAI,EAAE,CAAC,WAAW,KAAK,WAAW;gBAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAC5D,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,gEAAgE;IAChE,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAErB,MAAM,MAAM,GAAkB,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEjD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;gBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAE1D,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;YAC1B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QACrB,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,cAAc,CAAC,OAAO,EAAE,gCAAgC,CAAC,CAAC;QAExF,KAAK,MAAM,KAAK,IAAI,MAAM;YAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEtD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAE9B,KAAK,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAEpE,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;CACF;AAED,iGAAiG;AACjG,SAAS,cAAc,CAAC,OAAwB,EAAE,YAAoB;IACpE,OAAO,GAAG,OAAO,IAAI,YAAY,EAAE,CAAC;AACtC,CAAC;AAED,SAAS,SAAS,CAAC,MAAwC;IACzD,OAAO,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS;QAC5C,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO,IAAI,UAAU,CAAC,cAAc,CAAC,OAAO,EAAE,+BAA+B,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC7B,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,MAAM,CAAC,IAAU,EAAE,GAAW,EAAE,QAA8B;IACrE,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ;QAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACrE,CAAC;AAED,+FAA+F;AAC/F,SAAS,YAAY,CAAC,QAAgB,EAAE,GAAW;IACjD,OAAO,GAAG,QAAQ,KAAK,GAAG,EAAE,CAAC;AAC/B,CAAC;AAED,SAAS,KAAK,CAAC,YAAoB;IACjC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAChD,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -87,6 +87,11 @@ export declare class GrpcTransport implements CamusTransport, CamusLoginClient {
87
87
  *
88
88
  * The batcher rebuilds a faulted stream on its own, so the token is read here, at open time,
89
89
  * rather than captured once. A stream re-opened after a token refresh carries the new token.
90
+ *
91
+ * Frames are negotiated per stream. The opening metadata says which contract version this client
92
+ * reads, and the server's response headers say whether it reads one in turn. The announcement is
93
+ * watched off the operation path: every operation is its own message until it arrives, and for
94
+ * good against a server that makes none.
90
95
  */
91
96
  private createBatchStream;
92
97
  private unary;
@@ -1 +1 @@
1
- {"version":3,"file":"grpc-transport.d.ts","sourceRoot":"","sources":["../../../src/transport/grpc/grpc-transport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAIhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAW1D,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,iBAAiB,CAAC;AAmBzB,OAAO,KAAK,EAKV,eAAe,EAChB,MAAM,YAAY,CAAC;AAepB;;;;;;;;;;;;GAYG;AACH,qBAAa,aAAc,YAAW,cAAc,EAAE,gBAAgB;IACpE,QAAQ,CAAC,QAAQ,SAAsB;IAEvC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqB;IAE1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAEhD;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgC;IAErD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAE5D,OAAO,CAAC,OAAO,CAA0B;IAEzC,OAAO,CAAC,WAAW,CAAwC;IAE3D,OAAO,CAAC,MAAM,CAAS;gBAEX,IAAI,EAAE,iBAAiB,GAAG,SAAS,EAAE,IAAI,EAAE,kBAAkB,EAAE,YAAY,EAAE,gBAAgB;IAQnG,gBAAgB,CACpB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,uBAAuB,EAChC,cAAc,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,sBAAsB,CAAC;IA0B5B,mBAAmB,CACvB,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,cAAc,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC;IAoBV,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAoB/E;;;;;OAKG;IACG,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,CAAC;IAKzE,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAkB/E,OAAO,CACX,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,qBAAqB,CAAC;IAW3B,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAWzG;;;;;;OAMG;YACW,cAAc;IAqCtB,UAAU,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB1D,MAAM,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC;IAiCxD,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAO5F,cAAc,CACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,OAAO,EACpB,cAAc,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC;IAIhB,oBAAoB,CAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,kBAAkB,EAAE,MAAM,EAC1B,WAAW,EAAE,OAAO,EACpB,cAAc,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC;IAShB,YAAY,CACV,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC;IAIV,YAAY,CAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,cAAc,EAAE,CAAC;IAMtB,aAAa,CACjB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,cAAc,EAAE,CAAC;IAM5B,OAAO,CAAC,QAAQ;YAiBF,UAAU;IAsBlB,KAAK,CACT,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,gBAAgB,CAAC;IAetB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;YAM5F,QAAQ;IAiCtB;;;;;;OAMG;YACW,UAAU;IAUxB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;YAgDX,KAAK;IAyDnB;;;OAGG;IACH,OAAO,CAAC,SAAS;IAIjB;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,uBAAuB;IAU/B,OAAO,CAAC,qBAAqB;IAoB7B;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAUnB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAUpB;;;OAGG;YACW,YAAY;IAgCpB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAe7B;AAuED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,iBAAiB,GAAG,SAAS,EACnC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,eAAe,GACrB,UAAU,CA2BZ"}
1
+ {"version":3,"file":"grpc-transport.d.ts","sourceRoot":"","sources":["../../../src/transport/grpc/grpc-transport.ts"],"names":[],"mappings":"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"}