@vkontakte/calls-sdk 2.8.11-dev.d27d8de2.0 → 2.8.11-dev.d5496fb5.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 +3 -5
- package/abstract/BaseSignaling.d.ts +3 -4
- package/calls-sdk.cjs.js +9 -9
- package/calls-sdk.esm.js +2818 -2457
- package/classes/CallRegistry.d.ts +26 -0
- package/classes/Conversation.d.ts +34 -10
- package/classes/MediaSource.d.ts +7 -0
- package/classes/SpecListener.d.ts +5 -0
- package/classes/StatsLogger.d.ts +0 -3
- package/classes/transport/DirectTransport.d.ts +3 -0
- package/classes/transport/Transport.d.ts +2 -0
- package/default/Api.d.ts +9 -3
- package/enums/SignalingNotification.d.ts +3 -1
- package/package.json +1 -1
- package/static/External.d.ts +143 -71
- package/static/Params.d.ts +92 -78
- package/static/ParticipantConnectionStatusUtils.d.ts +16 -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,6 +37,9 @@ 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;
|
|
@@ -52,10 +55,8 @@ export default class Conversation extends EventEmitter {
|
|
|
52
55
|
private _isRealTimeAsrRequested;
|
|
53
56
|
private _serverSettings;
|
|
54
57
|
private _serverTimeOffset;
|
|
55
|
-
private
|
|
56
|
-
private
|
|
57
|
-
private static _delayedHangup;
|
|
58
|
-
private static _abortController;
|
|
58
|
+
private _delayedHangup;
|
|
59
|
+
private _abortController;
|
|
59
60
|
private readonly _onUnload;
|
|
60
61
|
private readonly _audioOutput;
|
|
61
62
|
private readonly _stats;
|
|
@@ -73,6 +74,10 @@ export default class Conversation extends EventEmitter {
|
|
|
73
74
|
static current(): Conversation | null;
|
|
74
75
|
static hangupAfterInit(): void;
|
|
75
76
|
static id(): string | null;
|
|
77
|
+
get id(): string;
|
|
78
|
+
get externalId(): ExternalParticipantId | undefined;
|
|
79
|
+
get mediaSettings(): MediaSettings | undefined;
|
|
80
|
+
get isCallHeld(): boolean;
|
|
76
81
|
static debugSessionId(): string | null;
|
|
77
82
|
static getSyncedTime(): number;
|
|
78
83
|
get debugSessionId(): string | null;
|
|
@@ -139,11 +144,15 @@ export default class Conversation extends EventEmitter {
|
|
|
139
144
|
private _registerParticipants;
|
|
140
145
|
/** Установим состояние локальных мьютов */
|
|
141
146
|
private _registerParticipantLocalMuteState;
|
|
142
|
-
private
|
|
147
|
+
private _remoteParticipantSessionState;
|
|
148
|
+
private _buildConnectionStatus;
|
|
149
|
+
private _isParticipantSessionStateApplicable;
|
|
150
|
+
private _setTransportStatus;
|
|
151
|
+
private _setSessionState;
|
|
152
|
+
private _emitParticipantTransition;
|
|
143
153
|
private _registerParticipantInCache;
|
|
144
154
|
private _getExistedParticipantByIdOrCreate;
|
|
145
155
|
private _getExternalIdByParticipantId;
|
|
146
|
-
private _getExternalIdsByOkIdsFromCache;
|
|
147
156
|
private _registerParticipantAndSetMarkersIfChunkEnabled;
|
|
148
157
|
private _warnParticipantNotInConversation;
|
|
149
158
|
private _denormalizeMarkers;
|
|
@@ -180,6 +189,7 @@ export default class Conversation extends EventEmitter {
|
|
|
180
189
|
private _cleanupParticipants;
|
|
181
190
|
private _cleanupParticipantAgnosticStreams;
|
|
182
191
|
private _cleanupTransport;
|
|
192
|
+
private _cleanupTransportForHold;
|
|
183
193
|
private _cleanupSpeakerDetector;
|
|
184
194
|
private _cleanupSpecListener;
|
|
185
195
|
private _cleanupSignaling;
|
|
@@ -207,15 +217,18 @@ export default class Conversation extends EventEmitter {
|
|
|
207
217
|
*/
|
|
208
218
|
changePriorities(priorities: ParticipantPriority[]): Promise<void>;
|
|
209
219
|
changeParticipantState(state: ParticipantStateData, compositeUserId?: CompositeUserId): Promise<void>;
|
|
210
|
-
hold(hold: boolean): Promise<void>;
|
|
220
|
+
hold(hold: boolean, lastActiveMediaSettings?: MediaSettings): Promise<void>;
|
|
221
|
+
private _holdLocally;
|
|
222
|
+
private _resumeLocalMedia;
|
|
223
|
+
private _restoreStateAfterHold;
|
|
224
|
+
private _isWaitingForPromotion;
|
|
225
|
+
private _getWaitingForPromotionStatus;
|
|
211
226
|
putHandsDown(): Promise<void>;
|
|
212
227
|
requestKeyFrame(participantStreamDescription: ParticipantStreamDescription): Promise<void | SignalingMessage>;
|
|
213
228
|
requestTestMode(consumerCommand: string, producerCommand: string): Promise<void>;
|
|
214
229
|
updateDisplayLayout(layouts: ParticipantLayout[]): Promise<void>;
|
|
215
230
|
requestDisplayLayout(requests: DisplayLayoutRequest[]): Promise<void>;
|
|
216
231
|
feedback(key: string): Promise<SignalingMessage>;
|
|
217
|
-
userFeedbackStats(userResponse: number, reason?: string, groupCallUsersCount?: number): void;
|
|
218
|
-
sendClientEvent(eventType: string, eventData?: Record<string, string | number | boolean>, immediately?: boolean): void;
|
|
219
232
|
private _changeMediaSettings;
|
|
220
233
|
private _stopStreaming;
|
|
221
234
|
/**
|
|
@@ -311,11 +324,17 @@ export default class Conversation extends EventEmitter {
|
|
|
311
324
|
private _changeMultipleParticipantState;
|
|
312
325
|
private _invokeRolesChangedCallbackIfNeeded;
|
|
313
326
|
private _onSignalingNotification;
|
|
327
|
+
private _onSignalingTopologyChanged;
|
|
314
328
|
private _onPromotionApproved;
|
|
315
329
|
private _onSignalingReconnect;
|
|
316
330
|
private _onSignalingFailed;
|
|
317
331
|
private _onAcceptedCall;
|
|
318
332
|
private _onHungup;
|
|
333
|
+
private _onSessionState;
|
|
334
|
+
private _reconcileParticipantSessionStates;
|
|
335
|
+
private _updateParticipantExternalId;
|
|
336
|
+
private _updateParticipantSessionState;
|
|
337
|
+
private _emitParticipantEffectiveStatusIfSessionOverridesTransport;
|
|
319
338
|
private _onAddedParticipant;
|
|
320
339
|
private _onJoinedParticipant;
|
|
321
340
|
private _onClosedConversation;
|
|
@@ -352,6 +371,7 @@ export default class Conversation extends EventEmitter {
|
|
|
352
371
|
private _onPinParticipant;
|
|
353
372
|
private _onOptionsChanged;
|
|
354
373
|
private _onNetworkStatus;
|
|
374
|
+
private _emitHeldParticipantsStatus;
|
|
355
375
|
private _onRemoteStreamSecond;
|
|
356
376
|
/**
|
|
357
377
|
* Коллбек, вызывающийся при получении/остановке стрима от AnimojiReceiver
|
|
@@ -372,6 +392,7 @@ export default class Conversation extends EventEmitter {
|
|
|
372
392
|
private _onSpeakerChanged;
|
|
373
393
|
private _onTransportStateChanged;
|
|
374
394
|
private _onTransportLocalStateChanged;
|
|
395
|
+
private _areTransportParticipantsOnHold;
|
|
375
396
|
private _onRemoteTrackAdded;
|
|
376
397
|
private _onRemoteTrackRemoved;
|
|
377
398
|
private _removeAudioTrack;
|
|
@@ -401,6 +422,7 @@ export default class Conversation extends EventEmitter {
|
|
|
401
422
|
private _onFeedback;
|
|
402
423
|
private _onDecorativeParticipantIdChanged;
|
|
403
424
|
private _onVideoSuspendSuggest;
|
|
425
|
+
private _onParticipantHold;
|
|
404
426
|
private _isMe;
|
|
405
427
|
private _getMuteStatesForRoomId;
|
|
406
428
|
private _getMuteStatesForCurrentRoom;
|
|
@@ -410,6 +432,8 @@ export default class Conversation extends EventEmitter {
|
|
|
410
432
|
private _getParticipants;
|
|
411
433
|
private _getParticipant;
|
|
412
434
|
}
|
|
435
|
+
declare function _resetPendingInstance(): void;
|
|
436
|
+
export { _resetPendingInstance };
|
|
413
437
|
export declare class UpdateDisplayLayoutError extends Error {
|
|
414
438
|
readonly participantErrors: {
|
|
415
439
|
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,8 @@ 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;
|
|
53
56
|
setAnimojiTransport(receiver: AnimojiReceiver, sender: AnimojiSender): void;
|
|
54
57
|
close(error?: Error): void;
|
|
55
58
|
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, }?: {
|
|
@@ -45,9 +45,13 @@ export default class Api extends BaseApi {
|
|
|
45
45
|
}>;
|
|
46
46
|
getAnonymTokenByLink(joinLink: string, username?: string): Promise<string>;
|
|
47
47
|
joinConversationByLink(joinLink: string, isVideo?: boolean, observedIds?: ExternalUserId[], payload?: string): Promise<ConversationResponse>;
|
|
48
|
+
/**
|
|
49
|
+
* NB: Не сохраняет порядок возвращаемых ID
|
|
50
|
+
* @hidden
|
|
51
|
+
*/
|
|
52
|
+
getExternalIdsByOkIds(uids: OkUserId[]): Promise<ExternalParticipantId[]>;
|
|
48
53
|
getCachedOkIdByExternalId(externalId: ExternalId): ParticipantId | null;
|
|
49
54
|
getCachedRawOkIdByExternalId(externalId: ExternalId): OkUserId | null;
|
|
50
|
-
getCachedExternalIdByOkId(okId: OkUserId): ExternalParticipantId | null;
|
|
51
55
|
cacheExternalId(participantId: OkUserId | CompositeUserId | ParticipantId, externalId: ExternalParticipantId): void;
|
|
52
56
|
mapDecorativeId(decorativeId: OkUserId | CompositeUserId | ParticipantId, initialId: OkUserId | CompositeUserId | ParticipantId): void;
|
|
53
57
|
unmapDecorativeId(initialId: OkUserId | CompositeUserId | ParticipantId): void;
|
|
@@ -59,5 +63,7 @@ export default class Api extends BaseApi {
|
|
|
59
63
|
hangupConversation(conversationId: string, reason?: HangupType): void;
|
|
60
64
|
removeHistoryRecords(recordIds: number[]): Promise<void>;
|
|
61
65
|
cleanup(): void;
|
|
66
|
+
private _getExternalIdsByOkIds;
|
|
62
67
|
getServerTime(): Promise<number>;
|
|
68
|
+
getInbounds(): Promise<PushData[]>;
|
|
63
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;
|