easemob-websdk 5.1.0 → 5.1.2
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.
- package/bundle/im-sdk-web.iife.js +1 -1
- package/chat-client.d.ts +42 -8
- package/chunks/{chat-manager-D_KF5qM1.cjs → chat-manager-BFd2Z4oY.cjs} +1 -1
- package/chunks/{chat-manager-DCqgMxLm.js → chat-manager-CId_M_e5.js} +1 -1
- package/chunks/common-BvlDAw4a.js +1 -0
- package/chunks/common-tHGz9VBk.cjs +1 -0
- package/chunks/event-system-B62vbKqG.js +1 -0
- package/chunks/{event-system-COBJFEIq.cjs → event-system-TYhmgy4K.cjs} +1 -1
- package/chunks/group-user-info-resolver-B-dyr__b.cjs +1 -0
- package/chunks/group-user-info-resolver-DMccCqez.js +1 -0
- package/chunks/index-BBFJYOM8.js +1 -0
- package/chunks/{index-Dvvh1nf6.cjs → index-DJPAjXAp.cjs} +1 -1
- package/chunks/index-DtWkVcfb.cjs +1 -0
- package/chunks/index-l_BUKi77.js +1 -0
- package/chunks/light-BcQg8h2W.cjs +1 -0
- package/chunks/light-DImBnNes.js +1 -0
- package/chunks/{reflection-proto-codec-CjRraw85.js → reflection-proto-codec-7r8Sei3y.js} +1 -1
- package/chunks/{reflection-proto-codec-BerStgkC.cjs → reflection-proto-codec-CwrIKT1L.cjs} +1 -1
- package/chunks/{session-list-query-rynxSxtv.js → session-list-query-Cvr6rlme.js} +1 -1
- package/chunks/{session-list-query-C4OQMvPf.cjs → session-list-query-Dslj2k3t.cjs} +1 -1
- package/chunks/{user-info-DfbCp80h.js → user-info-AlshAvdy.js} +1 -1
- package/chunks/{user-info-DsDDTJrw.cjs → user-info-DH3aE1gm.cjs} +1 -1
- package/config/timeouts.d.ts +11 -0
- package/core/connection/connection-manager.d.ts +18 -1
- package/core/connection/login-deadline.d.ts +22 -0
- package/core/events/event-hub.d.ts +1 -0
- package/core/index.d.ts +8 -1
- package/core/message/attachment-downloader.d.ts +1 -1
- package/core/session-list-sync/session-list-sync-controller.d.ts +5 -0
- package/index.cjs +1 -1
- package/index.d.ts +11 -9
- package/index.js +2 -2
- package/log.d.ts +27 -0
- package/managers/chat/index.cjs +1 -1
- package/managers/chat/index.js +1 -1
- package/managers/chat-thread/index.cjs +1 -1
- package/managers/chat-thread/index.js +1 -1
- package/managers/chatroom/chatroom.d.ts +1 -1
- package/managers/chatroom/index.cjs +1 -1
- package/managers/chatroom/index.js +1 -1
- package/managers/chatroom-manager.d.ts +6 -1
- package/managers/contact/index.cjs +1 -1
- package/managers/contact/index.js +1 -1
- package/managers/group/index.cjs +1 -1
- package/managers/group/index.js +1 -1
- package/managers/presence/index.cjs +1 -1
- package/managers/presence/index.js +1 -1
- package/managers/push/index.cjs +1 -1
- package/managers/push/index.d.ts +2 -0
- package/managers/push/index.js +1 -1
- package/managers/push/native-push-controller.d.ts +62 -0
- package/managers/push/native-push-normalizer.d.ts +15 -0
- package/managers/push-manager.d.ts +63 -4
- package/managers/user-info/index.cjs +1 -1
- package/managers/user-info/index.js +1 -1
- package/managers/user-info-manager.d.ts +3 -2
- package/message/combine-payload-codec.d.ts +2 -1
- package/package.json +1 -1
- package/platform/index.d.ts +1 -1
- package/platform/request/default-request-adapter.d.ts +7 -0
- package/platform/socket/default-socket-adapter.d.ts +6 -0
- package/platform/types.d.ts +22 -2
- package/platform/upload/legacy-multipart-upload.d.ts +14 -0
- package/platform/upload/legacy-simple-upload.d.ts +3 -0
- package/protocol/msync/codec.d.ts +5 -0
- package/rest/client.d.ts +0 -4
- package/rest/contact-management.d.ts +1 -0
- package/rest/dns-config.d.ts +6 -1
- package/rest/error-maps/chatroom.d.ts +6 -0
- package/rest/error-maps/common.d.ts +3 -0
- package/rest/error-maps/contact.d.ts +8 -3
- package/rest/error-maps/push.d.ts +13 -1
- package/rest/error-maps/user-info.d.ts +51 -3
- package/rest/service-url.d.ts +6 -0
- package/types/chat-client.d.ts +16 -9
- package/types/chatroom.d.ts +3 -34
- package/types/event-system.d.ts +52 -1
- package/types/index.d.ts +5 -7
- package/types/log.d.ts +19 -0
- package/types/manager.d.ts +31 -0
- package/types/push.d.ts +77 -0
- package/upload/attachment-uploader.d.ts +1 -5
- package/upload/multipart-upload.d.ts +4 -14
- package/upload/simple-upload.d.ts +4 -3
- package/upload/types.d.ts +2 -1
- package/utils/error-codes.generated.d.ts +1 -0
- package/utils/log-reporter.d.ts +1 -7
- package/utils/logger.d.ts +28 -2
- package/validators/chat-client.d.ts +22 -50
- package/validators/message-create.d.ts +18 -18
- package/chunks/common-BIpcR2uQ.cjs +0 -1
- package/chunks/common-D_DfwSd3.js +0 -1
- package/chunks/event-system-D6IJA0C4.js +0 -1
- package/chunks/group-user-info-resolver-Ds35Z1Uf.cjs +0 -1
- package/chunks/group-user-info-resolver-lEtRdWli.js +0 -1
- package/chunks/index-BmwQgZ3E.js +0 -1
- package/chunks/index-BsIqq7LU.cjs +0 -1
- package/chunks/index-CFMcR5a_.js +0 -1
- package/chunks/light-Dg9A1Xmd.js +0 -1
- package/chunks/light-dJjIln5b.cjs +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{g as e,V as t,E as r,p as a,d as s,c as i,R as n,
|
|
1
|
+
import{g as e,V as t,E as r,p as a,d as s,c as i,R as n,b as o,n as d,e as l,f as c,S as g,A as u,U as m,l as p,C as h,h as y,N as v,i as I,m as f,j as b}from"./common-BvlDAw4a.js";import{i as T,s as _}from"./cache-utils-B99glc0H.js";import{h as C,t as E}from"./session-list-query-Cvr6rlme.js";import{m as L,r as w}from"./group-user-info-resolver-DMccCqez.js";import{ZodError as O,z as R}from"zod";import{l as N}from"./light-DImBnNes.js";import{c as M}from"./query-params-Bu3Xq4b6.js";const A={DISCONNECTED:"disconnected",CONNECTING:"connecting",CONNECTED:"connected",RECONNECTING:"reconnecting",RECONNECT_FAILED:"reconnectFailed"},U={CONNECTING:"onConnecting",CONNECTED:"onConnected",DISCONNECTED:"onDisconnected",RECONNECT_FAILED:"onReconnectFailed",TOKEN_WILL_EXPIRE:"onTokenWillExpire",TOKEN_EXPIRED:"onTokenExpired",OFFLINE_MESSAGE_SYNC_START:"onOfflineMessageSyncStart",OFFLINE_MESSAGE_SYNC_FINISH:"onOfflineMessageSyncFinish"},S={SEND_TIMEOUT:"onSendTimeout",GROUP_NOTIFY:"onGroupNotify",CHATROOM_NOTIFY:"onChatRoomNotify",CHAT_THREAD_NOTIFY:"onChatThreadNotify",USER_INFO_NOTIFY:"onUserInfoNotify",MESSAGE_SENT:"__internal:onMessageSent"},x={LOGIN:"login",RECONNECT:"reconnect",ONLINE:"online",OFFLINE_RECOVER:"offline-recover",HEARTBEAT_FAILED:"heartbeat-failed",SEND_TIMEOUT:"send-timeout",CLOSE:"close",ERROR:"error",TIMEOUT:"timeout",LIMIT:"limit",OFFLINE:"offline",TOKEN_EXPIRED:"token-expired"},D=/* @__PURE__ */new WeakMap,$=e=>D.get(e),k=(e,t)=>{const r=D.get(e);r&&D.set(t,r)};const V=new class{constructor(){this.store=/* @__PURE__ */new Map}set(e,t){e&&this.store.set(e,t)}get(e){if(e)return this.store.get(e)}consume(e){const t=this.get(e);return t&&this.store.delete(e),t}delete(e){e&&this.store.delete(e)}clear(){this.store.clear()}},P=e=>{if((e=>"undefined"!=typeof File&&e instanceof File)(e)){if("undefined"==typeof URL||"function"!=typeof URL.createObjectURL)return;return URL.createObjectURL(e)}return(e=>"object"==typeof e&&null!==e&&"path"in e&&"string"==typeof e.path)(e)?e.path:(e=>"object"==typeof e&&null!==e&&"uri"in e&&"string"==typeof e.uri)(e)?e.uri:void 0},q=()=>{const t=e().crypto;return t&&"function"==typeof t.randomUUID?t.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`},F=300,G=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),B=(e,r,a)=>{throw new t(e,{code:a,details:{fields:[{path:r,message:e,rule:"invalid_format"}]}})},z=e=>{if("combine"!==e.type)return 0;const t=e.combineLevel;return"number"==typeof t?t:G(e.body)&&"number"==typeof e.body.combineLevel?e.body.combineLevel:0},j=(e,t)=>{if(e.sender.userId||B(`messageList[${t}] sender.userId is required`,`messageList[${t}].sender.userId`,r.COMBINE_INVALID_INPUT),e.conversationId&&["singleChat","groupChat","chatRoom"].includes(e.conversationType)||B(`messageList[${t}] conversation is invalid`,`messageList[${t}].conversationId`,r.COMBINE_INVALID_INPUT),(!Number.isInteger(e.timestamp)||e.timestamp<=0)&&B(`messageList[${t}] timestamp must be positive integer`,`messageList[${t}].timestamp`,r.COMBINE_INVALID_INPUT),G(e.body)||B(`messageList[${t}] body must be object`,`messageList[${t}].body`,r.COMBINE_INVALID_INPUT),"combine"===e.type){const a=z(e);(!Number.isInteger(a)||a<0)&&B(`messageList[${t}] combineLevel is invalid`,`messageList[${t}].combineLevel`,r.COMBINE_INVALID_INPUT),a>10&&B(`messageList[${t}] combineLevel exceeds limit`,`messageList[${t}].combineLevel`,r.COMBINE_LEVEL_EXCEEDED)}},H=(e,t=300)=>{(!Number.isInteger(e)||e<=0)&&B("messageList must not be empty","messageList",r.COMBINE_INVALID_INPUT),(!Number.isInteger(t)||t<=0||t>300)&&B("max items is invalid","maxItems",r.COMBINE_INVALID_INPUT),e>t&&B(`messageList max length is ${t}`,"messageList",r.COMBINE_ITEM_LIMIT_EXCEEDED)},X=e=>{H(e.length);for(let t=0;t<e.length;t+=1){const a=e[t];void 0!==a?j(a,t):B(`messageList[${t}] is required`,`messageList[${t}]`,r.COMBINE_INVALID_INPUT)}},K=e=>{let t=0;for(const r of e){if("combine"!==r.type)continue;const e=z(r);e>t&&(t=e)}return t+1},Q=e=>{(!Number.isInteger(e)||e<=0)&&B("combineLevel must be positive integer","combineLevel",r.COMBINE_INVALID_INPUT),e>10&&B("combineLevel must be <= 10","combineLevel",r.COMBINE_LEVEL_EXCEEDED)};class W{static validate(e,a){try{return{success:!0,data:e.parse(a)}}catch(s){if(s instanceof O){const e=s.errors.map(e=>({path:e.path.length>0?e.path.join("."):"root",message:e.message,rule:e.code})),a=`Validation failed: ${e.map(e=>`${e.path}: ${e.message}`).join("; ")}`,i=s.errors.some(e=>"invalid_type"===e.code&&"undefined"===e.received)?r.VALIDATION_REQUIRED:r.VALIDATION_INVALID_FORMAT;return{success:!1,error:new t(a,{code:i,details:{fields:e}})}}return{success:!1,error:new t("Unknown validation error",{code:r.VALIDATION_UNKNOWN,details:{fields:[]}})}}}static validateOrThrow(e,a){const s=this.validate(e,a);if(s.success&&void 0!==s.data)return s.data;if(s.error)throw s.error;throw new t("Unknown validation error",{code:r.VALIDATION_UNKNOWN,details:{fields:[]}})}static safeParse(e,t){return this.validate(e,t)}}const Y=(e,a)=>new t(a,{code:r.VALIDATION_INVALID_FORMAT,details:{fields:[{path:e,message:a,rule:"invalid_format"}]}}),Z=(e,a)=>{if("string"!=typeof e||0===e.trim().length)throw(e=>new t(`${e} is required`,{code:r.VALIDATION_REQUIRED,details:{fields:[{path:e,message:`${e} is required`,rule:"required"}]}}))(a);return e.trim()},J=e=>`mark_${String(e)}`,ee=(e,t)=>{if("singleChat"===e||"groupChat"===e||"chatRoom"===e)return e;throw Y(t,`${t} must be one of singleChat, groupChat, chatRoom`)},te=e=>"singleChat"===e?"chat":"groupChat"===e?"groupchat":"chatroom",re=e=>"string"==typeof e&&e.length>0?e:void 0,ae=e=>{if("number"==typeof e&&Number.isFinite(e))return e;if("string"==typeof e&&e.length>0){const t=Number(e);return Number.isFinite(t)?t:void 0}},se=e=>T(e)?e:void 0,ie=(e,t)=>{const r=se(e);if(!r)return;const a=(e=>"string"==typeof e?_(e,{}):se(e)??{})(r.payload),s=Array.isArray(a.bodies)?a.bodies:[],i=se(s[0])??se(a.body),n=(e=>"txt"===e||"text"===e?"text":"custom"===e?"custom":"cmd"===e?"cmd":"image"===e||"file"===e||"voice"===e||"video"===e||"location"===e||"combine"===e?e:null)(i?.type??a.type);if(!i||!n)return;const o=((e,t)=>{if("text"===e)return{content:re(t.msg)??re(t.content)??""};if("custom"===e){const e=se(t.customExts)??se(t.params)??{},r={};for(const[t,a]of Object.entries(e))"string"==typeof a&&(r[t]=a);return{event:re(t.customEvent)??re(t.event)??"",params:r}}if("cmd"===e)return{action:re(t.action)??""};if("image"===e){const e=re(t.url)??re(t.remotePath)??"";return{localUrl:"",filename:re(t.filename)??re(t.displayName),filetype:re(t.filetype)??"application/octet-stream",width:ae(t.width),height:ae(t.height),isGif:!0===t.isGif||1===t.subType,isOriginalImage:!0===t.isOriginalImage,originalImageUrl:e,bigImageUrl:re(t.bigImageUrl),thumbnailUrl:re(t.thumbnailUrl)??re(t.thumbnailRemotePath),secret:re(t.secret)??re(t.secretKey),fileLength:ae(t.fileLength)}}return"file"===e?{url:re(t.url)??re(t.remotePath),filename:re(t.filename)??re(t.displayName),filetype:re(t.filetype)??"application/octet-stream",fileSize:ae(t.fileSize),fileLength:ae(t.fileLength),secret:re(t.secret)??re(t.secretKey)}:"voice"===e?{url:re(t.url)??re(t.remotePath),filename:re(t.filename)??re(t.displayName),filetype:re(t.filetype)??"application/octet-stream",duration:ae(t.duration)??0,fileLength:ae(t.fileLength),secret:re(t.secret)??re(t.secretKey)}:"video"===e?{url:re(t.url)??re(t.remotePath),filename:re(t.filename)??re(t.displayName),filetype:re(t.filetype)??"application/octet-stream",duration:ae(t.duration)??0,width:ae(t.width),height:ae(t.height),fileLength:ae(t.fileLength),secret:re(t.secret)??re(t.secretKey),thumbnailUrl:re(t.thumbnailUrl)??re(t.thumbnailRemotePath)}:"location"===e?{latitude:ae(t.latitude)??0,longitude:ae(t.longitude)??0,address:re(t.address),buildingName:re(t.buildingName)}:null})(n,i);if(!o)return;const d=re(a.from)??re(r.from)??"",l=re(a.to)??t.conversationId,c=se(a.sender),g={userId:re(c?.userId)??d,nickname:re(c?.nickname),avatarUrl:re(c?.avatarUrl)},u=se(a.ext)??{},m=(e=>{const t=se(e);if(!t)return;const r=re(t.operatorId)??re(t.operator),a=ae(t.operationCount)??ae(t.count),s=ae(t.operationTime)??ae(t.edit_time);return r&&void 0!==a&&void 0!==s?{operatorId:r,operationCount:a,operationTime:s}:void 0})(a.modifiedInfo??se(a.meta)?.edit_msg);return{msgServerId:re(r.id)??t.messageId,msgLocalId:re(r.msgLocalId)??"",from:d,to:l,sender:g,conversationId:t.conversationId,conversationType:t.conversationType,type:n,sendStatus:"sent",ext:u,timestamp:ae(r.timestamp)??t.timestamp,body:o,direct:d===t.currentUserId?"SEND":"RECEIVE",...m?{modifiedInfo:m}:{}}},ne=e=>`${e.conversationType}:${e.conversationId}`,oe=e=>{const{orgName:t,appName:r}=a(e.appKey);return{orgName:t,appName:r,encodedUserId:encodeURIComponent(e.userId),encodedResource:encodeURIComponent(e.clientResource)}},de=async(e,t,r,a)=>{const s=oe(t),i=(e=>{const t=e,r=t.conversations;if(void 0!==r){if(!Array.isArray(r)||0===r.length)throw Y("params.conversations","params.conversations must be a non-empty array");return r.map((e,t)=>{if(!T(e))throw Y(`params.conversations.${String(t)}`,`params.conversations.${String(t)} must be an object`);return{conversationId:Z(e.conversationId,`params.conversations.${String(t)}.conversationId`),conversationType:ee(e.conversationType,`params.conversations.${String(t)}.conversationType`)}})}return[{conversationId:Z(t.conversationId,"params.conversationId"),conversationType:ee(t.conversationType,"params.conversationType")}]})(r),n=((e,t)=>{if("number"!=typeof e||!Number.isInteger(e)||e<0||e>19)throw Y(t,`${t} must be an integer between 0 and 19`);return e})(r.mark,"params.mark"),o=await e.request(`/${s.orgName}/${s.appName}/sdk/user/${s.encodedUserId}/user_channels/mark?resource=${s.encodedResource}`,{method:a?"POST":"DELETE",body:{mark:J(n),targets:i.map(e=>({to:e.conversationId,type:te(e.conversationType)}))},operation:a?"addConversationMark":"removeConversationMark"}),d=(e=>{if(!Array.isArray(e))/* @__PURE__ */
|
|
2
2
|
return new Set;const t=/* @__PURE__ */new Set;return e.forEach(e=>{if(!T(e))return;const r="string"==typeof e.to?e.to.trim():"",a=(e=>"chat"===e||"singleChat"===e?"singleChat":"groupchat"===e||"groupChat"===e?"groupChat":"chatroom"===e||"chatRoom"===e?"chatRoom":null)(e.type);r&&a&&t.add(ne({conversationId:r,conversationType:a}))}),t})((T(o)&&T(o.data)?o.data:{}).ignore),l=[],c=[];for(const g of i){const e={conversationId:g.conversationId,conversationType:g.conversationType};d.has(ne(g))?c.push({...e,reason:"ignored_by_server"}):l.push(e)}return{succeeded:l,failed:c,mark:n,operation:a?"addMark":"removeMark"}},le=async(e,t,r,a)=>{const s=oe(t),i=Z(r.conversationId,"params.conversationId"),n=ee(r.conversationType,"params.conversationType"),o=Z(r.messageId,"params.messageId");return await e.request(`/${s.orgName}/${s.appName}/sdk/user/${s.encodedUserId}/user_channel/pin?resource=${s.encodedResource}`,{method:a?"POST":"DELETE",body:{to:i,type:te(n),pin_msg_id:o},operation:a?"pinMessage":"unpinMessage"}),{conversationId:i,conversationType:n,messageId:o,operation:a?"pin":"unpin"}},ce=R.enum(["singleChat","groupChat","chatRoom"]),ge=R.record(R.unknown()).refine(e=>(e=>"object"==typeof e&&null!==e&&!Array.isArray(e))(e),"ext must be an object").refine(e=>(e=>{try{return JSON.stringify(e),!0}catch{return!1}})(e),"ext must be JSON serializable"),ue=R.object({path:R.string().min(1,"data.path is required"),size:R.number().optional(),name:R.string().optional(),type:R.string().optional()}),me=R.object({uri:R.string().min(1,"data.uri is required"),size:R.number().optional(),name:R.string().optional(),type:R.string().optional()}),pe="undefined"!=typeof File?R.instanceof(File):R.never(),he=R.union([pe,ue,me]),ye=R.object({conversationId:R.string().min(1,"conversationId is required"),conversationType:ce,ext:ge.optional(),timestamp:R.number().int().positive("timestamp must be a positive integer").optional(),receiverList:R.array(R.string().min(1,"receiverList item is required")).nonempty("receiverList must not be empty").optional(),deliverOnlineOnly:R.boolean().optional(),webhookEnv:R.string().optional(),priority:R.enum(["high","normal","low"]).optional(),needReadReceipt:R.boolean().optional(),isChatThread:R.boolean().optional()}),ve=R.object({type:R.string().min(1,"messageList.type is required"),sender:R.object({userId:R.string().min(1,"messageList.sender.userId is required"),nickname:R.string().optional(),avatarUrl:R.string().optional()}),conversationId:R.string().min(1,"messageList.conversationId is required"),conversationType:ce,timestamp:R.number().int().positive("messageList.timestamp must be positive"),body:R.record(R.unknown()),combineLevel:R.number().int().min(0).max(10).optional()}).passthrough(),Ie=e=>e.superRefine((e,t)=>{e.receiverList&&"singleChat"===e.conversationType&&t.addIssue({code:R.ZodIssueCode.custom,message:"receiverList is only allowed for group or chat room conversation",path:["receiverList"]}),e.isChatThread&&"groupChat"!==e.conversationType&&t.addIssue({code:R.ZodIssueCode.custom,message:"isChatThread is only allowed for group conversation",path:["isChatThread"]}),e.needReadReceipt&&"chatRoom"===e.conversationType&&t.addIssue({code:R.ZodIssueCode.custom,message:"needReadReceipt is not allowed for chatRoom conversation",path:["needReadReceipt"]})}),fe=Ie(ye.extend({content:R.string().min(1,"content is required"),targetLanguages:R.array(R.string().min(1)).optional()})),be=Ie(ye.extend({originalUrl:R.string().min(1,"originalUrl is required").optional(),filename:R.string().min(1,"filename is required").optional(),filetype:R.string().min(1,"filetype is required").optional(),width:R.number().positive("width must be positive").optional(),height:R.number().positive("height must be positive").optional(),isGif:R.boolean().optional(),isOriginalImage:R.boolean().optional(),fileLength:R.number().positive("fileLength must be positive").optional(),data:he.optional(),thumbnailUrl:R.string().min(1).optional()}).refine(e=>Boolean(e.originalUrl||e.data),{message:"originalUrl or data is required",path:["originalUrl"]})),Te=Ie(ye.extend({originalUrl:R.string().min(1,"originalUrl is required").optional(),filename:R.string().min(1,"filename is required").optional(),filetype:R.string().min(1,"filetype is required").optional(),fileSize:R.number().positive("fileSize must be positive").optional(),fileLength:R.number().positive("fileLength must be positive").optional(),data:he.optional()}).refine(e=>Boolean(e.originalUrl||e.data),{message:"originalUrl or data is required",path:["originalUrl"]})),_e=Ie(ye.extend({originalUrl:R.string().min(1,"originalUrl is required").optional(),filename:R.string().min(1,"filename is required").optional(),filetype:R.string().min(1,"filetype is required").optional(),duration:R.number().positive("duration must be positive"),fileLength:R.number().positive("fileLength must be positive").optional(),data:he.optional()}).refine(e=>Boolean(e.originalUrl||e.data),{message:"originalUrl or data is required",path:["originalUrl"]})),Ce=Ie(ye.extend({originalUrl:R.string().min(1,"originalUrl is required").optional(),filename:R.string().min(1,"filename is required").optional(),filetype:R.string().min(1,"filetype is required").optional(),duration:R.number().positive("duration must be positive"),width:R.number().positive("width must be positive").optional(),height:R.number().positive("height must be positive").optional(),fileLength:R.number().positive("fileLength must be positive").optional(),thumbnailUrl:R.string().min(1).optional(),data:he.optional()}).refine(e=>Boolean(e.originalUrl||e.data),{message:"originalUrl or data is required",path:["originalUrl"]})),Ee=Ie(ye.extend({latitude:R.number(),longitude:R.number(),address:R.string().min(1).optional(),buildingName:R.string().min(1).optional()})),Le=Ie(ye.extend({action:R.string().min(1,"action is required")})),we=Ie(ye.extend({event:R.string().min(1,"event is required"),params:R.record(R.string()).optional()})),Oe=Ie(ye.extend({title:R.string().min(1,"title is required"),summary:R.string().min(1,"summary is required"),compatibleText:R.string().min(1).optional(),messageList:R.array(ve).min(1,"messageList must not be empty").max(300,"messageList max length is 300")})),Re=e=>{const a=e?.userId?.trim();if(!a)throw new t("sender.userId is required",{code:r.VALIDATION_REQUIRED,details:{fields:[{path:"sender.userId",message:"sender.userId is required",rule:"required"}]}});return{userId:a,nickname:e?.nickname,avatarUrl:e?.avatarUrl}},Ne=()=>q(),Me=(e,a)=>{if(e)return e;if(!a)throw new t("url or data is required",{code:r.VALIDATION_REQUIRED,details:{fields:[{path:"url",message:"url or data is required",rule:"required"}]}});const s=P(a);if(!s)throw new t("Failed to resolve local url",{code:r.VALIDATION_INVALID_FORMAT,details:{fields:[{path:"url",message:"Failed to resolve local url",rule:"invalid_format"}]}});return s},Ae=e=>!!e.isGif||(e.isOriginalImage??!1),Ue=(e,t,r,a,s)=>({msgServerId:"",msgLocalId:s??q(),from:t.userId,to:e.conversationId,sender:t,conversationId:e.conversationId,conversationType:e.conversationType,type:r,sendStatus:"sending",ext:e.ext??{},timestamp:e.timestamp??Date.now(),body:a,direct:"SEND",isOnline:!0,receiverList:e.receiverList,deliverOnlineOnly:e.deliverOnlineOnly,webhookEnv:e.webhookEnv,priority:e.priority,needReadReceipt:e.needReadReceipt,isPeerRead:"singleChat"!==e.conversationType&&void 0,isChatThread:e.isChatThread}),Se=(e,t)=>{const r=W.validateOrThrow(Oe,e),a=r.messageList,s=Re(t);X(a);const i=K(a);Q(i);const n={title:r.title,summary:r.summary,messageList:a,filename:"combine",filetype:"application/octet-stream",combineLevel:i},o=Ue(r,s,"combine",n);return((e,t)=>{t&&D.set(e,t)})(o,r.compatibleText),o},xe=e=>{const{orgName:t,appName:r}=a(e.appKey);return`/${t}/${r}`},De=e=>{const t=new Uint8Array(N.util.base64.length(e));return N.util.base64.decode(e,t,0),t},$e=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),ke=async e=>{try{return await e()}catch(t){if(!(t instanceof n))throw t;const e=(e=>{const t="string"==typeof e.details?.serverMessage?e.details.serverMessage:void 0;switch(e.code){case r.SERVICE_NOT_ENABLED:case r.TRANSLATE_SERVICE_NOT_ENABLED:return"Translation service is not enabled";case r.TRANSLATE_PARAM_INVALID:return t?.includes("too long")?"Translation text is too long":t?.includes("target language")?"Invalid target language":"Invalid translation request";case r.TRANSLATE_USAGE_LIMIT:return"Translation quota has been reached";case r.TRANSLATE_FAILED:return"Translation service error";default:return}})(t);if(!e)throw t;throw new n(`REST business error: ${e}`,{code:t.code,details:t.details})}},Ve=e=>"string"==typeof e?e:"number"==typeof e||"boolean"==typeof e||"bigint"==typeof e?String(e):"",Pe=e=>{if("string"!=typeof e)return"";const t=e.trim();return t&&"undefined"!==t&&"null"!==t?t:""},qe=e=>({userId:e}),Fe=(e,t)=>{if(!$e(e)||!$e(e.data))throw i({apiName:t,message:`${t} response data is invalid`,mapped:!1});return e.data},Ge=(e,t)=>{if(!$e(e)||!Array.isArray(e.data))throw i({apiName:t,message:`${t} response data is invalid`,mapped:!1});return e.data},Be=(e,t)=>Array.isArray(e)?e:Ge(e,t),ze={txt:"text",img:"image",video:"video",file:"file",loc:"location",custom:"custom",combine:"combine"},je={text:"txt",image:"img",video:"video",file:"file",location:"loc",custom:"custom",combine:"combine"},He={chat:"singleChat",chatroom:"chatRoom",groupchat:"groupChat",singleChat:"singleChat",chatRoom:"chatRoom",groupChat:"groupChat"},Xe=(e,t,r)=>{if(!t)return"";if(t.includes("em-redirect"))return t;const{orgName:s,appName:i}=a(e.appKey),n=t.indexOf("/chatfiles/"),d=n>=0?t.slice(n):t,l=`${e.restBaseUrl}/${s}/${i}${d}`;return o(l,r)},Ke=e=>{if(!e||"object"!=typeof e)return;if(Array.isArray(e))return e;const t=Object.values(e),r=[];for(const a of t)Array.isArray(a)&&r.push(...a);return r.length>0?r:void 0},Qe=(e,t,r)=>{const a=Ve(r.contentType??r.type),s=je[a];if(!s)return null;const i=$e(r.content)?r.content:{},n=((e,t)=>{const r=Ve(t.conversationType);if("groupchat"===r||"chatroom"===r)return Ve(t.receiverId);const a=Ve(t.senderId);return a===e?Ve(t.receiverId):a})(t,r),o=He[Ve(r.conversationType)]??"singleChat",d={msgServerId:Ve(r.messageId),msgLocalId:Ve(r.messageId),from:Ve(r.senderId),to:Ve(r.receiverId),conversationId:n,conversationType:o,type:s,ext:$e(r.ext)?r.ext:{},timestamp:"number"==typeof r.sentTime?r.sentTime:new Date(Ve(r.sentTime)).getTime(),sender:{userId:Ve(r.senderId)},highlight:Ke(r.highlight),text:"string"==typeof r.text?r.text:void 0};let l;const c=Ve(i.remotePath??i.url),g=Ve(i.secret??i.secretKey);switch(s){case"txt":l={type:"txt",content:Ve(i.message??r.text)};break;case"img":{const t=Xe(e,c,g);l={type:"img",url:t,thumb:i.thumb?Xe(e,Ve(i.thumb),Ve(i.thumb_secret??i.thumbnailSecretKey)):`${t}&thumbnail=true`,secret:g,width:Number(i.width??($e(i.size)?i.size.width:0))||0,height:Number(i.height??($e(i.size)?i.size.height:0))||0,fileLength:Number(i.file_length??i.fileLength??0)};break}case"video":l={type:"video",url:Xe(e,c,g),thumb:i.thumb||i.thumbnailRemotePath?Xe(e,Ve(i.thumb??i.thumbnailRemotePath),Ve(i.thumb_secret??i.thumbnailSecretKey)):"",secret:g,filename:Ve(i.filename??i.displayName),duration:Number(i.length??i.duration??0),fileLength:Number(i.file_length??i.fileLength??0)};break;case"file":l={type:"file",url:Xe(e,c,g),secret:g,filename:Ve(i.filename??i.displayName),fileLength:Number(i.file_length??i.fileLength??0)};break;case"loc":l={type:"loc",latitude:Number(i.lat??i.latitude??0),longitude:Number(i.lng??i.longitude??0),address:Ve(i.addr??i.address),buildingName:Ve(i.buildingName)};break;case"custom":l={type:"custom",customEvent:Ve(i.customEvent),customExts:$e(i.customExts)?i.customExts:{}};break;default:return null}return{...d,body:l}},We=async(e,t,r)=>{const a=`${xe(t)}/users/${t.userId}/messages/search/get`,s=((e,t)=>{const{option:r,pageNum:a=1,pageSize:s=20}=e,i=r.keywordList.map(e=>e.trim()).filter(e=>e.length>0),n={searchMode:"default",highlightEnable:!0,page:a,size:s};return 1===i.length?n.keyword=i[0]:(n.keywords=i,n.keywordMatch="and"===r.keywordListMatchType?"all":"any"),r.conversationId&&("singleChat"===r.conversationType?n.participantPairs=[{userId1:t,userId2:r.conversationId}]:"groupChat"===r.conversationType?n.groupIds=[r.conversationId]:"chatRoom"===r.conversationType&&(n.chatroomIds=[r.conversationId])),r.msgTypes&&r.msgTypes.length>0&&(n.contentType=r.msgTypes.map(e=>ze[e]??e).join(",")),void 0!==r.startTime&&(n.startTime=r.startTime),void 0!==r.endTime&&(n.endTime=r.endTime),r.searchScope&&(n.searchExt=r.searchScope),r.direction&&(n.sort="up"===r.direction?"sentTime:asc":"sentTime:desc"),{data:n}})(r,t.userId),i=await e.post(a,s,{operation:"searchMessages"}),n=$e(i)?i:{},o=$e(n.data)?n.data:n,d=$e(o.data)?o.data:o,l=Array.isArray(d.items)?d.items:Array.isArray(d.list)?d.list:[],c=$e(d.pagination)?d.pagination:d,g=Number(c.pageNum??c.page??r.pageNum??1),u=Number(c.pageSize??c.size??r.pageSize??20),m=Number(c.totalPages??0),p=1===c.isFinished||g>=m,h=[];for(const y of l){if(!$e(y))continue;const e=Qe(t,t.userId,y);e&&h.push(e)}return{messages:h,pageNum:g,pageSize:u,totalPages:m,isLast:p}},Ye=e=>{const{orgName:t,appName:r}=a(e.appKey);return`/api/sdk/v1/${t}/${r}`},Ze=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),Je=e=>Ze(e)&&"string"==typeof e.path&&e.path.trim().length>0,et=e=>(e=>"undefined"!=typeof File&&e instanceof File)(e)||Je(e),tt=e=>{if(!Ze(e))return;return{data:Ze(e.data)?e.data:void 0,error:Ze(e.error)?e.error:void 0}},rt=(e,t)=>{const a=tt(e),s=a?.data?.text;if("string"!=typeof s)throw new g(`${t} response data is invalid`,r.REST_BUSINESS_UNKNOWN,{details:{api:t,response:e}});return s},at=(e,r,a,s="sdk")=>"auth"===s?new u(e,{code:r,details:a}):"validation"===s?new t(e,{code:r,details:a}):new g(e,r,{details:a}),st=e=>!(void 0===e||Ze(e)&&!Array.isArray(e))||(void 0!==e?.format&&"string"!=typeof e.format||(void 0!==e?.sampleRate&&"number"!=typeof e.sampleRate||(void 0!==e?.bitsPerSample&&"number"!=typeof e.bitsPerSample||void 0!==e?.channels&&"number"!=typeof e.channels))),it=e=>{if(!e)return;const t=(e.split("#")[0]?.split("?")[0]??"").split("/").filter(Boolean);return t.length>0?t[t.length-1]:void 0},nt=e=>{const{serviceCode:t,serviceMessage:a}=(e=>{const t=e instanceof g&&Ze(e.details)?e.details:void 0,r=tt(t?.rawResponse??t?.response??e),a=t?.serverCode??r?.error?.code,s=t?.serverMessage??r?.error?.message;return{serviceCode:"string"==typeof a||"number"==typeof a?String(a):void 0,serviceMessage:"string"==typeof s?s:void 0}})(e);if(e instanceof m)return at("File upload failed",r.UPLOAD_REQUEST_FAILED,{cause:e.details});if(e instanceof g&&!t)return e;if(t)switch(t){case"4041001":return at("File not found",r.VOICE_TO_TEXT_FILE_NOT_FOUND,{serviceCode:t,serviceMessage:a});case"4001002":return at("Invalid file",r.VOICE_TO_TEXT_FILE_INVALID,{serviceCode:t,serviceMessage:a},"validation");case"5021001":return at("File upload failed",r.UPLOAD_REQUEST_FAILED,{serviceCode:t,serviceMessage:a});case"4001003":return at("Voice duration exceeds 60 seconds",r.VOICE_TO_TEXT_FILE_DURATION_TOO_LONG,{serviceCode:t,serviceMessage:a},"validation");case"4031001":return at("Voice-to-text service is not enabled",r.SERVICE_NOT_ENABLED,{serviceCode:t,serviceMessage:a});case"4031002":return at("Beta service usage limit exceeded",r.SERVICE_LIMIT_EXCEEDED,{serviceCode:t,serviceMessage:a});case"4001001":return"string"==typeof(s=a)&&s.toLowerCase().includes("uploaded file exceeds")?at("File too large",r.VOICE_TO_TEXT_FILE_TOO_LARGE,{serviceCode:t,serviceMessage:a}):at(a||"Missing or invalid request parameter",r.VALIDATION_REQUIRED,{serviceCode:t,serviceMessage:a},"validation");case"5021003":case"5001003":return at("Voice-to-text failed",r.VOICE_TO_TEXT_FAILED,{serviceCode:t,serviceMessage:a});case"4011001":return at(a||"Unauthorized or invalid token",r.AUTH_UNAUTHORIZED,{serviceCode:t,serviceMessage:a},"auth");default:return at(a||(e instanceof Error?e.message:"Voice-to-text failed"),r.VOICE_TO_TEXT_FAILED,{serviceCode:t,serviceMessage:a})}var s;return e instanceof g?at(e.message,e.code,e.details):at(e instanceof Error?e.message:"Voice-to-text failed",r.VOICE_TO_TEXT_FAILED)},ot=(e,t)=>{if(!Ze(a=e)||"string"!=typeof a.filename||"string"!=typeof a.filetype||"number"!=typeof a.duration||"type"in a&&void 0!==a.type&&"voice"!==a.type)throw at("Invalid file",r.VOICE_TO_TEXT_FILE_INVALID,{path:"voiceMessageBody"},"validation");var a;if(st(t))throw at("Invalid file",r.VOICE_TO_TEXT_FILE_INVALID,{path:"voiceParams"},"validation");if(!e.url)throw at("File not found",r.VOICE_TO_TEXT_FILE_NOT_FOUND,{path:"voiceMessageBody.url"});if(!it(e.url))throw at("Invalid file",r.VOICE_TO_TEXT_FILE_INVALID,{path:"voiceMessageBody.url"},"validation");return e},dt=(e,t)=>{if(st(t))throw at("Invalid file",r.VOICE_TO_TEXT_FILE_INVALID,{path:"voiceParams"},"validation");if(!et(e))throw at("Invalid file",r.VOICE_TO_TEXT_FILE_INVALID,{path:"file"},"validation");return e},lt=async(e,a,s,i)=>{const n=ot(s,i),o=it(n.url);if(!o)throw((e,r,a,s="invalid")=>new t(e,{code:r,details:{fields:[{path:a,message:e,rule:s}]}}))("File not found",r.VOICE_TO_TEXT_FILE_NOT_FOUND,"voiceMessageBody.url");try{const t=await e.post(`${Ye(a)}/speech/transcriptions`,{data:{fileId:o,username:a.userId,...i?{audio:i}:{}}},{operation:"voiceMessageToText"});return{text:rt(t,"voiceMessageToText")}}catch(d){throw nt(d)}},ct=R.object({keywordList:R.array(R.string()).min(1,"keywordList must not be empty").max(5,"keywordList must have at most 5 keywords").refine(e=>e.map(e=>e.trim()).filter(e=>e.length>0).length>0,"keywordList must contain at least one non-empty keyword"),keywordListMatchType:R.enum(["or","and"]).optional(),conversationId:R.string().min(1).optional(),conversationType:R.enum(["singleChat","groupChat","chatRoom"]).optional(),msgTypes:R.array(R.enum(["txt","img","video","file","loc","custom","combine"])).optional(),startTime:R.number().optional(),endTime:R.number().optional(),searchScope:R.enum(["none","with","only"]).optional(),direction:R.enum(["up","down"]).optional()}).refine(e=>void 0!==e.conversationId===(void 0!==e.conversationType),{message:"conversationId and conversationType must be provided together"}).refine(e=>void 0!==e.startTime===(void 0!==e.endTime),{message:"startTime and endTime must be provided together"}).refine(e=>void 0===e.startTime||void 0===e.endTime||e.endTime>=e.startTime,{message:"endTime must be >= startTime"}),gt=R.object({option:ct,pageNum:R.number().int().min(1).default(1),pageSize:R.number().int().min(1).max(100).default(20)}),ut=f(b,{common:{},apis:{sendMessage:{range:"1,4,100,108,110,202,210,213-215,219-222,300-301,303,305,402,405-406,500-501,505-510,602-603,606-607,1200,1299",localErrors:{sendMessage:{operation_cancelled:{code:1,retryable:!1},upload_invalid_appkey:{code:100,retryable:!1},validation_invalid:{code:110,retryable:!1},not_connected:{code:300,retryable:!0},request_timeout:{code:301,retryable:!0},send_failed:{code:303,retryable:!1},upload_failed:{code:402,retryable:!0},file_too_large:{code:405,retryable:!1},file_content_improper:{code:406,retryable:!1},encode_failed:{code:500,retryable:!1}}},errors:{SERVICE_LIMIT_EXCEEDED:{code:4,retryable:!1},TOKEN_EXPIRED:{code:108,retryable:!1},AUTH_FAILED:{code:202,retryable:!1},PERMISSION_DENIED:{code:210,retryable:!1},BIND_ANOTHER_DEVICE:{code:213,retryable:!1},TOO_MANY_DEVICES:{code:214,retryable:!1},USER_MUTED:{code:215,retryable:!1},USER_MUTED_BY_ADMIN:{code:219,retryable:!1},USER_DEVICE_CHANGED:{code:220,retryable:!1},USER_NOT_ON_ROSTER:{code:221,retryable:!1},BLOCKED_BY_RECIPIENT:{code:222,retryable:!1,aliases:["blocked"]},SERVER_SERVING_DISABLED:{code:305,retryable:!1},MESSAGE_INCLUDE_ILLEGAL_CONTENT:{code:501,retryable:!1},SERVICE_NOT_ENABLED:{code:505,retryable:!1},MESSAGE_EXPIRED:{code:506,retryable:!1},MESSAGE_ILLEGAL_WHITELIST:{code:507,retryable:!1},MESSAGE_EXTERNAL_LOGIC_BLOCKED:{code:508,retryable:!1},MESSAGE_CURRENT_LIMITING:{code:509,retryable:!0},MESSAGE_SIZE_LIMIT:{code:510,retryable:!1},GROUP_NOT_JOINED:{code:602,retryable:!1},GROUP_PERMISSION_DENIED:{code:603,retryable:!1},GROUP_NOT_EXIST:{code:606,retryable:!1},GROUP_DISABLED:{code:607,retryable:!1},MESSAGE_BLOCKED:{code:1200,retryable:!1},THIRD_DEFAULT_FAILED:{code:1299,retryable:!1}}},getHistoryMessages:{range:"4,110,202,505",localErrors:{getHistoryMessages:{validation_invalid:{code:110,retryable:!1}}},errors:{service_not_enabled:{code:505,retryable:!1},page_size_exceeded:{code:110,aliases:["pull number cannot be greater","limit is to large"],retryable:!1}}},removeHistoryMessages:{range:"110,112,202,505",localErrors:{removeHistoryMessages:{validation_invalid:{code:110,retryable:!1}}},errors:{service_not_enabled:{code:505,retryable:!1},query_param_reaches_limit:{code:112,aliases:["delete msg list limit"],retryable:!1}}},getGroupMessageReadUsers:{range:"4,110,500",localErrors:{getGroupMessageReadUsers:{validation_invalid:{code:110,retryable:!1}}},errors:{message_not_found:{code:500,retryable:!1}}},recallMessage:{range:"110,201,300,504,505",localErrors:{recallMessage:{validation_invalid:{code:110,retryable:!1}}},errors:{message_invalid:{code:110,retryable:!1},not_login:{code:201,retryable:!0},not_connected:{code:300,retryable:!0},recall_time_limit:{code:504,retryable:!1},recall_disabled:{code:505,retryable:!1}}},updateMessage:{range:"110,111,201,210,300,511",localErrors:{modifyMessage:{validation_invalid:{code:110,retryable:!1},unsupported_type:{code:111,retryable:!1}}},errors:{message_invalid:{code:110,retryable:!1},unsupported_type:{code:111,retryable:!1},not_login:{code:201,retryable:!0},permission_denied:{code:210,retryable:!1},not_connected:{code:300,retryable:!0},edit_failed:{code:511,retryable:!0}}},downloadMessageAttachment:{range:"400,401,403,407",localErrors:{downloadAttachment:{validation_invalid:{code:401,retryable:!1}}},errors:{not_found:{code:400,httpStatus:404,retryable:!1},invalid:{code:401,retryable:!1},download_failed:{code:403,retryable:!0},expired:{code:407,httpStatus:404,retryable:!1}}},downloadAndParseCombineMessage:{range:"110,401,403,500",localErrors:{downloadAndParseCombineMessage:{validation_invalid:{code:110,retryable:!1}}},errors:{invalid_param:{code:110,retryable:!1},invalid_type:{code:500,retryable:!1},parse_failed:{code:401,retryable:!0},download_failed:{code:403,retryable:!0}}},addReaction:{range:"110,302,505,600,602,1300-1302",localErrors:{addReaction:{validation_invalid:{code:110,retryable:!1}}},errors:{reaction_already_operated:{code:1301,retryable:!1},reaction_reach_limit:{code:1300,retryable:!1},group_not_joined:{code:602,retryable:!1},reaction_operation_illegal:{code:1302,retryable:!1},service_not_enabled:{code:505,retryable:!1},server_busy:{code:302,retryable:!0}}},removeReaction:{range:"110,505,1301,1302",localErrors:{removeReaction:{validation_invalid:{code:110,retryable:!1}}},errors:{service_not_enabled:{code:505,retryable:!1},reaction_operation_illegal:{code:1302,retryable:!1}}},getReactionList:{range:"110,505,600",localErrors:{getReactionList:{validation_invalid:{code:110,retryable:!1}}},errors:{service_not_enabled:{code:505,retryable:!1},group_invalid_id:{code:600,retryable:!1}}},getReactionDetail:{range:"110,505,1302",localErrors:{getReactionDetail:{validation_invalid:{code:110,retryable:!1}}},errors:{service_not_enabled:{code:505,retryable:!1},reaction_operation_illegal:{code:1302,retryable:!1}}},pinMessage:{range:"4,110",errors:{pin_msg_id_illegal:{code:110,retryable:!1},pin_message_limit:{code:4,aliases:["91101"],retryable:!1},pin_message_not_found:{code:110,aliases:["91102"],retryable:!1}}},unpinMessage:{range:"110",errors:{pin_msg_id_illegal:{code:110,retryable:!1},pin_message_not_found:{code:110,aliases:["91102","user session pin message not exist"],retryable:!1}}},getPinnedMessageList:{range:"110,111",errors:{operation_unsupported:{code:111,aliases:["15002"],retryable:!1},pin_message_not_found:{code:110,aliases:["91102","user session pin message not exist"],retryable:!1}}},getSupportedTranslationLanguages:{range:"505",errors:{service_not_enabled:{code:505,aliases:["service not open!"],retryable:!1}}},translateMessage:{range:"505,1110-1113",localErrors:{translateMessage:{validation_invalid:{code:1110,retryable:!1}}},errors:{translate_text_too_long:{code:1110,runtimeMessage:"Translation text is too long",retryable:!1},translate_param_invalid:{code:1110,runtimeMessage:"Invalid target language",retryable:!1},service_not_enabled:{code:1111,runtimeMessage:"Translation service is not enabled",aliases:["service not open!"],retryable:!1},translate_usage_limit:{code:1112,runtimeMessage:"Translation quota has been reached",aliases:["The request has reached the maximum limit"],retryable:!1},translate_failed:{code:1113,runtimeMessage:"Translation service error",aliases:["The request failed, please try again later."],retryable:!1}}},voiceMessageToText:{range:"4,110,202,407-411,505",localErrors:{voiceMessageToText:{validation_invalid:{code:407,retryable:!1},file_not_found:{code:410,retryable:!1}}},errors:{unauthorized:{code:202,retryable:!0},file_not_found:{code:410,retryable:!1,aliases:["4041001"]},file_invalid:{code:407,retryable:!1,aliases:["4001002"]},duration_too_long:{code:408,retryable:!1,aliases:["4001003"]},file_too_large:{code:411,retryable:!1,aliases:["4001001"]},service_not_enabled:{code:505,retryable:!1,aliases:["4031001"]},service_limit_exceeded:{code:4,retryable:!0,aliases:["4031002"]},voice_to_text_failed:{code:409,retryable:!0,aliases:["5021003","5001003"]}}},voiceFileToText:{range:"4,110,202,402,407-411,505",localErrors:{voiceFileToText:{validation_invalid:{code:407,retryable:!1},upload_required:{code:110,retryable:!1}}},errors:{unauthorized:{code:202,retryable:!0},upload_failed:{code:402,retryable:!0,aliases:["5021001"]},file_invalid:{code:407,retryable:!1,aliases:["4001002"]},duration_too_long:{code:408,retryable:!1,aliases:["4001003"]},file_too_large:{code:411,retryable:!1,aliases:["4001001"]},service_not_enabled:{code:505,retryable:!1,aliases:["4031001"]},service_limit_exceeded:{code:4,retryable:!0,aliases:["4031002"]},voice_to_text_failed:{code:409,retryable:!0,aliases:["5021003","5001003"]}}},getConversationList:{range:"110",localErrors:{getConversationList:{validation_invalid:{code:110,retryable:!1}}},errors:{}},getPinnedConversationList:{range:"110",localErrors:{getPinnedConversationList:{validation_invalid:{code:110,retryable:!1}}},errors:{}},getConversationListByMark:{range:"110",localErrors:{getConversationListByMark:{validation_invalid:{code:110,retryable:!1}}},errors:{}},deleteConversation:{range:"110",localErrors:{deleteConversation:{validation_invalid:{code:110,retryable:!1}}},errors:{}},clearConversationUnreadMessageCount:{range:"110,201,300,500",localErrors:{clearConversationUnreadMessageCount:{validation_invalid:{code:110,retryable:!1}}},errors:{not_login:{code:201,retryable:!0},not_connected:{code:300,retryable:!0},message_invalid:{code:500,retryable:!1}}},clearAllConversationUnreadMessageCount:{range:"201,300,500",errors:{not_login:{code:201,retryable:!0},not_connected:{code:300,retryable:!0},message_invalid:{code:500,retryable:!1}}},sendMessageReadReceipts:{range:"110,300",localErrors:{sendMessageReadReceipts:{validation_invalid:{code:110,retryable:!1}}},errors:{invalid_direction:{code:110,retryable:!1},not_connected:{code:300,retryable:!0}}},getGroupMessageReadReceipts:{range:"110,202,210,303",localErrors:{getGroupMessageReadReceipts:{validation_invalid:{code:110,retryable:!1}}},errors:{illegal_argument:{code:110,httpStatus:400,retryable:!1},auth_bad_access_token:{code:202,httpStatus:401,retryable:!1},forbidden_op:{code:210,httpStatus:403,retryable:!1},unknown_exception_error:{code:303,httpStatus:500,retryable:!0}}},setConversationPinned:{range:"110",localErrors:{setConversationPinned:{validation_invalid:{code:110,retryable:!1}}},errors:{}},addConversationMark:{range:"110",localErrors:{addConversationMark:{validation_invalid:{code:110,retryable:!1}}},errors:{}},removeConversationMark:{range:"110",localErrors:{removeConversationMark:{validation_invalid:{code:110,retryable:!1}}},errors:{}},clearAllMessagesAndConversations:{range:"",errors:{}},searchMessages:{range:"110,202,303,505",localErrors:{searchMessages:{validation_invalid:{code:110,retryable:!1}}},errors:{parameter_error:{code:110,httpStatus:400,retryable:!1,aliases:["4000005","4000006"]},token_invalid:{code:202,httpStatus:401,retryable:!1,aliases:["4010101"]},service_not_enabled:{code:505,httpStatus:403,retryable:!1,aliases:["4030204"]},app_not_found:{code:110,httpStatus:404,retryable:!1,aliases:["4040302"]},server_error:{code:303,httpStatus:500,retryable:!0,aliases:["5000701","5020801"]}}}}}),mt=class{constructor(){this.client=null,this.eventContext=null,this.restClient=null,this.restBaseUrl=null,this.restToken=null}bind(e,t){this.client=e,this.eventContext=t??null,this.restClient=null,this.restBaseUrl=null,this.restToken=null}async sendMessage(e,t){return this.getClientOrThrow().sendMessage(e,t)}createTextMessage(e){return((e,t)=>{const r=W.validateOrThrow(fe,e),a=Re(t),s=Ne(),i={content:r.content};return r.targetLanguages&&(i.targetLanguages=r.targetLanguages),Ue(r,a,"text",i,s)})(e,this.buildMessageSenderOrThrow())}createImageMessage(e){return((e,t,r)=>{const a=W.validateOrThrow(be,e),i=Re(t),n=Ne(),o=a.data?Me(void 0,a.data):"",d=a.originalUrl?s(a.originalUrl,{deriveVariants:!r?.useCustomAttachmentUpload}):void 0;a.data&&V.set(n,a.data);const l=a.isGif??!1,c={localUrl:o,filename:a.filename,filetype:a.filetype,width:a.width,height:a.height,isGif:l,isOriginalImage:Ae({isGif:l,isOriginalImage:a.isOriginalImage})};return d?.originalImageUrl&&(c.originalImageUrl=d.originalImageUrl,c.bigImageUrl=d.bigImageUrl,c.thumbnailUrl=d.thumbnailUrl),void 0!==a.fileLength&&(c.fileLength=a.fileLength),a.thumbnailUrl&&(c.thumbnailUrl=a.thumbnailUrl),Ue(a,i,"image",c,n)})(e,this.buildMessageSenderOrThrow(),this.getClientOrThrow().getMessageCreationOptions())}createFileMessage(e){return((e,t)=>{const r=W.validateOrThrow(Te,e),a=Re(t),s=Ne(),i=Me(r.originalUrl,r.data);r.data&&V.set(s,r.data);const n={url:i,filename:r.filename,filetype:r.filetype};return void 0!==r.fileSize&&(n.fileSize=r.fileSize),void 0!==r.fileLength&&(n.fileLength=r.fileLength),Ue(r,a,"file",n,s)})(e,this.buildMessageSenderOrThrow())}createVoiceMessage(e){return((e,t)=>{const r=W.validateOrThrow(_e,e),a=Re(t),s=Ne(),i=Me(r.originalUrl,r.data);r.data&&V.set(s,r.data);const n={url:i,filename:r.filename,filetype:r.filetype,duration:r.duration};return void 0!==r.fileLength&&(n.fileLength=r.fileLength),Ue(r,a,"voice",n,s)})(e,this.buildMessageSenderOrThrow())}createVideoMessage(e){return((e,t)=>{const r=W.validateOrThrow(Ce,e),a=Re(t),s=Ne(),i=Me(r.originalUrl,r.data);r.data&&V.set(s,r.data);const n={url:i,filename:r.filename,filetype:r.filetype,duration:r.duration};return void 0!==r.width&&(n.width=r.width),void 0!==r.height&&(n.height=r.height),void 0!==r.fileLength&&(n.fileLength=r.fileLength),r.thumbnailUrl&&(n.thumbnailUrl=r.thumbnailUrl),Ue(r,a,"video",n,s)})(e,this.buildMessageSenderOrThrow())}createLocationMessage(e){return((e,t)=>{const r=W.validateOrThrow(Ee,e),a=Re(t),s={latitude:r.latitude,longitude:r.longitude};return r.address&&(s.address=r.address),r.buildingName&&(s.buildingName=r.buildingName),Ue(r,a,"location",s)})(e,this.buildMessageSenderOrThrow())}createCmdMessage(e){return((e,t)=>{const r=W.validateOrThrow(Le,e),a=Re(t),s={action:r.action};return void 0!==r.deliverOnlineOnly&&(s.deliverOnlineOnly=r.deliverOnlineOnly),Ue(r,a,"cmd",s)})(e,this.buildMessageSenderOrThrow())}createCustomMessage(e){return((e,t)=>{const r=W.validateOrThrow(we,e),a=Re(t),s={event:r.event};return r.params&&(s.params=r.params),Ue(r,a,"custom",s)})(e,this.buildMessageSenderOrThrow())}createCombineMessage(e){return Se(e,this.buildMessageSenderOrThrow())}getConversationList(e){if(void 0!==e?.mark&&(!Number.isInteger(e.mark)||e.mark<0||e.mark>19))throw new t("filter.mark must be an integer between 0 and 19",{code:r.VALIDATION_INVALID_FORMAT,details:{fields:[{path:"filter.mark",message:"filter.mark must be an integer between 0 and 19",rule:"invalid_format"}]}});const a=(this.getClientOrThrow().getCacheManager()?.loadSessionList()??[]).filter(t=>null!==t.lastMessage&&((void 0===e?.isPinned||t.isPinned===e.isPinned)&&!(void 0!==e?.mark&&!C(t,e.mark)))).map(E);return this.getClientOrThrow().markConversationAccess(a.map(e=>({conversationId:e.conversationId,type:e.conversationType}))),a}setCurrentConversation(e){this.validateConversationLocator(e),this.getClientOrThrow().getCacheManager()?.setCurrentConversation({conversationId:e.conversationId,type:e.conversationType})}resetCurrentConversation(){this.getClientOrThrow().getCacheManager()?.resetCurrentConversation()}getCurrentConversation(){const e=this.getClientOrThrow().getCacheManager()?.getCurrentConversation()??null;return e?{conversationId:e.conversationId,conversationType:e.type}:null}refreshSessionList(e){return this.getClientOrThrow().refreshSessionList(e)}async deleteConversation(e){const t=this.getRestContextOrThrow(),r=await(async(e,t,r)=>{const a=oe(t),s=Z(r.conversationId,"params.conversationId"),i=ee(r.conversationType,"params.conversationType"),n=r.deleteRoamingMessages??!1;if("boolean"!=typeof n)throw Y("params.deleteRoamingMessages","params.deleteRoamingMessages must be a boolean");return await e.request(`/${a.orgName}/${a.appName}/user/${a.encodedUserId}/user_channel?resource=${a.encodedResource}`,{method:"DELETE",body:{channel:s,type:"groupChat"===i?"groupChat":te(i),delete_roam:n},operation:"deleteConversation"}),{conversationId:s,conversationType:i,operation:"delete"}})(this.getRestClient(t),t,e),a=this.getClientOrThrow(),s=a.getCacheManager()?.deleteConversation({conversationId:r.conversationId,type:r.conversationType});return s?.changed&&a.emitConversationListUpdate("local"),r}async setConversationPinned(e){const t=this.getRestContextOrThrow(),r=await(async(e,t,r)=>{const a=oe(t),s=Z(r.conversationId,"params.conversationId"),i=ee(r.conversationType,"params.conversationType");if("boolean"!=typeof r.pinned)throw Y("params.pinned","params.pinned must be a boolean");const n="groupChat"===i?"groupChat":te(i),o=r.pinned?await e.post(`/${a.orgName}/${a.appName}/sdk/user/${a.encodedUserId}/user_channel/top?resource=${a.encodedResource}`,{type:n,to:s},{operation:"setConversationPinned"}):await e.delete(`/${a.orgName}/${a.appName}/sdk/user/${a.encodedUserId}/user_channel/top?type=${encodeURIComponent(n)}&to=${encodeURIComponent(s)}&resource=${a.encodedResource}`,{operation:"setConversationPinned"}),d=T(o)&&T(o.data)?o.data:{};return{conversationId:s,conversationType:i,operation:"setPinned",isPinned:"boolean"==typeof d.is_top?d.is_top:r.pinned,pinnedTime:"number"==typeof d.update_top_status_time?d.update_top_status_time:r.pinned?Date.now():0}})(this.getRestClient(t),t,e),a=this.getClientOrThrow().getCacheManager(),s=a?.applyConversationPinnedMutation({conversationId:r.conversationId,type:r.conversationType,isPinned:r.isPinned??e.pinned,pinnedTime:r.pinnedTime});return s?.changed&&this.getClientOrThrow().emitConversationListUpdate("local"),r}async addConversationMark(e){const t=this.getRestContextOrThrow(),r=await(async(e,t,r)=>de(e,t,r,!0))(this.getRestClient(t),t,e),a=this.getClientOrThrow().getCacheManager(),s=a?.applyConversationMarkMutation({conversations:[...r.succeeded.map(e=>({...e,applied:!0})),...r.failed.map(e=>({...e,applied:!1}))],mark:r.mark,operation:r.operation});return s?.changed&&this.getClientOrThrow().emitConversationListUpdate("local"),r}async removeConversationMark(e){const t=this.getRestContextOrThrow(),r=await(async(e,t,r)=>de(e,t,r,!1))(this.getRestClient(t),t,e),a=this.getClientOrThrow().getCacheManager(),s=a?.applyConversationMarkMutation({conversations:[...r.succeeded.map(e=>({...e,applied:!0})),...r.failed.map(e=>({...e,applied:!1}))],mark:r.mark,operation:r.operation});return s?.changed&&this.getClientOrThrow().emitConversationListUpdate("local"),r}async clearAllMessagesAndConversations(){const e=this.getRestContextOrThrow();await(async(e,t)=>{const r=oe(t);await e.post(`/${r.orgName}/${r.appName}/sdk/message/roaming/user/${r.encodedUserId}/delete/all?resource=${r.encodedResource}`,void 0,{operation:"clearAllMessagesAndConversations"})})(this.getRestClient(e),e);const t=this.getClientOrThrow(),r=t.getCacheManager()?.clearConversations();r?.changed&&t.emitConversationListUpdate("local")}async pinMessage(e){const t=this.getRestContextOrThrow();await this.executeRestOperation(()=>(async(e,t,r)=>le(e,t,r,!0))(this.getRestClient(t),t,e))}async unpinMessage(e){const t=this.getRestContextOrThrow();await this.executeRestOperation(()=>(async(e,t,r)=>le(e,t,r,!1))(this.getRestClient(t),t,e))}async getPinnedMessageList(e){const t=this.getRestContextOrThrow();return this.executeRestOperation(()=>(async(e,t,r)=>{const a=oe(t),s=Z(r.conversationId,"params.conversationId"),i=ee(r.conversationType,"params.conversationType"),n=await e.get(`/${a.orgName}/${a.appName}/sdk/user/${a.encodedUserId}/user_channel/pin?to=${encodeURIComponent(s)}&type=${encodeURIComponent(te(i))}&limit=${String(20)}`,{operation:"getPinnedMessageList"}),o=T(n)&&T(n.data)?n.data:{};return{items:(Array.isArray(o.msg_infos)?o.msg_infos:[]).reduce((e,r)=>{if(!T(r))return e;const a="string"==typeof r.pin_msg_id?r.pin_msg_id:T(r.message)&&"string"==typeof r.message.id?r.message.id:"";if(!a)return e;const n="number"==typeof r.pin_opt_at?r.pin_opt_at:0,o=ie(r.message,{messageId:a,conversationId:s,conversationType:i,currentUserId:t.userId,timestamp:n});return o?(e.push({messageId:a,conversationId:s,conversationType:i,operatorId:"string"==typeof r.pin_operator?r.pin_operator:void 0,pinnedAt:n,message:o}),e):e},[])}})(this.getRestClient(t),t,e))}addEventHandler(e,t){this.getEventContextOrThrow().addEventHandler(e,t)}removeEventHandler(e){this.getEventContextOrThrow().removeEventHandler(e)}async clearConversationUnreadMessageCount(e){this.validateUnreadConversationLocator(e);const t=this.getClientOrThrow(),r=t.getCacheManager()?.clearConversationUnreadMessageCount({conversationId:e.conversationId,type:e.conversationType});r?.changed&&t.emitConversationListUpdate("local");try{await this.requireConnectedClient().sendMessageAction({kind:"clearConversationUnreadMessageCount",conversationId:e.conversationId,conversationType:e.conversationType,sendToPeer:!1},(e,t)=>this.buildActionError(e,t))}catch(a){if(!r?.matched)throw a;p.warn("Conversation unread remote sync failed after local clear",{conversationId:e.conversationId,conversationType:e.conversationType,error:a})}}async sendMessageReadReceipts(e){this.validateSendMessageReadReceiptsParams(e),await this.requireConnectedClient().sendMessageAction({kind:"sendMessageReadReceipts",conversationId:e.conversationId,conversationType:e.conversationType,messageIds:e.messageIds},(e,t)=>this.buildActionError(e,t))}async clearAllConversationUnreadMessageCount(){await this.requireConnectedClient().sendMessageAction({kind:"clearAllConversationUnreadMessageCount",conversationId:this.getCurrentUserIdOrThrow(),conversationType:"singleChat",sendToPeer:!1,clearAllUnreadMessageCount:!0},(e,t)=>this.buildActionError(e,t));const e=this.getClientOrThrow(),t=e.getCacheManager()?.clearAllConversationUnreadMessageCount();t?.changed&&e.emitConversationListUpdate("local")}async recallMessage(e){this.validateConversationLocator(e),this.requireNonEmptyString(e.messageId,"messageId"),await this.requireConnectedClient().sendMessageAction({kind:"recall",conversationId:e.conversationId,conversationType:e.conversationType,messageId:e.messageId,ext:e.ext},(e,t)=>this.buildActionError(e,t));return{messageId:e.messageId,conversationId:e.conversationId,conversationType:e.conversationType,timestamp:Date.now()}}async modifyMessage(e){if(this.validateConversationLocator(e),this.requireNonEmptyString(e.messageId,"messageId"),"text"!==e.message.type&&"custom"!==e.message.type)throw new t("only text and custom messages are editable",{code:r.OPERATION_UNSUPPORTED});await this.requireConnectedClient().sendMessageAction({kind:"update",conversationId:e.conversationId,conversationType:e.conversationType,messageId:e.messageId,body:e.message.body,messageType:e.message.type,ext:e.message.ext},(e,t)=>this.buildActionError(e,t));const a=Date.now(),s=this.getCurrentUserIdOrThrow(),i={operatorId:s,operationCount:1,operationTime:a};return{msgServerId:e.messageId,msgLocalId:"",from:s,to:e.conversationId,sender:{userId:s},conversationId:e.conversationId,conversationType:e.conversationType,type:e.message.type,sendStatus:"sent",ext:e.message.ext,timestamp:a,body:e.message.body,direct:"SEND",modifiedInfo:i}}async getHistoryMessages(e){if(this.validateConversationLocator(e),void 0!==e.pageSize&&(!Number.isInteger(e.pageSize)||e.pageSize<=0))throw this.buildValidationError("pageSize must be a positive integer","pageSize");const t=this.getRestContextOrThrow();return this.executeRestOperation(()=>(async(e,t,r,a)=>{const s=`${xe(t)}/users/${t.userId}/messageroaming`,i=await e.post(s,{queue:"singleChat"===r.conversationType?`${r.conversationId}@easemob.com`:`${r.conversationId}@conference.easemob.com`,start:r.cursor&&r.cursor.length>0?r.cursor:-1,pull_number:r.pageSize??20,is_positive:"down"===r.searchDirection,msgType:(r.messageTypes??[]).join(","),end:-1,startTime:r.startTime??null,endTime:r.endTime??null,userIds:"singleChat"===r.conversationType?null:r.senderIds&&r.senderIds.length>0?r.senderIds:null},{operation:"getHistoryMessages"}),n=Fe(i,"getHistoryMessages"),o=Array.isArray(n.msgs)?n.msgs:[],d=[];for(const l of o){if(!$e(l)||"string"!=typeof l.msg||0===l.msg.length)continue;const e=a(De(l.msg));e&&d.push(e)}return{items:d,cursor:Pe(n.next_key),hasMore:!0!==n.is_last&&d.length>0}})(this.getRestClient(t),t,e,e=>this.getClientOrThrow().decodeServerMessageMeta(e)))}async searchMessages(e){const t=W.validateOrThrow(gt,e),r=this.getRestContextOrThrow();return this.executeRestOperation(()=>We(this.getRestClient(r),r,t))}async downloadAttachment(e){return this.getClientOrThrow().downloadAttachment(e.message)}async downloadAndParseCombineMessage(e){return this.getClientOrThrow().downloadAndParseCombinePayload(this.resolveDownloadCombineMessageParams(e))}async removeHistoryMessages(e){if(this.validateConversationLocator(e),!e.messageIds&&!e.beforeTimestamp)throw this.buildValidationError("messageIds or beforeTimestamp is required","removeHistoryMessages");if(e.messageIds&&0===e.messageIds.length)throw this.buildValidationError("messageIds cannot be empty","messageIds");if(void 0!==e.beforeTimestamp&&(!Number.isInteger(e.beforeTimestamp)||e.beforeTimestamp<=0))throw this.buildValidationError("beforeTimestamp must be a positive integer","beforeTimestamp");const t=this.getRestContextOrThrow();await this.executeRestOperation(()=>(async(e,t,r)=>{const a="singleChat"===r.conversationType?"userId":"groupId",s="singleChat"===r.conversationType?"chat":"group",i=encodeURIComponent(t.clientResource),n=r.messageIds?`${xe(t)}/sdk/message/roaming/${s}/user/${t.userId}?${a}=${encodeURIComponent(r.conversationId)}&msgIdList=${encodeURIComponent(r.messageIds.join(","))}&resource=${i}`:`${xe(t)}/sdk/message/roaming/${s}/user/${t.userId}/time?${a}=${encodeURIComponent(r.conversationId)}&delTime=${r.beforeTimestamp}&resource=${i}`;await e.delete(n,{operation:"removeHistoryMessages"})})(this.getRestClient(t),t,e))}async getGroupMessageReadUsers(e){if(this.requireNonEmptyString(e.groupId,"groupId"),this.requireNonEmptyString(e.messageId,"messageId"),void 0!==e.pageSize&&(!Number.isInteger(e.pageSize)||e.pageSize<=0))throw this.buildValidationError("pageSize must be a positive integer","pageSize");const t=this.getRestContextOrThrow(),r=await this.executeRestOperation(()=>(async(e,t,r)=>{const a=M();a.set("limit",String(r.pageSize??10)),r.cursor&&a.set("key",r.cursor);const s=`${xe(t)}/chatgroups/${encodeURIComponent(r.groupId)}/acks/${encodeURIComponent(r.messageId)}?${a.toString()}`,i=await e.get(s,{operation:"getGroupMessageReadUsers"}),n=Fe(i,"getGroupMessageReadUsers"),o=$e(n.group_ack)?n.group_ack:n,d=(Array.isArray(o.userlist)?o.userlist:[]).map(e=>$e(e)&&"string"==typeof e.username?{userId:e.username,user:qe(e.username),ackId:"string"==typeof e.meta_id?e.meta_id:void 0,timestamp:"number"==typeof e.timestamp?e.timestamp:void 0,ackContent:"string"==typeof e.ack_content?e.ack_content:void 0}:null).filter(e=>null!==e);return{groupId:r.groupId,messageId:"string"==typeof n.ackmid?n.ackmid:r.messageId,users:d,count:"number"==typeof o.total?o.total:d.length,cursor:Pe(o.next_key),hasMore:!0!==o.is_last&&d.length>0}})(this.getRestClient(t),t,e));return await this.hydrateGroupMessageReadUsers(e.groupId,r)}async getGroupMessageReadReceipts(e){this.requireNonEmptyString(e.groupId,"groupId");const t=this.validateMessageIdList(e.messageIds,"messageIds"),r=this.getRestContextOrThrow();return this.executeRestOperation(()=>(async(e,t,r)=>{const a=`${xe(t)}/chatgroups/${encodeURIComponent(r.groupId)}/acks/batch`,s=await e.post(a,{messageIds:r.messageIds},{operation:"getGroupMessageReadReceipts"});return Ge(s,"getGroupMessageReadReceipts").map(e=>$e(e)&&"string"==typeof e.ackmid&&"number"==typeof e.total?{messageId:e.ackmid,count:e.total}:null).filter(e=>null!==e)})(this.getRestClient(r),r,{groupId:e.groupId.trim(),messageIds:t}))}async addReaction(e){this.validateReactionParams(e);const t=this.getRestContextOrThrow();await this.executeRestOperation(()=>(async(e,t,r)=>{await e.post(`${xe(t)}/reaction/user/${t.userId}`,{msgId:r.messageId,message:r.reaction},{operation:"addReaction"})})(this.getRestClient(t),t,e))}async removeReaction(e){this.validateReactionParams(e);const t=this.getRestContextOrThrow();await this.executeRestOperation(()=>(async(e,t,r)=>{const a=`${xe(t)}/reaction/user/${t.userId}?msgId=${encodeURIComponent(r.messageId)}&message=${encodeURIComponent(r.reaction)}`;await e.delete(a,{operation:"removeReaction"})})(this.getRestClient(t),t,e))}async getReactionList(e){if(!e.messageId||Array.isArray(e.messageId)&&0===e.messageId.length)throw this.buildValidationError("messageId is required","messageId");"groupChat"===e.conversationType&&this.requireNonEmptyString(e.groupId??"","groupId");const t=this.getRestContextOrThrow();return this.executeRestOperation(()=>(async(e,t,r)=>{const a=M(),s="string"==typeof r.messageId?r.messageId:[...r.messageId].join(",");a.set("msgIdList",s),a.set("msgType","groupChat"===r.conversationType?"group":"chat"),r.groupId&&a.set("groupId",r.groupId);const i=await e.get(`${xe(t)}/reaction/user/${t.userId}?${a.toString()}`,{operation:"getReactionList"});return Ge(i,"getReactionList").map(e=>{if(!$e(e)||"string"!=typeof e.msgId)return null;const t=Array.isArray(e.reactionList)?e.reactionList:[];return{messageId:e.msgId,reactions:t.map(e=>$e(e)&&"string"==typeof e.reaction?{reaction:e.reaction,count:"number"==typeof e.count?e.count:0,isAddedBySelf:!0===e.state,userIds:Array.isArray(e.userList)?e.userList.filter(e=>"string"==typeof e):[]}:null).filter(e=>null!==e)}}).filter(e=>null!==e)})(this.getRestClient(t),t,e))}async getReactionDetail(e){if(this.validateReactionParams(e),void 0!==e.pageSize&&(!Number.isInteger(e.pageSize)||e.pageSize<=0))throw this.buildValidationError("pageSize must be a positive integer","pageSize");const t=this.getRestContextOrThrow();return this.executeRestOperation(()=>(async(e,t,r)=>{const a=M();a.set("msgId",r.messageId),a.set("message",r.reaction),a.set("cursor",r.cursor??""),a.set("limit",String(r.pageSize??20));const s=await e.get(`${xe(t)}/reaction/user/${t.userId}/detail?${a.toString()}`,{operation:"getReactionDetail"}),i=Fe(s,"getReactionDetail"),n=Array.isArray(i.reactionUserList)?i.reactionUserList.map(e=>$e(e)&&"string"==typeof e.userId?{userId:e.userId,user:qe(e.userId),createdAt:"string"==typeof e.createdAt?e.createdAt:void 0}:null).filter(e=>null!==e):[],o=Array.isArray(i.userList)?i.userList.filter(e=>"string"==typeof e).map(e=>({userId:e,user:qe(e)})):[],d=n.length>0?n:o;return{reaction:"string"==typeof i.reaction?i.reaction:r.reaction,count:"number"==typeof i.count?i.count:d.length,isAddedBySelf:!0===i.state,reactionUsers:d,cursor:Pe(i.cursor),hasMore:Pe(i.cursor).length>0,createdAt:"string"==typeof i.createdAt?i.createdAt:void 0}})(this.getRestClient(t),t,e))}async getSupportedTranslationLanguages(){const e=this.getRestContextOrThrow();return this.executeRestOperation(()=>(async(e,t)=>{const r=await ke(()=>e.get(`${xe(t)}/users/${t.userId}/translate/support/language`,{operation:"getSupportedTranslationLanguages"}));return Be(r,"getSupportedTranslationLanguages").map(e=>$e(e)&&"string"==typeof e.code?{code:e.code,name:"string"==typeof e.name?e.name:e.code,nativeName:"string"==typeof e.nativeName?e.nativeName:e.code}:null).filter(e=>null!==e)})(this.getRestClient(e),e))}async translateMessage(e){if("text"!==e.message.type)throw new t("only text messages can be translated",{code:r.TRANSLATE_PARAM_INVALID,details:{fields:[{path:"message.type",message:"must be text",rule:"message_type"}]}});const a=e.message.body.content.trim();if(0===a.length)throw new t("message text is required",{code:r.TRANSLATE_PARAM_INVALID,details:{fields:[{path:"message.body.content",message:"is required",rule:"required"}]}});if(!Array.isArray(e.targetLanguages)||0===e.targetLanguages.length)throw new t("targetLanguages is required",{code:r.TRANSLATE_PARAM_INVALID,details:{fields:[{path:"targetLanguages",message:"is required",rule:"required"}]}});if(e.targetLanguages.some(e=>"string"!=typeof e||0===e.trim().length))throw new t("targetLanguages contains invalid language code",{code:r.TRANSLATE_PARAM_INVALID,details:{fields:[{path:"targetLanguages",message:"contains invalid language code",rule:"language_code"}]}});const s=this.getRestContextOrThrow();return this.executeRestOperation(()=>(async(e,t,r)=>{const a=await ke(()=>e.post(`${xe(t)}/users/${t.userId}/translate`,{text:r.text,to:[...r.targetLanguages]},{operation:"translateMessage"})),s=Be(a,"translateMessage"),n=$e(s[0])?s[0]:null;if(!n)throw i({apiName:"translateMessage",message:"translateMessage response data is invalid",mapped:!1});const o=Array.isArray(n.translations)?n.translations:[],d=$e(n.detectedLanguage)?n.detectedLanguage:void 0;return{detectedLanguage:d&&"string"==typeof d.language?{language:d.language,score:"number"==typeof d.score?d.score:Number(d.score??0)}:void 0,translations:o.map(e=>$e(e)&&"string"==typeof e.text&&"string"==typeof e.to?{text:e.text,to:e.to}:null).filter(e=>null!==e)}})(this.getRestClient(s),s,{text:a,targetLanguages:e.targetLanguages}))}async voiceMessageToText(e,t){ot(e,t);const r=this.getRestContextOrThrow();return this.executeRestOperation(()=>lt(this.getRestClient(r),r,e,t))}async voiceFileToText(e,t){dt(e,t);const a=this.getRestContextOrThrow(),s=this.getClientOrThrow().getUploadAdapter();if(!s)throw new g("Upload capability is missing for current platform",r.UPLOAD_REQUIRED_FIELD_MISSING);return this.executeRestOperation(()=>(async(e,t,a,s)=>{const i=dt(a,s),n=d({file:i,fallbackName:Je(i)?"voice.amr":void 0,fallbackMimeType:"audio/amr"});try{const a=await e.upload({url:`${t.restBaseUrl}${Ye(t)}/speech/recognitions`,headers:{Authorization:`Bearer ${t.token}`,Accept:"application/json",[l]:c()},source:n.source,fields:{username:t.userId,...s?.format?{format:s.format}:{},...void 0!==s?.sampleRate?{sampleRate:String(s.sampleRate)}:{},...void 0!==s?.bitsPerSample?{bitsPerSample:String(s.bitsPerSample)}:{},...void 0!==s?.channels?{channels:String(s.channels)}:{}}});let i=a.body;try{i=JSON.parse(a.body)}catch{i=a.body}if(a.status<200||a.status>=300)throw new g("Voice-to-text failed",r.VOICE_TO_TEXT_FAILED,{details:{httpStatus:a.status,rawResponse:i}});return{text:rt(i,"voiceFileToText")}}catch(o){if(o instanceof g)throw nt(o);throw nt(L(o))}})(s,a,e,t))}validateConversationLocator(e){if(this.requireNonEmptyString(e.conversationId,"conversationId"),"singleChat"!==e.conversationType&&"groupChat"!==e.conversationType&&"chatRoom"!==e.conversationType)throw this.buildValidationError("conversationType is invalid","conversationType")}validateUnreadConversationLocator(e){if(this.requireNonEmptyString(e.conversationId,"conversationId"),"singleChat"!==e.conversationType&&"groupChat"!==e.conversationType)throw this.buildValidationError("conversationType must be singleChat or groupChat","conversationType")}validateSendMessageReadReceiptsParams(e){if(this.requireNonEmptyString(e.conversationId,"conversationId"),"singleChat"!==e.conversationType&&"groupChat"!==e.conversationType)throw this.buildValidationError("conversationType is invalid","conversationType");if(e.messageIds.length>50)throw this.buildValidationError("messageIds cannot contain more than 50 items","messageIds");return this.validateMessageIdList(e.messageIds,"messageIds")}validateMessageIdList(e,t){if(!Array.isArray(e)||0===e.length)throw this.buildValidationError(`${t} cannot be empty`,t);return e.map((e,r)=>{if("string"!=typeof e||0===e.trim().length)throw this.buildValidationError(`${t}.${r} is invalid`,`${t}.${r}`);return e.trim()})}resolveDownloadCombineMessageParams(e){if("message"in e){if("combine"!==e.message.type)throw new t("message must be a combine message",{code:r.VALIDATION_INVALID_FORMAT});const a=e.message.body;return{url:a.url??"",secret:a.secret,timeoutMs:e.timeoutMs,maxItems:e.maxItems}}return{url:e.url,secret:e.secret,timeoutMs:e.timeoutMs,maxItems:e.maxItems}}validateReactionParams(e){this.requireNonEmptyString(e.messageId,"messageId"),this.requireNonEmptyString(e.reaction,"reaction")}buildActionError(e,a){return e===r.AUTH_NOT_LOGIN||e===r.AUTH_UNAUTHORIZED?new u(a??"authentication failed",{code:e}):e===r.CONNECTION_WEBSOCKET_ERROR||e===r.CONNECTION_TIMEOUT?new h(a??"connection unavailable",{code:e}):107===e||110===e||205===e||500===e||e===r.VALIDATION_REQUIRED||e===r.VALIDATION_INVALID_FORMAT?new t(a??"invalid parameter",{code:e}):e===r.MESSAGE_RECALL_TIME_LIMIT?new g(a??"message recall time limit reached",e):e===r.MESSAGE_EDIT_FAILED?new g(a??"message update failed",e):e===r.OPERATION_UNSUPPORTED?new t(a??"operation unsupported",{code:e}):new g(a??"message action failed",e)}requireNonEmptyString(e,t){if("string"!=typeof e||0===e.trim().length)throw this.buildValidationError(`${t} is required`,t)}buildValidationError(e,a){return new t(e,{code:r.VALIDATION_INVALID_FORMAT,details:{fields:[{path:a,message:e,rule:"required"}]}})}getEventContextOrThrow(){if(!this.eventContext)throw new t("ChatManager is not bound to event context",{code:r.VALIDATION_REQUIRED});return this.eventContext}getClientOrThrow(){if(!this.client)throw new t("ChatManager is not bound to client",{code:r.VALIDATION_REQUIRED});return this.client}getRestContextOrThrow(){return this.getClientOrThrow().getRestContext()}getRestClient(e){return this.restClient&&this.restBaseUrl===e.restBaseUrl&&this.restToken===e.token||(this.restClient=new y(e.restBaseUrl,{errorMap:ut,requestAdapter:this.getClientOrThrow().getRequestAdapter?.(),includeRequestId:!0}),this.restClient.setAuthToken(e.token),this.restBaseUrl=e.restBaseUrl,this.restToken=e.token),this.restClient}requireConnectedClient(){const e=this.getClientOrThrow();if(e.getConnectionState()!==A.CONNECTED)throw new h("client is not connected",{code:r.CONNECTION_WEBSOCKET_ERROR});return e}getCurrentUserIdOrThrow(){const e=this.getClientOrThrow().getCurrentUserId();if(!e)throw new u("user is not logged in",{code:r.AUTH_NOT_LOGIN});return e}buildMessageSenderOrThrow(){const e=this.getClientOrThrow(),t=this.getCurrentUserIdOrThrow(),r=e.getCacheManager()?.getUserInfoSummaries([t],!1)[0];return{userId:t,nickname:r?.nickname,avatarUrl:r?.avatarUrl}}async hydrateGroupMessageReadUsers(e,t){const r=this.getClientOrThrow();if(!r.isUserInfoSyncEnabled()||0===t.users.length)return t;const a=r.getCacheManager(),s=await w({groupId:e,users:t.users.map(e=>e.user),includeNameCard:!0,cacheManager:a,fetchUserInfos:async({userIds:e})=>{const t=this.getUserInfoReadCapability(r);return t?await t.getUserInfoByUserId({userIds:e}):[]},hydrateGroupNamecards:async(e,t)=>{const a=this.getGroupNamecardHydrationCapability(r);a&&await a.hydrateMessageProfileGroupNamecards(e,t.map(e=>({userId:e})))}});return this.dispatchFetchedUserInfoUpdates(r,s.fetchedUserInfos),{...t,users:t.users.map(e=>{const t=s.usersById.get(e.userId)??e.user;return{...e,user:t}})}}getUserInfoReadCapability(e){const t=e.getManagerByCapability("userInfo:read");return t&&"function"==typeof t.getUserInfoByUserId?t:null}getGroupNamecardHydrationCapability(e){const t=e.getManagerByCapability("group:namecard");return t&&"function"==typeof t.hydrateMessageProfileGroupNamecards?t:null}dispatchFetchedUserInfoUpdates(e,t){if(0===t.length)return;const r=e.getCurrentUserId(),a=t.find(e=>e.userId===r),s=t.filter(e=>e.userId!==r);a&&e.dispatchOwnInfoUpdated(a),e.dispatchUserInfoUpdated(s),t.length>0&&e.refreshConversationDisplayFromUserInfos(t.map(e=>({userId:e.userId})),"profile")}async executeRestOperation(e){try{return await e()}catch(t){throw this.mapRestError(t)}}mapRestError(e){return e instanceof t||e instanceof u||e instanceof h||e instanceof v?e:e instanceof I?new v(e.message,{code:e.code,details:e.details}):e instanceof n||e instanceof g?e:new g(String(e),r.UNKNOWN)}};mt.key="chatManager";let pt=mt;export{pt as C,S as I,F as M,W as V,A as a,U as b,x as c,K as d,Q as e,P as f,$ as g,V as h,k as i,H as j,q as k,X as v};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e={VALIDATION_REQUIRED:110,VALIDATION_INVALID_FORMAT:110,VALIDATION_UNKNOWN:110,AUTH_ALREADY_LOGIN:200,AUTH_NOT_LOGIN:201,AUTH_UNAUTHORIZED:202,AUTH_FORBIDDEN:210,AUTH_TOKEN_EXPIRED:108,AUTH_BIND_ANOTHER_DEVICE:213,AUTH_LOGIN_TOO_MANY_DEVICES:214,AUTH_USER_MUTED:215,CONNECTION_TIMEOUT:301,CONNECTION_LOGIN_TIMEOUT:301,CONNECTION_WEBSOCKET_ERROR:300,CONNECTION_NOT_CREATED:1,CONNECTION_CLOSED_BEFORE_READY:300,CONNECTION_CANCELLED:1,CONNECTION_PROVISION_TIMEOUT:301,CONNECTION_PROVISION_REJECTED:202,CONNECTION_PROVISION_CLOSED:300,CONNECTION_DNSLIST_FAILED:304,STORAGE_OPERATION_FAILED:3,MESSAGE_NOT_CONNECTED:300,MESSAGE_ACK_TIMEOUT:301,MESSAGE_SEND_FAILED:303,MESSAGE_SENDER_DESTROYED:1,MESSAGE_ENCODE_FAILED:500,MESSAGE_DECODE_FAILED:500,MESSAGE_ACK_MISSING:301,MESSAGE_BLOCKED_BY_RECIPIENT:222,OPERATION_UNSUPPORTED:111,SERVER_BUSY:302,ATTACHMENT_NOT_FOUND:400,ATTACHMENT_INVALID:401,ATTACHMENT_EXPIRED:407,MESSAGE_INCLUDE_ILLEGAL_CONTENT:501,MESSAGE_SEND_TRAFFIC_LIMIT:502,MESSAGE_RECALL_TIME_LIMIT:504,SERVICE_NOT_ENABLED:505,MESSAGE_EXPIRED:506,MESSAGE_ILLEGAL_WHITELIST:507,MESSAGE_EXTERNAL_LOGIC_BLOCKED:508,MESSAGE_CURRENT_LIMITING:509,MESSAGE_SIZE_LIMIT:510,MESSAGE_EDIT_FAILED:511,INVALID_CONVERSATION:107,USER_LOGIN_ANOTHER_DEVICE:206,USER_REMOVED:207,USER_KICKED_BY_CHANGE_PASSWORD:216,USER_KICKED_BY_OTHER_DEVICE:217,USER_ALREADY_LOGIN_ANOTHER:218,USER_MUTED_BY_ADMIN:219,USER_DEVICE_CHANGED:220,USER_NOT_ON_ROSTER:221,SERVER_SERVING_DISABLED:305,FILE_DOWNLOAD_FAILED:403,FILE_TOO_LARGE:405,FILE_CONTENT_IMPROPER:406,THIRD_MODERATION_FAILED:1200,THIRD_DEFAULT_FAILED:1299,STREAM_SEND_NOT_SUPPORTED:303,STREAM_CHUNK_INVALID:500,STREAM_TIMEOUT_BY_SERVER:500,STREAM_STATE_CONFLICT:500,COMBINE_INVALID_INPUT:110,COMBINE_LEVEL_EXCEEDED:4,COMBINE_ITEM_LIMIT_EXCEEDED:4,COMBINE_ENCODE_FAILED:500,COMBINE_UPLOAD_FAILED:402,COMBINE_DOWNLOAD_FAILED:2,COMBINE_PARSE_FAILED:500,REST_NETWORK_ERROR:2,REST_TIMEOUT:301,REST_HTTP_ERROR:303,REST_BUSINESS_UNKNOWN:303,PUSH_TOKEN_UPLOAD_FAILED:1500,PUSH_SILENT_MODE_OPERATION_FAILED:1501,PUSH_LANGUAGE_OPERATION_FAILED:1502,USER_INFO_SUBSCRIPTION_LIMIT_EXCEEDED:1600,USER_INFO_SUBSCRIPTION_TARGET_LIMIT_EXCEEDED:1601,USERINFO_USERCOUNT_EXCEED:900,USERINFO_DATALENGTH_EXCEED:901,CONTACT_ADD_USER_NOT_FOUND:204,CONTACT_ADD_ALREADY_FRIEND:1e3,CONTACT_ADD_BLOCKED_BY_USER:210,CONTACT_SET_REMARK_NOT_FRIEND:223,CONTACT_REACH_LIMIT:1001,CONTACT_REACH_LIMIT_PEER:1002,CONTACT_BLOCKLIST_USER_NOT_FOUND:204,GROUP_INVALID_ID:600,GROUP_ALREADY_JOINED:601,GROUP_NOT_JOINED:602,GROUP_PERMISSION_DENIED:603,GROUP_MEMBERS_FULL:604,GROUP_SHARED_FILE_INVALID_ID:605,GROUP_NOT_EXIST:606,GROUP_DISABLED:607,GROUP_NAME_VIOLATION:608,GROUP_MEMBER_ATTRIBUTES_REACH_LIMIT:609,GROUP_MEMBER_ATTRIBUTES_UPDATE_FAILED:610,GROUP_MEMBER_ATTRIBUTES_KEY_REACH_LIMIT:611,GROUP_MEMBER_ATTRIBUTES_VALUE_REACH_LIMIT:612,GROUP_USER_IN_BLOCKLIST:613,CHATROOM_INVALID_ID:700,CHATROOM_NOT_JOINED:702,CHATROOM_PERMISSION_DENIED:703,CHATROOM_MEMBERS_FULL:704,CHATROOM_NOT_EXIST:705,CHATROOM_OWNER_NOT_ALLOW_LEAVE:706,CHATROOM_USER_IN_BLOCKLIST:707,CONTACT_SYNC_METADATA_FAILED:1700,CONTACT_SYNC_SOCKET_FAILED:1701,CONTACT_SYNC_CURSOR_INVALID:1702,CONTACT_SYNC_PROTO_DECODE_FAILED:1703,CONTACT_SYNC_CANCELLED:1704,SESSION_LIST_SOCKET_FAILED:300,SESSION_LIST_PROTO_DECODE_FAILED:500,SESSION_LIST_REQUEST_INVALID:110,SESSION_LIST_FETCH_FAILED:303,SESSION_LIST_SERVICE_DISABLED:305,SESSION_LIST_CANCELLED:1,PRESENCE_PARAM_LENGTH_EXCEED:1100,PRESENCE_CANNOT_SUBSCRIBE_YOURSELF:1101,TRANSLATE_PARAM_INVALID:1110,TRANSLATE_SERVICE_NOT_ENABLED:1111,TRANSLATE_USAGE_LIMIT:1112,TRANSLATE_FAILED:1113,VOICE_TO_TEXT_FILE_INVALID:407,VOICE_TO_TEXT_FILE_DURATION_TOO_LONG:408,VOICE_TO_TEXT_FAILED:409,VOICE_TO_TEXT_FILE_NOT_FOUND:410,VOICE_TO_TEXT_FILE_TOO_LARGE:411,REACTION_REACH_LIMIT:1300,REACTION_ALREADY_OPERATED:1301,REACTION_OPERATION_ILLEGAL:1302,UPLOAD_REQUIRED_FIELD_MISSING:110,UPLOAD_INVALID_APPKEY:100,UPLOAD_SIZE_EXCEEDED:405,UPLOAD_REQUEST_FAILED:402,UPLOAD_TIMEOUT:301,UPLOAD_ABORTED:1,SERVICE_LIMIT_EXCEEDED:4,UNKNOWN:1},t="[REDACTED]",o=e=>{if(!e)return"";const o=e.includes("?"),r=e.includes("#");try{return((e,o,r)=>(e.username&&(e.username=t),e.password&&(e.password=t),e.search=o?`?${t}`:"",e.hash=r?`#${t}`:"",e.toString()))(new URL(e),o,r)}catch{const o=[e.indexOf("?"),e.indexOf("#")].filter(e=>e>=0).sort((e,t)=>e-t)[0];return void 0===o?"[invalid-url]":`${e.slice(0,o)}?${t}`}},r=e=>Object.fromEntries(Object.entries(e).map(([e,t])=>"url"===e.toLowerCase()&&"string"==typeof t?[e,o(t)]:[e,t]));class s extends Error{constructor(t,o=e.UNKNOWN,i){super(t),this.name="SDKError",this.code=o,this.details=i?.details?r(i.details):void 0,Error.captureStackTrace&&Error.captureStackTrace(this,s)}toJSON(){return{name:this.name,message:this.message,code:this.code,details:this.details,stack:this.stack}}}class i extends s{constructor(t,o){super(t,o?.code??e.REST_NETWORK_ERROR,o),this.name="NetworkError"}}class a extends s{constructor(t,o){super(t,o?.code??e.CONNECTION_WEBSOCKET_ERROR,o),this.name="ConnectionError"}}class n extends s{constructor(t,o){super(t,o?.code??e.AUTH_UNAUTHORIZED,o),this.name="AuthenticationError"}}class p extends s{constructor(t,o){super(t,o?.code??e.VALIDATION_UNKNOWN,o),this.name="ValidationError"}}class E extends s{constructor(t,o){super(t,o?.code??e.MESSAGE_SEND_FAILED,o),this.name="MessageSendError"}}class c extends s{constructor(t,o){super(t,o?.code??e.MESSAGE_DECODE_FAILED,o),this.name="MessageReceiveError"}}class T extends s{constructor(t,o){super(t,o?.code??e.STORAGE_OPERATION_FAILED,o),this.name="StorageError"}}class u extends s{constructor(t,o){super(t,o?.code??e.REST_NETWORK_ERROR,o),this.name="RestTransportError"}}class d extends s{constructor(t,o){super(t,o?.code??e.REST_BUSINESS_UNKNOWN,o),this.name="RestBusinessError"}}class l extends s{constructor(t,o){super(t,o?.code??e.UPLOAD_REQUEST_FAILED,o),this.name="UploadError"}}function O(e){if(e instanceof s)return!0;if("object"!=typeof e||null===e)return!1;const t=e;return"string"==typeof t.name&&"string"==typeof t.message&&"number"==typeof t.code&&"function"==typeof t.toJSON}const _=15e3,R=1e4,m=15e3,h=3e5,N=6e4,I=3e5,A=1e4,f=1e4,S=3e4,y=5e3,C=12e4,M=3e4,g=6e4,D=1e3,U=6e4,L=2,b=5e3,P=1e4,G=1e3,H=5e3,w=2,v=0,F=2e4,B=7e3,k=20,K=3,q=1,V=7e3,$=1e3,x=50,j=5,z=5e3,W=2,Y=[1e3,2e3],X=2500,J=1,Q=500,Z=6e3,ee={jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",webp:"image/webp",gif:"image/gif",bmp:"image/bmp",heic:"image/heic",heif:"image/heif",svg:"image/svg+xml",mp4:"video/mp4",mov:"video/quicktime",mp3:"audio/mpeg",m4a:"audio/mp4",wav:"audio/wav",aac:"audio/aac",amr:"audio/amr",pdf:"application/pdf",txt:"text/plain",json:"application/json"},te=e=>"undefined"!=typeof Blob&&e instanceof Blob,oe=e=>{const t=e.replace(/[?#].*$/,"").split(/[\\/]/).filter(Boolean),o=t.length>0?t[t.length-1]:void 0;if(o)return o},re=e=>{if(!e)return;const t=e.lastIndexOf(".");if(t<0||t===e.length-1)return;const o=e.slice(t+1).toLowerCase();return ee[o]},se=(e,t)=>{for(const o of t){const t=e[o];if("string"==typeof t&&t.length>0)return t}},ie=e=>{const t=e.file,o=e.sourceMeta,r=t.name||(o?se(o,["name","fileName","filename"]):void 0),s=e.file.type||(o?se(o,["type","mimeType","filetype"]):void 0),i=e.file.size||(o?((e,t)=>{for(const o of t){const t=e[o];if("number"==typeof t&&Number.isFinite(t))return t}})(o,["size","fileSize","fileLength"]):void 0),a=ae({fileName:r,fileType:s,fileSize:i,fallbackName:e.fallbackName,fallbackMimeType:e.fallbackMimeType,fallbackSize:e.fallbackSize});return{source:{sourceType:"web-file",file:e.file,name:a.fileName,mimeType:a.fileType,size:a.fileSize},fileName:a.fileName,fileType:a.fileType,fileSize:a.fileSize,webFile:e.file}},ae=e=>({fileName:e.fileName??e.fallbackName??"file",fileType:e.fileType??e.fallbackMimeType??"application/octet-stream",fileSize:e.fileSize??e.fallbackSize??0}),ne=e=>{const{file:t,fallbackName:o,fallbackMimeType:r,fallbackSize:s}=e,i=(e=>{if(te(e))return e;if("object"!=typeof e||null===e)return;const t=e;for(const o of["file","originFileObj","raw","blob"]){const e=t[o];if(te(e))return e}})(t);if(i)return ie({file:i,fallbackName:o,fallbackMimeType:r,fallbackSize:s,sourceMeta:"object"==typeof t&&null!==t?t:void 0});if((e=>"object"==typeof e&&null!==e&&"path"in e)(t)){const e=oe(t.path),i=ae({fileName:t.name??e,fileType:t.type??re(t.name??e),fileSize:t.size,fallbackName:o,fallbackMimeType:r,fallbackSize:s});return{source:{sourceType:"miniapp-path",path:t.path,name:i.fileName,mimeType:i.fileType,size:i.fileSize},fileName:i.fileName,fileType:i.fileType,fileSize:i.fileSize}}if((e=>"object"==typeof e&&null!==e&&"uri"in e)(t)){const e=oe(t.uri),i=ae({fileName:t.name??e,fileType:t.type??re(t.name??e),fileSize:t.size,fallbackName:o,fallbackMimeType:r,fallbackSize:s});return{source:{sourceType:"rn-uri",uri:t.uri,name:i.fileName,mimeType:i.fileType,size:i.fileSize},fileName:i.fileName,fileType:i.fileType,fileSize:i.fileSize}}const a=ae({fallbackName:o,fallbackMimeType:r,fallbackSize:s});return{source:{sourceType:"web-file",name:a.fileName,mimeType:a.fileType,size:a.fileSize},fileName:a.fileName,fileType:a.fileType,fileSize:a.fileSize}},pe=5242880,Ee=5242880,ce=4,Te="CHAT",ue="GROUP",de="ROOM",le="original",Oe="large",_e=e=>/^https?:\/\//i.test(e),Re=(e,t)=>!!t||(!e||!_e(e)),me=t=>{const o=t.split("#");if(2!==o.length||!o[0]||!o[1])throw new l("Invalid appKey for upload",{code:e.UPLOAD_INVALID_APPKEY,details:{appKey:t}});return{orgName:o[0],appName:o[1]}},he=e=>"singleChat"===e?Te:"groupChat"===e?ue:de,Ne=(e,t)=>Ae(e,{size:t}),Ie=e=>{try{return decodeURIComponent(e)}catch{return e}},Ae=(e,t)=>{const[o="",r]=e.split("#",2),[s,i=""]=o.split("?",2),a=i.split("&").filter(Boolean);return Object.entries(t).forEach(([e,t])=>{const o=encodeURIComponent(e),r=a.filter(t=>{const[r=""]=t.split("=",2);return r!==o&&Ie(r)!==e});a.length=0,a.push(...r),void 0!==t&&a.push(`${o}=${encodeURIComponent(String(t))}`)}),`${s}${a.length>0?`?${a.join("&")}`:""}${r?`#${r}`:""}`},fe=(e,t)=>{if(!e)return"";const o={};return e.includes("em-redirect")||(o["em-redirect"]="true"),t&&!e.includes("share-secret=")&&(o["share-secret"]=t),0===Object.keys(o).length?e:Ae(e,o)},Se=e=>e.isGif?{resolvedImageType:le,reason:"gif-force-origin"}:e.isOriginalImage?{resolvedImageType:le,reason:"explicit-original"}:{resolvedImageType:Oe,reason:"default-large"},ye=e=>{const t=(o=e.messageType,r=e.imageType,"image"!==o?"attachment":r===le?"image-origin":"image-big");var o,r;const s=(e=>"image-origin"===e?204800:1048576)(t),i=e.fileSize>s;return{shouldPrecheck:i,thresholdType:t,thresholdBytes:s,actualBytes:e.fileSize,reason:i?"threshold-exceeded":"below-threshold"}},Ce=t=>{const o=t.entities?.[0],r=!0===o?.exists,s="string"==typeof o?.uuid&&o.uuid.length>0?o.uuid:void 0,i=o,a=i?.["exists-type"]??i?.existsType,n="origin"===a?le:a===Oe||a===le?a:void 0,p="string"==typeof o?.["share-secret"]?o["share-secret"]:void 0;if(r&&!s)throw new l("Upload precheck response missing uuid",{code:e.UPLOAD_REQUEST_FAILED,details:{response:t}});return{uuid:s,exists:r,existsType:n,shareSecret:p,hit:(E={exists:r,uuid:s},E.exists&&"string"==typeof E.uuid&&E.uuid.length>0)};var E},Me=(e,t)=>{if(!e)return{};if(!1===t?.deriveVariants)return{originalImageUrl:e};const o=(e=>{const[t="",o]=e.split("#",2),[r,s=""]=t.split("?",2),i=s.split("&").filter(Boolean).filter(e=>{const[t="",o=""]=e.split("=",2),r=Ie(t),s=Ie(o);return"size"!==r||!["big","large","thumbnail","small"].includes(s)}).join("&");return`${r}${i?`?${i}`:""}${o?`#${o}`:""}`})(e);return{originalImageUrl:o,bigImageUrl:Ne(o,"large"),thumbnailUrl:Ne(o,"small")}},ge=e=>e===le?"origin":"large",De=e=>e===le?1:2,Ue=e=>2===e?Oe:le,Le=t=>{const o=t.response.entities?.[0];if(!o?.uuid)throw new l("Upload response missing uuid",{code:e.UPLOAD_REQUEST_FAILED,details:{response:t.response}});const r=o["share-secret"],s=o["file-metadata"]??{},i="number"==typeof s["content-length"]?s["content-length"]:t.fallbackSize,a="string"==typeof s["content-type"]?s["content-type"]:t.fileType,n=`${t.restBaseUrl}/${t.orgName}/${t.appName}/chatfiles/${o.uuid}`;if("image"===t.messageType){const e=(t.imageType??Oe)===le;return{...Me(n,{deriveVariants:!t.useCustomAttachmentUpload}),isOriginalImage:e,secret:r,fileLength:i,filetype:a,filename:t.fileName,width:t.width,height:t.height}}const p="video"===t.messageType?`${n}?vframe=true`:void 0;return{url:n,secret:r,fileLength:i,filetype:a,filename:t.fileName,thumbnailUrl:p}},be=(t,o)=>{if(!t)throw new l("Attachment file is required",{code:e.UPLOAD_REQUIRED_FIELD_MISSING,details:{reason:"file missing"}});const r=("number"==typeof o.fileLength?o.fileLength:void 0)??("fileSize"in o&&"number"==typeof o.fileSize?o.fileSize:void 0),s=ne({file:t,fallbackName:o.filename,fallbackMimeType:o.filetype,fallbackSize:r});if("web-file"===s.source.sourceType&&!s.webFile)throw new l("Attachment file is required",{code:e.UPLOAD_REQUIRED_FIELD_MISSING,details:{reason:"web file missing"}});return s},Pe=e=>new Promise(t=>{setTimeout(t,e)});const Ge=new class{constructor(e){this.state="disabled",this.timerId=null,this.reporting=!1,this.context={},this.buffer=[],this.bufferBytes=0,this.reportIntervalMs=this.normalizeReportInterval(e?.reportIntervalMs),this.reportTimeoutMs=e?.reportTimeoutMs??15e3,this.chunkDelayMs=e?.chunkDelayMs??3e3,this.maxChunkBytes=e?.maxChunkBytes??2097152,this.maxBufferBytes=e?.maxBufferBytes??3145728}setEnabled(e){this.setState(e?"enabled":"disabled")}setState(e){this.state=e,"enabled"!==e?(this.stop(),this.clearBuffer()):this.start()}updateContext(e){this.context={...this.context,...e}}updateReportInterval(e){this.reportIntervalMs=this.normalizeReportInterval(e),"enabled"===this.state&&this.start()}append(e){if("disabled"===this.state)return;const t=this.formatEntry(e);this.pushBuffer(t)}async reportNow(){await this.reportLogs()}stop(){this.timerId&&(clearInterval(this.timerId),this.timerId=null)}clearBuffer(){this.buffer=[],this.bufferBytes=0}start(){this.stop(),this.timerId=setInterval(()=>{this.reportLogs()},this.reportIntervalMs)}normalizeReportInterval(e){const t=void 0!==e&&Number.isFinite(e)&&e>0?e:3e5;return Math.max(t,6e4)}canReport(){return Boolean(this.context.restBaseUrl&&this.context.appKey&&this.context.userId&&this.context.token&&this.context.requestAdapter)}formatEntry(e){const t=e.args.length>0?e.args.map(e=>(e=>{if("string"==typeof e)return e;try{return JSON.stringify(e)}catch{return String(e)}})(e)).join(" "):"",o=t?`${e.message} ${t}`:e.message;return`${e.timestamp} [${e.level}] ${o}`}pushBuffer(e){const t=e.length;if(!(t>=this.maxBufferBytes)){for(;this.bufferBytes+t>this.maxBufferBytes&&this.buffer.length>0;){const e=this.buffer.shift();e&&(this.bufferBytes-=e.length)}this.buffer.push(e),this.bufferBytes+=t}}consumeBuffer(){if(0===this.buffer.length)return[];const e=`${this.buffer.join("\n")}\n`;this.clearBuffer();const t=[];let o=e;for(;o.length>this.maxChunkBytes;)t.push(o.slice(0,this.maxChunkBytes)),o=o.slice(this.maxChunkBytes);return o.length>0&&t.push(o),t}requeueChunk(e){this.pushBuffer(e)}async reportLogs(){if("enabled"===this.state&&!this.reporting&&0!==this.buffer.length){this.reporting=!0;try{const e=this.consumeBuffer();if(0===e.length)return;if(!this.canReport())return void e.forEach(e=>this.requeueChunk(e));for(const t of e){await this.reportChunk(t)||this.requeueChunk(t),await Pe(this.chunkDelayMs)}}finally{this.reporting=!1}}}async reportChunk(e){if(!this.canReport())return!1;const{restBaseUrl:t,appKey:o,userId:r,token:s,resource:i,requestAdapter:a}=this.context;if(!(t&&o&&r&&s&&a))return!1;let n="",p="";try{const e=me(o);n=e.orgName,p=e.appName}catch{return!1}const E=`${t}/${n}/${p}/sdk/users/${r}/client/logs`,c={resource:i??"webim",logContent:e};try{const e=await a.request({url:E,method:"POST",headers:{Authorization:`Bearer ${s}`,"Content-Type":"application/json",Accept:"application/json"},body:c,responseType:"json",timeoutMs:this.reportTimeoutMs});if(e.status<200||e.status>=300)return!1;const t="string"==typeof e.data?(e=>{try{return JSON.parse(e)}catch{return}})(e.data):e.data;return!t||!t.status||"ok"===t.status}catch{return!1}}},He="[MASKED]",we=new Set(["token","password","authorization","appkey","userid","deviceid","accesstoken","refreshtoken","secret","authtoken","sessionid","clientresource"]),ve=e=>!!e&&we.has((e=>e.toLowerCase())(e)),Fe=(e,t,o)=>{const r=o??/* @__PURE__ */new WeakSet;if("string"==typeof e)return((e,t)=>ve(t)?He:e)(e,t);if("number"==typeof e||"boolean"==typeof e||null==e)return e;if("bigint"==typeof e||"symbol"==typeof e)return e.toString();if("function"==typeof e)return`[Function ${e.name||"anonymous"}]`;if(e instanceof Error)return{name:(s=e).name,message:s.message};var s;if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(e=>Fe(e,void 0,r));if("object"==typeof e){if(r.has(e))return"[Circular]";if(r.add(e),(e=>!("object"!=typeof e||null===e||Array.isArray(e)||e instanceof Date||e instanceof Error))(e)){const t={};for(const[o,s]of Object.entries(e))ve(o)?t[o]=He:t[o]=Fe(s,o,r);return t}return Object.prototype.toString.call(e)}return"[Unsupported]"},Be="undefined"!=typeof document;let ke=null,Ke=!1;const qe={DEBUG:0,WARN:1,ERROR:2};class Ve{constructor(e="WARN"){this.consoleEnabled=!0,this.level=e}setLevel(e){this.level=e}setConsoleEnabled(e){this.consoleEnabled=e}shouldLog(e){return qe[e]>=qe[this.level]}emit(e,t,o){const r=(e=>{const t=/* @__PURE__ */new WeakSet;return e.map(e=>Fe(e,void 0,t))})(o),s=((e,t,o)=>({timestamp:/* @__PURE__ */(new Date).toISOString(),level:e,message:t,args:o}))(e,t,r);if(Ge.append(s),this.consoleEnabled){const o=/* @__PURE__ */new Date,s=`[Chat][${e}][${`${String(o.getHours()).padStart(2,"0")}:${String(o.getMinutes()).padStart(2,"0")}:${String(o.getSeconds()).padStart(2,"0")}.${String(o.getMilliseconds()).padStart(3,"0")}`}]`;Be?console.log(`%c${s}`,"color: rgb(0, 157, 255); font-weight: bold",t,...r):console.log(s,t,...r)}const i=ke;i&&!Ke&&Promise.resolve().then(()=>{if(i===ke){Ke=!0;try{i(s)}catch{}finally{Ke=!1}}})}debug(e,...t){this.shouldLog("DEBUG")&&this.emit("DEBUG",e,t)}warn(e,...t){this.shouldLog("WARN")&&this.emit("WARN",e,t)}error(e,...t){this.shouldLog("ERROR")&&this.emit("ERROR",e,t)}}let $e=new Ve;function xe(e){$e instanceof Ve&&$e.setLevel(e)}function je(e){$e instanceof Ve&&$e.setConsoleEnabled(e)}function ze(e){ke=e}function We(e){Ge.setState(e)}function Ye(e){Ge.updateContext(e)}function Xe(e){Ge.updateReportInterval(e)}async function Je(){await Ge.reportNow()}function Qe(){Ge.stop()}const Ze={debug:(e,...t)=>$e.debug(e,...t),warn:(e,...t)=>$e.warn(e,...t),error:(e,...t)=>$e.error(e,...t)},et={WEB:"web",WECHAT_MINIAPP:"wechat-miniapp",QQ_MINIAPP:"qq-miniapp",TOUTIAO_MINIAPP:"toutiao-miniapp",BAIDU_MINIAPP:"baidu-miniapp",ALIPAY_MINIAPP:"alipay-miniapp",DINGTALK_MINIAPP:"dingtalk-miniapp",LARK_MINIAPP:"lark-miniapp",KUAISHOU_MINIAPP:"kuaishou-miniapp",JD_MINIAPP:"jd-miniapp",MINIAPP_360:"360-miniapp",HARMONY_MINIAPP:"harmony-miniapp",QUICKAPP:"quickapp",UNIAPP:"uniapp",REACT_NATIVE:"react-native",ELECTRON_RENDERER:"electron-renderer",ELECTRON_MAIN:"electron-main",UNKNOWN:"unknown"},ot={INIT:"init",REQUEST:"request",UPLOAD:"upload",SOCKET:"socket",PROTO:"proto",RUNTIME:"runtime",STORAGE:"storage"},rt={INIT_FAILED:"PLATFORM_INIT_FAILED",MISSING_CAPABILITY:"PLATFORM_MISSING_CAPABILITY",REQUEST_FAILED:"PLATFORM_REQUEST_FAILED",UPLOAD_FAILED:"PLATFORM_UPLOAD_FAILED",SOCKET_FAILED:"PLATFORM_SOCKET_FAILED",PROTO_FAILED:"PLATFORM_PROTO_FAILED"},st=(e,t)=>{const o=new Error(e);return o.name="PlatformAdapterError",o.code=t.code,o.stage=t.stage,o.retryable=t.retryable,t.details&&(o.details=r(t.details)),o},it={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},at=["__uniConfig","skipWaiting","registration","navigator","process","window","document","localStorage","fetch","WebSocket","XMLHttpRequest","FormData","TextEncoder","TextDecoder","crypto"],nt=e=>{if(e)return e;return((e,t)=>{if(!e)return t;if(0===Object.keys(t).length)return e;const o={},r=e;for(const s of at)try{const e=r[s];void 0!==e&&(o[s]=e)}catch{}for(const s of Object.keys(t))o[s]=t[s];return o})("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:void 0,{..."undefined"!=typeof wx?{wx:wx}:{},..."undefined"!=typeof qq?{qq:qq}:{},..."undefined"!=typeof tt?{tt:tt}:{},..."undefined"!=typeof swan?{swan:swan}:{},..."undefined"!=typeof my?{my:my}:{},..."undefined"!=typeof dd?{dd:dd}:{},..."undefined"!=typeof jd?{jd:jd}:{},..."undefined"!=typeof ks?{ks:ks}:{},..."undefined"!=typeof uni?{uni:uni}:{}})},pt=e=>{const t={};if(!e)return t;if("function"==typeof e.forEach)return e.forEach((e,o)=>{t[o]=e}),t;const o=e.get?.("content-type");return o&&(t["content-type"]=o),t},Et=async(e,t)=>{const o=e;if("function"!=typeof o.text){if("function"!=typeof o.json)return"";const e=await o.json();return t?e:JSON.stringify(e)}const r=await o.text();if(!t||0===r.length)return r;try{return JSON.parse(r)}catch{return r}},ct=e=>{const t=e?.fetchImpl;if("function"==typeof t)return{async request(o){const r=o.method??"GET",s={...o.headers??{}},i=new AbortController,a=o.timeoutMs??e?.timeoutMs??15e3;let n=!1;const p=()=>i.abort(o.signal?.reason);o.signal?.aborted?p():o.signal?.addEventListener("abort",p,{once:!0});const E=setTimeout(()=>{n=!0,i.abort()},a),c=((e,t,o)=>{if(e.body instanceof Uint8Array)return new Uint8Array(e.body).buffer;if("string"==typeof e.body)return e.body;if(e.body&&"GET"!==o)return Object.keys(t).some(e=>"content-type"===e.toLowerCase())||(t["Content-Type"]="application/json"),JSON.stringify(e.body)})(o,s,r);try{const e=await t(o.url,{method:r,headers:s,body:c,signal:i.signal});let a;if("arraybuffer"===o.responseType)a=await e.arrayBuffer();else if("text"===o.responseType)a=await e.text();else if("json"===o.responseType)a=await Et(e,!0);else{const t=e.headers.get("content-type")??"";a=await Et(e,t.includes("application/json"))}return{status:e.status,statusText:e.statusText,headers:pt(e.headers),data:a}}catch(T){const e=((e,t,o)=>t?"timeout":o?.aborted||e instanceof Error&&"AbortError"===e.name?"abort":"network")(T,n,o.signal);throw st("Request adapter execution failed.",{code:rt.REQUEST_FAILED,stage:ot.REQUEST,retryable:"abort"!==e,details:{url:o.url,method:r,reason:e,cause:T instanceof Error?T.message:String(T)}})}finally{clearTimeout(E),o.signal?.removeEventListener("abort",p)}}}},Tt=()=>`${Date.now()}${Math.floor(1e6*Math.random()).toString().padStart(6,"0")}`,ut="X-Request-Id",dt=1e3,lt="direct";class Ot{constructor(e){this.events=[],this.enabled=!1,this.acceptedInWindow=0,this.capacityDiagnosticEmitted=!1,this.rateDiagnosticEmitted=!1,this.sendBatch=e.send,this.capacity=e.capacity??1e3,this.batchSize=e.batchSize??10,this.rateLimit=e.rateLimit??1e3,this.flushIntervalMs=e.flushIntervalMs??1e3,this.now=e.now??Date.now,this.onDrop=e.onDrop,this.windowStartedAt=this.now()}get size(){return this.events.length}enqueue(e){return this.refreshRateWindow(),this.acceptedInWindow>=this.rateLimit?(this.rateDiagnosticEmitted||(this.rateDiagnosticEmitted=!0,this.onDrop?.("rate-limit")),!1):this.events.length>=this.capacity?(this.capacityDiagnosticEmitted||(this.capacityDiagnosticEmitted=!0,this.onDrop?.("capacity")),!1):(this.events.push(e),this.acceptedInWindow+=1,this.schedule(),!0)}enable(){this.enabled=!0,this.schedule()}updateAppKey(e,t){for(let o=0;o<this.events.length;o+=1){const r=this.events[o];r&&r.appKey===e&&(this.events[o]={appKey:t,wire:{...r.wire,body:{...r.wire.body,appkey:t}}})}}pause(){this.enabled=!1,this.clearTimer()}clear(){this.pause(),this.events.splice(0,this.events.length),this.acceptedInWindow=0,this.windowStartedAt=this.now(),this.capacityDiagnosticEmitted=!1,this.rateDiagnosticEmitted=!1}refreshRateWindow(){const e=this.now();e-this.windowStartedAt<6e4||(this.windowStartedAt=e,this.acceptedInWindow=0,this.rateDiagnosticEmitted=!1)}schedule(){this.enabled&&0!==this.events.length&&!this.timer&&(this.timer=setTimeout(()=>{this.timer=void 0,this.consume()},this.flushIntervalMs))}async consume(){if(!this.enabled||0===this.events.length)return;const e=this.events[0];if(!e)return;const t=[];for(let o=0;o<this.events.length&&t.length<this.batchSize;){const r=this.events[o];r?.appKey===e.appKey?(t.push(r.wire),this.events.splice(o,1)):o+=1}this.events.length<this.capacity&&(this.capacityDiagnosticEmitted=!1);try{await this.sendBatch(e.appKey,t)}catch{}finally{this.schedule()}}clearTimer(){this.timer&&(clearTimeout(this.timer),this.timer=void 0)}}class _t{constructor(e){this.requestAdapter=e.requestAdapter,this.debug=e.debug??!1,this.now=e.now??Date.now,this.onFailure=e.onFailure}async send(e,t){if(this.requestAdapter&&0!==t.length)try{const o=await this.requestAdapter.request({url:this.debug?"https://data-reporting.realtimemesh.com/report":"https://data-reporting.rtnsvc.com/report",method:"POST",headers:{"Content-Type":"application/json",token:"32f24ab2ddb74f508aa9286c356cec84",appid:e,sendts:String(Math.floor(this.now()/1e3)),biz:"im",debug:String(this.debug)},body:JSON.stringify(t),responseType:"text",timeoutMs:15e3});(o.status<200||o.status>=300)&&this.onFailure?.({reason:"non-success-response",status:o.status})}catch(o){this.onFailure?.({reason:"transport-error",message:o instanceof Error?o.message:String(o)})}else this.onFailure?.({reason:"request-adapter-unavailable",eventCount:t.length})}}const Rt={none:0,disconnected:0,ethernet:1,lan:1,wifi:2,"slow-2g":7,"2g":7,"3g":7,"4g":7,"5g":7,cellular:7},mt=()=>{const e=nt(),t=e.crypto?.randomUUID;return("function"==typeof t?t.call(e.crypto):void 0)??`${Date.now()}_${Math.random().toString(36).slice(2)}`};class ht{constructor(e){this.currentState="disabled",this.networkType=-1,this.now=e.now??Date.now,this.randomId=e.randomId??mt;const t=new _t({requestAdapter:e.requestAdapter,debug:e.debug,now:this.now,onFailure:t=>{e.onDiagnostic?.("DataReport transport failed",t)}}),o=e.send??((e,o)=>t.send(e,o));this.queue=new Ot({send:o,now:this.now,onDrop:t=>{e.onDiagnostic?.("DataReport event dropped",{reason:t})}})}get state(){return this.currentState}get queuedEventCount(){return this.queue.size}get serviceId(){return this.session?.serviceId}startSession(e){this.queue.clear(),this.currentState="unknown";const t=this.randomId();return this.session={...e,sessionId:`session_${t}`,serviceId:`sid_${t}`},this.enqueue(9674,{did:e.did??"",os:e.os??e.platform,sdkVersion:e.sdkVersion,deviceId:e.deviceId??""}),this.session.serviceId}updateSession(e){this.session&&(e.appKey&&e.appKey!==this.session.appKey&&this.queue.updateAppKey(this.session.appKey,e.appKey),this.session={...this.session,...e})}updateNetworkType(e){this.networkType=(e=>"number"==typeof e&&Number.isFinite(e)?e:"string"!=typeof e?-1:Rt[e.trim().toLowerCase()]??-1)(e)}applyDnsSwitch(e){if(this.session){if("true"===e)return this.currentState="enabled",void this.queue.enable();this.currentState="disabled",this.queue.clear()}else this.currentState="disabled"}startOperation(e){const t=this.session?.sessionId;if(!t||"disabled"===this.currentState)return this.createNoopOperation();const o=`opr_${this.randomId()}`,r=this.now();let s=!1,i=!1,a=`req_${this.randomId()}`,n=0,p="";const E=()=>!s&&!i&&this.session?.sessionId===t,c=(t,r,s,i,a)=>{E()&&(n=a.success?0:a.code,p=a.success?"":a.description??"",this.enqueue(9675,{uid:e.uid??this.session?.uid,operationId:o,requestid:r,operationName:e.operationName,operationType:e.operationType,requestName:t.requestName??e.operationName,subrequestid:String(s),requestMethod:t.method??"",requestUrl:t.url??"",requestElapse:Math.max(0,this.now()-i),code:a.code,codeDesc:a.description??"",isLastApi:0,isSuccess:a.success?1:0,accessChannel:this.session?.accessChannel??lt,msgId:e.msgId,messageType:e.messageType,resultCount:a.resultCount}))},T=(e,t,o,r)=>{const s=this.now();let i=!1;return{retry:()=>(r.next+=1,T(e,t,r.next,r)),finish:r=>{i||(i=!0,c(e,t,o,s,r))}}};return{startRequest:(e={})=>(a=`req_${this.randomId()}`,T(e,a,1,{next:1})),finish:t=>{E()&&(s=!0,this.enqueue(9675,{uid:e.uid??this.session?.uid,operationId:o,requestid:a,operationName:e.operationName,operationType:e.operationType,requestName:"",subrequestid:"0",requestMethod:"",requestUrl:"",requestElapse:Math.max(0,this.now()-r),code:t.success?0:t.code??n,codeDesc:t.success?"":t.description??p,isLastApi:1,isSuccess:t.success?1:0,accessChannel:this.session?.accessChannel??lt,msgId:e.msgId,messageType:e.messageType,resultCount:t.resultCount}))},discard:()=>{i=!0}}}reset(){this.currentState="disabled",this.session=void 0,this.queue.clear()}enqueue(e,t){const o=this.session;if(!o||"disabled"===this.currentState)return;const r={lts:this.now(),net:this.networkType,appkey:o.appKey,sdkServiceId:o.serviceId,sdkProduct:0,uikitVersion:o.uikitVersion??"",...t},s={eventId:e,body:Object.fromEntries(Object.entries(r).filter(([,e])=>void 0!==e))};this.queue.enqueue({appKey:o.appKey,wire:s})}createNoopOperation(){const e={retry:()=>e,finish:()=>{}};return{startRequest:()=>e,finish:()=>{},discard:()=>{}}}}let Nt;const It=e=>(Nt?.reset(),Nt=new ht(e),Nt),At=e=>Nt?.startSession(e),ft=e=>{Nt?.updateSession(e)},St=e=>{Nt?.applyDnsSwitch(e)},yt=e=>{Nt?.updateNetworkType(e)},Ct=e=>{if("disabled"!==Nt?.state)return Nt?.startOperation(e)},Mt=()=>{Nt?.reset(),Nt=void 0},gt=()=>{const e=globalThis;return"function"==typeof e.fetch?e.fetch:void 0},Dt=()=>ct({fetchImpl:gt()})??{request:e=>Promise.reject(st("Request capability is missing for current platform.",{code:rt.MISSING_CAPABILITY,stage:ot.REQUEST,retryable:!1,details:{capability:"request"}}))},Ut=e=>e??Dt(),Lt=(e,t)=>{if(!e.matchField)return!1;const o=t[e.matchField];return void 0!==e.matchPattern?"string"==typeof o&&o.includes(e.matchPattern):void 0===e.matchValue?void 0!==o:o===e.matchValue||!("string"!=typeof o&&"number"!=typeof o||"string"!=typeof e.matchValue&&"number"!=typeof e.matchValue)&&String(o)===String(e.matchValue)};function bt(e,t,o){if(!e)return;const r=o&&"object"==typeof o?o:{},s="string"==typeof r.error?r.error:void 0,i=(e=>"string"==typeof e.error_code||"number"==typeof e.error_code?e.error_code:"string"==typeof e.errorCode||"number"==typeof e.errorCode?e.errorCode:"string"==typeof e.error||"number"==typeof e.error?e.error:"string"==typeof e.code||"number"==typeof e.code?e.code:void 0)(r),a="string"==typeof r.error_description?r.error_description:"string"==typeof r.message?r.message:"string"==typeof r.desc?r.desc:void 0,n=(e,t=!1)=>{const o=(e,o,r)=>({reasonKey:e,entry:o,matchedBy:t?"common":r});if(s&&e[s])return o(s,e[s],"key");for(const[s,i]of Object.entries(e))if(Lt(i,r))return o(s,i,"field");if(void 0!==i)for(const[r,s]of Object.entries(e)){if(s.code===i||s.canonicalCode===i)return o(r,s,"code");if(Array.isArray(s.aliases)&&s.aliases.includes(String(i)))return o(r,s,"alias")}if(a)for(const[r,s]of Object.entries(e))if(Array.isArray(s.aliases)&&s.aliases.includes(a))return o(r,s,"alias")},p=t?e.apis[t]:void 0,E=p?n(p.errors):void 0;if(E)return E;for(const c of Object.values(e.common)){const e=n(c.errors,!0);if(e)return e}}function Pt(t){const o=t.entry?.code??e.REST_BUSINESS_UNKNOWN,r=t.message??function(e){const t=e.apiName?`${e.apiName} failed`:"request failed";if(e.entry?.runtimeMessage)return`REST business error: ${e.entry.runtimeMessage}`;if(e.mapped??Boolean(e.entry)){if(e.reasonKey){const t=e.reasonKey.replace(/([a-z0-9])([A-Z])/g,"$1 $2").split("_").join(" ").split("-").join(" ").toLowerCase();return`REST business error: ${t.charAt(0).toUpperCase()}${t.slice(1)}`}return`REST business error: ${t}`}return e.reasonKey?`REST business error: ${t} (${e.reasonKey})`:`REST business error: ${t}`}({apiName:t.apiName,entry:t.entry,mapped:t.mapped,reasonKey:t.reasonKey});return new d(r,{code:o,details:{api:t.apiName,serverCode:t.serverCode,serverMessage:t.serverMessage,httpStatus:t.httpStatus,mapped:t.mapped??Boolean(t.entry),reasonKey:t.reasonKey,matchedBy:t.matchedBy,retryable:t.entry?.retryable,canonicalCode:t.entry?.canonicalCode??t.entry?.code}})}const Gt={getHistoryMessages:{operationName:"REST_GET_HISTORY_MESSAGE",operationType:"REST"},removeHistoryMessages:{operationName:"REST_DELETE_MESSAGES_CONVERSATIONS",operationType:"REST"},searchMessages:{operationName:"REST_SEARCH_MESSAGES",operationType:"REST"},addContact:{operationName:"ROSTER_ADD",operationType:"ROSTER"},deleteContact:{operationName:"ROSTER_REMOVE",operationType:"ROSTER"},acceptContactInvite:{operationName:"ROSTER_ACCEPT",operationType:"ROSTER"},declineContactInvite:{operationName:"ROSTER_DECLINE",operationType:"ROSTER"},addUsersToBlocklist:{operationName:"ROSTER_BAN",operationType:"ROSTER"},removeUserFromBlocklist:{operationName:"ROSTER_ALLOW",operationType:"ROSTER"},getBlocklist:{operationName:"ROSTER_BLACKLIST",operationType:"ROSTER"},getContactList:{operationName:"ROSTER_CONTACTS",operationType:"ROSTER"},setContactRemark:{operationName:"ROSTER_SET_CONTACT_REMARK",operationType:"ROSTER"},updateOwnInfo:{operationName:"USER_UPDATE_USERINFO",operationType:"USER"},getUserInfoByUserId:{operationName:"USER_FETCH_USERINFO",operationType:"USER"},uploadPushToken:{operationName:"USER_UPLOAD_PUSH_TOKEN",operationType:"USER"},createGroup:{operationName:"GROUP_CREATEGROUP",operationType:"GROUP"},destroyGroup:{operationName:"GROUP_DESTOTYGROUP",operationType:"GROUP"},leaveGroup:{operationName:"GROUP_LEAVEGROUP",operationType:"GROUP"},joinGroup:{operationName:"GROUP_JOIN_PUBLICGROUP",operationType:"GROUP"},getGroupMemberList:{operationName:"GROUP_FETCH_MEMEBERS",operationType:"GROUP"},uploadGroupSharedFile:{operationName:"GROUP_UPLOAD_SHAREDFILE",operationType:"GROUP"},downloadGroupSharedFile:{operationName:"GROUP_DOWNLOAD_SHAREDFILE",operationType:"GROUP"},getChatRoomList:{operationName:"CHATROOM_FETCH_CHATROOMSWITHPAGE",operationType:"CHATROOM"},getChatRoomInfo:{operationName:"CHATROOM_FETCH_SPECIFICATION",operationType:"CHATROOM"},joinChatRoom:{operationName:"CHATROOM_JOINCAHTROOM",operationType:"CHATROOM"},leaveChatRoom:{operationName:"CHATROOM_LEAVECAHTROOM",operationType:"CHATROOM"},getConversationList:{operationName:"REST_GET_SESSION_LIST",operationType:"REST"},deleteConversation:{operationName:"REST_DEL_SESSION",operationType:"REST"},setConversationPinned:{operationName:"REST_PIN_CONVERSATION",operationType:"REST"},getPinnedMessageList:{operationName:"REST_FETCH_PINMESSAGES",operationType:"REST"},clearAllMessagesAndConversations:{operationName:"REST_DELETE_MESSAGES_CONVERSATIONS",operationType:"REST"},setPinned:{operationName:"REST_PIN_MESSAGE",operationType:"REST"},getSelfIdsOnOtherPlatform:{operationName:"USER_LOGGEDIN_OTHER_PLATFORM",operationType:"USER"},getJoinedGroupList:{operationName:"GROUP_FETCH_USERS_GROUP",operationType:"GROUP"},changeGroupOwner:{operationName:"GROUP_CHANGE_OWNER",operationType:"GROUP"},getGroupInfo:{operationName:"GROUP_FETCH_SPECIFICATION",operationType:"GROUP"},getGroupInfoList:{operationName:"GROUP_FETCH_SPECIFICATION",operationType:"GROUP"},updateGroupInfo:{operationName:"GROUP_CHANGE_GROUPATTRIBUTE",operationType:"GROUP"},getGroupAdminList:{operationName:"GROUP_GET_ADMIN",operationType:"GROUP"},addGroupAdmin:{operationName:"GROUP_SET_ADMIN",operationType:"GROUP"},removeGroupAdmin:{operationName:"GROUP_REMOVE_ADMIN",operationType:"GROUP"},inviteUsersToGroup:{operationName:"GROUP_INVITE_TO_GROUP",operationType:"GROUP"},acceptGroupJoinRequest:{operationName:"GROUP_ACCEPT_JOINPUBLICGROUPAPPL",operationType:"GROUP"},rejectGroupJoinRequest:{operationName:"GROUP_DECLINE_JOINPUBLICGROUPAPPL",operationType:"GROUP"},acceptInvitation:{operationName:"GROUP_ACCEPT_INVITATION",operationType:"GROUP"},rejectInvitation:{operationName:"GROUP_DECLINE_INVITATION",operationType:"GROUP"},removeGroupMembers:{operationName:"GROUP_REMOVE_MEMBERS",operationType:"GROUP"},muteGroupMembers:{operationName:"GROUP_MUTE_MEMBERS",operationType:"GROUP"},unmuteGroupMembers:{operationName:"GROUP_UNMUTE_MEMBERS",operationType:"GROUP"},getGroupMuteList:{operationName:"GROUP_FETCH_MUTES",operationType:"GROUP"},blockGroupMembers:{operationName:"GROUP_BLOCK_MEMBERS",operationType:"GROUP"},unblockGroupMembers:{operationName:"GROUP_UNBLOCK_MEMBERS",operationType:"GROUP"},getGroupBlocklist:{operationName:"GROUP_GET_BLOCK_LIST",operationType:"GROUP"},muteAllGroupMembers:{operationName:"GROUP_MUTE_ALLMEMBERS",operationType:"GROUP"},unmuteAllGroupMembers:{operationName:"GROUP_UNMUTE_ALLMEMBERS",operationType:"GROUP"},addUsersToGroupAllowlist:{operationName:"GROUP_ADD_WHITELIST",operationType:"GROUP"},removeUsersFromGroupAllowlist:{operationName:"GROUP_REMOVE_WHITELIST",operationType:"GROUP"},getGroupAllowlist:{operationName:"GROUP_FETCH_WHITELIST",operationType:"GROUP"},checkIfInGroupAllowList:{operationName:"GROUP_IS_IN_WHITELIST",operationType:"GROUP"},getGroupMessageReadUsers:{operationName:"GROUP_GET_READ_USERS",operationType:"GROUP"},getGroupAnnouncement:{operationName:"GROUP_FETCH_ANNOUNCEMENT",operationType:"GROUP"},updateGroupAnnouncement:{operationName:"GROUP_UPDATE_ANNOUNCEMENT",operationType:"GROUP"},deleteGroupSharedFile:{operationName:"GROUP_DELETE_SHAREDFILE",operationType:"GROUP"},getGroupSharedFileList:{operationName:"GROUP_FETCH_SHAREDFILE",operationType:"GROUP"},setGroupMemberAttributes:{operationName:"GROUP_MEMBER_SET_META_DATA",operationType:"GROUP"},getGroupMembersAttributes:{operationName:"GROUP_MEMBER_FETCH_META_DATA",operationType:"GROUP"},destroyChatRoom:{operationName:"CHATROOM_DESTORYCHATROOM",operationType:"CHATROOM"},updateChatRoomInfo:{operationName:"CHATROOM_CHANGE_ATTRIBUTE",operationType:"CHATROOM"},removeChatRoomMembers:{operationName:"CHATROOM_REMOVE_MEMBERS",operationType:"CHATROOM"},addChatRoomMembers:{operationName:"CHATROOM_ADD_MEMBERS",operationType:"CHATROOM"},getChatRoomMemberList:{operationName:"CHATROOM_FETCH_MEMBERS",operationType:"CHATROOM"},getChatRoomAdminList:{operationName:"CHATROOM_GET_ADMIN",operationType:"CHATROOM"},setChatRoomAdmin:{operationName:"CHATROOM_SET_ADMIN",operationType:"CHATROOM"},removeChatRoomAdmin:{operationName:"CHATROOM_REMOVE_ADMIN",operationType:"CHATROOM"},muteChatRoomMembers:{operationName:"CHATROOM_MUTE_USER",operationType:"CHATROOM"},unmuteChatRoomMembers:{operationName:"CHATROOM_UNMUTE_USER",operationType:"CHATROOM"},getChatRoomMuteList:{operationName:"CHATROOM_FETCH_MUTES",operationType:"CHATROOM"},blockChatRoomMembers:{operationName:"CHATROOM_BLOCK_USERS",operationType:"CHATROOM"},unblockChatRoomMembers:{operationName:"CHATROOM_UNBLOCK_USERS",operationType:"CHATROOM"},getChatRoomBlocklist:{operationName:"CHATROOM_FETCH_BANS",operationType:"CHATROOM"},muteAllChatRoomMembers:{operationName:"CHATROOM_MUTE_ALLMEMEBERS",operationType:"CHATROOM"},unmuteAllChatRoomMembers:{operationName:"CHATROOM_UNMUTE_ALLMEMEBERS",operationType:"CHATROOM"},addUsersToChatRoomAllowlist:{operationName:"CHATROOM_ADD_WHITELIST",operationType:"CHATROOM"},removeUsersFromChatRoomAllowlist:{operationName:"CHATROOM_REMOVE_WHITELIST",operationType:"CHATROOM"},getChatRoomAllowlist:{operationName:"CHATROOM_FETCH_WHITELIST",operationType:"CHATROOM"},checkIfInChatRoomAllowList:{operationName:"CHATROOM_FETCH_MEMBERIN_WHITELIST",operationType:"CHATROOM"},getChatRoomAnnouncement:{operationName:"CHATROOM_FETCH_ANNOUNCEMENT",operationType:"CHATROOM"},updateChatRoomAnnouncement:{operationName:"CHATROOM_UPDATE_ANNOUNCEMENT",operationType:"CHATROOM"},deleteChatRoomSharedFile:{operationName:"CHATROOM_REMOVE_SHARE_FILE",operationType:"CHATROOM"},getChatRoomSharedFileList:{operationName:"CHATROOM_GET_SHARE_FILE_LIST",operationType:"CHATROOM"},setChatRoomAttributes:{operationName:"CHATROOM_SET_META_DATA",operationType:"CHATROOM"},removeChatRoomAttributes:{operationName:"CHATROOM_DELETE_META_DATA",operationType:"CHATROOM"},getChatRoomAttributes:{operationName:"CHATROOM_FETCH_META_DATA",operationType:"CHATROOM"}},Ht=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1_$2").replace(/[^a-zA-Z0-9]+/g,"_").replace(/^_+|_+$/g,"").toUpperCase();class wt{constructor(e,t){this.baseUrl=e.replace(/\/$/,""),this.timeout=t?.timeout??15e3,this.errorMap=t?.errorMap,this.requestAdapter=Ut(t?.requestAdapter),this.includeRequestId=t?.includeRequestId??!1,this.defaultHeaders={Accept:"application/json",...t?.headers}}sanitizeUrl(e){try{const t=new URL(e),o=t.searchParams;for(const e of o.keys())o.set(e,"***");const r=o.toString(),s=r?`?${r}`:"";return`${t.origin}${t.pathname}${s}`}catch{return e.split("?")[0]??e}}setAuthToken(e){this.defaultHeaders.Authorization=`Bearer ${e}`}removeAuthToken(){delete this.defaultHeaders.Authorization}buildHttpStatusFallbackError(t,o,r,s){const i={...o.operation?{api:o.operation}:{},url:o.url,method:o.method,httpStatus:t,serverCode:r,serverMessage:s,mapped:!1};if(400===t)return new p("Invalid request parameters",{code:e.VALIDATION_UNKNOWN,details:{...i,canonicalCode:e.VALIDATION_UNKNOWN}});if(401===t){const t=[r,s].some(e=>"string"==typeof e&&/token[ _-]?(?:has[ _-]?)?expired/i.test(e)),o=t?e.AUTH_TOKEN_EXPIRED:e.AUTH_UNAUTHORIZED;return new n(t?"Authentication token expired":"Authentication failed",{code:o,details:{...i,reasonKey:t?"token_expired":"unauthorized",canonicalCode:o}})}return 403===t?new n("Access forbidden",{code:e.AUTH_FORBIDDEN,details:{...i,canonicalCode:e.AUTH_FORBIDDEN}}):429===t?new d("REST rate limit exceeded",{code:e.SERVICE_LIMIT_EXCEEDED,details:{...i,retryable:!0,reasonKey:"request_rate_limited",canonicalCode:e.SERVICE_LIMIT_EXCEEDED}}):t>=500?new d("REST business error: request failed",{code:e.REST_BUSINESS_UNKNOWN,details:{...i,retryable:!0,reasonKey:"server_unknown_error",canonicalCode:e.REST_BUSINESS_UNKNOWN}}):void 0}async request(t,o={}){const r=`${this.baseUrl}${t}`,i=o.method??"GET",a=Date.now(),n=this.sanitizeUrl(r);Ze.debug("REST request",{method:i,url:n,operation:o.operation});const p=o.operation?(e=>{const t=Gt[e];if(t)return t;const o=(e=>{const t=e.toLowerCase();return t.includes("chatroom")||t.includes("chat_room")?"CHATROOM":t.includes("group")?"GROUP":t.includes("contact")||t.includes("blocklist")?"ROSTER":t.includes("userinfo")||t.includes("presence")?"USER":"REST"})(e);return{operationName:`REST_${Ht(e)}`,operationType:o}})(o.operation):void 0,E=p?Ct(p):void 0,c=E?.startRequest({requestName:p?.operationName,method:i,url:r});let T=0;const d={...this.defaultHeaders,...o.headers};if(this.includeRequestId&&(d[ut]=Tt()),o.body&&"GET"!==i){const e=Object.keys(d).some(e=>"content-type"===e.toLowerCase());"string"==typeof o.body?e||(d["Content-Type"]="application/x-www-form-urlencoded"):e||(d["Content-Type"]="application/json")}else if("GET"===i)for(const e of Object.keys(d))"content-type"===e.toLowerCase()&&delete d[e];try{const e=await this.requestAdapter.request({url:r,method:i,headers:d,body:o.body,timeoutMs:o.timeout??this.timeout});T=e.status;const t=((e,t)=>{if("string"!=typeof e)return e;const o=Object.entries(t).find(([e])=>"content-type"===e.toLowerCase()),r=e.trim();if(!(o?.[1].includes("application/json")||r.startsWith("{")&&r.endsWith("}")||r.startsWith("[")&&r.endsWith("]")))return e;try{return JSON.parse(r)}catch{return e}})(e.data,e.headers),s=Date.now()-a;(e.status<200||e.status>=300)&&(Ze.warn("REST response error",{method:i,url:n,status:e.status,duration:s}),this.handleErrorPayload(e.status,e.statusText??"",t,{operation:o.operation,url:r,method:i})),Ze.debug("REST response",{method:i,url:n,status:e.status,duration:s});const p=(e=>{if(Array.isArray(e))return e.length;if(!e||"object"!=typeof e)return;const t=e;for(const o of["entities","data","items","messages","conversations","results"]){const e=t[o];if(Array.isArray(e))return e.length}})(t);return c?.finish({code:e.status,success:!0,resultCount:p}),E?.finish({code:0,success:!0,resultCount:p}),t}catch(l){const t=0!==T?T:l instanceof s?l.code:-1,a=l instanceof Error?l.message:String(l);if(c?.finish({code:t,success:!1,description:a}),E?.finish({code:t,success:!1,description:a}),l instanceof s)throw l;const p=(e=>{if(!e||"object"!=typeof e)return;const t=e.details;if(!t||"object"!=typeof t)return;const o=t.reason;return"abort"===o||"network"===o||"timeout"===o?o:void 0})(l);if(l instanceof Error&&"AbortError"===l.name||"timeout"===p)throw Ze.warn("REST request timeout",{method:i,url:n,timeout:o.timeout??this.timeout}),new u(`Request timeout: ${r}`,{code:e.REST_TIMEOUT,details:{url:r,method:i,timeout:o.timeout??this.timeout}});throw Ze.warn("REST request failed",{method:i,url:n}),new u(`Request failed: ${r}`,{code:e.REST_NETWORK_ERROR,details:{url:r,method:i,...p?{reason:p}:{}}})}}handleErrorPayload(t,o,r,s){const i=r&&"object"==typeof r?r:{},a=((e,t)=>{if(!e.error||"object"!=typeof e.error||Array.isArray(e.error))return;const o=e.error,r=o.code;if("number"!=typeof r&&"string"!=typeof r)return;const s=String(r);return/^\d{7}$/.test(s)&&Number(s.slice(0,3))===t?o:void 0})(i,t),n=a?{...i,code:a.code,message:a.message}:r,p=bt(this.errorMap,s.operation,n),E="string"==typeof i.error?i.error:void 0,c="number"==typeof i.error_code||"string"==typeof i.error_code?i.error_code:"number"==typeof i.errorCode||"string"==typeof i.errorCode?i.errorCode:"number"==typeof i.code||"string"==typeof i.code?i.code:"string"==typeof i.error?i.error:"number"==typeof a?.code||"string"==typeof a?.code?a.code:void 0,T="string"==typeof i.message?i.message:"string"==typeof i.error_description?i.error_description:"string"==typeof i.desc?i.desc:"string"==typeof a?.message?a.message:void 0,d=!!(401!==t&&403!==t||void 0!==E&&"unauthorized"!==E&&"auth_failed"!==E&&"forbidden"!==E)&&(void 0!==E||"string"==typeof i.error_description||"string"==typeof i.message||"string"==typeof i.desc);if(s.operation&&p)throw Pt({apiName:s.operation,entry:p.entry,serverCode:c,serverMessage:T,httpStatus:t,mapped:!0,reasonKey:p.reasonKey,matchedBy:p.matchedBy});const l=this.buildHttpStatusFallbackError(t,s,c,T);if(l)throw l;if(s.operation&&d)throw Pt({apiName:s.operation,serverCode:c,serverMessage:T,httpStatus:t,mapped:!1,reasonKey:E});throw new u(`HTTP ${t}: ${o}`,{code:e.REST_HTTP_ERROR,details:{url:s.url,method:s.method,httpStatus:t}})}get(e,t){return this.request(e,{...t,method:"GET"})}post(e,t,o){return this.request(e,{...o,method:"POST",body:t})}put(e,t,o){return this.request(e,{...o,method:"PUT",body:t})}delete(e,t){return this.request(e,{...t,method:"DELETE"})}patch(e,t,o){return this.request(e,{...o,method:"PATCH",body:t})}}const vt=(...e)=>{const t={},o={};for(const r of e)Object.assign(t,r.common),Object.assign(o,r.apis);return{common:t,apis:o}},Ft={common:{validation:{range:"100-110",errors:{MISSING_REQUIRED:{code:110},INVALID_FORMAT:{code:110},UNKNOWN:{code:110}}},auth:{range:"108,200-215",errors:{ALREADY_LOGIN:{code:200},NOT_LOGIN:{code:201},UNAUTHORIZED:{code:202},FORBIDDEN:{code:210},TOKEN_EXPIRED:{code:108},BIND_ANOTHER_DEVICE:{code:213},LOGIN_TOO_MANY_DEVICES:{code:214},USER_MUTED:{code:215}}},connection:{range:"1,100,202,300-304",errors:{TIMEOUT:{code:301},LOGIN_TIMEOUT:{code:301},WEBSOCKET_ERROR:{code:300},NOT_CREATED:{code:1},CLOSED_BEFORE_READY:{code:300},CANCELLED:{code:1},PROVISION_TIMEOUT:{code:301},PROVISION_REJECTED:{code:202},PROVISION_CLOSED:{code:300},DNSLIST_FAILED:{code:304},SERVER_BUSY:{code:302}}},storage:{range:"3",errors:{OPERATION_FAILED:{code:3}}},message:{range:"1,300-511",errors:{NOT_CONNECTED:{code:300},ACK_TIMEOUT:{code:301},SEND_FAILED:{code:303},SENDER_DESTROYED:{code:1},ENCODE_FAILED:{code:500},DECODE_FAILED:{code:500},ACK_MISSING:{code:301}}},transport:{range:"2,301,303",errors:{NETWORK_ERROR:{code:2},TIMEOUT:{code:301},HTTP_ERROR:{code:303},BUSINESS_UNKNOWN:{code:303}}},upload:{range:"1,100,110,301,402,405",errors:{REQUIRED_FIELD_MISSING:{code:110},INVALID_APPKEY:{code:100},SIZE_EXCEEDED:{code:405},REQUEST_FAILED:{code:402},TIMEOUT:{code:301},ABORTED:{code:1}}},unknown:{range:"1,4",errors:{UNKNOWN:{code:1},SERVICE_LIMIT_EXCEEDED:{code:4}}},push:{range:"1500,1501,1502",errors:{TOKEN_UPLOAD_FAILED:{code:1500},SILENT_MODE_OPERATION_FAILED:{code:1501},PUSH_LANGUAGE_OPERATION_FAILED:{code:1502}}},chatroom:{range:"700-707",errors:{CHATROOM_INVALID_ID:{code:700},CHATROOM_NOT_JOINED:{code:702},CHATROOM_PERMISSION_DENIED:{code:703},CHATROOM_MEMBERS_FULL:{code:704},CHATROOM_NOT_EXIST:{code:705},CHATROOM_OWNER_NOT_ALLOW_LEAVE:{code:706},CHATROOM_USER_IN_BLOCKLIST:{code:707}}}},apis:{}};export{be as $,n as A,Ct as B,a as C,c as D,e as E,_ as F,dt as G,M as H,le as I,Ut as J,pe as K,ce as L,E as M,i as N,Ae as O,rt as P,ge as Q,d as R,s as S,Le as T,l as U,p as V,h as W,Ee as X,he as Y,Re as Z,_e as _,ot as a,Se as a0,ye as a1,Ce as a2,F as a3,T as a4,b as a5,v as a6,P as a7,o as a8,H as a9,Z as aA,ze as aB,je as aC,xe as aD,O as aE,bt as aF,I as aG,N as aH,W as aI,z as aJ,Y as aK,J as aL,X as aM,Q as aN,G as aa,w as ab,y as ac,C as ad,m as ae,q as af,K as ag,x as ah,$ as ai,j as aj,V as ak,k as al,B as am,S as an,It as ao,At as ap,yt as aq,We as ar,ft as as,St as at,Mt as au,Ye as av,Xe as aw,Je as ax,Qe as ay,R as az,fe as b,Pt as c,Me as d,ut as e,Tt as f,nt as g,wt as h,u as i,Ft as j,et as k,Ze as l,vt as m,ne as n,st as o,me as p,it as q,ct as r,Ue as s,De as t,A as u,L as v,U as w,D as x,g as y,f as z};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const e={VALIDATION_REQUIRED:110,VALIDATION_INVALID_FORMAT:110,VALIDATION_UNKNOWN:110,AUTH_ALREADY_LOGIN:200,AUTH_NOT_LOGIN:201,AUTH_UNAUTHORIZED:202,AUTH_FORBIDDEN:210,AUTH_TOKEN_EXPIRED:108,AUTH_BIND_ANOTHER_DEVICE:213,AUTH_LOGIN_TOO_MANY_DEVICES:214,AUTH_USER_MUTED:215,CONNECTION_TIMEOUT:301,CONNECTION_LOGIN_TIMEOUT:301,CONNECTION_WEBSOCKET_ERROR:300,CONNECTION_NOT_CREATED:1,CONNECTION_CLOSED_BEFORE_READY:300,CONNECTION_CANCELLED:1,CONNECTION_PROVISION_TIMEOUT:301,CONNECTION_PROVISION_REJECTED:202,CONNECTION_PROVISION_CLOSED:300,CONNECTION_DNSLIST_FAILED:304,STORAGE_OPERATION_FAILED:3,MESSAGE_NOT_CONNECTED:300,MESSAGE_ACK_TIMEOUT:301,MESSAGE_SEND_FAILED:303,MESSAGE_SENDER_DESTROYED:1,MESSAGE_ENCODE_FAILED:500,MESSAGE_DECODE_FAILED:500,MESSAGE_ACK_MISSING:301,MESSAGE_BLOCKED_BY_RECIPIENT:222,OPERATION_UNSUPPORTED:111,SERVER_BUSY:302,ATTACHMENT_NOT_FOUND:400,ATTACHMENT_INVALID:401,ATTACHMENT_EXPIRED:407,MESSAGE_INCLUDE_ILLEGAL_CONTENT:501,MESSAGE_SEND_TRAFFIC_LIMIT:502,MESSAGE_RECALL_TIME_LIMIT:504,SERVICE_NOT_ENABLED:505,MESSAGE_EXPIRED:506,MESSAGE_ILLEGAL_WHITELIST:507,MESSAGE_EXTERNAL_LOGIC_BLOCKED:508,MESSAGE_CURRENT_LIMITING:509,MESSAGE_SIZE_LIMIT:510,MESSAGE_EDIT_FAILED:511,INVALID_CONVERSATION:107,USER_LOGIN_ANOTHER_DEVICE:206,USER_REMOVED:207,USER_KICKED_BY_CHANGE_PASSWORD:216,USER_KICKED_BY_OTHER_DEVICE:217,USER_ALREADY_LOGIN_ANOTHER:218,USER_MUTED_BY_ADMIN:219,USER_DEVICE_CHANGED:220,USER_NOT_ON_ROSTER:221,SERVER_SERVING_DISABLED:305,FILE_DOWNLOAD_FAILED:403,FILE_TOO_LARGE:405,FILE_CONTENT_IMPROPER:406,THIRD_MODERATION_FAILED:1200,THIRD_DEFAULT_FAILED:1299,STREAM_SEND_NOT_SUPPORTED:303,STREAM_CHUNK_INVALID:500,STREAM_TIMEOUT_BY_SERVER:500,STREAM_STATE_CONFLICT:500,COMBINE_INVALID_INPUT:110,COMBINE_LEVEL_EXCEEDED:4,COMBINE_ITEM_LIMIT_EXCEEDED:4,COMBINE_ENCODE_FAILED:500,COMBINE_UPLOAD_FAILED:402,COMBINE_DOWNLOAD_FAILED:2,COMBINE_PARSE_FAILED:500,REST_NETWORK_ERROR:2,REST_TIMEOUT:301,REST_HTTP_ERROR:303,REST_BUSINESS_UNKNOWN:303,PUSH_TOKEN_UPLOAD_FAILED:1500,PUSH_SILENT_MODE_OPERATION_FAILED:1501,PUSH_LANGUAGE_OPERATION_FAILED:1502,USER_INFO_SUBSCRIPTION_LIMIT_EXCEEDED:1600,USER_INFO_SUBSCRIPTION_TARGET_LIMIT_EXCEEDED:1601,USERINFO_USERCOUNT_EXCEED:900,USERINFO_DATALENGTH_EXCEED:901,CONTACT_ADD_USER_NOT_FOUND:204,CONTACT_ADD_ALREADY_FRIEND:1e3,CONTACT_ADD_BLOCKED_BY_USER:210,CONTACT_SET_REMARK_NOT_FRIEND:223,CONTACT_REACH_LIMIT:1001,CONTACT_REACH_LIMIT_PEER:1002,CONTACT_BLOCKLIST_USER_NOT_FOUND:204,GROUP_INVALID_ID:600,GROUP_ALREADY_JOINED:601,GROUP_NOT_JOINED:602,GROUP_PERMISSION_DENIED:603,GROUP_MEMBERS_FULL:604,GROUP_SHARED_FILE_INVALID_ID:605,GROUP_NOT_EXIST:606,GROUP_DISABLED:607,GROUP_NAME_VIOLATION:608,GROUP_MEMBER_ATTRIBUTES_REACH_LIMIT:609,GROUP_MEMBER_ATTRIBUTES_UPDATE_FAILED:610,GROUP_MEMBER_ATTRIBUTES_KEY_REACH_LIMIT:611,GROUP_MEMBER_ATTRIBUTES_VALUE_REACH_LIMIT:612,GROUP_USER_IN_BLOCKLIST:613,CHATROOM_INVALID_ID:700,CHATROOM_NOT_JOINED:702,CHATROOM_PERMISSION_DENIED:703,CHATROOM_MEMBERS_FULL:704,CHATROOM_NOT_EXIST:705,CHATROOM_OWNER_NOT_ALLOW_LEAVE:706,CHATROOM_USER_IN_BLOCKLIST:707,CONTACT_SYNC_METADATA_FAILED:1700,CONTACT_SYNC_SOCKET_FAILED:1701,CONTACT_SYNC_CURSOR_INVALID:1702,CONTACT_SYNC_PROTO_DECODE_FAILED:1703,CONTACT_SYNC_CANCELLED:1704,SESSION_LIST_SOCKET_FAILED:300,SESSION_LIST_PROTO_DECODE_FAILED:500,SESSION_LIST_REQUEST_INVALID:110,SESSION_LIST_FETCH_FAILED:303,SESSION_LIST_SERVICE_DISABLED:305,SESSION_LIST_CANCELLED:1,PRESENCE_PARAM_LENGTH_EXCEED:1100,PRESENCE_CANNOT_SUBSCRIBE_YOURSELF:1101,TRANSLATE_PARAM_INVALID:1110,TRANSLATE_SERVICE_NOT_ENABLED:1111,TRANSLATE_USAGE_LIMIT:1112,TRANSLATE_FAILED:1113,VOICE_TO_TEXT_FILE_INVALID:407,VOICE_TO_TEXT_FILE_DURATION_TOO_LONG:408,VOICE_TO_TEXT_FAILED:409,VOICE_TO_TEXT_FILE_NOT_FOUND:410,VOICE_TO_TEXT_FILE_TOO_LARGE:411,REACTION_REACH_LIMIT:1300,REACTION_ALREADY_OPERATED:1301,REACTION_OPERATION_ILLEGAL:1302,UPLOAD_REQUIRED_FIELD_MISSING:110,UPLOAD_INVALID_APPKEY:100,UPLOAD_SIZE_EXCEEDED:405,UPLOAD_REQUEST_FAILED:402,UPLOAD_TIMEOUT:301,UPLOAD_ABORTED:1,SERVICE_LIMIT_EXCEEDED:4,UNKNOWN:1},t="[REDACTED]",o=e=>{if(!e)return"";const o=e.includes("?"),r=e.includes("#");try{return((e,o,r)=>(e.username&&(e.username=t),e.password&&(e.password=t),e.search=o?`?${t}`:"",e.hash=r?`#${t}`:"",e.toString()))(new URL(e),o,r)}catch{const o=[e.indexOf("?"),e.indexOf("#")].filter(e=>e>=0).sort((e,t)=>e-t)[0];return void 0===o?"[invalid-url]":`${e.slice(0,o)}?${t}`}},r=e=>Object.fromEntries(Object.entries(e).map(([e,t])=>"url"===e.toLowerCase()&&"string"==typeof t?[e,o(t)]:[e,t]));class s extends Error{constructor(t,o=e.UNKNOWN,i){super(t),this.name="SDKError",this.code=o,this.details=i?.details?r(i.details):void 0,Error.captureStackTrace&&Error.captureStackTrace(this,s)}toJSON(){return{name:this.name,message:this.message,code:this.code,details:this.details,stack:this.stack}}}class i extends s{constructor(t,o){super(t,o?.code??e.AUTH_UNAUTHORIZED,o),this.name="AuthenticationError"}}class n extends s{constructor(t,o){super(t,o?.code??e.VALIDATION_UNKNOWN,o),this.name="ValidationError"}}class a extends s{constructor(t,o){super(t,o?.code??e.REST_NETWORK_ERROR,o),this.name="RestTransportError"}}class E extends s{constructor(t,o){super(t,o?.code??e.REST_BUSINESS_UNKNOWN,o),this.name="RestBusinessError"}}class p extends s{constructor(t,o){super(t,o?.code??e.UPLOAD_REQUEST_FAILED,o),this.name="UploadError"}}const T={jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",webp:"image/webp",gif:"image/gif",bmp:"image/bmp",heic:"image/heic",heif:"image/heif",svg:"image/svg+xml",mp4:"video/mp4",mov:"video/quicktime",mp3:"audio/mpeg",m4a:"audio/mp4",wav:"audio/wav",aac:"audio/aac",amr:"audio/amr",pdf:"application/pdf",txt:"text/plain",json:"application/json"},c=e=>"undefined"!=typeof Blob&&e instanceof Blob,_=e=>{const t=e.replace(/[?#].*$/,"").split(/[\\/]/).filter(Boolean),o=t.length>0?t[t.length-1]:void 0;if(o)return o},O=e=>{if(!e)return;const t=e.lastIndexOf(".");if(t<0||t===e.length-1)return;const o=e.slice(t+1).toLowerCase();return T[o]},u=(e,t)=>{for(const o of t){const t=e[o];if("string"==typeof t&&t.length>0)return t}},d=e=>{const t=e.file,o=e.sourceMeta,r=t.name||(o?u(o,["name","fileName","filename"]):void 0),s=e.file.type||(o?u(o,["type","mimeType","filetype"]):void 0),i=e.file.size||(o?((e,t)=>{for(const o of t){const t=e[o];if("number"==typeof t&&Number.isFinite(t))return t}})(o,["size","fileSize","fileLength"]):void 0),n=l({fileName:r,fileType:s,fileSize:i,fallbackName:e.fallbackName,fallbackMimeType:e.fallbackMimeType,fallbackSize:e.fallbackSize});return{source:{sourceType:"web-file",file:e.file,name:n.fileName,mimeType:n.fileType,size:n.fileSize},fileName:n.fileName,fileType:n.fileType,fileSize:n.fileSize,webFile:e.file}},l=e=>({fileName:e.fileName??e.fallbackName??"file",fileType:e.fileType??e.fallbackMimeType??"application/octet-stream",fileSize:e.fileSize??e.fallbackSize??0}),R=e=>{const{file:t,fallbackName:o,fallbackMimeType:r,fallbackSize:s}=e,i=(e=>{if(c(e))return e;if("object"!=typeof e||null===e)return;const t=e;for(const o of["file","originFileObj","raw","blob"]){const e=t[o];if(c(e))return e}})(t);if(i)return d({file:i,fallbackName:o,fallbackMimeType:r,fallbackSize:s,sourceMeta:"object"==typeof t&&null!==t?t:void 0});if((e=>"object"==typeof e&&null!==e&&"path"in e)(t)){const e=_(t.path),i=l({fileName:t.name??e,fileType:t.type??O(t.name??e),fileSize:t.size,fallbackName:o,fallbackMimeType:r,fallbackSize:s});return{source:{sourceType:"miniapp-path",path:t.path,name:i.fileName,mimeType:i.fileType,size:i.fileSize},fileName:i.fileName,fileType:i.fileType,fileSize:i.fileSize}}if((e=>"object"==typeof e&&null!==e&&"uri"in e)(t)){const e=_(t.uri),i=l({fileName:t.name??e,fileType:t.type??O(t.name??e),fileSize:t.size,fallbackName:o,fallbackMimeType:r,fallbackSize:s});return{source:{sourceType:"rn-uri",uri:t.uri,name:i.fileName,mimeType:i.fileType,size:i.fileSize},fileName:i.fileName,fileType:i.fileType,fileSize:i.fileSize}}const n=l({fallbackName:o,fallbackMimeType:r,fallbackSize:s});return{source:{sourceType:"web-file",name:n.fileName,mimeType:n.fileType,size:n.fileSize},fileName:n.fileName,fileType:n.fileType,fileSize:n.fileSize}},I="CHAT",A="GROUP",N="ROOM",m="original",S="large",h=e=>/^https?:\/\//i.test(e),f=t=>{const o=t.split("#");if(2!==o.length||!o[0]||!o[1])throw new p("Invalid appKey for upload",{code:e.UPLOAD_INVALID_APPKEY,details:{appKey:t}});return{orgName:o[0],appName:o[1]}},C=(e,t)=>M(e,{size:t}),y=e=>{try{return decodeURIComponent(e)}catch{return e}},M=(e,t)=>{const[o="",r]=e.split("#",2),[s,i=""]=o.split("?",2),n=i.split("&").filter(Boolean);return Object.entries(t).forEach(([e,t])=>{const o=encodeURIComponent(e),r=n.filter(t=>{const[r=""]=t.split("=",2);return r!==o&&y(r)!==e});n.length=0,n.push(...r),void 0!==t&&n.push(`${o}=${encodeURIComponent(String(t))}`)}),`${s}${n.length>0?`?${n.join("&")}`:""}${r?`#${r}`:""}`},D=(e,t)=>{if(!e)return{};if(!1===t?.deriveVariants)return{originalImageUrl:e};const o=(e=>{const[t="",o]=e.split("#",2),[r,s=""]=t.split("?",2),i=s.split("&").filter(Boolean).filter(e=>{const[t="",o=""]=e.split("=",2),r=y(t),s=y(o);return"size"!==r||!["big","large","thumbnail","small"].includes(s)}).join("&");return`${r}${i?`?${i}`:""}${o?`#${o}`:""}`})(e);return{originalImageUrl:o,bigImageUrl:C(o,"large"),thumbnailUrl:C(o,"small")}},U=e=>new Promise(t=>{setTimeout(t,e)});const L=new class{constructor(e){this.state="disabled",this.timerId=null,this.reporting=!1,this.context={},this.buffer=[],this.bufferBytes=0,this.reportIntervalMs=this.normalizeReportInterval(e?.reportIntervalMs),this.reportTimeoutMs=e?.reportTimeoutMs??15e3,this.chunkDelayMs=e?.chunkDelayMs??3e3,this.maxChunkBytes=e?.maxChunkBytes??2097152,this.maxBufferBytes=e?.maxBufferBytes??3145728}setEnabled(e){this.setState(e?"enabled":"disabled")}setState(e){this.state=e,"enabled"!==e?(this.stop(),this.clearBuffer()):this.start()}updateContext(e){this.context={...this.context,...e}}updateReportInterval(e){this.reportIntervalMs=this.normalizeReportInterval(e),"enabled"===this.state&&this.start()}append(e){if("disabled"===this.state)return;const t=this.formatEntry(e);this.pushBuffer(t)}async reportNow(){await this.reportLogs()}stop(){this.timerId&&(clearInterval(this.timerId),this.timerId=null)}clearBuffer(){this.buffer=[],this.bufferBytes=0}start(){this.stop(),this.timerId=setInterval(()=>{this.reportLogs()},this.reportIntervalMs)}normalizeReportInterval(e){const t=void 0!==e&&Number.isFinite(e)&&e>0?e:3e5;return Math.max(t,6e4)}canReport(){return Boolean(this.context.restBaseUrl&&this.context.appKey&&this.context.userId&&this.context.token&&this.context.requestAdapter)}formatEntry(e){const t=e.args.length>0?e.args.map(e=>(e=>{if("string"==typeof e)return e;try{return JSON.stringify(e)}catch{return String(e)}})(e)).join(" "):"",o=t?`${e.message} ${t}`:e.message;return`${e.timestamp} [${e.level}] ${o}`}pushBuffer(e){const t=e.length;if(!(t>=this.maxBufferBytes)){for(;this.bufferBytes+t>this.maxBufferBytes&&this.buffer.length>0;){const e=this.buffer.shift();e&&(this.bufferBytes-=e.length)}this.buffer.push(e),this.bufferBytes+=t}}consumeBuffer(){if(0===this.buffer.length)return[];const e=`${this.buffer.join("\n")}\n`;this.clearBuffer();const t=[];let o=e;for(;o.length>this.maxChunkBytes;)t.push(o.slice(0,this.maxChunkBytes)),o=o.slice(this.maxChunkBytes);return o.length>0&&t.push(o),t}requeueChunk(e){this.pushBuffer(e)}async reportLogs(){if("enabled"===this.state&&!this.reporting&&0!==this.buffer.length){this.reporting=!0;try{const e=this.consumeBuffer();if(0===e.length)return;if(!this.canReport())return void e.forEach(e=>this.requeueChunk(e));for(const t of e){await this.reportChunk(t)||this.requeueChunk(t),await U(this.chunkDelayMs)}}finally{this.reporting=!1}}}async reportChunk(e){if(!this.canReport())return!1;const{restBaseUrl:t,appKey:o,userId:r,token:s,resource:i,requestAdapter:n}=this.context;if(!(t&&o&&r&&s&&n))return!1;let a="",E="";try{const e=f(o);a=e.orgName,E=e.appName}catch{return!1}const p=`${t}/${a}/${E}/sdk/users/${r}/client/logs`,T={resource:i??"webim",logContent:e};try{const e=await n.request({url:p,method:"POST",headers:{Authorization:`Bearer ${s}`,"Content-Type":"application/json",Accept:"application/json"},body:T,responseType:"json",timeoutMs:this.reportTimeoutMs});if(e.status<200||e.status>=300)return!1;const t="string"==typeof e.data?(e=>{try{return JSON.parse(e)}catch{return}})(e.data):e.data;return!t||!t.status||"ok"===t.status}catch{return!1}}},g="[MASKED]",P=new Set(["token","password","authorization","appkey","userid","deviceid","accesstoken","refreshtoken","secret","authtoken","sessionid","clientresource"]),b=e=>!!e&&P.has((e=>e.toLowerCase())(e)),G=(e,t,o)=>{const r=o??new WeakSet;if("string"==typeof e)return((e,t)=>b(t)?g:e)(e,t);if("number"==typeof e||"boolean"==typeof e||null==e)return e;if("bigint"==typeof e||"symbol"==typeof e)return e.toString();if("function"==typeof e)return`[Function ${e.name||"anonymous"}]`;if(e instanceof Error)return{name:(s=e).name,message:s.message};var s;if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(e=>G(e,void 0,r));if("object"==typeof e){if(r.has(e))return"[Circular]";if(r.add(e),(e=>!("object"!=typeof e||null===e||Array.isArray(e)||e instanceof Date||e instanceof Error))(e)){const t={};for(const[o,s]of Object.entries(e))b(o)?t[o]=g:t[o]=G(s,o,r);return t}return Object.prototype.toString.call(e)}return"[Unsupported]"},H="undefined"!=typeof document;let w=null,x=!1;const B={DEBUG:0,WARN:1,ERROR:2};class F{constructor(e="WARN"){this.consoleEnabled=!0,this.level=e}setLevel(e){this.level=e}setConsoleEnabled(e){this.consoleEnabled=e}shouldLog(e){return B[e]>=B[this.level]}emit(e,t,o){const r=(e=>{const t=new WeakSet;return e.map(e=>G(e,void 0,t))})(o),s=((e,t,o)=>({timestamp:(new Date).toISOString(),level:e,message:t,args:o}))(e,t,r);if(L.append(s),this.consoleEnabled){const o=new Date,s=`[Chat][${e}][${`${String(o.getHours()).padStart(2,"0")}:${String(o.getMinutes()).padStart(2,"0")}:${String(o.getSeconds()).padStart(2,"0")}.${String(o.getMilliseconds()).padStart(3,"0")}`}]`;H?console.log(`%c${s}`,"color: rgb(0, 157, 255); font-weight: bold",t,...r):console.log(s,t,...r)}const i=w;i&&!x&&Promise.resolve().then(()=>{if(i===w){x=!0;try{i(s)}catch{}finally{x=!1}}})}debug(e,...t){this.shouldLog("DEBUG")&&this.emit("DEBUG",e,t)}warn(e,...t){this.shouldLog("WARN")&&this.emit("WARN",e,t)}error(e,...t){this.shouldLog("ERROR")&&this.emit("ERROR",e,t)}}let v=new F;const k={debug:(e,...t)=>v.debug(e,...t),warn:(e,...t)=>v.warn(e,...t),error:(e,...t)=>v.error(e,...t)},K={INIT:"init",REQUEST:"request",UPLOAD:"upload",SOCKET:"socket",PROTO:"proto",RUNTIME:"runtime",STORAGE:"storage"},V={INIT_FAILED:"PLATFORM_INIT_FAILED",MISSING_CAPABILITY:"PLATFORM_MISSING_CAPABILITY",REQUEST_FAILED:"PLATFORM_REQUEST_FAILED",UPLOAD_FAILED:"PLATFORM_UPLOAD_FAILED",SOCKET_FAILED:"PLATFORM_SOCKET_FAILED",PROTO_FAILED:"PLATFORM_PROTO_FAILED"},q=(e,t)=>{const o=new Error(e);return o.name="PlatformAdapterError",o.code=t.code,o.stage=t.stage,o.retryable=t.retryable,t.details&&(o.details=r(t.details)),o},W=["__uniConfig","skipWaiting","registration","navigator","process","window","document","localStorage","fetch","WebSocket","XMLHttpRequest","FormData","TextEncoder","TextDecoder","crypto"],$=e=>{if(e)return e;return((e,t)=>{if(!e)return t;if(0===Object.keys(t).length)return e;const o={},r=e;for(const s of W)try{const e=r[s];void 0!==e&&(o[s]=e)}catch{}for(const s of Object.keys(t))o[s]=t[s];return o})("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:void 0,{..."undefined"!=typeof wx?{wx:wx}:{},..."undefined"!=typeof qq?{qq:qq}:{},..."undefined"!=typeof tt?{tt:tt}:{},..."undefined"!=typeof swan?{swan:swan}:{},..."undefined"!=typeof my?{my:my}:{},..."undefined"!=typeof dd?{dd:dd}:{},..."undefined"!=typeof jd?{jd:jd}:{},..."undefined"!=typeof ks?{ks:ks}:{},..."undefined"!=typeof uni?{uni:uni}:{}})},Y=e=>{const t={};if(!e)return t;if("function"==typeof e.forEach)return e.forEach((e,o)=>{t[o]=e}),t;const o=e.get?.("content-type");return o&&(t["content-type"]=o),t},j=async(e,t)=>{const o=e;if("function"!=typeof o.text){if("function"!=typeof o.json)return"";const e=await o.json();return t?e:JSON.stringify(e)}const r=await o.text();if(!t||0===r.length)return r;try{return JSON.parse(r)}catch{return r}},z=e=>{const t=e?.fetchImpl;if("function"==typeof t)return{async request(o){const r=o.method??"GET",s={...o.headers??{}},i=new AbortController,n=o.timeoutMs??e?.timeoutMs??15e3;let a=!1;const E=()=>i.abort(o.signal?.reason);o.signal?.aborted?E():o.signal?.addEventListener("abort",E,{once:!0});const p=setTimeout(()=>{a=!0,i.abort()},n),T=((e,t,o)=>{if(e.body instanceof Uint8Array)return new Uint8Array(e.body).buffer;if("string"==typeof e.body)return e.body;if(e.body&&"GET"!==o)return Object.keys(t).some(e=>"content-type"===e.toLowerCase())||(t["Content-Type"]="application/json"),JSON.stringify(e.body)})(o,s,r);try{const e=await t(o.url,{method:r,headers:s,body:T,signal:i.signal});let n;if("arraybuffer"===o.responseType)n=await e.arrayBuffer();else if("text"===o.responseType)n=await e.text();else if("json"===o.responseType)n=await j(e,!0);else{const t=e.headers.get("content-type")??"";n=await j(e,t.includes("application/json"))}return{status:e.status,statusText:e.statusText,headers:Y(e.headers),data:n}}catch(c){const e=((e,t,o)=>t?"timeout":o?.aborted||e instanceof Error&&"AbortError"===e.name?"abort":"network")(c,a,o.signal);throw q("Request adapter execution failed.",{code:V.REQUEST_FAILED,stage:K.REQUEST,retryable:"abort"!==e,details:{url:o.url,method:r,reason:e,cause:c instanceof Error?c.message:String(c)}})}finally{clearTimeout(p),o.signal?.removeEventListener("abort",E)}}}},X=()=>`${Date.now()}${Math.floor(1e6*Math.random()).toString().padStart(6,"0")}`,Q="X-Request-Id",J="direct";class Z{constructor(e){this.events=[],this.enabled=!1,this.acceptedInWindow=0,this.capacityDiagnosticEmitted=!1,this.rateDiagnosticEmitted=!1,this.sendBatch=e.send,this.capacity=e.capacity??1e3,this.batchSize=e.batchSize??10,this.rateLimit=e.rateLimit??1e3,this.flushIntervalMs=e.flushIntervalMs??1e3,this.now=e.now??Date.now,this.onDrop=e.onDrop,this.windowStartedAt=this.now()}get size(){return this.events.length}enqueue(e){return this.refreshRateWindow(),this.acceptedInWindow>=this.rateLimit?(this.rateDiagnosticEmitted||(this.rateDiagnosticEmitted=!0,this.onDrop?.("rate-limit")),!1):this.events.length>=this.capacity?(this.capacityDiagnosticEmitted||(this.capacityDiagnosticEmitted=!0,this.onDrop?.("capacity")),!1):(this.events.push(e),this.acceptedInWindow+=1,this.schedule(),!0)}enable(){this.enabled=!0,this.schedule()}updateAppKey(e,t){for(let o=0;o<this.events.length;o+=1){const r=this.events[o];r&&r.appKey===e&&(this.events[o]={appKey:t,wire:{...r.wire,body:{...r.wire.body,appkey:t}}})}}pause(){this.enabled=!1,this.clearTimer()}clear(){this.pause(),this.events.splice(0,this.events.length),this.acceptedInWindow=0,this.windowStartedAt=this.now(),this.capacityDiagnosticEmitted=!1,this.rateDiagnosticEmitted=!1}refreshRateWindow(){const e=this.now();e-this.windowStartedAt<6e4||(this.windowStartedAt=e,this.acceptedInWindow=0,this.rateDiagnosticEmitted=!1)}schedule(){this.enabled&&0!==this.events.length&&!this.timer&&(this.timer=setTimeout(()=>{this.timer=void 0,this.consume()},this.flushIntervalMs))}async consume(){if(!this.enabled||0===this.events.length)return;const e=this.events[0];if(!e)return;const t=[];for(let o=0;o<this.events.length&&t.length<this.batchSize;){const r=this.events[o];r?.appKey===e.appKey?(t.push(r.wire),this.events.splice(o,1)):o+=1}this.events.length<this.capacity&&(this.capacityDiagnosticEmitted=!1);try{await this.sendBatch(e.appKey,t)}catch{}finally{this.schedule()}}clearTimer(){this.timer&&(clearTimeout(this.timer),this.timer=void 0)}}class ee{constructor(e){this.requestAdapter=e.requestAdapter,this.debug=e.debug??!1,this.now=e.now??Date.now,this.onFailure=e.onFailure}async send(e,t){if(this.requestAdapter&&0!==t.length)try{const o=await this.requestAdapter.request({url:this.debug?"https://data-reporting.realtimemesh.com/report":"https://data-reporting.rtnsvc.com/report",method:"POST",headers:{"Content-Type":"application/json",token:"32f24ab2ddb74f508aa9286c356cec84",appid:e,sendts:String(Math.floor(this.now()/1e3)),biz:"im",debug:String(this.debug)},body:JSON.stringify(t),responseType:"text",timeoutMs:15e3});(o.status<200||o.status>=300)&&this.onFailure?.({reason:"non-success-response",status:o.status})}catch(o){this.onFailure?.({reason:"transport-error",message:o instanceof Error?o.message:String(o)})}else this.onFailure?.({reason:"request-adapter-unavailable",eventCount:t.length})}}const te={none:0,disconnected:0,ethernet:1,lan:1,wifi:2,"slow-2g":7,"2g":7,"3g":7,"4g":7,"5g":7,cellular:7},oe=()=>{const e=$(),t=e.crypto?.randomUUID;return("function"==typeof t?t.call(e.crypto):void 0)??`${Date.now()}_${Math.random().toString(36).slice(2)}`};class re{constructor(e){this.currentState="disabled",this.networkType=-1,this.now=e.now??Date.now,this.randomId=e.randomId??oe;const t=new ee({requestAdapter:e.requestAdapter,debug:e.debug,now:this.now,onFailure:t=>{e.onDiagnostic?.("DataReport transport failed",t)}}),o=e.send??((e,o)=>t.send(e,o));this.queue=new Z({send:o,now:this.now,onDrop:t=>{e.onDiagnostic?.("DataReport event dropped",{reason:t})}})}get state(){return this.currentState}get queuedEventCount(){return this.queue.size}get serviceId(){return this.session?.serviceId}startSession(e){this.queue.clear(),this.currentState="unknown";const t=this.randomId();return this.session={...e,sessionId:`session_${t}`,serviceId:`sid_${t}`},this.enqueue(9674,{did:e.did??"",os:e.os??e.platform,sdkVersion:e.sdkVersion,deviceId:e.deviceId??""}),this.session.serviceId}updateSession(e){this.session&&(e.appKey&&e.appKey!==this.session.appKey&&this.queue.updateAppKey(this.session.appKey,e.appKey),this.session={...this.session,...e})}updateNetworkType(e){this.networkType=(e=>"number"==typeof e&&Number.isFinite(e)?e:"string"!=typeof e?-1:te[e.trim().toLowerCase()]??-1)(e)}applyDnsSwitch(e){if(this.session){if("true"===e)return this.currentState="enabled",void this.queue.enable();this.currentState="disabled",this.queue.clear()}else this.currentState="disabled"}startOperation(e){const t=this.session?.sessionId;if(!t||"disabled"===this.currentState)return this.createNoopOperation();const o=`opr_${this.randomId()}`,r=this.now();let s=!1,i=!1,n=`req_${this.randomId()}`,a=0,E="";const p=()=>!s&&!i&&this.session?.sessionId===t,T=(t,r,s,i,n)=>{p()&&(a=n.success?0:n.code,E=n.success?"":n.description??"",this.enqueue(9675,{uid:e.uid??this.session?.uid,operationId:o,requestid:r,operationName:e.operationName,operationType:e.operationType,requestName:t.requestName??e.operationName,subrequestid:String(s),requestMethod:t.method??"",requestUrl:t.url??"",requestElapse:Math.max(0,this.now()-i),code:n.code,codeDesc:n.description??"",isLastApi:0,isSuccess:n.success?1:0,accessChannel:this.session?.accessChannel??J,msgId:e.msgId,messageType:e.messageType,resultCount:n.resultCount}))},c=(e,t,o,r)=>{const s=this.now();let i=!1;return{retry:()=>(r.next+=1,c(e,t,r.next,r)),finish:r=>{i||(i=!0,T(e,t,o,s,r))}}};return{startRequest:(e={})=>(n=`req_${this.randomId()}`,c(e,n,1,{next:1})),finish:t=>{p()&&(s=!0,this.enqueue(9675,{uid:e.uid??this.session?.uid,operationId:o,requestid:n,operationName:e.operationName,operationType:e.operationType,requestName:"",subrequestid:"0",requestMethod:"",requestUrl:"",requestElapse:Math.max(0,this.now()-r),code:t.success?0:t.code??a,codeDesc:t.success?"":t.description??E,isLastApi:1,isSuccess:t.success?1:0,accessChannel:this.session?.accessChannel??J,msgId:e.msgId,messageType:e.messageType,resultCount:t.resultCount}))},discard:()=>{i=!0}}}reset(){this.currentState="disabled",this.session=void 0,this.queue.clear()}enqueue(e,t){const o=this.session;if(!o||"disabled"===this.currentState)return;const r={lts:this.now(),net:this.networkType,appkey:o.appKey,sdkServiceId:o.serviceId,sdkProduct:0,uikitVersion:o.uikitVersion??"",...t},s={eventId:e,body:Object.fromEntries(Object.entries(r).filter(([,e])=>void 0!==e))};this.queue.enqueue({appKey:o.appKey,wire:s})}createNoopOperation(){const e={retry:()=>e,finish:()=>{}};return{startRequest:()=>e,finish:()=>{},discard:()=>{}}}}let se;const ie=e=>{if("disabled"!==se?.state)return se?.startOperation(e)},ne=()=>{const e=globalThis;return"function"==typeof e.fetch?e.fetch:void 0},ae=()=>z({fetchImpl:ne()})??{request:e=>Promise.reject(q("Request capability is missing for current platform.",{code:V.MISSING_CAPABILITY,stage:K.REQUEST,retryable:!1,details:{capability:"request"}}))},Ee=e=>e??ae(),pe=(e,t)=>{if(!e.matchField)return!1;const o=t[e.matchField];return void 0!==e.matchPattern?"string"==typeof o&&o.includes(e.matchPattern):void 0===e.matchValue?void 0!==o:o===e.matchValue||!("string"!=typeof o&&"number"!=typeof o||"string"!=typeof e.matchValue&&"number"!=typeof e.matchValue)&&String(o)===String(e.matchValue)};function Te(e,t,o){if(!e)return;const r=o&&"object"==typeof o?o:{},s="string"==typeof r.error?r.error:void 0,i=(e=>"string"==typeof e.error_code||"number"==typeof e.error_code?e.error_code:"string"==typeof e.errorCode||"number"==typeof e.errorCode?e.errorCode:"string"==typeof e.error||"number"==typeof e.error?e.error:"string"==typeof e.code||"number"==typeof e.code?e.code:void 0)(r),n="string"==typeof r.error_description?r.error_description:"string"==typeof r.message?r.message:"string"==typeof r.desc?r.desc:void 0,a=(e,t=!1)=>{const o=(e,o,r)=>({reasonKey:e,entry:o,matchedBy:t?"common":r});if(s&&e[s])return o(s,e[s],"key");for(const[s,i]of Object.entries(e))if(pe(i,r))return o(s,i,"field");if(void 0!==i)for(const[r,s]of Object.entries(e)){if(s.code===i||s.canonicalCode===i)return o(r,s,"code");if(Array.isArray(s.aliases)&&s.aliases.includes(String(i)))return o(r,s,"alias")}if(n)for(const[r,s]of Object.entries(e))if(Array.isArray(s.aliases)&&s.aliases.includes(n))return o(r,s,"alias")},E=t?e.apis[t]:void 0,p=E?a(E.errors):void 0;if(p)return p;for(const T of Object.values(e.common)){const e=a(T.errors,!0);if(e)return e}}function ce(t){const o=t.entry?.code??e.REST_BUSINESS_UNKNOWN,r=t.message??function(e){const t=e.apiName?`${e.apiName} failed`:"request failed";if(e.entry?.runtimeMessage)return`REST business error: ${e.entry.runtimeMessage}`;if(e.mapped??Boolean(e.entry)){if(e.reasonKey){const t=e.reasonKey.replace(/([a-z0-9])([A-Z])/g,"$1 $2").split("_").join(" ").split("-").join(" ").toLowerCase();return`REST business error: ${t.charAt(0).toUpperCase()}${t.slice(1)}`}return`REST business error: ${t}`}return e.reasonKey?`REST business error: ${t} (${e.reasonKey})`:`REST business error: ${t}`}({apiName:t.apiName,entry:t.entry,mapped:t.mapped,reasonKey:t.reasonKey});return new E(r,{code:o,details:{api:t.apiName,serverCode:t.serverCode,serverMessage:t.serverMessage,httpStatus:t.httpStatus,mapped:t.mapped??Boolean(t.entry),reasonKey:t.reasonKey,matchedBy:t.matchedBy,retryable:t.entry?.retryable,canonicalCode:t.entry?.canonicalCode??t.entry?.code}})}const _e={getHistoryMessages:{operationName:"REST_GET_HISTORY_MESSAGE",operationType:"REST"},removeHistoryMessages:{operationName:"REST_DELETE_MESSAGES_CONVERSATIONS",operationType:"REST"},searchMessages:{operationName:"REST_SEARCH_MESSAGES",operationType:"REST"},addContact:{operationName:"ROSTER_ADD",operationType:"ROSTER"},deleteContact:{operationName:"ROSTER_REMOVE",operationType:"ROSTER"},acceptContactInvite:{operationName:"ROSTER_ACCEPT",operationType:"ROSTER"},declineContactInvite:{operationName:"ROSTER_DECLINE",operationType:"ROSTER"},addUsersToBlocklist:{operationName:"ROSTER_BAN",operationType:"ROSTER"},removeUserFromBlocklist:{operationName:"ROSTER_ALLOW",operationType:"ROSTER"},getBlocklist:{operationName:"ROSTER_BLACKLIST",operationType:"ROSTER"},getContactList:{operationName:"ROSTER_CONTACTS",operationType:"ROSTER"},setContactRemark:{operationName:"ROSTER_SET_CONTACT_REMARK",operationType:"ROSTER"},updateOwnInfo:{operationName:"USER_UPDATE_USERINFO",operationType:"USER"},getUserInfoByUserId:{operationName:"USER_FETCH_USERINFO",operationType:"USER"},uploadPushToken:{operationName:"USER_UPLOAD_PUSH_TOKEN",operationType:"USER"},createGroup:{operationName:"GROUP_CREATEGROUP",operationType:"GROUP"},destroyGroup:{operationName:"GROUP_DESTOTYGROUP",operationType:"GROUP"},leaveGroup:{operationName:"GROUP_LEAVEGROUP",operationType:"GROUP"},joinGroup:{operationName:"GROUP_JOIN_PUBLICGROUP",operationType:"GROUP"},getGroupMemberList:{operationName:"GROUP_FETCH_MEMEBERS",operationType:"GROUP"},uploadGroupSharedFile:{operationName:"GROUP_UPLOAD_SHAREDFILE",operationType:"GROUP"},downloadGroupSharedFile:{operationName:"GROUP_DOWNLOAD_SHAREDFILE",operationType:"GROUP"},getChatRoomList:{operationName:"CHATROOM_FETCH_CHATROOMSWITHPAGE",operationType:"CHATROOM"},getChatRoomInfo:{operationName:"CHATROOM_FETCH_SPECIFICATION",operationType:"CHATROOM"},joinChatRoom:{operationName:"CHATROOM_JOINCAHTROOM",operationType:"CHATROOM"},leaveChatRoom:{operationName:"CHATROOM_LEAVECAHTROOM",operationType:"CHATROOM"},getConversationList:{operationName:"REST_GET_SESSION_LIST",operationType:"REST"},deleteConversation:{operationName:"REST_DEL_SESSION",operationType:"REST"},setConversationPinned:{operationName:"REST_PIN_CONVERSATION",operationType:"REST"},getPinnedMessageList:{operationName:"REST_FETCH_PINMESSAGES",operationType:"REST"},clearAllMessagesAndConversations:{operationName:"REST_DELETE_MESSAGES_CONVERSATIONS",operationType:"REST"},setPinned:{operationName:"REST_PIN_MESSAGE",operationType:"REST"},getSelfIdsOnOtherPlatform:{operationName:"USER_LOGGEDIN_OTHER_PLATFORM",operationType:"USER"},getJoinedGroupList:{operationName:"GROUP_FETCH_USERS_GROUP",operationType:"GROUP"},changeGroupOwner:{operationName:"GROUP_CHANGE_OWNER",operationType:"GROUP"},getGroupInfo:{operationName:"GROUP_FETCH_SPECIFICATION",operationType:"GROUP"},getGroupInfoList:{operationName:"GROUP_FETCH_SPECIFICATION",operationType:"GROUP"},updateGroupInfo:{operationName:"GROUP_CHANGE_GROUPATTRIBUTE",operationType:"GROUP"},getGroupAdminList:{operationName:"GROUP_GET_ADMIN",operationType:"GROUP"},addGroupAdmin:{operationName:"GROUP_SET_ADMIN",operationType:"GROUP"},removeGroupAdmin:{operationName:"GROUP_REMOVE_ADMIN",operationType:"GROUP"},inviteUsersToGroup:{operationName:"GROUP_INVITE_TO_GROUP",operationType:"GROUP"},acceptGroupJoinRequest:{operationName:"GROUP_ACCEPT_JOINPUBLICGROUPAPPL",operationType:"GROUP"},rejectGroupJoinRequest:{operationName:"GROUP_DECLINE_JOINPUBLICGROUPAPPL",operationType:"GROUP"},acceptInvitation:{operationName:"GROUP_ACCEPT_INVITATION",operationType:"GROUP"},rejectInvitation:{operationName:"GROUP_DECLINE_INVITATION",operationType:"GROUP"},removeGroupMembers:{operationName:"GROUP_REMOVE_MEMBERS",operationType:"GROUP"},muteGroupMembers:{operationName:"GROUP_MUTE_MEMBERS",operationType:"GROUP"},unmuteGroupMembers:{operationName:"GROUP_UNMUTE_MEMBERS",operationType:"GROUP"},getGroupMuteList:{operationName:"GROUP_FETCH_MUTES",operationType:"GROUP"},blockGroupMembers:{operationName:"GROUP_BLOCK_MEMBERS",operationType:"GROUP"},unblockGroupMembers:{operationName:"GROUP_UNBLOCK_MEMBERS",operationType:"GROUP"},getGroupBlocklist:{operationName:"GROUP_GET_BLOCK_LIST",operationType:"GROUP"},muteAllGroupMembers:{operationName:"GROUP_MUTE_ALLMEMBERS",operationType:"GROUP"},unmuteAllGroupMembers:{operationName:"GROUP_UNMUTE_ALLMEMBERS",operationType:"GROUP"},addUsersToGroupAllowlist:{operationName:"GROUP_ADD_WHITELIST",operationType:"GROUP"},removeUsersFromGroupAllowlist:{operationName:"GROUP_REMOVE_WHITELIST",operationType:"GROUP"},getGroupAllowlist:{operationName:"GROUP_FETCH_WHITELIST",operationType:"GROUP"},checkIfInGroupAllowList:{operationName:"GROUP_IS_IN_WHITELIST",operationType:"GROUP"},getGroupMessageReadUsers:{operationName:"GROUP_GET_READ_USERS",operationType:"GROUP"},getGroupAnnouncement:{operationName:"GROUP_FETCH_ANNOUNCEMENT",operationType:"GROUP"},updateGroupAnnouncement:{operationName:"GROUP_UPDATE_ANNOUNCEMENT",operationType:"GROUP"},deleteGroupSharedFile:{operationName:"GROUP_DELETE_SHAREDFILE",operationType:"GROUP"},getGroupSharedFileList:{operationName:"GROUP_FETCH_SHAREDFILE",operationType:"GROUP"},setGroupMemberAttributes:{operationName:"GROUP_MEMBER_SET_META_DATA",operationType:"GROUP"},getGroupMembersAttributes:{operationName:"GROUP_MEMBER_FETCH_META_DATA",operationType:"GROUP"},destroyChatRoom:{operationName:"CHATROOM_DESTORYCHATROOM",operationType:"CHATROOM"},updateChatRoomInfo:{operationName:"CHATROOM_CHANGE_ATTRIBUTE",operationType:"CHATROOM"},removeChatRoomMembers:{operationName:"CHATROOM_REMOVE_MEMBERS",operationType:"CHATROOM"},addChatRoomMembers:{operationName:"CHATROOM_ADD_MEMBERS",operationType:"CHATROOM"},getChatRoomMemberList:{operationName:"CHATROOM_FETCH_MEMBERS",operationType:"CHATROOM"},getChatRoomAdminList:{operationName:"CHATROOM_GET_ADMIN",operationType:"CHATROOM"},setChatRoomAdmin:{operationName:"CHATROOM_SET_ADMIN",operationType:"CHATROOM"},removeChatRoomAdmin:{operationName:"CHATROOM_REMOVE_ADMIN",operationType:"CHATROOM"},muteChatRoomMembers:{operationName:"CHATROOM_MUTE_USER",operationType:"CHATROOM"},unmuteChatRoomMembers:{operationName:"CHATROOM_UNMUTE_USER",operationType:"CHATROOM"},getChatRoomMuteList:{operationName:"CHATROOM_FETCH_MUTES",operationType:"CHATROOM"},blockChatRoomMembers:{operationName:"CHATROOM_BLOCK_USERS",operationType:"CHATROOM"},unblockChatRoomMembers:{operationName:"CHATROOM_UNBLOCK_USERS",operationType:"CHATROOM"},getChatRoomBlocklist:{operationName:"CHATROOM_FETCH_BANS",operationType:"CHATROOM"},muteAllChatRoomMembers:{operationName:"CHATROOM_MUTE_ALLMEMEBERS",operationType:"CHATROOM"},unmuteAllChatRoomMembers:{operationName:"CHATROOM_UNMUTE_ALLMEMEBERS",operationType:"CHATROOM"},addUsersToChatRoomAllowlist:{operationName:"CHATROOM_ADD_WHITELIST",operationType:"CHATROOM"},removeUsersFromChatRoomAllowlist:{operationName:"CHATROOM_REMOVE_WHITELIST",operationType:"CHATROOM"},getChatRoomAllowlist:{operationName:"CHATROOM_FETCH_WHITELIST",operationType:"CHATROOM"},checkIfInChatRoomAllowList:{operationName:"CHATROOM_FETCH_MEMBERIN_WHITELIST",operationType:"CHATROOM"},getChatRoomAnnouncement:{operationName:"CHATROOM_FETCH_ANNOUNCEMENT",operationType:"CHATROOM"},updateChatRoomAnnouncement:{operationName:"CHATROOM_UPDATE_ANNOUNCEMENT",operationType:"CHATROOM"},deleteChatRoomSharedFile:{operationName:"CHATROOM_REMOVE_SHARE_FILE",operationType:"CHATROOM"},getChatRoomSharedFileList:{operationName:"CHATROOM_GET_SHARE_FILE_LIST",operationType:"CHATROOM"},setChatRoomAttributes:{operationName:"CHATROOM_SET_META_DATA",operationType:"CHATROOM"},removeChatRoomAttributes:{operationName:"CHATROOM_DELETE_META_DATA",operationType:"CHATROOM"},getChatRoomAttributes:{operationName:"CHATROOM_FETCH_META_DATA",operationType:"CHATROOM"}},Oe=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1_$2").replace(/[^a-zA-Z0-9]+/g,"_").replace(/^_+|_+$/g,"").toUpperCase();exports.AuthenticationError=i,exports.COMMON_ERROR_MAP={common:{validation:{range:"100-110",errors:{MISSING_REQUIRED:{code:110},INVALID_FORMAT:{code:110},UNKNOWN:{code:110}}},auth:{range:"108,200-215",errors:{ALREADY_LOGIN:{code:200},NOT_LOGIN:{code:201},UNAUTHORIZED:{code:202},FORBIDDEN:{code:210},TOKEN_EXPIRED:{code:108},BIND_ANOTHER_DEVICE:{code:213},LOGIN_TOO_MANY_DEVICES:{code:214},USER_MUTED:{code:215}}},connection:{range:"1,100,202,300-304",errors:{TIMEOUT:{code:301},LOGIN_TIMEOUT:{code:301},WEBSOCKET_ERROR:{code:300},NOT_CREATED:{code:1},CLOSED_BEFORE_READY:{code:300},CANCELLED:{code:1},PROVISION_TIMEOUT:{code:301},PROVISION_REJECTED:{code:202},PROVISION_CLOSED:{code:300},DNSLIST_FAILED:{code:304},SERVER_BUSY:{code:302}}},storage:{range:"3",errors:{OPERATION_FAILED:{code:3}}},message:{range:"1,300-511",errors:{NOT_CONNECTED:{code:300},ACK_TIMEOUT:{code:301},SEND_FAILED:{code:303},SENDER_DESTROYED:{code:1},ENCODE_FAILED:{code:500},DECODE_FAILED:{code:500},ACK_MISSING:{code:301}}},transport:{range:"2,301,303",errors:{NETWORK_ERROR:{code:2},TIMEOUT:{code:301},HTTP_ERROR:{code:303},BUSINESS_UNKNOWN:{code:303}}},upload:{range:"1,100,110,301,402,405",errors:{REQUIRED_FIELD_MISSING:{code:110},INVALID_APPKEY:{code:100},SIZE_EXCEEDED:{code:405},REQUEST_FAILED:{code:402},TIMEOUT:{code:301},ABORTED:{code:1}}},unknown:{range:"1,4",errors:{UNKNOWN:{code:1},SERVICE_LIMIT_EXCEEDED:{code:4}}},push:{range:"1500,1501,1502",errors:{TOKEN_UPLOAD_FAILED:{code:1500},SILENT_MODE_OPERATION_FAILED:{code:1501},PUSH_LANGUAGE_OPERATION_FAILED:{code:1502}}},chatroom:{range:"700-707",errors:{CHATROOM_INVALID_ID:{code:700},CHATROOM_NOT_JOINED:{code:702},CHATROOM_PERMISSION_DENIED:{code:703},CHATROOM_MEMBERS_FULL:{code:704},CHATROOM_NOT_EXIST:{code:705},CHATROOM_OWNER_NOT_ALLOW_LEAVE:{code:706},CHATROOM_USER_IN_BLOCKLIST:{code:707}}}},apis:{}},exports.CONNECT_TIMEOUT=1e4,exports.ConnectionError=class extends s{constructor(t,o){super(t,o?.code??e.CONNECTION_WEBSOCKET_ERROR,o),this.name="ConnectionError"}},exports.DATA_REPORT_CORRELATION_LIMIT=1e3,exports.DEFAULT_PART_SIZE=5242880,exports.ERROR_CODES=e,exports.GROUP_NAMECARD_HYDRATION_BATCH_SIZE=50,exports.GROUP_NAMECARD_HYDRATION_MAX_CONCURRENCY=5,exports.GROUP_NAMECARD_HYDRATION_MIN_WINDOW_MS=1e3,exports.GROUP_NAMECARD_HYDRATION_WINDOW_MS=7e3,exports.GROUP_SHARED_FILE_DOWNLOAD_TIMEOUT=6e4,exports.GROUP_SHARED_FILE_UPLOAD_TIMEOUT=3e5,exports.HEARTBEAT_INTERVAL=3e4,exports.HEARTBEAT_TIMEOUT=6e4,exports.IMAGE_TYPE_ORIGINAL=m,exports.LOGIN_TIMEOUT_DEFAULT=3e4,exports.LOGIN_TIMEOUT_MAX=12e4,exports.LOGIN_TIMEOUT_MIN=5e3,exports.MANAGER_SESSION_ENDING_TIMEOUT=6e3,exports.MAX_POOL=4,exports.MESSAGE_TIMEOUT=15e3,exports.MULTIPART_THRESHOLD=5242880,exports.MessageReceiveError=class extends s{constructor(t,o){super(t,o?.code??e.MESSAGE_DECODE_FAILED,o),this.name="MessageReceiveError"}},exports.MessageSendError=class extends s{constructor(t,o){super(t,o?.code??e.MESSAGE_SEND_FAILED,o),this.name="MessageSendError"}},exports.NATIVE_PUSH_BIND_MAX_RETRIES=2,exports.NATIVE_PUSH_BIND_REQUEST_TIMEOUT=5e3,exports.NATIVE_PUSH_BIND_RETRY_DELAYS=[1e3,2e3],exports.NATIVE_PUSH_REMOVE_MAX_RETRIES=1,exports.NATIVE_PUSH_REMOVE_REQUEST_TIMEOUT=2500,exports.NATIVE_PUSH_REMOVE_RETRY_DELAY=500,exports.NetworkError=class extends s{constructor(t,o){super(t,o?.code??e.REST_NETWORK_ERROR,o),this.name="NetworkError"}},exports.PLATFORM_ERROR_CODE=V,exports.PLATFORM_ERROR_STAGE=K,exports.PROVISION_TIMEOUT=1e4,exports.RECONNECT_BACKOFF_MULTIPLIER=2,exports.RECONNECT_INITIAL_DELAY=1e3,exports.RECONNECT_MAX_DELAY=6e4,exports.REQUEST_ID_HEADER=Q,exports.REQUEST_TIMEOUT=15e3,exports.RUNTIME_PLATFORMS={WEB:"web",WECHAT_MINIAPP:"wechat-miniapp",QQ_MINIAPP:"qq-miniapp",TOUTIAO_MINIAPP:"toutiao-miniapp",BAIDU_MINIAPP:"baidu-miniapp",ALIPAY_MINIAPP:"alipay-miniapp",DINGTALK_MINIAPP:"dingtalk-miniapp",LARK_MINIAPP:"lark-miniapp",KUAISHOU_MINIAPP:"kuaishou-miniapp",JD_MINIAPP:"jd-miniapp",MINIAPP_360:"360-miniapp",HARMONY_MINIAPP:"harmony-miniapp",QUICKAPP:"quickapp",UNIAPP:"uniapp",REACT_NATIVE:"react-native",ELECTRON_RENDERER:"electron-renderer",ELECTRON_MAIN:"electron-main",UNKNOWN:"unknown"},exports.RestBusinessError=E,exports.RestClient=class{constructor(e,t){this.baseUrl=e.replace(/\/$/,""),this.timeout=t?.timeout??15e3,this.errorMap=t?.errorMap,this.requestAdapter=Ee(t?.requestAdapter),this.includeRequestId=t?.includeRequestId??!1,this.defaultHeaders={Accept:"application/json",...t?.headers}}sanitizeUrl(e){try{const t=new URL(e),o=t.searchParams;for(const e of o.keys())o.set(e,"***");const r=o.toString(),s=r?`?${r}`:"";return`${t.origin}${t.pathname}${s}`}catch{return e.split("?")[0]??e}}setAuthToken(e){this.defaultHeaders.Authorization=`Bearer ${e}`}removeAuthToken(){delete this.defaultHeaders.Authorization}buildHttpStatusFallbackError(t,o,r,s){const a={...o.operation?{api:o.operation}:{},url:o.url,method:o.method,httpStatus:t,serverCode:r,serverMessage:s,mapped:!1};if(400===t)return new n("Invalid request parameters",{code:e.VALIDATION_UNKNOWN,details:{...a,canonicalCode:e.VALIDATION_UNKNOWN}});if(401===t){const t=[r,s].some(e=>"string"==typeof e&&/token[ _-]?(?:has[ _-]?)?expired/i.test(e)),o=t?e.AUTH_TOKEN_EXPIRED:e.AUTH_UNAUTHORIZED;return new i(t?"Authentication token expired":"Authentication failed",{code:o,details:{...a,reasonKey:t?"token_expired":"unauthorized",canonicalCode:o}})}return 403===t?new i("Access forbidden",{code:e.AUTH_FORBIDDEN,details:{...a,canonicalCode:e.AUTH_FORBIDDEN}}):429===t?new E("REST rate limit exceeded",{code:e.SERVICE_LIMIT_EXCEEDED,details:{...a,retryable:!0,reasonKey:"request_rate_limited",canonicalCode:e.SERVICE_LIMIT_EXCEEDED}}):t>=500?new E("REST business error: request failed",{code:e.REST_BUSINESS_UNKNOWN,details:{...a,retryable:!0,reasonKey:"server_unknown_error",canonicalCode:e.REST_BUSINESS_UNKNOWN}}):void 0}async request(t,o={}){const r=`${this.baseUrl}${t}`,i=o.method??"GET",n=Date.now(),E=this.sanitizeUrl(r);k.debug("REST request",{method:i,url:E,operation:o.operation});const p=o.operation?(e=>{const t=_e[e];if(t)return t;const o=(e=>{const t=e.toLowerCase();return t.includes("chatroom")||t.includes("chat_room")?"CHATROOM":t.includes("group")?"GROUP":t.includes("contact")||t.includes("blocklist")?"ROSTER":t.includes("userinfo")||t.includes("presence")?"USER":"REST"})(e);return{operationName:`REST_${Oe(e)}`,operationType:o}})(o.operation):void 0,T=p?ie(p):void 0,c=T?.startRequest({requestName:p?.operationName,method:i,url:r});let _=0;const O={...this.defaultHeaders,...o.headers};if(this.includeRequestId&&(O[Q]=X()),o.body&&"GET"!==i){const e=Object.keys(O).some(e=>"content-type"===e.toLowerCase());"string"==typeof o.body?e||(O["Content-Type"]="application/x-www-form-urlencoded"):e||(O["Content-Type"]="application/json")}else if("GET"===i)for(const e of Object.keys(O))"content-type"===e.toLowerCase()&&delete O[e];try{const e=await this.requestAdapter.request({url:r,method:i,headers:O,body:o.body,timeoutMs:o.timeout??this.timeout});_=e.status;const t=((e,t)=>{if("string"!=typeof e)return e;const o=Object.entries(t).find(([e])=>"content-type"===e.toLowerCase()),r=e.trim();if(!(o?.[1].includes("application/json")||r.startsWith("{")&&r.endsWith("}")||r.startsWith("[")&&r.endsWith("]")))return e;try{return JSON.parse(r)}catch{return e}})(e.data,e.headers),s=Date.now()-n;(e.status<200||e.status>=300)&&(k.warn("REST response error",{method:i,url:E,status:e.status,duration:s}),this.handleErrorPayload(e.status,e.statusText??"",t,{operation:o.operation,url:r,method:i})),k.debug("REST response",{method:i,url:E,status:e.status,duration:s});const a=(e=>{if(Array.isArray(e))return e.length;if(!e||"object"!=typeof e)return;const t=e;for(const o of["entities","data","items","messages","conversations","results"]){const e=t[o];if(Array.isArray(e))return e.length}})(t);return c?.finish({code:e.status,success:!0,resultCount:a}),T?.finish({code:0,success:!0,resultCount:a}),t}catch(u){const t=0!==_?_:u instanceof s?u.code:-1,n=u instanceof Error?u.message:String(u);if(c?.finish({code:t,success:!1,description:n}),T?.finish({code:t,success:!1,description:n}),u instanceof s)throw u;const p=(e=>{if(!e||"object"!=typeof e)return;const t=e.details;if(!t||"object"!=typeof t)return;const o=t.reason;return"abort"===o||"network"===o||"timeout"===o?o:void 0})(u);if(u instanceof Error&&"AbortError"===u.name||"timeout"===p)throw k.warn("REST request timeout",{method:i,url:E,timeout:o.timeout??this.timeout}),new a(`Request timeout: ${r}`,{code:e.REST_TIMEOUT,details:{url:r,method:i,timeout:o.timeout??this.timeout}});throw k.warn("REST request failed",{method:i,url:E}),new a(`Request failed: ${r}`,{code:e.REST_NETWORK_ERROR,details:{url:r,method:i,...p?{reason:p}:{}}})}}handleErrorPayload(t,o,r,s){const i=r&&"object"==typeof r?r:{},n=((e,t)=>{if(!e.error||"object"!=typeof e.error||Array.isArray(e.error))return;const o=e.error,r=o.code;if("number"!=typeof r&&"string"!=typeof r)return;const s=String(r);return/^\d{7}$/.test(s)&&Number(s.slice(0,3))===t?o:void 0})(i,t),E=n?{...i,code:n.code,message:n.message}:r,p=Te(this.errorMap,s.operation,E),T="string"==typeof i.error?i.error:void 0,c="number"==typeof i.error_code||"string"==typeof i.error_code?i.error_code:"number"==typeof i.errorCode||"string"==typeof i.errorCode?i.errorCode:"number"==typeof i.code||"string"==typeof i.code?i.code:"string"==typeof i.error?i.error:"number"==typeof n?.code||"string"==typeof n?.code?n.code:void 0,_="string"==typeof i.message?i.message:"string"==typeof i.error_description?i.error_description:"string"==typeof i.desc?i.desc:"string"==typeof n?.message?n.message:void 0,O=!!(401!==t&&403!==t||void 0!==T&&"unauthorized"!==T&&"auth_failed"!==T&&"forbidden"!==T)&&(void 0!==T||"string"==typeof i.error_description||"string"==typeof i.message||"string"==typeof i.desc);if(s.operation&&p)throw ce({apiName:s.operation,entry:p.entry,serverCode:c,serverMessage:_,httpStatus:t,mapped:!0,reasonKey:p.reasonKey,matchedBy:p.matchedBy});const u=this.buildHttpStatusFallbackError(t,s,c,_);if(u)throw u;if(s.operation&&O)throw ce({apiName:s.operation,serverCode:c,serverMessage:_,httpStatus:t,mapped:!1,reasonKey:T});throw new a(`HTTP ${t}: ${o}`,{code:e.REST_HTTP_ERROR,details:{url:s.url,method:s.method,httpStatus:t}})}get(e,t){return this.request(e,{...t,method:"GET"})}post(e,t,o){return this.request(e,{...o,method:"POST",body:t})}put(e,t,o){return this.request(e,{...o,method:"PUT",body:t})}delete(e,t){return this.request(e,{...t,method:"DELETE"})}patch(e,t,o){return this.request(e,{...o,method:"PATCH",body:t})}},exports.RestTransportError=a,exports.SDKError=s,exports.SEND_CONNECTION_RECOVERY_TIMEOUT=1e4,exports.SESSION_LIST_SYNC_OVERLAP_MS=2e4,exports.SOCKET_READY_STATE={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},exports.SYNC_WEBSOCKET_COMPLETE_CLOSE_DELAY=0,exports.SYNC_WEBSOCKET_CONNECT_TIMEOUT=5e3,exports.SYNC_WEBSOCKET_IDLE_TIMEOUT=1e4,exports.SYNC_WEBSOCKET_RETRY_BACKOFF_MULTIPLIER=2,exports.SYNC_WEBSOCKET_RETRY_INITIAL_DELAY=1e3,exports.SYNC_WEBSOCKET_RETRY_MAX_DELAY=5e3,exports.StorageError=class extends s{constructor(t,o){super(t,o?.code??e.STORAGE_OPERATION_FAILED,o),this.name="StorageError"}},exports.UPLOAD_TIMEOUT=3e5,exports.USER_INFO_HYDRATION_BATCH_SIZE=20,exports.USER_INFO_HYDRATION_MAX_CONCURRENCY=3,exports.USER_INFO_HYDRATION_MAX_RETRIES=1,exports.USER_INFO_HYDRATION_WINDOW_MS=7e3,exports.UploadError=p,exports.ValidationError=n,exports.appendAttachUrlParams=(e,t)=>{if(!e)return"";const o={};return e.includes("em-redirect")||(o["em-redirect"]="true"),t&&!e.includes("share-secret=")&&(o["share-secret"]=t),0===Object.keys(o).length?e:M(e,o)},exports.appendUrlQueryParams=M,exports.applyDataReportDnsSwitch=e=>{se?.applyDnsSwitch(e)},exports.buildAttachmentPrecheckDecision=e=>{const t=(o=e.messageType,r=e.imageType,"image"!==o?"attachment":r===m?"image-origin":"image-big");var o,r;const s=(e=>"image-origin"===e?204800:1048576)(t),i=e.fileSize>s;return{shouldPrecheck:i,thresholdType:t,thresholdBytes:s,actualBytes:e.fileSize,reason:i?"threshold-exceeded":"below-threshold"}},exports.buildUploadResult=t=>{const o=t.response.entities?.[0];if(!o?.uuid)throw new p("Upload response missing uuid",{code:e.UPLOAD_REQUEST_FAILED,details:{response:t.response}});const r=o["share-secret"],s=o["file-metadata"]??{},i="number"==typeof s["content-length"]?s["content-length"]:t.fallbackSize,n="string"==typeof s["content-type"]?s["content-type"]:t.fileType,a=`${t.restBaseUrl}/${t.orgName}/${t.appName}/chatfiles/${o.uuid}`;if("image"===t.messageType){const e=(t.imageType??S)===m;return{...D(a,{deriveVariants:!t.useCustomAttachmentUpload}),isOriginalImage:e,secret:r,fileLength:i,filetype:n,filename:t.fileName,width:t.width,height:t.height}}const E="video"===t.messageType?`${a}?vframe=true`:void 0;return{url:a,secret:r,fileLength:i,filetype:n,filename:t.fileName,thumbnailUrl:E}},exports.createPlatformError=q,exports.createRestBusinessError=ce,exports.createTraceId=X,exports.createWebRequestAdapter=z,exports.deriveImageUrls=D,exports.fromProtocolImageType=e=>2===e?S:m,exports.getRuntimeGlobal=$,exports.installDataReporter=e=>(se?.reset(),se=new re(e),se),exports.isRemoteUrl=h,exports.isSDKError=function(e){if(e instanceof s)return!0;if("object"!=typeof e||null===e)return!1;const t=e;return"string"==typeof t.name&&"string"==typeof t.message&&"number"==typeof t.code&&"function"==typeof t.toJSON},exports.logger=k,exports.mergeRuntimeErrorMaps=(...e)=>{const t={},o={};for(const r of e)Object.assign(t,r.common),Object.assign(o,r.apis);return{common:t,apis:o}},exports.normalizeAttachmentFile=(t,o)=>{if(!t)throw new p("Attachment file is required",{code:e.UPLOAD_REQUIRED_FIELD_MISSING,details:{reason:"file missing"}});const r=("number"==typeof o.fileLength?o.fileLength:void 0)??("fileSize"in o&&"number"==typeof o.fileSize?o.fileSize:void 0),s=R({file:t,fallbackName:o.filename,fallbackMimeType:o.filetype,fallbackSize:r});if("web-file"===s.source.sourceType&&!s.webFile)throw new p("Attachment file is required",{code:e.UPLOAD_REQUIRED_FIELD_MISSING,details:{reason:"web file missing"}});return s},exports.normalizeUploadSource=R,exports.parseAppKey=f,exports.parseAttachmentPrecheckResult=t=>{const o=t.entities?.[0],r=!0===o?.exists,s="string"==typeof o?.uuid&&o.uuid.length>0?o.uuid:void 0,i=o,n=i?.["exists-type"]??i?.existsType,a="origin"===n?m:n===S||n===m?n:void 0,E="string"==typeof o?.["share-secret"]?o["share-secret"]:void 0;if(r&&!s)throw new p("Upload precheck response missing uuid",{code:e.UPLOAD_REQUEST_FAILED,details:{response:t}});return{uuid:s,exists:r,existsType:a,shareSecret:E,hit:(T={exists:r,uuid:s},T.exists&&"string"==typeof T.uuid&&T.uuid.length>0)};var T},exports.reportLogsNow=async function(){await L.reportNow()},exports.resetDataReporter=()=>{se?.reset(),se=void 0},exports.resolveApiBusinessError=Te,exports.resolveImageSendPolicy=e=>e.isGif?{resolvedImageType:m,reason:"gif-force-origin"}:e.isOriginalImage?{resolvedImageType:m,reason:"explicit-original"}:{resolvedImageType:S,reason:"default-large"},exports.resolveRequestAdapter=Ee,exports.sanitizeErrorUrl=o,exports.setConsoleLogEnabled=function(e){v instanceof F&&v.setConsoleEnabled(e)},exports.setLogEntrySink=function(e){w=e},exports.setLogLevel=function(e){v instanceof F&&v.setLevel(e)},exports.setLogReportInterval=function(e){L.updateReportInterval(e)},exports.setLogReportState=function(e){L.setState(e)},exports.shouldUploadByUrl=(e,t)=>!!t||(!e||!h(e)),exports.startDataReportOperation=ie,exports.startDataReportSession=e=>se?.startSession(e),exports.stopLogReporter=function(){L.stop()},exports.toProtocolImageType=e=>e===m?1:2,exports.toUploadChatType=e=>"singleChat"===e?I:"groupChat"===e?A:N,exports.toUploadImageType=e=>e===m?"origin":"large",exports.updateDataReportNetworkType=e=>{se?.updateNetworkType(e)},exports.updateDataReportSession=e=>{se?.updateSession(e)},exports.updateLogReportContext=function(e){L.updateContext(e)};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e={MESSAGE:"onMessage",STREAM_MESSAGE:"onStreamMessage",CONVERSATION_LIST_UPDATE:"onConversationListUpdate",MESSAGE_READ_RECEIPTS:"onMessageReadReceipts",MESSAGE_DELIVERED:"onMessageDelivered",MESSAGE_RECALLED:"onMessageRecalled",MESSAGE_UPDATED:"onMessageUpdated",REACTION_CHANGED:"onReactionChanged",PINNED_MESSAGE_CHANGED:"onPinnedMessageChanged",MULTI_DEVICE_CONTACT:"onMultiDeviceContact",MULTI_DEVICE_CONVERSATION:"onMultiDeviceConversation",SYNC_DATA_START:"onSyncDataStart",SYNC_DATA_FINISHED:"onSyncDataFinished"},E={LOG:"onLog"},o={STATUS_CHANGE:"onPresenceStatusChange"},n={INVITED:"onContactInvited",DELETED:"onContactDeleted",ADDED:"onContactAdded",REFUSE:"onContactRefuse",AGREED:"onContactAgreed",CONTACT_INFO_UPDATED:"onContactInfoUpdated"},_={INVITATION_RECEIVED:"onInvitationReceived",REQUEST_TO_JOIN_RECEIVED:"onRequestToJoinReceived",REQUEST_TO_JOIN_ACCEPTED:"onRequestToJoinAccepted",REQUEST_TO_JOIN_DECLINED:"onRequestToJoinDeclined",INVITATION_ACCEPTED:"onInvitationAccepted",INVITATION_DECLINED:"onInvitationDeclined",USER_REMOVED:"onUserRemoved",GROUP_DESTROYED:"onGroupDestroyed",AUTO_ACCEPT_INVITATION:"onAutoAcceptInvitationFromGroup",MUTE_LIST_ADDED:"onMuteListAdded",MUTE_LIST_REMOVED:"onMuteListRemoved",ALLOW_LIST_ADDED:"onAllowListAdded",ALLOW_LIST_REMOVED:"onAllowListRemoved",ALL_MEMBER_MUTE_STATE_CHANGED:"onAllMemberMuteStateChanged",ADMIN_ADDED:"onAdminAdded",ADMIN_REMOVED:"onAdminRemoved",OWNER_CHANGED:"onOwnerChanged",MEMBERS_JOINED:"onMembersJoined",MEMBERS_EXITED:"onMembersExited",ANNOUNCEMENT_CHANGED:"onAnnouncementChanged",SHARED_FILE_ADDED:"onSharedFileAdded",SHARED_FILE_DELETED:"onSharedFileDeleted",GROUP_INFO_CHANGED:"onGroupInfoChanged",GROUP_DISABLED_CHANGED:"onGroupDisabledChanged",GROUP_MEMBER_ATTRIBUTE_CHANGED:"onGroupMemberAttributeChanged",USER_GROUP_NAMECARD_UPDATED:"onUserGroupNamecardUpdated"},A={CHAT_ROOM_DESTROYED:"__chatroom:onChatRoomDestroyed",MEMBERS_JOINED:"__chatroom:onMembersJoined",MEMBERS_EXITED:"__chatroom:onMembersExited",REMOVED_FROM_CHAT_ROOM:"__chatroom:onRemovedFromChatRoom",MUTE_LIST_ADDED:"__chatroom:onMuteListAdded",MUTE_LIST_REMOVED:"__chatroom:onMuteListRemoved",ALLOW_LIST_ADDED:"__chatroom:onAllowListAdded",ALLOW_LIST_REMOVED:"__chatroom:onAllowListRemoved",ALL_MEMBER_MUTE_STATE_CHANGED:"__chatroom:onAllMemberMuteStateChanged",ADMIN_ADDED:"__chatroom:onAdminAdded",ADMIN_REMOVED:"__chatroom:onAdminRemoved",OWNER_CHANGED:"__chatroom:onOwnerChanged",ANNOUNCEMENT_CHANGED:"__chatroom:onAnnouncementChanged",CHAT_ROOM_INFO_CHANGED:"__chatroom:onChatRoomInfoChanged",ATTRIBUTES_UPDATE:"__chatroom:onAttributesUpdate",ATTRIBUTES_REMOVED:"__chatroom:onAttributesRemoved"},D={TOKEN_BOUND:"onPushTokenBound",TOKEN_BIND_FAILED:"onPushTokenBindFailed",TOKEN_REMOVE_FAILED:"onPushTokenRemoveFailed"};export{e as C,_ as G,E as L,o as P,n as a,D as b,A as c};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.ChatEventName={MESSAGE:"onMessage",STREAM_MESSAGE:"onStreamMessage",CONVERSATION_LIST_UPDATE:"onConversationListUpdate",MESSAGE_READ_RECEIPTS:"onMessageReadReceipts",MESSAGE_DELIVERED:"onMessageDelivered",MESSAGE_RECALLED:"onMessageRecalled",MESSAGE_UPDATED:"onMessageUpdated",REACTION_CHANGED:"onReactionChanged",PINNED_MESSAGE_CHANGED:"onPinnedMessageChanged",MULTI_DEVICE_CONTACT:"onMultiDeviceContact",MULTI_DEVICE_CONVERSATION:"onMultiDeviceConversation",SYNC_DATA_START:"onSyncDataStart",SYNC_DATA_FINISHED:"onSyncDataFinished"},exports.ChatRoomDispatchEventName={CHAT_ROOM_DESTROYED:"__chatroom:onChatRoomDestroyed",MEMBERS_JOINED:"__chatroom:onMembersJoined",MEMBERS_EXITED:"__chatroom:onMembersExited",REMOVED_FROM_CHAT_ROOM:"__chatroom:onRemovedFromChatRoom",MUTE_LIST_ADDED:"__chatroom:onMuteListAdded",MUTE_LIST_REMOVED:"__chatroom:onMuteListRemoved",ALLOW_LIST_ADDED:"__chatroom:onAllowListAdded",ALLOW_LIST_REMOVED:"__chatroom:onAllowListRemoved",ALL_MEMBER_MUTE_STATE_CHANGED:"__chatroom:onAllMemberMuteStateChanged",ADMIN_ADDED:"__chatroom:onAdminAdded",ADMIN_REMOVED:"__chatroom:onAdminRemoved",OWNER_CHANGED:"__chatroom:onOwnerChanged",ANNOUNCEMENT_CHANGED:"__chatroom:onAnnouncementChanged",CHAT_ROOM_INFO_CHANGED:"__chatroom:onChatRoomInfoChanged",ATTRIBUTES_UPDATE:"__chatroom:onAttributesUpdate",ATTRIBUTES_REMOVED:"__chatroom:onAttributesRemoved"},exports.ContactEventName={INVITED:"onContactInvited",DELETED:"onContactDeleted",ADDED:"onContactAdded",REFUSE:"onContactRefuse",AGREED:"onContactAgreed",CONTACT_INFO_UPDATED:"onContactInfoUpdated"},exports.GroupEventName={INVITATION_RECEIVED:"onInvitationReceived",REQUEST_TO_JOIN_RECEIVED:"onRequestToJoinReceived",REQUEST_TO_JOIN_ACCEPTED:"onRequestToJoinAccepted",REQUEST_TO_JOIN_DECLINED:"onRequestToJoinDeclined",INVITATION_ACCEPTED:"onInvitationAccepted",INVITATION_DECLINED:"onInvitationDeclined",USER_REMOVED:"onUserRemoved",GROUP_DESTROYED:"onGroupDestroyed",AUTO_ACCEPT_INVITATION:"onAutoAcceptInvitationFromGroup",MUTE_LIST_ADDED:"onMuteListAdded",MUTE_LIST_REMOVED:"onMuteListRemoved",ALLOW_LIST_ADDED:"onAllowListAdded",ALLOW_LIST_REMOVED:"onAllowListRemoved",ALL_MEMBER_MUTE_STATE_CHANGED:"onAllMemberMuteStateChanged",ADMIN_ADDED:"onAdminAdded",ADMIN_REMOVED:"onAdminRemoved",OWNER_CHANGED:"onOwnerChanged",MEMBERS_JOINED:"onMembersJoined",MEMBERS_EXITED:"onMembersExited",ANNOUNCEMENT_CHANGED:"onAnnouncementChanged",SHARED_FILE_ADDED:"onSharedFileAdded",SHARED_FILE_DELETED:"onSharedFileDeleted",GROUP_INFO_CHANGED:"onGroupInfoChanged",GROUP_DISABLED_CHANGED:"onGroupDisabledChanged",GROUP_MEMBER_ATTRIBUTE_CHANGED:"onGroupMemberAttributeChanged",USER_GROUP_NAMECARD_UPDATED:"onUserGroupNamecardUpdated"},exports.PresenceEventName={STATUS_CHANGE:"onPresenceStatusChange"};
|
|
1
|
+
"use strict";exports.ChatEventName={MESSAGE:"onMessage",STREAM_MESSAGE:"onStreamMessage",CONVERSATION_LIST_UPDATE:"onConversationListUpdate",MESSAGE_READ_RECEIPTS:"onMessageReadReceipts",MESSAGE_DELIVERED:"onMessageDelivered",MESSAGE_RECALLED:"onMessageRecalled",MESSAGE_UPDATED:"onMessageUpdated",REACTION_CHANGED:"onReactionChanged",PINNED_MESSAGE_CHANGED:"onPinnedMessageChanged",MULTI_DEVICE_CONTACT:"onMultiDeviceContact",MULTI_DEVICE_CONVERSATION:"onMultiDeviceConversation",SYNC_DATA_START:"onSyncDataStart",SYNC_DATA_FINISHED:"onSyncDataFinished"},exports.ChatRoomDispatchEventName={CHAT_ROOM_DESTROYED:"__chatroom:onChatRoomDestroyed",MEMBERS_JOINED:"__chatroom:onMembersJoined",MEMBERS_EXITED:"__chatroom:onMembersExited",REMOVED_FROM_CHAT_ROOM:"__chatroom:onRemovedFromChatRoom",MUTE_LIST_ADDED:"__chatroom:onMuteListAdded",MUTE_LIST_REMOVED:"__chatroom:onMuteListRemoved",ALLOW_LIST_ADDED:"__chatroom:onAllowListAdded",ALLOW_LIST_REMOVED:"__chatroom:onAllowListRemoved",ALL_MEMBER_MUTE_STATE_CHANGED:"__chatroom:onAllMemberMuteStateChanged",ADMIN_ADDED:"__chatroom:onAdminAdded",ADMIN_REMOVED:"__chatroom:onAdminRemoved",OWNER_CHANGED:"__chatroom:onOwnerChanged",ANNOUNCEMENT_CHANGED:"__chatroom:onAnnouncementChanged",CHAT_ROOM_INFO_CHANGED:"__chatroom:onChatRoomInfoChanged",ATTRIBUTES_UPDATE:"__chatroom:onAttributesUpdate",ATTRIBUTES_REMOVED:"__chatroom:onAttributesRemoved"},exports.ContactEventName={INVITED:"onContactInvited",DELETED:"onContactDeleted",ADDED:"onContactAdded",REFUSE:"onContactRefuse",AGREED:"onContactAgreed",CONTACT_INFO_UPDATED:"onContactInfoUpdated"},exports.GroupEventName={INVITATION_RECEIVED:"onInvitationReceived",REQUEST_TO_JOIN_RECEIVED:"onRequestToJoinReceived",REQUEST_TO_JOIN_ACCEPTED:"onRequestToJoinAccepted",REQUEST_TO_JOIN_DECLINED:"onRequestToJoinDeclined",INVITATION_ACCEPTED:"onInvitationAccepted",INVITATION_DECLINED:"onInvitationDeclined",USER_REMOVED:"onUserRemoved",GROUP_DESTROYED:"onGroupDestroyed",AUTO_ACCEPT_INVITATION:"onAutoAcceptInvitationFromGroup",MUTE_LIST_ADDED:"onMuteListAdded",MUTE_LIST_REMOVED:"onMuteListRemoved",ALLOW_LIST_ADDED:"onAllowListAdded",ALLOW_LIST_REMOVED:"onAllowListRemoved",ALL_MEMBER_MUTE_STATE_CHANGED:"onAllMemberMuteStateChanged",ADMIN_ADDED:"onAdminAdded",ADMIN_REMOVED:"onAdminRemoved",OWNER_CHANGED:"onOwnerChanged",MEMBERS_JOINED:"onMembersJoined",MEMBERS_EXITED:"onMembersExited",ANNOUNCEMENT_CHANGED:"onAnnouncementChanged",SHARED_FILE_ADDED:"onSharedFileAdded",SHARED_FILE_DELETED:"onSharedFileDeleted",GROUP_INFO_CHANGED:"onGroupInfoChanged",GROUP_DISABLED_CHANGED:"onGroupDisabledChanged",GROUP_MEMBER_ATTRIBUTE_CHANGED:"onGroupMemberAttributeChanged",USER_GROUP_NAMECARD_UPDATED:"onUserGroupNamecardUpdated"},exports.LogEventName={LOG:"onLog"},exports.PresenceEventName={STATUS_CHANGE:"onPresenceStatusChange"},exports.PushEventName={TOKEN_BOUND:"onPushTokenBound",TOKEN_BIND_FAILED:"onPushTokenBindFailed",TOKEN_REMOVE_FAILED:"onPushTokenRemoveFailed"};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const e=require("./common-tHGz9VBk.cjs"),r=["nickname","avatarUrl","mail","phone","gender","sign","birth","ext"],s=(e,r)=>`${e}\0${r}`,o=(e,s,o)=>{const t={userId:e};for(const n of r){const e=o?.[n]??s?.[n];void 0!==e&&(t[n]=e)}return t},t=e=>o(e.userId,void 0,{userId:e.userId,nickname:e.nickname,avatarUrl:e.avatarUrl,sign:e.sign,ext:e.ext}),n=(e,r,o)=>{const t=new Map;if(!e?.getGroupNamecard||!o)return t;for(const n of r){const r=e.getGroupNamecard(n.groupId,n.user.userId,!1);r&&t.set(s(n.groupId,n.user.userId),r.namecard)}return t},a=async(r,s)=>{if(0===r.length||!s)return[];try{return await s({userIds:r})}catch(o){return e.logger.warn("Group user info hydration failed",{userIds:r,error:o}),[]}},d=async(r,s)=>{s&&0!==r.size&&await Promise.all([...r.entries()].map(async([r,o])=>{try{await s(r,o)}catch(t){e.logger.warn("Group namecard hydration failed",{groupId:r,userIds:o,error:t})}}))},u=async e=>{const r=(e=>{const r=[],o=new Set;for(const t of e){const e=t.groupId.trim(),n=t.user.userId.trim();if(!e||!n)continue;const a=s(e,n);o.has(a)||(o.add(a),r.push({groupId:e,user:{...t.user,userId:n}}))}return r})(e.contexts),u=(e=>{const r=[],s=new Set;for(const o of e)s.has(o.user.userId)||(s.add(o.user.userId),r.push(o.user.userId));return r})(r),c=((e,r)=>{const s=new Map;if(!e)return s;for(const t of r){const r=e.getRuntimeUserInfo?.(t,!1)??null;r&&s.set(t,r)}const o=r.filter(e=>!s.has(e));for(const n of e.getUserInfoSummaries?.(o,!1)??[])s.set(n.userId,t(n));return s})(e.cacheManager,u),i=u.filter(e=>!c.has(e)),p=new Set(i),f=n(e.cacheManager,r,e.includeNameCard),l=e.includeNameCard?((e,r,o)=>{const t=new Map;for(const n of e){const e=n.user.userId,a=s(n.groupId,e);if(!r.has(e)||o.has(a))continue;const d=t.get(n.groupId)??[];d.includes(e)||d.push(e),t.set(n.groupId,d)}return t})(r,p,f):new Map,[I]=await Promise.all([a(i,e.fetchUserInfos),d(l,e.hydrateGroupNamecards)]),g=new Map(I.map(e=>[e.userId,e])),E=n(e.cacheManager,r,e.includeNameCard),U=new Map;for(const t of r){const e=t.user.userId,r=s(t.groupId,e),n=o(e,t.user,g.get(e)??c.get(e)),a=E.get(r)??f.get(r);U.set(r,void 0!==a?{...n,nameCard:a}:n)}return{usersByContextKey:U,fetchedUserInfos:I,missingUserIds:i.filter(e=>!g.has(e))}};exports.getGroupUserInfoContextKey=s,exports.mapUploadAdapterError=r=>{if(r instanceof e.UploadError)return r;if((e=>"object"==typeof e&&null!==e)(r)){const s=r.details;if(r.code===e.PLATFORM_ERROR_CODE.MISSING_CAPABILITY){const o=s?.capability;if(r.stage===e.PLATFORM_ERROR_STAGE.RUNTIME&&"string"==typeof o&&o.includes("FileSystem")){const o=r instanceof Error?r.message:"Upload failed";return new e.UploadError(o,{code:e.ERROR_CODES.UPLOAD_REQUEST_FAILED,details:s})}return new e.UploadError("Upload capability is missing for current platform",{code:e.ERROR_CODES.UPLOAD_REQUIRED_FIELD_MISSING,details:s})}if(r.stage===e.PLATFORM_ERROR_STAGE.UPLOAD)return(e=>{const r=e?.reason;return!("string"!=typeof r||!r.toLowerCase().includes("abort"))})(s)?new e.UploadError("Upload canceled",{code:e.ERROR_CODES.UPLOAD_ABORTED,details:s}):(e=>{const r=e?.reason;return!("string"!=typeof r||!r.toLowerCase().includes("timeout"))})(s)?new e.UploadError("Upload timeout",{code:e.ERROR_CODES.UPLOAD_TIMEOUT,details:s}):new e.UploadError("Upload failed",{code:e.ERROR_CODES.UPLOAD_REQUEST_FAILED,details:s})}const s=r instanceof Error?r.message:"Upload failed";return new e.UploadError(s,{code:e.ERROR_CODES.UPLOAD_REQUEST_FAILED,details:{cause:r}})},exports.resolveGroupUserInfoContexts=u,exports.resolveGroupUserInfoMap=async e=>{const r=await u({...e,contexts:e.users.map(r=>({groupId:e.groupId,user:r}))}),o=new Map;for(const t of e.users){const n=t.userId.trim();if(!n||o.has(n))continue;const a=r.usersByContextKey.get(s(e.groupId.trim(),n));a&&o.set(n,a)}return{usersById:o,fetchedUserInfos:r.fetchedUserInfos,missingUserIds:r.missingUserIds}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{U as e,P as r,a as s,E as t,l as n}from"./common-BvlDAw4a.js";const a=n=>{if(n instanceof e)return n;if((e=>"object"==typeof e&&null!==e)(n)){const a=n.details;if(n.code===r.MISSING_CAPABILITY){const r=a?.capability;if(n.stage===s.RUNTIME&&"string"==typeof r&&r.includes("FileSystem")){const r=n instanceof Error?n.message:"Upload failed";return new e(r,{code:t.UPLOAD_REQUEST_FAILED,details:a})}return new e("Upload capability is missing for current platform",{code:t.UPLOAD_REQUIRED_FIELD_MISSING,details:a})}if(n.stage===s.UPLOAD)return(e=>{const r=e?.reason;return!("string"!=typeof r||!r.toLowerCase().includes("abort"))})(a)?new e("Upload canceled",{code:t.UPLOAD_ABORTED,details:a}):(e=>{const r=e?.reason;return!("string"!=typeof r||!r.toLowerCase().includes("timeout"))})(a)?new e("Upload timeout",{code:t.UPLOAD_TIMEOUT,details:a}):new e("Upload failed",{code:t.UPLOAD_REQUEST_FAILED,details:a})}const a=n instanceof Error?n.message:"Upload failed";return new e(a,{code:t.UPLOAD_REQUEST_FAILED,details:{cause:n}})},o=["nickname","avatarUrl","mail","phone","gender","sign","birth","ext"],u=(e,r)=>`${e}\0${r}`,c=(e,r,s)=>{const t={userId:e};for(const n of o){const e=s?.[n]??r?.[n];void 0!==e&&(t[n]=e)}return t},d=e=>c(e.userId,void 0,{userId:e.userId,nickname:e.nickname,avatarUrl:e.avatarUrl,sign:e.sign,ext:e.ext}),i=(e,r,s)=>{const t=/* @__PURE__ */new Map;if(!e?.getGroupNamecard||!s)return t;for(const n of r){const r=e.getGroupNamecard(n.groupId,n.user.userId,!1);r&&t.set(u(n.groupId,n.user.userId),r.namecard)}return t},f=async(e,r)=>{if(0===e.length||!r)return[];try{return await r({userIds:e})}catch(s){return n.warn("Group user info hydration failed",{userIds:e,error:s}),[]}},I=async(e,r)=>{r&&0!==e.size&&await Promise.all([...e.entries()].map(async([e,s])=>{try{await r(e,s)}catch(t){n.warn("Group namecard hydration failed",{groupId:e,userIds:s,error:t})}}))},l=async e=>{const r=(e=>{const r=[],s=/* @__PURE__ */new Set;for(const t of e){const e=t.groupId.trim(),n=t.user.userId.trim();if(!e||!n)continue;const a=u(e,n);s.has(a)||(s.add(a),r.push({groupId:e,user:{...t.user,userId:n}}))}return r})(e.contexts),s=(e=>{const r=[],s=/* @__PURE__ */new Set;for(const t of e)s.has(t.user.userId)||(s.add(t.user.userId),r.push(t.user.userId));return r})(r),t=((e,r)=>{const s=/* @__PURE__ */new Map;if(!e)return s;for(const n of r){const r=e.getRuntimeUserInfo?.(n,!1)??null;r&&s.set(n,r)}const t=r.filter(e=>!s.has(e));for(const n of e.getUserInfoSummaries?.(t,!1)??[])s.set(n.userId,d(n));return s})(e.cacheManager,s),n=s.filter(e=>!t.has(e)),a=new Set(n),o=i(e.cacheManager,r,e.includeNameCard),l=e.includeNameCard?((e,r,s)=>{const t=/* @__PURE__ */new Map;for(const n of e){const e=n.user.userId,a=u(n.groupId,e);if(!r.has(e)||s.has(a))continue;const o=t.get(n.groupId)??[];o.includes(e)||o.push(e),t.set(n.groupId,o)}return t})(r,a,o):/* @__PURE__ */new Map,[p]=await Promise.all([f(n,e.fetchUserInfos),I(l,e.hydrateGroupNamecards)]),g=new Map(p.map(e=>[e.userId,e])),m=i(e.cacheManager,r,e.includeNameCard),U=/* @__PURE__ */new Map;for(const d of r){const e=d.user.userId,r=u(d.groupId,e),s=c(e,d.user,g.get(e)??t.get(e)),n=m.get(r)??o.get(r);U.set(r,void 0!==n?{...s,nameCard:n}:s)}return{usersByContextKey:U,fetchedUserInfos:p,missingUserIds:n.filter(e=>!g.has(e))}},p=async e=>{const r=await l({...e,contexts:e.users.map(r=>({groupId:e.groupId,user:r}))}),s=/* @__PURE__ */new Map;for(const t of e.users){const n=t.userId.trim();if(!n||s.has(n))continue;const a=r.usersByContextKey.get(u(e.groupId.trim(),n));a&&s.set(n,a)}return{usersById:s,fetchedUserInfos:r.fetchedUserInfos,missingUserIds:r.missingUserIds}};export{l as a,u as g,a as m,p as r};
|