livekit-client 2.15.8 → 2.15.10

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 (59) hide show
  1. package/dist/livekit-client.esm.mjs +589 -205
  2. package/dist/livekit-client.esm.mjs.map +1 -1
  3. package/dist/livekit-client.umd.js +1 -1
  4. package/dist/livekit-client.umd.js.map +1 -1
  5. package/dist/src/api/SignalClient.d.ts +31 -2
  6. package/dist/src/api/SignalClient.d.ts.map +1 -1
  7. package/dist/src/api/WebSocketStream.d.ts +29 -0
  8. package/dist/src/api/WebSocketStream.d.ts.map +1 -0
  9. package/dist/src/api/utils.d.ts +2 -0
  10. package/dist/src/api/utils.d.ts.map +1 -1
  11. package/dist/src/connectionHelper/checks/turn.d.ts.map +1 -1
  12. package/dist/src/connectionHelper/checks/websocket.d.ts.map +1 -1
  13. package/dist/src/index.d.ts +2 -2
  14. package/dist/src/index.d.ts.map +1 -1
  15. package/dist/src/options.d.ts +6 -0
  16. package/dist/src/options.d.ts.map +1 -1
  17. package/dist/src/room/PCTransport.d.ts +1 -0
  18. package/dist/src/room/PCTransport.d.ts.map +1 -1
  19. package/dist/src/room/PCTransportManager.d.ts +6 -4
  20. package/dist/src/room/PCTransportManager.d.ts.map +1 -1
  21. package/dist/src/room/RTCEngine.d.ts +1 -1
  22. package/dist/src/room/RTCEngine.d.ts.map +1 -1
  23. package/dist/src/room/Room.d.ts.map +1 -1
  24. package/dist/src/room/defaults.d.ts.map +1 -1
  25. package/dist/src/room/token-source/utils.d.ts +1 -1
  26. package/dist/src/room/token-source/utils.d.ts.map +1 -1
  27. package/dist/src/room/utils.d.ts +6 -0
  28. package/dist/src/room/utils.d.ts.map +1 -1
  29. package/dist/ts4.2/api/SignalClient.d.ts +31 -2
  30. package/dist/ts4.2/api/WebSocketStream.d.ts +29 -0
  31. package/dist/ts4.2/api/utils.d.ts +2 -0
  32. package/dist/ts4.2/index.d.ts +2 -2
  33. package/dist/ts4.2/options.d.ts +6 -0
  34. package/dist/ts4.2/room/PCTransport.d.ts +1 -0
  35. package/dist/ts4.2/room/PCTransportManager.d.ts +6 -4
  36. package/dist/ts4.2/room/RTCEngine.d.ts +1 -1
  37. package/dist/ts4.2/room/token-source/utils.d.ts +1 -1
  38. package/dist/ts4.2/room/utils.d.ts +6 -0
  39. package/package.json +1 -1
  40. package/src/api/SignalClient.test.ts +769 -0
  41. package/src/api/SignalClient.ts +319 -162
  42. package/src/api/WebSocketStream.test.ts +625 -0
  43. package/src/api/WebSocketStream.ts +118 -0
  44. package/src/api/utils.ts +10 -0
  45. package/src/connectionHelper/checks/turn.ts +1 -0
  46. package/src/connectionHelper/checks/webrtc.ts +1 -1
  47. package/src/connectionHelper/checks/websocket.ts +1 -0
  48. package/src/index.ts +2 -0
  49. package/src/options.ts +7 -0
  50. package/src/room/PCTransport.ts +7 -3
  51. package/src/room/PCTransportManager.ts +39 -35
  52. package/src/room/RTCEngine.ts +59 -17
  53. package/src/room/Room.ts +5 -2
  54. package/src/room/defaults.ts +1 -0
  55. package/src/room/participant/LocalParticipant.ts +2 -2
  56. package/src/room/token-source/TokenSource.ts +2 -2
  57. package/src/room/token-source/utils.test.ts +63 -0
  58. package/src/room/token-source/utils.ts +10 -5
  59. package/src/room/utils.ts +29 -0
