@stream-io/node-sdk 0.4.12 → 0.4.14

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.
@@ -195,6 +195,8 @@ export interface AppResponseFields {
195
195
 
196
196
  enforce_unique_usernames: string;
197
197
 
198
+ guest_user_creation_disabled: boolean;
199
+
198
200
  image_moderation_enabled: boolean;
199
201
 
200
202
  moderation_enabled: boolean;
@@ -790,6 +792,62 @@ export interface CallEvent {
790
792
  issue_tags?: string[];
791
793
  }
792
794
 
795
+ export interface CallFrameRecordingFailedEvent {
796
+ call_cid: string;
797
+
798
+ created_at: Date;
799
+
800
+ egress_id: string;
801
+
802
+ call: CallResponse;
803
+
804
+ type: string;
805
+ }
806
+
807
+ export interface CallFrameRecordingFrameReadyEvent {
808
+ call_cid: string;
809
+
810
+ captured_at: Date;
811
+
812
+ created_at: Date;
813
+
814
+ egress_id: string;
815
+
816
+ session_id: string;
817
+
818
+ track_type: string;
819
+
820
+ url: string;
821
+
822
+ users: Record<string, UserResponse>;
823
+
824
+ type: string;
825
+ }
826
+
827
+ export interface CallFrameRecordingStartedEvent {
828
+ call_cid: string;
829
+
830
+ created_at: Date;
831
+
832
+ egress_id: string;
833
+
834
+ call: CallResponse;
835
+
836
+ type: string;
837
+ }
838
+
839
+ export interface CallFrameRecordingStoppedEvent {
840
+ call_cid: string;
841
+
842
+ created_at: Date;
843
+
844
+ egress_id: string;
845
+
846
+ call: CallResponse;
847
+
848
+ type: string;
849
+ }
850
+
793
851
  export interface CallHLSBroadcastingFailedEvent {
794
852
  call_cid: string;
795
853
 
@@ -1213,6 +1271,8 @@ export interface CallSettings {
1213
1271
 
1214
1272
  broadcasting?: BroadcastSettings;
1215
1273
 
1274
+ frame_recording?: FrameRecordSettings;
1275
+
1216
1276
  geofencing?: GeofenceSettings;
1217
1277
 
1218
1278
  limits?: LimitsSettings;
@@ -1239,6 +1299,8 @@ export interface CallSettingsRequest {
1239
1299
 
1240
1300
  broadcasting?: BroadcastSettingsRequest;
1241
1301
 
1302
+ frame_recording?: FrameRecordingSettingsRequest;
1303
+
1242
1304
  geofencing?: GeofenceSettingsRequest;
1243
1305
 
1244
1306
  limits?: LimitsSettingsRequest;
@@ -1265,6 +1327,8 @@ export interface CallSettingsResponse {
1265
1327
 
1266
1328
  broadcasting: BroadcastSettingsResponse;
1267
1329
 
1330
+ frame_recording: FrameRecordingSettingsResponse;
1331
+
1268
1332
  geofencing: GeofenceSettingsResponse;
1269
1333
 
1270
1334
  limits: LimitsSettingsResponse;
@@ -1950,6 +2014,7 @@ export const ChannelOwnCapability = {
1950
2014
  SEND_POLL: 'send-poll',
1951
2015
  SEND_REACTION: 'send-reaction',
1952
2016
  SEND_REPLY: 'send-reply',
2017
+ SEND_RESTRICTED_VISIBILITY_MESSAGE: 'send-restricted-visibility-message',
1953
2018
  SEND_TYPING_EVENTS: 'send-typing-events',
1954
2019
  SET_CHANNEL_COOLDOWN: 'set-channel-cooldown',
1955
2020
  SKIP_SLOW_MODE: 'skip-slow-mode',
@@ -2358,10 +2423,10 @@ export interface CollectUserFeedbackRequest {
2358
2423
 
2359
2424
  sdk_version: string;
2360
2425
 
2361
- user_session_id: string;
2362
-
2363
2426
  reason?: string;
2364
2427
 
2428
+ user_session_id?: string;
2429
+
2365
2430
  custom?: Record<string, any>;
2366
2431
  }
2367
2432
 
@@ -3104,6 +3169,8 @@ export interface EgressResponse {
3104
3169
 
3105
3170
  rtmps: EgressRTMPResponse[];
3106
3171
 
3172
+ frame_recording?: FrameRecordingResponse;
3173
+
3107
3174
  hls?: EgressHLSResponse;
3108
3175
  }
3109
3176
 
@@ -3571,6 +3638,34 @@ export interface FlagUpdatedEvent {
3571
3638
  user?: UserResponse;
3572
3639
  }
3573
3640
 
3641
+ export interface FrameRecordSettings {
3642
+ capture_interval_in_seconds: number;
3643
+
3644
+ mode: 'available' | 'disabled' | 'auto-on';
3645
+
3646
+ quality?: string;
3647
+ }
3648
+
3649
+ export interface FrameRecordingResponse {
3650
+ status: string;
3651
+ }
3652
+
3653
+ export interface FrameRecordingSettingsRequest {
3654
+ capture_interval_in_seconds: number;
3655
+
3656
+ mode: 'available' | 'disabled' | 'auto-on';
3657
+
3658
+ quality?: '360p' | '480p' | '720p' | '1080p' | '1440p';
3659
+ }
3660
+
3661
+ export interface FrameRecordingSettingsResponse {
3662
+ capture_interval_in_seconds: number;
3663
+
3664
+ mode: 'available' | 'disabled' | 'auto-on';
3665
+
3666
+ quality?: string;
3667
+ }
3668
+
3574
3669
  export interface FullUserResponse {
3575
3670
  banned: boolean;
3576
3671
 
@@ -3909,6 +4004,18 @@ export interface GetMessageResponse {
3909
4004
  pending_message_metadata?: Record<string, string>;
3910
4005
  }
3911
4006
 
4007
+ export interface GetModerationAnalyticsRequest {
4008
+ end_date?: string;
4009
+
4010
+ start_date?: string;
4011
+ }
4012
+
4013
+ export interface GetModerationAnalyticsResponse {
4014
+ duration: string;
4015
+
4016
+ analytics?: ModerationAnalytics;
4017
+ }
4018
+
3912
4019
  export interface GetOGResponse {
3913
4020
  duration: string;
3914
4021
 
@@ -4544,6 +4651,8 @@ export interface Message {
4544
4651
 
4545
4652
  own_reactions: Reaction[];
4546
4653
 
4654
+ restricted_visibility: string[];
4655
+
4547
4656
  custom: Record<string, any>;
4548
4657
 
4549
4658
  reaction_counts: Record<string, number>;
@@ -4806,6 +4915,8 @@ export interface MessageRequest {
4806
4915
 
4807
4916
  mentioned_users?: string[];
4808
4917
 
4918
+ restricted_visibility?: string[];
4919
+
4809
4920
  custom?: Record<string, any>;
4810
4921
 
4811
4922
  user?: UserRequest;
@@ -4844,6 +4955,8 @@ export interface MessageResponse {
4844
4955
 
4845
4956
  own_reactions: ReactionResponse[];
4846
4957
 
4958
+ restricted_visibility: string[];
4959
+
4847
4960
  custom: Record<string, any>;
4848
4961
 
4849
4962
  reaction_counts: Record<string, number>;
@@ -4982,6 +5095,8 @@ export interface MessageWithChannelResponse {
4982
5095
 
4983
5096
  own_reactions: ReactionResponse[];
4984
5097
 
5098
+ restricted_visibility: string[];
5099
+
4985
5100
  channel: ChannelResponse;
4986
5101
 
4987
5102
  custom: Record<string, any>;
@@ -5043,6 +5158,36 @@ export interface ModerationActionConfig {
5043
5158
  custom: Record<string, any>;
5044
5159
  }
5045
5160
 
5161
+ export interface ModerationAnalytics {
5162
+ total_items_moderated: number;
5163
+
5164
+ ai_image_harms: Array<Record<string, any>>;
5165
+
5166
+ ai_text_harms: Array<Record<string, any>>;
5167
+
5168
+ ai_video_harms: Array<Record<string, any>>;
5169
+
5170
+ blocklist_by_list: Array<Record<string, any>>;
5171
+
5172
+ blocklist_matches: Array<Record<string, any>>;
5173
+
5174
+ model_accuracy: Array<Record<string, any>>;
5175
+
5176
+ moderator_actions: Array<Record<string, any>>;
5177
+
5178
+ moderator_productivity: Array<Record<string, any>>;
5179
+
5180
+ semantic_filter_top_matches: Array<Record<string, any>>;
5181
+
5182
+ sla_metrics: Array<Record<string, any>>;
5183
+
5184
+ usage_metrics: Array<Record<string, any>>;
5185
+
5186
+ action_distribution_over_time: Record<string, Record<string, any>>;
5187
+
5188
+ detection_by_engine_over_time: Record<string, Record<string, any>>;
5189
+ }
5190
+
5046
5191
  export interface ModerationCustomActionEvent {
5047
5192
  created_at: Date;
5048
5193
 
@@ -5314,10 +5459,12 @@ export const OwnCapability = {
5314
5459
  SEND_VIDEO: 'send-video',
5315
5460
  START_BROADCAST_CALL: 'start-broadcast-call',
5316
5461
  START_CLOSED_CAPTIONS_CALL: 'start-closed-captions-call',
5462
+ START_FRAME_RECORD_CALL: 'start-frame-record-call',
5317
5463
  START_RECORD_CALL: 'start-record-call',
5318
5464
  START_TRANSCRIPTION_CALL: 'start-transcription-call',
5319
5465
  STOP_BROADCAST_CALL: 'stop-broadcast-call',
5320
5466
  STOP_CLOSED_CAPTIONS_CALL: 'stop-closed-captions-call',
5467
+ STOP_FRAME_RECORD_CALL: 'stop-frame-record-call',
5321
5468
  STOP_RECORD_CALL: 'stop-record-call',
5322
5469
  STOP_TRANSCRIPTION_CALL: 'stop-transcription-call',
5323
5470
  UPDATE_CALL: 'update-call',
@@ -6884,6 +7031,8 @@ export interface ReviewQueueItemResponse {
6884
7031
 
6885
7032
  reviewed_at?: Date;
6886
7033
 
7034
+ teams?: string[];
7035
+
6887
7036
  assigned_to?: UserResponse;
6888
7037
 
6889
7038
  entity_creator?: EntityCreatorResponse;
@@ -7048,6 +7197,8 @@ export interface SearchResultMessage {
7048
7197
 
7049
7198
  own_reactions: ReactionResponse[];
7050
7199
 
7200
+ restricted_visibility: string[];
7201
+
7051
7202
  custom: Record<string, any>;
7052
7203
 
7053
7204
  reaction_counts: Record<string, number>;
@@ -7277,6 +7428,14 @@ export interface StartClosedCaptionsResponse {
7277
7428
  duration: string;
7278
7429
  }
7279
7430
 
7431
+ export interface StartFrameRecordingRequest {
7432
+ recording_external_storage?: string;
7433
+ }
7434
+
7435
+ export interface StartFrameRecordingResponse {
7436
+ duration: string;
7437
+ }
7438
+
7280
7439
  export interface StartHLSBroadcastingRequest {}
7281
7440
 
7282
7441
  export interface StartHLSBroadcastingResponse {
@@ -7329,6 +7488,12 @@ export interface StopClosedCaptionsResponse {
7329
7488
  duration: string;
7330
7489
  }
7331
7490
 
7491
+ export interface StopFrameRecordingRequest {}
7492
+
7493
+ export interface StopFrameRecordingResponse {
7494
+ duration: string;
7495
+ }
7496
+
7332
7497
  export interface StopHLSBroadcastingRequest {}
7333
7498
 
7334
7499
  export interface StopHLSBroadcastingResponse {
@@ -7943,6 +8108,8 @@ export interface UpdateAppRequest {
7943
8108
 
7944
8109
  feeds_v2_region?: string;
7945
8110
 
8111
+ guest_user_creation_disabled?: boolean;
8112
+
7946
8113
  image_moderation_enabled?: boolean;
7947
8114
 
7948
8115
  migrate_permissions_to_v2?: boolean;
@@ -12,6 +12,8 @@ import {
12
12
  FlagRequest,
13
13
  FlagResponse,
14
14
  GetConfigResponse,
15
+ GetModerationAnalyticsRequest,
16
+ GetModerationAnalyticsResponse,
15
17
  GetReviewQueueItemResponse,
16
18
  GetUserModerationReportResponse,
17
19
  ModeratorStatsResponse,
@@ -41,6 +43,23 @@ import {
41
43
  import { decoders } from '../model-decoders';
42
44
 
43
45
  export class ModerationApi extends BaseApi {
46
+ getModerationAnalytics = async (
47
+ request?: GetModerationAnalyticsRequest,
48
+ ): Promise<StreamResponse<GetModerationAnalyticsResponse>> => {
49
+ const body = {
50
+ end_date: request?.end_date,
51
+ start_date: request?.start_date,
52
+ };
53
+
54
+ const response = await this.sendRequest<
55
+ StreamResponse<GetModerationAnalyticsResponse>
56
+ >('POST', '/api/v2/moderation/analytics', undefined, undefined, body);
57
+
58
+ decoders.GetModerationAnalyticsResponse?.(response.body);
59
+
60
+ return { ...response.body, metadata: response.metadata };
61
+ };
62
+
44
63
  ban = async (request: BanRequest): Promise<StreamResponse<BanResponse>> => {
45
64
  const body = {
46
65
  target_user_id: request?.target_user_id,
@@ -27,6 +27,8 @@ import {
27
27
  SendCallEventResponse,
28
28
  StartClosedCaptionsRequest,
29
29
  StartClosedCaptionsResponse,
30
+ StartFrameRecordingRequest,
31
+ StartFrameRecordingResponse,
30
32
  StartHLSBroadcastingResponse,
31
33
  StartRTMPBroadcastsRequest,
32
34
  StartRTMPBroadcastsResponse,
@@ -37,6 +39,7 @@ import {
37
39
  StopAllRTMPBroadcastsResponse,
38
40
  StopClosedCaptionsRequest,
39
41
  StopClosedCaptionsResponse,
42
+ StopFrameRecordingResponse,
40
43
  StopHLSBroadcastingResponse,
41
44
  StopLiveRequest,
42
45
  StopLiveResponse,
@@ -124,7 +127,7 @@ export class CallApi {
124
127
  };
125
128
 
126
129
  collectUserFeedback = (
127
- request: CollectUserFeedbackRequest & { session: string },
130
+ request: CollectUserFeedbackRequest,
128
131
  ): Promise<StreamResponse<CollectUserFeedbackResponse>> => {
129
132
  return this.videoApi.collectUserFeedback({
130
133
  id: this.id,
@@ -226,6 +229,16 @@ export class CallApi {
226
229
  });
227
230
  };
228
231
 
232
+ startFrameRecording = (
233
+ request?: StartFrameRecordingRequest,
234
+ ): Promise<StreamResponse<StartFrameRecordingResponse>> => {
235
+ return this.videoApi.startFrameRecording({
236
+ id: this.id,
237
+ type: this.type,
238
+ ...request,
239
+ });
240
+ };
241
+
229
242
  startRecording = (
230
243
  request?: StartRecordingRequest,
231
244
  ): Promise<StreamResponse<StartRecordingResponse>> => {
@@ -272,6 +285,12 @@ export class CallApi {
272
285
  });
273
286
  };
274
287
 
288
+ stopFrameRecording = (): Promise<
289
+ StreamResponse<StopFrameRecordingResponse>
290
+ > => {
291
+ return this.videoApi.stopFrameRecording({ id: this.id, type: this.type });
292
+ };
293
+
275
294
  stopLive = (
276
295
  request?: StopLiveRequest,
277
296
  ): Promise<StreamResponse<StopLiveResponse>> => {
@@ -43,6 +43,8 @@ import {
43
43
  SendCallEventResponse,
44
44
  StartClosedCaptionsRequest,
45
45
  StartClosedCaptionsResponse,
46
+ StartFrameRecordingRequest,
47
+ StartFrameRecordingResponse,
46
48
  StartHLSBroadcastingResponse,
47
49
  StartRTMPBroadcastsRequest,
48
50
  StartRTMPBroadcastsResponse,
@@ -53,6 +55,7 @@ import {
53
55
  StopAllRTMPBroadcastsResponse,
54
56
  StopClosedCaptionsRequest,
55
57
  StopClosedCaptionsResponse,
58
+ StopFrameRecordingResponse,
56
59
  StopHLSBroadcastingResponse,
57
60
  StopLiveRequest,
58
61
  StopLiveResponse,
@@ -300,23 +303,18 @@ export class VideoApi extends BaseApi {
300
303
  };
301
304
 
302
305
  collectUserFeedback = async (
303
- request: CollectUserFeedbackRequest & {
304
- type: string;
305
- id: string;
306
- session: string;
307
- },
306
+ request: CollectUserFeedbackRequest & { type: string; id: string },
308
307
  ): Promise<StreamResponse<CollectUserFeedbackResponse>> => {
309
308
  const pathParams = {
310
309
  type: request?.type,
311
310
  id: request?.id,
312
- session: request?.session,
313
311
  };
314
312
  const body = {
315
313
  rating: request?.rating,
316
314
  sdk: request?.sdk,
317
315
  sdk_version: request?.sdk_version,
318
- user_session_id: request?.user_session_id,
319
316
  reason: request?.reason,
317
+ user_session_id: request?.user_session_id,
320
318
  custom: request?.custom,
321
319
  };
322
320
 
@@ -324,7 +322,7 @@ export class VideoApi extends BaseApi {
324
322
  StreamResponse<CollectUserFeedbackResponse>
325
323
  >(
326
324
  'POST',
327
- '/api/v2/video/call/{type}/{id}/feedback/{session}',
325
+ '/api/v2/video/call/{type}/{id}/feedback',
328
326
  pathParams,
329
327
  undefined,
330
328
  body,
@@ -643,6 +641,32 @@ export class VideoApi extends BaseApi {
643
641
  return { ...response.body, metadata: response.metadata };
644
642
  };
645
643
 
644
+ startFrameRecording = async (
645
+ request: StartFrameRecordingRequest & { type: string; id: string },
646
+ ): Promise<StreamResponse<StartFrameRecordingResponse>> => {
647
+ const pathParams = {
648
+ type: request?.type,
649
+ id: request?.id,
650
+ };
651
+ const body = {
652
+ recording_external_storage: request?.recording_external_storage,
653
+ };
654
+
655
+ const response = await this.sendRequest<
656
+ StreamResponse<StartFrameRecordingResponse>
657
+ >(
658
+ 'POST',
659
+ '/api/v2/video/call/{type}/{id}/start_frame_recording',
660
+ pathParams,
661
+ undefined,
662
+ body,
663
+ );
664
+
665
+ decoders.StartFrameRecordingResponse?.(response.body);
666
+
667
+ return { ...response.body, metadata: response.metadata };
668
+ };
669
+
646
670
  startRecording = async (
647
671
  request: StartRecordingRequest & { type: string; id: string },
648
672
  ): Promise<StreamResponse<StartRecordingResponse>> => {
@@ -771,6 +795,29 @@ export class VideoApi extends BaseApi {
771
795
  return { ...response.body, metadata: response.metadata };
772
796
  };
773
797
 
798
+ stopFrameRecording = async (request: {
799
+ type: string;
800
+ id: string;
801
+ }): Promise<StreamResponse<StopFrameRecordingResponse>> => {
802
+ const pathParams = {
803
+ type: request?.type,
804
+ id: request?.id,
805
+ };
806
+
807
+ const response = await this.sendRequest<
808
+ StreamResponse<StopFrameRecordingResponse>
809
+ >(
810
+ 'POST',
811
+ '/api/v2/video/call/{type}/{id}/stop_frame_recording',
812
+ pathParams,
813
+ undefined,
814
+ );
815
+
816
+ decoders.StopFrameRecordingResponse?.(response.body);
817
+
818
+ return { ...response.body, metadata: response.metadata };
819
+ };
820
+
774
821
  stopLive = async (
775
822
  request: StopLiveRequest & { type: string; id: string },
776
823
  ): Promise<StreamResponse<StopLiveResponse>> => {