k2-im 0.1.19 → 0.1.21
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/README.md +36 -0
- package/dist/browser.js +1 -1
- package/dist/chat-kit-pinia.d.ts +349 -24
- package/dist/chat-kit-pinia.js +1 -1
- package/dist/chat-kit-vue.d.ts +92 -6
- package/dist/chat-kit-vue.js +1 -1
- package/dist/chat-kit.d.ts +429 -30
- package/dist/chat-kit.js +1 -1
- package/dist/chunk-2GZMQCIP.js +1 -0
- package/dist/chunk-4X7RCGEV.js +1 -0
- package/dist/chunk-5I7S6LWE.js +2 -0
- package/dist/chunk-A2BLOVZ5.js +2 -0
- package/dist/chunk-DN4H5C7G.js +2 -0
- package/dist/chunk-P4HOR4XO.js +1 -0
- package/dist/chunk-YAM4YHKF.js +7 -0
- package/dist/i18n.d.ts +140 -7
- package/dist/i18n.js +1 -1
- package/dist/index.d.ts +574 -38
- package/dist/index.js +1 -1
- package/dist/sdk.d.ts +377 -24
- package/dist/sdk.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-CD5SF7WI.js +0 -1
- package/dist/chunk-KLEMN4CG.js +0 -1
- package/dist/chunk-NBLASAT2.js +0 -2
- package/dist/chunk-NVF5RDHB.js +0 -2
- package/dist/chunk-ULJD6ZA3.js +0 -7
- package/dist/chunk-W2FKET4Z.js +0 -1
- package/dist/chunk-YPS6Y5ZY.js +0 -1
package/dist/chunk-ULJD6ZA3.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import {na as na$1,z as z$1,C,f,g,i,P,Q as Q$1,T as T$1,U,N as N$1,O as O$1,D,E,y,B,k,e,A,F,H as H$1,J as J$1,I,K as K$1,L as L$1,M,$ as $$1,aa as aa$1,ya as ya$1,xa as xa$1,wa as wa$1,Z as Z$1,ba as ba$1,X as X$1,va as va$1,R,S,ta as ta$1,sa as sa$1,V,W as W$1}from'./chunk-W2FKET4Z.js';import*as z from'node-forge';import {deleteDB,openDB}from'idb';function Ro(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 Do(e){return e instanceof H?e.code:void 0}var Uo=3600*1e3,Bo=300*1e3;function le(...e){for(let n of e){if(typeof n!="string"&&typeof n!="number")continue;let t=String(n).trim();if(t!=="")return t}return ""}function Oo(e){let n=Number(e);if(!(!Number.isFinite(n)||n<=0))return n>1e12?n/1e3:n}function No(e){let n=e.replace(/\/+$/,"");return n===""?"":/^https?:\/\//i.test(n)?n:`https://${n}`}function Bt(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=le(n.access_key_id,n.accessKeyId),r=le(n.secret_key,n.secretKey,n.secretAccessKey),o=le(n.session_token,n.sessionToken).replace(/\s+/g,""),i=le(n.bucket),a=le(n.region),c=No(le(n.dns_point,n.dnsPoint)),s=[t===""?"access_key_id":"",r===""?"secret_key":"",o===""?"session_token":"",i===""?"bucket":"",a===""?"region":"",c===""?"dns_point":""].filter(h=>h!=="");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 p=Oo(n.expiration??n.expiresAtSeconds),g=le(n.key_prefix,n.keyPrefix),S=le(n.identity_id,n.identityId);return {accessKeyId:t,secretAccessKey:r,sessionToken:o,bucket:i,region:a,dnsPoint:c,...p===void 0?{}:{expiresAtSeconds:p},...g===""?{}:{keyPrefix:g},...S===""?{}:{identityId:S}}}function Ko(e,n){if(n-e.fetchedAtMs>=Uo)return false;let{expiresAtSeconds:t}=e.credential;return t===void 0?true:t*1e3-Bo>n}function Ot(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){throw new H("credentials-request-failed",`S3 \u4E0A\u4F20\u51ED\u8BC1\u83B7\u53D6\u5931\u8D25\uFF1Abucket=${o}`,{cause:s})}let c=Bt(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&&Ko(c,Date.now()))return Promise.resolve(c.credential);n.delete(o);let s=t.get(o);if(s!==void 0)return s;let p=r(o,a).finally(()=>{t.get(o)===p&&t.delete(o);});return t.set(o,p),p}}}function Go(){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 Xe(e){return e instanceof N?e.code:void 0}function Nt(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,Lo=new URL("./speex-runtime.txt",import.meta.url).href,Mn=null;async function Ho(){if(document.querySelector('script[data-speex-runtime="true"]')!==null)return;let n=await fetch(Lo);if(!n.ok)throw new Error(`Speex runtime fetch failed: ${n.status}`);let t=await n.text(),r=document.createElement("script");r.dataset.speexRuntime="true",r.text=t,document.head.appendChild(r);}async function _n(){let e=typeof window>"u"?void 0:window;return e?.__speexInH5!==void 0?e.__speexInH5:(Mn??=(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 Ho(),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 Mn=null,n instanceof N?n:new N("codec-unavailable","Speex \u8FD0\u884C\u65F6\u52A0\u8F7D\u5931\u8D25",{cause:n})}),Mn)}function Kt(){_n().catch(()=>{});}function ue(e,n,t){for(let r=0;r<t.length;r+=1)e.setUint8(n+r,t.charCodeAt(r));}function Fo(e,n){let r=new ArrayBuffer(44+e.length*2),o=new DataView(r);ue(o,0,"RIFF"),o.setUint32(4,36+e.length*2,true),ue(o,8,"WAVE"),ue(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),ue(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 An(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 $o=40,xn=120,jo=40,En=80;function Jo(e,n){let t=Math.min(Math.floor(n*$o/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 kn(e,n){if(e.length===0)return e;let t=Math.min(Math.floor(n*xn/1e3),Math.max(0,e.length-1)),r=t>0?e.subarray(t):e,o=new Float32Array(r),i=Math.min(Math.floor(n*jo/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 Ze(e,n){let r=new ArrayBuffer(44+e.length*2),o=new DataView(r);return ue(o,0,"RIFF"),o.setUint32(4,36+e.length*2,true),ue(o,8,"WAVE"),ue(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),ue(o,36,"data"),o.setUint32(40,e.length*2,true),new Int16Array(r,44).set(e),new Uint8Array(r)}function Vo(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 qo(e){let t="";for(let r=0;r<e.length;r+=32768)t+=String.fromCharCode(...e.subarray(r,Math.min(r+32768,e.length)));return t}async function Gt(e,n){let t=await _n(),r=Math.floor(n*En/1e3),o=new Float32Array(r+e.length);o.set(e,r);let i=Fo(o,n);try{return Vo(t.encodeFile(i))}catch(a){throw new N("encode-failed","\u8BED\u97F3\u7F16\u7801\u5931\u8D25",{cause:a})}}async function Lt(e){let n=await _n();try{let[t,r]=n.decodeFile(qo(e));if(t.length===0)throw new Error("decoded empty pcm");let o=Jo(An(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 Ht(e){let n=await Lt(e);return {wavData:Ze(n.samples,n.sampleRate),durationMs:n.durationMs}}var zo=.5,Wo=2;function Ft(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,zo),Wo)}function Yo(e={}){let n=e.cacheMax??8,t={activeId:"",isPlaying:false,loadingId:"",progress:0,currentTimeMs:0,errorIds:new Set,playbackRate:e.playbackRate===void 0?1:Ft(e.playbackRate)},r=new Set;function o(){for(let f of r)f(t);}let i=null,a=new Map,c=0,s=false,p=false;function g(f){let I=a.get(f);return I!==void 0&&(a.delete(f),a.set(f,I)),I}function S(f,I){if(s)return URL.revokeObjectURL(I.url),I;let x=a.get(f);if(x!==void 0)return URL.revokeObjectURL(I.url),a.delete(f),a.set(f,x),x;for(a.set(f,I);a.size>n;){let E;for(let D of a.keys())if(D!==t.activeId){E=D;break}if(E===void 0)break;let R=a.get(E);a.delete(E),R!==void 0&&URL.revokeObjectURL(R.url);}return I}function h(f){f.paused||f.pause(),f.removeAttribute("src");try{f.load();}catch{}}function l(f,I){return !s&&f===c&&t.activeId===I}function b(f){f.defaultPlaybackRate=t.playbackRate,f.playbackRate=t.playbackRate;}function v(){if(i!==null)return i;let f=new Audio;return f.preload="auto",b(f),f.addEventListener("timeupdate",()=>{t.activeId!==""&&(t.currentTimeMs=f.currentTime*1e3,t.progress=f.duration>0?Math.min(1,f.currentTime/f.duration):0,o());}),f.addEventListener("ended",()=>{k(),h(f),o();}),f.addEventListener("pause",()=>{t.activeId!==""&&(t.isPlaying=false,o());}),i=f,f}function k(){t.activeId="",t.isPlaying=false,t.progress=0,t.currentTimeMs=0;}function d(){c+=1,p=false,t.loadingId="",k(),i!==null&&h(i),o();}function m(f){t.errorIds=new Set([...t.errorIds,f]);}function C(f){if(!t.errorIds.has(f))return;let I=new Set(t.errorIds);I.delete(f),t.errorIds=I;}async function u(f,I){let x=g(f);if(x!==void 0)return {entry:x};let E;try{E=await I();}catch(R){return {entry:null,error:{code:Xe(R),cause:R}}}if(E===null)return {entry:null};try{let{wavData:R,durationMs:D}=await Ht(E),U={url:URL.createObjectURL(new Blob([R],{type:"audio/wav"})),durationMs:D};return {entry:S(f,U)}}catch(R){return {entry:null,error:{code:Xe(R),cause:R}}}}async function y(f,I){if(s)return;let x=v();if(C(f),t.activeId===f){if(t.isPlaying){x.pause();return}let D=++c;try{await x.play();}catch{if(!l(D,f))return;m(f),o();return}if(!l(D,f))return;t.isPlaying=true,o(),I.onPlayStart?.();return}if(t.loadingId===f)return;d();let E=++c;t.loadingId=f,o();let R=await u(f,I.load);if(E===c){if(t.loadingId="",R.entry===null){m(f),o(),R.error!==void 0&&I.onDecodeError?.(R.error.code,R.error.cause);return}x.src=R.entry.url,b(x),t.activeId=f,t.progress=0,t.currentTimeMs=0,o();try{await x.play();}catch(D){if(!l(E,f))return;k(),h(x),m(f),o(),I.onDecodeError?.(void 0,D);return}l(E,f)&&(t.isPlaying=true,o(),I.onPlayStart?.());}}function M(f,I){i===null||t.activeId!==f||!Number.isFinite(i.duration)||i.duration<=0||(i.currentTime=Math.min(Math.max(I,0),.999)*i.duration);}function A(f){i===null||t.activeId!==f||t.isPlaying&&(p=true,i.pause());}function P(f){if(i===null||t.activeId!==f||!p)return;p=false;let I=++c;i.play().then(()=>{l(I,f)&&(t.isPlaying=true,o());}).catch(()=>{l(I,f)&&(m(f),o());});}function w(f){let I=Ft(f);I!==t.playbackRate&&(t.playbackRate=I,i!==null&&b(i),o());}function _(){if(!s){s=true,d();for(let f of a.values())URL.revokeObjectURL(f.url);a.clear(),r.clear(),i=null;}}return {getState:()=>t,subscribe:f=>(r.add(f),()=>r.delete(f)),toggle:y,seek:M,beginScrub:A,endScrub:P,setPlaybackRate:w,stop:d,dispose:_}}function Qo(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 Xo(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 $t(e){let n=Qo(e.timeDomain),t=Xo(e.frequency,e.sampleRate,e.fftSize),r=n*.55+t*.45;return Math.min(1,r*e.boost)**.72}var en=class{constructor(n=.45,t=.18){this.attack=n;this.release=t;}attack;release;value=0;next(n){let t=Math.min(1,Math.max(0,n));return t>this.value?this.value+=(t-this.value)*this.attack:this.value+=(t-this.value)*this.release,this.value}};function Zo(){return {channelCount:1,echoCancellation:true,noiseSuppression:true,autoGainControl:true}}var ei=50,ni=.12,ti=2.6,ri=.06,oi=256;function ii(){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 ai(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 i.resume().catch(()=>{});let c=await i.decodeAudioData(await e.arrayBuffer()),s=Math.max(1,Math.ceil(c.duration*n)),p=new o(1,s,n),g=p.createBufferSource();return g.buffer=c,g.connect(p.destination),g.start(0),(await p.startRendering()).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&&await i.close().catch(()=>{});}}function jt(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 si(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:Zo()});}catch(f){throw Nt(f)}}Kt();let t=ii(),r=e.maxDurationMs??6e4,o="recording",i=[],a=0,c=[],s=null,p=null,g=null,S=[],h=0,l=false;function b(){try{let f;try{f=t!==""?new MediaRecorder(n,{mimeType:t}):new MediaRecorder(n);}catch{f=new MediaRecorder(n);}return S=[],f.ondataavailable=I=>{I.data.size>0&&S.push(I.data);},f.start(250),h=Date.now(),f}catch(f){throw f instanceof N?f:new N("device-busy","\u5F55\u97F3\u5668\u542F\u52A8\u5931\u8D25",{cause:f})}}let v=e.amplitude?.intervalMs??ei,k=e.amplitude?.boost??ti,d=e.amplitude?.smoothing??ni,m=e.amplitude?.minVolume??ri;function C(){let f=Math.floor(r/1e3*ne),I=0;for(let E of i)I+=E.length;if(I>f){let E=f,R=[];for(let D of i){if(E<=0)break;D.length<=E?(R.push(D),E-=D.length):(R.push(D.slice(0,E)),E=0);}i.length=0,i.push(...R);}a=Math.min(a,r);let x=Math.max(0,Math.ceil(r/v));c.length>x&&(c.length=x);}async function u(){if(o!=="recording"){e.onMaxDuration?.();return}e.onMaxDuration?.(),o="paused";let f=_().then(()=>C());g=f;try{await f;}catch(I){console.warn("[im-browser] pauseAtMaxDuration settle failed",I);}}let y=setInterval(()=>{!l&&o==="recording"&&P()>=r&&(l=true,u());},250),M=null,A=null;try{let f=window.AudioContext??window.webkitAudioContext;if(f!==void 0){M=new f,M.state==="suspended"&&M.resume().catch(()=>{});let I=M.createMediaStreamSource(n),x=M.createAnalyser();x.fftSize=oi,x.smoothingTimeConstant=d,I.connect(x);let E=new Uint8Array(x.frequencyBinCount),R=new Uint8Array(x.fftSize),D=new en;A=setInterval(()=>{if(o!=="recording"||s===null)return;x.getByteFrequencyData(E),x.getByteTimeDomainData(R);let U=$t({timeDomain:R,frequency:E,sampleRate:M.sampleRate,fftSize:x.fftSize,boost:k}),B=D.next(U),F=B<m?0:B;c.push(Math.round(F*255)),e.onAmplitude?.(F);},v);}}catch(f){console.warn("[im-browser] amplitude analyser setup failed",f);}function P(){let f=o==="recording"&&s!==null?Date.now()-h:0;return a+f}function w(){y!==null&&(clearInterval(y),y=null),A!==null&&(clearInterval(A),A=null),M?.close().catch(()=>{}),M=null;for(let f of n.getTracks())f.stop();}function _(){if(p!==null)return p;let f=s;return f===null?Promise.resolve():(s=null,p=(async()=>{await new Promise(E=>{if(f.state==="inactive"){E();return}f.onstop=()=>E(),f.stop();});let I=new Blob(S,{type:f.mimeType||t||"audio/webm"});if(S=[],I.size===0)return;let x=await ai(I,ne,M);x.length!==0&&(i.push(x),a+=x.length/ne*1e3);})().finally(()=>{p=null;}),p)}try{s=b();}catch(f){throw o="closed",w(),f}return {getState:()=>o,recordedMs:P,async pause(){o==="recording"&&(o="paused",await _(),(l||a>=r)&&C());},async resume(){o!=="paused"||l||(s=b(),o="recording");},async finish(){if(o==="closed")throw new N("empty-recording","\u5F55\u97F3\u4F1A\u8BDD\u5DF2\u7ED3\u675F");o="closed";try{g!==null?await g:await _(),C();}finally{w();}let f=jt(i);if(f.length===0)throw new N("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let I=kn(f,ne);if(I.length===0)throw new N("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let x=Math.min(c.length,Math.ceil(xn/v));return {data:await Gt(I,ne),durationMs:Math.round(I.length/ne*1e3)+En,waveform:c.slice(x),filename:`AUDIO_${Date.now()}.ogg`,mimeType:"audio/ogg"}},cancel(){if(o==="closed")return;o="closed";let f=s;if(s=null,f!==null&&(f.ondataavailable=null,f.onstop=null,f.state!=="inactive"))try{f.stop();}catch{}i.length=0,w();},async previewWav(){g!==null?await g:p!==null&&await p,C();let f=jt(i),I=kn(f,ne);if(I.length===0)throw new N("empty-recording","\u6682\u65E0\u53EF\u8BD5\u542C\u7684\u5F55\u97F3\u5185\u5BB9");return {wavData:Ze(An(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 Jt(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 Vt(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(p){throw new te("channel secret_key Base64 \u89E3\u7801\u5931\u8D25",{cause:p})}let a=Uint8Array.from(i,p=>p.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,p=>p.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 ci(e){let n=new Map,t=new Map,r=new Map,o=new Map,i=Ie(Jt);function a(u){return {canonical:u.canonical.slice(),...u.legacyAscii===void 0?{}:{legacyAscii:u.legacyAscii.slice()},metadata:{...u.metadata}}}function c(u){return [{strategy:"canonical-base64-pad",key:u.canonical.slice()},...u.legacyAscii===void 0?[]:[{strategy:"legacy-ascii16",key:u.legacyAscii.slice()}]]}function s(u){n.delete(u),t.delete(u),r.delete(u),o.set(u,(o.get(u)??0)+1);}function p(u){let y=o.get(u)??0,M=(async()=>{try{let A=await e.loadSecretKey(u);if(A===null||A.trim()==="")throw new te(`channel secret_key \u7F3A\u5931\uFF08channelId=${u}\uFF09`);let P=Vt(A);return (o.get(u)??0)===y&&n.set(u,a(P)),P}catch(A){let P=A instanceof te?A:new te(`channel secret_key \u52A0\u8F7D\u5931\u8D25\uFF08channelId=${u}\uFF09`,{cause:A});throw e.onError?.(P.message,A),P}})().finally(()=>{t.get(u)===M&&t.delete(u);});return t.set(u,M),M}function g(u,y){let M=t.get(u);if(M!==void 0)return M;i.shouldRenegotiate(u,y.staleKey,n.get(u)?.canonical)&&s(u);}function S(u,y){let M=u.trim();if(M===""){let P=new te("channel id \u4E0D\u80FD\u4E3A\u7A7A");return e.onError?.(P.message),Promise.reject(P)}if(y!==void 0){let P=g(M,y);if(P!==void 0)return P.then(a)}let A=n.get(M);return A!==void 0?Promise.resolve(a(A)):t.get(M)??p(M)}function h(u,y){let M=u.trim();if(M===""){let _=new te("channel id \u4E0D\u80FD\u4E3A\u7A7A");return e.onError?.(_.message),Promise.reject(_)}if(y!==void 0){let _=g(M,y);if(_!==void 0)return _.then(f=>f.canonical.slice())}let A=n.get(M);if(A!==void 0)return Promise.resolve(A.canonical.slice());let P=r.get(M);if(P!==void 0)return P;let w=(t.get(M)??p(M)).then(_=>_.canonical.slice()).finally(()=>{r.get(M)===w&&r.delete(M);});return r.set(M,w),w}function l(u){return n.get(u.trim())?.canonical.slice()??null}async function b(u,y){let M=await S(u,y);return c(M)}function v(u){let y=n.get(u.trim());return y===void 0?[]:c(y)}function k(u){let y=n.get(u.trim());return y===void 0?null:{...y.metadata}}function d(u,y){let M=u.trim();if(M==="")throw new te("channel id \u4E0D\u80FD\u4E3A\u7A7A");let A=Vt(y);s(M),i.reset(M),n.set(M,a(A));}function m(u){let y=u.trim();y!==""&&(s(y),i.reset(y));}function C(){let u=new Set([...n.keys(),...t.keys(),...r.keys(),...o.keys()]);for(let y of u)o.set(y,(o.get(y)??0)+1),i.reset(y);n.clear(),t.clear(),r.clear();}return {getChannelKey:h,getCachedChannelKey:l,getChannelKeyCandidates:b,getCachedChannelKeyCandidates:v,getCachedChannelKeyMetadata:k,primeChannelKey:d,clearChannelKey:m,clearAll:C}}function di(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 qt([e,n],[t,r,o,i]){let a=e>>>0,c=n>>>0,s=Math.imul(2654435769,16)>>>0;for(let p=0;p<16;p++)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 zt([e,n],[t,r,o,i]){let a=e>>>0,c=n>>>0,s=0;for(let p=0;p<16;p++)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 nn(e,n,t,r){let o=di(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),p=new DataView(i.buffer);for(let S=0;S<c;S++){let h=S*8,[l,b]=t([s.getUint32(h,true),s.getUint32(h+4,true)],o);p.setUint32(h,l,true),p.setUint32(h+4,b,true);}let g=c*8;return g<e.length&&i.set(e.subarray(g),g),i}function De(e,n){return nn(n,e,qt)}function Ue(e,n){return nn(n,e,zt)}function Wt(e,n){return nn(n,e,zt,32)}function Yt(e,n){return nn(n,e,qt,32)}var Qt=8,tn=16;function li(e){let n=z.md.md5.create();return n.update(e,"utf8"),n.digest().toHex()}function Zt(e){return new TextEncoder().encode(e)}function ui(e){let n=e.length;for(;n>0&&e[n-1]===0;)n-=1;return new TextDecoder().decode(e.subarray(0,n))}function pi(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 fi(e){let n="";for(let t of e)n+=String.fromCharCode(t);return btoa(n)}function mi(e){let n=Math.ceil(e.length/Qt)*Qt;if(n===e.length)return e;let t=new Uint8Array(n);return t.set(e),t}function er(e,n=li){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<tn)throw new Error("collect TEA key: MD5 \u957F\u5EA6\u4E0D\u8DB3");let o=Zt(r.slice(0,tn).toUpperCase());if(o.length<tn)throw new Error("collect TEA key: \u6D3E\u751F\u7ED3\u679C\u4E0D\u8DB3 16 \u5B57\u8282");return o.subarray(0,tn)}function nr(e,n,t){return fi(Ue(er(n,t),mi(Zt(e))))}function gi(e,n,t){return ui(De(er(n,t),pi(e)))}function yi(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function Tn(e){let n=e.trim();if(n===""||!n.startsWith("{"))return null;try{return yi(JSON.parse(n))}catch{return null}}function hi(e){let n=e.trim(),t=n.indexOf("}");return t>=0?n.slice(0,t+1):n}function tr(e,n,t){let r=Tn(e);if(r!==null)return r;if(e.trim()===""||n.trim()==="")return null;try{let o=gi(e,n,t);return Tn(o)??Tn(hi(o))}catch{return null}}var bi="core";var Be=class extends Error{code=502;constructor(n,t){super(`core JSON \u4F20\u8F93\u5931\u8D25\uFF1A${n||"unknown transport error"}`,t===void 0?void 0:{cause:t}),this.name="CoreJsonTransportError";}},q=class extends Error{businessCode;operation;constructor(n,t,r){super(`${n}\u5931\u8D25\uFF1Acode=${t}${r?` ${r}`:""}`),this.name="CoreJsonBusinessError",this.businessCode=t,this.operation=n;}};async function T(e,n,t,r){let o=r!==void 0&&"responseMode"in r&&r.responseMode==="strict",i;try{i=await e(n,{target:bi,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 Be(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 Be(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 rr(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 T(e,"/user/encrypt_info/info",t,r)}function Ci(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 wi(e){let n=e.clientType,t=new Map,r=new Map,o=Ie((h,l)=>h===l),i=null,a=null;function c(h,l){e.onError?.(h,l);}function s(){if(i!==null)return Promise.resolve(i);if(a!==null)return a;let h=Promise.resolve().then(()=>e.crypto.generateTempKeyPair()).then(l=>(i=l,l)).finally(()=>{a===h&&(a=null);});return a=h,h}async function p(h){let l;try{l=await s();}catch(d){return c(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u751F\u6210\u4E34\u65F6 RSA \u5BC6\u94A5\u5931\u8D25\uFF08userId=${h}\uFF09`,d),null}let b;try{b=await rr(e.client,{publicKey:l.publicKeyBase64,clientType:n});}catch(d){return c(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u8BF7\u6C42\u5F02\u5E38\uFF08userId=${h}\uFF09`,d),null}if(b.data===null)return c(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u4E1A\u52A1\u5931\u8D25\uFF08userId=${h}\uFF0Ccode=${b.code}\uFF09`),null;let v=b.data.prv_key??b.data.prvKey??"",k=String(b.data.version??"").trim();if(v==="")return c(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u54CD\u5E94\u7F3A\u5C11 prv_key\uFF08userId=${h}\uFF09`),null;try{let d=e.crypto.rsaDecryptPkcs1({data:Ci(v),privateKey:l.privateKey}),m=new TextDecoder().decode(d).trim();if(m==="")return c(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u89E3\u51FA\u7684\u79C1\u94A5\u4E3A\u7A7A\uFF08userId=${h}\uFF09`),null;let C={privateKey:m,version:k};return t.set(h,C),C}catch(d){return c(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u4E34\u65F6\u79C1\u94A5\u89E3 prv_key \u5931\u8D25\uFF08userId=${h}\uFF09`,d),null}}function g(h,l){let b=h.trim();if(b==="")return Promise.resolve(null);if(l!==void 0){let m=r.get(b);if(m!==void 0)return m;o.shouldRenegotiate(b,l.staleKey,t.get(b)?.privateKey)&&t.delete(b);}let v=t.get(b);if(v!==void 0)return Promise.resolve(v);let k=r.get(b);if(k!==void 0)return k;let d=p(b).finally(()=>{r.get(b)===d&&r.delete(b);});return r.set(b,d),d}function S(h){return t.get(h.trim())??null}return {getUserPrivateKey:g,getCachedPrivateKey:S}}function or(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 T(e,"/user_group/encrypt_info",t,r)}function Pi(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 Ii(e){let n=e.clientType,t=new Map,r=new Map,o=new Map,i=Ie((l,b)=>l===b),a=null,c=null;function s(){if(a!==null)return Promise.resolve(a);if(c!==null)return c;let l=Promise.resolve().then(()=>e.crypto.generateTempKeyPair()).then(b=>(a=b,b)).finally(()=>{c===l&&(c=null);});return c=l,l}async function p(l){let b=o.get(l)??0,v;try{v=await s();}catch(y){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u751F\u6210\u4E34\u65F6 RSA \u5BC6\u94A5\u5931\u8D25\uFF08groupId=${l}\uFF09`,y),null}let k;try{k=await or(e.client,{groupId:l,publicKey:v.publicKeyBase64,clientType:n});}catch(y){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u8BF7\u6C42\u5F02\u5E38\uFF08groupId=${l}\uFF09`,y),null}if(k.data===null)return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u4E1A\u52A1\u5931\u8D25\uFF08groupId=${l}\uFF0Ccode=${k.code}\uFF09`),null;let d=k.data,m=String(d.prv_key??d.prvKey??d.private_key??"").trim(),C=String(d.pub_key??d.pubKey??d.public_key??"").trim(),u=String(d.version??"").trim();if(m==="")return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u54CD\u5E94\u7F3A\u5C11 prv_key\uFF08groupId=${l}\uFF09`),null;try{let y=e.crypto.rsaDecryptPkcs1({data:Pi(m),privateKey:v.privateKey}),M=new TextDecoder().decode(y).trim();if(M==="")return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u89E3\u51FA\u7684\u7FA4\u79C1\u94A5\u4E3A\u7A7A\uFF08groupId=${l}\uFF09`),null;let A={privateKey:M,publicKey:C,version:u};return (o.get(l)??0)===b&&t.set(l,A),A}catch(y){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u4E34\u65F6\u79C1\u94A5\u89E3 prv_key \u5931\u8D25\uFF08groupId=${l}\uFF09`,y),null}}function g(l,b){let v=l.trim();if(v==="")return Promise.resolve(null);if(b!==void 0){let C=r.get(v);if(C!==void 0)return C;i.shouldRenegotiate(v,b.staleKey,t.get(v)?.privateKey)&&t.delete(v);}let k=t.get(v);if(k!==void 0)return Promise.resolve(k);let d=r.get(v);if(d!==void 0)return d;let m=p(v).finally(()=>{r.get(v)===m&&r.delete(v);});return r.set(v,m),m}function S(l){return t.get(l.trim())??null}function h(l){let b=l.trim();t.delete(b),r.delete(b),o.set(b,(o.get(b)??0)+1),i.reset(b);}return {getGroupKeys:g,getCachedGroupKeys:S,getCachedGroupKeyVersion:l=>t.get(l.trim())?.version??null,clearGroupKeys:h}}async function Oe(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 T(e,"/user/info/other",t,r)).data}function Si(e){let n=e.clientType,t=new Map,r=new Map;async function o(a){try{let s=((await Oe(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 p=t.get(s);if(p!==void 0)return Promise.resolve(p);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 ir(e){let n="";for(let t of e)n+=String.fromCharCode(t);return n}function ar(e){let n=new Uint8Array(e.length);for(let t=0;t<e.length;t++)n[t]=e.charCodeAt(t)&255;return n}function sr(e){return e.replace(/(.{64})/g,`$1
|
|
2
|
-
`).trim()}function vi(e){return e.replace(/-----BEGIN[^-]+-----/g,"").replace(/-----END[^-]+-----/g,"").replace(/\s+/g,"")}function Mi(e){let n=(e??"").trim();if(n==="")throw new Error("RSA \u79C1\u94A5\u4E3A\u7A7A");if(n.includes("-----BEGIN"))return z.pki.privateKeyFromPem(n);let t=n.replace(/\s+/g,""),r=[];try{return z.pki.privateKeyFromAsn1(z.asn1.fromDer(z.util.decode64(t)))}catch(i){r.push(i);}let o=sr(t);for(let i of ["PRIVATE KEY","RSA PRIVATE KEY"])try{return z.pki.privateKeyFromPem(`-----BEGIN ${i}-----
|
|
3
|
-
${o}
|
|
4
|
-
-----END ${i}-----`)}catch(a){r.push(a);}throw new Error(`RSA \u79C1\u94A5\u89E3\u6790\u5931\u8D25\uFF08\u5DF2\u8BD5 PKCS1-DER / PKCS8-PEM / PKCS1-PEM\uFF09\uFF1A${r[0]instanceof Error?r[0].message:String(r[0])}`)}function cr(e){let n=Mi(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 p=Math.min(s+t,r.length);try{let g=n.decrypt(ir(r.subarray(s,p)),"RSAES-PKCS1-V1_5");o.push(ar(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}..${p}\uFF0CkeySize ${t}B\uFF0C\u79C1\u94A5 ${n.n.bitLength()}bit\uFF09\uFF1A${S}`)}}let i=o.reduce((s,p)=>s+p.length,0),a=new Uint8Array(i),c=0;for(let s of o)a.set(s,c),c+=s.length;return a}function _i(e){let n=cr({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 De(n,e.cipherData)}function Ai(e){let n=(e??"").trim();if(n==="")throw new Error("RSA \u516C\u94A5\u4E3A\u7A7A");if(n.includes("-----BEGIN"))return z.pki.publicKeyFromPem(n);let t=n.replace(/\s+/g,""),r=[];try{return z.pki.publicKeyFromAsn1(z.asn1.fromDer(z.util.decode64(t)))}catch(i){r.push(i);}let o=sr(t);for(let i of ["PUBLIC KEY","RSA PUBLIC KEY"])try{return z.pki.publicKeyFromPem(`-----BEGIN ${i}-----
|
|
5
|
-
${o}
|
|
6
|
-
-----END ${i}-----`)}catch(a){r.push(a);}throw new Error(`RSA \u516C\u94A5\u89E3\u6790\u5931\u8D25\uFF08\u5DF2\u8BD5 SPKI-DER / SPKI-PEM / PKCS1-PEM\uFF09\uFF1A${r[0]instanceof Error?r[0].message:String(r[0])}`)}function dr(){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 xi(e,n){if(n.length===0)throw new Error("RSA \u52A0\u5BC6\uFF1A\u660E\u6587\u4E3A\u7A7A");let t=Ai(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 p=Math.min(s+r,n.length),g=t.encrypt(ir(n.subarray(s,p)),"RSAES-PKCS1-V1_5");o.push(ar(g));}let i=o.reduce((s,p)=>s+p.length,0),a=new Uint8Array(i),c=0;for(let s of o)a.set(s,c),c+=s.length;return a}function Ei(e){let n=e.teaKey??dr();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=Ue(t,e.plain);return {secretKey:xi(e.publicKey,t),cipherData:r}}function ki(e){return De(e.teaKey,e.cipherData)}function Ti(e){return Ue(e.teaKey,e.plain)}function Ri(e){return Wt(e.teaKey,e.plain)}function Di(e){return Yt(e.teaKey,e.cipherData)}function Ui(){return new Promise((e,n)=>{z.pki.rsa.generateKeyPair({bits:2048,e:65537,workers:-1},(t,r)=>{if(t){n(t);return}e({publicKeyBase64:vi(z.pki.publicKeyToPem(r.publicKey)),privateKey:z.pki.privateKeyToPem(r.privateKey)});});})}function Bi(){return {decryptEndToEnd:_i,encryptEndToEnd:Ei,decryptSymmetric:ki,encryptSymmetric:Ti,encryptFileSimple:Ri,decryptFileSimple:Di,randomTeaKey:dr,generateTempKeyPair:Ui,rsaDecryptPkcs1:cr}}function Rn(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function Ne(e,n){return T(e,"/friend/apply/list_paginated",{type:n.listType,page:n.page,page_size:n.pageSize},Rn(n.clientType,"GET"))}function Ke(e,n){return T(e,"/friend/apply/agree",{id:n.applicationId},Rn(n.clientType,"POST"))}function Ge(e,n){return T(e,"/friend/apply/del",{id:n.applicationId},Rn(n.clientType,"POST"))}var lr=50,ur=20,pr=1,Dn=2,Un=3,Oi=4,Ni=5,fr=0,Ki=1,Gi=2;function Li(e){switch(e){case fr:case Ki:case Gi: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 mr(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 gr(e){let n=K(e.status);if(e.status===void 0||n==="")return true;let t=Number(n),r=Li(t);if(r===void 0)throw new W(`\u672A\u77E5\u7533\u8BF7\u72B6\u6001\uFF1A${n}`);return r===fr}function Hi(e){let n=K(e.type);if(n==="")return true;if(Number(n)!==pr)throw new W(`\u8054\u7CFB\u4EBA\u7533\u8BF7\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${n}`);return true}function Fi(e){let n=Number(K(e.type));if(n!==Dn&&n!==Un&&n!==Oi&&n!==Ni)throw new W(`GROUP/CHANNEL \u6DF7\u5408\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${K(e.type)||"<empty>"}`);return n}function rn(e){if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>lr)throw new W(`limit \u5FC5\u987B\u4E3A 1-${lr}`);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 yr(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 Bn(e){let n=e.trim();if(n==="")throw new W("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");return n}function $i(e){let n=Bn(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=mr(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 ji(e){let n=Bn(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),p=mr(e.create_time??e.createTime??e.update_version);return {applicationId:n,groupId:t,kind:Number(e.type)===Un?"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),...p===void 0?{}:{createdAt:p}}}async function on(e,n,t){let r=await t(e.client,{applicationId:Bn(n),clientType:e.clientType});if(!r.ok)throw new Se(r.code,r.message)}function Ji(e){async function n(t){let{pageSize:r}=rn(t),{page:o}=rn(t);for(let i=0;i<ur;i+=1){let a=await Ne(e.client,{listType:pr,page:o,pageSize:r,clientType:e.clientType});if(!a.ok)throw new Se(a.code,a.message);let c=yr(a.data),s=c.filter(S=>Hi(S)&&gr(S)).map($i),p=c.length<r,g=o+1;if(s.length>0||p)return {items:s,exhausted:p,...p?{}:{nextCursor:String(g)}};o=g;}return {items:[],exhausted:false,nextCursor:String(o)}}return {listPendingApplications:n,acceptApplication:t=>on(e,t,Ke),ignoreApplication:t=>on(e,t,Ge)}}function Vi(e){async function n(t){let{pageSize:r}=rn(t),{page:o}=rn(t);for(let i=0;i<ur;i+=1){let a=await Ne(e.client,{listType:Dn,page:o,pageSize:r,clientType:e.clientType});if(!a.ok)throw new Se(a.code,a.message);let c=yr(a.data),s=c.filter(S=>{let h=Fi(S);return (h===Dn||h===Un)&&gr(S)}).map(ji),p=c.length<r,g=o+1;if(s.length>0||p)return {items:s,exhausted:p,...p?{}:{nextCursor:String(g)}};o=g;}return {items:[],exhausted:false,nextCursor:String(o)}}return {listPendingApplications:n,acceptApplication:t=>on(e,t,Ke),ignoreApplication:t=>on(e,t,Ge)}}function O(e){let n=typeof e=="string"||typeof e=="number"?String(e).trim():"";return n===""?void 0:n}function qi(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 zi(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 Wi(e){let n=Number(e.product_id),t=qi(e.is_dynamic);return {...zi(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 hr(e,n){return Array.isArray(e.mini_program_rel_list)?e.mini_program_rel_list.filter(t=>t!==null&&typeof t=="object").map(t=>Wi(t)):n.source==="info"?[]:void 0}function br(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function Cr(e,n){return T(e,"/user_radio/list",{user_id:n.userId,update_version:n.updateVersion,page:n.page,page_size:n.pageSize},br(n.clientType,"GET"))}function wr(e,n){return T(e,"/user_radio/info",{radio_id:n.channelId},br(n.clientType,"POST"))}var Pr=500,Le=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 Ir(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 Yi(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 Qi(e,n){return Number(e)===1?"member":Number(e)===9?"admin":Number(e)===10?"owner":n===false?"guest":"unknown"}function Xi(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 Zi(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 ea(e){if(e!=null)return Number(e)===1?"standard":Number(e)===2?"competition":"unknown"}function na(e){let n=ge(e);return n!==void 0&&/^\d+$/.test(n)?n.replace(/^0+(?=\d)/,""):void 0}function ta(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 Sr(e,n,t){let r=Ir(e.radio_id??e.id,"id"),o=Ir(e.name,"name"),i=e.is_in===void 0?void 0:ve(e.is_in),a=Qi(e.radio_user?.role_id,i),c=Xi(e),s=Zi(e,a,c),p=ta$1({channelState:c,snapshot:s,nowMs:n}),g={...s,resolvedState:p.channelState},S=na(e.update_version),h=ge(e.head_img_url),l=ge(e.desc),b=ge(e.user_id),v=Number(e.total_users),k=ea(e.type),d=Yi(e.radio_setting?.is_unvisit_other),m=e.verify_way===void 0?void 0:Number(e.verify_way),C=m!==void 0&&Number.isSafeInteger(m)?m:void 0,u=ge(e.invite_code),y=hr(e,{source:t});return {id:r,name:o,...h===void 0?{}:{avatar:h},...l===void 0?{}:{description:l},...b===void 0?{}:{ownerId:b},...Number.isFinite(v)&&v>=0?{memberCount:v}:{},...C===void 0?{}:{verifyType:C},...u===void 0?{}:{inviteCode:u},role:a,permissions:p.permissions,channelState:p.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)},...k===void 0?{}:{channelKind:k},...S===void 0?{}:{updateVersion:S},...y===void 0?{}:{miniProgramRels:y}}}function vr(e){return {...e,updatedAt:Date.now()}}function Mr(e,n){if(e.accessSnapshot===void 0)return {...e,permissions:sa$1(e.role,e.channelState)};let t=ta$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 On(e,n){let{updatedAt:t,...r}=Mr(e,n);return r}function ra(e){let n=new Map,t=new Map,r=new Map,o="0",i=false,a=null,c=0,s=null,p=0;function g(){if(i)return Promise.resolve();if(a!==null)return a;let l=c;return a=(async()=>{if(e.storage!==void 0){let[b,v]=await Promise.all([e.storage.getChannelProfiles(),e.storage.getChannelListVersion()]);if(l!==c)return;for(let k of b)n.set(k.id,Mr(k,e.now?.()??Date.now()));o=/^\d+$/.test(v)?v:"0";}i=true;})().finally(()=>{a=null;}),a}function S(l){if(l?.forceRefresh!==true&&s!==null)return s;let b=++p,v=(async()=>{await g();let k=(await e.getUserId()).trim();if(k==="")throw new ie("user_id \u4E0D\u80FD\u4E3A\u7A7A");let d=l?.forceRefresh===true?"0":o,m=[];for(let u=1;;u+=1){let y=await Cr(e.client,{userId:k,updateVersion:d,page:u,pageSize:Pr,clientType:e.clientType});if(!y.ok)throw new Le(y.code,y.message);if(y.data===null)break;if(!Array.isArray(y.data))throw new ie("list data \u5FC5\u987B\u662F\u6570\u7EC4");let M=e.now?.()??Date.now(),A=y.data.map(P=>Sr(P,M,"list"));if(m.push(...A),A.length<Pr)break}if(b!==p)return [...n.values()].map(u=>On(u,e.now?.()??Date.now()));let C=o;for(let u of m)n.set(u.id,vr(u)),u.updateVersion!==void 0&&(C=ta(C,u.updateVersion));return o=C,e.storage!==void 0&&(await e.storage.saveChannelProfiles([...n.values()]),await e.storage.saveChannelListVersion(o)),[...n.values()].map(u=>On(u,e.now?.()??Date.now()))})();return s=v,v.finally(()=>{s===v&&(s=null);}).catch(()=>{}),v}function h(l,b){let v=l.trim();if(v==="")return Promise.reject(new ie("channel id \u4E0D\u80FD\u4E3A\u7A7A"));let k=b?.forceRefresh===true;if(!k){let C=t.get(v);if(C!==void 0)return C}let d=(r.get(v)??0)+1;k&&r.set(v,d);let m=(async()=>{await g();let C=n.get(v);if(!k&&C!==void 0&&C.miniProgramRels!==void 0)return On(C,e.now?.()??Date.now());let u=await wr(e.client,{channelId:v,clientType:e.clientType});if(!u.ok)throw new Le(u.code,u.message);if(u.data===null||u.data===void 0)throw new ie("info data \u4E0D\u80FD\u4E3A\u7A7A");let y=Sr(u.data,e.now?.()??Date.now(),"info");if(y.id!==v)throw new ie(`info id \u4E0D\u5339\u914D\uFF1A\u8BF7\u6C42 ${v}\uFF0C\u54CD\u5E94 ${y.id}`);if((r.get(v)??d)===d){let M=vr(y);n.set(v,M),await e.storage?.saveChannelProfiles([M]);}return y})().finally(()=>{t.get(v)===m&&t.delete(v);});return r.set(v,d),t.set(v,m),m}return {listProfiles:S,getProfile:h,clearCache(){c+=1,p+=1;for(let l of new Set([...n.keys(),...t.keys(),...r.keys()]))r.set(l,(r.get(l)??0)+1);n.clear(),t.clear(),s=null,o="0",i=true,a=null;}}}function _r(e,n){return Ne(e,{listType:2,page:n.page,pageSize:n.pageSize,clientType:n.clientType})}function Ar(e,n){return Ke(e,n)}function xr(e,n){return Ge(e,n)}var oa=20,Er=50,ia=20,aa=2,sa=3,Tr=4,ca=5,Rr=0,da=1,la=2;function ua(e){switch(e){case Rr:case da:case la:return e;default:return}}var He=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 pa(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 fa(e){let n=L(e.status);if(e.status===void 0||n==="")return true;let t=Number(n),r=ua(t);if(r===void 0)throw new Q(`\u672A\u77E5\u7533\u8BF7\u72B6\u6001\uFF1A${n}`);return r===Rr}function ma(e){let n=Number(L(e.type));if(n!==aa&&n!==sa&&n!==Tr&&n!==ca)throw new Q(`GROUP/CHANNEL \u6DF7\u5408\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${L(e.type)||"<empty>"}`);return n}function ga(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,p=L(r?.head_img_url)||L(r?.avatar),g=pa(e.create_time??e.createTime);return {applicationId:n,applicantId:t,applicantName:i,...a===""?{}:{applicantAvatar:a},...c===""?{}:{applicantDisplayId:c},channelId:o,channelName:s,...p===""?{}:{channelAvatar:p},message:L(e.remarks)||L(e.introduce_self),...g===void 0?{}:{createdAt:g}}}function kr(e){if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>Er)throw new Q(`limit \u5FC5\u987B\u4E3A 1-${Er}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit||oa};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 ya(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 ha(e){let n=e.trim();if(n==="")throw new Q("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");return n}function ba(e){async function n(r){let{pageSize:o}=kr(r),{page:i}=kr(r);for(let a=0;a<ia;a+=1){let c=await _r(e.client,{page:i,pageSize:o,clientType:e.clientType});if(!c.ok)throw new He(c.code,c.message);let s=ya(c.data),p=s.filter(h=>ma(h)===Tr&&fa(h)).map(ga),g=s.length<o,S=i+1;if(p.length>0||g)return {items:p,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:ha(r),clientType:e.clientType});if(!i.ok)throw new He(i.code,i.message)}return {listJoinApplications:n,acceptJoinApplication:r=>t(r,Ar),ignoreJoinApplication:r=>t(r,xr)}}function an(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function Nn(e,n){return T(e,"/user_radio/users",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},an(n.clientType,"GET"))}function Kn(e,n){return T(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"},an(n.clientType,"POST"))}function Dr(e,n){return T(e,"/user_radio/admins",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},an(n.clientType,"GET"))}function Ur(e,n){return T(e,"/user_radio/user/infos",{radio_id:n.channelId,user_ids:n.userIds.join(",")},an(n.clientType,"POST"))}var sn=18,Ca=12,wa=300*1e3,Pa=32,Fe=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 Ia(e){return Number(e)===1?"member":Number(e)===9?"admin":Number(e)===10?"owner":"unknown"}function Sa(e){let n=ae(e);return /^\d+$/.test(n)?n.replace(/^0+(?=\d)/,""):void 0}function Gn(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 Br(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 p=Number(e.is_master);if(p!==0&&p!==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=Sa(e.update_version),s=Number(e.join_type);return {userId:r,...o===""?{}:{nickname:o},displayName:o||i||r,...a===""?{}:{avatar:a},role:Ia(e.role_id),...Number.isInteger(s)?{joinType:s}:{},...c===void 0?{}:{updateVersion:c}}}function va(e){if(e.channelId.trim()==="")throw new j("channelId \u4E0D\u80FD\u4E3A\u7A7A");if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>sn)throw new j(`limit \u5FC5\u987B\u4E3A 1-${sn}`);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 Or(e){let n=[],t=new Map;for(let r of e)t.has(r.userId)||n.push(r.userId),t.set(r.userId,r);return n.map(r=>t.get(r))}function Ma(e){let n=e.now??(()=>Date.now()),t=e.isActive??(()=>true),r=e.cacheTtlMs??wa,o=new Map,i=new Map,a=new Map,c=new Map,s=new Map,p=new Set,g=new Set,S=(P,w)=>`${P}:${w}`;function h(P){let w=s.get(P);return w!==void 0?w:(s.set(P,0),0)}function l(P){let w=P.trim();if(w==="")throw new j("channelId \u4E0D\u80FD\u4E3A\u7A7A");return w}function b(P){for(i.delete(P.channelId),i.set(P.channelId,P);i.size>Pa;){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 b(w),Promise.resolve(w);if(g.has(P)||e.storage?.getChannelMemberSnapshot===void 0)return Promise.resolve(null);let _=a.get(P);if(_!==void 0)return _;let f=h(P),I=e.storage.getChannelMemberSnapshot(P).then(x=>!t()||x===null||x.channelId!==P||f!==h(P)||g.has(P)?null:(b(x),x)).finally(()=>{a.get(P)===I&&a.delete(P);});return a.set(P,I),I}function k(P,w){let _=P.map(I=>I.userId),f=new Map(P.map(I=>[I.userId,I]));for(let I of w){f.has(I.userId)||_.push(I.userId);let x=f.get(I.userId);(x===void 0||Gn(I.updateVersion,x.updateVersion)>=0)&&f.set(I.userId,I);}return _.map(I=>f.get(I))}async function d(P,w){let _=await Z$1(w);return P.filter(f=>_.match(f.displayName)!==null||_.match(f.userId,{pinyin:false})!==null)}async function m(P,w,_={}){if(!t()||w!==h(P.channelId))return;let f=P.channelId,I=g.has(f),x=_.allowPersistentRebuild===true&&I&&e.storage?.deleteChannelMemberSnapshot===void 0&&e.storage?.saveChannelMemberSnapshot!==void 0;(!I||x)&&await e.storage?.saveChannelMemberSnapshot?.(P),t()&&w===h(f)&&(b(P),_.allowPersistentRebuild===true&&(!I||e.storage?.deleteChannelMemberSnapshot===void 0)&&g.delete(f));}async function C(P,w,_,f,I=false,x){let E=await v(P);if(!t()||_!==h(P))return;let R=n(),D=x!==void 0&&E?.nextCursor===x,U=I&&E!==null&&!D,B=f!==void 0&&!U?f.nextCursor:E?.nextCursor,F={channelId:P,items:k(E?.items??[],w),...B===void 0?{}:{nextCursor:B},exhausted:U?E.exhausted:f?.exhausted??E?.exhausted??false,updatedAt:R};await m(F,_);}async function u(P,w,_){if(!t()||_!==h(P))return [...w];let f=n(),I=f+r,x=[],E=[],R=new Map;for(let D of w){let U=S(P,D.userId),B=o.get(U)?.member;if(B!==void 0&&Gn(D.updateVersion,B.updateVersion)<0){E.push(B);continue}x.push({channelId:P,...D,updatedAt:f}),E.push(D),R.set(U,{member:D,expiresAt:I});}if(x.length>0&&t()&&_===h(P)&&!p.has(P)&&(await e.storage?.saveChannelMembers?.(x),e.storage?.getChannelMembers!==void 0&&t()&&_===h(P))){let D=await e.storage.getChannelMembers(P,x.map(B=>B.userId)),U=new Map(D.map(B=>{let{channelId:F,updatedAt:V,...ce}=B;return [ce.userId,{member:ce,updatedAt:V}]}));for(let B=0;B<E.length;B+=1){let F=E[B];if(F===void 0)continue;let V=U.get(F.userId);V===void 0||Gn(V.member.updateVersion,F.updateVersion)<=0||(E[B]=V.member,R.set(S(P,F.userId),{member:V.member,expiresAt:V.updatedAt+r}));}}if(t()&&_===h(P))for(let[D,U]of R)o.set(D,U);return E}async function y(P,w){let _=l(P.channelId),{page:f,pageSize:I}=va({...P,channelId:_}),x=h(_),E=await w(_,f,I);if(!E.ok)throw new Fe(E.code,E.message);if(E.data!==null&&!Array.isArray(E.data))throw new j("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let R=Or((E.data??[]).map(B=>Br(B,_))),D=await u(_,R,x),U=(E.data??[]).length<I;return {items:D,exhausted:U,...U?{}:{nextCursor:String(f+1)}}}function M(P){let w=l(P),_=c.get(w);if(_!==void 0)return _;let f=h(w),I=(async()=>{let x,E=false,R=[];for(let U=0;U<Ca&&!E;U+=1){let B=await y({channelId:w,limit:sn,...x===void 0?{}:{cursor:x}},(F,V,ce)=>Nn(e.client,{channelId:F,page:V,pageSize:ce,clientType:e.clientType}));if(!t()||f!==h(w))throw new j("\u6210\u5458\u5FEB\u7167\u9884\u53D6\u5DF2\u56E0\u6210\u5458\u53D8\u5316\u5931\u6548");R=k(R,B.items),x=B.nextCursor,E=B.exhausted;}let D={channelId:w,items:R,...x===void 0?{}:{nextCursor:x},exhausted:E,updatedAt:n()};return await m(D,f,{allowPersistentRebuild:true}),{items:D.items,...D.nextCursor===void 0?{}:{nextCursor:D.nextCursor},exhausted:D.exhausted}})().finally(()=>{c.get(w)===I&&c.delete(w);});return c.set(w,I),I}async function A(P){let w=l(P),_=h(w)+1;s.set(w,_),p.add(w),g.add(w),i.delete(w),a.delete(w),c.delete(w);let f=`${w}:`;for(let I of o.keys())I.startsWith(f)&&o.delete(I);e.storage?.deleteChannelMembers===void 0&&e.storage?.deleteChannelMemberSnapshot===void 0||(await Promise.all([e.storage.deleteChannelMembers?.(w),e.storage.deleteChannelMemberSnapshot?.(w)]),_===h(w)&&(e.storage?.deleteChannelMembers!==void 0&&p.delete(w),e.storage?.deleteChannelMemberSnapshot!==void 0&&g.delete(w)));}return {async prefetchMembers(P){let w=l(P),_=await v(w),f=g.has(w);_!==null&&!f&&_.updatedAt+r>n()||await M(w);},async getCachedMembers(P){let w=l(P.channelId),_=await v(w);if(_===null)return null;let f=P.query?.trim()??"";return f===""&&g.has(w)?null:f===""?{items:[..._.items],..._.nextCursor===void 0?{}:{nextCursor:_.nextCursor},exhausted:_.exhausted}:{items:await d(_.items,f),exhausted:true}},async refreshMembers(P){let w=l(P.channelId),_=P.query?.trim()??"";if(_==="")return M(w);let f=h(w),[I,x]=await Promise.all([y({channelId:w,query:_,limit:sn},(R,D,U)=>Kn(e.client,{channelId:R,query:_,page:D,pageSize:U,updateVersion:"0",clientType:e.clientType})),v(w)]),E=x===null?[]:await d(x.items,_);return await C(w,I.items,f),{...I,items:k(I.items,E)}},async listMembers(P){let w=l(P.channelId),_={...P,channelId:w},f=h(w),I=await y(_,(x,E,R)=>Nn(e.client,{channelId:x,page:E,pageSize:R,clientType:e.clientType}));return await C(w,I.items,f,I,_.cursor!==void 0,_.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 _=l(P.channelId),f={...P,channelId:_},I=h(_),x=await y(f,(E,R,D)=>Kn(e.client,{channelId:E,query:w,page:R,pageSize:D,updateVersion:"0",clientType:e.clientType}));return await C(_,x.items,I),x},listAdmins:P=>y(P,(w,_,f)=>Dr(e.client,{channelId:w,page:_,pageSize:f,clientType:e.clientType})),async getMembersByIds(P,w,_){let f=P.trim();if(f==="")throw new j("channelId \u4E0D\u80FD\u4E3A\u7A7A");let I=[...new Set(w.map(D=>D.trim()).filter(Boolean))];if(I.length===0)return [];let x=_?.forceRefresh===true,E=new Map,R=[];for(let D of I){let U=o.get(S(f,D));!x&&U!==void 0&&U.expiresAt>n()?E.set(D,U.member):R.push(D);}if(!x&&R.length>0&&!p.has(f)&&e.storage?.getChannelMembers!==void 0){let D=h(f),U=await e.storage.getChannelMembers(f,R);if(t()&&D===h(f))for(let{channelId:B,updatedAt:F,...V}of U)B===f&&(o.set(S(f,V.userId),{member:V,expiresAt:F+r}),F+r>n()&&E.set(V.userId,V));R=R.filter(B=>!E.has(B));}if(!t())return I.flatMap(D=>E.has(D)?[E.get(D)]:[]);if(R.length>0){let D=h(f),U=await Ur(e.client,{channelId:f,userIds:R,clientType:e.clientType});if(!U.ok)throw new Fe(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=Or((U.data??[]).map(Pe=>Br(Pe,f))),F=R.filter(Pe=>!B.some(To=>To.userId===Pe)),V=x&&F.length>0&&D===h(f),ce;V?(await A(f),ce=B):ce=await u(f,B,D);for(let Pe of ce)E.set(Pe.userId,Pe);}return I.flatMap(D=>E.has(D)?[E.get(D)]:[])},invalidateChannelMembers:A,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 p)P.add(w);for(let w of g)P.add(w);for(let w of P)s.set(w,h(w)+1);o.clear(),i.clear(),a.clear(),c.clear(),p.clear(),g.clear();}}}function Nr(e){return {responseMode:"strict",method:"POST",...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function Kr(e,n){return T(e,"/user_radio/member/list",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},Nr(n.clientType))}function Gr(e,n){return T(e,"/user_radio/member/search",{radio_id:n.channelId,search_name:n.query,page:n.page,page_size:n.pageSize},Nr(n.clientType))}var Lr=18,cn=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 _a(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 Aa(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>Lr)throw new re(`limit \u5FC5\u987B\u4E3A 1-${Lr}`);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 xa(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 Ea(e){async function n(t,r){let{channelId:o,page:i,pageSize:a}=Aa(t),c=await r({channelId:o,page:i,pageSize:a,clientType:e.clientType});if(!c.ok)throw new cn(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??[],p=xa(s.map(_a)),g=s.length<a;return {items:p,exhausted:g,...g?{}:{nextCursor:String(i+1)}}}return {listMentionMembers:t=>n(t,r=>Kr(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=>Gr(e.client,{...o,query:r}))}}}function ka(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 p=await e.getAuth();p!==null&&p.token!==""&&p.userId!==""&&(c.Authorization=`${p.token}:${p.userId}`);let g=await n(`${a}${t}`,{method:"POST",body:r,headers:c,signal:i});if(!g.ok)throw new na$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 dn(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 $e(e){let n=Y(e);return n===""?void 0:n}function Ta(e){let n=dn(e,"\u8054\u7CFB\u4EBA\u76EE\u5F55\u9879"),t=n.user_info===void 0?n:dn(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=$e(t.head_img_url),c=$e(t.username)??$e(t.mid);return {id:r,kind:"individual",displayName:o,cardDisplayName:i,...a===void 0?{}:{avatarUrl:a},...c===void 0?{}:{username:c}}}function Ra(e){let n=dn(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=$e(n.head_img_url),o=Y(n.name)||t;return {id:t,kind:"group",displayName:o,cardDisplayName:o,...r===void 0?{}:{avatarUrl:r}}}function Da(e){let n=dn(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=$e(n.head_img_url),o=Y(n.name)||t;return {id:t,kind:"channel",displayName:o,cardDisplayName:o,...r===void 0?{}:{avatarUrl:r}}}function Ua(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 Ba(e){return {async list(n){Ua(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 T(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"?Ta:n.kind==="group"?Ra:Da,c=new Map;for(let p of i){let g=a(p);c.set(g.id,g);}let s=i.length<n.pageSize;return {items:[...c.values()],...s?{}:{nextPage:n.page+1},exhausted:s}}}}var Oa="https://api.giphy.com/v1/gifs",_e=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 Ae(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 Na(e,n){let t=Number(e);if(!Number.isSafeInteger(t))throw new $(`${n} \u5FC5\u987B\u662F\u5B89\u5168\u6574\u6570`);return t}function Hr(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 Ln(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 Fr(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:Na(n.sortWeight??n.sort_weight??0,"\u8D34\u56FE\u5305 sortWeight"),isPlatformIssued:r===true||Number(r)===1,...t===void 0?{}:{onlineTime:t},stickerCount:Ae(n.stickerCount??n.sticker_count??0,"\u8D34\u56FE\u5305 stickerCount")}}function Hn(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:Ae(o.width??0,`${t} width`),height:Ae(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 Ka(e,n){if(n!=="emoji")return Hn(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 $r(e,n,t){let r=je(n);return Ln(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 Jr(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 Ga(e){return e.kind!=="emoji"?Jr(e):{fav_type:je(e.kind),pack_id:"",img_url:e.token,file_name:e.resourceId,width:0,height:0}}function jr(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 La(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),p=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:p,...g===void 0?{}:{fallbackPreviewUrl:g},width:Hr(r.width,"Giphy original.width"),height:Hr(r.height,"Giphy original.height")}}function Ha(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=Ae(r.offset??n,"Giphy pagination.offset");if(o!==n)throw new $("Giphy pagination.offset \u4E0E\u8BF7\u6C42 offset \u4E0D\u4E00\u81F4");let i=Ae(r.count??t.data.length,"Giphy pagination.count"),a=Ae(r.total_count??r.totalCount??0,"Giphy pagination.total_count"),c=new Map;for(let p of t.data){let g=La(p);c.set(g.resourceId,g);}let s=o+i;return {items:[...c.values()],offset:o,totalCount:a,...i>0&&s<a?{nextOffset:s}:{}}}function Fa(e){async function n(r,o,i){if(e.coreClient===void 0)throw new _e("core");let a=await T(e.coreClient,r,o,{method:"POST",responseMode:"strict"});if(!a.ok)throw new q(i,a.code,a.message);return a.data}async function t(r,o){let i=e.giphyApiKey?.trim()??"";if(i==="")throw new _e("giphy");let a=e.fetcher??globalThis.fetch;if(typeof a!="function")throw new _e("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(`${Oa}/${r}?${c.toString()}`);}catch{throw new ye(0,"network failure")}let p;try{p=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=p!==null&&typeof p=="object"&&!Array.isArray(p)?p.meta:void 0,h=S!==null&&typeof S=="object"&&!Array.isArray(S)?X(S.msg):"";throw new ye(s.status,h)}let g=p!==null&&typeof p=="object"&&!Array.isArray(p)?p.meta:void 0;if(g!==null&&typeof g=="object"&&!Array.isArray(g)){let S=g,h=Number(S.status);if(Number.isFinite(h)&&h!==200)throw new ye(h,X(S.msg))}return Ha(p,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(Fr)};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(Fr)}},async listStickerItems(r){let o=await n("/user/sticker/item_list",{pack_id:r},"\u8D34\u56FE\u660E\u7EC6\u5217\u8868");return Ln(o,"\u8D34\u56FE\u660E\u7EC6\u5217\u8868 data").map(i=>Hn(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 $r(o,r,"\u8868\u60C5\u6536\u85CF\u5217\u8868 data").map(i=>Hn(i,r,"\u8868\u60C5\u6536\u85CF\u9879"))},async addFavorite(r){await n("/user/sticker/my_fav/add",Jr(r),"\u6DFB\u52A0\u8868\u60C5\u6536\u85CF");},async deleteFavorites(r){await n("/user/sticker/my_fav/del",{ids:jr(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 $r(o,r,"\u6700\u8FD1\u4F7F\u7528\u5217\u8868 data").map(i=>Ka(i,r))},async reportRecent(r){await n("/user/sticker/recent/report",Ga(r),"\u4E0A\u62A5\u6700\u8FD1\u4F7F\u7528");},async deleteRecent(r){await n("/user/sticker/recent/del",{ids:jr(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 Ln(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 Vr(e,n){let t=n.clientType===void 0?void 0:{headers:{"Client-type":String(n.clientType)}};return (await T(e,"/user_group/info",{group_id:n.groupId},t)).data}function $a(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 ja(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 qr=200,Ja=50;async function zr(e,n){let t=String(n.updateVersion??0).trim()||"0",r=[],o;for(let i=1;i<=Ja;i++){let a={group_id:n.groupId,update_version:t,page:String(i),page_size:String(qr)},{data:c}=await T(e,"/user_group/user/list",a,{method:"GET",...n.clientType===void 0?{}:{headers:{"Client-type":String(n.clientType)}}});if(c===null)break;let s=$a(c);if(s.length===0)break;for(let g of s){let S=String(g.user_id??g.userId??"").trim();if(S==="")continue;let h={userId:S,nickName:String(g.nick_name??g.nickName??"").trim()},l=ja(g.join_type??g.joinType);l!==void 0&&(h.joinType=l),r.push(h);}let p=c.update_version;if(typeof p=="number"&&(o=p),s.length<qr)break}return {members:r,updateVersion:o}}async function Wr(e,n){return (await T(e,"/user/info/friend",{friend_user_id:n.userId})).data}var Va=1440*60*1e3;function Fn(e,n,t=Va){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 h=e(g).then(l=>(l!==null&&i.get(g)===S&&(r.set(g,l),n?.save(g,l).catch(()=>{})),l)).finally(()=>{o.get(g)===h&&o.delete(g);});return o.set(g,h),h}return {get:async(g,S)=>{if(S?.forceRefresh===true)return a(g);let h=r.get(g);if(h!==void 0)return h;let l=o.get(g);if(l!==void 0)return l;if(n!==void 0)try{let b=i.get(g)??0,v=await n.get(g);if(v!==null)return (i.get(g)??0)===b&&(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 h=i.get(g)??0,l=await n.get(g);if(l!==null)return (i.get(g)??0)===h&&r.set(g,l.value),{value:l.value,stale:Date.now()-l.updatedAt>t}}catch{}return null},clear:()=>{for(let g of new Set([...r.keys(),...o.keys(),...i.keys()]))i.set(g,(i.get(g)??0)+1);r.clear(),o.clear();}}}function qa(e){async function n(h){let l=await Wr(e.client,{userId:h})??await Oe(e.client,{userId:h});return l===null?null:V(l)}async function t(h){let l=await Vr(e.client,{groupId:h,clientType:e.clientType});return l===null?null:W$1(l)}async function r(h){let{members:l}=await zr(e.client,{groupId:h,clientType:e.clientType});return l.length===0?null:l}function o(h){let l={};for(let b of h)b.nickName!==""&&(l[b.userId]=b.nickName);return l}let{storage:i}=e,a=i===void 0?void 0:{get:async h=>{let l=await i.getUserProfile(h);return l===null?null:{value:l,updatedAt:l.updatedAt}},save:async(h,l)=>{await i.saveUserProfile({...l,updatedAt:Date.now()});}},c=i===void 0?void 0:{get:async h=>{let l=await i.getGroupMembers(h);return l===null?null:{value:l.members.map(b=>({userId:b.userId,nickName:b.groupNick,...b.joinType===void 0?{}:{joinType:b.joinType}})),updatedAt:l.updatedAt}},save:async(h,l)=>{let b=l.map(v=>({userId:v.userId,groupNick:v.nickName,...v.joinType===void 0?{}:{joinType:v.joinType}}));await i.saveGroupMembers({groupId:h,members:b,updatedAt:Date.now()});}},s=i===void 0?void 0:{get:async h=>{let l=await i.getGroupProfile(h);return l===null?null:{value:l,updatedAt:l.updatedAt}},save:async(h,l)=>{await i.saveGroupProfile({...l,updatedAt:Date.now()});}},p=Fn(n,a),g=Fn(t,s),S=Fn(r,c);return {getUserProfile:(h,l)=>p.get(h,l),getGroupProfile:(h,l)=>g.get(h,l),getGroupMemberNames:async(h,l)=>{let b=await S.get(h,l);return b===null?null:o(b)},listGroupMembers:(h,l)=>S.get(h,l),peekUserProfile:h=>p.peek(h),peekGroupMemberNames:async h=>{let l=await S.peek(h);return l===null?null:{value:o(l.value),stale:l.stale}},peekGroupMembers:h=>S.peek(h),peekGroupProfile:h=>g.peek(h),clearCache:()=>{p.clear(),g.clear(),S.clear();}}}function za(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}async function ee(e,n,t,r){let o=await T(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new q(r,o.code,o.message)}function Wa(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 Ya(e){return ee(e.client,"/user_radio/user/setting",{radio_id:e.channelId,nick_name:e.nickname},"\u4FEE\u6539\u793E\u7FA4\u6635\u79F0")}function Qa(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 Xa(e){let n=e.userIds.map(t=>({user_id:za(t)}));return ee(e.client,"/user_radio/invited_users",{radio_id:e.channelId,members:JSON.stringify(n)},"\u9080\u8BF7\u793E\u7FA4\u6210\u5458")}function Za(e){return ee(e.client,"/user_radio/kick_user",{radio_id:e.channelId,user_id:e.userId},"\u79FB\u9664\u793E\u7FA4\u6210\u5458")}function es(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 ns(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 ts(e){return ee(e.client,"/user_radio/transfer",{radio_id:e.channelId,user_id:e.userId},"\u8F6C\u8BA9\u793E\u7FA4")}function rs(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 os(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 is(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 as(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 ss(e){return ee(e.client,"/user_radio/closed",{radio_id:e.channelId},"\u89E3\u6563\u793E\u7FA4")}async function cs(e){ds(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=z$1({userId:e.userId,clientType:e.clientType,pulls:[{channelId:e.channelId,baseIndex:n,direction:0,count:20,contain:t?1:0}]}),o=await e.http.postProtobuf({path:"/channel/v1/offlineMessages",body:r}),i=C(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 ds(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 ls(e){let n=us(e.indexes),t=f.encode(f.create({sUserId:$n(e.userId,"user"),lsIndex:n.map(i=>({sChnnId:$n(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 us(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=>{$n(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 $n(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 ps(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 T(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 ln=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;}},un=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;}},jn={HIDDEN_CONTACT:40112,OWN_FRIEND_LIMIT_REACHED:40121,TARGET_FRIEND_LIMIT_REACHED:40122},fs=36875,ms=40113;function Jn(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function se(e){let n=Jn(e);return n===""?void 0:n}function Yr(e){let n=Array.isArray(e)?e[0]:e;return n!==null&&typeof n=="object"?n:void 0}function gs(e){switch(e){case jn.HIDDEN_CONTACT:return "hidden-contact";case jn.OWN_FRIEND_LIMIT_REACHED:return "own-friend-limit";case jn.TARGET_FRIEND_LIMIT_REACHED:return "target-friend-limit";default:return "remote"}}async function ys(e,n){let t=n.query.trim();if(t==="")throw new Error("\u641C\u7D22\u7528\u6237\uFF1Aquery \u4E0D\u80FD\u4E3A\u7A7A");let r=await T(e,"/user/info/search",{username:t},{responseMode:"strict",...n.clientType===void 0?{}:{headers:{"Client-type":String(n.clientType)}}});if(!r.ok)throw new ln(r.code,r.message);let o=Yr(r.data);if(o===void 0)return null;let i=Jn(o.user_id??o.userId);if(i==="")throw new Error("\u641C\u7D22\u7528\u6237\uFF1A\u54CD\u5E94\u7F3A\u5C11 user_id");let a=Jn(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 hs(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 T(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 un(gs(i.code),i.code,i.message);let a=Yr(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 bs(e,n){let t=n.userId.trim();if(t==="")throw new Error("\u5220\u9664\u597D\u53CB\uFF1AuserId \u4E0D\u80FD\u4E3A\u7A7A");let r=await T(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!==ms)throw new Error(`\u5220\u9664\u597D\u53CB\u5931\u8D25\uFF08${r.code}\uFF09\uFF1A${r.message||"unknown error"}`)}async function Cs(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 T(e,"/user/report_user/add",{user_id:t,to_user_id:r,problem:o,images:"1"},{responseMode:"strict",method:"POST"});if(!i.ok)throw new q("\u4E3E\u62A5\u8054\u7CFB\u4EBA",i.code,i.message)}function ws(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}function Ps(e){let n=e.memberIds.map(t=>({user_id:ws(t)}));return T(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 Is(e){return T(e.client,"/user_group/create_face",{is_hidden:"0"},{method:"POST",responseMode:"strict"})}function Ss(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}function vs(e){let n=e.memberIds.map(t=>({user_id:Ss(t)}));return T(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 Qr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function Ms(e){Ee(e.groupId);let n=await T(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(!Qr(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(!Qr(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 Xr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function _s(e){ke(e.channelId);let n=await T(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(!Xr(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(!Xr(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 As(e,n){let r=(await T(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 xs(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 Es(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||!xs(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 ks(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}async function Je(e,n,t,r){let o=await T(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new q(r,o.code,o.message)}function Ts(e){let n=e.userIds.map(t=>({user_id:ks(t)}));return Je(e.client,"/user_group/invited",{group_id:e.groupId,members:JSON.stringify(n)},"\u9080\u8BF7\u7FA4\u6210\u5458")}function Rs(e){return Je(e.client,"/user_group/kick",{group_id:e.groupId,out_user_id:e.userId},"\u79FB\u9664\u7FA4\u6210\u5458")}function Ds(e){return Je(e.client,"/user_group/transfer",{group_id:e.groupId,new_user_id:e.userId},"\u8F6C\u8BA9\u7FA4\u7EC4")}function Us(e){return Je(e.client,"/user_group/user/quit",{group_id:e.groupId,...e.newOwnerId===void 0?{}:{new_user_id:e.newOwnerId}},"\u9000\u51FA\u7FA4\u7EC4")}function Bs(e){return Je(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 Os=new Set([200,32768]);async function Ns(e){let n=P({userId:e.userId,groupId:e.groupId}),t=await e.http.postProtobuf({path:"/offline/v1/group/read_all",body:n}),{code:r}=Q$1(t);if(!Os.has(r))throw new Error(`\u7FA4 read_all \u4E1A\u52A1\u5931\u8D25\uFF1Acode=${r}\uFF08groupId=${e.groupId}\uFF09`)}var Ve=class extends Error{constructor(n){super(`${n}\u54CD\u5E94\u5305\u542B\u65E0\u6CD5\u8BC6\u522B\u7684 is_waitting`),this.name="MembershipJoinMappingError";}};function Ks(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 Ve(n)}async function Zr(e,n,t,r){let o=await T(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new q(r,o.code,o.message);if(o.data===null||o.data===void 0)throw new Ve(r);return Ks(o.data.is_waitting,r)}async function eo(e,n,t,r){let o=await T(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new q(r,o.code,o.message);return Object.freeze({outcome:"joined"})}function Gs(e){return Zr(e.client,"/user_group/apply",{group_id:e.groupId,qrcode_type:2,remarks:e.remarks??""},"\u7533\u8BF7\u52A0\u5165\u666E\u901A\u7FA4")}function Ls(e){return eo(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 Hs(e){return Zr(e.client,"/user_radio/add/apply",{radio_id:e.channelId,remarks:e.remarks??""},"\u7533\u8BF7\u52A0\u5165\u793E\u7FA4")}function Fs(e){return eo(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 $s(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 T(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 js(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 T(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 Js(e){let n=T$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 U(t,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function Vs(e){e.prepareKeys!==void 0&&e.decryptDeps!==void 0&&e.groupId!==""&&await e.prepareKeys([e.groupId]);let n=N$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 O$1(t,{selfId:e.userId,keepRaw:true,source:"history",onReaction:e.onReaction},e.decryptDeps)}async function qs(e){e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId);let n=D({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 E(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 zs=20,no=10,Vn=30,Ws=100;async function Ys(e){let n=[];for(let t of ro(e.channels,zs)){let r=y({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=B(o,i);await to(e,a.sessions.filter(c=>c.channelState==="active"||c.raw?.status===0).map(c=>c.channelId)),n.push(...B(o,{...i,onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps).sessions);}return n}async function Qs(e){let n=ec(e.channelBatchSize),t=e.messageCount??Vn,r=nc(e.maxPagesPerBatch),o=new Map;for(let i of ro(e.pulls,n)){let a=i.map(p=>({...p})),c=new Map(a.map(p=>[p.channelId,new Set([p.baseIndex])])),s=0;for(;a.length>0;){if(s>=r){let l=a.map(({channelId:b,baseIndex:v})=>`${b}@${v}`).join(",");throw new Error(`channel offline \u5206\u9875\u8D85\u8FC7 maxPagesPerBatch=${r}\uFF08active=${l}\uFF09`)}s+=1;let p=z$1({userId:e.userId,clientType:e.clientType,pulls:a.map(l=>({channelId:l.channelId,baseIndex:l.baseIndex,direction:0,count:t,contain:0}))}),g=await e.http.postProtobuf({path:"/channel/v1/offlineMessages",body:p});await to(e,a.map(l=>l.channelId));let S=C(g,{selfId:e.userId,keepRaw:true,expectedChannelIds:a.map(l=>l.channelId),diagnostic:{endpoint:"offlineMessages",surface:"offline-batch",...e.operationId===void 0?{}:{operationId:e.operationId},clientTypeHeader:e.clientType,clientTypeBody:e.clientType},onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps);for(let l of S.messages)o.has(l.id)||o.set(l.id,l);let h=[];for(let l of a){let b=S.nextBaseIndexes[l.channelId],v=S.messageCounts[l.channelId]??0;if(b===void 0)continue;let k=c.get(l.channelId);if(k.has(b))throw new Error(`channel offline cursor \u5FAA\u73AF\uFF08channelId=${l.channelId}, baseIndex=${b}\uFF09`);v<t||(k.add(b),h.push({channelId:l.channelId,baseIndex:b}));}a=h;}}return [...o.values()].sort(k)}async function Xs(e$1){let n=e$1.count??Vn;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=z$1({userId:e$1.userId,clientType:e$1.clientType,pulls:[{channelId:e$1.channelId,baseIndex:"",direction:1,count:n,contain:0}]}),r=await e$1.http.postProtobuf({path:"/channel/v1/offlineMessages",body:t}),o=C(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 Zs(e){let n=e.count??Vn;e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId);let t=A({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 F(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 to(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 ec(e){if(e===void 0)return no;if(!Number.isInteger(e)||e<=0)throw new Error("channel offline: channelBatchSize \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");return Math.min(e,no)}function nc(e){if(e===void 0)return Ws;if(!Number.isInteger(e)||e<=0)throw new Error("channel offline: maxPagesPerBatch \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");return e}function ro(e,n){let t=[];for(let r=0;r<e.length;r+=n)t.push(e.slice(r,r+n));return t}async function oo(e,n){let t=R({userId:n.userId,clientType:n.clientType,limit:n.limit,deliveredMsgInfos:n.deliveredMsgInfos}),r=await n.http.postProtobuf({path:e,body:t});return S(r,{selfId:n.userId,keepRaw:true,onReaction:n.onReaction},n.decryptDeps)}function io(e){return oo("/offline/v1/chat",e)}function ao(e){return oo("/offline/v1/owner_chat",e)}function tc(e){return io(e).then(n=>n.messages)}function rc(e){return ao(e).then(n=>n.messages)}function so(e){return [...new Set(e.filter(n=>n!==void 0&&n!==""))]}async function oc(e){let n=H$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=J$1(t,{selfId:e.userId}),o=so(r.messages.map(i=>i.conversationId));o.length>0&&await e.prepareKeys(o);}return J$1(t,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function ic(e){let n=I({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=K$1(t,{selfId:e.userId}),o=so([...r.unreads.map(i=>i.groupId),...r.messages.map(i=>i.conversationId)]);o.length>0&&await e.prepareKeys(o);}return K$1(t,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function ac(e){e.prepareKeys!==void 0&&e.decryptDeps!==void 0&&e.groupId!==""&&await e.prepareKeys([e.groupId]);let n=L$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 M(t,{selfId:e.userId,keepRaw:true,source:"history",onReaction:e.onReaction},e.decryptDeps)}async function sc(e){let n=$$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 aa$1(t)}var cc={direct:"/friend/undisturb/set",group:"/user_group/user/edit",channel:"/user_radio/user/setting"},dc={direct:"friend_user_id",group:"group_id",channel:"radio_id"};async function lc(e){let n=cc[e.conversationType],t=dc[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 T(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 uc(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 T(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 pc(e){let{code:n}=await T(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 fc(e){Ee(e.groupId);let n=await T(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 mc(e){ke(e.channelId);let n=await T(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 gc(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 T(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 yc="1970-01-01 08:00:00",hc="2000",bc="",pn=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 J(e){return typeof e=="string"?e:e==null?"":String(e)}function qe(e,n){let t=J(e).trim();if(t==="")throw new fe(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function Cc(...e){for(let n of e){let t=J(n).trim();if(/^https?:\/\//i.test(t))return t}return ""}function wc(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":null}function Pc(e){return e==="text"?1:e==="image"?2:e==="video"?3:e==="voice"?4:e==="location"?5:11}function Ic(e){if(e==="direct")return 0;if(e==="group")return 1;if(e==="channel")return 2;throw new fe(`favorite conversation type ${e}`)}function Sc(e){let n=e.thumbData??e.thumb_data??e.thumbBase64;if(typeof n!="string")return "";let t=n.trim();return t.startsWith("data:image/")?t:t.includes("://")||t.length<32?"":`data:image/jpeg;base64,${t}`}function vc(e){return Cc(e.imageURL,e.imageUrl,e.videoURL,e.videoUrl,e.url)}function co(e){let n=Sc(e);if(n!=="")return n;let t=J(e.thumbUrl||e.thumb_url).trim();if(t.startsWith("data:image/"))return t;let r=vc(e);return /^https?:\/\//i.test(t)&&t!==r?t:""}function fn(e,n){return n==="text"||n==="location"?J(e.content).trim():n==="file"?J(e.fileName||e.file_name||e.name).trim():""}function Mc(e,n){let t=J(e.group_id).trim(),r=J(e.radio_id).trim(),o=Number(J(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=J(e.from_id).trim(),a=J(e.to_id).trim(),c=i===n.trim()?a:i;if(c!=="")return {conversationType:"direct",conversationId:c}}return null}function _c(e,n){let t=e.from_user,r=J(t?.nick_name||t?.nickname||t?.name).trim();return r===""?n:r}function Ac(e,n){let t=J(e.uu_id).trim(),r=wc(e.content_type),o=tr(J(e.msg_body),n);if(t===""||r===null||o===null)return null;let i=J(e.from_id).trim();return Object.freeze({collectId:t,msgId:J(e.msg_id).trim(),kind:r,senderId:i,senderName:_c(e,i),avatarUrl:J(e.from_user?.avatar).trim(),createdAt:J(e.create_time||e.update_time||e.msg_time).trim(),text:fn(o,r),imageUrl:r==="image"||r==="video"?co(o):"",fileName:r==="file"?fn(o,"file"):"",body:Object.freeze({...o}),conversation:Mc(e,n)})}function xc(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 Ec(){if(typeof crypto>"u"||typeof crypto.randomUUID!="function")throw new fe("collect uuid \u4E0D\u53EF\u7528");return crypto.randomUUID()}function kc(e){return Object.freeze({...e,body:Object.freeze({...e.body}),conversation:e.conversation===null?null:Object.freeze({...e.conversation})})}function Tc(e){async function n(t,r,o){if(e.coreClient===void 0)throw new pn;let i=await T(e.coreClient,t,r,{method:"POST",responseMode:"strict",prefix:bc});if(!i.ok)throw new q(o,i.code,i.message);return i.data}return {async list(){let t=qe(e.getUserId(),"favorite userId"),r=await n("/api/v1/user/favorite/list",{start_time:yc,page_size:hc},"\u4F1A\u8BDD\u6536\u85CF\u5217\u8868");return Object.freeze(xc(r).flatMap(o=>{let i=Ac(o,t);return i===null?[]:[i]}))},async add(t){let r=qe(e.getUserId(),"favorite userId"),o=(e.createCollectId??Ec)(),i={msg_id:qe(t.messageId,"favorite msgId"),content_type:Pc(t.kind),msg_type:Ic(t.conversation.conversationType),msg_time:String(t.createdAt),from_id:qe(t.senderId,"favorite fromId"),to_id:qe(t.peerId,"favorite toId"),is_hide:t.hide===true?"1":"0",uu_id:o,msg_body:nr(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"),kc({collectId:o,msgId:t.messageId.trim(),kind:t.kind,senderId:t.senderId.trim(),senderName:t.senderId.trim(),avatarUrl:"",createdAt:String(t.createdAt),text:fn(t.plainBody,t.kind),imageUrl:t.kind==="image"||t.kind==="video"?co(t.plainBody):"",fileName:t.kind==="file"?fn(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");}}}function Rc(){let e=typeof navigator>"u"?void 0:navigator,n=e?.hardwareConcurrency??4;return (e?.deviceMemory??4)<=2?2:Math.min(4,Math.max(2,Math.floor(n/4)))}function Dc(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 mn(e){if(e?.aborted)throw new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError")}function lo(e,n,t){let r=Math.min(1,t/Math.max(e,n));return {width:Math.max(1,Math.round(e*r)),height:Math.max(1,Math.round(n*r))}}async function uo(e,n,t,r,o){mn(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(mn(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 qn(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 zn(e,n,t,r,o){let i=r.kind==="video",a=i?"\u89C6\u9891\u5C01\u9762":"\u56FE\u7247\u7F29\u7565\u56FE",c=r.maxSize??320,s=r.targetBytes??(i?10240:12288),p=r.maxBytes??(i?16384:20480),g=r.quality??(i?.84:.9),S=r.minQuality??(i?.68:.72);if(qn(c,`${a}\u6700\u5927\u8FB9\u957F`),qn(s,`${a}\u76EE\u6807\u5B57\u8282\u6570`),qn(p,`${a}\u6700\u5927\u5B57\u8282\u6570`),po(g,`${a}\u521D\u59CB\u8D28\u91CF`),po(S,`${a}\u6700\u4F4E\u8D28\u91CF`),s>p)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 h=lo(n,t,c),l=Math.min(200,Math.max(h.width,h.height)),b,v=[...new Set([g,Math.max(S,g-.12),S])];for(let d of v){let m=await uo(e,h.width,h.height,d,o);if((b===void 0||m.byteLength<b.byteLength)&&(b=m),m.byteLength<=s)return m}let k=Math.max(h.width,h.height);if(k>l&&b!==void 0){let d=Math.sqrt(s/b.byteLength),m=Math.max(l,Math.floor(k*Math.min(.9,Math.max(.5,d))));h=lo(n,t,m);for(let C of [g,S]){let u=await uo(e,h.width,h.height,C,o);if(u.byteLength<b.byteLength&&(b=u),u.byteLength<=s)return u}}if(b!==void 0&&b.byteLength<=p)return b;throw new Error(`${a}\u751F\u6210\u5931\u8D25\uFF1A\u7F16\u7801\u7ED3\u679C\u8D85\u8FC7 ${p} \u5B57\u8282\u786C\u4E0A\u9650`)}function fo(e,n,t){return new Promise((r,o)=>{let i,a,c,s,p=()=>{i!==void 0&&clearTimeout(i),e.removeEventListener(n,a),e.removeEventListener("error",c),t?.removeEventListener("abort",s);};a=()=>{p(),r();},c=()=>{p(),o(new Error(`\u89C6\u9891\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A${n} \u524D\u89E3\u7801\u9519\u8BEF`));},s=()=>{p(),o(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));},i=setTimeout(()=>{p(),o(new Error(`\u89C6\u9891\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A${n} \u8D85\u65F6`));},15e3),e.addEventListener(n,a,{once:true}),e.addEventListener("error",c,{once:true}),t?.addEventListener("abort",s,{once:true});})}async function Uc(e,n){mn(n);let t;try{t=await createImageBitmap(e.file);}catch(i){if(n?.aborted)throw i}if(t!==void 0)try{if(mn(n),e.includePoster===!1)return {width:t.width,height:t.height};let i=e.maxBytes??20480;return e.file.type==="image/jpeg"&&e.file.size<=i&&Math.max(t.width,t.height)<=(e.maxSize??320)?{width:t.width,height:t.height,posterData:await e.file.arrayBuffer()}:{width:t.width,height:t.height,posterData:await zn(t,t.width,t.height,e,n)}}finally{t.close();}let r=URL.createObjectURL(e.file),o=new Image;try{if(await new Promise((a,c)=>{let s,p,g=()=>{s!==void 0&&clearTimeout(s),o.onload=null,o.onerror=null,n?.removeEventListener("abort",p);};p=()=>{g(),c(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));},o.onload=()=>{g(),a();},o.onerror=()=>{g(),c(new Error("\u56FE\u7247\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1AImage \u89E3\u7801\u9519\u8BEF"));},s=setTimeout(()=>{g(),c(new Error("\u56FE\u7247\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1AImage \u89E3\u7801\u8D85\u65F6"));},15e3),n?.addEventListener("abort",p,{once:!0}),o.src=r;}),e.includePoster===!1)return {width:o.naturalWidth,height:o.naturalHeight};let i=e.maxBytes??20480;return e.file.type==="image/jpeg"&&e.file.size<=i&&Math.max(o.naturalWidth,o.naturalHeight)<=(e.maxSize??320)?{width:o.naturalWidth,height:o.naturalHeight,posterData:await e.file.arrayBuffer()}:{width:o.naturalWidth,height:o.naturalHeight,posterData:await zn(o,o.naturalWidth,o.naturalHeight,e,n)}}finally{o.removeAttribute("src"),URL.revokeObjectURL(r);}}async function Bc(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 fo(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 fo(r,"seeked",n));let s=a===void 0?void 0:a,p;try{p=await zn(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},...p===void 0?{}:{posterData:p}}}finally{r.pause(),r.removeAttribute("src"),r.load(),URL.revokeObjectURL(t);}}function Wn(e={}){let n=e.maxConcurrency??Rc();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=Dc(n),r=false;return {async prepare(o,i){if(r)throw new Error("\u5A92\u4F53\u9884\u89C8\u6267\u884C\u5668\u5DF2\u91CA\u653E");let a=await t.acquire(i);try{return o.kind==="video"?await Bc(o,i):await Uc(o,i)}finally{a();}},dispose(){r||(r=true,t.dispose());}}}var mo="image/jpeg";function Yn(e,n){return new Blob([e],n===void 0||n===""?{}:{type:n})}function Oc(){let e=Wn(),n=0;return {async imageDimensions(t,r){let o=await e.prepare({operationId:`core-image-dimensions-${++n}`,generation:0,kind:"image",file:Yn(t,r),includePoster:false});return {width:o.width,height:o.height}},async imageThumbnail(t,r){let o=await e.prepare({operationId:`core-image-thumbnail-${++n}`,generation:0,kind:"image",file:Yn(t,r?.mimeType),...r?.maxSize===void 0?{}:{maxSize:r.maxSize},...r?.targetBytes===void 0?{}:{targetBytes:r.targetBytes},...r?.maxBytes===void 0?{}:{maxBytes:r.maxBytes},...r?.quality===void 0?{}:{quality:r.quality},...r?.minQuality===void 0?{}:{minQuality:r.minQuality}});if(o.posterData===void 0)throw new Error("\u56FE\u7247\u7F29\u7565\u56FE\u751F\u6210\u5931\u8D25\uFF1A\u6267\u884C\u5668\u672A\u8FD4\u56DE poster");return {data:new Uint8Array(o.posterData),width:o.width,height:o.height,mimeType:mo}},async videoPoster(t,r){let o=await e.prepare({operationId:`core-video-poster-${++n}`,generation:0,kind:"video",file:Yn(t,r?.mimeType),...r?.maxSize===void 0?{}:{maxSize:r.maxSize},...r?.targetBytes===void 0?{}:{targetBytes:r.targetBytes},...r?.maxBytes===void 0?{}:{maxBytes:r.maxBytes},...r?.quality===void 0?{}:{quality:r.quality},...r?.minQuality===void 0?{}:{minQuality:r.minQuality},...r?.atTime===void 0?{}:{atTime:r.atTime}});if(o.posterData===void 0)throw new Error("\u89C6\u9891\u5C01\u9762\u751F\u6210\u5931\u8D25\uFF1A\u6267\u884C\u5668\u672A\u8FD4\u56DE poster");return {data:new Uint8Array(o.posterData),width:o.width,height:o.height,duration:Math.round(o.duration??0),mimeType:mo}}}}function Nc(){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 p=n.indexOf(s);p>=0&&n.splice(p,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 Kc(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 go(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=Nc();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()):Lc(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 p=c.signal,g=[],S=[],h,l="",b=1,v,k=false,d=u=>{k||(k=true,v=u,c.abort());};function m(u,y){S[u]=y;let M=S.reduce((P,w)=>P+w,0),A=h.total;a.onProgress?.({percent:Math.min(99,Math.round(M/A*100)),bytesTransferred:M,bytesTotal:A});}async function C(u){let y=u*t,M=h===void 0?y+t-1:Math.min(y+t-1,h.total-1);return r(p,async()=>{let A=await fetch(a.url,{signal:p,cache:"no-store",headers:{Range:`bytes=${y}-${M}`}});if(u===0&&A.status===200)return n?.record("info","sdk","media","download-range-unavailable",()=>({data:{reason:"server-returned-full-response"}})),g[0]=await o(A,{...a,preferBlob:true}),"single";let P=Kc(A,y,M,h);h===void 0&&(h=P,l=A.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,{...a,preferBlob:true,onProgress:_=>m(u,_.bytesTransferred)});if(w.size!==P.end-y+1)throw new H("download-range-invalid","\u5206\u6BB5\u4E0B\u8F7D\u5B57\u8282\u6570\u4E0E Content-Range \u4E0D\u4E00\u81F4");return g[u]=w,m(u,w.size),"range"})}try{let u=await C(0);if(u==="range"){let y=Math.ceil(h.total/t),M=Array.from({length:Math.min(3,y-1)},async()=>{try{for(;!p.aborted&&b<y;)await C(b++);}catch(A){d(A);}});if(await Promise.allSettled(M),k)throw v}if(p.aborted)throw new DOMException("\u5A92\u4F53\u4E0B\u8F7D\u5DF2\u53D6\u6D88","AbortError");return u==="single"?g[0]:new Blob(g,{type:l})}catch(u){throw c.abort(),n?.record("warn","sdk","media","download-range-failed",()=>({data:{code:u instanceof H?u.code:"download-failed"}})),u}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 Gc(c);let s=await fetch(c.url,c.signal===void 0?{}:{signal:c.signal});return o(s,c)})}}function Gc(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=p=>{i||(i=true,c(),p());};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=p=>{let g=e.expectedBytes!==void 0&&Number.isFinite(e.expectedBytes)&&e.expectedBytes>0?Math.floor(e.expectedBytes):0,S=p.lengthComputable&&p.total>0?p.total:g,h=S>0?Math.min(99,Math.round(p.loaded/S*100)):0;e.onProgress?.({percent:h,bytesTransferred:p.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 p=o.response;if(n){if(!(typeof Blob<"u"&&p instanceof Blob)){s(()=>r(new Error("media download \u5931\u8D25\uFF1AXHR \u672A\u8FD4\u56DE Blob")));return}s(()=>t(p));return}if(!(p instanceof ArrayBuffer)){s(()=>r(new Error("media download \u5931\u8D25\uFF1AXHR \u672A\u8FD4\u56DE ArrayBuffer")));return}s(()=>t(new Uint8Array(p)));},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 Lc(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 h=a>0?Math.min(99,Math.round(c/a*100)):0;n({percent:h,bytesTransferred:c,bytesTotal:a}),S.enqueue(g);}})),p=new Response(s,{headers:e.headers});return r?await p.blob():new Uint8Array(await p.arrayBuffer())}var Qn="is missing ETag in UploadPart response";function Xn(e){if(typeof e!="object"||e===null)return false;let n=e;return n.name==="NoSuchUpload"||n.Code==="NoSuchUpload"}function Hc(e,n,t){return e instanceof Uint8Array?e.subarray(n,t):e.slice(n,t)}function yo(e,n){let t=new Map,r=n,o=n;function i(){if(e.onProgress===void 0)return;let a=r;for(let p of t.values())a+=p;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 ho(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 bo(e,n){let t=yo(n,0),r=ho(e.handler,t);try{await e.client.send(new e.commands.PutObjectCommand({Bucket:e.bucket,Key:e.key,Body:n.data,...e.mimeType!==void 0&&e.mimeType!==""?{ContentType:e.mimeType}:{}}),n.signal===void 0?{}:{abortSignal:n.signal});}finally{r();}}function Zn(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 et(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=Zn(e.resume,n,t.sourceBytes,r),c=new Map;if(a!==void 0)for(let m of a)c.set(m.partNumber,m);let s=a===void 0?"":e.resume.uploadId;if(s===""){let m=await n.client.send(new n.commands.CreateMultipartUploadCommand({Bucket:n.bucket,Key:n.key,...n.mimeType!==void 0&&n.mimeType!==""?{ContentType:n.mimeType}:{}}));if(m.UploadId===void 0||m.UploadId==="")throw new Error("media upload: CreateMultipartUpload \u672A\u8FD4\u56DE UploadId");s=m.UploadId,c.clear();}let p=m=>Math.min(r,t.sourceBytes-(m-1)*r),g=0;for(let m of c.keys())g+=p(m);let S=yo(t,g),h=ho(n.handler,S),l=()=>({bucket:n.bucket,key:n.key,uploadId:s,partSize:r,sourceBytes:t.sourceBytes,parts:[...c.values()].sort((m,C)=>m.partNumber-C.partNumber)});e.onResumable?.(l()),S.report();let b=new AbortController,v=()=>b.abort();t.signal?.addEventListener("abort",v,{once:true}),t.signal?.aborted&&v();let k=1;async function d(){for(;;){if(b.signal.aborted)return;let m=k;if(k+=1,m>i)return;if(c.has(m))continue;let C=(m-1)*r,u=Math.min(C+r,t.sourceBytes),y=await n.client.send(new n.commands.UploadPartCommand({Bucket:n.bucket,Key:n.key,UploadId:s,PartNumber:m,Body:Hc(t.data,C,u)}),{abortSignal:b.signal});if(y.ETag===void 0||y.ETag==="")throw new Error(`media upload: Part ${m} ${Qn}`);c.set(m,{partNumber:m,etag:y.ETag}),S.completePart(m,u-C),e.onResumable?.(l());}}try{let m;if(await Promise.allSettled(Array.from({length:Math.max(1,o)},async()=>{try{await d();}catch(C){m??={cause:C},v();}})),m!==void 0)throw m.cause;if(t.signal?.aborted)throw new DOMException("media upload canceled","AbortError");if(await n.client.send(new n.commands.CompleteMultipartUploadCommand({Bucket:n.bucket,Key:n.key,UploadId:s,MultipartUpload:{Parts:[...c.values()].sort((C,u)=>C.partNumber-u.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),h();}}async function gn(e,n){try{await e.client.send(new e.commands.AbortMultipartUploadCommand({Bucket:n.bucket,Key:n.key,UploadId:n.uploadId}));}catch(t){if(!Xn(t))throw t}}var Fc=16*1024*1024,$c=3,jc=6,Co=8;function Jc(e){return Math.ceil(e/Co)*Co}function Vc(e){if(e instanceof Uint8Array)return e.byteLength;if(typeof Blob<"u"&&e instanceof Blob)return e.size}var wo="\u5206\u7247\u4E0A\u4F20\u8981\u6C42\u8BE5 bucket \u7684 CORS \u653E\u884C POST\uFF08Create/CompleteMultipartUpload\uFF09\u3001DELETE\uFF08AbortMultipartUpload\uFF09\u5E76 ExposeHeaders: ETag";function qc(e){return e instanceof Error&&e.message.includes(Qn)}function zc(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${wo}`,{cause:t}):qc(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${wo}`,{cause:e}):e}var Wc=new Set(["upload-source-invalid","multipart-etag-missing","multipart-abort-failed"]);function Po(e,n){let t=e?.transport;if(!(t?.session===void 0||n!==void 0&&t.logicalBucket!==n))return t}var ze;function Io(){if(ze!==void 0)return ze;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 ze===n&&(ze=void 0),t});return ze=n,n}function Yc(e){if(e===void 0)return "";let n=e.lastIndexOf(".");return n>=0?e.slice(n):""}function Qc(e){return globalThis.crypto.randomUUID()+Yc(e)}function So(e,n){let t=e.keyPrefix??"";return t===""||n.startsWith(t)?n:`${t}${n}`}function Xc(e,n){let t=Ot(e.getUploadCredentials),r=0;function o(){let l=Math.min($c,Math.max(1,jc-r));r+=l;let b=false;return {queueSize:l,release(){b||(b=true,r-=l);}}}function i(l,b){if(l==="avatar")return e.avatarBucket??"";if(b==="channel"){let v=e.channelBuckets?.[l]??"";if(v!=="")return v}return e.buckets[l]??""}function a(l,b,v){let{region:k}=b;return new l.S3Client({region:k,credentials:{accessKeyId:b.accessKeyId,secretAccessKey:b.secretAccessKey,sessionToken:b.sessionToken,...b.expiresAtSeconds===void 0?{}:{expiration:new Date(b.expiresAtSeconds*1e3)}},useAccelerateEndpoint:(e.useAccelerateEndpoint??true)&&!k.toLowerCase().startsWith("cn-"),requestChecksumCalculation:"WHEN_REQUIRED",requestHandler:v})}async function c(l,b,v,k,d,m,C){let u=Jc(Fc),y=e.multipartUpload!==false&&C>u,M=y?o():{queueSize:1,release:()=>{}},A=new l.XhrHttpHandler({}),P=a(l,d,A),w={client:P,handler:A,commands:l.commands,bucket:d.bucket,key:m,...b.mimeType!==void 0&&b.mimeType!==""?{mimeType:b.mimeType}:{}},_={data:b.data,sourceBytes:C,...b.onProgress===void 0?{}:{onProgress:b.onProgress},...b.signal===void 0?{}:{signal:b.signal}},f=b.resume,I=Po(f),x=y&&I?.logicalBucket===v&&Zn(I.session,w,C,u)!==void 0,E=x?I?.session:void 0,R=U=>{E=U;let B=0;for(let F of U.parts)B+=Math.min(U.partSize,U.sourceBytes-(F.partNumber-1)*U.partSize);b.onResumable?.({bytesUploaded:B,transport:{logicalBucket:v,objectName:k,session:U}});},D;try{if(I!==void 0&&!x){delete b.resume;try{I.logicalBucket===v?await gn(w,I.session):await S(f);}catch{n?.record("warn","sdk","media","upload-resume-abandon-failed",()=>({data:{code:"multipart-abort-failed",reason:"resume-target-changed"}}));}}if(b.signal?.aborted)throw new DOMException("media upload canceled","AbortError");if(!y){await bo(w,_);return}let U=E;try{await et({target:w,content:_,partSize:u,queueSize:M.queueSize,...U===void 0?{}:{resume:U},onResumable:R});}catch(B){if(b.signal?.aborted||!Xn(B)||U===void 0)throw B;E=void 0,await et({target:w,content:_,partSize:u,queueSize:M.queueSize,onResumable:R});}}catch(U){if(b.signal?.aborted===true&&b.signal.reason!=="offline"&&E!==void 0)try{await gn(w,E);}catch(B){D=B;}throw zc(U,y,D)}finally{M.release(),P.destroy();}}async function s(l,b,v){let k=i(b,v);if(k==="")throw new H("bucket-unconfigured",`media upload: kind=${b} \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=Vc(l.data);if(d===void 0)throw new H("upload-source-invalid","media upload: \u4E0A\u4F20\u5185\u5BB9\u5FC5\u987B\u662F Uint8Array \u6216 Blob");let m=await Io(),C=Po(l.resume,k)?.objectName??Qc(l.filename),u={...l,onResumable:A=>{u.resume=A,l.onResumable?.(A);}},y=await t.resolve(k),M=So(y,C);try{await c(m,u,k,C,y,M,d);}catch(A){if(l.signal?.aborted||A instanceof H&&Wc.has(A.code))throw A;y=await t.resolve(k,{forceRefresh:true}),M=So(y,C),await c(m,u,k,C,y,M,d);}if(l.signal?.aborted)throw new DOMException("media upload canceled","AbortError");return l.onProgress?.({percent:100,bytesTransferred:d,bytesTotal:d,phase:"finalizing"}),{url:`${y.dnsPoint}/${M}`}}function p(l){return s(l,l.kind,l.conversationType)}function g(l){return s(l,"avatar")}async function S(l){let b=l.transport;if(b?.session===void 0||b.session.uploadId==="")return;let v=await Io(),k=await t.resolve(b.logicalBucket),d=new v.XhrHttpHandler({}),m=a(v,k,d);try{await gn({client:m,commands:v.commands},b.session);}finally{m.destroy();}}let h=go(e.rangeDownload!==false,n);return {upload:p,uploadAvatar:g,download:h,abandonUpload:S}}function Zc(){let e=globalThis;return typeof e.addEventListener=="function"&&typeof e.removeEventListener=="function"?e:void 0}function ed(e,n={}){let t=n.target!==void 0?n.target:Zc(),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?.();},p=()=>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",p),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",p),o.removeEventListener("pageshow",g)));},get running(){return i}}}var rd=12,od=2*1024*1024*1024,vo=1024*1024*1024,id=512*1024*1024,ad=256*1024*1024,sd=64*1024,nt="channel:list-version",Mo="schema:conversation-key-v1",tt="default",Ce="\uFFFF";function _o(e){if(!(e===void 0||!/^\d+$/.test(e)))return e.replace(/^0+(?=\d)/,"")}function cd(e,n){let t=_o(e),r=_o(n);return t===void 0?r===void 0?0:-1:r===void 0?1:t.length!==r.length?t.length>r.length?1:-1:t===r?0:t>r?1:-1}function We(e){return `conversation:${ya$1(e)}`}function rt(e,n){return `${ya$1(e)}\0${n}`}function dd(e){let n=ya$1(e.conversation);return {...e,key:rt(e.conversation,e.messageId),conversationKey:n,conversation:{...e.conversation},sContent:e.sContent.slice()}}function ld(e){let{key:n,conversationKey:t,...r}=e;return {...r,conversation:{...r.conversation},sContent:r.sContent.slice()}}function Eo(e){return {...e,conversationKey:ya$1(va$1(e))}}function we(e){let{conversationKey:n,...t}=e;return t}function yn(e){return {...e,id:ya$1(wa$1(e)),conversationId:e.id}}function ot(e){if(e.conversationId===void 0)return e;let{conversationId:n,...t}=e;return {...t,id:n}}function it(e){return e.conversationType===void 0?e:{...e,conversationId:ya$1(e),storageConversationId:e.conversationId}}function Ao(e){if(e.storageConversationId===void 0)return e;let{storageConversationId:n,...t}=e;return {...t,conversationId:n}}function ko(e){return {...e,conversationId:ya$1(xa$1(e)),storageConversationId:e.conversationId}}function at(e){if(e.storageConversationId===void 0)return e;let{storageConversationId:n,...t}=e;return {...t,conversationId:n}}function ud(e){return {...e,conversationKey:ya$1(e.ref)}}function pd(e){let{conversationKey:n,...t}=e;return t}function fd(e){return typeof e=="string"?e:e.conversationId}function Ye(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 md(e){let n=e.transaction(["messages","sessions","readStates","pinnedMessages","meta"],"readwrite");try{let t=n.objectStore("meta");if((await t.get(Mo))?.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(Eo(s));let o=n.objectStore("sessions"),i=new Map;for(let s of await o.getAll()){if(s.conversationId!==void 0)continue;let p=ot(s);i.set(p.id,p.type),await o.put(yn(p)),await o.delete(s.id);}let a=n.objectStore("readStates");for(let s of await a.getAll()){if(s.storageConversationId!==void 0)continue;let p=s.conversationType??i.get(s.conversationId);if(p===void 0)continue;let g={...s,conversationType:p};await a.put(it(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 p=at(s);await c.put(ko(p)),await c.delete(s.conversationId);}await t.put({key:Mo,value:!0}),await n.done;}catch(t){try{n.abort();}catch{}try{await n.done;}catch{}throw t}}function xo(e){return `${e.kind}:${encodeURIComponent(e.messageId)}:${e.resourceVersion}`}async function gd(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??ad;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 p(d){if(typeof d!="string")return;let m=IDBKeyRange.bound([d,""],[d,Ce]),C=(await s().transaction("messages").store.index("by_conv_sort").getAll(m)).map(we);Ye(d,C);}function g(d){let m=i.then(d,d);return i=m.then(()=>{},()=>{}),m}function S(d,m){if(d!==o||m===null||m!==r)throw new Error("\u5A92\u4F53\u8D44\u4EA7\u7F13\u5B58\u8D26\u53F7\u4EE3\u9645\u5DF2\u5931\u6548")}function h(){return Math.max(0,Math.floor(e.mediaAssetCache?.now?.()??Date.now()))}async function l(d){let m=e.mediaAssetCache?.estimateStorage??(async()=>typeof navigator>"u"||navigator.storage?.estimate===void 0?{}:await navigator.storage.estimate());try{let{quota:C,usage:u}=await m();if(C===void 0||!Number.isFinite(C)||C<=0)return vo;let y=d.reduce((P,w)=>P+w.byteLength,0),M=Math.max(0,(u??0)-y),A=Math.max(id,Math.floor(C*.2));return Math.max(0,Math.min(od,Math.floor(C-M-A)))}catch{return vo}}async function b(d,m,C){if(d.length===0)return;S(m,C);let u=s().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all(d.flatMap(y=>[u.objectStore("mediaAssets").delete(y),u.objectStore("mediaAssetMeta").delete(y)])),await u.done;}async function v(d,m,C,u){S(d,m);let y=s(),M=e.mediaAssetCache?.strategies;if(M===void 0)return;let A=u??await y.getAll("mediaAssetMeta");S(d,m);let P=new Set;for(let I of M.list()){let x=A.filter(D=>D.kind===I.kind).sort((D,U)=>D.lastAccessedAt-U.lastAccessedAt),E=x.reduce((D,U)=>D+U.byteLength,0),R=x.length;for(let D of x){if(E<=I.softMaxBytes&&R<=I.maxEntries)break;P.add(D.key),E-=D.byteLength,R-=1;}}let w=A.filter(I=>!P.has(I.key)).sort((I,x)=>I.lastAccessedAt-x.lastAccessedAt),_=Math.max(0,Math.min(await l(A),C??Number.POSITIVE_INFINITY)),f=w.reduce((I,x)=>I+x.byteLength,0);for(let I of w){if(f<=_)break;P.add(I.key),f-=I.byteLength;}await b([...P],d,m);}async function k(d,m,C){S(m,C);let u=e.mediaAssetCache?.strategies.resolve(d.kind);if(u===void 0)return "skipped";let y=d.bytes,M=await s().getAll("mediaAssetMeta"),A=await l(M);if(S(m,C),y.byteLength===0||y.byteLength>u.maxEntryBytes||A<=0||y.byteLength>Math.floor(A/2))return "skipped";let P=xo(d),w=h(),_=M.find(R=>R.key===P),f={key:P,kind:d.kind,messageId:d.messageId,resourceVersion:d.resourceVersion,byteLength:y.byteLength,...d.mimeType===void 0?{}:{mimeType:d.mimeType},createdAt:_?.createdAt??w,lastAccessedAt:w},I=async()=>{S(m,C);let R=s().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all([R.objectStore("mediaAssets").put({key:P,bytes:y}),R.objectStore("mediaAssetMeta").put(f)]),await R.done;},x=false;try{await I();}catch(R){if(!(R instanceof DOMException)||R.name!=="QuotaExceededError")throw R;x=true,await v(m,C,Math.max(0,A-y.byteLength)),await I();}let E=_===void 0?[...M,f]:M.map(R=>R.key===P?f:R);return await v(m,C,void 0,x?void 0:E),S(m,C),await s().get("mediaAssets",P)===void 0?"skipped":"stored"}return {async open({namespace:d}){if(t!==null&&r===d)return;t!==null&&(t.close(),t=null),r=d;let m=++o,C=n.forAccount(d).name("durable","storage","indexed-db"),u=await openDB(C,rd,{upgrade(y,M,A,P){if(y.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=y.createObjectStore("messages",{keyPath:"id"});w.createIndex("by_conv_sort",["conversationId","sortKey"]),w.createIndex("by_conversation_key_sort",["conversationKey","sortKey"]);}if(y.objectStoreNames.contains("sessions")||y.createObjectStore("sessions",{keyPath:"id"}),y.objectStoreNames.contains("readStates")||y.createObjectStore("readStates",{keyPath:"conversationId"}),y.objectStoreNames.contains("drafts")||y.createObjectStore("drafts",{keyPath:"conversationKey"}),y.objectStoreNames.contains("outbox")||y.createObjectStore("outbox",{keyPath:"id"}),y.objectStoreNames.contains("meta")||y.createObjectStore("meta",{keyPath:"key"}),y.objectStoreNames.contains("userProfiles")||y.createObjectStore("userProfiles",{keyPath:"id"}),y.objectStoreNames.contains("groupMembers")||y.createObjectStore("groupMembers",{keyPath:"groupId"}),y.objectStoreNames.contains("groupProfiles")||y.createObjectStore("groupProfiles",{keyPath:"id"}),y.objectStoreNames.contains("pinnedMessages")||y.createObjectStore("pinnedMessages",{keyPath:"conversationId"}),y.objectStoreNames.contains("channelProfiles")||y.createObjectStore("channelProfiles",{keyPath:"id"}),y.objectStoreNames.contains("channelMembers")||y.createObjectStore("channelMembers",{keyPath:["channelId","userId"]}),y.objectStoreNames.contains("channelMemberSnapshots")||y.createObjectStore("channelMemberSnapshots",{keyPath:"channelId"}),y.objectStoreNames.contains("channelMentionCandidateSnapshots")||y.createObjectStore("channelMentionCandidateSnapshots",{keyPath:"channelId"}),y.objectStoreNames.contains("conversationBackgrounds")||y.createObjectStore("conversationBackgrounds",{keyPath:"key"}),y.objectStoreNames.contains("mediaAssets")||y.createObjectStore("mediaAssets",{keyPath:"key"}),!y.objectStoreNames.contains("mediaAssetMeta")){let w=y.createObjectStore("mediaAssetMeta",{keyPath:"key"});w.createIndex("by_kind_access",["kind","lastAccessedAt"]),w.createIndex("by_access","lastAccessedAt");}y.objectStoreNames.contains("decryptRecoveries")||y.createObjectStore("decryptRecoveries",{keyPath:"key"}).createIndex("by_conversation","conversationKey");}});if(m!==o){u.close();return}try{await md(u);}catch(y){throw u.close(),y}if(m!==o){u.close();return}t=u;},async close(){o+=1,r=null,t!==null&&(t.close(),t=null);},async clearRebuildableCaches(){let d=o,m=r;await g(async()=>{S(d,m);let u=s().transaction(["userProfiles","groupMembers","groupProfiles","channelProfiles","channelMembers","channelMemberSnapshots","channelMentionCandidateSnapshots","mediaAssets","mediaAssetMeta","meta"],"readwrite");await Promise.all([u.objectStore("userProfiles").clear(),u.objectStore("groupMembers").clear(),u.objectStore("groupProfiles").clear(),u.objectStore("channelProfiles").clear(),u.objectStore("channelMembers").clear(),u.objectStore("channelMemberSnapshots").clear(),u.objectStore("channelMentionCandidateSnapshots").clear(),u.objectStore("mediaAssets").clear(),u.objectStore("mediaAssetMeta").clear(),u.objectStore("meta").delete(nt),u.done]);});},async get(d){let m=o,C=r;return await g(async()=>{if(S(m,C),e.mediaAssetCache?.strategies.resolve(d.kind)===void 0)return null;let u=xo(d),y=s(),[M,A]=await Promise.all([y.get("mediaAssets",u),y.get("mediaAssetMeta",u)]);return S(m,C),M===void 0||A===void 0?(await b([u],m,C),null):(await y.put("mediaAssetMeta",{...A,lastAccessedAt:h()}),{kind:A.kind,messageId:A.messageId,resourceVersion:A.resourceVersion,bytes:M.bytes,...A.mimeType===void 0?{}:{mimeType:A.mimeType}})})},async put(d){let m=o,C=r;S(m,C);let u=d.bytes.byteLength;if(u>c||a+u>c)return "skipped";a+=u;try{return await g(()=>k(d,m,C))}finally{a=Math.max(0,a-u);}},async clear(){let d=o,m=r;await g(async()=>{S(d,m);let C=s().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all([C.objectStore("mediaAssets").clear(),C.objectStore("mediaAssetMeta").clear(),C.done]);});},async getMessage(d,m){let C=await s().get("messages",m);if(C===void 0)return null;let u=we(C);return ya$1(va$1(u))===ya$1(d)?u:null},async getMessages(d,m){let C=typeof d=="string"?"by_conv_sort":"by_conversation_key_sort",u=typeof d=="string"?d:ya$1(d);if(await p(d),m.beforeSortKey===void 0&&m.afterSortKey!==void 0){let P=IDBKeyRange.bound([u,m.afterSortKey],[u,Ce]),w=[],_=await s().transaction("messages").store.index(C).openCursor(P,"next");for(;_!==null&&w.length<m.limit;)w.push(_.value),_=await _.continue();return w.map(we)}let y=m.beforeSortKey===void 0?IDBKeyRange.bound([u,""],[u,Ce]):IDBKeyRange.bound([u,""],[u,m.beforeSortKey],false,true),M=[],A=await s().transaction("messages").store.index(C).openCursor(y,"prev");for(;A!==null&&M.length<m.limit;)M.push(A.value),A=await A.continue();return M.reverse().map(we)},async saveMessages(d){if(d.length===0)return;let m=s().transaction("messages","readwrite");await Promise.all([...d.map(C=>m.store.put(Eo(C))),m.done]);},async searchMessages(d,m){let C=ya$1(d),u=m.keyword?.trim()??"",y=m.contentTypes;if(u===""&&(y===void 0||y.length===0))return {items:[],exhausted:true};let M=u===""?void 0:await Z$1(u),A=m.beforeSortKey===void 0?IDBKeyRange.bound([C,""],[C,Ce]):IDBKeyRange.bound([C,""],[C,m.beforeSortKey],false,true),P=2e3,w=[],_=0,f,I=await s().transaction("messages").store.index("by_conversation_key_sort").openCursor(A,"prev");for(;I!==null&&w.length<m.limit&&_<P;){let E=ba$1(we(I.value));_+=1,f=E.sortKey;let R=y===void 0||y.includes(E.contentType),D=M===void 0||M.match(X$1(E))!==null;R&&D&&w.push(E),I=await I.continue();}let x=I===null;return {items:w,exhausted:x,...x?{}:{nextBeforeSortKey:f}}},async getDecryptRecoveries(d){let m=ya$1(d);return (await s().getAllFromIndex("decryptRecoveries","by_conversation",m)).map(ld)},async saveDecryptRecovery(d){if(d.sContent.byteLength===0||d.sContent.byteLength>sd)throw new Error(`\u89E3\u5BC6\u6062\u590D\u5BC6\u6587\u5B57\u8282\u957F\u5EA6\u975E\u6CD5\uFF1A${d.sContent.byteLength}`);await s().put("decryptRecoveries",dd(d));},async deleteDecryptRecovery(d,m){await s().delete("decryptRecoveries",rt(d,m));},async deleteConversationDecryptRecoveries(d){let m=ya$1(d),C=s().transaction("decryptRecoveries","readwrite"),u=await C.store.index("by_conversation").openCursor(IDBKeyRange.only(m));for(;u!==null;)await u.delete(),u=await u.continue();await C.done;},async getSessions(){return (await s().getAll("sessions")).map(ot)},async saveSessions(d){if(d.length===0)return;let m=s().transaction("sessions","readwrite");for(let C of d)await m.store.put(yn(C)),await m.store.delete(C.id);await m.done;},async deleteSession(d){if(typeof d!="string"){let u=s().transaction(["sessions","conversationBackgrounds"],"readwrite");await u.objectStore("sessions").delete(ya$1(d)),await u.objectStore("conversationBackgrounds").delete(We(d)),await u.done;return}let m=(await s().getAll("sessions")).map(ot).filter(u=>u.id===d);Ye(d,m.map(u=>({conversationType:u.type})));let C=s().transaction(["sessions","conversationBackgrounds"],"readwrite");if(m[0]!==void 0){let u=wa$1(m[0]);await C.objectStore("sessions").delete(ya$1(u)),await C.objectStore("conversationBackgrounds").delete(We(u));}await C.objectStore("sessions").delete(d),await C.done;},async deleteReadState(d){if(typeof d!="string"){await s().delete("readStates",ya$1(d));return}let C=(await s().getAll("readStates")).map(Ao).filter(u=>u.conversationId===d).filter(u=>u.conversationType!==void 0);Ye(d,C),C[0]!==void 0&&await s().delete("readStates",ya$1(C[0])),await s().delete("readStates",d);},async deleteMessage(d,m,C){let u=s().transaction(["messages","sessions","decryptRecoveries"],"readwrite"),y=await u.objectStore("messages").get(m);if(y!==void 0){let M=we(y);if(M.conversationType!==d.conversationType||M.conversationId!==d.conversationId)return await u.done,false;await u.objectStore("messages").delete(m);}return await u.objectStore("decryptRecoveries").delete(rt(d,m)),C!==void 0&&await u.objectStore("sessions").put(yn(C)),await u.done,y!==void 0},async deleteConversationMessages(d){let m=fd(d),C=typeof d=="string"?"by_conv_sort":"by_conversation_key_sort",u=typeof d=="string"?d:ya$1(d),y=IDBKeyRange.bound([u,""],[u,Ce]),M=s().transaction(["messages","decryptRecoveries"],"readwrite"),A=M.objectStore("messages"),P=M.objectStore("decryptRecoveries"),w=[];if(typeof d=="string"){let f=(await A.index("by_conv_sort").getAll(y)).map(we);w=(await P.getAll()).filter(I=>I.conversation.conversationId===d),Ye(m,[...f,...w.map(I=>({conversationType:I.conversation.conversationType}))]);}let _=await A.index(C).openCursor(y);for(;_!==null;)await _.delete(),_=await _.continue();if(typeof d=="string")for(let f of w)await P.delete(f.key);else {let f=await P.index("by_conversation").openCursor(IDBKeyRange.only(ya$1(d)));for(;f!==null;)await f.delete(),f=await f.continue();}await M.done;},async clearConversationHistory(d,m,C){let u=ya$1(d),y=IDBKeyRange.bound([u,""],[u,Ce]),M=s().transaction(["messages","sessions","readStates","decryptRecoveries"],"readwrite"),A=await M.objectStore("messages").index("by_conversation_key_sort").openCursor(y);for(;A!==null;)await A.delete(),A=await A.continue();let P=await M.objectStore("decryptRecoveries").index("by_conversation").openCursor(IDBKeyRange.only(u));for(;P!==null;)await P.delete(),P=await P.continue();m!==void 0&&await M.objectStore("sessions").put(yn(m)),C!==void 0&&(await M.objectStore("readStates").put(it(C)),await M.objectStore("readStates").delete(C.conversationId)),await M.done;},async getReadStates(){return (await s().getAll("readStates")).map(Ao)},async saveReadState(d){let m=s().transaction("readStates","readwrite");await m.store.put(it(d)),d.conversationType!==void 0&&await m.store.delete(d.conversationId),await m.done;},async getDrafts(){return (await s().getAll("drafts")).map(pd)},async saveDraft(d){await s().put("drafts",ud(d));},async deleteDraft(d){await s().delete("drafts",ya$1(d));},async getConversationBackground(d){return (await s().get("conversationBackgrounds",We(d)))?.background??null},async saveConversationBackground(d,m){let C=We(d);await s().put("conversationBackgrounds",{key:C,background:m});},async deleteConversationBackground(d){await s().delete("conversationBackgrounds",We(d));},async getDefaultConversationBackground(){return (await s().get("conversationBackgrounds",tt))?.background??null},async saveDefaultConversationBackground(d){await s().put("conversationBackgrounds",{key:tt,background:d});},async deleteDefaultConversationBackground(){await s().delete("conversationBackgrounds",tt);},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(at)},async savePinnedMessage(d){let m=s().transaction("pinnedMessages","readwrite");await m.store.put(ko(d)),await m.store.delete(d.conversationId),await m.done;},async removePinnedMessage(d){if(typeof d!="string"){await s().delete("pinnedMessages",ya$1(d));return}let m=(await s().getAll("pinnedMessages")).map(at).filter(C=>C.conversationId===d);Ye(d,m),m[0]!==void 0&&await s().delete("pinnedMessages",ya$1(xa$1(m[0]))),await s().delete("pinnedMessages",d);},async getMeta(d){let m=await s().get("meta",d);return m===void 0?null:m.value},async setMeta(d,m){await s().put("meta",{key:d,value:m});},async getUserProfile(d){return await s().get("userProfiles",d)??null},async saveUserProfile(d){await s().put("userProfiles",d);},async getGroupMembers(d){return await s().get("groupMembers",d)??null},async saveGroupMembers(d){await s().put("groupMembers",d);},async getGroupProfile(d){return await s().get("groupProfiles",d)??null},async saveGroupProfile(d){await s().put("groupProfiles",d);},async getChannelProfile(d){return await s().get("channelProfiles",d)??null},async getChannelProfiles(){return s().getAll("channelProfiles")},async saveChannelProfiles(d){if(d.length===0)return;let m=s().transaction("channelProfiles","readwrite");await Promise.all([...d.map(C=>m.store.put(C)),m.done]);},async getChannelListVersion(){let d=await s().get("meta",nt);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:nt,value:d});},async getChannelMembers(d,m){if(m.length===0)return [];let C=s().transaction("channelMembers"),u=await Promise.all(m.map(y=>C.store.get([d,y])));return await C.done,u.filter(y=>y!==void 0)},async saveChannelMembers(d){if(d.length===0)return;let m=s().transaction("channelMembers","readwrite");for(let C of d){let u=await m.store.get([C.channelId,C.userId]);u!==void 0&&cd(C.updateVersion,u.updateVersion)<0||await m.store.put(C);}await m.done;},async deleteChannelMembers(d){let m=IDBKeyRange.bound([d,""],[d,Ce]),C=s().transaction("channelMembers","readwrite"),u=await C.store.openCursor(m);for(;u!==null;)await u.delete(),u=await u.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 hd(e={}){let n=e.createSocket??(l=>new globalThis.WebSocket(l)),t=e.connectTimeoutMs??1e4,r={open:new Set,message:new Set,close:new Set,error:new Set},o,i,a="idle",c;function s(l,b){for(let v of [...r[l]])v(b);}function p(){c!==void 0&&(clearTimeout(c),c=void 0);}function g(l,b){b!==void 0&&(l.removeEventListener("open",b.onOpen),l.removeEventListener("message",b.onMessage),l.removeEventListener("error",b.onError),l.removeEventListener("close",b.onClose));}function S(){if(p(),o!==void 0){g(o,i);try{o.close(1e3);}catch{}o=void 0;}i=void 0;}function h(l,b,v){let k={onOpen:()=>{l===o&&(p(),a="open",s("open",{endpoint:b}));},onMessage:d=>{if(l!==o)return;let m=d?.data;if(m instanceof ArrayBuffer){s("message",{data:m});return}s("error",{error:new Error(`WsTransport\uFF1A\u6536\u5230\u975E ArrayBuffer \u6D88\u606F\uFF08${typeof m}\uFF09\uFF0C\u5DF2\u5FFD\u7565`)});},onError:d=>{l===o&&s("error",{error:new Error(`WsTransport\uFF1AWebSocket error \u4E8B\u4EF6\uFF08${d instanceof Event?d.type:typeof d}\uFF09`)});},onClose:d=>{l===o&&(p(),g(l,k),o=void 0,i=void 0,a="closed",s("close",{code:d?.code??1006,reason:d?.reason??"",wasClean:d?.wasClean??false}));}};if(i=k,l.addEventListener("open",k.onOpen),l.addEventListener("message",k.onMessage),l.addEventListener("error",k.onError),l.addEventListener("close",k.onClose),v>0){let d=setTimeout(()=>{if(!(l!==o||a!=="connecting")){s("error",{error:new Error(`WsTransport\uFF1A\u8FDE\u63A5\u8D85\u65F6\uFF08${v}ms \u672A open\uFF09`)});try{l.close();}catch{}}},v);d.unref?.(),c=d;}}return {get state(){return a},async connect(l,b){let v=l[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 k;try{k=n(v.url);}catch(d){throw a="closed",d}k.binaryType="arraybuffer",o=k,h(k,v,b?.connectTimeoutMs??t);},async send(l){if(o===void 0||a!=="open")throw new Error(`WsTransport.send\uFF1A\u8FDE\u63A5\u672A\u5C31\u7EEA\uFF08state=${a}\uFF09\uFF0C\u62D2\u7EDD\u53D1\u9001`);o.send(l);},async close(l=1e3,b){p(),o!==void 0&&(a==="connecting"||a==="open")&&(a="closing",o.close(l,b));},on(l,b){return r[l].add(b),()=>{r[l].delete(b);}}}}
|
|
7
|
-
export{vs as $,Yo as $a,Ro as A,tc as Aa,qa as B,rc as Ba,Wa as C,oc as Ca,Ya as D,ic as Da,Qa as E,ac as Ea,Xa as F,sc as Fa,Za as G,lc as Ga,es as H,uc as Ha,ns as I,pc as Ia,ts as J,fc as Ja,rs as K,mc as Ka,os as L,gc as La,is as M,pn as Ma,as as N,fe as Na,ss as O,Tc as Oa,cs as P,Wn as Pa,ls as Q,Oc as Qa,ps as R,H as Ra,ln as S,Do as Sa,un as T,Bt as Ta,fs as U,Xc as Ua,ys as V,ed as Va,hs as W,gd as Wa,bs as X,yd as Xa,Cs as Y,hd as Ya,Ps as Z,Go as Za,Is as _,Xe as _a,ci as a,Ms as aa,si as ab,Be as b,_s as ba,q as c,As as ca,wi as d,Es as da,Ii as e,Ts as ea,Oe as f,Rs as fa,Si as g,Ds as ga,Bi as h,Us as ha,Se as i,Bs as ia,W as j,Ns as ja,Ji as k,Ve as ka,Vi as l,Gs as la,Le as m,Ls as ma,ie as n,Hs as na,ra as o,Fs as oa,He as p,$s as pa,Q as q,js as qa,ba as r,Js as ra,Ma as s,Vs as sa,Ea as t,qs as ta,ka as u,Ys as ua,Ba as v,Qs as va,_e as w,Xs as wa,$ as x,Zs as xa,ye as y,io as ya,Fa as z,ao as za};
|