k2-im 0.1.28 → 0.1.29

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,D,G,m,e,F as F$1,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,_,$}from'./chunk-XICYFDN4.js';import*as z from'node-forge';import {deleteDB,openDB}from'idb';function zo(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 F=class extends Error{code;constructor(n,t,r){super(t??n,r),this.name="MediaTransferError",this.code=n;}};function Wo(e){return e instanceof F?e.code:void 0}var Yo=3600*1e3,Qo=300*1e3;function le(...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 Xo(e){let n=Number(e);if(!(!Number.isFinite(n)||n<=0))return n>1e12?n/1e3:n}function Zo(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 F("credentials-invalid","S3 \u4E0A\u4F20\u51ED\u8BC1\u683C\u5F0F\u65E0\u6548\uFF1A\u56DE\u5305\u4E0D\u662F\u5BF9\u8C61");let n=e,t=le(n.access_key_id,n.accessKeyId),r=le(n.secret_key,n.secretKey,n.secretAccessKey),o=le(n.session_token,n.sessionToken).replace(/\s+/g,""),i=le(n.bucket),a=le(n.region),c=Zo(le(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 F("credentials-invalid",`S3 \u4E0A\u4F20\u51ED\u8BC1\u683C\u5F0F\u65E0\u6548\uFF1A\u7F3A\u5C11 ${s.join("\u3001")}`);let u=Xo(n.expiration??n.expiresAtSeconds),g=le(n.key_prefix,n.keyPrefix),I=le(n.identity_id,n.identityId);return {accessKeyId:t,secretAccessKey:r,sessionToken:o,bucket:i,region:a,dnsPoint:c,...u===void 0?{}:{expiresAtSeconds:u},...g===""?{}:{keyPrefix:g},...I===""?{}:{identityId:I}}}function ei(e,n){if(n-e.fetchedAtMs>=Yo)return false;let{expiresAtSeconds:t}=e.credential;return t===void 0?true:t*1e3-Qo>n}function Vt(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 u=s instanceof Error?s.message:String(s);throw new F("credentials-request-failed",`S3 \u4E0A\u4F20\u51ED\u8BC1\u83B7\u53D6\u5931\u8D25\uFF1Abucket=${o}\uFF1B\u539F\u56E0\uFF1A${u}`,{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 F("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&&ei(c,Date.now()))return Promise.resolve(c.credential);n.delete(o);let s=t.get(o);if(s!==void 0)return s;let u=r(o,a).finally(()=>{t.get(o)===u&&t.delete(o);});return t.set(o,u),u}}}function ni(){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 tn(e){return e instanceof N?e.code:void 0}function qt(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 te=16e3,ti=new URL("./speex-runtime.txt",import.meta.url).href,En=null,ri=15e3;async function oi(){document.querySelector('script[data-speex-runtime="true"]')?.remove();let e=new AbortController,n=setTimeout(()=>e.abort(new Error("Speex runtime fetch timeout")),ri),t;try{t=await fetch(ti,{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 oi(),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 zt(){kn().catch(()=>{});}function pe(e,n,t){for(let r=0;r<t.length;r+=1)e.setUint8(n+r,t.charCodeAt(r));}function ii(e,n){let r=new ArrayBuffer(44+e.length*2),o=new DataView(r);pe(o,0,"RIFF"),o.setUint32(4,36+e.length*2,true),pe(o,8,"WAVE"),pe(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),pe(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 ai=40,Rn=120,si=40,Dn=80;function ci(e,n){let t=Math.min(Math.floor(n*ai/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*si/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 rn(e,n){let r=new ArrayBuffer(44+e.length*2),o=new DataView(r);return pe(o,0,"RIFF"),o.setUint32(4,36+e.length*2,true),pe(o,8,"WAVE"),pe(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),pe(o,36,"data"),o.setUint32(40,e.length*2,true),new Int16Array(r,44).set(e),new Uint8Array(r)}function di(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 ui(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 Wt(e,n){let t=await kn(),r=Math.floor(n*Dn/1e3),o=new Float32Array(r+e.length);o.set(e,r);let i=ii(o,n);try{return di(t.encodeFile(i))}catch(a){throw new N("encode-failed","\u8BED\u97F3\u7F16\u7801\u5931\u8D25",{cause:a})}}async function Yt(e){let n=await kn();try{let[t,r]=n.decodeFile(ui(e));if(t.length===0)throw new Error("decoded empty pcm");let o=ci(Tn(t),r.rate>0?r.rate:te),i=r.rate>0?r.rate:te;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 Qt(e){let n=await Yt(e);return {wavData:rn(n.samples,n.sampleRate),durationMs:n.durationMs}}var li=.5,pi=2;function Xt(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,li),pi)}function fi(e={}){let n=e.cacheMax??8,t={activeId:"",isPlaying:false,loadingId:"",progress:0,currentTimeMs:0,errorIds:new Set,playbackRate:e.playbackRate===void 0?1:Xt(e.playbackRate)},r=new Set;function o(){for(let f of r)f(t);}let i=null,a=new Map,c=0,s=false,u=false;function g(f){let v=a.get(f);return v!==void 0&&(a.delete(f),a.set(f,v)),v}function I(f,v){if(s)return URL.revokeObjectURL(v.url),v;let x=a.get(f);if(x!==void 0)return URL.revokeObjectURL(v.url),a.delete(f),a.set(f,x),x;for(a.set(f,v);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 v}function y(f){f.paused||f.pause(),f.removeAttribute("src");try{f.load();}catch{}}function l(f,v){return !s&&f===c&&t.activeId===v}function h(f){f.defaultPlaybackRate=t.playbackRate,f.playbackRate=t.playbackRate;}function S(){if(i!==null)return i;let f=new Audio;return f.preload="auto",h(f),f.addEventListener("timeupdate",()=>{t.activeId!==""&&(t.currentTimeMs=f.currentTime*1e3,t.progress=f.duration>0?Math.min(1,f.currentTime/f.duration):0,o());}),f.addEventListener("ended",()=>{T(),y(f),o();}),f.addEventListener("pause",()=>{t.activeId!==""&&(t.isPlaying=false,o());}),i=f,f}function T(){t.activeId="",t.isPlaying=false,t.progress=0,t.currentTimeMs=0;}function d(){c+=1,u=false,t.loadingId="",T(),i!==null&&y(i),o();}function m(f){t.errorIds=new Set([...t.errorIds,f]);}function w(f){if(!t.errorIds.has(f))return;let v=new Set(t.errorIds);v.delete(f),t.errorIds=v;}async function p(f,v){let x=g(f);if(x!==void 0)return {entry:x};let E;try{E=await v();}catch(D){return {entry:null,error:{code:tn(D),cause:D}}}if(E===null)return {entry:null};try{let{wavData:D,durationMs:k}=await Qt(E),U={url:URL.createObjectURL(new Blob([D],{type:"audio/wav"})),durationMs:k};return {entry:I(f,U)}}catch(D){return {entry:null,error:{code:tn(D),cause:D}}}}async function b(f,v){if(s)return;let x=S();if(w(f),t.activeId===f){if(t.isPlaying){x.pause();return}let k=++c;try{await x.play();}catch{if(!l(k,f))return;m(f),o();return}if(!l(k,f))return;t.isPlaying=true,o(),v.onPlayStart?.();return}if(t.loadingId===f)return;d();let E=++c;t.loadingId=f,o();let D=await p(f,v.load);if(E===c){if(t.loadingId="",D.entry===null){m(f),o(),D.error!==void 0&&v.onDecodeError?.(D.error.code,D.error.cause);return}x.src=D.entry.url,h(x),t.activeId=f,t.progress=0,t.currentTimeMs=0,o();try{await x.play();}catch(k){if(!l(E,f))return;T(),y(x),m(f),o(),v.onDecodeError?.(void 0,k);return}l(E,f)&&(t.isPlaying=true,o(),v.onPlayStart?.());}}function M(f,v){i===null||t.activeId!==f||!Number.isFinite(i.duration)||i.duration<=0||(i.currentTime=Math.min(Math.max(v,0),.999)*i.duration);}function _(f){i===null||t.activeId!==f||t.isPlaying&&(u=true,i.pause());}function C(f){if(i===null||t.activeId!==f||!u)return;u=false;let v=++c;i.play().then(()=>{l(v,f)&&(t.isPlaying=true,o());}).catch(()=>{l(v,f)&&(m(f),o());});}function P(f){let v=Xt(f);v!==t.playbackRate&&(t.playbackRate=v,i!==null&&h(i),o());}function A(){if(!s){s=true,d();for(let f of a.values())URL.revokeObjectURL(f.url);a.clear(),r.clear(),i=null;}}return {getState:()=>t,subscribe:f=>(r.add(f),()=>r.delete(f)),toggle:b,seek:M,beginScrub:_,endScrub:C,setPlaybackRate:P,stop:d,dispose:A}}function mi(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 gi(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 Zt(e){let n=mi(e.timeDomain),t=gi(e.frequency,e.sampleRate,e.fftSize),r=n*.55+t*.45;return Math.min(1,r*e.boost)**.72}var on=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 yi=5e3,Bn=15e3,hi=25e3;function an(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 bi(){return {channelCount:1,echoCancellation:true,noiseSuppression:true,autoGainControl:true}}var Ci=50,wi=.12,Pi=2.6,Ii=.06,Si=256;function vi(){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 Mi(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 an(i.resume(),Bn,"audioContext.resume timeout").catch(()=>{});let c=await an(i.decodeAudioData(await e.arrayBuffer()),Bn,"decodeAudioData timeout"),s=Math.max(1,Math.ceil(c.duration*n)),u=new o(1,s,n),g=u.createBufferSource();return g.buffer=c,g.connect(u.destination),g.start(0),(await an(u.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 er(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 Ai(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:bi()});}catch(f){throw qt(f)}}zt();let t=vi(),r=e.maxDurationMs??6e4,o="recording",i=[],a=0,c=[],s=null,u=null,g=null,I=[],y=0,l=false;function h(){try{let f;try{f=t!==""?new MediaRecorder(n,{mimeType:t}):new MediaRecorder(n);}catch{f=new MediaRecorder(n);}return I=[],f.ondataavailable=v=>{v.data.size>0&&I.push(v.data);},f.start(250),y=Date.now(),f}catch(f){throw f instanceof N?f:new N("device-busy","\u5F55\u97F3\u5668\u542F\u52A8\u5931\u8D25",{cause:f})}}let S=e.amplitude?.intervalMs??Ci,T=e.amplitude?.boost??Pi,d=e.amplitude?.smoothing??wi,m=e.amplitude?.minVolume??Ii;function w(){let f=Math.floor(r/1e3*te),v=0;for(let E of i)v+=E.length;if(v>f){let E=f,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/S));c.length>x&&(c.length=x);}async function p(){if(o!=="recording"){e.onMaxDuration?.();return}e.onMaxDuration?.(),o="paused";let f=A().then(()=>w());g=f;try{await f;}catch(v){console.warn("[im-browser] pauseAtMaxDuration settle failed",v);}}let b=setInterval(()=>{!l&&o==="recording"&&C()>=r&&(l=true,p());},250),M=null,_=null;try{let f=window.AudioContext??window.webkitAudioContext;if(f!==void 0){M=new f,M.state==="suspended"&&M.resume().catch(()=>{});let v=M.createMediaStreamSource(n),x=M.createAnalyser();x.fftSize=Si,x.smoothingTimeConstant=d,v.connect(x);let E=new Uint8Array(x.frequencyBinCount),D=new Uint8Array(x.fftSize),k=new on;_=setInterval(()=>{if(o!=="recording"||s===null)return;x.getByteFrequencyData(E),x.getByteTimeDomainData(D);let U=Zt({timeDomain:D,frequency:E,sampleRate:M.sampleRate,fftSize:x.fftSize,boost:T}),B=k.next(U),$=B<m?0:B;c.push(Math.round($*255)),e.onAmplitude?.($);},S);}}catch(f){console.warn("[im-browser] amplitude analyser setup failed",f);}function C(){let f=o==="recording"&&s!==null?Date.now()-y:0;return a+f}function P(){b!==null&&(clearInterval(b),b=null),_!==null&&(clearInterval(_),_=null),M?.close().catch(()=>{}),M=null;for(let f of n.getTracks())f.stop();}function A(){if(u!==null)return u;let f=s;return f===null?Promise.resolve():(s=null,u=(async()=>{await new Promise(E=>{if(f.state==="inactive"){E();return}let D=setTimeout(()=>{console.warn("[im-browser] recorder onstop timed out, settling with received chunks"),E();},yi);f.onstop=()=>{clearTimeout(D),E();},f.stop();});let v=new Blob(I,{type:f.mimeType||t||"audio/webm"});if(I=[],v.size===0)return;let x=await Mi(v,te,M);x.length!==0&&(i.push(x),a+=x.length/te*1e3);})().finally(()=>{u=null;}),u)}try{s=h();}catch(f){throw o="closed",P(),f}return {getState:()=>o,recordedMs:C,async pause(){o==="recording"&&(o="paused",await A(),(l||a>=r)&&w());},async resume(){o!=="paused"||l||(s=h(),o="recording");},async finish(){if(o==="closed")throw new N("empty-recording","\u5F55\u97F3\u4F1A\u8BDD\u5DF2\u7ED3\u675F");o="closed";let f=async()=>{try{g!==null?await g:await A(),w();}finally{P();}let v=er(i);if(v.length===0)throw new N("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let x=Un(v,te);if(x.length===0)throw new N("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let E=Math.min(c.length,Math.ceil(Rn/S));return {data:await Wt(x,te),durationMs:Math.round(x.length/te*1e3)+Dn,waveform:c.slice(E),filename:`AUDIO_${Date.now()}.ogg`,mimeType:"audio/ogg"}};try{return await an(f(),hi,"\u5F55\u97F3\u5B9A\u7A3F\u8D85\u65F6")}catch(v){throw P(),v instanceof N?v:new N("encode-failed","\u5F55\u97F3\u5B9A\u7A3F\u5931\u8D25",{cause:v})}},cancel(){o="closed";let f=s;if(s=null,f!==null&&(f.ondataavailable=null,f.onstop=null,f.state!=="inactive"))try{f.stop();}catch{}i.length=0,P();},async previewWav(){g!==null?await g:u!==null&&await u,w();let f=er(i),v=Un(f,te);if(v.length===0)throw new N("empty-recording","\u6682\u65E0\u53EF\u8BD5\u542C\u7684\u5F55\u97F3\u5185\u5BB9");return {wavData:rn(Tn(v),te),durationMs:Math.round(v.length/te*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 nr(e,n){return e.length===n.length&&e.every((t,r)=>t===n[r])}var re=class extends Error{constructor(n,t){super(n,t),this.name="ChannelKeyError";}};function tr(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 re("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(u){throw new re("channel secret_key Base64 \u89E3\u7801\u5931\u8D25",{cause:u})}let a=Uint8Array.from(i,u=>u.charCodeAt(0)&255);if(a.length===0)throw new re("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,u=>u.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 _i(e){let n=new Map,t=new Map,r=new Map,o=new Map,i=Ie(nr);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 u(p){let b=o.get(p)??0,M=(async()=>{try{let _=await e.loadSecretKey(p);if(_===null||_.trim()==="")throw new re(`channel secret_key \u7F3A\u5931\uFF08channelId=${p}\uFF09`);let C=tr(_);return (o.get(p)??0)===b&&n.set(p,a(C)),C}catch(_){let C=_ instanceof re?_:new re(`channel secret_key \u52A0\u8F7D\u5931\u8D25\uFF08channelId=${p}\uFF09`,{cause:_});throw e.onError?.(C.message,_),C}})().finally(()=>{t.get(p)===M&&t.delete(p);});return t.set(p,M),M}function g(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 I(p,b){let M=p.trim();if(M===""){let C=new re("channel id \u4E0D\u80FD\u4E3A\u7A7A");return e.onError?.(C.message),Promise.reject(C)}if(b!==void 0){let C=g(M,b);if(C!==void 0)return C.then(a)}let _=n.get(M);return _!==void 0?Promise.resolve(a(_)):t.get(M)??u(M)}function y(p,b){let M=p.trim();if(M===""){let A=new re("channel id \u4E0D\u80FD\u4E3A\u7A7A");return e.onError?.(A.message),Promise.reject(A)}if(b!==void 0){let A=g(M,b);if(A!==void 0)return A.then(f=>f.canonical.slice())}let _=n.get(M);if(_!==void 0)return Promise.resolve(_.canonical.slice());let C=r.get(M);if(C!==void 0)return C;let P=(t.get(M)??u(M)).then(A=>A.canonical.slice()).finally(()=>{r.get(M)===P&&r.delete(M);});return r.set(M,P),P}function l(p){return n.get(p.trim())?.canonical.slice()??null}async function h(p,b){let M=await I(p,b);return c(M)}function S(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 re("channel id \u4E0D\u80FD\u4E3A\u7A7A");let _=tr(b);s(M),i.reset(M),n.set(M,a(_));}function m(p){let b=p.trim();b!==""&&(s(b),i.reset(b));}function w(){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:l,getChannelKeyCandidates:h,getCachedChannelKeyCandidates:S,getCachedChannelKeyMetadata:T,primeChannelKey:d,clearChannelKey:m,clearAll:w}}function or(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 u=0;u<16;u++)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 u=0;u<16;u++)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=or(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),u=new DataView(i.buffer);for(let I=0;I<c;I++){let y=I*8,[l,h]=t([s.getUint32(y,true),s.getUint32(y+4,true)],o);u.setUint32(y,l,true),u.setUint32(y+4,h,true);}let g=c*8;return g<e.length&&i.set(e.subarray(g),g),i}function Be(e,n){return Ue(n,e,On)}function Oe(e,n){return Ue(n,e,Nn)}function ir(e,n){return Ue(n,e,Nn,32)}function ar(e,n){return Ue(n,e,On,32)}var xi=1024*1024;function Ei(){let n=globalThis.scheduler;return typeof n?.yield=="function"?n.yield():new Promise(t=>{setTimeout(t,0);})}function rr(e){if(e?.aborted)throw new DOMException("TEA \u5206\u5757\u5904\u7406\u5DF2\u53D6\u6D88","AbortError")}async function Kn(e,n,t,r=xi,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}`);or(e);let i=t==="encrypt"?Nn:On,a=o.yieldToMain??Ei,c=n.size,s=[],u=0;for(;u<c;){rr(o.signal);let g=Math.min(u+r,c),I=new Uint8Array(await n.slice(u,g).arrayBuffer());rr(o.signal),s.push(Ue(I,e,i)),u=g,o.onProgress?.(u,c),u<c&&await a();}return new Blob(s)}var sr=8,sn=16;function ki(e){let n=z.md.md5.create();return n.update(e,"utf8"),n.digest().toHex()}function dr(e){return new TextEncoder().encode(e)}function Ti(e){let n=e.length;for(;n>0&&e[n-1]===0;)n-=1;return new TextDecoder().decode(e.subarray(0,n))}function Ri(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 Di(e){let n="";for(let t of e)n+=String.fromCharCode(t);return btoa(n)}function Ui(e){let n=Math.ceil(e.length/sr)*sr;if(n===e.length)return e;let t=new Uint8Array(n);return t.set(e),t}function ur(e,n=ki){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<sn)throw new Error("collect TEA key: MD5 \u957F\u5EA6\u4E0D\u8DB3");let o=dr(r.slice(0,sn).toUpperCase());if(o.length<sn)throw new Error("collect TEA key: \u6D3E\u751F\u7ED3\u679C\u4E0D\u8DB3 16 \u5B57\u8282");return o.subarray(0,sn)}function lr(e,n,t){return Di(Oe(ur(n,t),Ui(dr(e))))}function Bi(e,n,t){return Ti(Be(ur(n,t),Ri(e)))}function Oi(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 Oi(JSON.parse(n))}catch{return null}}function Ni(e){let n=e.trim(),t=n.indexOf("}");return t>=0?n.slice(0,t+1):n}function pr(e,n,t){let r=Gn(e);if(r!==null)return r;if(e.trim()===""||n.trim()==="")return null;try{let o=Bi(e,n,t);return Gn(o)??Gn(Ni(o))}catch{return null}}var Ki="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";}},q=class extends Error{businessCode;operation;constructor(n,t,r){super(`${n}\u5931\u8D25\uFF1Acode=${t}${r?` ${r}`:""}`),this.name="CoreJsonBusinessError",this.businessCode=t,this.operation=n;}};async function R(e,n,t,r){let o=r!==void 0&&"responseMode"in r&&r.responseMode==="strict",i;try{i=await e(n,{target:Ki,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 fr(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 Gi(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 Li(e){let n=e.clientType,t=new Map,r=new Map,o=Ie((y,l)=>y===l),i=null,a=null;function c(y,l){e.onError?.(y,l);}function s(){if(i!==null)return Promise.resolve(i);if(a!==null)return a;let y=Promise.resolve().then(()=>e.crypto.generateTempKeyPair()).then(l=>(i=l,l)).finally(()=>{a===y&&(a=null);});return a=y,y}async function u(y){let l;try{l=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 fr(e.client,{publicKey:l.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 S=h.data.prv_key??h.data.prvKey??"",T=String(h.data.version??"").trim();if(S==="")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:Gi(S),privateKey:l.privateKey}),m=new TextDecoder().decode(d).trim();if(m==="")return c(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u89E3\u51FA\u7684\u79C1\u94A5\u4E3A\u7A7A\uFF08userId=${y}\uFF09`),null;let w={privateKey:m,version:T};return t.set(y,w),w}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 g(y,l){let h=y.trim();if(h==="")return Promise.resolve(null);if(l!==void 0){let m=r.get(h);if(m!==void 0)return m;o.shouldRenegotiate(h,l.staleKey,t.get(h)?.privateKey)&&t.delete(h);}let S=t.get(h);if(S!==void 0)return Promise.resolve(S);let T=r.get(h);if(T!==void 0)return T;let d=u(h).finally(()=>{r.get(h)===d&&r.delete(h);});return r.set(h,d),d}function I(y){return t.get(y.trim())??null}return {getUserPrivateKey:g,getCachedPrivateKey:I}}function mr(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 Hi(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 Fi(e){let n=e.clientType,t=new Map,r=new Map,o=new Map,i=Ie((l,h)=>l===h),a=null,c=null;function s(){if(a!==null)return Promise.resolve(a);if(c!==null)return c;let l=Promise.resolve().then(()=>e.crypto.generateTempKeyPair()).then(h=>(a=h,h)).finally(()=>{c===l&&(c=null);});return c=l,l}async function u(l){let h=o.get(l)??0,S;try{S=await s();}catch(b){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u751F\u6210\u4E34\u65F6 RSA \u5BC6\u94A5\u5931\u8D25\uFF08groupId=${l}\uFF09`,b),null}let T;try{T=await mr(e.client,{groupId:l,publicKey:S.publicKeyBase64,clientType:n});}catch(b){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u8BF7\u6C42\u5F02\u5E38\uFF08groupId=${l}\uFF09`,b),null}if(T.data===null)return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u4E1A\u52A1\u5931\u8D25\uFF08groupId=${l}\uFF0Ccode=${T.code}\uFF09`),null;let d=T.data,m=String(d.prv_key??d.prvKey??d.private_key??"").trim(),w=String(d.pub_key??d.pubKey??d.public_key??"").trim(),p=String(d.version??"").trim();if(m==="")return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u54CD\u5E94\u7F3A\u5C11 prv_key\uFF08groupId=${l}\uFF09`),null;try{let b=e.crypto.rsaDecryptPkcs1({data:Hi(m),privateKey:S.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=${l}\uFF09`),null;let _={privateKey:M,publicKey:w,version:p};return (o.get(l)??0)===h&&t.set(l,_),_}catch(b){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u4E34\u65F6\u79C1\u94A5\u89E3 prv_key \u5931\u8D25\uFF08groupId=${l}\uFF09`,b),null}}function g(l,h){let S=l.trim();if(S==="")return Promise.resolve(null);if(h!==void 0){let w=r.get(S);if(w!==void 0)return w;i.shouldRenegotiate(S,h.staleKey,t.get(S)?.privateKey)&&t.delete(S);}let T=t.get(S);if(T!==void 0)return Promise.resolve(T);let d=r.get(S);if(d!==void 0)return d;let m=u(S).finally(()=>{r.get(S)===m&&r.delete(S);});return r.set(S,m),m}function I(l){return t.get(l.trim())??null}function y(l){let h=l.trim();t.delete(h),r.delete(h),o.set(h,(o.get(h)??0)+1),i.reset(h);}return {getGroupKeys:g,getCachedGroupKeys:I,getCachedGroupKeyVersion:l=>t.get(l.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 $i(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 u=t.get(s);if(u!==void 0)return Promise.resolve(u);let g=r.get(s);if(g!==void 0)return g;let I=o(s).finally(()=>{r.get(s)===I&&r.delete(s);});return r.set(s,I),I}return {getPeerPublicKey:i}}var ge=16;function gr(e){let n="";for(let t of e)n+=String.fromCharCode(t);return n}function yr(e){let n=new Uint8Array(e.length);for(let t=0;t<e.length;t++)n[t]=e.charCodeAt(t)&255;return n}function hr(e){return e.replace(/(.{64})/g,`$1
2
+ `).trim()}function Ji(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 z.pki.privateKeyFromPem(n);let t=n.replace(/\s+/g,""),r=[];try{return z.pki.privateKeyFromAsn1(z.asn1.fromDer(z.util.decode64(t)))}catch(i){r.push(i);}let o=hr(t);for(let i of ["PRIVATE KEY","RSA PRIVATE KEY"])try{return z.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 br(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 u=Math.min(s+t,r.length);try{let g=n.decrypt(gr(r.subarray(s,u)),"RSAES-PKCS1-V1_5");o.push(yr(g));}catch(g){let I=g instanceof Error?g.message:String(g);throw new Error(`RSA-PKCS1 \u89E3\u5BC6\u5931\u8D25\uFF08\u5BC6\u6587 ${r.length}B\uFF0C\u5757 ${s}..${u}\uFF0CkeySize ${t}B\uFF0C\u79C1\u94A5 ${n.n.bitLength()}bit\uFF09\uFF1A${I}`)}}let i=o.reduce((s,u)=>s+u.length,0),a=new Uint8Array(i),c=0;for(let s of o)a.set(s,c),c+=s.length;return a}function Vi(e){let n=br({data:e.secretKey,privateKey:e.privateKey});if(n.length<ge)throw new Error(`\u7AEF\u5230\u7AEF\u89E3\u5BC6\u5931\u8D25\uFF1ARSA \u89E3\u51FA\u7684 teaKey \u957F\u5EA6 ${n.length} < ${ge}`);return Be(n,e.cipherData)}function qi(e){let n=(e??"").trim();if(n==="")throw new Error("RSA \u516C\u94A5\u4E3A\u7A7A");if(n.includes("-----BEGIN"))return z.pki.publicKeyFromPem(n);let t=n.replace(/\s+/g,""),r=[];try{return z.pki.publicKeyFromAsn1(z.asn1.fromDer(z.util.decode64(t)))}catch(i){r.push(i);}let o=hr(t);for(let i of ["PUBLIC KEY","RSA PUBLIC KEY"])try{return z.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 Cr(){let e=new Uint8Array(ge),n=new Uint8Array(1);for(let t=0;t<ge;t++){let r=0;do globalThis.crypto.getRandomValues(n),r=n[0]??0;while(r===0);e[t]=r;}return e}function zi(e,n){if(n.length===0)throw new Error("RSA \u52A0\u5BC6\uFF1A\u660E\u6587\u4E3A\u7A7A");let t=qi(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 u=Math.min(s+r,n.length),g=t.encrypt(gr(n.subarray(s,u)),"RSAES-PKCS1-V1_5");o.push(yr(g));}let i=o.reduce((s,u)=>s+u.length,0),a=new Uint8Array(i),c=0;for(let s of o)a.set(s,c),c+=s.length;return a}function Wi(e){let n=e.teaKey??Cr();if(n.length<ge)throw new Error(`\u7AEF\u5230\u7AEF\u52A0\u5BC6\u5931\u8D25\uFF1AteaKey \u957F\u5EA6 ${n.length} < ${ge}`);let t=n.subarray(0,ge),r=Oe(t,e.plain);return {secretKey:zi(e.publicKey,t),cipherData:r}}function Yi(e){return Be(e.teaKey,e.cipherData)}function Qi(e){return Oe(e.teaKey,e.plain)}function Xi(e){return Kn(e.teaKey,e.plain,"encrypt",void 0,e.signal===void 0?{}:{signal:e.signal})}function Zi(e){return Kn(e.teaKey,e.cipherData,"decrypt",void 0,e.signal===void 0?{}:{signal:e.signal})}function ea(e){return ir(e.teaKey,e.plain)}function na(e){return ar(e.teaKey,e.cipherData)}function ta(){return new Promise((e,n)=>{z.pki.rsa.generateKeyPair({bits:2048,e:65537,workers:-1},(t,r)=>{if(t){n(t);return}e({publicKeyBase64:Ji(z.pki.publicKeyToPem(r.publicKey)),privateKey:z.pki.privateKeyToPem(r.privateKey)});});})}function ra(){return {decryptEndToEnd:Vi,encryptEndToEnd:Wi,decryptSymmetric:Yi,encryptSymmetric:Qi,encryptSymmetricChunked:Xi,decryptSymmetricChunked:Zi,encryptFileSimple:ea,decryptFileSimple:na,randomTeaKey:Cr,generateTempKeyPair:ta,rsaDecryptPkcs1:br}}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 wr=50,Pr=20,Ir=1,Hn=2,Fn=3,oa=4,ia=5,Sr=0,aa=1,sa=2;function ca(e){switch(e){case Sr:case aa:case sa: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},Y=class extends Error{constructor(n){super(`application \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ApplicationMappingError";}};function L(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function vr(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 Mr(e){let n=L(e.status);if(e.status===void 0||n==="")return true;let t=Number(n),r=ca(t);if(r===void 0)throw new Y(`\u672A\u77E5\u7533\u8BF7\u72B6\u6001\uFF1A${n}`);return r===Sr}function da(e){let n=L(e.type);if(n==="")return true;if(Number(n)!==Ir)throw new Y(`\u8054\u7CFB\u4EBA\u7533\u8BF7\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${n}`);return true}function ua(e){let n=Number(L(e.type));if(n!==Hn&&n!==Fn&&n!==oa&&n!==ia)throw new Y(`GROUP/CHANNEL \u6DF7\u5408\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${L(e.type)||"<empty>"}`);return n}function cn(e){if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>wr)throw new Y(`limit \u5FC5\u987B\u4E3A 1-${wr}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit};if(!/^[1-9]\d*$/.test(e.cursor))throw new Y("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let n=Number(e.cursor);if(!Number.isSafeInteger(n))throw new Y("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {page:n,pageSize:e.limit}}function Ar(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 Y("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 Y("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");return n}function la(e){let n=$n(L(e.id)||L(e.aid)),t=L(e.user_id)||L(e.user_info?.user_id),r=L(e.nick_name??e.nickname??e.name)||L(e.user_info?.nick_name??e.user_info?.nickname??e.user_info?.name);if(t===""||r==="")throw new Y(`\u8054\u7CFB\u4EBA\u7533\u8BF7\u4EBA\u8EAB\u4EFD\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let o=L(e.head_img_url??e.avatar)||L(e.user_info?.head_img_url??e.user_info?.avatar),i=L(e.user_info?.mid),a=vr(e.create_time??e.createTime??e.update_version);return {applicationId:n,applicantId:t,applicantName:r,...o===""?{}:{applicantAvatar:o},...i===""?{}:{applicantDisplayId:i},message:L(e.remarks??e.introduce_self),...a===void 0?{}:{createdAt:a}}}function pa(e){let n=$n(L(e.id)||L(e.aid)),t=L(e.group_id)||L(e.group_info?.group_id);if(t==="")throw new Y(`GROUP id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let r=L(e.user_id)||L(e.user_info?.user_id),o=L(e.nick_name??e.nickname??e.name)||L(e.user_info?.nick_name??e.user_info?.nickname??e.user_info?.name);if(r===""||o==="")throw new Y(`GROUP \u7533\u8BF7\u4EBA\u6216\u9080\u8BF7\u4EBA\u8EAB\u4EFD\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let i=L(e.head_img_url??e.avatar)||L(e.user_info?.head_img_url??e.user_info?.avatar),a=L(e.user_info?.mid),c=L(e.group_info?.name??e.group_info?.group_name);if(c==="")throw new Y(`GROUP \u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let s=L(e.group_info?.head_img_url??e.group_info?.avatar),u=vr(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:L(e.remarks??e.introduce_self),...u===void 0?{}:{createdAt:u}}}async function dn(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 fa(e){async function n(t){let{pageSize:r}=cn(t),{page:o}=cn(t);for(let i=0;i<Pr;i+=1){let a=await Ge(e.client,{listType:Ir,page:o,pageSize:r,clientType:e.clientType});if(!a.ok)throw new Se(a.code,a.message);let c=Ar(a.data),s=c.filter(I=>da(I)&&Mr(I)).map(la),u=c.length<r,g=o+1;if(s.length>0||u)return {items:s,exhausted:u,...u?{}:{nextCursor:String(g)}};o=g;}return {items:[],exhausted:false,nextCursor:String(o)}}return {listPendingApplications:n,acceptApplication:t=>dn(e,t,Le),ignoreApplication:t=>dn(e,t,He)}}function ma(e){async function n(t){let{pageSize:r}=cn(t),{page:o}=cn(t);for(let i=0;i<Pr;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=Ar(a.data),s=c.filter(I=>{let y=ua(I);return (y===Hn||y===Fn)&&Mr(I)}).map(pa),u=c.length<r,g=o+1;if(s.length>0||u)return {items:s,exhausted:u,...u?{}:{nextCursor:String(g)}};o=g;}return {items:[],exhausted:false,nextCursor:String(o)}}return {listPendingApplications:n,acceptApplication:t=>dn(e,t,Le),ignoreApplication:t=>dn(e,t,He)}}function O(e){let n=typeof e=="string"||typeof e=="number"?String(e).trim():"";return n===""?void 0:n}function ga(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 ya(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 ha(e){let n=Number(e.product_id),t=ga(e.is_dynamic);return {...ya(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 _r(e,n){return Array.isArray(e.mini_program_rel_list)?e.mini_program_rel_list.filter(t=>t!==null&&typeof t=="object").map(t=>ha(t)):n.source==="info"?[]:void 0}function xr(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function Er(e,n){return R(e,"/user_radio/list",{user_id:n.userId,update_version:n.updateVersion,page:n.page,page_size:n.pageSize},xr(n.clientType,"GET"))}function kr(e,n){return R(e,"/user_radio/info",{radio_id:n.channelId},xr(n.clientType,"POST"))}var Tr=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},ae=class extends Error{constructor(n){super(`CHANNEL profile \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelProfileMappingError";}};function Rr(e,n){let t=typeof e=="string"||typeof e=="number"?String(e).trim():"";if(t==="")throw new ae(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function ye(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 ba(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 Ca(e,n){return Number(e)===1?"member":Number(e)===9?"admin":Number(e)===10?"owner":n===false?"guest":"unknown"}function wa(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 Pa(e,n,t){let r=ye(e.radio_user?.user_id),o=e.radio_setting?.un_speaking_user_ids,i=ye(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 Ia(e){if(e!=null)return Number(e)===1?"standard":Number(e)===2?"competition":"unknown"}function Sa(e){let n=ye(e);return n!==void 0&&/^\d+$/.test(n)?n.replace(/^0+(?=\d)/,""):void 0}function va(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 Dr(e,n,t){let r=Rr(e.radio_id??e.id,"id"),o=Rr(e.name,"name"),i=e.is_in===void 0?void 0:ve(e.is_in),a=Ca(e.radio_user?.role_id,i),c=wa(e),s=Pa(e,a,c),u=ya$1({channelState:c,snapshot:s,nowMs:n}),g={...s,resolvedState:u.channelState},I=Sa(e.update_version),y=ye(e.head_img_url),l=ye(e.desc),h=ye(e.user_id),S=Number(e.total_users),T=Ia(e.type),d=ba(e.radio_setting?.is_unvisit_other),m=e.verify_way===void 0?void 0:Number(e.verify_way),w=m!==void 0&&Number.isSafeInteger(m)?m:void 0,p=ye(e.invite_code),b=_r(e,{source:t});return {id:r,name:o,...y===void 0?{}:{avatar:y},...l===void 0?{}:{description:l},...h===void 0?{}:{ownerId:h},...Number.isFinite(S)&&S>=0?{memberCount:S}:{},...w===void 0?{}:{verifyType:w},...p===void 0?{}:{inviteCode:p},role:a,permissions:u.permissions,channelState:u.channelState,allMembersMuted:g.allMembersMuted,...d===void 0?{}:{memberPrivateChatDisabled:d},accessSnapshot:g,...e.radio_user?.is_undisturb===void 0?{}:{muted:ve(e.radio_user.is_undisturb)},...T===void 0?{}:{channelKind:T},...I===void 0?{}:{updateVersion:I},...b===void 0?{}:{miniProgramRels:b}}}function Ur(e){return {...e,updatedAt:Date.now()}}function Br(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}=Br(e,n);return r}function Ma(e){let n=new Map,t=new Map,r=new Map,o="0",i=false,a=null,c=0,s=null,u=0;function g(){if(i)return Promise.resolve();if(a!==null)return a;let l=c;return a=(async()=>{if(e.storage!==void 0){let[h,S]=await Promise.all([e.storage.getChannelProfiles(),e.storage.getChannelListVersion()]);if(l!==c)return;for(let T of h)n.set(T.id,Br(T,e.now?.()??Date.now()));o=/^\d+$/.test(S)?S:"0";}i=true;})().finally(()=>{a=null;}),a}function I(l){if(l?.forceRefresh!==true&&s!==null)return s;let h=++u,S=(async()=>{await g();let T=(await e.getUserId()).trim();if(T==="")throw new ae("user_id \u4E0D\u80FD\u4E3A\u7A7A");let d=l?.forceRefresh===true?"0":o,m=[];for(let p=1;;p+=1){let b=await Er(e.client,{userId:T,updateVersion:d,page:p,pageSize:Tr,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 ae("list data \u5FC5\u987B\u662F\u6570\u7EC4");let M=e.now?.()??Date.now(),_=b.data.map(C=>Dr(C,M,"list"));if(m.push(..._),_.length<Tr)break}if(h!==u)return [...n.values()].map(p=>Jn(p,e.now?.()??Date.now()));let w=o;for(let p of m)n.set(p.id,Ur(p)),p.updateVersion!==void 0&&(w=va(w,p.updateVersion));return o=w,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=S,S.finally(()=>{s===S&&(s=null);}).catch(()=>{}),S}function y(l,h){let S=l.trim();if(S==="")return Promise.reject(new ae("channel id \u4E0D\u80FD\u4E3A\u7A7A"));let T=h?.forceRefresh===true;if(!T){let w=t.get(S);if(w!==void 0)return w}let d=(r.get(S)??0)+1;T&&r.set(S,d);let m=(async()=>{await g();let w=n.get(S);if(!T&&w!==void 0&&w.miniProgramRels!==void 0)return Jn(w,e.now?.()??Date.now());let p=await kr(e.client,{channelId:S,clientType:e.clientType});if(!p.ok)throw new Fe(p.code,p.message);if(p.data===null||p.data===void 0)throw new ae("info data \u4E0D\u80FD\u4E3A\u7A7A");let b=Dr(p.data,e.now?.()??Date.now(),"info");if(b.id!==S)throw new ae(`info id \u4E0D\u5339\u914D\uFF1A\u8BF7\u6C42 ${S}\uFF0C\u54CD\u5E94 ${b.id}`);if((r.get(S)??d)===d){let M=Ur(b);n.set(S,M),await e.storage?.saveChannelProfiles([M]);}return b})().finally(()=>{t.get(S)===m&&t.delete(S);});return r.set(S,d),t.set(S,m),m}return {listProfiles:I,getProfile:y,clearCache(){c+=1,u+=1;for(let l of new Set([...n.keys(),...t.keys(),...r.keys()]))r.set(l,(r.get(l)??0)+1);n.clear(),t.clear(),s=null,o="0",i=true,a=null;}}}function Or(e,n){return Ge(e,{listType:2,page:n.page,pageSize:n.pageSize,clientType:n.clientType})}function Nr(e,n){return Le(e,n)}function Kr(e,n){return He(e,n)}var Aa=20,Gr=50,_a=20,xa=2,Ea=3,Hr=4,ka=5,Fr=0,Ta=1,Ra=2;function Da(e){switch(e){case Fr:case Ta:case Ra: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},X=class extends Error{constructor(n){super(`CHANNEL join application \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelJoinApplicationMappingError";}};function H(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Ua(e){let n=H(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 Ba(e){let n=H(e.status);if(e.status===void 0||n==="")return true;let t=Number(n),r=Da(t);if(r===void 0)throw new X(`\u672A\u77E5\u7533\u8BF7\u72B6\u6001\uFF1A${n}`);return r===Fr}function Oa(e){let n=Number(H(e.type));if(n!==xa&&n!==Ea&&n!==Hr&&n!==ka)throw new X(`GROUP/CHANNEL \u6DF7\u5408\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${H(e.type)||"<empty>"}`);return n}function Na(e){let n=H(e.id)||H(e.aid),t=H(e.user_id)||H(e.user_info?.user_id),r=e.radio_info??e.channel_info,o=H(e.radio_id)||H(e.channel_id)||H(r?.radio_id)||H(r?.channel_id);if(n==="")throw new X("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");if(t==="")throw new X(`\u7533\u8BF7\u4EBA id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);if(o==="")throw new X(`CHANNEL id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let i=H(e.user_info?.nick_name)||H(e.user_info?.nickname)||H(e.user_info?.name)||t,a=H(e.user_info?.head_img_url)||H(e.user_info?.avatar),c=H(e.user_info?.mid),s=H(r?.name)||H(r?.radio_name)||H(r?.channel_name)||o,u=H(r?.head_img_url)||H(r?.avatar),g=Ua(e.create_time??e.createTime);return {applicationId:n,applicantId:t,applicantName:i,...a===""?{}:{applicantAvatar:a},...c===""?{}:{applicantDisplayId:c},channelId:o,channelName:s,...u===""?{}:{channelAvatar:u},message:H(e.remarks)||H(e.introduce_self),...g===void 0?{}:{createdAt:g}}}function Lr(e){if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>Gr)throw new X(`limit \u5FC5\u987B\u4E3A 1-${Gr}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit||Aa};if(!/^[1-9]\d*$/.test(e.cursor))throw new X("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let n=Number(e.cursor);if(!Number.isSafeInteger(n))throw new X("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {page:n,pageSize:e.limit}}function Ka(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 X("data.list \u5FC5\u987B\u662F\u6570\u7EC4\uFF0C\u6216\u5728 count=0 \u65F6\u4E3A null")}function Ga(e){let n=e.trim();if(n==="")throw new X("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");return n}function La(e){async function n(r){let{pageSize:o}=Lr(r),{page:i}=Lr(r);for(let a=0;a<_a;a+=1){let c=await Or(e.client,{page:i,pageSize:o,clientType:e.clientType});if(!c.ok)throw new $e(c.code,c.message);let s=Ka(c.data),u=s.filter(y=>Oa(y)===Hr&&Ba(y)).map(Na),g=s.length<o,I=i+1;if(u.length>0||g)return {items:u,exhausted:g,...g?{}:{nextCursor:String(I)}};i=I;}return {items:[],exhausted:false,nextCursor:String(i)}}async function t(r,o){let i=await o(e.client,{applicationId:Ga(r),clientType:e.clientType});if(!i.ok)throw new $e(i.code,i.message)}return {listJoinApplications:n,acceptJoinApplication:r=>t(r,Nr),ignoreJoinApplication:r=>t(r,Kr)}}function un(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},un(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"},un(n.clientType,"POST"))}function $r(e,n){return R(e,"/user_radio/admins",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},un(n.clientType,"GET"))}function Jr(e,n){return R(e,"/user_radio/user/infos",{radio_id:n.channelId,user_ids:n.userIds.join(",")},un(n.clientType,"POST"))}var ln=18,Ha=12,Fa=300*1e3,$a=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},V=class extends Error{constructor(n){super(`CHANNEL member \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelMemberMappingError";}};function se(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Ja(e){return Number(e)===1?"member":Number(e)===9?"admin":Number(e)===10?"owner":"unknown"}function ja(e){let n=se(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=se(e.radio_id);if(t==="")throw new V("radio_id \u4E0D\u80FD\u4E3A\u7A7A");if(t!==n)throw new V(`\u6210\u5458\u9891\u9053 ${t} \u4E0E\u8BF7\u6C42\u9891\u9053 ${n} \u4E0D\u4E00\u81F4`);let r=se(e.user_id)||se(e.user_info?.user_id);if(r==="")throw new V("user_id \u4E0D\u80FD\u4E3A\u7A7A");if(e.is_master!==void 0){let u=Number(e.is_master);if(u!==0&&u!==1)throw new V(`is_master \u975E\u6CD5\uFF1A${se(e.is_master)}`)}let o=se(e.nick_name),i=se(e.user_info?.nick_name)||se(e.user_info?.name),a=se(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:Ja(e.role_id),...Number.isInteger(s)?{joinType:s}:{},...c===void 0?{}:{updateVersion:c}}}function Va(e){if(e.channelId.trim()==="")throw new V("channelId \u4E0D\u80FD\u4E3A\u7A7A");if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>ln)throw new V(`limit \u5FC5\u987B\u4E3A 1-${ln}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit};if(!/^[1-9]\d*$/.test(e.cursor))throw new V("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let t=Number(e.cursor);if(!Number.isSafeInteger(t))throw new V("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {page:t,pageSize:e.limit}}function Vr(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 qa(e){let n=e.now??(()=>Date.now()),t=e.isActive??(()=>true),r=e.cacheTtlMs??Fa,o=new Map,i=new Map,a=new Map,c=new Map,s=new Map,u=new Set,g=new Set,I=(C,P)=>`${C}:${P}`;function y(C){let P=s.get(C);return P!==void 0?P:(s.set(C,0),0)}function l(C){let P=C.trim();if(P==="")throw new V("channelId \u4E0D\u80FD\u4E3A\u7A7A");return P}function h(C){for(i.delete(C.channelId),i.set(C.channelId,C);i.size>$a;){let P=i.keys().next().value;if(P===void 0)break;i.delete(P);}}function S(C){let P=i.get(C);if(P!==void 0)return h(P),Promise.resolve(P);if(g.has(C)||e.storage?.getChannelMemberSnapshot===void 0)return Promise.resolve(null);let A=a.get(C);if(A!==void 0)return A;let f=y(C),v=e.storage.getChannelMemberSnapshot(C).then(x=>!t()||x===null||x.channelId!==C||f!==y(C)||g.has(C)?null:(h(x),x)).finally(()=>{a.get(C)===v&&a.delete(C);});return a.set(C,v),v}function T(C,P){let A=C.map(v=>v.userId),f=new Map(C.map(v=>[v.userId,v]));for(let v of P){f.has(v.userId)||A.push(v.userId);let x=f.get(v.userId);(x===void 0||qn(v.updateVersion,x.updateVersion)>=0)&&f.set(v.userId,v);}return A.map(v=>f.get(v))}async function d(C,P){let A=await ca$1(P);return C.filter(f=>A.match(f.displayName)!==null||A.match(f.userId,{pinyin:false})!==null)}async function m(C,P,A={}){if(!t()||P!==y(C.channelId))return;let f=C.channelId,v=g.has(f),x=A.allowPersistentRebuild===true&&v&&e.storage?.deleteChannelMemberSnapshot===void 0&&e.storage?.saveChannelMemberSnapshot!==void 0;(!v||x)&&await e.storage?.saveChannelMemberSnapshot?.(C),t()&&P===y(f)&&(h(C),A.allowPersistentRebuild===true&&(!v||e.storage?.deleteChannelMemberSnapshot===void 0)&&g.delete(f));}async function w(C,P,A,f,v=false,x){let E=await S(C);if(!t()||A!==y(C))return;let D=n(),k=x!==void 0&&E?.nextCursor===x,U=v&&E!==null&&!k,B=f!==void 0&&!U?f.nextCursor:E?.nextCursor,$={channelId:C,items:T(E?.items??[],P),...B===void 0?{}:{nextCursor:B},exhausted:U?E.exhausted:f?.exhausted??E?.exhausted??false,updatedAt:D};await m($,A);}async function p(C,P,A){if(!t()||A!==y(C))return [...P];let f=n(),v=f+r,x=[],E=[],D=new Map;for(let k of P){let U=I(C,k.userId),B=o.get(U)?.member;if(B!==void 0&&qn(k.updateVersion,B.updateVersion)<0){E.push(B);continue}x.push({channelId:C,...k,updatedAt:f}),E.push(k),D.set(U,{member:k,expiresAt:v});}if(x.length>0&&t()&&A===y(C)&&!u.has(C)&&(await e.storage?.saveChannelMembers?.(x),e.storage?.getChannelMembers!==void 0&&t()&&A===y(C))){let k=await e.storage.getChannelMembers(C,x.map(B=>B.userId)),U=new Map(k.map(B=>{let{channelId:$,updatedAt:K,...J}=B;return [J.userId,{member:J,updatedAt:K}]}));for(let B=0;B<E.length;B+=1){let $=E[B];if($===void 0)continue;let K=U.get($.userId);K===void 0||qn(K.member.updateVersion,$.updateVersion)<=0||(E[B]=K.member,D.set(I(C,$.userId),{member:K.member,expiresAt:K.updatedAt+r}));}}if(t()&&A===y(C))for(let[k,U]of D)o.set(k,U);return E}async function b(C,P){let A=l(C.channelId),{page:f,pageSize:v}=Va({...C,channelId:A}),x=y(A),E=await P(A,f,v);if(!E.ok)throw new Je(E.code,E.message);if(E.data!==null&&!Array.isArray(E.data))throw new V("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let D=Vr((E.data??[]).map(B=>jr(B,A))),k=await p(A,D,x),U=(E.data??[]).length<v;return {items:k,exhausted:U,...U?{}:{nextCursor:String(f+1)}}}function M(C){let P=l(C),A=c.get(P);if(A!==void 0)return A;let f=y(P),v=(async()=>{let x,E=false,D=[];for(let U=0;U<Ha&&!E;U+=1){let B=await b({channelId:P,limit:ln,...x===void 0?{}:{cursor:x}},($,K,J)=>jn(e.client,{channelId:$,page:K,pageSize:J,clientType:e.clientType}));if(!t()||f!==y(P))throw new V("\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 m(k,f,{allowPersistentRebuild:true}),{items:k.items,...k.nextCursor===void 0?{}:{nextCursor:k.nextCursor},exhausted:k.exhausted}})().finally(()=>{c.get(P)===v&&c.delete(P);});return c.set(P,v),v}async function _(C){let P=l(C),A=y(P)+1;s.set(P,A),u.add(P),g.add(P),i.delete(P),a.delete(P),c.delete(P);let f=`${P}:`;for(let v of o.keys())v.startsWith(f)&&o.delete(v);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&&u.delete(P),e.storage?.deleteChannelMemberSnapshot!==void 0&&g.delete(P)));}return {async prefetchMembers(C){let P=l(C),A=await S(P),f=g.has(P);A!==null&&!f&&A.updatedAt+r>n()||await M(P);},async getCachedMembers(C){let P=l(C.channelId),A=await S(P);if(A===null)return null;let f=C.query?.trim()??"";return f===""&&g.has(P)?null:f===""?{items:[...A.items],...A.nextCursor===void 0?{}:{nextCursor:A.nextCursor},exhausted:A.exhausted}:{items:await d(A.items,f),exhausted:true}},async refreshMembers(C){let P=l(C.channelId),A=C.query?.trim()??"";if(A==="")return M(P);let f=y(P),[v,x]=await Promise.all([b({channelId:P,query:A,limit:ln},(D,k,U)=>Vn(e.client,{channelId:D,query:A,page:k,pageSize:U,updateVersion:"0",clientType:e.clientType})),S(P)]),E=x===null?[]:await d(x.items,A);return await w(P,v.items,f),{...v,items:T(v.items,E)}},async listMembers(C){let P=l(C.channelId),A={...C,channelId:P},f=y(P),v=await b(A,(x,E,D)=>jn(e.client,{channelId:x,page:E,pageSize:D,clientType:e.clientType}));return await w(P,v.items,f,v,A.cursor!==void 0,A.cursor),v},async searchMembers(C){let P=C.query.trim();if(P==="")return Promise.reject(new V("\u641C\u7D22\u5173\u952E\u8BCD\u4E0D\u80FD\u4E3A\u7A7A"));let A=l(C.channelId),f={...C,channelId:A},v=y(A),x=await b(f,(E,D,k)=>Vn(e.client,{channelId:E,query:P,page:D,pageSize:k,updateVersion:"0",clientType:e.clientType}));return await w(A,x.items,v),x},listAdmins:C=>b(C,(P,A,f)=>$r(e.client,{channelId:P,page:A,pageSize:f,clientType:e.clientType})),async getMembersByIds(C,P,A){let f=C.trim();if(f==="")throw new V("channelId \u4E0D\u80FD\u4E3A\u7A7A");let v=[...new Set(P.map(k=>k.trim()).filter(Boolean))];if(v.length===0)return [];let x=A?.forceRefresh===true,E=new Map,D=[];for(let k of v){let U=o.get(I(f,k));!x&&U!==void 0&&U.expiresAt>n()?E.set(k,U.member):D.push(k);}if(!x&&D.length>0&&!u.has(f)&&e.storage?.getChannelMembers!==void 0){let k=y(f),U=await e.storage.getChannelMembers(f,D);if(t()&&k===y(f))for(let{channelId:B,updatedAt:$,...K}of U)B===f&&(o.set(I(f,K.userId),{member:K,expiresAt:$+r}),$+r>n()&&E.set(K.userId,K));D=D.filter(B=>!E.has(B));}if(!t())return v.flatMap(k=>E.has(k)?[E.get(k)]:[]);if(D.length>0){let k=y(f),U=await Jr(e.client,{channelId:f,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 V("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let B=Vr((U.data??[]).map(de=>jr(de,f))),$=D.filter(de=>!B.some(qo=>qo.userId===de)),K=x&&$.length>0&&k===y(f),J;K?(await _(f),J=B):J=await p(f,B,k);for(let de of J)E.set(de.userId,de);}return v.flatMap(k=>E.has(k)?[E.get(k)]:[])},invalidateChannelMembers:_,clearCache(){let C=new Set(s.keys());for(let P of o.keys())C.add(P.slice(0,P.indexOf(":")));for(let P of i.keys())C.add(P);for(let P of a.keys())C.add(P);for(let P of c.keys())C.add(P);for(let P of u)C.add(P);for(let P of g)C.add(P);for(let P of C)s.set(P,y(P)+1);o.clear(),i.clear(),a.clear(),c.clear(),u.clear(),g.clear();}}}function qr(e){return {responseMode:"strict",method:"POST",...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function zr(e,n){return R(e,"/user_radio/member/list",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},qr(n.clientType))}function Wr(e,n){return R(e,"/user_radio/member/search",{radio_id:n.channelId,search_name:n.query,page:n.page,page_size:n.pageSize},qr(n.clientType))}var Yr=18,pn=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},oe=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 za(e){let n=Me(e.user_id);if(n==="")throw new oe("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 Wa(e){let n=e.channelId.trim();if(n==="")throw new oe("channelId \u4E0D\u80FD\u4E3A\u7A7A");if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>Yr)throw new oe(`limit \u5FC5\u987B\u4E3A 1-${Yr}`);if(e.cursor===void 0)return {channelId:n,page:1,pageSize:e.limit};if(!/^[1-9]\d*$/.test(e.cursor))throw new oe("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let t=Number(e.cursor);if(!Number.isSafeInteger(t))throw new oe("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {channelId:n,page:t,pageSize:e.limit}}function Ya(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 Qa(e){async function n(t,r){let{channelId:o,page:i,pageSize:a}=Wa(t),c=await r({channelId:o,page:i,pageSize:a,clientType:e.clientType});if(!c.ok)throw new pn(c.code,c.message);if(c.data!==null&&!Array.isArray(c.data))throw new oe("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let s=c.data??[],u=Ya(s.map(za)),g=s.length<a;return {items:u,exhausted:g,...g?{}:{nextCursor:String(i+1)}}}return {listMentionMembers:t=>n(t,r=>zr(e.client,r)),searchMentionMembers:t=>{let r=t.query.trim();return r===""?Promise.reject(new oe("\u641C\u7D22\u5173\u952E\u8BCD\u4E0D\u80FD\u4E3A\u7A7A")):n(t,o=>Wr(e.client,{...o,query:r}))}}}function Xa(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 u=await e.getAuth();u!==null&&u.token!==""&&u.userId!==""&&(c.Authorization=`${u.token}:${u.userId}`);let g=await n(`${a}${t}`,{method:"POST",body:r,headers:c,signal:i});if(!g.ok)throw new sa$1({path:t,status:g.status,statusText:g.statusText});let I=await g.arrayBuffer();return new Uint8Array(I)}}}var ie=class extends Error{constructor(n){super(n),this.name="DirectoryMappingError";}};function fn(e,n){if(e===null||typeof e!="object"||Array.isArray(e))throw new ie(`${n} \u5FC5\u987B\u662F\u5BF9\u8C61`);return e}function Q(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function je(e){let n=Q(e);return n===""?void 0:n}function Za(e){let n=fn(e,"\u8054\u7CFB\u4EBA\u76EE\u5F55\u9879"),t=n.user_info===void 0?n:fn(n.user_info,"\u8054\u7CFB\u4EBA user_info"),r=Q(t.user_id??n.friend_user_id??n.user_id);if(r==="")throw new ie("\u8054\u7CFB\u4EBA\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A user_id");let o=Q(n.remark_name)||Q(n.contact_name)||Q(t.nick_name)||Q(t.username)||Q(t.mid)||r,i=Q(t.nick_name)||Q(t.username)||Q(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 es(e){let n=fn(e,"\u7FA4\u7EC4\u76EE\u5F55\u9879"),t=Q(n.group_id);if(t==="")throw new ie("\u7FA4\u7EC4\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A group_id");let r=je(n.head_img_url),o=Q(n.name)||t;return {id:t,kind:"group",displayName:o,cardDisplayName:o,...r===void 0?{}:{avatarUrl:r}}}function ns(e){let n=fn(e,"\u793E\u7FA4\u76EE\u5F55\u9879"),t=Q(n.radio_id??n.id);if(t==="")throw new ie("\u793E\u7FA4\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A radio_id/id");let r=je(n.head_img_url),o=Q(n.name)||t;return {id:t,kind:"channel",displayName:o,cardDisplayName:o,...r===void 0?{}:{avatarUrl:r}}}function ts(e,n){if(!Number.isSafeInteger(e)||e<1)throw new ie("\u76EE\u5F55 page \u5FC5\u987B\u662F\u6B63\u6574\u6570");if(!Number.isSafeInteger(n)||n<1||n>100)throw new ie("\u76EE\u5F55 pageSize \u5FC5\u987B\u662F 1-100 \u7684\u6574\u6570")}function rs(e){return {async list(n){ts(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 ie(`${n.kind} \u76EE\u5F55 data \u5FC5\u987B\u662F\u6570\u7EC4`);let a=n.kind==="individual"?Za:n.kind==="group"?es:ns,c=new Map;for(let u of i){let g=a(u);c.set(g.id,g);}let s=i.length<n.pageSize;return {items:[...c.values()],...s?{}:{nextPage:n.page+1},exhausted:s}}}}var os="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},j=class extends Error{constructor(n){super(n),this.name="ExpressionMappingError";}},he=class extends Error{constructor(t,r){super(`Giphy \u8BF7\u6C42\u5931\u8D25\uFF1AHTTP ${t}${r?` ${r}`:""}`);this.status=t;this.name="GiphyHttpError";}status};function ee(e,n){if(e===null||typeof e!="object"||Array.isArray(e))throw new j(`${n} \u5FC5\u987B\u662F\u5BF9\u8C61`);return e}function Z(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function fe(e,n){let t=Z(e);if(t==="")throw new j(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function xe(e){let n=Z(e);return n===""?void 0:n}function _e(e,n){let t=Number(e);if(!Number.isSafeInteger(t)||t<0)throw new j(`${n} \u5FC5\u987B\u662F\u975E\u8D1F\u6574\u6570`);return t}function is(e,n){let t=Number(e);if(!Number.isSafeInteger(t))throw new j(`${n} \u5FC5\u987B\u662F\u5B89\u5168\u6574\u6570`);return t}function Qr(e,n){let t=Number(e);if(!Number.isFinite(t)||t<=0)throw new j(`${n} \u5FC5\u987B\u662F\u6709\u9650\u6B63\u6570`);return t}function be(e,n){let t=fe(e,n),r;try{r=new URL(t);}catch(o){throw new j(`${n} \u4E0D\u662F\u5408\u6CD5 URL\uFF1A${o instanceof Error?o.message:String(o)}`)}if(r.protocol!=="https:"&&r.protocol!=="http:")throw new j(`${n} \u53EA\u652F\u6301 HTTP(S)`);if(r.username!==""||r.password!=="")throw new j(`${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=ee(e,n).list;if(r==null)return [];if(!Array.isArray(r))throw new j(`${n}.list \u5FC5\u987B\u662F\u6570\u7EC4\u6216 null`);return r}function Ve(e){return e==="sticker"?1:e==="gif"?2:3}function Xr(e){let n=ee(e,"\u8D34\u56FE\u5305"),t=xe(n.onlineTime??n.online_time),r=n.isPlatformIssued??n.is_platform_issued;return {id:fe(n.packId??n.pack_id,"\u8D34\u56FE\u5305 packId"),nameZh:Z(n.nameZh??n.name_zh),nameEn:Z(n.nameEn??n.name_en),nameTh:Z(n.nameTh??n.name_th),nameTw:Z(n.nameTw??n.name_tw),nameVi:Z(n.nameVi??n.name_vi),publisher:Z(n.publisher),trayIconUrl:be(n.trayIcon??n.tray_icon,"\u8D34\u56FE\u5305 trayIcon"),sortWeight:is(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=ee(e,t),i=xe(o.id),a={...i===void 0?{}:{recordId:i},url:be(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:fe(r??o.packId??o.pack_id,`${t} packageId`),resourceId:fe(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 as(e,n){if(n!=="emoji")return Wn(e,n,"\u6700\u8FD1\u4F7F\u7528\u9879");let t=ee(e,"\u6700\u8FD1 emoji"),r=xe(t.id);return {kind:"emoji",...r===void 0?{}:{recordId:r},token:fe(t.imgUrl??t.img_url,"\u6700\u8FD1 emoji token"),resourceId:fe(t.fileName??t.file_name,"\u6700\u8FD1 emoji resourceId")}}function Zr(e,n,t){let r=Ve(n);return zn(e,t).filter(o=>{let i=ee(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 j(`${t} item.favType \u5FC5\u987B\u662F 1\u30012 \u6216 3`);return c===r})}function no(e){return {fav_type:Ve(e.kind),pack_id:e.kind==="sticker"?e.packageId:"",img_url:be(e.url,"\u8868\u60C5\u5199\u5165 imgUrl"),file_name:e.resourceId??"",width:e.width,height:e.height}}function ss(e){return e.kind!=="emoji"?no(e):{fav_type:Ve(e.kind),pack_id:"",img_url:e.token,file_name:e.resourceId,width:0,height:0}}function eo(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 j("\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 cs(e){let n=ee(e,"Giphy item"),t=ee(n.images,"Giphy item.images"),r=ee(t.original,"Giphy item.images.original"),o=t.fixed_width,i=o==null?void 0:ee(o,"Giphy item.images.fixed_width"),a=be(r.url,"Giphy original.url"),c=i===void 0?void 0:xe(i.url),s=i===void 0?void 0:xe(i.webp),u=s===void 0?c===void 0?a:be(c,"Giphy fixed_width.url"):be(s,"Giphy fixed_width.webp"),g=s!==void 0&&c!==void 0&&c!==s?be(c,"Giphy fixed_width.url"):void 0;return {kind:"gif",resourceId:fe(n.id,"Giphy item.id"),title:Z(n.title)||"GIF",url:a,previewUrl:u,...g===void 0?{}:{fallbackPreviewUrl:g},width:Qr(r.width,"Giphy original.width"),height:Qr(r.height,"Giphy original.height")}}function ds(e,n){let t=ee(e,"Giphy response");if(!Array.isArray(t.data))throw new j("Giphy response.data \u5FC5\u987B\u662F\u6570\u7EC4");let r=ee(t.pagination,"Giphy response.pagination"),o=_e(r.offset??n,"Giphy pagination.offset");if(o!==n)throw new j("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 u of t.data){let g=cs(u);c.set(g.resourceId,g);}let s=o+i;return {items:[...c.values()],offset:o,totalCount:a,...i>0&&s<a?{nextOffset:s}:{}}}function us(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 q(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(`${os}/${r}?${c.toString()}`);}catch{throw new he(0,"network failure")}let u;try{u=await s.json();}catch(I){throw s.ok?new j(`Giphy response \u4E0D\u662F JSON\uFF1A${I instanceof Error?I.message:String(I)}`):new he(s.status,"")}if(!s.ok){let I=u!==null&&typeof u=="object"&&!Array.isArray(u)?u.meta:void 0,y=I!==null&&typeof I=="object"&&!Array.isArray(I)?Z(I.msg):"";throw new he(s.status,y)}let g=u!==null&&typeof u=="object"&&!Array.isArray(u)?u.meta:void 0;if(g!==null&&typeof g=="object"&&!Array.isArray(g)){let I=g,y=Number(I.status);if(Number.isFinite(y)&&y!==200)throw new he(y,Z(I.msg))}return ds(u,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(Xr)};if(o==null)return {version:"",items:[]};let i=ee(o,"\u8D34\u56FE\u5305\u5217\u8868 data"),a=i.list??i.packs;if(a==null)return {version:Z(i.version),items:[]};if(!Array.isArray(a))throw new j("\u8D34\u56FE\u5305\u5217\u8868 data.list \u5FC5\u987B\u662F\u6570\u7EC4\u6216 null");return {version:Z(i.version),items:a.map(Xr)}},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 Zr(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",no(r),"\u6DFB\u52A0\u8868\u60C5\u6536\u85CF");},async deleteFavorites(r){await n("/user/sticker/my_fav/del",{ids:eo(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 Zr(o,r,"\u6700\u8FD1\u4F7F\u7528\u5217\u8868 data").map(i=>as(i,r))},async reportRecent(r){await n("/user/sticker/recent/report",ss(r),"\u4E0A\u62A5\u6700\u8FD1\u4F7F\u7528");},async deleteRecent(r){await n("/user/sticker/recent/del",{ids:eo(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=ee(i,"\u5FEB\u6377\u56DE\u5E94 Top \u9879");return fe(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 to(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 ls(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 ps(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 ro=200,fs=50;async function oo(e,n){let t=String(n.updateVersion??0).trim()||"0",r=[],o;for(let i=1;i<=fs;i++){let a={group_id:n.groupId,update_version:t,page:String(i),page_size:String(ro)},{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=ls(c);if(s.length===0)break;for(let g of s){let I=String(g.user_id??g.userId??"").trim();if(I==="")continue;let y={userId:I,nickName:String(g.nick_name??g.nickName??"").trim()},l=ps(g.join_type??g.joinType);l!==void 0&&(y.joinType=l),r.push(y);}let u=c.update_version;if(typeof u=="number"&&(o=u),s.length<ro)break}return {members:r,updateVersion:o}}async function io(e,n){return (await R(e,"/user/info/friend",{friend_user_id:n.userId})).data}var ms=1440*60*1e3;function Yn(e,n,t=ms){let r=new Map,o=new Map,i=new Map;function a(g){let I=(i.get(g)??0)+1;i.set(g,I);let y=e(g).then(l=>(l!==null&&i.get(g)===I&&(r.set(g,l),n?.save(g,l).catch(()=>{})),l)).finally(()=>{o.get(g)===y&&o.delete(g);});return o.set(g,y),y}return {get:async(g,I)=>{if(I?.forceRefresh===true)return a(g);let y=r.get(g);if(y!==void 0)return y;let l=o.get(g);if(l!==void 0)return l;if(n!==void 0)try{let h=i.get(g)??0,S=await n.get(g);if(S!==null)return (i.get(g)??0)===h&&(r.set(g,S.value),Date.now()-S.updatedAt>t&&a(g)),S.value}catch{}return a(g)},peek:async g=>{let I=r.get(g);if(I!==void 0)return {value:I,stale:false};if(n===void 0)return null;try{let y=i.get(g)??0,l=await n.get(g);if(l!==null)return (i.get(g)??0)===y&&r.set(g,l.value),{value:l.value,stale:Date.now()-l.updatedAt>t}}catch{}return null},clear:()=>{for(let g of new Set([...r.keys(),...o.keys(),...i.keys()]))i.set(g,(i.get(g)??0)+1);r.clear(),o.clear();}}}function gs(e){async function n(y){let l=await io(e.client,{userId:y})??await Ke(e.client,{userId:y});return l===null?null:_(l)}async function t(y){let l=await to(e.client,{groupId:y,clientType:e.clientType});return l===null?null:$(l)}async function r(y){let{members:l}=await oo(e.client,{groupId:y,clientType:e.clientType});return l.length===0?null:l}function o(y){let l={};for(let h of y)h.nickName!==""&&(l[h.userId]=h.nickName);return l}let{storage:i}=e,a=i===void 0?void 0:{get:async y=>{let l=await i.getUserProfile(y);return l===null?null:{value:l,updatedAt:l.updatedAt}},save:async(y,l)=>{await i.saveUserProfile({...l,updatedAt:Date.now()});}},c=i===void 0?void 0:{get:async y=>{let l=await i.getGroupMembers(y);return l===null?null:{value:l.members.map(h=>({userId:h.userId,nickName:h.groupNick,...h.joinType===void 0?{}:{joinType:h.joinType}})),updatedAt:l.updatedAt}},save:async(y,l)=>{let h=l.map(S=>({userId:S.userId,groupNick:S.nickName,...S.joinType===void 0?{}:{joinType:S.joinType}}));await i.saveGroupMembers({groupId:y,members:h,updatedAt:Date.now()});}},s=i===void 0?void 0:{get:async y=>{let l=await i.getGroupProfile(y);return l===null?null:{value:l,updatedAt:l.updatedAt}},save:async(y,l)=>{await i.saveGroupProfile({...l,updatedAt:Date.now()});}},u=Yn(n,a),g=Yn(t,s),I=Yn(r,c);return {getUserProfile:(y,l)=>u.get(y,l),getGroupProfile:(y,l)=>g.get(y,l),getGroupMemberNames:async(y,l)=>{let h=await I.get(y,l);return h===null?null:o(h)},listGroupMembers:(y,l)=>I.get(y,l),peekUserProfile:y=>u.peek(y),peekGroupMemberNames:async y=>{let l=await I.peek(y);return l===null?null:{value:o(l.value),stale:l.stale}},peekGroupMembers:y=>I.peek(y),peekGroupProfile:y=>g.peek(y),clearCache:()=>{u.clear(),g.clear(),I.clear();}}}function ys(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}async function ne(e,n,t,r){let o=await R(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new q(r,o.code,o.message)}function hs(e){return ne(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 bs(e){return ne(e.client,"/user_radio/user/setting",{radio_id:e.channelId,nick_name:e.nickname},"\u4FEE\u6539\u793E\u7FA4\u6635\u79F0")}function Cs(e){return ne(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 ws(e){let n=e.userIds.map(t=>({user_id:ys(t)}));return ne(e.client,"/user_radio/invited_users",{radio_id:e.channelId,members:JSON.stringify(n)},"\u9080\u8BF7\u793E\u7FA4\u6210\u5458")}function Ps(e){return ne(e.client,"/user_radio/kick_user",{radio_id:e.channelId,user_id:e.userId},"\u79FB\u9664\u793E\u7FA4\u6210\u5458")}function Is(e){return ne(e.client,"/user_radio/add_admin",{radio_id:e.channelId,user_id:e.userId},"\u8BBE\u4E3A\u793E\u7FA4\u7BA1\u7406\u5458")}function Ss(e){return ne(e.client,"/user_radio/del_admin",{radio_id:e.channelId,user_id:e.userId},"\u53D6\u6D88\u793E\u7FA4\u7BA1\u7406\u5458")}function vs(e){return ne(e.client,"/user_radio/transfer",{radio_id:e.channelId,user_id:e.userId},"\u8F6C\u8BA9\u793E\u7FA4")}function Ms(e){return ne(e.client,"/user_radio/user/quit",{radio_id:e.channelId,...e.newOwnerId===void 0?{}:{user_id:e.newOwnerId}},"\u9000\u51FA\u793E\u7FA4")}function As(e){return ne(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 _s(e){return ne(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 xs(e){return ne(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 Es(e){return ne(e.client,"/user_radio/closed",{radio_id:e.channelId},"\u89E3\u6563\u793E\u7FA4")}async function ks(e){Ts(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 Ts(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 Rs(e){let n=Ds(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 Ds(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 Us(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 mn=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;}},gn=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},Bs=36875,Os=40113;function Zn(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function ce(e){let n=Zn(e);return n===""?void 0:n}function ao(e){let n=Array.isArray(e)?e[0]:e;return n!==null&&typeof n=="object"?n:void 0}function Ns(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 Ks(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 mn(r.code,r.message);let o=ao(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,...ce(o.username)===void 0?{}:{username:ce(o.username)},...ce(o.mid)===void 0?{}:{miCallId:ce(o.mid)},...ce(o.head_img_url??o.avatar)===void 0?{}:{avatarUrl:ce(o.head_img_url??o.avatar)},...ce(o.per_signature??o.signature)===void 0?{}:{signature:ce(o.per_signature??o.signature)},...s===void 0?{}:{friendStatus:s}}}async function Gs(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 gn(Ns(i.code),i.code,i.message);let a=ao(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=ce(a?.message??a?.msg??i.message);return {status:c,...s===void 0?{}:{message:s}}}async function Ls(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!==Os)throw new Error(`\u5220\u9664\u597D\u53CB\u5931\u8D25\uFF08${r.code}\uFF09\uFF1A${r.message||"unknown error"}`)}async function Hs(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 q("\u4E3E\u62A5\u8054\u7CFB\u4EBA",i.code,i.message)}function Fs(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}function $s(e){let n=e.memberIds.map(t=>({user_id:Fs(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 Js(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 Vs(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 so(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function qs(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(!so(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(!so(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 co(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function zs(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(!co(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(!co(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 Ws(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 Ys(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 Qs(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||!Ys(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 Xs(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 q(r,o.code,o.message)}function Zs(e){let n=e.userIds.map(t=>({user_id:Xs(t)}));return qe(e.client,"/user_group/invited",{group_id:e.groupId,members:JSON.stringify(n)},"\u9080\u8BF7\u7FA4\u6210\u5458")}function ec(e){return qe(e.client,"/user_group/kick",{group_id:e.groupId,out_user_id:e.userId},"\u79FB\u9664\u7FA4\u6210\u5458")}function nc(e){return qe(e.client,"/user_group/transfer",{group_id:e.groupId,new_user_id:e.userId},"\u8F6C\u8BA9\u7FA4\u7EC4")}function tc(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 rc(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 oc=new Set([200,32768]);async function ic(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(!oc.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 ac(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 uo(e,n,t,r){let o=await R(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new q(r,o.code,o.message);if(o.data===null||o.data===void 0)throw new ze(r);return ac(o.data.is_waitting,r)}async function lo(e,n,t,r){let o=await R(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new q(r,o.code,o.message);return Object.freeze({outcome:"joined"})}function sc(e){return uo(e.client,"/user_group/apply",{group_id:e.groupId,qrcode_type:2,remarks:e.remarks??""},"\u7533\u8BF7\u52A0\u5165\u666E\u901A\u7FA4")}function cc(e){return lo(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 dc(e){return uo(e.client,"/user_radio/add/apply",{radio_id:e.channelId,remarks:e.remarks??""},"\u7533\u8BF7\u52A0\u5165\u793E\u7FA4")}function uc(e){return lo(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 lc(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 pc(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 fc(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 mc(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 gc(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(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 yc=20,po=10,et=30,hc=100;async function bc(e){let n=[];for(let t of mo(e.channels,yc)){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(o,i);await fo(e,a.sessions.filter(c=>c.channelState==="active"||c.raw?.status===0).map(c=>c.channelId)),n.push(...G(o,{...i,onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps).sessions);}return n}async function Cc(e){let n=Ic(e.channelBatchSize),t=e.messageCount??et,r=Sc(e.maxPagesPerBatch),o=new Map;for(let i of mo(e.pulls,n)){let a=i.map(u=>({...u})),c=new Map(a.map(u=>[u.channelId,new Set([u.baseIndex])])),s=0;for(;a.length>0;){if(s>=r){let l=a.map(({channelId:h,baseIndex:S})=>`${h}@${S}`).join(",");throw new Error(`channel offline \u5206\u9875\u8D85\u8FC7 maxPagesPerBatch=${r}\uFF08active=${l}\uFF09`)}s+=1;let u=E({userId:e.userId,clientType:e.clientType,pulls:a.map(l=>({channelId:l.channelId,baseIndex:l.baseIndex,direction:0,count:t,contain:0}))}),g=await e.http.postProtobuf({path:"/channel/v1/offlineMessages",body:u});await fo(e,a.map(l=>l.channelId));let I=H$1(g,{selfId:e.userId,keepRaw:true,expectedChannelIds:a.map(l=>l.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 l of I.messages)o.has(l.id)||o.set(l.id,l);let y=[];for(let l of a){let h=I.nextBaseIndexes[l.channelId],S=I.messageCounts[l.channelId]??0;if(h===void 0)continue;let T=c.get(l.channelId);if(T.has(h))throw new Error(`channel offline cursor \u5FAA\u73AF\uFF08channelId=${l.channelId}, baseIndex=${h}\uFF09`);S<t||(T.add(h),y.push({channelId:l.channelId,baseIndex:h}));}a=y;}}return [...o.values()].sort(m)}async function wc(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 Pc(e){let n=e.count??et;e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId);let t=F$1({userId:e.userId,clientType:e.clientType,channelId:e.channelId,baseIndex:e.baseIndex,count:n,contain:e.contain??0}),r=await e.http.postProtobuf({path:"/channel/v1/offlineMessages",body:t});return 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 fo(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 Ic(e){if(e===void 0)return po;if(!Number.isInteger(e)||e<=0)throw new Error("channel offline: channelBatchSize \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");return Math.min(e,po)}function Sc(e){if(e===void 0)return hc;if(!Number.isInteger(e)||e<=0)throw new Error("channel offline: maxPagesPerBatch \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");return e}function mo(e,n){let t=[];for(let r=0;r<e.length;r+=n)t.push(e.slice(r,r+n));return t}async function go(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 yo(e){return go("/offline/v1/chat",e)}function ho(e){return go("/offline/v1/owner_chat",e)}function vc(e){return yo(e).then(n=>n.messages)}function Mc(e){return ho(e).then(n=>n.messages)}function bo(e){return [...new Set(e.filter(n=>n!==void 0&&n!==""))]}async function Ac(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=bo(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 _c(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=bo([...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 xc(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 Ec(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 kc={direct:"/friend/undisturb/set",group:"/user_group/user/edit",channel:"/user_radio/user/setting"},Tc={direct:"friend_user_id",group:"group_id",channel:"radio_id"};async function Rc(e){let n=kc[e.conversationType],t=Tc[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 Dc(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 Uc(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 Bc(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 Oc(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 Nc(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 Kc="1970-01-01 08:00:00",Gc="2000",Lc="",yn=class extends Error{constructor(){super("\u4F1A\u8BDD\u6536\u85CF Core API \u672A\u914D\u7F6E"),this.name="SessionFavoriteProviderUnavailableError";}},me=class extends Error{constructor(n){super(n),this.name="SessionFavoriteMappingError";}};function W(e){return typeof e=="string"?e:e==null?"":String(e)}function We(e,n){let t=W(e).trim();if(t==="")throw new me(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function Hc(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 Fc(e){return e==="text"?1:e==="image"?2:e==="video"?3:e==="voice"?4:e==="location"?5:e==="mediaAlbum"?28:11}function $c(e){if(e==="direct")return 0;if(e==="group")return 1;if(e==="channel")return 2;throw new me(`favorite conversation type ${e}`)}function hn(e,n){return n==="text"||n==="location"?W(e.content).trim():n==="file"?W(e.fileName||e.file_name||e.name).trim():n==="mediaAlbum"?W(e.caption).trim():""}function Jc(e,n){let t=W(e.group_id).trim(),r=W(e.radio_id).trim(),o=Number(W(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=W(e.from_id).trim(),a=W(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=W(t?.nick_name||t?.nickname||t?.name).trim();return r===""?n:r}function Vc(e,n){let t=W(e.uu_id).trim(),r=Hc(e.content_type),o=pr(W(e.msg_body),n);if(t===""||r===null||o===null)return null;let i=W(e.from_id).trim();return Object.freeze({collectId:t,msgId:W(e.msg_id).trim(),kind:r,senderId:i,senderName:jc(e,i),avatarUrl:W(e.from_user?.avatar).trim(),createdAt:W(e.create_time||e.update_time||e.msg_time).trim(),text:hn(o,r),imageUrl:qb(r,o),fileName:r==="file"?hn(o,"file"):"",body:Object.freeze({...o}),conversation:Jc(e,n)})}function qc(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 me("favorite list data \u5FC5\u987B\u662F\u6570\u7EC4\u6216 { list }")}function zc(){if(typeof crypto>"u"||typeof crypto.randomUUID!="function")throw new me("collect uuid \u4E0D\u53EF\u7528");return crypto.randomUUID()}function Wc(e){return Object.freeze({...e,body:Object.freeze({...e.body}),conversation:e.conversation===null?null:Object.freeze({...e.conversation})})}function Yc(e){async function n(t,r,o){if(e.coreClient===void 0)throw new yn;let i=await R(e.coreClient,t,r,{method:"POST",responseMode:"strict",prefix:Lc});if(!i.ok)throw new q(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:Kc,page_size:Gc},"\u4F1A\u8BDD\u6536\u85CF\u5217\u8868");return Object.freeze(qc(r).flatMap(o=>{let i=Vc(o,t);return i===null?[]:[i]}))},async add(t){let r=We(e.getUserId(),"favorite userId"),o=(e.createCollectId??zc)(),i={msg_id:We(t.messageId,"favorite msgId"),content_type:Fc(t.kind),msg_type:$c(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:lr(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"),Wc({collectId:o,msgId:t.messageId.trim(),kind:t.kind,senderId:t.senderId.trim(),senderName:t.senderId.trim(),avatarUrl:"",createdAt:String(t.createdAt),text:hn(t.plainBody,t.kind),imageUrl:qb(t.kind,t.plainBody),fileName:t.kind==="file"?hn(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 me("favorite ids \u4E0D\u80FD\u4E3A\u7A7A");await n("/api/v1/user/favorite/del",{ids:r.join("|")},"\u5220\u9664\u4F1A\u8BDD\u6536\u85CF");}}}var Co="image/jpeg";function nt(e,n){return e.type!==""||n===void 0||n===""?e:new Blob([e],{type:n})}function Qc(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:Co}},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:Co}}}}function Xc(e){return e>=192&&e<=207&&e!==196&&e!==200&&e!==204}function Zc(e){return e!==void 0&&e>=5&&e<=8}function ed(e,n,t){return Zc(t)?{width:n,height:e}:{width:e,height:n}}function nd(e,n,t){if(n+6>t)return;for(let[s,u]of [69,120,105,102,0,0].entries())if(e.getUint8(n+s)!==u)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 u=a+2+s*12;if(u+12>t)return;if(e.getUint16(u,i)===274)return e.getUint16(u+8,i)}}function td(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(Xc(o)){if(a+5>n)return;let s=e.getUint16(a+1,false),u=e.getUint16(a+3,false);return u<=0||s<=0?void 0:ed(u,s,t)}o===225&&t===void 0&&(t=nd(e,a,c)),r=c;}}function rd(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 od(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 id(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 bn(e,n,t){return n<t.length?false:t.every((r,o)=>e.getUint8(o)===r)}async function wo(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(bn(t,r,[255,216,255]))return td(t,r);if(bn(t,r,[137,80,78,71,13,10,26,10]))return rd(t,r);if(bn(t,r,[71,73,70,56]))return od(t,r);if(bn(t,r,[82,73,70,70])&&r>=12&&t.getUint32(8,false)===1464156752)return id(t,r)}var Ao=320,ad=12*1024,_o=20*1024,sd=.9,cd=.72,dd=320,ud=10*1024,ld=16*1024,pd=.84,fd=.68,xo=15e3,md=1;function gd(){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 Po(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 Io=16777216,yd=4096;function hd(e,n){let t=Math.min(1,yd/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>Io){let a=Math.sqrt(Io/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 hd(Math.max(1,Math.round(e*r)),Math.max(1,Math.round(n*r)))}async function So(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 vo(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?dd:Ao),s=r.targetBytes??(i?ud:ad),u=r.maxBytes??(i?ld:_o),g=r.quality??(i?pd:sd),I=r.minQuality??(i?fd:cd);if(tt(c,`${a}\u6700\u5927\u8FB9\u957F`),tt(s,`${a}\u76EE\u6807\u5B57\u8282\u6570`),tt(u,`${a}\u6700\u5927\u5B57\u8282\u6570`),vo(g,`${a}\u521D\u59CB\u8D28\u91CF`),vo(I,`${a}\u6700\u4F4E\u8D28\u91CF`),s>u)throw new RangeError(`${a}\u76EE\u6807\u5B57\u8282\u6570\u4E0D\u80FD\u8D85\u8FC7\u6700\u5927\u5B57\u8282\u6570`);if(I>g)throw new RangeError(`${a}\u6700\u4F4E\u8D28\u91CF\u4E0D\u80FD\u9AD8\u4E8E\u521D\u59CB\u8D28\u91CF`);let y=rt(n,t,c),l=Math.min(200,Math.max(y.width,y.height)),h,S=[...new Set([g,Math.max(I,g-.12),I])];for(let d of S){let m=await So(e,y.width,y.height,d,o);if((h===void 0||m.byteLength<h.byteLength)&&(h=m),m.byteLength<=s)return m}let T=Math.max(y.width,y.height);if(T>l&&h!==void 0){let d=Math.sqrt(s/h.byteLength),m=Math.max(l,Math.floor(T*Math.min(.9,Math.max(.5,d))));y=rt(n,t,m);for(let w of [g,I]){let p=await So(e,y.width,y.height,w,o);if(p.byteLength<h.byteLength&&(h=p),p.byteLength<=s)return p}}if(h!==void 0&&h.byteLength<=u)return h;throw new Error(`${a}\u751F\u6210\u5931\u8D25\uFF1A\u7F16\u7801\u7ED3\u679C\u8D85\u8FC7 ${u} \u5B57\u8282\u786C\u4E0A\u9650`)}function Mo(e,n,t){return new Promise((r,o)=>{let i,a,c,s,u=()=>{i!==void 0&&clearTimeout(i),e.removeEventListener(n,a),e.removeEventListener("error",c),t?.removeEventListener("abort",s);};a=()=>{u(),r();},c=()=>{u(),o(new Error(`\u89C6\u9891\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A${n} \u524D\u89E3\u7801\u9519\u8BEF`));},s=()=>{u(),o(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));},i=setTimeout(()=>{u(),o(new Error(`\u89C6\u9891\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A${n} \u8D85\u65F6`));},xo),e.addEventListener(n,a,{once:true}),e.addEventListener("error",c,{once:true}),t?.addEventListener("abort",s,{once:true});})}async function bd(e,n){Ye(n);let t=e.maxSize??Ao,r=e.maxBytes??_o,o=await wo(e.file);Ye(n);function i(g,I){return e.file.type==="image/jpeg"&&e.file.size<=r&&Math.max(g,I)<=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(g){if(n?.aborted)throw g}if(c!==void 0)try{Ye(n);let g=o??{width:c.width,height:c.height};return e.includePoster===!1?g:o===void 0&&i(c.width,c.height)?{...g,posterData:await e.file.arrayBuffer()}:{...g,posterData:await ot(c,c.width,c.height,e,n)}}finally{c.close();}let s=URL.createObjectURL(e.file),u=new Image;try{await new Promise((I,y)=>{let l,h,S=()=>{l!==void 0&&clearTimeout(l),u.onload=null,u.onerror=null,n?.removeEventListener("abort",h);};h=()=>{S(),y(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));},u.onload=()=>{S(),I();},u.onerror=()=>{S(),y(new Error("\u56FE\u7247\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1AImage \u89E3\u7801\u9519\u8BEF"));},l=setTimeout(()=>{S(),y(new Error("\u56FE\u7247\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1AImage \u89E3\u7801\u8D85\u65F6"));},xo),n?.addEventListener("abort",h,{once:!0}),u.src=s;});let g=o??{width:u.naturalWidth,height:u.naturalHeight};return e.includePoster===!1?g:i(u.naturalWidth,u.naturalHeight)?{...g,posterData:await e.file.arrayBuffer()}:{...g,posterData:await ot(u,u.naturalWidth,u.naturalHeight,e,n)}}finally{u.removeAttribute("src"),URL.revokeObjectURL(s);}}async function Cd(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 Mo(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 Mo(r,"seeked",n));let s=a===void 0?void 0:a,u;try{u=await ot(r,o,i,e,n);}catch(g){if(n?.aborted||g instanceof RangeError)throw g}return {width:o,height:i,...s===void 0?{}:{duration:s},...u===void 0?{}:{posterData:u}}}finally{r.pause(),r.removeAttribute("src"),r.load(),URL.revokeObjectURL(t);}}function wd(e={}){let n=e.maxConcurrency??gd();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=Po(n),r=Po(md),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 Cd(i,a):await bd(i,a)}finally{s();}},dispose(){o||(o=true,t.dispose(),r.dispose());}}}function Pd(){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 u=n.indexOf(s);u>=0&&n.splice(u,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 Id(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 F("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 F("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 Eo(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=Pd();async function o(a,c){if(!a.ok)throw new F("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()):vd(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 u=c.signal,g=[],I=[],y,l="",h=1,S,T=false,d=p=>{T||(T=true,S=p,c.abort());};function m(p,b){I[p]=b;let M=I.reduce((C,P)=>C+P,0),_=y.total;a.onProgress?.({percent:Math.min(99,Math.round(M/_*100)),bytesTransferred:M,bytesTotal:_});}async function w(p){let b=p*t,M=y===void 0?b+t-1:Math.min(b+t-1,y.total-1);return r(u,async()=>{let _=await fetch(a.url,{signal:u,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"}})),g[0]=await o(_,{...a,preferBlob:true}),"single";let C=Id(_,b,M,y);y===void 0&&(y=C,l=_.headers.get("content-type")??"",n?.record("debug","sdk","media","download-range-started",()=>({data:{bytesTotal:C.total,partSizeBytes:t,concurrency:3}})));let P=await o(_,{...a,preferBlob:true,onProgress:A=>m(p,A.bytesTransferred)});if(P.size!==C.end-b+1)throw new F("download-range-invalid","\u5206\u6BB5\u4E0B\u8F7D\u5B57\u8282\u6570\u4E0E Content-Range \u4E0D\u4E00\u81F4");return g[p]=P,m(p,P.size),"range"})}try{let p=await w(0);if(p==="range"){let b=Math.ceil(y.total/t),M=Array.from({length:Math.min(3,b-1)},async()=>{try{for(;!u.aborted&&h<b;)await w(h++);}catch(_){d(_);}});if(await Promise.allSettled(M),T)throw S}if(u.aborted)throw new DOMException("\u5A92\u4F53\u4E0B\u8F7D\u5DF2\u53D6\u6D88","AbortError");return p==="single"?g[0]:new Blob(g,{type:l})}catch(p){throw c.abort(),n?.record("warn","sdk","media","download-range-failed",()=>({data:{code:p instanceof F?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 Sd(c);let s=await fetch(c.url,c.signal===void 0?{}:{signal:c.signal});return o(s,c)})}}function Sd(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=u=>{i||(i=true,c(),u());};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=u=>{let g=e.expectedBytes!==void 0&&Number.isFinite(e.expectedBytes)&&e.expectedBytes>0?Math.floor(e.expectedBytes):0,I=u.lengthComputable&&u.total>0?u.total:g,y=I>0?Math.min(99,Math.round(u.loaded/I*100)):0;e.onProgress?.({percent:y,bytesTransferred:u.loaded,bytesTotal:I});},o.onload=()=>{if(o.status<200||o.status>=300){s(()=>r(new Error(`media download \u5931\u8D25\uFF1AHTTP ${o.status}`)));return}let u=o.response;if(n){if(!(typeof Blob<"u"&&u instanceof Blob)){s(()=>r(new Error("media download \u5931\u8D25\uFF1AXHR \u672A\u8FD4\u56DE Blob")));return}s(()=>t(u));return}if(!(u instanceof ArrayBuffer)){s(()=>r(new Error("media download \u5931\u8D25\uFF1AXHR \u672A\u8FD4\u56DE ArrayBuffer")));return}s(()=>t(new Uint8Array(u)));},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 vd(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(g,I){c+=g.byteLength;let y=a>0?Math.min(99,Math.round(c/a*100)):0;n({percent:y,bytesTransferred:c,bytesTotal:a}),I.enqueue(g);}})),u=new Response(s,{headers:e.headers});return r?await u.blob():new Uint8Array(await u.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 Md(e,n,t){return e instanceof Uint8Array?e.subarray(n,t):e.slice(n,t)}async function ko(e,n,t){return e.transformPart===void 0?n:await e.transformPart(n instanceof Blob?n:new Blob([n]),t)}function To(e,n){let t=new Map,r=n,o=n;function i(){if(e.onProgress===void 0)return;let a=r;for(let u of t.values())a+=u;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 Ro(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 Do(e,n){let t=To(n,0),r=Ro(e.handler,t);try{let o=await ko(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 m of a)c.set(m.partNumber,m);let s=a===void 0?"":e.resume.uploadId;if(s===""){let m=await n.client.send(new n.commands.CreateMultipartUploadCommand({Bucket:n.bucket,Key:n.key,...n.mimeType!==void 0&&n.mimeType!==""?{ContentType:n.mimeType}:{}}));if(m.UploadId===void 0||m.UploadId==="")throw new Error("media upload: CreateMultipartUpload \u672A\u8FD4\u56DE UploadId");s=m.UploadId,c.clear();}let u=m=>Math.min(r,t.sourceBytes-(m-1)*r),g=0;for(let m of c.keys())g+=u(m);let I=To(t,g),y=Ro(n.handler,I),l=()=>({bucket:n.bucket,key:n.key,uploadId:s,partSize:r,sourceBytes:t.sourceBytes,parts:[...c.values()].sort((m,w)=>m.partNumber-w.partNumber)});e.onResumable?.(l()),I.report();let h=new AbortController,S=()=>h.abort();t.signal?.addEventListener("abort",S,{once:true}),t.signal?.aborted&&S();let T=1;async function d(){for(;;){if(h.signal.aborted)return;let m=T;if(T+=1,m>i)return;if(c.has(m))continue;let w=(m-1)*r,p=Math.min(w+r,t.sourceBytes),b=await ko(t,Md(t.data,w,p),m),M=await n.client.send(new n.commands.UploadPartCommand({Bucket:n.bucket,Key:n.key,UploadId:s,PartNumber:m,Body:b}),{abortSignal:h.signal});if(M.ETag===void 0||M.ETag==="")throw new Error(`media upload: Part ${m} ${it}`);c.set(m,{partNumber:m,etag:M.ETag}),I.completePart(m,p-w),e.onResumable?.(l());}}try{let m;if(await Promise.allSettled(Array.from({length:Math.max(1,o)},async()=>{try{await d();}catch(w){m??={cause:w},S();}})),m!==void 0)throw m.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((w,p)=>w.partNumber-p.partNumber).map(w=>({PartNumber:w.partNumber,ETag:w.etag}))}}),t.signal===void 0?{}:{abortSignal:t.signal}),e.onCompleted?.(),t.signal?.aborted)throw new DOMException("media upload canceled","AbortError")}finally{t.signal?.removeEventListener("abort",S),y();}}async function Qe(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 Ad=16*1024*1024,_d=3,xd=6,Uo=8;function Ed(e){return Math.ceil(e/Uo)*Uo}function kd(e){if(e instanceof Uint8Array)return e.byteLength;if(typeof Blob<"u"&&e instanceof Blob)return e.size}var Bo="\u5206\u7247\u4E0A\u4F20\u8981\u6C42\u8BE5 bucket \u7684 CORS \u653E\u884C POST\uFF08Create/CompleteMultipartUpload\uFF09\u3001DELETE\uFF08AbortMultipartUpload\uFF09\u5E76 ExposeHeaders: ETag";function Td(e){return e instanceof Error&&e.message.includes(it)}function Rd(e,n,t){return t!==void 0?new F("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${Bo}`,{cause:t}):Td(e)?new F("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 F("multipart-upload-failed",`media upload: \u5206\u7247\u4E0A\u4F20\u5931\u8D25\uFF1B${Bo}`,{cause:e}):e}var Dd=new Set(["upload-source-invalid","multipart-etag-missing","multipart-abort-failed"]);function dt(e,n){let t=e?.transport;if(!(t?.session===void 0||n!==void 0&&t.logicalBucket!==n))return t}var Xe;function Oo(){if(Xe!==void 0)return Xe;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 Xe===n&&(Xe=void 0),t});return Xe=n,n}function No(e,n){return new F("multipart-abort-failed","Resource upload failed and incomplete parts could not be removed",{cause:new AggregateError([e,n],"Resource upload and multipart cleanup both failed")})}function Ud(e){if(e===void 0)return "";let n=e.lastIndexOf(".");return n>=0?e.slice(n):""}function Bd(e){return globalThis.crypto.randomUUID()+Ud(e)}function Ko(e,n){let t=e.keyPrefix??"";return t===""||n.startsWith(t)?n:`${t}${n}`}function Od(e,n){let t=Vt(e.getUploadCredentials),r=0;function o(){let h=Math.min(_d,Math.max(1,xd-r));r+=h;let S=false;return {queueSize:h,release(){S||(S=true,r-=h);}}}function i(h,S){if(h==="avatar")return e.avatarBucket??"";if(S==="channel"){let T=e.channelBuckets?.[h]??"";if(T!=="")return T}return e.buckets[h]??""}function a(h,S,T){let{region:d}=S;return new h.S3Client({region:d,credentials:{accessKeyId:S.accessKeyId,secretAccessKey:S.secretAccessKey,sessionToken:S.sessionToken,...S.expiresAtSeconds===void 0?{}:{expiration:new Date(S.expiresAtSeconds*1e3)}},useAccelerateEndpoint:(e.useAccelerateEndpoint??true)&&!d.toLowerCase().startsWith("cn-"),requestChecksumCalculation:"WHEN_REQUIRED",requestHandler:T})}async function c(h,S,T,d,m,w,p,b){let M=Ed(Ad),_=e.multipartTransfer===true&&e.multipartUpload!==false&&p>M,C=_?o():{queueSize:1,release:()=>{}},P=new h.XhrHttpHandler({}),A=a(h,m,P),f={client:A,handler:P,commands:h.commands,bucket:m.bucket,key:w,...S.mimeType!==void 0&&S.mimeType!==""?{mimeType:S.mimeType}:{}},v={data:S.data,sourceBytes:p,...S.onProgress===void 0?{}:{onProgress:S.onProgress},...S.signal===void 0?{}:{signal:S.signal},...S.transformPart===void 0?{}:{transformPart:S.transformPart}},x=S.resume,E=dt(x),D=_&&E?.logicalBucket===T&&st(E.session,f,p,M)!==void 0,k=D?E?.session:void 0,U=K=>{k=K;let J=0;for(let de of K.parts)J+=Math.min(K.partSize,K.sourceBytes-(de.partNumber-1)*K.partSize);S.onResumable?.({bytesUploaded:J,transport:{logicalBucket:T,objectName:d,session:K}});},B=()=>{k=void 0,delete S.resume;},$;try{if(E!==void 0&&!D){try{E.logicalBucket===T?await Qe(f,E.session):await y(x);}catch(J){if(b.mode==="discard")throw b.cleanupFailed=!0,No(b.retryCause,J);n?.record("warn","sdk","media","upload-resume-abandon-failed",()=>({data:{code:"multipart-abort-failed",reason:"resume-target-changed"}}));}delete S.resume;}if(S.signal?.aborted)throw new DOMException("media upload canceled","AbortError");if(!_){await Do(f,v);return}let K=k;try{await ct({target:f,content:v,partSize:M,queueSize:C.queueSize,...K===void 0?{}:{resume:K},onResumable:U,onCompleted:B});}catch(J){if(S.signal?.aborted||!at(J)||K===void 0)throw J;k=void 0,await ct({target:f,content:v,partSize:M,queueSize:C.queueSize,onResumable:U,onCompleted:B});}}catch(K){if(b.mode==="retain"&&S.signal?.aborted===true&&S.signal.reason!=="offline"&&k!==void 0)try{await Qe(f,k);}catch(J){$=J;}throw b.cleanupFailed?K:Rd(K,_,$)}finally{C.release(),A.destroy();}}async function s(h,S,T,d={mode:"retain"}){let m=i(S,T);if(m==="")throw new F("bucket-unconfigured",`media upload: kind=${S} \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 w=kd(h.data);if(w===void 0)throw new F("upload-source-invalid","media upload: \u4E0A\u4F20\u5185\u5BB9\u5FC5\u987B\u662F Uint8Array \u6216 Blob");let p=await Oo();if(d.mode==="discard"&&h.signal?.aborted)throw new DOMException("media upload canceled","AbortError");let b=dt(h.resume,m)?.objectName??Bd(h.filename),M={...h,onResumable:C=>{M.resume=C,h.onResumable?.(C);}},_;try{_=await t.resolve(m);let C=Ko(_,b);try{await c(p,M,m,b,_,C,w,d);}catch(P){if(h.signal?.aborted||P instanceof F&&Dd.has(P.code))throw P;d.retryCause=P,_=await t.resolve(m,{forceRefresh:!0}),C=Ko(_,b),await c(p,M,m,b,_,C,w,d);}if(h.signal?.aborted)throw new DOMException("media upload canceled","AbortError");return h.onProgress?.({percent:100,bytesTransferred:w,bytesTotal:w,phase:"finalizing"}),{url:`${_.dnsPoint}/${C}`}}catch(C){let P=dt(M.resume);if(d.mode==="discard"&&!d.cleanupFailed&&P!==void 0&&_!==void 0){let A=new p.XhrHttpHandler({}),f=a(p,_,A);try{await Qe({client:f,commands:p.commands},P.session);}catch(v){throw No(C,v)}finally{f.destroy();}}throw C}}function u(h){return s(h,h.kind,h.conversationType)}function g(h){return s({data:h.data,...h.filename===void 0?{}:{filename:h.filename},...h.mimeType===void 0?{}:{mimeType:h.mimeType},...h.signal===void 0?{}:{signal:h.signal},...h.onProgress===void 0?{}:{onProgress:h.onProgress}},h.kind,void 0,{mode:"discard"})}function I(h){return s(h,"avatar")}async function y(h){let S=h.transport;if(S?.session===void 0||S.session.uploadId==="")return;let T=await Oo(),d=await t.resolve(S.logicalBucket),m=new T.XhrHttpHandler({}),w=a(T,d,m);try{await Qe({client:w,commands:T.commands},S.session);}finally{w.destroy();}}let l=Eo(e.multipartTransfer===true&&e.rangeDownload!==false,n);return {upload:u,uploadAvatar:I,uploadResource:g,download:l,abandonUpload:y}}function Nd(){let e=globalThis;return typeof e.addEventListener=="function"&&typeof e.removeEventListener=="function"?e:void 0}function Kd(e,n={}){let t=n.target!==void 0?n.target:Nd(),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?.();},u=()=>e.onPageHide?.(),g=()=>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",u),o.addEventListener("pageshow",g)));},stop(){i&&(i=false,t!=null&&(t.removeEventListener("online",a),t.removeEventListener("offline",c)),r?.removeEventListener("visibilitychange",s),o!=null&&(o.removeEventListener("pagehide",u),o.removeEventListener("pageshow",g)));},get running(){return i}}}var Hd=14,Fd=2*1024*1024*1024,Go=1024*1024*1024,$d=512*1024*1024,Jd=256*1024*1024,jd=64*1024,ut="channel:list-version",Lo="schema:conversation-key-v1",Ho="schema:message-server-order-v1",Fo="im:membership-reset-sort-keys",lt="default",we="\uFFFF";function $o(e){if(!(e===void 0||!/^\d+$/.test(e)))return e.replace(/^0+(?=\d)/,"")}function Vd(e,n){let t=$o(e),r=$o(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 Ze(e){return `conversation:${Da$1(e)}`}function pt(e,n){return `${Da$1(e)}\0${n}`}function qd(e){let n=Da$1(e.conversation);return {...e,key:pt(e.conversation,e.messageId),conversationKey:n,conversation:{...e.conversation},sContent:e.sContent.slice()}}function zd(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 Pe(e){let{conversationKey:n,...t}=e;return t}function Cn(e){return {...e,id:Da$1(Ba$1(e)),conversationId:e.id}}function ft(e){if(e.conversationId===void 0)return e;let{conversationId:n,...t}=e;return {...t,id:n}}function mt(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 Vo(e){return {...e,conversationId:Da$1(Ca$1(e)),storageConversationId:e.conversationId}}function gt(e){if(e.storageConversationId===void 0)return e;let{storageConversationId:n,...t}=e;return {...t,conversationId:n}}function Wd(e){return {...e,conversationKey:Da$1(e.ref)}}function Yd(e){let{conversationKey:n,...t}=e;return t}function Qd(e){return typeof e=="string"?e:e.conversationId}function en(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 Xd(e){let n=e.transaction(["messages","sessions","readStates","pinnedMessages","meta"],"readwrite");try{let t=n.objectStore("meta");if((await t.get(Lo))?.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 u=ft(s);i.set(u.id,u.type),await o.put(Cn(u)),await o.delete(s.id);}let a=n.objectStore("readStates");for(let s of await a.getAll()){if(s.storageConversationId!==void 0)continue;let u=s.conversationType??i.get(s.conversationId);if(u===void 0)continue;let g={...s,conversationType:u};await a.put(mt(g)),await a.delete(s.conversationId);}let c=n.objectStore("pinnedMessages");for(let s of await c.getAll()){if(s.storageConversationId!==void 0)continue;let u=gt(s);await c.put(Vo(u)),await c.delete(s.conversationId);}await t.put({key:Lo,value:!0}),await n.done;}catch(t){try{n.abort();}catch{}try{await n.done;}catch{}throw t}}async function Zd(e){let n=e.transaction(["messages","readStates","meta"],"readwrite");try{let t=n.objectStore("meta");if((await t.get(Ho))?.value===!0){await n.done;return}let r=n.objectStore("readStates"),o=await r.getAll(),i=new Map;for(let g of o){let I=wn(g);I.conversationType==="channel"&&I.readCursorSortKey!==void 0&&I.readCursor!==""&&i.set(Da$1(I),{cursor:I.readCursor});}let a=new Map,c=n.objectStore("messages"),s=await c.openCursor();for(;s!==null;){let g=s.value,I=Da$1(Aa$1(g)),y=l(g),l$1=i.get(I);if(l$1!==void 0&&g.extensions?.historyCursor===l$1.cursor&&(l$1.sortKey=y),y!==g.sortKey){let h=a.get(I);h===void 0&&(h=new Map,a.set(I,h)),h.set(g.sortKey,y),await s.update({...g,sortKey:y});}s=await s.continue();}for(let g of o){let I=wn(g);if(I.conversationType===void 0)continue;let y=Da$1(I),l=i.get(y)?.sortKey??(I.readCursorSortKey===void 0?void 0:a.get(y)?.get(I.readCursorSortKey));if(l===void 0&&I.readCursorSortKey!==void 0&&I.conversationType!=="channel"&&I.readCursor!==""){let h=await c.get(I.readCursor);h!==void 0&&Da$1(Aa$1(h))===y&&(l=h.sortKey);}l!==void 0&&l!==I.readCursorSortKey&&await r.put({...g,readCursorSortKey:l});}let u=await t.get(Fo);if(Array.isArray(u?.value)){let g=!1,I=u.value.map(y=>{if(!Array.isArray(y)||y.length!==2||typeof y[0]!="string"||typeof y[1]!="string")return y;let l=a.get(y[0])?.get(y[1]);return l===void 0?y:(g=!0,[y[0],l])});g&&await t.put({key:Fo,value:I});}await t.put({key:Ho,value:!0}),await n.done;}catch(t){try{n.abort();}catch{}try{await n.done;}catch{}throw t}}function Jo(e){return `${e.kind}:${encodeURIComponent(e.messageId)}:${e.resourceVersion}`}async function eu(e,n){let t=n.namespaceFactory.forAccount(e).name("durable","storage","indexed-db");typeof indexedDB>"u"||await deleteDB(t);}function nu(e){let{namespaceFactory:n}=e,t=null,r=null,o=0,i=Promise.resolve(),a=0,c=e.mediaAssetCache?.maxPendingWriteBytes??Jd;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 u(d){if(typeof d!="string")return;let m=IDBKeyRange.bound([d,""],[d,we]),w=(await s().transaction("messages").store.index("by_conv_sort").getAll(m)).map(Pe);en(d,w);}function g(d){let m=i.then(d,d);return i=m.then(()=>{},()=>{}),m}function I(d,m){if(d!==o||m===null||m!==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 l(d){let m=e.mediaAssetCache?.estimateStorage??(async()=>typeof navigator>"u"||navigator.storage?.estimate===void 0?{}:await navigator.storage.estimate());try{let{quota:w,usage:p}=await m();if(w===void 0||!Number.isFinite(w)||w<=0)return Go;let b=d.reduce((C,P)=>C+P.byteLength,0),M=Math.max(0,(p??0)-b),_=Math.max($d,Math.floor(w*.2));return Math.max(0,Math.min(Fd,Math.floor(w-M-_)))}catch{return Go}}async function h(d,m,w){if(d.length===0)return;I(m,w);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 S(d,m,w,p){I(d,m);let b=s(),M=e.mediaAssetCache?.strategies;if(M===void 0)return;let _=p??await b.getAll("mediaAssetMeta");I(d,m);let C=new Set;for(let v of M.list()){let x=_.filter(k=>k.kind===v.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<=v.softMaxBytes&&D<=v.maxEntries)break;C.add(k.key),E-=k.byteLength,D-=1;}}let P=_.filter(v=>!C.has(v.key)).sort((v,x)=>v.lastAccessedAt-x.lastAccessedAt),A=Math.max(0,Math.min(await l(_),w??Number.POSITIVE_INFINITY)),f=P.reduce((v,x)=>v+x.byteLength,0);for(let v of P){if(f<=A)break;C.add(v.key),f-=v.byteLength;}await h([...C],d,m);}async function T(d,m,w){I(m,w);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"),C=await l(_);if(I(m,w),M===0||M>p.maxEntryBytes||C<=0||M>Math.floor(C/2))return "skipped";let P=Jo(d),A=y(),f=_.find(k=>k.key===P),v={key:P,kind:d.kind,messageId:d.messageId,resourceVersion:d.resourceVersion,byteLength:M,...d.mimeType===void 0?{}:{mimeType:d.mimeType},createdAt:f?.createdAt??A,lastAccessedAt:A},x=async()=>{I(m,w);let k=s().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all([k.objectStore("mediaAssets").put({key:P,blob:b}),k.objectStore("mediaAssetMeta").put(v)]),await k.done;},E=false;try{await x();}catch(k){if(!(k instanceof DOMException)||k.name!=="QuotaExceededError")throw k;E=true,await S(m,w,Math.max(0,C-M)),await x();}let D=f===void 0?[..._,v]:_.map(k=>k.key===P?v:k);return await S(m,w,void 0,E?void 0:D),I(m,w),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 m=++o,w=n.forAccount(d).name("durable","storage","indexed-db"),p=await openDB(w,Hd,{upgrade(b,M,_,C){if(b.objectStoreNames.contains("messages"))C.objectStore("messages").indexNames.contains("by_conversation_key_sort")||C.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&&(C.objectStore("mediaAssets").clear(),C.objectStore("mediaAssetMeta").clear());}});if(m!==o){p.close();return}try{await Xd(p),await Zd(p);}catch(b){throw p.close(),b}if(m!==o){p.close();return}t=p;},async close(){o+=1,r=null,t!==null&&(t.close(),t=null);},async clearRebuildableCaches(){let d=o,m=r;await g(async()=>{I(d,m);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(ut),p.done]);});},async get(d){let m=o,w=r;return await g(async()=>{if(I(m,w),e.mediaAssetCache?.strategies.resolve(d.kind)===void 0)return null;let p=Jo(d),b=s(),[M,_]=await Promise.all([b.get("mediaAssets",p),b.get("mediaAssetMeta",p)]);return I(m,w),M===void 0||_===void 0?(await h([p],m,w),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 m=o,w=r;I(m,w);let p=d.blob.size;if(p>c||a+p>c)return "skipped";a+=p;try{return await g(()=>T(d,m,w))}finally{a=Math.max(0,a-p);}},async clear(){let d=o,m=r;await g(async()=>{I(d,m);let w=s().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all([w.objectStore("mediaAssets").clear(),w.objectStore("mediaAssetMeta").clear(),w.done]);});},async getMessage(d,m){let w=await s().get("messages",m);if(w===void 0)return null;let p=Pe(w);return Da$1(Aa$1(p))===Da$1(d)?p:null},async getMessages(d,m){let w=typeof d=="string"?"by_conv_sort":"by_conversation_key_sort",p=typeof d=="string"?d:Da$1(d);if(await u(d),m.beforeSortKey===void 0&&m.afterSortKey!==void 0){let C=IDBKeyRange.bound([p,m.afterSortKey],[p,we]),P=[],A=await s().transaction("messages").store.index(w).openCursor(C,"next");for(;A!==null&&P.length<m.limit;)P.push(A.value),A=await A.continue();return P.map(Pe)}let b=m.beforeSortKey===void 0?IDBKeyRange.bound([p,""],[p,we]):IDBKeyRange.bound([p,""],[p,m.beforeSortKey],false,true),M=[],_=await s().transaction("messages").store.index(w).openCursor(b,"prev");for(;_!==null&&M.length<m.limit;)M.push(_.value),_=await _.continue();return M.reverse().map(Pe)},async saveMessages(d){if(d.length===0)return;let m=s().transaction("messages","readwrite");await Promise.all([...d.map(w=>m.store.put(jo(w))),m.done]);},async searchMessages(d,m){let w=Da$1(d),p=m.keyword?.trim()??"",b=m.contentTypes;if(p===""&&(b===void 0||b.length===0))return {items:[],exhausted:true};let M=p===""?void 0:await ca$1(p),_=m.beforeSortKey===void 0?IDBKeyRange.bound([w,""],[w,we]):IDBKeyRange.bound([w,""],[w,m.beforeSortKey],false,true),C=2e3,P=[],A=0,f,v=await s().transaction("messages").store.index("by_conversation_key_sort").openCursor(_,"prev");for(;v!==null&&P.length<m.limit&&A<C;){let E=ga$1(Pe(v.value));A+=1,f=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),v=await v.continue();}let x=v===null;return {items:P,exhausted:x,...x?{}:{nextBeforeSortKey:f}}},async getDecryptRecoveries(d){let m=Da$1(d);return (await s().getAllFromIndex("decryptRecoveries","by_conversation",m)).map(zd)},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",qd(d));},async deleteDecryptRecovery(d,m){await s().delete("decryptRecoveries",pt(d,m));},async deleteConversationDecryptRecoveries(d){let m=Da$1(d),w=s().transaction("decryptRecoveries","readwrite"),p=await w.store.index("by_conversation").openCursor(IDBKeyRange.only(m));for(;p!==null;)await p.delete(),p=await p.continue();await w.done;},async getSessions(){return (await s().getAll("sessions")).map(ft)},async saveSessions(d){if(d.length===0)return;let m=s().transaction("sessions","readwrite");for(let w of d)await m.store.put(Cn(w)),await m.store.delete(w.id);await m.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(Ze(d)),await p.done;return}let m=(await s().getAll("sessions")).map(ft).filter(p=>p.id===d);en(d,m.map(p=>({conversationType:p.type})));let w=s().transaction(["sessions","conversationBackgrounds"],"readwrite");if(m[0]!==void 0){let p=Ba$1(m[0]);await w.objectStore("sessions").delete(Da$1(p)),await w.objectStore("conversationBackgrounds").delete(Ze(p));}await w.objectStore("sessions").delete(d),await w.done;},async deleteReadState(d){if(typeof d!="string"){await s().delete("readStates",Da$1(d));return}let w=(await s().getAll("readStates")).map(wn).filter(p=>p.conversationId===d).filter(p=>p.conversationType!==void 0);en(d,w),w[0]!==void 0&&await s().delete("readStates",Da$1(w[0])),await s().delete("readStates",d);},async deleteMessage(d,m,w){let p=s().transaction(["messages","sessions","decryptRecoveries"],"readwrite"),b=await p.objectStore("messages").get(m);if(b!==void 0){let M=Pe(b);if(M.conversationType!==d.conversationType||M.conversationId!==d.conversationId)return await p.done,false;await p.objectStore("messages").delete(m);}return await p.objectStore("decryptRecoveries").delete(pt(d,m)),w!==void 0&&await p.objectStore("sessions").put(Cn(w)),await p.done,b!==void 0},async deleteConversationMessages(d){let m=Qd(d),w=typeof d=="string"?"by_conv_sort":"by_conversation_key_sort",p=typeof d=="string"?d:Da$1(d),b=IDBKeyRange.bound([p,""],[p,we]),M=s().transaction(["messages","decryptRecoveries"],"readwrite"),_=M.objectStore("messages"),C=M.objectStore("decryptRecoveries"),P=[];if(typeof d=="string"){let f=(await _.index("by_conv_sort").getAll(b)).map(Pe);P=(await C.getAll()).filter(v=>v.conversation.conversationId===d),en(m,[...f,...P.map(v=>({conversationType:v.conversation.conversationType}))]);}let A=await _.index(w).openCursor(b);for(;A!==null;)await A.delete(),A=await A.continue();if(typeof d=="string")for(let f of P)await C.delete(f.key);else {let f=await C.index("by_conversation").openCursor(IDBKeyRange.only(Da$1(d)));for(;f!==null;)await f.delete(),f=await f.continue();}await M.done;},async clearConversationHistory(d,m,w){let p=Da$1(d),b=IDBKeyRange.bound([p,""],[p,we]),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 C=await M.objectStore("decryptRecoveries").index("by_conversation").openCursor(IDBKeyRange.only(p));for(;C!==null;)await C.delete(),C=await C.continue();m!==void 0&&await M.objectStore("sessions").put(Cn(m)),w!==void 0&&(await M.objectStore("readStates").put(mt(w)),await M.objectStore("readStates").delete(w.conversationId)),await M.done;},async getReadStates(){return (await s().getAll("readStates")).map(wn)},async saveReadState(d){let m=s().transaction("readStates","readwrite");await m.store.put(mt(d)),d.conversationType!==void 0&&await m.store.delete(d.conversationId),await m.done;},async getDrafts(){return (await s().getAll("drafts")).map(Yd)},async saveDraft(d){await s().put("drafts",Wd(d));},async deleteDraft(d){await s().delete("drafts",Da$1(d));},async getConversationBackground(d){return (await s().get("conversationBackgrounds",Ze(d)))?.background??null},async saveConversationBackground(d,m){let w=Ze(d);await s().put("conversationBackgrounds",{key:w,background:m});},async deleteConversationBackground(d){await s().delete("conversationBackgrounds",Ze(d));},async getDefaultConversationBackground(){return (await s().get("conversationBackgrounds",lt))?.background??null},async saveDefaultConversationBackground(d){await s().put("conversationBackgrounds",{key:lt,background:d});},async deleteDefaultConversationBackground(){await s().delete("conversationBackgrounds",lt);},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(gt)},async savePinnedMessage(d){let m=s().transaction("pinnedMessages","readwrite");await m.store.put(Vo(d)),await m.store.delete(d.conversationId),await m.done;},async removePinnedMessage(d){if(typeof d!="string"){await s().delete("pinnedMessages",Da$1(d));return}let m=(await s().getAll("pinnedMessages")).map(gt).filter(w=>w.conversationId===d);en(d,m),m[0]!==void 0&&await s().delete("pinnedMessages",Da$1(Ca$1(m[0]))),await s().delete("pinnedMessages",d);},async getMeta(d){let m=await s().get("meta",d);return m===void 0?null:m.value},async setMeta(d,m){await s().put("meta",{key:d,value:m});},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 m=s().transaction("channelProfiles","readwrite");await Promise.all([...d.map(w=>m.store.put(w)),m.done]);},async getChannelListVersion(){let d=await s().get("meta",ut);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:ut,value:d});},async getChannelMembers(d,m){if(m.length===0)return [];let w=s().transaction("channelMembers"),p=await Promise.all(m.map(b=>w.store.get([d,b])));return await w.done,p.filter(b=>b!==void 0)},async saveChannelMembers(d){if(d.length===0)return;let m=s().transaction("channelMembers","readwrite");for(let w of d){let p=await m.store.get([w.channelId,w.userId]);p!==void 0&&Vd(w.updateVersion,p.updateVersion)<0||await m.store.put(w);}await m.done;},async deleteChannelMembers(d){let m=IDBKeyRange.bound([d,""],[d,we]),w=s().transaction("channelMembers","readwrite"),p=await w.store.openCursor(m);for(;p!==null;)await p.delete(),p=await p.continue();await w.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 tu(e={}){let n=e.createSocket??(l=>new globalThis.WebSocket(l)),t=e.connectTimeoutMs??1e4,r={open:new Set,message:new Set,close:new Set,error:new Set},o,i,a="idle",c;function s(l,h){for(let S of [...r[l]])S(h);}function u(){c!==void 0&&(clearTimeout(c),c=void 0);}function g(l,h){h!==void 0&&(l.removeEventListener("open",h.onOpen),l.removeEventListener("message",h.onMessage),l.removeEventListener("error",h.onError),l.removeEventListener("close",h.onClose));}function I(){if(u(),o!==void 0){g(o,i);try{o.close(1e3);}catch{}o=void 0;}i=void 0;}function y(l,h,S){let T={onOpen:()=>{l===o&&(u(),a="open",s("open",{endpoint:h}));},onMessage:d=>{if(l!==o)return;let m=d?.data;if(m instanceof ArrayBuffer){s("message",{data:m});return}s("error",{error:new Error(`WsTransport\uFF1A\u6536\u5230\u975E ArrayBuffer \u6D88\u606F\uFF08${typeof m}\uFF09\uFF0C\u5DF2\u5FFD\u7565`)});},onError:d=>{l===o&&s("error",{error:new Error(`WsTransport\uFF1AWebSocket error \u4E8B\u4EF6\uFF08${d instanceof Event?d.type:typeof d}\uFF09`)});},onClose:d=>{l===o&&(u(),g(l,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,l.addEventListener("open",T.onOpen),l.addEventListener("message",T.onMessage),l.addEventListener("error",T.onError),l.addEventListener("close",T.onClose),S>0){let d=setTimeout(()=>{if(!(l!==o||a!=="connecting")){s("error",{error:new Error(`WsTransport\uFF1A\u8FDE\u63A5\u8D85\u65F6\uFF08${S}ms \u672A open\uFF09`)});try{l.close();}catch{}}},S);d.unref?.(),c=d;}}return {get state(){return a},async connect(l,h){let S=l[0];if(S===void 0)throw new Error("WsTransport.connect\uFF1Aendpoints \u4E3A\u7A7A\uFF08P0 single \u7B56\u7565\u9700\u81F3\u5C11\u4E00\u4E2A\u7AEF\u70B9\uFF09");I(),a="connecting";let T;try{T=n(S.url);}catch(d){throw a="closed",d}T.binaryType="arraybuffer",o=T,y(T,S,h?.connectTimeoutMs??t);},async send(l){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(l);},async close(l=1e3,h){u(),o!==void 0&&(a==="connecting"||a==="open")&&(a="closing",o.close(l,h));},on(l,h){return r[l].add(h),()=>{r[l].delete(h);}}}}
7
+ export{Vs as $,fi as $a,zo as A,vc as Aa,gs as B,Mc as Ba,hs as C,Ac as Ca,bs as D,_c as Da,Cs as E,xc as Ea,ws as F,Ec as Fa,Ps as G,Rc as Ga,Is as H,Dc as Ha,Ss as I,Uc as Ia,vs as J,Bc as Ja,Ms as K,Oc as Ka,As as L,Nc as La,_s as M,yn as Ma,xs as N,me as Na,Es as O,Yc as Oa,ks as P,Qc as Pa,Rs as Q,wd as Qa,Us as R,F as Ra,mn as S,Wo as Sa,gn as T,jt as Ta,Bs as U,Od as Ua,Ks as V,Kd as Va,Gs as W,eu as Wa,Ls as X,nu as Xa,Hs as Y,tu as Ya,$s as Z,ni as Za,Js as _,tn as _a,_i as a,qs as aa,Ai as ab,Ne as b,zs as ba,q as c,Ws as ca,Li as d,Qs as da,Fi as e,Zs as ea,Ke as f,ec as fa,$i as g,nc as ga,ra as h,tc as ha,Se as i,rc as ia,Y as j,ic as ja,fa as k,ze as ka,ma as l,sc as la,Fe as m,cc as ma,ae as n,dc as na,Ma as o,uc as oa,$e as p,lc as pa,X as q,pc as qa,La as r,fc as ra,qa as s,mc as sa,Qa as t,gc as ta,Xa as u,bc as ua,rs as v,Cc as va,Ae as w,wc as wa,j as x,Pc as xa,he as y,yo as ya,us as z,ho as za};