@livedigital/client 2.12.0-add-onissue-callback.3 → 2.12.0

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 (43) hide show
  1. package/dist/constants/events.d.ts +2 -0
  2. package/dist/engine/DefaultEngineDependenciesFactory.d.ts +4 -3
  3. package/dist/engine/Logger.d.ts +3 -10
  4. package/dist/engine/Peer.d.ts +3 -4
  5. package/dist/engine/PeerConsumer.d.ts +2 -6
  6. package/dist/engine/index.d.ts +5 -10
  7. package/dist/engine/media/index.d.ts +0 -2
  8. package/dist/engine/media/tracks/BaseTrack.d.ts +2 -6
  9. package/dist/engine/media/tracks/PeerTrack.d.ts +4 -0
  10. package/dist/engine/network/Socket.d.ts +2 -5
  11. package/dist/engine/network/index.d.ts +0 -2
  12. package/dist/engine/system/index.d.ts +4 -2
  13. package/dist/engine/wid/types.d.ts +2 -2
  14. package/dist/helpers/retry.d.ts +0 -2
  15. package/dist/index.d.ts +1 -4
  16. package/dist/index.es.js +1 -1
  17. package/dist/index.js +2 -2
  18. package/dist/types/common.d.ts +4 -12
  19. package/dist/types/engine.d.ts +5 -15
  20. package/package.json +1 -1
  21. package/src/constants/events.ts +2 -0
  22. package/src/engine/DefaultEngineDependenciesFactory.ts +13 -18
  23. package/src/engine/Logger.ts +17 -43
  24. package/src/engine/Peer.ts +68 -38
  25. package/src/engine/PeerConsumer.ts +3 -12
  26. package/src/engine/handlers/ChannelEventHandler.ts +1 -4
  27. package/src/engine/handlers/MediaSoupEventHandler.ts +2 -37
  28. package/src/engine/index.ts +22 -55
  29. package/src/engine/media/index.ts +4 -17
  30. package/src/engine/media/tracks/BaseTrack.ts +3 -13
  31. package/src/engine/media/tracks/PeerTrack.ts +31 -12
  32. package/src/engine/network/Socket.ts +3 -10
  33. package/src/engine/network/index.ts +2 -6
  34. package/src/engine/system/index.ts +7 -7
  35. package/src/engine/wid/WebRTCIssueDetector.ts +2 -2
  36. package/src/engine/wid/detectors/NetworkIssueDetector.ts +16 -13
  37. package/src/engine/wid/types.ts +2 -2
  38. package/src/helpers/retry.ts +2 -4
  39. package/src/index.ts +1 -14
  40. package/src/types/common.ts +5 -15
  41. package/src/types/engine.ts +5 -18
  42. package/dist/constants/common.d.ts +0 -11
  43. package/src/constants/common.ts +0 -13
@@ -17,6 +17,8 @@ export declare const PEER_EVENTS: {
17
17
  connectionQualityChanged: string;
18
18
  trackStart: string;
19
19
  trackEnd: string;
20
+ trackPaused: string;
21
+ trackResumed: string;
20
22
  };
