@vkontakte/calls-sdk 2.8.5-dev.ba039a1.0 → 2.8.5-dev.bafa170e.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.
Files changed (50) hide show
  1. package/CallsSDK.d.ts +55 -13
  2. package/abstract/BaseApi.d.ts +13 -1
  3. package/abstract/BaseSignaling.d.ts +13 -5
  4. package/calls-sdk.cjs.js +8 -8
  5. package/calls-sdk.esm.js +8 -8
  6. package/classes/AudioFix.d.ts +4 -0
  7. package/classes/AudioOutput.d.ts +3 -0
  8. package/classes/Conversation.d.ts +24 -21
  9. package/classes/HangupReason.d.ts +13 -0
  10. package/classes/Logger.d.ts +7 -0
  11. package/classes/MediaSource.d.ts +18 -5
  12. package/classes/ProducerCommandSerializationService.d.ts +2 -0
  13. package/classes/VideoEffectsFpsLimiter.d.ts +23 -0
  14. package/classes/codec/IDecoder.d.ts +1 -1
  15. package/classes/codec/LibVPxDecoder.d.ts +1 -1
  16. package/classes/codec/LibVPxEncoder.d.ts +0 -3
  17. package/classes/codec/WebCodecsDecoder.d.ts +1 -1
  18. package/classes/screenshare/StreamBuilder.d.ts +1 -0
  19. package/classes/stat/StatFirstMediaReceived.d.ts +6 -5
  20. package/classes/transport/DirectStatReporter.d.ts +2 -1
  21. package/classes/transport/DirectTransport.d.ts +7 -0
  22. package/classes/transport/Transport.d.ts +2 -1
  23. package/default/Api.d.ts +4 -2
  24. package/default/Signaling.d.ts +6 -5
  25. package/enums/ConversationOption.d.ts +2 -1
  26. package/enums/FatalError.d.ts +2 -1
  27. package/enums/HangupType.d.ts +2 -1
  28. package/enums/SignalingCommandType.d.ts +3 -1
  29. package/enums/SignalingNotification.d.ts +3 -1
  30. package/enums/Stat.d.ts +3 -1
  31. package/package.json +4 -3
  32. package/static/ApiTransport.d.ts +1 -1
  33. package/static/ConversationDebugLogger.d.ts +13 -0
  34. package/static/External.d.ts +14 -3
  35. package/static/Params.d.ts +70 -27
  36. package/static/Utils.d.ts +3 -3
  37. package/static/WebRTCUtils.d.ts +8 -3
  38. package/types/Conversation.d.ts +0 -2
  39. package/types/EnableVideoSuspendSuggest.d.ts +3 -0
  40. package/types/GetLogUploadUrlParams.d.ts +6 -0
  41. package/types/GetLogUploadUrlResponse.d.ts +3 -0
  42. package/types/Params.d.ts +1 -1
  43. package/types/Participant.d.ts +5 -0
  44. package/types/SignalingMessage.d.ts +21 -0
  45. package/types/Streams.d.ts +0 -1
  46. package/types/VideoSettings.d.ts +1 -1
  47. package/utils/Conversation.d.ts +7 -1
  48. package/utils/DebugStorage.d.ts +6 -0
  49. package/utils/Media.d.ts +1 -2
  50. package/utils/NavigatorPermissions.d.ts +13 -0
package/CallsSDK.d.ts CHANGED
@@ -2,10 +2,10 @@
2
2
  * CallsSDK
3
3
  */
4
4
  import type { IEffect, VideoEffects } from '@vkontakte/calls-video-effects';
5
+ import type { EffectVoiceChange } from '@vkontakte/calls-audio-effects';
5
6
  import type * as Vmoji from '@vkontakte/calls-vmoji';
6
- import BaseApi from './abstract/BaseApi';
7
7
  import BaseLogger from './abstract/BaseLogger';
8
- import BaseSignaling, { AddParticipantParams } from './abstract/BaseSignaling';
8
+ import { AddParticipantParams } from './abstract/BaseSignaling';
9
9
  import HangupReason, { HangupReasonData } from './classes/HangupReason';
10
10
  import { MediaTrackKind } from './classes/MediaSource';
11
11
  import { AudienceModeHandsResponse } from './types/AudienceMode';
