k2-im 0.1.21 → 0.1.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser-YLMJKRLM.js +2 -0
- package/dist/browser.d.ts +21 -0
- package/dist/browser.js +1 -1
- package/dist/chat-kit-pinia.d.ts +241 -86
- package/dist/chat-kit-pinia.js +1 -1
- package/dist/chat-kit-vue.d.ts +58 -0
- package/dist/chat-kit-vue.js +1 -1
- package/dist/chat-kit.d.ts +71 -0
- package/dist/chat-kit.js +1 -1
- package/dist/chunk-EM4YNWX4.js +2 -0
- package/dist/chunk-FUEAUHMC.js +1 -0
- package/dist/{chunk-5I7S6LWE.js → chunk-HNSTHP6F.js} +1 -1
- package/dist/{chunk-P4HOR4XO.js → chunk-HQ7FTY2C.js} +1 -1
- package/dist/{chunk-YAM4YHKF.js → chunk-MO2EU56Q.js} +2 -2
- package/dist/chunk-W5SQGPRQ.js +2 -0
- package/dist/{chunk-2GZMQCIP.js → chunk-YQSRQ25X.js} +1 -1
- package/dist/i18n.js +1 -1
- package/dist/index.d.ts +72 -1
- package/dist/index.js +1 -1
- package/dist/sdk.d.ts +47 -1
- package/dist/sdk.js +1 -1
- package/package.json +1 -1
- package/dist/browser-BKCNJDKR.js +0 -2
- package/dist/chunk-4X7RCGEV.js +0 -1
- package/dist/chunk-A2BLOVZ5.js +0 -2
- package/dist/chunk-DN4H5C7G.js +0 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {qa as qa$1,C,F,f,g,i,S,T,W as W$1,X as X$1,Q as Q$1,R as R$1,G,H as H$1,B,E,k,e,D,I,K as K$1,M,L as L$1,N as N$1,O as O$1,P,ca as ca$1,da as da$1,nb,Ba as Ba$1,Aa as Aa$1,za as za$1,aa as aa$1,ea as ea$1,_,ya as ya$1,U,V as V$1,wa as wa$1,va as va$1,Y as Y$1,Z as Z$1}from'./chunk-A2BLOVZ5.js';import*as q from'node-forge';import {deleteDB,openDB}from'idb';function Jo(e,n=async t=>{let{createBrowserApiProtocolClient:r}=await import('./browser-BKCNJDKR.js');return r(t)}){let t=null;function r(){if(t!==null)return t;let o=n(e);return t=o,o.catch(()=>{t===o&&(t=null);}),o}return async(o,i)=>(await r())(o,i)}var H=class extends Error{code;constructor(n,t,r){super(t??n,r),this.name="MediaTransferError",this.code=n;}};function jo(e){return e instanceof H?e.code:void 0}var Vo=3600*1e3,qo=300*1e3;function ue(...e){for(let n of e){if(typeof n!="string"&&typeof n!="number")continue;let t=String(n).trim();if(t!=="")return t}return ""}function zo(e){let n=Number(e);if(!(!Number.isFinite(n)||n<=0))return n>1e12?n/1e3:n}function Wo(e){let n=e.replace(/\/+$/,"");return n===""?"":/^https?:\/\//i.test(n)?n:`https://${n}`}function Ft(e){if(e===null||typeof e!="object")throw new H("credentials-invalid","S3 \u4E0A\u4F20\u51ED\u8BC1\u683C\u5F0F\u65E0\u6548\uFF1A\u56DE\u5305\u4E0D\u662F\u5BF9\u8C61");let n=e,t=ue(n.access_key_id,n.accessKeyId),r=ue(n.secret_key,n.secretKey,n.secretAccessKey),o=ue(n.session_token,n.sessionToken).replace(/\s+/g,""),i=ue(n.bucket),a=ue(n.region),c=Wo(ue(n.dns_point,n.dnsPoint)),s=[t===""?"access_key_id":"",r===""?"secret_key":"",o===""?"session_token":"",i===""?"bucket":"",a===""?"region":"",c===""?"dns_point":""].filter(y=>y!=="");if(s.length>0)throw new H("credentials-invalid",`S3 \u4E0A\u4F20\u51ED\u8BC1\u683C\u5F0F\u65E0\u6548\uFF1A\u7F3A\u5C11 ${s.join("\u3001")}`);let l=zo(n.expiration??n.expiresAtSeconds),g=ue(n.key_prefix,n.keyPrefix),S=ue(n.identity_id,n.identityId);return {accessKeyId:t,secretAccessKey:r,sessionToken:o,bucket:i,region:a,dnsPoint:c,...l===void 0?{}:{expiresAtSeconds:l},...g===""?{}:{keyPrefix:g},...S===""?{}:{identityId:S}}}function Yo(e,n){if(n-e.fetchedAtMs>=Vo)return false;let{expiresAtSeconds:t}=e.credential;return t===void 0?true:t*1e3-qo>n}function $t(e){let n=new Map,t=new Map;async function r(o,i){let a;try{a=await e({bucket:o,forceRefresh:i});}catch(s){let l=s instanceof Error?s.message:String(s);throw new H("credentials-request-failed",`S3 \u4E0A\u4F20\u51ED\u8BC1\u83B7\u53D6\u5931\u8D25\uFF1Abucket=${o}\uFF1B\u539F\u56E0\uFF1A${l}`,{cause:s})}let c=Ft(a);return n.set(o,{credential:c,fetchedAtMs:Date.now()}),c}return {resolve(o,i){if(e===void 0)return Promise.reject(new H("credentials-provider-missing","media upload: \u5BBF\u4E3B\u672A\u6CE8\u5165 getUploadCredentials\uFF0C\u65E0\u6CD5\u7533\u8BF7 S3 \u4E34\u65F6\u51ED\u8BC1"));let a=i?.forceRefresh===true,c=a?void 0:n.get(o);if(c!==void 0&&Yo(c,Date.now()))return Promise.resolve(c.credential);n.delete(o);let s=t.get(o);if(s!==void 0)return s;let l=r(o,a).finally(()=>{t.get(o)===l&&t.delete(o);});return t.set(o,l),l}}}function Qo(){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 en(e){return e instanceof N?e.code:void 0}function Jt(e){switch(e instanceof DOMException||e instanceof Error?e.name:""){case "NotAllowedError":case "SecurityError":case "PermissionDeniedError":return new N("permission-denied","\u9EA6\u514B\u98CE\u6743\u9650\u88AB\u62D2\u7EDD",{cause:e});case "NotFoundError":case "DevicesNotFoundError":return new N("device-not-found","\u672A\u627E\u5230\u53EF\u7528\u9EA6\u514B\u98CE",{cause:e});case "NotReadableError":case "TrackStartError":case "AbortError":return new N("device-busy","\u9EA6\u514B\u98CE\u88AB\u5360\u7528\u6216\u542F\u52A8\u5931\u8D25",{cause:e});default:return new N("device-busy",e instanceof Error?e.message:"\u9EA6\u514B\u98CE\u542F\u52A8\u5931\u8D25",{cause:e})}}var ne=16e3,Xo=new URL("./speex-runtime.txt",import.meta.url).href,xn=null,Zo=15e3;async function ei(){document.querySelector('script[data-speex-runtime="true"]')?.remove();let e=new AbortController,n=setTimeout(()=>e.abort(new Error("Speex runtime fetch timeout")),Zo),t;try{t=await fetch(Xo,{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 En(){let e=typeof window>"u"?void 0:window;return e?.__speexInH5!==void 0?e.__speexInH5:(xn??=(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 ei(),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 xn=null,n instanceof N?n:new N("codec-unavailable","Speex \u8FD0\u884C\u65F6\u52A0\u8F7D\u5931\u8D25",{cause:n})}),xn)}function jt(){En().catch(()=>{});}function le(e,n,t){for(let r=0;r<t.length;r+=1)e.setUint8(n+r,t.charCodeAt(r));}function ni(e,n){let r=new ArrayBuffer(44+e.length*2),o=new DataView(r);le(o,0,"RIFF"),o.setUint32(4,36+e.length*2,true),le(o,8,"WAVE"),le(o,12,"fmt "),o.setUint32(16,16,true),o.setUint16(20,1,true),o.setUint16(22,1,true),o.setUint32(24,n,true),o.setUint32(28,n*2,true),o.setUint16(32,2,true),o.setUint16(34,16,true),le(o,36,"data"),o.setUint32(40,e.length*2,true);let i=44;for(let a=0;a<e.length;a+=1){let c=Math.max(-1,Math.min(1,e[a]??0));o.setInt16(i,c<0?c*32768:c*32767,true),i+=2;}return r}function kn(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 ti=40,Tn=120,ri=40,Rn=80;function oi(e,n){let t=Math.min(Math.floor(n*ti/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 Dn(e,n){if(e.length===0)return e;let t=Math.min(Math.floor(n*Tn/1e3),Math.max(0,e.length-1)),r=t>0?e.subarray(t):e,o=new Float32Array(r),i=Math.min(Math.floor(n*ri/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 nn(e,n){let r=new ArrayBuffer(44+e.length*2),o=new DataView(r);return le(o,0,"RIFF"),o.setUint32(4,36+e.length*2,true),le(o,8,"WAVE"),le(o,12,"fmt "),o.setUint32(16,16,true),o.setUint16(20,1,true),o.setUint16(22,1,true),o.setUint32(24,n,true),o.setUint32(28,n*2,true),o.setUint16(32,2,true),o.setUint16(34,16,true),le(o,36,"data"),o.setUint32(40,e.length*2,true),new Int16Array(r,44).set(e),new Uint8Array(r)}function ii(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 ai(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 Vt(e,n){let t=await En(),r=Math.floor(n*Rn/1e3),o=new Float32Array(r+e.length);o.set(e,r);let i=ni(o,n);try{return ii(t.encodeFile(i))}catch(a){throw new N("encode-failed","\u8BED\u97F3\u7F16\u7801\u5931\u8D25",{cause:a})}}async function qt(e){let n=await En();try{let[t,r]=n.decodeFile(ai(e));if(t.length===0)throw new Error("decoded empty pcm");let o=oi(kn(t),r.rate>0?r.rate:ne),i=r.rate>0?r.rate:ne;return {samples:o,sampleRate:i,durationMs:Math.round(o.length/i*1e3)}}catch(t){throw t instanceof N?t:new N("decode-failed","\u8BED\u97F3\u89E3\u7801\u5931\u8D25",{cause:t})}}async function zt(e){let n=await qt(e);return {wavData:nn(n.samples,n.sampleRate),durationMs:n.durationMs}}var si=.5,ci=2;function Wt(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,si),ci)}function di(e={}){let n=e.cacheMax??8,t={activeId:"",isPlaying:false,loadingId:"",progress:0,currentTimeMs:0,errorIds:new Set,playbackRate:e.playbackRate===void 0?1:Wt(e.playbackRate)},r=new Set;function o(){for(let m of r)m(t);}let i=null,a=new Map,c=0,s=false,l=false;function g(m){let I=a.get(m);return I!==void 0&&(a.delete(m),a.set(m,I)),I}function S(m,I){if(s)return URL.revokeObjectURL(I.url),I;let x=a.get(m);if(x!==void 0)return URL.revokeObjectURL(I.url),a.delete(m),a.set(m,x),x;for(a.set(m,I);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 I}function y(m){m.paused||m.pause(),m.removeAttribute("src");try{m.load();}catch{}}function u(m,I){return !s&&m===c&&t.activeId===I}function h(m){m.defaultPlaybackRate=t.playbackRate,m.playbackRate=t.playbackRate;}function v(){if(i!==null)return i;let m=new Audio;return m.preload="auto",h(m),m.addEventListener("timeupdate",()=>{t.activeId!==""&&(t.currentTimeMs=m.currentTime*1e3,t.progress=m.duration>0?Math.min(1,m.currentTime/m.duration):0,o());}),m.addEventListener("ended",()=>{T(),y(m),o();}),m.addEventListener("pause",()=>{t.activeId!==""&&(t.isPlaying=false,o());}),i=m,m}function T(){t.activeId="",t.isPlaying=false,t.progress=0,t.currentTimeMs=0;}function d(){c+=1,l=false,t.loadingId="",T(),i!==null&&y(i),o();}function f(m){t.errorIds=new Set([...t.errorIds,m]);}function C(m){if(!t.errorIds.has(m))return;let I=new Set(t.errorIds);I.delete(m),t.errorIds=I;}async function p(m,I){let x=g(m);if(x!==void 0)return {entry:x};let E;try{E=await I();}catch(D){return {entry:null,error:{code:en(D),cause:D}}}if(E===null)return {entry:null};try{let{wavData:D,durationMs:k}=await zt(E),U={url:URL.createObjectURL(new Blob([D],{type:"audio/wav"})),durationMs:k};return {entry:S(m,U)}}catch(D){return {entry:null,error:{code:en(D),cause:D}}}}async function b(m,I){if(s)return;let x=v();if(C(m),t.activeId===m){if(t.isPlaying){x.pause();return}let k=++c;try{await x.play();}catch{if(!u(k,m))return;f(m),o();return}if(!u(k,m))return;t.isPlaying=true,o(),I.onPlayStart?.();return}if(t.loadingId===m)return;d();let E=++c;t.loadingId=m,o();let D=await p(m,I.load);if(E===c){if(t.loadingId="",D.entry===null){f(m),o(),D.error!==void 0&&I.onDecodeError?.(D.error.code,D.error.cause);return}x.src=D.entry.url,h(x),t.activeId=m,t.progress=0,t.currentTimeMs=0,o();try{await x.play();}catch(k){if(!u(E,m))return;T(),y(x),f(m),o(),I.onDecodeError?.(void 0,k);return}u(E,m)&&(t.isPlaying=true,o(),I.onPlayStart?.());}}function M(m,I){i===null||t.activeId!==m||!Number.isFinite(i.duration)||i.duration<=0||(i.currentTime=Math.min(Math.max(I,0),.999)*i.duration);}function _(m){i===null||t.activeId!==m||t.isPlaying&&(l=true,i.pause());}function P(m){if(i===null||t.activeId!==m||!l)return;l=false;let I=++c;i.play().then(()=>{u(I,m)&&(t.isPlaying=true,o());}).catch(()=>{u(I,m)&&(f(m),o());});}function w(m){let I=Wt(m);I!==t.playbackRate&&(t.playbackRate=I,i!==null&&h(i),o());}function A(){if(!s){s=true,d();for(let m of a.values())URL.revokeObjectURL(m.url);a.clear(),r.clear(),i=null;}}return {getState:()=>t,subscribe:m=>(r.add(m),()=>r.delete(m)),toggle:b,seek:M,beginScrub:_,endScrub:P,setPlaybackRate:w,stop:d,dispose:A}}function ui(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 li(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 Yt(e){let n=ui(e.timeDomain),t=li(e.frequency,e.sampleRate,e.fftSize),r=n*.55+t*.45;return Math.min(1,r*e.boost)**.72}var tn=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 pi=5e3,Un=15e3,fi=25e3;function rn(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 mi(){return {channelCount:1,echoCancellation:true,noiseSuppression:true,autoGainControl:true}}var gi=50,yi=.12,hi=2.6,bi=.06,Ci=256;function wi(){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 Pi(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 rn(i.resume(),Un,"audioContext.resume timeout").catch(()=>{});let c=await rn(i.decodeAudioData(await e.arrayBuffer()),Un,"decodeAudioData timeout"),s=Math.max(1,Math.ceil(c.duration*n)),l=new o(1,s,n),g=l.createBufferSource();return g.buffer=c,g.connect(l.destination),g.start(0),(await rn(l.startRendering(),Un,"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 Qt(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 Ii(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:mi()});}catch(m){throw Jt(m)}}jt();let t=wi(),r=e.maxDurationMs??6e4,o="recording",i=[],a=0,c=[],s=null,l=null,g=null,S=[],y=0,u=false;function h(){try{let m;try{m=t!==""?new MediaRecorder(n,{mimeType:t}):new MediaRecorder(n);}catch{m=new MediaRecorder(n);}return S=[],m.ondataavailable=I=>{I.data.size>0&&S.push(I.data);},m.start(250),y=Date.now(),m}catch(m){throw m instanceof N?m:new N("device-busy","\u5F55\u97F3\u5668\u542F\u52A8\u5931\u8D25",{cause:m})}}let v=e.amplitude?.intervalMs??gi,T=e.amplitude?.boost??hi,d=e.amplitude?.smoothing??yi,f=e.amplitude?.minVolume??bi;function C(){let m=Math.floor(r/1e3*ne),I=0;for(let E of i)I+=E.length;if(I>m){let E=m,D=[];for(let k of i){if(E<=0)break;k.length<=E?(D.push(k),E-=k.length):(D.push(k.slice(0,E)),E=0);}i.length=0,i.push(...D);}a=Math.min(a,r);let x=Math.max(0,Math.ceil(r/v));c.length>x&&(c.length=x);}async function p(){if(o!=="recording"){e.onMaxDuration?.();return}e.onMaxDuration?.(),o="paused";let m=A().then(()=>C());g=m;try{await m;}catch(I){console.warn("[im-browser] pauseAtMaxDuration settle failed",I);}}let b=setInterval(()=>{!u&&o==="recording"&&P()>=r&&(u=true,p());},250),M=null,_=null;try{let m=window.AudioContext??window.webkitAudioContext;if(m!==void 0){M=new m,M.state==="suspended"&&M.resume().catch(()=>{});let I=M.createMediaStreamSource(n),x=M.createAnalyser();x.fftSize=Ci,x.smoothingTimeConstant=d,I.connect(x);let E=new Uint8Array(x.frequencyBinCount),D=new Uint8Array(x.fftSize),k=new tn;_=setInterval(()=>{if(o!=="recording"||s===null)return;x.getByteFrequencyData(E),x.getByteTimeDomainData(D);let U=Yt({timeDomain:D,frequency:E,sampleRate:M.sampleRate,fftSize:x.fftSize,boost:T}),B=k.next(U),F=B<f?0:B;c.push(Math.round(F*255)),e.onAmplitude?.(F);},v);}}catch(m){console.warn("[im-browser] amplitude analyser setup failed",m);}function P(){let m=o==="recording"&&s!==null?Date.now()-y:0;return a+m}function w(){b!==null&&(clearInterval(b),b=null),_!==null&&(clearInterval(_),_=null),M?.close().catch(()=>{}),M=null;for(let m of n.getTracks())m.stop();}function A(){if(l!==null)return l;let m=s;return m===null?Promise.resolve():(s=null,l=(async()=>{await new Promise(E=>{if(m.state==="inactive"){E();return}let D=setTimeout(()=>{console.warn("[im-browser] recorder onstop timed out, settling with received chunks"),E();},pi);m.onstop=()=>{clearTimeout(D),E();},m.stop();});let I=new Blob(S,{type:m.mimeType||t||"audio/webm"});if(S=[],I.size===0)return;let x=await Pi(I,ne,M);x.length!==0&&(i.push(x),a+=x.length/ne*1e3);})().finally(()=>{l=null;}),l)}try{s=h();}catch(m){throw o="closed",w(),m}return {getState:()=>o,recordedMs:P,async pause(){o==="recording"&&(o="paused",await A(),(u||a>=r)&&C());},async resume(){o!=="paused"||u||(s=h(),o="recording");},async finish(){if(o==="closed")throw new N("empty-recording","\u5F55\u97F3\u4F1A\u8BDD\u5DF2\u7ED3\u675F");o="closed";let m=async()=>{try{g!==null?await g:await A(),C();}finally{w();}let I=Qt(i);if(I.length===0)throw new N("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let x=Dn(I,ne);if(x.length===0)throw new N("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let E=Math.min(c.length,Math.ceil(Tn/v));return {data:await Vt(x,ne),durationMs:Math.round(x.length/ne*1e3)+Rn,waveform:c.slice(E),filename:`AUDIO_${Date.now()}.ogg`,mimeType:"audio/ogg"}};try{return await rn(m(),fi,"\u5F55\u97F3\u5B9A\u7A3F\u8D85\u65F6")}catch(I){throw w(),I instanceof N?I:new N("encode-failed","\u5F55\u97F3\u5B9A\u7A3F\u5931\u8D25",{cause:I})}},cancel(){o="closed";let m=s;if(s=null,m!==null&&(m.ondataavailable=null,m.onstop=null,m.state!=="inactive"))try{m.stop();}catch{}i.length=0,w();},async previewWav(){g!==null?await g:l!==null&&await l,C();let m=Qt(i),I=Dn(m,ne);if(I.length===0)throw new N("empty-recording","\u6682\u65E0\u53EF\u8BD5\u542C\u7684\u5F55\u97F3\u5185\u5BB9");return {wavData:nn(kn(I),ne),durationMs:Math.round(I.length/ne*1e3)}}}}function Ie(e){let n=new Map;return {shouldRenegotiate(t,r,o){if(r===void 0)return true;if(o!==void 0&&!e(o,r))return false;let i=n.get(t);return i!==void 0&&e(i,r)?false:(n.set(t,r),true)},reset(t){n.delete(t);}}}function Xt(e,n){return e.length===n.length&&e.every((t,r)=>t===n[r])}var te=class extends Error{constructor(n,t){super(n,t),this.name="ChannelKeyError";}};function Zt(e){let n=e.trim(),t=n.replace(/-/g,"+").replace(/_/g,"/");if(t===""||!/^[A-Z0-9+/]*={0,2}$/i.test(t)||t.length%4===1)throw new te("channel secret_key \u4E0D\u662F\u5408\u6CD5 Base64");let r=t.replace(/=+$/,""),o=r+"=".repeat((4-r.length%4)%4),i;try{i=atob(o);}catch(l){throw new te("channel secret_key Base64 \u89E3\u7801\u5931\u8D25",{cause:l})}let a=Uint8Array.from(i,l=>l.charCodeAt(0)&255);if(a.length===0)throw new te("channel secret_key Base64 \u89E3\u7801\u7ED3\u679C\u4E3A\u7A7A");let c=new Uint8Array(16);c.set(a.subarray(0,c.length));let s=n.length===16&&/^[\x20-\x7E]+$/.test(n)?Uint8Array.from(n,l=>l.charCodeAt(0)):void 0;return {canonical:c,...s===void 0?{}:{legacyAscii:s},metadata:{channelKeyCharLength:n.length,decodedByteLength:a.length,padByteCount:Math.max(0,16-a.length),legacyAsciiCandidate:s!==void 0}}}function Si(e){let n=new Map,t=new Map,r=new Map,o=new Map,i=Ie(Xt);function a(p){return {canonical:p.canonical.slice(),...p.legacyAscii===void 0?{}:{legacyAscii:p.legacyAscii.slice()},metadata:{...p.metadata}}}function c(p){return [{strategy:"canonical-base64-pad",key:p.canonical.slice()},...p.legacyAscii===void 0?[]:[{strategy:"legacy-ascii16",key:p.legacyAscii.slice()}]]}function s(p){n.delete(p),t.delete(p),r.delete(p),o.set(p,(o.get(p)??0)+1);}function l(p){let b=o.get(p)??0,M=(async()=>{try{let _=await e.loadSecretKey(p);if(_===null||_.trim()==="")throw new te(`channel secret_key \u7F3A\u5931\uFF08channelId=${p}\uFF09`);let P=Zt(_);return (o.get(p)??0)===b&&n.set(p,a(P)),P}catch(_){let P=_ instanceof te?_:new te(`channel secret_key \u52A0\u8F7D\u5931\u8D25\uFF08channelId=${p}\uFF09`,{cause:_});throw e.onError?.(P.message,_),P}})().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 S(p,b){let M=p.trim();if(M===""){let P=new te("channel id \u4E0D\u80FD\u4E3A\u7A7A");return e.onError?.(P.message),Promise.reject(P)}if(b!==void 0){let P=g(M,b);if(P!==void 0)return P.then(a)}let _=n.get(M);return _!==void 0?Promise.resolve(a(_)):t.get(M)??l(M)}function y(p,b){let M=p.trim();if(M===""){let A=new te("channel id \u4E0D\u80FD\u4E3A\u7A7A");return e.onError?.(A.message),Promise.reject(A)}if(b!==void 0){let A=g(M,b);if(A!==void 0)return A.then(m=>m.canonical.slice())}let _=n.get(M);if(_!==void 0)return Promise.resolve(_.canonical.slice());let P=r.get(M);if(P!==void 0)return P;let w=(t.get(M)??l(M)).then(A=>A.canonical.slice()).finally(()=>{r.get(M)===w&&r.delete(M);});return r.set(M,w),w}function u(p){return n.get(p.trim())?.canonical.slice()??null}async function h(p,b){let M=await S(p,b);return c(M)}function v(p){let b=n.get(p.trim());return b===void 0?[]:c(b)}function T(p){let b=n.get(p.trim());return b===void 0?null:{...b.metadata}}function d(p,b){let M=p.trim();if(M==="")throw new te("channel id \u4E0D\u80FD\u4E3A\u7A7A");let _=Zt(b);s(M),i.reset(M),n.set(M,a(_));}function f(p){let b=p.trim();b!==""&&(s(b),i.reset(b));}function C(){let p=new Set([...n.keys(),...t.keys(),...r.keys(),...o.keys()]);for(let b of p)o.set(b,(o.get(b)??0)+1),i.reset(b);n.clear(),t.clear(),r.clear();}return {getChannelKey:y,getCachedChannelKey:u,getChannelKeyCandidates:h,getCachedChannelKeyCandidates:v,getCachedChannelKeyMetadata:T,primeChannelKey:d,clearChannelKey:f,clearAll:C}}function nr(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 Bn([e,n],[t,r,o,i]){let a=e>>>0,c=n>>>0,s=Math.imul(2654435769,16)>>>0;for(let l=0;l<16;l++)c=c-(Math.imul(a,16)+o^a+s^(a>>>5)+i)>>>0,a=a-(Math.imul(c,16)+t^c+s^(c>>>5)+r)>>>0,s=s-2654435769>>>0;return [a,c]}function On([e,n],[t,r,o,i]){let a=e>>>0,c=n>>>0,s=0;for(let l=0;l<16;l++)s=s+2654435769>>>0,a=a+(Math.imul(c,16)+t^c+s^(c>>>5)+r)>>>0,c=c+(Math.imul(a,16)+o^a+s^(a>>>5)+i)>>>0;return [a,c]}function De(e,n,t,r){let o=nr(n),i=new Uint8Array(e.length),a=Math.floor(e.length/8),c=r===void 0?a:Math.min(a,Math.floor(r/8)),s=new DataView(e.buffer,e.byteOffset,e.byteLength),l=new DataView(i.buffer);for(let S=0;S<c;S++){let y=S*8,[u,h]=t([s.getUint32(y,true),s.getUint32(y+4,true)],o);l.setUint32(y,u,true),l.setUint32(y+4,h,true);}let g=c*8;return g<e.length&&i.set(e.subarray(g),g),i}function Ue(e,n){return De(n,e,Bn)}function Be(e,n){return De(n,e,On)}function tr(e,n){return De(n,e,On,32)}function rr(e,n){return De(n,e,Bn,32)}var vi=1024*1024;function Mi(){let n=globalThis.scheduler;return typeof n?.yield=="function"?n.yield():new Promise(t=>{setTimeout(t,0);})}function er(e){if(e?.aborted)throw new DOMException("TEA \u5206\u5757\u5904\u7406\u5DF2\u53D6\u6D88","AbortError")}async function Nn(e,n,t,r=vi,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}`);nr(e);let i=t==="encrypt"?On:Bn,a=o.yieldToMain??Mi,c=n.size,s=[],l=0;for(;l<c;){er(o.signal);let g=Math.min(l+r,c),S=new Uint8Array(await n.slice(l,g).arrayBuffer());er(o.signal),s.push(De(S,e,i)),l=g,o.onProgress?.(l,c),l<c&&await a();}return new Blob(s)}var or=8,on=16;function Ai(e){let n=q.md.md5.create();return n.update(e,"utf8"),n.digest().toHex()}function ar(e){return new TextEncoder().encode(e)}function _i(e){let n=e.length;for(;n>0&&e[n-1]===0;)n-=1;return new TextDecoder().decode(e.subarray(0,n))}function xi(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 Ei(e){let n="";for(let t of e)n+=String.fromCharCode(t);return btoa(n)}function ki(e){let n=Math.ceil(e.length/or)*or;if(n===e.length)return e;let t=new Uint8Array(n);return t.set(e),t}function sr(e,n=Ai){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<on)throw new Error("collect TEA key: MD5 \u957F\u5EA6\u4E0D\u8DB3");let o=ar(r.slice(0,on).toUpperCase());if(o.length<on)throw new Error("collect TEA key: \u6D3E\u751F\u7ED3\u679C\u4E0D\u8DB3 16 \u5B57\u8282");return o.subarray(0,on)}function cr(e,n,t){return Ei(Be(sr(n,t),ki(ar(e))))}function Ti(e,n,t){return _i(Ue(sr(n,t),xi(e)))}function Ri(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function Kn(e){let n=e.trim();if(n===""||!n.startsWith("{"))return null;try{return Ri(JSON.parse(n))}catch{return null}}function Di(e){let n=e.trim(),t=n.indexOf("}");return t>=0?n.slice(0,t+1):n}function dr(e,n,t){let r=Kn(e);if(r!==null)return r;if(e.trim()===""||n.trim()==="")return null;try{let o=Ti(e,n,t);return Kn(o)??Kn(Di(o))}catch{return null}}var Ui="core";var Oe=class extends Error{code=502;constructor(n,t){super(`core JSON \u4F20\u8F93\u5931\u8D25\uFF1A${n||"unknown transport error"}`,t===void 0?void 0:{cause:t}),this.name="CoreJsonTransportError";}},V=class extends Error{businessCode;operation;constructor(n,t,r){super(`${n}\u5931\u8D25\uFF1Acode=${t}${r?` ${r}`:""}`),this.name="CoreJsonBusinessError",this.businessCode=t,this.operation=n;}};async function R(e,n,t,r){let o=r!==void 0&&"responseMode"in r&&r.responseMode==="strict",i;try{i=await e(n,{target:Ui,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 Oe(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 Oe(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 ur(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 Bi(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 Oi(e){let n=e.clientType,t=new Map,r=new Map,o=Ie((y,u)=>y===u),i=null,a=null;function c(y,u){e.onError?.(y,u);}function s(){if(i!==null)return Promise.resolve(i);if(a!==null)return a;let y=Promise.resolve().then(()=>e.crypto.generateTempKeyPair()).then(u=>(i=u,u)).finally(()=>{a===y&&(a=null);});return a=y,y}async function l(y){let u;try{u=await s();}catch(d){return c(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u751F\u6210\u4E34\u65F6 RSA \u5BC6\u94A5\u5931\u8D25\uFF08userId=${y}\uFF09`,d),null}let h;try{h=await ur(e.client,{publicKey:u.publicKeyBase64,clientType:n});}catch(d){return c(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u8BF7\u6C42\u5F02\u5E38\uFF08userId=${y}\uFF09`,d),null}if(h.data===null)return c(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u4E1A\u52A1\u5931\u8D25\uFF08userId=${y}\uFF0Ccode=${h.code}\uFF09`),null;let v=h.data.prv_key??h.data.prvKey??"",T=String(h.data.version??"").trim();if(v==="")return c(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u54CD\u5E94\u7F3A\u5C11 prv_key\uFF08userId=${y}\uFF09`),null;try{let d=e.crypto.rsaDecryptPkcs1({data:Bi(v),privateKey:u.privateKey}),f=new TextDecoder().decode(d).trim();if(f==="")return c(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u89E3\u51FA\u7684\u79C1\u94A5\u4E3A\u7A7A\uFF08userId=${y}\uFF09`),null;let C={privateKey:f,version:T};return t.set(y,C),C}catch(d){return c(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u4E34\u65F6\u79C1\u94A5\u89E3 prv_key \u5931\u8D25\uFF08userId=${y}\uFF09`,d),null}}function g(y,u){let h=y.trim();if(h==="")return Promise.resolve(null);if(u!==void 0){let f=r.get(h);if(f!==void 0)return f;o.shouldRenegotiate(h,u.staleKey,t.get(h)?.privateKey)&&t.delete(h);}let v=t.get(h);if(v!==void 0)return Promise.resolve(v);let T=r.get(h);if(T!==void 0)return T;let d=l(h).finally(()=>{r.get(h)===d&&r.delete(h);});return r.set(h,d),d}function S(y){return t.get(y.trim())??null}return {getUserPrivateKey:g,getCachedPrivateKey:S}}function lr(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 Ni(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 Ki(e){let n=e.clientType,t=new Map,r=new Map,o=new Map,i=Ie((u,h)=>u===h),a=null,c=null;function s(){if(a!==null)return Promise.resolve(a);if(c!==null)return c;let u=Promise.resolve().then(()=>e.crypto.generateTempKeyPair()).then(h=>(a=h,h)).finally(()=>{c===u&&(c=null);});return c=u,u}async function l(u){let h=o.get(u)??0,v;try{v=await s();}catch(b){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u751F\u6210\u4E34\u65F6 RSA \u5BC6\u94A5\u5931\u8D25\uFF08groupId=${u}\uFF09`,b),null}let T;try{T=await lr(e.client,{groupId:u,publicKey:v.publicKeyBase64,clientType:n});}catch(b){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u8BF7\u6C42\u5F02\u5E38\uFF08groupId=${u}\uFF09`,b),null}if(T.data===null)return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u4E1A\u52A1\u5931\u8D25\uFF08groupId=${u}\uFF0Ccode=${T.code}\uFF09`),null;let d=T.data,f=String(d.prv_key??d.prvKey??d.private_key??"").trim(),C=String(d.pub_key??d.pubKey??d.public_key??"").trim(),p=String(d.version??"").trim();if(f==="")return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u54CD\u5E94\u7F3A\u5C11 prv_key\uFF08groupId=${u}\uFF09`),null;try{let b=e.crypto.rsaDecryptPkcs1({data:Ni(f),privateKey:v.privateKey}),M=new TextDecoder().decode(b).trim();if(M==="")return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u89E3\u51FA\u7684\u7FA4\u79C1\u94A5\u4E3A\u7A7A\uFF08groupId=${u}\uFF09`),null;let _={privateKey:M,publicKey:C,version:p};return (o.get(u)??0)===h&&t.set(u,_),_}catch(b){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u4E34\u65F6\u79C1\u94A5\u89E3 prv_key \u5931\u8D25\uFF08groupId=${u}\uFF09`,b),null}}function g(u,h){let v=u.trim();if(v==="")return Promise.resolve(null);if(h!==void 0){let C=r.get(v);if(C!==void 0)return C;i.shouldRenegotiate(v,h.staleKey,t.get(v)?.privateKey)&&t.delete(v);}let T=t.get(v);if(T!==void 0)return Promise.resolve(T);let d=r.get(v);if(d!==void 0)return d;let f=l(v).finally(()=>{r.get(v)===f&&r.delete(v);});return r.set(v,f),f}function S(u){return t.get(u.trim())??null}function y(u){let h=u.trim();t.delete(h),r.delete(h),o.set(h,(o.get(h)??0)+1),i.reset(h);}return {getGroupKeys:g,getCachedGroupKeys:S,getCachedGroupKeyVersion:u=>t.get(u.trim())?.version??null,clearGroupKeys:y}}async function Ne(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 Gi(e){let n=e.clientType,t=new Map,r=new Map;async function o(a){try{let s=((await Ne(e.client,{userId:a,clientType:n}))?.public_key??"").trim();return s===""?(e.onError?.(`\u53D6\u5BF9\u7AEF\u516C\u94A5\uFF1A/user/info/other \u65E0 public_key\uFF08userId=${a}\uFF09`),null):(t.set(a,s),s)}catch(c){return e.onError?.(`\u53D6\u5BF9\u7AEF\u516C\u94A5\u8BF7\u6C42\u5F02\u5E38\uFF08userId=${a}\uFF09`,c),null}}function i(a,c){let s=a.trim();if(s==="")return Promise.resolve(null);c?.force===true&&t.delete(s);let l=t.get(s);if(l!==void 0)return Promise.resolve(l);let g=r.get(s);if(g!==void 0)return g;let S=o(s).finally(()=>{r.get(s)===S&&r.delete(s);});return r.set(s,S),S}return {getPeerPublicKey:i}}var me=16;function pr(e){let n="";for(let t of e)n+=String.fromCharCode(t);return n}function fr(e){let n=new Uint8Array(e.length);for(let t=0;t<e.length;t++)n[t]=e.charCodeAt(t)&255;return n}function mr(e){return e.replace(/(.{64})/g,`$1
|
|
1
|
+
import {qa as qa$1,C,F,f,g,i,S,T,W as W$1,X as X$1,Q as Q$1,R as R$1,G,H as H$1,B,E,k,e,D,I,K as K$1,M,L as L$1,N as N$1,O as O$1,P,ca as ca$1,da as da$1,ob,Ba as Ba$1,Aa as Aa$1,za as za$1,aa as aa$1,ea as ea$1,_,ya as ya$1,U,V as V$1,wa as wa$1,va as va$1,Y as Y$1,Z as Z$1}from'./chunk-W5SQGPRQ.js';import*as q from'node-forge';import {deleteDB,openDB}from'idb';function Jo(e,n=async t=>{let{createBrowserApiProtocolClient:r}=await import('./browser-YLMJKRLM.js');return r(t)}){let t=null;function r(){if(t!==null)return t;let o=n(e);return t=o,o.catch(()=>{t===o&&(t=null);}),o}return async(o,i)=>(await r())(o,i)}var H=class extends Error{code;constructor(n,t,r){super(t??n,r),this.name="MediaTransferError",this.code=n;}};function jo(e){return e instanceof H?e.code:void 0}var Vo=3600*1e3,qo=300*1e3;function ue(...e){for(let n of e){if(typeof n!="string"&&typeof n!="number")continue;let t=String(n).trim();if(t!=="")return t}return ""}function zo(e){let n=Number(e);if(!(!Number.isFinite(n)||n<=0))return n>1e12?n/1e3:n}function Wo(e){let n=e.replace(/\/+$/,"");return n===""?"":/^https?:\/\//i.test(n)?n:`https://${n}`}function Ft(e){if(e===null||typeof e!="object")throw new H("credentials-invalid","S3 \u4E0A\u4F20\u51ED\u8BC1\u683C\u5F0F\u65E0\u6548\uFF1A\u56DE\u5305\u4E0D\u662F\u5BF9\u8C61");let n=e,t=ue(n.access_key_id,n.accessKeyId),r=ue(n.secret_key,n.secretKey,n.secretAccessKey),o=ue(n.session_token,n.sessionToken).replace(/\s+/g,""),i=ue(n.bucket),a=ue(n.region),c=Wo(ue(n.dns_point,n.dnsPoint)),s=[t===""?"access_key_id":"",r===""?"secret_key":"",o===""?"session_token":"",i===""?"bucket":"",a===""?"region":"",c===""?"dns_point":""].filter(y=>y!=="");if(s.length>0)throw new H("credentials-invalid",`S3 \u4E0A\u4F20\u51ED\u8BC1\u683C\u5F0F\u65E0\u6548\uFF1A\u7F3A\u5C11 ${s.join("\u3001")}`);let l=zo(n.expiration??n.expiresAtSeconds),g=ue(n.key_prefix,n.keyPrefix),S=ue(n.identity_id,n.identityId);return {accessKeyId:t,secretAccessKey:r,sessionToken:o,bucket:i,region:a,dnsPoint:c,...l===void 0?{}:{expiresAtSeconds:l},...g===""?{}:{keyPrefix:g},...S===""?{}:{identityId:S}}}function Yo(e,n){if(n-e.fetchedAtMs>=Vo)return false;let{expiresAtSeconds:t}=e.credential;return t===void 0?true:t*1e3-qo>n}function $t(e){let n=new Map,t=new Map;async function r(o,i){let a;try{a=await e({bucket:o,forceRefresh:i});}catch(s){let l=s instanceof Error?s.message:String(s);throw new H("credentials-request-failed",`S3 \u4E0A\u4F20\u51ED\u8BC1\u83B7\u53D6\u5931\u8D25\uFF1Abucket=${o}\uFF1B\u539F\u56E0\uFF1A${l}`,{cause:s})}let c=Ft(a);return n.set(o,{credential:c,fetchedAtMs:Date.now()}),c}return {resolve(o,i){if(e===void 0)return Promise.reject(new H("credentials-provider-missing","media upload: \u5BBF\u4E3B\u672A\u6CE8\u5165 getUploadCredentials\uFF0C\u65E0\u6CD5\u7533\u8BF7 S3 \u4E34\u65F6\u51ED\u8BC1"));let a=i?.forceRefresh===true,c=a?void 0:n.get(o);if(c!==void 0&&Yo(c,Date.now()))return Promise.resolve(c.credential);n.delete(o);let s=t.get(o);if(s!==void 0)return s;let l=r(o,a).finally(()=>{t.get(o)===l&&t.delete(o);});return t.set(o,l),l}}}function Qo(){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 en(e){return e instanceof N?e.code:void 0}function Jt(e){switch(e instanceof DOMException||e instanceof Error?e.name:""){case "NotAllowedError":case "SecurityError":case "PermissionDeniedError":return new N("permission-denied","\u9EA6\u514B\u98CE\u6743\u9650\u88AB\u62D2\u7EDD",{cause:e});case "NotFoundError":case "DevicesNotFoundError":return new N("device-not-found","\u672A\u627E\u5230\u53EF\u7528\u9EA6\u514B\u98CE",{cause:e});case "NotReadableError":case "TrackStartError":case "AbortError":return new N("device-busy","\u9EA6\u514B\u98CE\u88AB\u5360\u7528\u6216\u542F\u52A8\u5931\u8D25",{cause:e});default:return new N("device-busy",e instanceof Error?e.message:"\u9EA6\u514B\u98CE\u542F\u52A8\u5931\u8D25",{cause:e})}}var ne=16e3,Xo=new URL("./speex-runtime.txt",import.meta.url).href,xn=null,Zo=15e3;async function ei(){document.querySelector('script[data-speex-runtime="true"]')?.remove();let e=new AbortController,n=setTimeout(()=>e.abort(new Error("Speex runtime fetch timeout")),Zo),t;try{t=await fetch(Xo,{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 En(){let e=typeof window>"u"?void 0:window;return e?.__speexInH5!==void 0?e.__speexInH5:(xn??=(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 ei(),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 xn=null,n instanceof N?n:new N("codec-unavailable","Speex \u8FD0\u884C\u65F6\u52A0\u8F7D\u5931\u8D25",{cause:n})}),xn)}function jt(){En().catch(()=>{});}function le(e,n,t){for(let r=0;r<t.length;r+=1)e.setUint8(n+r,t.charCodeAt(r));}function ni(e,n){let r=new ArrayBuffer(44+e.length*2),o=new DataView(r);le(o,0,"RIFF"),o.setUint32(4,36+e.length*2,true),le(o,8,"WAVE"),le(o,12,"fmt "),o.setUint32(16,16,true),o.setUint16(20,1,true),o.setUint16(22,1,true),o.setUint32(24,n,true),o.setUint32(28,n*2,true),o.setUint16(32,2,true),o.setUint16(34,16,true),le(o,36,"data"),o.setUint32(40,e.length*2,true);let i=44;for(let a=0;a<e.length;a+=1){let c=Math.max(-1,Math.min(1,e[a]??0));o.setInt16(i,c<0?c*32768:c*32767,true),i+=2;}return r}function kn(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 ti=40,Tn=120,ri=40,Rn=80;function oi(e,n){let t=Math.min(Math.floor(n*ti/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 Dn(e,n){if(e.length===0)return e;let t=Math.min(Math.floor(n*Tn/1e3),Math.max(0,e.length-1)),r=t>0?e.subarray(t):e,o=new Float32Array(r),i=Math.min(Math.floor(n*ri/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 nn(e,n){let r=new ArrayBuffer(44+e.length*2),o=new DataView(r);return le(o,0,"RIFF"),o.setUint32(4,36+e.length*2,true),le(o,8,"WAVE"),le(o,12,"fmt "),o.setUint32(16,16,true),o.setUint16(20,1,true),o.setUint16(22,1,true),o.setUint32(24,n,true),o.setUint32(28,n*2,true),o.setUint16(32,2,true),o.setUint16(34,16,true),le(o,36,"data"),o.setUint32(40,e.length*2,true),new Int16Array(r,44).set(e),new Uint8Array(r)}function ii(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 ai(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 Vt(e,n){let t=await En(),r=Math.floor(n*Rn/1e3),o=new Float32Array(r+e.length);o.set(e,r);let i=ni(o,n);try{return ii(t.encodeFile(i))}catch(a){throw new N("encode-failed","\u8BED\u97F3\u7F16\u7801\u5931\u8D25",{cause:a})}}async function qt(e){let n=await En();try{let[t,r]=n.decodeFile(ai(e));if(t.length===0)throw new Error("decoded empty pcm");let o=oi(kn(t),r.rate>0?r.rate:ne),i=r.rate>0?r.rate:ne;return {samples:o,sampleRate:i,durationMs:Math.round(o.length/i*1e3)}}catch(t){throw t instanceof N?t:new N("decode-failed","\u8BED\u97F3\u89E3\u7801\u5931\u8D25",{cause:t})}}async function zt(e){let n=await qt(e);return {wavData:nn(n.samples,n.sampleRate),durationMs:n.durationMs}}var si=.5,ci=2;function Wt(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,si),ci)}function di(e={}){let n=e.cacheMax??8,t={activeId:"",isPlaying:false,loadingId:"",progress:0,currentTimeMs:0,errorIds:new Set,playbackRate:e.playbackRate===void 0?1:Wt(e.playbackRate)},r=new Set;function o(){for(let m of r)m(t);}let i=null,a=new Map,c=0,s=false,l=false;function g(m){let I=a.get(m);return I!==void 0&&(a.delete(m),a.set(m,I)),I}function S(m,I){if(s)return URL.revokeObjectURL(I.url),I;let x=a.get(m);if(x!==void 0)return URL.revokeObjectURL(I.url),a.delete(m),a.set(m,x),x;for(a.set(m,I);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 I}function y(m){m.paused||m.pause(),m.removeAttribute("src");try{m.load();}catch{}}function u(m,I){return !s&&m===c&&t.activeId===I}function h(m){m.defaultPlaybackRate=t.playbackRate,m.playbackRate=t.playbackRate;}function v(){if(i!==null)return i;let m=new Audio;return m.preload="auto",h(m),m.addEventListener("timeupdate",()=>{t.activeId!==""&&(t.currentTimeMs=m.currentTime*1e3,t.progress=m.duration>0?Math.min(1,m.currentTime/m.duration):0,o());}),m.addEventListener("ended",()=>{T(),y(m),o();}),m.addEventListener("pause",()=>{t.activeId!==""&&(t.isPlaying=false,o());}),i=m,m}function T(){t.activeId="",t.isPlaying=false,t.progress=0,t.currentTimeMs=0;}function d(){c+=1,l=false,t.loadingId="",T(),i!==null&&y(i),o();}function f(m){t.errorIds=new Set([...t.errorIds,m]);}function C(m){if(!t.errorIds.has(m))return;let I=new Set(t.errorIds);I.delete(m),t.errorIds=I;}async function p(m,I){let x=g(m);if(x!==void 0)return {entry:x};let E;try{E=await I();}catch(D){return {entry:null,error:{code:en(D),cause:D}}}if(E===null)return {entry:null};try{let{wavData:D,durationMs:k}=await zt(E),U={url:URL.createObjectURL(new Blob([D],{type:"audio/wav"})),durationMs:k};return {entry:S(m,U)}}catch(D){return {entry:null,error:{code:en(D),cause:D}}}}async function b(m,I){if(s)return;let x=v();if(C(m),t.activeId===m){if(t.isPlaying){x.pause();return}let k=++c;try{await x.play();}catch{if(!u(k,m))return;f(m),o();return}if(!u(k,m))return;t.isPlaying=true,o(),I.onPlayStart?.();return}if(t.loadingId===m)return;d();let E=++c;t.loadingId=m,o();let D=await p(m,I.load);if(E===c){if(t.loadingId="",D.entry===null){f(m),o(),D.error!==void 0&&I.onDecodeError?.(D.error.code,D.error.cause);return}x.src=D.entry.url,h(x),t.activeId=m,t.progress=0,t.currentTimeMs=0,o();try{await x.play();}catch(k){if(!u(E,m))return;T(),y(x),f(m),o(),I.onDecodeError?.(void 0,k);return}u(E,m)&&(t.isPlaying=true,o(),I.onPlayStart?.());}}function M(m,I){i===null||t.activeId!==m||!Number.isFinite(i.duration)||i.duration<=0||(i.currentTime=Math.min(Math.max(I,0),.999)*i.duration);}function _(m){i===null||t.activeId!==m||t.isPlaying&&(l=true,i.pause());}function P(m){if(i===null||t.activeId!==m||!l)return;l=false;let I=++c;i.play().then(()=>{u(I,m)&&(t.isPlaying=true,o());}).catch(()=>{u(I,m)&&(f(m),o());});}function w(m){let I=Wt(m);I!==t.playbackRate&&(t.playbackRate=I,i!==null&&h(i),o());}function A(){if(!s){s=true,d();for(let m of a.values())URL.revokeObjectURL(m.url);a.clear(),r.clear(),i=null;}}return {getState:()=>t,subscribe:m=>(r.add(m),()=>r.delete(m)),toggle:b,seek:M,beginScrub:_,endScrub:P,setPlaybackRate:w,stop:d,dispose:A}}function ui(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 li(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 Yt(e){let n=ui(e.timeDomain),t=li(e.frequency,e.sampleRate,e.fftSize),r=n*.55+t*.45;return Math.min(1,r*e.boost)**.72}var tn=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 pi=5e3,Un=15e3,fi=25e3;function rn(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 mi(){return {channelCount:1,echoCancellation:true,noiseSuppression:true,autoGainControl:true}}var gi=50,yi=.12,hi=2.6,bi=.06,Ci=256;function wi(){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 Pi(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 rn(i.resume(),Un,"audioContext.resume timeout").catch(()=>{});let c=await rn(i.decodeAudioData(await e.arrayBuffer()),Un,"decodeAudioData timeout"),s=Math.max(1,Math.ceil(c.duration*n)),l=new o(1,s,n),g=l.createBufferSource();return g.buffer=c,g.connect(l.destination),g.start(0),(await rn(l.startRendering(),Un,"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 Qt(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 Ii(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:mi()});}catch(m){throw Jt(m)}}jt();let t=wi(),r=e.maxDurationMs??6e4,o="recording",i=[],a=0,c=[],s=null,l=null,g=null,S=[],y=0,u=false;function h(){try{let m;try{m=t!==""?new MediaRecorder(n,{mimeType:t}):new MediaRecorder(n);}catch{m=new MediaRecorder(n);}return S=[],m.ondataavailable=I=>{I.data.size>0&&S.push(I.data);},m.start(250),y=Date.now(),m}catch(m){throw m instanceof N?m:new N("device-busy","\u5F55\u97F3\u5668\u542F\u52A8\u5931\u8D25",{cause:m})}}let v=e.amplitude?.intervalMs??gi,T=e.amplitude?.boost??hi,d=e.amplitude?.smoothing??yi,f=e.amplitude?.minVolume??bi;function C(){let m=Math.floor(r/1e3*ne),I=0;for(let E of i)I+=E.length;if(I>m){let E=m,D=[];for(let k of i){if(E<=0)break;k.length<=E?(D.push(k),E-=k.length):(D.push(k.slice(0,E)),E=0);}i.length=0,i.push(...D);}a=Math.min(a,r);let x=Math.max(0,Math.ceil(r/v));c.length>x&&(c.length=x);}async function p(){if(o!=="recording"){e.onMaxDuration?.();return}e.onMaxDuration?.(),o="paused";let m=A().then(()=>C());g=m;try{await m;}catch(I){console.warn("[im-browser] pauseAtMaxDuration settle failed",I);}}let b=setInterval(()=>{!u&&o==="recording"&&P()>=r&&(u=true,p());},250),M=null,_=null;try{let m=window.AudioContext??window.webkitAudioContext;if(m!==void 0){M=new m,M.state==="suspended"&&M.resume().catch(()=>{});let I=M.createMediaStreamSource(n),x=M.createAnalyser();x.fftSize=Ci,x.smoothingTimeConstant=d,I.connect(x);let E=new Uint8Array(x.frequencyBinCount),D=new Uint8Array(x.fftSize),k=new tn;_=setInterval(()=>{if(o!=="recording"||s===null)return;x.getByteFrequencyData(E),x.getByteTimeDomainData(D);let U=Yt({timeDomain:D,frequency:E,sampleRate:M.sampleRate,fftSize:x.fftSize,boost:T}),B=k.next(U),F=B<f?0:B;c.push(Math.round(F*255)),e.onAmplitude?.(F);},v);}}catch(m){console.warn("[im-browser] amplitude analyser setup failed",m);}function P(){let m=o==="recording"&&s!==null?Date.now()-y:0;return a+m}function w(){b!==null&&(clearInterval(b),b=null),_!==null&&(clearInterval(_),_=null),M?.close().catch(()=>{}),M=null;for(let m of n.getTracks())m.stop();}function A(){if(l!==null)return l;let m=s;return m===null?Promise.resolve():(s=null,l=(async()=>{await new Promise(E=>{if(m.state==="inactive"){E();return}let D=setTimeout(()=>{console.warn("[im-browser] recorder onstop timed out, settling with received chunks"),E();},pi);m.onstop=()=>{clearTimeout(D),E();},m.stop();});let I=new Blob(S,{type:m.mimeType||t||"audio/webm"});if(S=[],I.size===0)return;let x=await Pi(I,ne,M);x.length!==0&&(i.push(x),a+=x.length/ne*1e3);})().finally(()=>{l=null;}),l)}try{s=h();}catch(m){throw o="closed",w(),m}return {getState:()=>o,recordedMs:P,async pause(){o==="recording"&&(o="paused",await A(),(u||a>=r)&&C());},async resume(){o!=="paused"||u||(s=h(),o="recording");},async finish(){if(o==="closed")throw new N("empty-recording","\u5F55\u97F3\u4F1A\u8BDD\u5DF2\u7ED3\u675F");o="closed";let m=async()=>{try{g!==null?await g:await A(),C();}finally{w();}let I=Qt(i);if(I.length===0)throw new N("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let x=Dn(I,ne);if(x.length===0)throw new N("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let E=Math.min(c.length,Math.ceil(Tn/v));return {data:await Vt(x,ne),durationMs:Math.round(x.length/ne*1e3)+Rn,waveform:c.slice(E),filename:`AUDIO_${Date.now()}.ogg`,mimeType:"audio/ogg"}};try{return await rn(m(),fi,"\u5F55\u97F3\u5B9A\u7A3F\u8D85\u65F6")}catch(I){throw w(),I instanceof N?I:new N("encode-failed","\u5F55\u97F3\u5B9A\u7A3F\u5931\u8D25",{cause:I})}},cancel(){o="closed";let m=s;if(s=null,m!==null&&(m.ondataavailable=null,m.onstop=null,m.state!=="inactive"))try{m.stop();}catch{}i.length=0,w();},async previewWav(){g!==null?await g:l!==null&&await l,C();let m=Qt(i),I=Dn(m,ne);if(I.length===0)throw new N("empty-recording","\u6682\u65E0\u53EF\u8BD5\u542C\u7684\u5F55\u97F3\u5185\u5BB9");return {wavData:nn(kn(I),ne),durationMs:Math.round(I.length/ne*1e3)}}}}function Ie(e){let n=new Map;return {shouldRenegotiate(t,r,o){if(r===void 0)return true;if(o!==void 0&&!e(o,r))return false;let i=n.get(t);return i!==void 0&&e(i,r)?false:(n.set(t,r),true)},reset(t){n.delete(t);}}}function Xt(e,n){return e.length===n.length&&e.every((t,r)=>t===n[r])}var te=class extends Error{constructor(n,t){super(n,t),this.name="ChannelKeyError";}};function Zt(e){let n=e.trim(),t=n.replace(/-/g,"+").replace(/_/g,"/");if(t===""||!/^[A-Z0-9+/]*={0,2}$/i.test(t)||t.length%4===1)throw new te("channel secret_key \u4E0D\u662F\u5408\u6CD5 Base64");let r=t.replace(/=+$/,""),o=r+"=".repeat((4-r.length%4)%4),i;try{i=atob(o);}catch(l){throw new te("channel secret_key Base64 \u89E3\u7801\u5931\u8D25",{cause:l})}let a=Uint8Array.from(i,l=>l.charCodeAt(0)&255);if(a.length===0)throw new te("channel secret_key Base64 \u89E3\u7801\u7ED3\u679C\u4E3A\u7A7A");let c=new Uint8Array(16);c.set(a.subarray(0,c.length));let s=n.length===16&&/^[\x20-\x7E]+$/.test(n)?Uint8Array.from(n,l=>l.charCodeAt(0)):void 0;return {canonical:c,...s===void 0?{}:{legacyAscii:s},metadata:{channelKeyCharLength:n.length,decodedByteLength:a.length,padByteCount:Math.max(0,16-a.length),legacyAsciiCandidate:s!==void 0}}}function Si(e){let n=new Map,t=new Map,r=new Map,o=new Map,i=Ie(Xt);function a(p){return {canonical:p.canonical.slice(),...p.legacyAscii===void 0?{}:{legacyAscii:p.legacyAscii.slice()},metadata:{...p.metadata}}}function c(p){return [{strategy:"canonical-base64-pad",key:p.canonical.slice()},...p.legacyAscii===void 0?[]:[{strategy:"legacy-ascii16",key:p.legacyAscii.slice()}]]}function s(p){n.delete(p),t.delete(p),r.delete(p),o.set(p,(o.get(p)??0)+1);}function l(p){let b=o.get(p)??0,M=(async()=>{try{let _=await e.loadSecretKey(p);if(_===null||_.trim()==="")throw new te(`channel secret_key \u7F3A\u5931\uFF08channelId=${p}\uFF09`);let P=Zt(_);return (o.get(p)??0)===b&&n.set(p,a(P)),P}catch(_){let P=_ instanceof te?_:new te(`channel secret_key \u52A0\u8F7D\u5931\u8D25\uFF08channelId=${p}\uFF09`,{cause:_});throw e.onError?.(P.message,_),P}})().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 S(p,b){let M=p.trim();if(M===""){let P=new te("channel id \u4E0D\u80FD\u4E3A\u7A7A");return e.onError?.(P.message),Promise.reject(P)}if(b!==void 0){let P=g(M,b);if(P!==void 0)return P.then(a)}let _=n.get(M);return _!==void 0?Promise.resolve(a(_)):t.get(M)??l(M)}function y(p,b){let M=p.trim();if(M===""){let A=new te("channel id \u4E0D\u80FD\u4E3A\u7A7A");return e.onError?.(A.message),Promise.reject(A)}if(b!==void 0){let A=g(M,b);if(A!==void 0)return A.then(m=>m.canonical.slice())}let _=n.get(M);if(_!==void 0)return Promise.resolve(_.canonical.slice());let P=r.get(M);if(P!==void 0)return P;let w=(t.get(M)??l(M)).then(A=>A.canonical.slice()).finally(()=>{r.get(M)===w&&r.delete(M);});return r.set(M,w),w}function u(p){return n.get(p.trim())?.canonical.slice()??null}async function h(p,b){let M=await S(p,b);return c(M)}function v(p){let b=n.get(p.trim());return b===void 0?[]:c(b)}function T(p){let b=n.get(p.trim());return b===void 0?null:{...b.metadata}}function d(p,b){let M=p.trim();if(M==="")throw new te("channel id \u4E0D\u80FD\u4E3A\u7A7A");let _=Zt(b);s(M),i.reset(M),n.set(M,a(_));}function f(p){let b=p.trim();b!==""&&(s(b),i.reset(b));}function C(){let p=new Set([...n.keys(),...t.keys(),...r.keys(),...o.keys()]);for(let b of p)o.set(b,(o.get(b)??0)+1),i.reset(b);n.clear(),t.clear(),r.clear();}return {getChannelKey:y,getCachedChannelKey:u,getChannelKeyCandidates:h,getCachedChannelKeyCandidates:v,getCachedChannelKeyMetadata:T,primeChannelKey:d,clearChannelKey:f,clearAll:C}}function nr(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 Bn([e,n],[t,r,o,i]){let a=e>>>0,c=n>>>0,s=Math.imul(2654435769,16)>>>0;for(let l=0;l<16;l++)c=c-(Math.imul(a,16)+o^a+s^(a>>>5)+i)>>>0,a=a-(Math.imul(c,16)+t^c+s^(c>>>5)+r)>>>0,s=s-2654435769>>>0;return [a,c]}function On([e,n],[t,r,o,i]){let a=e>>>0,c=n>>>0,s=0;for(let l=0;l<16;l++)s=s+2654435769>>>0,a=a+(Math.imul(c,16)+t^c+s^(c>>>5)+r)>>>0,c=c+(Math.imul(a,16)+o^a+s^(a>>>5)+i)>>>0;return [a,c]}function De(e,n,t,r){let o=nr(n),i=new Uint8Array(e.length),a=Math.floor(e.length/8),c=r===void 0?a:Math.min(a,Math.floor(r/8)),s=new DataView(e.buffer,e.byteOffset,e.byteLength),l=new DataView(i.buffer);for(let S=0;S<c;S++){let y=S*8,[u,h]=t([s.getUint32(y,true),s.getUint32(y+4,true)],o);l.setUint32(y,u,true),l.setUint32(y+4,h,true);}let g=c*8;return g<e.length&&i.set(e.subarray(g),g),i}function Ue(e,n){return De(n,e,Bn)}function Be(e,n){return De(n,e,On)}function tr(e,n){return De(n,e,On,32)}function rr(e,n){return De(n,e,Bn,32)}var vi=1024*1024;function Mi(){let n=globalThis.scheduler;return typeof n?.yield=="function"?n.yield():new Promise(t=>{setTimeout(t,0);})}function er(e){if(e?.aborted)throw new DOMException("TEA \u5206\u5757\u5904\u7406\u5DF2\u53D6\u6D88","AbortError")}async function Nn(e,n,t,r=vi,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}`);nr(e);let i=t==="encrypt"?On:Bn,a=o.yieldToMain??Mi,c=n.size,s=[],l=0;for(;l<c;){er(o.signal);let g=Math.min(l+r,c),S=new Uint8Array(await n.slice(l,g).arrayBuffer());er(o.signal),s.push(De(S,e,i)),l=g,o.onProgress?.(l,c),l<c&&await a();}return new Blob(s)}var or=8,on=16;function Ai(e){let n=q.md.md5.create();return n.update(e,"utf8"),n.digest().toHex()}function ar(e){return new TextEncoder().encode(e)}function _i(e){let n=e.length;for(;n>0&&e[n-1]===0;)n-=1;return new TextDecoder().decode(e.subarray(0,n))}function xi(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 Ei(e){let n="";for(let t of e)n+=String.fromCharCode(t);return btoa(n)}function ki(e){let n=Math.ceil(e.length/or)*or;if(n===e.length)return e;let t=new Uint8Array(n);return t.set(e),t}function sr(e,n=Ai){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<on)throw new Error("collect TEA key: MD5 \u957F\u5EA6\u4E0D\u8DB3");let o=ar(r.slice(0,on).toUpperCase());if(o.length<on)throw new Error("collect TEA key: \u6D3E\u751F\u7ED3\u679C\u4E0D\u8DB3 16 \u5B57\u8282");return o.subarray(0,on)}function cr(e,n,t){return Ei(Be(sr(n,t),ki(ar(e))))}function Ti(e,n,t){return _i(Ue(sr(n,t),xi(e)))}function Ri(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function Kn(e){let n=e.trim();if(n===""||!n.startsWith("{"))return null;try{return Ri(JSON.parse(n))}catch{return null}}function Di(e){let n=e.trim(),t=n.indexOf("}");return t>=0?n.slice(0,t+1):n}function dr(e,n,t){let r=Kn(e);if(r!==null)return r;if(e.trim()===""||n.trim()==="")return null;try{let o=Ti(e,n,t);return Kn(o)??Kn(Di(o))}catch{return null}}var Ui="core";var Oe=class extends Error{code=502;constructor(n,t){super(`core JSON \u4F20\u8F93\u5931\u8D25\uFF1A${n||"unknown transport error"}`,t===void 0?void 0:{cause:t}),this.name="CoreJsonTransportError";}},V=class extends Error{businessCode;operation;constructor(n,t,r){super(`${n}\u5931\u8D25\uFF1Acode=${t}${r?` ${r}`:""}`),this.name="CoreJsonBusinessError",this.businessCode=t,this.operation=n;}};async function R(e,n,t,r){let o=r!==void 0&&"responseMode"in r&&r.responseMode==="strict",i;try{i=await e(n,{target:Ui,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 Oe(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 Oe(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 ur(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 Bi(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 Oi(e){let n=e.clientType,t=new Map,r=new Map,o=Ie((y,u)=>y===u),i=null,a=null;function c(y,u){e.onError?.(y,u);}function s(){if(i!==null)return Promise.resolve(i);if(a!==null)return a;let y=Promise.resolve().then(()=>e.crypto.generateTempKeyPair()).then(u=>(i=u,u)).finally(()=>{a===y&&(a=null);});return a=y,y}async function l(y){let u;try{u=await s();}catch(d){return c(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u751F\u6210\u4E34\u65F6 RSA \u5BC6\u94A5\u5931\u8D25\uFF08userId=${y}\uFF09`,d),null}let h;try{h=await ur(e.client,{publicKey:u.publicKeyBase64,clientType:n});}catch(d){return c(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u8BF7\u6C42\u5F02\u5E38\uFF08userId=${y}\uFF09`,d),null}if(h.data===null)return c(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u4E1A\u52A1\u5931\u8D25\uFF08userId=${y}\uFF0Ccode=${h.code}\uFF09`),null;let v=h.data.prv_key??h.data.prvKey??"",T=String(h.data.version??"").trim();if(v==="")return c(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u54CD\u5E94\u7F3A\u5C11 prv_key\uFF08userId=${y}\uFF09`),null;try{let d=e.crypto.rsaDecryptPkcs1({data:Bi(v),privateKey:u.privateKey}),f=new TextDecoder().decode(d).trim();if(f==="")return c(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u89E3\u51FA\u7684\u79C1\u94A5\u4E3A\u7A7A\uFF08userId=${y}\uFF09`),null;let C={privateKey:f,version:T};return t.set(y,C),C}catch(d){return c(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u4E34\u65F6\u79C1\u94A5\u89E3 prv_key \u5931\u8D25\uFF08userId=${y}\uFF09`,d),null}}function g(y,u){let h=y.trim();if(h==="")return Promise.resolve(null);if(u!==void 0){let f=r.get(h);if(f!==void 0)return f;o.shouldRenegotiate(h,u.staleKey,t.get(h)?.privateKey)&&t.delete(h);}let v=t.get(h);if(v!==void 0)return Promise.resolve(v);let T=r.get(h);if(T!==void 0)return T;let d=l(h).finally(()=>{r.get(h)===d&&r.delete(h);});return r.set(h,d),d}function S(y){return t.get(y.trim())??null}return {getUserPrivateKey:g,getCachedPrivateKey:S}}function lr(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 Ni(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 Ki(e){let n=e.clientType,t=new Map,r=new Map,o=new Map,i=Ie((u,h)=>u===h),a=null,c=null;function s(){if(a!==null)return Promise.resolve(a);if(c!==null)return c;let u=Promise.resolve().then(()=>e.crypto.generateTempKeyPair()).then(h=>(a=h,h)).finally(()=>{c===u&&(c=null);});return c=u,u}async function l(u){let h=o.get(u)??0,v;try{v=await s();}catch(b){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u751F\u6210\u4E34\u65F6 RSA \u5BC6\u94A5\u5931\u8D25\uFF08groupId=${u}\uFF09`,b),null}let T;try{T=await lr(e.client,{groupId:u,publicKey:v.publicKeyBase64,clientType:n});}catch(b){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u8BF7\u6C42\u5F02\u5E38\uFF08groupId=${u}\uFF09`,b),null}if(T.data===null)return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u4E1A\u52A1\u5931\u8D25\uFF08groupId=${u}\uFF0Ccode=${T.code}\uFF09`),null;let d=T.data,f=String(d.prv_key??d.prvKey??d.private_key??"").trim(),C=String(d.pub_key??d.pubKey??d.public_key??"").trim(),p=String(d.version??"").trim();if(f==="")return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u54CD\u5E94\u7F3A\u5C11 prv_key\uFF08groupId=${u}\uFF09`),null;try{let b=e.crypto.rsaDecryptPkcs1({data:Ni(f),privateKey:v.privateKey}),M=new TextDecoder().decode(b).trim();if(M==="")return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u89E3\u51FA\u7684\u7FA4\u79C1\u94A5\u4E3A\u7A7A\uFF08groupId=${u}\uFF09`),null;let _={privateKey:M,publicKey:C,version:p};return (o.get(u)??0)===h&&t.set(u,_),_}catch(b){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u4E34\u65F6\u79C1\u94A5\u89E3 prv_key \u5931\u8D25\uFF08groupId=${u}\uFF09`,b),null}}function g(u,h){let v=u.trim();if(v==="")return Promise.resolve(null);if(h!==void 0){let C=r.get(v);if(C!==void 0)return C;i.shouldRenegotiate(v,h.staleKey,t.get(v)?.privateKey)&&t.delete(v);}let T=t.get(v);if(T!==void 0)return Promise.resolve(T);let d=r.get(v);if(d!==void 0)return d;let f=l(v).finally(()=>{r.get(v)===f&&r.delete(v);});return r.set(v,f),f}function S(u){return t.get(u.trim())??null}function y(u){let h=u.trim();t.delete(h),r.delete(h),o.set(h,(o.get(h)??0)+1),i.reset(h);}return {getGroupKeys:g,getCachedGroupKeys:S,getCachedGroupKeyVersion:u=>t.get(u.trim())?.version??null,clearGroupKeys:y}}async function Ne(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 Gi(e){let n=e.clientType,t=new Map,r=new Map;async function o(a){try{let s=((await Ne(e.client,{userId:a,clientType:n}))?.public_key??"").trim();return s===""?(e.onError?.(`\u53D6\u5BF9\u7AEF\u516C\u94A5\uFF1A/user/info/other \u65E0 public_key\uFF08userId=${a}\uFF09`),null):(t.set(a,s),s)}catch(c){return e.onError?.(`\u53D6\u5BF9\u7AEF\u516C\u94A5\u8BF7\u6C42\u5F02\u5E38\uFF08userId=${a}\uFF09`,c),null}}function i(a,c){let s=a.trim();if(s==="")return Promise.resolve(null);c?.force===true&&t.delete(s);let l=t.get(s);if(l!==void 0)return Promise.resolve(l);let g=r.get(s);if(g!==void 0)return g;let S=o(s).finally(()=>{r.get(s)===S&&r.delete(s);});return r.set(s,S),S}return {getPeerPublicKey:i}}var me=16;function pr(e){let n="";for(let t of e)n+=String.fromCharCode(t);return n}function fr(e){let n=new Uint8Array(e.length);for(let t=0;t<e.length;t++)n[t]=e.charCodeAt(t)&255;return n}function mr(e){return e.replace(/(.{64})/g,`$1
|
|
2
2
|
`).trim()}function Li(e){return e.replace(/-----BEGIN[^-]+-----/g,"").replace(/-----END[^-]+-----/g,"").replace(/\s+/g,"")}function Hi(e){let n=(e??"").trim();if(n==="")throw new Error("RSA \u79C1\u94A5\u4E3A\u7A7A");if(n.includes("-----BEGIN"))return q.pki.privateKeyFromPem(n);let t=n.replace(/\s+/g,""),r=[];try{return q.pki.privateKeyFromAsn1(q.asn1.fromDer(q.util.decode64(t)))}catch(i){r.push(i);}let o=mr(t);for(let i of ["PRIVATE KEY","RSA PRIVATE KEY"])try{return q.pki.privateKeyFromPem(`-----BEGIN ${i}-----
|
|
3
3
|
${o}
|
|
4
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 gr(e){let n=Hi(e.privateKey),t=Math.ceil(n.n.bitLength()/8),{data:r}=e;if(r.length===0)throw new Error("RSA \u89E3\u5BC6\uFF1A\u5BC6\u6587\u4E3A\u7A7A");let o=[];for(let s=0;s<r.length;s+=t){let l=Math.min(s+t,r.length);try{let g=n.decrypt(pr(r.subarray(s,l)),"RSAES-PKCS1-V1_5");o.push(fr(g));}catch(g){let S=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}..${l}\uFF0CkeySize ${t}B\uFF0C\u79C1\u94A5 ${n.n.bitLength()}bit\uFF09\uFF1A${S}`)}}let i=o.reduce((s,l)=>s+l.length,0),a=new Uint8Array(i),c=0;for(let s of o)a.set(s,c),c+=s.length;return a}function Fi(e){let n=gr({data:e.secretKey,privateKey:e.privateKey});if(n.length<me)throw new Error(`\u7AEF\u5230\u7AEF\u89E3\u5BC6\u5931\u8D25\uFF1ARSA \u89E3\u51FA\u7684 teaKey \u957F\u5EA6 ${n.length} < ${me}`);return Ue(n,e.cipherData)}function $i(e){let n=(e??"").trim();if(n==="")throw new Error("RSA \u516C\u94A5\u4E3A\u7A7A");if(n.includes("-----BEGIN"))return q.pki.publicKeyFromPem(n);let t=n.replace(/\s+/g,""),r=[];try{return q.pki.publicKeyFromAsn1(q.asn1.fromDer(q.util.decode64(t)))}catch(i){r.push(i);}let o=mr(t);for(let i of ["PUBLIC KEY","RSA PUBLIC KEY"])try{return q.pki.publicKeyFromPem(`-----BEGIN ${i}-----
|
|
5
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 yr(){let e=new Uint8Array(me),n=new Uint8Array(1);for(let t=0;t<me;t++){let r=0;do globalThis.crypto.getRandomValues(n),r=n[0]??0;while(r===0);e[t]=r;}return e}function Ji(e,n){if(n.length===0)throw new Error("RSA \u52A0\u5BC6\uFF1A\u660E\u6587\u4E3A\u7A7A");let t=$i(e),r=Math.ceil(t.n.bitLength()/8)-11;if(r<=0)throw new Error(`RSA \u52A0\u5BC6\uFF1A\u516C\u94A5\u4F4D\u6570\u8FC7\u5C0F\uFF08${t.n.bitLength()}bit\uFF09`);let o=[];for(let s=0;s<n.length;s+=r){let l=Math.min(s+r,n.length),g=t.encrypt(pr(n.subarray(s,l)),"RSAES-PKCS1-V1_5");o.push(fr(g));}let i=o.reduce((s,l)=>s+l.length,0),a=new Uint8Array(i),c=0;for(let s of o)a.set(s,c),c+=s.length;return a}function ji(e){let n=e.teaKey??yr();if(n.length<me)throw new Error(`\u7AEF\u5230\u7AEF\u52A0\u5BC6\u5931\u8D25\uFF1AteaKey \u957F\u5EA6 ${n.length} < ${me}`);let t=n.subarray(0,me),r=Be(t,e.plain);return {secretKey:Ji(e.publicKey,t),cipherData:r}}function Vi(e){return Ue(e.teaKey,e.cipherData)}function qi(e){return Be(e.teaKey,e.plain)}function zi(e){return Nn(e.teaKey,e.plain,"encrypt",void 0,e.signal===void 0?{}:{signal:e.signal})}function Wi(e){return Nn(e.teaKey,e.cipherData,"decrypt",void 0,e.signal===void 0?{}:{signal:e.signal})}function Yi(e){return tr(e.teaKey,e.plain)}function Qi(e){return rr(e.teaKey,e.cipherData)}function Xi(){return new Promise((e,n)=>{q.pki.rsa.generateKeyPair({bits:2048,e:65537,workers:-1},(t,r)=>{if(t){n(t);return}e({publicKeyBase64:Li(q.pki.publicKeyToPem(r.publicKey)),privateKey:q.pki.privateKeyToPem(r.privateKey)});});})}function Zi(){return {decryptEndToEnd:Fi,encryptEndToEnd:ji,decryptSymmetric:Vi,encryptSymmetric:qi,encryptSymmetricChunked:zi,decryptSymmetricChunked:Wi,encryptFileSimple:Yi,decryptFileSimple:Qi,randomTeaKey:yr,generateTempKeyPair:Xi,rsaDecryptPkcs1:gr}}function Gn(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function Ke(e,n){return R(e,"/friend/apply/list_paginated",{type:n.listType,page:n.page,page_size:n.pageSize},Gn(n.clientType,"GET"))}function Ge(e,n){return R(e,"/friend/apply/agree",{id:n.applicationId},Gn(n.clientType,"POST"))}function Le(e,n){return R(e,"/friend/apply/del",{id:n.applicationId},Gn(n.clientType,"POST"))}var hr=50,br=20,Cr=1,Ln=2,Hn=3,ea=4,na=5,wr=0,ta=1,ra=2;function oa(e){switch(e){case wr:case ta:case ra:return e;default:return}}var Se=class extends Error{constructor(t,r){super(`application HTTP \u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`);this.code=t;this.name="ApplicationHttpError";}code},W=class extends Error{constructor(n){super(`application \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ApplicationMappingError";}};function K(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Pr(e){let n=K(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 Ir(e){let n=K(e.status);if(e.status===void 0||n==="")return true;let t=Number(n),r=oa(t);if(r===void 0)throw new W(`\u672A\u77E5\u7533\u8BF7\u72B6\u6001\uFF1A${n}`);return r===wr}function ia(e){let n=K(e.type);if(n==="")return true;if(Number(n)!==Cr)throw new W(`\u8054\u7CFB\u4EBA\u7533\u8BF7\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${n}`);return true}function aa(e){let n=Number(K(e.type));if(n!==Ln&&n!==Hn&&n!==ea&&n!==na)throw new W(`GROUP/CHANNEL \u6DF7\u5408\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${K(e.type)||"<empty>"}`);return n}function an(e){if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>hr)throw new W(`limit \u5FC5\u987B\u4E3A 1-${hr}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit};if(!/^[1-9]\d*$/.test(e.cursor))throw new W("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let n=Number(e.cursor);if(!Number.isSafeInteger(n))throw new W("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {page:n,pageSize:e.limit}}function Sr(e){if(e!=null&&Array.isArray(e.list))return e.list;let n=e?.count??e?.total,t=n===0||typeof n=="string"&&/^0+$/.test(n.trim());if(e?.list===null&&t)return [];throw new W("data.list \u5FC5\u987B\u662F\u6570\u7EC4\uFF0C\u6216\u5728 count=0 \u65F6\u4E3A null")}function Fn(e){let n=e.trim();if(n==="")throw new W("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");return n}function sa(e){let n=Fn(K(e.id)||K(e.aid)),t=K(e.user_id)||K(e.user_info?.user_id),r=K(e.nick_name??e.nickname??e.name)||K(e.user_info?.nick_name??e.user_info?.nickname??e.user_info?.name);if(t===""||r==="")throw new W(`\u8054\u7CFB\u4EBA\u7533\u8BF7\u4EBA\u8EAB\u4EFD\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let o=K(e.head_img_url??e.avatar)||K(e.user_info?.head_img_url??e.user_info?.avatar),i=K(e.user_info?.mid),a=Pr(e.create_time??e.createTime??e.update_version);return {applicationId:n,applicantId:t,applicantName:r,...o===""?{}:{applicantAvatar:o},...i===""?{}:{applicantDisplayId:i},message:K(e.remarks??e.introduce_self),...a===void 0?{}:{createdAt:a}}}function ca(e){let n=Fn(K(e.id)||K(e.aid)),t=K(e.group_id)||K(e.group_info?.group_id);if(t==="")throw new W(`GROUP id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let r=K(e.user_id)||K(e.user_info?.user_id),o=K(e.nick_name??e.nickname??e.name)||K(e.user_info?.nick_name??e.user_info?.nickname??e.user_info?.name);if(r===""||o==="")throw new W(`GROUP \u7533\u8BF7\u4EBA\u6216\u9080\u8BF7\u4EBA\u8EAB\u4EFD\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let i=K(e.head_img_url??e.avatar)||K(e.user_info?.head_img_url??e.user_info?.avatar),a=K(e.user_info?.mid),c=K(e.group_info?.name??e.group_info?.group_name);if(c==="")throw new W(`GROUP \u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let s=K(e.group_info?.head_img_url??e.group_info?.avatar),l=Pr(e.create_time??e.createTime??e.update_version);return {applicationId:n,groupId:t,kind:Number(e.type)===Hn?"invite":"request",actor:{id:r,name:o,...i===""?{}:{avatarUrl:i},...a===""?{}:{displayId:a}},target:{id:t,name:c,...s===""?{}:{avatarUrl:s}},message:K(e.remarks??e.introduce_self),...l===void 0?{}:{createdAt:l}}}async function sn(e,n,t){let r=await t(e.client,{applicationId:Fn(n),clientType:e.clientType});if(!r.ok)throw new Se(r.code,r.message)}function da(e){async function n(t){let{pageSize:r}=an(t),{page:o}=an(t);for(let i=0;i<br;i+=1){let a=await Ke(e.client,{listType:Cr,page:o,pageSize:r,clientType:e.clientType});if(!a.ok)throw new Se(a.code,a.message);let c=Sr(a.data),s=c.filter(S=>ia(S)&&Ir(S)).map(sa),l=c.length<r,g=o+1;if(s.length>0||l)return {items:s,exhausted:l,...l?{}:{nextCursor:String(g)}};o=g;}return {items:[],exhausted:false,nextCursor:String(o)}}return {listPendingApplications:n,acceptApplication:t=>sn(e,t,Ge),ignoreApplication:t=>sn(e,t,Le)}}function ua(e){async function n(t){let{pageSize:r}=an(t),{page:o}=an(t);for(let i=0;i<br;i+=1){let a=await Ke(e.client,{listType:Ln,page:o,pageSize:r,clientType:e.clientType});if(!a.ok)throw new Se(a.code,a.message);let c=Sr(a.data),s=c.filter(S=>{let y=aa(S);return (y===Ln||y===Hn)&&Ir(S)}).map(ca),l=c.length<r,g=o+1;if(s.length>0||l)return {items:s,exhausted:l,...l?{}:{nextCursor:String(g)}};o=g;}return {items:[],exhausted:false,nextCursor:String(o)}}return {listPendingApplications:n,acceptApplication:t=>sn(e,t,Ge),ignoreApplication:t=>sn(e,t,Le)}}function O(e){let n=typeof e=="string"||typeof e=="number"?String(e).trim():"";return n===""?void 0:n}function la(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 pa(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 fa(e){let n=Number(e.product_id),t=la(e.is_dynamic);return {...pa(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 vr(e,n){return Array.isArray(e.mini_program_rel_list)?e.mini_program_rel_list.filter(t=>t!==null&&typeof t=="object").map(t=>fa(t)):n.source==="info"?[]:void 0}function Mr(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function Ar(e,n){return R(e,"/user_radio/list",{user_id:n.userId,update_version:n.updateVersion,page:n.page,page_size:n.pageSize},Mr(n.clientType,"GET"))}function _r(e,n){return R(e,"/user_radio/info",{radio_id:n.channelId},Mr(n.clientType,"POST"))}var xr=500,He=class extends Error{constructor(t,r){super(`CHANNEL HTTP \u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`);this.code=t;this.name="ChannelHttpError";}code},ie=class extends Error{constructor(n){super(`CHANNEL profile \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelProfileMappingError";}};function Er(e,n){let t=typeof e=="string"||typeof e=="number"?String(e).trim():"";if(t==="")throw new ie(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function ge(e){let n=typeof e=="string"||typeof e=="number"?String(e).trim():"";return n===""?void 0:n}function ve(e){return Number(e)===1}function ma(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 ga(e,n){return Number(e)===1?"member":Number(e)===9?"admin":Number(e)===10?"owner":n===false?"guest":"unknown"}function ya(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 ha(e,n,t){let r=ge(e.radio_user?.user_id),o=e.radio_setting?.un_speaking_user_ids,i=ge(e.radio_setting?.un_speaking_period);return {role:n,baseState:t,resolvedState:t,allMembersMuted:ve(e.radio_setting?.is_unspeeking_all),currentUserMuted:r!==void 0&&Array.isArray(o)&&o.map(String).includes(r),...i===void 0?{}:{mutePeriod:i}}}function ba(e){if(e!=null)return Number(e)===1?"standard":Number(e)===2?"competition":"unknown"}function Ca(e){let n=ge(e);return n!==void 0&&/^\d+$/.test(n)?n.replace(/^0+(?=\d)/,""):void 0}function wa(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 kr(e,n,t){let r=Er(e.radio_id??e.id,"id"),o=Er(e.name,"name"),i=e.is_in===void 0?void 0:ve(e.is_in),a=ga(e.radio_user?.role_id,i),c=ya(e),s=ha(e,a,c),l=wa$1({channelState:c,snapshot:s,nowMs:n}),g={...s,resolvedState:l.channelState},S=Ca(e.update_version),y=ge(e.head_img_url),u=ge(e.desc),h=ge(e.user_id),v=Number(e.total_users),T=ba(e.type),d=ma(e.radio_setting?.is_unvisit_other),f=e.verify_way===void 0?void 0:Number(e.verify_way),C=f!==void 0&&Number.isSafeInteger(f)?f:void 0,p=ge(e.invite_code),b=vr(e,{source:t});return {id:r,name:o,...y===void 0?{}:{avatar:y},...u===void 0?{}:{description:u},...h===void 0?{}:{ownerId:h},...Number.isFinite(v)&&v>=0?{memberCount:v}:{},...C===void 0?{}:{verifyType:C},...p===void 0?{}:{inviteCode:p},role:a,permissions:l.permissions,channelState:l.channelState,allMembersMuted: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},...S===void 0?{}:{updateVersion:S},...b===void 0?{}:{miniProgramRels:b}}}function Tr(e){return {...e,updatedAt:Date.now()}}function Rr(e,n){if(e.accessSnapshot===void 0)return {...e,permissions:va$1(e.role,e.channelState)};let t=wa$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 $n(e,n){let{updatedAt:t,...r}=Rr(e,n);return r}function Pa(e){let n=new Map,t=new Map,r=new Map,o="0",i=false,a=null,c=0,s=null,l=0;function g(){if(i)return Promise.resolve();if(a!==null)return a;let u=c;return a=(async()=>{if(e.storage!==void 0){let[h,v]=await Promise.all([e.storage.getChannelProfiles(),e.storage.getChannelListVersion()]);if(u!==c)return;for(let T of h)n.set(T.id,Rr(T,e.now?.()??Date.now()));o=/^\d+$/.test(v)?v:"0";}i=true;})().finally(()=>{a=null;}),a}function S(u){if(u?.forceRefresh!==true&&s!==null)return s;let h=++l,v=(async()=>{await g();let T=(await e.getUserId()).trim();if(T==="")throw new ie("user_id \u4E0D\u80FD\u4E3A\u7A7A");let d=u?.forceRefresh===true?"0":o,f=[];for(let p=1;;p+=1){let b=await Ar(e.client,{userId:T,updateVersion:d,page:p,pageSize:xr,clientType:e.clientType});if(!b.ok)throw new He(b.code,b.message);if(b.data===null)break;if(!Array.isArray(b.data))throw new ie("list data \u5FC5\u987B\u662F\u6570\u7EC4");let M=e.now?.()??Date.now(),_=b.data.map(P=>kr(P,M,"list"));if(f.push(..._),_.length<xr)break}if(h!==l)return [...n.values()].map(p=>$n(p,e.now?.()??Date.now()));let C=o;for(let p of f)n.set(p.id,Tr(p)),p.updateVersion!==void 0&&(C=wa(C,p.updateVersion));return o=C,e.storage!==void 0&&(await e.storage.saveChannelProfiles([...n.values()]),await e.storage.saveChannelListVersion(o)),[...n.values()].map(p=>$n(p,e.now?.()??Date.now()))})();return s=v,v.finally(()=>{s===v&&(s=null);}).catch(()=>{}),v}function y(u,h){let v=u.trim();if(v==="")return Promise.reject(new ie("channel id \u4E0D\u80FD\u4E3A\u7A7A"));let T=h?.forceRefresh===true;if(!T){let C=t.get(v);if(C!==void 0)return C}let d=(r.get(v)??0)+1;T&&r.set(v,d);let f=(async()=>{await g();let C=n.get(v);if(!T&&C!==void 0&&C.miniProgramRels!==void 0)return $n(C,e.now?.()??Date.now());let p=await _r(e.client,{channelId:v,clientType:e.clientType});if(!p.ok)throw new He(p.code,p.message);if(p.data===null||p.data===void 0)throw new ie("info data \u4E0D\u80FD\u4E3A\u7A7A");let b=kr(p.data,e.now?.()??Date.now(),"info");if(b.id!==v)throw new ie(`info id \u4E0D\u5339\u914D\uFF1A\u8BF7\u6C42 ${v}\uFF0C\u54CD\u5E94 ${b.id}`);if((r.get(v)??d)===d){let M=Tr(b);n.set(v,M),await e.storage?.saveChannelProfiles([M]);}return b})().finally(()=>{t.get(v)===f&&t.delete(v);});return r.set(v,d),t.set(v,f),f}return {listProfiles:S,getProfile:y,clearCache(){c+=1,l+=1;for(let u of new Set([...n.keys(),...t.keys(),...r.keys()]))r.set(u,(r.get(u)??0)+1);n.clear(),t.clear(),s=null,o="0",i=true,a=null;}}}function Dr(e,n){return Ke(e,{listType:2,page:n.page,pageSize:n.pageSize,clientType:n.clientType})}function Ur(e,n){return Ge(e,n)}function Br(e,n){return Le(e,n)}var Ia=20,Or=50,Sa=20,va=2,Ma=3,Kr=4,Aa=5,Gr=0,_a=1,xa=2;function Ea(e){switch(e){case Gr:case _a:case xa:return e;default:return}}var Fe=class extends Error{constructor(t,r){super(`CHANNEL join application HTTP \u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`);this.code=t;this.name="ChannelJoinApplicationHttpError";}code},Q=class extends Error{constructor(n){super(`CHANNEL join application \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelJoinApplicationMappingError";}};function L(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function ka(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 Ta(e){let n=L(e.status);if(e.status===void 0||n==="")return true;let t=Number(n),r=Ea(t);if(r===void 0)throw new Q(`\u672A\u77E5\u7533\u8BF7\u72B6\u6001\uFF1A${n}`);return r===Gr}function Ra(e){let n=Number(L(e.type));if(n!==va&&n!==Ma&&n!==Kr&&n!==Aa)throw new Q(`GROUP/CHANNEL \u6DF7\u5408\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${L(e.type)||"<empty>"}`);return n}function Da(e){let n=L(e.id)||L(e.aid),t=L(e.user_id)||L(e.user_info?.user_id),r=e.radio_info??e.channel_info,o=L(e.radio_id)||L(e.channel_id)||L(r?.radio_id)||L(r?.channel_id);if(n==="")throw new Q("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");if(t==="")throw new Q(`\u7533\u8BF7\u4EBA id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);if(o==="")throw new Q(`CHANNEL id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let i=L(e.user_info?.nick_name)||L(e.user_info?.nickname)||L(e.user_info?.name)||t,a=L(e.user_info?.head_img_url)||L(e.user_info?.avatar),c=L(e.user_info?.mid),s=L(r?.name)||L(r?.radio_name)||L(r?.channel_name)||o,l=L(r?.head_img_url)||L(r?.avatar),g=ka(e.create_time??e.createTime);return {applicationId:n,applicantId:t,applicantName:i,...a===""?{}:{applicantAvatar:a},...c===""?{}:{applicantDisplayId:c},channelId:o,channelName:s,...l===""?{}:{channelAvatar:l},message:L(e.remarks)||L(e.introduce_self),...g===void 0?{}:{createdAt:g}}}function Nr(e){if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>Or)throw new Q(`limit \u5FC5\u987B\u4E3A 1-${Or}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit||Ia};if(!/^[1-9]\d*$/.test(e.cursor))throw new Q("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let n=Number(e.cursor);if(!Number.isSafeInteger(n))throw new Q("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {page:n,pageSize:e.limit}}function Ua(e){if(e!=null&&Array.isArray(e.list))return e.list;let n=e?.count??e?.total,t=n===0||typeof n=="string"&&/^0+$/.test(n.trim());if(e?.list===null&&t)return [];throw new Q("data.list \u5FC5\u987B\u662F\u6570\u7EC4\uFF0C\u6216\u5728 count=0 \u65F6\u4E3A null")}function Ba(e){let n=e.trim();if(n==="")throw new Q("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");return n}function Oa(e){async function n(r){let{pageSize:o}=Nr(r),{page:i}=Nr(r);for(let a=0;a<Sa;a+=1){let c=await Dr(e.client,{page:i,pageSize:o,clientType:e.clientType});if(!c.ok)throw new Fe(c.code,c.message);let s=Ua(c.data),l=s.filter(y=>Ra(y)===Kr&&Ta(y)).map(Da),g=s.length<o,S=i+1;if(l.length>0||g)return {items:l,exhausted:g,...g?{}:{nextCursor:String(S)}};i=S;}return {items:[],exhausted:false,nextCursor:String(i)}}async function t(r,o){let i=await o(e.client,{applicationId:Ba(r),clientType:e.clientType});if(!i.ok)throw new Fe(i.code,i.message)}return {listJoinApplications:n,acceptJoinApplication:r=>t(r,Ur),ignoreJoinApplication:r=>t(r,Br)}}function cn(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},cn(n.clientType,"GET"))}function jn(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"},cn(n.clientType,"POST"))}function Lr(e,n){return R(e,"/user_radio/admins",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},cn(n.clientType,"GET"))}function Hr(e,n){return R(e,"/user_radio/user/infos",{radio_id:n.channelId,user_ids:n.userIds.join(",")},cn(n.clientType,"POST"))}var dn=18,Na=12,Ka=300*1e3,Ga=32,$e=class extends Error{constructor(t,r){super(`CHANNEL member HTTP \u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`);this.code=t;this.name="ChannelMemberHttpError";}code},J=class extends Error{constructor(n){super(`CHANNEL member \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelMemberMappingError";}};function ae(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function La(e){return Number(e)===1?"member":Number(e)===9?"admin":Number(e)===10?"owner":"unknown"}function Ha(e){let n=ae(e);return /^\d+$/.test(n)?n.replace(/^0+(?=\d)/,""):void 0}function Vn(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 Fr(e,n){let t=ae(e.radio_id);if(t==="")throw new J("radio_id \u4E0D\u80FD\u4E3A\u7A7A");if(t!==n)throw new J(`\u6210\u5458\u9891\u9053 ${t} \u4E0E\u8BF7\u6C42\u9891\u9053 ${n} \u4E0D\u4E00\u81F4`);let r=ae(e.user_id)||ae(e.user_info?.user_id);if(r==="")throw new J("user_id \u4E0D\u80FD\u4E3A\u7A7A");if(e.is_master!==void 0){let l=Number(e.is_master);if(l!==0&&l!==1)throw new J(`is_master \u975E\u6CD5\uFF1A${ae(e.is_master)}`)}let o=ae(e.nick_name),i=ae(e.user_info?.nick_name)||ae(e.user_info?.name),a=ae(e.user_info?.head_img_url),c=Ha(e.update_version),s=Number(e.join_type);return {userId:r,...o===""?{}:{nickname:o},displayName:o||i||r,...a===""?{}:{avatar:a},role:La(e.role_id),...Number.isInteger(s)?{joinType:s}:{},...c===void 0?{}:{updateVersion:c}}}function Fa(e){if(e.channelId.trim()==="")throw new J("channelId \u4E0D\u80FD\u4E3A\u7A7A");if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>dn)throw new J(`limit \u5FC5\u987B\u4E3A 1-${dn}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit};if(!/^[1-9]\d*$/.test(e.cursor))throw new J("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let t=Number(e.cursor);if(!Number.isSafeInteger(t))throw new J("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {page:t,pageSize:e.limit}}function $r(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 $a(e){let n=e.now??(()=>Date.now()),t=e.isActive??(()=>true),r=e.cacheTtlMs??Ka,o=new Map,i=new Map,a=new Map,c=new Map,s=new Map,l=new Set,g=new Set,S=(P,w)=>`${P}:${w}`;function y(P){let w=s.get(P);return w!==void 0?w:(s.set(P,0),0)}function u(P){let w=P.trim();if(w==="")throw new J("channelId \u4E0D\u80FD\u4E3A\u7A7A");return w}function h(P){for(i.delete(P.channelId),i.set(P.channelId,P);i.size>Ga;){let w=i.keys().next().value;if(w===void 0)break;i.delete(w);}}function v(P){let w=i.get(P);if(w!==void 0)return h(w),Promise.resolve(w);if(g.has(P)||e.storage?.getChannelMemberSnapshot===void 0)return Promise.resolve(null);let A=a.get(P);if(A!==void 0)return A;let m=y(P),I=e.storage.getChannelMemberSnapshot(P).then(x=>!t()||x===null||x.channelId!==P||m!==y(P)||g.has(P)?null:(h(x),x)).finally(()=>{a.get(P)===I&&a.delete(P);});return a.set(P,I),I}function T(P,w){let A=P.map(I=>I.userId),m=new Map(P.map(I=>[I.userId,I]));for(let I of w){m.has(I.userId)||A.push(I.userId);let x=m.get(I.userId);(x===void 0||Vn(I.updateVersion,x.updateVersion)>=0)&&m.set(I.userId,I);}return A.map(I=>m.get(I))}async function d(P,w){let A=await aa$1(w);return P.filter(m=>A.match(m.displayName)!==null||A.match(m.userId,{pinyin:false})!==null)}async function f(P,w,A={}){if(!t()||w!==y(P.channelId))return;let m=P.channelId,I=g.has(m),x=A.allowPersistentRebuild===true&&I&&e.storage?.deleteChannelMemberSnapshot===void 0&&e.storage?.saveChannelMemberSnapshot!==void 0;(!I||x)&&await e.storage?.saveChannelMemberSnapshot?.(P),t()&&w===y(m)&&(h(P),A.allowPersistentRebuild===true&&(!I||e.storage?.deleteChannelMemberSnapshot===void 0)&&g.delete(m));}async function C(P,w,A,m,I=false,x){let E=await v(P);if(!t()||A!==y(P))return;let D=n(),k=x!==void 0&&E?.nextCursor===x,U=I&&E!==null&&!k,B=m!==void 0&&!U?m.nextCursor:E?.nextCursor,F={channelId:P,items:T(E?.items??[],w),...B===void 0?{}:{nextCursor:B},exhausted:U?E.exhausted:m?.exhausted??E?.exhausted??false,updatedAt:D};await f(F,A);}async function p(P,w,A){if(!t()||A!==y(P))return [...w];let m=n(),I=m+r,x=[],E=[],D=new Map;for(let k of w){let U=S(P,k.userId),B=o.get(U)?.member;if(B!==void 0&&Vn(k.updateVersion,B.updateVersion)<0){E.push(B);continue}x.push({channelId:P,...k,updatedAt:m}),E.push(k),D.set(U,{member:k,expiresAt:I});}if(x.length>0&&t()&&A===y(P)&&!l.has(P)&&(await e.storage?.saveChannelMembers?.(x),e.storage?.getChannelMembers!==void 0&&t()&&A===y(P))){let k=await e.storage.getChannelMembers(P,x.map(B=>B.userId)),U=new Map(k.map(B=>{let{channelId:F,updatedAt:j,...ce}=B;return [ce.userId,{member:ce,updatedAt:j}]}));for(let B=0;B<E.length;B+=1){let F=E[B];if(F===void 0)continue;let j=U.get(F.userId);j===void 0||Vn(j.member.updateVersion,F.updateVersion)<=0||(E[B]=j.member,D.set(S(P,F.userId),{member:j.member,expiresAt:j.updatedAt+r}));}}if(t()&&A===y(P))for(let[k,U]of D)o.set(k,U);return E}async function b(P,w){let A=u(P.channelId),{page:m,pageSize:I}=Fa({...P,channelId:A}),x=y(A),E=await w(A,m,I);if(!E.ok)throw new $e(E.code,E.message);if(E.data!==null&&!Array.isArray(E.data))throw new J("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let D=$r((E.data??[]).map(B=>Fr(B,A))),k=await p(A,D,x),U=(E.data??[]).length<I;return {items:k,exhausted:U,...U?{}:{nextCursor:String(m+1)}}}function M(P){let w=u(P),A=c.get(w);if(A!==void 0)return A;let m=y(w),I=(async()=>{let x,E=false,D=[];for(let U=0;U<Na&&!E;U+=1){let B=await b({channelId:w,limit:dn,...x===void 0?{}:{cursor:x}},(F,j,ce)=>Jn(e.client,{channelId:F,page:j,pageSize:ce,clientType:e.clientType}));if(!t()||m!==y(w))throw new J("\u6210\u5458\u5FEB\u7167\u9884\u53D6\u5DF2\u56E0\u6210\u5458\u53D8\u5316\u5931\u6548");D=T(D,B.items),x=B.nextCursor,E=B.exhausted;}let k={channelId:w,items:D,...x===void 0?{}:{nextCursor:x},exhausted:E,updatedAt:n()};return await f(k,m,{allowPersistentRebuild:true}),{items:k.items,...k.nextCursor===void 0?{}:{nextCursor:k.nextCursor},exhausted:k.exhausted}})().finally(()=>{c.get(w)===I&&c.delete(w);});return c.set(w,I),I}async function _(P){let w=u(P),A=y(w)+1;s.set(w,A),l.add(w),g.add(w),i.delete(w),a.delete(w),c.delete(w);let m=`${w}:`;for(let I of o.keys())I.startsWith(m)&&o.delete(I);e.storage?.deleteChannelMembers===void 0&&e.storage?.deleteChannelMemberSnapshot===void 0||(await Promise.all([e.storage.deleteChannelMembers?.(w),e.storage.deleteChannelMemberSnapshot?.(w)]),A===y(w)&&(e.storage?.deleteChannelMembers!==void 0&&l.delete(w),e.storage?.deleteChannelMemberSnapshot!==void 0&&g.delete(w)));}return {async prefetchMembers(P){let w=u(P),A=await v(w),m=g.has(w);A!==null&&!m&&A.updatedAt+r>n()||await M(w);},async getCachedMembers(P){let w=u(P.channelId),A=await v(w);if(A===null)return null;let m=P.query?.trim()??"";return m===""&&g.has(w)?null:m===""?{items:[...A.items],...A.nextCursor===void 0?{}:{nextCursor:A.nextCursor},exhausted:A.exhausted}:{items:await d(A.items,m),exhausted:true}},async refreshMembers(P){let w=u(P.channelId),A=P.query?.trim()??"";if(A==="")return M(w);let m=y(w),[I,x]=await Promise.all([b({channelId:w,query:A,limit:dn},(D,k,U)=>jn(e.client,{channelId:D,query:A,page:k,pageSize:U,updateVersion:"0",clientType:e.clientType})),v(w)]),E=x===null?[]:await d(x.items,A);return await C(w,I.items,m),{...I,items:T(I.items,E)}},async listMembers(P){let w=u(P.channelId),A={...P,channelId:w},m=y(w),I=await b(A,(x,E,D)=>Jn(e.client,{channelId:x,page:E,pageSize:D,clientType:e.clientType}));return await C(w,I.items,m,I,A.cursor!==void 0,A.cursor),I},async searchMembers(P){let w=P.query.trim();if(w==="")return Promise.reject(new J("\u641C\u7D22\u5173\u952E\u8BCD\u4E0D\u80FD\u4E3A\u7A7A"));let A=u(P.channelId),m={...P,channelId:A},I=y(A),x=await b(m,(E,D,k)=>jn(e.client,{channelId:E,query:w,page:D,pageSize:k,updateVersion:"0",clientType:e.clientType}));return await C(A,x.items,I),x},listAdmins:P=>b(P,(w,A,m)=>Lr(e.client,{channelId:w,page:A,pageSize:m,clientType:e.clientType})),async getMembersByIds(P,w,A){let m=P.trim();if(m==="")throw new J("channelId \u4E0D\u80FD\u4E3A\u7A7A");let I=[...new Set(w.map(k=>k.trim()).filter(Boolean))];if(I.length===0)return [];let x=A?.forceRefresh===true,E=new Map,D=[];for(let k of I){let U=o.get(S(m,k));!x&&U!==void 0&&U.expiresAt>n()?E.set(k,U.member):D.push(k);}if(!x&&D.length>0&&!l.has(m)&&e.storage?.getChannelMembers!==void 0){let k=y(m),U=await e.storage.getChannelMembers(m,D);if(t()&&k===y(m))for(let{channelId:B,updatedAt:F,...j}of U)B===m&&(o.set(S(m,j.userId),{member:j,expiresAt:F+r}),F+r>n()&&E.set(j.userId,j));D=D.filter(B=>!E.has(B));}if(!t())return I.flatMap(k=>E.has(k)?[E.get(k)]:[]);if(D.length>0){let k=y(m),U=await Hr(e.client,{channelId:m,userIds:D,clientType:e.clientType});if(!U.ok)throw new $e(U.code,U.message);if(U.data!==null&&!Array.isArray(U.data))throw new J("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let B=$r((U.data??[]).map(Pe=>Fr(Pe,m))),F=D.filter(Pe=>!B.some($o=>$o.userId===Pe)),j=x&&F.length>0&&k===y(m),ce;j?(await _(m),ce=B):ce=await p(m,B,k);for(let Pe of ce)E.set(Pe.userId,Pe);}return I.flatMap(k=>E.has(k)?[E.get(k)]:[])},invalidateChannelMembers:_,clearCache(){let P=new Set(s.keys());for(let w of o.keys())P.add(w.slice(0,w.indexOf(":")));for(let w of i.keys())P.add(w);for(let w of a.keys())P.add(w);for(let w of c.keys())P.add(w);for(let w of l)P.add(w);for(let w of g)P.add(w);for(let w of P)s.set(w,y(w)+1);o.clear(),i.clear(),a.clear(),c.clear(),l.clear(),g.clear();}}}function Jr(e){return {responseMode:"strict",method:"POST",...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function jr(e,n){return R(e,"/user_radio/member/list",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},Jr(n.clientType))}function Vr(e,n){return R(e,"/user_radio/member/search",{radio_id:n.channelId,search_name:n.query,page:n.page,page_size:n.pageSize},Jr(n.clientType))}var qr=18,un=class extends Error{constructor(t,r){super(`CHANNEL @ member HTTP \u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`);this.code=t;this.name="ChannelMentionMemberHttpError";}code},re=class extends Error{constructor(n){super(`CHANNEL @ member \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelMentionMemberMappingError";}};function Me(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Ja(e){let n=Me(e.user_id);if(n==="")throw new re("user_id \u4E0D\u80FD\u4E3A\u7A7A");let t=Me(e.radio_user_nickname)||Me(e.nick_name)||Me(e.name)||Me(e.mid)||n,r=Me(e.head_img_url);return {userId:n,displayName:t,...r===""?{}:{avatar:r}}}function ja(e){let n=e.channelId.trim();if(n==="")throw new re("channelId \u4E0D\u80FD\u4E3A\u7A7A");if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>qr)throw new re(`limit \u5FC5\u987B\u4E3A 1-${qr}`);if(e.cursor===void 0)return {channelId:n,page:1,pageSize:e.limit};if(!/^[1-9]\d*$/.test(e.cursor))throw new re("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let t=Number(e.cursor);if(!Number.isSafeInteger(t))throw new re("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {channelId:n,page:t,pageSize:e.limit}}function Va(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}=ja(t),c=await r({channelId:o,page:i,pageSize:a,clientType:e.clientType});if(!c.ok)throw new un(c.code,c.message);if(c.data!==null&&!Array.isArray(c.data))throw new re("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let s=c.data??[],l=Va(s.map(Ja)),g=s.length<a;return {items:l,exhausted:g,...g?{}:{nextCursor:String(i+1)}}}return {listMentionMembers:t=>n(t,r=>jr(e.client,r)),searchMentionMembers:t=>{let r=t.query.trim();return r===""?Promise.reject(new re("\u641C\u7D22\u5173\u952E\u8BCD\u4E0D\u80FD\u4E3A\u7A7A")):n(t,o=>Vr(e.client,{...o,query:r}))}}}function za(e){let n=e.fetch??((t,r)=>globalThis.fetch(t,r));return {async postProtobuf({path:t,body:r,headers:o,signal:i}){let a=await e.getBaseUrl();if(!a)throw new Error("CmHttp.postProtobuf\uFF1A\u7F3A\u5C11 CM HTTP \u57FA\u5740\uFF08getCmHttpBaseUrl \u4E3A\u7A7A\uFF09");let c={"Content-Type":"application/octet-stream"},s=e.getClientType?.();s!==void 0&&(c["Client-type"]=String(s)),Object.assign(c,o);let l=await e.getAuth();l!==null&&l.token!==""&&l.userId!==""&&(c.Authorization=`${l.token}:${l.userId}`);let g=await n(`${a}${t}`,{method:"POST",body:r,headers:c,signal:i});if(!g.ok)throw new qa$1({path:t,status:g.status,statusText:g.statusText});let S=await g.arrayBuffer();return new Uint8Array(S)}}}var oe=class extends Error{constructor(n){super(n),this.name="DirectoryMappingError";}};function ln(e,n){if(e===null||typeof e!="object"||Array.isArray(e))throw new oe(`${n} \u5FC5\u987B\u662F\u5BF9\u8C61`);return e}function Y(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Je(e){let n=Y(e);return n===""?void 0:n}function Wa(e){let n=ln(e,"\u8054\u7CFB\u4EBA\u76EE\u5F55\u9879"),t=n.user_info===void 0?n:ln(n.user_info,"\u8054\u7CFB\u4EBA user_info"),r=Y(t.user_id??n.friend_user_id??n.user_id);if(r==="")throw new oe("\u8054\u7CFB\u4EBA\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A user_id");let o=Y(n.remark_name)||Y(n.contact_name)||Y(t.nick_name)||Y(t.username)||Y(t.mid)||r,i=Y(t.nick_name)||Y(t.username)||Y(t.mid)||r,a=Je(t.head_img_url),c=Je(t.username)??Je(t.mid);return {id:r,kind:"individual",displayName:o,cardDisplayName:i,...a===void 0?{}:{avatarUrl:a},...c===void 0?{}:{username:c}}}function Ya(e){let n=ln(e,"\u7FA4\u7EC4\u76EE\u5F55\u9879"),t=Y(n.group_id);if(t==="")throw new oe("\u7FA4\u7EC4\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A group_id");let r=Je(n.head_img_url),o=Y(n.name)||t;return {id:t,kind:"group",displayName:o,cardDisplayName:o,...r===void 0?{}:{avatarUrl:r}}}function Qa(e){let n=ln(e,"\u793E\u7FA4\u76EE\u5F55\u9879"),t=Y(n.radio_id??n.id);if(t==="")throw new oe("\u793E\u7FA4\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A radio_id/id");let r=Je(n.head_img_url),o=Y(n.name)||t;return {id:t,kind:"channel",displayName:o,cardDisplayName:o,...r===void 0?{}:{avatarUrl:r}}}function Xa(e,n){if(!Number.isSafeInteger(e)||e<1)throw new oe("\u76EE\u5F55 page \u5FC5\u987B\u662F\u6B63\u6574\u6570");if(!Number.isSafeInteger(n)||n<1||n>100)throw new oe("\u76EE\u5F55 pageSize \u5FC5\u987B\u662F 1-100 \u7684\u6574\u6570")}function Za(e){return {async list(n){Xa(n.page,n.pageSize);let t=n.kind==="individual"?"/friend/list":n.kind==="group"?"/user_group/list":"/user_radio/list",r=n.kind==="channel"&&e.getUserId!==void 0?String(await e.getUserId()).trim():"",i=(await R(e.client,t,{...r===""?{}:{user_id:r},update_version:0,page:n.page,page_size:n.pageSize},{responseMode:"strict",method:"GET",...e.clientType===void 0?{}:{headers:{"Client-type":String(e.clientType)}}})).data??[];if(!Array.isArray(i))throw new oe(`${n.kind} \u76EE\u5F55 data \u5FC5\u987B\u662F\u6570\u7EC4`);let a=n.kind==="individual"?Wa:n.kind==="group"?Ya:Qa,c=new Map;for(let l of i){let g=a(l);c.set(g.id,g);}let s=i.length<n.pageSize;return {items:[...c.values()],...s?{}:{nextPage:n.page+1},exhausted:s}}}}var es="https://api.giphy.com/v1/gifs",Ae=class extends Error{constructor(t){super(t==="core"?"\u8868\u60C5 Core API \u672A\u914D\u7F6E":"Giphy API key \u672A\u914D\u7F6E");this.provider=t;this.name="ExpressionProviderUnavailableError";}provider},$=class extends Error{constructor(n){super(n),this.name="ExpressionMappingError";}},ye=class extends Error{constructor(t,r){super(`Giphy \u8BF7\u6C42\u5931\u8D25\uFF1AHTTP ${t}${r?` ${r}`:""}`);this.status=t;this.name="GiphyHttpError";}status};function Z(e,n){if(e===null||typeof e!="object"||Array.isArray(e))throw new $(`${n} \u5FC5\u987B\u662F\u5BF9\u8C61`);return e}function X(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function pe(e,n){let t=X(e);if(t==="")throw new $(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function xe(e){let n=X(e);return n===""?void 0:n}function _e(e,n){let t=Number(e);if(!Number.isSafeInteger(t)||t<0)throw new $(`${n} \u5FC5\u987B\u662F\u975E\u8D1F\u6574\u6570`);return t}function ns(e,n){let t=Number(e);if(!Number.isSafeInteger(t))throw new $(`${n} \u5FC5\u987B\u662F\u5B89\u5168\u6574\u6570`);return t}function zr(e,n){let t=Number(e);if(!Number.isFinite(t)||t<=0)throw new $(`${n} \u5FC5\u987B\u662F\u6709\u9650\u6B63\u6570`);return t}function he(e,n){let t=pe(e,n),r;try{r=new URL(t);}catch(o){throw new $(`${n} \u4E0D\u662F\u5408\u6CD5 URL\uFF1A${o instanceof Error?o.message:String(o)}`)}if(r.protocol!=="https:"&&r.protocol!=="http:")throw new $(`${n} \u53EA\u652F\u6301 HTTP(S)`);if(r.username!==""||r.password!=="")throw new $(`${n} \u4E0D\u5141\u8BB8\u5305\u542B URL \u51ED\u636E`);return t}function qn(e,n){if(e==null)return [];if(Array.isArray(e))return e;let r=Z(e,n).list;if(r==null)return [];if(!Array.isArray(r))throw new $(`${n}.list \u5FC5\u987B\u662F\u6570\u7EC4\u6216 null`);return r}function je(e){return e==="sticker"?1:e==="gif"?2:3}function Wr(e){let n=Z(e,"\u8D34\u56FE\u5305"),t=xe(n.onlineTime??n.online_time),r=n.isPlatformIssued??n.is_platform_issued;return {id:pe(n.packId??n.pack_id,"\u8D34\u56FE\u5305 packId"),nameZh:X(n.nameZh??n.name_zh),nameEn:X(n.nameEn??n.name_en),nameTh:X(n.nameTh??n.name_th),nameTw:X(n.nameTw??n.name_tw),nameVi:X(n.nameVi??n.name_vi),publisher:X(n.publisher),trayIconUrl:he(n.trayIcon??n.tray_icon,"\u8D34\u56FE\u5305 trayIcon"),sortWeight:ns(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 zn(e,n,t,r){let o=Z(e,t),i=xe(o.id),a={...i===void 0?{}:{recordId:i},url:he(o.imgUrl??o.img_url,`${t} imgUrl`),width:_e(o.width??0,`${t} width`),height:_e(o.height??0,`${t} height`)};if(n==="sticker")return {kind:n,...a,packageId:pe(r??o.packId??o.pack_id,`${t} packageId`),resourceId:pe(o.fileName??o.file_name,`${t} resourceId`)};let c=xe(o.fileName??o.file_name);return {kind:n,...a,...c===void 0?{}:{resourceId:c}}}function ts(e,n){if(n!=="emoji")return zn(e,n,"\u6700\u8FD1\u4F7F\u7528\u9879");let t=Z(e,"\u6700\u8FD1 emoji"),r=xe(t.id);return {kind:"emoji",...r===void 0?{}:{recordId:r},token:pe(t.imgUrl??t.img_url,"\u6700\u8FD1 emoji token"),resourceId:pe(t.fileName??t.file_name,"\u6700\u8FD1 emoji resourceId")}}function Yr(e,n,t){let r=je(n);return qn(e,t).filter(o=>{let i=Z(o,`${t} item`),a=i.favType??i.fav_type;if(a==null)return true;let c=Number(a);if(c!==1&&c!==2&&c!==3)throw new $(`${t} item.favType \u5FC5\u987B\u662F 1\u30012 \u6216 3`);return c===r})}function Xr(e){return {fav_type:je(e.kind),pack_id:e.kind==="sticker"?e.packageId:"",img_url:he(e.url,"\u8868\u60C5\u5199\u5165 imgUrl"),file_name:e.resourceId??"",width:e.width,height:e.height}}function rs(e){return e.kind!=="emoji"?Xr(e):{fav_type:je(e.kind),pack_id:"",img_url:e.token,file_name:e.resourceId,width:0,height:0}}function Qr(e){let n=[...new Set(e.map(t=>t.trim()).filter(Boolean))];if(n.length===0||n.length>30||n.some(t=>t.includes("|")))throw new $("\u6279\u91CF\u5220\u9664 recordIds \u5FC5\u987B\u5305\u542B 1-30 \u4E2A\u4E0D\u542B\u7AD6\u7EBF\u7684\u552F\u4E00\u975E\u7A7A id");return n.join("|")}function os(e){let n=Z(e,"Giphy item"),t=Z(n.images,"Giphy item.images"),r=Z(t.original,"Giphy item.images.original"),o=t.fixed_width,i=o==null?void 0:Z(o,"Giphy item.images.fixed_width"),a=he(r.url,"Giphy original.url"),c=i===void 0?void 0:xe(i.url),s=i===void 0?void 0:xe(i.webp),l=s===void 0?c===void 0?a:he(c,"Giphy fixed_width.url"):he(s,"Giphy fixed_width.webp"),g=s!==void 0&&c!==void 0&&c!==s?he(c,"Giphy fixed_width.url"):void 0;return {kind:"gif",resourceId:pe(n.id,"Giphy item.id"),title:X(n.title)||"GIF",url:a,previewUrl:l,...g===void 0?{}:{fallbackPreviewUrl:g},width:zr(r.width,"Giphy original.width"),height:zr(r.height,"Giphy original.height")}}function is(e,n){let t=Z(e,"Giphy response");if(!Array.isArray(t.data))throw new $("Giphy response.data \u5FC5\u987B\u662F\u6570\u7EC4");let r=Z(t.pagination,"Giphy response.pagination"),o=_e(r.offset??n,"Giphy pagination.offset");if(o!==n)throw new $("Giphy pagination.offset \u4E0E\u8BF7\u6C42 offset \u4E0D\u4E00\u81F4");let i=_e(r.count??t.data.length,"Giphy pagination.count"),a=_e(r.total_count??r.totalCount??0,"Giphy pagination.total_count"),c=new Map;for(let l of t.data){let g=os(l);c.set(g.resourceId,g);}let s=o+i;return {items:[...c.values()],offset:o,totalCount:a,...i>0&&s<a?{nextOffset:s}:{}}}function as(e){async function n(r,o,i){if(e.coreClient===void 0)throw new Ae("core");let a=await R(e.coreClient,r,o,{method:"POST",responseMode:"strict"});if(!a.ok)throw new V(i,a.code,a.message);return a.data}async function t(r,o){let i=e.giphyApiKey?.trim()??"";if(i==="")throw new Ae("giphy");let a=e.fetcher??globalThis.fetch;if(typeof a!="function")throw new Ae("giphy");let c=new URLSearchParams({api_key:i,limit:String(o.limit),offset:String(o.offset),...o.query===void 0?{}:{q:o.query,lang:"en"}}),s;try{s=await a(`${es}/${r}?${c.toString()}`);}catch{throw new ye(0,"network failure")}let l;try{l=await s.json();}catch(S){throw s.ok?new $(`Giphy response \u4E0D\u662F JSON\uFF1A${S instanceof Error?S.message:String(S)}`):new ye(s.status,"")}if(!s.ok){let S=l!==null&&typeof l=="object"&&!Array.isArray(l)?l.meta:void 0,y=S!==null&&typeof S=="object"&&!Array.isArray(S)?X(S.msg):"";throw new ye(s.status,y)}let g=l!==null&&typeof l=="object"&&!Array.isArray(l)?l.meta:void 0;if(g!==null&&typeof g=="object"&&!Array.isArray(g)){let S=g,y=Number(S.status);if(Number.isFinite(y)&&y!==200)throw new ye(y,X(S.msg))}return is(l,o.offset)}return {async listStickerPacks(r){let o=await n("/user/sticker/pack_list",r===void 0?{}:{version:r},"\u8D34\u56FE\u5305\u5217\u8868");if(Array.isArray(o))return {version:"",items:o.map(Wr)};if(o==null)return {version:"",items:[]};let i=Z(o,"\u8D34\u56FE\u5305\u5217\u8868 data"),a=i.list??i.packs;if(a==null)return {version:X(i.version),items:[]};if(!Array.isArray(a))throw new $("\u8D34\u56FE\u5305\u5217\u8868 data.list \u5FC5\u987B\u662F\u6570\u7EC4\u6216 null");return {version:X(i.version),items:a.map(Wr)}},async listStickerItems(r){let o=await n("/user/sticker/item_list",{pack_id:r},"\u8D34\u56FE\u660E\u7EC6\u5217\u8868");return qn(o,"\u8D34\u56FE\u660E\u7EC6\u5217\u8868 data").map(i=>zn(i,"sticker","\u8D34\u56FE\u660E\u7EC6",r))},async listFavorites(r){let o=await n("/user/sticker/my_fav/list",{fav_type:je(r)},"\u8868\u60C5\u6536\u85CF\u5217\u8868");return Yr(o,r,"\u8868\u60C5\u6536\u85CF\u5217\u8868 data").map(i=>zn(i,r,"\u8868\u60C5\u6536\u85CF\u9879"))},async addFavorite(r){await n("/user/sticker/my_fav/add",Xr(r),"\u6DFB\u52A0\u8868\u60C5\u6536\u85CF");},async deleteFavorites(r){await n("/user/sticker/my_fav/del",{ids:Qr(r)},"\u5220\u9664\u8868\u60C5\u6536\u85CF");},async listRecent(r){let o=await n("/user/sticker/recent/list",{fav_type:je(r)},"\u6700\u8FD1\u4F7F\u7528\u5217\u8868");return Yr(o,r,"\u6700\u8FD1\u4F7F\u7528\u5217\u8868 data").map(i=>ts(i,r))},async reportRecent(r){await n("/user/sticker/recent/report",rs(r),"\u4E0A\u62A5\u6700\u8FD1\u4F7F\u7528");},async deleteRecent(r){await n("/user/sticker/recent/del",{ids:Qr(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 qn(o,"\u5FEB\u6377\u56DE\u5E94 Top data").map(i=>{let a=Z(i,"\u5FEB\u6377\u56DE\u5E94 Top \u9879");return pe(a.emoji,"\u5FEB\u6377\u56DE\u5E94 emoji")})},async reportReaction(r){await n("/user/reaction/emoji/report",{emoji:r},"\u4E0A\u62A5\u5FEB\u6377\u56DE\u5E94");},listGiphyTrending:r=>t("trending",r),searchGiphy:r=>t("search",r)}}async function Zr(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 ss(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 cs(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 eo=200,ds=50;async function no(e,n){let t=String(n.updateVersion??0).trim()||"0",r=[],o;for(let i=1;i<=ds;i++){let a={group_id:n.groupId,update_version:t,page:String(i),page_size:String(eo)},{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=ss(c);if(s.length===0)break;for(let g of s){let S=String(g.user_id??g.userId??"").trim();if(S==="")continue;let y={userId:S,nickName:String(g.nick_name??g.nickName??"").trim()},u=cs(g.join_type??g.joinType);u!==void 0&&(y.joinType=u),r.push(y);}let l=c.update_version;if(typeof l=="number"&&(o=l),s.length<eo)break}return {members:r,updateVersion:o}}async function to(e,n){return (await R(e,"/user/info/friend",{friend_user_id:n.userId})).data}var us=1440*60*1e3;function Wn(e,n,t=us){let r=new Map,o=new Map,i=new Map;function a(g){let S=(i.get(g)??0)+1;i.set(g,S);let y=e(g).then(u=>(u!==null&&i.get(g)===S&&(r.set(g,u),n?.save(g,u).catch(()=>{})),u)).finally(()=>{o.get(g)===y&&o.delete(g);});return o.set(g,y),y}return {get:async(g,S)=>{if(S?.forceRefresh===true)return a(g);let y=r.get(g);if(y!==void 0)return y;let u=o.get(g);if(u!==void 0)return u;if(n!==void 0)try{let h=i.get(g)??0,v=await n.get(g);if(v!==null)return (i.get(g)??0)===h&&(r.set(g,v.value),Date.now()-v.updatedAt>t&&a(g)),v.value}catch{}return a(g)},peek:async g=>{let S=r.get(g);if(S!==void 0)return {value:S,stale:false};if(n===void 0)return null;try{let y=i.get(g)??0,u=await n.get(g);if(u!==null)return (i.get(g)??0)===y&&r.set(g,u.value),{value:u.value,stale:Date.now()-u.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 ls(e){async function n(y){let u=await to(e.client,{userId:y})??await Ne(e.client,{userId:y});return u===null?null:Y$1(u)}async function t(y){let u=await Zr(e.client,{groupId:y,clientType:e.clientType});return u===null?null:Z$1(u)}async function r(y){let{members:u}=await no(e.client,{groupId:y,clientType:e.clientType});return u.length===0?null:u}function o(y){let u={};for(let h of y)h.nickName!==""&&(u[h.userId]=h.nickName);return u}let{storage:i}=e,a=i===void 0?void 0:{get:async y=>{let u=await i.getUserProfile(y);return u===null?null:{value:u,updatedAt:u.updatedAt}},save:async(y,u)=>{await i.saveUserProfile({...u,updatedAt:Date.now()});}},c=i===void 0?void 0:{get:async y=>{let u=await i.getGroupMembers(y);return u===null?null:{value:u.members.map(h=>({userId:h.userId,nickName:h.groupNick,...h.joinType===void 0?{}:{joinType:h.joinType}})),updatedAt:u.updatedAt}},save:async(y,u)=>{let h=u.map(v=>({userId:v.userId,groupNick:v.nickName,...v.joinType===void 0?{}:{joinType:v.joinType}}));await i.saveGroupMembers({groupId:y,members:h,updatedAt:Date.now()});}},s=i===void 0?void 0:{get:async y=>{let u=await i.getGroupProfile(y);return u===null?null:{value:u,updatedAt:u.updatedAt}},save:async(y,u)=>{await i.saveGroupProfile({...u,updatedAt:Date.now()});}},l=Wn(n,a),g=Wn(t,s),S=Wn(r,c);return {getUserProfile:(y,u)=>l.get(y,u),getGroupProfile:(y,u)=>g.get(y,u),getGroupMemberNames:async(y,u)=>{let h=await S.get(y,u);return h===null?null:o(h)},listGroupMembers:(y,u)=>S.get(y,u),peekUserProfile:y=>l.peek(y),peekGroupMemberNames:async y=>{let u=await S.peek(y);return u===null?null:{value:o(u.value),stale:u.stale}},peekGroupMembers:y=>S.peek(y),peekGroupProfile:y=>g.peek(y),clearCache:()=>{l.clear(),g.clear(),S.clear();}}}function ps(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}async function ee(e,n,t,r){let o=await R(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new V(r,o.code,o.message)}function fs(e){return ee(e.client,"/user_radio/edit",{radio_id:e.channelId,...e.name===void 0?{}:{name:e.name},...e.avatarUrl===void 0?{}:{head_img_url:e.avatarUrl},...e.description===void 0?{}:{desc:e.description}},"\u4FEE\u6539\u793E\u7FA4\u8D44\u6599")}function ms(e){return ee(e.client,"/user_radio/user/setting",{radio_id:e.channelId,nick_name:e.nickname},"\u4FEE\u6539\u793E\u7FA4\u6635\u79F0")}function gs(e){return ee(e.client,"/user_radio/member/edit",{radio_id:e.channelId,radio_user_id:e.userId,nick_name:e.nickname},"\u4FEE\u6539\u793E\u7FA4\u6635\u79F0")}function ys(e){let n=e.userIds.map(t=>({user_id:ps(t)}));return ee(e.client,"/user_radio/invited_users",{radio_id:e.channelId,members:JSON.stringify(n)},"\u9080\u8BF7\u793E\u7FA4\u6210\u5458")}function hs(e){return ee(e.client,"/user_radio/kick_user",{radio_id:e.channelId,user_id:e.userId},"\u79FB\u9664\u793E\u7FA4\u6210\u5458")}function bs(e){return ee(e.client,"/user_radio/add_admin",{radio_id:e.channelId,user_id:e.userId},"\u8BBE\u4E3A\u793E\u7FA4\u7BA1\u7406\u5458")}function Cs(e){return ee(e.client,"/user_radio/del_admin",{radio_id:e.channelId,user_id:e.userId},"\u53D6\u6D88\u793E\u7FA4\u7BA1\u7406\u5458")}function ws(e){return ee(e.client,"/user_radio/transfer",{radio_id:e.channelId,user_id:e.userId},"\u8F6C\u8BA9\u793E\u7FA4")}function Ps(e){return ee(e.client,"/user_radio/user/quit",{radio_id:e.channelId,...e.newOwnerId===void 0?{}:{user_id:e.newOwnerId}},"\u9000\u51FA\u793E\u7FA4")}function Is(e){return ee(e.client,"/user_radio/edit_setting",{radio_id:e.channelId,verify_way:e.verifyType,...e.verifyType===4&&e.inviteCode!==void 0?{invite_code:e.inviteCode}:{}},"\u4FEE\u6539\u793E\u7FA4\u5165\u7FA4\u9A8C\u8BC1\u65B9\u5F0F")}function Ss(e){return ee(e.client,"/user_radio/edit_setting",{radio_id:e.channelId,is_unspeeking_all:e.muted?"1":"0"},e.muted?"\u5F00\u542F\u793E\u7FA4\u5168\u5458\u7981\u8A00":"\u5173\u95ED\u793E\u7FA4\u5168\u5458\u7981\u8A00")}function vs(e){return ee(e.client,"/user_radio/edit_setting",{radio_id:e.channelId,is_unvisit_other:e.disabled?"1":"0"},e.disabled?"\u5F00\u542F\u793E\u7FA4\u5168\u5458\u7981\u79C1\u804A":"\u5173\u95ED\u793E\u7FA4\u5168\u5458\u7981\u79C1\u804A")}function Ms(e){return ee(e.client,"/user_radio/closed",{radio_id:e.channelId},"\u89E3\u6563\u793E\u7FA4")}async function As(e){_s(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=C({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=F(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 _s(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 xs(e){let n=Es(e.indexes),t=f.encode(f.create({sUserId:Yn(e.userId,"user"),lsIndex:n.map(i=>({sChnnId:Yn(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 Es(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=>{Yn(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 Yn(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 ks(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 pn=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;}},fn=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;}},Qn={HIDDEN_CONTACT:40112,OWN_FRIEND_LIMIT_REACHED:40121,TARGET_FRIEND_LIMIT_REACHED:40122},Ts=36875,Rs=40113;function Xn(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function se(e){let n=Xn(e);return n===""?void 0:n}function ro(e){let n=Array.isArray(e)?e[0]:e;return n!==null&&typeof n=="object"?n:void 0}function Ds(e){switch(e){case Qn.HIDDEN_CONTACT:return "hidden-contact";case Qn.OWN_FRIEND_LIMIT_REACHED:return "own-friend-limit";case Qn.TARGET_FRIEND_LIMIT_REACHED:return "target-friend-limit";default:return "remote"}}async function Us(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 pn(r.code,r.message);let o=ro(r.data);if(o===void 0)return null;let i=Xn(o.user_id??o.userId);if(i==="")throw new Error("\u641C\u7D22\u7528\u6237\uFF1A\u54CD\u5E94\u7F3A\u5C11 user_id");let a=Xn(o.nick_name??o.nickname??o.name)||i,c=o.friend_status??o.friendStatus,s=c===void 0?void 0:Number(c);if(s!==void 0&&!Number.isInteger(s))throw new Error("\u641C\u7D22\u7528\u6237\uFF1Afriend_status \u975E\u6CD5");return {userId:i,nickname:a,...se(o.username)===void 0?{}:{username:se(o.username)},...se(o.mid)===void 0?{}:{miCallId:se(o.mid)},...se(o.head_img_url??o.avatar)===void 0?{}:{avatarUrl:se(o.head_img_url??o.avatar)},...se(o.per_signature??o.signature)===void 0?{}:{signature:se(o.per_signature??o.signature)},...s===void 0?{}:{friendStatus:s}}}async function Bs(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 fn(Ds(i.code),i.code,i.message);let a=ro(i.data),c=Number(a?.status??0);if(c!==0&&c!==1&&c!==2)throw new Error(`\u53D1\u9001\u597D\u53CB\u7533\u8BF7\uFF1A\u672A\u77E5\u7ED3\u679C\u72B6\u6001 ${c}`);let s=se(a?.message??a?.msg??i.message);return {status:c,...s===void 0?{}:{message:s}}}async function Os(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!==Rs)throw new Error(`\u5220\u9664\u597D\u53CB\u5931\u8D25\uFF08${r.code}\uFF09\uFF1A${r.message||"unknown error"}`)}async function Ns(e,n){let t=n.reporterUserId.trim(),r=n.targetUserId.trim(),o=n.problem.trim();if(t===""||r===""||o==="")throw new Error("\u4E3E\u62A5\u8054\u7CFB\u4EBA\uFF1AreporterUserId\u3001targetUserId \u548C problem \u4E0D\u80FD\u4E3A\u7A7A");let i=await R(e,"/user/report_user/add",{user_id:t,to_user_id:r,problem:o,images:"1"},{responseMode:"strict",method:"POST"});if(!i.ok)throw new V("\u4E3E\u62A5\u8054\u7CFB\u4EBA",i.code,i.message)}function Ks(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}function Gs(e){let n=e.memberIds.map(t=>({user_id:Ks(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 Ls(e){return R(e.client,"/user_group/create_face",{is_hidden:"0"},{method:"POST",responseMode:"strict"})}function Hs(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}function Fs(e){let n=e.memberIds.map(t=>({user_id:Hs(t)}));return R(e.client,"/user_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 oo(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function $s(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(!oo(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(!oo(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 io(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function Js(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(!io(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(!io(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 js(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 Vs(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||!Vs(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 zs(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}async function Ve(e,n,t,r){let o=await R(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new V(r,o.code,o.message)}function Ws(e){let n=e.userIds.map(t=>({user_id:zs(t)}));return Ve(e.client,"/user_group/invited",{group_id:e.groupId,members:JSON.stringify(n)},"\u9080\u8BF7\u7FA4\u6210\u5458")}function Ys(e){return Ve(e.client,"/user_group/kick",{group_id:e.groupId,out_user_id:e.userId},"\u79FB\u9664\u7FA4\u6210\u5458")}function Qs(e){return Ve(e.client,"/user_group/transfer",{group_id:e.groupId,new_user_id:e.userId},"\u8F6C\u8BA9\u7FA4\u7EC4")}function Xs(e){return Ve(e.client,"/user_group/user/quit",{group_id:e.groupId,...e.newOwnerId===void 0?{}:{new_user_id:e.newOwnerId}},"\u9000\u51FA\u7FA4\u7EC4")}function Zs(e){return Ve(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 ec=new Set([200,32768]);async function nc(e){let n=S({userId:e.userId,groupId:e.groupId}),t=await e.http.postProtobuf({path:"/offline/v1/group/read_all",body:n}),{code:r}=T(t);if(!ec.has(r))throw new Error(`\u7FA4 read_all \u4E1A\u52A1\u5931\u8D25\uFF1Acode=${r}\uFF08groupId=${e.groupId}\uFF09`)}var qe=class extends Error{constructor(n){super(`${n}\u54CD\u5E94\u5305\u542B\u65E0\u6CD5\u8BC6\u522B\u7684 is_waitting`),this.name="MembershipJoinMappingError";}};function tc(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 qe(n)}async function ao(e,n,t,r){let o=await R(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new V(r,o.code,o.message);if(o.data===null||o.data===void 0)throw new qe(r);return tc(o.data.is_waitting,r)}async function so(e,n,t,r){let o=await R(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new V(r,o.code,o.message);return Object.freeze({outcome:"joined"})}function rc(e){return ao(e.client,"/user_group/apply",{group_id:e.groupId,qrcode_type:2,remarks:e.remarks??""},"\u7533\u8BF7\u52A0\u5165\u666E\u901A\u7FA4")}function oc(e){return so(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 ic(e){return ao(e.client,"/user_radio/add/apply",{radio_id:e.channelId,remarks:e.remarks??""},"\u7533\u8BF7\u52A0\u5165\u793E\u7FA4")}function ac(e){return so(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 sc(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 cc(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 dc(e){let n=W$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 X$1(t,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function uc(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,messageIds:e.messageIds,clientType:e.clientType}),t=await e.http.postProtobuf({path:"/offline/v1/group/msg/by_id",body:n});return R$1(t,{selfId:e.userId,keepRaw:true,source:"history",onReaction:e.onReaction},e.decryptDeps)}async function lc(e){e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId);let n=G({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 H$1(t,{selfId:e.userId,keepRaw:true,expectedChannelIds:[e.channelId],diagnostic:{endpoint:"msgById",surface:"msg-by-id",...e.operationId===void 0?{}:{operationId:e.operationId},clientTypeHeader:e.clientType,clientTypeBody:e.clientType},onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps)}var pc=20,co=10,Zn=30,fc=100;async function mc(e){let n=[];for(let t of lo(e.channels,pc)){let r=B({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=E(o,i);await uo(e,a.sessions.filter(c=>c.channelState==="active"||c.raw?.status===0).map(c=>c.channelId)),n.push(...E(o,{...i,onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps).sessions);}return n}async function gc(e){let n=bc(e.channelBatchSize),t=e.messageCount??Zn,r=Cc(e.maxPagesPerBatch),o=new Map;for(let i of lo(e.pulls,n)){let a=i.map(l=>({...l})),c=new Map(a.map(l=>[l.channelId,new Set([l.baseIndex])])),s=0;for(;a.length>0;){if(s>=r){let u=a.map(({channelId:h,baseIndex:v})=>`${h}@${v}`).join(",");throw new Error(`channel offline \u5206\u9875\u8D85\u8FC7 maxPagesPerBatch=${r}\uFF08active=${u}\uFF09`)}s+=1;let l=C({userId:e.userId,clientType:e.clientType,pulls:a.map(u=>({channelId:u.channelId,baseIndex:u.baseIndex,direction:0,count:t,contain:0}))}),g=await e.http.postProtobuf({path:"/channel/v1/offlineMessages",body:l});await uo(e,a.map(u=>u.channelId));let S=F(g,{selfId:e.userId,keepRaw:true,expectedChannelIds:a.map(u=>u.channelId),diagnostic:{endpoint:"offlineMessages",surface:"offline-batch",...e.operationId===void 0?{}:{operationId:e.operationId},clientTypeHeader:e.clientType,clientTypeBody:e.clientType},onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps);for(let u of S.messages)o.has(u.id)||o.set(u.id,u);let y=[];for(let u of a){let h=S.nextBaseIndexes[u.channelId],v=S.messageCounts[u.channelId]??0;if(h===void 0)continue;let T=c.get(u.channelId);if(T.has(h))throw new Error(`channel offline cursor \u5FAA\u73AF\uFF08channelId=${u.channelId}, baseIndex=${h}\uFF09`);v<t||(T.add(h),y.push({channelId:u.channelId,baseIndex:h}));}a=y;}}return [...o.values()].sort(k)}async function yc(e$1){let n=e$1.count??Zn;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=C({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=F(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 hc(e){let n=e.count??Zn;e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId);let t=D({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 I(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 uo(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 bc(e){if(e===void 0)return co;if(!Number.isInteger(e)||e<=0)throw new Error("channel offline: channelBatchSize \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");return Math.min(e,co)}function Cc(e){if(e===void 0)return fc;if(!Number.isInteger(e)||e<=0)throw new Error("channel offline: maxPagesPerBatch \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");return e}function lo(e,n){let t=[];for(let r=0;r<e.length;r+=n)t.push(e.slice(r,r+n));return t}async function po(e,n){let t=U({userId:n.userId,clientType:n.clientType,limit:n.limit,deliveredMsgInfos:n.deliveredMsgInfos}),r=await n.http.postProtobuf({path:e,body:t});return V$1(r,{selfId:n.userId,keepRaw:true,onReaction:n.onReaction},n.decryptDeps)}function fo(e){return po("/offline/v1/chat",e)}function mo(e){return po("/offline/v1/owner_chat",e)}function wc(e){return fo(e).then(n=>n.messages)}function Pc(e){return mo(e).then(n=>n.messages)}function go(e){return [...new Set(e.filter(n=>n!==void 0&&n!==""))]}async function Ic(e){let n=K$1({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=M(t,{selfId:e.userId}),o=go(r.messages.map(i=>i.conversationId));o.length>0&&await e.prepareKeys(o);}return M(t,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function Sc(e){let n=L$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=N$1(t,{selfId:e.userId}),o=go([...r.unreads.map(i=>i.groupId),...r.messages.map(i=>i.conversationId)]);o.length>0&&await e.prepareKeys(o);}return N$1(t,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function vc(e){e.prepareKeys!==void 0&&e.decryptDeps!==void 0&&e.groupId!==""&&await e.prepareKeys([e.groupId]);let n=O$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 P(t,{selfId:e.userId,keepRaw:true,source:"history",onReaction:e.onReaction},e.decryptDeps)}async function Mc(e){let n=ca$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 da$1(t)}var Ac={direct:"/friend/undisturb/set",group:"/user_group/user/edit",channel:"/user_radio/user/setting"},_c={direct:"friend_user_id",group:"group_id",channel:"radio_id"};async function xc(e){let n=Ac[e.conversationType],t=_c[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 Ec(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 kc(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 Tc(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 Rc(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 Dc(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 Uc="1970-01-01 08:00:00",Bc="2000",Oc="",mn=class extends Error{constructor(){super("\u4F1A\u8BDD\u6536\u85CF Core API \u672A\u914D\u7F6E"),this.name="SessionFavoriteProviderUnavailableError";}},fe=class extends Error{constructor(n){super(n),this.name="SessionFavoriteMappingError";}};function z(e){return typeof e=="string"?e:e==null?"":String(e)}function ze(e,n){let t=z(e).trim();if(t==="")throw new fe(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function Nc(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 Kc(e){return e==="text"?1:e==="image"?2:e==="video"?3:e==="voice"?4:e==="location"?5:e==="mediaAlbum"?28:11}function Gc(e){if(e==="direct")return 0;if(e==="group")return 1;if(e==="channel")return 2;throw new fe(`favorite conversation type ${e}`)}function gn(e,n){return n==="text"||n==="location"?z(e.content).trim():n==="file"?z(e.fileName||e.file_name||e.name).trim():n==="mediaAlbum"?z(e.caption).trim():""}function Lc(e,n){let t=z(e.group_id).trim(),r=z(e.radio_id).trim(),o=Number(z(e.msg_type).trim());if(o===1&&t!=="")return {conversationType:"group",conversationId:t};if(o===2&&r!=="")return {conversationType:"channel",conversationId:r};if(t!=="")return {conversationType:"group",conversationId:t};if(r!=="")return {conversationType:"channel",conversationId:r};if(o===0){let i=z(e.from_id).trim(),a=z(e.to_id).trim(),c=i===n.trim()?a:i;if(c!=="")return {conversationType:"direct",conversationId:c}}return null}function Hc(e,n){let t=e.from_user,r=z(t?.nick_name||t?.nickname||t?.name).trim();return r===""?n:r}function Fc(e,n){let t=z(e.uu_id).trim(),r=Nc(e.content_type),o=dr(z(e.msg_body),n);if(t===""||r===null||o===null)return null;let i=z(e.from_id).trim();return Object.freeze({collectId:t,msgId:z(e.msg_id).trim(),kind:r,senderId:i,senderName:Hc(e,i),avatarUrl:z(e.from_user?.avatar).trim(),createdAt:z(e.create_time||e.update_time||e.msg_time).trim(),text:gn(o,r),imageUrl:nb(r,o),fileName:r==="file"?gn(o,"file"):"",body:Object.freeze({...o}),conversation:Lc(e,n)})}function $c(e){if(e==null)return [];if(Array.isArray(e))return e;if(typeof e=="object"&&e!==null&&"list"in e){let n=e.list;if(n==null)return [];if(Array.isArray(n))return n}throw new fe("favorite list data \u5FC5\u987B\u662F\u6570\u7EC4\u6216 { list }")}function Jc(){if(typeof crypto>"u"||typeof crypto.randomUUID!="function")throw new fe("collect uuid \u4E0D\u53EF\u7528");return crypto.randomUUID()}function jc(e){return Object.freeze({...e,body:Object.freeze({...e.body}),conversation:e.conversation===null?null:Object.freeze({...e.conversation})})}function Vc(e){async function n(t,r,o){if(e.coreClient===void 0)throw new mn;let i=await R(e.coreClient,t,r,{method:"POST",responseMode:"strict",prefix:Oc});if(!i.ok)throw new V(o,i.code,i.message);return i.data}return {async list(){let t=ze(e.getUserId(),"favorite userId"),r=await n("/api/v1/user/favorite/list",{start_time:Uc,page_size:Bc},"\u4F1A\u8BDD\u6536\u85CF\u5217\u8868");return Object.freeze($c(r).flatMap(o=>{let i=Fc(o,t);return i===null?[]:[i]}))},async add(t){let r=ze(e.getUserId(),"favorite userId"),o=(e.createCollectId??Jc)(),i={msg_id:ze(t.messageId,"favorite msgId"),content_type:Kc(t.kind),msg_type:Gc(t.conversation.conversationType),msg_time:String(t.createdAt),from_id:ze(t.senderId,"favorite fromId"),to_id:ze(t.peerId,"favorite toId"),is_hide:t.hide===true?"1":"0",uu_id:o,msg_body:cr(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"),jc({collectId:o,msgId:t.messageId.trim(),kind:t.kind,senderId:t.senderId.trim(),senderName:t.senderId.trim(),avatarUrl:"",createdAt:String(t.createdAt),text:gn(t.plainBody,t.kind),imageUrl:nb(t.kind,t.plainBody),fileName:t.kind==="file"?gn(t.plainBody,"file"):"",body:t.plainBody,conversation:t.conversation})},async delete(t){let r=[...new Set(t.map(o=>o.trim()).filter(o=>o!==""))];if(r.length===0)throw new fe("favorite ids \u4E0D\u80FD\u4E3A\u7A7A");await n("/api/v1/user/favorite/del",{ids:r.join("|")},"\u5220\u9664\u4F1A\u8BDD\u6536\u85CF");}}}var yo="image/jpeg";function et(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:et(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:et(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:yo}},async videoPoster(t,r,o){let i=await e.prepare({operationId:`core-video-poster-${++n}`,generation:0,kind:"video",file:et(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:yo}}}}function zc(e){return e>=192&&e<=207&&e!==196&&e!==200&&e!==204}function Wc(e){return e!==void 0&&e>=5&&e<=8}function Yc(e,n,t){return Wc(t)?{width:n,height:e}:{width:e,height:n}}function Qc(e,n,t){if(n+6>t)return;for(let[s,l]of [69,120,105,102,0,0].entries())if(e.getUint8(n+s)!==l)return;let r=n+6;if(r+8>t)return;let o=e.getUint16(r,false);if(o!==19789&&o!==18761)return;let i=o===18761;if(e.getUint16(r+2,i)!==42)return;let a=r+e.getUint32(r+4,i);if(a+2>t)return;let c=e.getUint16(a,i);for(let s=0;s<c;s++){let l=a+2+s*12;if(l+12>t)return;if(e.getUint16(l,i)===274)return e.getUint16(l+8,i)}}function Xc(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(zc(o)){if(a+5>n)return;let s=e.getUint16(a+1,false),l=e.getUint16(a+3,false);return l<=0||s<=0?void 0:Yc(l,s,t)}o===225&&t===void 0&&(t=Qc(e,a,c)),r=c;}}function Zc(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 ed(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 nd(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 yn(e,n,t){return n<t.length?false:t.every((r,o)=>e.getUint8(o)===r)}async function ho(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(yn(t,r,[255,216,255]))return Xc(t,r);if(yn(t,r,[137,80,78,71,13,10,26,10]))return Zc(t,r);if(yn(t,r,[71,73,70,56]))return ed(t,r);if(yn(t,r,[82,73,70,70])&&r>=12&&t.getUint32(8,false)===1464156752)return nd(t,r)}var So=320,td=12*1024,vo=20*1024,rd=.9,od=.72,id=320,ad=10*1024,sd=16*1024,cd=.84,dd=.68,Mo=15e3,ud=1;function ld(){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 bo(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 We(e){if(e?.aborted)throw new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError")}var Co=16777216,pd=4096;function fd(e,n){let t=Math.min(1,pd/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>Co){let a=Math.sqrt(Co/i);r=Math.max(1,Math.floor(r*a)),o=Math.max(1,Math.floor(o*a));}return {width:r,height:o}}function tt(e,n,t){let r=Math.min(1,t/Math.max(e,n));return fd(Math.max(1,Math.round(e*r)),Math.max(1,Math.round(n*r)))}async function wo(e,n,t,r,o){We(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(We(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 nt(e,n){if(!Number.isInteger(e)||e<=0)throw new RangeError(`${n}\u5FC5\u987B\u662F\u6B63\u6574\u6570`)}function Po(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 rt(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?id:So),s=r.targetBytes??(i?ad:td),l=r.maxBytes??(i?sd:vo),g=r.quality??(i?cd:rd),S=r.minQuality??(i?dd:od);if(nt(c,`${a}\u6700\u5927\u8FB9\u957F`),nt(s,`${a}\u76EE\u6807\u5B57\u8282\u6570`),nt(l,`${a}\u6700\u5927\u5B57\u8282\u6570`),Po(g,`${a}\u521D\u59CB\u8D28\u91CF`),Po(S,`${a}\u6700\u4F4E\u8D28\u91CF`),s>l)throw new RangeError(`${a}\u76EE\u6807\u5B57\u8282\u6570\u4E0D\u80FD\u8D85\u8FC7\u6700\u5927\u5B57\u8282\u6570`);if(S>g)throw new RangeError(`${a}\u6700\u4F4E\u8D28\u91CF\u4E0D\u80FD\u9AD8\u4E8E\u521D\u59CB\u8D28\u91CF`);let y=tt(n,t,c),u=Math.min(200,Math.max(y.width,y.height)),h,v=[...new Set([g,Math.max(S,g-.12),S])];for(let d of v){let f=await wo(e,y.width,y.height,d,o);if((h===void 0||f.byteLength<h.byteLength)&&(h=f),f.byteLength<=s)return f}let T=Math.max(y.width,y.height);if(T>u&&h!==void 0){let d=Math.sqrt(s/h.byteLength),f=Math.max(u,Math.floor(T*Math.min(.9,Math.max(.5,d))));y=tt(n,t,f);for(let C of [g,S]){let p=await wo(e,y.width,y.height,C,o);if(p.byteLength<h.byteLength&&(h=p),p.byteLength<=s)return p}}if(h!==void 0&&h.byteLength<=l)return h;throw new Error(`${a}\u751F\u6210\u5931\u8D25\uFF1A\u7F16\u7801\u7ED3\u679C\u8D85\u8FC7 ${l} \u5B57\u8282\u786C\u4E0A\u9650`)}function Io(e,n,t){return new Promise((r,o)=>{let i,a,c,s,l=()=>{i!==void 0&&clearTimeout(i),e.removeEventListener(n,a),e.removeEventListener("error",c),t?.removeEventListener("abort",s);};a=()=>{l(),r();},c=()=>{l(),o(new Error(`\u89C6\u9891\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A${n} \u524D\u89E3\u7801\u9519\u8BEF`));},s=()=>{l(),o(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));},i=setTimeout(()=>{l(),o(new Error(`\u89C6\u9891\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A${n} \u8D85\u65F6`));},Mo),e.addEventListener(n,a,{once:true}),e.addEventListener("error",c,{once:true}),t?.addEventListener("abort",s,{once:true});})}async function md(e,n){We(n);let t=e.maxSize??So,r=e.maxBytes??vo,o=await ho(e.file);We(n);function i(g,S){return e.file.type==="image/jpeg"&&e.file.size<=r&&Math.max(g,S)<=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:tt(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{We(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 rt(c,c.width,c.height,e,n)}}finally{c.close();}let s=URL.createObjectURL(e.file),l=new Image;try{await new Promise((S,y)=>{let u,h,v=()=>{u!==void 0&&clearTimeout(u),l.onload=null,l.onerror=null,n?.removeEventListener("abort",h);};h=()=>{v(),y(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));},l.onload=()=>{v(),S();},l.onerror=()=>{v(),y(new Error("\u56FE\u7247\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1AImage \u89E3\u7801\u9519\u8BEF"));},u=setTimeout(()=>{v(),y(new Error("\u56FE\u7247\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1AImage \u89E3\u7801\u8D85\u65F6"));},Mo),n?.addEventListener("abort",h,{once:!0}),l.src=s;});let g=o??{width:l.naturalWidth,height:l.naturalHeight};return e.includePoster===!1?g:i(l.naturalWidth,l.naturalHeight)?{...g,posterData:await e.file.arrayBuffer()}:{...g,posterData:await rt(l,l.naturalWidth,l.naturalHeight,e,n)}}finally{l.removeAttribute("src"),URL.revokeObjectURL(s);}}async function gd(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 Io(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 Io(r,"seeked",n));let s=a===void 0?void 0:a,l;try{l=await rt(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},...l===void 0?{}:{posterData:l}}}finally{r.pause(),r.removeAttribute("src"),r.load(),URL.revokeObjectURL(t);}}function yd(e={}){let n=e.maxConcurrency??ld();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=bo(n),r=bo(ud),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 gd(i,a):await md(i,a)}finally{s();}},dispose(){o||(o=true,t.dispose(),r.dispose());}}}function hd(){let e=0,n=[];function t(){for(;e<6&&n.length>0;){let r=n.shift();r.signal?.removeEventListener("abort",r.cancel),e+=1,r.start();}}return async function(o,i){if(o?.aborted)throw new DOMException("\u5A92\u4F53\u4E0B\u8F7D\u5DF2\u53D6\u6D88","AbortError");await new Promise((a,c)=>{let s={signal:o,start:a,cancel:()=>{let l=n.indexOf(s);l>=0&&n.splice(l,1),c(new DOMException("\u5A92\u4F53\u4E0B\u8F7D\u5DF2\u53D6\u6D88","AbortError"));}};o?.addEventListener("abort",s.cancel,{once:true}),n.push(s),t();});try{if(o?.aborted)throw new DOMException("\u5A92\u4F53\u4E0B\u8F7D\u5DF2\u53D6\u6D88","AbortError");return await i()}finally{e-=1,t();}}}function bd(e,n,t,r){let o=/^bytes (\d+)-(\d+)\/(\d+)$/.exec(e.headers.get("content-range")??""),i=e.headers.get("etag")??"",a=Number(o?.[1]),c=Number(o?.[2]),s=Number(o?.[3]);if(e.status!==206||o===null||![a,c,s].every(Number.isSafeInteger)||s<=0||a!==n||c!==Math.min(t,s-1)||c<a||!/^"[\x21\x23-\x7E\x80-\xFF]*"$/.test(i)||e.headers.get("content-encoding")!==null&&e.headers.get("content-encoding")!=="identity")throw new H("download-range-invalid","\u5206\u6BB5\u4E0B\u8F7D\u54CD\u5E94\u65E0\u6548\uFF1A\u9700\u8981 206\u3001\u6B63\u786E Content-Range\u3001\u5F3A ETag \u548C\u672A\u538B\u7F29\u5B57\u8282\uFF1B\u8BF7\u68C0\u67E5\u4E0B\u8F7D\u57DF\u540D\u7684 CORS ExposeHeaders");if(r!==void 0&&(s!==r.total||i!==r.etag))throw new H("download-object-changed","\u5206\u6BB5\u4E0B\u8F7D\u671F\u95F4\u6587\u4EF6\u7248\u672C\u53D1\u751F\u53D8\u5316\uFF0C\u8BF7\u91CD\u65B0\u4E0B\u8F7D");return {end:c,total:s,etag:i}}function Ao(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=hd();async function o(a,c){if(!a.ok)throw new H("download-range-failed",`\u5A92\u4F53\u4E0B\u8F7D\u5931\u8D25\uFF1AHTTP ${a.status}`);return c.onProgress===void 0||a.body===null?c.preferBlob===true?await a.blob():new Uint8Array(await a.arrayBuffer()):wd(a,c.onProgress,c.expectedBytes,c.preferBlob===true)}async function i(a){let c=new AbortController,s=()=>c.abort(a.signal?.reason);a.signal?.aborted?s():a.signal?.addEventListener("abort",s,{once:true});let l=c.signal,g=[],S=[],y,u="",h=1,v,T=false,d=p=>{T||(T=true,v=p,c.abort());};function f(p,b){S[p]=b;let M=S.reduce((P,w)=>P+w,0),_=y.total;a.onProgress?.({percent:Math.min(99,Math.round(M/_*100)),bytesTransferred:M,bytesTotal:_});}async function C(p){let b=p*t,M=y===void 0?b+t-1:Math.min(b+t-1,y.total-1);return r(l,async()=>{let _=await fetch(a.url,{signal:l,cache:"no-store",headers:{Range:`bytes=${b}-${M}`}});if(p===0&&_.status===200)return n?.record("info","sdk","media","download-range-unavailable",()=>({data:{reason:"server-returned-full-response"}})),g[0]=await o(_,{...a,preferBlob:true}),"single";let P=bd(_,b,M,y);y===void 0&&(y=P,u=_.headers.get("content-type")??"",n?.record("debug","sdk","media","download-range-started",()=>({data:{bytesTotal:P.total,partSizeBytes:t,concurrency:3}})));let w=await o(_,{...a,preferBlob:true,onProgress:A=>f(p,A.bytesTransferred)});if(w.size!==P.end-b+1)throw new H("download-range-invalid","\u5206\u6BB5\u4E0B\u8F7D\u5B57\u8282\u6570\u4E0E Content-Range \u4E0D\u4E00\u81F4");return g[p]=w,f(p,w.size),"range"})}try{let p=await C(0);if(p==="range"){let b=Math.ceil(y.total/t),M=Array.from({length:Math.min(3,b-1)},async()=>{try{for(;!l.aborted&&h<b;)await C(h++);}catch(_){d(_);}});if(await Promise.allSettled(M),T)throw v}if(l.aborted)throw new DOMException("\u5A92\u4F53\u4E0B\u8F7D\u5DF2\u53D6\u6D88","AbortError");return p==="single"?g[0]:new Blob(g,{type:u})}catch(p){throw c.abort(),n?.record("warn","sdk","media","download-range-failed",()=>({data:{code:p instanceof H?p.code:"download-failed"}})),p}finally{a.signal?.removeEventListener("abort",s);}}return async function(c){return e&&c.preferBlob===true&&Number.isFinite(c.expectedBytes)&&c.expectedBytes>t?i(c):r(c.signal,async()=>{if(c.onProgress!==void 0&&typeof XMLHttpRequest<"u")return Cd(c);let s=await fetch(c.url,c.signal===void 0?{}:{signal:c.signal});return o(s,c)})}}function Cd(e){let n=e.preferBlob===true;return new Promise((t,r)=>{let o=new XMLHttpRequest,i=false,a=()=>{},c=()=>{e.signal?.removeEventListener("abort",a),o.onprogress=null,o.onload=null,o.onerror=null,o.onabort=null;},s=l=>{i||(i=true,c(),l());};if(a=()=>{o.abort(),s(()=>r(new DOMException("media download canceled","AbortError")));},o.open("GET",e.url,true),o.responseType=n?"blob":"arraybuffer",o.onprogress=l=>{let g=e.expectedBytes!==void 0&&Number.isFinite(e.expectedBytes)&&e.expectedBytes>0?Math.floor(e.expectedBytes):0,S=l.lengthComputable&&l.total>0?l.total:g,y=S>0?Math.min(99,Math.round(l.loaded/S*100)):0;e.onProgress?.({percent:y,bytesTransferred:l.loaded,bytesTotal:S});},o.onload=()=>{if(o.status<200||o.status>=300){s(()=>r(new Error(`media download \u5931\u8D25\uFF1AHTTP ${o.status}`)));return}let l=o.response;if(n){if(!(typeof Blob<"u"&&l instanceof Blob)){s(()=>r(new Error("media download \u5931\u8D25\uFF1AXHR \u672A\u8FD4\u56DE Blob")));return}s(()=>t(l));return}if(!(l instanceof ArrayBuffer)){s(()=>r(new Error("media download \u5931\u8D25\uFF1AXHR \u672A\u8FD4\u56DE ArrayBuffer")));return}s(()=>t(new Uint8Array(l)));},o.onerror=()=>s(()=>r(new Error("media download \u5931\u8D25\uFF1Anetwork"))),o.onabort=()=>s(()=>r(new DOMException("media download canceled","AbortError"))),e.signal?.aborted){a();return}e.signal?.addEventListener("abort",a,{once:true}),o.send();})}async function wd(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,S){c+=g.byteLength;let y=a>0?Math.min(99,Math.round(c/a*100)):0;n({percent:y,bytesTransferred:c,bytesTotal:a}),S.enqueue(g);}})),l=new Response(s,{headers:e.headers});return r?await l.blob():new Uint8Array(await l.arrayBuffer())}var ot="is missing ETag in UploadPart response";function it(e){if(typeof e!="object"||e===null)return false;let n=e;return n.name==="NoSuchUpload"||n.Code==="NoSuchUpload"}function Pd(e,n,t){return e instanceof Uint8Array?e.subarray(n,t):e.slice(n,t)}async function _o(e,n,t){return e.transformPart===void 0?n:await e.transformPart(n instanceof Blob?n:new Blob([n]),t)}function xo(e,n){let t=new Map,r=n,o=n;function i(){if(e.onProgress===void 0)return;let a=r;for(let l of t.values())a+=l;o=Math.max(o,a);let c=e.sourceBytes,s=c>0?Math.min(99,Math.round(o/c*100)):0;e.onProgress({percent:s,bytesTransferred:o,bytesTotal:c,phase:c>0&&o>=c?"finalizing":"transferring"});}return {trackPart(a,c){t.set(a,c),i();},completePart(a,c){t.delete(a),r+=c,i();},report:i}}function Eo(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 ko(e,n){let t=xo(n,0),r=Eo(e.handler,t);try{let o=await _o(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 at(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 st(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=at(e.resume,n,t.sourceBytes,r),c=new Map;if(a!==void 0)for(let f of a)c.set(f.partNumber,f);let s=a===void 0?"":e.resume.uploadId;if(s===""){let f=await n.client.send(new n.commands.CreateMultipartUploadCommand({Bucket:n.bucket,Key:n.key,...n.mimeType!==void 0&&n.mimeType!==""?{ContentType:n.mimeType}:{}}));if(f.UploadId===void 0||f.UploadId==="")throw new Error("media upload: CreateMultipartUpload \u672A\u8FD4\u56DE UploadId");s=f.UploadId,c.clear();}let l=f=>Math.min(r,t.sourceBytes-(f-1)*r),g=0;for(let f of c.keys())g+=l(f);let S=xo(t,g),y=Eo(n.handler,S),u=()=>({bucket:n.bucket,key:n.key,uploadId:s,partSize:r,sourceBytes:t.sourceBytes,parts:[...c.values()].sort((f,C)=>f.partNumber-C.partNumber)});e.onResumable?.(u()),S.report();let h=new AbortController,v=()=>h.abort();t.signal?.addEventListener("abort",v,{once:true}),t.signal?.aborted&&v();let T=1;async function d(){for(;;){if(h.signal.aborted)return;let f=T;if(T+=1,f>i)return;if(c.has(f))continue;let C=(f-1)*r,p=Math.min(C+r,t.sourceBytes),b=await _o(t,Pd(t.data,C,p),f),M=await n.client.send(new n.commands.UploadPartCommand({Bucket:n.bucket,Key:n.key,UploadId:s,PartNumber:f,Body:b}),{abortSignal:h.signal});if(M.ETag===void 0||M.ETag==="")throw new Error(`media upload: Part ${f} ${ot}`);c.set(f,{partNumber:f,etag:M.ETag}),S.completePart(f,p-C),e.onResumable?.(u());}}try{let f;if(await Promise.allSettled(Array.from({length:Math.max(1,o)},async()=>{try{await d();}catch(C){f??={cause:C},v();}})),f!==void 0)throw f.cause;if(t.signal?.aborted)throw new DOMException("media upload canceled","AbortError");if(await n.client.send(new n.commands.CompleteMultipartUploadCommand({Bucket:n.bucket,Key:n.key,UploadId:s,MultipartUpload:{Parts:[...c.values()].sort((C,p)=>C.partNumber-p.partNumber).map(C=>({PartNumber:C.partNumber,ETag:C.etag}))}}),t.signal===void 0?{}:{abortSignal:t.signal}),t.signal?.aborted)throw new DOMException("media upload canceled","AbortError")}finally{t.signal?.removeEventListener("abort",v),y();}}async function hn(e,n){try{await e.client.send(new e.commands.AbortMultipartUploadCommand({Bucket:n.bucket,Key:n.key,UploadId:n.uploadId}));}catch(t){if(!it(t))throw t}}var Id=16*1024*1024,Sd=3,vd=6,To=8;function Md(e){return Math.ceil(e/To)*To}function Ad(e){if(e instanceof Uint8Array)return e.byteLength;if(typeof Blob<"u"&&e instanceof Blob)return e.size}var Ro="\u5206\u7247\u4E0A\u4F20\u8981\u6C42\u8BE5 bucket \u7684 CORS \u653E\u884C POST\uFF08Create/CompleteMultipartUpload\uFF09\u3001DELETE\uFF08AbortMultipartUpload\uFF09\u5E76 ExposeHeaders: ETag";function _d(e){return e instanceof Error&&e.message.includes(ot)}function xd(e,n,t){return t!==void 0?new H("multipart-abort-failed",`media upload: \u5206\u7247\u4E0A\u4F20\u5931\u8D25\u540E\u7684 AbortMultipartUpload \u6E05\u7406\u672A\u6210\u529F\uFF0C\u5DF2\u4E0A\u4F20\u5206\u7247\u53EF\u80FD\u6B8B\u7559\u5728 bucket \u4E2D\u5E76\u7EE7\u7EED\u8BA1\u8D39\uFF08\u5EFA\u8BAE\u6876\u4FA7\u914D\u7F6E AbortIncompleteMultipartUpload \u751F\u547D\u5468\u671F\u89C4\u5219\uFF09\uFF1B${Ro}`,{cause:t}):_d(e)?new H("multipart-etag-missing","media upload: \u5206\u7247\u54CD\u5E94\u8BFB\u4E0D\u5230 ETag\uFF0C\u8FD9\u662F bucket CORS \u7F3A\u5C11 ExposeHeaders: ETag \u7684\u914D\u7F6E\u95EE\u9898\uFF0C\u4E0D\u662F\u7F51\u7EDC\u95EE\u9898",{cause:e}):n&&!(e instanceof Error&&e.name==="AbortError")?new H("multipart-upload-failed",`media upload: \u5206\u7247\u4E0A\u4F20\u5931\u8D25\uFF1B${Ro}`,{cause:e}):e}var Ed=new Set(["upload-source-invalid","multipart-etag-missing","multipart-abort-failed"]);function Do(e,n){let t=e?.transport;if(!(t?.session===void 0||n!==void 0&&t.logicalBucket!==n))return t}var Ye;function Uo(){if(Ye!==void 0)return Ye;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 Ye===n&&(Ye=void 0),t});return Ye=n,n}function kd(e){if(e===void 0)return "";let n=e.lastIndexOf(".");return n>=0?e.slice(n):""}function Td(e){return globalThis.crypto.randomUUID()+kd(e)}function Bo(e,n){let t=e.keyPrefix??"";return t===""||n.startsWith(t)?n:`${t}${n}`}function Rd(e,n){let t=$t(e.getUploadCredentials),r=0;function o(){let u=Math.min(Sd,Math.max(1,vd-r));r+=u;let h=false;return {queueSize:u,release(){h||(h=true,r-=u);}}}function i(u,h){if(u==="avatar")return e.avatarBucket??"";if(h==="channel"){let v=e.channelBuckets?.[u]??"";if(v!=="")return v}return e.buckets[u]??""}function a(u,h,v){let{region:T}=h;return new u.S3Client({region:T,credentials:{accessKeyId:h.accessKeyId,secretAccessKey:h.secretAccessKey,sessionToken:h.sessionToken,...h.expiresAtSeconds===void 0?{}:{expiration:new Date(h.expiresAtSeconds*1e3)}},useAccelerateEndpoint:(e.useAccelerateEndpoint??true)&&!T.toLowerCase().startsWith("cn-"),requestChecksumCalculation:"WHEN_REQUIRED",requestHandler:v})}async function c(u,h,v,T,d,f,C){let p=Md(Id),b=e.multipartUpload!==false&&C>p,M=b?o():{queueSize:1,release:()=>{}},_=new u.XhrHttpHandler({}),P=a(u,d,_),w={client:P,handler:_,commands:u.commands,bucket:d.bucket,key:f,...h.mimeType!==void 0&&h.mimeType!==""?{mimeType:h.mimeType}:{}},A={data:h.data,sourceBytes:C,...h.onProgress===void 0?{}:{onProgress:h.onProgress},...h.signal===void 0?{}:{signal:h.signal},...h.transformPart===void 0?{}:{transformPart:h.transformPart}},m=h.resume,I=Do(m),x=b&&I?.logicalBucket===v&&at(I.session,w,C,p)!==void 0,E=x?I?.session:void 0,D=U=>{E=U;let B=0;for(let F of U.parts)B+=Math.min(U.partSize,U.sourceBytes-(F.partNumber-1)*U.partSize);h.onResumable?.({bytesUploaded:B,transport:{logicalBucket:v,objectName:T,session:U}});},k;try{if(I!==void 0&&!x){delete h.resume;try{I.logicalBucket===v?await hn(w,I.session):await S(m);}catch{n?.record("warn","sdk","media","upload-resume-abandon-failed",()=>({data:{code:"multipart-abort-failed",reason:"resume-target-changed"}}));}}if(h.signal?.aborted)throw new DOMException("media upload canceled","AbortError");if(!b){await ko(w,A);return}let U=E;try{await st({target:w,content:A,partSize:p,queueSize:M.queueSize,...U===void 0?{}:{resume:U},onResumable:D});}catch(B){if(h.signal?.aborted||!it(B)||U===void 0)throw B;E=void 0,await st({target:w,content:A,partSize:p,queueSize:M.queueSize,onResumable:D});}}catch(U){if(h.signal?.aborted===true&&h.signal.reason!=="offline"&&E!==void 0)try{await hn(w,E);}catch(B){k=B;}throw xd(U,b,k)}finally{M.release(),P.destroy();}}async function s(u,h,v){let T=i(h,v);if(T==="")throw new H("bucket-unconfigured",`media upload: kind=${h} \u7684\u903B\u8F91\u6876\u540D\u672A\u914D\u7F6E\uFF08\u5BBF\u4E3B IM \u5BF9\u8C61\u5B58\u50A8\u914D\u7F6E\u7F3A\u8BE5\u8D44\u6E90\u7C7B\u578B\uFF09`);let d=Ad(u.data);if(d===void 0)throw new H("upload-source-invalid","media upload: \u4E0A\u4F20\u5185\u5BB9\u5FC5\u987B\u662F Uint8Array \u6216 Blob");let f=await Uo(),C=Do(u.resume,T)?.objectName??Td(u.filename),p={...u,onResumable:_=>{p.resume=_,u.onResumable?.(_);}},b=await t.resolve(T),M=Bo(b,C);try{await c(f,p,T,C,b,M,d);}catch(_){if(u.signal?.aborted||_ instanceof H&&Ed.has(_.code))throw _;b=await t.resolve(T,{forceRefresh:true}),M=Bo(b,C),await c(f,p,T,C,b,M,d);}if(u.signal?.aborted)throw new DOMException("media upload canceled","AbortError");return u.onProgress?.({percent:100,bytesTransferred:d,bytesTotal:d,phase:"finalizing"}),{url:`${b.dnsPoint}/${M}`}}function l(u){return s(u,u.kind,u.conversationType)}function g(u){return s(u,"avatar")}async function S(u){let h=u.transport;if(h?.session===void 0||h.session.uploadId==="")return;let v=await Uo(),T=await t.resolve(h.logicalBucket),d=new v.XhrHttpHandler({}),f=a(v,T,d);try{await hn({client:f,commands:v.commands},h.session);}finally{f.destroy();}}let y=Ao(e.rangeDownload!==false,n);return {upload:l,uploadAvatar:g,download:y,abandonUpload:S}}function Dd(){let e=globalThis;return typeof e.addEventListener=="function"&&typeof e.removeEventListener=="function"?e:void 0}function Ud(e,n={}){let t=n.target!==void 0?n.target:Dd(),r=n.visibilitySource!==void 0?n.visibilitySource:globalThis.document,o=n.pageLifecycleSource!==void 0?n.pageLifecycleSource:t,i=false,a=()=>e.onOnline?.(),c=()=>e.onOffline?.(),s=()=>{r!=null&&r.visibilityState==="visible"&&e.onVisible?.();},l=()=>e.onPageHide?.(),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",l),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",l),o.removeEventListener("pageshow",g)));},get running(){return i}}}var Nd=13,Kd=2*1024*1024*1024,Oo=1024*1024*1024,Gd=512*1024*1024,Ld=256*1024*1024,Hd=64*1024,ct="channel:list-version",No="schema:conversation-key-v1",dt="default",Ce="\uFFFF";function Ko(e){if(!(e===void 0||!/^\d+$/.test(e)))return e.replace(/^0+(?=\d)/,"")}function Fd(e,n){let t=Ko(e),r=Ko(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 Qe(e){return `conversation:${Ba$1(e)}`}function ut(e,n){return `${Ba$1(e)}\0${n}`}function $d(e){let n=Ba$1(e.conversation);return {...e,key:ut(e.conversation,e.messageId),conversationKey:n,conversation:{...e.conversation},sContent:e.sContent.slice()}}function Jd(e){let{key:n,conversationKey:t,...r}=e;return {...r,conversation:{...r.conversation},sContent:r.sContent.slice()}}function Ho(e){return {...e,conversationKey:Ba$1(ya$1(e))}}function we(e){let{conversationKey:n,...t}=e;return t}function bn(e){return {...e,id:Ba$1(za$1(e)),conversationId:e.id}}function lt(e){if(e.conversationId===void 0)return e;let{conversationId:n,...t}=e;return {...t,id:n}}function pt(e){return e.conversationType===void 0?e:{...e,conversationId:Ba$1(e),storageConversationId:e.conversationId}}function Go(e){if(e.storageConversationId===void 0)return e;let{storageConversationId:n,...t}=e;return {...t,conversationId:n}}function Fo(e){return {...e,conversationId:Ba$1(Aa$1(e)),storageConversationId:e.conversationId}}function ft(e){if(e.storageConversationId===void 0)return e;let{storageConversationId:n,...t}=e;return {...t,conversationId:n}}function jd(e){return {...e,conversationKey:Ba$1(e.ref)}}function Vd(e){let{conversationKey:n,...t}=e;return t}function qd(e){return typeof e=="string"?e:e.conversationId}function Xe(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 zd(e){let n=e.transaction(["messages","sessions","readStates","pinnedMessages","meta"],"readwrite");try{let t=n.objectStore("meta");if((await t.get(No))?.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(Ho(s));let o=n.objectStore("sessions"),i=new Map;for(let s of await o.getAll()){if(s.conversationId!==void 0)continue;let l=lt(s);i.set(l.id,l.type),await o.put(bn(l)),await o.delete(s.id);}let a=n.objectStore("readStates");for(let s of await a.getAll()){if(s.storageConversationId!==void 0)continue;let l=s.conversationType??i.get(s.conversationId);if(l===void 0)continue;let g={...s,conversationType:l};await a.put(pt(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 l=ft(s);await c.put(Fo(l)),await c.delete(s.conversationId);}await t.put({key:No,value:!0}),await n.done;}catch(t){try{n.abort();}catch{}try{await n.done;}catch{}throw t}}function Lo(e){return `${e.kind}:${encodeURIComponent(e.messageId)}:${e.resourceVersion}`}async function Wd(e,n){let t=n.namespaceFactory.forAccount(e).name("durable","storage","indexed-db");typeof indexedDB>"u"||await deleteDB(t);}function Yd(e){let{namespaceFactory:n}=e,t=null,r=null,o=0,i=Promise.resolve(),a=0,c=e.mediaAssetCache?.maxPendingWriteBytes??Ld;if(!Number.isSafeInteger(c)||c<=0)throw new RangeError("\u5A92\u4F53\u8D44\u4EA7\u7F13\u5B58\u5F85\u5199\u5185\u5B58\u9884\u7B97\u5FC5\u987B\u662F\u6B63\u6574\u6570");function s(){if(t===null)throw new Error("ImStoragePort \u672A open\uFF1A\u8BF7\u5148 open({ namespace }) \u518D\u8BFB\u5199");return t}async function l(d){if(typeof d!="string")return;let f=IDBKeyRange.bound([d,""],[d,Ce]),C=(await s().transaction("messages").store.index("by_conv_sort").getAll(f)).map(we);Xe(d,C);}function g(d){let f=i.then(d,d);return i=f.then(()=>{},()=>{}),f}function S(d,f){if(d!==o||f===null||f!==r)throw new Error("\u5A92\u4F53\u8D44\u4EA7\u7F13\u5B58\u8D26\u53F7\u4EE3\u9645\u5DF2\u5931\u6548")}function y(){return Math.max(0,Math.floor(e.mediaAssetCache?.now?.()??Date.now()))}async function u(d){let f=e.mediaAssetCache?.estimateStorage??(async()=>typeof navigator>"u"||navigator.storage?.estimate===void 0?{}:await navigator.storage.estimate());try{let{quota:C,usage:p}=await f();if(C===void 0||!Number.isFinite(C)||C<=0)return Oo;let b=d.reduce((P,w)=>P+w.byteLength,0),M=Math.max(0,(p??0)-b),_=Math.max(Gd,Math.floor(C*.2));return Math.max(0,Math.min(Kd,Math.floor(C-M-_)))}catch{return Oo}}async function h(d,f,C){if(d.length===0)return;S(f,C);let p=s().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all(d.flatMap(b=>[p.objectStore("mediaAssets").delete(b),p.objectStore("mediaAssetMeta").delete(b)])),await p.done;}async function v(d,f,C,p){S(d,f);let b=s(),M=e.mediaAssetCache?.strategies;if(M===void 0)return;let _=p??await b.getAll("mediaAssetMeta");S(d,f);let P=new Set;for(let I of M.list()){let x=_.filter(k=>k.kind===I.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<=I.softMaxBytes&&D<=I.maxEntries)break;P.add(k.key),E-=k.byteLength,D-=1;}}let w=_.filter(I=>!P.has(I.key)).sort((I,x)=>I.lastAccessedAt-x.lastAccessedAt),A=Math.max(0,Math.min(await u(_),C??Number.POSITIVE_INFINITY)),m=w.reduce((I,x)=>I+x.byteLength,0);for(let I of w){if(m<=A)break;P.add(I.key),m-=I.byteLength;}await h([...P],d,f);}async function T(d,f,C){S(f,C);let p=e.mediaAssetCache?.strategies.resolve(d.kind);if(p===void 0)return "skipped";let b=d.blob,M=b.size,_=await s().getAll("mediaAssetMeta"),P=await u(_);if(S(f,C),M===0||M>p.maxEntryBytes||P<=0||M>Math.floor(P/2))return "skipped";let w=Lo(d),A=y(),m=_.find(k=>k.key===w),I={key:w,kind:d.kind,messageId:d.messageId,resourceVersion:d.resourceVersion,byteLength:M,...d.mimeType===void 0?{}:{mimeType:d.mimeType},createdAt:m?.createdAt??A,lastAccessedAt:A},x=async()=>{S(f,C);let k=s().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all([k.objectStore("mediaAssets").put({key:w,blob:b}),k.objectStore("mediaAssetMeta").put(I)]),await k.done;},E=false;try{await x();}catch(k){if(!(k instanceof DOMException)||k.name!=="QuotaExceededError")throw k;E=true,await v(f,C,Math.max(0,P-M)),await x();}let D=m===void 0?[..._,I]:_.map(k=>k.key===w?I:k);return await v(f,C,void 0,E?void 0:D),S(f,C),await s().get("mediaAssets",w)===void 0?"skipped":"stored"}return {async open({namespace:d}){if(t!==null&&r===d)return;t!==null&&(t.close(),t=null),r=d;let f=++o,C=n.forAccount(d).name("durable","storage","indexed-db"),p=await openDB(C,Nd,{upgrade(b,M,_,P){if(b.objectStoreNames.contains("messages"))P.objectStore("messages").indexNames.contains("by_conversation_key_sort")||P.objectStore("messages").createIndex("by_conversation_key_sort",["conversationKey","sortKey"]);else {let w=b.createObjectStore("messages",{keyPath:"id"});w.createIndex("by_conv_sort",["conversationId","sortKey"]),w.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 w=b.createObjectStore("mediaAssetMeta",{keyPath:"key"});w.createIndex("by_kind_access",["kind","lastAccessedAt"]),w.createIndex("by_access","lastAccessedAt");}b.objectStoreNames.contains("decryptRecoveries")||b.createObjectStore("decryptRecoveries",{keyPath:"key"}).createIndex("by_conversation","conversationKey"),M>0&&M<13&&(P.objectStore("mediaAssets").clear(),P.objectStore("mediaAssetMeta").clear());}});if(f!==o){p.close();return}try{await zd(p);}catch(b){throw p.close(),b}if(f!==o){p.close();return}t=p;},async close(){o+=1,r=null,t!==null&&(t.close(),t=null);},async clearRebuildableCaches(){let d=o,f=r;await g(async()=>{S(d,f);let p=s().transaction(["userProfiles","groupMembers","groupProfiles","channelProfiles","channelMembers","channelMemberSnapshots","channelMentionCandidateSnapshots","mediaAssets","mediaAssetMeta","meta"],"readwrite");await Promise.all([p.objectStore("userProfiles").clear(),p.objectStore("groupMembers").clear(),p.objectStore("groupProfiles").clear(),p.objectStore("channelProfiles").clear(),p.objectStore("channelMembers").clear(),p.objectStore("channelMemberSnapshots").clear(),p.objectStore("channelMentionCandidateSnapshots").clear(),p.objectStore("mediaAssets").clear(),p.objectStore("mediaAssetMeta").clear(),p.objectStore("meta").delete(ct),p.done]);});},async get(d){let f=o,C=r;return await g(async()=>{if(S(f,C),e.mediaAssetCache?.strategies.resolve(d.kind)===void 0)return null;let p=Lo(d),b=s(),[M,_]=await Promise.all([b.get("mediaAssets",p),b.get("mediaAssetMeta",p)]);return S(f,C),M===void 0||_===void 0?(await h([p],f,C),null):(await b.put("mediaAssetMeta",{..._,lastAccessedAt:y()}),{kind:_.kind,messageId:_.messageId,resourceVersion:_.resourceVersion,blob:M.blob,..._.mimeType===void 0?{}:{mimeType:_.mimeType}})})},async put(d){let f=o,C=r;S(f,C);let p=d.blob.size;if(p>c||a+p>c)return "skipped";a+=p;try{return await g(()=>T(d,f,C))}finally{a=Math.max(0,a-p);}},async clear(){let d=o,f=r;await g(async()=>{S(d,f);let C=s().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all([C.objectStore("mediaAssets").clear(),C.objectStore("mediaAssetMeta").clear(),C.done]);});},async getMessage(d,f){let C=await s().get("messages",f);if(C===void 0)return null;let p=we(C);return Ba$1(ya$1(p))===Ba$1(d)?p:null},async getMessages(d,f){let C=typeof d=="string"?"by_conv_sort":"by_conversation_key_sort",p=typeof d=="string"?d:Ba$1(d);if(await l(d),f.beforeSortKey===void 0&&f.afterSortKey!==void 0){let P=IDBKeyRange.bound([p,f.afterSortKey],[p,Ce]),w=[],A=await s().transaction("messages").store.index(C).openCursor(P,"next");for(;A!==null&&w.length<f.limit;)w.push(A.value),A=await A.continue();return w.map(we)}let b=f.beforeSortKey===void 0?IDBKeyRange.bound([p,""],[p,Ce]):IDBKeyRange.bound([p,""],[p,f.beforeSortKey],false,true),M=[],_=await s().transaction("messages").store.index(C).openCursor(b,"prev");for(;_!==null&&M.length<f.limit;)M.push(_.value),_=await _.continue();return M.reverse().map(we)},async saveMessages(d){if(d.length===0)return;let f=s().transaction("messages","readwrite");await Promise.all([...d.map(C=>f.store.put(Ho(C))),f.done]);},async searchMessages(d,f){let C=Ba$1(d),p=f.keyword?.trim()??"",b=f.contentTypes;if(p===""&&(b===void 0||b.length===0))return {items:[],exhausted:true};let M=p===""?void 0:await aa$1(p),_$1=f.beforeSortKey===void 0?IDBKeyRange.bound([C,""],[C,Ce]):IDBKeyRange.bound([C,""],[C,f.beforeSortKey],false,true),P=2e3,w=[],A=0,m,I=await s().transaction("messages").store.index("by_conversation_key_sort").openCursor(_$1,"prev");for(;I!==null&&w.length<f.limit&&A<P;){let E=ea$1(we(I.value));A+=1,m=E.sortKey;let D=b===void 0||b.includes(E.contentType),k=M===void 0||M.match(_(E))!==null;D&&k&&w.push(E),I=await I.continue();}let x=I===null;return {items:w,exhausted:x,...x?{}:{nextBeforeSortKey:m}}},async getDecryptRecoveries(d){let f=Ba$1(d);return (await s().getAllFromIndex("decryptRecoveries","by_conversation",f)).map(Jd)},async saveDecryptRecovery(d){if(d.sContent.byteLength===0||d.sContent.byteLength>Hd)throw new Error(`\u89E3\u5BC6\u6062\u590D\u5BC6\u6587\u5B57\u8282\u957F\u5EA6\u975E\u6CD5\uFF1A${d.sContent.byteLength}`);await s().put("decryptRecoveries",$d(d));},async deleteDecryptRecovery(d,f){await s().delete("decryptRecoveries",ut(d,f));},async deleteConversationDecryptRecoveries(d){let f=Ba$1(d),C=s().transaction("decryptRecoveries","readwrite"),p=await C.store.index("by_conversation").openCursor(IDBKeyRange.only(f));for(;p!==null;)await p.delete(),p=await p.continue();await C.done;},async getSessions(){return (await s().getAll("sessions")).map(lt)},async saveSessions(d){if(d.length===0)return;let f=s().transaction("sessions","readwrite");for(let C of d)await f.store.put(bn(C)),await f.store.delete(C.id);await f.done;},async deleteSession(d){if(typeof d!="string"){let p=s().transaction(["sessions","conversationBackgrounds"],"readwrite");await p.objectStore("sessions").delete(Ba$1(d)),await p.objectStore("conversationBackgrounds").delete(Qe(d)),await p.done;return}let f=(await s().getAll("sessions")).map(lt).filter(p=>p.id===d);Xe(d,f.map(p=>({conversationType:p.type})));let C=s().transaction(["sessions","conversationBackgrounds"],"readwrite");if(f[0]!==void 0){let p=za$1(f[0]);await C.objectStore("sessions").delete(Ba$1(p)),await C.objectStore("conversationBackgrounds").delete(Qe(p));}await C.objectStore("sessions").delete(d),await C.done;},async deleteReadState(d){if(typeof d!="string"){await s().delete("readStates",Ba$1(d));return}let C=(await s().getAll("readStates")).map(Go).filter(p=>p.conversationId===d).filter(p=>p.conversationType!==void 0);Xe(d,C),C[0]!==void 0&&await s().delete("readStates",Ba$1(C[0])),await s().delete("readStates",d);},async deleteMessage(d,f,C){let p=s().transaction(["messages","sessions","decryptRecoveries"],"readwrite"),b=await p.objectStore("messages").get(f);if(b!==void 0){let M=we(b);if(M.conversationType!==d.conversationType||M.conversationId!==d.conversationId)return await p.done,false;await p.objectStore("messages").delete(f);}return await p.objectStore("decryptRecoveries").delete(ut(d,f)),C!==void 0&&await p.objectStore("sessions").put(bn(C)),await p.done,b!==void 0},async deleteConversationMessages(d){let f=qd(d),C=typeof d=="string"?"by_conv_sort":"by_conversation_key_sort",p=typeof d=="string"?d:Ba$1(d),b=IDBKeyRange.bound([p,""],[p,Ce]),M=s().transaction(["messages","decryptRecoveries"],"readwrite"),_=M.objectStore("messages"),P=M.objectStore("decryptRecoveries"),w=[];if(typeof d=="string"){let m=(await _.index("by_conv_sort").getAll(b)).map(we);w=(await P.getAll()).filter(I=>I.conversation.conversationId===d),Xe(f,[...m,...w.map(I=>({conversationType:I.conversation.conversationType}))]);}let A=await _.index(C).openCursor(b);for(;A!==null;)await A.delete(),A=await A.continue();if(typeof d=="string")for(let m of w)await P.delete(m.key);else {let m=await P.index("by_conversation").openCursor(IDBKeyRange.only(Ba$1(d)));for(;m!==null;)await m.delete(),m=await m.continue();}await M.done;},async clearConversationHistory(d,f,C){let p=Ba$1(d),b=IDBKeyRange.bound([p,""],[p,Ce]),M=s().transaction(["messages","sessions","readStates","decryptRecoveries"],"readwrite"),_=await M.objectStore("messages").index("by_conversation_key_sort").openCursor(b);for(;_!==null;)await _.delete(),_=await _.continue();let P=await M.objectStore("decryptRecoveries").index("by_conversation").openCursor(IDBKeyRange.only(p));for(;P!==null;)await P.delete(),P=await P.continue();f!==void 0&&await M.objectStore("sessions").put(bn(f)),C!==void 0&&(await M.objectStore("readStates").put(pt(C)),await M.objectStore("readStates").delete(C.conversationId)),await M.done;},async getReadStates(){return (await s().getAll("readStates")).map(Go)},async saveReadState(d){let f=s().transaction("readStates","readwrite");await f.store.put(pt(d)),d.conversationType!==void 0&&await f.store.delete(d.conversationId),await f.done;},async getDrafts(){return (await s().getAll("drafts")).map(Vd)},async saveDraft(d){await s().put("drafts",jd(d));},async deleteDraft(d){await s().delete("drafts",Ba$1(d));},async getConversationBackground(d){return (await s().get("conversationBackgrounds",Qe(d)))?.background??null},async saveConversationBackground(d,f){let C=Qe(d);await s().put("conversationBackgrounds",{key:C,background:f});},async deleteConversationBackground(d){await s().delete("conversationBackgrounds",Qe(d));},async getDefaultConversationBackground(){return (await s().get("conversationBackgrounds",dt))?.background??null},async saveDefaultConversationBackground(d){await s().put("conversationBackgrounds",{key:dt,background:d});},async deleteDefaultConversationBackground(){await s().delete("conversationBackgrounds",dt);},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(ft)},async savePinnedMessage(d){let f=s().transaction("pinnedMessages","readwrite");await f.store.put(Fo(d)),await f.store.delete(d.conversationId),await f.done;},async removePinnedMessage(d){if(typeof d!="string"){await s().delete("pinnedMessages",Ba$1(d));return}let f=(await s().getAll("pinnedMessages")).map(ft).filter(C=>C.conversationId===d);Xe(d,f),f[0]!==void 0&&await s().delete("pinnedMessages",Ba$1(Aa$1(f[0]))),await s().delete("pinnedMessages",d);},async getMeta(d){let f=await s().get("meta",d);return f===void 0?null:f.value},async setMeta(d,f){await s().put("meta",{key:d,value:f});},async getUserProfile(d){return await s().get("userProfiles",d)??null},async saveUserProfile(d){await s().put("userProfiles",d);},async getGroupMembers(d){return await s().get("groupMembers",d)??null},async saveGroupMembers(d){await s().put("groupMembers",d);},async getGroupProfile(d){return await s().get("groupProfiles",d)??null},async saveGroupProfile(d){await s().put("groupProfiles",d);},async getChannelProfile(d){return await s().get("channelProfiles",d)??null},async getChannelProfiles(){return s().getAll("channelProfiles")},async saveChannelProfiles(d){if(d.length===0)return;let f=s().transaction("channelProfiles","readwrite");await Promise.all([...d.map(C=>f.store.put(C)),f.done]);},async getChannelListVersion(){let d=await s().get("meta",ct);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:ct,value:d});},async getChannelMembers(d,f){if(f.length===0)return [];let C=s().transaction("channelMembers"),p=await Promise.all(f.map(b=>C.store.get([d,b])));return await C.done,p.filter(b=>b!==void 0)},async saveChannelMembers(d){if(d.length===0)return;let f=s().transaction("channelMembers","readwrite");for(let C of d){let p=await f.store.get([C.channelId,C.userId]);p!==void 0&&Fd(C.updateVersion,p.updateVersion)<0||await f.store.put(C);}await f.done;},async deleteChannelMembers(d){let f=IDBKeyRange.bound([d,""],[d,Ce]),C=s().transaction("channelMembers","readwrite"),p=await C.store.openCursor(f);for(;p!==null;)await p.delete(),p=await p.continue();await C.done;},async getChannelMemberSnapshot(d){return await s().get("channelMemberSnapshots",d)??null},async saveChannelMemberSnapshot(d){await s().put("channelMemberSnapshots",d);},async deleteChannelMemberSnapshot(d){await s().delete("channelMemberSnapshots",d);},async getChannelMentionCandidateSnapshot(d){return await s().get("channelMentionCandidateSnapshots",d)??null},async saveChannelMentionCandidateSnapshot(d){await s().put("channelMentionCandidateSnapshots",d);},async deleteChannelMentionCandidateSnapshot(d){await s().delete("channelMentionCandidateSnapshots",d);}}}function Qd(e={}){let n=e.createSocket??(u=>new globalThis.WebSocket(u)),t=e.connectTimeoutMs??1e4,r={open:new Set,message:new Set,close:new Set,error:new Set},o,i,a="idle",c;function s(u,h){for(let v of [...r[u]])v(h);}function l(){c!==void 0&&(clearTimeout(c),c=void 0);}function g(u,h){h!==void 0&&(u.removeEventListener("open",h.onOpen),u.removeEventListener("message",h.onMessage),u.removeEventListener("error",h.onError),u.removeEventListener("close",h.onClose));}function S(){if(l(),o!==void 0){g(o,i);try{o.close(1e3);}catch{}o=void 0;}i=void 0;}function y(u,h,v){let T={onOpen:()=>{u===o&&(l(),a="open",s("open",{endpoint:h}));},onMessage:d=>{if(u!==o)return;let f=d?.data;if(f instanceof ArrayBuffer){s("message",{data:f});return}s("error",{error:new Error(`WsTransport\uFF1A\u6536\u5230\u975E ArrayBuffer \u6D88\u606F\uFF08${typeof f}\uFF09\uFF0C\u5DF2\u5FFD\u7565`)});},onError:d=>{u===o&&s("error",{error:new Error(`WsTransport\uFF1AWebSocket error \u4E8B\u4EF6\uFF08${d instanceof Event?d.type:typeof d}\uFF09`)});},onClose:d=>{u===o&&(l(),g(u,T),o=void 0,i=void 0,a="closed",s("close",{code:d?.code??1006,reason:d?.reason??"",wasClean:d?.wasClean??false}));}};if(i=T,u.addEventListener("open",T.onOpen),u.addEventListener("message",T.onMessage),u.addEventListener("error",T.onError),u.addEventListener("close",T.onClose),v>0){let d=setTimeout(()=>{if(!(u!==o||a!=="connecting")){s("error",{error:new Error(`WsTransport\uFF1A\u8FDE\u63A5\u8D85\u65F6\uFF08${v}ms \u672A open\uFF09`)});try{u.close();}catch{}}},v);d.unref?.(),c=d;}}return {get state(){return a},async connect(u,h){let v=u[0];if(v===void 0)throw new Error("WsTransport.connect\uFF1Aendpoints \u4E3A\u7A7A\uFF08P0 single \u7B56\u7565\u9700\u81F3\u5C11\u4E00\u4E2A\u7AEF\u70B9\uFF09");S(),a="connecting";let T;try{T=n(v.url);}catch(d){throw a="closed",d}T.binaryType="arraybuffer",o=T,y(T,v,h?.connectTimeoutMs??t);},async send(u){if(o===void 0||a!=="open")throw new Error(`WsTransport.send\uFF1A\u8FDE\u63A5\u672A\u5C31\u7EEA\uFF08state=${a}\uFF09\uFF0C\u62D2\u7EDD\u53D1\u9001`);o.send(u);},async close(u=1e3,h){l(),o!==void 0&&(a==="connecting"||a==="open")&&(a="closing",o.close(u,h));},on(u,h){return r[u].add(h),()=>{r[u].delete(h);}}}}
|
|
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 yr(){let e=new Uint8Array(me),n=new Uint8Array(1);for(let t=0;t<me;t++){let r=0;do globalThis.crypto.getRandomValues(n),r=n[0]??0;while(r===0);e[t]=r;}return e}function Ji(e,n){if(n.length===0)throw new Error("RSA \u52A0\u5BC6\uFF1A\u660E\u6587\u4E3A\u7A7A");let t=$i(e),r=Math.ceil(t.n.bitLength()/8)-11;if(r<=0)throw new Error(`RSA \u52A0\u5BC6\uFF1A\u516C\u94A5\u4F4D\u6570\u8FC7\u5C0F\uFF08${t.n.bitLength()}bit\uFF09`);let o=[];for(let s=0;s<n.length;s+=r){let l=Math.min(s+r,n.length),g=t.encrypt(pr(n.subarray(s,l)),"RSAES-PKCS1-V1_5");o.push(fr(g));}let i=o.reduce((s,l)=>s+l.length,0),a=new Uint8Array(i),c=0;for(let s of o)a.set(s,c),c+=s.length;return a}function ji(e){let n=e.teaKey??yr();if(n.length<me)throw new Error(`\u7AEF\u5230\u7AEF\u52A0\u5BC6\u5931\u8D25\uFF1AteaKey \u957F\u5EA6 ${n.length} < ${me}`);let t=n.subarray(0,me),r=Be(t,e.plain);return {secretKey:Ji(e.publicKey,t),cipherData:r}}function Vi(e){return Ue(e.teaKey,e.cipherData)}function qi(e){return Be(e.teaKey,e.plain)}function zi(e){return Nn(e.teaKey,e.plain,"encrypt",void 0,e.signal===void 0?{}:{signal:e.signal})}function Wi(e){return Nn(e.teaKey,e.cipherData,"decrypt",void 0,e.signal===void 0?{}:{signal:e.signal})}function Yi(e){return tr(e.teaKey,e.plain)}function Qi(e){return rr(e.teaKey,e.cipherData)}function Xi(){return new Promise((e,n)=>{q.pki.rsa.generateKeyPair({bits:2048,e:65537,workers:-1},(t,r)=>{if(t){n(t);return}e({publicKeyBase64:Li(q.pki.publicKeyToPem(r.publicKey)),privateKey:q.pki.privateKeyToPem(r.privateKey)});});})}function Zi(){return {decryptEndToEnd:Fi,encryptEndToEnd:ji,decryptSymmetric:Vi,encryptSymmetric:qi,encryptSymmetricChunked:zi,decryptSymmetricChunked:Wi,encryptFileSimple:Yi,decryptFileSimple:Qi,randomTeaKey:yr,generateTempKeyPair:Xi,rsaDecryptPkcs1:gr}}function Gn(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function Ke(e,n){return R(e,"/friend/apply/list_paginated",{type:n.listType,page:n.page,page_size:n.pageSize},Gn(n.clientType,"GET"))}function Ge(e,n){return R(e,"/friend/apply/agree",{id:n.applicationId},Gn(n.clientType,"POST"))}function Le(e,n){return R(e,"/friend/apply/del",{id:n.applicationId},Gn(n.clientType,"POST"))}var hr=50,br=20,Cr=1,Ln=2,Hn=3,ea=4,na=5,wr=0,ta=1,ra=2;function oa(e){switch(e){case wr:case ta:case ra:return e;default:return}}var Se=class extends Error{constructor(t,r){super(`application HTTP \u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`);this.code=t;this.name="ApplicationHttpError";}code},W=class extends Error{constructor(n){super(`application \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ApplicationMappingError";}};function K(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Pr(e){let n=K(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 Ir(e){let n=K(e.status);if(e.status===void 0||n==="")return true;let t=Number(n),r=oa(t);if(r===void 0)throw new W(`\u672A\u77E5\u7533\u8BF7\u72B6\u6001\uFF1A${n}`);return r===wr}function ia(e){let n=K(e.type);if(n==="")return true;if(Number(n)!==Cr)throw new W(`\u8054\u7CFB\u4EBA\u7533\u8BF7\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${n}`);return true}function aa(e){let n=Number(K(e.type));if(n!==Ln&&n!==Hn&&n!==ea&&n!==na)throw new W(`GROUP/CHANNEL \u6DF7\u5408\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${K(e.type)||"<empty>"}`);return n}function an(e){if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>hr)throw new W(`limit \u5FC5\u987B\u4E3A 1-${hr}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit};if(!/^[1-9]\d*$/.test(e.cursor))throw new W("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let n=Number(e.cursor);if(!Number.isSafeInteger(n))throw new W("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {page:n,pageSize:e.limit}}function Sr(e){if(e!=null&&Array.isArray(e.list))return e.list;let n=e?.count??e?.total,t=n===0||typeof n=="string"&&/^0+$/.test(n.trim());if(e?.list===null&&t)return [];throw new W("data.list \u5FC5\u987B\u662F\u6570\u7EC4\uFF0C\u6216\u5728 count=0 \u65F6\u4E3A null")}function Fn(e){let n=e.trim();if(n==="")throw new W("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");return n}function sa(e){let n=Fn(K(e.id)||K(e.aid)),t=K(e.user_id)||K(e.user_info?.user_id),r=K(e.nick_name??e.nickname??e.name)||K(e.user_info?.nick_name??e.user_info?.nickname??e.user_info?.name);if(t===""||r==="")throw new W(`\u8054\u7CFB\u4EBA\u7533\u8BF7\u4EBA\u8EAB\u4EFD\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let o=K(e.head_img_url??e.avatar)||K(e.user_info?.head_img_url??e.user_info?.avatar),i=K(e.user_info?.mid),a=Pr(e.create_time??e.createTime??e.update_version);return {applicationId:n,applicantId:t,applicantName:r,...o===""?{}:{applicantAvatar:o},...i===""?{}:{applicantDisplayId:i},message:K(e.remarks??e.introduce_self),...a===void 0?{}:{createdAt:a}}}function ca(e){let n=Fn(K(e.id)||K(e.aid)),t=K(e.group_id)||K(e.group_info?.group_id);if(t==="")throw new W(`GROUP id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let r=K(e.user_id)||K(e.user_info?.user_id),o=K(e.nick_name??e.nickname??e.name)||K(e.user_info?.nick_name??e.user_info?.nickname??e.user_info?.name);if(r===""||o==="")throw new W(`GROUP \u7533\u8BF7\u4EBA\u6216\u9080\u8BF7\u4EBA\u8EAB\u4EFD\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let i=K(e.head_img_url??e.avatar)||K(e.user_info?.head_img_url??e.user_info?.avatar),a=K(e.user_info?.mid),c=K(e.group_info?.name??e.group_info?.group_name);if(c==="")throw new W(`GROUP \u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let s=K(e.group_info?.head_img_url??e.group_info?.avatar),l=Pr(e.create_time??e.createTime??e.update_version);return {applicationId:n,groupId:t,kind:Number(e.type)===Hn?"invite":"request",actor:{id:r,name:o,...i===""?{}:{avatarUrl:i},...a===""?{}:{displayId:a}},target:{id:t,name:c,...s===""?{}:{avatarUrl:s}},message:K(e.remarks??e.introduce_self),...l===void 0?{}:{createdAt:l}}}async function sn(e,n,t){let r=await t(e.client,{applicationId:Fn(n),clientType:e.clientType});if(!r.ok)throw new Se(r.code,r.message)}function da(e){async function n(t){let{pageSize:r}=an(t),{page:o}=an(t);for(let i=0;i<br;i+=1){let a=await Ke(e.client,{listType:Cr,page:o,pageSize:r,clientType:e.clientType});if(!a.ok)throw new Se(a.code,a.message);let c=Sr(a.data),s=c.filter(S=>ia(S)&&Ir(S)).map(sa),l=c.length<r,g=o+1;if(s.length>0||l)return {items:s,exhausted:l,...l?{}:{nextCursor:String(g)}};o=g;}return {items:[],exhausted:false,nextCursor:String(o)}}return {listPendingApplications:n,acceptApplication:t=>sn(e,t,Ge),ignoreApplication:t=>sn(e,t,Le)}}function ua(e){async function n(t){let{pageSize:r}=an(t),{page:o}=an(t);for(let i=0;i<br;i+=1){let a=await Ke(e.client,{listType:Ln,page:o,pageSize:r,clientType:e.clientType});if(!a.ok)throw new Se(a.code,a.message);let c=Sr(a.data),s=c.filter(S=>{let y=aa(S);return (y===Ln||y===Hn)&&Ir(S)}).map(ca),l=c.length<r,g=o+1;if(s.length>0||l)return {items:s,exhausted:l,...l?{}:{nextCursor:String(g)}};o=g;}return {items:[],exhausted:false,nextCursor:String(o)}}return {listPendingApplications:n,acceptApplication:t=>sn(e,t,Ge),ignoreApplication:t=>sn(e,t,Le)}}function O(e){let n=typeof e=="string"||typeof e=="number"?String(e).trim():"";return n===""?void 0:n}function la(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 pa(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 fa(e){let n=Number(e.product_id),t=la(e.is_dynamic);return {...pa(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 vr(e,n){return Array.isArray(e.mini_program_rel_list)?e.mini_program_rel_list.filter(t=>t!==null&&typeof t=="object").map(t=>fa(t)):n.source==="info"?[]:void 0}function Mr(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function Ar(e,n){return R(e,"/user_radio/list",{user_id:n.userId,update_version:n.updateVersion,page:n.page,page_size:n.pageSize},Mr(n.clientType,"GET"))}function _r(e,n){return R(e,"/user_radio/info",{radio_id:n.channelId},Mr(n.clientType,"POST"))}var xr=500,He=class extends Error{constructor(t,r){super(`CHANNEL HTTP \u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`);this.code=t;this.name="ChannelHttpError";}code},ie=class extends Error{constructor(n){super(`CHANNEL profile \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelProfileMappingError";}};function Er(e,n){let t=typeof e=="string"||typeof e=="number"?String(e).trim():"";if(t==="")throw new ie(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function ge(e){let n=typeof e=="string"||typeof e=="number"?String(e).trim():"";return n===""?void 0:n}function ve(e){return Number(e)===1}function ma(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 ga(e,n){return Number(e)===1?"member":Number(e)===9?"admin":Number(e)===10?"owner":n===false?"guest":"unknown"}function ya(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 ha(e,n,t){let r=ge(e.radio_user?.user_id),o=e.radio_setting?.un_speaking_user_ids,i=ge(e.radio_setting?.un_speaking_period);return {role:n,baseState:t,resolvedState:t,allMembersMuted:ve(e.radio_setting?.is_unspeeking_all),currentUserMuted:r!==void 0&&Array.isArray(o)&&o.map(String).includes(r),...i===void 0?{}:{mutePeriod:i}}}function ba(e){if(e!=null)return Number(e)===1?"standard":Number(e)===2?"competition":"unknown"}function Ca(e){let n=ge(e);return n!==void 0&&/^\d+$/.test(n)?n.replace(/^0+(?=\d)/,""):void 0}function wa(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 kr(e,n,t){let r=Er(e.radio_id??e.id,"id"),o=Er(e.name,"name"),i=e.is_in===void 0?void 0:ve(e.is_in),a=ga(e.radio_user?.role_id,i),c=ya(e),s=ha(e,a,c),l=wa$1({channelState:c,snapshot:s,nowMs:n}),g={...s,resolvedState:l.channelState},S=Ca(e.update_version),y=ge(e.head_img_url),u=ge(e.desc),h=ge(e.user_id),v=Number(e.total_users),T=ba(e.type),d=ma(e.radio_setting?.is_unvisit_other),f=e.verify_way===void 0?void 0:Number(e.verify_way),C=f!==void 0&&Number.isSafeInteger(f)?f:void 0,p=ge(e.invite_code),b=vr(e,{source:t});return {id:r,name:o,...y===void 0?{}:{avatar:y},...u===void 0?{}:{description:u},...h===void 0?{}:{ownerId:h},...Number.isFinite(v)&&v>=0?{memberCount:v}:{},...C===void 0?{}:{verifyType:C},...p===void 0?{}:{inviteCode:p},role:a,permissions:l.permissions,channelState:l.channelState,allMembersMuted: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},...S===void 0?{}:{updateVersion:S},...b===void 0?{}:{miniProgramRels:b}}}function Tr(e){return {...e,updatedAt:Date.now()}}function Rr(e,n){if(e.accessSnapshot===void 0)return {...e,permissions:va$1(e.role,e.channelState)};let t=wa$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 $n(e,n){let{updatedAt:t,...r}=Rr(e,n);return r}function Pa(e){let n=new Map,t=new Map,r=new Map,o="0",i=false,a=null,c=0,s=null,l=0;function g(){if(i)return Promise.resolve();if(a!==null)return a;let u=c;return a=(async()=>{if(e.storage!==void 0){let[h,v]=await Promise.all([e.storage.getChannelProfiles(),e.storage.getChannelListVersion()]);if(u!==c)return;for(let T of h)n.set(T.id,Rr(T,e.now?.()??Date.now()));o=/^\d+$/.test(v)?v:"0";}i=true;})().finally(()=>{a=null;}),a}function S(u){if(u?.forceRefresh!==true&&s!==null)return s;let h=++l,v=(async()=>{await g();let T=(await e.getUserId()).trim();if(T==="")throw new ie("user_id \u4E0D\u80FD\u4E3A\u7A7A");let d=u?.forceRefresh===true?"0":o,f=[];for(let p=1;;p+=1){let b=await Ar(e.client,{userId:T,updateVersion:d,page:p,pageSize:xr,clientType:e.clientType});if(!b.ok)throw new He(b.code,b.message);if(b.data===null)break;if(!Array.isArray(b.data))throw new ie("list data \u5FC5\u987B\u662F\u6570\u7EC4");let M=e.now?.()??Date.now(),_=b.data.map(P=>kr(P,M,"list"));if(f.push(..._),_.length<xr)break}if(h!==l)return [...n.values()].map(p=>$n(p,e.now?.()??Date.now()));let C=o;for(let p of f)n.set(p.id,Tr(p)),p.updateVersion!==void 0&&(C=wa(C,p.updateVersion));return o=C,e.storage!==void 0&&(await e.storage.saveChannelProfiles([...n.values()]),await e.storage.saveChannelListVersion(o)),[...n.values()].map(p=>$n(p,e.now?.()??Date.now()))})();return s=v,v.finally(()=>{s===v&&(s=null);}).catch(()=>{}),v}function y(u,h){let v=u.trim();if(v==="")return Promise.reject(new ie("channel id \u4E0D\u80FD\u4E3A\u7A7A"));let T=h?.forceRefresh===true;if(!T){let C=t.get(v);if(C!==void 0)return C}let d=(r.get(v)??0)+1;T&&r.set(v,d);let f=(async()=>{await g();let C=n.get(v);if(!T&&C!==void 0&&C.miniProgramRels!==void 0)return $n(C,e.now?.()??Date.now());let p=await _r(e.client,{channelId:v,clientType:e.clientType});if(!p.ok)throw new He(p.code,p.message);if(p.data===null||p.data===void 0)throw new ie("info data \u4E0D\u80FD\u4E3A\u7A7A");let b=kr(p.data,e.now?.()??Date.now(),"info");if(b.id!==v)throw new ie(`info id \u4E0D\u5339\u914D\uFF1A\u8BF7\u6C42 ${v}\uFF0C\u54CD\u5E94 ${b.id}`);if((r.get(v)??d)===d){let M=Tr(b);n.set(v,M),await e.storage?.saveChannelProfiles([M]);}return b})().finally(()=>{t.get(v)===f&&t.delete(v);});return r.set(v,d),t.set(v,f),f}return {listProfiles:S,getProfile:y,clearCache(){c+=1,l+=1;for(let u of new Set([...n.keys(),...t.keys(),...r.keys()]))r.set(u,(r.get(u)??0)+1);n.clear(),t.clear(),s=null,o="0",i=true,a=null;}}}function Dr(e,n){return Ke(e,{listType:2,page:n.page,pageSize:n.pageSize,clientType:n.clientType})}function Ur(e,n){return Ge(e,n)}function Br(e,n){return Le(e,n)}var Ia=20,Or=50,Sa=20,va=2,Ma=3,Kr=4,Aa=5,Gr=0,_a=1,xa=2;function Ea(e){switch(e){case Gr:case _a:case xa:return e;default:return}}var Fe=class extends Error{constructor(t,r){super(`CHANNEL join application HTTP \u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`);this.code=t;this.name="ChannelJoinApplicationHttpError";}code},Q=class extends Error{constructor(n){super(`CHANNEL join application \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelJoinApplicationMappingError";}};function L(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function ka(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 Ta(e){let n=L(e.status);if(e.status===void 0||n==="")return true;let t=Number(n),r=Ea(t);if(r===void 0)throw new Q(`\u672A\u77E5\u7533\u8BF7\u72B6\u6001\uFF1A${n}`);return r===Gr}function Ra(e){let n=Number(L(e.type));if(n!==va&&n!==Ma&&n!==Kr&&n!==Aa)throw new Q(`GROUP/CHANNEL \u6DF7\u5408\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${L(e.type)||"<empty>"}`);return n}function Da(e){let n=L(e.id)||L(e.aid),t=L(e.user_id)||L(e.user_info?.user_id),r=e.radio_info??e.channel_info,o=L(e.radio_id)||L(e.channel_id)||L(r?.radio_id)||L(r?.channel_id);if(n==="")throw new Q("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");if(t==="")throw new Q(`\u7533\u8BF7\u4EBA id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);if(o==="")throw new Q(`CHANNEL id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let i=L(e.user_info?.nick_name)||L(e.user_info?.nickname)||L(e.user_info?.name)||t,a=L(e.user_info?.head_img_url)||L(e.user_info?.avatar),c=L(e.user_info?.mid),s=L(r?.name)||L(r?.radio_name)||L(r?.channel_name)||o,l=L(r?.head_img_url)||L(r?.avatar),g=ka(e.create_time??e.createTime);return {applicationId:n,applicantId:t,applicantName:i,...a===""?{}:{applicantAvatar:a},...c===""?{}:{applicantDisplayId:c},channelId:o,channelName:s,...l===""?{}:{channelAvatar:l},message:L(e.remarks)||L(e.introduce_self),...g===void 0?{}:{createdAt:g}}}function Nr(e){if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>Or)throw new Q(`limit \u5FC5\u987B\u4E3A 1-${Or}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit||Ia};if(!/^[1-9]\d*$/.test(e.cursor))throw new Q("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let n=Number(e.cursor);if(!Number.isSafeInteger(n))throw new Q("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {page:n,pageSize:e.limit}}function Ua(e){if(e!=null&&Array.isArray(e.list))return e.list;let n=e?.count??e?.total,t=n===0||typeof n=="string"&&/^0+$/.test(n.trim());if(e?.list===null&&t)return [];throw new Q("data.list \u5FC5\u987B\u662F\u6570\u7EC4\uFF0C\u6216\u5728 count=0 \u65F6\u4E3A null")}function Ba(e){let n=e.trim();if(n==="")throw new Q("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");return n}function Oa(e){async function n(r){let{pageSize:o}=Nr(r),{page:i}=Nr(r);for(let a=0;a<Sa;a+=1){let c=await Dr(e.client,{page:i,pageSize:o,clientType:e.clientType});if(!c.ok)throw new Fe(c.code,c.message);let s=Ua(c.data),l=s.filter(y=>Ra(y)===Kr&&Ta(y)).map(Da),g=s.length<o,S=i+1;if(l.length>0||g)return {items:l,exhausted:g,...g?{}:{nextCursor:String(S)}};i=S;}return {items:[],exhausted:false,nextCursor:String(i)}}async function t(r,o){let i=await o(e.client,{applicationId:Ba(r),clientType:e.clientType});if(!i.ok)throw new Fe(i.code,i.message)}return {listJoinApplications:n,acceptJoinApplication:r=>t(r,Ur),ignoreJoinApplication:r=>t(r,Br)}}function cn(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},cn(n.clientType,"GET"))}function jn(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"},cn(n.clientType,"POST"))}function Lr(e,n){return R(e,"/user_radio/admins",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},cn(n.clientType,"GET"))}function Hr(e,n){return R(e,"/user_radio/user/infos",{radio_id:n.channelId,user_ids:n.userIds.join(",")},cn(n.clientType,"POST"))}var dn=18,Na=12,Ka=300*1e3,Ga=32,$e=class extends Error{constructor(t,r){super(`CHANNEL member HTTP \u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`);this.code=t;this.name="ChannelMemberHttpError";}code},J=class extends Error{constructor(n){super(`CHANNEL member \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelMemberMappingError";}};function ae(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function La(e){return Number(e)===1?"member":Number(e)===9?"admin":Number(e)===10?"owner":"unknown"}function Ha(e){let n=ae(e);return /^\d+$/.test(n)?n.replace(/^0+(?=\d)/,""):void 0}function Vn(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 Fr(e,n){let t=ae(e.radio_id);if(t==="")throw new J("radio_id \u4E0D\u80FD\u4E3A\u7A7A");if(t!==n)throw new J(`\u6210\u5458\u9891\u9053 ${t} \u4E0E\u8BF7\u6C42\u9891\u9053 ${n} \u4E0D\u4E00\u81F4`);let r=ae(e.user_id)||ae(e.user_info?.user_id);if(r==="")throw new J("user_id \u4E0D\u80FD\u4E3A\u7A7A");if(e.is_master!==void 0){let l=Number(e.is_master);if(l!==0&&l!==1)throw new J(`is_master \u975E\u6CD5\uFF1A${ae(e.is_master)}`)}let o=ae(e.nick_name),i=ae(e.user_info?.nick_name)||ae(e.user_info?.name),a=ae(e.user_info?.head_img_url),c=Ha(e.update_version),s=Number(e.join_type);return {userId:r,...o===""?{}:{nickname:o},displayName:o||i||r,...a===""?{}:{avatar:a},role:La(e.role_id),...Number.isInteger(s)?{joinType:s}:{},...c===void 0?{}:{updateVersion:c}}}function Fa(e){if(e.channelId.trim()==="")throw new J("channelId \u4E0D\u80FD\u4E3A\u7A7A");if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>dn)throw new J(`limit \u5FC5\u987B\u4E3A 1-${dn}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit};if(!/^[1-9]\d*$/.test(e.cursor))throw new J("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let t=Number(e.cursor);if(!Number.isSafeInteger(t))throw new J("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {page:t,pageSize:e.limit}}function $r(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 $a(e){let n=e.now??(()=>Date.now()),t=e.isActive??(()=>true),r=e.cacheTtlMs??Ka,o=new Map,i=new Map,a=new Map,c=new Map,s=new Map,l=new Set,g=new Set,S=(P,w)=>`${P}:${w}`;function y(P){let w=s.get(P);return w!==void 0?w:(s.set(P,0),0)}function u(P){let w=P.trim();if(w==="")throw new J("channelId \u4E0D\u80FD\u4E3A\u7A7A");return w}function h(P){for(i.delete(P.channelId),i.set(P.channelId,P);i.size>Ga;){let w=i.keys().next().value;if(w===void 0)break;i.delete(w);}}function v(P){let w=i.get(P);if(w!==void 0)return h(w),Promise.resolve(w);if(g.has(P)||e.storage?.getChannelMemberSnapshot===void 0)return Promise.resolve(null);let A=a.get(P);if(A!==void 0)return A;let m=y(P),I=e.storage.getChannelMemberSnapshot(P).then(x=>!t()||x===null||x.channelId!==P||m!==y(P)||g.has(P)?null:(h(x),x)).finally(()=>{a.get(P)===I&&a.delete(P);});return a.set(P,I),I}function T(P,w){let A=P.map(I=>I.userId),m=new Map(P.map(I=>[I.userId,I]));for(let I of w){m.has(I.userId)||A.push(I.userId);let x=m.get(I.userId);(x===void 0||Vn(I.updateVersion,x.updateVersion)>=0)&&m.set(I.userId,I);}return A.map(I=>m.get(I))}async function d(P,w){let A=await aa$1(w);return P.filter(m=>A.match(m.displayName)!==null||A.match(m.userId,{pinyin:false})!==null)}async function f(P,w,A={}){if(!t()||w!==y(P.channelId))return;let m=P.channelId,I=g.has(m),x=A.allowPersistentRebuild===true&&I&&e.storage?.deleteChannelMemberSnapshot===void 0&&e.storage?.saveChannelMemberSnapshot!==void 0;(!I||x)&&await e.storage?.saveChannelMemberSnapshot?.(P),t()&&w===y(m)&&(h(P),A.allowPersistentRebuild===true&&(!I||e.storage?.deleteChannelMemberSnapshot===void 0)&&g.delete(m));}async function C(P,w,A,m,I=false,x){let E=await v(P);if(!t()||A!==y(P))return;let D=n(),k=x!==void 0&&E?.nextCursor===x,U=I&&E!==null&&!k,B=m!==void 0&&!U?m.nextCursor:E?.nextCursor,F={channelId:P,items:T(E?.items??[],w),...B===void 0?{}:{nextCursor:B},exhausted:U?E.exhausted:m?.exhausted??E?.exhausted??false,updatedAt:D};await f(F,A);}async function p(P,w,A){if(!t()||A!==y(P))return [...w];let m=n(),I=m+r,x=[],E=[],D=new Map;for(let k of w){let U=S(P,k.userId),B=o.get(U)?.member;if(B!==void 0&&Vn(k.updateVersion,B.updateVersion)<0){E.push(B);continue}x.push({channelId:P,...k,updatedAt:m}),E.push(k),D.set(U,{member:k,expiresAt:I});}if(x.length>0&&t()&&A===y(P)&&!l.has(P)&&(await e.storage?.saveChannelMembers?.(x),e.storage?.getChannelMembers!==void 0&&t()&&A===y(P))){let k=await e.storage.getChannelMembers(P,x.map(B=>B.userId)),U=new Map(k.map(B=>{let{channelId:F,updatedAt:j,...ce}=B;return [ce.userId,{member:ce,updatedAt:j}]}));for(let B=0;B<E.length;B+=1){let F=E[B];if(F===void 0)continue;let j=U.get(F.userId);j===void 0||Vn(j.member.updateVersion,F.updateVersion)<=0||(E[B]=j.member,D.set(S(P,F.userId),{member:j.member,expiresAt:j.updatedAt+r}));}}if(t()&&A===y(P))for(let[k,U]of D)o.set(k,U);return E}async function b(P,w){let A=u(P.channelId),{page:m,pageSize:I}=Fa({...P,channelId:A}),x=y(A),E=await w(A,m,I);if(!E.ok)throw new $e(E.code,E.message);if(E.data!==null&&!Array.isArray(E.data))throw new J("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let D=$r((E.data??[]).map(B=>Fr(B,A))),k=await p(A,D,x),U=(E.data??[]).length<I;return {items:k,exhausted:U,...U?{}:{nextCursor:String(m+1)}}}function M(P){let w=u(P),A=c.get(w);if(A!==void 0)return A;let m=y(w),I=(async()=>{let x,E=false,D=[];for(let U=0;U<Na&&!E;U+=1){let B=await b({channelId:w,limit:dn,...x===void 0?{}:{cursor:x}},(F,j,ce)=>Jn(e.client,{channelId:F,page:j,pageSize:ce,clientType:e.clientType}));if(!t()||m!==y(w))throw new J("\u6210\u5458\u5FEB\u7167\u9884\u53D6\u5DF2\u56E0\u6210\u5458\u53D8\u5316\u5931\u6548");D=T(D,B.items),x=B.nextCursor,E=B.exhausted;}let k={channelId:w,items:D,...x===void 0?{}:{nextCursor:x},exhausted:E,updatedAt:n()};return await f(k,m,{allowPersistentRebuild:true}),{items:k.items,...k.nextCursor===void 0?{}:{nextCursor:k.nextCursor},exhausted:k.exhausted}})().finally(()=>{c.get(w)===I&&c.delete(w);});return c.set(w,I),I}async function _(P){let w=u(P),A=y(w)+1;s.set(w,A),l.add(w),g.add(w),i.delete(w),a.delete(w),c.delete(w);let m=`${w}:`;for(let I of o.keys())I.startsWith(m)&&o.delete(I);e.storage?.deleteChannelMembers===void 0&&e.storage?.deleteChannelMemberSnapshot===void 0||(await Promise.all([e.storage.deleteChannelMembers?.(w),e.storage.deleteChannelMemberSnapshot?.(w)]),A===y(w)&&(e.storage?.deleteChannelMembers!==void 0&&l.delete(w),e.storage?.deleteChannelMemberSnapshot!==void 0&&g.delete(w)));}return {async prefetchMembers(P){let w=u(P),A=await v(w),m=g.has(w);A!==null&&!m&&A.updatedAt+r>n()||await M(w);},async getCachedMembers(P){let w=u(P.channelId),A=await v(w);if(A===null)return null;let m=P.query?.trim()??"";return m===""&&g.has(w)?null:m===""?{items:[...A.items],...A.nextCursor===void 0?{}:{nextCursor:A.nextCursor},exhausted:A.exhausted}:{items:await d(A.items,m),exhausted:true}},async refreshMembers(P){let w=u(P.channelId),A=P.query?.trim()??"";if(A==="")return M(w);let m=y(w),[I,x]=await Promise.all([b({channelId:w,query:A,limit:dn},(D,k,U)=>jn(e.client,{channelId:D,query:A,page:k,pageSize:U,updateVersion:"0",clientType:e.clientType})),v(w)]),E=x===null?[]:await d(x.items,A);return await C(w,I.items,m),{...I,items:T(I.items,E)}},async listMembers(P){let w=u(P.channelId),A={...P,channelId:w},m=y(w),I=await b(A,(x,E,D)=>Jn(e.client,{channelId:x,page:E,pageSize:D,clientType:e.clientType}));return await C(w,I.items,m,I,A.cursor!==void 0,A.cursor),I},async searchMembers(P){let w=P.query.trim();if(w==="")return Promise.reject(new J("\u641C\u7D22\u5173\u952E\u8BCD\u4E0D\u80FD\u4E3A\u7A7A"));let A=u(P.channelId),m={...P,channelId:A},I=y(A),x=await b(m,(E,D,k)=>jn(e.client,{channelId:E,query:w,page:D,pageSize:k,updateVersion:"0",clientType:e.clientType}));return await C(A,x.items,I),x},listAdmins:P=>b(P,(w,A,m)=>Lr(e.client,{channelId:w,page:A,pageSize:m,clientType:e.clientType})),async getMembersByIds(P,w,A){let m=P.trim();if(m==="")throw new J("channelId \u4E0D\u80FD\u4E3A\u7A7A");let I=[...new Set(w.map(k=>k.trim()).filter(Boolean))];if(I.length===0)return [];let x=A?.forceRefresh===true,E=new Map,D=[];for(let k of I){let U=o.get(S(m,k));!x&&U!==void 0&&U.expiresAt>n()?E.set(k,U.member):D.push(k);}if(!x&&D.length>0&&!l.has(m)&&e.storage?.getChannelMembers!==void 0){let k=y(m),U=await e.storage.getChannelMembers(m,D);if(t()&&k===y(m))for(let{channelId:B,updatedAt:F,...j}of U)B===m&&(o.set(S(m,j.userId),{member:j,expiresAt:F+r}),F+r>n()&&E.set(j.userId,j));D=D.filter(B=>!E.has(B));}if(!t())return I.flatMap(k=>E.has(k)?[E.get(k)]:[]);if(D.length>0){let k=y(m),U=await Hr(e.client,{channelId:m,userIds:D,clientType:e.clientType});if(!U.ok)throw new $e(U.code,U.message);if(U.data!==null&&!Array.isArray(U.data))throw new J("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let B=$r((U.data??[]).map(Pe=>Fr(Pe,m))),F=D.filter(Pe=>!B.some($o=>$o.userId===Pe)),j=x&&F.length>0&&k===y(m),ce;j?(await _(m),ce=B):ce=await p(m,B,k);for(let Pe of ce)E.set(Pe.userId,Pe);}return I.flatMap(k=>E.has(k)?[E.get(k)]:[])},invalidateChannelMembers:_,clearCache(){let P=new Set(s.keys());for(let w of o.keys())P.add(w.slice(0,w.indexOf(":")));for(let w of i.keys())P.add(w);for(let w of a.keys())P.add(w);for(let w of c.keys())P.add(w);for(let w of l)P.add(w);for(let w of g)P.add(w);for(let w of P)s.set(w,y(w)+1);o.clear(),i.clear(),a.clear(),c.clear(),l.clear(),g.clear();}}}function Jr(e){return {responseMode:"strict",method:"POST",...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function jr(e,n){return R(e,"/user_radio/member/list",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},Jr(n.clientType))}function Vr(e,n){return R(e,"/user_radio/member/search",{radio_id:n.channelId,search_name:n.query,page:n.page,page_size:n.pageSize},Jr(n.clientType))}var qr=18,un=class extends Error{constructor(t,r){super(`CHANNEL @ member HTTP \u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`);this.code=t;this.name="ChannelMentionMemberHttpError";}code},re=class extends Error{constructor(n){super(`CHANNEL @ member \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelMentionMemberMappingError";}};function Me(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Ja(e){let n=Me(e.user_id);if(n==="")throw new re("user_id \u4E0D\u80FD\u4E3A\u7A7A");let t=Me(e.radio_user_nickname)||Me(e.nick_name)||Me(e.name)||Me(e.mid)||n,r=Me(e.head_img_url);return {userId:n,displayName:t,...r===""?{}:{avatar:r}}}function ja(e){let n=e.channelId.trim();if(n==="")throw new re("channelId \u4E0D\u80FD\u4E3A\u7A7A");if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>qr)throw new re(`limit \u5FC5\u987B\u4E3A 1-${qr}`);if(e.cursor===void 0)return {channelId:n,page:1,pageSize:e.limit};if(!/^[1-9]\d*$/.test(e.cursor))throw new re("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let t=Number(e.cursor);if(!Number.isSafeInteger(t))throw new re("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {channelId:n,page:t,pageSize:e.limit}}function Va(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}=ja(t),c=await r({channelId:o,page:i,pageSize:a,clientType:e.clientType});if(!c.ok)throw new un(c.code,c.message);if(c.data!==null&&!Array.isArray(c.data))throw new re("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let s=c.data??[],l=Va(s.map(Ja)),g=s.length<a;return {items:l,exhausted:g,...g?{}:{nextCursor:String(i+1)}}}return {listMentionMembers:t=>n(t,r=>jr(e.client,r)),searchMentionMembers:t=>{let r=t.query.trim();return r===""?Promise.reject(new re("\u641C\u7D22\u5173\u952E\u8BCD\u4E0D\u80FD\u4E3A\u7A7A")):n(t,o=>Vr(e.client,{...o,query:r}))}}}function za(e){let n=e.fetch??((t,r)=>globalThis.fetch(t,r));return {async postProtobuf({path:t,body:r,headers:o,signal:i}){let a=await e.getBaseUrl();if(!a)throw new Error("CmHttp.postProtobuf\uFF1A\u7F3A\u5C11 CM HTTP \u57FA\u5740\uFF08getCmHttpBaseUrl \u4E3A\u7A7A\uFF09");let c={"Content-Type":"application/octet-stream"},s=e.getClientType?.();s!==void 0&&(c["Client-type"]=String(s)),Object.assign(c,o);let l=await e.getAuth();l!==null&&l.token!==""&&l.userId!==""&&(c.Authorization=`${l.token}:${l.userId}`);let g=await n(`${a}${t}`,{method:"POST",body:r,headers:c,signal:i});if(!g.ok)throw new qa$1({path:t,status:g.status,statusText:g.statusText});let S=await g.arrayBuffer();return new Uint8Array(S)}}}var oe=class extends Error{constructor(n){super(n),this.name="DirectoryMappingError";}};function ln(e,n){if(e===null||typeof e!="object"||Array.isArray(e))throw new oe(`${n} \u5FC5\u987B\u662F\u5BF9\u8C61`);return e}function Y(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Je(e){let n=Y(e);return n===""?void 0:n}function Wa(e){let n=ln(e,"\u8054\u7CFB\u4EBA\u76EE\u5F55\u9879"),t=n.user_info===void 0?n:ln(n.user_info,"\u8054\u7CFB\u4EBA user_info"),r=Y(t.user_id??n.friend_user_id??n.user_id);if(r==="")throw new oe("\u8054\u7CFB\u4EBA\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A user_id");let o=Y(n.remark_name)||Y(n.contact_name)||Y(t.nick_name)||Y(t.username)||Y(t.mid)||r,i=Y(t.nick_name)||Y(t.username)||Y(t.mid)||r,a=Je(t.head_img_url),c=Je(t.username)??Je(t.mid);return {id:r,kind:"individual",displayName:o,cardDisplayName:i,...a===void 0?{}:{avatarUrl:a},...c===void 0?{}:{username:c}}}function Ya(e){let n=ln(e,"\u7FA4\u7EC4\u76EE\u5F55\u9879"),t=Y(n.group_id);if(t==="")throw new oe("\u7FA4\u7EC4\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A group_id");let r=Je(n.head_img_url),o=Y(n.name)||t;return {id:t,kind:"group",displayName:o,cardDisplayName:o,...r===void 0?{}:{avatarUrl:r}}}function Qa(e){let n=ln(e,"\u793E\u7FA4\u76EE\u5F55\u9879"),t=Y(n.radio_id??n.id);if(t==="")throw new oe("\u793E\u7FA4\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A radio_id/id");let r=Je(n.head_img_url),o=Y(n.name)||t;return {id:t,kind:"channel",displayName:o,cardDisplayName:o,...r===void 0?{}:{avatarUrl:r}}}function Xa(e,n){if(!Number.isSafeInteger(e)||e<1)throw new oe("\u76EE\u5F55 page \u5FC5\u987B\u662F\u6B63\u6574\u6570");if(!Number.isSafeInteger(n)||n<1||n>100)throw new oe("\u76EE\u5F55 pageSize \u5FC5\u987B\u662F 1-100 \u7684\u6574\u6570")}function Za(e){return {async list(n){Xa(n.page,n.pageSize);let t=n.kind==="individual"?"/friend/list":n.kind==="group"?"/user_group/list":"/user_radio/list",r=n.kind==="channel"&&e.getUserId!==void 0?String(await e.getUserId()).trim():"",i=(await R(e.client,t,{...r===""?{}:{user_id:r},update_version:0,page:n.page,page_size:n.pageSize},{responseMode:"strict",method:"GET",...e.clientType===void 0?{}:{headers:{"Client-type":String(e.clientType)}}})).data??[];if(!Array.isArray(i))throw new oe(`${n.kind} \u76EE\u5F55 data \u5FC5\u987B\u662F\u6570\u7EC4`);let a=n.kind==="individual"?Wa:n.kind==="group"?Ya:Qa,c=new Map;for(let l of i){let g=a(l);c.set(g.id,g);}let s=i.length<n.pageSize;return {items:[...c.values()],...s?{}:{nextPage:n.page+1},exhausted:s}}}}var es="https://api.giphy.com/v1/gifs",Ae=class extends Error{constructor(t){super(t==="core"?"\u8868\u60C5 Core API \u672A\u914D\u7F6E":"Giphy API key \u672A\u914D\u7F6E");this.provider=t;this.name="ExpressionProviderUnavailableError";}provider},$=class extends Error{constructor(n){super(n),this.name="ExpressionMappingError";}},ye=class extends Error{constructor(t,r){super(`Giphy \u8BF7\u6C42\u5931\u8D25\uFF1AHTTP ${t}${r?` ${r}`:""}`);this.status=t;this.name="GiphyHttpError";}status};function Z(e,n){if(e===null||typeof e!="object"||Array.isArray(e))throw new $(`${n} \u5FC5\u987B\u662F\u5BF9\u8C61`);return e}function X(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function pe(e,n){let t=X(e);if(t==="")throw new $(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function xe(e){let n=X(e);return n===""?void 0:n}function _e(e,n){let t=Number(e);if(!Number.isSafeInteger(t)||t<0)throw new $(`${n} \u5FC5\u987B\u662F\u975E\u8D1F\u6574\u6570`);return t}function ns(e,n){let t=Number(e);if(!Number.isSafeInteger(t))throw new $(`${n} \u5FC5\u987B\u662F\u5B89\u5168\u6574\u6570`);return t}function zr(e,n){let t=Number(e);if(!Number.isFinite(t)||t<=0)throw new $(`${n} \u5FC5\u987B\u662F\u6709\u9650\u6B63\u6570`);return t}function he(e,n){let t=pe(e,n),r;try{r=new URL(t);}catch(o){throw new $(`${n} \u4E0D\u662F\u5408\u6CD5 URL\uFF1A${o instanceof Error?o.message:String(o)}`)}if(r.protocol!=="https:"&&r.protocol!=="http:")throw new $(`${n} \u53EA\u652F\u6301 HTTP(S)`);if(r.username!==""||r.password!=="")throw new $(`${n} \u4E0D\u5141\u8BB8\u5305\u542B URL \u51ED\u636E`);return t}function qn(e,n){if(e==null)return [];if(Array.isArray(e))return e;let r=Z(e,n).list;if(r==null)return [];if(!Array.isArray(r))throw new $(`${n}.list \u5FC5\u987B\u662F\u6570\u7EC4\u6216 null`);return r}function je(e){return e==="sticker"?1:e==="gif"?2:3}function Wr(e){let n=Z(e,"\u8D34\u56FE\u5305"),t=xe(n.onlineTime??n.online_time),r=n.isPlatformIssued??n.is_platform_issued;return {id:pe(n.packId??n.pack_id,"\u8D34\u56FE\u5305 packId"),nameZh:X(n.nameZh??n.name_zh),nameEn:X(n.nameEn??n.name_en),nameTh:X(n.nameTh??n.name_th),nameTw:X(n.nameTw??n.name_tw),nameVi:X(n.nameVi??n.name_vi),publisher:X(n.publisher),trayIconUrl:he(n.trayIcon??n.tray_icon,"\u8D34\u56FE\u5305 trayIcon"),sortWeight:ns(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 zn(e,n,t,r){let o=Z(e,t),i=xe(o.id),a={...i===void 0?{}:{recordId:i},url:he(o.imgUrl??o.img_url,`${t} imgUrl`),width:_e(o.width??0,`${t} width`),height:_e(o.height??0,`${t} height`)};if(n==="sticker")return {kind:n,...a,packageId:pe(r??o.packId??o.pack_id,`${t} packageId`),resourceId:pe(o.fileName??o.file_name,`${t} resourceId`)};let c=xe(o.fileName??o.file_name);return {kind:n,...a,...c===void 0?{}:{resourceId:c}}}function ts(e,n){if(n!=="emoji")return zn(e,n,"\u6700\u8FD1\u4F7F\u7528\u9879");let t=Z(e,"\u6700\u8FD1 emoji"),r=xe(t.id);return {kind:"emoji",...r===void 0?{}:{recordId:r},token:pe(t.imgUrl??t.img_url,"\u6700\u8FD1 emoji token"),resourceId:pe(t.fileName??t.file_name,"\u6700\u8FD1 emoji resourceId")}}function Yr(e,n,t){let r=je(n);return qn(e,t).filter(o=>{let i=Z(o,`${t} item`),a=i.favType??i.fav_type;if(a==null)return true;let c=Number(a);if(c!==1&&c!==2&&c!==3)throw new $(`${t} item.favType \u5FC5\u987B\u662F 1\u30012 \u6216 3`);return c===r})}function Xr(e){return {fav_type:je(e.kind),pack_id:e.kind==="sticker"?e.packageId:"",img_url:he(e.url,"\u8868\u60C5\u5199\u5165 imgUrl"),file_name:e.resourceId??"",width:e.width,height:e.height}}function rs(e){return e.kind!=="emoji"?Xr(e):{fav_type:je(e.kind),pack_id:"",img_url:e.token,file_name:e.resourceId,width:0,height:0}}function Qr(e){let n=[...new Set(e.map(t=>t.trim()).filter(Boolean))];if(n.length===0||n.length>30||n.some(t=>t.includes("|")))throw new $("\u6279\u91CF\u5220\u9664 recordIds \u5FC5\u987B\u5305\u542B 1-30 \u4E2A\u4E0D\u542B\u7AD6\u7EBF\u7684\u552F\u4E00\u975E\u7A7A id");return n.join("|")}function os(e){let n=Z(e,"Giphy item"),t=Z(n.images,"Giphy item.images"),r=Z(t.original,"Giphy item.images.original"),o=t.fixed_width,i=o==null?void 0:Z(o,"Giphy item.images.fixed_width"),a=he(r.url,"Giphy original.url"),c=i===void 0?void 0:xe(i.url),s=i===void 0?void 0:xe(i.webp),l=s===void 0?c===void 0?a:he(c,"Giphy fixed_width.url"):he(s,"Giphy fixed_width.webp"),g=s!==void 0&&c!==void 0&&c!==s?he(c,"Giphy fixed_width.url"):void 0;return {kind:"gif",resourceId:pe(n.id,"Giphy item.id"),title:X(n.title)||"GIF",url:a,previewUrl:l,...g===void 0?{}:{fallbackPreviewUrl:g},width:zr(r.width,"Giphy original.width"),height:zr(r.height,"Giphy original.height")}}function is(e,n){let t=Z(e,"Giphy response");if(!Array.isArray(t.data))throw new $("Giphy response.data \u5FC5\u987B\u662F\u6570\u7EC4");let r=Z(t.pagination,"Giphy response.pagination"),o=_e(r.offset??n,"Giphy pagination.offset");if(o!==n)throw new $("Giphy pagination.offset \u4E0E\u8BF7\u6C42 offset \u4E0D\u4E00\u81F4");let i=_e(r.count??t.data.length,"Giphy pagination.count"),a=_e(r.total_count??r.totalCount??0,"Giphy pagination.total_count"),c=new Map;for(let l of t.data){let g=os(l);c.set(g.resourceId,g);}let s=o+i;return {items:[...c.values()],offset:o,totalCount:a,...i>0&&s<a?{nextOffset:s}:{}}}function as(e){async function n(r,o,i){if(e.coreClient===void 0)throw new Ae("core");let a=await R(e.coreClient,r,o,{method:"POST",responseMode:"strict"});if(!a.ok)throw new V(i,a.code,a.message);return a.data}async function t(r,o){let i=e.giphyApiKey?.trim()??"";if(i==="")throw new Ae("giphy");let a=e.fetcher??globalThis.fetch;if(typeof a!="function")throw new Ae("giphy");let c=new URLSearchParams({api_key:i,limit:String(o.limit),offset:String(o.offset),...o.query===void 0?{}:{q:o.query,lang:"en"}}),s;try{s=await a(`${es}/${r}?${c.toString()}`);}catch{throw new ye(0,"network failure")}let l;try{l=await s.json();}catch(S){throw s.ok?new $(`Giphy response \u4E0D\u662F JSON\uFF1A${S instanceof Error?S.message:String(S)}`):new ye(s.status,"")}if(!s.ok){let S=l!==null&&typeof l=="object"&&!Array.isArray(l)?l.meta:void 0,y=S!==null&&typeof S=="object"&&!Array.isArray(S)?X(S.msg):"";throw new ye(s.status,y)}let g=l!==null&&typeof l=="object"&&!Array.isArray(l)?l.meta:void 0;if(g!==null&&typeof g=="object"&&!Array.isArray(g)){let S=g,y=Number(S.status);if(Number.isFinite(y)&&y!==200)throw new ye(y,X(S.msg))}return is(l,o.offset)}return {async listStickerPacks(r){let o=await n("/user/sticker/pack_list",r===void 0?{}:{version:r},"\u8D34\u56FE\u5305\u5217\u8868");if(Array.isArray(o))return {version:"",items:o.map(Wr)};if(o==null)return {version:"",items:[]};let i=Z(o,"\u8D34\u56FE\u5305\u5217\u8868 data"),a=i.list??i.packs;if(a==null)return {version:X(i.version),items:[]};if(!Array.isArray(a))throw new $("\u8D34\u56FE\u5305\u5217\u8868 data.list \u5FC5\u987B\u662F\u6570\u7EC4\u6216 null");return {version:X(i.version),items:a.map(Wr)}},async listStickerItems(r){let o=await n("/user/sticker/item_list",{pack_id:r},"\u8D34\u56FE\u660E\u7EC6\u5217\u8868");return qn(o,"\u8D34\u56FE\u660E\u7EC6\u5217\u8868 data").map(i=>zn(i,"sticker","\u8D34\u56FE\u660E\u7EC6",r))},async listFavorites(r){let o=await n("/user/sticker/my_fav/list",{fav_type:je(r)},"\u8868\u60C5\u6536\u85CF\u5217\u8868");return Yr(o,r,"\u8868\u60C5\u6536\u85CF\u5217\u8868 data").map(i=>zn(i,r,"\u8868\u60C5\u6536\u85CF\u9879"))},async addFavorite(r){await n("/user/sticker/my_fav/add",Xr(r),"\u6DFB\u52A0\u8868\u60C5\u6536\u85CF");},async deleteFavorites(r){await n("/user/sticker/my_fav/del",{ids:Qr(r)},"\u5220\u9664\u8868\u60C5\u6536\u85CF");},async listRecent(r){let o=await n("/user/sticker/recent/list",{fav_type:je(r)},"\u6700\u8FD1\u4F7F\u7528\u5217\u8868");return Yr(o,r,"\u6700\u8FD1\u4F7F\u7528\u5217\u8868 data").map(i=>ts(i,r))},async reportRecent(r){await n("/user/sticker/recent/report",rs(r),"\u4E0A\u62A5\u6700\u8FD1\u4F7F\u7528");},async deleteRecent(r){await n("/user/sticker/recent/del",{ids:Qr(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 qn(o,"\u5FEB\u6377\u56DE\u5E94 Top data").map(i=>{let a=Z(i,"\u5FEB\u6377\u56DE\u5E94 Top \u9879");return pe(a.emoji,"\u5FEB\u6377\u56DE\u5E94 emoji")})},async reportReaction(r){await n("/user/reaction/emoji/report",{emoji:r},"\u4E0A\u62A5\u5FEB\u6377\u56DE\u5E94");},listGiphyTrending:r=>t("trending",r),searchGiphy:r=>t("search",r)}}async function Zr(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 ss(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 cs(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 eo=200,ds=50;async function no(e,n){let t=String(n.updateVersion??0).trim()||"0",r=[],o;for(let i=1;i<=ds;i++){let a={group_id:n.groupId,update_version:t,page:String(i),page_size:String(eo)},{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=ss(c);if(s.length===0)break;for(let g of s){let S=String(g.user_id??g.userId??"").trim();if(S==="")continue;let y={userId:S,nickName:String(g.nick_name??g.nickName??"").trim()},u=cs(g.join_type??g.joinType);u!==void 0&&(y.joinType=u),r.push(y);}let l=c.update_version;if(typeof l=="number"&&(o=l),s.length<eo)break}return {members:r,updateVersion:o}}async function to(e,n){return (await R(e,"/user/info/friend",{friend_user_id:n.userId})).data}var us=1440*60*1e3;function Wn(e,n,t=us){let r=new Map,o=new Map,i=new Map;function a(g){let S=(i.get(g)??0)+1;i.set(g,S);let y=e(g).then(u=>(u!==null&&i.get(g)===S&&(r.set(g,u),n?.save(g,u).catch(()=>{})),u)).finally(()=>{o.get(g)===y&&o.delete(g);});return o.set(g,y),y}return {get:async(g,S)=>{if(S?.forceRefresh===true)return a(g);let y=r.get(g);if(y!==void 0)return y;let u=o.get(g);if(u!==void 0)return u;if(n!==void 0)try{let h=i.get(g)??0,v=await n.get(g);if(v!==null)return (i.get(g)??0)===h&&(r.set(g,v.value),Date.now()-v.updatedAt>t&&a(g)),v.value}catch{}return a(g)},peek:async g=>{let S=r.get(g);if(S!==void 0)return {value:S,stale:false};if(n===void 0)return null;try{let y=i.get(g)??0,u=await n.get(g);if(u!==null)return (i.get(g)??0)===y&&r.set(g,u.value),{value:u.value,stale:Date.now()-u.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 ls(e){async function n(y){let u=await to(e.client,{userId:y})??await Ne(e.client,{userId:y});return u===null?null:Y$1(u)}async function t(y){let u=await Zr(e.client,{groupId:y,clientType:e.clientType});return u===null?null:Z$1(u)}async function r(y){let{members:u}=await no(e.client,{groupId:y,clientType:e.clientType});return u.length===0?null:u}function o(y){let u={};for(let h of y)h.nickName!==""&&(u[h.userId]=h.nickName);return u}let{storage:i}=e,a=i===void 0?void 0:{get:async y=>{let u=await i.getUserProfile(y);return u===null?null:{value:u,updatedAt:u.updatedAt}},save:async(y,u)=>{await i.saveUserProfile({...u,updatedAt:Date.now()});}},c=i===void 0?void 0:{get:async y=>{let u=await i.getGroupMembers(y);return u===null?null:{value:u.members.map(h=>({userId:h.userId,nickName:h.groupNick,...h.joinType===void 0?{}:{joinType:h.joinType}})),updatedAt:u.updatedAt}},save:async(y,u)=>{let h=u.map(v=>({userId:v.userId,groupNick:v.nickName,...v.joinType===void 0?{}:{joinType:v.joinType}}));await i.saveGroupMembers({groupId:y,members:h,updatedAt:Date.now()});}},s=i===void 0?void 0:{get:async y=>{let u=await i.getGroupProfile(y);return u===null?null:{value:u,updatedAt:u.updatedAt}},save:async(y,u)=>{await i.saveGroupProfile({...u,updatedAt:Date.now()});}},l=Wn(n,a),g=Wn(t,s),S=Wn(r,c);return {getUserProfile:(y,u)=>l.get(y,u),getGroupProfile:(y,u)=>g.get(y,u),getGroupMemberNames:async(y,u)=>{let h=await S.get(y,u);return h===null?null:o(h)},listGroupMembers:(y,u)=>S.get(y,u),peekUserProfile:y=>l.peek(y),peekGroupMemberNames:async y=>{let u=await S.peek(y);return u===null?null:{value:o(u.value),stale:u.stale}},peekGroupMembers:y=>S.peek(y),peekGroupProfile:y=>g.peek(y),clearCache:()=>{l.clear(),g.clear(),S.clear();}}}function ps(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}async function ee(e,n,t,r){let o=await R(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new V(r,o.code,o.message)}function fs(e){return ee(e.client,"/user_radio/edit",{radio_id:e.channelId,...e.name===void 0?{}:{name:e.name},...e.avatarUrl===void 0?{}:{head_img_url:e.avatarUrl},...e.description===void 0?{}:{desc:e.description}},"\u4FEE\u6539\u793E\u7FA4\u8D44\u6599")}function ms(e){return ee(e.client,"/user_radio/user/setting",{radio_id:e.channelId,nick_name:e.nickname},"\u4FEE\u6539\u793E\u7FA4\u6635\u79F0")}function gs(e){return ee(e.client,"/user_radio/member/edit",{radio_id:e.channelId,radio_user_id:e.userId,nick_name:e.nickname},"\u4FEE\u6539\u793E\u7FA4\u6635\u79F0")}function ys(e){let n=e.userIds.map(t=>({user_id:ps(t)}));return ee(e.client,"/user_radio/invited_users",{radio_id:e.channelId,members:JSON.stringify(n)},"\u9080\u8BF7\u793E\u7FA4\u6210\u5458")}function hs(e){return ee(e.client,"/user_radio/kick_user",{radio_id:e.channelId,user_id:e.userId},"\u79FB\u9664\u793E\u7FA4\u6210\u5458")}function bs(e){return ee(e.client,"/user_radio/add_admin",{radio_id:e.channelId,user_id:e.userId},"\u8BBE\u4E3A\u793E\u7FA4\u7BA1\u7406\u5458")}function Cs(e){return ee(e.client,"/user_radio/del_admin",{radio_id:e.channelId,user_id:e.userId},"\u53D6\u6D88\u793E\u7FA4\u7BA1\u7406\u5458")}function ws(e){return ee(e.client,"/user_radio/transfer",{radio_id:e.channelId,user_id:e.userId},"\u8F6C\u8BA9\u793E\u7FA4")}function Ps(e){return ee(e.client,"/user_radio/user/quit",{radio_id:e.channelId,...e.newOwnerId===void 0?{}:{user_id:e.newOwnerId}},"\u9000\u51FA\u793E\u7FA4")}function Is(e){return ee(e.client,"/user_radio/edit_setting",{radio_id:e.channelId,verify_way:e.verifyType,...e.verifyType===4&&e.inviteCode!==void 0?{invite_code:e.inviteCode}:{}},"\u4FEE\u6539\u793E\u7FA4\u5165\u7FA4\u9A8C\u8BC1\u65B9\u5F0F")}function Ss(e){return ee(e.client,"/user_radio/edit_setting",{radio_id:e.channelId,is_unspeeking_all:e.muted?"1":"0"},e.muted?"\u5F00\u542F\u793E\u7FA4\u5168\u5458\u7981\u8A00":"\u5173\u95ED\u793E\u7FA4\u5168\u5458\u7981\u8A00")}function vs(e){return ee(e.client,"/user_radio/edit_setting",{radio_id:e.channelId,is_unvisit_other:e.disabled?"1":"0"},e.disabled?"\u5F00\u542F\u793E\u7FA4\u5168\u5458\u7981\u79C1\u804A":"\u5173\u95ED\u793E\u7FA4\u5168\u5458\u7981\u79C1\u804A")}function Ms(e){return ee(e.client,"/user_radio/closed",{radio_id:e.channelId},"\u89E3\u6563\u793E\u7FA4")}async function As(e){_s(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=C({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=F(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 _s(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 xs(e){let n=Es(e.indexes),t=f.encode(f.create({sUserId:Yn(e.userId,"user"),lsIndex:n.map(i=>({sChnnId:Yn(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 Es(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=>{Yn(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 Yn(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 ks(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 pn=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;}},fn=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;}},Qn={HIDDEN_CONTACT:40112,OWN_FRIEND_LIMIT_REACHED:40121,TARGET_FRIEND_LIMIT_REACHED:40122},Ts=36875,Rs=40113;function Xn(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function se(e){let n=Xn(e);return n===""?void 0:n}function ro(e){let n=Array.isArray(e)?e[0]:e;return n!==null&&typeof n=="object"?n:void 0}function Ds(e){switch(e){case Qn.HIDDEN_CONTACT:return "hidden-contact";case Qn.OWN_FRIEND_LIMIT_REACHED:return "own-friend-limit";case Qn.TARGET_FRIEND_LIMIT_REACHED:return "target-friend-limit";default:return "remote"}}async function Us(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 pn(r.code,r.message);let o=ro(r.data);if(o===void 0)return null;let i=Xn(o.user_id??o.userId);if(i==="")throw new Error("\u641C\u7D22\u7528\u6237\uFF1A\u54CD\u5E94\u7F3A\u5C11 user_id");let a=Xn(o.nick_name??o.nickname??o.name)||i,c=o.friend_status??o.friendStatus,s=c===void 0?void 0:Number(c);if(s!==void 0&&!Number.isInteger(s))throw new Error("\u641C\u7D22\u7528\u6237\uFF1Afriend_status \u975E\u6CD5");return {userId:i,nickname:a,...se(o.username)===void 0?{}:{username:se(o.username)},...se(o.mid)===void 0?{}:{miCallId:se(o.mid)},...se(o.head_img_url??o.avatar)===void 0?{}:{avatarUrl:se(o.head_img_url??o.avatar)},...se(o.per_signature??o.signature)===void 0?{}:{signature:se(o.per_signature??o.signature)},...s===void 0?{}:{friendStatus:s}}}async function Bs(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 fn(Ds(i.code),i.code,i.message);let a=ro(i.data),c=Number(a?.status??0);if(c!==0&&c!==1&&c!==2)throw new Error(`\u53D1\u9001\u597D\u53CB\u7533\u8BF7\uFF1A\u672A\u77E5\u7ED3\u679C\u72B6\u6001 ${c}`);let s=se(a?.message??a?.msg??i.message);return {status:c,...s===void 0?{}:{message:s}}}async function Os(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!==Rs)throw new Error(`\u5220\u9664\u597D\u53CB\u5931\u8D25\uFF08${r.code}\uFF09\uFF1A${r.message||"unknown error"}`)}async function Ns(e,n){let t=n.reporterUserId.trim(),r=n.targetUserId.trim(),o=n.problem.trim();if(t===""||r===""||o==="")throw new Error("\u4E3E\u62A5\u8054\u7CFB\u4EBA\uFF1AreporterUserId\u3001targetUserId \u548C problem \u4E0D\u80FD\u4E3A\u7A7A");let i=await R(e,"/user/report_user/add",{user_id:t,to_user_id:r,problem:o,images:"1"},{responseMode:"strict",method:"POST"});if(!i.ok)throw new V("\u4E3E\u62A5\u8054\u7CFB\u4EBA",i.code,i.message)}function Ks(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}function Gs(e){let n=e.memberIds.map(t=>({user_id:Ks(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 Ls(e){return R(e.client,"/user_group/create_face",{is_hidden:"0"},{method:"POST",responseMode:"strict"})}function Hs(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}function Fs(e){let n=e.memberIds.map(t=>({user_id:Hs(t)}));return R(e.client,"/user_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 oo(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function $s(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(!oo(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(!oo(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 io(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function Js(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(!io(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(!io(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 js(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 Vs(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||!Vs(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 zs(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}async function Ve(e,n,t,r){let o=await R(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new V(r,o.code,o.message)}function Ws(e){let n=e.userIds.map(t=>({user_id:zs(t)}));return Ve(e.client,"/user_group/invited",{group_id:e.groupId,members:JSON.stringify(n)},"\u9080\u8BF7\u7FA4\u6210\u5458")}function Ys(e){return Ve(e.client,"/user_group/kick",{group_id:e.groupId,out_user_id:e.userId},"\u79FB\u9664\u7FA4\u6210\u5458")}function Qs(e){return Ve(e.client,"/user_group/transfer",{group_id:e.groupId,new_user_id:e.userId},"\u8F6C\u8BA9\u7FA4\u7EC4")}function Xs(e){return Ve(e.client,"/user_group/user/quit",{group_id:e.groupId,...e.newOwnerId===void 0?{}:{new_user_id:e.newOwnerId}},"\u9000\u51FA\u7FA4\u7EC4")}function Zs(e){return Ve(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 ec=new Set([200,32768]);async function nc(e){let n=S({userId:e.userId,groupId:e.groupId}),t=await e.http.postProtobuf({path:"/offline/v1/group/read_all",body:n}),{code:r}=T(t);if(!ec.has(r))throw new Error(`\u7FA4 read_all \u4E1A\u52A1\u5931\u8D25\uFF1Acode=${r}\uFF08groupId=${e.groupId}\uFF09`)}var qe=class extends Error{constructor(n){super(`${n}\u54CD\u5E94\u5305\u542B\u65E0\u6CD5\u8BC6\u522B\u7684 is_waitting`),this.name="MembershipJoinMappingError";}};function tc(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 qe(n)}async function ao(e,n,t,r){let o=await R(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new V(r,o.code,o.message);if(o.data===null||o.data===void 0)throw new qe(r);return tc(o.data.is_waitting,r)}async function so(e,n,t,r){let o=await R(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new V(r,o.code,o.message);return Object.freeze({outcome:"joined"})}function rc(e){return ao(e.client,"/user_group/apply",{group_id:e.groupId,qrcode_type:2,remarks:e.remarks??""},"\u7533\u8BF7\u52A0\u5165\u666E\u901A\u7FA4")}function oc(e){return so(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 ic(e){return ao(e.client,"/user_radio/add/apply",{radio_id:e.channelId,remarks:e.remarks??""},"\u7533\u8BF7\u52A0\u5165\u793E\u7FA4")}function ac(e){return so(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 sc(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 cc(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 dc(e){let n=W$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 X$1(t,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function uc(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,messageIds:e.messageIds,clientType:e.clientType}),t=await e.http.postProtobuf({path:"/offline/v1/group/msg/by_id",body:n});return R$1(t,{selfId:e.userId,keepRaw:true,source:"history",onReaction:e.onReaction},e.decryptDeps)}async function lc(e){e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId);let n=G({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 H$1(t,{selfId:e.userId,keepRaw:true,expectedChannelIds:[e.channelId],diagnostic:{endpoint:"msgById",surface:"msg-by-id",...e.operationId===void 0?{}:{operationId:e.operationId},clientTypeHeader:e.clientType,clientTypeBody:e.clientType},onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps)}var pc=20,co=10,Zn=30,fc=100;async function mc(e){let n=[];for(let t of lo(e.channels,pc)){let r=B({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=E(o,i);await uo(e,a.sessions.filter(c=>c.channelState==="active"||c.raw?.status===0).map(c=>c.channelId)),n.push(...E(o,{...i,onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps).sessions);}return n}async function gc(e){let n=bc(e.channelBatchSize),t=e.messageCount??Zn,r=Cc(e.maxPagesPerBatch),o=new Map;for(let i of lo(e.pulls,n)){let a=i.map(l=>({...l})),c=new Map(a.map(l=>[l.channelId,new Set([l.baseIndex])])),s=0;for(;a.length>0;){if(s>=r){let u=a.map(({channelId:h,baseIndex:v})=>`${h}@${v}`).join(",");throw new Error(`channel offline \u5206\u9875\u8D85\u8FC7 maxPagesPerBatch=${r}\uFF08active=${u}\uFF09`)}s+=1;let l=C({userId:e.userId,clientType:e.clientType,pulls:a.map(u=>({channelId:u.channelId,baseIndex:u.baseIndex,direction:0,count:t,contain:0}))}),g=await e.http.postProtobuf({path:"/channel/v1/offlineMessages",body:l});await uo(e,a.map(u=>u.channelId));let S=F(g,{selfId:e.userId,keepRaw:true,expectedChannelIds:a.map(u=>u.channelId),diagnostic:{endpoint:"offlineMessages",surface:"offline-batch",...e.operationId===void 0?{}:{operationId:e.operationId},clientTypeHeader:e.clientType,clientTypeBody:e.clientType},onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps);for(let u of S.messages)o.has(u.id)||o.set(u.id,u);let y=[];for(let u of a){let h=S.nextBaseIndexes[u.channelId],v=S.messageCounts[u.channelId]??0;if(h===void 0)continue;let T=c.get(u.channelId);if(T.has(h))throw new Error(`channel offline cursor \u5FAA\u73AF\uFF08channelId=${u.channelId}, baseIndex=${h}\uFF09`);v<t||(T.add(h),y.push({channelId:u.channelId,baseIndex:h}));}a=y;}}return [...o.values()].sort(k)}async function yc(e$1){let n=e$1.count??Zn;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=C({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=F(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 hc(e){let n=e.count??Zn;e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId);let t=D({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 I(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 uo(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 bc(e){if(e===void 0)return co;if(!Number.isInteger(e)||e<=0)throw new Error("channel offline: channelBatchSize \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");return Math.min(e,co)}function Cc(e){if(e===void 0)return fc;if(!Number.isInteger(e)||e<=0)throw new Error("channel offline: maxPagesPerBatch \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");return e}function lo(e,n){let t=[];for(let r=0;r<e.length;r+=n)t.push(e.slice(r,r+n));return t}async function po(e,n){let t=U({userId:n.userId,clientType:n.clientType,limit:n.limit,deliveredMsgInfos:n.deliveredMsgInfos}),r=await n.http.postProtobuf({path:e,body:t});return V$1(r,{selfId:n.userId,keepRaw:true,onReaction:n.onReaction},n.decryptDeps)}function fo(e){return po("/offline/v1/chat",e)}function mo(e){return po("/offline/v1/owner_chat",e)}function wc(e){return fo(e).then(n=>n.messages)}function Pc(e){return mo(e).then(n=>n.messages)}function go(e){return [...new Set(e.filter(n=>n!==void 0&&n!==""))]}async function Ic(e){let n=K$1({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=M(t,{selfId:e.userId}),o=go(r.messages.map(i=>i.conversationId));o.length>0&&await e.prepareKeys(o);}return M(t,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function Sc(e){let n=L$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=N$1(t,{selfId:e.userId}),o=go([...r.unreads.map(i=>i.groupId),...r.messages.map(i=>i.conversationId)]);o.length>0&&await e.prepareKeys(o);}return N$1(t,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function vc(e){e.prepareKeys!==void 0&&e.decryptDeps!==void 0&&e.groupId!==""&&await e.prepareKeys([e.groupId]);let n=O$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 P(t,{selfId:e.userId,keepRaw:true,source:"history",onReaction:e.onReaction},e.decryptDeps)}async function Mc(e){let n=ca$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 da$1(t)}var Ac={direct:"/friend/undisturb/set",group:"/user_group/user/edit",channel:"/user_radio/user/setting"},_c={direct:"friend_user_id",group:"group_id",channel:"radio_id"};async function xc(e){let n=Ac[e.conversationType],t=_c[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 Ec(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 kc(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 Tc(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 Rc(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 Dc(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 Uc="1970-01-01 08:00:00",Bc="2000",Oc="",mn=class extends Error{constructor(){super("\u4F1A\u8BDD\u6536\u85CF Core API \u672A\u914D\u7F6E"),this.name="SessionFavoriteProviderUnavailableError";}},fe=class extends Error{constructor(n){super(n),this.name="SessionFavoriteMappingError";}};function z(e){return typeof e=="string"?e:e==null?"":String(e)}function ze(e,n){let t=z(e).trim();if(t==="")throw new fe(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function Nc(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 Kc(e){return e==="text"?1:e==="image"?2:e==="video"?3:e==="voice"?4:e==="location"?5:e==="mediaAlbum"?28:11}function Gc(e){if(e==="direct")return 0;if(e==="group")return 1;if(e==="channel")return 2;throw new fe(`favorite conversation type ${e}`)}function gn(e,n){return n==="text"||n==="location"?z(e.content).trim():n==="file"?z(e.fileName||e.file_name||e.name).trim():n==="mediaAlbum"?z(e.caption).trim():""}function Lc(e,n){let t=z(e.group_id).trim(),r=z(e.radio_id).trim(),o=Number(z(e.msg_type).trim());if(o===1&&t!=="")return {conversationType:"group",conversationId:t};if(o===2&&r!=="")return {conversationType:"channel",conversationId:r};if(t!=="")return {conversationType:"group",conversationId:t};if(r!=="")return {conversationType:"channel",conversationId:r};if(o===0){let i=z(e.from_id).trim(),a=z(e.to_id).trim(),c=i===n.trim()?a:i;if(c!=="")return {conversationType:"direct",conversationId:c}}return null}function Hc(e,n){let t=e.from_user,r=z(t?.nick_name||t?.nickname||t?.name).trim();return r===""?n:r}function Fc(e,n){let t=z(e.uu_id).trim(),r=Nc(e.content_type),o=dr(z(e.msg_body),n);if(t===""||r===null||o===null)return null;let i=z(e.from_id).trim();return Object.freeze({collectId:t,msgId:z(e.msg_id).trim(),kind:r,senderId:i,senderName:Hc(e,i),avatarUrl:z(e.from_user?.avatar).trim(),createdAt:z(e.create_time||e.update_time||e.msg_time).trim(),text:gn(o,r),imageUrl:ob(r,o),fileName:r==="file"?gn(o,"file"):"",body:Object.freeze({...o}),conversation:Lc(e,n)})}function $c(e){if(e==null)return [];if(Array.isArray(e))return e;if(typeof e=="object"&&e!==null&&"list"in e){let n=e.list;if(n==null)return [];if(Array.isArray(n))return n}throw new fe("favorite list data \u5FC5\u987B\u662F\u6570\u7EC4\u6216 { list }")}function Jc(){if(typeof crypto>"u"||typeof crypto.randomUUID!="function")throw new fe("collect uuid \u4E0D\u53EF\u7528");return crypto.randomUUID()}function jc(e){return Object.freeze({...e,body:Object.freeze({...e.body}),conversation:e.conversation===null?null:Object.freeze({...e.conversation})})}function Vc(e){async function n(t,r,o){if(e.coreClient===void 0)throw new mn;let i=await R(e.coreClient,t,r,{method:"POST",responseMode:"strict",prefix:Oc});if(!i.ok)throw new V(o,i.code,i.message);return i.data}return {async list(){let t=ze(e.getUserId(),"favorite userId"),r=await n("/api/v1/user/favorite/list",{start_time:Uc,page_size:Bc},"\u4F1A\u8BDD\u6536\u85CF\u5217\u8868");return Object.freeze($c(r).flatMap(o=>{let i=Fc(o,t);return i===null?[]:[i]}))},async add(t){let r=ze(e.getUserId(),"favorite userId"),o=(e.createCollectId??Jc)(),i={msg_id:ze(t.messageId,"favorite msgId"),content_type:Kc(t.kind),msg_type:Gc(t.conversation.conversationType),msg_time:String(t.createdAt),from_id:ze(t.senderId,"favorite fromId"),to_id:ze(t.peerId,"favorite toId"),is_hide:t.hide===true?"1":"0",uu_id:o,msg_body:cr(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"),jc({collectId:o,msgId:t.messageId.trim(),kind:t.kind,senderId:t.senderId.trim(),senderName:t.senderId.trim(),avatarUrl:"",createdAt:String(t.createdAt),text:gn(t.plainBody,t.kind),imageUrl:ob(t.kind,t.plainBody),fileName:t.kind==="file"?gn(t.plainBody,"file"):"",body:t.plainBody,conversation:t.conversation})},async delete(t){let r=[...new Set(t.map(o=>o.trim()).filter(o=>o!==""))];if(r.length===0)throw new fe("favorite ids \u4E0D\u80FD\u4E3A\u7A7A");await n("/api/v1/user/favorite/del",{ids:r.join("|")},"\u5220\u9664\u4F1A\u8BDD\u6536\u85CF");}}}var yo="image/jpeg";function et(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:et(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:et(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:yo}},async videoPoster(t,r,o){let i=await e.prepare({operationId:`core-video-poster-${++n}`,generation:0,kind:"video",file:et(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:yo}}}}function zc(e){return e>=192&&e<=207&&e!==196&&e!==200&&e!==204}function Wc(e){return e!==void 0&&e>=5&&e<=8}function Yc(e,n,t){return Wc(t)?{width:n,height:e}:{width:e,height:n}}function Qc(e,n,t){if(n+6>t)return;for(let[s,l]of [69,120,105,102,0,0].entries())if(e.getUint8(n+s)!==l)return;let r=n+6;if(r+8>t)return;let o=e.getUint16(r,false);if(o!==19789&&o!==18761)return;let i=o===18761;if(e.getUint16(r+2,i)!==42)return;let a=r+e.getUint32(r+4,i);if(a+2>t)return;let c=e.getUint16(a,i);for(let s=0;s<c;s++){let l=a+2+s*12;if(l+12>t)return;if(e.getUint16(l,i)===274)return e.getUint16(l+8,i)}}function Xc(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(zc(o)){if(a+5>n)return;let s=e.getUint16(a+1,false),l=e.getUint16(a+3,false);return l<=0||s<=0?void 0:Yc(l,s,t)}o===225&&t===void 0&&(t=Qc(e,a,c)),r=c;}}function Zc(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 ed(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 nd(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 yn(e,n,t){return n<t.length?false:t.every((r,o)=>e.getUint8(o)===r)}async function ho(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(yn(t,r,[255,216,255]))return Xc(t,r);if(yn(t,r,[137,80,78,71,13,10,26,10]))return Zc(t,r);if(yn(t,r,[71,73,70,56]))return ed(t,r);if(yn(t,r,[82,73,70,70])&&r>=12&&t.getUint32(8,false)===1464156752)return nd(t,r)}var So=320,td=12*1024,vo=20*1024,rd=.9,od=.72,id=320,ad=10*1024,sd=16*1024,cd=.84,dd=.68,Mo=15e3,ud=1;function ld(){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 bo(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 We(e){if(e?.aborted)throw new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError")}var Co=16777216,pd=4096;function fd(e,n){let t=Math.min(1,pd/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>Co){let a=Math.sqrt(Co/i);r=Math.max(1,Math.floor(r*a)),o=Math.max(1,Math.floor(o*a));}return {width:r,height:o}}function tt(e,n,t){let r=Math.min(1,t/Math.max(e,n));return fd(Math.max(1,Math.round(e*r)),Math.max(1,Math.round(n*r)))}async function wo(e,n,t,r,o){We(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(We(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 nt(e,n){if(!Number.isInteger(e)||e<=0)throw new RangeError(`${n}\u5FC5\u987B\u662F\u6B63\u6574\u6570`)}function Po(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 rt(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?id:So),s=r.targetBytes??(i?ad:td),l=r.maxBytes??(i?sd:vo),g=r.quality??(i?cd:rd),S=r.minQuality??(i?dd:od);if(nt(c,`${a}\u6700\u5927\u8FB9\u957F`),nt(s,`${a}\u76EE\u6807\u5B57\u8282\u6570`),nt(l,`${a}\u6700\u5927\u5B57\u8282\u6570`),Po(g,`${a}\u521D\u59CB\u8D28\u91CF`),Po(S,`${a}\u6700\u4F4E\u8D28\u91CF`),s>l)throw new RangeError(`${a}\u76EE\u6807\u5B57\u8282\u6570\u4E0D\u80FD\u8D85\u8FC7\u6700\u5927\u5B57\u8282\u6570`);if(S>g)throw new RangeError(`${a}\u6700\u4F4E\u8D28\u91CF\u4E0D\u80FD\u9AD8\u4E8E\u521D\u59CB\u8D28\u91CF`);let y=tt(n,t,c),u=Math.min(200,Math.max(y.width,y.height)),h,v=[...new Set([g,Math.max(S,g-.12),S])];for(let d of v){let f=await wo(e,y.width,y.height,d,o);if((h===void 0||f.byteLength<h.byteLength)&&(h=f),f.byteLength<=s)return f}let T=Math.max(y.width,y.height);if(T>u&&h!==void 0){let d=Math.sqrt(s/h.byteLength),f=Math.max(u,Math.floor(T*Math.min(.9,Math.max(.5,d))));y=tt(n,t,f);for(let C of [g,S]){let p=await wo(e,y.width,y.height,C,o);if(p.byteLength<h.byteLength&&(h=p),p.byteLength<=s)return p}}if(h!==void 0&&h.byteLength<=l)return h;throw new Error(`${a}\u751F\u6210\u5931\u8D25\uFF1A\u7F16\u7801\u7ED3\u679C\u8D85\u8FC7 ${l} \u5B57\u8282\u786C\u4E0A\u9650`)}function Io(e,n,t){return new Promise((r,o)=>{let i,a,c,s,l=()=>{i!==void 0&&clearTimeout(i),e.removeEventListener(n,a),e.removeEventListener("error",c),t?.removeEventListener("abort",s);};a=()=>{l(),r();},c=()=>{l(),o(new Error(`\u89C6\u9891\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A${n} \u524D\u89E3\u7801\u9519\u8BEF`));},s=()=>{l(),o(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));},i=setTimeout(()=>{l(),o(new Error(`\u89C6\u9891\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A${n} \u8D85\u65F6`));},Mo),e.addEventListener(n,a,{once:true}),e.addEventListener("error",c,{once:true}),t?.addEventListener("abort",s,{once:true});})}async function md(e,n){We(n);let t=e.maxSize??So,r=e.maxBytes??vo,o=await ho(e.file);We(n);function i(g,S){return e.file.type==="image/jpeg"&&e.file.size<=r&&Math.max(g,S)<=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:tt(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{We(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 rt(c,c.width,c.height,e,n)}}finally{c.close();}let s=URL.createObjectURL(e.file),l=new Image;try{await new Promise((S,y)=>{let u,h,v=()=>{u!==void 0&&clearTimeout(u),l.onload=null,l.onerror=null,n?.removeEventListener("abort",h);};h=()=>{v(),y(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));},l.onload=()=>{v(),S();},l.onerror=()=>{v(),y(new Error("\u56FE\u7247\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1AImage \u89E3\u7801\u9519\u8BEF"));},u=setTimeout(()=>{v(),y(new Error("\u56FE\u7247\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1AImage \u89E3\u7801\u8D85\u65F6"));},Mo),n?.addEventListener("abort",h,{once:!0}),l.src=s;});let g=o??{width:l.naturalWidth,height:l.naturalHeight};return e.includePoster===!1?g:i(l.naturalWidth,l.naturalHeight)?{...g,posterData:await e.file.arrayBuffer()}:{...g,posterData:await rt(l,l.naturalWidth,l.naturalHeight,e,n)}}finally{l.removeAttribute("src"),URL.revokeObjectURL(s);}}async function gd(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 Io(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 Io(r,"seeked",n));let s=a===void 0?void 0:a,l;try{l=await rt(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},...l===void 0?{}:{posterData:l}}}finally{r.pause(),r.removeAttribute("src"),r.load(),URL.revokeObjectURL(t);}}function yd(e={}){let n=e.maxConcurrency??ld();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=bo(n),r=bo(ud),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 gd(i,a):await md(i,a)}finally{s();}},dispose(){o||(o=true,t.dispose(),r.dispose());}}}function hd(){let e=0,n=[];function t(){for(;e<6&&n.length>0;){let r=n.shift();r.signal?.removeEventListener("abort",r.cancel),e+=1,r.start();}}return async function(o,i){if(o?.aborted)throw new DOMException("\u5A92\u4F53\u4E0B\u8F7D\u5DF2\u53D6\u6D88","AbortError");await new Promise((a,c)=>{let s={signal:o,start:a,cancel:()=>{let l=n.indexOf(s);l>=0&&n.splice(l,1),c(new DOMException("\u5A92\u4F53\u4E0B\u8F7D\u5DF2\u53D6\u6D88","AbortError"));}};o?.addEventListener("abort",s.cancel,{once:true}),n.push(s),t();});try{if(o?.aborted)throw new DOMException("\u5A92\u4F53\u4E0B\u8F7D\u5DF2\u53D6\u6D88","AbortError");return await i()}finally{e-=1,t();}}}function bd(e,n,t,r){let o=/^bytes (\d+)-(\d+)\/(\d+)$/.exec(e.headers.get("content-range")??""),i=e.headers.get("etag")??"",a=Number(o?.[1]),c=Number(o?.[2]),s=Number(o?.[3]);if(e.status!==206||o===null||![a,c,s].every(Number.isSafeInteger)||s<=0||a!==n||c!==Math.min(t,s-1)||c<a||!/^"[\x21\x23-\x7E\x80-\xFF]*"$/.test(i)||e.headers.get("content-encoding")!==null&&e.headers.get("content-encoding")!=="identity")throw new H("download-range-invalid","\u5206\u6BB5\u4E0B\u8F7D\u54CD\u5E94\u65E0\u6548\uFF1A\u9700\u8981 206\u3001\u6B63\u786E Content-Range\u3001\u5F3A ETag \u548C\u672A\u538B\u7F29\u5B57\u8282\uFF1B\u8BF7\u68C0\u67E5\u4E0B\u8F7D\u57DF\u540D\u7684 CORS ExposeHeaders");if(r!==void 0&&(s!==r.total||i!==r.etag))throw new H("download-object-changed","\u5206\u6BB5\u4E0B\u8F7D\u671F\u95F4\u6587\u4EF6\u7248\u672C\u53D1\u751F\u53D8\u5316\uFF0C\u8BF7\u91CD\u65B0\u4E0B\u8F7D");return {end:c,total:s,etag:i}}function Ao(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=hd();async function o(a,c){if(!a.ok)throw new H("download-range-failed",`\u5A92\u4F53\u4E0B\u8F7D\u5931\u8D25\uFF1AHTTP ${a.status}`);return c.onProgress===void 0||a.body===null?c.preferBlob===true?await a.blob():new Uint8Array(await a.arrayBuffer()):wd(a,c.onProgress,c.expectedBytes,c.preferBlob===true)}async function i(a){let c=new AbortController,s=()=>c.abort(a.signal?.reason);a.signal?.aborted?s():a.signal?.addEventListener("abort",s,{once:true});let l=c.signal,g=[],S=[],y,u="",h=1,v,T=false,d=p=>{T||(T=true,v=p,c.abort());};function f(p,b){S[p]=b;let M=S.reduce((P,w)=>P+w,0),_=y.total;a.onProgress?.({percent:Math.min(99,Math.round(M/_*100)),bytesTransferred:M,bytesTotal:_});}async function C(p){let b=p*t,M=y===void 0?b+t-1:Math.min(b+t-1,y.total-1);return r(l,async()=>{let _=await fetch(a.url,{signal:l,cache:"no-store",headers:{Range:`bytes=${b}-${M}`}});if(p===0&&_.status===200)return n?.record("info","sdk","media","download-range-unavailable",()=>({data:{reason:"server-returned-full-response"}})),g[0]=await o(_,{...a,preferBlob:true}),"single";let P=bd(_,b,M,y);y===void 0&&(y=P,u=_.headers.get("content-type")??"",n?.record("debug","sdk","media","download-range-started",()=>({data:{bytesTotal:P.total,partSizeBytes:t,concurrency:3}})));let w=await o(_,{...a,preferBlob:true,onProgress:A=>f(p,A.bytesTransferred)});if(w.size!==P.end-b+1)throw new H("download-range-invalid","\u5206\u6BB5\u4E0B\u8F7D\u5B57\u8282\u6570\u4E0E Content-Range \u4E0D\u4E00\u81F4");return g[p]=w,f(p,w.size),"range"})}try{let p=await C(0);if(p==="range"){let b=Math.ceil(y.total/t),M=Array.from({length:Math.min(3,b-1)},async()=>{try{for(;!l.aborted&&h<b;)await C(h++);}catch(_){d(_);}});if(await Promise.allSettled(M),T)throw v}if(l.aborted)throw new DOMException("\u5A92\u4F53\u4E0B\u8F7D\u5DF2\u53D6\u6D88","AbortError");return p==="single"?g[0]:new Blob(g,{type:u})}catch(p){throw c.abort(),n?.record("warn","sdk","media","download-range-failed",()=>({data:{code:p instanceof H?p.code:"download-failed"}})),p}finally{a.signal?.removeEventListener("abort",s);}}return async function(c){return e&&c.preferBlob===true&&Number.isFinite(c.expectedBytes)&&c.expectedBytes>t?i(c):r(c.signal,async()=>{if(c.onProgress!==void 0&&typeof XMLHttpRequest<"u")return Cd(c);let s=await fetch(c.url,c.signal===void 0?{}:{signal:c.signal});return o(s,c)})}}function Cd(e){let n=e.preferBlob===true;return new Promise((t,r)=>{let o=new XMLHttpRequest,i=false,a=()=>{},c=()=>{e.signal?.removeEventListener("abort",a),o.onprogress=null,o.onload=null,o.onerror=null,o.onabort=null;},s=l=>{i||(i=true,c(),l());};if(a=()=>{o.abort(),s(()=>r(new DOMException("media download canceled","AbortError")));},o.open("GET",e.url,true),o.responseType=n?"blob":"arraybuffer",o.onprogress=l=>{let g=e.expectedBytes!==void 0&&Number.isFinite(e.expectedBytes)&&e.expectedBytes>0?Math.floor(e.expectedBytes):0,S=l.lengthComputable&&l.total>0?l.total:g,y=S>0?Math.min(99,Math.round(l.loaded/S*100)):0;e.onProgress?.({percent:y,bytesTransferred:l.loaded,bytesTotal:S});},o.onload=()=>{if(o.status<200||o.status>=300){s(()=>r(new Error(`media download \u5931\u8D25\uFF1AHTTP ${o.status}`)));return}let l=o.response;if(n){if(!(typeof Blob<"u"&&l instanceof Blob)){s(()=>r(new Error("media download \u5931\u8D25\uFF1AXHR \u672A\u8FD4\u56DE Blob")));return}s(()=>t(l));return}if(!(l instanceof ArrayBuffer)){s(()=>r(new Error("media download \u5931\u8D25\uFF1AXHR \u672A\u8FD4\u56DE ArrayBuffer")));return}s(()=>t(new Uint8Array(l)));},o.onerror=()=>s(()=>r(new Error("media download \u5931\u8D25\uFF1Anetwork"))),o.onabort=()=>s(()=>r(new DOMException("media download canceled","AbortError"))),e.signal?.aborted){a();return}e.signal?.addEventListener("abort",a,{once:true}),o.send();})}async function wd(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,S){c+=g.byteLength;let y=a>0?Math.min(99,Math.round(c/a*100)):0;n({percent:y,bytesTransferred:c,bytesTotal:a}),S.enqueue(g);}})),l=new Response(s,{headers:e.headers});return r?await l.blob():new Uint8Array(await l.arrayBuffer())}var ot="is missing ETag in UploadPart response";function it(e){if(typeof e!="object"||e===null)return false;let n=e;return n.name==="NoSuchUpload"||n.Code==="NoSuchUpload"}function Pd(e,n,t){return e instanceof Uint8Array?e.subarray(n,t):e.slice(n,t)}async function _o(e,n,t){return e.transformPart===void 0?n:await e.transformPart(n instanceof Blob?n:new Blob([n]),t)}function xo(e,n){let t=new Map,r=n,o=n;function i(){if(e.onProgress===void 0)return;let a=r;for(let l of t.values())a+=l;o=Math.max(o,a);let c=e.sourceBytes,s=c>0?Math.min(99,Math.round(o/c*100)):0;e.onProgress({percent:s,bytesTransferred:o,bytesTotal:c,phase:c>0&&o>=c?"finalizing":"transferring"});}return {trackPart(a,c){t.set(a,c),i();},completePart(a,c){t.delete(a),r+=c,i();},report:i}}function Eo(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 ko(e,n){let t=xo(n,0),r=Eo(e.handler,t);try{let o=await _o(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 at(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 st(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=at(e.resume,n,t.sourceBytes,r),c=new Map;if(a!==void 0)for(let f of a)c.set(f.partNumber,f);let s=a===void 0?"":e.resume.uploadId;if(s===""){let f=await n.client.send(new n.commands.CreateMultipartUploadCommand({Bucket:n.bucket,Key:n.key,...n.mimeType!==void 0&&n.mimeType!==""?{ContentType:n.mimeType}:{}}));if(f.UploadId===void 0||f.UploadId==="")throw new Error("media upload: CreateMultipartUpload \u672A\u8FD4\u56DE UploadId");s=f.UploadId,c.clear();}let l=f=>Math.min(r,t.sourceBytes-(f-1)*r),g=0;for(let f of c.keys())g+=l(f);let S=xo(t,g),y=Eo(n.handler,S),u=()=>({bucket:n.bucket,key:n.key,uploadId:s,partSize:r,sourceBytes:t.sourceBytes,parts:[...c.values()].sort((f,C)=>f.partNumber-C.partNumber)});e.onResumable?.(u()),S.report();let h=new AbortController,v=()=>h.abort();t.signal?.addEventListener("abort",v,{once:true}),t.signal?.aborted&&v();let T=1;async function d(){for(;;){if(h.signal.aborted)return;let f=T;if(T+=1,f>i)return;if(c.has(f))continue;let C=(f-1)*r,p=Math.min(C+r,t.sourceBytes),b=await _o(t,Pd(t.data,C,p),f),M=await n.client.send(new n.commands.UploadPartCommand({Bucket:n.bucket,Key:n.key,UploadId:s,PartNumber:f,Body:b}),{abortSignal:h.signal});if(M.ETag===void 0||M.ETag==="")throw new Error(`media upload: Part ${f} ${ot}`);c.set(f,{partNumber:f,etag:M.ETag}),S.completePart(f,p-C),e.onResumable?.(u());}}try{let f;if(await Promise.allSettled(Array.from({length:Math.max(1,o)},async()=>{try{await d();}catch(C){f??={cause:C},v();}})),f!==void 0)throw f.cause;if(t.signal?.aborted)throw new DOMException("media upload canceled","AbortError");if(await n.client.send(new n.commands.CompleteMultipartUploadCommand({Bucket:n.bucket,Key:n.key,UploadId:s,MultipartUpload:{Parts:[...c.values()].sort((C,p)=>C.partNumber-p.partNumber).map(C=>({PartNumber:C.partNumber,ETag:C.etag}))}}),t.signal===void 0?{}:{abortSignal:t.signal}),t.signal?.aborted)throw new DOMException("media upload canceled","AbortError")}finally{t.signal?.removeEventListener("abort",v),y();}}async function hn(e,n){try{await e.client.send(new e.commands.AbortMultipartUploadCommand({Bucket:n.bucket,Key:n.key,UploadId:n.uploadId}));}catch(t){if(!it(t))throw t}}var Id=16*1024*1024,Sd=3,vd=6,To=8;function Md(e){return Math.ceil(e/To)*To}function Ad(e){if(e instanceof Uint8Array)return e.byteLength;if(typeof Blob<"u"&&e instanceof Blob)return e.size}var Ro="\u5206\u7247\u4E0A\u4F20\u8981\u6C42\u8BE5 bucket \u7684 CORS \u653E\u884C POST\uFF08Create/CompleteMultipartUpload\uFF09\u3001DELETE\uFF08AbortMultipartUpload\uFF09\u5E76 ExposeHeaders: ETag";function _d(e){return e instanceof Error&&e.message.includes(ot)}function xd(e,n,t){return t!==void 0?new H("multipart-abort-failed",`media upload: \u5206\u7247\u4E0A\u4F20\u5931\u8D25\u540E\u7684 AbortMultipartUpload \u6E05\u7406\u672A\u6210\u529F\uFF0C\u5DF2\u4E0A\u4F20\u5206\u7247\u53EF\u80FD\u6B8B\u7559\u5728 bucket \u4E2D\u5E76\u7EE7\u7EED\u8BA1\u8D39\uFF08\u5EFA\u8BAE\u6876\u4FA7\u914D\u7F6E AbortIncompleteMultipartUpload \u751F\u547D\u5468\u671F\u89C4\u5219\uFF09\uFF1B${Ro}`,{cause:t}):_d(e)?new H("multipart-etag-missing","media upload: \u5206\u7247\u54CD\u5E94\u8BFB\u4E0D\u5230 ETag\uFF0C\u8FD9\u662F bucket CORS \u7F3A\u5C11 ExposeHeaders: ETag \u7684\u914D\u7F6E\u95EE\u9898\uFF0C\u4E0D\u662F\u7F51\u7EDC\u95EE\u9898",{cause:e}):n&&!(e instanceof Error&&e.name==="AbortError")?new H("multipart-upload-failed",`media upload: \u5206\u7247\u4E0A\u4F20\u5931\u8D25\uFF1B${Ro}`,{cause:e}):e}var Ed=new Set(["upload-source-invalid","multipart-etag-missing","multipart-abort-failed"]);function Do(e,n){let t=e?.transport;if(!(t?.session===void 0||n!==void 0&&t.logicalBucket!==n))return t}var Ye;function Uo(){if(Ye!==void 0)return Ye;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 Ye===n&&(Ye=void 0),t});return Ye=n,n}function kd(e){if(e===void 0)return "";let n=e.lastIndexOf(".");return n>=0?e.slice(n):""}function Td(e){return globalThis.crypto.randomUUID()+kd(e)}function Bo(e,n){let t=e.keyPrefix??"";return t===""||n.startsWith(t)?n:`${t}${n}`}function Rd(e,n){let t=$t(e.getUploadCredentials),r=0;function o(){let u=Math.min(Sd,Math.max(1,vd-r));r+=u;let h=false;return {queueSize:u,release(){h||(h=true,r-=u);}}}function i(u,h){if(u==="avatar")return e.avatarBucket??"";if(h==="channel"){let v=e.channelBuckets?.[u]??"";if(v!=="")return v}return e.buckets[u]??""}function a(u,h,v){let{region:T}=h;return new u.S3Client({region:T,credentials:{accessKeyId:h.accessKeyId,secretAccessKey:h.secretAccessKey,sessionToken:h.sessionToken,...h.expiresAtSeconds===void 0?{}:{expiration:new Date(h.expiresAtSeconds*1e3)}},useAccelerateEndpoint:(e.useAccelerateEndpoint??true)&&!T.toLowerCase().startsWith("cn-"),requestChecksumCalculation:"WHEN_REQUIRED",requestHandler:v})}async function c(u,h,v,T,d,f,C){let p=Md(Id),b=e.multipartUpload!==false&&C>p,M=b?o():{queueSize:1,release:()=>{}},_=new u.XhrHttpHandler({}),P=a(u,d,_),w={client:P,handler:_,commands:u.commands,bucket:d.bucket,key:f,...h.mimeType!==void 0&&h.mimeType!==""?{mimeType:h.mimeType}:{}},A={data:h.data,sourceBytes:C,...h.onProgress===void 0?{}:{onProgress:h.onProgress},...h.signal===void 0?{}:{signal:h.signal},...h.transformPart===void 0?{}:{transformPart:h.transformPart}},m=h.resume,I=Do(m),x=b&&I?.logicalBucket===v&&at(I.session,w,C,p)!==void 0,E=x?I?.session:void 0,D=U=>{E=U;let B=0;for(let F of U.parts)B+=Math.min(U.partSize,U.sourceBytes-(F.partNumber-1)*U.partSize);h.onResumable?.({bytesUploaded:B,transport:{logicalBucket:v,objectName:T,session:U}});},k;try{if(I!==void 0&&!x){delete h.resume;try{I.logicalBucket===v?await hn(w,I.session):await S(m);}catch{n?.record("warn","sdk","media","upload-resume-abandon-failed",()=>({data:{code:"multipart-abort-failed",reason:"resume-target-changed"}}));}}if(h.signal?.aborted)throw new DOMException("media upload canceled","AbortError");if(!b){await ko(w,A);return}let U=E;try{await st({target:w,content:A,partSize:p,queueSize:M.queueSize,...U===void 0?{}:{resume:U},onResumable:D});}catch(B){if(h.signal?.aborted||!it(B)||U===void 0)throw B;E=void 0,await st({target:w,content:A,partSize:p,queueSize:M.queueSize,onResumable:D});}}catch(U){if(h.signal?.aborted===true&&h.signal.reason!=="offline"&&E!==void 0)try{await hn(w,E);}catch(B){k=B;}throw xd(U,b,k)}finally{M.release(),P.destroy();}}async function s(u,h,v){let T=i(h,v);if(T==="")throw new H("bucket-unconfigured",`media upload: kind=${h} \u7684\u903B\u8F91\u6876\u540D\u672A\u914D\u7F6E\uFF08\u5BBF\u4E3B IM \u5BF9\u8C61\u5B58\u50A8\u914D\u7F6E\u7F3A\u8BE5\u8D44\u6E90\u7C7B\u578B\uFF09`);let d=Ad(u.data);if(d===void 0)throw new H("upload-source-invalid","media upload: \u4E0A\u4F20\u5185\u5BB9\u5FC5\u987B\u662F Uint8Array \u6216 Blob");let f=await Uo(),C=Do(u.resume,T)?.objectName??Td(u.filename),p={...u,onResumable:_=>{p.resume=_,u.onResumable?.(_);}},b=await t.resolve(T),M=Bo(b,C);try{await c(f,p,T,C,b,M,d);}catch(_){if(u.signal?.aborted||_ instanceof H&&Ed.has(_.code))throw _;b=await t.resolve(T,{forceRefresh:true}),M=Bo(b,C),await c(f,p,T,C,b,M,d);}if(u.signal?.aborted)throw new DOMException("media upload canceled","AbortError");return u.onProgress?.({percent:100,bytesTransferred:d,bytesTotal:d,phase:"finalizing"}),{url:`${b.dnsPoint}/${M}`}}function l(u){return s(u,u.kind,u.conversationType)}function g(u){return s(u,"avatar")}async function S(u){let h=u.transport;if(h?.session===void 0||h.session.uploadId==="")return;let v=await Uo(),T=await t.resolve(h.logicalBucket),d=new v.XhrHttpHandler({}),f=a(v,T,d);try{await hn({client:f,commands:v.commands},h.session);}finally{f.destroy();}}let y=Ao(e.rangeDownload!==false,n);return {upload:l,uploadAvatar:g,download:y,abandonUpload:S}}function Dd(){let e=globalThis;return typeof e.addEventListener=="function"&&typeof e.removeEventListener=="function"?e:void 0}function Ud(e,n={}){let t=n.target!==void 0?n.target:Dd(),r=n.visibilitySource!==void 0?n.visibilitySource:globalThis.document,o=n.pageLifecycleSource!==void 0?n.pageLifecycleSource:t,i=false,a=()=>e.onOnline?.(),c=()=>e.onOffline?.(),s=()=>{r!=null&&r.visibilityState==="visible"&&e.onVisible?.();},l=()=>e.onPageHide?.(),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",l),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",l),o.removeEventListener("pageshow",g)));},get running(){return i}}}var Nd=13,Kd=2*1024*1024*1024,Oo=1024*1024*1024,Gd=512*1024*1024,Ld=256*1024*1024,Hd=64*1024,ct="channel:list-version",No="schema:conversation-key-v1",dt="default",Ce="\uFFFF";function Ko(e){if(!(e===void 0||!/^\d+$/.test(e)))return e.replace(/^0+(?=\d)/,"")}function Fd(e,n){let t=Ko(e),r=Ko(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 Qe(e){return `conversation:${Ba$1(e)}`}function ut(e,n){return `${Ba$1(e)}\0${n}`}function $d(e){let n=Ba$1(e.conversation);return {...e,key:ut(e.conversation,e.messageId),conversationKey:n,conversation:{...e.conversation},sContent:e.sContent.slice()}}function Jd(e){let{key:n,conversationKey:t,...r}=e;return {...r,conversation:{...r.conversation},sContent:r.sContent.slice()}}function Ho(e){return {...e,conversationKey:Ba$1(ya$1(e))}}function we(e){let{conversationKey:n,...t}=e;return t}function bn(e){return {...e,id:Ba$1(za$1(e)),conversationId:e.id}}function lt(e){if(e.conversationId===void 0)return e;let{conversationId:n,...t}=e;return {...t,id:n}}function pt(e){return e.conversationType===void 0?e:{...e,conversationId:Ba$1(e),storageConversationId:e.conversationId}}function Go(e){if(e.storageConversationId===void 0)return e;let{storageConversationId:n,...t}=e;return {...t,conversationId:n}}function Fo(e){return {...e,conversationId:Ba$1(Aa$1(e)),storageConversationId:e.conversationId}}function ft(e){if(e.storageConversationId===void 0)return e;let{storageConversationId:n,...t}=e;return {...t,conversationId:n}}function jd(e){return {...e,conversationKey:Ba$1(e.ref)}}function Vd(e){let{conversationKey:n,...t}=e;return t}function qd(e){return typeof e=="string"?e:e.conversationId}function Xe(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 zd(e){let n=e.transaction(["messages","sessions","readStates","pinnedMessages","meta"],"readwrite");try{let t=n.objectStore("meta");if((await t.get(No))?.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(Ho(s));let o=n.objectStore("sessions"),i=new Map;for(let s of await o.getAll()){if(s.conversationId!==void 0)continue;let l=lt(s);i.set(l.id,l.type),await o.put(bn(l)),await o.delete(s.id);}let a=n.objectStore("readStates");for(let s of await a.getAll()){if(s.storageConversationId!==void 0)continue;let l=s.conversationType??i.get(s.conversationId);if(l===void 0)continue;let g={...s,conversationType:l};await a.put(pt(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 l=ft(s);await c.put(Fo(l)),await c.delete(s.conversationId);}await t.put({key:No,value:!0}),await n.done;}catch(t){try{n.abort();}catch{}try{await n.done;}catch{}throw t}}function Lo(e){return `${e.kind}:${encodeURIComponent(e.messageId)}:${e.resourceVersion}`}async function Wd(e,n){let t=n.namespaceFactory.forAccount(e).name("durable","storage","indexed-db");typeof indexedDB>"u"||await deleteDB(t);}function Yd(e){let{namespaceFactory:n}=e,t=null,r=null,o=0,i=Promise.resolve(),a=0,c=e.mediaAssetCache?.maxPendingWriteBytes??Ld;if(!Number.isSafeInteger(c)||c<=0)throw new RangeError("\u5A92\u4F53\u8D44\u4EA7\u7F13\u5B58\u5F85\u5199\u5185\u5B58\u9884\u7B97\u5FC5\u987B\u662F\u6B63\u6574\u6570");function s(){if(t===null)throw new Error("ImStoragePort \u672A open\uFF1A\u8BF7\u5148 open({ namespace }) \u518D\u8BFB\u5199");return t}async function l(d){if(typeof d!="string")return;let f=IDBKeyRange.bound([d,""],[d,Ce]),C=(await s().transaction("messages").store.index("by_conv_sort").getAll(f)).map(we);Xe(d,C);}function g(d){let f=i.then(d,d);return i=f.then(()=>{},()=>{}),f}function S(d,f){if(d!==o||f===null||f!==r)throw new Error("\u5A92\u4F53\u8D44\u4EA7\u7F13\u5B58\u8D26\u53F7\u4EE3\u9645\u5DF2\u5931\u6548")}function y(){return Math.max(0,Math.floor(e.mediaAssetCache?.now?.()??Date.now()))}async function u(d){let f=e.mediaAssetCache?.estimateStorage??(async()=>typeof navigator>"u"||navigator.storage?.estimate===void 0?{}:await navigator.storage.estimate());try{let{quota:C,usage:p}=await f();if(C===void 0||!Number.isFinite(C)||C<=0)return Oo;let b=d.reduce((P,w)=>P+w.byteLength,0),M=Math.max(0,(p??0)-b),_=Math.max(Gd,Math.floor(C*.2));return Math.max(0,Math.min(Kd,Math.floor(C-M-_)))}catch{return Oo}}async function h(d,f,C){if(d.length===0)return;S(f,C);let p=s().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all(d.flatMap(b=>[p.objectStore("mediaAssets").delete(b),p.objectStore("mediaAssetMeta").delete(b)])),await p.done;}async function v(d,f,C,p){S(d,f);let b=s(),M=e.mediaAssetCache?.strategies;if(M===void 0)return;let _=p??await b.getAll("mediaAssetMeta");S(d,f);let P=new Set;for(let I of M.list()){let x=_.filter(k=>k.kind===I.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<=I.softMaxBytes&&D<=I.maxEntries)break;P.add(k.key),E-=k.byteLength,D-=1;}}let w=_.filter(I=>!P.has(I.key)).sort((I,x)=>I.lastAccessedAt-x.lastAccessedAt),A=Math.max(0,Math.min(await u(_),C??Number.POSITIVE_INFINITY)),m=w.reduce((I,x)=>I+x.byteLength,0);for(let I of w){if(m<=A)break;P.add(I.key),m-=I.byteLength;}await h([...P],d,f);}async function T(d,f,C){S(f,C);let p=e.mediaAssetCache?.strategies.resolve(d.kind);if(p===void 0)return "skipped";let b=d.blob,M=b.size,_=await s().getAll("mediaAssetMeta"),P=await u(_);if(S(f,C),M===0||M>p.maxEntryBytes||P<=0||M>Math.floor(P/2))return "skipped";let w=Lo(d),A=y(),m=_.find(k=>k.key===w),I={key:w,kind:d.kind,messageId:d.messageId,resourceVersion:d.resourceVersion,byteLength:M,...d.mimeType===void 0?{}:{mimeType:d.mimeType},createdAt:m?.createdAt??A,lastAccessedAt:A},x=async()=>{S(f,C);let k=s().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all([k.objectStore("mediaAssets").put({key:w,blob:b}),k.objectStore("mediaAssetMeta").put(I)]),await k.done;},E=false;try{await x();}catch(k){if(!(k instanceof DOMException)||k.name!=="QuotaExceededError")throw k;E=true,await v(f,C,Math.max(0,P-M)),await x();}let D=m===void 0?[..._,I]:_.map(k=>k.key===w?I:k);return await v(f,C,void 0,E?void 0:D),S(f,C),await s().get("mediaAssets",w)===void 0?"skipped":"stored"}return {async open({namespace:d}){if(t!==null&&r===d)return;t!==null&&(t.close(),t=null),r=d;let f=++o,C=n.forAccount(d).name("durable","storage","indexed-db"),p=await openDB(C,Nd,{upgrade(b,M,_,P){if(b.objectStoreNames.contains("messages"))P.objectStore("messages").indexNames.contains("by_conversation_key_sort")||P.objectStore("messages").createIndex("by_conversation_key_sort",["conversationKey","sortKey"]);else {let w=b.createObjectStore("messages",{keyPath:"id"});w.createIndex("by_conv_sort",["conversationId","sortKey"]),w.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 w=b.createObjectStore("mediaAssetMeta",{keyPath:"key"});w.createIndex("by_kind_access",["kind","lastAccessedAt"]),w.createIndex("by_access","lastAccessedAt");}b.objectStoreNames.contains("decryptRecoveries")||b.createObjectStore("decryptRecoveries",{keyPath:"key"}).createIndex("by_conversation","conversationKey"),M>0&&M<13&&(P.objectStore("mediaAssets").clear(),P.objectStore("mediaAssetMeta").clear());}});if(f!==o){p.close();return}try{await zd(p);}catch(b){throw p.close(),b}if(f!==o){p.close();return}t=p;},async close(){o+=1,r=null,t!==null&&(t.close(),t=null);},async clearRebuildableCaches(){let d=o,f=r;await g(async()=>{S(d,f);let p=s().transaction(["userProfiles","groupMembers","groupProfiles","channelProfiles","channelMembers","channelMemberSnapshots","channelMentionCandidateSnapshots","mediaAssets","mediaAssetMeta","meta"],"readwrite");await Promise.all([p.objectStore("userProfiles").clear(),p.objectStore("groupMembers").clear(),p.objectStore("groupProfiles").clear(),p.objectStore("channelProfiles").clear(),p.objectStore("channelMembers").clear(),p.objectStore("channelMemberSnapshots").clear(),p.objectStore("channelMentionCandidateSnapshots").clear(),p.objectStore("mediaAssets").clear(),p.objectStore("mediaAssetMeta").clear(),p.objectStore("meta").delete(ct),p.done]);});},async get(d){let f=o,C=r;return await g(async()=>{if(S(f,C),e.mediaAssetCache?.strategies.resolve(d.kind)===void 0)return null;let p=Lo(d),b=s(),[M,_]=await Promise.all([b.get("mediaAssets",p),b.get("mediaAssetMeta",p)]);return S(f,C),M===void 0||_===void 0?(await h([p],f,C),null):(await b.put("mediaAssetMeta",{..._,lastAccessedAt:y()}),{kind:_.kind,messageId:_.messageId,resourceVersion:_.resourceVersion,blob:M.blob,..._.mimeType===void 0?{}:{mimeType:_.mimeType}})})},async put(d){let f=o,C=r;S(f,C);let p=d.blob.size;if(p>c||a+p>c)return "skipped";a+=p;try{return await g(()=>T(d,f,C))}finally{a=Math.max(0,a-p);}},async clear(){let d=o,f=r;await g(async()=>{S(d,f);let C=s().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all([C.objectStore("mediaAssets").clear(),C.objectStore("mediaAssetMeta").clear(),C.done]);});},async getMessage(d,f){let C=await s().get("messages",f);if(C===void 0)return null;let p=we(C);return Ba$1(ya$1(p))===Ba$1(d)?p:null},async getMessages(d,f){let C=typeof d=="string"?"by_conv_sort":"by_conversation_key_sort",p=typeof d=="string"?d:Ba$1(d);if(await l(d),f.beforeSortKey===void 0&&f.afterSortKey!==void 0){let P=IDBKeyRange.bound([p,f.afterSortKey],[p,Ce]),w=[],A=await s().transaction("messages").store.index(C).openCursor(P,"next");for(;A!==null&&w.length<f.limit;)w.push(A.value),A=await A.continue();return w.map(we)}let b=f.beforeSortKey===void 0?IDBKeyRange.bound([p,""],[p,Ce]):IDBKeyRange.bound([p,""],[p,f.beforeSortKey],false,true),M=[],_=await s().transaction("messages").store.index(C).openCursor(b,"prev");for(;_!==null&&M.length<f.limit;)M.push(_.value),_=await _.continue();return M.reverse().map(we)},async saveMessages(d){if(d.length===0)return;let f=s().transaction("messages","readwrite");await Promise.all([...d.map(C=>f.store.put(Ho(C))),f.done]);},async searchMessages(d,f){let C=Ba$1(d),p=f.keyword?.trim()??"",b=f.contentTypes;if(p===""&&(b===void 0||b.length===0))return {items:[],exhausted:true};let M=p===""?void 0:await aa$1(p),_$1=f.beforeSortKey===void 0?IDBKeyRange.bound([C,""],[C,Ce]):IDBKeyRange.bound([C,""],[C,f.beforeSortKey],false,true),P=2e3,w=[],A=0,m,I=await s().transaction("messages").store.index("by_conversation_key_sort").openCursor(_$1,"prev");for(;I!==null&&w.length<f.limit&&A<P;){let E=ea$1(we(I.value));A+=1,m=E.sortKey;let D=b===void 0||b.includes(E.contentType),k=M===void 0||M.match(_(E))!==null;D&&k&&w.push(E),I=await I.continue();}let x=I===null;return {items:w,exhausted:x,...x?{}:{nextBeforeSortKey:m}}},async getDecryptRecoveries(d){let f=Ba$1(d);return (await s().getAllFromIndex("decryptRecoveries","by_conversation",f)).map(Jd)},async saveDecryptRecovery(d){if(d.sContent.byteLength===0||d.sContent.byteLength>Hd)throw new Error(`\u89E3\u5BC6\u6062\u590D\u5BC6\u6587\u5B57\u8282\u957F\u5EA6\u975E\u6CD5\uFF1A${d.sContent.byteLength}`);await s().put("decryptRecoveries",$d(d));},async deleteDecryptRecovery(d,f){await s().delete("decryptRecoveries",ut(d,f));},async deleteConversationDecryptRecoveries(d){let f=Ba$1(d),C=s().transaction("decryptRecoveries","readwrite"),p=await C.store.index("by_conversation").openCursor(IDBKeyRange.only(f));for(;p!==null;)await p.delete(),p=await p.continue();await C.done;},async getSessions(){return (await s().getAll("sessions")).map(lt)},async saveSessions(d){if(d.length===0)return;let f=s().transaction("sessions","readwrite");for(let C of d)await f.store.put(bn(C)),await f.store.delete(C.id);await f.done;},async deleteSession(d){if(typeof d!="string"){let p=s().transaction(["sessions","conversationBackgrounds"],"readwrite");await p.objectStore("sessions").delete(Ba$1(d)),await p.objectStore("conversationBackgrounds").delete(Qe(d)),await p.done;return}let f=(await s().getAll("sessions")).map(lt).filter(p=>p.id===d);Xe(d,f.map(p=>({conversationType:p.type})));let C=s().transaction(["sessions","conversationBackgrounds"],"readwrite");if(f[0]!==void 0){let p=za$1(f[0]);await C.objectStore("sessions").delete(Ba$1(p)),await C.objectStore("conversationBackgrounds").delete(Qe(p));}await C.objectStore("sessions").delete(d),await C.done;},async deleteReadState(d){if(typeof d!="string"){await s().delete("readStates",Ba$1(d));return}let C=(await s().getAll("readStates")).map(Go).filter(p=>p.conversationId===d).filter(p=>p.conversationType!==void 0);Xe(d,C),C[0]!==void 0&&await s().delete("readStates",Ba$1(C[0])),await s().delete("readStates",d);},async deleteMessage(d,f,C){let p=s().transaction(["messages","sessions","decryptRecoveries"],"readwrite"),b=await p.objectStore("messages").get(f);if(b!==void 0){let M=we(b);if(M.conversationType!==d.conversationType||M.conversationId!==d.conversationId)return await p.done,false;await p.objectStore("messages").delete(f);}return await p.objectStore("decryptRecoveries").delete(ut(d,f)),C!==void 0&&await p.objectStore("sessions").put(bn(C)),await p.done,b!==void 0},async deleteConversationMessages(d){let f=qd(d),C=typeof d=="string"?"by_conv_sort":"by_conversation_key_sort",p=typeof d=="string"?d:Ba$1(d),b=IDBKeyRange.bound([p,""],[p,Ce]),M=s().transaction(["messages","decryptRecoveries"],"readwrite"),_=M.objectStore("messages"),P=M.objectStore("decryptRecoveries"),w=[];if(typeof d=="string"){let m=(await _.index("by_conv_sort").getAll(b)).map(we);w=(await P.getAll()).filter(I=>I.conversation.conversationId===d),Xe(f,[...m,...w.map(I=>({conversationType:I.conversation.conversationType}))]);}let A=await _.index(C).openCursor(b);for(;A!==null;)await A.delete(),A=await A.continue();if(typeof d=="string")for(let m of w)await P.delete(m.key);else {let m=await P.index("by_conversation").openCursor(IDBKeyRange.only(Ba$1(d)));for(;m!==null;)await m.delete(),m=await m.continue();}await M.done;},async clearConversationHistory(d,f,C){let p=Ba$1(d),b=IDBKeyRange.bound([p,""],[p,Ce]),M=s().transaction(["messages","sessions","readStates","decryptRecoveries"],"readwrite"),_=await M.objectStore("messages").index("by_conversation_key_sort").openCursor(b);for(;_!==null;)await _.delete(),_=await _.continue();let P=await M.objectStore("decryptRecoveries").index("by_conversation").openCursor(IDBKeyRange.only(p));for(;P!==null;)await P.delete(),P=await P.continue();f!==void 0&&await M.objectStore("sessions").put(bn(f)),C!==void 0&&(await M.objectStore("readStates").put(pt(C)),await M.objectStore("readStates").delete(C.conversationId)),await M.done;},async getReadStates(){return (await s().getAll("readStates")).map(Go)},async saveReadState(d){let f=s().transaction("readStates","readwrite");await f.store.put(pt(d)),d.conversationType!==void 0&&await f.store.delete(d.conversationId),await f.done;},async getDrafts(){return (await s().getAll("drafts")).map(Vd)},async saveDraft(d){await s().put("drafts",jd(d));},async deleteDraft(d){await s().delete("drafts",Ba$1(d));},async getConversationBackground(d){return (await s().get("conversationBackgrounds",Qe(d)))?.background??null},async saveConversationBackground(d,f){let C=Qe(d);await s().put("conversationBackgrounds",{key:C,background:f});},async deleteConversationBackground(d){await s().delete("conversationBackgrounds",Qe(d));},async getDefaultConversationBackground(){return (await s().get("conversationBackgrounds",dt))?.background??null},async saveDefaultConversationBackground(d){await s().put("conversationBackgrounds",{key:dt,background:d});},async deleteDefaultConversationBackground(){await s().delete("conversationBackgrounds",dt);},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(ft)},async savePinnedMessage(d){let f=s().transaction("pinnedMessages","readwrite");await f.store.put(Fo(d)),await f.store.delete(d.conversationId),await f.done;},async removePinnedMessage(d){if(typeof d!="string"){await s().delete("pinnedMessages",Ba$1(d));return}let f=(await s().getAll("pinnedMessages")).map(ft).filter(C=>C.conversationId===d);Xe(d,f),f[0]!==void 0&&await s().delete("pinnedMessages",Ba$1(Aa$1(f[0]))),await s().delete("pinnedMessages",d);},async getMeta(d){let f=await s().get("meta",d);return f===void 0?null:f.value},async setMeta(d,f){await s().put("meta",{key:d,value:f});},async getUserProfile(d){return await s().get("userProfiles",d)??null},async saveUserProfile(d){await s().put("userProfiles",d);},async getGroupMembers(d){return await s().get("groupMembers",d)??null},async saveGroupMembers(d){await s().put("groupMembers",d);},async getGroupProfile(d){return await s().get("groupProfiles",d)??null},async saveGroupProfile(d){await s().put("groupProfiles",d);},async getChannelProfile(d){return await s().get("channelProfiles",d)??null},async getChannelProfiles(){return s().getAll("channelProfiles")},async saveChannelProfiles(d){if(d.length===0)return;let f=s().transaction("channelProfiles","readwrite");await Promise.all([...d.map(C=>f.store.put(C)),f.done]);},async getChannelListVersion(){let d=await s().get("meta",ct);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:ct,value:d});},async getChannelMembers(d,f){if(f.length===0)return [];let C=s().transaction("channelMembers"),p=await Promise.all(f.map(b=>C.store.get([d,b])));return await C.done,p.filter(b=>b!==void 0)},async saveChannelMembers(d){if(d.length===0)return;let f=s().transaction("channelMembers","readwrite");for(let C of d){let p=await f.store.get([C.channelId,C.userId]);p!==void 0&&Fd(C.updateVersion,p.updateVersion)<0||await f.store.put(C);}await f.done;},async deleteChannelMembers(d){let f=IDBKeyRange.bound([d,""],[d,Ce]),C=s().transaction("channelMembers","readwrite"),p=await C.store.openCursor(f);for(;p!==null;)await p.delete(),p=await p.continue();await C.done;},async getChannelMemberSnapshot(d){return await s().get("channelMemberSnapshots",d)??null},async saveChannelMemberSnapshot(d){await s().put("channelMemberSnapshots",d);},async deleteChannelMemberSnapshot(d){await s().delete("channelMemberSnapshots",d);},async getChannelMentionCandidateSnapshot(d){return await s().get("channelMentionCandidateSnapshots",d)??null},async saveChannelMentionCandidateSnapshot(d){await s().put("channelMentionCandidateSnapshots",d);},async deleteChannelMentionCandidateSnapshot(d){await s().delete("channelMentionCandidateSnapshots",d);}}}function Qd(e={}){let n=e.createSocket??(u=>new globalThis.WebSocket(u)),t=e.connectTimeoutMs??1e4,r={open:new Set,message:new Set,close:new Set,error:new Set},o,i,a="idle",c;function s(u,h){for(let v of [...r[u]])v(h);}function l(){c!==void 0&&(clearTimeout(c),c=void 0);}function g(u,h){h!==void 0&&(u.removeEventListener("open",h.onOpen),u.removeEventListener("message",h.onMessage),u.removeEventListener("error",h.onError),u.removeEventListener("close",h.onClose));}function S(){if(l(),o!==void 0){g(o,i);try{o.close(1e3);}catch{}o=void 0;}i=void 0;}function y(u,h,v){let T={onOpen:()=>{u===o&&(l(),a="open",s("open",{endpoint:h}));},onMessage:d=>{if(u!==o)return;let f=d?.data;if(f instanceof ArrayBuffer){s("message",{data:f});return}s("error",{error:new Error(`WsTransport\uFF1A\u6536\u5230\u975E ArrayBuffer \u6D88\u606F\uFF08${typeof f}\uFF09\uFF0C\u5DF2\u5FFD\u7565`)});},onError:d=>{u===o&&s("error",{error:new Error(`WsTransport\uFF1AWebSocket error \u4E8B\u4EF6\uFF08${d instanceof Event?d.type:typeof d}\uFF09`)});},onClose:d=>{u===o&&(l(),g(u,T),o=void 0,i=void 0,a="closed",s("close",{code:d?.code??1006,reason:d?.reason??"",wasClean:d?.wasClean??false}));}};if(i=T,u.addEventListener("open",T.onOpen),u.addEventListener("message",T.onMessage),u.addEventListener("error",T.onError),u.addEventListener("close",T.onClose),v>0){let d=setTimeout(()=>{if(!(u!==o||a!=="connecting")){s("error",{error:new Error(`WsTransport\uFF1A\u8FDE\u63A5\u8D85\u65F6\uFF08${v}ms \u672A open\uFF09`)});try{u.close();}catch{}}},v);d.unref?.(),c=d;}}return {get state(){return a},async connect(u,h){let v=u[0];if(v===void 0)throw new Error("WsTransport.connect\uFF1Aendpoints \u4E3A\u7A7A\uFF08P0 single \u7B56\u7565\u9700\u81F3\u5C11\u4E00\u4E2A\u7AEF\u70B9\uFF09");S(),a="connecting";let T;try{T=n(v.url);}catch(d){throw a="closed",d}T.binaryType="arraybuffer",o=T,y(T,v,h?.connectTimeoutMs??t);},async send(u){if(o===void 0||a!=="open")throw new Error(`WsTransport.send\uFF1A\u8FDE\u63A5\u672A\u5C31\u7EEA\uFF08state=${a}\uFF09\uFF0C\u62D2\u7EDD\u53D1\u9001`);o.send(u);},async close(u=1e3,h){l(),o!==void 0&&(a==="connecting"||a==="open")&&(a="closing",o.close(u,h));},on(u,h){return r[u].add(h),()=>{r[u].delete(h);}}}}
|
|
7
7
|
export{Fs as $,di as $a,Jo as A,wc as Aa,ls as B,Pc as Ba,fs as C,Ic as Ca,ms as D,Sc as Da,gs as E,vc as Ea,ys as F,Mc as Fa,hs as G,xc as Ga,bs as H,Ec as Ha,Cs as I,kc as Ia,ws as J,Tc as Ja,Ps as K,Rc as Ka,Is as L,Dc as La,Ss as M,mn as Ma,vs as N,fe as Na,Ms as O,Vc as Oa,As as P,qc as Pa,xs as Q,yd as Qa,ks as R,H as Ra,pn as S,jo as Sa,fn as T,Ft as Ta,Ts as U,Rd as Ua,Us as V,Ud as Va,Bs as W,Wd as Wa,Os as X,Yd as Xa,Ns as Y,Qd as Ya,Gs as Z,Qo as Za,Ls as _,en as _a,Si as a,$s as aa,Ii as ab,Oe as b,Js as ba,V as c,js as ca,Oi as d,qs as da,Ki as e,Ws as ea,Ne as f,Ys as fa,Gi as g,Qs as ga,Zi as h,Xs as ha,Se as i,Zs as ia,W as j,nc as ja,da as k,qe as ka,ua as l,rc as la,He as m,oc as ma,ie as n,ic as na,Pa as o,ac as oa,Fe as p,sc as pa,Q as q,cc as qa,Oa as r,dc as ra,$a as s,uc as sa,qa as t,lc as ta,za as u,mc as ua,Za as v,gc as va,Ae as w,yc as wa,$ as x,hc as xa,ye as y,fo as ya,as as z,mo as za};
|