sim-sdk-web 1.1.5 → 1.1.7

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.
@@ -39,9 +39,10 @@ export declare class ContactService {
39
39
  editContactTag(editeContactTagDTO: EditeContactTagDTO): Promise<ServerResponse<void>>;
40
40
  /**
41
41
  * 获取联系人分组
42
+ * @param contactType 联系人类型
42
43
  * @returns 联系人分组Promise
43
44
  */
44
- getContactTag(): Promise<ServerResponse<EditeContactTagDTO>>;
45
+ getContactTag(contactType: ContactType): Promise<ServerResponse<EditeContactTagDTO>>;
45
46
  /**
46
47
  * 分配联系人标签
47
48
  * @param allocationContactTagDTO 分配联系人标签DTO
@@ -51,22 +52,25 @@ export declare class ContactService {
51
52
  /**
52
53
  * 为会员分配标签
53
54
  * @param tag 标签名称
54
- * @param targetIds 目标ID列表
55
+ * @param groupIds 群组ID列表
56
+ * @param type 0: 添加分组, 1: 删除分组
55
57
  * @returns 分配结果Promise
56
58
  */
57
- allocationMemberTag(tag: string, targetIds: number[]): Promise<ServerResponse<void>>;
59
+ allocationMemberTag(tag: string, groupIds: number[], type?: number): Promise<ServerResponse<void>>;
58
60
  /**
59
61
  * 为同事分配标签
60
62
  * @param tag 标签名称
61
- * @param targetIds 目标ID列表
63
+ * @param groupIds 群组ID列表
64
+ * @param type 0: 添加分组, 1: 删除分组
62
65
  * @returns 分配结果Promise
63
66
  */
64
- allocationColleagueTag(tag: string, targetIds: number[]): Promise<ServerResponse<void>>;
67
+ allocationColleagueTag(tag: string, groupIds: number[], type?: number): Promise<ServerResponse<void>>;
65
68
  /**
66
69
  * 为群聊分配标签
67
70
  * @param tag 标签名称
68
71
  * @param groupIds 群组ID列表
72
+ * @param type 0: 添加分组, 1: 删除分组
69
73
  * @returns 分配结果Promise
70
74
  */
71
- allocationGroupTag(tag: string, groupIds: number[]): Promise<ServerResponse<void>>;
75
+ allocationGroupTag(tag: string, groupIds: number[], type?: number): Promise<ServerResponse<void>>;
72
76
  }
