UNPKG

@sendbird/chat

Version:
1 lines 166 kB
var e,t,s,n,i,a,r,o,l,d=require("./__bundle-846135d7.cjs"),h=require("./__bundle-a756336f.cjs"),c=require("./__bundle-f1d13cda.cjs"),u=require("./__bundle-a59763e3.cjs"),_=require("./__bundle-6c8aa193.cjs");exports.MemberState=void 0,(e=exports.MemberState||(exports.MemberState={})).NONE="none",e.JOINED="joined",e.INVITED="invited",e.LEFT="left";class p extends h.RestrictedUser{constructor(e,t){super(e,t),this.state=null,this.role=null,this.isMuted=!1,this.isBlockedByMe=!1,this.isBlockingMe=!1,this.state=d.isEnumOf(exports.MemberState,t.state)?t.state:null,this.role=d.isEnumOf(d.Role,t.role)?t.role:null,"boolean"==typeof t.is_muted&&(this.isMuted=t.is_muted),"boolean"==typeof t.is_blocked_by_me&&(this.isBlockedByMe=t.is_blocked_by_me),"boolean"==typeof t.is_blocking_me&&(this.isBlockingMe=t.is_blocking_me)}static payloadify(e){return d.deundefined(d.undefineNullProps(Object.assign(Object.assign({},super.payloadify(e)),{state:e.state,role:e.role,is_muted:e.isMuted,is_blocked_by_me:e.isBlockedByMe,is_blocking_me:e.isBlockingMe})))}}class m extends d.InstancedObject{constructor(e,t){var s,n;super(e),this.channelUrl=null!==(s=t.channel_url)&&void 0!==s?s:"",this.channelType=null!==(n=t.channel_type)&&void 0!==n?n:d.ChannelType.GROUP,this.member=new d.User(this._iid,t.user),this.deliveryAt=t.ts}}exports.PublicChannelFilter=void 0,(t=exports.PublicChannelFilter||(exports.PublicChannelFilter={})).ALL="all",t.PUBLIC="public",t.PRIVATE="private",exports.MyMemberStateFilter=void 0,(s=exports.MyMemberStateFilter||(exports.MyMemberStateFilter={})).ALL="all",s.JOINED="joined_only",s.INVITED="invited_only",s.INVITED_BY_FRIEND="invited_by_friend",s.INVITED_BY_NON_FRIEND="invited_by_non_friend",exports.SuperChannelFilter=void 0,(n=exports.SuperChannelFilter||(exports.SuperChannelFilter={})).ALL="all",n.SUPER="super",n.NON_SUPER="nonsuper",n.BROADCAST_ONLY="broadcast_only",n.EXCLUSIVE_ONLY="exclusive_only",exports.UnreadChannelFilter=void 0,(i=exports.UnreadChannelFilter||(exports.UnreadChannelFilter={})).ALL="all",i.UNREAD_MESSAGE="unread_message",exports.HiddenChannelFilter=void 0,(a=exports.HiddenChannelFilter||(exports.HiddenChannelFilter={})).ALL="all",a.UNHIDDEN="unhidden_only",a.HIDDEN="hidden_only",a.HIDDEN_ALLOW_AUTO_UNHIDE="hidden_allow_auto_unhide",a.HIDDEN_PREVENT_AUTO_UNHIDE="hidden_prevent_auto_unhide",exports.OperatorFilter=void 0,(r=exports.OperatorFilter||(exports.OperatorFilter={})).ALL="all",r.OPERATOR="operator",r.NONOPERATOR="nonoperator",exports.QueryType=void 0,(o=exports.QueryType||(exports.QueryType={})).AND="AND",o.OR="OR",exports.GroupChannelSearchField=void 0,(l=exports.GroupChannelSearchField||(exports.GroupChannelSearchField={})).MEMBER_NICKNAME="member_nickname",l.CHANNEL_NAME="channel_name";class g{constructor(e){var t,s,n,i,a,r,o,l,d,h,c,u,_,p,m;this._searchFilter=null,this._userIdsFilter=null,this.includeEmpty=null!==(t=null==e?void 0:e.includeEmpty)&&void 0!==t&&t,this.nicknameContainsFilter=null!==(s=null==e?void 0:e.nicknameContainsFilter)&&void 0!==s?s:null,this.nicknameStartsWithFilter=null!==(n=null==e?void 0:e.nicknameStartsWithFilter)&&void 0!==n?n:null,this.nicknameExactMatchFilter=null!==(i=null==e?void 0:e.nicknameExactMatchFilter)&&void 0!==i?i:null,this.channelNameContainsFilter=null!==(a=null==e?void 0:e.channelNameContainsFilter)&&void 0!==a?a:"",this.myMemberStateFilter=null!==(r=null==e?void 0:e.myMemberStateFilter)&&void 0!==r?r:exports.MyMemberStateFilter.ALL,this.customTypesFilter=null!==(o=null==e?void 0:e.customTypesFilter)&&void 0!==o?o:null,this.channelUrlsFilter=null!==(l=null==e?void 0:e.channelUrlsFilter)&&void 0!==l?l:null,this.superChannelFilter=null!==(d=null==e?void 0:e.superChannelFilter)&&void 0!==d?d:exports.SuperChannelFilter.ALL,this.publicChannelFilter=null!==(h=null==e?void 0:e.publicChannelFilter)&&void 0!==h?h:exports.PublicChannelFilter.ALL,this.customTypeStartsWithFilter=null!==(c=null==e?void 0:e.customTypeStartsWithFilter)&&void 0!==c?c:null,this.unreadChannelFilter=null!==(u=null==e?void 0:e.unreadChannelFilter)&&void 0!==u?u:exports.UnreadChannelFilter.ALL,this.hiddenChannelFilter=null!==(_=null==e?void 0:e.hiddenChannelFilter)&&void 0!==_?_:exports.HiddenChannelFilter.UNHIDDEN,this.includeFrozen=null===(p=null==e?void 0:e.includeFrozen)||void 0===p||p,(null==e?void 0:e.createdAfter)&&(this.createdAfter=e.createdAfter),(null==e?void 0:e.createdBefore)&&(this.createdBefore=e.createdBefore),this.includeMetaData=null===(m=null==e?void 0:e.includeMetaData)||void 0===m||m}_isFriend(e){return!(!e||!e.friendDiscoveryKey&&!e.friendName)}get searchFilter(){return this._searchFilter}setSearchFilter(e,t){Array.isArray(e)&&0!==e.length&&"string"==typeof t&&t&&(this._searchFilter={query:t,fields:e})}get userIdsFilter(){return this._userIdsFilter}setUserIdsFilter(e,t,s=exports.QueryType.AND){this._userIdsFilter={userIds:e,includeMode:t,queryType:s}}clone(){var e;const t=new g;this.searchFilter&&t.setSearchFilter(this.searchFilter.fields,null!==(e=this.searchFilter.query)&&void 0!==e?e:void 0),this.userIdsFilter&&t.setUserIdsFilter(this.userIdsFilter.userIds,this.userIdsFilter.includeMode,this.userIdsFilter.queryType);const s=JSON.parse(JSON.stringify(this));return Object.keys(s).forEach((e=>{t[e]=s[e]})),t}match(e,t){if(this._searchFilter){const{query:t,fields:s}=this._searchFilter;if(t&&s&&s.length>0&&!s.some((s=>{switch(s){case exports.GroupChannelSearchField.CHANNEL_NAME:return e.name.toLowerCase().includes(t.toLowerCase());case exports.GroupChannelSearchField.MEMBER_NICKNAME:return e.members.some((e=>e.nickname.toLowerCase().includes(t.toLowerCase())));default:return!0}})))return!1}if(this._userIdsFilter){const{userIds:s,includeMode:n,queryType:i}=this._userIdsFilter,a=e.members.map((e=>e.userId));if(n){if(s.length>0)switch(i){case exports.QueryType.AND:if(s.some((e=>!a.includes(e))))return!1;break;case exports.QueryType.OR:if(s.every((e=>!a.includes(e))))return!1}}else{if(s.includes(t)||s.push(t),e.members.length>s.length)return!1;if(!d.hasSameMembers(s,a))return!1}}if(!this.includeEmpty&&!e.lastMessage)return!1;if(!this.includeFrozen&&e.isFrozen)return!1;if(this.customTypesFilter&&this.customTypesFilter.length>0&&!this.customTypesFilter.includes("*")&&!this.customTypesFilter.includes(e.customType))return!1;if(this.customTypeStartsWithFilter&&!new RegExp(`^${this.customTypeStartsWithFilter}`).test(e.customType))return!1;if(this.channelNameContainsFilter&&!e.name.toLowerCase().includes(this.channelNameContainsFilter.toLowerCase()))return!1;if(this.nicknameContainsFilter){const s=this.nicknameContainsFilter.toLowerCase();if(!e.members.some((e=>e.userId!==t&&e.nickname.toLowerCase().includes(s))))return!1}if(this.nicknameStartsWithFilter){const s=this.nicknameStartsWithFilter.toLowerCase();if(!e.members.some((e=>e.userId!==t&&e.nickname.toLowerCase().startsWith(s))))return!1}if(this.nicknameExactMatchFilter){const s=this.nicknameExactMatchFilter.toLowerCase();if(!e.members.some((e=>e.userId!==t&&e.nickname.toLowerCase()!=s)))return!1}if(this.channelUrlsFilter&&this.channelUrlsFilter.length>0&&!this.channelUrlsFilter.includes(e.url))return!1;if(this.myMemberStateFilter)switch(this.myMemberStateFilter){case exports.MyMemberStateFilter.ALL:if("none"===e.myMemberState)return!1;break;case exports.MyMemberStateFilter.JOINED:if("joined"!==e.myMemberState)return!1;break;case exports.MyMemberStateFilter.INVITED:if("invited"!==e.myMemberState)return!1;break;case exports.MyMemberStateFilter.INVITED_BY_FRIEND:if("invited"!==e.myMemberState||!this._isFriend(e.inviter))return!1;break;case exports.MyMemberStateFilter.INVITED_BY_NON_FRIEND:if("invited"!==e.myMemberState||this._isFriend(e.inviter))return!1}if(this.hiddenChannelFilter)switch(this.hiddenChannelFilter){case exports.HiddenChannelFilter.UNHIDDEN:if(e.isHidden||"unhidden"!==e.hiddenState)return!1;break;case exports.HiddenChannelFilter.HIDDEN:if(!e.isHidden)return!1;break;case exports.HiddenChannelFilter.HIDDEN_ALLOW_AUTO_UNHIDE:if(!e.isHidden||"hidden_allow_auto_unhide"!==e.hiddenState)return!1;break;case exports.HiddenChannelFilter.HIDDEN_PREVENT_AUTO_UNHIDE:if(!e.isHidden||"hidden_prevent_auto_unhide"!==e.hiddenState)return!1}if(this.unreadChannelFilter&&this.unreadChannelFilter===exports.UnreadChannelFilter.UNREAD_MESSAGE)if(0===e.unreadMessageCount)return!1;if(this.publicChannelFilter)switch(this.publicChannelFilter){case exports.PublicChannelFilter.PUBLIC:if(!e.isPublic)return!1;break;case exports.PublicChannelFilter.PRIVATE:if(e.isPublic)return!1}if(this.superChannelFilter)switch(this.superChannelFilter){case exports.SuperChannelFilter.SUPER:if(!e.isSuper)return!1;break;case exports.SuperChannelFilter.NON_SUPER:if(e.isSuper)return!1}return!(this.createdAfter&&e.createdAt<this.createdAfter)&&!(this.createdBefore&&e.createdAt>this.createdBefore)}}class C extends d.InstancedObject{constructor(e,{sdkState:t,cacheContext:s}){super(e),this._channels=new Map,this._sdkState=t,this._cacheContext=s}get collection(){const{nestdb:e}=this._cacheContext;return d.unless(!!e).throw(d.SendbirdError.databaseError),e.collection(h.NESTDB_GROUPCHANNEL_COLLECTION_NAME)}get localCacheEnabled(){const{localCacheEnabled:e}=this._cacheContext;return e&&!!this.collection}_serialize(e,t=0){return Object.assign(Object.assign({},e.serialize()),{lastMessageUpdatedAt:e.lastMessage?e.lastMessage.createdAt:0,syncIndex:t})}_deserialize(e){return Ne.of(this._iid).buildGroupChannelFromSerializedData(e)}get channels(){return[...this._channels.values()]}isCachedInMemory(e){return this._channels.has(e)}filterOffsetChanged(e){return e.filter((e=>{if(this._channels.has(e.url)){return this._channels.get(e.url).messageOffsetTimestamp<e.messageOffsetTimestamp}}))}get(e){return d.__awaiter(this,void 0,void 0,(function*(){if(this._channels.has(e))return this._channels.get(e);if(this.localCacheEnabled){const t=yield this.collection.getByKey(e);if(t){const s=this._deserialize(t);return this._channels.set(e,s),s}}}))}fetch({token:e,limit:t=h.DEFAULT_GROUPCHANNEL_LIMIT,backward:s=!1,filter:n=new g,order:i=c.GroupChannelListOrder.LATEST_LAST_MESSAGE,borderlineChannelUrl:a}){return d.__awaiter(this,void 0,void 0,(function*(){if(this.localCacheEnabled){let r=!!a;const o={where:t=>{if(e)switch(i){case c.GroupChannelListOrder.CHANNEL_NAME_ALPHABETICAL:if(!s&&t.name.localeCompare(e)<0||s&&t.name.localeCompare(e)>0)return!1;break;case c.GroupChannelListOrder.CHRONOLOGICAL:if(!s&&t.createdAt>e||s&&t.createdAt<e)return!1;break;case c.GroupChannelListOrder.LATEST_LAST_MESSAGE:if(!s&&t.lastMessageUpdatedAt>e||s&&t.lastMessageUpdatedAt<e)return!1}return r&&a&&a===t.url?(r=!1,!1):!r&&n.match(this._deserialize(t),this._sdkState.userId)},index:c.getGroupChannelIndexBy(i),backward:s},l=yield this.collection.query(o),d=(yield l.fetch({limit:t})).map((e=>this._deserialize(e)));return d.forEach((e=>{!n.includeMetaData&&e.cachedMetaData&&e._clearCachedMetaData(),this._channels.has(e.url)||this._channels.set(e.url,e)})),d}return[]}))}upsert(e,t){return d.__awaiter(this,void 0,void 0,(function*(){const s=[];if(e.forEach((e=>{if(this._channels.has(e.url)){const n=this._channels.get(e.url);if(n._pinnedMessagesUpdatedAt<e._pinnedMessagesUpdatedAt&&(n._pinnedMessagesUpdatedAt=e._pinnedMessagesUpdatedAt),n._messageCollectionLastAccessedAt>e._messageCollectionLastAccessedAt&&(e._messageCollectionLastAccessedAt=n._messageCollectionLastAccessedAt),e.cachedMetaData instanceof Map&&e.cachedMetaData.size>0&&t){const{isUpdated:s}=n._updateCachedMetaData(e.cachedMetaData,t);s||Object.assign(e,{_cachedMetaData:n.cachedMetaData})}n._update(e),s.push(n)}else this._channels.set(e.url,e),s.push(e)})),this.localCacheEnabled){const e=[];for(let t=0;t<s.length;t++)e.push(this._serialize(s[t],t));yield this.collection.upsertMany(e)}return s}))}remove(e){return d.__awaiter(this,void 0,void 0,(function*(){for(const t of e)this._channels.delete(t),this.localCacheEnabled&&(yield this.collection.remove(t))}))}clear(){return d.__awaiter(this,void 0,void 0,(function*(){this.clearMemoryCache(),this.localCacheEnabled&&(yield this.collection.clear())}))}clearMemoryCache(){this._channels.clear()}_setBlockStateOfAllChannels(e,t,s){return d.__awaiter(this,void 0,void 0,(function*(){const n=[];if(e===this._sdkState.userId){for(const e of this._channels.values())for(const i of e.members)if(i.userId===t){i.isBlockedByMe=s,n.push(e);break}}else if(t===this._sdkState.userId)for(const t of this._channels.values())for(const i of t.members)if(i.userId===e){i.isBlockingMe=s,n.push(t);break}n.length>0&&(yield this.upsert(n))}))}block(e,t){return d.__awaiter(this,void 0,void 0,(function*(){yield this._setBlockStateOfAllChannels(e,t,!0)}))}unblock(e,t){return d.__awaiter(this,void 0,void 0,(function*(){yield this._setBlockStateOfAllChannels(e,t,!1)}))}markAsRead(e,t=[...this._channels.keys()]){return d.__awaiter(this,void 0,void 0,(function*(){const s=[];for(const n of t){const t=yield this.get(n);(null==t?void 0:t._updateUnreadMemberState(this._sdkState.userId,e))&&(t._updateUnreadCount(0,0),s.push(t))}s.length>0&&(yield this.upsert(s))}))}}const E={invitedUserIds:void 0,channelUrl:void 0,coverUrl:void 0,coverImage:void 0,isDistinct:void 0,isSuper:void 0,isBroadcast:void 0,isExclusive:void 0,isPublic:void 0,isDiscoverable:void 0,isStrict:void 0,isEphemeral:void 0,accessCode:void 0,name:void 0,data:void 0,customType:void 0,operatorUserIds:void 0,messageSurvivalSeconds:void 0},v=e=>d.isArrayOf("string",e.invitedUserIds,!0)&&d.isTypeOf("string",e.channelUrl,!0)&&d.isTypeOf("string",e.coverUrl,!0)&&(d.isFile(e.coverImage)||d.isTypeOf("string",e.coverImage,!0))&&d.isTypeOf("boolean",e.isDistinct,!0)&&d.isTypeOf("boolean",e.isSuper,!0)&&d.isTypeOf("boolean",e.isBroadcast,!0)&&d.isTypeOf("boolean",e.isExclusive,!0)&&d.isTypeOf("boolean",e.isPublic,!0)&&d.isTypeOf("boolean",e.isStrict,!0)&&d.isTypeOf("boolean",e.isDiscoverable,!0)&&d.isTypeOf("boolean",e.isEphemeral,!0)&&d.isTypeOf("string",e.accessCode,!0)&&d.isTypeOf("string",e.name,!0)&&d.isTypeOf("string",e.data,!0)&&d.isTypeOf("string",e.customType,!0)&&d.isArrayOf("string",e.operatorUserIds,!0)&&d.isTypeOf("number",e.messageSurvivalSeconds,!0),f={customTypes:void 0,includeEmpty:!1,includeFrozen:!0,includeMetaData:!0,includeChatNotification:!1},M=e=>d.isArrayOf("string",e.customTypes,!0)&&d.isTypeOf("boolean",e.includeEmpty,!0)&&d.isTypeOf("boolean",e.includeFrozen,!0)&&d.isTypeOf("boolean",e.includeMetaData,!0)&&d.isTypeOf("boolean",e.includeChatNotification,!0),S={myMemberStateFilter:exports.MyMemberStateFilter.ALL},y=e=>d.isEnumOf(exports.MyMemberStateFilter,e.myMemberStateFilter);var A;exports.UnreadItemKey=void 0,(A=exports.UnreadItemKey||(exports.UnreadItemKey={})).GROUP_CHANNEL_UNREAD_MENTION_COUNT="group_channel_unread_mention_count",A.NONSUPER_UNREAD_MENTION_COUNT="non_super_group_channel_unread_mention_count",A.SUPER_UNREAD_MENTION_COUNT="super_group_channel_unread_mention_count",A.GROUP_CHANNEL_UNREAD_MESSAGE_COUNT="group_channel_unread_message_count",A.NONSUPER_UNREAD_MESSAGE_COUNT="non_super_group_channel_unread_message_count",A.SUPER_UNREAD_MESSAGE_COUNT="super_group_channel_unread_message_count",A.GROUP_CHANNEL_INVITATION_COUNT="group_channel_invitation_count",A.NONSUPER_INVITATION_COUNT="non_super_group_channel_invitation_count",A.SUPER_INVITATION_COUNT="super_group_channel_invitation_count";const b={keys:[exports.UnreadItemKey.GROUP_CHANNEL_UNREAD_MENTION_COUNT,exports.UnreadItemKey.NONSUPER_UNREAD_MENTION_COUNT,exports.UnreadItemKey.SUPER_UNREAD_MENTION_COUNT,exports.UnreadItemKey.GROUP_CHANNEL_UNREAD_MESSAGE_COUNT,exports.UnreadItemKey.NONSUPER_UNREAD_MESSAGE_COUNT,exports.UnreadItemKey.SUPER_UNREAD_MESSAGE_COUNT,exports.UnreadItemKey.GROUP_CHANNEL_INVITATION_COUNT,exports.UnreadItemKey.NONSUPER_INVITATION_COUNT,exports.UnreadItemKey.SUPER_INVITATION_COUNT],customTypeFilters:void 0,customTypesFilter:void 0},N={channelCustomTypesFilter:void 0,superChannelFilter:exports.SuperChannelFilter.ALL},T=e=>d.isArrayOf("string",e.channelCustomTypesFilter,!0)&&d.isEnumOf(exports.SuperChannelFilter,e.superChannelFilter),U={channelUrl:void 0,scheduledStatus:void 0,messageTypeFilter:d.MessageTypeFilter.ALL},I=Object.assign({},d.CollectionEventSource),x=e=>e.startsWith("EVENT_")||e===d.CollectionEventSource.SYNC_CHANNEL_CHANGELOGS||e===d.CollectionEventSource.REFRESH_CHANNEL;class P extends d.BaseCommand{constructor({channels:e,context:t,isWebSocketEventComing:s=!1,ts:n}){super(),this.channels=e,this.context=t,this.isWebSocketEventComing=s,this.ts=n}}class R extends d.BaseCommand{constructor({channelUrls:e,context:t,isWebSocketEventComing:s=!1}){super(),this.channelUrls=e,this.context=t,this.isWebSocketEventComing=s}}class O extends d.BaseCommand{constructor({channel:e}){super(),this.channel=e}}class w{constructor({groupChannelCache:e,userInfoCache:t,messageCache:s,unsentMessageCache:n,dispatcher:i}){this._observers=new Map,i.on((i=>d.__awaiter(this,void 0,void 0,(function*(){if(i instanceof P){const{channels:t,context:n,isWebSocketEventComing:a}=i,r=t.filter((e=>e instanceof ft));if(n.source===d.CollectionEventSource.EVENT_CHANNEL_RESET_HISTORY||n.source===d.CollectionEventSource.EVENT_CHANNEL_HIDDEN)for(const e of r)yield s.removeUnderOffset(e.url,e.messageOffsetTimestamp);else{const t=e.filterOffsetChanged(r);for(const e of t)yield s.removeUnderOffset(e.url,e.messageOffsetTimestamp)}const o=yield e.upsert(r,i.ts);a||this._broadcastUpdateEvent(o,n)}else if(i instanceof R){const{channelUrls:t,context:a,isWebSocketEventComing:r}=i;yield e.remove(t),yield d.runOrNothing((()=>d.__awaiter(this,void 0,void 0,(function*(){for(const e of t)yield s.removeMessagesOfChannel(e),yield n.removeMessagesOfChannel(e)})))),r||this._broadcastRemoveEvent(t,a)}else i instanceof c.DatabaseOpenCommand&&(yield e.fetch({token:Number.MAX_SAFE_INTEGER,limit:Number.MAX_SAFE_INTEGER}),yield t.fetch({limit:Number.MAX_SAFE_INTEGER}))}))))}_broadcastUpdateEvent(e,t){for(const s of this._observers.values())s.onUpdate&&s.onUpdate(e,t)}_broadcastRemoveEvent(e,t){for(const s of this._observers.values())s.onRemove&&s.onRemove(e,t)}subscribe(e,t){this._observers.set(e,t)}unsubscribe(e){this._observers.delete(e)}unsubscribeAll(){this._observers.clear()}}class L extends d.APIRequestCommand{constructor({userId:e,ts:t,token:s,filter:n,includeChatNotification:i=!1}){super();const{customTypes:a,includeEmpty:r,includeFrozen:o}=Object.assign(Object.assign({},f),n);this.method=d.APIRequestMethod.GET,this.path=`${d.API_PATH_USERS}/${encodeURIComponent(e)}/my_group_channels/changelogs`,this.params=d.deundefined(d.undefineNullProps({show_delivery_receipt:!0,show_member:!0,show_read_receipt:!0,change_ts:t||null,token:s,custom_types:a,show_empty:r,show_frozen:o,include_chat_notification:i}))}}class D extends d.APIResponseCommand{constructor(e,t){super(e,t),this.updatedChannels=t.updated.map((s=>new ft(e,Object.assign(s,{ts:t.ts})))),this.deletedChannelUrls=t.deleted,this.hasMore=t.has_more,this.token=t.next,this.ts=t.ts}}class F extends d.APIRequestCommand{constructor({channelUrl:e,isInternalCall:t,showLatestMessage:s}){super(),this.method=d.APIRequestMethod.GET,this.path=`${t?d.API_PATH_GROUP_CHANNELS_INTERNAL:d.API_PATH_GROUP_CHANNELS}/${encodeURIComponent(e)}`,this.params={show_member:!0,show_read_receipt:!0,show_delivery_receipt:!0,show_latest_message:null!=s&&s}}}class k extends d.APIResponseCommand{constructor(e,t){super(e,t),this.channel=new ft(e,t)}}const H={includeEmpty:!1,includeFrozen:!0,includeMetaData:!0,includeChatNotification:!1,channelUrlsFilter:void 0,customTypesFilter:void 0,customTypeStartsWithFilter:void 0,nicknameContainsFilter:void 0,nicknameStartsWithFilter:void 0,nicknameExactMatchFilter:void 0,channelNameContainsFilter:void 0,myMemberStateFilter:exports.MyMemberStateFilter.ALL,unreadChannelFilter:exports.UnreadChannelFilter.ALL,superChannelFilter:exports.SuperChannelFilter.ALL,publicChannelFilter:exports.PublicChannelFilter.ALL,hiddenChannelFilter:exports.HiddenChannelFilter.ALL,userIdsFilter:{userIds:[],includeMode:!0,queryType:exports.QueryType.AND},searchFilter:{query:void 0,fields:[]},metadataKey:void 0,metadataValues:void 0,metadataOrderKeyFilter:void 0,metadataValueStartsWith:void 0,order:c.GroupChannelListOrder.LATEST_LAST_MESSAGE,createdAfter:void 0,createdBefore:void 0};class V extends d.APIRequestCommand{constructor(e){const{userId:t,token:s,limit:n,order:i,includeEmpty:a,myMemberStateFilter:r,superChannelFilter:o,publicChannelFilter:l,unreadChannelFilter:h,nicknameContainsFilter:c,nicknameStartsWithFilter:u,nicknameExactMatchFilter:_,channelNameContainsFilter:p,channelUrlsFilter:m,customTypesFilter:g,customTypeStartsWithFilter:C,hiddenChannelFilter:E,metadataOrderKeyFilter:v,metadataKey:f,metadataValues:M,metadataValueStartsWith:S,includeFrozen:y,includeMetaData:A,searchFilter:b,userIdsFilter:N,includeChatNotification:T=!1,includeLeftChannel:U=!1,createdAfter:I,createdBefore:x}=e;super(),this.method=d.APIRequestMethod.GET,this.path=`${d.API_PATH_USERS}/${encodeURIComponent(t)}/my_group_channels`,this.params=d.deundefined({token:s,limit:n,order:null!=i?i:H.order,show_member:!0,show_read_receipt:!0,show_delivery_receipt:!0,show_empty:null!=a?a:H.includeEmpty,member_state_filter:null!=r?r:H.myMemberStateFilter,super_mode:null!=o?o:H.superChannelFilter,public_mode:null!=l?l:H.publicChannelFilter,unread_filter:null!=h?h:H.unreadChannelFilter,members_nickname_contains:c,members_nickname_startswith:u,members_nickname:_,name_contains:p,channel_urls:m,custom_types:g,custom_type_startswith:C,hidden_mode:E,metadata_order_key:v,metadata_key:f,metadata_values:M,metadata_value_startswith:S,show_frozen:y,show_metadata:A,include_chat_notification:T,include_left_channel:U,created_after:I,created_before:x}),b&&b.query&&b.fields&&(this.params.search_query=b.query,this.params.search_fields=b.fields),N&&N.userIds&&N.userIds.length>0&&(N.includeMode?(this.params.members_include_in=N.userIds,this.params.query_type=N.queryType.toUpperCase()):this.params.members_exactly_in=N.userIds)}}class G extends d.APIResponseCommand{constructor(e,t){super(e,t),this.channels=[];const{next:s,channels:n,ts:i}=t;this.token=s,n&&n.length>0&&(this.channels=n.map((t=>(t.ts=i,new ft(e,t))))),this.ts=null!=i?i:0}}class q extends d.APIRequestCommand{constructor({userId:e,filter:t}){super();const{myMemberStateFilter:s}=t;this.method=d.APIRequestMethod.GET,this.path=`${d.API_PATH_USERS}/${encodeURIComponent(e)}/group_channel_count`,this.params={state:null!=s?s:exports.MyMemberStateFilter.ALL}}}class B extends d.APIResponseCommand{constructor(e,t){super(e,t),this.groupChannelCount=t.group_channel_count}}class j extends d.APIRequestCommand{constructor({userId:e,filter:t}){super();const{keys:s,customTypeFilters:n,customTypesFilter:i}=t;this.method=d.APIRequestMethod.GET,this.path=`${d.API_PATH_USERS}/${encodeURIComponent(e)}/unread_item_count`,this.params=d.deundefined({item_keys:s,custom_types:null!=i?i:n})}}class z extends d.APIResponseCommand{constructor(e,t){super(e,t),"number"==typeof t[exports.UnreadItemKey.GROUP_CHANNEL_UNREAD_MENTION_COUNT]&&(this.groupChannelUnreadMentionCount=t[exports.UnreadItemKey.GROUP_CHANNEL_UNREAD_MENTION_COUNT]),"number"==typeof t[exports.UnreadItemKey.GROUP_CHANNEL_UNREAD_MESSAGE_COUNT]&&(this.groupChannelUnreadMessageCount=t[exports.UnreadItemKey.GROUP_CHANNEL_UNREAD_MESSAGE_COUNT]),"number"==typeof t[exports.UnreadItemKey.GROUP_CHANNEL_INVITATION_COUNT]&&(this.groupChannelInvitationCount=t[exports.UnreadItemKey.GROUP_CHANNEL_INVITATION_COUNT]),"number"==typeof t[exports.UnreadItemKey.SUPER_UNREAD_MENTION_COUNT]&&(this.superGroupChannelUnreadMentionCount=t[exports.UnreadItemKey.SUPER_UNREAD_MENTION_COUNT]),"number"==typeof t[exports.UnreadItemKey.SUPER_UNREAD_MESSAGE_COUNT]&&(this.superGroupChannelUnreadMessageCount=t[exports.UnreadItemKey.SUPER_UNREAD_MESSAGE_COUNT]),"number"==typeof t[exports.UnreadItemKey.SUPER_INVITATION_COUNT]&&(this.superGroupChannelInvitationCount=t[exports.UnreadItemKey.SUPER_INVITATION_COUNT]),"number"==typeof t[exports.UnreadItemKey.NONSUPER_UNREAD_MENTION_COUNT]&&(this.nonSuperGroupChannelUnreadMentionCount=t[exports.UnreadItemKey.NONSUPER_UNREAD_MENTION_COUNT]),"number"==typeof t[exports.UnreadItemKey.NONSUPER_UNREAD_MESSAGE_COUNT]&&(this.nonSuperGroupChannelUnreadMessageCount=t[exports.UnreadItemKey.NONSUPER_UNREAD_MESSAGE_COUNT]),"number"==typeof t[exports.UnreadItemKey.NONSUPER_INVITATION_COUNT]&&(this.nonSuperGroupChannelInvitationCount=t[exports.UnreadItemKey.NONSUPER_INVITATION_COUNT])}}class W extends d.APIRequestCommand{constructor({userId:e}){super(),this.method=d.APIRequestMethod.GET,this.path=`${d.API_PATH_USERS}/${encodeURIComponent(e)}/unread_channel_count`}}class $ extends d.APIResponseCommand{constructor(e,t){super(e,t),this.unreadCount=t.unread_count}}class K extends d.APIRequestCommand{constructor({userId:e,filter:t,includeFeedChannel:s=!1}){super();const{channelCustomTypesFilter:n,superChannelFilter:i}=t;this.method=d.APIRequestMethod.GET,this.path=`${d.API_PATH_USERS}/${encodeURIComponent(e)}/unread_message_count`,this.params={super_mode:null!=i?i:exports.SuperChannelFilter.ALL,custom_types:n,include_feed_channel:s}}}class Q extends d.APIResponseCommand{constructor(e,t){super(e,t),this.unreadCount=t.unread_count,this.unreadFeedCount=t.unread_feed_count}}class Y extends d.APIRequestCommand{constructor({channelUrl:e,scheduledStatus:t,messageTypeFilter:s}){super(),this.method=d.APIRequestMethod.GET,this.path=`${d.API_PATH_SCHEDULED_MESSAGES}/count`,this.params={channel_url:e,status:X(t)},s&&(this.params.message_type=s)}}class J extends d.APIResponseCommand{constructor(e,t){super(e,t),this.count=t.count}}const X=e=>{if(!e)return[];const t=[];return e.forEach((e=>{switch(e){case h.ScheduledStatus.PENDING:t.push(h.InternalScheduledStatus.PENDING);break;case h.ScheduledStatus.SENT:t.push(h.InternalScheduledStatus.IN_QUEUE),t.push(h.InternalScheduledStatus.SENT);break;case h.ScheduledStatus.CANCELED:t.push(h.InternalScheduledStatus.CANCELED);break;case h.ScheduledStatus.FAILED:t.push(h.InternalScheduledStatus.FAILED)}})),t};class Z extends d.APIRequestCommand{constructor(e){const{userId:t,channelUrl:s,coverUrl:n,coverImage:i,isDistinct:a,isSuper:r,isBroadcast:o,isPublic:l,isExclusive:h,isDiscoverable:c,isStrict:u,isEphemeral:_,accessCode:p,name:m,data:g,customType:C,messageSurvivalSeconds:E,invitedUserIds:v,operatorUserIds:f}=e;super(),this.method=d.APIRequestMethod.POST,this.path=d.API_PATH_GROUP_CHANNELS,this.params=d.deundefined({user_ids:[t,...null!=v?v:[]].filter(((e,t,s)=>t===s.indexOf(e))),channel_url:s,cover_url:n,cover_file:i,is_distinct:a,is_super:r,is_broadcast:o,is_exclusive:h,is_public:l,is_discoverable:c,strict:u,is_ephemeral:_,access_code:p,name:m,data:g,custom_type:C,operator_ids:f,message_survival_seconds:E})}}class ee extends d.APIResponseCommand{constructor(e,t){var s;super(e,t),this.channel=new ft(e,t),this.isCreated=null===(s=t.is_created)||void 0===s||s}}class te extends d.APIRequestCommand{constructor({userId:e,channelUrls:t}){super(),this.method=d.APIRequestMethod.PUT,this.path=`${d.API_PATH_USERS}/${encodeURIComponent(e)}/mark_as_read_all`,this.params={channel_urls:t}}}class se extends d.APIRequestCommand{constructor(e){const{channelUrl:t,userId:s,accessCode:n}=e;super(),this.method=d.APIRequestMethod.PUT,this.path=`${d.API_PATH_GROUP_CHANNELS}/${encodeURIComponent(t)}/join`,this.params={user_id:s,access_code:n}}}class ne extends d.APIResponseCommand{constructor(e,t){super(e,t),this.channel=new ft(e,t)}}class ie extends u.ChannelEventCommand{constructor(e,t,s){super(e,t,s);const{member_count:n=0,joined_member_count:i=0,users:a=null}=s.data;this.memberCount=n,this.joinedMemberCount=i,this.members=Array.isArray(a)?a.map((t=>new p(e,t))):[new p(e,s.data)]}}class ae extends d.APIRequestCommand{constructor(e){const{channelUrl:t,userId:s,shouldRemoveOperatorStatus:n}=e;super(),this.method=d.APIRequestMethod.PUT,this.path=`${d.API_PATH_GROUP_CHANNELS}/${encodeURIComponent(t)}/leave`,this.params={user_id:s,should_remove_operator_status:n}}}class re extends u.ChannelEventCommand{constructor(e,t,s){super(e,t,s);const{member_count:n=0,joined_member_count:i=0}=s.data;this.memberCount=n,this.joinedMemberCount=i,this.member=new p(this._iid,s.data)}}class oe extends d.APIRequestCommand{constructor(e){const{channelUrl:t,userIds:s}=e;super(),this.method=d.APIRequestMethod.POST,this.path=`${d.API_PATH_GROUP_CHANNELS}/${encodeURIComponent(t)}/invite`,this.params={user_ids:s}}}class le extends d.APIResponseCommand{constructor(e,t){super(e,t),this.channel=new ft(e,t)}}class de extends u.ChannelEventCommand{constructor(e,t,s){super(e,t,s),this.inviter=null;const{member_count:n=0,joined_member_count:i=0,inviter:a,invitees:r=[]}=s.data;this.memberCount=n,this.joinedMemberCount=i,a&&Object.keys(a).length>0&&(this.inviter=new d.User(e,a)),this.invitees=r.map((t=>new p(e,t)))}}class he extends d.APIRequestCommand{constructor(e){const{channelUrl:t,userId:s}=e;super(),this.method=d.APIRequestMethod.PUT,this.path=`${d.API_PATH_GROUP_CHANNELS}/${encodeURIComponent(t)}/decline`,this.params={user_id:s}}}class ce extends u.ChannelEventCommand{constructor(e,t,s){super(e,t,s);const{member_count:n,joined_member_count:i,inviter:a,invitee:r}=s.data;this.memberCount=null!=n?n:0,this.joinedMemberCount=null!=i?i:0,this.inviter=new d.User(e,a),this.invitee=new p(e,r)}}const ue={hidePreviousMessages:!1,allowAutoUnhide:!0};class _e extends d.APIRequestCommand{constructor(e){const{channelUrl:t,userId:s,hidePreviousMessages:n,allowAutoUnhide:i}=e;super(),this.method=d.APIRequestMethod.PUT,this.path=`${d.API_PATH_GROUP_CHANNELS}/${encodeURIComponent(t)}/hide`,this.params={user_id:s,hide_previous_messages:null!=n?n:ue.hidePreviousMessages,allow_auto_unhide:null!=i?i:ue.allowAutoUnhide}}}class pe extends d.APIResponseCommand{constructor(e,t){super(e,t);const{ts_message_offset:s}=t;this.messageOffsetTimestamp=s}}class me extends d.WebSocketEventCommand{constructor(e,t,s){var n,i,a;super(e,"SYEV",s),this.allowAutoUnhide=null,this.hidePreviousMessages=null,this.messageOffsetTimestamp=null,s.data&&(this.allowAutoUnhide=null!==(n=s.data.allow_auto_unhide)&&void 0!==n?n:null,this.hidePreviousMessages=null!==(i=s.data.hide_previous_messages)&&void 0!==i?i:null),this.messageOffsetTimestamp=null!==(a=s.ts_message_offset)&&void 0!==a?a:null}}class ge extends d.WebSocketRequestCommand{constructor({channelUrl:e,time:t}){super({code:"TPST",ackRequired:!1,payload:{channel_url:e,time:t}})}}class Ce extends d.WebSocketEventCommand{constructor(e,t,s){super(e,"SYEV",s),this.user=new d.User(e,s.data)}}class Ee extends d.WebSocketRequestCommand{constructor({channelUrl:e,time:t}){super({code:"TPEN",ackRequired:!1,payload:{channel_url:e,time:t}})}}class ve extends d.WebSocketEventCommand{constructor(e,t,s){super(e,"SYEV",s),this.user=new d.User(e,s.data)}}class fe extends d.WebSocketRequestCommand{constructor({channelUrl:e,messageId:t}){super({code:"MACK",ackRequired:!1,payload:{channel_url:e,msg_id:t}})}}class Me extends d.BaseListQuery{constructor(e,t){var s,n,i,a,r,o,l,d,h,u,_,p,m,g,C,E,v,f,M,S,y,A,b;super(e,t),this.includeEmpty=!1,this.includeFrozen=!0,this.includeMetaData=!0,this.includeChatNotification=!1,this.channelUrlsFilter=null,this.customTypesFilter=null,this.customTypeStartsWithFilter=null,this.nicknameContainsFilter=null,this.nicknameStartsWithFilter=null,this.nicknameExactMatchFilter=null,this.channelNameContainsFilter="",this.myMemberStateFilter=exports.MyMemberStateFilter.ALL,this.unreadChannelFilter=exports.UnreadChannelFilter.ALL,this.superChannelFilter=exports.SuperChannelFilter.ALL,this.publicChannelFilter=exports.PublicChannelFilter.ALL,this.hiddenChannelFilter=exports.HiddenChannelFilter.UNHIDDEN,this.searchFilter={fields:[],query:null},this.userIdsFilter={userIds:[],includeMode:!0,queryType:exports.QueryType.AND},this.metadataKey=null,this.metadataValues=null,this.metadataOrderKeyFilter=null,this.metadataValueStartsWith=null,this.order=c.GroupChannelListOrder.LATEST_LAST_MESSAGE,this.includeEmpty=null!==(s=t.includeEmpty)&&void 0!==s&&s,this.includeFrozen=null===(n=t.includeFrozen)||void 0===n||n,this.includeMetaData=null===(i=t.includeMetaData)||void 0===i||i,this.includeChatNotification=null!==(a=t.includeChatNotification)&&void 0!==a&&a,this.channelUrlsFilter=null!==(r=t.channelUrlsFilter)&&void 0!==r?r:null,this.customTypesFilter=null!==(o=t.customTypesFilter)&&void 0!==o?o:null,this.customTypeStartsWithFilter=null!==(l=t.customTypeStartsWithFilter)&&void 0!==l?l:"",this.nicknameContainsFilter=null!==(d=t.nicknameContainsFilter)&&void 0!==d?d:null,this.nicknameStartsWithFilter=null!==(h=t.nicknameStartsWithFilter)&&void 0!==h?h:null,this.nicknameExactMatchFilter=null!==(u=t.nicknameExactMatchFilter)&&void 0!==u?u:null,this.channelNameContainsFilter=null!==(_=t.channelNameContainsFilter)&&void 0!==_?_:"",this.myMemberStateFilter=null!==(p=t.myMemberStateFilter)&&void 0!==p?p:exports.MyMemberStateFilter.ALL,this.unreadChannelFilter=null!==(m=t.unreadChannelFilter)&&void 0!==m?m:exports.UnreadChannelFilter.ALL,this.superChannelFilter=null!==(g=t.superChannelFilter)&&void 0!==g?g:exports.SuperChannelFilter.ALL,this.publicChannelFilter=null!==(C=t.publicChannelFilter)&&void 0!==C?C:exports.PublicChannelFilter.ALL,this.hiddenChannelFilter=null!==(E=t.hiddenChannelFilter)&&void 0!==E?E:exports.HiddenChannelFilter.UNHIDDEN,this.searchFilter=null!==(v=t.searchFilter)&&void 0!==v?v:{fields:[],query:null},this.userIdsFilter=null!==(f=t.userIdsFilter)&&void 0!==f?f:{userIds:[],includeMode:!0,queryType:exports.QueryType.AND},this.metadataKey=null!==(M=t.metadataKey)&&void 0!==M?M:null,this.metadataValues=null!==(S=t.metadataValues)&&void 0!==S?S:null,this.metadataOrderKeyFilter=null!==(y=t.metadataOrderKeyFilter)&&void 0!==y?y:null,this.metadataValueStartsWith=null!==(A=t.metadataValueStartsWith)&&void 0!==A?A:null,this.order=null!==(b=t.order)&&void 0!==b?b:c.GroupChannelListOrder.LATEST_LAST_MESSAGE,t.createdAfter&&(this.createdAfter=t.createdAfter),t.createdBefore&&(this.createdBefore=t.createdBefore)}_validate(){return super._validate()&&d.isTypeOf("boolean",this.includeEmpty)&&d.isTypeOf("boolean",this.includeFrozen)&&d.isTypeOf("boolean",this.includeMetaData)&&d.isTypeOf("string",this.channelNameContainsFilter)&&d.isArrayOf("string",this.channelUrlsFilter,!0)&&d.isArrayOf("string",this.customTypesFilter,!0)&&d.isTypeOf("string",this.customTypeStartsWithFilter)&&d.isTypeOf("string",this.nicknameContainsFilter,!0)&&d.isTypeOf("string",this.nicknameStartsWithFilter,!0)&&d.isTypeOf("string",this.nicknameExactMatchFilter,!0)&&d.isEnumOf(exports.MyMemberStateFilter,this.myMemberStateFilter)&&d.isEnumOf(exports.SuperChannelFilter,this.superChannelFilter)&&d.isEnumOf(exports.PublicChannelFilter,this.publicChannelFilter)&&d.isEnumOf(exports.UnreadChannelFilter,this.unreadChannelFilter)&&d.isEnumOf(exports.HiddenChannelFilter,this.hiddenChannelFilter)&&d.isArrayOf(exports.GroupChannelSearchField,this.searchFilter.fields)&&d.isTypeOf("string",this.searchFilter.query,!0)&&d.isArrayOf("string",this.userIdsFilter.userIds)&&d.isTypeOf("boolean",this.userIdsFilter.includeMode)&&d.isEnumOf(exports.QueryType,this.userIdsFilter.queryType)&&d.isEnumOf(c.GroupChannelListOrder,this.order)&&d.isTypeOf("string",this.metadataOrderKeyFilter,!0)&&d.isTypeOf("string",this.metadataKey,!0)&&d.isArrayOf("string",this.metadataValues,!0)&&d.isTypeOf("string",this.metadataValueStartsWith,!0)&&d.isMilliSecondOf(this.createdAfter,!0)&&d.isMilliSecondOf(this.createdBefore,!0)}serialize(){return d.serialize(this)}next(){return d.__awaiter(this,void 0,void 0,(function*(){if(this._validate()){if(this._isLoading)throw d.SendbirdError.queryInProgress;if(this._hasNext){this._isLoading=!0;const e=Ne.of(this._iid),{channels:t,token:s}=yield e.getMyGroupChannels(this._token,d.undefineNullProps(Object.assign({},this)),this.limit,d.CollectionEventSource.REQUEST_CHANNEL,!0);return this._token=s,this._hasNext=!!s,this._isLoading=!1,t}return[]}throw d.SendbirdError.invalidParameters}))}}class Se extends d.APIRequestCommand{constructor({channelUrl:e,userId:t}){super(),this.method=d.APIRequestMethod.PUT,this.path=`${d.API_PATH_GROUP_CHANNELS}/${encodeURIComponent(e)}/messages/mark_as_delivered`,this.params=d.deundefined({user_id:t})}}class ye extends d.WebSocketEventCommand{constructor(e,t,s){super(e,"DLVR",s),this.channelUrl=s.channel_url,this.deliveredStateUpdate=s.updated}}class Ae{constructor({top:e=Number.MAX_SAFE_INTEGER,bottom:t=0}){this.top=e,this.bottom=t}includes(...e){return e.every((e=>this.top<=e&&e<=this.bottom))}overlap(e){return this.includes(e.top)||this.includes(e.bottom)}intersect(...e){return e.some((e=>this.top<=e&&e<=this.bottom))}extends(...e){this.top=Math.min(this.top,...e),this.bottom=Math.max(this.bottom,...e)}}const be={};class Ne extends u.BaseChannelManager{get _messageCache(){return h.MessageCache.of(this._iid)}get _unsentMessageCache(){return h.UnsentMessageCache.of(this._iid)}constructor(e,t){var s;super(e,Object.assign(Object.assign({},t),{channelType:d.ChannelType.GROUP})),this._leftChannels=new Map,this._markAsReadAllLastSentAt=0,this._forceDisableMack=null!==(s=t.forceDisableMack)&&void 0!==s&&s,this._groupChannelHandlers=new Map,this._groupChannelCache=new C(this._iid,{sdkState:t.sdkState,cacheContext:t.cacheContext}),this._userInfoCache=new h.UserInfoCache(this._iid,{sdkState:t.sdkState,cacheContext:t.cacheContext}),this._groupChannelBroadcast=new w({dispatcher:t.dispatcher,groupChannelCache:this._groupChannelCache,userInfoCache:this._userInfoCache,messageCache:h.MessageCache.of(this._iid),unsentMessageCache:h.UnsentMessageCache.of(this._iid)}),setInterval((()=>{for(const e of this._groupChannelCache.channels)e.invalidateTypingStatus()&&(this._dispatcher.dispatch(new P({channels:[e],context:{source:d.CollectionEventSource.EVENT_CHANNEL_TYPING_STATUS_UPDATE}})),this._groupChannelHandlers.forEach((t=>{t.onTypingStatusUpdated&&t.onTypingStatusUpdated(e)})))}),1e3),this._dispatcher.on((e=>{if(e instanceof d.WebSocketEventCommand)this._handleEvent(e).catch((e=>{if(d.isThrowingOutside(e)&&"foreground"===this._sdkState.appState)throw e}));else if(e instanceof c.AutoResendRequestCommand)(()=>{d.__awaiter(this,void 0,void 0,(function*(){const{message:t}=e;let s=yield this.getChannelFromCache(t.channelUrl);s&&!s.isFrozen||(s=yield this.getChannelWithoutCache(t.channelUrl,!0)),s.isFrozen||(t instanceof h.UserMessage?s._autoResendUserMessage(t):t instanceof h.FileMessage&&s._autoResendFileMessage(t))}))})();else if(e instanceof c.ReduceDBSizeEventCommand)this.reduceDBSize();else if(e instanceof c.ApplyAppConfigsInfoEventCommand){const{appConfigsInfo:t,configTs:s}=e,n=t.message_purge_offset;n&&this._messageDataRetention(n),this._dispatcher.dispatch(new c.SaveAppConfigsInfoEventCommand({configTs:s}))}else e instanceof h.MessageThreadInfoUpdatedEventCommand&&(()=>{d.__awaiter(this,void 0,void 0,(function*(){const{channelUrl:t,channelType:s,parentMessage:n}=e,i=new h.ThreadInfoUpdateEvent(this._iid,{channel_type:d.ChannelType.GROUP,channel_url:t,parent_message_id:n.messageId,thread_info:h.ThreadInfo.payloadify(n.threadInfo)});if(s===d.ChannelType.GROUP){const e=yield this.getChannel(t,!0);d.runAsCallback((()=>d.__awaiter(this,void 0,void 0,(function*(){for(const t of this._groupChannelHandlers.values())t.onThreadInfoUpdated&&t.onThreadInfoUpdated(e,i)}))))}}))})()})),be[e]||(be[e]=this)}static of(e){return be[e]||(be[e]=new Ne(e,d.Vault.of(e))),be[e]}static clear(e){be[e]&&delete be[e]}get handlers(){return[...this._groupChannelHandlers.values()]}buildGroupChannelFromSerializedData(e){const t=d.deserialize(e);return new ft(this._iid,ft.payloadify(t))}buildGroupChannelListQueryFromSerializedData(e){const t=d.deserialize(e);return new Me(this._iid,t)}buildMemberFromSerializedData(e){const t=d.deserialize(e);return new p(this._iid,p.payloadify(t))}getChannelFromCache(e){var t;return d.__awaiter(this,void 0,void 0,(function*(){return null!==(t=yield this._groupChannelCache.get(e))&&void 0!==t?t:null}))}getChannelsFromCache(e,t,s,n,i){return d.__awaiter(this,void 0,void 0,(function*(){return yield this._groupChannelCache.fetch({token:e,filter:t,order:s,limit:n,borderlineChannelUrl:i})}))}upsertChannelsToCache(e){return d.__awaiter(this,void 0,void 0,(function*(){return yield this._groupChannelCache.upsert(e)}))}removeChannelsFromCache(e){return d.__awaiter(this,void 0,void 0,(function*(){yield this._groupChannelCache.remove(e)}))}clearChannelsFromCache(){return d.__awaiter(this,void 0,void 0,(function*(){yield this._groupChannelCache.clear()}))}reduceDBSize(){return d.__awaiter(this,void 0,void 0,(function*(){const e=h.MessageCache.of(this._iid),{cacheContext:t}=d.Vault.of(this._iid),{localCacheConfig:s,nestdb:n}=t;if(!t.localCacheEnabled||!n||n.state!=h.NestDBState.OPENED)return;const i=1024*s.maxSize*1024;let a=yield n.estimateUsage();if(a<i)return;const r=[],o=this._groupChannelCache.channels,l={};for(let e=0;e<o.length;e++){const t=yield this.getMessagesFromCache(o[e].url,0,"prev",new h.MessageFilter);l[o[e].url]=JSON.stringify(t).length;const s=new d.CachedChannelInfo({channel:o[e],cachedMessageCount:t.length});r.push(s)}const c=r.sort(s.clearOrderComparator);for(let t=0;t<c.length;t++){yield e.removeMessagesOfChannel(c[t].channel.url);const s=yield e._getGroupChannelPreferenceSize(c[t].channel.url);if(a-=l[c[t].channel.url]+s,a<i)break}const u=h.UserInfoCache.of(this._iid);yield u.clear()}))}_messageDataRetention(e){var t;return d.__awaiter(this,void 0,void 0,(function*(){const s=[],n=h.MessageCache.of(this._iid);for(const i of this._groupChannelCache.channels){const a=i.customType,r=null!==(t=e[a])&&void 0!==t?t:e.global;yield n.removeUnderOffset(i.url,r,!0),i.lastMessage&&i.lastMessage.createdAt<=r&&(i.lastMessage=null,s.push(i),d.runAsCallback((()=>d.__awaiter(this,void 0,void 0,(function*(){for(const e of this._groupChannelHandlers.values())e.onChannelChanged&&e.onChannelChanged(i)}))))),this._dispatcher.dispatch(new d.MessageRetentionEventCommand({channelUrl:i.url,messageDeletionTimestamp:r,source:d.CollectionEventSource.EVENT_MESSAGE_OFFSET_UPDATED}))}s.length>0&&this._dispatcher.dispatch(new P({channels:s,context:{source:d.CollectionEventSource.EVENT_CHANNEL_UPDATED}}))}))}_isSuperGroupMackDisabled(e){const{appInfo:t}=d.Vault.of(this._iid);return!(!e.isSuper||e.isBroadcast||!(null==t?void 0:t.disableSuperGroupMack))}_getCachedUserInfo(e){return this._userInfoCache.getUserInfoFromCache(e)}_upsertCachedUserInfo(e,t){const{useMemberInfoInMessage:s}=d.Vault.of(this._iid);s&&this._userInfoCache.upsert(e,t)}_handleEvent(e){var t,s;return d.__awaiter(this,void 0,void 0,(function*(){try{switch(e.code){case"MESG":case"FILE":case"ADMM":case"BRDM":{let s=null;if("MESG"===e.code?s=e.as(h.UserMessageEventCommand):"FILE"===e.code?s=e.as(h.FileMessageEventCommand):"ADMM"!==e.code&&"BRDM"!=e.code||(s=e.as(u.AdminMessageEventCommand)),s){const{message:e,isMentioned:n,forceUpdateLastMessage:i}=s;if(e.channelType===d.ChannelType.GROUP){const s=this._groupChannelCache.isCachedInMemory(e.channelUrl),a=e instanceof h.SendableMessage&&e.sender.userId===this._sdkState.userId,r=yield this.getChannel(e.channelUrl,!0),{useMemberInfoInMessage:o,requestDeduplicator:l}=d.Vault.of(this._iid);if(this._forceDisableMack||this._isSuperGroupMackDisabled(r)||e instanceof h.AdminMessage||a||d.runOrNothing((()=>d.__awaiter(this,void 0,void 0,(function*(){const t=new fe(e);yield this._requestQueue.send(t)})))),e instanceof h.SendableMessage){const s=e.sender;r.isSuper&&this._upsertCachedUserInfo(s,e.createdAt);for(const t of r.members)if(t.userId===e.sender.userId){o&&(t.nickname=e.sender.nickname,t.plainProfileUrl=e.sender.plainProfileUrl,t.metaData=e.sender.metaData,t.isBlockedByMe=e.sender.isBlockedByMe);break}if(o&&n&&(null===(t=e.mentionedUsers)||void 0===t||t.forEach((e=>{for(const t of r.members)if(e.userId===t.userId){t.nickname=e.nickname,t.plainProfileUrl=e.plainProfileUrl,t.metaData=e.metaData;break}}))),a){const{currentUser:t}=this._sessionManager;t&&(t.nickname=e.sender.nickname,t.plainProfileUrl=e.sender.plainProfileUrl,t.metaData=e.sender.metaData)}}e.silent&&!a||(r.isEphemeral||s)&&(r._updateLastMessage(e),a||r._shouldUpdateUnreadCountWith(e)&&r._updateUnreadCount(r.unreadMessageCount+1,r.unreadMentionCount+(n?1:0))),i&&r._updateLastMessage(e),l.updatePendingResponse(r,Date.now()),this._dispatcher.dispatch(new P({channels:[r],context:{source:d.CollectionEventSource.EVENT_MESSAGE_RECEIVED}})),e.silent&&!a||d.runAsCallback((()=>d.__awaiter(this,void 0,void 0,(function*(){for(const e of this._groupChannelHandlers.values())e.onChannelChanged&&e.onChannelChanged(r)})))),this._dispatcher.dispatch(new d.MessageUpdateEventCommand({messages:[e],source:d.CollectionEventSource.EVENT_MESSAGE_RECEIVED})),d.runAsCallback((()=>d.__awaiter(this,void 0,void 0,(function*(){for(const t of this._groupChannelHandlers.values())t.onMessageReceived&&t.onMessageReceived(r,e),n&&t.onMentionReceived&&t.onMentionReceived(r,e)}))))}}break}case"MEDI":case"FEDI":case"AEDI":{let t=null;if("MEDI"===e.code?t=e.as(h.UpdateUserMessageEventCommand):"FEDI"===e.code?t=e.as(h.UpdateFileMessageEventCommand):"AEDI"===e.code&&(t=e.as(u.UpdateAdminMessageEventCommand)),t){const{message:e,mentionCountChange:n}=t,{useMemberInfoInMessage:i,requestDeduplicator:a}=d.Vault.of(this._iid);if(e.threadInfo&&(e.threadInfo.unreadReplyCount=void 0),e.channelType===d.ChannelType.GROUP){const t=this._groupChannelCache.isCachedInMemory(e.channelUrl),r=yield this.getChannel(e.channelUrl,!0);let o=!1;if(e instanceof h.SendableMessage){o=e.sender.userId===this._sdkState.userId,r.isSuper&&this._upsertCachedUserInfo(e.sender,e.updatedAt);for(const t of r.members)if(t.userId===e.sender.userId){i&&(t.nickname=e.sender.nickname,t.plainProfileUrl=e.sender.plainProfileUrl,t.metaData=e.sender.metaData,t.isBlockedByMe=e.sender.isBlockedByMe);break}}let l=!1;if(o){const t=e.sender,{currentUser:s}=this._sessionManager;s&&(s.nickname=t.nickname,s.plainProfileUrl=t.plainProfileUrl,s.metaData=t.metaData)}else r.isReadMessage(e)||0!==n&&!e.silent&&t&&(r._updateUnreadCount(r.unreadMessageCount,r.unreadMentionCount+n),l=!0);r._updateLastMessage(e)?l=!0:(null===(s=r.lastMessage)||void 0===s?void 0:s.isIdentical(e))&&(t?r._updateLastMessage(e)&&(l=!0):l=!0);let c=!1;r.lastPinnedMessage&&r.lastPinnedMessage.messageId===e.messageId&&(r.lastPinnedMessage=e,l=!0,c=!0),l&&(a.updatePendingResponse(r,Date.now()),this._dispatcher.dispatch(new P({channels:[r],context:{source:c?d.CollectionEventSource.EVENT_PINNED_MESSAGE_UPDATED:d.CollectionEventSource.EVENT_MESSAGE_UPDATED}})),e.silent&&!o||d.runAsCallback((()=>d.__awaiter(this,void 0,void 0,(function*(){for(const e of this._groupChannelHandlers.values())e.onChannelChanged&&e.onChannelChanged(r)})))),c&&d.runAsCallback((()=>d.__awaiter(this,void 0,void 0,(function*(){for(const e of this._groupChannelHandlers.values())e.onPinnedMessageUpdated&&e.onPinnedMessageUpdated(r)}))))),this._dispatcher.dispatch(new d.MessageUpdateEventCommand({messages:[e],source:d.CollectionEventSource.EVENT_MESSAGE_UPDATED})),d.runAsCallback((()=>d.__awaiter(this,void 0,void 0,(function*(){for(const t of this._groupChannelHandlers.values())t.onMessageUpdated&&t.onMessageUpdated(r,e),n>0&&t.onMentionReceived&&t.onMentionReceived(r,e)}))))}}break}case"DELM":{const{channelUrl:t,channelType:s,messageId:n,silent:i,messageCreatedAt:a,senderId:r}=e.as(d.DeleteMessageEventCommand);if(s===d.ChannelType.GROUP){const e=yield this.getChannel(t,!0),s=r===this._sdkState.userId;if(!i&&!s&&a>0&&e.myLastRead<a&&e.unreadMessageCount>0){e._updateUnreadCount(e.unreadMessageCount-1,0);const{requestDeduplicator:t}=d.Vault.of(this._iid);t.updatePendingResponse(e,Date.now())}this._dispatcher.dispatch(new d.MessageRemoveEventCommand({messageIds:[n],source:d.CollectionEventSource.EVENT_MESSAGE_DELETED})),d.runAsCallback((()=>d.__awaiter(this,void 0,void 0,(function*(){for(const t of this._groupChannelHandlers.values())t.onMessageDeleted&&t.onMessageDeleted(e,n)}))))}break}case"READ":{const{readStatus:t}=e.as(h.ReadEventCommand);if(t.channelType===d.ChannelType.GROUP){const e=this._groupChannelCache.isCachedInMemory(t.channelUrl),s=yield this.getChannel(t.channelUrl,!0);e&&s._updateUnreadMemberState(t.reader.userId,t.readAt),t.reader.userId===this._sdkState.userId?e?(s.unreadMessageCount>0||s.unreadMentionCount>0)&&(s._updateUnreadCount(0,0),this._dispatcher.dispatch(new P({channels:[s],context:{source:d.CollectionEventSource.EVENT_CHANNEL_READ}})),d.runAsCallback((()=>d.__awaiter(this,void 0,void 0,(function*(){for(const e of this._groupChannelHandlers.values())e.onChannelChanged&&e.onChannelChanged(s)}))))):0!==s.unreadMessageCount&&0!==s.unreadMentionCount||(this._dispatcher.dispatch(new P({channels:[s],context:{source:d.CollectionEventSource.EVENT_CHANNEL_READ}})),d.runAsCallback((()=>d.__awaiter(this,void 0,void 0,(function*(){for(const e of this._groupChannelHandlers.values())e.onChannelChanged&&e.onChannelChanged(s)}))))):(this._dispatcher.dispatch(new P({channels:[s],context:{source:d.CollectionEventSource.EVENT_CHANNEL_READ}})),d.runAsCallback((()=>d.__awaiter(this,void 0,void 0,(function*(){for(const e of this._groupChannelHandlers.values())e.onUnreadMemberStatusUpdated&&e.onUnreadMemberStatusUpdated(s)})))))}break}case"DLVR":{const{channelUrl:t,deliveredStateUpdate:s={}}=e.as(ye),n=this._groupChannelCache.isCachedInMemory(t),i=yield this.getChannel(t,!0);n&&Object.keys(s).forEach((e=>{i._updateUndeliveredMemberState(e,s[e])})),Object.keys(s).some((e=>e!==this._sdkState.userId))&&(this._dispatcher.dispatch(new P({channels:[i],context:{source:d.CollectionEventSource.EVENT_CHANNEL_DELIVERED}})),d.runAsCallback((()=>d.__awaiter(this,void 0,void 0,(function*(){for(const e of this._groupChannelHandlers.values())e.onUndeliveredMemberStatusUpdated&&e.onUndeliveredMemberStatusUpdated(i)})))));break}case"MRCT":{const{channelUrl:t,channelType