UNPKG

@observertc/client-monitor-js

Version:

ObserveRTC Client Integration Javascript Library

171 lines (170 loc) 7.76 kB
import { ClientMonitor } from "./ClientMonitor"; import { CertificateMonitor } from "./monitors/CertificateMonitor"; import { CodecMonitor } from "./monitors/CodecMonitor"; import { DataChannelMonitor } from "./monitors/DataChannelMonitor"; import { IceCandidateMonitor } from "./monitors/IceCandidateMonitor"; import { IceCandidatePairMonitor } from "./monitors/IceCandidatePairMonitor"; import { IceTransportMonitor } from "./monitors/IceTransportMonitor"; import { InboundRtpMonitor } from "./monitors/InboundRtpMonitor"; import { InboundTrackMonitor } from "./monitors/InboundTrackMonitor"; import { MediaPlayoutMonitor } from "./monitors/MediaPlayoutMonitor"; import { MediaSourceMonitor } from "./monitors/MediaSourceMonitor"; import { OutboundRtpMonitor } from "./monitors/OutboundRtpMonitor"; import { OutboundTrackMonitor } from "./monitors/OutboundTrackMonitor"; import { PeerConnectionMonitor } from "./monitors/PeerConnectionMonitor"; import { PeerConnectionTransportMonitor } from "./monitors/PeerConnectionTransportMonitor"; import { RemoteInboundRtpMonitor } from "./monitors/RemoteInboundRtpMonitor"; import { RemoteOutboundRtpMonitor } from "./monitors/RemoteOutboundRtpMonitor"; import { ClientSample } from "./schema/ClientSample"; import { RtcStats } from "./schema/W3cStatsIdentifiers"; export type ClientIssue = { type: string; payload?: Record<string, unknown> | boolean | string | number; timestamp: number; }; export type ClientEvent = { type: string; payload?: Record<string, unknown> | boolean | string | number; timestamp: number; }; export type ClientMetaData = { type: string; payload?: Record<string, unknown> | boolean | string | number; timestamp: number; }; export type ExtensionStat = { type: string; payload?: Record<string, unknown> | boolean | string | number; }; export type ClientMonitorBaseEvent = { clientMonitor: ClientMonitor; }; export type SampleCreatedEventPayload = ClientMonitorBaseEvent & { sample: ClientSample; }; export type StatsCollectedEventPayload = ClientMonitorBaseEvent & { startedAt: number; durationOfCollectingStatsInMs: number; collectedStats: [string, RtcStats[]][]; }; export type CongestionEventPayload = ClientMonitorBaseEvent & { peerConnectionMonitor: PeerConnectionMonitor; availableIncomingBitrate: number; availableOutgoingBitrate: number; maxAvailableIncomingBitrate: number; maxAvailableOutgoingBitrate: number; maxReceivingBitrate: number; maxSendingBitrate: number; }; export type AudioDesyncTrackEventPayload = ClientMonitorBaseEvent & { trackMonitor: InboundTrackMonitor; }; export type SynthesizedAudioEventPayload = ClientMonitorBaseEvent & { mediaPlayoutMonitor: MediaPlayoutMonitor; }; export type FreezedVideoTrackEventPayload = ClientMonitorBaseEvent & { trackMonitor: InboundTrackMonitor; }; export type DryInboundTrackEventPayload = ClientMonitorBaseEvent & { trackMonitor: InboundTrackMonitor; }; export type DryOutboundTrackEventPayload = ClientMonitorBaseEvent & { trackMonitor: OutboundTrackMonitor; }; export type TooLongPcConnectionEstablishmentEventPayload = ClientMonitorBaseEvent & { peerConnectionMonitor: PeerConnectionMonitor; }; export type IceTupleChangedEventPayload = ClientMonitorBaseEvent & { peerConnectionMonitor: PeerConnectionMonitor; }; export type InboundVideoPlayoutDiscrepancyEventPayload = ClientMonitorBaseEvent & { trackMonitor: InboundTrackMonitor; }; export type ScoreEventPayload = ClientMonitorBaseEvent & { clientScore: number; currentReasons: Record<string, number>; }; export type NewCodecMonitorEventPayload = ClientMonitorBaseEvent & { codecMonitor: CodecMonitor; }; export type NewPeerConnectionMonitorEventPayload = ClientMonitorBaseEvent & { peerConnectionMonitor: PeerConnectionMonitor; }; export type NewInboundRtpMonitorEventPayload = ClientMonitorBaseEvent & { inboundRtpMonitor: InboundRtpMonitor; }; export type NewInboundTrackMonitorEventPayload = ClientMonitorBaseEvent & { inboundTrackMonitor: InboundTrackMonitor; }; export type NewOutboundTrackMonitorEventPayload = ClientMonitorBaseEvent & { outboundTrackMonitor: OutboundTrackMonitor; }; export type NewOutboundRtpMonitorEventPayload = ClientMonitorBaseEvent & { outboundRtpMonitor: OutboundRtpMonitor; }; export type NewDataChannelMonitorEventPayload = ClientMonitorBaseEvent & { dataChannelMonitor: DataChannelMonitor; }; export type NewIceCandidateMonitorPayload = ClientMonitorBaseEvent & { iceCandidateMonitor: IceCandidateMonitor; }; export type NewIceCandidatePairMonitorEventPayload = ClientMonitorBaseEvent & { iceCandidatePairMonitor: IceCandidatePairMonitor; }; export type NewIceTransportMonitorEventPayload = ClientMonitorBaseEvent & { iceTransportMonitor: IceTransportMonitor; }; export type NewMediaPlayoutMonitorEventPayload = ClientMonitorBaseEvent & { mediaPlayoutMonitor: MediaPlayoutMonitor; }; export type NewMediaSourceMonitorEventPayload = ClientMonitorBaseEvent & { mediaSourceMonitor: MediaSourceMonitor; }; export type NewPeerConnectionTransportMonitorEventPayload = ClientMonitorBaseEvent & { peerConnectionTransportMonitor: PeerConnectionTransportMonitor; }; export type NewRemoteInboundRtpMonitorEventPayload = ClientMonitorBaseEvent & { remoteInboundRtpMonitor: RemoteInboundRtpMonitor; }; export type NewRemoteOutboundRtpMonitorEventPayload = ClientMonitorBaseEvent & { remoteOutboundRtpMonitor: RemoteOutboundRtpMonitor; }; export type NewCertificateMonitorEventPayload = ClientMonitorBaseEvent & { certificateMonitor: CertificateMonitor; }; export type ClientMonitorEvents = { 'sample-created': [SampleCreatedEventPayload]; "stats-collected": [StatsCollectedEventPayload]; 'close': []; 'issue': [ClientIssue]; 'client-event': [ClientEvent]; 'meta': [ClientMetaData]; 'extension-stats': [ExtensionStat]; 'congestion': [CongestionEventPayload]; 'cpulimitation': [ClientMonitorBaseEvent]; 'audio-desync-track': [AudioDesyncTrackEventPayload]; 'synthesized-audio': [SynthesizedAudioEventPayload]; 'freezed-video-track': [FreezedVideoTrackEventPayload]; 'dry-inbound-track': [DryInboundTrackEventPayload]; 'dry-outbound-track': [DryOutboundTrackEventPayload]; 'ice-tuple-changed': [IceTupleChangedEventPayload]; 'too-long-pc-connection-establishment': [TooLongPcConnectionEstablishmentEventPayload]; 'inbound-video-playout-discrepancy': [InboundVideoPlayoutDiscrepancyEventPayload]; 'score': [ScoreEventPayload]; 'new-codec-monitor': [NewCodecMonitorEventPayload]; 'new-peerconnnection-monitor': [NewPeerConnectionMonitorEventPayload]; 'new-inbound-rtp-monitor': [NewInboundRtpMonitorEventPayload]; 'new-inbound-track-monitor': [NewInboundTrackMonitorEventPayload]; 'new-outbound-track-monitor': [NewOutboundTrackMonitorEventPayload]; 'new-outbound-rtp-monitor': [NewOutboundRtpMonitorEventPayload]; 'new-data-channel-monitor': [NewDataChannelMonitorEventPayload]; 'new-ice-transport-monitor': [NewIceTransportMonitorEventPayload]; 'new-ice-candidate-monitor': [NewIceCandidateMonitorPayload]; 'new-ice-candidate-pair-monitor': [NewIceCandidatePairMonitorEventPayload]; 'new-media-playout-monitor': [NewMediaPlayoutMonitorEventPayload]; 'new-media-source-monitor': [NewMediaSourceMonitorEventPayload]; 'new-peer-connection-transport-monitor': [NewPeerConnectionTransportMonitorEventPayload]; 'new-remote-inbound-rtp-monitor': [NewRemoteInboundRtpMonitorEventPayload]; 'new-remote-outbound-rtp-monitor': [NewRemoteOutboundRtpMonitorEventPayload]; 'new-certificate-monitor': [NewCertificateMonitorEventPayload]; };