@@ -48,7 +48,7 @@ import { IVideoDimentions, MediaSettings } from './types/MediaSettings';
48
48
  import { IAddMovieParams, IMovieMetaData, IMoviePreview, IOnRemoteMovieData, ISharedMovieInfo, ISharedMovieState, ISharedMovieStateResponse, ISharedMovieStoppedInfo, IUpdateMovieData } from './types/MovieShare';
49
49
  import MuteStates, { IMuteParticipantInternalParams, IMuteParticipantParams } from './types/MuteStates';
50
50
  import { IApiEnv } from './types/Params';
51
- import { CompositeUserId, IGetParticipantsParameters, OkUserId, ParticipantId, ParticipantListMarker, ParticipantListMarkers, ParticipantListType, ParticipantStateMapped } from './types/Participant';
51
+ import { CompositeUserId, IGetParticipantsParameters, OkUserId, ParticipantId, ParticipantListMarker, ParticipantListMarkers, ParticipantListType, ParticipantsStateList, ParticipantStateMapped } from './types/Participant';
52
52
  import ParticipantLayout, { Layout, RequestKeyFrame, StopStream } from './types/ParticipantLayout';
53
53
  import { ParticipantListChunkParameters } from './types/ParticipantListChunk';
54
54
  import ParticipantPriority from './types/ParticipantPriority';
@@ -63,6 +63,7 @@ import { ArrayDequeue } from './utils/ArrayDequeue';
63
63
  import { ApiExternal } from './default/ApiExternal';
64
64
  import AuthData from './static/AuthData';
65
65
  import { VmojiError } from './types/Vmoji';
66
+ import { VolumeDetector } from './classes/VolumeDetector';
66
67
  /**
67
68
  * Информация о текущем браузере
68
69
  */
@@ -193,22 +194,26 @@ export declare const utils: {
193
194
  */
194
195
  participantMarkerCompare: typeof Utils.participantMarkerCompare;
195
196
  };
196
- export declare function setApi(api: BaseApi): void;
197
- export declare function setSignalingFactory(signalingFactory: () => BaseSignaling): void;
198
197
  export declare function setLogger(logger: BaseLogger): void;
199
198
  /**
200
- * Устанавливает библиотеку эффектов
199
+ * Устанавливает библиотеку видео эффектов
201
200
  *
202
201
  * @param effects Экземпляр класса `VideoEffects` из `@vkontakte/calls-video-effects`
203
202
  */
204
203
  export declare function setVideoEffects(effects: VideoEffects): void;
204
+ /**
205
+ * Устанавливает библиотеку аудио эффектов
206
+ *
207
+ * @param effects Экземпляр класса `EffectVoiceChange` из `@vkontakte/calls-audio-effects`
208
+ */
209
+ export declare function setAudioEffects(effects: EffectVoiceChange): void;
205
210
  /**
206
211
  * Устанавливает библиотеку вимоджи
207
212
  *
208
213
  * @param vmoji Экземпляр класса `Vmoji` из `@vkontakte/calls-vmoji`
209
- * @param sdk Экземпляр модуля `@vkontakte/calls-vmoji`, нужен для проброски дебаг сообщений
214
+ * @param sdk Экземпляр модуля `@vkontakte/calls-sdk`, нужен для проброски дебаг сообщений
210
215
  */
211
- export declare function setVmoji(vmoji: typeof Vmoji, sdk?: Parameters<typeof Vmoji.setSDK>[0] | null, renderingOptions?: Vmoji.RenderingOptions | null): void;
216
+ export declare function setVmoji(vmoji: typeof Vmoji, sdk?: Parameters<typeof Vmoji.setSDK>[0] | null, renderingOptions?: Partial<Vmoji.RenderingOptions>, protocolVersion?: Vmoji.AnimojiVersion): void;
212
217
  /**
213
218
  * Инициализирует библиотеку
214
219
  *
@@ -368,8 +373,13 @@ export declare function changePriorities(priorities: ParticipantPriority[]): Pro
368
373
  * Изменяет состояния пользователя в звонке (например, "поднять руку" или "отошёл")
369
374
  *
370
375
  * @param state Список состояний в виде ключ-значение. Максимальная длина ключей и значений - 5 символов. Пустые значения будут пропущены
376
+ * @param externalId Внешний ID пользователя
377
+ */
378
+ export declare function changeParticipantState(state: Record<string, string>, externalId?: ExternalId): Promise<void>;
379
+ /**
380
+ * Принудительно опустить руки участников в текущем сессионном зале админа
371
381
  */
