livekit-client 0.11.2 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/.eslintrc.js +1 -0
  2. package/.github/workflows/publish.yaml +1 -3
  3. package/CHANGELOG.md +5 -0
  4. package/README.md +21 -1
  5. package/dist/api/SignalClient.d.ts +10 -7
  6. package/dist/api/SignalClient.js +19 -10
  7. package/dist/api/SignalClient.js.map +1 -1
  8. package/dist/connect.d.ts +23 -0
  9. package/dist/connect.js +93 -0
  10. package/dist/connect.js.map +1 -0
  11. package/dist/index.d.ts +4 -2
  12. package/dist/index.js +4 -2
  13. package/dist/index.js.map +1 -1
  14. package/dist/options.d.ts +5 -3
  15. package/dist/options.js.map +1 -1
  16. package/dist/proto/livekit_models.d.ts +68 -54
  17. package/dist/proto/livekit_models.js +324 -362
  18. package/dist/proto/livekit_models.js.map +1 -1
  19. package/dist/proto/livekit_rtc.d.ts +31 -61
  20. package/dist/proto/livekit_rtc.js +177 -356
  21. package/dist/proto/livekit_rtc.js.map +1 -1
  22. package/dist/room/DeviceManager.d.ts +10 -0
  23. package/dist/room/DeviceManager.js +77 -0
  24. package/dist/room/DeviceManager.js.map +1 -0
  25. package/dist/room/PCTransport.d.ts +5 -0
  26. package/dist/room/PCTransport.js +43 -0
  27. package/dist/room/PCTransport.js.map +1 -1
  28. package/dist/room/RTCEngine.d.ts +21 -15
  29. package/dist/room/RTCEngine.js +122 -87
  30. package/dist/room/RTCEngine.js.map +1 -1
  31. package/dist/room/Room.d.ts +47 -3
  32. package/dist/room/Room.js +167 -10
  33. package/dist/room/Room.js.map +1 -1
  34. package/dist/room/defaults.d.ts +3 -0
  35. package/dist/room/defaults.js +13 -0
  36. package/dist/room/defaults.js.map +1 -0
  37. package/dist/room/events.d.ts +26 -3
  38. package/dist/room/events.js +25 -2
  39. package/dist/room/events.js.map +1 -1
  40. package/dist/room/participant/LocalParticipant.d.ts +32 -9
  41. package/dist/room/participant/LocalParticipant.js +165 -60
  42. package/dist/room/participant/LocalParticipant.js.map +1 -1
  43. package/dist/room/participant/Participant.d.ts +14 -0
  44. package/dist/room/participant/Participant.js +39 -0
  45. package/dist/room/participant/Participant.js.map +1 -1
  46. package/dist/room/participant/RemoteParticipant.d.ts +2 -0
  47. package/dist/room/participant/RemoteParticipant.js +14 -0
  48. package/dist/room/participant/RemoteParticipant.js.map +1 -1
  49. package/dist/room/track/LocalAudioTrack.d.ts +3 -0
  50. package/dist/room/track/LocalAudioTrack.js +37 -0
  51. package/dist/room/track/LocalAudioTrack.js.map +1 -1
  52. package/dist/room/track/LocalTrack.d.ts +6 -2
  53. package/dist/room/track/LocalTrack.js +49 -6
  54. package/dist/room/track/LocalTrack.js.map +1 -1
  55. package/dist/room/track/LocalTrackPublication.d.ts +6 -3
  56. package/dist/room/track/LocalTrackPublication.js +21 -2
  57. package/dist/room/track/LocalTrackPublication.js.map +1 -1
  58. package/dist/room/track/LocalVideoTrack.d.ts +3 -2
  59. package/dist/room/track/LocalVideoTrack.js +34 -5
  60. package/dist/room/track/LocalVideoTrack.js.map +1 -1
  61. package/dist/room/track/RemoteAudioTrack.d.ts +2 -0
  62. package/dist/room/track/RemoteAudioTrack.js +8 -0
  63. package/dist/room/track/RemoteAudioTrack.js.map +1 -1
  64. package/dist/room/track/RemoteVideoTrack.d.ts +1 -0
  65. package/dist/room/track/RemoteVideoTrack.js +6 -1
  66. package/dist/room/track/RemoteVideoTrack.js.map +1 -1
  67. package/dist/room/track/Track.d.ts +14 -2
  68. package/dist/room/track/Track.js +42 -0
  69. package/dist/room/track/Track.js.map +1 -1
  70. package/dist/room/track/TrackPublication.d.ts +1 -0
  71. package/dist/room/track/TrackPublication.js +2 -0
  72. package/dist/room/track/TrackPublication.js.map +1 -1
  73. package/dist/room/track/create.d.ts +23 -0
  74. package/dist/room/track/create.js +166 -0
  75. package/dist/room/track/create.js.map +1 -0
  76. package/dist/room/track/options.d.ts +47 -17
  77. package/dist/room/track/options.js +11 -6
  78. package/dist/room/track/options.js.map +1 -1
  79. package/dist/version.d.ts +2 -2
  80. package/dist/version.js +2 -2
  81. package/example/index.html +51 -20
  82. package/example/sample.ts +204 -75
  83. package/example/webpack.config.js +8 -2
  84. package/package.json +11 -10
  85. package/dist/livekit.d.ts +0 -42
  86. package/dist/livekit.js +0 -194
  87. package/dist/livekit.js.map +0 -1
