@waitaya.buc/client-js 0.1.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/README.md +179 -0
  2. package/dist/adapters/livekit/api/recording.api.d.ts +15 -0
  3. package/dist/adapters/livekit/api/recording.api.d.ts.map +1 -0
  4. package/dist/adapters/livekit/api/recording.api.js +61 -0
  5. package/dist/adapters/livekit/api/recording.api.js.map +1 -0
  6. package/dist/adapters/livekit/index.d.ts +18 -0
  7. package/dist/adapters/livekit/index.d.ts.map +1 -0
  8. package/dist/adapters/livekit/index.js +26 -0
  9. package/dist/adapters/livekit/index.js.map +1 -0
  10. package/dist/adapters/livekit/livekit.adapter.d.ts +85 -0
  11. package/dist/adapters/livekit/livekit.adapter.d.ts.map +1 -0
  12. package/dist/adapters/livekit/livekit.adapter.js +531 -0
  13. package/dist/adapters/livekit/livekit.adapter.js.map +1 -0
  14. package/dist/adapters/livekit/livekit.mapper.d.ts +36 -0
  15. package/dist/adapters/livekit/livekit.mapper.d.ts.map +1 -0
  16. package/dist/adapters/livekit/livekit.mapper.js +108 -0
  17. package/dist/adapters/livekit/livekit.mapper.js.map +1 -0
  18. package/dist/adapters/livekit/livekit.types.d.ts +22 -0
  19. package/dist/adapters/livekit/livekit.types.d.ts.map +1 -0
  20. package/dist/adapters/livekit/livekit.types.js +10 -0
  21. package/dist/adapters/livekit/livekit.types.js.map +1 -0
  22. package/dist/adapters/livekit/service-adapters/index.d.ts +4 -0
  23. package/dist/adapters/livekit/service-adapters/index.d.ts.map +1 -0
  24. package/dist/adapters/livekit/service-adapters/index.js +4 -0
  25. package/dist/adapters/livekit/service-adapters/index.js.map +1 -0
  26. package/dist/adapters/livekit/service-adapters/recording.adapter.d.ts +19 -0
  27. package/dist/adapters/livekit/service-adapters/recording.adapter.d.ts.map +1 -0
  28. package/dist/adapters/livekit/service-adapters/recording.adapter.js +30 -0
  29. package/dist/adapters/livekit/service-adapters/recording.adapter.js.map +1 -0
  30. package/dist/adapters/livekit/service-adapters/stats.adapter.d.ts +21 -0
  31. package/dist/adapters/livekit/service-adapters/stats.adapter.d.ts.map +1 -0
  32. package/dist/adapters/livekit/service-adapters/stats.adapter.js +54 -0
  33. package/dist/adapters/livekit/service-adapters/stats.adapter.js.map +1 -0
  34. package/dist/adapters/livekit/service-adapters/track-attachment.adapter.d.ts +79 -0
  35. package/dist/adapters/livekit/service-adapters/track-attachment.adapter.d.ts.map +1 -0
  36. package/dist/adapters/livekit/service-adapters/track-attachment.adapter.js +348 -0
  37. package/dist/adapters/livekit/service-adapters/track-attachment.adapter.js.map +1 -0
  38. package/dist/adapters/livekit/services/index.d.ts +3 -0
  39. package/dist/adapters/livekit/services/index.d.ts.map +1 -0
  40. package/dist/adapters/livekit/services/index.js +3 -0
  41. package/dist/adapters/livekit/services/index.js.map +1 -0
  42. package/dist/adapters/livekit/services/recording.service.d.ts +29 -0
  43. package/dist/adapters/livekit/services/recording.service.d.ts.map +1 -0
  44. package/dist/adapters/livekit/services/recording.service.js +34 -0
  45. package/dist/adapters/livekit/services/recording.service.js.map +1 -0
  46. package/dist/adapters/livekit/services/stats.service.d.ts +24 -0
  47. package/dist/adapters/livekit/services/stats.service.d.ts.map +1 -0
  48. package/dist/adapters/livekit/services/stats.service.js +56 -0
  49. package/dist/adapters/livekit/services/stats.service.js.map +1 -0
  50. package/dist/core/api/auth.api.d.ts +52 -0
  51. package/dist/core/api/auth.api.d.ts.map +1 -0
  52. package/dist/core/api/auth.api.js +59 -0
  53. package/dist/core/api/auth.api.js.map +1 -0
  54. package/dist/core/api/http.d.ts +86 -0
  55. package/dist/core/api/http.d.ts.map +1 -0
  56. package/dist/core/api/http.js +146 -0
  57. package/dist/core/api/http.js.map +1 -0
  58. package/dist/core/errors/error-codes.d.ts +43 -0
  59. package/dist/core/errors/error-codes.d.ts.map +1 -0
  60. package/dist/core/errors/error-codes.js +42 -0
  61. package/dist/core/errors/error-codes.js.map +1 -0
  62. package/dist/core/errors/vroom.error.d.ts +99 -0
  63. package/dist/core/errors/vroom.error.d.ts.map +1 -0
  64. package/dist/core/errors/vroom.error.js +141 -0
  65. package/dist/core/errors/vroom.error.js.map +1 -0
  66. package/dist/core/ports/outbound/provider-adapter-factory.port.d.ts +41 -0
  67. package/dist/core/ports/outbound/provider-adapter-factory.port.d.ts.map +1 -0
  68. package/dist/core/ports/outbound/provider-adapter-factory.port.js +2 -0
  69. package/dist/core/ports/outbound/provider-adapter-factory.port.js.map +1 -0
  70. package/dist/core/ports/outbound/provider-adapter.port.d.ts +130 -0
  71. package/dist/core/ports/outbound/provider-adapter.port.d.ts.map +1 -0
  72. package/dist/core/ports/outbound/provider-adapter.port.js +2 -0
  73. package/dist/core/ports/outbound/provider-adapter.port.js.map +1 -0
  74. package/dist/core/ports/outbound/recording-adapter.port.d.ts +40 -0
  75. package/dist/core/ports/outbound/recording-adapter.port.d.ts.map +1 -0
  76. package/dist/core/ports/outbound/recording-adapter.port.js +2 -0
  77. package/dist/core/ports/outbound/recording-adapter.port.js.map +1 -0
  78. package/dist/core/ports/outbound/stats-adapter.port.d.ts +31 -0
  79. package/dist/core/ports/outbound/stats-adapter.port.d.ts.map +1 -0
  80. package/dist/core/ports/outbound/stats-adapter.port.js +2 -0
  81. package/dist/core/ports/outbound/stats-adapter.port.js.map +1 -0
  82. package/dist/core/ports/outbound/track-attachment-adapter.port.d.ts +86 -0
  83. package/dist/core/ports/outbound/track-attachment-adapter.port.d.ts.map +1 -0
  84. package/dist/core/ports/outbound/track-attachment-adapter.port.js +2 -0
  85. package/dist/core/ports/outbound/track-attachment-adapter.port.js.map +1 -0
  86. package/dist/core/provider-registry.d.ts +29 -0
  87. package/dist/core/provider-registry.d.ts.map +1 -0
  88. package/dist/core/provider-registry.js +45 -0
  89. package/dist/core/provider-registry.js.map +1 -0
  90. package/dist/core/services/base.service.d.ts +15 -0
  91. package/dist/core/services/base.service.d.ts.map +1 -0
  92. package/dist/core/services/base.service.js +10 -0
  93. package/dist/core/services/base.service.js.map +1 -0
  94. package/dist/core/services/recording.service.d.ts +50 -0
  95. package/dist/core/services/recording.service.d.ts.map +1 -0
  96. package/dist/core/services/recording.service.js +89 -0
  97. package/dist/core/services/recording.service.js.map +1 -0
  98. package/dist/core/services/stats.service.d.ts +32 -0
  99. package/dist/core/services/stats.service.d.ts.map +1 -0
  100. package/dist/core/services/stats.service.js +69 -0
  101. package/dist/core/services/stats.service.js.map +1 -0
  102. package/dist/core/session.d.ts +142 -0
  103. package/dist/core/session.d.ts.map +1 -0
  104. package/dist/core/session.js +248 -0
  105. package/dist/core/session.js.map +1 -0
  106. package/dist/core/types/events.types.d.ts +263 -0
  107. package/dist/core/types/events.types.d.ts.map +1 -0
  108. package/dist/core/types/events.types.js +76 -0
  109. package/dist/core/types/events.types.js.map +1 -0
  110. package/dist/core/types/media.types.d.ts +81 -0
  111. package/dist/core/types/media.types.d.ts.map +1 -0
  112. package/dist/core/types/media.types.js +12 -0
  113. package/dist/core/types/media.types.js.map +1 -0
  114. package/dist/core/types/participant.types.d.ts +11 -0
  115. package/dist/core/types/participant.types.d.ts.map +1 -0
  116. package/dist/core/types/participant.types.js +2 -0
  117. package/dist/core/types/participant.types.js.map +1 -0
  118. package/dist/core/types/recording.types.d.ts +60 -0
  119. package/dist/core/types/recording.types.d.ts.map +1 -0
  120. package/dist/core/types/recording.types.js +7 -0
  121. package/dist/core/types/recording.types.js.map +1 -0
  122. package/dist/core/types/service-adapters.types.d.ts +46 -0
  123. package/dist/core/types/service-adapters.types.d.ts.map +1 -0
  124. package/dist/core/types/service-adapters.types.js +2 -0
  125. package/dist/core/types/service-adapters.types.js.map +1 -0
  126. package/dist/core/types/session.types.d.ts +57 -0
  127. package/dist/core/types/session.types.d.ts.map +1 -0
  128. package/dist/core/types/session.types.js +2 -0
  129. package/dist/core/types/session.types.js.map +1 -0
  130. package/dist/core/types/stats.types.d.ts +20 -0
  131. package/dist/core/types/stats.types.d.ts.map +1 -0
  132. package/dist/core/types/stats.types.js +7 -0
  133. package/dist/core/types/stats.types.js.map +1 -0
  134. package/dist/core/types/token.types.d.ts +82 -0
  135. package/dist/core/types/token.types.d.ts.map +1 -0
  136. package/dist/core/types/token.types.js +27 -0
  137. package/dist/core/types/token.types.js.map +1 -0
  138. package/dist/core/types/track.types.d.ts +39 -0
  139. package/dist/core/types/track.types.d.ts.map +1 -0
  140. package/dist/core/types/track.types.js +9 -0
  141. package/dist/core/types/track.types.js.map +1 -0
  142. package/dist/core/types/user.types.d.ts +23 -0
  143. package/dist/core/types/user.types.d.ts.map +1 -0
  144. package/dist/core/types/user.types.js +2 -0
  145. package/dist/core/types/user.types.js.map +1 -0
  146. package/dist/core/types/vroom.types.d.ts +86 -0
  147. package/dist/core/types/vroom.types.d.ts.map +1 -0
  148. package/dist/core/types/vroom.types.js +12 -0
  149. package/dist/core/types/vroom.types.js.map +1 -0
  150. package/dist/core/utils/token.d.ts +77 -0
  151. package/dist/core/utils/token.d.ts.map +1 -0
  152. package/dist/core/utils/token.js +127 -0
  153. package/dist/core/utils/token.js.map +1 -0
  154. package/dist/core/vroom.d.ts +90 -0
  155. package/dist/core/vroom.d.ts.map +1 -0
  156. package/dist/core/vroom.js +219 -0
  157. package/dist/core/vroom.js.map +1 -0
  158. package/dist/index.d.ts +25 -0
  159. package/dist/index.d.ts.map +1 -0
  160. package/dist/index.js +17 -0
  161. package/dist/index.js.map +1 -0
  162. package/dist/react-native.d.ts +21 -0
  163. package/dist/react-native.d.ts.map +1 -0
  164. package/dist/react-native.js +32 -0
  165. package/dist/react-native.js.map +1 -0
  166. package/package.json +50 -0
