@vkontakte/calls-sdk 2.8.13-dev.3b07b09d.0 → 2.8.13-dev.3f06c117.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 +33 -19
  2. package/abstract/BaseApi.d.ts +8 -8
  3. package/calls-sdk.cjs.js +7 -7
  4. package/calls-sdk.esm.js +3476 -2888
  5. package/classes/AudioOutput.d.ts +1 -1
  6. package/classes/MediaSource.d.ts +7 -0
  7. package/classes/StatsLogger.d.ts +1 -1
  8. package/classes/VolumesDetector.d.ts +0 -1
  9. package/classes/conversation/Conversation.d.ts +9 -1
  10. package/classes/stat/ApiCallStats.d.ts +12 -0
  11. package/classes/stat/ClientResourceStats.d.ts +41 -0
  12. package/classes/stat/ConversationStats.d.ts +11 -12
  13. package/classes/stat/NetworkAdaptationStats.d.ts +35 -0
  14. package/classes/stat/PeerConnectionStats.d.ts +22 -0
  15. package/classes/stat/SdpStats.d.ts +40 -0
  16. package/classes/stat/Stat.testUtils.d.ts +10 -0
  17. package/classes/stat/StatAggregator.d.ts +11 -2
  18. package/classes/stat/StatClock.d.ts +5 -12
  19. package/classes/stat/StatDrainScheduler.d.ts +36 -65
  20. package/classes/stat/StatEventCollector.d.ts +9 -23
  21. package/classes/stat/StatPings.d.ts +2 -0
  22. package/classes/stat/StatQueue.d.ts +16 -29
  23. package/classes/stat/StatUnloadJournal.d.ts +9 -21
  24. package/classes/transport/DirectTransport.d.ts +11 -0
  25. package/classes/transport/PerfStatReporter.d.ts +7 -1
  26. package/classes/transport/ServerTransport.d.ts +4 -0
  27. package/default/Api.d.ts +7 -17
  28. package/default/Signaling.d.ts +9 -1
  29. package/default/SignalingTransport.d.ts +5 -1
  30. package/enums/ActiveFeature.d.ts +19 -0
  31. package/enums/SessionError.d.ts +2 -7
  32. package/enums/Stat.d.ts +26 -1
  33. package/package.json +1 -1
  34. package/static/AuthData.d.ts +11 -1
  35. package/static/BrowserEnvironment.d.ts +90 -0
  36. package/static/External.d.ts +7 -0
  37. package/static/Params.d.ts +47 -12
  38. package/static/SessionStore.d.ts +5 -14
  39. package/static/SimulcastInfo.d.ts +1 -0
  40. package/static/WebRTCUtils.d.ts +0 -71
  41. package/types/ClientStatsEvent.d.ts +12 -0
  42. package/types/IEventualStatLog.d.ts +1 -1
  43. package/types/Params.d.ts +1 -1
  44. package/types/PerfStatReporter.d.ts +26 -1
  45. package/types/SignalingMessage.d.ts +1 -0
  46. package/types/Statistics.d.ts +22 -7
package/CallsSDK.d.ts CHANGED
@@ -28,6 +28,7 @@ import RoomsEventType from './enums/RoomsEventType';
28
28
  import SignalingCommandType from './enums/SignalingCommandType';
29
29
  import SignalingConnectionType from './enums/SignalingConnectionType';
30
30
  import SignalingNotification from './enums/SignalingNotification';
31
+ import Stat from './enums/Stat';
31
32
  import UserRole from './enums/UserRole';
32
33
  import UserType from './enums/UserType';
33
34
  import { DebugMessageType } from './static/Debug';
@@ -36,7 +37,8 @@ import { ParticipantStatus } from './static/External';
36
37
  import { JSONArray, JSONObject, JSONType } from './static/Json';
37
38
  import { ParamsObject } from './static/Params';
38
39
  import Utils from './static/Utils';
39
- import WebRTCUtils, { BrowserName, FacingMode } from './static/WebRTCUtils';
40
+ import BrowserEnvironment, { BrowserName } from './static/BrowserEnvironment';
41
+ import WebRTCUtils, { FacingMode } from './static/WebRTCUtils';
40
42
  import { IAsrData, IAsrStartParams, IAsrStopParams } from './types/Asr';
41
43
  import { ConversationData } from './types/Conversation';
42
44
  import { IFeaturesPerRole } from './types/ConversationFeature';
@@ -59,6 +61,7 @@ import { IRoomId, Room, RoomParticipantUpdate, Rooms, RoomsUpdate } from './type
59
61
  import { ScreenCaptureSettings } from './types/ScreenCaptureSettings';