372
- export declare function changeParticipantState(state: Record<string, string>): Promise<void>;
382
+ export declare function putHandsDown(): Promise<void>;
373
383
  /**
374
384
  * Изменяет лейаут.
375
385
  * Также сообщает серверу каких участников звонка стримить на этот клиент
@@ -413,6 +423,13 @@ export declare function setMediaModifiers(mediaModifiers: MediaModifiers): Promi
413
423
  * @param enabled true - включить, false - отключить
414
424
  */
415
425
  export declare function enableVideoSuspend(enabled: boolean): Promise<void>;
426
+ /**
427
+ * Режим, при котором будет предложено включить автоматическое
428
+ * отключение приёма видео в условиях плохого соединения
429
+ *
430
+ * @param enabled true - включить, false - отключить
431
+ */
432
+ export declare function enableVideoSuspendSuggest(enabled: boolean): Promise<void>;
416
433
  /**
417
434
  * Включить/выключить опции звонка
418
435
  *
@@ -504,7 +521,7 @@ export declare function forceRelayPolicy(enabled: boolean): void;
504
521
  * @param groupId
505
522
  * @param roomId
506
523
  */
507
- export declare function startStream(isRecord?: boolean, name?: string | null, movieId?: string | null, privacy?: 'PUBLIC' | 'FRIENDS' | 'DIRECT_LINK', groupId?: string | null, roomId?: number | null, externalAccessKey?: string | null): Promise<undefined>;
524
+ export declare function startStream(isRecord?: boolean, name?: string | null, movieId?: string | null, privacy?: 'PUBLIC' | 'FRIENDS' | 'DIRECT_LINK', groupId?: string | null, roomId?: number | null): Promise<undefined>;
508
525
  /**
509
526
  * Завершить трансляцию звонка
510
527
  * @param roomId
@@ -595,12 +612,23 @@ export declare function debug(enabled: boolean): void;
595
612
  * @param args
596
613
  */
597
614
  export declare function debugMessage(type: DebugMessageType, ...args: any[]): void;
615
+ /**
616
+ * Отправляет клиенские логи по conversationId на сервер OK
617
+ * @example можно посмотреть в examples/anonym/index.html
618
+ */
619
+ export declare function uploadDebugLogs(): Promise<void>;
598
620
  /**
599
621
  * Эффект локального видео
600
622
  *
601
623
  * @param effect
602
624
  */
603
625
  export declare function changeVideoEffect(effect: IEffect | null): Promise<void>;
626
+ /**
627
+ * Эффект локального аудио
628
+ *
629
+ * @param effect
630
+ */
631
+ export declare function changeAudioEffect(effects: string[], isPreset?: boolean): Promise<void>;
604
632
  /**
605
633
  * Позволяет установить кастомный стрим для аудио
606
634
  *
@@ -619,6 +647,12 @@ export declare function setAudioStream(stream: MediaStream): Promise<void>;
619
647
  * нужен только в случае присвоения участнику чужого аватара
620
648
  */
621
649
  export declare function setVmojiSvg(svg: string | ArrayBuffer, externalId?: ExternalId | null, customKey?: string | null): Promise<void>;
650
+ /**
651
+ * Позволяет установить цвет фона собственного vmoji
652
+ *
653
+ * @param {(RGBTuple|string)} fill - цвет в виде rgb-кортежа или hex-кода
654
+ */
655
+ export declare function setVmojiFill(fill: Vmoji.RGBTuple | string): void;
622
656
  /**
623
657
  * Получить состояние зала ожидания
624
658
  *
@@ -638,7 +672,7 @@ export declare function getAudienceModeHands(): Promise<AudienceModeHandsRespons
638
672
  * @param externalId Внешний ID пользователя
639
673
  * @param demote Запретить вход/отобрать права спикера
640
674
  */