@@ -560,9 +560,10 @@ declare class SIMSDK extends Emitter {
560
560
  editContactTag: (editeContactTagDTO: EditeContactTagDTO) => Promise<ServerResponse<void>>;
561
561
  /**
562
562
  * 获取联系人分组
563
+ * @param contactType 联系人类型
563
564
  * @returns 联系人分组Promise
564
565
  */
565
- getContactTag: () => Promise<ServerResponse<EditeContactTagDTO>>;
566
+ getContactTag: (contactType: ContactType) => Promise<ServerResponse<EditeContactTagDTO>>;
566
567
  /**
567
568
  * 分配联系人标签
568
569
  * @param allocationContactTagDTO 分配联系人标签DTO
@@ -572,24 +573,27 @@ declare class SIMSDK extends Emitter {
572
573
  /**
573
574
  * 为会员分配标签
574
575
  * @param tag 标签名称
575
- * @param targetIds 目标ID列表
576
+ * @param groupIds 群组ID列表
577
+ * @param type 0: 添加分组, 1: 删除分组
576
578
  * @returns 分配结果Promise
577
579
  */
578
- allocationMemberTag: (tag: string, targetIds: number[]) => Promise<ServerResponse<void>>;
580
+ allocationMemberTag: (tag: string, groupIds: number[], type?: number) => Promise<ServerResponse<void>>;
579
581
  /**
580
582
  * 为同事分配标签
581
583
  * @param tag 标签名称
582
- * @param targetIds 目标ID列表
584
+ * @param groupIds 群组ID列表
585
+ * @param type 0: 添加分组, 1: 删除分组
583
586
  * @returns 分配结果Promise
584
587
  */
585
- allocationColleagueTag: (tag: string, targetIds: number[]) => Promise<ServerResponse<void>>;
588
+ allocationColleagueTag: (tag: string, groupIds: number[], type?: number) => Promise<ServerResponse<void>>;
586
589
  /**
587
590
  * 为群聊分配标签
588
591
  * @param tag 标签名称
589
592
  * @param groupIds 群组ID列表
593
+ * @param type 0: 添加分组, 1: 删除分组
590
594
  * @returns 分配结果Promise
591
595
  */
592
- allocationGroupTag: (tag: string, groupIds: number[]) => Promise<ServerResponse<void>>;
596
+ allocationGroupTag: (tag: string, groupIds: number[], type?: number) => Promise<ServerResponse<void>>;
593
597
  get uuid(): string;
594
598
  /**
595
599
  * 更新消息缓存
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.GetAllConversationList="/chat/group/list",e.MarkConversationMessageAsRead="/chat/group/lastRead",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.UploadFile="/chat/img/upload",e.GetContactByType="/chat/contact/contactByType",e.EditContactTag="/chat/contact/editeContactTag",e.GetContactTag="/chat/contact/getContactTag",e.AllocationContactTag="/chat/contact/allocationContactTag"}(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.OnReceiveSystemMessage="OnReceiveSystemMessage",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,f,p,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"}(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"}(f||(f={})),function(e){e.SSE="sse",e.WEBSOCKET="websocket"}(p||(p={}));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},O=/*#__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.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.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){this.conversationCache=e.length>this.config.MAX_CONVERSATIONS?e.slice(0,this.config.MAX_CONVERSATIONS):[].concat(e),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.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(){this.conversationCache.sort(function(e,t){var n,o,r=(null==(n=e.latest)?void 0:n.createTime)||0;return((null==(o=t.latest)?void 0:o.createTime)||0)-r})},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}(),T=/*#__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},t}(),y=/*#__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},e}(),P=["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(t.includes(o))continue;n[o]=e[o]}return n}(e,P);switch(t){case p.SSE:return new T(n);case p.WEBSOCKET:return new y(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.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,{text: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)}},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.normalizeConversation=function(e){var t,n,r,s,i,a;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:""})},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,targetusername: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.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)}},e}(),L=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.getContactByType=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{contactType:e},url:u.GetContactByType,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getMemberContacts=function(){try{return Promise.resolve(this.getContactByType(a.MEMBER))}catch(e){return Promise.reject(e)}},t.getColleagueContacts=function(){try{return Promise.resolve(this.getContactByType(a.COLLEAGUE))}catch(e){return Promise.reject(e)}},t.getGroupContacts=function(){try{return Promise.resolve(this.getContactByType(a.GROUP))}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(){try{return Promise.resolve(this.sdk.sendRequest({data:{},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){try{return Promise.resolve(this.allocationContactTag({contactType:a.MEMBER,tag:e,targetIds:t}))}catch(e){return Promise.reject(e)}},t.allocationColleagueTag=function(e,t){try{return Promise.resolve(this.allocationContactTag({contactType:a.COLLEAGUE,tag:e,targetIds:t}))}catch(e){return Promise.reject(e)}},t.allocationGroupTag=function(e,t){try{return Promise.resolve(this.allocationContactTag({contactType:a.GROUP,tag:e,targetIds:t}))}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 w=[u.Logout,d.OnKickedOffline,d.OnUserTokenInvalid,d.OnUserTokenExpired],_=/*#__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:p.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.conversationSyncTimer=void 0,n.syncInterval=2e4,n.isSyncing=!1,n.lastFetchTtl=0,n.lastUnauthorizedTime=0,n.UNAUTHORIZED_THROTTLE_MS=3e3,n.syncConversationsWithServer=function(){try{if(n.isSyncing)return n.config.debug&&console.log("[SDK] Sync already in progress, skipping"),Promise.resolve();var e=n.isLoggedIn(),t=n.isConnected();if(!e||!t)return console.warn("[SDK] Not syncing. Login status: "+e+", Connection status: "+t),Promise.resolve();var o=function(e,t){try{var o=N(function(){return n.isSyncing=!0,Promise.resolve(n.group.checkGroupLatestMessage(n.lastFetchTtl)).then(function(e){console.log("res ",e);var t=function(){if(0==e.code){var t=e.data,o=t.groupChatIds;n.lastFetchTtl=t.ttl;var r=function(){if(o&&Object.keys(o).length>0)return Object.entries(o).forEach(function(e){var t=e[1],n=Number(e[0]);console.log("groupId: "+n+", messageId: "+t)}),Promise.resolve(n.conversation.getConversations({pageNo:1,pageSize:20})).then(function(e){if(0===e.code){var t=e.data.records,o=n.cacheManager.getConversations(),r=new Set(o.map(function(e){return e.id})),s=t.filter(function(e){return!r.has(e.id)});s.length>0&&(n.cacheManager.setConversations([].concat(o,s)),n.emit(d.OnConversationCreated,s),n.config.debug&&console.log("[SDK] Found "+s.length+" new conversations")),n.emit(d.OnConversationListUpdated,n.cacheManager.getConversations())}})}();if(r&&r.then)return r.then(function(){})}}();if(t&&t.then)return t.then(function(){})})},function(e){console.error("[SDK] Error during conversation sync:",e)})}catch(e){return t(!0,e)}return o&&o.then?o.then(t.bind(null,!1),t.bind(null,!0)):t(!1,o)}(0,function(e,t){if(n.isSyncing=!1,e)throw t;return t});return Promise.resolve(o&&o.then?o.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},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;if(Array.isArray(t))if(1===t.length){var o=t[0];n.updateMessageCache(o),n.emit(d.OnReceiveMessage,o)}else t.length>1&&(t.forEach(function(e){n.updateMessageCache(e)}),n.emit(d.OnReceiveMessages,t));else 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;default:r=e.ev,Object.values(d).includes(r)?(n.emit(e.ev,e.dt),w.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 r},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.protocol===p.WEBSOCKET?n.config.wsAddr+"/conn?username="+e.username+"&token="+e.token+"&appKey="+n.config.appKey+"&random="+r:n.config.apiAddr+"/chat/sse/"+(e.anonLogin?"anonymousConn":"conn")+"?username="+e.username+"&token="+e.token+"&appKey="+n.config.appKey+"&random="+r,protocol:n.config.protocol||p.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.startConversationSync(),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==p.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),n.initializeConversationCache()}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(){return Promise.resolve(n.conversation.getConversations(e)).then(function(t){var o=t.data;if(0===t.code&&o){var r=n.cacheManager.getConversations();if(1===e.pageNo)n.cacheManager.setConversations([].concat(o.records));else{var s=o.records||[],i=new Set(r.map(function(e){return e.id})),a=s.filter(function(e){return!i.has(e.id)}),c=[].concat(r,a);n.cacheManager.setConversations(c)}n.emit(d.OnConversationListUpdated,n.cacheManager.getConversations())}else{var u=n.cacheManager.getConversations();u.length>0&&n.emit(d.OnConversationListUpdated,u)}return!0})},function(e){console.error("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.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.markConversationRead=function(e){return n.conversation.markConversationRead(e)},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){return n.contact.getContactByType(e)},n.getMemberContacts=function(){return n.contact.getMemberContacts()},n.getColleagueContacts=function(){return n.contact.getColleagueContacts()},n.getGroupContacts=function(){return n.contact.getGroupContacts()},n.editContactTag=function(e){return n.contact.editContactTag(e)},n.getContactTag=function(){return n.contact.getContactTag()},n.allocationContactTag=function(e){return n.contact.allocationContactTag(e)},n.allocationMemberTag=function(e,t){return n.contact.allocationMemberTag(e,t)},n.allocationColleagueTag=function(e,t){return n.contact.allocationColleagueTag(e,t)},n.allocationGroupTag=function(e,t){return n.contact.allocationGroupTag(e,t)},n.config.debug=t,t&&(console.log("🚀 SIM SDK Web v1.1.0 (本地开发版本)"),console.log("📦 支持协议: SSE, WebSocket")),n.cacheManager=new O({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.startConversationSync=function(e){this.stopConversationSync(),e&&e>0&&(this.syncInterval=e),this.conversationSyncTimer=window.setInterval(this.syncConversationsWithServer,this.syncInterval),this.config.debug&&console.log("[SDK] Started conversation sync timer with interval: "+this.syncInterval+"ms")},m.stopConversationSync=function(){this.conversationSyncTimer&&(clearInterval(this.conversationSyncTimer),this.conversationSyncTimer=void 0,this.config.debug&&console.log("[SDK] Stopped conversation sync timer"))},m.syncConversationsNow=function(){return this.syncConversationsWithServer()},m.destroy=function(){this.stopConversationSync(),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:20})).then(function(t){var n=t.code,o=t.data;if(e.config.debug&&console.log("initializeConversationCache Conversation 获取第一页会话数据",n,o),0===n&&o&&o.records){e.cacheManager.setConversations(o.records),console.log("initializeConversationCache Conversation 获取第一页会话数据 this.cacheManager.getConversations()",e.cacheManager.getConversations());var r=e.cacheManager.getConversations();e.emit(d.OnConversationListUpdated,r),e.config.debug&&console.log("Conversation cache initialized with",o.records.length,"conversations")}})},function(e){console.error("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:"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,p as ConnectionProtocol,a as ContactType,c as ErrorCode,m as GroupMemberEventType,l as GroupType,g as MessageType,u as RequestApi,_ as SIMSDK,i as ServiceName,h as SseEventType,f 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.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.GetAllConversationList="/chat/group/list",e.MarkConversationMessageAsRead="/chat/group/lastRead",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.UploadFile="/chat/img/upload",e.GetContactByType="/chat/contact/contactByType",e.EditContactTag="/chat/contact/editeContactTag",e.GetContactTag="/chat/contact/getContactTag",e.AllocationContactTag="/chat/contact/allocationContactTag"}(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.OnReceiveSystemMessage="OnReceiveSystemMessage",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"}(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},O=/*#__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.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.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){this.conversationCache=e.length>this.config.MAX_CONVERSATIONS?e.slice(0,this.config.MAX_CONVERSATIONS):[].concat(e),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.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(){this.conversationCache.sort(function(e,t){var n,o,r=(null==(n=e.latest)?void 0:n.createTime)||0;return((null==(o=t.latest)?void 0:o.createTime)||0)-r})},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}(),T=/*#__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},t}(),y=/*#__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},e}(),P=["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(t.includes(o))continue;n[o]=e[o]}return n}(e,P);switch(t){case f.SSE:return new T(n);case f.WEBSOCKET:return new y(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,{text: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)}},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.normalizeConversation=function(e){var t,n,r,s,i,a;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:""})},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,targetusername: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.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)}},e}(),L=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.getContactByType=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{contactType:e},url:u.GetContactByType,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getMemberContacts=function(){try{return Promise.resolve(this.getContactByType(a.MEMBER))}catch(e){return Promise.reject(e)}},t.getColleagueContacts=function(){try{return Promise.resolve(this.getContactByType(a.COLLEAGUE))}catch(e){return Promise.reject(e)}},t.getGroupContacts=function(){try{return Promise.resolve(this.getContactByType(a.GROUP))}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 w=[u.Logout,d.OnKickedOffline,d.OnUserTokenInvalid,d.OnUserTokenExpired],_=/*#__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.conversationSyncTimer=void 0,n.syncInterval=2e4,n.isSyncing=!1,n.lastFetchTtl=0,n.lastUnauthorizedTime=0,n.UNAUTHORIZED_THROTTLE_MS=3e3,n.syncConversationsWithServer=function(){try{if(n.isSyncing)return n.config.debug&&console.log("[SDK] Sync already in progress, skipping"),Promise.resolve();var e=n.isLoggedIn(),t=n.isConnected();if(!e||!t)return console.warn("[SDK] Not syncing. Login status: "+e+", Connection status: "+t),Promise.resolve();var o=function(e,t){try{var o=N(function(){return n.isSyncing=!0,Promise.resolve(n.group.checkGroupLatestMessage(n.lastFetchTtl)).then(function(e){console.log("res ",e);var t=function(){if(0==e.code){var t=e.data,o=t.groupChatIds;n.lastFetchTtl=t.ttl;var r=function(){if(o&&Object.keys(o).length>0)return Promise.resolve(n.conversation.getConversations({pageNo:1,pageSize:20})).then(function(e){if(0===e.code){var t=e.data.records,o=n.cacheManager.getConversations(),r=new Set(o.map(function(e){return e.id})),s=t.filter(function(e){return!r.has(e.id)});s.length>0&&(n.cacheManager.setConversations([].concat(o,s)),n.emit(d.OnConversationCreated,s),n.config.debug&&console.log("[SDK] Found "+s.length+" new conversations")),n.emit(d.OnConversationListUpdated,n.cacheManager.getConversations())}})}();if(r&&r.then)return r.then(function(){})}}();if(t&&t.then)return t.then(function(){})})},function(e){console.error("[SDK] Error during conversation sync:",e)})}catch(e){return t(!0,e)}return o&&o.then?o.then(t.bind(null,!1),t.bind(null,!0)):t(!1,o)}(0,function(e,t){if(n.isSyncing=!1,e)throw t;return t});return Promise.resolve(o&&o.then?o.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},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;if(Array.isArray(t))if(1===t.length){var o=t[0];n.updateMessageCache(o),n.emit(d.OnReceiveMessage,o)}else t.length>1&&(t.forEach(function(e){n.updateMessageCache(e)}),n.emit(d.OnReceiveMessages,t));else 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;default:r=e.ev,Object.values(d).includes(r)?(n.emit(e.ev,e.dt),w.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 r},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.protocol===f.WEBSOCKET?n.config.wsAddr+"/conn?username="+e.username+"&token="+e.token+"&appKey="+n.config.appKey+"&random="+r:n.config.apiAddr+"/chat/sse/"+(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.startConversationSync(),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),n.initializeConversationCache()}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(){return Promise.resolve(n.conversation.getConversations(e)).then(function(t){var o=t.data;if(0===t.code&&o){var r=n.cacheManager.getConversations();if(1===e.pageNo)n.cacheManager.setConversations([].concat(o.records));else{var s=o.records||[],i=new Set(r.map(function(e){return e.id})),a=s.filter(function(e){return!i.has(e.id)}),c=[].concat(r,a);n.cacheManager.setConversations(c)}n.emit(d.OnConversationListUpdated,n.cacheManager.getConversations())}else{var u=n.cacheManager.getConversations();u.length>0&&n.emit(d.OnConversationListUpdated,u)}return!0})},function(e){console.error("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.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.markConversationRead=function(e){return n.conversation.markConversationRead(e)},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){return n.contact.getContactByType(e)},n.getMemberContacts=function(){return n.contact.getMemberContacts()},n.getColleagueContacts=function(){return n.contact.getColleagueContacts()},n.getGroupContacts=function(){return n.contact.getGroupContacts()},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 O({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.startConversationSync=function(e){this.stopConversationSync(),e&&e>0&&(this.syncInterval=e),this.conversationSyncTimer=window.setInterval(this.syncConversationsWithServer,this.syncInterval),this.config.debug&&console.log("[SDK] Started conversation sync timer with interval: "+this.syncInterval+"ms")},m.stopConversationSync=function(){this.conversationSyncTimer&&(clearInterval(this.conversationSyncTimer),this.conversationSyncTimer=void 0,this.config.debug&&console.log("[SDK] Stopped conversation sync timer"))},m.syncConversationsNow=function(){return this.syncConversationsWithServer()},m.destroy=function(){this.stopConversationSync(),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:20})).then(function(t){var n=t.code,o=t.data;if(e.config.debug&&console.log("initializeConversationCache Conversation 获取第一页会话数据",n,o),0===n&&o&&o.records){e.cacheManager.setConversations(o.records),console.log("initializeConversationCache Conversation 获取第一页会话数据 this.cacheManager.getConversations()",e.cacheManager.getConversations());var r=e.cacheManager.getConversations();e.emit(d.OnConversationListUpdated,r),e.config.debug&&console.log("Conversation cache initialized with",o.records.length,"conversations")}})},function(e){console.error("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:"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,_ as SIMSDK,i as ServiceName,h 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.GetAllConversationList="/chat/group/list",o.MarkConversationMessageAsRead="/chat/group/lastRead",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.UploadFile="/chat/img/upload",o.GetContactByType="/chat/contact/contactByType",o.EditContactTag="/chat/contact/editeContactTag",o.GetContactTag="/chat/contact/getContactTag",o.AllocationContactTag="/chat/contact/allocationContactTag",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.OnReceiveSystemMessage="OnReceiveSystemMessage",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",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,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},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.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.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){this.conversationCache=e.length>this.config.MAX_CONVERSATIONS?e.slice(0,this.config.MAX_CONVERSATIONS):[].concat(e),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.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(){this.conversationCache.sort(function(e,t){var n,o,r=(null==(n=e.latest)?void 0:n.createTime)||0;return((null==(o=t.latest)?void 0:o.createTime)||0)-r})},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=a(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=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},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},e}(),P=["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(t.includes(o))continue;n[o]=e[o]}return n}(e,P);switch(t){case exports.ConnectionProtocol.SSE:return new y(n);case exports.ConnectionProtocol.WEBSOCKET:return new O(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.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,{text: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)}},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.normalizeConversation=function(e){var t,n,o,r,s,i;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:""})},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,targetusername: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.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)}},e}(),I=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.getContactByType=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{contactType:e},url:exports.RequestApi.GetContactByType,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getMemberContacts=function(){try{return Promise.resolve(this.getContactByType(exports.ContactType.MEMBER))}catch(e){return Promise.reject(e)}},t.getColleagueContacts=function(){try{return Promise.resolve(this.getContactByType(exports.ContactType.COLLEAGUE))}catch(e){return Promise.reject(e)}},t.getGroupContacts=function(){try{return Promise.resolve(this.getContactByType(exports.ContactType.GROUP))}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(){try{return Promise.resolve(this.sdk.sendRequest({data:{},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){try{return Promise.resolve(this.allocationContactTag({contactType:exports.ContactType.MEMBER,tag:e,targetIds:t}))}catch(e){return Promise.reject(e)}},t.allocationColleagueTag=function(e,t){try{return Promise.resolve(this.allocationContactTag({contactType:exports.ContactType.COLLEAGUE,tag:e,targetIds:t}))}catch(e){return Promise.reject(e)}},t.allocationGroupTag=function(e,t){try{return Promise.resolve(this.allocationContactTag({contactType:exports.ContactType.GROUP,tag:e,targetIds:t}))}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 N(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}var U=[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.conversationSyncTimer=void 0,n.syncInterval=2e4,n.isSyncing=!1,n.lastFetchTtl=0,n.lastUnauthorizedTime=0,n.UNAUTHORIZED_THROTTLE_MS=3e3,n.syncConversationsWithServer=function(){try{if(n.isSyncing)return n.config.debug&&console.log("[SDK] Sync already in progress, skipping"),Promise.resolve();var e=n.isLoggedIn(),t=n.isConnected();if(!e||!t)return console.warn("[SDK] Not syncing. Login status: "+e+", Connection status: "+t),Promise.resolve();var o=function(e,t){try{var o=N(function(){return n.isSyncing=!0,Promise.resolve(n.group.checkGroupLatestMessage(n.lastFetchTtl)).then(function(e){console.log("res ",e);var t=function(){if(0==e.code){var t=e.data,o=t.groupChatIds;n.lastFetchTtl=t.ttl;var r=function(){if(o&&Object.keys(o).length>0)return Object.entries(o).forEach(function(e){var t=e[1],n=Number(e[0]);console.log("groupId: "+n+", messageId: "+t)}),Promise.resolve(n.conversation.getConversations({pageNo:1,pageSize:20})).then(function(e){if(0===e.code){var t=e.data.records,o=n.cacheManager.getConversations(),r=new Set(o.map(function(e){return e.id})),s=t.filter(function(e){return!r.has(e.id)});s.length>0&&(n.cacheManager.setConversations([].concat(o,s)),n.emit(exports.CbEvents.OnConversationCreated,s),n.config.debug&&console.log("[SDK] Found "+s.length+" new conversations")),n.emit(exports.CbEvents.OnConversationListUpdated,n.cacheManager.getConversations())}})}();if(r&&r.then)return r.then(function(){})}}();if(t&&t.then)return t.then(function(){})})},function(e){console.error("[SDK] Error during conversation sync:",e)})}catch(e){return t(!0,e)}return o&&o.then?o.then(t.bind(null,!1),t.bind(null,!0)):t(!1,o)}(0,function(e,t){if(n.isSyncing=!1,e)throw t;return t});return Promise.resolve(o&&o.then?o.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},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 exports.SseEventType.EVENT_MESSAGE_PUSH:var t=e.dt;if(Array.isArray(t))if(1===t.length){var o=t[0];n.updateMessageCache(o),n.emit(exports.CbEvents.OnReceiveMessage,o)}else t.length>1&&(t.forEach(function(e){n.updateMessageCache(e)}),n.emit(exports.CbEvents.OnReceiveMessages,t));else 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;default:r=e.ev,Object.values(exports.CbEvents).includes(r)?(n.emit(e.ev,e.dt),U.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 r},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}),N(function(){return Promise.resolve(n.connectionClient.connect()).then(function(e){return n.internalState.isLoggedIn=!0,n.internalState.isConnected=!0,n.config.isLive||n.startConversationSync(),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),n.initializeConversationCache()}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(N(function(){return Promise.resolve(n.conversation.getConversations(e)).then(function(t){var o=t.data;if(0===t.code&&o){var r=n.cacheManager.getConversations();if(1===e.pageNo)n.cacheManager.setConversations([].concat(o.records));else{var s=o.records||[],i=new Set(r.map(function(e){return e.id})),a=s.filter(function(e){return!i.has(e.id)}),c=[].concat(r,a);n.cacheManager.setConversations(c)}n.emit(exports.CbEvents.OnConversationListUpdated,n.cacheManager.getConversations())}else{var u=n.cacheManager.getConversations();u.length>0&&n.emit(exports.CbEvents.OnConversationListUpdated,u)}return!0})},function(e){console.error("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(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+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.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.markConversationRead=function(e){return n.conversation.markConversationRead(e)},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){return n.contact.getContactByType(e)},n.getMemberContacts=function(){return n.contact.getMemberContacts()},n.getColleagueContacts=function(){return n.contact.getColleagueContacts()},n.getGroupContacts=function(){return n.contact.getGroupContacts()},n.editContactTag=function(e){return n.contact.editContactTag(e)},n.getContactTag=function(){return n.contact.getContactTag()},n.allocationContactTag=function(e){return n.contact.allocationContactTag(e)},n.allocationMemberTag=function(e,t){return n.contact.allocationMemberTag(e,t)},n.allocationColleagueTag=function(e,t){return n.contact.allocationColleagueTag(e,t)},n.allocationGroupTag=function(e,t){return n.contact.allocationGroupTag(e,t)},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.startConversationSync=function(e){this.stopConversationSync(),e&&e>0&&(this.syncInterval=e),this.conversationSyncTimer=window.setInterval(this.syncConversationsWithServer,this.syncInterval),this.config.debug&&console.log("[SDK] Started conversation sync timer with interval: "+this.syncInterval+"ms")},i.stopConversationSync=function(){this.conversationSyncTimer&&(clearInterval(this.conversationSyncTimer),this.conversationSyncTimer=void 0,this.config.debug&&console.log("[SDK] Stopped conversation sync timer"))},i.syncConversationsNow=function(){return this.syncConversationsWithServer()},i.destroy=function(){this.stopConversationSync(),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=N(function(){return Promise.resolve(e.conversation.getConversations({pageNo:1,pageSize:20})).then(function(t){var n=t.code,o=t.data;if(e.config.debug&&console.log("initializeConversationCache Conversation 获取第一页会话数据",n,o),0===n&&o&&o.records){e.cacheManager.setConversations(o.records),console.log("initializeConversationCache Conversation 获取第一页会话数据 this.cacheManager.getConversations()",e.cacheManager.getConversations());var r=e.cacheManager.getConversations();e.emit(exports.CbEvents.OnConversationListUpdated,r),e.config.debug&&console.log("Conversation cache initialized with",o.records.length,"conversations")}})},function(e){console.error("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:"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.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.GetAllConversationList="/chat/group/list",o.MarkConversationMessageAsRead="/chat/group/lastRead",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.UploadFile="/chat/img/upload",o.GetContactByType="/chat/contact/contactByType",o.EditContactTag="/chat/contact/editeContactTag",o.GetContactTag="/chat/contact/getContactTag",o.AllocationContactTag="/chat/contact/allocationContactTag",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.OnReceiveSystemMessage="OnReceiveSystemMessage",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",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,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},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.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.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){this.conversationCache=e.length>this.config.MAX_CONVERSATIONS?e.slice(0,this.config.MAX_CONVERSATIONS):[].concat(e),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.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(){this.conversationCache.sort(function(e,t){var n,o,r=(null==(n=e.latest)?void 0:n.createTime)||0;return((null==(o=t.latest)?void 0:o.createTime)||0)-r})},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=a(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=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},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},e}(),P=["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(t.includes(o))continue;n[o]=e[o]}return n}(e,P);switch(t){case exports.ConnectionProtocol.SSE:return new y(n);case exports.ConnectionProtocol.WEBSOCKET:return new O(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,{text: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)}},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.normalizeConversation=function(e){var t,n,o,r,s,i;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:""})},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,targetusername: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.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)}},e}(),I=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.getContactByType=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{contactType:e},url:exports.RequestApi.GetContactByType,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getMemberContacts=function(){try{return Promise.resolve(this.getContactByType(exports.ContactType.MEMBER))}catch(e){return Promise.reject(e)}},t.getColleagueContacts=function(){try{return Promise.resolve(this.getContactByType(exports.ContactType.COLLEAGUE))}catch(e){return Promise.reject(e)}},t.getGroupContacts=function(){try{return Promise.resolve(this.getContactByType(exports.ContactType.GROUP))}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 N(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}var U=[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.conversationSyncTimer=void 0,n.syncInterval=2e4,n.isSyncing=!1,n.lastFetchTtl=0,n.lastUnauthorizedTime=0,n.UNAUTHORIZED_THROTTLE_MS=3e3,n.syncConversationsWithServer=function(){try{if(n.isSyncing)return n.config.debug&&console.log("[SDK] Sync already in progress, skipping"),Promise.resolve();var e=n.isLoggedIn(),t=n.isConnected();if(!e||!t)return console.warn("[SDK] Not syncing. Login status: "+e+", Connection status: "+t),Promise.resolve();var o=function(e,t){try{var o=N(function(){return n.isSyncing=!0,Promise.resolve(n.group.checkGroupLatestMessage(n.lastFetchTtl)).then(function(e){console.log("res ",e);var t=function(){if(0==e.code){var t=e.data,o=t.groupChatIds;n.lastFetchTtl=t.ttl;var r=function(){if(o&&Object.keys(o).length>0)return Promise.resolve(n.conversation.getConversations({pageNo:1,pageSize:20})).then(function(e){if(0===e.code){var t=e.data.records,o=n.cacheManager.getConversations(),r=new Set(o.map(function(e){return e.id})),s=t.filter(function(e){return!r.has(e.id)});s.length>0&&(n.cacheManager.setConversations([].concat(o,s)),n.emit(exports.CbEvents.OnConversationCreated,s),n.config.debug&&console.log("[SDK] Found "+s.length+" new conversations")),n.emit(exports.CbEvents.OnConversationListUpdated,n.cacheManager.getConversations())}})}();if(r&&r.then)return r.then(function(){})}}();if(t&&t.then)return t.then(function(){})})},function(e){console.error("[SDK] Error during conversation sync:",e)})}catch(e){return t(!0,e)}return o&&o.then?o.then(t.bind(null,!1),t.bind(null,!0)):t(!1,o)}(0,function(e,t){if(n.isSyncing=!1,e)throw t;return t});return Promise.resolve(o&&o.then?o.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},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 exports.SseEventType.EVENT_MESSAGE_PUSH:var t=e.dt;if(Array.isArray(t))if(1===t.length){var o=t[0];n.updateMessageCache(o),n.emit(exports.CbEvents.OnReceiveMessage,o)}else t.length>1&&(t.forEach(function(e){n.updateMessageCache(e)}),n.emit(exports.CbEvents.OnReceiveMessages,t));else 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;default:r=e.ev,Object.values(exports.CbEvents).includes(r)?(n.emit(e.ev,e.dt),U.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 r},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}),N(function(){return Promise.resolve(n.connectionClient.connect()).then(function(e){return n.internalState.isLoggedIn=!0,n.internalState.isConnected=!0,n.config.isLive||n.startConversationSync(),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),n.initializeConversationCache()}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(N(function(){return Promise.resolve(n.conversation.getConversations(e)).then(function(t){var o=t.data;if(0===t.code&&o){var r=n.cacheManager.getConversations();if(1===e.pageNo)n.cacheManager.setConversations([].concat(o.records));else{var s=o.records||[],i=new Set(r.map(function(e){return e.id})),a=s.filter(function(e){return!i.has(e.id)}),c=[].concat(r,a);n.cacheManager.setConversations(c)}n.emit(exports.CbEvents.OnConversationListUpdated,n.cacheManager.getConversations())}else{var u=n.cacheManager.getConversations();u.length>0&&n.emit(exports.CbEvents.OnConversationListUpdated,u)}return!0})},function(e){console.error("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(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+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.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.markConversationRead=function(e){return n.conversation.markConversationRead(e)},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){return n.contact.getContactByType(e)},n.getMemberContacts=function(){return n.contact.getMemberContacts()},n.getColleagueContacts=function(){return n.contact.getColleagueContacts()},n.getGroupContacts=function(){return n.contact.getGroupContacts()},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.startConversationSync=function(e){this.stopConversationSync(),e&&e>0&&(this.syncInterval=e),this.conversationSyncTimer=window.setInterval(this.syncConversationsWithServer,this.syncInterval),this.config.debug&&console.log("[SDK] Started conversation sync timer with interval: "+this.syncInterval+"ms")},i.stopConversationSync=function(){this.conversationSyncTimer&&(clearInterval(this.conversationSyncTimer),this.conversationSyncTimer=void 0,this.config.debug&&console.log("[SDK] Stopped conversation sync timer"))},i.syncConversationsNow=function(){return this.syncConversationsWithServer()},i.destroy=function(){this.stopConversationSync(),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=N(function(){return Promise.resolve(e.conversation.getConversations({pageNo:1,pageSize:20})).then(function(t){var n=t.code,o=t.data;if(e.config.debug&&console.log("initializeConversationCache Conversation 获取第一页会话数据",n,o),0===n&&o&&o.records){e.cacheManager.setConversations(o.records),console.log("initializeConversationCache Conversation 获取第一页会话数据 this.cacheManager.getConversations()",e.cacheManager.getConversations());var r=e.cacheManager.getConversations();e.emit(exports.CbEvents.OnConversationListUpdated,r),e.config.debug&&console.log("Conversation cache initialized with",o.records.length,"conversations")}})},function(e){console.error("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:"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.GetAllConversationList="/chat/group/list",d.MarkConversationMessageAsRead="/chat/group/lastRead",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.UploadFile="/chat/img/upload",d.GetContactByType="/chat/contact/contactByType",d.EditContactTag="/chat/contact/editeContactTag",d.GetContactTag="/chat/contact/getContactTag",d.AllocationContactTag="/chat/contact/allocationContactTag",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.OnReceiveSystemMessage="OnReceiveSystemMessage",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",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 M="undefined"!=typeof uni,S="undefined"!=typeof window,b="simsdk_",E={CONVERSATIONS:b+"conversations",GROUP_MESSAGES:b+"group_messages",USER_INFO:b+"user_info",META_INFO:b+"meta"},T={MAX_CONVERSATIONS:100,MAX_GROUP_MESSAGES:200,STORAGE_CHUNK_SIZE:512e3,CACHE_TTL:6048e5,EXPIRY_CHECK_INTERVAL:18e5},y=/*#__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.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({},T,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.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){this.conversationCache=e.length>this.config.MAX_CONVERSATIONS?e.slice(0,this.config.MAX_CONVERSATIONS):[].concat(e),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.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(){this.conversationCache.sort(function(e,t){var n,o,r=(null==(n=e.latest)?void 0:n.createTime)||0;return((null==(o=t.latest)?void 0:o.createTime)||0)-r})},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(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=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}(),O=/*#__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},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},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(t.includes(o))continue;n[o]=e[o]}return n}(t,G);switch(n){case e.ConnectionProtocol.SSE:return new O(o);case e.ConnectionProtocol.WEBSOCKET:return new P(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.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,{text: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)}},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.normalizeConversation=function(e){var t,n,o,s,i,a;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:""})},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,targetusername: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.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)}},t}(),N=/*#__PURE__*/function(){function t(e){this.sdk=void 0,this.sdk=e}var n=t.prototype;return n.getContactByType=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:{contactType:t},url:e.RequestApi.GetContactByType,method:"GET"}))}catch(e){return Promise.reject(e)}},n.getMemberContacts=function(){try{return Promise.resolve(this.getContactByType(e.ContactType.MEMBER))}catch(e){return Promise.reject(e)}},n.getColleagueContacts=function(){try{return Promise.resolve(this.getContactByType(e.ContactType.COLLEAGUE))}catch(e){return Promise.reject(e)}},n.getGroupContacts=function(){try{return Promise.resolve(this.getContactByType(e.ContactType.GROUP))}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(){try{return Promise.resolve(this.sdk.sendRequest({data:{},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){try{return Promise.resolve(this.allocationContactTag({contactType:e.ContactType.MEMBER,tag:t,targetIds:n}))}catch(e){return Promise.reject(e)}},n.allocationColleagueTag=function(t,n){try{return Promise.resolve(this.allocationContactTag({contactType:e.ContactType.COLLEAGUE,tag:t,targetIds:n}))}catch(e){return Promise.reject(e)}},n.allocationGroupTag=function(t,n){try{return Promise.resolve(this.allocationContactTag({contactType:e.ContactType.GROUP,tag:t,targetIds:n}))}catch(e){return Promise.reject(e)}},t}(),U=/*#__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 N(this.sdk);default:throw new Error("Unknown service: "+t)}},n.reset=function(){this.services={}},t}();function w(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}var _=[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.conversationSyncTimer=void 0,o.syncInterval=2e4,o.isSyncing=!1,o.lastFetchTtl=0,o.lastUnauthorizedTime=0,o.UNAUTHORIZED_THROTTLE_MS=3e3,o.syncConversationsWithServer=function(){try{if(o.isSyncing)return o.config.debug&&console.log("[SDK] Sync already in progress, skipping"),Promise.resolve();var t=o.isLoggedIn(),n=o.isConnected();if(!t||!n)return console.warn("[SDK] Not syncing. Login status: "+t+", Connection status: "+n),Promise.resolve();var r=function(t,n){try{var r=w(function(){return o.isSyncing=!0,Promise.resolve(o.group.checkGroupLatestMessage(o.lastFetchTtl)).then(function(t){console.log("res ",t);var n=function(){if(0==t.code){var n=t.data,r=n.groupChatIds;o.lastFetchTtl=n.ttl;var s=function(){if(r&&Object.keys(r).length>0)return Object.entries(r).forEach(function(e){var t=e[1],n=Number(e[0]);console.log("groupId: "+n+", messageId: "+t)}),Promise.resolve(o.conversation.getConversations({pageNo:1,pageSize:20})).then(function(t){if(0===t.code){var n=t.data.records,r=o.cacheManager.getConversations(),s=new Set(r.map(function(e){return e.id})),i=n.filter(function(e){return!s.has(e.id)});i.length>0&&(o.cacheManager.setConversations([].concat(r,i)),o.emit(e.CbEvents.OnConversationCreated,i),o.config.debug&&console.log("[SDK] Found "+i.length+" new conversations")),o.emit(e.CbEvents.OnConversationListUpdated,o.cacheManager.getConversations())}})}();if(s&&s.then)return s.then(function(){})}}();if(n&&n.then)return n.then(function(){})})},function(e){console.error("[SDK] Error during conversation sync:",e)})}catch(e){return n(!0,e)}return r&&r.then?r.then(n.bind(null,!1),n.bind(null,!0)):n(!1,r)}(0,function(e,t){if(o.isSyncing=!1,e)throw t;return t});return Promise.resolve(r&&r.then?r.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},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(w(function(){return Promise.resolve(function(e){try{var t,n=function(e){if(t)return e;throw new Error("Unsupported platform")},o=function(){if(M){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(S)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;if(Array.isArray(n))if(1===n.length){var r=n[0];o.updateMessageCache(r),o.emit(e.CbEvents.OnReceiveMessage,r)}else n.length>1&&(n.forEach(function(e){o.updateMessageCache(e)}),o.emit(e.CbEvents.OnReceiveMessages,n));else 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;default:s=t.ev,Object.values(e.CbEvents).includes(s)?(o.emit(t.ev,t.dt),_.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 s},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.protocol===e.ConnectionProtocol.WEBSOCKET?o.config.wsAddr+"/conn?username="+t.username+"&token="+t.token+"&appKey="+o.config.appKey+"&random="+s:o.config.apiAddr+"/chat/sse/"+(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}),w(function(){return Promise.resolve(o.connectionClient.connect()).then(function(e){return o.internalState.isLoggedIn=!0,o.internalState.isConnected=!0,o.config.isLive||o.startConversationSync(),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),o.initializeConversationCache()}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(w(function(){return Promise.resolve(o.conversation.getConversations(t)).then(function(n){var r=n.data;if(0===n.code&&r){var s=o.cacheManager.getConversations();if(1===t.pageNo)o.cacheManager.setConversations([].concat(r.records));else{var i=r.records||[],a=new Set(s.map(function(e){return e.id})),c=i.filter(function(e){return!a.has(e.id)}),u=[].concat(s,c);o.cacheManager.setConversations(u)}o.emit(e.CbEvents.OnConversationListUpdated,o.cacheManager.getConversations())}else{var d=o.cacheManager.getConversations();d.length>0&&o.emit(e.CbEvents.OnConversationListUpdated,d)}return!0})},function(t){console.error("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(w(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.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.markConversationRead=function(e){return o.conversation.markConversationRead(e)},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){return o.contact.getContactByType(e)},o.getMemberContacts=function(){return o.contact.getMemberContacts()},o.getColleagueContacts=function(){return o.contact.getColleagueContacts()},o.getGroupContacts=function(){return o.contact.getGroupContacts()},o.editContactTag=function(e){return o.contact.editContactTag(e)},o.getContactTag=function(){return o.contact.getContactTag()},o.allocationContactTag=function(e){return o.contact.allocationContactTag(e)},o.allocationMemberTag=function(e,t){return o.contact.allocationMemberTag(e,t)},o.allocationColleagueTag=function(e,t){return o.contact.allocationColleagueTag(e,t)},o.allocationGroupTag=function(e,t){return o.contact.allocationGroupTag(e,t)},o.config.debug=n,n&&(console.log("🚀 SIM SDK Web v1.1.0 (本地开发版本)"),console.log("📦 支持协议: SSE, WebSocket")),o.cacheManager=new y({persistEnabled:!0,debug:n}),o.serviceManager=new U(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.startConversationSync=function(e){this.stopConversationSync(),e&&e>0&&(this.syncInterval=e),this.conversationSyncTimer=window.setInterval(this.syncConversationsWithServer,this.syncInterval),this.config.debug&&console.log("[SDK] Started conversation sync timer with interval: "+this.syncInterval+"ms")},d.stopConversationSync=function(){this.conversationSyncTimer&&(clearInterval(this.conversationSyncTimer),this.conversationSyncTimer=void 0,this.config.debug&&console.log("[SDK] Stopped conversation sync timer"))},d.syncConversationsNow=function(){return this.syncConversationsWithServer()},d.destroy=function(){this.stopConversationSync(),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=w(function(){return Promise.resolve(t.conversation.getConversations({pageNo:1,pageSize:20})).then(function(n){var o=n.code,r=n.data;if(t.config.debug&&console.log("initializeConversationCache Conversation 获取第一页会话数据",o,r),0===o&&r&&r.records){t.cacheManager.setConversations(r.records),console.log("initializeConversationCache Conversation 获取第一页会话数据 this.cacheManager.getConversations()",t.cacheManager.getConversations());var s=t.cacheManager.getConversations();t.emit(e.CbEvents.OnConversationListUpdated,s),t.config.debug&&console.log("Conversation cache initialized with",r.records.length,"conversations")}})},function(e){console.error("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:"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.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.GetAllConversationList="/chat/group/list",d.MarkConversationMessageAsRead="/chat/group/lastRead",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.UploadFile="/chat/img/upload",d.GetContactByType="/chat/contact/contactByType",d.EditContactTag="/chat/contact/editeContactTag",d.GetContactTag="/chat/contact/getContactTag",d.AllocationContactTag="/chat/contact/allocationContactTag",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.OnReceiveSystemMessage="OnReceiveSystemMessage",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",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 M="undefined"!=typeof uni,S="undefined"!=typeof window,b="simsdk_",E={CONVERSATIONS:b+"conversations",GROUP_MESSAGES:b+"group_messages",USER_INFO:b+"user_info",META_INFO:b+"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.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.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){this.conversationCache=e.length>this.config.MAX_CONVERSATIONS?e.slice(0,this.config.MAX_CONVERSATIONS):[].concat(e),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.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(){this.conversationCache.sort(function(e,t){var n,o,r=(null==(n=e.latest)?void 0:n.createTime)||0;return((null==(o=t.latest)?void 0:o.createTime)||0)-r})},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(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=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}(),O=/*#__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},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},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(t.includes(o))continue;n[o]=e[o]}return n}(t,G);switch(n){case e.ConnectionProtocol.SSE:return new O(o);case e.ConnectionProtocol.WEBSOCKET:return new P(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,{text: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)}},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.normalizeConversation=function(e){var t,n,o,s,i,a;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:""})},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,targetusername: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.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)}},t}(),N=/*#__PURE__*/function(){function t(e){this.sdk=void 0,this.sdk=e}var n=t.prototype;return n.getContactByType=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:{contactType:t},url:e.RequestApi.GetContactByType,method:"GET"}))}catch(e){return Promise.reject(e)}},n.getMemberContacts=function(){try{return Promise.resolve(this.getContactByType(e.ContactType.MEMBER))}catch(e){return Promise.reject(e)}},n.getColleagueContacts=function(){try{return Promise.resolve(this.getContactByType(e.ContactType.COLLEAGUE))}catch(e){return Promise.reject(e)}},n.getGroupContacts=function(){try{return Promise.resolve(this.getContactByType(e.ContactType.GROUP))}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}(),U=/*#__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 N(this.sdk);default:throw new Error("Unknown service: "+t)}},n.reset=function(){this.services={}},t}();function w(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}var _=[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.conversationSyncTimer=void 0,o.syncInterval=2e4,o.isSyncing=!1,o.lastFetchTtl=0,o.lastUnauthorizedTime=0,o.UNAUTHORIZED_THROTTLE_MS=3e3,o.syncConversationsWithServer=function(){try{if(o.isSyncing)return o.config.debug&&console.log("[SDK] Sync already in progress, skipping"),Promise.resolve();var t=o.isLoggedIn(),n=o.isConnected();if(!t||!n)return console.warn("[SDK] Not syncing. Login status: "+t+", Connection status: "+n),Promise.resolve();var r=function(t,n){try{var r=w(function(){return o.isSyncing=!0,Promise.resolve(o.group.checkGroupLatestMessage(o.lastFetchTtl)).then(function(t){console.log("res ",t);var n=function(){if(0==t.code){var n=t.data,r=n.groupChatIds;o.lastFetchTtl=n.ttl;var s=function(){if(r&&Object.keys(r).length>0)return Promise.resolve(o.conversation.getConversations({pageNo:1,pageSize:20})).then(function(t){if(0===t.code){var n=t.data.records,r=o.cacheManager.getConversations(),s=new Set(r.map(function(e){return e.id})),i=n.filter(function(e){return!s.has(e.id)});i.length>0&&(o.cacheManager.setConversations([].concat(r,i)),o.emit(e.CbEvents.OnConversationCreated,i),o.config.debug&&console.log("[SDK] Found "+i.length+" new conversations")),o.emit(e.CbEvents.OnConversationListUpdated,o.cacheManager.getConversations())}})}();if(s&&s.then)return s.then(function(){})}}();if(n&&n.then)return n.then(function(){})})},function(e){console.error("[SDK] Error during conversation sync:",e)})}catch(e){return n(!0,e)}return r&&r.then?r.then(n.bind(null,!1),n.bind(null,!0)):n(!1,r)}(0,function(e,t){if(o.isSyncing=!1,e)throw t;return t});return Promise.resolve(r&&r.then?r.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},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(w(function(){return Promise.resolve(function(e){try{var t,n=function(e){if(t)return e;throw new Error("Unsupported platform")},o=function(){if(M){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(S)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;if(Array.isArray(n))if(1===n.length){var r=n[0];o.updateMessageCache(r),o.emit(e.CbEvents.OnReceiveMessage,r)}else n.length>1&&(n.forEach(function(e){o.updateMessageCache(e)}),o.emit(e.CbEvents.OnReceiveMessages,n));else 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;default:s=t.ev,Object.values(e.CbEvents).includes(s)?(o.emit(t.ev,t.dt),_.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 s},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.protocol===e.ConnectionProtocol.WEBSOCKET?o.config.wsAddr+"/conn?username="+t.username+"&token="+t.token+"&appKey="+o.config.appKey+"&random="+s:o.config.apiAddr+"/chat/sse/"+(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}),w(function(){return Promise.resolve(o.connectionClient.connect()).then(function(e){return o.internalState.isLoggedIn=!0,o.internalState.isConnected=!0,o.config.isLive||o.startConversationSync(),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),o.initializeConversationCache()}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(w(function(){return Promise.resolve(o.conversation.getConversations(t)).then(function(n){var r=n.data;if(0===n.code&&r){var s=o.cacheManager.getConversations();if(1===t.pageNo)o.cacheManager.setConversations([].concat(r.records));else{var i=r.records||[],a=new Set(s.map(function(e){return e.id})),c=i.filter(function(e){return!a.has(e.id)}),u=[].concat(s,c);o.cacheManager.setConversations(u)}o.emit(e.CbEvents.OnConversationListUpdated,o.cacheManager.getConversations())}else{var d=o.cacheManager.getConversations();d.length>0&&o.emit(e.CbEvents.OnConversationListUpdated,d)}return!0})},function(t){console.error("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(w(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.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.markConversationRead=function(e){return o.conversation.markConversationRead(e)},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){return o.contact.getContactByType(e)},o.getMemberContacts=function(){return o.contact.getMemberContacts()},o.getColleagueContacts=function(){return o.contact.getColleagueContacts()},o.getGroupContacts=function(){return o.contact.getGroupContacts()},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 U(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.startConversationSync=function(e){this.stopConversationSync(),e&&e>0&&(this.syncInterval=e),this.conversationSyncTimer=window.setInterval(this.syncConversationsWithServer,this.syncInterval),this.config.debug&&console.log("[SDK] Started conversation sync timer with interval: "+this.syncInterval+"ms")},d.stopConversationSync=function(){this.conversationSyncTimer&&(clearInterval(this.conversationSyncTimer),this.conversationSyncTimer=void 0,this.config.debug&&console.log("[SDK] Stopped conversation sync timer"))},d.syncConversationsNow=function(){return this.syncConversationsWithServer()},d.destroy=function(){this.stopConversationSync(),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=w(function(){return Promise.resolve(t.conversation.getConversations({pageNo:1,pageSize:20})).then(function(n){var o=n.code,r=n.data;if(t.config.debug&&console.log("initializeConversationCache Conversation 获取第一页会话数据",o,r),0===o&&r&&r.records){t.cacheManager.setConversations(r.records),console.log("initializeConversationCache Conversation 获取第一页会话数据 this.cacheManager.getConversations()",t.cacheManager.getConversations());var s=t.cacheManager.getConversations();t.emit(e.CbEvents.OnConversationListUpdated,s),t.config.debug&&console.log("Conversation cache initialized with",r.records.length,"conversations")}})},function(e){console.error("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:"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)});
@@ -253,8 +253,9 @@ export interface MuteMembersParams {
253
253
  * 0: 禁言 ,1:解除禁言
254
254
  */
