stream-chat 9.27.2 → 9.29.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.
- package/dist/cjs/index.browser.js +311 -9
- package/dist/cjs/index.browser.js.map +3 -3
- package/dist/cjs/index.node.js +312 -9
- package/dist/cjs/index.node.js.map +3 -3
- package/dist/esm/index.mjs +311 -9
- package/dist/esm/index.mjs.map +3 -3
- package/dist/types/channel.d.ts +3 -2
- package/dist/types/channel_batch_updater.d.ts +109 -0
- package/dist/types/client.d.ts +67 -3
- package/dist/types/index.d.ts +1 -0
- package/dist/types/types.d.ts +98 -0
- package/package.json +1 -1
- package/src/channel.ts +4 -1
- package/src/channel_batch_updater.ts +247 -0
- package/src/client.ts +145 -10
- package/src/index.ts +1 -0
- package/src/messageComposer/middleware/textComposer/textMiddlewareUtils.ts +5 -4
- package/src/types.ts +135 -0
|
@@ -66,6 +66,7 @@ __export(index_exports, {
|
|
|
66
66
|
BuiltinRoles: () => BuiltinRoles,
|
|
67
67
|
Campaign: () => Campaign,
|
|
68
68
|
Channel: () => Channel,
|
|
69
|
+
ChannelBatchUpdater: () => ChannelBatchUpdater,
|
|
69
70
|
ChannelManager: () => ChannelManager,
|
|
70
71
|
ChannelSearchSource: () => ChannelSearchSource,
|
|
71
72
|
ChannelState: () => ChannelState,
|
|
@@ -335,6 +336,190 @@ var Campaign = class {
|
|
|
335
336
|
}
|
|
336
337
|
};
|
|
337
338
|
|
|
339
|
+
// src/channel_batch_updater.ts
|
|
340
|
+
var ChannelBatchUpdater = class {
|
|
341
|
+
constructor(client) {
|
|
342
|
+
this.client = client;
|
|
343
|
+
}
|
|
344
|
+
// Member operations
|
|
345
|
+
/**
|
|
346
|
+
* addMembers - Add members to channels matching the filter
|
|
347
|
+
*
|
|
348
|
+
* @param {UpdateChannelsBatchFilters} filter Filter to select channels
|
|
349
|
+
* @param {string[] | NewMemberPayload[]} members Members to add
|
|
350
|
+
* @return {Promise<APIResponse & UpdateChannelsBatchResponse>} The server response
|
|
351
|
+
*/
|
|
352
|
+
async addMembers(filter, members) {
|
|
353
|
+
return await this.client.updateChannelsBatch({
|
|
354
|
+
operation: "addMembers",
|
|
355
|
+
filter,
|
|
356
|
+
members
|
|
357
|
+
});
|
|
358
|
+
}
|
|
359
|
+
/**
|
|
360
|
+
* removeMembers - Remove members from channels matching the filter
|
|
361
|
+
*
|
|
362
|
+
* @param {UpdateChannelsBatchFilters} filter Filter to select channels
|
|
363
|
+
* @param {string[]} members Member IDs to remove
|
|
364
|
+
* @return {Promise<APIResponse & UpdateChannelsBatchResponse>} The server response
|
|
365
|
+
*/
|
|
366
|
+
async removeMembers(filter, members) {
|
|
367
|
+
return await this.client.updateChannelsBatch({
|
|
368
|
+
operation: "removeMembers",
|
|
369
|
+
filter,
|
|
370
|
+
members
|
|
371
|
+
});
|
|
372
|
+
}
|
|
373
|
+
/**
|
|
374
|
+
* inviteMembers - Invite members to channels matching the filter
|
|
375
|
+
*
|
|
376
|
+
* @param {UpdateChannelsBatchFilters} filter Filter to select channels
|
|
377
|
+
* @param {string[] | NewMemberPayload[]} members Members to invite
|
|
378
|
+
* @return {Promise<APIResponse & UpdateChannelsBatchResponse>} The server response
|
|
379
|
+
*/
|
|
380
|
+
async inviteMembers(filter, members) {
|
|
381
|
+
return await this.client.updateChannelsBatch({
|
|
382
|
+
operation: "inviteMembers",
|
|
383
|
+
filter,
|
|
384
|
+
members
|
|
385
|
+
});
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
* addModerators - Add moderators to channels matching the filter
|
|
389
|
+
*
|
|
390
|
+
* @param {UpdateChannelsBatchFilters} filter Filter to select channels
|
|
391
|
+
* @param {string[]} members Member IDs to promote to moderator
|
|
392
|
+
* @return {Promise<APIResponse & UpdateChannelsBatchResponse>} The server response
|
|
393
|
+
*/
|
|
394
|
+
async addModerators(filter, members) {
|
|
395
|
+
return await this.client.updateChannelsBatch({
|
|
396
|
+
operation: "addModerators",
|
|
397
|
+
filter,
|
|
398
|
+
members
|
|
399
|
+
});
|
|
400
|
+
}
|
|
401
|
+
/**
|
|
402
|
+
* demoteModerators - Remove moderator role from members in channels matching the filter
|
|
403
|
+
*
|
|
404
|
+
* @param {UpdateChannelsBatchFilters} filter Filter to select channels
|
|
405
|
+
* @param {string[]} members Member IDs to demote
|
|
406
|
+
* @return {Promise<APIResponse & UpdateChannelsBatchResponse>} The server response
|
|
407
|
+
*/
|
|
408
|
+
async demoteModerators(filter, members) {
|
|
409
|
+
return await this.client.updateChannelsBatch({
|
|
410
|
+
operation: "demoteModerators",
|
|
411
|
+
filter,
|
|
412
|
+
members
|
|
413
|
+
});
|
|
414
|
+
}
|
|
415
|
+
/**
|
|
416
|
+
* assignRoles - Assign roles to members in channels matching the filter
|
|
417
|
+
*
|
|
418
|
+
* @param {UpdateChannelsBatchFilters} filter Filter to select channels
|
|
419
|
+
* @param {NewMemberPayload[]} members Members with role assignments
|
|
420
|
+
* @return {Promise<APIResponse & UpdateChannelsBatchResponse>} The server response
|
|
421
|
+
*/
|
|
422
|
+
async assignRoles(filter, members) {
|
|
423
|
+
return await this.client.updateChannelsBatch({
|
|
424
|
+
operation: "assignRoles",
|
|
425
|
+
filter,
|
|
426
|
+
members
|
|
427
|
+
});
|
|
428
|
+
}
|
|
429
|
+
// Visibility operations
|
|
430
|
+
/**
|
|
431
|
+
* hide - Hide channels matching the filter
|
|
432
|
+
*
|
|
433
|
+
* @param {UpdateChannelsBatchFilters} filter Filter to select channels
|
|
434
|
+
* @return {Promise<APIResponse & UpdateChannelsBatchResponse>} The server response
|
|
435
|
+
*/
|
|
436
|
+
async hide(filter) {
|
|
437
|
+
return await this.client.updateChannelsBatch({
|
|
438
|
+
operation: "hide",
|
|
439
|
+
filter
|
|
440
|
+
});
|
|
441
|
+
}
|
|
442
|
+
/**
|
|
443
|
+
* show - Show channels matching the filter
|
|
444
|
+
*
|
|
445
|
+
* @param {UpdateChannelsBatchFilters} filter Filter to select channels
|
|
446
|
+
* @return {Promise<APIResponse & UpdateChannelsBatchResponse>} The server response
|
|
447
|
+
*/
|
|
448
|
+
async show(filter) {
|
|
449
|
+
return await this.client.updateChannelsBatch({
|
|
450
|
+
operation: "show",
|
|
451
|
+
filter
|
|
452
|
+
});
|
|
453
|
+
}
|
|
454
|
+
/**
|
|
455
|
+
* archive - Archive channels matching the filter
|
|
456
|
+
*
|
|
457
|
+
* @param {UpdateChannelsBatchFilters} filter Filter to select channels
|
|
458
|
+
* @return {Promise<APIResponse & UpdateChannelsBatchResponse>} The server response
|
|
459
|
+
*/
|
|
460
|
+
async archive(filter) {
|
|
461
|
+
return await this.client.updateChannelsBatch({
|
|
462
|
+
operation: "archive",
|
|
463
|
+
filter
|
|
464
|
+
});
|
|
465
|
+
}
|
|
466
|
+
/**
|
|
467
|
+
* unarchive - Unarchive channels matching the filter
|
|
468
|
+
*
|
|
469
|
+
* @param {UpdateChannelsBatchFilters} filter Filter to select channels
|
|
470
|
+
* @return {Promise<APIResponse & UpdateChannelsBatchResponse>} The server response
|
|
471
|
+
*/
|
|
472
|
+
async unarchive(filter) {
|
|
473
|
+
return await this.client.updateChannelsBatch({
|
|
474
|
+
operation: "unarchive",
|
|
475
|
+
filter
|
|
476
|
+
});
|
|
477
|
+
}
|
|
478
|
+
// Data operations
|
|
479
|
+
/**
|
|
480
|
+
* updateData - Update data on channels matching the filter
|
|
481
|
+
*
|
|
482
|
+
* @param {UpdateChannelsBatchFilters} filter Filter to select channels
|
|
483
|
+
* @param {BatchChannelDataUpdate} data Data to update
|
|
484
|
+
* @return {Promise<APIResponse & UpdateChannelsBatchResponse>} The server response
|
|
485
|
+
*/
|
|
486
|
+
async updateData(filter, data) {
|
|
487
|
+
return await this.client.updateChannelsBatch({
|
|
488
|
+
operation: "updateData",
|
|
489
|
+
filter,
|
|
490
|
+
data
|
|
491
|
+
});
|
|
492
|
+
}
|
|
493
|
+
/**
|
|
494
|
+
* addFilterTags - Add filter tags to channels matching the filter
|
|
495
|
+
*
|
|
496
|
+
* @param {UpdateChannelsBatchFilters} filter Filter to select channels
|
|
497
|
+
* @param {string[]} tags Tags to add
|
|
498
|
+
* @return {Promise<APIResponse & UpdateChannelsBatchResponse>} The server response
|
|
499
|
+
*/
|
|
500
|
+
async addFilterTags(filter, tags) {
|
|
501
|
+
return await this.client.updateChannelsBatch({
|
|
502
|
+
operation: "addFilterTags",
|
|
503
|
+
filter,
|
|
504
|
+
filter_tags_update: tags
|
|
505
|
+
});
|
|
506
|
+
}
|
|
507
|
+
/**
|
|
508
|
+
* removeFilterTags - Remove filter tags from channels matching the filter
|
|
509
|
+
*
|
|
510
|
+
* @param {UpdateChannelsBatchFilters} filter Filter to select channels
|
|
511
|
+
* @param {string[]} tags Tags to remove
|
|
512
|
+
* @return {Promise<APIResponse & UpdateChannelsBatchResponse>} The server response
|
|
513
|
+
*/
|
|
514
|
+
async removeFilterTags(filter, tags) {
|
|
515
|
+
return await this.client.updateChannelsBatch({
|
|
516
|
+
operation: "removeFilterTags",
|
|
517
|
+
filter,
|
|
518
|
+
filter_tags_update: tags
|
|
519
|
+
});
|
|
520
|
+
}
|
|
521
|
+
};
|
|
522
|
+
|
|
338
523
|
// src/client.ts
|
|
339
524
|
var import_axios3 = __toESM(require("axios"));
|
|
340
525
|
var import_https = __toESM(require_https());
|
|
@@ -5375,10 +5560,11 @@ var getTriggerCharWithToken = ({
|
|
|
5375
5560
|
isCommand = false,
|
|
5376
5561
|
acceptTrailingSpaces = true
|
|
5377
5562
|
}) => {
|
|
5378
|
-
const
|
|
5563
|
+
const escapedTrigger = escapeRegExp(trigger);
|
|
5564
|
+
const triggerNorWhitespace = `[^\\s${escapedTrigger}]*`;
|
|
5379
5565
|
const match = text.match(
|
|
5380
5566
|
new RegExp(
|
|
5381
|
-
isCommand ? `^[${
|
|
5567
|
+
isCommand ? `^[${escapedTrigger}]${triggerNorWhitespace}$` : acceptTrailingSpaces ? `(?!^|\\W)?[${escapedTrigger}]${triggerNorWhitespace}\\s?${triggerNorWhitespace}$` : `(?!^|\\W)?[${escapedTrigger}]${triggerNorWhitespace}$`,
|
|
5382
5568
|
"g"
|
|
5383
5569
|
)
|
|
5384
5570
|
);
|
|
@@ -9003,11 +9189,13 @@ var Channel = class {
|
|
|
9003
9189
|
* unbanUser - Removes the bans for a user on a channel
|
|
9004
9190
|
*
|
|
9005
9191
|
* @param {string} targetUserID
|
|
9192
|
+
* @param {UnBanUserOptions} options
|
|
9006
9193
|
* @returns {Promise<APIResponse>}
|
|
9007
9194
|
*/
|
|
9008
|
-
async unbanUser(targetUserID) {
|
|
9195
|
+
async unbanUser(targetUserID, options) {
|
|
9009
9196
|
this._checkInitialized();
|
|
9010
9197
|
return await this.getClient().unbanUser(targetUserID, {
|
|
9198
|
+
...options,
|
|
9011
9199
|
type: this.type,
|
|
9012
9200
|
id: this.id
|
|
9013
9201
|
});
|
|
@@ -13593,6 +13781,20 @@ var StreamChat = class _StreamChat {
|
|
|
13593
13781
|
}
|
|
13594
13782
|
});
|
|
13595
13783
|
}
|
|
13784
|
+
/**
|
|
13785
|
+
* queryFutureChannelBans - Query future channel bans created by a user
|
|
13786
|
+
*
|
|
13787
|
+
* @param {QueryFutureChannelBansOptions} options Option object with user_id, exclude_expired_bans, limit, offset
|
|
13788
|
+
* @returns {Promise<FutureChannelBansResponse>} Future Channel Bans Response
|
|
13789
|
+
*/
|
|
13790
|
+
async queryFutureChannelBans(options = {}) {
|
|
13791
|
+
return await this.get(
|
|
13792
|
+
this.baseURL + "/query_future_channel_bans",
|
|
13793
|
+
{
|
|
13794
|
+
payload: options
|
|
13795
|
+
}
|
|
13796
|
+
);
|
|
13797
|
+
}
|
|
13596
13798
|
/**
|
|
13597
13799
|
* queryMessageFlags - Query message flags
|
|
13598
13800
|
*
|
|
@@ -13612,10 +13814,10 @@ var StreamChat = class _StreamChat {
|
|
|
13612
13814
|
/**
|
|
13613
13815
|
* queryChannelsRequest - Queries channels and returns the raw response
|
|
13614
13816
|
*
|
|
13615
|
-
* @param {ChannelFilters} filterConditions object MongoDB style filters
|
|
13817
|
+
* @param {ChannelFilters} filterConditions object MongoDB style filters. Can be empty object when using predefined_filter in options.
|
|
13616
13818
|
* @param {ChannelSort} [sort] Sort options, for instance {created_at: -1}.
|
|
13617
13819
|
* When using multiple fields, make sure you use array of objects to guarantee field order, for instance [{last_updated: -1}, {created_at: 1}]
|
|
13618
|
-
* @param {ChannelOptions} [options] Options object
|
|
13820
|
+
* @param {ChannelOptions} [options] Options object. Can include predefined_filter, filter_values, and sort_values for using predefined filters.
|
|
13619
13821
|
*
|
|
13620
13822
|
* @return {Promise<Array<ChannelAPIResponse>>} search channels response
|
|
13621
13823
|
*/
|
|
@@ -13629,11 +13831,18 @@ var StreamChat = class _StreamChat {
|
|
|
13629
13831
|
if (!this._hasConnectionID()) {
|
|
13630
13832
|
defaultOptions.watch = false;
|
|
13631
13833
|
}
|
|
13632
|
-
const
|
|
13834
|
+
const { predefined_filter, filter_values, sort_values, ...restOptions } = options;
|
|
13835
|
+
const payload = predefined_filter ? {
|
|
13836
|
+
predefined_filter,
|
|
13837
|
+
filter_values,
|
|
13838
|
+
sort_values,
|
|
13839
|
+
...defaultOptions,
|
|
13840
|
+
...restOptions
|
|
13841
|
+
} : {
|
|
13633
13842
|
filter_conditions: filterConditions,
|
|
13634
13843
|
sort: normalizeQuerySort(sort),
|
|
13635
13844
|
...defaultOptions,
|
|
13636
|
-
...
|
|
13845
|
+
...restOptions
|
|
13637
13846
|
};
|
|
13638
13847
|
const data = await this.post(
|
|
13639
13848
|
this.baseURL + "/channels",
|
|
@@ -14740,7 +14949,7 @@ var StreamChat = class _StreamChat {
|
|
|
14740
14949
|
if (this.userAgent) {
|
|
14741
14950
|
return this.userAgent;
|
|
14742
14951
|
}
|
|
14743
|
-
const version = "9.
|
|
14952
|
+
const version = "9.29.0";
|
|
14744
14953
|
const clientBundle = "browser-cjs";
|
|
14745
14954
|
let userAgentString = "";
|
|
14746
14955
|
if (this.sdkIdentifier) {
|
|
@@ -15039,6 +15248,14 @@ var StreamChat = class _StreamChat {
|
|
|
15039
15248
|
}
|
|
15040
15249
|
return new Campaign(this, idOrData, data);
|
|
15041
15250
|
}
|
|
15251
|
+
/**
|
|
15252
|
+
* channelBatchUpdater - Returns a ChannelBatchUpdater instance for batch channel operations
|
|
15253
|
+
*
|
|
15254
|
+
* @return {ChannelBatchUpdater} A ChannelBatchUpdater instance
|
|
15255
|
+
*/
|
|
15256
|
+
channelBatchUpdater() {
|
|
15257
|
+
return new ChannelBatchUpdater(this);
|
|
15258
|
+
}
|
|
15042
15259
|
segment(type, idOrData, data) {
|
|
15043
15260
|
if (typeof idOrData === "string") {
|
|
15044
15261
|
return new Segment(this, type, idOrData, data);
|
|
@@ -15048,7 +15265,7 @@ var StreamChat = class _StreamChat {
|
|
|
15048
15265
|
validateServerSideAuth() {
|
|
15049
15266
|
if (!this.secret) {
|
|
15050
15267
|
throw new Error(
|
|
15051
|
-
"
|
|
15268
|
+
"This feature can be used server-side only. Please initialize the client with a secret to use this feature."
|
|
15052
15269
|
);
|
|
15053
15270
|
}
|
|
15054
15271
|
}
|
|
@@ -15901,6 +16118,91 @@ var StreamChat = class _StreamChat {
|
|
|
15901
16118
|
syncDeliveredCandidates(collections) {
|
|
15902
16119
|
this.messageDeliveryReporter.syncDeliveredCandidates(collections);
|
|
15903
16120
|
}
|
|
16121
|
+
/**
|
|
16122
|
+
* Update Channels Batch
|
|
16123
|
+
*
|
|
16124
|
+
* @param {UpdateChannelsBatchOptions} payload for updating channels in batch
|
|
16125
|
+
* @return {Promise<APIResponse & UpdateChannelsBatchResponse>} The server response
|
|
16126
|
+
*/
|
|
16127
|
+
async updateChannelsBatch(payload) {
|
|
16128
|
+
return await this.put(
|
|
16129
|
+
this.baseURL + `/channels/batch`,
|
|
16130
|
+
payload
|
|
16131
|
+
);
|
|
16132
|
+
}
|
|
16133
|
+
/**
|
|
16134
|
+
* createPredefinedFilter - Creates a new predefined filter (server-side only)
|
|
16135
|
+
*
|
|
16136
|
+
* @param {CreatePredefinedFilterOptions} options Predefined filter options
|
|
16137
|
+
*
|
|
16138
|
+
* @return {Promise<PredefinedFilterResponse>} The created predefined filter
|
|
16139
|
+
*/
|
|
16140
|
+
async createPredefinedFilter(options) {
|
|
16141
|
+
this.validateServerSideAuth();
|
|
16142
|
+
return await this.post(
|
|
16143
|
+
`${this.baseURL}/predefined_filters`,
|
|
16144
|
+
options
|
|
16145
|
+
);
|
|
16146
|
+
}
|
|
16147
|
+
/**
|
|
16148
|
+
* getPredefinedFilter - Gets a predefined filter by name (server-side only)
|
|
16149
|
+
*
|
|
16150
|
+
* @param {string} name Predefined filter name
|
|
16151
|
+
*
|
|
16152
|
+
* @return {Promise<PredefinedFilterResponse>} The predefined filter
|
|
16153
|
+
*/
|
|
16154
|
+
async getPredefinedFilter(name) {
|
|
16155
|
+
this.validateServerSideAuth();
|
|
16156
|
+
return await this.get(
|
|
16157
|
+
`${this.baseURL}/predefined_filters/${encodeURIComponent(name)}`
|
|
16158
|
+
);
|
|
16159
|
+
}
|
|
16160
|
+
/**
|
|
16161
|
+
* updatePredefinedFilter - Updates a predefined filter (server-side only)
|
|
16162
|
+
*
|
|
16163
|
+
* @param {string} name Predefined filter name
|
|
16164
|
+
* @param {UpdatePredefinedFilterOptions} options Predefined filter options
|
|
16165
|
+
*
|
|
16166
|
+
* @return {Promise<PredefinedFilterResponse>} The updated predefined filter
|
|
16167
|
+
*/
|
|
16168
|
+
async updatePredefinedFilter(name, options) {
|
|
16169
|
+
this.validateServerSideAuth();
|
|
16170
|
+
return await this.put(
|
|
16171
|
+
`${this.baseURL}/predefined_filters/${encodeURIComponent(name)}`,
|
|
16172
|
+
options
|
|
16173
|
+
);
|
|
16174
|
+
}
|
|
16175
|
+
/**
|
|
16176
|
+
* deletePredefinedFilter - Deletes a predefined filter (server-side only)
|
|
16177
|
+
*
|
|
16178
|
+
* @param {string} name Predefined filter name
|
|
16179
|
+
*
|
|
16180
|
+
* @return {Promise<APIResponse>} The server response
|
|
16181
|
+
*/
|
|
16182
|
+
async deletePredefinedFilter(name) {
|
|
16183
|
+
this.validateServerSideAuth();
|
|
16184
|
+
return await this.delete(
|
|
16185
|
+
`${this.baseURL}/predefined_filters/${encodeURIComponent(name)}`
|
|
16186
|
+
);
|
|
16187
|
+
}
|
|
16188
|
+
/**
|
|
16189
|
+
* listPredefinedFilters - Lists all predefined filters (server-side only)
|
|
16190
|
+
*
|
|
16191
|
+
* @param {ListPredefinedFiltersOptions} options Query options
|
|
16192
|
+
*
|
|
16193
|
+
* @return {Promise<ListPredefinedFiltersResponse>} The list of predefined filters
|
|
16194
|
+
*/
|
|
16195
|
+
async listPredefinedFilters(options = {}) {
|
|
16196
|
+
this.validateServerSideAuth();
|
|
16197
|
+
const { sort, ...paginationOptions } = options;
|
|
16198
|
+
return await this.get(
|
|
16199
|
+
`${this.baseURL}/predefined_filters`,
|
|
16200
|
+
{
|
|
16201
|
+
...paginationOptions,
|
|
16202
|
+
...sort ? { sort: JSON.stringify(sort) } : {}
|
|
16203
|
+
}
|
|
16204
|
+
);
|
|
16205
|
+
}
|
|
15904
16206
|
};
|
|
15905
16207
|
|
|
15906
16208
|
// src/events.ts
|