@vkontakte/calls-sdk 2.6.2-dev.e500a34.0 → 2.6.2-dev.e9ac976.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 +65 -12
  2. package/abstract/BaseApi.d.ts +7 -3
  3. package/abstract/BaseSignaling.d.ts +13 -2
  4. package/calls-sdk.cjs.js +8 -8
  5. package/calls-sdk.esm.js +8 -8
  6. package/classes/Conversation.d.ts +33 -5
  7. package/classes/MediaSource.d.ts +7 -2
  8. package/classes/ProducerCommandSerializationService.d.ts +3 -1
  9. package/classes/codec/IEncoder.d.ts +3 -0
  10. package/classes/codec/LibVPxEncoder.d.ts +4 -1
  11. package/classes/codec/Types.d.ts +6 -1
  12. package/classes/codec/WebCodecsEncoder.d.ts +4 -1
  13. package/classes/screenshare/PacketHistory.d.ts +30 -0
  14. package/classes/screenshare/PacketHistory.test.d.ts +1 -0
  15. package/classes/screenshare/ScreenCaptureSender.d.ts +15 -1
  16. package/classes/screenshare/ScreenCongestionControl.d.ts +25 -0
  17. package/classes/screenshare/SharingStatReport.d.ts +6 -0
  18. package/classes/screenshare/Utils.d.ts +5 -0
  19. package/classes/transport/ServerTransport.d.ts +2 -0
  20. package/default/Api.d.ts +7 -3
  21. package/default/Signaling.d.ts +13 -2
  22. package/enums/ConversationFeature.d.ts +2 -1
  23. package/enums/ConversationOption.d.ts +2 -1
  24. package/enums/LiveStatus.d.ts +7 -0
  25. package/enums/MediaOption.d.ts +3 -1
  26. package/enums/RoomsEventType.d.ts +6 -0
  27. package/enums/SignalingCommandType.d.ts +12 -1
  28. package/enums/SignalingNotification.d.ts +8 -1
  29. package/package.json +1 -1
  30. package/static/External.d.ts +38 -2
  31. package/static/Params.d.ts +60 -2
  32. package/static/Utils.d.ts +2 -1
  33. package/static/WebRTCUtils.d.ts +2 -1
  34. package/types/Asr.d.ts +5 -0
  35. package/types/Conversation.d.ts +12 -0
  36. package/types/ConversationFeature.d.ts +3 -0
  37. package/types/ConversationParams.d.ts +1 -0
  38. package/types/Feedback.d.ts +22 -0
  39. package/types/MediaSettings.d.ts +4 -0
  40. package/types/MovieShare.d.ts +18 -2
  41. package/types/Participant.d.ts +1 -0
  42. package/types/ParticipantListChunk.d.ts +2 -0
  43. package/types/ParticipantStreamDescription.d.ts +2 -1
  44. package/types/Room.d.ts +72 -0
  45. package/types/SignalingMessage.d.ts +56 -0
  46. package/types/WaitingHall.d.ts +2 -8
  47. package/utils/ArrayDequeue.d.ts +24 -0
  48. package/utils/ArrayDequeue.spec.d.ts +1 -0
  49. package/utils/Conversation.d.ts +2 -0
  50. package/worker/LibVPxEncoderWorker.d.ts +1 -1
package/CallsSDK.d.ts CHANGED
@@ -45,9 +45,16 @@ import ParticipantLayout, { Layout, StopStream } from './types/ParticipantLayout
45
45
  import { ParticipantListChunkParameters } from './types/ParticipantListChunk';
46
46
  import ParticipantPriority from './types/ParticipantPriority';
47
47
  import { MediaType, ParticipantStreamDescription } from './types/ParticipantStreamDescription';
48
+ import { Room, RoomsUpdate, RoomParticipantUpdate } from './types/Room';
49
+ import RoomsEventType from './enums/RoomsEventType';
48
50
  import SignalingMessage from './types/SignalingMessage';
49
51
  import { WaitingHallResponse } from './types/WaitingHall';
50
- import { ISharedMovieInfo, ISharedMovieStoppedInfo, ISharedMovieState, ISharedMovieStateResponse, IAddMovieParams, IOnRemoteMovieData, IMoviePreview } from './types/MovieShare';
52
+ import { IFeedbackExternal } from './types/Feedback';
53
+ import { ISharedMovieInfo, ISharedMovieStoppedInfo, ISharedMovieState, ISharedMovieStateResponse, IAddMovieParams, IOnRemoteMovieData, IMoviePreview, IUpdateMovieData } from './types/MovieShare';
54
+ import ConversationFeature from './enums/ConversationFeature';
55
+ import { IFeaturesPerRole } from './types/ConversationFeature';
56
+ import { ArrayDequeue } from './utils/ArrayDequeue';
57
+ import { AsrInfo } from './types/Asr';
51
58
  /**
52
59
  * Информация о текущем браузере
53
60
  */