@@ -0,0 +1,531 @@
1
+ import { Room, RoomEvent, DisconnectReason as LKDisconnectReason, Track as LKTrack, } from 'livekit-client';
2
+ import { AllowedFeature, UserRole } from '../../core/types/token.types';
3
+ import { SessionEvent } from '../../core/types/events.types';
4
+ import { VroomError } from '../../core/errors/vroom.error';
5
+ import { ErrorCodes } from '../../core/errors/error-codes';
6
+ import { LiveKitMapper } from './livekit.mapper';
7
+ import { DEFAULT_LIVEKIT_CONFIG } from './livekit.types';
8
+ import { LiveKitStatsAdapter, LiveKitRecordingAdapter, LiveKitTrackAttachmentAdapter } from './service-adapters';
9
+ import { StatsService } from './services';
10
+ export class LiveKitAdapter {
11
+ constructor(serviceContext, config) {
12
+ /** LiveKit Room instance */
13
+ this.room = null;
14
+ /** Event handlers registry */
15
+ this.eventHandlers = new Map();
16
+ /** Cached participants */
17
+ this.participants = new Map();
18
+ /** Cached tracks */
19
+ this.tracks = new Map();
20
+ /** Local participant reference */
21
+ this.localParticipant = null;
22
+ /** Reconnect attempt counter */
23
+ this.reconnectAttempt = 0;
24
+ // ============================================================
25
+ // Event Handlers
26
+ // ============================================================
27
+ this.handleParticipantConnected = (participant) => {
28
+ const sdkParticipant = LiveKitMapper.toParticipant(participant);
29
+ this.participants.set(sdkParticipant.id, sdkParticipant);
30
+ this.emit(SessionEvent.ParticipantJoined, {
31
+ participant: sdkParticipant,
32
+ timestamp: Date.now(),
33
+ });
34
+ };
35
+ this.handleParticipantDisconnected = (participant) => {
36
+ const sdkParticipant = LiveKitMapper.toParticipant(participant);
37
+ this.participants.delete(sdkParticipant.id);
38
+ this.emit(SessionEvent.ParticipantLeft, {
39
+ participant: sdkParticipant,
40
+ timestamp: Date.now(),
41
+ });
42
+ };
43
+ this.handleTrackSubscribed = (_track, publication, participant) => {
44
+ const sdkParticipant = LiveKitMapper.toParticipant(participant);
45
+ const sdkTrack = LiveKitMapper.toTrack(publication, sdkParticipant);
46
+ this.tracks.set(sdkTrack.id, sdkTrack);
47
+ this.emit(SessionEvent.TrackAdded, {
48
+ track: sdkTrack,
49
+ timestamp: Date.now(),
50
+ });
51
+ };
52
+ this.handleTrackUnsubscribed = (_track, publication, participant) => {
53
+ const sdkParticipant = LiveKitMapper.toParticipant(participant);
54
+ const sdkTrack = LiveKitMapper.toTrack(publication, sdkParticipant);
55
+ this.tracks.delete(sdkTrack.id);
56
+ this.emit(SessionEvent.TrackRemoved, {
57
+ track: sdkTrack,
58
+ timestamp: Date.now(),
59
+ });
60
+ };
61
+ this.handleLocalTrackPublished = (publication) => {
62
+ if (!this.localParticipant)
63
+ return;
64
+ const sdkTrack = LiveKitMapper.toTrack(publication, this.localParticipant);
65
+ this.tracks.set(sdkTrack.id, sdkTrack);
66
+ // Emit TrackAdded for all local tracks (audio, video, screen)
67
+ this.emit(SessionEvent.TrackAdded, {
68
+ track: sdkTrack,
69
+ timestamp: Date.now(),
70
+ });
71
+ // Also emit ScreenShareStarted for screen share tracks
72
+ if (publication.source === LKTrack.Source.ScreenShare) {
73
+ this.emit(SessionEvent.ScreenShareStarted, {
74
+ track: sdkTrack,
75
+ timestamp: Date.now(),
76
+ });
77
+ }
78
+ };
79
+ this.handleLocalTrackUnpublished = (publication) => {
80
+ if (!this.localParticipant)
81
+ return;
82
+ this.tracks.delete(publication.trackSid);
83
+ // Emit TrackRemoved for all local tracks
84
+ this.emit(SessionEvent.TrackRemoved, {
85
+ track: {
86
+ id: publication.trackSid,
87
+ kind: LiveKitMapper.toTrackKind(publication.source),
88
+ enabled: false,
89
+ muted: true,
90
+ participant: this.localParticipant,
91
+ mediaStreamTrack: publication.track?.mediaStreamTrack,
92
+ },
93
+ timestamp: Date.now(),
94
+ });
95
+ // Also emit ScreenShareStopped for screen share tracks
96
+ if (publication.source === LKTrack.Source.ScreenShare) {
97
+ this.emit(SessionEvent.ScreenShareStopped, {
98
+ trackId: publication.trackSid,
99
+ timestamp: Date.now(),
100
+ });
101
+ }
102
+ };
103
+ this.handleTrackMuted = (publication, participant) => {
104
+ const isLocal = participant === this.room?.localParticipant;
105
+ // For local tracks on React Native, TrackMuted can fire spuriously during
106
+ // track setup even when the track is actively streaming. Skip emitting
107
+ // TrackEnabled:false for local tracks that are still publishing.
108
+ if (isLocal && publication.track?.mediaStreamTrack?.enabled) {
109
+ console.warn('[LiveKitAdapter] Ignoring spurious TrackMuted for local track:', publication.trackSid);
110
+ return;
111
+ }
112
+ // Update cache for all tracks (local and remote)
113
+ const sdkParticipant = this.getParticipantForTrack(participant);
114
+ if (sdkParticipant) {
115
+ const sdkTrack = LiveKitMapper.toTrack(publication, sdkParticipant);
116
+ this.tracks.set(sdkTrack.id, sdkTrack);
117
+ }
118
+ this.emit(SessionEvent.TrackEnabled, {
119
+ trackId: publication.trackSid,
120
+ enabled: false,
121
+ timestamp: Date.now(),
122
+ });
123
+ };
124
+ this.handleTrackUnmuted = (publication, participant) => {
125
+ const isLocal = participant === this.room?.localParticipant;
126
+ const sdkParticipant = this.getParticipantForTrack(participant);
127
+ if (sdkParticipant) {
128
+ const sdkTrack = LiveKitMapper.toTrack(publication, sdkParticipant);
129
+ // Update track in cache with fresh state
130
+ this.tracks.set(sdkTrack.id, sdkTrack);
131
+ // Emit LocalTrackRestarted for local tracks (MediaStreamTrack may have changed)
132
+ if (isLocal) {
133
+ this.emit(SessionEvent.LocalTrackRestarted, {
134
+ track: sdkTrack,
135
+ timestamp: Date.now(),
136
+ });
137
+ }
138
+ }
139
+ this.emit(SessionEvent.TrackEnabled, {
140
+ trackId: publication.trackSid,
141
+ enabled: true,
142
+ timestamp: Date.now(),
143
+ });
144
+ };
145
+ this.handleDisconnected = (reason) => {
146
+ this.emit(SessionEvent.Disconnected, {
147
+ reason: this.mapDisconnectReason(reason),
148
+ timestamp: Date.now(),
149
+ });
150
+ };
151
+ this.handleReconnecting = () => {
152
+ this.reconnectAttempt++;
153
+ this.emit(SessionEvent.Reconnecting, {
154
+ attempt: this.reconnectAttempt,
155
+ timestamp: Date.now(),
156
+ });
157
+ };
158
+ this.handleReconnected = () => {
159
+ this.reconnectAttempt = 0;
160
+ this.emit(SessionEvent.Reconnected, {
161
+ timestamp: Date.now(),
162
+ });
163
+ };
164
+ this.handleActiveSpeakersChanged = (speakers) => {
165
+ this.emit(SessionEvent.ActiveSpeakerChanged, {
166
+ participantId: speakers[0]?.identity ?? null,
167
+ timestamp: Date.now(),
168
+ });
169
+ };
170
+ this.handleActiveDeviceChanged = (kind, deviceId) => {
171
+ const mappedKind = LiveKitMapper.toDeviceKind(kind);
172
+ if (!mappedKind) {
173
+ // Unknown device kind from LiveKit/Web API - skip emitting event
174
+ // This is non-critical: app continues working, just no event for this kind
175
+ console.warn(`[LiveKitAdapter] Unknown device kind: ${kind}`);
176
+ return;
177
+ }
178
+ this.emit(SessionEvent.ActiveDeviceChanged, {
179
+ kind: mappedKind,
180
+ deviceId,
181
+ timestamp: Date.now(),
182
+ });
183
+ };
184
+ this.serviceContext = serviceContext;
185
+ this.config = { ...DEFAULT_LIVEKIT_CONFIG, ...config };
186
+ }
187
+ // ============================================================
188
+ // Connection Lifecycle
189
+ // ============================================================
190
+ async connect(options) {
191
+ this.room = new Room({
192
+ adaptiveStream: this.config.adaptiveStream,
193
+ dynacast: this.config.dynacast,
194
+ stopLocalTrackOnUnpublish: true,
195
+ });
196
+ this.setupEventListeners();
197
+ try {
198
+ // Connect to LiveKit server
199
+ await this.room.connect(options.endpoint, options.token);
200
+ // Set participant name and metadata for remote participants to see
201
+ // Requires canUpdateOwnMetadata permission in token
202
+ try {
203
+ await this.room.localParticipant.setName(options.user.displayName);
204
+ await this.room.localParticipant.setMetadata(JSON.stringify({
205
+ displayName: options.user.displayName,
206
+ role: options.user.role,
207
+ ...options.user.metadata,
208
+ }));
209
+ }
210
+ catch {
211
+ // Token doesn't have canUpdateOwnMetadata permission
212
+ // Connection still works, but remote participants may see identity instead of displayName
213
+ console.warn('[LiveKitAdapter] Cannot update participant metadata. ' +
214
+ 'Ensure token has canUpdateOwnMetadata permission.');
215
+ }
216
+ this.localParticipant = LiveKitMapper.toParticipant(this.room.localParticipant);
217
+ this.participants.set(this.localParticipant.id, this.localParticipant);
218
+ // Add existing remote participants (e.g., on reconnect)
219
+ this.room.remoteParticipants.forEach((rp) => {
220
+ const participant = LiveKitMapper.toParticipant(rp);
221
+ this.participants.set(participant.id, participant);
222
+ });
223
+ // Emit connected event
224
+ this.emit(SessionEvent.Connected, {
225
+ timestamp: Date.now(),
226
+ });
227
+ if (options.media?.audio) {
228
+ await this.room.localParticipant.setMicrophoneEnabled(true);
229
+ }
230
+ if (options.media?.video) {
231
+ await this.room.localParticipant.setCameraEnabled(true);
232
+ }
233
+ }
234
+ catch (error) {
235
+ this.emit(SessionEvent.Error, {
236
+ error: new VroomError(ErrorCodes.E_NETWORK, 'Failed to connect to LiveKit', error),
237
+ timestamp: Date.now(),
238
+ });
239
+ throw error;
240
+ }
241
+ }
242
+ async disconnect() {
243
+ if (!this.room)
244
+ return;
245
+ // Cleanup event listeners before disconnect
246
+ this.removeEventListeners();
247
+ await this.room.disconnect();
248
+ // Emit disconnected event (client-initiated since user called disconnect)
249
+ this.emit(SessionEvent.Disconnected, {
250
+ reason: 'client-initiated',
251
+ timestamp: Date.now(),
252
+ });
253
+ // Cleanup
254
+ this.room = null;
255
+ this.participants.clear();
256
+ this.tracks.clear();
257
+ this.localParticipant = null;
258
+ this.eventHandlers.clear();
259
+ }
260
+ // ============================================================
261
+ // Track Management
262
+ // ============================================================
263
+ /**
264
+ * Publish a MediaStreamTrack to the room
265
+ */
266
+ async publishTrack(track) {
267
+ if (!this.room || !this.localParticipant) {
268
+ throw new VroomError(ErrorCodes.E_NETWORK, 'Not connected to room');
269
+ }
270
+ const publication = await this.room.localParticipant.publishTrack(track, {
271
+ simulcast: this.config.simulcast,
272
+ });
273
+ const sdkTrack = LiveKitMapper.toTrack(publication, this.localParticipant);
274
+ this.emit(SessionEvent.TrackAdded, {
275
+ track: sdkTrack,
276
+ timestamp: Date.now(),
277
+ });
278
+ return sdkTrack;
279
+ }
280
+ /**
281
+ * Unpublish a track from the room
282
+ */
283
+ async unpublishTrack(trackId) {
284
+ if (!this.room)
285
+ return;
286
+ const publication = Array.from(this.room.localParticipant.trackPublications.values()).find((pub) => pub.trackSid === trackId);
287
+ if (publication?.track) {
288
+ await this.room.localParticipant.unpublishTrack(publication.track);
289
+ this.emit(SessionEvent.TrackRemoved, {
290
+ track: {
291
+ id: trackId,
292
+ kind: LiveKitMapper.toTrackKind(publication.source),
293
+ enabled: false,
294
+ muted: true,
295
+ participant: this.localParticipant,
296
+ mediaStreamTrack: publication.track?.mediaStreamTrack,
297
+ },
298
+ timestamp: Date.now(),
299
+ });
300
+ }
301
+ }
302
+ async muteTrack(kind) {
303
+ if (!this.room) {
304
+ throw new VroomError(ErrorCodes.E_NETWORK, 'Not connected to room');
305
+ }
306
+ try {
307
+ if (kind === 'audio') {
308
+ await this.room.localParticipant.setMicrophoneEnabled(false);
309
+ }
310
+ else {
311
+ await this.room.localParticipant.setCameraEnabled(false);
312
+ }
313
+ }
314
+ catch (error) {
315
+ throw new VroomError(ErrorCodes.E_MEDIA, `Failed to mute ${kind}`, error);
316
+ }
317
+ }
318
+ async unmuteTrack(kind) {
319
+ if (!this.room) {
320
+ throw new VroomError(ErrorCodes.E_NETWORK, 'Not connected to room');
321
+ }
322
+ try {
323
+ if (kind === 'audio') {
324
+ await this.room.localParticipant.setMicrophoneEnabled(true);
325
+ }
326
+ else {
327
+ await this.room.localParticipant.setCameraEnabled(true);
328
+ }
329
+ }
330
+ catch (error) {
331
+ throw new VroomError(ErrorCodes.E_MEDIA, `Failed to unmute ${kind}`, error);
332
+ }
333
+ }
334
+ // ============================================================
335
+ // Device Management
336
+ // ============================================================
337
+ async switchDevice(options) {
338
+ if (!this.room) {
339
+ throw new VroomError(ErrorCodes.E_NETWORK, 'Not connected to room');
340
+ }
341
+ try {
342
+ if (options.audioInputId) {
343
+ await this.room.switchActiveDevice('audioinput', options.audioInputId);
344
+ }
345
+ if (options.videoInputId) {
346
+ await this.room.switchActiveDevice('videoinput', options.videoInputId);
347
+ }
348
+ if (options.audioOutputId) {
349
+ await this.room.switchActiveDevice('audiooutput', options.audioOutputId);
350
+ }
351
+ }
352
+ catch (error) {
353
+ if (error instanceof Error && error.message.includes('cannot switch audio output')) {
354
+ throw new VroomError(ErrorCodes.E_UNSUPPORTED_FEATURE, 'Audio output switching is not supported on this browser', error);
355
+ }
356
+ throw new VroomError(ErrorCodes.E_MEDIA, 'Failed to switch device', error);
357
+ }
358
+ }
359
+ getActiveDevice(kind) {
360
+ return this.room?.getActiveDevice(kind);
361
+ }
362
+ // ============================================================
363
+ // Event Management
364
+ // ============================================================
365
+ on(event, handler) {
366
+ if (!this.eventHandlers.has(event)) {
367
+ this.eventHandlers.set(event, new Set());
368
+ }
369
+ this.eventHandlers.get(event).add(handler);
370
+ }
371
+ off(event, handler) {
372
+ if (!handler) {
373
+ this.eventHandlers.delete(event);
374
+ return;
375
+ }
376
+ this.eventHandlers.get(event)?.delete(handler);
377
+ }
378
+ // ============================================================
379
+ // Getters
380
+ // ============================================================
381
+ async getStats() {
382
+ return StatsService.getStats(this.room);
383
+ }
384
+ getNetworkQuality() {
385
+ return StatsService.getNetworkQuality(this.room);
386
+ }
387
+ getCapabilities() {
388
+ return [
389
+ { feature: 'audio', supported: true },
390
+ { feature: 'video', supported: true },
391
+ { feature: 'screen-share', supported: true },
392
+ { feature: 'recording', supported: true },
393
+ { feature: 'chat', supported: true },
394
+ { feature: 'simulcast', supported: true },
395
+ { feature: 'dynacast', supported: true },
396
+ { feature: 'adaptive-stream', supported: true },
397
+ ];
398
+ }
399
+ getParticipants() {
400
+ return Array.from(this.participants.values());
401
+ }
402
+ getTracks() {
403
+ return Array.from(this.tracks.values());
404
+ }
405
+ createServiceAdapters(permissions) {
406
+ if (!this.room) {
407
+ throw new VroomError(ErrorCodes.E_NETWORK, 'Not connected to room');
408
+ }
409
+ // Check recording permissions
410
+ const hasRecording = permissions.features.includes(AllowedFeature.Recording);
411
+ const canModerate = permissions.role === UserRole.Host || permissions.role === UserRole.Moderator;
412
+ return {
413
+ stats: new LiveKitStatsAdapter(this.room),
414
+ recording: (hasRecording && canModerate)
415
+ ? new LiveKitRecordingAdapter(this.serviceContext)
416
+ : undefined,
417
+ trackAttachment: new LiveKitTrackAttachmentAdapter(this.room),
418
+ };
419
+ }
420
+ // ============================================================
421
+ // Private Methods - Event Setup
422
+ // ============================================================
423
+ /**
424
+ * Get event mappings for LiveKit Room events.
425
+ * Defined as a getter to ensure handlers are initialized before access.
426
+ */
427
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
428
+ get roomEventMappings() {
429
+ return [
430
+ // Participant events
431
+ [RoomEvent.ParticipantConnected, this.handleParticipantConnected],
432
+ [RoomEvent.ParticipantDisconnected, this.handleParticipantDisconnected],
433
+ // Track events
434
+ [RoomEvent.TrackSubscribed, this.handleTrackSubscribed],
435
+ [RoomEvent.TrackUnsubscribed, this.handleTrackUnsubscribed],
436
+ [RoomEvent.LocalTrackPublished, this.handleLocalTrackPublished],
437
+ [RoomEvent.LocalTrackUnpublished, this.handleLocalTrackUnpublished],
438
+ // Track state events
439
+ [RoomEvent.TrackMuted, this.handleTrackMuted],
440
+ [RoomEvent.TrackUnmuted, this.handleTrackUnmuted],
441
+ // Room state events
442
+ [RoomEvent.Disconnected, this.handleDisconnected],
443
+ [RoomEvent.Reconnecting, this.handleReconnecting],
444
+ [RoomEvent.Reconnected, this.handleReconnected],
445
+ // Quality events
446
+ [RoomEvent.ActiveSpeakersChanged, this.handleActiveSpeakersChanged],
447
+ // Device events
448
+ [RoomEvent.ActiveDeviceChanged, this.handleActiveDeviceChanged],
449
+ ];
450
+ }
451
+ /**
452
+ * Sets up LiveKit event listeners and maps them to SDK events.
453
+ */
454
+ setupEventListeners() {
455
+ if (!this.room)
456
+ return;
457
+ for (const [event, handler] of this.roomEventMappings) {
458
+ this.room.on(event, handler);
459
+ }
460
+ }
461
+ /**
462
+ * Removes all LiveKit event listeners to prevent memory leaks.
463
+ */
464
+ removeEventListeners() {
465
+ if (!this.room)
466
+ return;
467
+ for (const [event, handler] of this.roomEventMappings) {
468
+ this.room.off(event, handler);
469
+ }
470
+ }
471
+ /**
472
+ * Get SDK Participant for a LiveKit participant (local or remote)
473
+ */
474
+ getParticipantForTrack(lkParticipant) {
475
+ const isLocal = lkParticipant === this.room?.localParticipant;
476
+ if (isLocal) {
477
+ return this.localParticipant;
478
+ }
479
+ return this.participants.get(lkParticipant.identity) ?? null;
480
+ }
481
+ // ============================================================
482
+ // Helper Methods
483
+ // ============================================================
484
+ emit(event, payload) {
485
+ const handlers = this.eventHandlers.get(event);
486
+ if (handlers) {
487
+ handlers.forEach((handler) => {
488
+ ;
489
+ handler(payload);
490
+ });
491
+ }
492
+ }
493
+ mapDisconnectReason(reason) {
494
+ if (reason === undefined)
495
+ return 'unknown';
496
+ switch (reason) {
497
+ // Client initiated disconnect
498
+ case LKDisconnectReason.CLIENT_INITIATED:
499
+ return 'client-initiated';
500
+ // Server initiated actions
501
+ case LKDisconnectReason.SERVER_SHUTDOWN:
502
+ case LKDisconnectReason.MIGRATION:
503
+ return 'server-initiated';
504
+ // Identity conflict
505
+ case LKDisconnectReason.DUPLICATE_IDENTITY:
506
+ return 'duplicate-identity';
507
+ // Participant was removed (kicked)
508
+ case LKDisconnectReason.PARTICIPANT_REMOVED:
509
+ return 'participant-removed';
510
+ // Room no longer exists
511
+ case LKDisconnectReason.ROOM_DELETED:
512
+ case LKDisconnectReason.ROOM_CLOSED:
513
+ return 'room-deleted';
514
+ // Network/connection issues
515
+ case LKDisconnectReason.JOIN_FAILURE:
516
+ case LKDisconnectReason.STATE_MISMATCH:
517
+ case LKDisconnectReason.SIGNAL_CLOSE:
518
+ case LKDisconnectReason.CONNECTION_TIMEOUT:
519
+ case LKDisconnectReason.MEDIA_FAILURE:
520
+ return 'network-error';
521
+ // Unknown or SIP-specific reasons
522
+ case LKDisconnectReason.UNKNOWN_REASON:
523
+ case LKDisconnectReason.USER_UNAVAILABLE:
524
+ case LKDisconnectReason.USER_REJECTED:
525
+ case LKDisconnectReason.SIP_TRUNK_FAILURE:
526
+ default:
527
+ return 'unknown';
528
+ }
529
+ }
530
+ }
531
+ //# sourceMappingURL=livekit.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"livekit.adapter.js","sourceRoot":"","sources":["../../../src/adapters/livekit/livekit.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,SAAS,EACT,gBAAgB,IAAI,kBAAkB,EACtC,KAAK,IAAI,OAAO,GAMjB,MAAM,gBAAgB,CAAA;AAUvB,OAAO,EAAE,cAAc,EAAE,QAAQ,EAA2B,MAAM,8BAA8B,CAAA;AAIhG,OAAO,EAAE,YAAY,EAA6C,MAAM,+BAA+B,CAAA;AACvG,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,sBAAsB,EAA6B,MAAM,iBAAiB,CAAA;AACnF,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAA;AAChH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAIzC,MAAM,OAAO,cAAc;IA0BzB,YAAY,cAA8B,EAAE,MAA6B;QAzBzE,4BAA4B;QACpB,SAAI,GAAgB,IAAI,CAAA;QAEhC,8BAA8B;QACtB,kBAAa,GACnB,IAAI,GAAG,EAAE,CAAA;QAEX,0BAA0B;QAClB,iBAAY,GAA6B,IAAI,GAAG,EAAE,CAAA;QAE1D,oBAAoB;QACZ,WAAM,GAAuB,IAAI,GAAG,EAAE,CAAA;QAE9C,kCAAkC;QAC1B,qBAAgB,GAAuB,IAAI,CAAA;QAQnD,gCAAgC;QACxB,qBAAgB,GAAG,CAAC,CAAA;QA4V5B,+DAA+D;QAC/D,iBAAiB;QACjB,+DAA+D;QAEvD,+BAA0B,GAAG,CAAC,WAA8B,EAAQ,EAAE;YAC5E,MAAM,cAAc,GAAG,aAAa,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;YAC/D,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,EAAE,cAAc,CAAC,CAAA;YAExD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE;gBACxC,WAAW,EAAE,cAAc;gBAC3B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC,CAAA;QACJ,CAAC,CAAA;QAEO,kCAA6B,GAAG,CAAC,WAA8B,EAAQ,EAAE;YAC/E,MAAM,cAAc,GAAG,aAAa,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;YAC/D,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;YAE3C,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE;gBACtC,WAAW,EAAE,cAAc;gBAC3B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC,CAAA;QACJ,CAAC,CAAA;QAEO,0BAAqB,GAAG,CAC9B,MAAe,EACf,WAAmC,EACnC,WAA8B,EACxB,EAAE;YACR,MAAM,cAAc,GAAG,aAAa,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;YAC/D,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;YAEnE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;YAEtC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;gBACjC,KAAK,EAAE,QAAQ;gBACf,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC,CAAA;QACJ,CAAC,CAAA;QAEO,4BAAuB,GAAG,CAChC,MAAe,EACf,WAAmC,EACnC,WAA8B,EACxB,EAAE;YACR,MAAM,cAAc,GAAG,aAAa,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;YAC/D,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;YAEnE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;YAE/B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;gBACnC,KAAK,EAAE,QAAQ;gBACf,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC,CAAA;QACJ,CAAC,CAAA;QAEO,8BAAyB,GAAG,CAClC,WAAkC,EAC5B,EAAE;YACR,IAAI,CAAC,IAAI,CAAC,gBAAgB;gBAAE,OAAM;YAElC,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;YAE1E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;YAEtC,8DAA8D;YAC9D,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;gBACjC,KAAK,EAAE,QAAQ;gBACf,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC,CAAA;YAEF,uDAAuD;YACvD,IAAI,WAAW,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBACtD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE;oBACzC,KAAK,EAAE,QAAQ;oBACf,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;iBACtB,CAAC,CAAA;YACJ,CAAC;QACH,CAAC,CAAA;QAEO,gCAA2B,GAAG,CACpC,WAAkC,EAC5B,EAAE;YACR,IAAI,CAAC,IAAI,CAAC,gBAAgB;gBAAE,OAAM;YAElC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;YAExC,yCAAyC;YACzC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;gBACnC,KAAK,EAAE;oBACL,EAAE,EAAE,WAAW,CAAC,QAAQ;oBACxB,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC;oBACnD,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,IAAI;oBACX,WAAW,EAAE,IAAI,CAAC,gBAAgB;oBAClC,gBAAgB,EAAE,WAAW,CAAC,KAAK,EAAE,gBAAgB;iBACtD;gBACD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC,CAAA;YAEF,uDAAuD;YACvD,IAAI,WAAW,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBACtD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE;oBACzC,OAAO,EAAE,WAAW,CAAC,QAAQ;oBAC7B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;iBACtB,CAAC,CAAA;YACJ,CAAC;QACH,CAAC,CAAA;QAEO,qBAAgB,GAAG,CACzB,WAA6B,EAC7B,WAA0B,EACpB,EAAE;YACR,MAAM,OAAO,GAAG,WAAW,KAAK,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAA;YAE3D,0EAA0E;YAC1E,uEAAuE;YACvE,iEAAiE;YACjE,IAAI,OAAO,IAAI,WAAW,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC;gBAC5D,OAAO,CAAC,IAAI,CACV,gEAAgE,EAChE,WAAW,CAAC,QAAQ,CACrB,CAAA;gBACD,OAAM;YACR,CAAC;YAED,iDAAiD;YACjD,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAA;YAC/D,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;gBACnE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;YACxC,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;gBACnC,OAAO,EAAE,WAAW,CAAC,QAAQ;gBAC7B,OAAO,EAAE,KAAK;gBACd,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC,CAAA;QACJ,CAAC,CAAA;QAEO,uBAAkB,GAAG,CAC3B,WAA6B,EAC7B,WAA0B,EACpB,EAAE;YACR,MAAM,OAAO,GAAG,WAAW,KAAK,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAA;YAC3D,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAA;YAE/D,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;gBAEnE,yCAAyC;gBACzC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;gBAEtC,gFAAgF;gBAChF,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE;wBAC1C,KAAK,EAAE,QAAQ;wBACf,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;qBACtB,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;gBACnC,OAAO,EAAE,WAAW,CAAC,QAAQ;gBAC7B,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC,CAAA;QACJ,CAAC,CAAA;QAaO,uBAAkB,GAAG,CAAC,MAA2B,EAAQ,EAAE;YACjE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;gBACnC,MAAM,EAAE,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;gBACxC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC,CAAA;QACJ,CAAC,CAAA;QAEO,uBAAkB,GAAG,GAAS,EAAE;YACtC,IAAI,CAAC,gBAAgB,EAAE,CAAA;YACvB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;gBACnC,OAAO,EAAE,IAAI,CAAC,gBAAgB;gBAC9B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC,CAAA;QACJ,CAAC,CAAA;QAEO,sBAAiB,GAAG,GAAS,EAAE;YACrC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAA;YACzB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;gBAClC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC,CAAA;QACJ,CAAC,CAAA;QAEO,gCAA2B,GAAG,CAAC,QAAyB,EAAQ,EAAE;YACxE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE;gBAC3C,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,IAAI;gBAC5C,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC,CAAA;QACJ,CAAC,CAAA;QAEO,8BAAyB,GAAG,CAClC,IAAqB,EACrB,QAAgB,EACV,EAAE;YACR,MAAM,UAAU,GAAG,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;YACnD,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,iEAAiE;gBACjE,2EAA2E;gBAC3E,OAAO,CAAC,IAAI,CAAC,yCAAyC,IAAI,EAAE,CAAC,CAAA;gBAC7D,OAAM;YACR,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE;gBAC1C,IAAI,EAAE,UAAU;gBAChB,QAAQ;gBACR,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC,CAAA;QACJ,CAAC,CAAA;QA3jBC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,sBAAsB,EAAE,GAAG,MAAM,EAAE,CAAA;IACxD,CAAC;IAED,+DAA+D;IAC/D,uBAAuB;IACvB,+DAA+D;IAE/D,KAAK,CAAC,OAAO,CAAC,OAA8B;QAC1C,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC;YACnB,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc;YAC1C,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;YAC9B,yBAAyB,EAAE,IAAI;SAChC,CAAC,CAAA;QAEF,IAAI,CAAC,mBAAmB,EAAE,CAAA;QAE1B,IAAI,CAAC;YACH,4BAA4B;YAC5B,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;YAExD,mEAAmE;YACnE,oDAAoD;YACpD,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;gBAClE,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAC1C,IAAI,CAAC,SAAS,CAAC;oBACb,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW;oBACrC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;oBACvB,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ;iBACzB,CAAC,CACH,CAAA;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,qDAAqD;gBACrD,0FAA0F;gBAC1F,OAAO,CAAC,IAAI,CACV,uDAAuD;oBACrD,mDAAmD,CACtD,CAAA;YACH,CAAC;YAED,IAAI,CAAC,gBAAgB,GAAG,aAAa,CAAC,aAAa,CACjD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAC3B,CAAA;YACD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;YAEtE,wDAAwD;YACxD,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;gBAC1C,MAAM,WAAW,GAAG,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;gBACnD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,EAAE,WAAW,CAAC,CAAA;YACpD,CAAC,CAAC,CAAA;YAEF,uBAAuB;YACvB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;gBAChC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC,CAAA;YAEF,IAAI,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;gBACzB,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;YAC7D,CAAC;YACD,IAAI,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;gBACzB,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;YACzD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;gBAC5B,KAAK,EAAE,IAAI,UAAU,CACnB,UAAU,CAAC,SAAS,EACpB,8BAA8B,EAC9B,KAAK,CACN;gBACD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC,CAAA;YACF,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAM;QAEtB,4CAA4C;QAC5C,IAAI,CAAC,oBAAoB,EAAE,CAAA;QAE3B,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAA;QAE5B,0EAA0E;QAC1E,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;YACnC,MAAM,EAAE,kBAAkB;YAC1B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAA;QAEF,UAAU;QACV,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;QACzB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;QACnB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;QAC5B,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAA;IAC5B,CAAC;IAED,+DAA+D;IAC/D,mBAAmB;IACnB,+DAA+D;IAE/D;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,KAAuB;QACxC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzC,MAAM,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAA;QACrE,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,KAAK,EAAE;YACvE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;SACjC,CAAC,CAAA;QAEF,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAE1E,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;YACjC,KAAK,EAAE,QAAQ;YACf,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAA;QAEF,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,OAAe;QAClC,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAM;QAEtB,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAC5B,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,MAAM,EAAE,CACtD,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAA;QAEzC,IAAI,WAAW,EAAE,KAAK,EAAE,CAAC;YACvB,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YAElE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;gBACnC,KAAK,EAAE;oBACL,EAAE,EAAE,OAAO;oBACX,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC;oBACnD,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,IAAI;oBACX,WAAW,EAAE,IAAI,CAAC,gBAAiB;oBACnC,gBAAgB,EAAE,WAAW,CAAC,KAAK,EAAE,gBAAgB;iBACtD;gBACD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAuB;QACrC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAA;QACrE,CAAC;QAED,IAAI,CAAC;YACH,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBACrB,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAA;YAC9D,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;YAC1D,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,kBAAkB,IAAI,EAAE,EAAE,KAAK,CAAC,CAAA;QAC3E,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAuB;QACvC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAA;QACrE,CAAC;QAED,IAAI,CAAC;YACH,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBACrB,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;YAC7D,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;YACzD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,oBAAoB,IAAI,EAAE,EAAE,KAAK,CAAC,CAAA;QAC7E,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,oBAAoB;IACpB,+DAA+D;IAE/D,KAAK,CAAC,YAAY,CAAC,OAA4B;QAC7C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAA;QACrE,CAAC;QAED,IAAI,CAAC;YACH,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;gBACzB,MAAM,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;YACxE,CAAC;YAED,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;gBACzB,MAAM,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;YACxE,CAAC;YAED,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;gBAC1B,MAAM,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;YAC1E,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAC,EAAE,CAAC;gBACnF,MAAM,IAAI,UAAU,CAClB,UAAU,CAAC,qBAAqB,EAChC,yDAAyD,EACzD,KAAK,CACN,CAAA;YACH,CAAC;YACD,MAAM,IAAI,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,yBAAyB,EAAE,KAAK,CAAC,CAAA;QAC5E,CAAC;IACH,CAAC;IAED,eAAe,CAAC,IAAgB;QAC9B,OAAO,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,CAAA;IACzC,CAAC;IAED,+DAA+D;IAC/D,mBAAmB;IACnB,+DAA+D;IAE/D,EAAE,CAA6B,KAAQ,EAAE,OAAwB;QAC/D,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;QAC1C,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,GAAG,CAAC,OAAyC,CAAC,CAAA;IAC/E,CAAC;IAED,GAAG,CAA6B,KAAQ,EAAE,OAAyB;QACjE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAChC,OAAM;QACR,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,OAAyC,CAAC,CAAA;IAClF,CAAC;IAED,+DAA+D;IAC/D,UAAU;IACV,+DAA+D;IAE/D,KAAK,CAAC,QAAQ;QACZ,OAAO,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzC,CAAC;IAED,iBAAiB;QACf,OAAO,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAClD,CAAC;IAED,eAAe;QACb,OAAO;YACL,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE;YACrC,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE;YACrC,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,EAAE;YAC5C,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE;YACzC,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE;YACpC,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE;YACzC,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE;YACxC,EAAE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,IAAI,EAAE;SAChD,CAAA;IACH,CAAC;IAED,eAAe;QACb,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAA;IAC/C,CAAC;IAED,SAAS;QACP,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;IACzC,CAAC;IAED,qBAAqB,CAAC,WAA+B;QACnD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAA;QACrE,CAAC;QAED,8BAA8B;QAC9B,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAA;QAC5E,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,CAAC,SAAS,CAAA;QAEjG,OAAO;YACL,KAAK,EAAE,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;YACzC,SAAS,EAAE,CAAC,YAAY,IAAI,WAAW,CAAC;gBACtC,CAAC,CAAC,IAAI,uBAAuB,CAAC,IAAI,CAAC,cAAc,CAAC;gBAClD,CAAC,CAAC,SAAS;YACb,eAAe,EAAE,IAAI,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC;SAC9D,CAAA;IACH,CAAC;IAED,+DAA+D;IAC/D,gCAAgC;IAChC,+DAA+D;IAE/D;;;OAGG;IACH,8DAA8D;IAC9D,IAAY,iBAAiB;QAC3B,OAAO;YACL,qBAAqB;YACrB,CAAC,SAAS,CAAC,oBAAoB,EAAE,IAAI,CAAC,0BAA0B,CAAC;YACjE,CAAC,SAAS,CAAC,uBAAuB,EAAE,IAAI,CAAC,6BAA6B,CAAC;YACvE,eAAe;YACf,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,qBAAqB,CAAC;YACvD,CAAC,SAAS,CAAC,iBAAiB,EAAE,IAAI,CAAC,uBAAuB,CAAC;YAC3D,CAAC,SAAS,CAAC,mBAAmB,EAAE,IAAI,CAAC,yBAAyB,CAAC;YAC/D,CAAC,SAAS,CAAC,qBAAqB,EAAE,IAAI,CAAC,2BAA2B,CAAC;YACnE,qBAAqB;YACrB,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC;YAC7C,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,kBAAkB,CAAC;YACjD,oBAAoB;YACpB,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,kBAAkB,CAAC;YACjD,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,kBAAkB,CAAC;YACjD,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC;YAC/C,iBAAiB;YACjB,CAAC,SAAS,CAAC,qBAAqB,EAAE,IAAI,CAAC,2BAA2B,CAAC;YACnE,gBAAgB;YAChB,CAAC,SAAS,CAAC,mBAAmB,EAAE,IAAI,CAAC,yBAAyB,CAAC;SAChE,CAAA;IACH,CAAC;IAED;;OAEG;IACK,mBAAmB;QACzB,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAM;QAEtB,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACtD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAC9B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,oBAAoB;QAC1B,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAM;QAEtB,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACtD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC;IA2KD;;OAEG;IACK,sBAAsB,CAAC,aAA4B;QACzD,MAAM,OAAO,GAAG,aAAa,KAAK,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAA;QAC7D,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC,gBAAgB,CAAA;QAC9B,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAA;IAC9D,CAAC;IAkDD,+DAA+D;IAC/D,iBAAiB;IACjB,+DAA+D;IAEvD,IAAI,CACV,KAAQ,EACR,OAAqD;QAErD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC9C,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC3B,CAAC;gBAAC,OAAsC,CAAC,OAAO,CAAC,CAAA;YACnD,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,MAA2B;QACrD,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,SAAS,CAAA;QAE1C,QAAQ,MAAM,EAAE,CAAC;YACf,8BAA8B;YAC9B,KAAK,kBAAkB,CAAC,gBAAgB;gBACtC,OAAO,kBAAkB,CAAA;YAE3B,2BAA2B;YAC3B,KAAK,kBAAkB,CAAC,eAAe,CAAC;YACxC,KAAK,kBAAkB,CAAC,SAAS;gBAC/B,OAAO,kBAAkB,CAAA;YAE3B,oBAAoB;YACpB,KAAK,kBAAkB,CAAC,kBAAkB;gBACxC,OAAO,oBAAoB,CAAA;YAE7B,mCAAmC;YACnC,KAAK,kBAAkB,CAAC,mBAAmB;gBACzC,OAAO,qBAAqB,CAAA;YAE9B,wBAAwB;YACxB,KAAK,kBAAkB,CAAC,YAAY,CAAC;YACrC,KAAK,kBAAkB,CAAC,WAAW;gBACjC,OAAO,cAAc,CAAA;YAEvB,4BAA4B;YAC5B,KAAK,kBAAkB,CAAC,YAAY,CAAC;YACrC,KAAK,kBAAkB,CAAC,cAAc,CAAC;YACvC,KAAK,kBAAkB,CAAC,YAAY,CAAC;YACrC,KAAK,kBAAkB,CAAC,kBAAkB,CAAC;YAC3C,KAAK,kBAAkB,CAAC,aAAa;gBACnC,OAAO,eAAe,CAAA;YAExB,kCAAkC;YAClC,KAAK,kBAAkB,CAAC,cAAc,CAAC;YACvC,KAAK,kBAAkB,CAAC,gBAAgB,CAAC;YACzC,KAAK,kBAAkB,CAAC,aAAa,CAAC;YACtC,KAAK,kBAAkB,CAAC,iBAAiB,CAAC;YAC1C;gBACE,OAAO,SAAS,CAAA;QACpB,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,36 @@
1
+ import { ConnectionQuality, Track as LKTrack, type Participant as LKParticipant, type TrackPublication } from 'livekit-client';
2
+ import type { Participant } from '../../core/types/participant.types';
3
+ import type { Track, TrackKind } from '../../core/types/track.types';
4
+ import type { NetworkQuality } from '../../core/types/events.types';
5
+ import type { DeviceKind } from '../../core/types/media.types';
6
+ /**
7
+ * Stateless mapper for converting LiveKit types to SDK types.
8
+ */
9
+ export declare class LiveKitMapper {
10
+ /**
11
+ * Converts a LiveKit Participant to SDK Participant.
12
+ */
13
+ static toParticipant(lkParticipant: LKParticipant): Participant;
14
+ /**
15
+ * Converts a LiveKit TrackPublication to SDK Track.
16
+ */
17
+ static toTrack(publication: TrackPublication, participant: Participant): Track;
18
+ /**
19
+ * Converts a LiveKit Track.Source to SDK TrackKind.
20
+ */
21
+ static toTrackKind(source: LKTrack.Source): TrackKind;
22
+ /**
23
+ * Converts a LiveKit ConnectionQuality to SDK NetworkQuality.
24
+ */
25
+ static toNetworkQuality(quality: ConnectionQuality): NetworkQuality;
26
+ private static extractRole;
27
+ private static parseMetadata;
28
+ /**
29
+ * Converts a Web API MediaDeviceKind to SDK DeviceKind.
30
+ *
31
+ * @param kind - MediaDeviceKind from LiveKit/Web API
32
+ * @returns SDK DeviceKind or null if unknown kind
33
+ */
34
+ static toDeviceKind(kind: MediaDeviceKind): DeviceKind | null;
35
+ }
36
+ //# sourceMappingURL=livekit.mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"livekit.mapper.d.ts","sourceRoot":"","sources":["../../../src/adapters/livekit/livekit.mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAEjB,KAAK,IAAI,OAAO,EAChB,KAAK,WAAW,IAAI,aAAa,EACjC,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AACrE,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAEnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAE9D;;GAEG;AACH,qBAAa,aAAa;IACxB;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,aAAa,EAAE,aAAa,GAAG,WAAW;IAc/D;;OAEG;IACH,MAAM,CAAC,OAAO,CACZ,WAAW,EAAE,gBAAgB,EAC7B,WAAW,EAAE,WAAW,GACvB,KAAK;IAWR;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,SAAS;IAcrD;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,cAAc;IAgBnE,OAAO,CAAC,MAAM,CAAC,WAAW;IAkB1B,OAAO,CAAC,MAAM,CAAC,aAAa;IAY5B;;;;;OAKG;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,UAAU,GAAG,IAAI;CAQ9D"}