@vkontakte/calls-sdk 2.8.13-dev.ab19d582.0 → 2.8.13-dev.b0dfcfc5.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 (52) hide show
  1. package/CallsSDK.d.ts +5 -0
  2. package/abstract/BaseApi.d.ts +20 -18
  3. package/calls-sdk.cjs.js +7 -7
  4. package/calls-sdk.esm.js +3473 -2476
  5. package/classes/AudioFix.d.ts +2 -2
  6. package/classes/AudioOutput.d.ts +3 -3
  7. package/classes/ExternalIdCache.d.ts +9 -13
  8. package/classes/MediaSource.d.ts +6 -2
  9. package/classes/SpecListener.d.ts +2 -2
  10. package/classes/VolumesDetector.d.ts +0 -1
  11. package/classes/codec/LibVPxDecoder.d.ts +2 -2
  12. package/classes/codec/LibVPxEncoder.d.ts +2 -2
  13. package/classes/codec/WebCodecsDecoder.d.ts +2 -2
  14. package/classes/codec/WebCodecsEncoder.d.ts +2 -2
  15. package/classes/codec/WorkerBase.d.ts +3 -3
  16. package/classes/conversation/Conversation.d.ts +12 -4
  17. package/classes/conversation/Conversation.testUtils.d.ts +2 -0
  18. package/classes/conversation/DisplayLayoutRequester.d.ts +3 -1
  19. package/classes/screenshare/ScreenCaptureReceiver.d.ts +2 -2
  20. package/classes/screenshare/ScreenCaptureSender.d.ts +2 -2
  21. package/classes/screenshare/StreamBuilder.d.ts +3 -2
  22. package/classes/stat/ApiCallStats.d.ts +12 -0
  23. package/classes/stat/CallLifecycleStats.d.ts +2 -2
  24. package/classes/stat/CodecStatsAggregator.d.ts +2 -2
  25. package/classes/stat/ConversationStats.d.ts +14 -2
  26. package/classes/stat/PeerConnectionStats.d.ts +19 -0
  27. package/classes/stat/SdpStats.d.ts +38 -0
  28. package/classes/stat/StatAggregator.d.ts +10 -3
  29. package/classes/stat/StatClock.d.ts +28 -0
  30. package/classes/stat/StatDrainScheduler.d.ts +92 -0
  31. package/classes/stat/StatEventCollector.d.ts +50 -0
  32. package/classes/stat/StatPings.d.ts +2 -2
  33. package/classes/stat/StatQueue.d.ts +79 -0
  34. package/classes/stat/StatSignalingCommands.d.ts +2 -2
  35. package/classes/stat/StatUnloadJournal.d.ts +27 -0
  36. package/classes/transport/DirectTransport.d.ts +8 -2
  37. package/classes/transport/PerfStatReporter.d.ts +2 -0
  38. package/classes/transport/ServerTransport.d.ts +4 -2
  39. package/classes/transport/SimulcastSender.d.ts +2 -2
  40. package/classes/transport/Transport.d.ts +2 -2
  41. package/default/Api.d.ts +18 -11
  42. package/default/Signaling.d.ts +11 -3
  43. package/enums/SessionError.d.ts +10 -0
  44. package/enums/Stat.d.ts +20 -0
  45. package/package.json +1 -1
  46. package/static/ApiTransport.d.ts +4 -0
  47. package/static/External.d.ts +10 -0
  48. package/static/Params.d.ts +57 -1
  49. package/static/SessionStore.d.ts +29 -0
  50. package/static/SimulcastInfo.d.ts +1 -0
  51. package/static/WebRTCUtils.d.ts +5 -5
  52. package/types/IEventualStatLog.d.ts +1 -1