@@ -186,9 +193,10 @@ export declare function init(params: Partial<ParamsObject>): Promise<void>;
186
193
  * @param payload Дополнительные данные для передачи на сервер
187
194
  * @param joiningAllowed Создать токен комнаты для подключения по ссылке
188
195
  * @param requireAuthToJoin Запретить анонимам подключаться по ссылке (если поддерживается сервером)
196
+ * @param onlyAdminCanShareMovie Только администратор может включать совметсный просмотр
189
197
  */
190
- export declare function callTo(externalId?: string | ExternalId | string[] | ExternalId[], mediaOptions?: MediaOption[], payload?: string, joiningAllowed?: boolean, requireAuthToJoin?: boolean): Promise<ConversationData>;
191
- export declare function callInternal(ids: OkUserId[], type: CallType, mediaOptions: MediaOption[], payload?: string, joiningAllowed?: boolean, requireAuthToJoin?: boolean): Promise<ConversationData>;
198
+ export declare function callTo(externalId?: string | ExternalId | string[] | ExternalId[], mediaOptions?: MediaOption[], payload?: string, joiningAllowed?: boolean, requireAuthToJoin?: boolean, onlyAdminCanShareMovie?: boolean): Promise<ConversationData>;
199
+ export declare function callInternal(ids: OkUserId[], type: CallType, mediaOptions: MediaOption[], payload?: string, joiningAllowed?: boolean, requireAuthToJoin?: boolean, onlyAdminCanShareMovie?: boolean): Promise<ConversationData>;
192
200
  /**
193
201
  * Обработать пуш о входящем звонке
194
202
  *
@@ -242,7 +250,7 @@ export declare function joinCallInternal(conversationId: string, mediaOptions: M
242
250
  * @param mediaOptions Нужно ли включать камеру и микрофон
243
251
  * @param anonymToken Токен анонимной авторизации
244
252
  */
245
- export declare function joinCallByLink(joinLink: string, mediaOptions?: MediaOption[], anonymToken?: string, observedIds?: ExternalUserId[]): Promise<ConversationData>;
253
+ export declare function joinCallByLink(joinLink: string, mediaOptions?: MediaOption[], anonymToken?: string, observedIds?: ExternalUserId[], payload?: string): Promise<ConversationData>;
246
254
  /**
247
255
  * Завершить текущий разговор
248
256
  */
@@ -276,6 +284,13 @@ export declare function changeDevice(kind: MediaDeviceKind, deviceId: string): P
276
284
  * @param state Включить или выключить
277
285
  */
278
286
  export declare function captureScreen(state: boolean): Promise<void>;
287
+ /**
288
+ * Включить/выключить захват экрана
289
+ *
290
+ * @param screenState Включить или выключить захват экрана.
291
+ * @param audioShareState Включить или выключить захват звука. Может быть использован только вместе с захватом экрана.
292
+ */
293
+ export declare function captureScreenAndAudio(screenState: boolean, audioShareState: boolean): Promise<void>;
279
294
  /**
280
295
  * Позволяет установить кастомный стрим для видео
281
296
  * например для стрима из canvas, с наложением изображений
@@ -395,9 +410,12 @@ export declare function customDataInternal(data: JSONObject, uid?: OkUserId | nu
395
410
  *
396
411
  * @param payload Дополнительные данные для передачи на сервер
397
412
  * @param requireAuthToJoin Запретить анонимам подключаться по ссылке (если поддерживается сервером)
413
+ * @param startConversationParameters Дополнительные параметры для создания звонка (например onlyAdminCanShareMovie)
398
414
  * @returns Токен комнаты
399
415
  */
400
- export declare function startConversation(payload?: string, requireAuthToJoin?: boolean): Promise<string>;
416
+ export declare function startConversation(payload?: string, requireAuthToJoin?: boolean, { onlyAdminCanShareMovie }?: {
417
+ onlyAdminCanShareMovie?: boolean;
418
+ }): Promise<string>;
401
419
  /**
402
420
  * Создать токен комнаты для подключения по ссылке к существующему звонку
403
421
  *
@@ -456,18 +474,43 @@ export declare function addMovie(params: IAddMovieParams): Promise<{
456
474
  /**
457
475
  * Изменить видео/лайв в звонке
458
476
  *
459
- * @param movieId
460
- * @param gain
461
- * @param offset
462
- * @param pause
477
+ * @param params
463
478
  */
