@vkontakte/calls-sdk 2.8.12-dev.dbe4e248.0 → 2.8.12-dev.dd833275.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 (57) hide show
  1. package/CallsSDK.d.ts +33 -14
  2. package/abstract/BaseApi.d.ts +14 -9
  3. package/abstract/BaseSignaling.d.ts +5 -1
  4. package/calls-sdk.cjs.js +7 -13
  5. package/calls-sdk.esm.js +2634 -1860
  6. package/classes/AudioFix.d.ts +2 -2
  7. package/classes/AudioOutput.d.ts +2 -2
  8. package/classes/MediaSource.d.ts +6 -2
  9. package/classes/SpecListener.d.ts +2 -2
  10. package/classes/codec/LibVPxDecoder.d.ts +2 -2
  11. package/classes/codec/LibVPxEncoder.d.ts +2 -2
  12. package/classes/codec/WebCodecsDecoder.d.ts +2 -2
  13. package/classes/codec/WebCodecsEncoder.d.ts +2 -2
  14. package/classes/codec/WorkerBase.d.ts +3 -3
  15. package/classes/conversation/Conversation.d.ts +14 -4
  16. package/classes/screenshare/ScreenCaptureReceiver.d.ts +2 -2
  17. package/classes/screenshare/ScreenCaptureSender.d.ts +2 -2
  18. package/classes/screenshare/StreamBuilder.d.ts +2 -2
  19. package/classes/stat/CallLifecycleStats.d.ts +2 -2
  20. package/classes/stat/CodecStatsAggregator.d.ts +2 -2
  21. package/classes/stat/ConversationStats.d.ts +19 -4
  22. package/classes/stat/StatAggregator.d.ts +6 -2
  23. package/classes/stat/StatClock.d.ts +34 -0
  24. package/classes/stat/StatDrainScheduler.d.ts +121 -0
  25. package/classes/stat/StatEventCollector.d.ts +54 -0
  26. package/classes/stat/StatPings.d.ts +2 -2
  27. package/classes/stat/StatQueue.d.ts +82 -0
  28. package/classes/stat/StatSignalingCommands.d.ts +2 -2
  29. package/classes/stat/StatUnloadJournal.d.ts +39 -0
  30. package/classes/transport/DirectTransport.d.ts +2 -2
  31. package/classes/transport/PerfStatReporter.d.ts +2 -0
  32. package/classes/transport/ServerTransport.d.ts +3 -7
  33. package/classes/transport/SimulcastSender.d.ts +31 -0
  34. package/classes/transport/Transport.d.ts +5 -2
  35. package/default/Api.d.ts +27 -2
  36. package/default/ApiExternal.d.ts +2 -1
  37. package/default/Signaling.d.ts +4 -3
  38. package/enums/SessionError.d.ts +15 -0
  39. package/package.json +3 -3
  40. package/static/ApiTransport.d.ts +7 -0
  41. package/static/Params.d.ts +41 -1
  42. package/static/ParticipantConnectionStatusUtils.d.ts +1 -0
  43. package/static/Sdp.d.ts +3 -0
  44. package/static/SessionStore.d.ts +38 -0
  45. package/static/SignalingCapabilities.d.ts +1 -1
  46. package/static/SimulcastInfo.d.ts +5 -3
  47. package/static/Utils.d.ts +0 -1
  48. package/static/WebRTCUtils.d.ts +8 -6
  49. package/types/Api.d.ts +9 -0
  50. package/types/Capabilities.d.ts +1 -0
  51. package/types/FastHangup.d.ts +66 -0
  52. package/types/Participant.d.ts +1 -0
  53. package/types/PerfStatReporter.d.ts +0 -4
  54. package/types/SignalingCommand.d.ts +2 -0
  55. package/types/SignalingMessage.d.ts +1 -0
  56. package/utils/SerializeLatest.d.ts +5 -0
  57. package/classes/StatsLogger.d.ts +0 -41
package/CallsSDK.d.ts CHANGED
@@ -2,7 +2,7 @@
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
+ import type { EffectVoiceChange, VadControllerOptions, VadLib } from '@vkontakte/calls-audio-effects';
6
6
  import type * as Vmoji from '@vkontakte/calls-vmoji';
7
7
  import BaseLogger from './abstract/BaseLogger';
8
8
  import { AddParticipantParams } from './abstract/BaseSignaling';
@@ -68,6 +68,7 @@ import { VmojiError } from './types/Vmoji';
68
68
  import { VolumeDetector } from './classes/VolumeDetector';
