Skip to content

Commit 1d15ae0

Browse files
Release - 4.18.1
1 parent cb1d78b commit 1d15ae0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+88
-34
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Changelog
22

3+
## v4.18.1 (May 28, 2025)
4+
### **Improvement**
5+
- Added `metadataKey`, `metadataValues`, `metadataValueStartsWith` in `GroupChannelFilter`
6+
- Metadata-related filters work with `includeMetaData` to be set to `true`
37
## v4.18.0 (May 21, 2025)
48
### **Feature**
59
A new feature has been added that allows you to mark messages in the channel as `unread` from a specific message.

cjs/feedChannel.cjs

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

cjs/groupChannel.cjs

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

cjs/index.cjs

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
var o=require("./__bundle-f0fdf8d0.cjs");exports.BaseChannelHandlerParams=class{constructor(){this.onUserMuted=o.noop,this.onUserUnmuted=o.noop,this.onUserBanned=o.noop,this.onUserUnbanned=o.noop,this.onChannelChanged=o.noop,this.onChannelDeleted=o.noop,this.onChannelFrozen=o.noop,this.onChannelUnfrozen=o.noop,this.onOperatorUpdated=o.noop,this.onChannelMemberCountChanged=o.noop,this.onMetaDataCreated=o.noop,this.onMetaDataUpdated=o.noop,this.onMetaDataDeleted=o.noop,this.onMetaCounterCreated=o.noop,this.onMetaCounterUpdated=o.noop,this.onMetaCounterDeleted=o.noop,this.onMessageReceived=o.noop,this.onMessageUpdated=o.noop,this.onMessageDeleted=o.noop,this.onMentionReceived=o.noop,this.onReactionUpdated=o.noop,this.onThreadInfoUpdated=o.noop}};
1+
var o=require("./__bundle-3e3d7eec.cjs");exports.BaseChannelHandlerParams=class{constructor(){this.onUserMuted=o.noop,this.onUserUnmuted=o.noop,this.onUserBanned=o.noop,this.onUserUnbanned=o.noop,this.onChannelChanged=o.noop,this.onChannelDeleted=o.noop,this.onChannelFrozen=o.noop,this.onChannelUnfrozen=o.noop,this.onOperatorUpdated=o.noop,this.onChannelMemberCountChanged=o.noop,this.onMetaDataCreated=o.noop,this.onMetaDataUpdated=o.noop,this.onMetaDataDeleted=o.noop,this.onMetaCounterCreated=o.noop,this.onMetaCounterUpdated=o.noop,this.onMetaCounterDeleted=o.noop,this.onMessageReceived=o.noop,this.onMessageUpdated=o.noop,this.onMessageDeleted=o.noop,this.onMentionReceived=o.noop,this.onReactionUpdated=o.noop,this.onThreadInfoUpdated=o.noop}};
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
var e=require("./__bundle-f0fdf8d0.cjs"),s=require("./__bundle-f25f75fe.cjs");class t extends e.APIRequestCommand{constructor({channelType:s,channelUrl:t,limit:n,token:i}){super(),this.method=e.APIRequestMethod.GET,this.path=`${e.getChannelApiPathByType(s)}/${encodeURIComponent(t)}/messages/parent_thread_message`,this.params=e.deundefined(e.undefineNullProps({limit:n,token:i}))}}class n extends e.APIResponseCommand{constructor(e,t){super(e,t),this.token=t.next,this.messages=t.messages.map((t=>s.parseMessagePayload(e,t)))}}class i extends e.ChannelDataListQuery{constructor(e,s,t,n){super(e,s,t,n),this._edge=""}_validate(){return super._validate()}load(){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:s}=e.Vault.of(this._iid),i=new t({channelType:this.channelType,channelUrl:this.channelUrl,token:this._edge,limit:this.limit}),a=yield s.send(i),{messages:r,token:d}=a.as(n);return this._edge=d,this._hasNext=!!d,this._isLoading=!1,r}return[]}throw e.SendbirdError.invalidParameters}))}}exports.ThreadedParentMessageListQuery=i;
1+
var e=require("./__bundle-3e3d7eec.cjs"),s=require("./__bundle-a8e008dc.cjs");class t extends e.APIRequestCommand{constructor({channelType:s,channelUrl:t,limit:n,token:i}){super(),this.method=e.APIRequestMethod.GET,this.path=`${e.getChannelApiPathByType(s)}/${encodeURIComponent(t)}/messages/parent_thread_message`,this.params=e.deundefined(e.undefineNullProps({limit:n,token:i}))}}class n extends e.APIResponseCommand{constructor(e,t){super(e,t),this.token=t.next,this.messages=t.messages.map((t=>s.parseMessagePayload(e,t)))}}class i extends e.ChannelDataListQuery{constructor(e,s,t,n){super(e,s,t,n),this._edge=""}_validate(){return super._validate()}load(){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:s}=e.Vault.of(this._iid),i=new t({channelType:this.channelType,channelUrl:this.channelUrl,token:this._edge,limit:this.limit}),a=yield s.send(i),{messages:r,token:d}=a.as(n);return this._edge=d,this._hasNext=!!d,this._isLoading=!1,r}return[]}throw e.SendbirdError.invalidParameters}))}}exports.ThreadedParentMessageListQuery=i;

cjs/lib/__bundle-f0fdf8d0.cjs renamed to cjs/lib/__bundle-3e3d7eec.cjs

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

cjs/lib/__bundle-5d191dc1.cjs

Lines changed: 0 additions & 1 deletion
This file was deleted.

cjs/lib/__bundle-730294da.cjs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
var e,t,s,n=require("./__bundle-3e3d7eec.cjs"),r=require("./__bundle-a8e008dc.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 c{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 u 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 c(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*(){this._enableAutoResend&&(yield n.runOrNothing((()=>n.__awaiter(this,void 0,void 0,(function*(){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*(){yield n.runOrNothing((()=>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}_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=u,exports.ReduceDBSizeEventCommand=h,exports.SaveAppConfigsInfoEventCommand=_,exports.Sync=p,exports.UserEvent=c,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"]}};

cjs/lib/__bundle-9743e0eb.cjs

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)