464
- export declare function updateMovie(movieId: string, gain?: number, offset?: number, pause?: boolean): Promise<void>;
479
+ export declare function updateMovie(params: IUpdateMovieData): Promise<void>;
465
480
  /**
466
481
  * Удалить видео/лайв из звонка
467
482
  *
468
483
  * @param movieId
469
484
  */
470
485
  export declare function removeMovie(movieId: string): Promise<void>;
486
+ /**
487
+ * Обновить комнаты
488
+ * @param rooms id в случае обновления комнаты
489
+ * @param assignRandomly рандомно назначить участников комнаты из свободных в соответствии с participantCount
490
+ */
491
+ export declare function updateRooms(rooms: {
492
+ id?: number;
493
+ name?: string;
494
+ participantCount?: number;
495
+ active?: boolean;
496
+ }[], assignRandomly: boolean): Promise<void>;
497
+ /**
498
+ * Активировать комнаты
499
+ * @param roomIds
500
+ * @param deactivate
501
+ */
502
+ export declare function activateRooms(roomIds: number[], deactivate: boolean): Promise<void>;
503
+ /**
504
+ * Cменить комнату
505
+ * @param toRoomId
506
+ * @param participantId
507
+ */
508
+ export declare function switchRoom(toRoomId?: number, participantId?: string | ExternalParticipantId | null): Promise<void>;
509
+ /**
510
+ * Удалить комнаты
511
+ * @param roomIds
512
+ */
513
+ export declare function removeRooms(roomIds: number[]): Promise<void>;
471
514
  /**
472
515
  * Устанавливает интервал обновления статистики и вызова `onStatistics`
473
516
  *
@@ -517,15 +560,25 @@ export declare function getWaitingHall(pageMarker?: string | null, count?: numbe
517
560
  export declare function promoteParticipant(externalId: ExternalId, demote?: boolean): Promise<void>;
518
561
  export declare function getParticipantListChunk(participantListChunkParameters: ParticipantListChunkParameters): Promise<import("./types/ExternalId").ExternalParticipantListChunk>;
519
562
  export declare function getParticipants(parameters: IGetParticipantsParameters): Promise<ExternalParticipant[]>;
563
+ export declare function feedback(key: string): Promise<SignalingMessage>;
564
+ export declare function enableFeatureForRoles(feature: ConversationFeature, roles: UserRole[]): Promise<void>;
520
565
  /**
521
566
  * Удаляет записи истории звонков
522
567
  *
523
568
  * @param recordIds Идентификаторы записей истории
524
569
  */
525
570
  export declare function removeHistoryRecords(recordIds: number[]): Promise<void>;
571
+ /**
572
+ * Начинает текстовую расшифровку звонка
573
+ */
574
+ export declare function startAsr(): Promise<void>;
575
+ /**
576
+ * Заканчивает текстовую расшифровку звонка
577
+ */
578
+ export declare function stopAsr(): Promise<void>;
526
579
  /**
527
580
  * Версия SDK
528
581
  */
529
582
  export declare function version(): string;
