@vkontakte/calls-sdk 2.8.13-dev.957e6761.0 → 2.8.13-dev.a071796a.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 +4 -6
- package/calls-sdk.cjs.js +6 -6
- package/calls-sdk.esm.js +1109 -1257
- package/classes/AudioOutput.d.ts +3 -1
- package/classes/CallRegistry.d.ts +4 -17
- package/classes/MediaSource.d.ts +0 -2
- package/classes/conversation/Conversation.d.ts +8 -17
- package/classes/conversation/Conversation.testUtils.d.ts +0 -1
- package/classes/transport/Transport.d.ts +5 -0
- package/package.json +1 -1
- package/static/External.d.ts +0 -4
- package/static/Params.d.ts +2 -12
- package/types/FastHangup.d.ts +5 -7
package/classes/AudioOutput.d.ts
CHANGED
|
@@ -15,8 +15,9 @@ export default class AudioOutput {
|
|
|
15
15
|
private readonly _features;
|
|
16
16
|
private readonly _statFirstMediaReceived;
|
|
17
17
|
private readonly _logger;
|
|
18
|
+
private _autoplayRecoveryController;
|
|
18
19
|
constructor(statFirstMediaReceived: StatFirstMediaReceived, allowMultipleTracks?: boolean, debug?: DebugLogger, logger?: StatEventCollector | null);
|
|
19
|
-
add(participantId: ParticipantId, track: MediaStreamTrack): void;
|
|
20
|
+
add(participantId: ParticipantId, track: MediaStreamTrack, replaceAll?: boolean): void;
|
|
20
21
|
remove(participantId: ParticipantId, track: MediaStreamTrack): void;
|
|
21
22
|
get volume(): number;
|
|
22
23
|
set volume(volume: number);
|
|
@@ -26,6 +27,7 @@ export default class AudioOutput {
|
|
|
26
27
|
protected _getTracks(): MediaStreamTrack[];
|
|
27
28
|
protected _initAudioElement(): void;
|
|
28
29
|
protected _stopAudioElement(): void;
|
|
30
|
+
private _stopAutoplayRecovery;
|
|
29
31
|
private _createAudioElement;
|
|
30
32
|
private _prepareAudioElement;
|
|
31
33
|
private _addTrackToAudioElement;
|
|
@@ -6,31 +6,18 @@ export interface HoldableConversation extends Conversation {
|
|
|
6
6
|
}
|
|
7
7
|
export declare class CallRegistry {
|
|
8
8
|
private _conversations;
|
|
9
|
-
private
|
|
10
|
-
private _initialIds;
|
|
11
|
-
private _hangups;
|
|
9
|
+
private _reserved;
|
|
12
10
|
private _activeId;
|
|
13
|
-
private _selected;
|
|
14
11
|
private _mutex;
|
|
15
12
|
private _pendingRemovals;
|
|
16
|
-
|
|
17
|
-
selectPending(conversation: HoldableConversation): HoldableConversation | null;
|
|
18
|
-
isSelected(conversation: HoldableConversation): boolean;
|
|
19
|
-
releaseSelection(conversation: HoldableConversation, previous?: HoldableConversation | null): void;
|
|
20
|
-
selectIfNone(conversation: HoldableConversation): void;
|
|
13
|
+
reserve(id: string): void;
|
|
21
14
|
add(conversation: HoldableConversation): void;
|
|
22
|
-
remove(
|
|
15
|
+
remove(id: string | null): void;
|
|
23
16
|
get(id: string): HoldableConversation | undefined;
|
|
24
|
-
getPending(id?: string): HoldableConversation | null;
|
|
25
|
-
isPending(conversation: HoldableConversation): boolean;
|
|
26
|
-
getLocal(id?: string): HoldableConversation | null;
|
|
27
|
-
trackHangup(conversation: HoldableConversation, promise: Promise<void>): void;
|
|
28
|
-
getHangup(id?: string): Promise<void> | undefined;
|
|
29
|
-
removeHangup(promise: Promise<void>): void;
|
|
30
17
|
getActive(): HoldableConversation | null;
|
|
31
18
|
getFirst(): HoldableConversation | null;
|
|
32
19
|
getActiveId(): string | null;
|
|
33
|
-
has(id: string
|
|
20
|
+
has(id: string): boolean;
|
|
34
21
|
getAll(): HoldableConversation[];
|
|
35
22
|
get callsLength(): number;
|
|
36
23
|
setActive(id: string): Promise<void>;
|
package/classes/MediaSource.d.ts
CHANGED
|
@@ -39,8 +39,6 @@ export declare class MediaSource extends EventEmitter {
|
|
|
39
39
|
private _screenTrack;
|
|
40
40
|
private _audioShareTrack;
|
|
41
41
|
private _screenShareTrack;
|
|
42
|
-
private _screenCaptureRequest;
|
|
43
|
-
private _destroyed;
|
|
44
42
|
/** Трек для отправки в медиа-канал. Может отличаться при скриншаринге в дата-канал */
|
|
45
43
|
private _sendVideoTrack;
|
|
46
44
|
/** Трек с камеры. В стриме будет другой трек при включенных видео эффектах */
|
|
@@ -15,7 +15,7 @@ import { IAsrStartParams, IAsrStopParams } from '../../types/Asr';
|
|
|
15
15
|
import { AudienceModeHandsResponse } from '../../types/AudienceMode';
|
|
16
16
|
import { ConversationData, ConversationOnJoinParams, ConversationOnStartParams } from '../../types/Conversation';
|
|
17
17
|
import { ExternalId, ExternalParticipant, ExternalParticipantId, ExternalParticipantListChunk } from '../../types/ExternalId';
|
|
18
|
-
import type { HangupParams } from '../../types/FastHangup';
|
|
18
|
+
import type { FastHangupHandler, HangupParams } from '../../types/FastHangup';
|
|
19
19
|
import MediaModifiers from '../../types/MediaModifiers';
|
|
20
20
|
import MediaSettings, { IVideoDimentions } from '../../types/MediaSettings';
|
|
21
21
|
import { IAddMovieParams, IUpdateMovieData } from '../../types/MovieShare';
|
|
@@ -35,9 +35,6 @@ export default class Conversation extends EventEmitter {
|
|
|
35
35
|
private readonly _signalingActor;
|
|
36
36
|
private readonly _displayLayoutRequester;
|
|
37
37
|
private _mediaSource;
|
|
38
|
-
private _requestingLocalMedia;
|
|
39
|
-
private _requestedLocalAudio?;
|
|
40
|
-
private _requestedLocalVideo?;
|
|
41
38
|
private _conversation;
|
|
42
39
|
private _myLastRequestedLayouts;
|
|
43
40
|
private _state;
|
|
@@ -59,17 +56,14 @@ export default class Conversation extends EventEmitter {
|
|
|
59
56
|
private _isRealTimeAsrRequested;
|
|
60
57
|
private _serverSettings;
|
|
61
58
|
private _serverTimeOffset;
|
|
62
|
-
private
|
|
59
|
+
private _delayedHangup;
|
|
63
60
|
private _onFastHangup?;
|
|
64
61
|
private _hangupEmitted;
|
|
65
62
|
private _hangupPromise;
|
|
66
|
-
private _hangupReason;
|
|
67
63
|
private _abortController;
|
|
68
64
|
private _registeredPeerReceived;
|
|
69
65
|
private _calleeUnavailableTimer;
|
|
70
|
-
private
|
|
71
|
-
private _resolveSignalingInitialization;
|
|
72
|
-
private readonly _signalingInitialization;
|
|
66
|
+
private _reservedId;
|
|
73
67
|
private readonly _onUnload;
|
|
74
68
|
private readonly _onRestore;
|
|
75
69
|
private readonly _onVisibilityChange;
|
|
@@ -87,6 +81,7 @@ export default class Conversation extends EventEmitter {
|
|
|
87
81
|
private readonly _statFirstMediaReceived;
|
|
88
82
|
constructor(api: BaseApi, externalLogger: BaseLogger | null);
|
|
89
83
|
static current(): Conversation | null;
|
|
84
|
+
static hangupAfterInit(onFastHangup?: FastHangupHandler): void;
|
|
90
85
|
static id(): string | null;
|
|
91
86
|
get id(): string;
|
|
92
87
|
get externalId(): ExternalParticipantId | undefined;
|
|
@@ -122,8 +117,7 @@ export default class Conversation extends EventEmitter {
|
|
|
122
117
|
accept(mediaOptions: MediaOption[]): Promise<ConversationData>;
|
|
123
118
|
decline(params?: HangupParams): Promise<void>;
|
|
124
119
|
hangup(params?: HangupParams): Promise<void>;
|
|
125
|
-
|
|
126
|
-
addParticipant(participantIds: ExternalId[], params?: AddParticipantParams): Promise<void>;
|
|
120
|
+
addParticipant(participantIds: ExternalId[], params?: AddParticipantParams): Promise<ExternalParticipant[] | undefined>;
|
|
127
121
|
addParticipantLegacy(participantIds: CompositeUserId[], params?: AddParticipantParams): Promise<void>;
|
|
128
122
|
removeParticipant(participantId: CompositeUserId, ban?: boolean): Promise<void>;
|
|
129
123
|
setVolume(volume: number): void;
|
|
@@ -131,15 +125,11 @@ export default class Conversation extends EventEmitter {
|
|
|
131
125
|
private _openTransport;
|
|
132
126
|
private _allocateParticipantTransport;
|
|
133
127
|
private _closeParticipantTransport;
|
|
134
|
-
private _registerPending;
|
|
135
128
|
private _cleanupRegistry;
|
|
136
|
-
private _applyInitialActiveSelection;
|
|
137
129
|
private _emitHangupOnce;
|
|
138
130
|
private _sendHangupApi;
|
|
139
131
|
private _close;
|
|
140
132
|
private _sendHangup;
|
|
141
|
-
private _throwIfClosed;
|
|
142
|
-
private _applyServerConversation;
|
|
143
133
|
destroy(): void;
|
|
144
134
|
private _destroy;
|
|
145
135
|
private _getConversationParams;
|
|
@@ -163,14 +153,13 @@ export default class Conversation extends EventEmitter {
|
|
|
163
153
|
private _cacheParticipantExternalIds;
|
|
164
154
|
private _setConversation;
|
|
165
155
|
private _updateConversation;
|
|
166
|
-
private _requestLocalMedia;
|
|
167
156
|
private _createMediaSource;
|
|
168
157
|
private _connectSignaling;
|
|
169
|
-
private _completeSignalingInitialization;
|
|
170
158
|
private _processConnection;
|
|
171
159
|
private _onConversationParticipantListChunk;
|
|
172
160
|
private _createParticipantListChunk;
|
|
173
161
|
private _participantListChunkToExternalChunk;
|
|
162
|
+
private _participantsToExternal;
|
|
174
163
|
private _registerConnectionParticipants;
|
|
175
164
|
private _registerParticipants;
|
|
176
165
|
/** Установим состояние локальных мьютов */
|
|
@@ -477,6 +466,8 @@ export default class Conversation extends EventEmitter {
|
|
|
477
466
|
private _registerParticipant;
|
|
478
467
|
private _getParticipant;
|
|
479
468
|
}
|
|
469
|
+
declare function _resetPendingInstance(): void;
|
|
470
|
+
export { _resetPendingInstance };
|
|
480
471
|
export declare class UpdateDisplayLayoutError extends Error {
|
|
481
472
|
readonly participantErrors: {
|
|
482
473
|
externalId: ExternalParticipantId;
|
|
@@ -37,7 +37,6 @@ declare function createParams(): {
|
|
|
37
37
|
onSpeakerChanged: Mock<import("@vitest/spy").Procedure>;
|
|
38
38
|
onAcceptedCall: Mock<import("@vitest/spy").Procedure>;
|
|
39
39
|
onNonFatalError: Mock<import("@vitest/spy").Procedure>;
|
|
40
|
-
onSignalingConnected: Mock<import("@vitest/spy").Procedure>;
|
|
41
40
|
};
|
|
42
41
|
export type ConversationTestParams = ReturnType<typeof createParams>;
|
|
43
42
|
export type ConversationTestTools = {
|
|
@@ -37,6 +37,8 @@ export declare class Transport extends EventEmitter {
|
|
|
37
37
|
private _opened;
|
|
38
38
|
private _directTransport;
|
|
39
39
|
private _serverTransport;
|
|
40
|
+
private _pendingServerAudio;
|
|
41
|
+
private _serverAudioController;
|
|
40
42
|
private _serverSettings;
|
|
41
43
|
private _dtListeners;
|
|
42
44
|
private _stListeners;
|
|
@@ -91,6 +93,9 @@ export declare class Transport extends EventEmitter {
|
|
|
91
93
|
private _onServerAudioMixStall;
|
|
92
94
|
private _onRemoteDataStats;
|
|
93
95
|
private _onRemoteTrackAdded;
|
|
96
|
+
private _onServerTrackAdded;
|
|
97
|
+
private _trySwitchToServerAudio;
|
|
98
|
+
private _clearPendingServerAudio;
|
|
94
99
|
private _onRemoteTrackRemoved;
|
|
95
100
|
private _onAsrTranscription;
|
|
96
101
|
private _onSourceChanged;
|
package/package.json
CHANGED
package/static/External.d.ts
CHANGED
|
@@ -635,10 +635,6 @@ declare namespace External {
|
|
|
635
635
|
*/
|
|
636
636
|
function onParticipantIdChanged(prevId: ExternalParticipantId, newId: ExternalParticipantId, conversationId?: string): void;
|
|
637
637
|
function onVideoSuspendSuggest(bandwidth: number, conversationId?: string): void;
|
|
638
|
-
/**
|
|
639
|
-
* Успешно применено первое подключение к сигналингу или переподключение.
|
|
640
|
-
*/
|
|
641
|
-
function onSignalingConnected(conversationId: string): void;
|
|
642
638
|
/**
|
|
643
639
|
* Одобрено повышение пользователя в зеле ожидания/зале в режиме Audience
|
|
644
640
|
*
|
package/static/Params.d.ts
CHANGED
|
@@ -562,9 +562,7 @@ export type ParamsObject = {
|
|
|
562
562
|
*/
|
|
563
563
|
forwardEmptyIceCandidate: boolean;
|
|
564
564
|
/**
|
|
565
|
-
* Получен локальный стрим с
|
|
566
|
-
* Повторяется после изменения видео (включение, выключение, смена камеры).
|
|
567
|
-
* Повторное событие может содержать тот же MediaStream с обновлёнными треками.
|
|
565
|
+
* Получен локальный стрим с камеры/микрофона
|
|
568
566
|
*/
|
|
569
567
|
onLocalStream?: (stream: MediaStream | null, mediaSettings: MediaSettings, conversationId?: string) => void;
|
|
570
568
|
/**
|
|
@@ -746,8 +744,7 @@ export type ParamsObject = {
|
|
|
746
744
|
onLocalVolume?: (volume: number, isMicEnabled: boolean) => void;
|
|
747
745
|
onJoinStatus?: (available: boolean, chatId: string, conversationId?: string) => void;
|
|
748
746
|
/**
|
|
749
|
-
* Звонок
|
|
750
|
-
* Доставляется асинхронно; Promise hangup отдельно ждёт известную SDK работу по завершению.
|
|
747
|
+
* Звонок был завершен
|
|
751
748
|
*/
|
|
752
749
|
onHangup?: (type: HangupReason | Error, conversationId: string | null) => void;
|
|
753
750
|
/**
|
|
@@ -936,13 +933,6 @@ export type ParamsObject = {
|
|
|
936
933
|
* @param bandwidth текущая полоса пропускания, kbps
|
|
937
934
|
*/
|
|
938
935
|
onVideoSuspendSuggest?: (bandwidth: number, conversationId?: string) => void;
|
|
939
|
-
/**
|
|
940
|
-
* Первое подключение к сигналингу или переподключение успешно применено к состоянию звонка.
|
|
941
|
-
* Звонок зарегистрирован под conversationId, локальное управление доступно, в том числе в зале ожидания.
|
|
942
|
-
* Событие не означает принятие звонка собеседником или готовность WebRTC.
|
|
943
|
-
* Callback вызывается асинхронно; к моменту вызова звонок может уже завершиться.
|
|
944
|
-
*/
|
|
945
|
-
onSignalingConnected?: (conversationId: string) => void;
|
|
946
936
|
/**
|
|
947
937
|
* Одобрено повышение пользователя в зале ожидания/зале в режиме Audience
|
|
948
938
|
*
|
package/types/FastHangup.d.ts
CHANGED
|
@@ -34,15 +34,13 @@ export interface FastHangupResponse {
|
|
|
34
34
|
*
|
|
35
35
|
* `reason` и `conversationId` идут в signaling hangup.
|
|
36
36
|
* `onFastHangup` заменяет Calls API `vchat.hangupConversation`, если обработчик передан
|
|
37
|
-
* (явный hangup/decline
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
* На закрытии вкладки (`pagehide`) SDK всегда использует beacon вместо обработчика.
|
|
37
|
+
* (явный hangup/decline или delayed hangup во время init).
|
|
38
|
+
* Если обработчик не передан, API hangup не вызывается — кроме закрытия вкладки (`pagehide`),
|
|
39
|
+
* где SDK всегда шлёт beacon, и delayed hangup без handler.
|
|
41
40
|
*/
|
|
42
41
|
export interface HangupParams {
|
|
43
42
|
/**
|
|
44
|
-
*
|
|
45
|
-
* Без ID: активный готовый, затем первый готовый, а для hangup — также единственный готовящийся звонок.
|
|
43
|
+
* ID звонка. Если опущен — завершается текущий активный звонок.
|
|
46
44
|
*/
|
|
47
45
|
conversationId?: string;
|
|
48
46
|
/**
|
|
@@ -63,6 +61,6 @@ export interface HangupParams {
|
|
|
63
61
|
* На `pagehide` не используется — SDK всегда отправляет `sendBeacon`.
|
|
64
62
|
*
|
|
65
63
|
* @param params Параметры запроса
|
|
66
|
-
* @param signal
|
|
64
|
+
* @param signal AbortSignal текущего звонка, если он ещё жив на момент вызова
|
|
67
65
|
*/
|
|
68
66
|
export type FastHangupHandler = (params: FastHangupParams, signal?: AbortSignal) => Promise<FastHangupResponse>;
|