60
62
  import SignalingMessage, { GetRoomsSignalingResponse, GetParticipantsSignalingResponse } from './types/SignalingMessage';
61
63
  import { StatResult } from './types/Statistics';
64
+ import { ClientStatsEvent } from './types/ClientStatsEvent';
62
65
  import { IStartStreamData, IStopStreamData, IPublishStreamData } from './types/Streams';
63
66
  import { WaitingHallResponse } from './types/WaitingHall';
64
67
  import { ArrayDequeue } from './utils/ArrayDequeue';
@@ -144,43 +147,57 @@ export declare const browser: {
144
147
  *
145
148
  * _Метод доступен до инициализации_
146
149
  */
147
- isBrowserSupported: typeof WebRTCUtils.isBrowserSupported;
150
+ isBrowserSupported: typeof BrowserEnvironment.isBrowserSupported;
148
151
  /**
149
152
  * Проверяет поддержку трансляции экрана браузером
150
153
  *
151
154
  * _Метод доступен до инициализации_
152
155
  */
153
- isScreenCapturingSupported: typeof WebRTCUtils.isScreenCapturingSupported;
156
+ isScreenCapturingSupported: typeof BrowserEnvironment.isScreenCapturingSupported;
157
+ /**
158
+ * Проверяет поддержку выбора микрофона браузером, независимо от списка устройств и разрешений.
159
+ * Не запрашивает разрешения и не захватывает медиа.
160
+ *
161
+ * _Метод доступен до инициализации_
162
+ */
163
+ canSelectAudioInput: typeof BrowserEnvironment.canSelectAudioInput;
164
+ /**
165
+ * Проверяет поддержку выбора аудиовыхода браузером, независимо от списка устройств и разрешений.
166
+ * Не запрашивает разрешения и не меняет аудиовыход.
167
+ *
168
+ * _Метод доступен до инициализации_
169
+ */
170
+ canSelectAudioOutput: typeof BrowserEnvironment.canSelectAudioOutput;
154
171
  /**
155
172
  * Имя операционной системы
156
173
  *
157
174
  * _Метод доступен до инициализации_
158
175
  */
159
- os: typeof WebRTCUtils.os;
176
+ os: typeof BrowserEnvironment.os;
160
177
  /**
161
178
  * Мобильный браузер или нет
162
179
  *
163
180
  * _Метод доступен до инициализации_
164
181
  */
165
- isMobile: typeof WebRTCUtils.isMobile;
182
+ isMobile: typeof BrowserEnvironment.isMobile;
166
183
  /**
167
184
  * Имя браузера
168
185
  *
169
186
  * _Метод доступен до инициализации_
170
187
  */
171
- browserName: typeof WebRTCUtils.browserName;
188
+ browserName: typeof BrowserEnvironment.browserName;
172
189
  /**
173
190
  * Версия браузера
174
191
  *
175
192
  * _Метод доступен до инициализации_
176
193
  */
177
- browserVersion: typeof WebRTCUtils.browserVersion;
194
+ browserVersion: typeof BrowserEnvironment.browserVersion;
178
195
  /**
179
196
  * Если браузер основан на хроме - возвращает версию
180
197
  *
181
198
  * _Метод доступен до инициализации_
182
199
  */
183
- baseChromeVersion: typeof WebRTCUtils.baseChromeVersion;
200
+ baseChromeVersion: typeof BrowserEnvironment.baseChromeVersion;
184
201
  /**
185
202
  * Возвращает AudioContext
186
203
  */
@@ -190,7 +207,7 @@ export declare const browser: {
190
207
  *
191
208
  * _Метод доступен до инициализации_
192
209
  */
193
- isAudioShareSupported: typeof WebRTCUtils.isAudioShareSupported;
210
+ isAudioShareSupported: typeof BrowserEnvironment.isAudioShareSupported;
194
211
  };
195
212
  /**
196
213
  * Вспомогательные функции
@@ -262,17 +279,14 @@ export declare function callInternal(ids: OkUserId[], type: CallType | undefined
262
279
  *
263
280
  * @param conversationId ID звонка
264
281
  * @param conversationParams conversationParams в base64
282
+ * @param externalUserId внешний ID пользователя, полученный из incoming push
265
283
  */
266
- export declare function processPush(conversationId: string, conversationParams?: string): Promise<void>;
267
- export declare function processPushInternal(conversationId: string, type?: UserType, peerId?: number, conversationParams?: string, wsEndpoint?: string, userId?: number): Promise<void>;
284
+ export declare function processPush(conversationId: string, conversationParams?: string, externalUserId?: ExternalUserId): Promise<void>;
285
+ export declare function processPushInternal(conversationId: string, type?: UserType, peerId?: number, conversationParams?: string, wsEndpoint?: string, userId?: number, externalUserId?: ExternalUserId): Promise<void>;
268
286
  export declare function getInbounds(): Promise<PushData[]>;
269
287
  /**
270
- * Запускает отправку клиентской статистики.
271
- *
272
- * Нужен только если `init()` был вызван с `autoStartStats: false`: до этого
273
- * момента события копятся в IndexedDB и в сеть не уходят. Первый дрейн после
274
- * старта забирает всё накопленное. Повторные вызовы и вызов после автостарта
275
- * ничего не делают, как и вызов при `statQueueEnabled: false`.
288
+ * Запускает отправку клиентской статистики. Нужен только при
289
+ * `autoStartStats: false`; повторные вызовы ничего не делают.
276
290
  */
277
291
  export declare function startStats(): void;
278
292
  /**
@@ -813,5 +827,5 @@ export declare function getSyncedTime(): number;
813
827
  * Версия SDK
814
828
  */
815
829
  export declare function version(): string;
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, };
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, };
830
+ export type { AddParticipantParams, AudienceModeHandsResponse, BrowserName, ClientHangupReason, ClientStatsEvent, CompositeUserId, ConversationData, ConversationParams, ConversationResponse, CustomError, ExternalId, ExternalParticipant, ExternalParticipantListChunk, ExternalParticipantListMarker, ExternalParticipantListMarkers as ExternalParticipantMarkers, ExternalParticipantId, ExternalUserId, 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, };
831
+ 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, Stat, UserRole, UserType, TransportTopology, RoomsEventType, ConversationFeature, ArrayDequeue, ApiExternal, VolumeDetector, };
@@ -7,10 +7,11 @@ import ConversationResponse from '../types/ConversationResponse';
7
7
  import { ExternalId, ExternalParticipantId, ExternalUserId } from '../types/ExternalId';
