@amityco/ts-sdk 7.26.1-e618fbd1.0 → 7.26.1-ecb8825d.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/@types/core/events.d.ts +2 -0
- package/dist/@types/core/events.d.ts.map +1 -1
- package/dist/@types/core/payload.d.ts +21 -0
- package/dist/@types/core/payload.d.ts.map +1 -1
- package/dist/@types/domains/client.d.ts +1 -0
- package/dist/@types/domains/client.d.ts.map +1 -1
- package/dist/channelRepository/events/onChannelMemberRoleAdded.d.ts +22 -0
- package/dist/channelRepository/events/onChannelMemberRoleAdded.d.ts.map +1 -1
- package/dist/channelRepository/events/onChannelMemberRoleRemoved.d.ts +22 -0
- package/dist/channelRepository/events/onChannelMemberRoleRemoved.d.ts.map +1 -1
- package/dist/channelRepository/events/tests/onChannelMemberRoleAdded.test.d.ts +2 -0
- package/dist/channelRepository/events/tests/onChannelMemberRoleAdded.test.d.ts.map +1 -0
- package/dist/channelRepository/events/tests/onChannelMemberRoleRemoved.test.d.ts +2 -0
- package/dist/channelRepository/events/tests/onChannelMemberRoleRemoved.test.d.ts.map +1 -0
- package/dist/channelRepository/observers/getMyMembership.d.ts.map +1 -1
- package/dist/channelRepository/utils/applyChannelRolePayload.d.ts +21 -0
- package/dist/channelRepository/utils/applyChannelRolePayload.d.ts.map +1 -0
- package/dist/channelRepository/utils/index.d.ts +1 -0
- package/dist/channelRepository/utils/index.d.ts.map +1 -1
- package/dist/client/api/loginWithAccessToken.d.ts.map +1 -1
- package/dist/client/api/logout.d.ts.map +1 -1
- package/dist/client/api/renewTokenWithHandler.d.ts.map +1 -1
- package/dist/client/api/renewWithAccessToken.d.ts.map +1 -1
- package/dist/client/api/tests/renewTokenWithHandler.test.d.ts +2 -0
- package/dist/client/api/tests/renewTokenWithHandler.test.d.ts.map +1 -0
- package/dist/client/api/tests/renewWithAccessToken.test.d.ts +2 -0
- package/dist/client/api/tests/renewWithAccessToken.test.d.ts.map +1 -0
- package/dist/core/events.d.ts +3 -3
- package/dist/core/events.d.ts.map +1 -1
- package/dist/index.cjs.js +204 -78
- package/dist/index.esm.js +204 -78
- package/dist/index.umd.js +2 -2
- package/package.json +1 -1
package/dist/index.cjs.js
CHANGED
|
@@ -3889,6 +3889,48 @@ const updatePinnedMessageCache = (channel, pinnedMessage, users) => {
|
|
|
3889
3889
|
return updated;
|
|
3890
3890
|
};
|
|
3891
3891
|
|
|
3892
|
+
/**
|
|
3893
|
+
* Applies a `channel.roleAdded` / `channel.roleRemoved` realtime payload to the cache.
|
|
3894
|
+
*
|
|
3895
|
+
* The event names every member the role request affected together with the
|
|
3896
|
+
* roles and channel-scoped permissions each of them is left holding. That is a
|
|
3897
|
+
* full state, not a delta, so it is written straight over the cached membership.
|
|
3898
|
+
*
|
|
3899
|
+
* Members the SDK has not fetched yet are skipped: the payload does not carry
|
|
3900
|
+
* enough to build a full {@link Amity.Membership} and the live collections only
|
|
3901
|
+
* emit rows that already exist in cache.
|
|
3902
|
+
*
|
|
3903
|
+
* @param payload the `data` of the realtime event
|
|
3904
|
+
* @returns the refreshed channel (when resolvable) and the updated cached memberships
|
|
3905
|
+
*
|
|
3906
|
+
* @hidden
|
|
3907
|
+
*/
|
|
3908
|
+
const applyChannelRolePayload = (payload) => {
|
|
3909
|
+
var _a, _b, _c;
|
|
3910
|
+
const { channelId, users = [], channels = [] } = payload;
|
|
3911
|
+
const rawChannel = (_a = channels.find(channel => channel.channelId === channelId)) !== null && _a !== void 0 ? _a : channels[0];
|
|
3912
|
+
let channel;
|
|
3913
|
+
if (rawChannel) {
|
|
3914
|
+
const channelKey = ['channel', 'get', getResolver('channel')(rawChannel)];
|
|
3915
|
+
// the role event does not touch message previews, keep whatever preview is cached
|
|
3916
|
+
const converted = convertFromRaw(rawChannel, { isMessagePreviewUpdated: false });
|
|
3917
|
+
upsertInCache(channelKey, converted);
|
|
3918
|
+
channel = (_c = (_b = pullFromCache(channelKey)) === null || _b === void 0 ? void 0 : _b.data) !== null && _c !== void 0 ? _c : converted;
|
|
3919
|
+
}
|
|
3920
|
+
const members = [];
|
|
3921
|
+
users.forEach(({ userId, roles, permissions }) => {
|
|
3922
|
+
var _a, _b, _c;
|
|
3923
|
+
const memberKey = ['channelUsers', 'get', getResolver('channelUsers')({ channelId, userId })];
|
|
3924
|
+
const cached = (_a = pullFromCache(memberKey)) === null || _a === void 0 ? void 0 : _a.data;
|
|
3925
|
+
if (!cached)
|
|
3926
|
+
return;
|
|
3927
|
+
const updated = Object.assign(Object.assign({}, cached), { roles, permissions });
|
|
3928
|
+
pushToCache(memberKey, updated);
|
|
3929
|
+
members.push((_c = (_b = pullFromCache(memberKey)) === null || _b === void 0 ? void 0 : _b.data) !== null && _c !== void 0 ? _c : updated);
|
|
3930
|
+
});
|
|
3931
|
+
return { channel, members };
|
|
3932
|
+
};
|
|
3933
|
+
|
|
3892
3934
|
/**
|
|
3893
3935
|
* ```js
|
|
3894
3936
|
* import { getSubChannelMarkers } from '@amityco/ts-sdk'
|
|
@@ -4074,32 +4116,6 @@ const channelMemberLinkedObject = (channelMember) => {
|
|
|
4074
4116
|
} });
|
|
4075
4117
|
};
|
|
4076
4118
|
|
|
4077
|
-
/**
|
|
4078
|
-
*
|
|
4079
|
-
* get current user's membership data
|
|
4080
|
-
*
|
|
4081
|
-
* @returns the {@link Amity.Membership<'channel'>} objects
|
|
4082
|
-
*
|
|
4083
|
-
* @category Channel API
|
|
4084
|
-
* @async
|
|
4085
|
-
*/
|
|
4086
|
-
const getMyMembership$1 = (channelId) => {
|
|
4087
|
-
const client = getActiveClient();
|
|
4088
|
-
client.log('channel/getMyMembership.locally');
|
|
4089
|
-
const cacheChannelUser = pullFromCache([
|
|
4090
|
-
'channelUsers',
|
|
4091
|
-
'get',
|
|
4092
|
-
`${channelId}#${client.userId}`,
|
|
4093
|
-
]);
|
|
4094
|
-
if (!cacheChannelUser) {
|
|
4095
|
-
throw new ASCApiError('Item not found!', 400400 /* Amity.ServerError.ITEM_NOT_FOUND */, "error" /* Amity.ErrorLevel.ERROR */);
|
|
4096
|
-
}
|
|
4097
|
-
return {
|
|
4098
|
-
data: cacheChannelUser.data,
|
|
4099
|
-
cachedAt: cacheChannelUser.cachedAt,
|
|
4100
|
-
};
|
|
4101
|
-
};
|
|
4102
|
-
|
|
4103
4119
|
/**
|
|
4104
4120
|
* ```js
|
|
4105
4121
|
* import { isEqual } from '~/utils/isEqual'
|
|
@@ -4170,15 +4186,41 @@ function isEqual(x, y) {
|
|
|
4170
4186
|
}));
|
|
4171
4187
|
}
|
|
4172
4188
|
|
|
4189
|
+
/**
|
|
4190
|
+
*
|
|
4191
|
+
* get current user's membership data
|
|
4192
|
+
*
|
|
4193
|
+
* @returns the {@link Amity.Membership<'channel'>} objects
|
|
4194
|
+
*
|
|
4195
|
+
* @category Channel API
|
|
4196
|
+
* @async
|
|
4197
|
+
*/
|
|
4198
|
+
const getMyMembership$1 = (channelId) => {
|
|
4199
|
+
const client = getActiveClient();
|
|
4200
|
+
client.log('channel/getMyMembership.locally');
|
|
4201
|
+
const cacheChannelUser = pullFromCache([
|
|
4202
|
+
'channelUsers',
|
|
4203
|
+
'get',
|
|
4204
|
+
`${channelId}#${client.userId}`,
|
|
4205
|
+
]);
|
|
4206
|
+
if (!cacheChannelUser) {
|
|
4207
|
+
throw new ASCApiError('Item not found!', 400400 /* Amity.ServerError.ITEM_NOT_FOUND */, "error" /* Amity.ErrorLevel.ERROR */);
|
|
4208
|
+
}
|
|
4209
|
+
return {
|
|
4210
|
+
data: cacheChannelUser.data,
|
|
4211
|
+
cachedAt: cacheChannelUser.cachedAt,
|
|
4212
|
+
};
|
|
4213
|
+
};
|
|
4214
|
+
|
|
4173
4215
|
const callbacks$e = [];
|
|
4174
|
-
let mainDisposer$
|
|
4216
|
+
let mainDisposer$b = null;
|
|
4175
4217
|
const dispose$e = (cb) => {
|
|
4176
4218
|
const index = callbacks$e.indexOf(cb);
|
|
4177
4219
|
if (index > -1) {
|
|
4178
4220
|
callbacks$e.splice(index, 1);
|
|
4179
4221
|
}
|
|
4180
4222
|
if (callbacks$e.length === 0) {
|
|
4181
|
-
mainDisposer$
|
|
4223
|
+
mainDisposer$b === null || mainDisposer$b === void 0 ? void 0 : mainDisposer$b();
|
|
4182
4224
|
}
|
|
4183
4225
|
};
|
|
4184
4226
|
const onChannelCreated = (callback) => {
|
|
@@ -4189,21 +4231,21 @@ const onChannelCreated = (callback) => {
|
|
|
4189
4231
|
ingestInCache(data);
|
|
4190
4232
|
callbacks$e.forEach(cb => cb(data.channels[0]));
|
|
4191
4233
|
};
|
|
4192
|
-
mainDisposer$
|
|
4234
|
+
mainDisposer$b = createEventSubscriber(client, 'onChannelCreated', 'channel.created', filter);
|
|
4193
4235
|
}
|
|
4194
4236
|
callbacks$e.push(callback);
|
|
4195
4237
|
return () => dispose$e(callback);
|
|
4196
4238
|
};
|
|
4197
4239
|
|
|
4198
4240
|
const callbacks$d = [];
|
|
4199
|
-
const mainDisposers = [];
|
|
4241
|
+
const mainDisposers$2 = [];
|
|
4200
4242
|
const dispose$d = (cb) => {
|
|
4201
4243
|
const index = callbacks$d.indexOf(cb);
|
|
4202
4244
|
if (index > -1) {
|
|
4203
4245
|
callbacks$d.splice(index, 1);
|
|
4204
4246
|
}
|
|
4205
4247
|
if (callbacks$d.length === 0) {
|
|
4206
|
-
mainDisposers.forEach(fn => fn());
|
|
4248
|
+
mainDisposers$2.forEach(fn => fn());
|
|
4207
4249
|
}
|
|
4208
4250
|
};
|
|
4209
4251
|
const onChannelUpdated = (callback) => {
|
|
@@ -4214,8 +4256,8 @@ const onChannelUpdated = (callback) => {
|
|
|
4214
4256
|
ingestInCache(data);
|
|
4215
4257
|
callbacks$d.forEach(cb => cb(data.channels[0]));
|
|
4216
4258
|
};
|
|
4217
|
-
mainDisposers.push(createEventSubscriber(client, 'onChannelUpdated', 'channel.updated', filter));
|
|
4218
|
-
mainDisposers.push(createEventSubscriber(client, 'onChannelUpdated', 'local.channel.updated', payload => callbacks$d.forEach(cb => cb(payload.channels[0]))));
|
|
4259
|
+
mainDisposers$2.push(createEventSubscriber(client, 'onChannelUpdated', 'channel.updated', filter));
|
|
4260
|
+
mainDisposers$2.push(createEventSubscriber(client, 'onChannelUpdated', 'local.channel.updated', payload => callbacks$d.forEach(cb => cb(payload.channels[0]))));
|
|
4219
4261
|
}
|
|
4220
4262
|
callbacks$d.push(callback);
|
|
4221
4263
|
return () => dispose$d(callback);
|
|
@@ -4242,14 +4284,14 @@ const deleteChannelUnreadByChannelId = (channelId) => {
|
|
|
4242
4284
|
};
|
|
4243
4285
|
|
|
4244
4286
|
const callbacks$c = [];
|
|
4245
|
-
let mainDisposer$
|
|
4287
|
+
let mainDisposer$a = null;
|
|
4246
4288
|
const dispose$c = (cb) => {
|
|
4247
4289
|
const index = callbacks$c.indexOf(cb);
|
|
4248
4290
|
if (index > -1) {
|
|
4249
4291
|
callbacks$c.splice(index, 1);
|
|
4250
4292
|
}
|
|
4251
4293
|
if (callbacks$c.length === 0) {
|
|
4252
|
-
mainDisposer$
|
|
4294
|
+
mainDisposer$a === null || mainDisposer$a === void 0 ? void 0 : mainDisposer$a();
|
|
4253
4295
|
}
|
|
4254
4296
|
};
|
|
4255
4297
|
const onChannelDeleted = (callback) => {
|
|
@@ -4275,21 +4317,21 @@ const onChannelDeleted = (callback) => {
|
|
|
4275
4317
|
ingestInCache(data);
|
|
4276
4318
|
callbacks$c.forEach(cb => cb(data.channels[0]));
|
|
4277
4319
|
};
|
|
4278
|
-
mainDisposer$
|
|
4320
|
+
mainDisposer$a = createEventSubscriber(client, 'onChannelDeleted', 'channel.deleted', filter);
|
|
4279
4321
|
}
|
|
4280
4322
|
callbacks$c.push(callback);
|
|
4281
4323
|
return () => dispose$c(callback);
|
|
4282
4324
|
};
|
|
4283
4325
|
|
|
4284
4326
|
const callbacks$b = [];
|
|
4285
|
-
let mainDisposer$
|
|
4327
|
+
let mainDisposer$9 = null;
|
|
4286
4328
|
const dispose$b = (cb) => {
|
|
4287
4329
|
const index = callbacks$b.indexOf(cb);
|
|
4288
4330
|
if (index > -1) {
|
|
4289
4331
|
callbacks$b.splice(index, 1);
|
|
4290
4332
|
}
|
|
4291
4333
|
if (callbacks$b.length === 0) {
|
|
4292
|
-
mainDisposer$
|
|
4334
|
+
mainDisposer$9 === null || mainDisposer$9 === void 0 ? void 0 : mainDisposer$9();
|
|
4293
4335
|
}
|
|
4294
4336
|
};
|
|
4295
4337
|
const onChannelJoined = (callback) => {
|
|
@@ -4301,21 +4343,21 @@ const onChannelJoined = (callback) => {
|
|
|
4301
4343
|
ingestInCache(preparedPayload);
|
|
4302
4344
|
callbacks$b.forEach(cb => cb(channels[0], channelUsers[0]));
|
|
4303
4345
|
};
|
|
4304
|
-
mainDisposer$
|
|
4346
|
+
mainDisposer$9 = createEventSubscriber(client, 'onChannelJoined', 'channel.joined', filter);
|
|
4305
4347
|
}
|
|
4306
4348
|
callbacks$b.push(callback);
|
|
4307
4349
|
return () => dispose$b(callback);
|
|
4308
4350
|
};
|
|
4309
4351
|
|
|
4310
4352
|
const callbacks$a = [];
|
|
4311
|
-
let mainDisposer$
|
|
4353
|
+
let mainDisposer$8 = null;
|
|
4312
4354
|
const dispose$a = (cb) => {
|
|
4313
4355
|
const index = callbacks$a.indexOf(cb);
|
|
4314
4356
|
if (index > -1) {
|
|
4315
4357
|
callbacks$a.splice(index, 1);
|
|
4316
4358
|
}
|
|
4317
4359
|
if (callbacks$a.length === 0) {
|
|
4318
|
-
mainDisposer$
|
|
4360
|
+
mainDisposer$8 === null || mainDisposer$8 === void 0 ? void 0 : mainDisposer$8();
|
|
4319
4361
|
}
|
|
4320
4362
|
};
|
|
4321
4363
|
const onChannelLeft = (callback) => {
|
|
@@ -4345,21 +4387,21 @@ const onChannelLeft = (callback) => {
|
|
|
4345
4387
|
ingestInCache(preparedPayload);
|
|
4346
4388
|
callbacks$a.forEach(cb => cb(channels[0], channelUsers[0]));
|
|
4347
4389
|
};
|
|
4348
|
-
mainDisposer$
|
|
4390
|
+
mainDisposer$8 = createEventSubscriber(client, 'onChannelLeft', 'channel.left', filter);
|
|
4349
4391
|
}
|
|
4350
4392
|
callbacks$a.push(callback);
|
|
4351
4393
|
return () => dispose$a(callback);
|
|
4352
4394
|
};
|
|
4353
4395
|
|
|
4354
4396
|
const callbacks$9 = [];
|
|
4355
|
-
let mainDisposer$
|
|
4397
|
+
let mainDisposer$7 = null;
|
|
4356
4398
|
const dispose$9 = (cb) => {
|
|
4357
4399
|
const index = callbacks$9.indexOf(cb);
|
|
4358
4400
|
if (index > -1) {
|
|
4359
4401
|
callbacks$9.splice(index, 1);
|
|
4360
4402
|
}
|
|
4361
4403
|
if (callbacks$9.length === 0) {
|
|
4362
|
-
mainDisposer$
|
|
4404
|
+
mainDisposer$7 === null || mainDisposer$7 === void 0 ? void 0 : mainDisposer$7();
|
|
4363
4405
|
}
|
|
4364
4406
|
};
|
|
4365
4407
|
const onChannelSetMuted = (callback) => {
|
|
@@ -4381,21 +4423,21 @@ const onChannelSetMuted = (callback) => {
|
|
|
4381
4423
|
callbacks$9.forEach(cb => cb(channel));
|
|
4382
4424
|
}
|
|
4383
4425
|
};
|
|
4384
|
-
mainDisposer$
|
|
4426
|
+
mainDisposer$7 = createEventSubscriber(client, 'onChannelMute', 'channel.setMuted', filter);
|
|
4385
4427
|
}
|
|
4386
4428
|
callbacks$9.push(callback);
|
|
4387
4429
|
return () => dispose$9(callback);
|
|
4388
4430
|
};
|
|
4389
4431
|
|
|
4390
4432
|
const callbacks$8 = [];
|
|
4391
|
-
let mainDisposer$
|
|
4433
|
+
let mainDisposer$6 = null;
|
|
4392
4434
|
const dispose$8 = (cb) => {
|
|
4393
4435
|
const index = callbacks$8.indexOf(cb);
|
|
4394
4436
|
if (index > -1) {
|
|
4395
4437
|
callbacks$8.splice(index, 1);
|
|
4396
4438
|
}
|
|
4397
4439
|
if (callbacks$8.length === 0) {
|
|
4398
|
-
mainDisposer$
|
|
4440
|
+
mainDisposer$6 === null || mainDisposer$6 === void 0 ? void 0 : mainDisposer$6();
|
|
4399
4441
|
}
|
|
4400
4442
|
};
|
|
4401
4443
|
/* begin_public_function
|
|
@@ -4432,7 +4474,7 @@ const onChannelMessagePinned = (callback) => {
|
|
|
4432
4474
|
const updated = updatePinnedMessageCache(channel, (_a = payload.pinnedMessage) !== null && _a !== void 0 ? _a : null, payload.users);
|
|
4433
4475
|
callbacks$8.forEach(cb => cb(updated));
|
|
4434
4476
|
};
|
|
4435
|
-
mainDisposer$
|
|
4477
|
+
mainDisposer$6 = createEventSubscriber(client, 'onChannelMessagePinned', 'channel.messagePinned', filter);
|
|
4436
4478
|
}
|
|
4437
4479
|
callbacks$8.push(callback);
|
|
4438
4480
|
return () => dispose$8(callback);
|
|
@@ -4440,14 +4482,14 @@ const onChannelMessagePinned = (callback) => {
|
|
|
4440
4482
|
/* end_public_function */
|
|
4441
4483
|
|
|
4442
4484
|
const callbacks$7 = [];
|
|
4443
|
-
let mainDisposer$
|
|
4485
|
+
let mainDisposer$5 = null;
|
|
4444
4486
|
const dispose$7 = (cb) => {
|
|
4445
4487
|
const index = callbacks$7.indexOf(cb);
|
|
4446
4488
|
if (index > -1) {
|
|
4447
4489
|
callbacks$7.splice(index, 1);
|
|
4448
4490
|
}
|
|
4449
4491
|
if (callbacks$7.length === 0) {
|
|
4450
|
-
mainDisposer$
|
|
4492
|
+
mainDisposer$5 === null || mainDisposer$5 === void 0 ? void 0 : mainDisposer$5();
|
|
4451
4493
|
}
|
|
4452
4494
|
};
|
|
4453
4495
|
/* begin_public_function
|
|
@@ -4480,7 +4522,7 @@ const onChannelMessageUnpinned = (callback) => {
|
|
|
4480
4522
|
const updated = updatePinnedMessageCache(channel, null);
|
|
4481
4523
|
callbacks$7.forEach(cb => cb(updated));
|
|
4482
4524
|
};
|
|
4483
|
-
mainDisposer$
|
|
4525
|
+
mainDisposer$5 = createEventSubscriber(client, 'onChannelMessageUnpinned', 'channel.messageUnpinned', filter);
|
|
4484
4526
|
}
|
|
4485
4527
|
callbacks$7.push(callback);
|
|
4486
4528
|
return () => dispose$7(callback);
|
|
@@ -4488,14 +4530,14 @@ const onChannelMessageUnpinned = (callback) => {
|
|
|
4488
4530
|
/* end_public_function */
|
|
4489
4531
|
|
|
4490
4532
|
const callbacks$6 = [];
|
|
4491
|
-
let mainDisposer$
|
|
4533
|
+
let mainDisposer$4 = null;
|
|
4492
4534
|
const dispose$6 = (cb) => {
|
|
4493
4535
|
const index = callbacks$6.indexOf(cb);
|
|
4494
4536
|
if (index > -1) {
|
|
4495
4537
|
callbacks$6.splice(index, 1);
|
|
4496
4538
|
}
|
|
4497
4539
|
if (callbacks$6.length === 0) {
|
|
4498
|
-
mainDisposer$
|
|
4540
|
+
mainDisposer$4 === null || mainDisposer$4 === void 0 ? void 0 : mainDisposer$4();
|
|
4499
4541
|
}
|
|
4500
4542
|
};
|
|
4501
4543
|
const onChannelMemberAdded = (callback) => {
|
|
@@ -4507,21 +4549,21 @@ const onChannelMemberAdded = (callback) => {
|
|
|
4507
4549
|
ingestInCache(preparedPayload);
|
|
4508
4550
|
callbacks$6.forEach(cb => cb(channels[0], channelUsers.find(cu => cu.membership === 'member')));
|
|
4509
4551
|
};
|
|
4510
|
-
mainDisposer$
|
|
4552
|
+
mainDisposer$4 = createEventSubscriber(client, 'onChannelMemberAdded', 'channel.membersAdded', filter);
|
|
4511
4553
|
}
|
|
4512
4554
|
callbacks$6.push(callback);
|
|
4513
4555
|
return () => dispose$6(callback);
|
|
4514
4556
|
};
|
|
4515
4557
|
|
|
4516
4558
|
const callbacks$5 = [];
|
|
4517
|
-
let mainDisposer$
|
|
4559
|
+
let mainDisposer$3 = null;
|
|
4518
4560
|
const dispose$5 = (cb) => {
|
|
4519
4561
|
const index = callbacks$5.indexOf(cb);
|
|
4520
4562
|
if (index > -1) {
|
|
4521
4563
|
callbacks$5.splice(index, 1);
|
|
4522
4564
|
}
|
|
4523
4565
|
if (callbacks$5.length === 0) {
|
|
4524
|
-
mainDisposer$
|
|
4566
|
+
mainDisposer$3 === null || mainDisposer$3 === void 0 ? void 0 : mainDisposer$3();
|
|
4525
4567
|
}
|
|
4526
4568
|
};
|
|
4527
4569
|
const onChannelMemberRemoved = (callback) => {
|
|
@@ -4533,21 +4575,21 @@ const onChannelMemberRemoved = (callback) => {
|
|
|
4533
4575
|
ingestInCache(preparedPayload);
|
|
4534
4576
|
callbacks$5.forEach(cb => cb(channels[0], channelUsers[0]));
|
|
4535
4577
|
};
|
|
4536
|
-
mainDisposer$
|
|
4578
|
+
mainDisposer$3 = createEventSubscriber(client, 'onChannelMemberRemoved', 'channel.membersRemoved', filter);
|
|
4537
4579
|
}
|
|
4538
4580
|
callbacks$5.push(callback);
|
|
4539
4581
|
return () => dispose$5(callback);
|
|
4540
4582
|
};
|
|
4541
4583
|
|
|
4542
4584
|
const callbacks$4 = [];
|
|
4543
|
-
let mainDisposer$
|
|
4585
|
+
let mainDisposer$2 = null;
|
|
4544
4586
|
const dispose$4 = (cb) => {
|
|
4545
4587
|
const index = callbacks$4.indexOf(cb);
|
|
4546
4588
|
if (index > -1) {
|
|
4547
4589
|
callbacks$4.splice(index, 1);
|
|
4548
4590
|
}
|
|
4549
4591
|
if (callbacks$4.length === 0) {
|
|
4550
|
-
mainDisposer$
|
|
4592
|
+
mainDisposer$2 === null || mainDisposer$2 === void 0 ? void 0 : mainDisposer$2();
|
|
4551
4593
|
}
|
|
4552
4594
|
};
|
|
4553
4595
|
const onChannelMemberBanned = (callback) => {
|
|
@@ -4567,20 +4609,20 @@ const onChannelMemberBanned = (callback) => {
|
|
|
4567
4609
|
ingestInCache(preparedPayload);
|
|
4568
4610
|
callbacks$4.forEach(cb => cb(channels[0], channelUsers.find(cu => cu.membership === 'banned')));
|
|
4569
4611
|
};
|
|
4570
|
-
mainDisposer$
|
|
4612
|
+
mainDisposer$2 = createEventSubscriber(client, 'onChannelMemberBanned', 'channel.banned', filter);
|
|
4571
4613
|
callbacks$4.push(callback);
|
|
4572
4614
|
return () => dispose$4(callback);
|
|
4573
4615
|
};
|
|
4574
4616
|
|
|
4575
4617
|
const callbacks$3 = [];
|
|
4576
|
-
let mainDisposer$
|
|
4618
|
+
let mainDisposer$1 = null;
|
|
4577
4619
|
const dispose$3 = (cb) => {
|
|
4578
4620
|
const index = callbacks$3.indexOf(cb);
|
|
4579
4621
|
if (index > -1) {
|
|
4580
4622
|
callbacks$3.splice(index, 1);
|
|
4581
4623
|
}
|
|
4582
4624
|
if (callbacks$3.length === 0) {
|
|
4583
|
-
mainDisposer$
|
|
4625
|
+
mainDisposer$1 === null || mainDisposer$1 === void 0 ? void 0 : mainDisposer$1();
|
|
4584
4626
|
}
|
|
4585
4627
|
};
|
|
4586
4628
|
const onChannelMemberUnbanned = (callback) => {
|
|
@@ -4592,59 +4634,127 @@ const onChannelMemberUnbanned = (callback) => {
|
|
|
4592
4634
|
ingestInCache(preparedPayload);
|
|
4593
4635
|
callbacks$3.forEach(cb => cb(channels[0], channelUsers.find(cu => cu.membership === 'none')));
|
|
4594
4636
|
};
|
|
4595
|
-
mainDisposer$
|
|
4637
|
+
mainDisposer$1 = createEventSubscriber(client, 'onChannelMemberUnbanned', 'channel.unbanned', filter);
|
|
4596
4638
|
}
|
|
4597
4639
|
callbacks$3.push(callback);
|
|
4598
4640
|
return () => dispose$3(callback);
|
|
4599
4641
|
};
|
|
4600
4642
|
|
|
4601
4643
|
const callbacks$2 = [];
|
|
4602
|
-
|
|
4644
|
+
const mainDisposers$1 = [];
|
|
4603
4645
|
const dispose$2 = (cb) => {
|
|
4604
4646
|
const index = callbacks$2.indexOf(cb);
|
|
4605
4647
|
if (index > -1) {
|
|
4606
4648
|
callbacks$2.splice(index, 1);
|
|
4607
4649
|
}
|
|
4608
4650
|
if (callbacks$2.length === 0) {
|
|
4609
|
-
|
|
4651
|
+
mainDisposers$1.forEach(fn => fn());
|
|
4652
|
+
mainDisposers$1.length = 0;
|
|
4610
4653
|
}
|
|
4611
4654
|
};
|
|
4655
|
+
/* begin_public_function
|
|
4656
|
+
id: channel.event.member_role_added
|
|
4657
|
+
*/
|
|
4658
|
+
/**
|
|
4659
|
+
* ```js
|
|
4660
|
+
* import { onChannelMemberRoleAdded } from '@amityco/ts-sdk'
|
|
4661
|
+
* const dispose = onChannelMemberRoleAdded((channel, member) => {
|
|
4662
|
+
* // member.roles and member.permissions are the member's resulting state
|
|
4663
|
+
* })
|
|
4664
|
+
* ```
|
|
4665
|
+
*
|
|
4666
|
+
* Fired when a role is added to a member of a {@link Amity.Channel}, either by the
|
|
4667
|
+
* local `ChannelRepository.Moderation.addRole` call or by the `channel.roleAdded` realtime
|
|
4668
|
+
* event coming from any client or the admin console.
|
|
4669
|
+
*
|
|
4670
|
+
* The realtime event reaches every subscriber of the channel topic (see `getChannelTopic`),
|
|
4671
|
+
* not only the actor or the affected members. It carries the affected members' resulting
|
|
4672
|
+
* channel roles and channel-scoped permissions, which are written to cache before the
|
|
4673
|
+
* callback runs. The callback is invoked once per affected member already held in cache.
|
|
4674
|
+
*
|
|
4675
|
+
* @param callback The function to call when the event was fired
|
|
4676
|
+
* @returns an {@link Amity.Unsubscriber} function to run when willing to stop listening
|
|
4677
|
+
*
|
|
4678
|
+
* @category Channel Events
|
|
4679
|
+
*/
|
|
4612
4680
|
const onChannelMemberRoleAdded = (callback) => {
|
|
4613
4681
|
if (callbacks$2.length === 0) {
|
|
4614
4682
|
const client = getActiveClient();
|
|
4615
|
-
const
|
|
4683
|
+
const onLocal = async (payload) => {
|
|
4616
4684
|
const { channels, channelUsers } = payload;
|
|
4617
4685
|
callbacks$2.forEach(cb => cb(channels[0], channelUsers.find(channelUser => channelUser.membership === 'member')));
|
|
4618
4686
|
};
|
|
4619
|
-
|
|
4687
|
+
const onRealtime = (payload) => {
|
|
4688
|
+
const { channel, members } = applyChannelRolePayload(payload);
|
|
4689
|
+
if (!channel)
|
|
4690
|
+
return;
|
|
4691
|
+
members.forEach(member => callbacks$2.forEach(cb => cb(channel, member)));
|
|
4692
|
+
};
|
|
4693
|
+
mainDisposers$1.push(createEventSubscriber(client, 'onChannelMemberRoleAdded', 'local.channel-moderator.role-added', onLocal));
|
|
4694
|
+
mainDisposers$1.push(createEventSubscriber(client, 'onChannelMemberRoleAdded', 'channel.roleAdded', onRealtime));
|
|
4620
4695
|
}
|
|
4621
4696
|
callbacks$2.push(callback);
|
|
4622
4697
|
return () => dispose$2(callback);
|
|
4623
4698
|
};
|
|
4699
|
+
/* end_public_function */
|
|
4624
4700
|
|
|
4625
4701
|
const callbacks$1 = [];
|
|
4626
|
-
|
|
4702
|
+
const mainDisposers = [];
|
|
4627
4703
|
const dispose$1 = (cb) => {
|
|
4628
4704
|
const index = callbacks$1.indexOf(cb);
|
|
4629
4705
|
if (index > -1) {
|
|
4630
4706
|
callbacks$1.splice(index, 1);
|
|
4631
4707
|
}
|
|
4632
4708
|
if (callbacks$1.length === 0) {
|
|
4633
|
-
|
|
4709
|
+
mainDisposers.forEach(fn => fn());
|
|
4710
|
+
mainDisposers.length = 0;
|
|
4634
4711
|
}
|
|
4635
4712
|
};
|
|
4713
|
+
/* begin_public_function
|
|
4714
|
+
id: channel.event.member_role_removed
|
|
4715
|
+
*/
|
|
4716
|
+
/**
|
|
4717
|
+
* ```js
|
|
4718
|
+
* import { onChannelMemberRoleRemoved } from '@amityco/ts-sdk'
|
|
4719
|
+
* const dispose = onChannelMemberRoleRemoved((channel, member) => {
|
|
4720
|
+
* // member.roles and member.permissions are the member's resulting state
|
|
4721
|
+
* })
|
|
4722
|
+
* ```
|
|
4723
|
+
*
|
|
4724
|
+
* Fired when a role is removed from a member of a {@link Amity.Channel}, either by the
|
|
4725
|
+
* local `ChannelRepository.Moderation.removeRole` call or by the `channel.roleRemoved` realtime
|
|
4726
|
+
* event coming from any client or the admin console.
|
|
4727
|
+
*
|
|
4728
|
+
* The realtime event reaches every subscriber of the channel topic (see `getChannelTopic`),
|
|
4729
|
+
* not only the actor or the affected members. It carries the affected members' resulting
|
|
4730
|
+
* channel roles and channel-scoped permissions, which are written to cache before the
|
|
4731
|
+
* callback runs. The callback is invoked once per affected member already held in cache.
|
|
4732
|
+
*
|
|
4733
|
+
* @param callback The function to call when the event was fired
|
|
4734
|
+
* @returns an {@link Amity.Unsubscriber} function to run when willing to stop listening
|
|
4735
|
+
*
|
|
4736
|
+
* @category Channel Events
|
|
4737
|
+
*/
|
|
4636
4738
|
const onChannelMemberRoleRemoved = (callback) => {
|
|
4637
4739
|
if (callbacks$1.length === 0) {
|
|
4638
4740
|
const client = getActiveClient();
|
|
4639
|
-
const
|
|
4741
|
+
const onLocal = async (payload) => {
|
|
4640
4742
|
const { channels, channelUsers } = payload;
|
|
4641
4743
|
callbacks$1.forEach(cb => cb(channels[0], channelUsers.find(channelUser => channelUser.membership === 'member')));
|
|
4642
4744
|
};
|
|
4643
|
-
|
|
4745
|
+
const onRealtime = (payload) => {
|
|
4746
|
+
const { channel, members } = applyChannelRolePayload(payload);
|
|
4747
|
+
if (!channel)
|
|
4748
|
+
return;
|
|
4749
|
+
members.forEach(member => callbacks$1.forEach(cb => cb(channel, member)));
|
|
4750
|
+
};
|
|
4751
|
+
mainDisposers.push(createEventSubscriber(client, 'onChannelMemberRoleRemoved', 'local.channel-moderator.role-removed', onLocal));
|
|
4752
|
+
mainDisposers.push(createEventSubscriber(client, 'onChannelMemberRoleRemoved', 'channel.roleRemoved', onRealtime));
|
|
4644
4753
|
}
|
|
4645
4754
|
callbacks$1.push(callback);
|
|
4646
4755
|
return () => dispose$1(callback);
|
|
4647
4756
|
};
|
|
4757
|
+
/* end_public_function */
|
|
4648
4758
|
|
|
4649
4759
|
/**
|
|
4650
4760
|
* Fired when a {@link Amity.Channel} has been archived by the active user.
|
|
@@ -4768,6 +4878,8 @@ const getMyMembership = (channelId, callback) => {
|
|
|
4768
4878
|
disposers.push(onChannelMemberBanned(realtimeRouter));
|
|
4769
4879
|
disposers.push(onChannelMemberUnbanned(realtimeRouter));
|
|
4770
4880
|
disposers.push(onChannelSetUserMuted(realtimeRouter));
|
|
4881
|
+
disposers.push(onChannelMemberRoleAdded(realtimeRouter));
|
|
4882
|
+
disposers.push(onChannelMemberRoleRemoved(realtimeRouter));
|
|
4771
4883
|
onFetch();
|
|
4772
4884
|
return () => {
|
|
4773
4885
|
disposers.forEach(fn => fn());
|
|
@@ -5616,6 +5728,7 @@ const logout = async () => {
|
|
|
5616
5728
|
client.userId = undefined;
|
|
5617
5729
|
client.token = undefined;
|
|
5618
5730
|
client.loginType = undefined;
|
|
5731
|
+
client.isGloballyBanned = false;
|
|
5619
5732
|
client.http.defaults.headers.common.Authorization = '';
|
|
5620
5733
|
client.http.defaults.metadata = {
|
|
5621
5734
|
tokenExpiry: '',
|
|
@@ -8006,8 +8119,10 @@ const loginWithAccessToken = async (accessToken) => {
|
|
|
8006
8119
|
catch (error) {
|
|
8007
8120
|
// If error occurs, revert session state to not logged in
|
|
8008
8121
|
setSessionState("notLoggedIn" /* Amity.SessionStates.NOT_LOGGED_IN */);
|
|
8009
|
-
// Re-throw if it's already an ASCError
|
|
8010
8122
|
if (error instanceof ASCError) {
|
|
8123
|
+
if (error.code === 400312 /* Amity.ServerError.GLOBAL_BAN */) {
|
|
8124
|
+
client.isGloballyBanned = true;
|
|
8125
|
+
}
|
|
8011
8126
|
throw error;
|
|
8012
8127
|
}
|
|
8013
8128
|
// Wrap other errors
|
|
@@ -8075,11 +8190,18 @@ const renewWithAccessToken = async (accessToken) => {
|
|
|
8075
8190
|
await loginWithAccessToken(accessToken);
|
|
8076
8191
|
}
|
|
8077
8192
|
else {
|
|
8078
|
-
|
|
8079
|
-
|
|
8080
|
-
|
|
8081
|
-
|
|
8082
|
-
|
|
8193
|
+
try {
|
|
8194
|
+
await validateAccessToken({
|
|
8195
|
+
token: tokenObject,
|
|
8196
|
+
userId,
|
|
8197
|
+
});
|
|
8198
|
+
}
|
|
8199
|
+
catch (error) {
|
|
8200
|
+
if (error instanceof ASCError && error.code === 400312 /* Amity.ServerError.GLOBAL_BAN */) {
|
|
8201
|
+
client.isGloballyBanned = true;
|
|
8202
|
+
}
|
|
8203
|
+
throw error;
|
|
8204
|
+
}
|
|
8083
8205
|
}
|
|
8084
8206
|
};
|
|
8085
8207
|
/* end_public_function */
|
|
@@ -8096,6 +8218,9 @@ const renewTokenWithHandler = async ({ useScheduledTask = false, }) => {
|
|
|
8096
8218
|
if (!client.userId || !client.accessTokenHandler) {
|
|
8097
8219
|
return;
|
|
8098
8220
|
}
|
|
8221
|
+
if (client.isGloballyBanned) {
|
|
8222
|
+
return;
|
|
8223
|
+
}
|
|
8099
8224
|
try {
|
|
8100
8225
|
const newToken = await client.accessTokenHandler.onTokenRenew(client.userId);
|
|
8101
8226
|
if (useScheduledTask) {
|
|
@@ -22832,7 +22957,8 @@ var index$j = /*#__PURE__*/Object.freeze({
|
|
|
22832
22957
|
prepareChannelPayload: prepareChannelPayload,
|
|
22833
22958
|
findCachedChannelByAnyId: findCachedChannelByAnyId,
|
|
22834
22959
|
findCachedChannelForPin: findCachedChannelForPin,
|
|
22835
|
-
updatePinnedMessageCache: updatePinnedMessageCache
|
|
22960
|
+
updatePinnedMessageCache: updatePinnedMessageCache,
|
|
22961
|
+
applyChannelRolePayload: applyChannelRolePayload
|
|
22836
22962
|
});
|
|
22837
22963
|
|
|
22838
22964
|
const saveCommunityUsers = (communities, communityUsers) => {
|