@sendbird/chat
Version:
Sendbird SDK for JavaScript
2 lines (1 loc) • 6.94 kB
JavaScript
var e,t,s,n=require("./__bundle-846135d7.cjs"),r=require("./__bundle-a756336f.cjs");exports.GroupChannelListOrder=void 0,(e=exports.GroupChannelListOrder||(exports.GroupChannelListOrder={})).LATEST_LAST_MESSAGE="latest_last_message",e.CHRONOLOGICAL="chronological",e.CHANNEL_NAME_ALPHABETICAL="channel_name_alphabetical",e.METADATA_VALUE_ALPHABETICAL="metadata_value_alphabetical",exports.PublicGroupChannelListOrder=void 0,(t=exports.PublicGroupChannelListOrder||(exports.PublicGroupChannelListOrder={})).CHRONOLOGICAL="chronological",t.CHANNEL_NAME_ALPHABETICAL="channel_name_alphabetical",t.METADATA_VALUE_ALPHABETICAL="metadata_value_alphabetical",exports.ScheduledMessageListOrder=void 0,(s=exports.ScheduledMessageListOrder||(exports.ScheduledMessageListOrder={})).CREATED_AT="created_at",s.SCHEDULED_AT="scheduled_at";class i extends n.BaseCommand{constructor({message:e}){super(),this.message=e}}const o={};var a,d;exports.UserEventCategory=void 0,(a=exports.UserEventCategory||(exports.UserEventCategory={}))[a.USER_BLOCK=20001]="USER_BLOCK",a[a.USER_UNBLOCK=2e4]="USER_UNBLOCK",a[a.FRIEND_DISCOVERED=20900]="FRIEND_DISCOVERED";class u{constructor(e){this.category=e.cat,this.data=e.data}static getDataAsUserBlockEvent(e,t){const{blocker:s,blockee:r}=t.data;return{blocker:new n.User(e,s),blockee:new n.User(e,r)}}static getDataAsFriendDiscoveredEvent(e,t){const{friend_discoveries:s}=t.data;return{friendDiscoveries:Array.isArray(s)?s.map((t=>new n.User(e,t))):[]}}}class c extends n.BaseCommand{constructor(e,{userId:t}){super(),this._iid=e,this.userId=t}}class h extends n.BaseCommand{constructor(){super()}}class _ extends n.BaseCommand{constructor({configTs:e}){super(),this.configTs=e}}class l extends n.WebSocketEventCommand{constructor(e,t,s){super(e,"USEV",s),this.event=new u(s)}}class g extends n.BaseCommand{constructor({appConfigsInfo:e,configTs:t}){super(),this.appConfigsInfo={},this.configTs=0,this.appConfigsInfo=e,this.configTs=t}}!function(e){e[e.IDLE=0]="IDLE",e[e.RUNNING=1]="RUNNING",e[e.END=2]="END"}(d||(d={}));class p extends n.EventDispatcher{constructor(e,t,s=2,n=10){super(),this._state=d.IDLE,this._retryCount=0,this._retryLimit=3,this.priority=0,this._worker=t}get isIdle(){return this._state===d.IDLE}get isRunning(){return this._state===d.RUNNING}get isDone(){return this._state===d.END}get retryCount(){return this._retryCount}get retryLimit(){return this._retryLimit}_run(e){return n.__awaiter(this,void 0,void 0,(function*(){if(this.isRunning)try{const t=yield this._worker(e);this._retryCount=0,this.dispatch("progress",t),t.hasNext?this._run(t.nextToken):this.end()}catch(t){this.dispatch("error",t),this._retryCount<this._retryLimit?(this._retryCount++,this._run(e)):this.stop()}}))}start(e){this.isIdle&&(this._state=d.RUNNING,this._run(e))}stop(){this._state=d.IDLE,this.dispatch("stop")}end(){this._state=d.END,this.dispatch("end")}}exports.ApplyAppConfigsInfoEventCommand=g,exports.AutoResendManager=class{constructor(e,{localCacheEnabled:t,enableAutoResend:s,dispatcher:r,sdkState:i,logger:a}){this._iid=e,o[e]=this,this._localCacheEnabled=t,this._enableAutoResend=s,this._isProcessingAutoResend=!1,this._autoResendQueue=[],this._dispatcher=r,this._logger=a,this._sdkState=i,this._localCacheEnabled&&r.on((e=>{if(e instanceof n.ConnectionStateChangeCommand)switch(e.stateType){case n.ConnectionStateType.CONNECTED:this._isProcessingAutoResend||this.processAutoResendRegisteredPendingMessages().then((()=>this._processNextAutoResend()));break;case n.ConnectionStateType.INTERNAL_DISCONNECTED:case n.ConnectionStateType.EXTERNAL_DISCONNECTED:this._isProcessingAutoResend=!1}}))}static of(e){return o[e]}processNonAutoResendRegisteredPendingMessages(){return n.__awaiter(this,void 0,void 0,(function*(){if(!this._enableAutoResend)return;const e=yield this._fetchAllCachedPendingMessages();for(const t of e)0===t.errorCode&&(this._logger.debug("cached pending message is not auto-resend registered. changing its sending status to failed: ",t.reqId),t.sendingStatus=n.SendingStatus.FAILED,t.errorCode=n.SendbirdErrorCode.ACK_TIMEOUT,this._dispatcher.dispatch(new n.MessageUpdateEventCommand({messages:[t],source:n.CollectionEventSource.LOCAL_MESSAGE_FAILED})))}))}processAutoResendRegisteredPendingMessages(){return n.__awaiter(this,void 0,void 0,(function*(){const e=yield this._fetchAllCachedPendingMessages();for(const t of e)if(this._enableAutoResend&&t.errorCode&&n.isAutoResendableError(t.errorCode)){const e=(new Date).getTime(),s=t.createdAt+2592e5;this._enableAutoResend&&e<=s?this._autoResendQueue.map((e=>e.reqId)).indexOf(t.reqId)<0&&this._autoResendQueue.push(t):(this._logger.debug("auto-resend registered pending messaged expired. expiration date: ",new Date(s).toLocaleString()),t.sendingStatus=n.SendingStatus.FAILED,this._dispatcher.dispatch(new n.MessageUpdateEventCommand({messages:[t],source:n.CollectionEventSource.LOCAL_MESSAGE_FAILED})))}}))}completeCurrentAndProcessNextAutoResend(e){if(this._localCacheEnabled&&this._enableAutoResend&&(e.sendingStatus===n.SendingStatus.SUCCEEDED||e.sendingStatus===n.SendingStatus.FAILED&&!n.isAutoResendableError(e.errorCode))){const t=this.indexOf(e);t>=0&&this._autoResendQueue.splice(t,1),0===t&&this._processNextAutoResend()}}_fetchAllCachedPendingMessages(){return n.__awaiter(this,void 0,void 0,(function*(){const e=r.UnsentMessageCache.of(this._iid),t=new r.MessageFilter;return t.replyType=n.ReplyType.ALL,yield e.fetch({sendingStatus:n.SendingStatus.PENDING,backward:!0,filter:t})}))}indexOf(e){return this._autoResendQueue.length>0?this._autoResendQueue.map((e=>e.reqId)).indexOf(e.reqId):-1}_isNotInQueue(e){return-1===this._autoResendQueue.map((e=>e.reqId)).indexOf(e.reqId)}_processNextAutoResend(){return n.__awaiter(this,void 0,void 0,(function*(){if(this._localCacheEnabled&&this._enableAutoResend&&"foreground"===this._sdkState.appState)try{if(this._autoResendQueue.length>0){this._isProcessingAutoResend||(this._logger.debug("auto-resend queue started."),this._isProcessingAutoResend=!0);const e=this._autoResendQueue[0];this._dispatcher.dispatch(new i({message:e})),this._logger.debug("processing auto-resend for message request id: ",e.reqId)}else this._logger.debug("auto-resend queue finished."),this._isProcessingAutoResend=!1}catch(e){this._logger.warn("process auto-resend error: ",e),this._isProcessingAutoResend=!1}}))}},exports.AutoResendRequestCommand=i,exports.DatabaseOpenCommand=c,exports.ReduceDBSizeEventCommand=h,exports.SaveAppConfigsInfoEventCommand=_,exports.Sync=p,exports.UserEvent=u,exports.UserEventCommand=l,exports.getGroupChannelIndexBy=e=>{switch(e){case exports.GroupChannelListOrder.LATEST_LAST_MESSAGE:return["-lastMessageUpdatedAt","-createdAt","syncIndex"];case exports.GroupChannelListOrder.CHRONOLOGICAL:return["-createdAt","syncIndex"];case exports.GroupChannelListOrder.CHANNEL_NAME_ALPHABETICAL:return["name"];default:return["-lastMessageUpdatedAt","-createdAt","syncIndex"]}};