8
8
  import { OkUserId, ParticipantId } from '../types/Participant';
9
9
  import PushData from '../types/PushData';
10
+ import { ApiCallStats } from '../classes/stat/ApiCallStats';
10
11
  export type ClientStats = {
11
12
  call_topology: 'D' | 'S';
12
13
  vcid: ConversationData['id'] | null;
13
- [k: string]: string | number | boolean | null;
14
+ [k: string]: string | string[] | number | boolean | null;
14
15
  };
15
16
  export type LogItem = {
16
17
  count?: number;
@@ -26,6 +27,9 @@ export type LogItem = {
26
27
  };
27
28
  export default abstract class BaseApi {
28
29
  protected _abortSignal?: AbortSignal;
30
+ protected _apiCallStats: ApiCallStats | null;
31
+ /** Куда писать время выполнения запросов, появляется вместе со звонком */
32
+ setApiCallStats(apiCallStats: ApiCallStats | null): void;
29
33
  /**
30
34
  * Устанавливает сигнал прерывания для запуска звонка, если не успели отменить до установки соединения с другим участником, то он больше ни как не будет использоваться
31
35
  * @param signal - Сигнал прерывания или undefined для очистки
@@ -63,16 +67,12 @@ export default abstract class BaseApi {
63
67
  /**
64
68
  * method: vchat.clientStats
65
69
  *
66
- * Резолвится только после подтверждённой сервером отправки: вызывающий
67
- * код удаляет события из очереди по факту резолва.
70
+ * Резолвится только после подтверждённой сервером отправки.
68
71
  */
69
72
  logClientStats(items: ClientStats[]): Promise<void>;
70
73
  /**
71
- * method: vchat.clientStats под сохранённым session_key другого пользователя.
72
- *
73
- * Одна попытка, без перелогина: не приняли — вызывающий код выбрасывает
74
- * батч. Бросает сырую ошибку API или транспорта; классифицирует её
75
- * вызывающий код. Состояние текущего пользователя (AuthData) не трогает.
74
+ * method: vchat.clientStats под сохранённым session_key другого
75
+ * пользователя. Одна попытка, без перелогина; AuthData не трогает.
76
76
  */
77
77
  logClientStatsWith(sessionKey: string, items: ClientStats[]): Promise<void>;
78
78
  abstract uploadDebugLogs(conversationId: string, startTime: number, endTime: number, log: string): Promise<void>;