@sendbird/chat
Version:
Sendbird SDK for JavaScript
2 lines (1 loc) • 29.3 kB
JavaScript
Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./lib/__bundle-846135d7.cjs"),t=require("./lib/__bundle-7c5b4d72.cjs"),n=require("./lib/__bundle-a756336f.cjs"),i=require("./lib/__bundle-f1d13cda.cjs"),s=require("./lib/__bundle-58c4c7b0.cjs");require("./lib/__bundle-a59763e3.cjs"),require("./lib/__bundle-dae7bdf2.cjs"),require("./lib/__bundle-6c8aa193.cjs");const a={};class r{constructor({_iid:n,limit:s=100}){this.ref=0,this._iid=n,this._limit=s;const{sdkState:a,dispatcher:r,logger:o,cacheContext:l,statManager:d}=e.Vault.of(this._iid);this._metadataKey=`sendbird:${a.userId} /sync.meta`;const h=(e=>`sendbird:${e} /sync`)(a.userId);this._sync=new i.Sync(h,(()=>e.__awaiter(this,void 0,void 0,(function*(){var n,s,r,h,u,c,p,_;const g={hasNext:!0,nextToken:""};if(yield this.loadMetadata(),o.debug("channel background sync from",null===(n=this._metadata)||void 0===n?void 0:n.token),null===(s=this._metadata)||void 0===s?void 0:s.completed)g.hasNext=!1,g.nextToken="";else{const n={includeEmpty:!0,includeMetaData:!0,hiddenChannelFilter:t.HiddenChannelFilter.ALL,order:i.GroupChannelListOrder.CHRONOLOGICAL};try{if(n.order===i.GroupChannelListOrder.LATEST_LAST_MESSAGE)try{const t=yield l.preference.get(e.createChangelogIncludeChatNotificationsCacheKey(a.appId));n.includeChatNotification=Boolean(t)}catch(e){n.includeChatNotification=!1}const s=t.GroupChannelManager.of(this._iid),{channels:d,token:u}=yield s.getMyGroupChannels(null!==(h=null===(r=this._metadata)||void 0===r?void 0:r.token)&&void 0!==h?h:"",n,this._limit,e.CollectionEventSource.SYNC_CHANNEL_BACKGROUND);g.hasNext=d.length>=this._limit&&!!u,g.nextToken=u,this._metadata&&(this._metadata.token=u,this._metadata.range.extends(...d.map((e=>e.createdAt))),this._metadata.completed=!g.hasNext),o.debug("channel background sync progress",g),yield this.saveMetadata()}catch(t){throw o.debug("channel background sync error",t),t instanceof e.SendbirdError&&t.isInvalidTokenError&&(yield this.clearMetaData()),t}finally{d.put(new e.StatLog({type:e.StatType.FEATURE_LOCALCACHE_EVENT,ts:Date.now(),data:{channel_url:"",measured_on:"channel_back_sync",event:"cache_fetch",max_db_size:null!==(c=null===(u=l.localCacheConfig)||void 0===u?void 0:u.maxSize)&&void 0!==c?c:0,use_local_cache:l.localCacheEnabled,starting_point:0,message_init_policy:null!==(_=null===(p=n.order)||void 0===p?void 0:p.toString())&&void 0!==_?_:"",collection_id:a.userId}}))}}return g})))),this._connectionEventContext=r.on((t=>{if(t instanceof e.ConnectionStateChangeCommand)if(t.stateType===e.ConnectionStateType.CONNECTED)this.resume();else this.pause()}))}static of(e){return a[e]||(a[e]=new r({_iid:e})),a[e].ref++,a[e]}static clear(e){a[e]&&(a[e].close(),delete a[e])}get range(){var e,n;return null!==(n=null===(e=this._metadata)||void 0===e?void 0:e.range)&&void 0!==n?n:new t.TimeRange({})}get completed(){var e;return!!(null===(e=this._metadata)||void 0===e?void 0:e.completed)}loadMetadata(){return e.__awaiter(this,void 0,void 0,(function*(){if(!this._metadata){const{cacheContext:n}=e.Vault.of(this._iid),i=yield n.preference.get(this._metadataKey);this._metadata={token:i?i.token:"",range:new t.TimeRange(i?i.range:{top:Number.MAX_SAFE_INTEGER,bottom:0}),completed:!!i&&i.completed}}return this._metadata}))}saveMetadata(){return e.__awaiter(this,void 0,void 0,(function*(){if(this._metadata){const{cacheContext:t}=e.Vault.of(this._iid);return yield t.preference.set(this._metadataKey,this._metadata),!0}return!1}))}clearMetaData(){return e.__awaiter(this,void 0,void 0,(function*(){const{cacheContext:t}=e.Vault.of(this._iid);yield t.preference.remove(this._metadataKey),this._metadata=void 0}))}resume(){var t,n;const{logger:i,sessionManager:s}=e.Vault.of(this._iid);s.session.hasSession&&(i.debug("channel background sync resume()"),this._sync.start(null!==(n=null===(t=this._metadata)||void 0===t?void 0:t.token)&&void 0!==n?n:""))}pause(){const{logger:t}=e.Vault.of(this._iid);t.debug("channel background sync stop()"),this._sync.stop()}close(){this.ref--,this.ref<=0&&(this.ref=0,this.pause(),this._connectionEventContext.close(),delete a[this._iid])}}const o={};class l{constructor({_iid:n}){this.ref=0,this._iid=n;const{logger:s,sdkState:a,dispatcher:r,cacheContext:o,statManager:l}=e.Vault.of(this._iid);this._metadataKey=`sendbird:${a.userId} /changelogs.meta`,this._subscribers=new e.EventDispatcher;const d=(e=>`sendbird:${e} /changelogs`)(a.userId);this._sync=new i.Sync(d,(()=>e.__awaiter(this,void 0,void 0,(function*(){var n,i,r;const d={hasNext:!0,nextToken:0};yield this.loadMetadata(),s.debug("channel changelog sync from",null===(n=this._metadata)||void 0===n?void 0:n.token);try{const n={includeEmpty:!0,includeMetaData:!0};try{const t=yield o.preference.get(e.createChangelogIncludeChatNotificationsCacheKey(a.appId));n.includeChatNotification=Boolean(t)}catch(e){n.includeChatNotification=!1}const h=t.GroupChannelManager.of(this._iid),{updatedChannels:u,deletedChannelUrls:c,hasMore:p,token:_}=yield h.getMyGroupChannelChangeLogs(null!==(r=null===(i=this._metadata)||void 0===i?void 0:i.token)&&void 0!==r?r:"",n,e.CollectionEventSource.SYNC_CHANNEL_CHANGELOGS);this._subscribers.dispatch("progress",{updatedChannels:u,deletedChannelUrls:c,hasMore:p,token:_}),d.hasNext=p,d.nextToken=_,this._metadata&&(this._metadata.token=_),s.debug("channel changelog sync progress",d),yield this.saveMetadata(),o.localCacheEnabled&&l.put(new e.StatLog({type:e.StatType.FEATURE_LOCALCACHE_EVENT,ts:Date.now(),data:{channel_url:"",measured_on:"channel_change_log_sync",event:u.length>0||c.length>0?"cache_miss":"cache_hit",max_db_size:u.length,use_local_cache:o.localCacheEnabled,starting_point:0,message_init_policy:c.length.toString(),collection_id:a.userId}}))}catch(t){throw s.debug("channel changelog sync error",t),t instanceof e.SendbirdError&&t.isInvalidTokenError&&(yield this.clearMetadata()),t}return d})))),this._sync.on("stop",(()=>{this._subscribers.dispatch("pause")})),this._connectionEventContext=r.on((t=>{if(t instanceof e.ConnectionStateChangeCommand)if(t.stateType===e.ConnectionStateType.CONNECTED)this.resume();else this.pause()}))}static of(e){return o[e]||(o[e]=new l({_iid:e})),o[e].ref++,o[e]}static clear(e){o[e]&&(o[e].close(),delete o[e])}get isRunning(){return this._sync.isRunning}loadMetadata(){return e.__awaiter(this,void 0,void 0,(function*(){if(!this._metadata){const{cacheContext:t,firstConnectedAt:n}=e.Vault.of(this._iid),i=yield t.preference.get(this._metadataKey);this._metadata={token:i?i.token:n}}return this._metadata}))}saveMetadata(){return e.__awaiter(this,void 0,void 0,(function*(){if(this._metadata){const{cacheContext:t}=e.Vault.of(this._iid);return yield t.preference.set(this._metadataKey,this._metadata),!0}return!1}))}clearMetadata(){return e.__awaiter(this,void 0,void 0,(function*(){const{cacheContext:t}=e.Vault.of(this._iid);yield t.preference.remove(this._metadataKey),this._metadata=void 0}))}on(e,t){return this._subscribers.on(e,t)}resume(){const{sessionManager:t}=e.Vault.of(this._iid);t.session.hasSession&&this._sync.start(0)}pause(){this._sync.stop()}close(){this.ref--,this.ref<=0&&(this.ref=0,this.pause(),this._connectionEventContext.close(),delete o[this._iid])}}const d=(e,t)=>e.findIndex((e=>e.isIdentical(t))),h=(e,t,n)=>{if(e.length>0){const i=d(e,t);let s=0,a=e.length-1,r=Math.floor((s+a)/2);for(;s<a;){const o=u(e[r],t,n);if(o>0)a=r,r=Math.floor((s+a)/2);else{if(!(o<0))return{place:r,oldPosition:i};s=r+1,r=Math.floor((s+a)/2)}}return{place:u(e[r],t,n)>=0?r:r+1,oldPosition:i}}return{place:e.length,oldPosition:-1}},u=(e,t,n)=>{switch(n){case i.GroupChannelListOrder.LATEST_LAST_MESSAGE:if(e.lastMessage&&t.lastMessage){const n=t.lastMessage.createdAt-e.lastMessage.createdAt;return 0===n?t.createdAt-e.createdAt:n}return e.lastMessage?-1:t.lastMessage?1:t.createdAt-e.createdAt;case i.GroupChannelListOrder.CHRONOLOGICAL:return t.createdAt-e.createdAt;case i.GroupChannelListOrder.CHANNEL_NAME_ALPHABETICAL:{const n=e.name.localeCompare(t.name);return 0===n?e.createdAt-t.createdAt:n}default:return 0}};class c{constructor(s,{filter:a=new t.GroupChannelFilter,order:o=i.GroupChannelListOrder.LATEST_LAST_MESSAGE,limit:d=n.DEFAULT_GROUPCHANNEL_LIMIT,includeChangesOnInitialLoad:h=!1}){this.channels=[],this._isInitialized=!1,this._iid=s,this._key=`gcc-${e.uuid()}`,this._isDisposed=!1,this._isGetRemoteChannelsSucceeded=!0,this._includeChangesOnInitialLoad=h,this.filter=a,this.order=o,this._hasMore=!0,this._token="",this._limit=d;const{sdkState:u,cacheContext:c,dispatcher:p}=e.Vault.of(this._iid);c.localCacheEnabled&&(this._backgroundSync=r.of(s),this._backgroundSync.resume()),this._changelogSync=l.of(s),this._changelogSync.resume();t.GroupChannelManager.of(this._iid).subscribeChannelEvent(this._key,{onUpdate:(e,n)=>{const{source:i}=n;if(t.shouldGiveEvent(i)){const t=e.filter((e=>this.filter.match(e,u.userId))),i=e.filter((e=>!this.filter.match(e,u.userId))).map((e=>e.url));t.length>0&&this._addChannelsToView(t,n),i.length>0&&this._removeChannelsFromView(i,n)}},onRemove:(e,t)=>{this._removeChannelsFromView(e,t)}}),p.on((t=>{t instanceof e.ConnectionStateChangeCommand&&(t.stateType===e.ConnectionStateType.CONNECTED?this._isGetRemoteChannelsSucceeded||(()=>{e.__awaiter(this,void 0,void 0,(function*(){yield this._revokeLoadMore()}))})():t.stateType===e.ConnectionStateType.LOGOUT&&this.dispose())}))}get hasMore(){return!this._isDisposed&&this._hasMore}setGroupChannelCollectionHandler(e){this._handler=e}_addChannelsToView(n,s,a=!1){const r=[],o=[],l=[];for(const t of n){const n=d(this.channels,t);n>=0&&this.channels.splice(n,1);const{place:u}=h(this.channels,t,this.order);if(n<0)u===this.channels.length?!a&&this._hasMore||(r.push(t),this.channels.push(t)):(r.push(t),this.channels.splice(u,0,t));else switch(s.source){case e.CollectionEventSource.EVENT_CHANNEL_UPDATED:case e.CollectionEventSource.EVENT_MESSAGE_RECEIVED:case e.CollectionEventSource.SYNC_CHANNEL_CHANGELOGS:case e.CollectionEventSource.EVENT_MESSAGE_SENT:this.order===i.GroupChannelListOrder.CHANNEL_NAME_ALPHABETICAL&&this._hasMore&&u===this.channels.length?l.push(t):(this.channels.splice(u,0,t),o.push(t));break;default:this.channels.splice(u,0,t),o.push(t)}}if(l.length>0)for(const e of l){const t=d(this.channels,e);-1!==t&&this.channels.splice(t,1)}t.shouldGiveEvent(s.source)&&e.runAsCallback((()=>e.__awaiter(this,void 0,void 0,(function*(){var e,t,n;r.length>0&&(null===(e=this._handler)||void 0===e?void 0:e.onChannelsAdded)&&this._handler.onChannelsAdded(s,r),o.length>0&&(null===(t=this._handler)||void 0===t?void 0:t.onChannelsUpdated)&&this._handler.onChannelsUpdated(s,o),l.length>0&&(null===(n=this._handler)||void 0===n?void 0:n.onChannelsDeleted)&&this._handler.onChannelsDeleted(s,l.map((e=>e.url)))}))))}_removeChannelsFromView(n,i){const s=[];for(const e of n){const t=this.channels.findIndex((t=>t.url===e));t>=0&&(s.push(this.channels[t].url),this.channels.splice(t,1))}return t.shouldGiveEvent(i.source)&&s.length>0&&e.runAsCallback((()=>e.__awaiter(this,void 0,void 0,(function*(){var e;(null===(e=this._handler)||void 0===e?void 0:e.onChannelsDeleted)&&this._handler.onChannelsDeleted(i,s)})))),s}_getLocalChannels(){return e.__awaiter(this,void 0,void 0,(function*(){const e=t.GroupChannelManager.of(this._iid),n=this.channels.length>0?((e,t)=>{var n,s,a,r;switch(t){case i.GroupChannelListOrder.LATEST_LAST_MESSAGE:return null!==(s=null===(n=e.lastMessage)||void 0===n?void 0:n.createdAt)&&void 0!==s?s:e.createdAt;case i.GroupChannelListOrder.CHRONOLOGICAL:return e.createdAt;case i.GroupChannelListOrder.CHANNEL_NAME_ALPHABETICAL:return e.name;default:return null!==(r=null===(a=e.lastMessage)||void 0===a?void 0:a.createdAt)&&void 0!==r?r:e.createdAt}})(this.channels[this.channels.length-1],this.order):null;return yield e.getChannelsFromCache(n,this.filter,this.order,this._limit,n?this.channels[this.channels.length-1].url:void 0)}))}_getRemoteChannels(){return e.__awaiter(this,void 0,void 0,(function*(){const n=t.GroupChannelManager.of(this._iid),{channels:i,token:s}=yield n.getMyGroupChannels(this._token,e.undefineNullProps(Object.assign(Object.assign({},this.filter),{userIdsFilter:this.filter.userIdsFilter,searchFilter:this.filter.searchFilter,order:this.order})),this._limit);return this._token=s,this._hasMore=!!s,i}))}_revokeLoadMore(){return e.__awaiter(this,void 0,void 0,(function*(){if(!this._isDisposed)try{const t=yield this._getRemoteChannels();this._isGetRemoteChannelsSucceeded=!0,this._addChannelsToView(t,{source:e.CollectionEventSource.REQUEST_CHANNEL},!0)}catch(e){this._isGetRemoteChannelsSucceeded=!1}}))}loadMore(){var t;return e.__awaiter(this,void 0,void 0,(function*(){if(this._isDisposed)throw new e.SendbirdError({code:e.SendbirdErrorCode.COLLECTION_DISPOSED,message:"Collection has been disposed."});let n=null;this._includeChangesOnInitialLoad&&0===this.channels.length&&this._changelogSync.isRunning&&(n=yield new Promise((e=>{this._changelogSyncSubscriberContext=this._changelogSync.on("progress",(t=>e(t))).on("pause",(()=>e(null)))})),null===(t=this._changelogSyncSubscriberContext)||void 0===t||t.close());const{cacheContext:i,connectionManager:s,statManager:a}=e.Vault.of(this._iid);this._isInitialized||(this._isInitialized=!0,i.localCacheEnabled&&(yield this._backgroundSync.loadMetadata()),a.put(new e.DailyRecordStatLog({type:e.StatType.FEATURE_LOCALCACHE,data:{use_local_cache:i.localCacheEnabled,collection_interface:{group_channel:!0}}})));let r=[];if(this._hasMore){if(!i.localCacheEnabled||s.isConnected&&!this._backgroundSync.completed)try{r=yield this._getRemoteChannels(),this._isGetRemoteChannelsSucceeded=!0}catch(e){this._isGetRemoteChannelsSucceeded=!1}else yield e.runOrNothing((()=>e.__awaiter(this,void 0,void 0,(function*(){r=yield this._getLocalChannels()})))),this._hasMore=r.length>=this._limit;this._addChannelsToView(r,{source:e.CollectionEventSource.REQUEST_CHANNEL},!0)}if(n){for(const e of n.updatedChannels){const t=d(r,e);if(t>=0)r[t]=e;else{const{place:t}=h(r,e,this.order);r.splice(t,0,e)}}const e=r.map((e=>e.url));for(const t of n.deletedChannelUrls){const n=e.indexOf(t);n>=0&&(r.splice(n,1),e.splice(n,1))}}return r}))}dispose(){var e,n,i;if(this._isDisposed)return;this._isDisposed=!0,this.channels.length>0&&this.channels.splice(0,this.channels.length),null===(e=this._backgroundSync)||void 0===e||e.close(),null===(n=this._changelogSync)||void 0===n||n.close(),null===(i=this._changelogSyncSubscriberContext)||void 0===i||i.close();t.GroupChannelManager.of(this._iid).unsubscribeChannelEvent(this._key)}}class p extends e.APIRequestCommand{constructor(n){const{token:i,limit:s,order:a,includeEmpty:r,membershipFilter:o,channelNameContainsFilter:l,channelUrlsFilter:d,customTypesFilter:h,customTypeStartsWithFilter:u,superChannelFilter:c,metadataOrderKeyFilter:p,metadataKey:_,metadataValues:g,metadataValueStartsWith:m,includeFrozen:C,includeMetaData:f}=n;super(),this.method=e.APIRequestMethod.GET,this.path=e.API_PATH_GROUP_CHANNELS,this.params=e.deundefined(e.undefineNullProps({token:i,limit:s,order:a,show_member:!0,show_read_receipt:!0,show_delivery_receipt:!0,show_empty:r,public_mode:t.PublicChannelFilter.PUBLIC,public_membership_mode:o,name_contains:l,channel_urls:d,custom_types:h,custom_type_startswith:u,super_mode:c,metadata_order_key:p,metadata_key:_,metadata_values:g,metadata_value_startswith:m,show_frozen:C,show_metadata:f}))}}class _ extends e.APIResponseCommand{constructor(e,n){super(e,n),this.channels=[];const{next:i,channels:s,ts:a}=n;this.token=i,s&&s.length>0&&(this.channels=s.map((n=>(n.ts=a,new t.GroupChannel(e,n))))),this.ts="number"==typeof a?a:0}}var g;exports.MembershipFilter=void 0,(g=exports.MembershipFilter||(exports.MembershipFilter={})).ALL="all",g.JOINED="joined";class m extends e.BaseListQuery{constructor(e,n){var s,a,r,o,l,d,h,u,c,p,_,g,m,C;super(e,n),this.includeEmpty=!1,this.includeFrozen=!0,this.includeMetaData=!0,this.channelUrlsFilter=null,this.customTypesFilter=null,this.customTypeStartsWithFilter=null,this.channelNameContainsFilter=null,this.membershipFilter=exports.MembershipFilter.ALL,this.superChannelFilter=t.SuperChannelFilter.ALL,this.metadataKey=null,this.metadataValues=null,this.metadataOrderKeyFilter=null,this.metadataValueStartsWith=null,this.order=i.PublicGroupChannelListOrder.CHRONOLOGICAL,this.includeEmpty=null!==(s=n.includeEmpty)&&void 0!==s&&s,this.includeFrozen=null===(a=n.includeFrozen)||void 0===a||a,this.includeMetaData=null===(r=n.includeMetaData)||void 0===r||r,this.channelUrlsFilter=null!==(o=n.channelUrlsFilter)&&void 0!==o?o:null,this.customTypesFilter=null!==(l=n.customTypesFilter)&&void 0!==l?l:null,this.customTypeStartsWithFilter=null!==(d=n.customTypeStartsWithFilter)&&void 0!==d?d:null,this.channelNameContainsFilter=null!==(h=n.channelNameContainsFilter)&&void 0!==h?h:null,this.membershipFilter=null!==(u=n.membershipFilter)&&void 0!==u?u:exports.MembershipFilter.ALL,this.superChannelFilter=null!==(c=n.superChannelFilter)&&void 0!==c?c:t.SuperChannelFilter.ALL,this.metadataKey=null!==(p=n.metadataKey)&&void 0!==p?p:null,this.metadataValues=null!==(_=n.metadataValues)&&void 0!==_?_:null,this.metadataOrderKeyFilter=null!==(g=n.metadataOrderKeyFilter)&&void 0!==g?g:null,this.metadataValueStartsWith=null!==(m=n.metadataValueStartsWith)&&void 0!==m?m:null,this.order=null!==(C=n.order)&&void 0!==C?C:i.PublicGroupChannelListOrder.CHRONOLOGICAL}_validate(){return super._validate()&&e.isTypeOf("boolean",this.includeEmpty)&&e.isTypeOf("boolean",this.includeFrozen)&&e.isTypeOf("boolean",this.includeMetaData)&&e.isTypeOf("string",this.channelNameContainsFilter,!0)&&e.isArrayOf("string",this.channelUrlsFilter,!0)&&e.isArrayOf("string",this.customTypesFilter,!0)&&e.isTypeOf("string",this.customTypeStartsWithFilter,!0)&&e.isEnumOf(exports.MembershipFilter,this.membershipFilter)&&e.isEnumOf(t.SuperChannelFilter,this.superChannelFilter)&&e.isEnumOf(i.PublicGroupChannelListOrder,this.order)&&e.isTypeOf("string",this.metadataOrderKeyFilter,!0)&&e.isTypeOf("string",this.metadataKey,!0)&&e.isArrayOf("string",this.metadataValues,!0)&&e.isTypeOf("string",this.metadataValueStartsWith,!0)}next(){return e.__awaiter(this,void 0,void 0,(function*(){if(this._validate()){if(this._isLoading)throw e.SendbirdError.queryInProgress;{const t=[];if(this._hasNext){this._isLoading=!0;const{requestQueue:t}=e.Vault.of(this._iid),n=new p(e.undefineNullProps(Object.assign(Object.assign({},this),{token:this._token}))),i=yield t.send(n),{channels:s,token:a}=i.as(_);return this._token=a,this._hasNext=!!a,this._isLoading=!1,s}return t}}throw e.SendbirdError.invalidParameters}))}}class C extends s.BaseChannelHandlerParams{constructor(){super(...arguments),this.onUserJoined=e.noop,this.onUserLeft=e.noop,this.onUserReceivedInvitation=e.noop,this.onUserDeclinedInvitation=e.noop,this.onChannelHidden=e.noop,this.onUnreadMemberStatusUpdated=e.noop,this.onUndeliveredMemberStatusUpdated=e.noop,this.onTypingStatusUpdated=e.noop,this.onPollUpdated=e.noop,this.onPollVoted=e.noop,this.onPollDeleted=e.noop,this.onPinnedMessageUpdated=e.noop}}class f extends C{constructor(e={}){super(),Object.keys(e).forEach((t=>{this.hasOwnProperty(t)&&(this[t]=e[t])}))}}class y extends e.APIRequestCommand{constructor(t){const{token:n,limit:i,order:s,reverse:a,channelUrl:r,messageTypeFilter:o,scheduledStatus:l}=t;super(),this.method=e.APIRequestMethod.GET,this.path=`${e.API_PATH_SCHEDULED_MESSAGES}`,this.params=e.deundefined(e.undefineNullProps({token:n,limit:i,reverse:a,channel_url:r,order:s,message_type:o,status:l}))}}class v extends e.APIResponseCommand{constructor(e,t){super(e,t),this.scheduledMessages=[];const{next:i,scheduled_messages:s}=t;this.token=i,this.scheduledMessages=s.map((t=>n.parseMessagePayload(e,t)))}}class b extends e.BaseListQuery{constructor(t,n){var i,s,a,r,o;super(t,n),this.channelUrl=null,this.order=null,this.reverse=!1,this.scheduledStatus=null,this.messageTypeFilter=e.MessageTypeFilter.ALL,this.channelUrl=null!==(i=n.channelUrl)&&void 0!==i?i:null,this.order=null!==(s=n.order)&&void 0!==s?s:null,this.reverse=null!==(a=n.reverse)&&void 0!==a&&a,this.scheduledStatus=null!==(r=n.scheduledStatus)&&void 0!==r?r:null,this.messageTypeFilter=null!==(o=n.messageTypeFilter)&&void 0!==o?o:e.MessageTypeFilter.ALL}_validate(){return super._validate()&&e.isTypeOf("string",this.channelUrl,!0)&&(e.isEnumOf(i.ScheduledMessageListOrder,this.order)||null===this.order)&&e.isTypeOf("boolean",this.reverse)&&(e.isArrayOf(n.ScheduledStatus,this.scheduledStatus)||null===this.scheduledStatus)&&e.isEnumOf(e.MessageTypeFilter,this.messageTypeFilter)}next(){return e.__awaiter(this,void 0,void 0,(function*(){if(this._validate()){if(this._isLoading)throw e.SendbirdError.queryInProgress;if(this._hasNext){this._isLoading=!0;const{requestQueue:t}=e.Vault.of(this._iid),n=new y(e.undefineNullProps(Object.assign(Object.assign({},this),{token:this._token}))),i=yield t.send(n),{scheduledMessages:s,token:a}=i.as(v);return this._token=a,this._hasNext=!!a,this._isLoading=!1,s}return[]}throw e.SendbirdError.invalidParameters}))}}class S extends e.Module{constructor(){super(...arguments),this.name="groupChannel"}init(e,{sdkState:n,dispatcher:i,sessionManager:s,requestQueue:a,logger:r,onlineDetector:o,cacheContext:l}){super.init(e,{sdkState:n,dispatcher:i,sessionManager:s,requestQueue:a,logger:r,onlineDetector:o,cacheContext:l}),this._manager=new t.GroupChannelManager(e,{sdkState:n,cacheContext:l,dispatcher:i,sessionManager:s,requestQueue:a,logger:r})}createGroupChannelCollection(e={}){return new c(this._iid,e)}createMyGroupChannelListQuery(e={}){return new t.GroupChannelListQuery(this._iid,e)}createPublicGroupChannelListQuery(e={}){return new m(this._iid,e)}createScheduledMessageListQuery(e={}){return new b(this._iid,e)}addGroupChannelHandler(t,n){e.unless(e.isTypeOf("string",t)&&n instanceof f).throw(e.SendbirdError.invalidParameters),this._manager.addHandler(t,n)}removeGroupChannelHandler(t){e.unless(e.isTypeOf("string",t)).throw(e.SendbirdError.invalidParameters),this._manager.removeHandler(t)}removeAllGroupChannelHandlers(){this._manager.clearHandler()}buildGroupChannelFromSerializedData(e){return this._manager.buildGroupChannelFromSerializedData(e)}buildGroupChannelListQueryFromSerializedData(e){return this._manager.buildGroupChannelListQueryFromSerializedData(e)}buildMemberFromSerializedData(e){return this._manager.buildMemberFromSerializedData(e)}getChannel(t){return e.__awaiter(this,void 0,void 0,(function*(){return e.unless(e.isTypeOf("string",t)).throw(e.SendbirdError.invalidParameters),this._manager.getChannel(t)}))}getChannelWithoutCache(t){return e.__awaiter(this,void 0,void 0,(function*(){return e.unless(e.isTypeOf("string",t)).throw(e.SendbirdError.invalidParameters),this._manager.getChannelWithoutCache(t)}))}getMyGroupChannelChangeLogsByToken(n,i={}){return e.__awaiter(this,void 0,void 0,(function*(){const s=Object.assign(Object.assign({},t.GroupChannelChangeLogsParamsDefault),i);return e.unless(e.isTypeOf("string",n)&&t.validateGroupChannelChangeLogsParams(s)).throw(e.SendbirdError.invalidParameters),yield this._manager.getMyGroupChannelChangeLogs(n,s)}))}getMyGroupChannelChangeLogsByTimestamp(n,i={}){return e.__awaiter(this,void 0,void 0,(function*(){const s=Object.assign(Object.assign({},t.GroupChannelChangeLogsParamsDefault),i);return e.unless(e.isTypeOf("number",n)&&t.validateGroupChannelChangeLogsParams(s)).throw(e.SendbirdError.invalidParameters),yield this._manager.getMyGroupChannelChangeLogs(n,s)}))}getGroupChannelCount(n){return e.__awaiter(this,void 0,void 0,(function*(){const i=Object.assign(Object.assign({},t.GroupChannelCountParamsDefault),n);return e.unless(t.validateGroupChannelCountParams(i)).throw(e.SendbirdError.invalidParameters),this._manager.getGroupChannelCount(i)}))}getUnreadItemCount(t={}){return e.__awaiter(this,void 0,void 0,(function*(){return yield this._manager.getUnreadItemCount(t)}))}getTotalUnreadChannelCount(){return e.__awaiter(this,void 0,void 0,(function*(){return yield this._manager.getTotalUnreadChannelCount()}))}getTotalUnreadMessageCount(t={}){return e.__awaiter(this,void 0,void 0,(function*(){return yield this._manager.getTotalUnreadMessageCount(t)}))}getTotalScheduledMessageCount(t={}){return e.__awaiter(this,void 0,void 0,(function*(){return yield this._manager.getTotalScheduledMessageCount(t)}))}getSubscribedTotalUnreadMessageCount(){return this._manager.getSubscribedTotalUnreadMessageCount()}getSubscribedCustomTypeTotalUnreadMessageCount(){return this._manager.getSubscribedCustomTypeTotalUnreadMessageCount()}getSubscribedCustomTypeUnreadMessageCount(e){return this._manager.getSubscribedCustomTypeUnreadMessageCount(e)}createChannel(n={}){return e.__awaiter(this,void 0,void 0,(function*(){const i=Object.assign(Object.assign({},t.GroupChannelCreateParamsDefault),n);return e.unless(t.validateGroupChannelCreateParams(i)).throw(e.SendbirdError.invalidParameters),this._manager.createChannel(i)}))}createDistinctChannelIfNotExist(n={}){return e.__awaiter(this,void 0,void 0,(function*(){const i=Object.assign(Object.assign({},t.GroupChannelCreateParamsDefault),n);return e.unless(t.validateGroupChannelCreateParams(i)).throw(e.SendbirdError.invalidParameters),i&&(i.isDistinct=!0),this.createChannel(i)}))}createChannelWithUserIds(n,i=!1,s,a,r="",o=""){return e.__awaiter(this,void 0,void 0,(function*(){const e=Object.assign(Object.assign({},t.GroupChannelCreateParamsDefault),{invitedUserIds:n,isDistinct:i,name:s,data:r,customType:o});return"string"==typeof a?e.coverUrl=a:e.coverImage=a,this.createChannel(e)}))}markAsReadAll(){return e.__awaiter(this,void 0,void 0,(function*(){this._manager.markAsReadAll()}))}markAsReadWithChannelUrls(t){return e.__awaiter(this,void 0,void 0,(function*(){e.unless(e.isArrayOf("string",t)).throw(e.SendbirdError.invalidParameters),this._manager.markAsReadWithChannelUrls(t)}))}markAsDelivered(t){return e.__awaiter(this,void 0,void 0,(function*(){e.unless(e.isTypeOf("string",t)).throw(e.SendbirdError.invalidParameters);const n=yield this.getChannel(t);yield n.markAsDelivered()}))}}exports.MessageEventSource=e.MessageEventSource,Object.defineProperty(exports,"MutedState",{enumerable:!0,get:function(){return e.MutedState}}),Object.defineProperty(exports,"CountPreference",{enumerable:!0,get:function(){return t.CountPreference}}),exports.DeliveryStatus=t.DeliveryStatus,exports.GroupChannel=t.GroupChannel,exports.GroupChannelEventSource=t.GroupChannelEventSource,exports.GroupChannelFilter=t.GroupChannelFilter,exports.GroupChannelListQuery=t.GroupChannelListQuery,Object.defineProperty(exports,"GroupChannelSearchField",{enumerable:!0,get:function(){return t.GroupChannelSearchField}}),Object.defineProperty(exports,"HiddenChannelFilter",{enumerable:!0,get:function(){return t.HiddenChannelFilter}}),Object.defineProperty(exports,"HiddenState",{enumerable:!0,get:function(){return t.HiddenState}}),exports.Member=t.Member,Object.defineProperty(exports,"MemberListOrder",{enumerable:!0,get:function(){return t.MemberListOrder}}),exports.MemberListQuery=t.MemberListQuery,Object.defineProperty(exports,"MemberState",{enumerable:!0,get:function(){return t.MemberState}}),Object.defineProperty(exports,"MemberStateFilter",{enumerable:!0,get:function(){return t.MemberStateFilter}}),exports.MessageCollection=t.MessageCollection,exports.MessageCollectionInitHandler=t.MessageCollectionInitHandler,Object.defineProperty(exports,"MessageCollectionInitPolicy",{enumerable:!0,get:function(){return t.MessageCollectionInitPolicy}}),Object.defineProperty(exports,"MutedMemberFilter",{enumerable:!0,get:function(){return t.MutedMemberFilter}}),Object.defineProperty(exports,"MyMemberStateFilter",{enumerable:!0,get:function(){return t.MyMemberStateFilter}}),Object.defineProperty(exports,"OperatorFilter",{enumerable:!0,get:function(){return t.OperatorFilter}}),Object.defineProperty(exports,"PublicChannelFilter",{enumerable:!0,get:function(){return t.PublicChannelFilter}}),Object.defineProperty(exports,"QueryType",{enumerable:!0,get:function(){return t.QueryType}}),Object.defineProperty(exports,"SuperChannelFilter",{enumerable:!0,get:function(){return t.SuperChannelFilter}}),Object.defineProperty(exports,"UnreadChannelFilter",{enumerable:!0,get:function(){return t.UnreadChannelFilter}}),Object.defineProperty(exports,"UnreadItemKey",{enumerable:!0,get:function(){return t.UnreadItemKey}}),exports.MessageFilter=n.MessageFilter,exports.PinnedMessage=n.PinnedMessage,exports.PinnedMessageListQuery=n.PinnedMessageListQuery,exports.ReadStatus=n.ReadStatus,Object.defineProperty(exports,"ScheduledStatus",{enumerable:!0,get:function(){return n.ScheduledStatus}}),Object.defineProperty(exports,"GroupChannelListOrder",{enumerable:!0,get:function(){return i.GroupChannelListOrder}}),Object.defineProperty(exports,"PublicGroupChannelListOrder",{enumerable:!0,get:function(){return i.PublicGroupChannelListOrder}}),Object.defineProperty(exports,"ScheduledMessageListOrder",{enumerable:!0,get:function(){return i.ScheduledMessageListOrder}}),exports.GroupChannelCollection=c,exports.GroupChannelHandler=f,exports.GroupChannelModule=S,exports.PublicGroupChannelListQuery=m,exports.ScheduledMessageListQuery=b;