livekit-client 0.17.3 → 0.17.6-rc1

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 (155) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/README.md +26 -20
  3. package/dist/api/SignalClient.d.ts +1 -0
  4. package/dist/connect.d.ts +2 -0
  5. package/dist/index.d.ts +2 -2
  6. package/dist/livekit-client.esm.js +17344 -0
  7. package/dist/livekit-client.esm.js.map +1 -0
  8. package/dist/livekit-client.umd.js +17388 -0
  9. package/dist/livekit-client.umd.js.map +1 -0
  10. package/dist/logger.d.ts +22 -11
  11. package/dist/options.d.ts +4 -2
  12. package/dist/proto/google/protobuf/timestamp.d.ts +12 -2
  13. package/dist/proto/livekit_models.d.ts +524 -17
  14. package/dist/proto/livekit_rtc.d.ts +3449 -31
  15. package/dist/room/DeviceManager.d.ts +1 -1
  16. package/dist/room/RTCEngine.d.ts +1 -1
  17. package/dist/room/Room.d.ts +2 -2
  18. package/dist/room/events.d.ts +1 -1
  19. package/dist/room/participant/LocalParticipant.d.ts +9 -5
  20. package/dist/room/participant/RemoteParticipant.d.ts +9 -0
  21. package/dist/room/track/RemoteAudioTrack.d.ts +11 -0
  22. package/dist/room/track/options.d.ts +1 -1
  23. package/dist/test/mocks.d.ts +11 -0
  24. package/dist/version.d.ts +1 -1
  25. package/package.json +41 -16
  26. package/.eslintrc.js +0 -17
  27. package/.gitmodules +0 -3
  28. package/dist/api/RequestQueue.js +0 -61
  29. package/dist/api/RequestQueue.js.map +0 -1
  30. package/dist/api/SignalClient.js +0 -428
  31. package/dist/api/SignalClient.js.map +0 -1
  32. package/dist/connect.js +0 -130
  33. package/dist/connect.js.map +0 -1
  34. package/dist/index.js +0 -71
  35. package/dist/index.js.map +0 -1
  36. package/dist/logger.js +0 -24
  37. package/dist/logger.js.map +0 -1
  38. package/dist/options.js +0 -3
  39. package/dist/options.js.map +0 -1
  40. package/dist/proto/google/protobuf/timestamp.js +0 -93
  41. package/dist/proto/google/protobuf/timestamp.js.map +0 -1
  42. package/dist/proto/livekit_models.js +0 -2688
  43. package/dist/proto/livekit_models.js.map +0 -1
  44. package/dist/proto/livekit_rtc.js +0 -2995
  45. package/dist/proto/livekit_rtc.js.map +0 -1
  46. package/dist/room/DeviceManager.js +0 -62
  47. package/dist/room/DeviceManager.js.map +0 -1
  48. package/dist/room/PCTransport.js +0 -91
  49. package/dist/room/PCTransport.js.map +0 -1
  50. package/dist/room/RTCEngine.js +0 -562
  51. package/dist/room/RTCEngine.js.map +0 -1
  52. package/dist/room/Room.js +0 -759
  53. package/dist/room/Room.js.map +0 -1
  54. package/dist/room/errors.js +0 -68
  55. package/dist/room/errors.js.map +0 -1
  56. package/dist/room/events.js +0 -385
  57. package/dist/room/events.js.map +0 -1
  58. package/dist/room/participant/LocalParticipant.js +0 -647
  59. package/dist/room/participant/LocalParticipant.js.map +0 -1
  60. package/dist/room/participant/Participant.js +0 -189
  61. package/dist/room/participant/Participant.js.map +0 -1
  62. package/dist/room/participant/ParticipantTrackPermission.js +0 -16
  63. package/dist/room/participant/ParticipantTrackPermission.js.map +0 -1
  64. package/dist/room/participant/RemoteParticipant.js +0 -194
  65. package/dist/room/participant/RemoteParticipant.js.map +0 -1
  66. package/dist/room/participant/publishUtils.js +0 -189
  67. package/dist/room/participant/publishUtils.js.map +0 -1
  68. package/dist/room/participant/publishUtils.test.d.ts +0 -1
  69. package/dist/room/participant/publishUtils.test.js +0 -118
  70. package/dist/room/participant/publishUtils.test.js.map +0 -1
  71. package/dist/room/stats.js +0 -26
  72. package/dist/room/stats.js.map +0 -1
  73. package/dist/room/track/LocalAudioTrack.js +0 -153
  74. package/dist/room/track/LocalAudioTrack.js.map +0 -1
  75. package/dist/room/track/LocalTrack.js +0 -158
  76. package/dist/room/track/LocalTrack.js.map +0 -1
  77. package/dist/room/track/LocalTrackPublication.js +0 -64
  78. package/dist/room/track/LocalTrackPublication.js.map +0 -1
  79. package/dist/room/track/LocalVideoTrack.js +0 -297
  80. package/dist/room/track/LocalVideoTrack.js.map +0 -1
  81. package/dist/room/track/LocalVideoTrack.test.d.ts +0 -1
  82. package/dist/room/track/LocalVideoTrack.test.js +0 -68
  83. package/dist/room/track/LocalVideoTrack.test.js.map +0 -1
  84. package/dist/room/track/RemoteAudioTrack.js +0 -64
  85. package/dist/room/track/RemoteAudioTrack.js.map +0 -1
  86. package/dist/room/track/RemoteTrack.js +0 -49
  87. package/dist/room/track/RemoteTrack.js.map +0 -1
  88. package/dist/room/track/RemoteTrackPublication.js +0 -178
  89. package/dist/room/track/RemoteTrackPublication.js.map +0 -1
  90. package/dist/room/track/RemoteVideoTrack.js +0 -201
  91. package/dist/room/track/RemoteVideoTrack.js.map +0 -1
  92. package/dist/room/track/Track.js +0 -276
  93. package/dist/room/track/Track.js.map +0 -1
  94. package/dist/room/track/TrackPublication.js +0 -92
  95. package/dist/room/track/TrackPublication.js.map +0 -1
  96. package/dist/room/track/create.js +0 -131
  97. package/dist/room/track/create.js.map +0 -1
  98. package/dist/room/track/defaults.js +0 -21
  99. package/dist/room/track/defaults.js.map +0 -1
  100. package/dist/room/track/options.js +0 -100
  101. package/dist/room/track/options.js.map +0 -1
  102. package/dist/room/track/types.js +0 -3
  103. package/dist/room/track/types.js.map +0 -1
  104. package/dist/room/track/utils.js +0 -113
  105. package/dist/room/track/utils.js.map +0 -1
  106. package/dist/room/track/utils.test.d.ts +0 -1
  107. package/dist/room/track/utils.test.js +0 -85
  108. package/dist/room/track/utils.test.js.map +0 -1
  109. package/dist/room/utils.js +0 -79
  110. package/dist/room/utils.js.map +0 -1
  111. package/dist/version.js +0 -6
  112. package/dist/version.js.map +0 -1
  113. package/jest.config.js +0 -6
  114. package/src/api/RequestQueue.ts +0 -53
  115. package/src/api/SignalClient.ts +0 -499
  116. package/src/connect.ts +0 -100
  117. package/src/index.ts +0 -47
  118. package/src/logger.ts +0 -22
  119. package/src/options.ts +0 -149
  120. package/src/proto/google/protobuf/timestamp.ts +0 -222
  121. package/src/proto/livekit_models.ts +0 -3019
  122. package/src/proto/livekit_rtc.ts +0 -3677
  123. package/src/room/DeviceManager.ts +0 -57
  124. package/src/room/PCTransport.ts +0 -86
  125. package/src/room/RTCEngine.ts +0 -652
  126. package/src/room/Room.ts +0 -943
  127. package/src/room/errors.ts +0 -65
  128. package/src/room/events.ts +0 -424
  129. package/src/room/participant/LocalParticipant.ts +0 -734
  130. package/src/room/participant/Participant.ts +0 -269
  131. package/src/room/participant/ParticipantTrackPermission.ts +0 -32
  132. package/src/room/participant/RemoteParticipant.ts +0 -243
  133. package/src/room/participant/publishUtils.test.ts +0 -145
  134. package/src/room/participant/publishUtils.ts +0 -225
  135. package/src/room/stats.ts +0 -130
  136. package/src/room/track/LocalAudioTrack.ts +0 -137
  137. package/src/room/track/LocalTrack.ts +0 -161
  138. package/src/room/track/LocalTrackPublication.ts +0 -66
  139. package/src/room/track/LocalVideoTrack.test.ts +0 -70
  140. package/src/room/track/LocalVideoTrack.ts +0 -293
  141. package/src/room/track/RemoteAudioTrack.ts +0 -58
  142. package/src/room/track/RemoteTrack.ts +0 -62
  143. package/src/room/track/RemoteTrackPublication.ts +0 -198
  144. package/src/room/track/RemoteVideoTrack.ts +0 -235
  145. package/src/room/track/Track.ts +0 -337
  146. package/src/room/track/TrackPublication.ts +0 -120
  147. package/src/room/track/create.ts +0 -121
  148. package/src/room/track/defaults.ts +0 -23
  149. package/src/room/track/options.ts +0 -281
  150. package/src/room/track/types.ts +0 -20
  151. package/src/room/track/utils.test.ts +0 -93
  152. package/src/room/track/utils.ts +0 -115
  153. package/src/room/utils.ts +0 -70
  154. package/src/version.ts +0 -2
  155. package/tsconfig.eslint.json +0 -11
