@vkontakte/calls-sdk 2.6.2-dev.c83d2bc.0 → 2.6.2-dev.cce48ad.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 (46) hide show
  1. package/CallsSDK.d.ts +66 -11
  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 +32 -5
  7. package/classes/MediaSource.d.ts +7 -2
  8. package/classes/ProducerCommandSerializationService.d.ts +2 -0
  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/LiveStatus.d.ts +7 -0
  24. package/enums/MediaOption.d.ts +3 -1
  25. package/enums/RoomsEventType.d.ts +6 -0
  26. package/enums/SignalingCommandType.d.ts +11 -1
  27. package/enums/SignalingNotification.d.ts +11 -1
  28. package/package.json +1 -1
  29. package/static/External.d.ts +90 -4
  30. package/static/Params.d.ts +82 -2
  31. package/static/WebRTCUtils.d.ts +2 -1
  32. package/types/Asr.d.ts +5 -0
  33. package/types/ConversationFeature.d.ts +3 -0
  34. package/types/ConversationParams.d.ts +1 -0
  35. package/types/ExternalId.d.ts +2 -0
  36. package/types/MediaSettings.d.ts +5 -1
  37. package/types/MovieShare.d.ts +58 -0
  38. package/types/Participant.d.ts +2 -0
  39. package/types/ParticipantListChunk.d.ts +2 -0
  40. package/types/ParticipantStreamDescription.d.ts +2 -1
  41. package/types/Room.d.ts +71 -0
  42. package/types/SignalingMessage.d.ts +58 -0
  43. package/types/WaitingHall.d.ts +2 -8
  44. package/utils/ArrayDequeue.d.ts +24 -0
  45. package/utils/ArrayDequeue.spec.d.ts +1 -0
  46. package/worker/LibVPxEncoderWorker.d.ts +1 -1
package/CallsSDK.d.ts CHANGED
@@ -9,6 +9,7 @@ import { ConversationData } from './classes/Conversation';
9
9
  import HangupReason, { HangupReasonData } from './classes/HangupReason';
10
10
  import { MediaTrackKind } from './classes/MediaSource';
11
11
  import { StatResult } from './classes/transport/Statistics';
12
+ import { TransportTopology } from './classes/transport/Transport';
12
13
  import Api from './default/Api';
13
14
  import Signaling from './default/Signaling';
14
15
  import CallDirection from './enums/CallDirection';
@@ -39,14 +40,21 @@ import IceServer from './types/IceServer';
39
40
  import MediaModifiers from './types/MediaModifiers';
40
41
  import { IVideoDimentions, MediaSettings } from './types/MediaSettings';
41
42
  import MuteStates from './types/MuteStates';
42
- import { IGetParticipantsParameters, OkUserId, ParticipantStateMapped } from './types/Participant';
43
+ import { IGetParticipantsParameters, OkUserId, ParticipantId, ParticipantStateMapped } from './types/Participant';
43
44
  import ParticipantLayout, { Layout, StopStream } from './types/ParticipantLayout';
44
45
  import { ParticipantListChunkParameters } from './types/ParticipantListChunk';
45
46
  import ParticipantPriority from './types/ParticipantPriority';
46
47
  import { MediaType, ParticipantStreamDescription } from './types/ParticipantStreamDescription';
48
+ import { Room, RoomsUpdate, RoomParticipantUpdate } from './types/Room';
49
+ import RoomsEventType from './enums/RoomsEventType';
47
50
  import SignalingMessage from './types/SignalingMessage';
48
51
  import { WaitingHallResponse } from './types/WaitingHall';
49
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';
50
58
  /**
51
59
  * Информация о текущем браузере
52
60
  */
@@ -185,9 +193,10 @@ export declare function init(params: Partial<ParamsObject>): Promise<void>;
185
193
  * @param payload Дополнительные данные для передачи на сервер
186
194
  * @param joiningAllowed Создать токен комнаты для подключения по ссылке
187
195
  * @param requireAuthToJoin Запретить анонимам подключаться по ссылке (если поддерживается сервером)
196
+ * @param onlyAdminCanShareMovie Только администратор может включать совметсный просмотр
188
197
  */
189
- export declare function callTo(externalId?: string | ExternalId | string[] | ExternalId[], mediaOptions?: MediaOption[], payload?: string, joiningAllowed?: boolean, requireAuthToJoin?: boolean): Promise<ConversationData>;
190
- 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>;
191
200
  /**
192
201
  * Обработать пуш о входящем звонке
193
202
  *
@@ -241,7 +250,7 @@ export declare function joinCallInternal(conversationId: string, mediaOptions: M
241
250
  * @param mediaOptions Нужно ли включать камеру и микрофон
242
251
  * @param anonymToken Токен анонимной авторизации
243
252
  */
244
- 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>;
245
254
  /**
246
255
  * Завершить текущий разговор
247
256
  */
@@ -275,6 +284,13 @@ export declare function changeDevice(kind: MediaDeviceKind, deviceId: string): P
275
284
  * @param state Включить или выключить
276
285
  */
277
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>;
278
294
  /**
279
295
  * Позволяет установить кастомный стрим для видео
280
296
  * например для стрима из canvas, с наложением изображений
@@ -394,9 +410,12 @@ export declare function customDataInternal(data: JSONObject, uid?: OkUserId | nu
394
410
  *
395
411
  * @param payload Дополнительные данные для передачи на сервер
396
412
  * @param requireAuthToJoin Запретить анонимам подключаться по ссылке (если поддерживается сервером)
413
+ * @param startConversationParameters Дополнительные параметры для создания звонка (например onlyAdminCanShareMovie)
397
414
  * @returns Токен комнаты
398
415
  */
