livekit-client 0.17.5 → 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 (153) 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 +1 -1
  13. package/dist/proto/livekit_models.d.ts +4 -1
  14. package/dist/proto/livekit_rtc.d.ts +45 -2
  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/test/mocks.d.ts +11 -0
  23. package/package.json +40 -15
  24. package/.eslintrc.js +0 -17
  25. package/.gitmodules +0 -3
  26. package/dist/api/RequestQueue.js +0 -61
  27. package/dist/api/RequestQueue.js.map +0 -1
  28. package/dist/api/SignalClient.js +0 -428
  29. package/dist/api/SignalClient.js.map +0 -1
  30. package/dist/connect.js +0 -130
  31. package/dist/connect.js.map +0 -1
  32. package/dist/index.js +0 -71
  33. package/dist/index.js.map +0 -1
  34. package/dist/logger.js +0 -24
  35. package/dist/logger.js.map +0 -1
  36. package/dist/options.js +0 -3
  37. package/dist/options.js.map +0 -1
  38. package/dist/proto/google/protobuf/timestamp.js +0 -108
  39. package/dist/proto/google/protobuf/timestamp.js.map +0 -1
  40. package/dist/proto/livekit_models.js +0 -2262
  41. package/dist/proto/livekit_models.js.map +0 -1
  42. package/dist/proto/livekit_rtc.js +0 -2544
  43. package/dist/proto/livekit_rtc.js.map +0 -1
  44. package/dist/room/DeviceManager.js +0 -62
  45. package/dist/room/DeviceManager.js.map +0 -1
  46. package/dist/room/PCTransport.js +0 -91
  47. package/dist/room/PCTransport.js.map +0 -1
  48. package/dist/room/RTCEngine.js +0 -562
  49. package/dist/room/RTCEngine.js.map +0 -1
  50. package/dist/room/Room.js +0 -767
  51. package/dist/room/Room.js.map +0 -1
  52. package/dist/room/errors.js +0 -68
  53. package/dist/room/errors.js.map +0 -1
  54. package/dist/room/events.js +0 -385
  55. package/dist/room/events.js.map +0 -1
  56. package/dist/room/participant/LocalParticipant.js +0 -647
  57. package/dist/room/participant/LocalParticipant.js.map +0 -1
  58. package/dist/room/participant/Participant.js +0 -189
  59. package/dist/room/participant/Participant.js.map +0 -1
  60. package/dist/room/participant/ParticipantTrackPermission.js +0 -16
  61. package/dist/room/participant/ParticipantTrackPermission.js.map +0 -1
  62. package/dist/room/participant/RemoteParticipant.js +0 -194
  63. package/dist/room/participant/RemoteParticipant.js.map +0 -1
  64. package/dist/room/participant/publishUtils.js +0 -189
  65. package/dist/room/participant/publishUtils.js.map +0 -1
  66. package/dist/room/participant/publishUtils.test.d.ts +0 -1
  67. package/dist/room/participant/publishUtils.test.js +0 -118
  68. package/dist/room/participant/publishUtils.test.js.map +0 -1
  69. package/dist/room/stats.js +0 -26
  70. package/dist/room/stats.js.map +0 -1
  71. package/dist/room/track/LocalAudioTrack.js +0 -153
  72. package/dist/room/track/LocalAudioTrack.js.map +0 -1
  73. package/dist/room/track/LocalTrack.js +0 -158
  74. package/dist/room/track/LocalTrack.js.map +0 -1
  75. package/dist/room/track/LocalTrackPublication.js +0 -64
  76. package/dist/room/track/LocalTrackPublication.js.map +0 -1
  77. package/dist/room/track/LocalVideoTrack.js +0 -297
  78. package/dist/room/track/LocalVideoTrack.js.map +0 -1
  79. package/dist/room/track/LocalVideoTrack.test.d.ts +0 -1
  80. package/dist/room/track/LocalVideoTrack.test.js +0 -68
  81. package/dist/room/track/LocalVideoTrack.test.js.map +0 -1
  82. package/dist/room/track/RemoteAudioTrack.js +0 -64
  83. package/dist/room/track/RemoteAudioTrack.js.map +0 -1
  84. package/dist/room/track/RemoteTrack.js +0 -49
  85. package/dist/room/track/RemoteTrack.js.map +0 -1
  86. package/dist/room/track/RemoteTrackPublication.js +0 -178
  87. package/dist/room/track/RemoteTrackPublication.js.map +0 -1
  88. package/dist/room/track/RemoteVideoTrack.js +0 -201
  89. package/dist/room/track/RemoteVideoTrack.js.map +0 -1
  90. package/dist/room/track/Track.js +0 -283
  91. package/dist/room/track/Track.js.map +0 -1
  92. package/dist/room/track/TrackPublication.js +0 -92
  93. package/dist/room/track/TrackPublication.js.map +0 -1
  94. package/dist/room/track/create.js +0 -131
  95. package/dist/room/track/create.js.map +0 -1
  96. package/dist/room/track/defaults.js +0 -21
  97. package/dist/room/track/defaults.js.map +0 -1
  98. package/dist/room/track/options.js +0 -100
  99. package/dist/room/track/options.js.map +0 -1
  100. package/dist/room/track/types.js +0 -3
  101. package/dist/room/track/types.js.map +0 -1
  102. package/dist/room/track/utils.js +0 -113
  103. package/dist/room/track/utils.js.map +0 -1
  104. package/dist/room/track/utils.test.d.ts +0 -1
  105. package/dist/room/track/utils.test.js +0 -85
  106. package/dist/room/track/utils.test.js.map +0 -1
  107. package/dist/room/utils.js +0 -79
  108. package/dist/room/utils.js.map +0 -1
  109. package/dist/version.js +0 -6
  110. package/dist/version.js.map +0 -1
  111. package/jest.config.js +0 -6
  112. package/src/api/RequestQueue.ts +0 -53
  113. package/src/api/SignalClient.ts +0 -499
  114. package/src/connect.ts +0 -100
  115. package/src/index.ts +0 -47
  116. package/src/logger.ts +0 -22
  117. package/src/options.ts +0 -149
  118. package/src/proto/google/protobuf/timestamp.ts +0 -232
  119. package/src/proto/livekit_models.ts +0 -2676
  120. package/src/proto/livekit_rtc.ts +0 -3269
  121. package/src/room/DeviceManager.ts +0 -57
  122. package/src/room/PCTransport.ts +0 -86
  123. package/src/room/RTCEngine.ts +0 -652
  124. package/src/room/Room.ts +0 -951
  125. package/src/room/errors.ts +0 -65
  126. package/src/room/events.ts +0 -424
  127. package/src/room/participant/LocalParticipant.ts +0 -734
  128. package/src/room/participant/Participant.ts +0 -269
  129. package/src/room/participant/ParticipantTrackPermission.ts +0 -32
  130. package/src/room/participant/RemoteParticipant.ts +0 -243
  131. package/src/room/participant/publishUtils.test.ts +0 -145
  132. package/src/room/participant/publishUtils.ts +0 -225
  133. package/src/room/stats.ts +0 -130
  134. package/src/room/track/LocalAudioTrack.ts +0 -137
  135. package/src/room/track/LocalTrack.ts +0 -161
  136. package/src/room/track/LocalTrackPublication.ts +0 -66
  137. package/src/room/track/LocalVideoTrack.test.ts +0 -70
  138. package/src/room/track/LocalVideoTrack.ts +0 -293
  139. package/src/room/track/RemoteAudioTrack.ts +0 -58
  140. package/src/room/track/RemoteTrack.ts +0 -62
  141. package/src/room/track/RemoteTrackPublication.ts +0 -198
  142. package/src/room/track/RemoteVideoTrack.ts +0 -235
  143. package/src/room/track/Track.ts +0 -343
  144. package/src/room/track/TrackPublication.ts +0 -120
  145. package/src/room/track/create.ts +0 -121
  146. package/src/room/track/defaults.ts +0 -23
  147. package/src/room/track/options.ts +0 -281
  148. package/src/room/track/types.ts +0 -20
  149. package/src/room/track/utils.test.ts +0 -93
  150. package/src/room/track/utils.ts +0 -115
  151. package/src/room/utils.ts +0 -70
  152. package/src/version.ts +0 -2
  153. package/tsconfig.eslint.json +0 -11
