livekit-client 0.18.6 → 1.0.2
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/README.md +1 -1
- package/dist/livekit-client.esm.mjs +1034 -438
- package/dist/livekit-client.esm.mjs.map +1 -1
- package/dist/livekit-client.umd.js +1 -1
- package/dist/livekit-client.umd.js.map +1 -1
- package/dist/{api → src/api}/RequestQueue.d.ts +0 -0
- package/dist/src/api/RequestQueue.d.ts.map +1 -0
- package/dist/{api → src/api}/SignalClient.d.ts +3 -3
- package/dist/src/api/SignalClient.d.ts.map +1 -0
- package/dist/{index.d.ts → src/index.d.ts} +3 -4
- package/dist/src/index.d.ts.map +1 -0
- package/dist/{logger.d.ts → src/logger.d.ts} +0 -0
- package/dist/src/logger.d.ts.map +1 -0
- package/dist/src/options.d.ts +61 -0
- package/dist/src/options.d.ts.map +1 -0
- package/dist/{proto → src/proto}/google/protobuf/timestamp.d.ts +0 -0
- package/dist/src/proto/google/protobuf/timestamp.d.ts.map +1 -0
- package/dist/{proto → src/proto}/livekit_models.d.ts +80 -0
- package/dist/src/proto/livekit_models.d.ts.map +1 -0
- package/dist/{proto → src/proto}/livekit_rtc.d.ts +661 -0
- package/dist/src/proto/livekit_rtc.d.ts.map +1 -0
- package/dist/{room → src/room}/DeviceManager.d.ts +0 -0
- package/dist/src/room/DeviceManager.d.ts.map +1 -0
- package/dist/{room → src/room}/PCTransport.d.ts +0 -0
- package/dist/src/room/PCTransport.d.ts.map +1 -0
- package/dist/{room → src/room}/RTCEngine.d.ts +4 -2
- package/dist/src/room/RTCEngine.d.ts.map +1 -0
- package/dist/{room → src/room}/Room.d.ts +13 -7
- package/dist/src/room/Room.d.ts.map +1 -0
- package/dist/{room → src/room}/errors.d.ts +0 -0
- package/dist/src/room/errors.d.ts.map +1 -0
- package/dist/{room → src/room}/events.d.ts +11 -13
- package/dist/src/room/events.d.ts.map +1 -0
- package/dist/{room → src/room}/participant/LocalParticipant.d.ts +4 -1
- package/dist/src/room/participant/LocalParticipant.d.ts.map +1 -0
- package/dist/{room → src/room}/participant/Participant.d.ts +0 -4
- package/dist/src/room/participant/Participant.d.ts.map +1 -0
- package/dist/{room → src/room}/participant/ParticipantTrackPermission.d.ts +0 -0
- package/dist/src/room/participant/ParticipantTrackPermission.d.ts.map +1 -0
- package/dist/{room → src/room}/participant/RemoteParticipant.d.ts +3 -2
- package/dist/src/room/participant/RemoteParticipant.d.ts.map +1 -0
- package/dist/{room → src/room}/participant/publishUtils.d.ts +0 -0
- package/dist/src/room/participant/publishUtils.d.ts.map +1 -0
- package/dist/{room → src/room}/stats.d.ts +1 -0
- package/dist/src/room/stats.d.ts.map +1 -0
- package/dist/{room → src/room}/track/LocalAudioTrack.d.ts +0 -0
- package/dist/src/room/track/LocalAudioTrack.d.ts.map +1 -0
- package/dist/{room → src/room}/track/LocalTrack.d.ts +3 -0
- package/dist/src/room/track/LocalTrack.d.ts.map +1 -0
- package/dist/{room → src/room}/track/LocalTrackPublication.d.ts +0 -0
- package/dist/src/room/track/LocalTrackPublication.d.ts.map +1 -0
- package/dist/{room → src/room}/track/LocalVideoTrack.d.ts +17 -2
- package/dist/src/room/track/LocalVideoTrack.d.ts.map +1 -0
- package/dist/{room → src/room}/track/RemoteAudioTrack.d.ts +0 -0
- package/dist/src/room/track/RemoteAudioTrack.d.ts.map +1 -0
- package/dist/{room → src/room}/track/RemoteTrack.d.ts +0 -1
- package/dist/src/room/track/RemoteTrack.d.ts.map +1 -0
- package/dist/{room → src/room}/track/RemoteTrackPublication.d.ts +0 -0
- package/dist/src/room/track/RemoteTrackPublication.d.ts.map +1 -0
- package/dist/{room → src/room}/track/RemoteVideoTrack.d.ts +25 -1
- package/dist/src/room/track/RemoteVideoTrack.d.ts.map +1 -0
- package/dist/{room → src/room}/track/Track.d.ts +6 -1
- package/dist/src/room/track/Track.d.ts.map +1 -0
- package/dist/{room → src/room}/track/TrackPublication.d.ts +0 -0
- package/dist/src/room/track/TrackPublication.d.ts.map +1 -0
- package/dist/{room → src/room}/track/create.d.ts +0 -0
- package/dist/src/room/track/create.d.ts.map +1 -0
- package/dist/{room → src/room}/track/defaults.d.ts +0 -0
- package/dist/src/room/track/defaults.d.ts.map +1 -0
- package/dist/{room → src/room}/track/options.d.ts +2 -31
- package/dist/src/room/track/options.d.ts.map +1 -0
- package/dist/{room → src/room}/track/types.d.ts +5 -0
- package/dist/src/room/track/types.d.ts.map +1 -0
- package/dist/{room → src/room}/track/utils.d.ts +0 -0
- package/dist/src/room/track/utils.d.ts.map +1 -0
- package/dist/{room → src/room}/utils.d.ts +0 -0
- package/dist/src/room/utils.d.ts.map +1 -0
- package/dist/src/test/MockMediaStreamTrack.d.ts +26 -0
- package/dist/src/test/MockMediaStreamTrack.d.ts.map +1 -0
- package/dist/{test → src/test}/mocks.d.ts +0 -0
- package/dist/src/test/mocks.d.ts.map +1 -0
- package/dist/src/version.d.ts +3 -0
- package/dist/src/version.d.ts.map +1 -0
- package/package.json +6 -2
- package/src/api/SignalClient.ts +34 -9
- package/src/index.ts +4 -3
- package/src/options.ts +0 -82
- package/src/proto/livekit_models.ts +90 -0
- package/src/proto/livekit_rtc.ts +235 -1
- package/src/room/DeviceManager.ts +4 -1
- package/src/room/RTCEngine.ts +46 -9
- package/src/room/Room.ts +122 -53
- package/src/room/events.ts +12 -14
- package/src/room/participant/LocalParticipant.ts +108 -23
- package/src/room/participant/Participant.ts +0 -5
- package/src/room/participant/RemoteParticipant.ts +17 -5
- package/src/room/participant/publishUtils.test.ts +2 -2
- package/src/room/stats.ts +2 -0
- package/src/room/track/LocalAudioTrack.ts +4 -0
- package/src/room/track/LocalTrack.ts +12 -5
- package/src/room/track/LocalVideoTrack.ts +144 -56
- package/src/room/track/RemoteTrack.ts +0 -2
- package/src/room/track/RemoteVideoTrack.test.ts +149 -0
- package/src/room/track/RemoteVideoTrack.ts +118 -37
- package/src/room/track/Track.ts +23 -2
- package/src/room/track/create.ts +1 -1
- package/src/room/track/options.ts +2 -31
- package/src/room/track/types.ts +5 -0
- package/src/room/track/utils.test.ts +6 -6
- package/src/test/MockMediaStreamTrack.ts +83 -0
- package/src/version.ts +4 -2
- package/dist/api/RequestQueue.d.ts.map +0 -1
- package/dist/api/SignalClient.d.ts.map +0 -1
- package/dist/connect.d.ts +0 -24
- package/dist/connect.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/logger.d.ts.map +0 -1
- package/dist/options.d.ts +0 -128
- package/dist/options.d.ts.map +0 -1
- package/dist/proto/google/protobuf/timestamp.d.ts.map +0 -1
- package/dist/proto/livekit_models.d.ts.map +0 -1
- package/dist/proto/livekit_rtc.d.ts.map +0 -1
- package/dist/room/DeviceManager.d.ts.map +0 -1
- package/dist/room/PCTransport.d.ts.map +0 -1
- package/dist/room/RTCEngine.d.ts.map +0 -1
- package/dist/room/Room.d.ts.map +0 -1
- package/dist/room/errors.d.ts.map +0 -1
- package/dist/room/events.d.ts.map +0 -1
- package/dist/room/participant/LocalParticipant.d.ts.map +0 -1
- package/dist/room/participant/Participant.d.ts.map +0 -1
- package/dist/room/participant/ParticipantTrackPermission.d.ts.map +0 -1
- package/dist/room/participant/RemoteParticipant.d.ts.map +0 -1
- package/dist/room/participant/publishUtils.d.ts.map +0 -1
- package/dist/room/stats.d.ts.map +0 -1
- package/dist/room/track/LocalAudioTrack.d.ts.map +0 -1
- package/dist/room/track/LocalTrack.d.ts.map +0 -1
- package/dist/room/track/LocalTrackPublication.d.ts.map +0 -1
- package/dist/room/track/LocalVideoTrack.d.ts.map +0 -1
- package/dist/room/track/RemoteAudioTrack.d.ts.map +0 -1
- package/dist/room/track/RemoteTrack.d.ts.map +0 -1
- package/dist/room/track/RemoteTrackPublication.d.ts.map +0 -1
- package/dist/room/track/RemoteVideoTrack.d.ts.map +0 -1
- package/dist/room/track/Track.d.ts.map +0 -1
- package/dist/room/track/TrackPublication.d.ts.map +0 -1
- package/dist/room/track/create.d.ts.map +0 -1
- package/dist/room/track/defaults.d.ts.map +0 -1
- package/dist/room/track/options.d.ts.map +0 -1
- package/dist/room/track/types.d.ts.map +0 -1
- package/dist/room/track/utils.d.ts.map +0 -1
- package/dist/room/utils.d.ts.map +0 -1
- package/dist/test/mocks.d.ts.map +0 -1
- package/dist/version.d.ts +0 -3
- package/dist/version.d.ts.map +0 -1
- package/src/connect.ts +0 -98
@@ -9,7 +9,8 @@ export interface TrackPublishDefaults {
|
|
9
9
|
*/
|
10
10
|
screenShareEncoding?: VideoEncoding;
|
11
11
|
/**
|
12
|
-
* codec, defaults to vp8
|
12
|
+
* codec, defaults to vp8; for svc codecs, auto enable vp8
|
13
|
+
* as backup. (TBD)
|
13
14
|
*/
|
14
15
|
videoCodec?: VideoCodec;
|
15
16
|
/**
|
@@ -177,16 +178,6 @@ export declare const VideoPresets: {
|
|
177
178
|
readonly h1080: VideoPreset;
|
178
179
|
readonly h1440: VideoPreset;
|
179
180
|
readonly h2160: VideoPreset;
|
180
|
-
/** @deprecated */
|
181
|
-
readonly qvga: VideoPreset;
|
182
|
-
/** @deprecated */
|
183
|
-
readonly vga: VideoPreset;
|
184
|
-
/** @deprecated */
|
185
|
-
readonly qhd: VideoPreset;
|
186
|
-
/** @deprecated */
|
187
|
-
readonly hd: VideoPreset;
|
188
|
-
/** @deprecated */
|
189
|
-
readonly fhd: VideoPreset;
|
190
181
|
};
|
191
182
|
/**
|
192
183
|
* Four by three presets
|
@@ -201,16 +192,6 @@ export declare const VideoPresets43: {
|
|
201
192
|
readonly h720: VideoPreset;
|
202
193
|
readonly h1080: VideoPreset;
|
203
194
|
readonly h1440: VideoPreset;
|
204
|
-
/** @deprecated */
|
205
|
-
readonly qvga: VideoPreset;
|
206
|
-
/** @deprecated */
|
207
|
-
readonly vga: VideoPreset;
|
208
|
-
/** @deprecated */
|
209
|
-
readonly qhd: VideoPreset;
|
210
|
-
/** @deprecated */
|
211
|
-
readonly hd: VideoPreset;
|
212
|
-
/** @deprecated */
|
213
|
-
readonly fhd: VideoPreset;
|
214
195
|
};
|
215
196
|
export declare const ScreenSharePresets: {
|
216
197
|
readonly h360fps3: VideoPreset;
|
@@ -218,15 +199,5 @@ export declare const ScreenSharePresets: {
|
|
218
199
|
readonly h720fps15: VideoPreset;
|
219
200
|
readonly h1080fps15: VideoPreset;
|
220
201
|
readonly h1080fps30: VideoPreset;
|
221
|
-
/** @deprecated */
|
222
|
-
readonly vga: VideoPreset;
|
223
|
-
/** @deprecated */
|
224
|
-
readonly hd_8: VideoPreset;
|
225
|
-
/** @deprecated */
|
226
|
-
readonly hd_15: VideoPreset;
|
227
|
-
/** @deprecated */
|
228
|
-
readonly fhd_15: VideoPreset;
|
229
|
-
/** @deprecated */
|
230
|
-
readonly fhd_30: VideoPreset;
|
231
202
|
};
|
232
203
|
//# sourceMappingURL=options.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../../src/room/track/options.ts"],"names":[],"mappings":"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"}
|
@@ -15,5 +15,10 @@ export declare type AdaptiveStreamSettings = {
|
|
15
15
|
* streaming on high definition screens.
|
16
16
|
*/
|
17
17
|
pixelDensity?: number | 'screen';
|
18
|
+
/**
|
19
|
+
* If true, video gets paused when switching to another tab.
|
20
|
+
* Defaults to true.
|
21
|
+
*/
|
22
|
+
pauseVideoInBackground?: boolean;
|
18
23
|
};
|
19
24
|
//# sourceMappingURL=types.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/room/track/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,eAAe,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,eAAe,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,gBAAgB,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,gBAAgB,MAAM,oBAAoB,CAAC;AAEvD,oBAAY,WAAW,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAC9D,oBAAY,UAAU,GAAG,gBAAgB,GAAG,eAAe,CAAC;AAC5D,oBAAY,UAAU,GAAG,gBAAgB,GAAG,eAAe,CAAC;AAE5D,oBAAY,sBAAsB,GAAG;IACnC;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IACjC;;;OAGG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC,CAAC"}
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/room/track/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC/F,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,wBAAgB,mBAAmB,CACjC,OAAO,CAAC,EAAE,wBAAwB,EAClC,aAAa,CAAC,EAAE,mBAAmB,EACnC,aAAa,CAAC,EAAE,mBAAmB,GAClC,wBAAwB,CAqB1B;AAYD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,wBAAwB,GAAG,sBAAsB,CAqC/F;AACD;;;GAGG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,SAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAkBzF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,GAAG,IAAI,CAMxD"}
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/room/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAkB,MAAM,yBAAyB,CAAC;AAKrE,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAMvD;AAED,wBAAsB,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3D;AAED,wBAAgB,SAAS,IAAI,OAAO,CAGnC;AAED,wBAAgB,QAAQ,IAAI,OAAO,CAGlC;AAED,wBAAgB,QAAQ,IAAI,OAAO,CAGlC;AAED,wBAAgB,KAAK,IAAI,OAAO,CAE/B;AAeD,eAAO,MAAM,iBAAiB,sBAG7B,CAAC;AAGF,eAAO,MAAM,uBAAuB,4BAOnC,CAAC;AAEF,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,YAAY,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACnD,uBAAuB,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,IAAI,CAAC;CACrE;AAED,wBAAgB,aAAa,IAAI,UAAU,CAO1C;AAID,wBAAgB,wBAAwB,qBAevC;AAID,wBAAgB,wBAAwB,qBAevC"}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
export default class MockMediaStreamTrack implements MediaStreamTrack {
|
2
|
+
contentHint: string;
|
3
|
+
enabled: boolean;
|
4
|
+
id: string;
|
5
|
+
kind: string;
|
6
|
+
label: string;
|
7
|
+
muted: boolean;
|
8
|
+
onended: ((this: MediaStreamTrack, ev: Event) => any) | null;
|
9
|
+
onmute: ((this: MediaStreamTrack, ev: Event) => any) | null;
|
10
|
+
onunmute: ((this: MediaStreamTrack, ev: Event) => any) | null;
|
11
|
+
readyState: MediaStreamTrackState;
|
12
|
+
isolated: boolean;
|
13
|
+
onisolationchange: ((this: MediaStreamTrack, ev: Event) => any) | null;
|
14
|
+
applyConstraints(constraints?: MediaTrackConstraints): Promise<void>;
|
15
|
+
clone(): MediaStreamTrack;
|
16
|
+
getCapabilities(): MediaTrackCapabilities;
|
17
|
+
getConstraints(): MediaTrackConstraints;
|
18
|
+
getSettings(): MediaTrackSettings;
|
19
|
+
stop(): void;
|
20
|
+
addEventListener<K extends keyof MediaStreamTrackEventMap>(type: K, listener: (this: MediaStreamTrack, ev: MediaStreamTrackEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
21
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
22
|
+
removeEventListener<K extends keyof MediaStreamTrackEventMap>(type: K, listener: (this: MediaStreamTrack, ev: MediaStreamTrackEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
23
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
24
|
+
dispatchEvent(event: Event): boolean;
|
25
|
+
}
|
26
|
+
//# sourceMappingURL=MockMediaStreamTrack.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"MockMediaStreamTrack.d.ts","sourceRoot":"","sources":["../../../src/test/MockMediaStreamTrack.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,OAAO,OAAO,oBAAqB,YAAW,gBAAgB;IACnE,WAAW,EAAE,MAAM,CAAM;IAEzB,OAAO,EAAE,OAAO,CAAQ;IAExB,EAAE,EAAE,MAAM,CAAQ;IAElB,IAAI,EAAE,MAAM,CAAW;IAEvB,KAAK,EAAE,MAAM,CAAW;IAExB,KAAK,EAAE,OAAO,CAAS;IAEvB,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,KAAK,KAAK,GAAG,CAAC,GAAG,IAAI,CAAQ;IAEpE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,KAAK,KAAK,GAAG,CAAC,GAAG,IAAI,CAAQ;IAEnE,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,KAAK,KAAK,GAAG,CAAC,GAAG,IAAI,CAAQ;IAErE,UAAU,EAAE,qBAAqB,CAAU;IAE3C,QAAQ,EAAE,OAAO,CAAS;IAE1B,iBAAiB,EAAE,CAAC,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,KAAK,KAAK,GAAG,CAAC,GAAG,IAAI,CAAQ;IAG9E,gBAAgB,CAAC,WAAW,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpE,KAAK,IAAI,gBAAgB;IAIzB,eAAe,IAAI,sBAAsB;IAIzC,cAAc,IAAI,qBAAqB;IAIvC,WAAW,IAAI,kBAAkB;IAIjC,IAAI,IAAI,IAAI;IAIZ,gBAAgB,CAAC,CAAC,SAAS,MAAM,wBAAwB,EACvD,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,wBAAwB,CAAC,CAAC,CAAC,KAAK,GAAG,EAC1E,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC1C,IAAI;IACP,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kCAAkC,EAC5C,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC1C,IAAI;IAKP,mBAAmB,CAAC,CAAC,SAAS,MAAM,wBAAwB,EAC1D,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,wBAAwB,CAAC,CAAC,CAAC,KAAK,GAAG,EAC1E,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GACvC,IAAI;IACP,mBAAmB,CACjB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kCAAkC,EAC5C,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GACvC,IAAI;IAKP,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;CAGrC"}
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../../src/test/mocks.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAO1C,QAAA,MAAM,KAAK;;;;;;CAMV,CAAC;AAEF,eAAe,KAAK,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,QAAI,CAAC;AACzB,eAAO,MAAM,eAAe,IAAI,CAAC"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "livekit-client",
|
3
|
-
"version": "0.
|
3
|
+
"version": "1.0.2",
|
4
4
|
"description": "JavaScript/TypeScript client SDK for LiveKit",
|
5
5
|
"main": "./dist/livekit-client.umd.js",
|
6
6
|
"unpkg": "./dist/livekit-client.umd.js",
|
@@ -29,7 +29,8 @@
|
|
29
29
|
"test": "jest",
|
30
30
|
"deploy": "gh-pages -d example/dist",
|
31
31
|
"format": "prettier --write src",
|
32
|
-
"format:check": "prettier --check src"
|
32
|
+
"format:check": "prettier --check src",
|
33
|
+
"release": "yarn build && changeset publish"
|
33
34
|
},
|
34
35
|
"dependencies": {
|
35
36
|
"events": "^3.3.0",
|
@@ -42,8 +43,10 @@
|
|
42
43
|
"devDependencies": {
|
43
44
|
"@babel/core": "^7.17.9",
|
44
45
|
"@babel/preset-env": "^7.16.11",
|
46
|
+
"@changesets/cli": "^2.22.0",
|
45
47
|
"@rollup/plugin-babel": "^5.3.1",
|
46
48
|
"@rollup/plugin-commonjs": "^21.0.3",
|
49
|
+
"@rollup/plugin-json": "^4.1.0",
|
47
50
|
"@rollup/plugin-node-resolve": "^13.1.3",
|
48
51
|
"@types/jest": "^27.0.3",
|
49
52
|
"@types/ws": "^7.4.0",
|
@@ -57,6 +60,7 @@
|
|
57
60
|
"jest": "^27.4.3",
|
58
61
|
"prettier": "^2.6.1",
|
59
62
|
"rollup": "^2.70.1",
|
63
|
+
"rollup-plugin-livereload": "^2.0.5",
|
60
64
|
"rollup-plugin-re": "^1.0.7",
|
61
65
|
"rollup-plugin-serve": "^1.1.0",
|
62
66
|
"rollup-plugin-terser": "^7.0.2",
|
package/src/api/SignalClient.ts
CHANGED
@@ -123,15 +123,25 @@ export class SignalClient {
|
|
123
123
|
this.requestQueue = new Queue();
|
124
124
|
}
|
125
125
|
|
126
|
-
async join(
|
126
|
+
async join(
|
127
|
+
url: string,
|
128
|
+
token: string,
|
129
|
+
opts?: SignalOptions,
|
130
|
+
abortSignal?: AbortSignal,
|
131
|
+
): Promise<JoinResponse> {
|
127
132
|
// during a full reconnect, we'd want to start the sequence even if currently
|
128
133
|
// connected
|
129
134
|
this.isConnected = false;
|
130
|
-
const res = await this.connect(
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
+
const res = await this.connect(
|
136
|
+
url,
|
137
|
+
token,
|
138
|
+
{
|
139
|
+
autoSubscribe: opts?.autoSubscribe,
|
140
|
+
publishOnly: opts?.publishOnly,
|
141
|
+
adaptiveStream: opts?.adaptiveStream,
|
142
|
+
},
|
143
|
+
abortSignal,
|
144
|
+
);
|
135
145
|
return res as JoinResponse;
|
136
146
|
}
|
137
147
|
|
@@ -142,7 +152,12 @@ export class SignalClient {
|
|
142
152
|
});
|
143
153
|
}
|
144
154
|
|
145
|
-
connect(
|
155
|
+
connect(
|
156
|
+
url: string,
|
157
|
+
token: string,
|
158
|
+
opts: ConnectOpts,
|
159
|
+
abortSignal?: AbortSignal,
|
160
|
+
): Promise<JoinResponse | void> {
|
146
161
|
if (url.startsWith('http')) {
|
147
162
|
url = url.replace('http', 'ws');
|
148
163
|
}
|
@@ -154,6 +169,15 @@ export class SignalClient {
|
|
154
169
|
const params = createConnectionParams(token, clientInfo, opts);
|
155
170
|
|
156
171
|
return new Promise<JoinResponse | void>((resolve, reject) => {
|
172
|
+
const abortHandler = () => {
|
173
|
+
ws.close();
|
174
|
+
this.close();
|
175
|
+
reject(new ConnectionError('room connection has been cancelled'));
|
176
|
+
};
|
177
|
+
if (abortSignal?.aborted) {
|
178
|
+
abortHandler();
|
179
|
+
}
|
180
|
+
abortSignal?.addEventListener('abort', abortHandler);
|
157
181
|
log.debug(`connecting to ${url + params}`);
|
158
182
|
this.ws = undefined;
|
159
183
|
const ws = new WebSocket(url + params);
|
@@ -204,6 +228,7 @@ export class SignalClient {
|
|
204
228
|
// handle join message only
|
205
229
|
if (msg.join) {
|
206
230
|
this.isConnected = true;
|
231
|
+
abortSignal?.removeEventListener('abort', abortHandler);
|
207
232
|
resolve(msg.join);
|
208
233
|
} else {
|
209
234
|
reject(new ConnectionError('did not receive join response'));
|
@@ -314,8 +339,8 @@ export class SignalClient {
|
|
314
339
|
});
|
315
340
|
}
|
316
341
|
|
317
|
-
sendLeave() {
|
318
|
-
this.sendRequest(SignalRequest.fromPartial({ leave: {} }));
|
342
|
+
async sendLeave() {
|
343
|
+
await this.sendRequest(SignalRequest.fromPartial({ leave: {} }));
|
319
344
|
}
|
320
345
|
|
321
346
|
async sendRequest(req: SignalRequest, fromQueue: boolean = false) {
|
package/src/index.ts
CHANGED
@@ -4,7 +4,7 @@ import LocalParticipant from './room/participant/LocalParticipant';
|
|
4
4
|
import Participant, { ConnectionQuality } from './room/participant/Participant';
|
5
5
|
import { ParticipantTrackPermission } from './room/participant/ParticipantTrackPermission';
|
6
6
|
import RemoteParticipant from './room/participant/RemoteParticipant';
|
7
|
-
import Room, { RoomState } from './room/Room';
|
7
|
+
import Room, { ConnectionState, RoomState } from './room/Room';
|
8
8
|
import LocalAudioTrack from './room/track/LocalAudioTrack';
|
9
9
|
import LocalTrack from './room/track/LocalTrack';
|
10
10
|
import LocalTrackPublication from './room/track/LocalTrackPublication';
|
@@ -12,10 +12,9 @@ import LocalVideoTrack from './room/track/LocalVideoTrack';
|
|
12
12
|
import RemoteAudioTrack from './room/track/RemoteAudioTrack';
|
13
13
|
import RemoteTrack from './room/track/RemoteTrack';
|
14
14
|
import RemoteTrackPublication from './room/track/RemoteTrackPublication';
|
15
|
-
import RemoteVideoTrack from './room/track/RemoteVideoTrack';
|
15
|
+
import RemoteVideoTrack, { ElementInfo } from './room/track/RemoteVideoTrack';
|
16
16
|
import { TrackPublication } from './room/track/TrackPublication';
|
17
17
|
|
18
|
-
export * from './connect';
|
19
18
|
export * from './options';
|
20
19
|
export * from './room/errors';
|
21
20
|
export * from './room/events';
|
@@ -29,6 +28,7 @@ export {
|
|
29
28
|
setLogExtension,
|
30
29
|
LogLevel,
|
31
30
|
Room,
|
31
|
+
ConnectionState,
|
32
32
|
RoomState,
|
33
33
|
DataPacket_Kind,
|
34
34
|
Participant,
|
@@ -46,4 +46,5 @@ export {
|
|
46
46
|
TrackPublication,
|
47
47
|
VideoQuality,
|
48
48
|
ConnectionQuality,
|
49
|
+
ElementInfo,
|
49
50
|
};
|
package/src/options.ts
CHANGED
@@ -1,7 +1,5 @@
|
|
1
|
-
import { LogLevel } from './logger';
|
2
1
|
import {
|
3
2
|
AudioCaptureOptions,
|
4
|
-
CreateLocalTracksOptions,
|
5
3
|
TrackPublishDefaults,
|
6
4
|
VideoCaptureOptions,
|
7
5
|
} from './room/track/options';
|
@@ -74,83 +72,3 @@ export interface RoomConnectOptions {
|
|
74
72
|
*/
|
75
73
|
publishOnly?: string;
|
76
74
|
}
|
77
|
-
|
78
|
-
/**
|
79
|
-
* @deprecated use new Room([[RoomOptions]]) and room.connect([[RoomConnectOptions]]) instead
|
80
|
-
*
|
81
|
-
* if video or audio tracks are created as part of [[connect]], it'll automatically
|
82
|
-
* publish those tracks to the room.
|
83
|
-
*/
|
84
|
-
export interface ConnectOptions extends CreateLocalTracksOptions {
|
85
|
-
/** autosubscribe to room tracks upon connect, defaults to true */
|
86
|
-
autoSubscribe?: boolean;
|
87
|
-
|
88
|
-
/**
|
89
|
-
* publish only mode
|
90
|
-
*/
|
91
|
-
publishOnly?: string;
|
92
|
-
|
93
|
-
/**
|
94
|
-
* see [[RoomOptions.adaptiveStream]]
|
95
|
-
*/
|
96
|
-
adaptiveStream?: AdaptiveStreamSettings | boolean;
|
97
|
-
|
98
|
-
/**
|
99
|
-
* alias for adaptiveStream
|
100
|
-
* @deprecated
|
101
|
-
*/
|
102
|
-
autoManageVideo?: boolean;
|
103
|
-
|
104
|
-
/**
|
105
|
-
* see [[RoomOptions.dynacast]]
|
106
|
-
*/
|
107
|
-
dynacast?: boolean;
|
108
|
-
|
109
|
-
/** configures LiveKit internal log level */
|
110
|
-
logLevel?: LogLevel;
|
111
|
-
|
112
|
-
/**
|
113
|
-
* set ICE servers. When deployed correctly, LiveKit automatically uses the built-in TURN servers
|
114
|
-
*/
|
115
|
-
iceServers?: RTCIceServer[];
|
116
|
-
|
117
|
-
/**
|
118
|
-
* use to override any RTCConfiguration options.
|
119
|
-
*/
|
120
|
-
rtcConfig?: RTCConfiguration;
|
121
|
-
|
122
|
-
/**
|
123
|
-
* capture and publish audio track on connect, defaults to false
|
124
|
-
*
|
125
|
-
* If this option is used, you will not be notified if user denies capture permission.
|
126
|
-
*/
|
127
|
-
audio?: boolean;
|
128
|
-
|
129
|
-
/**
|
130
|
-
* capture and publish video track on connect, defaults to false
|
131
|
-
*
|
132
|
-
* If this option is used, you will not be notified if user denies capture permission.
|
133
|
-
*/
|
134
|
-
video?: boolean;
|
135
|
-
|
136
|
-
/**
|
137
|
-
* default options to use when capturing user's audio
|
138
|
-
*/
|
139
|
-
audioCaptureDefaults?: AudioCaptureOptions;
|
140
|
-
|
141
|
-
/**
|
142
|
-
* default options to use when capturing user's video
|
143
|
-
*/
|
144
|
-
videoCaptureDefaults?: VideoCaptureOptions;
|
145
|
-
|
146
|
-
/**
|
147
|
-
* default options to use when publishing tracks
|
148
|
-
*/
|
149
|
-
publishDefaults?: TrackPublishDefaults;
|
150
|
-
|
151
|
-
/**
|
152
|
-
* should local tracks be stopped when they are unpublished. defaults to true
|
153
|
-
* set this to false if you would prefer to clean up unpublished local tracks manually.
|
154
|
-
*/
|
155
|
-
stopLocalTrackOnUnpublish?: boolean;
|
156
|
-
}
|
@@ -311,6 +311,12 @@ export function participantInfo_StateToJSON(object: ParticipantInfo_State): stri
|
|
311
311
|
}
|
312
312
|
}
|
313
313
|
|
314
|
+
export interface SimulcastCodecInfo {
|
315
|
+
mimeType: string;
|
316
|
+
mid: string;
|
317
|
+
cid: string;
|
318
|
+
}
|
319
|
+
|
314
320
|
export interface TrackInfo {
|
315
321
|
sid: string;
|
316
322
|
type: TrackType;
|
@@ -333,6 +339,7 @@ export interface TrackInfo {
|
|
333
339
|
/** mime type of codec */
|
334
340
|
mimeType: string;
|
335
341
|
mid: string;
|
342
|
+
codecs: SimulcastCodecInfo[];
|
336
343
|
}
|
337
344
|
|
338
345
|
/** provide information about available spatial layers */
|
@@ -1007,6 +1014,73 @@ export const ParticipantInfo = {
|
|
1007
1014
|
},
|
1008
1015
|
};
|
1009
1016
|
|
1017
|
+
function createBaseSimulcastCodecInfo(): SimulcastCodecInfo {
|
1018
|
+
return { mimeType: '', mid: '', cid: '' };
|
1019
|
+
}
|
1020
|
+
|
1021
|
+
export const SimulcastCodecInfo = {
|
1022
|
+
encode(message: SimulcastCodecInfo, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
|
1023
|
+
if (message.mimeType !== '') {
|
1024
|
+
writer.uint32(10).string(message.mimeType);
|
1025
|
+
}
|
1026
|
+
if (message.mid !== '') {
|
1027
|
+
writer.uint32(18).string(message.mid);
|
1028
|
+
}
|
1029
|
+
if (message.cid !== '') {
|
1030
|
+
writer.uint32(26).string(message.cid);
|
1031
|
+
}
|
1032
|
+
return writer;
|
1033
|
+
},
|
1034
|
+
|
1035
|
+
decode(input: _m0.Reader | Uint8Array, length?: number): SimulcastCodecInfo {
|
1036
|
+
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
|
1037
|
+
let end = length === undefined ? reader.len : reader.pos + length;
|
1038
|
+
const message = createBaseSimulcastCodecInfo();
|
1039
|
+
while (reader.pos < end) {
|
1040
|
+
const tag = reader.uint32();
|
1041
|
+
switch (tag >>> 3) {
|
1042
|
+
case 1:
|
1043
|
+
message.mimeType = reader.string();
|
1044
|
+
break;
|
1045
|
+
case 2:
|
1046
|
+
message.mid = reader.string();
|
1047
|
+
break;
|
1048
|
+
case 3:
|
1049
|
+
message.cid = reader.string();
|
1050
|
+
break;
|
1051
|
+
default:
|
1052
|
+
reader.skipType(tag & 7);
|
1053
|
+
break;
|
1054
|
+
}
|
1055
|
+
}
|
1056
|
+
return message;
|
1057
|
+
},
|
1058
|
+
|
1059
|
+
fromJSON(object: any): SimulcastCodecInfo {
|
1060
|
+
return {
|
1061
|
+
mimeType: isSet(object.mimeType) ? String(object.mimeType) : '',
|
1062
|
+
mid: isSet(object.mid) ? String(object.mid) : '',
|
1063
|
+
cid: isSet(object.cid) ? String(object.cid) : '',
|
1064
|
+
};
|
1065
|
+
},
|
1066
|
+
|
1067
|
+
toJSON(message: SimulcastCodecInfo): unknown {
|
1068
|
+
const obj: any = {};
|
1069
|
+
message.mimeType !== undefined && (obj.mimeType = message.mimeType);
|
1070
|
+
message.mid !== undefined && (obj.mid = message.mid);
|
1071
|
+
message.cid !== undefined && (obj.cid = message.cid);
|
1072
|
+
return obj;
|
1073
|
+
},
|
1074
|
+
|
1075
|
+
fromPartial<I extends Exact<DeepPartial<SimulcastCodecInfo>, I>>(object: I): SimulcastCodecInfo {
|
1076
|
+
const message = createBaseSimulcastCodecInfo();
|
1077
|
+
message.mimeType = object.mimeType ?? '';
|
1078
|
+
message.mid = object.mid ?? '';
|
1079
|
+
message.cid = object.cid ?? '';
|
1080
|
+
return message;
|
1081
|
+
},
|
1082
|
+
};
|
1083
|
+
|
1010
1084
|
function createBaseTrackInfo(): TrackInfo {
|
1011
1085
|
return {
|
1012
1086
|
sid: '',
|
@@ -1021,6 +1095,7 @@ function createBaseTrackInfo(): TrackInfo {
|
|
1021
1095
|
layers: [],
|
1022
1096
|
mimeType: '',
|
1023
1097
|
mid: '',
|
1098
|
+
codecs: [],
|
1024
1099
|
};
|
1025
1100
|
}
|
1026
1101
|
|
@@ -1062,6 +1137,9 @@ export const TrackInfo = {
|
|
1062
1137
|
if (message.mid !== '') {
|
1063
1138
|
writer.uint32(98).string(message.mid);
|
1064
1139
|
}
|
1140
|
+
for (const v of message.codecs) {
|
1141
|
+
SimulcastCodecInfo.encode(v!, writer.uint32(106).fork()).ldelim();
|
1142
|
+
}
|
1065
1143
|
return writer;
|
1066
1144
|
},
|
1067
1145
|
|
@@ -1108,6 +1186,9 @@ export const TrackInfo = {
|
|
1108
1186
|
case 12:
|
1109
1187
|
message.mid = reader.string();
|
1110
1188
|
break;
|
1189
|
+
case 13:
|
1190
|
+
message.codecs.push(SimulcastCodecInfo.decode(reader, reader.uint32()));
|
1191
|
+
break;
|
1111
1192
|
default:
|
1112
1193
|
reader.skipType(tag & 7);
|
1113
1194
|
break;
|
@@ -1132,6 +1213,9 @@ export const TrackInfo = {
|
|
1132
1213
|
: [],
|
1133
1214
|
mimeType: isSet(object.mimeType) ? String(object.mimeType) : '',
|
1134
1215
|
mid: isSet(object.mid) ? String(object.mid) : '',
|
1216
|
+
codecs: Array.isArray(object?.codecs)
|
1217
|
+
? object.codecs.map((e: any) => SimulcastCodecInfo.fromJSON(e))
|
1218
|
+
: [],
|
1135
1219
|
};
|
1136
1220
|
},
|
1137
1221
|
|
@@ -1153,6 +1237,11 @@ export const TrackInfo = {
|
|
1153
1237
|
}
|
1154
1238
|
message.mimeType !== undefined && (obj.mimeType = message.mimeType);
|
1155
1239
|
message.mid !== undefined && (obj.mid = message.mid);
|
1240
|
+
if (message.codecs) {
|
1241
|
+
obj.codecs = message.codecs.map((e) => (e ? SimulcastCodecInfo.toJSON(e) : undefined));
|
1242
|
+
} else {
|
1243
|
+
obj.codecs = [];
|
1244
|
+
}
|
1156
1245
|
return obj;
|
1157
1246
|
},
|
1158
1247
|
|
@@ -1170,6 +1259,7 @@ export const TrackInfo = {
|
|
1170
1259
|
message.layers = object.layers?.map((e) => VideoLayer.fromPartial(e)) || [];
|
1171
1260
|
message.mimeType = object.mimeType ?? '';
|
1172
1261
|
message.mid = object.mid ?? '';
|
1262
|
+
message.codecs = object.codecs?.map((e) => SimulcastCodecInfo.fromPartial(e)) || [];
|
1173
1263
|
return message;
|
1174
1264
|
},
|
1175
1265
|
};
|