package/CHANGELOG.md CHANGED
@@ -2,4 +2,4 @@
2
2
 
3
3
  ## 0.12.0
4
4
 
5
- * Updated API to create screen share tracks.
5
+ - Updated API to create screen share tracks.
package/README.md CHANGED
@@ -56,16 +56,16 @@ const room = new Room({
56
56
  // default capture settings
57
57
  videoCaptureDefaults: {
58
58
  resolution: VideoPresets.hd.resolution,
59
- }
59
+ },
60
60
  });
61
61
 
62
62
  // set up event listeners
63
63
  room
64
- .on(RoomEvent.TrackSubscribed, handleTrackSubscribed)
65
- .on(RoomEvent.TrackUnsubscribed, handleTrackUnsubscribed)
66
- .on(RoomEvent.ActiveSpeakersChanged, handleActiveSpeakerChange)
67
- .on(RoomEvent.Disconnected, handleDisconnect)
68
- .on(RoomEvent.LocalTrackUnpublished, handleLocalTrackUnpublished);
64
+ .on(RoomEvent.TrackSubscribed, handleTrackSubscribed)
65
+ .on(RoomEvent.TrackUnsubscribed, handleTrackUnsubscribed)
66
+ .on(RoomEvent.ActiveSpeakersChanged, handleActiveSpeakerChange)
67
+ .on(RoomEvent.Disconnected, handleDisconnect)
68
+ .on(RoomEvent.LocalTrackUnpublished, handleLocalTrackUnpublished);
69
69
 
