@antseed/web-sdk 0.1.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/LICENSE +674 -0
- package/README.md +171 -0
- package/dist/channel-store.d.ts +50 -0
- package/dist/channel-store.d.ts.map +1 -0
- package/dist/channel-store.js +288 -0
- package/dist/channel-store.js.map +1 -0
- package/dist/client.d.ts +174 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +470 -0
- package/dist/client.js.map +1 -0
- package/dist/connection.d.ts +66 -0
- package/dist/connection.d.ts.map +1 -0
- package/dist/connection.js +280 -0
- package/dist/connection.js.map +1 -0
- package/dist/identity.d.ts +11 -0
- package/dist/identity.d.ts.map +1 -0
- package/dist/identity.js +23 -0
- package/dist/identity.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/signaling.d.ts +46 -0
- package/dist/signaling.d.ts.map +1 -0
- package/dist/signaling.js +87 -0
- package/dist/signaling.js.map +1 -0
- package/dist/tab-lock.d.ts +27 -0
- package/dist/tab-lock.d.ts.map +1 -0
- package/dist/tab-lock.js +54 -0
- package/dist/tab-lock.js.map +1 -0
- package/package.json +38 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser transport to one seller: relay-signaled WebRTC DataChannel carrying
|
|
3
|
+
* AntSeed protocol frames. Satisfies @antseed/buyer-core's BuyerConnection
|
|
4
|
+
* interface; all request/payment logic lives in the shared buyer machinery.
|
|
5
|
+
*/
|
|
6
|
+
import type { Signer } from 'ethers';
|
|
7
|
+
import { ConnectionState, type FramedMessage } from '@antseed/protocol';
|
|
8
|
+
import { type WebSocketCtor } from './signaling.js';
|
|
9
|
+
export interface RtcEnvironment {
|
|
10
|
+
RTCPeerConnection: typeof RTCPeerConnection;
|
|
11
|
+
WebSocket: WebSocketCtor;
|
|
12
|
+
}
|
|
13
|
+
/** How the selected ICE candidate pair reaches the seller. */
|
|
14
|
+
export interface ConnectionPathInfo {
|
|
15
|
+
/** 'relay' when traffic flows through a TURN server, 'direct' otherwise. */
|
|
16
|
+
path: 'direct' | 'relay' | 'unknown';
|
|
17
|
+
}
|
|
18
|
+
export interface ConnectionOptions {
|
|
19
|
+
connectTimeoutMs?: number;
|
|
20
|
+
/**
|
|
21
|
+
* STUN/TURN servers: bare `stun:`/`turn:` URL strings, or full
|
|
22
|
+
* RTCIceServer entries when TURN credentials are needed.
|
|
23
|
+
*/
|
|
24
|
+
iceServers?: (string | RTCIceServer)[];
|
|
25
|
+
/** Pass 'relay' to force TURN-only paths (privacy: hides the client IP from the seller). */
|
|
26
|
+
iceTransportPolicy?: RTCIceTransportPolicy;
|
|
27
|
+
capabilities?: string[];
|
|
28
|
+
/**
|
|
29
|
+
* Called once after the DataChannel opens with the selected path kind.
|
|
30
|
+
* Deliberately coarse — no addresses or raw ICE candidates are exposed.
|
|
31
|
+
*/
|
|
32
|
+
onConnectionInfo?: (info: ConnectionPathInfo) => void;
|
|
33
|
+
}
|
|
34
|
+
/** @deprecated Use ConnectionPathInfo. */
|
|
35
|
+
export type ConnectionInfo = ConnectionPathInfo;
|
|
36
|
+
type StateListener = (state: ConnectionState) => void;
|
|
37
|
+
export declare class SellerConnection {
|
|
38
|
+
private readonly pc;
|
|
39
|
+
private readonly dc;
|
|
40
|
+
private readonly signaling;
|
|
41
|
+
private decoder;
|
|
42
|
+
private messageId;
|
|
43
|
+
private pingTimer;
|
|
44
|
+
private missedPongs;
|
|
45
|
+
private awaitingPong;
|
|
46
|
+
private _state;
|
|
47
|
+
private stateListeners;
|
|
48
|
+
/** Set by the session wiring; receives every non-keepalive inbound frame. */
|
|
49
|
+
onFrame: (frame: FramedMessage) => void;
|
|
50
|
+
onClose: (reason: string) => void;
|
|
51
|
+
private constructor();
|
|
52
|
+
static connect(relayBridgeUrl: string, signer: Signer, env: RtcEnvironment, options?: ConnectionOptions): Promise<SellerConnection>;
|
|
53
|
+
get state(): ConnectionState;
|
|
54
|
+
on(event: 'stateChange', listener: StateListener): this;
|
|
55
|
+
off(event: 'stateChange', listener: StateListener): this;
|
|
56
|
+
send(data: Uint8Array): void;
|
|
57
|
+
get isOpen(): boolean;
|
|
58
|
+
close(): void;
|
|
59
|
+
private fail;
|
|
60
|
+
private setState;
|
|
61
|
+
private sendFrame;
|
|
62
|
+
private handleMessage;
|
|
63
|
+
private startKeepalive;
|
|
64
|
+
}
|
|
65
|
+
export {};
|
|
66
|
+
//# sourceMappingURL=connection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAGL,eAAe,EAIf,KAAK,aAAa,EACnB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAErE,MAAM,WAAW,cAAc;IAC7B,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,SAAS,EAAE,aAAa,CAAC;CAC1B;AAED,8DAA8D;AAC9D,MAAM,WAAW,kBAAkB;IACjC,4EAA4E;IAC5E,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;CACtC;AAED,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC;IACvC,4FAA4F;IAC5F,kBAAkB,CAAC,EAAE,qBAAqB,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;CACvD;AAED,0CAA0C;AAC1C,MAAM,MAAM,cAAc,GAAG,kBAAkB,CAAC;AAehD,KAAK,aAAa,GAAG,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;AAEtD,qBAAa,gBAAgB;IAczB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAf5B,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,SAAS,CAA+C;IAChE,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,MAAM,CAA+C;IAC7D,OAAO,CAAC,cAAc,CAA4B;IAElD,6EAA6E;IAC7E,OAAO,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAY;IACnD,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAY;IAE7C,OAAO;WAMM,OAAO,CAClB,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,cAAc,EACnB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,gBAAgB,CAAC;IA6G5B,IAAI,KAAK,IAAI,eAAe,CAE3B;IAED,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAKvD,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAKxD,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAY5B,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,KAAK,IAAI,IAAI;IAab,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,aAAa;IAsBrB,OAAO,CAAC,cAAc;CAgBvB"}
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser transport to one seller: relay-signaled WebRTC DataChannel carrying
|
|
3
|
+
* AntSeed protocol frames. Satisfies @antseed/buyer-core's BuyerConnection
|
|
4
|
+
* interface; all request/payment logic lives in the shared buyer machinery.
|
|
5
|
+
*/
|
|
6
|
+
import { CONNECTION_CAPABILITY_COOPERATIVE_CLOSE_V1, CONNECTION_CAPABILITY_RESPONSE_AUTH_V1, ConnectionState, FrameDecoder, MessageType, encodeFrame, } from '@antseed/protocol';
|
|
7
|
+
import { buildHelloEnvelope } from './identity.js';
|
|
8
|
+
import { SignalingSocket } from './signaling.js';
|
|
9
|
+
const DATA_CHANNEL_LABEL = 'antseed-data';
|
|
10
|
+
const PING_INTERVAL_MS = 15_000;
|
|
11
|
+
const MAX_MISSED_PONGS = 3;
|
|
12
|
+
const DEFAULT_ICE_SERVERS = [
|
|
13
|
+
{ urls: 'stun:stun.l.google.com:19302' },
|
|
14
|
+
{ urls: 'stun:stun1.l.google.com:19302' },
|
|
15
|
+
{ urls: 'stun:stun2.l.google.com:19302' },
|
|
16
|
+
];
|
|
17
|
+
const DEFAULT_CAPABILITIES = [
|
|
18
|
+
CONNECTION_CAPABILITY_RESPONSE_AUTH_V1,
|
|
19
|
+
CONNECTION_CAPABILITY_COOPERATIVE_CLOSE_V1,
|
|
20
|
+
];
|
|
21
|
+
export class SellerConnection {
|
|
22
|
+
pc;
|
|
23
|
+
dc;
|
|
24
|
+
signaling;
|
|
25
|
+
decoder = new FrameDecoder();
|
|
26
|
+
messageId = 0;
|
|
27
|
+
pingTimer = null;
|
|
28
|
+
missedPongs = 0;
|
|
29
|
+
awaitingPong = false;
|
|
30
|
+
_state = ConnectionState.Connecting;
|
|
31
|
+
stateListeners = new Set();
|
|
32
|
+
/** Set by the session wiring; receives every non-keepalive inbound frame. */
|
|
33
|
+
onFrame = () => { };
|
|
34
|
+
onClose = () => { };
|
|
35
|
+
constructor(pc, dc, signaling) {
|
|
36
|
+
this.pc = pc;
|
|
37
|
+
this.dc = dc;
|
|
38
|
+
this.signaling = signaling;
|
|
39
|
+
}
|
|
40
|
+
static async connect(relayBridgeUrl, signer, env, options = {}) {
|
|
41
|
+
const connectTimeoutMs = options.connectTimeoutMs ?? 30_000;
|
|
42
|
+
const signaling = await SignalingSocket.connect(relayBridgeUrl, env.WebSocket);
|
|
43
|
+
const hello = await buildHelloEnvelope(signer);
|
|
44
|
+
signaling.sendHello({
|
|
45
|
+
type: 'hello',
|
|
46
|
+
auth: hello,
|
|
47
|
+
capabilities: options.capabilities ?? DEFAULT_CAPABILITIES,
|
|
48
|
+
});
|
|
49
|
+
const pc = new env.RTCPeerConnection({
|
|
50
|
+
iceServers: (options.iceServers ?? DEFAULT_ICE_SERVERS).map((server) => typeof server === 'string' ? { urls: server } : server),
|
|
51
|
+
...(options.iceTransportPolicy ? { iceTransportPolicy: options.iceTransportPolicy } : {}),
|
|
52
|
+
});
|
|
53
|
+
const dc = pc.createDataChannel(DATA_CHANNEL_LABEL, { ordered: true });
|
|
54
|
+
dc.binaryType = 'arraybuffer';
|
|
55
|
+
const conn = new SellerConnection(pc, dc, signaling);
|
|
56
|
+
pc.onicecandidate = (event) => {
|
|
57
|
+
if (event.candidate?.candidate) {
|
|
58
|
+
signaling.sendSignal({
|
|
59
|
+
type: 'candidate',
|
|
60
|
+
candidate: event.candidate.candidate,
|
|
61
|
+
mid: event.candidate.sdpMid ?? '0',
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
// Serialize application: the answer and trickled candidates can arrive in
|
|
66
|
+
// one WebSocket frame, and addIceCandidate before setRemoteDescription
|
|
67
|
+
// settles throws InvalidStateError.
|
|
68
|
+
let applyQueue = Promise.resolve();
|
|
69
|
+
signaling.onMessage = (msg) => {
|
|
70
|
+
applyQueue = applyQueue
|
|
71
|
+
.then(async () => {
|
|
72
|
+
if (msg.type === 'sdp') {
|
|
73
|
+
await pc.setRemoteDescription({
|
|
74
|
+
type: msg.descriptionType,
|
|
75
|
+
sdp: msg.sdp,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
else if (msg.type === 'candidate') {
|
|
79
|
+
await pc.addIceCandidate({ candidate: msg.candidate, sdpMid: msg.mid });
|
|
80
|
+
}
|
|
81
|
+
})
|
|
82
|
+
.catch((err) => conn.fail(`signaling apply failed: ${String(err)}`));
|
|
83
|
+
};
|
|
84
|
+
signaling.onClose = (reason) => {
|
|
85
|
+
if (dc.readyState !== 'open')
|
|
86
|
+
conn.fail(`signaling closed: ${reason}`);
|
|
87
|
+
};
|
|
88
|
+
const offer = await pc.createOffer();
|
|
89
|
+
await pc.setLocalDescription(offer);
|
|
90
|
+
signaling.sendSignal({ type: 'sdp', sdp: offer.sdp ?? '', descriptionType: 'offer' });
|
|
91
|
+
try {
|
|
92
|
+
await new Promise((resolve, reject) => {
|
|
93
|
+
const timer = setTimeout(() => reject(new Error(`connection timeout after ${connectTimeoutMs}ms`)), connectTimeoutMs);
|
|
94
|
+
dc.onopen = () => {
|
|
95
|
+
clearTimeout(timer);
|
|
96
|
+
resolve();
|
|
97
|
+
};
|
|
98
|
+
dc.onerror = (event) => {
|
|
99
|
+
clearTimeout(timer);
|
|
100
|
+
reject(new Error(`datachannel error: ${String(event.message ?? event)}`));
|
|
101
|
+
};
|
|
102
|
+
pc.onconnectionstatechange = () => {
|
|
103
|
+
if (pc.connectionState === 'failed' || pc.connectionState === 'closed') {
|
|
104
|
+
clearTimeout(timer);
|
|
105
|
+
reject(new Error(`peer connection ${pc.connectionState}`));
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
conn.close();
|
|
112
|
+
throw error;
|
|
113
|
+
}
|
|
114
|
+
conn.setState(ConnectionState.Open);
|
|
115
|
+
dc.onmessage = (event) => conn.handleMessage(event.data);
|
|
116
|
+
dc.onclose = () => conn.fail('datachannel closed');
|
|
117
|
+
pc.onconnectionstatechange = () => {
|
|
118
|
+
if (pc.connectionState === 'failed' || pc.connectionState === 'closed') {
|
|
119
|
+
conn.fail(`peer connection ${pc.connectionState}`);
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
conn.startKeepalive();
|
|
123
|
+
if (options.onConnectionInfo) {
|
|
124
|
+
const report = options.onConnectionInfo;
|
|
125
|
+
void classifyConnectionPath(pc).then((path) => report({ path })).catch(() => { });
|
|
126
|
+
}
|
|
127
|
+
// The bridge is only needed for signaling; free the relay slot (it counts
|
|
128
|
+
// against the per-IP cap). The seller keeps the session alive — its
|
|
129
|
+
// signaling-close handler only tears down connections still connecting.
|
|
130
|
+
// There is no re-signaling/ICE-restart path that would need it later.
|
|
131
|
+
signaling.onClose = () => { };
|
|
132
|
+
signaling.close();
|
|
133
|
+
return conn;
|
|
134
|
+
}
|
|
135
|
+
// ── BuyerConnection surface ─────────────────────────────────
|
|
136
|
+
get state() {
|
|
137
|
+
return this._state;
|
|
138
|
+
}
|
|
139
|
+
on(event, listener) {
|
|
140
|
+
if (event === 'stateChange')
|
|
141
|
+
this.stateListeners.add(listener);
|
|
142
|
+
return this;
|
|
143
|
+
}
|
|
144
|
+
off(event, listener) {
|
|
145
|
+
if (event === 'stateChange')
|
|
146
|
+
this.stateListeners.delete(listener);
|
|
147
|
+
return this;
|
|
148
|
+
}
|
|
149
|
+
send(data) {
|
|
150
|
+
if (this._state !== ConnectionState.Open) {
|
|
151
|
+
throw new Error(`cannot send in state ${this._state}`);
|
|
152
|
+
}
|
|
153
|
+
// Copy into an exact-size buffer: callers may hand us views.
|
|
154
|
+
const copy = new Uint8Array(data.length);
|
|
155
|
+
copy.set(data);
|
|
156
|
+
this.dc.send(copy.buffer);
|
|
157
|
+
}
|
|
158
|
+
// ── Lifecycle ───────────────────────────────────────────────
|
|
159
|
+
get isOpen() {
|
|
160
|
+
return this._state === ConnectionState.Open && this.dc.readyState === 'open';
|
|
161
|
+
}
|
|
162
|
+
close() {
|
|
163
|
+
if (this._state === ConnectionState.Closed)
|
|
164
|
+
return;
|
|
165
|
+
this.setState(ConnectionState.Closed);
|
|
166
|
+
if (this.pingTimer)
|
|
167
|
+
clearInterval(this.pingTimer);
|
|
168
|
+
try {
|
|
169
|
+
this.dc.close();
|
|
170
|
+
}
|
|
171
|
+
catch { /* already closed */ }
|
|
172
|
+
try {
|
|
173
|
+
this.pc.close();
|
|
174
|
+
}
|
|
175
|
+
catch { /* already closed */ }
|
|
176
|
+
this.signaling.close();
|
|
177
|
+
}
|
|
178
|
+
fail(reason) {
|
|
179
|
+
if (this._state === ConnectionState.Closed)
|
|
180
|
+
return;
|
|
181
|
+
this.close();
|
|
182
|
+
this.onClose(reason);
|
|
183
|
+
}
|
|
184
|
+
setState(state) {
|
|
185
|
+
if (this._state === state)
|
|
186
|
+
return;
|
|
187
|
+
this._state = state;
|
|
188
|
+
for (const listener of this.stateListeners)
|
|
189
|
+
listener(state);
|
|
190
|
+
}
|
|
191
|
+
sendFrame(type, payload) {
|
|
192
|
+
this.messageId = (this.messageId + 1) & 0xffffffff;
|
|
193
|
+
this.send(encodeFrame({ type, messageId: this.messageId, payload }));
|
|
194
|
+
}
|
|
195
|
+
handleMessage(data) {
|
|
196
|
+
const bytes = typeof data === 'string' ? new TextEncoder().encode(data) : new Uint8Array(data);
|
|
197
|
+
let frames;
|
|
198
|
+
try {
|
|
199
|
+
frames = this.decoder.feed(bytes);
|
|
200
|
+
}
|
|
201
|
+
catch (err) {
|
|
202
|
+
this.fail(`frame decode error: ${String(err)}`);
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
for (const frame of frames) {
|
|
206
|
+
if (frame.type === MessageType.Ping) {
|
|
207
|
+
this.send(encodeFrame({ type: MessageType.Pong, messageId: frame.messageId, payload: frame.payload }));
|
|
208
|
+
}
|
|
209
|
+
else if (frame.type === MessageType.Pong) {
|
|
210
|
+
this.awaitingPong = false;
|
|
211
|
+
this.missedPongs = 0;
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
this.onFrame(frame);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
startKeepalive() {
|
|
219
|
+
this.pingTimer = setInterval(() => {
|
|
220
|
+
if (!this.isOpen)
|
|
221
|
+
return;
|
|
222
|
+
if (this.awaitingPong) {
|
|
223
|
+
this.missedPongs++;
|
|
224
|
+
if (this.missedPongs >= MAX_MISSED_PONGS) {
|
|
225
|
+
this.fail('keepalive timeout');
|
|
226
|
+
return;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
const payload = new Uint8Array(8);
|
|
230
|
+
new DataView(payload.buffer).setBigUint64(0, BigInt(Date.now()));
|
|
231
|
+
this.awaitingPong = true;
|
|
232
|
+
this.sendFrame(MessageType.Ping, payload);
|
|
233
|
+
}, PING_INTERVAL_MS);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Classify the selected ICE path from getStats(): 'relay' when either side of
|
|
238
|
+
* the nominated candidate pair is a TURN relay candidate. Returns 'unknown'
|
|
239
|
+
* when stats are unavailable (e.g. non-browser polyfills). Never surfaces
|
|
240
|
+
* addresses or raw candidates.
|
|
241
|
+
*/
|
|
242
|
+
async function classifyConnectionPath(pc) {
|
|
243
|
+
try {
|
|
244
|
+
const stats = await pc.getStats();
|
|
245
|
+
const byId = new Map();
|
|
246
|
+
stats.forEach((report, id) => byId.set(id, report));
|
|
247
|
+
let selected;
|
|
248
|
+
for (const report of byId.values()) {
|
|
249
|
+
if (report.type !== 'candidate-pair')
|
|
250
|
+
continue;
|
|
251
|
+
if (report.selected === true || (report.nominated === true && report.state === 'succeeded')) {
|
|
252
|
+
selected = report;
|
|
253
|
+
break;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
// Firefox marks the pair via the transport's selectedCandidatePairId.
|
|
257
|
+
if (!selected) {
|
|
258
|
+
for (const report of byId.values()) {
|
|
259
|
+
if (report.type === 'transport' && typeof report.selectedCandidatePairId === 'string') {
|
|
260
|
+
selected = byId.get(report.selectedCandidatePairId);
|
|
261
|
+
break;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
if (!selected)
|
|
266
|
+
return 'unknown';
|
|
267
|
+
for (const key of ['localCandidateId', 'remoteCandidateId']) {
|
|
268
|
+
const candidateId = selected[key];
|
|
269
|
+
if (typeof candidateId !== 'string')
|
|
270
|
+
continue;
|
|
271
|
+
if (byId.get(candidateId)?.candidateType === 'relay')
|
|
272
|
+
return 'relay';
|
|
273
|
+
}
|
|
274
|
+
return 'direct';
|
|
275
|
+
}
|
|
276
|
+
catch {
|
|
277
|
+
return 'unknown';
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
//# sourceMappingURL=connection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser-side connection auth: builds the signed hello envelope using the
|
|
3
|
+
* shared wire format from @antseed/protocol.
|
|
4
|
+
*/
|
|
5
|
+
import { Wallet, type Signer } from 'ethers';
|
|
6
|
+
import { type ConnectionAuthEnvelope } from '@antseed/protocol/connection-auth';
|
|
7
|
+
export type { ConnectionAuthEnvelope };
|
|
8
|
+
export declare function signerFromPrivateKey(privateKeyHex: string): Wallet;
|
|
9
|
+
export declare function peerIdOf(signer: Signer): Promise<string>;
|
|
10
|
+
export declare function buildHelloEnvelope(signer: Signer): Promise<ConnectionAuthEnvelope>;
|
|
11
|
+
//# sourceMappingURL=identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,mCAAmC,CAAC;AAE3C,YAAY,EAAE,sBAAsB,EAAE,CAAC;AAEvC,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAGlE;AAED,wBAAsB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE9D;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAQxF"}
|
package/dist/identity.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser-side connection auth: builds the signed hello envelope using the
|
|
3
|
+
* shared wire format from @antseed/protocol.
|
|
4
|
+
*/
|
|
5
|
+
import { Wallet } from 'ethers';
|
|
6
|
+
import { MSG_SIGNING_DOMAIN, buildConnectionAuthPayload, } from '@antseed/protocol/connection-auth';
|
|
7
|
+
export function signerFromPrivateKey(privateKeyHex) {
|
|
8
|
+
const key = privateKeyHex.startsWith('0x') ? privateKeyHex : `0x${privateKeyHex}`;
|
|
9
|
+
return new Wallet(key);
|
|
10
|
+
}
|
|
11
|
+
export async function peerIdOf(signer) {
|
|
12
|
+
return (await signer.getAddress()).slice(2).toLowerCase();
|
|
13
|
+
}
|
|
14
|
+
export async function buildHelloEnvelope(signer) {
|
|
15
|
+
const peerId = await peerIdOf(signer);
|
|
16
|
+
const ts = Date.now();
|
|
17
|
+
const nonceBytes = crypto.getRandomValues(new Uint8Array(16));
|
|
18
|
+
const nonce = [...nonceBytes].map((b) => b.toString(16).padStart(2, '0')).join('');
|
|
19
|
+
const payload = buildConnectionAuthPayload('hello', peerId, ts, nonce);
|
|
20
|
+
const sig = (await signer.signMessage(MSG_SIGNING_DOMAIN + payload)).slice(2).toLowerCase();
|
|
21
|
+
return { peerId, ts, nonce, sig };
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAe,MAAM,QAAQ,CAAC;AAC7C,OAAO,EACL,kBAAkB,EAClB,0BAA0B,GAE3B,MAAM,mCAAmC,CAAC;AAI3C,MAAM,UAAU,oBAAoB,CAAC,aAAqB;IACxD,MAAM,GAAG,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,aAAa,EAAE,CAAC;IAClF,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,MAAc;IAC3C,OAAO,CAAC,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AAC5D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAAc;IACrD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACtB,MAAM,UAAU,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnF,MAAM,OAAO,GAAG,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IACvE,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5F,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AACpC,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { AntseedWebClient, SellerSession, sellerSummaryFromMetadata, type ClientOptions, type RequestInput, type SellerSummary, type StreamCallbacks, type WebPaymentConfig, } from './client.js';
|
|
2
|
+
export { SellerConnection, type ConnectionInfo, type ConnectionOptions, type ConnectionPathInfo, type RtcEnvironment, } from './connection.js';
|
|
3
|
+
export { IndexedDbChannelStore, MemoryChannelStore, type IndexedDbChannelStoreOptions, } from './channel-store.js';
|
|
4
|
+
export { buildHelloEnvelope, peerIdOf, signerFromPrivateKey, type ConnectionAuthEnvelope } from './identity.js';
|
|
5
|
+
export { SignalingSocket, type SignalingMessage, type WebSocketCtor } from './signaling.js';
|
|
6
|
+
export { BuyerAlreadyActiveError, BuyerTabLock, type WebLockLike, type WebLockManagerLike, } from './tab-lock.js';
|
|
7
|
+
export * from '@antseed/buyer-core';
|
|
8
|
+
export * from '@antseed/protocol';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,yBAAyB,EACzB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,gBAAgB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,gBAAgB,EAChB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,cAAc,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,KAAK,4BAA4B,GAClC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,KAAK,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAChH,OAAO,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC5F,OAAO,EACL,uBAAuB,EACvB,YAAY,EACZ,KAAK,WAAW,EAChB,KAAK,kBAAkB,GACxB,MAAM,eAAe,CAAC;AAGvB,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { AntseedWebClient, SellerSession, sellerSummaryFromMetadata, } from './client.js';
|
|
2
|
+
export { SellerConnection, } from './connection.js';
|
|
3
|
+
export { IndexedDbChannelStore, MemoryChannelStore, } from './channel-store.js';
|
|
4
|
+
export { buildHelloEnvelope, peerIdOf, signerFromPrivateKey } from './identity.js';
|
|
5
|
+
export { SignalingSocket } from './signaling.js';
|
|
6
|
+
export { BuyerAlreadyActiveError, BuyerTabLock, } from './tab-lock.js';
|
|
7
|
+
// The buyer machinery and wire format are shared with @antseed/node.
|
|
8
|
+
export * from '@antseed/buyer-core';
|
|
9
|
+
export * from '@antseed/protocol';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,yBAAyB,GAM1B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,gBAAgB,GAKjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,qBAAqB,EACrB,kBAAkB,GAEnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,oBAAoB,EAA+B,MAAM,eAAe,CAAC;AAChH,OAAO,EAAE,eAAe,EAA6C,MAAM,gBAAgB,CAAC;AAC5F,OAAO,EACL,uBAAuB,EACvB,YAAY,GAGb,MAAM,eAAe,CAAC;AAEvB,qEAAqE;AACrE,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Newline-delimited JSON signaling over a relay WebSocket. The relay pipes
|
|
3
|
+
* bytes verbatim to the seller's TCP signaling port, so the messages here are
|
|
4
|
+
* exactly what packages/node/src/p2p/connection-manager.ts expects.
|
|
5
|
+
*
|
|
6
|
+
* The hello line is sent as its own WebSocket frame: the seller caps all
|
|
7
|
+
* bytes buffered before the first newline at 8 KiB, so the SDP offer must
|
|
8
|
+
* never coalesce with the hello.
|
|
9
|
+
*/
|
|
10
|
+
import type { ConnectionAuthEnvelope } from './identity.js';
|
|
11
|
+
export type SignalingMessage = {
|
|
12
|
+
type: 'sdp';
|
|
13
|
+
sdp: string;
|
|
14
|
+
descriptionType: string;
|
|
15
|
+
} | {
|
|
16
|
+
type: 'candidate';
|
|
17
|
+
candidate: string;
|
|
18
|
+
mid: string;
|
|
19
|
+
};
|
|
20
|
+
export interface HelloMessage {
|
|
21
|
+
type: 'hello';
|
|
22
|
+
auth: ConnectionAuthEnvelope;
|
|
23
|
+
capabilities?: string[];
|
|
24
|
+
}
|
|
25
|
+
export type WebSocketLike = {
|
|
26
|
+
binaryType: string;
|
|
27
|
+
readonly readyState: number;
|
|
28
|
+
send(data: string): void;
|
|
29
|
+
close(code?: number, reason?: string): void;
|
|
30
|
+
addEventListener(type: string, listener: (event: any) => void): void;
|
|
31
|
+
};
|
|
32
|
+
export type WebSocketCtor = new (url: string) => WebSocketLike;
|
|
33
|
+
export declare class SignalingSocket {
|
|
34
|
+
private ws;
|
|
35
|
+
private buffer;
|
|
36
|
+
private decoder;
|
|
37
|
+
onMessage: (msg: SignalingMessage) => void;
|
|
38
|
+
onClose: (reason: string) => void;
|
|
39
|
+
private constructor();
|
|
40
|
+
static connect(url: string, WebSocketImpl: WebSocketCtor): Promise<SignalingSocket>;
|
|
41
|
+
sendHello(hello: HelloMessage): void;
|
|
42
|
+
sendSignal(msg: SignalingMessage): void;
|
|
43
|
+
close(): void;
|
|
44
|
+
private handleData;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=signaling.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signaling.d.ts","sourceRoot":"","sources":["../src/signaling.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAE5D,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,sBAAsB,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;CACtE,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,EAAE,MAAM,KAAK,aAAa,CAAC;AAI/D,qBAAa,eAAe;IAC1B,OAAO,CAAC,EAAE,CAAgB;IAC1B,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,OAAO,CAAqB;IAEpC,SAAS,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,IAAI,CAAY;IACtD,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAY;IAE7C,OAAO;WAIM,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC;IAkBzF,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAIpC,UAAU,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI;IAKvC,KAAK,IAAI,IAAI;IAQb,OAAO,CAAC,UAAU;CAqCnB"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Newline-delimited JSON signaling over a relay WebSocket. The relay pipes
|
|
3
|
+
* bytes verbatim to the seller's TCP signaling port, so the messages here are
|
|
4
|
+
* exactly what packages/node/src/p2p/connection-manager.ts expects.
|
|
5
|
+
*
|
|
6
|
+
* The hello line is sent as its own WebSocket frame: the seller caps all
|
|
7
|
+
* bytes buffered before the first newline at 8 KiB, so the SDP offer must
|
|
8
|
+
* never coalesce with the hello.
|
|
9
|
+
*/
|
|
10
|
+
const MAX_LINE_BUFFER = 64 * 1024;
|
|
11
|
+
export class SignalingSocket {
|
|
12
|
+
ws;
|
|
13
|
+
buffer = '';
|
|
14
|
+
decoder = new TextDecoder();
|
|
15
|
+
onMessage = () => { };
|
|
16
|
+
onClose = () => { };
|
|
17
|
+
constructor(ws) {
|
|
18
|
+
this.ws = ws;
|
|
19
|
+
}
|
|
20
|
+
static async connect(url, WebSocketImpl) {
|
|
21
|
+
const ws = new WebSocketImpl(url);
|
|
22
|
+
ws.binaryType = 'arraybuffer';
|
|
23
|
+
const socket = new SignalingSocket(ws);
|
|
24
|
+
await new Promise((resolve, reject) => {
|
|
25
|
+
ws.addEventListener('open', () => resolve());
|
|
26
|
+
ws.addEventListener('error', () => reject(new Error(`signaling connect failed: ${url}`)));
|
|
27
|
+
ws.addEventListener('close', (event) => reject(new Error(`signaling closed: ${event.code} ${event.reason ?? ''}`)));
|
|
28
|
+
});
|
|
29
|
+
ws.addEventListener('message', (event) => socket.handleData(event.data));
|
|
30
|
+
ws.addEventListener('close', (event) => socket.onClose(`${event.code ?? ''} ${event.reason ?? ''}`.trim()));
|
|
31
|
+
return socket;
|
|
32
|
+
}
|
|
33
|
+
sendHello(hello) {
|
|
34
|
+
this.ws.send(JSON.stringify(hello) + '\n');
|
|
35
|
+
}
|
|
36
|
+
sendSignal(msg) {
|
|
37
|
+
if (this.ws.readyState !== 1)
|
|
38
|
+
return;
|
|
39
|
+
this.ws.send(JSON.stringify(msg) + '\n');
|
|
40
|
+
}
|
|
41
|
+
close() {
|
|
42
|
+
try {
|
|
43
|
+
this.ws.close(1000, 'done');
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
// already closed
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
handleData(data) {
|
|
50
|
+
if (typeof data === 'string') {
|
|
51
|
+
this.buffer += data;
|
|
52
|
+
}
|
|
53
|
+
else if (data instanceof ArrayBuffer) {
|
|
54
|
+
this.buffer += this.decoder.decode(new Uint8Array(data), { stream: true });
|
|
55
|
+
}
|
|
56
|
+
else if (ArrayBuffer.isView(data)) {
|
|
57
|
+
const view = data;
|
|
58
|
+
this.buffer += this.decoder.decode(new Uint8Array(view.buffer, view.byteOffset, view.byteLength), { stream: true });
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
if (this.buffer.length > MAX_LINE_BUFFER) {
|
|
64
|
+
this.close();
|
|
65
|
+
this.onClose('signaling buffer overflow');
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
let newline;
|
|
69
|
+
while ((newline = this.buffer.indexOf('\n')) >= 0) {
|
|
70
|
+
const line = this.buffer.slice(0, newline).trim();
|
|
71
|
+
this.buffer = this.buffer.slice(newline + 1);
|
|
72
|
+
if (!line)
|
|
73
|
+
continue;
|
|
74
|
+
let parsed;
|
|
75
|
+
try {
|
|
76
|
+
parsed = JSON.parse(line);
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
this.close();
|
|
80
|
+
this.onClose('malformed signaling line');
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
this.onMessage(parsed);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=signaling.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signaling.js","sourceRoot":"","sources":["../src/signaling.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAwBH,MAAM,eAAe,GAAG,EAAE,GAAG,IAAI,CAAC;AAElC,MAAM,OAAO,eAAe;IAClB,EAAE,CAAgB;IAClB,MAAM,GAAG,EAAE,CAAC;IACZ,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAEpC,SAAS,GAAoC,GAAG,EAAE,GAAE,CAAC,CAAC;IACtD,OAAO,GAA6B,GAAG,EAAE,GAAE,CAAC,CAAC;IAE7C,YAAoB,EAAiB;QACnC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,aAA4B;QAC5D,MAAM,EAAE,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;QAClC,EAAE,CAAC,UAAU,GAAG,aAAa,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;QACvC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7C,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YAC1F,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAyC,EAAE,EAAE,CACzE,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,CAAC,CAC3E,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAwB,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5F,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAyC,EAAE,EAAE,CACzE,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CACnE,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,SAAS,CAAC,KAAmB;QAC3B,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,UAAU,CAAC,GAAqB;QAC9B,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,CAAC;YAAE,OAAO;QACrC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK;QACH,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,iBAAiB;QACnB,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,IAAa;QAC9B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;QACtB,CAAC;aAAM,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7E,CAAC;aAAM,IAAI,WAAW,CAAC,MAAM,CAAC,IAAuB,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,GAAG,IAAuB,CAAC;YACrC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAChC,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,EAC7D,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;YACzC,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,IAAI,OAAe,CAAC;QACpB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;YAC7C,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,IAAI,MAAwB,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAqB,CAAC;YAChD,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;gBACzC,OAAO;YACT,CAAC;YACD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;CACF"}
|