@vkontakte/calls-sdk 2.8.12-dev.6473a056.0 → 2.8.12-dev.68a694c3.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.
- package/CallsSDK.d.ts +16 -13
- package/abstract/BaseApi.d.ts +4 -8
- package/calls-sdk.cjs.js +13 -7
- package/calls-sdk.esm.js +1481 -1336
- package/classes/AudioFix.d.ts +2 -2
- package/classes/AudioOutput.d.ts +2 -2
- package/classes/MediaSource.d.ts +2 -2
- package/classes/SpecListener.d.ts +2 -2
- package/classes/codec/LibVPxDecoder.d.ts +2 -2
- package/classes/codec/LibVPxEncoder.d.ts +2 -2
- package/classes/codec/WebCodecsDecoder.d.ts +2 -2
- package/classes/codec/WebCodecsEncoder.d.ts +2 -2
- package/classes/codec/WorkerBase.d.ts +3 -3
- package/classes/conversation/Conversation.d.ts +8 -8
- package/classes/screenshare/ScreenCaptureReceiver.d.ts +2 -2
- package/classes/screenshare/ScreenCaptureSender.d.ts +2 -2
- package/classes/screenshare/StreamBuilder.d.ts +2 -2
- package/classes/stat/CallLifecycleStats.d.ts +2 -2
- package/classes/stat/CodecStatsAggregator.d.ts +2 -2
- package/classes/stat/ConversationStats.d.ts +5 -4
- package/classes/stat/StatAggregator.d.ts +2 -2
- package/classes/stat/StatDrainScheduler.d.ts +16 -0
- package/classes/stat/StatEventCollector.d.ts +37 -0
- package/classes/stat/StatPings.d.ts +2 -2
- package/classes/stat/StatQueue.d.ts +39 -0
- package/classes/stat/StatSignalingCommands.d.ts +2 -2
- package/classes/stat/StatUnloadJournal.d.ts +25 -0
- package/classes/transport/DirectTransport.d.ts +2 -2
- package/classes/transport/PerfStatReporter.d.ts +0 -2
- package/classes/transport/ServerTransport.d.ts +7 -3
- package/classes/transport/Transport.d.ts +2 -2
- package/default/Api.d.ts +9 -1
- package/default/Signaling.d.ts +2 -2
- package/enums/SessionError.d.ts +10 -0
- package/package.json +1 -1
- package/static/ParticipantConnectionStatusUtils.d.ts +0 -1
- package/static/SignalingCapabilities.d.ts +1 -1
- package/static/SimulcastInfo.d.ts +3 -5
- package/static/Utils.d.ts +1 -0
- package/static/WebRTCUtils.d.ts +5 -5
- package/types/Capabilities.d.ts +0 -1
- package/types/FastHangup.d.ts +66 -0
- package/types/Participant.d.ts +0 -1
- package/types/PerfStatReporter.d.ts +4 -0
- package/classes/StatsLogger.d.ts +0 -41
- package/classes/transport/SimulcastSender.d.ts +0 -30
- package/static/Sdp.d.ts +0 -3
- package/utils/SerializeLatest.d.ts +0 -5
package/default/Signaling.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { SharingStatReport } from '../classes/screenshare/SharingStatReport';
|
|
|
4
4
|
import { StatAggregator } from '../classes/stat/StatAggregator';
|
|
5
5
|
import { StatPings } from '../classes/stat/StatPings';
|
|
6
6
|
import { StatSignalingCommands } from '../classes/stat/StatSignalingCommands';
|
|
7
|
-
import
|
|
7
|
+
import StatEventCollector from '../classes/stat/StatEventCollector';
|
|
8
8
|
import ConversationFeature from '../enums/ConversationFeature';
|
|
9
9
|
import ConversationOption from '../enums/ConversationOption';
|
|
10
10
|
import MediaOption from '../enums/MediaOption';
|
|
@@ -56,7 +56,7 @@ export default class Signaling extends BaseSignaling {
|
|
|
56
56
|
private static get WAIT_CONNECTION_DELAY();
|
|
57
57
|
private static get WAIT_RESPONSE_DELAY();
|
|
58
58
|
get ready(): boolean;
|
|
59
|
-
constructor(debug?: DebugLogger, logger?:
|
|
59
|
+
constructor(debug?: DebugLogger, logger?: StatEventCollector | null, statAggregator?: StatAggregator | null, statPings?: StatPings | null, statSignalingCommands?: StatSignalingCommands | null);
|
|
60
60
|
setAbortSignal(signal: AbortSignal | undefined): void;
|
|
61
61
|
setEndpoint(endpoint: string): void;
|
|
62
62
|
setWebTransportEndpoint(endpoint: string | null): void;
|
package/package.json
CHANGED
|
@@ -11,7 +11,6 @@ declare namespace ParticipantConnectionStatusUtils {
|
|
|
11
11
|
function computeEffective(status: ParticipantConnectionStatus): ParticipantStatus;
|
|
12
12
|
function setSessionState(status: ParticipantConnectionStatus, sessionState?: ParticipantSessionState, sessionStateConnectedBySpeaker?: boolean): StatusTransition;
|
|
13
13
|
function setTransport(status: ParticipantConnectionStatus, transport: ParticipantStatus): StatusTransition;
|
|
14
|
-
function setStalled(status: ParticipantConnectionStatus, stalled: boolean): StatusTransition;
|
|
15
14
|
function setSessionStateApplicable(status: ParticipantConnectionStatus, applicable: boolean): StatusTransition;
|
|
16
15
|
}
|
|
17
16
|
export default ParticipantConnectionStatusUtils;
|
|
@@ -6,10 +6,8 @@ export declare const SIMULCAST_DEFAULT: {
|
|
|
6
6
|
BITRATE: number;
|
|
7
7
|
};
|
|
8
8
|
export declare const SIMULCAST_SCALABILITY_MODE = "L1T2";
|
|
9
|
+
export declare const MAP_RID_TO_SCALE_RESOLUTION_DOWN_BY: Record<string, number>;
|
|
9
10
|
export declare function isEqualSimulcastInfo(si1: ISimulcastInfo | null, si2: ISimulcastInfo | null): boolean;
|
|
10
11
|
export declare function findBitrateAsc(maxDimension: number, bitrates: VideoBitrateSettings[]): number;
|
|
11
|
-
export declare function calculateSimulcastInfo(width?: number, height?: number, bitrates?: VideoBitrateSettings[]
|
|
12
|
-
|
|
13
|
-
};
|
|
14
|
-
export declare function findScaleResolutionDownBy(rid: string | undefined, simulcastInfo: ISimulcastInfo): number;
|
|
15
|
-
export declare function applySimulcastInfoToEncodings(encodings: RTCRtpEncodingParameters[], simulcastInfo: ISimulcastInfo, maxDimension?: number, maxBitrate?: number): void;
|
|
12
|
+
export declare function calculateSimulcastInfo(width?: number, height?: number, bitrates?: VideoBitrateSettings[]): ISimulcastInfo;
|
|
13
|
+
export declare function findScaleResolutionDownBy(rid?: string): number;
|
package/static/Utils.d.ts
CHANGED
|
@@ -77,5 +77,6 @@ declare namespace Utils {
|
|
|
77
77
|
function objectReduce<R, T extends object>(obj: T, callback: (acc: R, value: T[keyof T], key: keyof T) => R, initialValue: R): R;
|
|
78
78
|
const setImmediate: (fn: VoidFunction) => VoidFunction;
|
|
79
79
|
function isObject(obj: unknown): obj is object;
|
|
80
|
+
function patchSimulcastAnswerSdp(sdp: string, trans: RTCRtpTransceiver, width: number, height: number): string;
|
|
80
81
|
}
|
|
81
82
|
export default Utils;
|
package/static/WebRTCUtils.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Вспомогательный плагин для работы с WebRTC
|
|
3
3
|
*/
|
|
4
4
|
import { IVideoDimentions } from '../types/MediaSettings';
|
|
5
|
-
import type
|
|
5
|
+
import type StatEventCollector from '../classes/stat/StatEventCollector';
|
|
6
6
|
import { type DebugLogger } from './Debug';
|
|
7
7
|
/**
|
|
8
8
|
* Тип камеры мобильного устройства
|
|
@@ -85,24 +85,24 @@ declare namespace WebRTCUtils {
|
|
|
85
85
|
* @param needAudio Нужно ли аудио
|
|
86
86
|
* @param needEmptyTracks Добавлять ли в стрим пустые треки для отключенного видео/аудио
|
|
87
87
|
*/
|
|
88
|
-
function getUserMedia(needVideo?: boolean, needAudio?: boolean, needEmptyTracks?: boolean, debug?: DebugLogger, logger?:
|
|
88
|
+
function getUserMedia(needVideo?: boolean, needAudio?: boolean, needEmptyTracks?: boolean, debug?: DebugLogger, logger?: StatEventCollector | null): Promise<MediaStream>;
|
|
89
89
|
/**
|
|
90
90
|
* Запрашивает трансляцию экрана пользователя с опциональным захватом звука
|
|
91
91
|
*/
|
|
92
|
-
function getScreenMedia(fastScreenShare: boolean, withAudioShare: boolean, debug?: DebugLogger, logger?:
|
|
92
|
+
function getScreenMedia(fastScreenShare: boolean, withAudioShare: boolean, debug?: DebugLogger, logger?: StatEventCollector | null): Promise<MediaStream>;
|
|
93
93
|
/**
|
|
94
94
|
* Запрашивает камеру пользователя
|
|
95
95
|
*
|
|
96
96
|
* @param deviceId ID устройства
|
|
97
97
|
* @param resolution Размеры видео
|
|
98
98
|
*/
|
|
99
|
-
function getUserVideo(deviceId?: string, resolution?: IVideoDimentions, debug?: DebugLogger, logger?:
|
|
99
|
+
function getUserVideo(deviceId?: string, resolution?: IVideoDimentions, debug?: DebugLogger, logger?: StatEventCollector | null): Promise<MediaStream>;
|
|
100
100
|
/**
|
|
101
101
|
* Запрашивает микрофон пользователя
|
|
102
102
|
*
|
|
103
103
|
* @param deviceId ID устройства
|
|
104
104
|
*/
|
|
105
|
-
function getUserAudio(deviceId?: string, debug?: DebugLogger, logger?:
|
|
105
|
+
function getUserAudio(deviceId?: string, debug?: DebugLogger, logger?: StatEventCollector | null): Promise<MediaStream>;
|
|
106
106
|
/**
|
|
107
107
|
* Устанавливает размер видео в стриме
|
|
108
108
|
*
|
package/types/Capabilities.d.ts
CHANGED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type ClientHangupReason from '../enums/ClientHangupReason';
|
|
2
|
+
import type HangupType from '../enums/HangupType';
|
|
3
|
+
/**
|
|
4
|
+
* Параметры запроса завершения звонка через внешнего партнёра (fast hangup).
|
|
5
|
+
*
|
|
6
|
+
* SDK генерирует объект и передаёт его в {@link FastHangupHandler}.
|
|
7
|
+
* Хост и backend партнёра пробрасывают `internalParams` как есть, без парсинга.
|
|
8
|
+
*/
|
|
9
|
+
export interface FastHangupParams {
|
|
10
|
+
/**
|
|
11
|
+
* ID звонка
|
|
12
|
+
*/
|
|
13
|
+
conversationId: string;
|
|
14
|
+
/**
|
|
15
|
+
* Причина завершения звонка
|
|
16
|
+
*/
|
|
17
|
+
reason: HangupType;
|
|
18
|
+
/**
|
|
19
|
+
* Внутренние параметры звонка (JSON-строка). Генерируется SDK.
|
|
20
|
+
*/
|
|
21
|
+
internalParams?: string | null;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Ответ внешнего партнёра на завершение звонка.
|
|
25
|
+
*/
|
|
26
|
+
export interface FastHangupResponse {
|
|
27
|
+
/**
|
|
28
|
+
* true — участие в звонке завершено
|
|
29
|
+
*/
|
|
30
|
+
success: boolean;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Параметры публичных методов {@link hangup} / {@link declineCall}.
|
|
34
|
+
*
|
|
35
|
+
* `reason` и `conversationId` идут в signaling hangup.
|
|
36
|
+
* `onFastHangup` заменяет Calls API `vchat.hangupConversation`, если обработчик передан
|
|
37
|
+
* (явный hangup/decline или delayed hangup во время init).
|
|
38
|
+
* Если обработчик не передан, API hangup не вызывается — кроме закрытия вкладки (`pagehide`),
|
|
39
|
+
* где SDK всегда шлёт beacon, и delayed hangup без handler.
|
|
40
|
+
*/
|
|
41
|
+
export interface HangupParams {
|
|
42
|
+
/**
|
|
43
|
+
* ID звонка. Если опущен — завершается текущий активный звонок.
|
|
44
|
+
*/
|
|
45
|
+
conversationId?: string;
|
|
46
|
+
/**
|
|
47
|
+
* Причина завершения для проброса в сигналинг. См. {@link ClientHangupReason}.
|
|
48
|
+
*/
|
|
49
|
+
reason?: ClientHangupReason;
|
|
50
|
+
/**
|
|
51
|
+
* Обработчик fast hangup — завершение звонка через внешнего партнёра.
|
|
52
|
+
*/
|
|
53
|
+
onFastHangup?: FastHangupHandler;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Функция-обработчик fast hangup.
|
|
57
|
+
*
|
|
58
|
+
* Если передана в {@link HangupParams.onFastHangup} при `hangup` / `declineCall`,
|
|
59
|
+
* SDK вызывает её вместо API `vchat.hangupConversation`.
|
|
60
|
+
*
|
|
61
|
+
* На `pagehide` не используется — SDK всегда отправляет `sendBeacon`.
|
|
62
|
+
*
|
|
63
|
+
* @param params Параметры запроса
|
|
64
|
+
* @param signal AbortSignal текущего звонка, если он ещё жив на момент вызова
|
|
65
|
+
*/
|
|
66
|
+
export type FastHangupHandler = (params: FastHangupParams, signal?: AbortSignal) => Promise<FastHangupResponse>;
|
package/types/Participant.d.ts
CHANGED
|
@@ -49,7 +49,6 @@ export interface ParticipantSessionState {
|
|
|
49
49
|
}
|
|
50
50
|
export interface ParticipantConnectionStatus {
|
|
51
51
|
transport: ParticipantStatus;
|
|
52
|
-
stalled: boolean;
|
|
53
52
|
sessionState?: ParticipantSessionState;
|
|
54
53
|
sessionStateApplicable: boolean;
|
|
55
54
|
sessionStateConnectedBySpeaker: boolean;
|
|
@@ -24,6 +24,10 @@ export interface CallStatReport {
|
|
|
24
24
|
audio_concealment_events: number;
|
|
25
25
|
inbound_video_count: number;
|
|
26
26
|
inbound_audio_count: number;
|
|
27
|
+
packets_lost_video: number;
|
|
28
|
+
packets_sent_video: number;
|
|
29
|
+
packets_lost_audio: number;
|
|
30
|
+
packets_sent_audio: number;
|
|
27
31
|
freeze_count: number;
|
|
28
32
|
total_freezes_duration: number;
|
|
29
33
|
rtt: number;
|
package/classes/StatsLogger.d.ts
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import BaseApi from '../abstract/BaseApi';
|
|
2
|
-
import BaseLogger from '../abstract/BaseLogger';
|
|
3
|
-
import StatLog from '../enums/StatLog';
|
|
4
|
-
import TransportTopology from '../enums/TransportTopology';
|
|
5
|
-
type ClientStatsPayload = Record<string, string | number | boolean | undefined | null>;
|
|
6
|
-
export type LogClientStatsOptions = {
|
|
7
|
-
immediately?: boolean;
|
|
8
|
-
occurredAt?: number;
|
|
9
|
-
conversationId?: string | null;
|
|
10
|
-
deferUntilServerTime?: boolean;
|
|
11
|
-
};
|
|
12
|
-
/**
|
|
13
|
-
* Класс отвечает за отправку различной информации в сервис статистики (события, статистика и подобное)
|
|
14
|
-
*/
|
|
15
|
-
export default class StatsLogger extends BaseLogger {
|
|
16
|
-
private readonly _externalLogger;
|
|
17
|
-
private readonly _api;
|
|
18
|
-
private readonly _conversationIdProvider;
|
|
19
|
-
private readonly _topologyProvider;
|
|
20
|
-
private readonly _batchInterval;
|
|
21
|
-
private _batchedClientStats;
|
|
22
|
-
private _batchTimeout;
|
|
23
|
-
private _serverTimeDelta;
|
|
24
|
-
private _waitingForServerTime;
|
|
25
|
-
private _deferredClientStats;
|
|
26
|
-
constructor(api: BaseApi, externalLogger: BaseLogger | null, conversationIdProvider: () => string | null, topologyProvider?: () => TransportTopology | undefined);
|
|
27
|
-
log(name: StatLog, value?: string, immediately?: boolean): void;
|
|
28
|
-
logClientStats(data: ClientStatsPayload, immediatelyOrOptions?: boolean | LogClientStatsOptions): void;
|
|
29
|
-
destroy(): void;
|
|
30
|
-
private _logClientStats;
|
|
31
|
-
private _getConversationId;
|
|
32
|
-
private _getCallTopology;
|
|
33
|
-
private _sendBatch;
|
|
34
|
-
private _startTimeout;
|
|
35
|
-
private _stopTimeout;
|
|
36
|
-
private _sendClientStats;
|
|
37
|
-
private _calculateServerTimeDelta;
|
|
38
|
-
private _flushDeferredClientStats;
|
|
39
|
-
private _now;
|
|
40
|
-
}
|
|
41
|
-
export {};
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import BaseSignaling from '../../abstract/BaseSignaling';
|
|
2
|
-
import { type DebugLogger } from '../../static/Debug';
|
|
3
|
-
import type VideoSettings from '../../types/VideoSettings';
|
|
4
|
-
import { MediaSource } from '../MediaSource';
|
|
5
|
-
import StatsLogger from '../StatsLogger';
|
|
6
|
-
export default class SimulcastSender {
|
|
7
|
-
private _pc;
|
|
8
|
-
private _transceiver;
|
|
9
|
-
private _currentSimulcastInfo;
|
|
10
|
-
private readonly _signaling;
|
|
11
|
-
private readonly _mediaSource;
|
|
12
|
-
private readonly _getCameraSettings;
|
|
13
|
-
private readonly _debug;
|
|
14
|
-
private readonly _logger;
|
|
15
|
-
constructor(signaling: BaseSignaling, mediaSource: MediaSource, getCameraSettings: () => VideoSettings | null, debug?: DebugLogger, logger?: StatsLogger | null);
|
|
16
|
-
configureFromRemoteOffer(pc: RTCPeerConnection): Promise<void>;
|
|
17
|
-
finalizeAnswer(sdp: string): string;
|
|
18
|
-
sync({ force }?: {
|
|
19
|
-
force?: boolean;
|
|
20
|
-
}): Promise<void>;
|
|
21
|
-
replaceTrack(track: MediaStreamTrack): boolean;
|
|
22
|
-
reset(): void;
|
|
23
|
-
private _findTransceiver;
|
|
24
|
-
private _findMediaSection;
|
|
25
|
-
private _getConfig;
|
|
26
|
-
private _getTrackConfig;
|
|
27
|
-
private _applyConfig;
|
|
28
|
-
private _applyCurrentMediaState;
|
|
29
|
-
private _syncReplacedTrack;
|
|
30
|
-
}
|
package/static/Sdp.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Последовательно выполняет операции, оставляя в очереди только последнее запрошенное значение.
|
|
3
|
-
* Возвращает ошибку, только если не удалось применить итоговое состояние.
|
|
4
|
-
*/
|
|
5
|
-
export declare function serializeLatest<T>(run: (value: T) => Promise<void> | undefined): (value: T) => Promise<void>;
|