399
- 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>;
400
419
  /**
401
420
  * Создать токен комнаты для подключения по ссылке к существующему звонку
402
421
  *
@@ -448,23 +467,50 @@ export declare function getStreamInfo(): Promise<{
448
467
  *
449
468
  * @param movieId
450
469
  */
451
- export declare function addMovie(movieId: string): Promise<{
470
+ export declare function addMovie(params: IAddMovieParams): Promise<{
452
471
  movieId: string;
453
472
  streamType: string;
454
473
  }>;
455
474
  /**
456
475
  * Изменить видео/лайв в звонке
457
476
  *
458
- * @param movieId
459
- * @param gain
477
+ * @param params
460
478
  */
461
- export declare function updateMovie(movieId: string, gain?: number, offset?: string, pause?: boolean): Promise<void>;
479
+ export declare function updateMovie(params: IUpdateMovieData): Promise<void>;
462
480
  /**
463
481
  * Удалить видео/лайв из звонка
464
482
  *
465
483
  * @param movieId
466
484
  */
467
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?: ParticipantId): Promise<void>;
509
+ /**
510
+ * Удалить комнаты
511
+ * @param roomIds
512
+ */
513
+ export declare function removeRooms(roomIds: number[]): Promise<void>;
468
514
  /**
469
515
  * Устанавливает интервал обновления статистики и вызова `onStatistics`
470
516
  *
@@ -515,15 +561,24 @@ export declare function promoteParticipant(externalId: ExternalId, demote?: bool
515
561
  export declare function getParticipantListChunk(participantListChunkParameters: ParticipantListChunkParameters): Promise<import("./types/ExternalId").ExternalParticipantListChunk>;
516
562
  export declare function getParticipants(parameters: IGetParticipantsParameters): Promise<ExternalParticipant[]>;
517
563
  export declare function feedback(key: string): Promise<SignalingMessage>;
564
+ export declare function enableFeatureForRoles(feature: ConversationFeature, roles: UserRole[]): Promise<void>;
518
565
  /**
519
566
  * Удаляет записи истории звонков
520
567
  *
521
568
  * @param recordIds Идентификаторы записей истории
522
569
  */
523
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>;
524
579
  /**
525
580
  * Версия SDK
526
581
  */
527
582
  export declare function version(): string;
528
- 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, };
529
- 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, };
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,12 +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';
15
+ import { IAddMovieParams, IUpdateMovieData } from '../types/MovieShare';
14
16
  import MuteStates from '../types/MuteStates';
15
17
  import { CompositeUserId, ParticipantId } from '../types/Participant';
16
18
  import { ParticipantLayout, RequestKeyFrame, StopStream } from '../types/ParticipantLayout';
17
19
  import { ParticipantListChunkParameters } from '../types/ParticipantListChunk';
18
20
  import SignalingMessage from '../types/SignalingMessage';
19
21
  import { WaitingParticipantId } from '../types/WaitingHall';
22
+ import { SharingStatReport } from '../classes/screenshare/SharingStatReport';
20
23
  /**
21
24
  * Параметры добавления пользователя в звонок
22
25
  */
@@ -56,20 +59,26 @@ export default abstract class BaseSignaling extends EventEmitter {
56
59
  abstract updateDisplayLayout(layouts: {
57
60
  [streamDesc: string]: ParticipantLayout | StopStream | RequestKeyFrame;
58
61
  }): Promise<SignalingMessage | void>;
59
- abstract addMovie(data: any): Promise<SignalingMessage>;
60
- abstract updateMovie(data: any): Promise<SignalingMessage>;
62
+ abstract addMovie(data: IAddMovieParams): Promise<SignalingMessage>;
63
+ abstract updateMovie(data: IUpdateMovieData): Promise<SignalingMessage>;
61
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>;
62
69
  abstract startStream(data: any): Promise<SignalingMessage>;
63
70
  abstract stopStream(): Promise<SignalingMessage>;
64
71
  abstract recordSetRole(participantId: ParticipantId, role: RecordRole | null): Promise<SignalingMessage>;
65
72
  abstract getRecordStatus(): Promise<SignalingMessage>;
66
73
  abstract switchTopology(topology: TransportTopology, force?: boolean): Promise<SignalingMessage>;
67
74
  abstract reportPerfStat(report: PerfStatReport): Promise<SignalingMessage>;
75
+ abstract reportSharingStat(report: SharingStatReport): Promise<SignalingMessage>;
68
76
  abstract chatMessage(message: string, participantId: CompositeUserId | null): Promise<SignalingMessage>;
69
77
  abstract chatHistory(count: number): Promise<SignalingMessage>;
70
78
  abstract customData(data: JSONObject, participantId: ParticipantId | null): Promise<SignalingMessage>;
71
79
  abstract grantRoles(participantId: CompositeUserId, roles: UserRole[], revoke: boolean): Promise<SignalingMessage>;
72
80
  abstract muteParticipant(participantId: ParticipantId | null, muteStates: MuteStates, requestedMedia: MediaOption[]): Promise<SignalingMessage>;
81
+ abstract enableFeatureForRoles(feature: ConversationFeature, roles: UserRole[]): Promise<SignalingMessage>;
73
82
  abstract pinParticipant(participantId: ParticipantId, unpin: boolean): Promise<SignalingMessage>;
74
83
  abstract updateMediaModifiers(mediaModifiers: MediaModifiers): Promise<SignalingMessage>;
75
84
  abstract changeOptions(changes: {
@@ -83,6 +92,8 @@ export default abstract class BaseSignaling extends EventEmitter {
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;