@phystack/hub-client 4.3.40-dev

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/.prettierignore +10 -0
  2. package/.prettierrc +10 -0
  3. package/CHANGELOG.md +1202 -0
  4. package/README-MEDIASTREAM.md +124 -0
  5. package/README.md +302 -0
  6. package/dist/constants/constants.d.ts +7 -0
  7. package/dist/constants/constants.d.ts.map +1 -0
  8. package/dist/constants/constants.js +10 -0
  9. package/dist/constants/constants.js.map +1 -0
  10. package/dist/helpers/browser.helper.d.ts +5 -0
  11. package/dist/helpers/browser.helper.d.ts.map +1 -0
  12. package/dist/helpers/browser.helper.js +19 -0
  13. package/dist/helpers/browser.helper.js.map +1 -0
  14. package/dist/helpers/cache.helper.d.ts +6 -0
  15. package/dist/helpers/cache.helper.d.ts.map +1 -0
  16. package/dist/helpers/cache.helper.js +46 -0
  17. package/dist/helpers/cache.helper.js.map +1 -0
  18. package/dist/helpers/date.helper.d.ts +4 -0
  19. package/dist/helpers/date.helper.d.ts.map +1 -0
  20. package/dist/helpers/date.helper.js +13 -0
  21. package/dist/helpers/date.helper.js.map +1 -0
  22. package/dist/helpers/session.helper.d.ts +13 -0
  23. package/dist/helpers/session.helper.d.ts.map +1 -0
  24. package/dist/helpers/session.helper.js +88 -0
  25. package/dist/helpers/session.helper.js.map +1 -0
  26. package/dist/helpers/shorten-look-ups.helper.d.ts +3 -0
  27. package/dist/helpers/shorten-look-ups.helper.d.ts.map +1 -0
  28. package/dist/helpers/shorten-look-ups.helper.js +80 -0
  29. package/dist/helpers/shorten-look-ups.helper.js.map +1 -0
  30. package/dist/helpers/signals-client.helper.d.ts +9 -0
  31. package/dist/helpers/signals-client.helper.d.ts.map +1 -0
  32. package/dist/helpers/signals-client.helper.js +44 -0
  33. package/dist/helpers/signals-client.helper.js.map +1 -0
  34. package/dist/helpers/signals.helper.d.ts +19 -0
  35. package/dist/helpers/signals.helper.d.ts.map +1 -0
  36. package/dist/helpers/signals.helper.js +48 -0
  37. package/dist/helpers/signals.helper.js.map +1 -0
  38. package/dist/helpers/wrtc/browser.d.ts +3 -0
  39. package/dist/helpers/wrtc/browser.d.ts.map +1 -0
  40. package/dist/helpers/wrtc/browser.js +11 -0
  41. package/dist/helpers/wrtc/browser.js.map +1 -0
  42. package/dist/helpers/wrtc/index.d.ts +5 -0
  43. package/dist/helpers/wrtc/index.d.ts.map +1 -0
  44. package/dist/helpers/wrtc/index.js +30 -0
  45. package/dist/helpers/wrtc/index.js.map +1 -0
  46. package/dist/helpers/wrtc/node.d.ts +3 -0
  47. package/dist/helpers/wrtc/node.d.ts.map +1 -0
  48. package/dist/helpers/wrtc/node.js +18 -0
  49. package/dist/helpers/wrtc/node.js.map +1 -0
  50. package/dist/index.d.ts +109 -0
  51. package/dist/index.d.ts.map +1 -0
  52. package/dist/index.js +1013 -0
  53. package/dist/index.js.map +1 -0
  54. package/dist/services/online-status-subscription.service.d.ts +28 -0
  55. package/dist/services/online-status-subscription.service.d.ts.map +1 -0
  56. package/dist/services/online-status-subscription.service.js +96 -0
  57. package/dist/services/online-status-subscription.service.js.map +1 -0
  58. package/dist/services/phyhub-connection.service.d.ts +20 -0
  59. package/dist/services/phyhub-connection.service.d.ts.map +1 -0
  60. package/dist/services/phyhub-connection.service.js +176 -0
  61. package/dist/services/phyhub-connection.service.js.map +1 -0
  62. package/dist/services/signals.service.d.ts +97 -0
  63. package/dist/services/signals.service.d.ts.map +1 -0
  64. package/dist/services/signals.service.js +536 -0
  65. package/dist/services/signals.service.js.map +1 -0
  66. package/dist/services/webrtc/datachannel.d.ts +10 -0
  67. package/dist/services/webrtc/datachannel.d.ts.map +1 -0
  68. package/dist/services/webrtc/datachannel.js +290 -0
  69. package/dist/services/webrtc/datachannel.js.map +1 -0
  70. package/dist/services/webrtc/mediastream.d.ts +10 -0
  71. package/dist/services/webrtc/mediastream.d.ts.map +1 -0
  72. package/dist/services/webrtc/mediastream.js +396 -0
  73. package/dist/services/webrtc/mediastream.js.map +1 -0
  74. package/dist/services/webrtc/peer-connection-ice.d.ts +32 -0
  75. package/dist/services/webrtc/peer-connection-ice.d.ts.map +1 -0
  76. package/dist/services/webrtc/peer-connection-ice.js +483 -0
  77. package/dist/services/webrtc/peer-connection-ice.js.map +1 -0
  78. package/dist/types/signal.types.d.ts +354 -0
  79. package/dist/types/signal.types.d.ts.map +1 -0
  80. package/dist/types/signal.types.js +53 -0
  81. package/dist/types/signal.types.js.map +1 -0
  82. package/dist/types/twin.types.d.ts +705 -0
  83. package/dist/types/twin.types.d.ts.map +1 -0
  84. package/dist/types/twin.types.js +21 -0
  85. package/dist/types/twin.types.js.map +1 -0
  86. package/dist/types/webrtc.types.d.ts +41 -0
  87. package/dist/types/webrtc.types.d.ts.map +1 -0
  88. package/dist/types/webrtc.types.js +3 -0
  89. package/dist/types/webrtc.types.js.map +1 -0
  90. package/package.json +50 -0
  91. package/src/constants/constants.ts +12 -0
  92. package/src/helpers/browser.helper.ts +15 -0
  93. package/src/helpers/cache.helper.ts +52 -0
  94. package/src/helpers/date.helper.ts +8 -0
  95. package/src/helpers/session.helper.ts +96 -0
  96. package/src/helpers/shorten-look-ups.helper.ts +75 -0
  97. package/src/helpers/signals-client.helper.ts +54 -0
  98. package/src/helpers/signals.helper.ts +41 -0
  99. package/src/helpers/wrtc/browser.ts +9 -0
  100. package/src/helpers/wrtc/index.ts +32 -0
  101. package/src/helpers/wrtc/node.ts +16 -0
  102. package/src/index.ts +1429 -0
  103. package/src/services/online-status-subscription.service.ts +127 -0
  104. package/src/services/phyhub-connection.service.ts +213 -0
  105. package/src/services/signals.service.ts +783 -0
  106. package/src/services/webrtc/datachannel.ts +421 -0
  107. package/src/services/webrtc/mediastream.ts +602 -0
  108. package/src/services/webrtc/peer-connection-ice.ts +689 -0
  109. package/src/types/lodash.d.ts +3 -0
  110. package/src/types/signal.types.ts +382 -0
  111. package/src/types/twin.types.ts +803 -0
  112. package/src/types/webrtc.types.ts +48 -0
  113. package/tsconfig.json +45 -0