641
- export declare function promoteParticipant(externalId: ExternalId, demote?: boolean): Promise<void>;
675
+ export declare function promoteParticipant(externalId?: ExternalId, demote?: boolean): Promise<void>;
642
676
  /**
643
677
  * Запросить/отозвать запрос на получение права стать спикером в комнате в
644
678
  * режиме Audience
@@ -656,6 +690,14 @@ export declare function getParticipantListChunk(participantListChunkParameters:
656
690
  export declare function getParticipants(parameters: IGetParticipantsParameters): Promise<ExternalParticipant[]>;
657
691
  export declare function feedback(key: string): Promise<SignalingMessage>;
658
692
  export declare function userFeedbackStats(userResponse: number, reason?: string, groupCallUsersCount?: number): void;
693
+ /**
694
+ * Логирует клиентское событие статистики
695
+ *
696
+ * @param eventType Тип события
697
+ * @param eventData Дополнительные данные события
698
+ * @param immediatelty Отправить ли событие немедленно
699
+ */
700
+ export declare function logClientEvent(eventType: string, eventData?: Record<string, string | number | boolean>, immediately?: boolean): void;
659
701
  export declare function enableFeatureForRoles(feature: ConversationFeature, roles: UserRole[]): Promise<void>;
660
702
  /**
661
703
  * Удаляет записи истории звонков
@@ -682,5 +724,5 @@ export declare function sendTestCommand(name: string, params?: any): void;
682
724
  * Версия SDK
683
725
  */
684
726
  export declare function version(): string;
685
- export type { AddParticipantParams, AudienceModeHandsResponse, BrowserName, CompositeUserId, ConversationData, ConversationParams, ConversationResponse, ExternalId, ExternalParticipant, ExternalParticipantListChunk, ExternalParticipantListMarker, ExternalParticipantListMarkers as ExternalParticipantMarkers, ExternalParticipantId, GetParticipantsSignalingResponse, GetRoomsSignalingResponse, HangupReasonData, IApiEnv, IAsrStartParams, IAsrStopParams, IAsrData, IceServer, JSONArray, JSONObject, JSONType, Layout, MediaModifiers, MediaSettings, MuteStates, OkUserId, ParamsObject, ParticipantId, ParticipantLayout, ParticipantListMarkers, ParticipantListType, ParticipantPriority, ParticipantStateMapped, ParticipantStreamDescription, ParticipantListChunkParameters, ParticipantListMarker, RequestKeyFrame, Rooms, IGetParticipantsParameters, ScreenCaptureSettings, SignalingMessage, StatResult, StopStream, WaitingHallResponse, IMovieMetaData, IVideoDimentions, IFeedbackExternal, ISharedMovieInfo, ISharedMovieStoppedInfo, ISharedMovieState, ISharedMovieStateResponse, IAddMovieParams, IOnRemoteMovieData, IMoviePreview, IRoomId, Room, RoomsUpdate, RoomParticipantUpdate, IUpdateMovieData, IFeaturesPerRole, IMuteParticipantParams, IMuteParticipantInternalParams, IStartStreamData, IStopStreamData, IPublishStreamData, VmojiError, };
686
- export { Api, AuthData, BaseApi, BaseLogger, BaseSignaling, CallDirection, CallType, ChatRoomEventType, ConversationOption, DebugMessageType, ExternalIdType, FacingMode, FatalError, HangupReason, HangupType, MediaOption, MediaTrackKind, MediaType, MuteState, ParticipantState, ParticipantStatus, RecordRole, Signaling, SignalingCommandType, SignalingConnectionType, SignalingNotification, UserRole, UserType, TransportTopology, RoomsEventType, ConversationFeature, ArrayDequeue, ApiExternal, };
727
+ export type { AddParticipantParams, AudienceModeHandsResponse, BrowserName, CompositeUserId, ConversationData, ConversationParams, ConversationResponse, ExternalId, ExternalParticipant, ExternalParticipantListChunk, ExternalParticipantListMarker, ExternalParticipantListMarkers as ExternalParticipantMarkers, ExternalParticipantId, GetParticipantsSignalingResponse, GetRoomsSignalingResponse, HangupReasonData, IApiEnv, IAsrStartParams, IAsrStopParams, IAsrData, IceServer, JSONArray, JSONObject, JSONType, Layout, MediaModifiers, MediaSettings, MuteStates, OkUserId, ParamsObject, ParticipantId, ParticipantLayout, ParticipantListMarkers, ParticipantListType, ParticipantPriority, ParticipantsStateList, ParticipantStateMapped, ParticipantStreamDescription, ParticipantListChunkParameters, ParticipantListMarker, RequestKeyFrame, Rooms, IGetParticipantsParameters, ScreenCaptureSettings, SignalingMessage, StatResult, StopStream, WaitingHallResponse, IMovieMetaData, IVideoDimentions, IFeedbackExternal, ISharedMovieInfo, ISharedMovieStoppedInfo, ISharedMovieState, ISharedMovieStateResponse, IAddMovieParams, IOnRemoteMovieData, IMoviePreview, IRoomId, Room, RoomsUpdate, RoomParticipantUpdate, IUpdateMovieData, IFeaturesPerRole, IMuteParticipantParams, IMuteParticipantInternalParams, IStartStreamData, IStopStreamData, IPublishStreamData, VmojiError, };
728
+ export { Api, AuthData, BaseLogger, CallDirection, CallType, ChatRoomEventType, ConversationOption, DebugMessageType, ExternalIdType, FacingMode, FatalError, HangupReason, HangupType, MediaOption, MediaTrackKind, MediaType, MuteState, ParticipantState, ParticipantStatus, RecordRole, Signaling, SignalingCommandType, SignalingConnectionType, SignalingNotification, UserRole, UserType, TransportTopology, RoomsEventType, ConversationFeature, ArrayDequeue, ApiExternal, VolumeDetector, };
@@ -8,6 +8,13 @@ export type ClientStats = {
8
8
  vcid: ConversationData['id'] | null;
9
9
  [k: string]: string | number | null;
10
10
  };