255
255
  type: number;
256
- /** 更新的权限列表 */
256
+ /** 用户名列表 */
257
257
  usernames: string[];
258
+ [key: string]: unknown;
258
259
  }
259
260
  /**
260
261
  * 联系人类型枚举
@@ -297,8 +298,17 @@ export interface ContactTagBean {
297
298
  * 联系人列表模型
298
299
  */
299
300
  export interface ContactListModel {
300
- /** 联系人类型 */
301
+ /**
302
+ * 0 查询会员 : 客服对象:groupType 为 3 且 tag为 会员的
303
+ * 1 查询同事: 私聊对象 groupType为0
304
+ * 2 查询群聊: groupType为 1和2
305
+ * 不传即查询以上三种全部
306
+ */
301
307
  concatType: ContactType;
308
+ /**
309
+ * 自己的chatId
310
+ */
311
+ chatId: number;
302
312
  /** 联系人标签列表 */
303
313
  contactTagBeans: ContactTagBean[];
304
314
  }
@@ -306,30 +316,38 @@ export interface ContactListModel {
306
316
  * 编辑联系人标签DTO
307
317
  */
308
318
  export interface EditeContactTagDTO {
309
- /** 联系人标签映射 */
310
- contactTags: Map<ContactType, ContactTag[]>;
311
- }
312
- /**
313
- * 联系人标签
314
- */
315
- export interface ContactTag {
316
- /** 联系人类型 */
319
+ /**
320
+ * 0 会员
321
+ * 1 同事:
322
+ * 2 群聊:
323
+ */
317
324
  contactType: ContactType;
318
- /** 分组名称 */
319
- tag: string;
325
+ /**
326
+ * 分组名称(逗号分割的字符串)
327
+ */
328
+ tags: string;
320
329
  }
321
330
  /**
322
331
  * 分配联系人标签DTO
323
332
  */
324
333
  export interface AllocationContactTagDTO {
325
- /** 联系人类型 */
334
+ /**
335
+ * 0 会员
336
+ * 1 同事:
337
+ * 2 群聊:
338
+ */
326
339
  contactType: ContactType;
327
- /** 分组名称 */
340
+ /**
341
+ * 分组名称
342
+ */
328
343
  tag: string;
329
344
  /**
330
- * contactType 为2(群聊):这里存的是groupId
331
- * 否则存的是联系人的id
345
+ * 这里存的是groupId
332
346
  */
333
- targetIds: number[];
347
+ groupIds: number[];
348
+ /**
349
+ * 0 添加分组 ,1删除分组
350
+ */
351
+ type: number;
334
352
  }
335
353
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sim-sdk-web",
3
- "version": "1.1.5",
3
+ "version": "1.1.7",
4
4
  "description": "Sim SDK for Web - Support SSE and WebSocket protocols",
5
5
  "source": "src/index.ts",
6
6
  "main": "lib/index.js",