@@ -0,0 +1,396 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createWebRTCMediaStreamConnection = createWebRTCMediaStreamConnection;
4
+ (async function initializeWebRTCGlobals() {
5
+ if (typeof window !== 'undefined')
6
+ return;
7
+ try {
8
+ const wrtc = require('@roamhq/wrtc');
9
+ if (typeof global.MediaStream === 'undefined' && wrtc.MediaStream) {
10
+ global.MediaStream = wrtc.MediaStream;
11
+ console.log('Global MediaStream initialized');
12
+ }
13
+ if (typeof global.RTCDataChannel === 'undefined' && wrtc.RTCDataChannel) {
14
+ global.RTCDataChannel = wrtc.RTCDataChannel;
15
+ console.log('Global RTCDataChannel initialized');
16
+ }
17
+ if (typeof global.RTCPeerConnection === 'undefined' && wrtc.RTCPeerConnection) {
18
+ global.RTCPeerConnection = wrtc.RTCPeerConnection;
19
+ console.log('Global RTCPeerConnection initialized');
20
+ }
21
+ if (typeof global.RTCSessionDescription === 'undefined' && wrtc.RTCSessionDescription) {
22
+ global.RTCSessionDescription = wrtc.RTCSessionDescription;
23
+ console.log('Global RTCSessionDescription initialized');
24
+ }
25
+ if (typeof global.RTCIceCandidate === 'undefined' && wrtc.RTCIceCandidate) {
26
+ global.RTCIceCandidate = wrtc.RTCIceCandidate;
27
+ console.log('Global RTCIceCandidate initialized');
28
+ }
29
+ console.log('WebRTC globals successfully initialized');
30
+ }
31
+ catch (error) {
32
+ console.error('Failed to initialize WebRTC globals:', error);
33
+ }
34
+ })().catch(err => console.error('Error in WebRTC globals initialization:', err));
35
+ const peer_connection_ice_1 = require("./peer-connection-ice");
36
+ const CONNECTION_TIMEOUT = 15000;
37
+ const RECONNECT_DELAY = 1000;
38
+ const INITIAL_RETRY_DELAY = 1000;
39
+ const MAX_RETRY_DELAY = 30000;
40
+ const FRAME_INACTIVITY_TIMEOUT = 5000;
41
+ async function createWebRTCMediaStreamConnection(options) {
42
+ let pc = null;
43
+ let isShuttingDown = false;
44
+ let isReconnecting = false;
45
+ let currentConnectionId = 0;
46
+ let pendingCandidates = [];
47
+ let activeMediaStream = null;
48
+ let persistentLocalStream;
49
+ const { targetTwinId, sendTwinMessage, subscribeTwin, onTwinMessage, offTwinMessage, useStun = true, isInitiator = true, channelPrefix = 'stream', mediaOptions = { isMediaConnection: true }, } = options;
50
+ const { persistentMediaStream, setupMediaStream, setCleanupFn } = createPersistentMediaStream();
51
+ setCleanupFn(() => {
52
+ if (mediaOptions.isMediaConnection && mediaOptions.localStream) {
53
+ mediaOptions.localStream.getTracks().forEach(track => track.stop());
54
+ }
55
+ });
56
+ if (!isInitiator && mediaOptions.isMediaConnection) {
57
+ if (!mediaOptions.localStream) {
58
+ mediaOptions.localStream = new MediaStream();
59
+ console.log('Created persistent local MediaStream for the non-initiator side.');
60
+ }
61
+ persistentLocalStream = mediaOptions.localStream;
62
+ }
63
+ const callbacks = {
64
+ async onCreateConnection(pcInstance, connectionId, localInitiator) {
65
+ console.log(`Setting up media stream for connection ID: ${connectionId} ${JSON.stringify(localInitiator)}`);
66
+ if (mediaOptions.isMediaConnection) {
67
+ if (localInitiator) {
68
+ console.log('Setting up recvonly transceiver for initiator');
69
+ pcInstance.addTransceiver('video', { direction: 'recvonly' });
70
+ }
71
+ else {
72
+ if (persistentLocalStream) {
73
+ console.log('Attaching previously added tracks to new PC...');
74
+ for (const track of persistentLocalStream.getTracks()) {
75
+ console.log('Adding track to new peer connection:', track.kind, track.id);
76
+ pcInstance.addTrack(track, persistentLocalStream);
77
+ }
78
+ }
79
+ else {
80
+ console.log('No localStream found yet. Will wait for app to add tracks...');
81
+ }
82
+ }
83
+ pcInstance.ontrack = (event) => {
84
+ console.log('Track received in hub-client');
85
+ if (event.streams && event.streams[0]) {
86
+ setupMediaStream(event.streams[0], isReconnecting, isShuttingDown, triggerReconnect);
87
+ activeMediaStream = event.streams[0];
88
+ }
89
+ };
90
+ }
91
+ return null;
92
+ },
93
+ onCloseCleanup() {
94
+ if (mediaOptions.isMediaConnection && mediaOptions.localStream) {
95
+ mediaOptions.localStream.getTracks().forEach(track => track.stop());
96
+ }
97
+ },
98
+ async onSubscribe() {
99
+ await subscribeTwin(targetTwinId);
100
+ },
101
+ async sendSignalingMessage(type, data) {
102
+ await sendTwinMessage(targetTwinId, {
103
+ type: `${channelPrefix}-${targetTwinId}:${type}`,
104
+ data,
105
+ });
106
+ },
107
+ setupMessageHandling(messageHandler) {
108
+ onTwinMessage(targetTwinId, messageHandler);
109
+ },
110
+ removeMessageHandling(messageHandler) {
111
+ console.log(`Removing message listener for twin ${targetTwinId}`);
112
+ offTwinMessage(targetTwinId, messageHandler);
113
+ },
114
+ reportConnectionState(info) {
115
+ console.log(info);
116
+ },
117
+ reportError(info, error) {
118
+ console.error(info, error || '');
119
+ },
120
+ async retryConnection(retries, toggledUseStun, nextDelay) {
121
+ isReconnecting = false;
122
+ return (0, peer_connection_ice_1.attemptConnection)(state, { ...options, useStun: toggledUseStun !== null && toggledUseStun !== void 0 ? toggledUseStun : useStun }, retries, toggledUseStun !== null && toggledUseStun !== void 0 ? toggledUseStun : useStun, nextDelay !== null && nextDelay !== void 0 ? nextDelay : INITIAL_RETRY_DELAY, INITIAL_RETRY_DELAY, CONNECTION_TIMEOUT, MAX_RETRY_DELAY, callbacks);
123
+ },
124
+ safeReject(error) {
125
+ throw error;
126
+ },
127
+ };
128
+ const state = {
129
+ pc,
130
+ isShuttingDown,
131
+ isReconnecting,
132
+ currentConnectionId,
133
+ pendingCandidates,
134
+ activeDataChannel: null,
135
+ activeMediaStream,
136
+ useStun,
137
+ channelPrefix,
138
+ targetTwinId,
139
+ isInitiator,
140
+ connectionType: 'mediastream',
141
+ };
142
+ function triggerReconnect(attempt) {
143
+ if (isReconnecting || isShuttingDown) {
144
+ console.log(`triggerReconnect() called but already reconnecting or shutting down (attempt ${attempt})`);
145
+ return;
146
+ }
147
+ isReconnecting = true;
148
+ (0, peer_connection_ice_1.triggerReconnect)(state, attempt, RECONNECT_DELAY, callbacks);
149
+ }
150
+ const result = await (0, peer_connection_ice_1.attemptConnection)(state, { ...options }, 0, useStun, INITIAL_RETRY_DELAY, INITIAL_RETRY_DELAY, CONNECTION_TIMEOUT, MAX_RETRY_DELAY, callbacks);
151
+ persistentMediaStream.addTrack = function (track) {
152
+ var _a, _b, _c, _d;
153
+ console.log(`Adding track to persistent media stream: ${track.kind} - ${track.id}`);
154
+ const existingTrack = (_a = persistentMediaStream._internalTracks) === null || _a === void 0 ? void 0 : _a.find(t => t.id === track.id);
155
+ if (existingTrack) {
156
+ console.log(`Track ${track.id} already exists, replacing it`);
157
+ const trackIndex = (_c = (_b = persistentMediaStream._internalTracks) === null || _b === void 0 ? void 0 : _b.findIndex(t => t.id === track.id)) !== null && _c !== void 0 ? _c : -1;
158
+ if (trackIndex !== -1 && persistentMediaStream._internalTracks) {
159
+ persistentMediaStream._internalTracks.splice(trackIndex, 1);
160
+ }
161
+ }
162
+ if (persistentMediaStream._internalTracks) {
163
+ persistentMediaStream._internalTracks.push(track);
164
+ }
165
+ if (activeMediaStream) {
166
+ try {
167
+ const existingActiveTrack = activeMediaStream.getTrackById(track.id);
168
+ if (existingActiveTrack) {
169
+ activeMediaStream.removeTrack(existingActiveTrack);
170
+ }
171
+ activeMediaStream.addTrack(track);
172
+ }
173
+ catch (error) {
174
+ console.warn('Error adding track to active MediaStream:', error);
175
+ }
176
+ }
177
+ if (!isInitiator && persistentLocalStream) {
178
+ console.log('Adding track to persistent local stream for non-initiator side:', track.kind, track.id);
179
+ const existingLocalTrack = persistentLocalStream.getTrackById(track.id);
180
+ if (existingLocalTrack) {
181
+ persistentLocalStream.removeTrack(existingLocalTrack);
182
+ }
183
+ persistentLocalStream.addTrack(track);
184
+ if (state.pc && state.pc.connectionState === 'connected') {
185
+ console.log('PeerConnection is connected, calling pc.addTrack() now...');
186
+ const senders = state.pc.getSenders();
187
+ const existingSender = senders.find(sender => sender.track && sender.track.id === track.id);
188
+ if (existingSender) {
189
+ console.log('Replacing existing track in sender');
190
+ existingSender.replaceTrack(track);
191
+ }
192
+ else {
193
+ state.pc.addTrack(track, persistentLocalStream);
194
+ }
195
+ }
196
+ else {
197
+ console.log('PeerConnection is not connected yet, will attach track at next onCreateConnection');
198
+ }
199
+ }
200
+ (_d = persistentMediaStream._notifyTrackListeners) === null || _d === void 0 ? void 0 : _d.call(persistentMediaStream, track);
201
+ };
202
+ const mediaStreamResult = {
203
+ mediaStream: persistentMediaStream,
204
+ _rawPeerConnection: result._rawPeerConnection,
205
+ _rawMediaStream: activeMediaStream || undefined,
206
+ close: () => {
207
+ isShuttingDown = true;
208
+ if (result.close) {
209
+ result.close();
210
+ }
211
+ },
212
+ };
213
+ return mediaStreamResult;
214
+ }
215
+ const createPersistentMediaStream = () => {
216
+ const trackListeners = [];
217
+ const closeListeners = [];
218
+ const frameListeners = [];
219
+ const tracks = [];
220
+ const trackLastFrameTime = {};
221
+ let frameActivityCheckInterval = null;
222
+ let reconnectAttempts = 0;
223
+ let cleanupFn = null;
224
+ let isActive = false;
225
+ const setCleanupFn = (fn) => {
226
+ cleanupFn = fn;
227
+ };
228
+ const notifyTrackListeners = (track) => {
229
+ trackListeners.forEach(listener => {
230
+ try {
231
+ listener(track);
232
+ }
233
+ catch (error) {
234
+ console.error('Error in track listener:', error);
235
+ }
236
+ });
237
+ };
238
+ const updateTrackLastFrameTime = (trackId) => {
239
+ trackLastFrameTime[trackId] = Date.now();
240
+ isActive = true;
241
+ };
242
+ const notifyFrameListeners = (frameData) => {
243
+ frameListeners.forEach(listener => {
244
+ try {
245
+ listener(frameData);
246
+ }
247
+ catch (error) {
248
+ console.error('Error in frame listener:', error);
249
+ }
250
+ });
251
+ };
252
+ const checkFrameActivity = (triggerReconnect) => {
253
+ const now = Date.now();
254
+ let hasActiveTrack = false;
255
+ Object.entries(trackLastFrameTime).forEach(([_, lastTime]) => {
256
+ const timeSinceLastFrame = now - lastTime;
257
+ if (timeSinceLastFrame < FRAME_INACTIVITY_TIMEOUT) {
258
+ hasActiveTrack = true;
259
+ }
260
+ });
261
+ if (!hasActiveTrack && isActive) {
262
+ console.log('No frames received recently on any track, connection might be stale');
263
+ isActive = false;
264
+ if (Object.keys(trackLastFrameTime).length > 0) {
265
+ console.log('Triggering reconnect due to frame inactivity');
266
+ triggerReconnect(reconnectAttempts++);
267
+ }
268
+ }
269
+ };
270
+ const setupTrackEndedEvent = (track, ms, isReconnecting, isShuttingDown, triggerReconnect) => {
271
+ trackLastFrameTime[track.id] = Date.now();
272
+ const extendedTrack = track;
273
+ if (typeof extendedTrack.onFrame === 'function') {
274
+ const originalOnFrame = extendedTrack.onFrame;
275
+ extendedTrack.onFrame = function (frame) {
276
+ updateTrackLastFrameTime(track.id);
277
+ notifyFrameListeners(frame);
278
+ originalOnFrame.call(extendedTrack, frame);
279
+ };
280
+ }
281
+ else {
282
+ track.onended = () => {
283
+ console.log(`Track ${track.id} ended`);
284
+ delete trackLastFrameTime[track.id];
285
+ const trackIndex = tracks.findIndex(t => t.id === track.id);
286
+ if (trackIndex !== -1) {
287
+ tracks.splice(trackIndex, 1);
288
+ }
289
+ const allTracksEnded = ms.getTracks().every(t => t.readyState === 'ended');
290
+ if (allTracksEnded && !isShuttingDown && !isReconnecting) {
291
+ console.log('All tracks ended, triggering reconnect');
292
+ triggerReconnect(reconnectAttempts++);
293
+ }
294
+ };
295
+ }
296
+ };
297
+ const persistentMediaStream = {
298
+ _internalTracks: tracks,
299
+ _notifyTrackListeners: notifyTrackListeners,
300
+ getTracks: function () {
301
+ return [...tracks];
302
+ },
303
+ onTrack: function (callback) {
304
+ console.log('Adding track listener to persistent media stream');
305
+ trackListeners.push(callback);
306
+ tracks.forEach(track => {
307
+ try {
308
+ callback(track);
309
+ }
310
+ catch (error) {
311
+ console.error('Error in track listener:', error);
312
+ }
313
+ });
314
+ },
315
+ offTrack: function (callback) {
316
+ const index = trackListeners.indexOf(callback);
317
+ if (index !== -1) {
318
+ trackListeners.splice(index, 1);
319
+ }
320
+ },
321
+ onFrame: function (callback) {
322
+ console.log('Adding frame listener to persistent media stream');
323
+ frameListeners.push(callback);
324
+ },
325
+ offFrame: function (callback) {
326
+ const index = frameListeners.indexOf(callback);
327
+ if (index !== -1) {
328
+ frameListeners.splice(index, 1);
329
+ }
330
+ },
331
+ onClose: function (callback) {
332
+ closeListeners.push(callback);
333
+ },
334
+ offClose: function (callback) {
335
+ const index = closeListeners.indexOf(callback);
336
+ if (index !== -1) {
337
+ closeListeners.splice(index, 1);
338
+ }
339
+ },
340
+ close: function () {
341
+ console.log('Closing persistent media stream');
342
+ if (frameActivityCheckInterval) {
343
+ clearInterval(frameActivityCheckInterval);
344
+ frameActivityCheckInterval = null;
345
+ }
346
+ tracks.splice(0, tracks.length);
347
+ Object.keys(trackLastFrameTime).forEach(key => {
348
+ delete trackLastFrameTime[key];
349
+ });
350
+ closeListeners.forEach(listener => {
351
+ try {
352
+ listener();
353
+ }
354
+ catch (error) {
355
+ console.error('Error in close listener:', error);
356
+ }
357
+ });
358
+ if (cleanupFn) {
359
+ cleanupFn();
360
+ }
361
+ isActive = false;
362
+ },
363
+ addTrack: function (_track) {
364
+ console.warn('Default addTrack implementation called - this should be replaced');
365
+ },
366
+ isReceivingFrames: function () {
367
+ if (Object.keys(trackLastFrameTime).length === 0) {
368
+ return false;
369
+ }
370
+ const now = Date.now();
371
+ return Object.values(trackLastFrameTime).some(lastTime => now - lastTime < FRAME_INACTIVITY_TIMEOUT);
372
+ },
373
+ };
374
+ const setupMediaStream = (ms, isReconnecting, isShuttingDown, triggerReconnect) => {
375
+ console.log('Setting up media stream with tracks:', ms.getTracks().length);
376
+ tracks.splice(0, tracks.length);
377
+ if (frameActivityCheckInterval) {
378
+ clearInterval(frameActivityCheckInterval);
379
+ }
380
+ frameActivityCheckInterval = setInterval(() => {
381
+ checkFrameActivity(triggerReconnect);
382
+ }, 1000);
383
+ ms.getTracks().forEach(track => {
384
+ console.log(`Processing track: ${track.kind} - ${track.id} with readyState: ${track.readyState}`);
385
+ tracks.push(track);
386
+ setupTrackEndedEvent(track, ms, isReconnecting, isShuttingDown, triggerReconnect);
387
+ notifyTrackListeners(track);
388
+ });
389
+ };
390
+ return {
391
+ persistentMediaStream,
392
+ setupMediaStream,
393
+ setCleanupFn,
394
+ };
395
+ };
396
+ //# sourceMappingURL=mediastream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mediastream.js","sourceRoot":"","sources":["../../../src/services/webrtc/mediastream.ts"],"names":[],"mappings":";;AAoEA,8EAmQC;AAtUD,CAAC,KAAK,UAAU,uBAAuB;IAErC,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO;IAE1C,IAAI,CAAC;QAEH,MAAM,IAAI,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;QAGrC,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAClE,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,OAAO,MAAM,CAAC,cAAc,KAAK,WAAW,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxE,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,OAAO,MAAM,CAAC,iBAAiB,KAAK,WAAW,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC9E,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,WAAW,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACtF,MAAM,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,OAAO,MAAM,CAAC,eAAe,KAAK,WAAW,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1E,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QACpD,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,GAAG,CAAC,CAAC,CAAC;AAOjF,+DAK+B;AAW/B,MAAM,kBAAkB,GAAG,KAAK,CAAC;AACjC,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,MAAM,mBAAmB,GAAG,IAAI,CAAC;AACjC,MAAM,eAAe,GAAG,KAAK,CAAC;AAC9B,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAE/B,KAAK,UAAU,iCAAiC,CACrD,OAAgC;IAEhC,IAAI,EAAE,GAA6B,IAAI,CAAC;IACxC,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,IAAI,iBAAiB,GAA0B,EAAE,CAAC;IAClD,IAAI,iBAAiB,GAAuB,IAAI,CAAC;IACjD,IAAI,qBAA8C,CAAC;IAEnD,MAAM,EACJ,YAAY,EACZ,eAAe,EACf,aAAa,EACb,aAAa,EACb,cAAc,EACd,OAAO,GAAG,IAAI,EACd,WAAW,GAAG,IAAI,EAClB,aAAa,GAAG,QAAQ,EACxB,YAAY,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,GAC3C,GAAG,OAAO,CAAC;IAGZ,MAAM,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,YAAY,EAAE,GAAG,2BAA2B,EAAE,CAAC;IAGhG,YAAY,CAAC,GAAG,EAAE;QAChB,IAAI,YAAY,CAAC,iBAAiB,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;YAC/D,YAAY,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,WAAW,IAAI,YAAY,CAAC,iBAAiB,EAAE,CAAC;QACnD,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YAC9B,YAAY,CAAC,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;QAClF,CAAC;QACD,qBAAqB,GAAG,YAAY,CAAC,WAAW,CAAC;IACnD,CAAC;IAED,MAAM,SAAS,GAA4B;QACzC,KAAK,CAAC,kBAAkB,CACtB,UAA6B,EAC7B,YAAoB,EACpB,cAAuB;YAEvB,OAAO,CAAC,GAAG,CACT,8CAA8C,YAAY,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,CAC/F,CAAC;YAEF,IAAI,YAAY,CAAC,iBAAiB,EAAE,CAAC;gBACnC,IAAI,cAAc,EAAE,CAAC;oBACnB,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;oBAC7D,UAAU,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;gBAChE,CAAC;qBAAM,CAAC;oBACN,IAAI,qBAAqB,EAAE,CAAC;wBAC1B,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;wBAC9D,KAAK,MAAM,KAAK,IAAI,qBAAqB,CAAC,SAAS,EAAE,EAAE,CAAC;4BACtD,OAAO,CAAC,GAAG,CAAC,sCAAsC,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;4BAC1E,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;wBACpD,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;oBAC9E,CAAC;gBACH,CAAC;gBAED,UAAU,CAAC,OAAO,GAAG,CAAC,KAAoB,EAAE,EAAE;oBAC5C,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;oBAC5C,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;wBACtC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;wBACrF,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBACvC,CAAC;gBACH,CAAC,CAAC;YACJ,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAED,cAAc;YACZ,IAAI,YAAY,CAAC,iBAAiB,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;gBAC/D,YAAY,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAED,KAAK,CAAC,WAAW;YACf,MAAM,aAAa,CAAC,YAAY,CAAC,CAAC;QACpC,CAAC;QAED,KAAK,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI;YACnC,MAAM,eAAe,CAAC,YAAY,EAAE;gBAClC,IAAI,EAAE,GAAG,aAAa,IAAI,YAAY,IAAI,IAAI,EAAE;gBAChD,IAAI;aACL,CAAC,CAAC;QACL,CAAC;QAED,oBAAoB,CAAC,cAAc;YACjC,aAAa,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QAC9C,CAAC;QAED,qBAAqB,CAAC,cAAc;YAClC,OAAO,CAAC,GAAG,CAAC,sCAAsC,YAAY,EAAE,CAAC,CAAC;YAClE,cAAc,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QAC/C,CAAC;QAED,qBAAqB,CAAC,IAAY;YAChC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QAED,WAAW,CAAC,IAAY,EAAE,KAAW;YACnC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QACnC,CAAC;QAED,KAAK,CAAC,eAAe,CAAC,OAAe,EAAE,cAAwB,EAAE,SAAkB;YACjF,cAAc,GAAG,KAAK,CAAC;YAEvB,OAAO,IAAA,uCAAoB,EACzB,KAAK,EACL,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,OAAO,EAAE,EAClD,OAAO,EACP,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,OAAO,EACzB,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,mBAAmB,EAChC,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,SAAS,CACV,CAAC;QACJ,CAAC;QAED,UAAU,CAAC,KAAK;YACd,MAAM,KAAK,CAAC;QACd,CAAC;KACF,CAAC;IAEF,MAAM,KAAK,GAAwB;QACjC,EAAE;QACF,cAAc;QACd,cAAc;QACd,mBAAmB;QACnB,iBAAiB;QACjB,iBAAiB,EAAE,IAAI;QACvB,iBAAiB;QACjB,OAAO;QACP,aAAa;QACb,YAAY;QACZ,WAAW;QACX,cAAc,EAAE,aAAa;KAC9B,CAAC;IAEF,SAAS,gBAAgB,CAAC,OAAe;QACvC,IAAI,cAAc,IAAI,cAAc,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CACT,gFAAgF,OAAO,GAAG,CAC3F,CAAC;YACF,OAAO;QACT,CAAC;QAED,cAAc,GAAG,IAAI,CAAC;QAEtB,IAAA,sCAAmB,EAAC,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,IAAA,uCAAoB,EACvC,KAAK,EACL,EAAE,GAAG,OAAO,EAAE,EACd,CAAC,EACD,OAAO,EACP,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,SAAS,CACV,CAAC;IAEF,qBAAqB,CAAC,QAAQ,GAAG,UAAU,KAAuB;;QAChE,OAAO,CAAC,GAAG,CAAC,4CAA4C,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAGpF,MAAM,aAAa,GAAG,MAAA,qBAAqB,CAAC,eAAe,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;QAG1F,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,EAAE,+BAA+B,CAAC,CAAC;YAC9D,MAAM,UAAU,GACd,MAAA,MAAA,qBAAqB,CAAC,eAAe,0CAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,mCAAI,CAAC,CAAC,CAAC;YACjF,IAAI,UAAU,KAAK,CAAC,CAAC,IAAI,qBAAqB,CAAC,eAAe,EAAE,CAAC;gBAC/D,qBAAqB,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QAGD,IAAI,qBAAqB,CAAC,eAAe,EAAE,CAAC;YAC1C,qBAAqB,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpD,CAAC;QAGD,IAAI,iBAAiB,EAAE,CAAC;YACtB,IAAI,CAAC;gBAEH,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACrE,IAAI,mBAAmB,EAAE,CAAC;oBAExB,iBAAiB,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;gBACrD,CAAC;gBACD,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QAED,IAAI,CAAC,WAAW,IAAI,qBAAqB,EAAE,CAAC;YAC1C,OAAO,CAAC,GAAG,CACT,iEAAiE,EACjE,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,EAAE,CACT,CAAC;YAEF,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACxE,IAAI,kBAAkB,EAAE,CAAC;gBAEvB,qBAAqB,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;YACxD,CAAC;YACD,qBAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAEtC,IAAI,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,CAAC,eAAe,KAAK,WAAW,EAAE,CAAC;gBACzD,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;gBACzE,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;gBACtC,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;gBAE5F,IAAI,cAAc,EAAE,CAAC;oBACnB,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;oBAClD,cAAc,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACrC,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CACT,mFAAmF,CACpF,CAAC;YACJ,CAAC;QACH,CAAC;QAGD,MAAA,qBAAqB,CAAC,qBAAqB,sEAAG,KAAK,CAAC,CAAC;IACvD,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAA4B;QACjD,WAAW,EAAE,qBAAqB;QAClC,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;QAC7C,eAAe,EAAE,iBAAiB,IAAI,SAAS;QAC/C,KAAK,EAAE,GAAG,EAAE;YACV,cAAc,GAAG,IAAI,CAAC;YACtB,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;KACF,CAAC;IAEF,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,MAAM,2BAA2B,GAAG,GASlC,EAAE;IACF,MAAM,cAAc,GAA0C,EAAE,CAAC;IACjE,MAAM,cAAc,GAAmB,EAAE,CAAC;IAC1C,MAAM,cAAc,GAAiC,EAAE,CAAC;IACxD,MAAM,MAAM,GAAuB,EAAE,CAAC;IAGtC,MAAM,kBAAkB,GAA2B,EAAE,CAAC;IAEtD,IAAI,0BAA0B,GAA0B,IAAI,CAAC;IAI7D,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B,IAAI,SAAS,GAAwB,IAAI,CAAC;IAC1C,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,MAAM,YAAY,GAAG,CAAC,EAAc,EAAE,EAAE;QACtC,SAAS,GAAG,EAAE,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,oBAAoB,GAAG,CAAC,KAAuB,EAAE,EAAE;QACvD,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAChC,IAAI,CAAC;gBACH,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;YACnD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,wBAAwB,GAAG,CAAC,OAAe,EAAE,EAAE;QACnD,kBAAkB,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzC,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,oBAAoB,GAAG,CAAC,SAAc,EAAE,EAAE;QAC9C,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAChC,IAAI,CAAC;gBACH,QAAQ,CAAC,SAAS,CAAC,CAAC;YACtB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;YACnD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAGF,MAAM,kBAAkB,GAAG,CAAC,gBAA2C,EAAE,EAAE;QACzE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,cAAc,GAAG,KAAK,CAAC;QAE3B,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE;YAC3D,MAAM,kBAAkB,GAAG,GAAG,GAAG,QAAQ,CAAC;YAC1C,IAAI,kBAAkB,GAAG,wBAAwB,EAAE,CAAC;gBAClD,cAAc,GAAG,IAAI,CAAC;YACxB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,IAAI,QAAQ,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;YACnF,QAAQ,GAAG,KAAK,CAAC;YAGjB,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/C,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;gBAC5D,gBAAgB,CAAC,iBAAiB,EAAE,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,oBAAoB,GAAG,CAC3B,KAAuB,EACvB,EAAe,EACf,cAAuB,EACvB,cAAuB,EACvB,gBAA2C,EAC3C,EAAE;QAEF,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAG1C,MAAM,aAAa,GAAG,KAAiC,CAAC;QACxD,IAAI,OAAO,aAAa,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YAEhD,MAAM,eAAe,GAAG,aAAa,CAAC,OAAO,CAAC;YAC9C,aAAa,CAAC,OAAO,GAAG,UAAU,KAAU;gBAE1C,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAEnC,oBAAoB,CAAC,KAAK,CAAC,CAAC;gBAE5B,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;YAC7C,CAAC,CAAC;QACJ,CAAC;aAAM,CAAC;YAEN,KAAK,CAAC,OAAO,GAAG,GAAG,EAAE;gBACnB,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC;gBACvC,OAAO,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAEpC,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC5D,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;oBACtB,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;gBAC/B,CAAC;gBAED,MAAM,cAAc,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC;gBAE3E,IAAI,cAAc,IAAI,CAAC,cAAc,IAAI,CAAC,cAAc,EAAE,CAAC;oBACzD,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;oBACtD,gBAAgB,CAAC,iBAAiB,EAAE,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAuB;QAEhD,eAAe,EAAE,MAAM;QAGvB,qBAAqB,EAAE,oBAAoB;QAE3C,SAAS,EAAE;YACT,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;QACrB,CAAC;QAED,OAAO,EAAE,UAAU,QAA2C;YAC5D,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;YAChE,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAG9B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACrB,IAAI,CAAC;oBACH,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAClB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,QAAQ,EAAE,UAAU,QAA2C;YAC7D,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC/C,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjB,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAED,OAAO,EAAE,UAAU,QAAkC;YACnD,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;YAChE,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;QAED,QAAQ,EAAE,UAAU,QAAkC;YACpD,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC/C,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjB,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAED,OAAO,EAAE,UAAU,QAAoB;YACrC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;QAED,QAAQ,EAAE,UAAU,QAAoB;YACtC,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC/C,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjB,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAED,KAAK,EAAE;YACL,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;YAG/C,IAAI,0BAA0B,EAAE,CAAC;gBAC/B,aAAa,CAAC,0BAA0B,CAAC,CAAC;gBAC1C,0BAA0B,GAAG,IAAI,CAAC;YACpC,CAAC;YAGD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAGhC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBAC5C,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;YAGH,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAChC,IAAI,CAAC;oBACH,QAAQ,EAAE,CAAC;gBACb,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC,CAAC,CAAC;YAGH,IAAI,SAAS,EAAE,CAAC;gBACd,SAAS,EAAE,CAAC;YACd,CAAC;YAED,QAAQ,GAAG,KAAK,CAAC;QACnB,CAAC;QAED,QAAQ,EAAE,UAAU,MAAwB;YAE1C,OAAO,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QACnF,CAAC;QAGD,iBAAiB,EAAE;YACjB,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjD,OAAO,KAAK,CAAC;YACf,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,OAAO,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAC3C,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,QAAQ,GAAG,wBAAwB,CACtD,CAAC;QACJ,CAAC;KACF,CAAC;IAEF,MAAM,gBAAgB,GAAG,CACvB,EAAe,EACf,cAAuB,EACvB,cAAuB,EACvB,gBAA2C,EAC3C,EAAE;QACF,OAAO,CAAC,GAAG,CAAC,sCAAsC,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC;QAG3E,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAGhC,IAAI,0BAA0B,EAAE,CAAC;YAC/B,aAAa,CAAC,0BAA0B,CAAC,CAAC;QAC5C,CAAC;QAED,0BAA0B,GAAG,WAAW,CAAC,GAAG,EAAE;YAC5C,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;QACvC,CAAC,EAAE,IAAI,CAAC,CAAC;QAGT,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC7B,OAAO,CAAC,GAAG,CACT,qBAAqB,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,EAAE,qBAAqB,KAAK,CAAC,UAAU,EAAE,CACrF,CAAC;YAGF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAGnB,oBAAoB,CAAC,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;YAGlF,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,OAAO;QACL,qBAAqB;QACrB,gBAAgB;QAChB,YAAY;KACb,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { WebRTCConnectionOptions } from '../../types/webrtc.types';
2
+ export interface PeerConnectionState {
3
+ pc: RTCPeerConnection | null;
4
+ isShuttingDown: boolean;
5
+ isReconnecting: boolean;
6
+ currentConnectionId: number;
7
+ pendingCandidates: RTCIceCandidateInit[];
8
+ activeDataChannel: RTCDataChannel | null;
9
+ activeMediaStream?: MediaStream | null;
10
+ useStun?: boolean;
11
+ channelPrefix?: string;
12
+ targetTwinId?: string;
13
+ isInitiator?: boolean;
14
+ connectionType?: 'datachannel' | 'mediastream';
15
+ }
16
+ export interface PeerConnectionCallbacks {
17
+ onCreateConnection: (pc: RTCPeerConnection, connectionId: number, isInitiator: boolean) => Promise<RTCDataChannel | MediaStream | null>;
18
+ onCloseCleanup: () => void;
19
+ onSubscribe: () => Promise<void>;
20
+ sendSignalingMessage: (type: string, data: any) => Promise<void>;
21
+ setupMessageHandling: (messageHandler: (message: any) => void) => void;
22
+ removeMessageHandling: (messageHandler: (message: any) => void) => void;
23
+ reportConnectionState: (info: string) => void;
24
+ reportError: (info: string, error?: any) => void;
25
+ retryConnection: (retryCount: number, useStun?: boolean, delay?: number) => Promise<unknown>;
26
+ safeReject: (error: Error) => void;
27
+ }
28
+ export declare function createPeerConnection(useStun: boolean): RTCPeerConnection;
29
+ export declare function handleIceAndConnectionState(state: PeerConnectionState, pc: RTCPeerConnection, callbacks: PeerConnectionCallbacks, connectionId: number): void;
30
+ export declare function attemptConnection(state: PeerConnectionState, options: WebRTCConnectionOptions, retryCount: number, currentUseStun: boolean, delay: number, INITIAL_RETRY_DELAY: number, CONNECTION_TIMEOUT: number, MAX_RETRY_DELAY: number, callbacks: PeerConnectionCallbacks): Promise<any>;
31
+ export declare function triggerReconnect(state: PeerConnectionState, attempt: number, RECONNECT_DELAY: number, callbacks: PeerConnectionCallbacks): void;
32
+ //# sourceMappingURL=peer-connection-ice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"peer-connection-ice.d.ts","sourceRoot":"","sources":["../../../src/services/webrtc/peer-connection-ice.ts"],"names":[],"mappings":"AAyCA,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,mBAAmB,EAAE,CAAC;IACzC,iBAAiB,EAAE,cAAc,GAAG,IAAI,CAAC;IACzC,iBAAiB,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,aAAa,GAAG,aAAa,CAAC;CAChD;AAED,MAAM,WAAW,uBAAuB;IACtC,kBAAkB,EAAE,CAClB,EAAE,EAAE,iBAAiB,EACrB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,OAAO,KACjB,OAAO,CAAC,cAAc,GAAG,WAAW,GAAG,IAAI,CAAC,CAAC;IAElD,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,oBAAoB,EAAE,CAAC,cAAc,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,KAAK,IAAI,CAAC;IACvE,qBAAqB,EAAE,CAAC,cAAc,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,KAAK,IAAI,CAAC;IACxE,qBAAqB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACjD,eAAe,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7F,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACpC;AAaD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,iBAAiB,CAOxE;AAMD,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,mBAAmB,EAC1B,EAAE,EAAE,iBAAiB,EACrB,SAAS,EAAE,uBAAuB,EAClC,YAAY,EAAE,MAAM,QAsHrB;AA6CD,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,mBAAmB,EAC1B,OAAO,EAAE,uBAAuB,EAChC,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,OAAO,EACvB,KAAK,EAAE,MAAM,EACb,mBAAmB,EAAE,MAAM,EAC3B,kBAAkB,EAAE,MAAM,EAC1B,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,uBAAuB,GACjC,OAAO,CAAC,GAAG,CAAC,CAqWd;AAKD,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,mBAAmB,EAC1B,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,uBAAuB,QA6CnC"}