@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.
- package/dist/index.cjs.js +2197 -2173
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.mjs +2180 -2173
- package/dist/index.es.mjs.map +1 -1
- package/dist/src/BaseApi.d.ts +1 -1
- package/dist/src/StreamVideoClient.d.ts +13 -0
- package/dist/src/gen/models/index.d.ts +101 -1
- package/dist/src/gen/moderation/ModerationApi.d.ts +2 -1
- package/dist/src/gen/video/CallApi.d.ts +4 -4
- package/dist/src/gen/video/VideoApi.d.ts +9 -2
- package/package.json +10 -1
- package/src/BaseApi.ts +1 -1
- package/src/StreamClient.ts +1 -0
- package/src/StreamVideoClient.ts +55 -0
- package/src/gen/common/CommonApi.ts +1 -0
- package/src/gen/models/index.ts +169 -2
- package/src/gen/moderation/ModerationApi.ts +19 -0
- package/src/gen/video/CallApi.ts +20 -1
- package/src/gen/video/VideoApi.ts +55 -8
package/dist/src/BaseApi.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ApiConfig, RequestMetadata } from './types';
|
|
2
2
|
export declare class BaseApi {
|
|
3
|
-
|
|
3
|
+
protected readonly apiConfig: ApiConfig;
|
|
4
4
|
constructor(apiConfig: ApiConfig);
|
|
5
5
|
protected sendRequest: <T>(method: string, url: string, pathParams?: Record<string, string>, queryParams?: Record<string, any>, body?: any) => Promise<{
|
|
6
6
|
body: T;
|
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
import { VideoApi } from './gen/video/VideoApi';
|
|
2
2
|
import { StreamCall } from './StreamCall';
|
|
3
|
+
import type { StreamClient } from './StreamClient';
|
|
4
|
+
import type { ApiConfig } from './types';
|
|
5
|
+
import type { RealtimeClient } from '@stream-io/openai-realtime-api';
|
|
3
6
|
export declare class StreamVideoClient extends VideoApi {
|
|
7
|
+
private readonly streamClient;
|
|
8
|
+
constructor({ streamClient, ...apiConfig }: ApiConfig & {
|
|
9
|
+
streamClient: StreamClient;
|
|
10
|
+
});
|
|
4
11
|
call: (type: string, id: string) => StreamCall;
|
|
12
|
+
connectOpenAi: (options: {
|
|
13
|
+
call: StreamCall;
|
|
14
|
+
agentUserId: string;
|
|
15
|
+
openAiApiKey: string;
|
|
16
|
+
validityInSeconds: number;
|
|
17
|
+
}) => Promise<RealtimeClient>;
|
|
5
18
|
}
|
|
@@ -107,6 +107,7 @@ export interface AppResponseFields {
|
|
|
107
107
|
disable_auth_checks: boolean;
|
|
108
108
|
disable_permissions_checks: boolean;
|
|
109
109
|
enforce_unique_usernames: string;
|
|
110
|
+
guest_user_creation_disabled: boolean;
|
|
110
111
|
image_moderation_enabled: boolean;
|
|
111
112
|
moderation_enabled: boolean;
|
|
112
113
|
moderation_multitenant_blocklist_enabled: boolean;
|
|
@@ -441,6 +442,38 @@ export interface CallEvent {
|
|
|
441
442
|
component?: string;
|
|
442
443
|
issue_tags?: string[];
|
|
443
444
|
}
|
|
445
|
+
export interface CallFrameRecordingFailedEvent {
|
|
446
|
+
call_cid: string;
|
|
447
|
+
created_at: Date;
|
|
448
|
+
egress_id: string;
|
|
449
|
+
call: CallResponse;
|
|
450
|
+
type: string;
|
|
451
|
+
}
|
|
452
|
+
export interface CallFrameRecordingFrameReadyEvent {
|
|
453
|
+
call_cid: string;
|
|
454
|
+
captured_at: Date;
|
|
455
|
+
created_at: Date;
|
|
456
|
+
egress_id: string;
|
|
457
|
+
session_id: string;
|
|
458
|
+
track_type: string;
|
|
459
|
+
url: string;
|
|
460
|
+
users: Record<string, UserResponse>;
|
|
461
|
+
type: string;
|
|
462
|
+
}
|
|
463
|
+
export interface CallFrameRecordingStartedEvent {
|
|
464
|
+
call_cid: string;
|
|
465
|
+
created_at: Date;
|
|
466
|
+
egress_id: string;
|
|
467
|
+
call: CallResponse;
|
|
468
|
+
type: string;
|
|
469
|
+
}
|
|
470
|
+
export interface CallFrameRecordingStoppedEvent {
|
|
471
|
+
call_cid: string;
|
|
472
|
+
created_at: Date;
|
|
473
|
+
egress_id: string;
|
|
474
|
+
call: CallResponse;
|
|
475
|
+
type: string;
|
|
476
|
+
}
|
|
444
477
|
export interface CallHLSBroadcastingFailedEvent {
|
|
445
478
|
call_cid: string;
|
|
446
479
|
created_at: Date;
|
|
@@ -686,6 +719,7 @@ export interface CallSettings {
|
|
|
686
719
|
audio?: AudioSettings;
|
|
687
720
|
backstage?: BackstageSettings;
|
|
688
721
|
broadcasting?: BroadcastSettings;
|
|
722
|
+
frame_recording?: FrameRecordSettings;
|
|
689
723
|
geofencing?: GeofenceSettings;
|
|
690
724
|
limits?: LimitsSettings;
|
|
691
725
|
recording?: RecordSettings;
|
|
@@ -700,6 +734,7 @@ export interface CallSettingsRequest {
|
|
|
700
734
|
audio?: AudioSettingsRequest;
|
|
701
735
|
backstage?: BackstageSettingsRequest;
|
|
702
736
|
broadcasting?: BroadcastSettingsRequest;
|
|
737
|
+
frame_recording?: FrameRecordingSettingsRequest;
|
|
703
738
|
geofencing?: GeofenceSettingsRequest;
|
|
704
739
|
limits?: LimitsSettingsRequest;
|
|
705
740
|
recording?: RecordSettingsRequest;
|
|
@@ -714,6 +749,7 @@ export interface CallSettingsResponse {
|
|
|
714
749
|
audio: AudioSettingsResponse;
|
|
715
750
|
backstage: BackstageSettingsResponse;
|
|
716
751
|
broadcasting: BroadcastSettingsResponse;
|
|
752
|
+
frame_recording: FrameRecordingSettingsResponse;
|
|
717
753
|
geofencing: GeofenceSettingsResponse;
|
|
718
754
|
limits: LimitsSettingsResponse;
|
|
719
755
|
recording: RecordSettingsResponse;
|
|
@@ -1105,6 +1141,7 @@ export declare const ChannelOwnCapability: {
|
|
|
1105
1141
|
readonly SEND_POLL: "send-poll";
|
|
1106
1142
|
readonly SEND_REACTION: "send-reaction";
|
|
1107
1143
|
readonly SEND_REPLY: "send-reply";
|
|
1144
|
+
readonly SEND_RESTRICTED_VISIBILITY_MESSAGE: "send-restricted-visibility-message";
|
|
1108
1145
|
readonly SEND_TYPING_EVENTS: "send-typing-events";
|
|
1109
1146
|
readonly SET_CHANNEL_COOLDOWN: "set-channel-cooldown";
|
|
1110
1147
|
readonly SKIP_SLOW_MODE: "skip-slow-mode";
|
|
@@ -1335,8 +1372,8 @@ export interface CollectUserFeedbackRequest {
|
|
|
1335
1372
|
rating: number;
|
|
1336
1373
|
sdk: string;
|
|
1337
1374
|
sdk_version: string;
|
|
1338
|
-
user_session_id: string;
|
|
1339
1375
|
reason?: string;
|
|
1376
|
+
user_session_id?: string;
|
|
1340
1377
|
custom?: Record<string, any>;
|
|
1341
1378
|
}
|
|
1342
1379
|
export interface CollectUserFeedbackResponse {
|
|
@@ -1782,6 +1819,7 @@ export interface EgressRTMPResponse {
|
|
|
1782
1819
|
export interface EgressResponse {
|
|
1783
1820
|
broadcasting: boolean;
|
|
1784
1821
|
rtmps: EgressRTMPResponse[];
|
|
1822
|
+
frame_recording?: FrameRecordingResponse;
|
|
1785
1823
|
hls?: EgressHLSResponse;
|
|
1786
1824
|
}
|
|
1787
1825
|
export interface EndCallRequest {
|
|
@@ -2049,6 +2087,24 @@ export interface FlagUpdatedEvent {
|
|
|
2049
2087
|
message?: MessageResponse;
|
|
2050
2088
|
user?: UserResponse;
|
|
2051
2089
|
}
|
|
2090
|
+
export interface FrameRecordSettings {
|
|
2091
|
+
capture_interval_in_seconds: number;
|
|
2092
|
+
mode: 'available' | 'disabled' | 'auto-on';
|
|
2093
|
+
quality?: string;
|
|
2094
|
+
}
|
|
2095
|
+
export interface FrameRecordingResponse {
|
|
2096
|
+
status: string;
|
|
2097
|
+
}
|
|
2098
|
+
export interface FrameRecordingSettingsRequest {
|
|
2099
|
+
capture_interval_in_seconds: number;
|
|
2100
|
+
mode: 'available' | 'disabled' | 'auto-on';
|
|
2101
|
+
quality?: '360p' | '480p' | '720p' | '1080p' | '1440p';
|
|
2102
|
+
}
|
|
2103
|
+
export interface FrameRecordingSettingsResponse {
|
|
2104
|
+
capture_interval_in_seconds: number;
|
|
2105
|
+
mode: 'available' | 'disabled' | 'auto-on';
|
|
2106
|
+
quality?: string;
|
|
2107
|
+
}
|
|
2052
2108
|
export interface FullUserResponse {
|
|
2053
2109
|
banned: boolean;
|
|
2054
2110
|
created_at: Date;
|
|
@@ -2238,6 +2294,14 @@ export interface GetMessageResponse {
|
|
|
2238
2294
|
message: MessageWithChannelResponse;
|
|
2239
2295
|
pending_message_metadata?: Record<string, string>;
|
|
2240
2296
|
}
|
|
2297
|
+
export interface GetModerationAnalyticsRequest {
|
|
2298
|
+
end_date?: string;
|
|
2299
|
+
start_date?: string;
|
|
2300
|
+
}
|
|
2301
|
+
export interface GetModerationAnalyticsResponse {
|
|
2302
|
+
duration: string;
|
|
2303
|
+
analytics?: ModerationAnalytics;
|
|
2304
|
+
}
|
|
2241
2305
|
export interface GetOGResponse {
|
|
2242
2306
|
duration: string;
|
|
2243
2307
|
custom: Record<string, any>;
|
|
@@ -2618,6 +2682,7 @@ export interface Message {
|
|
|
2618
2682
|
latest_reactions: Reaction[];
|
|
2619
2683
|
mentioned_users: User[];
|
|
2620
2684
|
own_reactions: Reaction[];
|
|
2685
|
+
restricted_visibility: string[];
|
|
2621
2686
|
custom: Record<string, any>;
|
|
2622
2687
|
reaction_counts: Record<string, number>;
|
|
2623
2688
|
reaction_groups: Record<string, ReactionGroupResponse>;
|
|
@@ -2760,6 +2825,7 @@ export interface MessageRequest {
|
|
|
2760
2825
|
user_id?: string;
|
|
2761
2826
|
attachments?: Attachment[];
|
|
2762
2827
|
mentioned_users?: string[];
|
|
2828
|
+
restricted_visibility?: string[];
|
|
2763
2829
|
custom?: Record<string, any>;
|
|
2764
2830
|
user?: UserRequest;
|
|
2765
2831
|
}
|
|
@@ -2780,6 +2846,7 @@ export interface MessageResponse {
|
|
|
2780
2846
|
latest_reactions: ReactionResponse[];
|
|
2781
2847
|
mentioned_users: UserResponse[];
|
|
2782
2848
|
own_reactions: ReactionResponse[];
|
|
2849
|
+
restricted_visibility: string[];
|
|
2783
2850
|
custom: Record<string, any>;
|
|
2784
2851
|
reaction_counts: Record<string, number>;
|
|
2785
2852
|
reaction_scores: Record<string, number>;
|
|
@@ -2854,6 +2921,7 @@ export interface MessageWithChannelResponse {
|
|
|
2854
2921
|
latest_reactions: ReactionResponse[];
|
|
2855
2922
|
mentioned_users: UserResponse[];
|
|
2856
2923
|
own_reactions: ReactionResponse[];
|
|
2924
|
+
restricted_visibility: string[];
|
|
2857
2925
|
channel: ChannelResponse;
|
|
2858
2926
|
custom: Record<string, any>;
|
|
2859
2927
|
reaction_counts: Record<string, number>;
|
|
@@ -2886,6 +2954,22 @@ export interface ModerationActionConfig {
|
|
|
2886
2954
|
order: number;
|
|
2887
2955
|
custom: Record<string, any>;
|
|
2888
2956
|
}
|
|
2957
|
+
export interface ModerationAnalytics {
|
|
2958
|
+
total_items_moderated: number;
|
|
2959
|
+
ai_image_harms: Array<Record<string, any>>;
|
|
2960
|
+
ai_text_harms: Array<Record<string, any>>;
|
|
2961
|
+
ai_video_harms: Array<Record<string, any>>;
|
|
2962
|
+
blocklist_by_list: Array<Record<string, any>>;
|
|
2963
|
+
blocklist_matches: Array<Record<string, any>>;
|
|
2964
|
+
model_accuracy: Array<Record<string, any>>;
|
|
2965
|
+
moderator_actions: Array<Record<string, any>>;
|
|
2966
|
+
moderator_productivity: Array<Record<string, any>>;
|
|
2967
|
+
semantic_filter_top_matches: Array<Record<string, any>>;
|
|
2968
|
+
sla_metrics: Array<Record<string, any>>;
|
|
2969
|
+
usage_metrics: Array<Record<string, any>>;
|
|
2970
|
+
action_distribution_over_time: Record<string, Record<string, any>>;
|
|
2971
|
+
detection_by_engine_over_time: Record<string, Record<string, any>>;
|
|
2972
|
+
}
|
|
2889
2973
|
export interface ModerationCustomActionEvent {
|
|
2890
2974
|
created_at: Date;
|
|
2891
2975
|
type: string;
|
|
@@ -3053,10 +3137,12 @@ export declare const OwnCapability: {
|
|
|
3053
3137
|
readonly SEND_VIDEO: "send-video";
|
|
3054
3138
|
readonly START_BROADCAST_CALL: "start-broadcast-call";
|
|
3055
3139
|
readonly START_CLOSED_CAPTIONS_CALL: "start-closed-captions-call";
|
|
3140
|
+
readonly START_FRAME_RECORD_CALL: "start-frame-record-call";
|
|
3056
3141
|
readonly START_RECORD_CALL: "start-record-call";
|
|
3057
3142
|
readonly START_TRANSCRIPTION_CALL: "start-transcription-call";
|
|
3058
3143
|
readonly STOP_BROADCAST_CALL: "stop-broadcast-call";
|
|
3059
3144
|
readonly STOP_CLOSED_CAPTIONS_CALL: "stop-closed-captions-call";
|
|
3145
|
+
readonly STOP_FRAME_RECORD_CALL: "stop-frame-record-call";
|
|
3060
3146
|
readonly STOP_RECORD_CALL: "stop-record-call";
|
|
3061
3147
|
readonly STOP_TRANSCRIPTION_CALL: "stop-transcription-call";
|
|
3062
3148
|
readonly UPDATE_CALL: "update-call";
|
|
@@ -3940,6 +4026,7 @@ export interface ReviewQueueItemResponse {
|
|
|
3940
4026
|
completed_at?: Date;
|
|
3941
4027
|
entity_creator_id?: string;
|
|
3942
4028
|
reviewed_at?: Date;
|
|
4029
|
+
teams?: string[];
|
|
3943
4030
|
assigned_to?: UserResponse;
|
|
3944
4031
|
entity_creator?: EntityCreatorResponse;
|
|
3945
4032
|
feeds_v2_activity?: EnrichedActivity;
|
|
@@ -4037,6 +4124,7 @@ export interface SearchResultMessage {
|
|
|
4037
4124
|
latest_reactions: ReactionResponse[];
|
|
4038
4125
|
mentioned_users: UserResponse[];
|
|
4039
4126
|
own_reactions: ReactionResponse[];
|
|
4127
|
+
restricted_visibility: string[];
|
|
4040
4128
|
custom: Record<string, any>;
|
|
4041
4129
|
reaction_counts: Record<string, number>;
|
|
4042
4130
|
reaction_scores: Record<string, number>;
|
|
@@ -4174,6 +4262,12 @@ export interface StartClosedCaptionsRequest {
|
|
|
4174
4262
|
export interface StartClosedCaptionsResponse {
|
|
4175
4263
|
duration: string;
|
|
4176
4264
|
}
|
|
4265
|
+
export interface StartFrameRecordingRequest {
|
|
4266
|
+
recording_external_storage?: string;
|
|
4267
|
+
}
|
|
4268
|
+
export interface StartFrameRecordingResponse {
|
|
4269
|
+
duration: string;
|
|
4270
|
+
}
|
|
4177
4271
|
export interface StartHLSBroadcastingRequest {
|
|
4178
4272
|
}
|
|
4179
4273
|
export interface StartHLSBroadcastingResponse {
|
|
@@ -4213,6 +4307,11 @@ export interface StopClosedCaptionsRequest {
|
|
|
4213
4307
|
export interface StopClosedCaptionsResponse {
|
|
4214
4308
|
duration: string;
|
|
4215
4309
|
}
|
|
4310
|
+
export interface StopFrameRecordingRequest {
|
|
4311
|
+
}
|
|
4312
|
+
export interface StopFrameRecordingResponse {
|
|
4313
|
+
duration: string;
|
|
4314
|
+
}
|
|
4216
4315
|
export interface StopHLSBroadcastingRequest {
|
|
4217
4316
|
}
|
|
4218
4317
|
export interface StopHLSBroadcastingResponse {
|
|
@@ -4492,6 +4591,7 @@ export interface UpdateAppRequest {
|
|
|
4492
4591
|
enforce_unique_usernames?: 'no' | 'app' | 'team';
|
|
4493
4592
|
feeds_moderation_enabled?: boolean;
|
|
4494
4593
|
feeds_v2_region?: string;
|
|
4594
|
+
guest_user_creation_disabled?: boolean;
|
|
4495
4595
|
image_moderation_enabled?: boolean;
|
|
4496
4596
|
migrate_permissions_to_v2?: boolean;
|
|
4497
4597
|
moderation_enabled?: boolean;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { BaseApi } from '../../BaseApi';
|
|
2
2
|
import { StreamResponse } from '../../types';
|
|
3
|
-
import { BanRequest, BanResponse, CheckRequest, CheckResponse, CustomCheckRequest, CustomCheckResponse, DeleteModerationConfigResponse, DeleteModerationTemplateResponse, FlagRequest, FlagResponse, GetConfigResponse, GetReviewQueueItemResponse, GetUserModerationReportResponse, ModeratorStatsResponse, MuteRequest, MuteResponse, QueryFeedModerationTemplatesResponse, QueryModerationConfigsRequest, QueryModerationConfigsResponse, QueryModerationLogsRequest, QueryModerationLogsResponse, QueryReviewQueueRequest, QueryReviewQueueResponse, QueryUsageStatsRequest, QueryUsageStatsResponse, QueueStatsResponse, SubmitActionRequest, SubmitActionResponse, UnbanRequest, UnbanResponse, UnmuteRequest, UnmuteResponse, UpsertConfigRequest, UpsertConfigResponse, UpsertModerationTemplateRequest, UpsertModerationTemplateResponse } from '../models';
|
|
3
|
+
import { BanRequest, BanResponse, CheckRequest, CheckResponse, CustomCheckRequest, CustomCheckResponse, DeleteModerationConfigResponse, DeleteModerationTemplateResponse, FlagRequest, FlagResponse, GetConfigResponse, GetModerationAnalyticsRequest, GetModerationAnalyticsResponse, GetReviewQueueItemResponse, GetUserModerationReportResponse, ModeratorStatsResponse, MuteRequest, MuteResponse, QueryFeedModerationTemplatesResponse, QueryModerationConfigsRequest, QueryModerationConfigsResponse, QueryModerationLogsRequest, QueryModerationLogsResponse, QueryReviewQueueRequest, QueryReviewQueueResponse, QueryUsageStatsRequest, QueryUsageStatsResponse, QueueStatsResponse, SubmitActionRequest, SubmitActionResponse, UnbanRequest, UnbanResponse, UnmuteRequest, UnmuteResponse, UpsertConfigRequest, UpsertConfigResponse, UpsertModerationTemplateRequest, UpsertModerationTemplateResponse } from '../models';
|
|
4
4
|
export declare class ModerationApi extends BaseApi {
|
|
5
|
+
getModerationAnalytics: (request?: GetModerationAnalyticsRequest) => Promise<StreamResponse<GetModerationAnalyticsResponse>>;
|
|
5
6
|
ban: (request: BanRequest) => Promise<StreamResponse<BanResponse>>;
|
|
6
7
|
check: (request: CheckRequest) => Promise<StreamResponse<CheckResponse>>;
|
|
7
8
|
upsertConfig: (request: UpsertConfigRequest) => Promise<StreamResponse<UpsertConfigResponse>>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { VideoApi } from './VideoApi';
|
|
2
2
|
import { StreamResponse } from '../../types';
|
|
3
|
-
import { BlockUserRequest, BlockUserResponse, CollectUserFeedbackRequest, CollectUserFeedbackResponse, DeleteCallRequest, DeleteCallResponse, DeleteRecordingResponse, DeleteTranscriptionResponse, EndCallResponse, GetCallReportResponse, GetCallResponse, GetCallStatsResponse, GetOrCreateCallRequest, GetOrCreateCallResponse, GoLiveRequest, GoLiveResponse, ListRecordingsResponse, ListTranscriptionsResponse, MuteUsersRequest, MuteUsersResponse, PinRequest, PinResponse, SendCallEventRequest, SendCallEventResponse, StartClosedCaptionsRequest, StartClosedCaptionsResponse, StartHLSBroadcastingResponse, StartRTMPBroadcastsRequest, StartRTMPBroadcastsResponse, StartRecordingRequest, StartRecordingResponse, StartTranscriptionRequest, StartTranscriptionResponse, StopAllRTMPBroadcastsResponse, StopClosedCaptionsRequest, StopClosedCaptionsResponse, StopHLSBroadcastingResponse, StopLiveRequest, StopLiveResponse, StopRTMPBroadcastsRequest, StopRTMPBroadcastsResponse, StopRecordingResponse, StopTranscriptionRequest, StopTranscriptionResponse, UnblockUserRequest, UnblockUserResponse, UnpinRequest, UnpinResponse, UpdateCallMembersRequest, UpdateCallMembersResponse, UpdateCallRequest, UpdateCallResponse, UpdateUserPermissionsRequest, UpdateUserPermissionsResponse } from '../models';
|
|
3
|
+
import { BlockUserRequest, BlockUserResponse, CollectUserFeedbackRequest, CollectUserFeedbackResponse, DeleteCallRequest, DeleteCallResponse, DeleteRecordingResponse, DeleteTranscriptionResponse, EndCallResponse, GetCallReportResponse, GetCallResponse, GetCallStatsResponse, GetOrCreateCallRequest, GetOrCreateCallResponse, GoLiveRequest, GoLiveResponse, ListRecordingsResponse, ListTranscriptionsResponse, MuteUsersRequest, MuteUsersResponse, PinRequest, PinResponse, SendCallEventRequest, SendCallEventResponse, StartClosedCaptionsRequest, StartClosedCaptionsResponse, StartFrameRecordingRequest, StartFrameRecordingResponse, StartHLSBroadcastingResponse, StartRTMPBroadcastsRequest, StartRTMPBroadcastsResponse, StartRecordingRequest, StartRecordingResponse, StartTranscriptionRequest, StartTranscriptionResponse, StopAllRTMPBroadcastsResponse, StopClosedCaptionsRequest, StopClosedCaptionsResponse, StopFrameRecordingResponse, StopHLSBroadcastingResponse, StopLiveRequest, StopLiveResponse, StopRTMPBroadcastsRequest, StopRTMPBroadcastsResponse, StopRecordingResponse, StopTranscriptionRequest, StopTranscriptionResponse, UnblockUserRequest, UnblockUserResponse, UnpinRequest, UnpinResponse, UpdateCallMembersRequest, UpdateCallMembersResponse, UpdateCallRequest, UpdateCallResponse, UpdateUserPermissionsRequest, UpdateUserPermissionsResponse } from '../models';
|
|
4
4
|
export declare class CallApi {
|
|
5
5
|
protected videoApi: VideoApi;
|
|
6
6
|
readonly type: string;
|
|
@@ -17,9 +17,7 @@ export declare class CallApi {
|
|
|
17
17
|
blockUser: (request: BlockUserRequest) => Promise<StreamResponse<BlockUserResponse>>;
|
|
18
18
|
delete: (request?: DeleteCallRequest) => Promise<StreamResponse<DeleteCallResponse>>;
|
|
19
19
|
sendCallEvent: (request?: SendCallEventRequest) => Promise<StreamResponse<SendCallEventResponse>>;
|
|
20
|
-
collectUserFeedback: (request: CollectUserFeedbackRequest
|
|
21
|
-
session: string;
|
|
22
|
-
}) => Promise<StreamResponse<CollectUserFeedbackResponse>>;
|
|
20
|
+
collectUserFeedback: (request: CollectUserFeedbackRequest) => Promise<StreamResponse<CollectUserFeedbackResponse>>;
|
|
23
21
|
goLive: (request?: GoLiveRequest) => Promise<StreamResponse<GoLiveResponse>>;
|
|
24
22
|
end: () => Promise<StreamResponse<EndCallResponse>>;
|
|
25
23
|
updateCallMembers: (request?: UpdateCallMembersRequest) => Promise<StreamResponse<UpdateCallMembersResponse>>;
|
|
@@ -36,6 +34,7 @@ export declare class CallApi {
|
|
|
36
34
|
}) => Promise<StreamResponse<StopRTMPBroadcastsResponse>>;
|
|
37
35
|
startHLSBroadcasting: () => Promise<StreamResponse<StartHLSBroadcastingResponse>>;
|
|
38
36
|
startClosedCaptions: (request?: StartClosedCaptionsRequest) => Promise<StreamResponse<StartClosedCaptionsResponse>>;
|
|
37
|
+
startFrameRecording: (request?: StartFrameRecordingRequest) => Promise<StreamResponse<StartFrameRecordingResponse>>;
|
|
39
38
|
startRecording: (request?: StartRecordingRequest) => Promise<StreamResponse<StartRecordingResponse>>;
|
|
40
39
|
startTranscription: (request?: StartTranscriptionRequest) => Promise<StreamResponse<StartTranscriptionResponse>>;
|
|
41
40
|
getCallStats: (request: {
|
|
@@ -43,6 +42,7 @@ export declare class CallApi {
|
|
|
43
42
|
}) => Promise<StreamResponse<GetCallStatsResponse>>;
|
|
44
43
|
stopHLSBroadcasting: () => Promise<StreamResponse<StopHLSBroadcastingResponse>>;
|
|
45
44
|
stopClosedCaptions: (request?: StopClosedCaptionsRequest) => Promise<StreamResponse<StopClosedCaptionsResponse>>;
|
|
45
|
+
stopFrameRecording: () => Promise<StreamResponse<StopFrameRecordingResponse>>;
|
|
46
46
|
stopLive: (request?: StopLiveRequest) => Promise<StreamResponse<StopLiveResponse>>;
|
|
47
47
|
stopRecording: () => Promise<StreamResponse<StopRecordingResponse>>;
|
|
48
48
|
stopTranscription: (request?: StopTranscriptionRequest) => Promise<StreamResponse<StopTranscriptionResponse>>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BaseApi } from '../../BaseApi';
|
|
2
2
|
import { StreamResponse } from '../../types';
|
|
3
|
-
import { BlockUserRequest, BlockUserResponse, CollectUserFeedbackRequest, CollectUserFeedbackResponse, CreateCallTypeRequest, CreateCallTypeResponse, DeleteCallRequest, DeleteCallResponse, DeleteRecordingResponse, DeleteTranscriptionResponse, EndCallResponse, GetCallReportResponse, GetCallResponse, GetCallStatsResponse, GetCallTypeResponse, GetEdgesResponse, GetOrCreateCallRequest, GetOrCreateCallResponse, GoLiveRequest, GoLiveResponse, ListCallTypeResponse, ListRecordingsResponse, ListTranscriptionsResponse, MuteUsersRequest, MuteUsersResponse, PinRequest, PinResponse, QueryAggregateCallStatsRequest, QueryAggregateCallStatsResponse, QueryCallMembersRequest, QueryCallMembersResponse, QueryCallStatsRequest, QueryCallStatsResponse, QueryCallsRequest, QueryCallsResponse, QueryUserFeedbackRequest, QueryUserFeedbackResponse, Response, SendCallEventRequest, SendCallEventResponse, StartClosedCaptionsRequest, StartClosedCaptionsResponse, StartHLSBroadcastingResponse, StartRTMPBroadcastsRequest, StartRTMPBroadcastsResponse, StartRecordingRequest, StartRecordingResponse, StartTranscriptionRequest, StartTranscriptionResponse, StopAllRTMPBroadcastsResponse, StopClosedCaptionsRequest, StopClosedCaptionsResponse, StopHLSBroadcastingResponse, StopLiveRequest, StopLiveResponse, StopRTMPBroadcastsRequest, StopRTMPBroadcastsResponse, StopRecordingResponse, StopTranscriptionRequest, StopTranscriptionResponse, UnblockUserRequest, UnblockUserResponse, UnpinRequest, UnpinResponse, UpdateCallMembersRequest, UpdateCallMembersResponse, UpdateCallRequest, UpdateCallResponse, UpdateCallTypeRequest, UpdateCallTypeResponse, UpdateUserPermissionsRequest, UpdateUserPermissionsResponse } from '../models';
|
|
3
|
+
import { BlockUserRequest, BlockUserResponse, CollectUserFeedbackRequest, CollectUserFeedbackResponse, CreateCallTypeRequest, CreateCallTypeResponse, DeleteCallRequest, DeleteCallResponse, DeleteRecordingResponse, DeleteTranscriptionResponse, EndCallResponse, GetCallReportResponse, GetCallResponse, GetCallStatsResponse, GetCallTypeResponse, GetEdgesResponse, GetOrCreateCallRequest, GetOrCreateCallResponse, GoLiveRequest, GoLiveResponse, ListCallTypeResponse, ListRecordingsResponse, ListTranscriptionsResponse, MuteUsersRequest, MuteUsersResponse, PinRequest, PinResponse, QueryAggregateCallStatsRequest, QueryAggregateCallStatsResponse, QueryCallMembersRequest, QueryCallMembersResponse, QueryCallStatsRequest, QueryCallStatsResponse, QueryCallsRequest, QueryCallsResponse, QueryUserFeedbackRequest, QueryUserFeedbackResponse, Response, SendCallEventRequest, SendCallEventResponse, StartClosedCaptionsRequest, StartClosedCaptionsResponse, StartFrameRecordingRequest, StartFrameRecordingResponse, StartHLSBroadcastingResponse, StartRTMPBroadcastsRequest, StartRTMPBroadcastsResponse, StartRecordingRequest, StartRecordingResponse, StartTranscriptionRequest, StartTranscriptionResponse, StopAllRTMPBroadcastsResponse, StopClosedCaptionsRequest, StopClosedCaptionsResponse, StopFrameRecordingResponse, StopHLSBroadcastingResponse, StopLiveRequest, StopLiveResponse, StopRTMPBroadcastsRequest, StopRTMPBroadcastsResponse, StopRecordingResponse, StopTranscriptionRequest, StopTranscriptionResponse, UnblockUserRequest, UnblockUserResponse, UnpinRequest, UnpinResponse, UpdateCallMembersRequest, UpdateCallMembersResponse, UpdateCallRequest, UpdateCallResponse, UpdateCallTypeRequest, UpdateCallTypeResponse, UpdateUserPermissionsRequest, UpdateUserPermissionsResponse } from '../models';
|
|
4
4
|
export declare class VideoApi extends BaseApi {
|
|
5
5
|
queryUserFeedback: (request?: QueryUserFeedbackRequest & {
|
|
6
6
|
full?: boolean;
|
|
@@ -38,7 +38,6 @@ export declare class VideoApi extends BaseApi {
|
|
|
38
38
|
collectUserFeedback: (request: CollectUserFeedbackRequest & {
|
|
39
39
|
type: string;
|
|
40
40
|
id: string;
|
|
41
|
-
session: string;
|
|
42
41
|
}) => Promise<StreamResponse<CollectUserFeedbackResponse>>;
|
|
43
42
|
goLive: (request: GoLiveRequest & {
|
|
44
43
|
type: string;
|
|
@@ -90,6 +89,10 @@ export declare class VideoApi extends BaseApi {
|
|
|
90
89
|
type: string;
|
|
91
90
|
id: string;
|
|
92
91
|
}) => Promise<StreamResponse<StartClosedCaptionsResponse>>;
|
|
92
|
+
startFrameRecording: (request: StartFrameRecordingRequest & {
|
|
93
|
+
type: string;
|
|
94
|
+
id: string;
|
|
95
|
+
}) => Promise<StreamResponse<StartFrameRecordingResponse>>;
|
|
93
96
|
startRecording: (request: StartRecordingRequest & {
|
|
94
97
|
type: string;
|
|
95
98
|
id: string;
|
|
@@ -111,6 +114,10 @@ export declare class VideoApi extends BaseApi {
|
|
|
111
114
|
type: string;
|
|
112
115
|
id: string;
|
|
113
116
|
}) => Promise<StreamResponse<StopClosedCaptionsResponse>>;
|
|
117
|
+
stopFrameRecording: (request: {
|
|
118
|
+
type: string;
|
|
119
|
+
id: string;
|
|
120
|
+
}) => Promise<StreamResponse<StopFrameRecordingResponse>>;
|
|
114
121
|
stopLive: (request: StopLiveRequest & {
|
|
115
122
|
type: string;
|
|
116
123
|
id: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stream-io/node-sdk",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.14",
|
|
4
4
|
"description": "",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -49,6 +49,7 @@
|
|
|
49
49
|
"@openapitools/openapi-generator-cli": "^2.7.0",
|
|
50
50
|
"@rollup/plugin-replace": "^5.0.2",
|
|
51
51
|
"@rollup/plugin-typescript": "^11.1.4",
|
|
52
|
+
"@stream-io/openai-realtime-api": "prerelease",
|
|
52
53
|
"@types/uuid": "^9.0.4",
|
|
53
54
|
"@typescript-eslint/eslint-plugin": "^6.4.0",
|
|
54
55
|
"dotenv": "^16.3.1",
|
|
@@ -74,6 +75,14 @@
|
|
|
74
75
|
"jsonwebtoken": "^9.0.2",
|
|
75
76
|
"uuid": "^9.0.1"
|
|
76
77
|
},
|
|
78
|
+
"peerDependencies": {
|
|
79
|
+
"@stream-io/openai-realtime-api": "prerelease"
|
|
80
|
+
},
|
|
81
|
+
"peerDependenciesMeta": {
|
|
82
|
+
"@stream-io/openai-realtime-api": {
|
|
83
|
+
"optional": true
|
|
84
|
+
}
|
|
85
|
+
},
|
|
77
86
|
"engines": {
|
|
78
87
|
"node": ">=18.0.0"
|
|
79
88
|
},
|
package/src/BaseApi.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { APIError } from './gen/models';
|
|
|
4
4
|
import { getRateLimitFromResponseHeader } from './utils/rate-limit';
|
|
5
5
|
|
|
6
6
|
export class BaseApi {
|
|
7
|
-
constructor(
|
|
7
|
+
constructor(protected readonly apiConfig: ApiConfig) {}
|
|
8
8
|
|
|
9
9
|
protected sendRequest = async <T>(
|
|
10
10
|
method: string,
|
package/src/StreamClient.ts
CHANGED
package/src/StreamVideoClient.ts
CHANGED
|
@@ -1,8 +1,63 @@
|
|
|
1
1
|
import { VideoApi } from './gen/video/VideoApi';
|
|
2
2
|
import { StreamCall } from './StreamCall';
|
|
3
|
+
import type { StreamClient } from './StreamClient';
|
|
4
|
+
import type { ApiConfig } from './types';
|
|
5
|
+
import type {
|
|
6
|
+
RealtimeClient,
|
|
7
|
+
createRealtimeClient,
|
|
8
|
+
} from '@stream-io/openai-realtime-api';
|
|
3
9
|
|
|
4
10
|
export class StreamVideoClient extends VideoApi {
|
|
11
|
+
private readonly streamClient: StreamClient;
|
|
12
|
+
|
|
13
|
+
constructor({
|
|
14
|
+
streamClient,
|
|
15
|
+
...apiConfig
|
|
16
|
+
}: ApiConfig & { streamClient: StreamClient }) {
|
|
17
|
+
super(apiConfig);
|
|
18
|
+
this.streamClient = streamClient;
|
|
19
|
+
}
|
|
20
|
+
|
|
5
21
|
call = (type: string, id: string) => {
|
|
6
22
|
return new StreamCall(this, type, id);
|
|
7
23
|
};
|
|
24
|
+
|
|
25
|
+
connectOpenAi = async (options: {
|
|
26
|
+
call: StreamCall;
|
|
27
|
+
agentUserId: string;
|
|
28
|
+
openAiApiKey: string;
|
|
29
|
+
validityInSeconds: number;
|
|
30
|
+
}): Promise<RealtimeClient> => {
|
|
31
|
+
let doCreateRealtimeClient: typeof createRealtimeClient;
|
|
32
|
+
|
|
33
|
+
try {
|
|
34
|
+
doCreateRealtimeClient = (await import('@stream-io/openai-realtime-api'))
|
|
35
|
+
.createRealtimeClient;
|
|
36
|
+
} catch {
|
|
37
|
+
throw new Error(
|
|
38
|
+
'Cannot create Realtime API client. Is @stream-io/openai-realtime-api installed?',
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
if (!options.agentUserId) {
|
|
43
|
+
throw new Error('"agentUserId" must by specified in options');
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const token = this.streamClient.generateCallToken({
|
|
47
|
+
user_id: options.agentUserId,
|
|
48
|
+
call_cids: [options.call.cid],
|
|
49
|
+
validity_in_seconds: options.validityInSeconds,
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
const realtimeClient = doCreateRealtimeClient({
|
|
53
|
+
baseUrl: this.apiConfig.baseUrl,
|
|
54
|
+
call: options.call,
|
|
55
|
+
streamApiKey: this.apiConfig.apiKey,
|
|
56
|
+
streamUserToken: token,
|
|
57
|
+
openAiApiKey: options.openAiApiKey,
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
await realtimeClient.connect();
|
|
61
|
+
return realtimeClient;
|
|
62
|
+
};
|
|
8
63
|
}
|
|
@@ -97,6 +97,7 @@ export class CommonApi extends BaseApi {
|
|
|
97
97
|
enforce_unique_usernames: request?.enforce_unique_usernames,
|
|
98
98
|
feeds_moderation_enabled: request?.feeds_moderation_enabled,
|
|
99
99
|
feeds_v2_region: request?.feeds_v2_region,
|
|
100
|
+
guest_user_creation_disabled: request?.guest_user_creation_disabled,
|
|
100
101
|
image_moderation_enabled: request?.image_moderation_enabled,
|
|
101
102
|
migrate_permissions_to_v2: request?.migrate_permissions_to_v2,
|
|
102
103
|
moderation_enabled: request?.moderation_enabled,
|