@livedigital/client 3.48.0 → 3.49.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.
- package/LICENSE +1 -1
- package/dist/constants/encodings.d.ts +3 -3
- package/dist/constants/encodings.ts +3 -3
- package/dist/engine/handlers/ChannelAudioObserverEventHandler.d.ts +3 -1
- package/dist/engine/handlers/ChannelAudioObserverMissingProducerRestorer.d.ts +10 -0
- package/dist/engine/handlers/MediaEventHandler.d.ts +0 -1
- package/dist/engine/index.d.ts +7 -4
- package/dist/engine/network/DatachannelHeartbeater.d.ts +2 -2
- package/dist/engine/network/NetworkTransportPolicyManager.d.ts +22 -0
- package/dist/engine/network/index.d.ts +10 -8
- package/dist/index.d.ts +2 -0
- package/dist/index.es.js +2 -2
- package/dist/index.js +2 -2
- package/dist/inversify.tokens.d.ts +3 -1
- package/dist/types/network.d.ts +6 -6
- package/package.json +2 -3
- package/src/ClientMetaProvider.ts +0 -41
- package/src/EnhancedEventEmitter.ts +0 -75
- package/src/config/ConfigService.ts +0 -66
- package/src/constants/common.ts +0 -85
- package/src/constants/encodings.ts +0 -26
- package/src/constants/events.ts +0 -126
- package/src/constants/mutex.ts +0 -6
- package/src/constants/stats.ts +0 -1
- package/src/constants/videoConstrains.ts +0 -21
- package/src/engine/CallState.ts +0 -19
- package/src/engine/ChannelStateSynchronizer/ChannelStateSynchronizer.ts +0 -448
- package/src/engine/ChannelStateSynchronizer/types.ts +0 -22
- package/src/engine/EventsQueue.ts +0 -255
- package/src/engine/IntegrationsService.ts +0 -163
- package/src/engine/LocalMutex.ts +0 -45
- package/src/engine/Logger.ts +0 -234
- package/src/engine/MyPeer.ts +0 -25
- package/src/engine/Peer.ts +0 -602
- package/src/engine/PeerConsumer.ts +0 -276
- package/src/engine/PeerProducer.ts +0 -50
- package/src/engine/Peers.ts +0 -150
- package/src/engine/PeersStorage.ts +0 -45
- package/src/engine/RemotePeerTracks.ts +0 -73
- package/src/engine/WIDHandler.ts +0 -166
- package/src/engine/WebRTCStats/ConnectionStatsManager.ts +0 -31
- package/src/engine/WebRTCStats/InboundTrackStatsManager.ts +0 -51
- package/src/engine/WebRTCStats/OutboudTrackStatsManager.ts +0 -51
- package/src/engine/WebRTCStats/StatsHandler.ts +0 -80
- package/src/engine/WebRTCStats/TransportsStatsProvider.ts +0 -123
- package/src/engine/WebRTCStats/types.ts +0 -20
- package/src/engine/analyticsApiClient/LogApi.ts +0 -24
- package/src/engine/analyticsApiClient/MetricsApi.ts +0 -30
- package/src/engine/analyticsApiClient/helper.ts +0 -88
- package/src/engine/analyticsApiClient/index.ts +0 -42
- package/src/engine/analyticsApiClient/types.ts +0 -33
- package/src/engine/handlers/ChannelAudioObserverEventHandler.ts +0 -177
- package/src/engine/handlers/ChannelEventHandler.ts +0 -268
- package/src/engine/handlers/ChannelStateSyncEventHandler/ChannelStateConsistencyCheckResult.ts +0 -31
- package/src/engine/handlers/ChannelStateSyncEventHandler/ChannelStateConsistencyChecker.ts +0 -146
- package/src/engine/handlers/ChannelStateSyncEventHandler/consts.ts +0 -7
- package/src/engine/handlers/ChannelStateSyncEventHandler/index.ts +0 -342
- package/src/engine/handlers/ChannelStateSyncEventHandler/types.ts +0 -21
- package/src/engine/handlers/MediaEventHandler.ts +0 -273
- package/src/engine/index.ts +0 -793
- package/src/engine/media/index.ts +0 -574
- package/src/engine/media/producer/PendingClosureProducerStorage.ts +0 -37
- package/src/engine/media/producer/ProducerCloseManager.ts +0 -115
- package/src/engine/media/streamEffects/ProcessorsCache.ts +0 -41
- package/src/engine/media/streamEffects/audio/AudioTrackProcessor.ts +0 -7
- package/src/engine/media/streamEffects/audio/asdk/ASDKTrackProcessor.ts +0 -275
- package/src/engine/media/streamEffects/audio/asdk/atsrb.d.ts +0 -36
- package/src/engine/media/streamEffects/audio/asdk/errorBus.d.ts +0 -47
- package/src/engine/media/streamEffects/audio/noiseSuppression/NoiseSuppressionAudioWorkletNode.ts +0 -35
- package/src/engine/media/streamEffects/audio/noiseSuppression/NoiseSuppressionNodeProvider.ts +0 -44
- package/src/engine/media/streamEffects/audio/noiseSuppression/NoiseSuppressionScriptProcessorNode.ts +0 -69
- package/src/engine/media/streamEffects/audio/noiseSuppression/RNNoiseTrackProcessor.ts +0 -134
- package/src/engine/media/streamEffects/audio/noiseSuppression/WasmModuleCompiler.ts +0 -9
- package/src/engine/media/streamEffects/video/esdk/TrackProcessor.ts +0 -386
- package/src/engine/media/streamEffects/video/esdk/components/component.d.ts +0 -35
- package/src/engine/media/streamEffects/video/esdk/components/countdown/countdown.d.ts +0 -27
- package/src/engine/media/streamEffects/video/esdk/components/lower-third/collection/doubleSlideRect.d.ts +0 -33
- package/src/engine/media/streamEffects/video/esdk/components/lower-third/collection/horizontalMirror.d.ts +0 -29
- package/src/engine/media/streamEffects/video/esdk/components/lower-third/collection/leftTextbox.d.ts +0 -31
- package/src/engine/media/streamEffects/video/esdk/components/lower-third/collection/slideBold.d.ts +0 -41
- package/src/engine/media/streamEffects/video/esdk/components/lower-third/collection/twoSideRects/animatedBox.d.ts +0 -59
- package/src/engine/media/streamEffects/video/esdk/components/lower-third/collection/twoSideRects/twoSlideRects.d.ts +0 -27
- package/src/engine/media/streamEffects/video/esdk/components/lower-third/lowerThird.d.ts +0 -83
- package/src/engine/media/streamEffects/video/esdk/components/overlay-screen/overlayScreen.d.ts +0 -40
- package/src/engine/media/streamEffects/video/esdk/components/overlay-screen/overlaySprite.d.ts +0 -10
- package/src/engine/media/streamEffects/video/esdk/components/stickers/stickerSprite.d.ts +0 -51
- package/src/engine/media/streamEffects/video/esdk/components/stickers/stickers.d.ts +0 -54
- package/src/engine/media/streamEffects/video/esdk/components/utils/positionHelper.d.ts +0 -14
- package/src/engine/media/streamEffects/video/esdk/components/waterMark/waterMark.d.ts +0 -20
- package/src/engine/media/streamEffects/video/esdk/tsvb.d.ts +0 -187
- package/src/engine/media/streamEffects/video/esdk/utils/errorBus.d.ts +0 -42
- package/src/engine/media/tracks/DefaultAudioTrack.ts +0 -178
- package/src/engine/media/tracks/DefaultBaseTrack.ts +0 -592
- package/src/engine/media/tracks/DefaultVideoTrack.ts +0 -301
- package/src/engine/media/tracks/MediaStreamTrackManager.ts +0 -50
- package/src/engine/media/tracks/PeerTrack.ts +0 -558
- package/src/engine/network/DataChannelsManager.ts +0 -164
- package/src/engine/network/DatachannelHeartbeater.ts +0 -122
- package/src/engine/network/SignalingHeartbeater.ts +0 -55
- package/src/engine/network/index.ts +0 -961
- package/src/engine/signalingApiClient/SignalingApiClient.ts +0 -95
- package/src/engine/signalingApiClient/api.ts +0 -2289
- package/src/engine/system/index.ts +0 -221
- package/src/errors/AlreadyConnectedError.ts +0 -11
- package/src/errors/AlreadyCreatedError.ts +0 -11
- package/src/errors/ForbiddenError.ts +0 -11
- package/src/errors/InvalidPayloadError.ts +0 -11
- package/src/errors/InvalidRequestError.ts +0 -11
- package/src/errors/LivedigitalSDKError.ts +0 -15
- package/src/errors/NeedJoinFirstError.ts +0 -11
- package/src/errors/NotFoundError.ts +0 -11
- package/src/errors/OperationError.ts +0 -47
- package/src/errors/RequestError.ts +0 -11
- package/src/errors/TimeoutError.ts +0 -11
- package/src/errors/TooManyRequestsError.ts +0 -11
- package/src/errors/UnauthorizedError.ts +0 -11
- package/src/errors/UnsupportedError.ts +0 -15
- package/src/errors/signalingApiErrorMapper.ts +0 -143
- package/src/helpers/appDataValidator.ts +0 -21
- package/src/helpers/browser.ts +0 -37
- package/src/helpers/channelMessageConverter.ts +0 -124
- package/src/helpers/common.ts +0 -96
- package/src/helpers/datetime.ts +0 -11
- package/src/helpers/errors.ts +0 -25
- package/src/helpers/filterStatsCodecs.ts +0 -3
- package/src/helpers/loader.ts +0 -59
- package/src/helpers/media.ts +0 -57
- package/src/helpers/peer.ts +0 -19
- package/src/helpers/randomString.ts +0 -18
- package/src/helpers/retry.ts +0 -74
- package/src/index.ts +0 -171
- package/src/inversify.config.ts +0 -333
- package/src/inversify.factories.ts +0 -191
- package/src/inversify.tokens.ts +0 -42
- package/src/proto/.gitkeep +0 -0
- package/src/proto/generated/channel/channel_activity_confirmation_time.ts +0 -110
- package/src/proto/generated/channel/channel_management_event.ts +0 -213
- package/src/proto/generated/channel/channel_produce_permissions.ts +0 -171
- package/src/proto/generated/channel/channel_state.ts +0 -94
- package/src/proto/generated/channel/channel_state_short.ts +0 -282
- package/src/proto/generated/channel_message/channel_event.ts +0 -401
- package/src/proto/generated/channel_message/channel_message.ts +0 -139
- package/src/proto/generated/channel_message/media_event.ts +0 -290
- package/src/proto/generated/consumer/consumer.ts +0 -167
- package/src/proto/generated/google/protobuf/struct.ts +0 -588
- package/src/proto/generated/google/protobuf/timestamp.ts +0 -229
- package/src/proto/generated/peer/peer.ts +0 -430
- package/src/proto/generated/peer/peer_group.ts +0 -48
- package/src/proto/generated/peer/peer_role.ts +0 -48
- package/src/proto/generated/producer/producer.ts +0 -204
- package/src/proto/generated/producer/producer_kind.ts +0 -48
- package/src/proto/generated/producer/producer_label.ts +0 -78
- package/src/proto/generated/producer/producer_spatial_layer_request.ts +0 -116
- package/src/proto/generated/transport/transport_connection_timeout.ts +0 -156
- package/src/proto/generated/transport/transport_connection_timeout_reason.ts +0 -48
- package/src/proto/generated/transport/transport_direction.ts +0 -48
- package/src/types/channelAudioObserver.ts +0 -34
- package/src/types/channelStateSyncronizer.ts +0 -22
- package/src/types/client.ts +0 -27
- package/src/types/common.ts +0 -399
- package/src/types/container.ts +0 -31
- package/src/types/engine.ts +0 -97
- package/src/types/media.ts +0 -146
- package/src/types/mediasoup.ts +0 -10
- package/src/types/network.ts +0 -10
- package/src/types/streamEffects.ts +0 -23
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
import { inject, injectable } from 'inversify';
|
|
2
|
-
import type { types } from 'mediasoup-client';
|
|
3
|
-
import type { Transport } from 'mediasoup-client/lib/Transport';
|
|
4
|
-
import { serializeError } from 'serialize-error';
|
|
5
|
-
import { FIVE_SECONDS_IN_MS } from '../../constants/common';
|
|
6
|
-
import { TOKEN } from '../../inversify.tokens';
|
|
7
|
-
import type { Logger } from '../../types/common';
|
|
8
|
-
import type { LoggerFactory } from '../../types/container';
|
|
9
|
-
|
|
10
|
-
@injectable()
|
|
11
|
-
class DatachannelHeartbeater {
|
|
12
|
-
#heartbeatIntervalId?: ReturnType<typeof setInterval>;
|
|
13
|
-
|
|
14
|
-
#dataProducer?: types.DataProducer;
|
|
15
|
-
|
|
16
|
-
#transport?: Transport;
|
|
17
|
-
|
|
18
|
-
#dataProducerCleanups: Array<() => void> = [];
|
|
19
|
-
|
|
20
|
-
readonly #logger: Logger;
|
|
21
|
-
|
|
22
|
-
readonly #heartbeatPayload = new Uint8Array(0);
|
|
23
|
-
|
|
24
|
-
constructor(
|
|
25
|
-
@inject(TOKEN.LoggerFactory) loggerFactory: LoggerFactory,
|
|
26
|
-
) {
|
|
27
|
-
this.#logger = loggerFactory('DatachannelHeartbeater');
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
init(transport: Transport, dataProducer: types.DataProducer): void {
|
|
31
|
-
this.#transport = transport;
|
|
32
|
-
this.#dataProducer = dataProducer;
|
|
33
|
-
this.subscribeToDataProducerEvents(dataProducer);
|
|
34
|
-
this.startHeartbeatInterval();
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
dispose(): void {
|
|
38
|
-
this.stopHeartbeatInterval();
|
|
39
|
-
this.cleanupDataProducerEvents();
|
|
40
|
-
this.#dataProducer = undefined;
|
|
41
|
-
this.#transport = undefined;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
private startHeartbeatInterval(): void {
|
|
45
|
-
if (this.#heartbeatIntervalId) {
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
this.#heartbeatIntervalId = setInterval(() => {
|
|
50
|
-
this.sendHeartbeat();
|
|
51
|
-
}, FIVE_SECONDS_IN_MS);
|
|
52
|
-
this.#logger.debug('Datachannel heartbeat interval started');
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
private stopHeartbeatInterval(): void {
|
|
56
|
-
if (!this.#heartbeatIntervalId) {
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
clearInterval(this.#heartbeatIntervalId);
|
|
61
|
-
this.#heartbeatIntervalId = undefined;
|
|
62
|
-
this.#logger.debug('Datachannel heartbeat interval stopped');
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
private canSendHeartbeat(): boolean {
|
|
66
|
-
if (!this.#dataProducer || !this.#transport) {
|
|
67
|
-
return false;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
if (this.#dataProducer.closed || this.#transport.connectionState !== 'connected') {
|
|
71
|
-
return false;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
return this.#dataProducer.readyState === 'open';
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
private subscribeToDataProducerEvents(dataProducer: types.DataProducer): void {
|
|
78
|
-
this.cleanupDataProducerEvents();
|
|
79
|
-
|
|
80
|
-
const logState = (event: string): void => {
|
|
81
|
-
this.#logger.debug(`Heartbeat data producer ${ event }`, {
|
|
82
|
-
readyState: dataProducer.readyState,
|
|
83
|
-
closed: dataProducer.closed,
|
|
84
|
-
});
|
|
85
|
-
};
|
|
86
|
-
|
|
87
|
-
const onOpen = (): void => logState('open');
|
|
88
|
-
const onClose = (): void => logState('close');
|
|
89
|
-
const onTransportClose = (): void => logState('transport closed');
|
|
90
|
-
|
|
91
|
-
dataProducer.on('open', onOpen);
|
|
92
|
-
dataProducer.on('close', onClose);
|
|
93
|
-
dataProducer.on('transportclose', onTransportClose);
|
|
94
|
-
|
|
95
|
-
this.#dataProducerCleanups = [
|
|
96
|
-
() => dataProducer.off('open', onOpen),
|
|
97
|
-
() => dataProducer.off('close', onClose),
|
|
98
|
-
() => dataProducer.off('transportclose', onTransportClose),
|
|
99
|
-
];
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
private cleanupDataProducerEvents(): void {
|
|
103
|
-
this.#dataProducerCleanups.forEach((cleanup) => cleanup());
|
|
104
|
-
this.#dataProducerCleanups = [];
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
private sendHeartbeat(): void {
|
|
108
|
-
if (!this.#dataProducer || !this.canSendHeartbeat()) {
|
|
109
|
-
return;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
try {
|
|
113
|
-
this.#dataProducer.send(this.#heartbeatPayload);
|
|
114
|
-
} catch (error) {
|
|
115
|
-
this.#logger.debug('Failed to send datachannel heartbeat', {
|
|
116
|
-
error: serializeError(error),
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
export default DatachannelHeartbeater;
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { inject, injectable } from 'inversify';
|
|
2
|
-
import { serializeError } from 'serialize-error';
|
|
3
|
-
import { FIFTEEN_SECONDS_IN_MS } from '../../constants/common';
|
|
4
|
-
import { TOKEN } from '../../inversify.tokens';
|
|
5
|
-
import type { Logger } from '../../types/common';
|
|
6
|
-
import type { LoggerFactory } from '../../types/container';
|
|
7
|
-
import SignalingApiClient from '../signalingApiClient/SignalingApiClient';
|
|
8
|
-
|
|
9
|
-
@injectable()
|
|
10
|
-
class SignalingHeartbeater {
|
|
11
|
-
#heartbeatIntervalId?: ReturnType<typeof setInterval>;
|
|
12
|
-
|
|
13
|
-
readonly #logger: Logger;
|
|
14
|
-
|
|
15
|
-
constructor(
|
|
16
|
-
@inject(TOKEN.LoggerFactory) loggerFactory: LoggerFactory,
|
|
17
|
-
@inject(TOKEN.SignalingApiClient) private readonly signalingApiClient: SignalingApiClient,
|
|
18
|
-
) {
|
|
19
|
-
this.#logger = loggerFactory('SignalingHeartbeater');
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
start(): void {
|
|
23
|
-
if (this.#heartbeatIntervalId) {
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
this.#heartbeatIntervalId = setInterval(async () => {
|
|
28
|
-
await this.sendHeartbeat();
|
|
29
|
-
}, FIFTEEN_SECONDS_IN_MS);
|
|
30
|
-
|
|
31
|
-
this.#logger.debug('Signaling heartbeat interval started');
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
dispose(): void {
|
|
35
|
-
if (!this.#heartbeatIntervalId) {
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
clearInterval(this.#heartbeatIntervalId);
|
|
40
|
-
this.#heartbeatIntervalId = undefined;
|
|
41
|
-
this.#logger.debug('Signaling heartbeat interval stopped');
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
private async sendHeartbeat(): Promise<void> {
|
|
45
|
-
try {
|
|
46
|
-
await this.signalingApiClient.ping.pingPeer();
|
|
47
|
-
} catch (error) {
|
|
48
|
-
this.#logger.debug('Failed to send signaling heartbeat', {
|
|
49
|
-
error: serializeError(error),
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
export default SignalingHeartbeater;
|