transport-io 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -8,14 +8,17 @@
8
8
  Real-time apps over WebTransport. Socket.IO's shape, on a transport with multiple streams
9
9
  and datagrams, without Socket.IO's mistakes.
10
10
 
11
- Framing, length prefixes, buffer accumulation, stream lifecycle and backpressure queues are
12
- hidden. Reliability is not: an event declares `reliable` or `unreliable` in the contract, and
13
- "this message may be dropped" is a property of your data that lives in the type system. The
14
- reliable lane is carried on QUIC streams, the unreliable lane on QUIC datagrams.
11
+ Framing, length prefixes, buffer accumulation and stream lifecycle are handled for you. An
12
+ event declares `reliable` or `unreliable` in the contract, so "this message may be dropped"
13
+ is visible in the type system. The reliable lane is carried on QUIC streams, the unreliable
14
+ lane on QUIC datagrams.
15
+
16
+ A request answers with a value or with a sequence. `call()` awaits one result. `stream()`
17
+ returns an async iterable, and leaving the loop resets the QUIC stream so the server
18
+ generator's `finally` runs.
15
19
 
16
20
  **Read [KNOWN-ISSUES.md](https://github.com/transport-io/transport-io/blob/main/KNOWN-ISSUES.md)
17
- before you start.** It is what this library refuses to do and will not change, plus the one
18
- measured defect. Full documentation is in the
21
+ before you start.** It lists what this library will not do, and the one measured defect. Full documentation is in the
19
22
  [repository README](https://github.com/transport-io/transport-io#readme). The short version:
20
23
 
21
24
  - **WebTransport only.** No WebSocket fallback, deliberately - a fallback would silently
@@ -23,8 +26,10 @@ measured defect. Full documentation is in the
23
26
  - **Chrome and Firefox.** Safari cannot talk to a quiche-backed server and is unsupported.
24
27
  - **The server needs a separate native install**, and its Linux prebuild needs glibc 2.38 -
25
28
  no default Node `-slim` image has it, and Alpine has no prebuild at all.
26
- - **Each `call()` leaks ~5.95 KB of server memory**, upstream in the QUIC binding, not in
27
- this library. `emit` and datagrams are flat.
29
+ - **Each bidirectional stream leaks ~5.95 KB of server memory**, upstream in the QUIC
30
+ binding, not in this library. `emit` and datagrams are flat. The leak is per stream rather
31
+ than per message, so a `stream()` of a thousand tokens costs 5.95 KB in total where a
32
+ thousand `call()`s cost 5.95 KB each: for token workloads, streaming is the cheap shape.
28
33
  - **The protocol is v0 and unstable.** Both sides currently require an exact match.
29
34
 
30
35
  ```bash
package/dist/client.d.ts CHANGED
@@ -5,7 +5,7 @@
5
5
  * scope, so importing this on a server - which Next.js will do - is safe. Feature
6
6
  * detection happens inside connect().
7
7
  */
8
- import { type AnyMap, type CallableOf, type Contract, type StreamableOf } from './contract.ts';
8
+ import { type AnyMap, type CallableOf, type Contract, type Registered, type StreamableOf } from './contract.ts';
9
9
  import { TransportError } from './errors.ts';
10
10
  import { type SessionStats, type StreamResult } from './session.ts';
11
11
  import type { Connection } from './transport/types.ts';
@@ -34,7 +34,7 @@ export interface ClientOptions<C extends Contract = Contract> {
34
34
  /** Test seam: the clock the TTL is measured against. Defaults to `Date.now`. */
35
35
  readonly now?: () => number;
36
36
  }
37
- export declare class Client<M extends AnyMap = AnyMap> {
37
+ export declare class Client<M extends AnyMap = Registered> {
38
38
  #private;
39
39
  constructor(opts: ClientOptions);
40
40
  /**
@@ -56,9 +56,9 @@ export declare class Client<M extends AnyMap = AnyMap> {
56
56
  readonly signal?: AbortSignal;
57
57
  }): Promise<M[K]['returns']>;
58
58
  /**
59
- * Available only on events declaring `yields`. Iterate it, or `.collect()` the whole
60
- * sequence. Leaving the loop with `break` resets the QUIC stream, which is what reaches
61
- * the responder's `ctx.signal`; there is no separate cancel call and none is needed.
59
+ * Available only on events declaring `yields`. Iterate it, or `.toArray()` the whole
60
+ * sequence. Leaving the loop with `break` resets the QUIC stream, and that reset is what
61
+ * fires the responder's `ctx.signal`. There is no separate cancel call.
62
62
  */
63
63
  stream<K extends StreamableOf<M> & string>(event: K, payload: M[K]['payload'], options?: {
64
64
  readonly signal?: AbortSignal;
@@ -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
@@ -85,9 +85,9 @@ export class Client {
85
85
  return (await this.#requireSession().call(event, payload, options));
86
86
  }
87
87
  /**
88
- * Available only on events declaring `yields`. Iterate it, or `.collect()` the whole
89
- * sequence. Leaving the loop with `break` resets the QUIC stream, which is what reaches
90
- * the responder's `ctx.signal`; there is no separate cancel call and none is needed.
88
+ * Available only on events declaring `yields`. Iterate it, or `.toArray()` the whole
89
+ * sequence. Leaving the loop with `break` resets the QUIC stream, and that reset is what
90
+ * fires the responder's `ctx.signal`. There is no separate cancel call.
91
91
  */
92
92
  stream(event, payload, options) {
93
93
  return this.#requireSession().stream(event, payload, options);
@@ -102,7 +102,7 @@ export class Client {
102
102
  const conn = await this.#opts.connect();
103
103
  // Chrome implements neither `requireUnreliable` nor `reliability`, so `undefined`
104
104
  // must pass or every session on the dominant browser would be refused. Only an
105
- // explicit reliable-only is a lie about the unreliable lane.
105
+ // explicit reliable-only would misreport what the unreliable lane does.
106
106
  if (conn.reliability() === 'reliable-only') {
107
107
  // §10.2 code 1006. Throwing without closing left the peer holding a session this
108
108
  // side had already abandoned, with nothing on the wire to say why.
@@ -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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"}
@@ -67,6 +67,44 @@ export interface EventShape {
67
67
  readonly yields: unknown;
68
68
  }
69
69
  export type AnyMap = Readonly<Record<string, EventShape>>;
70
+ /**
71
+ * Augmented by the application to register its contract once:
72
+ *
73
+ * ```ts
74
+ * declare module 'transport-io' {
75
+ * interface Register {
76
+ * map: AppMap
77
+ * }
78
+ * }
79
+ * ```
80
+ *
81
+ * It holds the **map**, not the contract, and that is measured rather than stylistic.
82
+ * Resolving the map through a conditional over the contract is an alias instantiation, and
83
+ * TypeScript expands those while preserving interface names: hover on `emit` goes from 107
84
+ * characters to 377, with the validator's internals back in it. See D100.
85
+ */
86
+ export interface Register {
87
+ }
88
+ /**
89
+ * The sentinel for an unregistered application. Its only key is the instruction, so the
90
+ * first `emit` fails with `Argument of type '"chat"' is not assignable to parameter of type
91
+ * '"no contract registered: ..."'`.
92
+ *
93
+ * It must be a **type alias, not an interface**. Interfaces get no implicit index signature,
94
+ * so an interface here fails the `AnyMap` constraint and produces a second, confusing error
95
+ * next to the useful one. The next person to touch this will try the interface.
96
+ */
97
+ type NoContractRegistered = {
98
+ readonly 'no contract registered: declare module "transport-io" { interface Register { map: AppMap } }': {
99
+ readonly payload: never;
100
+ readonly returns: never;
101
+ readonly yields: never;
102
+ };
103
+ };
104
+ /** The registered map, or the sentinel that explains how to register one. */
105
+ export type Registered = Register extends {
106
+ map: infer M extends AnyMap;
107
+ } ? M : NoContractRegistered;
70
108
  /** Events declaring `returns`, and therefore callable. */
71
109
  export type CallableOf<M extends AnyMap> = {
72
110
  [K in keyof M]: [M[K]['returns']] extends [never] ? never : K;
@@ -75,7 +113,78 @@ export type CallableOf<M extends AnyMap> = {
75
113
  export type StreamableOf<M extends AnyMap> = {
76
114
  [K in keyof M]: [M[K]['yields']] extends [never] ? never : K;
77
115
  }[keyof M];
78
- export declare function defineContract<const C extends Contract>(contract: C): C;
116
+ /**
117
+ * `unknown` and `any` both satisfy `unknown extends T`, so the `any` check runs first. An
118
+ * event whose payload is deliberately untyped writes `any` and says so at the call site.
119
+ */
120
+ type IsAny<T> = 0 extends 1 & T ? true : false;
121
+ type IsUnknown<T> = IsAny<T> extends true ? false : unknown extends T ? true : false;
122
+ /**
123
+ * Replaces any event whose payload infers `unknown` with a sentence, so the error lands on
124
+ * the offending property inside the contract literal and names the event.
125
+ *
126
+ * `reliable()` with no type argument and no schema infers `unknown`, which would otherwise
127
+ * compile and accept anything for the rest of the application's life. The check lives here
128
+ * rather than at `emit()` because this is where the mistake is, and where someone is
129
+ * looking when they make it.
130
+ *
131
+ * Intersected with `C` rather than taken alone, which costs error quality and buys the
132
+ * TypeScript 5.0 floor. Alone it produces a one-line error, and on 5.0 it stops inferring
133
+ * `returns` out of the contract: `CallableOf` collapses to `never` and every `handle()` in
134
+ * a consumer's project fails with `event: never`. The floor gate caught it. The intersection
135
+ * repeats the object type before naming the event, so the useful line is the last one.
136
+ */
137
+ export type CheckPayloads<C extends Contract> = {
138
+ [K in keyof C]: IsUnknown<Infer<C[K]['payload']>> extends true ? `event '${K & string}' has an unknown payload: pass a type argument or a schema` : C[K];
139
+ };
140
+ export declare function defineContract<const C extends Contract>(contract: C & CheckPayloads<C>): C;
141
+ /**
142
+ * Sugar over the object literal. The literal keeps working, and anything generating a
143
+ * contract programmatically needs it, so these add nothing the literal cannot express.
144
+ *
145
+ * Each takes either a type argument or a Standard Schema, because validation is
146
+ * bring-your-own and must not become second class. `id` is reached by spreading:
147
+ * `{ ...reliable<T>(), id: 0x31e06f7d }`.
148
+ *
149
+ * `rpc` and `streaming` are reliable by construction. An unreliable event has no response
150
+ * path, so the lane is not a parameter and the combination stops being expressible.
151
+ */
152
+ export declare function reliable<T>(): {
153
+ readonly lane: 'reliable';
154
+ readonly payload: StandardSchemaV1<unknown, T>;
155
+ };
156
+ export declare function reliable<S extends Schema>(schema: S): {
157
+ readonly lane: 'reliable';
158
+ readonly payload: S;
159
+ };
160
+ export declare function unreliable<T>(): {
161
+ readonly lane: 'unreliable';
162
+ readonly payload: StandardSchemaV1<unknown, T>;
163
+ };
164
+ export declare function unreliable<S extends Schema>(schema: S): {
165
+ readonly lane: 'unreliable';
166
+ readonly payload: S;
167
+ };
168
+ export declare function rpc<P, R>(): {
169
+ readonly lane: 'reliable';
170
+ readonly payload: StandardSchemaV1<unknown, P>;
171
+ readonly returns: StandardSchemaV1<unknown, R>;
172
+ };
173
+ export declare function rpc<P extends Schema, R extends Schema>(payload: P, returns: R): {
174
+ readonly lane: 'reliable';
175
+ readonly payload: P;
176
+ readonly returns: R;
177
+ };
178
+ export declare function streaming<P, Y>(): {
179
+ readonly lane: 'reliable';
180
+ readonly payload: StandardSchemaV1<unknown, P>;
181
+ readonly yields: StandardSchemaV1<unknown, Y>;
182
+ };
183
+ export declare function streaming<P extends Schema, Y extends Schema>(payload: P, yields: Y): {
184
+ readonly lane: 'reliable';
185
+ readonly payload: P;
186
+ readonly yields: Y;
187
+ };
79
188
  /** A types-only schema, for inference without runtime validation. */
80
189
  export declare function type$<T>(): StandardSchemaV1<unknown, T>;
81
190
  export interface EventEntry {
@@ -100,4 +209,5 @@ export interface EventTable {
100
209
  */
101
210
  export declare function eventIdOf(name: string): Promise<number>;
102
211
  export declare function buildEventTable(contract: Contract): Promise<EventTable>;
212
+ export {};
103
213
  //# sourceMappingURL=contract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"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"}
package/dist/contract.js CHANGED
@@ -3,6 +3,26 @@ import { EVENT_ID_NOT_APPLICABLE } from './protocol.js';
3
3
  export function defineContract(contract) {
4
4
  return contract;
5
5
  }
6
+ export function reliable(schema) {
7
+ return { lane: 'reliable', payload: schema ?? type$() };
8
+ }
9
+ export function unreliable(schema) {
10
+ return { lane: 'unreliable', payload: schema ?? type$() };
11
+ }
12
+ export function rpc(payload, returns) {
13
+ return {
14
+ lane: 'reliable',
15
+ payload: payload ?? type$(),
16
+ returns: returns ?? type$(),
17
+ };
18
+ }
19
+ export function streaming(payload, yields) {
20
+ return {
21
+ lane: 'reliable',
22
+ payload: payload ?? type$(),
23
+ yields: yields ?? type$(),
24
+ };
25
+ }
6
26
  /** A types-only schema, for inference without runtime validation. */
7
27
  export function type$() {
8
28
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAmFvD,MAAM,UAAU,cAAc,CAA2B,QAAW;IAClE,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,KAAK;IACnB,OAAO;QACL,WAAW,EAAE;YACX,OAAO,EAAE,CAAC;YACV,MAAM,EAAE,cAAc;YACtB,QAAQ,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAU,EAAE,CAAC;SACtD;KACF,CAAA;AACH,CAAC;AAmBD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAY;IAC1C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;IACpF,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;AACjD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAAkB;IACtD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAA;IAC1C,MAAM,OAAO,GAAiB,EAAE,CAAA;IAChC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAsB,CAAA;IAC1C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAsB,CAAA;IAE5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAa,CAAA;QACtC,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;QAC5C,IAAI,EAAE,KAAK,uBAAuB,EAAE,CAAC;YACnC,MAAM,IAAI,cAAc,CACtB,sBAAsB,EACtB,UAAU,IAAI,iCAAiC,EAC/C,sGAAsG,CACvG,CAAA;QACH,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC1B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,cAAc,CACtB,sBAAsB,EACtB,WAAW,KAAK,CAAC,IAAI,UAAU,IAAI,qBAAqB,EAAE,EAAE,EAC5D,iEAAiE,EAAE,GAAG,CAAC,gCAAgC,CACxG,CAAA;QACH,CAAC;QACD,MAAM,KAAK,GAAe,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,CAAA;QAC3D,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACnB,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QACnB,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACzB,CAAC;IAED,OAAO;QACL,OAAO;QACP,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5B,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACxB,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAA2B,CAAC;KACjF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AA0JvD,MAAM,UAAU,cAAc,CAA2B,QAA8B;IACrF,OAAO,QAAwB,CAAA;AACjC,CAAC;AAoBD,MAAM,UAAU,QAAQ,CAAC,MAAe;IAItC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,IAAI,KAAK,EAAW,EAAE,CAAA;AAClE,CAAC;AASD,MAAM,UAAU,UAAU,CAAC,MAAe;IAIxC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,IAAI,KAAK,EAAW,EAAE,CAAA;AACpE,CAAC;AAWD,MAAM,UAAU,GAAG,CACjB,OAAgB,EAChB,OAAgB;IAEhB,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,OAAO,IAAI,KAAK,EAAW;QACpC,OAAO,EAAE,OAAO,IAAI,KAAK,EAAW;KACrC,CAAA;AACH,CAAC;AAWD,MAAM,UAAU,SAAS,CACvB,OAAgB,EAChB,MAAe;IAEf,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,OAAO,IAAI,KAAK,EAAW;QACpC,MAAM,EAAE,MAAM,IAAI,KAAK,EAAW;KACnC,CAAA;AACH,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,KAAK;IACnB,OAAO;QACL,WAAW,EAAE;YACX,OAAO,EAAE,CAAC;YACV,MAAM,EAAE,cAAc;YACtB,QAAQ,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAU,EAAE,CAAC;SACtD;KACF,CAAA;AACH,CAAC;AAmBD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAY;IAC1C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;IACpF,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;AACjD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAAkB;IACtD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAA;IAC1C,MAAM,OAAO,GAAiB,EAAE,CAAA;IAChC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAsB,CAAA;IAC1C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAsB,CAAA;IAE5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAa,CAAA;QACtC,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;QAC5C,IAAI,EAAE,KAAK,uBAAuB,EAAE,CAAC;YACnC,MAAM,IAAI,cAAc,CACtB,sBAAsB,EACtB,UAAU,IAAI,iCAAiC,EAC/C,sGAAsG,CACvG,CAAA;QACH,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC1B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,cAAc,CACtB,sBAAsB,EACtB,WAAW,KAAK,CAAC,IAAI,UAAU,IAAI,qBAAqB,EAAE,EAAE,EAC5D,iEAAiE,EAAE,GAAG,CAAC,gCAAgC,CACxG,CAAA;QACH,CAAC;QACD,MAAM,KAAK,GAAe,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,CAAA;QAC3D,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACnB,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QACnB,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACzB,CAAC;IAED,OAAO;QACL,OAAO;QACP,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5B,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACxB,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAA2B,CAAC;KACjF,CAAA;AACH,CAAC"}
package/dist/framer.js CHANGED
@@ -5,7 +5,7 @@
5
5
  * reference transport, 51 writes arrived as 217 reads, and the large write fragmented
6
6
  * while the small ones happened to survive - which is the worst case, because naive
7
7
  * boundary-trusting code passes in development and fails under load. The length prefix
8
- * is the only thing that recovers frame boundaries, and nobody using this library should
8
+ * is the only thing that recovers frame boundaries. Users of this library should never
9
9
  * ever have to think about it.
10
10
  */
11
11
  import { TransportError } from './errors.js';
package/dist/index.d.ts CHANGED
@@ -1,16 +1,16 @@
1
1
  export { type Adapter, type BroadcastOptions, type Frame as AdapterFrame, MemoryAdapter, type MemoryBus, memoryBus, type PeerId, type RemoteEnvelope, } from './adapter.ts';
2
2
  export { Client, type ClientOptions, type ClientState, type Status } from './client.ts';
3
- export { type AnyMap, type CallableOf, type Contract, defineContract, type EventDef, type EventShape, type Infer, type Lane, type MapOf, type Schema, type$, } from './contract.ts';
3
+ export { type AnyMap, type CallableOf, type Contract, defineContract, type EventDef, type EventShape, type Infer, type Lane, type MapOf, type Register, type Registered, reliable, rpc, type Schema, type StreamableOf, streaming, type$, unreliable, } from './contract.ts';
4
4
  export { maxDatagramPayload } from './datagram.ts';
5
5
  export { TransportError, type TransportErrorCode } from './errors.ts';
6
6
  export { encodeFrame, type Frame, FrameDecoder, maxPayloadFor } from './framer.ts';
7
7
  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';
8
- export { createServer, type RoomTarget, Server, type ServerOptions, type ServerPeer, } from './server.ts';
9
- export type { SessionStats } from './session.ts';
8
+ export { type ConnectionSource, createServer, type ListenOptions, type RoomTarget, Server, type ServerOptions, type ServerPeer, } from './server.ts';
9
+ export type { SessionStats, StreamResult } from './session.ts';
10
10
  /**
11
11
  * Hand-maintained and asserted against `package.json` by `index.test.ts`, because
12
12
  * `isolatedDeclarations` forbids inferring it from an import and a version that drifts from
13
- * its manifest is a lie in the one place a user checks first.
13
+ * its manifest misreports the version in the first place a user looks.
14
14
  *
15
15
  * `changeset version` moves the manifest, so this moves in the same commit - which the test
16
16
  * enforces rather than trusting anyone to remember.
@@ -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,MAAM,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAA;AACvF,OAAO,EACL,KAAK,MAAM,EACX,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,cAAc,EACd,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,KAAK,EACV,KAAK,IAAI,EACT,KAAK,KAAK,EACV,KAAK,MAAM,EACX,KAAK,GACN,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACrE,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,YAAY,EACZ,KAAK,UAAU,EACf,MAAM,EACN,KAAK,aAAa,EAClB,KAAK,UAAU,GAChB,MAAM,aAAa,CAAA;AACpB,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAEhD;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,EAAE,MAAgB,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,MAAM,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAA;AACvF,OAAO,EACL,KAAK,MAAM,EACX,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,cAAc,EACd,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,KAAK,EACV,KAAK,IAAI,EACT,KAAK,KAAK,EACV,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,QAAQ,EACR,GAAG,EACH,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,SAAS,EACT,KAAK,EACL,UAAU,GACX,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACrE,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;AAE9D;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,EAAE,MAAgB,CAAA"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export { MemoryAdapter, memoryBus, } from './adapter.js';
2
2
  export { Client } from './client.js';
3
- export { defineContract, type$, } from './contract.js';
3
+ export { defineContract, reliable, rpc, streaming, type$, unreliable, } from './contract.js';
4
4
  export { maxDatagramPayload } from './datagram.js';
5
5
  export { TransportError } from './errors.js';
6
6
  export { encodeFrame, FrameDecoder, maxPayloadFor } from './framer.js';
@@ -9,10 +9,10 @@ export { createServer, Server, } from './server.js';
9
9
  /**
10
10
  * Hand-maintained and asserted against `package.json` by `index.test.ts`, because
11
11
  * `isolatedDeclarations` forbids inferring it from an import and a version that drifts from
12
- * its manifest is a lie in the one place a user checks first.
12
+ * its manifest misreports the version in the first place a user looks.
13
13
  *
14
14
  * `changeset version` moves the manifest, so this moves in the same commit - which the test
15
15
  * enforces rather than trusting anyone to remember.
16
16
  */
17
- export const VERSION = '0.2.0';
17
+ export const VERSION = '0.4.0';
18
18
  //# 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,EAAE,MAAM,EAAqD,MAAM,aAAa,CAAA;AACvF,OAAO,EAIL,cAAc,EAOd,KAAK,GACN,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,cAAc,EAA2B,MAAM,aAAa,CAAA;AACrE,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,EACL,YAAY,EAEZ,MAAM,GAGP,MAAM,aAAa,CAAA;AAGpB;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,OAAO,GAAW,OAAO,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,EAAE,MAAM,EAAqD,MAAM,aAAa,CAAA;AACvF,OAAO,EAIL,cAAc,EAQd,QAAQ,EACR,GAAG,EAGH,SAAS,EACT,KAAK,EACL,UAAU,GACX,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,cAAc,EAA2B,MAAM,aAAa,CAAA;AACrE,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;AAGpB;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,OAAO,GAAW,OAAO,CAAA"}
package/dist/origin.d.ts CHANGED
@@ -3,7 +3,7 @@ export declare class OriginAllocator {
3
3
  /**
4
4
  * `counterSpace` exists so the exhaustion branch can be reached in a test. Exhausting the
5
5
  * real space means 4,194,304 allocations, which is why §7.3's "MUST refuse new sessions"
6
- * went unproven - and an unreachable branch in an allocator is exactly the kind of code
6
+ * went unproven. An unreachable branch in an allocator is the kind of code
7
7
  * that is wrong the first time it runs. Production never passes it.
8
8
  */
9
9
  constructor(hostOrdinal?: number, quarantineMs?: number, counterSpace?: number);
package/dist/origin.js CHANGED
@@ -23,7 +23,7 @@ export class OriginAllocator {
23
23
  /**
24
24
  * `counterSpace` exists so the exhaustion branch can be reached in a test. Exhausting the
25
25
  * real space means 4,194,304 allocations, which is why §7.3's "MUST refuse new sessions"
26
- * went unproven - and an unreachable branch in an allocator is exactly the kind of code
26
+ * went unproven. An unreachable branch in an allocator is the kind of code
27
27
  * that is wrong the first time it runs. Production never passes it.
28
28
  */
29
29
  constructor(hostOrdinal = 0, quarantineMs = ORIGIN_QUARANTINE_MS, counterSpace = COUNTER_SPACE) {
package/dist/server.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /** Server surface. Transport-agnostic: it accepts a Connection from the seam. */
2
2
  import { type Adapter, type PeerId } from './adapter.ts';
3
- import { type AnyMap, type CallableOf, type Contract, type StreamableOf } from './contract.ts';
3
+ import { type AnyMap, type CallableOf, type Contract, type Registered, type StreamableOf } from './contract.ts';
4
4
  import { type SessionStats } from './session.ts';
5
5
  import type { Connection } from './transport/types.ts';
6
6
  export interface ServerPeer<M extends AnyMap = AnyMap> {
@@ -18,6 +18,17 @@ export interface CallContext {
18
18
  /** Fires when the initiator resets the stream. Immediate, and free on this transport. */
19
19
  readonly signal: AbortSignal;
20
20
  }
21
+ /** Anything that yields connections: a transport listener, or a test double. */
22
+ export interface ConnectionSource {
23
+ sessions(): AsyncIterable<Connection>;
24
+ }
25
+ export interface ListenOptions {
26
+ /**
27
+ * Called for each accept that rejects. Without it the failure is still counted in
28
+ * `acceptErrors`, so it is never silent, only quiet.
29
+ */
30
+ readonly onAcceptError?: (error: unknown) => void;
31
+ }
21
32
  export interface ServerOptions {
22
33
  readonly contract: Contract;
23
34
  readonly adapter?: Adapter;
@@ -29,11 +40,29 @@ export interface RoomTarget<M extends AnyMap = AnyMap> {
29
40
  emit<K extends keyof M & string>(event: K, payload: M[K]['payload']): Promise<void>;
30
41
  except(...peers: PeerId[]): RoomTarget<M>;
31
42
  }
32
- export declare class Server<M extends AnyMap = AnyMap> {
43
+ export declare class Server<M extends AnyMap = Registered> {
33
44
  #private;
34
45
  constructor(opts: ServerOptions);
35
46
  /** Builds the event table once. Async because event ids are a SHA-256 of the name. */
36
- listen(): Promise<void>;
47
+ /**
48
+ * Prepare the server, and optionally take ownership of the accept loop.
49
+ *
50
+ * Without a source this is what it always was, and `accept()` is yours to drive. With
51
+ * one, `listen()` runs `for await (const conn of source.sessions()) accept(conn)` for
52
+ * you. That loop existed in ten places in this repository alone, identical every time
53
+ * and swallowing the rejection every time.
54
+ *
55
+ * A rejected accept is counted rather than discarded. A failed handshake must not take
56
+ * the server down, so it cannot throw; it must not be undiscoverable either, so it
57
+ * cannot vanish. `acceptErrors` is the count, and `onAcceptError` is for an application
58
+ * that wants to do something about it.
59
+ */
60
+ listen(source?: ConnectionSource, opts?: ListenOptions): Promise<void>;
61
+ /**
62
+ * Accepts that failed since `listen()`. Zero on a healthy server, and the only signal
63
+ * that connections are being refused when nobody installed `onAcceptError`.
64
+ */
65
+ get acceptErrors(): number;
37
66
  /** Register a responder for a callable event. */
38
67
  handle<K extends CallableOf<M> & string>(event: K, handler: (payload: M[K]['payload'], ctx: CallContext) => Promise<M[K]['returns']>): () => void;
39
68
  /**
@@ -47,5 +76,5 @@ export declare class Server<M extends AnyMap = AnyMap> {
47
76
  accept(conn: Connection): Promise<ServerPeer<M>>;
48
77
  to(room: string): RoomTarget<M>;
49
78
  }
50
- export declare function createServer<M extends AnyMap = AnyMap>(opts: ServerOptions): Server<M>;
79
+ export declare function createServer<M extends AnyMap = Registered>(opts: ServerOptions): Server<M>;
51
80
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -10,6 +10,8 @@ export class Server {
10
10
  #nodeId;
11
11
  #origins;
12
12
  #peers = new Map();
13
+ #acceptErrors = 0;
14
+ #accepting;
13
15
  #onPeer = [];
14
16
  #table;
15
17
  #hub;
@@ -23,13 +25,51 @@ export class Server {
23
25
  this.#origins = new OriginAllocator(opts.hostOrdinal ?? 0);
24
26
  }
25
27
  /** Builds the event table once. Async because event ids are a SHA-256 of the name. */
26
- async listen() {
28
+ /**
29
+ * Prepare the server, and optionally take ownership of the accept loop.
30
+ *
31
+ * Without a source this is what it always was, and `accept()` is yours to drive. With
32
+ * one, `listen()` runs `for await (const conn of source.sessions()) accept(conn)` for
33
+ * you. That loop existed in ten places in this repository alone, identical every time
34
+ * and swallowing the rejection every time.
35
+ *
36
+ * A rejected accept is counted rather than discarded. A failed handshake must not take
37
+ * the server down, so it cannot throw; it must not be undiscoverable either, so it
38
+ * cannot vanish. `acceptErrors` is the count, and `onAcceptError` is for an application
39
+ * that wants to do something about it.
40
+ */
41
+ async listen(source, opts) {
27
42
  this.#table = await buildEventTable(this.#opts.contract);
28
43
  this.#adapter = this.#opts.adapter ?? new MemoryAdapter(this.#nodeId);
29
44
  this.#hub = new Hub(this.#adapter, this.#table);
30
45
  // The server broadcasts on the unreliable lane too, so it needs its own origin.
31
46
  // Origin 0 is reserved, so it cannot simply be left unset.
32
47
  this.#serverOrigin = this.#origins.allocate(Date.now());
48
+ if (source === undefined)
49
+ return;
50
+ this.#accepting = (async () => {
51
+ for await (const conn of source.sessions()) {
52
+ // Per connection, so one refused handshake does not end the loop for everyone
53
+ // else. Awaiting here would serialise accepts behind the slowest handshake.
54
+ void this.accept(conn).catch((e) => {
55
+ this.#acceptErrors++;
56
+ opts?.onAcceptError?.(e);
57
+ });
58
+ }
59
+ })();
60
+ // The loop ends when the source ends, which is a transport concern rather than an
61
+ // error. A source that throws surfaces through `acceptErrors` the same way.
62
+ this.#accepting.catch((e) => {
63
+ this.#acceptErrors++;
64
+ opts?.onAcceptError?.(e);
65
+ });
66
+ }
67
+ /**
68
+ * Accepts that failed since `listen()`. Zero on a healthy server, and the only signal
69
+ * that connections are being refused when nobody installed `onAcceptError`.
70
+ */
71
+ get acceptErrors() {
72
+ return this.#acceptErrors;
33
73
  }
34
74
  handle(event, handler) {
35
75
  this.#callHandlers.set(event, handler);
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/dist/session.d.ts CHANGED
@@ -13,16 +13,37 @@ export type CallHandler = (payload: unknown, ctx: {
13
13
  readonly signal: AbortSignal;
14
14
  }) => Promise<unknown>;
15
15
  /**
16
- * A responder for an event declaring `yields`. The generator shape is the design: the loop
17
- * cannot advance until the body returns and `yield` does not resume until the write is
18
- * accepted, so flow control is the language's rather than a queue we would have to bound.
16
+ * A responder for an event declaring `yields`. The generator's `next()` is what the credit
17
+ * scheme counts: the consumer asking for another element is what refills the window. The
18
+ * transport does not provide the bound, so this library keeps it (D93).
19
19
  */
20
20
  export type StreamHandler = (payload: unknown, ctx: {
21
21
  readonly signal: AbortSignal;
22
22
  }) => AsyncIterable<unknown>;
23
- /** What `stream()` returns: iterate it, or take the whole sequence with `collect()`. */
23
+ /**
24
+ * What `stream()` returns.
25
+ *
26
+ * Four helpers, named and shaped after the TC39 async iterator helpers proposal and
27
+ * implemented **sequentially**. That proposal is Stage 2 and "in the process of being
28
+ * revised"; the revision adds concurrency to `map`, `filter`, `take`, `drop` and `flatMap`
29
+ * so several `next()` calls can be in flight at once. A helper that pulls ahead of its
30
+ * consumer defeats the credit window, which bounds the producer against what the consumer
31
+ * has taken, so these will not adopt that behaviour if it lands. See D99.
32
+ *
33
+ * `cancel()` is not in the proposal. It is ours, for stopping from outside the loop.
34
+ */
24
35
  export interface StreamResult<T> extends AsyncIterable<T> {
25
- collect(): Promise<T[]>;
36
+ /** At most `limit` elements, then the source is closed as though the loop had broken. */
37
+ take(limit: number): StreamResult<T>;
38
+ /** Calls `fn` for each element and awaits it before pulling the next. */
39
+ forEach(fn: (value: T) => void | Promise<void>): Promise<void>;
40
+ /** The whole sequence as an array. Rejects on a mid-stream error, discarding the partial. */
41
+ toArray(): Promise<T[]>;
42
+ /**
43
+ * Stop from outside the loop, where `break` cannot reach. Aborts the stream, so a
44
+ * consumer iterating it sees `WT_ABORTED`, exactly as it would from an `AbortSignal`.
45
+ */
46
+ cancel(): void;
26
47
  }
27
48
  export interface SessionOptions {
28
49
  readonly table: EventTable;
@@ -31,9 +52,9 @@ export interface SessionOptions {
31
52
  readonly now?: () => number;
32
53
  readonly handshakeDeadlineMs?: number;
33
54
  /**
34
- * How a queued datagram flush is deferred. Defaults to a microtask, which is what makes
35
- * the bounded ring and the TTL reachable at all: a synchronous drain on every push
36
- * would mean a burst never queues and neither policy ever applies. Tests inject a
55
+ * How a queued datagram flush is deferred. Defaults to a microtask. A synchronous drain
56
+ * on every push would mean a burst never queues, so neither the bounded ring nor the TTL
57
+ * would ever apply. Tests inject a
37
58
  * manual scheduler to exercise both deterministically.
38
59
  */
39
60
  readonly scheduleFlush?: (flush: () => void) => void;
@@ -99,13 +120,12 @@ export declare class Session {
99
120
  sendDatagramBytes(bytes: Uint8Array): void;
100
121
  stats(): SessionStats;
101
122
  /**
102
- * The only door out of a session, and every internal path now uses it.
123
+ * The only way out of a session. Every internal path routes through here.
103
124
  *
104
- * Guarding this method alone was not enough: four call sites reached `#conn.close()`
105
- * directly - the handshake deadline, the peer-too-slow bound, an emit write failure and a
106
- * protocol error on the read loop - so the guard covered the one path that already had
107
- * the fewest duplicates. A soak still produced 619,422 `close sent twice` complaints from
108
- * quiche after the first fix, which is what a partial guard looks like from the outside.
125
+ * Guarding this method alone was not enough. Four call sites reached `#conn.close()`
126
+ * directly: the handshake deadline, the peer-too-slow bound, an emit write failure and a
127
+ * protocol error on the read loop. A soak produced 619,422 `close sent twice` complaints
128
+ * from quiche after that first partial fix.
109
129
  */
110
130
  close(code: number, reason: string): void;
111
131
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
package/dist/session.js CHANGED
@@ -54,6 +54,56 @@ function abortToTransportError(cause) {
54
54
  const timedOut = cause?.name === 'TimeoutError';
55
55
  return new TransportError('WT_ABORTED', timedOut ? 'the call timed out before the responder answered' : 'the call was aborted', 'The stream was reset, so the responder was told. Retry if the work is idempotent, or raise the deadline.');
56
56
  }
57
+ /**
58
+ * The four helpers, over a source generator.
59
+ *
60
+ * `take` closes the source when it reaches its limit, which is what makes it equivalent to
61
+ * `break`. `cancel` is threaded through every wrapper, so a chain still stops the real
62
+ * stream rather than only the outermost link.
63
+ */
64
+ function streamResult(source, stop) {
65
+ return {
66
+ [Symbol.asyncIterator]: () => source,
67
+ take(limit) {
68
+ async function* taken() {
69
+ if (limit <= 0)
70
+ return;
71
+ let n = 0;
72
+ try {
73
+ for await (const v of source) {
74
+ yield v;
75
+ if (++n >= limit)
76
+ break;
77
+ }
78
+ }
79
+ finally {
80
+ // `for await` closes the source on `break`, but not when the consumer abandons
81
+ // this wrapper instead. Closing here covers both.
82
+ await source.return(undefined).catch(() => undefined);
83
+ }
84
+ }
85
+ return streamResult(taken(), stop);
86
+ },
87
+ async forEach(fn) {
88
+ // Awaited, which is the whole reason a callback is acceptable here: the next element
89
+ // is not pulled until this one is handled, so backpressure still holds.
90
+ for await (const v of source)
91
+ await fn(v);
92
+ },
93
+ async toArray() {
94
+ const out = [];
95
+ for await (const v of source)
96
+ out.push(v);
97
+ return out;
98
+ },
99
+ cancel() {
100
+ // Synchronous, and it does not await the generator. An async generator queues
101
+ // `return()` behind a pending `next()`, and that pending `next()` is the read this
102
+ // abort is unblocking, so awaiting it here deadlocks. Measured: it hung.
103
+ stop();
104
+ },
105
+ };
106
+ }
57
107
  export class Session {
58
108
  #conn;
59
109
  #table;
@@ -72,10 +122,9 @@ export class Session {
72
122
  #callHandlers = new Map();
73
123
  /**
74
124
  * Every inbound call or stream currently being served. A streaming responder parked for
75
- * credit is waiting on a peer that may never come back, and nothing in the credit scheme
76
- * can tell "slow" from "gone" - that is what session liveness is for. Without this, a
77
- * parked generator outlives its session, holding a stream slot and whatever the handler
78
- * had open. Measured: it did.
125
+ * credit waits on a peer that may never return, and the credit scheme cannot distinguish
126
+ * a slow consumer from a departed one. Session liveness does. Without this set, a parked
127
+ * generator outlived its session and held a stream slot open.
79
128
  */
80
129
  #inflight = new Set();
81
130
  #openCalls = 0;
@@ -261,7 +310,7 @@ export class Session {
261
310
  // travelling to the responder to come back as "no handler registered", which is a
262
311
  // different fault with a different remedy.
263
312
  if (entry.def.yields !== undefined) {
264
- throw new TransportError('WT_PROTOCOL_ERROR', `'${event}' declares \`yields\`, so its response is a sequence`, 'Use stream(), or stream(...).collect() if you want the whole sequence as one value.');
313
+ throw new TransportError('WT_PROTOCOL_ERROR', `'${event}' declares \`yields\`, so its response is a sequence`, 'Use stream(), or stream(...).toArray() if you want the whole sequence as one value.');
265
314
  }
266
315
  if (entry.lane === 'reliable' && entry.def.returns === undefined) {
267
316
  throw new TransportError('WT_UNKNOWN_EVENT', `'${event}' declares no \`returns\`, so there is nothing to await`, 'Add `returns` to the event in the contract, or use emit() if it is fire-and-forget.');
@@ -282,7 +331,7 @@ export class Session {
282
331
  // library has - and it rejected with a raw DOMException carrying no code and no
283
332
  // remedy, which the error helper printed in API.md reports as 'unknown'.
284
333
  // Read through a call so narrowing from the pre-check above does not apply: the
285
- // signal can abort at any point during the call, which is what it is for.
334
+ // signal can abort at any point during the call.
286
335
  const abortedNow = () => opts?.signal?.aborted ?? false;
287
336
  throw isAbort(e) || abortedNow() ? abortToTransportError(e) : e;
288
337
  }
@@ -390,20 +439,18 @@ export class Session {
390
439
  return { ...this.#dgQueue.stats(), staleReceived: this.#gate.staleReceived };
391
440
  }
392
441
  /**
393
- * The only door out of a session, and every internal path now uses it.
442
+ * The only way out of a session. Every internal path routes through here.
394
443
  *
395
- * Guarding this method alone was not enough: four call sites reached `#conn.close()`
396
- * directly - the handshake deadline, the peer-too-slow bound, an emit write failure and a
397
- * protocol error on the read loop - so the guard covered the one path that already had
398
- * the fewest duplicates. A soak still produced 619,422 `close sent twice` complaints from
399
- * quiche after the first fix, which is what a partial guard looks like from the outside.
444
+ * Guarding this method alone was not enough. Four call sites reached `#conn.close()`
445
+ * directly: the handshake deadline, the peer-too-slow bound, an emit write failure and a
446
+ * protocol error on the read loop. A soak produced 619,422 `close sent twice` complaints
447
+ * from quiche after that first partial fix.
400
448
  */
401
449
  close(code, reason) {
402
- // Idempotent in both halves. `dispose()` already was; `conn.close()` was not, so a
403
- // second close - a client disconnecting while the server is tearing the same session
404
- // down, which is ordinary - reached the transport twice. quiche logs
405
- // "WebTransportHttp3 close sent twice" and refuses it, which is a protocol-level
406
- // complaint we were generating and then ignoring.
450
+ // Idempotent in both halves. `dispose()` already was, `conn.close()` was not. A second
451
+ // close happens routinely when a client disconnects while the server is tearing the
452
+ // same session down, and it reached the transport twice. quiche logs
453
+ // "WebTransportHttp3 close sent twice" and refuses it.
407
454
  if (this.#disposed)
408
455
  return;
409
456
  this.dispose();
@@ -496,15 +543,22 @@ export class Session {
496
543
  /**
497
544
  * An async generator is the implementation as well as the API, because `return()` is
498
545
  * what makes `break` mean "reset the stream". The consumer leaving the loop runs the
499
- * `finally` below, which resets, which the responder sees as STOP_SENDING, which fires
500
- * its `ctx.signal` and runs its own generator's `finally`. No cancellation message
501
- * exists anywhere in the protocol and none is needed.
546
+ * `finally` below. That resets the stream. The responder sees STOP_SENDING, its
547
+ * `ctx.signal` fires, and its own generator's `finally` runs. The protocol carries no
548
+ * cancellation message.
502
549
  *
503
- * Receive-side flow control is the absence of a read: `reader.read()` is only reached
504
- * when the consumer asks for the next element, so an unconsumed stream stops reading,
505
- * the receive window fills, and the producer's `writer.ready` stops resolving.
550
+ * The consumer holds the producer back by granting credit, not by declining to read.
551
+ * `reader.read()` is only reached when the consumer asks for the next element, and the
552
+ * credit sent from here (§6.6) is what lets the responder write another frame. Receive
553
+ * buffering alone would not bound anything on the reference binding.
506
554
  */
507
555
  #doStream(eventId, body, signal) {
556
+ /**
557
+ * What `cancel()` aborts. It is watched by the same listener as the caller's signal, so
558
+ * cancelling from outside the loop takes the path an `AbortSignal` already takes:
559
+ * reset the stream, which the responder sees as STOP_SENDING.
560
+ */
561
+ const cancelled = new AbortController();
508
562
  const open = () => this.#conn.openBidi();
509
563
  const released = () => {
510
564
  this.#openCalls--;
@@ -522,6 +576,7 @@ export class Session {
522
576
  };
523
577
  const onAbort = () => reset();
524
578
  signal?.addEventListener('abort', onAbort, { once: true });
579
+ cancelled.signal.addEventListener('abort', onAbort, { once: true });
525
580
  try {
526
581
  await writer.write(encodeFrame({
527
582
  type: FrameType.CALL_REQUEST,
@@ -560,23 +615,27 @@ export class Session {
560
615
  if (f.type !== FrameType.CALL_RESPONSE)
561
616
  continue;
562
617
  yield decodePayload(f.payload);
563
- // Reached only when the consumer asks for the next element, which is what
564
- // makes this an acknowledgement of consumption rather than of arrival.
618
+ // Reached only when the consumer asks for the next element, so this
619
+ // acknowledges consumption rather than arrival.
565
620
  taken++;
566
621
  await payCredit();
567
622
  }
568
623
  }
569
624
  signal?.throwIfAborted();
625
+ cancelled.signal.throwIfAborted();
570
626
  ended = true;
571
627
  await writer.close();
572
628
  }
573
629
  catch (e) {
574
630
  // Same conversion `call()` makes. Aborting is the most-documented failure this
575
631
  // library has and it must not arrive as a DOMException with no code and no remedy.
576
- throw isAbort(e) || signal?.aborted === true ? abortToTransportError(e) : e;
632
+ throw isAbort(e) || signal?.aborted === true || cancelled.signal.aborted
633
+ ? abortToTransportError(e)
634
+ : e;
577
635
  }
578
636
  finally {
579
637
  signal?.removeEventListener('abort', onAbort);
638
+ cancelled.signal.removeEventListener('abort', onAbort);
580
639
  // Not ended means the consumer broke, threw, or was aborted. Either way the
581
640
  // responder is still producing and has to be told.
582
641
  if (!ended)
@@ -584,16 +643,9 @@ export class Session {
584
643
  released();
585
644
  }
586
645
  }
587
- const gen = run();
588
- return {
589
- [Symbol.asyncIterator]: () => gen,
590
- async collect() {
591
- const out = [];
592
- for await (const v of gen)
593
- out.push(v);
594
- return out;
595
- },
596
- };
646
+ return streamResult(run(), () => {
647
+ cancelled.abort();
648
+ });
597
649
  }
598
650
  async #serveCall(stream, controller) {
599
651
  const reader = stream.readable.getReader();
@@ -692,9 +744,9 @@ export class Session {
692
744
  * who wants fewer, larger frames batches inside their own generator and pays the 12-byte
693
745
  * frame overhead once per batch instead of once per element.
694
746
  *
695
- * `writer.ready` before every write is where the bound lives. If it resolves
696
- * unconditionally the language is not holding anything back and this is a lie, which is
697
- * why the number is measured rather than asserted (D77).
747
+ * The bound is the credit window, not `writer.ready`. That writer resolves
748
+ * unconditionally on the reference binding, so awaiting it holds nothing back. It is
749
+ * still awaited, for a transport that honours it. See D93 for the measurement.
698
750
  */
699
751
  async #serveStream(handler, payload, name, writer, controller, inbound) {
700
752
  const produced = handler(payload, { signal: controller.signal });
@@ -758,6 +810,12 @@ export class Session {
758
810
  const it = produced[Symbol.asyncIterator]();
759
811
  try {
760
812
  for (;;) {
813
+ // Before the pull, not after. Asking a generator for a value that will be
814
+ // discarded costs whatever the handler does to produce it, and a handler should
815
+ // not need `ctx.signal.throwIfAborted()` in its loop to avoid that. It remains the
816
+ // escape hatch for long work *between* yields, where nothing else can interrupt.
817
+ if (controller.signal.aborted)
818
+ break;
761
819
  const next = await it.next();
762
820
  if (next.done === true)
763
821
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAEnE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAc,YAAY,EAAE,MAAM,aAAa,CAAA;AACnE,OAAO,EAAE,cAAc,EAAmB,SAAS,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC3F,OAAO,EACL,sBAAsB,EACtB,SAAS,EACT,KAAK,EACL,uBAAuB,EACvB,SAAS,EACT,qBAAqB,EACrB,2BAA2B,EAC3B,SAAS,EACT,2BAA2B,EAC3B,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,gBAAgB,EAAmB,MAAM,YAAY,CAAA;AA2CxF;;;;;GAKG;AACH,SAAS,YAAY,CAAC,CAAU;IAC9B,IAAI,CAAC,YAAY,cAAc,EAAE,CAAC;QAChC,IAAI,CAAC,CAAC,IAAI,KAAK,8BAA8B;YAAE,OAAO,SAAS,CAAC,4BAA4B,CAAA;QAC5F,IAAI,CAAC,CAAC,IAAI,KAAK,sBAAsB;YAAE,OAAO,SAAS,CAAC,oBAAoB,CAAA;IAC9E,CAAC;IACD,OAAO,SAAS,CAAC,iBAAiB,CAAA;AACpC,CAAC;AAED;;;;;GAKG;AACH,SAAS,WAAW,CAAC,CAAU;IAC7B,MAAM,OAAO,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAC1D,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;IACjC,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,UAAU,IAAI,sBAAsB;QAAE,OAAO,OAAO,CAAA;IAChF,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,UAAU,CAAA;QAC1C,IAAI,KAAK,GAAG,IAAI,GAAG,sBAAsB;YAAE,MAAK;QAChD,GAAG,IAAI,EAAE,CAAA;QACT,KAAK,IAAI,IAAI,CAAA;IACf,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,OAAO,CAAC,CAAU;IACzB,MAAM,IAAI,GAAI,CAAmD,EAAE,IAAI,CAAA;IACvE,OAAO,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,cAAc,CAAA;AACzD,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc;IAC3C,MAAM,QAAQ,GACX,KAAuD,EAAE,IAAI,KAAK,cAAc,CAAA;IACnF,OAAO,IAAI,cAAc,CACvB,YAAY,EACZ,QAAQ,CAAC,CAAC,CAAC,kDAAkD,CAAC,CAAC,CAAC,sBAAsB,EACtF,0GAA0G,CAC3G,CAAA;AACH,CAAC;AAED,MAAM,OAAO,OAAO;IACT,KAAK,CAAY;IACjB,MAAM,CAAY;IAClB,OAAO,CAAQ;IACf,gBAAgB,CAAS;IACzB,IAAI,CAAc;IAClB,WAAW,CAAQ;IACnB,SAAS,CAA6B;IAC/C,eAAe,GAAG,KAAK,CAAA;IAEd,SAAS,GAAG,IAAI,GAAG,EAA6B,CAAA;IAChD,KAAK,GAAG,IAAI,YAAY,EAAE,CAAA;IAC1B,QAAQ,GAAG,IAAI,aAAa,EAAc,CAAA;IAC1C,UAAU,GAAG,IAAI,SAAS,EAAc,CAAA;IACxC,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAA;IACtC,gBAAgB,GAAG,IAAI,GAAG,EAAyC,CAAA;IACnE,aAAa,GAAG,IAAI,GAAG,EAAuC,CAAA;IACvE;;;;;;OAMG;IACM,SAAS,GAAG,IAAI,GAAG,EAAmB,CAAA;IAC/C,UAAU,GAAG,CAAC,CAAA;IACd,aAAa,GAAG,CAAC,CAAA;IAEjB,OAAO,CAAqD;IAC5D,QAAQ,GAAG,KAAK,CAAA;IAChB,cAAc,GAAG,KAAK,CAAA;IACtB,WAAW,CAAwB;IACnC,iBAAiB,CAA0B;IAC3C,gBAAgB,CAAuB;IACvC,WAAW,CAA4C;IACvD,SAAS,GAAG,KAAK,CAAA;IAEjB,iEAAiE;IACxD,KAAK,CAAqB;IAEnC,YAAY,IAAgB,EAAE,IAAoB;QAChD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAA;QAC1B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAA;QACpD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;QAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,IAAI,qBAAqB,CAAA;QACpE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAA;QACzE,IAAI,CAAC,KAAK,GAAG,IAAI,OAAO,CAAa,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAChD,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAA;YAC5B,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAA;QAC7B,CAAC,CAAC,CAAA;QACF,uFAAuF;QACvF,qFAAqF;QACrF,uFAAuF;QACvF,sFAAsF;QACtF,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;IACxC,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,gFAAgF;QAChF,4DAA4D;QAC5D,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;QACjD,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC1E,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;QACvD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAA;QAEzD;;;;;;;;WAQG;QACH,IAAI,UAAiC,CAAA;QACrC,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;YAChD,UAAU,GAAG,MAAM,CAAA;QACrB,CAAC,CAAC,CAAA;QACF,KAAK,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA,CAAC,sDAAsD;QAE3F,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,MAAM,CAAC,GAAG,IAAI,cAAc,CAC1B,sBAAsB,EACtB,uBAAuB,IAAI,CAAC,WAAW,IAAI,EAC3C,+JAA+J,CAChK,CAAA;YACD,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;YACxB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,CAAA;YAChE,UAAU,CAAC,CAAC,CAAC,CAAA;QACf,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;QAEpB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAA;QAC5E,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAA;QACnC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;QAErB,oFAAoF;QACpF,4DAA4D;QAC5D,MAAM,OAAO,CAAC,IAAI,CAAC;YACjB,MAAM,CAAC,KAAK,CACV,WAAW,CAAC;gBACV,IAAI,EAAE,SAAS,CAAC,SAAS;gBACzB,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,OAAO,EAAE,uBAAuB;gBAChC,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACpD,CAAC,CACH;YACD,QAAQ;SACT,CAAC,CAAA;QACF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAA;QAC1B,IAAI,CAAC,WAAW,EAAE,CAAA;QAElB,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAA;YAC1B,YAAY,CAAC,KAAK,CAAC,CAAA;YACnB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE;gBAClC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,2BAA2B,CAAC,CAAA;YAC5D,CAAC,EAAE,2BAA2B,CAAC,CAG9B;YAAC,IAAI,CAAC,WAAiD,CAAC,KAAK,EAAE,EAAE,CAAA;YAClE,OAAO,CAAC,CAAA;QACV,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,YAAY,CAAC,KAAK,CAAC,CAAA;YACnB,MAAM,CAAC,CAAA;QACT,CAAC;IACH,CAAC;IAED;6FACyF;IACzF,SAAS,CAAC,EAAyC;QACjD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC7B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAClC,CAAC,CAAA;IACH,CAAC;IAED,EAAE,CAAC,KAAa,EAAE,OAAqB;QACrC,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACnC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,GAAG,GAAG,IAAI,GAAG,EAAE,CAAA;YACf,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QAChC,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAChB,OAAO,GAAG,EAAE;YACV,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACrB,CAAC,CAAA;IACH,CAAC;IAED,4FAA4F;IAC5F,IAAI,CAAC,KAAa,EAAE,OAAgB;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACvC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,cAAc,CACtB,kBAAkB,EAClB,IAAI,KAAK,0BAA0B,EACnC,gDAAgD,CACjD,CAAA;QACH,CAAC;QACD,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;QACpC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACjE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;YAClC,MAAM,EAAE,GAAG,cAAc,CACvB,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,EAC1E,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAC7B,CAAA;YACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;YACnC,IAAI,CAAC,eAAe,EAAE,CAAA;YACtB,OAAM;QACR,CAAC;QACD,IAAI,CAAC,SAAS,CAAC;YACb,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,KAAK,EAAE,KAAK,CAAC,IAAI;YACjB,OAAO,EAAE,KAAK,CAAC,EAAE;YACjB,OAAO,EAAE,KAAK;SACf,CAAC,CAAA;IACJ,CAAC;IAED,0EAA0E;IAC1E,MAAM,CAAC,KAAa,EAAE,OAAoC;QACxD,iFAAiF;QACjF,oFAAoF;QACpF,qFAAqF;QACrF,0BAA0B;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACvC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACvD,MAAM,IAAI,cAAc,CACtB,mBAAmB,EACnB,IAAI,KAAK,6DAA6D,EACtE,oFAAoF,CACrF,CAAA;QACH,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QACtC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAClC,CAAC,CAAA;IACH,CAAC;IAED,+EAA+E;IAC/E,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC;IAED,oFAAoF;IACpF,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,IAAI,CACR,KAAa,EACb,OAAgB,EAChB,IAAwC;QAExC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACvC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,cAAc,CACtB,kBAAkB,EAClB,IAAI,KAAK,0BAA0B,EACnC,gDAAgD,CACjD,CAAA;QACH,CAAC;QACD,yEAAyE;QACzE,qFAAqF;QACrF,kFAAkF;QAClF,6EAA6E;QAC7E,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,cAAc,CACtB,mBAAmB,EACnB,8DAA8D,EAC9D,oFAAoF,CACrF,CAAA;QACH,CAAC;QACD,IAAI,IAAI,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI;YAAE,MAAM,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACnF,mFAAmF;QACnF,oFAAoF;QACpF,kFAAkF;QAClF,kFAAkF;QAClF,2CAA2C;QAC3C,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,IAAI,cAAc,CACtB,mBAAmB,EACnB,IAAI,KAAK,sDAAsD,EAC/D,qFAAqF,CACtF,CAAA;QACH,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACjE,MAAM,IAAI,cAAc,CACtB,kBAAkB,EAClB,IAAI,KAAK,yDAAyD,EAClE,qFAAqF,CACtF,CAAA;QACH,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAChC,MAAM,IAAI,cAAc,CACtB,mBAAmB,EACnB,IAAI,KAAK,4CAA4C,EACrD,kHAAkH,CACnH,CAAA;QACH,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,IAAI,2BAA2B,EAAE,CAAC;YACnD,MAAM,IAAI,cAAc,CACtB,qBAAqB,EACrB,GAAG,IAAI,CAAC,UAAU,gDAAgD,EAClE,4BAA4B,2BAA2B,qCAAqC,CAC7F,CAAA;QACH,CAAC;QACD,IAAI,CAAC,UAAU,EAAE,CAAA;QACjB,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;QAC3E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,qFAAqF;YACrF,gFAAgF;YAChF,gFAAgF;YAChF,yEAAyE;YACzE,gFAAgF;YAChF,0EAA0E;YAC1E,MAAM,UAAU,GAAG,GAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,IAAI,KAAK,CAAA;YAChE,MAAM,OAAO,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACjE,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,UAAU,EAAE,CAAA;QACnB,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CACJ,KAAa,EACb,OAAgB,EAChB,IAAwC;QAExC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACvC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,cAAc,CACtB,kBAAkB,EAClB,IAAI,KAAK,0BAA0B,EACnC,gDAAgD,CACjD,CAAA;QACH,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,cAAc,CACtB,mBAAmB,EACnB,8DAA8D,EAC9D,oFAAoF,CACrF,CAAA;QACH,CAAC;QACD,IAAI,IAAI,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI;YAAE,MAAM,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACnF,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,IAAI,cAAc,CACtB,kBAAkB,EAClB,IAAI,KAAK,2EAA2E,EACpF,2DAA2D,CAC5D,CAAA;QACH,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,IAAI,2BAA2B,EAAE,CAAC;YACnD,MAAM,IAAI,cAAc,CACtB,qBAAqB,EACrB,GAAG,IAAI,CAAC,UAAU,gDAAgD,EAClE,4BAA4B,2BAA2B,qCAAqC,CAC7F,CAAA;QACH,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IACvE,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAA;IACxB,CAAC;IAED;;;;;;;;;OASG;IACH,WAAW,CAAC,MAAkB;QAC5B,IAAI,IAAI,CAAC,aAAa,IAAI,2BAA2B,EAAE,CAAC;YACtD,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,QAAQ,SAAS,CAAC,mBAAmB,EAAE,CAAC,CAAA;YAClE,KAAK,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;YAC1D,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;YAC3D,OAAM;QACR,CAAC;QACD,IAAI,CAAC,aAAa,EAAE,CAAA;QACpB,uFAAuF;QACvF,uFAAuF;QACvF,wCAAwC;QACxC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;QACxC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QAC9B,KAAK,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;YACpD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YACjC,IAAI,CAAC,aAAa,EAAE,CAAA;QACtB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAA;IAC3B,CAAC;IAED,wFAAwF;IACxF,SAAS,CAAC,KAAY;QACpB,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAA;IAC3C,CAAC;IAED;;;;;;;;OAQG;IACH,gBAAgB,CAAC,KAAiB;QAChC,IAAI,IAAI,CAAC,SAAS;YAAE,OAAM;QAC1B,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC7B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,gBAAgB,EAAE,CAAC;gBAClC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAA;gBACjD,OAAM;YACR,CAAC;YACD,MAAM,CAAC,CAAA;QACT,CAAC;QACD,IAAI,CAAC,WAAW,EAAE,CAAA;IACpB,CAAC;IAED,iBAAiB,CAAC,KAAiB;QACjC,IAAI,IAAI,CAAC,SAAS;YAAE,OAAM;QAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QACtC,IAAI,CAAC,eAAe,EAAE,CAAA;IACxB,CAAC;IAED,KAAK;QACH,OAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAA;IAC9E,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,IAAY,EAAE,MAAc;QAChC,mFAAmF;QACnF,qFAAqF;QACrF,qEAAqE;QACrE,iFAAiF;QACjF,kDAAkD;QAClD,IAAI,IAAI,CAAC,SAAS;YAAE,OAAM;QAC1B,IAAI,CAAC,OAAO,EAAE,CAAA;QACd,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAChC,CAAC;IAED;;;;;;;;;;;OAWG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,SAAS;YAAE,OAAM;QAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QACrB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS;YAAE,CAAC,CAAC,KAAK,EAAE,CAAA;QACzC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;QACtB,sFAAsF;QACtF,uFAAuF;QACvF,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;QACvB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;QACrB,iFAAiF;QACjF,oEAAoE;QACpE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;QAClB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;QACvB,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;YAAE,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACnE,IAAI,CAAC,WAAW,GAAG,SAAS,CAAA;QAC5B,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;QACtB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAA;QAC1B,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAA;QAC7B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;IAC1B,CAAC;IAED,2EAA2E;IAE3E,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,IAAgB,EAAE,MAAoB;QACnE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAA;QAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAA;QAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAA;QAE1C,oFAAoF;QACpF,+EAA+E;QAC/E,6BAA6B;QAC7B,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;YACnF,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QACtF,CAAC,CAAA;QACD,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QAE1D,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,CAChB,WAAW,CAAC;gBACV,IAAI,EAAE,SAAS,CAAC,YAAY;gBAC5B,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,OAAO;gBACP,OAAO,EAAE,IAAI;aACd,CAAC,CACH,CAAA;YACD,mEAAmE;YACnE,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;YAEpB,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAA;YAClC,MAAM,SAAS,GAAY,EAAE,CAAA;YAC7B,SAAS,CAAC;gBACR,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;gBAC3C,IAAI,IAAI;oBAAE,MAAK;gBACf,IAAI,KAAK,KAAK,SAAS;oBAAE,SAAQ;gBACjC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;oBAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACxD,CAAC;YAED,MAAM,EAAE,cAAc,EAAE,CAAA;YAExB,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,UAAU,CAAC,CAAA;YACpE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,CAAwC,CAAA;gBACjF,MAAM,IAAI,cAAc,CACtB,CAAC,KAAK,CAAC,IAAI,IAAI,kBAAkB,CAA2B,EAC5D,KAAK,CAAC,OAAO,IAAI,iCAAiC,EAClD,sDAAsD,CACvD,CAAA;YACH,CAAC;YACD,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,aAAa,CAAC,CAAA;YACvE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,MAAM,IAAI,cAAc,CACtB,mBAAmB,EACnB,0DAA0D,EAC1D,qEAAqE,CACtE,CAAA;YACH,CAAC;YACD,OAAO,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACrC,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACH,SAAS,CAAC,OAAe,EAAE,IAAgB,EAAE,MAAoB;QAC/D,MAAM,IAAI,GAAG,GAAwB,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAA;QAC7D,MAAM,QAAQ,GAAG,GAAS,EAAE;YAC1B,IAAI,CAAC,UAAU,EAAE,CAAA;QACnB,CAAC,CAAA;QACD,IAAI,CAAC,UAAU,EAAE,CAAA;QAEjB,KAAK,SAAS,CAAC,CAAC,GAAG;YACjB,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAA;YAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAA;YAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAA;YAC1C,IAAI,KAAK,GAAG,KAAK,CAAA;YACjB,MAAM,KAAK,GAAG,GAAS,EAAE;gBACvB,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,QAAQ,SAAS,CAAC,UAAU,EAAE,CAAC,CAAA;gBACnD,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;gBAC3C,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;YAC9C,CAAC,CAAA;YACD,MAAM,OAAO,GAAG,GAAS,EAAE,CAAC,KAAK,EAAE,CAAA;YACnC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;YAE1D,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,KAAK,CAChB,WAAW,CAAC;oBACV,IAAI,EAAE,SAAS,CAAC,YAAY;oBAC5B,KAAK,EAAE,KAAK,CAAC,IAAI;oBACjB,OAAO;oBACP,OAAO,EAAE,IAAI;iBACd,CAAC,CACH,CAAA;gBACD,mFAAmF;gBACnF,4DAA4D;gBAE5D,IAAI,KAAK,GAAG,CAAC,CAAA;gBACb,IAAI,YAAY,GAAG,CAAC,CAAA;gBACpB,MAAM,SAAS,GAAG,KAAK,IAAmB,EAAE;oBAC1C,MAAM,IAAI,GAAG,KAAK,GAAG,YAAY,CAAA;oBACjC,IAAI,IAAI,GAAG,oBAAoB;wBAAE,OAAM;oBACvC,YAAY,GAAG,KAAK,CAAA;oBACpB,MAAM,MAAM,CAAC,KAAK,CAChB,WAAW,CAAC;wBACV,IAAI,EAAE,SAAS,CAAC,WAAW;wBAC3B,KAAK,EAAE,KAAK,CAAC,IAAI;wBACjB,OAAO,EAAE,uBAAuB;wBAChC,OAAO,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;qBACzC,CAAC,CACH,CAAA;gBACH,CAAC,CAAA;gBAED,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAA;gBAClC,SAAS,CAAC;oBACR,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;oBAC3C,IAAI,IAAI;wBAAE,MAAK;oBACf,IAAI,KAAK,KAAK,SAAS;wBAAE,SAAQ;oBACjC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;wBACpC,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,UAAU,EAAE,CAAC;4BACpC,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,OAAO,CAAwC,CAAA;4BACzE,MAAM,IAAI,cAAc,CACtB,CAAC,CAAC,CAAC,IAAI,IAAI,kBAAkB,CAA2B,EACxD,CAAC,CAAC,OAAO,IAAI,iCAAiC,EAC9C,gFAAgF,CACjF,CAAA;wBACH,CAAC;wBACD,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,aAAa;4BAAE,SAAQ;wBAChD,MAAM,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;wBAC9B,0EAA0E;wBAC1E,uEAAuE;wBACvE,KAAK,EAAE,CAAA;wBACP,MAAM,SAAS,EAAE,CAAA;oBACnB,CAAC;gBACH,CAAC;gBACD,MAAM,EAAE,cAAc,EAAE,CAAA;gBACxB,KAAK,GAAG,IAAI,CAAA;gBACZ,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;YACtB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,+EAA+E;gBAC/E,mFAAmF;gBACnF,MAAM,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAC7E,CAAC;oBAAS,CAAC;gBACT,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;gBAC7C,4EAA4E;gBAC5E,mDAAmD;gBACnD,IAAI,CAAC,KAAK;oBAAE,KAAK,EAAE,CAAA;gBACnB,QAAQ,EAAE,CAAA;YACZ,CAAC;QACH,CAAC;QAED,MAAM,GAAG,GAAG,GAAG,EAAE,CAAA;QACjB,OAAO;YACL,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG;YACjC,KAAK,CAAC,OAAO;gBACX,MAAM,GAAG,GAAc,EAAE,CAAA;gBACzB,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,GAAG;oBAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACtC,OAAO,GAAG,CAAA;YACZ,CAAC;SACF,CAAA;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAkB,EAAE,UAA2B;QAC9D,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAA;QAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAA;QAC1C,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAA;QAClC,IAAI,OAA0B,CAAA;QAE9B,IAAI,SAAS,GAAG,KAAK,CAAA;QACrB,IAAI,CAAC;YACH,SAAS,CAAC;gBACR,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;gBAC3C,IAAI,IAAI;oBAAE,MAAK,CAAC,qDAAqD;gBACrE,IAAI,KAAK,KAAK,SAAS;oBAAE,SAAQ;gBACjC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;oBAAE,IAAI,OAAO,KAAK,SAAS;wBAAE,OAAO,GAAG,CAAC,CAAA;gBAC3E,+EAA+E;gBAC/E,mEAAmE;gBACnE,IACE,OAAO,KAAK,SAAS;oBACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,EAC3D,CAAC;oBACD,SAAS,GAAG,IAAI,CAAA;oBAChB,MAAK;gBACP,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,uEAAuE;YACvE,UAAU,CAAC,KAAK,EAAE,CAAA;YAClB,OAAM;QACR,CAAC;QAED,iFAAiF;QACjF,gFAAgF;QAChF,sFAAsF;QACtF,yEAAyE;QACzE,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAA;QAElD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,YAAY,EAAE,CAAC;YACrE,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,mBAAmB,EAAE,+BAA+B,CAAC,CAAA;YAClF,OAAM;QACR,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACnC,sEAAsE;YACtE,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,yBAAyB,EAAE,iCAAiC,CAAC,CAAA;YAC1F,OAAM;QACR,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC/C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,SAAS,CAClB,MAAM,EACN,kBAAkB,EAClB,YAAY,OAAO,CAAC,OAAO,yBAAyB,CACrD,CAAA;YACD,OAAM;QACR,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAChC,yEAAyE;YACzE,6EAA6E;YAC7E,qFAAqF;YACrF,2CAA2C;YAC3C,MAAM,IAAI,CAAC,SAAS,CAClB,MAAM,EACN,mBAAmB,EACnB,UAAU,KAAK,CAAC,IAAI,iDAAiD,CACtE,CAAA;YACD,OAAM;QACR,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAClD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,CAAC,SAAS,CAClB,MAAM,EACN,kBAAkB,EAClB,8BAA8B,KAAK,CAAC,IAAI,GAAG,CAC5C,CAAA;YACD,OAAM;QACR,CAAC;QAED,IAAI,CAAC;YACH,IAAI,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YAC1C,IAAI,IAAI,CAAC,gBAAgB;gBAAE,KAAK,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YAE3E,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACnC,MAAM,IAAI,CAAC,YAAY,CACrB,OAAwB,EACxB,KAAK,EACL,KAAK,CAAC,IAAI,EACV,MAAM,EACN,UAAU,EACV;oBACE,QAAQ,EAAE,KAAK,IAAI,EAAE;wBACnB,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;wBAC7B,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,CAAC,KAAoB,CAAA;oBACrD,CAAC;oBACD,OAAO;oBACP,SAAS;iBACV,CACF,CAAA;gBACD,OAAM;YACR,CAAC;YAED,MAAM,MAAM,GAAG,MAAO,OAAuB,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;YACnF,MAAM,MAAM,CAAC,KAAK,CAChB,WAAW,CAAC;gBACV,IAAI,EAAE,SAAS,CAAC,aAAa;gBAC7B,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,OAAO,EAAE,uBAAuB;gBAChC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC;aAC/B,CAAC,CACH,CAAA;YACD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;QACtB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,GAAG,CAAC,YAAY,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAA;YACtE,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QAChF,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,YAAY,CAChB,OAAsB,EACtB,OAAgB,EAChB,IAAY,EACZ,MAA+C,EAC/C,UAA2B,EAC3B,OAMC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;QAChE,IACE,QAAQ,KAAK,IAAI;YACjB,OAAO,QAAQ,KAAK,QAAQ;YAC5B,CAAC,CAAC,MAAM,CAAC,aAAa,IAAI,QAAQ,CAAC,EACnC,CAAC;YACD,MAAM,IAAI,CAAC,SAAS,CAClB,MAAM,EACN,kBAAkB,EAClB,oBAAoB,IAAI,4DAA4D,CACrF,CAAA;YACD,OAAM;QACR,CAAC;QAED,qFAAqF;QACrF,uFAAuF;QACvF,wFAAwF;QACxF,wBAAwB;QACxB,IAAI,MAAM,GAAG,qBAAqB,CAAA;QAClC,IAAI,IAA8B,CAAA;QAClC,MAAM,KAAK,GAAG,GAAS,EAAE;YACvB,IAAI,EAAE,EAAE,CAAA;YACR,IAAI,GAAG,SAAS,CAAA;QAClB,CAAC,CAAA;QACD,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QAElE;;;;;;;;;WASG;QACH,IAAI,WAAqC,CAAA;QACzC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;YAC5C,WAAW,GAAG,GAAS,EAAE,CAAC,GAAG,CAAC,qBAAqB,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;YAC9E,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QAC1E,CAAC,CAAC,CAAA;QACF,KAAK,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QACnC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,KAAK,CAAC,KAAK,IAAI,EAAE;gBACf,IAAI,CAAC;oBACH,SAAS,CAAC;wBACR,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAA;wBACtC,IAAI,KAAK,KAAK,SAAS;4BAAE,MAAK;wBAC9B,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;4BAC5C,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,WAAW;gCAAE,SAAQ;4BAC9C,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,OAAO,CAAwB,CAAA;4BACzD,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCACjD,MAAM,IAAI,CAAC,CAAC,MAAM,CAAA;gCAClB,KAAK,EAAE,CAAA;4BACT,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,6EAA6E;gBAC/E,CAAC;gBACD,UAAU,CAAC,KAAK,EAAE,CAAA;YACpB,CAAC,CAAC,EAAE,CAAA;QACN,CAAC;QAED,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAA;QAC3C,IAAI,CAAC;YACH,SAAS,CAAC;gBACR,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAA;gBAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;oBAAE,MAAK;gBAC7B,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO;oBAAE,MAAK;gBACpC,mFAAmF;gBACnF,mFAAmF;gBACnF,iFAAiF;gBACjF,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;oBACvB,UAAU,CAAC,KAAK,EAAE,CAAA;oBAClB,MAAK;gBACP,CAAC;gBACD,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACjD,MAAM,IAAI,OAAO,CAAO,CAAC,GAAG,EAAE,EAAE;wBAC9B,IAAI,GAAG,GAAG,CAAA;oBACZ,CAAC,CAAC,CAAA;gBACJ,CAAC;gBACD,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO;oBAAE,MAAK;gBACpC,MAAM,EAAE,CAAA;gBACR,MAAM,MAAM,CAAC,KAAK,CAAA;gBAClB,MAAM,OAAO,CAAC,IAAI,CAAC;oBACjB,MAAM,CAAC,KAAK,CACV,WAAW,CAAC;wBACV,IAAI,EAAE,SAAS,CAAC,aAAa;wBAC7B,KAAK,EAAE,KAAK,CAAC,IAAI;wBACjB,OAAO,EAAE,uBAAuB;wBAChC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;qBACnC,CAAC,CACH;oBACD,OAAO;iBACR,CAAC,CAAA;YACJ,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO;gBAAE,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;QACtD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,+EAA+E;YAC/E,kDAAkD;YAClD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC/B,MAAM,IAAI,GAAG,CAAC,YAAY,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAA;gBACtE,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;YAChF,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YACrD,IAAI,WAAW,KAAK,SAAS;gBAAE,UAAU,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;YAC1F,mFAAmF;YACnF,qEAAqE;YACrE,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QACvD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CACb,MAA+C,EAC/C,IAAY,EACZ,OAAe;QAEf,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,CAChB,WAAW,CAAC;gBACV,IAAI,EAAE,SAAS,CAAC,UAAU;gBAC1B,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,OAAO,EAAE,uBAAuB;gBAChC,OAAO,EAAE,aAAa,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;aAClE,CAAC,CACH,CAAA;YACD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;QACtB,CAAC;QAAC,MAAM,CAAC;YACP,yDAAyD;QAC3D,CAAC;IACH,CAAC;IAED,+EAA+E;IAE/E;;;;OAIG;IACH,eAAe;QACb,IAAI,IAAI,CAAC,eAAe;YAAE,OAAM;QAChC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;QAC3B,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE;YAClB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAA;YAC5B,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;QAChF,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;;;;;;OAWG;IACH,WAAW;QACT,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAM;QACjD,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAA;QACtB,IAAI,CAAC,KAAK,SAAS;YAAE,OAAM;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAA;QACnC,IAAI,IAAI,KAAK,SAAS;YAAE,OAAM;QAE9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QACpB,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CACrB,GAAG,EAAE;YACH,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;YACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;YACrB,IAAI,CAAC,WAAW,EAAE,CAAA;QACpB,CAAC,EACD,CAAC,CAAU,EAAE,EAAE;YACb,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;YACrB,mFAAmF;YACnF,qFAAqF;YACrF,8BAA8B;YAC9B,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;QACzD,CAAC,CACF,CAAA;IACH,CAAC;IAED,4EAA4E;IAC5E;;;;;;;;OAQG;IACH,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAA;IAClD,CAAC;IAED,0FAA0F;IAC1F,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAA;IACnF,CAAC;IAED,yEAAyE;IACzE,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS,CAAA;IACnC,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,QAAoC;QACxD,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAA;QAClC,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAA;QACnC,IAAI,CAAC;YACH,SAAS,CAAC;gBACR,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;gBAC3C,IAAI,IAAI;oBAAE,MAAK;gBACf,IAAI,KAAK,KAAK,SAAS;oBAAE,SAAQ;gBACjC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;oBAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;YACrE,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,oFAAoF;YACpF,qFAAqF;YACrF,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;YACxB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;QAC7C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAY;QACzB,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,SAAS,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;YACzD,MAAM,CAAC,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAA;YACtD,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;YACpB,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAA;YACzB,OAAM;QACR,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,IAAI,cAAc,CACtB,yBAAyB,EACzB,KAAK,KAAK,CAAC,IAAI,qCAAqC,EACpD,8EAA8E,CAC/E,CAAA;QACH,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;YAC/D,OAAM;QACR,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,EAAE,CAAC;YACpE,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YACzC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,gBAAgB;gBAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC9D,CAAC;IACH,CAAC;IAED,WAAW,CAAC,KAAiB;QAC3B,sFAAsF;QACtF,sFAAsF;QACtF,sFAAsF;QACtF,mFAAmF;QACnF,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;YAAE,OAAM;QAC1C,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;gBAChC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;oBAAE,OAAM;gBAC/E,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,CAAA;YACxD,CAAC;YAAC,MAAM,CAAC;gBACP,iFAAiF;gBACjF,kEAAkE;YACpE,CAAC;QACH,CAAC,CAAC,EAAE,CAAA;IACN,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAe,EAAE,OAAmB,EAAE,IAAY;QAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACvC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAM,CAAC,kDAAkD;QAClF,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC/C,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;YAAE,OAAM;QACzD,IAAI,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;QAClC,IAAI,IAAI,CAAC,gBAAgB;YAAE,KAAK,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAC3E,KAAK,MAAM,CAAC,IAAI,QAAQ;YAAE,CAAC,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;IAC9C,CAAC;CACF"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "transport-io",
3
- "version": "0.2.0",
3
+ "version": "0.4.0",
4
4
  "description": "Real-time apps over WebTransport. Two lanes, one contract, no fallback.",
5
5
  "license": "MIT",
6
6
  "type": "module",