@@ -52,6 +52,7 @@ export default class PCTransport extends EventEmitter {
52
52
  createAndSetAnswer(): Promise<RTCSessionDescriptionInit>;
53
53
  createDataChannel(label: string, dataChannelDict: RTCDataChannelInit): RTCDataChannel;
54
54
  addTransceiver(mediaStreamTrack: MediaStreamTrack, transceiverInit: RTCRtpTransceiverInit): RTCRtpTransceiver;
55
+ addTransceiverOfKind(kind: 'audio' | 'video', transceiverInit: RTCRtpTransceiverInit): RTCRtpTransceiver;
55
56
  addTrack(track: MediaStreamTrack): RTCRtpSender;
56
57
  setTrackCodecBitrate(info: TrackBitrateInfo): void;
57
58
  setConfiguration(rtcConfig: RTCConfiguration): void;
@@ -9,14 +9,15 @@ export declare enum PCTransportState {
9
9
  CLOSING = 4,
10
10
  CLOSED = 5
11
11
  }
12
+ type PCMode = 'subscriber-primary' | 'publisher-primary' | 'publisher-only';
12
13
  export declare class PCTransportManager {
13
14
  publisher: PCTransport;
14
- subscriber: PCTransport;
15
+ subscriber?: PCTransport;
15
16
  peerConnectionTimeout: number;
16
17
  get needsPublisher(): boolean;
17
18
  get needsSubscriber(): boolean;
18
19
  get currentState(): PCTransportState;
19
- onStateChange?: (state: PCTransportState, pubState: RTCPeerConnectionState, subState: RTCPeerConnectionState) => void;
20
+ onStateChange?: (state: PCTransportState, pubState: RTCPeerConnectionState, subState?: RTCPeerConnectionState) => void;
20
21
  onIceCandidate?: (ev: RTCIceCandidate, target: SignalTarget) => void;
21
22
  onDataChannel?: (ev: RTCDataChannelEvent) => void;
22
23
  onTrack?: (ev: RTCTrackEvent) => void;
@@ -28,10 +29,9 @@ export declare class PCTransportManager {
28
29
  private remoteOfferLock;
29
30
  private log;
30
31
  private loggerOptions;
31
- constructor(rtcConfig: RTCConfiguration, subscriberPrimary: boolean, loggerOptions: LoggerOptions);
32
+ constructor(rtcConfig: RTCConfiguration, mode: PCMode, loggerOptions: LoggerOptions);
32
33
  private get logContext();
33
34
  requirePublisher(require?: boolean): void;
34
- requireSubscriber(require?: boolean): void;
35
35
  createAndSendPublisherOffer(options?: RTCOfferOptions): Promise<void>;
36
36
  setPublisherAnswer(sd: RTCSessionDescriptionInit, offerId: number): Promise<boolean>;
37
37
  removeTrack(sender: RTCRtpSender): void | undefined;
@@ -43,6 +43,7 @@ export declare class PCTransportManager {
43
43
  ensurePCTransportConnection(abortController?: AbortController, timeout?: number): Promise<void>;
44
44
  negotiate(abortController: AbortController): Promise<void>;
45
45
  addPublisherTransceiver(track: MediaStreamTrack, transceiverInit: RTCRtpTransceiverInit): RTCRtpTransceiver;
46
+ addPublisherTransceiverOfKind(kind: 'audio' | 'video', transceiverInit: RTCRtpTransceiverInit): RTCRtpTransceiver;
46
47
  addPublisherTrack(track: MediaStreamTrack): RTCRtpSender;
47
48
  createPublisherDataChannel(label: string, dataChannelDict: RTCDataChannelInit): RTCDataChannel;
48
49
  /**
@@ -53,4 +54,5 @@ export declare class PCTransportManager {
53
54
  private updateState;
54
55
  private ensureTransportConnected;
55
56
  }
57
+ export {};
56
58
  //# sourceMappingURL=PCTransportManager.d.ts.map
@@ -157,7 +157,7 @@ export type EngineEventCallbacks = {
157
157
  activeSpeakersUpdate: (speakers: Array<SpeakerInfo>) => void;
158
158
  dataPacketReceived: (packet: DataPacket, encryptionType: Encryption_Type) => void;
159
159
  transcriptionReceived: (transcription: Transcription) => void;
160
- transportsCreated: (publisher: PCTransport, subscriber: PCTransport) => void;
160
+ transportsCreated: (publisher: PCTransport, subscriber?: PCTransport) => void;
161
161
  /** @internal */
162
162
  trackSenderAdded: (track: Track, sender: RTCRtpSender) => void;
163
163
  rtpVideoMapUpdate: (rtpMap: Map<number, VideoCodec>) => void;
@@ -1,5 +1,5 @@
1
1
  import type { TokenSourceResponse } from '@livekit/protocol';
2
2
  import type { TokenPayload } from './types';
3
- export declare function isResponseExpired(response: TokenSourceResponse): boolean;
3
+ export declare function isResponseTokenValid(response: TokenSourceResponse): boolean;
4
4
  export declare function decodeTokenPayload(token: string): TokenPayload;
5
5
  //# sourceMappingURL=utils.d.ts.map
@@ -30,6 +30,11 @@ export declare function supportsVP9(): boolean;
30
30
  export declare function supportsH265(): boolean;
31
31
  export declare function isSVCCodec(codec?: string): boolean;
32
32
  export declare function supportsSetSinkId(elm?: HTMLMediaElement): boolean;
33
+ /**
34
+ * Checks whether or not setting an audio output via {@link Room#setActiveDevice}
35
+ * is supported for the current browser.
36
+ */
37
+ export declare function supportsAudioOutputSelection(): boolean;
33
38
  export declare function isBrowserSupported(): boolean;
34
39
  export declare function isFireFox(): boolean;
35
40
  export declare function isChromiumBased(): boolean;
@@ -63,6 +68,7 @@ export declare function getClientInfo(): ClientInfo;
63
68
  export declare function getEmptyVideoStreamTrack(): MediaStreamTrack;
64
69
  export declare function createDummyVideoStreamTrack(width?: number, height?: number, enabled?: boolean, paintContent?: boolean): MediaStreamTrack;
65
70
  export declare function getEmptyAudioStreamTrack(): MediaStreamTrack;
71
+ export declare function getStereoAudioStreamTrack(): MediaStreamTrack;
66
72
  export declare class Future<T> {
67
73
  promise: Promise<T>;
68
74
  resolve?: (arg: T) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "livekit-client",
3
- "version": "2.15.8",
3
+ "version": "2.15.10",
4
4
  "description": "JavaScript/TypeScript client SDK for LiveKit",
5
5
  "main": "./dist/livekit-client.umd.js",
6
6
  "unpkg": "./dist/livekit-client.umd.js",