k2-im 0.1.12 → 0.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
- import {y,B,f,g,i,K,L as L$1,x as x$1,A,k,e,z as z$1,C,M,N as N$1,E,G as G$1,F as F$1,H as H$1,I,J,oa as oa$1,na as na$1,ma as ma$1,U,W as W$1,S,la as la$1,O as O$1,P,ja as ja$1,ia as ia$1,Q as Q$1,R}from'./chunk-BO5YFCS4.js';import*as V from'node-forge';import {deleteDB,openDB}from'idb';function Fr(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 Jr(){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 ft(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,Vr=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(Vr);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 mt(){mn().catch(()=>{});}function ce(e,n,t){for(let r=0;r<t.length;r+=1)e.setUint8(n+r,t.charCodeAt(r));}function qr(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 zr=40,hn=120,Wr=40,yn=80;function Yr(e,n){let t=Math.min(Math.floor(n*zr/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*Wr/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 Qr(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 Xr(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 gt(e,n){let t=await mn(),r=Math.floor(n*yn/1e3),o=new Float32Array(r+e.length);o.set(e,r);let a=qr(o,n);try{return Qr(t.encodeFile(a))}catch(s){throw new G("encode-failed","\u8BED\u97F3\u7F16\u7801\u5931\u8D25",{cause:s})}}async function ht(e){let n=await mn();try{let[t,r]=n.decodeFile(Xr(e));if(t.length===0)throw new Error("decoded empty pcm");let o=Yr(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 yt(e){let n=await ht(e);return {wavData:Ve(n.samples,n.sampleRate),durationMs:n.durationMs}}function Zr(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 A=s.get(I);s.delete(I),A!==void 0&&URL.revokeObjectURL(A.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 S(){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(A){return {entry:null,error:{code:Je(A),cause:A}}}if(I===null)return {entry:null};try{let{wavData:A,durationMs:M}=await yt(I),R={url:URL.createObjectURL(new Blob([A],{type:"audio/wav"})),durationMs:M};return {entry:b(l,R)}}catch(A){return {entry:null,error:{code:Je(A),cause:A}}}}async function m(l,_){if(i)return;let C=S();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 A=await y(l,_.load);if(I===d){if(t.loadingId="",A.entry===null){c(l),o(),A.error!==void 0&&_.onDecodeError?.(A.error.code,A.error.cause);return}C.src=A.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 eo(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 no(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 Ct(e){let n=eo(e.timeDomain),t=no(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 to(){return {channelCount:1,echoCancellation:true,noiseSuppression:true,autoGainControl:true}}var ro=50,oo=.12,io=2.6,ao=.06,so=256;function co(){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 uo(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 bt(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 lo(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:to()});}catch(C){throw ft(C)}}mt();let t=co(),r=e.maxDurationMs??6e4,o="recording",a=[],s=0,d=[],i=null,f=null,g=null,b=[],h=0,p=false;function S(){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??ro,E=e.amplitude?.boost??io,c=e.amplitude?.smoothing??oo,u=e.amplitude?.minVolume??ao;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 A=Math.max(0,Math.ceil(r/v));d.length>A&&(d.length=A);}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),A=k.createAnalyser();A.fftSize=so,A.smoothingTimeConstant=c,I.connect(A);let M=new Uint8Array(A.frequencyBinCount),R=new Uint8Array(A.fftSize),T=new je;D=setInterval(()=>{if(o!=="recording"||i===null)return;A.getByteFrequencyData(M),A.getByteTimeDomainData(R);let U=Ct({timeDomain:R,frequency:M,sampleRate:k.sampleRate,fftSize:A.fftSize,boost:E}),B=T.next(U),$=B<u?0:B;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 A=await uo(I,Z,k);A.length!==0&&(a.push(A),s+=A.length/Z*1e3);})().finally(()=>{f=null;}),f)}try{i=S();}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=S(),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=bt(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 A=Math.min(d.length,Math.ceil(hn/v));return {data:await gt(I,Z),durationMs:Math.round(I.length/Z*1e3)+yn,waveform:d.slice(A),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=bt(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 Pt(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 po(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=Pt(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 S(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=Pt(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:S,primeChannelKey:v,clearChannelKey:E,clearAll:c}}var fo="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:fo,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 wt(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 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=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 wt(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 S=p.data.prv_key??p.data.prvKey??"",v=String(p.data.version??"").trim();if(S==="")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:mo(S),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 S=t.get(p);if(S!==void 0)return Promise.resolve(S);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 It(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 ho(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 yo(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,S;try{S=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 It(e.client,{groupId:h,publicKey:S.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:ho(c),privateKey:S.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 S=h.trim();if(S==="")return Promise.resolve(null);p?.force===true&&t.delete(S);let v=t.get(S);if(v!==void 0)return Promise.resolve(v);let E=r.get(S);if(E!==void 0)return E;let c=i(S).finally(()=>{r.get(S)===c&&r.delete(S);});return r.set(S,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 Co(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 bo(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 _t([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 St([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=bo(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,S]=t([i.getUint32(h,true),i.getUint32(h+4,true)],o);f.setUint32(h,p,true),f.setUint32(h+4,S,true);}let g=d*8;return g<e.length&&a.set(e.subarray(g),g),a}function bn(e,n){return qe(n,e,_t)}function Pn(e,n){return qe(n,e,St)}function At(e,n){return qe(n,e,St,32)}function vt(e,n){return qe(n,e,_t,32)}var ue=16;function Mt(e){let n="";for(let t of e)n+=String.fromCharCode(t);return n}function xt(e){let n=new Uint8Array(e.length);for(let t=0;t<e.length;t++)n[t]=e.charCodeAt(t)&255;return n}function Et(e){return e.replace(/(.{64})/g,`$1
1
+ import {y,B,f,g,i,K,L as L$1,x as x$1,A,k,e,z as z$1,C,M,N as N$1,E,G as G$1,F as F$1,H as H$1,I,J,qa as qa$1,pa as pa$1,oa as oa$1,U,W as W$1,S,na as na$1,O as O$1,P,la as la$1,ka as ka$1,Q as Q$1,R}from'./chunk-CLQGUCX2.js';import*as V from'node-forge';import {deleteDB,openDB}from'idb';function Fr(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 Jr(){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 ft(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,Vr=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(Vr);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 mt(){mn().catch(()=>{});}function ce(e,n,t){for(let r=0;r<t.length;r+=1)e.setUint8(n+r,t.charCodeAt(r));}function qr(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 zr=40,hn=120,Wr=40,yn=80;function Yr(e,n){let t=Math.min(Math.floor(n*zr/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*Wr/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 Qr(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 Xr(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 gt(e,n){let t=await mn(),r=Math.floor(n*yn/1e3),o=new Float32Array(r+e.length);o.set(e,r);let a=qr(o,n);try{return Qr(t.encodeFile(a))}catch(s){throw new G("encode-failed","\u8BED\u97F3\u7F16\u7801\u5931\u8D25",{cause:s})}}async function ht(e){let n=await mn();try{let[t,r]=n.decodeFile(Xr(e));if(t.length===0)throw new Error("decoded empty pcm");let o=Yr(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 yt(e){let n=await ht(e);return {wavData:Ve(n.samples,n.sampleRate),durationMs:n.durationMs}}function Zr(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 A=s.get(I);s.delete(I),A!==void 0&&URL.revokeObjectURL(A.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 S(){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(A){return {entry:null,error:{code:Je(A),cause:A}}}if(I===null)return {entry:null};try{let{wavData:A,durationMs:M}=await yt(I),R={url:URL.createObjectURL(new Blob([A],{type:"audio/wav"})),durationMs:M};return {entry:b(l,R)}}catch(A){return {entry:null,error:{code:Je(A),cause:A}}}}async function m(l,_){if(i)return;let C=S();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 A=await y(l,_.load);if(I===d){if(t.loadingId="",A.entry===null){c(l),o(),A.error!==void 0&&_.onDecodeError?.(A.error.code,A.error.cause);return}C.src=A.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 eo(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 no(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 Ct(e){let n=eo(e.timeDomain),t=no(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 to(){return {channelCount:1,echoCancellation:true,noiseSuppression:true,autoGainControl:true}}var ro=50,oo=.12,io=2.6,ao=.06,so=256;function co(){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 uo(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 bt(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 lo(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:to()});}catch(C){throw ft(C)}}mt();let t=co(),r=e.maxDurationMs??6e4,o="recording",a=[],s=0,d=[],i=null,f=null,g=null,b=[],h=0,p=false;function S(){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??ro,E=e.amplitude?.boost??io,c=e.amplitude?.smoothing??oo,u=e.amplitude?.minVolume??ao;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 A=Math.max(0,Math.ceil(r/v));d.length>A&&(d.length=A);}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),A=k.createAnalyser();A.fftSize=so,A.smoothingTimeConstant=c,I.connect(A);let M=new Uint8Array(A.frequencyBinCount),R=new Uint8Array(A.fftSize),T=new je;D=setInterval(()=>{if(o!=="recording"||i===null)return;A.getByteFrequencyData(M),A.getByteTimeDomainData(R);let U=Ct({timeDomain:R,frequency:M,sampleRate:k.sampleRate,fftSize:A.fftSize,boost:E}),B=T.next(U),$=B<u?0:B;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 A=await uo(I,Z,k);A.length!==0&&(a.push(A),s+=A.length/Z*1e3);})().finally(()=>{f=null;}),f)}try{i=S();}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=S(),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=bt(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 A=Math.min(d.length,Math.ceil(hn/v));return {data:await gt(I,Z),durationMs:Math.round(I.length/Z*1e3)+yn,waveform:d.slice(A),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=bt(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 Pt(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 po(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=Pt(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 S(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=Pt(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:S,primeChannelKey:v,clearChannelKey:E,clearAll:c}}var fo="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:fo,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 wt(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 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=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 wt(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 S=p.data.prv_key??p.data.prvKey??"",v=String(p.data.version??"").trim();if(S==="")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:mo(S),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 S=t.get(p);if(S!==void 0)return Promise.resolve(S);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 It(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 ho(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 yo(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,S;try{S=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 It(e.client,{groupId:h,publicKey:S.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:ho(c),privateKey:S.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 S=h.trim();if(S==="")return Promise.resolve(null);p?.force===true&&t.delete(S);let v=t.get(S);if(v!==void 0)return Promise.resolve(v);let E=r.get(S);if(E!==void 0)return E;let c=i(S).finally(()=>{r.get(S)===c&&r.delete(S);});return r.set(S,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 Co(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 bo(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 _t([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 St([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=bo(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,S]=t([i.getUint32(h,true),i.getUint32(h+4,true)],o);f.setUint32(h,p,true),f.setUint32(h+4,S,true);}let g=d*8;return g<e.length&&a.set(e.subarray(g),g),a}function bn(e,n){return qe(n,e,_t)}function Pn(e,n){return qe(n,e,St)}function At(e,n){return qe(n,e,St,32)}function vt(e,n){return qe(n,e,_t,32)}var ue=16;function Mt(e){let n="";for(let t of e)n+=String.fromCharCode(t);return n}function xt(e){let n=new Uint8Array(e.length);for(let t=0;t<e.length;t++)n[t]=e.charCodeAt(t)&255;return n}function Et(e){return e.replace(/(.{64})/g,`$1
2
2
  `).trim()}function Po(e){return e.replace(/-----BEGIN[^-]+-----/g,"").replace(/-----END[^-]+-----/g,"").replace(/\s+/g,"")}function wo(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=Et(t);for(let a of ["PRIVATE KEY","RSA PRIVATE KEY"])try{return V.pki.privateKeyFromPem(`-----BEGIN ${a}-----
3
3
  ${o}
4
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 kt(e){let n=wo(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(Mt(r.subarray(i,f)),"RSAES-PKCS1-V1_5");o.push(xt(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 Io(e){let n=kt({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 _o(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=Et(t);for(let a of ["PUBLIC KEY","RSA PUBLIC KEY"])try{return V.pki.publicKeyFromPem(`-----BEGIN ${a}-----
5
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 Tt(){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 So(e,n){if(n.length===0)throw new Error("RSA \u52A0\u5BC6\uFF1A\u660E\u6587\u4E3A\u7A7A");let t=_o(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(Mt(n.subarray(i,f)),"RSAES-PKCS1-V1_5");o.push(xt(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 Ao(e){let n=e.teaKey??Tt();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:So(e.publicKey,t),cipherData:r}}function vo(e){return bn(e.teaKey,e.cipherData)}function Mo(e){return Pn(e.teaKey,e.plain)}function xo(e){return At(e.teaKey,e.plain)}function Eo(e){return vt(e.teaKey,e.cipherData)}function ko(){return new Promise((e,n)=>{V.pki.rsa.generateKeyPair({bits:2048,e:65537,workers:-1},(t,r)=>{if(t){n(t);return}e({publicKeyBase64:Po(V.pki.publicKeyToPem(r.publicKey)),privateKey:V.pki.privateKeyToPem(r.privateKey)});});})}function To(){return {decryptEndToEnd:Io,encryptEndToEnd:Ao,decryptSymmetric:vo,encryptSymmetric:Mo,encryptFileSimple:xo,decryptFileSimple:Eo,randomTeaKey:Tt,generateTempKeyPair:ko,rsaDecryptPkcs1:kt}}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 Rt=50,Dt=20,Ut=1,In=2,_n=3,Ro=4,Do=5,Ot=0,Uo=1,Oo=2;function Bo(e){switch(e){case Ot:case Uo:case Oo: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 N(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Bt(e){let n=N(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 Nt(e){let n=N(e.status);if(e.status===void 0||n==="")return true;let t=Number(n),r=Bo(t);if(r===void 0)throw new j(`\u672A\u77E5\u7533\u8BF7\u72B6\u6001\uFF1A${n}`);return r===Ot}function No(e){let n=N(e.type);if(n==="")return true;if(Number(n)!==Ut)throw new j(`\u8054\u7CFB\u4EBA\u7533\u8BF7\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${n}`);return true}function Go(e){let n=Number(N(e.type));if(n!==In&&n!==_n&&n!==Ro&&n!==Do)throw new j(`GROUP/CHANNEL \u6DF7\u5408\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${N(e.type)||"<empty>"}`);return n}function ze(e){if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>Rt)throw new j(`limit \u5FC5\u987B\u4E3A 1-${Rt}`);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 Gt(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 Sn(e){let n=e.trim();if(n==="")throw new j("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");return n}function Ko(e){let n=Sn(N(e.id)||N(e.aid)),t=N(e.user_id)||N(e.user_info?.user_id),r=N(e.nick_name??e.nickname??e.name)||N(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=N(e.head_img_url??e.avatar)||N(e.user_info?.head_img_url??e.user_info?.avatar),a=N(e.user_info?.mid),s=Bt(e.create_time??e.createTime??e.update_version);return {applicationId:n,applicantId:t,applicantName:r,...o===""?{}:{applicantAvatar:o},...a===""?{}:{applicantDisplayId:a},message:N(e.remarks??e.introduce_self),...s===void 0?{}:{createdAt:s}}}function Lo(e){let n=Sn(N(e.id)||N(e.aid)),t=N(e.group_id)||N(e.group_info?.group_id);if(t==="")throw new j(`GROUP id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let r=N(e.user_id)||N(e.user_info?.user_id),o=N(e.nick_name??e.nickname??e.name)||N(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=N(e.head_img_url??e.avatar)||N(e.user_info?.head_img_url??e.user_info?.avatar),s=N(e.user_info?.mid),d=N(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=N(e.group_info?.head_img_url??e.group_info?.avatar),f=Bt(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:N(e.remarks??e.introduce_self),...f===void 0?{}:{createdAt:f}}}async function We(e,n,t){let r=await t(e.client,{applicationId:Sn(n),clientType:e.clientType});if(!r.ok)throw new Ce(r.code,r.message)}function Ho(e){async function n(t){let{pageSize:r}=ze(t),{page:o}=ze(t);for(let a=0;a<Dt;a+=1){let s=await ke(e.client,{listType:Ut,page:o,pageSize:r,clientType:e.clientType});if(!s.ok)throw new Ce(s.code,s.message);let d=Gt(s.data),i=d.filter(b=>No(b)&&Nt(b)).map(Ko),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){async function n(t){let{pageSize:r}=ze(t),{page:o}=ze(t);for(let a=0;a<Dt;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=Gt(s.data),i=d.filter(b=>{let h=Go(b);return (h===In||h===_n)&&Nt(b)}).map(Lo),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 Fo(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 Jo(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 Vo(e){let n=Number(e.product_id),t=Fo(e.is_dynamic);return {...Jo(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 Kt(e,n){return Array.isArray(e.mini_program_rel_list)?e.mini_program_rel_list.filter(t=>t!==null&&typeof t=="object").map(t=>Vo(t)):n.source==="info"?[]:void 0}function Lt(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function Ht(e,n){return x(e,"/user_radio/list",{user_id:n.userId,update_version:n.updateVersion,page:n.page,page_size:n.pageSize},Lt(n.clientType,"GET"))}function $t(e,n){return x(e,"/user_radio/info",{radio_id:n.channelId},Lt(n.clientType,"POST"))}var Ft=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 Jt(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 qo(e,n){return Number(e)===1?"member":Number(e)===9?"admin":Number(e)===10?"owner":n===false?"guest":"unknown"}function zo(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 Wo(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 Yo(e){if(e!=null)return Number(e)===1?"standard":Number(e)===2?"competition":"unknown"}function Qo(e){let n=le(e);return n!==void 0&&/^\d+$/.test(n)?n.replace(/^0+(?=\d)/,""):void 0}function Xo(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 Vt(e,n,t){let r=Jt(e.radio_id??e.id,"id"),o=Jt(e.name,"name"),a=e.is_in===void 0?void 0:be(e.is_in),s=qo(e.radio_user?.role_id,a),d=zo(e),i=Wo(e,s,d),f=ja$1({channelState:d,snapshot:i,nowMs:n}),g={...i,resolvedState:f.channelState},b=Qo(e.update_version),h=le(e.head_img_url),p=le(e.desc),S=le(e.user_id),v=Number(e.total_users),E=Yo(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=Kt(e,{source:t});return {id:r,name:o,...h===void 0?{}:{avatar:h},...p===void 0?{}:{description:p},...S===void 0?{}:{ownerId:S},...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 qt(e,n){if(e.accessSnapshot===void 0)return {...e,permissions:ia$1(e.role,e.channelState)};let t=ja$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 An(e,n){let{updatedAt:t,...r}=qt(e,n);return r}function Zo(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[S,v]=await Promise.all([e.storage.getChannelProfiles(),e.storage.getChannelListVersion()]);if(p!==d)return;for(let E of S)n.set(E.id,qt(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 S=++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 Ht(e.client,{userId:E,updateVersion:c,page:m,pageSize:Ft,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=>Vt(w,k,"list"));if(u.push(...D),D.length<Ft)break}if(S!==f)return [...n.values()].map(m=>An(m,e.now?.()??Date.now()));let y=o;for(let m of u)n.set(m.id,jt(m)),m.updateVersion!==void 0&&(y=Xo(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=>An(m,e.now?.()??Date.now()))})();return i=v,v.finally(()=>{i===v&&(i=null);}).catch(()=>{}),v}function h(p,S){let v=p.trim();if(v==="")return Promise.reject(new re("channel id \u4E0D\u80FD\u4E3A\u7A7A"));let E=S?.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 An(y,e.now?.()??Date.now());let m=await $t(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=Vt(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 zt(e,n){return ke(e,{listType:2,page:n.page,pageSize:n.pageSize,clientType:n.clientType})}function Wt(e,n){return Te(e,n)}function Yt(e,n){return Re(e,n)}var ei=20,Qt=50,ni=20,ti=2,ri=3,Zt=4,oi=5,er=0,ii=1,ai=2;function si(e){switch(e){case er:case ii:case ai: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 ci(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 di(e){let n=L(e.status);if(e.status===void 0||n==="")return true;let t=Number(n),r=si(t);if(r===void 0)throw new W(`\u672A\u77E5\u7533\u8BF7\u72B6\u6001\uFF1A${n}`);return r===er}function ui(e){let n=Number(L(e.type));if(n!==ti&&n!==ri&&n!==Zt&&n!==oi)throw new W(`GROUP/CHANNEL \u6DF7\u5408\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${L(e.type)||"<empty>"}`);return n}function li(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=ci(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 Xt(e){if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>Qt)throw new W(`limit \u5FC5\u987B\u4E3A 1-${Qt}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit||ei};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 pi(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 fi(e){let n=e.trim();if(n==="")throw new W("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");return n}function mi(e){async function n(r){let{pageSize:o}=Xt(r),{page:a}=Xt(r);for(let s=0;s<ni;s+=1){let d=await zt(e.client,{page:a,pageSize:o,clientType:e.clientType});if(!d.ok)throw new Ue(d.code,d.message);let i=pi(d.data),f=i.filter(h=>ui(h)===Zt&&di(h)).map(li),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:fi(r),clientType:e.clientType});if(!a.ok)throw new Ue(a.code,a.message)}return {listJoinApplications:n,acceptJoinApplication:r=>t(r,Wt),ignoreJoinApplication:r=>t(r,Yt)}}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 nr(e,n){return x(e,"/user_radio/admins",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},Ye(n.clientType,"GET"))}function tr(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,gi=12,hi=300*1e3,yi=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 Ci(e){return Number(e)===1?"member":Number(e)===9?"admin":Number(e)===10?"owner":"unknown"}function bi(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 rr(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=bi(e.update_version),i=Number(e.join_type);return {userId:r,...o===""?{}:{nickname:o},displayName:o||a||r,...s===""?{}:{avatar:s},role:Ci(e.role_id),...Number.isInteger(i)?{joinType:i}:{},...d===void 0?{}:{updateVersion:d}}}function Pi(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 or(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 wi(e){let n=e.now??(()=>Date.now()),t=e.isActive??(()=>true),r=e.cacheTtlMs??hi,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 S(w){for(a.delete(w.channelId),a.set(w.channelId,w);a.size>yi;){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 S(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(A=>!t()||A===null||A.channelId!==w||C!==h(w)||g.has(w)?null:(S(A),A)).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 A=C.get(I.userId);(A===void 0||xn(I.updateVersion,A.updateVersion)>=0)&&C.set(I.userId,I);}return _.map(I=>C.get(I))}async function c(w,l){let _=await U(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),A=_.allowPersistentRebuild===true&&I&&e.storage?.deleteChannelMemberSnapshot===void 0&&e.storage?.saveChannelMemberSnapshot!==void 0;(!I||A)&&await e.storage?.saveChannelMemberSnapshot?.(w),t()&&l===h(C)&&(S(w),_.allowPersistentRebuild===true&&(!I||e.storage?.deleteChannelMemberSnapshot===void 0)&&g.delete(C));}async function y(w,l,_,C,I=false,A){let M=await v(w);if(!t()||_!==h(w))return;let R=n(),T=A!==void 0&&M?.nextCursor===A,U=I&&M!==null&&!T,B=C!==void 0&&!U?C.nextCursor:M?.nextCursor,$={channelId:w,items:E(M?.items??[],l),...B===void 0?{}:{nextCursor:B},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,A=[],M=[],R=new Map;for(let T of l){let U=b(w,T.userId),B=o.get(U)?.member;if(B!==void 0&&xn(T.updateVersion,B.updateVersion)<0){M.push(B);continue}A.push({channelId:w,...T,updatedAt:C}),M.push(T),R.set(U,{member:T,expiresAt:I});}if(A.length>0&&t()&&_===h(w)&&!f.has(w)&&(await e.storage?.saveChannelMembers?.(A),e.storage?.getChannelMembers!==void 0&&t()&&_===h(w))){let T=await e.storage.getChannelMembers(w,A.map(B=>B.userId)),U=new Map(T.map(B=>{let{channelId:$,updatedAt:J,...ae}=B;return [ae.userId,{member:ae,updatedAt:J}]}));for(let B=0;B<M.length;B+=1){let $=M[B];if($===void 0)continue;let J=U.get($.userId);J===void 0||xn(J.member.updateVersion,$.updateVersion)<=0||(M[B]=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}=Pi({...w,channelId:_}),A=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=or((M.data??[]).map(B=>rr(B,_))),T=await m(_,R,A),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 A,M=false,R=[];for(let U=0;U<gi&&!M;U+=1){let B=await P({channelId:l,limit:Qe,...A===void 0?{}:{cursor:A}},($,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,B.items),A=B.nextCursor,M=B.exhausted;}let T={channelId:l,items:R,...A===void 0?{}:{nextCursor:A},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,A]=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=A===null?[]:await c(A.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(_,(A,M,R)=>vn(e.client,{channelId:A,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(_),A=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(_,A.items,I),A},listAdmins:w=>P(w,(l,_,C)=>nr(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 A=_?.forceRefresh===true,M=new Map,R=[];for(let T of I){let U=o.get(b(C,T));!A&&U!==void 0&&U.expiresAt>n()?M.set(T,U.member):R.push(T);}if(!A&&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:B,updatedAt:$,...J}of U)B===C&&(o.set(b(C,J.userId),{member:J,expiresAt:$+r}),$+r>n()&&M.set(J.userId,J));R=R.filter(B=>!M.has(B));}if(!t())return I.flatMap(T=>M.has(T)?[M.get(T)]:[]);if(R.length>0){let T=h(C),U=await tr(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 B=or((U.data??[]).map(ye=>rr(ye,C))),$=R.filter(ye=>!B.some($r=>$r.userId===ye)),J=A&&$.length>0&&T===h(C),ae;J?(await D(C),ae=B):ae=await m(C,B,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 ir(e){return {responseMode:"strict",method:"POST",...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function ar(e,n){return x(e,"/user_radio/member/list",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},ir(n.clientType))}function sr(e,n){return x(e,"/user_radio/member/search",{radio_id:n.channelId,search_name:n.query,page:n.page,page_size:n.pageSize},ir(n.clientType))}var cr=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 Ii(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 _i(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>cr)throw new ne(`limit \u5FC5\u987B\u4E3A 1-${cr}`);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 Si(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 Ai(e){async function n(t,r){let{channelId:o,page:a,pageSize:s}=_i(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=Si(i.map(Ii)),g=i.length<s;return {items:f,exhausted:g,...g?{}:{nextCursor:String(a+1)}}}return {listMentionMembers:t=>n(t,r=>ar(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=>sr(e.client,{...o,query:r}))}}}function vi(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 Be(e){let n=z(e);return n===""?void 0:n}function Mi(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=Be(t.head_img_url),d=Be(t.username)??Be(t.mid);return {id:r,kind:"individual",displayName:o,cardDisplayName:a,...s===void 0?{}:{avatarUrl:s},...d===void 0?{}:{username:d}}}function xi(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=Be(n.head_img_url),o=z(n.name)||t;return {id:t,kind:"group",displayName:o,cardDisplayName:o,...r===void 0?{}:{avatarUrl:r}}}function Ei(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=Be(n.head_img_url),o=z(n.name)||t;return {id:t,kind:"channel",displayName:o,cardDisplayName:o,...r===void 0?{}:{avatarUrl:r}}}function ki(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 Ti(e){return {async list(n){ki(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"?Mi:n.kind==="group"?xi:Ei,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 Ri="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 Di(e,n){let t=Number(e);if(!Number.isSafeInteger(t))throw new H(`${n} \u5FC5\u987B\u662F\u5B89\u5168\u6574\u6570`);return t}function dr(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 Ne(e){return e==="sticker"?1:e==="gif"?2:3}function ur(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:Di(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 Ui(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 lr(e,n,t){let r=Ne(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 fr(e){return {fav_type:Ne(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 Oi(e){return e.kind!=="emoji"?fr(e):{fav_type:Ne(e.kind),pack_id:"",img_url:e.token,file_name:e.resourceId,width:0,height:0}}function pr(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 Bi(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:dr(r.width,"Giphy original.width"),height:dr(r.height,"Giphy original.height")}}function Ni(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=Bi(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 Gi(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(`${Ri}/${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 Ni(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(ur)};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(ur)}},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:Ne(r)},"\u8868\u60C5\u6536\u85CF\u5217\u8868");return lr(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",fr(r),"\u6DFB\u52A0\u8868\u60C5\u6536\u85CF");},async deleteFavorites(r){await n("/user/sticker/my_fav/del",{ids:pr(r)},"\u5220\u9664\u8868\u60C5\u6536\u85CF");},async listRecent(r){let o=await n("/user/sticker/recent/list",{fav_type:Ne(r)},"\u6700\u8FD1\u4F7F\u7528\u5217\u8868");return lr(o,r,"\u6700\u8FD1\u4F7F\u7528\u5217\u8868 data").map(a=>Ui(a,r))},async reportRecent(r){await n("/user/sticker/recent/report",Oi(r),"\u4E0A\u62A5\u6700\u8FD1\u4F7F\u7528");},async deleteRecent(r){await n("/user/sticker/recent/del",{ids:pr(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 mr(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 Ki(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 Li(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 gr=200,Hi=50;async function hr(e,n){let t=String(n.updateVersion??0).trim()||"0",r=[],o;for(let a=1;a<=Hi;a++){let s={group_id:n.groupId,update_version:t,page:String(a),page_size:String(gr)},{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=Ki(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=Li(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<gr)break}return {members:r,updateVersion:o}}async function yr(e,n){return (await x(e,"/user/info/friend",{friend_user_id:n.userId})).data}var $i=1440*60*1e3;function Tn(e,n,t=$i){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 S=a.get(g)??0,v=await n.get(g);if(v!==null)return (a.get(g)??0)===S&&(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 Fi(e){async function n(h){let p=await yr(e.client,{userId:h})??await Ee(e.client,{userId:h});return p===null?null:Q$1(p)}async function t(h){let p=await mr(e.client,{groupId:h,clientType:e.clientType});return p===null?null:R(p)}async function r(h){let{members:p}=await hr(e.client,{groupId:h,clientType:e.clientType});return p.length===0?null:p}function o(h){let p={};for(let S of h)S.nickName!==""&&(p[S.userId]=S.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(S=>({userId:S.userId,nickName:S.groupNick,...S.joinType===void 0?{}:{joinType:S.joinType}})),updatedAt:p.updatedAt}},save:async(h,p)=>{let S=p.map(v=>({userId:v.userId,groupNick:v.nickName,...v.joinType===void 0?{}:{joinType:v.joinType}}));await a.saveGroupMembers({groupId:h,members:S,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 S=await b.get(h,p);return S===null?null:o(S)},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 Ji(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 Vi(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 qi(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 zi(e){let n=e.userIds.map(t=>({user_id:Ji(t)}));return X(e.client,"/user_radio/invited_users",{radio_id:e.channelId,members:JSON.stringify(n)},"\u9080\u8BF7\u793E\u7FA4\u6210\u5458")}function Wi(e){return X(e.client,"/user_radio/kick_user",{radio_id:e.channelId,user_id:e.userId},"\u79FB\u9664\u793E\u7FA4\u6210\u5458")}function Yi(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 Qi(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 Xi(e){return X(e.client,"/user_radio/transfer",{radio_id:e.channelId,user_id:e.userId},"\u8F6C\u8BA9\u793E\u7FA4")}function Zi(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 ea(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 na(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 ta(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 ra(e){return X(e.client,"/user_radio/closed",{radio_id:e.channelId},"\u89E3\u6563\u793E\u7FA4")}async function oa(e){ia(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=y({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=B(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 ia(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 aa(e){let n=sa(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 sa(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 ca(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},da=36875,ua=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 Cr(e){let n=Array.isArray(e)?e[0]:e;return n!==null&&typeof n=="object"?n:void 0}function la(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 pa(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=Cr(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 fa(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(la(a.code),a.code,a.message);let s=Cr(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 ma(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!==ua)throw new Error(`\u5220\u9664\u597D\u53CB\u5931\u8D25\uFF08${r.code}\uFF09\uFF1A${r.message||"unknown error"}`)}async function ga(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 ha(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}function ya(e){let n=e.memberIds.map(t=>({user_id:ha(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 Ca(e){return x(e.client,"/user_group/create_face",{is_hidden:"0"},{method:"POST",responseMode:"strict"})}function ba(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}function Pa(e){let n=e.memberIds.map(t=>({user_id:ba(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 Se(e){if(e.trim()==="")throw new Error("board pinned message groupId \u4E0D\u80FD\u4E3A\u7A7A")}function Ae(e){if(e.trim()==="")throw new Error("channel board pinned message channelId \u4E0D\u80FD\u4E3A\u7A7A")}function br(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function wa(e){Se(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(!br(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(!br(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 Pr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function Ia(e){Ae(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(!Pr(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(!Pr(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 _a(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 Sa(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 Aa(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||!Sa(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 va(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 Ma(e){let n=e.userIds.map(t=>({user_id:va(t)}));return Ge(e.client,"/user_group/invited",{group_id:e.groupId,members:JSON.stringify(n)},"\u9080\u8BF7\u7FA4\u6210\u5458")}function xa(e){return Ge(e.client,"/user_group/kick",{group_id:e.groupId,out_user_id:e.userId},"\u79FB\u9664\u7FA4\u6210\u5458")}function Ea(e){return Ge(e.client,"/user_group/transfer",{group_id:e.groupId,new_user_id:e.userId},"\u8F6C\u8BA9\u7FA4\u7EC4")}function ka(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 Ta(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 Ra=new Set([200,32768]);async function Da(e){let n=K({userId:e.userId,groupId:e.groupId}),t=await e.http.postProtobuf({path:"/offline/v1/group/read_all",body:n}),{code:r}=L$1(t);if(!Ra.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 Ua(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 wr(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 Ua(o.data.is_waitting,r)}async function Ir(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 Oa(e){return wr(e.client,"/user_group/apply",{group_id:e.groupId,qrcode_type:2,remarks:e.remarks??""},"\u7533\u8BF7\u52A0\u5165\u666E\u901A\u7FA4")}function Ba(e){return Ir(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 Na(e){return wr(e.client,"/user_radio/add/apply",{radio_id:e.channelId,remarks:e.remarks??""},"\u7533\u8BF7\u52A0\u5165\u793E\u7FA4")}function Ga(e){return Ir(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 Ka(e){if(Se(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 La(e){if(Ae(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 Ha=20,_r=10,On=30,$a=100;async function Fa(e){let n=[];for(let t of Ar(e.channels,Ha)){let r=x$1({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=A(o,a);await Sr(e,s.sessions.filter(d=>d.channelState==="active"||d.raw?.status===0).map(d=>d.channelId)),n.push(...A(o,{...a,onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps).sessions);}return n}async function Ja(e){let n=qa(e.channelBatchSize),t=e.messageCount??On,r=za(e.maxPagesPerBatch),o=new Map;for(let a of Ar(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=y({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 Sr(e,s.map(p=>p.channelId));let b=B(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 S=b.nextBaseIndexes[p.channelId],v=b.messageCounts[p.channelId]??0;if(S===void 0)continue;let E=d.get(p.channelId);if(E.has(S))throw new Error(`channel offline cursor \u5FAA\u73AF\uFF08channelId=${p.channelId}, baseIndex=${S}\uFF09`);v<t||(E.add(S),h.push({channelId:p.channelId,baseIndex:S}));}s=h;}}return [...o.values()].sort(k)}async function Va(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=y({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=B(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=z$1({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 C(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 Sr(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 qa(e){if(e===void 0)return _r;if(!Number.isInteger(e)||e<=0)throw new Error("channel offline: channelBatchSize \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");return Math.min(e,_r)}function za(e){if(e===void 0)return $a;if(!Number.isInteger(e)||e<=0)throw new Error("channel offline: maxPagesPerBatch \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");return e}function Ar(e,n){let t=[];for(let r=0;r<e.length;r+=n)t.push(e.slice(r,r+n));return t}async function vr(e,n){let t=O$1({userId:n.userId,clientType:n.clientType,limit:n.limit,deliveredMsgInfos:n.deliveredMsgInfos}),r=await n.http.postProtobuf({path:e,body:t});return P(r,{selfId:n.userId,keepRaw:true,onReaction:n.onReaction},n.decryptDeps)}function Mr(e){return vr("/offline/v1/chat",e)}function xr(e){return vr("/offline/v1/owner_chat",e)}function Wa(e){return Mr(e).then(n=>n.messages)}function Ya(e){return xr(e).then(n=>n.messages)}async function Qa(e){let n=M({userId:e.userId,clientType:e.clientType,limit:e.limit??100,msgId:String(Date.now()),deliveredMsgIds:e.deliveredMsgIds}),t=await e.http.postProtobuf({path:"/offline/v1/signal",body:n});return N$1(t)}function Er(e){return [...new Set(e.filter(n=>n!==void 0&&n!==""))]}async function Xa(e){let n=E({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=G$1(t,{selfId:e.userId}),o=Er(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 Za(e){let n=F$1({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=H$1(t,{selfId:e.userId}),o=Er([...r.unreads.map(a=>a.groupId),...r.messages.map(a=>a.conversationId)]);o.length>0&&await e.prepareKeys(o);}return H$1(t,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function es(e){e.prepareKeys!==void 0&&e.decryptDeps!==void 0&&e.groupId!==""&&await e.prepareKeys([e.groupId]);let n=I({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 J(t,{selfId:e.userId,keepRaw:true,source:"history",onReaction:e.onReaction},e.decryptDeps)}var ns={direct:"/friend/undisturb/set",group:"/user_group/user/edit",channel:"/user_radio/user/setting"},ts={direct:"friend_user_id",group:"group_id",channel:"radio_id"};async function rs(e){let n=ns[e.conversationType],t=ts[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 os(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 is(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 as(e){Se(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 ss(e){Ae(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 cs(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 ds(){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 us(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 kr(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 Tr(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 Bn(e,n){if(!Number.isInteger(e)||e<=0)throw new RangeError(`${n}\u5FC5\u987B\u662F\u6B63\u6574\u6570`)}function Rr(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 Nn(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(Bn(d,`${s}\u6700\u5927\u8FB9\u957F`),Bn(i,`${s}\u76EE\u6807\u5B57\u8282\u6570`),Bn(f,`${s}\u6700\u5927\u5B57\u8282\u6570`),Rr(g,`${s}\u521D\u59CB\u8D28\u91CF`),Rr(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=kr(n,t,d),p=Math.min(200,Math.max(h.width,h.height)),S,v=[...new Set([g,Math.max(b,g-.12),b])];for(let c of v){let u=await Tr(e,h.width,h.height,c,o);if((S===void 0||u.byteLength<S.byteLength)&&(S=u),u.byteLength<=i)return u}let E=Math.max(h.width,h.height);if(E>p&&S!==void 0){let c=Math.sqrt(i/S.byteLength),u=Math.max(p,Math.floor(E*Math.min(.9,Math.max(.5,c))));h=kr(n,t,u);for(let y of [g,b]){let m=await Tr(e,h.width,h.height,y,o);if(m.byteLength<S.byteLength&&(S=m),m.byteLength<=i)return m}}if(S!==void 0&&S.byteLength<=f)return S;throw new Error(`${s}\u751F\u6210\u5931\u8D25\uFF1A\u7F16\u7801\u7ED3\u679C\u8D85\u8FC7 ${f} \u5B57\u8282\u786C\u4E0A\u9650`)}function Dr(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 ls(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 Nn(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 Nn(o,o.naturalWidth,o.naturalHeight,e,n)}}finally{o.removeAttribute("src"),URL.revokeObjectURL(r);}}async function ps(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 Dr(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 Dr(r,"seeked",n));let i=s===void 0?void 0:s,f;try{f=await Nn(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??ds();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=us(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 ps(o,a):await ls(o,a)}finally{s();}},dispose(){r||(r=true,t.dispose());}}}var Ur="image/jpeg";function Kn(e,n){return new Blob([e],n===void 0||n===""?{}:{type:n})}function fs(){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:Ur}},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:Ur}}}}var Le;function ms(){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 gs(e){if(e===void 0)return "";let n=e.lastIndexOf(".");return n>=0?e.slice(n):""}function hs(e){return globalThis.crypto.randomUUID()+gs(e)}function ys(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 ms(),h=hs(i.filename),p=r(b),S=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&&S.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=()=>{S.abort();};i.signal?.aborted?await S.abort():i.signal?.addEventListener("abort",v,{once:true});try{await S.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 Cs(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()):bs(f,i.onProgress,i.expectedBytes)}return {upload:a,uploadAvatar:s,download:d}}function Cs(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 bs(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 Ps(){let e=globalThis;return typeof e.addEventListener=="function"&&typeof e.removeEventListener=="function"?e:void 0}function ws(e,n={}){let t=n.target!==void 0?n.target:Ps(),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 Ss=12,As=2*1024*1024*1024,Or=1024*1024*1024,vs=512*1024*1024,Ms=256*1024*1024,xs=64*1024,Ln="channel:list-version",Br="schema:conversation-key-v1",Hn="default",ge="\uFFFF";function Nr(e){if(!(e===void 0||!/^\d+$/.test(e)))return e.replace(/^0+(?=\d)/,"")}function Es(e,n){let t=Nr(e),r=Nr(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:${oa$1(e)}`}function $n(e,n){return `${oa$1(e)}\0${n}`}function ks(e){let n=oa$1(e.conversation);return {...e,key:$n(e.conversation,e.messageId),conversationKey:n,conversation:{...e.conversation},sContent:e.sContent.slice()}}function Ts(e){let{key:n,conversationKey:t,...r}=e;return {...r,conversation:{...r.conversation},sContent:r.sContent.slice()}}function Lr(e){return {...e,conversationKey:oa$1(la$1(e))}}function he(e){let{conversationKey:n,...t}=e;return t}function rn(e){return {...e,id:oa$1(ma$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:oa$1(e),storageConversationId:e.conversationId}}function Gr(e){if(e.storageConversationId===void 0)return e;let{storageConversationId:n,...t}=e;return {...t,conversationId:n}}function Hr(e){return {...e,conversationId:oa$1(na$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 Rs(e){return {...e,conversationKey:oa$1(e.ref)}}function Ds(e){let{conversationKey:n,...t}=e;return t}function Us(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 Os(e){let n=e.transaction(["messages","sessions","readStates","pinnedMessages","meta"],"readwrite");try{let t=n.objectStore("meta");if((await t.get(Br))?.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(Lr(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(Hr(f)),await d.delete(i.conversationId);}await t.put({key:Br,value:!0}),await n.done;}catch(t){try{n.abort();}catch{}try{await n.done;}catch{}throw t}}function Kr(e){return `${e.kind}:${encodeURIComponent(e.messageId)}:${e.resourceVersion}`}async function Bs(e,n){let t=n.namespaceFactory.forAccount(e).name("durable","storage","indexed-db");typeof indexedDB>"u"||await deleteDB(t);}function Ns(e){let{namespaceFactory:n}=e,t=null,r=null,o=0,a=Promise.resolve(),s=0,d=e.mediaAssetCache?.maxPendingWriteBytes??Ms;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 Or;let P=c.reduce((w,l)=>w+l.byteLength,0),k=Math.max(0,(m??0)-P),D=Math.max(vs,Math.floor(y*.2));return Math.max(0,Math.min(As,Math.floor(y-k-D)))}catch{return Or}}async function S$1(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 A=D.filter(T=>T.kind===I.kind).sort((T,U)=>T.lastAccessedAt-U.lastAccessedAt),M=A.reduce((T,U)=>T+U.byteLength,0),R=A.length;for(let T of A){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,A)=>I.lastAccessedAt-A.lastAccessedAt),_=Math.max(0,Math.min(await p(D),y??Number.POSITIVE_INFINITY)),C=l.reduce((I,A)=>I+A.byteLength,0);for(let I of l){if(C<=_)break;w.add(I.key),C-=I.byteLength;}await S$1([...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=Kr(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;},A=false;try{await I();}catch(R){if(!(R instanceof DOMException)||R.name!=="QuotaExceededError")throw R;A=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,A?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,Ss,{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 Os(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=Kr(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 S$1([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 oa$1(la$1(m))===oa$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:oa$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(Lr(y))),u.done]);},async searchMessages(c,u){let y=oa$1(c),m=u.keyword?.trim()??"",P=u.contentTypes;if(m===""&&(P===void 0||P.length===0))return {items:[],exhausted:true};let k=m===""?void 0:await U(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=W$1(he(I.value));_+=1,C=M.sortKey;let R=P===void 0||P.includes(M.contentType),T=k===void 0||k.match(S(M))!==null;R&&T&&l.push(M),I=await I.continue();}let A=I===null;return {items:l,exhausted:A,...A?{}:{nextBeforeSortKey:C}}},async getDecryptRecoveries(c){let u=oa$1(c);return (await i().getAllFromIndex("decryptRecoveries","by_conversation",u)).map(Ts)},async saveDecryptRecovery(c){if(c.sContent.byteLength===0||c.sContent.byteLength>xs)throw new Error(`\u89E3\u5BC6\u6062\u590D\u5BC6\u6587\u5B57\u8282\u957F\u5EA6\u975E\u6CD5\uFF1A${c.sContent.byteLength}`);await i().put("decryptRecoveries",ks(c));},async deleteDecryptRecovery(c,u){await i().delete("decryptRecoveries",$n(c,u));},async deleteConversationDecryptRecoveries(c){let u=oa$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(oa$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=ma$1(u[0]);await y.objectStore("sessions").delete(oa$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",oa$1(c));return}let y=(await i().getAll("readStates")).map(Gr).filter(m=>m.conversationId===c).filter(m=>m.conversationType!==void 0);$e(c,y),y[0]!==void 0&&await i().delete("readStates",oa$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=Us(c),y=typeof c=="string"?"by_conv_sort":"by_conversation_key_sort",m=typeof c=="string"?c:oa$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(oa$1(c)));for(;C!==null;)await C.delete(),C=await C.continue();}await k.done;},async clearConversationHistory(c,u,y){let m=oa$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(Gr)},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(Ds)},async saveDraft(c){await i().put("drafts",Rs(c));},async deleteDraft(c){await i().delete("drafts",oa$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(Hr(c)),await u.store.delete(c.conversationId),await u.done;},async removePinnedMessage(c){if(typeof c!="string"){await i().delete("pinnedMessages",oa$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",oa$1(na$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&&Es(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 Gs(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,S){for(let v of [...r[p]])v(S);}function f(){d!==void 0&&(clearTimeout(d),d=void 0);}function g(p,S){S!==void 0&&(p.removeEventListener("open",S.onOpen),p.removeEventListener("message",S.onMessage),p.removeEventListener("error",S.onError),p.removeEventListener("close",S.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,S,v){let E={onOpen:()=>{p===o&&(f(),s="open",i("open",{endpoint:S}));},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,S){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,S?.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,S){f(),o!==void 0&&(s==="connecting"||s==="open")&&(s="closing",o.close(p,S));},on(p,S){return r[p].add(S),()=>{r[p].delete(S);}}}}
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 Tt(){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 So(e,n){if(n.length===0)throw new Error("RSA \u52A0\u5BC6\uFF1A\u660E\u6587\u4E3A\u7A7A");let t=_o(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(Mt(n.subarray(i,f)),"RSAES-PKCS1-V1_5");o.push(xt(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 Ao(e){let n=e.teaKey??Tt();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:So(e.publicKey,t),cipherData:r}}function vo(e){return bn(e.teaKey,e.cipherData)}function Mo(e){return Pn(e.teaKey,e.plain)}function xo(e){return At(e.teaKey,e.plain)}function Eo(e){return vt(e.teaKey,e.cipherData)}function ko(){return new Promise((e,n)=>{V.pki.rsa.generateKeyPair({bits:2048,e:65537,workers:-1},(t,r)=>{if(t){n(t);return}e({publicKeyBase64:Po(V.pki.publicKeyToPem(r.publicKey)),privateKey:V.pki.privateKeyToPem(r.privateKey)});});})}function To(){return {decryptEndToEnd:Io,encryptEndToEnd:Ao,decryptSymmetric:vo,encryptSymmetric:Mo,encryptFileSimple:xo,decryptFileSimple:Eo,randomTeaKey:Tt,generateTempKeyPair:ko,rsaDecryptPkcs1:kt}}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 Rt=50,Dt=20,Ut=1,In=2,_n=3,Ro=4,Do=5,Ot=0,Uo=1,Oo=2;function Bo(e){switch(e){case Ot:case Uo:case Oo: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 N(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Bt(e){let n=N(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 Nt(e){let n=N(e.status);if(e.status===void 0||n==="")return true;let t=Number(n),r=Bo(t);if(r===void 0)throw new j(`\u672A\u77E5\u7533\u8BF7\u72B6\u6001\uFF1A${n}`);return r===Ot}function No(e){let n=N(e.type);if(n==="")return true;if(Number(n)!==Ut)throw new j(`\u8054\u7CFB\u4EBA\u7533\u8BF7\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${n}`);return true}function Go(e){let n=Number(N(e.type));if(n!==In&&n!==_n&&n!==Ro&&n!==Do)throw new j(`GROUP/CHANNEL \u6DF7\u5408\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${N(e.type)||"<empty>"}`);return n}function ze(e){if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>Rt)throw new j(`limit \u5FC5\u987B\u4E3A 1-${Rt}`);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 Gt(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 Sn(e){let n=e.trim();if(n==="")throw new j("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");return n}function Ko(e){let n=Sn(N(e.id)||N(e.aid)),t=N(e.user_id)||N(e.user_info?.user_id),r=N(e.nick_name??e.nickname??e.name)||N(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=N(e.head_img_url??e.avatar)||N(e.user_info?.head_img_url??e.user_info?.avatar),a=N(e.user_info?.mid),s=Bt(e.create_time??e.createTime??e.update_version);return {applicationId:n,applicantId:t,applicantName:r,...o===""?{}:{applicantAvatar:o},...a===""?{}:{applicantDisplayId:a},message:N(e.remarks??e.introduce_self),...s===void 0?{}:{createdAt:s}}}function Lo(e){let n=Sn(N(e.id)||N(e.aid)),t=N(e.group_id)||N(e.group_info?.group_id);if(t==="")throw new j(`GROUP id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let r=N(e.user_id)||N(e.user_info?.user_id),o=N(e.nick_name??e.nickname??e.name)||N(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=N(e.head_img_url??e.avatar)||N(e.user_info?.head_img_url??e.user_info?.avatar),s=N(e.user_info?.mid),d=N(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=N(e.group_info?.head_img_url??e.group_info?.avatar),f=Bt(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:N(e.remarks??e.introduce_self),...f===void 0?{}:{createdAt:f}}}async function We(e,n,t){let r=await t(e.client,{applicationId:Sn(n),clientType:e.clientType});if(!r.ok)throw new Ce(r.code,r.message)}function Ho(e){async function n(t){let{pageSize:r}=ze(t),{page:o}=ze(t);for(let a=0;a<Dt;a+=1){let s=await ke(e.client,{listType:Ut,page:o,pageSize:r,clientType:e.clientType});if(!s.ok)throw new Ce(s.code,s.message);let d=Gt(s.data),i=d.filter(b=>No(b)&&Nt(b)).map(Ko),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){async function n(t){let{pageSize:r}=ze(t),{page:o}=ze(t);for(let a=0;a<Dt;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=Gt(s.data),i=d.filter(b=>{let h=Go(b);return (h===In||h===_n)&&Nt(b)}).map(Lo),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 Fo(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 Jo(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 Vo(e){let n=Number(e.product_id),t=Fo(e.is_dynamic);return {...Jo(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 Kt(e,n){return Array.isArray(e.mini_program_rel_list)?e.mini_program_rel_list.filter(t=>t!==null&&typeof t=="object").map(t=>Vo(t)):n.source==="info"?[]:void 0}function Lt(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function Ht(e,n){return x(e,"/user_radio/list",{user_id:n.userId,update_version:n.updateVersion,page:n.page,page_size:n.pageSize},Lt(n.clientType,"GET"))}function $t(e,n){return x(e,"/user_radio/info",{radio_id:n.channelId},Lt(n.clientType,"POST"))}var Ft=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 Jt(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 qo(e,n){return Number(e)===1?"member":Number(e)===9?"admin":Number(e)===10?"owner":n===false?"guest":"unknown"}function zo(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 Wo(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 Yo(e){if(e!=null)return Number(e)===1?"standard":Number(e)===2?"competition":"unknown"}function Qo(e){let n=le(e);return n!==void 0&&/^\d+$/.test(n)?n.replace(/^0+(?=\d)/,""):void 0}function Xo(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 Vt(e,n,t){let r=Jt(e.radio_id??e.id,"id"),o=Jt(e.name,"name"),a=e.is_in===void 0?void 0:be(e.is_in),s=qo(e.radio_user?.role_id,a),d=zo(e),i=Wo(e,s,d),f=la$1({channelState:d,snapshot:i,nowMs:n}),g={...i,resolvedState:f.channelState},b=Qo(e.update_version),h=le(e.head_img_url),p=le(e.desc),S=le(e.user_id),v=Number(e.total_users),E=Yo(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=Kt(e,{source:t});return {id:r,name:o,...h===void 0?{}:{avatar:h},...p===void 0?{}:{description:p},...S===void 0?{}:{ownerId:S},...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 qt(e,n){if(e.accessSnapshot===void 0)return {...e,permissions:ka$1(e.role,e.channelState)};let t=la$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 An(e,n){let{updatedAt:t,...r}=qt(e,n);return r}function Zo(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[S,v]=await Promise.all([e.storage.getChannelProfiles(),e.storage.getChannelListVersion()]);if(p!==d)return;for(let E of S)n.set(E.id,qt(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 S=++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 Ht(e.client,{userId:E,updateVersion:c,page:m,pageSize:Ft,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=>Vt(w,k,"list"));if(u.push(...D),D.length<Ft)break}if(S!==f)return [...n.values()].map(m=>An(m,e.now?.()??Date.now()));let y=o;for(let m of u)n.set(m.id,jt(m)),m.updateVersion!==void 0&&(y=Xo(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=>An(m,e.now?.()??Date.now()))})();return i=v,v.finally(()=>{i===v&&(i=null);}).catch(()=>{}),v}function h(p,S){let v=p.trim();if(v==="")return Promise.reject(new re("channel id \u4E0D\u80FD\u4E3A\u7A7A"));let E=S?.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 An(y,e.now?.()??Date.now());let m=await $t(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=Vt(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 zt(e,n){return ke(e,{listType:2,page:n.page,pageSize:n.pageSize,clientType:n.clientType})}function Wt(e,n){return Te(e,n)}function Yt(e,n){return Re(e,n)}var ei=20,Qt=50,ni=20,ti=2,ri=3,Zt=4,oi=5,er=0,ii=1,ai=2;function si(e){switch(e){case er:case ii:case ai: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 ci(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 di(e){let n=L(e.status);if(e.status===void 0||n==="")return true;let t=Number(n),r=si(t);if(r===void 0)throw new W(`\u672A\u77E5\u7533\u8BF7\u72B6\u6001\uFF1A${n}`);return r===er}function ui(e){let n=Number(L(e.type));if(n!==ti&&n!==ri&&n!==Zt&&n!==oi)throw new W(`GROUP/CHANNEL \u6DF7\u5408\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${L(e.type)||"<empty>"}`);return n}function li(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=ci(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 Xt(e){if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>Qt)throw new W(`limit \u5FC5\u987B\u4E3A 1-${Qt}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit||ei};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 pi(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 fi(e){let n=e.trim();if(n==="")throw new W("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");return n}function mi(e){async function n(r){let{pageSize:o}=Xt(r),{page:a}=Xt(r);for(let s=0;s<ni;s+=1){let d=await zt(e.client,{page:a,pageSize:o,clientType:e.clientType});if(!d.ok)throw new Ue(d.code,d.message);let i=pi(d.data),f=i.filter(h=>ui(h)===Zt&&di(h)).map(li),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:fi(r),clientType:e.clientType});if(!a.ok)throw new Ue(a.code,a.message)}return {listJoinApplications:n,acceptJoinApplication:r=>t(r,Wt),ignoreJoinApplication:r=>t(r,Yt)}}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 nr(e,n){return x(e,"/user_radio/admins",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},Ye(n.clientType,"GET"))}function tr(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,gi=12,hi=300*1e3,yi=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 Ci(e){return Number(e)===1?"member":Number(e)===9?"admin":Number(e)===10?"owner":"unknown"}function bi(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 rr(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=bi(e.update_version),i=Number(e.join_type);return {userId:r,...o===""?{}:{nickname:o},displayName:o||a||r,...s===""?{}:{avatar:s},role:Ci(e.role_id),...Number.isInteger(i)?{joinType:i}:{},...d===void 0?{}:{updateVersion:d}}}function Pi(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 or(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 wi(e){let n=e.now??(()=>Date.now()),t=e.isActive??(()=>true),r=e.cacheTtlMs??hi,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 S(w){for(a.delete(w.channelId),a.set(w.channelId,w);a.size>yi;){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 S(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(A=>!t()||A===null||A.channelId!==w||C!==h(w)||g.has(w)?null:(S(A),A)).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 A=C.get(I.userId);(A===void 0||xn(I.updateVersion,A.updateVersion)>=0)&&C.set(I.userId,I);}return _.map(I=>C.get(I))}async function c(w,l){let _=await U(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),A=_.allowPersistentRebuild===true&&I&&e.storage?.deleteChannelMemberSnapshot===void 0&&e.storage?.saveChannelMemberSnapshot!==void 0;(!I||A)&&await e.storage?.saveChannelMemberSnapshot?.(w),t()&&l===h(C)&&(S(w),_.allowPersistentRebuild===true&&(!I||e.storage?.deleteChannelMemberSnapshot===void 0)&&g.delete(C));}async function y(w,l,_,C,I=false,A){let M=await v(w);if(!t()||_!==h(w))return;let R=n(),T=A!==void 0&&M?.nextCursor===A,U=I&&M!==null&&!T,B=C!==void 0&&!U?C.nextCursor:M?.nextCursor,$={channelId:w,items:E(M?.items??[],l),...B===void 0?{}:{nextCursor:B},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,A=[],M=[],R=new Map;for(let T of l){let U=b(w,T.userId),B=o.get(U)?.member;if(B!==void 0&&xn(T.updateVersion,B.updateVersion)<0){M.push(B);continue}A.push({channelId:w,...T,updatedAt:C}),M.push(T),R.set(U,{member:T,expiresAt:I});}if(A.length>0&&t()&&_===h(w)&&!f.has(w)&&(await e.storage?.saveChannelMembers?.(A),e.storage?.getChannelMembers!==void 0&&t()&&_===h(w))){let T=await e.storage.getChannelMembers(w,A.map(B=>B.userId)),U=new Map(T.map(B=>{let{channelId:$,updatedAt:J,...ae}=B;return [ae.userId,{member:ae,updatedAt:J}]}));for(let B=0;B<M.length;B+=1){let $=M[B];if($===void 0)continue;let J=U.get($.userId);J===void 0||xn(J.member.updateVersion,$.updateVersion)<=0||(M[B]=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}=Pi({...w,channelId:_}),A=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=or((M.data??[]).map(B=>rr(B,_))),T=await m(_,R,A),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 A,M=false,R=[];for(let U=0;U<gi&&!M;U+=1){let B=await P({channelId:l,limit:Qe,...A===void 0?{}:{cursor:A}},($,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,B.items),A=B.nextCursor,M=B.exhausted;}let T={channelId:l,items:R,...A===void 0?{}:{nextCursor:A},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,A]=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=A===null?[]:await c(A.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(_,(A,M,R)=>vn(e.client,{channelId:A,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(_),A=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(_,A.items,I),A},listAdmins:w=>P(w,(l,_,C)=>nr(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 A=_?.forceRefresh===true,M=new Map,R=[];for(let T of I){let U=o.get(b(C,T));!A&&U!==void 0&&U.expiresAt>n()?M.set(T,U.member):R.push(T);}if(!A&&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:B,updatedAt:$,...J}of U)B===C&&(o.set(b(C,J.userId),{member:J,expiresAt:$+r}),$+r>n()&&M.set(J.userId,J));R=R.filter(B=>!M.has(B));}if(!t())return I.flatMap(T=>M.has(T)?[M.get(T)]:[]);if(R.length>0){let T=h(C),U=await tr(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 B=or((U.data??[]).map(ye=>rr(ye,C))),$=R.filter(ye=>!B.some($r=>$r.userId===ye)),J=A&&$.length>0&&T===h(C),ae;J?(await D(C),ae=B):ae=await m(C,B,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 ir(e){return {responseMode:"strict",method:"POST",...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function ar(e,n){return x(e,"/user_radio/member/list",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},ir(n.clientType))}function sr(e,n){return x(e,"/user_radio/member/search",{radio_id:n.channelId,search_name:n.query,page:n.page,page_size:n.pageSize},ir(n.clientType))}var cr=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 Ii(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 _i(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>cr)throw new ne(`limit \u5FC5\u987B\u4E3A 1-${cr}`);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 Si(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 Ai(e){async function n(t,r){let{channelId:o,page:a,pageSize:s}=_i(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=Si(i.map(Ii)),g=i.length<s;return {items:f,exhausted:g,...g?{}:{nextCursor:String(a+1)}}}return {listMentionMembers:t=>n(t,r=>ar(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=>sr(e.client,{...o,query:r}))}}}function vi(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 Be(e){let n=z(e);return n===""?void 0:n}function Mi(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=Be(t.head_img_url),d=Be(t.username)??Be(t.mid);return {id:r,kind:"individual",displayName:o,cardDisplayName:a,...s===void 0?{}:{avatarUrl:s},...d===void 0?{}:{username:d}}}function xi(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=Be(n.head_img_url),o=z(n.name)||t;return {id:t,kind:"group",displayName:o,cardDisplayName:o,...r===void 0?{}:{avatarUrl:r}}}function Ei(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=Be(n.head_img_url),o=z(n.name)||t;return {id:t,kind:"channel",displayName:o,cardDisplayName:o,...r===void 0?{}:{avatarUrl:r}}}function ki(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 Ti(e){return {async list(n){ki(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"?Mi:n.kind==="group"?xi:Ei,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 Ri="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 Di(e,n){let t=Number(e);if(!Number.isSafeInteger(t))throw new H(`${n} \u5FC5\u987B\u662F\u5B89\u5168\u6574\u6570`);return t}function dr(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 Ne(e){return e==="sticker"?1:e==="gif"?2:3}function ur(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:Di(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 Ui(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 lr(e,n,t){let r=Ne(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 fr(e){return {fav_type:Ne(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 Oi(e){return e.kind!=="emoji"?fr(e):{fav_type:Ne(e.kind),pack_id:"",img_url:e.token,file_name:e.resourceId,width:0,height:0}}function pr(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 Bi(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:dr(r.width,"Giphy original.width"),height:dr(r.height,"Giphy original.height")}}function Ni(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=Bi(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 Gi(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(`${Ri}/${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 Ni(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(ur)};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(ur)}},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:Ne(r)},"\u8868\u60C5\u6536\u85CF\u5217\u8868");return lr(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",fr(r),"\u6DFB\u52A0\u8868\u60C5\u6536\u85CF");},async deleteFavorites(r){await n("/user/sticker/my_fav/del",{ids:pr(r)},"\u5220\u9664\u8868\u60C5\u6536\u85CF");},async listRecent(r){let o=await n("/user/sticker/recent/list",{fav_type:Ne(r)},"\u6700\u8FD1\u4F7F\u7528\u5217\u8868");return lr(o,r,"\u6700\u8FD1\u4F7F\u7528\u5217\u8868 data").map(a=>Ui(a,r))},async reportRecent(r){await n("/user/sticker/recent/report",Oi(r),"\u4E0A\u62A5\u6700\u8FD1\u4F7F\u7528");},async deleteRecent(r){await n("/user/sticker/recent/del",{ids:pr(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 mr(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 Ki(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 Li(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 gr=200,Hi=50;async function hr(e,n){let t=String(n.updateVersion??0).trim()||"0",r=[],o;for(let a=1;a<=Hi;a++){let s={group_id:n.groupId,update_version:t,page:String(a),page_size:String(gr)},{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=Ki(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=Li(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<gr)break}return {members:r,updateVersion:o}}async function yr(e,n){return (await x(e,"/user/info/friend",{friend_user_id:n.userId})).data}var $i=1440*60*1e3;function Tn(e,n,t=$i){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 S=a.get(g)??0,v=await n.get(g);if(v!==null)return (a.get(g)??0)===S&&(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 Fi(e){async function n(h){let p=await yr(e.client,{userId:h})??await Ee(e.client,{userId:h});return p===null?null:Q$1(p)}async function t(h){let p=await mr(e.client,{groupId:h,clientType:e.clientType});return p===null?null:R(p)}async function r(h){let{members:p}=await hr(e.client,{groupId:h,clientType:e.clientType});return p.length===0?null:p}function o(h){let p={};for(let S of h)S.nickName!==""&&(p[S.userId]=S.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(S=>({userId:S.userId,nickName:S.groupNick,...S.joinType===void 0?{}:{joinType:S.joinType}})),updatedAt:p.updatedAt}},save:async(h,p)=>{let S=p.map(v=>({userId:v.userId,groupNick:v.nickName,...v.joinType===void 0?{}:{joinType:v.joinType}}));await a.saveGroupMembers({groupId:h,members:S,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 S=await b.get(h,p);return S===null?null:o(S)},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 Ji(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 Vi(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 qi(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 zi(e){let n=e.userIds.map(t=>({user_id:Ji(t)}));return X(e.client,"/user_radio/invited_users",{radio_id:e.channelId,members:JSON.stringify(n)},"\u9080\u8BF7\u793E\u7FA4\u6210\u5458")}function Wi(e){return X(e.client,"/user_radio/kick_user",{radio_id:e.channelId,user_id:e.userId},"\u79FB\u9664\u793E\u7FA4\u6210\u5458")}function Yi(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 Qi(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 Xi(e){return X(e.client,"/user_radio/transfer",{radio_id:e.channelId,user_id:e.userId},"\u8F6C\u8BA9\u793E\u7FA4")}function Zi(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 ea(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 na(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 ta(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 ra(e){return X(e.client,"/user_radio/closed",{radio_id:e.channelId},"\u89E3\u6563\u793E\u7FA4")}async function oa(e){ia(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=y({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=B(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 ia(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 aa(e){let n=sa(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 sa(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 ca(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},da=36875,ua=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 Cr(e){let n=Array.isArray(e)?e[0]:e;return n!==null&&typeof n=="object"?n:void 0}function la(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 pa(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=Cr(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 fa(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(la(a.code),a.code,a.message);let s=Cr(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 ma(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!==ua)throw new Error(`\u5220\u9664\u597D\u53CB\u5931\u8D25\uFF08${r.code}\uFF09\uFF1A${r.message||"unknown error"}`)}async function ga(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 ha(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}function ya(e){let n=e.memberIds.map(t=>({user_id:ha(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 Ca(e){return x(e.client,"/user_group/create_face",{is_hidden:"0"},{method:"POST",responseMode:"strict"})}function ba(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}function Pa(e){let n=e.memberIds.map(t=>({user_id:ba(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 Se(e){if(e.trim()==="")throw new Error("board pinned message groupId \u4E0D\u80FD\u4E3A\u7A7A")}function Ae(e){if(e.trim()==="")throw new Error("channel board pinned message channelId \u4E0D\u80FD\u4E3A\u7A7A")}function br(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function wa(e){Se(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(!br(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(!br(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 Pr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function Ia(e){Ae(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(!Pr(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(!Pr(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 _a(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 Sa(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 Aa(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||!Sa(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 va(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 Ma(e){let n=e.userIds.map(t=>({user_id:va(t)}));return Ge(e.client,"/user_group/invited",{group_id:e.groupId,members:JSON.stringify(n)},"\u9080\u8BF7\u7FA4\u6210\u5458")}function xa(e){return Ge(e.client,"/user_group/kick",{group_id:e.groupId,out_user_id:e.userId},"\u79FB\u9664\u7FA4\u6210\u5458")}function Ea(e){return Ge(e.client,"/user_group/transfer",{group_id:e.groupId,new_user_id:e.userId},"\u8F6C\u8BA9\u7FA4\u7EC4")}function ka(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 Ta(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 Ra=new Set([200,32768]);async function Da(e){let n=K({userId:e.userId,groupId:e.groupId}),t=await e.http.postProtobuf({path:"/offline/v1/group/read_all",body:n}),{code:r}=L$1(t);if(!Ra.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 Ua(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 wr(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 Ua(o.data.is_waitting,r)}async function Ir(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 Oa(e){return wr(e.client,"/user_group/apply",{group_id:e.groupId,qrcode_type:2,remarks:e.remarks??""},"\u7533\u8BF7\u52A0\u5165\u666E\u901A\u7FA4")}function Ba(e){return Ir(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 Na(e){return wr(e.client,"/user_radio/add/apply",{radio_id:e.channelId,remarks:e.remarks??""},"\u7533\u8BF7\u52A0\u5165\u793E\u7FA4")}function Ga(e){return Ir(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 Ka(e){if(Se(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 La(e){if(Ae(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 Ha=20,_r=10,On=30,$a=100;async function Fa(e){let n=[];for(let t of Ar(e.channels,Ha)){let r=x$1({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=A(o,a);await Sr(e,s.sessions.filter(d=>d.channelState==="active"||d.raw?.status===0).map(d=>d.channelId)),n.push(...A(o,{...a,onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps).sessions);}return n}async function Ja(e){let n=qa(e.channelBatchSize),t=e.messageCount??On,r=za(e.maxPagesPerBatch),o=new Map;for(let a of Ar(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=y({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 Sr(e,s.map(p=>p.channelId));let b=B(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 S=b.nextBaseIndexes[p.channelId],v=b.messageCounts[p.channelId]??0;if(S===void 0)continue;let E=d.get(p.channelId);if(E.has(S))throw new Error(`channel offline cursor \u5FAA\u73AF\uFF08channelId=${p.channelId}, baseIndex=${S}\uFF09`);v<t||(E.add(S),h.push({channelId:p.channelId,baseIndex:S}));}s=h;}}return [...o.values()].sort(k)}async function Va(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=y({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=B(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=z$1({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 C(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 Sr(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 qa(e){if(e===void 0)return _r;if(!Number.isInteger(e)||e<=0)throw new Error("channel offline: channelBatchSize \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");return Math.min(e,_r)}function za(e){if(e===void 0)return $a;if(!Number.isInteger(e)||e<=0)throw new Error("channel offline: maxPagesPerBatch \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");return e}function Ar(e,n){let t=[];for(let r=0;r<e.length;r+=n)t.push(e.slice(r,r+n));return t}async function vr(e,n){let t=O$1({userId:n.userId,clientType:n.clientType,limit:n.limit,deliveredMsgInfos:n.deliveredMsgInfos}),r=await n.http.postProtobuf({path:e,body:t});return P(r,{selfId:n.userId,keepRaw:true,onReaction:n.onReaction},n.decryptDeps)}function Mr(e){return vr("/offline/v1/chat",e)}function xr(e){return vr("/offline/v1/owner_chat",e)}function Wa(e){return Mr(e).then(n=>n.messages)}function Ya(e){return xr(e).then(n=>n.messages)}async function Qa(e){let n=M({userId:e.userId,clientType:e.clientType,limit:e.limit??100,msgId:String(Date.now()),deliveredMsgIds:e.deliveredMsgIds}),t=await e.http.postProtobuf({path:"/offline/v1/signal",body:n});return N$1(t)}function Er(e){return [...new Set(e.filter(n=>n!==void 0&&n!==""))]}async function Xa(e){let n=E({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=G$1(t,{selfId:e.userId}),o=Er(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 Za(e){let n=F$1({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=H$1(t,{selfId:e.userId}),o=Er([...r.unreads.map(a=>a.groupId),...r.messages.map(a=>a.conversationId)]);o.length>0&&await e.prepareKeys(o);}return H$1(t,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function es(e){e.prepareKeys!==void 0&&e.decryptDeps!==void 0&&e.groupId!==""&&await e.prepareKeys([e.groupId]);let n=I({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 J(t,{selfId:e.userId,keepRaw:true,source:"history",onReaction:e.onReaction},e.decryptDeps)}var ns={direct:"/friend/undisturb/set",group:"/user_group/user/edit",channel:"/user_radio/user/setting"},ts={direct:"friend_user_id",group:"group_id",channel:"radio_id"};async function rs(e){let n=ns[e.conversationType],t=ts[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 os(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 is(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 as(e){Se(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 ss(e){Ae(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 cs(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 ds(){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 us(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 kr(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 Tr(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 Bn(e,n){if(!Number.isInteger(e)||e<=0)throw new RangeError(`${n}\u5FC5\u987B\u662F\u6B63\u6574\u6570`)}function Rr(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 Nn(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(Bn(d,`${s}\u6700\u5927\u8FB9\u957F`),Bn(i,`${s}\u76EE\u6807\u5B57\u8282\u6570`),Bn(f,`${s}\u6700\u5927\u5B57\u8282\u6570`),Rr(g,`${s}\u521D\u59CB\u8D28\u91CF`),Rr(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=kr(n,t,d),p=Math.min(200,Math.max(h.width,h.height)),S,v=[...new Set([g,Math.max(b,g-.12),b])];for(let c of v){let u=await Tr(e,h.width,h.height,c,o);if((S===void 0||u.byteLength<S.byteLength)&&(S=u),u.byteLength<=i)return u}let E=Math.max(h.width,h.height);if(E>p&&S!==void 0){let c=Math.sqrt(i/S.byteLength),u=Math.max(p,Math.floor(E*Math.min(.9,Math.max(.5,c))));h=kr(n,t,u);for(let y of [g,b]){let m=await Tr(e,h.width,h.height,y,o);if(m.byteLength<S.byteLength&&(S=m),m.byteLength<=i)return m}}if(S!==void 0&&S.byteLength<=f)return S;throw new Error(`${s}\u751F\u6210\u5931\u8D25\uFF1A\u7F16\u7801\u7ED3\u679C\u8D85\u8FC7 ${f} \u5B57\u8282\u786C\u4E0A\u9650`)}function Dr(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 ls(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 Nn(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 Nn(o,o.naturalWidth,o.naturalHeight,e,n)}}finally{o.removeAttribute("src"),URL.revokeObjectURL(r);}}async function ps(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 Dr(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 Dr(r,"seeked",n));let i=s===void 0?void 0:s,f;try{f=await Nn(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??ds();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=us(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 ps(o,a):await ls(o,a)}finally{s();}},dispose(){r||(r=true,t.dispose());}}}var Ur="image/jpeg";function Kn(e,n){return new Blob([e],n===void 0||n===""?{}:{type:n})}function fs(){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:Ur}},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:Ur}}}}var Le;function ms(){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 gs(e){if(e===void 0)return "";let n=e.lastIndexOf(".");return n>=0?e.slice(n):""}function hs(e){return globalThis.crypto.randomUUID()+gs(e)}function ys(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 ms(),h=hs(i.filename),p=r(b),S=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&&S.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=()=>{S.abort();};i.signal?.aborted?await S.abort():i.signal?.addEventListener("abort",v,{once:true});try{await S.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 Cs(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()):bs(f,i.onProgress,i.expectedBytes)}return {upload:a,uploadAvatar:s,download:d}}function Cs(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 bs(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 Ps(){let e=globalThis;return typeof e.addEventListener=="function"&&typeof e.removeEventListener=="function"?e:void 0}function ws(e,n={}){let t=n.target!==void 0?n.target:Ps(),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 Ss=12,As=2*1024*1024*1024,Or=1024*1024*1024,vs=512*1024*1024,Ms=256*1024*1024,xs=64*1024,Ln="channel:list-version",Br="schema:conversation-key-v1",Hn="default",ge="\uFFFF";function Nr(e){if(!(e===void 0||!/^\d+$/.test(e)))return e.replace(/^0+(?=\d)/,"")}function Es(e,n){let t=Nr(e),r=Nr(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:${qa$1(e)}`}function $n(e,n){return `${qa$1(e)}\0${n}`}function ks(e){let n=qa$1(e.conversation);return {...e,key:$n(e.conversation,e.messageId),conversationKey:n,conversation:{...e.conversation},sContent:e.sContent.slice()}}function Ts(e){let{key:n,conversationKey:t,...r}=e;return {...r,conversation:{...r.conversation},sContent:r.sContent.slice()}}function Lr(e){return {...e,conversationKey:qa$1(na$1(e))}}function he(e){let{conversationKey:n,...t}=e;return t}function rn(e){return {...e,id:qa$1(oa$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:qa$1(e),storageConversationId:e.conversationId}}function Gr(e){if(e.storageConversationId===void 0)return e;let{storageConversationId:n,...t}=e;return {...t,conversationId:n}}function Hr(e){return {...e,conversationId:qa$1(pa$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 Rs(e){return {...e,conversationKey:qa$1(e.ref)}}function Ds(e){let{conversationKey:n,...t}=e;return t}function Us(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 Os(e){let n=e.transaction(["messages","sessions","readStates","pinnedMessages","meta"],"readwrite");try{let t=n.objectStore("meta");if((await t.get(Br))?.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(Lr(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(Hr(f)),await d.delete(i.conversationId);}await t.put({key:Br,value:!0}),await n.done;}catch(t){try{n.abort();}catch{}try{await n.done;}catch{}throw t}}function Kr(e){return `${e.kind}:${encodeURIComponent(e.messageId)}:${e.resourceVersion}`}async function Bs(e,n){let t=n.namespaceFactory.forAccount(e).name("durable","storage","indexed-db");typeof indexedDB>"u"||await deleteDB(t);}function Ns(e){let{namespaceFactory:n}=e,t=null,r=null,o=0,a=Promise.resolve(),s=0,d=e.mediaAssetCache?.maxPendingWriteBytes??Ms;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 Or;let P=c.reduce((w,l)=>w+l.byteLength,0),k=Math.max(0,(m??0)-P),D=Math.max(vs,Math.floor(y*.2));return Math.max(0,Math.min(As,Math.floor(y-k-D)))}catch{return Or}}async function S$1(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 A=D.filter(T=>T.kind===I.kind).sort((T,U)=>T.lastAccessedAt-U.lastAccessedAt),M=A.reduce((T,U)=>T+U.byteLength,0),R=A.length;for(let T of A){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,A)=>I.lastAccessedAt-A.lastAccessedAt),_=Math.max(0,Math.min(await p(D),y??Number.POSITIVE_INFINITY)),C=l.reduce((I,A)=>I+A.byteLength,0);for(let I of l){if(C<=_)break;w.add(I.key),C-=I.byteLength;}await S$1([...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=Kr(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;},A=false;try{await I();}catch(R){if(!(R instanceof DOMException)||R.name!=="QuotaExceededError")throw R;A=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,A?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,Ss,{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 Os(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=Kr(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 S$1([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 qa$1(na$1(m))===qa$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:qa$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(Lr(y))),u.done]);},async searchMessages(c,u){let y=qa$1(c),m=u.keyword?.trim()??"",P=u.contentTypes;if(m===""&&(P===void 0||P.length===0))return {items:[],exhausted:true};let k=m===""?void 0:await U(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=W$1(he(I.value));_+=1,C=M.sortKey;let R=P===void 0||P.includes(M.contentType),T=k===void 0||k.match(S(M))!==null;R&&T&&l.push(M),I=await I.continue();}let A=I===null;return {items:l,exhausted:A,...A?{}:{nextBeforeSortKey:C}}},async getDecryptRecoveries(c){let u=qa$1(c);return (await i().getAllFromIndex("decryptRecoveries","by_conversation",u)).map(Ts)},async saveDecryptRecovery(c){if(c.sContent.byteLength===0||c.sContent.byteLength>xs)throw new Error(`\u89E3\u5BC6\u6062\u590D\u5BC6\u6587\u5B57\u8282\u957F\u5EA6\u975E\u6CD5\uFF1A${c.sContent.byteLength}`);await i().put("decryptRecoveries",ks(c));},async deleteDecryptRecovery(c,u){await i().delete("decryptRecoveries",$n(c,u));},async deleteConversationDecryptRecoveries(c){let u=qa$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(qa$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=oa$1(u[0]);await y.objectStore("sessions").delete(qa$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",qa$1(c));return}let y=(await i().getAll("readStates")).map(Gr).filter(m=>m.conversationId===c).filter(m=>m.conversationType!==void 0);$e(c,y),y[0]!==void 0&&await i().delete("readStates",qa$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=Us(c),y=typeof c=="string"?"by_conv_sort":"by_conversation_key_sort",m=typeof c=="string"?c:qa$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(qa$1(c)));for(;C!==null;)await C.delete(),C=await C.continue();}await k.done;},async clearConversationHistory(c,u,y){let m=qa$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(Gr)},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(Ds)},async saveDraft(c){await i().put("drafts",Rs(c));},async deleteDraft(c){await i().delete("drafts",qa$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(Hr(c)),await u.store.delete(c.conversationId),await u.done;},async removePinnedMessage(c){if(typeof c!="string"){await i().delete("pinnedMessages",qa$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",qa$1(pa$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&&Es(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 Gs(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,S){for(let v of [...r[p]])v(S);}function f(){d!==void 0&&(clearTimeout(d),d=void 0);}function g(p,S){S!==void 0&&(p.removeEventListener("open",S.onOpen),p.removeEventListener("message",S.onMessage),p.removeEventListener("error",S.onError),p.removeEventListener("close",S.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,S,v){let E={onOpen:()=>{p===o&&(f(),s="open",i("open",{endpoint:S}));},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,S){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,S?.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,S){f(),o!==void 0&&(s==="connecting"||s==="open")&&(s="closing",o.close(p,S));},on(p,S){return r[p].add(S),()=>{r[p].delete(S);}}}}
7
7
  export{Pa as $,Fr as A,Xa as Aa,Fi as B,Za as Ba,Vi as C,es as Ca,ji as D,rs as Da,qi as E,os as Ea,zi as F,is as Fa,Wi as G,as as Ga,Yi as H,ss as Ha,Qi as I,cs as Ia,Xi as J,Gn as Ja,Zi as K,fs as Ka,ea as L,ys as La,na as M,ws as Ma,ta as N,Bs as Na,ra as O,Ns as Oa,oa as P,Gs as Pa,aa as Q,Jr as Qa,ca as R,Je as Ra,en as S,Zr as Sa,nn as T,lo as Ta,da as U,pa as V,fa as W,ma as X,ga as Y,ya as Z,Ca as _,po as a,wa as aa,xe as b,Ia as ba,q as c,_a as ca,go as d,Aa as da,yo as e,Ma as ea,Ee as f,xa as fa,Co as g,Ea as ga,To as h,ka as ha,Ce as i,Ta as ia,j,Da as ja,Ho as k,Ke as ka,$o as l,Oa as la,De as m,Ba as ma,re as n,Na as na,Zo as o,Ga as oa,Ue as p,Ka as pa,W as q,La as qa,mi as r,Fa as ra,wi as s,Ja as sa,Ai as t,Va as ta,vi as u,ja as ua,Ti as v,Mr as va,we as w,xr as wa,H as x,Wa as xa,pe as y,Ya as ya,Gi as z,Qa as za};