package/.eslintrc.js CHANGED
@@ -8,6 +8,7 @@ module.exports = {
8
8
  'max-classes-per-file': 'off',
9
9
  'no-param-reassign': 'off',
10
10
  'no-await-in-loop': 'off',
11
+ 'no-restricted-syntax': 'off',
11
12
  'consistent-return': 'off',
12
13
  'class-methods-use-this': 'off',
13
14
  '@typescript-eslint/no-use-before-define': 'off',
@@ -48,9 +48,7 @@ jobs:
48
48
  NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
49
49
 
50
50
  - name: S3 Upload
51
- uses: ItsKarma/aws-cli@v1.70.0
52
- with:
53
- args: s3 cp docs/ s3://livekit-docs/client-sdk-js --recursive
51
+ run: aws s3 cp docs/ s3://livekit-docs/client-sdk-js --recursive
54
52
  env:
55
53
  AWS_ACCESS_KEY_ID: ${{ secrets.DOCS_DEPLOY_AWS_ACCESS_KEY }}
56
54
  AWS_SECRET_ACCESS_KEY: ${{ secrets.DOCS_DEPLOY_AWS_API_SECRET }}
package/CHANGELOG.md ADDED
@@ -0,0 +1,5 @@
1
+ # Change Log
2
+
3
+ ## 0.12.0
4
+
5
+ * Updated API to create screen share tracks.
package/README.md CHANGED
@@ -133,6 +133,26 @@ room.on(RoomEvent.AudioPlaybackStatusChanged, () => {
133
133
  });
134
134
  ```
135
135
 
136
+ ### Screen share
137
+
138
+ On desktop browsers, you may also share your screen with others. Refer to [browser compatibility](https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia#browser_compatibility).
139
+
140
+ Audio capture is supported only a subset of desktop browsers.
141
+
142
+ ```typescript
143
+ const tracks = await createLocalScreenTracks({
144
+ // set to true in order to capture audio
145
+ audio: true,
146
+ // defaults to 1080p
147
+ resolution: VideoPresets.fhd.resolution,
148
+ });
149
+
150
+ tracks.forEach((track) => {
151
+ // publish video and audio of the screenshare
152
+ room.localParticipant.publishTrack(track);
153
+ });
154
+ ```
155
+
136
156
  ### Switching input devices
137
157
 
138
158
  At any point after publishing, you can switch the input devices and other capture settings on both audio and video tracks. For example, switching between regular and selfie camera or changing microphone inputs. This is performed with `restartTrack` on the `LocalAudioTrack` or `LocalVideoTrack`.
@@ -166,4 +186,4 @@ This library uses [loglevel](https://github.com/pimterry/loglevel) for its inter
166
186
  | Chrome | Windows, macOS, Linux | Android |
167
187
  | Firefox | Windows, macOS, Linux | Android |
168
188
  | Safari | macOS | iOS |
169
- | Edge (Chromium) | Windows, macOS |
189
+ | Edge (Chromium) | Windows, macOS | |
@@ -1,10 +1,9 @@
1
1
  import 'webrtc-adapter';
2
- import { ParticipantInfo } from '../proto/livekit_models';
3
- import { AddTrackRequest, JoinResponse, SignalRequest, SignalTarget, SpeakerInfo, TrackPublishedResponse, UpdateSubscription, UpdateTrackSettings, VideoQuality } from '../proto/livekit_rtc';
2
+ import { ParticipantInfo, Room, SpeakerInfo } from '../proto/livekit_models';
3
+ import { AddTrackRequest, JoinResponse, SignalRequest, SignalTarget, TrackPublishedResponse, UpdateSubscription, UpdateTrackSettings, VideoQuality } from '../proto/livekit_rtc';
4
4
  import { Track } from '../room/track/Track';
5
5
  interface ConnectOpts {
6
6
  autoSubscribe?: boolean;
7
- usePlanB?: boolean;
8
7
  /** internal */
9
8
  reconnect?: boolean;
10
9
  }
@@ -16,7 +15,7 @@ export interface SignalOptions {
16
15
  * so that it
17
16
  */
18
17
  export interface SignalClient {
19
- join(url: string, token: string, usePlanB?: boolean, opts?: SignalOptions): Promise<JoinResponse>;
18
+ join(url: string, token: string, opts?: SignalOptions): Promise<JoinResponse>;
20
19
  reconnect(url: string, token: string): Promise<void>;
21
20
  sendOffer(offer: RTCSessionDescriptionInit): void;
22
21
  sendAnswer(answer: RTCSessionDescriptionInit): void;
@@ -35,7 +34,9 @@ export interface SignalClient {
35
34
  onTrickle?: (sd: RTCIceCandidateInit, target: SignalTarget) => void;
36
35
  onParticipantUpdate?: (updates: ParticipantInfo[]) => void;
37
36
  onLocalTrackPublished?: (res: TrackPublishedResponse) => void;
38
- onActiveSpeakersChanged?: (res: SpeakerInfo[]) => void;
37
+ onSpeakersChanged?: (res: SpeakerInfo[]) => void;
38
+ onRemoteMuteChanged?: (trackSid: string, muted: boolean) => void;
39
+ onRoomUpdate?: (room: Room) => void;
39
40
  onLeave?: () => void;
40
41
  }
41
42
  export declare class WSSignalClient {
@@ -48,11 +49,13 @@ export declare class WSSignalClient {
48
49
  onParticipantUpdate?: (updates: ParticipantInfo[]) => void;
49
50
  onLocalTrackPublished?: (res: TrackPublishedResponse) => void;
50
51
  onNegotiateRequested?: () => void;
51
- onActiveSpeakersChanged?: (res: SpeakerInfo[]) => void;
52
+ onSpeakersChanged?: (res: SpeakerInfo[]) => void;
53
+ onRemoteMuteChanged?: (trackSid: string, muted: boolean) => void;
54
+ onRoomUpdate?: (room: Room) => void;
52
55
  onLeave?: () => void;
53
56
  ws?: WebSocket;
54
57
  constructor(useJSON?: boolean);
55
- join(url: string, token: string, planB?: boolean, opts?: SignalOptions): Promise<JoinResponse>;
58
+ join(url: string, token: string, opts?: SignalOptions): Promise<JoinResponse>;
56
59
  reconnect(url: string, token: string): Promise<void>;
57
60
  connect(url: string, token: string, opts: ConnectOpts): Promise<JoinResponse | void>;
58
61
  close(): void;
@@ -23,10 +23,9 @@ class WSSignalClient {
23
23
  this.isConnected = false;
24
24
  this.useJSON = useJSON;
25
25
  }
26
- join(url, token, planB = false, opts) {
26
+ join(url, token, opts) {
27
27
  return __awaiter(this, void 0, void 0, function* () {
28
28
  const res = yield this.connect(url, token, {
29
- usePlanB: planB,
30
29
  autoSubscribe: opts === null || opts === void 0 ? void 0 : opts.autoSubscribe,
31
30
  });
32
31
  return res;
@@ -40,16 +39,16 @@ class WSSignalClient {
40
39
  });
41
40
  }
42
41
  connect(url, token, opts) {
42
+ if (url.startsWith('http')) {
43
+ url = url.replace('http', 'ws');
44
+ }
43
45
  // strip trailing slash
44
46
  url = url.replace(/\/$/, '');
45
47
  url += '/rtc';
46
- let params = `?access_token=${token}&protocol=${version_1.protocolVersion}`;
48
+ let params = `?access_token=${token}&protocol=${version_1.protocolVersion}&sdk=js&version=${version_1.version}`;
47
49
  if (opts.reconnect) {
48
50
  params += '&reconnect=1';
49
51
  }
50
- if (opts.usePlanB) {
51
- params += '&planb=1';
52
- }
53
52
  if (opts.autoSubscribe !== undefined) {
54
53
  params += `&auto_subscribe=${opts.autoSubscribe ? '1' : '0'}`;
55
54
  }
@@ -71,7 +70,7 @@ class WSSignalClient {
71
70
  }
72
71
  }
73
72
  catch (e) {
74
- reject(new errors_1.ConnectionError(e));
73
+ reject(new errors_1.ConnectionError('server was not reachable'));
75
74
  }
76
75
  return;
77
76
  }
@@ -223,9 +222,9 @@ class WSSignalClient {
223
222
  this.onLocalTrackPublished(msg.trackPublished);
224
223
  }
225
224
  }
226
- else if (msg.speaker) {
227
- if (this.onActiveSpeakersChanged) {
228
- this.onActiveSpeakersChanged(msg.speaker.speakers);
225
+ else if (msg.speakersChanged) {
226
+ if (this.onSpeakersChanged) {
227
+ this.onSpeakersChanged(msg.speakersChanged.speakers);
229
228
  }
230
229
  }
231
230
  else if (msg.leave) {
@@ -233,6 +232,16 @@ class WSSignalClient {
233
232
  this.onLeave();
234
233
  }
235
234
  }
235
+ else if (msg.mute) {
236
+ if (this.onRemoteMuteChanged) {
237
+ this.onRemoteMuteChanged(msg.mute.sid, msg.mute.muted);
238
+ }
239
+ }
240
+ else if (msg.roomUpdate) {
241
+ if (this.onRoomUpdate) {
242
+ this.onRoomUpdate(msg.roomUpdate.room);
243
+ }
244
+ }
236
245
  else {
237
246
  loglevel_1.default.warn('unsupported message', msg);
238
247
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SignalClient.js","sourceRoot":"","sources":["../../src/api/SignalClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SignalClient.js","sourceRoot":"","sources":["../../src/api/SignalClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { ConnectOptions } from './options';
2
+ import Room from './room/Room';
3
+ export { version } from './version';
4
+ /**
5
+ * Connects to a LiveKit room
6
+ *
7
+ * ```typescript
8
+ * connect('wss://myhost.livekit.io', token, {
9
+ * // publish audio and video tracks on joining
10
+ * audio: true,
11
+ * video: {
12
+ * resolution: VideoPresets.hd,
13
+ * facingMode: {
14
+ * ideal: "user",
15
+ * }
16
+ * }
17
+ * })
18
+ * ```
19
+ * @param url URL to LiveKit server
20
+ * @param token AccessToken, a JWT token that includes authentication and room details
21
+ * @param options
22
+ */
23
+ export declare function connect(url: string, token: string, options?: ConnectOptions): Promise<Room>;
@@ -0,0 +1,93 @@
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.connect = exports.version = void 0;
16
+ const loglevel_1 = __importDefault(require("loglevel"));
17
+ const SignalClient_1 = require("./api/SignalClient");
18
+ const options_1 = require("./options");
19
+ const Room_1 = __importDefault(require("./room/Room"));
20
+ const create_1 = require("./room/track/create");
21
+ var version_1 = require("./version");
22
+ Object.defineProperty(exports, "version", { enumerable: true, get: function () { return version_1.version; } });
23
+ /**
24
+ * Connects to a LiveKit room
25
+ *
26
+ * ```typescript
27
+ * connect('wss://myhost.livekit.io', token, {
28
+ * // publish audio and video tracks on joining
29
+ * audio: true,
30
+ * video: {
31
+ * resolution: VideoPresets.hd,
32
+ * facingMode: {
33
+ * ideal: "user",
34
+ * }
35
+ * }
36
+ * })
37
+ * ```
38
+ * @param url URL to LiveKit server
39
+ * @param token AccessToken, a JWT token that includes authentication and room details
40
+ * @param options
41
+ */
42
+ function connect(url, token, options) {
43
+ var _a;
44
+ return __awaiter(this, void 0, void 0, function* () {
45
+ // set defaults
46
+ options || (options = {});
47
+ options.logLevel || (options.logLevel = options_1.LogLevel.info);
48
+ if (options.audio === undefined)
49
+ options.audio = false;
50
+ if (options.video === undefined)
51
+ options.video = false;
52
+ loglevel_1.default.setLevel(options.logLevel);
53
+ const config = (_a = options.rtcConfig) !== null && _a !== void 0 ? _a : {};
54
+ if (options.iceServers) {
55
+ config.iceServers = options.iceServers;
56
+ }
57
+ const client = new SignalClient_1.WSSignalClient();
58
+ const room = new Room_1.default(client, config);
59
+ // connect to room
60
+ yield room.connect(url, token, {
61
+ autoSubscribe: options === null || options === void 0 ? void 0 : options.autoSubscribe,
62
+ });
63
+ // save default publish options
64
+ const defaultOptions = room.defaultTrackOptions;
65
+ if (options.audioBitrate)
66
+ defaultOptions.audioBitrate = options.audioBitrate;
67
+ if (options.dtx)
68
+ defaultOptions.dtx = options.dtx;
69
+ if (options.simulcast)
70
+ defaultOptions.simulcast = options.simulcast;
71
+ if (options.videoEncoding)
72
+ defaultOptions.videoEncoding = options.videoEncoding;
73
+ if (options.videoCodec)
74
+ defaultOptions.videoCodec = options.videoCodec;
75
+ room.defaultTrackOptions = defaultOptions;
76
+ // add tracks if available
77
+ let { tracks } = options;
78
+ if (!tracks) {
79
+ if (options.audio || options.video) {
80
+ tracks = yield create_1.createLocalTracks({
81
+ audio: options.audio,
82
+ video: options.video,
83
+ });
84
+ }
85
+ }
86
+ if (tracks) {
87
+ yield Promise.all(tracks.map((track) => room.localParticipant.publishTrack(track)));
88
+ }
89
+ return room;
90
+ });
91
+ }
92
+ exports.connect = connect;
93
+ //# sourceMappingURL=connect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,wDAA2B;AAC3B,qDAAoD;AACpD,uCAGmB;AACnB,uDAA+B;AAC/B,gDAAwD;AAGxD,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAEhB;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAsB,OAAO,CAC3B,GAAW,EACX,KAAa,EACb,OAAwB;;;QAExB,eAAe;QACf,OAAO,KAAP,OAAO,GAAK,EAAE,EAAC;QACf,OAAO,CAAC,QAAQ,KAAhB,OAAO,CAAC,QAAQ,GAAK,kBAAQ,CAAC,IAAI,EAAC;QACnC,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;QACvD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;QAEvD,kBAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE/B,MAAM,MAAM,GAAqB,MAAA,OAAO,CAAC,SAAS,mCAAI,EAAE,CAAC;QACzD,IAAI,OAAO,CAAC,UAAU,EAAE;YACtB,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;SACxC;QAED,MAAM,MAAM,GAAG,IAAI,6BAAc,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,cAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAEtC,kBAAkB;QAClB,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE;YAC7B,aAAa,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa;SACtC,CAAC,CAAC;QAEH,+BAA+B;QAC/B,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAChD,IAAI,OAAO,CAAC,YAAY;YAAE,cAAc,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QAC7E,IAAI,OAAO,CAAC,GAAG;YAAE,cAAc,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QAClD,IAAI,OAAO,CAAC,SAAS;YAAE,cAAc,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACpE,IAAI,OAAO,CAAC,aAAa;YAAE,cAAc,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAChF,IAAI,OAAO,CAAC,UAAU;YAAE,cAAc,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QAEvE,IAAI,CAAC,mBAAmB,GAAG,cAAc,CAAC;QAE1C,0BAA0B;QAC1B,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAEzB,IAAI,CAAC,MAAM,EAAE;YACX,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE;gBAClC,MAAM,GAAG,MAAM,0BAAiB,CAAC;oBAC/B,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,KAAK,EAAE,OAAO,CAAC,KAAK;iBACrB,CAAC,CAAC;aACJ;SACF;QAED,IAAI,MAAM,EAAE;YACV,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAC1B,CAAC,KAAoC,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,CACpF,CAAC,CAAC;SACJ;QAED,OAAO,IAAI,CAAC;;CACb;AAvDD,0BAuDC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- import { DataPacket_Kind, VideoQuality } from './proto/livekit_rtc';
1
+ import { DataPacket_Kind } from './proto/livekit_models';
2
+ import { VideoQuality } from './proto/livekit_rtc';
2
3
  import LocalParticipant from './room/participant/LocalParticipant';
3
4
  import Participant from './room/participant/Participant';
4
5
  import RemoteParticipant from './room/participant/RemoteParticipant';
@@ -11,10 +12,11 @@ import RemoteAudioTrack from './room/track/RemoteAudioTrack';
11
12
  import RemoteTrackPublication from './room/track/RemoteTrackPublication';
12
13
  import RemoteVideoTrack from './room/track/RemoteVideoTrack';
13
14
  import TrackPublication from './room/track/TrackPublication';
14
- export * from './livekit';
15
+ export * from './connect';
15
16
  export * from './options';
16
17
  export * from './room/errors';
17
18
  export * from './room/events';
19
+ export * from './room/track/create';
18
20
  export * from './room/track/options';
19
21
  export * from './room/track/Track';
20
22
  export * from './room/track/types';
package/dist/index.js CHANGED
@@ -26,8 +26,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  };
27
27
  Object.defineProperty(exports, "__esModule", { value: true });
28
28
  exports.VideoQuality = exports.TrackPublication = exports.RemoteTrackPublication = exports.RemoteVideoTrack = exports.RemoteAudioTrack = exports.LocalTrackPublication = exports.LocalTrack = exports.LocalVideoTrack = exports.LocalAudioTrack = exports.LocalParticipant = exports.RemoteParticipant = exports.Participant = exports.DataPacket_Kind = exports.RoomState = exports.Room = void 0;
29
+ const livekit_models_1 = require("./proto/livekit_models");
30
+ Object.defineProperty(exports, "DataPacket_Kind", { enumerable: true, get: function () { return livekit_models_1.DataPacket_Kind; } });
29
31
  const livekit_rtc_1 = require("./proto/livekit_rtc");
30
- Object.defineProperty(exports, "DataPacket_Kind", { enumerable: true, get: function () { return livekit_rtc_1.DataPacket_Kind; } });
31
32
  Object.defineProperty(exports, "VideoQuality", { enumerable: true, get: function () { return livekit_rtc_1.VideoQuality; } });
32
33
  const LocalParticipant_1 = __importDefault(require("./room/participant/LocalParticipant"));
33
34
  exports.LocalParticipant = LocalParticipant_1.default;
@@ -54,10 +55,11 @@ const RemoteVideoTrack_1 = __importDefault(require("./room/track/RemoteVideoTrac
54
55
  exports.RemoteVideoTrack = RemoteVideoTrack_1.default;
55
56
  const TrackPublication_1 = __importDefault(require("./room/track/TrackPublication"));
56
57
  exports.TrackPublication = TrackPublication_1.default;
57
- __exportStar(require("./livekit"), exports);
58
+ __exportStar(require("./connect"), exports);
58
59
  __exportStar(require("./options"), exports);
59
60
  __exportStar(require("./room/errors"), exports);
60
61
  __exportStar(require("./room/events"), exports);
62
+ __exportStar(require("./room/track/create"), exports);
61
63
  __exportStar(require("./room/track/options"), exports);
62
64
  __exportStar(require("./room/track/Track"), exports);
63
65
  __exportStar(require("./room/track/types"), exports);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAAoE;AAyBlE,gGAzBO,6BAAe,OAyBP;AAYf,6FArCwB,0BAAY,OAqCxB;AApCd,2FAAmE;AA2BjE,2BA3BK,0BAAgB,CA2BL;AA1BlB,iFAAyD;AAwBvD,sBAxBK,qBAAW,CAwBL;AAvBb,6FAAqE;AAwBnE,4BAxBK,2BAAiB,CAwBL;AAvBnB,oDAA8C;AAmB5C,eAnBK,cAAI,CAmBL;AACJ,0FApBa,gBAAS,OAoBb;AAnBX,mFAA2D;AAwBzD,0BAxBK,yBAAe,CAwBL;AAvBjB,yEAAiD;AAyB/C,qBAzBK,oBAAU,CAyBL;AAxBZ,+FAAuE;AAyBrE,gCAzBK,+BAAqB,CAyBL;AAxBvB,mFAA2D;AAsBzD,0BAtBK,yBAAe,CAsBL;AArBjB,qFAA6D;AAwB3D,2BAxBK,0BAAgB,CAwBL;AAvBlB,iGAAyE;AAyBvE,iCAzBK,gCAAsB,CAyBL;AAxBxB,qFAA6D;AAuB3D,2BAvBK,0BAAgB,CAuBL;AAtBlB,qFAA6D;AAwB3D,2BAxBK,0BAAgB,CAwBL;AAtBlB,4CAA0B;AAC1B,4CAA0B;AAC1B,gDAA8B;AAC9B,gDAA8B;AAC9B,uDAAqC;AACrC,qDAAmC;AACnC,qDAAmC;AACnC,4CAA0B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2DAAyD;AA2BvD,gGA3BO,gCAAe,OA2BP;AA1BjB,qDAAmD;AAsCjD,6FAtCO,0BAAY,OAsCP;AArCd,2FAAmE;AA4BjE,2BA5BK,0BAAgB,CA4BL;AA3BlB,iFAAyD;AAyBvD,sBAzBK,qBAAW,CAyBL;AAxBb,6FAAqE;AAyBnE,4BAzBK,2BAAiB,CAyBL;AAxBnB,oDAA8C;AAoB5C,eApBK,cAAI,CAoBL;AACJ,0FArBa,gBAAS,OAqBb;AApBX,mFAA2D;AAyBzD,0BAzBK,yBAAe,CAyBL;AAxBjB,yEAAiD;AA0B/C,qBA1BK,oBAAU,CA0BL;AAzBZ,+FAAuE;AA0BrE,gCA1BK,+BAAqB,CA0BL;AAzBvB,mFAA2D;AAuBzD,0BAvBK,yBAAe,CAuBL;AAtBjB,qFAA6D;AAyB3D,2BAzBK,0BAAgB,CAyBL;AAxBlB,iGAAyE;AA0BvE,iCA1BK,gCAAsB,CA0BL;AAzBxB,qFAA6D;AAwB3D,2BAxBK,0BAAgB,CAwBL;AAvBlB,qFAA6D;AAyB3D,2BAzBK,0BAAgB,CAyBL;AAvBlB,4CAA0B;AAC1B,4CAA0B;AAC1B,gDAA8B;AAC9B,gDAA8B;AAC9B,sDAAoC;AACpC,uDAAqC;AACrC,qDAAmC;AACnC,qDAAmC;AACnC,4CAA0B"}
package/dist/options.d.ts CHANGED
@@ -22,12 +22,14 @@ export interface ConnectOptions extends CreateLocalTracksOptions {
22
22
  * [[createLocalTracks]]. when this is passed in, it'll ignore audio and video options
23
23
  */
24
24
  tracks?: LocalTrack[] | MediaStreamTrack[];
25
- /** see [[TrackPublishOptions.videoEncoding]] */
25
+ /** default [[TrackPublishOptions.videoEncoding]] for published tracks */
26
26
  videoEncoding?: VideoEncoding;
27
- /** see [[TrackPublishOptions.videoCodec]] */
27
+ /** default [[TrackPublishOptions.videoCodec]] for published tracks */
28
28
  videoCodec?: VideoCodec;
29
- /** see [[TrackPublishOptions.audioBitrate]] */
29
+ /** default [[TrackPublishOptions.audioBitrate]] for published tracks */
30
30
  audioBitrate?: number;
31
+ /** see [[TrackPublishOptions.dtx]] */
32
+ dtx?: boolean;
31
33
  /** see [[TrackPublishOptions.simulcast]] */
32
34
  simulcast?: boolean;
33
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":";;;AA2CA,IAAY,QAOX;AAPD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,2BAAe,CAAA;IACf,yBAAa,CAAA;IACb,yBAAa,CAAA;IACb,2BAAe,CAAA;IACf,6BAAiB,CAAA;AACnB,CAAC,EAPW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAOnB"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":";;;AA8CA,IAAY,QAOX;AAPD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,2BAAe,CAAA;IACf,yBAAa,CAAA;IACb,yBAAa,CAAA;IACb,2BAAe,CAAA;IACf,6BAAiB,CAAA;AACnB,CAAC,EAPW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAOnB"}
@@ -8,6 +8,15 @@ export declare enum TrackType {
8
8
  }
9
9
  export declare function trackTypeFromJSON(object: any): TrackType;
10
10
  export declare function trackTypeToJSON(object: TrackType): string;
11
+ export declare enum TrackSource {
12
+ UNKNOWN = 0,
13
+ CAMERA = 1,
14
+ MICROPHONE = 2,
15
+ SCREEN_SHARE = 3,
16
+ UNRECOGNIZED = -1
17
+ }
18
+ export declare function trackSourceFromJSON(object: any): TrackSource;
19
+ export declare function trackSourceToJSON(object: TrackSource): string;
11
20
  export interface Room {
12
21
  sid: string;
13
22
  name: string;
@@ -16,6 +25,8 @@ export interface Room {
16
25
  creationTime: number;
17
26
  turnPassword: string;
18
27
  enabledCodecs: Codec[];
28
+ metadata: string;
29
+ numParticipants: number;
19
30
  }
20
31
  export interface Codec {
21
32
  mime: string;
@@ -27,7 +38,7 @@ export interface ParticipantInfo {
27
38
  state: ParticipantInfo_State;
28
39
  tracks: TrackInfo[];
29
40
  metadata: string;
30
- /** timestamp when participant joined room */
41
+ /** timestamp when participant joined room, in seconds */
31
42
  joinedAt: number;
32
43
  /** hidden participant (used for recording) */
33
44
  hidden: boolean;
@@ -59,38 +70,41 @@ export interface TrackInfo {
59
70
  height: number;
60
71
  /** true if track is simulcasted */
61
72
  simulcast: boolean;
73
+ /** true if DTX (Discontinuous Transmission) is disabled for audio */
74
+ disableDtx: boolean;
75
+ /** source of media */
76
+ source: TrackSource;
62
77
  }
63
- /** old DataTrack message */
64
- export interface DataMessage {
65
- text: string | undefined;
66
- binary: Uint8Array | undefined;
78
+ /** new DataPacket API */
79
+ export interface DataPacket {
80
+ kind: DataPacket_Kind;
81
+ user?: UserPacket | undefined;
82
+ speaker?: ActiveSpeakerUpdate | undefined;
67
83
  }
68
- export interface RecordingTemplate {
69
- layout: string;
70
- wsUrl: string;
71
- /** either token or room name required */
72
- token: string;
73
- roomName: string;
84
+ export declare enum DataPacket_Kind {
85
+ RELIABLE = 0,
86
+ LOSSY = 1,
87
+ UNRECOGNIZED = -1
88
+ }
89
+ export declare function dataPacket_KindFromJSON(object: any): DataPacket_Kind;
90
+ export declare function dataPacket_KindToJSON(object: DataPacket_Kind): string;
91
+ export interface ActiveSpeakerUpdate {
92
+ speakers: SpeakerInfo[];
74
93
  }
75
- export interface RecordingS3Output {
76
- bucket: string;
77
- key: string;
78
- /** optional */
79
- accessKey: string;
80
- secret: string;
94
+ export interface SpeakerInfo {
95
+ sid: string;
96
+ /** audio level, 0-1.0, 1 is loudest */
97
+ level: number;
98
+ /** true if speaker is currently active */
99
+ active: boolean;
81
100
  }
82
- export interface RecordingOptions {
83
- /** 720p30, 720p60, 1080p30, or 1080p60 */
84
- preset: string;
85
- inputWidth: number;
86
- inputHeight: number;
87
- outputWidth: number;
88
- outputHeight: number;
89
- depth: number;
90
- framerate: number;
91
- audioBitrate: number;
92
- audioFrequency: number;
93
- videoBitrate: number;
101
+ export interface UserPacket {
102
+ /** participant ID of user that sent the message */
103
+ participantSid: string;
104
+ /** user defined payload */
105
+ payload: Uint8Array;
106
+ /** the ID of the participants who will receive the message (the message will be sent to all the people in the room if this variable is empty) */
107
+ destinationSids: string[];
94
108
  }
95
109
  export declare const Room: {
96
110
  encode(message: Room, writer?: _m0.Writer): _m0.Writer;
@@ -120,35 +134,35 @@ export declare const TrackInfo: {
120
134
  toJSON(message: TrackInfo): unknown;
121
135
  fromPartial(object: DeepPartial<TrackInfo>): TrackInfo;
122
136
  };
123
- export declare const DataMessage: {
124
- encode(message: DataMessage, writer?: _m0.Writer): _m0.Writer;
125
- decode(input: _m0.Reader | Uint8Array, length?: number | undefined): DataMessage;
126
- fromJSON(object: any): DataMessage;
127
- toJSON(message: DataMessage): unknown;
128
- fromPartial(object: DeepPartial<DataMessage>): DataMessage;
137
+ export declare const DataPacket: {
138
+ encode(message: DataPacket, writer?: _m0.Writer): _m0.Writer;
139
+ decode(input: _m0.Reader | Uint8Array, length?: number | undefined): DataPacket;
140
+ fromJSON(object: any): DataPacket;
141
+ toJSON(message: DataPacket): unknown;
142
+ fromPartial(object: DeepPartial<DataPacket>): DataPacket;
129
143
  };
130
- export declare const RecordingTemplate: {
131
- encode(message: RecordingTemplate, writer?: _m0.Writer): _m0.Writer;
132
- decode(input: _m0.Reader | Uint8Array, length?: number | undefined): RecordingTemplate;
133
- fromJSON(object: any): RecordingTemplate;
134
- toJSON(message: RecordingTemplate): unknown;
135
- fromPartial(object: DeepPartial<RecordingTemplate>): RecordingTemplate;
144
+ export declare const ActiveSpeakerUpdate: {
145
+ encode(message: ActiveSpeakerUpdate, writer?: _m0.Writer): _m0.Writer;
146
+ decode(input: _m0.Reader | Uint8Array, length?: number | undefined): ActiveSpeakerUpdate;
147
+ fromJSON(object: any): ActiveSpeakerUpdate;
148
+ toJSON(message: ActiveSpeakerUpdate): unknown;
149
+ fromPartial(object: DeepPartial<ActiveSpeakerUpdate>): ActiveSpeakerUpdate;
136
150
  };
137
- export declare const RecordingS3Output: {
138
- encode(message: RecordingS3Output, writer?: _m0.Writer): _m0.Writer;
139
- decode(input: _m0.Reader | Uint8Array, length?: number | undefined): RecordingS3Output;
140
- fromJSON(object: any): RecordingS3Output;
141
- toJSON(message: RecordingS3Output): unknown;
142
- fromPartial(object: DeepPartial<RecordingS3Output>): RecordingS3Output;
151
+ export declare const SpeakerInfo: {
152
+ encode(message: SpeakerInfo, writer?: _m0.Writer): _m0.Writer;
153
+ decode(input: _m0.Reader | Uint8Array, length?: number | undefined): SpeakerInfo;
154
+ fromJSON(object: any): SpeakerInfo;
155
+ toJSON(message: SpeakerInfo): unknown;
156
+ fromPartial(object: DeepPartial<SpeakerInfo>): SpeakerInfo;
143
157
  };
144
- export declare const RecordingOptions: {
145
- encode(message: RecordingOptions, writer?: _m0.Writer): _m0.Writer;
146
- decode(input: _m0.Reader | Uint8Array, length?: number | undefined): RecordingOptions;
147
- fromJSON(object: any): RecordingOptions;
148
- toJSON(message: RecordingOptions): unknown;
149
- fromPartial(object: DeepPartial<RecordingOptions>): RecordingOptions;
158
+ export declare const UserPacket: {
159
+ encode(message: UserPacket, writer?: _m0.Writer): _m0.Writer;
160
+ decode(input: _m0.Reader | Uint8Array, length?: number | undefined): UserPacket;
161
+ fromJSON(object: any): UserPacket;
162
+ toJSON(message: UserPacket): unknown;
163
+ fromPartial(object: DeepPartial<UserPacket>): UserPacket;
150
164
  };
151
- declare type Builtin = Date | Function | Uint8Array | string | number | undefined;
165
+ declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
152
166
  export declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
153
167
  [K in keyof T]?: DeepPartial<T[K]>;
154
168
  } : Partial<T>;