livekit-client 1.2.0 → 1.2.3

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 (36) hide show
  1. package/dist/livekit-client.esm.mjs +1007 -107
  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/index.d.ts +2 -1
  6. package/dist/src/index.d.ts.map +1 -1
  7. package/dist/src/options.d.ts +5 -0
  8. package/dist/src/options.d.ts.map +1 -1
  9. package/dist/src/room/DefaultReconnectPolicy.d.ts +8 -0
  10. package/dist/src/room/DefaultReconnectPolicy.d.ts.map +1 -0
  11. package/dist/src/room/PCTransport.d.ts +10 -0
  12. package/dist/src/room/PCTransport.d.ts.map +1 -1
  13. package/dist/src/room/RTCEngine.d.ts +6 -1
  14. package/dist/src/room/RTCEngine.d.ts.map +1 -1
  15. package/dist/src/room/ReconnectPolicy.d.ts +23 -0
  16. package/dist/src/room/ReconnectPolicy.d.ts.map +1 -0
  17. package/dist/src/room/Room.d.ts +8 -0
  18. package/dist/src/room/Room.d.ts.map +1 -1
  19. package/dist/src/room/events.d.ts +2 -2
  20. package/dist/src/room/participant/LocalParticipant.d.ts +3 -3
  21. package/dist/src/room/participant/LocalParticipant.d.ts.map +1 -1
  22. package/dist/src/room/participant/RemoteParticipant.d.ts.map +1 -1
  23. package/dist/src/room/track/LocalVideoTrack.d.ts.map +1 -1
  24. package/package.json +3 -1
  25. package/src/index.ts +2 -0
  26. package/src/options.ts +6 -0
  27. package/src/room/DefaultReconnectPolicy.ts +35 -0
  28. package/src/room/PCTransport.ts +113 -0
  29. package/src/room/RTCEngine.ts +79 -31
  30. package/src/room/ReconnectPolicy.ts +25 -0
  31. package/src/room/Room.ts +55 -30
  32. package/src/room/events.ts +2 -2
  33. package/src/room/participant/LocalParticipant.ts +56 -20
  34. package/src/room/participant/RemoteParticipant.ts +13 -0
  35. package/src/room/participant/publishUtils.ts +1 -1
  36. package/src/room/track/LocalVideoTrack.ts +0 -1
@@ -5,6 +5,7 @@ import Participant, { ConnectionQuality } from './room/participant/Participant';
5
5
  import { ParticipantTrackPermission } from './room/participant/ParticipantTrackPermission';
6
6
  import RemoteParticipant from './room/participant/RemoteParticipant';
7
7
  import Room, { ConnectionState, RoomState } from './room/Room';
8
+ import DefaultReconnectPolicy from './room/DefaultReconnectPolicy';
8
9
  import LocalAudioTrack from './room/track/LocalAudioTrack';
9
10
  import LocalTrack from './room/track/LocalTrack';
10
11
  import LocalTrackPublication from './room/track/LocalTrackPublication';
@@ -23,5 +24,5 @@ export * from './room/track/options';
23
24
  export * from './room/track/Track';
24
25
  export * from './room/track/types';
25
26
  export * from './version';
26
- export { setLogLevel, setLogExtension, getEmptyAudioStreamTrack, getEmptyVideoStreamTrack, LogLevel, Room, ConnectionState, RoomState, DataPacket_Kind, DisconnectReason, Participant, RemoteParticipant, LocalParticipant, LocalAudioTrack, LocalVideoTrack, LocalTrack, LocalTrackPublication, RemoteTrack, RemoteAudioTrack, RemoteVideoTrack, RemoteTrackPublication, ParticipantTrackPermission, TrackPublication, VideoQuality, ConnectionQuality, ElementInfo, };
27
+ export { setLogLevel, setLogExtension, getEmptyAudioStreamTrack, getEmptyVideoStreamTrack, LogLevel, Room, ConnectionState, RoomState, DataPacket_Kind, DisconnectReason, Participant, RemoteParticipant, LocalParticipant, LocalAudioTrack, LocalVideoTrack, LocalTrack, LocalTrackPublication, RemoteTrack, RemoteAudioTrack, RemoteVideoTrack, RemoteTrackPublication, ParticipantTrackPermission, TrackPublication, VideoQuality, ConnectionQuality, ElementInfo, DefaultReconnectPolicy, };
27
28
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,gBAAgB,MAAM,qCAAqC,CAAC;AACnE,OAAO,WAAW,EAAE,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,0BAA0B,EAAE,MAAM,+CAA+C,CAAC;AAC3F,OAAO,iBAAiB,MAAM,sCAAsC,CAAC;AACrE,OAAO,IAAI,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,UAAU,MAAM,yBAAyB,CAAC;AACjD,OAAO,qBAAqB,MAAM,oCAAoC,CAAC;AACvE,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,gBAAgB,MAAM,+BAA+B,CAAC;AAC7D,OAAO,WAAW,MAAM,0BAA0B,CAAC;AACnD,OAAO,sBAAsB,MAAM,qCAAqC,CAAC;AACzE,OAAO,gBAAgB,EAAE,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAElF,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,OAAO,EACL,WAAW,EACX,eAAe,EACf,wBAAwB,EACxB,wBAAwB,EACxB,QAAQ,EACR,IAAI,EACJ,eAAe,EACf,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,UAAU,EACV,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,0BAA0B,EAC1B,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,WAAW,GACZ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,gBAAgB,MAAM,qCAAqC,CAAC;AACnE,OAAO,WAAW,EAAE,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,0BAA0B,EAAE,MAAM,+CAA+C,CAAC;AAC3F,OAAO,iBAAiB,MAAM,sCAAsC,CAAC;AACrE,OAAO,IAAI,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,sBAAsB,MAAM,+BAA+B,CAAC;AACnE,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,UAAU,MAAM,yBAAyB,CAAC;AACjD,OAAO,qBAAqB,MAAM,oCAAoC,CAAC;AACvE,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,gBAAgB,MAAM,+BAA+B,CAAC;AAC7D,OAAO,WAAW,MAAM,0BAA0B,CAAC;AACnD,OAAO,sBAAsB,MAAM,qCAAqC,CAAC;AACzE,OAAO,gBAAgB,EAAE,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAElF,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,OAAO,EACL,WAAW,EACX,eAAe,EACf,wBAAwB,EACxB,wBAAwB,EACxB,QAAQ,EACR,IAAI,EACJ,eAAe,EACf,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,UAAU,EACV,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,0BAA0B,EAC1B,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,sBAAsB,GACvB,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { AudioCaptureOptions, TrackPublishDefaults, VideoCaptureOptions } from './room/track/options';
2
2
  import { AdaptiveStreamSettings } from './room/track/types';