530
- export type { AddParticipantParams, ConversationData, ConversationParams, ConversationResponse, ExternalId, ExternalParticipant, ExternalParticipantListMarkers as ExternalParticipantMarkers, ExternalParticipantId, HangupReasonData, IceServer, JSONArray, JSONObject, JSONType, Layout, MediaModifiers, MediaSettings, MuteStates, OkUserId, ParamsObject, ParticipantLayout, ParticipantPriority, ParticipantStateMapped, ParticipantStreamDescription, ParticipantListChunkParameters, IGetParticipantsParameters, SignalingMessage, StatResult, StopStream, WaitingHallResponse, IVideoDimentions, ISharedMovieInfo, ISharedMovieStoppedInfo, ISharedMovieState, ISharedMovieStateResponse, IAddMovieParams, IOnRemoteMovieData, IMoviePreview, };
531
- export { Api, 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, Utils, TransportTopology, };
583
+ export type { AddParticipantParams, ConversationData, ConversationParams, ConversationResponse, ExternalId, ExternalParticipant, ExternalParticipantListMarkers as ExternalParticipantMarkers, ExternalParticipantId, HangupReasonData, IceServer, JSONArray, JSONObject, JSONType, Layout, MediaModifiers, MediaSettings, MuteStates, OkUserId, ParamsObject, ParticipantLayout, ParticipantPriority, ParticipantStateMapped, ParticipantStreamDescription, ParticipantListChunkParameters, IGetParticipantsParameters, SignalingMessage, StatResult, StopStream, WaitingHallResponse, IVideoDimentions, IFeedbackExternal, ISharedMovieInfo, ISharedMovieStoppedInfo, ISharedMovieState, ISharedMovieStateResponse, IAddMovieParams, IOnRemoteMovieData, IMoviePreview, Room, RoomsUpdate, RoomParticipantUpdate, IUpdateMovieData, IFeaturesPerRole, AsrInfo, };
584
+ export { Api, 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, Utils, TransportTopology, RoomsEventType, ConversationFeature, ArrayDequeue, };
@@ -19,8 +19,12 @@ export default abstract class BaseApi {
19
19
  abstract init(): void;
20
20
  abstract authorize(): Promise<void>;
21
21
  abstract userId(participantId: CompositeUserId): Promise<ExternalId>;
22
- abstract createConversation(conversationId: string, payload?: string, requireAuthToJoin?: boolean): Promise<ConversationResponse>;
23
- abstract startConversation(conversationId: string, ids?: OkUserId[], type?: CallType, isVideo?: boolean, payload?: string, joiningAllowed?: boolean, requireAuthToJoin?: boolean): Promise<ConversationResponse>;
22
+ abstract createConversation(conversationId: string, payload?: string, requireAuthToJoin?: boolean, createConversationParameters?: {
23
+ onlyAdminCanShareMovie?: boolean;
24
+ }): Promise<ConversationResponse>;
25
+ abstract startConversation(conversationId: string, ids?: OkUserId[], type?: CallType, isVideo?: boolean, payload?: string, joiningAllowed?: boolean, requireAuthToJoin?: boolean, createConversationParameters?: {
26
+ onlyAdminCanShareMovie?: boolean;
27
+ }): Promise<ConversationResponse>;
24
28
  abstract joinConversation(conversationId: string, isVideo?: boolean, chatId?: string): Promise<ConversationResponse>;
25
29
  createJoinLink(conversationId: string): Promise<{
26
30
  join_link: string;
@@ -29,7 +33,7 @@ export default abstract class BaseApi {
29
33
  success: boolean;
30
34
  }>;
31
35
  getAnonymTokenByLink(joinLink: string, username?: string): Promise<string>;
32
- abstract joinConversationByLink(joinLink: string, isVideo?: boolean, observedIds?: ExternalUserId[]): Promise<ConversationResponse>;
36
+ abstract joinConversationByLink(joinLink: string, isVideo?: boolean, observedIds?: ExternalUserId[], payload?: string): Promise<ConversationResponse>;
33
37
  abstract getConversationParams(conversationId?: string): Promise<ConversationParams>;
34
38
  abstract getUserId(): OkUserId | null;
35
39
  abstract setUserId(userId: OkUserId): void;
@@ -2,6 +2,7 @@ import EventEmitter from '../classes/EventEmitter';
2
2
  import { ParticipantIdRegistry } from '../classes/ParticipantIdRegistry';
3
3
  import { PerfStatReport } from '../classes/transport/PerfStatReporter';
4
4
  import { TransportTopology } from '../classes/transport/Transport';
5
+ import ConversationFeature from '../enums/ConversationFeature';
5
6
  import ConversationOption from '../enums/ConversationOption';
6
7
  import MediaOption from '../enums/MediaOption';
7
8
  import RecordRole from '../enums/RecordRole';
@@ -11,13 +12,14 @@ import { JSONObject } from '../static/Json';
11
12
  import ConversationResponse from '../types/ConversationResponse';
12
13
  import MediaModifiers from '../types/MediaModifiers';
13
14
  import MediaSettings from '../types/MediaSettings';
14
- import { IAddMovieParams, ISharedMovieState } from '../types/MovieShare';
15
+ import { IAddMovieParams, IUpdateMovieData } from '../types/MovieShare';
15
16
  import MuteStates from '../types/MuteStates';
16
17
  import { CompositeUserId, ParticipantId } from '../types/Participant';
17
18
  import { ParticipantLayout, RequestKeyFrame, StopStream } from '../types/ParticipantLayout';
18
19
  import { ParticipantListChunkParameters } from '../types/ParticipantListChunk';
19
20
  import SignalingMessage from '../types/SignalingMessage';
20
21
  import { WaitingParticipantId } from '../types/WaitingHall';
22
+ import { SharingStatReport } from '../classes/screenshare/SharingStatReport';
21
23
  /**
22
24
  * Параметры добавления пользователя в звонок
23
25
  */
@@ -58,19 +60,25 @@ export default abstract class BaseSignaling extends EventEmitter {
58
60
  [streamDesc: string]: ParticipantLayout | StopStream | RequestKeyFrame;
59
61
  }): Promise<SignalingMessage | void>;
60
62
  abstract addMovie(data: IAddMovieParams): Promise<SignalingMessage>;
61
- abstract updateMovie(data: ISharedMovieState): Promise<SignalingMessage>;
63
+ abstract updateMovie(data: IUpdateMovieData): Promise<SignalingMessage>;
62
64
  abstract removeMovie(data: any): Promise<SignalingMessage>;
65
+ abstract updateRooms(rooms: Record<any, any>[], assignRandomly: boolean): Promise<SignalingMessage>;
66
+ abstract activateRooms(roomIds: number[], deactivate: boolean): Promise<SignalingMessage>;
67
+ abstract switchRoom(toRoomId?: number, participantId?: ParticipantId): Promise<SignalingMessage>;
68
+ abstract removeRooms(roomIds: number[]): Promise<SignalingMessage>;
63
69
  abstract startStream(data: any): Promise<SignalingMessage>;
64
70
  abstract stopStream(): Promise<SignalingMessage>;
65
71
  abstract recordSetRole(participantId: ParticipantId, role: RecordRole | null): Promise<SignalingMessage>;
66
72
  abstract getRecordStatus(): Promise<SignalingMessage>;
67
73
  abstract switchTopology(topology: TransportTopology, force?: boolean): Promise<SignalingMessage>;
68
74
  abstract reportPerfStat(report: PerfStatReport): Promise<SignalingMessage>;
75
+ abstract reportSharingStat(report: SharingStatReport): Promise<SignalingMessage>;
69
76
  abstract chatMessage(message: string, participantId: CompositeUserId | null): Promise<SignalingMessage>;
70
77
  abstract chatHistory(count: number): Promise<SignalingMessage>;
71
78
  abstract customData(data: JSONObject, participantId: ParticipantId | null): Promise<SignalingMessage>;
72
79
  abstract grantRoles(participantId: CompositeUserId, roles: UserRole[], revoke: boolean): Promise<SignalingMessage>;
73
80
  abstract muteParticipant(participantId: ParticipantId | null, muteStates: MuteStates, requestedMedia: MediaOption[]): Promise<SignalingMessage>;
81
+ abstract enableFeatureForRoles(feature: ConversationFeature, roles: UserRole[]): Promise<SignalingMessage>;
74
82
  abstract pinParticipant(participantId: ParticipantId, unpin: boolean): Promise<SignalingMessage>;
75
83
  abstract updateMediaModifiers(mediaModifiers: MediaModifiers): Promise<SignalingMessage>;
76
84
  abstract changeOptions(changes: {
@@ -78,11 +86,14 @@ export default abstract class BaseSignaling extends EventEmitter {
78
86
  }): Promise<SignalingMessage>;
79
87
  abstract getWaitingHall(fromId: WaitingParticipantId | null, count?: number, backward?: boolean): Promise<SignalingMessage>;
80
88
  abstract promoteParticipant(participantId: CompositeUserId, demote?: boolean): Promise<SignalingMessage>;
89
+ abstract feedback(key: string): Promise<SignalingMessage>;
81
90
  abstract setProducerNotificationDataChannel(dataChannel: RTCDataChannel): void;
82
91
  abstract setProducerCommandDataChannel(dataChannel: RTCDataChannel): void;
83
92
  abstract useCommandDataChannel(status: boolean): void;
84
93
  abstract getParticipantListChunk(participantListChunkParameters: ParticipantListChunkParameters): Promise<SignalingMessage>;
85
94
  abstract getParticipants(externalIds: SignalingMessage.ExternalId[]): Promise<SignalingMessage>;
95
+ abstract startAsr(): Promise<SignalingMessage>;
96
+ abstract stopAsr(): Promise<SignalingMessage>;
86
97
  get ready(): boolean;
87
98
  setParticipantIdRegistry(participantIdRegistry: ParticipantIdRegistry): void;
88
99
  requestRealloc(): void;