@stream-io/node-sdk 0.1.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.
Files changed (101) hide show
  1. package/.readme-assets/Github-Graphic-JS.jpg +0 -0
  2. package/LICENSE +219 -0
  3. package/README.md +29 -0
  4. package/dist/__tests__/block-lists.test.d.ts +1 -0
  5. package/dist/__tests__/call-members.test.d.ts +1 -0
  6. package/dist/__tests__/call-types.test.d.ts +1 -0
  7. package/dist/__tests__/call.test.d.ts +1 -0
  8. package/dist/__tests__/channel-types.test.d.ts +1 -0
  9. package/dist/__tests__/channel.test.d.ts +1 -0
  10. package/dist/__tests__/command.test.d.ts +1 -0
  11. package/dist/__tests__/create-token.test.d.ts +1 -0
  12. package/dist/__tests__/devices-push.test.d.ts +1 -0
  13. package/dist/__tests__/messages.test.d.ts +1 -0
  14. package/dist/__tests__/permissions-app-settings.test.d.ts +1 -0
  15. package/dist/__tests__/user-compat.test.d.ts +1 -0
  16. package/dist/__tests__/users.test.d.ts +1 -0
  17. package/dist/index.cjs.js +8789 -0
  18. package/dist/index.cjs.js.map +1 -0
  19. package/dist/index.d.ts +7 -0
  20. package/dist/index.es.js +8708 -0
  21. package/dist/index.es.js.map +1 -0
  22. package/dist/src/StreamCall.d.ts +37 -0
  23. package/dist/src/StreamChannel.d.ts +39 -0
  24. package/dist/src/StreamChatClient.d.ts +31 -0
  25. package/dist/src/StreamClient.d.ts +68 -0
  26. package/dist/src/StreamVideoClient.d.ts +16 -0
  27. package/dist/src/gen/chat/apis/ChannelTypesApi.d.ts +81 -0
  28. package/dist/src/gen/chat/apis/ChannelsApi.d.ts +308 -0
  29. package/dist/src/gen/chat/apis/CustomCommandsApi.d.ts +81 -0
  30. package/dist/src/gen/chat/apis/DefaultApi.d.ts +60 -0
  31. package/dist/src/gen/chat/apis/DevicesApi.d.ts +58 -0
  32. package/dist/src/gen/chat/apis/EventsApi.d.ts +64 -0
  33. package/dist/src/gen/chat/apis/FilesApi.d.ts +81 -0
  34. package/dist/src/gen/chat/apis/GDPRApi.d.ts +114 -0
  35. package/dist/src/gen/chat/apis/ImportsApi.d.ts +67 -0
  36. package/dist/src/gen/chat/apis/MessagesApi.d.ts +370 -0
  37. package/dist/src/gen/chat/apis/ModerationApi.d.ts +271 -0
  38. package/dist/src/gen/chat/apis/PermissionsV2Api.d.ts +77 -0
  39. package/dist/src/gen/chat/apis/PushApi.d.ts +65 -0
  40. package/dist/src/gen/chat/apis/ReactionsApi.d.ts +62 -0
  41. package/dist/src/gen/chat/apis/ServerSideApi.d.ts +31 -0
  42. package/dist/src/gen/chat/apis/SettingsApi.d.ts +257 -0
  43. package/dist/src/gen/chat/apis/TasksApi.d.ts +31 -0
  44. package/dist/src/gen/chat/apis/TestingApi.d.ts +57 -0
  45. package/dist/src/gen/chat/apis/UsersApi.d.ts +313 -0
  46. package/dist/src/gen/chat/apis/index.d.ts +19 -0
  47. package/dist/src/gen/chat/index.d.ts +3 -0
  48. package/dist/src/gen/chat/models/index.d.ts +15624 -0
  49. package/dist/src/gen/chat/runtime.d.ts +180 -0
  50. package/dist/src/gen/video/apis/DefaultApi.d.ts +505 -0
  51. package/dist/src/gen/video/apis/ServerSideApi.d.ts +81 -0
  52. package/dist/src/gen/video/apis/index.d.ts +2 -0
  53. package/dist/src/gen/video/index.d.ts +3 -0
  54. package/dist/src/gen/video/models/index.d.ts +4733 -0
  55. package/dist/src/gen/video/runtime.d.ts +180 -0
  56. package/dist/src/types.d.ts +1 -0
  57. package/dist/src/utils/create-token.d.ts +3 -0
  58. package/index.ts +7 -0
  59. package/package.json +47 -0
  60. package/src/StreamCall.ts +161 -0
  61. package/src/StreamChannel.ts +165 -0
  62. package/src/StreamChatClient.ts +102 -0
  63. package/src/StreamClient.ts +440 -0
  64. package/src/StreamVideoClient.ts +63 -0
  65. package/src/gen/chat/.openapi-generator/FILES +24 -0
  66. package/src/gen/chat/.openapi-generator/VERSION +1 -0
  67. package/src/gen/chat/.openapi-generator-ignore +23 -0
  68. package/src/gen/chat/apis/ChannelTypesApi.ts +275 -0
  69. package/src/gen/chat/apis/ChannelsApi.ts +1221 -0
  70. package/src/gen/chat/apis/CustomCommandsApi.ts +276 -0
  71. package/src/gen/chat/apis/DefaultApi.ts +196 -0
  72. package/src/gen/chat/apis/DevicesApi.ts +180 -0
  73. package/src/gen/chat/apis/EventsApi.ts +220 -0
  74. package/src/gen/chat/apis/FilesApi.ts +312 -0
  75. package/src/gen/chat/apis/GDPRApi.ts +418 -0
  76. package/src/gen/chat/apis/ImportsApi.ts +222 -0
  77. package/src/gen/chat/apis/MessagesApi.ts +1475 -0
  78. package/src/gen/chat/apis/ModerationApi.ts +1038 -0
  79. package/src/gen/chat/apis/PermissionsV2Api.ts +259 -0
  80. package/src/gen/chat/apis/PushApi.ts +183 -0
  81. package/src/gen/chat/apis/ReactionsApi.ts +202 -0
  82. package/src/gen/chat/apis/ServerSideApi.ts +79 -0
  83. package/src/gen/chat/apis/SettingsApi.ts +948 -0
  84. package/src/gen/chat/apis/TasksApi.ts +75 -0
  85. package/src/gen/chat/apis/TestingApi.ts +185 -0
  86. package/src/gen/chat/apis/UsersApi.ts +1203 -0
  87. package/src/gen/chat/apis/index.ts +30 -0
  88. package/src/gen/chat/index.ts +5 -0
  89. package/src/gen/chat/models/index.ts +15541 -0
  90. package/src/gen/chat/runtime.ts +415 -0
  91. package/src/gen/video/.openapi-generator/FILES +7 -0
  92. package/src/gen/video/.openapi-generator/VERSION +1 -0
  93. package/src/gen/video/.openapi-generator-ignore +23 -0
  94. package/src/gen/video/apis/DefaultApi.ts +1997 -0
  95. package/src/gen/video/apis/ServerSideApi.ts +276 -0
  96. package/src/gen/video/apis/index.ts +4 -0
  97. package/src/gen/video/index.ts +5 -0
  98. package/src/gen/video/models/index.ts +4642 -0
  99. package/src/gen/video/runtime.ts +415 -0
  100. package/src/types.ts +1 -0
  101. package/src/utils/create-token.ts +49 -0