11
+ export type ClientEvent = {
12
+ timestamp: number;
13
+ call_topology: 'D' | 'S';
14
+ event_type: string;
15
+ vcid: ConversationData['id'] | null;
16
+ [k: string]: string | number | boolean | null;
17
+ };
11
18
  export type LogItem = {
12
19
  count?: number;
13
20
  custom: ClientStats;
@@ -21,7 +28,6 @@ export type LogItem = {
21
28
  uid: OkUserId | null;
22
29
  };
23
30
  export default abstract class BaseApi {
24
- abstract init(): void;
25
31
  abstract authorize(): Promise<void>;
26
32
  abstract userId(participantId: ParticipantId): Promise<ExternalParticipantId>;
27
33
  abstract createConversation(conversationId: string, payload?: string, requireAuthToJoin?: boolean, createConversationParameters?: {
@@ -52,6 +58,11 @@ export default abstract class BaseApi {
52
58
  * method: vchat.clientStats
53
59
  */
54
60
  logClientStats(items: ClientStats[]): void;
61
+ /**
62
+ * method: vchat.clientEvents
63
+ */
64
+ logClientEvents(items: ClientEvent[]): void;
65
+ abstract uploadDebugLogs(conversationId: string, startTime: number, endTime: number, log: string): Promise<void>;
55
66
  abstract getOkIdsByExternalIds(externalIds: ExternalId[]): Promise<OkUserId[]>;
56
67
  abstract getParticipantIdsByExternalIds(externalIds: ExternalId[]): Promise<Map<ExternalId, ParticipantId>>;
57
68
  abstract getExternalIdsByOkIds(uids: OkUserId[]): Promise<ExternalParticipantId[]>;
@@ -64,5 +75,6 @@ export default abstract class BaseApi {
64
75
  hangupConversation(conversationId: string): void;
65
76
  sendUserFeedbackStats(conversationId: string, userResponse: number, reason?: string, groupCallUsersCount?: number): void;
66
77
  removeHistoryRecords(recordIds: number[]): Promise<void>;
78
+ getServerTime(): Promise<number>;
67
79
  cleanup(): void;
68
80
  }
@@ -26,12 +26,19 @@ import { SharingStatReport } from '../classes/screenshare/SharingStatReport';
26
26
  * Параметры добавления пользователя в звонок
27
27
  */
28
28
  export interface AddParticipantParams {
29
+ /**
30
+ * @deprecated
31
+ */
29
32
  showChatHistory?: boolean;
30
33
  ttChat?: boolean;
31
34
  /**
32
35
  * Удалить юзера из бан-листа. Доступно только админу звонка
33
36
  */
34
37
  unban?: boolean;
38
+ /**
39
+ * JSON.stringify({show_chat_history: boolean})
40
+ */
41
+ payload?: string;
35
42
  }
36
43
  /**
37
44
  * Should trigger SignalingEvent.NOTIFICATION on notification message and SignalingEvent.FAILED on error
@@ -43,12 +50,11 @@ export default abstract class BaseSignaling extends EventEmitter {
43
50
  abstract close(): void;
44
51
  abstract hangup(reason: string): Promise<SignalingMessage | void>;
45
52
  abstract acceptCall(mediaSettings: MediaSettings): Promise<SignalingMessage>;
46
- abstract sendSdp(participantId: ParticipantId, sdp: RTCSessionDescriptionInit): Promise<SignalingMessage>;
53
+ abstract sendSdp(participantId: ParticipantId, sdp: RTCSessionDescriptionInit, extraPayload?: Record<string, any>): Promise<SignalingMessage>;
47
54
  abstract sendCandidate(participantId: ParticipantId, candidate: RTCIceCandidate): Promise<SignalingMessage>;
48
55
  abstract changeMediaSettings(mediaSettings: MediaSettings): Promise<SignalingMessage>;
49
- abstract changeParticipantState(state: {
50
- [key: string]: string;
51
- }): Promise<SignalingMessage>;
56
+ abstract changeParticipantState(state: Record<string, string>, compositeUserId?: CompositeUserId): Promise<SignalingMessage>;
57
+ abstract putHandsDown(): Promise<SignalingMessage>;
52
58
  abstract addParticipant(participantId: CompositeUserId, params?: AddParticipantParams): Promise<SignalingMessage>;
53
59
  abstract removeParticipant(participantId: CompositeUserId, ban?: boolean): Promise<SignalingMessage>;
54
60
  abstract allocateConsumer(description: RTCSessionDescription | null, capabilities: {
@@ -92,11 +98,12 @@ export default abstract class BaseSignaling extends EventEmitter {
92
98
  abstract pinParticipant(participantId: ParticipantId, unpin: boolean, roomId: number | null): Promise<SignalingMessage>;
93
99
  abstract updateMediaModifiers(mediaModifiers: MediaModifiers): Promise<SignalingMessage>;
94
100
  abstract enableVideoSuspend(enabled: boolean): Promise<SignalingMessage>;
101
+ abstract enableVideoSuspendSuggest(enabled: boolean): Promise<SignalingMessage>;
95
102
  abstract changeOptions(changes: {
96
103
  [key in ConversationOption]?: boolean;
97
104
  }): Promise<SignalingMessage>;
98
105
  abstract getWaitingHall(fromId: SignalingMessage.WaitingParticipantId | null, count?: number, backward?: boolean): Promise<SignalingMessage>;
99
- abstract promoteParticipant(participantId: CompositeUserId, demote?: boolean): Promise<SignalingMessage>;
106
+ abstract promoteParticipant(participantId?: CompositeUserId, demote?: boolean): Promise<SignalingMessage>;
100
107
  abstract requestPromotion(unrequest: boolean): Promise<SignalingMessage>;
101
108
  abstract acceptPromotion(reject: boolean): Promise<SignalingMessage>;
102
109
  abstract feedback(key: string): Promise<SignalingMessage>;
@@ -106,6 +113,7 @@ export default abstract class BaseSignaling extends EventEmitter {
106
113
  abstract useCommandDataChannel(status: boolean): void;
107
114
  abstract getParticipantListChunk(participantListChunkParameters: ParticipantListChunkParameters): Promise<SignalingMessage>;
108
115
  abstract getParticipants(externalIds: SignalingMessage.ExternalId[]): Promise<GetParticipantsSignalingResponse>;
116
+ abstract getPeerId(): number | null;
109
117
  abstract startAsr(params: IAsrStartParams): Promise<SignalingMessage>;
110
118
  abstract stopAsr(params?: IAsrStopParams): Promise<SignalingMessage>;
111
119
  abstract requestAsr(request: boolean): Promise<SignalingMessage>;