livekit-client 0.14.1 → 0.15.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/.github/workflows/{lint.yaml → test.yaml} +7 -4
- package/.gitmodules +3 -0
- package/README.md +46 -14
- package/dist/api/SignalClient.d.ts +7 -32
- package/dist/api/SignalClient.js +37 -8
- package/dist/api/SignalClient.js.map +1 -1
- package/dist/connect.d.ts +1 -1
- package/dist/connect.js +73 -59
- package/dist/connect.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +10 -0
- package/dist/logger.js +15 -0
- package/dist/logger.js.map +1 -1
- package/dist/options.d.ts +83 -19
- package/dist/options.js +0 -10
- package/dist/options.js.map +1 -1
- package/dist/proto/livekit_models.d.ts +27 -1
- package/dist/proto/livekit_models.js +188 -3
- package/dist/proto/livekit_models.js.map +1 -1
- package/dist/proto/livekit_rtc.d.ts +114 -7
- package/dist/proto/livekit_rtc.js +783 -30
- package/dist/proto/livekit_rtc.js.map +1 -1
- package/dist/room/RTCEngine.d.ts +4 -2
- package/dist/room/RTCEngine.js +31 -35
- package/dist/room/RTCEngine.js.map +1 -1
- package/dist/room/Room.d.ts +16 -17
- package/dist/room/Room.js +125 -77
- package/dist/room/Room.js.map +1 -1
- package/dist/room/events.d.ts +115 -6
- package/dist/room/events.js +114 -5
- package/dist/room/events.js.map +1 -1
- package/dist/room/participant/LocalParticipant.d.ts +29 -9
- package/dist/room/participant/LocalParticipant.js +220 -160
- package/dist/room/participant/LocalParticipant.js.map +1 -1
- package/dist/room/participant/Participant.js +2 -1
- package/dist/room/participant/Participant.js.map +1 -1
- package/dist/room/participant/RemoteParticipant.d.ts +1 -1
- package/dist/room/participant/RemoteParticipant.js +8 -5
- package/dist/room/participant/RemoteParticipant.js.map +1 -1
- package/dist/room/participant/publishUtils.d.ts +11 -0
- package/dist/room/participant/publishUtils.js +148 -0
- package/dist/room/participant/publishUtils.js.map +1 -0
- package/dist/room/participant/publishUtils.test.d.ts +1 -0
- package/dist/room/participant/publishUtils.test.js +79 -0
- package/dist/room/participant/publishUtils.test.js.map +1 -0
- 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 +8 -3
- package/dist/room/track/LocalAudioTrack.js +49 -3
- package/dist/room/track/LocalAudioTrack.js.map +1 -1
- package/dist/room/track/LocalTrack.d.ts +4 -3
- package/dist/room/track/LocalTrack.js +6 -48
- package/dist/room/track/LocalTrack.js.map +1 -1
- package/dist/room/track/LocalVideoTrack.d.ts +13 -4
- package/dist/room/track/LocalVideoTrack.js +150 -57
- package/dist/room/track/LocalVideoTrack.js.map +1 -1
- package/dist/room/track/LocalVideoTrack.test.d.ts +1 -0
- package/dist/room/track/LocalVideoTrack.test.js +68 -0
- package/dist/room/track/LocalVideoTrack.test.js.map +1 -0
- package/dist/room/track/RemoteAudioTrack.d.ts +7 -0
- package/dist/room/track/RemoteAudioTrack.js +61 -0
- package/dist/room/track/RemoteAudioTrack.js.map +1 -1
- package/dist/room/track/RemoteTrackPublication.d.ts +2 -3
- package/dist/room/track/RemoteTrackPublication.js +11 -10
- package/dist/room/track/RemoteTrackPublication.js.map +1 -1
- package/dist/room/track/RemoteVideoTrack.d.ts +10 -6
- package/dist/room/track/RemoteVideoTrack.js +97 -44
- package/dist/room/track/RemoteVideoTrack.js.map +1 -1
- package/dist/room/track/Track.d.ts +10 -2
- package/dist/room/track/Track.js +29 -2
- package/dist/room/track/Track.js.map +1 -1
- package/dist/room/track/create.d.ts +4 -6
- package/dist/room/track/create.js +10 -57
- package/dist/room/track/create.js.map +1 -1
- 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/track/options.d.ts +15 -65
- package/dist/room/track/options.js +14 -13
- package/dist/room/track/options.js.map +1 -1
- package/dist/room/track/utils.d.ts +3 -0
- package/dist/room/track/utils.js +68 -0
- package/dist/room/track/utils.js.map +1 -0
- package/dist/room/track/utils.test.d.ts +1 -0
- package/dist/room/track/utils.test.js +85 -0
- package/dist/room/track/utils.test.js.map +1 -0
- package/dist/room/utils.d.ts +7 -1
- package/dist/room/utils.js +29 -6
- package/dist/room/utils.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/example/index.html +194 -178
- package/example/sample.ts +454 -325
- package/example/styles.css +144 -0
- package/example/webpack.config.js +1 -1
- package/jest.config.js +6 -0
- package/package.json +10 -7
- package/tsconfig.eslint.json +8 -1
- package/dist/room/defaults.d.ts +0 -5
- package/dist/room/defaults.js +0 -32
- package/dist/room/defaults.js.map +0 -1
package/example/index.html
CHANGED
@@ -15,16 +15,7 @@
|
|
15
15
|
crossorigin="anonymous"
|
16
16
|
/>
|
17
17
|
|
18
|
-
<
|
19
|
-
.video-container {
|
20
|
-
display: inline-block;
|
21
|
-
border-radius: 5px;
|
22
|
-
}
|
23
|
-
|
24
|
-
.video-container video.speaking {
|
25
|
-
border: 4px solid rgba(94, 166, 190, 0.7);
|
26
|
-
}
|
27
|
-
</style>
|
18
|
+
<link rel="stylesheet" href="styles.css">
|
28
19
|
</head>
|
29
20
|
|
30
21
|
<body>
|
@@ -33,200 +24,225 @@
|
|
33
24
|
<div class="col-md-8">
|
34
25
|
<h2>Livekit Sample App</h2>
|
35
26
|
<br/>
|
36
|
-
<
|
37
|
-
<div
|
38
|
-
<
|
39
|
-
|
40
|
-
|
27
|
+
<div id="connect-area">
|
28
|
+
<div>
|
29
|
+
<b>LiveKit URL</b>
|
30
|
+
</div>
|
31
|
+
<div>
|
41
32
|
<input
|
42
33
|
type="text"
|
43
|
-
class="form-control
|
34
|
+
class="form-control"
|
44
35
|
id="url"
|
45
36
|
value="ws://localhost:7880"
|
46
37
|
/>
|
47
38
|
</div>
|
48
|
-
|
49
|
-
|
50
|
-
<label for="token" class="col-md-3 col-form-label">Token</label>
|
51
|
-
<input type="text" class="form-control col-md-5" id="token" />
|
39
|
+
<div>
|
40
|
+
<b>Token</b>
|
52
41
|
</div>
|
53
|
-
|
54
|
-
|
55
|
-
<div class="col-md-2 offset-md-1">
|
56
|
-
<div class="form-check">
|
57
|
-
<input
|
58
|
-
type="checkbox"
|
59
|
-
class="form-check-input"
|
60
|
-
id="publish-option"
|
61
|
-
checked
|
62
|
-
/>
|
63
|
-
<label for="checkbox" class="form-check-label">
|
64
|
-
Publish
|
65
|
-
</label>
|
66
|
-
</div>
|
67
|
-
</div>
|
68
|
-
<div class="col-md-2">
|
69
|
-
<div class="form-check">
|
70
|
-
<input
|
71
|
-
type="checkbox"
|
72
|
-
class="form-check-input"
|
73
|
-
id="simulcast"
|
74
|
-
checked
|
75
|
-
/>
|
76
|
-
<label for="checkbox" class="form-check-label">
|
77
|
-
Simulcast
|
78
|
-
</label>
|
79
|
-
</div>
|
80
|
-
</div>
|
81
|
-
<div class="col-md-3">
|
82
|
-
<div class="form-check">
|
83
|
-
<input
|
84
|
-
type="checkbox"
|
85
|
-
class="form-check-input"
|
86
|
-
id="force-turn"
|
87
|
-
/>
|
88
|
-
<label for="checkbox" class="form-check-label">
|
89
|
-
Force TURN
|
90
|
-
</label>
|
91
|
-
</div>
|
92
|
-
</div>
|
42
|
+
<div>
|
43
|
+
<input type="text" class="form-control" id="token" />
|
93
44
|
</div>
|
45
|
+
</div>
|
94
46
|
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
<button
|
108
|
-
id="toggle-audio-button"
|
109
|
-
class="btn btn-secondary mt-1"
|
110
|
-
disabled
|
111
|
-
type="button"
|
112
|
-
onclick="toggleAudio()"
|
113
|
-
>
|
114
|
-
Enable Audio
|
115
|
-
</button>
|
116
|
-
<button
|
117
|
-
id="toggle-video-button"
|
118
|
-
class="btn btn-secondary mt-1"
|
119
|
-
disabled
|
120
|
-
type="button"
|
121
|
-
onclick="toggleVideo()"
|
122
|
-
>
|
123
|
-
Enable Video
|
124
|
-
</button>
|
125
|
-
<button
|
126
|
-
id="flip-video-button"
|
127
|
-
class="btn btn-secondary mt-1"
|
128
|
-
disabled
|
129
|
-
type="button"
|
130
|
-
onclick="flipVideo()"
|
131
|
-
>
|
132
|
-
Back Camera
|
133
|
-
</button>
|
134
|
-
<button
|
135
|
-
id="share-screen-button"
|
136
|
-
class="btn btn-secondary mt-1"
|
137
|
-
disabled
|
138
|
-
type="button"
|
139
|
-
onclick="shareScreen()"
|
140
|
-
>
|
141
|
-
Share Screen
|
142
|
-
</button>
|
143
|
-
<button
|
144
|
-
id="disconnect-ws-button"
|
145
|
-
class="btn btn-warning mt-1"
|
146
|
-
disabled
|
147
|
-
type="button"
|
148
|
-
onclick="disconnectSignal()"
|
149
|
-
>
|
150
|
-
WS Reconnect
|
151
|
-
</button>
|
152
|
-
<button
|
153
|
-
id="disconnect-room-button"
|
154
|
-
class="btn btn-danger mt-1"
|
155
|
-
disabled
|
156
|
-
type="button"
|
157
|
-
onclick="disconnectRoom()"
|
158
|
-
>
|
159
|
-
Disconnect
|
160
|
-
</button>
|
161
|
-
<button
|
162
|
-
id="start-audio-button"
|
163
|
-
class="btn btn-secondary mt-1"
|
164
|
-
disabled
|
165
|
-
type="button"
|
166
|
-
onclick="startAudio()"
|
167
|
-
>
|
168
|
-
Enable Audio
|
169
|
-
</button>
|
170
|
-
</div>
|
47
|
+
<!-- connect options -->
|
48
|
+
<div id="options-area">
|
49
|
+
<div>
|
50
|
+
<input
|
51
|
+
type="checkbox"
|
52
|
+
class="form-check-input"
|
53
|
+
id="publish-option"
|
54
|
+
checked
|
55
|
+
/>
|
56
|
+
<label for="publish-option" class="form-check-label">
|
57
|
+
Publish
|
58
|
+
</label>
|
171
59
|
</div>
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
<option selected>Audio Input (default)</option>
|
183
|
-
</select>
|
184
|
-
</div>
|
185
|
-
<div class="col-md-4">
|
186
|
-
<select id="audio-output" class="custom-select" onchange="handleDeviceSelected(event)">
|
187
|
-
<option selected>Audio Output (default)</option>
|
188
|
-
</select>
|
189
|
-
</div>
|
60
|
+
<div>
|
61
|
+
<input
|
62
|
+
type="checkbox"
|
63
|
+
class="form-check-input"
|
64
|
+
id="simulcast"
|
65
|
+
checked
|
66
|
+
/>
|
67
|
+
<label for="simulcast" class="form-check-label">
|
68
|
+
Simulcast
|
69
|
+
</label>
|
190
70
|
</div>
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
class="form-
|
195
|
-
id="
|
196
|
-
|
197
|
-
|
71
|
+
<div>
|
72
|
+
<input
|
73
|
+
type="checkbox"
|
74
|
+
class="form-check-input"
|
75
|
+
id="dynacast"
|
76
|
+
checked
|
77
|
+
/>
|
78
|
+
<label for="dynacast" class="form-check-label">
|
79
|
+
Dynacast
|
80
|
+
</label>
|
198
81
|
</div>
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
82
|
+
<div>
|
83
|
+
<input
|
84
|
+
type="checkbox"
|
85
|
+
class="form-check-input"
|
86
|
+
id="adaptive-stream"
|
87
|
+
checked
|
88
|
+
/>
|
89
|
+
<label for="adaptive-stream" class="form-check-label">
|
90
|
+
AdaptiveStream
|
91
|
+
</label>
|
92
|
+
</div>
|
93
|
+
<div>
|
94
|
+
<input
|
95
|
+
type="checkbox"
|
96
|
+
class="form-check-input"
|
97
|
+
id="force-turn"
|
98
|
+
/>
|
99
|
+
<label for="force-turn" class="form-check-label">
|
100
|
+
Force TURN
|
101
|
+
</label>
|
206
102
|
</div>
|
207
103
|
</div>
|
208
|
-
|
209
|
-
|
210
|
-
|
104
|
+
|
105
|
+
<!-- actions -->
|
106
|
+
<div id="actions-area">
|
107
|
+
<div>
|
108
|
+
<button
|
109
|
+
id="connect-button"
|
110
|
+
class="btn btn-primary mt-1"
|
111
|
+
type="button"
|
112
|
+
onclick="appActions.connectWithFormInput()"
|
113
|
+
>
|
114
|
+
Connect
|
115
|
+
</button>
|
211
116
|
</div>
|
212
|
-
<div
|
117
|
+
<div>
|
118
|
+
<button
|
119
|
+
id="toggle-audio-button"
|
120
|
+
class="btn btn-secondary mt-1"
|
121
|
+
disabled
|
122
|
+
type="button"
|
123
|
+
onclick="appActions.toggleAudio()"
|
124
|
+
>
|
125
|
+
Enable Mic
|
126
|
+
</button>
|
127
|
+
<button
|
128
|
+
id="toggle-video-button"
|
129
|
+
class="btn btn-secondary mt-1"
|
130
|
+
disabled
|
131
|
+
type="button"
|
132
|
+
onclick="appActions.toggleVideo()"
|
133
|
+
>
|
134
|
+
Enable Camera
|
135
|
+
</button>
|
136
|
+
<button
|
137
|
+
id="flip-video-button"
|
138
|
+
class="btn btn-secondary mt-1"
|
139
|
+
disabled
|
140
|
+
type="button"
|
141
|
+
onclick="appActions.flipVideo()"
|
142
|
+
>
|
143
|
+
Flip Camera
|
144
|
+
</button>
|
145
|
+
<button
|
146
|
+
id="share-screen-button"
|
147
|
+
class="btn btn-secondary mt-1"
|
148
|
+
disabled
|
149
|
+
type="button"
|
150
|
+
onclick="appActions.shareScreen()"
|
151
|
+
>
|
152
|
+
Share Screen
|
153
|
+
</button>
|
213
154
|
<button
|
214
|
-
|
155
|
+
id="disconnect-ws-button"
|
156
|
+
class="btn btn-warning mt-1"
|
157
|
+
disabled
|
215
158
|
type="button"
|
216
|
-
onclick="
|
159
|
+
onclick="appActions.disconnectSignal()"
|
217
160
|
>
|
218
|
-
|
161
|
+
Signal Reconnect
|
219
162
|
</button>
|
163
|
+
<button
|
164
|
+
id="disconnect-room-button"
|
165
|
+
class="btn btn-danger mt-1"
|
166
|
+
disabled
|
167
|
+
type="button"
|
168
|
+
onclick="appActions.disconnectRoom()"
|
169
|
+
>
|
170
|
+
Disconnect
|
171
|
+
</button>
|
172
|
+
<button
|
173
|
+
id="start-audio-button"
|
174
|
+
class="btn btn-secondary mt-1"
|
175
|
+
disabled
|
176
|
+
type="button"
|
177
|
+
onclick="appActions.startAudio()"
|
178
|
+
>
|
179
|
+
Start Audio
|
180
|
+
</button>
|
181
|
+
</div>
|
182
|
+
</div>
|
183
|
+
|
184
|
+
<div id="inputs-area">
|
185
|
+
<div>
|
186
|
+
<select id="video-input" class="custom-select" onchange="appActions.handleDeviceSelected(event)">
|
187
|
+
<option selected>Video Input (default)</option>
|
188
|
+
</select>
|
189
|
+
</div>
|
190
|
+
<div>
|
191
|
+
<select id="audio-input" class="custom-select" onchange="appActions.handleDeviceSelected(event)">
|
192
|
+
<option selected>Audio Input (default)</option>
|
193
|
+
</select>
|
194
|
+
</div>
|
195
|
+
<div>
|
196
|
+
<select id="audio-output" class="custom-select" onchange="appActions.handleDeviceSelected(event)">
|
197
|
+
<option selected>Audio Output (default)</option>
|
198
|
+
</select>
|
199
|
+
</div>
|
200
|
+
</div>
|
201
|
+
</div>
|
202
|
+
<div class="col-md-4">
|
203
|
+
<h3>Chat</h3>
|
204
|
+
<div id="chat-area">
|
205
|
+
<textarea class="form-control" id="chat" rows="9"></textarea>
|
206
|
+
<div id="chat-input-area">
|
207
|
+
<div>
|
208
|
+
<input type="text" class="form-control" id="entry"
|
209
|
+
placeholder="Type your message here" />
|
210
|
+
</div>
|
211
|
+
<div>
|
212
|
+
<button
|
213
|
+
id="send-button"
|
214
|
+
class="btn btn-primary"
|
215
|
+
type="button"
|
216
|
+
onclick="appActions.enterText()"
|
217
|
+
disabled
|
218
|
+
>
|
219
|
+
Send
|
220
|
+
</button>
|
221
|
+
</div>
|
220
222
|
</div>
|
221
223
|
</div>
|
222
224
|
</div>
|
223
225
|
</div>
|
224
226
|
|
225
|
-
<div
|
226
|
-
|
227
|
-
|
227
|
+
<div id="screenshare-area">
|
228
|
+
<div>
|
229
|
+
<span id="screenshare-info">
|
230
|
+
</span>
|
231
|
+
<span id="screenshare-resolution">
|
232
|
+
</span>
|
233
|
+
</div>
|
234
|
+
<video id="screenshare-video" autoplay playsinline></video>
|
235
|
+
</div>
|
236
|
+
|
237
|
+
<div id="participants-area">
|
238
|
+
</div>
|
239
|
+
|
240
|
+
<div id="log-area">
|
241
|
+
<textarea id="log"></textarea>
|
228
242
|
</div>
|
229
243
|
</div>
|
230
244
|
<script src="bundle.js"></script>
|
245
|
+
<!-- for icons -->
|
246
|
+
<script src="https://kit.fontawesome.com/7c1c4c7e9c.js" crossorigin="anonymous"></script>
|
231
247
|
</body>
|
232
248
|
</html>
|