livekit-client 0.15.0 → 0.15.4
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/.gitmodules +3 -0
- package/README.md +21 -4
- package/dist/api/SignalClient.d.ts +11 -2
- package/dist/api/SignalClient.js +92 -25
- package/dist/api/SignalClient.js.map +1 -1
- package/dist/connect.js +3 -0
- package/dist/connect.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.js +6 -3
- package/dist/index.js.map +1 -1
- package/dist/logger.js +1 -0
- package/dist/logger.js.map +1 -1
- package/dist/options.d.ts +28 -14
- package/dist/proto/livekit_models.d.ts +48 -0
- package/dist/proto/livekit_models.js +367 -5
- package/dist/proto/livekit_models.js.map +1 -1
- package/dist/proto/livekit_rtc.d.ts +100 -1
- package/dist/proto/livekit_rtc.js +745 -3
- package/dist/proto/livekit_rtc.js.map +1 -1
- package/dist/room/PCTransport.js +4 -0
- package/dist/room/PCTransport.js.map +1 -1
- package/dist/room/RTCEngine.d.ts +4 -0
- package/dist/room/RTCEngine.js +73 -34
- package/dist/room/RTCEngine.js.map +1 -1
- package/dist/room/Room.d.ts +15 -0
- package/dist/room/Room.js +172 -59
- package/dist/room/Room.js.map +1 -1
- package/dist/room/events.d.ts +60 -24
- package/dist/room/events.js +58 -22
- package/dist/room/events.js.map +1 -1
- package/dist/room/participant/LocalParticipant.d.ts +26 -2
- package/dist/room/participant/LocalParticipant.js +69 -21
- package/dist/room/participant/LocalParticipant.js.map +1 -1
- package/dist/room/participant/Participant.d.ts +3 -1
- package/dist/room/participant/Participant.js +1 -0
- package/dist/room/participant/Participant.js.map +1 -1
- package/dist/room/participant/ParticipantTrackPermission.d.ts +19 -0
- package/dist/room/participant/ParticipantTrackPermission.js +16 -0
- package/dist/room/participant/ParticipantTrackPermission.js.map +1 -0
- package/dist/room/participant/RemoteParticipant.d.ts +2 -2
- package/dist/room/participant/RemoteParticipant.js +9 -15
- package/dist/room/participant/RemoteParticipant.js.map +1 -1
- package/dist/room/participant/publishUtils.d.ts +1 -1
- package/dist/room/participant/publishUtils.js +4 -4
- package/dist/room/participant/publishUtils.js.map +1 -1
- package/dist/room/participant/publishUtils.test.js +10 -1
- package/dist/room/participant/publishUtils.test.js.map +1 -1
- package/dist/room/stats.d.ts +21 -6
- package/dist/room/stats.js +22 -1
- package/dist/room/stats.js.map +1 -1
- package/dist/room/track/LocalAudioTrack.d.ts +5 -1
- package/dist/room/track/LocalAudioTrack.js +45 -1
- package/dist/room/track/LocalAudioTrack.js.map +1 -1
- package/dist/room/track/LocalTrack.js +1 -1
- package/dist/room/track/LocalTrack.js.map +1 -1
- package/dist/room/track/LocalTrackPublication.d.ts +3 -1
- package/dist/room/track/LocalTrackPublication.js +15 -5
- package/dist/room/track/LocalTrackPublication.js.map +1 -1
- package/dist/room/track/LocalVideoTrack.d.ts +8 -1
- package/dist/room/track/LocalVideoTrack.js +117 -52
- package/dist/room/track/LocalVideoTrack.js.map +1 -1
- package/dist/room/track/RemoteAudioTrack.d.ts +6 -8
- package/dist/room/track/RemoteAudioTrack.js +55 -19
- package/dist/room/track/RemoteAudioTrack.js.map +1 -1
- package/dist/room/track/RemoteTrack.d.ts +14 -0
- package/dist/room/track/RemoteTrack.js +47 -0
- package/dist/room/track/RemoteTrack.js.map +1 -0
- package/dist/room/track/RemoteTrackPublication.d.ts +10 -2
- package/dist/room/track/RemoteTrackPublication.js +49 -16
- package/dist/room/track/RemoteTrackPublication.js.map +1 -1
- package/dist/room/track/RemoteVideoTrack.d.ts +7 -7
- package/dist/room/track/RemoteVideoTrack.js +66 -22
- package/dist/room/track/RemoteVideoTrack.js.map +1 -1
- package/dist/room/track/Track.d.ts +12 -0
- package/dist/room/track/Track.js +33 -0
- package/dist/room/track/Track.js.map +1 -1
- package/dist/room/track/TrackPublication.d.ts +14 -1
- package/dist/room/track/TrackPublication.js +24 -7
- package/dist/room/track/TrackPublication.js.map +1 -1
- package/dist/room/track/create.d.ts +23 -0
- package/dist/room/track/create.js +130 -0
- package/dist/room/track/create.js.map +1 -0
- package/dist/room/track/defaults.d.ts +4 -0
- package/dist/room/track/defaults.js +21 -0
- package/dist/room/track/defaults.js.map +1 -0
- package/dist/room/utils.d.ts +3 -1
- package/dist/room/utils.js +36 -6
- package/dist/room/utils.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +5 -3
- package/src/api/SignalClient.ts +434 -0
- package/src/connect.ts +100 -0
- package/src/index.ts +47 -0
- package/src/logger.ts +22 -0
- package/src/options.ts +152 -0
- package/src/proto/livekit_models.ts +1863 -0
- package/src/proto/livekit_rtc.ts +3401 -0
- package/src/room/DeviceManager.ts +57 -0
- package/src/room/PCTransport.ts +86 -0
- package/src/room/RTCEngine.ts +484 -0
- package/src/room/Room.ts +785 -0
- package/src/room/errors.ts +65 -0
- package/src/room/events.ts +396 -0
- package/src/room/participant/LocalParticipant.ts +685 -0
- package/src/room/participant/Participant.ts +214 -0
- package/src/room/participant/ParticipantTrackPermission.ts +32 -0
- package/src/room/participant/RemoteParticipant.ts +238 -0
- package/src/room/participant/publishUtils.test.ts +105 -0
- package/src/room/participant/publishUtils.ts +180 -0
- package/src/room/stats.ts +130 -0
- package/src/room/track/LocalAudioTrack.ts +112 -0
- package/src/room/track/LocalTrack.ts +124 -0
- package/src/room/track/LocalTrackPublication.ts +63 -0
- package/src/room/track/LocalVideoTrack.test.ts +70 -0
- package/src/room/track/LocalVideoTrack.ts +416 -0
- package/src/room/track/RemoteAudioTrack.ts +58 -0
- package/src/room/track/RemoteTrack.ts +59 -0
- package/src/room/track/RemoteTrackPublication.ts +192 -0
- package/src/room/track/RemoteVideoTrack.ts +213 -0
- package/src/room/track/Track.ts +301 -0
- package/src/room/track/TrackPublication.ts +120 -0
- package/src/room/track/create.ts +120 -0
- package/src/room/track/defaults.ts +23 -0
- package/src/room/track/options.ts +229 -0
- package/src/room/track/types.ts +8 -0
- package/src/room/track/utils.test.ts +93 -0
- package/src/room/track/utils.ts +76 -0
- package/src/room/utils.ts +74 -0
- package/src/version.ts +2 -0
- package/.github/workflows/publish.yaml +0 -55
- package/.github/workflows/test.yaml +0 -36
- package/example/index.html +0 -237
- package/example/sample.ts +0 -575
- package/example/styles.css +0 -144
- package/example/webpack.config.js +0 -33
@@ -0,0 +1,130 @@
|
|
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
|
+
};
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
13
|
+
};
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
15
|
+
exports.createLocalScreenTracks = exports.createLocalAudioTrack = exports.createLocalVideoTrack = exports.createLocalTracks = void 0;
|
16
|
+
const errors_1 = require("../errors");
|
17
|
+
const publishUtils_1 = require("../participant/publishUtils");
|
18
|
+
const defaults_1 = require("./defaults");
|
19
|
+
const LocalAudioTrack_1 = __importDefault(require("./LocalAudioTrack"));
|
20
|
+
const LocalVideoTrack_1 = __importDefault(require("./LocalVideoTrack"));
|
21
|
+
const options_1 = require("./options");
|
22
|
+
const Track_1 = require("./Track");
|
23
|
+
const utils_1 = require("./utils");
|
24
|
+
/**
|
25
|
+
* Creates a local video and audio track at the same time. When acquiring both
|
26
|
+
* audio and video tracks together, it'll display a single permission prompt to
|
27
|
+
* the user instead of two separate ones.
|
28
|
+
* @param options
|
29
|
+
*/
|
30
|
+
function createLocalTracks(options) {
|
31
|
+
var _a, _b;
|
32
|
+
return __awaiter(this, void 0, void 0, function* () {
|
33
|
+
// set default options to true
|
34
|
+
options !== null && options !== void 0 ? options : (options = {});
|
35
|
+
(_a = options.audio) !== null && _a !== void 0 ? _a : (options.audio = true);
|
36
|
+
(_b = options.video) !== null && _b !== void 0 ? _b : (options.video = true);
|
37
|
+
const opts = utils_1.mergeDefaultOptions(options, defaults_1.audioDefaults, defaults_1.videoDefaults);
|
38
|
+
const constraints = utils_1.constraintsForOptions(opts);
|
39
|
+
const stream = yield navigator.mediaDevices.getUserMedia(constraints);
|
40
|
+
return stream.getTracks().map((mediaStreamTrack) => {
|
41
|
+
const isAudio = mediaStreamTrack.kind === 'audio';
|
42
|
+
let trackOptions = isAudio ? options.audio : options.video;
|
43
|
+
if (typeof trackOptions === 'boolean' || !trackOptions) {
|
44
|
+
trackOptions = {};
|
45
|
+
}
|
46
|
+
let trackConstraints;
|
47
|
+
const conOrBool = isAudio ? constraints.audio : constraints.video;
|
48
|
+
if (typeof conOrBool !== 'boolean') {
|
49
|
+
trackConstraints = conOrBool;
|
50
|
+
}
|
51
|
+
const track = publishUtils_1.mediaTrackToLocalTrack(mediaStreamTrack, trackConstraints);
|
52
|
+
if (track.kind === Track_1.Track.Kind.Video) {
|
53
|
+
track.source = Track_1.Track.Source.Camera;
|
54
|
+
}
|
55
|
+
else if (track.kind === Track_1.Track.Kind.Audio) {
|
56
|
+
track.source = Track_1.Track.Source.Microphone;
|
57
|
+
}
|
58
|
+
return track;
|
59
|
+
});
|
60
|
+
});
|
61
|
+
}
|
62
|
+
exports.createLocalTracks = createLocalTracks;
|
63
|
+
/**
|
64
|
+
* Creates a [[LocalVideoTrack]] with getUserMedia()
|
65
|
+
* @param options
|
66
|
+
*/
|
67
|
+
function createLocalVideoTrack(options) {
|
68
|
+
return __awaiter(this, void 0, void 0, function* () {
|
69
|
+
const tracks = yield createLocalTracks({
|
70
|
+
audio: false,
|
71
|
+
video: options,
|
72
|
+
});
|
73
|
+
return tracks[0];
|
74
|
+
});
|
75
|
+
}
|
76
|
+
exports.createLocalVideoTrack = createLocalVideoTrack;
|
77
|
+
function createLocalAudioTrack(options) {
|
78
|
+
return __awaiter(this, void 0, void 0, function* () {
|
79
|
+
const tracks = yield createLocalTracks({
|
80
|
+
audio: options,
|
81
|
+
video: false,
|
82
|
+
});
|
83
|
+
return tracks[0];
|
84
|
+
});
|
85
|
+
}
|
86
|
+
exports.createLocalAudioTrack = createLocalAudioTrack;
|
87
|
+
/**
|
88
|
+
* Creates a screen capture tracks with getDisplayMedia().
|
89
|
+
* A LocalVideoTrack is always created and returned.
|
90
|
+
* If { audio: true }, and the browser supports audio capture, a LocalAudioTrack is also created.
|
91
|
+
*/
|
92
|
+
function createLocalScreenTracks(options) {
|
93
|
+
var _a;
|
94
|
+
return __awaiter(this, void 0, void 0, function* () {
|
95
|
+
if (options === undefined) {
|
96
|
+
options = {};
|
97
|
+
}
|
98
|
+
if (options.resolution === undefined) {
|
99
|
+
options.resolution = options_1.VideoPresets.fhd.resolution;
|
100
|
+
}
|
101
|
+
let videoConstraints = true;
|
102
|
+
if (options.resolution) {
|
103
|
+
videoConstraints = {
|
104
|
+
width: options.resolution.width,
|
105
|
+
height: options.resolution.height,
|
106
|
+
};
|
107
|
+
}
|
108
|
+
// typescript definition is missing getDisplayMedia: https://github.com/microsoft/TypeScript/issues/33232
|
109
|
+
// @ts-ignore
|
110
|
+
const stream = yield navigator.mediaDevices.getDisplayMedia({
|
111
|
+
audio: (_a = options.audio) !== null && _a !== void 0 ? _a : false,
|
112
|
+
video: videoConstraints,
|
113
|
+
});
|
114
|
+
const tracks = stream.getVideoTracks();
|
115
|
+
if (tracks.length === 0) {
|
116
|
+
throw new errors_1.TrackInvalidError('no video track found');
|
117
|
+
}
|
118
|
+
const screenVideo = new LocalVideoTrack_1.default(tracks[0]);
|
119
|
+
screenVideo.source = Track_1.Track.Source.ScreenShare;
|
120
|
+
const localTracks = [screenVideo];
|
121
|
+
if (stream.getAudioTracks().length > 0) {
|
122
|
+
const screenAudio = new LocalAudioTrack_1.default(stream.getAudioTracks()[0]);
|
123
|
+
screenAudio.source = Track_1.Track.Source.ScreenShareAudio;
|
124
|
+
localTracks.push(screenAudio);
|
125
|
+
}
|
126
|
+
return localTracks;
|
127
|
+
});
|
128
|
+
}
|
129
|
+
exports.createLocalScreenTracks = createLocalScreenTracks;
|
130
|
+
//# sourceMappingURL=create.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/room/track/create.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.videoDefaults = exports.audioDefaults = exports.publishDefaults = void 0;
|
4
|
+
const options_1 = require("./options");
|
5
|
+
exports.publishDefaults = {
|
6
|
+
audioBitrate: options_1.AudioPresets.speech.maxBitrate,
|
7
|
+
dtx: true,
|
8
|
+
simulcast: true,
|
9
|
+
screenShareEncoding: options_1.ScreenSharePresets.hd_15.encoding,
|
10
|
+
stopMicTrackOnMute: false,
|
11
|
+
};
|
12
|
+
exports.audioDefaults = {
|
13
|
+
autoGainControl: true,
|
14
|
+
channelCount: 1,
|
15
|
+
echoCancellation: true,
|
16
|
+
noiseSuppression: true,
|
17
|
+
};
|
18
|
+
exports.videoDefaults = {
|
19
|
+
resolution: options_1.VideoPresets.qhd.resolution,
|
20
|
+
};
|
21
|
+
//# sourceMappingURL=defaults.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/room/track/defaults.ts"],"names":[],"mappings":";;;AAAA,uCAGmB;AAEN,QAAA,eAAe,GAAyB;IACnD,YAAY,EAAE,sBAAY,CAAC,MAAM,CAAC,UAAU;IAC5C,GAAG,EAAE,IAAI;IACT,SAAS,EAAE,IAAI;IACf,mBAAmB,EAAE,4BAAkB,CAAC,KAAK,CAAC,QAAQ;IACtD,kBAAkB,EAAE,KAAK;CAC1B,CAAC;AAEW,QAAA,aAAa,GAAwB;IAChD,eAAe,EAAE,IAAI;IACrB,YAAY,EAAE,CAAC;IACf,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,IAAI;CACvB,CAAC;AAEW,QAAA,aAAa,GAAwB;IAChD,UAAU,EAAE,sBAAY,CAAC,GAAG,CAAC,UAAU;CACxC,CAAC"}
|
package/dist/room/utils.d.ts
CHANGED
@@ -1,9 +1,11 @@
|
|
1
|
+
import { ClientInfo } from '../proto/livekit_models';
|
1
2
|
export declare function unpackStreamId(packed: string): string[];
|
2
|
-
export declare function useLegacyAPI(): boolean;
|
3
3
|
export declare function sleep(duration: number): Promise<void>;
|
4
|
+
export declare function isFireFox(): boolean;
|
4
5
|
export declare const getResizeObserver: () => ResizeObserver;
|
5
6
|
export declare const getIntersectionObserver: () => IntersectionObserver;
|
6
7
|
export interface ObservableMediaElement extends HTMLMediaElement {
|
7
8
|
handleResize: (entry: ResizeObserverEntry) => void;
|
8
9
|
handleVisibilityChanged: (entry: IntersectionObserverEntry) => void;
|
9
10
|
}
|
11
|
+
export declare function getClientInfo(): ClientInfo;
|
package/dist/room/utils.js
CHANGED
@@ -8,8 +8,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
9
|
});
|
10
10
|
};
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
13
|
+
};
|
11
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
12
|
-
exports.getIntersectionObserver = exports.getResizeObserver = exports.
|
15
|
+
exports.getClientInfo = exports.getIntersectionObserver = exports.getResizeObserver = exports.isFireFox = exports.sleep = exports.unpackStreamId = void 0;
|
16
|
+
const ua_parser_js_1 = __importDefault(require("ua-parser-js"));
|
17
|
+
const livekit_models_1 = require("../proto/livekit_models");
|
18
|
+
const version_1 = require("../version");
|
13
19
|
const separator = '|';
|
14
20
|
function unpackStreamId(packed) {
|
15
21
|
const parts = packed.split(separator);
|
@@ -19,17 +25,16 @@ function unpackStreamId(packed) {
|
|
19
25
|
return [packed, ''];
|
20
26
|
}
|
21
27
|
exports.unpackStreamId = unpackStreamId;
|
22
|
-
function useLegacyAPI() {
|
23
|
-
// react native is using old stream based API
|
24
|
-
return typeof navigator !== 'undefined' && navigator.product === 'ReactNative';
|
25
|
-
}
|
26
|
-
exports.useLegacyAPI = useLegacyAPI;
|
27
28
|
function sleep(duration) {
|
28
29
|
return __awaiter(this, void 0, void 0, function* () {
|
29
30
|
return new Promise((resolve) => setTimeout(resolve, duration));
|
30
31
|
});
|
31
32
|
}
|
32
33
|
exports.sleep = sleep;
|
34
|
+
function isFireFox() {
|
35
|
+
return navigator.userAgent.indexOf('Firefox') !== -1;
|
36
|
+
}
|
37
|
+
exports.isFireFox = isFireFox;
|
33
38
|
function roDispatchCallback(entries) {
|
34
39
|
for (const entry of entries) {
|
35
40
|
entry.target.handleResize(entry);
|
@@ -54,4 +59,29 @@ const getIntersectionObserver = () => {
|
|
54
59
|
return intersectionObserver;
|
55
60
|
};
|
56
61
|
exports.getIntersectionObserver = getIntersectionObserver;
|
62
|
+
function getClientInfo() {
|
63
|
+
const ua = ua_parser_js_1.default(navigator.userAgent);
|
64
|
+
const info = livekit_models_1.ClientInfo.fromPartial({
|
65
|
+
sdk: livekit_models_1.ClientInfo_SDK.JS,
|
66
|
+
protocol: version_1.protocolVersion,
|
67
|
+
version: version_1.version,
|
68
|
+
os: ua.os.name,
|
69
|
+
osVersion: ua.os.version,
|
70
|
+
browser: ua.browser.name,
|
71
|
+
browserVersion: ua.browser.version,
|
72
|
+
});
|
73
|
+
let model = '';
|
74
|
+
if (ua.device.vendor) {
|
75
|
+
model += ua.device.vendor;
|
76
|
+
}
|
77
|
+
if (ua.device.model) {
|
78
|
+
if (model)
|
79
|
+
model += ' ';
|
80
|
+
model += ua.device.model;
|
81
|
+
}
|
82
|
+
if (model)
|
83
|
+
info.deviceModel = model;
|
84
|
+
return info;
|
85
|
+
}
|
86
|
+
exports.getClientInfo = getClientInfo;
|
57
87
|
//# sourceMappingURL=utils.js.map
|
package/dist/room/utils.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/room/utils.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/room/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
export declare const version = "0.15.
|
1
|
+
export declare const version = "0.15.4";
|
2
2
|
export declare const protocolVersion = 5;
|
package/dist/version.js
CHANGED
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "livekit-client",
|
3
|
-
"version": "0.15.
|
3
|
+
"version": "0.15.4",
|
4
4
|
"description": "JavaScript/TypeScript client SDK for LiveKit",
|
5
5
|
"main": "dist/index.js",
|
6
6
|
"source": "src/index.ts",
|
@@ -11,10 +11,10 @@
|
|
11
11
|
"scripts": {
|
12
12
|
"build": "yarn exec tsc",
|
13
13
|
"build-docs": "yarn exec typedoc",
|
14
|
-
"proto": "protoc --plugin=node_modules/ts-proto/protoc-gen-ts_proto --ts_proto_opt=esModuleInterop=true --ts_proto_out=./src/proto --ts_proto_opt=outputClientImpl=false,useOptionals=true -I
|
14
|
+
"proto": "protoc --plugin=node_modules/ts-proto/protoc-gen-ts_proto --ts_proto_opt=esModuleInterop=true --ts_proto_out=./src/proto --ts_proto_opt=outputClientImpl=false,useOptionals=true -I./protocol ./protocol/livekit_rtc.proto ./protocol/livekit_models.proto",
|
15
15
|
"sample": "cd example && webpack serve",
|
16
16
|
"build-sample": "cd example && webpack && cp styles.css index.html dist/",
|
17
|
-
"lint": "
|
17
|
+
"lint": "eslint src",
|
18
18
|
"test": "jest",
|
19
19
|
"deploy": "gh-pages -d example/dist"
|
20
20
|
},
|
@@ -23,10 +23,12 @@
|
|
23
23
|
"loglevel": "^1.8.0",
|
24
24
|
"protobufjs": "^6.11.2",
|
25
25
|
"ts-debounce": "^3.0.0",
|
26
|
+
"ua-parser-js": "^1.0.2",
|
26
27
|
"webrtc-adapter": "^8.1.0"
|
27
28
|
},
|
28
29
|
"devDependencies": {
|
29
30
|
"@types/jest": "^27.0.3",
|
31
|
+
"@types/ua-parser-js": "^0.7.36",
|
30
32
|
"@types/ws": "^7.4.0",
|
31
33
|
"@typescript-eslint/eslint-plugin": "^4.31.2",
|
32
34
|
"@webpack-cli/serve": "^1.5.2",
|