@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,263 @@
1
+ import type { Participant } from './participant.types';
2
+ import type { Track } from './track.types';
3
+ import type { SessionState } from './session.types';
4
+ import type { DeviceKind } from './media.types';
5
+ import type { VroomError } from '../errors/vroom.error';
6
+ /**
7
+ * Network quality level.
8
+ *
9
+ * - `excellent` - Strong connection, high quality
10
+ * - `good` - Stable connection
11
+ * - `poor` - May experience lag or quality drops
12
+ * - `bad` - Unstable, consider showing warning to user
13
+ * - `unknown` - Quality cannot be determined
14
+ */
15
+ export type NetworkQuality = 'excellent' | 'good' | 'poor' | 'bad' | 'unknown';
16
+ /**
17
+ * Disconnect reason
18
+ */
19
+ export type DisconnectReason = 'client-initiated' | 'server-initiated' | 'network-error' | 'duplicate-identity' | 'room-deleted' | 'participant-removed' | 'unknown';
20
+ /**
21
+ * Participant event payload
22
+ */
23
+ export interface ParticipantEvent {
24
+ /** Participant info */
25
+ participant: Participant;
26
+ /** Event timestamp */
27
+ timestamp: number;
28
+ }
29
+ /**
30
+ * Track event payload
31
+ */
32
+ export interface TrackEvent {
33
+ /** Track info */
34
+ track: Track;
35
+ /** Event timestamp */
36
+ timestamp: number;
37
+ }
38
+ /**
39
+ * Track enabled/disabled event payload
40
+ */
41
+ export interface TrackEnabledEvent {
42
+ /** Track ID */
43
+ trackId: string;
44
+ /** Whether the track is enabled */
45
+ enabled: boolean;
46
+ /** Event timestamp */
47
+ timestamp: number;
48
+ }
49
+ /**
50
+ * Active speaker changed event payload
51
+ */
52
+ export interface ActiveSpeakerEvent {
53
+ /** Active speaker's participant ID, null when no one is speaking */
54
+ participantId: string | null;
55
+ /** Event timestamp */
56
+ timestamp: number;
57
+ }
58
+ /**
59
+ * Network quality event payload
60
+ */
61
+ export interface NetworkQualityEvent {
62
+ /** Network quality level */
63
+ quality: NetworkQuality;
64
+ /** Event timestamp */
65
+ timestamp: number;
66
+ }
67
+ /**
68
+ * Session state changed event payload
69
+ * @deprecated Use specific events like Connected, Disconnected, Reconnecting, Reconnected instead
70
+ */
71
+ export interface StateChangedEvent {
72
+ /** Current state */
73
+ state: SessionState;
74
+ /** Previous state */
75
+ previousState?: SessionState;
76
+ /** Event timestamp */
77
+ timestamp: number;
78
+ }
79
+ /**
80
+ * Connected event payload - fired when successfully connected to the room
81
+ */
82
+ export interface ConnectedEvent {
83
+ /** Event timestamp */
84
+ timestamp: number;
85
+ }
86
+ /**
87
+ * Disconnected event payload - fired when disconnected from the room
88
+ */
89
+ export interface DisconnectedEvent {
90
+ /** Reason for disconnection */
91
+ reason: DisconnectReason;
92
+ /** Event timestamp */
93
+ timestamp: number;
94
+ }
95
+ /**
96
+ * Reconnecting event payload - fired when attempting to reconnect
97
+ */
98
+ export interface ReconnectingEvent {
99
+ /** Current retry attempt number */
100
+ attempt: number;
101
+ /** Event timestamp */
102
+ timestamp: number;
103
+ }
104
+ /**
105
+ * Reconnected event payload - fired when successfully reconnected
106
+ */
107
+ export interface ReconnectedEvent {
108
+ /** Event timestamp */
109
+ timestamp: number;
110
+ }
111
+ /**
112
+ * Error event payload
113
+ */
114
+ export interface ErrorEvent {
115
+ /** Error info */
116
+ error: VroomError;
117
+ /** Event timestamp */
118
+ timestamp: number;
119
+ }
120
+ /**
121
+ * Screen share started event payload
122
+ */
123
+ export interface ScreenShareStartedEvent {
124
+ /** Screen track */
125
+ track: Track;
126
+ /** Event timestamp */
127
+ timestamp: number;
128
+ }
129
+ /**
130
+ * Screen share stopped event payload
131
+ */
132
+ export interface ScreenShareStoppedEvent {
133
+ /** Screen track ID */
134
+ trackId: string;
135
+ /** Event timestamp */
136
+ timestamp: number;
137
+ }
138
+ /**
139
+ * Active device changed event payload.
140
+ * Fired when the active audio/video device changes (manual or automatic).
141
+ */
142
+ export interface ActiveDeviceChangedEvent {
143
+ /** Device kind that changed */
144
+ kind: DeviceKind;
145
+ /** New device ID (or undefined if no device available) */
146
+ deviceId: string | undefined;
147
+ /** Event timestamp */
148
+ timestamp: number;
149
+ }
150
+ /**
151
+ * Session event names as const object.
152
+ *
153
+ * Use `SessionEvent.ParticipantJoined` instead of `'participant-joined'`
154
+ * for better autocomplete and refactoring support.
155
+ *
156
+ * @example
157
+ * ```typescript
158
+ * session.on(SessionEvent.Connected, () => {
159
+ * console.log('Connected to room!')
160
+ * })
161
+ *
162
+ * session.on(SessionEvent.ParticipantJoined, (event) => {
163
+ * console.log('Joined:', event.participant.displayName)
164
+ * })
165
+ *
166
+ * session.on(SessionEvent.Disconnected, (event) => {
167
+ * console.log('Disconnected:', event.reason)
168
+ * })
169
+ * ```
170
+ */
171
+ export declare const SessionEvent: {
172
+ /** Fired when successfully connected to the room */
173
+ readonly Connected: "connected";
174
+ /** Fired when disconnected from the room */
175
+ readonly Disconnected: "disconnected";
176
+ /** Fired when attempting to reconnect after connection loss */
177
+ readonly Reconnecting: "reconnecting";
178
+ /** Fired when successfully reconnected */
179
+ readonly Reconnected: "reconnected";
180
+ /** Fired when a participant joins the session */
181
+ readonly ParticipantJoined: "participant-joined";
182
+ /** Fired when a participant leaves the session */
183
+ readonly ParticipantLeft: "participant-left";
184
+ /** Fired when a track is added */
185
+ readonly TrackAdded: "track-added";
186
+ /** Fired when a track is removed */
187
+ readonly TrackRemoved: "track-removed";
188
+ /** Fired when a track is enabled or disabled */
189
+ readonly TrackEnabled: "track-enabled";
190
+ /**
191
+ * Fired when a local track's underlying MediaStreamTrack is replaced.
192
+ *
193
+ * This happens when user disables then re-enables camera/microphone:
194
+ * - disable: MediaStreamTrack.stop() → readyState becomes 'ended'
195
+ * - enable: getUserMedia() creates new MediaStreamTrack
196
+ *
197
+ * Only fires for local tracks. Remote tracks reuse the same MediaStreamTrack.
198
+ */
199
+ readonly LocalTrackRestarted: "local-track-restarted";
200
+ /** Fired when screen sharing starts */
201
+ readonly ScreenShareStarted: "screen-share-started";
202
+ /** Fired when screen sharing stops */
203
+ readonly ScreenShareStopped: "screen-share-stopped";
204
+ /** Fired when the active speaker changes */
205
+ readonly ActiveSpeakerChanged: "active-speaker-changed";
206
+ /** Fired when active audio/video device changes (manual or automatic) */
207
+ readonly ActiveDeviceChanged: "active-device-changed";
208
+ /**
209
+ * Fired when session state changes
210
+ * @deprecated Use Connected, Disconnected, Reconnecting, Reconnected instead
211
+ */
212
+ readonly StateChanged: "state-changed";
213
+ /** Fired when an error occurs */
214
+ readonly Error: "error";
215
+ };
216
+ /**
217
+ * Session event name type.
218
+ *
219
+ * Union of all possible event names:
220
+ * `'connected' | 'disconnected' | 'participant-joined' | ...`
221
+ */
222
+ export type SessionEventName = (typeof SessionEvent)[keyof typeof SessionEvent];
223
+ /**
224
+ * Event handlers for session events
225
+ */
226
+ export interface EventHandlers {
227
+ /** Fired when successfully connected to the room */
228
+ [SessionEvent.Connected]?: (event: ConnectedEvent) => void;
229
+ /** Fired when disconnected from the room */
230
+ [SessionEvent.Disconnected]?: (event: DisconnectedEvent) => void;
231
+ /** Fired when attempting to reconnect */
232
+ [SessionEvent.Reconnecting]?: (event: ReconnectingEvent) => void;
233
+ /** Fired when successfully reconnected */
234
+ [SessionEvent.Reconnected]?: (event: ReconnectedEvent) => void;
235
+ /** Fired when a participant joins the session */
236
+ [SessionEvent.ParticipantJoined]?: (event: ParticipantEvent) => void;
237
+ /** Fired when a participant leaves the session */
238
+ [SessionEvent.ParticipantLeft]?: (event: ParticipantEvent) => void;
239
+ /** Fired when a track is added */
240
+ [SessionEvent.TrackAdded]?: (event: TrackEvent) => void;
241
+ /** Fired when a track is removed */
242
+ [SessionEvent.TrackRemoved]?: (event: TrackEvent) => void;
243
+ /** Fired when a track is enabled or disabled */
244
+ [SessionEvent.TrackEnabled]?: (event: TrackEnabledEvent) => void;
245
+ /** Fired when a local track's MediaStreamTrack is replaced (on mute→unmute) */
246
+ [SessionEvent.LocalTrackRestarted]?: (event: TrackEvent) => void;
247
+ /** Fired when screen sharing starts */
248
+ [SessionEvent.ScreenShareStarted]?: (event: ScreenShareStartedEvent) => void;
249
+ /** Fired when screen sharing stops */
250
+ [SessionEvent.ScreenShareStopped]?: (event: ScreenShareStoppedEvent) => void;
251
+ /** Fired when the active speaker changes */
252
+ [SessionEvent.ActiveSpeakerChanged]?: (event: ActiveSpeakerEvent) => void;
253
+ /** Fired when active audio/video device changes (manual or automatic) */
254
+ [SessionEvent.ActiveDeviceChanged]?: (event: ActiveDeviceChangedEvent) => void;
255
+ /**
256
+ * Fired when session state changes
257
+ * @deprecated Use Connected, Disconnected, Reconnecting, Reconnected instead
258
+ */
259
+ [SessionEvent.StateChanged]?: (event: StateChangedEvent) => void;
260
+ /** Fired when an error occurs */
261
+ [SessionEvent.Error]?: (event: ErrorEvent) => void;
262
+ }
263
+ //# sourceMappingURL=events.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.types.d.ts","sourceRoot":"","sources":["../../../src/core/types/events.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ // ============================================================
2
+ // Session Event Constants
3
+ // ============================================================
4
+ /**
5
+ * Session event names as const object.
6
+ *
7
+ * Use `SessionEvent.ParticipantJoined` instead of `'participant-joined'`
8
+ * for better autocomplete and refactoring support.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * session.on(SessionEvent.Connected, () => {
13
+ * console.log('Connected to room!')
14
+ * })
15
+ *
16
+ * session.on(SessionEvent.ParticipantJoined, (event) => {
17
+ * console.log('Joined:', event.participant.displayName)
18
+ * })
19
+ *
20
+ * session.on(SessionEvent.Disconnected, (event) => {
21
+ * console.log('Disconnected:', event.reason)
22
+ * })
23
+ * ```
24
+ */
25
+ export const SessionEvent = {
26
+ // ============ Connection Events ============
27
+ /** Fired when successfully connected to the room */
28
+ Connected: 'connected',
29
+ /** Fired when disconnected from the room */
30
+ Disconnected: 'disconnected',
31
+ /** Fired when attempting to reconnect after connection loss */
32
+ Reconnecting: 'reconnecting',
33
+ /** Fired when successfully reconnected */
34
+ Reconnected: 'reconnected',
35
+ // ============ Participant Events ============
36
+ /** Fired when a participant joins the session */
37
+ ParticipantJoined: 'participant-joined',
38
+ /** Fired when a participant leaves the session */
39
+ ParticipantLeft: 'participant-left',
40
+ // ============ Track Events ============
41
+ /** Fired when a track is added */
42
+ TrackAdded: 'track-added',
43
+ /** Fired when a track is removed */
44
+ TrackRemoved: 'track-removed',
45
+ /** Fired when a track is enabled or disabled */
46
+ TrackEnabled: 'track-enabled',
47
+ /**
48
+ * Fired when a local track's underlying MediaStreamTrack is replaced.
49
+ *
50
+ * This happens when user disables then re-enables camera/microphone:
51
+ * - disable: MediaStreamTrack.stop() → readyState becomes 'ended'
52
+ * - enable: getUserMedia() creates new MediaStreamTrack
53
+ *
54
+ * Only fires for local tracks. Remote tracks reuse the same MediaStreamTrack.
55
+ */
56
+ LocalTrackRestarted: 'local-track-restarted',
57
+ // ============ Media Events ============
58
+ /** Fired when screen sharing starts */
59
+ ScreenShareStarted: 'screen-share-started',
60
+ /** Fired when screen sharing stops */
61
+ ScreenShareStopped: 'screen-share-stopped',
62
+ /** Fired when the active speaker changes */
63
+ ActiveSpeakerChanged: 'active-speaker-changed',
64
+ // ============ Device Events ============
65
+ /** Fired when active audio/video device changes (manual or automatic) */
66
+ ActiveDeviceChanged: 'active-device-changed',
67
+ // ============ Other Events ============
68
+ /**
69
+ * Fired when session state changes
70
+ * @deprecated Use Connected, Disconnected, Reconnecting, Reconnected instead
71
+ */
72
+ StateChanged: 'state-changed',
73
+ /** Fired when an error occurs */
74
+ Error: 'error',
75
+ };
76
+ //# sourceMappingURL=events.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.types.js","sourceRoot":"","sources":["../../../src/core/types/events.types.ts"],"names":[],"mappings":"AAiLA,+DAA+D;AAC/D,0BAA0B;AAC1B,+DAA+D;AAE/D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,8CAA8C;IAC9C,oDAAoD;IACpD,SAAS,EAAE,WAAW;IACtB,4CAA4C;IAC5C,YAAY,EAAE,cAAc;IAC5B,+DAA+D;IAC/D,YAAY,EAAE,cAAc;IAC5B,0CAA0C;IAC1C,WAAW,EAAE,aAAa;IAE1B,+CAA+C;IAC/C,iDAAiD;IACjD,iBAAiB,EAAE,oBAAoB;IACvC,kDAAkD;IAClD,eAAe,EAAE,kBAAkB;IAEnC,yCAAyC;IACzC,kCAAkC;IAClC,UAAU,EAAE,aAAa;IACzB,oCAAoC;IACpC,YAAY,EAAE,eAAe;IAC7B,gDAAgD;IAChD,YAAY,EAAE,eAAe;IAC7B;;;;;;;;OAQG;IACH,mBAAmB,EAAE,uBAAuB;IAE5C,yCAAyC;IACzC,uCAAuC;IACvC,kBAAkB,EAAE,sBAAsB;IAC1C,sCAAsC;IACtC,kBAAkB,EAAE,sBAAsB;IAC1C,4CAA4C;IAC5C,oBAAoB,EAAE,wBAAwB;IAE9C,0CAA0C;IAC1C,yEAAyE;IACzE,mBAAmB,EAAE,uBAAuB;IAE5C,yCAAyC;IACzC;;;OAGG;IACH,YAAY,EAAE,eAAe;IAC7B,iCAAiC;IACjC,KAAK,EAAE,OAAO;CACN,CAAA"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Audio constraints for media capture
3
+ */
4
+ export interface AudioConstraints {
5
+ /** Audio device ID */
6
+ deviceId?: string;
7
+ /** Enable echo cancellation */
8
+ echoCancellation?: boolean;
9
+ /** Enable noise suppression */
10
+ noiseSuppression?: boolean;
11
+ /** Enable auto gain control */
12
+ autoGainControl?: boolean;
13
+ }
14
+ /**
15
+ * Video constraints for media capture
16
+ */
17
+ export interface VideoConstraints {
18
+ /** Video device ID */
19
+ deviceId?: string;
20
+ /** Camera facing mode */
21
+ facingMode?: 'user' | 'environment';
22
+ /** Video resolution */
23
+ resolution?: {
24
+ width?: number;
25
+ height?: number;
26
+ };
27
+ /** Frame rate */
28
+ frameRate?: number;
29
+ }
30
+ /**
31
+ * Media options for session
32
+ */
33
+ export interface MediaOptions {
34
+ /** Audio settings */
35
+ audio?: boolean | AudioConstraints;
36
+ /** Video settings */
37
+ video?: boolean | VideoConstraints;
38
+ }
39
+ /**
40
+ * Device kind for audio/video devices.
41
+ */
42
+ export declare const DeviceKind: {
43
+ /** Microphone */
44
+ readonly AudioInput: "audioinput";
45
+ /** Camera */
46
+ readonly VideoInput: "videoinput";
47
+ /** Speaker (Web only, limited browser support) */
48
+ readonly AudioOutput: "audiooutput";
49
+ };
50
+ export type DeviceKind = (typeof DeviceKind)[keyof typeof DeviceKind];
51
+ /**
52
+ * Options for switching audio/video device.
53
+ *
54
+ * All fields are optional - only specified devices will be switched.
55
+ * Each device kind is switched independently in sequence.
56
+ */
57
+ export interface SwitchDeviceOptions {
58
+ /** Audio input device ID (microphone) */
59
+ audioInputId?: string;
60
+ /** Video input device ID (camera) */
61
+ videoInputId?: string;
62
+ /**
63
+ * Audio output device ID (speaker).
64
+ *
65
+ * **Browser Support:** Requires `setSinkId` API.
66
+ * Not supported on Safari, iOS, or React Native.
67
+ */
68
+ audioOutputId?: string;
69
+ }
70
+ /**
71
+ * Options for screen sharing
72
+ */
73
+ export interface ScreenShareOptions {
74
+ /** Show cursor (default: true) */
75
+ cursor?: boolean;
76
+ /** Share system audio (default: false) */
77
+ audio?: boolean;
78
+ /** Specific surface type */
79
+ displaySurface?: 'monitor' | 'window' | 'browser';
80
+ }
81
+ //# sourceMappingURL=media.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.types.d.ts","sourceRoot":"","sources":["../../../src/core/types/media.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,sBAAsB;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,+BAA+B;IAC/B,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,+BAA+B;IAC/B,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,+BAA+B;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,sBAAsB;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yBAAyB;IACzB,UAAU,CAAC,EAAE,MAAM,GAAG,aAAa,CAAA;IACnC,uBAAuB;IACvB,UAAU,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAChD,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,qBAAqB;IACrB,KAAK,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAAA;IAClC,qBAAqB;IACrB,KAAK,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAAA;CACnC;AAED;;GAEG;AACH,eAAO,MAAM,UAAU;IACrB,iBAAiB;;IAEjB,aAAa;;IAEb,kDAAkD;;CAE1C,CAAA;AAEV,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAA;AAErE;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,yCAAyC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,qCAAqC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,kCAAkC;IAClC,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,4BAA4B;IAC5B,cAAc,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAA;CAClD"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Device kind for audio/video devices.
3
+ */
4
+ export const DeviceKind = {
5
+ /** Microphone */
6
+ AudioInput: 'audioinput',
7
+ /** Camera */
8
+ VideoInput: 'videoinput',
9
+ /** Speaker (Web only, limited browser support) */
10
+ AudioOutput: 'audiooutput',
11
+ };
12
+ //# sourceMappingURL=media.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.types.js","sourceRoot":"","sources":["../../../src/core/types/media.types.ts"],"names":[],"mappings":"AAsCA;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,iBAAiB;IACjB,UAAU,EAAE,YAAY;IACxB,aAAa;IACb,UAAU,EAAE,YAAY;IACxB,kDAAkD;IAClD,WAAW,EAAE,aAAa;CAClB,CAAA"}
@@ -0,0 +1,11 @@
1
+ import type { User } from './user.types';
2
+ /**
3
+ * Participant in a session (extends User with session-specific info)
4
+ */
5
+ export interface Participant extends User {
6
+ /** Timestamp when participant joined */
7
+ joinedAt?: number;
8
+ /** Whether this is the local user */
9
+ isLocal?: boolean;
10
+ }
11
+ //# sourceMappingURL=participant.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"participant.types.d.ts","sourceRoot":"","sources":["../../../src/core/types/participant.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAExC;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,IAAI;IACvC,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,qCAAqC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=participant.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"participant.types.js","sourceRoot":"","sources":["../../../src/core/types/participant.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Recording layout options
3
+ */
4
+ export type RecordingLayout = 'grid' | 'speaker-only' | 'custom';
5
+ /**
6
+ * Recording state
7
+ */
8
+ export type RecordingState = 'starting' | 'recording' | 'stopped' | 'failed';
9
+ /**
10
+ * Options for starting a recording
11
+ */
12
+ export interface RecordingStartOptions {
13
+ /** Recording layout (default: "grid") */
14
+ layout?: RecordingLayout;
15
+ /** Record audio only without video (default: false) */
16
+ audioOnly?: boolean;
17
+ /** Video resolution (default: 720p) */
18
+ resolution?: {
19
+ width: number;
20
+ height: number;
21
+ };
22
+ }
23
+ /**
24
+ * Recording status response
25
+ */
26
+ export interface RecordingStatus {
27
+ /** Recording ID */
28
+ recordingId: string;
29
+ /** Current state */
30
+ state: RecordingState;
31
+ /** Duration in seconds */
32
+ duration: number;
33
+ }
34
+ /**
35
+ * Recording status change event payload
36
+ */
37
+ export interface RecordingStatusEvent {
38
+ /** Recording ID */
39
+ recordingId: string;
40
+ /** New state */
41
+ state: RecordingState;
42
+ }
43
+ /**
44
+ * Recording service event names
45
+ */
46
+ export declare const RecordingEvent: {
47
+ readonly Status: "status";
48
+ };
49
+ export type RecordingEventName = (typeof RecordingEvent)[keyof typeof RecordingEvent];
50
+ /**
51
+ * Recording event handler types mapped by event name
52
+ */
53
+ export interface RecordingEventMap {
54
+ [RecordingEvent.Status]: (event: RecordingStatusEvent) => void;
55
+ }
56
+ /**
57
+ * Recording event handler type (union of all possible handlers)
58
+ */
59
+ export type RecordingEventHandler = RecordingEventMap[RecordingEventName];
60
+ //# sourceMappingURL=recording.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recording.types.d.ts","sourceRoot":"","sources":["../../../src/core/types/recording.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,cAAc,GAAG,QAAQ,CAAA;AAEhE;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAA;AAE5E;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,yCAAyC;IACzC,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB,uDAAuD;IACvD,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,uCAAuC;IACvC,UAAU,CAAC,EAAE;QACX,KAAK,EAAE,MAAM,CAAA;QACb,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;CACF;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,oBAAoB;IACpB,KAAK,EAAE,cAAc,CAAA;IACrB,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,gBAAgB;IAChB,KAAK,EAAE,cAAc,CAAA;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,cAAc;;CAEjB,CAAA;AAEV,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAA;AAErF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAA;CAC/D;AAED;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,CAAA"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Recording service event names
3
+ */
4
+ export const RecordingEvent = {
5
+ Status: 'status',
6
+ };
7
+ //# sourceMappingURL=recording.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recording.types.js","sourceRoot":"","sources":["../../../src/core/types/recording.types.ts"],"names":[],"mappings":"AA+CA;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,MAAM,EAAE,QAAQ;CACR,CAAA"}
@@ -0,0 +1,46 @@
1
+ import type { StatsAdapter } from '../ports/outbound/stats-adapter.port';
2
+ import type { RecordingAdapter } from '../ports/outbound/recording-adapter.port';
3
+ import type { TrackAttachmentAdapter } from '../ports/outbound/track-attachment-adapter.port';
4
+ /**
5
+ * Context for service adapters that need to call backend APIs.
6
+ *
7
+ * Passed to ProviderAdapter during creation so service adapters
8
+ * can make authenticated API calls (e.g., recording start/stop).
9
+ */
10
+ export interface ServiceContext {
11
+ /** Session token for authenticating backend API calls */
12
+ sessionToken: string;
13
+ /** Vroom API endpoint base URL */
14
+ apiEndpoint: string;
15
+ }
16
+ /**
17
+ * Service adapters provided by ProviderAdapter.
18
+ *
19
+ * Different API keys/plans may have access to different services.
20
+ * Required services are always present, optional services may be undefined
21
+ * based on user permissions.
22
+ */
23
+ export interface ServiceAdapters {
24
+ /**
25
+ * Stats adapter (required for all plans)
26
+ */
27
+ stats: StatsAdapter;
28
+ /**
29
+ * Chat adapter (optional - Pro+ plans)
30
+ */
31
+ chat?: unknown;
32
+ /**
33
+ * Recording adapter (optional - requires "recording" feature + host/moderator role)
34
+ */
35
+ recording?: RecordingAdapter;
36
+ /**
37
+ * Whiteboard adapter (optional - Enterprise plans)
38
+ */
39
+ whiteboard?: unknown;
40
+ /**
41
+ * Track attachment adapter (required for all plans)
42
+ * Used for attaching tracks to media elements with proper provider integration
43
+ */
44
+ trackAttachment: TrackAttachmentAdapter;
45
+ }
46
+ //# sourceMappingURL=service-adapters.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-adapters.types.d.ts","sourceRoot":"","sources":["../../../src/core/types/service-adapters.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAA;AACxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAA;AAChF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAA;AAE7F;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,yDAAyD;IACzD,YAAY,EAAE,MAAM,CAAA;IACpB,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAA;CACpB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,KAAK,EAAE,YAAY,CAAA;IAEnB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;IAEd;;OAEG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAA;IAE5B;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IAEpB;;;OAGG;IACH,eAAe,EAAE,sBAAsB,CAAA;CACxC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=service-adapters.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-adapters.types.js","sourceRoot":"","sources":["../../../src/core/types/service-adapters.types.ts"],"names":[],"mappings":""}