69
69
  import { FastStartHandler, FastStartParams } from './types/FastStart';
70
70
  import { FastJoinHandler, FastJoinParams, FastJoinResponse } from './types/FastJoin';
71
+ import { FastHangupHandler, FastHangupParams, FastHangupResponse, HangupParams } from './types/FastHangup';
71
72
  import PushData from './types/PushData';
72
73
  export type { CurrentLogItem, DebugLogGetParams, DebugLogSessionInfo, DebugLogStorageStats } from './utils/DebugStorage';
73
74
  /**
@@ -213,6 +214,13 @@ export declare function setVideoEffects(effects: VideoEffects): void;
213
214
  * @param effects Экземпляр класса `EffectVoiceChange` из `@vkontakte/calls-audio-effects`
214
215
  */
215
216
  export declare function setAudioEffects(effects: EffectVoiceChange): void;
217
+ /**
218
+ * Устанавливает поддержку VAD
219
+ *
220
+ * @param vad принимает VadController из `@vkontakte/calls-audio-effects`
221
+ * @param options принимает VadControllerOptions из `@vkontakte/calls-audio-effects`
222
+ */
223
+ export declare function setVad(vad: VadLib, options?: VadControllerOptions): void;
216
224
  /**
217
225
  * Устанавливает библиотеку вимоджи
218
226
  *
@@ -258,6 +266,15 @@ export declare function callInternal(ids: OkUserId[], type: CallType | undefined
258
266
  export declare function processPush(conversationId: string, conversationParams?: string): Promise<void>;
259
267
  export declare function processPushInternal(conversationId: string, type?: UserType, peerId?: number, conversationParams?: string, wsEndpoint?: string, userId?: number): Promise<void>;
260
268
  export declare function getInbounds(): Promise<PushData[]>;
269
+ /**
270
+ * Запускает отправку клиентской статистики.
271
+ *
272
+ * Нужен только если `init()` был вызван с `autoStartStats: false`: до этого
273
+ * момента события копятся в IndexedDB и в сеть не уходят. Первый дрейн после
274
+ * старта забирает всё накопленное. Повторные вызовы и вызов после автостарта
275
+ * ничего не делают.
276
+ */
277
+ export declare function startStats(): void;
261
278
  /**
262
279
  * Авторизоваться для совершения звонков
263
280
  *
@@ -274,13 +291,13 @@ export declare function acceptCall(mediaOptions?: MediaOption[], conversationId?
274
291
  /**
275
292
  * Отклонить входящий звонок
276
293
  *
277
- * @param conversationId ID звонка
278
- * @param params.reason Причина завершения для проброса в сигналинг
279
- * (по умолчанию `REJECTED`). См. {@link ClientHangupReason}.
294
+ * @param params Параметры завершения. `params.conversationId` ID звонка
295
+ * (по умолчанию текущий активный), `params.reason` причина завершения
296
+ * для проброса в сигналинг (по умолчанию `REJECTED`). См. {@link ClientHangupReason}.
297
+ * `params.onFastHangup` — опционально: вместо Calls API hangup при отклонении.
298
+ * На закрытии вкладки не используется. См. {@link HangupParams}.
280
299
  */
281
- export declare function declineCall(conversationId?: string, params?: {
282
- reason?: ClientHangupReason;
283
- }): Promise<void>;
300
+ export declare function declineCall(params?: HangupParams): Promise<void>;
284
301
  /**
285
302
  * Присоединиться к активному звонку
286
303
  *
@@ -303,13 +320,15 @@ export declare function joinCallByLink(joinLink: string, mediaOptions?: MediaOpt
303
320
  /**
304
321
  * Завершить текущий разговор
305
322
  *
306
- * @param conversationId ID звонка
307
- * @param params.reason Причина завершения для проброса в сигналинг.
308
- * По умолчанию `HUNGUP` (если звонок активен) или `CANCELED`. См. {@link ClientHangupReason}.
323
+ * @param params Параметры завершения. `params.conversationId` ID звонка
324
+ * (по умолчанию текущий активный), `params.reason` причина завершения
325
+ * для проброса в сигналинг: по умолчанию `HUNGUP` (если звонок активен) или `CANCELED`.
326
+ * См. {@link ClientHangupReason}.
327
+ * `params.onFastHangup` — опционально: вместо Calls API hangup, если обработчик передан.
328
+ * Без него API hangup не вызывается (signaling hangup остаётся). На `pagehide` всегда beacon.
329
+ * См. {@link HangupParams}.
309
330
  */
