@stream-io/video-client 1.27.4 → 1.28.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.
- package/CHANGELOG.md +12 -0
- package/dist/index.browser.es.js +97 -68
- package/dist/index.browser.es.js.map +1 -1
- package/dist/index.cjs.js +98 -67
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +97 -68
- package/dist/index.es.js.map +1 -1
- package/dist/src/Call.d.ts +6 -1
- package/dist/src/StreamVideoClient.d.ts +6 -0
- package/dist/src/gen/coordinator/index.d.ts +429 -0
- package/dist/src/helpers/clientUtils.d.ts +7 -0
- package/dist/src/store/stateStore.d.ts +0 -7
- package/package.json +1 -1
- package/src/Call.ts +13 -0
- package/src/StreamVideoClient.ts +63 -64
- package/src/__tests__/StreamVideoClient.ringing.test.ts +167 -0
- package/src/__tests__/clientTestUtils.ts +72 -0
- package/src/__tests__/data.ts +621 -0
- package/src/gen/coordinator/index.ts +429 -0
- package/src/helpers/__tests__/clientUtils.test.ts +8 -0
- package/src/helpers/clientUtils.ts +8 -0
- package/src/store/CallState.ts +2 -0
- package/src/store/stateStore.ts +0 -8
package/dist/src/Call.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Publisher, Subscriber } from './rtc';
|
|
2
2
|
import { CallState } from './store';
|
|
3
|
-
import type { AcceptCallResponse, BlockUserResponse, CallRingEvent, CallSettingsResponse, CollectUserFeedbackRequest, CollectUserFeedbackResponse, DeleteCallRequest, DeleteCallResponse, EndCallResponse, GetCallReportResponse, GetCallResponse, GetOrCreateCallRequest, GetOrCreateCallResponse, GoLiveRequest, GoLiveResponse, JoinCallResponse, ListRecordingsResponse, ListTranscriptionsResponse, MuteUsersResponse, PinRequest, PinResponse, QueryCallMembersRequest, QueryCallMembersResponse, RejectCallResponse, RequestPermissionRequest, RequestPermissionResponse, SendCallEventResponse, SendReactionRequest, SendReactionResponse, StartClosedCaptionsRequest, StartClosedCaptionsResponse, StartFrameRecordingRequest, StartFrameRecordingResponse, StartHLSBroadcastingResponse, StartRecordingRequest, StartRecordingResponse, StartRTMPBroadcastsRequest, StartRTMPBroadcastsResponse, StartTranscriptionRequest, StartTranscriptionResponse, StopAllRTMPBroadcastsResponse, StopClosedCaptionsRequest, StopClosedCaptionsResponse, StopFrameRecordingResponse, StopHLSBroadcastingResponse, StopLiveRequest, StopLiveResponse, StopRecordingResponse, StopRTMPBroadcastsResponse, StopTranscriptionResponse, UnblockUserResponse, UnpinRequest, UnpinResponse, UpdateCallMembersRequest, UpdateCallMembersResponse, UpdateCallRequest, UpdateCallResponse, UpdateUserPermissionsRequest, UpdateUserPermissionsResponse } from './gen/coordinator';
|
|
3
|
+
import type { AcceptCallResponse, BlockUserResponse, CallRingEvent, CallSettingsResponse, CollectUserFeedbackRequest, CollectUserFeedbackResponse, DeleteCallRequest, DeleteCallResponse, EndCallResponse, GetCallReportResponse, GetCallResponse, GetOrCreateCallRequest, GetOrCreateCallResponse, GoLiveRequest, GoLiveResponse, JoinCallResponse, KickUserRequest, KickUserResponse, ListRecordingsResponse, ListTranscriptionsResponse, MuteUsersResponse, PinRequest, PinResponse, QueryCallMembersRequest, QueryCallMembersResponse, RejectCallResponse, RequestPermissionRequest, RequestPermissionResponse, SendCallEventResponse, SendReactionRequest, SendReactionResponse, StartClosedCaptionsRequest, StartClosedCaptionsResponse, StartFrameRecordingRequest, StartFrameRecordingResponse, StartHLSBroadcastingResponse, StartRecordingRequest, StartRecordingResponse, StartRTMPBroadcastsRequest, StartRTMPBroadcastsResponse, StartTranscriptionRequest, StartTranscriptionResponse, StopAllRTMPBroadcastsResponse, StopClosedCaptionsRequest, StopClosedCaptionsResponse, StopFrameRecordingResponse, StopHLSBroadcastingResponse, StopLiveRequest, StopLiveResponse, StopRecordingResponse, StopRTMPBroadcastsResponse, StopTranscriptionResponse, UnblockUserResponse, UnpinRequest, UnpinResponse, UpdateCallMembersRequest, UpdateCallMembersResponse, UpdateCallRequest, UpdateCallResponse, UpdateUserPermissionsRequest, UpdateUserPermissionsResponse } from './gen/coordinator';
|
|
4
4
|
import { AudioTrackType, CallConstructor, CallLeaveOptions, ClientPublishOptions, ClosedCaptionsSettings, JoinCallData, TrackMuteType, VideoTrackType } from './types';
|
|
5
5
|
import { ClientCapability, TrackType, VideoDimension } from './gen/video/sfu/models/models';
|
|
6
6
|
import { Tracer } from './stats';
|
|
@@ -433,6 +433,11 @@ export declare class Call {
|
|
|
433
433
|
* @param userId the id of the user to unblock.
|
|
434
434
|
*/
|
|
435
435
|
unblockUser: (userId: string) => Promise<UnblockUserResponse>;
|
|
436
|
+
/**
|
|
437
|
+
* Kicks the user with the given `userId`.
|
|
438
|
+
* @param data the kick request.
|
|
439
|
+
*/
|
|
440
|
+
kickUser: (data: KickUserRequest) => Promise<KickUserResponse>;
|
|
436
441
|
/**
|
|
437
442
|
* Mutes the current user.
|
|
438
443
|
*
|
|
@@ -47,6 +47,11 @@ export declare class StreamVideoClient {
|
|
|
47
47
|
*/
|
|
48
48
|
get state(): StreamVideoReadOnlyStateStore;
|
|
49
49
|
private registerEffects;
|
|
50
|
+
/**
|
|
51
|
+
* Initializes a call from a call created or ringing event.
|
|
52
|
+
* @param e the event.
|
|
53
|
+
*/
|
|
54
|
+
private initCallFromEvent;
|
|
50
55
|
/**
|
|
51
56
|
* Connects the given user to the client.
|
|
52
57
|
* Only one user can connect at a time, if you want to change users, call `disconnectUser` before connecting a new user.
|
|
@@ -87,6 +92,7 @@ export declare class StreamVideoClient {
|
|
|
87
92
|
*
|
|
88
93
|
* @param type the type of the call.
|
|
89
94
|
* @param id the id of the call.
|
|
95
|
+
* @param options additional options for call creation.
|
|
90
96
|
*/
|
|
91
97
|
call: (type: string, id: string, options?: {
|
|
92
98
|
reuseInstance?: boolean;
|
|
@@ -1618,6 +1618,12 @@ export interface CallReportResponse {
|
|
|
1618
1618
|
* @interface CallRequest
|
|
1619
1619
|
*/
|
|
1620
1620
|
export interface CallRequest {
|
|
1621
|
+
/**
|
|
1622
|
+
*
|
|
1623
|
+
* @type {string}
|
|
1624
|
+
* @memberof CallRequest
|
|
1625
|
+
*/
|
|
1626
|
+
channel_cid?: string;
|
|
1621
1627
|
/**
|
|
1622
1628
|
*
|
|
1623
1629
|
* @type {{ [key: string]: any; }}
|
|
@@ -1681,6 +1687,12 @@ export interface CallResponse {
|
|
|
1681
1687
|
* @memberof CallResponse
|
|
1682
1688
|
*/
|
|
1683
1689
|
captioning: boolean;
|
|
1690
|
+
/**
|
|
1691
|
+
*
|
|
1692
|
+
* @type {string}
|
|
1693
|
+
* @memberof CallResponse
|
|
1694
|
+
*/
|
|
1695
|
+
channel_cid?: string;
|
|
1684
1696
|
/**
|
|
1685
1697
|
* The unique identifier for a call (<type>:<id>)
|
|
1686
1698
|
* @type {string}
|
|
@@ -2268,6 +2280,12 @@ export interface CallSettingsRequest {
|
|
|
2268
2280
|
* @memberof CallSettingsRequest
|
|
2269
2281
|
*/
|
|
2270
2282
|
geofencing?: GeofenceSettingsRequest;
|
|
2283
|
+
/**
|
|
2284
|
+
*
|
|
2285
|
+
* @type {IngressSettingsRequest}
|
|
2286
|
+
* @memberof CallSettingsRequest
|
|
2287
|
+
*/
|
|
2288
|
+
ingress?: IngressSettingsRequest;
|
|
2271
2289
|
/**
|
|
2272
2290
|
*
|
|
2273
2291
|
* @type {LimitsSettingsRequest}
|
|
@@ -2353,6 +2371,12 @@ export interface CallSettingsResponse {
|
|
|
2353
2371
|
* @memberof CallSettingsResponse
|
|
2354
2372
|
*/
|
|
2355
2373
|
geofencing: GeofenceSettingsResponse;
|
|
2374
|
+
/**
|
|
2375
|
+
*
|
|
2376
|
+
* @type {IngressSettingsResponse}
|
|
2377
|
+
* @memberof CallSettingsResponse
|
|
2378
|
+
*/
|
|
2379
|
+
ingress?: IngressSettingsResponse;
|
|
2356
2380
|
/**
|
|
2357
2381
|
*
|
|
2358
2382
|
* @type {LimitsSettingsResponse}
|
|
@@ -2732,6 +2756,75 @@ export interface CallUpdatedEvent {
|
|
|
2732
2756
|
*/
|
|
2733
2757
|
type: string;
|
|
2734
2758
|
}
|
|
2759
|
+
/**
|
|
2760
|
+
* This event is sent when a user submits feedback for a call.
|
|
2761
|
+
* @export
|
|
2762
|
+
* @interface CallUserFeedbackSubmittedEvent
|
|
2763
|
+
*/
|
|
2764
|
+
export interface CallUserFeedbackSubmittedEvent {
|
|
2765
|
+
/**
|
|
2766
|
+
*
|
|
2767
|
+
* @type {string}
|
|
2768
|
+
* @memberof CallUserFeedbackSubmittedEvent
|
|
2769
|
+
*/
|
|
2770
|
+
call_cid: string;
|
|
2771
|
+
/**
|
|
2772
|
+
*
|
|
2773
|
+
* @type {string}
|
|
2774
|
+
* @memberof CallUserFeedbackSubmittedEvent
|
|
2775
|
+
*/
|
|
2776
|
+
created_at: string;
|
|
2777
|
+
/**
|
|
2778
|
+
* Custom data provided by the user
|
|
2779
|
+
* @type {{ [key: string]: any; }}
|
|
2780
|
+
* @memberof CallUserFeedbackSubmittedEvent
|
|
2781
|
+
*/
|
|
2782
|
+
custom?: {
|
|
2783
|
+
[key: string]: any;
|
|
2784
|
+
};
|
|
2785
|
+
/**
|
|
2786
|
+
* The rating given by the user (1-5)
|
|
2787
|
+
* @type {number}
|
|
2788
|
+
* @memberof CallUserFeedbackSubmittedEvent
|
|
2789
|
+
*/
|
|
2790
|
+
rating: number;
|
|
2791
|
+
/**
|
|
2792
|
+
* The reason provided by the user for the rating
|
|
2793
|
+
* @type {string}
|
|
2794
|
+
* @memberof CallUserFeedbackSubmittedEvent
|
|
2795
|
+
*/
|
|
2796
|
+
reason?: string;
|
|
2797
|
+
/**
|
|
2798
|
+
*
|
|
2799
|
+
* @type {string}
|
|
2800
|
+
* @memberof CallUserFeedbackSubmittedEvent
|
|
2801
|
+
*/
|
|
2802
|
+
sdk?: string;
|
|
2803
|
+
/**
|
|
2804
|
+
*
|
|
2805
|
+
* @type {string}
|
|
2806
|
+
* @memberof CallUserFeedbackSubmittedEvent
|
|
2807
|
+
*/
|
|
2808
|
+
sdk_version?: string;
|
|
2809
|
+
/**
|
|
2810
|
+
* Call session ID
|
|
2811
|
+
* @type {string}
|
|
2812
|
+
* @memberof CallUserFeedbackSubmittedEvent
|
|
2813
|
+
*/
|
|
2814
|
+
session_id: string;
|
|
2815
|
+
/**
|
|
2816
|
+
* The type of event, "call.user_feedback" in this case
|
|
2817
|
+
* @type {string}
|
|
2818
|
+
* @memberof CallUserFeedbackSubmittedEvent
|
|
2819
|
+
*/
|
|
2820
|
+
type: string;
|
|
2821
|
+
/**
|
|
2822
|
+
*
|
|
2823
|
+
* @type {UserResponse}
|
|
2824
|
+
* @memberof CallUserFeedbackSubmittedEvent
|
|
2825
|
+
*/
|
|
2826
|
+
user: UserResponse;
|
|
2827
|
+
}
|
|
2735
2828
|
/**
|
|
2736
2829
|
* This event is sent when a call member is muted
|
|
2737
2830
|
* @export
|
|
@@ -4059,6 +4152,226 @@ export interface ICEServer {
|
|
|
4059
4152
|
*/
|
|
4060
4153
|
username: string;
|
|
4061
4154
|
}
|
|
4155
|
+
/**
|
|
4156
|
+
*
|
|
4157
|
+
* @export
|
|
4158
|
+
* @interface IngressAudioEncodingOptionsRequest
|
|
4159
|
+
*/
|
|
4160
|
+
export interface IngressAudioEncodingOptionsRequest {
|
|
4161
|
+
/**
|
|
4162
|
+
*
|
|
4163
|
+
* @type {number}
|
|
4164
|
+
* @memberof IngressAudioEncodingOptionsRequest
|
|
4165
|
+
*/
|
|
4166
|
+
bitrate: number;
|
|
4167
|
+
/**
|
|
4168
|
+
*
|
|
4169
|
+
* @type {number}
|
|
4170
|
+
* @memberof IngressAudioEncodingOptionsRequest
|
|
4171
|
+
*/
|
|
4172
|
+
channels: IngressAudioEncodingOptionsRequestChannelsEnum;
|
|
4173
|
+
/**
|
|
4174
|
+
*
|
|
4175
|
+
* @type {boolean}
|
|
4176
|
+
* @memberof IngressAudioEncodingOptionsRequest
|
|
4177
|
+
*/
|
|
4178
|
+
enable_dtx?: boolean;
|
|
4179
|
+
}
|
|
4180
|
+
/**
|
|
4181
|
+
* @export
|
|
4182
|
+
*/
|
|
4183
|
+
export declare const IngressAudioEncodingOptionsRequestChannelsEnum: {
|
|
4184
|
+
readonly NUMBER_1: 1;
|
|
4185
|
+
readonly NUMBER_2: 2;
|
|
4186
|
+
};
|
|
4187
|
+
export type IngressAudioEncodingOptionsRequestChannelsEnum = (typeof IngressAudioEncodingOptionsRequestChannelsEnum)[keyof typeof IngressAudioEncodingOptionsRequestChannelsEnum];
|
|
4188
|
+
/**
|
|
4189
|
+
*
|
|
4190
|
+
* @export
|
|
4191
|
+
* @interface IngressAudioEncodingResponse
|
|
4192
|
+
*/
|
|
4193
|
+
export interface IngressAudioEncodingResponse {
|
|
4194
|
+
/**
|
|
4195
|
+
*
|
|
4196
|
+
* @type {number}
|
|
4197
|
+
* @memberof IngressAudioEncodingResponse
|
|
4198
|
+
*/
|
|
4199
|
+
bitrate: number;
|
|
4200
|
+
/**
|
|
4201
|
+
*
|
|
4202
|
+
* @type {number}
|
|
4203
|
+
* @memberof IngressAudioEncodingResponse
|
|
4204
|
+
*/
|
|
4205
|
+
channels: number;
|
|
4206
|
+
/**
|
|
4207
|
+
*
|
|
4208
|
+
* @type {boolean}
|
|
4209
|
+
* @memberof IngressAudioEncodingResponse
|
|
4210
|
+
*/
|
|
4211
|
+
enable_dtx: boolean;
|
|
4212
|
+
}
|
|
4213
|
+
/**
|
|
4214
|
+
*
|
|
4215
|
+
* @export
|
|
4216
|
+
* @interface IngressSettingsRequest
|
|
4217
|
+
*/
|
|
4218
|
+
export interface IngressSettingsRequest {
|
|
4219
|
+
/**
|
|
4220
|
+
*
|
|
4221
|
+
* @type {IngressAudioEncodingOptionsRequest}
|
|
4222
|
+
* @memberof IngressSettingsRequest
|
|
4223
|
+
*/
|
|
4224
|
+
audio_encoding_options?: IngressAudioEncodingOptionsRequest;
|
|
4225
|
+
/**
|
|
4226
|
+
*
|
|
4227
|
+
* @type {boolean}
|
|
4228
|
+
* @memberof IngressSettingsRequest
|
|
4229
|
+
*/
|
|
4230
|
+
enabled?: boolean;
|
|
4231
|
+
/**
|
|
4232
|
+
*
|
|
4233
|
+
* @type {{ [key: string]: IngressVideoEncodingOptionsRequest; }}
|
|
4234
|
+
* @memberof IngressSettingsRequest
|
|
4235
|
+
*/
|
|
4236
|
+
video_encoding_options?: {
|
|
4237
|
+
[key: string]: IngressVideoEncodingOptionsRequest;
|
|
4238
|
+
};
|
|
4239
|
+
}
|
|
4240
|
+
/**
|
|
4241
|
+
*
|
|
4242
|
+
* @export
|
|
4243
|
+
* @interface IngressSettingsResponse
|
|
4244
|
+
*/
|
|
4245
|
+
export interface IngressSettingsResponse {
|
|
4246
|
+
/**
|
|
4247
|
+
*
|
|
4248
|
+
* @type {IngressAudioEncodingResponse}
|
|
4249
|
+
* @memberof IngressSettingsResponse
|
|
4250
|
+
*/
|
|
4251
|
+
audio_encoding_options?: IngressAudioEncodingResponse;
|
|
4252
|
+
/**
|
|
4253
|
+
*
|
|
4254
|
+
* @type {boolean}
|
|
4255
|
+
* @memberof IngressSettingsResponse
|
|
4256
|
+
*/
|
|
4257
|
+
enabled: boolean;
|
|
4258
|
+
/**
|
|
4259
|
+
*
|
|
4260
|
+
* @type {{ [key: string]: IngressVideoEncodingResponse; }}
|
|
4261
|
+
* @memberof IngressSettingsResponse
|
|
4262
|
+
*/
|
|
4263
|
+
video_encoding_options?: {
|
|
4264
|
+
[key: string]: IngressVideoEncodingResponse;
|
|
4265
|
+
};
|
|
4266
|
+
}
|
|
4267
|
+
/**
|
|
4268
|
+
*
|
|
4269
|
+
* @export
|
|
4270
|
+
* @interface IngressVideoEncodingOptionsRequest
|
|
4271
|
+
*/
|
|
4272
|
+
export interface IngressVideoEncodingOptionsRequest {
|
|
4273
|
+
/**
|
|
4274
|
+
*
|
|
4275
|
+
* @type {Array<IngressVideoLayerRequest>}
|
|
4276
|
+
* @memberof IngressVideoEncodingOptionsRequest
|
|
4277
|
+
*/
|
|
4278
|
+
layers: Array<IngressVideoLayerRequest>;
|
|
4279
|
+
}
|
|
4280
|
+
/**
|
|
4281
|
+
*
|
|
4282
|
+
* @export
|
|
4283
|
+
* @interface IngressVideoEncodingResponse
|
|
4284
|
+
*/
|
|
4285
|
+
export interface IngressVideoEncodingResponse {
|
|
4286
|
+
/**
|
|
4287
|
+
*
|
|
4288
|
+
* @type {Array<IngressVideoLayerResponse>}
|
|
4289
|
+
* @memberof IngressVideoEncodingResponse
|
|
4290
|
+
*/
|
|
4291
|
+
layers: Array<IngressVideoLayerResponse>;
|
|
4292
|
+
}
|
|
4293
|
+
/**
|
|
4294
|
+
*
|
|
4295
|
+
* @export
|
|
4296
|
+
* @interface IngressVideoLayerRequest
|
|
4297
|
+
*/
|
|
4298
|
+
export interface IngressVideoLayerRequest {
|
|
4299
|
+
/**
|
|
4300
|
+
*
|
|
4301
|
+
* @type {number}
|
|
4302
|
+
* @memberof IngressVideoLayerRequest
|
|
4303
|
+
*/
|
|
4304
|
+
bitrate: number;
|
|
4305
|
+
/**
|
|
4306
|
+
*
|
|
4307
|
+
* @type {string}
|
|
4308
|
+
* @memberof IngressVideoLayerRequest
|
|
4309
|
+
*/
|
|
4310
|
+
codec: IngressVideoLayerRequestCodecEnum;
|
|
4311
|
+
/**
|
|
4312
|
+
*
|
|
4313
|
+
* @type {number}
|
|
4314
|
+
* @memberof IngressVideoLayerRequest
|
|
4315
|
+
*/
|
|
4316
|
+
frame_rate_limit: number;
|
|
4317
|
+
/**
|
|
4318
|
+
*
|
|
4319
|
+
* @type {number}
|
|
4320
|
+
* @memberof IngressVideoLayerRequest
|
|
4321
|
+
*/
|
|
4322
|
+
max_dimension: number;
|
|
4323
|
+
/**
|
|
4324
|
+
*
|
|
4325
|
+
* @type {number}
|
|
4326
|
+
* @memberof IngressVideoLayerRequest
|
|
4327
|
+
*/
|
|
4328
|
+
min_dimension: number;
|
|
4329
|
+
}
|
|
4330
|
+
/**
|
|
4331
|
+
* @export
|
|
4332
|
+
*/
|
|
4333
|
+
export declare const IngressVideoLayerRequestCodecEnum: {
|
|
4334
|
+
readonly H264: "h264";
|
|
4335
|
+
readonly VP8: "vp8";
|
|
4336
|
+
};
|
|
4337
|
+
export type IngressVideoLayerRequestCodecEnum = (typeof IngressVideoLayerRequestCodecEnum)[keyof typeof IngressVideoLayerRequestCodecEnum];
|
|
4338
|
+
/**
|
|
4339
|
+
*
|
|
4340
|
+
* @export
|
|
4341
|
+
* @interface IngressVideoLayerResponse
|
|
4342
|
+
*/
|
|
4343
|
+
export interface IngressVideoLayerResponse {
|
|
4344
|
+
/**
|
|
4345
|
+
*
|
|
4346
|
+
* @type {number}
|
|
4347
|
+
* @memberof IngressVideoLayerResponse
|
|
4348
|
+
*/
|
|
4349
|
+
bitrate: number;
|
|
4350
|
+
/**
|
|
4351
|
+
*
|
|
4352
|
+
* @type {string}
|
|
4353
|
+
* @memberof IngressVideoLayerResponse
|
|
4354
|
+
*/
|
|
4355
|
+
codec: string;
|
|
4356
|
+
/**
|
|
4357
|
+
*
|
|
4358
|
+
* @type {number}
|
|
4359
|
+
* @memberof IngressVideoLayerResponse
|
|
4360
|
+
*/
|
|
4361
|
+
frame_rate_limit: number;
|
|
4362
|
+
/**
|
|
4363
|
+
*
|
|
4364
|
+
* @type {number}
|
|
4365
|
+
* @memberof IngressVideoLayerResponse
|
|
4366
|
+
*/
|
|
4367
|
+
max_dimension: number;
|
|
4368
|
+
/**
|
|
4369
|
+
*
|
|
4370
|
+
* @type {number}
|
|
4371
|
+
* @memberof IngressVideoLayerResponse
|
|
4372
|
+
*/
|
|
4373
|
+
min_dimension: number;
|
|
4374
|
+
}
|
|
4062
4375
|
/**
|
|
4063
4376
|
*
|
|
4064
4377
|
* @export
|
|
@@ -4169,6 +4482,75 @@ export interface JoinCallResponse {
|
|
|
4169
4482
|
*/
|
|
4170
4483
|
stats_options: StatsOptions;
|
|
4171
4484
|
}
|
|
4485
|
+
/**
|
|
4486
|
+
* KickUserRequest is the payload for kicking a user from a call. Optionally block the user as well.
|
|
4487
|
+
* @export
|
|
4488
|
+
* @interface KickUserRequest
|
|
4489
|
+
*/
|
|
4490
|
+
export interface KickUserRequest {
|
|
4491
|
+
/**
|
|
4492
|
+
* If true, also block the user from rejoining the call
|
|
4493
|
+
* @type {boolean}
|
|
4494
|
+
* @memberof KickUserRequest
|
|
4495
|
+
*/
|
|
4496
|
+
block?: boolean;
|
|
4497
|
+
/**
|
|
4498
|
+
* The user to kick
|
|
4499
|
+
* @type {string}
|
|
4500
|
+
* @memberof KickUserRequest
|
|
4501
|
+
*/
|
|
4502
|
+
user_id: string;
|
|
4503
|
+
}
|
|
4504
|
+
/**
|
|
4505
|
+
* KickUserResponse is the payload for kicking a user from a call.
|
|
4506
|
+
* @export
|
|
4507
|
+
* @interface KickUserResponse
|
|
4508
|
+
*/
|
|
4509
|
+
export interface KickUserResponse {
|
|
4510
|
+
/**
|
|
4511
|
+
* Duration of the request in milliseconds
|
|
4512
|
+
* @type {string}
|
|
4513
|
+
* @memberof KickUserResponse
|
|
4514
|
+
*/
|
|
4515
|
+
duration: string;
|
|
4516
|
+
}
|
|
4517
|
+
/**
|
|
4518
|
+
* This event is sent to call participants to notify when a user is kicked from a call. Clients should make the kicked user leave the call UI.
|
|
4519
|
+
* @export
|
|
4520
|
+
* @interface KickedUserEvent
|
|
4521
|
+
*/
|
|
4522
|
+
export interface KickedUserEvent {
|
|
4523
|
+
/**
|
|
4524
|
+
*
|
|
4525
|
+
* @type {string}
|
|
4526
|
+
* @memberof KickedUserEvent
|
|
4527
|
+
*/
|
|
4528
|
+
call_cid: string;
|
|
4529
|
+
/**
|
|
4530
|
+
*
|
|
4531
|
+
* @type {string}
|
|
4532
|
+
* @memberof KickedUserEvent
|
|
4533
|
+
*/
|
|
4534
|
+
created_at: string;
|
|
4535
|
+
/**
|
|
4536
|
+
*
|
|
4537
|
+
* @type {UserResponse}
|
|
4538
|
+
* @memberof KickedUserEvent
|
|
4539
|
+
*/
|
|
4540
|
+
kicked_by_user?: UserResponse;
|
|
4541
|
+
/**
|
|
4542
|
+
* The type of event: "call.kicked_user" in this case
|
|
4543
|
+
* @type {string}
|
|
4544
|
+
* @memberof KickedUserEvent
|
|
4545
|
+
*/
|
|
4546
|
+
type: string;
|
|
4547
|
+
/**
|
|
4548
|
+
*
|
|
4549
|
+
* @type {UserResponse}
|
|
4550
|
+
* @memberof KickedUserEvent
|
|
4551
|
+
*/
|
|
4552
|
+
user: UserResponse;
|
|
4553
|
+
}
|
|
4172
4554
|
/**
|
|
4173
4555
|
*
|
|
4174
4556
|
* @export
|
|
@@ -4237,6 +4619,18 @@ export interface LimitsSettingsRequest {
|
|
|
4237
4619
|
* @memberof LimitsSettingsRequest
|
|
4238
4620
|
*/
|
|
4239
4621
|
max_participants?: number;
|
|
4622
|
+
/**
|
|
4623
|
+
*
|
|
4624
|
+
* @type {boolean}
|
|
4625
|
+
* @memberof LimitsSettingsRequest
|
|
4626
|
+
*/
|
|
4627
|
+
max_participants_exclude_owner?: boolean;
|
|
4628
|
+
/**
|
|
4629
|
+
*
|
|
4630
|
+
* @type {Array<string>}
|
|
4631
|
+
* @memberof LimitsSettingsRequest
|
|
4632
|
+
*/
|
|
4633
|
+
max_participants_exclude_roles?: Array<string>;
|
|
4240
4634
|
}
|
|
4241
4635
|
/**
|
|
4242
4636
|
*
|
|
@@ -4256,6 +4650,18 @@ export interface LimitsSettingsResponse {
|
|
|
4256
4650
|
* @memberof LimitsSettingsResponse
|
|
4257
4651
|
*/
|
|
4258
4652
|
max_participants?: number;
|
|
4653
|
+
/**
|
|
4654
|
+
*
|
|
4655
|
+
* @type {boolean}
|
|
4656
|
+
* @memberof LimitsSettingsResponse
|
|
4657
|
+
*/
|
|
4658
|
+
max_participants_exclude_owner?: boolean;
|
|
4659
|
+
/**
|
|
4660
|
+
*
|
|
4661
|
+
* @type {Array<string>}
|
|
4662
|
+
* @memberof LimitsSettingsResponse
|
|
4663
|
+
*/
|
|
4664
|
+
max_participants_exclude_roles: Array<string>;
|
|
4259
4665
|
}
|
|
4260
4666
|
/**
|
|
4261
4667
|
* List devices response
|
|
@@ -4528,6 +4934,7 @@ export declare const OwnCapability: {
|
|
|
4528
4934
|
readonly JOIN_BACKSTAGE: "join-backstage";
|
|
4529
4935
|
readonly JOIN_CALL: "join-call";
|
|
4530
4936
|
readonly JOIN_ENDED_CALL: "join-ended-call";
|
|
4937
|
+
readonly KICK_USER: "kick-user";
|
|
4531
4938
|
readonly MUTE_USERS: "mute-users";
|
|
4532
4939
|
readonly PIN_FOR_EVERYONE: "pin-for-everyone";
|
|
4533
4940
|
readonly READ_CALL: "read-call";
|
|
@@ -4557,6 +4964,12 @@ export type OwnCapability = (typeof OwnCapability)[keyof typeof OwnCapability];
|
|
|
4557
4964
|
* @interface OwnUserResponse
|
|
4558
4965
|
*/
|
|
4559
4966
|
export interface OwnUserResponse {
|
|
4967
|
+
/**
|
|
4968
|
+
*
|
|
4969
|
+
* @type {number}
|
|
4970
|
+
* @memberof OwnUserResponse
|
|
4971
|
+
*/
|
|
4972
|
+
avg_response_time?: number;
|
|
4560
4973
|
/**
|
|
4561
4974
|
*
|
|
4562
4975
|
* @type {Array<string>}
|
|
@@ -7067,6 +7480,12 @@ export interface UserRequest {
|
|
|
7067
7480
|
* @interface UserResponse
|
|
7068
7481
|
*/
|
|
7069
7482
|
export interface UserResponse {
|
|
7483
|
+
/**
|
|
7484
|
+
*
|
|
7485
|
+
* @type {number}
|
|
7486
|
+
* @memberof UserResponse
|
|
7487
|
+
*/
|
|
7488
|
+
avg_response_time?: number;
|
|
7070
7489
|
/**
|
|
7071
7490
|
*
|
|
7072
7491
|
* @type {Array<string>}
|
|
@@ -7168,6 +7587,12 @@ export interface UserResponse {
|
|
|
7168
7587
|
* @interface UserResponsePrivacyFields
|
|
7169
7588
|
*/
|
|
7170
7589
|
export interface UserResponsePrivacyFields {
|
|
7590
|
+
/**
|
|
7591
|
+
*
|
|
7592
|
+
* @type {number}
|
|
7593
|
+
* @memberof UserResponsePrivacyFields
|
|
7594
|
+
*/
|
|
7595
|
+
avg_response_time?: number;
|
|
7171
7596
|
/**
|
|
7172
7597
|
*
|
|
7173
7598
|
* @type {Array<string>}
|
|
@@ -7352,6 +7777,8 @@ export type VideoEvent = ({
|
|
|
7352
7777
|
} & CallHLSBroadcastingStartedEvent) | ({
|
|
7353
7778
|
type: 'call.hls_broadcasting_stopped';
|
|
7354
7779
|
} & CallHLSBroadcastingStoppedEvent) | ({
|
|
7780
|
+
type: 'call.kicked_user';
|
|
7781
|
+
} & KickedUserEvent) | ({
|
|
7355
7782
|
type: 'call.live_started';
|
|
7356
7783
|
} & CallLiveStartedEvent) | ({
|
|
7357
7784
|
type: 'call.member_added';
|
|
@@ -7418,6 +7845,8 @@ export type VideoEvent = ({
|
|
|
7418
7845
|
} & UnblockedUserEvent) | ({
|
|
7419
7846
|
type: 'call.updated';
|
|
7420
7847
|
} & CallUpdatedEvent) | ({
|
|
7848
|
+
type: 'call.user_feedback_submitted';
|
|
7849
|
+
} & CallUserFeedbackSubmittedEvent) | ({
|
|
7421
7850
|
type: 'call.user_muted';
|
|
7422
7851
|
} & CallUserMutedEvent) | ({
|
|
7423
7852
|
type: 'connection.error';
|
|
@@ -5,6 +5,13 @@ import type { StreamVideoClientOptions } from '../StreamVideoClient';
|
|
|
5
5
|
* Utility function to get the instance key.
|
|
6
6
|
*/
|
|
7
7
|
export declare const getInstanceKey: (apiKey: string, user: User) => string;
|
|
8
|
+
/**
|
|
9
|
+
* Returns a concurrency tag for call initialization.
|
|
10
|
+
* @internal
|
|
11
|
+
*
|
|
12
|
+
* @param cid the call cid.
|
|
13
|
+
*/
|
|
14
|
+
export declare const getCallInitConcurrencyTag: (cid: string) => string;
|
|
8
15
|
/**
|
|
9
16
|
* Creates a coordinator client.
|
|
10
17
|
*/
|
|
@@ -66,13 +66,6 @@ export declare class StreamVideoReadOnlyStateStore {
|
|
|
66
66
|
* A list of {@link Call} objects created/tracked by this client.
|
|
67
67
|
*/
|
|
68
68
|
calls$: Observable<Call[]>;
|
|
69
|
-
/**
|
|
70
|
-
* This method allows you the get the current value of a state variable.
|
|
71
|
-
*
|
|
72
|
-
* @param observable the observable to get the current value of.
|
|
73
|
-
* @returns the current value of the observable.
|
|
74
|
-
*/
|
|
75
|
-
getCurrentValue: <T>(observable$: Observable<T>) => T;
|
|
76
69
|
constructor(store: StreamVideoWriteableStateStore);
|
|
77
70
|
/**
|
|
78
71
|
* The current user connected over WS to the backend.
|
package/package.json
CHANGED
package/src/Call.ts
CHANGED
|
@@ -44,6 +44,8 @@ import type {
|
|
|
44
44
|
GoLiveResponse,
|
|
45
45
|
JoinCallRequest,
|
|
46
46
|
JoinCallResponse,
|
|
47
|
+
KickUserRequest,
|
|
48
|
+
KickUserResponse,
|
|
47
49
|
ListRecordingsResponse,
|
|
48
50
|
ListTranscriptionsResponse,
|
|
49
51
|
MuteUsersRequest,
|
|
@@ -1990,6 +1992,17 @@ export class Call {
|
|
|
1990
1992
|
);
|
|
1991
1993
|
};
|
|
1992
1994
|
|
|
1995
|
+
/**
|
|
1996
|
+
* Kicks the user with the given `userId`.
|
|
1997
|
+
* @param data the kick request.
|
|
1998
|
+
*/
|
|
1999
|
+
kickUser = async (data: KickUserRequest): Promise<KickUserResponse> => {
|
|
2000
|
+
return this.streamClient.post<KickUserResponse, KickUserRequest>(
|
|
2001
|
+
`${this.streamClientBasePath}/kick`,
|
|
2002
|
+
data,
|
|
2003
|
+
);
|
|
2004
|
+
};
|
|
2005
|
+
|
|
1993
2006
|
/**
|
|
1994
2007
|
* Mutes the current user.
|
|
1995
2008
|
*
|