livekit-client 0.16.5 → 0.17.1
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/dist/api/RequestQueue.js +6 -6
- package/dist/api/RequestQueue.js.map +1 -1
- package/dist/api/SignalClient.d.ts +3 -0
- package/dist/api/SignalClient.js +24 -3
- package/dist/api/SignalClient.js.map +1 -1
- package/dist/connect.js +1 -1
- package/dist/connect.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/options.d.ts +7 -2
- package/dist/proto/livekit_models.d.ts +33 -0
- package/dist/proto/livekit_models.js +213 -3
- package/dist/proto/livekit_models.js.map +1 -1
- package/dist/proto/livekit_rtc.d.ts +15 -1
- package/dist/proto/livekit_rtc.js +128 -2
- package/dist/proto/livekit_rtc.js.map +1 -1
- package/dist/room/RTCEngine.d.ts +21 -6
- package/dist/room/RTCEngine.js +13 -8
- package/dist/room/RTCEngine.js.map +1 -1
- package/dist/room/Room.d.ts +43 -6
- package/dist/room/Room.js +81 -59
- package/dist/room/Room.js.map +1 -1
- package/dist/room/events.d.ts +14 -2
- package/dist/room/events.js +16 -4
- package/dist/room/events.js.map +1 -1
- package/dist/room/participant/LocalParticipant.d.ts +3 -1
- package/dist/room/participant/LocalParticipant.js +17 -1
- package/dist/room/participant/LocalParticipant.js.map +1 -1
- package/dist/room/participant/Participant.d.ts +30 -4
- package/dist/room/participant/Participant.js +2 -2
- package/dist/room/participant/Participant.js.map +1 -1
- package/dist/room/participant/RemoteParticipant.d.ts +5 -5
- package/dist/room/participant/RemoteParticipant.js +3 -3
- package/dist/room/participant/RemoteParticipant.js.map +1 -1
- package/dist/room/participant/publishUtils.d.ts +6 -0
- package/dist/room/participant/publishUtils.js +65 -24
- package/dist/room/participant/publishUtils.js.map +1 -1
- package/dist/room/participant/publishUtils.test.js +35 -5
- package/dist/room/participant/publishUtils.test.js.map +1 -1
- package/dist/room/track/LocalAudioTrack.d.ts +2 -0
- package/dist/room/track/LocalAudioTrack.js +23 -0
- package/dist/room/track/LocalAudioTrack.js.map +1 -1
- package/dist/room/track/LocalTrack.d.ts +4 -0
- package/dist/room/track/LocalTrack.js +34 -0
- package/dist/room/track/LocalTrack.js.map +1 -1
- package/dist/room/track/LocalVideoTrack.d.ts +1 -0
- package/dist/room/track/LocalVideoTrack.js +13 -0
- package/dist/room/track/LocalVideoTrack.js.map +1 -1
- package/dist/room/track/RemoteTrack.d.ts +1 -0
- package/dist/room/track/RemoteTrack.js +1 -0
- package/dist/room/track/RemoteTrack.js.map +1 -1
- package/dist/room/track/RemoteVideoTrack.d.ts +4 -2
- package/dist/room/track/RemoteVideoTrack.js +23 -8
- package/dist/room/track/RemoteVideoTrack.js.map +1 -1
- package/dist/room/track/Track.d.ts +20 -4
- package/dist/room/track/Track.js +20 -1
- package/dist/room/track/Track.js.map +1 -1
- package/dist/room/track/defaults.js +2 -2
- package/dist/room/track/defaults.js.map +1 -1
- package/dist/room/track/options.d.ts +65 -15
- package/dist/room/track/options.js +38 -0
- package/dist/room/track/options.js.map +1 -1
- package/dist/room/track/types.d.ts +15 -4
- package/dist/room/track/utils.d.ts +10 -0
- package/dist/room/track/utils.js +46 -1
- package/dist/room/track/utils.js.map +1 -1
- package/dist/room/utils.d.ts +1 -0
- package/dist/room/utils.js +5 -1
- package/dist/room/utils.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -1
- package/src/api/RequestQueue.ts +7 -7
- package/src/api/SignalClient.ts +31 -4
- package/src/connect.ts +1 -1
- package/src/index.ts +1 -1
- package/src/options.ts +12 -3
- package/src/proto/livekit_models.ts +249 -0
- package/src/proto/livekit_rtc.ts +155 -0
- package/src/room/RTCEngine.ts +43 -11
- package/src/room/Room.ts +152 -66
- package/src/room/events.ts +16 -2
- package/src/room/participant/LocalParticipant.ts +23 -4
- package/src/room/participant/Participant.ts +39 -4
- package/src/room/participant/RemoteParticipant.ts +10 -8
- package/src/room/participant/publishUtils.test.ts +46 -6
- package/src/room/participant/publishUtils.ts +72 -27
- package/src/room/track/LocalAudioTrack.ts +19 -1
- package/src/room/track/LocalTrack.ts +36 -0
- package/src/room/track/LocalVideoTrack.ts +9 -1
- package/src/room/track/RemoteTrack.ts +2 -0
- package/src/room/track/RemoteVideoTrack.ts +22 -9
- package/src/room/track/Track.ts +29 -3
- package/src/room/track/defaults.ts +2 -2
- package/src/room/track/options.ts +55 -3
- package/src/room/track/types.ts +16 -4
- package/src/room/track/utils.ts +39 -0
- package/src/room/utils.ts +4 -0
- package/src/version.ts +1 -1
@@ -36,27 +36,65 @@ var AudioPresets;
|
|
36
36
|
* Sane presets for video resolution/encoding
|
37
37
|
*/
|
38
38
|
exports.VideoPresets = {
|
39
|
+
h90: new VideoPreset(160, 90, 60000, 15),
|
40
|
+
h180: new VideoPreset(320, 180, 120000, 15),
|
41
|
+
h216: new VideoPreset(384, 216, 180000, 15),
|
42
|
+
h360: new VideoPreset(640, 360, 300000, 20),
|
43
|
+
h540: new VideoPreset(960, 540, 600000, 25),
|
44
|
+
h720: new VideoPreset(1280, 720, 2000000, 30),
|
45
|
+
h1080: new VideoPreset(1920, 1080, 3000000, 30),
|
46
|
+
h1440: new VideoPreset(2560, 1440, 5000000, 30),
|
47
|
+
h2160: new VideoPreset(3840, 2160, 8000000, 30),
|
48
|
+
/** @deprecated */
|
39
49
|
qvga: new VideoPreset(320, 180, 120000, 10),
|
50
|
+
/** @deprecated */
|
40
51
|
vga: new VideoPreset(640, 360, 300000, 20),
|
52
|
+
/** @deprecated */
|
41
53
|
qhd: new VideoPreset(960, 540, 600000, 25),
|
54
|
+
/** @deprecated */
|
42
55
|
hd: new VideoPreset(1280, 720, 2000000, 30),
|
56
|
+
/** @deprecated */
|
43
57
|
fhd: new VideoPreset(1920, 1080, 3000000, 30),
|
44
58
|
};
|
45
59
|
/**
|
46
60
|
* Four by three presets
|
47
61
|
*/
|
48
62
|
exports.VideoPresets43 = {
|
63
|
+
h120: new VideoPreset(160, 120, 80000, 15),
|
64
|
+
h180: new VideoPreset(240, 180, 100000, 15),
|
65
|
+
h240: new VideoPreset(320, 240, 150000, 15),
|
66
|
+
h360: new VideoPreset(480, 360, 225000, 20),
|
67
|
+
h480: new VideoPreset(640, 480, 300000, 20),
|
68
|
+
h540: new VideoPreset(720, 540, 450000, 25),
|
69
|
+
h720: new VideoPreset(960, 720, 1500000, 30),
|
70
|
+
h1080: new VideoPreset(1440, 1080, 2500000, 30),
|
71
|
+
h1440: new VideoPreset(1920, 1440, 3500000, 30),
|
72
|
+
/** @deprecated */
|
49
73
|
qvga: new VideoPreset(240, 180, 90000, 10),
|
74
|
+
/** @deprecated */
|
50
75
|
vga: new VideoPreset(480, 360, 225000, 20),
|
76
|
+
/** @deprecated */
|
51
77
|
qhd: new VideoPreset(720, 540, 450000, 25),
|
78
|
+
/** @deprecated */
|
52
79
|
hd: new VideoPreset(960, 720, 1500000, 30),
|
80
|
+
/** @deprecated */
|
53
81
|
fhd: new VideoPreset(1440, 1080, 2800000, 30),
|
54
82
|
};
|
55
83
|
exports.ScreenSharePresets = {
|
84
|
+
h360fps3: new VideoPreset(640, 360, 200000, 3),
|
85
|
+
h720fps5: new VideoPreset(1280, 720, 400000, 5),
|
86
|
+
h720fps15: new VideoPreset(1280, 720, 1000000, 15),
|
87
|
+
h1080fps15: new VideoPreset(1920, 1080, 1500000, 15),
|
88
|
+
h1080fps30: new VideoPreset(1920, 1080, 3000000, 30),
|
89
|
+
/** @deprecated */
|
56
90
|
vga: new VideoPreset(640, 360, 200000, 3),
|
91
|
+
/** @deprecated */
|
57
92
|
hd_8: new VideoPreset(1280, 720, 400000, 5),
|
93
|
+
/** @deprecated */
|
58
94
|
hd_15: new VideoPreset(1280, 720, 1000000, 15),
|
95
|
+
/** @deprecated */
|
59
96
|
fhd_15: new VideoPreset(1920, 1080, 1500000, 15),
|
97
|
+
/** @deprecated */
|
60
98
|
fhd_30: new VideoPreset(1920, 1080, 3000000, 30),
|
61
99
|
};
|
62
100
|
//# sourceMappingURL=options.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/room/track/options.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/room/track/options.ts"],"names":[],"mappings":"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"}
|
@@ -1,7 +1,18 @@
|
|
1
|
-
import LocalAudioTrack from './LocalAudioTrack';
|
2
|
-
import LocalVideoTrack from './LocalVideoTrack';
|
3
|
-
import RemoteAudioTrack from './RemoteAudioTrack';
|
4
|
-
import RemoteVideoTrack from './RemoteVideoTrack';
|
1
|
+
import type LocalAudioTrack from './LocalAudioTrack';
|
2
|
+
import type LocalVideoTrack from './LocalVideoTrack';
|
3
|
+
import type RemoteAudioTrack from './RemoteAudioTrack';
|
4
|
+
import type RemoteVideoTrack from './RemoteVideoTrack';
|
5
5
|
export declare type RemoteTrack = RemoteAudioTrack | RemoteVideoTrack;
|
6
6
|
export declare type AudioTrack = RemoteAudioTrack | LocalAudioTrack;
|
7
7
|
export declare type VideoTrack = RemoteVideoTrack | LocalVideoTrack;
|
8
|
+
export declare type AdaptiveStreamSettings = {
|
9
|
+
/**
|
10
|
+
* Set a custom pixel density, defaults to 1
|
11
|
+
* When streaming videos on a ultra high definition screen this setting
|
12
|
+
* let's you account for the devicePixelRatio of those screens.
|
13
|
+
* Set it to `screen` to use the actual pixel density of the screen
|
14
|
+
* Note: this might significantly increase the bandwidth consumed by people
|
15
|
+
* streaming on high definition screens.
|
16
|
+
*/
|
17
|
+
pixelDensity?: number | 'screen';
|
18
|
+
};
|
@@ -1,3 +1,13 @@
|
|
1
1
|
import { AudioCaptureOptions, CreateLocalTracksOptions, VideoCaptureOptions } from './options';
|
2
|
+
import { AudioTrack } from './types';
|
2
3
|
export declare function mergeDefaultOptions(options?: CreateLocalTracksOptions, audioDefaults?: AudioCaptureOptions, videoDefaults?: VideoCaptureOptions): CreateLocalTracksOptions;
|
3
4
|
export declare function constraintsForOptions(options: CreateLocalTracksOptions): MediaStreamConstraints;
|
5
|
+
/**
|
6
|
+
* This function detects silence on a given [[Track]] instance.
|
7
|
+
* Returns true if the track seems to be entirely silent.
|
8
|
+
*/
|
9
|
+
export declare function detectSilence(track: AudioTrack, timeOffset?: number): Promise<boolean>;
|
10
|
+
/**
|
11
|
+
* @internal
|
12
|
+
*/
|
13
|
+
export declare function getNewAudioContext(): AudioContext | void;
|
package/dist/room/track/utils.js
CHANGED
@@ -1,6 +1,16 @@
|
|
1
1
|
"use strict";
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
|
+
});
|
10
|
+
};
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.constraintsForOptions = exports.mergeDefaultOptions = void 0;
|
12
|
+
exports.getNewAudioContext = exports.detectSilence = exports.constraintsForOptions = exports.mergeDefaultOptions = void 0;
|
13
|
+
const utils_1 = require("../utils");
|
4
14
|
function mergeDefaultOptions(options, audioDefaults, videoDefaults) {
|
5
15
|
const opts = Object.assign({}, options);
|
6
16
|
if (opts.audio === true)
|
@@ -65,4 +75,39 @@ function constraintsForOptions(options) {
|
|
65
75
|
return constraints;
|
66
76
|
}
|
67
77
|
exports.constraintsForOptions = constraintsForOptions;
|
78
|
+
/**
|
79
|
+
* This function detects silence on a given [[Track]] instance.
|
80
|
+
* Returns true if the track seems to be entirely silent.
|
81
|
+
*/
|
82
|
+
function detectSilence(track, timeOffset = 200) {
|
83
|
+
return __awaiter(this, void 0, void 0, function* () {
|
84
|
+
const ctx = getNewAudioContext();
|
85
|
+
if (ctx) {
|
86
|
+
const analyser = ctx.createAnalyser();
|
87
|
+
analyser.fftSize = 2048;
|
88
|
+
const bufferLength = analyser.frequencyBinCount;
|
89
|
+
const dataArray = new Uint8Array(bufferLength);
|
90
|
+
const source = ctx.createMediaStreamSource(new MediaStream([track.mediaStreamTrack]));
|
91
|
+
source.connect(analyser);
|
92
|
+
yield utils_1.sleep(timeOffset);
|
93
|
+
analyser.getByteTimeDomainData(dataArray);
|
94
|
+
const someNoise = dataArray.some((sample) => sample !== 128 && sample !== 0);
|
95
|
+
ctx.close();
|
96
|
+
return !someNoise;
|
97
|
+
}
|
98
|
+
return false;
|
99
|
+
});
|
100
|
+
}
|
101
|
+
exports.detectSilence = detectSilence;
|
102
|
+
/**
|
103
|
+
* @internal
|
104
|
+
*/
|
105
|
+
function getNewAudioContext() {
|
106
|
+
// @ts-ignore
|
107
|
+
const AudioContext = window.AudioContext || window.webkitAudioContext;
|
108
|
+
if (AudioContext) {
|
109
|
+
return new AudioContext();
|
110
|
+
}
|
111
|
+
}
|
112
|
+
exports.getNewAudioContext = getNewAudioContext;
|
68
113
|
//# sourceMappingURL=utils.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/room/track/utils.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/room/track/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/room/utils.d.ts
CHANGED
@@ -3,6 +3,7 @@ export declare function unpackStreamId(packed: string): string[];
|
|
3
3
|
export declare function sleep(duration: number): Promise<void>;
|
4
4
|
export declare function isFireFox(): boolean;
|
5
5
|
export declare function isSafari(): boolean;
|
6
|
+
export declare function isMobile(): boolean;
|
6
7
|
export declare const getResizeObserver: () => ResizeObserver;
|
7
8
|
export declare const getIntersectionObserver: () => IntersectionObserver;
|
8
9
|
export interface ObservableMediaElement extends HTMLMediaElement {
|
package/dist/room/utils.js
CHANGED
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
9
9
|
});
|
10
10
|
};
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
12
|
-
exports.getClientInfo = exports.getIntersectionObserver = exports.getResizeObserver = exports.isSafari = exports.isFireFox = exports.sleep = exports.unpackStreamId = void 0;
|
12
|
+
exports.getClientInfo = exports.getIntersectionObserver = exports.getResizeObserver = exports.isMobile = exports.isSafari = exports.isFireFox = exports.sleep = exports.unpackStreamId = void 0;
|
13
13
|
const livekit_models_1 = require("../proto/livekit_models");
|
14
14
|
const version_1 = require("../version");
|
15
15
|
const separator = '|';
|
@@ -35,6 +35,10 @@ function isSafari() {
|
|
35
35
|
return /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
|
36
36
|
}
|
37
37
|
exports.isSafari = isSafari;
|
38
|
+
function isMobile() {
|
39
|
+
return /Tablet|iPad|Mobile|Android|BlackBerry/.test(navigator.userAgent);
|
40
|
+
}
|
41
|
+
exports.isMobile = isMobile;
|
38
42
|
function roDispatchCallback(entries) {
|
39
43
|
for (const entry of entries) {
|
40
44
|
entry.target.handleResize(entry);
|
package/dist/room/utils.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/room/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4DAAqE;AACrE,wCAAsD;AAEtD,MAAM,SAAS,GAAG,GAAG,CAAC;AAEtB,SAAgB,cAAc,CAAC,MAAc;IAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QACpB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;KACvD;IACD,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACtB,CAAC;AAND,wCAMC;AAED,SAAsB,KAAK,CAAC,QAAgB;;QAC1C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IACjE,CAAC;CAAA;AAFD,sBAEC;AAED,SAAgB,SAAS;IACvB,OAAO,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AACvD,CAAC;AAFD,8BAEC;AAED,SAAgB,QAAQ;IACtB,OAAO,gCAAgC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AACpE,CAAC;AAFD,4BAEC;AAED,SAAS,kBAAkB,CAAC,OAA8B;IACxD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;QAC1B,KAAK,CAAC,MAAiC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;KAC9D;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAoC;IAC9D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;QAC1B,KAAK,CAAC,MAAiC,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;KACzE;AACH,CAAC;AAED,IAAI,cAAc,GAA0B,IAAI,CAAC;AAC1C,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,IAAI,CAAC,cAAc;QAAE,cAAc,GAAG,IAAI,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAC7E,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AAHW,QAAA,iBAAiB,qBAG5B;AAEF,IAAI,oBAAoB,GAAgC,IAAI,CAAC;AACtD,MAAM,uBAAuB,GAAG,GAAG,EAAE;IAC1C,IAAI,CAAC,oBAAoB;QAAE,oBAAoB,GAAG,IAAI,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;IAC/F,OAAO,oBAAoB,CAAC;AAC9B,CAAC,CAAC;AAHW,QAAA,uBAAuB,2BAGlC;AAOF,SAAgB,aAAa;IAC3B,MAAM,IAAI,GAAG,2BAAU,CAAC,WAAW,CAAC;QAClC,GAAG,EAAE,+BAAc,CAAC,EAAE;QACtB,QAAQ,EAAE,yBAAe;QACzB,OAAO,EAAP,iBAAO;KACR,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC;AAPD,sCAOC"}
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/room/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4DAAqE;AACrE,wCAAsD;AAEtD,MAAM,SAAS,GAAG,GAAG,CAAC;AAEtB,SAAgB,cAAc,CAAC,MAAc;IAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QACpB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;KACvD;IACD,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACtB,CAAC;AAND,wCAMC;AAED,SAAsB,KAAK,CAAC,QAAgB;;QAC1C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IACjE,CAAC;CAAA;AAFD,sBAEC;AAED,SAAgB,SAAS;IACvB,OAAO,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AACvD,CAAC;AAFD,8BAEC;AAED,SAAgB,QAAQ;IACtB,OAAO,gCAAgC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AACpE,CAAC;AAFD,4BAEC;AAED,SAAgB,QAAQ;IACtB,OAAO,uCAAuC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAC3E,CAAC;AAFD,4BAEC;AAED,SAAS,kBAAkB,CAAC,OAA8B;IACxD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;QAC1B,KAAK,CAAC,MAAiC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;KAC9D;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAoC;IAC9D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;QAC1B,KAAK,CAAC,MAAiC,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;KACzE;AACH,CAAC;AAED,IAAI,cAAc,GAA0B,IAAI,CAAC;AAC1C,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,IAAI,CAAC,cAAc;QAAE,cAAc,GAAG,IAAI,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAC7E,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AAHW,QAAA,iBAAiB,qBAG5B;AAEF,IAAI,oBAAoB,GAAgC,IAAI,CAAC;AACtD,MAAM,uBAAuB,GAAG,GAAG,EAAE;IAC1C,IAAI,CAAC,oBAAoB;QAAE,oBAAoB,GAAG,IAAI,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;IAC/F,OAAO,oBAAoB,CAAC;AAC9B,CAAC,CAAC;AAHW,QAAA,uBAAuB,2BAGlC;AAOF,SAAgB,aAAa;IAC3B,MAAM,IAAI,GAAG,2BAAU,CAAC,WAAW,CAAC;QAClC,GAAG,EAAE,+BAAc,CAAC,EAAE;QACtB,QAAQ,EAAE,yBAAe;QACzB,OAAO,EAAP,iBAAO;KACR,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC;AAPD,sCAOC"}
|
package/dist/version.d.ts
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
export declare const version = "0.
|
1
|
+
export declare const version = "0.17.1";
|
2
2
|
export declare const protocolVersion = 6;
|
package/dist/version.js
CHANGED
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "livekit-client",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.17.1",
|
4
4
|
"description": "JavaScript/TypeScript client SDK for LiveKit",
|
5
5
|
"main": "dist/index.js",
|
6
6
|
"source": "src/index.ts",
|
@@ -23,6 +23,7 @@
|
|
23
23
|
"loglevel": "^1.8.0",
|
24
24
|
"protobufjs": "^6.11.2",
|
25
25
|
"ts-debounce": "^3.0.0",
|
26
|
+
"typed-emitter": "^2.1.0",
|
26
27
|
"webrtc-adapter": "^8.1.1"
|
27
28
|
},
|
28
29
|
"devDependencies": {
|
package/src/api/RequestQueue.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import
|
1
|
+
import log from '../logger';
|
2
2
|
|
3
3
|
export default class Queue {
|
4
4
|
private queue: Array<() => void>;
|
@@ -11,34 +11,34 @@ export default class Queue {
|
|
11
11
|
}
|
12
12
|
|
13
13
|
enqueue(cb: () => void) {
|
14
|
-
|
14
|
+
log.trace('enqueuing request to fire later');
|
15
15
|
this.queue.push(cb);
|
16
16
|
}
|
17
17
|
|
18
18
|
dequeue() {
|
19
19
|
const evt = this.queue.shift();
|
20
20
|
if (evt) evt();
|
21
|
-
|
21
|
+
log.trace('firing request from queue');
|
22
22
|
}
|
23
23
|
|
24
24
|
async run() {
|
25
25
|
if (this.running) return;
|
26
|
-
|
26
|
+
log.trace('start queue');
|
27
27
|
this.running = true;
|
28
28
|
while (this.running && this.queue.length > 0) {
|
29
29
|
this.dequeue();
|
30
30
|
}
|
31
31
|
this.running = false;
|
32
|
-
|
32
|
+
log.trace('queue finished');
|
33
33
|
}
|
34
34
|
|
35
35
|
pause() {
|
36
|
-
|
36
|
+
log.trace('pausing queue');
|
37
37
|
this.running = false;
|
38
38
|
}
|
39
39
|
|
40
40
|
reset() {
|
41
|
-
|
41
|
+
log.trace('resetting queue');
|
42
42
|
this.running = false;
|
43
43
|
this.queue = [];
|
44
44
|
}
|
package/src/api/SignalClient.ts
CHANGED
@@ -28,11 +28,30 @@ interface ConnectOpts {
|
|
28
28
|
autoSubscribe?: boolean;
|
29
29
|
/** internal */
|
30
30
|
reconnect?: boolean;
|
31
|
+
|
32
|
+
publishOnly?: string;
|
31
33
|
}
|
32
34
|
|
33
35
|
// public options
|
34
36
|
export interface SignalOptions {
|
35
37
|
autoSubscribe?: boolean;
|
38
|
+
publishOnly?: string;
|
39
|
+
}
|
40
|
+
|
41
|
+
const passThroughQueueSignals: Array<keyof SignalRequest> = [
|
42
|
+
'syncState',
|
43
|
+
'trickle',
|
44
|
+
'offer',
|
45
|
+
'answer',
|
46
|
+
'simulate',
|
47
|
+
'leave',
|
48
|
+
];
|
49
|
+
|
50
|
+
function canPassThroughQueue(req: SignalRequest): boolean {
|
51
|
+
const canPass = Object.keys(req)
|
52
|
+
.find((key) => passThroughQueueSignals.includes(key as keyof SignalRequest)) !== undefined;
|
53
|
+
log.trace('request allowed to bypass queue:', canPass, req);
|
54
|
+
return canPass;
|
36
55
|
}
|
37
56
|
|
38
57
|
/** @internal */
|
@@ -100,6 +119,7 @@ export class SignalClient {
|
|
100
119
|
this.isConnected = false;
|
101
120
|
const res = await this.connect(url, token, {
|
102
121
|
autoSubscribe: opts?.autoSubscribe,
|
122
|
+
publishOnly: opts?.publishOnly,
|
103
123
|
});
|
104
124
|
return res as JoinResponse;
|
105
125
|
}
|
@@ -109,8 +129,6 @@ export class SignalClient {
|
|
109
129
|
await this.connect(url, token, {
|
110
130
|
reconnect: true,
|
111
131
|
});
|
112
|
-
this.isReconnecting = false;
|
113
|
-
this.requestQueue.run();
|
114
132
|
}
|
115
133
|
|
116
134
|
connect(
|
@@ -300,8 +318,8 @@ export class SignalClient {
|
|
300
318
|
// capture all requests while reconnecting and put them in a queue.
|
301
319
|
// keep order by queueing up new events as long as the queue is not empty
|
302
320
|
// unless the request originates from the queue, then don't enqueue again
|
303
|
-
|
304
|
-
if ((this.isReconnecting
|
321
|
+
const canQueue = !fromQueue && !canPassThroughQueue(req);
|
322
|
+
if (canQueue && (this.isReconnecting || (!this.requestQueue.isEmpty()))) {
|
305
323
|
this.requestQueue.enqueue(() => this.sendRequest(req, true));
|
306
324
|
return;
|
307
325
|
}
|
@@ -391,6 +409,11 @@ export class SignalClient {
|
|
391
409
|
}
|
392
410
|
}
|
393
411
|
|
412
|
+
setReconnected() {
|
413
|
+
this.isReconnecting = false;
|
414
|
+
this.requestQueue.run();
|
415
|
+
}
|
416
|
+
|
394
417
|
private handleWSError(ev: Event) {
|
395
418
|
log.error('websocket error', ev);
|
396
419
|
}
|
@@ -458,5 +481,9 @@ function createConnectionParams(token: string, info: ClientInfo, opts?: ConnectO
|
|
458
481
|
params.set('browser_version', info.browserVersion);
|
459
482
|
}
|
460
483
|
|
484
|
+
if (opts?.publishOnly !== undefined) {
|
485
|
+
params.set('publish', opts.publishOnly);
|
486
|
+
}
|
487
|
+
|
461
488
|
return `?${params.toString()}`;
|
462
489
|
}
|
package/src/connect.ts
CHANGED
@@ -32,7 +32,7 @@ export async function connect(
|
|
32
32
|
): Promise<Room> {
|
33
33
|
options ??= {};
|
34
34
|
if (options.adaptiveStream === undefined) {
|
35
|
-
options.adaptiveStream = options.autoManageVideo;
|
35
|
+
options.adaptiveStream = options.autoManageVideo === true ? {} : undefined;
|
36
36
|
}
|
37
37
|
setLogLevel(options.logLevel ?? LogLevel.warn);
|
38
38
|
|
package/src/index.ts
CHANGED
@@ -29,7 +29,6 @@ export {
|
|
29
29
|
Room,
|
30
30
|
RoomState,
|
31
31
|
DataPacket_Kind,
|
32
|
-
ConnectionQuality,
|
33
32
|
Participant,
|
34
33
|
RemoteParticipant,
|
35
34
|
LocalParticipant,
|
@@ -44,4 +43,5 @@ export {
|
|
44
43
|
ParticipantTrackPermission,
|
45
44
|
TrackPublication,
|
46
45
|
VideoQuality,
|
46
|
+
ConnectionQuality,
|
47
47
|
};
|
package/src/options.ts
CHANGED
@@ -1,7 +1,11 @@
|
|
1
1
|
import { LogLevel, LogLevelDesc } from './logger';
|
2
2
|
import {
|
3
|
-
AudioCaptureOptions,
|
3
|
+
AudioCaptureOptions,
|
4
|
+
CreateLocalTracksOptions,
|
5
|
+
TrackPublishDefaults,
|
6
|
+
VideoCaptureOptions,
|
4
7
|
} from './room/track/options';
|
8
|
+
import { AdaptiveStreamSettings } from './room/track/types';
|
5
9
|
|
6
10
|
/**
|
7
11
|
* Options for when creating a new room
|
@@ -16,7 +20,7 @@ export interface RoomOptions {
|
|
16
20
|
* When none of the video elements are visible, it'll temporarily pause
|
17
21
|
* the data flow until they are visible again.
|
18
22
|
*/
|
19
|
-
adaptiveStream?: boolean;
|
23
|
+
adaptiveStream?: AdaptiveStreamSettings | boolean;
|
20
24
|
|
21
25
|
/**
|
22
26
|
* enable Dynacast, off by default. With Dynacast dynamically pauses
|
@@ -64,6 +68,11 @@ export interface RoomConnectOptions {
|
|
64
68
|
* use to override any RTCConfiguration options.
|
65
69
|
*/
|
66
70
|
rtcConfig?: RTCConfiguration;
|
71
|
+
|
72
|
+
/**
|
73
|
+
* publish only mode
|
74
|
+
*/
|
75
|
+
publishOnly?: string;
|
67
76
|
}
|
68
77
|
|
69
78
|
/**
|
@@ -77,7 +86,7 @@ export interface ConnectOptions extends CreateLocalTracksOptions {
|
|
77
86
|
/**
|
78
87
|
* see [[RoomOptions.adaptiveStream]]
|
79
88
|
*/
|
80
|
-
adaptiveStream?: boolean;
|
89
|
+
adaptiveStream?: AdaptiveStreamSettings | boolean;
|
81
90
|
|
82
91
|
/**
|
83
92
|
* alias for adaptiveStream
|