@livedigital/client 3.37.0 → 3.38.0-tt-504-data-channels.1

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 (86) hide show
  1. package/dist/EnhancedEventEmitter.d.ts +13 -15
  2. package/dist/constants/common.d.ts +2 -1
  3. package/dist/constants/common.ts +7 -6
  4. package/dist/constants/videoConstrains.ts +1 -1
  5. package/dist/engine/EventsQueue.d.ts +3 -5
  6. package/dist/engine/handlers/ChannelEventHandler.d.ts +3 -6
  7. package/dist/engine/handlers/ChannelStateSyncEventHandler/types.d.ts +1 -1
  8. package/dist/engine/handlers/MediaSoupEventHandler.d.ts +3 -7
  9. package/dist/engine/media/index.d.ts +5 -2
  10. package/dist/engine/media/streamEffects/ProcessorsCache.d.ts +1 -1
  11. package/dist/engine/media/streamEffects/audio/AudioTrackProcessor.d.ts +1 -1
  12. package/dist/engine/media/streamEffects/audio/asdk/ASDKTrackProcessor.d.ts +2 -2
  13. package/dist/engine/media/streamEffects/audio/noiseSuppression/RNNoiseTrackProcessor.d.ts +1 -1
  14. package/dist/engine/media/streamEffects/video/esdk/TrackProcessor.d.ts +1 -1
  15. package/dist/engine/media/tracks/DefaultVideoTrack.d.ts +1 -1
  16. package/dist/engine/media/tracks/PeerTrack.d.ts +0 -1
  17. package/dist/engine/network/DataChannelsManager.d.ts +3 -7
  18. package/dist/engine/network/index.d.ts +9 -6
  19. package/dist/helpers/common.d.ts +1 -1
  20. package/dist/helpers/retry.d.ts +1 -1
  21. package/dist/index.d.ts +3 -3
  22. package/dist/index.es.js +2 -2
  23. package/dist/index.js +2 -2
  24. package/dist/types/common.d.ts +6 -6
  25. package/dist/types/engine.d.ts +2 -4
  26. package/dist/types/media.d.ts +2 -3
  27. package/dist/types/network.d.ts +0 -1
  28. package/package.json +5 -3
  29. package/src/EnhancedEventEmitter.ts +41 -79
  30. package/src/config/ConfigService.ts +6 -6
  31. package/src/constants/common.ts +7 -6
  32. package/src/constants/videoConstrains.ts +1 -1
  33. package/src/engine/ChannelStateSynchronizer/ChannelStateSynchronizer.ts +7 -0
  34. package/src/engine/EventsQueue.ts +88 -47
  35. package/src/engine/IntegrationsService.ts +6 -5
  36. package/src/engine/LocalMutex.ts +3 -1
  37. package/src/engine/Logger.ts +28 -22
  38. package/src/engine/Peer.ts +28 -11
  39. package/src/engine/PeerConsumer.ts +10 -3
  40. package/src/engine/Peers.ts +6 -4
  41. package/src/engine/RemotePeerTracks.ts +6 -6
  42. package/src/engine/WIDHandler.ts +9 -8
  43. package/src/engine/WebRTCStats/InboundTrackStatsManager.ts +1 -0
  44. package/src/engine/WebRTCStats/OutboudTrackStatsManager.ts +1 -0
  45. package/src/engine/WebRTCStats/TransportsStatsProvider.ts +3 -3
  46. package/src/engine/analyticsApiClient/helper.ts +5 -8
  47. package/src/engine/analyticsApiClient/types.ts +5 -5
  48. package/src/engine/handlers/ChannelAudioObserverEventHandler.ts +8 -1
  49. package/src/engine/handlers/ChannelEventHandler.ts +16 -43
  50. package/src/engine/handlers/ChannelStateSyncEventHandler/ChannelStateConsistencyChecker.ts +6 -0
  51. package/src/engine/handlers/ChannelStateSyncEventHandler/index.ts +15 -8
  52. package/src/engine/handlers/ChannelStateSyncEventHandler/types.ts +1 -1
  53. package/src/engine/handlers/MediaSoupEventHandler.ts +18 -92
  54. package/src/engine/index.ts +41 -19
  55. package/src/engine/media/index.ts +65 -9
  56. package/src/engine/media/streamEffects/ProcessorsCache.ts +4 -3
  57. package/src/engine/media/streamEffects/audio/AudioTrackProcessor.ts +1 -1
  58. package/src/engine/media/streamEffects/audio/asdk/ASDKTrackProcessor.ts +16 -14
  59. package/src/engine/media/streamEffects/audio/noiseSuppression/NoiseSuppressionAudioWorkletNode.ts +1 -1
  60. package/src/engine/media/streamEffects/audio/noiseSuppression/RNNoiseTrackProcessor.ts +12 -2
  61. package/src/engine/media/streamEffects/audio/noiseSuppression/WasmModuleCompiler.ts +2 -1
  62. package/src/engine/media/streamEffects/video/esdk/TrackProcessor.ts +11 -8
  63. package/src/engine/media/tracks/DefaultAudioTrack.ts +9 -3
  64. package/src/engine/media/tracks/DefaultBaseTrack.ts +22 -9
  65. package/src/engine/media/tracks/DefaultVideoTrack.ts +14 -3
  66. package/src/engine/media/tracks/MediaStreamTrackManager.ts +4 -0
  67. package/src/engine/media/tracks/PeerTrack.ts +34 -20
  68. package/src/engine/network/DataChannelsManager.ts +10 -17
  69. package/src/engine/network/LoadBalancerClient.ts +2 -1
  70. package/src/engine/network/Socket.ts +12 -9
  71. package/src/engine/network/index.ts +98 -33
  72. package/src/engine/system/index.ts +7 -5
  73. package/src/helpers/appDataValidator.ts +3 -1
  74. package/src/helpers/common.ts +4 -2
  75. package/src/helpers/loader.ts +19 -14
  76. package/src/helpers/media.ts +1 -1
  77. package/src/helpers/retry.ts +5 -1
  78. package/src/index.ts +13 -21
  79. package/src/inversify.factories.ts +1 -0
  80. package/src/types/channelAudioObserver.ts +2 -2
  81. package/src/types/client.ts +12 -12
  82. package/src/types/common.ts +166 -165
  83. package/src/types/container.ts +1 -1
  84. package/src/types/engine.ts +8 -10
  85. package/src/types/media.ts +12 -11
  86. package/src/types/network.ts +3 -4