@@ -1,57 +0,0 @@
1
- const defaultId = 'default';
2
-
3
- export default class DeviceManager {
4
- private static instance?: DeviceManager;
5
-
6
- static mediaDeviceKinds: MediaDeviceKind[] = [
7
- 'audioinput',
8
- 'audiooutput',
9
- 'videoinput',
10
- ];
11
-
12
- static getInstance(): DeviceManager {
13
- if (this.instance === undefined) {
14
- this.instance = new DeviceManager();
15
- }
16
- return this.instance;
17
- }
18
-
19
- async getDevices(kind: MediaDeviceKind): Promise<MediaDeviceInfo[]> {
20
- let devices = await navigator.mediaDevices.enumerateDevices();
21
- devices = devices.filter((device) => device.kind === kind);
22
- // Chrome returns 'default' devices, we would filter them out, but put the default
23
- // device at first
24
- // we would only do this if there are more than 1 device though
25
- if (devices.length > 1 && devices[0].deviceId === defaultId) {
26
- // find another device with matching group id, and move that to 0
27
- const defaultDevice = devices[0];
28
- for (let i = 1; i < devices.length; i += 1) {
29
- if (devices[i].groupId === defaultDevice.groupId) {
30
- const temp = devices[0];
31
- devices[0] = devices[i];
32
- devices[i] = temp;
33
- break;
34
- }
35
- }
36
- return devices.filter((device) => device !== defaultDevice);
37
- }
38
-
39
- return devices;
40
- }
41
-
42
- async normalizeDeviceId(
43
- kind: MediaDeviceKind, deviceId?: string, groupId?: string,
44
- ): Promise<string | undefined> {
45
- if (deviceId !== defaultId) {
46
- return deviceId;
47
- }
48
-
49
- // resolve actual device id if it's 'default': Chrome returns it when no
50
- // device has been chosen
51
- const devices = await this.getDevices(kind);
52
-
53
- const device = devices.find((d) => d.groupId === groupId && d.deviceId !== defaultId);
54
-
55
- return device?.deviceId;
56
- }
57
- }
@@ -1,86 +0,0 @@
1
- import { debounce } from 'ts-debounce';
2
- import log from '../logger';
3
-
4
- /** @internal */
5
- export default class PCTransport {
6
- pc: RTCPeerConnection;
7
-
8
- pendingCandidates: RTCIceCandidateInit[] = [];
9
-
10
- restartingIce: boolean = false;
11
-
12
- renegotiate: boolean = false;
13
-
14
- onOffer?: (offer: RTCSessionDescriptionInit) => void;
15
-
16
- constructor(config?: RTCConfiguration) {
17
- this.pc = new RTCPeerConnection(config);
18
- }
19
-
20
- get isICEConnected(): boolean {
21
- return this.pc.iceConnectionState === 'connected' || this.pc.iceConnectionState === 'completed';
22
- }
23
-
24
- async addIceCandidate(candidate: RTCIceCandidateInit): Promise<void> {
25
- if (this.pc.remoteDescription && !this.restartingIce) {
26
- return this.pc.addIceCandidate(candidate);
27
- }
28
- this.pendingCandidates.push(candidate);
29
- }
30
-
31
- async setRemoteDescription(sd: RTCSessionDescriptionInit): Promise<void> {
32
- await this.pc.setRemoteDescription(sd);
33
-
34
- this.pendingCandidates.forEach((candidate) => {
35
- this.pc.addIceCandidate(candidate);
36
- });
37
- this.pendingCandidates = [];
38
- this.restartingIce = false;
39
-
40
- if (this.renegotiate) {
41
- this.renegotiate = false;
42
- this.createAndSendOffer();
43
- }
44
- }
45
-
46
- // debounced negotiate interface
47
- negotiate = debounce(() => { this.createAndSendOffer(); }, 100);
48
-
49
- async createAndSendOffer(options?: RTCOfferOptions) {
50
- if (this.onOffer === undefined) {
51
- return;
52
- }
53
-
54
- if (options?.iceRestart) {
55
- log.debug('restarting ICE');
56
- this.restartingIce = true;
57
- }
58
-
59
- if (this.pc.signalingState === 'have-local-offer') {
60
- // we're waiting for the peer to accept our offer, so we'll just wait
61
- // the only exception to this is when ICE restart is needed
62
- const currentSD = this.pc.remoteDescription;
63
- if (options?.iceRestart && currentSD) {
64
- // TODO: handle when ICE restart is needed but we don't have a remote description
65
- // the best thing to do is to recreate the peerconnection
66
- await this.pc.setRemoteDescription(currentSD);
67
- } else {
68
- this.renegotiate = true;
69
- return;
70
- }
71
- } else if (this.pc.signalingState === 'closed') {
72
- log.warn('could not createOffer with closed peer connection');
73
- return;
74
- }
75
-
76
- // actually negotiate
77
- log.debug('starting to negotiate');
78
- const offer = await this.pc.createOffer(options);
79
- await this.pc.setLocalDescription(offer);
80
- this.onOffer(offer);
81
- }
82
-
83
- close() {
84
- this.pc.close();
85
- }
86
- }