@@ -37,6 +37,27 @@ export type ParamsObject = {
37
37
  platform: string;
38
38
  /** @hidden */
39
39
  clientStatsPlatform: string;
40
+ /**
41
+ * Версия приложения-хоста, уходит в статистику и сигналинг, например `'26.31.0:6822'`.
42
+ * По умолчанию `'0.0.0'`
43
+ */
44
+ appVersion: string;
45
+ /**
46
+ * Автоматически запускать отправку клиентской статистики при `init()`.
47
+ *
48
+ * При `false` события копятся в очереди, но не уходят в сеть, пока хост не
49
+ * вызовет `startStats()`.
50
+ *
51
+ * _По умолчанию: `true`_
52
+ */
53
+ autoStartStats: boolean;
54
+ /**
55
+ * Персистентная очередь клиентской статистики: события копятся в IndexedDB
56
+ * и уезжают пачками с подтверждением, переживая перезагрузку вкладки.
57
+ *
58
+ * _По умолчанию: `false`_
59
+ */
60
+ statQueueEnabled: boolean;
40
61
  /** @hidden */
41
62
  clientType: string;
42
63
  /** @hidden */
@@ -230,6 +251,13 @@ export type ParamsObject = {
230
251
  iceRestartWaitTime: number;
231
252
  /** @hidden */
232
253
  transportConnectionWaitTime: number;
254
+ /**
255
+ * Разрешить запрашивать переход на серверную топологию не только звонящему,
256
+ * но и принимающей стороне, если не удалось восстановить оборвавшееся p2p-соединение
257
+ *
258
+ * _По умолчанию: `false`_
259
+ */
260
+ switchTopologyOnReconnectFromAnySide: boolean;
233
261
  /**
234
262
  * Частота получения статистики в миллисекундах
235
263
  *
@@ -269,6 +297,13 @@ export type ParamsObject = {
269
297
  perfStatReportEnabled: boolean;
270
298
  /** @hidden */
271
299
  callStatReportEnabled: boolean;
300
+ /**
301
+ * Отправлять событие статистики ice_candidate_gathering_failed
302
+ *
303
+ * _По умолчанию: `false`_
304
+ * @hidden
305
+ */
306
+ iceCandidateErrorStatEnabled: boolean;
272
307
  /**
273
308
  * Отдавать приоритет кодеку H264 для исходящего видео
274
309
  *
@@ -911,6 +946,13 @@ export type ParamsObject = {
911
946
  * Собеседник подключился к сигналлингу
912
947
  */
913
948
  onPeerRegistered?: (conversationId?: string, externalIds?: ExternalId[]) => void;
949
+ /**
950
+ * SDK обнаружил ошибку, после которой звонок может продолжаться.
951
+ *
952
+ * Callback предназначен для отправки ошибки в клиентский мониторинг.
953
+ * Его вызов не означает завершение звонка.
954
+ */
955
+ onNonFatalError?: (error: Error, conversationId: string | null) => void;
914
956
  };
915
957
  export default abstract class Params {
916
958
  private static _params;
@@ -920,7 +962,13 @@ export default abstract class Params {
920
962
  static getScreenFrameRate(fastScreenShare: boolean): number;
921
963
  static get<N extends keyof ParamsObject>(name: N): ParamsObject[N];
922
964
  static get appName(): string;
923
- static get appVersion(): number;
965
+ static get appVersion(): string;
966
+ /**
967
+ * Версия клиента для `client_version` в `auth.anonymLogin`. Бэкенд валидирует формат,
968
+ * поэтому это фиксированное значение, а не версия приложения-хоста (см. {@link Params.appVersion}).
969
+ * @hidden
970
+ */
971
+ static get apiClientVersion(): number;
924
972
  static get sdkVersion(): string;
925
973
  static get debug(): boolean;
926
974
  static get protocolVersion(): 5 | 6;
@@ -928,6 +976,8 @@ export default abstract class Params {
928
976
  static set platform(value: string);
929
977
  static get clientStatsPlatform(): string;
930
978
  static set clientStatsPlatform(value: string);
979
+ static get autoStartStats(): boolean;
980
+ static get statQueueEnabled(): boolean;
931
981
  static get clientType(): string;
932
982
  static set clientType(value: string);
933
983
  static get externalUserType(): string;
@@ -1000,11 +1050,13 @@ export default abstract class Params {
1000
1050
  };
1001
1051
  static get iceRestartWaitTime(): number;
1002
1052
  static get transportConnectionWaitTime(): number;
1053
+ static get switchTopologyOnReconnectFromAnySide(): boolean;
1003
1054
  static get statisticsInterval(): number;
1004
1055
  static set statisticsInterval(value: number);
1005
1056
  static get networkStatisticsInterval(): number;
1006
1057
  static get perfStatReportEnabled(): boolean;
1007
1058
  static get callStatReportEnabled(): boolean;
1059
+ static get iceCandidateErrorStatEnabled(): boolean;
1008
1060
  static get enableLogPerfStatReport(): boolean;
1009
1061
  static get asrDataChannel(): boolean;
1010
1062
  static get consumerScreenDataChannelPacketSize(): number;
@@ -1076,10 +1128,14 @@ export default abstract class Params {
1076
1128
  videoSuspend: boolean;
1077
1129
  debugLog: boolean;
1078
1130
  callStatReportEnabled: boolean;
1131
+ iceCandidateErrorStatEnabled: boolean;
1079
1132
  joinFromMultipleDevices: boolean;
1080
1133
  movieShare: boolean;
1081
1134
  clientType: string;
1082
1135
  clientStatsPlatform: string;
1136
+ appVersion: string;
1137
+ autoStartStats: boolean;
1138
+ statQueueEnabled: boolean;
1083
1139
  consumerScreenDataChannelPacketSize: number;
1084
1140
  switchVideoAtBadNetwork: boolean;
1085
1141
  simulcast: boolean;
@@ -0,0 +1,29 @@
1
+ export type StoredSession = {
2
+ sessionKey: string;
3
+ /** Ключ окружения на момент сохранения, см. currentEndpoint(). */
4
+ endpoint: string;
5
+ savedAt: number;
6
+ };
7
+ /**
8
+ * Снимки сессий по uid на диске. Снимок может быть протухшим и переавторизации
9
+ * не подлежит, поэтому годится только для отложенных best-effort задач вроде
10
+ * досылки статистики.
11
+ */
12
+ export default abstract class SessionStore {
13
+ static remember(uid: number, session: {
14
+ sessionKey: string;
15
+ endpoint: string;
16
+ }): void;
17
+ static get(uid: number): StoredSession | null;
18
+ static forget(uid: number): void;
19
+ /** Снимок живёт столько же, сколько события, которые он мог бы дослать. */
20
+ static prune(now?: number): void;
21
+ /**
22
+ * Ключ окружения: сессия прода не должна улететь на тестовый кластер.
23
+ * Адрес нормализуется так же, как в транспорте.
24
+ */
25
+ static currentEndpoint(): string;
26
+ private static _read;
27
+ private static _write;
28
+ private static _isValid;
29
+ }
@@ -4,6 +4,7 @@ export declare const SIMULCAST_DEFAULT: {
4
4
  HEIGHT: number;
5
5
  WIDTH: number;
6
6
  BITRATE: number;
7
+ FPS: number;
7
8
  };
8
9
  export declare const SIMULCAST_SCALABILITY_MODE = "L1T2";
9
10
  export declare function isEqualSimulcastInfo(si1: ISimulcastInfo | null, si2: ISimulcastInfo | null): boolean;
@@ -2,7 +2,7 @@
2
2
  * Вспомогательный плагин для работы с WebRTC
3
3
  */
4
4
  import { IVideoDimentions } from '../types/MediaSettings';
5
- import type StatsLogger from '../classes/StatsLogger';
5
+ import type StatEventCollector from '../classes/stat/StatEventCollector';
6
6
  import { type DebugLogger } from './Debug';
7
7
  /**
8
8
  * Тип камеры мобильного устройства
@@ -85,24 +85,24 @@ declare namespace WebRTCUtils {
85
85
  * @param needAudio Нужно ли аудио
86
86
  * @param needEmptyTracks Добавлять ли в стрим пустые треки для отключенного видео/аудио
87
87
  */
88
- function getUserMedia(needVideo?: boolean, needAudio?: boolean, needEmptyTracks?: boolean, debug?: DebugLogger, logger?: StatsLogger | null): Promise<MediaStream>;
88
+ function getUserMedia(needVideo?: boolean, needAudio?: boolean, needEmptyTracks?: boolean, debug?: DebugLogger, logger?: StatEventCollector | null): Promise<MediaStream>;
89
89
  /**
90
90
  * Запрашивает трансляцию экрана пользователя с опциональным захватом звука
91
91
  */
92
- function getScreenMedia(fastScreenShare: boolean, withAudioShare: boolean, debug?: DebugLogger, logger?: StatsLogger | null): Promise<MediaStream>;
92
+ function getScreenMedia(fastScreenShare: boolean, withAudioShare: boolean, debug?: DebugLogger, logger?: StatEventCollector | null): Promise<MediaStream>;
93
93
  /**
94
94
  * Запрашивает камеру пользователя
95
95
  *
96
96
  * @param deviceId ID устройства
97
97
  * @param resolution Размеры видео
98
98
  */
99
- function getUserVideo(deviceId?: string, resolution?: IVideoDimentions, debug?: DebugLogger, logger?: StatsLogger | null): Promise<MediaStream>;
99
+ function getUserVideo(deviceId?: string, resolution?: IVideoDimentions, debug?: DebugLogger, logger?: StatEventCollector | null): Promise<MediaStream>;
100
100
  /**
101
101
  * Запрашивает микрофон пользователя
102
102
  *
103
103
  * @param deviceId ID устройства
104
104
  */
105
- function getUserAudio(deviceId?: string, debug?: DebugLogger, logger?: StatsLogger | null): Promise<MediaStream>;
105
+ function getUserAudio(deviceId?: string, debug?: DebugLogger, logger?: StatEventCollector | null): Promise<MediaStream>;
106
106
  /**
107
107
  * Устанавливает размер видео в стриме
108
108
  *
@@ -1,6 +1,6 @@
1
1
  import Stat from '../enums/Stat';
2
2
  export interface IEventualStatLog {
3
3
  name: Stat;
4
- value?: number | null;
4
+ value?: number;
5
5
  [k: string]: number | string | undefined | null;
6
6
  }