@@ -1,18 +1,16 @@
1
1
  import { EventEmitter } from 'events';
2
- export type Events = Record<string, any[]>;
3
- export default class EnhancedEventEmitter<E extends Events = Events> extends EventEmitter {
2
+ type EventMap = Record<PropertyKey, any[]>;
3
+ export default class EnhancedEventEmitter<E extends Record<keyof E, any[]> = EventMap> extends EventEmitter {
4
4
  constructor();
5
- emit<K extends keyof E & string>(eventName: K, ...args: E[K]): boolean;
6
- safeEmit<K extends keyof E & string>(eventName: K, ...args: E[K]): boolean;
7
- on<K extends keyof E & string>(eventName: K, listener: (...args: E[K]) => void): this;
8
- off<K extends keyof E & string>(eventName: K, listener: (...args: E[K]) => void): this;
9
- addListener<K extends keyof E & string>(eventName: K, listener: (...args: E[K]) => void): this;
10
- prependListener<K extends keyof E & string>(eventName: K, listener: (...args: E[K]) => void): this;
11
- once<K extends keyof E & string>(eventName: K, listener: (...args: E[K]) => void): this;
12
- prependOnceListener<K extends keyof E & string>(eventName: K, listener: (...args: E[K]) => void): this;
13
- removeListener<K extends keyof E & string>(eventName: K, listener: (...args: E[K]) => void): this;
14
- removeAllListeners(eventName?: keyof E & string): this;
15
- listenerCount(eventName: keyof E & string): number;
16
- listeners(eventName: keyof E & string): Function[];
17
- rawListeners(eventName: keyof E & string): Function[];
5
+ emit<K extends keyof E & string>(event: K, ...args: E[K]): boolean;
6
+ safeEmit<K extends keyof E & string>(event: K, ...args: E[K]): boolean;
7
+ on<K extends keyof E & string>(e: K, fn: (...a: E[K]) => void): this;
8
+ off<K extends keyof E & string>(e: K, fn: (...a: E[K]) => void): this;
9
+ once<K extends keyof E & string>(e: K, fn: (...a: E[K]) => void): this;
10
+ addListener: <K extends keyof E & string>(event: K, listener: (...a: E[K]) => void) => this;
11
+ removeListener: <K extends keyof E & string>(event: K, listener: (...a: E[K]) => void) => this;
12
+ prependListener: <K extends keyof E & string>(event: K, listener: (...a: E[K]) => void) => this;
13
+ prependOnceListener: <K extends keyof E & string>(event: K, listener: (...a: E[K]) => void) => this;
14
+ removeAllListeners(event?: keyof E & string): this;
18
15
  }
16
+ export {};
@@ -1,5 +1,5 @@
1
1
  import type { LogLevel } from '../types/common';
2
- export declare const SIGNALING_API_VERSION = 4;
2
+ export declare const SIGNALING_API_VERSION = 5;
3
3
  export declare const LOG_LEVEL_ERROR: LogLevel;
4
4
  export declare const LOG_LEVEL_WARN: LogLevel;
5
5
  export declare const LOG_LEVEL_INFO: LogLevel;
@@ -16,6 +16,7 @@ export declare const SECOND_IN_MS = 1000;
16
16
  export declare const TWO_SECONDS_IN_MS: number;
17
17
  export declare const FIVE_SECONDS_IN_MS: number;
18
18
  export declare const TEN_SECONDS_IN_MS: number;
19
+ export declare const FIFTEEN_SECONDS_IN_MS: number;
19
20
  export declare const MINUTE_IN_MS: number;
20
21
  export declare enum HttpStatusCode {
21
22
  Continue = 100,
@@ -2,7 +2,7 @@
2
2
 
3
3
  import type { LogLevel } from '../types/common';
4
4
 
5
- export const SIGNALING_API_VERSION = 4;
5
+ export const SIGNALING_API_VERSION = 5;
6
6
 
7
7
  export const LOG_LEVEL_ERROR: LogLevel = 3;
8
8
  export const LOG_LEVEL_WARN: LogLevel = 4;
@@ -29,11 +29,12 @@ export const DEBOUNCE_LIMIT = 3;
29
29
  export const MEDIASOUP_SSRC_PROBATOR = 1234;
30
30
 
31
31
  export const HALF_SECOND_IN_MS = 500;
32
- export const SECOND_IN_MS = 1000;
33
- export const TWO_SECONDS_IN_MS = 2 * 1000;
34
- export const FIVE_SECONDS_IN_MS = 5 * 1000;
35
- export const TEN_SECONDS_IN_MS = 10 * 1000;
36
- export const MINUTE_IN_MS = 60 * 1000;
32
+ export const SECOND_IN_MS = 1_000;
33
+ export const TWO_SECONDS_IN_MS = 2 * 1_000;
34
+ export const FIVE_SECONDS_IN_MS = 5 * 1_000;
35
+ export const TEN_SECONDS_IN_MS = 10 * 1_000;
36
+ export const FIFTEEN_SECONDS_IN_MS = 15 * 1_000;
37
+ export const MINUTE_IN_MS = 60 * 1_000;
37
38
 
38
39
  export enum HttpStatusCode {
39
40
  // 1xx Informational
@@ -17,5 +17,5 @@ export const SpatialLayer = {
17
17
  export const TemporalLayer = {
18
18
  BASE: 0,
19
19
  MIDDLE: 1,
20
- HIGH: 2
20
+ HIGH: 2,
21
21
  };
@@ -1,14 +1,12 @@
1
1
  import { DataConsumer } from 'mediasoup-client/lib/DataConsumer';
2
- import { Socket } from 'socket.io-client';
3
- import Logger from './Logger';
2
+ import { Logger } from '../types/common';
4
3
  export default class EventsQueue {
5
4
  #private;
6
5
  constructor(loggerFactory: (namespace: string) => Logger);
7
- subscribeToSocket(emmiter: Socket): void;
8
- subscribeToDataChannel(dataChannel: DataConsumer): void;
6
+ subscribe(dataChannel: DataConsumer): void;
9
7
  on(event: string, handler: (...args: any[]) => void | Promise<void>): void;
10
8
  removeListener(event: string): void;
11
- removeAllListeners(events: string[], emitter?: Socket): void;
9
+ removeListeners(events: string[], emitter?: DataConsumer): void;
12
10
  private push;
13
11
  private process;
14
12
  private emit;
@@ -1,20 +1,17 @@
1
1
  import EnhancedEventEmitter from '../../EnhancedEventEmitter';
2
2
  import EventsQueue from '../EventsQueue';
3
3
  import Logger from '../Logger';
4
- import SocketIO from '../network/Socket';
5
4
  import { Peers } from '../Peers';
5
+ import DataChannelsManager from '../network/DataChannelsManager';
6
6
  declare class ChannelEventHandler {
7
7
  #private;
8
8
  private readonly eventsQueue;
9
- private readonly socket;
9
+ private readonly dataChannelsManager;
10
10
  private readonly peers;
11
11
  private readonly clientEventEmitter;
12
- constructor(eventsQueue: EventsQueue, socket: SocketIO, peers: Peers, clientEventEmitter: EnhancedEventEmitter, loggerFactory: (namespace: string) => Logger);
13
- handleDataChannelEvent(payload: string): void;
14
- private doHandleDataChannelEvent;
12
+ constructor(eventsQueue: EventsQueue, dataChannelsManager: DataChannelsManager, peers: Peers, clientEventEmitter: EnhancedEventEmitter, loggerFactory: (namespace: string) => Logger);
15
13
  subscribeToEvents(): void;
16
14
  private removeEventListeners;
17
- private handlePeerAppDataUpdate;
18
15
  reset(): void;
19
16
  }
20
17
  export default ChannelEventHandler;
@@ -1,4 +1,4 @@
1
- export declare enum InconsistenceType {
1
+ export declare enum InconsistencyType {
2
2
  MissingPeer = "missing-peer",
3
3
  MissingProducer = "missing-producer",
4
4
  IncorrectProducerState = "incorrect-producer-state",
@@ -1,23 +1,19 @@
1
1
  import EventsQueue from '../EventsQueue';
2
2
  import Media from '../media';
3
- import Network from '../network';
4
3
  import { Peers } from '../Peers';
5
4
  import EnhancedEventEmitter from '../../EnhancedEventEmitter';
6
- import Logger from '../Logger';
7
- import SocketIO from '../network/Socket';
5
+ import DataChannelsManager from '../network/DataChannelsManager';
8
6
  declare class MediaSoupEventHandler {
9
7
  #private;
10
8
  private readonly eventsQueue;
11
9
  private readonly media;
12
- private readonly network;
13
- private readonly socket;
10
+ private readonly dataChannelsManager;
14
11
  private readonly internalEventEmitter;
15
12
  private readonly peers;
16
13
  private readonly clientEventEmitter;
17
- constructor(eventsQueue: EventsQueue, media: Media, network: Network, socket: SocketIO, internalEventEmitter: EnhancedEventEmitter, peers: Peers, clientEventEmitter: EnhancedEventEmitter, loggerFactory: (namespace: string) => Logger);
14
+ constructor(eventsQueue: EventsQueue, media: Media, dataChannelsManager: DataChannelsManager, internalEventEmitter: EnhancedEventEmitter, peers: Peers, clientEventEmitter: EnhancedEventEmitter);
18
15
  subscribeToEvents(): void;
19
16
  private removeEventListeners;
20
17
  reset(): void;
21
- private handleProducerSetMaxSpatialLayer;
22
18
  }
23
19
  export default MediaSoupEventHandler;
@@ -1,7 +1,7 @@
1
1
  import { Device, type types } from 'mediasoup-client';
2
2
  import ConfigService from '../../config/ConfigService';
3
3
  import EnhancedEventEmitter from '../../EnhancedEventEmitter';
4
- import { CreateCameraVideoTrackOptions, CreateMicrophoneAudioTrackOptions, CreateScreenMediaOptions, CreateVideoTrackParams, TrackLabel, TransformParams } from '../../types/common';
4
+ import { CreateCameraVideoTrackOptions, CreateMicrophoneAudioTrackOptions, CreateScreenMediaOptions, CreateVideoTrackParams, ProducerRequestMaxSpatialLayer, TrackLabel, TransformParams } from '../../types/common';
5
5
  import type { AudioTrackFactory, VideoTrackFactory } from '../../types/container';
6
6
  import { AudioTrack, BaseTrack, InitEffectsSDKParams, TrackWithEncodings } from '../../types/media';
7
7
  import { IntegrationsService } from '../IntegrationsService';
@@ -9,6 +9,7 @@ import Logger from '../Logger';
9
9
  import { ProcessorsCache } from './streamEffects/ProcessorsCache';
10
10
  import EffectsSDKTrackProcessor from './streamEffects/video/esdk/TrackProcessor';
11
11
  import MediaStreamTrackManager from './tracks/MediaStreamTrackManager';
12
+ import SocketIO from '../network/Socket';
12
13
  export interface DenoiserFallbackContext {
13
14
  reason: string;
14
15
  options?: CreateMicrophoneAudioTrackOptions;
@@ -24,10 +25,11 @@ declare class Media {
24
25
  private readonly processorsCache;
25
26
  private readonly videoTrackFactory;
26
27
  private readonly mediaStreamTrackManager;
28
+ private readonly socket;
27
29
  isDeviceLoaded: boolean;
28
30
  private device?;
29
31
  private readonly tracks;
30
- constructor(config: ConfigService, loggerFactory: (namespace: string) => Logger, audioTrackFactory: AudioTrackFactory, clientEventEmitter: EnhancedEventEmitter, integrationsService: IntegrationsService, processorsCache: ProcessorsCache, videoTrackFactory: VideoTrackFactory, mediaStreamTrackManager: MediaStreamTrackManager);
32
+ constructor(config: ConfigService, loggerFactory: (namespace: string) => Logger, audioTrackFactory: AudioTrackFactory, clientEventEmitter: EnhancedEventEmitter, integrationsService: IntegrationsService, processorsCache: ProcessorsCache, videoTrackFactory: VideoTrackFactory, mediaStreamTrackManager: MediaStreamTrackManager, socket: SocketIO);
31
33
  get mediasoupDevice(): Device;
32
34
  get effectsSDKInitialized(): boolean;
33
35
  get effectsSDKParams(): InitEffectsSDKParams | null;
@@ -48,6 +50,7 @@ declare class Media {
48
50
  initDenoiser(track: AudioTrack, options?: CreateMicrophoneAudioTrackOptions): Promise<void>;
49
51
  fallbackToRNoise(track: AudioTrack, context: DenoiserFallbackContext): Promise<void>;
50
52
  createEffectsSDKTrackProcessor(trackLabel?: TrackLabel): Promise<EffectsSDKTrackProcessor>;
53
+ handleProducerSetMaxSpatialLayer({ producerId, spatialLayer: rawSpatialLayer, }: ProducerRequestMaxSpatialLayer): Promise<void>;
51
54
  static getVideoTrackTransformParams(track: MediaStreamTrack): TransformParams;
52
55
  static getScreenVideoTrackParams(options?: CreateScreenMediaOptions): CreateVideoTrackParams;
53
56
  static getCameraVideoTrackParams(options?: CreateCameraVideoTrackOptions): CreateVideoTrackParams;
@@ -7,5 +7,5 @@ export declare class ProcessorsCache {
7
7
  get(type: ProcessorType, label: TrackLabel): AudioTrackProcessor | undefined;
8
8
  has(type: ProcessorType, label: TrackLabel): boolean;
9
9
  private getKey;
10
- reset(): Promise<void>;
10
+ reset(): void;
11
11
  }
@@ -1,6 +1,6 @@
1
1
  export interface AudioTrackProcessor {
2
2
  readonly type: 'asdk' | 'rnnoise';
3
3
  processTrack: (track: MediaStreamTrack) => Promise<MediaStreamTrack>;
4
- stopProcessing: () => Promise<void>;
4
+ stopProcessing: () => void;
5
5
  get isProcessing(): boolean;
6
6
  }
@@ -25,7 +25,7 @@ interface ErrorObject {
25
25
  code?: ErrorCode;
26
26
  emitter?: ErrorEmitter;
27
27
  cause?: Error;
28
- data?: any;
28
+ data?: unknown;
29
29
  }
30
30
  declare global {
31
31
  interface Window {
@@ -46,7 +46,7 @@ export declare class ASDKTrackProcessor implements AudioTrackProcessor {
46
46
  init(): Promise<void>;
47
47
  get isProcessing(): boolean;
48
48
  processTrack(track: MediaStreamTrack): Promise<MediaStreamTrack>;
49
- stopProcessing(): Promise<void>;
49
+ stopProcessing(): void;
50
50
  getUpdatedDebounceCounter(errorCode: number): number;
51
51
  onError(error: ErrorObject): void;
52
52
  }
@@ -10,6 +10,6 @@ export default class RNNoiseTrackProcessor implements AudioTrackProcessor {
10
10
  constructor(params: TrackProcessorParams);
11
11
  get isProcessing(): boolean;
12
12
  processTrack(track: MediaStreamTrack): Promise<MediaStreamTrack>;
13
- stopProcessing(): Promise<void>;
13
+ stopProcessing(): void;
14
14
  }
15
15
  export {};
@@ -62,7 +62,7 @@ export default class EffectsSDKTrackProcessor {
62
62
  get isReady(): boolean;
63
63
  setOnLoadModels(callback: () => void): void;
64
64
  onReady(): void;
65
- processTrack(track: MediaStreamTrack): Promise<MediaStreamTrack>;
65
+ processTrack(track: MediaStreamTrack): MediaStreamTrack;
66
66
  stopProcessing(): void;
67
67
  updateEffects(effects?: Effects): void;
68
68
  }
@@ -25,7 +25,7 @@ declare class DefaultVideoTrack extends DefaultBaseTrack implements VideoTrack {
25
25
  publish(params?: VideoTrackPublishParams): Promise<void>;
26
26
  adjustEncodingPresetToCurrentMaxSpatialLayer(maxSpatialLayer: number): Promise<void>;
27
27
  applyEffects(effects: Effects): Promise<void>;
28
- resetEffects(): Promise<void>;
28
+ resetEffects(): void;
29
29
  setOnLoadModels(callback: () => void): void;
30
30
  get modelsLoadProgress(): number;
31
31
  pause(): Promise<void>;
@@ -38,7 +38,6 @@ interface PeerTrackObserverEvents {
38
38
  [PEER_EVENTS.trackFailed]: [PeerTrack];
39
39
  [PEER_EVENTS.trackPaused]: [PeerTrack];
40
40
  [PEER_EVENTS.trackResumed]: [PeerTrack];
41
- [event: string]: any[];
42
41
  }
43
42
  declare class PeerTrack {
44
43
  #private;
@@ -1,25 +1,21 @@
1
+ import { DataConsumer } from 'mediasoup-client/lib/DataConsumer';
1
2
  import Logger from '../Logger';
2
3
  import Network from '.';
3
- import ChannelEventHandler from '../handlers/ChannelEventHandler';
4
4
  import ChannelAudioObserverEventHandler from '../handlers/ChannelAudioObserverEventHandler';
5
5
  import ChannelStateSyncEventHandler from '../handlers/ChannelStateSyncEventHandler';
6
6
  import EventsQueue from '../EventsQueue';
7
7
  import { CallState } from '../CallState';
8
8
  import { MyPeer } from '../MyPeer';
9
- import type { IPeersService } from '../Peers';
10
- import MediaSoupEventHandler from '../handlers/MediaSoupEventHandler';
11
9
  declare class DataChannelsManager {
12
10
  #private;
13
11
  private readonly state;
14
12
  private readonly myPeer;
15
13
  readonly network: Network;
16
- private readonly channelEventsHandler;
17
14
  private readonly eventsQueue;
18
- private readonly peers;
19
- private readonly mediaSoupEventsHandler;
20
15
  private readonly channelAudioObserverEventHandler;
21
16
  private readonly channelStateSyncEventHandler;
22
- constructor(state: CallState, loggerFactory: (namespace: string) => Logger, myPeer: MyPeer, network: Network, channelEventsHandler: ChannelEventHandler, eventsQueue: EventsQueue, peers: IPeersService, mediaSoupEventsHandler: MediaSoupEventHandler, channelAudioObserverEventHandler: ChannelAudioObserverEventHandler, channelStateSyncEventHandler: ChannelStateSyncEventHandler);
17
+ constructor(state: CallState, loggerFactory: (namespace: string) => Logger, myPeer: MyPeer, network: Network, eventsQueue: EventsQueue, channelAudioObserverEventHandler: ChannelAudioObserverEventHandler, channelStateSyncEventHandler: ChannelStateSyncEventHandler);
18
+ get generalDataConsumer(): DataConsumer | undefined;
23
19
  createAllDataChannels(): Promise<void>;
24
20
  closeAllDataChannels(): void;
25
21
  private createAudioObserver;
@@ -2,17 +2,19 @@ import { Device, type types } from 'mediasoup-client';
2
2
  import { IceParameters, Transport } from 'mediasoup-client/lib/Transport';
3
3
  import EnhancedEventEmitter from '../../EnhancedEventEmitter';
4
4
  import { CreateConsumerPayload, CreateConsumerResponse, CreateDataConsumerPayload, PeerResponse, Role, SocketResponse, TransportsStateInfo, UpdatePeerAppDataPayload } from '../../types/common';
5
- import { LDTransport } from '../../types/mediasoup';
6
5
  import { NetworkObserverEvents } from '../../types/network';
7
6
  import { CallState } from '../CallState';
8
7
  import Logger from '../Logger';
9
8
  import { MyPeer } from '../MyPeer';
10
9
  import SocketIO from './Socket';
10
+ import { LDTransport } from '../../types/mediasoup';
11
+ import { ClientObserverEvents } from '../../types/engine';
11
12
  declare class Network {
12
13
  #private;
13
14
  private readonly state;
14
15
  private readonly myPeer;
15
16
  private readonly socket;
17
+ private readonly clientEventEmitter;
16
18
  sendTransport?: Transport;
17
19
  receiveTransport?: Transport;
18
20
  signalingDataProducer?: types.DataProducer;
@@ -20,16 +22,16 @@ declare class Network {
20
22
  private signalingConsumerId?;
21
23
  private preferRelay?;
22
24
  peersLoaded: boolean;
23
- constructor(state: CallState, myPeer: MyPeer, loggerFactory: (namespace: string) => Logger, socket: SocketIO);
25
+ constructor(state: CallState, myPeer: MyPeer, loggerFactory: (namespace: string) => Logger, socket: SocketIO, clientEventEmitter: EnhancedEventEmitter<ClientObserverEvents>);
24
26
  get isNetworkActive(): boolean;
25
27
  get observer(): EnhancedEventEmitter<NetworkObserverEvents>;
26
28
  get isSocketConnectionActive(): boolean;
27
29
  checkSocketConnectionActivity(): void;
28
30
  private removeEventListeners;
29
- reset(): Promise<void>;
31
+ reset(): void;
30
32
  closeRemoteProducer(producerId: string): Promise<void>;
31
- closeSendTransport(): Promise<void>;
32
- closeReceiveTransport(): Promise<void>;
33
+ closeSendTransport(): void;
34
+ closeReceiveTransport(): void;
33
35
  closeConnectionTransport(): Promise<void>;
34
36
  private closeTransport;
35
37
  createSendTransport(mediasoupDevice: Device): Promise<LDTransport>;
@@ -58,7 +60,8 @@ declare class Network {
58
60
  }>;
59
61
  private getParsedTransportStats;
60
62
  private logTransportDetails;
61
- private stopRestartIceAtempts;
63
+ private stopRestartIceAttempts;
62
64
  private subscribeCommonTransportEvents;
65
+ private checkTransportState;
63
66
  }
64
67
  export default Network;
@@ -7,7 +7,7 @@ declare global {
7
7
  type PlainObject = Record<string, unknown>;
8
8
  export declare function isObject(value: unknown): value is PlainObject;
9
9
  export declare function deepEqualObject(object1: PlainObject, object2: PlainObject): boolean;
10
- export declare function debounce<T extends (...args: any[]) => void>(callback: T, delay: number, immediate?: boolean): (this: unknown, ...args: Parameters<typeof callback>) => void;
10
+ export declare function debounce<T extends (...args: unknown[]) => void>(callback: T, delay: number, immediate?: boolean): (this: unknown, ...args: Parameters<typeof callback>) => void;
11
11
  export declare function prepareLogLevel(level?: LogLevel): LogLevel;
12
12
  export declare function isAnalyticsActive(flag?: boolean): boolean;
13
13
  export declare function randomString(): string;
@@ -9,6 +9,6 @@ export interface RetryOpts {
9
9
  onError?: (error: any) => Promise<void>;
10
10
  }
11
11
  declare const retryAsync: <ReturnType>(action: () => Promise<ReturnType>, opts?: RetryOpts) => Promise<ReturnType>;
12
- declare const retry: <ReturnType>(action: () => ReturnType, opts?: RetryOpts) => Promise<ReturnType>;
12
+ declare const retry: <ReturnType extends () => ReturnType>(action: () => ReturnType, opts?: RetryOpts) => Promise<ReturnType>;
13
13
  export { retryAsync };
14
14
  export default retry;
package/dist/index.d.ts CHANGED
@@ -9,13 +9,13 @@ import type { TransportsWebRTCStats } from './engine/WebRTCStats/types';
9
9
  declare class Client {
10
10
  #private;
11
11
  private readonly clientEventEmitter;
12
+ readonly canUseNoiseSuppression = true;
12
13
  constructor(params: ClientParams);
13
14
  get observer(): EnhancedEventEmitter<ClientObserverEvents>;
14
15
  get id(): string | undefined;
15
16
  get peers(): Peer[];
16
17
  get availableVideoDevices(): MediaDeviceInfo[];
17
18
  get availableAudioDevices(): MediaDeviceInfo[];
18
- get canUseNoiseSuppression(): boolean;
19
19
  get effectsSDKInitialized(): boolean;
20
20
  detectDevices(force?: boolean): Promise<AvailableMediaDevices>;
21
21
  initEffectsSDK(): Promise<boolean>;
@@ -25,8 +25,8 @@ declare class Client {
25
25
  createCameraVideoTrack(options?: CreateCameraVideoTrackOptions): Promise<VideoTrack>;
26
26
  createMicrophoneAudioTrack(options?: CreateMicrophoneAudioTrackOptions): Promise<AudioTrack>;
27
27
  createScreenMediaTracks(options?: CreateScreenMediaOptions): Promise<Track[]>;
28
- createCustomAudioTrack(options: CreateCustomAudioOptions): Promise<Track>;
29
- createCustomVideoTrack(options: CreateCustomVideoOptions): Promise<Track>;
28
+ createCustomAudioTrack(options: CreateCustomAudioOptions): Track;
29
+ createCustomVideoTrack(options: CreateCustomVideoOptions): Track;
30
30
  deleteTrack(track: Track): Promise<void>;
31
31
  loadPeers(role?: Role): Promise<void>;
32
32
  updateAppData(appData: Record<string, unknown>): Promise<void>;