3
+ import { ReconnectPolicy } from './room/ReconnectPolicy';
3
4
  /**
4
5
  * Options for when creating a new room
5
6
  */
@@ -42,6 +43,10 @@ export interface RoomOptions {
42
43
  * experimental flag, introduce a delay before sending signaling messages
43
44
  */
44
45
  expSignalLatency?: number;
46
+ /**
47
+ * policy to use when attempting to reconnect
48
+ */
49
+ reconnectPolicy?: ReconnectPolicy;
45
50
  }
46
51
  /**
47
52
  * Options for Room.connect()
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/options.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC;IAElD;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,oBAAoB,CAAC,EAAE,mBAAmB,CAAC;IAE3C;;OAEG;IACH,oBAAoB,CAAC,EAAE,mBAAmB,CAAC;IAE3C;;OAEG;IACH,eAAe,CAAC,EAAE,oBAAoB,CAAC;IAEvC;;;OAGG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAEpC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,mEAAmE;IACnE,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAE7B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/options.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC;IAElD;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,oBAAoB,CAAC,EAAE,mBAAmB,CAAC;IAE3C;;OAEG;IACH,oBAAoB,CAAC,EAAE,mBAAmB,CAAC;IAE3C;;OAEG;IACH,eAAe,CAAC,EAAE,oBAAoB,CAAC;IAEvC;;;OAGG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAEpC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,mEAAmE;IACnE,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAE7B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
@@ -0,0 +1,8 @@
1
+ import { ReconnectContext, ReconnectPolicy } from './ReconnectPolicy';
2
+ declare class DefaultReconnectPolicy implements ReconnectPolicy {
3
+ private readonly _retryDelays;
4
+ constructor(retryDelays?: number[]);
5
+ nextRetryDelayInMs(context: ReconnectContext): number | null;
6
+ }
7
+ export default DefaultReconnectPolicy;
8
+ //# sourceMappingURL=DefaultReconnectPolicy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultReconnectPolicy.d.ts","sourceRoot":"","sources":["../../../src/room/DefaultReconnectPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAiBtE,cAAM,sBAAuB,YAAW,eAAe;IACrD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAW;gBAE5B,WAAW,CAAC,EAAE,MAAM,EAAE;IAI3B,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,GAAG,IAAI;CAQpE;AAED,eAAe,sBAAsB,CAAC"}
@@ -1,9 +1,16 @@
1
1
  /** @internal */
