@stream-io/node-sdk 0.4.18 → 0.4.20

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.es.mjs CHANGED
@@ -1,6 +1,7 @@
1
1
  import jwt from 'jsonwebtoken';
2
2
  import { v4 } from 'uuid';
3
3
  import crypto from 'crypto';
4
+ import { Agent } from 'undici';
4
5
 
5
6
  const ChannelOwnCapability = {
6
7
  BAN_CHANNEL_MEMBERS: 'ban-channel-members',
@@ -138,7 +139,7 @@ class BaseApi {
138
139
  Authorization: this.apiConfig.token,
139
140
  'stream-auth-type': 'jwt',
140
141
  'Content-Type': 'application/json',
141
- 'X-Stream-Client': 'stream-node-' + "0.4.18",
142
+ 'X-Stream-Client': 'stream-node-' + "0.4.20",
142
143
  'Accept-Encoding': 'gzip',
143
144
  'x-client-request-id': clientRequestId,
144
145
  };
@@ -149,6 +150,8 @@ class BaseApi {
149
150
  method,
150
151
  body: JSON.stringify(body),
151
152
  headers,
153
+ /** @ts-expect-error we get types from DOM here, but we should use node types */
154
+ dispatcher: this.dispatcher,
152
155
  });
153
156
  const responseHeaders = response.headers;
154
157
  const metadata = {
@@ -209,6 +212,7 @@ class BaseApi {
209
212
  }
210
213
  return newParams.join('&');
211
214
  };
215
+ this.dispatcher = this.apiConfig.agent;
212
216
  }
213
217
  }
214
218
 
@@ -512,6 +516,7 @@ decoders.ChannelStateResponse = (input) => {
512
516
  read: { type: 'ReadStateResponse', isSingle: false },
513
517
  watchers: { type: 'UserResponse', isSingle: false },
514
518
  channel: { type: 'ChannelResponse', isSingle: true },
519
+ draft: { type: 'DraftResponse', isSingle: true },
515
520
  membership: { type: 'ChannelMember', isSingle: true },
516
521
  push_preferences: { type: 'ChannelPushPreferences', isSingle: true },
517
522
  };
@@ -528,6 +533,7 @@ decoders.ChannelStateResponseFields = (input) => {
528
533
  read: { type: 'ReadStateResponse', isSingle: false },
529
534
  watchers: { type: 'UserResponse', isSingle: false },
530
535
  channel: { type: 'ChannelResponse', isSingle: true },
536
+ draft: { type: 'DraftResponse', isSingle: true },
531
537
  membership: { type: 'ChannelMember', isSingle: true },
532
538
  push_preferences: { type: 'ChannelPushPreferences', isSingle: true },
533
539
  };
@@ -654,6 +660,22 @@ decoders.DeviceResponse = (input) => {
654
660
  };
655
661
  return decode(typeMappings, input);
656
662
  };