70
70
  // connect to room
71
71
  await room.connect('ws://localhost:7800', token, {
@@ -80,7 +80,7 @@ await room.localParticipant.enableCameraAndMicrophone();
80
80
  function handleTrackSubscribed(
81
81
  track: RemoteTrack,
82
82
  publication: RemoteTrackPublication,
83
- participant: RemoteParticipant
83
+ participant: RemoteParticipant,
84
84
  ) {
85
85
  if (track.kind === Track.Kind.Video || track.kind === Track.Kind.Audio) {
86
86
  // attach it to a new HTMLVideoElement or HTMLAudioElement
@@ -92,16 +92,13 @@ function handleTrackSubscribed(
92
92
  function handleTrackUnsubscribed(
93
93
  track: RemoteTrack,
94
94
  publication: RemoteTrackPublication,
95
- participant: RemoteParticipant
95
+ participant: RemoteParticipant,
96
96
  ) {
97
97
  // remove tracks from all attached elements
98
98
  track.detach();
99
99
  }
100
100
 
101
- function handleLocalTrackUnpublished(
102
- track: LocalTrackPublication,
103
- participant: LocalParticipant,
104
- ) {
101
+ function handleLocalTrackUnpublished(track: LocalTrackPublication, participant: LocalParticipant) {
105
102
  // when local tracks are ended, update UI to remove them from rendering
106
103
  track.detach();
107
104
  }
@@ -148,7 +145,7 @@ if (p) {
148
145
  if (p.isCameraEnabled) {
149
146
  const track = p.getTrack(Track.Source.Camera);
150
147
  if (track?.isSubscribed) {
151
- const videoElement = track.videoTrack?.attach()
148
+ const videoElement = track.videoTrack?.attach();
152
149
  // do something with the element
153
150
  }
154
151
  }
@@ -174,19 +171,18 @@ const tracks = await createLocalTracks({
174
171
  LiveKit lets you publish any track as long as it can be represented by a MediaStreamTrack. You can specify a name on the track in order to identify it later.
175
172
 
176
173
  ```typescript
177
-
178
174
  const pub = await room.localParticipant.publishTrack(mediaStreamTrack, {
179
175
  name: 'mytrack',
180
176
  simulcast: true,
181
177
  // if this should be treated like a camera feed, tag it as such
182
178
  // supported known sources are .Camera, .Microphone, .ScreenShare
183
179
  source: Track.Source.Camera,
184
- })
180
+ });
185
181
 
186
182
  // you may mute or unpublish the track later
187
183
  pub.setMuted(true);
188
184
 
189
- room.localParticipant.unpublishTrack(mediaStreamTrack)
185
+ room.localParticipant.unpublishTrack(mediaStreamTrack);
190
186
  ```
191
187
 
192
188
  ### Device management APIs
@@ -202,7 +198,7 @@ We use the same deviceId as one returned by [MediaDevices.enumerateDevices()](ht
202
198
  const devices = await Room.getLocalDevices('audioinput');
203
199
 
204
200
  // select last device
205
- const device = devices[devices.length-1];
201
+ const device = devices[devices.length - 1];
206
202
 
207
203
  // in the current room, switch to the selected device and set
208
204
  // it as default audioinput in the future.
@@ -223,9 +219,9 @@ When creating tracks using LiveKit APIs (`connect`, `createLocalTracks`, `setCam
223
219
 
224
220
  You can use the helper `MediaDeviceFailure.getFailure(error)` to determine specific reason for the error.
225
221
 
226
- * `PermissionDenied` - the user disallowed capturing devices
227
- * `NotFound` - the particular device isn't available
228
- * `DeviceInUse` - device is in use by another process (happens on Windows)
222
+ - `PermissionDenied` - the user disallowed capturing devices
223
+ - `NotFound` - the particular device isn't available
224
+ - `DeviceInUse` - device is in use by another process (happens on Windows)
229
225
 
230
226
  These distinctions enables you to provide more specific messaging to the user.
231
227
 
@@ -258,6 +254,16 @@ room.on(RoomEvent.AudioPlaybackStatusChanged, () => {
258
254
  ### Configuring logging
259
255
 
260
256
  This library uses [loglevel](https://github.com/pimterry/loglevel) for its internal logs. You can change the effective log level with the `logLevel` field in `ConnectOptions`.
257
+ The method `setLogExtension` allows to hook into the livekit internal logs and send them to some third party logging service
258
+
259
+ ```ts
260
+ setLogExtension((level: LogLevel, msg: string, context: object) => {
261
+ const enhancedContext = { ...context, timeStamp: Date.now() };
262
+ if (level >= LogLevel.debug) {
263
+ console.log(level, msg, enhancedContext);
264
+ }
265
+ });
266
+ ```
261
267
 
262
268
  ## Examples
263
269
 
@@ -1,6 +1,7 @@
1
1
  import { ParticipantInfo, Room, SpeakerInfo, VideoLayer } from '../proto/livekit_models';
2
2
  import { AddTrackRequest, ConnectionQualityUpdate, JoinResponse, LeaveRequest, SessionDescription, SignalRequest, SignalTarget, SimulateScenario, StreamStateUpdate, SubscribedQualityUpdate, SubscriptionPermissionUpdate, SyncState, TrackPermission, TrackPublishedResponse, TrackUnpublishedResponse, UpdateSubscription, UpdateTrackSettings } from '../proto/livekit_rtc';
3
3
  import Queue from './RequestQueue';
4
+ import 'webrtc-adapter';
4
5
  interface ConnectOpts {
5
6
  autoSubscribe?: boolean;
6
7
  /** internal */
package/dist/connect.d.ts CHANGED
@@ -2,6 +2,8 @@ import { ConnectOptions } from './options';
2
2
  import Room from './room/Room';
3
3
  export { version } from './version';
4
4
  /**
5
+ * @deprecated Use room.connect() instead
6
+ *
5
7
  * Connects to a LiveKit room, shorthand for `new Room()` and [[Room.connect]]
6
8
  *
7
9
  * ```typescript
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { setLogLevel } from './logger';
1
+ import { setLogLevel, setLogExtension } from './logger';
2
2
  import { DataPacket_Kind, VideoQuality } from './proto/livekit_models';
3
3
  import LocalParticipant from './room/participant/LocalParticipant';
4
4
  import Participant, { ConnectionQuality } from './room/participant/Participant';
@@ -23,4 +23,4 @@ export * from './room/track/options';
23
23
  export * from './room/track/Track';
24
24
  export * from './room/track/types';
25
25
  export * from './version';
26
- export { setLogLevel, Room, RoomState, DataPacket_Kind, Participant, RemoteParticipant, LocalParticipant, LocalAudioTrack, LocalVideoTrack, LocalTrack, LocalTrackPublication, RemoteTrack, RemoteAudioTrack, RemoteVideoTrack, RemoteTrackPublication, ParticipantTrackPermission, TrackPublication, VideoQuality, ConnectionQuality, };
26
+ export { setLogLevel, setLogExtension, Room, RoomState, DataPacket_Kind, Participant, RemoteParticipant, LocalParticipant, LocalAudioTrack, LocalVideoTrack, LocalTrack, LocalTrackPublication, RemoteTrack, RemoteAudioTrack, RemoteVideoTrack, RemoteTrackPublication, ParticipantTrackPermission, TrackPublication, VideoQuality, ConnectionQuality, };