k2-im 0.1.24 → 0.1.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ import {sa as sa$1,E,H as H$1,f,g,i,U,V as V$1,Y as Y$1,Z as Z$1,S,T,I,J as J$1,D,G as G$1,m,e,F,K,M,O as O$1,N as N$1,P,Q as Q$1,R as R$1,ea as ea$1,fa as fa$1,qb,Da as Da$1,Ca as Ca$1,Ba as Ba$1,ca as ca$1,ga as ga$1,aa as aa$1,Aa as Aa$1,W as W$1,X as X$1,l,ya as ya$1,xa as xa$1,_,$ as $$1}from'./chunk-LX7YEO5G.js';import*as q from'node-forge';import {deleteDB,openDB}from'idb';function qo(e,n=async t=>{let{createBrowserApiProtocolClient:r}=await import('./browser-YLMJKRLM.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,i)=>(await r())(o,i)}var H=class extends Error{code;constructor(n,t,r){super(t??n,r),this.name="MediaTransferError",this.code=n;}};function zo(e){return e instanceof H?e.code:void 0}var Wo=3600*1e3,Yo=300*1e3;function ue(...e){for(let n of e){if(typeof n!="string"&&typeof n!="number")continue;let t=String(n).trim();if(t!=="")return t}return ""}function Qo(e){let n=Number(e);if(!(!Number.isFinite(n)||n<=0))return n>1e12?n/1e3:n}function Xo(e){let n=e.replace(/\/+$/,"");return n===""?"":/^https?:\/\//i.test(n)?n:`https://${n}`}function Jt(e){if(e===null||typeof e!="object")throw new H("credentials-invalid","S3 \u4E0A\u4F20\u51ED\u8BC1\u683C\u5F0F\u65E0\u6548\uFF1A\u56DE\u5305\u4E0D\u662F\u5BF9\u8C61");let n=e,t=ue(n.access_key_id,n.accessKeyId),r=ue(n.secret_key,n.secretKey,n.secretAccessKey),o=ue(n.session_token,n.sessionToken).replace(/\s+/g,""),i=ue(n.bucket),a=ue(n.region),c=Xo(ue(n.dns_point,n.dnsPoint)),s=[t===""?"access_key_id":"",r===""?"secret_key":"",o===""?"session_token":"",i===""?"bucket":"",a===""?"region":"",c===""?"dns_point":""].filter(y=>y!=="");if(s.length>0)throw new H("credentials-invalid",`S3 \u4E0A\u4F20\u51ED\u8BC1\u683C\u5F0F\u65E0\u6548\uFF1A\u7F3A\u5C11 ${s.join("\u3001")}`);let l=Qo(n.expiration??n.expiresAtSeconds),m=ue(n.key_prefix,n.keyPrefix),w=ue(n.identity_id,n.identityId);return {accessKeyId:t,secretAccessKey:r,sessionToken:o,bucket:i,region:a,dnsPoint:c,...l===void 0?{}:{expiresAtSeconds:l},...m===""?{}:{keyPrefix:m},...w===""?{}:{identityId:w}}}function Zo(e,n){if(n-e.fetchedAtMs>=Wo)return false;let{expiresAtSeconds:t}=e.credential;return t===void 0?true:t*1e3-Yo>n}function jt(e){let n=new Map,t=new Map;async function r(o,i){let a;try{a=await e({bucket:o,forceRefresh:i});}catch(s){let l=s instanceof Error?s.message:String(s);throw new H("credentials-request-failed",`S3 \u4E0A\u4F20\u51ED\u8BC1\u83B7\u53D6\u5931\u8D25\uFF1Abucket=${o}\uFF1B\u539F\u56E0\uFF1A${l}`,{cause:s})}let c=Jt(a);return n.set(o,{credential:c,fetchedAtMs:Date.now()}),c}return {resolve(o,i){if(e===void 0)return Promise.reject(new H("credentials-provider-missing","media upload: \u5BBF\u4E3B\u672A\u6CE8\u5165 getUploadCredentials\uFF0C\u65E0\u6CD5\u7533\u8BF7 S3 \u4E34\u65F6\u51ED\u8BC1"));let a=i?.forceRefresh===true,c=a?void 0:n.get(o);if(c!==void 0&&Zo(c,Date.now()))return Promise.resolve(c.credential);n.delete(o);let s=t.get(o);if(s!==void 0)return s;let l=r(o,a).finally(()=>{t.get(o)===l&&t.delete(o);});return t.set(o,l),l}}}function ei(){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 N=class extends Error{code;constructor(n,t,r){super(t??n,r),this.name="VoiceError",this.code=n;}};function nn(e){return e instanceof N?e.code:void 0}function Vt(e){switch(e instanceof DOMException||e instanceof Error?e.name:""){case "NotAllowedError":case "SecurityError":case "PermissionDeniedError":return new N("permission-denied","\u9EA6\u514B\u98CE\u6743\u9650\u88AB\u62D2\u7EDD",{cause:e});case "NotFoundError":case "DevicesNotFoundError":return new N("device-not-found","\u672A\u627E\u5230\u53EF\u7528\u9EA6\u514B\u98CE",{cause:e});case "NotReadableError":case "TrackStartError":case "AbortError":return new N("device-busy","\u9EA6\u514B\u98CE\u88AB\u5360\u7528\u6216\u542F\u52A8\u5931\u8D25",{cause:e});default:return new N("device-busy",e instanceof Error?e.message:"\u9EA6\u514B\u98CE\u542F\u52A8\u5931\u8D25",{cause:e})}}var ne=16e3,ni=new URL("./speex-runtime.txt",import.meta.url).href,En=null,ti=15e3;async function ri(){document.querySelector('script[data-speex-runtime="true"]')?.remove();let e=new AbortController,n=setTimeout(()=>e.abort(new Error("Speex runtime fetch timeout")),ti),t;try{t=await fetch(ni,{signal:e.signal});}finally{clearTimeout(n);}if(!t.ok)throw new Error(`Speex runtime fetch failed: ${t.status}`);let r=await t.text();if(r.trimStart().startsWith("<"))throw new Error("Speex runtime fetch returned HTML instead of script");let o=document.createElement("script");o.dataset.speexRuntime="true",o.text=r,document.head.appendChild(o);}async function kn(){let e=typeof window>"u"?void 0:window;return e?.__speexInH5!==void 0?e.__speexInH5:(En??=(async()=>{if(e===void 0||typeof document>"u")throw new N("codec-unavailable","Speex \u8FD0\u884C\u65F6\u4EC5\u53EF\u5728\u6D4F\u89C8\u5668\u73AF\u5883\u52A0\u8F7D");if(await ri(),e.__speexInH5===void 0&&e.initAudio?.(),e.__speexInH5===void 0)throw new N("codec-unavailable","Speex \u8FD0\u884C\u65F6\u521D\u59CB\u5316\u5931\u8D25");return e.__speexInH5})().catch(n=>{throw En=null,n instanceof N?n:new N("codec-unavailable","Speex \u8FD0\u884C\u65F6\u52A0\u8F7D\u5931\u8D25",{cause:n})}),En)}function qt(){kn().catch(()=>{});}function le(e,n,t){for(let r=0;r<t.length;r+=1)e.setUint8(n+r,t.charCodeAt(r));}function oi(e,n){let r=new ArrayBuffer(44+e.length*2),o=new DataView(r);le(o,0,"RIFF"),o.setUint32(4,36+e.length*2,true),le(o,8,"WAVE"),le(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),le(o,36,"data"),o.setUint32(40,e.length*2,true);let i=44;for(let a=0;a<e.length;a+=1){let c=Math.max(-1,Math.min(1,e[a]??0));o.setInt16(i,c<0?c*32768:c*32767,true),i+=2;}return r}function Tn(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 ii=40,Rn=120,ai=40,Dn=80;function si(e,n){let t=Math.min(Math.floor(n*ii/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 i=e.length-1-r;e[i]=Math.round((e[i]??0)*o);}return e}function Un(e,n){if(e.length===0)return e;let t=Math.min(Math.floor(n*Rn/1e3),Math.max(0,e.length-1)),r=t>0?e.subarray(t):e,o=new Float32Array(r),i=Math.min(Math.floor(n*ai/1e3),Math.floor(o.length/2));for(let a=0;a<i;a+=1){let c=a/i;o[a]=(o[a]??0)*c;let s=o.length-1-a;o[s]=(o[s]??0)*c;}return o}function tn(e,n){let r=new ArrayBuffer(44+e.length*2),o=new DataView(r);return le(o,0,"RIFF"),o.setUint32(4,36+e.length*2,true),le(o,8,"WAVE"),le(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),le(o,36,"data"),o.setUint32(40,e.length*2,true),new Int16Array(r,44).set(e),new Uint8Array(r)}function ci(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 di(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 zt(e,n){let t=await kn(),r=Math.floor(n*Dn/1e3),o=new Float32Array(r+e.length);o.set(e,r);let i=oi(o,n);try{return ci(t.encodeFile(i))}catch(a){throw new N("encode-failed","\u8BED\u97F3\u7F16\u7801\u5931\u8D25",{cause:a})}}async function Wt(e){let n=await kn();try{let[t,r]=n.decodeFile(di(e));if(t.length===0)throw new Error("decoded empty pcm");let o=si(Tn(t),r.rate>0?r.rate:ne),i=r.rate>0?r.rate:ne;return {samples:o,sampleRate:i,durationMs:Math.round(o.length/i*1e3)}}catch(t){throw t instanceof N?t:new N("decode-failed","\u8BED\u97F3\u89E3\u7801\u5931\u8D25",{cause:t})}}async function Yt(e){let n=await Wt(e);return {wavData:tn(n.samples,n.sampleRate),durationMs:n.durationMs}}var ui=.5,li=2;function Qt(e){if(typeof e!="number"||!Number.isFinite(e))throw new N("invalid-playback-rate",`\u64AD\u653E\u901F\u7387\u5FC5\u987B\u662F\u6709\u9650\u6570\u5B57\uFF0C\u6536\u5230 ${String(e)}`);return Math.min(Math.max(e,ui),li)}function pi(e={}){let n=e.cacheMax??8,t={activeId:"",isPlaying:false,loadingId:"",progress:0,currentTimeMs:0,errorIds:new Set,playbackRate:e.playbackRate===void 0?1:Qt(e.playbackRate)},r=new Set;function o(){for(let g of r)g(t);}let i=null,a=new Map,c=0,s=false,l=false;function m(g){let S=a.get(g);return S!==void 0&&(a.delete(g),a.set(g,S)),S}function w(g,S){if(s)return URL.revokeObjectURL(S.url),S;let x=a.get(g);if(x!==void 0)return URL.revokeObjectURL(S.url),a.delete(g),a.set(g,x),x;for(a.set(g,S);a.size>n;){let E;for(let k of a.keys())if(k!==t.activeId){E=k;break}if(E===void 0)break;let D=a.get(E);a.delete(E),D!==void 0&&URL.revokeObjectURL(D.url);}return S}function y(g){g.paused||g.pause(),g.removeAttribute("src");try{g.load();}catch{}}function u(g,S){return !s&&g===c&&t.activeId===S}function h(g){g.defaultPlaybackRate=t.playbackRate,g.playbackRate=t.playbackRate;}function v(){if(i!==null)return i;let g=new Audio;return g.preload="auto",h(g),g.addEventListener("timeupdate",()=>{t.activeId!==""&&(t.currentTimeMs=g.currentTime*1e3,t.progress=g.duration>0?Math.min(1,g.currentTime/g.duration):0,o());}),g.addEventListener("ended",()=>{T(),y(g),o();}),g.addEventListener("pause",()=>{t.activeId!==""&&(t.isPlaying=false,o());}),i=g,g}function T(){t.activeId="",t.isPlaying=false,t.progress=0,t.currentTimeMs=0;}function d(){c+=1,l=false,t.loadingId="",T(),i!==null&&y(i),o();}function f(g){t.errorIds=new Set([...t.errorIds,g]);}function C(g){if(!t.errorIds.has(g))return;let S=new Set(t.errorIds);S.delete(g),t.errorIds=S;}async function p(g,S){let x=m(g);if(x!==void 0)return {entry:x};let E;try{E=await S();}catch(D){return {entry:null,error:{code:nn(D),cause:D}}}if(E===null)return {entry:null};try{let{wavData:D,durationMs:k}=await Yt(E),U={url:URL.createObjectURL(new Blob([D],{type:"audio/wav"})),durationMs:k};return {entry:w(g,U)}}catch(D){return {entry:null,error:{code:nn(D),cause:D}}}}async function b(g,S){if(s)return;let x=v();if(C(g),t.activeId===g){if(t.isPlaying){x.pause();return}let k=++c;try{await x.play();}catch{if(!u(k,g))return;f(g),o();return}if(!u(k,g))return;t.isPlaying=true,o(),S.onPlayStart?.();return}if(t.loadingId===g)return;d();let E=++c;t.loadingId=g,o();let D=await p(g,S.load);if(E===c){if(t.loadingId="",D.entry===null){f(g),o(),D.error!==void 0&&S.onDecodeError?.(D.error.code,D.error.cause);return}x.src=D.entry.url,h(x),t.activeId=g,t.progress=0,t.currentTimeMs=0,o();try{await x.play();}catch(k){if(!u(E,g))return;T(),y(x),f(g),o(),S.onDecodeError?.(void 0,k);return}u(E,g)&&(t.isPlaying=true,o(),S.onPlayStart?.());}}function M(g,S){i===null||t.activeId!==g||!Number.isFinite(i.duration)||i.duration<=0||(i.currentTime=Math.min(Math.max(S,0),.999)*i.duration);}function _(g){i===null||t.activeId!==g||t.isPlaying&&(l=true,i.pause());}function I(g){if(i===null||t.activeId!==g||!l)return;l=false;let S=++c;i.play().then(()=>{u(S,g)&&(t.isPlaying=true,o());}).catch(()=>{u(S,g)&&(f(g),o());});}function P(g){let S=Qt(g);S!==t.playbackRate&&(t.playbackRate=S,i!==null&&h(i),o());}function A(){if(!s){s=true,d();for(let g of a.values())URL.revokeObjectURL(g.url);a.clear(),r.clear(),i=null;}}return {getState:()=>t,subscribe:g=>(r.add(g),()=>r.delete(g)),toggle:b,seek:M,beginScrub:_,endScrub:I,setPlaybackRate:P,stop:d,dispose:A}}function fi(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 mi(e,n,t){if(e.length===0||n<=0||t<=0)return 0;let r=n/t,o=0,i=0;for(let a=0;a<e.length;a+=1){let c=a*r,s=.2;c<200?s=.15:c<300?s=.4:c<=3400?s=1:c<=6e3&&(s=.45),o+=(e[a]??0)/255*s,i+=s;}return i>0?o/i:0}function Xt(e){let n=fi(e.timeDomain),t=mi(e.frequency,e.sampleRate,e.fftSize),r=n*.55+t*.45;return Math.min(1,r*e.boost)**.72}var rn=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}};var gi=5e3,Bn=15e3,yi=25e3;function on(e,n,t){return new Promise((r,o)=>{let i=setTimeout(()=>o(new Error(t)),n);e.then(a=>{clearTimeout(i),r(a);},a=>{clearTimeout(i),o(a);});})}function hi(){return {channelCount:1,echoCancellation:true,noiseSuppression:true,autoGainControl:true}}var bi=50,Ci=.12,wi=2.6,Pi=.06,Ii=256;function Si(){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 vi(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 N("audio-context-blocked","AudioContext \u4E0D\u53EF\u7528");let i=t??new r,a=t==null;try{i.state==="suspended"&&await on(i.resume(),Bn,"audioContext.resume timeout").catch(()=>{});let c=await on(i.decodeAudioData(await e.arrayBuffer()),Bn,"decodeAudioData timeout"),s=Math.max(1,Math.ceil(c.duration*n)),l=new o(1,s,n),m=l.createBufferSource();return m.buffer=c,m.connect(l.destination),m.start(0),(await on(l.startRendering(),Bn,"offlineAudioContext.startRendering timeout")).getChannelData(0).slice()}catch(c){throw c instanceof N?c:new N("decode-failed","\u5F55\u97F3\u6BB5\u89E3\u7801\u5931\u8D25",{cause:c})}finally{a&&i.close().catch(()=>{});}}function Zt(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 Mi(e={}){if(typeof MediaRecorder>"u")throw new N("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 N("no-media-devices","\u5F53\u524D\u73AF\u5883\u4E0D\u652F\u6301\u9EA6\u514B\u98CE\u91C7\u96C6");try{n=await navigator.mediaDevices.getUserMedia({audio:hi()});}catch(g){throw Vt(g)}}qt();let t=Si(),r=e.maxDurationMs??6e4,o="recording",i=[],a=0,c=[],s=null,l=null,m=null,w=[],y=0,u=false;function h(){try{let g;try{g=t!==""?new MediaRecorder(n,{mimeType:t}):new MediaRecorder(n);}catch{g=new MediaRecorder(n);}return w=[],g.ondataavailable=S=>{S.data.size>0&&w.push(S.data);},g.start(250),y=Date.now(),g}catch(g){throw g instanceof N?g:new N("device-busy","\u5F55\u97F3\u5668\u542F\u52A8\u5931\u8D25",{cause:g})}}let v=e.amplitude?.intervalMs??bi,T=e.amplitude?.boost??wi,d=e.amplitude?.smoothing??Ci,f=e.amplitude?.minVolume??Pi;function C(){let g=Math.floor(r/1e3*ne),S=0;for(let E of i)S+=E.length;if(S>g){let E=g,D=[];for(let k of i){if(E<=0)break;k.length<=E?(D.push(k),E-=k.length):(D.push(k.slice(0,E)),E=0);}i.length=0,i.push(...D);}a=Math.min(a,r);let x=Math.max(0,Math.ceil(r/v));c.length>x&&(c.length=x);}async function p(){if(o!=="recording"){e.onMaxDuration?.();return}e.onMaxDuration?.(),o="paused";let g=A().then(()=>C());m=g;try{await g;}catch(S){console.warn("[im-browser] pauseAtMaxDuration settle failed",S);}}let b=setInterval(()=>{!u&&o==="recording"&&I()>=r&&(u=true,p());},250),M=null,_=null;try{let g=window.AudioContext??window.webkitAudioContext;if(g!==void 0){M=new g,M.state==="suspended"&&M.resume().catch(()=>{});let S=M.createMediaStreamSource(n),x=M.createAnalyser();x.fftSize=Ii,x.smoothingTimeConstant=d,S.connect(x);let E=new Uint8Array(x.frequencyBinCount),D=new Uint8Array(x.fftSize),k=new rn;_=setInterval(()=>{if(o!=="recording"||s===null)return;x.getByteFrequencyData(E),x.getByteTimeDomainData(D);let U=Xt({timeDomain:D,frequency:E,sampleRate:M.sampleRate,fftSize:x.fftSize,boost:T}),B=k.next(U),F=B<f?0:B;c.push(Math.round(F*255)),e.onAmplitude?.(F);},v);}}catch(g){console.warn("[im-browser] amplitude analyser setup failed",g);}function I(){let g=o==="recording"&&s!==null?Date.now()-y:0;return a+g}function P(){b!==null&&(clearInterval(b),b=null),_!==null&&(clearInterval(_),_=null),M?.close().catch(()=>{}),M=null;for(let g of n.getTracks())g.stop();}function A(){if(l!==null)return l;let g=s;return g===null?Promise.resolve():(s=null,l=(async()=>{await new Promise(E=>{if(g.state==="inactive"){E();return}let D=setTimeout(()=>{console.warn("[im-browser] recorder onstop timed out, settling with received chunks"),E();},gi);g.onstop=()=>{clearTimeout(D),E();},g.stop();});let S=new Blob(w,{type:g.mimeType||t||"audio/webm"});if(w=[],S.size===0)return;let x=await vi(S,ne,M);x.length!==0&&(i.push(x),a+=x.length/ne*1e3);})().finally(()=>{l=null;}),l)}try{s=h();}catch(g){throw o="closed",P(),g}return {getState:()=>o,recordedMs:I,async pause(){o==="recording"&&(o="paused",await A(),(u||a>=r)&&C());},async resume(){o!=="paused"||u||(s=h(),o="recording");},async finish(){if(o==="closed")throw new N("empty-recording","\u5F55\u97F3\u4F1A\u8BDD\u5DF2\u7ED3\u675F");o="closed";let g=async()=>{try{m!==null?await m:await A(),C();}finally{P();}let S=Zt(i);if(S.length===0)throw new N("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let x=Un(S,ne);if(x.length===0)throw new N("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let E=Math.min(c.length,Math.ceil(Rn/v));return {data:await zt(x,ne),durationMs:Math.round(x.length/ne*1e3)+Dn,waveform:c.slice(E),filename:`AUDIO_${Date.now()}.ogg`,mimeType:"audio/ogg"}};try{return await on(g(),yi,"\u5F55\u97F3\u5B9A\u7A3F\u8D85\u65F6")}catch(S){throw P(),S instanceof N?S:new N("encode-failed","\u5F55\u97F3\u5B9A\u7A3F\u5931\u8D25",{cause:S})}},cancel(){o="closed";let g=s;if(s=null,g!==null&&(g.ondataavailable=null,g.onstop=null,g.state!=="inactive"))try{g.stop();}catch{}i.length=0,P();},async previewWav(){m!==null?await m:l!==null&&await l,C();let g=Zt(i),S=Un(g,ne);if(S.length===0)throw new N("empty-recording","\u6682\u65E0\u53EF\u8BD5\u542C\u7684\u5F55\u97F3\u5185\u5BB9");return {wavData:tn(Tn(S),ne),durationMs:Math.round(S.length/ne*1e3)}}}}function Ie(e){let n=new Map;return {shouldRenegotiate(t,r,o){if(r===void 0)return true;if(o!==void 0&&!e(o,r))return false;let i=n.get(t);return i!==void 0&&e(i,r)?false:(n.set(t,r),true)},reset(t){n.delete(t);}}}function er(e,n){return e.length===n.length&&e.every((t,r)=>t===n[r])}var te=class extends Error{constructor(n,t){super(n,t),this.name="ChannelKeyError";}};function nr(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 te("channel secret_key \u4E0D\u662F\u5408\u6CD5 Base64");let r=t.replace(/=+$/,""),o=r+"=".repeat((4-r.length%4)%4),i;try{i=atob(o);}catch(l){throw new te("channel secret_key Base64 \u89E3\u7801\u5931\u8D25",{cause:l})}let a=Uint8Array.from(i,l=>l.charCodeAt(0)&255);if(a.length===0)throw new te("channel secret_key Base64 \u89E3\u7801\u7ED3\u679C\u4E3A\u7A7A");let c=new Uint8Array(16);c.set(a.subarray(0,c.length));let s=n.length===16&&/^[\x20-\x7E]+$/.test(n)?Uint8Array.from(n,l=>l.charCodeAt(0)):void 0;return {canonical:c,...s===void 0?{}:{legacyAscii:s},metadata:{channelKeyCharLength:n.length,decodedByteLength:a.length,padByteCount:Math.max(0,16-a.length),legacyAsciiCandidate:s!==void 0}}}function Ai(e){let n=new Map,t=new Map,r=new Map,o=new Map,i=Ie(er);function a(p){return {canonical:p.canonical.slice(),...p.legacyAscii===void 0?{}:{legacyAscii:p.legacyAscii.slice()},metadata:{...p.metadata}}}function c(p){return [{strategy:"canonical-base64-pad",key:p.canonical.slice()},...p.legacyAscii===void 0?[]:[{strategy:"legacy-ascii16",key:p.legacyAscii.slice()}]]}function s(p){n.delete(p),t.delete(p),r.delete(p),o.set(p,(o.get(p)??0)+1);}function l(p){let b=o.get(p)??0,M=(async()=>{try{let _=await e.loadSecretKey(p);if(_===null||_.trim()==="")throw new te(`channel secret_key \u7F3A\u5931\uFF08channelId=${p}\uFF09`);let I=nr(_);return (o.get(p)??0)===b&&n.set(p,a(I)),I}catch(_){let I=_ instanceof te?_:new te(`channel secret_key \u52A0\u8F7D\u5931\u8D25\uFF08channelId=${p}\uFF09`,{cause:_});throw e.onError?.(I.message,_),I}})().finally(()=>{t.get(p)===M&&t.delete(p);});return t.set(p,M),M}function m(p,b){let M=t.get(p);if(M!==void 0)return M;i.shouldRenegotiate(p,b.staleKey,n.get(p)?.canonical)&&s(p);}function w(p,b){let M=p.trim();if(M===""){let I=new te("channel id \u4E0D\u80FD\u4E3A\u7A7A");return e.onError?.(I.message),Promise.reject(I)}if(b!==void 0){let I=m(M,b);if(I!==void 0)return I.then(a)}let _=n.get(M);return _!==void 0?Promise.resolve(a(_)):t.get(M)??l(M)}function y(p,b){let M=p.trim();if(M===""){let A=new te("channel id \u4E0D\u80FD\u4E3A\u7A7A");return e.onError?.(A.message),Promise.reject(A)}if(b!==void 0){let A=m(M,b);if(A!==void 0)return A.then(g=>g.canonical.slice())}let _=n.get(M);if(_!==void 0)return Promise.resolve(_.canonical.slice());let I=r.get(M);if(I!==void 0)return I;let P=(t.get(M)??l(M)).then(A=>A.canonical.slice()).finally(()=>{r.get(M)===P&&r.delete(M);});return r.set(M,P),P}function u(p){return n.get(p.trim())?.canonical.slice()??null}async function h(p,b){let M=await w(p,b);return c(M)}function v(p){let b=n.get(p.trim());return b===void 0?[]:c(b)}function T(p){let b=n.get(p.trim());return b===void 0?null:{...b.metadata}}function d(p,b){let M=p.trim();if(M==="")throw new te("channel id \u4E0D\u80FD\u4E3A\u7A7A");let _=nr(b);s(M),i.reset(M),n.set(M,a(_));}function f(p){let b=p.trim();b!==""&&(s(b),i.reset(b));}function C(){let p=new Set([...n.keys(),...t.keys(),...r.keys(),...o.keys()]);for(let b of p)o.set(b,(o.get(b)??0)+1),i.reset(b);n.clear(),t.clear(),r.clear();}return {getChannelKey:y,getCachedChannelKey:u,getChannelKeyCandidates:h,getCachedChannelKeyCandidates:v,getCachedChannelKeyMetadata:T,primeChannelKey:d,clearChannelKey:f,clearAll:C}}function rr(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 On([e,n],[t,r,o,i]){let a=e>>>0,c=n>>>0,s=Math.imul(2654435769,16)>>>0;for(let l=0;l<16;l++)c=c-(Math.imul(a,16)+o^a+s^(a>>>5)+i)>>>0,a=a-(Math.imul(c,16)+t^c+s^(c>>>5)+r)>>>0,s=s-2654435769>>>0;return [a,c]}function Nn([e,n],[t,r,o,i]){let a=e>>>0,c=n>>>0,s=0;for(let l=0;l<16;l++)s=s+2654435769>>>0,a=a+(Math.imul(c,16)+t^c+s^(c>>>5)+r)>>>0,c=c+(Math.imul(a,16)+o^a+s^(a>>>5)+i)>>>0;return [a,c]}function Ue(e,n,t,r){let o=rr(n),i=new Uint8Array(e.length),a=Math.floor(e.length/8),c=r===void 0?a:Math.min(a,Math.floor(r/8)),s=new DataView(e.buffer,e.byteOffset,e.byteLength),l=new DataView(i.buffer);for(let w=0;w<c;w++){let y=w*8,[u,h]=t([s.getUint32(y,true),s.getUint32(y+4,true)],o);l.setUint32(y,u,true),l.setUint32(y+4,h,true);}let m=c*8;return m<e.length&&i.set(e.subarray(m),m),i}function Be(e,n){return Ue(n,e,On)}function Oe(e,n){return Ue(n,e,Nn)}function or(e,n){return Ue(n,e,Nn,32)}function ir(e,n){return Ue(n,e,On,32)}var _i=1024*1024;function xi(){let n=globalThis.scheduler;return typeof n?.yield=="function"?n.yield():new Promise(t=>{setTimeout(t,0);})}function tr(e){if(e?.aborted)throw new DOMException("TEA \u5206\u5757\u5904\u7406\u5DF2\u53D6\u6D88","AbortError")}async function Kn(e,n,t,r=_i,o={}){if(!Number.isInteger(r)||r<=0||r%8!==0)throw new RangeError(`TEA \u5206\u5757\u5927\u5C0F\u5FC5\u987B\u662F 8 \u7684\u6B63\u6574\u6570\u500D\uFF1A${r}`);rr(e);let i=t==="encrypt"?Nn:On,a=o.yieldToMain??xi,c=n.size,s=[],l=0;for(;l<c;){tr(o.signal);let m=Math.min(l+r,c),w=new Uint8Array(await n.slice(l,m).arrayBuffer());tr(o.signal),s.push(Ue(w,e,i)),l=m,o.onProgress?.(l,c),l<c&&await a();}return new Blob(s)}var ar=8,an=16;function Ei(e){let n=q.md.md5.create();return n.update(e,"utf8"),n.digest().toHex()}function cr(e){return new TextEncoder().encode(e)}function ki(e){let n=e.length;for(;n>0&&e[n-1]===0;)n-=1;return new TextDecoder().decode(e.subarray(0,n))}function Ti(e){let n=atob(e),t=new Uint8Array(n.length);for(let r=0;r<n.length;r++)t[r]=n.charCodeAt(r);return t}function Ri(e){let n="";for(let t of e)n+=String.fromCharCode(t);return btoa(n)}function Di(e){let n=Math.ceil(e.length/ar)*ar;if(n===e.length)return e;let t=new Uint8Array(n);return t.set(e),t}function dr(e,n=Ei){let t=e.trim();if(t==="")throw new Error("collect TEA key: userId \u4E3A\u7A7A");let r=n(t).replace(/[^0-9a-f]/gi,"");if(r.length<an)throw new Error("collect TEA key: MD5 \u957F\u5EA6\u4E0D\u8DB3");let o=cr(r.slice(0,an).toUpperCase());if(o.length<an)throw new Error("collect TEA key: \u6D3E\u751F\u7ED3\u679C\u4E0D\u8DB3 16 \u5B57\u8282");return o.subarray(0,an)}function ur(e,n,t){return Ri(Oe(dr(n,t),Di(cr(e))))}function Ui(e,n,t){return ki(Be(dr(n,t),Ti(e)))}function Bi(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function Gn(e){let n=e.trim();if(n===""||!n.startsWith("{"))return null;try{return Bi(JSON.parse(n))}catch{return null}}function Oi(e){let n=e.trim(),t=n.indexOf("}");return t>=0?n.slice(0,t+1):n}function lr(e,n,t){let r=Gn(e);if(r!==null)return r;if(e.trim()===""||n.trim()==="")return null;try{let o=Ui(e,n,t);return Gn(o)??Gn(Oi(o))}catch{return null}}var Ni="core";var Ne=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";}},V=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 R(e,n,t,r){let o=r!==void 0&&"responseMode"in r&&r.responseMode==="strict",i;try{i=await e(n,{target:Ni,data:t,...r?.method===void 0?{}:{method:r.method},...r?.headers===void 0?{}:{headers:r.headers},...r?.prefix===void 0?{}:{prefix:r.prefix}});}catch(a){throw o?new Ne(a instanceof Error?a.message:String(a),a):a}if(o){let a=typeof i.msg=="string"?i.msg:"";if(i.code===502)throw new Ne(a);return i.code!==200?{ok:false,code:i.code,message:a,data:i.data}:{ok:true,code:200,message:a,data:i.data}}return {code:i.code,data:i.code===200&&i.data!=null?i.data:null}}function pr(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 R(e,"/user/encrypt_info/info",t,r)}function Ki(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 i=0;i<r.length;i++)o[i]=r.charCodeAt(i)&255;return o}function Gi(e){let n=e.clientType,t=new Map,r=new Map,o=Ie((y,u)=>y===u),i=null,a=null;function c(y,u){e.onError?.(y,u);}function s(){if(i!==null)return Promise.resolve(i);if(a!==null)return a;let y=Promise.resolve().then(()=>e.crypto.generateTempKeyPair()).then(u=>(i=u,u)).finally(()=>{a===y&&(a=null);});return a=y,y}async function l(y){let u;try{u=await s();}catch(d){return c(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u751F\u6210\u4E34\u65F6 RSA \u5BC6\u94A5\u5931\u8D25\uFF08userId=${y}\uFF09`,d),null}let h;try{h=await pr(e.client,{publicKey:u.publicKeyBase64,clientType:n});}catch(d){return c(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u8BF7\u6C42\u5F02\u5E38\uFF08userId=${y}\uFF09`,d),null}if(h.data===null)return c(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u4E1A\u52A1\u5931\u8D25\uFF08userId=${y}\uFF0Ccode=${h.code}\uFF09`),null;let v=h.data.prv_key??h.data.prvKey??"",T=String(h.data.version??"").trim();if(v==="")return c(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u54CD\u5E94\u7F3A\u5C11 prv_key\uFF08userId=${y}\uFF09`),null;try{let d=e.crypto.rsaDecryptPkcs1({data:Ki(v),privateKey:u.privateKey}),f=new TextDecoder().decode(d).trim();if(f==="")return c(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u89E3\u51FA\u7684\u79C1\u94A5\u4E3A\u7A7A\uFF08userId=${y}\uFF09`),null;let C={privateKey:f,version:T};return t.set(y,C),C}catch(d){return c(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u4E34\u65F6\u79C1\u94A5\u89E3 prv_key \u5931\u8D25\uFF08userId=${y}\uFF09`,d),null}}function m(y,u){let h=y.trim();if(h==="")return Promise.resolve(null);if(u!==void 0){let f=r.get(h);if(f!==void 0)return f;o.shouldRenegotiate(h,u.staleKey,t.get(h)?.privateKey)&&t.delete(h);}let v=t.get(h);if(v!==void 0)return Promise.resolve(v);let T=r.get(h);if(T!==void 0)return T;let d=l(h).finally(()=>{r.get(h)===d&&r.delete(h);});return r.set(h,d),d}function w(y){return t.get(y.trim())??null}return {getUserPrivateKey:m,getCachedPrivateKey:w}}function fr(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 R(e,"/user_group/encrypt_info",t,r)}function Li(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 i=0;i<r.length;i++)o[i]=r.charCodeAt(i)&255;return o}function Hi(e){let n=e.clientType,t=new Map,r=new Map,o=new Map,i=Ie((u,h)=>u===h),a=null,c=null;function s(){if(a!==null)return Promise.resolve(a);if(c!==null)return c;let u=Promise.resolve().then(()=>e.crypto.generateTempKeyPair()).then(h=>(a=h,h)).finally(()=>{c===u&&(c=null);});return c=u,u}async function l(u){let h=o.get(u)??0,v;try{v=await s();}catch(b){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u751F\u6210\u4E34\u65F6 RSA \u5BC6\u94A5\u5931\u8D25\uFF08groupId=${u}\uFF09`,b),null}let T;try{T=await fr(e.client,{groupId:u,publicKey:v.publicKeyBase64,clientType:n});}catch(b){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u8BF7\u6C42\u5F02\u5E38\uFF08groupId=${u}\uFF09`,b),null}if(T.data===null)return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u4E1A\u52A1\u5931\u8D25\uFF08groupId=${u}\uFF0Ccode=${T.code}\uFF09`),null;let d=T.data,f=String(d.prv_key??d.prvKey??d.private_key??"").trim(),C=String(d.pub_key??d.pubKey??d.public_key??"").trim(),p=String(d.version??"").trim();if(f==="")return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u54CD\u5E94\u7F3A\u5C11 prv_key\uFF08groupId=${u}\uFF09`),null;try{let b=e.crypto.rsaDecryptPkcs1({data:Li(f),privateKey:v.privateKey}),M=new TextDecoder().decode(b).trim();if(M==="")return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u89E3\u51FA\u7684\u7FA4\u79C1\u94A5\u4E3A\u7A7A\uFF08groupId=${u}\uFF09`),null;let _={privateKey:M,publicKey:C,version:p};return (o.get(u)??0)===h&&t.set(u,_),_}catch(b){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u4E34\u65F6\u79C1\u94A5\u89E3 prv_key \u5931\u8D25\uFF08groupId=${u}\uFF09`,b),null}}function m(u,h){let v=u.trim();if(v==="")return Promise.resolve(null);if(h!==void 0){let C=r.get(v);if(C!==void 0)return C;i.shouldRenegotiate(v,h.staleKey,t.get(v)?.privateKey)&&t.delete(v);}let T=t.get(v);if(T!==void 0)return Promise.resolve(T);let d=r.get(v);if(d!==void 0)return d;let f=l(v).finally(()=>{r.get(v)===f&&r.delete(v);});return r.set(v,f),f}function w(u){return t.get(u.trim())??null}function y(u){let h=u.trim();t.delete(h),r.delete(h),o.set(h,(o.get(h)??0)+1),i.reset(h);}return {getGroupKeys:m,getCachedGroupKeys:w,getCachedGroupKeyVersion:u=>t.get(u.trim())?.version??null,clearGroupKeys:y}}async function Ke(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 R(e,"/user/info/other",t,r)).data}function Fi(e){let n=e.clientType,t=new Map,r=new Map;async function o(a){try{let s=((await Ke(e.client,{userId:a,clientType:n}))?.public_key??"").trim();return s===""?(e.onError?.(`\u53D6\u5BF9\u7AEF\u516C\u94A5\uFF1A/user/info/other \u65E0 public_key\uFF08userId=${a}\uFF09`),null):(t.set(a,s),s)}catch(c){return e.onError?.(`\u53D6\u5BF9\u7AEF\u516C\u94A5\u8BF7\u6C42\u5F02\u5E38\uFF08userId=${a}\uFF09`,c),null}}function i(a,c){let s=a.trim();if(s==="")return Promise.resolve(null);c?.force===true&&t.delete(s);let l=t.get(s);if(l!==void 0)return Promise.resolve(l);let m=r.get(s);if(m!==void 0)return m;let w=o(s).finally(()=>{r.get(s)===w&&r.delete(s);});return r.set(s,w),w}return {getPeerPublicKey:i}}var me=16;function mr(e){let n="";for(let t of e)n+=String.fromCharCode(t);return n}function gr(e){let n=new Uint8Array(e.length);for(let t=0;t<e.length;t++)n[t]=e.charCodeAt(t)&255;return n}function yr(e){return e.replace(/(.{64})/g,`$1
2
+ `).trim()}function $i(e){return e.replace(/-----BEGIN[^-]+-----/g,"").replace(/-----END[^-]+-----/g,"").replace(/\s+/g,"")}function Ji(e){let n=(e??"").trim();if(n==="")throw new Error("RSA \u79C1\u94A5\u4E3A\u7A7A");if(n.includes("-----BEGIN"))return q.pki.privateKeyFromPem(n);let t=n.replace(/\s+/g,""),r=[];try{return q.pki.privateKeyFromAsn1(q.asn1.fromDer(q.util.decode64(t)))}catch(i){r.push(i);}let o=yr(t);for(let i of ["PRIVATE KEY","RSA PRIVATE KEY"])try{return q.pki.privateKeyFromPem(`-----BEGIN ${i}-----
3
+ ${o}
4
+ -----END ${i}-----`)}catch(a){r.push(a);}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 hr(e){let n=Ji(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 s=0;s<r.length;s+=t){let l=Math.min(s+t,r.length);try{let m=n.decrypt(mr(r.subarray(s,l)),"RSAES-PKCS1-V1_5");o.push(gr(m));}catch(m){let w=m instanceof Error?m.message:String(m);throw new Error(`RSA-PKCS1 \u89E3\u5BC6\u5931\u8D25\uFF08\u5BC6\u6587 ${r.length}B\uFF0C\u5757 ${s}..${l}\uFF0CkeySize ${t}B\uFF0C\u79C1\u94A5 ${n.n.bitLength()}bit\uFF09\uFF1A${w}`)}}let i=o.reduce((s,l)=>s+l.length,0),a=new Uint8Array(i),c=0;for(let s of o)a.set(s,c),c+=s.length;return a}function ji(e){let n=hr({data:e.secretKey,privateKey:e.privateKey});if(n.length<me)throw new Error(`\u7AEF\u5230\u7AEF\u89E3\u5BC6\u5931\u8D25\uFF1ARSA \u89E3\u51FA\u7684 teaKey \u957F\u5EA6 ${n.length} < ${me}`);return Be(n,e.cipherData)}function Vi(e){let n=(e??"").trim();if(n==="")throw new Error("RSA \u516C\u94A5\u4E3A\u7A7A");if(n.includes("-----BEGIN"))return q.pki.publicKeyFromPem(n);let t=n.replace(/\s+/g,""),r=[];try{return q.pki.publicKeyFromAsn1(q.asn1.fromDer(q.util.decode64(t)))}catch(i){r.push(i);}let o=yr(t);for(let i of ["PUBLIC KEY","RSA PUBLIC KEY"])try{return q.pki.publicKeyFromPem(`-----BEGIN ${i}-----
5
+ ${o}
6
+ -----END ${i}-----`)}catch(a){r.push(a);}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 br(){let e=new Uint8Array(me),n=new Uint8Array(1);for(let t=0;t<me;t++){let r=0;do globalThis.crypto.getRandomValues(n),r=n[0]??0;while(r===0);e[t]=r;}return e}function qi(e,n){if(n.length===0)throw new Error("RSA \u52A0\u5BC6\uFF1A\u660E\u6587\u4E3A\u7A7A");let t=Vi(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 s=0;s<n.length;s+=r){let l=Math.min(s+r,n.length),m=t.encrypt(mr(n.subarray(s,l)),"RSAES-PKCS1-V1_5");o.push(gr(m));}let i=o.reduce((s,l)=>s+l.length,0),a=new Uint8Array(i),c=0;for(let s of o)a.set(s,c),c+=s.length;return a}function zi(e){let n=e.teaKey??br();if(n.length<me)throw new Error(`\u7AEF\u5230\u7AEF\u52A0\u5BC6\u5931\u8D25\uFF1AteaKey \u957F\u5EA6 ${n.length} < ${me}`);let t=n.subarray(0,me),r=Oe(t,e.plain);return {secretKey:qi(e.publicKey,t),cipherData:r}}function Wi(e){return Be(e.teaKey,e.cipherData)}function Yi(e){return Oe(e.teaKey,e.plain)}function Qi(e){return Kn(e.teaKey,e.plain,"encrypt",void 0,e.signal===void 0?{}:{signal:e.signal})}function Xi(e){return Kn(e.teaKey,e.cipherData,"decrypt",void 0,e.signal===void 0?{}:{signal:e.signal})}function Zi(e){return or(e.teaKey,e.plain)}function ea(e){return ir(e.teaKey,e.cipherData)}function na(){return new Promise((e,n)=>{q.pki.rsa.generateKeyPair({bits:2048,e:65537,workers:-1},(t,r)=>{if(t){n(t);return}e({publicKeyBase64:$i(q.pki.publicKeyToPem(r.publicKey)),privateKey:q.pki.privateKeyToPem(r.privateKey)});});})}function ta(){return {decryptEndToEnd:ji,encryptEndToEnd:zi,decryptSymmetric:Wi,encryptSymmetric:Yi,encryptSymmetricChunked:Qi,decryptSymmetricChunked:Xi,encryptFileSimple:Zi,decryptFileSimple:ea,randomTeaKey:br,generateTempKeyPair:na,rsaDecryptPkcs1:hr}}function Ln(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function Ge(e,n){return R(e,"/friend/apply/list_paginated",{type:n.listType,page:n.page,page_size:n.pageSize},Ln(n.clientType,"GET"))}function Le(e,n){return R(e,"/friend/apply/agree",{id:n.applicationId},Ln(n.clientType,"POST"))}function He(e,n){return R(e,"/friend/apply/del",{id:n.applicationId},Ln(n.clientType,"POST"))}var Cr=50,wr=20,Pr=1,Hn=2,Fn=3,ra=4,oa=5,Ir=0,ia=1,aa=2;function sa(e){switch(e){case Ir:case ia:case aa:return e;default:return}}var Se=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},W=class extends Error{constructor(n){super(`application \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ApplicationMappingError";}};function G(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Sr(e){let n=G(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 vr(e){let n=G(e.status);if(e.status===void 0||n==="")return true;let t=Number(n),r=sa(t);if(r===void 0)throw new W(`\u672A\u77E5\u7533\u8BF7\u72B6\u6001\uFF1A${n}`);return r===Ir}function ca(e){let n=G(e.type);if(n==="")return true;if(Number(n)!==Pr)throw new W(`\u8054\u7CFB\u4EBA\u7533\u8BF7\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${n}`);return true}function da(e){let n=Number(G(e.type));if(n!==Hn&&n!==Fn&&n!==ra&&n!==oa)throw new W(`GROUP/CHANNEL \u6DF7\u5408\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${G(e.type)||"<empty>"}`);return n}function sn(e){if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>Cr)throw new W(`limit \u5FC5\u987B\u4E3A 1-${Cr}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit};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 Mr(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 $n(e){let n=e.trim();if(n==="")throw new W("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");return n}function ua(e){let n=$n(G(e.id)||G(e.aid)),t=G(e.user_id)||G(e.user_info?.user_id),r=G(e.nick_name??e.nickname??e.name)||G(e.user_info?.nick_name??e.user_info?.nickname??e.user_info?.name);if(t===""||r==="")throw new W(`\u8054\u7CFB\u4EBA\u7533\u8BF7\u4EBA\u8EAB\u4EFD\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let o=G(e.head_img_url??e.avatar)||G(e.user_info?.head_img_url??e.user_info?.avatar),i=G(e.user_info?.mid),a=Sr(e.create_time??e.createTime??e.update_version);return {applicationId:n,applicantId:t,applicantName:r,...o===""?{}:{applicantAvatar:o},...i===""?{}:{applicantDisplayId:i},message:G(e.remarks??e.introduce_self),...a===void 0?{}:{createdAt:a}}}function la(e){let n=$n(G(e.id)||G(e.aid)),t=G(e.group_id)||G(e.group_info?.group_id);if(t==="")throw new W(`GROUP id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let r=G(e.user_id)||G(e.user_info?.user_id),o=G(e.nick_name??e.nickname??e.name)||G(e.user_info?.nick_name??e.user_info?.nickname??e.user_info?.name);if(r===""||o==="")throw new W(`GROUP \u7533\u8BF7\u4EBA\u6216\u9080\u8BF7\u4EBA\u8EAB\u4EFD\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let i=G(e.head_img_url??e.avatar)||G(e.user_info?.head_img_url??e.user_info?.avatar),a=G(e.user_info?.mid),c=G(e.group_info?.name??e.group_info?.group_name);if(c==="")throw new W(`GROUP \u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let s=G(e.group_info?.head_img_url??e.group_info?.avatar),l=Sr(e.create_time??e.createTime??e.update_version);return {applicationId:n,groupId:t,kind:Number(e.type)===Fn?"invite":"request",actor:{id:r,name:o,...i===""?{}:{avatarUrl:i},...a===""?{}:{displayId:a}},target:{id:t,name:c,...s===""?{}:{avatarUrl:s}},message:G(e.remarks??e.introduce_self),...l===void 0?{}:{createdAt:l}}}async function cn(e,n,t){let r=await t(e.client,{applicationId:$n(n),clientType:e.clientType});if(!r.ok)throw new Se(r.code,r.message)}function pa(e){async function n(t){let{pageSize:r}=sn(t),{page:o}=sn(t);for(let i=0;i<wr;i+=1){let a=await Ge(e.client,{listType:Pr,page:o,pageSize:r,clientType:e.clientType});if(!a.ok)throw new Se(a.code,a.message);let c=Mr(a.data),s=c.filter(w=>ca(w)&&vr(w)).map(ua),l=c.length<r,m=o+1;if(s.length>0||l)return {items:s,exhausted:l,...l?{}:{nextCursor:String(m)}};o=m;}return {items:[],exhausted:false,nextCursor:String(o)}}return {listPendingApplications:n,acceptApplication:t=>cn(e,t,Le),ignoreApplication:t=>cn(e,t,He)}}function fa(e){async function n(t){let{pageSize:r}=sn(t),{page:o}=sn(t);for(let i=0;i<wr;i+=1){let a=await Ge(e.client,{listType:Hn,page:o,pageSize:r,clientType:e.clientType});if(!a.ok)throw new Se(a.code,a.message);let c=Mr(a.data),s=c.filter(w=>{let y=da(w);return (y===Hn||y===Fn)&&vr(w)}).map(la),l=c.length<r,m=o+1;if(s.length>0||l)return {items:s,exhausted:l,...l?{}:{nextCursor:String(m)}};o=m;}return {items:[],exhausted:false,nextCursor:String(o)}}return {listPendingApplications:n,acceptApplication:t=>cn(e,t,Le),ignoreApplication:t=>cn(e,t,He)}}function O(e){let n=typeof e=="string"||typeof e=="number"?String(e).trim():"";return n===""?void 0:n}function ma(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 ga(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 ya(e){let n=Number(e.product_id),t=ma(e.is_dynamic);return {...ga(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 Ar(e,n){return Array.isArray(e.mini_program_rel_list)?e.mini_program_rel_list.filter(t=>t!==null&&typeof t=="object").map(t=>ya(t)):n.source==="info"?[]:void 0}function _r(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function xr(e,n){return R(e,"/user_radio/list",{user_id:n.userId,update_version:n.updateVersion,page:n.page,page_size:n.pageSize},_r(n.clientType,"GET"))}function Er(e,n){return R(e,"/user_radio/info",{radio_id:n.channelId},_r(n.clientType,"POST"))}var kr=500,Fe=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},ie=class extends Error{constructor(n){super(`CHANNEL profile \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelProfileMappingError";}};function Tr(e,n){let t=typeof e=="string"||typeof e=="number"?String(e).trim():"";if(t==="")throw new ie(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function ge(e){let n=typeof e=="string"||typeof e=="number"?String(e).trim():"";return n===""?void 0:n}function ve(e){return Number(e)===1}function ha(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 ba(e,n){return Number(e)===1?"member":Number(e)===9?"admin":Number(e)===10?"owner":n===false?"guest":"unknown"}function Ca(e){let n=e.is_in===void 0?void 0:ve(e.is_in),t=ve(e.radio_user?.is_del),r=ve(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 wa(e,n,t){let r=ge(e.radio_user?.user_id),o=e.radio_setting?.un_speaking_user_ids,i=ge(e.radio_setting?.un_speaking_period);return {role:n,baseState:t,resolvedState:t,allMembersMuted:ve(e.radio_setting?.is_unspeeking_all),currentUserMuted:r!==void 0&&Array.isArray(o)&&o.map(String).includes(r),...i===void 0?{}:{mutePeriod:i}}}function Pa(e){if(e!=null)return Number(e)===1?"standard":Number(e)===2?"competition":"unknown"}function Ia(e){let n=ge(e);return n!==void 0&&/^\d+$/.test(n)?n.replace(/^0+(?=\d)/,""):void 0}function Sa(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 Rr(e,n,t){let r=Tr(e.radio_id??e.id,"id"),o=Tr(e.name,"name"),i=e.is_in===void 0?void 0:ve(e.is_in),a=ba(e.radio_user?.role_id,i),c=Ca(e),s=wa(e,a,c),l=ya$1({channelState:c,snapshot:s,nowMs:n}),m={...s,resolvedState:l.channelState},w=Ia(e.update_version),y=ge(e.head_img_url),u=ge(e.desc),h=ge(e.user_id),v=Number(e.total_users),T=Pa(e.type),d=ha(e.radio_setting?.is_unvisit_other),f=e.verify_way===void 0?void 0:Number(e.verify_way),C=f!==void 0&&Number.isSafeInteger(f)?f:void 0,p=ge(e.invite_code),b=Ar(e,{source:t});return {id:r,name:o,...y===void 0?{}:{avatar:y},...u===void 0?{}:{description:u},...h===void 0?{}:{ownerId:h},...Number.isFinite(v)&&v>=0?{memberCount:v}:{},...C===void 0?{}:{verifyType:C},...p===void 0?{}:{inviteCode:p},role:a,permissions:l.permissions,channelState:l.channelState,allMembersMuted:m.allMembersMuted,...d===void 0?{}:{memberPrivateChatDisabled:d},accessSnapshot:m,...e.radio_user?.is_undisturb===void 0?{}:{muted:ve(e.radio_user.is_undisturb)},...T===void 0?{}:{channelKind:T},...w===void 0?{}:{updateVersion:w},...b===void 0?{}:{miniProgramRels:b}}}function Dr(e){return {...e,updatedAt:Date.now()}}function Ur(e,n){if(e.accessSnapshot===void 0)return {...e,permissions:xa$1(e.role,e.channelState)};let t=ya$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 Jn(e,n){let{updatedAt:t,...r}=Ur(e,n);return r}function va(e){let n=new Map,t=new Map,r=new Map,o="0",i=false,a=null,c=0,s=null,l=0;function m(){if(i)return Promise.resolve();if(a!==null)return a;let u=c;return a=(async()=>{if(e.storage!==void 0){let[h,v]=await Promise.all([e.storage.getChannelProfiles(),e.storage.getChannelListVersion()]);if(u!==c)return;for(let T of h)n.set(T.id,Ur(T,e.now?.()??Date.now()));o=/^\d+$/.test(v)?v:"0";}i=true;})().finally(()=>{a=null;}),a}function w(u){if(u?.forceRefresh!==true&&s!==null)return s;let h=++l,v=(async()=>{await m();let T=(await e.getUserId()).trim();if(T==="")throw new ie("user_id \u4E0D\u80FD\u4E3A\u7A7A");let d=u?.forceRefresh===true?"0":o,f=[];for(let p=1;;p+=1){let b=await xr(e.client,{userId:T,updateVersion:d,page:p,pageSize:kr,clientType:e.clientType});if(!b.ok)throw new Fe(b.code,b.message);if(b.data===null)break;if(!Array.isArray(b.data))throw new ie("list data \u5FC5\u987B\u662F\u6570\u7EC4");let M=e.now?.()??Date.now(),_=b.data.map(I=>Rr(I,M,"list"));if(f.push(..._),_.length<kr)break}if(h!==l)return [...n.values()].map(p=>Jn(p,e.now?.()??Date.now()));let C=o;for(let p of f)n.set(p.id,Dr(p)),p.updateVersion!==void 0&&(C=Sa(C,p.updateVersion));return o=C,e.storage!==void 0&&(await e.storage.saveChannelProfiles([...n.values()]),await e.storage.saveChannelListVersion(o)),[...n.values()].map(p=>Jn(p,e.now?.()??Date.now()))})();return s=v,v.finally(()=>{s===v&&(s=null);}).catch(()=>{}),v}function y(u,h){let v=u.trim();if(v==="")return Promise.reject(new ie("channel id \u4E0D\u80FD\u4E3A\u7A7A"));let T=h?.forceRefresh===true;if(!T){let C=t.get(v);if(C!==void 0)return C}let d=(r.get(v)??0)+1;T&&r.set(v,d);let f=(async()=>{await m();let C=n.get(v);if(!T&&C!==void 0&&C.miniProgramRels!==void 0)return Jn(C,e.now?.()??Date.now());let p=await Er(e.client,{channelId:v,clientType:e.clientType});if(!p.ok)throw new Fe(p.code,p.message);if(p.data===null||p.data===void 0)throw new ie("info data \u4E0D\u80FD\u4E3A\u7A7A");let b=Rr(p.data,e.now?.()??Date.now(),"info");if(b.id!==v)throw new ie(`info id \u4E0D\u5339\u914D\uFF1A\u8BF7\u6C42 ${v}\uFF0C\u54CD\u5E94 ${b.id}`);if((r.get(v)??d)===d){let M=Dr(b);n.set(v,M),await e.storage?.saveChannelProfiles([M]);}return b})().finally(()=>{t.get(v)===f&&t.delete(v);});return r.set(v,d),t.set(v,f),f}return {listProfiles:w,getProfile:y,clearCache(){c+=1,l+=1;for(let u of new Set([...n.keys(),...t.keys(),...r.keys()]))r.set(u,(r.get(u)??0)+1);n.clear(),t.clear(),s=null,o="0",i=true,a=null;}}}function Br(e,n){return Ge(e,{listType:2,page:n.page,pageSize:n.pageSize,clientType:n.clientType})}function Or(e,n){return Le(e,n)}function Nr(e,n){return He(e,n)}var Ma=20,Kr=50,Aa=20,_a=2,xa=3,Lr=4,Ea=5,Hr=0,ka=1,Ta=2;function Ra(e){switch(e){case Hr:case ka:case Ta:return e;default:return}}var $e=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},Q=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 Da(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 Ua(e){let n=L(e.status);if(e.status===void 0||n==="")return true;let t=Number(n),r=Ra(t);if(r===void 0)throw new Q(`\u672A\u77E5\u7533\u8BF7\u72B6\u6001\uFF1A${n}`);return r===Hr}function Ba(e){let n=Number(L(e.type));if(n!==_a&&n!==xa&&n!==Lr&&n!==Ea)throw new Q(`GROUP/CHANNEL \u6DF7\u5408\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${L(e.type)||"<empty>"}`);return n}function Oa(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 Q("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");if(t==="")throw new Q(`\u7533\u8BF7\u4EBA id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);if(o==="")throw new Q(`CHANNEL id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let i=L(e.user_info?.nick_name)||L(e.user_info?.nickname)||L(e.user_info?.name)||t,a=L(e.user_info?.head_img_url)||L(e.user_info?.avatar),c=L(e.user_info?.mid),s=L(r?.name)||L(r?.radio_name)||L(r?.channel_name)||o,l=L(r?.head_img_url)||L(r?.avatar),m=Da(e.create_time??e.createTime);return {applicationId:n,applicantId:t,applicantName:i,...a===""?{}:{applicantAvatar:a},...c===""?{}:{applicantDisplayId:c},channelId:o,channelName:s,...l===""?{}:{channelAvatar:l},message:L(e.remarks)||L(e.introduce_self),...m===void 0?{}:{createdAt:m}}}function Gr(e){if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>Kr)throw new Q(`limit \u5FC5\u987B\u4E3A 1-${Kr}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit||Ma};if(!/^[1-9]\d*$/.test(e.cursor))throw new Q("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let n=Number(e.cursor);if(!Number.isSafeInteger(n))throw new Q("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {page:n,pageSize:e.limit}}function Na(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 Q("data.list \u5FC5\u987B\u662F\u6570\u7EC4\uFF0C\u6216\u5728 count=0 \u65F6\u4E3A null")}function Ka(e){let n=e.trim();if(n==="")throw new Q("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");return n}function Ga(e){async function n(r){let{pageSize:o}=Gr(r),{page:i}=Gr(r);for(let a=0;a<Aa;a+=1){let c=await Br(e.client,{page:i,pageSize:o,clientType:e.clientType});if(!c.ok)throw new $e(c.code,c.message);let s=Na(c.data),l=s.filter(y=>Ba(y)===Lr&&Ua(y)).map(Oa),m=s.length<o,w=i+1;if(l.length>0||m)return {items:l,exhausted:m,...m?{}:{nextCursor:String(w)}};i=w;}return {items:[],exhausted:false,nextCursor:String(i)}}async function t(r,o){let i=await o(e.client,{applicationId:Ka(r),clientType:e.clientType});if(!i.ok)throw new $e(i.code,i.message)}return {listJoinApplications:n,acceptJoinApplication:r=>t(r,Or),ignoreJoinApplication:r=>t(r,Nr)}}function dn(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function jn(e,n){return R(e,"/user_radio/users",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},dn(n.clientType,"GET"))}function Vn(e,n){return R(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"},dn(n.clientType,"POST"))}function Fr(e,n){return R(e,"/user_radio/admins",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},dn(n.clientType,"GET"))}function $r(e,n){return R(e,"/user_radio/user/infos",{radio_id:n.channelId,user_ids:n.userIds.join(",")},dn(n.clientType,"POST"))}var un=18,La=12,Ha=300*1e3,Fa=32,Je=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},J=class extends Error{constructor(n){super(`CHANNEL member \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelMemberMappingError";}};function ae(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function $a(e){return Number(e)===1?"member":Number(e)===9?"admin":Number(e)===10?"owner":"unknown"}function Ja(e){let n=ae(e);return /^\d+$/.test(n)?n.replace(/^0+(?=\d)/,""):void 0}function qn(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 Jr(e,n){let t=ae(e.radio_id);if(t==="")throw new J("radio_id \u4E0D\u80FD\u4E3A\u7A7A");if(t!==n)throw new J(`\u6210\u5458\u9891\u9053 ${t} \u4E0E\u8BF7\u6C42\u9891\u9053 ${n} \u4E0D\u4E00\u81F4`);let r=ae(e.user_id)||ae(e.user_info?.user_id);if(r==="")throw new J("user_id \u4E0D\u80FD\u4E3A\u7A7A");if(e.is_master!==void 0){let l=Number(e.is_master);if(l!==0&&l!==1)throw new J(`is_master \u975E\u6CD5\uFF1A${ae(e.is_master)}`)}let o=ae(e.nick_name),i=ae(e.user_info?.nick_name)||ae(e.user_info?.name),a=ae(e.user_info?.head_img_url),c=Ja(e.update_version),s=Number(e.join_type);return {userId:r,...o===""?{}:{nickname:o},displayName:o||i||r,...a===""?{}:{avatar:a},role:$a(e.role_id),...Number.isInteger(s)?{joinType:s}:{},...c===void 0?{}:{updateVersion:c}}}function ja(e){if(e.channelId.trim()==="")throw new J("channelId \u4E0D\u80FD\u4E3A\u7A7A");if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>un)throw new J(`limit \u5FC5\u987B\u4E3A 1-${un}`);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 t=Number(e.cursor);if(!Number.isSafeInteger(t))throw new J("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {page:t,pageSize:e.limit}}function jr(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 Va(e){let n=e.now??(()=>Date.now()),t=e.isActive??(()=>true),r=e.cacheTtlMs??Ha,o=new Map,i=new Map,a=new Map,c=new Map,s=new Map,l=new Set,m=new Set,w=(I,P)=>`${I}:${P}`;function y(I){let P=s.get(I);return P!==void 0?P:(s.set(I,0),0)}function u(I){let P=I.trim();if(P==="")throw new J("channelId \u4E0D\u80FD\u4E3A\u7A7A");return P}function h(I){for(i.delete(I.channelId),i.set(I.channelId,I);i.size>Fa;){let P=i.keys().next().value;if(P===void 0)break;i.delete(P);}}function v(I){let P=i.get(I);if(P!==void 0)return h(P),Promise.resolve(P);if(m.has(I)||e.storage?.getChannelMemberSnapshot===void 0)return Promise.resolve(null);let A=a.get(I);if(A!==void 0)return A;let g=y(I),S=e.storage.getChannelMemberSnapshot(I).then(x=>!t()||x===null||x.channelId!==I||g!==y(I)||m.has(I)?null:(h(x),x)).finally(()=>{a.get(I)===S&&a.delete(I);});return a.set(I,S),S}function T(I,P){let A=I.map(S=>S.userId),g=new Map(I.map(S=>[S.userId,S]));for(let S of P){g.has(S.userId)||A.push(S.userId);let x=g.get(S.userId);(x===void 0||qn(S.updateVersion,x.updateVersion)>=0)&&g.set(S.userId,S);}return A.map(S=>g.get(S))}async function d(I,P){let A=await ca$1(P);return I.filter(g=>A.match(g.displayName)!==null||A.match(g.userId,{pinyin:false})!==null)}async function f(I,P,A={}){if(!t()||P!==y(I.channelId))return;let g=I.channelId,S=m.has(g),x=A.allowPersistentRebuild===true&&S&&e.storage?.deleteChannelMemberSnapshot===void 0&&e.storage?.saveChannelMemberSnapshot!==void 0;(!S||x)&&await e.storage?.saveChannelMemberSnapshot?.(I),t()&&P===y(g)&&(h(I),A.allowPersistentRebuild===true&&(!S||e.storage?.deleteChannelMemberSnapshot===void 0)&&m.delete(g));}async function C(I,P,A,g,S=false,x){let E=await v(I);if(!t()||A!==y(I))return;let D=n(),k=x!==void 0&&E?.nextCursor===x,U=S&&E!==null&&!k,B=g!==void 0&&!U?g.nextCursor:E?.nextCursor,F={channelId:I,items:T(E?.items??[],P),...B===void 0?{}:{nextCursor:B},exhausted:U?E.exhausted:g?.exhausted??E?.exhausted??false,updatedAt:D};await f(F,A);}async function p(I,P,A){if(!t()||A!==y(I))return [...P];let g=n(),S=g+r,x=[],E=[],D=new Map;for(let k of P){let U=w(I,k.userId),B=o.get(U)?.member;if(B!==void 0&&qn(k.updateVersion,B.updateVersion)<0){E.push(B);continue}x.push({channelId:I,...k,updatedAt:g}),E.push(k),D.set(U,{member:k,expiresAt:S});}if(x.length>0&&t()&&A===y(I)&&!l.has(I)&&(await e.storage?.saveChannelMembers?.(x),e.storage?.getChannelMembers!==void 0&&t()&&A===y(I))){let k=await e.storage.getChannelMembers(I,x.map(B=>B.userId)),U=new Map(k.map(B=>{let{channelId:F,updatedAt:j,...ce}=B;return [ce.userId,{member:ce,updatedAt:j}]}));for(let B=0;B<E.length;B+=1){let F=E[B];if(F===void 0)continue;let j=U.get(F.userId);j===void 0||qn(j.member.updateVersion,F.updateVersion)<=0||(E[B]=j.member,D.set(w(I,F.userId),{member:j.member,expiresAt:j.updatedAt+r}));}}if(t()&&A===y(I))for(let[k,U]of D)o.set(k,U);return E}async function b(I,P){let A=u(I.channelId),{page:g,pageSize:S}=ja({...I,channelId:A}),x=y(A),E=await P(A,g,S);if(!E.ok)throw new Je(E.code,E.message);if(E.data!==null&&!Array.isArray(E.data))throw new J("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let D=jr((E.data??[]).map(B=>Jr(B,A))),k=await p(A,D,x),U=(E.data??[]).length<S;return {items:k,exhausted:U,...U?{}:{nextCursor:String(g+1)}}}function M(I){let P=u(I),A=c.get(P);if(A!==void 0)return A;let g=y(P),S=(async()=>{let x,E=false,D=[];for(let U=0;U<La&&!E;U+=1){let B=await b({channelId:P,limit:un,...x===void 0?{}:{cursor:x}},(F,j,ce)=>jn(e.client,{channelId:F,page:j,pageSize:ce,clientType:e.clientType}));if(!t()||g!==y(P))throw new J("\u6210\u5458\u5FEB\u7167\u9884\u53D6\u5DF2\u56E0\u6210\u5458\u53D8\u5316\u5931\u6548");D=T(D,B.items),x=B.nextCursor,E=B.exhausted;}let k={channelId:P,items:D,...x===void 0?{}:{nextCursor:x},exhausted:E,updatedAt:n()};return await f(k,g,{allowPersistentRebuild:true}),{items:k.items,...k.nextCursor===void 0?{}:{nextCursor:k.nextCursor},exhausted:k.exhausted}})().finally(()=>{c.get(P)===S&&c.delete(P);});return c.set(P,S),S}async function _(I){let P=u(I),A=y(P)+1;s.set(P,A),l.add(P),m.add(P),i.delete(P),a.delete(P),c.delete(P);let g=`${P}:`;for(let S of o.keys())S.startsWith(g)&&o.delete(S);e.storage?.deleteChannelMembers===void 0&&e.storage?.deleteChannelMemberSnapshot===void 0||(await Promise.all([e.storage.deleteChannelMembers?.(P),e.storage.deleteChannelMemberSnapshot?.(P)]),A===y(P)&&(e.storage?.deleteChannelMembers!==void 0&&l.delete(P),e.storage?.deleteChannelMemberSnapshot!==void 0&&m.delete(P)));}return {async prefetchMembers(I){let P=u(I),A=await v(P),g=m.has(P);A!==null&&!g&&A.updatedAt+r>n()||await M(P);},async getCachedMembers(I){let P=u(I.channelId),A=await v(P);if(A===null)return null;let g=I.query?.trim()??"";return g===""&&m.has(P)?null:g===""?{items:[...A.items],...A.nextCursor===void 0?{}:{nextCursor:A.nextCursor},exhausted:A.exhausted}:{items:await d(A.items,g),exhausted:true}},async refreshMembers(I){let P=u(I.channelId),A=I.query?.trim()??"";if(A==="")return M(P);let g=y(P),[S,x]=await Promise.all([b({channelId:P,query:A,limit:un},(D,k,U)=>Vn(e.client,{channelId:D,query:A,page:k,pageSize:U,updateVersion:"0",clientType:e.clientType})),v(P)]),E=x===null?[]:await d(x.items,A);return await C(P,S.items,g),{...S,items:T(S.items,E)}},async listMembers(I){let P=u(I.channelId),A={...I,channelId:P},g=y(P),S=await b(A,(x,E,D)=>jn(e.client,{channelId:x,page:E,pageSize:D,clientType:e.clientType}));return await C(P,S.items,g,S,A.cursor!==void 0,A.cursor),S},async searchMembers(I){let P=I.query.trim();if(P==="")return Promise.reject(new J("\u641C\u7D22\u5173\u952E\u8BCD\u4E0D\u80FD\u4E3A\u7A7A"));let A=u(I.channelId),g={...I,channelId:A},S=y(A),x=await b(g,(E,D,k)=>Vn(e.client,{channelId:E,query:P,page:D,pageSize:k,updateVersion:"0",clientType:e.clientType}));return await C(A,x.items,S),x},listAdmins:I=>b(I,(P,A,g)=>Fr(e.client,{channelId:P,page:A,pageSize:g,clientType:e.clientType})),async getMembersByIds(I,P,A){let g=I.trim();if(g==="")throw new J("channelId \u4E0D\u80FD\u4E3A\u7A7A");let S=[...new Set(P.map(k=>k.trim()).filter(Boolean))];if(S.length===0)return [];let x=A?.forceRefresh===true,E=new Map,D=[];for(let k of S){let U=o.get(w(g,k));!x&&U!==void 0&&U.expiresAt>n()?E.set(k,U.member):D.push(k);}if(!x&&D.length>0&&!l.has(g)&&e.storage?.getChannelMembers!==void 0){let k=y(g),U=await e.storage.getChannelMembers(g,D);if(t()&&k===y(g))for(let{channelId:B,updatedAt:F,...j}of U)B===g&&(o.set(w(g,j.userId),{member:j,expiresAt:F+r}),F+r>n()&&E.set(j.userId,j));D=D.filter(B=>!E.has(B));}if(!t())return S.flatMap(k=>E.has(k)?[E.get(k)]:[]);if(D.length>0){let k=y(g),U=await $r(e.client,{channelId:g,userIds:D,clientType:e.clientType});if(!U.ok)throw new Je(U.code,U.message);if(U.data!==null&&!Array.isArray(U.data))throw new J("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let B=jr((U.data??[]).map(Pe=>Jr(Pe,g))),F=D.filter(Pe=>!B.some(Vo=>Vo.userId===Pe)),j=x&&F.length>0&&k===y(g),ce;j?(await _(g),ce=B):ce=await p(g,B,k);for(let Pe of ce)E.set(Pe.userId,Pe);}return S.flatMap(k=>E.has(k)?[E.get(k)]:[])},invalidateChannelMembers:_,clearCache(){let I=new Set(s.keys());for(let P of o.keys())I.add(P.slice(0,P.indexOf(":")));for(let P of i.keys())I.add(P);for(let P of a.keys())I.add(P);for(let P of c.keys())I.add(P);for(let P of l)I.add(P);for(let P of m)I.add(P);for(let P of I)s.set(P,y(P)+1);o.clear(),i.clear(),a.clear(),c.clear(),l.clear(),m.clear();}}}function Vr(e){return {responseMode:"strict",method:"POST",...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function qr(e,n){return R(e,"/user_radio/member/list",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},Vr(n.clientType))}function zr(e,n){return R(e,"/user_radio/member/search",{radio_id:n.channelId,search_name:n.query,page:n.page,page_size:n.pageSize},Vr(n.clientType))}var Wr=18,ln=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},re=class extends Error{constructor(n){super(`CHANNEL @ member \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelMentionMemberMappingError";}};function Me(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function qa(e){let n=Me(e.user_id);if(n==="")throw new re("user_id \u4E0D\u80FD\u4E3A\u7A7A");let t=Me(e.radio_user_nickname)||Me(e.nick_name)||Me(e.name)||Me(e.mid)||n,r=Me(e.head_img_url);return {userId:n,displayName:t,...r===""?{}:{avatar:r}}}function za(e){let n=e.channelId.trim();if(n==="")throw new re("channelId \u4E0D\u80FD\u4E3A\u7A7A");if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>Wr)throw new re(`limit \u5FC5\u987B\u4E3A 1-${Wr}`);if(e.cursor===void 0)return {channelId:n,page:1,pageSize:e.limit};if(!/^[1-9]\d*$/.test(e.cursor))throw new re("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let t=Number(e.cursor);if(!Number.isSafeInteger(t))throw new re("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {channelId:n,page:t,pageSize:e.limit}}function Wa(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 Ya(e){async function n(t,r){let{channelId:o,page:i,pageSize:a}=za(t),c=await r({channelId:o,page:i,pageSize:a,clientType:e.clientType});if(!c.ok)throw new ln(c.code,c.message);if(c.data!==null&&!Array.isArray(c.data))throw new re("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let s=c.data??[],l=Wa(s.map(qa)),m=s.length<a;return {items:l,exhausted:m,...m?{}:{nextCursor:String(i+1)}}}return {listMentionMembers:t=>n(t,r=>qr(e.client,r)),searchMentionMembers:t=>{let r=t.query.trim();return r===""?Promise.reject(new re("\u641C\u7D22\u5173\u952E\u8BCD\u4E0D\u80FD\u4E3A\u7A7A")):n(t,o=>zr(e.client,{...o,query:r}))}}}function Qa(e){let n=e.fetch??((t,r)=>globalThis.fetch(t,r));return {async postProtobuf({path:t,body:r,headers:o,signal:i}){let a=await e.getBaseUrl();if(!a)throw new Error("CmHttp.postProtobuf\uFF1A\u7F3A\u5C11 CM HTTP \u57FA\u5740\uFF08getCmHttpBaseUrl \u4E3A\u7A7A\uFF09");let c={"Content-Type":"application/octet-stream"},s=e.getClientType?.();s!==void 0&&(c["Client-type"]=String(s)),Object.assign(c,o);let l=await e.getAuth();l!==null&&l.token!==""&&l.userId!==""&&(c.Authorization=`${l.token}:${l.userId}`);let m=await n(`${a}${t}`,{method:"POST",body:r,headers:c,signal:i});if(!m.ok)throw new sa$1({path:t,status:m.status,statusText:m.statusText});let w=await m.arrayBuffer();return new Uint8Array(w)}}}var oe=class extends Error{constructor(n){super(n),this.name="DirectoryMappingError";}};function pn(e,n){if(e===null||typeof e!="object"||Array.isArray(e))throw new oe(`${n} \u5FC5\u987B\u662F\u5BF9\u8C61`);return e}function Y(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function je(e){let n=Y(e);return n===""?void 0:n}function Xa(e){let n=pn(e,"\u8054\u7CFB\u4EBA\u76EE\u5F55\u9879"),t=n.user_info===void 0?n:pn(n.user_info,"\u8054\u7CFB\u4EBA user_info"),r=Y(t.user_id??n.friend_user_id??n.user_id);if(r==="")throw new oe("\u8054\u7CFB\u4EBA\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A user_id");let o=Y(n.remark_name)||Y(n.contact_name)||Y(t.nick_name)||Y(t.username)||Y(t.mid)||r,i=Y(t.nick_name)||Y(t.username)||Y(t.mid)||r,a=je(t.head_img_url),c=je(t.username)??je(t.mid);return {id:r,kind:"individual",displayName:o,cardDisplayName:i,...a===void 0?{}:{avatarUrl:a},...c===void 0?{}:{username:c}}}function Za(e){let n=pn(e,"\u7FA4\u7EC4\u76EE\u5F55\u9879"),t=Y(n.group_id);if(t==="")throw new oe("\u7FA4\u7EC4\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A group_id");let r=je(n.head_img_url),o=Y(n.name)||t;return {id:t,kind:"group",displayName:o,cardDisplayName:o,...r===void 0?{}:{avatarUrl:r}}}function es(e){let n=pn(e,"\u793E\u7FA4\u76EE\u5F55\u9879"),t=Y(n.radio_id??n.id);if(t==="")throw new oe("\u793E\u7FA4\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A radio_id/id");let r=je(n.head_img_url),o=Y(n.name)||t;return {id:t,kind:"channel",displayName:o,cardDisplayName:o,...r===void 0?{}:{avatarUrl:r}}}function ns(e,n){if(!Number.isSafeInteger(e)||e<1)throw new oe("\u76EE\u5F55 page \u5FC5\u987B\u662F\u6B63\u6574\u6570");if(!Number.isSafeInteger(n)||n<1||n>100)throw new oe("\u76EE\u5F55 pageSize \u5FC5\u987B\u662F 1-100 \u7684\u6574\u6570")}function ts(e){return {async list(n){ns(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():"",i=(await R(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(i))throw new oe(`${n.kind} \u76EE\u5F55 data \u5FC5\u987B\u662F\u6570\u7EC4`);let a=n.kind==="individual"?Xa:n.kind==="group"?Za:es,c=new Map;for(let l of i){let m=a(l);c.set(m.id,m);}let s=i.length<n.pageSize;return {items:[...c.values()],...s?{}:{nextPage:n.page+1},exhausted:s}}}}var rs="https://api.giphy.com/v1/gifs",Ae=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},$=class extends Error{constructor(n){super(n),this.name="ExpressionMappingError";}},ye=class extends Error{constructor(t,r){super(`Giphy \u8BF7\u6C42\u5931\u8D25\uFF1AHTTP ${t}${r?` ${r}`:""}`);this.status=t;this.name="GiphyHttpError";}status};function Z(e,n){if(e===null||typeof e!="object"||Array.isArray(e))throw new $(`${n} \u5FC5\u987B\u662F\u5BF9\u8C61`);return e}function X(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function pe(e,n){let t=X(e);if(t==="")throw new $(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function xe(e){let n=X(e);return n===""?void 0:n}function _e(e,n){let t=Number(e);if(!Number.isSafeInteger(t)||t<0)throw new $(`${n} \u5FC5\u987B\u662F\u975E\u8D1F\u6574\u6570`);return t}function os(e,n){let t=Number(e);if(!Number.isSafeInteger(t))throw new $(`${n} \u5FC5\u987B\u662F\u5B89\u5168\u6574\u6570`);return t}function Yr(e,n){let t=Number(e);if(!Number.isFinite(t)||t<=0)throw new $(`${n} \u5FC5\u987B\u662F\u6709\u9650\u6B63\u6570`);return t}function he(e,n){let t=pe(e,n),r;try{r=new URL(t);}catch(o){throw new $(`${n} \u4E0D\u662F\u5408\u6CD5 URL\uFF1A${o instanceof Error?o.message:String(o)}`)}if(r.protocol!=="https:"&&r.protocol!=="http:")throw new $(`${n} \u53EA\u652F\u6301 HTTP(S)`);if(r.username!==""||r.password!=="")throw new $(`${n} \u4E0D\u5141\u8BB8\u5305\u542B URL \u51ED\u636E`);return t}function zn(e,n){if(e==null)return [];if(Array.isArray(e))return e;let r=Z(e,n).list;if(r==null)return [];if(!Array.isArray(r))throw new $(`${n}.list \u5FC5\u987B\u662F\u6570\u7EC4\u6216 null`);return r}function Ve(e){return e==="sticker"?1:e==="gif"?2:3}function Qr(e){let n=Z(e,"\u8D34\u56FE\u5305"),t=xe(n.onlineTime??n.online_time),r=n.isPlatformIssued??n.is_platform_issued;return {id:pe(n.packId??n.pack_id,"\u8D34\u56FE\u5305 packId"),nameZh:X(n.nameZh??n.name_zh),nameEn:X(n.nameEn??n.name_en),nameTh:X(n.nameTh??n.name_th),nameTw:X(n.nameTw??n.name_tw),nameVi:X(n.nameVi??n.name_vi),publisher:X(n.publisher),trayIconUrl:he(n.trayIcon??n.tray_icon,"\u8D34\u56FE\u5305 trayIcon"),sortWeight:os(n.sortWeight??n.sort_weight??0,"\u8D34\u56FE\u5305 sortWeight"),isPlatformIssued:r===true||Number(r)===1,...t===void 0?{}:{onlineTime:t},stickerCount:_e(n.stickerCount??n.sticker_count??0,"\u8D34\u56FE\u5305 stickerCount")}}function Wn(e,n,t,r){let o=Z(e,t),i=xe(o.id),a={...i===void 0?{}:{recordId:i},url:he(o.imgUrl??o.img_url,`${t} imgUrl`),width:_e(o.width??0,`${t} width`),height:_e(o.height??0,`${t} height`)};if(n==="sticker")return {kind:n,...a,packageId:pe(r??o.packId??o.pack_id,`${t} packageId`),resourceId:pe(o.fileName??o.file_name,`${t} resourceId`)};let c=xe(o.fileName??o.file_name);return {kind:n,...a,...c===void 0?{}:{resourceId:c}}}function is(e,n){if(n!=="emoji")return Wn(e,n,"\u6700\u8FD1\u4F7F\u7528\u9879");let t=Z(e,"\u6700\u8FD1 emoji"),r=xe(t.id);return {kind:"emoji",...r===void 0?{}:{recordId:r},token:pe(t.imgUrl??t.img_url,"\u6700\u8FD1 emoji token"),resourceId:pe(t.fileName??t.file_name,"\u6700\u8FD1 emoji resourceId")}}function Xr(e,n,t){let r=Ve(n);return zn(e,t).filter(o=>{let i=Z(o,`${t} item`),a=i.favType??i.fav_type;if(a==null)return true;let c=Number(a);if(c!==1&&c!==2&&c!==3)throw new $(`${t} item.favType \u5FC5\u987B\u662F 1\u30012 \u6216 3`);return c===r})}function eo(e){return {fav_type:Ve(e.kind),pack_id:e.kind==="sticker"?e.packageId:"",img_url:he(e.url,"\u8868\u60C5\u5199\u5165 imgUrl"),file_name:e.resourceId??"",width:e.width,height:e.height}}function as(e){return e.kind!=="emoji"?eo(e):{fav_type:Ve(e.kind),pack_id:"",img_url:e.token,file_name:e.resourceId,width:0,height:0}}function Zr(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 $("\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 ss(e){let n=Z(e,"Giphy item"),t=Z(n.images,"Giphy item.images"),r=Z(t.original,"Giphy item.images.original"),o=t.fixed_width,i=o==null?void 0:Z(o,"Giphy item.images.fixed_width"),a=he(r.url,"Giphy original.url"),c=i===void 0?void 0:xe(i.url),s=i===void 0?void 0:xe(i.webp),l=s===void 0?c===void 0?a:he(c,"Giphy fixed_width.url"):he(s,"Giphy fixed_width.webp"),m=s!==void 0&&c!==void 0&&c!==s?he(c,"Giphy fixed_width.url"):void 0;return {kind:"gif",resourceId:pe(n.id,"Giphy item.id"),title:X(n.title)||"GIF",url:a,previewUrl:l,...m===void 0?{}:{fallbackPreviewUrl:m},width:Yr(r.width,"Giphy original.width"),height:Yr(r.height,"Giphy original.height")}}function cs(e,n){let t=Z(e,"Giphy response");if(!Array.isArray(t.data))throw new $("Giphy response.data \u5FC5\u987B\u662F\u6570\u7EC4");let r=Z(t.pagination,"Giphy response.pagination"),o=_e(r.offset??n,"Giphy pagination.offset");if(o!==n)throw new $("Giphy pagination.offset \u4E0E\u8BF7\u6C42 offset \u4E0D\u4E00\u81F4");let i=_e(r.count??t.data.length,"Giphy pagination.count"),a=_e(r.total_count??r.totalCount??0,"Giphy pagination.total_count"),c=new Map;for(let l of t.data){let m=ss(l);c.set(m.resourceId,m);}let s=o+i;return {items:[...c.values()],offset:o,totalCount:a,...i>0&&s<a?{nextOffset:s}:{}}}function ds(e){async function n(r,o,i){if(e.coreClient===void 0)throw new Ae("core");let a=await R(e.coreClient,r,o,{method:"POST",responseMode:"strict"});if(!a.ok)throw new V(i,a.code,a.message);return a.data}async function t(r,o){let i=e.giphyApiKey?.trim()??"";if(i==="")throw new Ae("giphy");let a=e.fetcher??globalThis.fetch;if(typeof a!="function")throw new Ae("giphy");let c=new URLSearchParams({api_key:i,limit:String(o.limit),offset:String(o.offset),...o.query===void 0?{}:{q:o.query,lang:"en"}}),s;try{s=await a(`${rs}/${r}?${c.toString()}`);}catch{throw new ye(0,"network failure")}let l;try{l=await s.json();}catch(w){throw s.ok?new $(`Giphy response \u4E0D\u662F JSON\uFF1A${w instanceof Error?w.message:String(w)}`):new ye(s.status,"")}if(!s.ok){let w=l!==null&&typeof l=="object"&&!Array.isArray(l)?l.meta:void 0,y=w!==null&&typeof w=="object"&&!Array.isArray(w)?X(w.msg):"";throw new ye(s.status,y)}let m=l!==null&&typeof l=="object"&&!Array.isArray(l)?l.meta:void 0;if(m!==null&&typeof m=="object"&&!Array.isArray(m)){let w=m,y=Number(w.status);if(Number.isFinite(y)&&y!==200)throw new ye(y,X(w.msg))}return cs(l,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(Qr)};if(o==null)return {version:"",items:[]};let i=Z(o,"\u8D34\u56FE\u5305\u5217\u8868 data"),a=i.list??i.packs;if(a==null)return {version:X(i.version),items:[]};if(!Array.isArray(a))throw new $("\u8D34\u56FE\u5305\u5217\u8868 data.list \u5FC5\u987B\u662F\u6570\u7EC4\u6216 null");return {version:X(i.version),items:a.map(Qr)}},async listStickerItems(r){let o=await n("/user/sticker/item_list",{pack_id:r},"\u8D34\u56FE\u660E\u7EC6\u5217\u8868");return zn(o,"\u8D34\u56FE\u660E\u7EC6\u5217\u8868 data").map(i=>Wn(i,"sticker","\u8D34\u56FE\u660E\u7EC6",r))},async listFavorites(r){let o=await n("/user/sticker/my_fav/list",{fav_type:Ve(r)},"\u8868\u60C5\u6536\u85CF\u5217\u8868");return Xr(o,r,"\u8868\u60C5\u6536\u85CF\u5217\u8868 data").map(i=>Wn(i,r,"\u8868\u60C5\u6536\u85CF\u9879"))},async addFavorite(r){await n("/user/sticker/my_fav/add",eo(r),"\u6DFB\u52A0\u8868\u60C5\u6536\u85CF");},async deleteFavorites(r){await n("/user/sticker/my_fav/del",{ids:Zr(r)},"\u5220\u9664\u8868\u60C5\u6536\u85CF");},async listRecent(r){let o=await n("/user/sticker/recent/list",{fav_type:Ve(r)},"\u6700\u8FD1\u4F7F\u7528\u5217\u8868");return Xr(o,r,"\u6700\u8FD1\u4F7F\u7528\u5217\u8868 data").map(i=>is(i,r))},async reportRecent(r){await n("/user/sticker/recent/report",as(r),"\u4E0A\u62A5\u6700\u8FD1\u4F7F\u7528");},async deleteRecent(r){await n("/user/sticker/recent/del",{ids:Zr(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 zn(o,"\u5FEB\u6377\u56DE\u5E94 Top data").map(i=>{let a=Z(i,"\u5FEB\u6377\u56DE\u5E94 Top \u9879");return pe(a.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 no(e,n){let t=n.clientType===void 0?void 0:{headers:{"Client-type":String(n.clientType)}};return (await R(e,"/user_group/info",{group_id:n.groupId},t)).data}function us(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 ls(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 to=200,ps=50;async function ro(e,n){let t=String(n.updateVersion??0).trim()||"0",r=[],o;for(let i=1;i<=ps;i++){let a={group_id:n.groupId,update_version:t,page:String(i),page_size:String(to)},{data:c}=await R(e,"/user_group/user/list",a,{method:"GET",...n.clientType===void 0?{}:{headers:{"Client-type":String(n.clientType)}}});if(c===null)break;let s=us(c);if(s.length===0)break;for(let m of s){let w=String(m.user_id??m.userId??"").trim();if(w==="")continue;let y={userId:w,nickName:String(m.nick_name??m.nickName??"").trim()},u=ls(m.join_type??m.joinType);u!==void 0&&(y.joinType=u),r.push(y);}let l=c.update_version;if(typeof l=="number"&&(o=l),s.length<to)break}return {members:r,updateVersion:o}}async function oo(e,n){return (await R(e,"/user/info/friend",{friend_user_id:n.userId})).data}var fs=1440*60*1e3;function Yn(e,n,t=fs){let r=new Map,o=new Map,i=new Map;function a(m){let w=(i.get(m)??0)+1;i.set(m,w);let y=e(m).then(u=>(u!==null&&i.get(m)===w&&(r.set(m,u),n?.save(m,u).catch(()=>{})),u)).finally(()=>{o.get(m)===y&&o.delete(m);});return o.set(m,y),y}return {get:async(m,w)=>{if(w?.forceRefresh===true)return a(m);let y=r.get(m);if(y!==void 0)return y;let u=o.get(m);if(u!==void 0)return u;if(n!==void 0)try{let h=i.get(m)??0,v=await n.get(m);if(v!==null)return (i.get(m)??0)===h&&(r.set(m,v.value),Date.now()-v.updatedAt>t&&a(m)),v.value}catch{}return a(m)},peek:async m=>{let w=r.get(m);if(w!==void 0)return {value:w,stale:false};if(n===void 0)return null;try{let y=i.get(m)??0,u=await n.get(m);if(u!==null)return (i.get(m)??0)===y&&r.set(m,u.value),{value:u.value,stale:Date.now()-u.updatedAt>t}}catch{}return null},clear:()=>{for(let m of new Set([...r.keys(),...o.keys(),...i.keys()]))i.set(m,(i.get(m)??0)+1);r.clear(),o.clear();}}}function ms(e){async function n(y){let u=await oo(e.client,{userId:y})??await Ke(e.client,{userId:y});return u===null?null:_(u)}async function t(y){let u=await no(e.client,{groupId:y,clientType:e.clientType});return u===null?null:$$1(u)}async function r(y){let{members:u}=await ro(e.client,{groupId:y,clientType:e.clientType});return u.length===0?null:u}function o(y){let u={};for(let h of y)h.nickName!==""&&(u[h.userId]=h.nickName);return u}let{storage:i}=e,a=i===void 0?void 0:{get:async y=>{let u=await i.getUserProfile(y);return u===null?null:{value:u,updatedAt:u.updatedAt}},save:async(y,u)=>{await i.saveUserProfile({...u,updatedAt:Date.now()});}},c=i===void 0?void 0:{get:async y=>{let u=await i.getGroupMembers(y);return u===null?null:{value:u.members.map(h=>({userId:h.userId,nickName:h.groupNick,...h.joinType===void 0?{}:{joinType:h.joinType}})),updatedAt:u.updatedAt}},save:async(y,u)=>{let h=u.map(v=>({userId:v.userId,groupNick:v.nickName,...v.joinType===void 0?{}:{joinType:v.joinType}}));await i.saveGroupMembers({groupId:y,members:h,updatedAt:Date.now()});}},s=i===void 0?void 0:{get:async y=>{let u=await i.getGroupProfile(y);return u===null?null:{value:u,updatedAt:u.updatedAt}},save:async(y,u)=>{await i.saveGroupProfile({...u,updatedAt:Date.now()});}},l=Yn(n,a),m=Yn(t,s),w=Yn(r,c);return {getUserProfile:(y,u)=>l.get(y,u),getGroupProfile:(y,u)=>m.get(y,u),getGroupMemberNames:async(y,u)=>{let h=await w.get(y,u);return h===null?null:o(h)},listGroupMembers:(y,u)=>w.get(y,u),peekUserProfile:y=>l.peek(y),peekGroupMemberNames:async y=>{let u=await w.peek(y);return u===null?null:{value:o(u.value),stale:u.stale}},peekGroupMembers:y=>w.peek(y),peekGroupProfile:y=>m.peek(y),clearCache:()=>{l.clear(),m.clear(),w.clear();}}}function gs(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}async function ee(e,n,t,r){let o=await R(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new V(r,o.code,o.message)}function ys(e){return ee(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 hs(e){return ee(e.client,"/user_radio/user/setting",{radio_id:e.channelId,nick_name:e.nickname},"\u4FEE\u6539\u793E\u7FA4\u6635\u79F0")}function bs(e){return ee(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 Cs(e){let n=e.userIds.map(t=>({user_id:gs(t)}));return ee(e.client,"/user_radio/invited_users",{radio_id:e.channelId,members:JSON.stringify(n)},"\u9080\u8BF7\u793E\u7FA4\u6210\u5458")}function ws(e){return ee(e.client,"/user_radio/kick_user",{radio_id:e.channelId,user_id:e.userId},"\u79FB\u9664\u793E\u7FA4\u6210\u5458")}function Ps(e){return ee(e.client,"/user_radio/add_admin",{radio_id:e.channelId,user_id:e.userId},"\u8BBE\u4E3A\u793E\u7FA4\u7BA1\u7406\u5458")}function Is(e){return ee(e.client,"/user_radio/del_admin",{radio_id:e.channelId,user_id:e.userId},"\u53D6\u6D88\u793E\u7FA4\u7BA1\u7406\u5458")}function Ss(e){return ee(e.client,"/user_radio/transfer",{radio_id:e.channelId,user_id:e.userId},"\u8F6C\u8BA9\u793E\u7FA4")}function vs(e){return ee(e.client,"/user_radio/user/quit",{radio_id:e.channelId,...e.newOwnerId===void 0?{}:{user_id:e.newOwnerId}},"\u9000\u51FA\u793E\u7FA4")}function Ms(e){return ee(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 As(e){return ee(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 _s(e){return ee(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 xs(e){return ee(e.client,"/user_radio/closed",{radio_id:e.channelId},"\u89E3\u6563\u793E\u7FA4")}async function Es(e){ks(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=E({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}),i=H$1(o,{selfId:e.userId,keepRaw:true,expectedChannelIds:[e.channelId],onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps);if(t){let c=i.messages.filter(s=>s.extensions?.historyCursor===n);if(c.length!==1)throw new Error(`CHANNEL \u5386\u53F2\u4E0A\u4E0B\u6587 anchor \u5FC5\u987B\u4E00\u4E00\u5BF9\u5E94\uFF08channelId=${e.channelId}, index=${n}, count=${c.length}\uFF09`)}let a=i.nextBaseIndexes[e.channelId];return {messages:i.messages,hasNewer:(i.messageCounts[e.channelId]??0)===20&&a!==void 0&&a!==n,...a===void 0?{}:{nextCursor:a}}}function ks(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 Ts(e){let n=Rs(e.indexes),t=f.encode(f.create({sUserId:Qn(e.userId,"user"),lsIndex:n.map(i=>({sChnnId:Qn(i.channelId,"channel"),sIndex:i.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 Rs(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=>{Qn(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 Qn(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 Ds(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 R(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 fn=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;}},mn=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;}},Xn={HIDDEN_CONTACT:40112,OWN_FRIEND_LIMIT_REACHED:40121,TARGET_FRIEND_LIMIT_REACHED:40122},Us=36875,Bs=40113;function Zn(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function se(e){let n=Zn(e);return n===""?void 0:n}function io(e){let n=Array.isArray(e)?e[0]:e;return n!==null&&typeof n=="object"?n:void 0}function Os(e){switch(e){case Xn.HIDDEN_CONTACT:return "hidden-contact";case Xn.OWN_FRIEND_LIMIT_REACHED:return "own-friend-limit";case Xn.TARGET_FRIEND_LIMIT_REACHED:return "target-friend-limit";default:return "remote"}}async function Ns(e,n){let t=n.query.trim();if(t==="")throw new Error("\u641C\u7D22\u7528\u6237\uFF1Aquery \u4E0D\u80FD\u4E3A\u7A7A");let r=await R(e,"/user/info/search",{username:t},{responseMode:"strict",...n.clientType===void 0?{}:{headers:{"Client-type":String(n.clientType)}}});if(!r.ok)throw new fn(r.code,r.message);let o=io(r.data);if(o===void 0)return null;let i=Zn(o.user_id??o.userId);if(i==="")throw new Error("\u641C\u7D22\u7528\u6237\uFF1A\u54CD\u5E94\u7F3A\u5C11 user_id");let a=Zn(o.nick_name??o.nickname??o.name)||i,c=o.friend_status??o.friendStatus,s=c===void 0?void 0:Number(c);if(s!==void 0&&!Number.isInteger(s))throw new Error("\u641C\u7D22\u7528\u6237\uFF1Afriend_status \u975E\u6CD5");return {userId:i,nickname:a,...se(o.username)===void 0?{}:{username:se(o.username)},...se(o.mid)===void 0?{}:{miCallId:se(o.mid)},...se(o.head_img_url??o.avatar)===void 0?{}:{avatarUrl:se(o.head_img_url??o.avatar)},...se(o.per_signature??o.signature)===void 0?{}:{signature:se(o.per_signature??o.signature)},...s===void 0?{}:{friendStatus:s}}}async function Ks(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 i=await R(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(!i.ok)throw new mn(Os(i.code),i.code,i.message);let a=io(i.data),c=Number(a?.status??0);if(c!==0&&c!==1&&c!==2)throw new Error(`\u53D1\u9001\u597D\u53CB\u7533\u8BF7\uFF1A\u672A\u77E5\u7ED3\u679C\u72B6\u6001 ${c}`);let s=se(a?.message??a?.msg??i.message);return {status:c,...s===void 0?{}:{message:s}}}async function Gs(e,n){let t=n.userId.trim();if(t==="")throw new Error("\u5220\u9664\u597D\u53CB\uFF1AuserId \u4E0D\u80FD\u4E3A\u7A7A");let r=await R(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!==Bs)throw new Error(`\u5220\u9664\u597D\u53CB\u5931\u8D25\uFF08${r.code}\uFF09\uFF1A${r.message||"unknown error"}`)}async function Ls(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 i=await R(e,"/user/report_user/add",{user_id:t,to_user_id:r,problem:o,images:"1"},{responseMode:"strict",method:"POST"});if(!i.ok)throw new V("\u4E3E\u62A5\u8054\u7CFB\u4EBA",i.code,i.message)}function Hs(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}function Fs(e){let n=e.memberIds.map(t=>({user_id:Hs(t)}));return R(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 $s(e){return R(e.client,"/user_group/create_face",{is_hidden:"0"},{method:"POST",responseMode:"strict"})}function Js(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}function js(e){let n=e.memberIds.map(t=>({user_id:Js(t)}));return R(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 Ee(e){if(e.trim()==="")throw new Error("board pinned message groupId \u4E0D\u80FD\u4E3A\u7A7A")}function ke(e){if(e.trim()==="")throw new Error("channel board pinned message channelId \u4E0D\u80FD\u4E3A\u7A7A")}function ao(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function Vs(e){Ee(e.groupId);let n=await R(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(!ao(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(!ao(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 so(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function qs(e){ke(e.channelId);let n=await R(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(!so(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(!so(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 zs(e,n){let r=(await R(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 Ws(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 Ys(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 i=typeof o.id=="string"||typeof o.id=="number"?String(o.id):"";i.length===0||o.is_enabled!==1||!Ws(o.img_url)||r.has(i)||(r.add(i),t.push({id:i,url:o.img_url,...typeof o.name=="string"&&o.name.length>0?{name:o.name}:{}}));}return t}function Qs(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}async function qe(e,n,t,r){let o=await R(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new V(r,o.code,o.message)}function Xs(e){let n=e.userIds.map(t=>({user_id:Qs(t)}));return qe(e.client,"/user_group/invited",{group_id:e.groupId,members:JSON.stringify(n)},"\u9080\u8BF7\u7FA4\u6210\u5458")}function Zs(e){return qe(e.client,"/user_group/kick",{group_id:e.groupId,out_user_id:e.userId},"\u79FB\u9664\u7FA4\u6210\u5458")}function ec(e){return qe(e.client,"/user_group/transfer",{group_id:e.groupId,new_user_id:e.userId},"\u8F6C\u8BA9\u7FA4\u7EC4")}function nc(e){return qe(e.client,"/user_group/user/quit",{group_id:e.groupId,...e.newOwnerId===void 0?{}:{new_user_id:e.newOwnerId}},"\u9000\u51FA\u7FA4\u7EC4")}function tc(e){return qe(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 rc=new Set([200,32768]);async function oc(e){let n=U({userId:e.userId,groupId:e.groupId}),t=await e.http.postProtobuf({path:"/offline/v1/group/read_all",body:n}),{code:r}=V$1(t);if(!rc.has(r))throw new Error(`\u7FA4 read_all \u4E1A\u52A1\u5931\u8D25\uFF1Acode=${r}\uFF08groupId=${e.groupId}\uFF09`)}var ze=class extends Error{constructor(n){super(`${n}\u54CD\u5E94\u5305\u542B\u65E0\u6CD5\u8BC6\u522B\u7684 is_waitting`),this.name="MembershipJoinMappingError";}};function ic(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 ze(n)}async function co(e,n,t,r){let o=await R(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new V(r,o.code,o.message);if(o.data===null||o.data===void 0)throw new ze(r);return ic(o.data.is_waitting,r)}async function uo(e,n,t,r){let o=await R(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new V(r,o.code,o.message);return Object.freeze({outcome:"joined"})}function ac(e){return co(e.client,"/user_group/apply",{group_id:e.groupId,qrcode_type:2,remarks:e.remarks??""},"\u7533\u8BF7\u52A0\u5165\u666E\u901A\u7FA4")}function sc(e){return uo(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 cc(e){return co(e.client,"/user_radio/add/apply",{radio_id:e.channelId,remarks:e.remarks??""},"\u7533\u8BF7\u52A0\u5165\u793E\u7FA4")}function dc(e){return uo(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 uc(e){if(Ee(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 R(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 lc(e){if(ke(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 R(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}}async function pc(e){let n=Y$1({userId:e.userId,messageIds:e.messageIds,clientType:e.clientType}),t=await e.http.postProtobuf({path:"/offline/v1/chat/msg/by_id",body:n});return Z$1(t,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function fc(e){e.prepareKeys!==void 0&&e.decryptDeps!==void 0&&e.groupId!==""&&await e.prepareKeys([e.groupId]);let n=S({userId:e.userId,groupId:e.groupId,messageIds:e.messageIds,clientType:e.clientType}),t=await e.http.postProtobuf({path:"/offline/v1/group/msg/by_id",body:n});return T(t,{selfId:e.userId,keepRaw:true,source:"history",onReaction:e.onReaction},e.decryptDeps)}async function mc(e){e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId);let n=I({userId:e.userId,channelId:e.channelId,messageIds:e.messageIds,clientType:e.clientType}),t=await e.http.postProtobuf({path:"/channel/v1/msg/by_id",body:n});return J$1(t,{selfId:e.userId,keepRaw:true,expectedChannelIds:[e.channelId],diagnostic:{endpoint:"msgById",surface:"msg-by-id",...e.operationId===void 0?{}:{operationId:e.operationId},clientTypeHeader:e.clientType,clientTypeBody:e.clientType},onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps)}var gc=20,lo=10,et=30,yc=100;async function hc(e){let n=[];for(let t of fo(e.channels,gc)){let r=D({userId:e.userId,clientType:e.clientType,channels:t}),o=await e.http.postProtobuf({path:"/channel/v1/sessions",body:r}),i={selfId:e.userId,keepRaw:true,expectedChannelIds:t.map(c=>c.channelId),diagnostic:{endpoint:"sessions",surface:"session-last",...e.operationId===void 0?{}:{operationId:e.operationId},clientTypeHeader:e.clientType,clientTypeBody:e.clientType}},a=G$1(o,i);await po(e,a.sessions.filter(c=>c.channelState==="active"||c.raw?.status===0).map(c=>c.channelId)),n.push(...G$1(o,{...i,onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps).sessions);}return n}async function bc(e){let n=Pc(e.channelBatchSize),t=e.messageCount??et,r=Ic(e.maxPagesPerBatch),o=new Map;for(let i of fo(e.pulls,n)){let a=i.map(l=>({...l})),c=new Map(a.map(l=>[l.channelId,new Set([l.baseIndex])])),s=0;for(;a.length>0;){if(s>=r){let u=a.map(({channelId:h,baseIndex:v})=>`${h}@${v}`).join(",");throw new Error(`channel offline \u5206\u9875\u8D85\u8FC7 maxPagesPerBatch=${r}\uFF08active=${u}\uFF09`)}s+=1;let l=E({userId:e.userId,clientType:e.clientType,pulls:a.map(u=>({channelId:u.channelId,baseIndex:u.baseIndex,direction:0,count:t,contain:0}))}),m=await e.http.postProtobuf({path:"/channel/v1/offlineMessages",body:l});await po(e,a.map(u=>u.channelId));let w=H$1(m,{selfId:e.userId,keepRaw:true,expectedChannelIds:a.map(u=>u.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 u of w.messages)o.has(u.id)||o.set(u.id,u);let y=[];for(let u of a){let h=w.nextBaseIndexes[u.channelId],v=w.messageCounts[u.channelId]??0;if(h===void 0)continue;let T=c.get(u.channelId);if(T.has(h))throw new Error(`channel offline cursor \u5FAA\u73AF\uFF08channelId=${u.channelId}, baseIndex=${h}\uFF09`);v<t||(T.add(h),y.push({channelId:u.channelId,baseIndex:h}));}a=y;}}return [...o.values()].sort(m)}async function Cc(e$1){let n=e$1.count??et;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=E({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=H$1(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),i=e.decode(r),a=o.batchSize===n,c=i.lsMessage[0]?.sIndex;if(a&&(typeof c!="string"||c.trim()===""))throw new Error(`channel latest: \u6EE1\u9875\u7F3A\u5C11\u5411\u65E7 cursor\uFF08channelId=${e$1.channelId}\uFF09`);return {messages:o.messages,hasOlder:a,...a?{nextCursor:c}:{}}}async function wc(e){let n=e.count??et;e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId);let t=F({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 K(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 po(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 Pc(e){if(e===void 0)return lo;if(!Number.isInteger(e)||e<=0)throw new Error("channel offline: channelBatchSize \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");return Math.min(e,lo)}function Ic(e){if(e===void 0)return yc;if(!Number.isInteger(e)||e<=0)throw new Error("channel offline: maxPagesPerBatch \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");return e}function fo(e,n){let t=[];for(let r=0;r<e.length;r+=n)t.push(e.slice(r,r+n));return t}async function mo(e,n){let t=W$1({userId:n.userId,clientType:n.clientType,limit:n.limit,deliveredMsgInfos:n.deliveredMsgInfos}),r=await n.http.postProtobuf({path:e,body:t});return X$1(r,{selfId:n.userId,keepRaw:true,onReaction:n.onReaction},n.decryptDeps)}function go(e){return mo("/offline/v1/chat",e)}function yo(e){return mo("/offline/v1/owner_chat",e)}function Sc(e){return go(e).then(n=>n.messages)}function vc(e){return yo(e).then(n=>n.messages)}function ho(e){return [...new Set(e.filter(n=>n!==void 0&&n!==""))]}async function Mc(e){let n=M({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=O$1(t,{selfId:e.userId}),o=ho(r.messages.map(i=>i.conversationId));o.length>0&&await e.prepareKeys(o);}return O$1(t,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function Ac(e){let n=N$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=P(t,{selfId:e.userId}),o=ho([...r.unreads.map(i=>i.groupId),...r.messages.map(i=>i.conversationId)]);o.length>0&&await e.prepareKeys(o);}return P(t,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function _c(e){e.prepareKeys!==void 0&&e.decryptDeps!==void 0&&e.groupId!==""&&await e.prepareKeys([e.groupId]);let n=Q$1({userId:e.userId,groupId:e.groupId,baseTime:e.baseTime,direct:e.direct,limit:e.limit,clientType:e.clientType}),t=await e.http.postProtobuf({path:"/offline/v1/group/history_msg",body:n});return R$1(t,{selfId:e.userId,keepRaw:true,source:"history",onReaction:e.onReaction},e.decryptDeps)}async function xc(e){let n=ea$1({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 fa$1(t)}var Ec={direct:"/friend/undisturb/set",group:"/user_group/user/edit",channel:"/user_radio/user/setting"},kc={direct:"friend_user_id",group:"group_id",channel:"radio_id"};async function Tc(e){let n=Ec[e.conversationType],t=kc[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 R(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 Rc(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 R(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 Dc(e){let{code:n}=await R(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 Uc(e){Ee(e.groupId);let n=await R(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 Bc(e){ke(e.channelId);let n=await R(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 Oc(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 R(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`)}var Nc="1970-01-01 08:00:00",Kc="2000",Gc="",gn=class extends Error{constructor(){super("\u4F1A\u8BDD\u6536\u85CF Core API \u672A\u914D\u7F6E"),this.name="SessionFavoriteProviderUnavailableError";}},fe=class extends Error{constructor(n){super(n),this.name="SessionFavoriteMappingError";}};function z(e){return typeof e=="string"?e:e==null?"":String(e)}function We(e,n){let t=z(e).trim();if(t==="")throw new fe(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function Lc(e){let n=typeof e=="number"?e:Number(String(e??"").trim());return n===1?"text":n===2?"image":n===3?"video":n===4?"voice":n===5?"location":n===11?"file":n===28?"mediaAlbum":null}function Hc(e){return e==="text"?1:e==="image"?2:e==="video"?3:e==="voice"?4:e==="location"?5:e==="mediaAlbum"?28:11}function Fc(e){if(e==="direct")return 0;if(e==="group")return 1;if(e==="channel")return 2;throw new fe(`favorite conversation type ${e}`)}function yn(e,n){return n==="text"||n==="location"?z(e.content).trim():n==="file"?z(e.fileName||e.file_name||e.name).trim():n==="mediaAlbum"?z(e.caption).trim():""}function $c(e,n){let t=z(e.group_id).trim(),r=z(e.radio_id).trim(),o=Number(z(e.msg_type).trim());if(o===1&&t!=="")return {conversationType:"group",conversationId:t};if(o===2&&r!=="")return {conversationType:"channel",conversationId:r};if(t!=="")return {conversationType:"group",conversationId:t};if(r!=="")return {conversationType:"channel",conversationId:r};if(o===0){let i=z(e.from_id).trim(),a=z(e.to_id).trim(),c=i===n.trim()?a:i;if(c!=="")return {conversationType:"direct",conversationId:c}}return null}function Jc(e,n){let t=e.from_user,r=z(t?.nick_name||t?.nickname||t?.name).trim();return r===""?n:r}function jc(e,n){let t=z(e.uu_id).trim(),r=Lc(e.content_type),o=lr(z(e.msg_body),n);if(t===""||r===null||o===null)return null;let i=z(e.from_id).trim();return Object.freeze({collectId:t,msgId:z(e.msg_id).trim(),kind:r,senderId:i,senderName:Jc(e,i),avatarUrl:z(e.from_user?.avatar).trim(),createdAt:z(e.create_time||e.update_time||e.msg_time).trim(),text:yn(o,r),imageUrl:qb(r,o),fileName:r==="file"?yn(o,"file"):"",body:Object.freeze({...o}),conversation:$c(e,n)})}function Vc(e){if(e==null)return [];if(Array.isArray(e))return e;if(typeof e=="object"&&e!==null&&"list"in e){let n=e.list;if(n==null)return [];if(Array.isArray(n))return n}throw new fe("favorite list data \u5FC5\u987B\u662F\u6570\u7EC4\u6216 { list }")}function qc(){if(typeof crypto>"u"||typeof crypto.randomUUID!="function")throw new fe("collect uuid \u4E0D\u53EF\u7528");return crypto.randomUUID()}function zc(e){return Object.freeze({...e,body:Object.freeze({...e.body}),conversation:e.conversation===null?null:Object.freeze({...e.conversation})})}function Wc(e){async function n(t,r,o){if(e.coreClient===void 0)throw new gn;let i=await R(e.coreClient,t,r,{method:"POST",responseMode:"strict",prefix:Gc});if(!i.ok)throw new V(o,i.code,i.message);return i.data}return {async list(){let t=We(e.getUserId(),"favorite userId"),r=await n("/api/v1/user/favorite/list",{start_time:Nc,page_size:Kc},"\u4F1A\u8BDD\u6536\u85CF\u5217\u8868");return Object.freeze(Vc(r).flatMap(o=>{let i=jc(o,t);return i===null?[]:[i]}))},async add(t){let r=We(e.getUserId(),"favorite userId"),o=(e.createCollectId??qc)(),i={msg_id:We(t.messageId,"favorite msgId"),content_type:Hc(t.kind),msg_type:Fc(t.conversation.conversationType),msg_time:String(t.createdAt),from_id:We(t.senderId,"favorite fromId"),to_id:We(t.peerId,"favorite toId"),is_hide:t.hide===true?"1":"0",uu_id:o,msg_body:ur(JSON.stringify(t.plainBody),r)};return t.conversation.conversationType==="group"&&(i.group_id=t.conversation.conversationId),t.conversation.conversationType==="channel"&&(i.radio_id=t.conversation.conversationId),await n("/api/v1/user/favorite/add",i,"\u6DFB\u52A0\u4F1A\u8BDD\u6536\u85CF"),zc({collectId:o,msgId:t.messageId.trim(),kind:t.kind,senderId:t.senderId.trim(),senderName:t.senderId.trim(),avatarUrl:"",createdAt:String(t.createdAt),text:yn(t.plainBody,t.kind),imageUrl:qb(t.kind,t.plainBody),fileName:t.kind==="file"?yn(t.plainBody,"file"):"",body:t.plainBody,conversation:t.conversation})},async delete(t){let r=[...new Set(t.map(o=>o.trim()).filter(o=>o!==""))];if(r.length===0)throw new fe("favorite ids \u4E0D\u80FD\u4E3A\u7A7A");await n("/api/v1/user/favorite/del",{ids:r.join("|")},"\u5220\u9664\u4F1A\u8BDD\u6536\u85CF");}}}var bo="image/jpeg";function nt(e,n){return e.type!==""||n===void 0||n===""?e:new Blob([e],{type:n})}function Yc(e){let n=0;return {async imageDimensions(t,r,o){let i=await e.prepare({operationId:`core-image-dimensions-${++n}`,generation:0,kind:"image",file:nt(t,r),includePoster:false},o);return {width:i.width,height:i.height}},async imageThumbnail(t,r,o){let i=await e.prepare({operationId:`core-image-thumbnail-${++n}`,generation:0,kind:"image",file:nt(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}},o);if(i.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(i.posterData),width:i.width,height:i.height,mimeType:bo}},async videoPoster(t,r,o){let i=await e.prepare({operationId:`core-video-poster-${++n}`,generation:0,kind:"video",file:nt(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}},o);if(i.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(i.posterData),width:i.width,height:i.height,duration:Math.round(i.duration??0),mimeType:bo}}}}function Qc(e){return e>=192&&e<=207&&e!==196&&e!==200&&e!==204}function Xc(e){return e!==void 0&&e>=5&&e<=8}function Zc(e,n,t){return Xc(t)?{width:n,height:e}:{width:e,height:n}}function ed(e,n,t){if(n+6>t)return;for(let[s,l]of [69,120,105,102,0,0].entries())if(e.getUint8(n+s)!==l)return;let r=n+6;if(r+8>t)return;let o=e.getUint16(r,false);if(o!==19789&&o!==18761)return;let i=o===18761;if(e.getUint16(r+2,i)!==42)return;let a=r+e.getUint32(r+4,i);if(a+2>t)return;let c=e.getUint16(a,i);for(let s=0;s<c;s++){let l=a+2+s*12;if(l+12>t)return;if(e.getUint16(l,i)===274)return e.getUint16(l+8,i)}}function nd(e,n){let t,r=2;for(;r+4<=n;){if(e.getUint8(r)!==255)return;let o=e.getUint8(r+1);if(o===255){r+=1;continue}if(o===218||o===217)return;let i=e.getUint16(r+2,false);if(i<2)return;let a=r+4,c=r+2+i;if(c>n)return;if(Qc(o)){if(a+5>n)return;let s=e.getUint16(a+1,false),l=e.getUint16(a+3,false);return l<=0||s<=0?void 0:Zc(l,s,t)}o===225&&t===void 0&&(t=ed(e,a,c)),r=c;}}function td(e,n){if(n<24)return;let t=e.getUint32(16,false),r=e.getUint32(20,false);return t>0&&r>0?{width:t,height:r}:void 0}function rd(e,n){if(n<10)return;let t=e.getUint16(6,true),r=e.getUint16(8,true);return t>0&&r>0?{width:t,height:r}:void 0}function od(e,n){if(n<30)return;let t=e.getUint32(12,false);if(t===1448097824){let r=e.getUint16(26,true)&16383,o=e.getUint16(28,true)&16383;return r>0&&o>0?{width:r,height:o}:void 0}if(t===1448097868){let r=e.getUint32(21,true),o=(r&16383)+1,i=(r>>>14&16383)+1;return {width:o,height:i}}if(t===1448097880){let r=(e.getUint16(24,true)|e.getUint8(26)<<16)+1,o=(e.getUint16(27,true)|e.getUint8(29)<<16)+1;return {width:r,height:o}}}function hn(e,n,t){return n<t.length?false:t.every((r,o)=>e.getUint8(o)===r)}async function Co(e){if(e.size===0)return;let n=new Uint8Array(await e.slice(0,Math.min(e.size,262144)).arrayBuffer()),t=new DataView(n.buffer,n.byteOffset,n.byteLength),r=n.byteLength;if(hn(t,r,[255,216,255]))return nd(t,r);if(hn(t,r,[137,80,78,71,13,10,26,10]))return td(t,r);if(hn(t,r,[71,73,70,56]))return rd(t,r);if(hn(t,r,[82,73,70,70])&&r>=12&&t.getUint32(8,false)===1464156752)return od(t,r)}var Mo=320,id=12*1024,Ao=20*1024,ad=.9,sd=.72,cd=320,dd=10*1024,ud=16*1024,ld=.84,pd=.68,_o=15e3,fd=1;function md(){if(typeof navigator>"u")return 2;let e=navigator.userAgent;if(/iPad|iPhone|iPod/.test(e)||/Macintosh/.test(e)&&(navigator.maxTouchPoints??0)>1)return 1;let t=navigator.deviceMemory;return t!==void 0&&t<=2?1:2}function wo(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 i=false;o.resolve(()=>{i||(i=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((i,a)=>{let c={resolve:i,reject:a,...o===void 0?{}:{signal:o}};o!==void 0&&(c.onAbort=()=>{let s=t.indexOf(c);s>=0&&t.splice(s,1),a(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));},o.addEventListener("abort",c.onAbort,{once:true})),t.push(c),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 Ye(e){if(e?.aborted)throw new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError")}var Po=16777216,gd=4096;function yd(e,n){let t=Math.min(1,gd/Math.max(e,n)),r=Math.max(1,Math.round(e*t)),o=Math.max(1,Math.round(n*t)),i=r*o;if(i>Po){let a=Math.sqrt(Po/i);r=Math.max(1,Math.floor(r*a)),o=Math.max(1,Math.floor(o*a));}return {width:r,height:o}}function rt(e,n,t){let r=Math.min(1,t/Math.max(e,n));return yd(Math.max(1,Math.round(e*r)),Math.max(1,Math.round(n*r)))}async function Io(e,n,t,r,o){Ye(o);let i=document.createElement("canvas");i.width=n,i.height=t;let a=i.getContext("2d");if(a===null)throw new Error("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A\u65E0\u6CD5\u521B\u5EFA Canvas 2D \u4E0A\u4E0B\u6587");a.drawImage(e,0,0,n,t);let c=await new Promise(s=>i.toBlob(s,"image/jpeg",r));if(Ye(o),c===null)throw new Error("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1ACanvas \u7F16\u7801\u8FD4\u56DE\u7A7A\u7ED3\u679C");return await c.arrayBuffer()}function tt(e,n){if(!Number.isInteger(e)||e<=0)throw new RangeError(`${n}\u5FC5\u987B\u662F\u6B63\u6574\u6570`)}function So(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 ot(e,n,t,r,o){let i=r.kind==="video",a=i?"\u89C6\u9891\u5C01\u9762":"\u56FE\u7247\u7F29\u7565\u56FE",c=r.maxSize??(i?cd:Mo),s=r.targetBytes??(i?dd:id),l=r.maxBytes??(i?ud:Ao),m=r.quality??(i?ld:ad),w=r.minQuality??(i?pd:sd);if(tt(c,`${a}\u6700\u5927\u8FB9\u957F`),tt(s,`${a}\u76EE\u6807\u5B57\u8282\u6570`),tt(l,`${a}\u6700\u5927\u5B57\u8282\u6570`),So(m,`${a}\u521D\u59CB\u8D28\u91CF`),So(w,`${a}\u6700\u4F4E\u8D28\u91CF`),s>l)throw new RangeError(`${a}\u76EE\u6807\u5B57\u8282\u6570\u4E0D\u80FD\u8D85\u8FC7\u6700\u5927\u5B57\u8282\u6570`);if(w>m)throw new RangeError(`${a}\u6700\u4F4E\u8D28\u91CF\u4E0D\u80FD\u9AD8\u4E8E\u521D\u59CB\u8D28\u91CF`);let y=rt(n,t,c),u=Math.min(200,Math.max(y.width,y.height)),h,v=[...new Set([m,Math.max(w,m-.12),w])];for(let d of v){let f=await Io(e,y.width,y.height,d,o);if((h===void 0||f.byteLength<h.byteLength)&&(h=f),f.byteLength<=s)return f}let T=Math.max(y.width,y.height);if(T>u&&h!==void 0){let d=Math.sqrt(s/h.byteLength),f=Math.max(u,Math.floor(T*Math.min(.9,Math.max(.5,d))));y=rt(n,t,f);for(let C of [m,w]){let p=await Io(e,y.width,y.height,C,o);if(p.byteLength<h.byteLength&&(h=p),p.byteLength<=s)return p}}if(h!==void 0&&h.byteLength<=l)return h;throw new Error(`${a}\u751F\u6210\u5931\u8D25\uFF1A\u7F16\u7801\u7ED3\u679C\u8D85\u8FC7 ${l} \u5B57\u8282\u786C\u4E0A\u9650`)}function vo(e,n,t){return new Promise((r,o)=>{let i,a,c,s,l=()=>{i!==void 0&&clearTimeout(i),e.removeEventListener(n,a),e.removeEventListener("error",c),t?.removeEventListener("abort",s);};a=()=>{l(),r();},c=()=>{l(),o(new Error(`\u89C6\u9891\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A${n} \u524D\u89E3\u7801\u9519\u8BEF`));},s=()=>{l(),o(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));},i=setTimeout(()=>{l(),o(new Error(`\u89C6\u9891\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A${n} \u8D85\u65F6`));},_o),e.addEventListener(n,a,{once:true}),e.addEventListener("error",c,{once:true}),t?.addEventListener("abort",s,{once:true});})}async function hd(e,n){Ye(n);let t=e.maxSize??Mo,r=e.maxBytes??Ao,o=await Co(e.file);Ye(n);function i(m,w){return e.file.type==="image/jpeg"&&e.file.size<=r&&Math.max(m,w)<=t}if(o!==void 0){if(e.includePoster===false)return o;if(i(o.width,o.height))return {...o,posterData:await e.file.arrayBuffer()}}let a=o===void 0?void 0:rt(o.width,o.height,t),c;try{c=a===void 0?await createImageBitmap(e.file):await createImageBitmap(e.file,{resizeWidth:a.width,resizeHeight:a.height,resizeQuality:"high"});}catch(m){if(n?.aborted)throw m}if(c!==void 0)try{Ye(n);let m=o??{width:c.width,height:c.height};return e.includePoster===!1?m:o===void 0&&i(c.width,c.height)?{...m,posterData:await e.file.arrayBuffer()}:{...m,posterData:await ot(c,c.width,c.height,e,n)}}finally{c.close();}let s=URL.createObjectURL(e.file),l=new Image;try{await new Promise((w,y)=>{let u,h,v=()=>{u!==void 0&&clearTimeout(u),l.onload=null,l.onerror=null,n?.removeEventListener("abort",h);};h=()=>{v(),y(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));},l.onload=()=>{v(),w();},l.onerror=()=>{v(),y(new Error("\u56FE\u7247\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1AImage \u89E3\u7801\u9519\u8BEF"));},u=setTimeout(()=>{v(),y(new Error("\u56FE\u7247\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1AImage \u89E3\u7801\u8D85\u65F6"));},_o),n?.addEventListener("abort",h,{once:!0}),l.src=s;});let m=o??{width:l.naturalWidth,height:l.naturalHeight};return e.includePoster===!1?m:i(l.naturalWidth,l.naturalHeight)?{...m,posterData:await e.file.arrayBuffer()}:{...m,posterData:await ot(l,l.naturalWidth,l.naturalHeight,e,n)}}finally{l.removeAttribute("src"),URL.revokeObjectURL(s);}}async function bd(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 vo(r,"loadeddata",n);let o=r.videoWidth,i=r.videoHeight;if(o<=0||i<=0)throw new Error("\u89C6\u9891\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A\u89C6\u9891\u5C3A\u5BF8\u65E0\u6548");let a=Number.isFinite(r.duration)&&r.duration>0?r.duration:void 0,c=e.atTime===void 0?a===void 0?0:Math.min(1,a/2):Math.max(0,Math.min(e.atTime,a??e.atTime));c>0&&(r.currentTime=c,await vo(r,"seeked",n));let s=a===void 0?void 0:a,l;try{l=await ot(r,o,i,e,n);}catch(m){if(n?.aborted||m instanceof RangeError)throw m}return {width:o,height:i,...s===void 0?{}:{duration:s},...l===void 0?{}:{posterData:l}}}finally{r.pause(),r.removeAttribute("src"),r.load(),URL.revokeObjectURL(t);}}function Cd(e={}){let n=e.maxConcurrency??md();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=wo(n),r=wo(fd),o=false;return {async prepare(i,a){if(o)throw new Error("\u5A92\u4F53\u9884\u89C8\u6267\u884C\u5668\u5DF2\u91CA\u653E");let c=i.kind==="video",s=await(c?r:t).acquire(a);try{return c?await bd(i,a):await hd(i,a)}finally{s();}},dispose(){o||(o=true,t.dispose(),r.dispose());}}}function wd(){let e=0,n=[];function t(){for(;e<6&&n.length>0;){let r=n.shift();r.signal?.removeEventListener("abort",r.cancel),e+=1,r.start();}}return async function(o,i){if(o?.aborted)throw new DOMException("\u5A92\u4F53\u4E0B\u8F7D\u5DF2\u53D6\u6D88","AbortError");await new Promise((a,c)=>{let s={signal:o,start:a,cancel:()=>{let l=n.indexOf(s);l>=0&&n.splice(l,1),c(new DOMException("\u5A92\u4F53\u4E0B\u8F7D\u5DF2\u53D6\u6D88","AbortError"));}};o?.addEventListener("abort",s.cancel,{once:true}),n.push(s),t();});try{if(o?.aborted)throw new DOMException("\u5A92\u4F53\u4E0B\u8F7D\u5DF2\u53D6\u6D88","AbortError");return await i()}finally{e-=1,t();}}}function Pd(e,n,t,r){let o=/^bytes (\d+)-(\d+)\/(\d+)$/.exec(e.headers.get("content-range")??""),i=e.headers.get("etag")??"",a=Number(o?.[1]),c=Number(o?.[2]),s=Number(o?.[3]);if(e.status!==206||o===null||![a,c,s].every(Number.isSafeInteger)||s<=0||a!==n||c!==Math.min(t,s-1)||c<a||!/^"[\x21\x23-\x7E\x80-\xFF]*"$/.test(i)||e.headers.get("content-encoding")!==null&&e.headers.get("content-encoding")!=="identity")throw new H("download-range-invalid","\u5206\u6BB5\u4E0B\u8F7D\u54CD\u5E94\u65E0\u6548\uFF1A\u9700\u8981 206\u3001\u6B63\u786E Content-Range\u3001\u5F3A ETag \u548C\u672A\u538B\u7F29\u5B57\u8282\uFF1B\u8BF7\u68C0\u67E5\u4E0B\u8F7D\u57DF\u540D\u7684 CORS ExposeHeaders");if(r!==void 0&&(s!==r.total||i!==r.etag))throw new H("download-object-changed","\u5206\u6BB5\u4E0B\u8F7D\u671F\u95F4\u6587\u4EF6\u7248\u672C\u53D1\u751F\u53D8\u5316\uFF0C\u8BF7\u91CD\u65B0\u4E0B\u8F7D");return {end:c,total:s,etag:i}}function xo(e=true,n,t=16*1024*1024){if(!Number.isSafeInteger(t)||t<=0)throw new RangeError("\u4E0B\u8F7D\u5206\u6BB5\u5927\u5C0F\u5FC5\u987B\u4E3A\u6B63\u6574\u6570");let r=wd();async function o(a,c){if(!a.ok)throw new H("download-range-failed",`\u5A92\u4F53\u4E0B\u8F7D\u5931\u8D25\uFF1AHTTP ${a.status}`);return c.onProgress===void 0||a.body===null?c.preferBlob===true?await a.blob():new Uint8Array(await a.arrayBuffer()):Sd(a,c.onProgress,c.expectedBytes,c.preferBlob===true)}async function i(a){let c=new AbortController,s=()=>c.abort(a.signal?.reason);a.signal?.aborted?s():a.signal?.addEventListener("abort",s,{once:true});let l=c.signal,m=[],w=[],y,u="",h=1,v,T=false,d=p=>{T||(T=true,v=p,c.abort());};function f(p,b){w[p]=b;let M=w.reduce((I,P)=>I+P,0),_=y.total;a.onProgress?.({percent:Math.min(99,Math.round(M/_*100)),bytesTransferred:M,bytesTotal:_});}async function C(p){let b=p*t,M=y===void 0?b+t-1:Math.min(b+t-1,y.total-1);return r(l,async()=>{let _=await fetch(a.url,{signal:l,cache:"no-store",headers:{Range:`bytes=${b}-${M}`}});if(p===0&&_.status===200)return n?.record("info","sdk","media","download-range-unavailable",()=>({data:{reason:"server-returned-full-response"}})),m[0]=await o(_,{...a,preferBlob:true}),"single";let I=Pd(_,b,M,y);y===void 0&&(y=I,u=_.headers.get("content-type")??"",n?.record("debug","sdk","media","download-range-started",()=>({data:{bytesTotal:I.total,partSizeBytes:t,concurrency:3}})));let P=await o(_,{...a,preferBlob:true,onProgress:A=>f(p,A.bytesTransferred)});if(P.size!==I.end-b+1)throw new H("download-range-invalid","\u5206\u6BB5\u4E0B\u8F7D\u5B57\u8282\u6570\u4E0E Content-Range \u4E0D\u4E00\u81F4");return m[p]=P,f(p,P.size),"range"})}try{let p=await C(0);if(p==="range"){let b=Math.ceil(y.total/t),M=Array.from({length:Math.min(3,b-1)},async()=>{try{for(;!l.aborted&&h<b;)await C(h++);}catch(_){d(_);}});if(await Promise.allSettled(M),T)throw v}if(l.aborted)throw new DOMException("\u5A92\u4F53\u4E0B\u8F7D\u5DF2\u53D6\u6D88","AbortError");return p==="single"?m[0]:new Blob(m,{type:u})}catch(p){throw c.abort(),n?.record("warn","sdk","media","download-range-failed",()=>({data:{code:p instanceof H?p.code:"download-failed"}})),p}finally{a.signal?.removeEventListener("abort",s);}}return async function(c){return e&&c.preferBlob===true&&Number.isFinite(c.expectedBytes)&&c.expectedBytes>t?i(c):r(c.signal,async()=>{if(c.onProgress!==void 0&&typeof XMLHttpRequest<"u")return Id(c);let s=await fetch(c.url,c.signal===void 0?{}:{signal:c.signal});return o(s,c)})}}function Id(e){let n=e.preferBlob===true;return new Promise((t,r)=>{let o=new XMLHttpRequest,i=false,a=()=>{},c=()=>{e.signal?.removeEventListener("abort",a),o.onprogress=null,o.onload=null,o.onerror=null,o.onabort=null;},s=l=>{i||(i=true,c(),l());};if(a=()=>{o.abort(),s(()=>r(new DOMException("media download canceled","AbortError")));},o.open("GET",e.url,true),o.responseType=n?"blob":"arraybuffer",o.onprogress=l=>{let m=e.expectedBytes!==void 0&&Number.isFinite(e.expectedBytes)&&e.expectedBytes>0?Math.floor(e.expectedBytes):0,w=l.lengthComputable&&l.total>0?l.total:m,y=w>0?Math.min(99,Math.round(l.loaded/w*100)):0;e.onProgress?.({percent:y,bytesTransferred:l.loaded,bytesTotal:w});},o.onload=()=>{if(o.status<200||o.status>=300){s(()=>r(new Error(`media download \u5931\u8D25\uFF1AHTTP ${o.status}`)));return}let l=o.response;if(n){if(!(typeof Blob<"u"&&l instanceof Blob)){s(()=>r(new Error("media download \u5931\u8D25\uFF1AXHR \u672A\u8FD4\u56DE Blob")));return}s(()=>t(l));return}if(!(l instanceof ArrayBuffer)){s(()=>r(new Error("media download \u5931\u8D25\uFF1AXHR \u672A\u8FD4\u56DE ArrayBuffer")));return}s(()=>t(new Uint8Array(l)));},o.onerror=()=>s(()=>r(new Error("media download \u5931\u8D25\uFF1Anetwork"))),o.onabort=()=>s(()=>r(new DOMException("media download canceled","AbortError"))),e.signal?.aborted){a();return}e.signal?.addEventListener("abort",a,{once:true}),o.send();})}async function Sd(e,n,t,r=false){let o=Number(e.headers.get("content-length")??0),i=t!==void 0&&Number.isFinite(t)&&t>0?Math.floor(t):0,a=Number.isFinite(o)&&o>0?o:i,c=0,s=e.body.pipeThrough(new TransformStream({transform(m,w){c+=m.byteLength;let y=a>0?Math.min(99,Math.round(c/a*100)):0;n({percent:y,bytesTransferred:c,bytesTotal:a}),w.enqueue(m);}})),l=new Response(s,{headers:e.headers});return r?await l.blob():new Uint8Array(await l.arrayBuffer())}var it="is missing ETag in UploadPart response";function at(e){if(typeof e!="object"||e===null)return false;let n=e;return n.name==="NoSuchUpload"||n.Code==="NoSuchUpload"}function vd(e,n,t){return e instanceof Uint8Array?e.subarray(n,t):e.slice(n,t)}async function Eo(e,n,t){return e.transformPart===void 0?n:await e.transformPart(n instanceof Blob?n:new Blob([n]),t)}function ko(e,n){let t=new Map,r=n,o=n;function i(){if(e.onProgress===void 0)return;let a=r;for(let l of t.values())a+=l;o=Math.max(o,a);let c=e.sourceBytes,s=c>0?Math.min(99,Math.round(o/c*100)):0;e.onProgress({percent:s,bytesTransferred:o,bytesTotal:c,phase:c>0&&o>=c?"finalizing":"transferring"});}return {trackPart(a,c){t.set(a,c),i();},completePart(a,c){t.delete(a),r+=c,i();},report:i}}function To(e,n){let t=(o,i)=>{let a=i.query?.partNumber,c=a===void 0?0:Number(a);Number.isFinite(c)&&n.trackPart(c,o.loaded);},r=e;return r.on("xhr.upload.progress",t),()=>{r.off?.("xhr.upload.progress",t),r.removeListener?.("xhr.upload.progress",t);}}async function Ro(e,n){let t=ko(n,0),r=To(e.handler,t);try{let o=await Eo(n,n.data,1);await e.client.send(new e.commands.PutObjectCommand({Bucket:e.bucket,Key:e.key,Body:o,...e.mimeType!==void 0&&e.mimeType!==""?{ContentType:e.mimeType}:{}}),n.signal===void 0?{}:{abortSignal:n.signal});}finally{r();}}function st(e,n,t,r){if(e!==void 0&&!(e.bucket!==n.bucket||e.key!==n.key)&&!(e.partSize!==r||e.sourceBytes!==t)&&e.uploadId!=="")return e.parts}async function ct(e){let{target:n,content:t,partSize:r,queueSize:o}=e;if(t.signal?.aborted===true)throw new DOMException("media upload canceled","AbortError");let i=Math.max(1,Math.ceil(t.sourceBytes/r));if(i>1e4)throw new Error(`media upload: \u5206\u7247\u6570 ${i} \u8D85\u8FC7 S3 \u4E0A\u9650 10000\uFF0C\u9700\u8981\u653E\u5927\u5206\u7247\u5927\u5C0F`);let a=st(e.resume,n,t.sourceBytes,r),c=new Map;if(a!==void 0)for(let f of a)c.set(f.partNumber,f);let s=a===void 0?"":e.resume.uploadId;if(s===""){let f=await n.client.send(new n.commands.CreateMultipartUploadCommand({Bucket:n.bucket,Key:n.key,...n.mimeType!==void 0&&n.mimeType!==""?{ContentType:n.mimeType}:{}}));if(f.UploadId===void 0||f.UploadId==="")throw new Error("media upload: CreateMultipartUpload \u672A\u8FD4\u56DE UploadId");s=f.UploadId,c.clear();}let l=f=>Math.min(r,t.sourceBytes-(f-1)*r),m=0;for(let f of c.keys())m+=l(f);let w=ko(t,m),y=To(n.handler,w),u=()=>({bucket:n.bucket,key:n.key,uploadId:s,partSize:r,sourceBytes:t.sourceBytes,parts:[...c.values()].sort((f,C)=>f.partNumber-C.partNumber)});e.onResumable?.(u()),w.report();let h=new AbortController,v=()=>h.abort();t.signal?.addEventListener("abort",v,{once:true}),t.signal?.aborted&&v();let T=1;async function d(){for(;;){if(h.signal.aborted)return;let f=T;if(T+=1,f>i)return;if(c.has(f))continue;let C=(f-1)*r,p=Math.min(C+r,t.sourceBytes),b=await Eo(t,vd(t.data,C,p),f),M=await n.client.send(new n.commands.UploadPartCommand({Bucket:n.bucket,Key:n.key,UploadId:s,PartNumber:f,Body:b}),{abortSignal:h.signal});if(M.ETag===void 0||M.ETag==="")throw new Error(`media upload: Part ${f} ${it}`);c.set(f,{partNumber:f,etag:M.ETag}),w.completePart(f,p-C),e.onResumable?.(u());}}try{let f;if(await Promise.allSettled(Array.from({length:Math.max(1,o)},async()=>{try{await d();}catch(C){f??={cause:C},v();}})),f!==void 0)throw f.cause;if(t.signal?.aborted)throw new DOMException("media upload canceled","AbortError");if(await n.client.send(new n.commands.CompleteMultipartUploadCommand({Bucket:n.bucket,Key:n.key,UploadId:s,MultipartUpload:{Parts:[...c.values()].sort((C,p)=>C.partNumber-p.partNumber).map(C=>({PartNumber:C.partNumber,ETag:C.etag}))}}),t.signal===void 0?{}:{abortSignal:t.signal}),t.signal?.aborted)throw new DOMException("media upload canceled","AbortError")}finally{t.signal?.removeEventListener("abort",v),y();}}async function bn(e,n){try{await e.client.send(new e.commands.AbortMultipartUploadCommand({Bucket:n.bucket,Key:n.key,UploadId:n.uploadId}));}catch(t){if(!at(t))throw t}}var Md=16*1024*1024,Ad=3,_d=6,Do=8;function xd(e){return Math.ceil(e/Do)*Do}function Ed(e){if(e instanceof Uint8Array)return e.byteLength;if(typeof Blob<"u"&&e instanceof Blob)return e.size}var Uo="\u5206\u7247\u4E0A\u4F20\u8981\u6C42\u8BE5 bucket \u7684 CORS \u653E\u884C POST\uFF08Create/CompleteMultipartUpload\uFF09\u3001DELETE\uFF08AbortMultipartUpload\uFF09\u5E76 ExposeHeaders: ETag";function kd(e){return e instanceof Error&&e.message.includes(it)}function Td(e,n,t){return t!==void 0?new H("multipart-abort-failed",`media upload: \u5206\u7247\u4E0A\u4F20\u5931\u8D25\u540E\u7684 AbortMultipartUpload \u6E05\u7406\u672A\u6210\u529F\uFF0C\u5DF2\u4E0A\u4F20\u5206\u7247\u53EF\u80FD\u6B8B\u7559\u5728 bucket \u4E2D\u5E76\u7EE7\u7EED\u8BA1\u8D39\uFF08\u5EFA\u8BAE\u6876\u4FA7\u914D\u7F6E AbortIncompleteMultipartUpload \u751F\u547D\u5468\u671F\u89C4\u5219\uFF09\uFF1B${Uo}`,{cause:t}):kd(e)?new H("multipart-etag-missing","media upload: \u5206\u7247\u54CD\u5E94\u8BFB\u4E0D\u5230 ETag\uFF0C\u8FD9\u662F bucket CORS \u7F3A\u5C11 ExposeHeaders: ETag \u7684\u914D\u7F6E\u95EE\u9898\uFF0C\u4E0D\u662F\u7F51\u7EDC\u95EE\u9898",{cause:e}):n&&!(e instanceof Error&&e.name==="AbortError")?new H("multipart-upload-failed",`media upload: \u5206\u7247\u4E0A\u4F20\u5931\u8D25\uFF1B${Uo}`,{cause:e}):e}var Rd=new Set(["upload-source-invalid","multipart-etag-missing","multipart-abort-failed"]);function Bo(e,n){let t=e?.transport;if(!(t?.session===void 0||n!==void 0&&t.logicalBucket!==n))return t}var Qe;function Oo(){if(Qe!==void 0)return Qe;let n=Promise.all([import('@aws-sdk/client-s3'),import('@aws-sdk/xhr-http-handler')]).then(([t,r])=>({S3Client:t.S3Client,commands:{PutObjectCommand:t.PutObjectCommand,CreateMultipartUploadCommand:t.CreateMultipartUploadCommand,UploadPartCommand:t.UploadPartCommand,CompleteMultipartUploadCommand:t.CompleteMultipartUploadCommand,AbortMultipartUploadCommand:t.AbortMultipartUploadCommand},XhrHttpHandler:r.XhrHttpHandler})).catch(t=>{throw Qe===n&&(Qe=void 0),t});return Qe=n,n}function Dd(e){if(e===void 0)return "";let n=e.lastIndexOf(".");return n>=0?e.slice(n):""}function Ud(e){return globalThis.crypto.randomUUID()+Dd(e)}function No(e,n){let t=e.keyPrefix??"";return t===""||n.startsWith(t)?n:`${t}${n}`}function Bd(e,n){let t=jt(e.getUploadCredentials),r=0;function o(){let u=Math.min(Ad,Math.max(1,_d-r));r+=u;let h=false;return {queueSize:u,release(){h||(h=true,r-=u);}}}function i(u,h){if(u==="avatar")return e.avatarBucket??"";if(h==="channel"){let v=e.channelBuckets?.[u]??"";if(v!=="")return v}return e.buckets[u]??""}function a(u,h,v){let{region:T}=h;return new u.S3Client({region:T,credentials:{accessKeyId:h.accessKeyId,secretAccessKey:h.secretAccessKey,sessionToken:h.sessionToken,...h.expiresAtSeconds===void 0?{}:{expiration:new Date(h.expiresAtSeconds*1e3)}},useAccelerateEndpoint:(e.useAccelerateEndpoint??true)&&!T.toLowerCase().startsWith("cn-"),requestChecksumCalculation:"WHEN_REQUIRED",requestHandler:v})}async function c(u,h,v,T,d,f,C){let p=xd(Md),b=e.multipartUpload!==false&&C>p,M=b?o():{queueSize:1,release:()=>{}},_=new u.XhrHttpHandler({}),I=a(u,d,_),P={client:I,handler:_,commands:u.commands,bucket:d.bucket,key:f,...h.mimeType!==void 0&&h.mimeType!==""?{mimeType:h.mimeType}:{}},A={data:h.data,sourceBytes:C,...h.onProgress===void 0?{}:{onProgress:h.onProgress},...h.signal===void 0?{}:{signal:h.signal},...h.transformPart===void 0?{}:{transformPart:h.transformPart}},g=h.resume,S=Bo(g),x=b&&S?.logicalBucket===v&&st(S.session,P,C,p)!==void 0,E=x?S?.session:void 0,D=U=>{E=U;let B=0;for(let F of U.parts)B+=Math.min(U.partSize,U.sourceBytes-(F.partNumber-1)*U.partSize);h.onResumable?.({bytesUploaded:B,transport:{logicalBucket:v,objectName:T,session:U}});},k;try{if(S!==void 0&&!x){delete h.resume;try{S.logicalBucket===v?await bn(P,S.session):await w(g);}catch{n?.record("warn","sdk","media","upload-resume-abandon-failed",()=>({data:{code:"multipart-abort-failed",reason:"resume-target-changed"}}));}}if(h.signal?.aborted)throw new DOMException("media upload canceled","AbortError");if(!b){await Ro(P,A);return}let U=E;try{await ct({target:P,content:A,partSize:p,queueSize:M.queueSize,...U===void 0?{}:{resume:U},onResumable:D});}catch(B){if(h.signal?.aborted||!at(B)||U===void 0)throw B;E=void 0,await ct({target:P,content:A,partSize:p,queueSize:M.queueSize,onResumable:D});}}catch(U){if(h.signal?.aborted===true&&h.signal.reason!=="offline"&&E!==void 0)try{await bn(P,E);}catch(B){k=B;}throw Td(U,b,k)}finally{M.release(),I.destroy();}}async function s(u,h,v){let T=i(h,v);if(T==="")throw new H("bucket-unconfigured",`media upload: kind=${h} \u7684\u903B\u8F91\u6876\u540D\u672A\u914D\u7F6E\uFF08\u5BBF\u4E3B IM \u5BF9\u8C61\u5B58\u50A8\u914D\u7F6E\u7F3A\u8BE5\u8D44\u6E90\u7C7B\u578B\uFF09`);let d=Ed(u.data);if(d===void 0)throw new H("upload-source-invalid","media upload: \u4E0A\u4F20\u5185\u5BB9\u5FC5\u987B\u662F Uint8Array \u6216 Blob");let f=await Oo(),C=Bo(u.resume,T)?.objectName??Ud(u.filename),p={...u,onResumable:_=>{p.resume=_,u.onResumable?.(_);}},b=await t.resolve(T),M=No(b,C);try{await c(f,p,T,C,b,M,d);}catch(_){if(u.signal?.aborted||_ instanceof H&&Rd.has(_.code))throw _;b=await t.resolve(T,{forceRefresh:true}),M=No(b,C),await c(f,p,T,C,b,M,d);}if(u.signal?.aborted)throw new DOMException("media upload canceled","AbortError");return u.onProgress?.({percent:100,bytesTransferred:d,bytesTotal:d,phase:"finalizing"}),{url:`${b.dnsPoint}/${M}`}}function l(u){return s(u,u.kind,u.conversationType)}function m(u){return s(u,"avatar")}async function w(u){let h=u.transport;if(h?.session===void 0||h.session.uploadId==="")return;let v=await Oo(),T=await t.resolve(h.logicalBucket),d=new v.XhrHttpHandler({}),f=a(v,T,d);try{await bn({client:f,commands:v.commands},h.session);}finally{f.destroy();}}let y=xo(e.rangeDownload!==false,n);return {upload:l,uploadAvatar:m,download:y,abandonUpload:w}}function Od(){let e=globalThis;return typeof e.addEventListener=="function"&&typeof e.removeEventListener=="function"?e:void 0}function Nd(e,n={}){let t=n.target!==void 0?n.target:Od(),r=n.visibilitySource!==void 0?n.visibilitySource:globalThis.document,o=n.pageLifecycleSource!==void 0?n.pageLifecycleSource:t,i=false,a=()=>e.onOnline?.(),c=()=>e.onOffline?.(),s=()=>{r!=null&&r.visibilityState==="visible"&&e.onVisible?.();},l=()=>e.onPageHide?.(),m=()=>e.onPageShow?.();return {start(){i||(i=true,t!=null&&(t.addEventListener("online",a),t.addEventListener("offline",c)),r?.addEventListener("visibilitychange",s),o!=null&&(o.addEventListener("pagehide",l),o.addEventListener("pageshow",m)));},stop(){i&&(i=false,t!=null&&(t.removeEventListener("online",a),t.removeEventListener("offline",c)),r?.removeEventListener("visibilitychange",s),o!=null&&(o.removeEventListener("pagehide",l),o.removeEventListener("pageshow",m)));},get running(){return i}}}var Ld=14,Hd=2*1024*1024*1024,Ko=1024*1024*1024,Fd=512*1024*1024,$d=256*1024*1024,Jd=64*1024,dt="channel:list-version",Go="schema:conversation-key-v1",Lo="schema:message-server-order-v1",Ho="im:membership-reset-sort-keys",ut="default",Ce="\uFFFF";function Fo(e){if(!(e===void 0||!/^\d+$/.test(e)))return e.replace(/^0+(?=\d)/,"")}function jd(e,n){let t=Fo(e),r=Fo(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 Xe(e){return `conversation:${Da$1(e)}`}function lt(e,n){return `${Da$1(e)}\0${n}`}function Vd(e){let n=Da$1(e.conversation);return {...e,key:lt(e.conversation,e.messageId),conversationKey:n,conversation:{...e.conversation},sContent:e.sContent.slice()}}function qd(e){let{key:n,conversationKey:t,...r}=e;return {...r,conversation:{...r.conversation},sContent:r.sContent.slice()}}function Jo(e){return {...e,conversationKey:Da$1(Aa$1(e))}}function we(e){let{conversationKey:n,...t}=e;return t}function Cn(e){return {...e,id:Da$1(Ba$1(e)),conversationId:e.id}}function pt(e){if(e.conversationId===void 0)return e;let{conversationId:n,...t}=e;return {...t,id:n}}function ft(e){return e.conversationType===void 0?e:{...e,conversationId:Da$1(e),storageConversationId:e.conversationId}}function wn(e){if(e.storageConversationId===void 0)return e;let{storageConversationId:n,...t}=e;return {...t,conversationId:n}}function jo(e){return {...e,conversationId:Da$1(Ca$1(e)),storageConversationId:e.conversationId}}function mt(e){if(e.storageConversationId===void 0)return e;let{storageConversationId:n,...t}=e;return {...t,conversationId:n}}function zd(e){return {...e,conversationKey:Da$1(e.ref)}}function Wd(e){let{conversationKey:n,...t}=e;return t}function Yd(e){return typeof e=="string"?e:e.conversationId}function Ze(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 Qd(e){let n=e.transaction(["messages","sessions","readStates","pinnedMessages","meta"],"readwrite");try{let t=n.objectStore("meta");if((await t.get(Go))?.value===!0){await n.done;return}let r=n.objectStore("messages");for(let s of await r.getAll())s.conversationKey===void 0&&await r.put(Jo(s));let o=n.objectStore("sessions"),i=new Map;for(let s of await o.getAll()){if(s.conversationId!==void 0)continue;let l=pt(s);i.set(l.id,l.type),await o.put(Cn(l)),await o.delete(s.id);}let a=n.objectStore("readStates");for(let s of await a.getAll()){if(s.storageConversationId!==void 0)continue;let l=s.conversationType??i.get(s.conversationId);if(l===void 0)continue;let m={...s,conversationType:l};await a.put(ft(m)),await a.delete(s.conversationId);}let c=n.objectStore("pinnedMessages");for(let s of await c.getAll()){if(s.storageConversationId!==void 0)continue;let l=mt(s);await c.put(jo(l)),await c.delete(s.conversationId);}await t.put({key:Go,value:!0}),await n.done;}catch(t){try{n.abort();}catch{}try{await n.done;}catch{}throw t}}async function Xd(e){let n=e.transaction(["messages","readStates","meta"],"readwrite");try{let t=n.objectStore("meta");if((await t.get(Lo))?.value===!0){await n.done;return}let r=n.objectStore("readStates"),o=await r.getAll(),i=new Map;for(let m of o){let w=wn(m);w.conversationType==="channel"&&w.readCursorSortKey!==void 0&&w.readCursor!==""&&i.set(Da$1(w),{cursor:w.readCursor});}let a=new Map,c=n.objectStore("messages"),s=await c.openCursor();for(;s!==null;){let m=s.value,w=Da$1(Aa$1(m)),y=l(m),u=i.get(w);if(u!==void 0&&m.extensions?.historyCursor===u.cursor&&(u.sortKey=y),y!==m.sortKey){let h=a.get(w);h===void 0&&(h=new Map,a.set(w,h)),h.set(m.sortKey,y),await s.update({...m,sortKey:y});}s=await s.continue();}for(let m of o){let w=wn(m);if(w.conversationType===void 0)continue;let y=Da$1(w),u=i.get(y)?.sortKey??(w.readCursorSortKey===void 0?void 0:a.get(y)?.get(w.readCursorSortKey));if(u===void 0&&w.readCursorSortKey!==void 0&&w.conversationType!=="channel"&&w.readCursor!==""){let h=await c.get(w.readCursor);h!==void 0&&Da$1(Aa$1(h))===y&&(u=h.sortKey);}u!==void 0&&u!==w.readCursorSortKey&&await r.put({...m,readCursorSortKey:u});}let l$1=await t.get(Ho);if(Array.isArray(l$1?.value)){let m=!1,w=l$1.value.map(y=>{if(!Array.isArray(y)||y.length!==2||typeof y[0]!="string"||typeof y[1]!="string")return y;let u=a.get(y[0])?.get(y[1]);return u===void 0?y:(m=!0,[y[0],u])});m&&await t.put({key:Ho,value:w});}await t.put({key:Lo,value:!0}),await n.done;}catch(t){try{n.abort();}catch{}try{await n.done;}catch{}throw t}}function $o(e){return `${e.kind}:${encodeURIComponent(e.messageId)}:${e.resourceVersion}`}async function Zd(e,n){let t=n.namespaceFactory.forAccount(e).name("durable","storage","indexed-db");typeof indexedDB>"u"||await deleteDB(t);}function eu(e){let{namespaceFactory:n}=e,t=null,r=null,o=0,i=Promise.resolve(),a=0,c=e.mediaAssetCache?.maxPendingWriteBytes??$d;if(!Number.isSafeInteger(c)||c<=0)throw new RangeError("\u5A92\u4F53\u8D44\u4EA7\u7F13\u5B58\u5F85\u5199\u5185\u5B58\u9884\u7B97\u5FC5\u987B\u662F\u6B63\u6574\u6570");function s(){if(t===null)throw new Error("ImStoragePort \u672A open\uFF1A\u8BF7\u5148 open({ namespace }) \u518D\u8BFB\u5199");return t}async function l(d){if(typeof d!="string")return;let f=IDBKeyRange.bound([d,""],[d,Ce]),C=(await s().transaction("messages").store.index("by_conv_sort").getAll(f)).map(we);Ze(d,C);}function m(d){let f=i.then(d,d);return i=f.then(()=>{},()=>{}),f}function w(d,f){if(d!==o||f===null||f!==r)throw new Error("\u5A92\u4F53\u8D44\u4EA7\u7F13\u5B58\u8D26\u53F7\u4EE3\u9645\u5DF2\u5931\u6548")}function y(){return Math.max(0,Math.floor(e.mediaAssetCache?.now?.()??Date.now()))}async function u(d){let f=e.mediaAssetCache?.estimateStorage??(async()=>typeof navigator>"u"||navigator.storage?.estimate===void 0?{}:await navigator.storage.estimate());try{let{quota:C,usage:p}=await f();if(C===void 0||!Number.isFinite(C)||C<=0)return Ko;let b=d.reduce((I,P)=>I+P.byteLength,0),M=Math.max(0,(p??0)-b),_=Math.max(Fd,Math.floor(C*.2));return Math.max(0,Math.min(Hd,Math.floor(C-M-_)))}catch{return Ko}}async function h(d,f,C){if(d.length===0)return;w(f,C);let p=s().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all(d.flatMap(b=>[p.objectStore("mediaAssets").delete(b),p.objectStore("mediaAssetMeta").delete(b)])),await p.done;}async function v(d,f,C,p){w(d,f);let b=s(),M=e.mediaAssetCache?.strategies;if(M===void 0)return;let _=p??await b.getAll("mediaAssetMeta");w(d,f);let I=new Set;for(let S of M.list()){let x=_.filter(k=>k.kind===S.kind).sort((k,U)=>k.lastAccessedAt-U.lastAccessedAt),E=x.reduce((k,U)=>k+U.byteLength,0),D=x.length;for(let k of x){if(E<=S.softMaxBytes&&D<=S.maxEntries)break;I.add(k.key),E-=k.byteLength,D-=1;}}let P=_.filter(S=>!I.has(S.key)).sort((S,x)=>S.lastAccessedAt-x.lastAccessedAt),A=Math.max(0,Math.min(await u(_),C??Number.POSITIVE_INFINITY)),g=P.reduce((S,x)=>S+x.byteLength,0);for(let S of P){if(g<=A)break;I.add(S.key),g-=S.byteLength;}await h([...I],d,f);}async function T(d,f,C){w(f,C);let p=e.mediaAssetCache?.strategies.resolve(d.kind);if(p===void 0)return "skipped";let b=d.blob,M=b.size,_=await s().getAll("mediaAssetMeta"),I=await u(_);if(w(f,C),M===0||M>p.maxEntryBytes||I<=0||M>Math.floor(I/2))return "skipped";let P=$o(d),A=y(),g=_.find(k=>k.key===P),S={key:P,kind:d.kind,messageId:d.messageId,resourceVersion:d.resourceVersion,byteLength:M,...d.mimeType===void 0?{}:{mimeType:d.mimeType},createdAt:g?.createdAt??A,lastAccessedAt:A},x=async()=>{w(f,C);let k=s().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all([k.objectStore("mediaAssets").put({key:P,blob:b}),k.objectStore("mediaAssetMeta").put(S)]),await k.done;},E=false;try{await x();}catch(k){if(!(k instanceof DOMException)||k.name!=="QuotaExceededError")throw k;E=true,await v(f,C,Math.max(0,I-M)),await x();}let D=g===void 0?[..._,S]:_.map(k=>k.key===P?S:k);return await v(f,C,void 0,E?void 0:D),w(f,C),await s().get("mediaAssets",P)===void 0?"skipped":"stored"}return {async open({namespace:d}){if(t!==null&&r===d)return;t!==null&&(t.close(),t=null),r=d;let f=++o,C=n.forAccount(d).name("durable","storage","indexed-db"),p=await openDB(C,Ld,{upgrade(b,M,_,I){if(b.objectStoreNames.contains("messages"))I.objectStore("messages").indexNames.contains("by_conversation_key_sort")||I.objectStore("messages").createIndex("by_conversation_key_sort",["conversationKey","sortKey"]);else {let P=b.createObjectStore("messages",{keyPath:"id"});P.createIndex("by_conv_sort",["conversationId","sortKey"]),P.createIndex("by_conversation_key_sort",["conversationKey","sortKey"]);}if(b.objectStoreNames.contains("sessions")||b.createObjectStore("sessions",{keyPath:"id"}),b.objectStoreNames.contains("readStates")||b.createObjectStore("readStates",{keyPath:"conversationId"}),b.objectStoreNames.contains("drafts")||b.createObjectStore("drafts",{keyPath:"conversationKey"}),b.objectStoreNames.contains("outbox")||b.createObjectStore("outbox",{keyPath:"id"}),b.objectStoreNames.contains("meta")||b.createObjectStore("meta",{keyPath:"key"}),b.objectStoreNames.contains("userProfiles")||b.createObjectStore("userProfiles",{keyPath:"id"}),b.objectStoreNames.contains("groupMembers")||b.createObjectStore("groupMembers",{keyPath:"groupId"}),b.objectStoreNames.contains("groupProfiles")||b.createObjectStore("groupProfiles",{keyPath:"id"}),b.objectStoreNames.contains("pinnedMessages")||b.createObjectStore("pinnedMessages",{keyPath:"conversationId"}),b.objectStoreNames.contains("channelProfiles")||b.createObjectStore("channelProfiles",{keyPath:"id"}),b.objectStoreNames.contains("channelMembers")||b.createObjectStore("channelMembers",{keyPath:["channelId","userId"]}),b.objectStoreNames.contains("channelMemberSnapshots")||b.createObjectStore("channelMemberSnapshots",{keyPath:"channelId"}),b.objectStoreNames.contains("channelMentionCandidateSnapshots")||b.createObjectStore("channelMentionCandidateSnapshots",{keyPath:"channelId"}),b.objectStoreNames.contains("conversationBackgrounds")||b.createObjectStore("conversationBackgrounds",{keyPath:"key"}),b.objectStoreNames.contains("mediaAssets")||b.createObjectStore("mediaAssets",{keyPath:"key"}),!b.objectStoreNames.contains("mediaAssetMeta")){let P=b.createObjectStore("mediaAssetMeta",{keyPath:"key"});P.createIndex("by_kind_access",["kind","lastAccessedAt"]),P.createIndex("by_access","lastAccessedAt");}b.objectStoreNames.contains("decryptRecoveries")||b.createObjectStore("decryptRecoveries",{keyPath:"key"}).createIndex("by_conversation","conversationKey"),M>0&&M<13&&(I.objectStore("mediaAssets").clear(),I.objectStore("mediaAssetMeta").clear());}});if(f!==o){p.close();return}try{await Qd(p),await Xd(p);}catch(b){throw p.close(),b}if(f!==o){p.close();return}t=p;},async close(){o+=1,r=null,t!==null&&(t.close(),t=null);},async clearRebuildableCaches(){let d=o,f=r;await m(async()=>{w(d,f);let p=s().transaction(["userProfiles","groupMembers","groupProfiles","channelProfiles","channelMembers","channelMemberSnapshots","channelMentionCandidateSnapshots","mediaAssets","mediaAssetMeta","meta"],"readwrite");await Promise.all([p.objectStore("userProfiles").clear(),p.objectStore("groupMembers").clear(),p.objectStore("groupProfiles").clear(),p.objectStore("channelProfiles").clear(),p.objectStore("channelMembers").clear(),p.objectStore("channelMemberSnapshots").clear(),p.objectStore("channelMentionCandidateSnapshots").clear(),p.objectStore("mediaAssets").clear(),p.objectStore("mediaAssetMeta").clear(),p.objectStore("meta").delete(dt),p.done]);});},async get(d){let f=o,C=r;return await m(async()=>{if(w(f,C),e.mediaAssetCache?.strategies.resolve(d.kind)===void 0)return null;let p=$o(d),b=s(),[M,_]=await Promise.all([b.get("mediaAssets",p),b.get("mediaAssetMeta",p)]);return w(f,C),M===void 0||_===void 0?(await h([p],f,C),null):(await b.put("mediaAssetMeta",{..._,lastAccessedAt:y()}),{kind:_.kind,messageId:_.messageId,resourceVersion:_.resourceVersion,blob:M.blob,..._.mimeType===void 0?{}:{mimeType:_.mimeType}})})},async put(d){let f=o,C=r;w(f,C);let p=d.blob.size;if(p>c||a+p>c)return "skipped";a+=p;try{return await m(()=>T(d,f,C))}finally{a=Math.max(0,a-p);}},async clear(){let d=o,f=r;await m(async()=>{w(d,f);let C=s().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all([C.objectStore("mediaAssets").clear(),C.objectStore("mediaAssetMeta").clear(),C.done]);});},async getMessage(d,f){let C=await s().get("messages",f);if(C===void 0)return null;let p=we(C);return Da$1(Aa$1(p))===Da$1(d)?p:null},async getMessages(d,f){let C=typeof d=="string"?"by_conv_sort":"by_conversation_key_sort",p=typeof d=="string"?d:Da$1(d);if(await l(d),f.beforeSortKey===void 0&&f.afterSortKey!==void 0){let I=IDBKeyRange.bound([p,f.afterSortKey],[p,Ce]),P=[],A=await s().transaction("messages").store.index(C).openCursor(I,"next");for(;A!==null&&P.length<f.limit;)P.push(A.value),A=await A.continue();return P.map(we)}let b=f.beforeSortKey===void 0?IDBKeyRange.bound([p,""],[p,Ce]):IDBKeyRange.bound([p,""],[p,f.beforeSortKey],false,true),M=[],_=await s().transaction("messages").store.index(C).openCursor(b,"prev");for(;_!==null&&M.length<f.limit;)M.push(_.value),_=await _.continue();return M.reverse().map(we)},async saveMessages(d){if(d.length===0)return;let f=s().transaction("messages","readwrite");await Promise.all([...d.map(C=>f.store.put(Jo(C))),f.done]);},async searchMessages(d,f){let C=Da$1(d),p=f.keyword?.trim()??"",b=f.contentTypes;if(p===""&&(b===void 0||b.length===0))return {items:[],exhausted:true};let M=p===""?void 0:await ca$1(p),_=f.beforeSortKey===void 0?IDBKeyRange.bound([C,""],[C,Ce]):IDBKeyRange.bound([C,""],[C,f.beforeSortKey],false,true),I=2e3,P=[],A=0,g,S=await s().transaction("messages").store.index("by_conversation_key_sort").openCursor(_,"prev");for(;S!==null&&P.length<f.limit&&A<I;){let E=ga$1(we(S.value));A+=1,g=E.sortKey;let D=b===void 0||b.includes(E.contentType),k=M===void 0||M.match(aa$1(E))!==null;D&&k&&P.push(E),S=await S.continue();}let x=S===null;return {items:P,exhausted:x,...x?{}:{nextBeforeSortKey:g}}},async getDecryptRecoveries(d){let f=Da$1(d);return (await s().getAllFromIndex("decryptRecoveries","by_conversation",f)).map(qd)},async saveDecryptRecovery(d){if(d.sContent.byteLength===0||d.sContent.byteLength>Jd)throw new Error(`\u89E3\u5BC6\u6062\u590D\u5BC6\u6587\u5B57\u8282\u957F\u5EA6\u975E\u6CD5\uFF1A${d.sContent.byteLength}`);await s().put("decryptRecoveries",Vd(d));},async deleteDecryptRecovery(d,f){await s().delete("decryptRecoveries",lt(d,f));},async deleteConversationDecryptRecoveries(d){let f=Da$1(d),C=s().transaction("decryptRecoveries","readwrite"),p=await C.store.index("by_conversation").openCursor(IDBKeyRange.only(f));for(;p!==null;)await p.delete(),p=await p.continue();await C.done;},async getSessions(){return (await s().getAll("sessions")).map(pt)},async saveSessions(d){if(d.length===0)return;let f=s().transaction("sessions","readwrite");for(let C of d)await f.store.put(Cn(C)),await f.store.delete(C.id);await f.done;},async deleteSession(d){if(typeof d!="string"){let p=s().transaction(["sessions","conversationBackgrounds"],"readwrite");await p.objectStore("sessions").delete(Da$1(d)),await p.objectStore("conversationBackgrounds").delete(Xe(d)),await p.done;return}let f=(await s().getAll("sessions")).map(pt).filter(p=>p.id===d);Ze(d,f.map(p=>({conversationType:p.type})));let C=s().transaction(["sessions","conversationBackgrounds"],"readwrite");if(f[0]!==void 0){let p=Ba$1(f[0]);await C.objectStore("sessions").delete(Da$1(p)),await C.objectStore("conversationBackgrounds").delete(Xe(p));}await C.objectStore("sessions").delete(d),await C.done;},async deleteReadState(d){if(typeof d!="string"){await s().delete("readStates",Da$1(d));return}let C=(await s().getAll("readStates")).map(wn).filter(p=>p.conversationId===d).filter(p=>p.conversationType!==void 0);Ze(d,C),C[0]!==void 0&&await s().delete("readStates",Da$1(C[0])),await s().delete("readStates",d);},async deleteMessage(d,f,C){let p=s().transaction(["messages","sessions","decryptRecoveries"],"readwrite"),b=await p.objectStore("messages").get(f);if(b!==void 0){let M=we(b);if(M.conversationType!==d.conversationType||M.conversationId!==d.conversationId)return await p.done,false;await p.objectStore("messages").delete(f);}return await p.objectStore("decryptRecoveries").delete(lt(d,f)),C!==void 0&&await p.objectStore("sessions").put(Cn(C)),await p.done,b!==void 0},async deleteConversationMessages(d){let f=Yd(d),C=typeof d=="string"?"by_conv_sort":"by_conversation_key_sort",p=typeof d=="string"?d:Da$1(d),b=IDBKeyRange.bound([p,""],[p,Ce]),M=s().transaction(["messages","decryptRecoveries"],"readwrite"),_=M.objectStore("messages"),I=M.objectStore("decryptRecoveries"),P=[];if(typeof d=="string"){let g=(await _.index("by_conv_sort").getAll(b)).map(we);P=(await I.getAll()).filter(S=>S.conversation.conversationId===d),Ze(f,[...g,...P.map(S=>({conversationType:S.conversation.conversationType}))]);}let A=await _.index(C).openCursor(b);for(;A!==null;)await A.delete(),A=await A.continue();if(typeof d=="string")for(let g of P)await I.delete(g.key);else {let g=await I.index("by_conversation").openCursor(IDBKeyRange.only(Da$1(d)));for(;g!==null;)await g.delete(),g=await g.continue();}await M.done;},async clearConversationHistory(d,f,C){let p=Da$1(d),b=IDBKeyRange.bound([p,""],[p,Ce]),M=s().transaction(["messages","sessions","readStates","decryptRecoveries"],"readwrite"),_=await M.objectStore("messages").index("by_conversation_key_sort").openCursor(b);for(;_!==null;)await _.delete(),_=await _.continue();let I=await M.objectStore("decryptRecoveries").index("by_conversation").openCursor(IDBKeyRange.only(p));for(;I!==null;)await I.delete(),I=await I.continue();f!==void 0&&await M.objectStore("sessions").put(Cn(f)),C!==void 0&&(await M.objectStore("readStates").put(ft(C)),await M.objectStore("readStates").delete(C.conversationId)),await M.done;},async getReadStates(){return (await s().getAll("readStates")).map(wn)},async saveReadState(d){let f=s().transaction("readStates","readwrite");await f.store.put(ft(d)),d.conversationType!==void 0&&await f.store.delete(d.conversationId),await f.done;},async getDrafts(){return (await s().getAll("drafts")).map(Wd)},async saveDraft(d){await s().put("drafts",zd(d));},async deleteDraft(d){await s().delete("drafts",Da$1(d));},async getConversationBackground(d){return (await s().get("conversationBackgrounds",Xe(d)))?.background??null},async saveConversationBackground(d,f){let C=Xe(d);await s().put("conversationBackgrounds",{key:C,background:f});},async deleteConversationBackground(d){await s().delete("conversationBackgrounds",Xe(d));},async getDefaultConversationBackground(){return (await s().get("conversationBackgrounds",ut))?.background??null},async saveDefaultConversationBackground(d){await s().put("conversationBackgrounds",{key:ut,background:d});},async deleteDefaultConversationBackground(){await s().delete("conversationBackgrounds",ut);},async getOutbox(){return s().getAll("outbox")},async saveOutboxMessage(d){await s().put("outbox",d);},async removeOutboxMessage(d){await s().delete("outbox",d);},async getPinnedMessages(){return (await s().getAll("pinnedMessages")).map(mt)},async savePinnedMessage(d){let f=s().transaction("pinnedMessages","readwrite");await f.store.put(jo(d)),await f.store.delete(d.conversationId),await f.done;},async removePinnedMessage(d){if(typeof d!="string"){await s().delete("pinnedMessages",Da$1(d));return}let f=(await s().getAll("pinnedMessages")).map(mt).filter(C=>C.conversationId===d);Ze(d,f),f[0]!==void 0&&await s().delete("pinnedMessages",Da$1(Ca$1(f[0]))),await s().delete("pinnedMessages",d);},async getMeta(d){let f=await s().get("meta",d);return f===void 0?null:f.value},async setMeta(d,f){await s().put("meta",{key:d,value:f});},async getUserProfile(d){return await s().get("userProfiles",d)??null},async saveUserProfile(d){await s().put("userProfiles",d);},async getGroupMembers(d){return await s().get("groupMembers",d)??null},async saveGroupMembers(d){await s().put("groupMembers",d);},async getGroupProfile(d){return await s().get("groupProfiles",d)??null},async saveGroupProfile(d){await s().put("groupProfiles",d);},async getChannelProfile(d){return await s().get("channelProfiles",d)??null},async getChannelProfiles(){return s().getAll("channelProfiles")},async saveChannelProfiles(d){if(d.length===0)return;let f=s().transaction("channelProfiles","readwrite");await Promise.all([...d.map(C=>f.store.put(C)),f.done]);},async getChannelListVersion(){let d=await s().get("meta",dt);return typeof d?.value=="string"&&/^\d+$/.test(d.value)?d.value:"0"},async saveChannelListVersion(d){if(!/^\d+$/.test(d))throw new Error(`CHANNEL list version \u975E\u6CD5\uFF1A${d}`);await s().put("meta",{key:dt,value:d});},async getChannelMembers(d,f){if(f.length===0)return [];let C=s().transaction("channelMembers"),p=await Promise.all(f.map(b=>C.store.get([d,b])));return await C.done,p.filter(b=>b!==void 0)},async saveChannelMembers(d){if(d.length===0)return;let f=s().transaction("channelMembers","readwrite");for(let C of d){let p=await f.store.get([C.channelId,C.userId]);p!==void 0&&jd(C.updateVersion,p.updateVersion)<0||await f.store.put(C);}await f.done;},async deleteChannelMembers(d){let f=IDBKeyRange.bound([d,""],[d,Ce]),C=s().transaction("channelMembers","readwrite"),p=await C.store.openCursor(f);for(;p!==null;)await p.delete(),p=await p.continue();await C.done;},async getChannelMemberSnapshot(d){return await s().get("channelMemberSnapshots",d)??null},async saveChannelMemberSnapshot(d){await s().put("channelMemberSnapshots",d);},async deleteChannelMemberSnapshot(d){await s().delete("channelMemberSnapshots",d);},async getChannelMentionCandidateSnapshot(d){return await s().get("channelMentionCandidateSnapshots",d)??null},async saveChannelMentionCandidateSnapshot(d){await s().put("channelMentionCandidateSnapshots",d);},async deleteChannelMentionCandidateSnapshot(d){await s().delete("channelMentionCandidateSnapshots",d);}}}function nu(e={}){let n=e.createSocket??(u=>new globalThis.WebSocket(u)),t=e.connectTimeoutMs??1e4,r={open:new Set,message:new Set,close:new Set,error:new Set},o,i,a="idle",c;function s(u,h){for(let v of [...r[u]])v(h);}function l(){c!==void 0&&(clearTimeout(c),c=void 0);}function m(u,h){h!==void 0&&(u.removeEventListener("open",h.onOpen),u.removeEventListener("message",h.onMessage),u.removeEventListener("error",h.onError),u.removeEventListener("close",h.onClose));}function w(){if(l(),o!==void 0){m(o,i);try{o.close(1e3);}catch{}o=void 0;}i=void 0;}function y(u,h,v){let T={onOpen:()=>{u===o&&(l(),a="open",s("open",{endpoint:h}));},onMessage:d=>{if(u!==o)return;let f=d?.data;if(f instanceof ArrayBuffer){s("message",{data:f});return}s("error",{error:new Error(`WsTransport\uFF1A\u6536\u5230\u975E ArrayBuffer \u6D88\u606F\uFF08${typeof f}\uFF09\uFF0C\u5DF2\u5FFD\u7565`)});},onError:d=>{u===o&&s("error",{error:new Error(`WsTransport\uFF1AWebSocket error \u4E8B\u4EF6\uFF08${d instanceof Event?d.type:typeof d}\uFF09`)});},onClose:d=>{u===o&&(l(),m(u,T),o=void 0,i=void 0,a="closed",s("close",{code:d?.code??1006,reason:d?.reason??"",wasClean:d?.wasClean??false}));}};if(i=T,u.addEventListener("open",T.onOpen),u.addEventListener("message",T.onMessage),u.addEventListener("error",T.onError),u.addEventListener("close",T.onClose),v>0){let d=setTimeout(()=>{if(!(u!==o||a!=="connecting")){s("error",{error:new Error(`WsTransport\uFF1A\u8FDE\u63A5\u8D85\u65F6\uFF08${v}ms \u672A open\uFF09`)});try{u.close();}catch{}}},v);d.unref?.(),c=d;}}return {get state(){return a},async connect(u,h){let v=u[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");w(),a="connecting";let T;try{T=n(v.url);}catch(d){throw a="closed",d}T.binaryType="arraybuffer",o=T,y(T,v,h?.connectTimeoutMs??t);},async send(u){if(o===void 0||a!=="open")throw new Error(`WsTransport.send\uFF1A\u8FDE\u63A5\u672A\u5C31\u7EEA\uFF08state=${a}\uFF09\uFF0C\u62D2\u7EDD\u53D1\u9001`);o.send(u);},async close(u=1e3,h){l(),o!==void 0&&(a==="connecting"||a==="open")&&(a="closing",o.close(u,h));},on(u,h){return r[u].add(h),()=>{r[u].delete(h);}}}}
7
+ export{js as $,pi as $a,qo as A,Sc as Aa,ms as B,vc as Ba,ys as C,Mc as Ca,hs as D,Ac as Da,bs as E,_c as Ea,Cs as F,xc as Fa,ws as G,Tc as Ga,Ps as H,Rc as Ha,Is as I,Dc as Ia,Ss as J,Uc as Ja,vs as K,Bc as Ka,Ms as L,Oc as La,As as M,gn as Ma,_s as N,fe as Na,xs as O,Wc as Oa,Es as P,Yc as Pa,Ts as Q,Cd as Qa,Ds as R,H as Ra,fn as S,zo as Sa,mn as T,Jt as Ta,Us as U,Bd as Ua,Ns as V,Nd as Va,Ks as W,Zd as Wa,Gs as X,eu as Xa,Ls as Y,nu as Ya,Fs as Z,ei as Za,$s as _,nn as _a,Ai as a,Vs as aa,Mi as ab,Ne as b,qs as ba,V as c,zs as ca,Gi as d,Ys as da,Hi as e,Xs as ea,Ke as f,Zs as fa,Fi as g,ec as ga,ta as h,nc as ha,Se as i,tc as ia,W as j,oc as ja,pa as k,ze as ka,fa as l,ac as la,Fe as m,sc as ma,ie as n,cc as na,va as o,dc as oa,$e as p,uc as pa,Q as q,lc as qa,Ga as r,pc as ra,Va as s,fc as sa,Ya as t,mc as ta,Qa as u,hc as ua,ts as v,bc as va,Ae as w,Cc as wa,$ as x,wc as xa,ye as y,go as ya,ds as z,yo as za};