@vkontakte/calls-sdk 2.8.11-dev.a36ba1d7.0 → 2.8.11-dev.a56a8981.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 +11 -22
- package/abstract/BaseApi.d.ts +2 -4
- package/abstract/BaseSignaling.d.ts +3 -4
- package/calls-sdk.cjs.js +9 -9
- package/calls-sdk.esm.js +5913 -5461
- package/classes/CallRegistry.d.ts +26 -0
- package/classes/Conversation.d.ts +37 -10
- package/classes/MediaSource.d.ts +7 -0
- package/classes/SpecListener.d.ts +5 -0
- package/classes/StatsLogger.d.ts +0 -3
- package/classes/codec/WorkerBase.d.ts +2 -0
- package/classes/transport/DirectTransport.d.ts +5 -0
- package/classes/transport/Transport.d.ts +2 -0
- package/default/Api.d.ts +3 -2
- package/enums/SignalingNotification.d.ts +3 -1
- package/package.json +1 -1
- package/static/Capabilities.d.ts +5 -0
- package/static/External.d.ts +143 -71
- package/static/Params.d.ts +92 -78
- package/static/ParticipantConnectionStatusUtils.d.ts +16 -0
- package/types/Capabilities.d.ts +24 -0
- package/types/Participant.d.ts +12 -1
- package/types/PushData.d.ts +3 -0
- package/types/SignalingMessage.d.ts +14 -1
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import Conversation from './Conversation';
|
|
2
|
+
import MediaSettings from '../types/MediaSettings';
|
|
3
|
+
export interface HoldableConversation extends Conversation {
|
|
4
|
+
id: string;
|
|
5
|
+
hold(hold: boolean, lastActiveMediaSettings?: MediaSettings): Promise<void>;
|
|
6
|
+
}
|
|
7
|
+
export declare class CallRegistry {
|
|
8
|
+
private _conversations;
|
|
9
|
+
private _activeId;
|
|
10
|
+
private _mutex;
|
|
11
|
+
add(conversation: HoldableConversation): void;
|
|
12
|
+
remove(id: string | null): void;
|
|
13
|
+
get(id: string): HoldableConversation | undefined;
|
|
14
|
+
getActive(): HoldableConversation | null;
|
|
15
|
+
getFirst(): HoldableConversation | null;
|
|
16
|
+
getActiveId(): string | null;
|
|
17
|
+
has(id: string): boolean;
|
|
18
|
+
getAll(): HoldableConversation[];
|
|
19
|
+
get callsLength(): number;
|
|
20
|
+
setActive(id: string): Promise<void>;
|
|
21
|
+
setHold(id: string): Promise<void>;
|
|
22
|
+
switchCall(id: string): Promise<void>;
|
|
23
|
+
clear(): void;
|
|
24
|
+
}
|
|
25
|
+
declare const callRegistry: CallRegistry;
|
|
26
|
+
export { callRegistry };
|
|
@@ -16,7 +16,7 @@ import { ConversationData, ConversationOnStartParams } from '../types/Conversati
|
|
|
16
16
|
import { ExternalId, ExternalParticipant, ExternalParticipantId, ExternalParticipantListChunk, ExternalUserId } from '../types/ExternalId';
|
|
17
17
|
import type { FastJoinHandler } from '../types/FastJoin';
|
|
18
18
|
import MediaModifiers from '../types/MediaModifiers';
|
|
19
|
-
import { IVideoDimentions } from '../types/MediaSettings';
|
|
19
|
+
import MediaSettings, { IVideoDimentions } from '../types/MediaSettings';
|
|
20
20
|
import { IAddMovieParams, IUpdateMovieData } from '../types/MovieShare';
|
|
21
21
|
import MuteStates from '../types/MuteStates';
|
|
22
22
|
import { CompositeUserId, IGetParticipantsParameters, ParticipantId, ParticipantStateData } from '../types/Participant';
|
|
@@ -37,9 +37,13 @@ export default class Conversation extends EventEmitter {
|
|
|
37
37
|
private _conversation;
|
|
38
38
|
private _myLastRequestedLayouts;
|
|
39
39
|
private _state;
|
|
40
|
+
private _previousState;
|
|
41
|
+
/** Если пользователь в зале ожидания, холд должен вызываться после промоута */
|
|
42
|
+
private _waitingHallHoldPending;
|
|
40
43
|
private _participantState;
|
|
41
44
|
private _participants;
|
|
42
45
|
private _pendingParticipants;
|
|
46
|
+
private _directTransportIsMaster?;
|
|
43
47
|
private _transport;
|
|
44
48
|
private _debugInfo;
|
|
45
49
|
private readonly _debug;
|
|
@@ -52,10 +56,8 @@ export default class Conversation extends EventEmitter {
|
|
|
52
56
|
private _isRealTimeAsrRequested;
|
|
53
57
|
private _serverSettings;
|
|
54
58
|
private _serverTimeOffset;
|
|
55
|
-
private
|
|
56
|
-
private
|
|
57
|
-
private static _delayedHangup;
|
|
58
|
-
private static _abortController;
|
|
59
|
+
private _delayedHangup;
|
|
60
|
+
private _abortController;
|
|
59
61
|
private readonly _onUnload;
|
|
60
62
|
private readonly _audioOutput;
|
|
61
63
|
private readonly _stats;
|
|
@@ -73,6 +75,10 @@ export default class Conversation extends EventEmitter {
|
|
|
73
75
|
static current(): Conversation | null;
|
|
74
76
|
static hangupAfterInit(): void;
|
|
75
77
|
static id(): string | null;
|
|
78
|
+
get id(): string;
|
|
79
|
+
get externalId(): ExternalParticipantId | undefined;
|
|
80
|
+
get mediaSettings(): MediaSettings | undefined;
|
|
81
|
+
get isCallHeld(): boolean;
|
|
76
82
|
static debugSessionId(): string | null;
|
|
77
83
|
static getSyncedTime(): number;
|
|
78
84
|
get debugSessionId(): string | null;
|
|
@@ -108,11 +114,12 @@ export default class Conversation extends EventEmitter {
|
|
|
108
114
|
setVolume(volume: number): void;
|
|
109
115
|
updateStatisticsInterval(): void;
|
|
110
116
|
private _openTransport;
|
|
117
|
+
private _allocateParticipantTransport;
|
|
111
118
|
private _close;
|
|
112
119
|
destroy(): Promise<void>;
|
|
113
120
|
private _getConversationParams;
|
|
114
121
|
private _setConversationParams;
|
|
115
|
-
private
|
|
122
|
+
private _buildSignalingEndpoint;
|
|
116
123
|
/**
|
|
117
124
|
* @throws ErrorEvent
|
|
118
125
|
*/
|
|
@@ -139,7 +146,12 @@ export default class Conversation extends EventEmitter {
|
|
|
139
146
|
private _registerParticipants;
|
|
140
147
|
/** Установим состояние локальных мьютов */
|
|
141
148
|
private _registerParticipantLocalMuteState;
|
|
142
|
-
private
|
|
149
|
+
private _remoteParticipantSessionState;
|
|
150
|
+
private _buildConnectionStatus;
|
|
151
|
+
private _isParticipantSessionStateApplicable;
|
|
152
|
+
private _setTransportStatus;
|
|
153
|
+
private _setSessionState;
|
|
154
|
+
private _emitParticipantTransition;
|
|
143
155
|
private _registerParticipantInCache;
|
|
144
156
|
private _getExistedParticipantByIdOrCreate;
|
|
145
157
|
private _getExternalIdByParticipantId;
|
|
@@ -179,6 +191,7 @@ export default class Conversation extends EventEmitter {
|
|
|
179
191
|
private _cleanupParticipants;
|
|
180
192
|
private _cleanupParticipantAgnosticStreams;
|
|
181
193
|
private _cleanupTransport;
|
|
194
|
+
private _cleanupTransportForHold;
|
|
182
195
|
private _cleanupSpeakerDetector;
|
|
183
196
|
private _cleanupSpecListener;
|
|
184
197
|
private _cleanupSignaling;
|
|
@@ -206,15 +219,18 @@ export default class Conversation extends EventEmitter {
|
|
|
206
219
|
*/
|
|
207
220
|
changePriorities(priorities: ParticipantPriority[]): Promise<void>;
|
|
208
221
|
changeParticipantState(state: ParticipantStateData, compositeUserId?: CompositeUserId): Promise<void>;
|
|
209
|
-
hold(hold: boolean): Promise<void>;
|
|
222
|
+
hold(hold: boolean, lastActiveMediaSettings?: MediaSettings): Promise<void>;
|
|
223
|
+
private _holdLocally;
|
|
224
|
+
private _resumeLocalMedia;
|
|
225
|
+
private _restoreStateAfterHold;
|
|
226
|
+
private _isWaitingForPromotion;
|
|
227
|
+
private _getWaitingForPromotionStatus;
|
|
210
228
|
putHandsDown(): Promise<void>;
|
|
211
229
|
requestKeyFrame(participantStreamDescription: ParticipantStreamDescription): Promise<void | SignalingMessage>;
|
|
212
230
|
requestTestMode(consumerCommand: string, producerCommand: string): Promise<void>;
|
|
213
231
|
updateDisplayLayout(layouts: ParticipantLayout[]): Promise<void>;
|
|
214
232
|
requestDisplayLayout(requests: DisplayLayoutRequest[]): Promise<void>;
|
|
215
233
|
feedback(key: string): Promise<SignalingMessage>;
|
|
216
|
-
userFeedbackStats(userResponse: number, reason?: string, groupCallUsersCount?: number): void;
|
|
217
|
-
sendClientEvent(eventType: string, eventData?: Record<string, string | number | boolean>, immediately?: boolean): void;
|
|
218
234
|
private _changeMediaSettings;
|
|
219
235
|
private _stopStreaming;
|
|
220
236
|
/**
|
|
@@ -310,11 +326,17 @@ export default class Conversation extends EventEmitter {
|
|
|
310
326
|
private _changeMultipleParticipantState;
|
|
311
327
|
private _invokeRolesChangedCallbackIfNeeded;
|
|
312
328
|
private _onSignalingNotification;
|
|
329
|
+
private _onSignalingTopologyChanged;
|
|
313
330
|
private _onPromotionApproved;
|
|
314
331
|
private _onSignalingReconnect;
|
|
315
332
|
private _onSignalingFailed;
|
|
316
333
|
private _onAcceptedCall;
|
|
317
334
|
private _onHungup;
|
|
335
|
+
private _onSessionState;
|
|
336
|
+
private _reconcileParticipantSessionStates;
|
|
337
|
+
private _updateParticipantExternalId;
|
|
338
|
+
private _updateParticipantSessionState;
|
|
339
|
+
private _emitParticipantEffectiveStatusIfSessionOverridesTransport;
|
|
318
340
|
private _onAddedParticipant;
|
|
319
341
|
private _onJoinedParticipant;
|
|
320
342
|
private _onClosedConversation;
|
|
@@ -351,6 +373,7 @@ export default class Conversation extends EventEmitter {
|
|
|
351
373
|
private _onPinParticipant;
|
|
352
374
|
private _onOptionsChanged;
|
|
353
375
|
private _onNetworkStatus;
|
|
376
|
+
private _emitHeldParticipantsStatus;
|
|
354
377
|
private _onRemoteStreamSecond;
|
|
355
378
|
/**
|
|
356
379
|
* Коллбек, вызывающийся при получении/остановке стрима от AnimojiReceiver
|
|
@@ -371,6 +394,7 @@ export default class Conversation extends EventEmitter {
|
|
|
371
394
|
private _onSpeakerChanged;
|
|
372
395
|
private _onTransportStateChanged;
|
|
373
396
|
private _onTransportLocalStateChanged;
|
|
397
|
+
private _areTransportParticipantsOnHold;
|
|
374
398
|
private _onRemoteTrackAdded;
|
|
375
399
|
private _onRemoteTrackRemoved;
|
|
376
400
|
private _removeAudioTrack;
|
|
@@ -400,6 +424,7 @@ export default class Conversation extends EventEmitter {
|
|
|
400
424
|
private _onFeedback;
|
|
401
425
|
private _onDecorativeParticipantIdChanged;
|
|
402
426
|
private _onVideoSuspendSuggest;
|
|
427
|
+
private _onParticipantHold;
|
|
403
428
|
private _isMe;
|
|
404
429
|
private _getMuteStatesForRoomId;
|
|
405
430
|
private _getMuteStatesForCurrentRoom;
|
|
@@ -409,6 +434,8 @@ export default class Conversation extends EventEmitter {
|
|
|
409
434
|
private _getParticipants;
|
|
410
435
|
private _getParticipant;
|
|
411
436
|
}
|
|
437
|
+
declare function _resetPendingInstance(): void;
|
|
438
|
+
export { _resetPendingInstance };
|
|
412
439
|
export declare class UpdateDisplayLayoutError extends Error {
|
|
413
440
|
readonly participantErrors: {
|
|
414
441
|
externalId: ExternalParticipantId;
|
package/classes/MediaSource.d.ts
CHANGED
|
@@ -47,6 +47,7 @@ export declare class MediaSource extends EventEmitter {
|
|
|
47
47
|
/** Трек аудио эффектов. Не изменяется на протяжении всего времени */
|
|
48
48
|
private _audioEffectsTrack;
|
|
49
49
|
private _mediaSettings;
|
|
50
|
+
private _lastMediaSettings;
|
|
50
51
|
private _videoStatusOnScreenCapturingEnabled;
|
|
51
52
|
private _effect;
|
|
52
53
|
private _audioEffectParams;
|
|
@@ -67,7 +68,11 @@ export declare class MediaSource extends EventEmitter {
|
|
|
67
68
|
getSendAudioTrack(): MediaStreamTrack | null;
|
|
68
69
|
get isAnimojiRequested(): boolean;
|
|
69
70
|
addTrackToPeerConnection(pc: RTCPeerConnection, observer: boolean, noDataChannel: boolean): void;
|
|
71
|
+
/**
|
|
72
|
+
* @deprecated Используйте гетер mediaSettings
|
|
73
|
+
*/
|
|
70
74
|
getMediaSettings(): MediaSettings;
|
|
75
|
+
get mediaSettings(): MediaSettings;
|
|
71
76
|
changeDevice(kind: MediaDeviceKind): Promise<void>;
|
|
72
77
|
/**
|
|
73
78
|
* Установка кастомного стрима для видео, например внешний шаринг экрана
|
|
@@ -95,6 +100,8 @@ export declare class MediaSource extends EventEmitter {
|
|
|
95
100
|
private _setEffect;
|
|
96
101
|
private _stopEffect;
|
|
97
102
|
destroy(): void;
|
|
103
|
+
stopLocalMedia(): Promise<void>;
|
|
104
|
+
resumeLocalMedia(lastActiveMediaSettings?: MediaSettings): Promise<void>;
|
|
98
105
|
toggleScreenCapturing(settings: ScreenCaptureSettings): Promise<void>;
|
|
99
106
|
disableScreenCapturing(): Promise<void>;
|
|
100
107
|
private videoTrackMuteHandler;
|
|
@@ -12,12 +12,17 @@ export default class SpecListener extends EventEmitter {
|
|
|
12
12
|
private readonly _debug;
|
|
13
13
|
private readonly _logger;
|
|
14
14
|
private _connectionTimeout;
|
|
15
|
+
private _connectionTimeoutSuppressed;
|
|
15
16
|
private _volumeTimeout;
|
|
16
17
|
constructor(transport: Transport, volumesDetector: VolumesDetector, participants: Record<ParticipantId, Participant>, debug?: DebugLogger, logger?: StatsLogger | null);
|
|
17
18
|
destroy(): void;
|
|
18
19
|
onChangeRemoteMediaSettings(participantId: ParticipantId, mediaSettings: MediaSettings): void;
|
|
20
|
+
onParticipantHoldChanged(): void;
|
|
21
|
+
private _getConnectionTimeout;
|
|
22
|
+
private _getVolumeTimeout;
|
|
19
23
|
private _onTransportStateChanged;
|
|
20
24
|
private _onVolumesDetected;
|
|
21
25
|
private _onConnectionTimeout;
|
|
26
|
+
private _reportConnectionTimeout;
|
|
22
27
|
private _onVolumeTimeout;
|
|
23
28
|
}
|
package/classes/StatsLogger.d.ts
CHANGED
|
@@ -10,20 +10,17 @@ export default class StatsLogger extends BaseLogger {
|
|
|
10
10
|
private readonly _conversationIdProvider;
|
|
11
11
|
private readonly _batchInterval;
|
|
12
12
|
private _batchedClientStats;
|
|
13
|
-
private _batchedClientEvents;
|
|
14
13
|
private _batchTimeout;
|
|
15
14
|
private _serverTimeDelta;
|
|
16
15
|
constructor(api: BaseApi, externalLogger: BaseLogger | null, conversationIdProvider: () => string | null);
|
|
17
16
|
log(name: StatLog, value?: string, immediately?: boolean): void;
|
|
18
17
|
logClientStats(data: Record<string, string | number | boolean | undefined | null>, immediately?: boolean): void;
|
|
19
|
-
logClientEvent(data: Record<string, string | number | boolean | undefined | null>, immediately?: boolean): void;
|
|
20
18
|
destroy(): void;
|
|
21
19
|
private _getConversationId;
|
|
22
20
|
private _sendBatch;
|
|
23
21
|
private _startTimeout;
|
|
24
22
|
private _stopTimeout;
|
|
25
23
|
private _sendClientStats;
|
|
26
|
-
private _sendClientEvents;
|
|
27
24
|
private _calculateServerTimeDelta;
|
|
28
25
|
private _now;
|
|
29
26
|
}
|
|
@@ -27,6 +27,7 @@ export default class DirectTransport extends BaseTransport {
|
|
|
27
27
|
private _iceRestartTimeout;
|
|
28
28
|
private _reconnectionTimeout;
|
|
29
29
|
private _reconnectionPrevented;
|
|
30
|
+
private _remoteHold;
|
|
30
31
|
private _lastStat;
|
|
31
32
|
private _fingerprint;
|
|
32
33
|
private _neverConnected;
|
|
@@ -50,6 +51,10 @@ export default class DirectTransport extends BaseTransport {
|
|
|
50
51
|
updateSettings(settings: ServerSettings): void;
|
|
51
52
|
preventRestart(): void;
|
|
52
53
|
allowRestart(): void;
|
|
54
|
+
setRemoteHold(hold: boolean): void;
|
|
55
|
+
private _recreatePeerConnection;
|
|
56
|
+
private _createPeerConnection;
|
|
57
|
+
private _disposePeerConnection;
|
|
53
58
|
setAnimojiTransport(receiver: AnimojiReceiver, sender: AnimojiSender): void;
|
|
54
59
|
close(error?: Error): void;
|
|
55
60
|
private _setState;
|
|
@@ -55,6 +55,8 @@ export declare class Transport extends EventEmitter {
|
|
|
55
55
|
open(participantIds: ParticipantId[], peerId?: string | null, observer?: boolean, force?: boolean): void;
|
|
56
56
|
close(participantId: ParticipantId): void;
|
|
57
57
|
destroy(): void;
|
|
58
|
+
holdClose(): void;
|
|
59
|
+
setRemoteHold(hold: boolean): void;
|
|
58
60
|
getTopology(): TransportTopology;
|
|
59
61
|
isAllocated(participantId: ParticipantId): boolean;
|
|
60
62
|
allocated(): string[];
|
package/default/Api.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import BaseApi, {
|
|
1
|
+
import BaseApi, { ClientStats } from '../abstract/BaseApi';
|
|
2
2
|
import CallType from '../enums/CallType';
|
|
3
3
|
import HangupType from '../enums/HangupType';
|
|
4
4
|
import ConversationParams from '../types/ConversationParams';
|
|
5
5
|
import ConversationResponse from '../types/ConversationResponse';
|
|
6
6
|
import { ExternalId, ExternalParticipantId, ExternalUserId } from '../types/ExternalId';
|
|
7
7
|
import { CompositeUserId, OkUserId, ParticipantId } from '../types/Participant';
|
|
8
|
+
import PushData from '../types/PushData';
|
|
8
9
|
export default class Api extends BaseApi {
|
|
9
10
|
private _userId;
|
|
10
11
|
private _uuid;
|
|
@@ -19,7 +20,6 @@ export default class Api extends BaseApi {
|
|
|
19
20
|
private _removeCachedAnonymLogin;
|
|
20
21
|
private _applyAnonymLogin;
|
|
21
22
|
logClientStats(items: ClientStats[]): void;
|
|
22
|
-
logClientEvents(items: ClientEvent[]): void;
|
|
23
23
|
uploadDebugLogs(conversationId: string, startTime: number, endTime: number, log: string): Promise<void>;
|
|
24
24
|
joinConversation(conversationId: string, isVideo?: boolean, chatId?: string): Promise<ConversationResponse>;
|
|
25
25
|
createConversation(conversationId: string, payload?: string, requireAuthToJoin?: boolean, { onlyAdminCanShareMovie, audienceMode, audioOnly, waitForAdmin, closedConversation, }?: {
|
|
@@ -65,4 +65,5 @@ export default class Api extends BaseApi {
|
|
|
65
65
|
cleanup(): void;
|
|
66
66
|
private _getExternalIdsByOkIds;
|
|
67
67
|
getServerTime(): Promise<number>;
|
|
68
|
+
getInbounds(): Promise<PushData[]>;
|
|
68
69
|
}
|
|
@@ -24,6 +24,7 @@ declare enum SignalingNotification {
|
|
|
24
24
|
REALLOC_CON = "realloc-con",
|
|
25
25
|
AUDIO_ACTIVITY = "audio-activity",
|
|
26
26
|
SPEAKER_CHANGED = "speaker-changed",
|
|
27
|
+
SESSION_STATE = "session-state",
|
|
27
28
|
STALLED_ACTIVITY = "stalled-activity",
|
|
28
29
|
CHAT_MESSAGE = "chat-message",
|
|
29
30
|
CUSTOM_DATA = "custom-data",
|
|
@@ -50,6 +51,7 @@ declare enum SignalingNotification {
|
|
|
50
51
|
ASR_STARTED = "asr-started",
|
|
51
52
|
ASR_STOPPED = "asr-stopped",
|
|
52
53
|
DECORATIVE_PARTICIPANT_ID_CHANGED = "decorative-participant-id-changed",
|
|
53
|
-
VIDEO_SUSPEND_SUGGEST = "video-suspend-suggest"
|
|
54
|
+
VIDEO_SUSPEND_SUGGEST = "video-suspend-suggest",
|
|
55
|
+
HOLD = "hold"
|
|
54
56
|
}
|
|
55
57
|
export default SignalingNotification;
|
package/package.json
CHANGED