2
+ interface TrackBitrateInfo {
3
+ sid: string;
4
+ codec: string;
5
+ maxbr: number;
6
+ }
7
+ /** @internal */
2
8
  export default class PCTransport {
3
9
  pc: RTCPeerConnection;
4
10
  pendingCandidates: RTCIceCandidateInit[];
5
11
  restartingIce: boolean;
6
12
  renegotiate: boolean;
13
+ trackBitrates: TrackBitrateInfo[];
7
14
  onOffer?: (offer: RTCSessionDescriptionInit) => void;
8
15
  constructor(config?: RTCConfiguration);
9
16
  get isICEConnected(): boolean;
@@ -11,6 +18,9 @@ export default class PCTransport {
11
18
  setRemoteDescription(sd: RTCSessionDescriptionInit): Promise<void>;
12
19
  negotiate: import("ts-debounce").DebouncedFunction<() => void>;
13
20
  createAndSendOffer(options?: RTCOfferOptions): Promise<void>;
21
+ createAndSetAnswer(): Promise<RTCSessionDescriptionInit>;
22
+ setTrackCodecBitrate(sid: string, codec: string, maxbr: number): void;
14
23
  close(): void;
15
24
  }
25
+ export {};
16
26
  //# sourceMappingURL=PCTransport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PCTransport.d.ts","sourceRoot":"","sources":["../../../src/room/PCTransport.ts"],"names":[],"mappings":"AAGA,gBAAgB;AAChB,MAAM,CAAC,OAAO,OAAO,WAAW;IAC9B,EAAE,EAAE,iBAAiB,CAAC;IAEtB,iBAAiB,EAAE,mBAAmB,EAAE,CAAM;IAE9C,aAAa,EAAE,OAAO,CAAS;IAE/B,WAAW,EAAE,OAAO,CAAS;IAE7B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,IAAI,CAAC;gBAEzC,MAAM,CAAC,EAAE,gBAAgB;IAIrC,IAAI,cAAc,IAAI,OAAO,CAE5B;IAEK,eAAe,CAAC,SAAS,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAO9D,oBAAoB,CAAC,EAAE,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBxE,SAAS,sDAED;IAEF,kBAAkB,CAAC,OAAO,CAAC,EAAE,eAAe;IAkClD,KAAK;CAGN"}
1
+ {"version":3,"file":"PCTransport.d.ts","sourceRoot":"","sources":["../../../src/room/PCTransport.ts"],"names":[],"mappings":"AAIA,gBAAgB;AAChB,UAAU,gBAAgB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,gBAAgB;AAChB,MAAM,CAAC,OAAO,OAAO,WAAW;IAC9B,EAAE,EAAE,iBAAiB,CAAC;IAEtB,iBAAiB,EAAE,mBAAmB,EAAE,CAAM;IAE9C,aAAa,EAAE,OAAO,CAAS;IAE/B,WAAW,EAAE,OAAO,CAAS;IAE7B,aAAa,EAAE,gBAAgB,EAAE,CAAM;IAEvC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,IAAI,CAAC;gBAEzC,MAAM,CAAC,EAAE,gBAAgB;IAIrC,IAAI,cAAc,IAAI,OAAO,CAE5B;IAEK,eAAe,CAAC,SAAS,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAO9D,oBAAoB,CAAC,EAAE,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBxE,SAAS,sDAED;IAEF,kBAAkB,CAAC,OAAO,CAAC,EAAE,eAAe;IAmF5C,kBAAkB,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAa9D,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAQ9D,KAAK;CAGN"}
@@ -1,5 +1,6 @@
1
1
  import type TypedEventEmitter from 'typed-emitter';
2
2
  import { SignalClient, SignalOptions } from '../api/SignalClient';
3
+ import { RoomOptions } from '../options';
3
4
  import { DataPacket, DataPacket_Kind, DisconnectReason, SpeakerInfo, TrackInfo, UserPacket } from '../proto/livekit_models';
4
5
  import { AddTrackRequest, JoinResponse } from '../proto/livekit_rtc';
5
6
  import PCTransport from './PCTransport';
@@ -7,6 +8,7 @@ export declare const maxICEConnectTimeout: number;
7
8
  declare const RTCEngine_base: new () => TypedEventEmitter<EngineEventCallbacks>;
8
9
  /** @internal */
9
10
  export default class RTCEngine extends RTCEngine_base {
11
+ private options;
10
12
  publisher?: PCTransport;
11
13
  subscriber?: PCTransport;
12
14
  client: SignalClient;
@@ -31,7 +33,9 @@ export default class RTCEngine extends RTCEngine_base {
31
33
  private clientConfiguration?;
32
34
  private connectedServerAddr?;
33
35
  private attemptingReconnect;
34
- constructor();
36
+ private reconnectPolicy;
37
+ private reconnectTimeout?;
38
+ constructor(options: RoomOptions);
35
39
  join(url: string, token: string, opts?: SignalOptions, abortSignal?: AbortSignal): Promise<JoinResponse>;
36
40
  close(): void;
37
41
  addTrack(req: AddTrackRequest): Promise<TrackInfo>;
@@ -44,6 +48,7 @@ export default class RTCEngine extends RTCEngine_base {
44
48
  private handleDataMessage;
45
49
  private handleDataError;
46
50
  private handleDisconnect;
51
+ private getNextRetryDelay;
47
52
  private restartConnection;
48
53
  private resumeConnection;
49
54
  waitForPCConnected(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"RTCEngine.d.ts","sourceRoot":"","sources":["../../../src/room/RTCEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RTCEngine.d.ts","sourceRoot":"","sources":["../../../src/room/RTCEngine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /** Controls reconnecting of the client */
2
+ export interface ReconnectPolicy {
3
+ /** Called after disconnect was detected
4
+ *
5
+ * @returns {number | null} Amount of time in milliseconds to delay the next reconnect attempt, `null` signals to stop retrying.
6
+ */
7
+ nextRetryDelayInMs(context: ReconnectContext): number | null;
8
+ }
9
+ export interface ReconnectContext {
10
+ /**
11
+ * Number of failed reconnect attempts
12
+ */
13
+ readonly retryCount: number;
14
+ /**
15
+ * Elapsed amount of time in milliseconds since the disconnect.
16
+ */
17
+ readonly elapsedMs: number;
18
+ /**
19
+ * Reason for retrying
20
+ */
21
+ readonly retryReason?: Error;
22
+ }
23
+ //# sourceMappingURL=ReconnectPolicy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReconnectPolicy.d.ts","sourceRoot":"","sources":["../../../src/room/ReconnectPolicy.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,GAAG,IAAI,CAAC;CAC9D;AAED,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC;CAC9B"}
@@ -138,6 +138,14 @@ declare class Room extends Room_base {
138
138
  private updateSubscriptions;
139
139
  private setAndEmitConnectionState;
140
140
  private emitWhenConnected;
141
+ private onLocalParticipantMetadataChanged;
142
+ private onLocalTrackMuted;
143
+ private onLocalTrackUnmuted;
144
+ private onLocalTrackPublished;
145
+ private onLocalTrackUnpublished;
146
+ private onLocalConnectionQualityChanged;
147
+ private onMediaDevicesError;
148
+ private onLocalParticipantPermissionsChanged;
141
149
  emit<E extends keyof RoomEventCallbacks>(event: E, ...args: Parameters<RoomEventCallbacks[E]>): boolean;
142
150
  }
143
151
  export default Room;
@@ -1 +1 @@
1
- {"version":3,"file":"Room.d.ts","sourceRoot":"","sources":["../../../src/room/Room.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Room.d.ts","sourceRoot":"","sources":["../../../src/room/Room.ts"],"names":[],"mappings":"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"}
@@ -192,8 +192,8 @@ export declare enum RoomEvent {
192
192
  * When we have encountered an error while attempting to create a track.
193
193
  * The errors take place in getUserMedia().
194
194
  * Use MediaDeviceFailure.getFailure(error) to get the reason of failure.
195
- * [[getAudioCreateError]] and [[getVideoCreateError]] will indicate if it had
196
- * an error while creating the audio or video track respectively.
195
+ * [[LocalParticipant.lastCameraError]] and [[LocalParticipant.lastMicrophoneError]]
196
+ * will indicate if it had an error while creating the audio or video track respectively.
197
197
  *
198
198
  * args: (error: Error)
199
199
  */
@@ -34,19 +34,19 @@ export default class LocalParticipant extends Participant {
34
34
  * If a track has already published, it'll mute or unmute the track.
35
35
  * Resolves with a `LocalTrackPublication` instance if successful and `undefined` otherwise
36
36
  */
37
- setCameraEnabled(enabled: boolean, options?: VideoCaptureOptions): Promise<LocalTrackPublication | undefined>;
37
+ setCameraEnabled(enabled: boolean, options?: VideoCaptureOptions, publishOptions?: TrackPublishOptions): Promise<LocalTrackPublication | undefined>;
38
38
  /**
39
39
  * Enable or disable a participant's microphone track.
40
40
  *
41
41
  * If a track has already published, it'll mute or unmute the track.
42
42
  * Resolves with a `LocalTrackPublication` instance if successful and `undefined` otherwise
43
43
  */
44
- setMicrophoneEnabled(enabled: boolean, options?: AudioCaptureOptions): Promise<LocalTrackPublication | undefined>;
44
+ setMicrophoneEnabled(enabled: boolean, options?: AudioCaptureOptions, publishOptions?: TrackPublishOptions): Promise<LocalTrackPublication | undefined>;
45
45
  /**
46
46
  * Start or stop sharing a participant's screen
47
47
  * Resolves with a `LocalTrackPublication` instance if successful and `undefined` otherwise
48
48
  */
49
- setScreenShareEnabled(enabled: boolean, options?: ScreenShareCaptureOptions): Promise<LocalTrackPublication | undefined>;
49
+ setScreenShareEnabled(enabled: boolean, options?: ScreenShareCaptureOptions, publishOptions?: TrackPublishOptions): Promise<LocalTrackPublication | undefined>;
50
50
  /** @internal */
51
51
  setPermissions(permissions: ParticipantPermission): boolean;
52
52
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"LocalParticipant.d.ts","sourceRoot":"","sources":["../../../../src/room/participant/LocalParticipant.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAEL,eAAe,EACf,eAAe,EACf,qBAAqB,EACtB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEL,eAAe,EAGf,sBAAsB,EAEvB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAC7C,OAAO,qBAAqB,MAAM,gCAAgC,CAAC;AAEnE,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EAEzB,mBAAmB,EACnB,mBAAmB,EACnB,UAAU,EACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGvC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,0BAA0B,EAA0B,MAAM,8BAA8B,CAAC;AAElG,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAGpD,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,WAAW;IACvD,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAEhD,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAEhD,+CAA+C;IAC/C,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAE3C,gBAAgB;IAChB,MAAM,EAAE,SAAS,CAAC;IAElB,OAAO,CAAC,iBAAiB,CAA2B;IAEpD,OAAO,CAAC,WAAW,CAAoB;IAEvC,OAAO,CAAC,eAAe,CAAoB;IAE3C,OAAO,CAAC,2BAA2B,CAAyC;IAE5E,OAAO,CAAC,iCAAiC,CAAiB;IAG1D,OAAO,CAAC,WAAW,CAAC,CAAc;IAElC,gBAAgB;gBACJ,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW;IA8BlF,IAAI,eAAe,IAAI,KAAK,GAAG,SAAS,CAEvC;IAED,IAAI,mBAAmB,IAAI,KAAK,GAAG,SAAS,CAE3C;IAED,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,qBAAqB,GAAG,SAAS;IAOjE,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;IAO/D;;;;;OAKG;IACH,gBAAgB,CACd,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IAI7C;;;;;OAKG;IACH,oBAAoB,CAClB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IAI7C;;;OAGG;IACH,qBAAqB,CACnB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IAI7C,gBAAgB;IAChB,cAAc,CAAC,WAAW,EAAE,qBAAqB,GAAG,OAAO;IAS3D;;;;OAIG;YACW,eAAe;IAsF7B;;;OAGG;IACG,yBAAyB;IAwB/B;;;;OAIG;IACG,YAAY,CAAC,OAAO,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAqD7E;;;;OAIG;IACG,kBAAkB,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAsCzF;;;;OAIG;IACG,YAAY,CAChB,KAAK,EAAE,UAAU,GAAG,gBAAgB,EACpC,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IA0KjC;;OAEG;IACG,8BAA8B,CAClC,KAAK,EAAE,UAAU,GAAG,gBAAgB,EACpC,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE,mBAAmB;IA+E/B,cAAc,CACZ,KAAK,EAAE,UAAU,GAAG,gBAAgB,EACpC,eAAe,CAAC,EAAE,OAAO,GACxB,qBAAqB,GAAG,SAAS;IAiEpC,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,gBAAgB,EAAE,GAAG,qBAAqB,EAAE;IAWnF;;;;;;;;;;OAUG;IACG,WAAW,CACf,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,eAAe,EACrB,WAAW,CAAC,EAAE,iBAAiB,EAAE,GAAG,MAAM,EAAE;IAyB9C;;;;;;;;;;;;;;;;OAgBG;IACH,+BAA+B,CAC7B,sBAAsB,EAAE,OAAO,EAC/B,2BAA2B,GAAE,0BAA0B,EAAO;IAShE,gBAAgB;IAChB,UAAU,CAAC,IAAI,EAAE,eAAe;IAsBhC,OAAO,CAAC,kCAAkC,CASxC;IAEF,gBAAgB;IAChB,OAAO,CAAC,cAAc,CAEpB;IAGF,gBAAgB;IAChB,OAAO,CAAC,YAAY,CAWlB;IAEF,OAAO,CAAC,qBAAqB,CAG3B;IAEF,OAAO,CAAC,sBAAsB,CAG5B;IAEF,OAAO,CAAC,6BAA6B,CAwBnC;IAEF,OAAO,CAAC,2BAA2B,CAUjC;IAEF,OAAO,CAAC,gBAAgB,CA2CtB;IAEF,OAAO,CAAC,sBAAsB;IAwB9B,OAAO,CAAC,iBAAiB;IA4CzB,gBAAgB;IAChB,mBAAmB,IAAI,sBAAsB,EAAE;IAa/C,gBAAgB;IAChB,gBAAgB,IAAI,eAAe,EAAE;CAoBtC"}
1
+ {"version":3,"file":"LocalParticipant.d.ts","sourceRoot":"","sources":["../../../../src/room/participant/LocalParticipant.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteParticipant.d.ts","sourceRoot":"","sources":["../../../../src/room/participant/RemoteParticipant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAI7D,OAAO,sBAAsB,MAAM,iCAAiC,CAAC;AAErE,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAE,sBAAsB,EAAe,MAAM,gBAAgB,CAAC;AACrE,OAAO,WAAW,EAAE,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAEvE,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,WAAW;IACxD,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAEjD,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAEjD,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAE5C,YAAY,EAAE,YAAY,CAAC;IAE3B,OAAO,CAAC,MAAM,CAAC,CAAS;IAExB,gBAAgB;IAChB,MAAM,CAAC,mBAAmB,CAAC,YAAY,EAAE,YAAY,EAAE,EAAE,EAAE,eAAe,GAAG,iBAAiB;IAI9F,gBAAgB;gBACJ,YAAY,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAQjE,SAAS,CAAC,mBAAmB,CAAC,WAAW,EAAE,sBAAsB;IA4BjE,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,sBAAsB,GAAG,SAAS;IAOlE,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS;IAOhE;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM;IAQxB;;OAEG;IACH,SAAS;IAQT,gBAAgB;IAChB,uBAAuB,CACrB,UAAU,EAAE,gBAAgB,EAC5B,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,WAAW,EAAE,WAAW,EACxB,QAAQ,CAAC,EAAE,cAAc,EACzB,sBAAsB,CAAC,EAAE,sBAAsB,EAC/C,SAAS,CAAC,EAAE,MAAM;IAsEpB,gBAAgB;IAChB,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,sBAAsB,GAAG,SAAS;IAIvE,gBAAgB;IAChB,UAAU,CAAC,IAAI,EAAE,eAAe;IA8ChC,gBAAgB;IAChB,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE,OAAO;IA+BtD,gBAAgB;IAChB,IAAI,CAAC,CAAC,SAAS,MAAM,yBAAyB,EAC5C,KAAK,EAAE,CAAC,EACR,GAAG,IAAI,EAAE,UAAU,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,GAChD,OAAO;CAIX"}
1
+ {"version":3,"file":"RemoteParticipant.d.ts","sourceRoot":"","sources":["../../../../src/room/participant/RemoteParticipant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAI7D,OAAO,sBAAsB,MAAM,iCAAiC,CAAC;AAErE,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAE,sBAAsB,EAAe,MAAM,gBAAgB,CAAC;AACrE,OAAO,WAAW,EAAE,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAEvE,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,WAAW;IACxD,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAEjD,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAEjD,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAE5C,YAAY,EAAE,YAAY,CAAC;IAE3B,OAAO,CAAC,MAAM,CAAC,CAAS;IAExB,gBAAgB;IAChB,MAAM,CAAC,mBAAmB,CAAC,YAAY,EAAE,YAAY,EAAE,EAAE,EAAE,eAAe,GAAG,iBAAiB;IAI9F,gBAAgB;gBACJ,YAAY,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAQjE,SAAS,CAAC,mBAAmB,CAAC,WAAW,EAAE,sBAAsB;IA4BjE,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,sBAAsB,GAAG,SAAS;IAOlE,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS;IAOhE;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM;IAQxB;;OAEG;IACH,SAAS;IAQT,gBAAgB;IAChB,uBAAuB,CACrB,UAAU,EAAE,gBAAgB,EAC5B,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,WAAW,EAAE,WAAW,EACxB,QAAQ,CAAC,EAAE,cAAc,EACzB,sBAAsB,CAAC,EAAE,sBAAsB,EAC/C,SAAS,CAAC,EAAE,MAAM;IAsEpB,gBAAgB;IAChB,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,sBAAsB,GAAG,SAAS;IAIvE,gBAAgB;IAChB,UAAU,CAAC,IAAI,EAAE,eAAe;IA2DhC,gBAAgB;IAChB,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE,OAAO;IA+BtD,gBAAgB;IAChB,IAAI,CAAC,CAAC,SAAS,MAAM,yBAAyB,EAC5C,KAAK,EAAE,CAAC,EACR,GAAG,IAAI,EAAE,UAAU,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,GAChD,OAAO;CAIX"}
@@ -1 +1 @@
1
- {"version":3,"file":"LocalVideoTrack.d.ts","sourceRoot":"","sources":["../../../../src/room/track/LocalVideoTrack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAoC,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE9E,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAI5D,qBAAa,kBAAkB;IAC7B,KAAK,EAAE,UAAU,CAAC;IAElB,gBAAgB,EAAE,gBAAgB,CAAC;IAEnC,MAAM,CAAC,EAAE,YAAY,CAAC;IAEtB,SAAS,CAAC,EAAE,wBAAwB,EAAE,CAAC;gBAE3B,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,gBAAgB;CAIlE;AAID,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,UAAU;IAErD,YAAY,CAAC,EAAE,YAAY,CAAC;IAE5B,OAAO,CAAC,SAAS,CAAC,CAAgC;IAElD,OAAO,CAAC,SAAS,CAAC,CAA6B;IAE/C,OAAO,CAAC,eAAe,CAGnB;IAEJ,OAAO,CAAC,gBAAgB,CAAC,CAAoB;gBAG3C,UAAU,EAAE,gBAAgB,EAC5B,WAAW,CAAC,EAAE,qBAAqB,EACnC,iBAAiB,UAAO;IAK1B,IAAI,WAAW,IAAI,OAAO,CAKzB;IAGD,YAAY,CAAC,YAAY,EAAE,YAAY;IAiBvC,IAAI;IAWE,IAAI,IAAI,OAAO,CAAC,eAAe,CAAC;IAYhC,MAAM,IAAI,OAAO,CAAC,eAAe,CAAC;IAWlC,cAAc,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IA2CnD,oBAAoB,CAAC,UAAU,EAAE,YAAY;IAYvC,WAAW,CAAC,QAAQ,EAAE,MAAM;IAY5B,YAAY,CAAC,OAAO,CAAC,EAAE,mBAAmB;IAWhD,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,wBAAwB,EAAE,GAAG,kBAAkB;IAchG,uBAAuB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY;IAgB/D;;;OAGG;IACG,mBAAmB,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAwC3E;;;OAGG;IACG,mBAAmB,CAAC,SAAS,EAAE,iBAAiB,EAAE;IASxD,OAAO,CAAC,aAAa,CA4BnB;cAEc,0BAA0B;CAO3C;AA6DD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAW5D;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,wBAAwB,EAAE,GACrC,UAAU,EAAE,CA2Bd"}
1
+ {"version":3,"file":"LocalVideoTrack.d.ts","sourceRoot":"","sources":["../../../../src/room/track/LocalVideoTrack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAoC,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE9E,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAI5D,qBAAa,kBAAkB;IAC7B,KAAK,EAAE,UAAU,CAAC;IAElB,gBAAgB,EAAE,gBAAgB,CAAC;IAEnC,MAAM,CAAC,EAAE,YAAY,CAAC;IAEtB,SAAS,CAAC,EAAE,wBAAwB,EAAE,CAAC;gBAE3B,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,gBAAgB;CAIlE;AAID,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,UAAU;IAErD,YAAY,CAAC,EAAE,YAAY,CAAC;IAE5B,OAAO,CAAC,SAAS,CAAC,CAAgC;IAElD,OAAO,CAAC,SAAS,CAAC,CAA6B;IAE/C,OAAO,CAAC,eAAe,CAGnB;IAEJ,OAAO,CAAC,gBAAgB,CAAC,CAAoB;gBAG3C,UAAU,EAAE,gBAAgB,EAC5B,WAAW,CAAC,EAAE,qBAAqB,EACnC,iBAAiB,UAAO;IAK1B,IAAI,WAAW,IAAI,OAAO,CAKzB;IAGD,YAAY,CAAC,YAAY,EAAE,YAAY;IAiBvC,IAAI;IAUE,IAAI,IAAI,OAAO,CAAC,eAAe,CAAC;IAYhC,MAAM,IAAI,OAAO,CAAC,eAAe,CAAC;IAWlC,cAAc,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IA2CnD,oBAAoB,CAAC,UAAU,EAAE,YAAY;IAYvC,WAAW,CAAC,QAAQ,EAAE,MAAM;IAY5B,YAAY,CAAC,OAAO,CAAC,EAAE,mBAAmB;IAWhD,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,wBAAwB,EAAE,GAAG,kBAAkB;IAchG,uBAAuB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY;IAgB/D;;;OAGG;IACG,mBAAmB,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAwC3E;;;OAGG;IACG,mBAAmB,CAAC,SAAS,EAAE,iBAAiB,EAAE;IASxD,OAAO,CAAC,aAAa,CA4BnB;cAEc,0BAA0B;CAO3C;AA6DD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAW5D;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,wBAAwB,EAAE,GACrC,UAAU,EAAE,CA2Bd"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "livekit-client",
3
- "version": "1.2.0",
3
+ "version": "1.2.3",
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",
@@ -37,6 +37,7 @@
37
37
  "events": "^3.3.0",
38
38
  "loglevel": "^1.8.0",
39
39
  "protobufjs": "^6.11.2",
40
+ "sdp-transform": "^2.14.1",
40
41
  "ts-debounce": "^3.0.0",
41
42
  "typed-emitter": "^2.1.0",
42
43
  "webrtc-adapter": "^8.1.1"
@@ -51,6 +52,7 @@
51
52
  "@rollup/plugin-json": "^4.1.0",
52
53
  "@rollup/plugin-node-resolve": "^13.1.3",
53
54
  "@types/jest": "^27.0.3",
55
+ "@types/sdp-transform": "^2.4.5",
54
56
  "@types/ws": "^7.4.0",
55
57
  "@typescript-eslint/eslint-plugin": "^4.31.2",
56
58
  "eslint": "^7.32.0",
package/src/index.ts CHANGED
@@ -5,6 +5,7 @@ import Participant, { ConnectionQuality } from './room/participant/Participant';
5
5
  import { ParticipantTrackPermission } from './room/participant/ParticipantTrackPermission';
6
6
  import RemoteParticipant from './room/participant/RemoteParticipant';
7
7
  import Room, { ConnectionState, RoomState } from './room/Room';
8
+ import DefaultReconnectPolicy from './room/DefaultReconnectPolicy';
8
9
  import LocalAudioTrack from './room/track/LocalAudioTrack';
9
10
  import LocalTrack from './room/track/LocalTrack';
10
11
  import LocalTrackPublication from './room/track/LocalTrackPublication';
@@ -51,4 +52,5 @@ export {
51
52
  VideoQuality,
52
53
  ConnectionQuality,
53
54
  ElementInfo,
55
+ DefaultReconnectPolicy,
54
56
  };
package/src/options.ts CHANGED
@@ -4,6 +4,7 @@ import {
4
4
  VideoCaptureOptions,
5
5
  } from './room/track/options';
6
6
  import { AdaptiveStreamSettings } from './room/track/types';
7
+ import { ReconnectPolicy } from './room/ReconnectPolicy';
7
8
 
8
9
  /**
9
10
  * Options for when creating a new room
@@ -53,6 +54,11 @@ export interface RoomOptions {
53
54
  * experimental flag, introduce a delay before sending signaling messages
54
55
  */
55
56
  expSignalLatency?: number;
57
+
58
+ /**
59
+ * policy to use when attempting to reconnect
60
+ */
61
+ reconnectPolicy?: ReconnectPolicy;
56
62
  }
57
63
 
58
64
  /**
@@ -0,0 +1,35 @@
1
+ import { ReconnectContext, ReconnectPolicy } from './ReconnectPolicy';
2
+
3
+ const maxRetryDelay = 7000;
4
+
5
+ const DEFAULT_RETRY_DELAYS_IN_MS = [
6
+ 0,
7
+ 300,
8
+ 2 * 2 * 300,
9
+ 3 * 3 * 300,
10
+ 4 * 4 * 300,
11
+ maxRetryDelay,
12
+ maxRetryDelay,
13
+ maxRetryDelay,
14
+ maxRetryDelay,
15
+ maxRetryDelay,
16
+ ];
17
+
18
+ class DefaultReconnectPolicy implements ReconnectPolicy {
19
+ private readonly _retryDelays: number[];
20
+
21
+ constructor(retryDelays?: number[]) {
22
+ this._retryDelays = retryDelays !== undefined ? [...retryDelays] : DEFAULT_RETRY_DELAYS_IN_MS;
23
+ }
24
+
25
+ public nextRetryDelayInMs(context: ReconnectContext): number | null {
26
+ if (context.retryCount >= this._retryDelays.length) return null;
27
+
28
+ const retryDelay = this._retryDelays[context.retryCount];
29
+ if (context.retryCount <= 1) return retryDelay;
30
+
31
+ return retryDelay + Math.random() * 1_000;
32
+ }
33
+ }
34
+
35
+ export default DefaultReconnectPolicy;
@@ -1,6 +1,14 @@
1
1
  import { debounce } from 'ts-debounce';
2
+ import { MediaDescription, parse, write } from 'sdp-transform';
2
3
  import log from '../logger';
3
4
 
5
+ /** @internal */
6
+ interface TrackBitrateInfo {
7
+ sid: string;
8
+ codec: string;
9
+ maxbr: number;
10
+ }
11
+
4
12
  /** @internal */
5
13
  export default class PCTransport {
6
14
  pc: RTCPeerConnection;
@@ -11,6 +19,8 @@ export default class PCTransport {
11
19
 
12
20
  renegotiate: boolean = false;
13
21
 
22
+ trackBitrates: TrackBitrateInfo[] = [];
23
+
14
24
  onOffer?: (offer: RTCSessionDescriptionInit) => void;
15
25
 
16
26
  constructor(config?: RTCConfiguration) {
@@ -78,11 +88,114 @@ export default class PCTransport {
78
88
  // actually negotiate
79
89
  log.debug('starting to negotiate');
80
90
  const offer = await this.pc.createOffer(options);
91
+
92
+ const sdpParsed = parse(offer.sdp ?? '');
93
+ sdpParsed.media.forEach((media) => {
94
+ if (media.type === 'audio') {
95
+ ensureAudioNack(media);
96
+ } else if (media.type === 'video') {
97
+ // mung sdp for codec bitrate setting that can't apply by sendEncoding
98
+ this.trackBitrates.some((trackbr): boolean => {
99
+ if (!media.msid || !media.msid.includes(trackbr.sid)) {
100
+ return false;
101
+ }
102
+
103
+ let codecPayload = 0;
104
+ media.rtp.some((rtp): boolean => {
105
+ if (rtp.codec.toUpperCase() === trackbr.codec.toUpperCase()) {
106
+ codecPayload = rtp.payload;
107
+ return true;
108
+ }
109
+ return false;
110
+ });
111
+
112
+ // add x-google-max-bitrate to fmtp line if not exist
113
+ if (codecPayload > 0) {
114
+ if (
115
+ !media.fmtp.some((fmtp): boolean => {
116
+ if (fmtp.payload === codecPayload) {
117
+ if (!fmtp.config.includes('x-google-max-bitrate')) {
118
+ fmtp.config += `;x-google-max-bitrate=${trackbr.maxbr}`;
119
+ }
120
+ return true;
121
+ }
122
+ return false;
123
+ })
124
+ ) {
125
+ media.fmtp.push({
126
+ payload: codecPayload,
127
+ config: `x-google-max-bitrate=${trackbr.maxbr}`,
128
+ });
129
+ }
130
+ }
131
+
132
+ return true;
133
+ });
134
+ }
135
+ });
136
+
137
+ offer.sdp = write(sdpParsed);
138
+ this.trackBitrates = [];
139
+
81
140
  await this.pc.setLocalDescription(offer);
82
141
  this.onOffer(offer);
83
142
  }
84
143
 
144
+ async createAndSetAnswer(): Promise<RTCSessionDescriptionInit> {
145
+ const answer = await this.pc.createAnswer();
146
+ const sdpParsed = parse(answer.sdp ?? '');
147
+ sdpParsed.media.forEach((media) => {
148
+ if (media.type === 'audio') {
149
+ ensureAudioNack(media);
150
+ }
151
+ });
152
+ answer.sdp = write(sdpParsed);
153
+ await this.pc.setLocalDescription(answer);
154
+ return answer;
155
+ }
156
+
157
+ setTrackCodecBitrate(sid: string, codec: string, maxbr: number) {
158
+ this.trackBitrates.push({
159
+ sid,
160
+ codec,
161
+ maxbr,
162
+ });
163
+ }
164
+
85
165
  close() {
86
166
  this.pc.close();
87
167
  }
88
168
  }
169
+
170
+ function ensureAudioNack(
171
+ media: {
172
+ type: string;
173
+ port: number;
174
+ protocol: string;
175
+ payloads?: string | undefined;
176
+ } & MediaDescription,
177
+ ) {
178
+ // found opus codec to add nack fb
179
+ let opusPayload = 0;
180
+ media.rtp.some((rtp): boolean => {
181
+ if (rtp.codec === 'opus') {
182
+ opusPayload = rtp.payload;
183
+ return true;
184
+ }
185
+ return false;
186
+ });
187
+
188
+ // add nack rtcpfb if not exist
189
+ if (opusPayload > 0) {
190
+ if (!media.rtcpFb) {
191
+ media.rtcpFb = [];
192
+ }
193
+
194
+ if (!media.rtcpFb.some((fb) => fb.payload === opusPayload && fb.type === 'nack')) {
195
+ media.rtcpFb.push({
196
+ payload: opusPayload,
197
+ type: 'nack',
198
+ });
199
+ }
200
+ }
201
+ }