@stream-io/node-sdk 0.3.1 → 0.4.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/dist/index.cjs.js +4136 -9282
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +2 -3
- package/dist/index.es.js +4136 -9206
- package/dist/index.es.js.map +1 -1
- package/dist/src/BaseApi.d.ts +10 -0
- package/dist/src/StreamCall.d.ts +5 -37
- package/dist/src/StreamChannel.d.ts +7 -34
- package/dist/src/StreamChatClient.d.ts +2 -25
- package/dist/src/StreamClient.d.ts +51 -59
- package/dist/src/StreamModerationClient.d.ts +3 -0
- package/dist/src/StreamVideoClient.d.ts +2 -18
- package/dist/src/gen/chat/ChannelApi.d.ts +33 -0
- package/dist/src/gen/chat/ChatApi.d.ts +241 -0
- package/dist/src/gen/common/CommonApi.d.ts +99 -0
- package/dist/src/gen/model-decoders/index.d.ts +3 -0
- package/dist/src/gen/models/index.d.ts +3881 -0
- package/dist/src/gen/moderation/ModerationApi.d.ts +38 -0
- package/dist/src/gen/video/CallApi.d.ts +56 -0
- package/dist/src/gen/video/VideoApi.d.ts +151 -0
- package/dist/src/types.d.ts +25 -0
- package/dist/src/utils/create-token.d.ts +2 -0
- package/dist/src/utils/rate-limit.d.ts +2 -0
- package/index.ts +2 -3
- package/package.json +5 -4
- package/src/BaseApi.ts +115 -0
- package/src/StreamCall.ts +9 -199
- package/src/StreamChannel.ts +23 -246
- package/src/StreamChatClient.ts +3 -122
- package/src/StreamClient.ts +101 -345
- package/src/StreamModerationClient.ts +3 -0
- package/src/StreamVideoClient.ts +3 -95
- package/src/gen/chat/ChannelApi.ts +270 -0
- package/src/gen/chat/ChatApi.ts +1857 -0
- package/src/gen/common/CommonApi.ts +1004 -0
- package/src/gen/model-decoders/index.ts +1897 -0
- package/src/gen/models/index.ts +6794 -0
- package/src/gen/moderation/ModerationApi.ts +476 -0
- package/src/gen/video/CallApi.ts +309 -0
- package/src/gen/video/VideoApi.ts +1007 -0
- package/src/types.ts +35 -0
- package/src/utils/create-token.ts +6 -1
- package/src/utils/rate-limit.ts +21 -0
- package/dist/src/gen/chat/apis/ProductchatApi.d.ts +0 -1750
- package/dist/src/gen/chat/apis/index.d.ts +0 -1
- package/dist/src/gen/chat/index.d.ts +0 -3
- package/dist/src/gen/chat/models/index.d.ts +0 -14865
- package/dist/src/gen/chat/runtime.d.ts +0 -180
- package/dist/src/gen/video/apis/ProductvideoApi.d.ts +0 -648
- package/dist/src/gen/video/apis/index.d.ts +0 -1
- package/dist/src/gen/video/index.d.ts +0 -3
- package/dist/src/gen/video/models/index.d.ts +0 -5011
- package/dist/src/gen/video/runtime.d.ts +0 -180
- package/src/gen/chat/.openapi-generator/FILES +0 -6
- package/src/gen/chat/.openapi-generator/VERSION +0 -1
- package/src/gen/chat/.openapi-generator-ignore +0 -23
- package/src/gen/chat/apis/ProductchatApi.ts +0 -7007
- package/src/gen/chat/apis/index.ts +0 -3
- package/src/gen/chat/index.ts +0 -5
- package/src/gen/chat/models/index.ts +0 -14766
- package/src/gen/chat/runtime.ts +0 -415
- package/src/gen/video/.openapi-generator/FILES +0 -6
- package/src/gen/video/.openapi-generator/VERSION +0 -1
- package/src/gen/video/.openapi-generator-ignore +0 -23
- package/src/gen/video/apis/ProductvideoApi.ts +0 -2575
- package/src/gen/video/apis/index.ts +0 -3
- package/src/gen/video/index.ts +0 -5
- package/src/gen/video/models/index.ts +0 -5000
- package/src/gen/video/runtime.ts +0 -415
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { BaseApi } from '../../BaseApi';
|
|
2
|
+
import { StreamResponse } from '../../types';
|
|
3
|
+
import { BanRequest, BanResponse, CheckRequest, CheckResponse, CustomCheckRequest, CustomCheckResponse, DeleteModerationTemplateResponse, FlagRequest, FlagResponse, GetConfigResponse, GetReviewQueueItemResponse, GetUserModerationReportResponse, ModeratorStatsResponse, MuteRequest, MuteResponse, QueryFeedModerationTemplatesResponse, QueryModerationLogsRequest, QueryModerationLogsResponse, QueryReviewQueueRequest, QueryReviewQueueResponse, QueryUsageStatsRequest, QueryUsageStatsResponse, QueueStatsResponse, SubmitActionRequest, SubmitActionResponse, UnbanRequest, UnbanResponse, UnmuteRequest, UnmuteResponse, UpsertConfigRequest, UpsertConfigResponse, UpsertModerationTemplateRequest, UpsertModerationTemplateResponse } from '../models';
|
|
4
|
+
export declare class ModerationApi extends BaseApi {
|
|
5
|
+
ban: (request: BanRequest) => Promise<StreamResponse<BanResponse>>;
|
|
6
|
+
check: (request: CheckRequest) => Promise<StreamResponse<CheckResponse>>;
|
|
7
|
+
upsertConfig: (request: UpsertConfigRequest) => Promise<StreamResponse<UpsertConfigResponse>>;
|
|
8
|
+
getConfig: (request: {
|
|
9
|
+
key: string;
|
|
10
|
+
}) => Promise<StreamResponse<GetConfigResponse>>;
|
|
11
|
+
customCheck: (request: CustomCheckRequest) => Promise<StreamResponse<CustomCheckResponse>>;
|
|
12
|
+
v2DeleteTemplate: () => Promise<StreamResponse<DeleteModerationTemplateResponse>>;
|
|
13
|
+
v2QueryTemplates: () => Promise<StreamResponse<QueryFeedModerationTemplatesResponse>>;
|
|
14
|
+
v2UpsertTemplate: (request: UpsertModerationTemplateRequest) => Promise<StreamResponse<UpsertModerationTemplateResponse>>;
|
|
15
|
+
flag: (request: FlagRequest) => Promise<StreamResponse<FlagResponse>>;
|
|
16
|
+
queryModerationLogs: (request?: QueryModerationLogsRequest) => Promise<StreamResponse<QueryModerationLogsResponse>>;
|
|
17
|
+
getModeratorStats: () => Promise<StreamResponse<ModeratorStatsResponse>>;
|
|
18
|
+
mute: (request: MuteRequest) => Promise<StreamResponse<MuteResponse>>;
|
|
19
|
+
getQueueStats: () => Promise<StreamResponse<QueueStatsResponse>>;
|
|
20
|
+
queryReviewQueue: (request?: QueryReviewQueueRequest) => Promise<StreamResponse<QueryReviewQueueResponse>>;
|
|
21
|
+
getReviewQueueItem: (request: {
|
|
22
|
+
id: string;
|
|
23
|
+
}) => Promise<StreamResponse<GetReviewQueueItemResponse>>;
|
|
24
|
+
submitAction: (request: SubmitActionRequest) => Promise<StreamResponse<SubmitActionResponse>>;
|
|
25
|
+
unban: (request: UnbanRequest & {
|
|
26
|
+
target_user_id: string;
|
|
27
|
+
channel_cid?: string;
|
|
28
|
+
created_by?: string;
|
|
29
|
+
}) => Promise<StreamResponse<UnbanResponse>>;
|
|
30
|
+
unmute: (request: UnmuteRequest) => Promise<StreamResponse<UnmuteResponse>>;
|
|
31
|
+
queryUsageStats: (request?: QueryUsageStatsRequest) => Promise<StreamResponse<QueryUsageStatsResponse>>;
|
|
32
|
+
getUserReport: (request: {
|
|
33
|
+
user_id: string;
|
|
34
|
+
create_user_if_not_exists?: boolean;
|
|
35
|
+
include_user_mutes?: boolean;
|
|
36
|
+
include_user_blocks?: boolean;
|
|
37
|
+
}) => Promise<StreamResponse<GetUserModerationReportResponse>>;
|
|
38
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { VideoApi } from './VideoApi';
|
|
2
|
+
import { StreamResponse } from '../../types';
|
|
3
|
+
import { BlockUserRequest, BlockUserResponse, CollectUserFeedbackRequest, CollectUserFeedbackResponse, DeleteCallRequest, DeleteCallResponse, DeleteRecordingResponse, DeleteTranscriptionResponse, EndCallResponse, GetCallResponse, GetCallStatsResponse, GetOrCreateCallRequest, GetOrCreateCallResponse, GoLiveRequest, GoLiveResponse, ListRecordingsResponse, ListTranscriptionsResponse, MuteUsersRequest, MuteUsersResponse, PinRequest, PinResponse, SendCallEventRequest, SendCallEventResponse, StartHLSBroadcastingResponse, StartRTMPBroadcastsRequest, StartRTMPBroadcastsResponse, StartRecordingRequest, StartRecordingResponse, StartTranscriptionRequest, StartTranscriptionResponse, StopAllRTMPBroadcastsResponse, StopHLSBroadcastingResponse, StopLiveResponse, StopRTMPBroadcastsRequest, StopRTMPBroadcastsResponse, StopRecordingResponse, StopTranscriptionResponse, UnblockUserRequest, UnblockUserResponse, UnpinRequest, UnpinResponse, UpdateCallMembersRequest, UpdateCallMembersResponse, UpdateCallRequest, UpdateCallResponse, UpdateUserPermissionsRequest, UpdateUserPermissionsResponse } from '../models';
|
|
4
|
+
export declare class CallApi {
|
|
5
|
+
protected videoApi: VideoApi;
|
|
6
|
+
readonly type: string;
|
|
7
|
+
readonly id: string;
|
|
8
|
+
constructor(videoApi: VideoApi, type: string, id: string);
|
|
9
|
+
get: (request?: {
|
|
10
|
+
members_limit?: number;
|
|
11
|
+
ring?: boolean;
|
|
12
|
+
notify?: boolean;
|
|
13
|
+
video?: boolean;
|
|
14
|
+
}) => Promise<StreamResponse<GetCallResponse>>;
|
|
15
|
+
update: (request?: UpdateCallRequest) => Promise<StreamResponse<UpdateCallResponse>>;
|
|
16
|
+
getOrCreate: (request?: GetOrCreateCallRequest) => Promise<StreamResponse<GetOrCreateCallResponse>>;
|
|
17
|
+
blockUser: (request: BlockUserRequest) => Promise<StreamResponse<BlockUserResponse>>;
|
|
18
|
+
delete: (request?: DeleteCallRequest) => Promise<StreamResponse<DeleteCallResponse>>;
|
|
19
|
+
sendCallEvent: (request?: SendCallEventRequest) => Promise<StreamResponse<SendCallEventResponse>>;
|
|
20
|
+
collectUserFeedback: (request: CollectUserFeedbackRequest & {
|
|
21
|
+
session: string;
|
|
22
|
+
}) => Promise<StreamResponse<CollectUserFeedbackResponse>>;
|
|
23
|
+
goLive: (request?: GoLiveRequest) => Promise<StreamResponse<GoLiveResponse>>;
|
|
24
|
+
end: () => Promise<StreamResponse<EndCallResponse>>;
|
|
25
|
+
updateCallMembers: (request?: UpdateCallMembersRequest) => Promise<StreamResponse<UpdateCallMembersResponse>>;
|
|
26
|
+
muteUsers: (request?: MuteUsersRequest) => Promise<StreamResponse<MuteUsersResponse>>;
|
|
27
|
+
videoPin: (request: PinRequest) => Promise<StreamResponse<PinResponse>>;
|
|
28
|
+
listRecordings: () => Promise<StreamResponse<ListRecordingsResponse>>;
|
|
29
|
+
startRTMPBroadcasts: (request: StartRTMPBroadcastsRequest) => Promise<StreamResponse<StartRTMPBroadcastsResponse>>;
|
|
30
|
+
stopAllRTMPBroadcasts: () => Promise<StreamResponse<StopAllRTMPBroadcastsResponse>>;
|
|
31
|
+
stopRTMPBroadcast: (request: StopRTMPBroadcastsRequest & {
|
|
32
|
+
name: string;
|
|
33
|
+
}) => Promise<StreamResponse<StopRTMPBroadcastsResponse>>;
|
|
34
|
+
startHLSBroadcasting: () => Promise<StreamResponse<StartHLSBroadcastingResponse>>;
|
|
35
|
+
startRecording: (request?: StartRecordingRequest) => Promise<StreamResponse<StartRecordingResponse>>;
|
|
36
|
+
startTranscription: (request?: StartTranscriptionRequest) => Promise<StreamResponse<StartTranscriptionResponse>>;
|
|
37
|
+
getCallStats: (request: {
|
|
38
|
+
session: string;
|
|
39
|
+
}) => Promise<StreamResponse<GetCallStatsResponse>>;
|
|
40
|
+
stopHLSBroadcasting: () => Promise<StreamResponse<StopHLSBroadcastingResponse>>;
|
|
41
|
+
stopLive: () => Promise<StreamResponse<StopLiveResponse>>;
|
|
42
|
+
stopRecording: () => Promise<StreamResponse<StopRecordingResponse>>;
|
|
43
|
+
stopTranscription: () => Promise<StreamResponse<StopTranscriptionResponse>>;
|
|
44
|
+
listTranscriptions: () => Promise<StreamResponse<ListTranscriptionsResponse>>;
|
|
45
|
+
unblockUser: (request: UnblockUserRequest) => Promise<StreamResponse<UnblockUserResponse>>;
|
|
46
|
+
videoUnpin: (request: UnpinRequest) => Promise<StreamResponse<UnpinResponse>>;
|
|
47
|
+
updateUserPermissions: (request: UpdateUserPermissionsRequest) => Promise<StreamResponse<UpdateUserPermissionsResponse>>;
|
|
48
|
+
deleteRecording: (request: {
|
|
49
|
+
session: string;
|
|
50
|
+
filename: string;
|
|
51
|
+
}) => Promise<StreamResponse<DeleteRecordingResponse>>;
|
|
52
|
+
deleteTranscription: (request: {
|
|
53
|
+
session: string;
|
|
54
|
+
filename: string;
|
|
55
|
+
}) => Promise<StreamResponse<DeleteTranscriptionResponse>>;
|
|
56
|
+
}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { BaseApi } from '../../BaseApi';
|
|
2
|
+
import { StreamResponse } from '../../types';
|
|
3
|
+
import { BlockUserRequest, BlockUserResponse, CollectUserFeedbackRequest, CollectUserFeedbackResponse, CreateCallTypeRequest, CreateCallTypeResponse, DeleteCallRequest, DeleteCallResponse, DeleteRecordingResponse, DeleteTranscriptionResponse, EndCallResponse, GetCallResponse, GetCallStatsResponse, GetCallTypeResponse, GetEdgesResponse, GetOrCreateCallRequest, GetOrCreateCallResponse, GoLiveRequest, GoLiveResponse, ListCallTypeResponse, ListRecordingsResponse, ListTranscriptionsResponse, MuteUsersRequest, MuteUsersResponse, PinRequest, PinResponse, QueryCallMembersRequest, QueryCallMembersResponse, QueryCallStatsRequest, QueryCallStatsResponse, QueryCallsRequest, QueryCallsResponse, Response, SendCallEventRequest, SendCallEventResponse, StartHLSBroadcastingResponse, StartRTMPBroadcastsRequest, StartRTMPBroadcastsResponse, StartRecordingRequest, StartRecordingResponse, StartTranscriptionRequest, StartTranscriptionResponse, StopAllRTMPBroadcastsResponse, StopHLSBroadcastingResponse, StopLiveResponse, StopRTMPBroadcastsRequest, StopRTMPBroadcastsResponse, StopRecordingResponse, StopTranscriptionResponse, UnblockUserRequest, UnblockUserResponse, UnpinRequest, UnpinResponse, UpdateCallMembersRequest, UpdateCallMembersResponse, UpdateCallRequest, UpdateCallResponse, UpdateCallTypeRequest, UpdateCallTypeResponse, UpdateUserPermissionsRequest, UpdateUserPermissionsResponse } from '../models';
|
|
4
|
+
export declare class VideoApi extends BaseApi {
|
|
5
|
+
queryCallMembers: (request: QueryCallMembersRequest) => Promise<StreamResponse<QueryCallMembersResponse>>;
|
|
6
|
+
queryCallStats: (request?: QueryCallStatsRequest) => Promise<StreamResponse<QueryCallStatsResponse>>;
|
|
7
|
+
getCall: (request: {
|
|
8
|
+
type: string;
|
|
9
|
+
id: string;
|
|
10
|
+
members_limit?: number;
|
|
11
|
+
ring?: boolean;
|
|
12
|
+
notify?: boolean;
|
|
13
|
+
video?: boolean;
|
|
14
|
+
}) => Promise<StreamResponse<GetCallResponse>>;
|
|
15
|
+
updateCall: (request: UpdateCallRequest & {
|
|
16
|
+
type: string;
|
|
17
|
+
id: string;
|
|
18
|
+
}) => Promise<StreamResponse<UpdateCallResponse>>;
|
|
19
|
+
getOrCreateCall: (request: GetOrCreateCallRequest & {
|
|
20
|
+
type: string;
|
|
21
|
+
id: string;
|
|
22
|
+
}) => Promise<StreamResponse<GetOrCreateCallResponse>>;
|
|
23
|
+
blockUser: (request: BlockUserRequest & {
|
|
24
|
+
type: string;
|
|
25
|
+
id: string;
|
|
26
|
+
}) => Promise<StreamResponse<BlockUserResponse>>;
|
|
27
|
+
deleteCall: (request: DeleteCallRequest & {
|
|
28
|
+
type: string;
|
|
29
|
+
id: string;
|
|
30
|
+
}) => Promise<StreamResponse<DeleteCallResponse>>;
|
|
31
|
+
sendCallEvent: (request: SendCallEventRequest & {
|
|
32
|
+
type: string;
|
|
33
|
+
id: string;
|
|
34
|
+
}) => Promise<StreamResponse<SendCallEventResponse>>;
|
|
35
|
+
collectUserFeedback: (request: CollectUserFeedbackRequest & {
|
|
36
|
+
type: string;
|
|
37
|
+
id: string;
|
|
38
|
+
session: string;
|
|
39
|
+
}) => Promise<StreamResponse<CollectUserFeedbackResponse>>;
|
|
40
|
+
goLive: (request: GoLiveRequest & {
|
|
41
|
+
type: string;
|
|
42
|
+
id: string;
|
|
43
|
+
}) => Promise<StreamResponse<GoLiveResponse>>;
|
|
44
|
+
endCall: (request: {
|
|
45
|
+
type: string;
|
|
46
|
+
id: string;
|
|
47
|
+
}) => Promise<StreamResponse<EndCallResponse>>;
|
|
48
|
+
updateCallMembers: (request: UpdateCallMembersRequest & {
|
|
49
|
+
type: string;
|
|
50
|
+
id: string;
|
|
51
|
+
}) => Promise<StreamResponse<UpdateCallMembersResponse>>;
|
|
52
|
+
muteUsers: (request: MuteUsersRequest & {
|
|
53
|
+
type: string;
|
|
54
|
+
id: string;
|
|
55
|
+
}) => Promise<StreamResponse<MuteUsersResponse>>;
|
|
56
|
+
videoPin: (request: PinRequest & {
|
|
57
|
+
type: string;
|
|
58
|
+
id: string;
|
|
59
|
+
}) => Promise<StreamResponse<PinResponse>>;
|
|
60
|
+
listRecordings: (request: {
|
|
61
|
+
type: string;
|
|
62
|
+
id: string;
|
|
63
|
+
}) => Promise<StreamResponse<ListRecordingsResponse>>;
|
|
64
|
+
startRTMPBroadcasts: (request: StartRTMPBroadcastsRequest & {
|
|
65
|
+
type: string;
|
|
66
|
+
id: string;
|
|
67
|
+
}) => Promise<StreamResponse<StartRTMPBroadcastsResponse>>;
|
|
68
|
+
stopAllRTMPBroadcasts: (request: {
|
|
69
|
+
type: string;
|
|
70
|
+
id: string;
|
|
71
|
+
}) => Promise<StreamResponse<StopAllRTMPBroadcastsResponse>>;
|
|
72
|
+
stopRTMPBroadcast: (request: StopRTMPBroadcastsRequest & {
|
|
73
|
+
type: string;
|
|
74
|
+
id: string;
|
|
75
|
+
name: string;
|
|
76
|
+
}) => Promise<StreamResponse<StopRTMPBroadcastsResponse>>;
|
|
77
|
+
startHLSBroadcasting: (request: {
|
|
78
|
+
type: string;
|
|
79
|
+
id: string;
|
|
80
|
+
}) => Promise<StreamResponse<StartHLSBroadcastingResponse>>;
|
|
81
|
+
startRecording: (request: StartRecordingRequest & {
|
|
82
|
+
type: string;
|
|
83
|
+
id: string;
|
|
84
|
+
}) => Promise<StreamResponse<StartRecordingResponse>>;
|
|
85
|
+
startTranscription: (request: StartTranscriptionRequest & {
|
|
86
|
+
type: string;
|
|
87
|
+
id: string;
|
|
88
|
+
}) => Promise<StreamResponse<StartTranscriptionResponse>>;
|
|
89
|
+
getCallStats: (request: {
|
|
90
|
+
type: string;
|
|
91
|
+
id: string;
|
|
92
|
+
session: string;
|
|
93
|
+
}) => Promise<StreamResponse<GetCallStatsResponse>>;
|
|
94
|
+
stopHLSBroadcasting: (request: {
|
|
95
|
+
type: string;
|
|
96
|
+
id: string;
|
|
97
|
+
}) => Promise<StreamResponse<StopHLSBroadcastingResponse>>;
|
|
98
|
+
stopLive: (request: {
|
|
99
|
+
type: string;
|
|
100
|
+
id: string;
|
|
101
|
+
}) => Promise<StreamResponse<StopLiveResponse>>;
|
|
102
|
+
stopRecording: (request: {
|
|
103
|
+
type: string;
|
|
104
|
+
id: string;
|
|
105
|
+
}) => Promise<StreamResponse<StopRecordingResponse>>;
|
|
106
|
+
stopTranscription: (request: {
|
|
107
|
+
type: string;
|
|
108
|
+
id: string;
|
|
109
|
+
}) => Promise<StreamResponse<StopTranscriptionResponse>>;
|
|
110
|
+
listTranscriptions: (request: {
|
|
111
|
+
type: string;
|
|
112
|
+
id: string;
|
|
113
|
+
}) => Promise<StreamResponse<ListTranscriptionsResponse>>;
|
|
114
|
+
unblockUser: (request: UnblockUserRequest & {
|
|
115
|
+
type: string;
|
|
116
|
+
id: string;
|
|
117
|
+
}) => Promise<StreamResponse<UnblockUserResponse>>;
|
|
118
|
+
videoUnpin: (request: UnpinRequest & {
|
|
119
|
+
type: string;
|
|
120
|
+
id: string;
|
|
121
|
+
}) => Promise<StreamResponse<UnpinResponse>>;
|
|
122
|
+
updateUserPermissions: (request: UpdateUserPermissionsRequest & {
|
|
123
|
+
type: string;
|
|
124
|
+
id: string;
|
|
125
|
+
}) => Promise<StreamResponse<UpdateUserPermissionsResponse>>;
|
|
126
|
+
deleteRecording: (request: {
|
|
127
|
+
type: string;
|
|
128
|
+
id: string;
|
|
129
|
+
session: string;
|
|
130
|
+
filename: string;
|
|
131
|
+
}) => Promise<StreamResponse<DeleteRecordingResponse>>;
|
|
132
|
+
deleteTranscription: (request: {
|
|
133
|
+
type: string;
|
|
134
|
+
id: string;
|
|
135
|
+
session: string;
|
|
136
|
+
filename: string;
|
|
137
|
+
}) => Promise<StreamResponse<DeleteTranscriptionResponse>>;
|
|
138
|
+
queryCalls: (request?: QueryCallsRequest) => Promise<StreamResponse<QueryCallsResponse>>;
|
|
139
|
+
listCallTypes: () => Promise<StreamResponse<ListCallTypeResponse>>;
|
|
140
|
+
createCallType: (request: CreateCallTypeRequest) => Promise<StreamResponse<CreateCallTypeResponse>>;
|
|
141
|
+
deleteCallType: (request: {
|
|
142
|
+
name: string;
|
|
143
|
+
}) => Promise<StreamResponse<Response>>;
|
|
144
|
+
getCallType: (request: {
|
|
145
|
+
name: string;
|
|
146
|
+
}) => Promise<StreamResponse<GetCallTypeResponse>>;
|
|
147
|
+
updateCallType: (request: UpdateCallTypeRequest & {
|
|
148
|
+
name: string;
|
|
149
|
+
}) => Promise<StreamResponse<UpdateCallTypeResponse>>;
|
|
150
|
+
getEdges: () => Promise<StreamResponse<GetEdgesResponse>>;
|
|
151
|
+
}
|
package/dist/src/types.d.ts
CHANGED
|
@@ -1,4 +1,29 @@
|
|
|
1
1
|
export type OmitTypeId<T> = Omit<T, 'type' | 'id' | 'connection_id'>;
|
|
2
|
+
export interface ApiConfig {
|
|
3
|
+
apiKey: string;
|
|
4
|
+
token: string;
|
|
5
|
+
baseUrl: string;
|
|
6
|
+
timeout: number;
|
|
7
|
+
}
|
|
8
|
+
export interface RequestMetadata {
|
|
9
|
+
responseHeaders: Headers;
|
|
10
|
+
rateLimit: RateLimit;
|
|
11
|
+
responseCode: number;
|
|
12
|
+
clientRequestId: string;
|
|
13
|
+
}
|
|
14
|
+
export type StreamResponse<T> = T & {
|
|
15
|
+
metadata: RequestMetadata;
|
|
16
|
+
};
|
|
17
|
+
export declare class StreamError extends Error {
|
|
18
|
+
metadata: Partial<RequestMetadata>;
|
|
19
|
+
code?: number | undefined;
|
|
20
|
+
constructor(message: string, metadata: Partial<RequestMetadata>, code?: number | undefined, errorOptions?: ErrorOptions);
|
|
21
|
+
}
|
|
22
|
+
export interface RateLimit {
|
|
23
|
+
rateLimit?: number;
|
|
24
|
+
rateLimitRemaining?: number;
|
|
25
|
+
rateLimitReset?: Date;
|
|
26
|
+
}
|
|
2
27
|
interface BaseTokenPayload {
|
|
3
28
|
user_id: string;
|
|
4
29
|
exp: number;
|
package/index.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
export * from './src/gen/
|
|
2
|
-
export * from './src/gen/video/models';
|
|
1
|
+
export * from './src/gen/models';
|
|
3
2
|
export * from './src/StreamClient';
|
|
4
|
-
export * from './src/StreamVideoClient';
|
|
5
3
|
export * from './src/StreamCall';
|
|
6
4
|
export * from './src/StreamChatClient';
|
|
7
5
|
export * from './src/StreamChannel';
|
|
6
|
+
export * from './src/StreamVideoClient';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stream-io/node-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -25,11 +25,11 @@
|
|
|
25
25
|
"test:bun": "bun run vitest",
|
|
26
26
|
"start": "rollup -w -c",
|
|
27
27
|
"build": "rm -rf dist && rollup -c",
|
|
28
|
-
"generate:open-api": "./generate-openapi.sh
|
|
29
|
-
"generate:open-api:dev": "./generate-openapi.sh chat $PRODUCT",
|
|
28
|
+
"generate:open-api": "./generate-openapi.sh",
|
|
30
29
|
"lint": "eslint **/*.ts",
|
|
31
30
|
"lint:fix": "eslint --fix **/*.ts",
|
|
32
|
-
"prettier:fix": "prettier . --write"
|
|
31
|
+
"prettier:fix": "prettier . --write",
|
|
32
|
+
"lint:gen": "eslint --fix src/gen/**/*ts && prettier src/gen/**/*.ts --write"
|
|
33
33
|
},
|
|
34
34
|
"lint-staged": {
|
|
35
35
|
"**/*": [
|
|
@@ -58,6 +58,7 @@
|
|
|
58
58
|
"eslint-plugin-import": "^2.25.2",
|
|
59
59
|
"eslint-plugin-n": "^15.0.0 || ^16.0.0 ",
|
|
60
60
|
"eslint-plugin-promise": "^6.0.0",
|
|
61
|
+
"eslint-plugin-unused-imports": "^4.0.1",
|
|
61
62
|
"husky": "^8.0.3",
|
|
62
63
|
"lint-staged": "^15.1.0",
|
|
63
64
|
"prettier": "^3.1.0",
|
package/src/BaseApi.ts
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
2
|
+
import { ApiConfig, RequestMetadata, StreamError } from './types';
|
|
3
|
+
import { APIError } from './gen/models';
|
|
4
|
+
import { getRateLimitFromResponseHeader } from './utils/rate-limit';
|
|
5
|
+
|
|
6
|
+
export class BaseApi {
|
|
7
|
+
constructor(private readonly apiConfig: ApiConfig) {}
|
|
8
|
+
|
|
9
|
+
protected sendRequest = async <T>(
|
|
10
|
+
method: string,
|
|
11
|
+
url: string,
|
|
12
|
+
pathParams?: Record<string, string>,
|
|
13
|
+
queryParams?: Record<string, any>,
|
|
14
|
+
body?: any,
|
|
15
|
+
) => {
|
|
16
|
+
queryParams = queryParams ?? {};
|
|
17
|
+
queryParams.api_key = this.apiConfig.apiKey;
|
|
18
|
+
const encodedParams = this.queryParamsStringify(queryParams);
|
|
19
|
+
if (pathParams) {
|
|
20
|
+
Object.keys(pathParams).forEach((paramName) => {
|
|
21
|
+
url = url.replace(`{${paramName}}`, pathParams[paramName]);
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
url += `?${encodedParams}`;
|
|
25
|
+
const clientRequestId = uuidv4();
|
|
26
|
+
const headers = {
|
|
27
|
+
Authorization: this.apiConfig.token,
|
|
28
|
+
'stream-auth-type': 'jwt',
|
|
29
|
+
'Content-Type': 'application/json',
|
|
30
|
+
'X-Stream-Client': 'stream-node-' + process.env.PKG_VERSION,
|
|
31
|
+
'Accept-Encoding': 'gzip',
|
|
32
|
+
'x-client-request-id': clientRequestId,
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
const signal = AbortSignal.timeout(this.apiConfig.timeout);
|
|
36
|
+
|
|
37
|
+
try {
|
|
38
|
+
const response = await fetch(`${this.apiConfig.baseUrl}${url}`, {
|
|
39
|
+
signal,
|
|
40
|
+
method,
|
|
41
|
+
body: JSON.stringify(body),
|
|
42
|
+
headers,
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
const responseHeaders = response.headers;
|
|
46
|
+
|
|
47
|
+
const metadata: RequestMetadata = {
|
|
48
|
+
clientRequestId,
|
|
49
|
+
responseHeaders,
|
|
50
|
+
responseCode: response.status,
|
|
51
|
+
rateLimit: getRateLimitFromResponseHeader(responseHeaders),
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
if (response.status < 200 || response.status >= 300) {
|
|
55
|
+
const error = (await response.json()) as APIError;
|
|
56
|
+
throw new StreamError(
|
|
57
|
+
`Stream error code ${error.code}: ${error.message}`,
|
|
58
|
+
metadata,
|
|
59
|
+
error.code,
|
|
60
|
+
undefined,
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
const responseBody = (await response.json()) as T;
|
|
65
|
+
|
|
66
|
+
return { body: responseBody, metadata };
|
|
67
|
+
} catch (error: any) {
|
|
68
|
+
if (error instanceof StreamError) {
|
|
69
|
+
throw error;
|
|
70
|
+
}
|
|
71
|
+
const metadata: Partial<RequestMetadata> = {
|
|
72
|
+
clientRequestId,
|
|
73
|
+
responseCode: error.status,
|
|
74
|
+
};
|
|
75
|
+
if (error.name === 'AbortError' || error.name === 'TimeoutError') {
|
|
76
|
+
throw new StreamError(
|
|
77
|
+
`The request was aborted due to to the ${this.apiConfig.timeout}ms timeout, you can set the timeout in the StreamClient constructor`,
|
|
78
|
+
metadata,
|
|
79
|
+
undefined,
|
|
80
|
+
error,
|
|
81
|
+
);
|
|
82
|
+
} else {
|
|
83
|
+
throw new StreamError(
|
|
84
|
+
`The request failed due to an unexpected error`,
|
|
85
|
+
metadata,
|
|
86
|
+
error,
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
protected queryParamsStringify = (params: Record<string, any>) => {
|
|
93
|
+
const newParams = [];
|
|
94
|
+
for (const k in params) {
|
|
95
|
+
const param = params[k];
|
|
96
|
+
if (Array.isArray(param)) {
|
|
97
|
+
newParams.push(`${k}=${encodeURIComponent(param.join(','))}`);
|
|
98
|
+
} else if (param instanceof Date) {
|
|
99
|
+
newParams.push(param.toISOString());
|
|
100
|
+
} else if (typeof param === 'object') {
|
|
101
|
+
newParams.push(`${k}=${encodeURIComponent(JSON.stringify(param))}`);
|
|
102
|
+
} else {
|
|
103
|
+
if (
|
|
104
|
+
typeof param === 'string' ||
|
|
105
|
+
typeof param === 'number' ||
|
|
106
|
+
typeof param === 'boolean'
|
|
107
|
+
) {
|
|
108
|
+
newParams.push(`${k}=${encodeURIComponent(param)}`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
return newParams.join('&');
|
|
114
|
+
};
|
|
115
|
+
}
|
package/src/StreamCall.ts
CHANGED
|
@@ -1,209 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
DeleteRecordingRequest,
|
|
4
|
-
DeleteTranscriptionRequest,
|
|
5
|
-
GetCallRequest,
|
|
6
|
-
GetCallStatsRequest,
|
|
7
|
-
ProductvideoApi,
|
|
8
|
-
VideoBlockUserRequest,
|
|
9
|
-
VideoDeleteCallRequest,
|
|
10
|
-
VideoGetOrCreateCallRequest,
|
|
11
|
-
VideoGoLiveRequest,
|
|
12
|
-
VideoMuteUsersRequest,
|
|
13
|
-
VideoPinRequest,
|
|
14
|
-
VideoQueryCallMembersRequest,
|
|
15
|
-
VideoSendCallEventRequest,
|
|
16
|
-
VideoStartRecordingRequest,
|
|
17
|
-
VideoStartTranscriptionRequest,
|
|
18
|
-
VideoUnblockUserRequest,
|
|
19
|
-
VideoUnpinRequest,
|
|
20
|
-
VideoUpdateCallMembersRequest,
|
|
21
|
-
VideoUpdateCallRequest,
|
|
22
|
-
VideoUpdateUserPermissionsRequest,
|
|
23
|
-
} from './gen/video';
|
|
1
|
+
import { QueryCallMembersRequest } from './gen/models';
|
|
2
|
+
import { CallApi } from './gen/video/CallApi';
|
|
24
3
|
import { OmitTypeId } from './types';
|
|
25
4
|
|
|
26
|
-
export class StreamCall {
|
|
27
|
-
private readonly baseRequest: { type: string; id: string };
|
|
28
|
-
private readonly apiClient: ProductvideoApi;
|
|
29
|
-
|
|
30
|
-
constructor(
|
|
31
|
-
private readonly streamClient: StreamClient,
|
|
32
|
-
public readonly type: string,
|
|
33
|
-
public readonly id: string,
|
|
34
|
-
) {
|
|
35
|
-
this.baseRequest = { id: this.id, type: this.type };
|
|
36
|
-
const configuration = this.streamClient.getConfiguration('video');
|
|
37
|
-
this.apiClient = new ProductvideoApi(configuration);
|
|
38
|
-
}
|
|
39
|
-
|
|
5
|
+
export class StreamCall extends CallApi {
|
|
40
6
|
get cid() {
|
|
41
7
|
return `${this.type}:${this.id}`;
|
|
42
8
|
}
|
|
43
9
|
|
|
44
|
-
|
|
45
|
-
return this.apiClient.blockUser({
|
|
46
|
-
...this.baseRequest,
|
|
47
|
-
videoBlockUserRequest,
|
|
48
|
-
});
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
endCall = () => {
|
|
52
|
-
return this.apiClient.endCall({ ...this.baseRequest });
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
get = (request?: OmitTypeId<GetCallRequest>) => {
|
|
56
|
-
return this.apiClient.getCall({ ...(request ?? {}), ...this.baseRequest });
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
delete = (videoDeleteCallRequest?: VideoDeleteCallRequest) => {
|
|
60
|
-
return this.apiClient.deleteCall({
|
|
61
|
-
...this.baseRequest,
|
|
62
|
-
videoDeleteCallRequest: videoDeleteCallRequest ?? null,
|
|
63
|
-
});
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
getOrCreate = (videoGetOrCreateCallRequest?: VideoGetOrCreateCallRequest) => {
|
|
67
|
-
return this.apiClient.getOrCreateCall({
|
|
68
|
-
...this.baseRequest,
|
|
69
|
-
videoGetOrCreateCallRequest: videoGetOrCreateCallRequest ?? {},
|
|
70
|
-
});
|
|
71
|
-
};
|
|
72
|
-
|
|
73
|
-
getSessionStatistics = (request: OmitTypeId<GetCallStatsRequest>) => {
|
|
74
|
-
return this.apiClient.getCallStats({ ...this.baseRequest, ...request });
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
create = (getOrCreateCallRequest?: VideoGetOrCreateCallRequest) => {
|
|
78
|
-
return this.getOrCreate(getOrCreateCallRequest);
|
|
79
|
-
};
|
|
80
|
-
|
|
81
|
-
goLive = (videoGoLiveRequest?: VideoGoLiveRequest) => {
|
|
82
|
-
return this.apiClient.goLive({
|
|
83
|
-
...this.baseRequest,
|
|
84
|
-
videoGoLiveRequest: videoGoLiveRequest ?? {},
|
|
85
|
-
});
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
listRecordings = () => {
|
|
89
|
-
return this.apiClient.listRecordings({
|
|
90
|
-
...this.baseRequest,
|
|
91
|
-
});
|
|
92
|
-
};
|
|
93
|
-
|
|
94
|
-
deleteRecording = (request: OmitTypeId<DeleteRecordingRequest>) => {
|
|
95
|
-
return this.apiClient.deleteRecording({ ...this.baseRequest, ...request });
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
listTranscriptions = () => {
|
|
99
|
-
return this.apiClient.listTranscriptions({
|
|
100
|
-
...this.baseRequest,
|
|
101
|
-
});
|
|
102
|
-
};
|
|
103
|
-
|
|
104
|
-
muteUsers = (videoMuteUsersRequest: VideoMuteUsersRequest) => {
|
|
105
|
-
return this.apiClient.muteUsers({
|
|
106
|
-
...this.baseRequest,
|
|
107
|
-
videoMuteUsersRequest,
|
|
108
|
-
});
|
|
109
|
-
};
|
|
110
|
-
|
|
111
|
-
queryMembers = (request?: OmitTypeId<VideoQueryCallMembersRequest>) => {
|
|
112
|
-
return this.apiClient.queryCallMembers({
|
|
113
|
-
videoQueryCallMembersRequest: { ...(request ?? {}), ...this.baseRequest },
|
|
114
|
-
});
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
sendCustomEvent = (videoSendCallEventRequest: VideoSendCallEventRequest) => {
|
|
118
|
-
return this.apiClient.sendCallEvent({
|
|
119
|
-
videoSendCallEventRequest,
|
|
120
|
-
...this.baseRequest,
|
|
121
|
-
});
|
|
122
|
-
};
|
|
123
|
-
|
|
124
|
-
startHLSBroadcasting = () => {
|
|
125
|
-
return this.apiClient.startHLSBroadcasting({ ...this.baseRequest });
|
|
126
|
-
};
|
|
127
|
-
|
|
128
|
-
startRecording = (request?: VideoStartRecordingRequest) => {
|
|
129
|
-
return this.apiClient.startRecording({
|
|
130
|
-
...this.baseRequest,
|
|
131
|
-
videoStartRecordingRequest: request ?? {},
|
|
132
|
-
});
|
|
133
|
-
};
|
|
134
|
-
|
|
135
|
-
startTranscription = (
|
|
136
|
-
videoStartTranscriptionRequest: VideoStartTranscriptionRequest = {},
|
|
137
|
-
) => {
|
|
138
|
-
return this.apiClient.startTranscription({
|
|
139
|
-
...this.baseRequest,
|
|
140
|
-
videoStartTranscriptionRequest,
|
|
141
|
-
});
|
|
142
|
-
};
|
|
143
|
-
|
|
144
|
-
deleteTranscription = (request: OmitTypeId<DeleteTranscriptionRequest>) => {
|
|
145
|
-
return this.apiClient.deleteTranscription({
|
|
146
|
-
...this.baseRequest,
|
|
147
|
-
...request,
|
|
148
|
-
});
|
|
149
|
-
};
|
|
150
|
-
|
|
151
|
-
stopHLSBroadcasting = () => {
|
|
152
|
-
return this.apiClient.stopHLSBroadcasting({ ...this.baseRequest });
|
|
153
|
-
};
|
|
154
|
-
|
|
155
|
-
stopLive = () => {
|
|
156
|
-
return this.apiClient.stopLive({ ...this.baseRequest });
|
|
157
|
-
};
|
|
158
|
-
|
|
159
|
-
stopRecording = () => {
|
|
160
|
-
return this.apiClient.stopRecording({ ...this.baseRequest });
|
|
161
|
-
};
|
|
162
|
-
|
|
163
|
-
stopTranscription = () => {
|
|
164
|
-
return this.apiClient.stopTranscription({ ...this.baseRequest });
|
|
165
|
-
};
|
|
166
|
-
|
|
167
|
-
unblockUser = (videoUnblockUserRequest: VideoUnblockUserRequest) => {
|
|
168
|
-
return this.apiClient.unblockUser({
|
|
169
|
-
videoUnblockUserRequest,
|
|
170
|
-
...this.baseRequest,
|
|
171
|
-
});
|
|
172
|
-
};
|
|
173
|
-
|
|
174
|
-
update = (videoUpdateCallRequest: VideoUpdateCallRequest) => {
|
|
175
|
-
return this.apiClient.updateCall({
|
|
176
|
-
videoUpdateCallRequest,
|
|
177
|
-
...this.baseRequest,
|
|
178
|
-
});
|
|
179
|
-
};
|
|
180
|
-
|
|
181
|
-
updateCallMembers = (
|
|
182
|
-
videoUpdateCallMembersRequest: VideoUpdateCallMembersRequest,
|
|
183
|
-
) => {
|
|
184
|
-
return this.apiClient.updateCallMembers({
|
|
185
|
-
videoUpdateCallMembersRequest,
|
|
186
|
-
...this.baseRequest,
|
|
187
|
-
});
|
|
188
|
-
};
|
|
189
|
-
|
|
190
|
-
updateUserPermissions = (
|
|
191
|
-
videoUpdateUserPermissionsRequest: VideoUpdateUserPermissionsRequest,
|
|
192
|
-
) => {
|
|
193
|
-
return this.apiClient.updateUserPermissions({
|
|
194
|
-
videoUpdateUserPermissionsRequest,
|
|
195
|
-
...this.baseRequest,
|
|
196
|
-
});
|
|
197
|
-
};
|
|
198
|
-
|
|
199
|
-
pinVideo = (videoPinRequest: VideoPinRequest) => {
|
|
200
|
-
return this.apiClient.videoPin({ videoPinRequest, ...this.baseRequest });
|
|
201
|
-
};
|
|
10
|
+
create = this.getOrCreate;
|
|
202
11
|
|
|
203
|
-
|
|
204
|
-
return this.
|
|
205
|
-
|
|
206
|
-
|
|
12
|
+
queryMembers = (request?: OmitTypeId<QueryCallMembersRequest>) => {
|
|
13
|
+
return this.videoApi.queryCallMembers({
|
|
14
|
+
id: this.id,
|
|
15
|
+
type: this.type,
|
|
16
|
+
...(request ?? {}),
|
|
207
17
|
});
|
|
208
18
|
};
|
|
209
19
|
}
|