sim-sdk-web 1.1.31 → 1.1.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { AddMembersModel, GroupPermission, HistoryMessageParam, HistoryMessageResponse, KickGroupMemberParams, LiveMessageParam, MarkConversationReadParam, MessageItem, MuteMembersParams, PushChatMessage, ReqPageParam, Request, ServerResponse, UpdateGroupMemberPermission, UpdateGroupPermission, ContactType, EditeContactTagDTO, AllocationContactTagDTO, GetFileByTypeParams } from '../types/entity';
1
+ import { AddMembersModel, ChatMemberDTO, GroupPermission, HistoryMessageParam, HistoryMessageResponse, KickGroupMemberParams, LiveMessageParam, MarkConversationReadParam, MessageItem, MuteMembersParams, PushChatMessage, ReqPageParam, Request, ServerResponse, UpdateGroupMemberPermission, UpdateGroupPermission, ContactType, EditeContactTagDTO, AllocationContactTagDTO, GetFileByTypeParams } from '../types/entity';
2
2
  import type { LoginParams, UploadFileParams } from '../types/params';
3
3
  import { RequestApi } from '../constant/api';
4
4
  import Emitter from '../utils/emitter';
@@ -207,6 +207,12 @@ declare class SIMSDK extends Emitter {
207
207
  * @returns 登出结果Promise
208
208
  */
209
209
  logout: () => Promise<ServerResponse<unknown>>;
210
+ /**
211
+ * 获取聊天对象的信息
212
+ * @param chatId 被查询人的信息(app用户id)
213
+ * @returns 聊天对象信息Promise
214
+ */
215
+ getChatMember: (chatId: number) => Promise<ServerResponse<ChatMemberDTO>>;
210
216
  /**
211
217
  * 初始化会话列表缓存
212
218
  * @private
package/lib/api/user.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { LoginParams } from '../types/params';
2
2
  import SIMSDK from './index';
3
- import { ServerResponse } from '../types/entity';
3
+ import { ServerResponse, ChatMemberDTO } from '../types/entity';
4
4
  /**
5
5
  * 用户服务 - 负责用户认证与基本信息
6
6
  */
@@ -22,4 +22,10 @@ export declare class UserService {
22
22
  * @returns 登出结果Promise
23
23
  */
24
24
  logout(): Promise<ServerResponse<void>>;
25
+ /**
26
+ * 获取聊天对象的信息
27
+ * @param chatId 被查询人的信息(app用户id)
28
+ * @returns 聊天对象信息Promise
29
+ */
30
+ getChatMember(chatId: number): Promise<ServerResponse<ChatMemberDTO>>;
25
31
  }
@@ -4,6 +4,7 @@ export declare enum ErrorCode {
4
4
  export declare enum RequestApi {
5
5
  Login = "/chat/member/login",
6
6
  Logout = "/chat/member/logout",
7
+ GetChatMember = "/chat/member/getChatMember",
7
8
  GetGroupInfo = "/chat/group/groupInfo",
8
9
  GetGroupMembers = "/chat/group/groupMembers",
9
10
  JoinGroup = "/chat/group/joinGroup",
package/lib/index.es.js CHANGED
@@ -1 +1 @@
1
- import{EventSourcePolyfill as e}from"event-source-polyfill";function t(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n<t;n++)o[n]=e[n];return o}function n(e,n){var o="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(o)return(o=o.call(e)).next.bind(o);if(Array.isArray(e)||(o=function(e,n){if(e){if("string"==typeof e)return t(e,n);var o={}.toString.call(e).slice(8,-1);return"Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o?Array.from(e):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?t(e,n):void 0}}(e))||n&&e&&"number"==typeof e.length){o&&(e=o);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)({}).hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},o.apply(null,arguments)}function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function s(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}var i,a,c,u,d;!function(e){e.MESSAGE="message",e.CONVERSATION="conversation",e.GROUP="group",e.USER="user",e.CONTACT="contact"}(i||(i={})),function(e){e[e.MEMBER=0]="MEMBER",e[e.COLLEAGUE=1]="COLLEAGUE",e[e.GROUP=2]="GROUP"}(a||(a={})),function(e){e[e.UnknownError=10005]="UnknownError"}(c||(c={})),function(e){e.Login="/chat/member/login",e.Logout="/chat/member/logout",e.GetGroupInfo="/chat/group/groupInfo",e.GetGroupMembers="/chat/group/groupMembers",e.JoinGroup="/chat/group/joinGroup",e.LeftGroup="/chat/group/leftGroup",e.AnonymousJoinGroup="/chat/group/anonymousJoinGroup",e.AnonymousLeftGroup="/chat/group/anonymousLeftGroup",e.CheckGroupBlock="/chat/group/checkBlock",e.GetMyGroupPermission="/chat/group/permission/getPermission",e.GetGroupPermission="/chat/group/permission/groupPermission",e.GetGroupMember="/chat/group/groupMember",e.GetGroupMemberPermission="/chat/group/permission/groupMemberPermission",e.UpdateGroupPermission="/chat/group/permission/updateGroupPermission",e.UpdateGroupMemberPermission="/chat/group/permission/updateGroupMemberPermission",e.editeGroupName="/chat/group/operation/editeGroupName",e.editeNotification="/chat/group/operation/editeNotification",e.editeGroupCustomer="/chat/group/operation/editeGroupCustomer",e.addAdmin="/chat/group/operation/addAdmin",e.deleteAdmin="/chat/group/operation/deleteAdmin",e.pin="/chat/group/operation/pin",e.muteGroup="/chat/group/operation/muteGroup",e.muteMember="/chat/group/operation/muteMember",e.kickGroupMember="/chat/group/operation/kickGroupMember",e.muteMembers="/chat/group/operation/muteMembers",e.DissolveGroup="/chat/group/dissolve",e.GetAllConversationList="/chat/conversation/conversationList",e.MarkConversationMessageAsRead="/chat/conversation/lastRead",e.PinConversation="/chat/conversation/pinChat",e.MuteConversation="/chat/conversation/mute",e.UpdateLatestMessage="/chat/group/updateLatestMessage",e.GetLatestGroupChats="/chat/group/latestGroupChats",e.CheckLatestMessages="/chat/group/checkLatestMessages",e.CreateTextMessage="/chat/message/push",e.PushMessageToMember="/chat/message/push2Member",e.PushPrivateMessage="/chat/message/pushPrivateMessage",e.PushLiveMessage="/chat/message/liveGroupPush",e.GetHistoryMessageList="/chat/message/pull",e.GetLiveMessageList="/chat/message/liveGroupPull",e.GetAnonymousLiveMessageList="/chat/message/anonymousLiveGroupPull",e.PrePushCustomerMessage="/chat/message/prePushCustomerMessage",e.UploadFile="/chat/img/upload",e.GetContactByType="/chat/contact/contactByType",e.EditContactTag="/chat/contact/editeContactTag",e.GetContactTag="/chat/contact/getContactTag",e.AllocationContactTag="/chat/contact/allocationContactTag",e.AddGroupMembers="/chat/group/operation/addGroupMembers",e.GetFileByType="/chat/message/getFileByType",e.PinChat="/chat/member/pinChat"}(u||(u={})),function(e){e.OnConnected="OnConnected",e.OnDisconnected="OnDisconnected",e.onMaxRetriesReached="onMaxRetriesReached",e.OnReconnecting="OnReconnecting",e.OnReconnected="OnReconnected",e.OnReconnectFailed="OnReconnectFailed",e.OnNetworkChange="OnNetworkChange",e.OnReceiveMessage="OnReceiveMessage",e.OnReceiveProtoMessage="OnReceiveProtoMessage",e.OnReceiveMessages="OnReceiveMessages",e.OnReceiveSubscribeMessage="OnReceiveSubscribeMessage",e.OnReceiveSystemMessage="OnReceiveSystemMessage",e.OnReceivePreMessage="OnReceivePreMessage",e.OnMessagesListLoaded="OnMessagesListLoaded",e.OnActiveConversationSync="OnActiveConversationSync",e.OnMessageSent="OnMessageSent",e.OnMessageFailed="OnMessageFailed",e.OnMessageRevoked="OnMessageRevoked",e.OnMessageDeleted="OnMessageDeleted",e.OnMessageRead="OnMessageRead",e.OnTypingStatusUpdate="OnTypingStatusUpdate",e.OnUserStatusChange="OnUserStatusChange",e.OnKickedOffline="OnKickedOffline",e.OnUserTokenInvalid="OnUserTokenInvalid",e.OnUserTokenExpired="OnUserTokenExpired",e.OnForceOffline="OnForceOffline",e.OnUserInfoUpdated="OnUserInfoUpdated",e.OnGroupCreated="OnGroupCreated",e.OnGroupInfoUpdated="OnGroupInfoUpdated",e.OnGroupDissolved="OnGroupDissolved",e.OnJoinGroup="OnJoinGroup",e.OnLeaveGroup="OnLeaveGroup",e.OnGroupMemberJoined="OnGroupMemberJoined",e.OnGroupMemberLeft="OnGroupMemberLeft",e.OnGroupMemberKicked="OnGroupMemberKicked",e.OnGroupOwnerChanged="OnGroupOwnerChanged",e.OnGroupAdminAdded="OnGroupAdminAdded",e.OnGroupAdminRemoved="OnGroupAdminRemoved",e.OnGroupMemberMuted="OnGroupMemberMuted",e.OnGroupMemberUnmuted="OnGroupMemberUnmuted",e.OnGroupAllMemberMuted="OnGroupAllMemberMuted",e.OnGroupAllMemberUnmuted="OnGroupAllMemberUnmuted",e.OnConversationCreated="OnConversationCreated",e.OnConversationDeleted="OnConversationDeleted",e.OnConversationListUpdated="OnConversationListUpdated",e.OnConversationUpdated="OnConversationUpdated",e.OnUnreadCountChanged="OnUnreadCountChanged",e.OnConversationPinned="OnConversationPinned",e.OnConversationUnpinned="OnConversationUnpinned",e.OnConversationMuted="OnConversationMuted",e.OnConversationUnmuted="OnConversationUnmuted",e.OnPongConn="OnPongConn",e.OnPongReConn="OnPongReConn",e.OnPongIdle="OnPongIdle",e.OnError="OnError",e.OnWarning="OnWarning",e.OnLog="OnLog"}(d||(d={}));var l,g,h,m,p,f,v=/*#__PURE__*/function(){function e(){var e;this.events=((e={})[d.OnReceiveMessage]=[],e[d.OnReceiveSystemMessage]=[],e[d.OnReceiveMessages]=[],e[d.OnConversationListUpdated]=[],e[d.OnMessagesListLoaded]=[],e[d.OnActiveConversationSync]=[],e[d.OnConnected]=[],e[d.OnDisconnected]=[],e[d.OnReconnected]=[],e)}var t=e.prototype;return t.emit=function(e,t){var n=this.events[e];return n&&n.forEach(function(e){return e(t)}),this},t.on=function(e,t){var n;return this.events[e]||(this.events[e]=[]),null==(n=this.events[e])||n.push(t),this},t.off=function(e,t){var n=this.events[e];if(n){var o=n.indexOf(t);o>-1&&(n.splice(o,1),0===n.length&&delete this.events[e])}return this},e}();!function(e){e[e.PrivateChat=0]="PrivateChat",e[e.PrivateGroup=1]="PrivateGroup",e[e.PublicGroup=2]="PublicGroup",e[e.CustomerService=3]="CustomerService",e[e.LiveGroup=4]="LiveGroup"}(l||(l={})),function(e){e[e.TEXT=0]="TEXT",e[e.IMAGE=1]="IMAGE",e[e.FILE=2]="FILE",e[e.AUDIO=3]="AUDIO",e[e.VIDEO=4]="VIDEO",e[e.LINK=5]="LINK",e[e.GIF=6]="GIF",e[e.OPTION=7]="OPTION",e[e.EMOJI=8]="EMOJI",e[e.CUSTOM=100]="CUSTOM"}(g||(g={})),function(e){e[e.EVENT_PONG_CONN=0]="EVENT_PONG_CONN",e[e.EVENT_PONG_RE_CONN=1]="EVENT_PONG_RE_CONN",e[e.EVENT_PONG_IDLE=2]="EVENT_PONG_IDLE",e[e.EVENT_MESSAGE_PUSH=3]="EVENT_MESSAGE_PUSH",e[e.EVENT_SYSTEM_MESSAGE_PUSH=4]="EVENT_SYSTEM_MESSAGE_PUSH",e[e.EVENT_LIVE_SYSTEM_MESSAGE_PUSH=5]="EVENT_LIVE_SYSTEM_MESSAGE_PUSH",e[e.EVENT_PRE_MESSAGE_PUSH=6]="EVENT_PRE_MESSAGE_PUSH",e[e.EVENT_SUBSCRIBE_MESSAGE_PUSH=7]="EVENT_SUBSCRIBE_MESSAGE_PUSH"}(h||(h={})),function(e){e[e.JOIN=0]="JOIN",e[e.LEFT=1]="LEFT",e[e.LAST_READ_UPDATE=2]="LAST_READ_UPDATE",e[e.PERMISSION_UPDATE=3]="PERMISSION_UPDATE",e[e.IDENTITY_UPDATE=4]="IDENTITY_UPDATE",e[e.PING_UPDATE=5]="PING_UPDATE"}(m||(m={})),function(e){e[e.GroupMemberPermissionChange=3]="GroupMemberPermissionChange",e[e.GroupPermissionChange=4]="GroupPermissionChange"}(p||(p={})),function(e){e.SSE="sse",e.WEBSOCKET="websocket"}(f||(f={}));var C="undefined"!=typeof uni,M="undefined"!=typeof window,S="simsdk_",b={CONVERSATIONS:S+"conversations",GROUP_MESSAGES:S+"group_messages",USER_INFO:S+"user_info",META_INFO:S+"meta"},E={MAX_CONVERSATIONS:100,MAX_GROUP_MESSAGES:200,STORAGE_CHUNK_SIZE:512e3,CACHE_TTL:6048e5,EXPIRY_CHECK_INTERVAL:18e5},P=/*#__PURE__*/function(){function e(e){var t=void 0===e?{}:e,n=t.persistEnabled,r=void 0===n||n,s=t.debug,i=void 0!==s&&s,a=t.config,c=void 0===a?{}:a;this.conversationCache=[],this.groupMessageCache={},this.accessTimeRecord={},this.pinnedConversationOrder=new Map,this.userInfo={},this.activeConversation=void 0,this.metaInfo={},this.persistEnabled=void 0,this.debug=void 0,this.config=void 0,this.cleanupTimer=void 0,this.persistEnabled=r,this.debug=i,this.config=o({},E,c)}var t=e.prototype;return t.initialize=function(e){this.userInfo.username=e,this.persistEnabled&&this.loadFromStorage(),this.setupCleanupInterval(),this.debug&&(console.log("Cache initialized for user:",e),console.log("Loaded conversations:",this.conversationCache.length),console.log("Loaded group messages for groups:",Object.keys(this.groupMessageCache).length))},t.clear=function(){this.conversationCache=[],this.groupMessageCache={},this.accessTimeRecord={},this.pinnedConversationOrder.clear(),this.persistEnabled&&this.clearStorage(),this.debug&&console.log("Cache cleared")},t.getConversations=function(){return[].concat(this.conversationCache)},t.clearConversationUnread=function(e){var t=this.conversationCache.find(function(t){return t.id===e});t&&(t.unreadCount=0,this.persistEnabled&&this.saveConversationsToStorage())},t.clearAllConversationUnread=function(){this.conversationCache.forEach(function(e){e.unreadCount>0&&(e.unreadCount=0)}),this.persistEnabled&&this.saveConversationsToStorage()},t.getActiveConversation=function(){return this.activeConversation},t.setConversations=function(e,t){var n=this;if(void 0===t&&(t=!1),this.conversationCache=e.length>this.config.MAX_CONVERSATIONS?e.slice(0,this.config.MAX_CONVERSATIONS):[].concat(e),t)this.pinnedConversationOrder.clear(),this.conversationCache.forEach(function(e,t){e.pin&&n.pinnedConversationOrder.set(e.id,t)});else{var o=-1;this.pinnedConversationOrder.forEach(function(e){e>o&&(o=e)}),this.conversationCache.forEach(function(e,t){e.pin&&!n.pinnedConversationOrder.has(e.id)&&n.pinnedConversationOrder.set(e.id,o+t+1)})}this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage()},t.updateConversation=function(e){var t=this.conversationCache.findIndex(function(t){return t.id===e.id});t>=0?this.conversationCache[t]=o({},e):(this.conversationCache.push(o({},e)),this.conversationCache.length>this.config.MAX_CONVERSATIONS&&this.enforceConversationLimit()),this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage()},t.updateConversationPinStatus=function(e,t){var n=this.conversationCache.findIndex(function(t){return t.id===e});if(-1!==n){var o=this.conversationCache[n],r=!0===o.pin;if(o.pin=t,t&&!r){var s=-1;this.pinnedConversationOrder.forEach(function(e){e>s&&(s=e)}),this.pinnedConversationOrder.set(e,s+1)}else!t&&r&&this.pinnedConversationOrder.delete(e);this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage()}},t.updateConversationWithMessage=function(e,t){var n,o=e.groupId;if(!o)return!1;var r=this.conversationCache.findIndex(function(e){return e.id===o});if(-1===r)return!1;var s=this.conversationCache[r],i=(null==(n=s.latest)?void 0:n.msgId)||0;return this.activeConversation&&this.activeConversation.id===o?s.unreadCount=0:t!==e.username&&(s.unreadCount+=e.msgId>i?e.msgId-i:1),s.latest=e,this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage(),!0},t.getGroupMessages=function(e){return this.recordAccess(e),!this.groupMessageCache[e]&&this.persistEnabled&&this.loadGroupMessagesFromStorage(e),this.groupMessageCache[e]||[]},t.addGroupMessage=function(e){if(e.groupId){this.recordAccess(e.groupId),this.groupMessageCache[e.groupId]||(this.groupMessageCache[e.groupId]=[]);var t=this.groupMessageCache[e.groupId].findIndex(function(t){return t.msgId===e.msgId});t>=0?this.groupMessageCache[e.groupId][t]=e:this.groupMessageCache[e.groupId].push(e),this.sortGroupMessages(e.groupId),this.limitGroupMessageCache(e.groupId),this.enforceMemoryLimits(),this.persistEnabled&&this.saveGroupMessagesToStorage(e.groupId)}},t.addGroupMessages=function(e){for(var t,o=this,r={},s=n(e);!(t=s()).done;){var i=t.value;i.groupId&&(r[i.groupId]||(r[i.groupId]=[]),r[i.groupId].push(i))}for(var a=0,c=Object.entries(r);a<c.length;a++){var u=c[a],d=u[0],l=u[1];this.recordAccess(Number(d)),this.groupMessageCache[d]||(this.groupMessageCache[d]=[]);for(var g,h=function(){var e=g.value,t=o.groupMessageCache[d].findIndex(function(t){return t.msgId===e.msgId});t>=0?o.groupMessageCache[d][t]=e:o.groupMessageCache[d].push(e)},m=n(l);!(g=m()).done;)h();this.sortGroupMessages(Number(d)),this.limitGroupMessageCache(Number(d)),this.persistEnabled&&this.saveGroupMessagesToStorage(Number(d))}this.enforceMemoryLimits()},t.sortConversations=function(){var e=this;this.conversationCache.sort(function(t,n){var o,r,s,i,a=!0===t.pin,c=!0===n.pin;if(a&&!c)return-1;if(!a&&c)return 1;if(a&&c)return(null!=(s=e.pinnedConversationOrder.get(t.id))?s:0)-(null!=(i=e.pinnedConversationOrder.get(n.id))?i:0);var u=(null==(o=t.latest)?void 0:o.createTime)||0;return((null==(r=n.latest)?void 0:r.createTime)||0)-u})},t.sortGroupMessages=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].sort(function(e,t){return(t.createTime||0)-(e.createTime||0)})},t.limitGroupMessageCache=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].length>this.config.MAX_GROUP_MESSAGES&&(this.groupMessageCache[e]=this.groupMessageCache[e].slice(0,this.config.MAX_GROUP_MESSAGES))},t.recordAccess=function(e){this.accessTimeRecord[e]=Date.now()},t.enforceConversationLimit=function(){this.conversationCache.length<=this.config.MAX_CONVERSATIONS||(this.sortConversations(),this.conversationCache=this.conversationCache.slice(0,this.config.MAX_CONVERSATIONS))},t.enforceMemoryLimits=function(){var e=this,t=Object.keys(this.groupMessageCache).length;if(t>10){var n=Object.keys(this.groupMessageCache).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}});n.sort(function(e,t){return e.lastAccess-t.lastAccess});for(var o=Math.ceil(.3*t),r=0;r<o&&r<n.length;r++){var s=n[r].groupId;this.persistEnabled&&(delete this.groupMessageCache[s],this.debug&&console.log("Released memory for inactive group: "+s))}}},t.setupCleanupInterval=function(){var e=this;this.cleanupTimer&&clearInterval(this.cleanupTimer),this.cleanupTimer=window.setInterval(function(){e.cleanupExpiredData()},this.config.EXPIRY_CHECK_INTERVAL)},t.cleanupExpiredData=function(){var e=Date.now();this.metaInfo.lastCleanup=e,this.debug&&console.log("Running cache cleanup");for(var t=0,n=Object.entries(this.accessTimeRecord);t<n.length;t++){var o=n[t],r=o[0];e-o[1]>this.config.CACHE_TTL&&(delete this.accessTimeRecord[r],this.groupMessageCache[r]&&delete this.groupMessageCache[r])}this.persistEnabled&&this.saveMetaInfoToStorage()},t.loadFromStorage=function(){var e=this;try{var t=localStorage.getItem(b.META_INFO);t&&(this.metaInfo=JSON.parse(t));var n=localStorage.getItem(b.CONVERSATIONS);n&&(this.conversationCache=JSON.parse(n)),Object.keys(localStorage).filter(function(e){return e.startsWith(b.GROUP_MESSAGES+".")}).forEach(function(t){var n=t.split(".")[1];n&&!isNaN(Number(n))&&(e.accessTimeRecord[n]=0)});var o=localStorage.getItem(b.USER_INFO);o&&(this.userInfo=JSON.parse(o))}catch(e){console.error("Failed to load cache from storage:",e),this.clearStorage()}},t.loadGroupMessagesFromStorage=function(e){try{for(var t=[],n=0,o=!0;o;){var r=localStorage.getItem(b.GROUP_MESSAGES+"."+e+(n>0?"."+n:""));if(r){var s=JSON.parse(r);t=t.concat(s),n++}else o=!1}t.length>0&&(this.groupMessageCache[e]=t,this.sortGroupMessages(e),this.limitGroupMessageCache(e),this.debug&&console.log("Loaded "+t.length+" messages for group "+e+" from storage"))}catch(t){console.error("Failed to load group messages for "+e+" from storage:",t)}},t.saveConversationsToStorage=function(){try{localStorage.setItem(b.CONVERSATIONS,JSON.stringify(this.conversationCache))}catch(e){console.error("Failed to save conversations to storage:",e),this.handleStorageError()}},t.saveGroupMessagesToStorage=function(e){try{if(void 0!==e){var t=this.groupMessageCache[e];if(!t||0===t.length)return;var n=JSON.stringify(t);if(n.length>this.config.STORAGE_CHUNK_SIZE){this.clearGroupMessageStorage(e);for(var o=t.length,r=Math.max(1,Math.floor(this.config.STORAGE_CHUNK_SIZE/(n.length/o))),s=0;s<o;s+=r){var i=t.slice(s,s+r),a=Math.floor(s/r);localStorage.setItem(b.GROUP_MESSAGES+"."+e+(a>0?"."+a:""),JSON.stringify(i))}}else localStorage.setItem(b.GROUP_MESSAGES+"."+e,n)}else for(var c=0,u=Object.keys(this.groupMessageCache);c<u.length;c++)this.saveGroupMessagesToStorage(Number(u[c]))}catch(e){console.error("Failed to save group messages to storage:",e),this.handleStorageError()}},t.saveMetaInfoToStorage=function(){try{localStorage.setItem(b.META_INFO,JSON.stringify(this.metaInfo))}catch(e){console.error("Failed to save meta info to storage:",e)}},t.handleStorageError=function(){for(var e=this,t=Object.keys(this.accessTimeRecord).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}}).sort(function(e,t){return e.lastAccess-t.lastAccess}),n=Math.max(1,Math.floor(.2*t.length)),o=0;o<n&&o<t.length;o++)this.clearGroupMessageStorage(Number(t[o].groupId)),this.debug&&console.log("Cleared storage for group "+t[o].groupId+" due to quota exceeded")},t.clearGroupMessageStorage=function(e){for(var t=0,n=!0;n;){var o=b.GROUP_MESSAGES+"."+e+(t>0?"."+t:"");null!==localStorage.getItem(o)?(localStorage.removeItem(o),t++):n=!1}},t.saveUserInfoToStorage=function(){try{localStorage.setItem(b.USER_INFO,JSON.stringify(this.userInfo))}catch(e){console.error("Failed to save user info to storage:",e)}},t.clearStorage=function(){try{for(var e,t=n(Object.keys(localStorage).filter(function(e){return e.startsWith(S)}));!(e=t()).done;)localStorage.removeItem(e.value)}catch(e){console.error("Failed to clear storage:",e)}},t.destroy=function(){this.cleanupTimer&&(clearInterval(this.cleanupTimer),this.cleanupTimer=void 0),this.debug&&console.log("Cache manager destroyed")},t.markConversationAsActive=function(e){this.accessTimeRecord[e]=Date.now();var t=this.conversationCache.find(function(t){return t.id===e});return!!t&&(this.activeConversation=o({},t),!0)},t.resetActiveConversation=function(){var e,t=!(null==(e=this.activeConversation)||!e.id);return this.activeConversation=void 0,this.debug&&t&&console.log("Active conversation reset"),t},e}(),O=/*#__PURE__*/function(){function t(e){this.url=void 0,this.token=void 0,this.eventSource=null,this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectTimeout=2e3*Math.random()+3e3,this.connectTimeout=1e4,this.reconnectTimer=null,this.handlers=new Map,this.connected=!1,this.onMessageCallback=void 0,this.onReconnectSuccessCallback=void 0,this.onConnectionClosedCallback=void 0,this.onMaxRetriesReachedCallback=void 0,this.onConnectionChangeCallback=void 0,this.isDestroyed=!1,this.debug=!1,this._openHandler=null,this._errorHandler=null,this._messageHandler=null,this._customHandlers=new Map,this.connectTimeoutRef=null,this.url=e.url,this.token=e.token,this.connectTimeout=e.connectTimeout||1e4,this.reconnectTimeout=e.retryInterval||2e3*Math.random()+3e3,this.maxReconnectAttempts=e.maxRetries||5,this.debug=e.debug||!1,this.onMessageCallback=e.onMessage,this.onReconnectSuccessCallback=e.onReconnectSuccess,this.onConnectionClosedCallback=e.onConnectionClosed,this.onMaxRetriesReachedCallback=e.onMaxRetriesReached,this.onConnectionChangeCallback=e.onConnectionChange}var n=t.prototype;return n.debugLog=function(e){var t;this.debug&&(t=console).log.apply(t,["[SSE] "+e].concat([].slice.call(arguments,1)))},n.debugError=function(e){var t;this.debug&&(t=console).error.apply(t,["[SSE] "+e].concat([].slice.call(arguments,1)))},n.debugWarn=function(e){var t;this.debug&&(t=console).warn.apply(t,["[SSE] "+e].concat([].slice.call(arguments,1)))},n.removeAllEventListeners=function(){var e=this;this.eventSource&&(this._openHandler&&this.eventSource.removeEventListener("open",this._openHandler),this._errorHandler&&this.eventSource.removeEventListener("error",this._errorHandler),this._messageHandler&&this.eventSource.removeEventListener("message",this._messageHandler),this.handlers.forEach(function(t,n){var o=e._customHandlers.get(n);o&&e.eventSource&&e.eventSource.removeEventListener(n,o)}))},n.subscribe=function(e,t){var n=this;this.handlers.set(e,t);var o=function(e){try{var o=JSON.parse(e.data);t(o)}catch(e){n.debugError("Error parsing message data:",e)}};this._customHandlers.set(e,o),this.eventSource?this.eventSource.addEventListener(e,o):this.connect()},n.connect=function(){var t=this;return this.connected&&this.eventSource?Promise.reject(new Error("SSE is already connected!")):new Promise(function(n,o){try{t.eventSource=new e(t.url,{heartbeatTimeout:36e5,withCredentials:!1,headers:{Authorization:"Bearer "+t.token}}),t._openHandler=function(e){t.debugLog("SSE connection established"),t.connected=!0,t.onConnectionChangeCallback&&t.onConnectionChangeCallback(!0),t.reconnectAttempts>0&&t.onReconnectSuccessCallback&&t.onReconnectSuccessCallback(),t.reconnectAttempts=0,t.reconnectTimeout=5e3,n("SSE connect successful!")},t._errorHandler=function(e){t.debugError("SSE connection error:",e),t.connected=!1,t.onConnectionChangeCallback&&t.onConnectionChangeCallback(!1),401===e.status||e.statusText&&e.statusText.includes("Unauthorized")?(t.cleanup(),t.connectTimeoutRef&&(clearTimeout(t.connectTimeoutRef),t.connectTimeoutRef=null),t.notifyConnectionClosed(!0)):t.handleReconnect(),t.connected||o(new Error("SSE connect error"))},t._messageHandler=function(e){try{t.debugLog("SSE received message:",e.data);var n=JSON.parse(e.data);t.onMessageCallback&&t.onMessageCallback(n)}catch(e){t.debugError("Error parsing message:",e)}},t.eventSource.addEventListener("open",t._openHandler),t.eventSource.addEventListener("error",t._errorHandler),t.eventSource.addEventListener("message",t._messageHandler),t.handlers.forEach(function(e,n){var o=t._customHandlers.get(n);o&&t.eventSource&&t.eventSource.addEventListener(n,o)}),t.connectTimeoutRef=setTimeout(function(){t.connected||(o(new Error("Connection timeout")),t.handleReconnect())},t.connectTimeout);var r=t._openHandler;t._openHandler=function(e){clearTimeout(t.connectTimeoutRef),r(e)}}catch(e){t.debugError("Failed to create EventSource:",e),t.handleReconnect(),o(e)}})},n.notifyConnectionClosed=function(e){void 0===e&&(e=!1),this.onConnectionClosedCallback&&this.onConnectionClosedCallback(e),e?this.debugWarn("SSE connection closed due to authentication error"):this.debugLog("SSE connection closed")},n.handleReconnect=function(){var e=this;if(this.isDestroyed)this.debugLog("SSE is destroyed, skipping reconnection");else if(null===this.reconnectTimer){if(this.reconnectAttempts>=this.maxReconnectAttempts)return this.debugError("Max reconnection attempts reached"),this.destroySse(),void(this.onMaxRetriesReachedCallback&&this.onMaxRetriesReachedCallback());this.debugLog("Attempting to reconnect in "+this.reconnectTimeout/1e3+" seconds..."),this.cleanup(),this.reconnectTimer=window.setTimeout(function(){e.reconnectAttempts++,e.reconnectTimeout=Math.min(2*e.reconnectTimeout,6e4),e.reconnectTimer=null,e.connect().catch(function(){})},this.reconnectTimeout)}},n.cleanup=function(){this.eventSource&&(this.removeAllEventListeners(),this.eventSource.close(),this.eventSource=null),this.connected=!1},n.unsubscribe=function(){this.cleanup(),this.handlers.clear(),this._customHandlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},n.destroySse=function(){this.unsubscribe(),this.isDestroyed=!0,this.notifyConnectionClosed()},n.close=function(){this.destroySse(),this.debugLog("SSE 连接已关闭")},n.isConnected=function(){return this.connected},n.send=function(e){var t="当前协议不可用:SSE 是单向通信协议,不支持客户端向服务器发送消息";throw this.debugError(t),new Error(t)},t}(),T=/*#__PURE__*/function(){function e(e){this.url=void 0,this.token=void 0,this.websocket=null,this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectTimeout=2e3*Math.random()+3e3,this.connectTimeout=1e4,this.reconnectTimer=null,this.handlers=new Map,this.connected=!1,this.onMessageCallback=void 0,this.onReconnectSuccessCallback=void 0,this.onConnectionClosedCallback=void 0,this.onMaxRetriesReachedCallback=void 0,this.onConnectionChangeCallback=void 0,this.connectTimeoutRef=null,this.isDestroyed=!1,this.debug=!1,this.url=e.url,this.token=e.token,this.connectTimeout=e.connectTimeout||1e4,this.reconnectTimeout=e.retryInterval||2e3*Math.random()+3e3,this.maxReconnectAttempts=e.maxRetries||5,this.debug=e.debug||!1,this.onMessageCallback=e.onMessage,this.onReconnectSuccessCallback=e.onReconnectSuccess,this.onConnectionClosedCallback=e.onConnectionClosed,this.onMaxRetriesReachedCallback=e.onMaxRetriesReached,this.onConnectionChangeCallback=e.onConnectionChange}var t=e.prototype;return t.debugLog=function(e){var t;this.debug&&(t=console).log.apply(t,["[WebSocket] "+e].concat([].slice.call(arguments,1)))},t.debugError=function(e){var t;this.debug&&(t=console).error.apply(t,["[WebSocket] "+e].concat([].slice.call(arguments,1)))},t.debugWarn=function(e){var t;this.debug&&(t=console).warn.apply(t,["[WebSocket] "+e].concat([].slice.call(arguments,1)))},t.subscribe=function(e,t){this.handlers.set(e,t),this.websocket?this.addMessageHandler(e,t):this.connect()},t.addMessageHandler=function(e,t){var n=this;this.websocket&&this.websocket.addEventListener("message",function(o){try{var r=JSON.parse(o.data);r.type===e&&t(r)}catch(e){n.debugError("Error parsing WebSocket message data:",e)}})},t.connect=function(){var e=this;return this.connected&&this.websocket?Promise.reject(new Error("WebSocket is already connected!")):new Promise(function(t,n){try{var o=new URL(e.url);o.searchParams.set("token",e.token),e.websocket=new WebSocket(o.toString()),e.connectTimeoutRef=setTimeout(function(){e.connected||(n(new Error("WebSocket connection timeout")),e.handleReconnect())},e.connectTimeout),e.websocket.onopen=function(n){e.debugLog("WebSocket connection established"),e.connected=!0,clearTimeout(e.connectTimeoutRef),e.onConnectionChangeCallback&&e.onConnectionChangeCallback(!0),e.reconnectAttempts>0&&e.onReconnectSuccessCallback&&e.onReconnectSuccessCallback(),e.reconnectAttempts=0,e.reconnectTimeout=5e3,t("WebSocket connect successful!")},e.websocket.onerror=function(t){e.debugError("WebSocket connection error:",t),e.connected=!1,clearTimeout(e.connectTimeoutRef),e.onConnectionChangeCallback&&e.onConnectionChangeCallback(!1),e.handleReconnect(),e.connected||n(new Error("WebSocket connect error"))},e.websocket.onclose=function(t){e.debugLog("WebSocket connection closed:",t.code,t.reason),e.connected=!1,e.onConnectionChangeCallback&&e.onConnectionChangeCallback(!1),1002===t.code||1003===t.code||t.reason&&t.reason.includes("Unauthorized")?(e.cleanup(),e.notifyConnectionClosed(!0)):e.handleReconnect()},e.websocket.onmessage=function(t){try{e.debugLog("WebSocket received message:",t.data);var n=JSON.parse(t.data);if("pong"===n.type||2===n.ev)return void(e.connected=!0);e.onMessageCallback&&e.onMessageCallback(n)}catch(t){e.debugError("Error parsing WebSocket message:",t)}},e.handlers.forEach(function(t,n){e.addMessageHandler(n,t)})}catch(t){e.debugError("Failed to create WebSocket:",t),e.handleReconnect(),n(t)}})},t.notifyConnectionClosed=function(e){void 0===e&&(e=!1),this.onConnectionClosedCallback&&this.onConnectionClosedCallback(e),e?this.debugWarn("WebSocket connection closed due to authentication error"):this.debugLog("WebSocket connection closed")},t.handleReconnect=function(){var e=this;if(this.isDestroyed)this.debugLog("WebSocket is destroyed, skipping reconnection");else if(null===this.reconnectTimer){if(this.reconnectAttempts>=this.maxReconnectAttempts)return this.debugError("Max reconnection attempts reached"),this.destroyWebSocket(),void(this.onMaxRetriesReachedCallback&&this.onMaxRetriesReachedCallback());this.debugLog("Attempting to reconnect in "+this.reconnectTimeout/1e3+" seconds..."),this.cleanup(),this.reconnectTimer=window.setTimeout(function(){e.reconnectAttempts++,e.reconnectTimeout=Math.min(2*e.reconnectTimeout,6e4),e.reconnectTimer=null,e.connect().catch(function(){})},this.reconnectTimeout)}},t.cleanup=function(){this.websocket&&(this.websocket.close(),this.websocket=null),this.connected=!1},t.unsubscribe=function(){this.cleanup(),this.handlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},t.destroyWebSocket=function(){this.unsubscribe(),this.isDestroyed=!0,this.notifyConnectionClosed()},t.close=function(){this.destroyWebSocket(),this.debugLog("WebSocket 连接已关闭")},t.isConnected=function(){var e;return this.connected&&(null==(e=this.websocket)?void 0:e.readyState)===WebSocket.OPEN},t.send=function(e){if(!this.websocket||!this.isConnected())return this.debugWarn("WebSocket is not connected, cannot send message"),!1;try{if("string"==typeof e)this.websocket.send(e),this.debugLog("WebSocket message sent (string):",e);else if(e instanceof ArrayBuffer||e instanceof Blob)this.websocket.send(e),this.debugLog("WebSocket message sent (binary):","ArrayBuffer/Blob ("+(e instanceof ArrayBuffer?e.byteLength:e.size)+" bytes)");else if(e instanceof Uint8Array||e instanceof Int8Array||e instanceof Uint16Array||e instanceof Int16Array||e instanceof Uint32Array||e instanceof Int32Array||e instanceof Float32Array||e instanceof Float64Array||e instanceof DataView)this.websocket.send(e),this.debugLog("WebSocket message sent (binary):","ArrayBufferView ("+e.byteLength+" bytes)");else{var t=JSON.stringify(e);this.websocket.send(t),this.debugLog("WebSocket message sent (JSON):",t)}return!0}catch(e){return this.debugError("Failed to send WebSocket message:",e),!1}},e}(),y=["protocol"],G=/*#__PURE__*/function(){function e(){}return e.createClient=function(e){var t=e.protocol,n=function(e,t){if(null==e)return{};var n={};for(var o in e)if({}.hasOwnProperty.call(e,o)){if(-1!==t.indexOf(o))continue;n[o]=e[o]}return n}(e,y);switch(t){case f.SSE:return new O(n);case f.WEBSOCKET:return new T(n);default:throw new Error("Unsupported connection protocol: "+t)}},e}(),k=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.login=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:u.Login,method:"POST"}))}catch(e){return Promise.reject(e)}},t.logout=function(){try{return Promise.resolve(this.sdk.sendRequest({data:{},url:u.Logout,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),R=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.sendMessage=function(e,t){try{var n=this;return Promise.resolve(function(o,r){try{var s=Promise.resolve(n.sdk.sendRequest({data:e,url:t,method:"POST"}))}catch(e){return r(e)}return s&&s.then?s.then(void 0,r):s}(0,function(e){throw console.error("Failed to send message",e),e}))}catch(e){return Promise.reject(e)}},t.getMessageApi=function(e,t){return t===l.PrivateChat?u.PushPrivateMessage:t===l.LiveGroup?u.PushLiveMessage:null!=e&&e.receiverName?u.PushMessageToMember:u.CreateTextMessage},t.createMessage=function(e,t,n,r,s){void 0===r&&(r={});var i={groupType:n};n===l.PublicGroup||n===l.PrivateGroup||n===l.LiveGroup?i.groupId=t:i.receiverName=t;var a=o({},i,r,{msgType:e},s);return this.sendMessage(a,this.getMessageApi(i,n))},t.createTextMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(g.TEXT,t,n,o,{text:e}))}catch(e){return Promise.reject(e)}},t.createImageMessage=function(e,t,n,o,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(g.IMAGE,n,o,r,{link:e,snapshot:t}))}catch(e){return Promise.reject(e)}},t.createFileMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(g.FILE,t,n,o,{link:e}))}catch(e){return Promise.reject(e)}},t.createAudioMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(g.AUDIO,t,n,o,{link:e}))}catch(e){return Promise.reject(e)}},t.createVideoMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(g.VIDEO,t,n,o,{link:e}))}catch(e){return Promise.reject(e)}},t.createLinkMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(g.LINK,t,n,o,{link:e}))}catch(e){return Promise.reject(e)}},t.createGifMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(g.GIF,t,n,o,{link:e}))}catch(e){return Promise.reject(e)}},t.createOptionMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(g.OPTION,t,n,o,{text:e}))}catch(e){return Promise.reject(e)}},t.createEmojiMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(g.EMOJI,t,n,o,{text:e}))}catch(e){return Promise.reject(e)}},t.createCustomMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(g.CUSTOM,t,n,o,{text:e}))}catch(e){return Promise.reject(e)}},t.getHistoryMessageList=function(e){var t=e.groupId,n=e.lastId,o=e.type,r=e.size,s=void 0===r?100:r;try{return Promise.resolve(this.sdk.sendRequest({url:u.GetHistoryMessageList,method:"POST",data:{groupId:t,lastId:n,type:o,size:s}}))}catch(e){return Promise.reject(e)}},t.getLiveMessageList=function(e){var t=e.groupId;try{var n;return Promise.resolve(this.sdk.sendRequest({data:{groupId:t},url:null!=(n=this.sdk.getConfig)&&n.anonLogin?u.GetAnonymousLiveMessageList:u.GetLiveMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},t.prePushCustomerMessage=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:u.PrePushCustomerMessage,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),A=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.getConversations=function(e){try{var t=this;return Promise.resolve(t.sdk.sendRequest({data:e,url:u.GetAllConversationList,method:"GET"})).then(function(e){return e.data.records=e.data.records.map(t.normalizeConversation),e})}catch(e){return Promise.reject(e)}},t.markConversationRead=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:u.MarkConversationMessageAsRead,method:"GET"}))}catch(e){return Promise.reject(e)}},t.markLastRead=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e,msgId:t},url:u.MarkConversationMessageAsRead,method:"GET"}))}catch(e){return Promise.reject(e)}},t.pinConversation=function(e,t){void 0===t&&(t=1);try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e,isTop:t},url:u.PinConversation,method:"GET"}))}catch(e){return Promise.reject(e)}},t.muteConversation=function(e,t){void 0===t&&(t=1);try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e,mute:t},url:u.MuteConversation,method:"GET"}))}catch(e){return Promise.reject(e)}},t.normalizeConversation=function(e){var t,n,r,s,i,a,c,u;return o({},e,{id:e.id,name:e.name||"",groupType:e.groupType||0,avatar:e.avatar||"",status:null!=(t=e.status)?t:1,latest:null!=(n=e.latest)?n:{},unreadCount:null!=(r=e.unreadCount)?r:0,draftText:null!=(s=e.draftText)?s:"",custom:null!=(i=e.custom)?i:"",groupMemberId:null!=(a=e.groupMemberId)?a:"",pin:null!=(c=e.pin)&&c,supportId:e.supportId||"",supportNick:e.supportNick||"",identity:null!=(u=e.identity)?u:1})},e}(),I=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.getGroupInfo=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:u.GetGroupInfo,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getGroupMember=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:u.GetGroupMember,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getGroupMembers=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:u.GetGroupMembers,method:"GET"}))}catch(e){return Promise.reject(e)}},t.joinGroup=function(e){try{var t;return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:null!=(t=this.sdk.getConfig)&&t.anonLogin?u.AnonymousJoinGroup:u.JoinGroup,method:"GET"}))}catch(e){return Promise.reject(e)}},t.leftGroup=function(e){try{var t;return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:null!=(t=this.sdk.getConfig)&&t.anonLogin?u.AnonymousLeftGroup:u.LeftGroup,method:"GET"}))}catch(e){return Promise.reject(e)}},t.checkGroupBlock=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:u.CheckGroupBlock,method:"GET"}))}catch(e){return Promise.reject(e)}},t.updateLatestMessage=function(e){try{var t=Object.fromEntries(e.entries());return Promise.resolve(this.sdk.sendRequest({data:{latestMessage:t},url:u.UpdateLatestMessage,method:"POST"}))}catch(e){return Promise.reject(e)}},t.getGroupLatestMessage=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groups:e},url:u.GetLatestGroupChats,method:"POST"}))}catch(e){return Promise.reject(e)}},t.checkGroupLatestMessage=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{ttl:e},url:u.CheckLatestMessages,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getMyGroupPermission=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:u.GetMyGroupPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getGroupPermission=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:u.GetGroupPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getGroupMemberPermission=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e,targetMemberId:t},url:u.GetGroupMemberPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},t.updateGroupPermission=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:u.UpdateGroupPermission,method:"POST"}))}catch(e){return Promise.reject(e)}},t.updateGroupMemberPermission=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:u.UpdateGroupMemberPermission,method:"POST"}))}catch(e){return Promise.reject(e)}},t.kickGroupMember=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:u.kickGroupMember,method:"POST"}))}catch(e){return Promise.reject(e)}},t.muteMembers=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:u.muteMembers,method:"POST"}))}catch(e){return Promise.reject(e)}},t.editGroupName=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:u.editeGroupName,method:"GET",data:{groupId:e,name:t}}))}catch(e){return Promise.reject(e)}},t.editNotification=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:u.editeNotification,method:"GET",data:{groupId:e,notification:t}}))}catch(e){return Promise.reject(e)}},t.editGroupCustomer=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:u.editeGroupCustomer,method:"GET",data:{groupId:e,customer:t}}))}catch(e){return Promise.reject(e)}},t.addAdmin=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:u.addAdmin,method:"GET",data:{groupId:e,username:t}}))}catch(e){return Promise.reject(e)}},t.deleteAdmin=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:u.deleteAdmin,method:"GET",data:{groupId:e,username:t}}))}catch(e){return Promise.reject(e)}},t.dissolveGroup=function(e){try{return Promise.resolve(this.sdk.sendRequest({url:u.DissolveGroup,method:"GET",data:{groupId:e}}))}catch(e){return Promise.reject(e)}},t.pin=function(e,t,n){try{return Promise.resolve(this.sdk.sendRequest({url:u.pin,method:"GET",data:{groupId:e,messageId:t,type:n}}))}catch(e){return Promise.reject(e)}},t.muteGroup=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:u.muteGroup,method:"GET",data:{groupId:e,type:t}}))}catch(e){return Promise.reject(e)}},t.muteMember=function(e,t,n){try{return Promise.resolve(this.sdk.sendRequest({url:u.muteMember,method:"GET",data:{groupId:e,username:t,type:n}}))}catch(e){return Promise.reject(e)}},t.addGroupMembers=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:u.AddGroupMembers,method:"POST"}))}catch(e){return Promise.reject(e)}},t.getFileByType=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:u.GetFileByType,method:"GET"}))}catch(e){return Promise.reject(e)}},t.pinChat=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e,type:t},url:u.PinChat,method:"GET"}))}catch(e){return Promise.reject(e)}},e}(),L=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.getContactByType=function(e,t){try{var n={contactType:e};return void 0!==t&&(n.groupId=t),Promise.resolve(this.sdk.sendRequest({data:n,url:u.GetContactByType,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getMemberContacts=function(e){try{return Promise.resolve(this.getContactByType(a.MEMBER,e))}catch(e){return Promise.reject(e)}},t.getColleagueContacts=function(e){try{return Promise.resolve(this.getContactByType(a.COLLEAGUE,e))}catch(e){return Promise.reject(e)}},t.getGroupContacts=function(e){try{return Promise.resolve(this.getContactByType(a.GROUP,e))}catch(e){return Promise.reject(e)}},t.editContactTag=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:u.EditContactTag,method:"POST"}))}catch(e){return Promise.reject(e)}},t.getContactTag=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{contactType:e},url:u.GetContactTag,method:"GET"}))}catch(e){return Promise.reject(e)}},t.allocationContactTag=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:u.AllocationContactTag,method:"POST"}))}catch(e){return Promise.reject(e)}},t.allocationMemberTag=function(e,t,n){void 0===n&&(n=0);try{return Promise.resolve(this.allocationContactTag({contactType:a.MEMBER,tag:e,groupIds:t,type:n}))}catch(e){return Promise.reject(e)}},t.allocationColleagueTag=function(e,t,n){void 0===n&&(n=0);try{return Promise.resolve(this.allocationContactTag({contactType:a.COLLEAGUE,tag:e,groupIds:t,type:n}))}catch(e){return Promise.reject(e)}},t.allocationGroupTag=function(e,t,n){void 0===n&&(n=0);try{return Promise.resolve(this.allocationContactTag({contactType:a.GROUP,tag:e,groupIds:t,type:n}))}catch(e){return Promise.reject(e)}},e}(),U=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.services={},this.sdk=e}var t=e.prototype;return t.get=function(e){return this.services[e]||(this.services[e]=this.createService(e)),this.services[e]},t.createService=function(e){switch(e){case i.USER:return new k(this.sdk);case i.MESSAGE:return new R(this.sdk);case i.CONVERSATION:return new A(this.sdk);case i.GROUP:return new I(this.sdk);case i.CONTACT:return new L(this.sdk);default:throw new Error("Unknown service: "+e)}},t.reset=function(){this.services={}},e}();function N(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}var _=[u.Logout,d.OnKickedOffline,d.OnUserTokenInvalid,d.OnUserTokenExpired],w=/*#__PURE__*/function(e){function t(t){var n;return void 0===t&&(t=!1),(n=e.call(this)||this).config={debug:!1,isLive:!1,useProtobuf:!1,protocol:f.SSE},n.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},n.cacheManager=void 0,n.connectionClient=void 0,n.serviceManager=void 0,n.lastUnauthorizedTime=0,n.UNAUTHORIZED_THROTTLE_MS=3e3,n.configure=function(e){void 0!==e.debug&&(n.config.debug=e.debug),e.isLive&&(n.config.isLive=e.isLive),e.apiAddr&&(n.config.apiAddr=e.apiAddr),e.wsAddr&&(n.config.wsAddr=e.wsAddr),e.ossApiAddr&&(n.config.ossApiAddr=e.ossApiAddr),e.appKey&&(n.config.appKey=e.appKey),e.token&&(n.config.token=e.token),e.connectTimeout&&(n.config.connectTimeout=e.connectTimeout),e.maxRetries&&(n.config.maxRetries=e.maxRetries),e.useProtobuf&&(n.config.useProtobuf=e.useProtobuf),e.protocol&&(n.config.protocol=e.protocol)},n.sendRequest=function(e){try{n.internalState.lastActivity=Date.now(),n.config.debug&&n.logRequest(e);var t=n.config.apiAddr+e.url,o=e.data;if("GET"===e.method&&o){var r=new URLSearchParams;Object.entries(o).forEach(function(e){var t=e[1];null!=t&&r.append(e[0],String(t))});var s=r.toString();s&&(t+=(t.includes("?")?"&":"?")+s),o=void 0}return Promise.resolve(N(function(){return Promise.resolve(function(e){try{var t,n=function(e){if(t)return e;throw new Error("Unsupported platform")},o=function(){if(C){var n=new Promise(function(t,n){uni.request({url:e.url,method:e.method||"GET",header:e.headers,data:e.data,success:function(e){401!==e.statusCode?t(e.data):n({status:401,message:"Unauthorized"})},fail:function(e){return n(e)}})});return t=1,n}return function(){if(M)return Promise.resolve(fetch(e.url,{method:e.method||"GET",headers:e.headers,body:e.data?JSON.stringify(e.data):null})).then(function(e){if(401===e.status)throw{status:401,message:"Unauthorized"};return Promise.resolve(e.json()).then(function(e){return t=1,e})})}()}();return Promise.resolve(o&&o.then?o.then(n):n(o))}catch(e){return Promise.reject(e)}}({url:t,method:e.method,headers:{"Content-Type":"application/json",Authorization:n.config.token?"Bearer "+n.config.token:""},data:o}))},function(e){throw 401!==(null==e?void 0:e.status)&&401!==(null==e?void 0:e.statusCode)||n.handleUnauthorizedWithThrottle(t),e}))}catch(e){return Promise.reject(e)}},n.handleUnauthorizedWithThrottle=function(e){var t=Date.now();t-n.lastUnauthorizedTime<n.UNAUTHORIZED_THROTTLE_MS?console.warn("401错误被节流限制,跳过处理:"+e):(n.lastUnauthorizedTime=t,n.handleUnauthorized(e))},n.handleUnauthorized=function(e){console.warn("未授权请求(401):",e),n.handleConnectionClosed(!0)},n.createRequestFunction=function(e,t){return function(o){return n.sendRequest({data:o,url:e,method:t})}},n.createRequestFunctionWithoutParams=function(e,t){return function(){return n.sendRequest({data:void 0,method:t,url:e})}},n.handleMessage=function(e){n.config.debug&&console.log("[SDK] handleMessage response",e),n.isProtobufFormat(e)?n.handleProtobufMessage(e):n.handleJsonMessage(e)},n.handleJsonMessage=function(e){switch(n.config.debug&&console.log("handleMessage response",e),e.ev){case h.EVENT_MESSAGE_PUSH:var t=e.dt;Array.isArray(t)?(t.forEach(function(e){n.updateMessageCache(e)}),n.emit(d.OnReceiveMessages,t)):console.warn("[SDK] Expected response.dt to be an array, but got:",t);break;case h.EVENT_PONG_IDLE:n.internalState.isConnected=!0;break;case h.EVENT_SYSTEM_MESSAGE_PUSH:n.emit(d.OnReceiveSystemMessage,e.dt);break;case h.EVENT_PRE_MESSAGE_PUSH:n.emit(d.OnReceivePreMessage,e.dt);break;case h.EVENT_SUBSCRIBE_MESSAGE_PUSH:n.emit(d.OnReceiveSubscribeMessage,e.dt);break;default:o=e.ev,Object.values(d).includes(o)?(n.emit(e.ev,e.dt),_.includes(e.ev)&&(n.internalState.isLoggedIn=!1,n.internalState.isConnected=!1,n.connectionClient&&(n.connectionClient.close(),n.connectionClient=void 0))):n.config.debug&&console.warn("[SDK] Unknown SSE event type:",e.ev)}var o},n.handleReconnectSuccess=function(){n.config.username&&(n.internalState.isConnected=!0,n.internalState.reconnectAttempts=0,n.config.debug&&console.log("SSE reconnection successful"),n.emit(d.OnReconnected))},n.handleConnectionClosed=function(e){n.internalState.isConnected=!1,n.config.debug&&console.log("SSE connection closed"),n.emit(d.OnDisconnected,e)},n.handleMaxRetriesReached=function(){n.config.debug&&console.log("SSE connection max reconnection attempts reached"),n.emit(d.onMaxRetriesReached)},n.handleConnectionChange=function(e){n.config.debug&&console.log("Connection status changed:",e),n.emit(e?d.OnConnected:d.OnDisconnected)},n.login=function(e){try{var t,r,s=function(o){return t?o:(n.connectionClient=G.createClient({url:n.config.wsAddr+"/"+(e.anonLogin?"anonymousConn":"conn")+"?username="+e.username+"&token="+e.token+"&appKey="+n.config.appKey+"&random="+r,protocol:n.config.protocol||f.SSE,debug:n.config.debug,onMessage:n.handleMessage,onReconnectSuccess:n.handleReconnectSuccess,onConnectionClosed:n.handleConnectionClosed,onMaxRetriesReached:n.handleMaxRetriesReached,onConnectionChange:n.handleConnectionChange,token:e.token,connectTimeout:n.config.connectTimeout,maxRetries:n.config.maxRetries}),N(function(){return Promise.resolve(n.connectionClient.connect()).then(function(e){return n.internalState.isLoggedIn=!0,n.internalState.isConnected=!0,n.config.isLive||n.initializeConversationCache(),e})},function(e){return n.internalState.isLoggedIn=!1,n.internalState.isConnected=!1,Promise.reject(e.message)}))};if(n.connectionClient&&(null==n.connectionClient.close||n.connectionClient.close(),n.connectionClient=void 0,n.internalState.isLoggedIn=!1,n.internalState.isConnected=!1),!n.config.apiAddr)return Promise.reject("No apiAddr configured. Please call configure() before login().");if(!n.config.ossApiAddr)return Promise.reject("No ossApiAddr configured. Please call configure() before login().");if(!n.config.appKey)return Promise.reject("No appKey configured. Please call configure() before login().");if(!n.config.token)return Promise.reject("No token configured. Please call configure() before login().");if(n.config.username=e.username,n.config.anonLogin=e.anonLogin||!1,e.protocol&&(n.config.protocol=e.protocol),e.protocol==f.WEBSOCKET&&!n.config.wsAddr)return Promise.reject("WebSocket address (wsAddr) is not configured. Please call configure() before login().");if(n.config.debug&&(console.log("login params",e),console.log("apiAddr",n.config.apiAddr)),!n.config.isLive||!e.anonLogin){n.cacheManager.initialize(e.username),n.cacheManager.resetActiveConversation();var i=n.cacheManager.getConversations();i.length>0&&n.emit(d.OnConversationListUpdated,i)}var a=function(){if(!e.anonLogin)return Promise.resolve(n.user.login(o({},e,{appKey:n.config.appKey}))).then(function(e){var n=e.code,o=e.data;if(0!=n){var s=Promise.resolve("Login failed, Server error, error code is "+n);return t=1,s}r=o})}();return Promise.resolve(a&&a.then?a.then(s):s(a))}catch(e){return Promise.reject(e)}},n.logout=function(){try{return n.connectionClient&&(n.connectionClient.close(),n.connectionClient=void 0),Promise.resolve(n.user.logout()).then(function(e){return n.internalState.isLoggedIn=!1,n.internalState.isConnected=!1,n.config.username=void 0,n.config.token=void 0,n.cacheManager.clear(),e})}catch(e){return Promise.reject(e)}},n.getConversations=function(e){try{return Promise.resolve(N(function(){var t=e.pageNo||1,o=e.pageSize||50;return t<1?(console.warn("[SDK] Invalid pageNo, must be >= 1"),!1):o<1||o>100?(console.warn("[SDK] Invalid pageSize, must be between 1 and 100"),!1):Promise.resolve(n.conversation.getConversations({pageNo:t,pageSize:o})).then(function(e){var o=e.data;if(0===e.code&&o){var r=n.cacheManager.getConversations();if(1===t)n.cacheManager.setConversations([].concat(o.records),!0);else{var s=o.records||[],i=new Map;r.forEach(function(e){i.set(e.id,e)});var a=[],c=[];s.forEach(function(e){i.has(e.id)?a.push(e):c.push(e)});var u=[];r.forEach(function(e){a.find(function(t){return t.id===e.id})||u.push(e)}),u.push.apply(u,a.concat(c)),n.cacheManager.setConversations(u,!1)}n.emit(d.OnConversationListUpdated,n.cacheManager.getConversations())}else{var l=n.cacheManager.getConversations();l.length>0&&n.emit(d.OnConversationListUpdated,l)}return!0})},function(e){console.error("[SDK] Failed to get conversations:",e);var t=n.cacheManager.getConversations();return t.length>0&&n.emit(d.OnConversationListUpdated,t),!1}))}catch(e){return Promise.reject(e)}},n.internalUploadFile=function(e,t){try{return Promise.resolve(N(function(){var o=new FormData;return o.append("file",e),o.append("filename",e.name),o.append("groupId",t.toString()),Promise.resolve(fetch(""+n.config.ossApiAddr+u.UploadFile,{method:"POST",headers:{Authorization:n.config.token?"Bearer "+n.config.token:""},body:o})).then(function(e){if(!e.ok)throw new Error("Upload failed with status: "+e.status);return Promise.resolve(e.json()).then(function(e){var t=(null==e?void 0:e.data)||{};return{originalUrl:t.originalUrl||"",thumbnailUrl:t.thumbnailUrl||""}})})},function(e){return console.error("[Upload Error]",e),{error:e instanceof Error?e:new Error("Unknown upload error")}}))}catch(e){return Promise.reject(e)}},n.uploadFile=function(e,t){var o=e.file;try{return Promise.resolve(n.internalUploadFile(o,t)).then(function(e){var t,n=e.originalUrl,o=e.thumbnailUrl,r=e.error;return{data:{originalUrl:void 0===n?"":n,thumbnailUrl:void 0===o?"":o},msg:null!=(t=null==r?void 0:r.message)?t:"",code:r?c.UnknownError:0}})}catch(e){return Promise.reject(e)}},n.sendTextMessage=function(e,t,o,r){return n.message.createTextMessage(e,t,o,r)},n.sendImageMessage=function(e,t,o,r,s){return n.message.createImageMessage(e,t,o,r,s)},n.sendFileMessage=function(e,t,o,r){return n.message.createFileMessage(e,t,o,r)},n.sendAudioMessage=function(e,t,o,r){return n.message.createAudioMessage(e,t,o,r)},n.sendVideoMessage=function(e,t,o,r){return n.message.createVideoMessage(e,t,o,r)},n.sendLinkMessage=function(e,t,o,r){return n.message.createLinkMessage(e,t,o,r)},n.sendGifMessage=function(e,t,o,r){return n.message.createGifMessage(e,t,o,r)},n.sendOptionMessage=function(e,t,o,r){return n.message.createOptionMessage(e,t,o,r)},n.sendEmojiMessage=function(e,t,o,r){return n.message.createEmojiMessage(e,t,o,r)},n.sendCustomMessage=function(e,t,o,r){return n.message.createCustomMessage(e,t,o,r)},n.getHistoryMessageList=function(e){return e.groupId&&n.cacheManager.markConversationAsActive(e.groupId),n.message.getHistoryMessageList(e)},n.getLiveMessageList=function(e){return n.message.getLiveMessageList(e)},n.prePushCustomerMessage=function(e){return n.message.prePushCustomerMessage(e)},n.getGroupInfo=function(e){return n.group.getGroupInfo(e)},n.getGroupMembers=function(e){return n.group.getGroupMembers(e)},n.joinGroup=function(e){return n.group.joinGroup(e)},n.leftGroup=function(e){return n.group.leftGroup(e)},n.checkGroupBlock=function(e){return n.group.checkGroupBlock(e)},n.getMyGroupPermission=function(e){return n.group.getMyGroupPermission(e)},n.getGroupPermission=function(e){return n.group.getGroupPermission(e)},n.getGroupMember=function(e){return n.group.getGroupMember(e)},n.getGroupMemberPermission=function(e,t){return n.group.getGroupMemberPermission(e,t)},n.updateGroupPermission=function(e){return n.group.updateGroupPermission(e)},n.kickGroupMember=function(e){return n.group.kickGroupMember(e)},n.muteMembers=function(e){return n.group.muteMembers(e)},n.updateGroupMemberPermission=function(e){return n.group.updateGroupMemberPermission(e)},n.editGroupName=function(e,t){return n.group.editGroupName(e,t)},n.editNotification=function(e,t){return n.group.editNotification(e,t)},n.editGroupCustomer=function(e,t){return n.group.editGroupCustomer(e,t)},n.addAdmin=function(e,t){return n.group.addAdmin(e,t)},n.deleteAdmin=function(e,t){return n.group.deleteAdmin(e,t)},n.pin=function(e,t,o){return n.group.pin(e,t,o)},n.muteGroup=function(e,t){return n.group.muteGroup(e,t)},n.muteMember=function(e,t,o){return n.group.muteMember(e,t,o)},n.addGroupMembers=function(e){return n.group.addGroupMembers(e)},n.getFileByType=function(e){return n.group.getFileByType(e)},n.pinChat=function(e,t){return n.group.pinChat(e,t)},n.dissolveGroup=function(e){return n.group.dissolveGroup(e)},n.markConversationRead=function(e){return n.conversation.markConversationRead(e)},n.markLastRead=function(e,t){return n.conversation.markLastRead(e,t)},n.pinConversation=function(e,t){void 0===t&&(t=1);try{return Promise.resolve(n.conversation.pinConversation(e,t)).then(function(o){if(0===o.code){n.cacheManager.updateConversationPinStatus(e,1===t);var r=n.cacheManager.getConversations();n.emit(d.OnConversationListUpdated,r)}return o})}catch(e){return Promise.reject(e)}},n.muteConversation=function(e,t){return void 0===t&&(t=1),n.conversation.muteConversation(e,t)},n.clearConversationUnread=function(e){n.cacheManager.clearConversationUnread(e);var t=n.cacheManager.getConversations();n.emit(d.OnConversationListUpdated,t)},n.clearAllConversationUnread=function(){n.cacheManager.clearAllConversationUnread();var e=n.cacheManager.getConversations();n.emit(d.OnConversationListUpdated,e)},n.getContactByType=function(e,t){return n.contact.getContactByType(e,t)},n.getMemberContacts=function(e){return n.contact.getMemberContacts(e)},n.getColleagueContacts=function(e){return n.contact.getColleagueContacts(e)},n.getGroupContacts=function(e){return n.contact.getGroupContacts(e)},n.editContactTag=function(e){return n.contact.editContactTag(e)},n.getContactTag=function(e){return n.contact.getContactTag(e)},n.allocationContactTag=function(e){return n.contact.allocationContactTag(e)},n.allocationMemberTag=function(e,t,o){return void 0===o&&(o=0),n.contact.allocationMemberTag(e,t,o)},n.allocationColleagueTag=function(e,t,o){return void 0===o&&(o=0),n.contact.allocationColleagueTag(e,t,o)},n.allocationGroupTag=function(e,t,o){return void 0===o&&(o=0),n.contact.allocationGroupTag(e,t,o)},n.config.debug=t,t&&(console.log("🚀 SIM SDK Web v1.1.0 (本地开发版本)"),console.log("📦 支持协议: SSE, WebSocket")),n.cacheManager=new P({persistEnabled:!0,debug:t}),n.serviceManager=new U(n),n}var n,a;a=e,(n=t).prototype=Object.create(a.prototype),n.prototype.constructor=n,r(n,a);var l,g,m=t.prototype;return m.destroy=function(){this.connectionClient&&(this.connectionClient.close(),this.connectionClient=void 0),this.cacheManager.destroy(),this.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},this.config.debug&&console.log("[SDK] Resources destroyed")},m.getService=function(e){return this.serviceManager.get(e)},m.isConnected=function(){return this.config.debug&&console.log("[SDK] Connection status: "+(this.internalState.isConnected?"connected":"disconnected")),this.internalState.isConnected},m.isLoggedIn=function(){return this.config.debug&&console.log("[SDK] Login status: "+(this.internalState.isLoggedIn?"logged in":"not logged in")),this.internalState.isLoggedIn},m.logRequest=function(e){var t=Math.random().toString(36).substring(2,8),n={GET:"#4CAF50",POST:"#2196F3",PUT:"#FF9800",DELETE:"#F44336"}[e.method]||"#9C27B0",o={GET:"🔍",POST:"📝",PUT:"🔄",DELETE:"🗑️"}[e.method]||"📡";console.log("%c "+(new Date).toISOString().substring(11,19)+" %c SDK %c "+o+" "+e.method+" %c "+e.url+" %c #"+t,"color: #888; font-size: 11px; padding: 2px 0;","background: #7CAEFF; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","background: "+n+"; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","color: #0066cc; font-weight: bold;","color: #888; font-style: italic;"),e.data&&Object.keys(e.data).length>0&&(console.log("%c─── 📦 Request Payload ───────────────────────────────","color: #999; font-style: italic;"),console.log("%c%s","color: #333; background: #f8f8f8; padding: 8px; border-radius: 4px; border-left: 4px solid #7CAEFF; font-family: monospace; line-height: 1.5;",JSON.stringify(e.data,null,2)),console.log("%c─────────────────────────────────────────────────────","color: #999;"))},m.handlePongMessage=function(e){e&&e.timestamp&&(this.config.debug&&console.log("[SDK] Received pong message with timestamp:",e.timestamp),this.internalState.isConnected=!0,this.internalState.lastActivity=Date.now())},m.isProtobufFormat=function(e){return this.config.useProtobuf||"string"==typeof e&&this.isBase64String(e)||e instanceof Uint8Array},m.isBase64String=function(e){try{return btoa(atob(e))===e}catch(e){return!1}},m.handleProtobufMessage=function(e){this.emit(d.OnReceiveProtoMessage,e)},m.initializeConversationCache=function(){try{var e=this,t=N(function(){return Promise.resolve(e.conversation.getConversations({pageNo:1,pageSize:50})).then(function(t){var n=t.code,o=t.data;if(e.config.debug&&console.log("[SDK] Initialize conversation cache:",n,o),0===n&&o&&o.records){e.cacheManager.setConversations(o.records,!0);var r=e.cacheManager.getConversations();e.emit(d.OnConversationListUpdated,r),e.config.debug&&console.log("[SDK] Conversation cache initialized with",o.records.length,"conversations")}})},function(e){console.error("[SDK] Failed to initialize conversation cache:",e)});return Promise.resolve(t&&t.then?t.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},m.onMessage=function(e){var t=this;return this.on(d.OnReceiveMessage,e),function(){return t.off(d.OnReceiveMessage,e)}},m.onMessages=function(e){var t=this;return this.on(d.OnReceiveMessages,e),function(){return t.off(d.OnReceiveMessages,e)}},m.onConnectionChange=function(e){var t=this,n=function(){return e(!0)},o=function(){return e(!1)};return this.on(d.OnConnected,n),this.on(d.OnDisconnected,o),function(){t.off(d.OnConnected,n),t.off(d.OnDisconnected,o)}},m.onKickedOffline=function(e){var t=this;return this.on(d.OnKickedOffline,e),function(){return t.off(d.OnKickedOffline,e)}},m.updateMessageCache=function(e){if(e.groupId&&this.cacheManager.addGroupMessage(e),this.cacheManager.updateConversationWithMessage(e,this.config.username)){var t=this.cacheManager.getConversations();this.emit(d.OnConversationListUpdated,t)}},m.getCachedGroupMessages=function(e){return this.cacheManager.getGroupMessages(e)},l=t,(g=[{key:"message",get:function(){return this.getService(i.MESSAGE)}},{key:"conversation",get:function(){return this.getService(i.CONVERSATION)}},{key:"group",get:function(){return this.getService(i.GROUP)}},{key:"user",get:function(){return this.getService(i.USER)}},{key:"contact",get:function(){return this.getService(i.CONTACT)}},{key:"username",get:function(){return this.config.username}},{key:"getConfig",get:function(){return this.config}},{key:"getConnectionClient",get:function(){return this.connectionClient}},{key:"uuid",get:function(){return(36*Math.random()).toString(36).slice(2)+(new Date).getTime().toString()}}])&&function(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,s(o.key),o)}}(l.prototype,g),Object.defineProperty(l,"prototype",{writable:!1}),l}(v);export{d as CbEvents,f as ConnectionProtocol,a as ContactType,c as ErrorCode,m as GroupMemberEventType,l as GroupType,g as MessageType,u as RequestApi,w as SIMSDK,i as ServiceName,h as SseEventType,p as SystemMessageType};
1
+ import{EventSourcePolyfill as e}from"event-source-polyfill";function t(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n<t;n++)o[n]=e[n];return o}function n(e,n){var o="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(o)return(o=o.call(e)).next.bind(o);if(Array.isArray(e)||(o=function(e,n){if(e){if("string"==typeof e)return t(e,n);var o={}.toString.call(e).slice(8,-1);return"Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o?Array.from(e):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?t(e,n):void 0}}(e))||n&&e&&"number"==typeof e.length){o&&(e=o);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)({}).hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},o.apply(null,arguments)}function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function s(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}var i,a,c,u,d;!function(e){e.MESSAGE="message",e.CONVERSATION="conversation",e.GROUP="group",e.USER="user",e.CONTACT="contact"}(i||(i={})),function(e){e[e.MEMBER=0]="MEMBER",e[e.COLLEAGUE=1]="COLLEAGUE",e[e.GROUP=2]="GROUP"}(a||(a={})),function(e){e[e.UnknownError=10005]="UnknownError"}(c||(c={})),function(e){e.Login="/chat/member/login",e.Logout="/chat/member/logout",e.GetChatMember="/chat/member/getChatMember",e.GetGroupInfo="/chat/group/groupInfo",e.GetGroupMembers="/chat/group/groupMembers",e.JoinGroup="/chat/group/joinGroup",e.LeftGroup="/chat/group/leftGroup",e.AnonymousJoinGroup="/chat/group/anonymousJoinGroup",e.AnonymousLeftGroup="/chat/group/anonymousLeftGroup",e.CheckGroupBlock="/chat/group/checkBlock",e.GetMyGroupPermission="/chat/group/permission/getPermission",e.GetGroupPermission="/chat/group/permission/groupPermission",e.GetGroupMember="/chat/group/groupMember",e.GetGroupMemberPermission="/chat/group/permission/groupMemberPermission",e.UpdateGroupPermission="/chat/group/permission/updateGroupPermission",e.UpdateGroupMemberPermission="/chat/group/permission/updateGroupMemberPermission",e.editeGroupName="/chat/group/operation/editeGroupName",e.editeNotification="/chat/group/operation/editeNotification",e.editeGroupCustomer="/chat/group/operation/editeGroupCustomer",e.addAdmin="/chat/group/operation/addAdmin",e.deleteAdmin="/chat/group/operation/deleteAdmin",e.pin="/chat/group/operation/pin",e.muteGroup="/chat/group/operation/muteGroup",e.muteMember="/chat/group/operation/muteMember",e.kickGroupMember="/chat/group/operation/kickGroupMember",e.muteMembers="/chat/group/operation/muteMembers",e.DissolveGroup="/chat/group/dissolve",e.GetAllConversationList="/chat/conversation/conversationList",e.MarkConversationMessageAsRead="/chat/conversation/lastRead",e.PinConversation="/chat/conversation/pinChat",e.MuteConversation="/chat/conversation/mute",e.UpdateLatestMessage="/chat/group/updateLatestMessage",e.GetLatestGroupChats="/chat/group/latestGroupChats",e.CheckLatestMessages="/chat/group/checkLatestMessages",e.CreateTextMessage="/chat/message/push",e.PushMessageToMember="/chat/message/push2Member",e.PushPrivateMessage="/chat/message/pushPrivateMessage",e.PushLiveMessage="/chat/message/liveGroupPush",e.GetHistoryMessageList="/chat/message/pull",e.GetLiveMessageList="/chat/message/liveGroupPull",e.GetAnonymousLiveMessageList="/chat/message/anonymousLiveGroupPull",e.PrePushCustomerMessage="/chat/message/prePushCustomerMessage",e.UploadFile="/chat/img/upload",e.GetContactByType="/chat/contact/contactByType",e.EditContactTag="/chat/contact/editeContactTag",e.GetContactTag="/chat/contact/getContactTag",e.AllocationContactTag="/chat/contact/allocationContactTag",e.AddGroupMembers="/chat/group/operation/addGroupMembers",e.GetFileByType="/chat/message/getFileByType",e.PinChat="/chat/member/pinChat"}(u||(u={})),function(e){e.OnConnected="OnConnected",e.OnDisconnected="OnDisconnected",e.onMaxRetriesReached="onMaxRetriesReached",e.OnReconnecting="OnReconnecting",e.OnReconnected="OnReconnected",e.OnReconnectFailed="OnReconnectFailed",e.OnNetworkChange="OnNetworkChange",e.OnReceiveMessage="OnReceiveMessage",e.OnReceiveProtoMessage="OnReceiveProtoMessage",e.OnReceiveMessages="OnReceiveMessages",e.OnReceiveSubscribeMessage="OnReceiveSubscribeMessage",e.OnReceiveSystemMessage="OnReceiveSystemMessage",e.OnReceivePreMessage="OnReceivePreMessage",e.OnMessagesListLoaded="OnMessagesListLoaded",e.OnActiveConversationSync="OnActiveConversationSync",e.OnMessageSent="OnMessageSent",e.OnMessageFailed="OnMessageFailed",e.OnMessageRevoked="OnMessageRevoked",e.OnMessageDeleted="OnMessageDeleted",e.OnMessageRead="OnMessageRead",e.OnTypingStatusUpdate="OnTypingStatusUpdate",e.OnUserStatusChange="OnUserStatusChange",e.OnKickedOffline="OnKickedOffline",e.OnUserTokenInvalid="OnUserTokenInvalid",e.OnUserTokenExpired="OnUserTokenExpired",e.OnForceOffline="OnForceOffline",e.OnUserInfoUpdated="OnUserInfoUpdated",e.OnGroupCreated="OnGroupCreated",e.OnGroupInfoUpdated="OnGroupInfoUpdated",e.OnGroupDissolved="OnGroupDissolved",e.OnJoinGroup="OnJoinGroup",e.OnLeaveGroup="OnLeaveGroup",e.OnGroupMemberJoined="OnGroupMemberJoined",e.OnGroupMemberLeft="OnGroupMemberLeft",e.OnGroupMemberKicked="OnGroupMemberKicked",e.OnGroupOwnerChanged="OnGroupOwnerChanged",e.OnGroupAdminAdded="OnGroupAdminAdded",e.OnGroupAdminRemoved="OnGroupAdminRemoved",e.OnGroupMemberMuted="OnGroupMemberMuted",e.OnGroupMemberUnmuted="OnGroupMemberUnmuted",e.OnGroupAllMemberMuted="OnGroupAllMemberMuted",e.OnGroupAllMemberUnmuted="OnGroupAllMemberUnmuted",e.OnConversationCreated="OnConversationCreated",e.OnConversationDeleted="OnConversationDeleted",e.OnConversationListUpdated="OnConversationListUpdated",e.OnConversationUpdated="OnConversationUpdated",e.OnUnreadCountChanged="OnUnreadCountChanged",e.OnConversationPinned="OnConversationPinned",e.OnConversationUnpinned="OnConversationUnpinned",e.OnConversationMuted="OnConversationMuted",e.OnConversationUnmuted="OnConversationUnmuted",e.OnPongConn="OnPongConn",e.OnPongReConn="OnPongReConn",e.OnPongIdle="OnPongIdle",e.OnError="OnError",e.OnWarning="OnWarning",e.OnLog="OnLog"}(d||(d={}));var l,h,g,m,p,f,v=/*#__PURE__*/function(){function e(){var e;this.events=((e={})[d.OnReceiveMessage]=[],e[d.OnReceiveSystemMessage]=[],e[d.OnReceiveMessages]=[],e[d.OnConversationListUpdated]=[],e[d.OnMessagesListLoaded]=[],e[d.OnActiveConversationSync]=[],e[d.OnConnected]=[],e[d.OnDisconnected]=[],e[d.OnReconnected]=[],e)}var t=e.prototype;return t.emit=function(e,t){var n=this.events[e];return n&&n.forEach(function(e){return e(t)}),this},t.on=function(e,t){var n;return this.events[e]||(this.events[e]=[]),null==(n=this.events[e])||n.push(t),this},t.off=function(e,t){var n=this.events[e];if(n){var o=n.indexOf(t);o>-1&&(n.splice(o,1),0===n.length&&delete this.events[e])}return this},e}();!function(e){e[e.PrivateChat=0]="PrivateChat",e[e.PrivateGroup=1]="PrivateGroup",e[e.PublicGroup=2]="PublicGroup",e[e.CustomerService=3]="CustomerService",e[e.LiveGroup=4]="LiveGroup"}(l||(l={})),function(e){e[e.TEXT=0]="TEXT",e[e.IMAGE=1]="IMAGE",e[e.FILE=2]="FILE",e[e.AUDIO=3]="AUDIO",e[e.VIDEO=4]="VIDEO",e[e.LINK=5]="LINK",e[e.GIF=6]="GIF",e[e.OPTION=7]="OPTION",e[e.EMOJI=8]="EMOJI",e[e.CUSTOM=100]="CUSTOM"}(h||(h={})),function(e){e[e.EVENT_PONG_CONN=0]="EVENT_PONG_CONN",e[e.EVENT_PONG_RE_CONN=1]="EVENT_PONG_RE_CONN",e[e.EVENT_PONG_IDLE=2]="EVENT_PONG_IDLE",e[e.EVENT_MESSAGE_PUSH=3]="EVENT_MESSAGE_PUSH",e[e.EVENT_SYSTEM_MESSAGE_PUSH=4]="EVENT_SYSTEM_MESSAGE_PUSH",e[e.EVENT_LIVE_SYSTEM_MESSAGE_PUSH=5]="EVENT_LIVE_SYSTEM_MESSAGE_PUSH",e[e.EVENT_PRE_MESSAGE_PUSH=6]="EVENT_PRE_MESSAGE_PUSH",e[e.EVENT_SUBSCRIBE_MESSAGE_PUSH=7]="EVENT_SUBSCRIBE_MESSAGE_PUSH"}(g||(g={})),function(e){e[e.JOIN=0]="JOIN",e[e.LEFT=1]="LEFT",e[e.LAST_READ_UPDATE=2]="LAST_READ_UPDATE",e[e.PERMISSION_UPDATE=3]="PERMISSION_UPDATE",e[e.IDENTITY_UPDATE=4]="IDENTITY_UPDATE",e[e.PING_UPDATE=5]="PING_UPDATE"}(m||(m={})),function(e){e[e.GroupMemberPermissionChange=3]="GroupMemberPermissionChange",e[e.GroupPermissionChange=4]="GroupPermissionChange"}(p||(p={})),function(e){e.SSE="sse",e.WEBSOCKET="websocket"}(f||(f={}));var C="undefined"!=typeof uni,M="undefined"!=typeof window,S="simsdk_",b={CONVERSATIONS:S+"conversations",GROUP_MESSAGES:S+"group_messages",USER_INFO:S+"user_info",META_INFO:S+"meta"},E={MAX_CONVERSATIONS:100,MAX_GROUP_MESSAGES:200,STORAGE_CHUNK_SIZE:512e3,CACHE_TTL:6048e5,EXPIRY_CHECK_INTERVAL:18e5},P=/*#__PURE__*/function(){function e(e){var t=void 0===e?{}:e,n=t.persistEnabled,r=void 0===n||n,s=t.debug,i=void 0!==s&&s,a=t.config,c=void 0===a?{}:a;this.conversationCache=[],this.groupMessageCache={},this.accessTimeRecord={},this.pinnedConversationOrder=new Map,this.userInfo={},this.activeConversation=void 0,this.metaInfo={},this.persistEnabled=void 0,this.debug=void 0,this.config=void 0,this.cleanupTimer=void 0,this.persistEnabled=r,this.debug=i,this.config=o({},E,c)}var t=e.prototype;return t.initialize=function(e){this.userInfo.username=e,this.persistEnabled&&this.loadFromStorage(),this.setupCleanupInterval(),this.debug&&(console.log("Cache initialized for user:",e),console.log("Loaded conversations:",this.conversationCache.length),console.log("Loaded group messages for groups:",Object.keys(this.groupMessageCache).length))},t.clear=function(){this.conversationCache=[],this.groupMessageCache={},this.accessTimeRecord={},this.pinnedConversationOrder.clear(),this.persistEnabled&&this.clearStorage(),this.debug&&console.log("Cache cleared")},t.getConversations=function(){return[].concat(this.conversationCache)},t.clearConversationUnread=function(e){var t=this.conversationCache.find(function(t){return t.id===e});t&&(t.unreadCount=0,this.persistEnabled&&this.saveConversationsToStorage())},t.clearAllConversationUnread=function(){this.conversationCache.forEach(function(e){e.unreadCount>0&&(e.unreadCount=0)}),this.persistEnabled&&this.saveConversationsToStorage()},t.getActiveConversation=function(){return this.activeConversation},t.setConversations=function(e,t){var n=this;if(void 0===t&&(t=!1),this.conversationCache=e.length>this.config.MAX_CONVERSATIONS?e.slice(0,this.config.MAX_CONVERSATIONS):[].concat(e),t)this.pinnedConversationOrder.clear(),this.conversationCache.forEach(function(e,t){e.pin&&n.pinnedConversationOrder.set(e.id,t)});else{var o=-1;this.pinnedConversationOrder.forEach(function(e){e>o&&(o=e)}),this.conversationCache.forEach(function(e,t){e.pin&&!n.pinnedConversationOrder.has(e.id)&&n.pinnedConversationOrder.set(e.id,o+t+1)})}this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage()},t.updateConversation=function(e){var t=this.conversationCache.findIndex(function(t){return t.id===e.id});t>=0?this.conversationCache[t]=o({},e):(this.conversationCache.push(o({},e)),this.conversationCache.length>this.config.MAX_CONVERSATIONS&&this.enforceConversationLimit()),this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage()},t.updateConversationPinStatus=function(e,t){var n=this.conversationCache.findIndex(function(t){return t.id===e});if(-1!==n){var o=this.conversationCache[n],r=!0===o.pin;if(o.pin=t,t&&!r){var s=-1;this.pinnedConversationOrder.forEach(function(e){e>s&&(s=e)}),this.pinnedConversationOrder.set(e,s+1)}else!t&&r&&this.pinnedConversationOrder.delete(e);this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage()}},t.updateConversationWithMessage=function(e,t){var n,o=e.groupId;if(!o)return!1;var r=this.conversationCache.findIndex(function(e){return e.id===o});if(-1===r)return!1;var s=this.conversationCache[r],i=(null==(n=s.latest)?void 0:n.msgId)||0;return this.activeConversation&&this.activeConversation.id===o?s.unreadCount=0:t!==e.username&&(s.unreadCount+=e.msgId>i?e.msgId-i:1),s.latest=e,this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage(),!0},t.getGroupMessages=function(e){return this.recordAccess(e),!this.groupMessageCache[e]&&this.persistEnabled&&this.loadGroupMessagesFromStorage(e),this.groupMessageCache[e]||[]},t.addGroupMessage=function(e){if(e.groupId){this.recordAccess(e.groupId),this.groupMessageCache[e.groupId]||(this.groupMessageCache[e.groupId]=[]);var t=this.groupMessageCache[e.groupId].findIndex(function(t){return t.msgId===e.msgId});t>=0?this.groupMessageCache[e.groupId][t]=e:this.groupMessageCache[e.groupId].push(e),this.sortGroupMessages(e.groupId),this.limitGroupMessageCache(e.groupId),this.enforceMemoryLimits(),this.persistEnabled&&this.saveGroupMessagesToStorage(e.groupId)}},t.addGroupMessages=function(e){for(var t,o=this,r={},s=n(e);!(t=s()).done;){var i=t.value;i.groupId&&(r[i.groupId]||(r[i.groupId]=[]),r[i.groupId].push(i))}for(var a=0,c=Object.entries(r);a<c.length;a++){var u=c[a],d=u[0],l=u[1];this.recordAccess(Number(d)),this.groupMessageCache[d]||(this.groupMessageCache[d]=[]);for(var h,g=function(){var e=h.value,t=o.groupMessageCache[d].findIndex(function(t){return t.msgId===e.msgId});t>=0?o.groupMessageCache[d][t]=e:o.groupMessageCache[d].push(e)},m=n(l);!(h=m()).done;)g();this.sortGroupMessages(Number(d)),this.limitGroupMessageCache(Number(d)),this.persistEnabled&&this.saveGroupMessagesToStorage(Number(d))}this.enforceMemoryLimits()},t.sortConversations=function(){var e=this;this.conversationCache.sort(function(t,n){var o,r,s,i,a=!0===t.pin,c=!0===n.pin;if(a&&!c)return-1;if(!a&&c)return 1;if(a&&c)return(null!=(s=e.pinnedConversationOrder.get(t.id))?s:0)-(null!=(i=e.pinnedConversationOrder.get(n.id))?i:0);var u=(null==(o=t.latest)?void 0:o.createTime)||0;return((null==(r=n.latest)?void 0:r.createTime)||0)-u})},t.sortGroupMessages=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].sort(function(e,t){return(t.createTime||0)-(e.createTime||0)})},t.limitGroupMessageCache=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].length>this.config.MAX_GROUP_MESSAGES&&(this.groupMessageCache[e]=this.groupMessageCache[e].slice(0,this.config.MAX_GROUP_MESSAGES))},t.recordAccess=function(e){this.accessTimeRecord[e]=Date.now()},t.enforceConversationLimit=function(){this.conversationCache.length<=this.config.MAX_CONVERSATIONS||(this.sortConversations(),this.conversationCache=this.conversationCache.slice(0,this.config.MAX_CONVERSATIONS))},t.enforceMemoryLimits=function(){var e=this,t=Object.keys(this.groupMessageCache).length;if(t>10){var n=Object.keys(this.groupMessageCache).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}});n.sort(function(e,t){return e.lastAccess-t.lastAccess});for(var o=Math.ceil(.3*t),r=0;r<o&&r<n.length;r++){var s=n[r].groupId;this.persistEnabled&&(delete this.groupMessageCache[s],this.debug&&console.log("Released memory for inactive group: "+s))}}},t.setupCleanupInterval=function(){var e=this;this.cleanupTimer&&clearInterval(this.cleanupTimer),this.cleanupTimer=window.setInterval(function(){e.cleanupExpiredData()},this.config.EXPIRY_CHECK_INTERVAL)},t.cleanupExpiredData=function(){var e=Date.now();this.metaInfo.lastCleanup=e,this.debug&&console.log("Running cache cleanup");for(var t=0,n=Object.entries(this.accessTimeRecord);t<n.length;t++){var o=n[t],r=o[0];e-o[1]>this.config.CACHE_TTL&&(delete this.accessTimeRecord[r],this.groupMessageCache[r]&&delete this.groupMessageCache[r])}this.persistEnabled&&this.saveMetaInfoToStorage()},t.loadFromStorage=function(){var e=this;try{var t=localStorage.getItem(b.META_INFO);t&&(this.metaInfo=JSON.parse(t));var n=localStorage.getItem(b.CONVERSATIONS);n&&(this.conversationCache=JSON.parse(n)),Object.keys(localStorage).filter(function(e){return e.startsWith(b.GROUP_MESSAGES+".")}).forEach(function(t){var n=t.split(".")[1];n&&!isNaN(Number(n))&&(e.accessTimeRecord[n]=0)});var o=localStorage.getItem(b.USER_INFO);o&&(this.userInfo=JSON.parse(o))}catch(e){console.error("Failed to load cache from storage:",e),this.clearStorage()}},t.loadGroupMessagesFromStorage=function(e){try{for(var t=[],n=0,o=!0;o;){var r=localStorage.getItem(b.GROUP_MESSAGES+"."+e+(n>0?"."+n:""));if(r){var s=JSON.parse(r);t=t.concat(s),n++}else o=!1}t.length>0&&(this.groupMessageCache[e]=t,this.sortGroupMessages(e),this.limitGroupMessageCache(e),this.debug&&console.log("Loaded "+t.length+" messages for group "+e+" from storage"))}catch(t){console.error("Failed to load group messages for "+e+" from storage:",t)}},t.saveConversationsToStorage=function(){try{localStorage.setItem(b.CONVERSATIONS,JSON.stringify(this.conversationCache))}catch(e){console.error("Failed to save conversations to storage:",e),this.handleStorageError()}},t.saveGroupMessagesToStorage=function(e){try{if(void 0!==e){var t=this.groupMessageCache[e];if(!t||0===t.length)return;var n=JSON.stringify(t);if(n.length>this.config.STORAGE_CHUNK_SIZE){this.clearGroupMessageStorage(e);for(var o=t.length,r=Math.max(1,Math.floor(this.config.STORAGE_CHUNK_SIZE/(n.length/o))),s=0;s<o;s+=r){var i=t.slice(s,s+r),a=Math.floor(s/r);localStorage.setItem(b.GROUP_MESSAGES+"."+e+(a>0?"."+a:""),JSON.stringify(i))}}else localStorage.setItem(b.GROUP_MESSAGES+"."+e,n)}else for(var c=0,u=Object.keys(this.groupMessageCache);c<u.length;c++)this.saveGroupMessagesToStorage(Number(u[c]))}catch(e){console.error("Failed to save group messages to storage:",e),this.handleStorageError()}},t.saveMetaInfoToStorage=function(){try{localStorage.setItem(b.META_INFO,JSON.stringify(this.metaInfo))}catch(e){console.error("Failed to save meta info to storage:",e)}},t.handleStorageError=function(){for(var e=this,t=Object.keys(this.accessTimeRecord).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}}).sort(function(e,t){return e.lastAccess-t.lastAccess}),n=Math.max(1,Math.floor(.2*t.length)),o=0;o<n&&o<t.length;o++)this.clearGroupMessageStorage(Number(t[o].groupId)),this.debug&&console.log("Cleared storage for group "+t[o].groupId+" due to quota exceeded")},t.clearGroupMessageStorage=function(e){for(var t=0,n=!0;n;){var o=b.GROUP_MESSAGES+"."+e+(t>0?"."+t:"");null!==localStorage.getItem(o)?(localStorage.removeItem(o),t++):n=!1}},t.saveUserInfoToStorage=function(){try{localStorage.setItem(b.USER_INFO,JSON.stringify(this.userInfo))}catch(e){console.error("Failed to save user info to storage:",e)}},t.clearStorage=function(){try{for(var e,t=n(Object.keys(localStorage).filter(function(e){return e.startsWith(S)}));!(e=t()).done;)localStorage.removeItem(e.value)}catch(e){console.error("Failed to clear storage:",e)}},t.destroy=function(){this.cleanupTimer&&(clearInterval(this.cleanupTimer),this.cleanupTimer=void 0),this.debug&&console.log("Cache manager destroyed")},t.markConversationAsActive=function(e){this.accessTimeRecord[e]=Date.now();var t=this.conversationCache.find(function(t){return t.id===e});return!!t&&(this.activeConversation=o({},t),!0)},t.resetActiveConversation=function(){var e,t=!(null==(e=this.activeConversation)||!e.id);return this.activeConversation=void 0,this.debug&&t&&console.log("Active conversation reset"),t},e}(),O=/*#__PURE__*/function(){function t(e){this.url=void 0,this.token=void 0,this.eventSource=null,this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectTimeout=2e3*Math.random()+3e3,this.connectTimeout=1e4,this.reconnectTimer=null,this.handlers=new Map,this.connected=!1,this.onMessageCallback=void 0,this.onReconnectSuccessCallback=void 0,this.onConnectionClosedCallback=void 0,this.onMaxRetriesReachedCallback=void 0,this.onConnectionChangeCallback=void 0,this.isDestroyed=!1,this.debug=!1,this._openHandler=null,this._errorHandler=null,this._messageHandler=null,this._customHandlers=new Map,this.connectTimeoutRef=null,this.url=e.url,this.token=e.token,this.connectTimeout=e.connectTimeout||1e4,this.reconnectTimeout=e.retryInterval||2e3*Math.random()+3e3,this.maxReconnectAttempts=e.maxRetries||5,this.debug=e.debug||!1,this.onMessageCallback=e.onMessage,this.onReconnectSuccessCallback=e.onReconnectSuccess,this.onConnectionClosedCallback=e.onConnectionClosed,this.onMaxRetriesReachedCallback=e.onMaxRetriesReached,this.onConnectionChangeCallback=e.onConnectionChange}var n=t.prototype;return n.debugLog=function(e){var t;this.debug&&(t=console).log.apply(t,["[SSE] "+e].concat([].slice.call(arguments,1)))},n.debugError=function(e){var t;this.debug&&(t=console).error.apply(t,["[SSE] "+e].concat([].slice.call(arguments,1)))},n.debugWarn=function(e){var t;this.debug&&(t=console).warn.apply(t,["[SSE] "+e].concat([].slice.call(arguments,1)))},n.removeAllEventListeners=function(){var e=this;this.eventSource&&(this._openHandler&&this.eventSource.removeEventListener("open",this._openHandler),this._errorHandler&&this.eventSource.removeEventListener("error",this._errorHandler),this._messageHandler&&this.eventSource.removeEventListener("message",this._messageHandler),this.handlers.forEach(function(t,n){var o=e._customHandlers.get(n);o&&e.eventSource&&e.eventSource.removeEventListener(n,o)}))},n.subscribe=function(e,t){var n=this;this.handlers.set(e,t);var o=function(e){try{var o=JSON.parse(e.data);t(o)}catch(e){n.debugError("Error parsing message data:",e)}};this._customHandlers.set(e,o),this.eventSource?this.eventSource.addEventListener(e,o):this.connect()},n.connect=function(){var t=this;return this.connected&&this.eventSource?Promise.reject(new Error("SSE is already connected!")):new Promise(function(n,o){try{t.eventSource=new e(t.url,{heartbeatTimeout:36e5,withCredentials:!1,headers:{Authorization:"Bearer "+t.token}}),t._openHandler=function(e){t.debugLog("SSE connection established"),t.connected=!0,t.onConnectionChangeCallback&&t.onConnectionChangeCallback(!0),t.reconnectAttempts>0&&t.onReconnectSuccessCallback&&t.onReconnectSuccessCallback(),t.reconnectAttempts=0,t.reconnectTimeout=5e3,n("SSE connect successful!")},t._errorHandler=function(e){t.debugError("SSE connection error:",e),t.connected=!1,t.onConnectionChangeCallback&&t.onConnectionChangeCallback(!1),401===e.status||e.statusText&&e.statusText.includes("Unauthorized")?(t.cleanup(),t.connectTimeoutRef&&(clearTimeout(t.connectTimeoutRef),t.connectTimeoutRef=null),t.notifyConnectionClosed(!0)):t.handleReconnect(),t.connected||o(new Error("SSE connect error"))},t._messageHandler=function(e){try{t.debugLog("SSE received message:",e.data);var n=JSON.parse(e.data);t.onMessageCallback&&t.onMessageCallback(n)}catch(e){t.debugError("Error parsing message:",e)}},t.eventSource.addEventListener("open",t._openHandler),t.eventSource.addEventListener("error",t._errorHandler),t.eventSource.addEventListener("message",t._messageHandler),t.handlers.forEach(function(e,n){var o=t._customHandlers.get(n);o&&t.eventSource&&t.eventSource.addEventListener(n,o)}),t.connectTimeoutRef=setTimeout(function(){t.connected||(o(new Error("Connection timeout")),t.handleReconnect())},t.connectTimeout);var r=t._openHandler;t._openHandler=function(e){clearTimeout(t.connectTimeoutRef),r(e)}}catch(e){t.debugError("Failed to create EventSource:",e),t.handleReconnect(),o(e)}})},n.notifyConnectionClosed=function(e){void 0===e&&(e=!1),this.onConnectionClosedCallback&&this.onConnectionClosedCallback(e),e?this.debugWarn("SSE connection closed due to authentication error"):this.debugLog("SSE connection closed")},n.handleReconnect=function(){var e=this;if(this.isDestroyed)this.debugLog("SSE is destroyed, skipping reconnection");else if(null===this.reconnectTimer){if(this.reconnectAttempts>=this.maxReconnectAttempts)return this.debugError("Max reconnection attempts reached"),this.destroySse(),void(this.onMaxRetriesReachedCallback&&this.onMaxRetriesReachedCallback());this.debugLog("Attempting to reconnect in "+this.reconnectTimeout/1e3+" seconds..."),this.cleanup(),this.reconnectTimer=window.setTimeout(function(){e.reconnectAttempts++,e.reconnectTimeout=Math.min(2*e.reconnectTimeout,6e4),e.reconnectTimer=null,e.connect().catch(function(){})},this.reconnectTimeout)}},n.cleanup=function(){this.eventSource&&(this.removeAllEventListeners(),this.eventSource.close(),this.eventSource=null),this.connected=!1},n.unsubscribe=function(){this.cleanup(),this.handlers.clear(),this._customHandlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},n.destroySse=function(){this.unsubscribe(),this.isDestroyed=!0,this.notifyConnectionClosed()},n.close=function(){this.destroySse(),this.debugLog("SSE 连接已关闭")},n.isConnected=function(){return this.connected},n.send=function(e){var t="当前协议不可用:SSE 是单向通信协议,不支持客户端向服务器发送消息";throw this.debugError(t),new Error(t)},t}(),T=/*#__PURE__*/function(){function e(e){this.url=void 0,this.token=void 0,this.websocket=null,this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectTimeout=2e3*Math.random()+3e3,this.connectTimeout=1e4,this.reconnectTimer=null,this.handlers=new Map,this.connected=!1,this.onMessageCallback=void 0,this.onReconnectSuccessCallback=void 0,this.onConnectionClosedCallback=void 0,this.onMaxRetriesReachedCallback=void 0,this.onConnectionChangeCallback=void 0,this.connectTimeoutRef=null,this.isDestroyed=!1,this.debug=!1,this.url=e.url,this.token=e.token,this.connectTimeout=e.connectTimeout||1e4,this.reconnectTimeout=e.retryInterval||2e3*Math.random()+3e3,this.maxReconnectAttempts=e.maxRetries||5,this.debug=e.debug||!1,this.onMessageCallback=e.onMessage,this.onReconnectSuccessCallback=e.onReconnectSuccess,this.onConnectionClosedCallback=e.onConnectionClosed,this.onMaxRetriesReachedCallback=e.onMaxRetriesReached,this.onConnectionChangeCallback=e.onConnectionChange}var t=e.prototype;return t.debugLog=function(e){var t;this.debug&&(t=console).log.apply(t,["[WebSocket] "+e].concat([].slice.call(arguments,1)))},t.debugError=function(e){var t;this.debug&&(t=console).error.apply(t,["[WebSocket] "+e].concat([].slice.call(arguments,1)))},t.debugWarn=function(e){var t;this.debug&&(t=console).warn.apply(t,["[WebSocket] "+e].concat([].slice.call(arguments,1)))},t.subscribe=function(e,t){this.handlers.set(e,t),this.websocket?this.addMessageHandler(e,t):this.connect()},t.addMessageHandler=function(e,t){var n=this;this.websocket&&this.websocket.addEventListener("message",function(o){try{var r=JSON.parse(o.data);r.type===e&&t(r)}catch(e){n.debugError("Error parsing WebSocket message data:",e)}})},t.connect=function(){var e=this;return this.connected&&this.websocket?Promise.reject(new Error("WebSocket is already connected!")):new Promise(function(t,n){try{var o=new URL(e.url);o.searchParams.set("token",e.token),e.websocket=new WebSocket(o.toString()),e.connectTimeoutRef=setTimeout(function(){e.connected||(n(new Error("WebSocket connection timeout")),e.handleReconnect())},e.connectTimeout),e.websocket.onopen=function(n){e.debugLog("WebSocket connection established"),e.connected=!0,clearTimeout(e.connectTimeoutRef),e.onConnectionChangeCallback&&e.onConnectionChangeCallback(!0),e.reconnectAttempts>0&&e.onReconnectSuccessCallback&&e.onReconnectSuccessCallback(),e.reconnectAttempts=0,e.reconnectTimeout=5e3,t("WebSocket connect successful!")},e.websocket.onerror=function(t){e.debugError("WebSocket connection error:",t),e.connected=!1,clearTimeout(e.connectTimeoutRef),e.onConnectionChangeCallback&&e.onConnectionChangeCallback(!1),e.handleReconnect(),e.connected||n(new Error("WebSocket connect error"))},e.websocket.onclose=function(t){e.debugLog("WebSocket connection closed:",t.code,t.reason),e.connected=!1,e.onConnectionChangeCallback&&e.onConnectionChangeCallback(!1),1002===t.code||1003===t.code||t.reason&&t.reason.includes("Unauthorized")?(e.cleanup(),e.notifyConnectionClosed(!0)):e.handleReconnect()},e.websocket.onmessage=function(t){try{e.debugLog("WebSocket received message:",t.data);var n=JSON.parse(t.data);if("pong"===n.type||2===n.ev)return void(e.connected=!0);e.onMessageCallback&&e.onMessageCallback(n)}catch(t){e.debugError("Error parsing WebSocket message:",t)}},e.handlers.forEach(function(t,n){e.addMessageHandler(n,t)})}catch(t){e.debugError("Failed to create WebSocket:",t),e.handleReconnect(),n(t)}})},t.notifyConnectionClosed=function(e){void 0===e&&(e=!1),this.onConnectionClosedCallback&&this.onConnectionClosedCallback(e),e?this.debugWarn("WebSocket connection closed due to authentication error"):this.debugLog("WebSocket connection closed")},t.handleReconnect=function(){var e=this;if(this.isDestroyed)this.debugLog("WebSocket is destroyed, skipping reconnection");else if(null===this.reconnectTimer){if(this.reconnectAttempts>=this.maxReconnectAttempts)return this.debugError("Max reconnection attempts reached"),this.destroyWebSocket(),void(this.onMaxRetriesReachedCallback&&this.onMaxRetriesReachedCallback());this.debugLog("Attempting to reconnect in "+this.reconnectTimeout/1e3+" seconds..."),this.cleanup(),this.reconnectTimer=window.setTimeout(function(){e.reconnectAttempts++,e.reconnectTimeout=Math.min(2*e.reconnectTimeout,6e4),e.reconnectTimer=null,e.connect().catch(function(){})},this.reconnectTimeout)}},t.cleanup=function(){this.websocket&&(this.websocket.close(),this.websocket=null),this.connected=!1},t.unsubscribe=function(){this.cleanup(),this.handlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},t.destroyWebSocket=function(){this.unsubscribe(),this.isDestroyed=!0,this.notifyConnectionClosed()},t.close=function(){this.destroyWebSocket(),this.debugLog("WebSocket 连接已关闭")},t.isConnected=function(){var e;return this.connected&&(null==(e=this.websocket)?void 0:e.readyState)===WebSocket.OPEN},t.send=function(e){if(!this.websocket||!this.isConnected())return this.debugWarn("WebSocket is not connected, cannot send message"),!1;try{if("string"==typeof e)this.websocket.send(e),this.debugLog("WebSocket message sent (string):",e);else if(e instanceof ArrayBuffer||e instanceof Blob)this.websocket.send(e),this.debugLog("WebSocket message sent (binary):","ArrayBuffer/Blob ("+(e instanceof ArrayBuffer?e.byteLength:e.size)+" bytes)");else if(e instanceof Uint8Array||e instanceof Int8Array||e instanceof Uint16Array||e instanceof Int16Array||e instanceof Uint32Array||e instanceof Int32Array||e instanceof Float32Array||e instanceof Float64Array||e instanceof DataView)this.websocket.send(e),this.debugLog("WebSocket message sent (binary):","ArrayBufferView ("+e.byteLength+" bytes)");else{var t=JSON.stringify(e);this.websocket.send(t),this.debugLog("WebSocket message sent (JSON):",t)}return!0}catch(e){return this.debugError("Failed to send WebSocket message:",e),!1}},e}(),y=["protocol"],G=/*#__PURE__*/function(){function e(){}return e.createClient=function(e){var t=e.protocol,n=function(e,t){if(null==e)return{};var n={};for(var o in e)if({}.hasOwnProperty.call(e,o)){if(-1!==t.indexOf(o))continue;n[o]=e[o]}return n}(e,y);switch(t){case f.SSE:return new O(n);case f.WEBSOCKET:return new T(n);default:throw new Error("Unsupported connection protocol: "+t)}},e}(),k=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.login=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:u.Login,method:"POST"}))}catch(e){return Promise.reject(e)}},t.logout=function(){try{return Promise.resolve(this.sdk.sendRequest({data:{},url:u.Logout,method:"POST"}))}catch(e){return Promise.reject(e)}},t.getChatMember=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{chatId:e},url:u.GetChatMember,method:"GET"}))}catch(e){return Promise.reject(e)}},e}(),R=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.sendMessage=function(e,t){try{var n=this;return Promise.resolve(function(o,r){try{var s=Promise.resolve(n.sdk.sendRequest({data:e,url:t,method:"POST"}))}catch(e){return r(e)}return s&&s.then?s.then(void 0,r):s}(0,function(e){throw console.error("Failed to send message",e),e}))}catch(e){return Promise.reject(e)}},t.getMessageApi=function(e,t){return t===l.PrivateChat?u.PushPrivateMessage:t===l.LiveGroup?u.PushLiveMessage:null!=e&&e.receiverName?u.PushMessageToMember:u.CreateTextMessage},t.createMessage=function(e,t,n,r,s){void 0===r&&(r={});var i={groupType:n};n===l.PublicGroup||n===l.PrivateGroup||n===l.LiveGroup?i.groupId=t:i.receiverName=t;var a=o({},i,r,{msgType:e},s);return this.sendMessage(a,this.getMessageApi(i,n))},t.createTextMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(h.TEXT,t,n,o,{text:e}))}catch(e){return Promise.reject(e)}},t.createImageMessage=function(e,t,n,o,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(h.IMAGE,n,o,r,{link:e,snapshot:t}))}catch(e){return Promise.reject(e)}},t.createFileMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(h.FILE,t,n,o,{link:e}))}catch(e){return Promise.reject(e)}},t.createAudioMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(h.AUDIO,t,n,o,{link:e}))}catch(e){return Promise.reject(e)}},t.createVideoMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(h.VIDEO,t,n,o,{link:e}))}catch(e){return Promise.reject(e)}},t.createLinkMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(h.LINK,t,n,o,{link:e}))}catch(e){return Promise.reject(e)}},t.createGifMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(h.GIF,t,n,o,{link:e}))}catch(e){return Promise.reject(e)}},t.createOptionMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(h.OPTION,t,n,o,{text:e}))}catch(e){return Promise.reject(e)}},t.createEmojiMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(h.EMOJI,t,n,o,{text:e}))}catch(e){return Promise.reject(e)}},t.createCustomMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(h.CUSTOM,t,n,o,{text:e}))}catch(e){return Promise.reject(e)}},t.getHistoryMessageList=function(e){var t=e.groupId,n=e.lastId,o=e.type,r=e.size,s=void 0===r?100:r;try{return Promise.resolve(this.sdk.sendRequest({url:u.GetHistoryMessageList,method:"POST",data:{groupId:t,lastId:n,type:o,size:s}}))}catch(e){return Promise.reject(e)}},t.getLiveMessageList=function(e){var t=e.groupId;try{var n;return Promise.resolve(this.sdk.sendRequest({data:{groupId:t},url:null!=(n=this.sdk.getConfig)&&n.anonLogin?u.GetAnonymousLiveMessageList:u.GetLiveMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},t.prePushCustomerMessage=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:u.PrePushCustomerMessage,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),A=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.getConversations=function(e){try{var t=this;return Promise.resolve(t.sdk.sendRequest({data:e,url:u.GetAllConversationList,method:"GET"})).then(function(e){return e.data.records=e.data.records.map(t.normalizeConversation),e})}catch(e){return Promise.reject(e)}},t.markConversationRead=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:u.MarkConversationMessageAsRead,method:"GET"}))}catch(e){return Promise.reject(e)}},t.markLastRead=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e,msgId:t},url:u.MarkConversationMessageAsRead,method:"GET"}))}catch(e){return Promise.reject(e)}},t.pinConversation=function(e,t){void 0===t&&(t=1);try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e,isTop:t},url:u.PinConversation,method:"GET"}))}catch(e){return Promise.reject(e)}},t.muteConversation=function(e,t){void 0===t&&(t=1);try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e,mute:t},url:u.MuteConversation,method:"GET"}))}catch(e){return Promise.reject(e)}},t.normalizeConversation=function(e){var t,n,r,s,i,a,c,u;return o({},e,{id:e.id,name:e.name||"",groupType:e.groupType||0,avatar:e.avatar||"",status:null!=(t=e.status)?t:1,latest:null!=(n=e.latest)?n:{},unreadCount:null!=(r=e.unreadCount)?r:0,draftText:null!=(s=e.draftText)?s:"",custom:null!=(i=e.custom)?i:"",groupMemberId:null!=(a=e.groupMemberId)?a:"",pin:null!=(c=e.pin)&&c,supportId:e.supportId||"",supportNick:e.supportNick||"",identity:null!=(u=e.identity)?u:1})},e}(),I=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.getGroupInfo=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:u.GetGroupInfo,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getGroupMember=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:u.GetGroupMember,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getGroupMembers=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:u.GetGroupMembers,method:"GET"}))}catch(e){return Promise.reject(e)}},t.joinGroup=function(e){try{var t;return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:null!=(t=this.sdk.getConfig)&&t.anonLogin?u.AnonymousJoinGroup:u.JoinGroup,method:"GET"}))}catch(e){return Promise.reject(e)}},t.leftGroup=function(e){try{var t;return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:null!=(t=this.sdk.getConfig)&&t.anonLogin?u.AnonymousLeftGroup:u.LeftGroup,method:"GET"}))}catch(e){return Promise.reject(e)}},t.checkGroupBlock=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:u.CheckGroupBlock,method:"GET"}))}catch(e){return Promise.reject(e)}},t.updateLatestMessage=function(e){try{var t=Object.fromEntries(e.entries());return Promise.resolve(this.sdk.sendRequest({data:{latestMessage:t},url:u.UpdateLatestMessage,method:"POST"}))}catch(e){return Promise.reject(e)}},t.getGroupLatestMessage=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groups:e},url:u.GetLatestGroupChats,method:"POST"}))}catch(e){return Promise.reject(e)}},t.checkGroupLatestMessage=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{ttl:e},url:u.CheckLatestMessages,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getMyGroupPermission=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:u.GetMyGroupPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getGroupPermission=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:u.GetGroupPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getGroupMemberPermission=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e,targetMemberId:t},url:u.GetGroupMemberPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},t.updateGroupPermission=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:u.UpdateGroupPermission,method:"POST"}))}catch(e){return Promise.reject(e)}},t.updateGroupMemberPermission=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:u.UpdateGroupMemberPermission,method:"POST"}))}catch(e){return Promise.reject(e)}},t.kickGroupMember=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:u.kickGroupMember,method:"POST"}))}catch(e){return Promise.reject(e)}},t.muteMembers=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:u.muteMembers,method:"POST"}))}catch(e){return Promise.reject(e)}},t.editGroupName=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:u.editeGroupName,method:"GET",data:{groupId:e,name:t}}))}catch(e){return Promise.reject(e)}},t.editNotification=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:u.editeNotification,method:"GET",data:{groupId:e,notification:t}}))}catch(e){return Promise.reject(e)}},t.editGroupCustomer=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:u.editeGroupCustomer,method:"GET",data:{groupId:e,customer:t}}))}catch(e){return Promise.reject(e)}},t.addAdmin=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:u.addAdmin,method:"GET",data:{groupId:e,username:t}}))}catch(e){return Promise.reject(e)}},t.deleteAdmin=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:u.deleteAdmin,method:"GET",data:{groupId:e,username:t}}))}catch(e){return Promise.reject(e)}},t.dissolveGroup=function(e){try{return Promise.resolve(this.sdk.sendRequest({url:u.DissolveGroup,method:"GET",data:{groupId:e}}))}catch(e){return Promise.reject(e)}},t.pin=function(e,t,n){try{return Promise.resolve(this.sdk.sendRequest({url:u.pin,method:"GET",data:{groupId:e,messageId:t,type:n}}))}catch(e){return Promise.reject(e)}},t.muteGroup=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:u.muteGroup,method:"GET",data:{groupId:e,type:t}}))}catch(e){return Promise.reject(e)}},t.muteMember=function(e,t,n){try{return Promise.resolve(this.sdk.sendRequest({url:u.muteMember,method:"GET",data:{groupId:e,username:t,type:n}}))}catch(e){return Promise.reject(e)}},t.addGroupMembers=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:u.AddGroupMembers,method:"POST"}))}catch(e){return Promise.reject(e)}},t.getFileByType=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:u.GetFileByType,method:"GET"}))}catch(e){return Promise.reject(e)}},t.pinChat=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e,type:t},url:u.PinChat,method:"GET"}))}catch(e){return Promise.reject(e)}},e}(),L=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.getContactByType=function(e,t){try{var n={contactType:e};return void 0!==t&&(n.groupId=t),Promise.resolve(this.sdk.sendRequest({data:n,url:u.GetContactByType,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getMemberContacts=function(e){try{return Promise.resolve(this.getContactByType(a.MEMBER,e))}catch(e){return Promise.reject(e)}},t.getColleagueContacts=function(e){try{return Promise.resolve(this.getContactByType(a.COLLEAGUE,e))}catch(e){return Promise.reject(e)}},t.getGroupContacts=function(e){try{return Promise.resolve(this.getContactByType(a.GROUP,e))}catch(e){return Promise.reject(e)}},t.editContactTag=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:u.EditContactTag,method:"POST"}))}catch(e){return Promise.reject(e)}},t.getContactTag=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{contactType:e},url:u.GetContactTag,method:"GET"}))}catch(e){return Promise.reject(e)}},t.allocationContactTag=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:u.AllocationContactTag,method:"POST"}))}catch(e){return Promise.reject(e)}},t.allocationMemberTag=function(e,t,n){void 0===n&&(n=0);try{return Promise.resolve(this.allocationContactTag({contactType:a.MEMBER,tag:e,groupIds:t,type:n}))}catch(e){return Promise.reject(e)}},t.allocationColleagueTag=function(e,t,n){void 0===n&&(n=0);try{return Promise.resolve(this.allocationContactTag({contactType:a.COLLEAGUE,tag:e,groupIds:t,type:n}))}catch(e){return Promise.reject(e)}},t.allocationGroupTag=function(e,t,n){void 0===n&&(n=0);try{return Promise.resolve(this.allocationContactTag({contactType:a.GROUP,tag:e,groupIds:t,type:n}))}catch(e){return Promise.reject(e)}},e}(),U=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.services={},this.sdk=e}var t=e.prototype;return t.get=function(e){return this.services[e]||(this.services[e]=this.createService(e)),this.services[e]},t.createService=function(e){switch(e){case i.USER:return new k(this.sdk);case i.MESSAGE:return new R(this.sdk);case i.CONVERSATION:return new A(this.sdk);case i.GROUP:return new I(this.sdk);case i.CONTACT:return new L(this.sdk);default:throw new Error("Unknown service: "+e)}},t.reset=function(){this.services={}},e}();function N(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}var _=[u.Logout,d.OnKickedOffline,d.OnUserTokenInvalid,d.OnUserTokenExpired],w=/*#__PURE__*/function(e){function t(t){var n;return void 0===t&&(t=!1),(n=e.call(this)||this).config={debug:!1,isLive:!1,useProtobuf:!1,protocol:f.SSE},n.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},n.cacheManager=void 0,n.connectionClient=void 0,n.serviceManager=void 0,n.lastUnauthorizedTime=0,n.UNAUTHORIZED_THROTTLE_MS=3e3,n.configure=function(e){void 0!==e.debug&&(n.config.debug=e.debug),e.isLive&&(n.config.isLive=e.isLive),e.apiAddr&&(n.config.apiAddr=e.apiAddr),e.wsAddr&&(n.config.wsAddr=e.wsAddr),e.ossApiAddr&&(n.config.ossApiAddr=e.ossApiAddr),e.appKey&&(n.config.appKey=e.appKey),e.token&&(n.config.token=e.token),e.connectTimeout&&(n.config.connectTimeout=e.connectTimeout),e.maxRetries&&(n.config.maxRetries=e.maxRetries),e.useProtobuf&&(n.config.useProtobuf=e.useProtobuf),e.protocol&&(n.config.protocol=e.protocol)},n.sendRequest=function(e){try{n.internalState.lastActivity=Date.now(),n.config.debug&&n.logRequest(e);var t=n.config.apiAddr+e.url,o=e.data;if("GET"===e.method&&o){var r=new URLSearchParams;Object.entries(o).forEach(function(e){var t=e[1];null!=t&&r.append(e[0],String(t))});var s=r.toString();s&&(t+=(t.includes("?")?"&":"?")+s),o=void 0}return Promise.resolve(N(function(){return Promise.resolve(function(e){try{var t,n=function(e){if(t)return e;throw new Error("Unsupported platform")},o=function(){if(C){var n=new Promise(function(t,n){uni.request({url:e.url,method:e.method||"GET",header:e.headers,data:e.data,success:function(e){401!==e.statusCode?t(e.data):n({status:401,message:"Unauthorized"})},fail:function(e){return n(e)}})});return t=1,n}return function(){if(M)return Promise.resolve(fetch(e.url,{method:e.method||"GET",headers:e.headers,body:e.data?JSON.stringify(e.data):null})).then(function(e){if(401===e.status)throw{status:401,message:"Unauthorized"};return Promise.resolve(e.json()).then(function(e){return t=1,e})})}()}();return Promise.resolve(o&&o.then?o.then(n):n(o))}catch(e){return Promise.reject(e)}}({url:t,method:e.method,headers:{"Content-Type":"application/json",Authorization:n.config.token?"Bearer "+n.config.token:""},data:o}))},function(e){throw 401!==(null==e?void 0:e.status)&&401!==(null==e?void 0:e.statusCode)||n.handleUnauthorizedWithThrottle(t),e}))}catch(e){return Promise.reject(e)}},n.handleUnauthorizedWithThrottle=function(e){var t=Date.now();t-n.lastUnauthorizedTime<n.UNAUTHORIZED_THROTTLE_MS?console.warn("401错误被节流限制,跳过处理:"+e):(n.lastUnauthorizedTime=t,n.handleUnauthorized(e))},n.handleUnauthorized=function(e){console.warn("未授权请求(401):",e),n.handleConnectionClosed(!0)},n.createRequestFunction=function(e,t){return function(o){return n.sendRequest({data:o,url:e,method:t})}},n.createRequestFunctionWithoutParams=function(e,t){return function(){return n.sendRequest({data:void 0,method:t,url:e})}},n.handleMessage=function(e){n.config.debug&&console.log("[SDK] handleMessage response",e),n.isProtobufFormat(e)?n.handleProtobufMessage(e):n.handleJsonMessage(e)},n.handleJsonMessage=function(e){switch(n.config.debug&&console.log("handleMessage response",e),e.ev){case g.EVENT_MESSAGE_PUSH:var t=e.dt;Array.isArray(t)?(t.forEach(function(e){n.updateMessageCache(e)}),n.emit(d.OnReceiveMessages,t)):console.warn("[SDK] Expected response.dt to be an array, but got:",t);break;case g.EVENT_PONG_IDLE:n.internalState.isConnected=!0;break;case g.EVENT_SYSTEM_MESSAGE_PUSH:n.emit(d.OnReceiveSystemMessage,e.dt);break;case g.EVENT_PRE_MESSAGE_PUSH:n.emit(d.OnReceivePreMessage,e.dt);break;case g.EVENT_SUBSCRIBE_MESSAGE_PUSH:n.emit(d.OnReceiveSubscribeMessage,e.dt);break;default:o=e.ev,Object.values(d).includes(o)?(n.emit(e.ev,e.dt),_.includes(e.ev)&&(n.internalState.isLoggedIn=!1,n.internalState.isConnected=!1,n.connectionClient&&(n.connectionClient.close(),n.connectionClient=void 0))):n.config.debug&&console.warn("[SDK] Unknown SSE event type:",e.ev)}var o},n.handleReconnectSuccess=function(){n.config.username&&(n.internalState.isConnected=!0,n.internalState.reconnectAttempts=0,n.config.debug&&console.log("SSE reconnection successful"),n.emit(d.OnReconnected))},n.handleConnectionClosed=function(e){n.internalState.isConnected=!1,n.config.debug&&console.log("SSE connection closed"),n.emit(d.OnDisconnected,e)},n.handleMaxRetriesReached=function(){n.config.debug&&console.log("SSE connection max reconnection attempts reached"),n.emit(d.onMaxRetriesReached)},n.handleConnectionChange=function(e){n.config.debug&&console.log("Connection status changed:",e),n.emit(e?d.OnConnected:d.OnDisconnected)},n.login=function(e){try{var t,r,s=function(o){return t?o:(n.connectionClient=G.createClient({url:n.config.wsAddr+"/"+(e.anonLogin?"anonymousConn":"conn")+"?username="+e.username+"&token="+e.token+"&appKey="+n.config.appKey+"&random="+r,protocol:n.config.protocol||f.WEBSOCKET,debug:n.config.debug,onMessage:n.handleMessage,onReconnectSuccess:n.handleReconnectSuccess,onConnectionClosed:n.handleConnectionClosed,onMaxRetriesReached:n.handleMaxRetriesReached,onConnectionChange:n.handleConnectionChange,token:e.token,connectTimeout:n.config.connectTimeout,maxRetries:n.config.maxRetries}),N(function(){return Promise.resolve(n.connectionClient.connect()).then(function(e){return n.internalState.isLoggedIn=!0,n.internalState.isConnected=!0,n.config.isLive||n.initializeConversationCache(),e})},function(e){return n.internalState.isLoggedIn=!1,n.internalState.isConnected=!1,Promise.reject(e.message)}))};if(n.connectionClient&&(null==n.connectionClient.close||n.connectionClient.close(),n.connectionClient=void 0,n.internalState.isLoggedIn=!1,n.internalState.isConnected=!1),!n.config.apiAddr)return Promise.reject("No apiAddr configured. Please call configure() before login().");if(!n.config.ossApiAddr)return Promise.reject("No ossApiAddr configured. Please call configure() before login().");if(!n.config.appKey)return Promise.reject("No appKey configured. Please call configure() before login().");if(!n.config.token)return Promise.reject("No token configured. Please call configure() before login().");if(n.config.username=e.username,n.config.anonLogin=e.anonLogin||!1,e.protocol&&(n.config.protocol=e.protocol),e.protocol==f.WEBSOCKET&&!n.config.wsAddr)return Promise.reject("WebSocket address (wsAddr) is not configured. Please call configure() before login().");if(n.config.debug&&(console.log("login params",e),console.log("apiAddr",n.config.apiAddr)),!n.config.isLive||!e.anonLogin){n.cacheManager.initialize(e.username),n.cacheManager.resetActiveConversation();var i=n.cacheManager.getConversations();i.length>0&&n.emit(d.OnConversationListUpdated,i)}var a=function(){if(!e.anonLogin)return Promise.resolve(n.user.login(o({},e,{appKey:n.config.appKey}))).then(function(e){var n=e.code,o=e.data;if(0!=n){var s=Promise.resolve("Login failed, Server error, error code is "+n);return t=1,s}r=o})}();return Promise.resolve(a&&a.then?a.then(s):s(a))}catch(e){return Promise.reject(e)}},n.logout=function(){try{return n.connectionClient&&(n.connectionClient.close(),n.connectionClient=void 0),Promise.resolve(n.user.logout()).then(function(e){return n.internalState.isLoggedIn=!1,n.internalState.isConnected=!1,n.config.username=void 0,n.config.token=void 0,n.cacheManager.clear(),e})}catch(e){return Promise.reject(e)}},n.getChatMember=function(e){return n.user.getChatMember(e)},n.getConversations=function(e){try{return Promise.resolve(N(function(){var t=e.pageNo||1,o=e.pageSize||50;return t<1?(console.warn("[SDK] Invalid pageNo, must be >= 1"),!1):o<1||o>100?(console.warn("[SDK] Invalid pageSize, must be between 1 and 100"),!1):Promise.resolve(n.conversation.getConversations({pageNo:t,pageSize:o})).then(function(e){var o=e.data;if(0===e.code&&o){var r=n.cacheManager.getConversations();if(1===t)n.cacheManager.setConversations([].concat(o.records),!0);else{var s=o.records||[],i=new Map;r.forEach(function(e){i.set(e.id,e)});var a=[],c=[];s.forEach(function(e){i.has(e.id)?a.push(e):c.push(e)});var u=[];r.forEach(function(e){a.find(function(t){return t.id===e.id})||u.push(e)}),u.push.apply(u,a.concat(c)),n.cacheManager.setConversations(u,!1)}n.emit(d.OnConversationListUpdated,n.cacheManager.getConversations())}else{var l=n.cacheManager.getConversations();l.length>0&&n.emit(d.OnConversationListUpdated,l)}return!0})},function(e){console.error("[SDK] Failed to get conversations:",e);var t=n.cacheManager.getConversations();return t.length>0&&n.emit(d.OnConversationListUpdated,t),!1}))}catch(e){return Promise.reject(e)}},n.internalUploadFile=function(e,t){try{return Promise.resolve(N(function(){var o=new FormData;return o.append("file",e),o.append("filename",e.name),o.append("groupId",t.toString()),Promise.resolve(fetch(""+n.config.ossApiAddr+u.UploadFile,{method:"POST",headers:{Authorization:n.config.token?"Bearer "+n.config.token:""},body:o})).then(function(e){if(!e.ok)throw new Error("Upload failed with status: "+e.status);return Promise.resolve(e.json()).then(function(e){var t=(null==e?void 0:e.data)||{};return{originalUrl:t.originalUrl||"",thumbnailUrl:t.thumbnailUrl||""}})})},function(e){return console.error("[Upload Error]",e),{error:e instanceof Error?e:new Error("Unknown upload error")}}))}catch(e){return Promise.reject(e)}},n.uploadFile=function(e,t){var o=e.file;try{return Promise.resolve(n.internalUploadFile(o,t)).then(function(e){var t,n=e.originalUrl,o=e.thumbnailUrl,r=e.error;return{data:{originalUrl:void 0===n?"":n,thumbnailUrl:void 0===o?"":o},msg:null!=(t=null==r?void 0:r.message)?t:"",code:r?c.UnknownError:0}})}catch(e){return Promise.reject(e)}},n.sendTextMessage=function(e,t,o,r){return n.message.createTextMessage(e,t,o,r)},n.sendImageMessage=function(e,t,o,r,s){return n.message.createImageMessage(e,t,o,r,s)},n.sendFileMessage=function(e,t,o,r){return n.message.createFileMessage(e,t,o,r)},n.sendAudioMessage=function(e,t,o,r){return n.message.createAudioMessage(e,t,o,r)},n.sendVideoMessage=function(e,t,o,r){return n.message.createVideoMessage(e,t,o,r)},n.sendLinkMessage=function(e,t,o,r){return n.message.createLinkMessage(e,t,o,r)},n.sendGifMessage=function(e,t,o,r){return n.message.createGifMessage(e,t,o,r)},n.sendOptionMessage=function(e,t,o,r){return n.message.createOptionMessage(e,t,o,r)},n.sendEmojiMessage=function(e,t,o,r){return n.message.createEmojiMessage(e,t,o,r)},n.sendCustomMessage=function(e,t,o,r){return n.message.createCustomMessage(e,t,o,r)},n.getHistoryMessageList=function(e){return e.groupId&&n.cacheManager.markConversationAsActive(e.groupId),n.message.getHistoryMessageList(e)},n.getLiveMessageList=function(e){return n.message.getLiveMessageList(e)},n.prePushCustomerMessage=function(e){return n.message.prePushCustomerMessage(e)},n.getGroupInfo=function(e){return n.group.getGroupInfo(e)},n.getGroupMembers=function(e){return n.group.getGroupMembers(e)},n.joinGroup=function(e){return n.group.joinGroup(e)},n.leftGroup=function(e){return n.group.leftGroup(e)},n.checkGroupBlock=function(e){return n.group.checkGroupBlock(e)},n.getMyGroupPermission=function(e){return n.group.getMyGroupPermission(e)},n.getGroupPermission=function(e){return n.group.getGroupPermission(e)},n.getGroupMember=function(e){return n.group.getGroupMember(e)},n.getGroupMemberPermission=function(e,t){return n.group.getGroupMemberPermission(e,t)},n.updateGroupPermission=function(e){return n.group.updateGroupPermission(e)},n.kickGroupMember=function(e){return n.group.kickGroupMember(e)},n.muteMembers=function(e){return n.group.muteMembers(e)},n.updateGroupMemberPermission=function(e){return n.group.updateGroupMemberPermission(e)},n.editGroupName=function(e,t){return n.group.editGroupName(e,t)},n.editNotification=function(e,t){return n.group.editNotification(e,t)},n.editGroupCustomer=function(e,t){return n.group.editGroupCustomer(e,t)},n.addAdmin=function(e,t){return n.group.addAdmin(e,t)},n.deleteAdmin=function(e,t){return n.group.deleteAdmin(e,t)},n.pin=function(e,t,o){return n.group.pin(e,t,o)},n.muteGroup=function(e,t){return n.group.muteGroup(e,t)},n.muteMember=function(e,t,o){return n.group.muteMember(e,t,o)},n.addGroupMembers=function(e){return n.group.addGroupMembers(e)},n.getFileByType=function(e){return n.group.getFileByType(e)},n.pinChat=function(e,t){return n.group.pinChat(e,t)},n.dissolveGroup=function(e){return n.group.dissolveGroup(e)},n.markConversationRead=function(e){return n.conversation.markConversationRead(e)},n.markLastRead=function(e,t){return n.conversation.markLastRead(e,t)},n.pinConversation=function(e,t){void 0===t&&(t=1);try{return Promise.resolve(n.conversation.pinConversation(e,t)).then(function(o){if(0===o.code){n.cacheManager.updateConversationPinStatus(e,1===t);var r=n.cacheManager.getConversations();n.emit(d.OnConversationListUpdated,r)}return o})}catch(e){return Promise.reject(e)}},n.muteConversation=function(e,t){return void 0===t&&(t=1),n.conversation.muteConversation(e,t)},n.clearConversationUnread=function(e){n.cacheManager.clearConversationUnread(e);var t=n.cacheManager.getConversations();n.emit(d.OnConversationListUpdated,t)},n.clearAllConversationUnread=function(){n.cacheManager.clearAllConversationUnread();var e=n.cacheManager.getConversations();n.emit(d.OnConversationListUpdated,e)},n.getContactByType=function(e,t){return n.contact.getContactByType(e,t)},n.getMemberContacts=function(e){return n.contact.getMemberContacts(e)},n.getColleagueContacts=function(e){return n.contact.getColleagueContacts(e)},n.getGroupContacts=function(e){return n.contact.getGroupContacts(e)},n.editContactTag=function(e){return n.contact.editContactTag(e)},n.getContactTag=function(e){return n.contact.getContactTag(e)},n.allocationContactTag=function(e){return n.contact.allocationContactTag(e)},n.allocationMemberTag=function(e,t,o){return void 0===o&&(o=0),n.contact.allocationMemberTag(e,t,o)},n.allocationColleagueTag=function(e,t,o){return void 0===o&&(o=0),n.contact.allocationColleagueTag(e,t,o)},n.allocationGroupTag=function(e,t,o){return void 0===o&&(o=0),n.contact.allocationGroupTag(e,t,o)},n.config.debug=t,t&&(console.log("🚀 SIM SDK Web v1.1.0 (本地开发版本)"),console.log("📦 支持协议: SSE, WebSocket")),n.cacheManager=new P({persistEnabled:!0,debug:t}),n.serviceManager=new U(n),n}var n,a;a=e,(n=t).prototype=Object.create(a.prototype),n.prototype.constructor=n,r(n,a);var l,h,m=t.prototype;return m.destroy=function(){this.connectionClient&&(this.connectionClient.close(),this.connectionClient=void 0),this.cacheManager.destroy(),this.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},this.config.debug&&console.log("[SDK] Resources destroyed")},m.getService=function(e){return this.serviceManager.get(e)},m.isConnected=function(){return this.config.debug&&console.log("[SDK] Connection status: "+(this.internalState.isConnected?"connected":"disconnected")),this.internalState.isConnected},m.isLoggedIn=function(){return this.config.debug&&console.log("[SDK] Login status: "+(this.internalState.isLoggedIn?"logged in":"not logged in")),this.internalState.isLoggedIn},m.logRequest=function(e){var t=Math.random().toString(36).substring(2,8),n={GET:"#4CAF50",POST:"#2196F3",PUT:"#FF9800",DELETE:"#F44336"}[e.method]||"#9C27B0",o={GET:"🔍",POST:"📝",PUT:"🔄",DELETE:"🗑️"}[e.method]||"📡";console.log("%c "+(new Date).toISOString().substring(11,19)+" %c SDK %c "+o+" "+e.method+" %c "+e.url+" %c #"+t,"color: #888; font-size: 11px; padding: 2px 0;","background: #7CAEFF; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","background: "+n+"; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","color: #0066cc; font-weight: bold;","color: #888; font-style: italic;"),e.data&&Object.keys(e.data).length>0&&(console.log("%c─── 📦 Request Payload ───────────────────────────────","color: #999; font-style: italic;"),console.log("%c%s","color: #333; background: #f8f8f8; padding: 8px; border-radius: 4px; border-left: 4px solid #7CAEFF; font-family: monospace; line-height: 1.5;",JSON.stringify(e.data,null,2)),console.log("%c─────────────────────────────────────────────────────","color: #999;"))},m.handlePongMessage=function(e){e&&e.timestamp&&(this.config.debug&&console.log("[SDK] Received pong message with timestamp:",e.timestamp),this.internalState.isConnected=!0,this.internalState.lastActivity=Date.now())},m.isProtobufFormat=function(e){return this.config.useProtobuf||"string"==typeof e&&this.isBase64String(e)||e instanceof Uint8Array},m.isBase64String=function(e){try{return btoa(atob(e))===e}catch(e){return!1}},m.handleProtobufMessage=function(e){this.emit(d.OnReceiveProtoMessage,e)},m.initializeConversationCache=function(){try{var e=this,t=N(function(){return Promise.resolve(e.conversation.getConversations({pageNo:1,pageSize:50})).then(function(t){var n=t.code,o=t.data;if(e.config.debug&&console.log("[SDK] Initialize conversation cache:",n,o),0===n&&o&&o.records){e.cacheManager.setConversations(o.records,!0);var r=e.cacheManager.getConversations();e.emit(d.OnConversationListUpdated,r),e.config.debug&&console.log("[SDK] Conversation cache initialized with",o.records.length,"conversations")}})},function(e){console.error("[SDK] Failed to initialize conversation cache:",e)});return Promise.resolve(t&&t.then?t.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},m.onMessage=function(e){var t=this;return this.on(d.OnReceiveMessage,e),function(){return t.off(d.OnReceiveMessage,e)}},m.onMessages=function(e){var t=this;return this.on(d.OnReceiveMessages,e),function(){return t.off(d.OnReceiveMessages,e)}},m.onConnectionChange=function(e){var t=this,n=function(){return e(!0)},o=function(){return e(!1)};return this.on(d.OnConnected,n),this.on(d.OnDisconnected,o),function(){t.off(d.OnConnected,n),t.off(d.OnDisconnected,o)}},m.onKickedOffline=function(e){var t=this;return this.on(d.OnKickedOffline,e),function(){return t.off(d.OnKickedOffline,e)}},m.updateMessageCache=function(e){if(e.groupId&&this.cacheManager.addGroupMessage(e),this.cacheManager.updateConversationWithMessage(e,this.config.username)){var t=this.cacheManager.getConversations();this.emit(d.OnConversationListUpdated,t)}},m.getCachedGroupMessages=function(e){return this.cacheManager.getGroupMessages(e)},l=t,(h=[{key:"message",get:function(){return this.getService(i.MESSAGE)}},{key:"conversation",get:function(){return this.getService(i.CONVERSATION)}},{key:"group",get:function(){return this.getService(i.GROUP)}},{key:"user",get:function(){return this.getService(i.USER)}},{key:"contact",get:function(){return this.getService(i.CONTACT)}},{key:"username",get:function(){return this.config.username}},{key:"getConfig",get:function(){return this.config}},{key:"getConnectionClient",get:function(){return this.connectionClient}},{key:"uuid",get:function(){return(36*Math.random()).toString(36).slice(2)+(new Date).getTime().toString()}}])&&function(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,s(o.key),o)}}(l.prototype,h),Object.defineProperty(l,"prototype",{writable:!1}),l}(v);export{d as CbEvents,f as ConnectionProtocol,a as ContactType,c as ErrorCode,m as GroupMemberEventType,l as GroupType,h as MessageType,u as RequestApi,w as SIMSDK,i as ServiceName,g as SseEventType,p as SystemMessageType};
package/lib/index.js CHANGED
@@ -1 +1 @@
1
- var e,t,n,o,r,s=require("event-source-polyfill");function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n<t;n++)o[n]=e[n];return o}function a(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return i(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)({}).hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},c.apply(null,arguments)}function u(e,t){return u=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},u(e,t)}function d(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}exports.ServiceName=void 0,(e=exports.ServiceName||(exports.ServiceName={})).MESSAGE="message",e.CONVERSATION="conversation",e.GROUP="group",e.USER="user",e.CONTACT="contact",exports.ContactType=void 0,(t=exports.ContactType||(exports.ContactType={}))[t.MEMBER=0]="MEMBER",t[t.COLLEAGUE=1]="COLLEAGUE",t[t.GROUP=2]="GROUP",exports.ErrorCode=void 0,(n=exports.ErrorCode||(exports.ErrorCode={}))[n.UnknownError=10005]="UnknownError",exports.RequestApi=void 0,(o=exports.RequestApi||(exports.RequestApi={})).Login="/chat/member/login",o.Logout="/chat/member/logout",o.GetGroupInfo="/chat/group/groupInfo",o.GetGroupMembers="/chat/group/groupMembers",o.JoinGroup="/chat/group/joinGroup",o.LeftGroup="/chat/group/leftGroup",o.AnonymousJoinGroup="/chat/group/anonymousJoinGroup",o.AnonymousLeftGroup="/chat/group/anonymousLeftGroup",o.CheckGroupBlock="/chat/group/checkBlock",o.GetMyGroupPermission="/chat/group/permission/getPermission",o.GetGroupPermission="/chat/group/permission/groupPermission",o.GetGroupMember="/chat/group/groupMember",o.GetGroupMemberPermission="/chat/group/permission/groupMemberPermission",o.UpdateGroupPermission="/chat/group/permission/updateGroupPermission",o.UpdateGroupMemberPermission="/chat/group/permission/updateGroupMemberPermission",o.editeGroupName="/chat/group/operation/editeGroupName",o.editeNotification="/chat/group/operation/editeNotification",o.editeGroupCustomer="/chat/group/operation/editeGroupCustomer",o.addAdmin="/chat/group/operation/addAdmin",o.deleteAdmin="/chat/group/operation/deleteAdmin",o.pin="/chat/group/operation/pin",o.muteGroup="/chat/group/operation/muteGroup",o.muteMember="/chat/group/operation/muteMember",o.kickGroupMember="/chat/group/operation/kickGroupMember",o.muteMembers="/chat/group/operation/muteMembers",o.DissolveGroup="/chat/group/dissolve",o.GetAllConversationList="/chat/conversation/conversationList",o.MarkConversationMessageAsRead="/chat/conversation/lastRead",o.PinConversation="/chat/conversation/pinChat",o.MuteConversation="/chat/conversation/mute",o.UpdateLatestMessage="/chat/group/updateLatestMessage",o.GetLatestGroupChats="/chat/group/latestGroupChats",o.CheckLatestMessages="/chat/group/checkLatestMessages",o.CreateTextMessage="/chat/message/push",o.PushMessageToMember="/chat/message/push2Member",o.PushPrivateMessage="/chat/message/pushPrivateMessage",o.PushLiveMessage="/chat/message/liveGroupPush",o.GetHistoryMessageList="/chat/message/pull",o.GetLiveMessageList="/chat/message/liveGroupPull",o.GetAnonymousLiveMessageList="/chat/message/anonymousLiveGroupPull",o.PrePushCustomerMessage="/chat/message/prePushCustomerMessage",o.UploadFile="/chat/img/upload",o.GetContactByType="/chat/contact/contactByType",o.EditContactTag="/chat/contact/editeContactTag",o.GetContactTag="/chat/contact/getContactTag",o.AllocationContactTag="/chat/contact/allocationContactTag",o.AddGroupMembers="/chat/group/operation/addGroupMembers",o.GetFileByType="/chat/message/getFileByType",o.PinChat="/chat/member/pinChat",exports.CbEvents=void 0,(r=exports.CbEvents||(exports.CbEvents={})).OnConnected="OnConnected",r.OnDisconnected="OnDisconnected",r.onMaxRetriesReached="onMaxRetriesReached",r.OnReconnecting="OnReconnecting",r.OnReconnected="OnReconnected",r.OnReconnectFailed="OnReconnectFailed",r.OnNetworkChange="OnNetworkChange",r.OnReceiveMessage="OnReceiveMessage",r.OnReceiveProtoMessage="OnReceiveProtoMessage",r.OnReceiveMessages="OnReceiveMessages",r.OnReceiveSubscribeMessage="OnReceiveSubscribeMessage",r.OnReceiveSystemMessage="OnReceiveSystemMessage",r.OnReceivePreMessage="OnReceivePreMessage",r.OnMessagesListLoaded="OnMessagesListLoaded",r.OnActiveConversationSync="OnActiveConversationSync",r.OnMessageSent="OnMessageSent",r.OnMessageFailed="OnMessageFailed",r.OnMessageRevoked="OnMessageRevoked",r.OnMessageDeleted="OnMessageDeleted",r.OnMessageRead="OnMessageRead",r.OnTypingStatusUpdate="OnTypingStatusUpdate",r.OnUserStatusChange="OnUserStatusChange",r.OnKickedOffline="OnKickedOffline",r.OnUserTokenInvalid="OnUserTokenInvalid",r.OnUserTokenExpired="OnUserTokenExpired",r.OnForceOffline="OnForceOffline",r.OnUserInfoUpdated="OnUserInfoUpdated",r.OnGroupCreated="OnGroupCreated",r.OnGroupInfoUpdated="OnGroupInfoUpdated",r.OnGroupDissolved="OnGroupDissolved",r.OnJoinGroup="OnJoinGroup",r.OnLeaveGroup="OnLeaveGroup",r.OnGroupMemberJoined="OnGroupMemberJoined",r.OnGroupMemberLeft="OnGroupMemberLeft",r.OnGroupMemberKicked="OnGroupMemberKicked",r.OnGroupOwnerChanged="OnGroupOwnerChanged",r.OnGroupAdminAdded="OnGroupAdminAdded",r.OnGroupAdminRemoved="OnGroupAdminRemoved",r.OnGroupMemberMuted="OnGroupMemberMuted",r.OnGroupMemberUnmuted="OnGroupMemberUnmuted",r.OnGroupAllMemberMuted="OnGroupAllMemberMuted",r.OnGroupAllMemberUnmuted="OnGroupAllMemberUnmuted",r.OnConversationCreated="OnConversationCreated",r.OnConversationDeleted="OnConversationDeleted",r.OnConversationListUpdated="OnConversationListUpdated",r.OnConversationUpdated="OnConversationUpdated",r.OnUnreadCountChanged="OnUnreadCountChanged",r.OnConversationPinned="OnConversationPinned",r.OnConversationUnpinned="OnConversationUnpinned",r.OnConversationMuted="OnConversationMuted",r.OnConversationUnmuted="OnConversationUnmuted",r.OnPongConn="OnPongConn",r.OnPongReConn="OnPongReConn",r.OnPongIdle="OnPongIdle",r.OnError="OnError",r.OnWarning="OnWarning",r.OnLog="OnLog";var l,g,h,p,m,v,f=/*#__PURE__*/function(){function e(){var e;this.events=((e={})[exports.CbEvents.OnReceiveMessage]=[],e[exports.CbEvents.OnReceiveSystemMessage]=[],e[exports.CbEvents.OnReceiveMessages]=[],e[exports.CbEvents.OnConversationListUpdated]=[],e[exports.CbEvents.OnMessagesListLoaded]=[],e[exports.CbEvents.OnActiveConversationSync]=[],e[exports.CbEvents.OnConnected]=[],e[exports.CbEvents.OnDisconnected]=[],e[exports.CbEvents.OnReconnected]=[],e)}var t=e.prototype;return t.emit=function(e,t){var n=this.events[e];return n&&n.forEach(function(e){return e(t)}),this},t.on=function(e,t){var n;return this.events[e]||(this.events[e]=[]),null==(n=this.events[e])||n.push(t),this},t.off=function(e,t){var n=this.events[e];if(n){var o=n.indexOf(t);o>-1&&(n.splice(o,1),0===n.length&&delete this.events[e])}return this},e}();exports.GroupType=void 0,(l=exports.GroupType||(exports.GroupType={}))[l.PrivateChat=0]="PrivateChat",l[l.PrivateGroup=1]="PrivateGroup",l[l.PublicGroup=2]="PublicGroup",l[l.CustomerService=3]="CustomerService",l[l.LiveGroup=4]="LiveGroup",exports.MessageType=void 0,(g=exports.MessageType||(exports.MessageType={}))[g.TEXT=0]="TEXT",g[g.IMAGE=1]="IMAGE",g[g.FILE=2]="FILE",g[g.AUDIO=3]="AUDIO",g[g.VIDEO=4]="VIDEO",g[g.LINK=5]="LINK",g[g.GIF=6]="GIF",g[g.OPTION=7]="OPTION",g[g.EMOJI=8]="EMOJI",g[g.CUSTOM=100]="CUSTOM",exports.SseEventType=void 0,(h=exports.SseEventType||(exports.SseEventType={}))[h.EVENT_PONG_CONN=0]="EVENT_PONG_CONN",h[h.EVENT_PONG_RE_CONN=1]="EVENT_PONG_RE_CONN",h[h.EVENT_PONG_IDLE=2]="EVENT_PONG_IDLE",h[h.EVENT_MESSAGE_PUSH=3]="EVENT_MESSAGE_PUSH",h[h.EVENT_SYSTEM_MESSAGE_PUSH=4]="EVENT_SYSTEM_MESSAGE_PUSH",h[h.EVENT_LIVE_SYSTEM_MESSAGE_PUSH=5]="EVENT_LIVE_SYSTEM_MESSAGE_PUSH",h[h.EVENT_PRE_MESSAGE_PUSH=6]="EVENT_PRE_MESSAGE_PUSH",h[h.EVENT_SUBSCRIBE_MESSAGE_PUSH=7]="EVENT_SUBSCRIBE_MESSAGE_PUSH",exports.GroupMemberEventType=void 0,(p=exports.GroupMemberEventType||(exports.GroupMemberEventType={}))[p.JOIN=0]="JOIN",p[p.LEFT=1]="LEFT",p[p.LAST_READ_UPDATE=2]="LAST_READ_UPDATE",p[p.PERMISSION_UPDATE=3]="PERMISSION_UPDATE",p[p.IDENTITY_UPDATE=4]="IDENTITY_UPDATE",p[p.PING_UPDATE=5]="PING_UPDATE",exports.SystemMessageType=void 0,(m=exports.SystemMessageType||(exports.SystemMessageType={}))[m.GroupMemberPermissionChange=3]="GroupMemberPermissionChange",m[m.GroupPermissionChange=4]="GroupPermissionChange",exports.ConnectionProtocol=void 0,(v=exports.ConnectionProtocol||(exports.ConnectionProtocol={})).SSE="sse",v.WEBSOCKET="websocket";var C="undefined"!=typeof uni,M="undefined"!=typeof window,b="simsdk_",S={CONVERSATIONS:b+"conversations",GROUP_MESSAGES:b+"group_messages",USER_INFO:b+"user_info",META_INFO:b+"meta"},E={MAX_CONVERSATIONS:100,MAX_GROUP_MESSAGES:200,STORAGE_CHUNK_SIZE:512e3,CACHE_TTL:6048e5,EXPIRY_CHECK_INTERVAL:18e5},T=/*#__PURE__*/function(){function e(e){var t=void 0===e?{}:e,n=t.persistEnabled,o=void 0===n||n,r=t.debug,s=void 0!==r&&r,i=t.config,a=void 0===i?{}:i;this.conversationCache=[],this.groupMessageCache={},this.accessTimeRecord={},this.pinnedConversationOrder=new Map,this.userInfo={},this.activeConversation=void 0,this.metaInfo={},this.persistEnabled=void 0,this.debug=void 0,this.config=void 0,this.cleanupTimer=void 0,this.persistEnabled=o,this.debug=s,this.config=c({},E,a)}var t=e.prototype;return t.initialize=function(e){this.userInfo.username=e,this.persistEnabled&&this.loadFromStorage(),this.setupCleanupInterval(),this.debug&&(console.log("Cache initialized for user:",e),console.log("Loaded conversations:",this.conversationCache.length),console.log("Loaded group messages for groups:",Object.keys(this.groupMessageCache).length))},t.clear=function(){this.conversationCache=[],this.groupMessageCache={},this.accessTimeRecord={},this.pinnedConversationOrder.clear(),this.persistEnabled&&this.clearStorage(),this.debug&&console.log("Cache cleared")},t.getConversations=function(){return[].concat(this.conversationCache)},t.clearConversationUnread=function(e){var t=this.conversationCache.find(function(t){return t.id===e});t&&(t.unreadCount=0,this.persistEnabled&&this.saveConversationsToStorage())},t.clearAllConversationUnread=function(){this.conversationCache.forEach(function(e){e.unreadCount>0&&(e.unreadCount=0)}),this.persistEnabled&&this.saveConversationsToStorage()},t.getActiveConversation=function(){return this.activeConversation},t.setConversations=function(e,t){var n=this;if(void 0===t&&(t=!1),this.conversationCache=e.length>this.config.MAX_CONVERSATIONS?e.slice(0,this.config.MAX_CONVERSATIONS):[].concat(e),t)this.pinnedConversationOrder.clear(),this.conversationCache.forEach(function(e,t){e.pin&&n.pinnedConversationOrder.set(e.id,t)});else{var o=-1;this.pinnedConversationOrder.forEach(function(e){e>o&&(o=e)}),this.conversationCache.forEach(function(e,t){e.pin&&!n.pinnedConversationOrder.has(e.id)&&n.pinnedConversationOrder.set(e.id,o+t+1)})}this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage()},t.updateConversation=function(e){var t=this.conversationCache.findIndex(function(t){return t.id===e.id});t>=0?this.conversationCache[t]=c({},e):(this.conversationCache.push(c({},e)),this.conversationCache.length>this.config.MAX_CONVERSATIONS&&this.enforceConversationLimit()),this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage()},t.updateConversationPinStatus=function(e,t){var n=this.conversationCache.findIndex(function(t){return t.id===e});if(-1!==n){var o=this.conversationCache[n],r=!0===o.pin;if(o.pin=t,t&&!r){var s=-1;this.pinnedConversationOrder.forEach(function(e){e>s&&(s=e)}),this.pinnedConversationOrder.set(e,s+1)}else!t&&r&&this.pinnedConversationOrder.delete(e);this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage()}},t.updateConversationWithMessage=function(e,t){var n,o=e.groupId;if(!o)return!1;var r=this.conversationCache.findIndex(function(e){return e.id===o});if(-1===r)return!1;var s=this.conversationCache[r],i=(null==(n=s.latest)?void 0:n.msgId)||0;return this.activeConversation&&this.activeConversation.id===o?s.unreadCount=0:t!==e.username&&(s.unreadCount+=e.msgId>i?e.msgId-i:1),s.latest=e,this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage(),!0},t.getGroupMessages=function(e){return this.recordAccess(e),!this.groupMessageCache[e]&&this.persistEnabled&&this.loadGroupMessagesFromStorage(e),this.groupMessageCache[e]||[]},t.addGroupMessage=function(e){if(e.groupId){this.recordAccess(e.groupId),this.groupMessageCache[e.groupId]||(this.groupMessageCache[e.groupId]=[]);var t=this.groupMessageCache[e.groupId].findIndex(function(t){return t.msgId===e.msgId});t>=0?this.groupMessageCache[e.groupId][t]=e:this.groupMessageCache[e.groupId].push(e),this.sortGroupMessages(e.groupId),this.limitGroupMessageCache(e.groupId),this.enforceMemoryLimits(),this.persistEnabled&&this.saveGroupMessagesToStorage(e.groupId)}},t.addGroupMessages=function(e){for(var t,n=this,o={},r=a(e);!(t=r()).done;){var s=t.value;s.groupId&&(o[s.groupId]||(o[s.groupId]=[]),o[s.groupId].push(s))}for(var i=0,c=Object.entries(o);i<c.length;i++){var u=c[i],d=u[0],l=u[1];this.recordAccess(Number(d)),this.groupMessageCache[d]||(this.groupMessageCache[d]=[]);for(var g,h=function(){var e=g.value,t=n.groupMessageCache[d].findIndex(function(t){return t.msgId===e.msgId});t>=0?n.groupMessageCache[d][t]=e:n.groupMessageCache[d].push(e)},p=a(l);!(g=p()).done;)h();this.sortGroupMessages(Number(d)),this.limitGroupMessageCache(Number(d)),this.persistEnabled&&this.saveGroupMessagesToStorage(Number(d))}this.enforceMemoryLimits()},t.sortConversations=function(){var e=this;this.conversationCache.sort(function(t,n){var o,r,s,i,a=!0===t.pin,c=!0===n.pin;if(a&&!c)return-1;if(!a&&c)return 1;if(a&&c)return(null!=(s=e.pinnedConversationOrder.get(t.id))?s:0)-(null!=(i=e.pinnedConversationOrder.get(n.id))?i:0);var u=(null==(o=t.latest)?void 0:o.createTime)||0;return((null==(r=n.latest)?void 0:r.createTime)||0)-u})},t.sortGroupMessages=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].sort(function(e,t){return(t.createTime||0)-(e.createTime||0)})},t.limitGroupMessageCache=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].length>this.config.MAX_GROUP_MESSAGES&&(this.groupMessageCache[e]=this.groupMessageCache[e].slice(0,this.config.MAX_GROUP_MESSAGES))},t.recordAccess=function(e){this.accessTimeRecord[e]=Date.now()},t.enforceConversationLimit=function(){this.conversationCache.length<=this.config.MAX_CONVERSATIONS||(this.sortConversations(),this.conversationCache=this.conversationCache.slice(0,this.config.MAX_CONVERSATIONS))},t.enforceMemoryLimits=function(){var e=this,t=Object.keys(this.groupMessageCache).length;if(t>10){var n=Object.keys(this.groupMessageCache).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}});n.sort(function(e,t){return e.lastAccess-t.lastAccess});for(var o=Math.ceil(.3*t),r=0;r<o&&r<n.length;r++){var s=n[r].groupId;this.persistEnabled&&(delete this.groupMessageCache[s],this.debug&&console.log("Released memory for inactive group: "+s))}}},t.setupCleanupInterval=function(){var e=this;this.cleanupTimer&&clearInterval(this.cleanupTimer),this.cleanupTimer=window.setInterval(function(){e.cleanupExpiredData()},this.config.EXPIRY_CHECK_INTERVAL)},t.cleanupExpiredData=function(){var e=Date.now();this.metaInfo.lastCleanup=e,this.debug&&console.log("Running cache cleanup");for(var t=0,n=Object.entries(this.accessTimeRecord);t<n.length;t++){var o=n[t],r=o[0];e-o[1]>this.config.CACHE_TTL&&(delete this.accessTimeRecord[r],this.groupMessageCache[r]&&delete this.groupMessageCache[r])}this.persistEnabled&&this.saveMetaInfoToStorage()},t.loadFromStorage=function(){var e=this;try{var t=localStorage.getItem(S.META_INFO);t&&(this.metaInfo=JSON.parse(t));var n=localStorage.getItem(S.CONVERSATIONS);n&&(this.conversationCache=JSON.parse(n)),Object.keys(localStorage).filter(function(e){return e.startsWith(S.GROUP_MESSAGES+".")}).forEach(function(t){var n=t.split(".")[1];n&&!isNaN(Number(n))&&(e.accessTimeRecord[n]=0)});var o=localStorage.getItem(S.USER_INFO);o&&(this.userInfo=JSON.parse(o))}catch(e){console.error("Failed to load cache from storage:",e),this.clearStorage()}},t.loadGroupMessagesFromStorage=function(e){try{for(var t=[],n=0,o=!0;o;){var r=localStorage.getItem(S.GROUP_MESSAGES+"."+e+(n>0?"."+n:""));if(r){var s=JSON.parse(r);t=t.concat(s),n++}else o=!1}t.length>0&&(this.groupMessageCache[e]=t,this.sortGroupMessages(e),this.limitGroupMessageCache(e),this.debug&&console.log("Loaded "+t.length+" messages for group "+e+" from storage"))}catch(t){console.error("Failed to load group messages for "+e+" from storage:",t)}},t.saveConversationsToStorage=function(){try{localStorage.setItem(S.CONVERSATIONS,JSON.stringify(this.conversationCache))}catch(e){console.error("Failed to save conversations to storage:",e),this.handleStorageError()}},t.saveGroupMessagesToStorage=function(e){try{if(void 0!==e){var t=this.groupMessageCache[e];if(!t||0===t.length)return;var n=JSON.stringify(t);if(n.length>this.config.STORAGE_CHUNK_SIZE){this.clearGroupMessageStorage(e);for(var o=t.length,r=Math.max(1,Math.floor(this.config.STORAGE_CHUNK_SIZE/(n.length/o))),s=0;s<o;s+=r){var i=t.slice(s,s+r),a=Math.floor(s/r);localStorage.setItem(S.GROUP_MESSAGES+"."+e+(a>0?"."+a:""),JSON.stringify(i))}}else localStorage.setItem(S.GROUP_MESSAGES+"."+e,n)}else for(var c=0,u=Object.keys(this.groupMessageCache);c<u.length;c++)this.saveGroupMessagesToStorage(Number(u[c]))}catch(e){console.error("Failed to save group messages to storage:",e),this.handleStorageError()}},t.saveMetaInfoToStorage=function(){try{localStorage.setItem(S.META_INFO,JSON.stringify(this.metaInfo))}catch(e){console.error("Failed to save meta info to storage:",e)}},t.handleStorageError=function(){for(var e=this,t=Object.keys(this.accessTimeRecord).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}}).sort(function(e,t){return e.lastAccess-t.lastAccess}),n=Math.max(1,Math.floor(.2*t.length)),o=0;o<n&&o<t.length;o++)this.clearGroupMessageStorage(Number(t[o].groupId)),this.debug&&console.log("Cleared storage for group "+t[o].groupId+" due to quota exceeded")},t.clearGroupMessageStorage=function(e){for(var t=0,n=!0;n;){var o=S.GROUP_MESSAGES+"."+e+(t>0?"."+t:"");null!==localStorage.getItem(o)?(localStorage.removeItem(o),t++):n=!1}},t.saveUserInfoToStorage=function(){try{localStorage.setItem(S.USER_INFO,JSON.stringify(this.userInfo))}catch(e){console.error("Failed to save user info to storage:",e)}},t.clearStorage=function(){try{for(var e,t=a(Object.keys(localStorage).filter(function(e){return e.startsWith(b)}));!(e=t()).done;)localStorage.removeItem(e.value)}catch(e){console.error("Failed to clear storage:",e)}},t.destroy=function(){this.cleanupTimer&&(clearInterval(this.cleanupTimer),this.cleanupTimer=void 0),this.debug&&console.log("Cache manager destroyed")},t.markConversationAsActive=function(e){this.accessTimeRecord[e]=Date.now();var t=this.conversationCache.find(function(t){return t.id===e});return!!t&&(this.activeConversation=c({},t),!0)},t.resetActiveConversation=function(){var e,t=!(null==(e=this.activeConversation)||!e.id);return this.activeConversation=void 0,this.debug&&t&&console.log("Active conversation reset"),t},e}(),y=/*#__PURE__*/function(){function e(e){this.url=void 0,this.token=void 0,this.eventSource=null,this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectTimeout=2e3*Math.random()+3e3,this.connectTimeout=1e4,this.reconnectTimer=null,this.handlers=new Map,this.connected=!1,this.onMessageCallback=void 0,this.onReconnectSuccessCallback=void 0,this.onConnectionClosedCallback=void 0,this.onMaxRetriesReachedCallback=void 0,this.onConnectionChangeCallback=void 0,this.isDestroyed=!1,this.debug=!1,this._openHandler=null,this._errorHandler=null,this._messageHandler=null,this._customHandlers=new Map,this.connectTimeoutRef=null,this.url=e.url,this.token=e.token,this.connectTimeout=e.connectTimeout||1e4,this.reconnectTimeout=e.retryInterval||2e3*Math.random()+3e3,this.maxReconnectAttempts=e.maxRetries||5,this.debug=e.debug||!1,this.onMessageCallback=e.onMessage,this.onReconnectSuccessCallback=e.onReconnectSuccess,this.onConnectionClosedCallback=e.onConnectionClosed,this.onMaxRetriesReachedCallback=e.onMaxRetriesReached,this.onConnectionChangeCallback=e.onConnectionChange}var t=e.prototype;return t.debugLog=function(e){var t;this.debug&&(t=console).log.apply(t,["[SSE] "+e].concat([].slice.call(arguments,1)))},t.debugError=function(e){var t;this.debug&&(t=console).error.apply(t,["[SSE] "+e].concat([].slice.call(arguments,1)))},t.debugWarn=function(e){var t;this.debug&&(t=console).warn.apply(t,["[SSE] "+e].concat([].slice.call(arguments,1)))},t.removeAllEventListeners=function(){var e=this;this.eventSource&&(this._openHandler&&this.eventSource.removeEventListener("open",this._openHandler),this._errorHandler&&this.eventSource.removeEventListener("error",this._errorHandler),this._messageHandler&&this.eventSource.removeEventListener("message",this._messageHandler),this.handlers.forEach(function(t,n){var o=e._customHandlers.get(n);o&&e.eventSource&&e.eventSource.removeEventListener(n,o)}))},t.subscribe=function(e,t){var n=this;this.handlers.set(e,t);var o=function(e){try{var o=JSON.parse(e.data);t(o)}catch(e){n.debugError("Error parsing message data:",e)}};this._customHandlers.set(e,o),this.eventSource?this.eventSource.addEventListener(e,o):this.connect()},t.connect=function(){var e=this;return this.connected&&this.eventSource?Promise.reject(new Error("SSE is already connected!")):new Promise(function(t,n){try{e.eventSource=new s.EventSourcePolyfill(e.url,{heartbeatTimeout:36e5,withCredentials:!1,headers:{Authorization:"Bearer "+e.token}}),e._openHandler=function(n){e.debugLog("SSE connection established"),e.connected=!0,e.onConnectionChangeCallback&&e.onConnectionChangeCallback(!0),e.reconnectAttempts>0&&e.onReconnectSuccessCallback&&e.onReconnectSuccessCallback(),e.reconnectAttempts=0,e.reconnectTimeout=5e3,t("SSE connect successful!")},e._errorHandler=function(t){e.debugError("SSE connection error:",t),e.connected=!1,e.onConnectionChangeCallback&&e.onConnectionChangeCallback(!1),401===t.status||t.statusText&&t.statusText.includes("Unauthorized")?(e.cleanup(),e.connectTimeoutRef&&(clearTimeout(e.connectTimeoutRef),e.connectTimeoutRef=null),e.notifyConnectionClosed(!0)):e.handleReconnect(),e.connected||n(new Error("SSE connect error"))},e._messageHandler=function(t){try{e.debugLog("SSE received message:",t.data);var n=JSON.parse(t.data);e.onMessageCallback&&e.onMessageCallback(n)}catch(t){e.debugError("Error parsing message:",t)}},e.eventSource.addEventListener("open",e._openHandler),e.eventSource.addEventListener("error",e._errorHandler),e.eventSource.addEventListener("message",e._messageHandler),e.handlers.forEach(function(t,n){var o=e._customHandlers.get(n);o&&e.eventSource&&e.eventSource.addEventListener(n,o)}),e.connectTimeoutRef=setTimeout(function(){e.connected||(n(new Error("Connection timeout")),e.handleReconnect())},e.connectTimeout);var o=e._openHandler;e._openHandler=function(t){clearTimeout(e.connectTimeoutRef),o(t)}}catch(t){e.debugError("Failed to create EventSource:",t),e.handleReconnect(),n(t)}})},t.notifyConnectionClosed=function(e){void 0===e&&(e=!1),this.onConnectionClosedCallback&&this.onConnectionClosedCallback(e),e?this.debugWarn("SSE connection closed due to authentication error"):this.debugLog("SSE connection closed")},t.handleReconnect=function(){var e=this;if(this.isDestroyed)this.debugLog("SSE is destroyed, skipping reconnection");else if(null===this.reconnectTimer){if(this.reconnectAttempts>=this.maxReconnectAttempts)return this.debugError("Max reconnection attempts reached"),this.destroySse(),void(this.onMaxRetriesReachedCallback&&this.onMaxRetriesReachedCallback());this.debugLog("Attempting to reconnect in "+this.reconnectTimeout/1e3+" seconds..."),this.cleanup(),this.reconnectTimer=window.setTimeout(function(){e.reconnectAttempts++,e.reconnectTimeout=Math.min(2*e.reconnectTimeout,6e4),e.reconnectTimer=null,e.connect().catch(function(){})},this.reconnectTimeout)}},t.cleanup=function(){this.eventSource&&(this.removeAllEventListeners(),this.eventSource.close(),this.eventSource=null),this.connected=!1},t.unsubscribe=function(){this.cleanup(),this.handlers.clear(),this._customHandlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},t.destroySse=function(){this.unsubscribe(),this.isDestroyed=!0,this.notifyConnectionClosed()},t.close=function(){this.destroySse(),this.debugLog("SSE 连接已关闭")},t.isConnected=function(){return this.connected},t.send=function(e){var t="当前协议不可用:SSE 是单向通信协议,不支持客户端向服务器发送消息";throw this.debugError(t),new Error(t)},e}(),P=/*#__PURE__*/function(){function e(e){this.url=void 0,this.token=void 0,this.websocket=null,this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectTimeout=2e3*Math.random()+3e3,this.connectTimeout=1e4,this.reconnectTimer=null,this.handlers=new Map,this.connected=!1,this.onMessageCallback=void 0,this.onReconnectSuccessCallback=void 0,this.onConnectionClosedCallback=void 0,this.onMaxRetriesReachedCallback=void 0,this.onConnectionChangeCallback=void 0,this.connectTimeoutRef=null,this.isDestroyed=!1,this.debug=!1,this.url=e.url,this.token=e.token,this.connectTimeout=e.connectTimeout||1e4,this.reconnectTimeout=e.retryInterval||2e3*Math.random()+3e3,this.maxReconnectAttempts=e.maxRetries||5,this.debug=e.debug||!1,this.onMessageCallback=e.onMessage,this.onReconnectSuccessCallback=e.onReconnectSuccess,this.onConnectionClosedCallback=e.onConnectionClosed,this.onMaxRetriesReachedCallback=e.onMaxRetriesReached,this.onConnectionChangeCallback=e.onConnectionChange}var t=e.prototype;return t.debugLog=function(e){var t;this.debug&&(t=console).log.apply(t,["[WebSocket] "+e].concat([].slice.call(arguments,1)))},t.debugError=function(e){var t;this.debug&&(t=console).error.apply(t,["[WebSocket] "+e].concat([].slice.call(arguments,1)))},t.debugWarn=function(e){var t;this.debug&&(t=console).warn.apply(t,["[WebSocket] "+e].concat([].slice.call(arguments,1)))},t.subscribe=function(e,t){this.handlers.set(e,t),this.websocket?this.addMessageHandler(e,t):this.connect()},t.addMessageHandler=function(e,t){var n=this;this.websocket&&this.websocket.addEventListener("message",function(o){try{var r=JSON.parse(o.data);r.type===e&&t(r)}catch(e){n.debugError("Error parsing WebSocket message data:",e)}})},t.connect=function(){var e=this;return this.connected&&this.websocket?Promise.reject(new Error("WebSocket is already connected!")):new Promise(function(t,n){try{var o=new URL(e.url);o.searchParams.set("token",e.token),e.websocket=new WebSocket(o.toString()),e.connectTimeoutRef=setTimeout(function(){e.connected||(n(new Error("WebSocket connection timeout")),e.handleReconnect())},e.connectTimeout),e.websocket.onopen=function(n){e.debugLog("WebSocket connection established"),e.connected=!0,clearTimeout(e.connectTimeoutRef),e.onConnectionChangeCallback&&e.onConnectionChangeCallback(!0),e.reconnectAttempts>0&&e.onReconnectSuccessCallback&&e.onReconnectSuccessCallback(),e.reconnectAttempts=0,e.reconnectTimeout=5e3,t("WebSocket connect successful!")},e.websocket.onerror=function(t){e.debugError("WebSocket connection error:",t),e.connected=!1,clearTimeout(e.connectTimeoutRef),e.onConnectionChangeCallback&&e.onConnectionChangeCallback(!1),e.handleReconnect(),e.connected||n(new Error("WebSocket connect error"))},e.websocket.onclose=function(t){e.debugLog("WebSocket connection closed:",t.code,t.reason),e.connected=!1,e.onConnectionChangeCallback&&e.onConnectionChangeCallback(!1),1002===t.code||1003===t.code||t.reason&&t.reason.includes("Unauthorized")?(e.cleanup(),e.notifyConnectionClosed(!0)):e.handleReconnect()},e.websocket.onmessage=function(t){try{e.debugLog("WebSocket received message:",t.data);var n=JSON.parse(t.data);if("pong"===n.type||2===n.ev)return void(e.connected=!0);e.onMessageCallback&&e.onMessageCallback(n)}catch(t){e.debugError("Error parsing WebSocket message:",t)}},e.handlers.forEach(function(t,n){e.addMessageHandler(n,t)})}catch(t){e.debugError("Failed to create WebSocket:",t),e.handleReconnect(),n(t)}})},t.notifyConnectionClosed=function(e){void 0===e&&(e=!1),this.onConnectionClosedCallback&&this.onConnectionClosedCallback(e),e?this.debugWarn("WebSocket connection closed due to authentication error"):this.debugLog("WebSocket connection closed")},t.handleReconnect=function(){var e=this;if(this.isDestroyed)this.debugLog("WebSocket is destroyed, skipping reconnection");else if(null===this.reconnectTimer){if(this.reconnectAttempts>=this.maxReconnectAttempts)return this.debugError("Max reconnection attempts reached"),this.destroyWebSocket(),void(this.onMaxRetriesReachedCallback&&this.onMaxRetriesReachedCallback());this.debugLog("Attempting to reconnect in "+this.reconnectTimeout/1e3+" seconds..."),this.cleanup(),this.reconnectTimer=window.setTimeout(function(){e.reconnectAttempts++,e.reconnectTimeout=Math.min(2*e.reconnectTimeout,6e4),e.reconnectTimer=null,e.connect().catch(function(){})},this.reconnectTimeout)}},t.cleanup=function(){this.websocket&&(this.websocket.close(),this.websocket=null),this.connected=!1},t.unsubscribe=function(){this.cleanup(),this.handlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},t.destroyWebSocket=function(){this.unsubscribe(),this.isDestroyed=!0,this.notifyConnectionClosed()},t.close=function(){this.destroyWebSocket(),this.debugLog("WebSocket 连接已关闭")},t.isConnected=function(){var e;return this.connected&&(null==(e=this.websocket)?void 0:e.readyState)===WebSocket.OPEN},t.send=function(e){if(!this.websocket||!this.isConnected())return this.debugWarn("WebSocket is not connected, cannot send message"),!1;try{if("string"==typeof e)this.websocket.send(e),this.debugLog("WebSocket message sent (string):",e);else if(e instanceof ArrayBuffer||e instanceof Blob)this.websocket.send(e),this.debugLog("WebSocket message sent (binary):","ArrayBuffer/Blob ("+(e instanceof ArrayBuffer?e.byteLength:e.size)+" bytes)");else if(e instanceof Uint8Array||e instanceof Int8Array||e instanceof Uint16Array||e instanceof Int16Array||e instanceof Uint32Array||e instanceof Int32Array||e instanceof Float32Array||e instanceof Float64Array||e instanceof DataView)this.websocket.send(e),this.debugLog("WebSocket message sent (binary):","ArrayBufferView ("+e.byteLength+" bytes)");else{var t=JSON.stringify(e);this.websocket.send(t),this.debugLog("WebSocket message sent (JSON):",t)}return!0}catch(e){return this.debugError("Failed to send WebSocket message:",e),!1}},e}(),O=["protocol"],G=/*#__PURE__*/function(){function e(){}return e.createClient=function(e){var t=e.protocol,n=function(e,t){if(null==e)return{};var n={};for(var o in e)if({}.hasOwnProperty.call(e,o)){if(-1!==t.indexOf(o))continue;n[o]=e[o]}return n}(e,O);switch(t){case exports.ConnectionProtocol.SSE:return new y(n);case exports.ConnectionProtocol.WEBSOCKET:return new P(n);default:throw new Error("Unsupported connection protocol: "+t)}},e}(),R=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.login=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.Login,method:"POST"}))}catch(e){return Promise.reject(e)}},t.logout=function(){try{return Promise.resolve(this.sdk.sendRequest({data:{},url:exports.RequestApi.Logout,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),k=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.sendMessage=function(e,t){try{var n=this;return Promise.resolve(function(o,r){try{var s=Promise.resolve(n.sdk.sendRequest({data:e,url:t,method:"POST"}))}catch(e){return r(e)}return s&&s.then?s.then(void 0,r):s}(0,function(e){throw console.error("Failed to send message",e),e}))}catch(e){return Promise.reject(e)}},t.getMessageApi=function(e,t){return t===exports.GroupType.PrivateChat?exports.RequestApi.PushPrivateMessage:t===exports.GroupType.LiveGroup?exports.RequestApi.PushLiveMessage:null!=e&&e.receiverName?exports.RequestApi.PushMessageToMember:exports.RequestApi.CreateTextMessage},t.createMessage=function(e,t,n,o,r){void 0===o&&(o={});var s={groupType:n};n===exports.GroupType.PublicGroup||n===exports.GroupType.PrivateGroup||n===exports.GroupType.LiveGroup?s.groupId=t:s.receiverName=t;var i=c({},s,o,{msgType:e},r);return this.sendMessage(i,this.getMessageApi(s,n))},t.createTextMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(exports.MessageType.TEXT,t,n,o,{text:e}))}catch(e){return Promise.reject(e)}},t.createImageMessage=function(e,t,n,o,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(exports.MessageType.IMAGE,n,o,r,{link:e,snapshot:t}))}catch(e){return Promise.reject(e)}},t.createFileMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(exports.MessageType.FILE,t,n,o,{link:e}))}catch(e){return Promise.reject(e)}},t.createAudioMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(exports.MessageType.AUDIO,t,n,o,{link:e}))}catch(e){return Promise.reject(e)}},t.createVideoMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(exports.MessageType.VIDEO,t,n,o,{link:e}))}catch(e){return Promise.reject(e)}},t.createLinkMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(exports.MessageType.LINK,t,n,o,{link:e}))}catch(e){return Promise.reject(e)}},t.createGifMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(exports.MessageType.GIF,t,n,o,{link:e}))}catch(e){return Promise.reject(e)}},t.createOptionMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(exports.MessageType.OPTION,t,n,o,{text:e}))}catch(e){return Promise.reject(e)}},t.createEmojiMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(exports.MessageType.EMOJI,t,n,o,{text:e}))}catch(e){return Promise.reject(e)}},t.createCustomMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(exports.MessageType.CUSTOM,t,n,o,{text:e}))}catch(e){return Promise.reject(e)}},t.getHistoryMessageList=function(e){var t=e.groupId,n=e.lastId,o=e.type,r=e.size,s=void 0===r?100:r;try{return Promise.resolve(this.sdk.sendRequest({url:exports.RequestApi.GetHistoryMessageList,method:"POST",data:{groupId:t,lastId:n,type:o,size:s}}))}catch(e){return Promise.reject(e)}},t.getLiveMessageList=function(e){var t=e.groupId;try{var n;return Promise.resolve(this.sdk.sendRequest({data:{groupId:t},url:null!=(n=this.sdk.getConfig)&&n.anonLogin?exports.RequestApi.GetAnonymousLiveMessageList:exports.RequestApi.GetLiveMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},t.prePushCustomerMessage=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.PrePushCustomerMessage,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),A=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.getConversations=function(e){try{var t=this;return Promise.resolve(t.sdk.sendRequest({data:e,url:exports.RequestApi.GetAllConversationList,method:"GET"})).then(function(e){return e.data.records=e.data.records.map(t.normalizeConversation),e})}catch(e){return Promise.reject(e)}},t.markConversationRead=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.MarkConversationMessageAsRead,method:"GET"}))}catch(e){return Promise.reject(e)}},t.markLastRead=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e,msgId:t},url:exports.RequestApi.MarkConversationMessageAsRead,method:"GET"}))}catch(e){return Promise.reject(e)}},t.pinConversation=function(e,t){void 0===t&&(t=1);try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e,isTop:t},url:exports.RequestApi.PinConversation,method:"GET"}))}catch(e){return Promise.reject(e)}},t.muteConversation=function(e,t){void 0===t&&(t=1);try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e,mute:t},url:exports.RequestApi.MuteConversation,method:"GET"}))}catch(e){return Promise.reject(e)}},t.normalizeConversation=function(e){var t,n,o,r,s,i,a,u;return c({},e,{id:e.id,name:e.name||"",groupType:e.groupType||0,avatar:e.avatar||"",status:null!=(t=e.status)?t:1,latest:null!=(n=e.latest)?n:{},unreadCount:null!=(o=e.unreadCount)?o:0,draftText:null!=(r=e.draftText)?r:"",custom:null!=(s=e.custom)?s:"",groupMemberId:null!=(i=e.groupMemberId)?i:"",pin:null!=(a=e.pin)&&a,supportId:e.supportId||"",supportNick:e.supportNick||"",identity:null!=(u=e.identity)?u:1})},e}(),x=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.getGroupInfo=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:exports.RequestApi.GetGroupInfo,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getGroupMember=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:exports.RequestApi.GetGroupMember,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getGroupMembers=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.GetGroupMembers,method:"GET"}))}catch(e){return Promise.reject(e)}},t.joinGroup=function(e){try{var t;return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:null!=(t=this.sdk.getConfig)&&t.anonLogin?exports.RequestApi.AnonymousJoinGroup:exports.RequestApi.JoinGroup,method:"GET"}))}catch(e){return Promise.reject(e)}},t.leftGroup=function(e){try{var t;return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:null!=(t=this.sdk.getConfig)&&t.anonLogin?exports.RequestApi.AnonymousLeftGroup:exports.RequestApi.LeftGroup,method:"GET"}))}catch(e){return Promise.reject(e)}},t.checkGroupBlock=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:exports.RequestApi.CheckGroupBlock,method:"GET"}))}catch(e){return Promise.reject(e)}},t.updateLatestMessage=function(e){try{var t=Object.fromEntries(e.entries());return Promise.resolve(this.sdk.sendRequest({data:{latestMessage:t},url:exports.RequestApi.UpdateLatestMessage,method:"POST"}))}catch(e){return Promise.reject(e)}},t.getGroupLatestMessage=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groups:e},url:exports.RequestApi.GetLatestGroupChats,method:"POST"}))}catch(e){return Promise.reject(e)}},t.checkGroupLatestMessage=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{ttl:e},url:exports.RequestApi.CheckLatestMessages,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getMyGroupPermission=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:exports.RequestApi.GetMyGroupPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getGroupPermission=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:exports.RequestApi.GetGroupPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getGroupMemberPermission=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e,targetMemberId:t},url:exports.RequestApi.GetGroupMemberPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},t.updateGroupPermission=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.UpdateGroupPermission,method:"POST"}))}catch(e){return Promise.reject(e)}},t.updateGroupMemberPermission=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.UpdateGroupMemberPermission,method:"POST"}))}catch(e){return Promise.reject(e)}},t.kickGroupMember=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.kickGroupMember,method:"POST"}))}catch(e){return Promise.reject(e)}},t.muteMembers=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.muteMembers,method:"POST"}))}catch(e){return Promise.reject(e)}},t.editGroupName=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:exports.RequestApi.editeGroupName,method:"GET",data:{groupId:e,name:t}}))}catch(e){return Promise.reject(e)}},t.editNotification=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:exports.RequestApi.editeNotification,method:"GET",data:{groupId:e,notification:t}}))}catch(e){return Promise.reject(e)}},t.editGroupCustomer=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:exports.RequestApi.editeGroupCustomer,method:"GET",data:{groupId:e,customer:t}}))}catch(e){return Promise.reject(e)}},t.addAdmin=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:exports.RequestApi.addAdmin,method:"GET",data:{groupId:e,username:t}}))}catch(e){return Promise.reject(e)}},t.deleteAdmin=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:exports.RequestApi.deleteAdmin,method:"GET",data:{groupId:e,username:t}}))}catch(e){return Promise.reject(e)}},t.dissolveGroup=function(e){try{return Promise.resolve(this.sdk.sendRequest({url:exports.RequestApi.DissolveGroup,method:"GET",data:{groupId:e}}))}catch(e){return Promise.reject(e)}},t.pin=function(e,t,n){try{return Promise.resolve(this.sdk.sendRequest({url:exports.RequestApi.pin,method:"GET",data:{groupId:e,messageId:t,type:n}}))}catch(e){return Promise.reject(e)}},t.muteGroup=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:exports.RequestApi.muteGroup,method:"GET",data:{groupId:e,type:t}}))}catch(e){return Promise.reject(e)}},t.muteMember=function(e,t,n){try{return Promise.resolve(this.sdk.sendRequest({url:exports.RequestApi.muteMember,method:"GET",data:{groupId:e,username:t,type:n}}))}catch(e){return Promise.reject(e)}},t.addGroupMembers=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.AddGroupMembers,method:"POST"}))}catch(e){return Promise.reject(e)}},t.getFileByType=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.GetFileByType,method:"GET"}))}catch(e){return Promise.reject(e)}},t.pinChat=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e,type:t},url:exports.RequestApi.PinChat,method:"GET"}))}catch(e){return Promise.reject(e)}},e}(),I=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.getContactByType=function(e,t){try{var n={contactType:e};return void 0!==t&&(n.groupId=t),Promise.resolve(this.sdk.sendRequest({data:n,url:exports.RequestApi.GetContactByType,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getMemberContacts=function(e){try{return Promise.resolve(this.getContactByType(exports.ContactType.MEMBER,e))}catch(e){return Promise.reject(e)}},t.getColleagueContacts=function(e){try{return Promise.resolve(this.getContactByType(exports.ContactType.COLLEAGUE,e))}catch(e){return Promise.reject(e)}},t.getGroupContacts=function(e){try{return Promise.resolve(this.getContactByType(exports.ContactType.GROUP,e))}catch(e){return Promise.reject(e)}},t.editContactTag=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.EditContactTag,method:"POST"}))}catch(e){return Promise.reject(e)}},t.getContactTag=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{contactType:e},url:exports.RequestApi.GetContactTag,method:"GET"}))}catch(e){return Promise.reject(e)}},t.allocationContactTag=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.AllocationContactTag,method:"POST"}))}catch(e){return Promise.reject(e)}},t.allocationMemberTag=function(e,t,n){void 0===n&&(n=0);try{return Promise.resolve(this.allocationContactTag({contactType:exports.ContactType.MEMBER,tag:e,groupIds:t,type:n}))}catch(e){return Promise.reject(e)}},t.allocationColleagueTag=function(e,t,n){void 0===n&&(n=0);try{return Promise.resolve(this.allocationContactTag({contactType:exports.ContactType.COLLEAGUE,tag:e,groupIds:t,type:n}))}catch(e){return Promise.reject(e)}},t.allocationGroupTag=function(e,t,n){void 0===n&&(n=0);try{return Promise.resolve(this.allocationContactTag({contactType:exports.ContactType.GROUP,tag:e,groupIds:t,type:n}))}catch(e){return Promise.reject(e)}},e}(),L=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.services={},this.sdk=e}var t=e.prototype;return t.get=function(e){return this.services[e]||(this.services[e]=this.createService(e)),this.services[e]},t.createService=function(e){switch(e){case exports.ServiceName.USER:return new R(this.sdk);case exports.ServiceName.MESSAGE:return new k(this.sdk);case exports.ServiceName.CONVERSATION:return new A(this.sdk);case exports.ServiceName.GROUP:return new x(this.sdk);case exports.ServiceName.CONTACT:return new I(this.sdk);default:throw new Error("Unknown service: "+e)}},t.reset=function(){this.services={}},e}();function U(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}var N=[exports.RequestApi.Logout,exports.CbEvents.OnKickedOffline,exports.CbEvents.OnUserTokenInvalid,exports.CbEvents.OnUserTokenExpired];exports.SIMSDK=/*#__PURE__*/function(e){function t(t){var n;return void 0===t&&(t=!1),(n=e.call(this)||this).config={debug:!1,isLive:!1,useProtobuf:!1,protocol:exports.ConnectionProtocol.SSE},n.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},n.cacheManager=void 0,n.connectionClient=void 0,n.serviceManager=void 0,n.lastUnauthorizedTime=0,n.UNAUTHORIZED_THROTTLE_MS=3e3,n.configure=function(e){void 0!==e.debug&&(n.config.debug=e.debug),e.isLive&&(n.config.isLive=e.isLive),e.apiAddr&&(n.config.apiAddr=e.apiAddr),e.wsAddr&&(n.config.wsAddr=e.wsAddr),e.ossApiAddr&&(n.config.ossApiAddr=e.ossApiAddr),e.appKey&&(n.config.appKey=e.appKey),e.token&&(n.config.token=e.token),e.connectTimeout&&(n.config.connectTimeout=e.connectTimeout),e.maxRetries&&(n.config.maxRetries=e.maxRetries),e.useProtobuf&&(n.config.useProtobuf=e.useProtobuf),e.protocol&&(n.config.protocol=e.protocol)},n.sendRequest=function(e){try{n.internalState.lastActivity=Date.now(),n.config.debug&&n.logRequest(e);var t=n.config.apiAddr+e.url,o=e.data;if("GET"===e.method&&o){var r=new URLSearchParams;Object.entries(o).forEach(function(e){var t=e[1];null!=t&&r.append(e[0],String(t))});var s=r.toString();s&&(t+=(t.includes("?")?"&":"?")+s),o=void 0}return Promise.resolve(U(function(){return Promise.resolve(function(e){try{var t,n=function(e){if(t)return e;throw new Error("Unsupported platform")},o=function(){if(C){var n=new Promise(function(t,n){uni.request({url:e.url,method:e.method||"GET",header:e.headers,data:e.data,success:function(e){401!==e.statusCode?t(e.data):n({status:401,message:"Unauthorized"})},fail:function(e){return n(e)}})});return t=1,n}return function(){if(M)return Promise.resolve(fetch(e.url,{method:e.method||"GET",headers:e.headers,body:e.data?JSON.stringify(e.data):null})).then(function(e){if(401===e.status)throw{status:401,message:"Unauthorized"};return Promise.resolve(e.json()).then(function(e){return t=1,e})})}()}();return Promise.resolve(o&&o.then?o.then(n):n(o))}catch(e){return Promise.reject(e)}}({url:t,method:e.method,headers:{"Content-Type":"application/json",Authorization:n.config.token?"Bearer "+n.config.token:""},data:o}))},function(e){throw 401!==(null==e?void 0:e.status)&&401!==(null==e?void 0:e.statusCode)||n.handleUnauthorizedWithThrottle(t),e}))}catch(e){return Promise.reject(e)}},n.handleUnauthorizedWithThrottle=function(e){var t=Date.now();t-n.lastUnauthorizedTime<n.UNAUTHORIZED_THROTTLE_MS?console.warn("401错误被节流限制,跳过处理:"+e):(n.lastUnauthorizedTime=t,n.handleUnauthorized(e))},n.handleUnauthorized=function(e){console.warn("未授权请求(401):",e),n.handleConnectionClosed(!0)},n.createRequestFunction=function(e,t){return function(o){return n.sendRequest({data:o,url:e,method:t})}},n.createRequestFunctionWithoutParams=function(e,t){return function(){return n.sendRequest({data:void 0,method:t,url:e})}},n.handleMessage=function(e){n.config.debug&&console.log("[SDK] handleMessage response",e),n.isProtobufFormat(e)?n.handleProtobufMessage(e):n.handleJsonMessage(e)},n.handleJsonMessage=function(e){switch(n.config.debug&&console.log("handleMessage response",e),e.ev){case exports.SseEventType.EVENT_MESSAGE_PUSH:var t=e.dt;Array.isArray(t)?(t.forEach(function(e){n.updateMessageCache(e)}),n.emit(exports.CbEvents.OnReceiveMessages,t)):console.warn("[SDK] Expected response.dt to be an array, but got:",t);break;case exports.SseEventType.EVENT_PONG_IDLE:n.internalState.isConnected=!0;break;case exports.SseEventType.EVENT_SYSTEM_MESSAGE_PUSH:n.emit(exports.CbEvents.OnReceiveSystemMessage,e.dt);break;case exports.SseEventType.EVENT_PRE_MESSAGE_PUSH:n.emit(exports.CbEvents.OnReceivePreMessage,e.dt);break;case exports.SseEventType.EVENT_SUBSCRIBE_MESSAGE_PUSH:n.emit(exports.CbEvents.OnReceiveSubscribeMessage,e.dt);break;default:o=e.ev,Object.values(exports.CbEvents).includes(o)?(n.emit(e.ev,e.dt),N.includes(e.ev)&&(n.internalState.isLoggedIn=!1,n.internalState.isConnected=!1,n.connectionClient&&(n.connectionClient.close(),n.connectionClient=void 0))):n.config.debug&&console.warn("[SDK] Unknown SSE event type:",e.ev)}var o},n.handleReconnectSuccess=function(){n.config.username&&(n.internalState.isConnected=!0,n.internalState.reconnectAttempts=0,n.config.debug&&console.log("SSE reconnection successful"),n.emit(exports.CbEvents.OnReconnected))},n.handleConnectionClosed=function(e){n.internalState.isConnected=!1,n.config.debug&&console.log("SSE connection closed"),n.emit(exports.CbEvents.OnDisconnected,e)},n.handleMaxRetriesReached=function(){n.config.debug&&console.log("SSE connection max reconnection attempts reached"),n.emit(exports.CbEvents.onMaxRetriesReached)},n.handleConnectionChange=function(e){n.config.debug&&console.log("Connection status changed:",e),n.emit(e?exports.CbEvents.OnConnected:exports.CbEvents.OnDisconnected)},n.login=function(e){try{var t,o,r=function(r){return t?r:(s=n.config.protocol===exports.ConnectionProtocol.WEBSOCKET?n.config.wsAddr+"/conn?username="+e.username+"&token="+e.token+"&appKey="+n.config.appKey+"&random="+o:n.config.apiAddr+"/chat/sse/"+(e.anonLogin?"anonymousConn":"conn")+"?username="+e.username+"&token="+e.token+"&appKey="+n.config.appKey+"&random="+o,n.connectionClient=G.createClient({url:s,protocol:n.config.protocol||exports.ConnectionProtocol.SSE,debug:n.config.debug,onMessage:n.handleMessage,onReconnectSuccess:n.handleReconnectSuccess,onConnectionClosed:n.handleConnectionClosed,onMaxRetriesReached:n.handleMaxRetriesReached,onConnectionChange:n.handleConnectionChange,token:e.token,connectTimeout:n.config.connectTimeout,maxRetries:n.config.maxRetries}),U(function(){return Promise.resolve(n.connectionClient.connect()).then(function(e){return n.internalState.isLoggedIn=!0,n.internalState.isConnected=!0,n.config.isLive||n.initializeConversationCache(),e})},function(e){return n.internalState.isLoggedIn=!1,n.internalState.isConnected=!1,Promise.reject(e.message)}));var s};if(n.connectionClient&&(null==n.connectionClient.close||n.connectionClient.close(),n.connectionClient=void 0,n.internalState.isLoggedIn=!1,n.internalState.isConnected=!1),!n.config.apiAddr)return Promise.reject("No apiAddr configured. Please call configure() before login().");if(!n.config.ossApiAddr)return Promise.reject("No ossApiAddr configured. Please call configure() before login().");if(!n.config.appKey)return Promise.reject("No appKey configured. Please call configure() before login().");if(!n.config.token)return Promise.reject("No token configured. Please call configure() before login().");if(n.config.username=e.username,n.config.anonLogin=e.anonLogin||!1,e.protocol&&(n.config.protocol=e.protocol),e.protocol==exports.ConnectionProtocol.WEBSOCKET&&!n.config.wsAddr)return Promise.reject("WebSocket address (wsAddr) is not configured. Please call configure() before login().");if(n.config.debug&&(console.log("login params",e),console.log("apiAddr",n.config.apiAddr)),!n.config.isLive||!e.anonLogin){n.cacheManager.initialize(e.username),n.cacheManager.resetActiveConversation();var s=n.cacheManager.getConversations();s.length>0&&n.emit(exports.CbEvents.OnConversationListUpdated,s)}var i=function(){if(!e.anonLogin)return Promise.resolve(n.user.login(c({},e,{appKey:n.config.appKey}))).then(function(e){var n=e.code,r=e.data;if(0!=n){var s=Promise.resolve("Login failed, Server error, error code is "+n);return t=1,s}o=r})}();return Promise.resolve(i&&i.then?i.then(r):r(i))}catch(e){return Promise.reject(e)}},n.logout=function(){try{return n.connectionClient&&(n.connectionClient.close(),n.connectionClient=void 0),Promise.resolve(n.user.logout()).then(function(e){return n.internalState.isLoggedIn=!1,n.internalState.isConnected=!1,n.config.username=void 0,n.config.token=void 0,n.cacheManager.clear(),e})}catch(e){return Promise.reject(e)}},n.getConversations=function(e){try{return Promise.resolve(U(function(){var t=e.pageNo||1,o=e.pageSize||50;return t<1?(console.warn("[SDK] Invalid pageNo, must be >= 1"),!1):o<1||o>100?(console.warn("[SDK] Invalid pageSize, must be between 1 and 100"),!1):Promise.resolve(n.conversation.getConversations({pageNo:t,pageSize:o})).then(function(e){var o=e.data;if(0===e.code&&o){var r=n.cacheManager.getConversations();if(1===t)n.cacheManager.setConversations([].concat(o.records),!0);else{var s=o.records||[],i=new Map;r.forEach(function(e){i.set(e.id,e)});var a=[],c=[];s.forEach(function(e){i.has(e.id)?a.push(e):c.push(e)});var u=[];r.forEach(function(e){a.find(function(t){return t.id===e.id})||u.push(e)}),u.push.apply(u,a.concat(c)),n.cacheManager.setConversations(u,!1)}n.emit(exports.CbEvents.OnConversationListUpdated,n.cacheManager.getConversations())}else{var d=n.cacheManager.getConversations();d.length>0&&n.emit(exports.CbEvents.OnConversationListUpdated,d)}return!0})},function(e){console.error("[SDK] Failed to get conversations:",e);var t=n.cacheManager.getConversations();return t.length>0&&n.emit(exports.CbEvents.OnConversationListUpdated,t),!1}))}catch(e){return Promise.reject(e)}},n.internalUploadFile=function(e,t){try{return Promise.resolve(U(function(){var o=new FormData;return o.append("file",e),o.append("filename",e.name),o.append("groupId",t.toString()),Promise.resolve(fetch(""+n.config.ossApiAddr+exports.RequestApi.UploadFile,{method:"POST",headers:{Authorization:n.config.token?"Bearer "+n.config.token:""},body:o})).then(function(e){if(!e.ok)throw new Error("Upload failed with status: "+e.status);return Promise.resolve(e.json()).then(function(e){var t=(null==e?void 0:e.data)||{};return{originalUrl:t.originalUrl||"",thumbnailUrl:t.thumbnailUrl||""}})})},function(e){return console.error("[Upload Error]",e),{error:e instanceof Error?e:new Error("Unknown upload error")}}))}catch(e){return Promise.reject(e)}},n.uploadFile=function(e,t){var o=e.file;try{return Promise.resolve(n.internalUploadFile(o,t)).then(function(e){var t,n=e.originalUrl,o=e.thumbnailUrl,r=e.error;return{data:{originalUrl:void 0===n?"":n,thumbnailUrl:void 0===o?"":o},msg:null!=(t=null==r?void 0:r.message)?t:"",code:r?exports.ErrorCode.UnknownError:0}})}catch(e){return Promise.reject(e)}},n.sendTextMessage=function(e,t,o,r){return n.message.createTextMessage(e,t,o,r)},n.sendImageMessage=function(e,t,o,r,s){return n.message.createImageMessage(e,t,o,r,s)},n.sendFileMessage=function(e,t,o,r){return n.message.createFileMessage(e,t,o,r)},n.sendAudioMessage=function(e,t,o,r){return n.message.createAudioMessage(e,t,o,r)},n.sendVideoMessage=function(e,t,o,r){return n.message.createVideoMessage(e,t,o,r)},n.sendLinkMessage=function(e,t,o,r){return n.message.createLinkMessage(e,t,o,r)},n.sendGifMessage=function(e,t,o,r){return n.message.createGifMessage(e,t,o,r)},n.sendOptionMessage=function(e,t,o,r){return n.message.createOptionMessage(e,t,o,r)},n.sendEmojiMessage=function(e,t,o,r){return n.message.createEmojiMessage(e,t,o,r)},n.sendCustomMessage=function(e,t,o,r){return n.message.createCustomMessage(e,t,o,r)},n.getHistoryMessageList=function(e){return e.groupId&&n.cacheManager.markConversationAsActive(e.groupId),n.message.getHistoryMessageList(e)},n.getLiveMessageList=function(e){return n.message.getLiveMessageList(e)},n.prePushCustomerMessage=function(e){return n.message.prePushCustomerMessage(e)},n.getGroupInfo=function(e){return n.group.getGroupInfo(e)},n.getGroupMembers=function(e){return n.group.getGroupMembers(e)},n.joinGroup=function(e){return n.group.joinGroup(e)},n.leftGroup=function(e){return n.group.leftGroup(e)},n.checkGroupBlock=function(e){return n.group.checkGroupBlock(e)},n.getMyGroupPermission=function(e){return n.group.getMyGroupPermission(e)},n.getGroupPermission=function(e){return n.group.getGroupPermission(e)},n.getGroupMember=function(e){return n.group.getGroupMember(e)},n.getGroupMemberPermission=function(e,t){return n.group.getGroupMemberPermission(e,t)},n.updateGroupPermission=function(e){return n.group.updateGroupPermission(e)},n.kickGroupMember=function(e){return n.group.kickGroupMember(e)},n.muteMembers=function(e){return n.group.muteMembers(e)},n.updateGroupMemberPermission=function(e){return n.group.updateGroupMemberPermission(e)},n.editGroupName=function(e,t){return n.group.editGroupName(e,t)},n.editNotification=function(e,t){return n.group.editNotification(e,t)},n.editGroupCustomer=function(e,t){return n.group.editGroupCustomer(e,t)},n.addAdmin=function(e,t){return n.group.addAdmin(e,t)},n.deleteAdmin=function(e,t){return n.group.deleteAdmin(e,t)},n.pin=function(e,t,o){return n.group.pin(e,t,o)},n.muteGroup=function(e,t){return n.group.muteGroup(e,t)},n.muteMember=function(e,t,o){return n.group.muteMember(e,t,o)},n.addGroupMembers=function(e){return n.group.addGroupMembers(e)},n.getFileByType=function(e){return n.group.getFileByType(e)},n.pinChat=function(e,t){return n.group.pinChat(e,t)},n.dissolveGroup=function(e){return n.group.dissolveGroup(e)},n.markConversationRead=function(e){return n.conversation.markConversationRead(e)},n.markLastRead=function(e,t){return n.conversation.markLastRead(e,t)},n.pinConversation=function(e,t){void 0===t&&(t=1);try{return Promise.resolve(n.conversation.pinConversation(e,t)).then(function(o){if(0===o.code){n.cacheManager.updateConversationPinStatus(e,1===t);var r=n.cacheManager.getConversations();n.emit(exports.CbEvents.OnConversationListUpdated,r)}return o})}catch(e){return Promise.reject(e)}},n.muteConversation=function(e,t){return void 0===t&&(t=1),n.conversation.muteConversation(e,t)},n.clearConversationUnread=function(e){n.cacheManager.clearConversationUnread(e);var t=n.cacheManager.getConversations();n.emit(exports.CbEvents.OnConversationListUpdated,t)},n.clearAllConversationUnread=function(){n.cacheManager.clearAllConversationUnread();var e=n.cacheManager.getConversations();n.emit(exports.CbEvents.OnConversationListUpdated,e)},n.getContactByType=function(e,t){return n.contact.getContactByType(e,t)},n.getMemberContacts=function(e){return n.contact.getMemberContacts(e)},n.getColleagueContacts=function(e){return n.contact.getColleagueContacts(e)},n.getGroupContacts=function(e){return n.contact.getGroupContacts(e)},n.editContactTag=function(e){return n.contact.editContactTag(e)},n.getContactTag=function(e){return n.contact.getContactTag(e)},n.allocationContactTag=function(e){return n.contact.allocationContactTag(e)},n.allocationMemberTag=function(e,t,o){return void 0===o&&(o=0),n.contact.allocationMemberTag(e,t,o)},n.allocationColleagueTag=function(e,t,o){return void 0===o&&(o=0),n.contact.allocationColleagueTag(e,t,o)},n.allocationGroupTag=function(e,t,o){return void 0===o&&(o=0),n.contact.allocationGroupTag(e,t,o)},n.config.debug=t,t&&(console.log("🚀 SIM SDK Web v1.1.0 (本地开发版本)"),console.log("📦 支持协议: SSE, WebSocket")),n.cacheManager=new T({persistEnabled:!0,debug:t}),n.serviceManager=new L(n),n}var n,o;o=e,(n=t).prototype=Object.create(o.prototype),n.prototype.constructor=n,u(n,o);var r,s,i=t.prototype;return i.destroy=function(){this.connectionClient&&(this.connectionClient.close(),this.connectionClient=void 0),this.cacheManager.destroy(),this.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},this.config.debug&&console.log("[SDK] Resources destroyed")},i.getService=function(e){return this.serviceManager.get(e)},i.isConnected=function(){return this.config.debug&&console.log("[SDK] Connection status: "+(this.internalState.isConnected?"connected":"disconnected")),this.internalState.isConnected},i.isLoggedIn=function(){return this.config.debug&&console.log("[SDK] Login status: "+(this.internalState.isLoggedIn?"logged in":"not logged in")),this.internalState.isLoggedIn},i.logRequest=function(e){var t=Math.random().toString(36).substring(2,8),n={GET:"#4CAF50",POST:"#2196F3",PUT:"#FF9800",DELETE:"#F44336"}[e.method]||"#9C27B0",o={GET:"🔍",POST:"📝",PUT:"🔄",DELETE:"🗑️"}[e.method]||"📡";console.log("%c "+(new Date).toISOString().substring(11,19)+" %c SDK %c "+o+" "+e.method+" %c "+e.url+" %c #"+t,"color: #888; font-size: 11px; padding: 2px 0;","background: #7CAEFF; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","background: "+n+"; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","color: #0066cc; font-weight: bold;","color: #888; font-style: italic;"),e.data&&Object.keys(e.data).length>0&&(console.log("%c─── 📦 Request Payload ───────────────────────────────","color: #999; font-style: italic;"),console.log("%c%s","color: #333; background: #f8f8f8; padding: 8px; border-radius: 4px; border-left: 4px solid #7CAEFF; font-family: monospace; line-height: 1.5;",JSON.stringify(e.data,null,2)),console.log("%c─────────────────────────────────────────────────────","color: #999;"))},i.handlePongMessage=function(e){e&&e.timestamp&&(this.config.debug&&console.log("[SDK] Received pong message with timestamp:",e.timestamp),this.internalState.isConnected=!0,this.internalState.lastActivity=Date.now())},i.isProtobufFormat=function(e){return this.config.useProtobuf||"string"==typeof e&&this.isBase64String(e)||e instanceof Uint8Array},i.isBase64String=function(e){try{return btoa(atob(e))===e}catch(e){return!1}},i.handleProtobufMessage=function(e){this.emit(exports.CbEvents.OnReceiveProtoMessage,e)},i.initializeConversationCache=function(){try{var e=this,t=U(function(){return Promise.resolve(e.conversation.getConversations({pageNo:1,pageSize:50})).then(function(t){var n=t.code,o=t.data;if(e.config.debug&&console.log("[SDK] Initialize conversation cache:",n,o),0===n&&o&&o.records){e.cacheManager.setConversations(o.records,!0);var r=e.cacheManager.getConversations();e.emit(exports.CbEvents.OnConversationListUpdated,r),e.config.debug&&console.log("[SDK] Conversation cache initialized with",o.records.length,"conversations")}})},function(e){console.error("[SDK] Failed to initialize conversation cache:",e)});return Promise.resolve(t&&t.then?t.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},i.onMessage=function(e){var t=this;return this.on(exports.CbEvents.OnReceiveMessage,e),function(){return t.off(exports.CbEvents.OnReceiveMessage,e)}},i.onMessages=function(e){var t=this;return this.on(exports.CbEvents.OnReceiveMessages,e),function(){return t.off(exports.CbEvents.OnReceiveMessages,e)}},i.onConnectionChange=function(e){var t=this,n=function(){return e(!0)},o=function(){return e(!1)};return this.on(exports.CbEvents.OnConnected,n),this.on(exports.CbEvents.OnDisconnected,o),function(){t.off(exports.CbEvents.OnConnected,n),t.off(exports.CbEvents.OnDisconnected,o)}},i.onKickedOffline=function(e){var t=this;return this.on(exports.CbEvents.OnKickedOffline,e),function(){return t.off(exports.CbEvents.OnKickedOffline,e)}},i.updateMessageCache=function(e){if(e.groupId&&this.cacheManager.addGroupMessage(e),this.cacheManager.updateConversationWithMessage(e,this.config.username)){var t=this.cacheManager.getConversations();this.emit(exports.CbEvents.OnConversationListUpdated,t)}},i.getCachedGroupMessages=function(e){return this.cacheManager.getGroupMessages(e)},r=t,(s=[{key:"message",get:function(){return this.getService(exports.ServiceName.MESSAGE)}},{key:"conversation",get:function(){return this.getService(exports.ServiceName.CONVERSATION)}},{key:"group",get:function(){return this.getService(exports.ServiceName.GROUP)}},{key:"user",get:function(){return this.getService(exports.ServiceName.USER)}},{key:"contact",get:function(){return this.getService(exports.ServiceName.CONTACT)}},{key:"username",get:function(){return this.config.username}},{key:"getConfig",get:function(){return this.config}},{key:"getConnectionClient",get:function(){return this.connectionClient}},{key:"uuid",get:function(){return(36*Math.random()).toString(36).slice(2)+(new Date).getTime().toString()}}])&&function(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,d(o.key),o)}}(r.prototype,s),Object.defineProperty(r,"prototype",{writable:!1}),r}(f);
1
+ var e,t,n,o,r,s=require("event-source-polyfill");function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n<t;n++)o[n]=e[n];return o}function a(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return i(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)({}).hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},c.apply(null,arguments)}function u(e,t){return u=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},u(e,t)}function d(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}exports.ServiceName=void 0,(e=exports.ServiceName||(exports.ServiceName={})).MESSAGE="message",e.CONVERSATION="conversation",e.GROUP="group",e.USER="user",e.CONTACT="contact",exports.ContactType=void 0,(t=exports.ContactType||(exports.ContactType={}))[t.MEMBER=0]="MEMBER",t[t.COLLEAGUE=1]="COLLEAGUE",t[t.GROUP=2]="GROUP",exports.ErrorCode=void 0,(n=exports.ErrorCode||(exports.ErrorCode={}))[n.UnknownError=10005]="UnknownError",exports.RequestApi=void 0,(o=exports.RequestApi||(exports.RequestApi={})).Login="/chat/member/login",o.Logout="/chat/member/logout",o.GetChatMember="/chat/member/getChatMember",o.GetGroupInfo="/chat/group/groupInfo",o.GetGroupMembers="/chat/group/groupMembers",o.JoinGroup="/chat/group/joinGroup",o.LeftGroup="/chat/group/leftGroup",o.AnonymousJoinGroup="/chat/group/anonymousJoinGroup",o.AnonymousLeftGroup="/chat/group/anonymousLeftGroup",o.CheckGroupBlock="/chat/group/checkBlock",o.GetMyGroupPermission="/chat/group/permission/getPermission",o.GetGroupPermission="/chat/group/permission/groupPermission",o.GetGroupMember="/chat/group/groupMember",o.GetGroupMemberPermission="/chat/group/permission/groupMemberPermission",o.UpdateGroupPermission="/chat/group/permission/updateGroupPermission",o.UpdateGroupMemberPermission="/chat/group/permission/updateGroupMemberPermission",o.editeGroupName="/chat/group/operation/editeGroupName",o.editeNotification="/chat/group/operation/editeNotification",o.editeGroupCustomer="/chat/group/operation/editeGroupCustomer",o.addAdmin="/chat/group/operation/addAdmin",o.deleteAdmin="/chat/group/operation/deleteAdmin",o.pin="/chat/group/operation/pin",o.muteGroup="/chat/group/operation/muteGroup",o.muteMember="/chat/group/operation/muteMember",o.kickGroupMember="/chat/group/operation/kickGroupMember",o.muteMembers="/chat/group/operation/muteMembers",o.DissolveGroup="/chat/group/dissolve",o.GetAllConversationList="/chat/conversation/conversationList",o.MarkConversationMessageAsRead="/chat/conversation/lastRead",o.PinConversation="/chat/conversation/pinChat",o.MuteConversation="/chat/conversation/mute",o.UpdateLatestMessage="/chat/group/updateLatestMessage",o.GetLatestGroupChats="/chat/group/latestGroupChats",o.CheckLatestMessages="/chat/group/checkLatestMessages",o.CreateTextMessage="/chat/message/push",o.PushMessageToMember="/chat/message/push2Member",o.PushPrivateMessage="/chat/message/pushPrivateMessage",o.PushLiveMessage="/chat/message/liveGroupPush",o.GetHistoryMessageList="/chat/message/pull",o.GetLiveMessageList="/chat/message/liveGroupPull",o.GetAnonymousLiveMessageList="/chat/message/anonymousLiveGroupPull",o.PrePushCustomerMessage="/chat/message/prePushCustomerMessage",o.UploadFile="/chat/img/upload",o.GetContactByType="/chat/contact/contactByType",o.EditContactTag="/chat/contact/editeContactTag",o.GetContactTag="/chat/contact/getContactTag",o.AllocationContactTag="/chat/contact/allocationContactTag",o.AddGroupMembers="/chat/group/operation/addGroupMembers",o.GetFileByType="/chat/message/getFileByType",o.PinChat="/chat/member/pinChat",exports.CbEvents=void 0,(r=exports.CbEvents||(exports.CbEvents={})).OnConnected="OnConnected",r.OnDisconnected="OnDisconnected",r.onMaxRetriesReached="onMaxRetriesReached",r.OnReconnecting="OnReconnecting",r.OnReconnected="OnReconnected",r.OnReconnectFailed="OnReconnectFailed",r.OnNetworkChange="OnNetworkChange",r.OnReceiveMessage="OnReceiveMessage",r.OnReceiveProtoMessage="OnReceiveProtoMessage",r.OnReceiveMessages="OnReceiveMessages",r.OnReceiveSubscribeMessage="OnReceiveSubscribeMessage",r.OnReceiveSystemMessage="OnReceiveSystemMessage",r.OnReceivePreMessage="OnReceivePreMessage",r.OnMessagesListLoaded="OnMessagesListLoaded",r.OnActiveConversationSync="OnActiveConversationSync",r.OnMessageSent="OnMessageSent",r.OnMessageFailed="OnMessageFailed",r.OnMessageRevoked="OnMessageRevoked",r.OnMessageDeleted="OnMessageDeleted",r.OnMessageRead="OnMessageRead",r.OnTypingStatusUpdate="OnTypingStatusUpdate",r.OnUserStatusChange="OnUserStatusChange",r.OnKickedOffline="OnKickedOffline",r.OnUserTokenInvalid="OnUserTokenInvalid",r.OnUserTokenExpired="OnUserTokenExpired",r.OnForceOffline="OnForceOffline",r.OnUserInfoUpdated="OnUserInfoUpdated",r.OnGroupCreated="OnGroupCreated",r.OnGroupInfoUpdated="OnGroupInfoUpdated",r.OnGroupDissolved="OnGroupDissolved",r.OnJoinGroup="OnJoinGroup",r.OnLeaveGroup="OnLeaveGroup",r.OnGroupMemberJoined="OnGroupMemberJoined",r.OnGroupMemberLeft="OnGroupMemberLeft",r.OnGroupMemberKicked="OnGroupMemberKicked",r.OnGroupOwnerChanged="OnGroupOwnerChanged",r.OnGroupAdminAdded="OnGroupAdminAdded",r.OnGroupAdminRemoved="OnGroupAdminRemoved",r.OnGroupMemberMuted="OnGroupMemberMuted",r.OnGroupMemberUnmuted="OnGroupMemberUnmuted",r.OnGroupAllMemberMuted="OnGroupAllMemberMuted",r.OnGroupAllMemberUnmuted="OnGroupAllMemberUnmuted",r.OnConversationCreated="OnConversationCreated",r.OnConversationDeleted="OnConversationDeleted",r.OnConversationListUpdated="OnConversationListUpdated",r.OnConversationUpdated="OnConversationUpdated",r.OnUnreadCountChanged="OnUnreadCountChanged",r.OnConversationPinned="OnConversationPinned",r.OnConversationUnpinned="OnConversationUnpinned",r.OnConversationMuted="OnConversationMuted",r.OnConversationUnmuted="OnConversationUnmuted",r.OnPongConn="OnPongConn",r.OnPongReConn="OnPongReConn",r.OnPongIdle="OnPongIdle",r.OnError="OnError",r.OnWarning="OnWarning",r.OnLog="OnLog";var l,g,h,p,m,v,f=/*#__PURE__*/function(){function e(){var e;this.events=((e={})[exports.CbEvents.OnReceiveMessage]=[],e[exports.CbEvents.OnReceiveSystemMessage]=[],e[exports.CbEvents.OnReceiveMessages]=[],e[exports.CbEvents.OnConversationListUpdated]=[],e[exports.CbEvents.OnMessagesListLoaded]=[],e[exports.CbEvents.OnActiveConversationSync]=[],e[exports.CbEvents.OnConnected]=[],e[exports.CbEvents.OnDisconnected]=[],e[exports.CbEvents.OnReconnected]=[],e)}var t=e.prototype;return t.emit=function(e,t){var n=this.events[e];return n&&n.forEach(function(e){return e(t)}),this},t.on=function(e,t){var n;return this.events[e]||(this.events[e]=[]),null==(n=this.events[e])||n.push(t),this},t.off=function(e,t){var n=this.events[e];if(n){var o=n.indexOf(t);o>-1&&(n.splice(o,1),0===n.length&&delete this.events[e])}return this},e}();exports.GroupType=void 0,(l=exports.GroupType||(exports.GroupType={}))[l.PrivateChat=0]="PrivateChat",l[l.PrivateGroup=1]="PrivateGroup",l[l.PublicGroup=2]="PublicGroup",l[l.CustomerService=3]="CustomerService",l[l.LiveGroup=4]="LiveGroup",exports.MessageType=void 0,(g=exports.MessageType||(exports.MessageType={}))[g.TEXT=0]="TEXT",g[g.IMAGE=1]="IMAGE",g[g.FILE=2]="FILE",g[g.AUDIO=3]="AUDIO",g[g.VIDEO=4]="VIDEO",g[g.LINK=5]="LINK",g[g.GIF=6]="GIF",g[g.OPTION=7]="OPTION",g[g.EMOJI=8]="EMOJI",g[g.CUSTOM=100]="CUSTOM",exports.SseEventType=void 0,(h=exports.SseEventType||(exports.SseEventType={}))[h.EVENT_PONG_CONN=0]="EVENT_PONG_CONN",h[h.EVENT_PONG_RE_CONN=1]="EVENT_PONG_RE_CONN",h[h.EVENT_PONG_IDLE=2]="EVENT_PONG_IDLE",h[h.EVENT_MESSAGE_PUSH=3]="EVENT_MESSAGE_PUSH",h[h.EVENT_SYSTEM_MESSAGE_PUSH=4]="EVENT_SYSTEM_MESSAGE_PUSH",h[h.EVENT_LIVE_SYSTEM_MESSAGE_PUSH=5]="EVENT_LIVE_SYSTEM_MESSAGE_PUSH",h[h.EVENT_PRE_MESSAGE_PUSH=6]="EVENT_PRE_MESSAGE_PUSH",h[h.EVENT_SUBSCRIBE_MESSAGE_PUSH=7]="EVENT_SUBSCRIBE_MESSAGE_PUSH",exports.GroupMemberEventType=void 0,(p=exports.GroupMemberEventType||(exports.GroupMemberEventType={}))[p.JOIN=0]="JOIN",p[p.LEFT=1]="LEFT",p[p.LAST_READ_UPDATE=2]="LAST_READ_UPDATE",p[p.PERMISSION_UPDATE=3]="PERMISSION_UPDATE",p[p.IDENTITY_UPDATE=4]="IDENTITY_UPDATE",p[p.PING_UPDATE=5]="PING_UPDATE",exports.SystemMessageType=void 0,(m=exports.SystemMessageType||(exports.SystemMessageType={}))[m.GroupMemberPermissionChange=3]="GroupMemberPermissionChange",m[m.GroupPermissionChange=4]="GroupPermissionChange",exports.ConnectionProtocol=void 0,(v=exports.ConnectionProtocol||(exports.ConnectionProtocol={})).SSE="sse",v.WEBSOCKET="websocket";var C="undefined"!=typeof uni,M="undefined"!=typeof window,b="simsdk_",S={CONVERSATIONS:b+"conversations",GROUP_MESSAGES:b+"group_messages",USER_INFO:b+"user_info",META_INFO:b+"meta"},E={MAX_CONVERSATIONS:100,MAX_GROUP_MESSAGES:200,STORAGE_CHUNK_SIZE:512e3,CACHE_TTL:6048e5,EXPIRY_CHECK_INTERVAL:18e5},T=/*#__PURE__*/function(){function e(e){var t=void 0===e?{}:e,n=t.persistEnabled,o=void 0===n||n,r=t.debug,s=void 0!==r&&r,i=t.config,a=void 0===i?{}:i;this.conversationCache=[],this.groupMessageCache={},this.accessTimeRecord={},this.pinnedConversationOrder=new Map,this.userInfo={},this.activeConversation=void 0,this.metaInfo={},this.persistEnabled=void 0,this.debug=void 0,this.config=void 0,this.cleanupTimer=void 0,this.persistEnabled=o,this.debug=s,this.config=c({},E,a)}var t=e.prototype;return t.initialize=function(e){this.userInfo.username=e,this.persistEnabled&&this.loadFromStorage(),this.setupCleanupInterval(),this.debug&&(console.log("Cache initialized for user:",e),console.log("Loaded conversations:",this.conversationCache.length),console.log("Loaded group messages for groups:",Object.keys(this.groupMessageCache).length))},t.clear=function(){this.conversationCache=[],this.groupMessageCache={},this.accessTimeRecord={},this.pinnedConversationOrder.clear(),this.persistEnabled&&this.clearStorage(),this.debug&&console.log("Cache cleared")},t.getConversations=function(){return[].concat(this.conversationCache)},t.clearConversationUnread=function(e){var t=this.conversationCache.find(function(t){return t.id===e});t&&(t.unreadCount=0,this.persistEnabled&&this.saveConversationsToStorage())},t.clearAllConversationUnread=function(){this.conversationCache.forEach(function(e){e.unreadCount>0&&(e.unreadCount=0)}),this.persistEnabled&&this.saveConversationsToStorage()},t.getActiveConversation=function(){return this.activeConversation},t.setConversations=function(e,t){var n=this;if(void 0===t&&(t=!1),this.conversationCache=e.length>this.config.MAX_CONVERSATIONS?e.slice(0,this.config.MAX_CONVERSATIONS):[].concat(e),t)this.pinnedConversationOrder.clear(),this.conversationCache.forEach(function(e,t){e.pin&&n.pinnedConversationOrder.set(e.id,t)});else{var o=-1;this.pinnedConversationOrder.forEach(function(e){e>o&&(o=e)}),this.conversationCache.forEach(function(e,t){e.pin&&!n.pinnedConversationOrder.has(e.id)&&n.pinnedConversationOrder.set(e.id,o+t+1)})}this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage()},t.updateConversation=function(e){var t=this.conversationCache.findIndex(function(t){return t.id===e.id});t>=0?this.conversationCache[t]=c({},e):(this.conversationCache.push(c({},e)),this.conversationCache.length>this.config.MAX_CONVERSATIONS&&this.enforceConversationLimit()),this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage()},t.updateConversationPinStatus=function(e,t){var n=this.conversationCache.findIndex(function(t){return t.id===e});if(-1!==n){var o=this.conversationCache[n],r=!0===o.pin;if(o.pin=t,t&&!r){var s=-1;this.pinnedConversationOrder.forEach(function(e){e>s&&(s=e)}),this.pinnedConversationOrder.set(e,s+1)}else!t&&r&&this.pinnedConversationOrder.delete(e);this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage()}},t.updateConversationWithMessage=function(e,t){var n,o=e.groupId;if(!o)return!1;var r=this.conversationCache.findIndex(function(e){return e.id===o});if(-1===r)return!1;var s=this.conversationCache[r],i=(null==(n=s.latest)?void 0:n.msgId)||0;return this.activeConversation&&this.activeConversation.id===o?s.unreadCount=0:t!==e.username&&(s.unreadCount+=e.msgId>i?e.msgId-i:1),s.latest=e,this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage(),!0},t.getGroupMessages=function(e){return this.recordAccess(e),!this.groupMessageCache[e]&&this.persistEnabled&&this.loadGroupMessagesFromStorage(e),this.groupMessageCache[e]||[]},t.addGroupMessage=function(e){if(e.groupId){this.recordAccess(e.groupId),this.groupMessageCache[e.groupId]||(this.groupMessageCache[e.groupId]=[]);var t=this.groupMessageCache[e.groupId].findIndex(function(t){return t.msgId===e.msgId});t>=0?this.groupMessageCache[e.groupId][t]=e:this.groupMessageCache[e.groupId].push(e),this.sortGroupMessages(e.groupId),this.limitGroupMessageCache(e.groupId),this.enforceMemoryLimits(),this.persistEnabled&&this.saveGroupMessagesToStorage(e.groupId)}},t.addGroupMessages=function(e){for(var t,n=this,o={},r=a(e);!(t=r()).done;){var s=t.value;s.groupId&&(o[s.groupId]||(o[s.groupId]=[]),o[s.groupId].push(s))}for(var i=0,c=Object.entries(o);i<c.length;i++){var u=c[i],d=u[0],l=u[1];this.recordAccess(Number(d)),this.groupMessageCache[d]||(this.groupMessageCache[d]=[]);for(var g,h=function(){var e=g.value,t=n.groupMessageCache[d].findIndex(function(t){return t.msgId===e.msgId});t>=0?n.groupMessageCache[d][t]=e:n.groupMessageCache[d].push(e)},p=a(l);!(g=p()).done;)h();this.sortGroupMessages(Number(d)),this.limitGroupMessageCache(Number(d)),this.persistEnabled&&this.saveGroupMessagesToStorage(Number(d))}this.enforceMemoryLimits()},t.sortConversations=function(){var e=this;this.conversationCache.sort(function(t,n){var o,r,s,i,a=!0===t.pin,c=!0===n.pin;if(a&&!c)return-1;if(!a&&c)return 1;if(a&&c)return(null!=(s=e.pinnedConversationOrder.get(t.id))?s:0)-(null!=(i=e.pinnedConversationOrder.get(n.id))?i:0);var u=(null==(o=t.latest)?void 0:o.createTime)||0;return((null==(r=n.latest)?void 0:r.createTime)||0)-u})},t.sortGroupMessages=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].sort(function(e,t){return(t.createTime||0)-(e.createTime||0)})},t.limitGroupMessageCache=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].length>this.config.MAX_GROUP_MESSAGES&&(this.groupMessageCache[e]=this.groupMessageCache[e].slice(0,this.config.MAX_GROUP_MESSAGES))},t.recordAccess=function(e){this.accessTimeRecord[e]=Date.now()},t.enforceConversationLimit=function(){this.conversationCache.length<=this.config.MAX_CONVERSATIONS||(this.sortConversations(),this.conversationCache=this.conversationCache.slice(0,this.config.MAX_CONVERSATIONS))},t.enforceMemoryLimits=function(){var e=this,t=Object.keys(this.groupMessageCache).length;if(t>10){var n=Object.keys(this.groupMessageCache).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}});n.sort(function(e,t){return e.lastAccess-t.lastAccess});for(var o=Math.ceil(.3*t),r=0;r<o&&r<n.length;r++){var s=n[r].groupId;this.persistEnabled&&(delete this.groupMessageCache[s],this.debug&&console.log("Released memory for inactive group: "+s))}}},t.setupCleanupInterval=function(){var e=this;this.cleanupTimer&&clearInterval(this.cleanupTimer),this.cleanupTimer=window.setInterval(function(){e.cleanupExpiredData()},this.config.EXPIRY_CHECK_INTERVAL)},t.cleanupExpiredData=function(){var e=Date.now();this.metaInfo.lastCleanup=e,this.debug&&console.log("Running cache cleanup");for(var t=0,n=Object.entries(this.accessTimeRecord);t<n.length;t++){var o=n[t],r=o[0];e-o[1]>this.config.CACHE_TTL&&(delete this.accessTimeRecord[r],this.groupMessageCache[r]&&delete this.groupMessageCache[r])}this.persistEnabled&&this.saveMetaInfoToStorage()},t.loadFromStorage=function(){var e=this;try{var t=localStorage.getItem(S.META_INFO);t&&(this.metaInfo=JSON.parse(t));var n=localStorage.getItem(S.CONVERSATIONS);n&&(this.conversationCache=JSON.parse(n)),Object.keys(localStorage).filter(function(e){return e.startsWith(S.GROUP_MESSAGES+".")}).forEach(function(t){var n=t.split(".")[1];n&&!isNaN(Number(n))&&(e.accessTimeRecord[n]=0)});var o=localStorage.getItem(S.USER_INFO);o&&(this.userInfo=JSON.parse(o))}catch(e){console.error("Failed to load cache from storage:",e),this.clearStorage()}},t.loadGroupMessagesFromStorage=function(e){try{for(var t=[],n=0,o=!0;o;){var r=localStorage.getItem(S.GROUP_MESSAGES+"."+e+(n>0?"."+n:""));if(r){var s=JSON.parse(r);t=t.concat(s),n++}else o=!1}t.length>0&&(this.groupMessageCache[e]=t,this.sortGroupMessages(e),this.limitGroupMessageCache(e),this.debug&&console.log("Loaded "+t.length+" messages for group "+e+" from storage"))}catch(t){console.error("Failed to load group messages for "+e+" from storage:",t)}},t.saveConversationsToStorage=function(){try{localStorage.setItem(S.CONVERSATIONS,JSON.stringify(this.conversationCache))}catch(e){console.error("Failed to save conversations to storage:",e),this.handleStorageError()}},t.saveGroupMessagesToStorage=function(e){try{if(void 0!==e){var t=this.groupMessageCache[e];if(!t||0===t.length)return;var n=JSON.stringify(t);if(n.length>this.config.STORAGE_CHUNK_SIZE){this.clearGroupMessageStorage(e);for(var o=t.length,r=Math.max(1,Math.floor(this.config.STORAGE_CHUNK_SIZE/(n.length/o))),s=0;s<o;s+=r){var i=t.slice(s,s+r),a=Math.floor(s/r);localStorage.setItem(S.GROUP_MESSAGES+"."+e+(a>0?"."+a:""),JSON.stringify(i))}}else localStorage.setItem(S.GROUP_MESSAGES+"."+e,n)}else for(var c=0,u=Object.keys(this.groupMessageCache);c<u.length;c++)this.saveGroupMessagesToStorage(Number(u[c]))}catch(e){console.error("Failed to save group messages to storage:",e),this.handleStorageError()}},t.saveMetaInfoToStorage=function(){try{localStorage.setItem(S.META_INFO,JSON.stringify(this.metaInfo))}catch(e){console.error("Failed to save meta info to storage:",e)}},t.handleStorageError=function(){for(var e=this,t=Object.keys(this.accessTimeRecord).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}}).sort(function(e,t){return e.lastAccess-t.lastAccess}),n=Math.max(1,Math.floor(.2*t.length)),o=0;o<n&&o<t.length;o++)this.clearGroupMessageStorage(Number(t[o].groupId)),this.debug&&console.log("Cleared storage for group "+t[o].groupId+" due to quota exceeded")},t.clearGroupMessageStorage=function(e){for(var t=0,n=!0;n;){var o=S.GROUP_MESSAGES+"."+e+(t>0?"."+t:"");null!==localStorage.getItem(o)?(localStorage.removeItem(o),t++):n=!1}},t.saveUserInfoToStorage=function(){try{localStorage.setItem(S.USER_INFO,JSON.stringify(this.userInfo))}catch(e){console.error("Failed to save user info to storage:",e)}},t.clearStorage=function(){try{for(var e,t=a(Object.keys(localStorage).filter(function(e){return e.startsWith(b)}));!(e=t()).done;)localStorage.removeItem(e.value)}catch(e){console.error("Failed to clear storage:",e)}},t.destroy=function(){this.cleanupTimer&&(clearInterval(this.cleanupTimer),this.cleanupTimer=void 0),this.debug&&console.log("Cache manager destroyed")},t.markConversationAsActive=function(e){this.accessTimeRecord[e]=Date.now();var t=this.conversationCache.find(function(t){return t.id===e});return!!t&&(this.activeConversation=c({},t),!0)},t.resetActiveConversation=function(){var e,t=!(null==(e=this.activeConversation)||!e.id);return this.activeConversation=void 0,this.debug&&t&&console.log("Active conversation reset"),t},e}(),y=/*#__PURE__*/function(){function e(e){this.url=void 0,this.token=void 0,this.eventSource=null,this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectTimeout=2e3*Math.random()+3e3,this.connectTimeout=1e4,this.reconnectTimer=null,this.handlers=new Map,this.connected=!1,this.onMessageCallback=void 0,this.onReconnectSuccessCallback=void 0,this.onConnectionClosedCallback=void 0,this.onMaxRetriesReachedCallback=void 0,this.onConnectionChangeCallback=void 0,this.isDestroyed=!1,this.debug=!1,this._openHandler=null,this._errorHandler=null,this._messageHandler=null,this._customHandlers=new Map,this.connectTimeoutRef=null,this.url=e.url,this.token=e.token,this.connectTimeout=e.connectTimeout||1e4,this.reconnectTimeout=e.retryInterval||2e3*Math.random()+3e3,this.maxReconnectAttempts=e.maxRetries||5,this.debug=e.debug||!1,this.onMessageCallback=e.onMessage,this.onReconnectSuccessCallback=e.onReconnectSuccess,this.onConnectionClosedCallback=e.onConnectionClosed,this.onMaxRetriesReachedCallback=e.onMaxRetriesReached,this.onConnectionChangeCallback=e.onConnectionChange}var t=e.prototype;return t.debugLog=function(e){var t;this.debug&&(t=console).log.apply(t,["[SSE] "+e].concat([].slice.call(arguments,1)))},t.debugError=function(e){var t;this.debug&&(t=console).error.apply(t,["[SSE] "+e].concat([].slice.call(arguments,1)))},t.debugWarn=function(e){var t;this.debug&&(t=console).warn.apply(t,["[SSE] "+e].concat([].slice.call(arguments,1)))},t.removeAllEventListeners=function(){var e=this;this.eventSource&&(this._openHandler&&this.eventSource.removeEventListener("open",this._openHandler),this._errorHandler&&this.eventSource.removeEventListener("error",this._errorHandler),this._messageHandler&&this.eventSource.removeEventListener("message",this._messageHandler),this.handlers.forEach(function(t,n){var o=e._customHandlers.get(n);o&&e.eventSource&&e.eventSource.removeEventListener(n,o)}))},t.subscribe=function(e,t){var n=this;this.handlers.set(e,t);var o=function(e){try{var o=JSON.parse(e.data);t(o)}catch(e){n.debugError("Error parsing message data:",e)}};this._customHandlers.set(e,o),this.eventSource?this.eventSource.addEventListener(e,o):this.connect()},t.connect=function(){var e=this;return this.connected&&this.eventSource?Promise.reject(new Error("SSE is already connected!")):new Promise(function(t,n){try{e.eventSource=new s.EventSourcePolyfill(e.url,{heartbeatTimeout:36e5,withCredentials:!1,headers:{Authorization:"Bearer "+e.token}}),e._openHandler=function(n){e.debugLog("SSE connection established"),e.connected=!0,e.onConnectionChangeCallback&&e.onConnectionChangeCallback(!0),e.reconnectAttempts>0&&e.onReconnectSuccessCallback&&e.onReconnectSuccessCallback(),e.reconnectAttempts=0,e.reconnectTimeout=5e3,t("SSE connect successful!")},e._errorHandler=function(t){e.debugError("SSE connection error:",t),e.connected=!1,e.onConnectionChangeCallback&&e.onConnectionChangeCallback(!1),401===t.status||t.statusText&&t.statusText.includes("Unauthorized")?(e.cleanup(),e.connectTimeoutRef&&(clearTimeout(e.connectTimeoutRef),e.connectTimeoutRef=null),e.notifyConnectionClosed(!0)):e.handleReconnect(),e.connected||n(new Error("SSE connect error"))},e._messageHandler=function(t){try{e.debugLog("SSE received message:",t.data);var n=JSON.parse(t.data);e.onMessageCallback&&e.onMessageCallback(n)}catch(t){e.debugError("Error parsing message:",t)}},e.eventSource.addEventListener("open",e._openHandler),e.eventSource.addEventListener("error",e._errorHandler),e.eventSource.addEventListener("message",e._messageHandler),e.handlers.forEach(function(t,n){var o=e._customHandlers.get(n);o&&e.eventSource&&e.eventSource.addEventListener(n,o)}),e.connectTimeoutRef=setTimeout(function(){e.connected||(n(new Error("Connection timeout")),e.handleReconnect())},e.connectTimeout);var o=e._openHandler;e._openHandler=function(t){clearTimeout(e.connectTimeoutRef),o(t)}}catch(t){e.debugError("Failed to create EventSource:",t),e.handleReconnect(),n(t)}})},t.notifyConnectionClosed=function(e){void 0===e&&(e=!1),this.onConnectionClosedCallback&&this.onConnectionClosedCallback(e),e?this.debugWarn("SSE connection closed due to authentication error"):this.debugLog("SSE connection closed")},t.handleReconnect=function(){var e=this;if(this.isDestroyed)this.debugLog("SSE is destroyed, skipping reconnection");else if(null===this.reconnectTimer){if(this.reconnectAttempts>=this.maxReconnectAttempts)return this.debugError("Max reconnection attempts reached"),this.destroySse(),void(this.onMaxRetriesReachedCallback&&this.onMaxRetriesReachedCallback());this.debugLog("Attempting to reconnect in "+this.reconnectTimeout/1e3+" seconds..."),this.cleanup(),this.reconnectTimer=window.setTimeout(function(){e.reconnectAttempts++,e.reconnectTimeout=Math.min(2*e.reconnectTimeout,6e4),e.reconnectTimer=null,e.connect().catch(function(){})},this.reconnectTimeout)}},t.cleanup=function(){this.eventSource&&(this.removeAllEventListeners(),this.eventSource.close(),this.eventSource=null),this.connected=!1},t.unsubscribe=function(){this.cleanup(),this.handlers.clear(),this._customHandlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},t.destroySse=function(){this.unsubscribe(),this.isDestroyed=!0,this.notifyConnectionClosed()},t.close=function(){this.destroySse(),this.debugLog("SSE 连接已关闭")},t.isConnected=function(){return this.connected},t.send=function(e){var t="当前协议不可用:SSE 是单向通信协议,不支持客户端向服务器发送消息";throw this.debugError(t),new Error(t)},e}(),P=/*#__PURE__*/function(){function e(e){this.url=void 0,this.token=void 0,this.websocket=null,this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectTimeout=2e3*Math.random()+3e3,this.connectTimeout=1e4,this.reconnectTimer=null,this.handlers=new Map,this.connected=!1,this.onMessageCallback=void 0,this.onReconnectSuccessCallback=void 0,this.onConnectionClosedCallback=void 0,this.onMaxRetriesReachedCallback=void 0,this.onConnectionChangeCallback=void 0,this.connectTimeoutRef=null,this.isDestroyed=!1,this.debug=!1,this.url=e.url,this.token=e.token,this.connectTimeout=e.connectTimeout||1e4,this.reconnectTimeout=e.retryInterval||2e3*Math.random()+3e3,this.maxReconnectAttempts=e.maxRetries||5,this.debug=e.debug||!1,this.onMessageCallback=e.onMessage,this.onReconnectSuccessCallback=e.onReconnectSuccess,this.onConnectionClosedCallback=e.onConnectionClosed,this.onMaxRetriesReachedCallback=e.onMaxRetriesReached,this.onConnectionChangeCallback=e.onConnectionChange}var t=e.prototype;return t.debugLog=function(e){var t;this.debug&&(t=console).log.apply(t,["[WebSocket] "+e].concat([].slice.call(arguments,1)))},t.debugError=function(e){var t;this.debug&&(t=console).error.apply(t,["[WebSocket] "+e].concat([].slice.call(arguments,1)))},t.debugWarn=function(e){var t;this.debug&&(t=console).warn.apply(t,["[WebSocket] "+e].concat([].slice.call(arguments,1)))},t.subscribe=function(e,t){this.handlers.set(e,t),this.websocket?this.addMessageHandler(e,t):this.connect()},t.addMessageHandler=function(e,t){var n=this;this.websocket&&this.websocket.addEventListener("message",function(o){try{var r=JSON.parse(o.data);r.type===e&&t(r)}catch(e){n.debugError("Error parsing WebSocket message data:",e)}})},t.connect=function(){var e=this;return this.connected&&this.websocket?Promise.reject(new Error("WebSocket is already connected!")):new Promise(function(t,n){try{var o=new URL(e.url);o.searchParams.set("token",e.token),e.websocket=new WebSocket(o.toString()),e.connectTimeoutRef=setTimeout(function(){e.connected||(n(new Error("WebSocket connection timeout")),e.handleReconnect())},e.connectTimeout),e.websocket.onopen=function(n){e.debugLog("WebSocket connection established"),e.connected=!0,clearTimeout(e.connectTimeoutRef),e.onConnectionChangeCallback&&e.onConnectionChangeCallback(!0),e.reconnectAttempts>0&&e.onReconnectSuccessCallback&&e.onReconnectSuccessCallback(),e.reconnectAttempts=0,e.reconnectTimeout=5e3,t("WebSocket connect successful!")},e.websocket.onerror=function(t){e.debugError("WebSocket connection error:",t),e.connected=!1,clearTimeout(e.connectTimeoutRef),e.onConnectionChangeCallback&&e.onConnectionChangeCallback(!1),e.handleReconnect(),e.connected||n(new Error("WebSocket connect error"))},e.websocket.onclose=function(t){e.debugLog("WebSocket connection closed:",t.code,t.reason),e.connected=!1,e.onConnectionChangeCallback&&e.onConnectionChangeCallback(!1),1002===t.code||1003===t.code||t.reason&&t.reason.includes("Unauthorized")?(e.cleanup(),e.notifyConnectionClosed(!0)):e.handleReconnect()},e.websocket.onmessage=function(t){try{e.debugLog("WebSocket received message:",t.data);var n=JSON.parse(t.data);if("pong"===n.type||2===n.ev)return void(e.connected=!0);e.onMessageCallback&&e.onMessageCallback(n)}catch(t){e.debugError("Error parsing WebSocket message:",t)}},e.handlers.forEach(function(t,n){e.addMessageHandler(n,t)})}catch(t){e.debugError("Failed to create WebSocket:",t),e.handleReconnect(),n(t)}})},t.notifyConnectionClosed=function(e){void 0===e&&(e=!1),this.onConnectionClosedCallback&&this.onConnectionClosedCallback(e),e?this.debugWarn("WebSocket connection closed due to authentication error"):this.debugLog("WebSocket connection closed")},t.handleReconnect=function(){var e=this;if(this.isDestroyed)this.debugLog("WebSocket is destroyed, skipping reconnection");else if(null===this.reconnectTimer){if(this.reconnectAttempts>=this.maxReconnectAttempts)return this.debugError("Max reconnection attempts reached"),this.destroyWebSocket(),void(this.onMaxRetriesReachedCallback&&this.onMaxRetriesReachedCallback());this.debugLog("Attempting to reconnect in "+this.reconnectTimeout/1e3+" seconds..."),this.cleanup(),this.reconnectTimer=window.setTimeout(function(){e.reconnectAttempts++,e.reconnectTimeout=Math.min(2*e.reconnectTimeout,6e4),e.reconnectTimer=null,e.connect().catch(function(){})},this.reconnectTimeout)}},t.cleanup=function(){this.websocket&&(this.websocket.close(),this.websocket=null),this.connected=!1},t.unsubscribe=function(){this.cleanup(),this.handlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},t.destroyWebSocket=function(){this.unsubscribe(),this.isDestroyed=!0,this.notifyConnectionClosed()},t.close=function(){this.destroyWebSocket(),this.debugLog("WebSocket 连接已关闭")},t.isConnected=function(){var e;return this.connected&&(null==(e=this.websocket)?void 0:e.readyState)===WebSocket.OPEN},t.send=function(e){if(!this.websocket||!this.isConnected())return this.debugWarn("WebSocket is not connected, cannot send message"),!1;try{if("string"==typeof e)this.websocket.send(e),this.debugLog("WebSocket message sent (string):",e);else if(e instanceof ArrayBuffer||e instanceof Blob)this.websocket.send(e),this.debugLog("WebSocket message sent (binary):","ArrayBuffer/Blob ("+(e instanceof ArrayBuffer?e.byteLength:e.size)+" bytes)");else if(e instanceof Uint8Array||e instanceof Int8Array||e instanceof Uint16Array||e instanceof Int16Array||e instanceof Uint32Array||e instanceof Int32Array||e instanceof Float32Array||e instanceof Float64Array||e instanceof DataView)this.websocket.send(e),this.debugLog("WebSocket message sent (binary):","ArrayBufferView ("+e.byteLength+" bytes)");else{var t=JSON.stringify(e);this.websocket.send(t),this.debugLog("WebSocket message sent (JSON):",t)}return!0}catch(e){return this.debugError("Failed to send WebSocket message:",e),!1}},e}(),O=["protocol"],G=/*#__PURE__*/function(){function e(){}return e.createClient=function(e){var t=e.protocol,n=function(e,t){if(null==e)return{};var n={};for(var o in e)if({}.hasOwnProperty.call(e,o)){if(-1!==t.indexOf(o))continue;n[o]=e[o]}return n}(e,O);switch(t){case exports.ConnectionProtocol.SSE:return new y(n);case exports.ConnectionProtocol.WEBSOCKET:return new P(n);default:throw new Error("Unsupported connection protocol: "+t)}},e}(),R=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.login=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.Login,method:"POST"}))}catch(e){return Promise.reject(e)}},t.logout=function(){try{return Promise.resolve(this.sdk.sendRequest({data:{},url:exports.RequestApi.Logout,method:"POST"}))}catch(e){return Promise.reject(e)}},t.getChatMember=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{chatId:e},url:exports.RequestApi.GetChatMember,method:"GET"}))}catch(e){return Promise.reject(e)}},e}(),k=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.sendMessage=function(e,t){try{var n=this;return Promise.resolve(function(o,r){try{var s=Promise.resolve(n.sdk.sendRequest({data:e,url:t,method:"POST"}))}catch(e){return r(e)}return s&&s.then?s.then(void 0,r):s}(0,function(e){throw console.error("Failed to send message",e),e}))}catch(e){return Promise.reject(e)}},t.getMessageApi=function(e,t){return t===exports.GroupType.PrivateChat?exports.RequestApi.PushPrivateMessage:t===exports.GroupType.LiveGroup?exports.RequestApi.PushLiveMessage:null!=e&&e.receiverName?exports.RequestApi.PushMessageToMember:exports.RequestApi.CreateTextMessage},t.createMessage=function(e,t,n,o,r){void 0===o&&(o={});var s={groupType:n};n===exports.GroupType.PublicGroup||n===exports.GroupType.PrivateGroup||n===exports.GroupType.LiveGroup?s.groupId=t:s.receiverName=t;var i=c({},s,o,{msgType:e},r);return this.sendMessage(i,this.getMessageApi(s,n))},t.createTextMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(exports.MessageType.TEXT,t,n,o,{text:e}))}catch(e){return Promise.reject(e)}},t.createImageMessage=function(e,t,n,o,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(exports.MessageType.IMAGE,n,o,r,{link:e,snapshot:t}))}catch(e){return Promise.reject(e)}},t.createFileMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(exports.MessageType.FILE,t,n,o,{link:e}))}catch(e){return Promise.reject(e)}},t.createAudioMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(exports.MessageType.AUDIO,t,n,o,{link:e}))}catch(e){return Promise.reject(e)}},t.createVideoMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(exports.MessageType.VIDEO,t,n,o,{link:e}))}catch(e){return Promise.reject(e)}},t.createLinkMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(exports.MessageType.LINK,t,n,o,{link:e}))}catch(e){return Promise.reject(e)}},t.createGifMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(exports.MessageType.GIF,t,n,o,{link:e}))}catch(e){return Promise.reject(e)}},t.createOptionMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(exports.MessageType.OPTION,t,n,o,{text:e}))}catch(e){return Promise.reject(e)}},t.createEmojiMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(exports.MessageType.EMOJI,t,n,o,{text:e}))}catch(e){return Promise.reject(e)}},t.createCustomMessage=function(e,t,n,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(exports.MessageType.CUSTOM,t,n,o,{text:e}))}catch(e){return Promise.reject(e)}},t.getHistoryMessageList=function(e){var t=e.groupId,n=e.lastId,o=e.type,r=e.size,s=void 0===r?100:r;try{return Promise.resolve(this.sdk.sendRequest({url:exports.RequestApi.GetHistoryMessageList,method:"POST",data:{groupId:t,lastId:n,type:o,size:s}}))}catch(e){return Promise.reject(e)}},t.getLiveMessageList=function(e){var t=e.groupId;try{var n;return Promise.resolve(this.sdk.sendRequest({data:{groupId:t},url:null!=(n=this.sdk.getConfig)&&n.anonLogin?exports.RequestApi.GetAnonymousLiveMessageList:exports.RequestApi.GetLiveMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},t.prePushCustomerMessage=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.PrePushCustomerMessage,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),A=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.getConversations=function(e){try{var t=this;return Promise.resolve(t.sdk.sendRequest({data:e,url:exports.RequestApi.GetAllConversationList,method:"GET"})).then(function(e){return e.data.records=e.data.records.map(t.normalizeConversation),e})}catch(e){return Promise.reject(e)}},t.markConversationRead=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.MarkConversationMessageAsRead,method:"GET"}))}catch(e){return Promise.reject(e)}},t.markLastRead=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e,msgId:t},url:exports.RequestApi.MarkConversationMessageAsRead,method:"GET"}))}catch(e){return Promise.reject(e)}},t.pinConversation=function(e,t){void 0===t&&(t=1);try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e,isTop:t},url:exports.RequestApi.PinConversation,method:"GET"}))}catch(e){return Promise.reject(e)}},t.muteConversation=function(e,t){void 0===t&&(t=1);try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e,mute:t},url:exports.RequestApi.MuteConversation,method:"GET"}))}catch(e){return Promise.reject(e)}},t.normalizeConversation=function(e){var t,n,o,r,s,i,a,u;return c({},e,{id:e.id,name:e.name||"",groupType:e.groupType||0,avatar:e.avatar||"",status:null!=(t=e.status)?t:1,latest:null!=(n=e.latest)?n:{},unreadCount:null!=(o=e.unreadCount)?o:0,draftText:null!=(r=e.draftText)?r:"",custom:null!=(s=e.custom)?s:"",groupMemberId:null!=(i=e.groupMemberId)?i:"",pin:null!=(a=e.pin)&&a,supportId:e.supportId||"",supportNick:e.supportNick||"",identity:null!=(u=e.identity)?u:1})},e}(),x=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.getGroupInfo=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:exports.RequestApi.GetGroupInfo,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getGroupMember=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:exports.RequestApi.GetGroupMember,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getGroupMembers=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.GetGroupMembers,method:"GET"}))}catch(e){return Promise.reject(e)}},t.joinGroup=function(e){try{var t;return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:null!=(t=this.sdk.getConfig)&&t.anonLogin?exports.RequestApi.AnonymousJoinGroup:exports.RequestApi.JoinGroup,method:"GET"}))}catch(e){return Promise.reject(e)}},t.leftGroup=function(e){try{var t;return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:null!=(t=this.sdk.getConfig)&&t.anonLogin?exports.RequestApi.AnonymousLeftGroup:exports.RequestApi.LeftGroup,method:"GET"}))}catch(e){return Promise.reject(e)}},t.checkGroupBlock=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:exports.RequestApi.CheckGroupBlock,method:"GET"}))}catch(e){return Promise.reject(e)}},t.updateLatestMessage=function(e){try{var t=Object.fromEntries(e.entries());return Promise.resolve(this.sdk.sendRequest({data:{latestMessage:t},url:exports.RequestApi.UpdateLatestMessage,method:"POST"}))}catch(e){return Promise.reject(e)}},t.getGroupLatestMessage=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groups:e},url:exports.RequestApi.GetLatestGroupChats,method:"POST"}))}catch(e){return Promise.reject(e)}},t.checkGroupLatestMessage=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{ttl:e},url:exports.RequestApi.CheckLatestMessages,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getMyGroupPermission=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:exports.RequestApi.GetMyGroupPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getGroupPermission=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:exports.RequestApi.GetGroupPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getGroupMemberPermission=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e,targetMemberId:t},url:exports.RequestApi.GetGroupMemberPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},t.updateGroupPermission=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.UpdateGroupPermission,method:"POST"}))}catch(e){return Promise.reject(e)}},t.updateGroupMemberPermission=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.UpdateGroupMemberPermission,method:"POST"}))}catch(e){return Promise.reject(e)}},t.kickGroupMember=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.kickGroupMember,method:"POST"}))}catch(e){return Promise.reject(e)}},t.muteMembers=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.muteMembers,method:"POST"}))}catch(e){return Promise.reject(e)}},t.editGroupName=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:exports.RequestApi.editeGroupName,method:"GET",data:{groupId:e,name:t}}))}catch(e){return Promise.reject(e)}},t.editNotification=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:exports.RequestApi.editeNotification,method:"GET",data:{groupId:e,notification:t}}))}catch(e){return Promise.reject(e)}},t.editGroupCustomer=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:exports.RequestApi.editeGroupCustomer,method:"GET",data:{groupId:e,customer:t}}))}catch(e){return Promise.reject(e)}},t.addAdmin=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:exports.RequestApi.addAdmin,method:"GET",data:{groupId:e,username:t}}))}catch(e){return Promise.reject(e)}},t.deleteAdmin=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:exports.RequestApi.deleteAdmin,method:"GET",data:{groupId:e,username:t}}))}catch(e){return Promise.reject(e)}},t.dissolveGroup=function(e){try{return Promise.resolve(this.sdk.sendRequest({url:exports.RequestApi.DissolveGroup,method:"GET",data:{groupId:e}}))}catch(e){return Promise.reject(e)}},t.pin=function(e,t,n){try{return Promise.resolve(this.sdk.sendRequest({url:exports.RequestApi.pin,method:"GET",data:{groupId:e,messageId:t,type:n}}))}catch(e){return Promise.reject(e)}},t.muteGroup=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:exports.RequestApi.muteGroup,method:"GET",data:{groupId:e,type:t}}))}catch(e){return Promise.reject(e)}},t.muteMember=function(e,t,n){try{return Promise.resolve(this.sdk.sendRequest({url:exports.RequestApi.muteMember,method:"GET",data:{groupId:e,username:t,type:n}}))}catch(e){return Promise.reject(e)}},t.addGroupMembers=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.AddGroupMembers,method:"POST"}))}catch(e){return Promise.reject(e)}},t.getFileByType=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.GetFileByType,method:"GET"}))}catch(e){return Promise.reject(e)}},t.pinChat=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e,type:t},url:exports.RequestApi.PinChat,method:"GET"}))}catch(e){return Promise.reject(e)}},e}(),I=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.getContactByType=function(e,t){try{var n={contactType:e};return void 0!==t&&(n.groupId=t),Promise.resolve(this.sdk.sendRequest({data:n,url:exports.RequestApi.GetContactByType,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getMemberContacts=function(e){try{return Promise.resolve(this.getContactByType(exports.ContactType.MEMBER,e))}catch(e){return Promise.reject(e)}},t.getColleagueContacts=function(e){try{return Promise.resolve(this.getContactByType(exports.ContactType.COLLEAGUE,e))}catch(e){return Promise.reject(e)}},t.getGroupContacts=function(e){try{return Promise.resolve(this.getContactByType(exports.ContactType.GROUP,e))}catch(e){return Promise.reject(e)}},t.editContactTag=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.EditContactTag,method:"POST"}))}catch(e){return Promise.reject(e)}},t.getContactTag=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{contactType:e},url:exports.RequestApi.GetContactTag,method:"GET"}))}catch(e){return Promise.reject(e)}},t.allocationContactTag=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.AllocationContactTag,method:"POST"}))}catch(e){return Promise.reject(e)}},t.allocationMemberTag=function(e,t,n){void 0===n&&(n=0);try{return Promise.resolve(this.allocationContactTag({contactType:exports.ContactType.MEMBER,tag:e,groupIds:t,type:n}))}catch(e){return Promise.reject(e)}},t.allocationColleagueTag=function(e,t,n){void 0===n&&(n=0);try{return Promise.resolve(this.allocationContactTag({contactType:exports.ContactType.COLLEAGUE,tag:e,groupIds:t,type:n}))}catch(e){return Promise.reject(e)}},t.allocationGroupTag=function(e,t,n){void 0===n&&(n=0);try{return Promise.resolve(this.allocationContactTag({contactType:exports.ContactType.GROUP,tag:e,groupIds:t,type:n}))}catch(e){return Promise.reject(e)}},e}(),L=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.services={},this.sdk=e}var t=e.prototype;return t.get=function(e){return this.services[e]||(this.services[e]=this.createService(e)),this.services[e]},t.createService=function(e){switch(e){case exports.ServiceName.USER:return new R(this.sdk);case exports.ServiceName.MESSAGE:return new k(this.sdk);case exports.ServiceName.CONVERSATION:return new A(this.sdk);case exports.ServiceName.GROUP:return new x(this.sdk);case exports.ServiceName.CONTACT:return new I(this.sdk);default:throw new Error("Unknown service: "+e)}},t.reset=function(){this.services={}},e}();function U(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}var N=[exports.RequestApi.Logout,exports.CbEvents.OnKickedOffline,exports.CbEvents.OnUserTokenInvalid,exports.CbEvents.OnUserTokenExpired];exports.SIMSDK=/*#__PURE__*/function(e){function t(t){var n;return void 0===t&&(t=!1),(n=e.call(this)||this).config={debug:!1,isLive:!1,useProtobuf:!1,protocol:exports.ConnectionProtocol.SSE},n.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},n.cacheManager=void 0,n.connectionClient=void 0,n.serviceManager=void 0,n.lastUnauthorizedTime=0,n.UNAUTHORIZED_THROTTLE_MS=3e3,n.configure=function(e){void 0!==e.debug&&(n.config.debug=e.debug),e.isLive&&(n.config.isLive=e.isLive),e.apiAddr&&(n.config.apiAddr=e.apiAddr),e.wsAddr&&(n.config.wsAddr=e.wsAddr),e.ossApiAddr&&(n.config.ossApiAddr=e.ossApiAddr),e.appKey&&(n.config.appKey=e.appKey),e.token&&(n.config.token=e.token),e.connectTimeout&&(n.config.connectTimeout=e.connectTimeout),e.maxRetries&&(n.config.maxRetries=e.maxRetries),e.useProtobuf&&(n.config.useProtobuf=e.useProtobuf),e.protocol&&(n.config.protocol=e.protocol)},n.sendRequest=function(e){try{n.internalState.lastActivity=Date.now(),n.config.debug&&n.logRequest(e);var t=n.config.apiAddr+e.url,o=e.data;if("GET"===e.method&&o){var r=new URLSearchParams;Object.entries(o).forEach(function(e){var t=e[1];null!=t&&r.append(e[0],String(t))});var s=r.toString();s&&(t+=(t.includes("?")?"&":"?")+s),o=void 0}return Promise.resolve(U(function(){return Promise.resolve(function(e){try{var t,n=function(e){if(t)return e;throw new Error("Unsupported platform")},o=function(){if(C){var n=new Promise(function(t,n){uni.request({url:e.url,method:e.method||"GET",header:e.headers,data:e.data,success:function(e){401!==e.statusCode?t(e.data):n({status:401,message:"Unauthorized"})},fail:function(e){return n(e)}})});return t=1,n}return function(){if(M)return Promise.resolve(fetch(e.url,{method:e.method||"GET",headers:e.headers,body:e.data?JSON.stringify(e.data):null})).then(function(e){if(401===e.status)throw{status:401,message:"Unauthorized"};return Promise.resolve(e.json()).then(function(e){return t=1,e})})}()}();return Promise.resolve(o&&o.then?o.then(n):n(o))}catch(e){return Promise.reject(e)}}({url:t,method:e.method,headers:{"Content-Type":"application/json",Authorization:n.config.token?"Bearer "+n.config.token:""},data:o}))},function(e){throw 401!==(null==e?void 0:e.status)&&401!==(null==e?void 0:e.statusCode)||n.handleUnauthorizedWithThrottle(t),e}))}catch(e){return Promise.reject(e)}},n.handleUnauthorizedWithThrottle=function(e){var t=Date.now();t-n.lastUnauthorizedTime<n.UNAUTHORIZED_THROTTLE_MS?console.warn("401错误被节流限制,跳过处理:"+e):(n.lastUnauthorizedTime=t,n.handleUnauthorized(e))},n.handleUnauthorized=function(e){console.warn("未授权请求(401):",e),n.handleConnectionClosed(!0)},n.createRequestFunction=function(e,t){return function(o){return n.sendRequest({data:o,url:e,method:t})}},n.createRequestFunctionWithoutParams=function(e,t){return function(){return n.sendRequest({data:void 0,method:t,url:e})}},n.handleMessage=function(e){n.config.debug&&console.log("[SDK] handleMessage response",e),n.isProtobufFormat(e)?n.handleProtobufMessage(e):n.handleJsonMessage(e)},n.handleJsonMessage=function(e){switch(n.config.debug&&console.log("handleMessage response",e),e.ev){case exports.SseEventType.EVENT_MESSAGE_PUSH:var t=e.dt;Array.isArray(t)?(t.forEach(function(e){n.updateMessageCache(e)}),n.emit(exports.CbEvents.OnReceiveMessages,t)):console.warn("[SDK] Expected response.dt to be an array, but got:",t);break;case exports.SseEventType.EVENT_PONG_IDLE:n.internalState.isConnected=!0;break;case exports.SseEventType.EVENT_SYSTEM_MESSAGE_PUSH:n.emit(exports.CbEvents.OnReceiveSystemMessage,e.dt);break;case exports.SseEventType.EVENT_PRE_MESSAGE_PUSH:n.emit(exports.CbEvents.OnReceivePreMessage,e.dt);break;case exports.SseEventType.EVENT_SUBSCRIBE_MESSAGE_PUSH:n.emit(exports.CbEvents.OnReceiveSubscribeMessage,e.dt);break;default:o=e.ev,Object.values(exports.CbEvents).includes(o)?(n.emit(e.ev,e.dt),N.includes(e.ev)&&(n.internalState.isLoggedIn=!1,n.internalState.isConnected=!1,n.connectionClient&&(n.connectionClient.close(),n.connectionClient=void 0))):n.config.debug&&console.warn("[SDK] Unknown SSE event type:",e.ev)}var o},n.handleReconnectSuccess=function(){n.config.username&&(n.internalState.isConnected=!0,n.internalState.reconnectAttempts=0,n.config.debug&&console.log("SSE reconnection successful"),n.emit(exports.CbEvents.OnReconnected))},n.handleConnectionClosed=function(e){n.internalState.isConnected=!1,n.config.debug&&console.log("SSE connection closed"),n.emit(exports.CbEvents.OnDisconnected,e)},n.handleMaxRetriesReached=function(){n.config.debug&&console.log("SSE connection max reconnection attempts reached"),n.emit(exports.CbEvents.onMaxRetriesReached)},n.handleConnectionChange=function(e){n.config.debug&&console.log("Connection status changed:",e),n.emit(e?exports.CbEvents.OnConnected:exports.CbEvents.OnDisconnected)},n.login=function(e){try{var t,o,r=function(r){return t?r:(n.connectionClient=G.createClient({url:n.config.wsAddr+"/"+(e.anonLogin?"anonymousConn":"conn")+"?username="+e.username+"&token="+e.token+"&appKey="+n.config.appKey+"&random="+o,protocol:n.config.protocol||exports.ConnectionProtocol.WEBSOCKET,debug:n.config.debug,onMessage:n.handleMessage,onReconnectSuccess:n.handleReconnectSuccess,onConnectionClosed:n.handleConnectionClosed,onMaxRetriesReached:n.handleMaxRetriesReached,onConnectionChange:n.handleConnectionChange,token:e.token,connectTimeout:n.config.connectTimeout,maxRetries:n.config.maxRetries}),U(function(){return Promise.resolve(n.connectionClient.connect()).then(function(e){return n.internalState.isLoggedIn=!0,n.internalState.isConnected=!0,n.config.isLive||n.initializeConversationCache(),e})},function(e){return n.internalState.isLoggedIn=!1,n.internalState.isConnected=!1,Promise.reject(e.message)}))};if(n.connectionClient&&(null==n.connectionClient.close||n.connectionClient.close(),n.connectionClient=void 0,n.internalState.isLoggedIn=!1,n.internalState.isConnected=!1),!n.config.apiAddr)return Promise.reject("No apiAddr configured. Please call configure() before login().");if(!n.config.ossApiAddr)return Promise.reject("No ossApiAddr configured. Please call configure() before login().");if(!n.config.appKey)return Promise.reject("No appKey configured. Please call configure() before login().");if(!n.config.token)return Promise.reject("No token configured. Please call configure() before login().");if(n.config.username=e.username,n.config.anonLogin=e.anonLogin||!1,e.protocol&&(n.config.protocol=e.protocol),e.protocol==exports.ConnectionProtocol.WEBSOCKET&&!n.config.wsAddr)return Promise.reject("WebSocket address (wsAddr) is not configured. Please call configure() before login().");if(n.config.debug&&(console.log("login params",e),console.log("apiAddr",n.config.apiAddr)),!n.config.isLive||!e.anonLogin){n.cacheManager.initialize(e.username),n.cacheManager.resetActiveConversation();var s=n.cacheManager.getConversations();s.length>0&&n.emit(exports.CbEvents.OnConversationListUpdated,s)}var i=function(){if(!e.anonLogin)return Promise.resolve(n.user.login(c({},e,{appKey:n.config.appKey}))).then(function(e){var n=e.code,r=e.data;if(0!=n){var s=Promise.resolve("Login failed, Server error, error code is "+n);return t=1,s}o=r})}();return Promise.resolve(i&&i.then?i.then(r):r(i))}catch(e){return Promise.reject(e)}},n.logout=function(){try{return n.connectionClient&&(n.connectionClient.close(),n.connectionClient=void 0),Promise.resolve(n.user.logout()).then(function(e){return n.internalState.isLoggedIn=!1,n.internalState.isConnected=!1,n.config.username=void 0,n.config.token=void 0,n.cacheManager.clear(),e})}catch(e){return Promise.reject(e)}},n.getChatMember=function(e){return n.user.getChatMember(e)},n.getConversations=function(e){try{return Promise.resolve(U(function(){var t=e.pageNo||1,o=e.pageSize||50;return t<1?(console.warn("[SDK] Invalid pageNo, must be >= 1"),!1):o<1||o>100?(console.warn("[SDK] Invalid pageSize, must be between 1 and 100"),!1):Promise.resolve(n.conversation.getConversations({pageNo:t,pageSize:o})).then(function(e){var o=e.data;if(0===e.code&&o){var r=n.cacheManager.getConversations();if(1===t)n.cacheManager.setConversations([].concat(o.records),!0);else{var s=o.records||[],i=new Map;r.forEach(function(e){i.set(e.id,e)});var a=[],c=[];s.forEach(function(e){i.has(e.id)?a.push(e):c.push(e)});var u=[];r.forEach(function(e){a.find(function(t){return t.id===e.id})||u.push(e)}),u.push.apply(u,a.concat(c)),n.cacheManager.setConversations(u,!1)}n.emit(exports.CbEvents.OnConversationListUpdated,n.cacheManager.getConversations())}else{var d=n.cacheManager.getConversations();d.length>0&&n.emit(exports.CbEvents.OnConversationListUpdated,d)}return!0})},function(e){console.error("[SDK] Failed to get conversations:",e);var t=n.cacheManager.getConversations();return t.length>0&&n.emit(exports.CbEvents.OnConversationListUpdated,t),!1}))}catch(e){return Promise.reject(e)}},n.internalUploadFile=function(e,t){try{return Promise.resolve(U(function(){var o=new FormData;return o.append("file",e),o.append("filename",e.name),o.append("groupId",t.toString()),Promise.resolve(fetch(""+n.config.ossApiAddr+exports.RequestApi.UploadFile,{method:"POST",headers:{Authorization:n.config.token?"Bearer "+n.config.token:""},body:o})).then(function(e){if(!e.ok)throw new Error("Upload failed with status: "+e.status);return Promise.resolve(e.json()).then(function(e){var t=(null==e?void 0:e.data)||{};return{originalUrl:t.originalUrl||"",thumbnailUrl:t.thumbnailUrl||""}})})},function(e){return console.error("[Upload Error]",e),{error:e instanceof Error?e:new Error("Unknown upload error")}}))}catch(e){return Promise.reject(e)}},n.uploadFile=function(e,t){var o=e.file;try{return Promise.resolve(n.internalUploadFile(o,t)).then(function(e){var t,n=e.originalUrl,o=e.thumbnailUrl,r=e.error;return{data:{originalUrl:void 0===n?"":n,thumbnailUrl:void 0===o?"":o},msg:null!=(t=null==r?void 0:r.message)?t:"",code:r?exports.ErrorCode.UnknownError:0}})}catch(e){return Promise.reject(e)}},n.sendTextMessage=function(e,t,o,r){return n.message.createTextMessage(e,t,o,r)},n.sendImageMessage=function(e,t,o,r,s){return n.message.createImageMessage(e,t,o,r,s)},n.sendFileMessage=function(e,t,o,r){return n.message.createFileMessage(e,t,o,r)},n.sendAudioMessage=function(e,t,o,r){return n.message.createAudioMessage(e,t,o,r)},n.sendVideoMessage=function(e,t,o,r){return n.message.createVideoMessage(e,t,o,r)},n.sendLinkMessage=function(e,t,o,r){return n.message.createLinkMessage(e,t,o,r)},n.sendGifMessage=function(e,t,o,r){return n.message.createGifMessage(e,t,o,r)},n.sendOptionMessage=function(e,t,o,r){return n.message.createOptionMessage(e,t,o,r)},n.sendEmojiMessage=function(e,t,o,r){return n.message.createEmojiMessage(e,t,o,r)},n.sendCustomMessage=function(e,t,o,r){return n.message.createCustomMessage(e,t,o,r)},n.getHistoryMessageList=function(e){return e.groupId&&n.cacheManager.markConversationAsActive(e.groupId),n.message.getHistoryMessageList(e)},n.getLiveMessageList=function(e){return n.message.getLiveMessageList(e)},n.prePushCustomerMessage=function(e){return n.message.prePushCustomerMessage(e)},n.getGroupInfo=function(e){return n.group.getGroupInfo(e)},n.getGroupMembers=function(e){return n.group.getGroupMembers(e)},n.joinGroup=function(e){return n.group.joinGroup(e)},n.leftGroup=function(e){return n.group.leftGroup(e)},n.checkGroupBlock=function(e){return n.group.checkGroupBlock(e)},n.getMyGroupPermission=function(e){return n.group.getMyGroupPermission(e)},n.getGroupPermission=function(e){return n.group.getGroupPermission(e)},n.getGroupMember=function(e){return n.group.getGroupMember(e)},n.getGroupMemberPermission=function(e,t){return n.group.getGroupMemberPermission(e,t)},n.updateGroupPermission=function(e){return n.group.updateGroupPermission(e)},n.kickGroupMember=function(e){return n.group.kickGroupMember(e)},n.muteMembers=function(e){return n.group.muteMembers(e)},n.updateGroupMemberPermission=function(e){return n.group.updateGroupMemberPermission(e)},n.editGroupName=function(e,t){return n.group.editGroupName(e,t)},n.editNotification=function(e,t){return n.group.editNotification(e,t)},n.editGroupCustomer=function(e,t){return n.group.editGroupCustomer(e,t)},n.addAdmin=function(e,t){return n.group.addAdmin(e,t)},n.deleteAdmin=function(e,t){return n.group.deleteAdmin(e,t)},n.pin=function(e,t,o){return n.group.pin(e,t,o)},n.muteGroup=function(e,t){return n.group.muteGroup(e,t)},n.muteMember=function(e,t,o){return n.group.muteMember(e,t,o)},n.addGroupMembers=function(e){return n.group.addGroupMembers(e)},n.getFileByType=function(e){return n.group.getFileByType(e)},n.pinChat=function(e,t){return n.group.pinChat(e,t)},n.dissolveGroup=function(e){return n.group.dissolveGroup(e)},n.markConversationRead=function(e){return n.conversation.markConversationRead(e)},n.markLastRead=function(e,t){return n.conversation.markLastRead(e,t)},n.pinConversation=function(e,t){void 0===t&&(t=1);try{return Promise.resolve(n.conversation.pinConversation(e,t)).then(function(o){if(0===o.code){n.cacheManager.updateConversationPinStatus(e,1===t);var r=n.cacheManager.getConversations();n.emit(exports.CbEvents.OnConversationListUpdated,r)}return o})}catch(e){return Promise.reject(e)}},n.muteConversation=function(e,t){return void 0===t&&(t=1),n.conversation.muteConversation(e,t)},n.clearConversationUnread=function(e){n.cacheManager.clearConversationUnread(e);var t=n.cacheManager.getConversations();n.emit(exports.CbEvents.OnConversationListUpdated,t)},n.clearAllConversationUnread=function(){n.cacheManager.clearAllConversationUnread();var e=n.cacheManager.getConversations();n.emit(exports.CbEvents.OnConversationListUpdated,e)},n.getContactByType=function(e,t){return n.contact.getContactByType(e,t)},n.getMemberContacts=function(e){return n.contact.getMemberContacts(e)},n.getColleagueContacts=function(e){return n.contact.getColleagueContacts(e)},n.getGroupContacts=function(e){return n.contact.getGroupContacts(e)},n.editContactTag=function(e){return n.contact.editContactTag(e)},n.getContactTag=function(e){return n.contact.getContactTag(e)},n.allocationContactTag=function(e){return n.contact.allocationContactTag(e)},n.allocationMemberTag=function(e,t,o){return void 0===o&&(o=0),n.contact.allocationMemberTag(e,t,o)},n.allocationColleagueTag=function(e,t,o){return void 0===o&&(o=0),n.contact.allocationColleagueTag(e,t,o)},n.allocationGroupTag=function(e,t,o){return void 0===o&&(o=0),n.contact.allocationGroupTag(e,t,o)},n.config.debug=t,t&&(console.log("🚀 SIM SDK Web v1.1.0 (本地开发版本)"),console.log("📦 支持协议: SSE, WebSocket")),n.cacheManager=new T({persistEnabled:!0,debug:t}),n.serviceManager=new L(n),n}var n,o;o=e,(n=t).prototype=Object.create(o.prototype),n.prototype.constructor=n,u(n,o);var r,s,i=t.prototype;return i.destroy=function(){this.connectionClient&&(this.connectionClient.close(),this.connectionClient=void 0),this.cacheManager.destroy(),this.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},this.config.debug&&console.log("[SDK] Resources destroyed")},i.getService=function(e){return this.serviceManager.get(e)},i.isConnected=function(){return this.config.debug&&console.log("[SDK] Connection status: "+(this.internalState.isConnected?"connected":"disconnected")),this.internalState.isConnected},i.isLoggedIn=function(){return this.config.debug&&console.log("[SDK] Login status: "+(this.internalState.isLoggedIn?"logged in":"not logged in")),this.internalState.isLoggedIn},i.logRequest=function(e){var t=Math.random().toString(36).substring(2,8),n={GET:"#4CAF50",POST:"#2196F3",PUT:"#FF9800",DELETE:"#F44336"}[e.method]||"#9C27B0",o={GET:"🔍",POST:"📝",PUT:"🔄",DELETE:"🗑️"}[e.method]||"📡";console.log("%c "+(new Date).toISOString().substring(11,19)+" %c SDK %c "+o+" "+e.method+" %c "+e.url+" %c #"+t,"color: #888; font-size: 11px; padding: 2px 0;","background: #7CAEFF; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","background: "+n+"; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","color: #0066cc; font-weight: bold;","color: #888; font-style: italic;"),e.data&&Object.keys(e.data).length>0&&(console.log("%c─── 📦 Request Payload ───────────────────────────────","color: #999; font-style: italic;"),console.log("%c%s","color: #333; background: #f8f8f8; padding: 8px; border-radius: 4px; border-left: 4px solid #7CAEFF; font-family: monospace; line-height: 1.5;",JSON.stringify(e.data,null,2)),console.log("%c─────────────────────────────────────────────────────","color: #999;"))},i.handlePongMessage=function(e){e&&e.timestamp&&(this.config.debug&&console.log("[SDK] Received pong message with timestamp:",e.timestamp),this.internalState.isConnected=!0,this.internalState.lastActivity=Date.now())},i.isProtobufFormat=function(e){return this.config.useProtobuf||"string"==typeof e&&this.isBase64String(e)||e instanceof Uint8Array},i.isBase64String=function(e){try{return btoa(atob(e))===e}catch(e){return!1}},i.handleProtobufMessage=function(e){this.emit(exports.CbEvents.OnReceiveProtoMessage,e)},i.initializeConversationCache=function(){try{var e=this,t=U(function(){return Promise.resolve(e.conversation.getConversations({pageNo:1,pageSize:50})).then(function(t){var n=t.code,o=t.data;if(e.config.debug&&console.log("[SDK] Initialize conversation cache:",n,o),0===n&&o&&o.records){e.cacheManager.setConversations(o.records,!0);var r=e.cacheManager.getConversations();e.emit(exports.CbEvents.OnConversationListUpdated,r),e.config.debug&&console.log("[SDK] Conversation cache initialized with",o.records.length,"conversations")}})},function(e){console.error("[SDK] Failed to initialize conversation cache:",e)});return Promise.resolve(t&&t.then?t.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},i.onMessage=function(e){var t=this;return this.on(exports.CbEvents.OnReceiveMessage,e),function(){return t.off(exports.CbEvents.OnReceiveMessage,e)}},i.onMessages=function(e){var t=this;return this.on(exports.CbEvents.OnReceiveMessages,e),function(){return t.off(exports.CbEvents.OnReceiveMessages,e)}},i.onConnectionChange=function(e){var t=this,n=function(){return e(!0)},o=function(){return e(!1)};return this.on(exports.CbEvents.OnConnected,n),this.on(exports.CbEvents.OnDisconnected,o),function(){t.off(exports.CbEvents.OnConnected,n),t.off(exports.CbEvents.OnDisconnected,o)}},i.onKickedOffline=function(e){var t=this;return this.on(exports.CbEvents.OnKickedOffline,e),function(){return t.off(exports.CbEvents.OnKickedOffline,e)}},i.updateMessageCache=function(e){if(e.groupId&&this.cacheManager.addGroupMessage(e),this.cacheManager.updateConversationWithMessage(e,this.config.username)){var t=this.cacheManager.getConversations();this.emit(exports.CbEvents.OnConversationListUpdated,t)}},i.getCachedGroupMessages=function(e){return this.cacheManager.getGroupMessages(e)},r=t,(s=[{key:"message",get:function(){return this.getService(exports.ServiceName.MESSAGE)}},{key:"conversation",get:function(){return this.getService(exports.ServiceName.CONVERSATION)}},{key:"group",get:function(){return this.getService(exports.ServiceName.GROUP)}},{key:"user",get:function(){return this.getService(exports.ServiceName.USER)}},{key:"contact",get:function(){return this.getService(exports.ServiceName.CONTACT)}},{key:"username",get:function(){return this.config.username}},{key:"getConfig",get:function(){return this.config}},{key:"getConnectionClient",get:function(){return this.connectionClient}},{key:"uuid",get:function(){return(36*Math.random()).toString(36).slice(2)+(new Date).getTime().toString()}}])&&function(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,d(o.key),o)}}(r.prototype,s),Object.defineProperty(r,"prototype",{writable:!1}),r}(f);
package/lib/index.umd.js CHANGED
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("event-source-polyfill")):"function"==typeof define&&define.amd?define(["exports","event-source-polyfill"],t):t((e||self).simSdkWeb={},e.eventSourcePolyfill)}(this,function(e,t){function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n<t;n++)o[n]=e[n];return o}function o(e,t){var o="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(o)return(o=o.call(e)).next.bind(o);if(Array.isArray(e)||(o=function(e,t){if(e){if("string"==typeof e)return n(e,t);var o={}.toString.call(e).slice(8,-1);return"Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o?Array.from(e):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?n(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){o&&(e=o);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)({}).hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},r.apply(null,arguments)}function s(e,t){return s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},s(e,t)}function i(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}var a,c,u,d,l;e.ServiceName=void 0,(a=e.ServiceName||(e.ServiceName={})).MESSAGE="message",a.CONVERSATION="conversation",a.GROUP="group",a.USER="user",a.CONTACT="contact",e.ContactType=void 0,(c=e.ContactType||(e.ContactType={}))[c.MEMBER=0]="MEMBER",c[c.COLLEAGUE=1]="COLLEAGUE",c[c.GROUP=2]="GROUP",e.ErrorCode=void 0,(u=e.ErrorCode||(e.ErrorCode={}))[u.UnknownError=10005]="UnknownError",e.RequestApi=void 0,(d=e.RequestApi||(e.RequestApi={})).Login="/chat/member/login",d.Logout="/chat/member/logout",d.GetGroupInfo="/chat/group/groupInfo",d.GetGroupMembers="/chat/group/groupMembers",d.JoinGroup="/chat/group/joinGroup",d.LeftGroup="/chat/group/leftGroup",d.AnonymousJoinGroup="/chat/group/anonymousJoinGroup",d.AnonymousLeftGroup="/chat/group/anonymousLeftGroup",d.CheckGroupBlock="/chat/group/checkBlock",d.GetMyGroupPermission="/chat/group/permission/getPermission",d.GetGroupPermission="/chat/group/permission/groupPermission",d.GetGroupMember="/chat/group/groupMember",d.GetGroupMemberPermission="/chat/group/permission/groupMemberPermission",d.UpdateGroupPermission="/chat/group/permission/updateGroupPermission",d.UpdateGroupMemberPermission="/chat/group/permission/updateGroupMemberPermission",d.editeGroupName="/chat/group/operation/editeGroupName",d.editeNotification="/chat/group/operation/editeNotification",d.editeGroupCustomer="/chat/group/operation/editeGroupCustomer",d.addAdmin="/chat/group/operation/addAdmin",d.deleteAdmin="/chat/group/operation/deleteAdmin",d.pin="/chat/group/operation/pin",d.muteGroup="/chat/group/operation/muteGroup",d.muteMember="/chat/group/operation/muteMember",d.kickGroupMember="/chat/group/operation/kickGroupMember",d.muteMembers="/chat/group/operation/muteMembers",d.DissolveGroup="/chat/group/dissolve",d.GetAllConversationList="/chat/conversation/conversationList",d.MarkConversationMessageAsRead="/chat/conversation/lastRead",d.PinConversation="/chat/conversation/pinChat",d.MuteConversation="/chat/conversation/mute",d.UpdateLatestMessage="/chat/group/updateLatestMessage",d.GetLatestGroupChats="/chat/group/latestGroupChats",d.CheckLatestMessages="/chat/group/checkLatestMessages",d.CreateTextMessage="/chat/message/push",d.PushMessageToMember="/chat/message/push2Member",d.PushPrivateMessage="/chat/message/pushPrivateMessage",d.PushLiveMessage="/chat/message/liveGroupPush",d.GetHistoryMessageList="/chat/message/pull",d.GetLiveMessageList="/chat/message/liveGroupPull",d.GetAnonymousLiveMessageList="/chat/message/anonymousLiveGroupPull",d.PrePushCustomerMessage="/chat/message/prePushCustomerMessage",d.UploadFile="/chat/img/upload",d.GetContactByType="/chat/contact/contactByType",d.EditContactTag="/chat/contact/editeContactTag",d.GetContactTag="/chat/contact/getContactTag",d.AllocationContactTag="/chat/contact/allocationContactTag",d.AddGroupMembers="/chat/group/operation/addGroupMembers",d.GetFileByType="/chat/message/getFileByType",d.PinChat="/chat/member/pinChat",e.CbEvents=void 0,(l=e.CbEvents||(e.CbEvents={})).OnConnected="OnConnected",l.OnDisconnected="OnDisconnected",l.onMaxRetriesReached="onMaxRetriesReached",l.OnReconnecting="OnReconnecting",l.OnReconnected="OnReconnected",l.OnReconnectFailed="OnReconnectFailed",l.OnNetworkChange="OnNetworkChange",l.OnReceiveMessage="OnReceiveMessage",l.OnReceiveProtoMessage="OnReceiveProtoMessage",l.OnReceiveMessages="OnReceiveMessages",l.OnReceiveSubscribeMessage="OnReceiveSubscribeMessage",l.OnReceiveSystemMessage="OnReceiveSystemMessage",l.OnReceivePreMessage="OnReceivePreMessage",l.OnMessagesListLoaded="OnMessagesListLoaded",l.OnActiveConversationSync="OnActiveConversationSync",l.OnMessageSent="OnMessageSent",l.OnMessageFailed="OnMessageFailed",l.OnMessageRevoked="OnMessageRevoked",l.OnMessageDeleted="OnMessageDeleted",l.OnMessageRead="OnMessageRead",l.OnTypingStatusUpdate="OnTypingStatusUpdate",l.OnUserStatusChange="OnUserStatusChange",l.OnKickedOffline="OnKickedOffline",l.OnUserTokenInvalid="OnUserTokenInvalid",l.OnUserTokenExpired="OnUserTokenExpired",l.OnForceOffline="OnForceOffline",l.OnUserInfoUpdated="OnUserInfoUpdated",l.OnGroupCreated="OnGroupCreated",l.OnGroupInfoUpdated="OnGroupInfoUpdated",l.OnGroupDissolved="OnGroupDissolved",l.OnJoinGroup="OnJoinGroup",l.OnLeaveGroup="OnLeaveGroup",l.OnGroupMemberJoined="OnGroupMemberJoined",l.OnGroupMemberLeft="OnGroupMemberLeft",l.OnGroupMemberKicked="OnGroupMemberKicked",l.OnGroupOwnerChanged="OnGroupOwnerChanged",l.OnGroupAdminAdded="OnGroupAdminAdded",l.OnGroupAdminRemoved="OnGroupAdminRemoved",l.OnGroupMemberMuted="OnGroupMemberMuted",l.OnGroupMemberUnmuted="OnGroupMemberUnmuted",l.OnGroupAllMemberMuted="OnGroupAllMemberMuted",l.OnGroupAllMemberUnmuted="OnGroupAllMemberUnmuted",l.OnConversationCreated="OnConversationCreated",l.OnConversationDeleted="OnConversationDeleted",l.OnConversationListUpdated="OnConversationListUpdated",l.OnConversationUpdated="OnConversationUpdated",l.OnUnreadCountChanged="OnUnreadCountChanged",l.OnConversationPinned="OnConversationPinned",l.OnConversationUnpinned="OnConversationUnpinned",l.OnConversationMuted="OnConversationMuted",l.OnConversationUnmuted="OnConversationUnmuted",l.OnPongConn="OnPongConn",l.OnPongReConn="OnPongReConn",l.OnPongIdle="OnPongIdle",l.OnError="OnError",l.OnWarning="OnWarning",l.OnLog="OnLog";var g,h,p,m,v,f,C=/*#__PURE__*/function(){function t(){var t;this.events=((t={})[e.CbEvents.OnReceiveMessage]=[],t[e.CbEvents.OnReceiveSystemMessage]=[],t[e.CbEvents.OnReceiveMessages]=[],t[e.CbEvents.OnConversationListUpdated]=[],t[e.CbEvents.OnMessagesListLoaded]=[],t[e.CbEvents.OnActiveConversationSync]=[],t[e.CbEvents.OnConnected]=[],t[e.CbEvents.OnDisconnected]=[],t[e.CbEvents.OnReconnected]=[],t)}var n=t.prototype;return n.emit=function(e,t){var n=this.events[e];return n&&n.forEach(function(e){return e(t)}),this},n.on=function(e,t){var n;return this.events[e]||(this.events[e]=[]),null==(n=this.events[e])||n.push(t),this},n.off=function(e,t){var n=this.events[e];if(n){var o=n.indexOf(t);o>-1&&(n.splice(o,1),0===n.length&&delete this.events[e])}return this},t}();e.GroupType=void 0,(g=e.GroupType||(e.GroupType={}))[g.PrivateChat=0]="PrivateChat",g[g.PrivateGroup=1]="PrivateGroup",g[g.PublicGroup=2]="PublicGroup",g[g.CustomerService=3]="CustomerService",g[g.LiveGroup=4]="LiveGroup",e.MessageType=void 0,(h=e.MessageType||(e.MessageType={}))[h.TEXT=0]="TEXT",h[h.IMAGE=1]="IMAGE",h[h.FILE=2]="FILE",h[h.AUDIO=3]="AUDIO",h[h.VIDEO=4]="VIDEO",h[h.LINK=5]="LINK",h[h.GIF=6]="GIF",h[h.OPTION=7]="OPTION",h[h.EMOJI=8]="EMOJI",h[h.CUSTOM=100]="CUSTOM",e.SseEventType=void 0,(p=e.SseEventType||(e.SseEventType={}))[p.EVENT_PONG_CONN=0]="EVENT_PONG_CONN",p[p.EVENT_PONG_RE_CONN=1]="EVENT_PONG_RE_CONN",p[p.EVENT_PONG_IDLE=2]="EVENT_PONG_IDLE",p[p.EVENT_MESSAGE_PUSH=3]="EVENT_MESSAGE_PUSH",p[p.EVENT_SYSTEM_MESSAGE_PUSH=4]="EVENT_SYSTEM_MESSAGE_PUSH",p[p.EVENT_LIVE_SYSTEM_MESSAGE_PUSH=5]="EVENT_LIVE_SYSTEM_MESSAGE_PUSH",p[p.EVENT_PRE_MESSAGE_PUSH=6]="EVENT_PRE_MESSAGE_PUSH",p[p.EVENT_SUBSCRIBE_MESSAGE_PUSH=7]="EVENT_SUBSCRIBE_MESSAGE_PUSH",e.GroupMemberEventType=void 0,(m=e.GroupMemberEventType||(e.GroupMemberEventType={}))[m.JOIN=0]="JOIN",m[m.LEFT=1]="LEFT",m[m.LAST_READ_UPDATE=2]="LAST_READ_UPDATE",m[m.PERMISSION_UPDATE=3]="PERMISSION_UPDATE",m[m.IDENTITY_UPDATE=4]="IDENTITY_UPDATE",m[m.PING_UPDATE=5]="PING_UPDATE",e.SystemMessageType=void 0,(v=e.SystemMessageType||(e.SystemMessageType={}))[v.GroupMemberPermissionChange=3]="GroupMemberPermissionChange",v[v.GroupPermissionChange=4]="GroupPermissionChange",e.ConnectionProtocol=void 0,(f=e.ConnectionProtocol||(e.ConnectionProtocol={})).SSE="sse",f.WEBSOCKET="websocket";var b="undefined"!=typeof uni,M="undefined"!=typeof window,S="simsdk_",E={CONVERSATIONS:S+"conversations",GROUP_MESSAGES:S+"group_messages",USER_INFO:S+"user_info",META_INFO:S+"meta"},y={MAX_CONVERSATIONS:100,MAX_GROUP_MESSAGES:200,STORAGE_CHUNK_SIZE:512e3,CACHE_TTL:6048e5,EXPIRY_CHECK_INTERVAL:18e5},T=/*#__PURE__*/function(){function e(e){var t=void 0===e?{}:e,n=t.persistEnabled,o=void 0===n||n,s=t.debug,i=void 0!==s&&s,a=t.config,c=void 0===a?{}:a;this.conversationCache=[],this.groupMessageCache={},this.accessTimeRecord={},this.pinnedConversationOrder=new Map,this.userInfo={},this.activeConversation=void 0,this.metaInfo={},this.persistEnabled=void 0,this.debug=void 0,this.config=void 0,this.cleanupTimer=void 0,this.persistEnabled=o,this.debug=i,this.config=r({},y,c)}var t=e.prototype;return t.initialize=function(e){this.userInfo.username=e,this.persistEnabled&&this.loadFromStorage(),this.setupCleanupInterval(),this.debug&&(console.log("Cache initialized for user:",e),console.log("Loaded conversations:",this.conversationCache.length),console.log("Loaded group messages for groups:",Object.keys(this.groupMessageCache).length))},t.clear=function(){this.conversationCache=[],this.groupMessageCache={},this.accessTimeRecord={},this.pinnedConversationOrder.clear(),this.persistEnabled&&this.clearStorage(),this.debug&&console.log("Cache cleared")},t.getConversations=function(){return[].concat(this.conversationCache)},t.clearConversationUnread=function(e){var t=this.conversationCache.find(function(t){return t.id===e});t&&(t.unreadCount=0,this.persistEnabled&&this.saveConversationsToStorage())},t.clearAllConversationUnread=function(){this.conversationCache.forEach(function(e){e.unreadCount>0&&(e.unreadCount=0)}),this.persistEnabled&&this.saveConversationsToStorage()},t.getActiveConversation=function(){return this.activeConversation},t.setConversations=function(e,t){var n=this;if(void 0===t&&(t=!1),this.conversationCache=e.length>this.config.MAX_CONVERSATIONS?e.slice(0,this.config.MAX_CONVERSATIONS):[].concat(e),t)this.pinnedConversationOrder.clear(),this.conversationCache.forEach(function(e,t){e.pin&&n.pinnedConversationOrder.set(e.id,t)});else{var o=-1;this.pinnedConversationOrder.forEach(function(e){e>o&&(o=e)}),this.conversationCache.forEach(function(e,t){e.pin&&!n.pinnedConversationOrder.has(e.id)&&n.pinnedConversationOrder.set(e.id,o+t+1)})}this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage()},t.updateConversation=function(e){var t=this.conversationCache.findIndex(function(t){return t.id===e.id});t>=0?this.conversationCache[t]=r({},e):(this.conversationCache.push(r({},e)),this.conversationCache.length>this.config.MAX_CONVERSATIONS&&this.enforceConversationLimit()),this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage()},t.updateConversationPinStatus=function(e,t){var n=this.conversationCache.findIndex(function(t){return t.id===e});if(-1!==n){var o=this.conversationCache[n],r=!0===o.pin;if(o.pin=t,t&&!r){var s=-1;this.pinnedConversationOrder.forEach(function(e){e>s&&(s=e)}),this.pinnedConversationOrder.set(e,s+1)}else!t&&r&&this.pinnedConversationOrder.delete(e);this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage()}},t.updateConversationWithMessage=function(e,t){var n,o=e.groupId;if(!o)return!1;var r=this.conversationCache.findIndex(function(e){return e.id===o});if(-1===r)return!1;var s=this.conversationCache[r],i=(null==(n=s.latest)?void 0:n.msgId)||0;return this.activeConversation&&this.activeConversation.id===o?s.unreadCount=0:t!==e.username&&(s.unreadCount+=e.msgId>i?e.msgId-i:1),s.latest=e,this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage(),!0},t.getGroupMessages=function(e){return this.recordAccess(e),!this.groupMessageCache[e]&&this.persistEnabled&&this.loadGroupMessagesFromStorage(e),this.groupMessageCache[e]||[]},t.addGroupMessage=function(e){if(e.groupId){this.recordAccess(e.groupId),this.groupMessageCache[e.groupId]||(this.groupMessageCache[e.groupId]=[]);var t=this.groupMessageCache[e.groupId].findIndex(function(t){return t.msgId===e.msgId});t>=0?this.groupMessageCache[e.groupId][t]=e:this.groupMessageCache[e.groupId].push(e),this.sortGroupMessages(e.groupId),this.limitGroupMessageCache(e.groupId),this.enforceMemoryLimits(),this.persistEnabled&&this.saveGroupMessagesToStorage(e.groupId)}},t.addGroupMessages=function(e){for(var t,n=this,r={},s=o(e);!(t=s()).done;){var i=t.value;i.groupId&&(r[i.groupId]||(r[i.groupId]=[]),r[i.groupId].push(i))}for(var a=0,c=Object.entries(r);a<c.length;a++){var u=c[a],d=u[0],l=u[1];this.recordAccess(Number(d)),this.groupMessageCache[d]||(this.groupMessageCache[d]=[]);for(var g,h=function(){var e=g.value,t=n.groupMessageCache[d].findIndex(function(t){return t.msgId===e.msgId});t>=0?n.groupMessageCache[d][t]=e:n.groupMessageCache[d].push(e)},p=o(l);!(g=p()).done;)h();this.sortGroupMessages(Number(d)),this.limitGroupMessageCache(Number(d)),this.persistEnabled&&this.saveGroupMessagesToStorage(Number(d))}this.enforceMemoryLimits()},t.sortConversations=function(){var e=this;this.conversationCache.sort(function(t,n){var o,r,s,i,a=!0===t.pin,c=!0===n.pin;if(a&&!c)return-1;if(!a&&c)return 1;if(a&&c)return(null!=(s=e.pinnedConversationOrder.get(t.id))?s:0)-(null!=(i=e.pinnedConversationOrder.get(n.id))?i:0);var u=(null==(o=t.latest)?void 0:o.createTime)||0;return((null==(r=n.latest)?void 0:r.createTime)||0)-u})},t.sortGroupMessages=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].sort(function(e,t){return(t.createTime||0)-(e.createTime||0)})},t.limitGroupMessageCache=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].length>this.config.MAX_GROUP_MESSAGES&&(this.groupMessageCache[e]=this.groupMessageCache[e].slice(0,this.config.MAX_GROUP_MESSAGES))},t.recordAccess=function(e){this.accessTimeRecord[e]=Date.now()},t.enforceConversationLimit=function(){this.conversationCache.length<=this.config.MAX_CONVERSATIONS||(this.sortConversations(),this.conversationCache=this.conversationCache.slice(0,this.config.MAX_CONVERSATIONS))},t.enforceMemoryLimits=function(){var e=this,t=Object.keys(this.groupMessageCache).length;if(t>10){var n=Object.keys(this.groupMessageCache).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}});n.sort(function(e,t){return e.lastAccess-t.lastAccess});for(var o=Math.ceil(.3*t),r=0;r<o&&r<n.length;r++){var s=n[r].groupId;this.persistEnabled&&(delete this.groupMessageCache[s],this.debug&&console.log("Released memory for inactive group: "+s))}}},t.setupCleanupInterval=function(){var e=this;this.cleanupTimer&&clearInterval(this.cleanupTimer),this.cleanupTimer=window.setInterval(function(){e.cleanupExpiredData()},this.config.EXPIRY_CHECK_INTERVAL)},t.cleanupExpiredData=function(){var e=Date.now();this.metaInfo.lastCleanup=e,this.debug&&console.log("Running cache cleanup");for(var t=0,n=Object.entries(this.accessTimeRecord);t<n.length;t++){var o=n[t],r=o[0];e-o[1]>this.config.CACHE_TTL&&(delete this.accessTimeRecord[r],this.groupMessageCache[r]&&delete this.groupMessageCache[r])}this.persistEnabled&&this.saveMetaInfoToStorage()},t.loadFromStorage=function(){var e=this;try{var t=localStorage.getItem(E.META_INFO);t&&(this.metaInfo=JSON.parse(t));var n=localStorage.getItem(E.CONVERSATIONS);n&&(this.conversationCache=JSON.parse(n)),Object.keys(localStorage).filter(function(e){return e.startsWith(E.GROUP_MESSAGES+".")}).forEach(function(t){var n=t.split(".")[1];n&&!isNaN(Number(n))&&(e.accessTimeRecord[n]=0)});var o=localStorage.getItem(E.USER_INFO);o&&(this.userInfo=JSON.parse(o))}catch(e){console.error("Failed to load cache from storage:",e),this.clearStorage()}},t.loadGroupMessagesFromStorage=function(e){try{for(var t=[],n=0,o=!0;o;){var r=localStorage.getItem(E.GROUP_MESSAGES+"."+e+(n>0?"."+n:""));if(r){var s=JSON.parse(r);t=t.concat(s),n++}else o=!1}t.length>0&&(this.groupMessageCache[e]=t,this.sortGroupMessages(e),this.limitGroupMessageCache(e),this.debug&&console.log("Loaded "+t.length+" messages for group "+e+" from storage"))}catch(t){console.error("Failed to load group messages for "+e+" from storage:",t)}},t.saveConversationsToStorage=function(){try{localStorage.setItem(E.CONVERSATIONS,JSON.stringify(this.conversationCache))}catch(e){console.error("Failed to save conversations to storage:",e),this.handleStorageError()}},t.saveGroupMessagesToStorage=function(e){try{if(void 0!==e){var t=this.groupMessageCache[e];if(!t||0===t.length)return;var n=JSON.stringify(t);if(n.length>this.config.STORAGE_CHUNK_SIZE){this.clearGroupMessageStorage(e);for(var o=t.length,r=Math.max(1,Math.floor(this.config.STORAGE_CHUNK_SIZE/(n.length/o))),s=0;s<o;s+=r){var i=t.slice(s,s+r),a=Math.floor(s/r);localStorage.setItem(E.GROUP_MESSAGES+"."+e+(a>0?"."+a:""),JSON.stringify(i))}}else localStorage.setItem(E.GROUP_MESSAGES+"."+e,n)}else for(var c=0,u=Object.keys(this.groupMessageCache);c<u.length;c++)this.saveGroupMessagesToStorage(Number(u[c]))}catch(e){console.error("Failed to save group messages to storage:",e),this.handleStorageError()}},t.saveMetaInfoToStorage=function(){try{localStorage.setItem(E.META_INFO,JSON.stringify(this.metaInfo))}catch(e){console.error("Failed to save meta info to storage:",e)}},t.handleStorageError=function(){for(var e=this,t=Object.keys(this.accessTimeRecord).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}}).sort(function(e,t){return e.lastAccess-t.lastAccess}),n=Math.max(1,Math.floor(.2*t.length)),o=0;o<n&&o<t.length;o++)this.clearGroupMessageStorage(Number(t[o].groupId)),this.debug&&console.log("Cleared storage for group "+t[o].groupId+" due to quota exceeded")},t.clearGroupMessageStorage=function(e){for(var t=0,n=!0;n;){var o=E.GROUP_MESSAGES+"."+e+(t>0?"."+t:"");null!==localStorage.getItem(o)?(localStorage.removeItem(o),t++):n=!1}},t.saveUserInfoToStorage=function(){try{localStorage.setItem(E.USER_INFO,JSON.stringify(this.userInfo))}catch(e){console.error("Failed to save user info to storage:",e)}},t.clearStorage=function(){try{for(var e,t=o(Object.keys(localStorage).filter(function(e){return e.startsWith(S)}));!(e=t()).done;)localStorage.removeItem(e.value)}catch(e){console.error("Failed to clear storage:",e)}},t.destroy=function(){this.cleanupTimer&&(clearInterval(this.cleanupTimer),this.cleanupTimer=void 0),this.debug&&console.log("Cache manager destroyed")},t.markConversationAsActive=function(e){this.accessTimeRecord[e]=Date.now();var t=this.conversationCache.find(function(t){return t.id===e});return!!t&&(this.activeConversation=r({},t),!0)},t.resetActiveConversation=function(){var e,t=!(null==(e=this.activeConversation)||!e.id);return this.activeConversation=void 0,this.debug&&t&&console.log("Active conversation reset"),t},e}(),P=/*#__PURE__*/function(){function e(e){this.url=void 0,this.token=void 0,this.eventSource=null,this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectTimeout=2e3*Math.random()+3e3,this.connectTimeout=1e4,this.reconnectTimer=null,this.handlers=new Map,this.connected=!1,this.onMessageCallback=void 0,this.onReconnectSuccessCallback=void 0,this.onConnectionClosedCallback=void 0,this.onMaxRetriesReachedCallback=void 0,this.onConnectionChangeCallback=void 0,this.isDestroyed=!1,this.debug=!1,this._openHandler=null,this._errorHandler=null,this._messageHandler=null,this._customHandlers=new Map,this.connectTimeoutRef=null,this.url=e.url,this.token=e.token,this.connectTimeout=e.connectTimeout||1e4,this.reconnectTimeout=e.retryInterval||2e3*Math.random()+3e3,this.maxReconnectAttempts=e.maxRetries||5,this.debug=e.debug||!1,this.onMessageCallback=e.onMessage,this.onReconnectSuccessCallback=e.onReconnectSuccess,this.onConnectionClosedCallback=e.onConnectionClosed,this.onMaxRetriesReachedCallback=e.onMaxRetriesReached,this.onConnectionChangeCallback=e.onConnectionChange}var n=e.prototype;return n.debugLog=function(e){var t;this.debug&&(t=console).log.apply(t,["[SSE] "+e].concat([].slice.call(arguments,1)))},n.debugError=function(e){var t;this.debug&&(t=console).error.apply(t,["[SSE] "+e].concat([].slice.call(arguments,1)))},n.debugWarn=function(e){var t;this.debug&&(t=console).warn.apply(t,["[SSE] "+e].concat([].slice.call(arguments,1)))},n.removeAllEventListeners=function(){var e=this;this.eventSource&&(this._openHandler&&this.eventSource.removeEventListener("open",this._openHandler),this._errorHandler&&this.eventSource.removeEventListener("error",this._errorHandler),this._messageHandler&&this.eventSource.removeEventListener("message",this._messageHandler),this.handlers.forEach(function(t,n){var o=e._customHandlers.get(n);o&&e.eventSource&&e.eventSource.removeEventListener(n,o)}))},n.subscribe=function(e,t){var n=this;this.handlers.set(e,t);var o=function(e){try{var o=JSON.parse(e.data);t(o)}catch(e){n.debugError("Error parsing message data:",e)}};this._customHandlers.set(e,o),this.eventSource?this.eventSource.addEventListener(e,o):this.connect()},n.connect=function(){var e=this;return this.connected&&this.eventSource?Promise.reject(new Error("SSE is already connected!")):new Promise(function(n,o){try{e.eventSource=new t.EventSourcePolyfill(e.url,{heartbeatTimeout:36e5,withCredentials:!1,headers:{Authorization:"Bearer "+e.token}}),e._openHandler=function(t){e.debugLog("SSE connection established"),e.connected=!0,e.onConnectionChangeCallback&&e.onConnectionChangeCallback(!0),e.reconnectAttempts>0&&e.onReconnectSuccessCallback&&e.onReconnectSuccessCallback(),e.reconnectAttempts=0,e.reconnectTimeout=5e3,n("SSE connect successful!")},e._errorHandler=function(t){e.debugError("SSE connection error:",t),e.connected=!1,e.onConnectionChangeCallback&&e.onConnectionChangeCallback(!1),401===t.status||t.statusText&&t.statusText.includes("Unauthorized")?(e.cleanup(),e.connectTimeoutRef&&(clearTimeout(e.connectTimeoutRef),e.connectTimeoutRef=null),e.notifyConnectionClosed(!0)):e.handleReconnect(),e.connected||o(new Error("SSE connect error"))},e._messageHandler=function(t){try{e.debugLog("SSE received message:",t.data);var n=JSON.parse(t.data);e.onMessageCallback&&e.onMessageCallback(n)}catch(t){e.debugError("Error parsing message:",t)}},e.eventSource.addEventListener("open",e._openHandler),e.eventSource.addEventListener("error",e._errorHandler),e.eventSource.addEventListener("message",e._messageHandler),e.handlers.forEach(function(t,n){var o=e._customHandlers.get(n);o&&e.eventSource&&e.eventSource.addEventListener(n,o)}),e.connectTimeoutRef=setTimeout(function(){e.connected||(o(new Error("Connection timeout")),e.handleReconnect())},e.connectTimeout);var r=e._openHandler;e._openHandler=function(t){clearTimeout(e.connectTimeoutRef),r(t)}}catch(t){e.debugError("Failed to create EventSource:",t),e.handleReconnect(),o(t)}})},n.notifyConnectionClosed=function(e){void 0===e&&(e=!1),this.onConnectionClosedCallback&&this.onConnectionClosedCallback(e),e?this.debugWarn("SSE connection closed due to authentication error"):this.debugLog("SSE connection closed")},n.handleReconnect=function(){var e=this;if(this.isDestroyed)this.debugLog("SSE is destroyed, skipping reconnection");else if(null===this.reconnectTimer){if(this.reconnectAttempts>=this.maxReconnectAttempts)return this.debugError("Max reconnection attempts reached"),this.destroySse(),void(this.onMaxRetriesReachedCallback&&this.onMaxRetriesReachedCallback());this.debugLog("Attempting to reconnect in "+this.reconnectTimeout/1e3+" seconds..."),this.cleanup(),this.reconnectTimer=window.setTimeout(function(){e.reconnectAttempts++,e.reconnectTimeout=Math.min(2*e.reconnectTimeout,6e4),e.reconnectTimer=null,e.connect().catch(function(){})},this.reconnectTimeout)}},n.cleanup=function(){this.eventSource&&(this.removeAllEventListeners(),this.eventSource.close(),this.eventSource=null),this.connected=!1},n.unsubscribe=function(){this.cleanup(),this.handlers.clear(),this._customHandlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},n.destroySse=function(){this.unsubscribe(),this.isDestroyed=!0,this.notifyConnectionClosed()},n.close=function(){this.destroySse(),this.debugLog("SSE 连接已关闭")},n.isConnected=function(){return this.connected},n.send=function(e){var t="当前协议不可用:SSE 是单向通信协议,不支持客户端向服务器发送消息";throw this.debugError(t),new Error(t)},e}(),O=/*#__PURE__*/function(){function e(e){this.url=void 0,this.token=void 0,this.websocket=null,this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectTimeout=2e3*Math.random()+3e3,this.connectTimeout=1e4,this.reconnectTimer=null,this.handlers=new Map,this.connected=!1,this.onMessageCallback=void 0,this.onReconnectSuccessCallback=void 0,this.onConnectionClosedCallback=void 0,this.onMaxRetriesReachedCallback=void 0,this.onConnectionChangeCallback=void 0,this.connectTimeoutRef=null,this.isDestroyed=!1,this.debug=!1,this.url=e.url,this.token=e.token,this.connectTimeout=e.connectTimeout||1e4,this.reconnectTimeout=e.retryInterval||2e3*Math.random()+3e3,this.maxReconnectAttempts=e.maxRetries||5,this.debug=e.debug||!1,this.onMessageCallback=e.onMessage,this.onReconnectSuccessCallback=e.onReconnectSuccess,this.onConnectionClosedCallback=e.onConnectionClosed,this.onMaxRetriesReachedCallback=e.onMaxRetriesReached,this.onConnectionChangeCallback=e.onConnectionChange}var t=e.prototype;return t.debugLog=function(e){var t;this.debug&&(t=console).log.apply(t,["[WebSocket] "+e].concat([].slice.call(arguments,1)))},t.debugError=function(e){var t;this.debug&&(t=console).error.apply(t,["[WebSocket] "+e].concat([].slice.call(arguments,1)))},t.debugWarn=function(e){var t;this.debug&&(t=console).warn.apply(t,["[WebSocket] "+e].concat([].slice.call(arguments,1)))},t.subscribe=function(e,t){this.handlers.set(e,t),this.websocket?this.addMessageHandler(e,t):this.connect()},t.addMessageHandler=function(e,t){var n=this;this.websocket&&this.websocket.addEventListener("message",function(o){try{var r=JSON.parse(o.data);r.type===e&&t(r)}catch(e){n.debugError("Error parsing WebSocket message data:",e)}})},t.connect=function(){var e=this;return this.connected&&this.websocket?Promise.reject(new Error("WebSocket is already connected!")):new Promise(function(t,n){try{var o=new URL(e.url);o.searchParams.set("token",e.token),e.websocket=new WebSocket(o.toString()),e.connectTimeoutRef=setTimeout(function(){e.connected||(n(new Error("WebSocket connection timeout")),e.handleReconnect())},e.connectTimeout),e.websocket.onopen=function(n){e.debugLog("WebSocket connection established"),e.connected=!0,clearTimeout(e.connectTimeoutRef),e.onConnectionChangeCallback&&e.onConnectionChangeCallback(!0),e.reconnectAttempts>0&&e.onReconnectSuccessCallback&&e.onReconnectSuccessCallback(),e.reconnectAttempts=0,e.reconnectTimeout=5e3,t("WebSocket connect successful!")},e.websocket.onerror=function(t){e.debugError("WebSocket connection error:",t),e.connected=!1,clearTimeout(e.connectTimeoutRef),e.onConnectionChangeCallback&&e.onConnectionChangeCallback(!1),e.handleReconnect(),e.connected||n(new Error("WebSocket connect error"))},e.websocket.onclose=function(t){e.debugLog("WebSocket connection closed:",t.code,t.reason),e.connected=!1,e.onConnectionChangeCallback&&e.onConnectionChangeCallback(!1),1002===t.code||1003===t.code||t.reason&&t.reason.includes("Unauthorized")?(e.cleanup(),e.notifyConnectionClosed(!0)):e.handleReconnect()},e.websocket.onmessage=function(t){try{e.debugLog("WebSocket received message:",t.data);var n=JSON.parse(t.data);if("pong"===n.type||2===n.ev)return void(e.connected=!0);e.onMessageCallback&&e.onMessageCallback(n)}catch(t){e.debugError("Error parsing WebSocket message:",t)}},e.handlers.forEach(function(t,n){e.addMessageHandler(n,t)})}catch(t){e.debugError("Failed to create WebSocket:",t),e.handleReconnect(),n(t)}})},t.notifyConnectionClosed=function(e){void 0===e&&(e=!1),this.onConnectionClosedCallback&&this.onConnectionClosedCallback(e),e?this.debugWarn("WebSocket connection closed due to authentication error"):this.debugLog("WebSocket connection closed")},t.handleReconnect=function(){var e=this;if(this.isDestroyed)this.debugLog("WebSocket is destroyed, skipping reconnection");else if(null===this.reconnectTimer){if(this.reconnectAttempts>=this.maxReconnectAttempts)return this.debugError("Max reconnection attempts reached"),this.destroyWebSocket(),void(this.onMaxRetriesReachedCallback&&this.onMaxRetriesReachedCallback());this.debugLog("Attempting to reconnect in "+this.reconnectTimeout/1e3+" seconds..."),this.cleanup(),this.reconnectTimer=window.setTimeout(function(){e.reconnectAttempts++,e.reconnectTimeout=Math.min(2*e.reconnectTimeout,6e4),e.reconnectTimer=null,e.connect().catch(function(){})},this.reconnectTimeout)}},t.cleanup=function(){this.websocket&&(this.websocket.close(),this.websocket=null),this.connected=!1},t.unsubscribe=function(){this.cleanup(),this.handlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},t.destroyWebSocket=function(){this.unsubscribe(),this.isDestroyed=!0,this.notifyConnectionClosed()},t.close=function(){this.destroyWebSocket(),this.debugLog("WebSocket 连接已关闭")},t.isConnected=function(){var e;return this.connected&&(null==(e=this.websocket)?void 0:e.readyState)===WebSocket.OPEN},t.send=function(e){if(!this.websocket||!this.isConnected())return this.debugWarn("WebSocket is not connected, cannot send message"),!1;try{if("string"==typeof e)this.websocket.send(e),this.debugLog("WebSocket message sent (string):",e);else if(e instanceof ArrayBuffer||e instanceof Blob)this.websocket.send(e),this.debugLog("WebSocket message sent (binary):","ArrayBuffer/Blob ("+(e instanceof ArrayBuffer?e.byteLength:e.size)+" bytes)");else if(e instanceof Uint8Array||e instanceof Int8Array||e instanceof Uint16Array||e instanceof Int16Array||e instanceof Uint32Array||e instanceof Int32Array||e instanceof Float32Array||e instanceof Float64Array||e instanceof DataView)this.websocket.send(e),this.debugLog("WebSocket message sent (binary):","ArrayBufferView ("+e.byteLength+" bytes)");else{var t=JSON.stringify(e);this.websocket.send(t),this.debugLog("WebSocket message sent (JSON):",t)}return!0}catch(e){return this.debugError("Failed to send WebSocket message:",e),!1}},e}(),G=["protocol"],R=/*#__PURE__*/function(){function t(){}return t.createClient=function(t){var n=t.protocol,o=function(e,t){if(null==e)return{};var n={};for(var o in e)if({}.hasOwnProperty.call(e,o)){if(-1!==t.indexOf(o))continue;n[o]=e[o]}return n}(t,G);switch(n){case e.ConnectionProtocol.SSE:return new P(o);case e.ConnectionProtocol.WEBSOCKET:return new O(o);default:throw new Error("Unsupported connection protocol: "+n)}},t}(),k=/*#__PURE__*/function(){function t(e){this.sdk=void 0,this.sdk=e}var n=t.prototype;return n.login=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.Login,method:"POST"}))}catch(e){return Promise.reject(e)}},n.logout=function(){try{return Promise.resolve(this.sdk.sendRequest({data:{},url:e.RequestApi.Logout,method:"POST"}))}catch(e){return Promise.reject(e)}},t}(),A=/*#__PURE__*/function(){function t(e){this.sdk=void 0,this.sdk=e}var n=t.prototype;return n.sendMessage=function(e,t){try{var n=this;return Promise.resolve(function(o,r){try{var s=Promise.resolve(n.sdk.sendRequest({data:e,url:t,method:"POST"}))}catch(e){return r(e)}return s&&s.then?s.then(void 0,r):s}(0,function(e){throw console.error("Failed to send message",e),e}))}catch(e){return Promise.reject(e)}},n.getMessageApi=function(t,n){return n===e.GroupType.PrivateChat?e.RequestApi.PushPrivateMessage:n===e.GroupType.LiveGroup?e.RequestApi.PushLiveMessage:null!=t&&t.receiverName?e.RequestApi.PushMessageToMember:e.RequestApi.CreateTextMessage},n.createMessage=function(t,n,o,s,i){void 0===s&&(s={});var a={groupType:o};o===e.GroupType.PublicGroup||o===e.GroupType.PrivateGroup||o===e.GroupType.LiveGroup?a.groupId=n:a.receiverName=n;var c=r({},a,s,{msgType:t},i);return this.sendMessage(c,this.getMessageApi(a,o))},n.createTextMessage=function(t,n,o,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(e.MessageType.TEXT,n,o,r,{text:t}))}catch(e){return Promise.reject(e)}},n.createImageMessage=function(t,n,o,r,s){void 0===s&&(s={});try{return Promise.resolve(this.createMessage(e.MessageType.IMAGE,o,r,s,{link:t,snapshot:n}))}catch(e){return Promise.reject(e)}},n.createFileMessage=function(t,n,o,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(e.MessageType.FILE,n,o,r,{link:t}))}catch(e){return Promise.reject(e)}},n.createAudioMessage=function(t,n,o,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(e.MessageType.AUDIO,n,o,r,{link:t}))}catch(e){return Promise.reject(e)}},n.createVideoMessage=function(t,n,o,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(e.MessageType.VIDEO,n,o,r,{link:t}))}catch(e){return Promise.reject(e)}},n.createLinkMessage=function(t,n,o,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(e.MessageType.LINK,n,o,r,{link:t}))}catch(e){return Promise.reject(e)}},n.createGifMessage=function(t,n,o,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(e.MessageType.GIF,n,o,r,{link:t}))}catch(e){return Promise.reject(e)}},n.createOptionMessage=function(t,n,o,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(e.MessageType.OPTION,n,o,r,{text:t}))}catch(e){return Promise.reject(e)}},n.createEmojiMessage=function(t,n,o,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(e.MessageType.EMOJI,n,o,r,{text:t}))}catch(e){return Promise.reject(e)}},n.createCustomMessage=function(t,n,o,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(e.MessageType.CUSTOM,n,o,r,{text:t}))}catch(e){return Promise.reject(e)}},n.getHistoryMessageList=function(t){var n=t.groupId,o=t.lastId,r=t.type,s=t.size,i=void 0===s?100:s;try{return Promise.resolve(this.sdk.sendRequest({url:e.RequestApi.GetHistoryMessageList,method:"POST",data:{groupId:n,lastId:o,type:r,size:i}}))}catch(e){return Promise.reject(e)}},n.getLiveMessageList=function(t){var n=t.groupId;try{var o;return Promise.resolve(this.sdk.sendRequest({data:{groupId:n},url:null!=(o=this.sdk.getConfig)&&o.anonLogin?e.RequestApi.GetAnonymousLiveMessageList:e.RequestApi.GetLiveMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},n.prePushCustomerMessage=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.PrePushCustomerMessage,method:"POST"}))}catch(e){return Promise.reject(e)}},t}(),I=/*#__PURE__*/function(){function t(e){this.sdk=void 0,this.sdk=e}var n=t.prototype;return n.getConversations=function(t){try{var n=this;return Promise.resolve(n.sdk.sendRequest({data:t,url:e.RequestApi.GetAllConversationList,method:"GET"})).then(function(e){return e.data.records=e.data.records.map(n.normalizeConversation),e})}catch(e){return Promise.reject(e)}},n.markConversationRead=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.MarkConversationMessageAsRead,method:"GET"}))}catch(e){return Promise.reject(e)}},n.markLastRead=function(t,n){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t,msgId:n},url:e.RequestApi.MarkConversationMessageAsRead,method:"GET"}))}catch(e){return Promise.reject(e)}},n.pinConversation=function(t,n){void 0===n&&(n=1);try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t,isTop:n},url:e.RequestApi.PinConversation,method:"GET"}))}catch(e){return Promise.reject(e)}},n.muteConversation=function(t,n){void 0===n&&(n=1);try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t,mute:n},url:e.RequestApi.MuteConversation,method:"GET"}))}catch(e){return Promise.reject(e)}},n.normalizeConversation=function(e){var t,n,o,s,i,a,c,u;return r({},e,{id:e.id,name:e.name||"",groupType:e.groupType||0,avatar:e.avatar||"",status:null!=(t=e.status)?t:1,latest:null!=(n=e.latest)?n:{},unreadCount:null!=(o=e.unreadCount)?o:0,draftText:null!=(s=e.draftText)?s:"",custom:null!=(i=e.custom)?i:"",groupMemberId:null!=(a=e.groupMemberId)?a:"",pin:null!=(c=e.pin)&&c,supportId:e.supportId||"",supportNick:e.supportNick||"",identity:null!=(u=e.identity)?u:1})},t}(),L=/*#__PURE__*/function(){function t(e){this.sdk=void 0,this.sdk=e}var n=t.prototype;return n.getGroupInfo=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t},url:e.RequestApi.GetGroupInfo,method:"GET"}))}catch(e){return Promise.reject(e)}},n.getGroupMember=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t},url:e.RequestApi.GetGroupMember,method:"GET"}))}catch(e){return Promise.reject(e)}},n.getGroupMembers=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.GetGroupMembers,method:"GET"}))}catch(e){return Promise.reject(e)}},n.joinGroup=function(t){try{var n;return Promise.resolve(this.sdk.sendRequest({data:{groupId:t},url:null!=(n=this.sdk.getConfig)&&n.anonLogin?e.RequestApi.AnonymousJoinGroup:e.RequestApi.JoinGroup,method:"GET"}))}catch(e){return Promise.reject(e)}},n.leftGroup=function(t){try{var n;return Promise.resolve(this.sdk.sendRequest({data:{groupId:t},url:null!=(n=this.sdk.getConfig)&&n.anonLogin?e.RequestApi.AnonymousLeftGroup:e.RequestApi.LeftGroup,method:"GET"}))}catch(e){return Promise.reject(e)}},n.checkGroupBlock=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t},url:e.RequestApi.CheckGroupBlock,method:"GET"}))}catch(e){return Promise.reject(e)}},n.updateLatestMessage=function(t){try{var n=Object.fromEntries(t.entries());return Promise.resolve(this.sdk.sendRequest({data:{latestMessage:n},url:e.RequestApi.UpdateLatestMessage,method:"POST"}))}catch(e){return Promise.reject(e)}},n.getGroupLatestMessage=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:{groups:t},url:e.RequestApi.GetLatestGroupChats,method:"POST"}))}catch(e){return Promise.reject(e)}},n.checkGroupLatestMessage=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:{ttl:t},url:e.RequestApi.CheckLatestMessages,method:"GET"}))}catch(e){return Promise.reject(e)}},n.getMyGroupPermission=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t},url:e.RequestApi.GetMyGroupPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},n.getGroupPermission=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t},url:e.RequestApi.GetGroupPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},n.getGroupMemberPermission=function(t,n){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t,targetMemberId:n},url:e.RequestApi.GetGroupMemberPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},n.updateGroupPermission=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.UpdateGroupPermission,method:"POST"}))}catch(e){return Promise.reject(e)}},n.updateGroupMemberPermission=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.UpdateGroupMemberPermission,method:"POST"}))}catch(e){return Promise.reject(e)}},n.kickGroupMember=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.kickGroupMember,method:"POST"}))}catch(e){return Promise.reject(e)}},n.muteMembers=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.muteMembers,method:"POST"}))}catch(e){return Promise.reject(e)}},n.editGroupName=function(t,n){try{return Promise.resolve(this.sdk.sendRequest({url:e.RequestApi.editeGroupName,method:"GET",data:{groupId:t,name:n}}))}catch(e){return Promise.reject(e)}},n.editNotification=function(t,n){try{return Promise.resolve(this.sdk.sendRequest({url:e.RequestApi.editeNotification,method:"GET",data:{groupId:t,notification:n}}))}catch(e){return Promise.reject(e)}},n.editGroupCustomer=function(t,n){try{return Promise.resolve(this.sdk.sendRequest({url:e.RequestApi.editeGroupCustomer,method:"GET",data:{groupId:t,customer:n}}))}catch(e){return Promise.reject(e)}},n.addAdmin=function(t,n){try{return Promise.resolve(this.sdk.sendRequest({url:e.RequestApi.addAdmin,method:"GET",data:{groupId:t,username:n}}))}catch(e){return Promise.reject(e)}},n.deleteAdmin=function(t,n){try{return Promise.resolve(this.sdk.sendRequest({url:e.RequestApi.deleteAdmin,method:"GET",data:{groupId:t,username:n}}))}catch(e){return Promise.reject(e)}},n.dissolveGroup=function(t){try{return Promise.resolve(this.sdk.sendRequest({url:e.RequestApi.DissolveGroup,method:"GET",data:{groupId:t}}))}catch(e){return Promise.reject(e)}},n.pin=function(t,n,o){try{return Promise.resolve(this.sdk.sendRequest({url:e.RequestApi.pin,method:"GET",data:{groupId:t,messageId:n,type:o}}))}catch(e){return Promise.reject(e)}},n.muteGroup=function(t,n){try{return Promise.resolve(this.sdk.sendRequest({url:e.RequestApi.muteGroup,method:"GET",data:{groupId:t,type:n}}))}catch(e){return Promise.reject(e)}},n.muteMember=function(t,n,o){try{return Promise.resolve(this.sdk.sendRequest({url:e.RequestApi.muteMember,method:"GET",data:{groupId:t,username:n,type:o}}))}catch(e){return Promise.reject(e)}},n.addGroupMembers=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.AddGroupMembers,method:"POST"}))}catch(e){return Promise.reject(e)}},n.getFileByType=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.GetFileByType,method:"GET"}))}catch(e){return Promise.reject(e)}},n.pinChat=function(t,n){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t,type:n},url:e.RequestApi.PinChat,method:"GET"}))}catch(e){return Promise.reject(e)}},t}(),U=/*#__PURE__*/function(){function t(e){this.sdk=void 0,this.sdk=e}var n=t.prototype;return n.getContactByType=function(t,n){try{var o={contactType:t};return void 0!==n&&(o.groupId=n),Promise.resolve(this.sdk.sendRequest({data:o,url:e.RequestApi.GetContactByType,method:"GET"}))}catch(e){return Promise.reject(e)}},n.getMemberContacts=function(t){try{return Promise.resolve(this.getContactByType(e.ContactType.MEMBER,t))}catch(e){return Promise.reject(e)}},n.getColleagueContacts=function(t){try{return Promise.resolve(this.getContactByType(e.ContactType.COLLEAGUE,t))}catch(e){return Promise.reject(e)}},n.getGroupContacts=function(t){try{return Promise.resolve(this.getContactByType(e.ContactType.GROUP,t))}catch(e){return Promise.reject(e)}},n.editContactTag=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.EditContactTag,method:"POST"}))}catch(e){return Promise.reject(e)}},n.getContactTag=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:{contactType:t},url:e.RequestApi.GetContactTag,method:"GET"}))}catch(e){return Promise.reject(e)}},n.allocationContactTag=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.AllocationContactTag,method:"POST"}))}catch(e){return Promise.reject(e)}},n.allocationMemberTag=function(t,n,o){void 0===o&&(o=0);try{return Promise.resolve(this.allocationContactTag({contactType:e.ContactType.MEMBER,tag:t,groupIds:n,type:o}))}catch(e){return Promise.reject(e)}},n.allocationColleagueTag=function(t,n,o){void 0===o&&(o=0);try{return Promise.resolve(this.allocationContactTag({contactType:e.ContactType.COLLEAGUE,tag:t,groupIds:n,type:o}))}catch(e){return Promise.reject(e)}},n.allocationGroupTag=function(t,n,o){void 0===o&&(o=0);try{return Promise.resolve(this.allocationContactTag({contactType:e.ContactType.GROUP,tag:t,groupIds:n,type:o}))}catch(e){return Promise.reject(e)}},t}(),N=/*#__PURE__*/function(){function t(e){this.sdk=void 0,this.services={},this.sdk=e}var n=t.prototype;return n.get=function(e){return this.services[e]||(this.services[e]=this.createService(e)),this.services[e]},n.createService=function(t){switch(t){case e.ServiceName.USER:return new k(this.sdk);case e.ServiceName.MESSAGE:return new A(this.sdk);case e.ServiceName.CONVERSATION:return new I(this.sdk);case e.ServiceName.GROUP:return new L(this.sdk);case e.ServiceName.CONTACT:return new U(this.sdk);default:throw new Error("Unknown service: "+t)}},n.reset=function(){this.services={}},t}();function _(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}var w=[e.RequestApi.Logout,e.CbEvents.OnKickedOffline,e.CbEvents.OnUserTokenInvalid,e.CbEvents.OnUserTokenExpired];e.SIMSDK=/*#__PURE__*/function(t){function n(n){var o;return void 0===n&&(n=!1),(o=t.call(this)||this).config={debug:!1,isLive:!1,useProtobuf:!1,protocol:e.ConnectionProtocol.SSE},o.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},o.cacheManager=void 0,o.connectionClient=void 0,o.serviceManager=void 0,o.lastUnauthorizedTime=0,o.UNAUTHORIZED_THROTTLE_MS=3e3,o.configure=function(e){void 0!==e.debug&&(o.config.debug=e.debug),e.isLive&&(o.config.isLive=e.isLive),e.apiAddr&&(o.config.apiAddr=e.apiAddr),e.wsAddr&&(o.config.wsAddr=e.wsAddr),e.ossApiAddr&&(o.config.ossApiAddr=e.ossApiAddr),e.appKey&&(o.config.appKey=e.appKey),e.token&&(o.config.token=e.token),e.connectTimeout&&(o.config.connectTimeout=e.connectTimeout),e.maxRetries&&(o.config.maxRetries=e.maxRetries),e.useProtobuf&&(o.config.useProtobuf=e.useProtobuf),e.protocol&&(o.config.protocol=e.protocol)},o.sendRequest=function(e){try{o.internalState.lastActivity=Date.now(),o.config.debug&&o.logRequest(e);var t=o.config.apiAddr+e.url,n=e.data;if("GET"===e.method&&n){var r=new URLSearchParams;Object.entries(n).forEach(function(e){var t=e[1];null!=t&&r.append(e[0],String(t))});var s=r.toString();s&&(t+=(t.includes("?")?"&":"?")+s),n=void 0}return Promise.resolve(_(function(){return Promise.resolve(function(e){try{var t,n=function(e){if(t)return e;throw new Error("Unsupported platform")},o=function(){if(b){var n=new Promise(function(t,n){uni.request({url:e.url,method:e.method||"GET",header:e.headers,data:e.data,success:function(e){401!==e.statusCode?t(e.data):n({status:401,message:"Unauthorized"})},fail:function(e){return n(e)}})});return t=1,n}return function(){if(M)return Promise.resolve(fetch(e.url,{method:e.method||"GET",headers:e.headers,body:e.data?JSON.stringify(e.data):null})).then(function(e){if(401===e.status)throw{status:401,message:"Unauthorized"};return Promise.resolve(e.json()).then(function(e){return t=1,e})})}()}();return Promise.resolve(o&&o.then?o.then(n):n(o))}catch(e){return Promise.reject(e)}}({url:t,method:e.method,headers:{"Content-Type":"application/json",Authorization:o.config.token?"Bearer "+o.config.token:""},data:n}))},function(e){throw 401!==(null==e?void 0:e.status)&&401!==(null==e?void 0:e.statusCode)||o.handleUnauthorizedWithThrottle(t),e}))}catch(e){return Promise.reject(e)}},o.handleUnauthorizedWithThrottle=function(e){var t=Date.now();t-o.lastUnauthorizedTime<o.UNAUTHORIZED_THROTTLE_MS?console.warn("401错误被节流限制,跳过处理:"+e):(o.lastUnauthorizedTime=t,o.handleUnauthorized(e))},o.handleUnauthorized=function(e){console.warn("未授权请求(401):",e),o.handleConnectionClosed(!0)},o.createRequestFunction=function(e,t){return function(n){return o.sendRequest({data:n,url:e,method:t})}},o.createRequestFunctionWithoutParams=function(e,t){return function(){return o.sendRequest({data:void 0,method:t,url:e})}},o.handleMessage=function(e){o.config.debug&&console.log("[SDK] handleMessage response",e),o.isProtobufFormat(e)?o.handleProtobufMessage(e):o.handleJsonMessage(e)},o.handleJsonMessage=function(t){switch(o.config.debug&&console.log("handleMessage response",t),t.ev){case e.SseEventType.EVENT_MESSAGE_PUSH:var n=t.dt;Array.isArray(n)?(n.forEach(function(e){o.updateMessageCache(e)}),o.emit(e.CbEvents.OnReceiveMessages,n)):console.warn("[SDK] Expected response.dt to be an array, but got:",n);break;case e.SseEventType.EVENT_PONG_IDLE:o.internalState.isConnected=!0;break;case e.SseEventType.EVENT_SYSTEM_MESSAGE_PUSH:o.emit(e.CbEvents.OnReceiveSystemMessage,t.dt);break;case e.SseEventType.EVENT_PRE_MESSAGE_PUSH:o.emit(e.CbEvents.OnReceivePreMessage,t.dt);break;case e.SseEventType.EVENT_SUBSCRIBE_MESSAGE_PUSH:o.emit(e.CbEvents.OnReceiveSubscribeMessage,t.dt);break;default:r=t.ev,Object.values(e.CbEvents).includes(r)?(o.emit(t.ev,t.dt),w.includes(t.ev)&&(o.internalState.isLoggedIn=!1,o.internalState.isConnected=!1,o.connectionClient&&(o.connectionClient.close(),o.connectionClient=void 0))):o.config.debug&&console.warn("[SDK] Unknown SSE event type:",t.ev)}var r},o.handleReconnectSuccess=function(){o.config.username&&(o.internalState.isConnected=!0,o.internalState.reconnectAttempts=0,o.config.debug&&console.log("SSE reconnection successful"),o.emit(e.CbEvents.OnReconnected))},o.handleConnectionClosed=function(t){o.internalState.isConnected=!1,o.config.debug&&console.log("SSE connection closed"),o.emit(e.CbEvents.OnDisconnected,t)},o.handleMaxRetriesReached=function(){o.config.debug&&console.log("SSE connection max reconnection attempts reached"),o.emit(e.CbEvents.onMaxRetriesReached)},o.handleConnectionChange=function(t){o.config.debug&&console.log("Connection status changed:",t),o.emit(t?e.CbEvents.OnConnected:e.CbEvents.OnDisconnected)},o.login=function(t){try{var n,s,i=function(r){return n?r:(o.connectionClient=R.createClient({url:o.config.wsAddr+"/"+(t.anonLogin?"anonymousConn":"conn")+"?username="+t.username+"&token="+t.token+"&appKey="+o.config.appKey+"&random="+s,protocol:o.config.protocol||e.ConnectionProtocol.SSE,debug:o.config.debug,onMessage:o.handleMessage,onReconnectSuccess:o.handleReconnectSuccess,onConnectionClosed:o.handleConnectionClosed,onMaxRetriesReached:o.handleMaxRetriesReached,onConnectionChange:o.handleConnectionChange,token:t.token,connectTimeout:o.config.connectTimeout,maxRetries:o.config.maxRetries}),_(function(){return Promise.resolve(o.connectionClient.connect()).then(function(e){return o.internalState.isLoggedIn=!0,o.internalState.isConnected=!0,o.config.isLive||o.initializeConversationCache(),e})},function(e){return o.internalState.isLoggedIn=!1,o.internalState.isConnected=!1,Promise.reject(e.message)}))};if(o.connectionClient&&(null==o.connectionClient.close||o.connectionClient.close(),o.connectionClient=void 0,o.internalState.isLoggedIn=!1,o.internalState.isConnected=!1),!o.config.apiAddr)return Promise.reject("No apiAddr configured. Please call configure() before login().");if(!o.config.ossApiAddr)return Promise.reject("No ossApiAddr configured. Please call configure() before login().");if(!o.config.appKey)return Promise.reject("No appKey configured. Please call configure() before login().");if(!o.config.token)return Promise.reject("No token configured. Please call configure() before login().");if(o.config.username=t.username,o.config.anonLogin=t.anonLogin||!1,t.protocol&&(o.config.protocol=t.protocol),t.protocol==e.ConnectionProtocol.WEBSOCKET&&!o.config.wsAddr)return Promise.reject("WebSocket address (wsAddr) is not configured. Please call configure() before login().");if(o.config.debug&&(console.log("login params",t),console.log("apiAddr",o.config.apiAddr)),!o.config.isLive||!t.anonLogin){o.cacheManager.initialize(t.username),o.cacheManager.resetActiveConversation();var a=o.cacheManager.getConversations();a.length>0&&o.emit(e.CbEvents.OnConversationListUpdated,a)}var c=function(){if(!t.anonLogin)return Promise.resolve(o.user.login(r({},t,{appKey:o.config.appKey}))).then(function(e){var t=e.code,o=e.data;if(0!=t){var r=Promise.resolve("Login failed, Server error, error code is "+t);return n=1,r}s=o})}();return Promise.resolve(c&&c.then?c.then(i):i(c))}catch(e){return Promise.reject(e)}},o.logout=function(){try{return o.connectionClient&&(o.connectionClient.close(),o.connectionClient=void 0),Promise.resolve(o.user.logout()).then(function(e){return o.internalState.isLoggedIn=!1,o.internalState.isConnected=!1,o.config.username=void 0,o.config.token=void 0,o.cacheManager.clear(),e})}catch(e){return Promise.reject(e)}},o.getConversations=function(t){try{return Promise.resolve(_(function(){var n=t.pageNo||1,r=t.pageSize||50;return n<1?(console.warn("[SDK] Invalid pageNo, must be >= 1"),!1):r<1||r>100?(console.warn("[SDK] Invalid pageSize, must be between 1 and 100"),!1):Promise.resolve(o.conversation.getConversations({pageNo:n,pageSize:r})).then(function(t){var r=t.data;if(0===t.code&&r){var s=o.cacheManager.getConversations();if(1===n)o.cacheManager.setConversations([].concat(r.records),!0);else{var i=r.records||[],a=new Map;s.forEach(function(e){a.set(e.id,e)});var c=[],u=[];i.forEach(function(e){a.has(e.id)?c.push(e):u.push(e)});var d=[];s.forEach(function(e){c.find(function(t){return t.id===e.id})||d.push(e)}),d.push.apply(d,c.concat(u)),o.cacheManager.setConversations(d,!1)}o.emit(e.CbEvents.OnConversationListUpdated,o.cacheManager.getConversations())}else{var l=o.cacheManager.getConversations();l.length>0&&o.emit(e.CbEvents.OnConversationListUpdated,l)}return!0})},function(t){console.error("[SDK] Failed to get conversations:",t);var n=o.cacheManager.getConversations();return n.length>0&&o.emit(e.CbEvents.OnConversationListUpdated,n),!1}))}catch(e){return Promise.reject(e)}},o.internalUploadFile=function(t,n){try{return Promise.resolve(_(function(){var r=new FormData;return r.append("file",t),r.append("filename",t.name),r.append("groupId",n.toString()),Promise.resolve(fetch(""+o.config.ossApiAddr+e.RequestApi.UploadFile,{method:"POST",headers:{Authorization:o.config.token?"Bearer "+o.config.token:""},body:r})).then(function(e){if(!e.ok)throw new Error("Upload failed with status: "+e.status);return Promise.resolve(e.json()).then(function(e){var t=(null==e?void 0:e.data)||{};return{originalUrl:t.originalUrl||"",thumbnailUrl:t.thumbnailUrl||""}})})},function(e){return console.error("[Upload Error]",e),{error:e instanceof Error?e:new Error("Unknown upload error")}}))}catch(e){return Promise.reject(e)}},o.uploadFile=function(t,n){var r=t.file;try{return Promise.resolve(o.internalUploadFile(r,n)).then(function(t){var n,o=t.originalUrl,r=t.thumbnailUrl,s=t.error;return{data:{originalUrl:void 0===o?"":o,thumbnailUrl:void 0===r?"":r},msg:null!=(n=null==s?void 0:s.message)?n:"",code:s?e.ErrorCode.UnknownError:0}})}catch(e){return Promise.reject(e)}},o.sendTextMessage=function(e,t,n,r){return o.message.createTextMessage(e,t,n,r)},o.sendImageMessage=function(e,t,n,r,s){return o.message.createImageMessage(e,t,n,r,s)},o.sendFileMessage=function(e,t,n,r){return o.message.createFileMessage(e,t,n,r)},o.sendAudioMessage=function(e,t,n,r){return o.message.createAudioMessage(e,t,n,r)},o.sendVideoMessage=function(e,t,n,r){return o.message.createVideoMessage(e,t,n,r)},o.sendLinkMessage=function(e,t,n,r){return o.message.createLinkMessage(e,t,n,r)},o.sendGifMessage=function(e,t,n,r){return o.message.createGifMessage(e,t,n,r)},o.sendOptionMessage=function(e,t,n,r){return o.message.createOptionMessage(e,t,n,r)},o.sendEmojiMessage=function(e,t,n,r){return o.message.createEmojiMessage(e,t,n,r)},o.sendCustomMessage=function(e,t,n,r){return o.message.createCustomMessage(e,t,n,r)},o.getHistoryMessageList=function(e){return e.groupId&&o.cacheManager.markConversationAsActive(e.groupId),o.message.getHistoryMessageList(e)},o.getLiveMessageList=function(e){return o.message.getLiveMessageList(e)},o.prePushCustomerMessage=function(e){return o.message.prePushCustomerMessage(e)},o.getGroupInfo=function(e){return o.group.getGroupInfo(e)},o.getGroupMembers=function(e){return o.group.getGroupMembers(e)},o.joinGroup=function(e){return o.group.joinGroup(e)},o.leftGroup=function(e){return o.group.leftGroup(e)},o.checkGroupBlock=function(e){return o.group.checkGroupBlock(e)},o.getMyGroupPermission=function(e){return o.group.getMyGroupPermission(e)},o.getGroupPermission=function(e){return o.group.getGroupPermission(e)},o.getGroupMember=function(e){return o.group.getGroupMember(e)},o.getGroupMemberPermission=function(e,t){return o.group.getGroupMemberPermission(e,t)},o.updateGroupPermission=function(e){return o.group.updateGroupPermission(e)},o.kickGroupMember=function(e){return o.group.kickGroupMember(e)},o.muteMembers=function(e){return o.group.muteMembers(e)},o.updateGroupMemberPermission=function(e){return o.group.updateGroupMemberPermission(e)},o.editGroupName=function(e,t){return o.group.editGroupName(e,t)},o.editNotification=function(e,t){return o.group.editNotification(e,t)},o.editGroupCustomer=function(e,t){return o.group.editGroupCustomer(e,t)},o.addAdmin=function(e,t){return o.group.addAdmin(e,t)},o.deleteAdmin=function(e,t){return o.group.deleteAdmin(e,t)},o.pin=function(e,t,n){return o.group.pin(e,t,n)},o.muteGroup=function(e,t){return o.group.muteGroup(e,t)},o.muteMember=function(e,t,n){return o.group.muteMember(e,t,n)},o.addGroupMembers=function(e){return o.group.addGroupMembers(e)},o.getFileByType=function(e){return o.group.getFileByType(e)},o.pinChat=function(e,t){return o.group.pinChat(e,t)},o.dissolveGroup=function(e){return o.group.dissolveGroup(e)},o.markConversationRead=function(e){return o.conversation.markConversationRead(e)},o.markLastRead=function(e,t){return o.conversation.markLastRead(e,t)},o.pinConversation=function(t,n){void 0===n&&(n=1);try{return Promise.resolve(o.conversation.pinConversation(t,n)).then(function(r){if(0===r.code){o.cacheManager.updateConversationPinStatus(t,1===n);var s=o.cacheManager.getConversations();o.emit(e.CbEvents.OnConversationListUpdated,s)}return r})}catch(e){return Promise.reject(e)}},o.muteConversation=function(e,t){return void 0===t&&(t=1),o.conversation.muteConversation(e,t)},o.clearConversationUnread=function(t){o.cacheManager.clearConversationUnread(t);var n=o.cacheManager.getConversations();o.emit(e.CbEvents.OnConversationListUpdated,n)},o.clearAllConversationUnread=function(){o.cacheManager.clearAllConversationUnread();var t=o.cacheManager.getConversations();o.emit(e.CbEvents.OnConversationListUpdated,t)},o.getContactByType=function(e,t){return o.contact.getContactByType(e,t)},o.getMemberContacts=function(e){return o.contact.getMemberContacts(e)},o.getColleagueContacts=function(e){return o.contact.getColleagueContacts(e)},o.getGroupContacts=function(e){return o.contact.getGroupContacts(e)},o.editContactTag=function(e){return o.contact.editContactTag(e)},o.getContactTag=function(e){return o.contact.getContactTag(e)},o.allocationContactTag=function(e){return o.contact.allocationContactTag(e)},o.allocationMemberTag=function(e,t,n){return void 0===n&&(n=0),o.contact.allocationMemberTag(e,t,n)},o.allocationColleagueTag=function(e,t,n){return void 0===n&&(n=0),o.contact.allocationColleagueTag(e,t,n)},o.allocationGroupTag=function(e,t,n){return void 0===n&&(n=0),o.contact.allocationGroupTag(e,t,n)},o.config.debug=n,n&&(console.log("🚀 SIM SDK Web v1.1.0 (本地开发版本)"),console.log("📦 支持协议: SSE, WebSocket")),o.cacheManager=new T({persistEnabled:!0,debug:n}),o.serviceManager=new N(o),o}var o,a;a=t,(o=n).prototype=Object.create(a.prototype),o.prototype.constructor=o,s(o,a);var c,u,d=n.prototype;return d.destroy=function(){this.connectionClient&&(this.connectionClient.close(),this.connectionClient=void 0),this.cacheManager.destroy(),this.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},this.config.debug&&console.log("[SDK] Resources destroyed")},d.getService=function(e){return this.serviceManager.get(e)},d.isConnected=function(){return this.config.debug&&console.log("[SDK] Connection status: "+(this.internalState.isConnected?"connected":"disconnected")),this.internalState.isConnected},d.isLoggedIn=function(){return this.config.debug&&console.log("[SDK] Login status: "+(this.internalState.isLoggedIn?"logged in":"not logged in")),this.internalState.isLoggedIn},d.logRequest=function(e){var t=Math.random().toString(36).substring(2,8),n={GET:"#4CAF50",POST:"#2196F3",PUT:"#FF9800",DELETE:"#F44336"}[e.method]||"#9C27B0",o={GET:"🔍",POST:"📝",PUT:"🔄",DELETE:"🗑️"}[e.method]||"📡";console.log("%c "+(new Date).toISOString().substring(11,19)+" %c SDK %c "+o+" "+e.method+" %c "+e.url+" %c #"+t,"color: #888; font-size: 11px; padding: 2px 0;","background: #7CAEFF; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","background: "+n+"; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","color: #0066cc; font-weight: bold;","color: #888; font-style: italic;"),e.data&&Object.keys(e.data).length>0&&(console.log("%c─── 📦 Request Payload ───────────────────────────────","color: #999; font-style: italic;"),console.log("%c%s","color: #333; background: #f8f8f8; padding: 8px; border-radius: 4px; border-left: 4px solid #7CAEFF; font-family: monospace; line-height: 1.5;",JSON.stringify(e.data,null,2)),console.log("%c─────────────────────────────────────────────────────","color: #999;"))},d.handlePongMessage=function(e){e&&e.timestamp&&(this.config.debug&&console.log("[SDK] Received pong message with timestamp:",e.timestamp),this.internalState.isConnected=!0,this.internalState.lastActivity=Date.now())},d.isProtobufFormat=function(e){return this.config.useProtobuf||"string"==typeof e&&this.isBase64String(e)||e instanceof Uint8Array},d.isBase64String=function(e){try{return btoa(atob(e))===e}catch(e){return!1}},d.handleProtobufMessage=function(t){this.emit(e.CbEvents.OnReceiveProtoMessage,t)},d.initializeConversationCache=function(){try{var t=this,n=_(function(){return Promise.resolve(t.conversation.getConversations({pageNo:1,pageSize:50})).then(function(n){var o=n.code,r=n.data;if(t.config.debug&&console.log("[SDK] Initialize conversation cache:",o,r),0===o&&r&&r.records){t.cacheManager.setConversations(r.records,!0);var s=t.cacheManager.getConversations();t.emit(e.CbEvents.OnConversationListUpdated,s),t.config.debug&&console.log("[SDK] Conversation cache initialized with",r.records.length,"conversations")}})},function(e){console.error("[SDK] Failed to initialize conversation cache:",e)});return Promise.resolve(n&&n.then?n.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},d.onMessage=function(t){var n=this;return this.on(e.CbEvents.OnReceiveMessage,t),function(){return n.off(e.CbEvents.OnReceiveMessage,t)}},d.onMessages=function(t){var n=this;return this.on(e.CbEvents.OnReceiveMessages,t),function(){return n.off(e.CbEvents.OnReceiveMessages,t)}},d.onConnectionChange=function(t){var n=this,o=function(){return t(!0)},r=function(){return t(!1)};return this.on(e.CbEvents.OnConnected,o),this.on(e.CbEvents.OnDisconnected,r),function(){n.off(e.CbEvents.OnConnected,o),n.off(e.CbEvents.OnDisconnected,r)}},d.onKickedOffline=function(t){var n=this;return this.on(e.CbEvents.OnKickedOffline,t),function(){return n.off(e.CbEvents.OnKickedOffline,t)}},d.updateMessageCache=function(t){if(t.groupId&&this.cacheManager.addGroupMessage(t),this.cacheManager.updateConversationWithMessage(t,this.config.username)){var n=this.cacheManager.getConversations();this.emit(e.CbEvents.OnConversationListUpdated,n)}},d.getCachedGroupMessages=function(e){return this.cacheManager.getGroupMessages(e)},c=n,(u=[{key:"message",get:function(){return this.getService(e.ServiceName.MESSAGE)}},{key:"conversation",get:function(){return this.getService(e.ServiceName.CONVERSATION)}},{key:"group",get:function(){return this.getService(e.ServiceName.GROUP)}},{key:"user",get:function(){return this.getService(e.ServiceName.USER)}},{key:"contact",get:function(){return this.getService(e.ServiceName.CONTACT)}},{key:"username",get:function(){return this.config.username}},{key:"getConfig",get:function(){return this.config}},{key:"getConnectionClient",get:function(){return this.connectionClient}},{key:"uuid",get:function(){return(36*Math.random()).toString(36).slice(2)+(new Date).getTime().toString()}}])&&function(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,i(o.key),o)}}(c.prototype,u),Object.defineProperty(c,"prototype",{writable:!1}),c}(C)});
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("event-source-polyfill")):"function"==typeof define&&define.amd?define(["exports","event-source-polyfill"],t):t((e||self).simSdkWeb={},e.eventSourcePolyfill)}(this,function(e,t){function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n<t;n++)o[n]=e[n];return o}function o(e,t){var o="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(o)return(o=o.call(e)).next.bind(o);if(Array.isArray(e)||(o=function(e,t){if(e){if("string"==typeof e)return n(e,t);var o={}.toString.call(e).slice(8,-1);return"Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o?Array.from(e):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?n(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){o&&(e=o);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)({}).hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},r.apply(null,arguments)}function s(e,t){return s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},s(e,t)}function i(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}var a,c,u,d,l;e.ServiceName=void 0,(a=e.ServiceName||(e.ServiceName={})).MESSAGE="message",a.CONVERSATION="conversation",a.GROUP="group",a.USER="user",a.CONTACT="contact",e.ContactType=void 0,(c=e.ContactType||(e.ContactType={}))[c.MEMBER=0]="MEMBER",c[c.COLLEAGUE=1]="COLLEAGUE",c[c.GROUP=2]="GROUP",e.ErrorCode=void 0,(u=e.ErrorCode||(e.ErrorCode={}))[u.UnknownError=10005]="UnknownError",e.RequestApi=void 0,(d=e.RequestApi||(e.RequestApi={})).Login="/chat/member/login",d.Logout="/chat/member/logout",d.GetChatMember="/chat/member/getChatMember",d.GetGroupInfo="/chat/group/groupInfo",d.GetGroupMembers="/chat/group/groupMembers",d.JoinGroup="/chat/group/joinGroup",d.LeftGroup="/chat/group/leftGroup",d.AnonymousJoinGroup="/chat/group/anonymousJoinGroup",d.AnonymousLeftGroup="/chat/group/anonymousLeftGroup",d.CheckGroupBlock="/chat/group/checkBlock",d.GetMyGroupPermission="/chat/group/permission/getPermission",d.GetGroupPermission="/chat/group/permission/groupPermission",d.GetGroupMember="/chat/group/groupMember",d.GetGroupMemberPermission="/chat/group/permission/groupMemberPermission",d.UpdateGroupPermission="/chat/group/permission/updateGroupPermission",d.UpdateGroupMemberPermission="/chat/group/permission/updateGroupMemberPermission",d.editeGroupName="/chat/group/operation/editeGroupName",d.editeNotification="/chat/group/operation/editeNotification",d.editeGroupCustomer="/chat/group/operation/editeGroupCustomer",d.addAdmin="/chat/group/operation/addAdmin",d.deleteAdmin="/chat/group/operation/deleteAdmin",d.pin="/chat/group/operation/pin",d.muteGroup="/chat/group/operation/muteGroup",d.muteMember="/chat/group/operation/muteMember",d.kickGroupMember="/chat/group/operation/kickGroupMember",d.muteMembers="/chat/group/operation/muteMembers",d.DissolveGroup="/chat/group/dissolve",d.GetAllConversationList="/chat/conversation/conversationList",d.MarkConversationMessageAsRead="/chat/conversation/lastRead",d.PinConversation="/chat/conversation/pinChat",d.MuteConversation="/chat/conversation/mute",d.UpdateLatestMessage="/chat/group/updateLatestMessage",d.GetLatestGroupChats="/chat/group/latestGroupChats",d.CheckLatestMessages="/chat/group/checkLatestMessages",d.CreateTextMessage="/chat/message/push",d.PushMessageToMember="/chat/message/push2Member",d.PushPrivateMessage="/chat/message/pushPrivateMessage",d.PushLiveMessage="/chat/message/liveGroupPush",d.GetHistoryMessageList="/chat/message/pull",d.GetLiveMessageList="/chat/message/liveGroupPull",d.GetAnonymousLiveMessageList="/chat/message/anonymousLiveGroupPull",d.PrePushCustomerMessage="/chat/message/prePushCustomerMessage",d.UploadFile="/chat/img/upload",d.GetContactByType="/chat/contact/contactByType",d.EditContactTag="/chat/contact/editeContactTag",d.GetContactTag="/chat/contact/getContactTag",d.AllocationContactTag="/chat/contact/allocationContactTag",d.AddGroupMembers="/chat/group/operation/addGroupMembers",d.GetFileByType="/chat/message/getFileByType",d.PinChat="/chat/member/pinChat",e.CbEvents=void 0,(l=e.CbEvents||(e.CbEvents={})).OnConnected="OnConnected",l.OnDisconnected="OnDisconnected",l.onMaxRetriesReached="onMaxRetriesReached",l.OnReconnecting="OnReconnecting",l.OnReconnected="OnReconnected",l.OnReconnectFailed="OnReconnectFailed",l.OnNetworkChange="OnNetworkChange",l.OnReceiveMessage="OnReceiveMessage",l.OnReceiveProtoMessage="OnReceiveProtoMessage",l.OnReceiveMessages="OnReceiveMessages",l.OnReceiveSubscribeMessage="OnReceiveSubscribeMessage",l.OnReceiveSystemMessage="OnReceiveSystemMessage",l.OnReceivePreMessage="OnReceivePreMessage",l.OnMessagesListLoaded="OnMessagesListLoaded",l.OnActiveConversationSync="OnActiveConversationSync",l.OnMessageSent="OnMessageSent",l.OnMessageFailed="OnMessageFailed",l.OnMessageRevoked="OnMessageRevoked",l.OnMessageDeleted="OnMessageDeleted",l.OnMessageRead="OnMessageRead",l.OnTypingStatusUpdate="OnTypingStatusUpdate",l.OnUserStatusChange="OnUserStatusChange",l.OnKickedOffline="OnKickedOffline",l.OnUserTokenInvalid="OnUserTokenInvalid",l.OnUserTokenExpired="OnUserTokenExpired",l.OnForceOffline="OnForceOffline",l.OnUserInfoUpdated="OnUserInfoUpdated",l.OnGroupCreated="OnGroupCreated",l.OnGroupInfoUpdated="OnGroupInfoUpdated",l.OnGroupDissolved="OnGroupDissolved",l.OnJoinGroup="OnJoinGroup",l.OnLeaveGroup="OnLeaveGroup",l.OnGroupMemberJoined="OnGroupMemberJoined",l.OnGroupMemberLeft="OnGroupMemberLeft",l.OnGroupMemberKicked="OnGroupMemberKicked",l.OnGroupOwnerChanged="OnGroupOwnerChanged",l.OnGroupAdminAdded="OnGroupAdminAdded",l.OnGroupAdminRemoved="OnGroupAdminRemoved",l.OnGroupMemberMuted="OnGroupMemberMuted",l.OnGroupMemberUnmuted="OnGroupMemberUnmuted",l.OnGroupAllMemberMuted="OnGroupAllMemberMuted",l.OnGroupAllMemberUnmuted="OnGroupAllMemberUnmuted",l.OnConversationCreated="OnConversationCreated",l.OnConversationDeleted="OnConversationDeleted",l.OnConversationListUpdated="OnConversationListUpdated",l.OnConversationUpdated="OnConversationUpdated",l.OnUnreadCountChanged="OnUnreadCountChanged",l.OnConversationPinned="OnConversationPinned",l.OnConversationUnpinned="OnConversationUnpinned",l.OnConversationMuted="OnConversationMuted",l.OnConversationUnmuted="OnConversationUnmuted",l.OnPongConn="OnPongConn",l.OnPongReConn="OnPongReConn",l.OnPongIdle="OnPongIdle",l.OnError="OnError",l.OnWarning="OnWarning",l.OnLog="OnLog";var g,h,p,m,v,f,C=/*#__PURE__*/function(){function t(){var t;this.events=((t={})[e.CbEvents.OnReceiveMessage]=[],t[e.CbEvents.OnReceiveSystemMessage]=[],t[e.CbEvents.OnReceiveMessages]=[],t[e.CbEvents.OnConversationListUpdated]=[],t[e.CbEvents.OnMessagesListLoaded]=[],t[e.CbEvents.OnActiveConversationSync]=[],t[e.CbEvents.OnConnected]=[],t[e.CbEvents.OnDisconnected]=[],t[e.CbEvents.OnReconnected]=[],t)}var n=t.prototype;return n.emit=function(e,t){var n=this.events[e];return n&&n.forEach(function(e){return e(t)}),this},n.on=function(e,t){var n;return this.events[e]||(this.events[e]=[]),null==(n=this.events[e])||n.push(t),this},n.off=function(e,t){var n=this.events[e];if(n){var o=n.indexOf(t);o>-1&&(n.splice(o,1),0===n.length&&delete this.events[e])}return this},t}();e.GroupType=void 0,(g=e.GroupType||(e.GroupType={}))[g.PrivateChat=0]="PrivateChat",g[g.PrivateGroup=1]="PrivateGroup",g[g.PublicGroup=2]="PublicGroup",g[g.CustomerService=3]="CustomerService",g[g.LiveGroup=4]="LiveGroup",e.MessageType=void 0,(h=e.MessageType||(e.MessageType={}))[h.TEXT=0]="TEXT",h[h.IMAGE=1]="IMAGE",h[h.FILE=2]="FILE",h[h.AUDIO=3]="AUDIO",h[h.VIDEO=4]="VIDEO",h[h.LINK=5]="LINK",h[h.GIF=6]="GIF",h[h.OPTION=7]="OPTION",h[h.EMOJI=8]="EMOJI",h[h.CUSTOM=100]="CUSTOM",e.SseEventType=void 0,(p=e.SseEventType||(e.SseEventType={}))[p.EVENT_PONG_CONN=0]="EVENT_PONG_CONN",p[p.EVENT_PONG_RE_CONN=1]="EVENT_PONG_RE_CONN",p[p.EVENT_PONG_IDLE=2]="EVENT_PONG_IDLE",p[p.EVENT_MESSAGE_PUSH=3]="EVENT_MESSAGE_PUSH",p[p.EVENT_SYSTEM_MESSAGE_PUSH=4]="EVENT_SYSTEM_MESSAGE_PUSH",p[p.EVENT_LIVE_SYSTEM_MESSAGE_PUSH=5]="EVENT_LIVE_SYSTEM_MESSAGE_PUSH",p[p.EVENT_PRE_MESSAGE_PUSH=6]="EVENT_PRE_MESSAGE_PUSH",p[p.EVENT_SUBSCRIBE_MESSAGE_PUSH=7]="EVENT_SUBSCRIBE_MESSAGE_PUSH",e.GroupMemberEventType=void 0,(m=e.GroupMemberEventType||(e.GroupMemberEventType={}))[m.JOIN=0]="JOIN",m[m.LEFT=1]="LEFT",m[m.LAST_READ_UPDATE=2]="LAST_READ_UPDATE",m[m.PERMISSION_UPDATE=3]="PERMISSION_UPDATE",m[m.IDENTITY_UPDATE=4]="IDENTITY_UPDATE",m[m.PING_UPDATE=5]="PING_UPDATE",e.SystemMessageType=void 0,(v=e.SystemMessageType||(e.SystemMessageType={}))[v.GroupMemberPermissionChange=3]="GroupMemberPermissionChange",v[v.GroupPermissionChange=4]="GroupPermissionChange",e.ConnectionProtocol=void 0,(f=e.ConnectionProtocol||(e.ConnectionProtocol={})).SSE="sse",f.WEBSOCKET="websocket";var b="undefined"!=typeof uni,M="undefined"!=typeof window,S="simsdk_",E={CONVERSATIONS:S+"conversations",GROUP_MESSAGES:S+"group_messages",USER_INFO:S+"user_info",META_INFO:S+"meta"},y={MAX_CONVERSATIONS:100,MAX_GROUP_MESSAGES:200,STORAGE_CHUNK_SIZE:512e3,CACHE_TTL:6048e5,EXPIRY_CHECK_INTERVAL:18e5},T=/*#__PURE__*/function(){function e(e){var t=void 0===e?{}:e,n=t.persistEnabled,o=void 0===n||n,s=t.debug,i=void 0!==s&&s,a=t.config,c=void 0===a?{}:a;this.conversationCache=[],this.groupMessageCache={},this.accessTimeRecord={},this.pinnedConversationOrder=new Map,this.userInfo={},this.activeConversation=void 0,this.metaInfo={},this.persistEnabled=void 0,this.debug=void 0,this.config=void 0,this.cleanupTimer=void 0,this.persistEnabled=o,this.debug=i,this.config=r({},y,c)}var t=e.prototype;return t.initialize=function(e){this.userInfo.username=e,this.persistEnabled&&this.loadFromStorage(),this.setupCleanupInterval(),this.debug&&(console.log("Cache initialized for user:",e),console.log("Loaded conversations:",this.conversationCache.length),console.log("Loaded group messages for groups:",Object.keys(this.groupMessageCache).length))},t.clear=function(){this.conversationCache=[],this.groupMessageCache={},this.accessTimeRecord={},this.pinnedConversationOrder.clear(),this.persistEnabled&&this.clearStorage(),this.debug&&console.log("Cache cleared")},t.getConversations=function(){return[].concat(this.conversationCache)},t.clearConversationUnread=function(e){var t=this.conversationCache.find(function(t){return t.id===e});t&&(t.unreadCount=0,this.persistEnabled&&this.saveConversationsToStorage())},t.clearAllConversationUnread=function(){this.conversationCache.forEach(function(e){e.unreadCount>0&&(e.unreadCount=0)}),this.persistEnabled&&this.saveConversationsToStorage()},t.getActiveConversation=function(){return this.activeConversation},t.setConversations=function(e,t){var n=this;if(void 0===t&&(t=!1),this.conversationCache=e.length>this.config.MAX_CONVERSATIONS?e.slice(0,this.config.MAX_CONVERSATIONS):[].concat(e),t)this.pinnedConversationOrder.clear(),this.conversationCache.forEach(function(e,t){e.pin&&n.pinnedConversationOrder.set(e.id,t)});else{var o=-1;this.pinnedConversationOrder.forEach(function(e){e>o&&(o=e)}),this.conversationCache.forEach(function(e,t){e.pin&&!n.pinnedConversationOrder.has(e.id)&&n.pinnedConversationOrder.set(e.id,o+t+1)})}this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage()},t.updateConversation=function(e){var t=this.conversationCache.findIndex(function(t){return t.id===e.id});t>=0?this.conversationCache[t]=r({},e):(this.conversationCache.push(r({},e)),this.conversationCache.length>this.config.MAX_CONVERSATIONS&&this.enforceConversationLimit()),this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage()},t.updateConversationPinStatus=function(e,t){var n=this.conversationCache.findIndex(function(t){return t.id===e});if(-1!==n){var o=this.conversationCache[n],r=!0===o.pin;if(o.pin=t,t&&!r){var s=-1;this.pinnedConversationOrder.forEach(function(e){e>s&&(s=e)}),this.pinnedConversationOrder.set(e,s+1)}else!t&&r&&this.pinnedConversationOrder.delete(e);this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage()}},t.updateConversationWithMessage=function(e,t){var n,o=e.groupId;if(!o)return!1;var r=this.conversationCache.findIndex(function(e){return e.id===o});if(-1===r)return!1;var s=this.conversationCache[r],i=(null==(n=s.latest)?void 0:n.msgId)||0;return this.activeConversation&&this.activeConversation.id===o?s.unreadCount=0:t!==e.username&&(s.unreadCount+=e.msgId>i?e.msgId-i:1),s.latest=e,this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage(),!0},t.getGroupMessages=function(e){return this.recordAccess(e),!this.groupMessageCache[e]&&this.persistEnabled&&this.loadGroupMessagesFromStorage(e),this.groupMessageCache[e]||[]},t.addGroupMessage=function(e){if(e.groupId){this.recordAccess(e.groupId),this.groupMessageCache[e.groupId]||(this.groupMessageCache[e.groupId]=[]);var t=this.groupMessageCache[e.groupId].findIndex(function(t){return t.msgId===e.msgId});t>=0?this.groupMessageCache[e.groupId][t]=e:this.groupMessageCache[e.groupId].push(e),this.sortGroupMessages(e.groupId),this.limitGroupMessageCache(e.groupId),this.enforceMemoryLimits(),this.persistEnabled&&this.saveGroupMessagesToStorage(e.groupId)}},t.addGroupMessages=function(e){for(var t,n=this,r={},s=o(e);!(t=s()).done;){var i=t.value;i.groupId&&(r[i.groupId]||(r[i.groupId]=[]),r[i.groupId].push(i))}for(var a=0,c=Object.entries(r);a<c.length;a++){var u=c[a],d=u[0],l=u[1];this.recordAccess(Number(d)),this.groupMessageCache[d]||(this.groupMessageCache[d]=[]);for(var g,h=function(){var e=g.value,t=n.groupMessageCache[d].findIndex(function(t){return t.msgId===e.msgId});t>=0?n.groupMessageCache[d][t]=e:n.groupMessageCache[d].push(e)},p=o(l);!(g=p()).done;)h();this.sortGroupMessages(Number(d)),this.limitGroupMessageCache(Number(d)),this.persistEnabled&&this.saveGroupMessagesToStorage(Number(d))}this.enforceMemoryLimits()},t.sortConversations=function(){var e=this;this.conversationCache.sort(function(t,n){var o,r,s,i,a=!0===t.pin,c=!0===n.pin;if(a&&!c)return-1;if(!a&&c)return 1;if(a&&c)return(null!=(s=e.pinnedConversationOrder.get(t.id))?s:0)-(null!=(i=e.pinnedConversationOrder.get(n.id))?i:0);var u=(null==(o=t.latest)?void 0:o.createTime)||0;return((null==(r=n.latest)?void 0:r.createTime)||0)-u})},t.sortGroupMessages=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].sort(function(e,t){return(t.createTime||0)-(e.createTime||0)})},t.limitGroupMessageCache=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].length>this.config.MAX_GROUP_MESSAGES&&(this.groupMessageCache[e]=this.groupMessageCache[e].slice(0,this.config.MAX_GROUP_MESSAGES))},t.recordAccess=function(e){this.accessTimeRecord[e]=Date.now()},t.enforceConversationLimit=function(){this.conversationCache.length<=this.config.MAX_CONVERSATIONS||(this.sortConversations(),this.conversationCache=this.conversationCache.slice(0,this.config.MAX_CONVERSATIONS))},t.enforceMemoryLimits=function(){var e=this,t=Object.keys(this.groupMessageCache).length;if(t>10){var n=Object.keys(this.groupMessageCache).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}});n.sort(function(e,t){return e.lastAccess-t.lastAccess});for(var o=Math.ceil(.3*t),r=0;r<o&&r<n.length;r++){var s=n[r].groupId;this.persistEnabled&&(delete this.groupMessageCache[s],this.debug&&console.log("Released memory for inactive group: "+s))}}},t.setupCleanupInterval=function(){var e=this;this.cleanupTimer&&clearInterval(this.cleanupTimer),this.cleanupTimer=window.setInterval(function(){e.cleanupExpiredData()},this.config.EXPIRY_CHECK_INTERVAL)},t.cleanupExpiredData=function(){var e=Date.now();this.metaInfo.lastCleanup=e,this.debug&&console.log("Running cache cleanup");for(var t=0,n=Object.entries(this.accessTimeRecord);t<n.length;t++){var o=n[t],r=o[0];e-o[1]>this.config.CACHE_TTL&&(delete this.accessTimeRecord[r],this.groupMessageCache[r]&&delete this.groupMessageCache[r])}this.persistEnabled&&this.saveMetaInfoToStorage()},t.loadFromStorage=function(){var e=this;try{var t=localStorage.getItem(E.META_INFO);t&&(this.metaInfo=JSON.parse(t));var n=localStorage.getItem(E.CONVERSATIONS);n&&(this.conversationCache=JSON.parse(n)),Object.keys(localStorage).filter(function(e){return e.startsWith(E.GROUP_MESSAGES+".")}).forEach(function(t){var n=t.split(".")[1];n&&!isNaN(Number(n))&&(e.accessTimeRecord[n]=0)});var o=localStorage.getItem(E.USER_INFO);o&&(this.userInfo=JSON.parse(o))}catch(e){console.error("Failed to load cache from storage:",e),this.clearStorage()}},t.loadGroupMessagesFromStorage=function(e){try{for(var t=[],n=0,o=!0;o;){var r=localStorage.getItem(E.GROUP_MESSAGES+"."+e+(n>0?"."+n:""));if(r){var s=JSON.parse(r);t=t.concat(s),n++}else o=!1}t.length>0&&(this.groupMessageCache[e]=t,this.sortGroupMessages(e),this.limitGroupMessageCache(e),this.debug&&console.log("Loaded "+t.length+" messages for group "+e+" from storage"))}catch(t){console.error("Failed to load group messages for "+e+" from storage:",t)}},t.saveConversationsToStorage=function(){try{localStorage.setItem(E.CONVERSATIONS,JSON.stringify(this.conversationCache))}catch(e){console.error("Failed to save conversations to storage:",e),this.handleStorageError()}},t.saveGroupMessagesToStorage=function(e){try{if(void 0!==e){var t=this.groupMessageCache[e];if(!t||0===t.length)return;var n=JSON.stringify(t);if(n.length>this.config.STORAGE_CHUNK_SIZE){this.clearGroupMessageStorage(e);for(var o=t.length,r=Math.max(1,Math.floor(this.config.STORAGE_CHUNK_SIZE/(n.length/o))),s=0;s<o;s+=r){var i=t.slice(s,s+r),a=Math.floor(s/r);localStorage.setItem(E.GROUP_MESSAGES+"."+e+(a>0?"."+a:""),JSON.stringify(i))}}else localStorage.setItem(E.GROUP_MESSAGES+"."+e,n)}else for(var c=0,u=Object.keys(this.groupMessageCache);c<u.length;c++)this.saveGroupMessagesToStorage(Number(u[c]))}catch(e){console.error("Failed to save group messages to storage:",e),this.handleStorageError()}},t.saveMetaInfoToStorage=function(){try{localStorage.setItem(E.META_INFO,JSON.stringify(this.metaInfo))}catch(e){console.error("Failed to save meta info to storage:",e)}},t.handleStorageError=function(){for(var e=this,t=Object.keys(this.accessTimeRecord).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}}).sort(function(e,t){return e.lastAccess-t.lastAccess}),n=Math.max(1,Math.floor(.2*t.length)),o=0;o<n&&o<t.length;o++)this.clearGroupMessageStorage(Number(t[o].groupId)),this.debug&&console.log("Cleared storage for group "+t[o].groupId+" due to quota exceeded")},t.clearGroupMessageStorage=function(e){for(var t=0,n=!0;n;){var o=E.GROUP_MESSAGES+"."+e+(t>0?"."+t:"");null!==localStorage.getItem(o)?(localStorage.removeItem(o),t++):n=!1}},t.saveUserInfoToStorage=function(){try{localStorage.setItem(E.USER_INFO,JSON.stringify(this.userInfo))}catch(e){console.error("Failed to save user info to storage:",e)}},t.clearStorage=function(){try{for(var e,t=o(Object.keys(localStorage).filter(function(e){return e.startsWith(S)}));!(e=t()).done;)localStorage.removeItem(e.value)}catch(e){console.error("Failed to clear storage:",e)}},t.destroy=function(){this.cleanupTimer&&(clearInterval(this.cleanupTimer),this.cleanupTimer=void 0),this.debug&&console.log("Cache manager destroyed")},t.markConversationAsActive=function(e){this.accessTimeRecord[e]=Date.now();var t=this.conversationCache.find(function(t){return t.id===e});return!!t&&(this.activeConversation=r({},t),!0)},t.resetActiveConversation=function(){var e,t=!(null==(e=this.activeConversation)||!e.id);return this.activeConversation=void 0,this.debug&&t&&console.log("Active conversation reset"),t},e}(),P=/*#__PURE__*/function(){function e(e){this.url=void 0,this.token=void 0,this.eventSource=null,this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectTimeout=2e3*Math.random()+3e3,this.connectTimeout=1e4,this.reconnectTimer=null,this.handlers=new Map,this.connected=!1,this.onMessageCallback=void 0,this.onReconnectSuccessCallback=void 0,this.onConnectionClosedCallback=void 0,this.onMaxRetriesReachedCallback=void 0,this.onConnectionChangeCallback=void 0,this.isDestroyed=!1,this.debug=!1,this._openHandler=null,this._errorHandler=null,this._messageHandler=null,this._customHandlers=new Map,this.connectTimeoutRef=null,this.url=e.url,this.token=e.token,this.connectTimeout=e.connectTimeout||1e4,this.reconnectTimeout=e.retryInterval||2e3*Math.random()+3e3,this.maxReconnectAttempts=e.maxRetries||5,this.debug=e.debug||!1,this.onMessageCallback=e.onMessage,this.onReconnectSuccessCallback=e.onReconnectSuccess,this.onConnectionClosedCallback=e.onConnectionClosed,this.onMaxRetriesReachedCallback=e.onMaxRetriesReached,this.onConnectionChangeCallback=e.onConnectionChange}var n=e.prototype;return n.debugLog=function(e){var t;this.debug&&(t=console).log.apply(t,["[SSE] "+e].concat([].slice.call(arguments,1)))},n.debugError=function(e){var t;this.debug&&(t=console).error.apply(t,["[SSE] "+e].concat([].slice.call(arguments,1)))},n.debugWarn=function(e){var t;this.debug&&(t=console).warn.apply(t,["[SSE] "+e].concat([].slice.call(arguments,1)))},n.removeAllEventListeners=function(){var e=this;this.eventSource&&(this._openHandler&&this.eventSource.removeEventListener("open",this._openHandler),this._errorHandler&&this.eventSource.removeEventListener("error",this._errorHandler),this._messageHandler&&this.eventSource.removeEventListener("message",this._messageHandler),this.handlers.forEach(function(t,n){var o=e._customHandlers.get(n);o&&e.eventSource&&e.eventSource.removeEventListener(n,o)}))},n.subscribe=function(e,t){var n=this;this.handlers.set(e,t);var o=function(e){try{var o=JSON.parse(e.data);t(o)}catch(e){n.debugError("Error parsing message data:",e)}};this._customHandlers.set(e,o),this.eventSource?this.eventSource.addEventListener(e,o):this.connect()},n.connect=function(){var e=this;return this.connected&&this.eventSource?Promise.reject(new Error("SSE is already connected!")):new Promise(function(n,o){try{e.eventSource=new t.EventSourcePolyfill(e.url,{heartbeatTimeout:36e5,withCredentials:!1,headers:{Authorization:"Bearer "+e.token}}),e._openHandler=function(t){e.debugLog("SSE connection established"),e.connected=!0,e.onConnectionChangeCallback&&e.onConnectionChangeCallback(!0),e.reconnectAttempts>0&&e.onReconnectSuccessCallback&&e.onReconnectSuccessCallback(),e.reconnectAttempts=0,e.reconnectTimeout=5e3,n("SSE connect successful!")},e._errorHandler=function(t){e.debugError("SSE connection error:",t),e.connected=!1,e.onConnectionChangeCallback&&e.onConnectionChangeCallback(!1),401===t.status||t.statusText&&t.statusText.includes("Unauthorized")?(e.cleanup(),e.connectTimeoutRef&&(clearTimeout(e.connectTimeoutRef),e.connectTimeoutRef=null),e.notifyConnectionClosed(!0)):e.handleReconnect(),e.connected||o(new Error("SSE connect error"))},e._messageHandler=function(t){try{e.debugLog("SSE received message:",t.data);var n=JSON.parse(t.data);e.onMessageCallback&&e.onMessageCallback(n)}catch(t){e.debugError("Error parsing message:",t)}},e.eventSource.addEventListener("open",e._openHandler),e.eventSource.addEventListener("error",e._errorHandler),e.eventSource.addEventListener("message",e._messageHandler),e.handlers.forEach(function(t,n){var o=e._customHandlers.get(n);o&&e.eventSource&&e.eventSource.addEventListener(n,o)}),e.connectTimeoutRef=setTimeout(function(){e.connected||(o(new Error("Connection timeout")),e.handleReconnect())},e.connectTimeout);var r=e._openHandler;e._openHandler=function(t){clearTimeout(e.connectTimeoutRef),r(t)}}catch(t){e.debugError("Failed to create EventSource:",t),e.handleReconnect(),o(t)}})},n.notifyConnectionClosed=function(e){void 0===e&&(e=!1),this.onConnectionClosedCallback&&this.onConnectionClosedCallback(e),e?this.debugWarn("SSE connection closed due to authentication error"):this.debugLog("SSE connection closed")},n.handleReconnect=function(){var e=this;if(this.isDestroyed)this.debugLog("SSE is destroyed, skipping reconnection");else if(null===this.reconnectTimer){if(this.reconnectAttempts>=this.maxReconnectAttempts)return this.debugError("Max reconnection attempts reached"),this.destroySse(),void(this.onMaxRetriesReachedCallback&&this.onMaxRetriesReachedCallback());this.debugLog("Attempting to reconnect in "+this.reconnectTimeout/1e3+" seconds..."),this.cleanup(),this.reconnectTimer=window.setTimeout(function(){e.reconnectAttempts++,e.reconnectTimeout=Math.min(2*e.reconnectTimeout,6e4),e.reconnectTimer=null,e.connect().catch(function(){})},this.reconnectTimeout)}},n.cleanup=function(){this.eventSource&&(this.removeAllEventListeners(),this.eventSource.close(),this.eventSource=null),this.connected=!1},n.unsubscribe=function(){this.cleanup(),this.handlers.clear(),this._customHandlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},n.destroySse=function(){this.unsubscribe(),this.isDestroyed=!0,this.notifyConnectionClosed()},n.close=function(){this.destroySse(),this.debugLog("SSE 连接已关闭")},n.isConnected=function(){return this.connected},n.send=function(e){var t="当前协议不可用:SSE 是单向通信协议,不支持客户端向服务器发送消息";throw this.debugError(t),new Error(t)},e}(),O=/*#__PURE__*/function(){function e(e){this.url=void 0,this.token=void 0,this.websocket=null,this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectTimeout=2e3*Math.random()+3e3,this.connectTimeout=1e4,this.reconnectTimer=null,this.handlers=new Map,this.connected=!1,this.onMessageCallback=void 0,this.onReconnectSuccessCallback=void 0,this.onConnectionClosedCallback=void 0,this.onMaxRetriesReachedCallback=void 0,this.onConnectionChangeCallback=void 0,this.connectTimeoutRef=null,this.isDestroyed=!1,this.debug=!1,this.url=e.url,this.token=e.token,this.connectTimeout=e.connectTimeout||1e4,this.reconnectTimeout=e.retryInterval||2e3*Math.random()+3e3,this.maxReconnectAttempts=e.maxRetries||5,this.debug=e.debug||!1,this.onMessageCallback=e.onMessage,this.onReconnectSuccessCallback=e.onReconnectSuccess,this.onConnectionClosedCallback=e.onConnectionClosed,this.onMaxRetriesReachedCallback=e.onMaxRetriesReached,this.onConnectionChangeCallback=e.onConnectionChange}var t=e.prototype;return t.debugLog=function(e){var t;this.debug&&(t=console).log.apply(t,["[WebSocket] "+e].concat([].slice.call(arguments,1)))},t.debugError=function(e){var t;this.debug&&(t=console).error.apply(t,["[WebSocket] "+e].concat([].slice.call(arguments,1)))},t.debugWarn=function(e){var t;this.debug&&(t=console).warn.apply(t,["[WebSocket] "+e].concat([].slice.call(arguments,1)))},t.subscribe=function(e,t){this.handlers.set(e,t),this.websocket?this.addMessageHandler(e,t):this.connect()},t.addMessageHandler=function(e,t){var n=this;this.websocket&&this.websocket.addEventListener("message",function(o){try{var r=JSON.parse(o.data);r.type===e&&t(r)}catch(e){n.debugError("Error parsing WebSocket message data:",e)}})},t.connect=function(){var e=this;return this.connected&&this.websocket?Promise.reject(new Error("WebSocket is already connected!")):new Promise(function(t,n){try{var o=new URL(e.url);o.searchParams.set("token",e.token),e.websocket=new WebSocket(o.toString()),e.connectTimeoutRef=setTimeout(function(){e.connected||(n(new Error("WebSocket connection timeout")),e.handleReconnect())},e.connectTimeout),e.websocket.onopen=function(n){e.debugLog("WebSocket connection established"),e.connected=!0,clearTimeout(e.connectTimeoutRef),e.onConnectionChangeCallback&&e.onConnectionChangeCallback(!0),e.reconnectAttempts>0&&e.onReconnectSuccessCallback&&e.onReconnectSuccessCallback(),e.reconnectAttempts=0,e.reconnectTimeout=5e3,t("WebSocket connect successful!")},e.websocket.onerror=function(t){e.debugError("WebSocket connection error:",t),e.connected=!1,clearTimeout(e.connectTimeoutRef),e.onConnectionChangeCallback&&e.onConnectionChangeCallback(!1),e.handleReconnect(),e.connected||n(new Error("WebSocket connect error"))},e.websocket.onclose=function(t){e.debugLog("WebSocket connection closed:",t.code,t.reason),e.connected=!1,e.onConnectionChangeCallback&&e.onConnectionChangeCallback(!1),1002===t.code||1003===t.code||t.reason&&t.reason.includes("Unauthorized")?(e.cleanup(),e.notifyConnectionClosed(!0)):e.handleReconnect()},e.websocket.onmessage=function(t){try{e.debugLog("WebSocket received message:",t.data);var n=JSON.parse(t.data);if("pong"===n.type||2===n.ev)return void(e.connected=!0);e.onMessageCallback&&e.onMessageCallback(n)}catch(t){e.debugError("Error parsing WebSocket message:",t)}},e.handlers.forEach(function(t,n){e.addMessageHandler(n,t)})}catch(t){e.debugError("Failed to create WebSocket:",t),e.handleReconnect(),n(t)}})},t.notifyConnectionClosed=function(e){void 0===e&&(e=!1),this.onConnectionClosedCallback&&this.onConnectionClosedCallback(e),e?this.debugWarn("WebSocket connection closed due to authentication error"):this.debugLog("WebSocket connection closed")},t.handleReconnect=function(){var e=this;if(this.isDestroyed)this.debugLog("WebSocket is destroyed, skipping reconnection");else if(null===this.reconnectTimer){if(this.reconnectAttempts>=this.maxReconnectAttempts)return this.debugError("Max reconnection attempts reached"),this.destroyWebSocket(),void(this.onMaxRetriesReachedCallback&&this.onMaxRetriesReachedCallback());this.debugLog("Attempting to reconnect in "+this.reconnectTimeout/1e3+" seconds..."),this.cleanup(),this.reconnectTimer=window.setTimeout(function(){e.reconnectAttempts++,e.reconnectTimeout=Math.min(2*e.reconnectTimeout,6e4),e.reconnectTimer=null,e.connect().catch(function(){})},this.reconnectTimeout)}},t.cleanup=function(){this.websocket&&(this.websocket.close(),this.websocket=null),this.connected=!1},t.unsubscribe=function(){this.cleanup(),this.handlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},t.destroyWebSocket=function(){this.unsubscribe(),this.isDestroyed=!0,this.notifyConnectionClosed()},t.close=function(){this.destroyWebSocket(),this.debugLog("WebSocket 连接已关闭")},t.isConnected=function(){var e;return this.connected&&(null==(e=this.websocket)?void 0:e.readyState)===WebSocket.OPEN},t.send=function(e){if(!this.websocket||!this.isConnected())return this.debugWarn("WebSocket is not connected, cannot send message"),!1;try{if("string"==typeof e)this.websocket.send(e),this.debugLog("WebSocket message sent (string):",e);else if(e instanceof ArrayBuffer||e instanceof Blob)this.websocket.send(e),this.debugLog("WebSocket message sent (binary):","ArrayBuffer/Blob ("+(e instanceof ArrayBuffer?e.byteLength:e.size)+" bytes)");else if(e instanceof Uint8Array||e instanceof Int8Array||e instanceof Uint16Array||e instanceof Int16Array||e instanceof Uint32Array||e instanceof Int32Array||e instanceof Float32Array||e instanceof Float64Array||e instanceof DataView)this.websocket.send(e),this.debugLog("WebSocket message sent (binary):","ArrayBufferView ("+e.byteLength+" bytes)");else{var t=JSON.stringify(e);this.websocket.send(t),this.debugLog("WebSocket message sent (JSON):",t)}return!0}catch(e){return this.debugError("Failed to send WebSocket message:",e),!1}},e}(),G=["protocol"],R=/*#__PURE__*/function(){function t(){}return t.createClient=function(t){var n=t.protocol,o=function(e,t){if(null==e)return{};var n={};for(var o in e)if({}.hasOwnProperty.call(e,o)){if(-1!==t.indexOf(o))continue;n[o]=e[o]}return n}(t,G);switch(n){case e.ConnectionProtocol.SSE:return new P(o);case e.ConnectionProtocol.WEBSOCKET:return new O(o);default:throw new Error("Unsupported connection protocol: "+n)}},t}(),k=/*#__PURE__*/function(){function t(e){this.sdk=void 0,this.sdk=e}var n=t.prototype;return n.login=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.Login,method:"POST"}))}catch(e){return Promise.reject(e)}},n.logout=function(){try{return Promise.resolve(this.sdk.sendRequest({data:{},url:e.RequestApi.Logout,method:"POST"}))}catch(e){return Promise.reject(e)}},n.getChatMember=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:{chatId:t},url:e.RequestApi.GetChatMember,method:"GET"}))}catch(e){return Promise.reject(e)}},t}(),A=/*#__PURE__*/function(){function t(e){this.sdk=void 0,this.sdk=e}var n=t.prototype;return n.sendMessage=function(e,t){try{var n=this;return Promise.resolve(function(o,r){try{var s=Promise.resolve(n.sdk.sendRequest({data:e,url:t,method:"POST"}))}catch(e){return r(e)}return s&&s.then?s.then(void 0,r):s}(0,function(e){throw console.error("Failed to send message",e),e}))}catch(e){return Promise.reject(e)}},n.getMessageApi=function(t,n){return n===e.GroupType.PrivateChat?e.RequestApi.PushPrivateMessage:n===e.GroupType.LiveGroup?e.RequestApi.PushLiveMessage:null!=t&&t.receiverName?e.RequestApi.PushMessageToMember:e.RequestApi.CreateTextMessage},n.createMessage=function(t,n,o,s,i){void 0===s&&(s={});var a={groupType:o};o===e.GroupType.PublicGroup||o===e.GroupType.PrivateGroup||o===e.GroupType.LiveGroup?a.groupId=n:a.receiverName=n;var c=r({},a,s,{msgType:t},i);return this.sendMessage(c,this.getMessageApi(a,o))},n.createTextMessage=function(t,n,o,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(e.MessageType.TEXT,n,o,r,{text:t}))}catch(e){return Promise.reject(e)}},n.createImageMessage=function(t,n,o,r,s){void 0===s&&(s={});try{return Promise.resolve(this.createMessage(e.MessageType.IMAGE,o,r,s,{link:t,snapshot:n}))}catch(e){return Promise.reject(e)}},n.createFileMessage=function(t,n,o,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(e.MessageType.FILE,n,o,r,{link:t}))}catch(e){return Promise.reject(e)}},n.createAudioMessage=function(t,n,o,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(e.MessageType.AUDIO,n,o,r,{link:t}))}catch(e){return Promise.reject(e)}},n.createVideoMessage=function(t,n,o,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(e.MessageType.VIDEO,n,o,r,{link:t}))}catch(e){return Promise.reject(e)}},n.createLinkMessage=function(t,n,o,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(e.MessageType.LINK,n,o,r,{link:t}))}catch(e){return Promise.reject(e)}},n.createGifMessage=function(t,n,o,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(e.MessageType.GIF,n,o,r,{link:t}))}catch(e){return Promise.reject(e)}},n.createOptionMessage=function(t,n,o,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(e.MessageType.OPTION,n,o,r,{text:t}))}catch(e){return Promise.reject(e)}},n.createEmojiMessage=function(t,n,o,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(e.MessageType.EMOJI,n,o,r,{text:t}))}catch(e){return Promise.reject(e)}},n.createCustomMessage=function(t,n,o,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(e.MessageType.CUSTOM,n,o,r,{text:t}))}catch(e){return Promise.reject(e)}},n.getHistoryMessageList=function(t){var n=t.groupId,o=t.lastId,r=t.type,s=t.size,i=void 0===s?100:s;try{return Promise.resolve(this.sdk.sendRequest({url:e.RequestApi.GetHistoryMessageList,method:"POST",data:{groupId:n,lastId:o,type:r,size:i}}))}catch(e){return Promise.reject(e)}},n.getLiveMessageList=function(t){var n=t.groupId;try{var o;return Promise.resolve(this.sdk.sendRequest({data:{groupId:n},url:null!=(o=this.sdk.getConfig)&&o.anonLogin?e.RequestApi.GetAnonymousLiveMessageList:e.RequestApi.GetLiveMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},n.prePushCustomerMessage=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.PrePushCustomerMessage,method:"POST"}))}catch(e){return Promise.reject(e)}},t}(),I=/*#__PURE__*/function(){function t(e){this.sdk=void 0,this.sdk=e}var n=t.prototype;return n.getConversations=function(t){try{var n=this;return Promise.resolve(n.sdk.sendRequest({data:t,url:e.RequestApi.GetAllConversationList,method:"GET"})).then(function(e){return e.data.records=e.data.records.map(n.normalizeConversation),e})}catch(e){return Promise.reject(e)}},n.markConversationRead=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.MarkConversationMessageAsRead,method:"GET"}))}catch(e){return Promise.reject(e)}},n.markLastRead=function(t,n){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t,msgId:n},url:e.RequestApi.MarkConversationMessageAsRead,method:"GET"}))}catch(e){return Promise.reject(e)}},n.pinConversation=function(t,n){void 0===n&&(n=1);try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t,isTop:n},url:e.RequestApi.PinConversation,method:"GET"}))}catch(e){return Promise.reject(e)}},n.muteConversation=function(t,n){void 0===n&&(n=1);try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t,mute:n},url:e.RequestApi.MuteConversation,method:"GET"}))}catch(e){return Promise.reject(e)}},n.normalizeConversation=function(e){var t,n,o,s,i,a,c,u;return r({},e,{id:e.id,name:e.name||"",groupType:e.groupType||0,avatar:e.avatar||"",status:null!=(t=e.status)?t:1,latest:null!=(n=e.latest)?n:{},unreadCount:null!=(o=e.unreadCount)?o:0,draftText:null!=(s=e.draftText)?s:"",custom:null!=(i=e.custom)?i:"",groupMemberId:null!=(a=e.groupMemberId)?a:"",pin:null!=(c=e.pin)&&c,supportId:e.supportId||"",supportNick:e.supportNick||"",identity:null!=(u=e.identity)?u:1})},t}(),L=/*#__PURE__*/function(){function t(e){this.sdk=void 0,this.sdk=e}var n=t.prototype;return n.getGroupInfo=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t},url:e.RequestApi.GetGroupInfo,method:"GET"}))}catch(e){return Promise.reject(e)}},n.getGroupMember=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t},url:e.RequestApi.GetGroupMember,method:"GET"}))}catch(e){return Promise.reject(e)}},n.getGroupMembers=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.GetGroupMembers,method:"GET"}))}catch(e){return Promise.reject(e)}},n.joinGroup=function(t){try{var n;return Promise.resolve(this.sdk.sendRequest({data:{groupId:t},url:null!=(n=this.sdk.getConfig)&&n.anonLogin?e.RequestApi.AnonymousJoinGroup:e.RequestApi.JoinGroup,method:"GET"}))}catch(e){return Promise.reject(e)}},n.leftGroup=function(t){try{var n;return Promise.resolve(this.sdk.sendRequest({data:{groupId:t},url:null!=(n=this.sdk.getConfig)&&n.anonLogin?e.RequestApi.AnonymousLeftGroup:e.RequestApi.LeftGroup,method:"GET"}))}catch(e){return Promise.reject(e)}},n.checkGroupBlock=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t},url:e.RequestApi.CheckGroupBlock,method:"GET"}))}catch(e){return Promise.reject(e)}},n.updateLatestMessage=function(t){try{var n=Object.fromEntries(t.entries());return Promise.resolve(this.sdk.sendRequest({data:{latestMessage:n},url:e.RequestApi.UpdateLatestMessage,method:"POST"}))}catch(e){return Promise.reject(e)}},n.getGroupLatestMessage=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:{groups:t},url:e.RequestApi.GetLatestGroupChats,method:"POST"}))}catch(e){return Promise.reject(e)}},n.checkGroupLatestMessage=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:{ttl:t},url:e.RequestApi.CheckLatestMessages,method:"GET"}))}catch(e){return Promise.reject(e)}},n.getMyGroupPermission=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t},url:e.RequestApi.GetMyGroupPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},n.getGroupPermission=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t},url:e.RequestApi.GetGroupPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},n.getGroupMemberPermission=function(t,n){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t,targetMemberId:n},url:e.RequestApi.GetGroupMemberPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},n.updateGroupPermission=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.UpdateGroupPermission,method:"POST"}))}catch(e){return Promise.reject(e)}},n.updateGroupMemberPermission=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.UpdateGroupMemberPermission,method:"POST"}))}catch(e){return Promise.reject(e)}},n.kickGroupMember=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.kickGroupMember,method:"POST"}))}catch(e){return Promise.reject(e)}},n.muteMembers=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.muteMembers,method:"POST"}))}catch(e){return Promise.reject(e)}},n.editGroupName=function(t,n){try{return Promise.resolve(this.sdk.sendRequest({url:e.RequestApi.editeGroupName,method:"GET",data:{groupId:t,name:n}}))}catch(e){return Promise.reject(e)}},n.editNotification=function(t,n){try{return Promise.resolve(this.sdk.sendRequest({url:e.RequestApi.editeNotification,method:"GET",data:{groupId:t,notification:n}}))}catch(e){return Promise.reject(e)}},n.editGroupCustomer=function(t,n){try{return Promise.resolve(this.sdk.sendRequest({url:e.RequestApi.editeGroupCustomer,method:"GET",data:{groupId:t,customer:n}}))}catch(e){return Promise.reject(e)}},n.addAdmin=function(t,n){try{return Promise.resolve(this.sdk.sendRequest({url:e.RequestApi.addAdmin,method:"GET",data:{groupId:t,username:n}}))}catch(e){return Promise.reject(e)}},n.deleteAdmin=function(t,n){try{return Promise.resolve(this.sdk.sendRequest({url:e.RequestApi.deleteAdmin,method:"GET",data:{groupId:t,username:n}}))}catch(e){return Promise.reject(e)}},n.dissolveGroup=function(t){try{return Promise.resolve(this.sdk.sendRequest({url:e.RequestApi.DissolveGroup,method:"GET",data:{groupId:t}}))}catch(e){return Promise.reject(e)}},n.pin=function(t,n,o){try{return Promise.resolve(this.sdk.sendRequest({url:e.RequestApi.pin,method:"GET",data:{groupId:t,messageId:n,type:o}}))}catch(e){return Promise.reject(e)}},n.muteGroup=function(t,n){try{return Promise.resolve(this.sdk.sendRequest({url:e.RequestApi.muteGroup,method:"GET",data:{groupId:t,type:n}}))}catch(e){return Promise.reject(e)}},n.muteMember=function(t,n,o){try{return Promise.resolve(this.sdk.sendRequest({url:e.RequestApi.muteMember,method:"GET",data:{groupId:t,username:n,type:o}}))}catch(e){return Promise.reject(e)}},n.addGroupMembers=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.AddGroupMembers,method:"POST"}))}catch(e){return Promise.reject(e)}},n.getFileByType=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.GetFileByType,method:"GET"}))}catch(e){return Promise.reject(e)}},n.pinChat=function(t,n){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t,type:n},url:e.RequestApi.PinChat,method:"GET"}))}catch(e){return Promise.reject(e)}},t}(),U=/*#__PURE__*/function(){function t(e){this.sdk=void 0,this.sdk=e}var n=t.prototype;return n.getContactByType=function(t,n){try{var o={contactType:t};return void 0!==n&&(o.groupId=n),Promise.resolve(this.sdk.sendRequest({data:o,url:e.RequestApi.GetContactByType,method:"GET"}))}catch(e){return Promise.reject(e)}},n.getMemberContacts=function(t){try{return Promise.resolve(this.getContactByType(e.ContactType.MEMBER,t))}catch(e){return Promise.reject(e)}},n.getColleagueContacts=function(t){try{return Promise.resolve(this.getContactByType(e.ContactType.COLLEAGUE,t))}catch(e){return Promise.reject(e)}},n.getGroupContacts=function(t){try{return Promise.resolve(this.getContactByType(e.ContactType.GROUP,t))}catch(e){return Promise.reject(e)}},n.editContactTag=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.EditContactTag,method:"POST"}))}catch(e){return Promise.reject(e)}},n.getContactTag=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:{contactType:t},url:e.RequestApi.GetContactTag,method:"GET"}))}catch(e){return Promise.reject(e)}},n.allocationContactTag=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.AllocationContactTag,method:"POST"}))}catch(e){return Promise.reject(e)}},n.allocationMemberTag=function(t,n,o){void 0===o&&(o=0);try{return Promise.resolve(this.allocationContactTag({contactType:e.ContactType.MEMBER,tag:t,groupIds:n,type:o}))}catch(e){return Promise.reject(e)}},n.allocationColleagueTag=function(t,n,o){void 0===o&&(o=0);try{return Promise.resolve(this.allocationContactTag({contactType:e.ContactType.COLLEAGUE,tag:t,groupIds:n,type:o}))}catch(e){return Promise.reject(e)}},n.allocationGroupTag=function(t,n,o){void 0===o&&(o=0);try{return Promise.resolve(this.allocationContactTag({contactType:e.ContactType.GROUP,tag:t,groupIds:n,type:o}))}catch(e){return Promise.reject(e)}},t}(),N=/*#__PURE__*/function(){function t(e){this.sdk=void 0,this.services={},this.sdk=e}var n=t.prototype;return n.get=function(e){return this.services[e]||(this.services[e]=this.createService(e)),this.services[e]},n.createService=function(t){switch(t){case e.ServiceName.USER:return new k(this.sdk);case e.ServiceName.MESSAGE:return new A(this.sdk);case e.ServiceName.CONVERSATION:return new I(this.sdk);case e.ServiceName.GROUP:return new L(this.sdk);case e.ServiceName.CONTACT:return new U(this.sdk);default:throw new Error("Unknown service: "+t)}},n.reset=function(){this.services={}},t}();function _(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}var w=[e.RequestApi.Logout,e.CbEvents.OnKickedOffline,e.CbEvents.OnUserTokenInvalid,e.CbEvents.OnUserTokenExpired];e.SIMSDK=/*#__PURE__*/function(t){function n(n){var o;return void 0===n&&(n=!1),(o=t.call(this)||this).config={debug:!1,isLive:!1,useProtobuf:!1,protocol:e.ConnectionProtocol.SSE},o.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},o.cacheManager=void 0,o.connectionClient=void 0,o.serviceManager=void 0,o.lastUnauthorizedTime=0,o.UNAUTHORIZED_THROTTLE_MS=3e3,o.configure=function(e){void 0!==e.debug&&(o.config.debug=e.debug),e.isLive&&(o.config.isLive=e.isLive),e.apiAddr&&(o.config.apiAddr=e.apiAddr),e.wsAddr&&(o.config.wsAddr=e.wsAddr),e.ossApiAddr&&(o.config.ossApiAddr=e.ossApiAddr),e.appKey&&(o.config.appKey=e.appKey),e.token&&(o.config.token=e.token),e.connectTimeout&&(o.config.connectTimeout=e.connectTimeout),e.maxRetries&&(o.config.maxRetries=e.maxRetries),e.useProtobuf&&(o.config.useProtobuf=e.useProtobuf),e.protocol&&(o.config.protocol=e.protocol)},o.sendRequest=function(e){try{o.internalState.lastActivity=Date.now(),o.config.debug&&o.logRequest(e);var t=o.config.apiAddr+e.url,n=e.data;if("GET"===e.method&&n){var r=new URLSearchParams;Object.entries(n).forEach(function(e){var t=e[1];null!=t&&r.append(e[0],String(t))});var s=r.toString();s&&(t+=(t.includes("?")?"&":"?")+s),n=void 0}return Promise.resolve(_(function(){return Promise.resolve(function(e){try{var t,n=function(e){if(t)return e;throw new Error("Unsupported platform")},o=function(){if(b){var n=new Promise(function(t,n){uni.request({url:e.url,method:e.method||"GET",header:e.headers,data:e.data,success:function(e){401!==e.statusCode?t(e.data):n({status:401,message:"Unauthorized"})},fail:function(e){return n(e)}})});return t=1,n}return function(){if(M)return Promise.resolve(fetch(e.url,{method:e.method||"GET",headers:e.headers,body:e.data?JSON.stringify(e.data):null})).then(function(e){if(401===e.status)throw{status:401,message:"Unauthorized"};return Promise.resolve(e.json()).then(function(e){return t=1,e})})}()}();return Promise.resolve(o&&o.then?o.then(n):n(o))}catch(e){return Promise.reject(e)}}({url:t,method:e.method,headers:{"Content-Type":"application/json",Authorization:o.config.token?"Bearer "+o.config.token:""},data:n}))},function(e){throw 401!==(null==e?void 0:e.status)&&401!==(null==e?void 0:e.statusCode)||o.handleUnauthorizedWithThrottle(t),e}))}catch(e){return Promise.reject(e)}},o.handleUnauthorizedWithThrottle=function(e){var t=Date.now();t-o.lastUnauthorizedTime<o.UNAUTHORIZED_THROTTLE_MS?console.warn("401错误被节流限制,跳过处理:"+e):(o.lastUnauthorizedTime=t,o.handleUnauthorized(e))},o.handleUnauthorized=function(e){console.warn("未授权请求(401):",e),o.handleConnectionClosed(!0)},o.createRequestFunction=function(e,t){return function(n){return o.sendRequest({data:n,url:e,method:t})}},o.createRequestFunctionWithoutParams=function(e,t){return function(){return o.sendRequest({data:void 0,method:t,url:e})}},o.handleMessage=function(e){o.config.debug&&console.log("[SDK] handleMessage response",e),o.isProtobufFormat(e)?o.handleProtobufMessage(e):o.handleJsonMessage(e)},o.handleJsonMessage=function(t){switch(o.config.debug&&console.log("handleMessage response",t),t.ev){case e.SseEventType.EVENT_MESSAGE_PUSH:var n=t.dt;Array.isArray(n)?(n.forEach(function(e){o.updateMessageCache(e)}),o.emit(e.CbEvents.OnReceiveMessages,n)):console.warn("[SDK] Expected response.dt to be an array, but got:",n);break;case e.SseEventType.EVENT_PONG_IDLE:o.internalState.isConnected=!0;break;case e.SseEventType.EVENT_SYSTEM_MESSAGE_PUSH:o.emit(e.CbEvents.OnReceiveSystemMessage,t.dt);break;case e.SseEventType.EVENT_PRE_MESSAGE_PUSH:o.emit(e.CbEvents.OnReceivePreMessage,t.dt);break;case e.SseEventType.EVENT_SUBSCRIBE_MESSAGE_PUSH:o.emit(e.CbEvents.OnReceiveSubscribeMessage,t.dt);break;default:r=t.ev,Object.values(e.CbEvents).includes(r)?(o.emit(t.ev,t.dt),w.includes(t.ev)&&(o.internalState.isLoggedIn=!1,o.internalState.isConnected=!1,o.connectionClient&&(o.connectionClient.close(),o.connectionClient=void 0))):o.config.debug&&console.warn("[SDK] Unknown SSE event type:",t.ev)}var r},o.handleReconnectSuccess=function(){o.config.username&&(o.internalState.isConnected=!0,o.internalState.reconnectAttempts=0,o.config.debug&&console.log("SSE reconnection successful"),o.emit(e.CbEvents.OnReconnected))},o.handleConnectionClosed=function(t){o.internalState.isConnected=!1,o.config.debug&&console.log("SSE connection closed"),o.emit(e.CbEvents.OnDisconnected,t)},o.handleMaxRetriesReached=function(){o.config.debug&&console.log("SSE connection max reconnection attempts reached"),o.emit(e.CbEvents.onMaxRetriesReached)},o.handleConnectionChange=function(t){o.config.debug&&console.log("Connection status changed:",t),o.emit(t?e.CbEvents.OnConnected:e.CbEvents.OnDisconnected)},o.login=function(t){try{var n,s,i=function(r){return n?r:(o.connectionClient=R.createClient({url:o.config.wsAddr+"/"+(t.anonLogin?"anonymousConn":"conn")+"?username="+t.username+"&token="+t.token+"&appKey="+o.config.appKey+"&random="+s,protocol:o.config.protocol||e.ConnectionProtocol.WEBSOCKET,debug:o.config.debug,onMessage:o.handleMessage,onReconnectSuccess:o.handleReconnectSuccess,onConnectionClosed:o.handleConnectionClosed,onMaxRetriesReached:o.handleMaxRetriesReached,onConnectionChange:o.handleConnectionChange,token:t.token,connectTimeout:o.config.connectTimeout,maxRetries:o.config.maxRetries}),_(function(){return Promise.resolve(o.connectionClient.connect()).then(function(e){return o.internalState.isLoggedIn=!0,o.internalState.isConnected=!0,o.config.isLive||o.initializeConversationCache(),e})},function(e){return o.internalState.isLoggedIn=!1,o.internalState.isConnected=!1,Promise.reject(e.message)}))};if(o.connectionClient&&(null==o.connectionClient.close||o.connectionClient.close(),o.connectionClient=void 0,o.internalState.isLoggedIn=!1,o.internalState.isConnected=!1),!o.config.apiAddr)return Promise.reject("No apiAddr configured. Please call configure() before login().");if(!o.config.ossApiAddr)return Promise.reject("No ossApiAddr configured. Please call configure() before login().");if(!o.config.appKey)return Promise.reject("No appKey configured. Please call configure() before login().");if(!o.config.token)return Promise.reject("No token configured. Please call configure() before login().");if(o.config.username=t.username,o.config.anonLogin=t.anonLogin||!1,t.protocol&&(o.config.protocol=t.protocol),t.protocol==e.ConnectionProtocol.WEBSOCKET&&!o.config.wsAddr)return Promise.reject("WebSocket address (wsAddr) is not configured. Please call configure() before login().");if(o.config.debug&&(console.log("login params",t),console.log("apiAddr",o.config.apiAddr)),!o.config.isLive||!t.anonLogin){o.cacheManager.initialize(t.username),o.cacheManager.resetActiveConversation();var a=o.cacheManager.getConversations();a.length>0&&o.emit(e.CbEvents.OnConversationListUpdated,a)}var c=function(){if(!t.anonLogin)return Promise.resolve(o.user.login(r({},t,{appKey:o.config.appKey}))).then(function(e){var t=e.code,o=e.data;if(0!=t){var r=Promise.resolve("Login failed, Server error, error code is "+t);return n=1,r}s=o})}();return Promise.resolve(c&&c.then?c.then(i):i(c))}catch(e){return Promise.reject(e)}},o.logout=function(){try{return o.connectionClient&&(o.connectionClient.close(),o.connectionClient=void 0),Promise.resolve(o.user.logout()).then(function(e){return o.internalState.isLoggedIn=!1,o.internalState.isConnected=!1,o.config.username=void 0,o.config.token=void 0,o.cacheManager.clear(),e})}catch(e){return Promise.reject(e)}},o.getChatMember=function(e){return o.user.getChatMember(e)},o.getConversations=function(t){try{return Promise.resolve(_(function(){var n=t.pageNo||1,r=t.pageSize||50;return n<1?(console.warn("[SDK] Invalid pageNo, must be >= 1"),!1):r<1||r>100?(console.warn("[SDK] Invalid pageSize, must be between 1 and 100"),!1):Promise.resolve(o.conversation.getConversations({pageNo:n,pageSize:r})).then(function(t){var r=t.data;if(0===t.code&&r){var s=o.cacheManager.getConversations();if(1===n)o.cacheManager.setConversations([].concat(r.records),!0);else{var i=r.records||[],a=new Map;s.forEach(function(e){a.set(e.id,e)});var c=[],u=[];i.forEach(function(e){a.has(e.id)?c.push(e):u.push(e)});var d=[];s.forEach(function(e){c.find(function(t){return t.id===e.id})||d.push(e)}),d.push.apply(d,c.concat(u)),o.cacheManager.setConversations(d,!1)}o.emit(e.CbEvents.OnConversationListUpdated,o.cacheManager.getConversations())}else{var l=o.cacheManager.getConversations();l.length>0&&o.emit(e.CbEvents.OnConversationListUpdated,l)}return!0})},function(t){console.error("[SDK] Failed to get conversations:",t);var n=o.cacheManager.getConversations();return n.length>0&&o.emit(e.CbEvents.OnConversationListUpdated,n),!1}))}catch(e){return Promise.reject(e)}},o.internalUploadFile=function(t,n){try{return Promise.resolve(_(function(){var r=new FormData;return r.append("file",t),r.append("filename",t.name),r.append("groupId",n.toString()),Promise.resolve(fetch(""+o.config.ossApiAddr+e.RequestApi.UploadFile,{method:"POST",headers:{Authorization:o.config.token?"Bearer "+o.config.token:""},body:r})).then(function(e){if(!e.ok)throw new Error("Upload failed with status: "+e.status);return Promise.resolve(e.json()).then(function(e){var t=(null==e?void 0:e.data)||{};return{originalUrl:t.originalUrl||"",thumbnailUrl:t.thumbnailUrl||""}})})},function(e){return console.error("[Upload Error]",e),{error:e instanceof Error?e:new Error("Unknown upload error")}}))}catch(e){return Promise.reject(e)}},o.uploadFile=function(t,n){var r=t.file;try{return Promise.resolve(o.internalUploadFile(r,n)).then(function(t){var n,o=t.originalUrl,r=t.thumbnailUrl,s=t.error;return{data:{originalUrl:void 0===o?"":o,thumbnailUrl:void 0===r?"":r},msg:null!=(n=null==s?void 0:s.message)?n:"",code:s?e.ErrorCode.UnknownError:0}})}catch(e){return Promise.reject(e)}},o.sendTextMessage=function(e,t,n,r){return o.message.createTextMessage(e,t,n,r)},o.sendImageMessage=function(e,t,n,r,s){return o.message.createImageMessage(e,t,n,r,s)},o.sendFileMessage=function(e,t,n,r){return o.message.createFileMessage(e,t,n,r)},o.sendAudioMessage=function(e,t,n,r){return o.message.createAudioMessage(e,t,n,r)},o.sendVideoMessage=function(e,t,n,r){return o.message.createVideoMessage(e,t,n,r)},o.sendLinkMessage=function(e,t,n,r){return o.message.createLinkMessage(e,t,n,r)},o.sendGifMessage=function(e,t,n,r){return o.message.createGifMessage(e,t,n,r)},o.sendOptionMessage=function(e,t,n,r){return o.message.createOptionMessage(e,t,n,r)},o.sendEmojiMessage=function(e,t,n,r){return o.message.createEmojiMessage(e,t,n,r)},o.sendCustomMessage=function(e,t,n,r){return o.message.createCustomMessage(e,t,n,r)},o.getHistoryMessageList=function(e){return e.groupId&&o.cacheManager.markConversationAsActive(e.groupId),o.message.getHistoryMessageList(e)},o.getLiveMessageList=function(e){return o.message.getLiveMessageList(e)},o.prePushCustomerMessage=function(e){return o.message.prePushCustomerMessage(e)},o.getGroupInfo=function(e){return o.group.getGroupInfo(e)},o.getGroupMembers=function(e){return o.group.getGroupMembers(e)},o.joinGroup=function(e){return o.group.joinGroup(e)},o.leftGroup=function(e){return o.group.leftGroup(e)},o.checkGroupBlock=function(e){return o.group.checkGroupBlock(e)},o.getMyGroupPermission=function(e){return o.group.getMyGroupPermission(e)},o.getGroupPermission=function(e){return o.group.getGroupPermission(e)},o.getGroupMember=function(e){return o.group.getGroupMember(e)},o.getGroupMemberPermission=function(e,t){return o.group.getGroupMemberPermission(e,t)},o.updateGroupPermission=function(e){return o.group.updateGroupPermission(e)},o.kickGroupMember=function(e){return o.group.kickGroupMember(e)},o.muteMembers=function(e){return o.group.muteMembers(e)},o.updateGroupMemberPermission=function(e){return o.group.updateGroupMemberPermission(e)},o.editGroupName=function(e,t){return o.group.editGroupName(e,t)},o.editNotification=function(e,t){return o.group.editNotification(e,t)},o.editGroupCustomer=function(e,t){return o.group.editGroupCustomer(e,t)},o.addAdmin=function(e,t){return o.group.addAdmin(e,t)},o.deleteAdmin=function(e,t){return o.group.deleteAdmin(e,t)},o.pin=function(e,t,n){return o.group.pin(e,t,n)},o.muteGroup=function(e,t){return o.group.muteGroup(e,t)},o.muteMember=function(e,t,n){return o.group.muteMember(e,t,n)},o.addGroupMembers=function(e){return o.group.addGroupMembers(e)},o.getFileByType=function(e){return o.group.getFileByType(e)},o.pinChat=function(e,t){return o.group.pinChat(e,t)},o.dissolveGroup=function(e){return o.group.dissolveGroup(e)},o.markConversationRead=function(e){return o.conversation.markConversationRead(e)},o.markLastRead=function(e,t){return o.conversation.markLastRead(e,t)},o.pinConversation=function(t,n){void 0===n&&(n=1);try{return Promise.resolve(o.conversation.pinConversation(t,n)).then(function(r){if(0===r.code){o.cacheManager.updateConversationPinStatus(t,1===n);var s=o.cacheManager.getConversations();o.emit(e.CbEvents.OnConversationListUpdated,s)}return r})}catch(e){return Promise.reject(e)}},o.muteConversation=function(e,t){return void 0===t&&(t=1),o.conversation.muteConversation(e,t)},o.clearConversationUnread=function(t){o.cacheManager.clearConversationUnread(t);var n=o.cacheManager.getConversations();o.emit(e.CbEvents.OnConversationListUpdated,n)},o.clearAllConversationUnread=function(){o.cacheManager.clearAllConversationUnread();var t=o.cacheManager.getConversations();o.emit(e.CbEvents.OnConversationListUpdated,t)},o.getContactByType=function(e,t){return o.contact.getContactByType(e,t)},o.getMemberContacts=function(e){return o.contact.getMemberContacts(e)},o.getColleagueContacts=function(e){return o.contact.getColleagueContacts(e)},o.getGroupContacts=function(e){return o.contact.getGroupContacts(e)},o.editContactTag=function(e){return o.contact.editContactTag(e)},o.getContactTag=function(e){return o.contact.getContactTag(e)},o.allocationContactTag=function(e){return o.contact.allocationContactTag(e)},o.allocationMemberTag=function(e,t,n){return void 0===n&&(n=0),o.contact.allocationMemberTag(e,t,n)},o.allocationColleagueTag=function(e,t,n){return void 0===n&&(n=0),o.contact.allocationColleagueTag(e,t,n)},o.allocationGroupTag=function(e,t,n){return void 0===n&&(n=0),o.contact.allocationGroupTag(e,t,n)},o.config.debug=n,n&&(console.log("🚀 SIM SDK Web v1.1.0 (本地开发版本)"),console.log("📦 支持协议: SSE, WebSocket")),o.cacheManager=new T({persistEnabled:!0,debug:n}),o.serviceManager=new N(o),o}var o,a;a=t,(o=n).prototype=Object.create(a.prototype),o.prototype.constructor=o,s(o,a);var c,u,d=n.prototype;return d.destroy=function(){this.connectionClient&&(this.connectionClient.close(),this.connectionClient=void 0),this.cacheManager.destroy(),this.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},this.config.debug&&console.log("[SDK] Resources destroyed")},d.getService=function(e){return this.serviceManager.get(e)},d.isConnected=function(){return this.config.debug&&console.log("[SDK] Connection status: "+(this.internalState.isConnected?"connected":"disconnected")),this.internalState.isConnected},d.isLoggedIn=function(){return this.config.debug&&console.log("[SDK] Login status: "+(this.internalState.isLoggedIn?"logged in":"not logged in")),this.internalState.isLoggedIn},d.logRequest=function(e){var t=Math.random().toString(36).substring(2,8),n={GET:"#4CAF50",POST:"#2196F3",PUT:"#FF9800",DELETE:"#F44336"}[e.method]||"#9C27B0",o={GET:"🔍",POST:"📝",PUT:"🔄",DELETE:"🗑️"}[e.method]||"📡";console.log("%c "+(new Date).toISOString().substring(11,19)+" %c SDK %c "+o+" "+e.method+" %c "+e.url+" %c #"+t,"color: #888; font-size: 11px; padding: 2px 0;","background: #7CAEFF; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","background: "+n+"; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","color: #0066cc; font-weight: bold;","color: #888; font-style: italic;"),e.data&&Object.keys(e.data).length>0&&(console.log("%c─── 📦 Request Payload ───────────────────────────────","color: #999; font-style: italic;"),console.log("%c%s","color: #333; background: #f8f8f8; padding: 8px; border-radius: 4px; border-left: 4px solid #7CAEFF; font-family: monospace; line-height: 1.5;",JSON.stringify(e.data,null,2)),console.log("%c─────────────────────────────────────────────────────","color: #999;"))},d.handlePongMessage=function(e){e&&e.timestamp&&(this.config.debug&&console.log("[SDK] Received pong message with timestamp:",e.timestamp),this.internalState.isConnected=!0,this.internalState.lastActivity=Date.now())},d.isProtobufFormat=function(e){return this.config.useProtobuf||"string"==typeof e&&this.isBase64String(e)||e instanceof Uint8Array},d.isBase64String=function(e){try{return btoa(atob(e))===e}catch(e){return!1}},d.handleProtobufMessage=function(t){this.emit(e.CbEvents.OnReceiveProtoMessage,t)},d.initializeConversationCache=function(){try{var t=this,n=_(function(){return Promise.resolve(t.conversation.getConversations({pageNo:1,pageSize:50})).then(function(n){var o=n.code,r=n.data;if(t.config.debug&&console.log("[SDK] Initialize conversation cache:",o,r),0===o&&r&&r.records){t.cacheManager.setConversations(r.records,!0);var s=t.cacheManager.getConversations();t.emit(e.CbEvents.OnConversationListUpdated,s),t.config.debug&&console.log("[SDK] Conversation cache initialized with",r.records.length,"conversations")}})},function(e){console.error("[SDK] Failed to initialize conversation cache:",e)});return Promise.resolve(n&&n.then?n.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},d.onMessage=function(t){var n=this;return this.on(e.CbEvents.OnReceiveMessage,t),function(){return n.off(e.CbEvents.OnReceiveMessage,t)}},d.onMessages=function(t){var n=this;return this.on(e.CbEvents.OnReceiveMessages,t),function(){return n.off(e.CbEvents.OnReceiveMessages,t)}},d.onConnectionChange=function(t){var n=this,o=function(){return t(!0)},r=function(){return t(!1)};return this.on(e.CbEvents.OnConnected,o),this.on(e.CbEvents.OnDisconnected,r),function(){n.off(e.CbEvents.OnConnected,o),n.off(e.CbEvents.OnDisconnected,r)}},d.onKickedOffline=function(t){var n=this;return this.on(e.CbEvents.OnKickedOffline,t),function(){return n.off(e.CbEvents.OnKickedOffline,t)}},d.updateMessageCache=function(t){if(t.groupId&&this.cacheManager.addGroupMessage(t),this.cacheManager.updateConversationWithMessage(t,this.config.username)){var n=this.cacheManager.getConversations();this.emit(e.CbEvents.OnConversationListUpdated,n)}},d.getCachedGroupMessages=function(e){return this.cacheManager.getGroupMessages(e)},c=n,(u=[{key:"message",get:function(){return this.getService(e.ServiceName.MESSAGE)}},{key:"conversation",get:function(){return this.getService(e.ServiceName.CONVERSATION)}},{key:"group",get:function(){return this.getService(e.ServiceName.GROUP)}},{key:"user",get:function(){return this.getService(e.ServiceName.USER)}},{key:"contact",get:function(){return this.getService(e.ServiceName.CONTACT)}},{key:"username",get:function(){return this.config.username}},{key:"getConfig",get:function(){return this.config}},{key:"getConnectionClient",get:function(){return this.connectionClient}},{key:"uuid",get:function(){return(36*Math.random()).toString(36).slice(2)+(new Date).getTime().toString()}}])&&function(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,i(o.key),o)}}(c.prototype,u),Object.defineProperty(c,"prototype",{writable:!1}),c}(C)});
@@ -390,4 +390,20 @@ export interface PushChatMessage {
390
390
  /** 消息内容 */
391
391
  text?: string;
392
392
  }
393
+ /**
394
+ * 聊天对象信息DTO
395
+ */
396
+ export interface ChatMemberDTO {
397
+ /** app用户id */
398
+ chatId: number;
399
+ parentChatId: number;
400
+ /** 昵称 */
401
+ nickname: string;
402
+ /** 头像 */
403
+ avatar: string;
404
+ /** 群组ID */
405
+ groupId: number;
406
+ /** 等级 */
407
+ level: number;
408
+ }
393
409
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sim-sdk-web",
3
- "version": "1.1.31",
3
+ "version": "1.1.34",
4
4
  "description": "Sim SDK for Web - Support SSE and WebSocket protocols",
5
5
  "source": "src/index.ts",
6
6
  "main": "lib/index.js",