k2-im 0.1.0 → 0.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.
@@ -0,0 +1,7 @@
1
+ import {x as x$1,A,f,g,i,J,K,w,z as z$1,k,e,y,B as B$1,D,F as F$1,E,G as G$1,H as H$1,I,ka as ka$1,ja as ja$1,ia as ia$1,R,S,P,ha as ha$1,L as L$1,M,fa as fa$1,ea as ea$1,N,O as O$1}from'./chunk-VSMNRAAM.js';import*as V from'node-forge';import {deleteDB,openDB}from'idb';function Hr(e,n=async t=>{let{createBrowserApiProtocolClient:r}=await import('./browser-BKCNJDKR.js');return r(t)}){let t=null;function r(){if(t!==null)return t;let o=n(e);return t=o,o.catch(()=>{t===o&&(t=null);}),o}return async(o,a)=>(await r())(o,a)}function $r(){if(typeof window>"u"||typeof document>"u")return {recordingSupported:false,recordingBlockers:["no-media-devices"],playbackSupported:false};let e=[];window.isSecureContext===false&&e.push("insecure-context"),(typeof navigator>"u"||navigator.mediaDevices?.getUserMedia===void 0)&&e.push("no-media-devices"),typeof MediaRecorder>"u"&&e.push("no-media-recorder");let n=window,t=window.AudioContext!==void 0||n.webkitAudioContext!==void 0,r=window.OfflineAudioContext!==void 0||n.webkitOfflineAudioContext!==void 0;return (!t||!r)&&e.push("audio-context-blocked"),{recordingSupported:e.length===0,recordingBlockers:e,playbackSupported:typeof Audio<"u"}}var G=class extends Error{code;constructor(n,t,r){super(t??n,r),this.name="VoiceError",this.code=n;}};function Je(e){return e instanceof G?e.code:void 0}function lt(e){switch(e instanceof DOMException||e instanceof Error?e.name:""){case "NotAllowedError":case "SecurityError":case "PermissionDeniedError":return new G("permission-denied","\u9EA6\u514B\u98CE\u6743\u9650\u88AB\u62D2\u7EDD",{cause:e});case "NotFoundError":case "DevicesNotFoundError":return new G("device-not-found","\u672A\u627E\u5230\u53EF\u7528\u9EA6\u514B\u98CE",{cause:e});case "NotReadableError":case "TrackStartError":case "AbortError":return new G("device-busy","\u9EA6\u514B\u98CE\u88AB\u5360\u7528\u6216\u542F\u52A8\u5931\u8D25",{cause:e});default:return new G("device-busy",e instanceof Error?e.message:"\u9EA6\u514B\u98CE\u542F\u52A8\u5931\u8D25",{cause:e})}}var Z=16e3,Fr=new URL("./speex-runtime.txt",import.meta.url).href,fn=null;async function Jr(){if(document.querySelector('script[data-speex-runtime="true"]')!==null)return;let n=await fetch(Fr);if(!n.ok)throw new Error(`Speex runtime fetch failed: ${n.status}`);let t=await n.text(),r=document.createElement("script");r.dataset.speexRuntime="true",r.text=t,document.head.appendChild(r);}async function mn(){let e=typeof window>"u"?void 0:window;return e?.__speexInH5!==void 0?e.__speexInH5:(fn??=(async()=>{if(e===void 0||typeof document>"u")throw new G("codec-unavailable","Speex \u8FD0\u884C\u65F6\u4EC5\u53EF\u5728\u6D4F\u89C8\u5668\u73AF\u5883\u52A0\u8F7D");if(await Jr(),e.__speexInH5===void 0&&e.initAudio?.(),e.__speexInH5===void 0)throw new G("codec-unavailable","Speex \u8FD0\u884C\u65F6\u521D\u59CB\u5316\u5931\u8D25");return e.__speexInH5})().catch(n=>{throw fn=null,n instanceof G?n:new G("codec-unavailable","Speex \u8FD0\u884C\u65F6\u52A0\u8F7D\u5931\u8D25",{cause:n})}),fn)}function pt(){mn().catch(()=>{});}function ce(e,n,t){for(let r=0;r<t.length;r+=1)e.setUint8(n+r,t.charCodeAt(r));}function Vr(e,n){let r=new ArrayBuffer(44+e.length*2),o=new DataView(r);ce(o,0,"RIFF"),o.setUint32(4,36+e.length*2,true),ce(o,8,"WAVE"),ce(o,12,"fmt "),o.setUint32(16,16,true),o.setUint16(20,1,true),o.setUint16(22,1,true),o.setUint32(24,n,true),o.setUint32(28,n*2,true),o.setUint16(32,2,true),o.setUint16(34,16,true),ce(o,36,"data"),o.setUint32(40,e.length*2,true);let a=44;for(let s=0;s<e.length;s+=1){let d=Math.max(-1,Math.min(1,e[s]??0));o.setInt16(a,d<0?d*32768:d*32767,true),a+=2;}return r}function gn(e){if(e instanceof Int16Array)return e;let n=new Int16Array(e.length);for(let t=0;t<e.length;t+=1){let r=Math.max(-1,Math.min(1,e[t]??0));n[t]=r<0?r*32768:r*32767;}return n}var jr=40,hn=120,qr=40,yn=80;function zr(e,n){let t=Math.min(Math.floor(n*jr/1e3),Math.floor(e.length/2));for(let r=0;r<t;r+=1){let o=r/t;e[r]=Math.round((e[r]??0)*o);let a=e.length-1-r;e[a]=Math.round((e[a]??0)*o);}return e}function Cn(e,n){if(e.length===0)return e;let t=Math.min(Math.floor(n*hn/1e3),Math.max(0,e.length-1)),r=t>0?e.subarray(t):e,o=new Float32Array(r),a=Math.min(Math.floor(n*qr/1e3),Math.floor(o.length/2));for(let s=0;s<a;s+=1){let d=s/a;o[s]=(o[s]??0)*d;let i=o.length-1-s;o[i]=(o[i]??0)*d;}return o}function Ve(e,n){let r=new ArrayBuffer(44+e.length*2),o=new DataView(r);return ce(o,0,"RIFF"),o.setUint32(4,36+e.length*2,true),ce(o,8,"WAVE"),ce(o,12,"fmt "),o.setUint32(16,16,true),o.setUint16(20,1,true),o.setUint16(22,1,true),o.setUint32(24,n,true),o.setUint32(28,n*2,true),o.setUint16(32,2,true),o.setUint16(34,16,true),ce(o,36,"data"),o.setUint32(40,e.length*2,true),new Int16Array(r,44).set(e),new Uint8Array(r)}function Wr(e){let n=new Uint8Array(e.length);for(let t=0;t<e.length;t+=1)n[t]=e.charCodeAt(t)&255;return n}function Yr(e){let t="";for(let r=0;r<e.length;r+=32768)t+=String.fromCharCode(...e.subarray(r,Math.min(r+32768,e.length)));return t}async function ft(e,n){let t=await mn(),r=Math.floor(n*yn/1e3),o=new Float32Array(r+e.length);o.set(e,r);let a=Vr(o,n);try{return Wr(t.encodeFile(a))}catch(s){throw new G("encode-failed","\u8BED\u97F3\u7F16\u7801\u5931\u8D25",{cause:s})}}async function mt(e){let n=await mn();try{let[t,r]=n.decodeFile(Yr(e));if(t.length===0)throw new Error("decoded empty pcm");let o=zr(gn(t),r.rate>0?r.rate:Z),a=r.rate>0?r.rate:Z;return {samples:o,sampleRate:a,durationMs:Math.round(o.length/a*1e3)}}catch(t){throw t instanceof G?t:new G("decode-failed","\u8BED\u97F3\u89E3\u7801\u5931\u8D25",{cause:t})}}async function gt(e){let n=await mt(e);return {wavData:Ve(n.samples,n.sampleRate),durationMs:n.durationMs}}function Qr(e={}){let n=e.cacheMax??8,t={activeId:"",isPlaying:false,loadingId:"",progress:0,currentTimeMs:0,errorIds:new Set},r=new Set;function o(){for(let l of r)l(t);}let a=null,s=new Map,d=0,i=false,f=false;function g(l){let _=s.get(l);return _!==void 0&&(s.delete(l),s.set(l,_)),_}function b(l,_){if(i)return URL.revokeObjectURL(_.url),_;let C=s.get(l);if(C!==void 0)return URL.revokeObjectURL(_.url),s.delete(l),s.set(l,C),C;for(s.set(l,_);s.size>n;){let I;for(let M of s.keys())if(M!==t.activeId){I=M;break}if(I===void 0)break;let S=s.get(I);s.delete(I),S!==void 0&&URL.revokeObjectURL(S.url);}return _}function h(l){l.paused||l.pause(),l.removeAttribute("src");try{l.load();}catch{}}function p(l,_){return !i&&l===d&&t.activeId===_}function A(){if(a!==null)return a;let l=new Audio;return l.preload="auto",l.addEventListener("timeupdate",()=>{t.activeId!==""&&(t.currentTimeMs=l.currentTime*1e3,t.progress=l.duration>0?Math.min(1,l.currentTime/l.duration):0,o());}),l.addEventListener("ended",()=>{v(),h(l),o();}),l.addEventListener("pause",()=>{t.activeId!==""&&(t.isPlaying=false,o());}),a=l,l}function v(){t.activeId="",t.isPlaying=false,t.progress=0,t.currentTimeMs=0;}function E(){d+=1,f=false,t.loadingId="",v(),a!==null&&h(a),o();}function c(l){t.errorIds=new Set([...t.errorIds,l]);}function u(l){if(!t.errorIds.has(l))return;let _=new Set(t.errorIds);_.delete(l),t.errorIds=_;}async function y(l,_){let C=g(l);if(C!==void 0)return {entry:C};let I;try{I=await _();}catch(S){return {entry:null,error:{code:Je(S),cause:S}}}if(I===null)return {entry:null};try{let{wavData:S,durationMs:M}=await gt(I),R={url:URL.createObjectURL(new Blob([S],{type:"audio/wav"})),durationMs:M};return {entry:b(l,R)}}catch(S){return {entry:null,error:{code:Je(S),cause:S}}}}async function m(l,_){if(i)return;let C=A();if(u(l),t.activeId===l){if(t.isPlaying){C.pause();return}let M=++d;try{await C.play();}catch{if(!p(M,l))return;c(l),o();return}if(!p(M,l))return;t.isPlaying=true,o(),_.onPlayStart?.();return}if(t.loadingId===l)return;E();let I=++d;t.loadingId=l,o();let S=await y(l,_.load);if(I===d){if(t.loadingId="",S.entry===null){c(l),o(),S.error!==void 0&&_.onDecodeError?.(S.error.code,S.error.cause);return}C.src=S.entry.url,t.activeId=l,t.progress=0,t.currentTimeMs=0,o();try{await C.play();}catch(M){if(!p(I,l))return;v(),h(C),c(l),o(),_.onDecodeError?.(void 0,M);return}p(I,l)&&(t.isPlaying=true,o(),_.onPlayStart?.());}}function P(l,_){a===null||t.activeId!==l||!Number.isFinite(a.duration)||a.duration<=0||(a.currentTime=Math.min(Math.max(_,0),.999)*a.duration);}function k(l){a===null||t.activeId!==l||t.isPlaying&&(f=true,a.pause());}function D(l){if(a===null||t.activeId!==l||!f)return;f=false;let _=++d;a.play().then(()=>{p(_,l)&&(t.isPlaying=true,o());}).catch(()=>{p(_,l)&&(c(l),o());});}function w(){if(!i){i=true,E();for(let l of s.values())URL.revokeObjectURL(l.url);s.clear(),r.clear(),a=null;}}return {getState:()=>t,subscribe:l=>(r.add(l),()=>r.delete(l)),toggle:m,seek:P,beginScrub:k,endScrub:D,stop:E,dispose:w}}function Xr(e){if(e.length===0)return 0;let n=0;for(let t=0;t<e.length;t+=1){let r=((e[t]??128)-128)/128;n+=r*r;}return Math.min(1,Math.sqrt(n/e.length)*Math.SQRT2)}function Zr(e,n,t){if(e.length===0||n<=0||t<=0)return 0;let r=n/t,o=0,a=0;for(let s=0;s<e.length;s+=1){let d=s*r,i=.2;d<200?i=.15:d<300?i=.4:d<=3400?i=1:d<=6e3&&(i=.45),o+=(e[s]??0)/255*i,a+=i;}return a>0?o/a:0}function ht(e){let n=Xr(e.timeDomain),t=Zr(e.frequency,e.sampleRate,e.fftSize),r=n*.55+t*.45;return Math.min(1,r*e.boost)**.72}var je=class{constructor(n=.45,t=.18){this.attack=n;this.release=t;}attack;release;value=0;next(n){let t=Math.min(1,Math.max(0,n));return t>this.value?this.value+=(t-this.value)*this.attack:this.value+=(t-this.value)*this.release,this.value}};function eo(){return {channelCount:1,echoCancellation:true,noiseSuppression:true,autoGainControl:true}}var no=50,to=.12,ro=2.6,oo=.06,io=256;function ao(){return typeof MediaRecorder>"u"?"":["audio/webm","audio/webm;codecs=opus","audio/mp4","audio/aac","audio/ogg;codecs=opus"].find(n=>MediaRecorder.isTypeSupported(n))??""}async function so(e,n,t){let r=window.AudioContext??window.webkitAudioContext,o=window.OfflineAudioContext??window.webkitOfflineAudioContext;if(o===void 0||t==null&&r===void 0)throw new G("audio-context-blocked","AudioContext \u4E0D\u53EF\u7528");let a=t??new r,s=t==null;try{a.state==="suspended"&&await a.resume().catch(()=>{});let d=await a.decodeAudioData(await e.arrayBuffer()),i=Math.max(1,Math.ceil(d.duration*n)),f=new o(1,i,n),g=f.createBufferSource();return g.buffer=d,g.connect(f.destination),g.start(0),(await f.startRendering()).getChannelData(0).slice()}catch(d){throw d instanceof G?d:new G("decode-failed","\u5F55\u97F3\u6BB5\u89E3\u7801\u5931\u8D25",{cause:d})}finally{s&&await a.close().catch(()=>{});}}function yt(e){let n=0;for(let o of e)n+=o.length;let t=new Float32Array(n),r=0;for(let o of e)t.set(o,r),r+=o.length;return t}async function co(e={}){if(typeof MediaRecorder>"u")throw new G("no-media-recorder","\u5F53\u524D\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\u5F55\u97F3");let n;if(e.stream!==void 0)n=e.stream;else {if(typeof navigator>"u"||navigator.mediaDevices?.getUserMedia===void 0)throw new G("no-media-devices","\u5F53\u524D\u73AF\u5883\u4E0D\u652F\u6301\u9EA6\u514B\u98CE\u91C7\u96C6");try{n=await navigator.mediaDevices.getUserMedia({audio:eo()});}catch(C){throw lt(C)}}pt();let t=ao(),r=e.maxDurationMs??6e4,o="recording",a=[],s=0,d=[],i=null,f=null,g=null,b=[],h=0,p=false;function A(){try{let C;try{C=t!==""?new MediaRecorder(n,{mimeType:t}):new MediaRecorder(n);}catch{C=new MediaRecorder(n);}return b=[],C.ondataavailable=I=>{I.data.size>0&&b.push(I.data);},C.start(250),h=Date.now(),C}catch(C){throw C instanceof G?C:new G("device-busy","\u5F55\u97F3\u5668\u542F\u52A8\u5931\u8D25",{cause:C})}}let v=e.amplitude?.intervalMs??no,E=e.amplitude?.boost??ro,c=e.amplitude?.smoothing??to,u=e.amplitude?.minVolume??oo;function y(){let C=Math.floor(r/1e3*Z),I=0;for(let M of a)I+=M.length;if(I>C){let M=C,R=[];for(let T of a){if(M<=0)break;T.length<=M?(R.push(T),M-=T.length):(R.push(T.slice(0,M)),M=0);}a.length=0,a.push(...R);}s=Math.min(s,r);let S=Math.max(0,Math.ceil(r/v));d.length>S&&(d.length=S);}async function m(){if(o!=="recording"){e.onMaxDuration?.();return}e.onMaxDuration?.(),o="paused";let C=_().then(()=>y());g=C;try{await C;}catch(I){console.warn("[im-browser] pauseAtMaxDuration settle failed",I);}}let P=setInterval(()=>{!p&&o==="recording"&&w()>=r&&(p=true,m());},250),k=null,D=null;try{let C=window.AudioContext??window.webkitAudioContext;if(C!==void 0){k=new C,k.state==="suspended"&&k.resume().catch(()=>{});let I=k.createMediaStreamSource(n),S=k.createAnalyser();S.fftSize=io,S.smoothingTimeConstant=c,I.connect(S);let M=new Uint8Array(S.frequencyBinCount),R=new Uint8Array(S.fftSize),T=new je;D=setInterval(()=>{if(o!=="recording"||i===null)return;S.getByteFrequencyData(M),S.getByteTimeDomainData(R);let U=ht({timeDomain:R,frequency:M,sampleRate:k.sampleRate,fftSize:S.fftSize,boost:E}),N=T.next(U),$=N<u?0:N;d.push(Math.round($*255)),e.onAmplitude?.($);},v);}}catch(C){console.warn("[im-browser] amplitude analyser setup failed",C);}function w(){let C=o==="recording"&&i!==null?Date.now()-h:0;return s+C}function l(){P!==null&&(clearInterval(P),P=null),D!==null&&(clearInterval(D),D=null),k?.close().catch(()=>{}),k=null;for(let C of n.getTracks())C.stop();}function _(){if(f!==null)return f;let C=i;return C===null?Promise.resolve():(i=null,f=(async()=>{await new Promise(M=>{if(C.state==="inactive"){M();return}C.onstop=()=>M(),C.stop();});let I=new Blob(b,{type:C.mimeType||t||"audio/webm"});if(b=[],I.size===0)return;let S=await so(I,Z,k);S.length!==0&&(a.push(S),s+=S.length/Z*1e3);})().finally(()=>{f=null;}),f)}try{i=A();}catch(C){throw o="closed",l(),C}return {getState:()=>o,recordedMs:w,async pause(){o==="recording"&&(o="paused",await _(),(p||s>=r)&&y());},async resume(){o!=="paused"||p||(i=A(),o="recording");},async finish(){if(o==="closed")throw new G("empty-recording","\u5F55\u97F3\u4F1A\u8BDD\u5DF2\u7ED3\u675F");o="closed";try{g!==null?await g:await _(),y();}finally{l();}let C=yt(a);if(C.length===0)throw new G("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let I=Cn(C,Z);if(I.length===0)throw new G("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let S=Math.min(d.length,Math.ceil(hn/v));return {data:await ft(I,Z),durationMs:Math.round(I.length/Z*1e3)+yn,waveform:d.slice(S),filename:`AUDIO_${Date.now()}.ogg`,mimeType:"audio/ogg"}},cancel(){if(o==="closed")return;o="closed";let C=i;if(i=null,C!==null&&(C.ondataavailable=null,C.onstop=null,C.state!=="inactive"))try{C.stop();}catch{}a.length=0,l();},async previewWav(){g!==null?await g:f!==null&&await f,y();let C=yt(a),I=Cn(C,Z);if(I.length===0)throw new G("empty-recording","\u6682\u65E0\u53EF\u8BD5\u542C\u7684\u5F55\u97F3\u5185\u5BB9");return {wavData:Ve(gn(I),Z),durationMs:Math.round(I.length/Z*1e3)}}}}var ee=class extends Error{constructor(n,t){super(n,t),this.name="ChannelKeyError";}};function Ct(e){let n=e.trim(),t=n.replace(/-/g,"+").replace(/_/g,"/");if(t===""||!/^[A-Z0-9+/]*={0,2}$/i.test(t)||t.length%4===1)throw new ee("channel secret_key \u4E0D\u662F\u5408\u6CD5 Base64");let r=t.replace(/=+$/,""),o=r+"=".repeat((4-r.length%4)%4),a;try{a=atob(o);}catch(f){throw new ee("channel secret_key Base64 \u89E3\u7801\u5931\u8D25",{cause:f})}let s=Uint8Array.from(a,f=>f.charCodeAt(0)&255);if(s.length===0)throw new ee("channel secret_key Base64 \u89E3\u7801\u7ED3\u679C\u4E3A\u7A7A");let d=new Uint8Array(16);d.set(s.subarray(0,d.length));let i=n.length===16&&/^[\x20-\x7E]+$/.test(n)?Uint8Array.from(n,f=>f.charCodeAt(0)):void 0;return {canonical:d,...i===void 0?{}:{legacyAscii:i},metadata:{channelKeyCharLength:n.length,decodedByteLength:s.length,padByteCount:Math.max(0,16-s.length),legacyAsciiCandidate:i!==void 0}}}function uo(e){let n=new Map,t=new Map,r=new Map,o=new Map;function a(u){return {canonical:u.canonical.slice(),...u.legacyAscii===void 0?{}:{legacyAscii:u.legacyAscii.slice()},metadata:{...u.metadata}}}function s(u){return [{strategy:"canonical-base64-pad",key:u.canonical.slice()},...u.legacyAscii===void 0?[]:[{strategy:"legacy-ascii16",key:u.legacyAscii.slice()}]]}function d(u){n.delete(u),t.delete(u),r.delete(u),o.set(u,(o.get(u)??0)+1);}function i(u){let y=o.get(u)??0,m=(async()=>{try{let P=await e.loadSecretKey(u);if(P===null||P.trim()==="")throw new ee(`channel secret_key \u7F3A\u5931\uFF08channelId=${u}\uFF09`);let k=Ct(P);return (o.get(u)??0)===y&&n.set(u,a(k)),k}catch(P){let k=P instanceof ee?P:new ee(`channel secret_key \u52A0\u8F7D\u5931\u8D25\uFF08channelId=${u}\uFF09`,{cause:P});throw e.onError?.(k.message,P),k}})().finally(()=>{t.get(u)===m&&t.delete(u);});return t.set(u,m),m}function f(u,y){let m=u.trim();if(m===""){let k=new ee("channel id \u4E0D\u80FD\u4E3A\u7A7A");return e.onError?.(k.message),Promise.reject(k)}y?.force===true&&d(m);let P=n.get(m);return P!==void 0?Promise.resolve(a(P)):t.get(m)??i(m)}function g(u,y){let m=u.trim();if(m===""){let w=new ee("channel id \u4E0D\u80FD\u4E3A\u7A7A");return e.onError?.(w.message),Promise.reject(w)}y?.force===true&&d(m);let P=n.get(m);if(P!==void 0)return Promise.resolve(P.canonical.slice());let k=r.get(m);if(k!==void 0)return k;let D=(t.get(m)??i(m)).then(w=>w.canonical.slice()).finally(()=>{r.get(m)===D&&r.delete(m);});return r.set(m,D),D}function b(u){return n.get(u.trim())?.canonical.slice()??null}async function h(u,y){let m=await f(u,y);return s(m)}function p(u){let y=n.get(u.trim());return y===void 0?[]:s(y)}function A(u){let y=n.get(u.trim());return y===void 0?null:{...y.metadata}}function v(u,y){let m=u.trim();if(m==="")throw new ee("channel id \u4E0D\u80FD\u4E3A\u7A7A");let P=Ct(y);d(m),n.set(m,a(P));}function E(u){let y=u.trim();y!==""&&d(y);}function c(){let u=new Set([...n.keys(),...t.keys(),...r.keys(),...o.keys()]);for(let y of u)o.set(y,(o.get(y)??0)+1);n.clear(),t.clear(),r.clear();}return {getChannelKey:g,getCachedChannelKey:b,getChannelKeyCandidates:h,getCachedChannelKeyCandidates:p,getCachedChannelKeyMetadata:A,primeChannelKey:v,clearChannelKey:E,clearAll:c}}var lo="core";var xe=class extends Error{code=502;constructor(n,t){super(`core JSON \u4F20\u8F93\u5931\u8D25\uFF1A${n||"unknown transport error"}`,t===void 0?void 0:{cause:t}),this.name="CoreJsonTransportError";}},q=class extends Error{businessCode;operation;constructor(n,t,r){super(`${n}\u5931\u8D25\uFF1Acode=${t}${r?` ${r}`:""}`),this.name="CoreJsonBusinessError",this.businessCode=t,this.operation=n;}};async function x(e,n,t,r){let o=r!==void 0&&"responseMode"in r&&r.responseMode==="strict",a;try{a=await e(n,{target:lo,data:t,...r?.method===void 0?{}:{method:r.method},...r?.headers===void 0?{}:{headers:r.headers},...r?.prefix===void 0?{}:{prefix:r.prefix}});}catch(s){throw o?new xe(s instanceof Error?s.message:String(s),s):s}if(o){let s=typeof a.msg=="string"?a.msg:"";if(a.code===502)throw new xe(s);return a.code!==200?{ok:false,code:a.code,message:s,data:a.data}:{ok:true,code:200,message:s,data:a.data}}return {code:a.code,data:a.code===200&&a.data!=null?a.data:null}}function bt(e,n){let t=n.clientType===void 0?{public_key:n.publicKey}:{public_key:n.publicKey,clientType:n.clientType},r=n.clientType===void 0?void 0:{headers:{"Client-type":String(n.clientType)}};return x(e,"/user/encrypt_info/info",t,r)}function po(e){let n=e.trim().replace(/-/g,"+").replace(/_/g,"/"),t=n+"=".repeat((4-n.length%4)%4),r=atob(t),o=new Uint8Array(r.length);for(let a=0;a<r.length;a++)o[a]=r.charCodeAt(a)&255;return o}function fo(e){let n=e.clientType,t=new Map,r=new Map,o=null,a=null;function s(b,h){e.onError?.(b,h);}function d(){if(o!==null)return Promise.resolve(o);if(a!==null)return a;let b=Promise.resolve().then(()=>e.crypto.generateTempKeyPair()).then(h=>(o=h,h)).finally(()=>{a===b&&(a=null);});return a=b,b}async function i(b){let h;try{h=await d();}catch(E){return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u751F\u6210\u4E34\u65F6 RSA \u5BC6\u94A5\u5931\u8D25\uFF08userId=${b}\uFF09`,E),null}let p;try{p=await bt(e.client,{publicKey:h.publicKeyBase64,clientType:n});}catch(E){return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u8BF7\u6C42\u5F02\u5E38\uFF08userId=${b}\uFF09`,E),null}if(p.data===null)return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u4E1A\u52A1\u5931\u8D25\uFF08userId=${b}\uFF0Ccode=${p.code}\uFF09`),null;let A=p.data.prv_key??p.data.prvKey??"",v=String(p.data.version??"").trim();if(A==="")return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u54CD\u5E94\u7F3A\u5C11 prv_key\uFF08userId=${b}\uFF09`),null;try{let E=e.crypto.rsaDecryptPkcs1({data:po(A),privateKey:h.privateKey}),c=new TextDecoder().decode(E).trim();if(c==="")return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u89E3\u51FA\u7684\u79C1\u94A5\u4E3A\u7A7A\uFF08userId=${b}\uFF09`),null;let u={privateKey:c,version:v};return t.set(b,u),u}catch(E){return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u4E34\u65F6\u79C1\u94A5\u89E3 prv_key \u5931\u8D25\uFF08userId=${b}\uFF09`,E),null}}function f(b,h){let p=b.trim();if(p==="")return Promise.resolve(null);h?.force===true&&t.delete(p);let A=t.get(p);if(A!==void 0)return Promise.resolve(A);let v=r.get(p);if(v!==void 0)return v;let E=i(p).finally(()=>{r.get(p)===E&&r.delete(p);});return r.set(p,E),E}function g(b){return t.get(b.trim())??null}return {getUserPrivateKey:f,getCachedPrivateKey:g}}function Pt(e,n){let t=n.clientType===void 0?{group_id:n.groupId,public_key:n.publicKey}:{group_id:n.groupId,public_key:n.publicKey,clientType:n.clientType},r=n.clientType===void 0?void 0:{headers:{"Client-type":String(n.clientType)}};return x(e,"/user_group/encrypt_info",t,r)}function mo(e){let n=e.trim().replace(/-/g,"+").replace(/_/g,"/"),t=n+"=".repeat((4-n.length%4)%4),r=atob(t),o=new Uint8Array(r.length);for(let a=0;a<r.length;a++)o[a]=r.charCodeAt(a)&255;return o}function go(e){let n=e.clientType,t=new Map,r=new Map,o=new Map,a=null,s=null;function d(){if(a!==null)return Promise.resolve(a);if(s!==null)return s;let h=Promise.resolve().then(()=>e.crypto.generateTempKeyPair()).then(p=>(a=p,p)).finally(()=>{s===h&&(s=null);});return s=h,h}async function i(h){let p=o.get(h)??0,A;try{A=await d();}catch(m){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u751F\u6210\u4E34\u65F6 RSA \u5BC6\u94A5\u5931\u8D25\uFF08groupId=${h}\uFF09`,m),null}let v;try{v=await Pt(e.client,{groupId:h,publicKey:A.publicKeyBase64,clientType:n});}catch(m){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u8BF7\u6C42\u5F02\u5E38\uFF08groupId=${h}\uFF09`,m),null}if(v.data===null)return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u4E1A\u52A1\u5931\u8D25\uFF08groupId=${h}\uFF0Ccode=${v.code}\uFF09`),null;let E=v.data,c=String(E.prv_key??E.prvKey??E.private_key??"").trim(),u=String(E.pub_key??E.pubKey??E.public_key??"").trim(),y=String(E.version??"").trim();if(c==="")return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u54CD\u5E94\u7F3A\u5C11 prv_key\uFF08groupId=${h}\uFF09`),null;try{let m=e.crypto.rsaDecryptPkcs1({data:mo(c),privateKey:A.privateKey}),P=new TextDecoder().decode(m).trim();if(P==="")return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u89E3\u51FA\u7684\u7FA4\u79C1\u94A5\u4E3A\u7A7A\uFF08groupId=${h}\uFF09`),null;let k={privateKey:P,publicKey:u,version:y};return (o.get(h)??0)===p&&t.set(h,k),k}catch(m){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u4E34\u65F6\u79C1\u94A5\u89E3 prv_key \u5931\u8D25\uFF08groupId=${h}\uFF09`,m),null}}function f(h,p){let A=h.trim();if(A==="")return Promise.resolve(null);p?.force===true&&t.delete(A);let v=t.get(A);if(v!==void 0)return Promise.resolve(v);let E=r.get(A);if(E!==void 0)return E;let c=i(A).finally(()=>{r.get(A)===c&&r.delete(A);});return r.set(A,c),c}function g(h){return t.get(h.trim())??null}function b(h){let p=h.trim();t.delete(p),r.delete(p),o.set(p,(o.get(p)??0)+1);}return {getGroupKeys:f,getCachedGroupKeys:g,clearGroupKeys:b}}async function Ee(e,n){let t=n.clientType===void 0?{other_user_openid:n.userId}:{other_user_openid:n.userId,clientType:n.clientType},r=n.clientType===void 0?void 0:{headers:{"Client-type":String(n.clientType)}};return (await x(e,"/user/info/other",t,r)).data}function ho(e){let n=e.clientType,t=new Map,r=new Map;async function o(s){try{let i=((await Ee(e.client,{userId:s,clientType:n}))?.public_key??"").trim();return i===""?(e.onError?.(`\u53D6\u5BF9\u7AEF\u516C\u94A5\uFF1A/user/info/other \u65E0 public_key\uFF08userId=${s}\uFF09`),null):(t.set(s,i),i)}catch(d){return e.onError?.(`\u53D6\u5BF9\u7AEF\u516C\u94A5\u8BF7\u6C42\u5F02\u5E38\uFF08userId=${s}\uFF09`,d),null}}function a(s,d){let i=s.trim();if(i==="")return Promise.resolve(null);d?.force===true&&t.delete(i);let f=t.get(i);if(f!==void 0)return Promise.resolve(f);let g=r.get(i);if(g!==void 0)return g;let b=o(i).finally(()=>{r.get(i)===b&&r.delete(i);});return r.set(i,b),b}return {getPeerPublicKey:a}}function yo(e){if(e.length<16)throw new Error(`TEA key \u957F\u5EA6\u4E0D\u8DB3\uFF1A${e.length}\uFF0C\u9700 \u2265 16 \u5B57\u8282`);let n=new DataView(e.buffer,e.byteOffset,16);return [n.getUint32(0,true),n.getUint32(4,true),n.getUint32(8,true),n.getUint32(12,true)]}function wt([e,n],[t,r,o,a]){let s=e>>>0,d=n>>>0,i=Math.imul(2654435769,16)>>>0;for(let f=0;f<16;f++)d=d-(Math.imul(s,16)+o^s+i^(s>>>5)+a)>>>0,s=s-(Math.imul(d,16)+t^d+i^(d>>>5)+r)>>>0,i=i-2654435769>>>0;return [s,d]}function It([e,n],[t,r,o,a]){let s=e>>>0,d=n>>>0,i=0;for(let f=0;f<16;f++)i=i+2654435769>>>0,s=s+(Math.imul(d,16)+t^d+i^(d>>>5)+r)>>>0,d=d+(Math.imul(s,16)+o^s+i^(s>>>5)+a)>>>0;return [s,d]}function qe(e,n,t,r){let o=yo(n),a=new Uint8Array(e.length),s=Math.floor(e.length/8),d=r===void 0?s:Math.min(s,Math.floor(r/8)),i=new DataView(e.buffer,e.byteOffset,e.byteLength),f=new DataView(a.buffer);for(let b=0;b<d;b++){let h=b*8,[p,A]=t([i.getUint32(h,true),i.getUint32(h+4,true)],o);f.setUint32(h,p,true),f.setUint32(h+4,A,true);}let g=d*8;return g<e.length&&a.set(e.subarray(g),g),a}function bn(e,n){return qe(n,e,wt)}function Pn(e,n){return qe(n,e,It)}function _t(e,n){return qe(n,e,It,32)}function At(e,n){return qe(n,e,wt,32)}var ue=16;function St(e){let n="";for(let t of e)n+=String.fromCharCode(t);return n}function vt(e){let n=new Uint8Array(e.length);for(let t=0;t<e.length;t++)n[t]=e.charCodeAt(t)&255;return n}function Mt(e){return e.replace(/(.{64})/g,`$1
2
+ `).trim()}function Co(e){return e.replace(/-----BEGIN[^-]+-----/g,"").replace(/-----END[^-]+-----/g,"").replace(/\s+/g,"")}function bo(e){let n=(e??"").trim();if(n==="")throw new Error("RSA \u79C1\u94A5\u4E3A\u7A7A");if(n.includes("-----BEGIN"))return V.pki.privateKeyFromPem(n);let t=n.replace(/\s+/g,""),r=[];try{return V.pki.privateKeyFromAsn1(V.asn1.fromDer(V.util.decode64(t)))}catch(a){r.push(a);}let o=Mt(t);for(let a of ["PRIVATE KEY","RSA PRIVATE KEY"])try{return V.pki.privateKeyFromPem(`-----BEGIN ${a}-----
3
+ ${o}
4
+ -----END ${a}-----`)}catch(s){r.push(s);}throw new Error(`RSA \u79C1\u94A5\u89E3\u6790\u5931\u8D25\uFF08\u5DF2\u8BD5 PKCS1-DER / PKCS8-PEM / PKCS1-PEM\uFF09\uFF1A${r[0]instanceof Error?r[0].message:String(r[0])}`)}function xt(e){let n=bo(e.privateKey),t=Math.ceil(n.n.bitLength()/8),{data:r}=e;if(r.length===0)throw new Error("RSA \u89E3\u5BC6\uFF1A\u5BC6\u6587\u4E3A\u7A7A");let o=[];for(let i=0;i<r.length;i+=t){let f=Math.min(i+t,r.length);try{let g=n.decrypt(St(r.subarray(i,f)),"RSAES-PKCS1-V1_5");o.push(vt(g));}catch(g){let b=g instanceof Error?g.message:String(g);throw new Error(`RSA-PKCS1 \u89E3\u5BC6\u5931\u8D25\uFF08\u5BC6\u6587 ${r.length}B\uFF0C\u5757 ${i}..${f}\uFF0CkeySize ${t}B\uFF0C\u79C1\u94A5 ${n.n.bitLength()}bit\uFF09\uFF1A${b}`)}}let a=o.reduce((i,f)=>i+f.length,0),s=new Uint8Array(a),d=0;for(let i of o)s.set(i,d),d+=i.length;return s}function Po(e){let n=xt({data:e.secretKey,privateKey:e.privateKey});if(n.length<ue)throw new Error(`\u7AEF\u5230\u7AEF\u89E3\u5BC6\u5931\u8D25\uFF1ARSA \u89E3\u51FA\u7684 teaKey \u957F\u5EA6 ${n.length} < ${ue}`);return bn(n,e.cipherData)}function wo(e){let n=(e??"").trim();if(n==="")throw new Error("RSA \u516C\u94A5\u4E3A\u7A7A");if(n.includes("-----BEGIN"))return V.pki.publicKeyFromPem(n);let t=n.replace(/\s+/g,""),r=[];try{return V.pki.publicKeyFromAsn1(V.asn1.fromDer(V.util.decode64(t)))}catch(a){r.push(a);}let o=Mt(t);for(let a of ["PUBLIC KEY","RSA PUBLIC KEY"])try{return V.pki.publicKeyFromPem(`-----BEGIN ${a}-----
5
+ ${o}
6
+ -----END ${a}-----`)}catch(s){r.push(s);}throw new Error(`RSA \u516C\u94A5\u89E3\u6790\u5931\u8D25\uFF08\u5DF2\u8BD5 SPKI-DER / SPKI-PEM / PKCS1-PEM\uFF09\uFF1A${r[0]instanceof Error?r[0].message:String(r[0])}`)}function Et(){let e=new Uint8Array(ue),n=new Uint8Array(1);for(let t=0;t<ue;t++){let r=0;do globalThis.crypto.getRandomValues(n),r=n[0]??0;while(r===0);e[t]=r;}return e}function Io(e,n){if(n.length===0)throw new Error("RSA \u52A0\u5BC6\uFF1A\u660E\u6587\u4E3A\u7A7A");let t=wo(e),r=Math.ceil(t.n.bitLength()/8)-11;if(r<=0)throw new Error(`RSA \u52A0\u5BC6\uFF1A\u516C\u94A5\u4F4D\u6570\u8FC7\u5C0F\uFF08${t.n.bitLength()}bit\uFF09`);let o=[];for(let i=0;i<n.length;i+=r){let f=Math.min(i+r,n.length),g=t.encrypt(St(n.subarray(i,f)),"RSAES-PKCS1-V1_5");o.push(vt(g));}let a=o.reduce((i,f)=>i+f.length,0),s=new Uint8Array(a),d=0;for(let i of o)s.set(i,d),d+=i.length;return s}function _o(e){let n=e.teaKey??Et();if(n.length<ue)throw new Error(`\u7AEF\u5230\u7AEF\u52A0\u5BC6\u5931\u8D25\uFF1AteaKey \u957F\u5EA6 ${n.length} < ${ue}`);let t=n.subarray(0,ue),r=Pn(t,e.plain);return {secretKey:Io(e.publicKey,t),cipherData:r}}function Ao(e){return bn(e.teaKey,e.cipherData)}function So(e){return Pn(e.teaKey,e.plain)}function vo(e){return _t(e.teaKey,e.plain)}function Mo(e){return At(e.teaKey,e.cipherData)}function xo(){return new Promise((e,n)=>{V.pki.rsa.generateKeyPair({bits:2048,e:65537,workers:-1},(t,r)=>{if(t){n(t);return}e({publicKeyBase64:Co(V.pki.publicKeyToPem(r.publicKey)),privateKey:V.pki.privateKeyToPem(r.privateKey)});});})}function Eo(){return {decryptEndToEnd:Po,encryptEndToEnd:_o,decryptSymmetric:Ao,encryptSymmetric:So,encryptFileSimple:vo,decryptFileSimple:Mo,randomTeaKey:Et,generateTempKeyPair:xo,rsaDecryptPkcs1:xt}}function wn(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function ke(e,n){return x(e,"/friend/apply/list_paginated",{type:n.listType,page:n.page,page_size:n.pageSize},wn(n.clientType,"GET"))}function Te(e,n){return x(e,"/friend/apply/agree",{id:n.applicationId},wn(n.clientType,"POST"))}function Re(e,n){return x(e,"/friend/apply/del",{id:n.applicationId},wn(n.clientType,"POST"))}var kt=50,Tt=20,Rt=1,In=2,_n=3,ko=4,To=5,Dt=0,Ro=1,Do=2;function Uo(e){switch(e){case Dt:case Ro:case Do:return e;default:return}}var Ce=class extends Error{constructor(t,r){super(`application HTTP \u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`);this.code=t;this.name="ApplicationHttpError";}code},j=class extends Error{constructor(n){super(`application \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ApplicationMappingError";}};function B(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Ut(e){let n=B(e);if(n==="")return;if(/^\d+$/.test(n)){let r=Number(n);return !Number.isSafeInteger(r)||r<=0?void 0:n.length>=13?r:r*1e3}let t=Date.parse(n);return Number.isFinite(t)?t:void 0}function Ot(e){let n=B(e.status);if(e.status===void 0||n==="")return true;let t=Number(n),r=Uo(t);if(r===void 0)throw new j(`\u672A\u77E5\u7533\u8BF7\u72B6\u6001\uFF1A${n}`);return r===Dt}function Oo(e){let n=B(e.type);if(n==="")return true;if(Number(n)!==Rt)throw new j(`\u8054\u7CFB\u4EBA\u7533\u8BF7\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${n}`);return true}function No(e){let n=Number(B(e.type));if(n!==In&&n!==_n&&n!==ko&&n!==To)throw new j(`GROUP/CHANNEL \u6DF7\u5408\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${B(e.type)||"<empty>"}`);return n}function ze(e){if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>kt)throw new j(`limit \u5FC5\u987B\u4E3A 1-${kt}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit};if(!/^[1-9]\d*$/.test(e.cursor))throw new j("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let n=Number(e.cursor);if(!Number.isSafeInteger(n))throw new j("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {page:n,pageSize:e.limit}}function Nt(e){if(e!=null&&Array.isArray(e.list))return e.list;let n=e?.count??e?.total,t=n===0||typeof n=="string"&&/^0+$/.test(n.trim());if(e?.list===null&&t)return [];throw new j("data.list \u5FC5\u987B\u662F\u6570\u7EC4\uFF0C\u6216\u5728 count=0 \u65F6\u4E3A null")}function An(e){let n=e.trim();if(n==="")throw new j("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");return n}function Bo(e){let n=An(B(e.id)||B(e.aid)),t=B(e.user_id)||B(e.user_info?.user_id),r=B(e.nick_name??e.nickname??e.name)||B(e.user_info?.nick_name??e.user_info?.nickname??e.user_info?.name);if(t===""||r==="")throw new j(`\u8054\u7CFB\u4EBA\u7533\u8BF7\u4EBA\u8EAB\u4EFD\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let o=B(e.head_img_url??e.avatar)||B(e.user_info?.head_img_url??e.user_info?.avatar),a=B(e.user_info?.mid),s=Ut(e.create_time??e.createTime??e.update_version);return {applicationId:n,applicantId:t,applicantName:r,...o===""?{}:{applicantAvatar:o},...a===""?{}:{applicantDisplayId:a},message:B(e.remarks??e.introduce_self),...s===void 0?{}:{createdAt:s}}}function Go(e){let n=An(B(e.id)||B(e.aid)),t=B(e.group_id)||B(e.group_info?.group_id);if(t==="")throw new j(`GROUP id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let r=B(e.user_id)||B(e.user_info?.user_id),o=B(e.nick_name??e.nickname??e.name)||B(e.user_info?.nick_name??e.user_info?.nickname??e.user_info?.name);if(r===""||o==="")throw new j(`GROUP \u7533\u8BF7\u4EBA\u6216\u9080\u8BF7\u4EBA\u8EAB\u4EFD\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let a=B(e.head_img_url??e.avatar)||B(e.user_info?.head_img_url??e.user_info?.avatar),s=B(e.user_info?.mid),d=B(e.group_info?.name??e.group_info?.group_name);if(d==="")throw new j(`GROUP \u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let i=B(e.group_info?.head_img_url??e.group_info?.avatar),f=Ut(e.create_time??e.createTime??e.update_version);return {applicationId:n,groupId:t,kind:Number(e.type)===_n?"invite":"request",actor:{id:r,name:o,...a===""?{}:{avatarUrl:a},...s===""?{}:{displayId:s}},target:{id:t,name:d,...i===""?{}:{avatarUrl:i}},message:B(e.remarks??e.introduce_self),...f===void 0?{}:{createdAt:f}}}async function We(e,n,t){let r=await t(e.client,{applicationId:An(n),clientType:e.clientType});if(!r.ok)throw new Ce(r.code,r.message)}function Ko(e){async function n(t){let{pageSize:r}=ze(t),{page:o}=ze(t);for(let a=0;a<Tt;a+=1){let s=await ke(e.client,{listType:Rt,page:o,pageSize:r,clientType:e.clientType});if(!s.ok)throw new Ce(s.code,s.message);let d=Nt(s.data),i=d.filter(b=>Oo(b)&&Ot(b)).map(Bo),f=d.length<r,g=o+1;if(i.length>0||f)return {items:i,exhausted:f,...f?{}:{nextCursor:String(g)}};o=g;}return {items:[],exhausted:false,nextCursor:String(o)}}return {listPendingApplications:n,acceptApplication:t=>We(e,t,Te),ignoreApplication:t=>We(e,t,Re)}}function Lo(e){async function n(t){let{pageSize:r}=ze(t),{page:o}=ze(t);for(let a=0;a<Tt;a+=1){let s=await ke(e.client,{listType:In,page:o,pageSize:r,clientType:e.clientType});if(!s.ok)throw new Ce(s.code,s.message);let d=Nt(s.data),i=d.filter(b=>{let h=No(b);return (h===In||h===_n)&&Ot(b)}).map(Go),f=d.length<r,g=o+1;if(i.length>0||f)return {items:i,exhausted:f,...f?{}:{nextCursor:String(g)}};o=g;}return {items:[],exhausted:false,nextCursor:String(o)}}return {listPendingApplications:n,acceptApplication:t=>We(e,t,Te),ignoreApplication:t=>We(e,t,Re)}}function O(e){let n=typeof e=="string"||typeof e=="number"?String(e).trim():"";return n===""?void 0:n}function Ho(e){if(typeof e=="boolean")return e;if(typeof e=="number")return e===0?false:e===1?true:void 0;if(typeof e=="string"){let n=e.trim();if(n==="0"||n.toLowerCase()==="false")return false;if(n==="1"||n.toLowerCase()==="true")return true}}function $o(e){let n=Number(e);return n===1?{configType:"pinned-game"}:n===2?{configType:"float-link"}:n===3?{configType:"float-game"}:Number.isInteger(n)&&n>=0?{configType:"unknown",rawConfigType:n}:{configType:"unknown"}}function Fo(e){let n=Number(e.product_id),t=Ho(e.is_dynamic);return {...$o(e.config_type),...O(e.appid)===void 0?{}:{appId:O(e.appid)},...Number.isInteger(n)?{productId:n}:{},...O(e.domain)===void 0?{}:{domain:O(e.domain)},...O(e.suffix_address)===void 0?{}:{suffixAddress:O(e.suffix_address)},...O(e.developer_id)===void 0?{}:{developerId:O(e.developer_id)},...O(e.introduction)===void 0?{}:{introduction:O(e.introduction)},...O(e.icon)===void 0?{}:{icon:O(e.icon)},...O(e.icon_small)===void 0?{}:{iconSmall:O(e.icon_small)},...O(e.icon_medium)===void 0?{}:{iconMedium:O(e.icon_medium)},...O(e.icon_large)===void 0?{}:{iconLarge:O(e.icon_large)},...t===void 0?{}:{isDynamic:t},...O(e.lang_types)===void 0?{}:{langTypes:O(e.lang_types)},...O(e.currency_types)===void 0?{}:{currencyTypes:O(e.currency_types)},...O(e.simple_chinese_name)===void 0?{}:{nameZhHans:O(e.simple_chinese_name)},...O(e.unsimplified_chinese_name)===void 0?{}:{nameZhHant:O(e.unsimplified_chinese_name)},...O(e.english_name)===void 0?{}:{nameEn:O(e.english_name)},...O(e.vietnamese_name)===void 0?{}:{nameVi:O(e.vietnamese_name)},...O(e.thai_name)===void 0?{}:{nameTh:O(e.thai_name)},...O(e.h5_url)===void 0?{}:{h5Url:O(e.h5_url)}}}function Bt(e,n){return Array.isArray(e.mini_program_rel_list)?e.mini_program_rel_list.filter(t=>t!==null&&typeof t=="object").map(t=>Fo(t)):n.source==="info"?[]:void 0}function Gt(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function Kt(e,n){return x(e,"/user_radio/list",{user_id:n.userId,update_version:n.updateVersion,page:n.page,page_size:n.pageSize},Gt(n.clientType,"GET"))}function Lt(e,n){return x(e,"/user_radio/info",{radio_id:n.channelId},Gt(n.clientType,"POST"))}var Ht=500,De=class extends Error{constructor(t,r){super(`CHANNEL HTTP \u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`);this.code=t;this.name="ChannelHttpError";}code},re=class extends Error{constructor(n){super(`CHANNEL profile \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelProfileMappingError";}};function $t(e,n){let t=typeof e=="string"||typeof e=="number"?String(e).trim():"";if(t==="")throw new re(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function le(e){let n=typeof e=="string"||typeof e=="number"?String(e).trim():"";return n===""?void 0:n}function be(e){return Number(e)===1}function Jo(e){if(typeof e=="number")return e===0?false:e===1?true:void 0;if(typeof e=="string"){let n=e.trim();if(n==="0")return false;if(n==="1")return true}}function Vo(e,n){return Number(e)===1?"member":Number(e)===9?"admin":Number(e)===10?"owner":n===false?"guest":"unknown"}function jo(e){let n=e.is_in===void 0?void 0:be(e.is_in),t=be(e.radio_user?.is_del),r=be(e.radio_user?.is_black);return Number(e.status)===3?"dismissed":t&&r?"removed":r?"blacklisted":t?"left":n===false?"guest":e.status!==void 0&&Number(e.status)!==2?"unknown_restricted":"active"}function qo(e,n,t){let r=le(e.radio_user?.user_id),o=e.radio_setting?.un_speaking_user_ids,a=le(e.radio_setting?.un_speaking_period);return {role:n,baseState:t,resolvedState:t,allMembersMuted:be(e.radio_setting?.is_unspeeking_all),currentUserMuted:r!==void 0&&Array.isArray(o)&&o.map(String).includes(r),...a===void 0?{}:{mutePeriod:a}}}function zo(e){if(e!=null)return Number(e)===1?"standard":Number(e)===2?"competition":"unknown"}function Wo(e){let n=le(e);return n!==void 0&&/^\d+$/.test(n)?n.replace(/^0+(?=\d)/,""):void 0}function Yo(e,n){let t=e.replace(/^0+(?=\d)/,""),r=n.replace(/^0+(?=\d)/,"");return t.length!==r.length?t.length>r.length?t:r:t>=r?t:r}function Ft(e,n,t){let r=$t(e.radio_id??e.id,"id"),o=$t(e.name,"name"),a=e.is_in===void 0?void 0:be(e.is_in),s=Vo(e.radio_user?.role_id,a),d=jo(e),i=qo(e,s,d),f=fa$1({channelState:d,snapshot:i,nowMs:n}),g={...i,resolvedState:f.channelState},b=Wo(e.update_version),h=le(e.head_img_url),p=le(e.desc),A=le(e.user_id),v=Number(e.total_users),E=zo(e.type),c=Jo(e.radio_setting?.is_unvisit_other),u=e.verify_way===void 0?void 0:Number(e.verify_way),y=u!==void 0&&Number.isSafeInteger(u)?u:void 0,m=le(e.invite_code),P=Bt(e,{source:t});return {id:r,name:o,...h===void 0?{}:{avatar:h},...p===void 0?{}:{description:p},...A===void 0?{}:{ownerId:A},...Number.isFinite(v)&&v>=0?{memberCount:v}:{},...y===void 0?{}:{verifyType:y},...m===void 0?{}:{inviteCode:m},role:s,permissions:f.permissions,channelState:f.channelState,allMembersMuted:g.allMembersMuted,...c===void 0?{}:{memberPrivateChatDisabled:c},accessSnapshot:g,...e.radio_user?.is_undisturb===void 0?{}:{muted:be(e.radio_user.is_undisturb)},...E===void 0?{}:{channelKind:E},...b===void 0?{}:{updateVersion:b},...P===void 0?{}:{miniProgramRels:P}}}function Jt(e){return {...e,updatedAt:Date.now()}}function Vt(e,n){if(e.accessSnapshot===void 0)return {...e,permissions:ea$1(e.role,e.channelState)};let t=fa$1({channelState:e.channelState,snapshot:e.accessSnapshot,permissions:e.permissions,nowMs:n});return {...e,channelState:t.channelState,permissions:t.permissions,allMembersMuted:e.allMembersMuted??e.accessSnapshot.allMembersMuted,accessSnapshot:{...e.accessSnapshot,resolvedState:t.channelState}}}function Sn(e,n){let{updatedAt:t,...r}=Vt(e,n);return r}function Qo(e){let n=new Map,t=new Map,r=new Map,o="0",a=false,s=null,d=0,i=null,f=0;function g(){if(a)return Promise.resolve();if(s!==null)return s;let p=d;return s=(async()=>{if(e.storage!==void 0){let[A,v]=await Promise.all([e.storage.getChannelProfiles(),e.storage.getChannelListVersion()]);if(p!==d)return;for(let E of A)n.set(E.id,Vt(E,e.now?.()??Date.now()));o=/^\d+$/.test(v)?v:"0";}a=true;})().finally(()=>{s=null;}),s}function b(p){if(p?.forceRefresh!==true&&i!==null)return i;let A=++f,v=(async()=>{await g();let E=(await e.getUserId()).trim();if(E==="")throw new re("user_id \u4E0D\u80FD\u4E3A\u7A7A");let c=p?.forceRefresh===true?"0":o,u=[];for(let m=1;;m+=1){let P=await Kt(e.client,{userId:E,updateVersion:c,page:m,pageSize:Ht,clientType:e.clientType});if(!P.ok)throw new De(P.code,P.message);if(P.data===null)break;if(!Array.isArray(P.data))throw new re("list data \u5FC5\u987B\u662F\u6570\u7EC4");let k=e.now?.()??Date.now(),D=P.data.map(w=>Ft(w,k,"list"));if(u.push(...D),D.length<Ht)break}if(A!==f)return [...n.values()].map(m=>Sn(m,e.now?.()??Date.now()));let y=o;for(let m of u)n.set(m.id,Jt(m)),m.updateVersion!==void 0&&(y=Yo(y,m.updateVersion));return o=y,e.storage!==void 0&&(await e.storage.saveChannelProfiles([...n.values()]),await e.storage.saveChannelListVersion(o)),[...n.values()].map(m=>Sn(m,e.now?.()??Date.now()))})();return i=v,v.finally(()=>{i===v&&(i=null);}).catch(()=>{}),v}function h(p,A){let v=p.trim();if(v==="")return Promise.reject(new re("channel id \u4E0D\u80FD\u4E3A\u7A7A"));let E=A?.forceRefresh===true;if(!E){let y=t.get(v);if(y!==void 0)return y}let c=(r.get(v)??0)+1;E&&r.set(v,c);let u=(async()=>{await g();let y=n.get(v);if(!E&&y!==void 0&&y.miniProgramRels!==void 0)return Sn(y,e.now?.()??Date.now());let m=await Lt(e.client,{channelId:v,clientType:e.clientType});if(!m.ok)throw new De(m.code,m.message);if(m.data===null||m.data===void 0)throw new re("info data \u4E0D\u80FD\u4E3A\u7A7A");let P=Ft(m.data,e.now?.()??Date.now(),"info");if(P.id!==v)throw new re(`info id \u4E0D\u5339\u914D\uFF1A\u8BF7\u6C42 ${v}\uFF0C\u54CD\u5E94 ${P.id}`);if((r.get(v)??c)===c){let k=Jt(P);n.set(v,k),await e.storage?.saveChannelProfiles([k]);}return P})().finally(()=>{t.get(v)===u&&t.delete(v);});return r.set(v,c),t.set(v,u),u}return {listProfiles:b,getProfile:h,clearCache(){d+=1,f+=1;for(let p of new Set([...n.keys(),...t.keys(),...r.keys()]))r.set(p,(r.get(p)??0)+1);n.clear(),t.clear(),i=null,o="0",a=true,s=null;}}}function jt(e,n){return ke(e,{listType:2,page:n.page,pageSize:n.pageSize,clientType:n.clientType})}function qt(e,n){return Te(e,n)}function zt(e,n){return Re(e,n)}var Xo=20,Wt=50,Zo=20,ei=2,ni=3,Qt=4,ti=5,Xt=0,ri=1,oi=2;function ii(e){switch(e){case Xt:case ri:case oi:return e;default:return}}var Ue=class extends Error{constructor(t,r){super(`CHANNEL join application HTTP \u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`);this.code=t;this.name="ChannelJoinApplicationHttpError";}code},W=class extends Error{constructor(n){super(`CHANNEL join application \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelJoinApplicationMappingError";}};function L(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function ai(e){let n=L(e);if(n==="")return;if(/^\d+$/.test(n)){let r=Number(n);return !Number.isSafeInteger(r)||r<=0?void 0:n.length>=13?r:r*1e3}let t=Date.parse(n);return Number.isFinite(t)?t:void 0}function si(e){let n=L(e.status);if(e.status===void 0||n==="")return true;let t=Number(n),r=ii(t);if(r===void 0)throw new W(`\u672A\u77E5\u7533\u8BF7\u72B6\u6001\uFF1A${n}`);return r===Xt}function ci(e){let n=Number(L(e.type));if(n!==ei&&n!==ni&&n!==Qt&&n!==ti)throw new W(`GROUP/CHANNEL \u6DF7\u5408\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${L(e.type)||"<empty>"}`);return n}function di(e){let n=L(e.id)||L(e.aid),t=L(e.user_id)||L(e.user_info?.user_id),r=e.radio_info??e.channel_info,o=L(e.radio_id)||L(e.channel_id)||L(r?.radio_id)||L(r?.channel_id);if(n==="")throw new W("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");if(t==="")throw new W(`\u7533\u8BF7\u4EBA id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);if(o==="")throw new W(`CHANNEL id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let a=L(e.user_info?.nick_name)||L(e.user_info?.nickname)||L(e.user_info?.name)||t,s=L(e.user_info?.head_img_url)||L(e.user_info?.avatar),d=L(e.user_info?.mid),i=L(r?.name)||L(r?.radio_name)||L(r?.channel_name)||o,f=L(r?.head_img_url)||L(r?.avatar),g=ai(e.create_time??e.createTime);return {applicationId:n,applicantId:t,applicantName:a,...s===""?{}:{applicantAvatar:s},...d===""?{}:{applicantDisplayId:d},channelId:o,channelName:i,...f===""?{}:{channelAvatar:f},message:L(e.remarks)||L(e.introduce_self),...g===void 0?{}:{createdAt:g}}}function Yt(e){if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>Wt)throw new W(`limit \u5FC5\u987B\u4E3A 1-${Wt}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit||Xo};if(!/^[1-9]\d*$/.test(e.cursor))throw new W("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let n=Number(e.cursor);if(!Number.isSafeInteger(n))throw new W("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {page:n,pageSize:e.limit}}function ui(e){if(e!=null&&Array.isArray(e.list))return e.list;let n=e?.count??e?.total,t=n===0||typeof n=="string"&&/^0+$/.test(n.trim());if(e?.list===null&&t)return [];throw new W("data.list \u5FC5\u987B\u662F\u6570\u7EC4\uFF0C\u6216\u5728 count=0 \u65F6\u4E3A null")}function li(e){let n=e.trim();if(n==="")throw new W("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");return n}function pi(e){async function n(r){let{pageSize:o}=Yt(r),{page:a}=Yt(r);for(let s=0;s<Zo;s+=1){let d=await jt(e.client,{page:a,pageSize:o,clientType:e.clientType});if(!d.ok)throw new Ue(d.code,d.message);let i=ui(d.data),f=i.filter(h=>ci(h)===Qt&&si(h)).map(di),g=i.length<o,b=a+1;if(f.length>0||g)return {items:f,exhausted:g,...g?{}:{nextCursor:String(b)}};a=b;}return {items:[],exhausted:false,nextCursor:String(a)}}async function t(r,o){let a=await o(e.client,{applicationId:li(r),clientType:e.clientType});if(!a.ok)throw new Ue(a.code,a.message)}return {listJoinApplications:n,acceptJoinApplication:r=>t(r,qt),ignoreJoinApplication:r=>t(r,zt)}}function Ye(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function vn(e,n){return x(e,"/user_radio/users",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},Ye(n.clientType,"GET"))}function Mn(e,n){return x(e,"/user_radio/search_user",{radio_id:n.channelId,nick_name:n.query,page:n.page,page_size:n.pageSize,update_version:n.updateVersion??"0"},Ye(n.clientType,"POST"))}function Zt(e,n){return x(e,"/user_radio/admins",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},Ye(n.clientType,"GET"))}function er(e,n){return x(e,"/user_radio/user/infos",{radio_id:n.channelId,user_ids:n.userIds.join(",")},Ye(n.clientType,"POST"))}var Qe=18,fi=12,mi=300*1e3,gi=32,Oe=class extends Error{constructor(t,r){super(`CHANNEL member HTTP \u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`);this.code=t;this.name="ChannelMemberHttpError";}code},F=class extends Error{constructor(n){super(`CHANNEL member \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelMemberMappingError";}};function oe(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function hi(e){return Number(e)===1?"member":Number(e)===9?"admin":Number(e)===10?"owner":"unknown"}function yi(e){let n=oe(e);return /^\d+$/.test(n)?n.replace(/^0+(?=\d)/,""):void 0}function xn(e,n){return e===void 0?n===void 0?0:-1:n===void 0?1:e.length!==n.length?e.length>n.length?1:-1:e===n?0:e>n?1:-1}function nr(e,n){let t=oe(e.radio_id);if(t==="")throw new F("radio_id \u4E0D\u80FD\u4E3A\u7A7A");if(t!==n)throw new F(`\u6210\u5458\u9891\u9053 ${t} \u4E0E\u8BF7\u6C42\u9891\u9053 ${n} \u4E0D\u4E00\u81F4`);let r=oe(e.user_id)||oe(e.user_info?.user_id);if(r==="")throw new F("user_id \u4E0D\u80FD\u4E3A\u7A7A");if(e.is_master!==void 0){let f=Number(e.is_master);if(f!==0&&f!==1)throw new F(`is_master \u975E\u6CD5\uFF1A${oe(e.is_master)}`)}let o=oe(e.nick_name),a=oe(e.user_info?.nick_name)||oe(e.user_info?.name),s=oe(e.user_info?.head_img_url),d=yi(e.update_version),i=Number(e.join_type);return {userId:r,...o===""?{}:{nickname:o},displayName:o||a||r,...s===""?{}:{avatar:s},role:hi(e.role_id),...Number.isInteger(i)?{joinType:i}:{},...d===void 0?{}:{updateVersion:d}}}function Ci(e){if(e.channelId.trim()==="")throw new F("channelId \u4E0D\u80FD\u4E3A\u7A7A");if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>Qe)throw new F(`limit \u5FC5\u987B\u4E3A 1-${Qe}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit};if(!/^[1-9]\d*$/.test(e.cursor))throw new F("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let t=Number(e.cursor);if(!Number.isSafeInteger(t))throw new F("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {page:t,pageSize:e.limit}}function tr(e){let n=[],t=new Map;for(let r of e)t.has(r.userId)||n.push(r.userId),t.set(r.userId,r);return n.map(r=>t.get(r))}function bi(e){let n=e.now??(()=>Date.now()),t=e.isActive??(()=>true),r=e.cacheTtlMs??mi,o=new Map,a=new Map,s=new Map,d=new Map,i=new Map,f=new Set,g=new Set,b=(w,l)=>`${w}:${l}`;function h(w){let l=i.get(w);return l!==void 0?l:(i.set(w,0),0)}function p(w){let l=w.trim();if(l==="")throw new F("channelId \u4E0D\u80FD\u4E3A\u7A7A");return l}function A(w){for(a.delete(w.channelId),a.set(w.channelId,w);a.size>gi;){let l=a.keys().next().value;if(l===void 0)break;a.delete(l);}}function v(w){let l=a.get(w);if(l!==void 0)return A(l),Promise.resolve(l);if(g.has(w)||e.storage?.getChannelMemberSnapshot===void 0)return Promise.resolve(null);let _=s.get(w);if(_!==void 0)return _;let C=h(w),I=e.storage.getChannelMemberSnapshot(w).then(S=>!t()||S===null||S.channelId!==w||C!==h(w)||g.has(w)?null:(A(S),S)).finally(()=>{s.get(w)===I&&s.delete(w);});return s.set(w,I),I}function E(w,l){let _=w.map(I=>I.userId),C=new Map(w.map(I=>[I.userId,I]));for(let I of l){C.has(I.userId)||_.push(I.userId);let S=C.get(I.userId);(S===void 0||xn(I.updateVersion,S.updateVersion)>=0)&&C.set(I.userId,I);}return _.map(I=>C.get(I))}async function c(w,l){let _=await R(l);return w.filter(C=>_.match(C.displayName)!==null||_.match(C.userId,{pinyin:false})!==null)}async function u(w,l,_={}){if(!t()||l!==h(w.channelId))return;let C=w.channelId,I=g.has(C),S=_.allowPersistentRebuild===true&&I&&e.storage?.deleteChannelMemberSnapshot===void 0&&e.storage?.saveChannelMemberSnapshot!==void 0;(!I||S)&&await e.storage?.saveChannelMemberSnapshot?.(w),t()&&l===h(C)&&(A(w),_.allowPersistentRebuild===true&&(!I||e.storage?.deleteChannelMemberSnapshot===void 0)&&g.delete(C));}async function y(w,l,_,C,I=false,S){let M=await v(w);if(!t()||_!==h(w))return;let R=n(),T=S!==void 0&&M?.nextCursor===S,U=I&&M!==null&&!T,N=C!==void 0&&!U?C.nextCursor:M?.nextCursor,$={channelId:w,items:E(M?.items??[],l),...N===void 0?{}:{nextCursor:N},exhausted:U?M.exhausted:C?.exhausted??M?.exhausted??false,updatedAt:R};await u($,_);}async function m(w,l,_){if(!t()||_!==h(w))return [...l];let C=n(),I=C+r,S=[],M=[],R=new Map;for(let T of l){let U=b(w,T.userId),N=o.get(U)?.member;if(N!==void 0&&xn(T.updateVersion,N.updateVersion)<0){M.push(N);continue}S.push({channelId:w,...T,updatedAt:C}),M.push(T),R.set(U,{member:T,expiresAt:I});}if(S.length>0&&t()&&_===h(w)&&!f.has(w)&&(await e.storage?.saveChannelMembers?.(S),e.storage?.getChannelMembers!==void 0&&t()&&_===h(w))){let T=await e.storage.getChannelMembers(w,S.map(N=>N.userId)),U=new Map(T.map(N=>{let{channelId:$,updatedAt:J,...ae}=N;return [ae.userId,{member:ae,updatedAt:J}]}));for(let N=0;N<M.length;N+=1){let $=M[N];if($===void 0)continue;let J=U.get($.userId);J===void 0||xn(J.member.updateVersion,$.updateVersion)<=0||(M[N]=J.member,R.set(b(w,$.userId),{member:J.member,expiresAt:J.updatedAt+r}));}}if(t()&&_===h(w))for(let[T,U]of R)o.set(T,U);return M}async function P(w,l){let _=p(w.channelId),{page:C,pageSize:I}=Ci({...w,channelId:_}),S=h(_),M=await l(_,C,I);if(!M.ok)throw new Oe(M.code,M.message);if(M.data!==null&&!Array.isArray(M.data))throw new F("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let R=tr((M.data??[]).map(N=>nr(N,_))),T=await m(_,R,S),U=(M.data??[]).length<I;return {items:T,exhausted:U,...U?{}:{nextCursor:String(C+1)}}}function k(w){let l=p(w),_=d.get(l);if(_!==void 0)return _;let C=h(l),I=(async()=>{let S,M=false,R=[];for(let U=0;U<fi&&!M;U+=1){let N=await P({channelId:l,limit:Qe,...S===void 0?{}:{cursor:S}},($,J,ae)=>vn(e.client,{channelId:$,page:J,pageSize:ae,clientType:e.clientType}));if(!t()||C!==h(l))throw new F("\u6210\u5458\u5FEB\u7167\u9884\u53D6\u5DF2\u56E0\u6210\u5458\u53D8\u5316\u5931\u6548");R=E(R,N.items),S=N.nextCursor,M=N.exhausted;}let T={channelId:l,items:R,...S===void 0?{}:{nextCursor:S},exhausted:M,updatedAt:n()};return await u(T,C,{allowPersistentRebuild:true}),{items:T.items,...T.nextCursor===void 0?{}:{nextCursor:T.nextCursor},exhausted:T.exhausted}})().finally(()=>{d.get(l)===I&&d.delete(l);});return d.set(l,I),I}async function D(w){let l=p(w),_=h(l)+1;i.set(l,_),f.add(l),g.add(l),a.delete(l),s.delete(l),d.delete(l);let C=`${l}:`;for(let I of o.keys())I.startsWith(C)&&o.delete(I);e.storage?.deleteChannelMembers===void 0&&e.storage?.deleteChannelMemberSnapshot===void 0||(await Promise.all([e.storage.deleteChannelMembers?.(l),e.storage.deleteChannelMemberSnapshot?.(l)]),_===h(l)&&(e.storage?.deleteChannelMembers!==void 0&&f.delete(l),e.storage?.deleteChannelMemberSnapshot!==void 0&&g.delete(l)));}return {async prefetchMembers(w){let l=p(w),_=await v(l),C=g.has(l);_!==null&&!C&&_.updatedAt+r>n()||await k(l);},async getCachedMembers(w){let l=p(w.channelId),_=await v(l);if(_===null)return null;let C=w.query?.trim()??"";return C===""&&g.has(l)?null:C===""?{items:[..._.items],..._.nextCursor===void 0?{}:{nextCursor:_.nextCursor},exhausted:_.exhausted}:{items:await c(_.items,C),exhausted:true}},async refreshMembers(w){let l=p(w.channelId),_=w.query?.trim()??"";if(_==="")return k(l);let C=h(l),[I,S]=await Promise.all([P({channelId:l,query:_,limit:Qe},(R,T,U)=>Mn(e.client,{channelId:R,query:_,page:T,pageSize:U,updateVersion:"0",clientType:e.clientType})),v(l)]),M=S===null?[]:await c(S.items,_);return await y(l,I.items,C),{...I,items:E(I.items,M)}},async listMembers(w){let l=p(w.channelId),_={...w,channelId:l},C=h(l),I=await P(_,(S,M,R)=>vn(e.client,{channelId:S,page:M,pageSize:R,clientType:e.clientType}));return await y(l,I.items,C,I,_.cursor!==void 0,_.cursor),I},async searchMembers(w){let l=w.query.trim();if(l==="")return Promise.reject(new F("\u641C\u7D22\u5173\u952E\u8BCD\u4E0D\u80FD\u4E3A\u7A7A"));let _=p(w.channelId),C={...w,channelId:_},I=h(_),S=await P(C,(M,R,T)=>Mn(e.client,{channelId:M,query:l,page:R,pageSize:T,updateVersion:"0",clientType:e.clientType}));return await y(_,S.items,I),S},listAdmins:w=>P(w,(l,_,C)=>Zt(e.client,{channelId:l,page:_,pageSize:C,clientType:e.clientType})),async getMembersByIds(w,l,_){let C=w.trim();if(C==="")throw new F("channelId \u4E0D\u80FD\u4E3A\u7A7A");let I=[...new Set(l.map(T=>T.trim()).filter(Boolean))];if(I.length===0)return [];let S=_?.forceRefresh===true,M=new Map,R=[];for(let T of I){let U=o.get(b(C,T));!S&&U!==void 0&&U.expiresAt>n()?M.set(T,U.member):R.push(T);}if(!S&&R.length>0&&!f.has(C)&&e.storage?.getChannelMembers!==void 0){let T=h(C),U=await e.storage.getChannelMembers(C,R);if(t()&&T===h(C))for(let{channelId:N,updatedAt:$,...J}of U)N===C&&(o.set(b(C,J.userId),{member:J,expiresAt:$+r}),$+r>n()&&M.set(J.userId,J));R=R.filter(N=>!M.has(N));}if(!t())return I.flatMap(T=>M.has(T)?[M.get(T)]:[]);if(R.length>0){let T=h(C),U=await er(e.client,{channelId:C,userIds:R,clientType:e.clientType});if(!U.ok)throw new Oe(U.code,U.message);if(U.data!==null&&!Array.isArray(U.data))throw new F("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let N=tr((U.data??[]).map(ye=>nr(ye,C))),$=R.filter(ye=>!N.some(Lr=>Lr.userId===ye)),J=S&&$.length>0&&T===h(C),ae;J?(await D(C),ae=N):ae=await m(C,N,T);for(let ye of ae)M.set(ye.userId,ye);}return I.flatMap(T=>M.has(T)?[M.get(T)]:[])},invalidateChannelMembers:D,clearCache(){let w=new Set(i.keys());for(let l of o.keys())w.add(l.slice(0,l.indexOf(":")));for(let l of a.keys())w.add(l);for(let l of s.keys())w.add(l);for(let l of d.keys())w.add(l);for(let l of f)w.add(l);for(let l of g)w.add(l);for(let l of w)i.set(l,h(l)+1);o.clear(),a.clear(),s.clear(),d.clear(),f.clear(),g.clear();}}}function rr(e){return {responseMode:"strict",method:"POST",...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function or(e,n){return x(e,"/user_radio/member/list",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},rr(n.clientType))}function ir(e,n){return x(e,"/user_radio/member/search",{radio_id:n.channelId,search_name:n.query,page:n.page,page_size:n.pageSize},rr(n.clientType))}var ar=18,Xe=class extends Error{constructor(t,r){super(`CHANNEL @ member HTTP \u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`);this.code=t;this.name="ChannelMentionMemberHttpError";}code},ne=class extends Error{constructor(n){super(`CHANNEL @ member \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelMentionMemberMappingError";}};function Pe(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Pi(e){let n=Pe(e.user_id);if(n==="")throw new ne("user_id \u4E0D\u80FD\u4E3A\u7A7A");let t=Pe(e.radio_user_nickname)||Pe(e.nick_name)||Pe(e.name)||Pe(e.mid)||n,r=Pe(e.head_img_url);return {userId:n,displayName:t,...r===""?{}:{avatar:r}}}function wi(e){let n=e.channelId.trim();if(n==="")throw new ne("channelId \u4E0D\u80FD\u4E3A\u7A7A");if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>ar)throw new ne(`limit \u5FC5\u987B\u4E3A 1-${ar}`);if(e.cursor===void 0)return {channelId:n,page:1,pageSize:e.limit};if(!/^[1-9]\d*$/.test(e.cursor))throw new ne("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let t=Number(e.cursor);if(!Number.isSafeInteger(t))throw new ne("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {channelId:n,page:t,pageSize:e.limit}}function Ii(e){let n=[],t=new Map;for(let r of e)t.has(r.userId)||n.push(r.userId),t.set(r.userId,r);return n.map(r=>t.get(r))}function _i(e){async function n(t,r){let{channelId:o,page:a,pageSize:s}=wi(t),d=await r({channelId:o,page:a,pageSize:s,clientType:e.clientType});if(!d.ok)throw new Xe(d.code,d.message);if(d.data!==null&&!Array.isArray(d.data))throw new ne("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let i=d.data??[],f=Ii(i.map(Pi)),g=i.length<s;return {items:f,exhausted:g,...g?{}:{nextCursor:String(a+1)}}}return {listMentionMembers:t=>n(t,r=>or(e.client,r)),searchMentionMembers:t=>{let r=t.query.trim();return r===""?Promise.reject(new ne("\u641C\u7D22\u5173\u952E\u8BCD\u4E0D\u80FD\u4E3A\u7A7A")):n(t,o=>ir(e.client,{...o,query:r}))}}}function Ai(e){let n=e.fetch??((t,r)=>globalThis.fetch(t,r));return {async postProtobuf({path:t,body:r,headers:o,signal:a}){let s=await e.getBaseUrl();if(!s)throw new Error("CmHttp.postProtobuf\uFF1A\u7F3A\u5C11 CM HTTP \u57FA\u5740\uFF08getCmHttpBaseUrl \u4E3A\u7A7A\uFF09");let d={"Content-Type":"application/octet-stream"},i=e.getClientType?.();i!==void 0&&(d["Client-type"]=String(i)),Object.assign(d,o);let f=await e.getAuth();f!==null&&f.token!==""&&f.userId!==""&&(d.Authorization=`${f.token}:${f.userId}`);let g=await n(`${s}${t}`,{method:"POST",body:r,headers:d,signal:a});if(!g.ok)throw new Error(`CmHttp.postProtobuf \u5931\u8D25\uFF1Apath=${t} status=${g.status} ${g.statusText}`);let b=await g.arrayBuffer();return new Uint8Array(b)}}}var te=class extends Error{constructor(n){super(n),this.name="DirectoryMappingError";}};function Ze(e,n){if(e===null||typeof e!="object"||Array.isArray(e))throw new te(`${n} \u5FC5\u987B\u662F\u5BF9\u8C61`);return e}function z(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Ne(e){let n=z(e);return n===""?void 0:n}function Si(e){let n=Ze(e,"\u8054\u7CFB\u4EBA\u76EE\u5F55\u9879"),t=n.user_info===void 0?n:Ze(n.user_info,"\u8054\u7CFB\u4EBA user_info"),r=z(t.user_id??n.friend_user_id??n.user_id);if(r==="")throw new te("\u8054\u7CFB\u4EBA\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A user_id");let o=z(n.remark_name)||z(n.contact_name)||z(t.nick_name)||z(t.username)||z(t.mid)||r,a=z(t.nick_name)||z(t.username)||z(t.mid)||r,s=Ne(t.head_img_url),d=Ne(t.username)??Ne(t.mid);return {id:r,kind:"individual",displayName:o,cardDisplayName:a,...s===void 0?{}:{avatarUrl:s},...d===void 0?{}:{username:d}}}function vi(e){let n=Ze(e,"\u7FA4\u7EC4\u76EE\u5F55\u9879"),t=z(n.group_id);if(t==="")throw new te("\u7FA4\u7EC4\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A group_id");let r=Ne(n.head_img_url),o=z(n.name)||t;return {id:t,kind:"group",displayName:o,cardDisplayName:o,...r===void 0?{}:{avatarUrl:r}}}function Mi(e){let n=Ze(e,"\u793E\u7FA4\u76EE\u5F55\u9879"),t=z(n.radio_id??n.id);if(t==="")throw new te("\u793E\u7FA4\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A radio_id/id");let r=Ne(n.head_img_url),o=z(n.name)||t;return {id:t,kind:"channel",displayName:o,cardDisplayName:o,...r===void 0?{}:{avatarUrl:r}}}function xi(e,n){if(!Number.isSafeInteger(e)||e<1)throw new te("\u76EE\u5F55 page \u5FC5\u987B\u662F\u6B63\u6574\u6570");if(!Number.isSafeInteger(n)||n<1||n>100)throw new te("\u76EE\u5F55 pageSize \u5FC5\u987B\u662F 1-100 \u7684\u6574\u6570")}function Ei(e){return {async list(n){xi(n.page,n.pageSize);let t=n.kind==="individual"?"/friend/list":n.kind==="group"?"/user_group/list":"/user_radio/list",r=n.kind==="channel"&&e.getUserId!==void 0?String(await e.getUserId()).trim():"",a=(await x(e.client,t,{...r===""?{}:{user_id:r},update_version:0,page:n.page,page_size:n.pageSize},{responseMode:"strict",method:"GET",...e.clientType===void 0?{}:{headers:{"Client-type":String(e.clientType)}}})).data??[];if(!Array.isArray(a))throw new te(`${n.kind} \u76EE\u5F55 data \u5FC5\u987B\u662F\u6570\u7EC4`);let s=n.kind==="individual"?Si:n.kind==="group"?vi:Mi,d=new Map;for(let f of a){let g=s(f);d.set(g.id,g);}let i=a.length<n.pageSize;return {items:[...d.values()],...i?{}:{nextPage:n.page+1},exhausted:i}}}}var ki="https://api.giphy.com/v1/gifs",we=class extends Error{constructor(t){super(t==="core"?"\u8868\u60C5 Core API \u672A\u914D\u7F6E":"Giphy API key \u672A\u914D\u7F6E");this.provider=t;this.name="ExpressionProviderUnavailableError";}provider},H=class extends Error{constructor(n){super(n),this.name="ExpressionMappingError";}},pe=class extends Error{constructor(t,r){super(`Giphy \u8BF7\u6C42\u5931\u8D25\uFF1AHTTP ${t}${r?` ${r}`:""}`);this.status=t;this.name="GiphyHttpError";}status};function Q(e,n){if(e===null||typeof e!="object"||Array.isArray(e))throw new H(`${n} \u5FC5\u987B\u662F\u5BF9\u8C61`);return e}function Y(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function de(e,n){let t=Y(e);if(t==="")throw new H(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function _e(e){let n=Y(e);return n===""?void 0:n}function Ie(e,n){let t=Number(e);if(!Number.isSafeInteger(t)||t<0)throw new H(`${n} \u5FC5\u987B\u662F\u975E\u8D1F\u6574\u6570`);return t}function Ti(e,n){let t=Number(e);if(!Number.isSafeInteger(t))throw new H(`${n} \u5FC5\u987B\u662F\u5B89\u5168\u6574\u6570`);return t}function sr(e,n){let t=Number(e);if(!Number.isFinite(t)||t<=0)throw new H(`${n} \u5FC5\u987B\u662F\u6709\u9650\u6B63\u6570`);return t}function fe(e,n){let t=de(e,n),r;try{r=new URL(t);}catch(o){throw new H(`${n} \u4E0D\u662F\u5408\u6CD5 URL\uFF1A${o instanceof Error?o.message:String(o)}`)}if(r.protocol!=="https:"&&r.protocol!=="http:")throw new H(`${n} \u53EA\u652F\u6301 HTTP(S)`);if(r.username!==""||r.password!=="")throw new H(`${n} \u4E0D\u5141\u8BB8\u5305\u542B URL \u51ED\u636E`);return t}function En(e,n){if(e==null)return [];if(Array.isArray(e))return e;let r=Q(e,n).list;if(r==null)return [];if(!Array.isArray(r))throw new H(`${n}.list \u5FC5\u987B\u662F\u6570\u7EC4\u6216 null`);return r}function Be(e){return e==="sticker"?1:e==="gif"?2:3}function cr(e){let n=Q(e,"\u8D34\u56FE\u5305"),t=_e(n.onlineTime??n.online_time),r=n.isPlatformIssued??n.is_platform_issued;return {id:de(n.packId??n.pack_id,"\u8D34\u56FE\u5305 packId"),nameZh:Y(n.nameZh??n.name_zh),nameEn:Y(n.nameEn??n.name_en),nameTh:Y(n.nameTh??n.name_th),nameTw:Y(n.nameTw??n.name_tw),nameVi:Y(n.nameVi??n.name_vi),publisher:Y(n.publisher),trayIconUrl:fe(n.trayIcon??n.tray_icon,"\u8D34\u56FE\u5305 trayIcon"),sortWeight:Ti(n.sortWeight??n.sort_weight??0,"\u8D34\u56FE\u5305 sortWeight"),isPlatformIssued:r===true||Number(r)===1,...t===void 0?{}:{onlineTime:t},stickerCount:Ie(n.stickerCount??n.sticker_count??0,"\u8D34\u56FE\u5305 stickerCount")}}function kn(e,n,t,r){let o=Q(e,t),a=_e(o.id),s={...a===void 0?{}:{recordId:a},url:fe(o.imgUrl??o.img_url,`${t} imgUrl`),width:Ie(o.width??0,`${t} width`),height:Ie(o.height??0,`${t} height`)};if(n==="sticker")return {kind:n,...s,packageId:de(r??o.packId??o.pack_id,`${t} packageId`),resourceId:de(o.fileName??o.file_name,`${t} resourceId`)};let d=_e(o.fileName??o.file_name);return {kind:n,...s,...d===void 0?{}:{resourceId:d}}}function Ri(e,n){if(n!=="emoji")return kn(e,n,"\u6700\u8FD1\u4F7F\u7528\u9879");let t=Q(e,"\u6700\u8FD1 emoji"),r=_e(t.id);return {kind:"emoji",...r===void 0?{}:{recordId:r},token:de(t.imgUrl??t.img_url,"\u6700\u8FD1 emoji token"),resourceId:de(t.fileName??t.file_name,"\u6700\u8FD1 emoji resourceId")}}function dr(e,n,t){let r=Be(n);return En(e,t).filter(o=>{let a=Q(o,`${t} item`),s=a.favType??a.fav_type;if(s==null)return true;let d=Number(s);if(d!==1&&d!==2&&d!==3)throw new H(`${t} item.favType \u5FC5\u987B\u662F 1\u30012 \u6216 3`);return d===r})}function lr(e){return {fav_type:Be(e.kind),pack_id:e.kind==="sticker"?e.packageId:"",img_url:fe(e.url,"\u8868\u60C5\u5199\u5165 imgUrl"),file_name:e.resourceId??"",width:e.width,height:e.height}}function Di(e){return e.kind!=="emoji"?lr(e):{fav_type:Be(e.kind),pack_id:"",img_url:e.token,file_name:e.resourceId,width:0,height:0}}function ur(e){let n=[...new Set(e.map(t=>t.trim()).filter(Boolean))];if(n.length===0||n.length>30||n.some(t=>t.includes("|")))throw new H("\u6279\u91CF\u5220\u9664 recordIds \u5FC5\u987B\u5305\u542B 1-30 \u4E2A\u4E0D\u542B\u7AD6\u7EBF\u7684\u552F\u4E00\u975E\u7A7A id");return n.join("|")}function Ui(e){let n=Q(e,"Giphy item"),t=Q(n.images,"Giphy item.images"),r=Q(t.original,"Giphy item.images.original"),o=t.fixed_width,a=o==null?void 0:Q(o,"Giphy item.images.fixed_width"),s=fe(r.url,"Giphy original.url"),d=a===void 0?void 0:_e(a.url),i=a===void 0?void 0:_e(a.webp),f=i===void 0?d===void 0?s:fe(d,"Giphy fixed_width.url"):fe(i,"Giphy fixed_width.webp"),g=i!==void 0&&d!==void 0&&d!==i?fe(d,"Giphy fixed_width.url"):void 0;return {kind:"gif",resourceId:de(n.id,"Giphy item.id"),title:Y(n.title)||"GIF",url:s,previewUrl:f,...g===void 0?{}:{fallbackPreviewUrl:g},width:sr(r.width,"Giphy original.width"),height:sr(r.height,"Giphy original.height")}}function Oi(e,n){let t=Q(e,"Giphy response");if(!Array.isArray(t.data))throw new H("Giphy response.data \u5FC5\u987B\u662F\u6570\u7EC4");let r=Q(t.pagination,"Giphy response.pagination"),o=Ie(r.offset??n,"Giphy pagination.offset");if(o!==n)throw new H("Giphy pagination.offset \u4E0E\u8BF7\u6C42 offset \u4E0D\u4E00\u81F4");let a=Ie(r.count??t.data.length,"Giphy pagination.count"),s=Ie(r.total_count??r.totalCount??0,"Giphy pagination.total_count"),d=new Map;for(let f of t.data){let g=Ui(f);d.set(g.resourceId,g);}let i=o+a;return {items:[...d.values()],offset:o,totalCount:s,...a>0&&i<s?{nextOffset:i}:{}}}function Ni(e){async function n(r,o,a){if(e.coreClient===void 0)throw new we("core");let s=await x(e.coreClient,r,o,{method:"POST",responseMode:"strict"});if(!s.ok)throw new q(a,s.code,s.message);return s.data}async function t(r,o){let a=e.giphyApiKey?.trim()??"";if(a==="")throw new we("giphy");let s=e.fetcher??globalThis.fetch;if(typeof s!="function")throw new we("giphy");let d=new URLSearchParams({api_key:a,limit:String(o.limit),offset:String(o.offset),...o.query===void 0?{}:{q:o.query,lang:"en"}}),i;try{i=await s(`${ki}/${r}?${d.toString()}`);}catch{throw new pe(0,"network failure")}let f;try{f=await i.json();}catch(b){throw i.ok?new H(`Giphy response \u4E0D\u662F JSON\uFF1A${b instanceof Error?b.message:String(b)}`):new pe(i.status,"")}if(!i.ok){let b=f!==null&&typeof f=="object"&&!Array.isArray(f)?f.meta:void 0,h=b!==null&&typeof b=="object"&&!Array.isArray(b)?Y(b.msg):"";throw new pe(i.status,h)}let g=f!==null&&typeof f=="object"&&!Array.isArray(f)?f.meta:void 0;if(g!==null&&typeof g=="object"&&!Array.isArray(g)){let b=g,h=Number(b.status);if(Number.isFinite(h)&&h!==200)throw new pe(h,Y(b.msg))}return Oi(f,o.offset)}return {async listStickerPacks(r){let o=await n("/user/sticker/pack_list",r===void 0?{}:{version:r},"\u8D34\u56FE\u5305\u5217\u8868");if(Array.isArray(o))return {version:"",items:o.map(cr)};if(o==null)return {version:"",items:[]};let a=Q(o,"\u8D34\u56FE\u5305\u5217\u8868 data"),s=a.list??a.packs;if(s==null)return {version:Y(a.version),items:[]};if(!Array.isArray(s))throw new H("\u8D34\u56FE\u5305\u5217\u8868 data.list \u5FC5\u987B\u662F\u6570\u7EC4\u6216 null");return {version:Y(a.version),items:s.map(cr)}},async listStickerItems(r){let o=await n("/user/sticker/item_list",{pack_id:r},"\u8D34\u56FE\u660E\u7EC6\u5217\u8868");return En(o,"\u8D34\u56FE\u660E\u7EC6\u5217\u8868 data").map(a=>kn(a,"sticker","\u8D34\u56FE\u660E\u7EC6",r))},async listFavorites(r){let o=await n("/user/sticker/my_fav/list",{fav_type:Be(r)},"\u8868\u60C5\u6536\u85CF\u5217\u8868");return dr(o,r,"\u8868\u60C5\u6536\u85CF\u5217\u8868 data").map(a=>kn(a,r,"\u8868\u60C5\u6536\u85CF\u9879"))},async addFavorite(r){await n("/user/sticker/my_fav/add",lr(r),"\u6DFB\u52A0\u8868\u60C5\u6536\u85CF");},async deleteFavorites(r){await n("/user/sticker/my_fav/del",{ids:ur(r)},"\u5220\u9664\u8868\u60C5\u6536\u85CF");},async listRecent(r){let o=await n("/user/sticker/recent/list",{fav_type:Be(r)},"\u6700\u8FD1\u4F7F\u7528\u5217\u8868");return dr(o,r,"\u6700\u8FD1\u4F7F\u7528\u5217\u8868 data").map(a=>Ri(a,r))},async reportRecent(r){await n("/user/sticker/recent/report",Di(r),"\u4E0A\u62A5\u6700\u8FD1\u4F7F\u7528");},async deleteRecent(r){await n("/user/sticker/recent/del",{ids:ur(r)},"\u5220\u9664\u6700\u8FD1\u4F7F\u7528");},async listReactionTop(r){let o=await n("/user/reaction/emoji/top",r===void 0?{}:{limit:r},"\u5FEB\u6377\u56DE\u5E94 Top \u5217\u8868");return En(o,"\u5FEB\u6377\u56DE\u5E94 Top data").map(a=>{let s=Q(a,"\u5FEB\u6377\u56DE\u5E94 Top \u9879");return de(s.emoji,"\u5FEB\u6377\u56DE\u5E94 emoji")})},async reportReaction(r){await n("/user/reaction/emoji/report",{emoji:r},"\u4E0A\u62A5\u5FEB\u6377\u56DE\u5E94");},listGiphyTrending:r=>t("trending",r),searchGiphy:r=>t("search",r)}}async function pr(e,n){let t=n.clientType===void 0?void 0:{headers:{"Client-type":String(n.clientType)}};return (await x(e,"/user_group/info",{group_id:n.groupId},t)).data}function Bi(e){if(Array.isArray(e))return e;if(typeof e!="object"||e===null)return [];let n=e,t=["list","users","user_list","members","member_list","members_list"];for(let r of t)if(Array.isArray(n[r]))return n[r];if(Array.isArray(n.data))return n.data;if(typeof n.data=="object"&&n.data!==null){let r=n.data;for(let o of t)if(Array.isArray(r[o]))return r[o]}return []}function Gi(e){if(typeof e=="number")return e;if(typeof e=="string"&&e.trim()!==""){let n=Number(e);return Number.isNaN(n)?void 0:n}}var fr=200,Ki=50;async function mr(e,n){let t=String(n.updateVersion??0).trim()||"0",r=[],o;for(let a=1;a<=Ki;a++){let s={group_id:n.groupId,update_version:t,page:String(a),page_size:String(fr)},{data:d}=await x(e,"/user_group/user/list",s,{method:"GET",...n.clientType===void 0?{}:{headers:{"Client-type":String(n.clientType)}}});if(d===null)break;let i=Bi(d);if(i.length===0)break;for(let g of i){let b=String(g.user_id??g.userId??"").trim();if(b==="")continue;let h={userId:b,nickName:String(g.nick_name??g.nickName??"").trim()},p=Gi(g.join_type??g.joinType);p!==void 0&&(h.joinType=p),r.push(h);}let f=d.update_version;if(typeof f=="number"&&(o=f),i.length<fr)break}return {members:r,updateVersion:o}}async function gr(e,n){return (await x(e,"/user/info/friend",{friend_user_id:n.userId})).data}var Li=1440*60*1e3;function Tn(e,n,t=Li){let r=new Map,o=new Map,a=new Map;function s(g){let b=(a.get(g)??0)+1;a.set(g,b);let h=e(g).then(p=>(p!==null&&a.get(g)===b&&(r.set(g,p),n?.save(g,p).catch(()=>{})),p)).finally(()=>{o.get(g)===h&&o.delete(g);});return o.set(g,h),h}return {get:async(g,b)=>{if(b?.forceRefresh===true)return s(g);let h=r.get(g);if(h!==void 0)return h;let p=o.get(g);if(p!==void 0)return p;if(n!==void 0)try{let A=a.get(g)??0,v=await n.get(g);if(v!==null)return (a.get(g)??0)===A&&(r.set(g,v.value),Date.now()-v.updatedAt>t&&s(g)),v.value}catch{}return s(g)},peek:async g=>{let b=r.get(g);if(b!==void 0)return {value:b,stale:false};if(n===void 0)return null;try{let h=a.get(g)??0,p=await n.get(g);if(p!==null)return (a.get(g)??0)===h&&r.set(g,p.value),{value:p.value,stale:Date.now()-p.updatedAt>t}}catch{}return null},clear:()=>{for(let g of new Set([...r.keys(),...o.keys(),...a.keys()]))a.set(g,(a.get(g)??0)+1);r.clear(),o.clear();}}}function Hi(e){async function n(h){let p=await gr(e.client,{userId:h})??await Ee(e.client,{userId:h});return p===null?null:N(p)}async function t(h){let p=await pr(e.client,{groupId:h,clientType:e.clientType});return p===null?null:O$1(p)}async function r(h){let{members:p}=await mr(e.client,{groupId:h,clientType:e.clientType});return p.length===0?null:p}function o(h){let p={};for(let A of h)A.nickName!==""&&(p[A.userId]=A.nickName);return p}let{storage:a}=e,s=a===void 0?void 0:{get:async h=>{let p=await a.getUserProfile(h);return p===null?null:{value:p,updatedAt:p.updatedAt}},save:async(h,p)=>{await a.saveUserProfile({...p,updatedAt:Date.now()});}},d=a===void 0?void 0:{get:async h=>{let p=await a.getGroupMembers(h);return p===null?null:{value:p.members.map(A=>({userId:A.userId,nickName:A.groupNick,...A.joinType===void 0?{}:{joinType:A.joinType}})),updatedAt:p.updatedAt}},save:async(h,p)=>{let A=p.map(v=>({userId:v.userId,groupNick:v.nickName,...v.joinType===void 0?{}:{joinType:v.joinType}}));await a.saveGroupMembers({groupId:h,members:A,updatedAt:Date.now()});}},i=a===void 0?void 0:{get:async h=>{let p=await a.getGroupProfile(h);return p===null?null:{value:p,updatedAt:p.updatedAt}},save:async(h,p)=>{await a.saveGroupProfile({...p,updatedAt:Date.now()});}},f=Tn(n,s),g=Tn(t,i),b=Tn(r,d);return {getUserProfile:(h,p)=>f.get(h,p),getGroupProfile:(h,p)=>g.get(h,p),getGroupMemberNames:async(h,p)=>{let A=await b.get(h,p);return A===null?null:o(A)},listGroupMembers:(h,p)=>b.get(h,p),peekUserProfile:h=>f.peek(h),peekGroupMemberNames:async h=>{let p=await b.peek(h);return p===null?null:{value:o(p.value),stale:p.stale}},peekGroupMembers:h=>b.peek(h),peekGroupProfile:h=>g.peek(h),clearCache:()=>{f.clear(),g.clear(),b.clear();}}}function $i(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}async function X(e,n,t,r){let o=await x(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new q(r,o.code,o.message)}function Fi(e){return X(e.client,"/user_radio/edit",{radio_id:e.channelId,...e.name===void 0?{}:{name:e.name},...e.avatarUrl===void 0?{}:{head_img_url:e.avatarUrl},...e.description===void 0?{}:{desc:e.description}},"\u4FEE\u6539\u793E\u7FA4\u8D44\u6599")}function Ji(e){return X(e.client,"/user_radio/user/setting",{radio_id:e.channelId,nick_name:e.nickname},"\u4FEE\u6539\u793E\u7FA4\u6635\u79F0")}function Vi(e){return X(e.client,"/user_radio/member/edit",{radio_id:e.channelId,radio_user_id:e.userId,nick_name:e.nickname},"\u4FEE\u6539\u793E\u7FA4\u6635\u79F0")}function ji(e){let n=e.userIds.map(t=>({user_id:$i(t)}));return X(e.client,"/user_radio/invited_users",{radio_id:e.channelId,members:JSON.stringify(n)},"\u9080\u8BF7\u793E\u7FA4\u6210\u5458")}function qi(e){return X(e.client,"/user_radio/kick_user",{radio_id:e.channelId,user_id:e.userId},"\u79FB\u9664\u793E\u7FA4\u6210\u5458")}function zi(e){return X(e.client,"/user_radio/add_admin",{radio_id:e.channelId,user_id:e.userId},"\u8BBE\u4E3A\u793E\u7FA4\u7BA1\u7406\u5458")}function Wi(e){return X(e.client,"/user_radio/del_admin",{radio_id:e.channelId,user_id:e.userId},"\u53D6\u6D88\u793E\u7FA4\u7BA1\u7406\u5458")}function Yi(e){return X(e.client,"/user_radio/transfer",{radio_id:e.channelId,user_id:e.userId},"\u8F6C\u8BA9\u793E\u7FA4")}function Qi(e){return X(e.client,"/user_radio/user/quit",{radio_id:e.channelId,...e.newOwnerId===void 0?{}:{user_id:e.newOwnerId}},"\u9000\u51FA\u793E\u7FA4")}function Xi(e){return X(e.client,"/user_radio/edit_setting",{radio_id:e.channelId,verify_way:e.verifyType,...e.verifyType===4&&e.inviteCode!==void 0?{invite_code:e.inviteCode}:{}},"\u4FEE\u6539\u793E\u7FA4\u5165\u7FA4\u9A8C\u8BC1\u65B9\u5F0F")}function Zi(e){return X(e.client,"/user_radio/edit_setting",{radio_id:e.channelId,is_unspeeking_all:e.muted?"1":"0"},e.muted?"\u5F00\u542F\u793E\u7FA4\u5168\u5458\u7981\u8A00":"\u5173\u95ED\u793E\u7FA4\u5168\u5458\u7981\u8A00")}function ea(e){return X(e.client,"/user_radio/edit_setting",{radio_id:e.channelId,is_unvisit_other:e.disabled?"1":"0"},e.disabled?"\u5F00\u542F\u793E\u7FA4\u5168\u5458\u7981\u79C1\u804A":"\u5173\u95ED\u793E\u7FA4\u5168\u5458\u7981\u79C1\u804A")}function na(e){return X(e.client,"/user_radio/closed",{radio_id:e.channelId},"\u89E3\u6563\u793E\u7FA4")}async function ta(e){ra(e.channelId,"channel");let n=e.index.trim();if(n==="")throw new Error("CHANNEL \u5386\u53F2\u4E0A\u4E0B\u6587 index \u7F3A\u5931");e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId);let t=e.containAnchor??true,r=x$1({userId:e.userId,clientType:e.clientType,pulls:[{channelId:e.channelId,baseIndex:n,direction:0,count:20,contain:t?1:0}]}),o=await e.http.postProtobuf({path:"/channel/v1/offlineMessages",body:r}),a=A(o,{selfId:e.userId,keepRaw:true,expectedChannelIds:[e.channelId],onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps);if(t){let d=a.messages.filter(i=>i.extensions?.historyCursor===n);if(d.length!==1)throw new Error(`CHANNEL \u5386\u53F2\u4E0A\u4E0B\u6587 anchor \u5FC5\u987B\u4E00\u4E00\u5BF9\u5E94\uFF08channelId=${e.channelId}, index=${n}, count=${d.length}\uFF09`)}let s=a.nextBaseIndexes[e.channelId];return {messages:a.messages,hasNewer:(a.messageCounts[e.channelId]??0)===20&&s!==void 0&&s!==n,...s===void 0?{}:{nextCursor:s}}}function ra(e,n){if(!/^\d+$/.test(e))throw new Error(`CHANNEL ${n} id \u975E\u6CD5\uFF1A${e}`);let t=BigInt(e);if(t<=0n)throw new Error(`CHANNEL ${n} id \u975E\u6CD5\uFF1A${e}`);return t}async function oa(e){let n=ia(e.indexes),t=f.encode(f.create({sUserId:Rn(e.userId,"user"),lsIndex:n.map(a=>({sChnnId:Rn(a.channelId,"channel"),sIndex:a.readCursor}))})),r=await e.http.postProtobuf({path:"/channel/v1/readIndexes/edit",body:t}),o=g.decode(r);if(o.errcode!==0)throw new Error(`CHANNEL readIndexes/edit \u5931\u8D25\uFF1Aerrcode=${o.errcode}`)}function ia(e){if(e.length===0)throw new Error("CHANNEL readIndexes/edit \u81F3\u5C11\u9700\u8981\u4E00\u4E2A index");let n=new Set;return e.map(t=>{Rn(t.channelId,"channel");let r=t.readCursor.trim();if(r==="")throw new Error(`CHANNEL readIndexes/edit cursor \u7F3A\u5931\uFF08channelId=${t.channelId}\uFF09`);if(n.has(t.channelId))throw new Error(`CHANNEL readIndexes/edit \u9891\u9053\u91CD\u590D\uFF08channelId=${t.channelId}\uFF09`);return n.add(t.channelId),{channelId:t.channelId,readCursor:r}})}function Rn(e,n){if(!/^\d+$/.test(e))throw new Error(`CHANNEL readIndexes ${n} id \u975E\u6CD5\uFF1A${e}`);let t=BigInt(e);if(t<=0n)throw new Error(`CHANNEL readIndexes ${n} id \u975E\u6CD5\uFF1A${e}`);return t}async function aa(e,n){let t=n.userId.trim();if(t==="")throw new Error("\u8BBE\u7F6E\u9ED1\u540D\u5355\uFF1AuserId \u4E0D\u80FD\u4E3A\u7A7A");let r=await x(e,"/user/black/set",{friend_user_id:t,status:n.blocked?2:1},{responseMode:"strict",method:"POST"});if(!r.ok)throw new Error(`${n.blocked?"\u52A0\u5165":"\u79FB\u51FA"}\u9ED1\u540D\u5355\u5931\u8D25\uFF08${r.code}\uFF09\uFF1A${r.message||"unknown error"}`)}var en=class extends Error{responseCode;constructor(n,t){super(`\u641C\u7D22\u7528\u6237\u5931\u8D25\uFF08${n}\uFF09\uFF1A${t||"unknown error"}`),this.name="ContactUserSearchError",this.responseCode=n;}},nn=class extends Error{kind;responseCode;constructor(n,t,r){super(`\u53D1\u9001\u597D\u53CB\u7533\u8BF7\u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`),this.name="ContactFriendshipRequestError",this.kind=n,this.responseCode=t;}},Dn={HIDDEN_CONTACT:40112,OWN_FRIEND_LIMIT_REACHED:40121,TARGET_FRIEND_LIMIT_REACHED:40122},sa=36875,ca=40113;function Un(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function ie(e){let n=Un(e);return n===""?void 0:n}function hr(e){let n=Array.isArray(e)?e[0]:e;return n!==null&&typeof n=="object"?n:void 0}function da(e){switch(e){case Dn.HIDDEN_CONTACT:return "hidden-contact";case Dn.OWN_FRIEND_LIMIT_REACHED:return "own-friend-limit";case Dn.TARGET_FRIEND_LIMIT_REACHED:return "target-friend-limit";default:return "remote"}}async function ua(e,n){let t=n.query.trim();if(t==="")throw new Error("\u641C\u7D22\u7528\u6237\uFF1Aquery \u4E0D\u80FD\u4E3A\u7A7A");let r=await x(e,"/user/info/search",{username:t},{responseMode:"strict",...n.clientType===void 0?{}:{headers:{"Client-type":String(n.clientType)}}});if(!r.ok)throw new en(r.code,r.message);let o=hr(r.data);if(o===void 0)return null;let a=Un(o.user_id??o.userId);if(a==="")throw new Error("\u641C\u7D22\u7528\u6237\uFF1A\u54CD\u5E94\u7F3A\u5C11 user_id");let s=Un(o.nick_name??o.nickname??o.name)||a,d=o.friend_status??o.friendStatus,i=d===void 0?void 0:Number(d);if(i!==void 0&&!Number.isInteger(i))throw new Error("\u641C\u7D22\u7528\u6237\uFF1Afriend_status \u975E\u6CD5");return {userId:a,nickname:s,...ie(o.username)===void 0?{}:{username:ie(o.username)},...ie(o.mid)===void 0?{}:{miCallId:ie(o.mid)},...ie(o.head_img_url??o.avatar)===void 0?{}:{avatarUrl:ie(o.head_img_url??o.avatar)},...ie(o.per_signature??o.signature)===void 0?{}:{signature:ie(o.per_signature??o.signature)},...i===void 0?{}:{friendStatus:i}}}async function la(e,n){let t=n.userId.trim(),r=n.message.trim(),o=n.remark?.trim();if(t===""||r==="")throw new Error("\u53D1\u9001\u597D\u53CB\u7533\u8BF7\uFF1AuserId \u548C message \u4E0D\u80FD\u4E3A\u7A7A");let a=await x(e,"/friend/apply/do",{to_user_id:t,remarks:r,...o===void 0||o===""?{}:{remark_nick_name:o}},{responseMode:"strict",method:"POST",...n.clientType===void 0?{}:{headers:{"Client-type":String(n.clientType)}}});if(!a.ok)throw new nn(da(a.code),a.code,a.message);let s=hr(a.data),d=Number(s?.status??0);if(d!==0&&d!==1&&d!==2)throw new Error(`\u53D1\u9001\u597D\u53CB\u7533\u8BF7\uFF1A\u672A\u77E5\u7ED3\u679C\u72B6\u6001 ${d}`);let i=ie(s?.message??s?.msg??a.message);return {status:d,...i===void 0?{}:{message:i}}}async function pa(e,n){let t=n.userId.trim();if(t==="")throw new Error("\u5220\u9664\u597D\u53CB\uFF1AuserId \u4E0D\u80FD\u4E3A\u7A7A");let r=await x(e,"/friend/del",{friend_user_id:t},{responseMode:"strict",method:"POST",...n.clientType===void 0?{}:{headers:{"Client-type":String(n.clientType)}}});if(!r.ok&&r.code!==ca)throw new Error(`\u5220\u9664\u597D\u53CB\u5931\u8D25\uFF08${r.code}\uFF09\uFF1A${r.message||"unknown error"}`)}async function fa(e,n){let t=n.reporterUserId.trim(),r=n.targetUserId.trim(),o=n.problem.trim();if(t===""||r===""||o==="")throw new Error("\u4E3E\u62A5\u8054\u7CFB\u4EBA\uFF1AreporterUserId\u3001targetUserId \u548C problem \u4E0D\u80FD\u4E3A\u7A7A");let a=await x(e,"/user/report_user/add",{user_id:t,to_user_id:r,problem:o,images:"1"},{responseMode:"strict",method:"POST"});if(!a.ok)throw new q("\u4E3E\u62A5\u8054\u7CFB\u4EBA",a.code,a.message)}function ma(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}function ga(e){let n=e.memberIds.map(t=>({user_id:ma(t)}));return x(e.client,"/user_radio/create",{name:e.name,secret_key:e.secretKey,is_hidden:"0",members:JSON.stringify(n),...e.avatarUrl===void 0?{}:{head_img_url:e.avatarUrl}},{method:"POST",responseMode:"strict"})}function ha(e){return x(e.client,"/user_group/create_face",{is_hidden:"0"},{method:"POST",responseMode:"strict"})}function ya(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}function Ca(e){let n=e.memberIds.map(t=>({user_id:ya(t)}));return x(e.client,"/user_group/create",{name:e.name,is_hidden:"0",members:JSON.stringify(n),...e.avatarUrl===void 0?{}:{head_img_url:e.avatarUrl}},{method:"POST",responseMode:"strict"})}function Ae(e){if(e.trim()==="")throw new Error("board pinned message groupId \u4E0D\u80FD\u4E3A\u7A7A")}function Se(e){if(e.trim()==="")throw new Error("channel board pinned message channelId \u4E0D\u80FD\u4E3A\u7A7A")}function yr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function ba(e){Ae(e.groupId);let n=await x(e.client,"/api/v1/board/get_board_msg_top",{group_ids:e.groupId,group_type:2},{method:"POST",prefix:"",responseMode:"strict"});if(!n.ok)return n;if(!yr(n.data))throw new Error("board get \u54CD\u5E94\u7ED3\u6784\u975E\u6CD5\uFF1A\u6210\u529F data \u5FC5\u987B\u4E3A\u5BF9\u8C61");let t=n.data[e.groupId];if(t===void 0&&Object.keys(n.data).length===0)return {...n,data:null};if(t===void 0)throw new Error("board get \u54CD\u5E94\u7ED3\u6784\u975E\u6CD5\uFF1A\u5355\u7FA4\u54CD\u5E94\u5305\u542B\u975E\u76EE\u6807 groupId");if(!yr(t)||t.group_id!==e.groupId||t.group_type!==2||typeof t.msg_content!="string"||t.msg_content==="")throw new Error("board get \u54CD\u5E94\u7ED3\u6784\u975E\u6CD5\uFF1A\u7F6E\u9876\u8BB0\u5F55\u5B57\u6BB5\u4E0D\u5339\u914D");let r=t,o=i(r.msg_content);if(o.envelope.convType!==2)throw new Error("board get \u5FEB\u7167 convType \u5FC5\u987B\u4E3A 2");if(o.envelope.receiverId!==e.groupId)throw new Error("board get \u5FEB\u7167 receiverId \u4E0E\u54CD\u5E94 groupId \u4E0D\u4E00\u81F4");return {...n,data:{groupId:r.group_id,groupType:2,messageContent:r.msg_content}}}function Cr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function Pa(e){Se(e.channelId);let n=await x(e.client,"/api/v1/board/get_board_msg_top",{group_ids:e.channelId,group_type:1},{method:"POST",prefix:"",responseMode:"strict"});if(!n.ok)return n;if(!Cr(n.data))throw new Error("channel board get \u54CD\u5E94\u7ED3\u6784\u975E\u6CD5\uFF1A\u6210\u529F data \u5FC5\u987B\u4E3A\u5BF9\u8C61");let t=n.data[e.channelId];if(t===void 0&&Object.keys(n.data).length===0)return {...n,data:null};if(t===void 0)throw new Error("channel board get \u54CD\u5E94\u7ED3\u6784\u975E\u6CD5\uFF1A\u5355\u9891\u9053\u54CD\u5E94\u5305\u542B\u975E\u76EE\u6807 channelId");if(!Cr(t)||t.group_id!==e.channelId||t.group_type!==1||typeof t.msg_content!="string"||t.msg_content==="")throw new Error("channel board get \u54CD\u5E94\u7ED3\u6784\u975E\u6CD5\uFF1A\u7F6E\u9876\u8BB0\u5F55\u5B57\u6BB5\u4E0D\u5339\u914D");let r=t,o=i(r.msg_content);if(o.envelope.convType!==3)throw new Error("channel board get \u5FEB\u7167 convType \u5FC5\u987B\u4E3A 3");if(o.envelope.receiverId!==e.channelId)throw new Error("channel board get \u5FEB\u7167 receiverId \u4E0E\u54CD\u5E94 channelId \u4E0D\u4E00\u81F4");return {...n,data:{channelId:r.group_id,groupType:1,messageContent:r.msg_content}}}async function wa(e,n){let r=(await x(e,"/user_radio/info",{radio_id:n.channelId},{...n.clientType===void 0?{}:{headers:{"Client-type":String(n.clientType)}}})).data?.secret_key;return typeof r=="string"&&r.trim()!==""?r:null}function Ia(e){if(typeof e!="string"||e.length===0)return false;try{let n=new URL(e);return n.protocol==="http:"||n.protocol==="https:"}catch{return false}}async function _a(e){let n=await e("/system/background/list",{target:"core",method:"POST",data:{}});if(n.code!==200)throw new Error(`\u4F1A\u8BDD\u80CC\u666F\u9884\u7F6E\u5217\u8868\u8BF7\u6C42\u5931\u8D25\uFF1A${n.code}${n.msg?` ${n.msg}`:""}`);if(!Array.isArray(n.data?.lists))throw new Error("\u4F1A\u8BDD\u80CC\u666F\u9884\u7F6E\u5217\u8868\u54CD\u5E94\u7F3A\u5C11 lists");let t=[],r=new Set;for(let o of n.data.lists){let a=typeof o.id=="string"||typeof o.id=="number"?String(o.id):"";a.length===0||o.is_enabled!==1||!Ia(o.img_url)||r.has(a)||(r.add(a),t.push({id:a,url:o.img_url,...typeof o.name=="string"&&o.name.length>0?{name:o.name}:{}}));}return t}function Aa(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}async function Ge(e,n,t,r){let o=await x(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new q(r,o.code,o.message)}function Sa(e){let n=e.userIds.map(t=>({user_id:Aa(t)}));return Ge(e.client,"/user_group/invited",{group_id:e.groupId,members:JSON.stringify(n)},"\u9080\u8BF7\u7FA4\u6210\u5458")}function va(e){return Ge(e.client,"/user_group/kick",{group_id:e.groupId,out_user_id:e.userId},"\u79FB\u9664\u7FA4\u6210\u5458")}function Ma(e){return Ge(e.client,"/user_group/transfer",{group_id:e.groupId,new_user_id:e.userId},"\u8F6C\u8BA9\u7FA4\u7EC4")}function xa(e){return Ge(e.client,"/user_group/user/quit",{group_id:e.groupId,...e.newOwnerId===void 0?{}:{new_user_id:e.newOwnerId}},"\u9000\u51FA\u7FA4\u7EC4")}function Ea(e){return Ge(e.client,"/user_group/edit",{group_id:e.groupId,verify_way:e.verifyWay,...e.verifyWay===4&&e.inviteCode!==void 0?{invite_code:e.inviteCode}:{}},"\u4FEE\u6539\u666E\u901A\u7FA4\u5165\u7FA4\u9A8C\u8BC1\u65B9\u5F0F")}var ka=new Set([200,32768]);async function Ta(e){let n=J({userId:e.userId,groupId:e.groupId}),t=await e.http.postProtobuf({path:"/offline/v1/group/read_all",body:n}),{code:r}=K(t);if(!ka.has(r))throw new Error(`\u7FA4 read_all \u4E1A\u52A1\u5931\u8D25\uFF1Acode=${r}\uFF08groupId=${e.groupId}\uFF09`)}var Ke=class extends Error{constructor(n){super(`${n}\u54CD\u5E94\u5305\u542B\u65E0\u6CD5\u8BC6\u522B\u7684 is_waitting`),this.name="MembershipJoinMappingError";}};function Ra(e,n){if(e===true||e===1||e==="1")return Object.freeze({outcome:"waiting"});if(e==null||e===false||e===0||e==="0")return Object.freeze({outcome:"joined"});throw new Ke(n)}async function br(e,n,t,r){let o=await x(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new q(r,o.code,o.message);if(o.data===null||o.data===void 0)throw new Ke(r);return Ra(o.data.is_waitting,r)}async function Pr(e,n,t,r){let o=await x(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new q(r,o.code,o.message);return Object.freeze({outcome:"joined"})}function Da(e){return br(e.client,"/user_group/apply",{group_id:e.groupId,qrcode_type:2,remarks:e.remarks??""},"\u7533\u8BF7\u52A0\u5165\u666E\u901A\u7FA4")}function Ua(e){return Pr(e.client,"/user_group/enter_by_invite_code",{group_id:e.groupId,invite_code:e.inviteCode},"\u4F7F\u7528\u9080\u8BF7\u7801\u52A0\u5165\u666E\u901A\u7FA4")}function Oa(e){return br(e.client,"/user_radio/add/apply",{radio_id:e.channelId,remarks:e.remarks??""},"\u7533\u8BF7\u52A0\u5165\u793E\u7FA4")}function Na(e){return Pr(e.client,"/user_radio/enter_by_invite_code",{radio_id:e.channelId,invite_code:e.inviteCode},"\u4F7F\u7528\u9080\u8BF7\u7801\u52A0\u5165\u793E\u7FA4")}async function Ba(e){if(Ae(e.groupId),e.messageContent.trim()==="")throw new Error("board pinned message messageContent \u4E0D\u80FD\u4E3A\u7A7A");let n=i(e.messageContent);if(n.envelope.convType!==2)throw new Error("board pin \u5FEB\u7167 convType \u5FC5\u987B\u4E3A 2");if(n.envelope.receiverId!==e.groupId)throw new Error("board pin \u5FEB\u7167 receiverId \u4E0E\u76EE\u6807 groupId \u4E0D\u4E00\u81F4");let t=await x(e.client,"/api/v1/board/board_msg_top",{group_id:e.groupId,group_type:2,msg_content:e.messageContent},{method:"POST",prefix:"",responseMode:"strict"});if(!t.ok)return t;if(t.data!==null)throw new Error("board pin \u54CD\u5E94\u7ED3\u6784\u975E\u6CD5\uFF1A\u6210\u529F data \u5FC5\u987B\u4E3A\u7A7A");return {...t,data:null}}async function Ga(e){if(Se(e.channelId),e.messageContent.trim()==="")throw new Error("channel board pinned message messageContent \u4E0D\u80FD\u4E3A\u7A7A");let n=i(e.messageContent);if(n.envelope.convType!==3)throw new Error("channel board pin \u5FEB\u7167 convType \u5FC5\u987B\u4E3A 3");if(n.envelope.receiverId!==e.channelId)throw new Error("channel board pin \u5FEB\u7167 receiverId \u4E0E\u76EE\u6807 channelId \u4E0D\u4E00\u81F4");let t=await x(e.client,"/api/v1/board/board_msg_top",{group_id:e.channelId,group_type:1,msg_content:e.messageContent},{method:"POST",prefix:"",responseMode:"strict"});if(!t.ok)return t;if(t.data!==null)throw new Error("channel board pin \u54CD\u5E94\u7ED3\u6784\u975E\u6CD5\uFF1A\u6210\u529F data \u5FC5\u987B\u4E3A\u7A7A");return {...t,data:null}}var Ka=20,wr=10,On=30,La=100;async function Ha(e){let n=[];for(let t of _r(e.channels,Ka)){let r=w({userId:e.userId,channels:t}),o=await e.http.postProtobuf({path:"/channel/v1/sessions",body:r}),a={selfId:e.userId,keepRaw:true,expectedChannelIds:t.map(d=>d.channelId),diagnostic:{endpoint:"sessions",surface:"session-last",...e.operationId===void 0?{}:{operationId:e.operationId},clientTypeHeader:e.clientType,clientTypeBody:"absent"}},s=z$1(o,a);await Ir(e,s.sessions.filter(d=>d.channelState==="active"||d.raw?.status===0).map(d=>d.channelId)),n.push(...z$1(o,{...a,onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps).sessions);}return n}async function $a(e){let n=Va(e.channelBatchSize),t=e.messageCount??On,r=ja(e.maxPagesPerBatch),o=new Map;for(let a of _r(e.pulls,n)){let s=a.map(f=>({...f})),d=new Map(s.map(f=>[f.channelId,new Set([f.baseIndex])])),i=0;for(;s.length>0;){if(i>=r)throw new Error(`channel offline \u5206\u9875\u8D85\u8FC7 maxPagesPerBatch=${r}`);i+=1;let f=x$1({userId:e.userId,clientType:e.clientType,pulls:s.map(p=>({channelId:p.channelId,baseIndex:p.baseIndex,direction:0,count:t,contain:0}))}),g=await e.http.postProtobuf({path:"/channel/v1/offlineMessages",body:f});await Ir(e,s.map(p=>p.channelId));let b=A(g,{selfId:e.userId,keepRaw:true,expectedChannelIds:s.map(p=>p.channelId),diagnostic:{endpoint:"offlineMessages",surface:"offline-batch",...e.operationId===void 0?{}:{operationId:e.operationId},clientTypeHeader:e.clientType,clientTypeBody:e.clientType},onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps);for(let p of b.messages)o.has(p.id)||o.set(p.id,p);let h=[];for(let p of s){let A=b.nextBaseIndexes[p.channelId],v=b.messageCounts[p.channelId]??0;if(A===void 0)continue;let E=d.get(p.channelId);if(E.has(A))throw new Error(`channel offline cursor \u5FAA\u73AF\uFF08channelId=${p.channelId}, baseIndex=${A}\uFF09`);v<t||(E.add(A),h.push({channelId:p.channelId,baseIndex:A}));}s=h;}}return [...o.values()].sort(k)}async function Fa(e$1){let n=e$1.count??On;if(!Number.isInteger(n)||n<=0)throw new Error("channel latest: count \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");e$1.decryptDeps!==void 0&&e$1.prepareKey!==void 0&&await e$1.prepareKey(e$1.channelId);let t=x$1({userId:e$1.userId,clientType:e$1.clientType,pulls:[{channelId:e$1.channelId,baseIndex:"",direction:1,count:n,contain:0}]}),r=await e$1.http.postProtobuf({path:"/channel/v1/offlineMessages",body:t}),o=A(r,{selfId:e$1.userId,keepRaw:true,expectedChannelIds:[e$1.channelId],diagnostic:{endpoint:"offlineMessages",surface:"history-page",...e$1.operationId===void 0?{}:{operationId:e$1.operationId},clientTypeHeader:e$1.clientType,clientTypeBody:e$1.clientType},onContentDecodeError:e$1.onContentDecodeError,onReaction:e$1.onReaction},e$1.decryptDeps),a=e.decode(r),s=o.batchSize===n,d=a.lsMessage[0]?.sIndex;if(s&&(typeof d!="string"||d.trim()===""))throw new Error(`channel latest: \u6EE1\u9875\u7F3A\u5C11\u5411\u65E7 cursor\uFF08channelId=${e$1.channelId}\uFF09`);return {messages:o.messages,hasOlder:s,...s?{nextCursor:d}:{}}}async function Ja(e){let n=e.count??On;e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId);let t=y({userId:e.userId,clientType:e.clientType,channelId:e.channelId,baseIndex:e.baseIndex,count:n,contain:e.contain??0}),r=await e.http.postProtobuf({path:"/channel/v1/offlineMessages",body:t});return B$1(r,{selfId:e.userId,channelId:e.channelId,requestedBaseIndex:e.baseIndex,requestedCount:n,keepRaw:true,diagnostic:{endpoint:"history",surface:"history-page",...e.operationId===void 0?{}:{operationId:e.operationId},clientTypeHeader:e.clientType,clientTypeBody:e.clientType},onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps)}async function Ir(e,n){if(e.decryptDeps===void 0||e.prepareKeys===void 0)return;let t=[...new Set(n.filter(Boolean))];t.length>0&&await e.prepareKeys(t);}function Va(e){if(e===void 0)return wr;if(!Number.isInteger(e)||e<=0)throw new Error("channel offline: channelBatchSize \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");return Math.min(e,wr)}function ja(e){if(e===void 0)return La;if(!Number.isInteger(e)||e<=0)throw new Error("channel offline: maxPagesPerBatch \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");return e}function _r(e,n){let t=[];for(let r=0;r<e.length;r+=n)t.push(e.slice(r,r+n));return t}async function Ar(e,n){let t=L$1({userId:n.userId,clientType:n.clientType,limit:n.limit,deliveredMsgInfos:n.deliveredMsgInfos}),r=await n.http.postProtobuf({path:e,body:t});return M(r,{selfId:n.userId,keepRaw:true,onReaction:n.onReaction},n.decryptDeps)}function Sr(e){return Ar("/offline/v1/chat",e)}function vr(e){return Ar("/offline/v1/owner_chat",e)}function qa(e){return Sr(e).then(n=>n.messages)}function za(e){return vr(e).then(n=>n.messages)}function Mr(e){return [...new Set(e.filter(n=>n!==void 0&&n!==""))]}async function Wa(e){let n=D({userId:e.userId,clientType:e.clientType,limit:e.limit,deliveredMsgIds:e.deliveredMsgInfos?.map(r=>r.msgId)}),t=await e.http.postProtobuf({path:"/offline/v1/group",body:n});if(e.prepareKeys!==void 0&&e.decryptDeps!==void 0){let r=F$1(t,{selfId:e.userId}),o=Mr(r.messages.map(a=>a.conversationId));o.length>0&&await e.prepareKeys(o);}return F$1(t,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function Ya(e){let n=E({userId:e.userId,clientType:e.clientType,size:e.size}),t=await e.http.postProtobuf({path:"/offline/v1/group/session",body:n});if(e.prepareKeys!==void 0&&e.decryptDeps!==void 0){let r=G$1(t,{selfId:e.userId}),o=Mr([...r.unreads.map(a=>a.groupId),...r.messages.map(a=>a.conversationId)]);o.length>0&&await e.prepareKeys(o);}return G$1(t,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function Qa(e){e.prepareKeys!==void 0&&e.decryptDeps!==void 0&&e.groupId!==""&&await e.prepareKeys([e.groupId]);let n=H$1({userId:e.userId,groupId:e.groupId,baseTime:e.baseTime,direct:e.direct,limit:e.limit,clientType:e.clientType}),t=await e.http.postProtobuf({path:"/offline/v1/group/history_msg",body:n});return I(t,{selfId:e.userId,keepRaw:true,source:"history",onReaction:e.onReaction},e.decryptDeps)}var Xa={direct:"/friend/undisturb/set",group:"/user_group/user/edit",channel:"/user_radio/user/setting"},Za={direct:"friend_user_id",group:"group_id",channel:"radio_id"};async function es(e){let n=Xa[e.conversationType],t=Za[e.conversationType];if(n===void 0||t===void 0)throw new Error(`\u514D\u6253\u6270\u672A\u652F\u6301\u4F1A\u8BDD\u7C7B\u578B\uFF1A${e.conversationType}`);let{code:r}=await x(e.client,n,{[t]:e.targetId,is_undisturb:e.muted?"1":"0"},{method:"POST"});if(r!==200)throw new Error(`\u514D\u6253\u6270\u8BBE\u7F6E\u5931\u8D25\uFF1Acode=${r}\uFF08${e.conversationType} ${e.targetId}\uFF09`)}async function ns(e){let n={friend_user_id:e.userId};e.name!==void 0&&(n.nick_name=e.name),e.email!==void 0&&(n.ext_email=JSON.stringify(e.email)),e.phones!==void 0&&(n.ext_mobile=JSON.stringify(e.phones.map(r=>({country_code:r.countryCode,mobile:r.mobile}))));let{code:t}=await x(e.client,"/friend/remarks/update",n,{method:"POST"});if(t!==200)throw new Error(`\u8BBE\u7F6E\u597D\u53CB\u5907\u6CE8\u5931\u8D25\uFF1Acode=${t}\uFF08userId=${e.userId}\uFF09`)}async function ts(e){let{code:n}=await x(e.client,"/user_group/user/edit",{group_id:e.groupId,nick_name:e.nickname},{method:"POST"});if(n!==200)throw new Error(`\u4FEE\u6539\u7FA4\u5185\u6635\u79F0\u5931\u8D25\uFF1Acode=${n}\uFF08groupId=${e.groupId}\uFF09`)}async function rs(e){Ae(e.groupId);let n=await x(e.client,"/api/v1/board/board_msg_top_cancel",{group_id:e.groupId,group_type:2},{method:"POST",prefix:"",responseMode:"strict"});if(!n.ok)return n;if(n.data!==null)throw new Error("board unpin \u54CD\u5E94\u7ED3\u6784\u975E\u6CD5\uFF1A\u6210\u529F data \u5FC5\u987B\u4E3A\u7A7A");return {...n,data:null}}async function os(e){Se(e.channelId);let n=await x(e.client,"/api/v1/board/board_msg_top_cancel",{group_id:e.channelId,group_type:1},{method:"POST",prefix:"",responseMode:"strict"});if(!n.ok)return n;if(n.data!==null)throw new Error("channel board unpin \u54CD\u5E94\u7ED3\u6784\u975E\u6CD5\uFF1A\u6210\u529F data \u5FC5\u987B\u4E3A\u7A7A");return {...n,data:null}}async function is(e){let n={group_id:e.groupId};e.name!==void 0&&(n.name=e.name),e.avatarUrl!==void 0&&(n.head_img_url=e.avatarUrl);let{code:t}=await x(e.client,"/user_group/edit",n,{method:"POST"});if(t!==200)throw new Error(`\u4FEE\u6539\u7FA4\u8D44\u6599\u5931\u8D25\uFF1Acode=${t}\uFF08groupId=${e.groupId}\uFF09`)}function as(){let e=typeof navigator>"u"?void 0:navigator,n=e?.hardwareConcurrency??4;return (e?.deviceMemory??4)<=2?2:Math.min(4,Math.max(2,Math.floor(n/4)))}function ss(e){let n={active:0,disposed:false},t=[];function r(){for(;!n.disposed&&n.active<e&&t.length>0;){let o=t.shift();if(o.signal?.aborted){o.reject(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));continue}o.onAbort!==void 0&&o.signal?.removeEventListener("abort",o.onAbort),n.active+=1;let a=false;o.resolve(()=>{a||(a=true,n.active-=1,r());});}}return {acquire(o){return n.disposed?Promise.reject(new Error("\u5A92\u4F53\u9884\u89C8\u6267\u884C\u5668\u5DF2\u91CA\u653E")):new Promise((a,s)=>{let d={resolve:a,reject:s,...o===void 0?{}:{signal:o}};o!==void 0&&(d.onAbort=()=>{let i=t.indexOf(d);i>=0&&t.splice(i,1),s(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));},o.addEventListener("abort",d.onAbort,{once:true})),t.push(d),r();})},dispose(){n.disposed=true;for(let o of t.splice(0))o.onAbort!==void 0&&o.signal?.removeEventListener("abort",o.onAbort),o.reject(new Error("\u5A92\u4F53\u9884\u89C8\u6267\u884C\u5668\u5DF2\u91CA\u653E"));}}}function tn(e){if(e?.aborted)throw new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError")}function xr(e,n,t){let r=Math.min(1,t/Math.max(e,n));return {width:Math.max(1,Math.round(e*r)),height:Math.max(1,Math.round(n*r))}}async function Er(e,n,t,r,o){tn(o);let a=document.createElement("canvas");a.width=n,a.height=t;let s=a.getContext("2d");if(s===null)throw new Error("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A\u65E0\u6CD5\u521B\u5EFA Canvas 2D \u4E0A\u4E0B\u6587");s.drawImage(e,0,0,n,t);let d=await new Promise(i=>a.toBlob(i,"image/jpeg",r));if(tn(o),d===null)throw new Error("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1ACanvas \u7F16\u7801\u8FD4\u56DE\u7A7A\u7ED3\u679C");return await d.arrayBuffer()}function Nn(e,n){if(!Number.isInteger(e)||e<=0)throw new RangeError(`${n}\u5FC5\u987B\u662F\u6B63\u6574\u6570`)}function kr(e,n){if(!Number.isFinite(e)||e<=0||e>1)throw new RangeError(`${n}\u5FC5\u987B\u5927\u4E8E 0 \u4E14\u4E0D\u8D85\u8FC7 1`)}async function Bn(e,n,t,r,o){let a=r.kind==="video",s=a?"\u89C6\u9891\u5C01\u9762":"\u56FE\u7247\u7F29\u7565\u56FE",d=r.maxSize??320,i=r.targetBytes??(a?10240:12288),f=r.maxBytes??(a?16384:20480),g=r.quality??(a?.84:.9),b=r.minQuality??(a?.68:.72);if(Nn(d,`${s}\u6700\u5927\u8FB9\u957F`),Nn(i,`${s}\u76EE\u6807\u5B57\u8282\u6570`),Nn(f,`${s}\u6700\u5927\u5B57\u8282\u6570`),kr(g,`${s}\u521D\u59CB\u8D28\u91CF`),kr(b,`${s}\u6700\u4F4E\u8D28\u91CF`),i>f)throw new RangeError(`${s}\u76EE\u6807\u5B57\u8282\u6570\u4E0D\u80FD\u8D85\u8FC7\u6700\u5927\u5B57\u8282\u6570`);if(b>g)throw new RangeError(`${s}\u6700\u4F4E\u8D28\u91CF\u4E0D\u80FD\u9AD8\u4E8E\u521D\u59CB\u8D28\u91CF`);let h=xr(n,t,d),p=Math.min(200,Math.max(h.width,h.height)),A,v=[...new Set([g,Math.max(b,g-.12),b])];for(let c of v){let u=await Er(e,h.width,h.height,c,o);if((A===void 0||u.byteLength<A.byteLength)&&(A=u),u.byteLength<=i)return u}let E=Math.max(h.width,h.height);if(E>p&&A!==void 0){let c=Math.sqrt(i/A.byteLength),u=Math.max(p,Math.floor(E*Math.min(.9,Math.max(.5,c))));h=xr(n,t,u);for(let y of [g,b]){let m=await Er(e,h.width,h.height,y,o);if(m.byteLength<A.byteLength&&(A=m),m.byteLength<=i)return m}}if(A!==void 0&&A.byteLength<=f)return A;throw new Error(`${s}\u751F\u6210\u5931\u8D25\uFF1A\u7F16\u7801\u7ED3\u679C\u8D85\u8FC7 ${f} \u5B57\u8282\u786C\u4E0A\u9650`)}function Tr(e,n,t){return new Promise((r,o)=>{let a,s,d,i,f=()=>{a!==void 0&&clearTimeout(a),e.removeEventListener(n,s),e.removeEventListener("error",d),t?.removeEventListener("abort",i);};s=()=>{f(),r();},d=()=>{f(),o(new Error(`\u89C6\u9891\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A${n} \u524D\u89E3\u7801\u9519\u8BEF`));},i=()=>{f(),o(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));},a=setTimeout(()=>{f(),o(new Error(`\u89C6\u9891\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A${n} \u8D85\u65F6`));},15e3),e.addEventListener(n,s,{once:true}),e.addEventListener("error",d,{once:true}),t?.addEventListener("abort",i,{once:true});})}async function cs(e,n){tn(n);let t;try{t=await createImageBitmap(e.file);}catch(a){if(n?.aborted)throw a}if(t!==void 0)try{if(tn(n),e.includePoster===!1)return {width:t.width,height:t.height};let a=e.maxBytes??20480;return e.file.type==="image/jpeg"&&e.file.size<=a&&Math.max(t.width,t.height)<=(e.maxSize??320)?{width:t.width,height:t.height,posterData:await e.file.arrayBuffer()}:{width:t.width,height:t.height,posterData:await Bn(t,t.width,t.height,e,n)}}finally{t.close();}let r=URL.createObjectURL(e.file),o=new Image;try{if(await new Promise((s,d)=>{let i,f,g=()=>{i!==void 0&&clearTimeout(i),o.onload=null,o.onerror=null,n?.removeEventListener("abort",f);};f=()=>{g(),d(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));},o.onload=()=>{g(),s();},o.onerror=()=>{g(),d(new Error("\u56FE\u7247\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1AImage \u89E3\u7801\u9519\u8BEF"));},i=setTimeout(()=>{g(),d(new Error("\u56FE\u7247\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1AImage \u89E3\u7801\u8D85\u65F6"));},15e3),n?.addEventListener("abort",f,{once:!0}),o.src=r;}),e.includePoster===!1)return {width:o.naturalWidth,height:o.naturalHeight};let a=e.maxBytes??20480;return e.file.type==="image/jpeg"&&e.file.size<=a&&Math.max(o.naturalWidth,o.naturalHeight)<=(e.maxSize??320)?{width:o.naturalWidth,height:o.naturalHeight,posterData:await e.file.arrayBuffer()}:{width:o.naturalWidth,height:o.naturalHeight,posterData:await Bn(o,o.naturalWidth,o.naturalHeight,e,n)}}finally{o.removeAttribute("src"),URL.revokeObjectURL(r);}}async function ds(e,n){let t=URL.createObjectURL(e.file),r=document.createElement("video");r.muted=true,r.preload="metadata",r.playsInline=true;try{r.src=t,r.load(),await Tr(r,"loadeddata",n);let o=r.videoWidth,a=r.videoHeight;if(o<=0||a<=0)throw new Error("\u89C6\u9891\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A\u89C6\u9891\u5C3A\u5BF8\u65E0\u6548");let s=Number.isFinite(r.duration)&&r.duration>0?r.duration:void 0,d=e.atTime===void 0?s===void 0?0:Math.min(1,s/2):Math.max(0,Math.min(e.atTime,s??e.atTime));d>0&&(r.currentTime=d,await Tr(r,"seeked",n));let i=s===void 0?void 0:s,f;try{f=await Bn(r,o,a,e,n);}catch(g){if(n?.aborted||g instanceof RangeError)throw g}return {width:o,height:a,...i===void 0?{}:{duration:i},...f===void 0?{}:{posterData:f}}}finally{r.pause(),r.removeAttribute("src"),r.load(),URL.revokeObjectURL(t);}}function Gn(e={}){let n=e.maxConcurrency??as();if(!Number.isInteger(n)||n<1||n>4)throw new RangeError("\u5A92\u4F53\u9884\u89C8\u5E76\u53D1\u6570\u5FC5\u987B\u662F 1-4 \u7684\u6574\u6570");let t=ss(n),r=false;return {async prepare(o,a){if(r)throw new Error("\u5A92\u4F53\u9884\u89C8\u6267\u884C\u5668\u5DF2\u91CA\u653E");let s=await t.acquire(a);try{return o.kind==="video"?await ds(o,a):await cs(o,a)}finally{s();}},dispose(){r||(r=true,t.dispose());}}}var Rr="image/jpeg";function Kn(e,n){return new Blob([e],n===void 0||n===""?{}:{type:n})}function us(){let e=Gn(),n=0;return {async imageDimensions(t,r){let o=await e.prepare({operationId:`core-image-dimensions-${++n}`,generation:0,kind:"image",file:Kn(t,r),includePoster:false});return {width:o.width,height:o.height}},async imageThumbnail(t,r){let o=await e.prepare({operationId:`core-image-thumbnail-${++n}`,generation:0,kind:"image",file:Kn(t,r?.mimeType),...r?.maxSize===void 0?{}:{maxSize:r.maxSize},...r?.targetBytes===void 0?{}:{targetBytes:r.targetBytes},...r?.maxBytes===void 0?{}:{maxBytes:r.maxBytes},...r?.quality===void 0?{}:{quality:r.quality},...r?.minQuality===void 0?{}:{minQuality:r.minQuality}});if(o.posterData===void 0)throw new Error("\u56FE\u7247\u7F29\u7565\u56FE\u751F\u6210\u5931\u8D25\uFF1A\u6267\u884C\u5668\u672A\u8FD4\u56DE poster");return {data:new Uint8Array(o.posterData),width:o.width,height:o.height,mimeType:Rr}},async videoPoster(t,r){let o=await e.prepare({operationId:`core-video-poster-${++n}`,generation:0,kind:"video",file:Kn(t,r?.mimeType),...r?.maxSize===void 0?{}:{maxSize:r.maxSize},...r?.targetBytes===void 0?{}:{targetBytes:r.targetBytes},...r?.maxBytes===void 0?{}:{maxBytes:r.maxBytes},...r?.quality===void 0?{}:{quality:r.quality},...r?.minQuality===void 0?{}:{minQuality:r.minQuality},...r?.atTime===void 0?{}:{atTime:r.atTime}});if(o.posterData===void 0)throw new Error("\u89C6\u9891\u5C01\u9762\u751F\u6210\u5931\u8D25\uFF1A\u6267\u884C\u5668\u672A\u8FD4\u56DE poster");return {data:new Uint8Array(o.posterData),width:o.width,height:o.height,duration:Math.round(o.duration??0),mimeType:Rr}}}}var Le;function ls(){if(Le!==void 0)return Le;let n=Promise.all([import('@aws-sdk/client-s3'),import('@aws-sdk/credential-provider-cognito-identity'),import('@aws-sdk/lib-storage'),import('@aws-sdk/xhr-http-handler')]).then(([t,r,o,a])=>({S3Client:t.S3Client,fromCognitoIdentityPool:r.fromCognitoIdentityPool,Upload:o.Upload,XhrHttpHandler:a.XhrHttpHandler})).catch(t=>{throw Le===n&&(Le=void 0),t});return Le=n,n}function ps(e){if(e===void 0)return "";let n=e.lastIndexOf(".");return n>=0?e.slice(n):""}function fs(e){return globalThis.crypto.randomUUID()+ps(e)}function ms(e){let n=e.identityPoolId.split(":")[0]??"",t;function r(i){return t??=i.fromCognitoIdentityPool({identityPoolId:e.identityPoolId,clientConfig:{region:n}}),new i.S3Client({region:n,credentials:t,useAccelerateEndpoint:e.useAccelerateEndpoint??true,requestHandler:new i.XhrHttpHandler({})})}async function o(i,f,g){if(f===void 0||f.bucket===""||f.host==="")throw new Error(`media upload: kind=${g} \u7684 bucket/host \u672A\u914D\u7F6E\uFF08\u5BBF\u4E3B IM \u5BF9\u8C61\u5B58\u50A8\u914D\u7F6E\u7F3A\u8BE5\u8D44\u6E90\u7C7B\u578B\uFF09`);let b=await ls(),h=fs(i.filename),p=r(b),A=new b.Upload({client:p,params:{Bucket:f.bucket,Key:h,Body:i.data,ACL:"public-read",...i.mimeType!==void 0&&i.mimeType!==""?{ContentType:i.mimeType}:{}},partSize:Math.max(5242880,i.data.byteLength)});i.onProgress!==void 0&&A.on("httpUploadProgress",E=>{let c=E.total??i.data.byteLength,u=E.loaded??0,y=c>0?Math.min(99,Math.round(u/c*100)):0;i.onProgress?.({percent:y,bytesTransferred:u,bytesTotal:c,phase:c>0&&u>=c?"finalizing":"transferring"});});let v=()=>{A.abort();};i.signal?.aborted?await A.abort():i.signal?.addEventListener("abort",v,{once:true});try{await A.done();}finally{i.signal?.removeEventListener("abort",v),p.destroy();}return i.onProgress?.({percent:100,bytesTransferred:i.data.byteLength,bytesTotal:i.data.byteLength,phase:"finalizing"}),{url:`${f.host}/${h}`}}function a(i){return o(i,e.buckets[i.kind],i.kind)}function s(i){return o(i,e.avatar,"avatar")}async function d(i){if(i.onProgress!==void 0&&typeof XMLHttpRequest<"u")return gs(i);let f=await fetch(i.url,i.signal!==void 0?{signal:i.signal}:{});if(!f.ok)throw new Error(`media download \u5931\u8D25\uFF1AHTTP ${f.status} ${i.url}`);return i.onProgress===void 0||f.body===null?new Uint8Array(await f.arrayBuffer()):hs(f,i.onProgress,i.expectedBytes)}return {upload:a,uploadAvatar:s,download:d}}function gs(e){return new Promise((n,t)=>{let r=new XMLHttpRequest,o=false,a=()=>{},s=()=>{e.signal?.removeEventListener("abort",a),r.onprogress=null,r.onload=null,r.onerror=null,r.onabort=null;},d=i=>{o||(o=true,s(),i());};if(a=()=>{r.abort(),d(()=>t(new DOMException("media download canceled","AbortError")));},r.open("GET",e.url,true),r.responseType="arraybuffer",r.onprogress=i=>{let f=e.expectedBytes!==void 0&&Number.isFinite(e.expectedBytes)&&e.expectedBytes>0?Math.floor(e.expectedBytes):0,g=i.lengthComputable&&i.total>0?i.total:f,b=g>0?Math.min(99,Math.round(i.loaded/g*100)):0;e.onProgress?.({percent:b,bytesTransferred:i.loaded,bytesTotal:g});},r.onload=()=>{if(r.status<200||r.status>=300){d(()=>t(new Error(`media download \u5931\u8D25\uFF1AHTTP ${r.status} ${e.url}`)));return}let i=r.response;if(!(i instanceof ArrayBuffer)){d(()=>t(new Error("media download \u5931\u8D25\uFF1AXHR \u672A\u8FD4\u56DE ArrayBuffer")));return}d(()=>n(new Uint8Array(i)));},r.onerror=()=>d(()=>t(new Error(`media download \u5931\u8D25\uFF1Anetwork ${e.url}`))),r.onabort=()=>d(()=>t(new DOMException("media download canceled","AbortError"))),e.signal?.aborted){a();return}e.signal?.addEventListener("abort",a,{once:true}),r.send();})}async function hs(e,n,t){let r=Number(e.headers.get("content-length")??0),o=t!==void 0&&Number.isFinite(t)&&t>0?Math.floor(t):0,a=r>0?r:o,s=e.body.getReader(),d=[],i=0;for(;;){let{done:b,value:h}=await s.read();if(b)break;d.push(h),i+=h.byteLength;let p=a>0?Math.min(99,Math.round(i/a*100)):0;n({percent:p,bytesTransferred:i,bytesTotal:a});}let f=new Uint8Array(i),g=0;for(let b of d)f.set(b,g),g+=b.byteLength;return f}function ys(){let e=globalThis;return typeof e.addEventListener=="function"&&typeof e.removeEventListener=="function"?e:void 0}function Cs(e,n={}){let t=n.target!==void 0?n.target:ys(),r=n.visibilitySource!==void 0?n.visibilitySource:globalThis.document,o=n.pageLifecycleSource!==void 0?n.pageLifecycleSource:t,a=false,s=()=>e.onOnline?.(),d=()=>e.onOffline?.(),i=()=>{r!=null&&r.visibilityState==="visible"&&e.onVisible?.();},f=()=>e.onPageHide?.(),g=()=>e.onPageShow?.();return {start(){a||(a=true,t!=null&&(t.addEventListener("online",s),t.addEventListener("offline",d)),r?.addEventListener("visibilitychange",i),o!=null&&(o.addEventListener("pagehide",f),o.addEventListener("pageshow",g)));},stop(){a&&(a=false,t!=null&&(t.removeEventListener("online",s),t.removeEventListener("offline",d)),r?.removeEventListener("visibilitychange",i),o!=null&&(o.removeEventListener("pagehide",f),o.removeEventListener("pageshow",g)));},get running(){return a}}}var ws=12,Is=2*1024*1024*1024,Dr=1024*1024*1024,_s=512*1024*1024,As=256*1024*1024,Ss=64*1024,Ln="channel:list-version",Ur="schema:conversation-key-v1",Hn="default",ge="\uFFFF";function Or(e){if(!(e===void 0||!/^\d+$/.test(e)))return e.replace(/^0+(?=\d)/,"")}function vs(e,n){let t=Or(e),r=Or(n);return t===void 0?r===void 0?0:-1:r===void 0?1:t.length!==r.length?t.length>r.length?1:-1:t===r?0:t>r?1:-1}function He(e){return `conversation:${ka$1(e)}`}function $n(e,n){return `${ka$1(e)}\0${n}`}function Ms(e){let n=ka$1(e.conversation);return {...e,key:$n(e.conversation,e.messageId),conversationKey:n,conversation:{...e.conversation},sContent:e.sContent.slice()}}function xs(e){let{key:n,conversationKey:t,...r}=e;return {...r,conversation:{...r.conversation},sContent:r.sContent.slice()}}function Gr(e){return {...e,conversationKey:ka$1(ha$1(e))}}function he(e){let{conversationKey:n,...t}=e;return t}function rn(e){return {...e,id:ka$1(ia$1(e)),conversationId:e.id}}function Fn(e){if(e.conversationId===void 0)return e;let{conversationId:n,...t}=e;return {...t,id:n}}function Jn(e){return e.conversationType===void 0?e:{...e,conversationId:ka$1(e),storageConversationId:e.conversationId}}function Nr(e){if(e.storageConversationId===void 0)return e;let{storageConversationId:n,...t}=e;return {...t,conversationId:n}}function Kr(e){return {...e,conversationId:ka$1(ja$1(e)),storageConversationId:e.conversationId}}function Vn(e){if(e.storageConversationId===void 0)return e;let{storageConversationId:n,...t}=e;return {...t,conversationId:n}}function Es(e){return {...e,conversationKey:ka$1(e.ref)}}function ks(e){let{conversationKey:n,...t}=e;return t}function Ts(e){return typeof e=="string"?e:e.conversationId}function $e(e,n){if(new Set(n.map(t=>t.conversationType)).size>1)throw new Error(`\u88F8 conversationId \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${e}`)}async function Rs(e){let n=e.transaction(["messages","sessions","readStates","pinnedMessages","meta"],"readwrite");try{let t=n.objectStore("meta");if((await t.get(Ur))?.value===!0){await n.done;return}let r=n.objectStore("messages");for(let i of await r.getAll())i.conversationKey===void 0&&await r.put(Gr(i));let o=n.objectStore("sessions"),a=new Map;for(let i of await o.getAll()){if(i.conversationId!==void 0)continue;let f=Fn(i);a.set(f.id,f.type),await o.put(rn(f)),await o.delete(i.id);}let s=n.objectStore("readStates");for(let i of await s.getAll()){if(i.storageConversationId!==void 0)continue;let f=i.conversationType??a.get(i.conversationId);if(f===void 0)continue;let g={...i,conversationType:f};await s.put(Jn(g)),await s.delete(i.conversationId);}let d=n.objectStore("pinnedMessages");for(let i of await d.getAll()){if(i.storageConversationId!==void 0)continue;let f=Vn(i);await d.put(Kr(f)),await d.delete(i.conversationId);}await t.put({key:Ur,value:!0}),await n.done;}catch(t){try{n.abort();}catch{}try{await n.done;}catch{}throw t}}function Br(e){return `${e.kind}:${encodeURIComponent(e.messageId)}:${e.resourceVersion}`}async function Ds(e,n){let t=n.namespaceFactory.forAccount(e).name("durable","storage","indexed-db");typeof indexedDB>"u"||await deleteDB(t);}function Us(e){let{namespaceFactory:n}=e,t=null,r=null,o=0,a=Promise.resolve(),s=0,d=e.mediaAssetCache?.maxPendingWriteBytes??As;if(!Number.isSafeInteger(d)||d<=0)throw new RangeError("\u5A92\u4F53\u8D44\u4EA7\u7F13\u5B58\u5F85\u5199\u5185\u5B58\u9884\u7B97\u5FC5\u987B\u662F\u6B63\u6574\u6570");function i(){if(t===null)throw new Error("ImStoragePort \u672A open\uFF1A\u8BF7\u5148 open({ namespace }) \u518D\u8BFB\u5199");return t}async function f(c){if(typeof c!="string")return;let u=IDBKeyRange.bound([c,""],[c,ge]),y=(await i().transaction("messages").store.index("by_conv_sort").getAll(u)).map(he);$e(c,y);}function g(c){let u=a.then(c,c);return a=u.then(()=>{},()=>{}),u}function b(c,u){if(c!==o||u===null||u!==r)throw new Error("\u5A92\u4F53\u8D44\u4EA7\u7F13\u5B58\u8D26\u53F7\u4EE3\u9645\u5DF2\u5931\u6548")}function h(){return Math.max(0,Math.floor(e.mediaAssetCache?.now?.()??Date.now()))}async function p(c){let u=e.mediaAssetCache?.estimateStorage??(async()=>typeof navigator>"u"||navigator.storage?.estimate===void 0?{}:await navigator.storage.estimate());try{let{quota:y,usage:m}=await u();if(y===void 0||!Number.isFinite(y)||y<=0)return Dr;let P=c.reduce((w,l)=>w+l.byteLength,0),k=Math.max(0,(m??0)-P),D=Math.max(_s,Math.floor(y*.2));return Math.max(0,Math.min(Is,Math.floor(y-k-D)))}catch{return Dr}}async function A(c,u,y){if(c.length===0)return;b(u,y);let m=i().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all(c.flatMap(P=>[m.objectStore("mediaAssets").delete(P),m.objectStore("mediaAssetMeta").delete(P)])),await m.done;}async function v(c,u,y,m){b(c,u);let P=i(),k=e.mediaAssetCache?.strategies;if(k===void 0)return;let D=m??await P.getAll("mediaAssetMeta");b(c,u);let w=new Set;for(let I of k.list()){let S=D.filter(T=>T.kind===I.kind).sort((T,U)=>T.lastAccessedAt-U.lastAccessedAt),M=S.reduce((T,U)=>T+U.byteLength,0),R=S.length;for(let T of S){if(M<=I.softMaxBytes&&R<=I.maxEntries)break;w.add(T.key),M-=T.byteLength,R-=1;}}let l=D.filter(I=>!w.has(I.key)).sort((I,S)=>I.lastAccessedAt-S.lastAccessedAt),_=Math.max(0,Math.min(await p(D),y??Number.POSITIVE_INFINITY)),C=l.reduce((I,S)=>I+S.byteLength,0);for(let I of l){if(C<=_)break;w.add(I.key),C-=I.byteLength;}await A([...w],c,u);}async function E(c,u,y){b(u,y);let m=e.mediaAssetCache?.strategies.resolve(c.kind);if(m===void 0)return "skipped";let P=c.bytes,k=await i().getAll("mediaAssetMeta"),D=await p(k);if(b(u,y),P.byteLength===0||P.byteLength>m.maxEntryBytes||D<=0||P.byteLength>Math.floor(D/2))return "skipped";let w=Br(c),l=h(),_=k.find(R=>R.key===w),C={key:w,kind:c.kind,messageId:c.messageId,resourceVersion:c.resourceVersion,byteLength:P.byteLength,...c.mimeType===void 0?{}:{mimeType:c.mimeType},createdAt:_?.createdAt??l,lastAccessedAt:l},I=async()=>{b(u,y);let R=i().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all([R.objectStore("mediaAssets").put({key:w,bytes:P}),R.objectStore("mediaAssetMeta").put(C)]),await R.done;},S=false;try{await I();}catch(R){if(!(R instanceof DOMException)||R.name!=="QuotaExceededError")throw R;S=true,await v(u,y,Math.max(0,D-P.byteLength)),await I();}let M=_===void 0?[...k,C]:k.map(R=>R.key===w?C:R);return await v(u,y,void 0,S?void 0:M),b(u,y),await i().get("mediaAssets",w)===void 0?"skipped":"stored"}return {async open({namespace:c}){if(t!==null&&r===c)return;t!==null&&(t.close(),t=null),r=c;let u=++o,y=n.forAccount(c).name("durable","storage","indexed-db"),m=await openDB(y,ws,{upgrade(P,k,D,w){if(P.objectStoreNames.contains("messages"))w.objectStore("messages").indexNames.contains("by_conversation_key_sort")||w.objectStore("messages").createIndex("by_conversation_key_sort",["conversationKey","sortKey"]);else {let l=P.createObjectStore("messages",{keyPath:"id"});l.createIndex("by_conv_sort",["conversationId","sortKey"]),l.createIndex("by_conversation_key_sort",["conversationKey","sortKey"]);}if(P.objectStoreNames.contains("sessions")||P.createObjectStore("sessions",{keyPath:"id"}),P.objectStoreNames.contains("readStates")||P.createObjectStore("readStates",{keyPath:"conversationId"}),P.objectStoreNames.contains("drafts")||P.createObjectStore("drafts",{keyPath:"conversationKey"}),P.objectStoreNames.contains("outbox")||P.createObjectStore("outbox",{keyPath:"id"}),P.objectStoreNames.contains("meta")||P.createObjectStore("meta",{keyPath:"key"}),P.objectStoreNames.contains("userProfiles")||P.createObjectStore("userProfiles",{keyPath:"id"}),P.objectStoreNames.contains("groupMembers")||P.createObjectStore("groupMembers",{keyPath:"groupId"}),P.objectStoreNames.contains("groupProfiles")||P.createObjectStore("groupProfiles",{keyPath:"id"}),P.objectStoreNames.contains("pinnedMessages")||P.createObjectStore("pinnedMessages",{keyPath:"conversationId"}),P.objectStoreNames.contains("channelProfiles")||P.createObjectStore("channelProfiles",{keyPath:"id"}),P.objectStoreNames.contains("channelMembers")||P.createObjectStore("channelMembers",{keyPath:["channelId","userId"]}),P.objectStoreNames.contains("channelMemberSnapshots")||P.createObjectStore("channelMemberSnapshots",{keyPath:"channelId"}),P.objectStoreNames.contains("channelMentionCandidateSnapshots")||P.createObjectStore("channelMentionCandidateSnapshots",{keyPath:"channelId"}),P.objectStoreNames.contains("conversationBackgrounds")||P.createObjectStore("conversationBackgrounds",{keyPath:"key"}),P.objectStoreNames.contains("mediaAssets")||P.createObjectStore("mediaAssets",{keyPath:"key"}),!P.objectStoreNames.contains("mediaAssetMeta")){let l=P.createObjectStore("mediaAssetMeta",{keyPath:"key"});l.createIndex("by_kind_access",["kind","lastAccessedAt"]),l.createIndex("by_access","lastAccessedAt");}P.objectStoreNames.contains("decryptRecoveries")||P.createObjectStore("decryptRecoveries",{keyPath:"key"}).createIndex("by_conversation","conversationKey");}});if(u!==o){m.close();return}try{await Rs(m);}catch(P){throw m.close(),P}if(u!==o){m.close();return}t=m;},async close(){o+=1,r=null,t!==null&&(t.close(),t=null);},async clearRebuildableCaches(){let c=o,u=r;await g(async()=>{b(c,u);let m=i().transaction(["userProfiles","groupMembers","groupProfiles","channelProfiles","channelMembers","channelMemberSnapshots","channelMentionCandidateSnapshots","mediaAssets","mediaAssetMeta","meta"],"readwrite");await Promise.all([m.objectStore("userProfiles").clear(),m.objectStore("groupMembers").clear(),m.objectStore("groupProfiles").clear(),m.objectStore("channelProfiles").clear(),m.objectStore("channelMembers").clear(),m.objectStore("channelMemberSnapshots").clear(),m.objectStore("channelMentionCandidateSnapshots").clear(),m.objectStore("mediaAssets").clear(),m.objectStore("mediaAssetMeta").clear(),m.objectStore("meta").delete(Ln),m.done]);});},async get(c){let u=o,y=r;return await g(async()=>{if(b(u,y),e.mediaAssetCache?.strategies.resolve(c.kind)===void 0)return null;let m=Br(c),P=i(),[k,D]=await Promise.all([P.get("mediaAssets",m),P.get("mediaAssetMeta",m)]);return b(u,y),k===void 0||D===void 0?(await A([m],u,y),null):(await P.put("mediaAssetMeta",{...D,lastAccessedAt:h()}),{kind:D.kind,messageId:D.messageId,resourceVersion:D.resourceVersion,bytes:k.bytes,...D.mimeType===void 0?{}:{mimeType:D.mimeType}})})},async put(c){let u=o,y=r;b(u,y);let m=c.bytes.byteLength;if(m>d||s+m>d)return "skipped";s+=m;try{return await g(()=>E(c,u,y))}finally{s=Math.max(0,s-m);}},async clear(){let c=o,u=r;await g(async()=>{b(c,u);let y=i().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all([y.objectStore("mediaAssets").clear(),y.objectStore("mediaAssetMeta").clear(),y.done]);});},async getMessage(c,u){let y=await i().get("messages",u);if(y===void 0)return null;let m=he(y);return ka$1(ha$1(m))===ka$1(c)?m:null},async getMessages(c,u){let y=typeof c=="string"?"by_conv_sort":"by_conversation_key_sort",m=typeof c=="string"?c:ka$1(c);if(await f(c),u.beforeSortKey===void 0&&u.afterSortKey!==void 0){let w=IDBKeyRange.bound([m,u.afterSortKey],[m,ge]),l=[],_=await i().transaction("messages").store.index(y).openCursor(w,"next");for(;_!==null&&l.length<u.limit;)l.push(_.value),_=await _.continue();return l.map(he)}let P=u.beforeSortKey===void 0?IDBKeyRange.bound([m,""],[m,ge]):IDBKeyRange.bound([m,""],[m,u.beforeSortKey],false,true),k=[],D=await i().transaction("messages").store.index(y).openCursor(P,"prev");for(;D!==null&&k.length<u.limit;)k.push(D.value),D=await D.continue();return k.reverse().map(he)},async saveMessages(c){if(c.length===0)return;let u=i().transaction("messages","readwrite");await Promise.all([...c.map(y=>u.store.put(Gr(y))),u.done]);},async searchMessages(c,u){let y=ka$1(c),m=u.keyword?.trim()??"",P$1=u.contentTypes;if(m===""&&(P$1===void 0||P$1.length===0))return {items:[],exhausted:true};let k=m===""?void 0:await R(m),D=u.beforeSortKey===void 0?IDBKeyRange.bound([y,""],[y,ge]):IDBKeyRange.bound([y,""],[y,u.beforeSortKey],false,true),w=2e3,l=[],_=0,C,I=await i().transaction("messages").store.index("by_conversation_key_sort").openCursor(D,"prev");for(;I!==null&&l.length<u.limit&&_<w;){let M=S(he(I.value));_+=1,C=M.sortKey;let R=P$1===void 0||P$1.includes(M.contentType),T=k===void 0||k.match(P(M))!==null;R&&T&&l.push(M),I=await I.continue();}let S$1=I===null;return {items:l,exhausted:S$1,...S$1?{}:{nextBeforeSortKey:C}}},async getDecryptRecoveries(c){let u=ka$1(c);return (await i().getAllFromIndex("decryptRecoveries","by_conversation",u)).map(xs)},async saveDecryptRecovery(c){if(c.sContent.byteLength===0||c.sContent.byteLength>Ss)throw new Error(`\u89E3\u5BC6\u6062\u590D\u5BC6\u6587\u5B57\u8282\u957F\u5EA6\u975E\u6CD5\uFF1A${c.sContent.byteLength}`);await i().put("decryptRecoveries",Ms(c));},async deleteDecryptRecovery(c,u){await i().delete("decryptRecoveries",$n(c,u));},async deleteConversationDecryptRecoveries(c){let u=ka$1(c),y=i().transaction("decryptRecoveries","readwrite"),m=await y.store.index("by_conversation").openCursor(IDBKeyRange.only(u));for(;m!==null;)await m.delete(),m=await m.continue();await y.done;},async getSessions(){return (await i().getAll("sessions")).map(Fn)},async saveSessions(c){if(c.length===0)return;let u=i().transaction("sessions","readwrite");for(let y of c)await u.store.put(rn(y)),await u.store.delete(y.id);await u.done;},async deleteSession(c){if(typeof c!="string"){let m=i().transaction(["sessions","conversationBackgrounds"],"readwrite");await m.objectStore("sessions").delete(ka$1(c)),await m.objectStore("conversationBackgrounds").delete(He(c)),await m.done;return}let u=(await i().getAll("sessions")).map(Fn).filter(m=>m.id===c);$e(c,u.map(m=>({conversationType:m.type})));let y=i().transaction(["sessions","conversationBackgrounds"],"readwrite");if(u[0]!==void 0){let m=ia$1(u[0]);await y.objectStore("sessions").delete(ka$1(m)),await y.objectStore("conversationBackgrounds").delete(He(m));}await y.objectStore("sessions").delete(c),await y.done;},async deleteReadState(c){if(typeof c!="string"){await i().delete("readStates",ka$1(c));return}let y=(await i().getAll("readStates")).map(Nr).filter(m=>m.conversationId===c).filter(m=>m.conversationType!==void 0);$e(c,y),y[0]!==void 0&&await i().delete("readStates",ka$1(y[0])),await i().delete("readStates",c);},async deleteMessage(c,u,y){let m=i().transaction(["messages","sessions","decryptRecoveries"],"readwrite"),P=await m.objectStore("messages").get(u);if(P!==void 0){let k=he(P);if(k.conversationType!==c.conversationType||k.conversationId!==c.conversationId)return await m.done,false;await m.objectStore("messages").delete(u);}return await m.objectStore("decryptRecoveries").delete($n(c,u)),y!==void 0&&await m.objectStore("sessions").put(rn(y)),await m.done,P!==void 0},async deleteConversationMessages(c){let u=Ts(c),y=typeof c=="string"?"by_conv_sort":"by_conversation_key_sort",m=typeof c=="string"?c:ka$1(c),P=IDBKeyRange.bound([m,""],[m,ge]),k=i().transaction(["messages","decryptRecoveries"],"readwrite"),D=k.objectStore("messages"),w=k.objectStore("decryptRecoveries"),l=[];if(typeof c=="string"){let C=(await D.index("by_conv_sort").getAll(P)).map(he);l=(await w.getAll()).filter(I=>I.conversation.conversationId===c),$e(u,[...C,...l.map(I=>({conversationType:I.conversation.conversationType}))]);}let _=await D.index(y).openCursor(P);for(;_!==null;)await _.delete(),_=await _.continue();if(typeof c=="string")for(let C of l)await w.delete(C.key);else {let C=await w.index("by_conversation").openCursor(IDBKeyRange.only(ka$1(c)));for(;C!==null;)await C.delete(),C=await C.continue();}await k.done;},async clearConversationHistory(c,u,y){let m=ka$1(c),P=IDBKeyRange.bound([m,""],[m,ge]),k=i().transaction(["messages","sessions","readStates","decryptRecoveries"],"readwrite"),D=await k.objectStore("messages").index("by_conversation_key_sort").openCursor(P);for(;D!==null;)await D.delete(),D=await D.continue();let w=await k.objectStore("decryptRecoveries").index("by_conversation").openCursor(IDBKeyRange.only(m));for(;w!==null;)await w.delete(),w=await w.continue();u!==void 0&&await k.objectStore("sessions").put(rn(u)),y!==void 0&&(await k.objectStore("readStates").put(Jn(y)),await k.objectStore("readStates").delete(y.conversationId)),await k.done;},async getReadStates(){return (await i().getAll("readStates")).map(Nr)},async saveReadState(c){let u=i().transaction("readStates","readwrite");await u.store.put(Jn(c)),c.conversationType!==void 0&&await u.store.delete(c.conversationId),await u.done;},async getDrafts(){return (await i().getAll("drafts")).map(ks)},async saveDraft(c){await i().put("drafts",Es(c));},async deleteDraft(c){await i().delete("drafts",ka$1(c));},async getConversationBackground(c){return (await i().get("conversationBackgrounds",He(c)))?.background??null},async saveConversationBackground(c,u){let y=He(c);await i().put("conversationBackgrounds",{key:y,background:u});},async deleteConversationBackground(c){await i().delete("conversationBackgrounds",He(c));},async getDefaultConversationBackground(){return (await i().get("conversationBackgrounds",Hn))?.background??null},async saveDefaultConversationBackground(c){await i().put("conversationBackgrounds",{key:Hn,background:c});},async deleteDefaultConversationBackground(){await i().delete("conversationBackgrounds",Hn);},async getOutbox(){return i().getAll("outbox")},async saveOutboxMessage(c){await i().put("outbox",c);},async removeOutboxMessage(c){await i().delete("outbox",c);},async getPinnedMessages(){return (await i().getAll("pinnedMessages")).map(Vn)},async savePinnedMessage(c){let u=i().transaction("pinnedMessages","readwrite");await u.store.put(Kr(c)),await u.store.delete(c.conversationId),await u.done;},async removePinnedMessage(c){if(typeof c!="string"){await i().delete("pinnedMessages",ka$1(c));return}let u=(await i().getAll("pinnedMessages")).map(Vn).filter(y=>y.conversationId===c);$e(c,u),u[0]!==void 0&&await i().delete("pinnedMessages",ka$1(ja$1(u[0]))),await i().delete("pinnedMessages",c);},async getMeta(c){let u=await i().get("meta",c);return u===void 0?null:u.value},async setMeta(c,u){await i().put("meta",{key:c,value:u});},async getUserProfile(c){return await i().get("userProfiles",c)??null},async saveUserProfile(c){await i().put("userProfiles",c);},async getGroupMembers(c){return await i().get("groupMembers",c)??null},async saveGroupMembers(c){await i().put("groupMembers",c);},async getGroupProfile(c){return await i().get("groupProfiles",c)??null},async saveGroupProfile(c){await i().put("groupProfiles",c);},async getChannelProfile(c){return await i().get("channelProfiles",c)??null},async getChannelProfiles(){return i().getAll("channelProfiles")},async saveChannelProfiles(c){if(c.length===0)return;let u=i().transaction("channelProfiles","readwrite");await Promise.all([...c.map(y=>u.store.put(y)),u.done]);},async getChannelListVersion(){let c=await i().get("meta",Ln);return typeof c?.value=="string"&&/^\d+$/.test(c.value)?c.value:"0"},async saveChannelListVersion(c){if(!/^\d+$/.test(c))throw new Error(`CHANNEL list version \u975E\u6CD5\uFF1A${c}`);await i().put("meta",{key:Ln,value:c});},async getChannelMembers(c,u){if(u.length===0)return [];let y=i().transaction("channelMembers"),m=await Promise.all(u.map(P=>y.store.get([c,P])));return await y.done,m.filter(P=>P!==void 0)},async saveChannelMembers(c){if(c.length===0)return;let u=i().transaction("channelMembers","readwrite");for(let y of c){let m=await u.store.get([y.channelId,y.userId]);m!==void 0&&vs(y.updateVersion,m.updateVersion)<0||await u.store.put(y);}await u.done;},async deleteChannelMembers(c){let u=IDBKeyRange.bound([c,""],[c,ge]),y=i().transaction("channelMembers","readwrite"),m=await y.store.openCursor(u);for(;m!==null;)await m.delete(),m=await m.continue();await y.done;},async getChannelMemberSnapshot(c){return await i().get("channelMemberSnapshots",c)??null},async saveChannelMemberSnapshot(c){await i().put("channelMemberSnapshots",c);},async deleteChannelMemberSnapshot(c){await i().delete("channelMemberSnapshots",c);},async getChannelMentionCandidateSnapshot(c){return await i().get("channelMentionCandidateSnapshots",c)??null},async saveChannelMentionCandidateSnapshot(c){await i().put("channelMentionCandidateSnapshots",c);},async deleteChannelMentionCandidateSnapshot(c){await i().delete("channelMentionCandidateSnapshots",c);}}}function Os(e={}){let n=e.createSocket??(p=>new globalThis.WebSocket(p)),t=e.connectTimeoutMs??1e4,r={open:new Set,message:new Set,close:new Set,error:new Set},o,a,s="idle",d;function i(p,A){for(let v of [...r[p]])v(A);}function f(){d!==void 0&&(clearTimeout(d),d=void 0);}function g(p,A){A!==void 0&&(p.removeEventListener("open",A.onOpen),p.removeEventListener("message",A.onMessage),p.removeEventListener("error",A.onError),p.removeEventListener("close",A.onClose));}function b(){if(f(),o!==void 0){g(o,a);try{o.close(1e3);}catch{}o=void 0;}a=void 0;}function h(p,A,v){let E={onOpen:()=>{p===o&&(f(),s="open",i("open",{endpoint:A}));},onMessage:c=>{if(p!==o)return;let u=c?.data;if(u instanceof ArrayBuffer){i("message",{data:u});return}i("error",{error:new Error(`WsTransport\uFF1A\u6536\u5230\u975E ArrayBuffer \u6D88\u606F\uFF08${typeof u}\uFF09\uFF0C\u5DF2\u5FFD\u7565`)});},onError:c=>{p===o&&i("error",{error:new Error(`WsTransport\uFF1AWebSocket error \u4E8B\u4EF6\uFF08${c instanceof Event?c.type:typeof c}\uFF09`)});},onClose:c=>{p===o&&(f(),g(p,E),o=void 0,a=void 0,s="closed",i("close",{code:c?.code??1006,reason:c?.reason??"",wasClean:c?.wasClean??false}));}};if(a=E,p.addEventListener("open",E.onOpen),p.addEventListener("message",E.onMessage),p.addEventListener("error",E.onError),p.addEventListener("close",E.onClose),v>0){let c=setTimeout(()=>{if(!(p!==o||s!=="connecting")){i("error",{error:new Error(`WsTransport\uFF1A\u8FDE\u63A5\u8D85\u65F6\uFF08${v}ms \u672A open\uFF09`)});try{p.close();}catch{}}},v);c.unref?.(),d=c;}}return {get state(){return s},async connect(p,A){let v=p[0];if(v===void 0)throw new Error("WsTransport.connect\uFF1Aendpoints \u4E3A\u7A7A\uFF08P0 single \u7B56\u7565\u9700\u81F3\u5C11\u4E00\u4E2A\u7AEF\u70B9\uFF09");b(),s="connecting";let E;try{E=n(v.url);}catch(c){throw s="closed",c}E.binaryType="arraybuffer",o=E,h(E,v,A?.connectTimeoutMs??t);},async send(p){if(o===void 0||s!=="open")throw new Error(`WsTransport.send\uFF1A\u8FDE\u63A5\u672A\u5C31\u7EEA\uFF08state=${s}\uFF09\uFF0C\u62D2\u7EDD\u53D1\u9001`);o.send(p);},async close(p=1e3,A){f(),o!==void 0&&(s==="connecting"||s==="open")&&(s="closing",o.close(p,A));},on(p,A){return r[p].add(A),()=>{r[p].delete(A);}}}}
7
+ export{Ca as $,Hr as A,Ya as Aa,Hi as B,Qa as Ba,Fi as C,es as Ca,Ji as D,ns as Da,Vi as E,ts as Ea,ji as F,rs as Fa,qi as G,os as Ga,zi as H,is as Ha,Wi as I,Gn as Ia,Yi as J,us as Ja,Qi as K,ms as Ka,Xi as L,Cs as La,Zi as M,Ds as Ma,ea as N,Us as Na,na as O,Os as Oa,ta as P,$r as Pa,oa as Q,Je as Qa,aa as R,Qr as Ra,en as S,co as Sa,nn as T,sa as U,ua as V,la as W,pa as X,fa as Y,ga as Z,ha as _,uo as a,ba as aa,xe as b,Pa as ba,q as c,wa as ca,fo as d,_a as da,go as e,Sa as ea,Ee as f,va as fa,ho as g,Ma as ga,Eo as h,xa as ha,Ce as i,Ea as ia,j,Ta as ja,Ko as k,Ke as ka,Lo as l,Da as la,De as m,Ua as ma,re as n,Oa as na,Qo as o,Na as oa,Ue as p,Ba as pa,W as q,Ga as qa,pi as r,Ha as ra,bi as s,$a as sa,_i as t,Fa as ta,Ai as u,Ja as ua,Ei as v,Sr as va,we as w,vr as wa,H as x,qa as xa,pe as y,za as ya,Ni as z,Wa as za};
@@ -1 +1 @@
1
- import {c as c$1}from'./chunk-RZFMPR6C.js';import {n}from'./chunk-BRHUZPIB.js';var w=864e5,P=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"];function u(e){return e!=null&&Number.isFinite(e)&&e>0&&!Number.isNaN(new Date(e).getTime())}function v(e,n){if(u(e))return e;if(u(n))return n}function b(e,n){return v(e,n)}function m(e){if(!u(e))return "";let n=new Date(e);return `${n.getFullYear()}-${n.getMonth()+1}-${n.getDate()}`}function h(e,n){return u(e)?u(n)?m(e)!==m(n):true:false}function N(e,n){return T(e,n,"conversation")}function F(e,n){return T(e,n,"separator")}function T(e,n,r){if(!u(e))return "";let t=n.now??new Date;if(Number.isNaN(t.getTime()))return "";let o=new Date(e),a=y(t)-y(o),i=c$1(n.locale);return o.getFullYear()!==t.getFullYear()?A(o):a===0?r==="conversation"?k(o):i.today:a===1?i.yesterday:a>=2&&a<=6?x(o,i):D(o)}function y(e){return Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())/w}function x(e,n){return n.weekdays[P[e.getDay()]]}function k(e){return `${c(e.getHours())}:${c(e.getMinutes())}`}function A(e){return `${e.getFullYear()}/${c(e.getMonth()+1)}/${c(e.getDate())}`}function D(e){return `${c(e.getMonth()+1)}/${c(e.getDate())}`}function c(e){return String(e).padStart(2,"0")}function K(e){if(e.markers.length===0)return null;let n=e.viewportTop+e.overlayTop;if(e.markers[0].top>n+1)return null;let r=0;for(let d=0;d<e.markers.length&&!(e.markers[d].top>n+1);d+=1)r=d;let t=e.markers[r],o=n+e.overlayHeight,a=e.markers.filter(d=>d.top<o+1&&d.top+d.height>n-1).at(-1),i=a===void 0?0:Math.max(0,Math.min(a.top+a.height,o)-Math.max(a.top,n)),s=a===void 0?1:Math.max(1,Math.min(a.height,e.overlayHeight)),l=Math.min(1,i/s);return {key:t.key,label:t.label,inlineOpacity:1-l,...a===void 0?{}:{inlineDateKey:a.key}}}var C={text:"text",image:"image",video:"video",voice:"voice",file:"file",sticker:"sticker",contact:"contact",miniProgram:"miniProgram",game:"game",transfer:"transfer",redPacket:"redPacket",call:"call",system:"system",unknown:"unknown"};function S(e){switch(e.contentType){case "text":return typeof e.body.text=="string";case "image":return e.body.image!==void 0&&typeof e.body.image.url=="string";case "video":return e.body.video!==void 0&&typeof e.body.video.url=="string";case "voice":return e.body.voice!==void 0;case "file":return e.body.file!==void 0;case "sticker":return e.body.sticker!==void 0;case "contact":return e.body.contact!==void 0;case "miniProgram":return e.body.miniProgram!==void 0&&typeof e.body.miniProgram.appId=="string";case "transfer":return e.body.transfer!==void 0&&typeof e.body.transfer.serialNumber=="string";case "redPacket":{let n=e.body.redPacket;return n!==void 0&&n.packetId.trim()!==""&&(n.packetType===1||n.packetType===2||n.packetType===3||n.packetType===4)}case "call":return e.body.call!==void 0&&(e.body.call.callKind==="audio"||e.body.call.callKind==="video")&&typeof e.body.call.durationMs=="number";case "game":{let n=e.body.game;return n?.gameType==="dice"?Number.isInteger(n.value)&&n.value>=1&&n.value<=6:n?.gameType==="rock-paper-scissors"&&Number.isInteger(n.value)&&n.value>=1&&n.value<=3}case "system":return e.body.system!==void 0;case "unknown":return e.body.unknown!==void 0}}function I(e){return e.encryption.decryptFailed===true?"decrypt-failed":S(e)?e.contentType==="sticker"?n(e.body.sticker.imageType):C[e.contentType]:"unknown"}function E(e){let n=[...e.leadingItems??[]],r=e.entryUnread.state==="located"?e.entryUnread:null,t,o=null,a=false;for(let i of e.messages){let s=b(i.createdAt,i.serverTime),l=s!==void 0&&h(s,t);s!==void 0&&l&&n.push({kind:"date-separator",key:`date-${m(s)}-${i.id}`,label:e.formatDate(s)}),t=s,!a&&r!==null&&i.id===r.firstMessageId&&(n.push({kind:"entry-unread",key:`entry-unread-${i.id}`,...r.count===void 0?{}:{count:r.count}}),a=true);let d=e.beforeMessageItems?.(i)??[];if(n.push(...d),I(i)==="system"){n.push({kind:"system",key:i.id,message:i}),o=null;continue}n.push({kind:"message",key:`message-${i.id}`,message:i,firstOfRun:l||i.senderId!==o}),o=i.senderId;}return n}function z(e){let n=e.targetTop-e.viewportTop,r=e.currentScrollTop+n-(e.viewportHeight-e.targetHeight)/2,t=Math.max(0,e.scrollHeight-e.viewportHeight);return Math.min(t,Math.max(0,r))}function U(e){return e!==null&&e.clientWidth>0&&e.clientHeight>0}function j(e){return e.locatedAt<=0||e.duration<0||e.now<e.locatedAt?false:e.now-e.locatedAt<=e.duration}function G(e){return !Number.isFinite(e.topThreshold)||e.topThreshold<0?false:e.currentScrollTop<e.previousScrollTop&&e.currentScrollTop<=e.topThreshold}function H(e,n){return e.find(r=>r.bottom>n.top&&r.top<n.bottom)??e[0]}function f(e){return e.anchorTop??e.top}function q(e,n){let r=H(e,n);return r===void 0?void 0:{id:r.id,offset:f(r)-n.top}}function J(e,n,r){if(e===void 0)return;let t=n.find(o=>o.id===e.id);return t===void 0?e:{id:e.id,offset:f(t)-r.top}}function B(e,n,r){if(e===void 0)return;let t=n.find(o=>o.id===e.id);return t===void 0?void 0:f(t)-r.top-e.offset}function Q(e,n,r=3){return !Number.isFinite(r)||r<=0?[]:e.filter(t=>t.bottom>n.top&&t.top<n.bottom).slice(0,Math.floor(r)).map(t=>({id:t.id,offset:f(t)-n.top}))}function X(e,n,r){for(let t of e){let o=B(t,n,r);if(o!==void 0)return o}}function Z(e){return e.sameConversation&&!e.isHistoryWindow&&!e.isLocating&&!e.isLocateProtected&&e.userKeptLatestIntent}function ee(e){return e.isPageVisible&&!e.isHistoryWindow&&!e.isLocating&&!e.isLocateProtected&&(e.isOwnMessage||e.isAtBottom)}function ne(e){return e.isLoadingOlder&&e.previousTailId!==void 0&&e.previousTailId!==e.currentTailId&&e.previousMessageIds.includes(e.currentTailId)}function re(e,n){return e!==void 0&&!n.has(e)}async function te(e,n){let r=0;for(;e()&&!(await n()<=0);)r+=1;return r}function oe(e){return e.hasMoreHistory&&Number.isFinite(e.scrollHeight)&&Number.isFinite(e.clientHeight)&&e.scrollHeight>0&&e.clientHeight>0&&e.scrollHeight<=e.clientHeight}function ie(e){return e.isHistoryWindow&&!e.isPageSettling&&e.isAtBottom&&(e.currentScrollTop>e.previousScrollTop||e.allowStationaryBoundary===true)}function M(e){return !e.isPageVisible||!e.isAtBottom||e.isHistoryWindow}function ae(e){let n=Math.max(0,e.margin);return e.messageTop<e.viewportBottom-n&&e.messageBottom>e.viewportTop+n}function le(e){let n=new Set;function r(s){return s===n.size?false:(e?.(n.size),true)}function t(s){let l=n.size;for(let d of s)d!==""&&n.add(d);return r(l)}function o(s,l){return M(l)&&t(s)}function a(s){let l=n.size;for(let d of s)n.delete(d);return r(l)}function i(){let s=n.size;return n.clear(),r(s)}return {get count(){return n.size},add:t,trackRemote:o,acknowledgeVisible:a,clear:i}}export{M as A,ae as B,le as C,v as a,b,m as c,h as d,N as e,F as f,K as g,I as h,E as i,z as j,U as k,j as l,G as m,H as n,q as o,J as p,B as q,Q as r,X as s,Z as t,ee as u,ne as v,re as w,te as x,oe as y,ie as z};
1
+ import {c as c$1}from'./chunk-ZXNH42G2.js';import {n}from'./chunk-VSMNRAAM.js';var w=864e5,P=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"];function u(e){return e!=null&&Number.isFinite(e)&&e>0&&!Number.isNaN(new Date(e).getTime())}function v(e,n){if(u(e))return e;if(u(n))return n}function b(e,n){return v(e,n)}function m(e){if(!u(e))return "";let n=new Date(e);return `${n.getFullYear()}-${n.getMonth()+1}-${n.getDate()}`}function h(e,n){return u(e)?u(n)?m(e)!==m(n):true:false}function N(e,n){return T(e,n,"conversation")}function F(e,n){return T(e,n,"separator")}function T(e,n,r){if(!u(e))return "";let t=n.now??new Date;if(Number.isNaN(t.getTime()))return "";let o=new Date(e),a=y(t)-y(o),i=c$1(n.locale);return o.getFullYear()!==t.getFullYear()?A(o):a===0?r==="conversation"?k(o):i.today:a===1?i.yesterday:a>=2&&a<=6?x(o,i):D(o)}function y(e){return Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())/w}function x(e,n){return n.weekdays[P[e.getDay()]]}function k(e){return `${c(e.getHours())}:${c(e.getMinutes())}`}function A(e){return `${e.getFullYear()}/${c(e.getMonth()+1)}/${c(e.getDate())}`}function D(e){return `${c(e.getMonth()+1)}/${c(e.getDate())}`}function c(e){return String(e).padStart(2,"0")}function K(e){if(e.markers.length===0)return null;let n=e.viewportTop+e.overlayTop;if(e.markers[0].top>n+1)return null;let r=0;for(let d=0;d<e.markers.length&&!(e.markers[d].top>n+1);d+=1)r=d;let t=e.markers[r],o=n+e.overlayHeight,a=e.markers.filter(d=>d.top<o+1&&d.top+d.height>n-1).at(-1),i=a===void 0?0:Math.max(0,Math.min(a.top+a.height,o)-Math.max(a.top,n)),s=a===void 0?1:Math.max(1,Math.min(a.height,e.overlayHeight)),l=Math.min(1,i/s);return {key:t.key,label:t.label,inlineOpacity:1-l,...a===void 0?{}:{inlineDateKey:a.key}}}var C={text:"text",image:"image",video:"video",voice:"voice",file:"file",sticker:"sticker",contact:"contact",miniProgram:"miniProgram",game:"game",transfer:"transfer",redPacket:"redPacket",call:"call",system:"system",unknown:"unknown"};function S(e){switch(e.contentType){case "text":return typeof e.body.text=="string";case "image":return e.body.image!==void 0&&typeof e.body.image.url=="string";case "video":return e.body.video!==void 0&&typeof e.body.video.url=="string";case "voice":return e.body.voice!==void 0;case "file":return e.body.file!==void 0;case "sticker":return e.body.sticker!==void 0;case "contact":return e.body.contact!==void 0;case "miniProgram":return e.body.miniProgram!==void 0&&typeof e.body.miniProgram.appId=="string";case "transfer":return e.body.transfer!==void 0&&typeof e.body.transfer.serialNumber=="string";case "redPacket":{let n=e.body.redPacket;return n!==void 0&&n.packetId.trim()!==""&&(n.packetType===1||n.packetType===2||n.packetType===3||n.packetType===4)}case "call":return e.body.call!==void 0&&(e.body.call.callKind==="audio"||e.body.call.callKind==="video")&&typeof e.body.call.durationMs=="number";case "game":{let n=e.body.game;return n?.gameType==="dice"?Number.isInteger(n.value)&&n.value>=1&&n.value<=6:n?.gameType==="rock-paper-scissors"&&Number.isInteger(n.value)&&n.value>=1&&n.value<=3}case "system":return e.body.system!==void 0;case "unknown":return e.body.unknown!==void 0}}function I(e){return e.encryption.decryptFailed===true?"decrypt-failed":S(e)?e.contentType==="sticker"?n(e.body.sticker.imageType):C[e.contentType]:"unknown"}function E(e){let n=[...e.leadingItems??[]],r=e.entryUnread.state==="located"?e.entryUnread:null,t,o=null,a=false;for(let i of e.messages){let s=b(i.createdAt,i.serverTime),l=s!==void 0&&h(s,t);s!==void 0&&l&&n.push({kind:"date-separator",key:`date-${m(s)}-${i.id}`,label:e.formatDate(s)}),t=s,!a&&r!==null&&i.id===r.firstMessageId&&(n.push({kind:"entry-unread",key:`entry-unread-${i.id}`,...r.count===void 0?{}:{count:r.count}}),a=true);let d=e.beforeMessageItems?.(i)??[];if(n.push(...d),I(i)==="system"){n.push({kind:"system",key:i.id,message:i}),o=null;continue}n.push({kind:"message",key:`message-${i.id}`,message:i,firstOfRun:l||i.senderId!==o}),o=i.senderId;}return n}function z(e){let n=e.targetTop-e.viewportTop,r=e.currentScrollTop+n-(e.viewportHeight-e.targetHeight)/2,t=Math.max(0,e.scrollHeight-e.viewportHeight);return Math.min(t,Math.max(0,r))}function U(e){return e!==null&&e.clientWidth>0&&e.clientHeight>0}function j(e){return e.locatedAt<=0||e.duration<0||e.now<e.locatedAt?false:e.now-e.locatedAt<=e.duration}function G(e){return !Number.isFinite(e.topThreshold)||e.topThreshold<0?false:e.currentScrollTop<e.previousScrollTop&&e.currentScrollTop<=e.topThreshold}function H(e,n){return e.find(r=>r.bottom>n.top&&r.top<n.bottom)??e[0]}function f(e){return e.anchorTop??e.top}function q(e,n){let r=H(e,n);return r===void 0?void 0:{id:r.id,offset:f(r)-n.top}}function J(e,n,r){if(e===void 0)return;let t=n.find(o=>o.id===e.id);return t===void 0?e:{id:e.id,offset:f(t)-r.top}}function B(e,n,r){if(e===void 0)return;let t=n.find(o=>o.id===e.id);return t===void 0?void 0:f(t)-r.top-e.offset}function Q(e,n,r=3){return !Number.isFinite(r)||r<=0?[]:e.filter(t=>t.bottom>n.top&&t.top<n.bottom).slice(0,Math.floor(r)).map(t=>({id:t.id,offset:f(t)-n.top}))}function X(e,n,r){for(let t of e){let o=B(t,n,r);if(o!==void 0)return o}}function Z(e){return e.sameConversation&&!e.isHistoryWindow&&!e.isLocating&&!e.isLocateProtected&&e.userKeptLatestIntent}function ee(e){return e.isPageVisible&&!e.isHistoryWindow&&!e.isLocating&&!e.isLocateProtected&&(e.isOwnMessage||e.isAtBottom)}function ne(e){return e.isLoadingOlder&&e.previousTailId!==void 0&&e.previousTailId!==e.currentTailId&&e.previousMessageIds.includes(e.currentTailId)}function re(e,n){return e!==void 0&&!n.has(e)}async function te(e,n){let r=0;for(;e()&&!(await n()<=0);)r+=1;return r}function oe(e){return e.hasMoreHistory&&Number.isFinite(e.scrollHeight)&&Number.isFinite(e.clientHeight)&&e.scrollHeight>0&&e.clientHeight>0&&e.scrollHeight<=e.clientHeight}function ie(e){return e.isHistoryWindow&&!e.isPageSettling&&e.isAtBottom&&(e.currentScrollTop>e.previousScrollTop||e.allowStationaryBoundary===true)}function M(e){return !e.isPageVisible||!e.isAtBottom||e.isHistoryWindow}function ae(e){let n=Math.max(0,e.margin);return e.messageTop<e.viewportBottom-n&&e.messageBottom>e.viewportTop+n}function le(e){let n=new Set;function r(s){return s===n.size?false:(e?.(n.size),true)}function t(s){let l=n.size;for(let d of s)d!==""&&n.add(d);return r(l)}function o(s,l){return M(l)&&t(s)}function a(s){let l=n.size;for(let d of s)n.delete(d);return r(l)}function i(){let s=n.size;return n.clear(),r(s)}return {get count(){return n.size},add:t,trackRemote:o,acknowledgeVisible:a,clear:i}}export{M as A,ae as B,le as C,v as a,b,m as c,h as d,N as e,F as f,K as g,I as h,E as i,z as j,U as k,j as l,G as m,H as n,q as o,J as p,B as q,Q as r,X as s,Z as t,ee as u,ne as v,re as w,te as x,oe as y,ie as z};
@@ -0,0 +1 @@
1
+ import {h,l,b as b$1,g,m}from'./chunk-ZJBW4MOG.js';import {Na,B as B$1,Ma}from'./chunk-FO2MMPPT.js';import {ba,a as a$1,b,Z,fa}from'./chunk-VSMNRAAM.js';import {a}from'./chunk-WOT6VMZA.js';var fn=14,un="game:rps",mn="game:dice";function Le(e){if(e.stableKey.length===0||e.stableKey.trim()!==e.stableKey)throw new TypeError("Emoji recent item \u9700\u8981\u975E\u7A7A\u4E14\u65E0\u9996\u5C3E\u7A7A\u767D\u7684 stableKey")}function gn(e,t){Le(t);let n=new Set([t.stableKey]),r=[t];for(let o of e)if(Le(o),!n.has(o.stableKey)&&(n.add(o.stableKey),r.push(o),r.length===14))break;return Object.freeze(r)}var Fe=["0x1f600","0x1f603","0x1f604","0x1f601","0x1f606","0x1f605","0x1f923","0x1f602","0x1f642","0x1f643","0x1f609","0x1f60a","0x1f607","0x1f970","0x1f60d","0x1f929","0x1f618","0x1f617","0x1f61a","0x1f619","0x1f60b","0x1f61b","0x1f61c","0x1f92a","0x1f61d","0x1f911","0x1f917","0x1f92d","0x1f92b","0x1f914","0x1f910","0x1f928","0x1f610","0x1f611","0x1f636","0x1f60f","0x1f612","0x1f644","0x1f62c","0x1f925","0x1f60c","0x1f614","0x1f62a","0x1f924","0x1f634","0x1f637","0x1f912","0x1f915","0x1f922","0x1f92e","0x1f927","0x1f975","0x1f976","0x1f974","0x1f635","0x1f92f","0x1f920","0x1f973","0x1f60e","0x1f913","0x1f9d0","0x1f615","0x1f61f","0x1f641","0x1f62e","0x1f62f","0x1f632","0x1f633","0x1f97a","0x1f626","0x1f627","0x1f628","0x1f630","0x1f625","0x1f622","0x1f62d","0x1f631","0x1f616","0x1f623","0x1f61e","0x1f613","0x1f629","0x1f62b","0x1f971","0x1f624","0x1f621","0x1f620","0x1f92c","0x1f608","0x1f47f","0x1f480","0x1f4a9","0x1f921","0x1f479","0x1f47a","0x1f47b","0x1f47d","0x1f47e","0x1f916","0x1f63a","0x1f638","0x1f639","0x1f63b","0x1f63c","0x1f63d","0x1f640","0x1f63f","0x1f63e","0x1f648","0x1f649","0x1f64a","0x1f48c","0x1f498","0x1f49d","0x1f496","0x1f497","0x1f493","0x1f49e","0x1f495","0x1f49f","0x1f494","0x1f9e1","0x1f49b","0x1f49a","0x1f499","0x1f49c","0x1f90e","0x1f5a4","0x1f90d","0x1f48b","0x1f4af","0x1f4a2","0x1f4a5","0x1f4ab","0x1f4a6","0x1f4a8","0x1f4ac","0x1f4ad","0x1f4a4","0x1f44b","0x1f91a","0x1f590","0x270b","0x1f596","0x1f44c","0x1f90f","0x270c","0x1f91e","0x1f91f","0x1f918","0x1f919","0x1f448","0x1f449","0x1f446","0x1f595","0x1f447","0x1f44d","0x1f44e","0x270a","0x1f44a","0x1f91b","0x1f91c","0x1f44f","0x1f64c","0x1f450","0x1f932","0x1f91d","0x1f64f","0x270d","0x1f485","0x1f933","0x1f4aa","0x1f9be","0x1f9bf","0x1f9b5","0x1f9b6","0x1f442","0x1f9bb","0x1f443","0x1f9e0","0x1f9b7","0x1f9b4","0x1f440","0x1f445","0x1f444","0x1f435","0x1f9a7","0x1f436","0x1f98a","0x1f99d","0x1f431","0x1f981","0x1f42f","0x1f42e","0x1f437","0x1f43d","0x1f42d","0x1f439","0x1f430","0x1f43b","0x1f428","0x1f43c","0x1f9a5","0x1f983","0x1f414","0x1f423","0x1f425","0x1f427","0x1f985","0x1f986","0x1f989","0x1f9a9","0x1f99a","0x1f99c","0x1f438","0x1f433","0x1f980","0x1f490","0x1f338","0x1f4ae","0x1f339","0x1f940","0x1f33a","0x1f33b","0x1f340","0x1f341","0x1f342","0x1f343","0x1f9c0","0x1f969","0x1f354","0x1f35f","0x1f355","0x1f32d","0x1f96a","0x1f32e","0x1f32f","0x1f365","0x1f36b","0x2615","0x1f37a","0x1f943","0x1f30f","0x1f9f1","0x1f6d1","0x1f6a7","0x2693","0x1f680","0x23f3","0x231a","0x23f0","0x1f553","0x1f319","0x1f31a","0x1f31b","0x1f31c","0x1f31d","0x1f31e","0x1fa90","0x2b50","0x1f31f","0x1f320","0x1f30c","0x26c5","0x1f300","0x1f308","0x1f302","0x2614","0x26a1","0x26c4","0x1f525","0x1f4a7","0x1f30a","0x1f383","0x1f384","0x1f386","0x1f387","0x1f9e8","0x2728","0x1f388","0x1f389","0x1f38a","0x1f38b","0x1f38d","0x1f38e","0x1f38f","0x1f390","0x1f391","0x1f9e7","0x1f380","0x1f381","0x1f3ab","0x1f3c6","0x1f3c5","0x1f947","0x1f948","0x1f949","0x1f3c1","0x1f6a9","0x1f38c","0x1f3f4"];var vn=1114111,yn=55296,Cn=57343,Ue=65039,xn="0123456789abcdef";function Mn(e,t){if(!e.startsWith("0x")||e.length<=2)throw new TypeError(`\u975E\u6CD5 Unicode emoji code: ${t}`);let n=e.slice(2);for(let o of n)if(!xn.includes(o))throw new TypeError(`\u975E\u6CD5 Unicode emoji code: ${t}`);let r=Number.parseInt(n,16);if(!Number.isSafeInteger(r)||r>vn||r>=yn&&r<=Cn)throw new RangeError(`Unicode emoji code point \u8D8A\u754C: ${t}`);return r}function ee(e){if(e.length===0||e.trim()!==e)throw new TypeError(`\u975E\u6CD5 Unicode emoji code: ${e}`);let t=e.split(" ");if(t.some(n=>n.length===0))throw new TypeError(`\u975E\u6CD5 Unicode emoji code: ${e}`);return Object.freeze(t.map(n=>Mn(n,e)))}function bn(e){return String.fromCodePoint(...ee(e))}function xe(e){return e.map(t=>`0x${t.toString(16)}`).join(" ")}function hn(e){let t=ee(e),n=xe(t);if(n!==e)throw new TypeError(`Unicode emoji code \u5FC5\u987B\u4F7F\u7528 canonical \u5C0F\u5199\u683C\u5F0F: ${e}`);return Object.freeze({stableKey:`unicode:${n}`,code:e,codePoints:t,text:String.fromCodePoint(...t),kind:"unicode"})}var Me=Object.freeze(Fe.map(hn)),z=new Map,K=new Map;for(let e of Me){if(z.has(e.code)||K.has(e.text))throw new Error(`Unicode emoji \u76EE\u5F55\u5B58\u5728\u91CD\u590D\u9879: ${e.code}`);z.set(e.code,e),K.set(e.text,e);}for(let e of Me){let n=e.codePoints.at(-1)===Ue?e.codePoints.slice(0,-1):[...e.codePoints,Ue],r=xe(n),o=String.fromCodePoint(...n);z.has(r)||z.set(r,e),K.has(o)||K.set(o,e);}function In(e){if(e.startsWith("0x")){let t=xe(ee(e));return z.get(t)}return K.get(e)}var Ve=["[100\u5206]","[VS]","[\u4E0A]","[\u4E0B]","[\u4E0D\u542C]","[\u4E0D\u770B]","[\u4E0D\u9AD8\u5174]","[\u4EB2\u543B]","[\u4F1E]","[\u51FB\u638C]","[\u5357\u74DC\u5934]","[\u53F3]","[\u54C8\u54C8]","[\u54E6]","[\u5564\u9152]","[\u55B7\u568F]","[\u5723\u8BDE\u6811]","[\u5929\u4F7F\u7B11]","[\u5956\u676F]","[\u5BB3\u6015]","[\u5DE6]","[\u5E73\u9759]","[\u5F3A\u58EE]","[\u5F69\u8679]","[\u5F97\u610F]","[\u5FAE\u7B11]","[\u5FC3\u7D2F]","[\u5FC3\u8DF3]","[\u601D\u8003]","[\u6076\u9B54\u6012]","[\u6076\u9B54\u7B11]","[\u6210\u957F]","[\u6293\u72C2]","[\u62F3\u5934]","[\u6325\u624B]","[\u63E1\u62F3]","[\u65E0]","[\u661F\u661F]","[\u661F\u661F\u773C]","[\u6708\u997C]","[\u6C14\u6124]","[\u6EE1\u8DB3]","[\u706B]","[\u718A\u732B]","[\u7231\u4F60]","[\u725B]","[\u72D7]","[\u732B]","[\u7591\u60D1]","[\u7687\u51A0]","[\u778C\u7761]","[\u795D]","[\u79D8]","[\u7BEE\u7403]","[\u7F8E\u5473]","[\u836F]","[\u8DB3\u7403]","[\u95EA\u7535]","[\u95EA\u8000\u7684\u5FC3]","[\u96EA\u82B1]","[\u997A\u5B50]","[\u9A6C]","[\u9B3C]","[\u9E21]","[\u9F13\u638C]","[\u9F20]","[ALLIN]","[\u4F24\u5FC3]","[\u4FBF\u4FBF]","[\u5077\u7B11]","[\u50B2\u6162]","[\u50BB\u7B11]","[\u5192\u6C57]","[\u51CB\u96F6]","[\u53D1\u5446]","[\u53EF\u601C]","[\u53F9\u6C14]","[\u5403\u60CA]","[\u5403\u74DC]","[\u5408\u638C]","[\u5446\u6EDE]","[\u5455\u5410]","[\u5492\u9A82]","[\u5496\u5561]","[\u54C7]","[\u559C\u7231]","[\u5634\u5507]","[\u563F\u54C8]","[\u56F0]","[\u56F0\u4F4F]","[\u5927\u54ED]","[\u5927\u7B11]","[\u592A\u9633]","[\u5931\u671B]","[\u594B\u6597]","[\u5978\u7B11]","[\u59D4\u5C48]","[\u5BB3\u7F9E]","[\u5C2C\u7B11]","[\u5E72\u676F]","[\u5E86\u795D]","[\u5FC3\u788E]","[\u6050\u60E7]","[\u60CA\u8BB6]","[\u6109\u60A6]","[\u611F\u5192]","[\u6124\u6012]","[\u61CA\u607C]","[\u620F\u5F04]","[\u6253\u51FB]","[\u62A0\u9F3B]","[\u62B1\u62F3]","[\u62C5\u5FC3]","[\u62DC\u62DC]","[\u62E5\u62B1]","[\u6342\u8138]","[\u63E1\u624B]","[\u642C\u7816]","[\u6536\u5230]","[\u6536\u5272]","[\u65B9\u5757]","[\u65E0\u8BED]","[\u6655]","[\u6708\u4EAE]","[\u673A\u667A]","[\u6C57]","[\u6D77\u8482]","[\u70B8\u5F39]","[\u70DF\u82B1]","[\u718A\u54ED\u4E86]","[\u7206\u7AF9]","[\u7231\u5FC3]","[\u725B\u5E02]","[\u72D7\u5934]","[\u732A]","[\u73AB\u7470]","[\u751F\u65E5\u86CB\u7CD5]","[\u767D\u773C]","[\u76B1\u7709]","[\u770B\u6DA8]","[\u770B\u8DCC]","[\u7728\u773C]","[\u7761\u89C9]","[\u793C\u7269]","[\u793E\u4F1A]","[\u798F]","[\u7B11\u54ED]","[\u7CD6\u679C]","[\u7EA2\u5305]","[\u8036]","[\u8138\u7EA2]","[\u82E6\u6DA9]","[\u83DC\u5200]","[\u8870]","[\u88C2\u5F00]","[\u8981\u54ED\u4E86]","[\u8C03\u76AE]","[\u8D5E]","[\u8E29]","[\u9119\u89C6]","[\u9177]","[\u91D1\u94B1]","[\u9501\u7BB1]","[\u957F\u8349]","[\u95EE\u53F7]","[\u95F9\u5267]","[\u9634\u9669]","[\u964D\u843D\u4F1E]","[\u96BE\u8FC7]","[\u98DE\u543B]","[\u9AB7\u9AC5]","[\u9EBB\u5C06]"];var ze=h,Tn=new Set(Ve),En="/images/emoji",Pn=(()=>{let e=new Map;for(let t of ze)for(let n of t.tokens)e.set(n,t);return e})();function Rn(e){return Pn.get(e)}function kn(e,t=En){return `${t}/${e.file}`}var wn=/\[[^[\]]{1,20}\]/g,An=(()=>{let e=new Map;for(let t of ze)e.set(t.code,t);return e})();function Wt(e,t){let n=An.get(e);return n===void 0?void 0:kn(n,t)}var _n=/\[[^[\]]{1,20}\]/;function $t(e){return _n.test(e)}function Nn(){return e=>{let t=[];for(let n of e.matchAll(wn)){let r=Rn(n[0]);if(n.index!==void 0){if(r!==void 0){t.push({start:n.index,end:n.index+n[0].length-1,segment:{kind:"emoji",text:n[0],code:r.code}});continue}Tn.has(n[0])&&t.push({start:n.index,end:n.index+n[0].length-1,segment:{kind:"legacy-emoji-placeholder",text:n[0]}});}}return t}}var On=Nn();function Xt(e){if(e.contentType!=="text"||e.encryption.decryptFailed===true||e.mention!==void 0)return null;let t=e.body.text;if(t===void 0||t==="")return null;let n=On(t);if(n.length===0)return null;let r=0,o=[];for(let a of n){if(a.start!==r||a.segment.kind!=="emoji"&&a.segment.kind!=="legacy-emoji-placeholder")return null;o.push(a.segment),r=a.end+1;}return r!==t.length?null:Object.freeze({segments:Object.freeze(o),count:o.length})}function Ke(e){let t=new Map,n=new Set,r=e.revokeObjectUrl??(d=>URL.revokeObjectURL(d));function o(d){d.revoked||(d.revoked=true,n.delete(d),r(d.url));}function a(d){t.get(d.key)===d&&t.delete(d.key),d.retired=true,d.leases===0?o(d):n.add(d);}function s(){let d=0,l=0;for(let p of t.values())p.evictable&&(d+=1,l+=p.byteSize);return {entries:d,bytes:l}}function i(){let d=s();for(;d.entries>e.maxCachedEntries||d.bytes>e.maxCachedBytes;){let l;for(let p of t.values())if(p.evictable&&p.leases===0){l=p;break}if(l===void 0)return;a(l),d=s();}}function c(d,l,p){let h=p.byteSize??0,$=Number.isFinite(h)&&h>0?Math.floor(h):0,P=t.get(d);if(P?.url===l){P.byteSize=$,P.evictable=p.evictable,t.delete(d),t.set(d,P),i();return}P!==void 0&&a(P),t.set(d,{key:d,url:l,byteSize:$,evictable:p.evictable,leases:0,retired:false,revoked:false}),i();}function g(d,l){let p=t.get(d);if(p===void 0)return false;let h=t.get(l);return h!==void 0&&h!==p&&a(h),t.delete(d),p.key=l,t.set(l,p),true}function f(d,l){let p=t.get(d);return p===void 0?false:(l!==void 0&&Number.isFinite(l)&&l>0&&(p.byteSize=Math.floor(l)),p.evictable=true,t.delete(d),t.set(d,p),i(),t.get(d)===p)}function v(d){let l=t.get(d);if(l===void 0||l.revoked)return;l.leases+=1,t.delete(d),t.set(d,l);let p=false;return Object.freeze({url:l.url,release(){p||(p=true,l.leases=Math.max(0,l.leases-1),l.retired&&l.leases===0?o(l):i());}})}function u(d){let l=t.get(d);l!==void 0&&a(l);}function y(d){for(let l of [...t.keys()])l.startsWith(d)&&u(l);}function C(){let d=[...t.values()];t.clear();for(let l of [...d,...n])o(l);n.clear();}return {register:c,move:g,makeEvictable:f,acquire:v,remove:u,removeByPrefix:y,clearAll:C,getStats:()=>Object.freeze({activeEntries:t.size,retiredEntries:n.size,...s()})}}var Dn=20;function Gn(){if(typeof navigator>"u")return {maxCachedEntries:6,maxCachedBytes:512*1024*1024};let e=navigator,t=e.deviceMemory??4,n=/Android|iPhone|iPad|Mobile/i.test(e.userAgent);return e.connection?.saveData===true||t<=2||navigator.hardwareConcurrency<=2?{maxCachedEntries:2,maxCachedBytes:128*1024*1024}:n?{maxCachedEntries:4,maxCachedBytes:256*1024*1024}:t>=8&&navigator.hardwareConcurrency>=8?{maxCachedEntries:9,maxCachedBytes:1024*1024*1024}:{maxCachedEntries:6,maxCachedBytes:512*1024*1024}}function be(e){return `message\0${e.conversationType}\0${e.conversationId}\0${e.messageId}`}function jn(e){return `message\0${e.conversationType}\0${e.conversationId}\0`}function he(e){return `source\0${e}`}function Mr(e){let t=a$1(e.cachePrefix),n=b(t),r=e.createClient??l,o=e.createStorage??(m=>typeof indexedDB>"u"?void 0:Na({...m,mediaAssetCache:{strategies:b$1()}})),a=e.createProfile??(m=>B$1(m)),s=e.deleteStorage??(m=>Ma(m.accountId,{namespaceFactory:m.namespaceFactory})),i=null,c=null,g$1=false,f,v,u,y=0,C,d=false,l$1={wsUrl:"",userId:"",token:"",deviceToken:"",channelType:"0",cmHttpBaseUrl:""},p=g(e.debug,()=>({generation:y,...l$1.userId===""?{}:{accountId:l$1.userId}}));p.record("debug","chat-kit","session","runtime-created");function h(){return {generation:y,...l$1.userId===""?{}:{accountId:l$1.userId}}}function $(){l$1.userId="",l$1.token="",l$1.deviceToken="",l$1.channelType="0";}let P={},X={},Y={},k=new Map,A=Ke(Gn()),J=new Set,F=new Set,q=new Set;function U(){for(let m of q)m();}function ie(){let m=h(),M=i,b=v!==void 0||u!==void 0;v?.(),v=void 0,u?.(),u=void 0,b&&p.record("debug","chat-kit","session","client-subscriptions-released",()=>m),M?.connection.disconnect("im-chat-auth-changed"),i=null,c=null,Promise.resolve(f?.close?.()).catch(()=>{}),f=void 0,y+=1,P={},X={},Y={},se(),k.clear(),U();}function Q(){if(d)throw new Error("ChatRuntime \u5DF2 dispose\uFF0C\u4E0D\u80FD\u521B\u5EFA/\u590D\u7528 client");if(i===null){f=o({namespaceFactory:n});let M=C?.getCoreClient(),b=C?.getCoreApi?.();g$1=M!==void 0||b!==void 0;let E=C?.clientType??2,S=M?a({client:M,clientType:E,storage:f}):void 0,w={authProvider:{getLoginContext:async()=>{let R=C?.getSession?.(),H=C?.getSession!==void 0,de=(H?R?.userId:l$1.userId)?.trim()??"",Ge=(H?R?.token:l$1.token)?.trim()??"";return de===""||Ge===""||de!==l$1.userId?null:{userId:de,token:Ge,deviceToken:l$1.deviceToken,clientType:E,channelType:Number(l$1.channelType)}}},endpointProvider:{getEndpoints:async()=>[{url:l$1.wsUrl}],getCmHttpBaseUrl:async()=>l$1.cmHttpBaseUrl},cache:{prefix:t},adapters:{namespaceFactory:n,storage:{create:R=>{if(R.namespaceFactory!==n)throw new Error("ChatRuntime storage namespace factory \u4E0D\u4E00\u81F4");return f},purgeCurrentAccount:R=>s(R)}},profile:S,media:C?.getMediaConfig(),expressions:C?.getExpressionOptions?.(),coreApi:b,coreClient:M,debug:e.debug},j=r(w),ce=j.events;if(ce===void 0&&F.size>0)throw Promise.resolve(f?.close?.()).catch(()=>{}),f=void 0,new Error("IM client \u7F3A\u5C11\u4EA7\u54C1\u4E8B\u4EF6 API");i=j,v=i.connection.subscribe(R=>{for(let H of J)H(R);}),ce!==void 0&&(u=ce.subscribe(R=>{for(let H of F)H(R);})),p.record("debug","chat-kit","session","client-subscriptions-established",()=>h());}return i}function De(){let m$1=Q();return c??=m(m$1,{coreApiAvailable:g$1}),c}function se(){A.clearAll();}function ln(m){A.removeByPrefix(jn(m));}return {getClient:()=>i,getProductClient:()=>i===null?null:De(),ensureProductClient:De,getConnectionState:()=>i?.connection.state??"idle",getGeneration:()=>y,getCredentials:()=>l$1,getMediaConfig:()=>C?.getMediaConfig(),getDiagnostics:()=>p,configureHost(m){C=m;},applySession(m,M,b){let E=m?.userId??"",S=m?.token??"",w=i!==null&&(l$1.userId!==E||l$1.token!==S);return w&&ie(),l$1.wsUrl=M.wsUrl,l$1.cmHttpBaseUrl=M.cmHttpBaseUrl,l$1.userId=E,l$1.token=S,l$1.deviceToken=b,l$1.channelType="0",p.record("info","chat-kit","session","session-applied",()=>({data:{accountId:E,hasToken:S!=="",didReset:w}})),{didReset:w,hasToken:S!==""}},ensureClient:Q,async prepare(){if(d)return {ok:false,errorKey:"lifecycle.disposed"};if(l$1.userId==="")return {ok:false,errorKey:"lifecycle.missingLoginState"};let m=Date.now(),M=h();p.record("info","chat-kit","session","prepare-start",()=>M);try{return await Q().connection.prepare(),p.record("info","chat-kit","session","prepare-complete",()=>({...M,durationMs:Date.now()-m})),{ok:!0}}catch(b){return p.record("error","chat-kit","session","prepare-failed",()=>({...M,durationMs:Date.now()-m,error:{message:"ChatRuntime prepare \u5931\u8D25",data:b}})),{ok:false,errorKey:"lifecycle.prepareFailed",errorParams:{reason:b instanceof Error?b.message:String(b)}}}},async connect(){if(d)return {ok:false,errorKey:"lifecycle.disposed"};if(l$1.wsUrl===""||l$1.userId===""||l$1.token==="")return {ok:false,errorKey:"lifecycle.missingConnectParams"};let m=Date.now(),M=h();p.record("info","chat-kit","connection","connect-start",()=>M);try{return await Q().connection.connect(),p.record("info","chat-kit","connection","connect-complete",()=>({...M,durationMs:Date.now()-m})),{ok:!0}}catch(b){return p.record("error","chat-kit","connection","connect-failed",()=>({...M,durationMs:Date.now()-m,error:{message:"ChatRuntime connect \u5931\u8D25",data:b}})),{ok:false,errorKey:"lifecycle.connectFailed",errorParams:{reason:b instanceof Error?b.message:String(b)}}}},disconnect(){let m=h();p.record("info","chat-kit","connection","disconnect",()=>m),i?.connection.disconnect("im-chat-manual");},async logout(m){let M=Date.now(),b=h();p.record("info","chat-kit","session","logout-start",()=>({...b,data:m}));let E=i,S,w;if(E!==null)try{w=E.logout(m);}catch(j){S=j;}if($(),y+=1,w!==void 0)try{await w;}catch(j){S=j;}if(P={},X={},Y={},se(),k.clear(),U(),p.record(S===void 0?"info":"error","chat-kit","session",S===void 0?"logout-complete":"logout-failed",()=>({...b,durationMs:Date.now()-M,...S===void 0?{}:{error:{message:"ChatRuntime logout \u5931\u8D25",data:S}}})),S!==void 0)throw S},resetForAuthChange:ie,dispose(){let m=h();p.record("info","chat-kit","session","dispose",()=>m),ie(),J.clear(),F.clear(),q.clear(),d=true;},subscribeEvents(m){return J.add(m),()=>{J.delete(m);}},subscribeProductEvents(m){return F.add(m),()=>{F.delete(m);}},getSenderProfileCache:()=>P,setSenderProfileCache(m){P=m,U();},getGroupMemberNames:()=>X,setGroupMemberNames(m){X=m,U();},getChannelMemberProfiles:()=>Y,setChannelMemberProfiles(m){Y=m,U();},subscribeProfileChange(m){return q.add(m),()=>{q.delete(m);}},putSelfVoiceBytes(m,M){for(k.delete(m),k.set(m,M);k.size>Dn;){let b=k.keys().next().value;if(b===void 0)break;k.delete(b);}},getSelfVoiceBytes:m=>k.get(m),clearSelfVoiceBytes(){k.clear();},createLocalMediaPreview(m){let M=URL.createObjectURL(m);return A.register(he(M),M,{byteSize:m.size,evictable:false}),M},discardLocalMediaPreview(m){A.remove(he(m));},trackLocalMediaPreview(m,M){A.move(he(M),be(m));},resolveMediaPreviewToRemote(m,M,b){let E=be(m);M==="image"||M==="video"?A.makeEvictable(E,b):A.remove(E);},acquireMediaBlob(m){return A.acquire(be(m))},cleanupLocalMediaBlobs:se,cleanupConversationMediaBlobs:ln}}function We(e){return "group"in e?e.group:e.channel}function $e(e,t,n){if(t.conversationType!==e.ref.conversationType||t.conversationId!==e.ref.conversationId||t.status!=="sent"||t.recalled!==void 0||t.deletedForEveryone!==void 0||t.encryption.decryptFailed===true||!["text","image","video","voice","file","miniProgram","transfer"].includes(t.contentType))return false;if(n===null)return true;let r=We(n);return r.conversationType!==e.ref.conversationType||r.conversationId!==e.ref.conversationId||n.messageId!==t.id}function Hn(e){let{session:t,message:n,currentPinnedMessage:r,selfId:o,ownerId:a}=e;return t?.ref.conversationType==="group"&&(t.groupState===void 0||t.groupState==="active")&&o!==""&&a!==void 0&&a!==""&&o===a&&$e(t,n,r)}function Bn(e){let{session:t,message:n,currentPinnedMessage:r}=e;return t?.ref.conversationType==="channel"&&t.channelState==="active"&&t.channelPermissions?.moderateMessages===true&&$e(t,n,r)}function hr(e){return e.session?.ref.conversationType==="group"?Hn(e):e.session?.ref.conversationType==="channel"?Bn(e):false}function Xe(e,t){if(e===null)return false;let n=We(e);return n.conversationType===t.conversationType&&n.conversationId===t.conversationId&&e.messageId===t.id}function Sr(e,t,n,r,o){let a=e[r];if(a&&a.remark!=="")return a.remark;let s=n===""?void 0:t[n]?.[r];if(s!==void 0&&s!=="")return s;if(a&&a.nickname!=="")return a.nickname;let i=(o??"").trim();return i!==""?i:r.length>12?`${r.slice(0,6)}\u2026${r.slice(-4)}`:r}function Tr(e,t,n,r){let o=e[r];if(o?.remark!==void 0&&o.remark!=="")return o.remark;let a=t[n]?.[r]?.displayName;return a!==void 0&&a!==""?a:o?.nickname!==void 0&&o.nickname!==""?o.nickname:r}function Er(e,t,n,r){let o=t[n]?.[r]?.avatar;return o!==void 0&&o!==""?o:Ln(e,r)}function Ln(e,t){return e[t]?.avatar??""}function Pr(e,t){return e[t]?.nickname??""}function Rr(e){return (e.remark??"").trim()||e.nickname||e.id}function Ie(e,t,n=Date.now()){return e.senderId!==t||e.status!=="sent"||e.recalled!==void 0||e.deletedForEveryone!==void 0?false:n-(e.serverTime??e.createdAt)<=300*1e3}function Se(e,t,n,r=Date.now()){return e.senderId!==t||e.status!=="sent"||e.recalled!==void 0||e.deletedForEveryone!==void 0||e.body.text===void 0||e.body.text===""?false:r-(e.serverTime??e.createdAt)<=n}var I=Object.freeze({availability:"available",reason:"ok"});function x(e){return Object.freeze({availability:"unavailable",reason:e})}function Fn(e,t){return e.ref.conversationType===t.conversationType&&e.ref.conversationId===t.conversationId}function ne(e){if(e.status!=="sent"||e.recalled!==void 0||e.deletedForEveryone!==void 0||e.contentType==="system")return x("unsupported-type")}function Un(e){return e.status==="sent"&&e.recalled===void 0&&e.deletedForEveryone===void 0&&e.encryption.decryptFailed!==true&&["text","image","video","voice","file","miniProgram"].includes(e.contentType)}function Vn(e){return e.status==="sent"&&e.recalled===void 0&&e.deletedForEveryone===void 0}function W(e){return e.conversationType==="channel"?e.value.canMutateMessages:(e.conversationType==="group",e.value.canUseMessageActions)}function Ye(e,t,n={}){return t.availability==="available"?"":e==="direct"?n.mode!=="target"?"":t.reason==="blocked"||t.reason==="not-friend"?"directBlock.contactRequired":"":e==="group"?t.reason==="left"?"groupBlock.left":t.reason==="removed"?"groupBlock.removed":t.reason==="dismissed"?"groupBlock.dismissed":"groupBlock.unknownRestricted":e==="channel"?t.reason==="guest"?"channelBlock.guest":t.reason==="left"?"channelBlock.left":t.reason==="removed"?"channelBlock.removed":t.reason==="dismissed"?"channelBlock.dismissed":t.reason==="muted-all"?"channelBlock.allMembersMuted":t.reason==="muted-self"?"channelBlock.currentUserMuted":t.reason==="muted"?"channelBlock.muted":t.reason==="blacklisted"?"channelBlock.blacklisted":"channelBlock.unknownRestricted":""}function Nr(e,t){switch(t){case "conversation.openProfile":return e.conversationType==="direct"||e.conversationType==="group",e.value.canOpenProfile;case "conversation.readHistory":return e.conversationType==="direct"?I:e.value.canReadHistory;case "conversation.listPreferences":return e.conversationType==="channel"?e.value.state==="muted"?I:e.value.canOpenProfile:e.conversationType==="group"?e.value.canOpenProfile:I;case "composer.send":return e.value.canSendMessages;case "composer.mentionAll":return e.conversationType==="channel"?e.value.canMentionAll:I;case "profile.edit":return e.conversationType==="channel"||e.conversationType==="group"?e.value.canEditProfile:I;case "relationship.manage":return e.conversationType==="direct"?e.value.canManageRelationship:x("unsupported-type");case "members.view":return e.conversationType==="channel"||e.conversationType==="group"?e.value.canViewMembers:x("unsupported-type");case "members.manage":return e.conversationType==="channel"||e.conversationType==="group"?e.value.canManageMembers:x("unsupported-type");case "members.invite":return e.conversationType==="channel"||e.conversationType==="group"?e.value.canInviteMembers:x("unsupported-type");case "members.remove":return e.conversationType==="channel"?e.value.canRemoveMembers:e.conversationType==="group"?e.value.canManageMembers:x("unsupported-type");case "members.setAdmin":return e.conversationType==="channel"?e.value.canSetMemberAdmin:x("unsupported-type");case "ownership.transfer":return e.conversationType==="channel"||e.conversationType==="group"?e.value.canTransferOwnership:x("unsupported-type");case "conversation.leave":return e.conversationType==="channel"||e.conversationType==="group"?e.value.canLeave:x("unsupported-type");case "channel.manageMute":return e.conversationType==="channel"?e.value.canManageMute:x("unsupported-type");case "channel.setMemberPrivateChat":return e.conversationType==="channel"?e.value.canSetMemberPrivateChat:x("unsupported-type");case "channel.dismiss":return e.conversationType==="channel"?e.value.canDismiss:x("unsupported-type")}}function Or(e,t){let{message:n,pinnedMessage:r,selfId:o,snapshot:a,nowMs:s=Date.now()}=t;if(!Fn(a,n))return x("unsupported-type");let i=Xe(r,n);switch(e){case "message.forward":{let c=ne(n);return c!==void 0?c:ba(n)?I:x("unsupported-type")}case "message.multiSelect":{let c=ne(n);return c!==void 0?c:i?x("message-protected"):I}case "message.reply":{let c=ne(n);return c!==void 0?c:a.conversationType==="direct"?I:W(a)}case "message.recall":return i?x("message-protected"):a.conversationType==="direct"?Ie(n,o,s)?I:x("role-insufficient"):W(a).availability!=="available"?W(a):Ie(n,o,s)?I:x("role-insufficient");case "message.edit":return i?x("message-protected"):a.conversationType==="direct"?Se(n,o,Z,s)?I:x("role-insufficient"):W(a).availability!=="available"?W(a):Se(n,o,Z,s)?I:x("role-insufficient");case "message.pin":return i?x("message-protected"):Un(n)&&(a.conversationType==="group"||a.conversationType==="channel")?a.value.canPinMessages:x("unsupported-type");case "message.unpin":return a.conversationType==="group"||a.conversationType==="channel"?a.value.canUnpinMessages:x("unsupported-type");case "message.deleteLocal":{if(i)return x("message-protected");let c=ne(n);return c!==void 0?c:n.contentType==="unknown"?x("unsupported-type"):a.conversationType==="direct"||a.conversationType==="group"?I:x("unsupported-type")}case "message.deleteForEveryone":return i?x("message-protected"):a.conversationType!=="channel"||!Vn(n)?x("unsupported-type"):a.value.canDeleteMessagesForEveryone}}function Dr(e,t){let{selfId:n,snapshot:r,targetRole:o="unknown",targetUserId:a}=t;if(a===""||a===n)return x("role-insufficient");if(r.conversationType==="group"){if(e!=="members.removeTarget")return x("unsupported-type");let i=r.value.canManageMembers;return i.availability!=="available"?i:r.value.ownerId!==void 0&&a===r.value.ownerId?x("role-insufficient"):I}if(r.conversationType!=="channel")return x("unsupported-type");if(e==="members.removeTarget"||e==="members.editNicknameTarget"){let i=r.value.canRemoveMembers;return i.availability!=="available"?i:r.value.role==="owner"?o==="member"||o==="admin"?I:x("role-insufficient"):r.value.role==="admin"&&o==="member"?I:x("role-insufficient")}let s=r.value.canSetMemberAdmin;return s.availability!=="available"?s:r.value.role!=="owner"?x("role-insufficient"):e==="members.setAdminTarget"?o==="member"?I:x("role-insufficient"):o==="admin"?I:x("role-insufficient")}function Je(e){if(e===void 0||e==="active")return "";switch(e){case "guest":return "channelBlock.guest";case "left":return "channelBlock.left";case "removed":return "channelBlock.removed";case "dismissed":return "channelBlock.dismissed";case "muted":return "channelBlock.muted";case "blacklisted":return "channelBlock.blacklisted";case "unknown_restricted":return "channelBlock.unknownRestricted"}}function qe(e,t=Date.now()){if(e?.channelState===void 0)return "channelBlock.unknownRestricted";let n=fa({channelState:e.channelState,snapshot:e.channelAccessSnapshot,permissions:e.channelPermissions,nowMs:t});return n.channelState==="muted"?n.muteReason==="all-members"?"channelBlock.allMembersMuted":n.muteReason==="current-user"?"channelBlock.currentUserMuted":"channelBlock.muted":n.channelState!=="active"?Je(n.channelState)||"channelBlock.unknownRestricted":n.permissions.sendMessages?"":"channelBlock.unknownRestricted"}var N=9;function zn(e={}){let t=typeof navigator<"u"?navigator:void 0,n=e.deviceMemoryGb??(typeof t?.deviceMemory=="number"?t.deviceMemory:4),r=Math.floor(n*1024*1024*1024/8);return Math.min(512*1024*1024,Math.max(64*1024*1024,r))}async function Qe(e,t,n={}){if(e.length===0)return {processedCount:0,rejectedByLimit:false};let r=e.length>9;r&&n.onRejectedByLimit?.({reason:"count-limit",maxCount:9,selectedCount:e.length});let o=e.slice(0,9);if(n.startAll)return await Promise.all(o.map(g=>t(g).catch(()=>false))),{processedCount:o.length,rejectedByLimit:r};let a=zn(n),s=Math.max(1,Math.floor(n.maxConcurrency??Number.POSITIVE_INFINITY)),i=0,c=new Set;for(let g of o){for(;c.size>0&&(c.size>=s||i+g.size>a);)await Promise.race(c);i+=g.size;let f=t(g).catch(()=>false).finally(()=>{i-=g.size,c.delete(f);});c.add(f);}return await Promise.all(c),{processedCount:o.length,rejectedByLimit:r}}async function Te(e){let t=e.type.trim().toLowerCase(),n=new Uint8Array(await e.slice(0,6).arrayBuffer()),r=n.length===6?String.fromCharCode(...n):"",o=r==="GIF87a"||r==="GIF89a",a=t==="image/gif";return o&&(a||t==="")?"gif":o||a?"invalid-gif":"not-gif"}async function Ee(e){return await Te(e)==="gif"}var Kn=new Set(["group","channel"]),Wn=new Set(["group","channel"]),$n=30*1024*1024,Ze=200*1024*1024,en=200*1024*1024,Xn=3*1024*1024;function te(e,t,n){let r=e.getConversationHandle();if(!(r===void 0||n===void 0||n==="supergroup"))return r.ref.conversationId===t&&r.ref.conversationType===n?r:void 0}function re(e,t){return e.retainConversationHandle?.(t)??(()=>{})}function Pe(e,t){try{return e.getSnapshot().messages.find(n=>n.contentType==="video"?n.body.video?.url===t:n.contentType==="image"?n.body.image?.url===t:n.contentType==="sticker"?n.body.sticker?.url===t:!1)?.id}catch{return}}function Re(e){if(e===void 0)return;let t=e.atAll?[{userId:"0",displayName:""}]:[];for(let n of e.atUserIds)t.push({userId:n,displayName:e.atUsersName?.[n]??n});return t.length===0?void 0:t}function Yn(e){if(e===void 0||e==="active")return "";switch(e){case "left":return "groupBlock.left";case "removed":return "groupBlock.removed";case "dismissed":return "groupBlock.dismissed";default:return "groupBlock.unknownRestricted"}}function Kr(e){return Kn.has(e)}function Jn(e){return Wn.has(e)}function Wr(e,t=Date.now()){return e?.type==="channel"?qe(e,t):e?.type==="group"?Yn(e.groupState):""}function O(e,t,n,r={}){let o=e.getProductClient();if(o===null)return "";let a=n??o.conversations.list().find(i=>i.ref.conversationId===t)?.ref.conversationType;if(a===void 0||a==="supergroup")return "";let s=o.capabilities.get({conversationType:a,conversationId:t}).value.canSendMessages;return Ye(a,s,r)}async function $r(e,t,n){let r=e.getClient(),o=t.text.trim();if(r===null)return n.setNote(n.t("common.notConnected")),false;if(t.conversationId==="")return n.setNote(n.t("common.selectOrOpenConversation")),false;if(o==="")return false;let a=e.getGeneration();try{let s=t.conversationType;if(s===void 0)return n.setNote(n.t("common.conversationTypeNotReady")),!1;let i=te(n,t.conversationId,s);if(i===void 0)return n.setNote(n.t("common.conversationNotReady")),!1;let c=O(e,t.conversationId,s);if(c!=="")return n.setNote(n.t(c)),!1;let g=re(n,i);try{let f=await i.messages.sendText(o,{...Jn(s)?{mentions:Re(t.mention)}:{},...t.refMessageId===void 0?{}:{replyToMessageId:t.refMessageId}});return n.refreshActiveMessages(),f.ok?e.getGeneration()===a:(e.getGeneration()===a&&n.setNote(n.t("send.failed",{reason:f.error.code})),!1)}finally{g();}}catch(s){return e.getGeneration()===a&&n.setNote(n.t("send.failed",{reason:s instanceof Error?s.message:String(s)})),false}}async function nn(e,t,n){let{kind:r,file:o,conversationId:a,conversationType:s,refMessageId:i}=t,c=n.t(`label.${r}`);if(e.getClient()===null)return n.setNote(n.t("common.notConnected")),false;if(a===""||s===void 0)return n.setNote(n.t("common.conversationNotReady")),false;let f=te(n,a,s);if(f===void 0)return n.setNote(n.t("common.conversationNotReady")),false;let v=O(e,a,s);if(v!=="")return n.setNote(n.t(v)),false;let u=r==="video"?Ze:r==="file"?en:r==="sticker"?Xn:$n;if(o.size>u)return n.pushMediaLimitItem({name:o.name,sizeMb:o.size/1024/1024,label:c,maxMb:Math.round(u/1024/1024)}),n.showWarning?.(n.t("send.mediaTooLarge",{name:o.name,label:c,maxMb:Math.round(u/1024/1024)})),false;let y=e.getGeneration();if(o.size===0)return e.getGeneration()===y&&n.setNote(n.t("send.mediaEmpty",{label:c})),false;if(r==="sticker"&&!await Ee(o))return e.getGeneration()===y&&n.setNote(n.t("send.mediaFailed",{label:c,reason:"GIF signature mismatch"})),false;let C=re(n,f),d;try{d=r==="file"?void 0:e.createLocalMediaPreview(o);let l=t.localPreviewMetadata;if(e.getGeneration()!==y)return d!==void 0&&e.discardLocalMediaPreview(d),!1;let p=await(r==="image"?f.messages.sendImage(o,{...d===void 0?{}:{localPreviewUrl:d},...l===void 0?{}:{localPreviewMetadata:l},...i===void 0?{}:{replyToMessageId:i}}):r==="video"?f.messages.sendVideo(o,{...d===void 0?{}:{localPreviewUrl:d},...l===void 0?{}:{localPreviewMetadata:l},...i===void 0?{}:{replyToMessageId:i}}):r==="sticker"?f.messages.sendGif(o,{...d===void 0?{}:{localPreviewUrl:d},...i===void 0?{}:{replyToMessageId:i}}):f.messages.sendFile(o,{fileName:o.name,...i===void 0?{}:{replyToMessageId:i}}));if(n.refreshActiveMessages(),!p.ok){if(e.getGeneration()===y&&(p.error.code==="IM_SDK_VIDEO_DURATION_TOO_LONG"?n.showWarning?.(n.t("send.videoTooLong",{name:o.name,maxMinutes:5})):p.error.code==="IM_SDK_VIDEO_DURATION_UNAVAILABLE"?n.showWarning?.(n.t("send.videoDurationUnavailable",{name:o.name})):n.setNote(p.error.code==="IM_SDK_MEDIA_CANCELLED"?n.t("send.mediaCancelled",{label:c}):n.t("send.mediaFailed",{label:c,reason:p.error.code}))),d!==void 0){let h=Pe(f,d);h===void 0?e.discardLocalMediaPreview(d):e.trackLocalMediaPreview({conversationId:a,conversationType:s,messageId:h},d);}return !1}return e.getGeneration()===y}catch(l){if(e.getGeneration()===y&&n.setNote(n.t("send.mediaFailed",{label:c,reason:l instanceof Error?l.message:String(l)})),d!==void 0){let p=Pe(f,d);p===void 0?e.discardLocalMediaPreview(d):e.trackLocalMediaPreview({conversationId:a,conversationType:s,messageId:p},d);}return false}finally{C();}}async function Xr(e,t,n){let{kind:r,file:o,messageId:a,conversationId:s,conversationType:i}=t,c=n.t(`label.${r}`);if(e.getClient()===null)return n.setNote(n.t("common.notConnected")),false;let g=te(n,s,i);if(g===void 0)return n.setNote(n.t("common.conversationNotReady")),false;let f=O(e,s,i);if(f!=="")return n.setNote(n.t(f)),false;let v=r==="video"?Ze:en;if(o.size>v)return n.pushMediaLimitItem({name:o.name,sizeMb:o.size/1024/1024,label:c,maxMb:Math.round(v/1024/1024)}),n.showWarning?.(n.t("send.mediaTooLarge",{name:o.name,label:c,maxMb:Math.round(v/1024/1024)})),false;let u=e.getGeneration();if(o.size===0)return e.getGeneration()===u&&n.setNote(n.t("send.mediaEmpty",{label:c})),false;let y=re(n,g),C;try{if(C=r==="video"?e.createLocalMediaPreview(o):void 0,e.getGeneration()!==u)return C!==void 0&&e.discardLocalMediaPreview(C),!1;let d=await(r==="video"?g.messages.replaceInterruptedVideo(a,o,{...C===void 0?{}:{localPreviewUrl:C}}):g.messages.replaceInterruptedFile(a,o,{fileName:o.name}));if(n.refreshActiveMessages(),!d.ok){e.getGeneration()===u&&(d.error.code==="IM_SDK_VIDEO_DURATION_TOO_LONG"?n.showWarning?.(n.t("send.videoTooLong",{name:o.name,maxMinutes:5})):d.error.code==="IM_SDK_VIDEO_DURATION_UNAVAILABLE"?n.showWarning?.(n.t("send.videoDurationUnavailable",{name:o.name})):n.setNote(n.t("send.mediaFailed",{label:c,reason:d.error.code})));let l=C!==void 0&&g.getSnapshot().messages.some(p=>p.id===a&&p.contentType==="video"&&p.body.video?.url===C);return C!==void 0&&!l?e.discardLocalMediaPreview(C):C!==void 0&&e.trackLocalMediaPreview({conversationId:s,conversationType:i,messageId:a},C),!1}return e.getGeneration()===u}catch(d){return e.getGeneration()===u&&n.setNote(n.t("send.mediaFailed",{label:c,reason:d instanceof Error?d.message:String(d)})),C!==void 0&&(Pe(g,C)===a?e.trackLocalMediaPreview({conversationId:s,conversationType:i,messageId:a},C):e.discardLocalMediaPreview(C)),false}finally{y();}}function qn(e){let t=e.getMediaConfig()?.buckets.voice;return t!==void 0&&t.bucket!==""&&t.host!==""}async function Yr(e,t,n){let{payload:r,conversationId:o,conversationType:a,refMessageId:s}=t;if(e.getClient()===null)return n.setNote(n.t("common.notConnected")),false;if(o===""||a===void 0)return n.setNote(n.t("common.conversationNotReady")),false;let c=te(n,o,a);if(c===void 0)return n.setNote(n.t("common.conversationNotReady")),false;let g=O(e,o,a);if(g!=="")return n.setNote(n.t(g)),false;if(r.data.length===0)return n.setNote(n.t("send.voiceEmpty")),false;if(!qn(e))return n.setNote(n.t("send.voiceStorageNotConfigured")),false;let f=e.getGeneration(),v=re(n,c);try{let u=new File([r.data],r.filename,{type:r.mimeType}),y=await c.messages.sendVoice(u,{durationMs:r.durationMs,waveform:r.waveform,...s===void 0?{}:{replyToMessageId:s}});return n.refreshActiveMessages(),y.ok?e.getGeneration()!==f?!1:(e.putSelfVoiceBytes(y.message.id,r.data),!0):(e.getGeneration()===f&&n.setNote(y.error.code==="IM_SDK_MEDIA_CANCELLED"?n.t("send.voiceCancelled"):n.t("send.voiceFailed",{reason:y.error.code})),!1)}catch(u){return e.getGeneration()===f&&n.setNote(n.t("send.voiceFailed",{reason:u instanceof Error?u.message:String(u)})),false}finally{v();}}async function Jr(e,t,n){let r=t.files.slice(0,9);t.files.length>9&&(n.setMediaBatchLimit({selectedCount:t.files.length,maxCount:9}),n.showWarning?.(n.t("send.mediaCountLimit",{maxCount:9,ignoredCount:t.files.length-9})));let o=e.getGeneration(),a=[];for(let i of r){let c=await Te(i);if(e.getGeneration()!==o)break;let g=c!=="not-gif"?"sticker":i.type.startsWith("image/")?"image":i.type.startsWith("video/")?"video":"file";a.push(nn(e,{kind:g,file:i,conversationId:t.conversationId,conversationType:t.conversationType,...t.refMessageId===void 0?{}:{refMessageId:t.refMessageId}},n));}let s=await Promise.all(a.map(i=>i.catch(()=>false)));return Object.freeze({selectedCount:t.files.length,processedCount:a.length,acceptedCount:s.filter(Boolean).length,rejectedByLimit:t.files.length>9})}async function qr(e,t,n){let r=0,o=await Qe(t.files,async a=>{let s=await nn(e,{kind:"file",file:a,conversationId:t.conversationId,conversationType:t.conversationType,...t.refMessageId===void 0?{}:{refMessageId:t.refMessageId}},n);return s&&(r+=1),s},{startAll:true,onRejectedByLimit:a=>{n.setMediaBatchLimit({selectedCount:a.selectedCount,maxCount:a.maxCount}),n.showWarning?.(n.t("send.mediaCountLimit",{maxCount:a.maxCount,ignoredCount:a.selectedCount-a.maxCount}));}});return Object.freeze({selectedCount:t.files.length,processedCount:o.processedCount,acceptedCount:r,rejectedByLimit:o.rejectedByLimit})}async function Qr(e,t,n){let r=e.getClient(),o=n.getConversationHandle();if(r===null||o===void 0)return n.setNote(n.t("send.cancelFailed")),false;let a=e.getGeneration();try{let s=r.media.getSnapshot().filter(i=>i.direction==="upload"&&i.messageId===t&&i.ref.conversationType===o.ref.conversationType&&i.ref.conversationId===o.ref.conversationId);return s.length!==1?(n.setNote(n.t("send.cancelFailed")),!1):(await r.media.cancel(s[0].id),e.getGeneration()!==a||n.getConversationHandle()!==o?!1:(n.refreshActiveMessages(),!0))}catch{return e.getGeneration()===a&&n.getConversationHandle()===o&&n.setNote(n.t("send.cancelFailed")),false}}async function Zr(e,t,n){let r=e.getClient();if(r===null)return false;let o=n.getConversationHandle();if(o===void 0)return n.setNote(n.t("send.retryFailed")),false;let a=e.getGeneration(),s=r.media.getSnapshot().find(c=>c.direction==="upload"&&(c.state==="failed"||c.state==="canceled")&&c.messageId===t&&c.ref.conversationType===o.ref.conversationType&&c.ref.conversationId===o.ref.conversationId);if(s!==void 0)try{return await r.media.retry(s.id),e.getGeneration()!==a?!1:(n.refreshActiveMessages(),!0)}catch{return e.getGeneration()===a&&n.setNote(n.t("send.retryFailed")),false}let i=r.outbox.getSnapshot().find(c=>c.messageId===t);if(i===void 0||i.ref.conversationType!==o.ref.conversationType||i.ref.conversationId!==o.ref.conversationId)return n.setNote(n.t("send.retryFailed")),false;try{return await r.outbox.retry(t),e.getGeneration()!==a?!1:(n.refreshActiveMessages(),!0)}catch{return e.getGeneration()===a&&n.setNote(n.t("send.retryFailed")),false}}var ot={};a(ot,{executeForwardMessages:()=>tt,forwardMessages:()=>rt});function Qn(e,t){let n=e.getConversationHandle();if(n!==void 0)return t.every(r=>r.conversationType!=="supergroup"&&r.conversationType===n.ref.conversationType&&r.conversationId===n.ref.conversationId)?n:void 0}function Zn(e){let t=e?.code;return typeof t=="string"&&t!==""?t:"unknown"}function et(e,t){let n=e;return typeof n?.code=="string"&&typeof n.category=="string"&&typeof n.operation=="string"&&typeof n.retryable=="boolean"?n:Object.freeze({code:"IM_CHAT_KIT_FORWARD_FAILED",category:"state",operation:"message-operations.forward",retryable:false,conversation:Object.freeze({...t.ref}),cause:e})}function nt(e,t){return t.every(n=>n.conversationType!=="supergroup"&&n.conversationType===e.ref.conversationType&&n.conversationId===e.ref.conversationId)}async function tt(e,t){let n="forward";if(e.getProductClient()===null||e.getConnectionState()!=="authenticated"||t.handle===void 0||!nt(t.handle,t.messages))return Object.freeze({ok:false,operation:n,reason:"not-ready"});if(t.messages.length===0||t.targets.length===0)return Object.freeze({ok:false,operation:n,reason:"empty-input"});for(let f of t.targets){let v=O(e,f.conversationId,f.conversationType,{mode:"target"});if(v!=="")return Object.freeze({ok:false,operation:n,reason:"target-blocked",blockReason:v})}let o=t.messages.filter(ba),a=t.messages.length-o.length;if(o.length===0)return Object.freeze({ok:false,operation:n,reason:"all-skipped",skippedCount:a});let s=e.getGeneration(),i;try{i=await t.handle.messages.forward(o.map(f=>f.id),t.targets);}catch(f){return e.getGeneration()!==s?Object.freeze({ok:false,operation:n,reason:"stale"}):Object.freeze({ok:false,operation:n,reason:"sdk-rejected",error:et(f,t.handle)})}if(e.getGeneration()!==s)return Object.freeze({ok:false,operation:n,reason:"stale"});let c=i.sent.length,g=a+i.skippedSourceMessageIds.length;return Object.freeze(c===0?{ok:false,operation:n,reason:i.failed.length>0?"sdk-rejected":"all-skipped",...i.failed[0]===void 0?{}:{error:i.failed[0].error},result:i,skippedCount:g}:{ok:true,operation:n,result:i,sentCount:c,skippedCount:g})}async function rt(e,t,n){if(e.getClient()===null)return n.setNote(n.t("common.notConnected")),null;if(t.messages.length===0||t.targets.length===0)return n.setNote(n.t("forward.emptyInput")),null;let o=Qn(n,t.messages);if(o===void 0)return n.setNote(n.t("common.conversationNotReady")),null;for(let v of t.targets){let u=O(e,v.conversationId,v.conversationType,{mode:"target"});if(u!=="")return n.setNote(n.t(u)),null}let a=t.messages.filter(ba),s=t.messages.length-a.length;if(a.length===0)return n.setNote(n.t("forward.allSkipped")),null;let i=e.getGeneration(),c;try{c=await o.messages.forward(a.map(v=>v.id),t.targets);}catch(v){return e.getGeneration()===i&&n.getConversationHandle()===o&&n.setNote(n.t("forward.failed",{reason:Zn(v)})),null}if(e.getGeneration()!==i||n.getConversationHandle()!==o)return c;let g=c.sent.length,f=s+c.skippedSourceMessageIds.length;if(g===0){let v=c.failed[0];v!==void 0?n.setNote(n.t("forward.failed",{reason:v.error.code})):f>0?n.setNote(n.t("forward.allSkipped")):n.setNote(n.t("forward.failed",{reason:"unknown"}));}else f>0?n.setNote(n.t("forward.partialSkipped",{skipped:f,ok:g})):n.setNote(n.t("forward.done"));return n.refreshActiveMessages?.(),c}var vt={};a(vt,{deleteChannelMessageForEveryone:()=>gt,editMessage:()=>pt,executeDeleteChannelMessageForEveryone:()=>ft,executeDeleteLocalMessage:()=>lt,executeRecallMessage:()=>dt,executeRetryMessage:()=>ut,recallMessage:()=>mt});var at={IM_SDK_MESSAGE_NOT_FOUND:"recall.not-found",IM_SDK_MESSAGE_STATE_MISMATCH:"recall.not-found",IM_SDK_RECALL_NOT_OWN:"recall.not-own",IM_SDK_RECALL_NOT_SENT:"recall.not-sent",IM_SDK_RECALL_EXPIRED:"recall.expired",IM_SDK_RECALL_UNSUPPORTED:"recall.unsupported",IM_SDK_RECALL_TIMEOUT:"recall.timeout",IM_SDK_RECALL_FAILED:"recall.failed",IM_SDK_RECALL_DISCONNECTED:"recall.disconnected"},it={IM_SDK_MESSAGE_NOT_FOUND:"edit.not-found",IM_SDK_MESSAGE_STATE_MISMATCH:"edit.not-found",IM_SDK_EDIT_NOT_OWN:"edit.not-own",IM_SDK_EDIT_NOT_SENT:"edit.not-sent",IM_SDK_EDIT_RECALLED:"edit.recalled",IM_SDK_EDIT_DELETED:"edit.deleted",IM_SDK_EDIT_EXPIRED:"edit.expired",IM_SDK_EDIT_UNSUPPORTED:"edit.unsupported",IM_SDK_DIRECT_MENTION_UNSUPPORTED:"edit.unsupported",IM_SDK_EDIT_EMPTY:"edit.empty",IM_SDK_EDIT_RESTRICTED:"edit.restricted",IM_SDK_EDIT_CONTENT_UNSUPPORTED:"edit.unsupported-content",IM_SDK_EDIT_KEY_UNAVAILABLE:"edit.no-key",IM_SDK_EDIT_ENCRYPT_FAILED:"edit.encrypt-failed",IM_SDK_EDIT_TIMEOUT:"edit.timeout",IM_SDK_EDIT_FAILED:"edit.failed",IM_SDK_EDIT_DISCONNECTED:"edit.disconnected"},st={IM_SDK_MESSAGE_NOT_FOUND:"channelDelete.notFound",IM_SDK_CHANNEL_DELETE_UNSUPPORTED:"channelDelete.unsupported",IM_SDK_CHANNEL_DELETE_NOT_SENT:"channelDelete.notSent",IM_SDK_CHANNEL_DELETE_UNAVAILABLE:"channelDelete.unavailable",IM_SDK_CHANNEL_DELETE_FORBIDDEN:"channelDelete.forbidden",IM_SDK_CHANNEL_DELETE_TIMEOUT:"channelDelete.timeout",IM_SDK_CHANNEL_DELETE_FAILED:"channelDelete.failed",IM_SDK_CHANNEL_DELETE_DISCONNECTED:"channelDelete.disconnected"};function ke(e,t){let n=e.getConversationHandle();if(!(n===void 0||t.conversationType==="supergroup"))return n.ref.conversationType===t.conversationType&&n.ref.conversationId===t.conversationId?n:void 0}function we(e){return typeof e?.code=="string"?e.code:void 0}function ct(e){return typeof e=="object"&&e!==null&&typeof e.code=="string"&&typeof e.category=="string"&&typeof e.operation=="string"&&typeof e.retryable=="boolean"}function oe(e,t,n){return ct(e)?e:Object.freeze({code:"IM_CHAT_KIT_MESSAGE_OPERATION_FAILED",category:"state",operation:`message-operations.${t}`,retryable:false,...n===void 0?{}:{conversation:Object.freeze({...n.ref})},cause:e})}function Ae(e,t){return e!==void 0&&t.conversationType!=="supergroup"&&e.ref.conversationType===t.conversationType&&e.ref.conversationId===t.conversationId}async function dt(e,t){let n="recall";if(!Ae(t.handle,t.message))return Object.freeze({ok:false,operation:n,reason:"not-ready"});let r=e.getGeneration();try{await t.handle.messages.recall(t.message.id);}catch(o){return e.getGeneration()!==r?Object.freeze({ok:false,operation:n,reason:"stale"}):Object.freeze({ok:false,operation:n,reason:"sdk-rejected",error:oe(o,n,t.handle)})}return e.getGeneration()===r?Object.freeze({ok:true,operation:n}):Object.freeze({ok:false,operation:n,reason:"stale"})}async function lt(e,t){let n="delete-local";if(!Ae(t.handle,t.message)||t.handle.ref.conversationType!=="direct"&&t.handle.ref.conversationType!=="group"||t.message.conversationType!=="direct"&&t.message.conversationType!=="group")return Object.freeze({ok:false,operation:n,reason:"not-ready"});let r=e.getGeneration();try{await t.handle.messages.deleteLocal(t.message.id);}catch(o){return e.getGeneration()!==r?Object.freeze({ok:false,operation:n,reason:"stale"}):Object.freeze({ok:false,operation:n,reason:"sdk-rejected",error:oe(o,n,t.handle)})}return e.getGeneration()===r?Object.freeze({ok:true,operation:n}):Object.freeze({ok:false,operation:n,reason:"stale"})}async function ft(e,t){let n="delete-for-everyone";if(!Ae(t.handle,t.message)||t.handle.ref.conversationType!=="channel"||t.message.conversationType!=="channel")return Object.freeze({ok:false,operation:n,reason:"not-ready"});let r=e.getGeneration();try{await t.handle.messages.deleteForEveryone(t.message.id);}catch(o){return e.getGeneration()!==r?Object.freeze({ok:false,operation:n,reason:"stale"}):Object.freeze({ok:false,operation:n,reason:"sdk-rejected",error:oe(o,n,t.handle)})}return e.getGeneration()===r?Object.freeze({ok:true,operation:n}):Object.freeze({ok:false,operation:n,reason:"stale"})}async function ut(e,t){let n="retry",r=e.getProductClient(),o=t.handle;if(r===null||o===void 0)return Object.freeze({ok:false,operation:n,reason:"not-ready"});let a=e.getGeneration();try{let s=r.media.getSnapshot().find(i=>i.direction==="upload"&&(i.state==="failed"||i.state==="canceled")&&i.messageId===t.messageId&&i.ref.conversationType===o.ref.conversationType&&i.ref.conversationId===o.ref.conversationId);if(s!==void 0)await r.media.retry(s.id);else {let i=r.outbox.getSnapshot().find(c=>c.messageId===t.messageId);if(i===void 0||i.ref.conversationType!==o.ref.conversationType||i.ref.conversationId!==o.ref.conversationId)return Object.freeze({ok:!1,operation:n,reason:"not-ready"});await r.outbox.retry(t.messageId);}}catch(s){return e.getGeneration()!==a?Object.freeze({ok:false,operation:n,reason:"stale"}):Object.freeze({ok:false,operation:n,reason:"sdk-rejected",error:oe(s,n,o)})}return e.getGeneration()===a?Object.freeze({ok:true,operation:n}):Object.freeze({ok:false,operation:n,reason:"stale"})}async function mt(e,t,n){let r=ke(n,t.message);if(r===void 0){n.setNote(n.t("common.conversationNotReady"));return}let o=e.getGeneration();try{await r.messages.recall(t.message.id);}catch(a){if(e.getGeneration()!==o)return;n.setNote(n.t(at[we(a)??""]??"recall.failed"));}}async function gt(e,t,n){let r=ke(n,t.message);if(r===void 0||r.ref.conversationType!=="channel"||t.message.conversationType!=="channel"){n.setNote(n.t("common.conversationNotReady"));return}let o=e.getGeneration();try{await r.messages.deleteForEveryone(t.message.id);}catch(a){if(e.getGeneration()!==o)return;n.setNote(n.t(st[we(a)??""]??"channelDelete.failed"));}}async function pt(e,t,n){let r=ke(n,t.message);if(r===void 0)return n.setNote(n.t("common.conversationNotReady")),false;let o=e.getGeneration(),a=Re(t.mention);try{await r.messages.editText(t.message.id,t.text,{...a===void 0?{}:{mentions:a}});}catch(s){return e.getGeneration()!==o||n.setNote(n.t(it[we(s)??""]??"edit.failed")),false}return e.getGeneration()===o}var Tt={};a(Tt,{executePinMessage:()=>Ct,executeSyncPinnedMessage:()=>Mt,executeUnpinMessage:()=>xt,getPinnedMessage:()=>It,peekPinnedMessage:()=>St,pinMessage:()=>bt,syncPinnedMessage:()=>rn,unpinMessage:()=>ht});function B(e,t){let n=e.getProductClient();return n===null||e.getConnectionState()!=="authenticated"?(t?.setNote(t.t("common.notConnected")),null):n}function yt(e){switch(e){case "permission":return "pinned.forbidden";case "network":return "pinned.network";case "contract":return "pinned.contract";case "unsupported":return "pinned.unsupported";default:return "pinned.failed"}}function tn(e){return typeof e=="object"&&e!==null&&typeof e.category=="string"}function _e(e,t,n){if(tn(e))return e;let r=typeof e?.kind=="string"?e.kind:void 0,o=r==="forbidden"?"permission":r==="network"?"network":r==="unsupported"?"unsupported":r==="contract"?"contract":"state";return Object.freeze({code:"IM_CHAT_KIT_PINNED_MESSAGE_OPERATION_FAILED",category:o,operation:`message-operations.${t}`,retryable:o==="network",conversation:Object.freeze({...n}),cause:e})}async function Ct(e,t){let r=B(e);if(r===null||t.message.conversationId!==t.conversation.conversationId||t.message.conversationType!==t.conversation.conversationType)return Object.freeze({ok:false,operation:"pin",reason:"not-ready"});let o=e.getGeneration();try{let a=t.conversation.conversationType==="group"?await r.groups.pinMessage(t.conversation,t.message.id):await r.channels.pinMessage(t.conversation,t.message.id);return e.getGeneration()===o?Object.freeze({ok:!0,operation:"pin",value:a}):Object.freeze({ok:!1,operation:"pin",reason:"stale"})}catch(a){return e.getGeneration()!==o?Object.freeze({ok:false,operation:"pin",reason:"stale"}):Object.freeze({ok:false,operation:"pin",reason:"sdk-rejected",error:_e(a,"pin",t.conversation)})}}async function xt(e,t){let n="unpin",r=B(e);if(r===null)return Object.freeze({ok:false,operation:n,reason:"not-ready"});let o=e.getGeneration();try{return t.conversationType==="group"?await r.groups.unpinMessage(t):await r.channels.unpinMessage(t),e.getGeneration()===o?Object.freeze({ok:!0,operation:n}):Object.freeze({ok:!1,operation:n,reason:"stale"})}catch(a){return e.getGeneration()!==o?Object.freeze({ok:false,operation:n,reason:"stale"}):Object.freeze({ok:false,operation:n,reason:"sdk-rejected",error:_e(a,n,t)})}}async function Mt(e,t){let n="sync-pin",r=B(e);if(r===null)return Object.freeze({ok:false,operation:n,reason:"not-ready"});let o=e.getGeneration();try{let a=t.conversationType==="group"?await r.groups.getPinnedMessage(t):await r.channels.getPinnedMessage(t);return e.getGeneration()===o?Object.freeze({ok:!0,operation:n,value:a}):Object.freeze({ok:!1,operation:n,reason:"stale"})}catch(a){return e.getGeneration()!==o?Object.freeze({ok:false,operation:n,reason:"stale"}):Object.freeze({ok:false,operation:n,reason:"sdk-rejected",error:_e(a,n,t)})}}function Ne(e,t,n,r){if(e.getGeneration()!==t)return;let o=tn(r)?yt(r.category):"pinned.failed";n.setNote(n.t(o));}async function bt(e,t,n){let r=B(e,n);if(r===null)return null;let o=e.getGeneration();try{let a=t.conversation.conversationType==="group"?await r.groups.pinMessage(t.conversation,t.message.id):await r.channels.pinMessage(t.conversation,t.message.id);return e.getGeneration()===o?a:null}catch(a){return Ne(e,o,n,a),null}}async function ht(e,t,n){let r=B(e,n);if(r===null)return false;let o=e.getGeneration();try{return t.conversationType==="group"?await r.groups.unpinMessage(t):await r.channels.unpinMessage(t),e.getGeneration()===o}catch(a){return Ne(e,o,n,a),false}}async function It(e,t,n){let r=await rn(e,t,n);return r.ok?r.value:null}async function rn(e,t,n){let r=B(e,n);if(r===null)return {ok:false};let o=e.getGeneration();try{let a=t.conversationType==="group"?await r.groups.getPinnedMessage(t):await r.channels.getPinnedMessage(t);return e.getGeneration()===o?{ok:!0,value:a}:{ok:!1}}catch(a){return Ne(e,o,n,a),{ok:false}}}function St(e,t){let n=e.getProductClient();return n===null?null:t.conversationType==="group"?n.groups.peekPinnedMessage(t):n.channels.peekPinnedMessage(t)}var Ht={};a(Ht,{applyGroupMemberNickname:()=>Nt,applyGroupMemberRename:()=>At,applyMemberNames:()=>_t,clearGroupMemberNicknameProjection:()=>Ot,ensureSelfProfile:()=>Dt,prewarmActiveSenders:()=>jt,prewarmMemberAvatars:()=>Gt,refreshStaleSenders:()=>dn,resolveChannelMembers:()=>wt,resolveGroupMembers:()=>cn,resolveSenderName:()=>kt});var Et=new WeakMap,Pt=new WeakMap,Rt=new WeakMap;function Oe(e,t){let n=e.get(t);return n===void 0&&(n=new Map,e.set(t,n)),n}function an(e,t){return e===void 0?t===void 0?0:-1:t===void 0?1:e.length!==t.length?e.length>t.length?1:-1:e===t?0:e>t?1:-1}var on=new WeakMap;function T(e){return (e??"").trim()}function L(e){let t=on.get(e),n=e.getGeneration();return (t===void 0||t.generation!==n)&&(t={generation:n,groups:new Map},on.set(e,t)),t}function ae(e,t,n,r={}){let o=L(e).groups.get(t);if(o===void 0||o.size===0)return n;let a={...n};for(let[s,i]of o){let c=n[s];if((i===""?c===void 0:c===i)&&r.reconcile===true){o.delete(s);continue}i===""?delete a[s]:a[s]=i;}return o.size===0&&L(e).groups.delete(t),a}function sn(e,t,n){let r=L(e).groups.get(t);if(r!==void 0){if(n===void 0){L(e).groups.delete(t);return}r.delete(n.trim()),r.size===0&&L(e).groups.delete(t);}}function _(e,t,n,r){e.getDiagnostics().record("warn","chat-kit","profile",t,()=>({...r===void 0?{}:{data:r},error:{message:"\u8D44\u6599\u9884\u70ED\u5931\u8D25",data:n}}));}function kt(e,t,n){let r=e.getClient(),o=e.getCredentials().userId;if(t===""||t==="system"||t===o||r===null)return Promise.resolve(false);let a=n?.forceRefresh===true,s=Oe(Et,e),i=a?void 0:s.get(t);if(i!==void 0)return i;let c=e.getSenderProfileCache();if(!a&&c[t]!==void 0)return Promise.resolve(true);c[t]===void 0&&e.setSenderProfileCache({...c,[t]:{remark:"",nickname:"",avatar:""}});let g=e.getGeneration(),f=r.contact.getProfile(t,a?{forceRefresh:true}:void 0).then(v=>{if(e.getGeneration()!==g)return false;let u=T(v?.remark),y=T(v?.nickname),C=T(v?.avatar);return (u!==""||y!==""||C!=="")&&e.setSenderProfileCache({...e.getSenderProfileCache(),[t]:{remark:u,nickname:y,avatar:C}}),true}).catch(v=>{if(e.getGeneration()!==g)return false;if(!a){let u={...e.getSenderProfileCache()};delete u[t],e.setSenderProfileCache(u);}return e.getDiagnostics().record("warn","chat-kit","profile","sender-profile-resolve-failed",()=>({data:{userId:t},error:{message:"\u89E3\u6790\u53D1\u9001\u8005\u8D44\u6599\u5931\u8D25",data:v}})),false}).finally(()=>{!a&&s.get(t)===f&&s.delete(t);});return a||s.set(t,f),f}function cn(e,t,n){let r=e.getClient();if(t===""||r===null)return Promise.resolve(false);let o=n?.forceRefresh===true,a=Oe(Pt,e),s=o?void 0:a.get(t);if(s!==void 0)return s;let i=e.getGroupMemberNames();if(!o&&i[t]!==void 0)return Promise.resolve(true);let c=i[t]!==void 0;c||e.setGroupMemberNames({...i,[t]:{}});let g=e.getGeneration(),f=()=>{if(c||e.getGeneration()!==g)return;let u={...e.getGroupMemberNames()};delete u[t],e.setGroupMemberNames(u);},v=r.group.getMemberNames(t,{forceRefresh:o}).then(u=>e.getGeneration()!==g?false:u===null?(f(),false):(e.setGroupMemberNames({...e.getGroupMemberNames(),[t]:ae(e,t,u,{reconcile:true})}),true)).catch(u=>(f(),e.getGeneration()===g&&_(e,"group-member-name-resolve-failed",u,{groupId:t}),false)).finally(()=>{!o&&a.get(t)===v&&a.delete(t);});return o||a.set(t,v),v}function wt(e,t,n,r){let o=e.getClient();if(o===null||t===""||r?.isCurrent?.()===false)return Promise.resolve(false);let a=r?.forceRefresh===true,s=e.getChannelMemberProfiles()[t]??{},i=[...new Set(n.map(y=>y.trim()).filter(y=>y!==""&&y!=="system"))].filter(y=>a||s[y]===void 0||s[y].expiresAt<=Date.now());if(i.length===0)return Promise.resolve(true);let c=Oe(Rt,e),g=`${t}:${[...i].sort().join(",")}`,f=a?void 0:c.get(g);if(f!==void 0)return f;let v=e.getGeneration(),u=o.channel.getMembersByIds(t,i,a?{forceRefresh:true}:void 0).then(y=>{if(e.getGeneration()!==v||r?.isCurrent?.()===false)return false;let C=Date.now()+3e5,d={...e.getChannelMemberProfiles()[t]??{}};for(let l of y){let p=d[l.userId];p!==void 0&&an(l.updateVersion,p.updateVersion)<0||(d[l.userId]={displayName:l.displayName,...l.avatar===void 0?{}:{avatar:l.avatar},role:l.role,...l.updateVersion===void 0?{}:{updateVersion:l.updateVersion},expiresAt:C});}return e.setChannelMemberProfiles({...e.getChannelMemberProfiles(),[t]:d}),true}).catch(y=>(e.getGeneration()===v&&e.getDiagnostics().record("warn","chat-kit","profile","channel-members-resolve-failed",()=>({conversation:{conversationType:"channel",conversationId:t},error:{message:"\u89E3\u6790 CHANNEL \u6210\u5458\u8D44\u6599\u5931\u8D25",data:y}})),false)).finally(()=>{!a&&c.get(g)===u&&c.delete(g);});return a||c.set(g,u),u}function At(e,t,n={}){let r=t.body.system;if(t.contentType!=="system"||r?.eventType!=="group_member_renamed")return;let o=new Set((n.preserveUserIds??[]).map(a=>a.trim()).filter(Boolean));for(let a of r.targetUserIds??[]){let s=a.trim();o.has(s)||sn(e,t.conversationId,s);}cn(e,t.conversationId,{forceRefresh:true});}function _t(e,t,n){let r={};for(let o of n)o.nickName!==""&&(r[o.userId]=o.nickName);e.setGroupMemberNames({...e.getGroupMemberNames(),[t]:ae(e,t,r)});}function Nt(e,t,n,r){let o=t.trim(),a=n.trim();if(o===""||a==="")return;let s=r.trim(),i=L(e),c=i.groups.get(o)??new Map;c.set(a,s),i.groups.set(o,c);let g=e.getGroupMemberNames()[o];if(g===void 0)return;let f={...g};s===""?delete f[a]:f[a]=s,e.setGroupMemberNames({...e.getGroupMemberNames(),[o]:f});}function Ot(e,t,n={}){let r=t.trim();if(r===""||(sn(e,r),n.clearCachedNames!==true))return;let o=e.getGroupMemberNames();if(o[r]===void 0)return;let a={...o};delete a[r],e.setGroupMemberNames(a);}function Dt(e){let t=e.getClient(),n=e.getCredentials().userId;if(n===""||t===null||e.getSenderProfileCache()[n]!==void 0)return;let r=e.getGeneration();t.contact.getProfile(n).then(o=>{if(o===null||e.getGeneration()!==r)return;let a=T(o.remark),s=T(o.nickname),i=T(o.avatar);(a!==""||s!==""||i!=="")&&e.getSenderProfileCache()[n]===void 0&&e.setSenderProfileCache({...e.getSenderProfileCache(),[n]:{remark:a,nickname:s,avatar:i}});}).catch(o=>{e.getGeneration()===r&&_(e,"self-profile-prefetch-failed",o,{userId:n});});}async function Gt(e,t){let n=e.getClient();if(n===null)return;let r=e.getGeneration(),o=[];for(let a of t){let s=a.userId;e.getSenderProfileCache()[s]===void 0&&o.push((async()=>{let i;try{i=await n.contact.peekProfile(s);}catch(v){e.getGeneration()===r&&_(e,"member-avatar-prefetch-failed",v,{userId:s});return}if(i===null||e.getGeneration()!==r)return;let c=T(i.value.remark),g=T(i.value.nickname),f=T(i.value.avatar);(c!==""||g!==""||f!=="")&&e.getSenderProfileCache()[s]===void 0&&e.setSenderProfileCache({...e.getSenderProfileCache(),[s]:{remark:c,nickname:g,avatar:f}});})());}await Promise.allSettled(o);}async function jt(e,t,n,r){let o=e.getClient();if(o===null)return;let a=e.getCredentials().userId,s=e.getGeneration(),i=[],c=[],g=false,f=t[0]?.conversationType;f==="group"&&e.getGroupMemberNames()[n]===void 0&&i.push((async()=>{let u;try{u=await o.group.peekMemberNames(n);}catch(y){e.getGeneration()===s&&_(e,"group-member-name-prefetch-failed",y,{groupId:n});return}u===null||e.getGeneration()!==s||(e.getGroupMemberNames()[n]===void 0&&e.setGroupMemberNames({...e.getGroupMemberNames(),[n]:ae(e,n,u.value)}),u.stale&&(g=true));})());let v=[...new Set(t.map(u=>u.senderId).filter(u=>u!==""&&u!=="system"&&u!==a))];f==="channel"&&v.length>0&&i.push((async()=>{let u;try{u=await o.channel.getMembersByIds(n,v);}catch(d){e.getGeneration()===s&&_(e,"channel-member-prefetch-failed",d,{conversation:{conversationType:"channel",conversationId:n}});return}if(e.getGeneration()!==s||r?.isCurrent?.()===false)return;let y=Date.now()+3e5,C={...e.getChannelMemberProfiles()[n]??{}};for(let d of u){let l=C[d.userId];l!==void 0&&an(d.updateVersion,l.updateVersion)<0||(C[d.userId]={displayName:d.displayName,...d.avatar===void 0?{}:{avatar:d.avatar},role:d.role,...d.updateVersion===void 0?{}:{updateVersion:d.updateVersion},expiresAt:y});}e.setChannelMemberProfiles({...e.getChannelMemberProfiles(),[n]:C});})());for(let u of v)e.getSenderProfileCache()[u]===void 0&&i.push((async()=>{let y;try{y=await o.contact.peekProfile(u);}catch(p){e.getGeneration()===s&&_(e,"sender-profile-prefetch-failed",p,{userId:u});return}if(y===null||e.getGeneration()!==s)return;let C=T(y.value.remark),d=T(y.value.nickname),l=T(y.value.avatar);(C!==""||d!==""||l!=="")&&e.getSenderProfileCache()[u]===void 0&&e.setSenderProfileCache({...e.getSenderProfileCache(),[u]:{remark:C,nickname:d,avatar:l}}),y.stale&&c.push(u);})());await Promise.allSettled(i),e.getGeneration()===s&&dn(e,c,g?n:void 0);}function dn(e,t,n){let r=e.getClient();if(r===null)return;let o=e.getGeneration();n!==void 0&&r.group.getMemberNames(n,{forceRefresh:true}).then(a=>{a!==null&&e.getGeneration()===o&&e.setGroupMemberNames({...e.getGroupMemberNames(),[n]:ae(e,n,a,{reconcile:true})});}).catch(a=>{e.getGeneration()===o&&_(e,"group-member-name-refresh-failed",a,{groupId:n});});for(let a of t)r.contact.getProfile(a,{forceRefresh:true}).then(s=>{if(s===null||e.getGeneration()!==o)return;let i=T(s.remark),c=T(s.nickname),g=T(s.avatar),f=e.getSenderProfileCache()[a];(i!==""||c!==""||g!=="")&&(f===void 0||f.remark!==i||f.nickname!==c||f.avatar!==g)&&e.setSenderProfileCache({...e.getSenderProfileCache(),[a]:{remark:i,nickname:c,avatar:g}});}).catch(s=>{e.getGeneration()===o&&_(e,"sender-profile-refresh-failed",s,{userId:a});});}async function io(e,t){let n=D(e),r=t.keyword.trim();return G(n,()=>{switch(t.conversation.conversationType){case "direct":return n.inDirect({conversationType:"direct",conversationId:t.conversation.conversationId},r);case "group":return n.inGroup({conversationType:"group",conversationId:t.conversation.conversationId},r);case "channel":return n.inChannel({conversationType:"channel",conversationId:t.conversation.conversationId},r)}})}async function so(e,t){let n=D(e),r=t.keyword.trim();return G(n,()=>n.texts(t.conversation,r))}function co(e,t){let n=D(e),r=t.keyword?.trim();return G(n,()=>n.files(t.conversation,r===void 0||r===""?void 0:r))}function lo(e,t){let n=D(e);return G(n,()=>n.images(t.conversation))}function fo(e,t){let n=D(e);return G(n,()=>n.videos(t.conversation))}function uo(e,t){let n=D(e);return G(n,()=>n.voices(t.conversation))}function mo(e,t){let n=D(e);return G(n,()=>n.next(t))}function D(e){let t=e.getClient();if(t===null)throw new Error("IM client is not available");return t.search.messages}async function G(e,t){let n=await t();for(let r=0;r<5;r+=1){if(n.items.length>0||n.exhausted||r===4)return {results:n.items,...n.nextPageToken===void 0?{}:{nextPageToken:n.nextPageToken},exhausted:n.exhausted};if(n.nextPageToken===void 0)throw new Error("IM search page is missing nextPageToken");n=await e.next(n.nextPageToken);}throw new Error("Unreachable search pagination state")}export{tt as $,Pr as A,mo as Aa,Rr as B,Ie as C,Se as D,Ye as E,Nr as F,Or as G,Dr as H,Je as I,qe as J,N as K,zn as L,Qe as M,Ee as N,Yn as O,Kr as P,Jn as Q,Wr as R,$r as S,nn as T,Xr as U,qn as V,Yr as W,Jr as X,qr as Y,Qr as Z,Zr as _,fn as a,ot as aa,un as b,dt as ba,mn as c,lt as ca,gn as d,ft as da,ee as e,ut as ea,bn as f,vt as fa,Me as g,Ct as ga,In as h,xt as ha,ze as i,Mt as ia,En as j,St as ja,Rn as k,Tt as ka,kn as l,kt as la,wn as m,cn as ma,Wt as n,wt as na,$t as o,At as oa,Nn as p,_t as pa,Xt as q,Nt as qa,Mr as r,Ot as ra,Hn as s,Dt as sa,Bn as t,Ht as ta,hr as u,io as ua,Xe as v,so as va,Sr as w,co as wa,Tr as x,lo as xa,Er as y,fo as ya,Ln as z,uo as za};