21
23
  export declare enum SocketIOEvents {
22
24
  Connected = "connected",
@@ -1,3 +1,4 @@
1
+ import EnhancedEventEmitter from '../EnhancedEventEmitter';
1
2
  import Network from './network';
2
3
  import System from './system';
3
4
  import Media from './media';
@@ -5,10 +6,10 @@ import ChannelEventHandler from './handlers/ChannelEventHandler';
5
6
  import Engine from './index';
6
7
  import MediaSoupEventHandler from './handlers/MediaSoupEventHandler';
7
8
  import WebRTCIssueDetector from './wid/WebRTCIssueDetector';
8
- import { CreateIssueDetectorParams, CreateMediaParams, CreateNetworkParams, CreateSystemParams, EngineDependenciesFactory } from '../types/engine';
9
+ import { CreateIssueDetectorParams, CreateNetworkParams, EngineDependenciesFactory } from '../types/engine';
9
10
  declare class DefaultEngineDependenciesFactory implements EngineDependenciesFactory {
10
- createSystem(params: CreateSystemParams): System;
11
- createMedia(params: CreateMediaParams): Media;
11
+ createSystem(clientEventEmitter: EnhancedEventEmitter): System;
12
+ createMedia(): Media;
12
13
  createNetwork(params: CreateNetworkParams): Network;
13
14
  createChannelEventHandler(engine: Engine): ChannelEventHandler;
14
15
  createMediaSoupEventHandler(engine: Engine): MediaSoupEventHandler;
@@ -1,18 +1,11 @@
1
- import { LogLevel, LogMessageHandler } from '../types/common';
2
- export declare type LoggerConstructorParams = {
3
- namespace: string;
4
- logLevel: LogLevel;
5
- onLogMessage?: LogMessageHandler;
6
- };
1
+ import { LogMessageHandler } from '../types/common';
7
2
  declare class Logger {
8
- #private;
9
3
  private readonly _debug;
10
- private readonly _info;
11
4
  private readonly _warn;
12
5
  private readonly _error;
13
- constructor(params: LoggerConstructorParams);
6
+ private readonly onLogMessage;
7
+ constructor(prefix?: string, onLogMessage?: LogMessageHandler);
14
8
  debug(msg: any, ...meta: any[]): void;
15
- info(msg: any, ...meta: any[]): void;
16
9
  warn(msg: any, ...meta: any[]): void;
17
10
  error(msg: any, ...meta: any[]): void;
18
11
  }
@@ -1,7 +1,6 @@
1
1
  import { ProducerData, ConnectionQuality, PayloadOfPublishedMedia, Role } from '../types/common';
2
2
  import EnhancedEventEmitter from '../EnhancedEventEmitter';
3
3
  import Engine from './index';
4
- import PeerProducer from './PeerProducer';
5
4
  import PeerConsumer from './PeerConsumer';
6
5
  import PeerTrack from './media/tracks/PeerTrack';
7
6
  interface PeerConstructor {
@@ -50,8 +49,8 @@ declare class Peer {
50
49
  private emitConnectionQuality;
51
50
  static getConnectionQualityByScore(score: number): ConnectionQuality;
52
51
  private getAllConsumers;
53
- getAllProducers(): PeerProducer[];
54
- getConsumerByProducerId(producerId: string): PeerConsumer | undefined;
55
- getConsumerById(id: string): PeerConsumer | undefined;
52
+ private getConsumerByProducerId;
53
+ private getConsumerById;
54
+ private getTrackByConsumerId;
56
55
  }
57
56
  export default Peer;
@@ -1,10 +1,6 @@
1
1
  import { MediaKind, RtpEncodingParameters } from 'mediasoup-client/lib/RtpParameters';
2
2
  import { Consumer as MediasoupConsumer } from 'mediasoup-client/lib/types';
3
- import { ConsumerData, LogLevel, SpatialLayerParams } from '../types/common';
4
- export declare type PeerConsumerConstructorParams = {
5
- consumer: MediasoupConsumer;
6
- logLevel: LogLevel;
7
- };
3
+ import { ConsumerData, SpatialLayerParams } from '../types/common';
8
4
  declare class PeerConsumer {
9
5
  score: number;
10
6
  producerScore: number;
@@ -22,7 +18,7 @@ declare class PeerConsumer {
22
18
  readonly appData: ConsumerData;
23
19
  private readonly consumer;
24
20
  private readonly logger;
25
- constructor(params: PeerConsumerConstructorParams);
21
+ constructor(consumer: MediasoupConsumer);
26
22
  get paused(): boolean;
27
23
  pause(): void;
28
24
  resume(): void;
@@ -1,27 +1,21 @@
1
- import { CreateCameraVideoTrackOptions, CreateMicrophoneAudioTrackOptions, CreateScreenMediaOptions, JoinChannelParams, PeerResponse, Role, Track, LogMessageHandler, LogLevel } from '../types/common';
1
+ import { CreateCameraVideoTrackOptions, CreateMicrophoneAudioTrackOptions, CreateScreenMediaOptions, JoinChannelParams, PeerResponse, Role, Track, LogMessageHandler } from '../types/common';
2
2
  import EnhancedEventEmitter from '../EnhancedEventEmitter';
3
3
  import System from './system';
4
4
  import Peer from './Peer';
5
5
  import Network from './network';
6
6
  import Media from './media';
7
- import { EngineDependenciesFactory, IssuesHandler } from '../types/engine';
8
- import { LoadBalancerApiClientParams } from './network/LoadBalancerClient';
7
+ import { CreateNetworkParams, EngineDependenciesFactory } from '../types/engine';
9
8
  declare type EngineParams = {
10
9
  clientEventEmitter: EnhancedEventEmitter;
11
- network: {
12
- loadbalancer: LoadBalancerApiClientParams;
13
- };
14
- dependenciesFactory: EngineDependenciesFactory;
15
- logLevel?: LogLevel;
10
+ network: CreateNetworkParams;
16
11
  onLogMessage?: LogMessageHandler;
17
- onIssues?: IssuesHandler;
12
+ dependenciesFactory: EngineDependenciesFactory;
18
13
  };
19
14
  declare class Engine {
20
15
  system: System;
21
16
  network: Network;
22
17
  media: Media;
23
18
  clientEventEmitter: EnhancedEventEmitter;
24
- logLevel: LogLevel;
25
19
  private readonly peersRepository;
26
20
  private channelEventsHandler;
27
21
  private mediaSoupEventsHandler;
@@ -64,5 +58,6 @@ declare class Engine {
64
58
  private sendJoinChannelRequestWithRetry;
65
59
  private sendJoinChannelRequest;
66
60
  get cahPublish(): boolean;
61
+ private get myPeer();
67
62
  }
68
63
  export default Engine;
@@ -1,13 +1,11 @@
1
1
  import { Device } from 'mediasoup-client';
2
2
  import { RtpCapabilities, RtpCodecCapability } from 'mediasoup-client/lib/RtpParameters';
3
3
  import { CreateScreenVideoTrackOptions, CreateVideoTrackParams, Track } from '../../types/common';
4
- import { CreateMediaParams } from '../../types/engine';
5
4
  declare class Media {
6
5
  #private;
7
6
  isDeviceLoaded: boolean;
8
7
  private device?;
9
8
  private tracks;
10
- constructor(params: CreateMediaParams);
11
9
  get mediasoupDevice(): Device;
12
10
  loadDevice(routerRtpCapabilities: RtpCapabilities): Promise<void>;
13
11
  getTrackCodec(track: Track): RtpCodecCapability | undefined;
@@ -1,18 +1,14 @@
1
1
  import { Producer } from 'mediasoup-client/lib/Producer';
2
2
  import { MediaKind } from 'mediasoup-client/lib/RtpParameters';
3
- import { EncoderConfig, LogLevel, TrackLabel } from '../../../types/common';
3
+ import { EncoderConfig, TrackLabel } from '../../../types/common';
4
4
  import Logger from '../../Logger';
5
- export declare type BaseTrackConstructorParams = {
6
- mediaStreamTrack: MediaStreamTrack;
7
- logLevel: LogLevel;
8
- };
9
5
  declare class BaseTrack {
10
6
  #private;
11
7
  protected encoderConfig: EncoderConfig;
12
8
  private producer?;
13
9
  private label;
14
10
  protected logger: Logger;
15
- constructor(params: BaseTrackConstructorParams);
11
+ constructor(mediaStreamTrack: MediaStreamTrack);
16
12
  get mediaStreamTrack(): MediaStreamTrack;
17
13
  get id(): string;
18
14
  get kind(): MediaKind;
@@ -1,11 +1,14 @@
1
1
  import { PreferredLayersParams, SpatialLayerParams, TrackLabel } from '../../../types/common';
2
2
  import PeerConsumer from '../../PeerConsumer';
3
3
  import Engine from '../../index';
4
+ import EnhancedEventEmitter from '../../../EnhancedEventEmitter';
4
5
  interface PeerTrackConstructor {
5
6
  mediaStreamTrack: MediaStreamTrack;
6
7
  label: TrackLabel;
7
8
  consumer?: PeerConsumer;
8
9
  engine: Engine;
10
+ isPaused: boolean;
11
+ peerEventEmitter: EnhancedEventEmitter;
9
12
  }
10
13
  declare class PeerTrack {
11
14
  #private;
@@ -13,6 +16,7 @@ declare class PeerTrack {
13
16
  readonly label: TrackLabel;
14
17
  readonly consumer?: PeerConsumer;
15
18
  constructor(payload: PeerTrackConstructor);
19
+ get isPaused(): boolean;
16
20
  get consumerId(): string | undefined;
17
21
  get currentSpatialLayer(): number;
18
22
  close(): void;
@@ -1,9 +1,6 @@
1
1
  import { Socket } from 'socket.io-client';
2
2
  import EnhancedEventEmitter from '../../EnhancedEventEmitter';
3
- import { LogLevel, SocketResponse } from '../../types/common';
4
- export declare type SocketIOConstructorParams = {
5
- logLevel: LogLevel;
6
- };
3
+ import { SocketResponse } from '../../types/common';
7
4
  declare class SocketIO {
8
5
  connection?: Socket;
9
6
  connectionError?: string;
@@ -14,7 +11,7 @@ declare class SocketIO {
14
11
  private readonly _observer;
15
12
  private readonly logger;
16
13
  private readonly knownDisconnectReasonsCodes;
17
- constructor(params: SocketIOConstructorParams);
14
+ constructor();
18
15
  get observer(): EnhancedEventEmitter;
19
16
  get id(): string | undefined;
20
17
  connect(serverUrl: string): void;
@@ -1,11 +1,9 @@
1
1
  import { IceParameters, Transport } from 'mediasoup-client/lib/Transport';
2
2
  import { Device } from 'mediasoup-client';
3
3
  import SocketIO from './Socket';
4
- import { LogLevel } from '../../types/common';
5
4
  import LoadBalancerApiClient from './LoadBalancerClient';
6
5
  export declare type NetworkParams = {
7
6
  socketClient: SocketIO;
8
- logLevel: LogLevel;
9
7
  loadBalancerApiClient: LoadBalancerApiClient;
10
8
  };
11
9
  declare class Network {
@@ -1,5 +1,7 @@
1
- import { CreateSystemParams } from '../../types/engine';
2
1
  import EnhancedEventEmitter from '../../EnhancedEventEmitter';
2
+ declare type SystemParams = {
3
+ clientEventEmitter: EnhancedEventEmitter;
4
+ };
3
5
  declare class System {
4
6
  isEnableVideoDevicesLock: boolean;
5
7
  isEnableAudioDevicesLock: boolean;
@@ -9,7 +11,7 @@ declare class System {
9
11
  private isMediaDevicesAccessGranted;
10
12
  clientEventEmitter: EnhancedEventEmitter;
11
13
  private readonly logger;
12
- constructor(params: CreateSystemParams);
14
+ constructor(params: SystemParams);
13
15
  setIsEnableVideoDevicesLock(value: boolean): void;
14
16
  setIsEnableAudioDevicesLock(value: boolean): void;
15
17
  setAvailableVideoDevices(availableVideoDevices: MediaDeviceInfo[]): void;
@@ -13,7 +13,7 @@ export declare enum EventType {
13
13
  }
14
14
  export declare type EventPayload = IssueDetectorResult;
15
15
  export declare type WebRTCIssueDetectorConstructorParams = {
16
- onIssues?: (payload: IssueDetectorResult) => void;
16
+ onIssue?: (payload: IssueDetectorResult) => void;
17
17
  };
18
18
  export declare enum IssueType {
19
19
  Network = "network",
@@ -29,7 +29,7 @@ export declare enum IssueReason {
29
29
  EncoderCPUThrottling = "encoder-cpu-throttling",
30
30
  DecoderCPUThrottling = "decoder-cpu-throttling",
31
31
  ServerIssue = "server-issue",
32
- MOS = "mean-opinion-score"
32
+ LowMOS = "low-mean-opinion-score"
33
33
  }
34
34
  export declare type IssuePayload = {
35
35
  type: IssueType;
@@ -1,10 +1,8 @@
1
- import Logger from '../engine/Logger';
2
1
  export declare type RetryOpts = {
3
2
  maxRetries?: number;
4
3
  minBackoffDelayMs?: number;
5
4
  maxBackoffDelayMs?: number;
6
5
  actionName?: string;
7
- logger?: Logger;
8
6
  };
9
7
  declare const retryAsync: <ReturnType_1>(action: () => Promise<ReturnType_1>, opts?: RetryOpts) => Promise<ReturnType_1>;
10
8
  declare const retry: <ReturnType_1>(action: () => ReturnType_1, opts?: RetryOpts) => Promise<ReturnType_1>;
package/dist/index.d.ts CHANGED
@@ -1,16 +1,13 @@
1
- import { AvailableMediaDevices, CreateCameraVideoTrackOptions, CreateMicrophoneAudioTrackOptions, CreateScreenMediaOptions, JoinChannelParams, LogLevel, LogMessageHandler, Role, Track } from './types/common';
1
+ import { AvailableMediaDevices, CreateCameraVideoTrackOptions, CreateMicrophoneAudioTrackOptions, CreateScreenMediaOptions, JoinChannelParams, LogMessageHandler, Role, Track } from './types/common';
2
2
  import EnhancedEventEmitter from './EnhancedEventEmitter';
3
3
  import Peer from './engine/Peer';
4
4
  import { LoadBalancerApiClientParams } from './engine/network/LoadBalancerClient';
5
- import { IssuesHandler } from './types/engine';
6
5
  declare type ClientParams = {
7
6
  observer?: EnhancedEventEmitter;
8
7
  network?: {
9
8
  loadbalancer?: LoadBalancerApiClientParams;
10
9
  };
11
- logLevel: LogLevel;
12
10
  onLogMessage?: LogMessageHandler;
13
- onIssues?: IssuesHandler;
14
11
  };
15
12
  declare class Client {
16
13
  private readonly engine;