@@ -0,0 +1,440 @@
1
+ import { StreamChatClient } from "./StreamChatClient";
2
+ import { StreamVideoClient } from "./StreamVideoClient";
3
+ import {
4
+ APIError,
5
+ BanRequest,
6
+ CheckPushRequest,
7
+ CreateDeviceRequest,
8
+ CreateRoleRequest,
9
+ DeactivateUserRequest,
10
+ DeactivateUsersRequest,
11
+ DeleteDeviceRequest,
12
+ DeletePushProviderRequest,
13
+ DeleteRoleRequest,
14
+ DeleteUserRequest,
15
+ DeleteUsersRequest,
16
+ DevicesApi,
17
+ EventsApi,
18
+ ExportUserRequest,
19
+ ExportUsersRequest,
20
+ FlagRequest,
21
+ GetPermissionRequest,
22
+ GetTaskRequest,
23
+ GuestRequest,
24
+ ListDevicesRequest,
25
+ MuteUserRequest,
26
+ PermissionsV2Api,
27
+ PushApi,
28
+ PushProviderRequest,
29
+ QueryBannedUsersRequest,
30
+ QueryUsersRequest,
31
+ ReactivateUserRequest,
32
+ ReactivateUsersRequest,
33
+ RestoreUsersRequest,
34
+ ServerSideApi,
35
+ SettingsApi,
36
+ TasksApi,
37
+ TestingApi,
38
+ UnbanRequest,
39
+ UnmuteUserRequest,
40
+ UpdateAppRequest,
41
+ UpdateUserPartialRequest,
42
+ UpdateUsersRequest,
43
+ UserCustomEventRequest,
44
+ UserObject,
45
+ UserObjectRequest,
46
+ UserResponse,
47
+ UsersApi,
48
+ } from "./gen/chat";
49
+ import {
50
+ Configuration,
51
+ HTTPQuery,
52
+ JSONApiResponse,
53
+ RequestContext,
54
+ ResponseContext,
55
+ } from "./gen/video";
56
+ import { v4 as uuidv4 } from "uuid";
57
+ import { JWTServerToken, JWTUserToken } from "./utils/create-token";
58
+
59
+ export class StreamClient {
60
+ public readonly video: StreamVideoClient;
61
+ public readonly chat: StreamChatClient;
62
+ private readonly usersApi: UsersApi;
63
+ private readonly devicesApi: DevicesApi;
64
+ private readonly pushApi: PushApi;
65
+ private readonly serversideApi: ServerSideApi;
66
+ private readonly testingApi: TestingApi;
67
+ private readonly permissionsApi: PermissionsV2Api;
68
+ private readonly settingsApi: SettingsApi;
69
+ private readonly eventsApi: EventsApi;
70
+ private readonly tasksApi: TasksApi;
71
+ private token: string;
72
+
73
+ constructor(
74
+ private apiKey: string,
75
+ private secret: string,
76
+ public readonly basePath?: string
77
+ ) {
78
+ this.token = JWTServerToken(this.secret);
79
+ this.video = new StreamVideoClient(this);
80
+ this.chat = new StreamChatClient(this);
81
+
82
+ const chatConfiguration = this.getConfiguration();
83
+ //@ts-expect-error typing problem
84
+ this.usersApi = new UsersApi(chatConfiguration);
85
+ //@ts-expect-error typing problem
86
+ this.devicesApi = new DevicesApi(chatConfiguration);
87
+ //@ts-expect-error typing problem
88
+ this.pushApi = new PushApi(chatConfiguration);
89
+ //@ts-expect-error typing problem
90
+ this.serversideApi = new ServerSideApi(chatConfiguration);
91
+ //@ts-expect-error typing problem
92
+ this.testingApi = new TestingApi(chatConfiguration);
93
+ //@ts-expect-error typing problem
94
+ this.permissionsApi = new PermissionsV2Api(chatConfiguration);
95
+ //@ts-expect-error typing problem
96
+ this.settingsApi = new SettingsApi(chatConfiguration);
97
+ //@ts-expect-error typing problem
98
+ this.eventsApi = new EventsApi(chatConfiguration);
99
+ //@ts-expect-error typing problem
100
+ this.tasksApi = new TasksApi(chatConfiguration);
101
+ }
102
+
103
+ createToken(
104
+ userID: string,
105
+ exp?: number,
106
+ iat?: number,
107
+ call_cids?: string[],
108
+ ) {
109
+ const extra: { exp?: number; iat?: number; call_cids?: string[] } = {};
110
+
111
+ if (exp) {
112
+ extra.exp = exp;
113
+ }
114
+
115
+ if (iat) {
116
+ extra.iat = iat;
117
+ }
118
+
119
+ if (call_cids) {
120
+ extra.call_cids = call_cids;
121
+ }
122
+
123
+ return JWTUserToken(this.secret, userID, extra);
124
+ }
125
+
126
+ createDevice = (createDeviceRequest: CreateDeviceRequest) => {
127
+ return this.devicesApi.createDevice({ createDeviceRequest });
128
+ };
129
+ deleteDevice = (requestParameters: DeleteDeviceRequest) => {
130
+ return this.devicesApi.deleteDevice(requestParameters);
131
+ };
132
+ listDevices = (requestParameters: ListDevicesRequest) => {
133
+ return this.devicesApi.listDevices(requestParameters);
134
+ };
135
+
136
+ listPushProviders= () => {
137
+ return this.pushApi.listPushProviders();
138
+ }
139
+
140
+ deletePushProvider = (request: DeletePushProviderRequest) => {
141
+ return this.pushApi.deletePushProvider(request);
142
+ }
143
+
144
+ upsertPushProvider = (request: PushProviderRequest) => {
145
+ return this.serversideApi.upsertPushProvider({upsertPushProviderRequest: {push_provider: request}});
146
+ }
147
+
148
+ checkPush = (checkPushRequest: CheckPushRequest) => {
149
+ return this.testingApi.checkPush({checkPushRequest});
150
+ }
151
+
152
+ createGuest = async (guestRequest: GuestRequest) => {
153
+ guestRequest.user = this.mapCustomDataBeforeSend(guestRequest.user);
154
+ const response = await this.usersApi.createGuest({ guestRequest });
155
+ response.user = this.mapCustomDataAfterReceive(response.user);
156
+
157
+ return response;
158
+ };
159
+
160
+ banUser = (banRequest: BanRequest) => {
161
+ banRequest.user = this.mapCustomDataBeforeSend(banRequest.user);
162
+ banRequest.banned_by = this.mapCustomDataBeforeSend(banRequest.banned_by);
163
+ return this.usersApi.ban({ banRequest });
164
+ };
165
+
166
+ deactivateUser = async (deactivateUserRequest: DeactivateUserRequest) => {
167
+ const response = await this.usersApi.deactivateUser({
168
+ deactivateUserRequest,
169
+ userId: deactivateUserRequest.user_id,
170
+ });
171
+ response.user = this.mapCustomDataAfterReceive(response.user);
172
+
173
+ return response;
174
+ };
175
+
176
+ deactivateUsers = (deactivateUsersRequest: DeactivateUsersRequest) => {
177
+ return this.usersApi.deactivateUsers({ deactivateUsersRequest });
178
+ };
179
+
180
+ deleteUser = async (request: DeleteUserRequest) => {
181
+ const response = await this.usersApi.deleteUser(request);
182
+ response.user = this.mapCustomDataAfterReceive(response.user);
183
+
184
+ return response;
185
+ };
186
+
187
+ deleteUsers = (deleteUsersRequest: DeleteUsersRequest) => {
188
+ return this.usersApi.deleteUsers({ deleteUsersRequest });
189
+ };
190
+
191
+ exportUser = (request: ExportUserRequest) => {
192
+ return this.usersApi.exportUser(request);
193
+ };
194
+
195
+ exportUsers = (exportUsersRequest: ExportUsersRequest) => {
196
+ return this.usersApi.exportUsers({ exportUsersRequest });
197
+ };
198
+
199
+ flag = async (flagRequest: FlagRequest) => {
200
+ flagRequest.user = this.mapCustomDataBeforeSend(flagRequest.user);
201
+ const response = await this.usersApi.flag({ flagRequest });
202
+ if (response.flag?.user) {
203
+ response.flag.user = this.mapCustomDataAfterReceive(response.flag?.user);
204
+ }
205
+
206
+ return response;
207
+ };
208
+
209
+ queryBannedUsers = async (payload: QueryBannedUsersRequest) => {
210
+ payload.user = this.mapCustomDataBeforeSend(payload.user);
211
+ const response = await this.usersApi.queryBannedUsers({ payload });
212
+ response.bans.forEach(b => {
213
+ b.banned_by = this.mapCustomDataAfterReceive(b.banned_by);
214
+ b.user = this.mapCustomDataAfterReceive(b.user);
215
+ })
216
+
217
+ return response;
218
+ };
219
+
220
+ queryUsers = async (payload: QueryUsersRequest) => {
221
+ payload.user = this.mapCustomDataBeforeSend(payload.user);
222
+ const response = await this.usersApi.queryUsers({ payload });
223
+ // @ts-expect-error
224
+ response.users = response.users.map(u => this.mapCustomDataAfterReceive(u)!);
225
+
226
+ return response;
227
+ };
228
+
229
+ reactivateUser = async (reactivateUserRequest: ReactivateUserRequest) => {
230
+ const response = await this.usersApi.reactivateUser({
231
+ reactivateUserRequest,
232
+ userId: reactivateUserRequest.user_id,
233
+ });
234
+ response.user = this.mapCustomDataAfterReceive(response.user);
235
+ };
236
+
237
+ reactivateUsers = (reactivateUsersRequest: ReactivateUsersRequest) => {
238
+ return this.usersApi.reactivateUsers({ reactivateUsersRequest });
239
+ };
240
+
241
+ restoreUsers = (restoreUsersRequest: RestoreUsersRequest) => {
242
+ return this.usersApi.restoreUsers({ restoreUsersRequest });
243
+ };
244
+
245
+ unbanUser = (request: UnbanRequest) => {
246
+ return this.usersApi.unban(request);
247
+ };
248
+
249
+ unflag = async (flagRequest: FlagRequest) => {
250
+ const response = await this.usersApi.unflag({ flagRequest });
251
+ if (response.flag?.user) {
252
+ response.flag.user = this.mapCustomDataAfterReceive(response.flag.user);
253
+ }
254
+
255
+ return response;
256
+ };
257
+
258
+ upsertUsers = async (updateUsersRequest: UpdateUsersRequest) => {
259
+ Object.keys(updateUsersRequest.users).forEach(key => {
260
+ updateUsersRequest.users[key] = this.mapCustomDataBeforeSend(updateUsersRequest.users[key]);
261
+ })
262
+ const response = await this.usersApi.updateUsers({ updateUsersRequest });
263
+ Object.keys(response.users).forEach(key => {
264
+ response.users[key] = this.mapCustomDataAfterReceive(response.users[key])!;
265
+ });
266
+
267
+ return response;
268
+ };
269
+
270
+ updateUsersPartial = async (request: {users: UpdateUserPartialRequest[]}) => {
271
+ // @ts-expect-error typing error
272
+ const response = await this.usersApi.updateUsersPartial({ updateUserPartialRequest: request });
273
+ Object.keys(response.users).forEach(key => {
274
+ response.users[key] = this.mapCustomDataAfterReceive(response.users[key])!;
275
+ });
276
+
277
+ return response;
278
+ };
279
+
280
+ muteUser = async (muteUserRequest: MuteUserRequest) => {
281
+ muteUserRequest.user = this.mapCustomDataBeforeSend(muteUserRequest.user);
282
+ const response = await this.usersApi.muteUser({ muteUserRequest });
283
+ if (response.mute?.user) {
284
+ response.mute.user = this.mapCustomDataAfterReceive(response.mute?.user);
285
+ }
286
+ if (response.mutes) {
287
+ response.mutes = response.mutes.map(m => {
288
+ return {
289
+ ...m,
290
+ user: this.mapCustomDataAfterReceive(m.user)
291
+ }
292
+ });
293
+ }
294
+
295
+ return response;
296
+ };
297
+
298
+ unmuteUser = (unmuteUserRequest: UnmuteUserRequest) => {
299
+ unmuteUserRequest.user = this.mapCustomDataBeforeSend(unmuteUserRequest.user);
300
+ return this.usersApi.unmuteUser({ unmuteUserRequest });
301
+ };
302
+
303
+ sendCustomEventToUser = (userId: string, event: UserCustomEventRequest) => {
304
+ return this.eventsApi.sendUserCustomEvent({userId, sendUserCustomEventRequest: {event}});
305
+ }
306
+
307
+ createRole = (createRoleRequest: CreateRoleRequest) => {
308
+ return this.permissionsApi.createRole({createRoleRequest});
309
+ }
310
+
311
+ deleteRole = (request: DeleteRoleRequest) => {
312
+ return this.permissionsApi.deleteRole(request);
313
+ }
314
+
315
+ getPermission = (request: GetPermissionRequest) => {
316
+ return this.permissionsApi.getPermission(request);
317
+ }
318
+
319
+ listPermissions = () => {
320
+ return this.permissionsApi.listPermissions();
321
+ }
322
+
323
+ listRoles = () => {
324
+ return this.permissionsApi.listRoles();
325
+ }
326
+
327
+ getAppSettings = () => {
328
+ return this.settingsApi.getApp();
329
+ }
330
+
331
+ updateAppSettings = (updateAppRequest: UpdateAppRequest) => {
332
+ return this.settingsApi.updateApp({updateAppRequest});
333
+ }
334
+
335
+ getRateLimits = () => {
336
+ return this.settingsApi.getRateLimits();
337
+ }
338
+
339
+ getTaskStatus = (request: GetTaskRequest) => {
340
+ return this.tasksApi.getTask(request);
341
+ }
342
+
343
+ getConfiguration = (options?: { basePath?: string }) => {
344
+ return new Configuration({
345
+ apiKey: (name: string) => {
346
+ const mapping: { [key: string]: string } = {
347
+ "Stream-Auth-Type": "jwt",
348
+ api_key: this.apiKey,
349
+ Authorization: this.token,
350
+ };
351
+
352
+ return mapping[name];
353
+ },
354
+ basePath: options?.basePath || this.basePath,
355
+ headers: {
356
+ "X-Stream-Client": "stream-node-" + process.env.PKG_VERSION,
357
+ },
358
+ middleware: [
359
+ {
360
+ pre: (context: RequestContext) => {
361
+ context.init.headers = {
362
+ ...context.init.headers,
363
+ "x-client-request-id": uuidv4(),
364
+ };
365
+
366
+ return Promise.resolve(context);
367
+ },
368
+ },
369
+ {
370
+ // This should be the last post middleware because that will throw an error
371
+ // The Fetch API won't throw an error for HTTP error responses, which means the "onError" middleware won't be called so we need to throw error from "post" middleware
372
+ post: async (context: ResponseContext) => {
373
+ if (
374
+ (context.response && context.response.status < 200) ||
375
+ context.response.status >= 300
376
+ ) {
377
+ const response = new JSONApiResponse(context.response);
378
+ const value = (await response.value()) as APIError;
379
+ throw new Error(
380
+ `Stream error code ${value.code}: ${value.message}`
381
+ );
382
+ }
383
+ },
384
+ },
385
+ ],
386
+ // https://github.com/OpenAPITools/openapi-generator/issues/13222
387
+ queryParamsStringify: (params: HTTPQuery) => {
388
+ const newParams = [];
389
+ for (const k in params) {
390
+ if (Array.isArray(params[k]) || typeof params[k] === "object") {
391
+ newParams.push(
392
+ `${k}=${encodeURIComponent(JSON.stringify(params[k]))}`
393
+ );
394
+ } else {
395
+ const value = params[k];
396
+ if (
397
+ typeof value === "string" ||
398
+ typeof value === "number" ||
399
+ typeof value === "boolean"
400
+ ) {
401
+ newParams.push(`${k}=${encodeURIComponent(value)}`);
402
+ }
403
+ }
404
+ }
405
+
406
+ return newParams.join("&");
407
+ },
408
+ });
409
+ };
410
+
411
+ private reservedKeywords = ['ban_expires', 'banned', 'id', 'invisible', 'language', 'push_notifications', 'revoke_tokens_issued_before', 'role', 'teams', 'created_at', 'deactivated_at', 'deleted_at', 'last_active', 'online', 'updated_at', 'shadow_banned', 'name', 'image'];
412
+ private mapCustomDataBeforeSend = (user: UserObject | UserObjectRequest | UserResponse | undefined) => {
413
+ if (!user) {
414
+ return undefined;
415
+ }
416
+ const copy = {...user};
417
+ delete copy.custom;
418
+ return {...copy, ...user.custom}
419
+ }
420
+
421
+ private mapCustomDataAfterReceive = (user: UserObject | UserResponse | undefined) => {
422
+ if (!user) {
423
+ return undefined;
424
+ }
425
+ // @ts-expect-error
426
+ let result: UserObject | UserResponse = {};
427
+ Object.keys(user).forEach(key => {
428
+ if (!this.reservedKeywords.includes(key)) {
429
+ if (!result.custom) {
430
+ result.custom = {};
431
+ }
432
+ result.custom[key] = (user as any)[key];
433
+ } else {
434
+ result[key] = (user as any)[key];
435
+ }
436
+ });
437
+
438
+ return result;
439
+ }
440
+ }
@@ -0,0 +1,63 @@
1
+ import { StreamCall } from "./StreamCall";
2
+ import { StreamClient } from "./StreamClient";
3
+ import {
4
+ DefaultApi,
5
+ DeleteCallTypeRequest,
6
+ GetCallTypeRequest,
7
+ ServerSideApi,
8
+ VideoCreateCallTypeRequest,
9
+ VideoQueryCallsRequest,
10
+ VideoUpdateCallTypeRequest,
11
+ } from "./gen/video";
12
+
13
+ export class StreamVideoClient {
14
+ private readonly apiClient: DefaultApi;
15
+ private readonly videoServerSideApiClient: ServerSideApi;
16
+
17
+ constructor(private streamClient: StreamClient) {
18
+ const configuration = this.streamClient.getConfiguration({
19
+ basePath:
20
+ this.streamClient.basePath || "https://video.stream-io-api.com/video",
21
+ });
22
+ this.apiClient = new DefaultApi(configuration);
23
+ this.videoServerSideApiClient = new ServerSideApi(configuration);
24
+ }
25
+
26
+ call = (type: string, id: string) => {
27
+ return new StreamCall(this.streamClient, type, id);
28
+ };
29
+
30
+ queryCalls = (request?: VideoQueryCallsRequest) => {
31
+ return this.apiClient.queryCalls({
32
+ videoQueryCallsRequest: request || {},
33
+ });
34
+ };
35
+
36
+ createCallType = (videoCreateCallTypeRequest: VideoCreateCallTypeRequest) => {
37
+ return this.videoServerSideApiClient.createCallType({
38
+ videoCreateCallTypeRequest,
39
+ });
40
+ };
41
+
42
+ deleteCallType = (request: DeleteCallTypeRequest) => {
43
+ return this.videoServerSideApiClient.deleteCallType(request);
44
+ };
45
+
46
+ getCallType = (request: GetCallTypeRequest) => {
47
+ return this.videoServerSideApiClient.getCallType(request);
48
+ };
49
+
50
+ listCallTypes = () => {
51
+ return this.videoServerSideApiClient.listCallTypes();
52
+ };
53
+
54
+ updateCallType = (
55
+ name: string,
56
+ videoUpdateCallTypeRequest: VideoUpdateCallTypeRequest
57
+ ) => {
58
+ return this.videoServerSideApiClient.updateCallType({
59
+ name,
60
+ videoUpdateCallTypeRequest,
61
+ });
62
+ };
63
+ }
@@ -0,0 +1,24 @@
1
+ .openapi-generator-ignore
2
+ apis/ChannelTypesApi.ts
3
+ apis/ChannelsApi.ts
4
+ apis/CustomCommandsApi.ts
5
+ apis/DefaultApi.ts
6
+ apis/DevicesApi.ts
7
+ apis/EventsApi.ts
8
+ apis/FilesApi.ts
9
+ apis/GDPRApi.ts
10
+ apis/ImportsApi.ts
11
+ apis/MessagesApi.ts
12
+ apis/ModerationApi.ts
13
+ apis/PermissionsV2Api.ts
14
+ apis/PushApi.ts
15
+ apis/ReactionsApi.ts
16
+ apis/ServerSideApi.ts
17
+ apis/SettingsApi.ts
18
+ apis/TasksApi.ts
19
+ apis/TestingApi.ts
20
+ apis/UsersApi.ts
21
+ apis/index.ts
22
+ index.ts
23
+ models/index.ts
24
+ runtime.ts
@@ -0,0 +1 @@
1
+ 6.6.0
@@ -0,0 +1,23 @@
1
+ # OpenAPI Generator Ignore
2
+ # Generated by openapi-generator https://github.com/openapitools/openapi-generator
3
+
4
+ # Use this file to prevent files from being overwritten by the generator.
5
+ # The patterns follow closely to .gitignore or .dockerignore.
6
+
7
+ # As an example, the C# client generator defines ApiClient.cs.
8
+ # You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
9
+ #ApiClient.cs
10
+
11
+ # You can match any string of characters against a directory, file or extension with a single asterisk (*):
12
+ #foo/*/qux
13
+ # The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
14
+
15
+ # You can recursively match patterns against a directory, file or extension with a double asterisk (**):
16
+ #foo/**/qux
17
+ # This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
18
+
19
+ # You can also negate patterns with an exclamation (!).
20
+ # For example, you can ignore all files in a docs folder with the file extension .md:
21
+ #docs/*.md
22
+ # Then explicitly reverse the ignore rule for a single file:
23
+ #!docs/README.md