livekit-client 1.9.2 → 1.9.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (111) hide show
  1. package/README.md +2 -0
  2. package/dist/livekit-client.esm.mjs +8251 -8123
  3. package/dist/livekit-client.esm.mjs.map +1 -1
  4. package/dist/livekit-client.umd.js +1 -1
  5. package/dist/livekit-client.umd.js.map +1 -1
  6. package/dist/src/AsyncQueue.d.ts +23 -0
  7. package/dist/src/AsyncQueue.d.ts.map +1 -0
  8. package/dist/src/api/SignalClient.d.ts +98 -98
  9. package/dist/src/api/SignalClient.d.ts.map +1 -1
  10. package/dist/src/connectionHelper/ConnectionCheck.d.ts +25 -24
  11. package/dist/src/connectionHelper/ConnectionCheck.d.ts.map +1 -1
  12. package/dist/src/connectionHelper/checks/Checker.d.ts +58 -58
  13. package/dist/src/connectionHelper/checks/publishAudio.d.ts +5 -5
  14. package/dist/src/connectionHelper/checks/publishVideo.d.ts +5 -5
  15. package/dist/src/connectionHelper/checks/reconnect.d.ts +5 -5
  16. package/dist/src/connectionHelper/checks/turn.d.ts +5 -5
  17. package/dist/src/connectionHelper/checks/webrtc.d.ts +5 -5
  18. package/dist/src/connectionHelper/checks/websocket.d.ts +5 -5
  19. package/dist/src/index.d.ts +34 -31
  20. package/dist/src/index.d.ts.map +1 -1
  21. package/dist/src/logger.d.ts +25 -25
  22. package/dist/src/options.d.ts +98 -98
  23. package/dist/src/proto/google/protobuf/timestamp.d.ts +145 -145
  24. package/dist/src/proto/livekit_models.d.ts +2300 -2300
  25. package/dist/src/proto/livekit_rtc.d.ts +14032 -14032
  26. package/dist/src/room/DefaultReconnectPolicy.d.ts +7 -7
  27. package/dist/src/room/DeviceManager.d.ts +8 -8
  28. package/dist/src/room/PCTransport.d.ts +36 -37
  29. package/dist/src/room/PCTransport.d.ts.map +1 -1
  30. package/dist/src/room/RTCEngine.d.ts +126 -121
  31. package/dist/src/room/RTCEngine.d.ts.map +1 -1
  32. package/dist/src/room/ReconnectPolicy.d.ts +23 -23
  33. package/dist/src/room/RegionUrlProvider.d.ts +13 -13
  34. package/dist/src/room/Room.d.ts +232 -232
  35. package/dist/src/room/defaults.d.ts +7 -7
  36. package/dist/src/room/defaults.d.ts.map +1 -1
  37. package/dist/src/room/errors.d.ts +42 -42
  38. package/dist/src/room/events.d.ts +455 -455
  39. package/dist/src/room/participant/LocalParticipant.d.ts +170 -170
  40. package/dist/src/room/participant/LocalParticipant.d.ts.map +1 -1
  41. package/dist/src/room/participant/Participant.d.ts +93 -93
  42. package/dist/src/room/participant/ParticipantTrackPermission.d.ts +25 -25
  43. package/dist/src/room/participant/RemoteParticipant.d.ts +52 -51
  44. package/dist/src/room/participant/RemoteParticipant.d.ts.map +1 -1
  45. package/dist/src/room/participant/publishUtils.d.ts +19 -18
  46. package/dist/src/room/participant/publishUtils.d.ts.map +1 -1
  47. package/dist/src/room/stats.d.ts +66 -66
  48. package/dist/src/room/timers.d.ts +11 -12
  49. package/dist/src/room/timers.d.ts.map +1 -1
  50. package/dist/src/room/track/LocalAudioTrack.d.ts +24 -24
  51. package/dist/src/room/track/LocalAudioTrack.d.ts.map +1 -1
  52. package/dist/src/room/track/LocalTrack.d.ts +43 -43
  53. package/dist/src/room/track/LocalTrackPublication.d.ts +37 -37
  54. package/dist/src/room/track/LocalVideoTrack.d.ts +53 -53
  55. package/dist/src/room/track/LocalVideoTrack.d.ts.map +1 -1
  56. package/dist/src/room/track/RemoteAudioTrack.d.ts +52 -52
  57. package/dist/src/room/track/RemoteAudioTrack.d.ts.map +1 -1
  58. package/dist/src/room/track/RemoteTrack.d.ts +14 -14
  59. package/dist/src/room/track/RemoteTrackPublication.d.ts +60 -60
  60. package/dist/src/room/track/RemoteVideoTrack.d.ts +52 -52
  61. package/dist/src/room/track/RemoteVideoTrack.d.ts.map +1 -1
  62. package/dist/src/room/track/Track.d.ts +124 -124
  63. package/dist/src/room/track/TrackPublication.d.ts +67 -67
  64. package/dist/src/room/track/create.d.ts +23 -23
  65. package/dist/src/room/track/create.d.ts.map +1 -1
  66. package/dist/src/room/track/options.d.ts +255 -247
  67. package/dist/src/room/track/options.d.ts.map +1 -1
  68. package/dist/src/room/track/types.d.ts +22 -22
  69. package/dist/src/room/track/utils.d.ts +13 -13
  70. package/dist/src/room/types.d.ts +25 -25
  71. package/dist/src/room/utils.d.ts +86 -85
  72. package/dist/src/room/utils.d.ts.map +1 -1
  73. package/dist/src/test/MockMediaStreamTrack.d.ts +25 -25
  74. package/dist/src/test/mocks.d.ts +10 -10
  75. package/dist/src/version.d.ts +2 -2
  76. package/dist/ts4.2/src/AsyncQueue.d.ts +23 -0
  77. package/dist/ts4.2/src/api/SignalClient.d.ts +2 -2
  78. package/dist/ts4.2/src/connectionHelper/ConnectionCheck.d.ts +2 -1
  79. package/dist/ts4.2/src/index.d.ts +8 -6
  80. package/dist/ts4.2/src/room/PCTransport.d.ts +2 -3
  81. package/dist/ts4.2/src/room/RTCEngine.d.ts +6 -1
  82. package/dist/ts4.2/src/room/defaults.d.ts +1 -1
  83. package/dist/ts4.2/src/room/participant/LocalParticipant.d.ts +4 -4
  84. package/dist/ts4.2/src/room/participant/RemoteParticipant.d.ts +2 -1
  85. package/dist/ts4.2/src/room/participant/publishUtils.d.ts +2 -1
  86. package/dist/ts4.2/src/room/timers.d.ts +4 -5
  87. package/dist/ts4.2/src/room/track/LocalAudioTrack.d.ts +1 -1
  88. package/dist/ts4.2/src/room/track/LocalVideoTrack.d.ts +1 -1
  89. package/dist/ts4.2/src/room/track/RemoteAudioTrack.d.ts +1 -1
  90. package/dist/ts4.2/src/room/track/create.d.ts +1 -1
  91. package/dist/ts4.2/src/room/track/options.d.ts +10 -2
  92. package/dist/ts4.2/src/room/utils.d.ts +1 -0
  93. package/package.json +18 -31
  94. package/src/AsyncQueue.test.ts +99 -0
  95. package/src/AsyncQueue.ts +57 -0
  96. package/src/api/SignalClient.ts +14 -15
  97. package/src/connectionHelper/ConnectionCheck.ts +3 -2
  98. package/src/index.ts +13 -8
  99. package/src/room/PCTransport.ts +10 -6
  100. package/src/room/RTCEngine.ts +10 -3
  101. package/src/room/defaults.ts +6 -4
  102. package/src/room/participant/LocalParticipant.ts +10 -9
  103. package/src/room/participant/RemoteParticipant.ts +2 -1
  104. package/src/room/participant/publishUtils.ts +7 -5
  105. package/src/room/track/LocalAudioTrack.ts +2 -1
  106. package/src/room/track/LocalVideoTrack.ts +3 -2
  107. package/src/room/track/RemoteAudioTrack.ts +2 -1
  108. package/src/room/track/RemoteVideoTrack.ts +4 -8
  109. package/src/room/track/create.ts +2 -2
  110. package/src/room/track/options.ts +23 -7
  111. package/src/room/utils.ts +15 -2