310
- export declare function hangup(conversationId?: string, params?: {
311
- reason?: ClientHangupReason;
312
- }): Promise<void>;
331
+ export declare function hangup(params?: HangupParams): Promise<void>;
313
332
  /**
314
333
  * Добавить собеседника в звонок
315
334
  *
@@ -794,5 +813,5 @@ export declare function getSyncedTime(): number;
794
813
  * Версия SDK
795
814
  */
796
815
  export declare function version(): string;
797
- export type { AddParticipantParams, AudienceModeHandsResponse, BrowserName, ClientHangupReason, CompositeUserId, ConversationData, ConversationParams, ConversationResponse, CustomError, ExternalId, ExternalParticipant, ExternalParticipantListChunk, ExternalParticipantListMarker, ExternalParticipantListMarkers as ExternalParticipantMarkers, ExternalParticipantId, DisplayLayoutRequest, GetParticipantsSignalingResponse, GetRoomsSignalingResponse, HangupReasonData, IApiEnv, IAPIBaseUrl, IAsrStartParams, IAsrStopParams, IAsrData, IceServer, JSONArray, JSONObject, JSONType, Layout, MediaModifiers, MediaSettings, MuteStates, OkUserId, ParamsObject, ParticipantId, ParticipantLayout, ParticipantListMarkers, ParticipantListType, ParticipantPriority, ParticipantsStateList, ParticipantStateData, ParticipantStateDataKey, 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, FastStartHandler, FastStartParams, FastJoinHandler, FastJoinParams, FastJoinResponse, };
816
+ export type { AddParticipantParams, AudienceModeHandsResponse, BrowserName, ClientHangupReason, CompositeUserId, ConversationData, ConversationParams, ConversationResponse, CustomError, ExternalId, ExternalParticipant, ExternalParticipantListChunk, ExternalParticipantListMarker, ExternalParticipantListMarkers as ExternalParticipantMarkers, ExternalParticipantId, DisplayLayoutRequest, GetParticipantsSignalingResponse, GetRoomsSignalingResponse, HangupReasonData, IApiEnv, IAPIBaseUrl, IAsrStartParams, IAsrStopParams, IAsrData, IceServer, JSONArray, JSONObject, JSONType, Layout, MediaModifiers, MediaSettings, MuteStates, OkUserId, ParamsObject, ParticipantId, ParticipantLayout, ParticipantListMarkers, ParticipantListType, ParticipantPriority, ParticipantsStateList, ParticipantStateData, ParticipantStateDataKey, 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, FastStartHandler, FastStartParams, FastJoinHandler, FastJoinParams, FastJoinResponse, FastHangupHandler, FastHangupParams, FastHangupResponse, HangupParams, };
798
817
  export { Api, AuthData, BaseLogger, CallDirection, CallType, ChatRoomEventType, ConversationOption, DebugMessageType, ExternalIdType, FacingMode, FatalError, HangupReason, HangupType, MediaOption, MediaTrackKind, MediaType, MuteState, ParticipantState, ParticipantStateDataValue, ParticipantStatus, RecordRole, Signaling, SignalingCommandType, SignalingConnectionType, SignalingNotification, UserRole, UserType, TransportTopology, RoomsEventType, ConversationFeature, ArrayDequeue, ApiExternal, VolumeDetector, };
@@ -1,5 +1,6 @@
1
1
  import CallType from '../enums/CallType';
2
2
  import HangupType from '../enums/HangupType';
3
+ import { IHangupParams } from '../types/Api';
3
4
  import { ConversationData } from '../types/Conversation';
4
5
  import ConversationParams from '../types/ConversationParams';
5
6
  import ConversationResponse from '../types/ConversationResponse';
@@ -11,13 +12,6 @@ export type ClientStats = {
11
12
  vcid: ConversationData['id'] | null;
12
13
  [k: string]: string | number | boolean | null;
13
14
  };
