@vkontakte/calls-sdk 2.8.10-dev.52257705.0 → 2.8.10-dev.53a954ba.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.
- package/CallsSDK.d.ts +10 -2
- package/abstract/BaseApi.d.ts +6 -0
- package/abstract/BaseSignaling.d.ts +8 -1
- package/calls-sdk.cjs.js +10 -10
- package/calls-sdk.esm.js +10 -10
- package/classes/AudioOutput.d.ts +16 -11
- package/classes/Conversation.d.ts +4 -0
- package/classes/VolumesDetector.d.ts +6 -1
- package/classes/transport/DirectTransport.d.ts +1 -0
- package/classes/transport/ServerTransport.d.ts +1 -0
- package/default/Signaling.d.ts +2 -1
- package/devtools/DevTools.d.ts +20 -0
- package/devtools/DevToolsStorage.d.ts +16 -0
- package/devtools/index.d.ts +1 -0
- package/devtools/modules/Params.d.ts +65 -0
- package/devtools/types.d.ts +15 -0
- package/enums/HangupType.d.ts +4 -0
- package/enums/SignalingCommandType.d.ts +1 -0
- package/enums/TrackId.d.ts +2 -1
- package/package.json +1 -1
- package/static/Params.d.ts +10 -0
- package/static/SignalingCapabilities.d.ts +1 -0
- package/static/Utils.d.ts +3 -1
- package/static/WebRTCUtils.d.ts +1 -0
- package/types/FastJoin.d.ts +13 -0
- package/types/FastStart.d.ts +1 -1
package/classes/AudioOutput.d.ts
CHANGED
|
@@ -1,22 +1,27 @@
|
|
|
1
|
+
import { ParticipantId } from '../types/Participant';
|
|
1
2
|
import { StatFirstMediaReceived } from './stat/StatFirstMediaReceived';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
};
|
|
3
|
+
/**
|
|
4
|
+
* Единый AudioOutput поддерживающий p2p, audioMix и transparent-audio
|
|
5
|
+
*/
|
|
6
6
|
export default class AudioOutput {
|
|
7
|
-
protected
|
|
7
|
+
protected _audioElement: HTMLAudioElement | null;
|
|
8
|
+
private _audioTracks;
|
|
9
|
+
private readonly _allowMultipleTracks;
|
|
8
10
|
private _volume;
|
|
9
11
|
private readonly _features;
|
|
10
12
|
private readonly _statFirstMediaReceived;
|
|
11
|
-
constructor(statFirstMediaReceived: StatFirstMediaReceived);
|
|
12
|
-
add(track: MediaStreamTrack): void;
|
|
13
|
-
remove(track: MediaStreamTrack): void;
|
|
13
|
+
constructor(statFirstMediaReceived: StatFirstMediaReceived, allowMultipleTracks?: boolean);
|
|
14
|
+
add(participantId: ParticipantId, track: MediaStreamTrack): void;
|
|
15
|
+
remove(participantId: ParticipantId, track: MediaStreamTrack): void;
|
|
14
16
|
get volume(): number;
|
|
15
17
|
set volume(volume: number);
|
|
16
|
-
protected _initAudioElement(): void;
|
|
17
|
-
protected _stopAudioElement(): void;
|
|
18
18
|
destroy(): void;
|
|
19
19
|
/** изменяем устройство для воспроизведения аудио */
|
|
20
20
|
changeOutput(): Promise<void>;
|
|
21
|
+
protected _getTracks(): MediaStreamTrack[];
|
|
22
|
+
protected _initAudioElement(): void;
|
|
23
|
+
protected _stopAudioElement(): void;
|
|
24
|
+
private _addTrackToAudioElement;
|
|
25
|
+
private _removeTrackFromAudioElement;
|
|
26
|
+
private _clearTracks;
|
|
21
27
|
}
|
|
22
|
-
export {};
|
|
@@ -14,6 +14,7 @@ import { IAsrStartParams, IAsrStopParams } from '../types/Asr';
|
|
|
14
14
|
import { AudienceModeHandsResponse } from '../types/AudienceMode';
|
|
15
15
|
import { ConversationData, ConversationOnStartParams } from '../types/Conversation';
|
|
16
16
|
import { ExternalId, ExternalParticipant, ExternalParticipantId, ExternalParticipantListChunk, ExternalUserId } from '../types/ExternalId';
|
|
17
|
+
import type { FastJoinHandler } from '../types/FastJoin';
|
|
17
18
|
import MediaModifiers from '../types/MediaModifiers';
|
|
18
19
|
import { IVideoDimentions } from '../types/MediaSettings';
|
|
19
20
|
import { IAddMovieParams, IUpdateMovieData } from '../types/MovieShare';
|
|
@@ -51,6 +52,7 @@ export default class Conversation extends EventEmitter {
|
|
|
51
52
|
private static _current;
|
|
52
53
|
private static _activationMutex;
|
|
53
54
|
private static _delayedHangup;
|
|
55
|
+
private static _abortController;
|
|
54
56
|
private readonly _onUnload;
|
|
55
57
|
private readonly _audioOutput;
|
|
56
58
|
private _lastStalled;
|
|
@@ -75,6 +77,7 @@ export default class Conversation extends EventEmitter {
|
|
|
75
77
|
joinLink?: string;
|
|
76
78
|
observedIds?: ExternalUserId[];
|
|
77
79
|
payload?: string;
|
|
80
|
+
onFastJoin?: FastJoinHandler;
|
|
78
81
|
}): Promise<ConversationData>;
|
|
79
82
|
private _onJoinPart2;
|
|
80
83
|
private _extractExternalRooms;
|
|
@@ -196,6 +199,7 @@ export default class Conversation extends EventEmitter {
|
|
|
196
199
|
*/
|
|
197
200
|
changePriorities(priorities: ParticipantPriority[]): Promise<void>;
|
|
198
201
|
changeParticipantState(state: ParticipantStateData, compositeUserId?: CompositeUserId): Promise<void>;
|
|
202
|
+
hold(hold: boolean): Promise<void>;
|
|
199
203
|
putHandsDown(): Promise<void>;
|
|
200
204
|
requestKeyFrame(participantStreamDescription: ParticipantStreamDescription): Promise<void | SignalingMessage>;
|
|
201
205
|
requestTestMode(consumerCommand: string, producerCommand: string): Promise<void>;
|
|
@@ -4,15 +4,20 @@ export declare const enum VolumesDetectorEvent {
|
|
|
4
4
|
VOLUMES_DETECTED = "VOLUMES_DETECTED"
|
|
5
5
|
}
|
|
6
6
|
export declare class VolumesDetector extends EventEmitter {
|
|
7
|
-
private
|
|
7
|
+
private _detectors;
|
|
8
8
|
private _interval;
|
|
9
9
|
private _activeParticipants;
|
|
10
10
|
private _removedParticipants;
|
|
11
|
+
private _topology;
|
|
11
12
|
constructor(transport: Transport);
|
|
12
13
|
destroy(): void;
|
|
13
14
|
private _onRemoteTrackAdded;
|
|
14
15
|
private _onRemoteTrackRemoved;
|
|
15
16
|
private _collectVolumes;
|
|
17
|
+
private _getAudioTrackLevelByParticipantId;
|
|
18
|
+
private _getTransparentAudioLevelByParticipantId;
|
|
16
19
|
private _onSignalledActiveParticipants;
|
|
17
20
|
private _onTopologyChanged;
|
|
21
|
+
private _isTransparentAudioMode;
|
|
22
|
+
private _destroyDetectors;
|
|
18
23
|
}
|
|
@@ -55,6 +55,7 @@ export default class DirectTransport extends BaseTransport {
|
|
|
55
55
|
private _handleIceCandidate;
|
|
56
56
|
private _onSignalingStateChange;
|
|
57
57
|
private _onIceConnectionStateChange;
|
|
58
|
+
private _markConnected;
|
|
58
59
|
private _onConnectionStateChange;
|
|
59
60
|
private _startReconnection;
|
|
60
61
|
private _requestTopologySwitch;
|
|
@@ -25,6 +25,7 @@ export default class ServerTransport extends BaseTransport {
|
|
|
25
25
|
private _perfStatReporter;
|
|
26
26
|
private _producerOfferIsProcessing;
|
|
27
27
|
private _producerNextOffer;
|
|
28
|
+
private _producerNextSessionId;
|
|
28
29
|
private _lastStat;
|
|
29
30
|
private _serverSettings;
|
|
30
31
|
private _prevConsumerSettings;
|
package/default/Signaling.d.ts
CHANGED
|
@@ -89,6 +89,7 @@ export default class Signaling extends BaseSignaling {
|
|
|
89
89
|
acceptCall(mediaSettings: MediaSettings): Promise<SignalingMessage>;
|
|
90
90
|
changeMediaSettings(mediaSettings: MediaSettings): Promise<SignalingMessage>;
|
|
91
91
|
changeParticipantState(state: ParticipantStateData, compositeUserId?: CompositeUserId): Promise<SignalingMessage>;
|
|
92
|
+
hold(hold: boolean): Promise<SignalingMessage>;
|
|
92
93
|
putHandsDown(): Promise<SignalingMessage>;
|
|
93
94
|
addParticipant(externalIds: CompositeUserId[], params?: AddParticipantParams): Promise<SignalingMessage>;
|
|
94
95
|
addParticipantLegacy(participantIds: CompositeUserId[], params?: AddParticipantParams): Promise<SignalingMessage>;
|
|
@@ -96,7 +97,7 @@ export default class Signaling extends BaseSignaling {
|
|
|
96
97
|
allocateConsumer(description: RTCSessionDescription | null, capabilities: {
|
|
97
98
|
[key: string]: number | boolean | string;
|
|
98
99
|
}): Promise<SignalingMessage>;
|
|
99
|
-
acceptProducer(description: RTCSessionDescriptionInit, ssrcs: string[]): Promise<SignalingMessage>;
|
|
100
|
+
acceptProducer(description: RTCSessionDescriptionInit, ssrcs: string[], sessionId: string): Promise<SignalingMessage>;
|
|
100
101
|
/**
|
|
101
102
|
* @deprecated Use updateDisplayLayout instead
|
|
102
103
|
*/
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DevTools for SDK
|
|
3
|
+
* Позволяет подменять значения ручек перед инициализацией SDK
|
|
4
|
+
*/
|
|
5
|
+
import Params from './modules/Params';
|
|
6
|
+
import type { DevToolsOptions } from './types';
|
|
7
|
+
export type { DevToolsOptions };
|
|
8
|
+
/**
|
|
9
|
+
* DevTools API for runtime SDK configuration
|
|
10
|
+
* Singleton class to ensure consistent state across the application
|
|
11
|
+
*/
|
|
12
|
+
declare class DevTools {
|
|
13
|
+
private static instance;
|
|
14
|
+
static getInstance(): DevTools;
|
|
15
|
+
readonly params: Params;
|
|
16
|
+
private storage;
|
|
17
|
+
private constructor();
|
|
18
|
+
}
|
|
19
|
+
declare const _default: DevTools;
|
|
20
|
+
export default _default;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Storage utility for DevTools
|
|
3
|
+
* Handles persistence of DevTools options in localStorage
|
|
4
|
+
*/
|
|
5
|
+
import type { DevToolsOptions } from './types';
|
|
6
|
+
/**
|
|
7
|
+
* Storage utility for DevTools
|
|
8
|
+
*/
|
|
9
|
+
export default class DevToolsStorage {
|
|
10
|
+
set(key: string, value: any): void;
|
|
11
|
+
get<T>(key: string): T | null;
|
|
12
|
+
remove(key: string): void;
|
|
13
|
+
clear(): void;
|
|
14
|
+
getAll(): DevToolsOptions;
|
|
15
|
+
private getStorage;
|
|
16
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as devtools } from './DevTools';
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Params module for DevTools
|
|
3
|
+
* Позволяет подменять значения ручек перед инициализацией SDK
|
|
4
|
+
*/
|
|
5
|
+
import type DevToolsStorage from '../DevToolsStorage';
|
|
6
|
+
import type { DevToolsOptions } from '../types';
|
|
7
|
+
export type { DevToolsOptions };
|
|
8
|
+
export default class Params {
|
|
9
|
+
private storage;
|
|
10
|
+
constructor(storage: DevToolsStorage);
|
|
11
|
+
/**
|
|
12
|
+
* Set an option override
|
|
13
|
+
* @param key - Option name
|
|
14
|
+
* @param value - Option value
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* __CALLS_SDK.params.set('webtransport', true);
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
set<K extends keyof DevToolsOptions>(key: K, value: DevToolsOptions[K]): void;
|
|
21
|
+
/**
|
|
22
|
+
* Get an option override value
|
|
23
|
+
* @param key - Option name
|
|
24
|
+
* @returns Option value if override is set, null if not set
|
|
25
|
+
* @example
|
|
26
|
+
* ```ts
|
|
27
|
+
* const value = __CALLS_SDK.params.get('webtransport');
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
get<K extends keyof DevToolsOptions>(key: K): DevToolsOptions[K] | null;
|
|
31
|
+
/**
|
|
32
|
+
* Clear a specific option override
|
|
33
|
+
* @param key - Option name
|
|
34
|
+
* @example
|
|
35
|
+
* ```ts
|
|
36
|
+
* __CALLS_SDK.params.clear('webtransport');
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
clear<K extends keyof DevToolsOptions>(key: K): void;
|
|
40
|
+
/**
|
|
41
|
+
* Clear all DevTools overrides
|
|
42
|
+
* @example
|
|
43
|
+
* ```ts
|
|
44
|
+
* __CALLS_SDK.params.clearAll();
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
clearAll(): void;
|
|
48
|
+
/**
|
|
49
|
+
* Get all current DevTools overrides
|
|
50
|
+
* @returns Current override values
|
|
51
|
+
* @example
|
|
52
|
+
* ```ts
|
|
53
|
+
* const overrides = __CALLS_SDK.params.getAll();
|
|
54
|
+
* console.log(overrides); // { webtransport: true }
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
getAll(): DevToolsOptions;
|
|
58
|
+
/**
|
|
59
|
+
* Apply DevTools overrides to client options
|
|
60
|
+
* DevTools overrides take precedence over client-provided options
|
|
61
|
+
* @param clientOptions - Original client options
|
|
62
|
+
* @returns Modified options with DevTools overrides applied
|
|
63
|
+
*/
|
|
64
|
+
applyOverrides<T extends DevToolsOptions>(clientOptions: T): T;
|
|
65
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for DevTools
|
|
3
|
+
*/
|
|
4
|
+
import type { ParamsObject } from '../static/Params';
|
|
5
|
+
type Primitive = string | number | boolean;
|
|
6
|
+
type PrimitiveKeys<T> = {
|
|
7
|
+
[K in keyof T]-?: Exclude<T[K], undefined> extends Primitive ? K : never;
|
|
8
|
+
}[keyof T];
|
|
9
|
+
export type PrimitiveParamsObject = Pick<ParamsObject, PrimitiveKeys<ParamsObject>>;
|
|
10
|
+
/**
|
|
11
|
+
* Available DevTools options that can be overridden
|
|
12
|
+
* All properties are optional
|
|
13
|
+
*/
|
|
14
|
+
export type DevToolsOptions = Partial<PrimitiveParamsObject>;
|
|
15
|
+
export {};
|
package/enums/HangupType.d.ts
CHANGED
|
@@ -38,6 +38,10 @@ declare enum HangupType {
|
|
|
38
38
|
* Проблемы при работе через FastStart
|
|
39
39
|
*/
|
|
40
40
|
FAST_START_ERROR = "FAST_START_ERROR",
|
|
41
|
+
/**
|
|
42
|
+
* Проблемы при работе через FastJoin
|
|
43
|
+
*/
|
|
44
|
+
FAST_JOIN_ERROR = "FAST_JOIN_ERROR",
|
|
41
45
|
/**
|
|
42
46
|
* Таймаут инициализации вызова – звонок не начался
|
|
43
47
|
*
|
|
@@ -55,6 +55,7 @@ declare enum SignalingCommandType {
|
|
|
55
55
|
GET_HAND_QUEUE = "get-hand-queue",
|
|
56
56
|
ENABLE_VIDEO_SUSPEND = "enable-video-suspend",
|
|
57
57
|
ENABLE_VIDEO_SUSPEND_SUGGEST = "enable-video-suspend-suggest",
|
|
58
|
+
HOLD = "hold",
|
|
58
59
|
PUT_HANDS_DOWN = "put-hands-down",
|
|
59
60
|
CHANGE_SIMULCAST = "change-simulcast"
|
|
60
61
|
}
|
package/enums/TrackId.d.ts
CHANGED
package/package.json
CHANGED
package/static/Params.d.ts
CHANGED
|
@@ -343,6 +343,7 @@ export type ParamsObject = {
|
|
|
343
343
|
* Включает поддержку режима WAIT_FOR_ADMIN в звонках.
|
|
344
344
|
*/
|
|
345
345
|
waitForAdminInGroupCalls: boolean;
|
|
346
|
+
hold: boolean;
|
|
346
347
|
/**
|
|
347
348
|
* Индекс участника для первого chunk'а который придет при установке соединения с сервером
|
|
348
349
|
*
|
|
@@ -480,6 +481,12 @@ export type ParamsObject = {
|
|
|
480
481
|
* _По умолчанию: `false`_
|
|
481
482
|
*/
|
|
482
483
|
webtransportFF: boolean;
|
|
484
|
+
/**
|
|
485
|
+
* Включить поддержку прозрачного аудио
|
|
486
|
+
*
|
|
487
|
+
* _По умолчанию: `false`_
|
|
488
|
+
*/
|
|
489
|
+
transparentAudio: boolean;
|
|
483
490
|
/**
|
|
484
491
|
* Получен локальный стрим с камеры/микрофона
|
|
485
492
|
*/
|
|
@@ -963,6 +970,7 @@ export default abstract class Params {
|
|
|
963
970
|
static get useChatRooms(): boolean;
|
|
964
971
|
static get addParticipant(): boolean;
|
|
965
972
|
static get waitForAdminInGroupCalls(): boolean;
|
|
973
|
+
static get hold(): boolean;
|
|
966
974
|
static get participantListChunkInitIndex(): number;
|
|
967
975
|
static get participantListChunkInitCount(): number | null;
|
|
968
976
|
static get filterObservers(): boolean;
|
|
@@ -985,6 +993,7 @@ export default abstract class Params {
|
|
|
985
993
|
static get simulcast(): boolean;
|
|
986
994
|
static get webtransport(): boolean;
|
|
987
995
|
static get webtransportFF(): boolean;
|
|
996
|
+
static get transparentAudio(): boolean;
|
|
988
997
|
static toJSON(): {
|
|
989
998
|
apiKey: string;
|
|
990
999
|
apiEnv: string;
|
|
@@ -1018,5 +1027,6 @@ export default abstract class Params {
|
|
|
1018
1027
|
simulcast: boolean;
|
|
1019
1028
|
webtransport: boolean;
|
|
1020
1029
|
webtransportFF: boolean;
|
|
1030
|
+
transparentAudio: boolean;
|
|
1021
1031
|
};
|
|
1022
1032
|
}
|
|
@@ -20,6 +20,7 @@ declare const PREDICATES: {
|
|
|
20
20
|
readonly addParticipant: () => boolean;
|
|
21
21
|
readonly p2pRelay: () => boolean;
|
|
22
22
|
readonly waitForAdmin: () => boolean;
|
|
23
|
+
readonly hold: () => boolean;
|
|
23
24
|
};
|
|
24
25
|
type ParticipantCapabilitiesKeys = keyof typeof PREDICATES;
|
|
25
26
|
export type ParticipantCapabilities = Record<ParticipantCapabilitiesKeys, boolean>;
|
package/static/Utils.d.ts
CHANGED
|
@@ -33,7 +33,9 @@ declare namespace Utils {
|
|
|
33
33
|
function uuid(): string;
|
|
34
34
|
function debounce<F extends (...args: Parameters<F>) => ReturnType<F>>(func: F, ms: number): (this: any, ..._args: Parameters<F>) => void;
|
|
35
35
|
function sdpFingerprint(sdp: string): bigint | null;
|
|
36
|
-
function delay(time: number
|
|
36
|
+
function delay(time: number, { signal }?: {
|
|
37
|
+
signal?: AbortSignal;
|
|
38
|
+
}): Promise<void>;
|
|
37
39
|
function applySettings(pc: RTCPeerConnection, videoSettings: VideoSettings, prevSettings: any): any;
|
|
38
40
|
function applyVideoTrackSettings(videoSettings: VideoSettings, s: RTCRtpSender, track: MediaStreamTrack | null, prevSettings: any, retSettings: any): void;
|
|
39
41
|
/**
|
package/static/WebRTCUtils.d.ts
CHANGED
|
@@ -75,6 +75,7 @@ declare namespace WebRTCUtils {
|
|
|
75
75
|
* Проверяет получены ли разрешения, необходимые для текущего звонка
|
|
76
76
|
*/
|
|
77
77
|
function hasPermissions(needVideo?: boolean): boolean;
|
|
78
|
+
function releaseFirefoxMicrophonePermissionWarmup(): void;
|
|
78
79
|
/**
|
|
79
80
|
* Запрашивает камеру и микрофон пользователя
|
|
80
81
|
*
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Параметры для fast join
|
|
3
|
+
*/
|
|
4
|
+
export interface FastJoinParams {
|
|
5
|
+
joinLink: string;
|
|
6
|
+
isVideo: boolean;
|
|
7
|
+
internalParams: string;
|
|
8
|
+
}
|
|
9
|
+
export interface FastJoinResponse {
|
|
10
|
+
conversationId: string;
|
|
11
|
+
internalCallerParams: string;
|
|
12
|
+
}
|
|
13
|
+
export type FastJoinHandler = (params: FastJoinParams, signal?: AbortSignal) => Promise<FastJoinResponse>;
|
package/types/FastStart.d.ts
CHANGED
|
@@ -44,4 +44,4 @@ export interface FastStartResponse {
|
|
|
44
44
|
status: string;
|
|
45
45
|
}[];
|
|
46
46
|
}
|
|
47
|
-
export type FastStartHandler = (params: FastStartParams) => Promise<FastStartResponse>;
|
|
47
|
+
export type FastStartHandler = (params: FastStartParams, signal?: AbortSignal) => Promise<FastStartResponse>;
|