@device-portal/react 0.0.4 → 0.0.7
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/dist/_virtual/_rollupPluginBabelHelpers.js +1 -367
- package/dist/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
- package/dist/client/src/delay.d.ts +1 -0
- package/dist/client/src/index.d.ts +7 -0
- package/dist/client/src/settings.d.ts +9 -0
- package/dist/client/src/utilities/Brand.d.ts +5 -0
- package/dist/client/src/webrtc/Initiator.d.ts +41 -0
- package/dist/client/src/webrtc/Peer.d.ts +40 -0
- package/dist/client/src/webrtc/PeerId.d.ts +2 -0
- package/dist/client/src/webrtc/Responder.d.ts +14 -0
- package/dist/consumer/DevicePortalConsumer.js +8 -16
- package/dist/consumer/DevicePortalConsumer.js.map +1 -1
- package/dist/consumer/useDevicePortalConsumer.js +3 -6
- package/dist/consumer/useDevicePortalConsumer.js.map +1 -1
- package/dist/provider/DevicePortalProvider.js +3 -3
- package/dist/provider/DevicePortalProvider.js.map +1 -1
- package/dist/provider/useDevicePortalPeer.js.map +1 -1
- package/dist/provider/useDevicePortalProvider.js +1 -3
- package/dist/provider/useDevicePortalProvider.js.map +1 -1
- package/dist/react/src/consumer/DevicePortalConsumer.d.ts +9 -0
- package/dist/react/src/consumer/useDevicePortalConsumer.d.ts +9 -0
- package/dist/react/src/index.d.ts +6 -0
- package/dist/react/src/provider/DevicePortalProvider.d.ts +13 -0
- package/dist/react/src/provider/useDevicePortalPeer.d.ts +6 -0
- package/dist/react/src/provider/useDevicePortalProvider.d.ts +11 -0
- package/package.json +15 -3
- package/dist/delay.js +0 -8
- package/dist/delay.js.map +0 -1
- package/dist/settings.js +0 -12
- package/dist/settings.js.map +0 -1
- package/dist/webrtc/Initiator.js +0 -359
- package/dist/webrtc/Initiator.js.map +0 -1
- package/dist/webrtc/Peer.js +0 -367
- package/dist/webrtc/Peer.js.map +0 -1
- package/dist/webrtc/Responder.js +0 -133
- package/dist/webrtc/Responder.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Initiator.js","sources":["../../src/webrtc/Initiator.ts"],"sourcesContent":["import { Peer } from './Peer'\nimport { settings } from '../settings'\nimport { PeerId } from './PeerId'\n\ntype ClientConnection = {\n\tconnection: RTCPeerConnection\n\tchannel: RTCDataChannel\n\tcandidatesQueue: RTCIceCandidateInit[]\n\tvalue?: { value: string }\n}\n\nexport class Initiator extends Peer {\n\tprotected role = 'initiator' as const\n\tprotected connections = new Map<PeerId, ClientConnection>()\n\tprotected waitingPeers = new Set<PeerId>()\n\tprotected readonly maxClients: number\n\tprotected peerListeners = new Map<PeerId, Set<(value: string) => void>>()\n\tprotected onPeersChange: ((peers: PeerId[]) => void) | undefined\n\tprotected override readonly onMessage:\n\t\t| ((value: string, peerId: PeerId) => void)\n\t\t| undefined\n\n\tconstructor(\n\t\troom: string,\n\t\toptions: {\n\t\t\tonMessage?: (value: string, peerId: PeerId) => void\n\t\t\tonPeersChange?: (peers: PeerId[]) => void\n\t\t\tsendLastValueOnConnectAndReconnect?: boolean\n\t\t\twebsocketSignalingServer?: string\n\t\t\ticeServers?: Array<RTCIceServer>\n\t\t\tmaxClients?: number\n\t\t} = {},\n\t) {\n\t\tsuper(room, options)\n\t\tthis.onMessage = options.onMessage\n\t\tthis.onPeersChange = options.onPeersChange\n\t\tthis.maxClients = options.maxClients ?? 1\n\t}\n\n\tpublic get peers(): PeerId[] {\n\t\treturn Array.from(this.connections.keys())\n\t}\n\n\tpublic addPeerListener(peerId: PeerId, listener: (value: string) => void) {\n\t\tif (!this.peerListeners.has(peerId)) {\n\t\t\tthis.peerListeners.set(peerId, new Set())\n\t\t}\n\t\tthis.peerListeners.get(peerId)!.add(listener)\n\t\treturn () => {\n\t\t\tthis.peerListeners.get(peerId)?.delete(listener)\n\t\t}\n\t}\n\n\tprotected onConnected(): void {\n\t\tconsole.log('[Initiator] Connected to signaling server')\n\t}\n\n\tprotected async handlePeerJoined(peerId: PeerId) {\n\t\tconsole.log(`[Initiator] Peer ${peerId} joined`)\n\t\tif (this.connections.size >= this.maxClients) {\n\t\t\tconsole.log(\n\t\t\t\t`[Initiator] Max clients reached, adding ${peerId} to waiting list`,\n\t\t\t)\n\t\t\tthis.waitingPeers.add(peerId)\n\t\t\treturn\n\t\t}\n\t\tawait this.createAndSendOffer(peerId)\n\t\tthis.onPeersChange?.(this.peers)\n\t}\n\n\tprotected handlePeerLeft(peerId: PeerId) {\n\t\tconsole.log(`[Initiator] Peer ${peerId} left`)\n\t\tthis.waitingPeers.delete(peerId)\n\t\tconst client = this.connections.get(peerId)\n\t\tif (client) {\n\t\t\tclient.channel.close()\n\t\t\tclient.connection.close()\n\t\t\tthis.connections.delete(peerId)\n\t\t\tthis.onPeersChange?.(this.peers)\n\t\t\tthis.processWaitingPeers()\n\t\t}\n\t}\n\n\tprotected async processWaitingPeers() {\n\t\tif (\n\t\t\tthis.connections.size >= this.maxClients ||\n\t\t\tthis.waitingPeers.size === 0\n\t\t) {\n\t\t\treturn\n\t\t}\n\n\t\tconst nextPeerId = this.waitingPeers.values().next().value\n\t\tif (nextPeerId) {\n\t\t\tconsole.log(\n\t\t\t\t`[Initiator] Slot available, connecting waiting peer: ${nextPeerId}`,\n\t\t\t)\n\t\t\tthis.waitingPeers.delete(nextPeerId)\n\t\t\tawait this.createAndSendOffer(nextPeerId)\n\t\t\tthis.onPeersChange?.(this.peers)\n\t\t}\n\t}\n\n\tprotected async createAndSendOffer(toPeerId: PeerId) {\n\t\tconsole.log(`[Initiator] Creating offer for ${toPeerId}...`)\n\n\t\t// Close existing connection if any\n\t\tconst existingClient = this.connections.get(toPeerId)\n\t\tif (existingClient) {\n\t\t\tconsole.log(`[Initiator] Closing existing connection for ${toPeerId}`)\n\t\t\texistingClient.connection.close()\n\t\t\texistingClient.channel.close()\n\t\t}\n\n\t\tconst connection = new RTCPeerConnection({ iceServers: this.iceServers })\n\t\tconst channel = connection.createDataChannel(settings.channel.label)\n\t\tconst clientConnection: ClientConnection = {\n\t\t\tconnection,\n\t\t\tchannel,\n\t\t\tcandidatesQueue: [],\n\t\t}\n\n\t\tthis.connections.set(toPeerId, clientConnection)\n\n\t\tconnection.onicecandidate = (event) => {\n\t\t\tif (event.candidate) {\n\t\t\t\tthis.sendMessage('ice-candidate', event.candidate.toJSON(), toPeerId)\n\t\t\t}\n\t\t}\n\n\t\tconnection.oniceconnectionstatechange = () => {\n\t\t\tconsole.log(\n\t\t\t\t`[Initiator] ICE state for ${toPeerId}: ${connection.iceConnectionState}`,\n\t\t\t)\n\t\t\tif (\n\t\t\t\tconnection.iceConnectionState === 'disconnected' ||\n\t\t\t\tconnection.iceConnectionState === 'failed' ||\n\t\t\t\tconnection.iceConnectionState === 'closed'\n\t\t\t) {\n\t\t\t\tthis.connections.delete(toPeerId)\n\t\t\t\tthis.onPeersChange?.(this.peers)\n\t\t\t\tthis.processWaitingPeers()\n\t\t\t}\n\t\t}\n\n\t\tchannel.onopen = () => {\n\t\t\tconsole.log(`[Initiator] Data channel opened for ${toPeerId}`)\n\t\t\tif (this.value && this.sendLastValueOnConnectAndReconnect) {\n\t\t\t\tchannel.send(this.value.value)\n\t\t\t}\n\t\t\tif (clientConnection.value) {\n\t\t\t\tchannel.send(clientConnection.value.value)\n\t\t\t}\n\t\t}\n\n\t\tchannel.onmessage = (event) => {\n\t\t\tconsole.log(`[Initiator] Message from ${toPeerId}: ${event.data}`)\n\t\t\tthis.onMessage?.(event.data, toPeerId)\n\t\t\tconst listeners = this.peerListeners.get(toPeerId)\n\t\t\tif (listeners) {\n\t\t\t\tfor (const listener of listeners) {\n\t\t\t\t\tlistener(event.data)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst offer = await connection.createOffer()\n\t\tawait connection.setLocalDescription(offer)\n\t\tthis.sendMessage('offer', offer, toPeerId)\n\t}\n\n\tprotected handleOffer(\n\t\toffer: RTCSessionDescriptionInit,\n\t\tfromPeerId: PeerId,\n\t): void {\n\t\t// Initiator does not handle offers\n\t}\n\n\tprotected async handleAnswer(\n\t\tanswer: RTCSessionDescriptionInit,\n\t\tfromPeerId: PeerId,\n\t) {\n\t\tconst client = this.connections.get(fromPeerId)\n\t\tif (client) {\n\t\t\tconsole.log(`[Initiator] Handling answer from ${fromPeerId}`)\n\t\t\tawait client.connection.setRemoteDescription(answer)\n\t\t\t// Process queued candidates\n\t\t\twhile (client.candidatesQueue.length > 0) {\n\t\t\t\tconst candidate = client.candidatesQueue.shift()!\n\t\t\t\tawait client.connection.addIceCandidate(new RTCIceCandidate(candidate))\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected async handleIceCandidate(\n\t\tcandidate: RTCIceCandidateInit,\n\t\tfromPeerId?: PeerId,\n\t) {\n\t\tif (!fromPeerId) {\n\t\t\treturn\n\t\t}\n\t\tconst client = this.connections.get(fromPeerId)\n\t\tif (client) {\n\t\t\tif (client.connection.remoteDescription) {\n\t\t\t\tawait client.connection.addIceCandidate(new RTCIceCandidate(candidate))\n\t\t\t} else {\n\t\t\t\tclient.candidatesQueue.push(candidate)\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic send(value: string) {\n\t\tthis.value = { value }\n\t\tfor (const client of this.connections.values()) {\n\t\t\tif (client.channel.readyState === 'open') {\n\t\t\t\tclient.channel.send(value)\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic sendToPeer(peerId: PeerId, value: string) {\n\t\tconst client = this.connections.get(peerId)\n\t\tif (!client) return\n\t\tclient.value = { value }\n\t\tif (client && client.channel.readyState === 'open') {\n\t\t\tclient.channel.send(value)\n\t\t}\n\t}\n\n\tpublic destroy() {\n\t\tsuper.destroy()\n\t\tfor (const client of this.connections.values()) {\n\t\t\tclient.channel.close()\n\t\t\tclient.connection.close()\n\t\t}\n\t\tthis.connections.clear()\n\t\tthis.peerListeners.clear()\n\t}\n}\n"],"names":["Initiator","_Peer","room","_options$maxClients","_this","options","arguments","length","undefined","_classCallCheck","_callSuper","_defineProperty","Map","Set","onMessage","onPeersChange","maxClients","_inherits","_createClass","key","get","Array","from","connections","keys","value","addPeerListener","peerId","listener","_this2","peerListeners","has","set","add","_this2$peerListeners$","onConnected","console","log","_handlePeerJoined","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_this$onPeersChange","wrap","_callee$","_context","prev","next","concat","size","waitingPeers","abrupt","createAndSendOffer","call","peers","stop","handlePeerJoined","_x","apply","handlePeerLeft","client","_this$onPeersChange2","channel","close","connection","processWaitingPeers","_processWaitingPeers","_callee2","nextPeerId","_this$onPeersChange3","_callee2$","_context2","values","_createAndSendOffer","_callee3","toPeerId","_this3","existingClient","clientConnection","offer","_callee3$","_context3","RTCPeerConnection","iceServers","createDataChannel","settings","label","candidatesQueue","onicecandidate","event","candidate","sendMessage","toJSON","oniceconnectionstatechange","iceConnectionState","_this3$onPeersChange","onopen","sendLastValueOnConnectAndReconnect","send","onmessage","_this3$onMessage","data","listeners","_iterator","_createForOfIteratorHelper","_step","s","n","done","err","e","f","createOffer","sent","setLocalDescription","_x2","handleOffer","fromPeerId","_handleAnswer","_callee4","answer","_callee4$","_context4","setRemoteDescription","shift","addIceCandidate","RTCIceCandidate","handleAnswer","_x3","_x4","_handleIceCandidate","_callee5","_callee5$","_context5","remoteDescription","push","handleIceCandidate","_x5","_x6","_iterator2","_step2","readyState","sendToPeer","destroy","_superPropGet","_iterator3","_step3","clear","Peer"],"mappings":"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"}
|
package/dist/webrtc/Peer.js
DELETED
|
@@ -1,367 +0,0 @@
|
|
|
1
|
-
import { createClass as _createClass, asyncToGenerator as _asyncToGenerator, regeneratorRuntime as _regeneratorRuntime, classCallCheck as _classCallCheck, defineProperty as _defineProperty } from '../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
-
import { delay } from '../delay.js';
|
|
3
|
-
import { settings } from '../settings.js';
|
|
4
|
-
|
|
5
|
-
var Peer = /*#__PURE__*/function () {
|
|
6
|
-
function Peer(room) {
|
|
7
|
-
var _options$sendLastValu, _options$websocketSig, _options$iceServers;
|
|
8
|
-
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
9
|
-
_classCallCheck(this, Peer);
|
|
10
|
-
_defineProperty(this, "isDestroyed", false);
|
|
11
|
-
_defineProperty(this, "connection", null);
|
|
12
|
-
_defineProperty(this, "channel", null);
|
|
13
|
-
_defineProperty(this, "value", null);
|
|
14
|
-
_defineProperty(this, "socket", null);
|
|
15
|
-
_defineProperty(this, "candidatesQueue", []);
|
|
16
|
-
_defineProperty(this, "peerId", null);
|
|
17
|
-
this.room = room;
|
|
18
|
-
this.onMessage = options.onMessage;
|
|
19
|
-
this.sendLastValueOnConnectAndReconnect = (_options$sendLastValu = options.sendLastValueOnConnectAndReconnect) !== null && _options$sendLastValu !== void 0 ? _options$sendLastValu : true;
|
|
20
|
-
this.websocketSignalingServer = "".concat(((_options$websocketSig = options.websocketSignalingServer) !== null && _options$websocketSig !== void 0 ? _options$websocketSig : settings.defaultWebsocketSignalingServer).replace(/\/+$/, ''), "/v0/");
|
|
21
|
-
this.iceServers = (_options$iceServers = options.iceServers) !== null && _options$iceServers !== void 0 ? _options$iceServers : settings.iceServers;
|
|
22
|
-
this.run();
|
|
23
|
-
}
|
|
24
|
-
return _createClass(Peer, [{
|
|
25
|
-
key: "run",
|
|
26
|
-
value: function () {
|
|
27
|
-
var _run = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
28
|
-
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
29
|
-
while (1) switch (_context.prev = _context.next) {
|
|
30
|
-
case 0:
|
|
31
|
-
_context.prev = 0;
|
|
32
|
-
_context.next = 3;
|
|
33
|
-
return this.connect();
|
|
34
|
-
case 3:
|
|
35
|
-
_context.next = 8;
|
|
36
|
-
break;
|
|
37
|
-
case 5:
|
|
38
|
-
_context.prev = 5;
|
|
39
|
-
_context.t0 = _context["catch"](0);
|
|
40
|
-
queueMicrotask(function () {
|
|
41
|
-
throw _context.t0;
|
|
42
|
-
});
|
|
43
|
-
case 8:
|
|
44
|
-
case "end":
|
|
45
|
-
return _context.stop();
|
|
46
|
-
}
|
|
47
|
-
}, _callee, this, [[0, 5]]);
|
|
48
|
-
}));
|
|
49
|
-
function run() {
|
|
50
|
-
return _run.apply(this, arguments);
|
|
51
|
-
}
|
|
52
|
-
return run;
|
|
53
|
-
}()
|
|
54
|
-
}, {
|
|
55
|
-
key: "connect",
|
|
56
|
-
value: function connect() {
|
|
57
|
-
var _this = this;
|
|
58
|
-
return new Promise(function (resolve, reject) {
|
|
59
|
-
if (_this.isDestroyed) {
|
|
60
|
-
return reject(new Error('Peer is destroyed'));
|
|
61
|
-
}
|
|
62
|
-
_this.socket = new WebSocket(_this.websocketSignalingServer);
|
|
63
|
-
_this.socket.onopen = function () {
|
|
64
|
-
var _this$socket;
|
|
65
|
-
console.log("[Peer] WebSocket opened for room: ".concat(_this.room));
|
|
66
|
-
(_this$socket = _this.socket) === null || _this$socket === void 0 || _this$socket.send(JSON.stringify({
|
|
67
|
-
type: 'join-room',
|
|
68
|
-
room: _this.room
|
|
69
|
-
}));
|
|
70
|
-
_this.initializeConnectionAndChannel();
|
|
71
|
-
_this.onConnected();
|
|
72
|
-
resolve();
|
|
73
|
-
};
|
|
74
|
-
_this.socket.onmessage = function (event) {
|
|
75
|
-
var _message$data, _message$data2;
|
|
76
|
-
var message = JSON.parse(event.data);
|
|
77
|
-
console.log("[Peer] Received signaling message: ".concat(message.type));
|
|
78
|
-
switch (message.type) {
|
|
79
|
-
case 'identity':
|
|
80
|
-
_this.peerId = message.data.peerId;
|
|
81
|
-
console.log("[Peer] My peer ID is: ".concat(_this.peerId));
|
|
82
|
-
break;
|
|
83
|
-
case 'peer-joined':
|
|
84
|
-
if ((_message$data = message.data) !== null && _message$data !== void 0 && _message$data.peerId) {
|
|
85
|
-
_this.handlePeerJoined(message.data.peerId);
|
|
86
|
-
}
|
|
87
|
-
break;
|
|
88
|
-
case 'peer-left':
|
|
89
|
-
if ((_message$data2 = message.data) !== null && _message$data2 !== void 0 && _message$data2.peerId) {
|
|
90
|
-
_this.handlePeerLeft(message.data.peerId);
|
|
91
|
-
}
|
|
92
|
-
break;
|
|
93
|
-
case 'offer':
|
|
94
|
-
_this.handleOffer(message.data, message.from);
|
|
95
|
-
break;
|
|
96
|
-
case 'answer':
|
|
97
|
-
_this.handleAnswer(message.data, message.from);
|
|
98
|
-
break;
|
|
99
|
-
case 'ice-candidate':
|
|
100
|
-
_this.handleIceCandidate(message.data, message.from);
|
|
101
|
-
break;
|
|
102
|
-
}
|
|
103
|
-
};
|
|
104
|
-
_this.socket.onclose = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
|
|
105
|
-
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
106
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
107
|
-
case 0:
|
|
108
|
-
console.log('[Peer] WebSocket closed');
|
|
109
|
-
_this.socket = null;
|
|
110
|
-
if (_this.isDestroyed) {
|
|
111
|
-
_context2.next = 8;
|
|
112
|
-
break;
|
|
113
|
-
}
|
|
114
|
-
console.log('[Peer] Attempting reconnect in 1s...');
|
|
115
|
-
_context2.next = 6;
|
|
116
|
-
return delay(1000);
|
|
117
|
-
case 6:
|
|
118
|
-
_context2.next = 8;
|
|
119
|
-
return _this.run();
|
|
120
|
-
case 8:
|
|
121
|
-
case "end":
|
|
122
|
-
return _context2.stop();
|
|
123
|
-
}
|
|
124
|
-
}, _callee2);
|
|
125
|
-
}));
|
|
126
|
-
_this.socket.onerror = function (error) {
|
|
127
|
-
console.error('WebSocket error:', error);
|
|
128
|
-
reject(error);
|
|
129
|
-
};
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
}, {
|
|
133
|
-
key: "handleIceCandidate",
|
|
134
|
-
value: function () {
|
|
135
|
-
var _handleIceCandidate = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(candidate, fromPeerId) {
|
|
136
|
-
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
137
|
-
while (1) switch (_context3.prev = _context3.next) {
|
|
138
|
-
case 0:
|
|
139
|
-
if (this.connection) {
|
|
140
|
-
_context3.next = 2;
|
|
141
|
-
break;
|
|
142
|
-
}
|
|
143
|
-
return _context3.abrupt("return");
|
|
144
|
-
case 2:
|
|
145
|
-
if (!this.connection.remoteDescription) {
|
|
146
|
-
_context3.next = 14;
|
|
147
|
-
break;
|
|
148
|
-
}
|
|
149
|
-
_context3.prev = 3;
|
|
150
|
-
console.log('[Peer] Adding received ICE candidate');
|
|
151
|
-
_context3.next = 7;
|
|
152
|
-
return this.connection.addIceCandidate(new RTCIceCandidate(candidate));
|
|
153
|
-
case 7:
|
|
154
|
-
_context3.next = 12;
|
|
155
|
-
break;
|
|
156
|
-
case 9:
|
|
157
|
-
_context3.prev = 9;
|
|
158
|
-
_context3.t0 = _context3["catch"](3);
|
|
159
|
-
console.error('[Peer] Error adding ice candidate:', _context3.t0);
|
|
160
|
-
case 12:
|
|
161
|
-
_context3.next = 16;
|
|
162
|
-
break;
|
|
163
|
-
case 14:
|
|
164
|
-
console.log('[Peer] Queuing ICE candidate (remote description not set)');
|
|
165
|
-
this.candidatesQueue.push(candidate);
|
|
166
|
-
case 16:
|
|
167
|
-
case "end":
|
|
168
|
-
return _context3.stop();
|
|
169
|
-
}
|
|
170
|
-
}, _callee3, this, [[3, 9]]);
|
|
171
|
-
}));
|
|
172
|
-
function handleIceCandidate(_x, _x2) {
|
|
173
|
-
return _handleIceCandidate.apply(this, arguments);
|
|
174
|
-
}
|
|
175
|
-
return handleIceCandidate;
|
|
176
|
-
}()
|
|
177
|
-
}, {
|
|
178
|
-
key: "processCandidatesQueue",
|
|
179
|
-
value: function () {
|
|
180
|
-
var _processCandidatesQueue = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
|
|
181
|
-
var candidate;
|
|
182
|
-
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
183
|
-
while (1) switch (_context4.prev = _context4.next) {
|
|
184
|
-
case 0:
|
|
185
|
-
if (this.connection) {
|
|
186
|
-
_context4.next = 2;
|
|
187
|
-
break;
|
|
188
|
-
}
|
|
189
|
-
return _context4.abrupt("return");
|
|
190
|
-
case 2:
|
|
191
|
-
if (this.candidatesQueue.length > 0) {
|
|
192
|
-
console.log("[Peer] Processing ".concat(this.candidatesQueue.length, " queued ICE candidates"));
|
|
193
|
-
}
|
|
194
|
-
case 3:
|
|
195
|
-
if (!(this.candidatesQueue.length > 0)) {
|
|
196
|
-
_context4.next = 15;
|
|
197
|
-
break;
|
|
198
|
-
}
|
|
199
|
-
candidate = this.candidatesQueue.shift();
|
|
200
|
-
_context4.prev = 5;
|
|
201
|
-
_context4.next = 8;
|
|
202
|
-
return this.connection.addIceCandidate(new RTCIceCandidate(candidate));
|
|
203
|
-
case 8:
|
|
204
|
-
_context4.next = 13;
|
|
205
|
-
break;
|
|
206
|
-
case 10:
|
|
207
|
-
_context4.prev = 10;
|
|
208
|
-
_context4.t0 = _context4["catch"](5);
|
|
209
|
-
console.error('[Peer] Error adding queued ice candidate:', _context4.t0);
|
|
210
|
-
case 13:
|
|
211
|
-
_context4.next = 3;
|
|
212
|
-
break;
|
|
213
|
-
case 15:
|
|
214
|
-
case "end":
|
|
215
|
-
return _context4.stop();
|
|
216
|
-
}
|
|
217
|
-
}, _callee4, this, [[5, 10]]);
|
|
218
|
-
}));
|
|
219
|
-
function processCandidatesQueue() {
|
|
220
|
-
return _processCandidatesQueue.apply(this, arguments);
|
|
221
|
-
}
|
|
222
|
-
return processCandidatesQueue;
|
|
223
|
-
}()
|
|
224
|
-
}, {
|
|
225
|
-
key: "close",
|
|
226
|
-
value: function close() {
|
|
227
|
-
var _this$connection, _this$channel, _this$socket2;
|
|
228
|
-
(_this$connection = this.connection) === null || _this$connection === void 0 || _this$connection.close();
|
|
229
|
-
this.connection = null;
|
|
230
|
-
(_this$channel = this.channel) === null || _this$channel === void 0 || _this$channel.close();
|
|
231
|
-
this.channel = null;
|
|
232
|
-
(_this$socket2 = this.socket) === null || _this$socket2 === void 0 || _this$socket2.close();
|
|
233
|
-
this.socket = null;
|
|
234
|
-
}
|
|
235
|
-
}, {
|
|
236
|
-
key: "destroy",
|
|
237
|
-
value: function destroy() {
|
|
238
|
-
this.isDestroyed = true;
|
|
239
|
-
this.close();
|
|
240
|
-
}
|
|
241
|
-
}, {
|
|
242
|
-
key: "sendMessage",
|
|
243
|
-
value: function sendMessage(type, data, to) {
|
|
244
|
-
var _this$socket3;
|
|
245
|
-
if (((_this$socket3 = this.socket) === null || _this$socket3 === void 0 ? void 0 : _this$socket3.readyState) === WebSocket.OPEN) {
|
|
246
|
-
console.log("[Peer] Sending signaling message: ".concat(type).concat(to ? " to ".concat(to) : ''));
|
|
247
|
-
this.socket.send(JSON.stringify({
|
|
248
|
-
type: type,
|
|
249
|
-
room: this.room,
|
|
250
|
-
data: data,
|
|
251
|
-
to: to
|
|
252
|
-
}));
|
|
253
|
-
} else {
|
|
254
|
-
console.warn("[Peer] Cannot send message ".concat(type, ", WebSocket not open"));
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
}, {
|
|
258
|
-
key: "setAndShareLocalDescription",
|
|
259
|
-
value: function () {
|
|
260
|
-
var _setAndShareLocalDescription = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5(description, toPeerId) {
|
|
261
|
-
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
262
|
-
while (1) switch (_context5.prev = _context5.next) {
|
|
263
|
-
case 0:
|
|
264
|
-
if (this.connection) {
|
|
265
|
-
_context5.next = 2;
|
|
266
|
-
break;
|
|
267
|
-
}
|
|
268
|
-
throw new Error('Connection is not initialized');
|
|
269
|
-
case 2:
|
|
270
|
-
console.log("[Peer] Setting local description (".concat(description.type, ")"));
|
|
271
|
-
_context5.next = 5;
|
|
272
|
-
return this.connection.setLocalDescription(description);
|
|
273
|
-
case 5:
|
|
274
|
-
this.sendMessage(description.type, description, toPeerId);
|
|
275
|
-
case 6:
|
|
276
|
-
case "end":
|
|
277
|
-
return _context5.stop();
|
|
278
|
-
}
|
|
279
|
-
}, _callee5, this);
|
|
280
|
-
}));
|
|
281
|
-
function setAndShareLocalDescription(_x3, _x4) {
|
|
282
|
-
return _setAndShareLocalDescription.apply(this, arguments);
|
|
283
|
-
}
|
|
284
|
-
return setAndShareLocalDescription;
|
|
285
|
-
}()
|
|
286
|
-
}, {
|
|
287
|
-
key: "shareNewIceCandidate",
|
|
288
|
-
value: function shareNewIceCandidate(event, toPeerId) {
|
|
289
|
-
if (event.candidate) {
|
|
290
|
-
console.log('[Peer] Generated new ICE candidate');
|
|
291
|
-
this.sendMessage('ice-candidate', event.candidate.toJSON(), toPeerId);
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
}, {
|
|
295
|
-
key: "send",
|
|
296
|
-
value: function send(value) {
|
|
297
|
-
var _this$channel2;
|
|
298
|
-
if (((_this$channel2 = this.channel) === null || _this$channel2 === void 0 ? void 0 : _this$channel2.readyState) === 'open') {
|
|
299
|
-
this.channel.send(value);
|
|
300
|
-
}
|
|
301
|
-
this.value = {
|
|
302
|
-
value: value
|
|
303
|
-
};
|
|
304
|
-
}
|
|
305
|
-
}, {
|
|
306
|
-
key: "initializeConnectionAndChannel",
|
|
307
|
-
value: function initializeConnectionAndChannel() {
|
|
308
|
-
var _this2 = this;
|
|
309
|
-
if (this.connection) {
|
|
310
|
-
return;
|
|
311
|
-
}
|
|
312
|
-
this.candidatesQueue = [];
|
|
313
|
-
this.connection = new RTCPeerConnection({
|
|
314
|
-
iceServers: this.iceServers
|
|
315
|
-
});
|
|
316
|
-
this.connection.onicecandidate = this.shareNewIceCandidate.bind(this);
|
|
317
|
-
this.connection.oniceconnectionstatechange = function () {
|
|
318
|
-
var _this2$connection;
|
|
319
|
-
console.log("ICE connection state: ".concat((_this2$connection = _this2.connection) === null || _this2$connection === void 0 ? void 0 : _this2$connection.iceConnectionState));
|
|
320
|
-
};
|
|
321
|
-
this.connection.onconnectionstatechange = function () {
|
|
322
|
-
var _this2$connection2;
|
|
323
|
-
console.log("Connection state: ".concat((_this2$connection2 = _this2.connection) === null || _this2$connection2 === void 0 ? void 0 : _this2$connection2.connectionState));
|
|
324
|
-
};
|
|
325
|
-
if (this.role === 'initiator') {
|
|
326
|
-
console.log('[Peer] Creating data channel');
|
|
327
|
-
this.channel = this.connection.createDataChannel(settings.channel.label);
|
|
328
|
-
this.channel.onopen = function () {
|
|
329
|
-
console.log('[Peer] Data channel opened');
|
|
330
|
-
if (_this2.value && _this2.sendLastValueOnConnectAndReconnect) {
|
|
331
|
-
var _this2$channel;
|
|
332
|
-
(_this2$channel = _this2.channel) === null || _this2$channel === void 0 || _this2$channel.send(_this2.value.value);
|
|
333
|
-
}
|
|
334
|
-
};
|
|
335
|
-
this.channel.onmessage = function (event) {
|
|
336
|
-
console.log('[Peer] Data channel message received');
|
|
337
|
-
if (_this2.peerId) {
|
|
338
|
-
var _this2$onMessage;
|
|
339
|
-
(_this2$onMessage = _this2.onMessage) === null || _this2$onMessage === void 0 || _this2$onMessage.call(_this2, event.data, _this2.peerId);
|
|
340
|
-
}
|
|
341
|
-
};
|
|
342
|
-
} else {
|
|
343
|
-
this.connection.ondatachannel = function (event) {
|
|
344
|
-
console.log('[Peer] Data channel received (responder)');
|
|
345
|
-
_this2.channel = event.channel;
|
|
346
|
-
_this2.channel.onopen = function () {
|
|
347
|
-
console.log('[Peer] Data channel opened');
|
|
348
|
-
if (_this2.value && _this2.sendLastValueOnConnectAndReconnect) {
|
|
349
|
-
var _this2$channel2;
|
|
350
|
-
(_this2$channel2 = _this2.channel) === null || _this2$channel2 === void 0 || _this2$channel2.send(_this2.value.value);
|
|
351
|
-
}
|
|
352
|
-
};
|
|
353
|
-
_this2.channel.onmessage = function (event) {
|
|
354
|
-
console.log('[Peer] Data channel message received');
|
|
355
|
-
if (_this2.peerId) {
|
|
356
|
-
var _this2$onMessage2;
|
|
357
|
-
(_this2$onMessage2 = _this2.onMessage) === null || _this2$onMessage2 === void 0 || _this2$onMessage2.call(_this2, event.data, _this2.peerId);
|
|
358
|
-
}
|
|
359
|
-
};
|
|
360
|
-
};
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
|
-
}]);
|
|
364
|
-
}();
|
|
365
|
-
|
|
366
|
-
export { Peer };
|
|
367
|
-
//# sourceMappingURL=Peer.js.map
|
package/dist/webrtc/Peer.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Peer.js","sources":["../../src/webrtc/Peer.ts"],"sourcesContent":["import { delay } from '../delay'\nimport { settings } from '../settings'\nimport { PeerId } from './PeerId'\n\nexport abstract class Peer {\n\tprotected isDestroyed = false\n\tprotected connection: RTCPeerConnection | null = null\n\tprotected channel: RTCDataChannel | null = null\n\tprotected abstract role: 'initiator' | 'responder'\n\tprotected value: { value: string } | null = null\n\tprotected readonly onMessage:\n\t\t| ((value: string, peerId: PeerId) => void)\n\t\t| undefined\n\tprotected readonly sendLastValueOnConnectAndReconnect: boolean\n\tprotected readonly websocketSignalingServer: string\n\tprotected readonly iceServers: Array<RTCIceServer>\n\tprotected socket: WebSocket | null = null\n\tprotected candidatesQueue: RTCIceCandidateInit[] = []\n\tprotected peerId: PeerId | null = null\n\n\tconstructor(\n\t\tprotected readonly room: string,\n\t\toptions: {\n\t\t\twebsocketSignalingServer?: string\n\t\t\tonMessage?: (value: string, peerId: PeerId) => void\n\t\t\tsendLastValueOnConnectAndReconnect?: boolean\n\t\t\ticeServers?: Array<RTCIceServer>\n\t\t} = {},\n\t) {\n\t\tthis.onMessage = options.onMessage\n\t\tthis.sendLastValueOnConnectAndReconnect =\n\t\t\toptions.sendLastValueOnConnectAndReconnect ?? true\n\t\tthis.websocketSignalingServer = `${(\n\t\t\toptions.websocketSignalingServer ??\n\t\t\tsettings.defaultWebsocketSignalingServer\n\t\t).replace(/\\/+$/, '')}/v0/`\n\t\tthis.iceServers = options.iceServers ?? settings.iceServers\n\t\tthis.run()\n\t}\n\n\tprotected async run() {\n\t\ttry {\n\t\t\tawait this.connect()\n\t\t} catch (error) {\n\t\t\tqueueMicrotask(() => {\n\t\t\t\tthrow error\n\t\t\t})\n\t\t}\n\t}\n\n\tprotected connect(): Promise<void> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (this.isDestroyed) {\n\t\t\t\treturn reject(new Error('Peer is destroyed'))\n\t\t\t}\n\n\t\t\tthis.socket = new WebSocket(this.websocketSignalingServer)\n\n\t\t\tthis.socket.onopen = () => {\n\t\t\t\tconsole.log(`[Peer] WebSocket opened for room: ${this.room}`)\n\t\t\t\tthis.socket?.send(\n\t\t\t\t\tJSON.stringify({ type: 'join-room', room: this.room }),\n\t\t\t\t)\n\t\t\t\tthis.initializeConnectionAndChannel()\n\t\t\t\tthis.onConnected()\n\t\t\t\tresolve()\n\t\t\t}\n\n\t\t\tthis.socket.onmessage = (event) => {\n\t\t\t\tconst message = JSON.parse(event.data)\n\t\t\t\tconsole.log(`[Peer] Received signaling message: ${message.type}`)\n\t\t\t\tswitch (message.type) {\n\t\t\t\t\tcase 'identity':\n\t\t\t\t\t\tthis.peerId = message.data.peerId\n\t\t\t\t\t\tconsole.log(`[Peer] My peer ID is: ${this.peerId}`)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'peer-joined':\n\t\t\t\t\t\tif (message.data?.peerId) {\n\t\t\t\t\t\t\tthis.handlePeerJoined(message.data.peerId)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'peer-left':\n\t\t\t\t\t\tif (message.data?.peerId) {\n\t\t\t\t\t\t\tthis.handlePeerLeft(message.data.peerId)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'offer':\n\t\t\t\t\t\tthis.handleOffer(message.data, message.from)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'answer':\n\t\t\t\t\t\tthis.handleAnswer(message.data, message.from)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'ice-candidate':\n\t\t\t\t\t\tthis.handleIceCandidate(message.data, message.from)\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.socket.onclose = async () => {\n\t\t\t\tconsole.log('[Peer] WebSocket closed')\n\t\t\t\tthis.socket = null\n\t\t\t\tif (!this.isDestroyed) {\n\t\t\t\t\tconsole.log('[Peer] Attempting reconnect in 1s...')\n\t\t\t\t\tawait delay(1000)\n\t\t\t\t\tawait this.run() // Reconnect\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.socket.onerror = (error) => {\n\t\t\t\tconsole.error('WebSocket error:', error)\n\t\t\t\treject(error)\n\t\t\t}\n\t\t})\n\t}\n\n\tprotected abstract handleOffer(\n\t\toffer: RTCSessionDescriptionInit,\n\t\tfromPeerId: PeerId,\n\t): void\n\tprotected abstract handleAnswer(\n\t\tanswer: RTCSessionDescriptionInit,\n\t\tfromPeerId: PeerId,\n\t): void\n\tprotected abstract handlePeerJoined(peerId: PeerId): void\n\tprotected abstract handlePeerLeft(peerId: PeerId): void\n\tprotected abstract onConnected(): void\n\n\tprotected async handleIceCandidate(\n\t\tcandidate: RTCIceCandidateInit,\n\t\tfromPeerId?: PeerId,\n\t) {\n\t\tif (!this.connection) {\n\t\t\treturn\n\t\t}\n\t\tif (this.connection.remoteDescription) {\n\t\t\ttry {\n\t\t\t\tconsole.log('[Peer] Adding received ICE candidate')\n\t\t\t\tawait this.connection.addIceCandidate(new RTCIceCandidate(candidate))\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('[Peer] Error adding ice candidate:', error)\n\t\t\t}\n\t\t} else {\n\t\t\tconsole.log('[Peer] Queuing ICE candidate (remote description not set)')\n\t\t\tthis.candidatesQueue.push(candidate)\n\t\t}\n\t}\n\n\tprotected async processCandidatesQueue() {\n\t\tif (!this.connection) {\n\t\t\treturn\n\t\t}\n\t\tif (this.candidatesQueue.length > 0) {\n\t\t\tconsole.log(\n\t\t\t\t`[Peer] Processing ${this.candidatesQueue.length} queued ICE candidates`,\n\t\t\t)\n\t\t}\n\t\twhile (this.candidatesQueue.length > 0) {\n\t\t\tconst candidate = this.candidatesQueue.shift()!\n\t\t\ttry {\n\t\t\t\tawait this.connection.addIceCandidate(new RTCIceCandidate(candidate))\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('[Peer] Error adding queued ice candidate:', error)\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected close() {\n\t\tthis.connection?.close()\n\t\tthis.connection = null\n\t\tthis.channel?.close()\n\t\tthis.channel = null\n\t\tthis.socket?.close()\n\t\tthis.socket = null\n\t}\n\n\tpublic destroy() {\n\t\tthis.isDestroyed = true\n\t\tthis.close()\n\t}\n\n\tprotected sendMessage(type: string, data: any, to?: PeerId) {\n\t\tif (this.socket?.readyState === WebSocket.OPEN) {\n\t\t\tconsole.log(\n\t\t\t\t`[Peer] Sending signaling message: ${type}${to ? ` to ${to}` : ''}`,\n\t\t\t)\n\t\t\tthis.socket.send(JSON.stringify({ type, room: this.room, data, to }))\n\t\t} else {\n\t\t\tconsole.warn(`[Peer] Cannot send message ${type}, WebSocket not open`)\n\t\t}\n\t}\n\n\tprotected async setAndShareLocalDescription(\n\t\tdescription: RTCSessionDescriptionInit,\n\t\ttoPeerId?: PeerId,\n\t) {\n\t\tif (!this.connection) {\n\t\t\tthrow new Error('Connection is not initialized')\n\t\t}\n\t\tconsole.log(`[Peer] Setting local description (${description.type})`)\n\t\tawait this.connection.setLocalDescription(description)\n\t\tthis.sendMessage(description.type, description, toPeerId)\n\t}\n\n\tprotected shareNewIceCandidate(\n\t\tevent: RTCPeerConnectionIceEvent,\n\t\ttoPeerId?: PeerId,\n\t) {\n\t\tif (event.candidate) {\n\t\t\tconsole.log('[Peer] Generated new ICE candidate')\n\t\t\tthis.sendMessage('ice-candidate', event.candidate.toJSON(), toPeerId)\n\t\t}\n\t}\n\n\tpublic send(value: string) {\n\t\tif (this.channel?.readyState === 'open') {\n\t\t\tthis.channel.send(value)\n\t\t}\n\t\tthis.value = { value }\n\t}\n\n\tprotected initializeConnectionAndChannel() {\n\t\tif (this.connection) {\n\t\t\treturn\n\t\t}\n\t\tthis.candidatesQueue = []\n\t\tthis.connection = new RTCPeerConnection({ iceServers: this.iceServers })\n\t\tthis.connection.onicecandidate = this.shareNewIceCandidate.bind(this)\n\t\tthis.connection.oniceconnectionstatechange = () => {\n\t\t\tconsole.log(\n\t\t\t\t`ICE connection state: ${this.connection?.iceConnectionState}`,\n\t\t\t)\n\t\t}\n\t\tthis.connection.onconnectionstatechange = () => {\n\t\t\tconsole.log(`Connection state: ${this.connection?.connectionState}`)\n\t\t}\n\n\t\tif (this.role === 'initiator') {\n\t\t\tconsole.log('[Peer] Creating data channel')\n\t\t\tthis.channel = this.connection.createDataChannel(settings.channel.label)\n\t\t\tthis.channel.onopen = () => {\n\t\t\t\tconsole.log('[Peer] Data channel opened')\n\t\t\t\tif (this.value && this.sendLastValueOnConnectAndReconnect) {\n\t\t\t\t\tthis.channel?.send(this.value.value)\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.channel.onmessage = (event) => {\n\t\t\t\tconsole.log('[Peer] Data channel message received')\n\t\t\t\tif (this.peerId) {\n\t\t\t\t\tthis.onMessage?.(event.data, this.peerId)\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthis.connection.ondatachannel = (event) => {\n\t\t\t\tconsole.log('[Peer] Data channel received (responder)')\n\t\t\t\tthis.channel = event.channel\n\t\t\t\tthis.channel.onopen = () => {\n\t\t\t\t\tconsole.log('[Peer] Data channel opened')\n\t\t\t\t\tif (this.value && this.sendLastValueOnConnectAndReconnect) {\n\t\t\t\t\t\tthis.channel?.send(this.value.value)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.channel.onmessage = (event) => {\n\t\t\t\t\tconsole.log('[Peer] Data channel message received')\n\t\t\t\t\tif (this.peerId) {\n\t\t\t\t\t\tthis.onMessage?.(event.data, this.peerId)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"],"names":["Peer","room","_options$sendLastValu","_options$websocketSig","_options$iceServers","options","arguments","length","undefined","_classCallCheck","_defineProperty","onMessage","sendLastValueOnConnectAndReconnect","websocketSignalingServer","concat","settings","defaultWebsocketSignalingServer","replace","iceServers","run","_createClass","key","value","_run","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","connect","t0","queueMicrotask","stop","apply","_this","Promise","resolve","reject","isDestroyed","Error","socket","WebSocket","onopen","_this$socket","console","log","send","JSON","stringify","type","initializeConnectionAndChannel","onConnected","onmessage","event","_message$data","_message$data2","message","parse","data","peerId","handlePeerJoined","handlePeerLeft","handleOffer","from","handleAnswer","handleIceCandidate","onclose","_callee2","_callee2$","_context2","delay","onerror","error","_handleIceCandidate","_callee3","candidate","fromPeerId","_callee3$","_context3","connection","abrupt","remoteDescription","addIceCandidate","RTCIceCandidate","candidatesQueue","push","_x","_x2","_processCandidatesQueue","_callee4","_callee4$","_context4","shift","processCandidatesQueue","close","_this$connection","_this$channel","_this$socket2","channel","destroy","sendMessage","to","_this$socket3","readyState","OPEN","warn","_setAndShareLocalDescription","_callee5","description","toPeerId","_callee5$","_context5","setLocalDescription","setAndShareLocalDescription","_x3","_x4","shareNewIceCandidate","toJSON","_this$channel2","_this2","RTCPeerConnection","onicecandidate","bind","oniceconnectionstatechange","_this2$connection","iceConnectionState","onconnectionstatechange","_this2$connection2","connectionState","role","createDataChannel","label","_this2$channel","_this2$onMessage","call","ondatachannel","_this2$channel2","_this2$onMessage2"],"mappings":";;;;AAIA,IAAsBA,IAAI,gBAAA,YAAA;EAgBzB,SAAAA,IAAAA,CACoBC,IAAY,EAO9B;AAAA,IAAA,IAAAC,qBAAA,EAAAC,qBAAA,EAAAC,mBAAA;AAAA,IAAA,IANDC,OAKC,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAAAG,IAAAA,eAAA,OAAAT,IAAA,CAAA;AAAAU,IAAAA,eAAA,sBAtBiB,KAAK,CAAA;AAAAA,IAAAA,eAAA,qBACoB,IAAI,CAAA;AAAAA,IAAAA,eAAA,kBACV,IAAI,CAAA;AAAAA,IAAAA,eAAA,gBAEH,IAAI,CAAA;AAAAA,IAAAA,eAAA,iBAOX,IAAI,CAAA;AAAAA,IAAAA,eAAA,0BACU,EAAE,CAAA;AAAAA,IAAAA,eAAA,iBACnB,IAAI,CAAA;IAAA,IAGlBT,CAAAA,IAAY,GAAZA,IAAY;AAQ/B,IAAA,IAAI,CAACU,SAAS,GAAGN,OAAO,CAACM,SAAS;AAClC,IAAA,IAAI,CAACC,kCAAkC,GAAAV,CAAAA,qBAAA,GACtCG,OAAO,CAACO,kCAAkC,MAAAV,IAAAA,IAAAA,qBAAA,KAAAA,MAAAA,GAAAA,qBAAA,GAAI,IAAI;IACnD,IAAI,CAACW,wBAAwB,GAAA,EAAA,CAAAC,MAAA,CAAM,CAAAX,CAAAA,qBAAA,GAClCE,OAAO,CAACQ,wBAAwB,MAAAV,IAAAA,IAAAA,qBAAA,cAAAA,qBAAA,GAChCY,QAAQ,CAACC,+BAA+B,EACvCC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAM,MAAA,CAAA;AAC3B,IAAA,IAAI,CAACC,UAAU,GAAAd,CAAAA,mBAAA,GAAGC,OAAO,CAACa,UAAU,MAAA,IAAA,IAAAd,mBAAA,KAAAA,MAAAA,GAAAA,mBAAA,GAAIW,QAAQ,CAACG,UAAU;IAC3D,IAAI,CAACC,GAAG,EAAE;AACX;EAAC,OAAAC,YAAA,CAAApB,IAAA,EAAA,CAAA;IAAAqB,GAAA,EAAA,KAAA;IAAAC,KAAA,EAAA,YAAA;MAAA,IAAAC,IAAA,GAAAC,iBAAA,cAAAC,mBAAA,EAAAC,CAAAA,IAAA,CAED,SAAAC,OAAA,GAAA;AAAA,QAAA,OAAAF,mBAAA,EAAA,CAAAG,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,YAAA,KAAA,CAAA;AAAAF,cAAAA,QAAA,CAAAC,IAAA,GAAA,CAAA;AAAAD,cAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA;AAAA,cAAA,OAEQ,IAAI,CAACC,OAAO,EAAE;AAAA,YAAA,KAAA,CAAA;AAAAH,cAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA;AAAA,cAAA;AAAA,YAAA,KAAA,CAAA;AAAAF,cAAAA,QAAA,CAAAC,IAAA,GAAA,CAAA;cAAAD,QAAA,CAAAI,EAAA,GAAAJ,QAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA;AAEpBK,cAAAA,cAAc,CAAC,YAAM;gBACpB,MAAAL,QAAA,CAAAI,EAAA;AACD,eAAC,CAAC;AAAA,YAAA,KAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAJ,QAAA,CAAAM,IAAA,EAAA;AAAA;AAAA,SAAA,EAAAT,OAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;OAEH,CAAA,CAAA;AAAA,MAAA,SAReR,GAAGA,GAAA;AAAA,QAAA,OAAAI,IAAA,CAAAc,KAAA,CAAA,IAAA,EAAA/B,SAAA,CAAA;AAAA;AAAA,MAAA,OAAHa,GAAG;AAAA,KAAA;AAAA,GAAA,EAAA;IAAAE,GAAA,EAAA,SAAA;AAAAC,IAAAA,KAAA,EAUnB,SAAUW,OAAOA,GAAkB;AAAA,MAAA,IAAAK,KAAA,GAAA,IAAA;AAClC,MAAA,OAAO,IAAIC,OAAO,CAAC,UAACC,OAAO,EAAEC,MAAM,EAAK;QACvC,IAAIH,KAAI,CAACI,WAAW,EAAE;AACrB,UAAA,OAAOD,MAAM,CAAC,IAAIE,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAC9C;QAEAL,KAAI,CAACM,MAAM,GAAG,IAAIC,SAAS,CAACP,KAAI,CAACzB,wBAAwB,CAAC;AAE1DyB,QAAAA,KAAI,CAACM,MAAM,CAACE,MAAM,GAAG,YAAM;AAAA,UAAA,IAAAC,YAAA;UAC1BC,OAAO,CAACC,GAAG,CAAAnC,oCAAAA,CAAAA,MAAA,CAAsCwB,KAAI,CAACrC,IAAI,CAAE,CAAC;AAC7D,UAAA,CAAA8C,YAAA,GAAAT,KAAI,CAACM,MAAM,MAAAG,IAAAA,IAAAA,YAAA,KAAXA,MAAAA,IAAAA,YAAA,CAAaG,IAAI,CAChBC,IAAI,CAACC,SAAS,CAAC;AAAEC,YAAAA,IAAI,EAAE,WAAW;YAAEpD,IAAI,EAAEqC,KAAI,CAACrC;AAAK,WAAC,CACtD,CAAC;UACDqC,KAAI,CAACgB,8BAA8B,EAAE;UACrChB,KAAI,CAACiB,WAAW,EAAE;AAClBf,UAAAA,OAAO,EAAE;SACT;AAEDF,QAAAA,KAAI,CAACM,MAAM,CAACY,SAAS,GAAG,UAACC,KAAK,EAAK;UAAA,IAAAC,aAAA,EAAAC,cAAA;UAClC,IAAMC,OAAO,GAAGT,IAAI,CAACU,KAAK,CAACJ,KAAK,CAACK,IAAI,CAAC;UACtCd,OAAO,CAACC,GAAG,CAAAnC,qCAAAA,CAAAA,MAAA,CAAuC8C,OAAO,CAACP,IAAI,CAAE,CAAC;UACjE,QAAQO,OAAO,CAACP,IAAI;AACnB,YAAA,KAAK,UAAU;AACdf,cAAAA,KAAI,CAACyB,MAAM,GAAGH,OAAO,CAACE,IAAI,CAACC,MAAM;cACjCf,OAAO,CAACC,GAAG,CAAAnC,wBAAAA,CAAAA,MAAA,CAA0BwB,KAAI,CAACyB,MAAM,CAAE,CAAC;AACnD,cAAA;AACD,YAAA,KAAK,aAAa;cACjB,IAAAL,CAAAA,aAAA,GAAIE,OAAO,CAACE,IAAI,MAAAJ,IAAAA,IAAAA,aAAA,KAAZA,MAAAA,IAAAA,aAAA,CAAcK,MAAM,EAAE;gBACzBzB,KAAI,CAAC0B,gBAAgB,CAACJ,OAAO,CAACE,IAAI,CAACC,MAAM,CAAC;AAC3C;AACA,cAAA;AACD,YAAA,KAAK,WAAW;cACf,IAAAJ,CAAAA,cAAA,GAAIC,OAAO,CAACE,IAAI,MAAAH,IAAAA,IAAAA,cAAA,KAAZA,MAAAA,IAAAA,cAAA,CAAcI,MAAM,EAAE;gBACzBzB,KAAI,CAAC2B,cAAc,CAACL,OAAO,CAACE,IAAI,CAACC,MAAM,CAAC;AACzC;AACA,cAAA;AACD,YAAA,KAAK,OAAO;cACXzB,KAAI,CAAC4B,WAAW,CAACN,OAAO,CAACE,IAAI,EAAEF,OAAO,CAACO,IAAI,CAAC;AAC5C,cAAA;AACD,YAAA,KAAK,QAAQ;cACZ7B,KAAI,CAAC8B,YAAY,CAACR,OAAO,CAACE,IAAI,EAAEF,OAAO,CAACO,IAAI,CAAC;AAC7C,cAAA;AACD,YAAA,KAAK,eAAe;cACnB7B,KAAI,CAAC+B,kBAAkB,CAACT,OAAO,CAACE,IAAI,EAAEF,OAAO,CAACO,IAAI,CAAC;AACnD,cAAA;AACF;SACA;AAED7B,QAAAA,KAAI,CAACM,MAAM,CAAC0B,OAAO,gBAAA9C,iBAAA,cAAAC,mBAAA,EAAAC,CAAAA,IAAA,CAAG,SAAA6C,QAAA,GAAA;AAAA,UAAA,OAAA9C,mBAAA,EAAA,CAAAG,IAAA,CAAA,SAAA4C,UAAAC,SAAA,EAAA;AAAA,YAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA1C,IAAA,GAAA0C,SAAA,CAAAzC,IAAA;AAAA,cAAA,KAAA,CAAA;AACrBgB,gBAAAA,OAAO,CAACC,GAAG,CAAC,yBAAyB,CAAC;gBACtCX,KAAI,CAACM,MAAM,GAAG,IAAI;gBAAA,IACbN,KAAI,CAACI,WAAW,EAAA;AAAA+B,kBAAAA,SAAA,CAAAzC,IAAA,GAAA,CAAA;AAAA,kBAAA;AAAA;AACpBgB,gBAAAA,OAAO,CAACC,GAAG,CAAC,sCAAsC,CAAC;AAAAwB,gBAAAA,SAAA,CAAAzC,IAAA,GAAA,CAAA;gBAAA,OAC7C0C,KAAK,CAAC,IAAI,CAAC;AAAA,cAAA,KAAA,CAAA;AAAAD,gBAAAA,SAAA,CAAAzC,IAAA,GAAA,CAAA;AAAA,gBAAA,OACXM,KAAI,CAACnB,GAAG,EAAE;AAAA,cAAA,KAAA,CAAA;AAAA,cAAA,KAAA,KAAA;gBAAA,OAAAsD,SAAA,CAAArC,IAAA,EAAA;AAAA;AAAA,WAAA,EAAAmC,QAAA,CAAA;SAEjB,CAAA,CAAA;AAEDjC,QAAAA,KAAI,CAACM,MAAM,CAAC+B,OAAO,GAAG,UAACC,KAAK,EAAK;AAChC5B,UAAAA,OAAO,CAAC4B,KAAK,CAAC,kBAAkB,EAAEA,KAAK,CAAC;UACxCnC,MAAM,CAACmC,KAAK,CAAC;SACb;AACF,OAAC,CAAC;AACH;AAAC,GAAA,EAAA;IAAAvD,GAAA,EAAA,oBAAA;IAAAC,KAAA,EAAA,YAAA;AAAA,MAAA,IAAAuD,mBAAA,GAAArD,iBAAA,cAAAC,mBAAA,EAAA,CAAAC,IAAA,CAcD,SAAAoD,QAAAA,CACCC,SAA8B,EAC9BC,UAAmB,EAAA;AAAA,QAAA,OAAAvD,mBAAA,EAAA,CAAAG,IAAA,CAAA,SAAAqD,UAAAC,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAnD,IAAA,GAAAmD,SAAA,CAAAlD,IAAA;AAAA,YAAA,KAAA,CAAA;cAAA,IAEd,IAAI,CAACmD,UAAU,EAAA;AAAAD,gBAAAA,SAAA,CAAAlD,IAAA,GAAA,CAAA;AAAA,gBAAA;AAAA;cAAA,OAAAkD,SAAA,CAAAE,MAAA,CAAA,QAAA,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA,cAAA,IAAA,CAGhB,IAAI,CAACD,UAAU,CAACE,iBAAiB,EAAA;AAAAH,gBAAAA,SAAA,CAAAlD,IAAA,GAAA,EAAA;AAAA,gBAAA;AAAA;AAAAkD,cAAAA,SAAA,CAAAnD,IAAA,GAAA,CAAA;AAEnCiB,cAAAA,OAAO,CAACC,GAAG,CAAC,sCAAsC,CAAC;AAAAiC,cAAAA,SAAA,CAAAlD,IAAA,GAAA,CAAA;cAAA,OAC7C,IAAI,CAACmD,UAAU,CAACG,eAAe,CAAC,IAAIC,eAAe,CAACR,SAAS,CAAC,CAAC;AAAA,YAAA,KAAA,CAAA;AAAAG,cAAAA,SAAA,CAAAlD,IAAA,GAAA,EAAA;AAAA,cAAA;AAAA,YAAA,KAAA,CAAA;AAAAkD,cAAAA,SAAA,CAAAnD,IAAA,GAAA,CAAA;cAAAmD,SAAA,CAAAhD,EAAA,GAAAgD,SAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA;cAErElC,OAAO,CAAC4B,KAAK,CAAC,oCAAoC,EAAAM,SAAA,CAAAhD,EAAO,CAAC;AAAA,YAAA,KAAA,EAAA;AAAAgD,cAAAA,SAAA,CAAAlD,IAAA,GAAA,EAAA;AAAA,cAAA;AAAA,YAAA,KAAA,EAAA;AAG3DgB,cAAAA,OAAO,CAACC,GAAG,CAAC,2DAA2D,CAAC;AACxE,cAAA,IAAI,CAACuC,eAAe,CAACC,IAAI,CAACV,SAAS,CAAC;AAAA,YAAA,KAAA,EAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAG,SAAA,CAAA9C,IAAA,EAAA;AAAA;AAAA,SAAA,EAAA0C,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;OAErC,CAAA,CAAA;AAAA,MAAA,SAlBeT,kBAAkBA,CAAAqB,EAAA,EAAAC,GAAA,EAAA;AAAA,QAAA,OAAAd,mBAAA,CAAAxC,KAAA,CAAA,IAAA,EAAA/B,SAAA,CAAA;AAAA;AAAA,MAAA,OAAlB+D,kBAAkB;AAAA,KAAA;AAAA,GAAA,EAAA;IAAAhD,GAAA,EAAA,wBAAA;IAAAC,KAAA,EAAA,YAAA;MAAA,IAAAsE,uBAAA,GAAApE,iBAAA,cAAAC,mBAAA,EAAAC,CAAAA,IAAA,CAoBlC,SAAAmE,QAAA,GAAA;AAAA,QAAA,IAAAd,SAAA;AAAA,QAAA,OAAAtD,mBAAA,EAAA,CAAAG,IAAA,CAAA,SAAAkE,UAAAC,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAhE,IAAA,GAAAgE,SAAA,CAAA/D,IAAA;AAAA,YAAA,KAAA,CAAA;cAAA,IACM,IAAI,CAACmD,UAAU,EAAA;AAAAY,gBAAAA,SAAA,CAAA/D,IAAA,GAAA,CAAA;AAAA,gBAAA;AAAA;cAAA,OAAA+D,SAAA,CAAAX,MAAA,CAAA,QAAA,CAAA;AAAA,YAAA,KAAA,CAAA;AAGpB,cAAA,IAAI,IAAI,CAACI,eAAe,CAACjF,MAAM,GAAG,CAAC,EAAE;gBACpCyC,OAAO,CAACC,GAAG,CAAA,oBAAA,CAAAnC,MAAA,CACW,IAAI,CAAC0E,eAAe,CAACjF,MAAM,EAAA,wBAAA,CACjD,CAAC;AACF;AAAC,YAAA,KAAA,CAAA;AAAA,cAAA,IAAA,EACM,IAAI,CAACiF,eAAe,CAACjF,MAAM,GAAG,CAAC,CAAA,EAAA;AAAAwF,gBAAAA,SAAA,CAAA/D,IAAA,GAAA,EAAA;AAAA,gBAAA;AAAA;AAC/B+C,cAAAA,SAAS,GAAG,IAAI,CAACS,eAAe,CAACQ,KAAK,EAAE;AAAAD,cAAAA,SAAA,CAAAhE,IAAA,GAAA,CAAA;AAAAgE,cAAAA,SAAA,CAAA/D,IAAA,GAAA,CAAA;cAAA,OAEvC,IAAI,CAACmD,UAAU,CAACG,eAAe,CAAC,IAAIC,eAAe,CAACR,SAAS,CAAC,CAAC;AAAA,YAAA,KAAA,CAAA;AAAAgB,cAAAA,SAAA,CAAA/D,IAAA,GAAA,EAAA;AAAA,cAAA;AAAA,YAAA,KAAA,EAAA;AAAA+D,cAAAA,SAAA,CAAAhE,IAAA,GAAA,EAAA;cAAAgE,SAAA,CAAA7D,EAAA,GAAA6D,SAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA;cAErE/C,OAAO,CAAC4B,KAAK,CAAC,2CAA2C,EAAAmB,SAAA,CAAA7D,EAAO,CAAC;AAAA,YAAA,KAAA,EAAA;AAAA6D,cAAAA,SAAA,CAAA/D,IAAA,GAAA,CAAA;AAAA,cAAA;AAAA,YAAA,KAAA,EAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAA+D,SAAA,CAAA3D,IAAA,EAAA;AAAA;AAAA,SAAA,EAAAyD,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA;OAGnE,CAAA,CAAA;AAAA,MAAA,SAjBeI,sBAAsBA,GAAA;AAAA,QAAA,OAAAL,uBAAA,CAAAvD,KAAA,CAAA,IAAA,EAAA/B,SAAA,CAAA;AAAA;AAAA,MAAA,OAAtB2F,sBAAsB;AAAA,KAAA;AAAA,GAAA,EAAA;IAAA5E,GAAA,EAAA,OAAA;AAAAC,IAAAA,KAAA,EAmBtC,SAAU4E,KAAKA,GAAG;AAAA,MAAA,IAAAC,gBAAA,EAAAC,aAAA,EAAAC,aAAA;MACjB,CAAAF,gBAAA,GAAI,IAAA,CAAChB,UAAU,MAAA,IAAA,IAAAgB,gBAAA,KAAA,MAAA,IAAfA,gBAAA,CAAiBD,KAAK,EAAE;MACxB,IAAI,CAACf,UAAU,GAAG,IAAI;MACtB,CAAAiB,aAAA,GAAI,IAAA,CAACE,OAAO,MAAA,IAAA,IAAAF,aAAA,KAAA,MAAA,IAAZA,aAAA,CAAcF,KAAK,EAAE;MACrB,IAAI,CAACI,OAAO,GAAG,IAAI;MACnB,CAAAD,aAAA,GAAI,IAAA,CAACzD,MAAM,MAAA,IAAA,IAAAyD,aAAA,KAAA,MAAA,IAAXA,aAAA,CAAaH,KAAK,EAAE;MACpB,IAAI,CAACtD,MAAM,GAAG,IAAI;AACnB;AAAC,GAAA,EAAA;IAAAvB,GAAA,EAAA,SAAA;AAAAC,IAAAA,KAAA,EAED,SAAOiF,OAAOA,GAAG;MAChB,IAAI,CAAC7D,WAAW,GAAG,IAAI;MACvB,IAAI,CAACwD,KAAK,EAAE;AACb;AAAC,GAAA,EAAA;IAAA7E,GAAA,EAAA,aAAA;IAAAC,KAAA,EAED,SAAUkF,WAAWA,CAACnD,IAAY,EAAES,IAAS,EAAE2C,EAAW,EAAE;AAAA,MAAA,IAAAC,aAAA;AAC3D,MAAA,IAAI,CAAAA,CAAAA,aAAA,GAAI,IAAA,CAAC9D,MAAM,MAAA8D,IAAAA,IAAAA,aAAA,KAAXA,MAAAA,GAAAA,MAAAA,GAAAA,aAAA,CAAaC,UAAU,MAAK9D,SAAS,CAAC+D,IAAI,EAAE;AAC/C5D,QAAAA,OAAO,CAACC,GAAG,CAAA,oCAAA,CAAAnC,MAAA,CAC2BuC,IAAI,CAAAvC,CAAAA,MAAA,CAAG2F,EAAE,UAAA3F,MAAA,CAAU2F,EAAE,CAAK,GAAA,EAAE,CAClE,CAAC;QACD,IAAI,CAAC7D,MAAM,CAACM,IAAI,CAACC,IAAI,CAACC,SAAS,CAAC;AAAEC,UAAAA,IAAI,EAAJA,IAAI;UAAEpD,IAAI,EAAE,IAAI,CAACA,IAAI;AAAE6D,UAAAA,IAAI,EAAJA,IAAI;AAAE2C,UAAAA,EAAE,EAAFA;AAAG,SAAC,CAAC,CAAC;AACtE,OAAC,MAAM;AACNzD,QAAAA,OAAO,CAAC6D,IAAI,CAAA,6BAAA,CAAA/F,MAAA,CAA+BuC,IAAI,yBAAsB,CAAC;AACvE;AACD;AAAC,GAAA,EAAA;IAAAhC,GAAA,EAAA,6BAAA;IAAAC,KAAA,EAAA,YAAA;AAAA,MAAA,IAAAwF,4BAAA,GAAAtF,iBAAA,cAAAC,mBAAA,EAAA,CAAAC,IAAA,CAED,SAAAqF,QAAAA,CACCC,WAAsC,EACtCC,QAAiB,EAAA;AAAA,QAAA,OAAAxF,mBAAA,EAAA,CAAAG,IAAA,CAAA,SAAAsF,UAAAC,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAApF,IAAA,GAAAoF,SAAA,CAAAnF,IAAA;AAAA,YAAA,KAAA,CAAA;cAAA,IAEZ,IAAI,CAACmD,UAAU,EAAA;AAAAgC,gBAAAA,SAAA,CAAAnF,IAAA,GAAA,CAAA;AAAA,gBAAA;AAAA;AAAA,cAAA,MACb,IAAIW,KAAK,CAAC,+BAA+B,CAAC;AAAA,YAAA,KAAA,CAAA;cAEjDK,OAAO,CAACC,GAAG,CAAAnC,oCAAAA,CAAAA,MAAA,CAAsCkG,WAAW,CAAC3D,IAAI,EAAA,GAAA,CAAG,CAAC;AAAA8D,cAAAA,SAAA,CAAAnF,IAAA,GAAA,CAAA;AAAA,cAAA,OAC/D,IAAI,CAACmD,UAAU,CAACiC,mBAAmB,CAACJ,WAAW,CAAC;AAAA,YAAA,KAAA,CAAA;cACtD,IAAI,CAACR,WAAW,CAACQ,WAAW,CAAC3D,IAAI,EAAE2D,WAAW,EAAEC,QAAQ,CAAC;AAAA,YAAA,KAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAE,SAAA,CAAA/E,IAAA,EAAA;AAAA;AAAA,SAAA,EAAA2E,QAAA,EAAA,IAAA,CAAA;OACzD,CAAA,CAAA;AAAA,MAAA,SAVeM,2BAA2BA,CAAAC,GAAA,EAAAC,GAAA,EAAA;AAAA,QAAA,OAAAT,4BAAA,CAAAzE,KAAA,CAAA,IAAA,EAAA/B,SAAA,CAAA;AAAA;AAAA,MAAA,OAA3B+G,2BAA2B;AAAA,KAAA;AAAA,GAAA,EAAA;IAAAhG,GAAA,EAAA,sBAAA;AAAAC,IAAAA,KAAA,EAY3C,SAAUkG,oBAAoBA,CAC7B/D,KAAgC,EAChCwD,QAAiB,EAChB;MACD,IAAIxD,KAAK,CAACsB,SAAS,EAAE;AACpB/B,QAAAA,OAAO,CAACC,GAAG,CAAC,oCAAoC,CAAC;AACjD,QAAA,IAAI,CAACuD,WAAW,CAAC,eAAe,EAAE/C,KAAK,CAACsB,SAAS,CAAC0C,MAAM,EAAE,EAAER,QAAQ,CAAC;AACtE;AACD;AAAC,GAAA,EAAA;IAAA5F,GAAA,EAAA,MAAA;AAAAC,IAAAA,KAAA,EAED,SAAO4B,IAAIA,CAAC5B,KAAa,EAAE;AAAA,MAAA,IAAAoG,cAAA;AAC1B,MAAA,IAAI,CAAAA,CAAAA,cAAA,GAAI,IAAA,CAACpB,OAAO,MAAA,IAAA,IAAAoB,cAAA,KAAA,MAAA,GAAA,MAAA,GAAZA,cAAA,CAAcf,UAAU,MAAK,MAAM,EAAE;AACxC,QAAA,IAAI,CAACL,OAAO,CAACpD,IAAI,CAAC5B,KAAK,CAAC;AACzB;MACA,IAAI,CAACA,KAAK,GAAG;AAAEA,QAAAA,KAAK,EAALA;OAAO;AACvB;AAAC,GAAA,EAAA;IAAAD,GAAA,EAAA,gCAAA;AAAAC,IAAAA,KAAA,EAED,SAAUgC,8BAA8BA,GAAG;AAAA,MAAA,IAAAqE,MAAA,GAAA,IAAA;MAC1C,IAAI,IAAI,CAACxC,UAAU,EAAE;AACpB,QAAA;AACD;MACA,IAAI,CAACK,eAAe,GAAG,EAAE;AACzB,MAAA,IAAI,CAACL,UAAU,GAAG,IAAIyC,iBAAiB,CAAC;QAAE1G,UAAU,EAAE,IAAI,CAACA;AAAW,OAAC,CAAC;AACxE,MAAA,IAAI,CAACiE,UAAU,CAAC0C,cAAc,GAAG,IAAI,CAACL,oBAAoB,CAACM,IAAI,CAAC,IAAI,CAAC;AACrE,MAAA,IAAI,CAAC3C,UAAU,CAAC4C,0BAA0B,GAAG,YAAM;AAAA,QAAA,IAAAC,iBAAA;AAClDhF,QAAAA,OAAO,CAACC,GAAG,CAAA,wBAAA,CAAAnC,MAAA,CAAA,CAAAkH,iBAAA,GACeL,MAAI,CAACxC,UAAU,cAAA6C,iBAAA,KAAA,MAAA,GAAA,MAAA,GAAfA,iBAAA,CAAiBC,kBAAkB,CAC7D,CAAC;OACD;AACD,MAAA,IAAI,CAAC9C,UAAU,CAAC+C,uBAAuB,GAAG,YAAM;AAAA,QAAA,IAAAC,kBAAA;AAC/CnF,QAAAA,OAAO,CAACC,GAAG,CAAA,oBAAA,CAAAnC,MAAA,CAAA,CAAAqH,kBAAA,GAAsBR,MAAI,CAACxC,UAAU,cAAAgD,kBAAA,KAAA,MAAA,GAAA,MAAA,GAAfA,kBAAA,CAAiBC,eAAe,CAAE,CAAC;OACpE;AAED,MAAA,IAAI,IAAI,CAACC,IAAI,KAAK,WAAW,EAAE;AAC9BrF,QAAAA,OAAO,CAACC,GAAG,CAAC,8BAA8B,CAAC;AAC3C,QAAA,IAAI,CAACqD,OAAO,GAAG,IAAI,CAACnB,UAAU,CAACmD,iBAAiB,CAACvH,QAAQ,CAACuF,OAAO,CAACiC,KAAK,CAAC;AACxE,QAAA,IAAI,CAACjC,OAAO,CAACxD,MAAM,GAAG,YAAM;AAC3BE,UAAAA,OAAO,CAACC,GAAG,CAAC,4BAA4B,CAAC;AACzC,UAAA,IAAI0E,MAAI,CAACrG,KAAK,IAAIqG,MAAI,CAAC/G,kCAAkC,EAAE;AAAA,YAAA,IAAA4H,cAAA;AAC1D,YAAA,CAAAA,cAAA,GAAAb,MAAI,CAACrB,OAAO,cAAAkC,cAAA,KAAA,MAAA,IAAZA,cAAA,CAActF,IAAI,CAACyE,MAAI,CAACrG,KAAK,CAACA,KAAK,CAAC;AACrC;SACA;AACD,QAAA,IAAI,CAACgF,OAAO,CAAC9C,SAAS,GAAG,UAACC,KAAK,EAAK;AACnCT,UAAAA,OAAO,CAACC,GAAG,CAAC,sCAAsC,CAAC;UACnD,IAAI0E,MAAI,CAAC5D,MAAM,EAAE;AAAA,YAAA,IAAA0E,gBAAA;YAChB,CAAAA,gBAAA,GAAAd,MAAI,CAAChH,SAAS,MAAA8H,IAAAA,IAAAA,gBAAA,eAAdA,gBAAA,CAAAC,IAAA,CAAAf,MAAI,EAAalE,KAAK,CAACK,IAAI,EAAE6D,MAAI,CAAC5D,MAAM,CAAC;AAC1C;SACA;AACF,OAAC,MAAM;AACN,QAAA,IAAI,CAACoB,UAAU,CAACwD,aAAa,GAAG,UAAClF,KAAK,EAAK;AAC1CT,UAAAA,OAAO,CAACC,GAAG,CAAC,0CAA0C,CAAC;AACvD0E,UAAAA,MAAI,CAACrB,OAAO,GAAG7C,KAAK,CAAC6C,OAAO;AAC5BqB,UAAAA,MAAI,CAACrB,OAAO,CAACxD,MAAM,GAAG,YAAM;AAC3BE,YAAAA,OAAO,CAACC,GAAG,CAAC,4BAA4B,CAAC;AACzC,YAAA,IAAI0E,MAAI,CAACrG,KAAK,IAAIqG,MAAI,CAAC/G,kCAAkC,EAAE;AAAA,cAAA,IAAAgI,eAAA;AAC1D,cAAA,CAAAA,eAAA,GAAAjB,MAAI,CAACrB,OAAO,cAAAsC,eAAA,KAAA,MAAA,IAAZA,eAAA,CAAc1F,IAAI,CAACyE,MAAI,CAACrG,KAAK,CAACA,KAAK,CAAC;AACrC;WACA;AACDqG,UAAAA,MAAI,CAACrB,OAAO,CAAC9C,SAAS,GAAG,UAACC,KAAK,EAAK;AACnCT,YAAAA,OAAO,CAACC,GAAG,CAAC,sCAAsC,CAAC;YACnD,IAAI0E,MAAI,CAAC5D,MAAM,EAAE;AAAA,cAAA,IAAA8E,iBAAA;cAChB,CAAAA,iBAAA,GAAAlB,MAAI,CAAChH,SAAS,MAAAkI,IAAAA,IAAAA,iBAAA,eAAdA,iBAAA,CAAAH,IAAA,CAAAf,MAAI,EAAalE,KAAK,CAACK,IAAI,EAAE6D,MAAI,CAAC5D,MAAM,CAAC;AAC1C;WACA;SACD;AACF;AACD;AAAC,GAAA,CAAA,CAAA;AAAA,CAAA;;;;"}
|
package/dist/webrtc/Responder.js
DELETED
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
import { inherits as _inherits, createClass as _createClass, superPropGet as _superPropGet, asyncToGenerator as _asyncToGenerator, classCallCheck as _classCallCheck, callSuper as _callSuper, defineProperty as _defineProperty, regeneratorRuntime as _regeneratorRuntime } from '../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
-
import { Peer } from './Peer.js';
|
|
3
|
-
|
|
4
|
-
var Responder = /*#__PURE__*/function (_Peer) {
|
|
5
|
-
function Responder() {
|
|
6
|
-
var _this;
|
|
7
|
-
_classCallCheck(this, Responder);
|
|
8
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
9
|
-
args[_key] = arguments[_key];
|
|
10
|
-
}
|
|
11
|
-
_this = _callSuper(this, Responder, [].concat(args));
|
|
12
|
-
_defineProperty(_this, "role", 'responder');
|
|
13
|
-
_defineProperty(_this, "reconnectTimeout", null);
|
|
14
|
-
return _this;
|
|
15
|
-
}
|
|
16
|
-
_inherits(Responder, _Peer);
|
|
17
|
-
return _createClass(Responder, [{
|
|
18
|
-
key: "onConnected",
|
|
19
|
-
value: function onConnected() {
|
|
20
|
-
// Responder waits for an offer
|
|
21
|
-
this.startReconnectionTimer();
|
|
22
|
-
}
|
|
23
|
-
}, {
|
|
24
|
-
key: "handlePeerJoined",
|
|
25
|
-
value: function handlePeerJoined(peerId) {
|
|
26
|
-
// Responder does not need to do anything when a peer joins, it waits for an offer
|
|
27
|
-
}
|
|
28
|
-
}, {
|
|
29
|
-
key: "handlePeerLeft",
|
|
30
|
-
value: function handlePeerLeft(peerId) {
|
|
31
|
-
// Responder logic for when a peer leaves
|
|
32
|
-
console.log("[Responder] Peer ".concat(peerId, " left"));
|
|
33
|
-
this.startReconnectionTimer();
|
|
34
|
-
}
|
|
35
|
-
}, {
|
|
36
|
-
key: "startReconnectionTimer",
|
|
37
|
-
value: function startReconnectionTimer() {
|
|
38
|
-
var _this2 = this;
|
|
39
|
-
if (this.reconnectTimeout || this.isDestroyed) {
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
console.log('[Responder] Starting reconnection timer...');
|
|
43
|
-
this.reconnectTimeout = setTimeout(function () {
|
|
44
|
-
_this2.reconnectTimeout = null;
|
|
45
|
-
if (_this2.isDestroyed) {
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
if (!_this2.connection || _this2.connection.iceConnectionState === 'failed' || _this2.connection.iceConnectionState === 'disconnected' || _this2.connection.iceConnectionState === 'closed') {
|
|
49
|
-
var _this2$socket;
|
|
50
|
-
console.log('[Responder] Attempting to re-join room for reconnection...');
|
|
51
|
-
(_this2$socket = _this2.socket) === null || _this2$socket === void 0 || _this2$socket.send(JSON.stringify({
|
|
52
|
-
type: 'join-room',
|
|
53
|
-
room: _this2.room
|
|
54
|
-
}));
|
|
55
|
-
_this2.startReconnectionTimer(); // Schedule next attempt if it still fails
|
|
56
|
-
}
|
|
57
|
-
}, 3000);
|
|
58
|
-
}
|
|
59
|
-
}, {
|
|
60
|
-
key: "stopReconnectionTimer",
|
|
61
|
-
value: function stopReconnectionTimer() {
|
|
62
|
-
if (this.reconnectTimeout) {
|
|
63
|
-
clearTimeout(this.reconnectTimeout);
|
|
64
|
-
this.reconnectTimeout = null;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}, {
|
|
68
|
-
key: "handleOffer",
|
|
69
|
-
value: function () {
|
|
70
|
-
var _handleOffer = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(offer, fromPeerId) {
|
|
71
|
-
var _this3 = this;
|
|
72
|
-
var answer;
|
|
73
|
-
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
74
|
-
while (1) switch (_context.prev = _context.next) {
|
|
75
|
-
case 0:
|
|
76
|
-
console.log("[Responder] Handling offer from ".concat(fromPeerId));
|
|
77
|
-
this.stopReconnectionTimer();
|
|
78
|
-
this.initializeConnectionAndChannel();
|
|
79
|
-
if (this.connection) {
|
|
80
|
-
_context.next = 5;
|
|
81
|
-
break;
|
|
82
|
-
}
|
|
83
|
-
throw new Error('Connection is not initialized');
|
|
84
|
-
case 5:
|
|
85
|
-
this.connection.oniceconnectionstatechange = function () {
|
|
86
|
-
var _this3$connection, _this3$connection2, _this3$connection3, _this3$connection4, _this3$connection5, _this3$connection6;
|
|
87
|
-
console.log("[Responder] ICE connection state: ".concat((_this3$connection = _this3.connection) === null || _this3$connection === void 0 ? void 0 : _this3$connection.iceConnectionState));
|
|
88
|
-
if (((_this3$connection2 = _this3.connection) === null || _this3$connection2 === void 0 ? void 0 : _this3$connection2.iceConnectionState) === 'failed' || ((_this3$connection3 = _this3.connection) === null || _this3$connection3 === void 0 ? void 0 : _this3$connection3.iceConnectionState) === 'disconnected' || ((_this3$connection4 = _this3.connection) === null || _this3$connection4 === void 0 ? void 0 : _this3$connection4.iceConnectionState) === 'closed') {
|
|
89
|
-
_this3.startReconnectionTimer();
|
|
90
|
-
} else if (((_this3$connection5 = _this3.connection) === null || _this3$connection5 === void 0 ? void 0 : _this3$connection5.iceConnectionState) === 'connected' || ((_this3$connection6 = _this3.connection) === null || _this3$connection6 === void 0 ? void 0 : _this3$connection6.iceConnectionState) === 'completed') {
|
|
91
|
-
_this3.stopReconnectionTimer();
|
|
92
|
-
}
|
|
93
|
-
};
|
|
94
|
-
_context.next = 8;
|
|
95
|
-
return this.connection.setRemoteDescription(offer);
|
|
96
|
-
case 8:
|
|
97
|
-
_context.next = 10;
|
|
98
|
-
return this.processCandidatesQueue();
|
|
99
|
-
case 10:
|
|
100
|
-
console.log('[Responder] Creating answer');
|
|
101
|
-
_context.next = 13;
|
|
102
|
-
return this.connection.createAnswer();
|
|
103
|
-
case 13:
|
|
104
|
-
answer = _context.sent;
|
|
105
|
-
_context.next = 16;
|
|
106
|
-
return this.setAndShareLocalDescription(answer, fromPeerId);
|
|
107
|
-
case 16:
|
|
108
|
-
case "end":
|
|
109
|
-
return _context.stop();
|
|
110
|
-
}
|
|
111
|
-
}, _callee, this);
|
|
112
|
-
}));
|
|
113
|
-
function handleOffer(_x, _x2) {
|
|
114
|
-
return _handleOffer.apply(this, arguments);
|
|
115
|
-
}
|
|
116
|
-
return handleOffer;
|
|
117
|
-
}()
|
|
118
|
-
}, {
|
|
119
|
-
key: "destroy",
|
|
120
|
-
value: function destroy() {
|
|
121
|
-
this.stopReconnectionTimer();
|
|
122
|
-
_superPropGet(Responder, "destroy", this)([]);
|
|
123
|
-
}
|
|
124
|
-
}, {
|
|
125
|
-
key: "handleAnswer",
|
|
126
|
-
value: function handleAnswer(answer, fromPeerId) {
|
|
127
|
-
// Responder does not handle answers
|
|
128
|
-
}
|
|
129
|
-
}]);
|
|
130
|
-
}(Peer);
|
|
131
|
-
|
|
132
|
-
export { Responder };
|
|
133
|
-
//# sourceMappingURL=Responder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Responder.js","sources":["../../src/webrtc/Responder.ts"],"sourcesContent":["import { Peer } from './Peer'\nimport { PeerId } from './PeerId'\n\nexport class Responder extends Peer {\n\tprotected role = 'responder' as const\n\tprivate reconnectTimeout: ReturnType<typeof setTimeout> | null = null\n\n\tprotected onConnected(): void {\n\t\t// Responder waits for an offer\n\t\tthis.startReconnectionTimer()\n\t}\n\n\tprotected handlePeerJoined(peerId: PeerId) {\n\t\t// Responder does not need to do anything when a peer joins, it waits for an offer\n\t}\n\n\tprotected handlePeerLeft(peerId: PeerId) {\n\t\t// Responder logic for when a peer leaves\n\t\tconsole.log(`[Responder] Peer ${peerId} left`)\n\t\tthis.startReconnectionTimer()\n\t}\n\n\tprivate startReconnectionTimer() {\n\t\tif (this.reconnectTimeout || this.isDestroyed) {\n\t\t\treturn\n\t\t}\n\t\tconsole.log('[Responder] Starting reconnection timer...')\n\t\tthis.reconnectTimeout = setTimeout(() => {\n\t\t\tthis.reconnectTimeout = null\n\t\t\tif (this.isDestroyed) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (\n\t\t\t\t!this.connection ||\n\t\t\t\tthis.connection.iceConnectionState === 'failed' ||\n\t\t\t\tthis.connection.iceConnectionState === 'disconnected' ||\n\t\t\t\tthis.connection.iceConnectionState === 'closed'\n\t\t\t) {\n\t\t\t\tconsole.log(\n\t\t\t\t\t'[Responder] Attempting to re-join room for reconnection...',\n\t\t\t\t)\n\t\t\t\tthis.socket?.send(\n\t\t\t\t\tJSON.stringify({ type: 'join-room', room: this.room }),\n\t\t\t\t)\n\t\t\t\tthis.startReconnectionTimer() // Schedule next attempt if it still fails\n\t\t\t}\n\t\t}, 3000)\n\t}\n\n\tprivate stopReconnectionTimer() {\n\t\tif (this.reconnectTimeout) {\n\t\t\tclearTimeout(this.reconnectTimeout)\n\t\t\tthis.reconnectTimeout = null\n\t\t}\n\t}\n\n\tprotected async handleOffer(\n\t\toffer: RTCSessionDescriptionInit,\n\t\tfromPeerId: PeerId,\n\t) {\n\t\tconsole.log(`[Responder] Handling offer from ${fromPeerId}`)\n\t\tthis.stopReconnectionTimer()\n\t\tthis.initializeConnectionAndChannel()\n\t\tif (!this.connection) {\n\t\t\tthrow new Error('Connection is not initialized')\n\t\t}\n\n\t\tthis.connection.oniceconnectionstatechange = () => {\n\t\t\tconsole.log(\n\t\t\t\t`[Responder] ICE connection state: ${this.connection?.iceConnectionState}`,\n\t\t\t)\n\t\t\tif (\n\t\t\t\tthis.connection?.iceConnectionState === 'failed' ||\n\t\t\t\tthis.connection?.iceConnectionState === 'disconnected' ||\n\t\t\t\tthis.connection?.iceConnectionState === 'closed'\n\t\t\t) {\n\t\t\t\tthis.startReconnectionTimer()\n\t\t\t} else if (\n\t\t\t\tthis.connection?.iceConnectionState === 'connected' ||\n\t\t\t\tthis.connection?.iceConnectionState === 'completed'\n\t\t\t) {\n\t\t\t\tthis.stopReconnectionTimer()\n\t\t\t}\n\t\t}\n\n\t\tawait this.connection.setRemoteDescription(offer)\n\t\tawait this.processCandidatesQueue()\n\t\tconsole.log('[Responder] Creating answer')\n\t\tconst answer = await this.connection.createAnswer()\n\t\tawait this.setAndShareLocalDescription(answer, fromPeerId)\n\t}\n\n\tpublic destroy() {\n\t\tthis.stopReconnectionTimer()\n\t\tsuper.destroy()\n\t}\n\n\tprotected handleAnswer(\n\t\tanswer: RTCSessionDescriptionInit,\n\t\tfromPeerId: PeerId,\n\t): void {\n\t\t// Responder does not handle answers\n\t}\n}\n"],"names":["Responder","_Peer","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","concat","_defineProperty","_inherits","_createClass","key","value","onConnected","startReconnectionTimer","handlePeerJoined","peerId","handlePeerLeft","console","log","_this2","reconnectTimeout","isDestroyed","setTimeout","connection","iceConnectionState","_this2$socket","socket","send","JSON","stringify","type","room","stopReconnectionTimer","clearTimeout","_handleOffer","_asyncToGenerator","_regeneratorRuntime","mark","_callee","offer","fromPeerId","_this3","answer","wrap","_callee$","_context","prev","next","initializeConnectionAndChannel","Error","oniceconnectionstatechange","_this3$connection","_this3$connection2","_this3$connection3","_this3$connection4","_this3$connection5","_this3$connection6","setRemoteDescription","processCandidatesQueue","createAnswer","sent","setAndShareLocalDescription","stop","handleOffer","_x","_x2","apply","destroy","_superPropGet","handleAnswer","Peer"],"mappings":"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"}
|