14
- export type ClientEvent = {
15
- timestamp: number;
16
- call_topology: 'D' | 'S';
17
- event_type: string;
18
- vcid: ConversationData['id'] | null;
19
- [k: string]: string | number | boolean | null;
20
- };
21
15
  export type LogItem = {
22
16
  count?: number;
23
17
  custom: ClientStats;
@@ -68,8 +62,19 @@ export default abstract class BaseApi {
68
62
  log(items: LogItem[]): void;
69
63
  /**
70
64
  * method: vchat.clientStats
65
+ *
66
+ * Резолвится только после подтверждённой сервером отправки: вызывающий
67
+ * код удаляет события из очереди по факту резолва.
68
+ */
69
+ logClientStats(items: ClientStats[]): Promise<void>;
70
+ /**
71
+ * method: vchat.clientStats под сохранённым session_key другого пользователя.
72
+ *
73
+ * Одна попытка, без перелогина: не приняли — вызывающий код выбрасывает
74
+ * батч. Бросает сырую ошибку API или транспорта; классифицирует её
75
+ * вызывающий код. Состояние текущего пользователя (AuthData) не трогает.
71
76
  */
72
- logClientStats(items: ClientStats[]): void;
77
+ logClientStatsWith(sessionKey: string, items: ClientStats[]): Promise<void>;
73
78
  abstract uploadDebugLogs(conversationId: string, startTime: number, endTime: number, log: string): Promise<void>;
74
79
  getCachedOkIdByExternalId(externalId: ExternalId): ParticipantId | null;
75
80
  getCachedRawOkIdByExternalId(externalId: ExternalId): OkUserId | null;
@@ -79,7 +84,7 @@ export default abstract class BaseApi {
79
84
  unmapDecorativeId(decorativeId: OkUserId | CompositeUserId | ParticipantId): void;
80
85
  getDecorativeIdByInitialId(okId: OkUserId | CompositeUserId | ParticipantId): OkUserId | undefined;
81
86
  replaceByInitialIdIdIfExists(id: OkUserId | CompositeUserId | ParticipantId): OkUserId;
82
- hangupConversation(conversationId: string, reason?: HangupType): void;
87
+ hangupConversation(conversationId: string, reason?: HangupType, hangupParams?: Partial<IHangupParams>): void;
83
88
  removeHistoryRecords(recordIds: number[]): Promise<void>;
84
89
  getServerTime(): Promise<number>;
85
90
  cleanup(): void;
@@ -45,6 +45,9 @@ export interface AddParticipantParams {
45
45
  export declare class SignalingDisposedError extends Error {
46
46
  constructor(command?: string);
47
47
  }
48
+ export declare class ProducerConnectionClosedError extends Error {
49
+ constructor(command?: string);
50
+ }
48
51
  /**
49
52
  * Should trigger SignalingEvent.NOTIFICATION on notification message and SignalingEvent.FAILED on error
50
53
  * https://wiki.odkl.ru/display/projects/Signaling+API#SignalingAPI-Notifications
@@ -62,7 +65,7 @@ export default abstract class BaseSignaling extends EventEmitter {
62
65
  abstract hangup(reason: string): Promise<SignalingMessage | void>;
63
66
  abstract acceptCall(mediaSettings: MediaSettings): Promise<SignalingMessage>;
64
67
  abstract sendSdp(participantId: ParticipantId, sdp: RTCSessionDescriptionInit, extraPayload?: Record<string, any>): Promise<SignalingMessage>;
65
- abstract sendCandidate(participantId: ParticipantId, candidate: RTCIceCandidate): Promise<SignalingMessage>;
68
+ abstract sendCandidate(participantId: ParticipantId, candidate: RTCIceCandidateInit): Promise<SignalingMessage>;
66
69
  abstract changeMediaSettings(mediaSettings: MediaSettings): Promise<SignalingMessage>;
67
70
  abstract changeParticipantState(state: ParticipantStateData, compositeUserId?: CompositeUserId): Promise<SignalingMessage>;
68
71
  abstract hold(hold: boolean, capabilities?: TCapabilities): Promise<SignalingMessage>;
@@ -122,6 +125,7 @@ export default abstract class BaseSignaling extends EventEmitter {
122
125
  abstract setProducerNotificationDataChannel(dataChannel: RTCDataChannel): void;
123
126
  abstract setProducerCommandDataChannel(dataChannel: RTCDataChannel): void;
124
127
  abstract useCommandDataChannel(status: boolean): void;
128
+ abstract resetProducerConnection(cause?: Error): void;
125
129
  abstract getParticipantListChunk(participantListChunkParameters: ParticipantListChunkParameters): Promise<SignalingMessage>;
126
130
  abstract getParticipants(externalIds: SignalingMessage.ExternalId[]): Promise<GetParticipantsSignalingResponse>;
127
131
  abstract getPeerId(): number | null;