transport-io 0.12.1 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -22,6 +22,7 @@ import { DEV_ENDPOINT } from '../transport/dev.js';
22
22
  import { assertUdpPortFree } from '../transport/port.node.js';
23
23
  import { daysLeft, ensureCertificate } from './certificate.node.js';
24
24
  import { DEV_HOST, startDevServer } from './dev-server.node.js';
25
+ import { superviseChild } from './supervise.node.js';
25
26
  const DEFAULT_PORT = 3000;
26
27
  const DEFAULT_WT_PORT = 4433;
27
28
  export function parseArgs(input) {
@@ -159,7 +160,7 @@ async function main() {
159
160
  TRANSPORT_IO_DEV_WT_PORT: String(args.wtPort),
160
161
  },
161
162
  });
162
- child.on('exit', (code) => process.exit(code ?? 0));
163
+ superviseChild(child);
163
164
  }
164
165
  else if (!args.demo) {
165
166
  console.log(' No entry given, so no server was started. Pass one, or use --demo.');
@@ -1 +1 @@
1
- {"version":3,"file":"main.node.js","sourceRoot":"","sources":["../../src/cli/main.node.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACnE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE/D,MAAM,YAAY,GAAG,IAAI,CAAA;AACzB,MAAM,eAAe,GAAG,IAAI,CAAA;AAW5B,MAAM,UAAU,SAAS,CAAC,KAAwB;IAChD,yFAAyF;IACzF,wFAAwF;IACxF,4EAA4E;IAC5E,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IACxD,IAAI,KAAyB,CAAA;IAC7B,IAAI,IAAI,GAAG,KAAK,CAAA;IAChB,IAAI,IAAI,GAAG,YAAY,CAAA;IACvB,IAAI,MAAM,GAAG,eAAe,CAAA;IAC5B,IAAI,SAA6B,CAAA;IACjC,IAAI,IAAI,GAAG,KAAK,CAAA;IAEhB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAW,CAAA;QAC3B,IAAI,CAAC,KAAK,QAAQ;YAAE,IAAI,GAAG,IAAI,CAAA;aAC1B,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;YAAE,IAAI,GAAG,IAAI,CAAA;aAC7C,IAAI,CAAC,KAAK,QAAQ;YAAE,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;aAC5C,IAAI,CAAC,KAAK,WAAW;YAAE,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;aACjD,IAAI,CAAC,KAAK,UAAU;YAAE,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;aAC3C,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,KAAK,KAAK,CAAC,CAAA;IAC1C,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;AACvD,CAAC;AAED,MAAM,KAAK,GAAG;;;;;;;gEAOkD,YAAY;gEACZ,eAAe;;;;;;;;;CAS9E,CAAA;AAED,SAAS,UAAU,CAAC,QAA4B;IAC9C,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAA;IACpD,KAAK,MAAM,SAAS,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;QAC/B,IAAI,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAA;IACnC,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC/B,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAE7C,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC1F,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3E,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,KAAK,CAAC,CAAA;QACjD,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAClB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACjC,CAAC;IAED,0FAA0F;IAC1F,wDAAwD;IACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,kCAAkC,CAAC,CAAA;IAC5D,MAAM,IAAI,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IAExC,MAAM,KAAK,GAAG,qBAAqB,IAAI,CAAC,MAAM,GAAG,CAAA;IACjD,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACpD,oEAAoE;IACpE,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAEnC,uFAAuF;IACvF,yFAAyF;IACzF,yFAAyF;IACzF,uFAAuF;IACvF,MAAM,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAE9C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACpE,IAAI,QAA4B,CAAA;IAChC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAA;QACrE,QAAQ,GAAG,SAAS,CAAA;QACpB,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,IAAI,CAAC,IAAI,CAAA;QAC7C,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAA;QAC/C,OAAO,CAAC,GAAG,CAAC,wBAAwB,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC1D,MAAM,eAAe,EAAE,CAAA;IACzB,CAAC;IAED,MAAM,cAAc,CAAC;QACnB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;QACjD,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;QAC1D,OAAO;QACP,QAAQ,EAAE;YACR,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YACxB,GAAG,EAAE,KAAK;YACV,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;SACtC;KACF,CAAC,CAAA;IAEF,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAClE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACf,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;IAC/B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACf,8EAA8E;IAC9E,MAAM,MAAM,GAAG,UAAU,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAA;IAChD,IAAI,IAAI,CAAC,IAAI,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAA;;QAC7E,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,GAAG,YAAY,EAAE,CAAC,CAAA;IAC5D,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,EAAE,CAAC,CAAA;IACvC,OAAO,CAAC,GAAG,CAAC,yBAAyB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,KAAK,GAAG,CAAC,CAAA;IAClF,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAA;IAC9E,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACf,IAAI,IAAI,CAAC,IAAI,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAA;IACvF,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CACT,iFAAiF,CAClF,CAAA;QACD,OAAO,CAAC,GAAG,CAAC,8EAA8E,CAAC,CAAA;QAC3F,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAA;IAC/E,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAEf,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAClD,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE;gBACH,GAAG,OAAO,CAAC,GAAG;gBACd,qBAAqB,EAAE,IAAI,CAAC,IAAI;gBAChC,oBAAoB,EAAE,IAAI,CAAC,OAAO;gBAClC,wBAAwB,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;aAC9C;SACF,CAAC,CAAA;QACF,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAA;IACrD,CAAC;SAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAA;QACnF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACjB,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,OAAO;IACd,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC7B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAA;IACrC,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,KAAK,CAAC,KAAK,YAAY,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IAC7E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,IAAI,OAAO,EAAE,EAAE,CAAC;IACd,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;QAC1B,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"main.node.js","sourceRoot":"","sources":["../../src/cli/main.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { constants } from 'node:os';
2
+ /** The signals that ask a process to stop. Each one ends a process that does not handle it. */
3
+ const FORWARDED = ['SIGTERM', 'SIGINT', 'SIGHUP'];
4
+ export function superviseChild(child) {
5
+ for (const signal of FORWARDED) {
6
+ // Passed on, and nothing else happens here. The entry may take its time to drain, and
7
+ // this process exits when the entry has.
8
+ process.on(signal, () => child.kill(signal));
9
+ }
10
+ // Every other way out, `process.exit` or an uncaught exception. `kill` on a child that has
11
+ // already exited sends nothing.
12
+ process.on('exit', () => child.kill());
13
+ child.on('exit', (code, signal) => {
14
+ // One of the two is always set.
15
+ if (signal === null)
16
+ process.exit(code ?? 0);
17
+ if (FORWARDED.includes(signal)) {
18
+ // Die by the same signal, as this process did before it handled any. A shell running
19
+ // this in a loop stops on Ctrl-C only when it sees that.
20
+ process.removeAllListeners(signal);
21
+ process.kill(process.pid, signal);
22
+ return;
23
+ }
24
+ // What a shell reports for a process a signal killed.
25
+ process.exit(128 + constants.signals[signal]);
26
+ });
27
+ }
28
+ //# sourceMappingURL=supervise.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supervise.node.js","sourceRoot":"","sources":["../../src/cli/supervise.node.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEnC,+FAA+F;AAC/F,MAAM,SAAS,GAA8B,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;AAE5E,MAAM,UAAU,cAAc,CAAC,KAAmB;IAChD,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;QAC/B,sFAAsF;QACtF,yCAAyC;QACzC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IAC9C,CAAC;IAED,2FAA2F;IAC3F,gCAAgC;IAChC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IAEtC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QAChC,gCAAgC;QAChC,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAA;QAC5C,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,qFAAqF;YACrF,yDAAyD;YACzD,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;YAClC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YACjC,OAAM;QACR,CAAC;QACD,sDAAsD;QACtD,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;AACJ,CAAC"}
package/dist/client.d.ts CHANGED
@@ -7,6 +7,7 @@
7
7
  */
8
8
  import { type AnyMap, type CallableOf, type Contract, type FallbackReady, type ReceivedBy, type Registered, type SentBy, type StreamableOf } from './contract.ts';
9
9
  import { TransportError } from './errors.ts';
10
+ import { type FrameObserver, type ObserveOptions } from './observe.ts';
10
11
  import { type SessionStats, type StreamResult } from './session.ts';
11
12
  import type { Connection, Transport } from './transport/types.ts';
12
13
  export type Status = 'idle' | 'connecting' | 'connected' | 'closing' | 'closed';
@@ -116,6 +117,14 @@ export declare class Client<M extends AnyMap = Registered> {
116
117
  readonly signal?: AbortSignal;
117
118
  }): StreamResult<M[K]['yields']>;
118
119
  stats(): SessionStats | undefined;
120
+ /**
121
+ * One record for every frame in and out, every call stream opening and closing, and every
122
+ * drop `stats()` counts, on this session and on each one a reconnect produces. Off unless
123
+ * something subscribes: a client nobody observes builds no records. A record holds no
124
+ * payload, and `preview: true` adds the first bytes of each as a string. Returns the
125
+ * unsubscribe.
126
+ */
127
+ observe(observer: FrameObserver, options?: ObserveOptions): () => void;
119
128
  }
120
129
  /** The lanes only a native session carries. */
121
130
  export type NativeLanes<M extends AnyMap> = Pick<Client<M>, 'call' | 'stream'>;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -7,6 +7,7 @@
7
7
  */
8
8
  import { buildEventTable, } from './contract.js';
9
9
  import { errorForClose, RefusedError, TransportError } from './errors.js';
10
+ import { composeTap, } from './observe.js';
10
11
  import { CloseCode, FrameType } from './protocol.js';
11
12
  import { Session } from './session.js';
12
13
  import { OwnedTimers } from './timers.js';
@@ -40,6 +41,9 @@ export class Client {
40
41
  /** Failed attempts since the last connected session, which sets the next wait. */
41
42
  #attempt = 0;
42
43
  #onSession = new Set();
44
+ #observers = new Set();
45
+ /** Sessions this client has adopted, which is what numbers them for an observer. */
46
+ #sessions = 0;
43
47
  constructor(opts) {
44
48
  this.#opts = opts;
45
49
  }
@@ -147,6 +151,26 @@ export class Client {
147
151
  stats() {
148
152
  return this.#session?.stats();
149
153
  }
154
+ /**
155
+ * One record for every frame in and out, every call stream opening and closing, and every
156
+ * drop `stats()` counts, on this session and on each one a reconnect produces. Off unless
157
+ * something subscribes: a client nobody observes builds no records. A record holds no
158
+ * payload, and `preview: true` adds the first bytes of each as a string. Returns the
159
+ * unsubscribe.
160
+ */
161
+ observe(observer, options) {
162
+ const subscriber = { observer, preview: options?.preview === true };
163
+ this.#observers.add(subscriber);
164
+ this.#tap();
165
+ return () => {
166
+ this.#observers.delete(subscriber);
167
+ this.#tap();
168
+ };
169
+ }
170
+ /** Hands the current session its observer, composed from whoever subscribes now. */
171
+ #tap() {
172
+ this.#session?.observe(composeTap([...this.#observers], this.#sessions));
173
+ }
150
174
  async #doConnect() {
151
175
  this.#patch({ status: 'connecting', lastError: null, refused: null });
152
176
  const generation = this.#generation;
@@ -257,6 +281,8 @@ export class Client {
257
281
  return;
258
282
  }
259
283
  this.#session = session;
284
+ this.#sessions++;
285
+ this.#tap();
260
286
  for (const [event, handlers] of this.#handlers) {
261
287
  for (const h of handlers)
262
288
  session.on(event, (p) => h(p));
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -5,6 +5,7 @@ export { type AnyMap, type BytesSchema, bytes, type CallableOf, type Contract, t
5
5
  export { maxDatagramPayload } from './datagram.ts';
6
6
  export { RefusedError, TransportError, type TransportErrorCode } from './errors.ts';
7
7
  export { encodeFrame, type Frame, FrameDecoder, maxPayloadFor } from './framer.ts';
8
+ export { type FrameKind, type FrameObserver, type FrameRecord, type ObserveOptions, PREVIEW_MAX_BYTES, } from './observe.ts';
8
9
  export { CloseCode, Codec, DATAGRAM_CONSERVATIVE_PAYLOAD_MAX, DATAGRAM_HEADER_BYTES, EVENT_ID_NOT_APPLICABLE, FrameType, MAX_CALL_PAYLOAD_BYTES, MAX_EMIT_PAYLOAD_BYTES, PROTOCOL_VERSION, ResetCode, STREAM_FRAME_OVERHEAD_BYTES, } from './protocol.ts';
9
10
  export { type ConnectionSource, createServer, type ListenOptions, type RoomTarget, Server, type ServerOptions, type ServerPeer, } from './server.ts';
10
11
  export type { SessionStats, StreamResult } from './session.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,gBAAgB,EACrB,KAAK,KAAK,IAAI,YAAY,EAC1B,aAAa,EACb,KAAK,SAAS,EACd,SAAS,EACT,KAAK,MAAM,EAKX,KAAK,cAAc,GACpB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EACL,MAAM,EACN,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,OAAO,EACZ,KAAK,MAAM,EACX,YAAY,GACb,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,EACL,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,cAAc,EACd,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,UAAU,EACV,UAAU,EACV,KAAK,KAAK,EACV,KAAK,IAAI,EACT,KAAK,KAAK,EACV,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,QAAQ,EACR,GAAG,EACH,KAAK,MAAM,EACX,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,SAAS,EACT,KAAK,EACL,KAAK,iBAAiB,EACtB,UAAU,GACX,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACnF,OAAO,EAAE,WAAW,EAAE,KAAK,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAClF,OAAO,EACL,SAAS,EACT,KAAK,EACL,iCAAiC,EACjC,qBAAqB,EACrB,uBAAuB,EACvB,SAAS,EACT,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,EAChB,SAAS,EACT,2BAA2B,GAC5B,MAAM,eAAe,CAAA;AACtB,OAAO,EACL,KAAK,gBAAgB,EACrB,YAAY,EACZ,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,MAAM,EACN,KAAK,aAAa,EAClB,KAAK,UAAU,GAChB,MAAM,aAAa,CAAA;AACpB,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC9D,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAE3F;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,EAAE,MAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,gBAAgB,EACrB,KAAK,KAAK,IAAI,YAAY,EAC1B,aAAa,EACb,KAAK,SAAS,EACd,SAAS,EACT,KAAK,MAAM,EAKX,KAAK,cAAc,GACpB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EACL,MAAM,EACN,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,OAAO,EACZ,KAAK,MAAM,EACX,YAAY,GACb,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,EACL,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,cAAc,EACd,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,UAAU,EACV,UAAU,EACV,KAAK,KAAK,EACV,KAAK,IAAI,EACT,KAAK,KAAK,EACV,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,QAAQ,EACR,GAAG,EACH,KAAK,MAAM,EACX,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,SAAS,EACT,KAAK,EACL,KAAK,iBAAiB,EACtB,UAAU,GACX,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACnF,OAAO,EAAE,WAAW,EAAE,KAAK,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAClF,OAAO,EACL,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,iBAAiB,GAClB,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,SAAS,EACT,KAAK,EACL,iCAAiC,EACjC,qBAAqB,EACrB,uBAAuB,EACvB,SAAS,EACT,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,EAChB,SAAS,EACT,2BAA2B,GAC5B,MAAM,eAAe,CAAA;AACtB,OAAO,EACL,KAAK,gBAAgB,EACrB,YAAY,EACZ,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,MAAM,EACN,KAAK,aAAa,EAClB,KAAK,UAAU,GAChB,MAAM,aAAa,CAAA;AACpB,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC9D,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAE3F;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,EAAE,MAAiB,CAAA"}
package/dist/index.js CHANGED
@@ -5,6 +5,7 @@ export { bytes, defineContract, fromClient, fromServer, reliable, rpc, streaming
5
5
  export { maxDatagramPayload } from './datagram.js';
6
6
  export { RefusedError, TransportError } from './errors.js';
7
7
  export { encodeFrame, FrameDecoder, maxPayloadFor } from './framer.js';
8
+ export { PREVIEW_MAX_BYTES, } from './observe.js';
8
9
  export { CloseCode, Codec, DATAGRAM_CONSERVATIVE_PAYLOAD_MAX, DATAGRAM_HEADER_BYTES, EVENT_ID_NOT_APPLICABLE, FrameType, MAX_CALL_PAYLOAD_BYTES, MAX_EMIT_PAYLOAD_BYTES, PROTOCOL_VERSION, ResetCode, STREAM_FRAME_OVERHEAD_BYTES, } from './protocol.js';
9
10
  export { createServer, Server, } from './server.js';
10
11
  /**
@@ -15,5 +16,5 @@ export { createServer, Server, } from './server.js';
15
16
  * `changeset version` moves the manifest, so this moves in the same commit - which the test
16
17
  * enforces rather than trusting anyone to remember.
17
18
  */
18
- export const VERSION = '0.12.1';
19
+ export const VERSION = '0.13.0';
19
20
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,aAAa,EAEb,SAAS,GAOV,MAAM,cAAc,CAAA;AACrB,OAAO,EAAgB,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EACL,MAAM,EASN,YAAY,GACb,MAAM,aAAa,CAAA;AACpB,OAAO,EAGL,KAAK,EAIL,cAAc,EAKd,UAAU,EACV,UAAU,EAOV,QAAQ,EACR,GAAG,EAIH,SAAS,EACT,KAAK,EAEL,UAAU,GACX,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,cAAc,EAA2B,MAAM,aAAa,CAAA;AACnF,OAAO,EAAE,WAAW,EAAc,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAClF,OAAO,EACL,SAAS,EACT,KAAK,EACL,iCAAiC,EACjC,qBAAqB,EACrB,uBAAuB,EACvB,SAAS,EACT,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,EAChB,SAAS,EACT,2BAA2B,GAC5B,MAAM,eAAe,CAAA;AACtB,OAAO,EAEL,YAAY,EAGZ,MAAM,GAGP,MAAM,aAAa,CAAA;AAIpB;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,OAAO,GAAW,QAAQ,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,aAAa,EAEb,SAAS,GAOV,MAAM,cAAc,CAAA;AACrB,OAAO,EAAgB,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EACL,MAAM,EASN,YAAY,GACb,MAAM,aAAa,CAAA;AACpB,OAAO,EAGL,KAAK,EAIL,cAAc,EAKd,UAAU,EACV,UAAU,EAOV,QAAQ,EACR,GAAG,EAIH,SAAS,EACT,KAAK,EAEL,UAAU,GACX,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,cAAc,EAA2B,MAAM,aAAa,CAAA;AACnF,OAAO,EAAE,WAAW,EAAc,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAClF,OAAO,EAKL,iBAAiB,GAClB,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,SAAS,EACT,KAAK,EACL,iCAAiC,EACjC,qBAAqB,EACrB,uBAAuB,EACvB,SAAS,EACT,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,EAChB,SAAS,EACT,2BAA2B,GAC5B,MAAM,eAAe,CAAA;AACtB,OAAO,EAEL,YAAY,EAGZ,MAAM,GAGP,MAAM,aAAa,CAAA;AAIpB;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,OAAO,GAAW,QAAQ,CAAA"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * One kind per frame type, one for a datagram, two for a call stream opening and closing,
3
+ * and one for each drop `stats()` counts, named after its counter.
4
+ */
5
+ export type FrameKind = 'handshake' | 'emit' | 'datagram' | 'request' | 'response' | 'error' | 'credit' | 'join' | 'leave' | 'open' | 'close' | 'overflow-dropped' | 'stale-dropped' | 'stale-received' | 'direction-dropped';
6
+ export interface FrameRecord {
7
+ /** The session's clock, in milliseconds. */
8
+ readonly at: number;
9
+ /** 1 for the client's first session, 2 for the next: a reconnect is a new session (D4). */
10
+ readonly session: number;
11
+ readonly kind: FrameKind;
12
+ /** For `open` and `close`, which side opened the stream. */
13
+ readonly dir: 'in' | 'out';
14
+ /** From the contract, so a datagram the fallback wrapped in a frame is still `unreliable`. */
15
+ readonly lane: 'reliable' | 'unreliable';
16
+ /** `null` for a frame that carries no event, and for an event id not in the contract. */
17
+ readonly event: string | null;
18
+ /**
19
+ * 0 is the emit stream, and everything on a WebSocket. Any other number is a call stream,
20
+ * counted by this session as it opens or accepts them; it is not the QUIC stream id, which
21
+ * the platform does not expose. `null` for a datagram.
22
+ */
23
+ readonly stream: number | null;
24
+ /** Bytes on the wire, header included. 0 for `open` and `close`. */
25
+ readonly size: number;
26
+ /** Datagrams only. */
27
+ readonly sequence: number | null;
28
+ /** `null` unless the subscription asked for previews. */
29
+ readonly preview: string | null;
30
+ }
31
+ export type FrameObserver = (record: FrameRecord) => void;
32
+ export interface ObserveOptions {
33
+ /**
34
+ * Include the start of each payload: the first `PREVIEW_MAX_BYTES` of a JSON payload as
35
+ * text, or the first 32 bytes of a `bytes()` payload as hex. Off unless asked for, because
36
+ * a payload is the application's data and a log is somewhere it may not belong.
37
+ */
38
+ readonly preview?: boolean;
39
+ }
40
+ /** What a session is handed: one observer, composed from whoever subscribes. */
41
+ export interface Tap {
42
+ readonly observer: FrameObserver;
43
+ readonly preview: boolean;
44
+ readonly session: number;
45
+ }
46
+ export interface Subscriber {
47
+ readonly observer: FrameObserver;
48
+ readonly preview: boolean;
49
+ }
50
+ /**
51
+ * One tap for every subscriber, or none when there are none. A subscriber that did not ask
52
+ * for previews never sees one, whoever else did, and one that throws is a broken panel or a
53
+ * broken logger: it does not starve the next, and it never reaches the session.
54
+ */
55
+ export declare function composeTap(subscribers: readonly Subscriber[], session: number): Tap | undefined;
56
+ export declare const PREVIEW_MAX_BYTES = 256;
57
+ /**
58
+ * Indexed by frame type, §5.2: 0x01 is HANDSHAKE and 0x08 is CALL_CREDIT. An array and not
59
+ * a map keyed by `FrameType`, because this ships in every browser bundle and the keys were
60
+ * most of it; `observe.test.ts` holds each index to the constant it stands for. A DATAGRAM
61
+ * frame has no kind: it is recorded as the datagram it carries.
62
+ */
63
+ export declare const FRAME_KINDS: readonly (FrameKind | undefined)[];
64
+ /**
65
+ * Decoded from the bytes, never sliced from a string. `JSON.stringify(value).slice(0, 256)`
66
+ * looks like the same thing and is not: a sliced string keeps its whole parent alive, and a
67
+ * ring of 1,000 of them held every 64 KiB payload it was cut from, measured.
68
+ */
69
+ export declare function previewOf(codec: number, payload: Uint8Array): string;
70
+ //# sourceMappingURL=observe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observe.d.ts","sourceRoot":"","sources":["../src/observe.ts"],"names":[],"mappings":"AAWA;;;GAGG;AACH,MAAM,MAAM,SAAS,GACjB,WAAW,GACX,MAAM,GACN,UAAU,GACV,SAAS,GACT,UAAU,GACV,OAAO,GACP,QAAQ,GACR,MAAM,GACN,OAAO,GACP,MAAM,GACN,OAAO,GACP,kBAAkB,GAClB,eAAe,GACf,gBAAgB,GAChB,mBAAmB,CAAA;AAEvB,MAAM,WAAW,WAAW;IAC1B,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,2FAA2F;IAC3F,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,4DAA4D;IAC5D,QAAQ,CAAC,GAAG,EAAE,IAAI,GAAG,KAAK,CAAA;IAC1B,8FAA8F;IAC9F,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY,CAAA;IACxC,yFAAyF;IACzF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,oEAAoE;IACpE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,sBAAsB;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,yDAAyD;IACzD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAChC;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAA;AAEzD,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,gFAAgF;AAChF,MAAM,WAAW,GAAG;IAClB,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAA;IAChC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAA;IAChC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAC1B;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,WAAW,EAAE,SAAS,UAAU,EAAE,EAClC,OAAO,EAAE,MAAM,GACd,GAAG,GAAG,SAAS,CAiBjB;AAED,eAAO,MAAM,iBAAiB,MAAM,CAAA;AAGpC;;;;;GAKG;AACH,eAAO,MAAM,WAAW,EAAE,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,EAUzD,CAAA;AAKD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,MAAM,CAUpE"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * What an observer is told, and the one thing it must never be handed.
3
+ *
4
+ * A record is numbers, names the event table already owns, and at most one fresh string.
5
+ * It never references a frame's bytes or a decoded payload, so an observer that keeps every
6
+ * record it is given keeps nothing the session would otherwise release. Measured with a full
7
+ * ring of 1,000 after 5,000 frames of 64 KiB: 0.4 MB over nobody observing, against 66.6 MB
8
+ * for a ring of payloads. `bench/observe-retention.node.ts` is the measurement; see D149.
9
+ */
10
+ import { Codec } from './protocol.js';
11
+ /**
12
+ * One tap for every subscriber, or none when there are none. A subscriber that did not ask
13
+ * for previews never sees one, whoever else did, and one that throws is a broken panel or a
14
+ * broken logger: it does not starve the next, and it never reaches the session.
15
+ */
16
+ export function composeTap(subscribers, session) {
17
+ if (subscribers.length === 0)
18
+ return undefined;
19
+ return {
20
+ observer: (record) => {
21
+ for (const s of subscribers) {
22
+ try {
23
+ s.observer(s.preview || record.preview === null ? record : { ...record, preview: null });
24
+ }
25
+ catch {
26
+ // Deliberately nothing.
27
+ }
28
+ }
29
+ },
30
+ preview: subscribers.some((s) => s.preview),
31
+ session,
32
+ };
33
+ }
34
+ export const PREVIEW_MAX_BYTES = 256;
35
+ const PREVIEW_HEX_BYTES = 32;
36
+ /**
37
+ * Indexed by frame type, §5.2: 0x01 is HANDSHAKE and 0x08 is CALL_CREDIT. An array and not
38
+ * a map keyed by `FrameType`, because this ships in every browser bundle and the keys were
39
+ * most of it; `observe.test.ts` holds each index to the constant it stands for. A DATAGRAM
40
+ * frame has no kind: it is recorded as the datagram it carries.
41
+ */
42
+ export const FRAME_KINDS = [
43
+ undefined,
44
+ 'handshake',
45
+ 'emit',
46
+ 'request',
47
+ 'response',
48
+ 'error',
49
+ 'join',
50
+ 'leave',
51
+ 'credit',
52
+ ];
53
+ // Not fatal: a preview cut mid-character ends in a replacement character, and that is fine.
54
+ const decoder = new TextDecoder();
55
+ /**
56
+ * Decoded from the bytes, never sliced from a string. `JSON.stringify(value).slice(0, 256)`
57
+ * looks like the same thing and is not: a sliced string keeps its whole parent alive, and a
58
+ * ring of 1,000 of them held every 64 KiB payload it was cut from, measured.
59
+ */
60
+ export function previewOf(codec, payload) {
61
+ if (codec === Codec.JSON) {
62
+ return decoder.decode(payload.byteLength > PREVIEW_MAX_BYTES ? payload.subarray(0, PREVIEW_MAX_BYTES) : payload);
63
+ }
64
+ let hex = '';
65
+ const n = Math.min(payload.byteLength, PREVIEW_HEX_BYTES);
66
+ for (let i = 0; i < n; i++)
67
+ hex += payload[i].toString(16).padStart(2, '0');
68
+ return hex;
69
+ }
70
+ //# sourceMappingURL=observe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observe.js","sourceRoot":"","sources":["../src/observe.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAwErC;;;;GAIG;AACH,MAAM,UAAU,UAAU,CACxB,WAAkC,EAClC,OAAe;IAEf,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IAC9C,OAAO;QACL,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;YACnB,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;gBAC5B,IAAI,CAAC;oBACH,CAAC,CAAC,QAAQ,CACR,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAC7E,CAAA;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,wBAAwB;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QAC3C,OAAO;KACR,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAA;AACpC,MAAM,iBAAiB,GAAG,EAAE,CAAA;AAE5B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAuC;IAC7D,SAAS;IACT,WAAW;IACX,MAAM;IACN,SAAS;IACT,UAAU;IACV,OAAO;IACP,MAAM;IACN,OAAO;IACP,QAAQ;CACT,CAAA;AAED,4FAA4F;AAC5F,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;AAEjC;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,KAAa,EAAE,OAAmB;IAC1D,IAAI,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,MAAM,CACnB,OAAO,CAAC,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAC1F,CAAA;IACH,CAAC;IACD,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAA;IACzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QAAE,GAAG,IAAK,OAAO,CAAC,CAAC,CAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACvF,OAAO,GAAG,CAAA;AACZ,CAAC"}
package/dist/queue.d.ts CHANGED
@@ -15,8 +15,11 @@ export interface QueueStats {
15
15
  export declare class DatagramQueue<T> {
16
16
  #private;
17
17
  constructor(max?: number, ttlMs?: number);
18
- /** Never throws and never blocks: dropping is this lane's advertised contract. */
19
- push(item: T, now: number): void;
18
+ /**
19
+ * Never throws and never blocks: dropping is this lane's advertised contract. Returns what
20
+ * overflow pushed out, so an observer can be told which item it was.
21
+ */
22
+ push(item: T, now: number): T | undefined;
20
23
  /** Drop everything, for a session that is going away with frames still queued. */
21
24
  clear(): void;
22
25
  /**
@@ -24,9 +27,10 @@ export declare class DatagramQueue<T> {
24
27
  *
25
28
  * `limit` caps how many fresh items leave; the rest stay queued with their original
26
29
  * timestamps, so a later drain still judges their age from when they were pushed. The
27
- * WebSocket mapping uses it to take only as many as the emit lane has room for.
30
+ * WebSocket mapping uses it to take only as many as the emit lane has room for. `expired`
31
+ * is told each item the TTL discarded.
28
32
  */
29
- drain(now: number, limit?: number): T[];
33
+ drain(now: number, limit?: number, expired?: (item: T) => void): T[];
30
34
  stats(): QueueStats;
31
35
  }
32
36
  export declare class PeerTooSlowError extends Error {
@@ -1 +1 @@
1
- {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;CAC9B;AAOD;;;;;;;;GAQG;AACH,qBAAa,aAAa,CAAC,CAAC;;IAO1B,YAAY,GAAG,GAAE,MAA2B,EAAE,KAAK,GAAE,MAAwB,EAG5E;IAED,kFAAkF;IAClF,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAM/B;IAED,kFAAkF;IAClF,KAAK,IAAI,IAAI,CAEZ;IAED;;;;;;OAMG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAiC,GAAG,CAAC,EAAE,CAgBhE;IAED,KAAK,IAAI,UAAU,CAMlB;CACF;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,YAAY,KAAK,EAAE,MAAM,EAGxB;CACF;AAED;;;;GAIG;AACH,qBAAa,SAAS,CAAC,CAAC;;IAItB,YAAY,GAAG,GAAE,MAAuB,EAEvC;IAED,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAGlB;IAED;;;;OAIG;IACH,IAAI,IAAI,CAAC,GAAG,SAAS,CAEpB;IAED,KAAK,IAAI,CAAC,GAAG,SAAS,CAErB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,kFAAkF;IAClF,KAAK,IAAI,IAAI,CAEZ;CACF"}
1
+ {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;CAC9B;AAOD;;;;;;;;GAQG;AACH,qBAAa,aAAa,CAAC,CAAC;;IAO1B,YAAY,GAAG,GAAE,MAA2B,EAAE,KAAK,GAAE,MAAwB,EAG5E;IAED;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAQxC;IAED,kFAAkF;IAClF,KAAK,IAAI,IAAI,CAEZ;IAED;;;;;;;OAOG;IACH,KAAK,CACH,GAAG,EAAE,MAAM,EACX,KAAK,GAAE,MAAiC,EACxC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAC1B,CAAC,EAAE,CAiBL;IAED,KAAK,IAAI,UAAU,CAMlB;CACF;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,YAAY,KAAK,EAAE,MAAM,EAGxB;CACF;AAED;;;;GAIG;AACH,qBAAa,SAAS,CAAC,CAAC;;IAItB,YAAY,GAAG,GAAE,MAAuB,EAEvC;IAED,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAGlB;IAED;;;;OAIG;IACH,IAAI,IAAI,CAAC,GAAG,SAAS,CAEpB;IAED,KAAK,IAAI,CAAC,GAAG,SAAS,CAErB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,kFAAkF;IAClF,KAAK,IAAI,IAAI,CAEZ;CACF"}
package/dist/queue.js CHANGED
@@ -26,13 +26,18 @@ export class DatagramQueue {
26
26
  this.#max = max;
27
27
  this.#ttlMs = ttlMs;
28
28
  }
29
- /** Never throws and never blocks: dropping is this lane's advertised contract. */
29
+ /**
30
+ * Never throws and never blocks: dropping is this lane's advertised contract. Returns what
31
+ * overflow pushed out, so an observer can be told which item it was.
32
+ */
30
33
  push(item, now) {
34
+ let evicted;
31
35
  if (this.#items.length >= this.#max) {
32
- this.#items.shift();
36
+ evicted = this.#items.shift()?.item;
33
37
  this.#overflowDropped++;
34
38
  }
35
39
  this.#items.push({ item, at: now });
40
+ return evicted;
36
41
  }
37
42
  /** Drop everything, for a session that is going away with frames still queued. */
38
43
  clear() {
@@ -43,15 +48,17 @@ export class DatagramQueue {
43
48
  *
44
49
  * `limit` caps how many fresh items leave; the rest stay queued with their original
45
50
  * timestamps, so a later drain still judges their age from when they were pushed. The
46
- * WebSocket mapping uses it to take only as many as the emit lane has room for.
51
+ * WebSocket mapping uses it to take only as many as the emit lane has room for. `expired`
52
+ * is told each item the TTL discarded.
47
53
  */
48
- drain(now, limit = Number.POSITIVE_INFINITY) {
54
+ drain(now, limit = Number.POSITIVE_INFINITY, expired) {
49
55
  const out = [];
50
56
  let taken = 0;
51
57
  while (taken < this.#items.length) {
52
58
  const q = this.#items[taken];
53
59
  if (now - q.at >= this.#ttlMs) {
54
60
  this.#staleDropped++;
61
+ expired?.(q.item);
55
62
  this.#items.splice(taken, 1);
56
63
  continue;
57
64
  }
package/dist/queue.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"queue.js","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queue.js","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"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"}
package/dist/session.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import type { Direction, EventTable } from './contract.ts';
2
2
  import { type Frame } from './framer.ts';
3
3
  import { type Negotiated } from './handshake.ts';
4
+ import { type Tap } from './observe.ts';
4
5
  import { type QueueStats } from './queue.ts';
5
6
  import type { Connection } from './transport/types.ts';
6
7
  export interface SessionStats extends QueueStats {
@@ -78,6 +79,8 @@ export declare class Session {
78
79
  readonly ready: Promise<Negotiated>;
79
80
  constructor(conn: Connection, opts: SessionOptions);
80
81
  get origin(): number;
82
+ /** One observer or none. The client composes its subscribers into the one it hands over. */
83
+ observe(tap: Tap | undefined): void;
81
84
  /**
82
85
  * Lets what was held through. Called by the owner once its `onSession` callbacks have
83
86
  * returned, and by `dispose()`, so a read loop parked on the hold always ends. Idempotent.
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,SAAS,EAAc,UAAU,EAAE,MAAM,eAAe,CAAA;AAGtE,OAAO,EAAe,KAAK,KAAK,EAAgB,MAAM,aAAa,CAAA;AACnE,OAAO,EAAkB,KAAK,UAAU,EAA6B,MAAM,gBAAgB,CAAA;AAe3F,OAAO,EAA8C,KAAK,UAAU,EAAE,MAAM,YAAY,CAAA;AAExF,OAAO,KAAK,EAAyB,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAS7E,MAAM,WAAW,YAAa,SAAQ,UAAU;IAC9C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,yFAAyF;IACzF,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;CAClC;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,CAAA;AACtF,MAAM,MAAM,WAAW,GAAG,CACxB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE;IAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,KAC1D,OAAO,CAAC,OAAO,CAAC,CAAA;AAErB;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,CAC1B,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE;IAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,KAC1D,aAAa,CAAC,OAAO,CAAC,CAAA;AAE3B;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC;IACvD,yFAAyF;IACzF,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;IACpC,yEAAyE;IACzE,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9D,6FAA6F;IAC7F,OAAO,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAA;IACvB;;;OAGG;IACH,MAAM,IAAI,IAAI,CAAA;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,uFAAuF;IACvF,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAC3B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;IACrC;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,IAAI,CAAA;IACpD;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAChC;AAsGD,qBAAa,OAAO;;IA4DlB,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IAEnC,YAAY,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAwBjD;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;OAGG;IACH,OAAO,IAAI,IAAI,CAGd;IAEK,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC,CAuGjC;IAsED;6FACyF;IACzF,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAK/D;IAED,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,MAAM,IAAI,CAUnD;IAaD,4FAA4F;IAC5F,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CA6B1C;IAED,0EAA0E;IAC1E,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,aAAa,GAAG,MAAM,IAAI,CAiBtE;IAED,6DAA6D;IAC7D,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAE9B;IAED,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAE5B;IAED,oFAAoF;IACpF,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;;;;;;;OAQG;IACG,IAAI,CACR,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACvC,OAAO,CAAC,OAAO,CAAC,CAyElB;IAED;;;;;;;;;;;OAWG;IACH,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACvC,YAAY,CAAC,OAAO,CAAC,CAoCvB;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IA+BD,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,wFAAwF;IACxF,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAE5B;IAED;;;;;;;;OAQG;IACH,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAYxC;IAED,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAIzC;IAED,KAAK,IAAI,YAAY,CAMpB;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAQxC;IAED;;;;;;;;;;;OAWG;IACH,OAAO,IAAI,IAAI,CA2Bd;IA0hBD,4EAA4E;IAC5E;;;;;;;;OAQG;IACH,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,0FAA0F;IAC1F,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,yEAAyE;IACzE,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,cAAc,IAAI,MAAM,CAE3B;CAqGF"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,SAAS,EAAc,UAAU,EAAE,MAAM,eAAe,CAAA;AAGtE,OAAO,EAAe,KAAK,KAAK,EAAgB,MAAM,aAAa,CAAA;AACnE,OAAO,EAAkB,KAAK,UAAU,EAA6B,MAAM,gBAAgB,CAAA;AAC3F,OAAO,EAA0C,KAAK,GAAG,EAAE,MAAM,cAAc,CAAA;AAiB/E,OAAO,EAA8C,KAAK,UAAU,EAAE,MAAM,YAAY,CAAA;AAExF,OAAO,KAAK,EAAyB,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAS7E,MAAM,WAAW,YAAa,SAAQ,UAAU;IAC9C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,yFAAyF;IACzF,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;CAClC;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,CAAA;AACtF,MAAM,MAAM,WAAW,GAAG,CACxB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE;IAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,KAC1D,OAAO,CAAC,OAAO,CAAC,CAAA;AAErB;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,CAC1B,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE;IAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,KAC1D,aAAa,CAAC,OAAO,CAAC,CAAA;AAE3B;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC;IACvD,yFAAyF;IACzF,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;IACpC,yEAAyE;IACzE,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9D,6FAA6F;IAC7F,OAAO,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAA;IACvB;;;OAGG;IACH,MAAM,IAAI,IAAI,CAAA;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,uFAAuF;IACvF,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAC3B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;IACrC;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,IAAI,CAAA;IACpD;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAChC;AAsGD,qBAAa,OAAO;;IAmElB,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IAEnC,YAAY,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAwBjD;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,4FAA4F;IAC5F,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI,CAElC;IA+ED;;;OAGG;IACH,OAAO,IAAI,IAAI,CAGd;IAEK,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC,CAoGjC;IAsED;6FACyF;IACzF,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAK/D;IAED,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,MAAM,IAAI,CAUnD;IAaD,4FAA4F;IAC5F,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CA6C1C;IAED,0EAA0E;IAC1E,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,aAAa,GAAG,MAAM,IAAI,CAiBtE;IAED,6DAA6D;IAC7D,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAE9B;IAED,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAE5B;IAED,oFAAoF;IACpF,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;;;;;;;OAQG;IACG,IAAI,CACR,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACvC,OAAO,CAAC,OAAO,CAAC,CAyElB;IAED;;;;;;;;;;;OAWG;IACH,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACvC,YAAY,CAAC,OAAO,CAAC,CAoCvB;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAmCD,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,wFAAwF;IACxF,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAG5B;IAED;;;;;;;;OAQG;IACH,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAYxC;IAED,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAIzC;IAED,KAAK,IAAI,YAAY,CAMpB;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAQxC;IAED;;;;;;;;;;;OAWG;IACH,OAAO,IAAI,IAAI,CA6Bd;IA4jBD,4EAA4E;IAC5E;;;;;;;;OAQG;IACH,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,0FAA0F;IAC1F,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,yEAAyE;IACzE,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,cAAc,IAAI,MAAM,CAE3B;CAoHF"}