@@ -6,12 +6,12 @@ import LocalAudioTrack from './LocalAudioTrack';
6
6
  import type LocalTrack from './LocalTrack';
7
7
  import LocalVideoTrack from './LocalVideoTrack';
8
8
  import { Track } from './Track';
9
- import {
9
+ import { VideoPresets } from './options';
10
+ import type {
10
11
  AudioCaptureOptions,
11
12
  CreateLocalTracksOptions,
12
13
  ScreenShareCaptureOptions,
13
14
  VideoCaptureOptions,
14
- VideoPresets,
15
15
  } from './options';
16
16
  import { constraintsForOptions, mergeDefaultOptions } from './utils';
17
17
 
@@ -23,10 +23,17 @@ export interface TrackPublishDefaults {
23
23
  videoCodec?: VideoCodec;
24
24
 
25
25
  /**
26
- * max audio bitrate, defaults to [[AudioPresets.speech]]
26
+ * max audio bitrate, defaults to [[AudioPresets.music]]
27
+ * @deprecated use `audioPreset` instead
27
28
  */
28
29
  audioBitrate?: number;
29
30
 
31
+ /**
32
+ * which audio preset should be used for publishing (audio) tracks
33
+ * defaults to [[AudioPresets.music]]
34
+ */
35
+ audioPreset?: AudioPreset;
36
+
30
37
  /**
31
38
  * dtx (Discontinuous Transmission of audio), enabled by default for mono tracks.
32
39
  */
@@ -215,6 +222,7 @@ export interface VideoResolution {
215
222
  export interface VideoEncoding {
216
223
  maxBitrate: number;
217
224
  maxFramerate?: number;
225
+ priority?: RTCPriorityType;
218
226
  }
219
227
 
220
228
  export class VideoPreset {
@@ -224,12 +232,19 @@ export class VideoPreset {
224
232
 
225
233
  height: number;
226
234
 
227
- constructor(width: number, height: number, maxBitrate: number, maxFramerate?: number) {
235
+ constructor(
236
+ width: number,
237
+ height: number,
238
+ maxBitrate: number,
239
+ maxFramerate?: number,
240
+ priority?: RTCPriorityType,
241
+ ) {
228
242
  this.width = width;
229
243
  this.height = height;
230
244
  this.encoding = {
231
245
  maxBitrate,
232
246
  maxFramerate,
247
+ priority,
233
248
  };
234
249
  }
235
250
 
@@ -245,6 +260,7 @@ export class VideoPreset {
245
260
 
246
261
  export interface AudioPreset {
247
262
  maxBitrate: number;
263
+ priority?: RTCPriorityType;
248
264
  }
249
265
 
250
266
  const codecs = ['vp8', 'h264', 'vp9', 'av1'] as const;
@@ -322,9 +338,9 @@ export const VideoPresets43 = {
322
338
  } as const;
323
339
 
324
340
  export const ScreenSharePresets = {
325
- h360fps3: new VideoPreset(640, 360, 200_000, 3),
326
- h720fps5: new VideoPreset(1280, 720, 400_000, 5),
327
- h720fps15: new VideoPreset(1280, 720, 1_000_000, 15),
328
- h1080fps15: new VideoPreset(1920, 1080, 1_500_000, 15),
329
- h1080fps30: new VideoPreset(1920, 1080, 3_000_000, 30),
341
+ h360fps3: new VideoPreset(640, 360, 200_000, 3, 'medium'),
342
+ h720fps5: new VideoPreset(1280, 720, 400_000, 5, 'medium'),
343
+ h720fps15: new VideoPreset(1280, 720, 1_000_000, 15, 'medium'),
344
+ h1080fps15: new VideoPreset(1920, 1080, 1_500_000, 15, 'medium'),
345
+ h1080fps30: new VideoPreset(1920, 1080, 3_000_000, 30, 'medium'),
330
346
  } as const;
package/src/room/utils.ts CHANGED
@@ -41,7 +41,10 @@ export function supportsDynacast() {
41
41
  }
42
42
 
43
43
  export function supportsAV1(): boolean {
44
- const capabilities = RTCRtpReceiver.getCapabilities('video');
44
+ if (!('getCapabilities' in RTCRtpSender)) {
45
+ return false;
46
+ }
47
+ const capabilities = RTCRtpSender.getCapabilities('video');
45
48
  let hasAV1 = false;
46
49
  if (capabilities) {
47
50
  for (const codec of capabilities.codecs) {
@@ -55,7 +58,12 @@ export function supportsAV1(): boolean {
55
58
  }
56
59
 
57
60
  export function supportsVP9(): boolean {
58
- const capabilities = RTCRtpReceiver.getCapabilities('video');
61
+ if (!('getCapabilities' in RTCRtpSender)) {
62
+ // technically speaking FireFox supports VP9, but SVC publishing is broken
63
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=1633876
64
+ return false;
65
+ }
66
+ const capabilities = RTCRtpSender.getCapabilities('video');
59
67
  let hasVP9 = false;
60
68
  if (capabilities) {
61
69
  for (const codec of capabilities.codecs) {
@@ -119,6 +127,11 @@ export function isFireFox(): boolean {
119
127
  return navigator.userAgent.indexOf('Firefox') !== -1;
120
128
  }
121
129
 
130
+ export function isChromiumBased(): boolean {
131
+ if (!isWeb()) return false;
132
+ return navigator.userAgent.indexOf('Chrom') !== -1;
133
+ }
134
+
122
135
  export function isSafari(): boolean {
123
136
  if (!isWeb()) return false;
124
137
  return /^((?!chrome|android).)*safari/i.test(navigator.userAgent);