663
+ decoders.DraftPayloadResponse = (input) => {
664
+ const typeMappings = {
665
+ mentioned_users: { type: 'UserResponse', isSingle: false },
666
+ };
667
+ return decode(typeMappings, input);
668
+ };
669
+ decoders.DraftResponse = (input) => {
670
+ const typeMappings = {
671
+ created_at: { type: 'DatetimeType', isSingle: true },
672
+ message: { type: 'DraftPayloadResponse', isSingle: true },
673
+ channel: { type: 'ChannelResponse', isSingle: true },
674
+ parent_message: { type: 'MessageResponse', isSingle: true },
675
+ quoted_message: { type: 'MessageResponse', isSingle: true },
676
+ };
677
+ return decode(typeMappings, input);
678
+ };
657
679
  decoders.EgressRTMPResponse = (input) => {
658
680
  const typeMappings = {
659
681
  started_at: { type: 'DatetimeType', isSingle: true },
@@ -704,7 +726,7 @@ decoders.ExportUserResponse = (input) => {
704
726
  };
705
727
  return decode(typeMappings, input);
706
728
  };
707
- decoders.Flag2 = (input) => {
729
+ decoders.Flag = (input) => {
708
730
  const typeMappings = {
709
731
  created_at: { type: 'DatetimeType', isSingle: true },
710
732
  updated_at: { type: 'DatetimeType', isSingle: true },
@@ -712,14 +734,6 @@ decoders.Flag2 = (input) => {
712
734
  };
713
735
  return decode(typeMappings, input);
714
736
  };
715
- decoders.Flag2Response = (input) => {
716
- const typeMappings = {
717
- created_at: { type: 'DatetimeType', isSingle: true },
718
- updated_at: { type: 'DatetimeType', isSingle: true },
719
- user: { type: 'UserResponse', isSingle: true },
720
- };
721
- return decode(typeMappings, input);
722
- };
723
737
  decoders.FlagDetails = (input) => {
724
738
  const typeMappings = {
725
739
  automod: { type: 'AutomodDetails', isSingle: true },
@@ -739,6 +753,7 @@ decoders.FullUserResponse = (input) => {
739
753
  channel_mutes: { type: 'ChannelMute', isSingle: false },
740
754
  devices: { type: 'DeviceResponse', isSingle: false },
741
755
  mutes: { type: 'UserMuteResponse', isSingle: false },
756
+ ban_expires: { type: 'DatetimeType', isSingle: true },
742
757
  deactivated_at: { type: 'DatetimeType', isSingle: true },
743
758
  deleted_at: { type: 'DatetimeType', isSingle: true },
744
759
  last_active: { type: 'DatetimeType', isSingle: true },
@@ -778,12 +793,6 @@ decoders.GetCallTypeResponse = (input) => {
778
793
  };
779
794
  return decode(typeMappings, input);
780
795
  };
781
- decoders.GetCampaignResponse = (input) => {
782
- const typeMappings = {
783
- campaign: { type: 'CampaignResponse', isSingle: true },
784
- };
785
- return decode(typeMappings, input);
786
- };
787
796
  decoders.GetChannelTypeResponse = (input) => {
788
797
  const typeMappings = {
789
798
  created_at: { type: 'DatetimeType', isSingle: true },
@@ -805,6 +814,12 @@ decoders.GetConfigResponse = (input) => {
805
814
  };
806
815
  return decode(typeMappings, input);
807
816
  };
817
+ decoders.GetDraftResponse = (input) => {
818
+ const typeMappings = {
819
+ draft: { type: 'DraftResponse', isSingle: true },
820
+ };
821
+ return decode(typeMappings, input);
822
+ };
808
823
  decoders.GetImportResponse = (input) => {
809
824
  const typeMappings = {
810
825
  import_task: { type: 'ImportTask', isSingle: true },
@@ -868,14 +883,6 @@ decoders.GetThreadResponse = (input) => {
868
883
  };
869
884
  return decode(typeMappings, input);
870
885
  };
871
- decoders.GetUserModerationReportResponse = (input) => {
872
- const typeMappings = {
873
- user_blocks: { type: 'UserBlock', isSingle: false },
874
- user_mutes: { type: 'UserMute', isSingle: false },
875
- user: { type: 'UserResponse', isSingle: true },
876
- };
877
- return decode(typeMappings, input);
878
- };
879
886
  decoders.GoLiveResponse = (input) => {
880
887
  const typeMappings = {
881
888
  call: { type: 'CallResponse', isSingle: true },
@@ -1048,6 +1055,7 @@ decoders.MessageResponse = (input) => {
1048
1055
  pin_expires: { type: 'DatetimeType', isSingle: true },
1049
1056
  pinned_at: { type: 'DatetimeType', isSingle: true },
1050
1057
  thread_participants: { type: 'UserResponse', isSingle: false },
1058
+ draft: { type: 'DraftResponse', isSingle: true },
1051
1059
  pinned_by: { type: 'UserResponse', isSingle: true },
1052
1060
  poll: { type: 'PollResponseData', isSingle: true },
1053
1061
  quoted_message: { type: 'MessageResponse', isSingle: true },
@@ -1069,6 +1077,7 @@ decoders.MessageWithChannelResponse = (input) => {
1069
1077
  pin_expires: { type: 'DatetimeType', isSingle: true },
1070
1078
  pinned_at: { type: 'DatetimeType', isSingle: true },
1071
1079
  thread_participants: { type: 'UserResponse', isSingle: false },
1080
+ draft: { type: 'DraftResponse', isSingle: true },
1072
1081
  pinned_by: { type: 'UserResponse', isSingle: true },
1073
1082
  poll: { type: 'PollResponseData', isSingle: true },
1074
1083
  quoted_message: { type: 'MessageResponse', isSingle: true },
@@ -1076,13 +1085,6 @@ decoders.MessageWithChannelResponse = (input) => {
1076
1085
  };
1077
1086
  return decode(typeMappings, input);
1078
1087
  };
1079
- decoders.ModerationUsageStats = (input) => {
1080
- const typeMappings = {
1081
- reference_date: { type: 'DatetimeType', isSingle: true },
1082
- updated_at: { type: 'DatetimeType', isSingle: true },
1083
- };
1084
- return decode(typeMappings, input);
1085
- };
1086
1088
  decoders.MuteChannelResponse = (input) => {
1087
1089
  const typeMappings = {
1088
1090
  channel_mutes: { type: 'ChannelMute', isSingle: false },
@@ -1260,6 +1262,12 @@ decoders.QueryChannelsResponse = (input) => {
1260
1262
  };
1261
1263
  return decode(typeMappings, input);
1262
1264
  };
1265
+ decoders.QueryDraftsResponse = (input) => {
1266
+ const typeMappings = {
1267
+ drafts: { type: 'DraftResponse', isSingle: false },
1268
+ };
1269
+ return decode(typeMappings, input);
1270
+ };
1263
1271
  decoders.QueryFeedModerationTemplate = (input) => {
1264
1272
  const typeMappings = {
1265
1273
  created_at: { type: 'DatetimeType', isSingle: true },
@@ -1333,12 +1341,6 @@ decoders.QueryThreadsResponse = (input) => {
1333
1341
  };
1334
1342
  return decode(typeMappings, input);
1335
1343
  };
1336
- decoders.QueryUsageStatsResponse = (input) => {
1337
- const typeMappings = {
1338
- items: { type: 'ModerationUsageStats', isSingle: false },
1339
- };
1340
- return decode(typeMappings, input);
1341
- };
1342
1344
  decoders.QueryUsersResponse = (input) => {
1343
1345
  const typeMappings = {
1344
1346
  users: { type: 'FullUserResponse', isSingle: false },
@@ -1387,11 +1389,12 @@ decoders.ReviewQueueItem = (input) => {
1387
1389
  updated_at: { type: 'DatetimeType', isSingle: true },
1388
1390
  actions: { type: 'ActionLog', isSingle: false },
1389
1391
  bans: { type: 'Ban', isSingle: false },
1390
- flags: { type: 'Flag2', isSingle: false },
1392
+ flags: { type: 'Flag', isSingle: false },
1391
1393
  assigned_to: { type: 'User', isSingle: true },
1392
1394
  entity_creator: { type: 'EntityCreator', isSingle: true },
1393
1395
  feeds_v2_reaction: { type: 'Reaction', isSingle: true },
1394
1396
  message: { type: 'Message', isSingle: true },
1397
+ reaction: { type: 'Reaction', isSingle: true },
1395
1398
  };
1396
1399
  return decode(typeMappings, input);
1397
1400
  };
@@ -1401,13 +1404,13 @@ decoders.ReviewQueueItemResponse = (input) => {
1401
1404
  updated_at: { type: 'DatetimeType', isSingle: true },
1402
1405
  actions: { type: 'ActionLogResponse', isSingle: false },
1403
1406
  bans: { type: 'Ban', isSingle: false },
1404
- flags: { type: 'Flag2Response', isSingle: false },
1405
1407
  completed_at: { type: 'DatetimeType', isSingle: true },
1406
1408
  reviewed_at: { type: 'DatetimeType', isSingle: true },
1407
1409
  assigned_to: { type: 'UserResponse', isSingle: true },
1408
1410
  entity_creator: { type: 'EntityCreatorResponse', isSingle: true },
1409
1411
  feeds_v2_reaction: { type: 'Reaction', isSingle: true },
1410
1412
  message: { type: 'MessageResponse', isSingle: true },
1413
+ reaction: { type: 'Reaction', isSingle: true },
1411
1414
  };
1412
1415
  return decode(typeMappings, input);
1413
1416
  };
@@ -1438,6 +1441,7 @@ decoders.SearchResultMessage = (input) => {
1438
1441
  pinned_at: { type: 'DatetimeType', isSingle: true },
1439
1442
  thread_participants: { type: 'UserResponse', isSingle: false },
1440
1443
  channel: { type: 'ChannelResponse', isSingle: true },
1444
+ draft: { type: 'DraftResponse', isSingle: true },
1441
1445
  pinned_by: { type: 'UserResponse', isSingle: true },
1442
1446
  poll: { type: 'PollResponseData', isSingle: true },
1443
1447
  quoted_message: { type: 'MessageResponse', isSingle: true },
@@ -1480,12 +1484,6 @@ decoders.SendReactionResponse = (input) => {
1480
1484
  };
1481
1485
  return decode(typeMappings, input);
1482
1486
  };
1483
- decoders.StartCampaignResponse = (input) => {
1484
- const typeMappings = {
1485
- campaign: { type: 'CampaignResponse', isSingle: true },
1486
- };
1487
- return decode(typeMappings, input);
1488
- };
1489
1487
  decoders.StopLiveResponse = (input) => {
1490
1488
  const typeMappings = {
1491
1489
  call: { type: 'CallResponse', isSingle: true },
@@ -1532,6 +1530,7 @@ decoders.ThreadStateResponse = (input) => {
1532
1530
  thread_participants: { type: 'ThreadParticipant', isSingle: false },
1533
1531
  channel: { type: 'ChannelResponse', isSingle: true },
1534
1532
  created_by: { type: 'UserResponse', isSingle: true },
1533
+ draft: { type: 'DraftResponse', isSingle: true },
1535
1534
  parent_message: { type: 'MessageResponse', isSingle: true },
1536
1535
  };
1537
1536
  return decode(typeMappings, input);
@@ -1690,12 +1689,6 @@ decoders.User = (input) => {
1690
1689
  };
1691
1690
  return decode(typeMappings, input);
1692
1691
  };
1693
- decoders.UserBlock = (input) => {
1694
- const typeMappings = {
1695
- created_at: { type: 'DatetimeType', isSingle: true },
1696
- };
1697
- return decode(typeMappings, input);
1698
- };
1699
1692
  decoders.UserMute = (input) => {
1700
1693
  const typeMappings = {
1701
1694
  created_at: { type: 'DatetimeType', isSingle: true },
@@ -3083,6 +3076,7 @@ class ChatApi extends BaseApi {
3083
3076
  limit: request?.limit,
3084
3077
  next: request?.next,
3085
3078
  prev: request?.prev,
3079
+ user_limit: request?.user_limit,
3086
3080
  sort: request?.sort,
3087
3081
  filter: request?.filter,
3088
3082
  };
@@ -3091,10 +3085,15 @@ class ChatApi extends BaseApi {
3091
3085
  return { ...response.body, metadata: response.metadata };
3092
3086
  };
3093
3087
  this.getCampaign = async (request) => {
3088
+ const queryParams = {
3089
+ prev: request?.prev,
3090
+ next: request?.next,
3091
+ limit: request?.limit,
3092
+ };
3094
3093
  const pathParams = {
3095
3094
  id: request?.id,
3096
3095
  };
3097
- const response = await this.sendRequest('GET', '/api/v2/chat/campaigns/{id}', pathParams, undefined);
3096
+ const response = await this.sendRequest('GET', '/api/v2/chat/campaigns/{id}', pathParams, queryParams);
3098
3097
  decoders.GetCampaignResponse?.(response.body);
3099
3098
  return { ...response.body, metadata: response.metadata };
3100
3099
  };
@@ -3224,6 +3223,32 @@ class ChatApi extends BaseApi {
3224
3223
  decoders.UpdateChannelResponse?.(response.body);
3225
3224
  return { ...response.body, metadata: response.metadata };
3226
3225
  };
3226
+ this.deleteDraft = async (request) => {
3227
+ const queryParams = {
3228
+ parent_id: request?.parent_id,
3229
+ user_id: request?.user_id,
3230
+ };
3231
+ const pathParams = {
3232
+ type: request?.type,
3233
+ id: request?.id,
3234
+ };
3235
+ const response = await this.sendRequest('DELETE', '/api/v2/chat/channels/{type}/{id}/draft', pathParams, queryParams);
3236
+ decoders.Response?.(response.body);
3237
+ return { ...response.body, metadata: response.metadata };
3238
+ };
3239
+ this.getDraft = async (request) => {
3240
+ const queryParams = {
3241
+ parent_id: request?.parent_id,
3242
+ user_id: request?.user_id,
3243
+ };
3244
+ const pathParams = {
3245
+ type: request?.type,
3246
+ id: request?.id,
3247
+ };
3248
+ const response = await this.sendRequest('GET', '/api/v2/chat/channels/{type}/{id}/draft', pathParams, queryParams);
3249
+ decoders.GetDraftResponse?.(response.body);
3250
+ return { ...response.body, metadata: response.metadata };
3251
+ };
3227
3252
  this.sendEvent = async (request) => {
3228
3253
  const pathParams = {
3229
3254
  type: request?.type,
@@ -3562,6 +3587,20 @@ class ChatApi extends BaseApi {
3562
3587
  decoders.UpdateCommandResponse?.(response.body);
3563
3588
  return { ...response.body, metadata: response.metadata };
3564
3589
  };
3590
+ this.queryDrafts = async (request) => {
3591
+ const body = {
3592
+ limit: request?.limit,
3593
+ next: request?.next,
3594
+ prev: request?.prev,
3595
+ user_id: request?.user_id,
3596
+ sort: request?.sort,
3597
+ filter: request?.filter,
3598
+ user: request?.user,
3599
+ };
3600
+ const response = await this.sendRequest('POST', '/api/v2/chat/drafts/query', undefined, undefined, body);
3601
+ decoders.QueryDraftsResponse?.(response.body);
3602
+ return { ...response.body, metadata: response.metadata };
3603
+ };
3565
3604
  this.exportChannels = async (request) => {
3566
3605
  const body = {
3567
3606
  channels: request?.channels,
@@ -4178,6 +4217,22 @@ class ChannelApi {
4178
4217
  ...request,
4179
4218
  });
4180
4219
  };
4220
+ this.deleteDraft = (request) => {
4221
+ if (!this.id) {
4222
+ throw new Error(`Channel isn't yet created, call getOrCreateDistinctChannel() before this operation`);
4223
+ }
4224
+ return this.chatApi.deleteDraft({
4225
+ id: this.id,
4226
+ type: this.type,
4227
+ ...request,
4228
+ });
4229
+ };
4230
+ this.getDraft = (request) => {
4231
+ if (!this.id) {
4232
+ throw new Error(`Channel isn't yet created, call getOrCreateDistinctChannel() before this operation`);
4233
+ }
4234
+ return this.chatApi.getDraft({ id: this.id, type: this.type, ...request });
4235
+ };
4181
4236
  this.sendEvent = (request) => {
4182
4237
  if (!this.id) {
4183
4238
  throw new Error(`Channel isn't yet created, call getOrCreateDistinctChannel() before this operation`);
@@ -4363,15 +4418,6 @@ class StreamChatClient extends ChatApi {
4363
4418
  class ModerationApi extends BaseApi {
4364
4419
  constructor() {
4365
4420
  super(...arguments);
4366
- this.getModerationAnalytics = async (request) => {
4367
- const body = {
4368
- end_date: request?.end_date,
4369
- start_date: request?.start_date,
4370
- };
4371
- const response = await this.sendRequest('POST', '/api/v2/moderation/analytics', undefined, undefined, body);
4372
- decoders.GetModerationAnalyticsResponse?.(response.body);
4373
- return { ...response.body, metadata: response.metadata };
4374
- };
4375
4421
  this.ban = async (request) => {
4376
4422
  const body = {
4377
4423
  target_user_id: request?.target_user_id,
@@ -4525,11 +4571,6 @@ class ModerationApi extends BaseApi {
4525
4571
  decoders.QueryModerationLogsResponse?.(response.body);
4526
4572
  return { ...response.body, metadata: response.metadata };
4527
4573
  };
4528
- this.getModeratorStats = async () => {
4529
- const response = await this.sendRequest('GET', '/api/v2/moderation/moderator_stats', undefined, undefined);
4530
- decoders.ModeratorStatsResponse?.(response.body);
4531
- return { ...response.body, metadata: response.metadata };
4532
- };
4533
4574
  this.mute = async (request) => {
4534
4575
  const body = {
4535
4576
  target_ids: request?.target_ids,
@@ -4541,11 +4582,6 @@ class ModerationApi extends BaseApi {
4541
4582
  decoders.MuteResponse?.(response.body);
4542
4583
  return { ...response.body, metadata: response.metadata };
4543
4584
  };
4544
- this.getQueueStats = async () => {
4545
- const response = await this.sendRequest('GET', '/api/v2/moderation/queue_stats', undefined, undefined);
4546
- decoders.QueueStatsResponse?.(response.body);
4547
- return { ...response.body, metadata: response.metadata };
4548
- };
4549
4585
  this.queryReviewQueue = async (request) => {
4550
4586
  const body = {
4551
4587
  limit: request?.limit,
@@ -4615,31 +4651,6 @@ class ModerationApi extends BaseApi {
4615
4651
  decoders.UnmuteResponse?.(response.body);
4616
4652
  return { ...response.body, metadata: response.metadata };
4617
4653
  };
4618
- this.queryUsageStats = async (request) => {
4619
- const body = {
4620
- limit: request?.limit,
4621
- next: request?.next,
4622
- prev: request?.prev,
4623
- user_id: request?.user_id,
4624
- sort: request?.sort,
4625
- filter: request?.filter,
4626
- user: request?.user,
4627
- };
4628
- const response = await this.sendRequest('POST', '/api/v2/moderation/usage_stats', undefined, undefined, body);
4629
- decoders.QueryUsageStatsResponse?.(response.body);
4630
- return { ...response.body, metadata: response.metadata };
4631
- };
4632
- this.getUserReport = async (request) => {
4633
- const queryParams = {
4634
- user_id: request?.user_id,
4635
- create_user_if_not_exists: request?.create_user_if_not_exists,
4636
- include_user_mutes: request?.include_user_mutes,
4637
- include_user_blocks: request?.include_user_blocks,
4638
- };
4639
- const response = await this.sendRequest('GET', '/api/v2/moderation/user_report', undefined, queryParams);
4640
- decoders.GetUserModerationReportResponse?.(response.body);
4641
- return { ...response.body, metadata: response.metadata };
4642
- };
4643
4654
  }
4644
4655
  }
4645
4656
 
@@ -4656,9 +4667,15 @@ class StreamClient extends CommonApi {
4656
4667
  constructor(apiKey, secret, config) {
4657
4668
  const token = JWTServerToken(secret);
4658
4669
  const timeout = config?.timeout ?? StreamClient.DEFAULT_TIMEOUT;
4670
+ const agent = config?.agent ??
4671
+ new Agent({
4672
+ connections: config?.maxConnections === undefined
4673
+ ? StreamClient.MAX_CONNECTIONS
4674
+ : config.maxConnections,
4675
+ });
4659
4676
  const chatBaseUrl = config?.basePath ?? 'https://chat.stream-io-api.com';
4660
4677
  const videoBaseUrl = config?.basePath ?? 'https://video.stream-io-api.com';
4661
- super({ apiKey, token, timeout, baseUrl: chatBaseUrl });
4678
+ super({ apiKey, token, timeout, baseUrl: chatBaseUrl, agent });
4662
4679
  this.apiKey = apiKey;
4663
4680
  this.secret = secret;
4664
4681
  this.config = config;
@@ -4759,22 +4776,26 @@ class StreamClient extends CommonApi {
4759
4776
  token,
4760
4777
  timeout,
4761
4778
  baseUrl: videoBaseUrl,
4779
+ agent,
4762
4780
  });
4763
4781
  this.chat = new StreamChatClient({
4764
4782
  apiKey,
4765
4783
  token,
4766
4784
  timeout,
4767
4785
  baseUrl: chatBaseUrl,
4786
+ agent,
4768
4787
  });
4769
4788
  this.moderation = new StreamModerationClient({
4770
4789
  apiKey,
4771
4790
  token,
4772
4791
  timeout,
4773
4792
  baseUrl: chatBaseUrl,
4793
+ agent,
4774
4794
  });
4775
4795
  }
4776
4796
  }
4777
4797
  StreamClient.DEFAULT_TIMEOUT = 3000;
4798
+ StreamClient.MAX_CONNECTIONS = 100;
4778
4799
 
4779
4800
  export { ChannelOwnCapability, OwnCapability, StreamCall, StreamChannel, StreamChatClient, StreamClient, StreamVideoClient };
4780
4801
  //# sourceMappingURL=index.es.mjs.map