k2-im 0.1.34 → 0.1.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.js +1 -1
- package/dist/chat-kit-pinia.js +1 -1
- package/dist/chat-kit-vue.js +1 -1
- package/dist/chat-kit.js +1 -1
- package/dist/{chunk-PJ2PW42T.js → chunk-6OC4FEH7.js} +2 -2
- package/dist/{chunk-YEXLMW5J.js → chunk-BIE4T7BJ.js} +1 -1
- package/dist/chunk-DHHXLOOH.js +2 -0
- package/dist/{chunk-IEFK5A7T.js → chunk-EBZORU2A.js} +2 -2
- package/dist/{chunk-4HJR3NAM.js → chunk-PEI5RIM7.js} +1 -1
- package/dist/{chunk-QK3UXZKZ.js → chunk-SP6V2AFT.js} +1 -1
- package/dist/{chunk-QDQNYCIH.js → chunk-WYYUGVXE.js} +1 -1
- package/dist/i18n.js +1 -1
- package/dist/index.js +1 -1
- package/dist/sdk.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-WQBCUQ6Q.js +0 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {wa as wa$1,G,J as J$1,f,g,i,Y as Y$1,Z,aa as aa$1,ba as ba$1,W as W$1,X as X$1,L as L$1,M,F as F$1,I,m,e,K as K$1,H as H$1,N,P,R,Q as Q$1,S,T,U,V as V$1,ia as ia$1,ja as ja$1,xb,Ha as Ha$1,Ga as Ga$1,Fa as Fa$1,ga as ga$1,ka as ka$1,ea as ea$1,Ea as Ea$1,_,$,l,s,Ca as Ca$1,Ba as Ba$1,ca as ca$1,da as da$1}from'./chunk-PJ2PW42T.js';import*as W from'node-forge';import W__default from'node-forge';import {deleteDB,openDB}from'idb';import {createSHA256}from'hash-wasm';function Li(e,n=async t=>{let{createBrowserApiProtocolClient:r}=await import('./browser-YLMJKRLM.js');return r(t)}){let t=null;function r(){if(t!==null)return t;let o=n(e);return t=o,o.catch(()=>{t===o&&(t=null);}),o}return async(o,i)=>(await r())(o,i)}function tt(){return typeof navigator<"u"&&typeof ClipboardItem=="function"&&typeof navigator.clipboard?.write=="function"}function ee(e){if(!e.isCurrent())throw new DOMException("Image copy is no longer active","AbortError")}async function nt(e,n){if(ee(n),e.size===0)throw new Error("Empty clipboard image");let t=URL.createObjectURL(e),r=new Image,o;try{if(await new Promise((s,d)=>{r.onload=()=>s(),r.onerror=()=>d(new Error("Clipboard image decode failed")),r.src=t;}),ee(n),r.naturalWidth<=0||r.naturalHeight<=0)throw new Error("Invalid clipboard image dimensions");if(e.type==="image/png")return e;if(r.naturalWidth*r.naturalHeight>16777216)throw new Error("Clipboard image exceeds canvas pixel limit");o=document.createElement("canvas"),o.width=r.naturalWidth,o.height=r.naturalHeight;let i=o.getContext("2d");if(i===null)throw new Error("Clipboard canvas unavailable");i.drawImage(r,0,0);let a=await new Promise((s,d)=>{o.toBlob(c=>c===null?d(new Error("Clipboard PNG encoding failed")):s(c),"image/png");});return ee(n),a}finally{r.onload=null,r.onerror=null,r.src="",URL.revokeObjectURL(t),o!==void 0&&(o.width=o.height=0);}}async function Hi(e,n){if(n!==void 0&&n!==""){ee(e);let s=false,d={...e,isCurrent:()=>!s&&e.isCurrent()};try{if(!tt())throw new Error("Image Clipboard API unavailable");let c=(async()=>nt(await e.loadOriginal(),d))();return c.catch(()=>{}),await navigator.clipboard.write([new ClipboardItem({"image/png":c,"text/plain":new Blob([n],{type:"text/plain"})})]),ee(e),"original"}catch{return s=true,ee(e),await navigator.clipboard.writeText(n),ee(e),"text"}finally{s=true;}}if(!tt())throw new Error("Image Clipboard API unavailable");ee(e);let t=false,r={...e,isCurrent:()=>!t&&e.isCurrent()},o={quality:"original"},i=async()=>(ee(r),o.quality="thumbnail",nt(await e.loadThumbnail(),r)),a=(async()=>{try{return await nt(await e.loadOriginal(),r)}catch(s){ee(r);try{return await i()}catch(d){throw ee(r),new AggregateError([s,d],"Original and thumbnail copy failed")}}})();a.catch(()=>{});try{try{await navigator.clipboard.write([new ClipboardItem({"image/png":a})]);}catch(s){if(ee(r),typeof s=="object"&&s!==null&&"name"in s&&(s.name==="NotAllowedError"||s.name==="SecurityError")||(await a,ee(r),o.quality==="thumbnail"))throw s;let d=i();d.catch(()=>{}),await navigator.clipboard.write([new ClipboardItem({"image/png":d})]);}return ee(r),o.quality}finally{t=true;}}var K=class extends Error{code;constructor(n,t,r){super(t??n,r),this.name="MediaTransferError",this.code=n;}};function Fi(e){return e instanceof K?e.code:void 0}function Te(e){if(e instanceof K)return e.code==="upload-timeout"?"timeout":e.code!=="multipart-upload-failed"?void 0:Te(e.cause);if(!(e instanceof Error))return;let n=e;if(["ExpiredToken","ExpiredTokenException","RequestExpired","TokenRefreshRequired"].includes(n.Code??n.name))return "credentials-expired";let t=n.$metadata?.httpStatusCode;if(t===429||t!==void 0&&t>=500&&t<=599||n.message.startsWith("XHR_HTTP_HANDLER_ERROR:")||n.name==="NetworkError")return "network"}var $i=3600*1e3,ji=300*1e3;function be(...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 qi(e){let n=Number(e);if(!(!Number.isFinite(n)||n<=0))return n>1e12?n/1e3:n}function Ji(e){let n=e.replace(/\/+$/,"");return n===""?"":/^https?:\/\//i.test(n)?n:`https://${n}`}function kr(e){if(e===null||typeof e!="object")throw new K("credentials-invalid","S3 \u4E0A\u4F20\u51ED\u8BC1\u683C\u5F0F\u65E0\u6548\uFF1A\u56DE\u5305\u4E0D\u662F\u5BF9\u8C61");let n=e,t=be(n.access_key_id,n.accessKeyId),r=be(n.secret_key,n.secretKey,n.secretAccessKey),o=be(n.session_token,n.sessionToken).replace(/\s+/g,""),i=be(n.bucket),a=be(n.region),s=Ji(be(n.dns_point,n.dnsPoint)),d=[t===""?"access_key_id":"",r===""?"secret_key":"",o===""?"session_token":"",i===""?"bucket":"",a===""?"region":"",s===""?"dns_point":""].filter(h=>h!=="");if(d.length>0)throw new K("credentials-invalid",`S3 \u4E0A\u4F20\u51ED\u8BC1\u683C\u5F0F\u65E0\u6548\uFF1A\u7F3A\u5C11 ${d.join("\u3001")}`);let c=qi(n.expiration??n.expiresAtSeconds),m=be(n.key_prefix,n.keyPrefix),w=be(n.identity_id,n.identityId);return {accessKeyId:t,secretAccessKey:r,sessionToken:o,bucket:i,region:a,dnsPoint:s,...c===void 0?{}:{expiresAtSeconds:c},...m===""?{}:{keyPrefix:m},...w===""?{}:{identityId:w}}}function Vi(e,n){if(n-e.fetchedAtMs>=$i)return false;let{expiresAtSeconds:t}=e.credential;return t===void 0?true:t*1e3-ji>n}function Tr(e){let n=new Map,t=new Map;async function r(o,i){let a;try{a=await e({bucket:o,forceRefresh:i});}catch(d){let c=d instanceof Error?d.message:String(d);throw new K("credentials-request-failed",`S3 \u4E0A\u4F20\u51ED\u8BC1\u83B7\u53D6\u5931\u8D25\uFF1Abucket=${o}\uFF1B\u539F\u56E0\uFF1A${c}`,{cause:d})}let s=kr(a);return n.set(o,{credential:s,fetchedAtMs:Date.now()}),s}return {resolve(o,i){if(e===void 0)return Promise.reject(new K("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,s=a?void 0:n.get(o);if(s!==void 0&&Vi(s,Date.now()))return Promise.resolve(s.credential);n.delete(o);let d=t.get(o);if(d!==void 0)return d;let c=r(o,a).finally(()=>{t.get(o)===c&&t.delete(o);});return t.set(o,c),c}}}function zi(){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 H=class extends Error{code;constructor(n,t,r){super(t??n,r),this.name="VoiceError",this.code=n;}};function Pn(e){return e instanceof H?e.code:void 0}function Dr(e){switch(e instanceof DOMException||e instanceof Error?e.name:""){case "NotAllowedError":case "SecurityError":case "PermissionDeniedError":return new H("permission-denied","\u9EA6\u514B\u98CE\u6743\u9650\u88AB\u62D2\u7EDD",{cause:e});case "NotFoundError":case "DevicesNotFoundError":return new H("device-not-found","\u672A\u627E\u5230\u53EF\u7528\u9EA6\u514B\u98CE",{cause:e});case "NotReadableError":case "TrackStartError":case "AbortError":return new H("device-busy","\u9EA6\u514B\u98CE\u88AB\u5360\u7528\u6216\u542F\u52A8\u5931\u8D25",{cause:e});default:return new H("device-busy",e instanceof Error?e.message:"\u9EA6\u514B\u98CE\u542F\u52A8\u5931\u8D25",{cause:e})}}var se=16e3,Wi=new URL("./speex-runtime.txt",import.meta.url).href,rt=null,Yi=15e3;async function Qi(){document.querySelector('script[data-speex-runtime="true"]')?.remove();let e=new AbortController,n=setTimeout(()=>e.abort(new Error("Speex runtime fetch timeout")),Yi),t;try{t=await fetch(Wi,{signal:e.signal});}finally{clearTimeout(n);}if(!t.ok)throw new Error(`Speex runtime fetch failed: ${t.status}`);let r=await t.text();if(r.trimStart().startsWith("<"))throw new Error("Speex runtime fetch returned HTML instead of script");let o=document.createElement("script");o.dataset.speexRuntime="true",o.text=r,document.head.appendChild(o);}async function ot(){let e=typeof window>"u"?void 0:window;return e?.__speexInH5!==void 0?e.__speexInH5:(rt??=(async()=>{if(e===void 0||typeof document>"u")throw new H("codec-unavailable","Speex \u8FD0\u884C\u65F6\u4EC5\u53EF\u5728\u6D4F\u89C8\u5668\u73AF\u5883\u52A0\u8F7D");if(await Qi(),e.__speexInH5===void 0&&e.initAudio?.(),e.__speexInH5===void 0)throw new H("codec-unavailable","Speex \u8FD0\u884C\u65F6\u521D\u59CB\u5316\u5931\u8D25");return e.__speexInH5})().catch(n=>{throw rt=null,n instanceof H?n:new H("codec-unavailable","Speex \u8FD0\u884C\u65F6\u52A0\u8F7D\u5931\u8D25",{cause:n})}),rt)}function Ur(){ot().catch(()=>{});}function we(e,n,t){for(let r=0;r<t.length;r+=1)e.setUint8(n+r,t.charCodeAt(r));}function Xi(e,n){let r=new ArrayBuffer(44+e.length*2),o=new DataView(r);we(o,0,"RIFF"),o.setUint32(4,36+e.length*2,true),we(o,8,"WAVE"),we(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),we(o,36,"data"),o.setUint32(40,e.length*2,true);let i=44;for(let a=0;a<e.length;a+=1){let s=Math.max(-1,Math.min(1,e[a]??0));o.setInt16(i,s<0?s*32768:s*32767,true),i+=2;}return r}function it(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 Zi=40,at=120,ea=40,st=80;function na(e,n){let t=Math.min(Math.floor(n*Zi/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 ct(e,n){if(e.length===0)return e;let t=Math.min(Math.floor(n*at/1e3),Math.max(0,e.length-1)),r=t>0?e.subarray(t):e,o=new Float32Array(r),i=Math.min(Math.floor(n*ea/1e3),Math.floor(o.length/2));for(let a=0;a<i;a+=1){let s=a/i;o[a]=(o[a]??0)*s;let d=o.length-1-a;o[d]=(o[d]??0)*s;}return o}function In(e,n){let r=new ArrayBuffer(44+e.length*2),o=new DataView(r);return we(o,0,"RIFF"),o.setUint32(4,36+e.length*2,true),we(o,8,"WAVE"),we(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),we(o,36,"data"),o.setUint32(40,e.length*2,true),new Int16Array(r,44).set(e),new Uint8Array(r)}function ta(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 ra(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 Or(e,n){let t=await ot(),r=Math.floor(n*st/1e3),o=new Float32Array(r+e.length);o.set(e,r);let i=Xi(o,n);try{return ta(t.encodeFile(i))}catch(a){throw new H("encode-failed","\u8BED\u97F3\u7F16\u7801\u5931\u8D25",{cause:a})}}async function Br(e){let n=await ot();try{let[t,r]=n.decodeFile(ra(e));if(t.length===0)throw new Error("decoded empty pcm");let o=na(it(t),r.rate>0?r.rate:se),i=r.rate>0?r.rate:se;return {samples:o,sampleRate:i,durationMs:Math.round(o.length/i*1e3)}}catch(t){throw t instanceof H?t:new H("decode-failed","\u8BED\u97F3\u89E3\u7801\u5931\u8D25",{cause:t})}}async function Nr(e){let n=await Br(e);return {wavData:In(n.samples,n.sampleRate),durationMs:n.durationMs}}var oa=.5,ia=2;function Kr(e){if(typeof e!="number"||!Number.isFinite(e))throw new H("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,oa),ia)}function aa(e={}){let n=e.cacheMax??8,t={activeId:"",isPlaying:false,loadingId:"",progress:0,currentTimeMs:0,errorIds:new Set,playbackRate:e.playbackRate===void 0?1:Kr(e.playbackRate)},r=new Set;function o(){for(let f of r)f(t);}let i=null,a=new Map,s=0,d=false,c=false;function m(f){let P=a.get(f);return P!==void 0&&(a.delete(f),a.set(f,P)),P}function w(f,P){if(d)return URL.revokeObjectURL(P.url),P;let E=a.get(f);if(E!==void 0)return URL.revokeObjectURL(P.url),a.delete(f),a.set(f,E),E;for(a.set(f,P);a.size>n;){let R;for(let M of a.keys())if(M!==t.activeId){R=M;break}if(R===void 0)break;let O=a.get(R);a.delete(R),O!==void 0&&URL.revokeObjectURL(O.url);}return P}function h(f){f.paused||f.pause(),f.removeAttribute("src");try{f.load();}catch{}}function l(f,P){return !d&&f===s&&t.activeId===P}function b(f){f.defaultPlaybackRate=t.playbackRate,f.playbackRate=t.playbackRate;}function I(){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",()=>{A(),h(f),o();}),f.addEventListener("pause",()=>{t.activeId!==""&&(t.isPlaying=false,o());}),i=f,f}function A(){t.activeId="",t.isPlaying=false,t.progress=0,t.currentTimeMs=0;}function _(){s+=1,c=false,t.loadingId="",A(),i!==null&&h(i),o();}function T(f){t.errorIds=new Set([...t.errorIds,f]);}function x(f){if(!t.errorIds.has(f))return;let P=new Set(t.errorIds);P.delete(f),t.errorIds=P;}async function v(f,P){let E=m(f);if(E!==void 0)return {entry:E};let R;try{R=await P();}catch(O){return {entry:null,error:{code:Pn(O),cause:O}}}if(R===null)return {entry:null};try{let{wavData:O,durationMs:M}=await Nr(R),k={url:URL.createObjectURL(new Blob([O],{type:"audio/wav"})),durationMs:M};return {entry:w(f,k)}}catch(O){return {entry:null,error:{code:Pn(O),cause:O}}}}async function u(f,P){if(d)return;let E=I();if(x(f),t.activeId===f){if(t.isPlaying){E.pause();return}let M=++s;try{await E.play();}catch{if(!l(M,f))return;T(f),o();return}if(!l(M,f))return;t.isPlaying=true,o(),P.onPlayStart?.();return}if(t.loadingId===f)return;_();let R=++s;t.loadingId=f,o();let O=await v(f,P.load);if(R===s){if(t.loadingId="",O.entry===null){T(f),o(),O.error!==void 0&&P.onDecodeError?.(O.error.code,O.error.cause);return}E.src=O.entry.url,b(E),t.activeId=f,t.progress=0,t.currentTimeMs=0,o();try{await E.play();}catch(M){if(!l(R,f))return;A(),h(E),T(f),o(),P.onDecodeError?.(void 0,M);return}l(R,f)&&(t.isPlaying=true,o(),P.onPlayStart?.());}}function g(f,P){i===null||t.activeId!==f||!Number.isFinite(i.duration)||i.duration<=0||(i.currentTime=Math.min(Math.max(P,0),.999)*i.duration);}function C(f){i===null||t.activeId!==f||t.isPlaying&&(c=true,i.pause());}function p(f){if(i===null||t.activeId!==f||!c)return;c=false;let P=++s;i.play().then(()=>{l(P,f)&&(t.isPlaying=true,o());}).catch(()=>{l(P,f)&&(T(f),o());});}function y(f){let P=Kr(f);P!==t.playbackRate&&(t.playbackRate=P,i!==null&&b(i),o());}function S(){if(!d){d=true,_();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:u,seek:g,beginScrub:C,endScrub:p,setPlaybackRate:y,stop:_,dispose:S}}function sa(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 ca(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 s=a*r,d=.2;s<200?d=.15:s<300?d=.4:s<=3400?d=1:s<=6e3&&(d=.45),o+=(e[a]??0)/255*d,i+=d;}return i>0?o/i:0}function Gr(e){let n=sa(e.timeDomain),t=ca(e.frequency,e.sampleRate,e.fftSize),r=n*.55+t*.45;return Math.min(1,r*e.boost)**.72}var vn=class{constructor(n=.45,t=.18){this.attack=n;this.release=t;}attack;release;value=0;next(n){let t=Math.min(1,Math.max(0,n));return t>this.value?this.value+=(t-this.value)*this.attack:this.value+=(t-this.value)*this.release,this.value}};var da=5e3,dt=15e3,ua=25e3,la=25e3;function ze(e,n,t){return new Promise((r,o)=>{let i=setTimeout(()=>o(new Error(t)),n);e.then(a=>{clearTimeout(i),r(a);},a=>{clearTimeout(i),o(a);});})}async function pa(){if(typeof navigator>"u"||navigator.mediaDevices?.getUserMedia===void 0)throw new H("no-media-devices","\u5F53\u524D\u73AF\u5883\u4E0D\u652F\u6301\u9EA6\u514B\u98CE\u91C7\u96C6");let e=navigator.mediaDevices.getUserMedia({audio:fa()});try{return await ze(e,la,"\u9EA6\u514B\u98CE\u6388\u6743\u8BF7\u6C42\u8D85\u65F6")}catch(n){throw e.then(t=>t.getTracks().forEach(r=>r.stop())).catch(()=>{}),Dr(n)}}function fa(){return {channelCount:1,echoCancellation:true,noiseSuppression:true,autoGainControl:true}}var ma=50,ga=.12,ya=2.6,ha=.06,ba=256;function wa(){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 Ca(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 H("audio-context-blocked","AudioContext \u4E0D\u53EF\u7528");let i=t??new r,a=t==null;try{i.state==="suspended"&&await ze(i.resume(),dt,"audioContext.resume timeout").catch(()=>{});let s=await ze(i.decodeAudioData(await e.arrayBuffer()),dt,"decodeAudioData timeout"),d=Math.max(1,Math.ceil(s.duration*n)),c=new o(1,d,n),m=c.createBufferSource();return m.buffer=s,m.connect(c.destination),m.start(0),(await ze(c.startRendering(),dt,"offlineAudioContext.startRendering timeout")).getChannelData(0).slice()}catch(s){throw s instanceof H?s:new H("decode-failed","\u5F55\u97F3\u6BB5\u89E3\u7801\u5931\u8D25",{cause:s})}finally{a&&i.close().catch(()=>{});}}function Lr(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 Pa(e={}){if(typeof MediaRecorder>"u")throw new H("no-media-recorder","\u5F53\u524D\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\u5F55\u97F3");let n;e.stream!==void 0?n=e.stream:n=await pa(),Ur();let t=wa(),r=e.maxDurationMs??6e4,o="recording",i=[],a=0,s=[],d=null,c=null,m=null,w=[],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 w=[],f.ondataavailable=P=>{P.data.size>0&&w.push(P.data);},f.start(250),h=Date.now(),f}catch(f){throw f instanceof H?f:new H("device-busy","\u5F55\u97F3\u5668\u542F\u52A8\u5931\u8D25",{cause:f})}}let I=e.amplitude?.intervalMs??ma,A=e.amplitude?.boost??ya,_=e.amplitude?.smoothing??ga,T=e.amplitude?.minVolume??ha;function x(){let f=Math.floor(r/1e3*se),P=0;for(let R of i)P+=R.length;if(P>f){let R=f,O=[];for(let M of i){if(R<=0)break;M.length<=R?(O.push(M),R-=M.length):(O.push(M.slice(0,R)),R=0);}i.length=0,i.push(...O);}a=Math.min(a,r);let E=Math.max(0,Math.ceil(r/I));s.length>E&&(s.length=E);}async function v(){if(o!=="recording"){e.onMaxDuration?.();return}e.onMaxDuration?.(),o="paused";let f=S().then(()=>x());m=f;try{await f;}catch(P){console.warn("[im-browser] pauseAtMaxDuration settle failed",P);}}let u=setInterval(()=>{!l&&o==="recording"&&p()>=r&&(l=true,v());},250),g=null,C=null;try{let f=window.AudioContext??window.webkitAudioContext;if(f!==void 0){g=new f,g.state==="suspended"&&g.resume().catch(()=>{});let P=g.createMediaStreamSource(n),E=g.createAnalyser();E.fftSize=ba,E.smoothingTimeConstant=_,P.connect(E);let R=new Uint8Array(E.frequencyBinCount),O=new Uint8Array(E.fftSize),M=new vn;C=setInterval(()=>{if(o!=="recording"||d===null)return;E.getByteFrequencyData(R),E.getByteTimeDomainData(O);let k=Gr({timeDomain:O,frequency:R,sampleRate:g.sampleRate,fftSize:E.fftSize,boost:A}),U=M.next(k),N=U<T?0:U;s.push(Math.round(N*255)),e.onAmplitude?.(N);},I);}}catch(f){console.warn("[im-browser] amplitude analyser setup failed",f);}function p(){let f=o==="recording"&&d!==null?Date.now()-h:0;return a+f}function y(){u!==null&&(clearInterval(u),u=null),C!==null&&(clearInterval(C),C=null),g?.close().catch(()=>{}),g=null;for(let f of n.getTracks())f.stop();}function S(){if(c!==null)return c;let f=d;return f===null?Promise.resolve():(d=null,c=(async()=>{await new Promise(R=>{if(f.state==="inactive"){R();return}let O=setTimeout(()=>{console.warn("[im-browser] recorder onstop timed out, settling with received chunks"),R();},da);f.onstop=()=>{clearTimeout(O),R();},f.stop();});let P=new Blob(w,{type:f.mimeType||t||"audio/webm"});if(w=[],P.size===0)return;let E=await Ca(P,se,g);E.length!==0&&(i.push(E),a+=E.length/se*1e3);})().finally(()=>{c=null;}),c)}try{d=b();}catch(f){throw o="closed",y(),f}return {getState:()=>o,recordedMs:p,async pause(){o==="recording"&&(o="paused",await S(),(l||a>=r)&&x());},async resume(){o!=="paused"||l||(d=b(),o="recording");},async finish(){if(o==="closed")throw new H("empty-recording","\u5F55\u97F3\u4F1A\u8BDD\u5DF2\u7ED3\u675F");o="closed";let f=async()=>{try{m!==null?await m:await S(),x();}finally{y();}let P=Lr(i);if(P.length===0)throw new H("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let E=ct(P,se);if(E.length===0)throw new H("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let R=Math.min(s.length,Math.ceil(at/I));return {data:await Or(E,se),durationMs:Math.round(E.length/se*1e3)+st,waveform:s.slice(R),filename:`AUDIO_${Date.now()}.ogg`,mimeType:"audio/ogg"}};try{return await ze(f(),ua,"\u5F55\u97F3\u5B9A\u7A3F\u8D85\u65F6")}catch(P){throw y(),P instanceof H?P:new H("encode-failed","\u5F55\u97F3\u5B9A\u7A3F\u5931\u8D25",{cause:P})}},cancel(){o="closed";let f=d;if(d=null,f!==null&&(f.ondataavailable=null,f.onstop=null,f.state!=="inactive"))try{f.stop();}catch{}i.length=0,y();},async previewWav(){m!==null?await m:c!==null&&await c,x();let f=Lr(i),P=ct(f,se);if(P.length===0)throw new H("empty-recording","\u6682\u65E0\u53EF\u8BD5\u542C\u7684\u5F55\u97F3\u5185\u5BB9");return {wavData:In(it(P),se),durationMs:Math.round(P.length/se*1e3)}}}}function De(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 Hr(e,n){return e.length===n.length&&e.every((t,r)=>t===n[r])}var ce=class extends Error{constructor(n,t){super(n,t),this.name="ChannelKeyError";}};function Fr(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 ce("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(c){throw new ce("channel secret_key Base64 \u89E3\u7801\u5931\u8D25",{cause:c})}let a=Uint8Array.from(i,c=>c.charCodeAt(0)&255);if(a.length===0)throw new ce("channel secret_key Base64 \u89E3\u7801\u7ED3\u679C\u4E3A\u7A7A");let s=new Uint8Array(16);s.set(a.subarray(0,s.length));let d=n.length===16&&/^[\x20-\x7E]+$/.test(n)?Uint8Array.from(n,c=>c.charCodeAt(0)):void 0;return {canonical:s,...d===void 0?{}:{legacyAscii:d},metadata:{channelKeyCharLength:n.length,decodedByteLength:a.length,padByteCount:Math.max(0,16-a.length),legacyAsciiCandidate:d!==void 0}}}function Ia(e){let n=new Map,t=new Map,r=new Map,o=new Map,i=De(Hr);function a(v){return {canonical:v.canonical.slice(),...v.legacyAscii===void 0?{}:{legacyAscii:v.legacyAscii.slice()},metadata:{...v.metadata}}}function s(v){return [{strategy:"canonical-base64-pad",key:v.canonical.slice()},...v.legacyAscii===void 0?[]:[{strategy:"legacy-ascii16",key:v.legacyAscii.slice()}]]}function d(v){n.delete(v),t.delete(v),r.delete(v),o.set(v,(o.get(v)??0)+1);}function c(v){let u=o.get(v)??0,g=(async()=>{try{let C=await e.loadSecretKey(v);if(C===null||C.trim()==="")throw new ce(`channel secret_key \u7F3A\u5931\uFF08channelId=${v}\uFF09`);let p=Fr(C);return (o.get(v)??0)===u&&n.set(v,a(p)),p}catch(C){let p=C instanceof ce?C:new ce(`channel secret_key \u52A0\u8F7D\u5931\u8D25\uFF08channelId=${v}\uFF09`,{cause:C});throw e.onError?.(p.message,C),p}})().finally(()=>{t.get(v)===g&&t.delete(v);});return t.set(v,g),g}function m(v,u){let g=t.get(v);if(g!==void 0)return g;i.shouldRenegotiate(v,u.staleKey,n.get(v)?.canonical)&&d(v);}function w(v,u){let g=v.trim();if(g===""){let p=new ce("channel id \u4E0D\u80FD\u4E3A\u7A7A");return e.onError?.(p.message),Promise.reject(p)}if(u!==void 0){let p=m(g,u);if(p!==void 0)return p.then(a)}let C=n.get(g);return C!==void 0?Promise.resolve(a(C)):t.get(g)??c(g)}function h(v,u){let g=v.trim();if(g===""){let S=new ce("channel id \u4E0D\u80FD\u4E3A\u7A7A");return e.onError?.(S.message),Promise.reject(S)}if(u!==void 0){let S=m(g,u);if(S!==void 0)return S.then(f=>f.canonical.slice())}let C=n.get(g);if(C!==void 0)return Promise.resolve(C.canonical.slice());let p=r.get(g);if(p!==void 0)return p;let y=(t.get(g)??c(g)).then(S=>S.canonical.slice()).finally(()=>{r.get(g)===y&&r.delete(g);});return r.set(g,y),y}function l(v){return n.get(v.trim())?.canonical.slice()??null}async function b(v,u){let g=await w(v,u);return s(g)}function I(v){let u=n.get(v.trim());return u===void 0?[]:s(u)}function A(v){let u=n.get(v.trim());return u===void 0?null:{...u.metadata}}function _(v,u){let g=v.trim();if(g==="")throw new ce("channel id \u4E0D\u80FD\u4E3A\u7A7A");let C=Fr(u);d(g),i.reset(g),n.set(g,a(C));}function T(v){let u=v.trim();u!==""&&(d(u),i.reset(u));}function x(){let v=new Set([...n.keys(),...t.keys(),...r.keys(),...o.keys()]);for(let u of v)o.set(u,(o.get(u)??0)+1),i.reset(u);n.clear(),t.clear(),r.clear();}return {getChannelKey:h,getCachedChannelKey:l,getChannelKeyCandidates:b,getCachedChannelKeyCandidates:I,getCachedChannelKeyMetadata:A,primeChannelKey:_,clearChannelKey:T,clearAll:x}}function ut(){let e=globalThis.scheduler;return typeof e?.yield=="function"?e.yield():new Promise(n=>setTimeout(n,0))}var ft=2654435769,$r=16,Ue=8,lt=16,jr=32;function qr(e){if(e.length<lt)throw new Error(`TEA key \u957F\u5EA6\u4E0D\u8DB3\uFF1A${e.length}\uFF0C\u9700 \u2265 ${lt} \u5B57\u8282`);let n=new DataView(e.buffer,e.byteOffset,lt);return [n.getUint32(0,true),n.getUint32(4,true),n.getUint32(8,true),n.getUint32(12,true)]}function mt([e,n],[t,r,o,i]){let a=e>>>0,s=n>>>0,d=Math.imul(ft,16)>>>0;for(let c=0;c<$r;c++)s=s-(Math.imul(a,16)+o^a+d^(a>>>5)+i)>>>0,a=a-(Math.imul(s,16)+t^s+d^(s>>>5)+r)>>>0,d=d-ft>>>0;return [a,s]}function gt([e,n],[t,r,o,i]){let a=e>>>0,s=n>>>0,d=0;for(let c=0;c<$r;c++)d=d+ft>>>0,a=a+(Math.imul(s,16)+t^s+d^(s>>>5)+r)>>>0,s=s+(Math.imul(a,16)+o^a+d^(a>>>5)+i)>>>0;return [a,s]}function We(e,n,t,r){let o=qr(n),i=new Uint8Array(e.length),a=Math.floor(e.length/Ue),s=r===void 0?a:Math.min(a,Math.floor(r/Ue)),d=new DataView(e.buffer,e.byteOffset,e.byteLength),c=new DataView(i.buffer);for(let w=0;w<s;w++){let h=w*Ue,[l,b]=t([d.getUint32(h,true),d.getUint32(h+4,true)],o);c.setUint32(h,l,true),c.setUint32(h+4,b,true);}let m=s*Ue;return m<e.length&&i.set(e.subarray(m),m),i}function Ye(e,n){return We(n,e,mt)}function Qe(e,n){return We(n,e,gt)}function Jr(e,n){return We(n,e,gt,jr)}function Vr(e,n){return We(n,e,mt,jr)}var va=1024*1024;function Sa(){return ut()}function pt(e){if(e?.aborted)throw new DOMException("TEA \u5206\u5757\u5904\u7406\u5DF2\u53D6\u6D88","AbortError")}async function yt(e,n,t,r=va,o={}){if(!Number.isInteger(r)||r<=0||r%Ue!==0)throw new RangeError(`TEA \u5206\u5757\u5927\u5C0F\u5FC5\u987B\u662F ${Ue} \u7684\u6B63\u6574\u6570\u500D\uFF1A${r}`);qr(e);let i=t==="encrypt"?gt:mt,a=o.yieldToMain??Sa,s=n.size,d=[],c=0;for(;c<s;){pt(o.signal);let m=Math.min(c+r,s),w=new Uint8Array(await n.slice(c,m).arrayBuffer());pt(o.signal),d.push(new Blob([We(w,e,i)])),c=m,o.onProgress?.(c,s),c<s&&await a();}return pt(o.signal),new Blob(d)}var zr=8,Sn=16;function Aa(e){let n=W.md.md5.create();return n.update(e,"utf8"),n.digest().toHex()}function Yr(e){return new TextEncoder().encode(e)}function Ma(e){let n=e.length;for(;n>0&&e[n-1]===0;)n-=1;return new TextDecoder().decode(e.subarray(0,n))}function _a(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 xa(e){let n="";for(let t of e)n+=String.fromCharCode(t);return btoa(n)}function Ea(e){let n=Math.ceil(e.length/zr)*zr;if(n===e.length)return e;let t=new Uint8Array(n);return t.set(e),t}function Qr(e,n=Aa){let t=e.trim();if(t==="")throw new Error("collect TEA key: userId \u4E3A\u7A7A");let r=n(t).replace(/[^0-9a-f]/gi,"");if(r.length<Sn)throw new Error("collect TEA key: MD5 \u957F\u5EA6\u4E0D\u8DB3");let o=Yr(r.slice(0,Sn).toUpperCase());if(o.length<Sn)throw new Error("collect TEA key: \u6D3E\u751F\u7ED3\u679C\u4E0D\u8DB3 16 \u5B57\u8282");return o.subarray(0,Sn)}function Xr(e,n,t){return xa(Qe(Qr(n,t),Ea(Yr(e))))}function Ra(e,n,t){return Ma(Ye(Qr(n,t),_a(e)))}function ka(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function ht(e){let n=e.trim();if(n===""||!n.startsWith("{"))return null;try{return ka(JSON.parse(n))}catch{return null}}function Ta(e){let n=e.trim(),t=n.indexOf("}");return t>=0?n.slice(0,t+1):n}function Zr(e,n,t){let r=ht(e);if(r!==null)return r;if(e.trim()===""||n.trim()==="")return null;try{let o=Ra(e,n,t);return ht(o)??ht(Ta(o))}catch{return null}}var Da="core";var Xe=class extends Error{code=502;constructor(n,t){super(`core JSON \u4F20\u8F93\u5931\u8D25\uFF1A${n||"unknown transport error"}`,t===void 0?void 0:{cause:t}),this.name="CoreJsonTransportError";}},z=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 D(e,n,t,r){let o=r!==void 0&&"responseMode"in r&&r.responseMode==="strict",i;try{i=await e(n,{target:Da,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 Xe(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 Xe(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 eo(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 D(e,"/user/encrypt_info/info",t,r)}function Ua(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 Oa(e){let n=e.clientType,t=new Map,r=new Map,o=De((h,l)=>h===l),i=null,a=null;function s(h,l){e.onError?.(h,l);}function d(){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 c(h){let l;try{l=await d();}catch(_){return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u751F\u6210\u4E34\u65F6 RSA \u5BC6\u94A5\u5931\u8D25\uFF08userId=${h}\uFF09`,_),null}let b;try{b=await eo(e.client,{publicKey:l.publicKeyBase64,clientType:n});}catch(_){return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u8BF7\u6C42\u5F02\u5E38\uFF08userId=${h}\uFF09`,_),null}if(b.data===null)return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u4E1A\u52A1\u5931\u8D25\uFF08userId=${h}\uFF0Ccode=${b.code}\uFF09`),null;let I=b.data.prv_key??b.data.prvKey??"",A=String(b.data.version??"").trim();if(I==="")return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u54CD\u5E94\u7F3A\u5C11 prv_key\uFF08userId=${h}\uFF09`),null;try{let _=e.crypto.rsaDecryptPkcs1({data:Ua(I),privateKey:l.privateKey}),T=new TextDecoder().decode(_).trim();if(T==="")return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u89E3\u51FA\u7684\u79C1\u94A5\u4E3A\u7A7A\uFF08userId=${h}\uFF09`),null;let x={privateKey:T,version:A};return t.set(h,x),x}catch(_){return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u4E34\u65F6\u79C1\u94A5\u89E3 prv_key \u5931\u8D25\uFF08userId=${h}\uFF09`,_),null}}function m(h,l){let b=h.trim();if(b==="")return Promise.resolve(null);if(l!==void 0){let T=r.get(b);if(T!==void 0)return T;o.shouldRenegotiate(b,l.staleKey,t.get(b)?.privateKey)&&t.delete(b);}let I=t.get(b);if(I!==void 0)return Promise.resolve(I);let A=r.get(b);if(A!==void 0)return A;let _=c(b).finally(()=>{r.get(b)===_&&r.delete(b);});return r.set(b,_),_}function w(h){return t.get(h.trim())??null}return {getUserPrivateKey:m,getCachedPrivateKey:w}}function no(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 D(e,"/user_group/encrypt_info",t,r)}function Ba(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 Na(e){let n=e.clientType,t=new Map,r=new Map,o=new Map,i=De((l,b)=>l===b),a=null,s=null;function d(){if(a!==null)return Promise.resolve(a);if(s!==null)return s;let l=Promise.resolve().then(()=>e.crypto.generateTempKeyPair()).then(b=>(a=b,b)).finally(()=>{s===l&&(s=null);});return s=l,l}async function c(l){let b=o.get(l)??0,I;try{I=await d();}catch(u){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u751F\u6210\u4E34\u65F6 RSA \u5BC6\u94A5\u5931\u8D25\uFF08groupId=${l}\uFF09`,u),null}let A;try{A=await no(e.client,{groupId:l,publicKey:I.publicKeyBase64,clientType:n});}catch(u){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u8BF7\u6C42\u5F02\u5E38\uFF08groupId=${l}\uFF09`,u),null}if(A.data===null)return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u4E1A\u52A1\u5931\u8D25\uFF08groupId=${l}\uFF0Ccode=${A.code}\uFF09`),null;let _=A.data,T=String(_.prv_key??_.prvKey??_.private_key??"").trim(),x=String(_.pub_key??_.pubKey??_.public_key??"").trim(),v=String(_.version??"").trim();if(T==="")return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u54CD\u5E94\u7F3A\u5C11 prv_key\uFF08groupId=${l}\uFF09`),null;try{let u=e.crypto.rsaDecryptPkcs1({data:Ba(T),privateKey:I.privateKey}),g=new TextDecoder().decode(u).trim();if(g==="")return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u89E3\u51FA\u7684\u7FA4\u79C1\u94A5\u4E3A\u7A7A\uFF08groupId=${l}\uFF09`),null;let C={privateKey:g,publicKey:x,version:v};return (o.get(l)??0)===b&&t.set(l,C),C}catch(u){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u4E34\u65F6\u79C1\u94A5\u89E3 prv_key \u5931\u8D25\uFF08groupId=${l}\uFF09`,u),null}}function m(l,b){let I=l.trim();if(I==="")return Promise.resolve(null);if(b!==void 0){let x=r.get(I);if(x!==void 0)return x;i.shouldRenegotiate(I,b.staleKey,t.get(I)?.privateKey)&&t.delete(I);}let A=t.get(I);if(A!==void 0)return Promise.resolve(A);let _=r.get(I);if(_!==void 0)return _;let T=c(I).finally(()=>{r.get(I)===T&&r.delete(I);});return r.set(I,T),T}function w(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:m,getCachedGroupKeys:w,getCachedGroupKeyVersion:l=>t.get(l.trim())?.version??null,clearGroupKeys:h}}async function Ze(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 D(e,"/user/info/other",t,r)).data}function Ka(e){let n=e.clientType,t=new Map,r=new Map;async function o(a){try{let d=((await Ze(e.client,{userId:a,clientType:n}))?.public_key??"").trim();return d===""?(e.onError?.(`\u53D6\u5BF9\u7AEF\u516C\u94A5\uFF1A/user/info/other \u65E0 public_key\uFF08userId=${a}\uFF09`),null):(t.set(a,d),d)}catch(s){return e.onError?.(`\u53D6\u5BF9\u7AEF\u516C\u94A5\u8BF7\u6C42\u5F02\u5E38\uFF08userId=${a}\uFF09`,s),null}}function i(a,s){let d=a.trim();if(d==="")return Promise.resolve(null);s?.force===true&&t.delete(d);let c=t.get(d);if(c!==void 0)return Promise.resolve(c);let m=r.get(d);if(m!==void 0)return m;let w=o(d).finally(()=>{r.get(d)===w&&r.delete(d);});return r.set(d,w),w}return {getPeerPublicKey:i}}var Se=16;function to(e){let n="";for(let t of e)n+=String.fromCharCode(t);return n}function ro(e){let n=new Uint8Array(e.length);for(let t=0;t<e.length;t++)n[t]=e.charCodeAt(t)&255;return n}function oo(e){return e.replace(/(.{64})/g,`$1
|
|
1
|
+
import {wa as wa$1,G,J as J$1,f,g,i,Y as Y$1,Z,aa as aa$1,ba as ba$1,W as W$1,X as X$1,L as L$1,M,F as F$1,I,m,e,K as K$1,H as H$1,N,P,R,Q as Q$1,S,T,U,V as V$1,ia as ia$1,ja as ja$1,xb,Ha as Ha$1,Ga as Ga$1,Fa as Fa$1,ga as ga$1,ka as ka$1,ea as ea$1,Ea as Ea$1,_,$,l,s,Ca as Ca$1,Ba as Ba$1,ca as ca$1,da as da$1}from'./chunk-6OC4FEH7.js';import*as W from'node-forge';import W__default from'node-forge';import {deleteDB,openDB}from'idb';import {createSHA256}from'hash-wasm';function Li(e,n=async t=>{let{createBrowserApiProtocolClient:r}=await import('./browser-YLMJKRLM.js');return r(t)}){let t=null;function r(){if(t!==null)return t;let o=n(e);return t=o,o.catch(()=>{t===o&&(t=null);}),o}return async(o,i)=>(await r())(o,i)}function tt(){return typeof navigator<"u"&&typeof ClipboardItem=="function"&&typeof navigator.clipboard?.write=="function"}function ee(e){if(!e.isCurrent())throw new DOMException("Image copy is no longer active","AbortError")}async function nt(e,n){if(ee(n),e.size===0)throw new Error("Empty clipboard image");let t=URL.createObjectURL(e),r=new Image,o;try{if(await new Promise((s,d)=>{r.onload=()=>s(),r.onerror=()=>d(new Error("Clipboard image decode failed")),r.src=t;}),ee(n),r.naturalWidth<=0||r.naturalHeight<=0)throw new Error("Invalid clipboard image dimensions");if(e.type==="image/png")return e;if(r.naturalWidth*r.naturalHeight>16777216)throw new Error("Clipboard image exceeds canvas pixel limit");o=document.createElement("canvas"),o.width=r.naturalWidth,o.height=r.naturalHeight;let i=o.getContext("2d");if(i===null)throw new Error("Clipboard canvas unavailable");i.drawImage(r,0,0);let a=await new Promise((s,d)=>{o.toBlob(c=>c===null?d(new Error("Clipboard PNG encoding failed")):s(c),"image/png");});return ee(n),a}finally{r.onload=null,r.onerror=null,r.src="",URL.revokeObjectURL(t),o!==void 0&&(o.width=o.height=0);}}async function Hi(e,n){if(n!==void 0&&n!==""){ee(e);let s=false,d={...e,isCurrent:()=>!s&&e.isCurrent()};try{if(!tt())throw new Error("Image Clipboard API unavailable");let c=(async()=>nt(await e.loadOriginal(),d))();return c.catch(()=>{}),await navigator.clipboard.write([new ClipboardItem({"image/png":c,"text/plain":new Blob([n],{type:"text/plain"})})]),ee(e),"original"}catch{return s=true,ee(e),await navigator.clipboard.writeText(n),ee(e),"text"}finally{s=true;}}if(!tt())throw new Error("Image Clipboard API unavailable");ee(e);let t=false,r={...e,isCurrent:()=>!t&&e.isCurrent()},o={quality:"original"},i=async()=>(ee(r),o.quality="thumbnail",nt(await e.loadThumbnail(),r)),a=(async()=>{try{return await nt(await e.loadOriginal(),r)}catch(s){ee(r);try{return await i()}catch(d){throw ee(r),new AggregateError([s,d],"Original and thumbnail copy failed")}}})();a.catch(()=>{});try{try{await navigator.clipboard.write([new ClipboardItem({"image/png":a})]);}catch(s){if(ee(r),typeof s=="object"&&s!==null&&"name"in s&&(s.name==="NotAllowedError"||s.name==="SecurityError")||(await a,ee(r),o.quality==="thumbnail"))throw s;let d=i();d.catch(()=>{}),await navigator.clipboard.write([new ClipboardItem({"image/png":d})]);}return ee(r),o.quality}finally{t=true;}}var K=class extends Error{code;constructor(n,t,r){super(t??n,r),this.name="MediaTransferError",this.code=n;}};function Fi(e){return e instanceof K?e.code:void 0}function Te(e){if(e instanceof K)return e.code==="upload-timeout"?"timeout":e.code!=="multipart-upload-failed"?void 0:Te(e.cause);if(!(e instanceof Error))return;let n=e;if(["ExpiredToken","ExpiredTokenException","RequestExpired","TokenRefreshRequired"].includes(n.Code??n.name))return "credentials-expired";let t=n.$metadata?.httpStatusCode;if(t===429||t!==void 0&&t>=500&&t<=599||n.message.startsWith("XHR_HTTP_HANDLER_ERROR:")||n.name==="NetworkError")return "network"}var $i=3600*1e3,ji=300*1e3;function be(...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 qi(e){let n=Number(e);if(!(!Number.isFinite(n)||n<=0))return n>1e12?n/1e3:n}function Ji(e){let n=e.replace(/\/+$/,"");return n===""?"":/^https?:\/\//i.test(n)?n:`https://${n}`}function kr(e){if(e===null||typeof e!="object")throw new K("credentials-invalid","S3 \u4E0A\u4F20\u51ED\u8BC1\u683C\u5F0F\u65E0\u6548\uFF1A\u56DE\u5305\u4E0D\u662F\u5BF9\u8C61");let n=e,t=be(n.access_key_id,n.accessKeyId),r=be(n.secret_key,n.secretKey,n.secretAccessKey),o=be(n.session_token,n.sessionToken).replace(/\s+/g,""),i=be(n.bucket),a=be(n.region),s=Ji(be(n.dns_point,n.dnsPoint)),d=[t===""?"access_key_id":"",r===""?"secret_key":"",o===""?"session_token":"",i===""?"bucket":"",a===""?"region":"",s===""?"dns_point":""].filter(h=>h!=="");if(d.length>0)throw new K("credentials-invalid",`S3 \u4E0A\u4F20\u51ED\u8BC1\u683C\u5F0F\u65E0\u6548\uFF1A\u7F3A\u5C11 ${d.join("\u3001")}`);let c=qi(n.expiration??n.expiresAtSeconds),m=be(n.key_prefix,n.keyPrefix),w=be(n.identity_id,n.identityId);return {accessKeyId:t,secretAccessKey:r,sessionToken:o,bucket:i,region:a,dnsPoint:s,...c===void 0?{}:{expiresAtSeconds:c},...m===""?{}:{keyPrefix:m},...w===""?{}:{identityId:w}}}function Vi(e,n){if(n-e.fetchedAtMs>=$i)return false;let{expiresAtSeconds:t}=e.credential;return t===void 0?true:t*1e3-ji>n}function Tr(e){let n=new Map,t=new Map;async function r(o,i){let a;try{a=await e({bucket:o,forceRefresh:i});}catch(d){let c=d instanceof Error?d.message:String(d);throw new K("credentials-request-failed",`S3 \u4E0A\u4F20\u51ED\u8BC1\u83B7\u53D6\u5931\u8D25\uFF1Abucket=${o}\uFF1B\u539F\u56E0\uFF1A${c}`,{cause:d})}let s=kr(a);return n.set(o,{credential:s,fetchedAtMs:Date.now()}),s}return {resolve(o,i){if(e===void 0)return Promise.reject(new K("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,s=a?void 0:n.get(o);if(s!==void 0&&Vi(s,Date.now()))return Promise.resolve(s.credential);n.delete(o);let d=t.get(o);if(d!==void 0)return d;let c=r(o,a).finally(()=>{t.get(o)===c&&t.delete(o);});return t.set(o,c),c}}}function zi(){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 H=class extends Error{code;constructor(n,t,r){super(t??n,r),this.name="VoiceError",this.code=n;}};function Pn(e){return e instanceof H?e.code:void 0}function Dr(e){switch(e instanceof DOMException||e instanceof Error?e.name:""){case "NotAllowedError":case "SecurityError":case "PermissionDeniedError":return new H("permission-denied","\u9EA6\u514B\u98CE\u6743\u9650\u88AB\u62D2\u7EDD",{cause:e});case "NotFoundError":case "DevicesNotFoundError":return new H("device-not-found","\u672A\u627E\u5230\u53EF\u7528\u9EA6\u514B\u98CE",{cause:e});case "NotReadableError":case "TrackStartError":case "AbortError":return new H("device-busy","\u9EA6\u514B\u98CE\u88AB\u5360\u7528\u6216\u542F\u52A8\u5931\u8D25",{cause:e});default:return new H("device-busy",e instanceof Error?e.message:"\u9EA6\u514B\u98CE\u542F\u52A8\u5931\u8D25",{cause:e})}}var se=16e3,Wi=new URL("./speex-runtime.txt",import.meta.url).href,rt=null,Yi=15e3;async function Qi(){document.querySelector('script[data-speex-runtime="true"]')?.remove();let e=new AbortController,n=setTimeout(()=>e.abort(new Error("Speex runtime fetch timeout")),Yi),t;try{t=await fetch(Wi,{signal:e.signal});}finally{clearTimeout(n);}if(!t.ok)throw new Error(`Speex runtime fetch failed: ${t.status}`);let r=await t.text();if(r.trimStart().startsWith("<"))throw new Error("Speex runtime fetch returned HTML instead of script");let o=document.createElement("script");o.dataset.speexRuntime="true",o.text=r,document.head.appendChild(o);}async function ot(){let e=typeof window>"u"?void 0:window;return e?.__speexInH5!==void 0?e.__speexInH5:(rt??=(async()=>{if(e===void 0||typeof document>"u")throw new H("codec-unavailable","Speex \u8FD0\u884C\u65F6\u4EC5\u53EF\u5728\u6D4F\u89C8\u5668\u73AF\u5883\u52A0\u8F7D");if(await Qi(),e.__speexInH5===void 0&&e.initAudio?.(),e.__speexInH5===void 0)throw new H("codec-unavailable","Speex \u8FD0\u884C\u65F6\u521D\u59CB\u5316\u5931\u8D25");return e.__speexInH5})().catch(n=>{throw rt=null,n instanceof H?n:new H("codec-unavailable","Speex \u8FD0\u884C\u65F6\u52A0\u8F7D\u5931\u8D25",{cause:n})}),rt)}function Ur(){ot().catch(()=>{});}function we(e,n,t){for(let r=0;r<t.length;r+=1)e.setUint8(n+r,t.charCodeAt(r));}function Xi(e,n){let r=new ArrayBuffer(44+e.length*2),o=new DataView(r);we(o,0,"RIFF"),o.setUint32(4,36+e.length*2,true),we(o,8,"WAVE"),we(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),we(o,36,"data"),o.setUint32(40,e.length*2,true);let i=44;for(let a=0;a<e.length;a+=1){let s=Math.max(-1,Math.min(1,e[a]??0));o.setInt16(i,s<0?s*32768:s*32767,true),i+=2;}return r}function it(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 Zi=40,at=120,ea=40,st=80;function na(e,n){let t=Math.min(Math.floor(n*Zi/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 ct(e,n){if(e.length===0)return e;let t=Math.min(Math.floor(n*at/1e3),Math.max(0,e.length-1)),r=t>0?e.subarray(t):e,o=new Float32Array(r),i=Math.min(Math.floor(n*ea/1e3),Math.floor(o.length/2));for(let a=0;a<i;a+=1){let s=a/i;o[a]=(o[a]??0)*s;let d=o.length-1-a;o[d]=(o[d]??0)*s;}return o}function In(e,n){let r=new ArrayBuffer(44+e.length*2),o=new DataView(r);return we(o,0,"RIFF"),o.setUint32(4,36+e.length*2,true),we(o,8,"WAVE"),we(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),we(o,36,"data"),o.setUint32(40,e.length*2,true),new Int16Array(r,44).set(e),new Uint8Array(r)}function ta(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 ra(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 Or(e,n){let t=await ot(),r=Math.floor(n*st/1e3),o=new Float32Array(r+e.length);o.set(e,r);let i=Xi(o,n);try{return ta(t.encodeFile(i))}catch(a){throw new H("encode-failed","\u8BED\u97F3\u7F16\u7801\u5931\u8D25",{cause:a})}}async function Br(e){let n=await ot();try{let[t,r]=n.decodeFile(ra(e));if(t.length===0)throw new Error("decoded empty pcm");let o=na(it(t),r.rate>0?r.rate:se),i=r.rate>0?r.rate:se;return {samples:o,sampleRate:i,durationMs:Math.round(o.length/i*1e3)}}catch(t){throw t instanceof H?t:new H("decode-failed","\u8BED\u97F3\u89E3\u7801\u5931\u8D25",{cause:t})}}async function Nr(e){let n=await Br(e);return {wavData:In(n.samples,n.sampleRate),durationMs:n.durationMs}}var oa=.5,ia=2;function Kr(e){if(typeof e!="number"||!Number.isFinite(e))throw new H("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,oa),ia)}function aa(e={}){let n=e.cacheMax??8,t={activeId:"",isPlaying:false,loadingId:"",progress:0,currentTimeMs:0,errorIds:new Set,playbackRate:e.playbackRate===void 0?1:Kr(e.playbackRate)},r=new Set;function o(){for(let f of r)f(t);}let i=null,a=new Map,s=0,d=false,c=false;function m(f){let P=a.get(f);return P!==void 0&&(a.delete(f),a.set(f,P)),P}function w(f,P){if(d)return URL.revokeObjectURL(P.url),P;let E=a.get(f);if(E!==void 0)return URL.revokeObjectURL(P.url),a.delete(f),a.set(f,E),E;for(a.set(f,P);a.size>n;){let R;for(let M of a.keys())if(M!==t.activeId){R=M;break}if(R===void 0)break;let O=a.get(R);a.delete(R),O!==void 0&&URL.revokeObjectURL(O.url);}return P}function h(f){f.paused||f.pause(),f.removeAttribute("src");try{f.load();}catch{}}function l(f,P){return !d&&f===s&&t.activeId===P}function b(f){f.defaultPlaybackRate=t.playbackRate,f.playbackRate=t.playbackRate;}function I(){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",()=>{A(),h(f),o();}),f.addEventListener("pause",()=>{t.activeId!==""&&(t.isPlaying=false,o());}),i=f,f}function A(){t.activeId="",t.isPlaying=false,t.progress=0,t.currentTimeMs=0;}function _(){s+=1,c=false,t.loadingId="",A(),i!==null&&h(i),o();}function T(f){t.errorIds=new Set([...t.errorIds,f]);}function x(f){if(!t.errorIds.has(f))return;let P=new Set(t.errorIds);P.delete(f),t.errorIds=P;}async function v(f,P){let E=m(f);if(E!==void 0)return {entry:E};let R;try{R=await P();}catch(O){return {entry:null,error:{code:Pn(O),cause:O}}}if(R===null)return {entry:null};try{let{wavData:O,durationMs:M}=await Nr(R),k={url:URL.createObjectURL(new Blob([O],{type:"audio/wav"})),durationMs:M};return {entry:w(f,k)}}catch(O){return {entry:null,error:{code:Pn(O),cause:O}}}}async function u(f,P){if(d)return;let E=I();if(x(f),t.activeId===f){if(t.isPlaying){E.pause();return}let M=++s;try{await E.play();}catch{if(!l(M,f))return;T(f),o();return}if(!l(M,f))return;t.isPlaying=true,o(),P.onPlayStart?.();return}if(t.loadingId===f)return;_();let R=++s;t.loadingId=f,o();let O=await v(f,P.load);if(R===s){if(t.loadingId="",O.entry===null){T(f),o(),O.error!==void 0&&P.onDecodeError?.(O.error.code,O.error.cause);return}E.src=O.entry.url,b(E),t.activeId=f,t.progress=0,t.currentTimeMs=0,o();try{await E.play();}catch(M){if(!l(R,f))return;A(),h(E),T(f),o(),P.onDecodeError?.(void 0,M);return}l(R,f)&&(t.isPlaying=true,o(),P.onPlayStart?.());}}function g(f,P){i===null||t.activeId!==f||!Number.isFinite(i.duration)||i.duration<=0||(i.currentTime=Math.min(Math.max(P,0),.999)*i.duration);}function C(f){i===null||t.activeId!==f||t.isPlaying&&(c=true,i.pause());}function p(f){if(i===null||t.activeId!==f||!c)return;c=false;let P=++s;i.play().then(()=>{l(P,f)&&(t.isPlaying=true,o());}).catch(()=>{l(P,f)&&(T(f),o());});}function y(f){let P=Kr(f);P!==t.playbackRate&&(t.playbackRate=P,i!==null&&b(i),o());}function S(){if(!d){d=true,_();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:u,seek:g,beginScrub:C,endScrub:p,setPlaybackRate:y,stop:_,dispose:S}}function sa(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 ca(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 s=a*r,d=.2;s<200?d=.15:s<300?d=.4:s<=3400?d=1:s<=6e3&&(d=.45),o+=(e[a]??0)/255*d,i+=d;}return i>0?o/i:0}function Gr(e){let n=sa(e.timeDomain),t=ca(e.frequency,e.sampleRate,e.fftSize),r=n*.55+t*.45;return Math.min(1,r*e.boost)**.72}var vn=class{constructor(n=.45,t=.18){this.attack=n;this.release=t;}attack;release;value=0;next(n){let t=Math.min(1,Math.max(0,n));return t>this.value?this.value+=(t-this.value)*this.attack:this.value+=(t-this.value)*this.release,this.value}};var da=5e3,dt=15e3,ua=25e3,la=25e3;function ze(e,n,t){return new Promise((r,o)=>{let i=setTimeout(()=>o(new Error(t)),n);e.then(a=>{clearTimeout(i),r(a);},a=>{clearTimeout(i),o(a);});})}async function pa(){if(typeof navigator>"u"||navigator.mediaDevices?.getUserMedia===void 0)throw new H("no-media-devices","\u5F53\u524D\u73AF\u5883\u4E0D\u652F\u6301\u9EA6\u514B\u98CE\u91C7\u96C6");let e=navigator.mediaDevices.getUserMedia({audio:fa()});try{return await ze(e,la,"\u9EA6\u514B\u98CE\u6388\u6743\u8BF7\u6C42\u8D85\u65F6")}catch(n){throw e.then(t=>t.getTracks().forEach(r=>r.stop())).catch(()=>{}),Dr(n)}}function fa(){return {channelCount:1,echoCancellation:true,noiseSuppression:true,autoGainControl:true}}var ma=50,ga=.12,ya=2.6,ha=.06,ba=256;function wa(){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 Ca(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 H("audio-context-blocked","AudioContext \u4E0D\u53EF\u7528");let i=t??new r,a=t==null;try{i.state==="suspended"&&await ze(i.resume(),dt,"audioContext.resume timeout").catch(()=>{});let s=await ze(i.decodeAudioData(await e.arrayBuffer()),dt,"decodeAudioData timeout"),d=Math.max(1,Math.ceil(s.duration*n)),c=new o(1,d,n),m=c.createBufferSource();return m.buffer=s,m.connect(c.destination),m.start(0),(await ze(c.startRendering(),dt,"offlineAudioContext.startRendering timeout")).getChannelData(0).slice()}catch(s){throw s instanceof H?s:new H("decode-failed","\u5F55\u97F3\u6BB5\u89E3\u7801\u5931\u8D25",{cause:s})}finally{a&&i.close().catch(()=>{});}}function Lr(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 Pa(e={}){if(typeof MediaRecorder>"u")throw new H("no-media-recorder","\u5F53\u524D\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\u5F55\u97F3");let n;e.stream!==void 0?n=e.stream:n=await pa(),Ur();let t=wa(),r=e.maxDurationMs??6e4,o="recording",i=[],a=0,s=[],d=null,c=null,m=null,w=[],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 w=[],f.ondataavailable=P=>{P.data.size>0&&w.push(P.data);},f.start(250),h=Date.now(),f}catch(f){throw f instanceof H?f:new H("device-busy","\u5F55\u97F3\u5668\u542F\u52A8\u5931\u8D25",{cause:f})}}let I=e.amplitude?.intervalMs??ma,A=e.amplitude?.boost??ya,_=e.amplitude?.smoothing??ga,T=e.amplitude?.minVolume??ha;function x(){let f=Math.floor(r/1e3*se),P=0;for(let R of i)P+=R.length;if(P>f){let R=f,O=[];for(let M of i){if(R<=0)break;M.length<=R?(O.push(M),R-=M.length):(O.push(M.slice(0,R)),R=0);}i.length=0,i.push(...O);}a=Math.min(a,r);let E=Math.max(0,Math.ceil(r/I));s.length>E&&(s.length=E);}async function v(){if(o!=="recording"){e.onMaxDuration?.();return}e.onMaxDuration?.(),o="paused";let f=S().then(()=>x());m=f;try{await f;}catch(P){console.warn("[im-browser] pauseAtMaxDuration settle failed",P);}}let u=setInterval(()=>{!l&&o==="recording"&&p()>=r&&(l=true,v());},250),g=null,C=null;try{let f=window.AudioContext??window.webkitAudioContext;if(f!==void 0){g=new f,g.state==="suspended"&&g.resume().catch(()=>{});let P=g.createMediaStreamSource(n),E=g.createAnalyser();E.fftSize=ba,E.smoothingTimeConstant=_,P.connect(E);let R=new Uint8Array(E.frequencyBinCount),O=new Uint8Array(E.fftSize),M=new vn;C=setInterval(()=>{if(o!=="recording"||d===null)return;E.getByteFrequencyData(R),E.getByteTimeDomainData(O);let k=Gr({timeDomain:O,frequency:R,sampleRate:g.sampleRate,fftSize:E.fftSize,boost:A}),U=M.next(k),N=U<T?0:U;s.push(Math.round(N*255)),e.onAmplitude?.(N);},I);}}catch(f){console.warn("[im-browser] amplitude analyser setup failed",f);}function p(){let f=o==="recording"&&d!==null?Date.now()-h:0;return a+f}function y(){u!==null&&(clearInterval(u),u=null),C!==null&&(clearInterval(C),C=null),g?.close().catch(()=>{}),g=null;for(let f of n.getTracks())f.stop();}function S(){if(c!==null)return c;let f=d;return f===null?Promise.resolve():(d=null,c=(async()=>{await new Promise(R=>{if(f.state==="inactive"){R();return}let O=setTimeout(()=>{console.warn("[im-browser] recorder onstop timed out, settling with received chunks"),R();},da);f.onstop=()=>{clearTimeout(O),R();},f.stop();});let P=new Blob(w,{type:f.mimeType||t||"audio/webm"});if(w=[],P.size===0)return;let E=await Ca(P,se,g);E.length!==0&&(i.push(E),a+=E.length/se*1e3);})().finally(()=>{c=null;}),c)}try{d=b();}catch(f){throw o="closed",y(),f}return {getState:()=>o,recordedMs:p,async pause(){o==="recording"&&(o="paused",await S(),(l||a>=r)&&x());},async resume(){o!=="paused"||l||(d=b(),o="recording");},async finish(){if(o==="closed")throw new H("empty-recording","\u5F55\u97F3\u4F1A\u8BDD\u5DF2\u7ED3\u675F");o="closed";let f=async()=>{try{m!==null?await m:await S(),x();}finally{y();}let P=Lr(i);if(P.length===0)throw new H("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let E=ct(P,se);if(E.length===0)throw new H("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let R=Math.min(s.length,Math.ceil(at/I));return {data:await Or(E,se),durationMs:Math.round(E.length/se*1e3)+st,waveform:s.slice(R),filename:`AUDIO_${Date.now()}.ogg`,mimeType:"audio/ogg"}};try{return await ze(f(),ua,"\u5F55\u97F3\u5B9A\u7A3F\u8D85\u65F6")}catch(P){throw y(),P instanceof H?P:new H("encode-failed","\u5F55\u97F3\u5B9A\u7A3F\u5931\u8D25",{cause:P})}},cancel(){o="closed";let f=d;if(d=null,f!==null&&(f.ondataavailable=null,f.onstop=null,f.state!=="inactive"))try{f.stop();}catch{}i.length=0,y();},async previewWav(){m!==null?await m:c!==null&&await c,x();let f=Lr(i),P=ct(f,se);if(P.length===0)throw new H("empty-recording","\u6682\u65E0\u53EF\u8BD5\u542C\u7684\u5F55\u97F3\u5185\u5BB9");return {wavData:In(it(P),se),durationMs:Math.round(P.length/se*1e3)}}}}function De(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 Hr(e,n){return e.length===n.length&&e.every((t,r)=>t===n[r])}var ce=class extends Error{constructor(n,t){super(n,t),this.name="ChannelKeyError";}};function Fr(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 ce("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(c){throw new ce("channel secret_key Base64 \u89E3\u7801\u5931\u8D25",{cause:c})}let a=Uint8Array.from(i,c=>c.charCodeAt(0)&255);if(a.length===0)throw new ce("channel secret_key Base64 \u89E3\u7801\u7ED3\u679C\u4E3A\u7A7A");let s=new Uint8Array(16);s.set(a.subarray(0,s.length));let d=n.length===16&&/^[\x20-\x7E]+$/.test(n)?Uint8Array.from(n,c=>c.charCodeAt(0)):void 0;return {canonical:s,...d===void 0?{}:{legacyAscii:d},metadata:{channelKeyCharLength:n.length,decodedByteLength:a.length,padByteCount:Math.max(0,16-a.length),legacyAsciiCandidate:d!==void 0}}}function Ia(e){let n=new Map,t=new Map,r=new Map,o=new Map,i=De(Hr);function a(v){return {canonical:v.canonical.slice(),...v.legacyAscii===void 0?{}:{legacyAscii:v.legacyAscii.slice()},metadata:{...v.metadata}}}function s(v){return [{strategy:"canonical-base64-pad",key:v.canonical.slice()},...v.legacyAscii===void 0?[]:[{strategy:"legacy-ascii16",key:v.legacyAscii.slice()}]]}function d(v){n.delete(v),t.delete(v),r.delete(v),o.set(v,(o.get(v)??0)+1);}function c(v){let u=o.get(v)??0,g=(async()=>{try{let C=await e.loadSecretKey(v);if(C===null||C.trim()==="")throw new ce(`channel secret_key \u7F3A\u5931\uFF08channelId=${v}\uFF09`);let p=Fr(C);return (o.get(v)??0)===u&&n.set(v,a(p)),p}catch(C){let p=C instanceof ce?C:new ce(`channel secret_key \u52A0\u8F7D\u5931\u8D25\uFF08channelId=${v}\uFF09`,{cause:C});throw e.onError?.(p.message,C),p}})().finally(()=>{t.get(v)===g&&t.delete(v);});return t.set(v,g),g}function m(v,u){let g=t.get(v);if(g!==void 0)return g;i.shouldRenegotiate(v,u.staleKey,n.get(v)?.canonical)&&d(v);}function w(v,u){let g=v.trim();if(g===""){let p=new ce("channel id \u4E0D\u80FD\u4E3A\u7A7A");return e.onError?.(p.message),Promise.reject(p)}if(u!==void 0){let p=m(g,u);if(p!==void 0)return p.then(a)}let C=n.get(g);return C!==void 0?Promise.resolve(a(C)):t.get(g)??c(g)}function h(v,u){let g=v.trim();if(g===""){let S=new ce("channel id \u4E0D\u80FD\u4E3A\u7A7A");return e.onError?.(S.message),Promise.reject(S)}if(u!==void 0){let S=m(g,u);if(S!==void 0)return S.then(f=>f.canonical.slice())}let C=n.get(g);if(C!==void 0)return Promise.resolve(C.canonical.slice());let p=r.get(g);if(p!==void 0)return p;let y=(t.get(g)??c(g)).then(S=>S.canonical.slice()).finally(()=>{r.get(g)===y&&r.delete(g);});return r.set(g,y),y}function l(v){return n.get(v.trim())?.canonical.slice()??null}async function b(v,u){let g=await w(v,u);return s(g)}function I(v){let u=n.get(v.trim());return u===void 0?[]:s(u)}function A(v){let u=n.get(v.trim());return u===void 0?null:{...u.metadata}}function _(v,u){let g=v.trim();if(g==="")throw new ce("channel id \u4E0D\u80FD\u4E3A\u7A7A");let C=Fr(u);d(g),i.reset(g),n.set(g,a(C));}function T(v){let u=v.trim();u!==""&&(d(u),i.reset(u));}function x(){let v=new Set([...n.keys(),...t.keys(),...r.keys(),...o.keys()]);for(let u of v)o.set(u,(o.get(u)??0)+1),i.reset(u);n.clear(),t.clear(),r.clear();}return {getChannelKey:h,getCachedChannelKey:l,getChannelKeyCandidates:b,getCachedChannelKeyCandidates:I,getCachedChannelKeyMetadata:A,primeChannelKey:_,clearChannelKey:T,clearAll:x}}function ut(){let e=globalThis.scheduler;return typeof e?.yield=="function"?e.yield():new Promise(n=>setTimeout(n,0))}var ft=2654435769,$r=16,Ue=8,lt=16,jr=32;function qr(e){if(e.length<lt)throw new Error(`TEA key \u957F\u5EA6\u4E0D\u8DB3\uFF1A${e.length}\uFF0C\u9700 \u2265 ${lt} \u5B57\u8282`);let n=new DataView(e.buffer,e.byteOffset,lt);return [n.getUint32(0,true),n.getUint32(4,true),n.getUint32(8,true),n.getUint32(12,true)]}function mt([e,n],[t,r,o,i]){let a=e>>>0,s=n>>>0,d=Math.imul(ft,16)>>>0;for(let c=0;c<$r;c++)s=s-(Math.imul(a,16)+o^a+d^(a>>>5)+i)>>>0,a=a-(Math.imul(s,16)+t^s+d^(s>>>5)+r)>>>0,d=d-ft>>>0;return [a,s]}function gt([e,n],[t,r,o,i]){let a=e>>>0,s=n>>>0,d=0;for(let c=0;c<$r;c++)d=d+ft>>>0,a=a+(Math.imul(s,16)+t^s+d^(s>>>5)+r)>>>0,s=s+(Math.imul(a,16)+o^a+d^(a>>>5)+i)>>>0;return [a,s]}function We(e,n,t,r){let o=qr(n),i=new Uint8Array(e.length),a=Math.floor(e.length/Ue),s=r===void 0?a:Math.min(a,Math.floor(r/Ue)),d=new DataView(e.buffer,e.byteOffset,e.byteLength),c=new DataView(i.buffer);for(let w=0;w<s;w++){let h=w*Ue,[l,b]=t([d.getUint32(h,true),d.getUint32(h+4,true)],o);c.setUint32(h,l,true),c.setUint32(h+4,b,true);}let m=s*Ue;return m<e.length&&i.set(e.subarray(m),m),i}function Ye(e,n){return We(n,e,mt)}function Qe(e,n){return We(n,e,gt)}function Jr(e,n){return We(n,e,gt,jr)}function Vr(e,n){return We(n,e,mt,jr)}var va=1024*1024;function Sa(){return ut()}function pt(e){if(e?.aborted)throw new DOMException("TEA \u5206\u5757\u5904\u7406\u5DF2\u53D6\u6D88","AbortError")}async function yt(e,n,t,r=va,o={}){if(!Number.isInteger(r)||r<=0||r%Ue!==0)throw new RangeError(`TEA \u5206\u5757\u5927\u5C0F\u5FC5\u987B\u662F ${Ue} \u7684\u6B63\u6574\u6570\u500D\uFF1A${r}`);qr(e);let i=t==="encrypt"?gt:mt,a=o.yieldToMain??Sa,s=n.size,d=[],c=0;for(;c<s;){pt(o.signal);let m=Math.min(c+r,s),w=new Uint8Array(await n.slice(c,m).arrayBuffer());pt(o.signal),d.push(new Blob([We(w,e,i)])),c=m,o.onProgress?.(c,s),c<s&&await a();}return pt(o.signal),new Blob(d)}var zr=8,Sn=16;function Aa(e){let n=W.md.md5.create();return n.update(e,"utf8"),n.digest().toHex()}function Yr(e){return new TextEncoder().encode(e)}function Ma(e){let n=e.length;for(;n>0&&e[n-1]===0;)n-=1;return new TextDecoder().decode(e.subarray(0,n))}function _a(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 xa(e){let n="";for(let t of e)n+=String.fromCharCode(t);return btoa(n)}function Ea(e){let n=Math.ceil(e.length/zr)*zr;if(n===e.length)return e;let t=new Uint8Array(n);return t.set(e),t}function Qr(e,n=Aa){let t=e.trim();if(t==="")throw new Error("collect TEA key: userId \u4E3A\u7A7A");let r=n(t).replace(/[^0-9a-f]/gi,"");if(r.length<Sn)throw new Error("collect TEA key: MD5 \u957F\u5EA6\u4E0D\u8DB3");let o=Yr(r.slice(0,Sn).toUpperCase());if(o.length<Sn)throw new Error("collect TEA key: \u6D3E\u751F\u7ED3\u679C\u4E0D\u8DB3 16 \u5B57\u8282");return o.subarray(0,Sn)}function Xr(e,n,t){return xa(Qe(Qr(n,t),Ea(Yr(e))))}function Ra(e,n,t){return Ma(Ye(Qr(n,t),_a(e)))}function ka(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function ht(e){let n=e.trim();if(n===""||!n.startsWith("{"))return null;try{return ka(JSON.parse(n))}catch{return null}}function Ta(e){let n=e.trim(),t=n.indexOf("}");return t>=0?n.slice(0,t+1):n}function Zr(e,n,t){let r=ht(e);if(r!==null)return r;if(e.trim()===""||n.trim()==="")return null;try{let o=Ra(e,n,t);return ht(o)??ht(Ta(o))}catch{return null}}var Da="core";var Xe=class extends Error{code=502;constructor(n,t){super(`core JSON \u4F20\u8F93\u5931\u8D25\uFF1A${n||"unknown transport error"}`,t===void 0?void 0:{cause:t}),this.name="CoreJsonTransportError";}},z=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 D(e,n,t,r){let o=r!==void 0&&"responseMode"in r&&r.responseMode==="strict",i;try{i=await e(n,{target:Da,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 Xe(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 Xe(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 eo(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 D(e,"/user/encrypt_info/info",t,r)}function Ua(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 Oa(e){let n=e.clientType,t=new Map,r=new Map,o=De((h,l)=>h===l),i=null,a=null;function s(h,l){e.onError?.(h,l);}function d(){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 c(h){let l;try{l=await d();}catch(_){return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u751F\u6210\u4E34\u65F6 RSA \u5BC6\u94A5\u5931\u8D25\uFF08userId=${h}\uFF09`,_),null}let b;try{b=await eo(e.client,{publicKey:l.publicKeyBase64,clientType:n});}catch(_){return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u8BF7\u6C42\u5F02\u5E38\uFF08userId=${h}\uFF09`,_),null}if(b.data===null)return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u4E1A\u52A1\u5931\u8D25\uFF08userId=${h}\uFF0Ccode=${b.code}\uFF09`),null;let I=b.data.prv_key??b.data.prvKey??"",A=String(b.data.version??"").trim();if(I==="")return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u54CD\u5E94\u7F3A\u5C11 prv_key\uFF08userId=${h}\uFF09`),null;try{let _=e.crypto.rsaDecryptPkcs1({data:Ua(I),privateKey:l.privateKey}),T=new TextDecoder().decode(_).trim();if(T==="")return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u89E3\u51FA\u7684\u79C1\u94A5\u4E3A\u7A7A\uFF08userId=${h}\uFF09`),null;let x={privateKey:T,version:A};return t.set(h,x),x}catch(_){return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u4E34\u65F6\u79C1\u94A5\u89E3 prv_key \u5931\u8D25\uFF08userId=${h}\uFF09`,_),null}}function m(h,l){let b=h.trim();if(b==="")return Promise.resolve(null);if(l!==void 0){let T=r.get(b);if(T!==void 0)return T;o.shouldRenegotiate(b,l.staleKey,t.get(b)?.privateKey)&&t.delete(b);}let I=t.get(b);if(I!==void 0)return Promise.resolve(I);let A=r.get(b);if(A!==void 0)return A;let _=c(b).finally(()=>{r.get(b)===_&&r.delete(b);});return r.set(b,_),_}function w(h){return t.get(h.trim())??null}return {getUserPrivateKey:m,getCachedPrivateKey:w}}function no(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 D(e,"/user_group/encrypt_info",t,r)}function Ba(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 Na(e){let n=e.clientType,t=new Map,r=new Map,o=new Map,i=De((l,b)=>l===b),a=null,s=null;function d(){if(a!==null)return Promise.resolve(a);if(s!==null)return s;let l=Promise.resolve().then(()=>e.crypto.generateTempKeyPair()).then(b=>(a=b,b)).finally(()=>{s===l&&(s=null);});return s=l,l}async function c(l){let b=o.get(l)??0,I;try{I=await d();}catch(u){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u751F\u6210\u4E34\u65F6 RSA \u5BC6\u94A5\u5931\u8D25\uFF08groupId=${l}\uFF09`,u),null}let A;try{A=await no(e.client,{groupId:l,publicKey:I.publicKeyBase64,clientType:n});}catch(u){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u8BF7\u6C42\u5F02\u5E38\uFF08groupId=${l}\uFF09`,u),null}if(A.data===null)return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u4E1A\u52A1\u5931\u8D25\uFF08groupId=${l}\uFF0Ccode=${A.code}\uFF09`),null;let _=A.data,T=String(_.prv_key??_.prvKey??_.private_key??"").trim(),x=String(_.pub_key??_.pubKey??_.public_key??"").trim(),v=String(_.version??"").trim();if(T==="")return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u54CD\u5E94\u7F3A\u5C11 prv_key\uFF08groupId=${l}\uFF09`),null;try{let u=e.crypto.rsaDecryptPkcs1({data:Ba(T),privateKey:I.privateKey}),g=new TextDecoder().decode(u).trim();if(g==="")return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u89E3\u51FA\u7684\u7FA4\u79C1\u94A5\u4E3A\u7A7A\uFF08groupId=${l}\uFF09`),null;let C={privateKey:g,publicKey:x,version:v};return (o.get(l)??0)===b&&t.set(l,C),C}catch(u){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u4E34\u65F6\u79C1\u94A5\u89E3 prv_key \u5931\u8D25\uFF08groupId=${l}\uFF09`,u),null}}function m(l,b){let I=l.trim();if(I==="")return Promise.resolve(null);if(b!==void 0){let x=r.get(I);if(x!==void 0)return x;i.shouldRenegotiate(I,b.staleKey,t.get(I)?.privateKey)&&t.delete(I);}let A=t.get(I);if(A!==void 0)return Promise.resolve(A);let _=r.get(I);if(_!==void 0)return _;let T=c(I).finally(()=>{r.get(I)===T&&r.delete(I);});return r.set(I,T),T}function w(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:m,getCachedGroupKeys:w,getCachedGroupKeyVersion:l=>t.get(l.trim())?.version??null,clearGroupKeys:h}}async function Ze(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 D(e,"/user/info/other",t,r)).data}function Ka(e){let n=e.clientType,t=new Map,r=new Map;async function o(a){try{let d=((await Ze(e.client,{userId:a,clientType:n}))?.public_key??"").trim();return d===""?(e.onError?.(`\u53D6\u5BF9\u7AEF\u516C\u94A5\uFF1A/user/info/other \u65E0 public_key\uFF08userId=${a}\uFF09`),null):(t.set(a,d),d)}catch(s){return e.onError?.(`\u53D6\u5BF9\u7AEF\u516C\u94A5\u8BF7\u6C42\u5F02\u5E38\uFF08userId=${a}\uFF09`,s),null}}function i(a,s){let d=a.trim();if(d==="")return Promise.resolve(null);s?.force===true&&t.delete(d);let c=t.get(d);if(c!==void 0)return Promise.resolve(c);let m=r.get(d);if(m!==void 0)return m;let w=o(d).finally(()=>{r.get(d)===w&&r.delete(d);});return r.set(d,w),w}return {getPeerPublicKey:i}}var Se=16;function to(e){let n="";for(let t of e)n+=String.fromCharCode(t);return n}function ro(e){let n=new Uint8Array(e.length);for(let t=0;t<e.length;t++)n[t]=e.charCodeAt(t)&255;return n}function oo(e){return e.replace(/(.{64})/g,`$1
|
|
2
2
|
`).trim()}function Ga(e){return e.replace(/-----BEGIN[^-]+-----/g,"").replace(/-----END[^-]+-----/g,"").replace(/\s+/g,"")}function La(e){let n=(e??"").trim();if(n==="")throw new Error("RSA \u79C1\u94A5\u4E3A\u7A7A");if(n.includes("-----BEGIN"))return W.pki.privateKeyFromPem(n);let t=n.replace(/\s+/g,""),r=[];try{return W.pki.privateKeyFromAsn1(W.asn1.fromDer(W.util.decode64(t)))}catch(i){r.push(i);}let o=oo(t);for(let i of ["PRIVATE KEY","RSA PRIVATE KEY"])try{return W.pki.privateKeyFromPem(`-----BEGIN ${i}-----
|
|
3
3
|
${o}
|
|
4
4
|
-----END ${i}-----`)}catch(a){r.push(a);}throw new Error(`RSA \u79C1\u94A5\u89E3\u6790\u5931\u8D25\uFF08\u5DF2\u8BD5 PKCS1-DER / PKCS8-PEM / PKCS1-PEM\uFF09\uFF1A${r[0]instanceof Error?r[0].message:String(r[0])}`)}function io(e){let n=La(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 d=0;d<r.length;d+=t){let c=Math.min(d+t,r.length);try{let m=n.decrypt(to(r.subarray(d,c)),"RSAES-PKCS1-V1_5");o.push(ro(m));}catch(m){let w=m instanceof Error?m.message:String(m);throw new Error(`RSA-PKCS1 \u89E3\u5BC6\u5931\u8D25\uFF08\u5BC6\u6587 ${r.length}B\uFF0C\u5757 ${d}..${c}\uFF0CkeySize ${t}B\uFF0C\u79C1\u94A5 ${n.n.bitLength()}bit\uFF09\uFF1A${w}`)}}let i=o.reduce((d,c)=>d+c.length,0),a=new Uint8Array(i),s=0;for(let d of o)a.set(d,s),s+=d.length;return a}function Ha(e){let n=io({data:e.secretKey,privateKey:e.privateKey});if(n.length<Se)throw new Error(`\u7AEF\u5230\u7AEF\u89E3\u5BC6\u5931\u8D25\uFF1ARSA \u89E3\u51FA\u7684 teaKey \u957F\u5EA6 ${n.length} < ${Se}`);return Ye(n,e.cipherData)}function Fa(e){let n=(e??"").trim();if(n==="")throw new Error("RSA \u516C\u94A5\u4E3A\u7A7A");if(n.includes("-----BEGIN"))return W.pki.publicKeyFromPem(n);let t=n.replace(/\s+/g,""),r=[];try{return W.pki.publicKeyFromAsn1(W.asn1.fromDer(W.util.decode64(t)))}catch(i){r.push(i);}let o=oo(t);for(let i of ["PUBLIC KEY","RSA PUBLIC KEY"])try{return W.pki.publicKeyFromPem(`-----BEGIN ${i}-----
|
|
5
5
|
${o}
|
|
6
|
-
-----END ${i}-----`)}catch(a){r.push(a);}throw new Error(`RSA \u516C\u94A5\u89E3\u6790\u5931\u8D25\uFF08\u5DF2\u8BD5 SPKI-DER / SPKI-PEM / PKCS1-PEM\uFF09\uFF1A${r[0]instanceof Error?r[0].message:String(r[0])}`)}function ao(){let e=new Uint8Array(Se),n=new Uint8Array(1);for(let t=0;t<Se;t++){let r=0;do globalThis.crypto.getRandomValues(n),r=n[0]??0;while(r===0);e[t]=r;}return e}function $a(e,n){if(n.length===0)throw new Error("RSA \u52A0\u5BC6\uFF1A\u660E\u6587\u4E3A\u7A7A");let t=Fa(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 d=0;d<n.length;d+=r){let c=Math.min(d+r,n.length),m=t.encrypt(to(n.subarray(d,c)),"RSAES-PKCS1-V1_5");o.push(ro(m));}let i=o.reduce((d,c)=>d+c.length,0),a=new Uint8Array(i),s=0;for(let d of o)a.set(d,s),s+=d.length;return a}function ja(e){let n=e.teaKey??ao();if(n.length<Se)throw new Error(`\u7AEF\u5230\u7AEF\u52A0\u5BC6\u5931\u8D25\uFF1AteaKey \u957F\u5EA6 ${n.length} < ${Se}`);let t=n.subarray(0,Se),r=Qe(t,e.plain);return {secretKey:$a(e.publicKey,t),cipherData:r}}function qa(e){return Ye(e.teaKey,e.cipherData)}function Ja(e){return Qe(e.teaKey,e.plain)}function Va(e){return yt(e.teaKey,e.plain,"encrypt",void 0,e.signal===void 0?{}:{signal:e.signal})}function za(e){return yt(e.teaKey,e.cipherData,"decrypt",void 0,e.signal===void 0?{}:{signal:e.signal})}function Wa(e){return Jr(e.teaKey,e.plain)}function Ya(e){return Vr(e.teaKey,e.cipherData)}function Qa(){return new Promise((e,n)=>{W.pki.rsa.generateKeyPair({bits:2048,e:65537,workers:-1},(t,r)=>{if(t){n(t);return}e({publicKeyBase64:Ga(W.pki.publicKeyToPem(r.publicKey)),privateKey:W.pki.privateKeyToPem(r.privateKey)});});})}function Xa(){return {decryptEndToEnd:Ha,encryptEndToEnd:ja,decryptSymmetric:qa,encryptSymmetric:Ja,encryptSymmetricChunked:Va,decryptSymmetricChunked:za,encryptFileSimple:Wa,decryptFileSimple:Ya,randomTeaKey:ao,generateTempKeyPair:Qa,rsaDecryptPkcs1:io}}function bt(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function en(e,n){return D(e,"/friend/apply/list_paginated",{type:n.listType,page:n.page,page_size:n.pageSize},bt(n.clientType,"GET"))}function nn(e,n){return D(e,"/friend/apply/agree",{id:n.applicationId},bt(n.clientType,"POST"))}function tn(e,n){return D(e,"/friend/apply/del",{id:n.applicationId},bt(n.clientType,"POST"))}var so=50,co=20,uo=1,wt=2,Ct=3,Za=4,es=5,lo=0,ns=1,ts=2;function rs(e){switch(e){case lo:case ns:case ts:return e;default:return}}var Oe=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},Q=class extends Error{constructor(n){super(`application \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ApplicationMappingError";}};function F(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function po(e){let n=F(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 fo(e){let n=F(e.status);if(e.status===void 0||n==="")return true;let t=Number(n),r=rs(t);if(r===void 0)throw new Q(`\u672A\u77E5\u7533\u8BF7\u72B6\u6001\uFF1A${n}`);return r===lo}function os(e){let n=F(e.type);if(n==="")return true;if(Number(n)!==uo)throw new Q(`\u8054\u7CFB\u4EBA\u7533\u8BF7\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${n}`);return true}function is(e){let n=Number(F(e.type));if(n!==wt&&n!==Ct&&n!==Za&&n!==es)throw new Q(`GROUP/CHANNEL \u6DF7\u5408\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${F(e.type)||"<empty>"}`);return n}function An(e){if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>so)throw new Q(`limit \u5FC5\u987B\u4E3A 1-${so}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit};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 mo(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 Pt(e){let n=e.trim();if(n==="")throw new Q("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");return n}function as(e){let n=Pt(F(e.id)||F(e.aid)),t=F(e.user_id)||F(e.user_info?.user_id),r=F(e.nick_name??e.nickname??e.name)||F(e.user_info?.nick_name??e.user_info?.nickname??e.user_info?.name);if(t===""||r==="")throw new Q(`\u8054\u7CFB\u4EBA\u7533\u8BF7\u4EBA\u8EAB\u4EFD\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let o=F(e.head_img_url??e.avatar)||F(e.user_info?.head_img_url??e.user_info?.avatar),i=F(e.user_info?.mid),a=po(e.create_time??e.createTime??e.update_version);return {applicationId:n,applicantId:t,applicantName:r,...o===""?{}:{applicantAvatar:o},...i===""?{}:{applicantDisplayId:i},message:F(e.remarks??e.introduce_self),...a===void 0?{}:{createdAt:a}}}function ss(e){let n=Pt(F(e.id)||F(e.aid)),t=F(e.group_id)||F(e.group_info?.group_id);if(t==="")throw new Q(`GROUP id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let r=F(e.user_id)||F(e.user_info?.user_id),o=F(e.nick_name??e.nickname??e.name)||F(e.user_info?.nick_name??e.user_info?.nickname??e.user_info?.name);if(r===""||o==="")throw new Q(`GROUP \u7533\u8BF7\u4EBA\u6216\u9080\u8BF7\u4EBA\u8EAB\u4EFD\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let i=F(e.head_img_url??e.avatar)||F(e.user_info?.head_img_url??e.user_info?.avatar),a=F(e.user_info?.mid),s=F(e.group_info?.name??e.group_info?.group_name);if(s==="")throw new Q(`GROUP \u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let d=F(e.group_info?.head_img_url??e.group_info?.avatar),c=po(e.create_time??e.createTime??e.update_version);return {applicationId:n,groupId:t,kind:Number(e.type)===Ct?"invite":"request",actor:{id:r,name:o,...i===""?{}:{avatarUrl:i},...a===""?{}:{displayId:a}},target:{id:t,name:s,...d===""?{}:{avatarUrl:d}},message:F(e.remarks??e.introduce_self),...c===void 0?{}:{createdAt:c}}}async function Mn(e,n,t){let r=await t(e.client,{applicationId:Pt(n),clientType:e.clientType});if(!r.ok)throw new Oe(r.code,r.message)}function cs(e){async function n(t){let{pageSize:r}=An(t),{page:o}=An(t);for(let i=0;i<co;i+=1){let a=await en(e.client,{listType:uo,page:o,pageSize:r,clientType:e.clientType});if(!a.ok)throw new Oe(a.code,a.message);let s=mo(a.data),d=s.filter(w=>os(w)&&fo(w)).map(as),c=s.length<r,m=o+1;if(d.length>0||c)return {items:d,exhausted:c,...c?{}:{nextCursor:String(m)}};o=m;}return {items:[],exhausted:false,nextCursor:String(o)}}return {listPendingApplications:n,acceptApplication:t=>Mn(e,t,nn),ignoreApplication:t=>Mn(e,t,tn)}}function ds(e){async function n(t){let{pageSize:r}=An(t),{page:o}=An(t);for(let i=0;i<co;i+=1){let a=await en(e.client,{listType:wt,page:o,pageSize:r,clientType:e.clientType});if(!a.ok)throw new Oe(a.code,a.message);let s=mo(a.data),d=s.filter(w=>{let h=is(w);return (h===wt||h===Ct)&&fo(w)}).map(ss),c=s.length<r,m=o+1;if(d.length>0||c)return {items:d,exhausted:c,...c?{}:{nextCursor:String(m)}};o=m;}return {items:[],exhausted:false,nextCursor:String(o)}}return {listPendingApplications:n,acceptApplication:t=>Mn(e,t,nn),ignoreApplication:t=>Mn(e,t,tn)}}function L(e){let n=typeof e=="string"||typeof e=="number"?String(e).trim():"";return n===""?void 0:n}function us(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 ls(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 ps(e){let n=Number(e.product_id),t=us(e.is_dynamic);return {...ls(e.config_type),...L(e.appid)===void 0?{}:{appId:L(e.appid)},...Number.isInteger(n)?{productId:n}:{},...L(e.domain)===void 0?{}:{domain:L(e.domain)},...L(e.suffix_address)===void 0?{}:{suffixAddress:L(e.suffix_address)},...L(e.developer_id)===void 0?{}:{developerId:L(e.developer_id)},...L(e.introduction)===void 0?{}:{introduction:L(e.introduction)},...L(e.icon)===void 0?{}:{icon:L(e.icon)},...L(e.icon_small)===void 0?{}:{iconSmall:L(e.icon_small)},...L(e.icon_medium)===void 0?{}:{iconMedium:L(e.icon_medium)},...L(e.icon_large)===void 0?{}:{iconLarge:L(e.icon_large)},...t===void 0?{}:{isDynamic:t},...L(e.lang_types)===void 0?{}:{langTypes:L(e.lang_types)},...L(e.currency_types)===void 0?{}:{currencyTypes:L(e.currency_types)},...L(e.simple_chinese_name)===void 0?{}:{nameZhHans:L(e.simple_chinese_name)},...L(e.unsimplified_chinese_name)===void 0?{}:{nameZhHant:L(e.unsimplified_chinese_name)},...L(e.english_name)===void 0?{}:{nameEn:L(e.english_name)},...L(e.vietnamese_name)===void 0?{}:{nameVi:L(e.vietnamese_name)},...L(e.thai_name)===void 0?{}:{nameTh:L(e.thai_name)},...L(e.h5_url)===void 0?{}:{h5Url:L(e.h5_url)}}}function go(e,n){return Array.isArray(e.mini_program_rel_list)?e.mini_program_rel_list.filter(t=>t!==null&&typeof t=="object").map(t=>ps(t)):n.source==="info"?[]:void 0}function yo(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function ho(e,n){return D(e,"/user_radio/list",{user_id:n.userId,update_version:n.updateVersion,page:n.page,page_size:n.pageSize},yo(n.clientType,"GET"))}function bo(e,n){return D(e,"/user_radio/info",{radio_id:n.channelId},yo(n.clientType,"POST"))}var wo=500,rn=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},fe=class extends Error{constructor(n){super(`CHANNEL profile \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelProfileMappingError";}};function Co(e,n){let t=typeof e=="string"||typeof e=="number"?String(e).trim():"";if(t==="")throw new fe(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function Ae(e){let n=typeof e=="string"||typeof e=="number"?String(e).trim():"";return n===""?void 0:n}function Be(e){return Number(e)===1}function fs(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 ms(e,n){return Number(e)===1?"member":Number(e)===9?"admin":Number(e)===10?"owner":n===false?"guest":"unknown"}function gs(e){let n=e.is_in===void 0?void 0:Be(e.is_in),t=Be(e.radio_user?.is_del),r=Be(e.radio_user?.is_black);return Number(e.status)===3?"dismissed":t&&r?"removed":r?"blacklisted":t?"left":n===false?"guest":e.status!==void 0&&Number(e.status)!==2?"unknown_restricted":"active"}function ys(e,n,t){let r=Ae(e.radio_user?.user_id),o=e.radio_setting?.un_speaking_user_ids,i=Ae(e.radio_setting?.un_speaking_period);return {role:n,baseState:t,resolvedState:t,allMembersMuted:Be(e.radio_setting?.is_unspeeking_all),currentUserMuted:r!==void 0&&Array.isArray(o)&&o.map(String).includes(r),...i===void 0?{}:{mutePeriod:i}}}function hs(e){if(e!=null)return Number(e)===1?"standard":Number(e)===2?"competition":"unknown"}function bs(e){let n=Ae(e);return n!==void 0&&/^\d+$/.test(n)?n.replace(/^0+(?=\d)/,""):void 0}function ws(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 Po(e,n,t){let r=Co(e.radio_id??e.id,"id"),o=Co(e.name,"name"),i=e.is_in===void 0?void 0:Be(e.is_in),a=ms(e.radio_user?.role_id,i),s=gs(e),d=ys(e,a,s),c=Ca$1({channelState:s,snapshot:d,nowMs:n}),m={...d,resolvedState:c.channelState},w=bs(e.update_version),h=Ae(e.head_img_url),l=Ae(e.desc),b=Ae(e.user_id),I=Number(e.total_users),A=hs(e.type),_=fs(e.radio_setting?.is_unvisit_other),T=e.verify_way===void 0?void 0:Number(e.verify_way),x=T!==void 0&&Number.isSafeInteger(T)?T:void 0,v=Ae(e.invite_code),u=go(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(I)&&I>=0?{memberCount:I}:{},...x===void 0?{}:{verifyType:x},...v===void 0?{}:{inviteCode:v},role:a,permissions:c.permissions,channelState:c.channelState,allMembersMuted:m.allMembersMuted,..._===void 0?{}:{memberPrivateChatDisabled:_},accessSnapshot:m,...e.radio_user?.is_undisturb===void 0?{}:{muted:Be(e.radio_user.is_undisturb)},...A===void 0?{}:{channelKind:A},...w===void 0?{}:{updateVersion:w},...u===void 0?{}:{miniProgramRels:u}}}function Io(e){return {...e,updatedAt:Date.now()}}function vo(e,n){if(e.accessSnapshot===void 0)return {...e,permissions:Ba$1(e.role,e.channelState)};let t=Ca$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 It(e,n){let{updatedAt:t,...r}=vo(e,n);return r}function Cs(e){let n=new Map,t=new Map,r=new Map,o="0",i=false,a=null,s=0,d=null,c=0;function m(){if(i)return Promise.resolve();if(a!==null)return a;let l=s;return a=(async()=>{if(e.storage!==void 0){let[b,I]=await Promise.all([e.storage.getChannelProfiles(),e.storage.getChannelListVersion()]);if(l!==s)return;for(let A of b)n.set(A.id,vo(A,e.now?.()??Date.now()));o=/^\d+$/.test(I)?I:"0";}i=true;})().finally(()=>{a=null;}),a}function w(l){if(l?.forceRefresh!==true&&d!==null)return d;let b=++c,I=(async()=>{await m();let A=(await e.getUserId()).trim();if(A==="")throw new fe("user_id \u4E0D\u80FD\u4E3A\u7A7A");let _=l?.forceRefresh===true?"0":o,T=[];for(let v=1;;v+=1){let u=await ho(e.client,{userId:A,updateVersion:_,page:v,pageSize:wo,clientType:e.clientType});if(!u.ok)throw new rn(u.code,u.message);if(u.data===null)break;if(!Array.isArray(u.data))throw new fe("list data \u5FC5\u987B\u662F\u6570\u7EC4");let g=e.now?.()??Date.now(),C=u.data.map(p=>Po(p,g,"list"));if(T.push(...C),C.length<wo)break}if(b!==c)return [...n.values()].map(v=>It(v,e.now?.()??Date.now()));let x=o;for(let v of T)n.set(v.id,Io(v)),v.updateVersion!==void 0&&(x=ws(x,v.updateVersion));return o=x,e.storage!==void 0&&(await e.storage.saveChannelProfiles([...n.values()]),await e.storage.saveChannelListVersion(o)),[...n.values()].map(v=>It(v,e.now?.()??Date.now()))})();return d=I,I.finally(()=>{d===I&&(d=null);}).catch(()=>{}),I}function h(l,b){let I=l.trim();if(I==="")return Promise.reject(new fe("channel id \u4E0D\u80FD\u4E3A\u7A7A"));let A=b?.forceRefresh===true;if(!A){let x=t.get(I);if(x!==void 0)return x}let _=(r.get(I)??0)+1;A&&r.set(I,_);let T=(async()=>{await m();let x=n.get(I);if(!A&&x!==void 0&&x.miniProgramRels!==void 0)return It(x,e.now?.()??Date.now());let v=await bo(e.client,{channelId:I,clientType:e.clientType});if(!v.ok)throw new rn(v.code,v.message);if(v.data===null||v.data===void 0)throw new fe("info data \u4E0D\u80FD\u4E3A\u7A7A");let u=Po(v.data,e.now?.()??Date.now(),"info");if(u.id!==I)throw new fe(`info id \u4E0D\u5339\u914D\uFF1A\u8BF7\u6C42 ${I}\uFF0C\u54CD\u5E94 ${u.id}`);if((r.get(I)??_)===_){let g=Io(u);n.set(I,g),await e.storage?.saveChannelProfiles([g]);}return u})().finally(()=>{t.get(I)===T&&t.delete(I);});return r.set(I,_),t.set(I,T),T}return {listProfiles:w,getProfile:h,clearCache(){s+=1,c+=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(),d=null,o="0",i=true,a=null;}}}function So(e,n){return en(e,{listType:2,page:n.page,pageSize:n.pageSize,clientType:n.clientType})}function Ao(e,n){return nn(e,n)}function Mo(e,n){return tn(e,n)}var Ps=20,_o=50,Is=20,vs=2,Ss=3,Eo=4,As=5,Ro=0,Ms=1,_s=2;function xs(e){switch(e){case Ro:case Ms:case _s:return e;default:return}}var on=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},te=class extends Error{constructor(n){super(`CHANNEL join application \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelJoinApplicationMappingError";}};function j(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Es(e){let n=j(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 Rs(e){let n=j(e.status);if(e.status===void 0||n==="")return true;let t=Number(n),r=xs(t);if(r===void 0)throw new te(`\u672A\u77E5\u7533\u8BF7\u72B6\u6001\uFF1A${n}`);return r===Ro}function ks(e){let n=Number(j(e.type));if(n!==vs&&n!==Ss&&n!==Eo&&n!==As)throw new te(`GROUP/CHANNEL \u6DF7\u5408\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${j(e.type)||"<empty>"}`);return n}function Ts(e){let n=j(e.id)||j(e.aid),t=j(e.user_id)||j(e.user_info?.user_id),r=e.radio_info??e.channel_info,o=j(e.radio_id)||j(e.channel_id)||j(r?.radio_id)||j(r?.channel_id);if(n==="")throw new te("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");if(t==="")throw new te(`\u7533\u8BF7\u4EBA id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);if(o==="")throw new te(`CHANNEL id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let i=j(e.user_info?.nick_name)||j(e.user_info?.nickname)||j(e.user_info?.name)||t,a=j(e.user_info?.head_img_url)||j(e.user_info?.avatar),s=j(e.user_info?.mid),d=j(r?.name)||j(r?.radio_name)||j(r?.channel_name)||o,c=j(r?.head_img_url)||j(r?.avatar),m=Es(e.create_time??e.createTime);return {applicationId:n,applicantId:t,applicantName:i,...a===""?{}:{applicantAvatar:a},...s===""?{}:{applicantDisplayId:s},channelId:o,channelName:d,...c===""?{}:{channelAvatar:c},message:j(e.remarks)||j(e.introduce_self),...m===void 0?{}:{createdAt:m}}}function xo(e){if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>_o)throw new te(`limit \u5FC5\u987B\u4E3A 1-${_o}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit||Ps};if(!/^[1-9]\d*$/.test(e.cursor))throw new te("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let n=Number(e.cursor);if(!Number.isSafeInteger(n))throw new te("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {page:n,pageSize:e.limit}}function Ds(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 te("data.list \u5FC5\u987B\u662F\u6570\u7EC4\uFF0C\u6216\u5728 count=0 \u65F6\u4E3A null")}function Us(e){let n=e.trim();if(n==="")throw new te("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");return n}function Os(e){async function n(r){let{pageSize:o}=xo(r),{page:i}=xo(r);for(let a=0;a<Is;a+=1){let s=await So(e.client,{page:i,pageSize:o,clientType:e.clientType});if(!s.ok)throw new on(s.code,s.message);let d=Ds(s.data),c=d.filter(h=>ks(h)===Eo&&Rs(h)).map(Ts),m=d.length<o,w=i+1;if(c.length>0||m)return {items:c,exhausted:m,...m?{}:{nextCursor:String(w)}};i=w;}return {items:[],exhausted:false,nextCursor:String(i)}}async function t(r,o){let i=await o(e.client,{applicationId:Us(r),clientType:e.clientType});if(!i.ok)throw new on(i.code,i.message)}return {listJoinApplications:n,acceptJoinApplication:r=>t(r,Ao),ignoreJoinApplication:r=>t(r,Mo)}}function _n(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function vt(e,n){return D(e,"/user_radio/users",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},_n(n.clientType,"GET"))}function St(e,n){return D(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"},_n(n.clientType,"POST"))}function ko(e,n){return D(e,"/user_radio/admins",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},_n(n.clientType,"GET"))}function To(e,n){return D(e,"/user_radio/user/infos",{radio_id:n.channelId,user_ids:n.userIds.join(",")},_n(n.clientType,"POST"))}var xn=18,Bs=12,Ns=300*1e3,Ks=32,an=class extends Error{constructor(t,r){super(`CHANNEL member HTTP \u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`);this.code=t;this.name="ChannelMemberHttpError";}code},V=class extends Error{constructor(n){super(`CHANNEL member \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelMemberMappingError";}};function me(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Gs(e){return Number(e)===1?"member":Number(e)===9?"admin":Number(e)===10?"owner":"unknown"}function Ls(e){let n=me(e);return /^\d+$/.test(n)?n.replace(/^0+(?=\d)/,""):void 0}function At(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 Do(e,n){let t=me(e.radio_id);if(t==="")throw new V("radio_id \u4E0D\u80FD\u4E3A\u7A7A");if(t!==n)throw new V(`\u6210\u5458\u9891\u9053 ${t} \u4E0E\u8BF7\u6C42\u9891\u9053 ${n} \u4E0D\u4E00\u81F4`);let r=me(e.user_id)||me(e.user_info?.user_id);if(r==="")throw new V("user_id \u4E0D\u80FD\u4E3A\u7A7A");if(e.is_master!==void 0){let c=Number(e.is_master);if(c!==0&&c!==1)throw new V(`is_master \u975E\u6CD5\uFF1A${me(e.is_master)}`)}let o=me(e.nick_name),i=me(e.user_info?.nick_name)||me(e.user_info?.name),a=me(e.user_info?.head_img_url),s=Ls(e.update_version),d=Number(e.join_type);return {userId:r,...o===""?{}:{nickname:o},displayName:o||i||r,...a===""?{}:{avatar:a},role:Gs(e.role_id),...Number.isInteger(d)?{joinType:d}:{},...s===void 0?{}:{updateVersion:s}}}function Hs(e){if(e.channelId.trim()==="")throw new V("channelId \u4E0D\u80FD\u4E3A\u7A7A");if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>xn)throw new V(`limit \u5FC5\u987B\u4E3A 1-${xn}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit};if(!/^[1-9]\d*$/.test(e.cursor))throw new V("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let t=Number(e.cursor);if(!Number.isSafeInteger(t))throw new V("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {page:t,pageSize:e.limit}}function Uo(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 Fs(e){let n=e.now??(()=>Date.now()),t=e.isActive??(()=>true),r=e.cacheTtlMs??Ns,o=new Map,i=new Map,a=new Map,s=new Map,d=new Map,c=new Set,m=new Set,w=(p,y)=>`${p}:${y}`;function h(p){let y=d.get(p);return y!==void 0?y:(d.set(p,0),0)}function l(p){let y=p.trim();if(y==="")throw new V("channelId \u4E0D\u80FD\u4E3A\u7A7A");return y}function b(p){for(i.delete(p.channelId),i.set(p.channelId,p);i.size>Ks;){let y=i.keys().next().value;if(y===void 0)break;i.delete(y);}}function I(p){let y=i.get(p);if(y!==void 0)return b(y),Promise.resolve(y);if(m.has(p)||e.storage?.getChannelMemberSnapshot===void 0)return Promise.resolve(null);let S=a.get(p);if(S!==void 0)return S;let f=h(p),P=e.storage.getChannelMemberSnapshot(p).then(E=>!t()||E===null||E.channelId!==p||f!==h(p)||m.has(p)?null:(b(E),E)).finally(()=>{a.get(p)===P&&a.delete(p);});return a.set(p,P),P}function A(p,y){let S=p.map(P=>P.userId),f=new Map(p.map(P=>[P.userId,P]));for(let P of y){f.has(P.userId)||S.push(P.userId);let E=f.get(P.userId);(E===void 0||At(P.updateVersion,E.updateVersion)>=0)&&f.set(P.userId,P);}return S.map(P=>f.get(P))}async function _(p,y){let S=await ga$1(y);return p.filter(f=>S.match(f.displayName)!==null||S.match(f.userId,{pinyin:false})!==null)}async function T(p,y,S={}){if(!t()||y!==h(p.channelId))return;let f=p.channelId,P=m.has(f),E=S.allowPersistentRebuild===true&&P&&e.storage?.deleteChannelMemberSnapshot===void 0&&e.storage?.saveChannelMemberSnapshot!==void 0;(!P||E)&&await e.storage?.saveChannelMemberSnapshot?.(p),t()&&y===h(f)&&(b(p),S.allowPersistentRebuild===true&&(!P||e.storage?.deleteChannelMemberSnapshot===void 0)&&m.delete(f));}async function x(p,y,S,f,P=false,E){let R=await I(p);if(!t()||S!==h(p))return;let O=n(),M=E!==void 0&&R?.nextCursor===E,k=P&&R!==null&&!M,U=f!==void 0&&!k?f.nextCursor:R?.nextCursor,N={channelId:p,items:A(R?.items??[],y),...U===void 0?{}:{nextCursor:U},exhausted:k?R.exhausted:f?.exhausted??R?.exhausted??false,updatedAt:O};await T(N,S);}async function v(p,y,S){if(!t()||S!==h(p))return [...y];let f=n(),P=f+r,E=[],R=[],O=new Map;for(let M of y){let k=w(p,M.userId),U=o.get(k)?.member;if(U!==void 0&&At(M.updateVersion,U.updateVersion)<0){R.push(U);continue}E.push({channelId:p,...M,updatedAt:f}),R.push(M),O.set(k,{member:M,expiresAt:P});}if(E.length>0&&t()&&S===h(p)&&!c.has(p)&&(await e.storage?.saveChannelMembers?.(E),e.storage?.getChannelMembers!==void 0&&t()&&S===h(p))){let M=await e.storage.getChannelMembers(p,E.map(U=>U.userId)),k=new Map(M.map(U=>{let{channelId:N,updatedAt:B,...$}=U;return [$.userId,{member:$,updatedAt:B}]}));for(let U=0;U<R.length;U+=1){let N=R[U];if(N===void 0)continue;let B=k.get(N.userId);B===void 0||At(B.member.updateVersion,N.updateVersion)<=0||(R[U]=B.member,O.set(w(p,N.userId),{member:B.member,expiresAt:B.updatedAt+r}));}}if(t()&&S===h(p))for(let[M,k]of O)o.set(M,k);return R}async function u(p,y){let S=l(p.channelId),{page:f,pageSize:P}=Hs({...p,channelId:S}),E=h(S),R=await y(S,f,P);if(!R.ok)throw new an(R.code,R.message);if(R.data!==null&&!Array.isArray(R.data))throw new V("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let O=Uo((R.data??[]).map(U=>Do(U,S))),M=await v(S,O,E),k=(R.data??[]).length<P;return {items:M,exhausted:k,...k?{}:{nextCursor:String(f+1)}}}function g(p){let y=l(p),S=s.get(y);if(S!==void 0)return S;let f=h(y),P=(async()=>{let E,R=false,O=[];for(let k=0;k<Bs&&!R;k+=1){let U=await u({channelId:y,limit:xn,...E===void 0?{}:{cursor:E}},(N,B,$)=>vt(e.client,{channelId:N,page:B,pageSize:$,clientType:e.clientType}));if(!t()||f!==h(y))throw new V("\u6210\u5458\u5FEB\u7167\u9884\u53D6\u5DF2\u56E0\u6210\u5458\u53D8\u5316\u5931\u6548");O=A(O,U.items),E=U.nextCursor,R=U.exhausted;}let M={channelId:y,items:O,...E===void 0?{}:{nextCursor:E},exhausted:R,updatedAt:n()};return await T(M,f,{allowPersistentRebuild:true}),{items:M.items,...M.nextCursor===void 0?{}:{nextCursor:M.nextCursor},exhausted:M.exhausted}})().finally(()=>{s.get(y)===P&&s.delete(y);});return s.set(y,P),P}async function C(p){let y=l(p),S=h(y)+1;d.set(y,S),c.add(y),m.add(y),i.delete(y),a.delete(y),s.delete(y);let f=`${y}:`;for(let P of o.keys())P.startsWith(f)&&o.delete(P);e.storage?.deleteChannelMembers===void 0&&e.storage?.deleteChannelMemberSnapshot===void 0||(await Promise.all([e.storage.deleteChannelMembers?.(y),e.storage.deleteChannelMemberSnapshot?.(y)]),S===h(y)&&(e.storage?.deleteChannelMembers!==void 0&&c.delete(y),e.storage?.deleteChannelMemberSnapshot!==void 0&&m.delete(y)));}return {async prefetchMembers(p){let y=l(p),S=await I(y),f=m.has(y);S!==null&&!f&&S.updatedAt+r>n()||await g(y);},async getCachedMembers(p){let y=l(p.channelId),S=await I(y);if(S===null)return null;let f=p.query?.trim()??"";return f===""&&m.has(y)?null:f===""?{items:[...S.items],...S.nextCursor===void 0?{}:{nextCursor:S.nextCursor},exhausted:S.exhausted}:{items:await _(S.items,f),exhausted:true}},async refreshMembers(p){let y=l(p.channelId),S=p.query?.trim()??"";if(S==="")return g(y);let f=h(y),[P,E]=await Promise.all([u({channelId:y,query:S,limit:xn},(O,M,k)=>St(e.client,{channelId:O,query:S,page:M,pageSize:k,updateVersion:"0",clientType:e.clientType})),I(y)]),R=E===null?[]:await _(E.items,S);return await x(y,P.items,f),{...P,items:A(P.items,R)}},async listMembers(p){let y=l(p.channelId),S={...p,channelId:y},f=h(y),P=await u(S,(E,R,O)=>vt(e.client,{channelId:E,page:R,pageSize:O,clientType:e.clientType}));return await x(y,P.items,f,P,S.cursor!==void 0,S.cursor),P},async searchMembers(p){let y=p.query.trim();if(y==="")return Promise.reject(new V("\u641C\u7D22\u5173\u952E\u8BCD\u4E0D\u80FD\u4E3A\u7A7A"));let S=l(p.channelId),f={...p,channelId:S},P=h(S),E=await u(f,(R,O,M)=>St(e.client,{channelId:R,query:y,page:O,pageSize:M,updateVersion:"0",clientType:e.clientType}));return await x(S,E.items,P),E},listAdmins:p=>u(p,(y,S,f)=>ko(e.client,{channelId:y,page:S,pageSize:f,clientType:e.clientType})),async getMembersByIds(p,y,S){let f=p.trim();if(f==="")throw new V("channelId \u4E0D\u80FD\u4E3A\u7A7A");let P=[...new Set(y.map(M=>M.trim()).filter(Boolean))];if(P.length===0)return [];let E=S?.forceRefresh===true,R=new Map,O=[];for(let M of P){let k=o.get(w(f,M));!E&&k!==void 0&&k.expiresAt>n()?R.set(M,k.member):O.push(M);}if(!E&&O.length>0&&!c.has(f)&&e.storage?.getChannelMembers!==void 0){let M=h(f),k=await e.storage.getChannelMembers(f,O);if(t()&&M===h(f))for(let{channelId:U,updatedAt:N,...B}of k)U===f&&(o.set(w(f,B.userId),{member:B,expiresAt:N+r}),N+r>n()&&R.set(B.userId,B));O=O.filter(U=>!R.has(U));}if(!t())return P.flatMap(M=>R.has(M)?[R.get(M)]:[]);if(O.length>0){let M=h(f),k=await To(e.client,{channelId:f,userIds:O,clientType:e.clientType});if(!k.ok)throw new an(k.code,k.message);if(k.data!==null&&!Array.isArray(k.data))throw new V("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let U=Uo((k.data??[]).map(Z=>Do(Z,f))),N=O.filter(Z=>!U.some(ae=>ae.userId===Z)),B=E&&N.length>0&&M===h(f),$;B?(await C(f),$=U):$=await v(f,U,M);for(let Z of $)R.set(Z.userId,Z);}return P.flatMap(M=>R.has(M)?[R.get(M)]:[])},invalidateChannelMembers:C,clearCache(){let p=new Set(d.keys());for(let y of o.keys())p.add(y.slice(0,y.indexOf(":")));for(let y of i.keys())p.add(y);for(let y of a.keys())p.add(y);for(let y of s.keys())p.add(y);for(let y of c)p.add(y);for(let y of m)p.add(y);for(let y of p)d.set(y,h(y)+1);o.clear(),i.clear(),a.clear(),s.clear(),c.clear(),m.clear();}}}function Oo(e){return {responseMode:"strict",method:"POST",...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function Bo(e,n){return D(e,"/user_radio/member/list",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},Oo(n.clientType))}function No(e,n){return D(e,"/user_radio/member/search",{radio_id:n.channelId,search_name:n.query,page:n.page,page_size:n.pageSize},Oo(n.clientType))}var Ko=18,En=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},ue=class extends Error{constructor(n){super(`CHANNEL @ member \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelMentionMemberMappingError";}};function Ne(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function $s(e){let n=Ne(e.user_id);if(n==="")throw new ue("user_id \u4E0D\u80FD\u4E3A\u7A7A");let t=Ne(e.radio_user_nickname)||Ne(e.nick_name)||Ne(e.name)||Ne(e.mid)||n,r=Ne(e.head_img_url);return {userId:n,displayName:t,...r===""?{}:{avatar:r}}}function js(e){let n=e.channelId.trim();if(n==="")throw new ue("channelId \u4E0D\u80FD\u4E3A\u7A7A");if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>Ko)throw new ue(`limit \u5FC5\u987B\u4E3A 1-${Ko}`);if(e.cursor===void 0)return {channelId:n,page:1,pageSize:e.limit};if(!/^[1-9]\d*$/.test(e.cursor))throw new ue("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let t=Number(e.cursor);if(!Number.isSafeInteger(t))throw new ue("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {channelId:n,page:t,pageSize:e.limit}}function qs(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 Js(e){async function n(t,r){let{channelId:o,page:i,pageSize:a}=js(t),s=await r({channelId:o,page:i,pageSize:a,clientType:e.clientType});if(!s.ok)throw new En(s.code,s.message);if(s.data!==null&&!Array.isArray(s.data))throw new ue("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let d=s.data??[],c=qs(d.map($s)),m=d.length<a;return {items:c,exhausted:m,...m?{}:{nextCursor:String(i+1)}}}return {listMentionMembers:t=>n(t,r=>Bo(e.client,r)),searchMentionMembers:t=>{let r=t.query.trim();return r===""?Promise.reject(new ue("\u641C\u7D22\u5173\u952E\u8BCD\u4E0D\u80FD\u4E3A\u7A7A")):n(t,o=>No(e.client,{...o,query:r}))}}}function Vs(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 s={"Content-Type":"application/octet-stream"},d=e.getClientType?.();d!==void 0&&(s["Client-type"]=String(d)),Object.assign(s,o);let c=await e.getAuth();c!==null&&c.token!==""&&c.userId!==""&&(s.Authorization=`${c.token}:${c.userId}`);let m=await n(`${a}${t}`,{method:"POST",body:r,headers:s,signal:i});if(!m.ok)throw new wa$1({path:t,status:m.status,statusText:m.statusText});let w=await m.arrayBuffer();return new Uint8Array(w)}}}var le=class extends Error{constructor(n){super(n),this.name="DirectoryMappingError";}};function Rn(e,n){if(e===null||typeof e!="object"||Array.isArray(e))throw new le(`${n} \u5FC5\u987B\u662F\u5BF9\u8C61`);return e}function ne(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function sn(e){let n=ne(e);return n===""?void 0:n}function zs(e){let n=Rn(e,"\u8054\u7CFB\u4EBA\u76EE\u5F55\u9879"),t=n.user_info===void 0?n:Rn(n.user_info,"\u8054\u7CFB\u4EBA user_info"),r=ne(t.user_id??n.friend_user_id??n.user_id);if(r==="")throw new le("\u8054\u7CFB\u4EBA\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A user_id");let o=ne(n.remark_name)||ne(n.contact_name)||ne(t.nick_name)||ne(t.username)||ne(t.mid)||r,i=ne(t.nick_name)||ne(t.username)||ne(t.mid)||r,a=sn(t.head_img_url),s=sn(t.username)??sn(t.mid);return {id:r,kind:"individual",displayName:o,cardDisplayName:i,...a===void 0?{}:{avatarUrl:a},...s===void 0?{}:{username:s}}}function Ws(e){let n=Rn(e,"\u7FA4\u7EC4\u76EE\u5F55\u9879"),t=ne(n.group_id);if(t==="")throw new le("\u7FA4\u7EC4\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A group_id");let r=sn(n.head_img_url),o=ne(n.name)||t;return {id:t,kind:"group",displayName:o,cardDisplayName:o,...r===void 0?{}:{avatarUrl:r}}}function Ys(e){let n=Rn(e,"\u793E\u7FA4\u76EE\u5F55\u9879"),t=ne(n.radio_id??n.id);if(t==="")throw new le("\u793E\u7FA4\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A radio_id/id");let r=sn(n.head_img_url),o=ne(n.name)||t;return {id:t,kind:"channel",displayName:o,cardDisplayName:o,...r===void 0?{}:{avatarUrl:r}}}function Qs(e,n){if(!Number.isSafeInteger(e)||e<1)throw new le("\u76EE\u5F55 page \u5FC5\u987B\u662F\u6B63\u6574\u6570");if(!Number.isSafeInteger(n)||n<1||n>100)throw new le("\u76EE\u5F55 pageSize \u5FC5\u987B\u662F 1-100 \u7684\u6574\u6570")}function Xs(e){return {async list(n){Qs(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 D(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 le(`${n.kind} \u76EE\u5F55 data \u5FC5\u987B\u662F\u6570\u7EC4`);let a=n.kind==="individual"?zs:n.kind==="group"?Ws:Ys,s=new Map;for(let c of i){let m=a(c);s.set(m.id,m);}let d=i.length<n.pageSize;return {items:[...s.values()],...d?{}:{nextPage:n.page+1},exhausted:d}}}}var Zs="https://api.giphy.com/v1/gifs",Ke=class extends Error{constructor(t){super(t==="core"?"\u8868\u60C5 Core API \u672A\u914D\u7F6E":"Giphy API key \u672A\u914D\u7F6E");this.provider=t;this.name="ExpressionProviderUnavailableError";}provider},J=class extends Error{constructor(n){super(n),this.name="ExpressionMappingError";}},Me=class extends Error{constructor(t,r){super(`Giphy \u8BF7\u6C42\u5931\u8D25\uFF1AHTTP ${t}${r?` ${r}`:""}`);this.status=t;this.name="GiphyHttpError";}status};function oe(e,n){if(e===null||typeof e!="object"||Array.isArray(e))throw new J(`${n} \u5FC5\u987B\u662F\u5BF9\u8C61`);return e}function re(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Ce(e,n){let t=re(e);if(t==="")throw new J(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function Le(e){let n=re(e);return n===""?void 0:n}function Ge(e,n){let t=Number(e);if(!Number.isSafeInteger(t)||t<0)throw new J(`${n} \u5FC5\u987B\u662F\u975E\u8D1F\u6574\u6570`);return t}function ec(e,n){let t=Number(e);if(!Number.isSafeInteger(t))throw new J(`${n} \u5FC5\u987B\u662F\u5B89\u5168\u6574\u6570`);return t}function Go(e,n){let t=Number(e);if(!Number.isFinite(t)||t<=0)throw new J(`${n} \u5FC5\u987B\u662F\u6709\u9650\u6B63\u6570`);return t}function _e(e,n){let t=Ce(e,n),r;try{r=new URL(t);}catch(o){throw new J(`${n} \u4E0D\u662F\u5408\u6CD5 URL\uFF1A${o instanceof Error?o.message:String(o)}`)}if(r.protocol!=="https:"&&r.protocol!=="http:")throw new J(`${n} \u53EA\u652F\u6301 HTTP(S)`);if(r.username!==""||r.password!=="")throw new J(`${n} \u4E0D\u5141\u8BB8\u5305\u542B URL \u51ED\u636E`);return t}function Mt(e,n){if(e==null)return [];if(Array.isArray(e))return e;let r=oe(e,n).list;if(r==null)return [];if(!Array.isArray(r))throw new J(`${n}.list \u5FC5\u987B\u662F\u6570\u7EC4\u6216 null`);return r}function cn(e){return e==="sticker"?1:e==="gif"?2:3}function Lo(e){let n=oe(e,"\u8D34\u56FE\u5305"),t=Le(n.onlineTime??n.online_time),r=n.isPlatformIssued??n.is_platform_issued;return {id:Ce(n.packId??n.pack_id,"\u8D34\u56FE\u5305 packId"),nameZh:re(n.nameZh??n.name_zh),nameEn:re(n.nameEn??n.name_en),nameTh:re(n.nameTh??n.name_th),nameTw:re(n.nameTw??n.name_tw),nameVi:re(n.nameVi??n.name_vi),publisher:re(n.publisher),trayIconUrl:_e(n.trayIcon??n.tray_icon,"\u8D34\u56FE\u5305 trayIcon"),sortWeight:ec(n.sortWeight??n.sort_weight??0,"\u8D34\u56FE\u5305 sortWeight"),isPlatformIssued:r===true||Number(r)===1,...t===void 0?{}:{onlineTime:t},stickerCount:Ge(n.stickerCount??n.sticker_count??0,"\u8D34\u56FE\u5305 stickerCount")}}function _t(e,n,t,r){let o=oe(e,t),i=Le(o.id),a={...i===void 0?{}:{recordId:i},url:_e(o.imgUrl??o.img_url,`${t} imgUrl`),width:Ge(o.width??0,`${t} width`),height:Ge(o.height??0,`${t} height`)};if(n==="sticker")return {kind:n,...a,packageId:Ce(r??o.packId??o.pack_id,`${t} packageId`),resourceId:Ce(o.fileName??o.file_name,`${t} resourceId`)};let s=Le(o.fileName??o.file_name);return {kind:n,...a,...s===void 0?{}:{resourceId:s}}}function nc(e,n){if(n!=="emoji")return _t(e,n,"\u6700\u8FD1\u4F7F\u7528\u9879");let t=oe(e,"\u6700\u8FD1 emoji"),r=Le(t.id);return {kind:"emoji",...r===void 0?{}:{recordId:r},token:Ce(t.imgUrl??t.img_url,"\u6700\u8FD1 emoji token"),resourceId:Ce(t.fileName??t.file_name,"\u6700\u8FD1 emoji resourceId")}}function Ho(e,n,t){let r=cn(n);return Mt(e,t).filter(o=>{let i=oe(o,`${t} item`),a=i.favType??i.fav_type;if(a==null)return true;let s=Number(a);if(s!==1&&s!==2&&s!==3)throw new J(`${t} item.favType \u5FC5\u987B\u662F 1\u30012 \u6216 3`);return s===r})}function $o(e){return {fav_type:cn(e.kind),pack_id:e.kind==="sticker"?e.packageId:"",img_url:_e(e.url,"\u8868\u60C5\u5199\u5165 imgUrl"),file_name:e.resourceId??"",width:e.width,height:e.height}}function tc(e){return e.kind!=="emoji"?$o(e):{fav_type:cn(e.kind),pack_id:"",img_url:e.token,file_name:e.resourceId,width:0,height:0}}function Fo(e){let n=[...new Set(e.map(t=>t.trim()).filter(Boolean))];if(n.length===0||n.length>30||n.some(t=>t.includes("|")))throw new J("\u6279\u91CF\u5220\u9664 recordIds \u5FC5\u987B\u5305\u542B 1-30 \u4E2A\u4E0D\u542B\u7AD6\u7EBF\u7684\u552F\u4E00\u975E\u7A7A id");return n.join("|")}function rc(e){let n=oe(e,"Giphy item"),t=oe(n.images,"Giphy item.images"),r=oe(t.original,"Giphy item.images.original"),o=t.fixed_width,i=o==null?void 0:oe(o,"Giphy item.images.fixed_width"),a=_e(r.url,"Giphy original.url"),s=i===void 0?void 0:Le(i.url),d=i===void 0?void 0:Le(i.webp),c=d===void 0?s===void 0?a:_e(s,"Giphy fixed_width.url"):_e(d,"Giphy fixed_width.webp"),m=d!==void 0&&s!==void 0&&s!==d?_e(s,"Giphy fixed_width.url"):void 0;return {kind:"gif",resourceId:Ce(n.id,"Giphy item.id"),title:re(n.title)||"GIF",url:a,previewUrl:c,...m===void 0?{}:{fallbackPreviewUrl:m},width:Go(r.width,"Giphy original.width"),height:Go(r.height,"Giphy original.height")}}function oc(e,n){let t=oe(e,"Giphy response");if(!Array.isArray(t.data))throw new J("Giphy response.data \u5FC5\u987B\u662F\u6570\u7EC4");let r=oe(t.pagination,"Giphy response.pagination"),o=Ge(r.offset??n,"Giphy pagination.offset");if(o!==n)throw new J("Giphy pagination.offset \u4E0E\u8BF7\u6C42 offset \u4E0D\u4E00\u81F4");let i=Ge(r.count??t.data.length,"Giphy pagination.count"),a=Ge(r.total_count??r.totalCount??0,"Giphy pagination.total_count"),s=new Map;for(let c of t.data){let m=rc(c);s.set(m.resourceId,m);}let d=o+i;return {items:[...s.values()],offset:o,totalCount:a,...i>0&&d<a?{nextOffset:d}:{}}}function ic(e){async function n(r,o,i){if(e.coreClient===void 0)throw new Ke("core");let a=await D(e.coreClient,r,o,{method:"POST",responseMode:"strict"});if(!a.ok)throw new z(i,a.code,a.message);return a.data}async function t(r,o){let i=e.giphyApiKey?.trim()??"";if(i==="")throw new Ke("giphy");let a=e.fetcher??globalThis.fetch;if(typeof a!="function")throw new Ke("giphy");let s=new URLSearchParams({api_key:i,limit:String(o.limit),offset:String(o.offset),...o.query===void 0?{}:{q:o.query,lang:"en"}}),d;try{d=await a(`${Zs}/${r}?${s.toString()}`);}catch{throw new Me(0,"network failure")}let c;try{c=await d.json();}catch(w){throw d.ok?new J(`Giphy response \u4E0D\u662F JSON\uFF1A${w instanceof Error?w.message:String(w)}`):new Me(d.status,"")}if(!d.ok){let w=c!==null&&typeof c=="object"&&!Array.isArray(c)?c.meta:void 0,h=w!==null&&typeof w=="object"&&!Array.isArray(w)?re(w.msg):"";throw new Me(d.status,h)}let m=c!==null&&typeof c=="object"&&!Array.isArray(c)?c.meta:void 0;if(m!==null&&typeof m=="object"&&!Array.isArray(m)){let w=m,h=Number(w.status);if(Number.isFinite(h)&&h!==200)throw new Me(h,re(w.msg))}return oc(c,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(Lo)};if(o==null)return {version:"",items:[]};let i=oe(o,"\u8D34\u56FE\u5305\u5217\u8868 data"),a=i.list??i.packs;if(a==null)return {version:re(i.version),items:[]};if(!Array.isArray(a))throw new J("\u8D34\u56FE\u5305\u5217\u8868 data.list \u5FC5\u987B\u662F\u6570\u7EC4\u6216 null");return {version:re(i.version),items:a.map(Lo)}},async listStickerItems(r){let o=await n("/user/sticker/item_list",{pack_id:r},"\u8D34\u56FE\u660E\u7EC6\u5217\u8868");return Mt(o,"\u8D34\u56FE\u660E\u7EC6\u5217\u8868 data").map(i=>_t(i,"sticker","\u8D34\u56FE\u660E\u7EC6",r))},async listFavorites(r){let o=await n("/user/sticker/my_fav/list",{fav_type:cn(r)},"\u8868\u60C5\u6536\u85CF\u5217\u8868");return Ho(o,r,"\u8868\u60C5\u6536\u85CF\u5217\u8868 data").map(i=>_t(i,r,"\u8868\u60C5\u6536\u85CF\u9879"))},async addFavorite(r){await n("/user/sticker/my_fav/add",$o(r),"\u6DFB\u52A0\u8868\u60C5\u6536\u85CF");},async deleteFavorites(r){await n("/user/sticker/my_fav/del",{ids:Fo(r)},"\u5220\u9664\u8868\u60C5\u6536\u85CF");},async listRecent(r){let o=await n("/user/sticker/recent/list",{fav_type:cn(r)},"\u6700\u8FD1\u4F7F\u7528\u5217\u8868");return Ho(o,r,"\u6700\u8FD1\u4F7F\u7528\u5217\u8868 data").map(i=>nc(i,r))},async reportRecent(r){await n("/user/sticker/recent/report",tc(r),"\u4E0A\u62A5\u6700\u8FD1\u4F7F\u7528");},async deleteRecent(r){await n("/user/sticker/recent/del",{ids:Fo(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 Mt(o,"\u5FEB\u6377\u56DE\u5E94 Top data").map(i=>{let a=oe(i,"\u5FEB\u6377\u56DE\u5E94 Top \u9879");return Ce(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 jo(e,n){let t=n.clientType===void 0?void 0:{headers:{"Client-type":String(n.clientType)}};return (await D(e,"/user_group/info",{group_id:n.groupId},t)).data}function ac(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 sc(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 qo=200,cc=50;async function Jo(e,n){let t=String(n.updateVersion??0).trim()||"0",r=[],o;for(let i=1;i<=cc;i++){let a={group_id:n.groupId,update_version:t,page:String(i),page_size:String(qo)},{data:s}=await D(e,"/user_group/user/list",a,{method:"GET",...n.clientType===void 0?{}:{headers:{"Client-type":String(n.clientType)}}});if(s===null)break;let d=ac(s);if(d.length===0)break;for(let m of d){let w=String(m.user_id??m.userId??"").trim();if(w==="")continue;let h={userId:w,nickName:String(m.nick_name??m.nickName??"").trim()},l=sc(m.join_type??m.joinType);l!==void 0&&(h.joinType=l),r.push(h);}let c=s.update_version;if(typeof c=="number"&&(o=c),d.length<qo)break}return {members:r,updateVersion:o}}async function Vo(e,n){return (await D(e,"/user/info/friend",{friend_user_id:n.userId})).data}var dc=1440*60*1e3;function xt(e,n,t=dc){let r=new Map,o=new Map,i=new Map;function a(m){let w=(i.get(m)??0)+1;i.set(m,w);let h=e(m).then(l=>(l!==null&&i.get(m)===w&&(r.set(m,l),n?.save(m,l).catch(()=>{})),l)).finally(()=>{o.get(m)===h&&o.delete(m);});return o.set(m,h),h}return {get:async(m,w)=>{if(w?.forceRefresh===true)return a(m);let h=r.get(m);if(h!==void 0)return h;let l=o.get(m);if(l!==void 0)return l;if(n!==void 0)try{let b=i.get(m)??0,I=await n.get(m);if(I!==null)return (i.get(m)??0)===b&&(r.set(m,I.value),Date.now()-I.updatedAt>t&&a(m)),I.value}catch{}return a(m)},peek:async m=>{let w=r.get(m);if(w!==void 0)return {value:w,stale:false};if(n===void 0)return null;try{let h=i.get(m)??0,l=await n.get(m);if(l!==null)return (i.get(m)??0)===h&&r.set(m,l.value),{value:l.value,stale:Date.now()-l.updatedAt>t}}catch{}return null},clear:()=>{for(let m of new Set([...r.keys(),...o.keys(),...i.keys()]))i.set(m,(i.get(m)??0)+1);r.clear(),o.clear();}}}function uc(e){async function n(h){let l=await Vo(e.client,{userId:h})??await Ze(e.client,{userId:h});return l===null?null:ca$1(l)}async function t(h){let l=await jo(e.client,{groupId:h,clientType:e.clientType});return l===null?null:da$1(l)}async function r(h){let{members:l}=await Jo(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()});}},s=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(I=>({userId:I.userId,groupNick:I.nickName,...I.joinType===void 0?{}:{joinType:I.joinType}}));await i.saveGroupMembers({groupId:h,members:b,updatedAt:Date.now()});}},d=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()});}},c=xt(n,a),m=xt(t,d),w=xt(r,s);return {getUserProfile:(h,l)=>c.get(h,l),getGroupProfile:(h,l)=>m.get(h,l),getGroupMemberNames:async(h,l)=>{let b=await w.get(h,l);return b===null?null:o(b)},listGroupMembers:(h,l)=>w.get(h,l),peekUserProfile:h=>c.peek(h),peekGroupMemberNames:async h=>{let l=await w.peek(h);return l===null?null:{value:o(l.value),stale:l.stale}},peekGroupMembers:h=>w.peek(h),peekGroupProfile:h=>m.peek(h),clearCache:()=>{c.clear(),m.clear(),w.clear();}}}var kn=class extends Error{responseCode;operation;constructor(n,t,r){let o=n==="bind"?"\u7ED1\u5B9A":"\u89E3\u7ED1";super(`${o}\u673A\u5668\u4EBA\u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`),this.name="RobotConversationBindError",this.responseCode=t,this.operation=n;}},He=class extends Error{constructor(n){super(n),this.name="RobotConversationBindMappingError";}};function lc(e){let n=e.robotId.trim(),t=e.conversationId.trim();if(n==="")throw new He("\u7ED1\u5B9A\u673A\u5668\u4EBA robotId \u4E0D\u80FD\u4E3A\u7A7A");if(t==="")throw new He("\u7ED1\u5B9A\u673A\u5668\u4EBA conversationId \u4E0D\u80FD\u4E3A\u7A7A");if(e.groupType!==1&&e.groupType!==2)throw new He("\u7ED1\u5B9A\u673A\u5668\u4EBA groupType \u5FC5\u987B\u662F 1 \u6216 2");return {robotId:n,conversationId:t,groupType:e.groupType,...e.clientType===void 0?{}:{clientType:e.clientType}}}async function zo(e,n,t){let r=lc(t),i=await D(e,n==="bind"?"/robot/bind_group":"/robot/un_bind_group",{robot_id:r.robotId,object_id:r.conversationId,relation_type:r.groupType},{responseMode:"strict",method:"POST",...r.clientType===void 0?{}:{headers:{"Client-type":String(r.clientType)}}});if(!i.ok)throw new kn(n,i.code,i.message)}function pc(e,n){return zo(e,"bind",n)}function fc(e,n){return zo(e,"unbind",n)}function mc(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}async function ie(e,n,t,r){let o=await D(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new z(r,o.code,o.message)}function gc(e){return ie(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 yc(e){return ie(e.client,"/user_radio/user/setting",{radio_id:e.channelId,nick_name:e.nickname},"\u4FEE\u6539\u793E\u7FA4\u6635\u79F0")}function hc(e){return ie(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 bc(e){let n=e.userIds.map(t=>({user_id:mc(t)}));return ie(e.client,"/user_radio/invited_users",{radio_id:e.channelId,members:JSON.stringify(n)},"\u9080\u8BF7\u793E\u7FA4\u6210\u5458")}function wc(e){return ie(e.client,"/user_radio/kick_user",{radio_id:e.channelId,user_id:e.userId},"\u79FB\u9664\u793E\u7FA4\u6210\u5458")}function Cc(e){return ie(e.client,"/user_radio/add_admin",{radio_id:e.channelId,user_id:e.userId},"\u8BBE\u4E3A\u793E\u7FA4\u7BA1\u7406\u5458")}function Pc(e){return ie(e.client,"/user_radio/del_admin",{radio_id:e.channelId,user_id:e.userId},"\u53D6\u6D88\u793E\u7FA4\u7BA1\u7406\u5458")}function Ic(e){return ie(e.client,"/user_radio/transfer",{radio_id:e.channelId,user_id:e.userId},"\u8F6C\u8BA9\u793E\u7FA4")}function vc(e){return ie(e.client,"/user_radio/user/quit",{radio_id:e.channelId,...e.newOwnerId===void 0?{}:{user_id:e.newOwnerId}},"\u9000\u51FA\u793E\u7FA4")}function Sc(e){return ie(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 Ac(e){return ie(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 Mc(e){return ie(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 _c(e){return ie(e.client,"/user_radio/closed",{radio_id:e.channelId},"\u89E3\u6563\u793E\u7FA4")}async function xc(e){e.signal?.throwIfAborted(),Ec(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),e.signal?.throwIfAborted();let t=e.containAnchor??true,r=G({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,...e.signal===void 0?{}:{signal:e.signal}});e.signal?.throwIfAborted();let i=J$1(o,{selfId:e.userId,keepRaw:true,expectedChannelIds:[e.channelId],onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps);if(t){let s=i.messages.filter(d=>d.extensions?.historyCursor===n);if(s.length!==1)throw new Error(`CHANNEL \u5386\u53F2\u4E0A\u4E0B\u6587 anchor \u5FC5\u987B\u4E00\u4E00\u5BF9\u5E94\uFF08channelId=${e.channelId}, index=${n}, count=${s.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 Ec(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 Rc(e){let n=kc(e.indexes),t=f.encode(f.create({sUserId:Et(e.userId,"user"),lsIndex:n.map(i=>({sChnnId:Et(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 kc(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=>{Et(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 Et(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 Tc(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 D(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 Tn=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;}},Dn=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;}},Rt={HIDDEN_CONTACT:40112,OWN_FRIEND_LIMIT_REACHED:40121,TARGET_FRIEND_LIMIT_REACHED:40122},Dc=36875,Uc=40113;function kt(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function ge(e){let n=kt(e);return n===""?void 0:n}function Wo(e){let n=Array.isArray(e)?e[0]:e;return n!==null&&typeof n=="object"?n:void 0}function Oc(e){switch(e){case Rt.HIDDEN_CONTACT:return "hidden-contact";case Rt.OWN_FRIEND_LIMIT_REACHED:return "own-friend-limit";case Rt.TARGET_FRIEND_LIMIT_REACHED:return "target-friend-limit";default:return "remote"}}async function Bc(e,n){let t=n.query.trim();if(t==="")throw new Error("\u641C\u7D22\u7528\u6237\uFF1Aquery \u4E0D\u80FD\u4E3A\u7A7A");let r=await D(e,"/user/info/search",{username:t},{responseMode:"strict",...n.clientType===void 0?{}:{headers:{"Client-type":String(n.clientType)}}});if(!r.ok)throw new Tn(r.code,r.message);let o=Wo(r.data);if(o===void 0)return null;let i=kt(o.user_id??o.userId);if(i==="")throw new Error("\u641C\u7D22\u7528\u6237\uFF1A\u54CD\u5E94\u7F3A\u5C11 user_id");let a=kt(o.nick_name??o.nickname??o.name)||i,s=o.friend_status??o.friendStatus,d=s===void 0?void 0:Number(s);if(d!==void 0&&!Number.isInteger(d))throw new Error("\u641C\u7D22\u7528\u6237\uFF1Afriend_status \u975E\u6CD5");return {userId:i,nickname:a,...ge(o.username)===void 0?{}:{username:ge(o.username)},...ge(o.mid)===void 0?{}:{miCallId:ge(o.mid)},...ge(o.head_img_url??o.avatar)===void 0?{}:{avatarUrl:ge(o.head_img_url??o.avatar)},...ge(o.per_signature??o.signature)===void 0?{}:{signature:ge(o.per_signature??o.signature)},...d===void 0?{}:{friendStatus:d}}}async function Nc(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 D(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 Dn(Oc(i.code),i.code,i.message);let a=Wo(i.data),s=Number(a?.status??0);if(s!==0&&s!==1&&s!==2)throw new Error(`\u53D1\u9001\u597D\u53CB\u7533\u8BF7\uFF1A\u672A\u77E5\u7ED3\u679C\u72B6\u6001 ${s}`);let d=ge(a?.message??a?.msg??i.message);return {status:s,...d===void 0?{}:{message:d}}}async function Kc(e,n){let t=n.userId.trim();if(t==="")throw new Error("\u5220\u9664\u597D\u53CB\uFF1AuserId \u4E0D\u80FD\u4E3A\u7A7A");let r=await D(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!==Uc)throw new Error(`\u5220\u9664\u597D\u53CB\u5931\u8D25\uFF08${r.code}\uFF09\uFF1A${r.message||"unknown error"}`)}async function Gc(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 D(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 z("\u4E3E\u62A5\u8054\u7CFB\u4EBA",i.code,i.message)}function Lc(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}function Hc(e){let n=e.memberIds.map(t=>({user_id:Lc(t)}));return D(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 Fc(e){return D(e.client,"/user_group/create_face",{is_hidden:"0"},{method:"POST",responseMode:"strict"})}function $c(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}function jc(e){let n=e.memberIds.map(t=>({user_id:$c(t)}));return D(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 Fe(e){if(e.trim()==="")throw new Error("board pinned message groupId \u4E0D\u80FD\u4E3A\u7A7A")}function $e(e){if(e.trim()==="")throw new Error("channel board pinned message channelId \u4E0D\u80FD\u4E3A\u7A7A")}function Yo(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function qc(e){Fe(e.groupId);let n=await D(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(!Yo(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(!Yo(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 Qo(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function Jc(e){$e(e.channelId);let n=await D(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(!Qo(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(!Qo(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 Vc(e,n){let r=(await D(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 zc(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 Wc(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||!zc(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 Yc(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}async function dn(e,n,t,r){let o=await D(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new z(r,o.code,o.message)}function Qc(e){let n=e.userIds.map(t=>({user_id:Yc(t)}));return dn(e.client,"/user_group/invited",{group_id:e.groupId,members:JSON.stringify(n)},"\u9080\u8BF7\u7FA4\u6210\u5458")}function Xc(e){return dn(e.client,"/user_group/kick",{group_id:e.groupId,out_user_id:e.userId},"\u79FB\u9664\u7FA4\u6210\u5458")}function Zc(e){return dn(e.client,"/user_group/transfer",{group_id:e.groupId,new_user_id:e.userId},"\u8F6C\u8BA9\u7FA4\u7EC4")}function ed(e){return dn(e.client,"/user_group/user/quit",{group_id:e.groupId,...e.newOwnerId===void 0?{}:{new_user_id:e.newOwnerId}},"\u9000\u51FA\u7FA4\u7EC4")}function nd(e){return dn(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 td=new Set([200,32768]);async function rd(e){let n=Y$1({userId:e.userId,groupId:e.groupId}),t=await e.http.postProtobuf({path:"/offline/v1/group/read_all",body:n}),{code:r}=Z(t);if(!td.has(r))throw new Error(`\u7FA4 read_all \u4E1A\u52A1\u5931\u8D25\uFF1Acode=${r}\uFF08groupId=${e.groupId}\uFF09`)}var un=class extends Error{constructor(n){super(`${n}\u54CD\u5E94\u5305\u542B\u65E0\u6CD5\u8BC6\u522B\u7684 is_waitting`),this.name="MembershipJoinMappingError";}};function od(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 un(n)}async function Xo(e,n,t,r){let o=await D(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new z(r,o.code,o.message);if(o.data===null||o.data===void 0)throw new un(r);return od(o.data.is_waitting,r)}async function Zo(e,n,t,r){let o=await D(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new z(r,o.code,o.message);return Object.freeze({outcome:"joined"})}function id(e){return Xo(e.client,"/user_group/apply",{group_id:e.groupId,qrcode_type:2,remarks:e.remarks??""},"\u7533\u8BF7\u52A0\u5165\u666E\u901A\u7FA4")}function ad(e){return Zo(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 sd(e){return Xo(e.client,"/user_radio/add/apply",{radio_id:e.channelId,remarks:e.remarks??""},"\u7533\u8BF7\u52A0\u5165\u793E\u7FA4")}function cd(e){return Zo(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 dd(e){if(Fe(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 D(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 ud(e){if($e(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 D(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 ld(e){let n=aa$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 ba$1(t,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function pd(e){e.prepareKeys!==void 0&&e.decryptDeps!==void 0&&e.groupId!==""&&await e.prepareKeys([e.groupId]);let n=W$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 X$1(t,{selfId:e.userId,keepRaw:true,source:"history",onReaction:e.onReaction},e.decryptDeps)}async function fd(e){e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId);let n=L$1({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 M(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 md=20,ei=10,Tt=30,gd=100;async function yd(e){let n=[];for(let t of ti(e.channels,md)){let r=F$1({userId:e.userId,clientType:e.clientType,channels:t}),o=await e.http.postProtobuf({path:"/channel/v1/sessions",body:r}),i={selfId:e.userId,keepRaw:e.keepRaw??true,expectedChannelIds:t.map(s=>s.channelId),diagnostic:{endpoint:"sessions",surface:"session-last",...e.operationId===void 0?{}:{operationId:e.operationId},clientTypeHeader:e.clientType,clientTypeBody:e.clientType}},a=I(o,i);await ni(e,a.sessions.filter(s=>s.channelState==="active"||s.raw?.status===0).map(s=>s.channelId)),n.push(...I(o,{...i,onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps).sessions);}return n}async function hd(e){let n=Cd(e.channelBatchSize),t=e.messageCount??Tt,r=Pd(e.maxPagesPerBatch),o=new Map;for(let i of ti(e.pulls,n)){let a=i.map(c=>({...c})),s=new Map(a.map(c=>[c.channelId,new Set([c.baseIndex])])),d=0;for(;a.length>0;){if(d>=r){let l=a.map(({channelId:b,baseIndex:I})=>`${b}@${I}`).join(",");throw new Error(`channel offline \u5206\u9875\u8D85\u8FC7 maxPagesPerBatch=${r}\uFF08active=${l}\uFF09`)}d+=1;let c=G({userId:e.userId,clientType:e.clientType,pulls:a.map(l=>({channelId:l.channelId,baseIndex:l.baseIndex,direction:0,count:t,contain:0}))});e.signal?.throwIfAborted();let m=await e.http.postProtobuf({path:"/channel/v1/offlineMessages",body:c,...e.signal===void 0?{}:{signal:e.signal}});e.signal?.throwIfAborted(),await ni(e,a.map(l=>l.channelId));let w=J$1(m,{selfId:e.userId,keepRaw:e.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 w.messages)o.has(l.id)||o.set(l.id,l);let h=[];for(let l of a){let b=w.nextBaseIndexes[l.channelId],I=w.messageCounts[l.channelId]??0;if(b===void 0)continue;let A=s.get(l.channelId);if(A.has(b))throw new Error(`channel offline cursor \u5FAA\u73AF\uFF08channelId=${l.channelId}, baseIndex=${b}\uFF09`);I<t||(A.add(b),h.push({channelId:l.channelId,baseIndex:b}));}a=h;}}return [...o.values()].sort(m)}async function bd(e$1){e$1.signal?.throwIfAborted();let n=e$1.count??Tt;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=G({userId:e$1.userId,clientType:e$1.clientType,pulls:[{channelId:e$1.channelId,baseIndex:"",direction:1,count:n,contain:0}]});e$1.signal?.throwIfAborted();let r=await e$1.http.postProtobuf({path:"/channel/v1/offlineMessages",body:t,...e$1.signal===void 0?{}:{signal:e$1.signal}});e$1.signal?.throwIfAborted();let o={selfId:e$1.userId,keepRaw:e$1.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},i=e$1.yieldToEventLoop===void 0?{...J$1(r,o,e$1.decryptDeps),firstBaseIndex:e.decode(r).lsMessage[0]?.sIndex}:await K$1(r,o,e$1.decryptDeps,{yieldToEventLoop:e$1.yieldToEventLoop,signal:e$1.signal}),a=i.batchSize===n,s=i.firstBaseIndex;if(a&&(typeof s!="string"||s.trim()===""))throw new Error(`channel latest: \u6EE1\u9875\u7F3A\u5C11\u5411\u65E7 cursor\uFF08channelId=${e$1.channelId}\uFF09`);return {messages:i.messages,hasOlder:a,...a?{nextCursor:s}:{}}}async function wd(e){e.signal?.throwIfAborted();let n=e.count??Tt;e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId);let t=H$1({userId:e.userId,clientType:e.clientType,channelId:e.channelId,baseIndex:e.baseIndex,count:n,contain:e.contain??0});e.signal?.throwIfAborted();let r=await e.http.postProtobuf({path:"/channel/v1/offlineMessages",body:t,...e.signal===void 0?{}:{signal:e.signal}});return e.signal?.throwIfAborted(),N(r,{selfId:e.userId,channelId:e.channelId,requestedBaseIndex:e.baseIndex,requestedCount:n,keepRaw:e.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 ni(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 Cd(e){if(e===void 0)return ei;if(!Number.isInteger(e)||e<=0)throw new Error("channel offline: channelBatchSize \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");return Math.min(e,ei)}function Pd(e){if(e===void 0)return gd;if(!Number.isInteger(e)||e<=0)throw new Error("channel offline: maxPagesPerBatch \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");return e}function ti(e,n){let t=[];for(let r=0;r<e.length;r+=n)t.push(e.slice(r,r+n));return t}async function ri(e,n){let t=_({userId:n.userId,clientType:n.clientType,limit:n.limit,deliveredMsgInfos:n.deliveredMsgInfos}),r=await n.http.postProtobuf({path:e,body:t});return $(r,{selfId:n.userId,keepRaw:true,onReaction:n.onReaction},n.decryptDeps)}function oi(e){return ri("/offline/v1/chat",e)}function ii(e){return ri("/offline/v1/owner_chat",e)}function Id(e){return oi(e).then(n=>n.messages)}function vd(e){return ii(e).then(n=>n.messages)}function ai(e){return [...new Set(e.filter(n=>n!==void 0&&n!==""))]}async function Sd(e){let n=P({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=R(t,{selfId:e.userId}),o=ai(r.messages.map(i=>i.conversationId));o.length>0&&await e.prepareKeys(o);}return R(t,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function Ad(e){let n=Q$1({userId:e.userId,clientType:e.clientType,size:e.size}),t=await e.http.postProtobuf({path:"/offline/v1/group/session",body:n});if(e.prepareKeys!==void 0&&e.decryptDeps!==void 0){let r=S(t,{selfId:e.userId}),o=ai([...r.unreads.map(i=>i.groupId),...r.messages.map(i=>i.conversationId)]);o.length>0&&await e.prepareKeys(o);}return S(t,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function Md(e){e.signal?.throwIfAborted(),e.prepareKeys!==void 0&&e.decryptDeps!==void 0&&e.groupId!==""&&await e.prepareKeys([e.groupId]);let n=T({userId:e.userId,groupId:e.groupId,baseTime:e.baseTime,direct:e.direct,limit:e.limit,clientType:e.clientType});e.signal?.throwIfAborted();let t=await e.http.postProtobuf({path:"/offline/v1/group/history_msg",body:n,...e.signal===void 0?{}:{signal:e.signal}});e.signal?.throwIfAborted();let r={selfId:e.userId,keepRaw:e.keepRaw??true,source:"history",onReaction:e.onReaction};return e.yieldToEventLoop===void 0?U(t,r,e.decryptDeps):V$1(t,{...r,expectedGroupId:e.groupId},e.decryptDeps,{yieldToEventLoop:e.yieldToEventLoop,signal:e.signal})}async function _d(e){let n=ia$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 ja$1(t)}var Un=class extends Error{responseCode;constructor(n,t){super(`\u641C\u7D22\u673A\u5668\u4EBA\u5931\u8D25\uFF08${n}\uFF09\uFF1A${t||"unknown error"}`),this.name="RobotDirectoryError",this.responseCode=n;}},de=class extends Error{constructor(n){super(n),this.name="RobotDirectoryMappingError";}};function Dt(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function si(e){let n=Dt(e);return n===""?void 0:n}function Ut(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function xd(e){if(e===true||e===1||e==="1")return true;if(e===false||e===0||e==="0")return false}function Ed(e){let n=Ut(e);if(n===void 0)throw new de("\u673A\u5668\u4EBA\u76EE\u5F55\u9879\u5FC5\u987B\u662F\u5BF9\u8C61");let t=Dt(n.robot_id??n.robotId);if(t==="")throw new de("\u673A\u5668\u4EBA\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A robot_id");let r=Dt(n.robot_name??n.robotName)||t,o=si(n.mid??n.botMid??n.bot_mid),i=si(n.img_url??n.imgUrl),a=xd(n.bind);return {id:t,displayName:r,...o===void 0?{}:{username:o},...i===void 0?{}:{avatarUrl:i},...a===void 0?{}:{bound:a}}}function Rd(e){if(Array.isArray(e))return e;let n=Ut(e);if(n===void 0)throw new de("\u673A\u5668\u4EBA\u76EE\u5F55 data \u5FC5\u987B\u662F\u5BF9\u8C61\u6216\u6570\u7EC4");let t=n.data??n.list;if(!Array.isArray(t))throw new de("\u673A\u5668\u4EBA\u76EE\u5F55 data.data \u5FC5\u987B\u662F\u6570\u7EC4");return t}function kd(e){let n=Ut(e);if(n===void 0)return;let t=n.total_count??n.totalCount;if(t===void 0)return;let r=typeof t=="number"?t:Number(t);if(!Number.isSafeInteger(r)||r<0)throw new de("\u673A\u5668\u4EBA\u76EE\u5F55 total_count \u5FC5\u987B\u662F\u975E\u8D1F\u6574\u6570");return r}async function Td(e,n){if(!Number.isSafeInteger(n.page)||n.page<1)throw new de("\u673A\u5668\u4EBA\u76EE\u5F55 page \u5FC5\u987B\u662F\u6B63\u6574\u6570");if(!Number.isSafeInteger(n.pageSize)||n.pageSize<1||n.pageSize>100)throw new de("\u673A\u5668\u4EBA\u76EE\u5F55 pageSize \u5FC5\u987B\u662F 1-100 \u7684\u6574\u6570");let t=n.keyword?.trim()??"",r=n.groupId?.trim()??"";if(r===""!=(n.groupType===void 0))throw new de("\u673A\u5668\u4EBA\u76EE\u5F55 groupId \u4E0E groupType \u5FC5\u987B\u540C\u65F6\u63D0\u4F9B\u6216\u540C\u65F6\u7701\u7565");let o=await D(e,"/robot/search_robot",{page:n.page,page_size:n.pageSize,...t===""?{}:{keyword:t},...r===""||n.groupType===void 0?{}:{group_id:r,group_type:n.groupType},...n.boundOnly===true?{search_type:1}:{}},{responseMode:"strict",method:"POST",...n.clientType===void 0?{}:{headers:{"Client-type":String(n.clientType)}}});if(!o.ok)throw new Un(o.code,o.message);let a=Rd(o.data).map(Ed),s=kd(o.data),d=s===void 0?a.length<n.pageSize:n.page*n.pageSize>=s;return {items:a,exhausted:d}}var Dd={direct:"/friend/undisturb/set",group:"/user_group/user/edit",channel:"/user_radio/user/setting",robot:"/friend/undisturb/set"},Ud={direct:"friend_user_id",group:"group_id",channel:"radio_id",robot:"friend_user_id"};async function Od(e){let n=Dd[e.conversationType],t=Ud[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 D(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 Bd(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 D(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 Nd(e){let{code:n}=await D(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 Kd(e){Fe(e.groupId);let n=await D(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 Gd(e){$e(e.channelId);let n=await D(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 Ld(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 D(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 Hd="1970-01-01 08:00:00",Fd="2000",$d="",On=class extends Error{constructor(){super("\u4F1A\u8BDD\u6536\u85CF Core API \u672A\u914D\u7F6E"),this.name="SessionFavoriteProviderUnavailableError";}},Pe=class extends Error{constructor(n){super(n),this.name="SessionFavoriteMappingError";}};function Y(e){return typeof e=="string"?e:e==null?"":String(e)}function ln(e,n){let t=Y(e).trim();if(t==="")throw new Pe(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function jd(e){let n=typeof e=="number"?e:Number(String(e??"").trim());return n===1?"text":n===2?"image":n===3?"video":n===4?"voice":n===5?"location":n===11?"file":n===28?"mediaAlbum":null}function qd(e){return e==="text"?1:e==="image"?2:e==="video"?3:e==="voice"?4:e==="location"?5:e==="mediaAlbum"?28:11}function Jd(e){if(e==="direct")return 0;if(e==="group")return 1;if(e==="channel")return 2;throw new Pe(`favorite conversation type ${e}`)}function Bn(e,n){return n==="text"||n==="location"?Y(e.content).trim():n==="file"?Y(e.fileName||e.file_name||e.name).trim():n==="mediaAlbum"?Y(e.caption).trim():""}function Vd(e,n){let t=Y(e.group_id).trim(),r=Y(e.radio_id).trim(),o=Number(Y(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=Y(e.from_id).trim(),a=Y(e.to_id).trim(),s=i===n.trim()?a:i;if(s!=="")return {conversationType:"direct",conversationId:s}}return null}function zd(e,n){let t=e.from_user,r=Y(t?.nick_name||t?.nickname||t?.name).trim();return r===""?n:r}function Wd(e,n){let t=Y(e.uu_id).trim(),r=jd(e.content_type),o=Zr(Y(e.msg_body),n);if(t===""||r===null||o===null)return null;let i=Y(e.from_id).trim();return Object.freeze({collectId:t,msgId:Y(e.msg_id).trim(),kind:r,senderId:i,senderName:zd(e,i),avatarUrl:Y(e.from_user?.avatar).trim(),createdAt:Y(e.create_time||e.update_time||e.msg_time).trim(),text:Bn(o,r),imageUrl:xb(r,o),fileName:r==="file"?Bn(o,"file"):"",body:Object.freeze({...o}),conversation:Vd(e,n)})}function Yd(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 Pe("favorite list data \u5FC5\u987B\u662F\u6570\u7EC4\u6216 { list }")}function Qd(){if(typeof crypto>"u"||typeof crypto.randomUUID!="function")throw new Pe("collect uuid \u4E0D\u53EF\u7528");return crypto.randomUUID()}function Xd(e){return Object.freeze({...e,body:Object.freeze({...e.body}),conversation:e.conversation===null?null:Object.freeze({...e.conversation})})}function Zd(e){async function n(t,r,o){if(e.coreClient===void 0)throw new On;let i=await D(e.coreClient,t,r,{method:"POST",responseMode:"strict",prefix:$d});if(!i.ok)throw new z(o,i.code,i.message);return i.data}return {async list(){let t=ln(e.getUserId(),"favorite userId"),r=await n("/api/v1/user/favorite/list",{start_time:Hd,page_size:Fd},"\u4F1A\u8BDD\u6536\u85CF\u5217\u8868");return Object.freeze(Yd(r).flatMap(o=>{let i=Wd(o,t);return i===null?[]:[i]}))},async add(t){let r=ln(e.getUserId(),"favorite userId"),o=(e.createCollectId??Qd)(),i={msg_id:ln(t.messageId,"favorite msgId"),content_type:qd(t.kind),msg_type:Jd(t.conversation.conversationType),msg_time:String(t.createdAt),from_id:ln(t.senderId,"favorite fromId"),to_id:ln(t.peerId,"favorite toId"),is_hide:t.hide===true?"1":"0",uu_id:o,msg_body:Xr(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"),Xd({collectId:o,msgId:t.messageId.trim(),kind:t.kind,senderId:t.senderId.trim(),senderName:t.senderId.trim(),avatarUrl:"",createdAt:String(t.createdAt),text:Bn(t.plainBody,t.kind),imageUrl:xb(t.kind,t.plainBody),fileName:t.kind==="file"?Bn(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 Pe("favorite ids \u4E0D\u80FD\u4E3A\u7A7A");await n("/api/v1/user/favorite/del",{ids:r.join("|")},"\u5220\u9664\u4F1A\u8BDD\u6536\u85CF");}}}async function ci(e,n){let t=W__default.md.md5.create();for(let r=0;r<e.size;r+=1024*1024){n?.throwIfAborted();let o=new Uint8Array(await e.slice(r,r+1024*1024).arrayBuffer());n?.throwIfAborted();for(let i=0;i<o.length;i+=8192)t.update(String.fromCharCode(...o.subarray(i,i+8192)));}return n?.throwIfAborted(),t.digest().toHex()}var di="image/jpeg";function Ot(e,n){return e.type!==""||n===void 0||n===""?e:new Blob([e],{type:n})}function nu(e){let n=0;return {fileMd5:ci,async imageDimensions(t,r,o){let i=await e.prepare({operationId:`core-image-dimensions-${++n}`,generation:0,kind:"image",file:Ot(t,r),includePoster:false},o);return {width:i.width,height:i.height}},async imageThumbnail(t,r,o){let i=await e.prepare({operationId:`core-image-thumbnail-${++n}`,generation:0,kind:"image",file:Ot(t,r?.mimeType),...r?.maxSize===void 0?{}:{maxSize:r.maxSize},...r?.targetBytes===void 0?{}:{targetBytes:r.targetBytes},...r?.maxBytes===void 0?{}:{maxBytes:r.maxBytes},...r?.quality===void 0?{}:{quality:r.quality},...r?.minQuality===void 0?{}:{minQuality:r.minQuality}},o);if(i.posterData===void 0)throw new Error("\u56FE\u7247\u7F29\u7565\u56FE\u751F\u6210\u5931\u8D25\uFF1A\u6267\u884C\u5668\u672A\u8FD4\u56DE poster");return {data:new Uint8Array(i.posterData),width:i.width,height:i.height,mimeType:di}},async videoPoster(t,r,o){let i=await e.prepare({operationId:`core-video-poster-${++n}`,generation:0,kind:"video",file:Ot(t,r?.mimeType),...r?.maxSize===void 0?{}:{maxSize:r.maxSize},...r?.targetBytes===void 0?{}:{targetBytes:r.targetBytes},...r?.maxBytes===void 0?{}:{maxBytes:r.maxBytes},...r?.quality===void 0?{}:{quality:r.quality},...r?.minQuality===void 0?{}:{minQuality:r.minQuality},...r?.atTime===void 0?{}:{atTime:r.atTime}},o);if(i.posterData===void 0)throw new Error("\u89C6\u9891\u5C01\u9762\u751F\u6210\u5931\u8D25\uFF1A\u6267\u884C\u5668\u672A\u8FD4\u56DE poster");return {data:new Uint8Array(i.posterData),width:i.width,height:i.height,duration:Math.round(i.duration??0),mimeType:di}}}}function tu(e){return e>=192&&e<=207&&e!==196&&e!==200&&e!==204}function ru(e){return e!==void 0&&e>=5&&e<=8}function ou(e,n,t){return ru(t)?{width:n,height:e}:{width:e,height:n}}function iu(e,n,t){if(n+6>t)return;for(let[d,c]of [69,120,105,102,0,0].entries())if(e.getUint8(n+d)!==c)return;let r=n+6;if(r+8>t)return;let o=e.getUint16(r,false);if(o!==19789&&o!==18761)return;let i=o===18761;if(e.getUint16(r+2,i)!==42)return;let a=r+e.getUint32(r+4,i);if(a+2>t)return;let s=e.getUint16(a,i);for(let d=0;d<s;d++){let c=a+2+d*12;if(c+12>t)return;if(e.getUint16(c,i)===274)return e.getUint16(c+8,i)}}function au(e,n){let t,r=2;for(;r+4<=n;){if(e.getUint8(r)!==255)return;let o=e.getUint8(r+1);if(o===255){r+=1;continue}if(o===218||o===217)return;let i=e.getUint16(r+2,false);if(i<2)return;let a=r+4,s=r+2+i;if(s>n)return;if(tu(o)){if(a+5>n)return;let d=e.getUint16(a+1,false),c=e.getUint16(a+3,false);return c<=0||d<=0?void 0:ou(c,d,t)}o===225&&t===void 0&&(t=iu(e,a,s)),r=s;}}function su(e,n){if(n<24)return;let t=e.getUint32(16,false),r=e.getUint32(20,false);return t>0&&r>0?{width:t,height:r}:void 0}function cu(e,n){if(n<10)return;let t=e.getUint16(6,true),r=e.getUint16(8,true);return t>0&&r>0?{width:t,height:r}:void 0}function du(e,n){if(n<30)return;let t=e.getUint32(12,false);if(t===1448097824){let r=e.getUint16(26,true)&16383,o=e.getUint16(28,true)&16383;return r>0&&o>0?{width:r,height:o}:void 0}if(t===1448097868){let r=e.getUint32(21,true),o=(r&16383)+1,i=(r>>>14&16383)+1;return {width:o,height:i}}if(t===1448097880){let r=(e.getUint16(24,true)|e.getUint8(26)<<16)+1,o=(e.getUint16(27,true)|e.getUint8(29)<<16)+1;return {width:r,height:o}}}function Nn(e,n,t){return n<t.length?false:t.every((r,o)=>e.getUint8(o)===r)}async function ui(e){if(e.size===0)return;let n=new Uint8Array(await e.slice(0,Math.min(e.size,262144)).arrayBuffer()),t=new DataView(n.buffer,n.byteOffset,n.byteLength),r=n.byteLength;if(Nn(t,r,[255,216,255]))return au(t,r);if(Nn(t,r,[137,80,78,71,13,10,26,10]))return su(t,r);if(Nn(t,r,[71,73,70,56]))return cu(t,r);if(Nn(t,r,[82,73,70,70])&&r>=12&&t.getUint32(8,false)===1464156752)return du(t,r)}var yi=320,uu=12*1024,hi=20*1024,lu=.9,pu=.72,fu=320,mu=10*1024,gu=16*1024,yu=.84,hu=.68,bi=15e3,bu=1;function wu(){if(typeof navigator>"u")return 2;let e=navigator.userAgent;if(/iPad|iPhone|iPod/.test(e)||/Macintosh/.test(e)&&(navigator.maxTouchPoints??0)>1)return 1;let t=navigator.deviceMemory;return t!==void 0&&t<=2?1:2}function li(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 s={resolve:i,reject:a,...o===void 0?{}:{signal:o}};o!==void 0&&(s.onAbort=()=>{let d=t.indexOf(s);d>=0&&t.splice(d,1),a(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));},o.addEventListener("abort",s.onAbort,{once:true})),t.push(s),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 pn(e){if(e?.aborted)throw new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError")}var pi=16777216,Cu=4096;function Pu(e,n){let t=Math.min(1,Cu/Math.max(e,n)),r=Math.max(1,Math.round(e*t)),o=Math.max(1,Math.round(n*t)),i=r*o;if(i>pi){let a=Math.sqrt(pi/i);r=Math.max(1,Math.floor(r*a)),o=Math.max(1,Math.floor(o*a));}return {width:r,height:o}}function Nt(e,n,t){let r=Math.min(1,t/Math.max(e,n));return Pu(Math.max(1,Math.round(e*r)),Math.max(1,Math.round(n*r)))}async function fi(e,n,t,r,o){pn(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 s=await new Promise(d=>i.toBlob(d,"image/jpeg",r));if(pn(o),s===null)throw new Error("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1ACanvas \u7F16\u7801\u8FD4\u56DE\u7A7A\u7ED3\u679C");return await s.arrayBuffer()}function Bt(e,n){if(!Number.isInteger(e)||e<=0)throw new RangeError(`${n}\u5FC5\u987B\u662F\u6B63\u6574\u6570`)}function mi(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 Kt(e,n,t,r,o){let i=r.kind==="video",a=i?"\u89C6\u9891\u5C01\u9762":"\u56FE\u7247\u7F29\u7565\u56FE",s=r.maxSize??(i?fu:yi),d=r.targetBytes??(i?mu:uu),c=r.maxBytes??(i?gu:hi),m=r.quality??(i?yu:lu),w=r.minQuality??(i?hu:pu);if(Bt(s,`${a}\u6700\u5927\u8FB9\u957F`),Bt(d,`${a}\u76EE\u6807\u5B57\u8282\u6570`),Bt(c,`${a}\u6700\u5927\u5B57\u8282\u6570`),mi(m,`${a}\u521D\u59CB\u8D28\u91CF`),mi(w,`${a}\u6700\u4F4E\u8D28\u91CF`),d>c)throw new RangeError(`${a}\u76EE\u6807\u5B57\u8282\u6570\u4E0D\u80FD\u8D85\u8FC7\u6700\u5927\u5B57\u8282\u6570`);if(w>m)throw new RangeError(`${a}\u6700\u4F4E\u8D28\u91CF\u4E0D\u80FD\u9AD8\u4E8E\u521D\u59CB\u8D28\u91CF`);let h=Nt(n,t,s),l=Math.min(200,Math.max(h.width,h.height)),b,I=[...new Set([m,Math.max(w,m-.12),w])];for(let _ of I){let T=await fi(e,h.width,h.height,_,o);if((b===void 0||T.byteLength<b.byteLength)&&(b=T),T.byteLength<=d)return T}let A=Math.max(h.width,h.height);if(A>l&&b!==void 0){let _=Math.sqrt(d/b.byteLength),T=Math.max(l,Math.floor(A*Math.min(.9,Math.max(.5,_))));h=Nt(n,t,T);for(let x of [m,w]){let v=await fi(e,h.width,h.height,x,o);if(v.byteLength<b.byteLength&&(b=v),v.byteLength<=d)return v}}if(b!==void 0&&b.byteLength<=c)return b;throw new Error(`${a}\u751F\u6210\u5931\u8D25\uFF1A\u7F16\u7801\u7ED3\u679C\u8D85\u8FC7 ${c} \u5B57\u8282\u786C\u4E0A\u9650`)}function gi(e,n,t){return new Promise((r,o)=>{let i,a,s,d,c=()=>{i!==void 0&&clearTimeout(i),e.removeEventListener(n,a),e.removeEventListener("error",s),t?.removeEventListener("abort",d);};a=()=>{c(),r();},s=()=>{c(),o(new Error(`\u89C6\u9891\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A${n} \u524D\u89E3\u7801\u9519\u8BEF`));},d=()=>{c(),o(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));},i=setTimeout(()=>{c(),o(new Error(`\u89C6\u9891\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A${n} \u8D85\u65F6`));},bi),e.addEventListener(n,a,{once:true}),e.addEventListener("error",s,{once:true}),t?.addEventListener("abort",d,{once:true});})}async function Iu(e,n){pn(n);let t=e.maxSize??yi,r=e.maxBytes??hi,o=await ui(e.file);pn(n);function i(m,w){return e.file.type==="image/jpeg"&&e.file.size<=r&&Math.max(m,w)<=t}if(o!==void 0){if(e.includePoster===false)return o;if(i(o.width,o.height))return {...o,posterData:await e.file.arrayBuffer()}}let a=o===void 0?void 0:Nt(o.width,o.height,t),s;try{s=a===void 0?await createImageBitmap(e.file):await createImageBitmap(e.file,{resizeWidth:a.width,resizeHeight:a.height,resizeQuality:"high"});}catch(m){if(n?.aborted)throw m}if(s!==void 0)try{pn(n);let m=o??{width:s.width,height:s.height};return e.includePoster===!1?m:o===void 0&&i(s.width,s.height)?{...m,posterData:await e.file.arrayBuffer()}:{...m,posterData:await Kt(s,s.width,s.height,e,n)}}finally{s.close();}let d=URL.createObjectURL(e.file),c=new Image;try{await new Promise((w,h)=>{let l,b,I=()=>{l!==void 0&&clearTimeout(l),c.onload=null,c.onerror=null,n?.removeEventListener("abort",b);};b=()=>{I(),h(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));},c.onload=()=>{I(),w();},c.onerror=()=>{I(),h(new Error("\u56FE\u7247\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1AImage \u89E3\u7801\u9519\u8BEF"));},l=setTimeout(()=>{I(),h(new Error("\u56FE\u7247\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1AImage \u89E3\u7801\u8D85\u65F6"));},bi),n?.addEventListener("abort",b,{once:!0}),c.src=d;});let m=o??{width:c.naturalWidth,height:c.naturalHeight};return e.includePoster===!1?m:i(c.naturalWidth,c.naturalHeight)?{...m,posterData:await e.file.arrayBuffer()}:{...m,posterData:await Kt(c,c.naturalWidth,c.naturalHeight,e,n)}}finally{c.removeAttribute("src"),URL.revokeObjectURL(d);}}async function vu(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 gi(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,s=e.atTime===void 0?a===void 0?0:Math.min(1,a/2):Math.max(0,Math.min(e.atTime,a??e.atTime));s>0&&(r.currentTime=s,await gi(r,"seeked",n));let d=a===void 0?void 0:a,c;try{c=await Kt(r,o,i,e,n);}catch(m){if(n?.aborted||m instanceof RangeError)throw m}return {width:o,height:i,...d===void 0?{}:{duration:d},...c===void 0?{}:{posterData:c}}}finally{r.pause(),r.removeAttribute("src"),r.load(),URL.revokeObjectURL(t);}}function Su(e={}){let n=e.maxConcurrency??wu();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=li(n),r=li(bu),o=false;return {async prepare(i,a){if(o)throw new Error("\u5A92\u4F53\u9884\u89C8\u6267\u884C\u5668\u5DF2\u91CA\u653E");let s=i.kind==="video",d=await(s?r:t).acquire(a);try{return s?await vu(i,a):await Iu(i,a)}finally{d();}},dispose(){o||(o=true,t.dispose(),r.dispose());}}}function Kn(e=6){if(!Number.isSafeInteger(e)||e<1)throw new RangeError("\u5A92\u4F53\u8BF7\u6C42\u5E76\u53D1\u4E0A\u9650\u5FC5\u987B\u4E3A\u6B63\u6574\u6570");let n=0,t=[];function r(){for(;n<e&&t.length>0;){let o=t.shift();if(o.signal?.removeEventListener("abort",o.cancel),o.signal?.aborted){o.cancel();continue}n+=1,o.start();}}return async function(i,a){if(i?.aborted)throw new DOMException("\u5A92\u4F53\u4F20\u8F93\u5DF2\u53D6\u6D88","AbortError");await new Promise((s,d)=>{let c={signal:i,start:s,cancel:()=>{let m=t.indexOf(c);m>=0&&t.splice(m,1),d(new DOMException("\u5A92\u4F53\u4F20\u8F93\u5DF2\u53D6\u6D88","AbortError"));}};i?.addEventListener("abort",c.cancel,{once:true}),t.push(c),r();});try{if(i?.aborted)throw new DOMException("\u5A92\u4F53\u4F20\u8F93\u5DF2\u53D6\u6D88","AbortError");return await a()}finally{n-=1,r();}}}var fn=16*1024*1024,mn=3,Gt=3,Gn=6,Au=5*1024**3,Ln=1e4;function Hn(e,n){if(!Number.isSafeInteger(e)||e<0)throw new K("upload-source-invalid","\u5A92\u4F53\u4E0A\u4F20\u5927\u5C0F\u5FC5\u987B\u4E3A\u975E\u8D1F\u5B89\u5168\u6574\u6570\u5B57\u8282\u6570");let t=n&&e>fn,r=t?Math.ceil(e/fn):1;if(!t&&e>Au)throw new K("upload-size-exceeded","\u5355\u6B21 PUT \u6700\u591A\u652F\u6301 5 GiB\uFF1B\u66F4\u5927\u5BF9\u8C61\u9700\u8981\u663E\u5F0F\u542F\u7528\u5E76\u914D\u7F6E\u5206\u7247\u4E0A\u4F20");if(r>Ln)throw new K("upload-size-exceeded","\u5F53\u524D 16 MiB \u5206\u7247\u7B56\u7565\u6700\u591A\u652F\u6301 10,000 \u7247\uFF08156.25 GiB\uFF09");return {multipart:t,partSize:fn,partCount:r}}function Mu(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]),s=Number(o?.[2]),d=Number(o?.[3]);if(e.status!==206||o===null||![a,s,d].every(Number.isSafeInteger)||d<=0||a!==n||s!==Math.min(t,d-1)||s<a||!/^"[\x21\x23-\x7E\x80-\xFF]*"$/.test(i)||e.headers.get("content-encoding")!==null&&e.headers.get("content-encoding")!=="identity")throw new K("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&&(d!==r.total||i!==r.etag))throw new K("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:s,total:d,etag:i}}function wi(e=true,n,t=fn){if(!Number.isSafeInteger(t)||t<=0)throw new RangeError("\u4E0B\u8F7D\u5206\u6BB5\u5927\u5C0F\u5FC5\u987B\u4E3A\u6B63\u6574\u6570");let r=Kn(Gn);async function o(a,s){if(!a.ok)throw new K("download-range-failed",`\u5A92\u4F53\u4E0B\u8F7D\u5931\u8D25\uFF1AHTTP ${a.status}`);return s.onProgress===void 0||a.body===null?s.preferBlob===true?await a.blob():new Uint8Array(await a.arrayBuffer()):xu(a,s.onProgress,s.expectedBytes,s.preferBlob===true)}async function i(a){let s=new AbortController,d=()=>s.abort(a.signal?.reason);a.signal?.aborted?d():a.signal?.addEventListener("abort",d,{once:true});let c=s.signal,m=[],w=[],h=0,l,b="",I=1,A,_=false,T=u=>{_||(_=true,A=u,s.abort());};function x(u,g){h+=g-(w[u]??0),w[u]=g;let C=l.total;a.onProgress?.({percent:Math.min(99,Math.round(h/C*100)),bytesTransferred:h,bytesTotal:C});}async function v(u){let g=u*t,C=l===void 0?g+t-1:Math.min(g+t-1,l.total-1);return r(c,async()=>{let p=await fetch(a.url,{signal:c,cache:"no-store",headers:{Range:`bytes=${g}-${C}`}});if(u===0&&p.status===200)return n?.record("info","sdk","media","download-range-unavailable",()=>({data:{reason:"server-returned-full-response"}})),m[0]=await o(p,{...a,preferBlob:true}),"single";let y=Mu(p,g,C,l);l===void 0&&(l=y,b=p.headers.get("content-type")??"",n?.record("debug","sdk","media","download-range-started",()=>({data:{bytesTotal:y.total,partSizeBytes:t,concurrency:Gt}})));let S=await o(p,{...a,preferBlob:true,onProgress:f=>x(u,f.bytesTransferred)});if(S.size!==y.end-g+1)throw new K("download-range-invalid","\u5206\u6BB5\u4E0B\u8F7D\u5B57\u8282\u6570\u4E0E Content-Range \u4E0D\u4E00\u81F4");return m[u]=S,x(u,S.size),"range"})}try{let u=await v(0);if(u==="range"){let g=Math.ceil(l.total/t),C=Array.from({length:Math.min(Gt,g-1)},async()=>{try{for(;!c.aborted&&I<g;)await v(I++);}catch(p){T(p);}});if(await Promise.allSettled(C),_)throw A}if(c.aborted)throw new DOMException("\u5A92\u4F53\u4E0B\u8F7D\u5DF2\u53D6\u6D88","AbortError");return u==="single"?m[0]:new Blob(m,{type:b})}catch(u){throw s.abort(),n?.record("warn","sdk","media","download-range-failed",()=>({data:{code:u instanceof K?u.code:"download-failed"}})),u}finally{a.signal?.removeEventListener("abort",d);}}return async function(s){return e&&s.preferBlob===true&&Number.isFinite(s.expectedBytes)&&s.expectedBytes>t?i(s):r(s.signal,async()=>{if(s.onProgress!==void 0&&typeof XMLHttpRequest<"u")return _u(s);let d=await fetch(s.url,s.signal===void 0?{}:{signal:s.signal});return o(d,s)})}}function _u(e){let n=e.preferBlob===true;return new Promise((t,r)=>{let o=new XMLHttpRequest,i=false,a=()=>{},s=()=>{e.signal?.removeEventListener("abort",a),o.onprogress=null,o.onload=null,o.onerror=null,o.onabort=null;},d=c=>{i||(i=true,s(),c());};if(a=()=>{o.abort(),d(()=>r(new DOMException("media download canceled","AbortError")));},o.open("GET",e.url,true),o.responseType=n?"blob":"arraybuffer",o.onprogress=c=>{let m=e.expectedBytes!==void 0&&Number.isFinite(e.expectedBytes)&&e.expectedBytes>0?Math.floor(e.expectedBytes):0,w=c.lengthComputable&&c.total>0?c.total:m,h=w>0?Math.min(99,Math.round(c.loaded/w*100)):0;e.onProgress?.({percent:h,bytesTransferred:c.loaded,bytesTotal:w});},o.onload=()=>{if(o.status<200||o.status>=300){d(()=>r(new Error(`media download \u5931\u8D25\uFF1AHTTP ${o.status}`)));return}let c=o.response;if(n){if(!(typeof Blob<"u"&&c instanceof Blob)){d(()=>r(new Error("media download \u5931\u8D25\uFF1AXHR \u672A\u8FD4\u56DE Blob")));return}d(()=>t(c));return}if(!(c instanceof ArrayBuffer)){d(()=>r(new Error("media download \u5931\u8D25\uFF1AXHR \u672A\u8FD4\u56DE ArrayBuffer")));return}d(()=>t(new Uint8Array(c)));},o.onerror=()=>d(()=>r(new Error("media download \u5931\u8D25\uFF1Anetwork"))),o.onabort=()=>d(()=>r(new DOMException("media download canceled","AbortError"))),e.signal?.aborted){a();return}e.signal?.addEventListener("abort",a,{once:true}),o.send();})}async function xu(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,s=0,d=e.body.pipeThrough(new TransformStream({transform(m,w){s+=m.byteLength;let h=a>0?Math.min(99,Math.round(s/a*100)):0;n({percent:h,bytesTransferred:s,bytesTotal:a}),w.enqueue(m);}})),c=new Response(d,{headers:e.headers});return r?await c.blob():new Uint8Array(await c.arrayBuffer())}var Ci=async(e,n)=>{if(e?.aborted)throw new DOMException("media upload canceled","AbortError");return await n()},Lt="is missing ETag in UploadPart response";function Ht(e){if(typeof e!="object"||e===null)return false;let n=e;return n.name==="NoSuchUpload"||n.Code==="NoSuchUpload"}function Eu(e,n,t){return e instanceof Uint8Array?e.subarray(n,t):e.slice(n,t)}async function Pi(e,n,t){return e.transformPart===void 0?n:await e.transformPart(n instanceof Blob?n:new Blob([n]),t)}function Ii(e,n){let t=new Map,r=n,o=n;function i(){if(e.onProgress===void 0)return;let a=r;for(let c of t.values())a+=c;o=Math.max(o,a);let s=e.sourceBytes,d=s>0?Math.min(99,Math.round(o/s*100)):0;e.onProgress({percent:d,bytesTransferred:o,bytesTotal:s,phase:s>0&&o>=s?"finalizing":"transferring"});}return {trackPart(a,s){t.set(a,s),i();},completePart(a,s){t.delete(a),r+=s,i();},report:i}}function vi(e,n){let t=(o,i)=>{if(i.query?.uploadId!==void 0&&i.query.partNumber===void 0)return;let a=i.query?.partNumber,s=a===void 0?0:Number(a);Number.isFinite(s)&&n.trackPart(s,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 Si(e,n,t=Ci){let r=Ii(n,0),o=vi(e.handler,r);try{await t(n.signal,async()=>{let i=await Pi(n,n.data,1);if(n.signal?.aborted)throw new DOMException("media upload canceled","AbortError");await e.client.send(new e.commands.PutObjectCommand({Bucket:e.bucket,Key:e.key,Body:i,...e.mimeType!==void 0&&e.mimeType!==""?{ContentType:e.mimeType}:{}}),n.signal===void 0?{}:{abortSignal:n.signal});});}finally{o();}}function Ft(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 $t(e){let{target:n,content:t,partSize:r,queueSize:o,runUpload:i=Ci}=e;if(t.signal?.aborted===true)throw new DOMException("media upload canceled","AbortError");let a=Math.max(1,Math.ceil(t.sourceBytes/r));if(a>Ln)throw new Error(`media upload: \u5206\u7247\u6570 ${a} \u8D85\u8FC7 S3 \u4E0A\u9650 ${Ln}\uFF0C\u9700\u8981\u653E\u5927\u5206\u7247\u5927\u5C0F`);let s=Ft(e.resume,n,t.sourceBytes,r),d=new Map;if(s!==void 0)for(let x of s)d.set(x.partNumber,x);let c=s===void 0?"":e.resume.uploadId;if(c===""){let x=await n.client.send(new n.commands.CreateMultipartUploadCommand({Bucket:n.bucket,Key:n.key,...n.mimeType!==void 0&&n.mimeType!==""?{ContentType:n.mimeType}:{}}));if(x.UploadId===void 0||x.UploadId==="")throw new Error("media upload: CreateMultipartUpload \u672A\u8FD4\u56DE UploadId");c=x.UploadId,d.clear();}let m=x=>Math.min(r,t.sourceBytes-(x-1)*r),w=0;for(let x of d.keys())w+=m(x);let h=Ii(t,w),l=vi(n.handler,h),b=()=>({bucket:n.bucket,key:n.key,uploadId:c,partSize:r,sourceBytes:t.sourceBytes,parts:[...d.values()].sort((x,v)=>x.partNumber-v.partNumber)});e.onResumable?.(b()),h.report();let I=new AbortController,A=()=>I.abort();t.signal?.addEventListener("abort",A,{once:true}),t.signal?.aborted&&A();let _=1;async function T(){for(;;){if(I.signal.aborted)return;let x=_;if(_+=1,x>a)return;if(d.has(x))continue;let v=(x-1)*r,u=Math.min(v+r,t.sourceBytes),g=await i(I.signal,async()=>{let C=await Pi(t,Eu(t.data,v,u),x);if(I.signal.aborted)throw new DOMException("media upload canceled","AbortError");return await n.client.send(new n.commands.UploadPartCommand({Bucket:n.bucket,Key:n.key,UploadId:c,PartNumber:x,Body:C}),{abortSignal:I.signal})});if(g.ETag===void 0||g.ETag==="")throw new Error(`media upload: Part ${x} ${Lt}`);d.set(x,{partNumber:x,etag:g.ETag}),h.completePart(x,u-v),e.onResumable?.(b());}}try{let x;if(await Promise.allSettled(Array.from({length:Math.min(mn,a,Math.max(1,o))},async()=>{try{await T();}catch(v){let u=v instanceof Error&&v.name==="AbortError";(x===void 0||!u&&Te(x.cause)!==void 0&&Te(v)===void 0)&&(x={cause:v}),A();}})),x!==void 0)throw x.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:c,MultipartUpload:{Parts:[...d.values()].sort((v,u)=>v.partNumber-u.partNumber).map(v=>({PartNumber:v.partNumber,ETag:v.etag}))}}),t.signal===void 0?{}:{abortSignal:t.signal}),e.onCompleted?.(),t.signal?.aborted)throw new DOMException("media upload canceled","AbortError")}finally{t.signal?.removeEventListener("abort",A),l();}}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(!Ht(t))throw t}}var Ru=3e4;function Ai(e,n){e.handle=async(t,r={})=>{let o=new n({}),i=r.abortSignal,a=new AbortController,s,d=false,c,m=0,w=0,h=()=>{clearTimeout(s),s=setTimeout(()=>{d=true,a.abort();},Ru);},l=()=>a.abort(i?.reason),b=_=>{_.loaded>m&&(m=_.loaded,h()),e.emit("xhr.upload.progress",_,t);},I=_=>{_.loaded>w&&(w=_.loaded,h()),e.emit("xhr.progress",_,t);},A=()=>{c?.readyState===2&&h();};o.on("before.xhr.send",_=>{c=_,c.addEventListener("readystatechange",A),h();}),o.on("xhr.upload.progress",b),o.on("xhr.progress",I),i?.addEventListener("abort",l,{once:true}),i?.aborted&&l();try{let _=await o.handle(t,{...r,abortSignal:a.signal,requestTimeout:0});if(d)throw new K("upload-timeout");if(a.signal.aborted)throw new DOMException("Request aborted","AbortError");if(_.response.statusCode===0)throw new Error("XHR_HTTP_HANDLER_ERROR: Network request failed before receiving an HTTP response");return _}catch(_){throw d?new K("upload-timeout","media upload: \u7F51\u7EDC\u8FDE\u7EED 30 \u79D2\u6CA1\u6709\u63A8\u8FDB",{cause:_}):_}finally{clearTimeout(s),i?.removeEventListener("abort",l),c?.removeEventListener("readystatechange",A),o.removeAllListeners(),o.destroy();}};}function ku(e){if(e instanceof Uint8Array)return e.byteLength;if(typeof Blob<"u"&&e instanceof Blob)return e.size}var Mi="\u5206\u7247\u4E0A\u4F20\u8981\u6C42\u8BE5 bucket \u7684 CORS \u653E\u884C POST\uFF08Create/CompleteMultipartUpload\uFF09\u3001DELETE\uFF08AbortMultipartUpload\uFF09\u5E76 ExposeHeaders: ETag";function Tu(e){return e instanceof Error&&e.message.includes(Lt)}function Du(e,n,t){return t!==void 0?new K("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${Mi}`,{cause:t}):e instanceof K?e:Tu(e)?new K("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 K("multipart-upload-failed",`media upload: \u5206\u7247\u4E0A\u4F20\u5931\u8D25\uFF1B${Mi}`,{cause:e}):e}var Uu=new Set(["upload-source-invalid","upload-resume-unavailable","multipart-etag-missing","multipart-abort-failed"]);function jt(e,n){let t=e?.transport;if(t==null||typeof t!="object"||typeof t.logicalBucket!="string"||t.logicalBucket===""||typeof t.objectName!="string"||t.objectName===""||n!==void 0&&t.logicalBucket!==n)return;let r=t.session;if(r==null||typeof r!="object"||typeof r.bucket!="string"||r.bucket===""||typeof r.key!="string"||r.key===""||typeof r.uploadId!="string"||r.uploadId===""||!Number.isSafeInteger(r.partSize)||r.partSize<=0||!Number.isSafeInteger(r.sourceBytes)||r.sourceBytes<0||!Array.isArray(r.parts))return;let o=new Set;for(let i of r.parts){if(i===null||typeof i!="object"||!Number.isSafeInteger(i.partNumber)||i.partNumber<1||i.partNumber>Math.ceil(r.sourceBytes/r.partSize)||o.has(i.partNumber)||typeof i.etag!="string"||i.etag==="")return;o.add(i.partNumber);}return t}var yn;function _i(){if(yn!==void 0)return yn;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 yn===n&&(yn=void 0),t});return yn=n,n}function xi(e,n){return new K("multipart-abort-failed","Resource upload failed and incomplete parts could not be removed",{cause:new AggregateError([e,n],"Resource upload and multipart cleanup both failed")})}function Ou(e){if(e===void 0)return "";let n=e.lastIndexOf(".");return n>=0?e.slice(n):""}function Bu(e){return globalThis.crypto.randomUUID()+Ou(e)}function Ei(e,n){let t=e.keyPrefix??"";return t===""||n.startsWith(t)?n:`${t}${n}`}function Nu(e,n){let t=Tr(e.getUploadCredentials),r=Kn(Gn);function o(l,b){if(l==="avatar")return e.avatarBucket??"";if(b==="channel"){let I=e.channelBuckets?.[l]??"";if(I!=="")return I}return e.buckets[l]??""}function i(l,b,I,A=false){let{region:_}=b;return Ai(I,l.XhrHttpHandler),new l.S3Client({region:_,maxAttempts:A?1:3,credentials:{accessKeyId:b.accessKeyId,secretAccessKey:b.secretAccessKey,sessionToken:b.sessionToken,...b.expiresAtSeconds===void 0?{}:{expiration:new Date(b.expiresAtSeconds*1e3)}},useAccelerateEndpoint:(e.useAccelerateEndpoint??true)&&!_.toLowerCase().startsWith("cn-"),requestChecksumCalculation:"WHEN_REQUIRED",requestHandler:I})}async function a(l,b,I,A,_,T,x,v){let{multipart:u,partSize:g}=Hn(x,e.multipartTransfer===true&&e.multipartUpload!==false),C=new l.XhrHttpHandler({}),p=i(l,_,C,b.recoveryManaged===true),y={client:p,handler:C,commands:l.commands,bucket:_.bucket,key:T,...b.mimeType!==void 0&&b.mimeType!==""?{mimeType:b.mimeType}:{}},S={data:b.data,sourceBytes:x,...b.onProgress===void 0?{}:{onProgress:b.onProgress},...b.signal===void 0?{}:{signal:b.signal},...b.transformPart===void 0?{}:{transformPart:b.transformPart}},f=b.resume,P=jt(f),E=u&&P?.logicalBucket===I&&Ft(P.session,y,x,g)!==void 0,R=E?P?.session:void 0,O=U=>{R=U;let N=0;for(let B of U.parts)N+=Math.min(U.partSize,U.sourceBytes-(B.partNumber-1)*U.partSize);b.onResumable?.({bytesUploaded:N,transport:{logicalBucket:I,objectName:A,session:U}});},M=()=>{R=void 0,delete b.resume,b.onResumeInvalidated?.();},k;try{if(v.mode==="retain"&&f!==void 0&&!E)throw new K("upload-resume-unavailable","media upload: \u4E0A\u6B21\u4E0A\u4F20\u76EE\u6807\u6216\u7EED\u4F20\u8BB0\u5F55\u5DF2\u5931\u6548\uFF0C\u9700\u8981\u786E\u8BA4\u540E\u91CD\u65B0\u5B8C\u6574\u4E0A\u4F20");if(P!==void 0&&!E){try{P.logicalBucket===I?await gn(y,P.session):await w(f);}catch(N){throw v.cleanupFailed=!0,xi(v.retryCause,N)}delete b.resume;}if(b.signal?.aborted)throw new DOMException("media upload canceled","AbortError");if(!u){await Si(y,S,r);return}let U=R;try{await $t({target:y,content:S,partSize:g,queueSize:mn,runUpload:r,...U===void 0?{}:{resume:U},onResumable:O,onCompleted:M});}catch(N){if(b.signal?.aborted||!Ht(N)||v.mode==="discard"&&U===void 0)throw N;if(v.mode==="retain")throw new K("upload-resume-unavailable","media upload: \u4E0A\u6B21\u4E0A\u4F20\u5DF2\u65E0\u6CD5\u7EE7\u7EED\uFF0C\u9700\u8981\u786E\u8BA4\u540E\u91CD\u65B0\u5B8C\u6574\u4E0A\u4F20",{cause:N});R=void 0,await $t({target:y,content:S,partSize:g,queueSize:mn,runUpload:r,onResumable:O,onCompleted:M});}}catch(U){if(v.mode==="retain"&&b.signal?.aborted===true&&!["offline","paused","page-preserve"].includes(b.signal.reason)&&R!==void 0)try{await gn(y,R),M();}catch(N){k=N;}throw v.cleanupFailed?U:Du(U,u,k)}finally{p.destroy();}}async function s(l,b,I,A={mode:"retain"}){let _=o(b,I);if(_==="")throw new K("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 T=ku(l.data);if(T===void 0)throw new K("upload-source-invalid","media upload: \u4E0A\u4F20\u5185\u5BB9\u5FC5\u987B\u662F Uint8Array \u6216 Blob");Hn(T,e.multipartTransfer===true&&e.multipartUpload!==false);let x=await _i();if(A.mode==="discard"&&l.signal?.aborted)throw new DOMException("media upload canceled","AbortError");let v=jt(l.resume,_)?.objectName??Bu(l.filename),u={...l,onResumable:C=>{u.resume=C,l.onResumable?.(C);},onResumeInvalidated:()=>{delete u.resume,l.onResumeInvalidated?.();}},g;try{g=await t.resolve(_,l.forceRefreshCredentials===!0?{forceRefresh:!0}:void 0);let C=Ei(g,v);try{await a(x,u,_,v,g,C,T,A);}catch(p){if(l.signal?.aborted||l.recoveryManaged===!0||p instanceof K&&Uu.has(p.code))throw p;A.retryCause=p,g=await t.resolve(_,{forceRefresh:!0}),C=Ei(g,v),await a(x,u,_,v,g,C,T,A);}if(l.signal?.aborted)throw new DOMException("media upload canceled","AbortError");return l.onProgress?.({percent:100,bytesTransferred:T,bytesTotal:T,phase:"finalizing"}),{url:`${g.dnsPoint}/${C}`}}catch(C){let p=jt(u.resume);if(A.mode==="discard"&&!A.cleanupFailed&&p!==void 0&&g!==void 0){let S=new x.XhrHttpHandler({}),f=i(x,g,S);try{await gn({client:f,commands:x.commands},p.session);}catch(P){throw xi(C,P)}finally{f.destroy();}}let y=Te(C);throw y!==void 0&&l.onFailure?.(y),C instanceof K&&(C.code==="upload-resume-unavailable"?l.onFailure?.("resume-unavailable"):C.code==="multipart-abort-failed"&&l.onFailure?.("cleanup-unconfirmed")),C}}function d(l){return s(l,l.kind,l.conversationType)}function c(l){return s({data:l.data,...l.filename===void 0?{}:{filename:l.filename},...l.mimeType===void 0?{}:{mimeType:l.mimeType},...l.signal===void 0?{}:{signal:l.signal},...l.onProgress===void 0?{}:{onProgress:l.onProgress}},l.kind,void 0,{mode:"discard"})}function m(l){return s(l,"avatar")}async function w(l){let b=l.transport;if(b?.session===void 0||b.session.uploadId==="")return;let I=await _i(),A=await t.resolve(b.logicalBucket),_=new I.XhrHttpHandler({}),T=i(I,A,_);try{await gn({client:T,commands:I.commands},b.session);}finally{T.destroy();}}let h=wi(e.multipartTransfer===true&&e.rangeDownload!==false,n);return {upload:d,uploadAvatar:m,uploadResource:c,download:h,abandonUpload:w}}var q=class extends Error{constructor(t,r){super(`Media upload recovery ${t}`,r);this.reason=t;this.name="MediaUploadRecoveryError",this.code=`IM_MEDIA_UPLOAD_RECOVERY_${t.toUpperCase()}`;}reason;code};function X(){throw new q("invalid")}function Ie(e){return typeof e!="object"||e===null||Array.isArray(e)?X():e}function ye(e,n=4096){return typeof e!="string"||e.length===0||e.length>n?X():e}function Ee(e,n=0){return typeof e!="number"||!Number.isSafeInteger(e)||e<n?X():e}function qt(e){return typeof e!="number"||!Number.isFinite(e)||e<0?X():e}function Fn(e,n=4096){if(e!==void 0)return typeof e!="string"||e.length>n?X():e}function $n(e){let n=Ie(e);if(n.version!==1||n.kind!=="video"&&n.kind!=="file"||typeof n.encrypted!="boolean")return X();let t=Ie(n.ref);if(t.conversationType!=="direct"&&t.conversationType!=="group"&&t.conversationType!=="channel")return X();let r=Ie(n.source),o=Ee(r.size,1),i=ye(r.sha256,64);if(!/^[a-f0-9]{64}$/.test(i))return X();let a=Ie(n.resume),s=Ie(a.transport),d=Ie(s.session),c=Ee(d.partSize,8);if(c%8!==0||Ee(d.sourceBytes,1)!==o||!Array.isArray(d.parts)||d.parts.length>1e4)return X();let m=new Set,w=0,h=d.parts.map(x=>{let v=Ie(x),u=Ee(v.partNumber,1);return u>Math.ceil(o/c)||m.has(u)?X():(m.add(u),w+=Math.min(c,o-(u-1)*c),{partNumber:u,etag:ye(v.etag,1024)})});if(Ee(a.bytesUploaded)!==w)return X();let l;if(n.encrypted){if(!(n.teaKey instanceof Uint8Array)||n.teaKey.length!==16)return X();l=new Uint8Array(n.teaKey);}else if(n.teaKey!==void 0)return X();let b;if(n.preview!==void 0){let x=Ie(n.preview),v;if(x.thumbData!==void 0){if(!(x.thumbData instanceof Uint8Array)||x.thumbData.byteLength>16*1024)return X();v=new Uint8Array(x.thumbData);}b={width:qt(x.width),height:qt(x.height),...x.duration===void 0?{}:{duration:qt(x.duration)},...v===void 0?{}:{thumbData:v}};}if(n.filesAlbum!==void 0&&typeof n.filesAlbum!="boolean")return X();let I=Fn(r.filename),A=Fn(r.mimeType,256),_=Fn(n.caption,16384),T=Fn(n.refMessageId);return {version:1,ref:{conversationType:t.conversationType,conversationId:ye(t.conversationId)},messageId:ye(n.messageId),kind:n.kind,createdAt:Ee(n.createdAt),savedAt:Ee(n.savedAt),encrypted:n.encrypted,source:{size:o,sha256:i,...I===void 0?{}:{filename:I},...A===void 0?{}:{mimeType:A}},...l===void 0?{}:{teaKey:l},...b===void 0?{}:{preview:b},..._===void 0?{}:{caption:_},...T===void 0?{}:{refMessageId:T},...n.filesAlbum===void 0?{}:{filesAlbum:n.filesAlbum},resume:{bytesUploaded:w,transport:{logicalBucket:ye(s.logicalBucket),objectName:ye(s.objectName),session:{bucket:ye(d.bucket),key:ye(d.key),uploadId:ye(d.uploadId),partSize:c,sourceBytes:o,parts:h}}}}}function je(e){if(e?.aborted)throw new DOMException("Source fingerprint cancelled","AbortError")}async function Ri(e,n){je(n);let t=e instanceof Uint8Array?e.byteLength:e.size,r=await createSHA256();je(n);let o=1024*1024,i=performance.now();for(let a=0;a<t;a+=o){je(n);let s=e instanceof Uint8Array?e.subarray(a,a+o):new Uint8Array(await e.slice(a,a+o).arrayBuffer());je(n),r.update(s),performance.now()-i>=8&&(await new Promise(d=>setTimeout(d,0)),je(n),i=performance.now());}return je(n),{size:t,sha256:r.digest("hex")}}var Lu=1440*60*1e3,Hu=3;function ve(e,n){if(!e.conversationId||!n||!["direct","group","channel"].includes(e.conversationType))throw new q("invalid");return JSON.stringify([e.conversationType,e.conversationId,n])}function Fu(e){let n=e.namespaceFactory.forAccount(e.accountId),t=n.name("ephemeral","media-upload-recovery","indexed-db"),r=n.name("ephemeral","media-upload-recovery","owner"),o=e.locks===void 0?globalThis.navigator?.locks:e.locks,i=e.now??Date.now,a,s=Promise.resolve(),d=false,c,m=false,w=false,h=0,l=0,b,I,A,_=new Map,T=new WeakMap,x=0;function v(){if(d)throw new q("unavailable")}function u(){T=new WeakMap,x+=1;}function g(M,k){if(v(),M?.aborted)throw new DOMException("Source fingerprint cancelled","AbortError");if(k!==x)throw new q("unavailable")}function C(){return a??=openDB(t,1,{upgrade(M){M.createObjectStore("uploads");},blocking(){O();},terminated(){d=true,u(),y();}}),a}function p(M,k=false){try{if(v(),k&&(!m||w))throw new q("unavailable")}catch(B){return Promise.reject(B)}let U=l,N=s.then(async()=>{if(k&&(!m||U!==l))throw new q("unavailable");try{return await M()}catch(B){throw B instanceof q?B:new q("storage",{cause:B})}});return s=N.then(()=>{},()=>{}),N}function y(){!m||w||(w=true,s.then(()=>{m=false,h=0,l+=1,b?.(),b=void 0;}));}async function S(M){if(v(),M?.aborted)throw new DOMException("Recovery lease cancelled","AbortError");if(!o||w)throw new q("unavailable");if(m||(I===void 0&&(I=new Promise((N,B)=>{try{A=o.request(r,{mode:"exclusive",ifAvailable:!0},async $=>{if(!$||d){B(new q("unavailable"));return}m=!0,l+=1;let Z=new Promise(ae=>{b=ae;});N(),await Z;}),A.catch(()=>B(new q("unavailable"))).finally(()=>{I=void 0,w=!1;});}catch{B(new q("unavailable"));}})),await I),d||w||M?.aborted)throw h===0&&y(),M?.aborted?new DOMException("Recovery lease cancelled","AbortError"):new q("unavailable");h+=1;let k=l,U=false;return {release(){U||k!==l||(U=true,h-=1,h===0&&y());}}}function f(M){return i()-M.savedAt>=Lu}function P(M){let k=ve(M.ref,M.messageId),U=Math.min(_.get(k)??M.savedAt,M.savedAt);return _.set(k,U),U}async function E(){let k=(await C()).transaction("uploads",m&&!w?"readwrite":"readonly");try{let U=await k.store.getAll(),N=[];for(let B of U){let $=$n(B);P($),f($)?k.mode==="readwrite"&&await k.store.delete(ve($.ref,$.messageId)):N.push($);}return await k.done,N}catch(U){try{k.abort();}catch{}throw await k.done.catch(()=>{}),U}}function R(M){let k;try{k=$n(M);}catch(U){return Promise.reject(U)}return p(async()=>{let N=(await C()).transaction("uploads","readwrite");try{let B=ve(k.ref,k.messageId),$=await N.store.getAll(),Z=0,ae;for(let Jn of $){let pe=$n(Jn);P(pe),f(pe)?await N.store.delete(ve(pe.ref,pe.messageId)):(Z+=1,ve(pe.ref,pe.messageId)===B&&(ae=pe));}if(ae){if(ae.source.sha256!==k.source.sha256||ae.source.size!==k.source.size||ae.kind!==k.kind||ae.encrypted!==k.encrypted||ae.teaKey?.some((Jn,pe)=>Jn!==k.teaKey?.[pe]))throw new q("invalid");k.savedAt=ae.savedAt;}else if(Z>=Hu)throw new q("capacity");let Xt=_.get(B);if(Xt!==void 0&&(k.savedAt=Math.min(Xt,k.savedAt)),f(k)||k.savedAt>i())throw new q("invalid");await N.store.put(k,B),await N.done,P(k);}catch(B){try{N.abort();}catch{}throw await N.done.catch(()=>{}),B}},true)}async function O(){return c||(d=true,u(),c=(async()=>{await s;try{a&&(await a).close();}finally{y(),await A;}})(),c)}return {get:(M,k)=>p(async()=>{let U=ve(M,k);return (await E()).find(N=>ve(N.ref,N.messageId)===U)}),list:()=>p(E),save:R,remove:(M,k)=>p(async()=>{let U=ve(M,k);await(await C()).delete("uploads",U),_.delete(U);},true),clear:()=>(u(),p(async()=>{await(await C()).clear("uploads"),_.clear();},true)),drain:()=>s,fingerprint:async(M,k)=>{let U=x;g(k,U);let N=M instanceof Blob?M:void 0,B=N===void 0?void 0:T.get(N);if(B!==void 0)return {...B};let $=await Ri(M,k);g(k,U);let Z={size:$.size,sha256:$.sha256};return N!==void 0&&T.set(N,Z),{...Z}},acquireLease:S,close:O}}function $u(e,n={}){let t=n.locks!==void 0?n.locks:globalThis.navigator?.locks,r=n.createChannel!==void 0?n.createChannel:typeof globalThis.BroadcastChannel=="function"?w=>new BroadcastChannel(w):void 0,o=typeof globalThis.addEventListener=="function"?globalThis:void 0,i=n.pageLifecycleTarget!==void 0?n.pageLifecycleTarget:o,a,s=0;function d(w){try{e.onError(w);}catch{}}function c(w,h=false,l="stopped"){if(a===w&&!h&&(a=void 0),w.resolveReady(false),w.closed)return;w.closed=true,w.controller.abort();let b=[],I=T=>{try{T();}catch(x){b.push(x);}};for(let T of w.cleanups.splice(0))I(T);I(()=>w.channel.close());let A=w.release;w.release=void 0;let _=w.owned;w.owned=false;try{let T=_?e.onChange(!1,l):void 0;Promise.resolve(T).then(()=>A?.(),d);}catch(T){d(T);}for(let T of b)d(T);}function m(w,h){c(w,true),d(h);}return {start(w){if(a?.key===w)return a.ready;let h=++s;if(a&&c(a),h!==s)return Promise.resolve(false);if(!w||!t||!r)return d(new Error("Browser connection ownership requires a key, Web Locks and BroadcastChannel")),Promise.resolve(false);let l;try{l=r(`im-connection:${w}`);}catch(x){return d(x),Promise.resolve(false)}let b,I=new Promise(x=>{b=x;}),A={key:w,channel:l,cleanups:[],owned:false,closed:false,ready:I,resolveReady:b,controller:new AbortController,claim:{startedAt:Date.now(),id:globalThis.crypto.randomUUID()}};a=A;let _=x=>{if(a!==A||A.closed||typeof x.data!="object"||x.data===null)return;let v=x.data;v.type==="session-ended"?c(A):v.type==="takeover"&&typeof v.startedAt=="number"&&Number.isFinite(v.startedAt)&&typeof v.id=="string"&&v.id!==A.claim.id&&(v.startedAt>A.claim.startedAt||v.startedAt===A.claim.startedAt&&v.id>A.claim.id?c(A,true,"replaced"):l.postMessage({type:"takeover",...A.claim}));},T=x=>{a===A&&x.persisted===true&&c(A);};try{i&&(A.cleanups.push(()=>i.removeEventListener("pagehide",T)),i.addEventListener("pagehide",T)),A.cleanups.push(()=>l.removeEventListener("message",_)),l.addEventListener("message",_);let x=setTimeout(()=>m(A,new Error("Browser IM takeover timed out while waiting for the previous page to close")),15e3);A.cleanups.push(()=>clearTimeout(x)),t.request(`im-connection:${w}`,{mode:"exclusive",signal:A.controller.signal},async u=>{if(a!==A||A.closed||!u){A.resolveReady(!1);return}let g=new Promise(C=>{A.release=C;});A.owned=!0,clearTimeout(x);try{await e.onChange(!0);}catch(C){m(A,C);}A.resolveReady(a===A&&A.owned),await g;}).catch(u=>{a===A&&!A.closed&&m(A,u);}),l.postMessage({type:"takeover",...A.claim});}catch(x){m(A,x);}return A.ready},stop(){s++,a&&c(a);},terminate(){s++;let w=a;if(w)try{w.closed||w.channel.postMessage({type:"session-ended"});}catch(h){d(h);}finally{c(w);}},get owned(){return a?.owned??false}}}function ju(){let e=globalThis;return typeof e.addEventListener=="function"&&typeof e.removeEventListener=="function"?e:void 0}function qu(e,n={}){let t=n.target!==void 0?n.target:ju(),r=n.visibilitySource!==void 0?n.visibilitySource:globalThis.document,o=n.pageLifecycleSource!==void 0?n.pageLifecycleSource:t,i=false,a=()=>e.onOnline?.(),s=()=>e.onOffline?.(),d=()=>{r!=null&&r.visibilityState==="visible"&&e.onVisible?.();},c=()=>e.onPageHide?.(),m=()=>e.onPageShow?.();return {start(){i||(i=true,t!=null&&(t.addEventListener("online",a),t.addEventListener("offline",s)),r?.addEventListener("visibilitychange",d),o!=null&&(o.addEventListener("pagehide",c),o.addEventListener("pageshow",m)));},stop(){i&&(i=false,t!=null&&(t.removeEventListener("online",a),t.removeEventListener("offline",s)),r?.removeEventListener("visibilitychange",d),o!=null&&(o.removeEventListener("pagehide",c),o.removeEventListener("pageshow",m)));},get running(){return i}}}var zu=15,Wu=20,Yu=8*1024*1024,Qu=2*1024*1024,Xu=1440*60*1e3,Zu=2*1024*1024*1024,ki=1024*1024*1024,el=512*1024*1024,nl=256*1024*1024,tl=64*1024,Jt="channel:list-version",Ti="schema:conversation-key-v1",Di="schema:message-server-order-v1",Ui="schema:mini-program-game-preview-v1",Oi="im:membership-reset-sort-keys",Vt="default",Re="\uFFFF";function Bi(e){if(!(e===void 0||!/^\d+$/.test(e)))return e.replace(/^0+(?=\d)/,"")}function rl(e,n){let t=Bi(e),r=Bi(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 hn(e){return `conversation:${Ha$1(e)}`}function zt(e,n){return `${Ha$1(e)}\0${n}`}function ol(e){let n=Ha$1(e.conversation);return {...e,key:zt(e.conversation,e.messageId),conversationKey:n,conversation:{...e.conversation},sContent:e.sContent.slice()}}function il(e){let{key:n,conversationKey:t,...r}=e;return {...r,conversation:{...r.conversation},sContent:r.sContent.slice()}}function Ki(e){return {...e,conversationKey:Ha$1(Ea$1(e))}}function ke(e){let{conversationKey:n,...t}=e;return t}function jn(e){return {...e,id:Ha$1(Fa$1(e)),conversationId:e.id}}function Wt(e){if(e.conversationId===void 0)return e;let{conversationId:n,...t}=e;return {...t,id:n}}function Yt(e){return e.conversationType===void 0?e:{...e,conversationId:Ha$1(e),storageConversationId:e.conversationId}}function qn(e){if(e.storageConversationId===void 0)return e;let{storageConversationId:n,...t}=e;return {...t,conversationId:n}}function Gi(e){return {...e,conversationId:Ha$1(Ga$1(e)),storageConversationId:e.conversationId}}function Qt(e){if(e.storageConversationId===void 0)return e;let{storageConversationId:n,...t}=e;return {...t,conversationId:n}}function al(e){return {...e,conversationKey:Ha$1(e.ref)}}function sl(e){let{conversationKey:n,...t}=e;return t}function cl(e){return typeof e=="string"?e:e.conversationId}function bn(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 dl(e){let n=e.transaction(["messages","sessions","readStates","pinnedMessages","meta"],"readwrite");try{let t=n.objectStore("meta");if((await t.get(Ti))?.value===!0){await n.done;return}let r=n.objectStore("messages");for(let d of await r.getAll())d.conversationKey===void 0&&await r.put(Ki(d));let o=n.objectStore("sessions"),i=new Map;for(let d of await o.getAll()){if(d.conversationId!==void 0)continue;let c=Wt(d);i.set(c.id,c.type),await o.put(jn(c)),await o.delete(d.id);}let a=n.objectStore("readStates");for(let d of await a.getAll()){if(d.storageConversationId!==void 0)continue;let c=d.conversationType??i.get(d.conversationId);if(c===void 0)continue;let m={...d,conversationType:c};await a.put(Yt(m)),await a.delete(d.conversationId);}let s=n.objectStore("pinnedMessages");for(let d of await s.getAll()){if(d.storageConversationId!==void 0)continue;let c=Qt(d);await s.put(Gi(c)),await s.delete(d.conversationId);}await t.put({key:Ti,value:!0}),await n.done;}catch(t){try{n.abort();}catch{}try{await n.done;}catch{}throw t}}async function ul(e){let n=e.transaction(["messages","readStates","meta"],"readwrite");try{let t=n.objectStore("meta");if((await t.get(Di))?.value===!0){await n.done;return}let r=n.objectStore("readStates"),o=await r.getAll(),i=new Map;for(let m of o){let w=qn(m);w.conversationType==="channel"&&w.readCursorSortKey!==void 0&&w.readCursor!==""&&i.set(Ha$1(w),{cursor:w.readCursor});}let a=new Map,s=n.objectStore("messages"),d=await s.openCursor();for(;d!==null;){let m=d.value,w=Ha$1(Ea$1(m)),h=l(m),l$1=i.get(w);if(l$1!==void 0&&m.extensions?.historyCursor===l$1.cursor&&(l$1.sortKey=h),h!==m.sortKey){let b=a.get(w);b===void 0&&(b=new Map,a.set(w,b)),b.set(m.sortKey,h),await d.update({...m,sortKey:h});}d=await d.continue();}for(let m of o){let w=qn(m);if(w.conversationType===void 0)continue;let h=Ha$1(w),l=i.get(h)?.sortKey??(w.readCursorSortKey===void 0?void 0:a.get(h)?.get(w.readCursorSortKey));if(l===void 0&&w.readCursorSortKey!==void 0&&w.conversationType!=="channel"&&w.readCursor!==""){let b=await s.get(w.readCursor);b!==void 0&&Ha$1(Ea$1(b))===h&&(l=b.sortKey);}l!==void 0&&l!==w.readCursorSortKey&&await r.put({...m,readCursorSortKey:l});}let c=await t.get(Oi);if(Array.isArray(c?.value)){let m=!1,w=c.value.map(h=>{if(!Array.isArray(h)||h.length!==2||typeof h[0]!="string"||typeof h[1]!="string")return h;let l=a.get(h[0])?.get(h[1]);return l===void 0?h:(m=!0,[h[0],l])});m&&await t.put({key:Oi,value:w});}await t.put({key:Di,value:!0}),await n.done;}catch(t){try{n.abort();}catch{}try{await n.done;}catch{}throw t}}async function ll(e){let n=e.transaction(["messages","meta"],"readwrite");try{let t=n.objectStore("meta");if((await t.get(Ui))?.value===!0){await n.done;return}let o=await n.objectStore("messages").openCursor();for(;o!==null;){let i=o.value.body?.miniProgram;o.value.contentType==="miniProgram"&&i!==void 0&&s(i)&&await o.delete(),o=await o.continue();}await t.put({key:Ui,value:!0}),await n.done;}catch(t){try{n.abort();}catch{}try{await n.done;}catch{}throw t}}function Ni(e){return `${e.kind}:${encodeURIComponent(e.messageId)}:${e.resourceVersion}`}async function wn(e,n){let t=e.done;t.catch(()=>{});try{let r=await n();return await t,r}catch(r){try{e.abort();}catch{}throw await t.catch(()=>{}),r}}async function pl(e,n){let t=n.namespaceFactory.forAccount(e).name("durable","storage","indexed-db");typeof indexedDB>"u"||await deleteDB(t);}function fl(e){let{namespaceFactory:n}=e,t=null,r=null,o=0,i=Promise.resolve(),a=Promise.resolve(),s=0,d=e.mediaAssetCache?.maxPendingWriteBytes??nl;if(!Number.isSafeInteger(d)||d<=0)throw new RangeError("\u5A92\u4F53\u8D44\u4EA7\u7F13\u5B58\u5F85\u5199\u5185\u5B58\u9884\u7B97\u5FC5\u987B\u662F\u6B63\u6574\u6570");function c(){if(t===null)throw new Error("ImStoragePort \u672A open\uFF1A\u8BF7\u5148 open({ namespace }) \u518D\u8BFB\u5199");return t}function m(u){let g=o,C=r,p=()=>{if(g!==o||C!==r)throw new Error("\u6700\u8FD1\u5386\u53F2\u7F13\u5B58\u64CD\u4F5C\u5DF2\u5931\u6548\uFF1A\u8D26\u53F7\u6216\u5B58\u50A8\u5DF2\u6539\u53D8");c();},y=i.then(async()=>{p();let S=await u();return p(),S});return i=y.then(()=>{},()=>{}),y}function w(u,g){return u.version!==2||!Number.isFinite(u.fetchedAt)||u.fetchedAt<0||g-u.fetchedAt>=Xu}async function h(u){if(!Number.isSafeInteger(u.byteLength)||u.byteLength<0)throw new Error("\u6700\u8FD1\u5386\u53F2\u7F13\u5B58 byteLength \u5FC5\u987B\u662F\u975E\u8D1F\u5B89\u5168\u6574\u6570");let g=Date.now();if(u.byteLength>Qu||w(u,g))return false;let C=Ha$1(u.conversation),p=c().transaction("recentHistoryPages","readwrite");return wn(p,async()=>{let y=await p.store.getAll(),S=[];for(let R of y)w(R,g)?await p.store.delete(R.conversationKey):R.conversationKey!==C&&S.push(R);let f={...u,conversationKey:C};S.push(f),S.sort((R,O)=>R.fetchedAt-O.fetchedAt||R.conversationKey.localeCompare(O.conversationKey));let P=S.reduce((R,O)=>R+O.byteLength,0),E=[];for(;S.length>Wu||P>Yu;){let R=S.shift();E.push(R),P-=R.byteLength;}if(E.includes(f))return !1;await p.store.put(f);for(let R of E)await p.store.delete(R.conversationKey);return !0})}async function l(u){if(typeof u!="string")return;let g=IDBKeyRange.bound([u,""],[u,Re]),C=(await c().transaction("messages").store.index("by_conv_sort").getAll(g)).map(ke);bn(u,C);}function b(u){let g=a.then(u,u);return a=g.then(()=>{},()=>{}),g}function I(u,g){if(u!==o||g===null||g!==r)throw new Error("\u5A92\u4F53\u8D44\u4EA7\u7F13\u5B58\u8D26\u53F7\u4EE3\u9645\u5DF2\u5931\u6548")}function A(){return Math.max(0,Math.floor(e.mediaAssetCache?.now?.()??Date.now()))}async function _(u){let g=e.mediaAssetCache?.estimateStorage??(async()=>typeof navigator>"u"||navigator.storage?.estimate===void 0?{}:await navigator.storage.estimate());try{let{quota:C,usage:p}=await g();if(C===void 0||!Number.isFinite(C)||C<=0)return ki;let y=u.reduce((P,E)=>P+E.byteLength,0),S=Math.max(0,(p??0)-y),f=Math.max(el,Math.floor(C*.2));return Math.max(0,Math.min(Zu,Math.floor(C-S-f)))}catch{return ki}}async function T(u,g,C){if(u.length===0)return;I(g,C);let p=c().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all(u.flatMap(y=>[p.objectStore("mediaAssets").delete(y),p.objectStore("mediaAssetMeta").delete(y)])),await p.done;}async function x(u,g,C,p){I(u,g);let y=c(),S=e.mediaAssetCache?.strategies;if(S===void 0)return;let f=p??await y.getAll("mediaAssetMeta");I(u,g);let P=new Set;for(let M of S.list()){let k=f.filter(B=>B.kind===M.kind).sort((B,$)=>B.lastAccessedAt-$.lastAccessedAt),U=k.reduce((B,$)=>B+$.byteLength,0),N=k.length;for(let B of k){if(U<=M.softMaxBytes&&N<=M.maxEntries)break;P.add(B.key),U-=B.byteLength,N-=1;}}let E=f.filter(M=>!P.has(M.key)).sort((M,k)=>M.lastAccessedAt-k.lastAccessedAt),R=Math.max(0,Math.min(await _(f),C??Number.POSITIVE_INFINITY)),O=E.reduce((M,k)=>M+k.byteLength,0);for(let M of E){if(O<=R)break;P.add(M.key),O-=M.byteLength;}await T([...P],u,g);}async function v(u,g,C){I(g,C);let p=e.mediaAssetCache?.strategies.resolve(u.kind);if(p===void 0)return "skipped";let y=u.blob,S=y.size,f=await c().getAll("mediaAssetMeta"),P=await _(f);if(I(g,C),S===0||S>p.maxEntryBytes||P<=0||S>Math.floor(P/2))return "skipped";let E=Ni(u),R=A(),O=f.find(B=>B.key===E),M={key:E,kind:u.kind,messageId:u.messageId,resourceVersion:u.resourceVersion,byteLength:S,...u.mimeType===void 0?{}:{mimeType:u.mimeType},createdAt:O?.createdAt??R,lastAccessedAt:R},k=async()=>{I(g,C);let B=c().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all([B.objectStore("mediaAssets").put({key:E,blob:y}),B.objectStore("mediaAssetMeta").put(M)]),await B.done;},U=false;try{await k();}catch(B){if(!(B instanceof DOMException)||B.name!=="QuotaExceededError")throw B;U=true,await x(g,C,Math.max(0,P-S)),await k();}let N=O===void 0?[...f,M]:f.map(B=>B.key===E?M:B);return await x(g,C,void 0,U?void 0:N),I(g,C),await c().get("mediaAssets",E)===void 0?"skipped":"stored"}return {recentHistoryCache:{get:u=>m(async()=>{let g=Ha$1(u),C=c().transaction("recentHistoryPages","readwrite");return wn(C,async()=>{let p=await C.store.get(g);if(p===void 0)return null;if(w(p,Date.now()))return await C.store.delete(g),null;let{conversationKey:y,...S}=p;return S})}),async put(u){let g=structuredClone(u);return m(()=>h(g))},delete:u=>m(async()=>{await c().delete("recentHistoryPages",Ha$1(u));}),clear:()=>m(async()=>{await c().clear("recentHistoryPages");})},async open({namespace:u}){if(t!==null&&r===u)return;t!==null&&(t.close(),t=null),r=u;let g=++o,C=n.forAccount(u).name("durable","storage","indexed-db"),p=await openDB(C,zu,{upgrade(y,S,f,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 E=y.createObjectStore("messages",{keyPath:"id"});E.createIndex("by_conv_sort",["conversationId","sortKey"]),E.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 E=y.createObjectStore("mediaAssetMeta",{keyPath:"key"});E.createIndex("by_kind_access",["kind","lastAccessedAt"]),E.createIndex("by_access","lastAccessedAt");}y.objectStoreNames.contains("decryptRecoveries")||y.createObjectStore("decryptRecoveries",{keyPath:"key"}).createIndex("by_conversation","conversationKey"),S>0&&S<13&&(P.objectStore("mediaAssets").clear(),P.objectStore("mediaAssetMeta").clear()),y.objectStoreNames.contains("recentHistoryPages")||y.createObjectStore("recentHistoryPages",{keyPath:"conversationKey"});}});if(g!==o){p.close();return}try{await dl(p),await ul(p),await ll(p);}catch(y){throw p.close(),y}if(g!==o){p.close();return}t=p;},async close(){o+=1,r=null,t!==null&&(t.close(),t=null);},async clearRebuildableCaches(){return m(async()=>{let u=o,g=r;await b(async()=>{I(u,g);let p=c().transaction(["userProfiles","groupMembers","groupProfiles","channelProfiles","channelMembers","channelMemberSnapshots","channelMentionCandidateSnapshots","mediaAssets","mediaAssetMeta","meta","recentHistoryPages"],"readwrite");await Promise.all([p.objectStore("userProfiles").clear(),p.objectStore("groupMembers").clear(),p.objectStore("groupProfiles").clear(),p.objectStore("channelProfiles").clear(),p.objectStore("channelMembers").clear(),p.objectStore("channelMemberSnapshots").clear(),p.objectStore("channelMentionCandidateSnapshots").clear(),p.objectStore("mediaAssets").clear(),p.objectStore("mediaAssetMeta").clear(),p.objectStore("meta").delete(Jt),p.objectStore("recentHistoryPages").clear(),p.done]);});})},async get(u){let g=o,C=r;return await b(async()=>{if(I(g,C),e.mediaAssetCache?.strategies.resolve(u.kind)===void 0)return null;let p=Ni(u),y=c(),[S,f]=await Promise.all([y.get("mediaAssets",p),y.get("mediaAssetMeta",p)]);return I(g,C),S===void 0||f===void 0?(await T([p],g,C),null):(await y.put("mediaAssetMeta",{...f,lastAccessedAt:A()}),{kind:f.kind,messageId:f.messageId,resourceVersion:f.resourceVersion,blob:S.blob,...f.mimeType===void 0?{}:{mimeType:f.mimeType}})})},async put(u){let g=o,C=r;I(g,C);let p=u.blob.size;if(p>d||s+p>d)return "skipped";s+=p;try{return await b(()=>v(u,g,C))}finally{s=Math.max(0,s-p);}},async clear(){let u=o,g=r;await b(async()=>{I(u,g);let C=c().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all([C.objectStore("mediaAssets").clear(),C.objectStore("mediaAssetMeta").clear(),C.done]);});},async getMessage(u,g){let C=await c().get("messages",g);if(C===void 0)return null;let p=ke(C);return Ha$1(Ea$1(p))===Ha$1(u)?p:null},async getMessages(u,g){let C=typeof u=="string"?"by_conv_sort":"by_conversation_key_sort",p=typeof u=="string"?u:Ha$1(u);if(await l(u),g.beforeSortKey===void 0&&g.afterSortKey!==void 0){let P=IDBKeyRange.bound([p,g.afterSortKey],[p,Re]),E=[],R=await c().transaction("messages").store.index(C).openCursor(P,"next");for(;R!==null&&E.length<g.limit;)E.push(R.value),R=await R.continue();return E.map(ke)}let y=g.beforeSortKey===void 0?IDBKeyRange.bound([p,""],[p,Re]):IDBKeyRange.bound([p,""],[p,g.beforeSortKey],false,true),S=[],f=await c().transaction("messages").store.index(C).openCursor(y,"prev");for(;f!==null&&S.length<g.limit;)S.push(f.value),f=await f.continue();return S.reverse().map(ke)},async saveMessages(u){if(u.length===0)return;let g=c().transaction("messages","readwrite");await Promise.all([...u.map(C=>g.store.put(Ki(C))),g.done]);},async searchMessages(u,g){let C=Ha$1(u),p=g.keyword?.trim()??"",y=g.contentTypes;if(p===""&&(y===void 0||y.length===0))return {items:[],exhausted:true};let S=p===""?void 0:await ga$1(p),f=g.beforeSortKey===void 0?IDBKeyRange.bound([C,""],[C,Re]):IDBKeyRange.bound([C,""],[C,g.beforeSortKey],false,true),P=2e3,E=[],R=0,O,M=await c().transaction("messages").store.index("by_conversation_key_sort").openCursor(f,"prev");for(;M!==null&&E.length<g.limit&&R<P;){let U=ka$1(ke(M.value));R+=1,O=U.sortKey;let N=y===void 0||y.includes(U.contentType),B=S===void 0||S.match(ea$1(U))!==null;N&&B&&E.push(U),M=await M.continue();}let k=M===null;return {items:E,exhausted:k,...k?{}:{nextBeforeSortKey:O}}},async getDecryptRecoveries(u){let g=Ha$1(u);return (await c().getAllFromIndex("decryptRecoveries","by_conversation",g)).map(il)},async saveDecryptRecovery(u){if(u.sContent.byteLength===0||u.sContent.byteLength>tl)throw new Error(`\u89E3\u5BC6\u6062\u590D\u5BC6\u6587\u5B57\u8282\u957F\u5EA6\u975E\u6CD5\uFF1A${u.sContent.byteLength}`);await c().put("decryptRecoveries",ol(u));},async deleteDecryptRecovery(u,g){await c().delete("decryptRecoveries",zt(u,g));},async deleteConversationDecryptRecoveries(u){let g=Ha$1(u),C=c().transaction("decryptRecoveries","readwrite"),p=await C.store.index("by_conversation").openCursor(IDBKeyRange.only(g));for(;p!==null;)await p.delete(),p=await p.continue();await C.done;},async getSessions(){return (await c().getAll("sessions")).map(Wt)},async saveSessions(u){if(u.length===0)return;let g=c().transaction("sessions","readwrite");for(let C of u)await g.store.put(jn(C)),await g.store.delete(C.id);await g.done;},async deleteSession(u){if(typeof u!="string"){let p=c().transaction(["sessions","conversationBackgrounds"],"readwrite");await p.objectStore("sessions").delete(Ha$1(u)),await p.objectStore("conversationBackgrounds").delete(hn(u)),await p.done;return}let g=(await c().getAll("sessions")).map(Wt).filter(p=>p.id===u);bn(u,g.map(p=>({conversationType:p.type})));let C=c().transaction(["sessions","conversationBackgrounds"],"readwrite");if(g[0]!==void 0){let p=Fa$1(g[0]);await C.objectStore("sessions").delete(Ha$1(p)),await C.objectStore("conversationBackgrounds").delete(hn(p));}await C.objectStore("sessions").delete(u),await C.done;},async deleteReadState(u){if(typeof u!="string"){await c().delete("readStates",Ha$1(u));return}let C=(await c().getAll("readStates")).map(qn).filter(p=>p.conversationId===u).filter(p=>p.conversationType!==void 0);bn(u,C),C[0]!==void 0&&await c().delete("readStates",Ha$1(C[0])),await c().delete("readStates",u);},async deleteMessage(u,g,C){return m(async()=>{let p=c().transaction(["messages","sessions","decryptRecoveries","recentHistoryPages"],"readwrite");return wn(p,async()=>{let y=await p.objectStore("messages").get(g);if(y!==void 0){let S=ke(y);if(S.conversationType!==u.conversationType||S.conversationId!==u.conversationId)return !1;await p.objectStore("messages").delete(g);}return await p.objectStore("decryptRecoveries").delete(zt(u,g)),await p.objectStore("recentHistoryPages").delete(Ha$1(u)),C!==void 0&&await p.objectStore("sessions").put(jn(C)),y!==void 0})})},async deleteConversationMessages(u){return m(async()=>{let g=cl(u),C=typeof u=="string"?"by_conv_sort":"by_conversation_key_sort",p=typeof u=="string"?u:Ha$1(u),y=IDBKeyRange.bound([p,""],[p,Re]),S=c().transaction(["messages","decryptRecoveries","recentHistoryPages"],"readwrite");return wn(S,async()=>{let f=S.objectStore("messages"),P=S.objectStore("decryptRecoveries"),E=[],R=[];if(typeof u=="string"){let M=(await f.index("by_conv_sort").getAll(y)).map(ke);E=(await P.getAll()).filter(k=>k.conversation.conversationId===u),R=(await S.objectStore("recentHistoryPages").getAll()).filter(k=>k.conversation.conversationId===g),bn(g,[...M,...R.map(k=>({conversationType:k.conversation.conversationType})),...E.map(k=>({conversationType:k.conversation.conversationType}))]);}let O=await f.index(C).openCursor(y);for(;O!==null;)await O.delete(),O=await O.continue();if(typeof u=="string"){for(let M of E)await P.delete(M.key);for(let M of R)await S.objectStore("recentHistoryPages").delete(M.conversationKey);}else {await S.objectStore("recentHistoryPages").delete(Ha$1(u));let M=await P.index("by_conversation").openCursor(IDBKeyRange.only(Ha$1(u)));for(;M!==null;)await M.delete(),M=await M.continue();}})})},async clearConversationHistory(u,g,C){return m(async()=>{let p=Ha$1(u),y=IDBKeyRange.bound([p,""],[p,Re]),S=c().transaction(["messages","sessions","readStates","decryptRecoveries","recentHistoryPages"],"readwrite");return wn(S,async()=>{await S.objectStore("recentHistoryPages").delete(p);let f=await S.objectStore("messages").index("by_conversation_key_sort").openCursor(y);for(;f!==null;)await f.delete(),f=await f.continue();let P=await S.objectStore("decryptRecoveries").index("by_conversation").openCursor(IDBKeyRange.only(p));for(;P!==null;)await P.delete(),P=await P.continue();g!==void 0&&await S.objectStore("sessions").put(jn(g)),C!==void 0&&(await S.objectStore("readStates").put(Yt(C)),await S.objectStore("readStates").delete(C.conversationId));})})},async getReadStates(){return (await c().getAll("readStates")).map(qn)},async saveReadState(u){let g=c().transaction("readStates","readwrite");await g.store.put(Yt(u)),u.conversationType!==void 0&&await g.store.delete(u.conversationId),await g.done;},async getDrafts(){return (await c().getAll("drafts")).map(sl)},async saveDraft(u){await c().put("drafts",al(u));},async deleteDraft(u){await c().delete("drafts",Ha$1(u));},async getConversationBackground(u){return (await c().get("conversationBackgrounds",hn(u)))?.background??null},async saveConversationBackground(u,g){let C=hn(u);await c().put("conversationBackgrounds",{key:C,background:g});},async deleteConversationBackground(u){await c().delete("conversationBackgrounds",hn(u));},async getDefaultConversationBackground(){return (await c().get("conversationBackgrounds",Vt))?.background??null},async saveDefaultConversationBackground(u){await c().put("conversationBackgrounds",{key:Vt,background:u});},async deleteDefaultConversationBackground(){await c().delete("conversationBackgrounds",Vt);},async getOutbox(){return c().getAll("outbox")},async saveOutboxMessage(u){await c().put("outbox",u);},async removeOutboxMessage(u){await c().delete("outbox",u);},async getPinnedMessages(){return (await c().getAll("pinnedMessages")).map(Qt)},async savePinnedMessage(u){let g=c().transaction("pinnedMessages","readwrite");await g.store.put(Gi(u)),await g.store.delete(u.conversationId),await g.done;},async removePinnedMessage(u){if(typeof u!="string"){await c().delete("pinnedMessages",Ha$1(u));return}let g=(await c().getAll("pinnedMessages")).map(Qt).filter(C=>C.conversationId===u);bn(u,g),g[0]!==void 0&&await c().delete("pinnedMessages",Ha$1(Ga$1(g[0]))),await c().delete("pinnedMessages",u);},async getMeta(u){let g=await c().get("meta",u);return g===void 0?null:g.value},async setMeta(u,g){await c().put("meta",{key:u,value:g});},async getUserProfile(u){return await c().get("userProfiles",u)??null},async saveUserProfile(u){await c().put("userProfiles",u);},async getGroupMembers(u){return await c().get("groupMembers",u)??null},async saveGroupMembers(u){await c().put("groupMembers",u);},async getGroupProfile(u){return await c().get("groupProfiles",u)??null},async saveGroupProfile(u){await c().put("groupProfiles",u);},async getChannelProfile(u){return await c().get("channelProfiles",u)??null},async getChannelProfiles(){return c().getAll("channelProfiles")},async saveChannelProfiles(u){if(u.length===0)return;let g=c().transaction("channelProfiles","readwrite");await Promise.all([...u.map(C=>g.store.put(C)),g.done]);},async getChannelListVersion(){let u=await c().get("meta",Jt);return typeof u?.value=="string"&&/^\d+$/.test(u.value)?u.value:"0"},async saveChannelListVersion(u){if(!/^\d+$/.test(u))throw new Error(`CHANNEL list version \u975E\u6CD5\uFF1A${u}`);await c().put("meta",{key:Jt,value:u});},async getChannelMembers(u,g){if(g.length===0)return [];let C=c().transaction("channelMembers"),p=await Promise.all(g.map(y=>C.store.get([u,y])));return await C.done,p.filter(y=>y!==void 0)},async saveChannelMembers(u){if(u.length===0)return;let g=c().transaction("channelMembers","readwrite");for(let C of u){let p=await g.store.get([C.channelId,C.userId]);p!==void 0&&rl(C.updateVersion,p.updateVersion)<0||await g.store.put(C);}await g.done;},async deleteChannelMembers(u){let g=IDBKeyRange.bound([u,""],[u,Re]),C=c().transaction("channelMembers","readwrite"),p=await C.store.openCursor(g);for(;p!==null;)await p.delete(),p=await p.continue();await C.done;},async getChannelMemberSnapshot(u){return await c().get("channelMemberSnapshots",u)??null},async saveChannelMemberSnapshot(u){await c().put("channelMemberSnapshots",u);},async deleteChannelMemberSnapshot(u){await c().delete("channelMemberSnapshots",u);},async getChannelMentionCandidateSnapshot(u){return await c().get("channelMentionCandidateSnapshots",u)??null},async saveChannelMentionCandidateSnapshot(u){await c().put("channelMentionCandidateSnapshots",u);},async deleteChannelMentionCandidateSnapshot(u){await c().delete("channelMentionCandidateSnapshots",u);}}}function ml(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",s;function d(l,b){for(let I of [...r[l]])I(b);}function c(){s!==void 0&&(clearTimeout(s),s=void 0);}function m(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 w(){if(c(),o!==void 0){m(o,i);try{o.close(1e3);}catch{}o=void 0;}i=void 0;}function h(l,b,I){let A={onOpen:()=>{l===o&&(c(),a="open",d("open",{endpoint:b}));},onMessage:_=>{if(l!==o||a!=="open")return;let T=_?.data;if(T instanceof ArrayBuffer){d("message",{data:T});return}d("error",{error:new Error(`WsTransport\uFF1A\u6536\u5230\u975E ArrayBuffer \u6D88\u606F\uFF08${typeof T}\uFF09\uFF0C\u5DF2\u5FFD\u7565`)});},onError:_=>{l===o&&d("error",{error:new Error(`WsTransport\uFF1AWebSocket error \u4E8B\u4EF6\uFF08${_ instanceof Event?_.type:typeof _}\uFF09`)});},onClose:_=>{l===o&&(c(),m(l,A),o=void 0,i=void 0,a="closed",d("close",{code:_?.code??1006,reason:_?.reason??"",wasClean:_?.wasClean??false}));}};if(i=A,l.addEventListener("open",A.onOpen),l.addEventListener("message",A.onMessage),l.addEventListener("error",A.onError),l.addEventListener("close",A.onClose),I>0){let _=setTimeout(()=>{if(!(l!==o||a!=="connecting")){d("error",{error:new Error(`WsTransport\uFF1A\u8FDE\u63A5\u8D85\u65F6\uFF08${I}ms \u672A open\uFF09`)});try{l.close();}catch{}}},I);_.unref?.(),s=_;}}return {get state(){return a},async connect(l,b){let I=l[0];if(I===void 0)throw new Error("WsTransport.connect\uFF1Aendpoints \u4E3A\u7A7A\uFF08P0 single \u7B56\u7565\u9700\u81F3\u5C11\u4E00\u4E2A\u7AEF\u70B9\uFF09");w(),a="connecting";let A;try{A=n(I.url);}catch(_){throw a="closed",_}A.binaryType="arraybuffer",o=A,h(A,I,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){c(),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);}}}}
|
|
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 ao(){let e=new Uint8Array(Se),n=new Uint8Array(1);for(let t=0;t<Se;t++){let r=0;do globalThis.crypto.getRandomValues(n),r=n[0]??0;while(r===0);e[t]=r;}return e}function $a(e,n){if(n.length===0)throw new Error("RSA \u52A0\u5BC6\uFF1A\u660E\u6587\u4E3A\u7A7A");let t=Fa(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 d=0;d<n.length;d+=r){let c=Math.min(d+r,n.length),m=t.encrypt(to(n.subarray(d,c)),"RSAES-PKCS1-V1_5");o.push(ro(m));}let i=o.reduce((d,c)=>d+c.length,0),a=new Uint8Array(i),s=0;for(let d of o)a.set(d,s),s+=d.length;return a}function ja(e){let n=e.teaKey??ao();if(n.length<Se)throw new Error(`\u7AEF\u5230\u7AEF\u52A0\u5BC6\u5931\u8D25\uFF1AteaKey \u957F\u5EA6 ${n.length} < ${Se}`);let t=n.subarray(0,Se),r=Qe(t,e.plain);return {secretKey:$a(e.publicKey,t),cipherData:r}}function qa(e){return Ye(e.teaKey,e.cipherData)}function Ja(e){return Qe(e.teaKey,e.plain)}function Va(e){return yt(e.teaKey,e.plain,"encrypt",void 0,e.signal===void 0?{}:{signal:e.signal})}function za(e){return yt(e.teaKey,e.cipherData,"decrypt",void 0,e.signal===void 0?{}:{signal:e.signal})}function Wa(e){return Jr(e.teaKey,e.plain)}function Ya(e){return Vr(e.teaKey,e.cipherData)}function Qa(){return new Promise((e,n)=>{W.pki.rsa.generateKeyPair({bits:2048,e:65537,workers:-1},(t,r)=>{if(t){n(t);return}e({publicKeyBase64:Ga(W.pki.publicKeyToPem(r.publicKey)),privateKey:W.pki.privateKeyToPem(r.privateKey)});});})}function Xa(){return {decryptEndToEnd:Ha,encryptEndToEnd:ja,decryptSymmetric:qa,encryptSymmetric:Ja,encryptSymmetricChunked:Va,decryptSymmetricChunked:za,encryptFileSimple:Wa,decryptFileSimple:Ya,randomTeaKey:ao,generateTempKeyPair:Qa,rsaDecryptPkcs1:io}}function bt(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function en(e,n){return D(e,"/friend/apply/list_paginated",{type:n.listType,page:n.page,page_size:n.pageSize},bt(n.clientType,"GET"))}function nn(e,n){return D(e,"/friend/apply/agree",{id:n.applicationId},bt(n.clientType,"POST"))}function tn(e,n){return D(e,"/friend/apply/del",{id:n.applicationId},bt(n.clientType,"POST"))}var so=50,co=20,uo=1,wt=2,Ct=3,Za=4,es=5,lo=0,ns=1,ts=2;function rs(e){switch(e){case lo:case ns:case ts:return e;default:return}}var Oe=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},Q=class extends Error{constructor(n){super(`application \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ApplicationMappingError";}};function F(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function po(e){let n=F(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 fo(e){let n=F(e.status);if(e.status===void 0||n==="")return true;let t=Number(n),r=rs(t);if(r===void 0)throw new Q(`\u672A\u77E5\u7533\u8BF7\u72B6\u6001\uFF1A${n}`);return r===lo}function os(e){let n=F(e.type);if(n==="")return true;if(Number(n)!==uo)throw new Q(`\u8054\u7CFB\u4EBA\u7533\u8BF7\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${n}`);return true}function is(e){let n=Number(F(e.type));if(n!==wt&&n!==Ct&&n!==Za&&n!==es)throw new Q(`GROUP/CHANNEL \u6DF7\u5408\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${F(e.type)||"<empty>"}`);return n}function An(e){if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>so)throw new Q(`limit \u5FC5\u987B\u4E3A 1-${so}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit};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 mo(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 Pt(e){let n=e.trim();if(n==="")throw new Q("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");return n}function as(e){let n=Pt(F(e.id)||F(e.aid)),t=F(e.user_id)||F(e.user_info?.user_id),r=F(e.nick_name??e.nickname??e.name)||F(e.user_info?.nick_name??e.user_info?.nickname??e.user_info?.name);if(t===""||r==="")throw new Q(`\u8054\u7CFB\u4EBA\u7533\u8BF7\u4EBA\u8EAB\u4EFD\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let o=F(e.head_img_url??e.avatar)||F(e.user_info?.head_img_url??e.user_info?.avatar),i=F(e.user_info?.mid),a=po(e.create_time??e.createTime??e.update_version);return {applicationId:n,applicantId:t,applicantName:r,...o===""?{}:{applicantAvatar:o},...i===""?{}:{applicantDisplayId:i},message:F(e.remarks??e.introduce_self),...a===void 0?{}:{createdAt:a}}}function ss(e){let n=Pt(F(e.id)||F(e.aid)),t=F(e.group_id)||F(e.group_info?.group_id);if(t==="")throw new Q(`GROUP id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let r=F(e.user_id)||F(e.user_info?.user_id),o=F(e.nick_name??e.nickname??e.name)||F(e.user_info?.nick_name??e.user_info?.nickname??e.user_info?.name);if(r===""||o==="")throw new Q(`GROUP \u7533\u8BF7\u4EBA\u6216\u9080\u8BF7\u4EBA\u8EAB\u4EFD\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let i=F(e.head_img_url??e.avatar)||F(e.user_info?.head_img_url??e.user_info?.avatar),a=F(e.user_info?.mid),s=F(e.group_info?.name??e.group_info?.group_name);if(s==="")throw new Q(`GROUP \u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let d=F(e.group_info?.head_img_url??e.group_info?.avatar),c=po(e.create_time??e.createTime??e.update_version);return {applicationId:n,groupId:t,kind:Number(e.type)===Ct?"invite":"request",actor:{id:r,name:o,...i===""?{}:{avatarUrl:i},...a===""?{}:{displayId:a}},target:{id:t,name:s,...d===""?{}:{avatarUrl:d}},message:F(e.remarks??e.introduce_self),...c===void 0?{}:{createdAt:c}}}async function Mn(e,n,t){let r=await t(e.client,{applicationId:Pt(n),clientType:e.clientType});if(!r.ok)throw new Oe(r.code,r.message)}function cs(e){async function n(t){let{pageSize:r}=An(t),{page:o}=An(t);for(let i=0;i<co;i+=1){let a=await en(e.client,{listType:uo,page:o,pageSize:r,clientType:e.clientType});if(!a.ok)throw new Oe(a.code,a.message);let s=mo(a.data),d=s.filter(w=>os(w)&&fo(w)).map(as),c=s.length<r,m=o+1;if(d.length>0||c)return {items:d,exhausted:c,...c?{}:{nextCursor:String(m)}};o=m;}return {items:[],exhausted:false,nextCursor:String(o)}}return {listPendingApplications:n,acceptApplication:t=>Mn(e,t,nn),ignoreApplication:t=>Mn(e,t,tn)}}function ds(e){async function n(t){let{pageSize:r}=An(t),{page:o}=An(t);for(let i=0;i<co;i+=1){let a=await en(e.client,{listType:wt,page:o,pageSize:r,clientType:e.clientType});if(!a.ok)throw new Oe(a.code,a.message);let s=mo(a.data),d=s.filter(w=>{let h=is(w);return (h===wt||h===Ct)&&fo(w)}).map(ss),c=s.length<r,m=o+1;if(d.length>0||c)return {items:d,exhausted:c,...c?{}:{nextCursor:String(m)}};o=m;}return {items:[],exhausted:false,nextCursor:String(o)}}return {listPendingApplications:n,acceptApplication:t=>Mn(e,t,nn),ignoreApplication:t=>Mn(e,t,tn)}}function L(e){let n=typeof e=="string"||typeof e=="number"?String(e).trim():"";return n===""?void 0:n}function us(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 ls(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 ps(e){let n=Number(e.product_id),t=us(e.is_dynamic);return {...ls(e.config_type),...L(e.appid)===void 0?{}:{appId:L(e.appid)},...Number.isInteger(n)?{productId:n}:{},...L(e.domain)===void 0?{}:{domain:L(e.domain)},...L(e.suffix_address)===void 0?{}:{suffixAddress:L(e.suffix_address)},...L(e.developer_id)===void 0?{}:{developerId:L(e.developer_id)},...L(e.introduction)===void 0?{}:{introduction:L(e.introduction)},...L(e.icon)===void 0?{}:{icon:L(e.icon)},...L(e.icon_small)===void 0?{}:{iconSmall:L(e.icon_small)},...L(e.icon_medium)===void 0?{}:{iconMedium:L(e.icon_medium)},...L(e.icon_large)===void 0?{}:{iconLarge:L(e.icon_large)},...t===void 0?{}:{isDynamic:t},...L(e.lang_types)===void 0?{}:{langTypes:L(e.lang_types)},...L(e.currency_types)===void 0?{}:{currencyTypes:L(e.currency_types)},...L(e.simple_chinese_name)===void 0?{}:{nameZhHans:L(e.simple_chinese_name)},...L(e.unsimplified_chinese_name)===void 0?{}:{nameZhHant:L(e.unsimplified_chinese_name)},...L(e.english_name)===void 0?{}:{nameEn:L(e.english_name)},...L(e.vietnamese_name)===void 0?{}:{nameVi:L(e.vietnamese_name)},...L(e.thai_name)===void 0?{}:{nameTh:L(e.thai_name)},...L(e.h5_url)===void 0?{}:{h5Url:L(e.h5_url)}}}function go(e,n){return Array.isArray(e.mini_program_rel_list)?e.mini_program_rel_list.filter(t=>t!==null&&typeof t=="object").map(t=>ps(t)):n.source==="info"?[]:void 0}function yo(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function ho(e,n){return D(e,"/user_radio/list",{user_id:n.userId,update_version:n.updateVersion,page:n.page,page_size:n.pageSize},yo(n.clientType,"GET"))}function bo(e,n){return D(e,"/user_radio/info",{radio_id:n.channelId},yo(n.clientType,"POST"))}var wo=500,rn=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},fe=class extends Error{constructor(n){super(`CHANNEL profile \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelProfileMappingError";}};function Co(e,n){let t=typeof e=="string"||typeof e=="number"?String(e).trim():"";if(t==="")throw new fe(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function Ae(e){let n=typeof e=="string"||typeof e=="number"?String(e).trim():"";return n===""?void 0:n}function Be(e){return Number(e)===1}function fs(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 ms(e,n){return Number(e)===1?"member":Number(e)===9?"admin":Number(e)===10?"owner":n===false?"guest":"unknown"}function gs(e){let n=e.is_in===void 0?void 0:Be(e.is_in),t=Be(e.radio_user?.is_del),r=Be(e.radio_user?.is_black);return Number(e.status)===3?"dismissed":t&&r?"removed":r?"blacklisted":t?"left":n===false?"guest":e.status!==void 0&&Number(e.status)!==2?"unknown_restricted":"active"}function ys(e,n,t){let r=Ae(e.radio_user?.user_id),o=e.radio_setting?.un_speaking_user_ids,i=Ae(e.radio_setting?.un_speaking_period);return {role:n,baseState:t,resolvedState:t,allMembersMuted:Be(e.radio_setting?.is_unspeeking_all),currentUserMuted:r!==void 0&&Array.isArray(o)&&o.map(String).includes(r),...i===void 0?{}:{mutePeriod:i}}}function hs(e){if(e!=null)return Number(e)===1?"standard":Number(e)===2?"competition":"unknown"}function bs(e){let n=Ae(e);return n!==void 0&&/^\d+$/.test(n)?n.replace(/^0+(?=\d)/,""):void 0}function ws(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 Po(e,n,t){let r=Co(e.radio_id??e.id,"id"),o=Co(e.name,"name"),i=e.is_in===void 0?void 0:Be(e.is_in),a=ms(e.radio_user?.role_id,i),s=gs(e),d=ys(e,a,s),c=Ca$1({channelState:s,snapshot:d,nowMs:n}),m={...d,resolvedState:c.channelState},w=bs(e.update_version),h=Ae(e.head_img_url),l=Ae(e.desc),b=Ae(e.user_id),I=Number(e.total_users),A=hs(e.type),_=fs(e.radio_setting?.is_unvisit_other),T=e.verify_way===void 0?void 0:Number(e.verify_way),x=T!==void 0&&Number.isSafeInteger(T)?T:void 0,v=Ae(e.invite_code),u=go(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(I)&&I>=0?{memberCount:I}:{},...x===void 0?{}:{verifyType:x},...v===void 0?{}:{inviteCode:v},role:a,permissions:c.permissions,channelState:c.channelState,allMembersMuted:m.allMembersMuted,..._===void 0?{}:{memberPrivateChatDisabled:_},accessSnapshot:m,...e.radio_user?.is_undisturb===void 0?{}:{muted:Be(e.radio_user.is_undisturb)},...A===void 0?{}:{channelKind:A},...w===void 0?{}:{updateVersion:w},...u===void 0?{}:{miniProgramRels:u}}}function Io(e){return {...e,updatedAt:Date.now()}}function vo(e,n){if(e.accessSnapshot===void 0)return {...e,permissions:Ba$1(e.role,e.channelState)};let t=Ca$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 It(e,n){let{updatedAt:t,...r}=vo(e,n);return r}function Cs(e){let n=new Map,t=new Map,r=new Map,o="0",i=false,a=null,s=0,d=null,c=0;function m(){if(i)return Promise.resolve();if(a!==null)return a;let l=s;return a=(async()=>{if(e.storage!==void 0){let[b,I]=await Promise.all([e.storage.getChannelProfiles(),e.storage.getChannelListVersion()]);if(l!==s)return;for(let A of b)n.set(A.id,vo(A,e.now?.()??Date.now()));o=/^\d+$/.test(I)?I:"0";}i=true;})().finally(()=>{a=null;}),a}function w(l){if(l?.forceRefresh!==true&&d!==null)return d;let b=++c,I=(async()=>{await m();let A=(await e.getUserId()).trim();if(A==="")throw new fe("user_id \u4E0D\u80FD\u4E3A\u7A7A");let _=l?.forceRefresh===true?"0":o,T=[];for(let v=1;;v+=1){let u=await ho(e.client,{userId:A,updateVersion:_,page:v,pageSize:wo,clientType:e.clientType});if(!u.ok)throw new rn(u.code,u.message);if(u.data===null)break;if(!Array.isArray(u.data))throw new fe("list data \u5FC5\u987B\u662F\u6570\u7EC4");let g=e.now?.()??Date.now(),C=u.data.map(p=>Po(p,g,"list"));if(T.push(...C),C.length<wo)break}if(b!==c)return [...n.values()].map(v=>It(v,e.now?.()??Date.now()));let x=o;for(let v of T)n.set(v.id,Io(v)),v.updateVersion!==void 0&&(x=ws(x,v.updateVersion));return o=x,e.storage!==void 0&&(await e.storage.saveChannelProfiles([...n.values()]),await e.storage.saveChannelListVersion(o)),[...n.values()].map(v=>It(v,e.now?.()??Date.now()))})();return d=I,I.finally(()=>{d===I&&(d=null);}).catch(()=>{}),I}function h(l,b){let I=l.trim();if(I==="")return Promise.reject(new fe("channel id \u4E0D\u80FD\u4E3A\u7A7A"));let A=b?.forceRefresh===true;if(!A){let x=t.get(I);if(x!==void 0)return x}let _=(r.get(I)??0)+1;A&&r.set(I,_);let T=(async()=>{await m();let x=n.get(I);if(!A&&x!==void 0&&x.miniProgramRels!==void 0)return It(x,e.now?.()??Date.now());let v=await bo(e.client,{channelId:I,clientType:e.clientType});if(!v.ok)throw new rn(v.code,v.message);if(v.data===null||v.data===void 0)throw new fe("info data \u4E0D\u80FD\u4E3A\u7A7A");let u=Po(v.data,e.now?.()??Date.now(),"info");if(u.id!==I)throw new fe(`info id \u4E0D\u5339\u914D\uFF1A\u8BF7\u6C42 ${I}\uFF0C\u54CD\u5E94 ${u.id}`);if((r.get(I)??_)===_){let g=Io(u);n.set(I,g),await e.storage?.saveChannelProfiles([g]);}return u})().finally(()=>{t.get(I)===T&&t.delete(I);});return r.set(I,_),t.set(I,T),T}return {listProfiles:w,getProfile:h,clearCache(){s+=1,c+=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(),d=null,o="0",i=true,a=null;}}}function So(e,n){return en(e,{listType:2,page:n.page,pageSize:n.pageSize,clientType:n.clientType})}function Ao(e,n){return nn(e,n)}function Mo(e,n){return tn(e,n)}var Ps=20,_o=50,Is=20,vs=2,Ss=3,Eo=4,As=5,Ro=0,Ms=1,_s=2;function xs(e){switch(e){case Ro:case Ms:case _s:return e;default:return}}var on=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},te=class extends Error{constructor(n){super(`CHANNEL join application \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelJoinApplicationMappingError";}};function j(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Es(e){let n=j(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 Rs(e){let n=j(e.status);if(e.status===void 0||n==="")return true;let t=Number(n),r=xs(t);if(r===void 0)throw new te(`\u672A\u77E5\u7533\u8BF7\u72B6\u6001\uFF1A${n}`);return r===Ro}function ks(e){let n=Number(j(e.type));if(n!==vs&&n!==Ss&&n!==Eo&&n!==As)throw new te(`GROUP/CHANNEL \u6DF7\u5408\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${j(e.type)||"<empty>"}`);return n}function Ts(e){let n=j(e.id)||j(e.aid),t=j(e.user_id)||j(e.user_info?.user_id),r=e.radio_info??e.channel_info,o=j(e.radio_id)||j(e.channel_id)||j(r?.radio_id)||j(r?.channel_id);if(n==="")throw new te("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");if(t==="")throw new te(`\u7533\u8BF7\u4EBA id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);if(o==="")throw new te(`CHANNEL id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let i=j(e.user_info?.nick_name)||j(e.user_info?.nickname)||j(e.user_info?.name)||t,a=j(e.user_info?.head_img_url)||j(e.user_info?.avatar),s=j(e.user_info?.mid),d=j(r?.name)||j(r?.radio_name)||j(r?.channel_name)||o,c=j(r?.head_img_url)||j(r?.avatar),m=Es(e.create_time??e.createTime);return {applicationId:n,applicantId:t,applicantName:i,...a===""?{}:{applicantAvatar:a},...s===""?{}:{applicantDisplayId:s},channelId:o,channelName:d,...c===""?{}:{channelAvatar:c},message:j(e.remarks)||j(e.introduce_self),...m===void 0?{}:{createdAt:m}}}function xo(e){if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>_o)throw new te(`limit \u5FC5\u987B\u4E3A 1-${_o}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit||Ps};if(!/^[1-9]\d*$/.test(e.cursor))throw new te("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let n=Number(e.cursor);if(!Number.isSafeInteger(n))throw new te("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {page:n,pageSize:e.limit}}function Ds(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 te("data.list \u5FC5\u987B\u662F\u6570\u7EC4\uFF0C\u6216\u5728 count=0 \u65F6\u4E3A null")}function Us(e){let n=e.trim();if(n==="")throw new te("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");return n}function Os(e){async function n(r){let{pageSize:o}=xo(r),{page:i}=xo(r);for(let a=0;a<Is;a+=1){let s=await So(e.client,{page:i,pageSize:o,clientType:e.clientType});if(!s.ok)throw new on(s.code,s.message);let d=Ds(s.data),c=d.filter(h=>ks(h)===Eo&&Rs(h)).map(Ts),m=d.length<o,w=i+1;if(c.length>0||m)return {items:c,exhausted:m,...m?{}:{nextCursor:String(w)}};i=w;}return {items:[],exhausted:false,nextCursor:String(i)}}async function t(r,o){let i=await o(e.client,{applicationId:Us(r),clientType:e.clientType});if(!i.ok)throw new on(i.code,i.message)}return {listJoinApplications:n,acceptJoinApplication:r=>t(r,Ao),ignoreJoinApplication:r=>t(r,Mo)}}function _n(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function vt(e,n){return D(e,"/user_radio/users",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},_n(n.clientType,"GET"))}function St(e,n){return D(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"},_n(n.clientType,"POST"))}function ko(e,n){return D(e,"/user_radio/admins",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},_n(n.clientType,"GET"))}function To(e,n){return D(e,"/user_radio/user/infos",{radio_id:n.channelId,user_ids:n.userIds.join(",")},_n(n.clientType,"POST"))}var xn=18,Bs=12,Ns=300*1e3,Ks=32,an=class extends Error{constructor(t,r){super(`CHANNEL member HTTP \u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`);this.code=t;this.name="ChannelMemberHttpError";}code},V=class extends Error{constructor(n){super(`CHANNEL member \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelMemberMappingError";}};function me(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Gs(e){return Number(e)===1?"member":Number(e)===9?"admin":Number(e)===10?"owner":"unknown"}function Ls(e){let n=me(e);return /^\d+$/.test(n)?n.replace(/^0+(?=\d)/,""):void 0}function At(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 Do(e,n){let t=me(e.radio_id);if(t==="")throw new V("radio_id \u4E0D\u80FD\u4E3A\u7A7A");if(t!==n)throw new V(`\u6210\u5458\u9891\u9053 ${t} \u4E0E\u8BF7\u6C42\u9891\u9053 ${n} \u4E0D\u4E00\u81F4`);let r=me(e.user_id)||me(e.user_info?.user_id);if(r==="")throw new V("user_id \u4E0D\u80FD\u4E3A\u7A7A");if(e.is_master!==void 0){let c=Number(e.is_master);if(c!==0&&c!==1)throw new V(`is_master \u975E\u6CD5\uFF1A${me(e.is_master)}`)}let o=me(e.nick_name),i=me(e.user_info?.nick_name)||me(e.user_info?.name),a=me(e.user_info?.head_img_url),s=Ls(e.update_version),d=Number(e.join_type);return {userId:r,...o===""?{}:{nickname:o},displayName:o||i||r,...a===""?{}:{avatar:a},role:Gs(e.role_id),...Number.isInteger(d)?{joinType:d}:{},...s===void 0?{}:{updateVersion:s}}}function Hs(e){if(e.channelId.trim()==="")throw new V("channelId \u4E0D\u80FD\u4E3A\u7A7A");if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>xn)throw new V(`limit \u5FC5\u987B\u4E3A 1-${xn}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit};if(!/^[1-9]\d*$/.test(e.cursor))throw new V("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let t=Number(e.cursor);if(!Number.isSafeInteger(t))throw new V("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {page:t,pageSize:e.limit}}function Uo(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 Fs(e){let n=e.now??(()=>Date.now()),t=e.isActive??(()=>true),r=e.cacheTtlMs??Ns,o=new Map,i=new Map,a=new Map,s=new Map,d=new Map,c=new Set,m=new Set,w=(p,y)=>`${p}:${y}`;function h(p){let y=d.get(p);return y!==void 0?y:(d.set(p,0),0)}function l(p){let y=p.trim();if(y==="")throw new V("channelId \u4E0D\u80FD\u4E3A\u7A7A");return y}function b(p){for(i.delete(p.channelId),i.set(p.channelId,p);i.size>Ks;){let y=i.keys().next().value;if(y===void 0)break;i.delete(y);}}function I(p){let y=i.get(p);if(y!==void 0)return b(y),Promise.resolve(y);if(m.has(p)||e.storage?.getChannelMemberSnapshot===void 0)return Promise.resolve(null);let S=a.get(p);if(S!==void 0)return S;let f=h(p),P=e.storage.getChannelMemberSnapshot(p).then(E=>!t()||E===null||E.channelId!==p||f!==h(p)||m.has(p)?null:(b(E),E)).finally(()=>{a.get(p)===P&&a.delete(p);});return a.set(p,P),P}function A(p,y){let S=p.map(P=>P.userId),f=new Map(p.map(P=>[P.userId,P]));for(let P of y){f.has(P.userId)||S.push(P.userId);let E=f.get(P.userId);(E===void 0||At(P.updateVersion,E.updateVersion)>=0)&&f.set(P.userId,P);}return S.map(P=>f.get(P))}async function _(p,y){let S=await ga$1(y);return p.filter(f=>S.match(f.displayName)!==null||S.match(f.userId,{pinyin:false})!==null)}async function T(p,y,S={}){if(!t()||y!==h(p.channelId))return;let f=p.channelId,P=m.has(f),E=S.allowPersistentRebuild===true&&P&&e.storage?.deleteChannelMemberSnapshot===void 0&&e.storage?.saveChannelMemberSnapshot!==void 0;(!P||E)&&await e.storage?.saveChannelMemberSnapshot?.(p),t()&&y===h(f)&&(b(p),S.allowPersistentRebuild===true&&(!P||e.storage?.deleteChannelMemberSnapshot===void 0)&&m.delete(f));}async function x(p,y,S,f,P=false,E){let R=await I(p);if(!t()||S!==h(p))return;let O=n(),M=E!==void 0&&R?.nextCursor===E,k=P&&R!==null&&!M,U=f!==void 0&&!k?f.nextCursor:R?.nextCursor,N={channelId:p,items:A(R?.items??[],y),...U===void 0?{}:{nextCursor:U},exhausted:k?R.exhausted:f?.exhausted??R?.exhausted??false,updatedAt:O};await T(N,S);}async function v(p,y,S){if(!t()||S!==h(p))return [...y];let f=n(),P=f+r,E=[],R=[],O=new Map;for(let M of y){let k=w(p,M.userId),U=o.get(k)?.member;if(U!==void 0&&At(M.updateVersion,U.updateVersion)<0){R.push(U);continue}E.push({channelId:p,...M,updatedAt:f}),R.push(M),O.set(k,{member:M,expiresAt:P});}if(E.length>0&&t()&&S===h(p)&&!c.has(p)&&(await e.storage?.saveChannelMembers?.(E),e.storage?.getChannelMembers!==void 0&&t()&&S===h(p))){let M=await e.storage.getChannelMembers(p,E.map(U=>U.userId)),k=new Map(M.map(U=>{let{channelId:N,updatedAt:B,...$}=U;return [$.userId,{member:$,updatedAt:B}]}));for(let U=0;U<R.length;U+=1){let N=R[U];if(N===void 0)continue;let B=k.get(N.userId);B===void 0||At(B.member.updateVersion,N.updateVersion)<=0||(R[U]=B.member,O.set(w(p,N.userId),{member:B.member,expiresAt:B.updatedAt+r}));}}if(t()&&S===h(p))for(let[M,k]of O)o.set(M,k);return R}async function u(p,y){let S=l(p.channelId),{page:f,pageSize:P}=Hs({...p,channelId:S}),E=h(S),R=await y(S,f,P);if(!R.ok)throw new an(R.code,R.message);if(R.data!==null&&!Array.isArray(R.data))throw new V("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let O=Uo((R.data??[]).map(U=>Do(U,S))),M=await v(S,O,E),k=(R.data??[]).length<P;return {items:M,exhausted:k,...k?{}:{nextCursor:String(f+1)}}}function g(p){let y=l(p),S=s.get(y);if(S!==void 0)return S;let f=h(y),P=(async()=>{let E,R=false,O=[];for(let k=0;k<Bs&&!R;k+=1){let U=await u({channelId:y,limit:xn,...E===void 0?{}:{cursor:E}},(N,B,$)=>vt(e.client,{channelId:N,page:B,pageSize:$,clientType:e.clientType}));if(!t()||f!==h(y))throw new V("\u6210\u5458\u5FEB\u7167\u9884\u53D6\u5DF2\u56E0\u6210\u5458\u53D8\u5316\u5931\u6548");O=A(O,U.items),E=U.nextCursor,R=U.exhausted;}let M={channelId:y,items:O,...E===void 0?{}:{nextCursor:E},exhausted:R,updatedAt:n()};return await T(M,f,{allowPersistentRebuild:true}),{items:M.items,...M.nextCursor===void 0?{}:{nextCursor:M.nextCursor},exhausted:M.exhausted}})().finally(()=>{s.get(y)===P&&s.delete(y);});return s.set(y,P),P}async function C(p){let y=l(p),S=h(y)+1;d.set(y,S),c.add(y),m.add(y),i.delete(y),a.delete(y),s.delete(y);let f=`${y}:`;for(let P of o.keys())P.startsWith(f)&&o.delete(P);e.storage?.deleteChannelMembers===void 0&&e.storage?.deleteChannelMemberSnapshot===void 0||(await Promise.all([e.storage.deleteChannelMembers?.(y),e.storage.deleteChannelMemberSnapshot?.(y)]),S===h(y)&&(e.storage?.deleteChannelMembers!==void 0&&c.delete(y),e.storage?.deleteChannelMemberSnapshot!==void 0&&m.delete(y)));}return {async prefetchMembers(p){let y=l(p),S=await I(y),f=m.has(y);S!==null&&!f&&S.updatedAt+r>n()||await g(y);},async getCachedMembers(p){let y=l(p.channelId),S=await I(y);if(S===null)return null;let f=p.query?.trim()??"";return f===""&&m.has(y)?null:f===""?{items:[...S.items],...S.nextCursor===void 0?{}:{nextCursor:S.nextCursor},exhausted:S.exhausted}:{items:await _(S.items,f),exhausted:true}},async refreshMembers(p){let y=l(p.channelId),S=p.query?.trim()??"";if(S==="")return g(y);let f=h(y),[P,E]=await Promise.all([u({channelId:y,query:S,limit:xn},(O,M,k)=>St(e.client,{channelId:O,query:S,page:M,pageSize:k,updateVersion:"0",clientType:e.clientType})),I(y)]),R=E===null?[]:await _(E.items,S);return await x(y,P.items,f),{...P,items:A(P.items,R)}},async listMembers(p){let y=l(p.channelId),S={...p,channelId:y},f=h(y),P=await u(S,(E,R,O)=>vt(e.client,{channelId:E,page:R,pageSize:O,clientType:e.clientType}));return await x(y,P.items,f,P,S.cursor!==void 0,S.cursor),P},async searchMembers(p){let y=p.query.trim();if(y==="")return Promise.reject(new V("\u641C\u7D22\u5173\u952E\u8BCD\u4E0D\u80FD\u4E3A\u7A7A"));let S=l(p.channelId),f={...p,channelId:S},P=h(S),E=await u(f,(R,O,M)=>St(e.client,{channelId:R,query:y,page:O,pageSize:M,updateVersion:"0",clientType:e.clientType}));return await x(S,E.items,P),E},listAdmins:p=>u(p,(y,S,f)=>ko(e.client,{channelId:y,page:S,pageSize:f,clientType:e.clientType})),async getMembersByIds(p,y,S){let f=p.trim();if(f==="")throw new V("channelId \u4E0D\u80FD\u4E3A\u7A7A");let P=[...new Set(y.map(M=>M.trim()).filter(Boolean))];if(P.length===0)return [];let E=S?.forceRefresh===true,R=new Map,O=[];for(let M of P){let k=o.get(w(f,M));!E&&k!==void 0&&k.expiresAt>n()?R.set(M,k.member):O.push(M);}if(!E&&O.length>0&&!c.has(f)&&e.storage?.getChannelMembers!==void 0){let M=h(f),k=await e.storage.getChannelMembers(f,O);if(t()&&M===h(f))for(let{channelId:U,updatedAt:N,...B}of k)U===f&&(o.set(w(f,B.userId),{member:B,expiresAt:N+r}),N+r>n()&&R.set(B.userId,B));O=O.filter(U=>!R.has(U));}if(!t())return P.flatMap(M=>R.has(M)?[R.get(M)]:[]);if(O.length>0){let M=h(f),k=await To(e.client,{channelId:f,userIds:O,clientType:e.clientType});if(!k.ok)throw new an(k.code,k.message);if(k.data!==null&&!Array.isArray(k.data))throw new V("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let U=Uo((k.data??[]).map(Z=>Do(Z,f))),N=O.filter(Z=>!U.some(ae=>ae.userId===Z)),B=E&&N.length>0&&M===h(f),$;B?(await C(f),$=U):$=await v(f,U,M);for(let Z of $)R.set(Z.userId,Z);}return P.flatMap(M=>R.has(M)?[R.get(M)]:[])},invalidateChannelMembers:C,clearCache(){let p=new Set(d.keys());for(let y of o.keys())p.add(y.slice(0,y.indexOf(":")));for(let y of i.keys())p.add(y);for(let y of a.keys())p.add(y);for(let y of s.keys())p.add(y);for(let y of c)p.add(y);for(let y of m)p.add(y);for(let y of p)d.set(y,h(y)+1);o.clear(),i.clear(),a.clear(),s.clear(),c.clear(),m.clear();}}}function Oo(e){return {responseMode:"strict",method:"POST",...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function Bo(e,n){return D(e,"/user_radio/member/list",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},Oo(n.clientType))}function No(e,n){return D(e,"/user_radio/member/search",{radio_id:n.channelId,search_name:n.query,page:n.page,page_size:n.pageSize},Oo(n.clientType))}var Ko=18,En=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},ue=class extends Error{constructor(n){super(`CHANNEL @ member \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelMentionMemberMappingError";}};function Ne(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function $s(e){let n=Ne(e.user_id);if(n==="")throw new ue("user_id \u4E0D\u80FD\u4E3A\u7A7A");let t=Ne(e.radio_user_nickname)||Ne(e.nick_name)||Ne(e.name)||Ne(e.mid)||n,r=Ne(e.head_img_url);return {userId:n,displayName:t,...r===""?{}:{avatar:r}}}function js(e){let n=e.channelId.trim();if(n==="")throw new ue("channelId \u4E0D\u80FD\u4E3A\u7A7A");if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>Ko)throw new ue(`limit \u5FC5\u987B\u4E3A 1-${Ko}`);if(e.cursor===void 0)return {channelId:n,page:1,pageSize:e.limit};if(!/^[1-9]\d*$/.test(e.cursor))throw new ue("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let t=Number(e.cursor);if(!Number.isSafeInteger(t))throw new ue("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {channelId:n,page:t,pageSize:e.limit}}function qs(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 Js(e){async function n(t,r){let{channelId:o,page:i,pageSize:a}=js(t),s=await r({channelId:o,page:i,pageSize:a,clientType:e.clientType});if(!s.ok)throw new En(s.code,s.message);if(s.data!==null&&!Array.isArray(s.data))throw new ue("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let d=s.data??[],c=qs(d.map($s)),m=d.length<a;return {items:c,exhausted:m,...m?{}:{nextCursor:String(i+1)}}}return {listMentionMembers:t=>n(t,r=>Bo(e.client,r)),searchMentionMembers:t=>{let r=t.query.trim();return r===""?Promise.reject(new ue("\u641C\u7D22\u5173\u952E\u8BCD\u4E0D\u80FD\u4E3A\u7A7A")):n(t,o=>No(e.client,{...o,query:r}))}}}function Vs(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 s={"Content-Type":"application/octet-stream"},d=e.getClientType?.();d!==void 0&&(s["Client-type"]=String(d)),Object.assign(s,o);let c=await e.getAuth();c!==null&&c.token!==""&&c.userId!==""&&(s.Authorization=`${c.token}:${c.userId}`);let m=await n(`${a}${t}`,{method:"POST",body:r,headers:s,signal:i});if(!m.ok)throw new wa$1({path:t,status:m.status,statusText:m.statusText});let w=await m.arrayBuffer();return new Uint8Array(w)}}}var le=class extends Error{constructor(n){super(n),this.name="DirectoryMappingError";}};function Rn(e,n){if(e===null||typeof e!="object"||Array.isArray(e))throw new le(`${n} \u5FC5\u987B\u662F\u5BF9\u8C61`);return e}function ne(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function sn(e){let n=ne(e);return n===""?void 0:n}function zs(e){let n=Rn(e,"\u8054\u7CFB\u4EBA\u76EE\u5F55\u9879"),t=n.user_info===void 0?n:Rn(n.user_info,"\u8054\u7CFB\u4EBA user_info"),r=ne(t.user_id??n.friend_user_id??n.user_id);if(r==="")throw new le("\u8054\u7CFB\u4EBA\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A user_id");let o=ne(n.remark_name)||ne(n.contact_name)||ne(t.nick_name)||ne(t.username)||ne(t.mid)||r,i=ne(t.nick_name)||ne(t.username)||ne(t.mid)||r,a=sn(t.head_img_url),s=sn(t.username)??sn(t.mid);return {id:r,kind:"individual",displayName:o,cardDisplayName:i,...a===void 0?{}:{avatarUrl:a},...s===void 0?{}:{username:s}}}function Ws(e){let n=Rn(e,"\u7FA4\u7EC4\u76EE\u5F55\u9879"),t=ne(n.group_id);if(t==="")throw new le("\u7FA4\u7EC4\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A group_id");let r=sn(n.head_img_url),o=ne(n.name)||t;return {id:t,kind:"group",displayName:o,cardDisplayName:o,...r===void 0?{}:{avatarUrl:r}}}function Ys(e){let n=Rn(e,"\u793E\u7FA4\u76EE\u5F55\u9879"),t=ne(n.radio_id??n.id);if(t==="")throw new le("\u793E\u7FA4\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A radio_id/id");let r=sn(n.head_img_url),o=ne(n.name)||t;return {id:t,kind:"channel",displayName:o,cardDisplayName:o,...r===void 0?{}:{avatarUrl:r}}}function Qs(e,n){if(!Number.isSafeInteger(e)||e<1)throw new le("\u76EE\u5F55 page \u5FC5\u987B\u662F\u6B63\u6574\u6570");if(!Number.isSafeInteger(n)||n<1||n>100)throw new le("\u76EE\u5F55 pageSize \u5FC5\u987B\u662F 1-100 \u7684\u6574\u6570")}function Xs(e){return {async list(n){Qs(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 D(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 le(`${n.kind} \u76EE\u5F55 data \u5FC5\u987B\u662F\u6570\u7EC4`);let a=n.kind==="individual"?zs:n.kind==="group"?Ws:Ys,s=new Map;for(let c of i){let m=a(c);s.set(m.id,m);}let d=i.length<n.pageSize;return {items:[...s.values()],...d?{}:{nextPage:n.page+1},exhausted:d}}}}var Zs="https://api.giphy.com/v1/gifs",Ke=class extends Error{constructor(t){super(t==="core"?"\u8868\u60C5 Core API \u672A\u914D\u7F6E":"Giphy API key \u672A\u914D\u7F6E");this.provider=t;this.name="ExpressionProviderUnavailableError";}provider},J=class extends Error{constructor(n){super(n),this.name="ExpressionMappingError";}},Me=class extends Error{constructor(t,r){super(`Giphy \u8BF7\u6C42\u5931\u8D25\uFF1AHTTP ${t}${r?` ${r}`:""}`);this.status=t;this.name="GiphyHttpError";}status};function oe(e,n){if(e===null||typeof e!="object"||Array.isArray(e))throw new J(`${n} \u5FC5\u987B\u662F\u5BF9\u8C61`);return e}function re(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Ce(e,n){let t=re(e);if(t==="")throw new J(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function Le(e){let n=re(e);return n===""?void 0:n}function Ge(e,n){let t=Number(e);if(!Number.isSafeInteger(t)||t<0)throw new J(`${n} \u5FC5\u987B\u662F\u975E\u8D1F\u6574\u6570`);return t}function ec(e,n){let t=Number(e);if(!Number.isSafeInteger(t))throw new J(`${n} \u5FC5\u987B\u662F\u5B89\u5168\u6574\u6570`);return t}function Go(e,n){let t=Number(e);if(!Number.isFinite(t)||t<=0)throw new J(`${n} \u5FC5\u987B\u662F\u6709\u9650\u6B63\u6570`);return t}function _e(e,n){let t=Ce(e,n),r;try{r=new URL(t);}catch(o){throw new J(`${n} \u4E0D\u662F\u5408\u6CD5 URL\uFF1A${o instanceof Error?o.message:String(o)}`)}if(r.protocol!=="https:"&&r.protocol!=="http:")throw new J(`${n} \u53EA\u652F\u6301 HTTP(S)`);if(r.username!==""||r.password!=="")throw new J(`${n} \u4E0D\u5141\u8BB8\u5305\u542B URL \u51ED\u636E`);return t}function Mt(e,n){if(e==null)return [];if(Array.isArray(e))return e;let r=oe(e,n).list;if(r==null)return [];if(!Array.isArray(r))throw new J(`${n}.list \u5FC5\u987B\u662F\u6570\u7EC4\u6216 null`);return r}function cn(e){return e==="sticker"?1:e==="gif"?2:3}function Lo(e){let n=oe(e,"\u8D34\u56FE\u5305"),t=Le(n.onlineTime??n.online_time),r=n.isPlatformIssued??n.is_platform_issued;return {id:Ce(n.packId??n.pack_id,"\u8D34\u56FE\u5305 packId"),nameZh:re(n.nameZh??n.name_zh),nameEn:re(n.nameEn??n.name_en),nameTh:re(n.nameTh??n.name_th),nameTw:re(n.nameTw??n.name_tw),nameVi:re(n.nameVi??n.name_vi),publisher:re(n.publisher),trayIconUrl:_e(n.trayIcon??n.tray_icon,"\u8D34\u56FE\u5305 trayIcon"),sortWeight:ec(n.sortWeight??n.sort_weight??0,"\u8D34\u56FE\u5305 sortWeight"),isPlatformIssued:r===true||Number(r)===1,...t===void 0?{}:{onlineTime:t},stickerCount:Ge(n.stickerCount??n.sticker_count??0,"\u8D34\u56FE\u5305 stickerCount")}}function _t(e,n,t,r){let o=oe(e,t),i=Le(o.id),a={...i===void 0?{}:{recordId:i},url:_e(o.imgUrl??o.img_url,`${t} imgUrl`),width:Ge(o.width??0,`${t} width`),height:Ge(o.height??0,`${t} height`)};if(n==="sticker")return {kind:n,...a,packageId:Ce(r??o.packId??o.pack_id,`${t} packageId`),resourceId:Ce(o.fileName??o.file_name,`${t} resourceId`)};let s=Le(o.fileName??o.file_name);return {kind:n,...a,...s===void 0?{}:{resourceId:s}}}function nc(e,n){if(n!=="emoji")return _t(e,n,"\u6700\u8FD1\u4F7F\u7528\u9879");let t=oe(e,"\u6700\u8FD1 emoji"),r=Le(t.id);return {kind:"emoji",...r===void 0?{}:{recordId:r},token:Ce(t.imgUrl??t.img_url,"\u6700\u8FD1 emoji token"),resourceId:Ce(t.fileName??t.file_name,"\u6700\u8FD1 emoji resourceId")}}function Ho(e,n,t){let r=cn(n);return Mt(e,t).filter(o=>{let i=oe(o,`${t} item`),a=i.favType??i.fav_type;if(a==null)return true;let s=Number(a);if(s!==1&&s!==2&&s!==3)throw new J(`${t} item.favType \u5FC5\u987B\u662F 1\u30012 \u6216 3`);return s===r})}function $o(e){return {fav_type:cn(e.kind),pack_id:e.kind==="sticker"?e.packageId:"",img_url:_e(e.url,"\u8868\u60C5\u5199\u5165 imgUrl"),file_name:e.resourceId??"",width:e.width,height:e.height}}function tc(e){return e.kind!=="emoji"?$o(e):{fav_type:cn(e.kind),pack_id:"",img_url:e.token,file_name:e.resourceId,width:0,height:0}}function Fo(e){let n=[...new Set(e.map(t=>t.trim()).filter(Boolean))];if(n.length===0||n.length>30||n.some(t=>t.includes("|")))throw new J("\u6279\u91CF\u5220\u9664 recordIds \u5FC5\u987B\u5305\u542B 1-30 \u4E2A\u4E0D\u542B\u7AD6\u7EBF\u7684\u552F\u4E00\u975E\u7A7A id");return n.join("|")}function rc(e){let n=oe(e,"Giphy item"),t=oe(n.images,"Giphy item.images"),r=oe(t.original,"Giphy item.images.original"),o=t.fixed_width,i=o==null?void 0:oe(o,"Giphy item.images.fixed_width"),a=_e(r.url,"Giphy original.url"),s=i===void 0?void 0:Le(i.url),d=i===void 0?void 0:Le(i.webp),c=d===void 0?s===void 0?a:_e(s,"Giphy fixed_width.url"):_e(d,"Giphy fixed_width.webp"),m=d!==void 0&&s!==void 0&&s!==d?_e(s,"Giphy fixed_width.url"):void 0;return {kind:"gif",resourceId:Ce(n.id,"Giphy item.id"),title:re(n.title)||"GIF",url:a,previewUrl:c,...m===void 0?{}:{fallbackPreviewUrl:m},width:Go(r.width,"Giphy original.width"),height:Go(r.height,"Giphy original.height")}}function oc(e,n){let t=oe(e,"Giphy response");if(!Array.isArray(t.data))throw new J("Giphy response.data \u5FC5\u987B\u662F\u6570\u7EC4");let r=oe(t.pagination,"Giphy response.pagination"),o=Ge(r.offset??n,"Giphy pagination.offset");if(o!==n)throw new J("Giphy pagination.offset \u4E0E\u8BF7\u6C42 offset \u4E0D\u4E00\u81F4");let i=Ge(r.count??t.data.length,"Giphy pagination.count"),a=Ge(r.total_count??r.totalCount??0,"Giphy pagination.total_count"),s=new Map;for(let c of t.data){let m=rc(c);s.set(m.resourceId,m);}let d=o+i;return {items:[...s.values()],offset:o,totalCount:a,...i>0&&d<a?{nextOffset:d}:{}}}function ic(e){async function n(r,o,i){if(e.coreClient===void 0)throw new Ke("core");let a=await D(e.coreClient,r,o,{method:"POST",responseMode:"strict"});if(!a.ok)throw new z(i,a.code,a.message);return a.data}async function t(r,o){let i=e.giphyApiKey?.trim()??"";if(i==="")throw new Ke("giphy");let a=e.fetcher??globalThis.fetch;if(typeof a!="function")throw new Ke("giphy");let s=new URLSearchParams({api_key:i,limit:String(o.limit),offset:String(o.offset),...o.query===void 0?{}:{q:o.query,lang:"en"}}),d;try{d=await a(`${Zs}/${r}?${s.toString()}`);}catch{throw new Me(0,"network failure")}let c;try{c=await d.json();}catch(w){throw d.ok?new J(`Giphy response \u4E0D\u662F JSON\uFF1A${w instanceof Error?w.message:String(w)}`):new Me(d.status,"")}if(!d.ok){let w=c!==null&&typeof c=="object"&&!Array.isArray(c)?c.meta:void 0,h=w!==null&&typeof w=="object"&&!Array.isArray(w)?re(w.msg):"";throw new Me(d.status,h)}let m=c!==null&&typeof c=="object"&&!Array.isArray(c)?c.meta:void 0;if(m!==null&&typeof m=="object"&&!Array.isArray(m)){let w=m,h=Number(w.status);if(Number.isFinite(h)&&h!==200)throw new Me(h,re(w.msg))}return oc(c,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(Lo)};if(o==null)return {version:"",items:[]};let i=oe(o,"\u8D34\u56FE\u5305\u5217\u8868 data"),a=i.list??i.packs;if(a==null)return {version:re(i.version),items:[]};if(!Array.isArray(a))throw new J("\u8D34\u56FE\u5305\u5217\u8868 data.list \u5FC5\u987B\u662F\u6570\u7EC4\u6216 null");return {version:re(i.version),items:a.map(Lo)}},async listStickerItems(r){let o=await n("/user/sticker/item_list",{pack_id:r},"\u8D34\u56FE\u660E\u7EC6\u5217\u8868");return Mt(o,"\u8D34\u56FE\u660E\u7EC6\u5217\u8868 data").map(i=>_t(i,"sticker","\u8D34\u56FE\u660E\u7EC6",r))},async listFavorites(r){let o=await n("/user/sticker/my_fav/list",{fav_type:cn(r)},"\u8868\u60C5\u6536\u85CF\u5217\u8868");return Ho(o,r,"\u8868\u60C5\u6536\u85CF\u5217\u8868 data").map(i=>_t(i,r,"\u8868\u60C5\u6536\u85CF\u9879"))},async addFavorite(r){await n("/user/sticker/my_fav/add",$o(r),"\u6DFB\u52A0\u8868\u60C5\u6536\u85CF");},async deleteFavorites(r){await n("/user/sticker/my_fav/del",{ids:Fo(r)},"\u5220\u9664\u8868\u60C5\u6536\u85CF");},async listRecent(r){let o=await n("/user/sticker/recent/list",{fav_type:cn(r)},"\u6700\u8FD1\u4F7F\u7528\u5217\u8868");return Ho(o,r,"\u6700\u8FD1\u4F7F\u7528\u5217\u8868 data").map(i=>nc(i,r))},async reportRecent(r){await n("/user/sticker/recent/report",tc(r),"\u4E0A\u62A5\u6700\u8FD1\u4F7F\u7528");},async deleteRecent(r){await n("/user/sticker/recent/del",{ids:Fo(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 Mt(o,"\u5FEB\u6377\u56DE\u5E94 Top data").map(i=>{let a=oe(i,"\u5FEB\u6377\u56DE\u5E94 Top \u9879");return Ce(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 jo(e,n){let t=n.clientType===void 0?void 0:{headers:{"Client-type":String(n.clientType)}};return (await D(e,"/user_group/info",{group_id:n.groupId},t)).data}function ac(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 sc(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 qo=200,cc=50;async function Jo(e,n){let t=String(n.updateVersion??0).trim()||"0",r=[],o;for(let i=1;i<=cc;i++){let a={group_id:n.groupId,update_version:t,page:String(i),page_size:String(qo)},{data:s}=await D(e,"/user_group/user/list",a,{method:"GET",...n.clientType===void 0?{}:{headers:{"Client-type":String(n.clientType)}}});if(s===null)break;let d=ac(s);if(d.length===0)break;for(let m of d){let w=String(m.user_id??m.userId??"").trim();if(w==="")continue;let h={userId:w,nickName:String(m.nick_name??m.nickName??"").trim()},l=sc(m.join_type??m.joinType);l!==void 0&&(h.joinType=l),r.push(h);}let c=s.update_version;if(typeof c=="number"&&(o=c),d.length<qo)break}return {members:r,updateVersion:o}}async function Vo(e,n){return (await D(e,"/user/info/friend",{friend_user_id:n.userId})).data}var dc=1440*60*1e3;function xt(e,n,t=dc){let r=new Map,o=new Map,i=new Map;function a(m){let w=(i.get(m)??0)+1;i.set(m,w);let h=e(m).then(l=>(l!==null&&i.get(m)===w&&(r.set(m,l),n?.save(m,l).catch(()=>{})),l)).finally(()=>{o.get(m)===h&&o.delete(m);});return o.set(m,h),h}return {get:async(m,w)=>{if(w?.forceRefresh===true)return a(m);let h=r.get(m);if(h!==void 0)return h;let l=o.get(m);if(l!==void 0)return l;if(n!==void 0)try{let b=i.get(m)??0,I=await n.get(m);if(I!==null)return (i.get(m)??0)===b&&(r.set(m,I.value),Date.now()-I.updatedAt>t&&a(m)),I.value}catch{}return a(m)},peek:async m=>{let w=r.get(m);if(w!==void 0)return {value:w,stale:false};if(n===void 0)return null;try{let h=i.get(m)??0,l=await n.get(m);if(l!==null)return (i.get(m)??0)===h&&r.set(m,l.value),{value:l.value,stale:Date.now()-l.updatedAt>t}}catch{}return null},clear:()=>{for(let m of new Set([...r.keys(),...o.keys(),...i.keys()]))i.set(m,(i.get(m)??0)+1);r.clear(),o.clear();}}}function uc(e){async function n(h){let l=await Vo(e.client,{userId:h})??await Ze(e.client,{userId:h});return l===null?null:ca$1(l)}async function t(h){let l=await jo(e.client,{groupId:h,clientType:e.clientType});return l===null?null:da$1(l)}async function r(h){let{members:l}=await Jo(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()});}},s=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(I=>({userId:I.userId,groupNick:I.nickName,...I.joinType===void 0?{}:{joinType:I.joinType}}));await i.saveGroupMembers({groupId:h,members:b,updatedAt:Date.now()});}},d=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()});}},c=xt(n,a),m=xt(t,d),w=xt(r,s);return {getUserProfile:(h,l)=>c.get(h,l),getGroupProfile:(h,l)=>m.get(h,l),getGroupMemberNames:async(h,l)=>{let b=await w.get(h,l);return b===null?null:o(b)},listGroupMembers:(h,l)=>w.get(h,l),peekUserProfile:h=>c.peek(h),peekGroupMemberNames:async h=>{let l=await w.peek(h);return l===null?null:{value:o(l.value),stale:l.stale}},peekGroupMembers:h=>w.peek(h),peekGroupProfile:h=>m.peek(h),clearCache:()=>{c.clear(),m.clear(),w.clear();}}}var kn=class extends Error{responseCode;operation;constructor(n,t,r){let o=n==="bind"?"\u7ED1\u5B9A":"\u89E3\u7ED1";super(`${o}\u673A\u5668\u4EBA\u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`),this.name="RobotConversationBindError",this.responseCode=t,this.operation=n;}},He=class extends Error{constructor(n){super(n),this.name="RobotConversationBindMappingError";}};function lc(e){let n=e.robotId.trim(),t=e.conversationId.trim();if(n==="")throw new He("\u7ED1\u5B9A\u673A\u5668\u4EBA robotId \u4E0D\u80FD\u4E3A\u7A7A");if(t==="")throw new He("\u7ED1\u5B9A\u673A\u5668\u4EBA conversationId \u4E0D\u80FD\u4E3A\u7A7A");if(e.groupType!==1&&e.groupType!==2)throw new He("\u7ED1\u5B9A\u673A\u5668\u4EBA groupType \u5FC5\u987B\u662F 1 \u6216 2");return {robotId:n,conversationId:t,groupType:e.groupType,...e.clientType===void 0?{}:{clientType:e.clientType}}}async function zo(e,n,t){let r=lc(t),i=await D(e,n==="bind"?"/robot/bind_group":"/robot/un_bind_group",{robot_id:r.robotId,object_id:r.conversationId,relation_type:r.groupType},{responseMode:"strict",method:"POST",...r.clientType===void 0?{}:{headers:{"Client-type":String(r.clientType)}}});if(!i.ok)throw new kn(n,i.code,i.message)}function pc(e,n){return zo(e,"bind",n)}function fc(e,n){return zo(e,"unbind",n)}function mc(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}async function ie(e,n,t,r){let o=await D(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new z(r,o.code,o.message)}function gc(e){return ie(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 yc(e){return ie(e.client,"/user_radio/user/setting",{radio_id:e.channelId,nick_name:e.nickname},"\u4FEE\u6539\u793E\u7FA4\u6635\u79F0")}function hc(e){return ie(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 bc(e){let n=e.userIds.map(t=>({user_id:mc(t)}));return ie(e.client,"/user_radio/invited_users",{radio_id:e.channelId,members:JSON.stringify(n)},"\u9080\u8BF7\u793E\u7FA4\u6210\u5458")}function wc(e){return ie(e.client,"/user_radio/kick_user",{radio_id:e.channelId,user_id:e.userId},"\u79FB\u9664\u793E\u7FA4\u6210\u5458")}function Cc(e){return ie(e.client,"/user_radio/add_admin",{radio_id:e.channelId,user_id:e.userId},"\u8BBE\u4E3A\u793E\u7FA4\u7BA1\u7406\u5458")}function Pc(e){return ie(e.client,"/user_radio/del_admin",{radio_id:e.channelId,user_id:e.userId},"\u53D6\u6D88\u793E\u7FA4\u7BA1\u7406\u5458")}function Ic(e){return ie(e.client,"/user_radio/transfer",{radio_id:e.channelId,user_id:e.userId},"\u8F6C\u8BA9\u793E\u7FA4")}function vc(e){return ie(e.client,"/user_radio/user/quit",{radio_id:e.channelId,...e.newOwnerId===void 0?{}:{user_id:e.newOwnerId}},"\u9000\u51FA\u793E\u7FA4")}function Sc(e){return ie(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 Ac(e){return ie(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 Mc(e){return ie(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 _c(e){return ie(e.client,"/user_radio/closed",{radio_id:e.channelId},"\u89E3\u6563\u793E\u7FA4")}async function xc(e){e.signal?.throwIfAborted(),Ec(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),e.signal?.throwIfAborted();let t=e.containAnchor??true,r=G({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,...e.signal===void 0?{}:{signal:e.signal}});e.signal?.throwIfAborted();let i=J$1(o,{selfId:e.userId,keepRaw:true,expectedChannelIds:[e.channelId],onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps);if(t){let s=i.messages.filter(d=>d.extensions?.historyCursor===n);if(s.length!==1)throw new Error(`CHANNEL \u5386\u53F2\u4E0A\u4E0B\u6587 anchor \u5FC5\u987B\u4E00\u4E00\u5BF9\u5E94\uFF08channelId=${e.channelId}, index=${n}, count=${s.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 Ec(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 Rc(e){let n=kc(e.indexes),t=f.encode(f.create({sUserId:Et(e.userId,"user"),lsIndex:n.map(i=>({sChnnId:Et(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 kc(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=>{Et(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 Et(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 Tc(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 D(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 Tn=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;}},Dn=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;}},Rt={HIDDEN_CONTACT:40112,OWN_FRIEND_LIMIT_REACHED:40121,TARGET_FRIEND_LIMIT_REACHED:40122},Dc=36875,Uc=40113;function kt(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function ge(e){let n=kt(e);return n===""?void 0:n}function Wo(e){let n=Array.isArray(e)?e[0]:e;return n!==null&&typeof n=="object"?n:void 0}function Oc(e){switch(e){case Rt.HIDDEN_CONTACT:return "hidden-contact";case Rt.OWN_FRIEND_LIMIT_REACHED:return "own-friend-limit";case Rt.TARGET_FRIEND_LIMIT_REACHED:return "target-friend-limit";default:return "remote"}}async function Bc(e,n){let t=n.query.trim();if(t==="")throw new Error("\u641C\u7D22\u7528\u6237\uFF1Aquery \u4E0D\u80FD\u4E3A\u7A7A");let r=await D(e,"/user/info/search",{username:t},{responseMode:"strict",...n.clientType===void 0?{}:{headers:{"Client-type":String(n.clientType)}}});if(!r.ok)throw new Tn(r.code,r.message);let o=Wo(r.data);if(o===void 0)return null;let i=kt(o.user_id??o.userId);if(i==="")throw new Error("\u641C\u7D22\u7528\u6237\uFF1A\u54CD\u5E94\u7F3A\u5C11 user_id");let a=kt(o.nick_name??o.nickname??o.name)||i,s=o.friend_status??o.friendStatus,d=s===void 0?void 0:Number(s);if(d!==void 0&&!Number.isInteger(d))throw new Error("\u641C\u7D22\u7528\u6237\uFF1Afriend_status \u975E\u6CD5");return {userId:i,nickname:a,...ge(o.username)===void 0?{}:{username:ge(o.username)},...ge(o.mid)===void 0?{}:{miCallId:ge(o.mid)},...ge(o.head_img_url??o.avatar)===void 0?{}:{avatarUrl:ge(o.head_img_url??o.avatar)},...ge(o.per_signature??o.signature)===void 0?{}:{signature:ge(o.per_signature??o.signature)},...d===void 0?{}:{friendStatus:d}}}async function Nc(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 D(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 Dn(Oc(i.code),i.code,i.message);let a=Wo(i.data),s=Number(a?.status??0);if(s!==0&&s!==1&&s!==2)throw new Error(`\u53D1\u9001\u597D\u53CB\u7533\u8BF7\uFF1A\u672A\u77E5\u7ED3\u679C\u72B6\u6001 ${s}`);let d=ge(a?.message??a?.msg??i.message);return {status:s,...d===void 0?{}:{message:d}}}async function Kc(e,n){let t=n.userId.trim();if(t==="")throw new Error("\u5220\u9664\u597D\u53CB\uFF1AuserId \u4E0D\u80FD\u4E3A\u7A7A");let r=await D(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!==Uc)throw new Error(`\u5220\u9664\u597D\u53CB\u5931\u8D25\uFF08${r.code}\uFF09\uFF1A${r.message||"unknown error"}`)}async function Gc(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 D(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 z("\u4E3E\u62A5\u8054\u7CFB\u4EBA",i.code,i.message)}function Lc(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}function Hc(e){let n=e.memberIds.map(t=>({user_id:Lc(t)}));return D(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 Fc(e){return D(e.client,"/user_group/create_face",{is_hidden:"0"},{method:"POST",responseMode:"strict"})}function $c(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}function jc(e){let n=e.memberIds.map(t=>({user_id:$c(t)}));return D(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 Fe(e){if(e.trim()==="")throw new Error("board pinned message groupId \u4E0D\u80FD\u4E3A\u7A7A")}function $e(e){if(e.trim()==="")throw new Error("channel board pinned message channelId \u4E0D\u80FD\u4E3A\u7A7A")}function Yo(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function qc(e){Fe(e.groupId);let n=await D(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(!Yo(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(!Yo(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 Qo(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function Jc(e){$e(e.channelId);let n=await D(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(!Qo(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(!Qo(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 Vc(e,n){let r=(await D(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 zc(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 Wc(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||!zc(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 Yc(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}async function dn(e,n,t,r){let o=await D(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new z(r,o.code,o.message)}function Qc(e){let n=e.userIds.map(t=>({user_id:Yc(t)}));return dn(e.client,"/user_group/invited",{group_id:e.groupId,members:JSON.stringify(n)},"\u9080\u8BF7\u7FA4\u6210\u5458")}function Xc(e){return dn(e.client,"/user_group/kick",{group_id:e.groupId,out_user_id:e.userId},"\u79FB\u9664\u7FA4\u6210\u5458")}function Zc(e){return dn(e.client,"/user_group/transfer",{group_id:e.groupId,new_user_id:e.userId},"\u8F6C\u8BA9\u7FA4\u7EC4")}function ed(e){return dn(e.client,"/user_group/user/quit",{group_id:e.groupId,...e.newOwnerId===void 0?{}:{new_user_id:e.newOwnerId}},"\u9000\u51FA\u7FA4\u7EC4")}function nd(e){return dn(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 td=new Set([200,32768]);async function rd(e){let n=Y$1({userId:e.userId,groupId:e.groupId}),t=await e.http.postProtobuf({path:"/offline/v1/group/read_all",body:n}),{code:r}=Z(t);if(!td.has(r))throw new Error(`\u7FA4 read_all \u4E1A\u52A1\u5931\u8D25\uFF1Acode=${r}\uFF08groupId=${e.groupId}\uFF09`)}var un=class extends Error{constructor(n){super(`${n}\u54CD\u5E94\u5305\u542B\u65E0\u6CD5\u8BC6\u522B\u7684 is_waitting`),this.name="MembershipJoinMappingError";}};function od(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 un(n)}async function Xo(e,n,t,r){let o=await D(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new z(r,o.code,o.message);if(o.data===null||o.data===void 0)throw new un(r);return od(o.data.is_waitting,r)}async function Zo(e,n,t,r){let o=await D(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new z(r,o.code,o.message);return Object.freeze({outcome:"joined"})}function id(e){return Xo(e.client,"/user_group/apply",{group_id:e.groupId,qrcode_type:2,remarks:e.remarks??""},"\u7533\u8BF7\u52A0\u5165\u666E\u901A\u7FA4")}function ad(e){return Zo(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 sd(e){return Xo(e.client,"/user_radio/add/apply",{radio_id:e.channelId,remarks:e.remarks??""},"\u7533\u8BF7\u52A0\u5165\u793E\u7FA4")}function cd(e){return Zo(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 dd(e){if(Fe(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 D(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 ud(e){if($e(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 D(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 ld(e){let n=aa$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 ba$1(t,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function pd(e){e.prepareKeys!==void 0&&e.decryptDeps!==void 0&&e.groupId!==""&&await e.prepareKeys([e.groupId]);let n=W$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 X$1(t,{selfId:e.userId,keepRaw:true,source:"history",onReaction:e.onReaction},e.decryptDeps)}async function fd(e){e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId);let n=L$1({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 M(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 md=20,ei=10,Tt=30,gd=100;async function yd(e){let n=[];for(let t of ti(e.channels,md)){let r=F$1({userId:e.userId,clientType:e.clientType,channels:t}),o=await e.http.postProtobuf({path:"/channel/v1/sessions",body:r}),i={selfId:e.userId,keepRaw:e.keepRaw??true,expectedChannelIds:t.map(s=>s.channelId),diagnostic:{endpoint:"sessions",surface:"session-last",...e.operationId===void 0?{}:{operationId:e.operationId},clientTypeHeader:e.clientType,clientTypeBody:e.clientType}},a=I(o,i);await ni(e,a.sessions.filter(s=>s.channelState==="active"||s.raw?.status===0).map(s=>s.channelId)),n.push(...I(o,{...i,onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps).sessions);}return n}async function hd(e){let n=Cd(e.channelBatchSize),t=e.messageCount??Tt,r=Pd(e.maxPagesPerBatch),o=new Map;for(let i of ti(e.pulls,n)){let a=i.map(c=>({...c})),s=new Map(a.map(c=>[c.channelId,new Set([c.baseIndex])])),d=0;for(;a.length>0;){if(d>=r){let l=a.map(({channelId:b,baseIndex:I})=>`${b}@${I}`).join(",");throw new Error(`channel offline \u5206\u9875\u8D85\u8FC7 maxPagesPerBatch=${r}\uFF08active=${l}\uFF09`)}d+=1;let c=G({userId:e.userId,clientType:e.clientType,pulls:a.map(l=>({channelId:l.channelId,baseIndex:l.baseIndex,direction:0,count:t,contain:0}))});e.signal?.throwIfAborted();let m=await e.http.postProtobuf({path:"/channel/v1/offlineMessages",body:c,...e.signal===void 0?{}:{signal:e.signal}});e.signal?.throwIfAborted(),await ni(e,a.map(l=>l.channelId));let w=J$1(m,{selfId:e.userId,keepRaw:e.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);e.signal?.throwIfAborted(),e.onPage?.(w.messages);for(let l of w.messages)o.has(l.id)||o.set(l.id,l);let h=[];for(let l of a){let b=w.nextBaseIndexes[l.channelId],I=w.messageCounts[l.channelId]??0;if(b===void 0)continue;let A=s.get(l.channelId);if(A.has(b))throw new Error(`channel offline cursor \u5FAA\u73AF\uFF08channelId=${l.channelId}, baseIndex=${b}\uFF09`);I<t||(A.add(b),h.push({channelId:l.channelId,baseIndex:b}));}a=h;}}return [...o.values()].sort(m)}async function bd(e$1){e$1.signal?.throwIfAborted();let n=e$1.count??Tt;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=G({userId:e$1.userId,clientType:e$1.clientType,pulls:[{channelId:e$1.channelId,baseIndex:"",direction:1,count:n,contain:0}]});e$1.signal?.throwIfAborted();let r=await e$1.http.postProtobuf({path:"/channel/v1/offlineMessages",body:t,...e$1.signal===void 0?{}:{signal:e$1.signal}});e$1.signal?.throwIfAborted();let o={selfId:e$1.userId,keepRaw:e$1.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},i=e$1.yieldToEventLoop===void 0?{...J$1(r,o,e$1.decryptDeps),firstBaseIndex:e.decode(r).lsMessage[0]?.sIndex}:await K$1(r,o,e$1.decryptDeps,{yieldToEventLoop:e$1.yieldToEventLoop,signal:e$1.signal}),a=i.batchSize===n,s=i.firstBaseIndex;if(a&&(typeof s!="string"||s.trim()===""))throw new Error(`channel latest: \u6EE1\u9875\u7F3A\u5C11\u5411\u65E7 cursor\uFF08channelId=${e$1.channelId}\uFF09`);return {messages:i.messages,hasOlder:a,...a?{nextCursor:s}:{}}}async function wd(e){e.signal?.throwIfAborted();let n=e.count??Tt;e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId);let t=H$1({userId:e.userId,clientType:e.clientType,channelId:e.channelId,baseIndex:e.baseIndex,count:n,contain:e.contain??0});e.signal?.throwIfAborted();let r=await e.http.postProtobuf({path:"/channel/v1/offlineMessages",body:t,...e.signal===void 0?{}:{signal:e.signal}});return e.signal?.throwIfAborted(),N(r,{selfId:e.userId,channelId:e.channelId,requestedBaseIndex:e.baseIndex,requestedCount:n,keepRaw:e.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 ni(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 Cd(e){if(e===void 0)return ei;if(!Number.isInteger(e)||e<=0)throw new Error("channel offline: channelBatchSize \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");return Math.min(e,ei)}function Pd(e){if(e===void 0)return gd;if(!Number.isInteger(e)||e<=0)throw new Error("channel offline: maxPagesPerBatch \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");return e}function ti(e,n){let t=[];for(let r=0;r<e.length;r+=n)t.push(e.slice(r,r+n));return t}async function ri(e,n){let t=_({userId:n.userId,clientType:n.clientType,limit:n.limit,deliveredMsgInfos:n.deliveredMsgInfos}),r=await n.http.postProtobuf({path:e,body:t});return $(r,{selfId:n.userId,keepRaw:true,onReaction:n.onReaction},n.decryptDeps)}function oi(e){return ri("/offline/v1/chat",e)}function ii(e){return ri("/offline/v1/owner_chat",e)}function Id(e){return oi(e).then(n=>n.messages)}function vd(e){return ii(e).then(n=>n.messages)}function ai(e){return [...new Set(e.filter(n=>n!==void 0&&n!==""))]}async function Sd(e){let n=P({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=R(t,{selfId:e.userId}),o=ai(r.messages.map(i=>i.conversationId));o.length>0&&await e.prepareKeys(o);}return R(t,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function Ad(e){let n=Q$1({userId:e.userId,clientType:e.clientType,size:e.size}),t=await e.http.postProtobuf({path:"/offline/v1/group/session",body:n});if(e.prepareKeys!==void 0&&e.decryptDeps!==void 0){let r=S(t,{selfId:e.userId}),o=ai([...r.unreads.map(i=>i.groupId),...r.messages.map(i=>i.conversationId)]);o.length>0&&await e.prepareKeys(o);}return S(t,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function Md(e){e.signal?.throwIfAborted(),e.prepareKeys!==void 0&&e.decryptDeps!==void 0&&e.groupId!==""&&await e.prepareKeys([e.groupId]);let n=T({userId:e.userId,groupId:e.groupId,baseTime:e.baseTime,direct:e.direct,limit:e.limit,clientType:e.clientType});e.signal?.throwIfAborted();let t=await e.http.postProtobuf({path:"/offline/v1/group/history_msg",body:n,...e.signal===void 0?{}:{signal:e.signal}});e.signal?.throwIfAborted();let r={selfId:e.userId,keepRaw:e.keepRaw??true,source:"history",onReaction:e.onReaction};return e.yieldToEventLoop===void 0?U(t,r,e.decryptDeps):V$1(t,{...r,expectedGroupId:e.groupId},e.decryptDeps,{yieldToEventLoop:e.yieldToEventLoop,signal:e.signal})}async function _d(e){let n=ia$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 ja$1(t)}var Un=class extends Error{responseCode;constructor(n,t){super(`\u641C\u7D22\u673A\u5668\u4EBA\u5931\u8D25\uFF08${n}\uFF09\uFF1A${t||"unknown error"}`),this.name="RobotDirectoryError",this.responseCode=n;}},de=class extends Error{constructor(n){super(n),this.name="RobotDirectoryMappingError";}};function Dt(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function si(e){let n=Dt(e);return n===""?void 0:n}function Ut(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function xd(e){if(e===true||e===1||e==="1")return true;if(e===false||e===0||e==="0")return false}function Ed(e){let n=Ut(e);if(n===void 0)throw new de("\u673A\u5668\u4EBA\u76EE\u5F55\u9879\u5FC5\u987B\u662F\u5BF9\u8C61");let t=Dt(n.robot_id??n.robotId);if(t==="")throw new de("\u673A\u5668\u4EBA\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A robot_id");let r=Dt(n.robot_name??n.robotName)||t,o=si(n.mid??n.botMid??n.bot_mid),i=si(n.img_url??n.imgUrl),a=xd(n.bind);return {id:t,displayName:r,...o===void 0?{}:{username:o},...i===void 0?{}:{avatarUrl:i},...a===void 0?{}:{bound:a}}}function Rd(e){if(Array.isArray(e))return e;let n=Ut(e);if(n===void 0)throw new de("\u673A\u5668\u4EBA\u76EE\u5F55 data \u5FC5\u987B\u662F\u5BF9\u8C61\u6216\u6570\u7EC4");let t=n.data??n.list;if(!Array.isArray(t))throw new de("\u673A\u5668\u4EBA\u76EE\u5F55 data.data \u5FC5\u987B\u662F\u6570\u7EC4");return t}function kd(e){let n=Ut(e);if(n===void 0)return;let t=n.total_count??n.totalCount;if(t===void 0)return;let r=typeof t=="number"?t:Number(t);if(!Number.isSafeInteger(r)||r<0)throw new de("\u673A\u5668\u4EBA\u76EE\u5F55 total_count \u5FC5\u987B\u662F\u975E\u8D1F\u6574\u6570");return r}async function Td(e,n){if(!Number.isSafeInteger(n.page)||n.page<1)throw new de("\u673A\u5668\u4EBA\u76EE\u5F55 page \u5FC5\u987B\u662F\u6B63\u6574\u6570");if(!Number.isSafeInteger(n.pageSize)||n.pageSize<1||n.pageSize>100)throw new de("\u673A\u5668\u4EBA\u76EE\u5F55 pageSize \u5FC5\u987B\u662F 1-100 \u7684\u6574\u6570");let t=n.keyword?.trim()??"",r=n.groupId?.trim()??"";if(r===""!=(n.groupType===void 0))throw new de("\u673A\u5668\u4EBA\u76EE\u5F55 groupId \u4E0E groupType \u5FC5\u987B\u540C\u65F6\u63D0\u4F9B\u6216\u540C\u65F6\u7701\u7565");let o=await D(e,"/robot/search_robot",{page:n.page,page_size:n.pageSize,...t===""?{}:{keyword:t},...r===""||n.groupType===void 0?{}:{group_id:r,group_type:n.groupType},...n.boundOnly===true?{search_type:1}:{}},{responseMode:"strict",method:"POST",...n.clientType===void 0?{}:{headers:{"Client-type":String(n.clientType)}}});if(!o.ok)throw new Un(o.code,o.message);let a=Rd(o.data).map(Ed),s=kd(o.data),d=s===void 0?a.length<n.pageSize:n.page*n.pageSize>=s;return {items:a,exhausted:d}}var Dd={direct:"/friend/undisturb/set",group:"/user_group/user/edit",channel:"/user_radio/user/setting",robot:"/friend/undisturb/set"},Ud={direct:"friend_user_id",group:"group_id",channel:"radio_id",robot:"friend_user_id"};async function Od(e){let n=Dd[e.conversationType],t=Ud[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 D(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 Bd(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 D(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 Nd(e){let{code:n}=await D(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 Kd(e){Fe(e.groupId);let n=await D(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 Gd(e){$e(e.channelId);let n=await D(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 Ld(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 D(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 Hd="1970-01-01 08:00:00",Fd="2000",$d="",On=class extends Error{constructor(){super("\u4F1A\u8BDD\u6536\u85CF Core API \u672A\u914D\u7F6E"),this.name="SessionFavoriteProviderUnavailableError";}},Pe=class extends Error{constructor(n){super(n),this.name="SessionFavoriteMappingError";}};function Y(e){return typeof e=="string"?e:e==null?"":String(e)}function ln(e,n){let t=Y(e).trim();if(t==="")throw new Pe(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function jd(e){let n=typeof e=="number"?e:Number(String(e??"").trim());return n===1?"text":n===2?"image":n===3?"video":n===4?"voice":n===5?"location":n===11?"file":n===28?"mediaAlbum":null}function qd(e){return e==="text"?1:e==="image"?2:e==="video"?3:e==="voice"?4:e==="location"?5:e==="mediaAlbum"?28:11}function Jd(e){if(e==="direct")return 0;if(e==="group")return 1;if(e==="channel")return 2;throw new Pe(`favorite conversation type ${e}`)}function Bn(e,n){return n==="text"||n==="location"?Y(e.content).trim():n==="file"?Y(e.fileName||e.file_name||e.name).trim():n==="mediaAlbum"?Y(e.caption).trim():""}function Vd(e,n){let t=Y(e.group_id).trim(),r=Y(e.radio_id).trim(),o=Number(Y(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=Y(e.from_id).trim(),a=Y(e.to_id).trim(),s=i===n.trim()?a:i;if(s!=="")return {conversationType:"direct",conversationId:s}}return null}function zd(e,n){let t=e.from_user,r=Y(t?.nick_name||t?.nickname||t?.name).trim();return r===""?n:r}function Wd(e,n){let t=Y(e.uu_id).trim(),r=jd(e.content_type),o=Zr(Y(e.msg_body),n);if(t===""||r===null||o===null)return null;let i=Y(e.from_id).trim();return Object.freeze({collectId:t,msgId:Y(e.msg_id).trim(),kind:r,senderId:i,senderName:zd(e,i),avatarUrl:Y(e.from_user?.avatar).trim(),createdAt:Y(e.create_time||e.update_time||e.msg_time).trim(),text:Bn(o,r),imageUrl:xb(r,o),fileName:r==="file"?Bn(o,"file"):"",body:Object.freeze({...o}),conversation:Vd(e,n)})}function Yd(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 Pe("favorite list data \u5FC5\u987B\u662F\u6570\u7EC4\u6216 { list }")}function Qd(){if(typeof crypto>"u"||typeof crypto.randomUUID!="function")throw new Pe("collect uuid \u4E0D\u53EF\u7528");return crypto.randomUUID()}function Xd(e){return Object.freeze({...e,body:Object.freeze({...e.body}),conversation:e.conversation===null?null:Object.freeze({...e.conversation})})}function Zd(e){async function n(t,r,o){if(e.coreClient===void 0)throw new On;let i=await D(e.coreClient,t,r,{method:"POST",responseMode:"strict",prefix:$d});if(!i.ok)throw new z(o,i.code,i.message);return i.data}return {async list(){let t=ln(e.getUserId(),"favorite userId"),r=await n("/api/v1/user/favorite/list",{start_time:Hd,page_size:Fd},"\u4F1A\u8BDD\u6536\u85CF\u5217\u8868");return Object.freeze(Yd(r).flatMap(o=>{let i=Wd(o,t);return i===null?[]:[i]}))},async add(t){let r=ln(e.getUserId(),"favorite userId"),o=(e.createCollectId??Qd)(),i={msg_id:ln(t.messageId,"favorite msgId"),content_type:qd(t.kind),msg_type:Jd(t.conversation.conversationType),msg_time:String(t.createdAt),from_id:ln(t.senderId,"favorite fromId"),to_id:ln(t.peerId,"favorite toId"),is_hide:t.hide===true?"1":"0",uu_id:o,msg_body:Xr(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"),Xd({collectId:o,msgId:t.messageId.trim(),kind:t.kind,senderId:t.senderId.trim(),senderName:t.senderId.trim(),avatarUrl:"",createdAt:String(t.createdAt),text:Bn(t.plainBody,t.kind),imageUrl:xb(t.kind,t.plainBody),fileName:t.kind==="file"?Bn(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 Pe("favorite ids \u4E0D\u80FD\u4E3A\u7A7A");await n("/api/v1/user/favorite/del",{ids:r.join("|")},"\u5220\u9664\u4F1A\u8BDD\u6536\u85CF");}}}async function ci(e,n){let t=W__default.md.md5.create();for(let r=0;r<e.size;r+=1024*1024){n?.throwIfAborted();let o=new Uint8Array(await e.slice(r,r+1024*1024).arrayBuffer());n?.throwIfAborted();for(let i=0;i<o.length;i+=8192)t.update(String.fromCharCode(...o.subarray(i,i+8192)));}return n?.throwIfAborted(),t.digest().toHex()}var di="image/jpeg";function Ot(e,n){return e.type!==""||n===void 0||n===""?e:new Blob([e],{type:n})}function nu(e){let n=0;return {fileMd5:ci,async imageDimensions(t,r,o){let i=await e.prepare({operationId:`core-image-dimensions-${++n}`,generation:0,kind:"image",file:Ot(t,r),includePoster:false},o);return {width:i.width,height:i.height}},async imageThumbnail(t,r,o){let i=await e.prepare({operationId:`core-image-thumbnail-${++n}`,generation:0,kind:"image",file:Ot(t,r?.mimeType),...r?.maxSize===void 0?{}:{maxSize:r.maxSize},...r?.targetBytes===void 0?{}:{targetBytes:r.targetBytes},...r?.maxBytes===void 0?{}:{maxBytes:r.maxBytes},...r?.quality===void 0?{}:{quality:r.quality},...r?.minQuality===void 0?{}:{minQuality:r.minQuality}},o);if(i.posterData===void 0)throw new Error("\u56FE\u7247\u7F29\u7565\u56FE\u751F\u6210\u5931\u8D25\uFF1A\u6267\u884C\u5668\u672A\u8FD4\u56DE poster");return {data:new Uint8Array(i.posterData),width:i.width,height:i.height,mimeType:di}},async videoPoster(t,r,o){let i=await e.prepare({operationId:`core-video-poster-${++n}`,generation:0,kind:"video",file:Ot(t,r?.mimeType),...r?.maxSize===void 0?{}:{maxSize:r.maxSize},...r?.targetBytes===void 0?{}:{targetBytes:r.targetBytes},...r?.maxBytes===void 0?{}:{maxBytes:r.maxBytes},...r?.quality===void 0?{}:{quality:r.quality},...r?.minQuality===void 0?{}:{minQuality:r.minQuality},...r?.atTime===void 0?{}:{atTime:r.atTime}},o);if(i.posterData===void 0)throw new Error("\u89C6\u9891\u5C01\u9762\u751F\u6210\u5931\u8D25\uFF1A\u6267\u884C\u5668\u672A\u8FD4\u56DE poster");return {data:new Uint8Array(i.posterData),width:i.width,height:i.height,duration:Math.round(i.duration??0),mimeType:di}}}}function tu(e){return e>=192&&e<=207&&e!==196&&e!==200&&e!==204}function ru(e){return e!==void 0&&e>=5&&e<=8}function ou(e,n,t){return ru(t)?{width:n,height:e}:{width:e,height:n}}function iu(e,n,t){if(n+6>t)return;for(let[d,c]of [69,120,105,102,0,0].entries())if(e.getUint8(n+d)!==c)return;let r=n+6;if(r+8>t)return;let o=e.getUint16(r,false);if(o!==19789&&o!==18761)return;let i=o===18761;if(e.getUint16(r+2,i)!==42)return;let a=r+e.getUint32(r+4,i);if(a+2>t)return;let s=e.getUint16(a,i);for(let d=0;d<s;d++){let c=a+2+d*12;if(c+12>t)return;if(e.getUint16(c,i)===274)return e.getUint16(c+8,i)}}function au(e,n){let t,r=2;for(;r+4<=n;){if(e.getUint8(r)!==255)return;let o=e.getUint8(r+1);if(o===255){r+=1;continue}if(o===218||o===217)return;let i=e.getUint16(r+2,false);if(i<2)return;let a=r+4,s=r+2+i;if(s>n)return;if(tu(o)){if(a+5>n)return;let d=e.getUint16(a+1,false),c=e.getUint16(a+3,false);return c<=0||d<=0?void 0:ou(c,d,t)}o===225&&t===void 0&&(t=iu(e,a,s)),r=s;}}function su(e,n){if(n<24)return;let t=e.getUint32(16,false),r=e.getUint32(20,false);return t>0&&r>0?{width:t,height:r}:void 0}function cu(e,n){if(n<10)return;let t=e.getUint16(6,true),r=e.getUint16(8,true);return t>0&&r>0?{width:t,height:r}:void 0}function du(e,n){if(n<30)return;let t=e.getUint32(12,false);if(t===1448097824){let r=e.getUint16(26,true)&16383,o=e.getUint16(28,true)&16383;return r>0&&o>0?{width:r,height:o}:void 0}if(t===1448097868){let r=e.getUint32(21,true),o=(r&16383)+1,i=(r>>>14&16383)+1;return {width:o,height:i}}if(t===1448097880){let r=(e.getUint16(24,true)|e.getUint8(26)<<16)+1,o=(e.getUint16(27,true)|e.getUint8(29)<<16)+1;return {width:r,height:o}}}function Nn(e,n,t){return n<t.length?false:t.every((r,o)=>e.getUint8(o)===r)}async function ui(e){if(e.size===0)return;let n=new Uint8Array(await e.slice(0,Math.min(e.size,262144)).arrayBuffer()),t=new DataView(n.buffer,n.byteOffset,n.byteLength),r=n.byteLength;if(Nn(t,r,[255,216,255]))return au(t,r);if(Nn(t,r,[137,80,78,71,13,10,26,10]))return su(t,r);if(Nn(t,r,[71,73,70,56]))return cu(t,r);if(Nn(t,r,[82,73,70,70])&&r>=12&&t.getUint32(8,false)===1464156752)return du(t,r)}var yi=320,uu=12*1024,hi=20*1024,lu=.9,pu=.72,fu=320,mu=10*1024,gu=16*1024,yu=.84,hu=.68,bi=15e3,bu=1;function wu(){if(typeof navigator>"u")return 2;let e=navigator.userAgent;if(/iPad|iPhone|iPod/.test(e)||/Macintosh/.test(e)&&(navigator.maxTouchPoints??0)>1)return 1;let t=navigator.deviceMemory;return t!==void 0&&t<=2?1:2}function li(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 s={resolve:i,reject:a,...o===void 0?{}:{signal:o}};o!==void 0&&(s.onAbort=()=>{let d=t.indexOf(s);d>=0&&t.splice(d,1),a(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));},o.addEventListener("abort",s.onAbort,{once:true})),t.push(s),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 pn(e){if(e?.aborted)throw new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError")}var pi=16777216,Cu=4096;function Pu(e,n){let t=Math.min(1,Cu/Math.max(e,n)),r=Math.max(1,Math.round(e*t)),o=Math.max(1,Math.round(n*t)),i=r*o;if(i>pi){let a=Math.sqrt(pi/i);r=Math.max(1,Math.floor(r*a)),o=Math.max(1,Math.floor(o*a));}return {width:r,height:o}}function Nt(e,n,t){let r=Math.min(1,t/Math.max(e,n));return Pu(Math.max(1,Math.round(e*r)),Math.max(1,Math.round(n*r)))}async function fi(e,n,t,r,o){pn(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 s=await new Promise(d=>i.toBlob(d,"image/jpeg",r));if(pn(o),s===null)throw new Error("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1ACanvas \u7F16\u7801\u8FD4\u56DE\u7A7A\u7ED3\u679C");return await s.arrayBuffer()}function Bt(e,n){if(!Number.isInteger(e)||e<=0)throw new RangeError(`${n}\u5FC5\u987B\u662F\u6B63\u6574\u6570`)}function mi(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 Kt(e,n,t,r,o){let i=r.kind==="video",a=i?"\u89C6\u9891\u5C01\u9762":"\u56FE\u7247\u7F29\u7565\u56FE",s=r.maxSize??(i?fu:yi),d=r.targetBytes??(i?mu:uu),c=r.maxBytes??(i?gu:hi),m=r.quality??(i?yu:lu),w=r.minQuality??(i?hu:pu);if(Bt(s,`${a}\u6700\u5927\u8FB9\u957F`),Bt(d,`${a}\u76EE\u6807\u5B57\u8282\u6570`),Bt(c,`${a}\u6700\u5927\u5B57\u8282\u6570`),mi(m,`${a}\u521D\u59CB\u8D28\u91CF`),mi(w,`${a}\u6700\u4F4E\u8D28\u91CF`),d>c)throw new RangeError(`${a}\u76EE\u6807\u5B57\u8282\u6570\u4E0D\u80FD\u8D85\u8FC7\u6700\u5927\u5B57\u8282\u6570`);if(w>m)throw new RangeError(`${a}\u6700\u4F4E\u8D28\u91CF\u4E0D\u80FD\u9AD8\u4E8E\u521D\u59CB\u8D28\u91CF`);let h=Nt(n,t,s),l=Math.min(200,Math.max(h.width,h.height)),b,I=[...new Set([m,Math.max(w,m-.12),w])];for(let _ of I){let T=await fi(e,h.width,h.height,_,o);if((b===void 0||T.byteLength<b.byteLength)&&(b=T),T.byteLength<=d)return T}let A=Math.max(h.width,h.height);if(A>l&&b!==void 0){let _=Math.sqrt(d/b.byteLength),T=Math.max(l,Math.floor(A*Math.min(.9,Math.max(.5,_))));h=Nt(n,t,T);for(let x of [m,w]){let v=await fi(e,h.width,h.height,x,o);if(v.byteLength<b.byteLength&&(b=v),v.byteLength<=d)return v}}if(b!==void 0&&b.byteLength<=c)return b;throw new Error(`${a}\u751F\u6210\u5931\u8D25\uFF1A\u7F16\u7801\u7ED3\u679C\u8D85\u8FC7 ${c} \u5B57\u8282\u786C\u4E0A\u9650`)}function gi(e,n,t){return new Promise((r,o)=>{let i,a,s,d,c=()=>{i!==void 0&&clearTimeout(i),e.removeEventListener(n,a),e.removeEventListener("error",s),t?.removeEventListener("abort",d);};a=()=>{c(),r();},s=()=>{c(),o(new Error(`\u89C6\u9891\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A${n} \u524D\u89E3\u7801\u9519\u8BEF`));},d=()=>{c(),o(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));},i=setTimeout(()=>{c(),o(new Error(`\u89C6\u9891\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A${n} \u8D85\u65F6`));},bi),e.addEventListener(n,a,{once:true}),e.addEventListener("error",s,{once:true}),t?.addEventListener("abort",d,{once:true});})}async function Iu(e,n){pn(n);let t=e.maxSize??yi,r=e.maxBytes??hi,o=await ui(e.file);pn(n);function i(m,w){return e.file.type==="image/jpeg"&&e.file.size<=r&&Math.max(m,w)<=t}if(o!==void 0){if(e.includePoster===false)return o;if(i(o.width,o.height))return {...o,posterData:await e.file.arrayBuffer()}}let a=o===void 0?void 0:Nt(o.width,o.height,t),s;try{s=a===void 0?await createImageBitmap(e.file):await createImageBitmap(e.file,{resizeWidth:a.width,resizeHeight:a.height,resizeQuality:"high"});}catch(m){if(n?.aborted)throw m}if(s!==void 0)try{pn(n);let m=o??{width:s.width,height:s.height};return e.includePoster===!1?m:o===void 0&&i(s.width,s.height)?{...m,posterData:await e.file.arrayBuffer()}:{...m,posterData:await Kt(s,s.width,s.height,e,n)}}finally{s.close();}let d=URL.createObjectURL(e.file),c=new Image;try{await new Promise((w,h)=>{let l,b,I=()=>{l!==void 0&&clearTimeout(l),c.onload=null,c.onerror=null,n?.removeEventListener("abort",b);};b=()=>{I(),h(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));},c.onload=()=>{I(),w();},c.onerror=()=>{I(),h(new Error("\u56FE\u7247\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1AImage \u89E3\u7801\u9519\u8BEF"));},l=setTimeout(()=>{I(),h(new Error("\u56FE\u7247\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1AImage \u89E3\u7801\u8D85\u65F6"));},bi),n?.addEventListener("abort",b,{once:!0}),c.src=d;});let m=o??{width:c.naturalWidth,height:c.naturalHeight};return e.includePoster===!1?m:i(c.naturalWidth,c.naturalHeight)?{...m,posterData:await e.file.arrayBuffer()}:{...m,posterData:await Kt(c,c.naturalWidth,c.naturalHeight,e,n)}}finally{c.removeAttribute("src"),URL.revokeObjectURL(d);}}async function vu(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 gi(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,s=e.atTime===void 0?a===void 0?0:Math.min(1,a/2):Math.max(0,Math.min(e.atTime,a??e.atTime));s>0&&(r.currentTime=s,await gi(r,"seeked",n));let d=a===void 0?void 0:a,c;try{c=await Kt(r,o,i,e,n);}catch(m){if(n?.aborted||m instanceof RangeError)throw m}return {width:o,height:i,...d===void 0?{}:{duration:d},...c===void 0?{}:{posterData:c}}}finally{r.pause(),r.removeAttribute("src"),r.load(),URL.revokeObjectURL(t);}}function Su(e={}){let n=e.maxConcurrency??wu();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=li(n),r=li(bu),o=false;return {async prepare(i,a){if(o)throw new Error("\u5A92\u4F53\u9884\u89C8\u6267\u884C\u5668\u5DF2\u91CA\u653E");let s=i.kind==="video",d=await(s?r:t).acquire(a);try{return s?await vu(i,a):await Iu(i,a)}finally{d();}},dispose(){o||(o=true,t.dispose(),r.dispose());}}}function Kn(e=6){if(!Number.isSafeInteger(e)||e<1)throw new RangeError("\u5A92\u4F53\u8BF7\u6C42\u5E76\u53D1\u4E0A\u9650\u5FC5\u987B\u4E3A\u6B63\u6574\u6570");let n=0,t=[];function r(){for(;n<e&&t.length>0;){let o=t.shift();if(o.signal?.removeEventListener("abort",o.cancel),o.signal?.aborted){o.cancel();continue}n+=1,o.start();}}return async function(i,a){if(i?.aborted)throw new DOMException("\u5A92\u4F53\u4F20\u8F93\u5DF2\u53D6\u6D88","AbortError");await new Promise((s,d)=>{let c={signal:i,start:s,cancel:()=>{let m=t.indexOf(c);m>=0&&t.splice(m,1),d(new DOMException("\u5A92\u4F53\u4F20\u8F93\u5DF2\u53D6\u6D88","AbortError"));}};i?.addEventListener("abort",c.cancel,{once:true}),t.push(c),r();});try{if(i?.aborted)throw new DOMException("\u5A92\u4F53\u4F20\u8F93\u5DF2\u53D6\u6D88","AbortError");return await a()}finally{n-=1,r();}}}var fn=16*1024*1024,mn=3,Gt=3,Gn=6,Au=5*1024**3,Ln=1e4;function Hn(e,n){if(!Number.isSafeInteger(e)||e<0)throw new K("upload-source-invalid","\u5A92\u4F53\u4E0A\u4F20\u5927\u5C0F\u5FC5\u987B\u4E3A\u975E\u8D1F\u5B89\u5168\u6574\u6570\u5B57\u8282\u6570");let t=n&&e>fn,r=t?Math.ceil(e/fn):1;if(!t&&e>Au)throw new K("upload-size-exceeded","\u5355\u6B21 PUT \u6700\u591A\u652F\u6301 5 GiB\uFF1B\u66F4\u5927\u5BF9\u8C61\u9700\u8981\u663E\u5F0F\u542F\u7528\u5E76\u914D\u7F6E\u5206\u7247\u4E0A\u4F20");if(r>Ln)throw new K("upload-size-exceeded","\u5F53\u524D 16 MiB \u5206\u7247\u7B56\u7565\u6700\u591A\u652F\u6301 10,000 \u7247\uFF08156.25 GiB\uFF09");return {multipart:t,partSize:fn,partCount:r}}function Mu(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]),s=Number(o?.[2]),d=Number(o?.[3]);if(e.status!==206||o===null||![a,s,d].every(Number.isSafeInteger)||d<=0||a!==n||s!==Math.min(t,d-1)||s<a||!/^"[\x21\x23-\x7E\x80-\xFF]*"$/.test(i)||e.headers.get("content-encoding")!==null&&e.headers.get("content-encoding")!=="identity")throw new K("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&&(d!==r.total||i!==r.etag))throw new K("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:s,total:d,etag:i}}function wi(e=true,n,t=fn){if(!Number.isSafeInteger(t)||t<=0)throw new RangeError("\u4E0B\u8F7D\u5206\u6BB5\u5927\u5C0F\u5FC5\u987B\u4E3A\u6B63\u6574\u6570");let r=Kn(Gn);async function o(a,s){if(!a.ok)throw new K("download-range-failed",`\u5A92\u4F53\u4E0B\u8F7D\u5931\u8D25\uFF1AHTTP ${a.status}`);return s.onProgress===void 0||a.body===null?s.preferBlob===true?await a.blob():new Uint8Array(await a.arrayBuffer()):xu(a,s.onProgress,s.expectedBytes,s.preferBlob===true)}async function i(a){let s=new AbortController,d=()=>s.abort(a.signal?.reason);a.signal?.aborted?d():a.signal?.addEventListener("abort",d,{once:true});let c=s.signal,m=[],w=[],h=0,l,b="",I=1,A,_=false,T=u=>{_||(_=true,A=u,s.abort());};function x(u,g){h+=g-(w[u]??0),w[u]=g;let C=l.total;a.onProgress?.({percent:Math.min(99,Math.round(h/C*100)),bytesTransferred:h,bytesTotal:C});}async function v(u){let g=u*t,C=l===void 0?g+t-1:Math.min(g+t-1,l.total-1);return r(c,async()=>{let p=await fetch(a.url,{signal:c,cache:"no-store",headers:{Range:`bytes=${g}-${C}`}});if(u===0&&p.status===200)return n?.record("info","sdk","media","download-range-unavailable",()=>({data:{reason:"server-returned-full-response"}})),m[0]=await o(p,{...a,preferBlob:true}),"single";let y=Mu(p,g,C,l);l===void 0&&(l=y,b=p.headers.get("content-type")??"",n?.record("debug","sdk","media","download-range-started",()=>({data:{bytesTotal:y.total,partSizeBytes:t,concurrency:Gt}})));let S=await o(p,{...a,preferBlob:true,onProgress:f=>x(u,f.bytesTransferred)});if(S.size!==y.end-g+1)throw new K("download-range-invalid","\u5206\u6BB5\u4E0B\u8F7D\u5B57\u8282\u6570\u4E0E Content-Range \u4E0D\u4E00\u81F4");return m[u]=S,x(u,S.size),"range"})}try{let u=await v(0);if(u==="range"){let g=Math.ceil(l.total/t),C=Array.from({length:Math.min(Gt,g-1)},async()=>{try{for(;!c.aborted&&I<g;)await v(I++);}catch(p){T(p);}});if(await Promise.allSettled(C),_)throw A}if(c.aborted)throw new DOMException("\u5A92\u4F53\u4E0B\u8F7D\u5DF2\u53D6\u6D88","AbortError");return u==="single"?m[0]:new Blob(m,{type:b})}catch(u){throw s.abort(),n?.record("warn","sdk","media","download-range-failed",()=>({data:{code:u instanceof K?u.code:"download-failed"}})),u}finally{a.signal?.removeEventListener("abort",d);}}return async function(s){return e&&s.preferBlob===true&&Number.isFinite(s.expectedBytes)&&s.expectedBytes>t?i(s):r(s.signal,async()=>{if(s.onProgress!==void 0&&typeof XMLHttpRequest<"u")return _u(s);let d=await fetch(s.url,s.signal===void 0?{}:{signal:s.signal});return o(d,s)})}}function _u(e){let n=e.preferBlob===true;return new Promise((t,r)=>{let o=new XMLHttpRequest,i=false,a=()=>{},s=()=>{e.signal?.removeEventListener("abort",a),o.onprogress=null,o.onload=null,o.onerror=null,o.onabort=null;},d=c=>{i||(i=true,s(),c());};if(a=()=>{o.abort(),d(()=>r(new DOMException("media download canceled","AbortError")));},o.open("GET",e.url,true),o.responseType=n?"blob":"arraybuffer",o.onprogress=c=>{let m=e.expectedBytes!==void 0&&Number.isFinite(e.expectedBytes)&&e.expectedBytes>0?Math.floor(e.expectedBytes):0,w=c.lengthComputable&&c.total>0?c.total:m,h=w>0?Math.min(99,Math.round(c.loaded/w*100)):0;e.onProgress?.({percent:h,bytesTransferred:c.loaded,bytesTotal:w});},o.onload=()=>{if(o.status<200||o.status>=300){d(()=>r(new Error(`media download \u5931\u8D25\uFF1AHTTP ${o.status}`)));return}let c=o.response;if(n){if(!(typeof Blob<"u"&&c instanceof Blob)){d(()=>r(new Error("media download \u5931\u8D25\uFF1AXHR \u672A\u8FD4\u56DE Blob")));return}d(()=>t(c));return}if(!(c instanceof ArrayBuffer)){d(()=>r(new Error("media download \u5931\u8D25\uFF1AXHR \u672A\u8FD4\u56DE ArrayBuffer")));return}d(()=>t(new Uint8Array(c)));},o.onerror=()=>d(()=>r(new Error("media download \u5931\u8D25\uFF1Anetwork"))),o.onabort=()=>d(()=>r(new DOMException("media download canceled","AbortError"))),e.signal?.aborted){a();return}e.signal?.addEventListener("abort",a,{once:true}),o.send();})}async function xu(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,s=0,d=e.body.pipeThrough(new TransformStream({transform(m,w){s+=m.byteLength;let h=a>0?Math.min(99,Math.round(s/a*100)):0;n({percent:h,bytesTransferred:s,bytesTotal:a}),w.enqueue(m);}})),c=new Response(d,{headers:e.headers});return r?await c.blob():new Uint8Array(await c.arrayBuffer())}var Ci=async(e,n)=>{if(e?.aborted)throw new DOMException("media upload canceled","AbortError");return await n()},Lt="is missing ETag in UploadPart response";function Ht(e){if(typeof e!="object"||e===null)return false;let n=e;return n.name==="NoSuchUpload"||n.Code==="NoSuchUpload"}function Eu(e,n,t){return e instanceof Uint8Array?e.subarray(n,t):e.slice(n,t)}async function Pi(e,n,t){return e.transformPart===void 0?n:await e.transformPart(n instanceof Blob?n:new Blob([n]),t)}function Ii(e,n){let t=new Map,r=n,o=n;function i(){if(e.onProgress===void 0)return;let a=r;for(let c of t.values())a+=c;o=Math.max(o,a);let s=e.sourceBytes,d=s>0?Math.min(99,Math.round(o/s*100)):0;e.onProgress({percent:d,bytesTransferred:o,bytesTotal:s,phase:s>0&&o>=s?"finalizing":"transferring"});}return {trackPart(a,s){t.set(a,s),i();},completePart(a,s){t.delete(a),r+=s,i();},report:i}}function vi(e,n){let t=(o,i)=>{if(i.query?.uploadId!==void 0&&i.query.partNumber===void 0)return;let a=i.query?.partNumber,s=a===void 0?0:Number(a);Number.isFinite(s)&&n.trackPart(s,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 Si(e,n,t=Ci){let r=Ii(n,0),o=vi(e.handler,r);try{await t(n.signal,async()=>{let i=await Pi(n,n.data,1);if(n.signal?.aborted)throw new DOMException("media upload canceled","AbortError");await e.client.send(new e.commands.PutObjectCommand({Bucket:e.bucket,Key:e.key,Body:i,...e.mimeType!==void 0&&e.mimeType!==""?{ContentType:e.mimeType}:{}}),n.signal===void 0?{}:{abortSignal:n.signal});});}finally{o();}}function Ft(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 $t(e){let{target:n,content:t,partSize:r,queueSize:o,runUpload:i=Ci}=e;if(t.signal?.aborted===true)throw new DOMException("media upload canceled","AbortError");let a=Math.max(1,Math.ceil(t.sourceBytes/r));if(a>Ln)throw new Error(`media upload: \u5206\u7247\u6570 ${a} \u8D85\u8FC7 S3 \u4E0A\u9650 ${Ln}\uFF0C\u9700\u8981\u653E\u5927\u5206\u7247\u5927\u5C0F`);let s=Ft(e.resume,n,t.sourceBytes,r),d=new Map;if(s!==void 0)for(let x of s)d.set(x.partNumber,x);let c=s===void 0?"":e.resume.uploadId;if(c===""){let x=await n.client.send(new n.commands.CreateMultipartUploadCommand({Bucket:n.bucket,Key:n.key,...n.mimeType!==void 0&&n.mimeType!==""?{ContentType:n.mimeType}:{}}));if(x.UploadId===void 0||x.UploadId==="")throw new Error("media upload: CreateMultipartUpload \u672A\u8FD4\u56DE UploadId");c=x.UploadId,d.clear();}let m=x=>Math.min(r,t.sourceBytes-(x-1)*r),w=0;for(let x of d.keys())w+=m(x);let h=Ii(t,w),l=vi(n.handler,h),b=()=>({bucket:n.bucket,key:n.key,uploadId:c,partSize:r,sourceBytes:t.sourceBytes,parts:[...d.values()].sort((x,v)=>x.partNumber-v.partNumber)});e.onResumable?.(b()),h.report();let I=new AbortController,A=()=>I.abort();t.signal?.addEventListener("abort",A,{once:true}),t.signal?.aborted&&A();let _=1;async function T(){for(;;){if(I.signal.aborted)return;let x=_;if(_+=1,x>a)return;if(d.has(x))continue;let v=(x-1)*r,u=Math.min(v+r,t.sourceBytes),g=await i(I.signal,async()=>{let C=await Pi(t,Eu(t.data,v,u),x);if(I.signal.aborted)throw new DOMException("media upload canceled","AbortError");return await n.client.send(new n.commands.UploadPartCommand({Bucket:n.bucket,Key:n.key,UploadId:c,PartNumber:x,Body:C}),{abortSignal:I.signal})});if(g.ETag===void 0||g.ETag==="")throw new Error(`media upload: Part ${x} ${Lt}`);d.set(x,{partNumber:x,etag:g.ETag}),h.completePart(x,u-v),e.onResumable?.(b());}}try{let x;if(await Promise.allSettled(Array.from({length:Math.min(mn,a,Math.max(1,o))},async()=>{try{await T();}catch(v){let u=v instanceof Error&&v.name==="AbortError";(x===void 0||!u&&Te(x.cause)!==void 0&&Te(v)===void 0)&&(x={cause:v}),A();}})),x!==void 0)throw x.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:c,MultipartUpload:{Parts:[...d.values()].sort((v,u)=>v.partNumber-u.partNumber).map(v=>({PartNumber:v.partNumber,ETag:v.etag}))}}),t.signal===void 0?{}:{abortSignal:t.signal}),e.onCompleted?.(),t.signal?.aborted)throw new DOMException("media upload canceled","AbortError")}finally{t.signal?.removeEventListener("abort",A),l();}}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(!Ht(t))throw t}}var Ru=3e4;function Ai(e,n){e.handle=async(t,r={})=>{let o=new n({}),i=r.abortSignal,a=new AbortController,s,d=false,c,m=0,w=0,h=()=>{clearTimeout(s),s=setTimeout(()=>{d=true,a.abort();},Ru);},l=()=>a.abort(i?.reason),b=_=>{_.loaded>m&&(m=_.loaded,h()),e.emit("xhr.upload.progress",_,t);},I=_=>{_.loaded>w&&(w=_.loaded,h()),e.emit("xhr.progress",_,t);},A=()=>{c?.readyState===2&&h();};o.on("before.xhr.send",_=>{c=_,c.addEventListener("readystatechange",A),h();}),o.on("xhr.upload.progress",b),o.on("xhr.progress",I),i?.addEventListener("abort",l,{once:true}),i?.aborted&&l();try{let _=await o.handle(t,{...r,abortSignal:a.signal,requestTimeout:0});if(d)throw new K("upload-timeout");if(a.signal.aborted)throw new DOMException("Request aborted","AbortError");if(_.response.statusCode===0)throw new Error("XHR_HTTP_HANDLER_ERROR: Network request failed before receiving an HTTP response");return _}catch(_){throw d?new K("upload-timeout","media upload: \u7F51\u7EDC\u8FDE\u7EED 30 \u79D2\u6CA1\u6709\u63A8\u8FDB",{cause:_}):_}finally{clearTimeout(s),i?.removeEventListener("abort",l),c?.removeEventListener("readystatechange",A),o.removeAllListeners(),o.destroy();}};}function ku(e){if(e instanceof Uint8Array)return e.byteLength;if(typeof Blob<"u"&&e instanceof Blob)return e.size}var Mi="\u5206\u7247\u4E0A\u4F20\u8981\u6C42\u8BE5 bucket \u7684 CORS \u653E\u884C POST\uFF08Create/CompleteMultipartUpload\uFF09\u3001DELETE\uFF08AbortMultipartUpload\uFF09\u5E76 ExposeHeaders: ETag";function Tu(e){return e instanceof Error&&e.message.includes(Lt)}function Du(e,n,t){return t!==void 0?new K("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${Mi}`,{cause:t}):e instanceof K?e:Tu(e)?new K("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 K("multipart-upload-failed",`media upload: \u5206\u7247\u4E0A\u4F20\u5931\u8D25\uFF1B${Mi}`,{cause:e}):e}var Uu=new Set(["upload-source-invalid","upload-resume-unavailable","multipart-etag-missing","multipart-abort-failed"]);function jt(e,n){let t=e?.transport;if(t==null||typeof t!="object"||typeof t.logicalBucket!="string"||t.logicalBucket===""||typeof t.objectName!="string"||t.objectName===""||n!==void 0&&t.logicalBucket!==n)return;let r=t.session;if(r==null||typeof r!="object"||typeof r.bucket!="string"||r.bucket===""||typeof r.key!="string"||r.key===""||typeof r.uploadId!="string"||r.uploadId===""||!Number.isSafeInteger(r.partSize)||r.partSize<=0||!Number.isSafeInteger(r.sourceBytes)||r.sourceBytes<0||!Array.isArray(r.parts))return;let o=new Set;for(let i of r.parts){if(i===null||typeof i!="object"||!Number.isSafeInteger(i.partNumber)||i.partNumber<1||i.partNumber>Math.ceil(r.sourceBytes/r.partSize)||o.has(i.partNumber)||typeof i.etag!="string"||i.etag==="")return;o.add(i.partNumber);}return t}var yn;function _i(){if(yn!==void 0)return yn;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 yn===n&&(yn=void 0),t});return yn=n,n}function xi(e,n){return new K("multipart-abort-failed","Resource upload failed and incomplete parts could not be removed",{cause:new AggregateError([e,n],"Resource upload and multipart cleanup both failed")})}function Ou(e){if(e===void 0)return "";let n=e.lastIndexOf(".");return n>=0?e.slice(n):""}function Bu(e){return globalThis.crypto.randomUUID()+Ou(e)}function Ei(e,n){let t=e.keyPrefix??"";return t===""||n.startsWith(t)?n:`${t}${n}`}function Nu(e,n){let t=Tr(e.getUploadCredentials),r=Kn(Gn);function o(l,b){if(l==="avatar")return e.avatarBucket??"";if(b==="channel"){let I=e.channelBuckets?.[l]??"";if(I!=="")return I}return e.buckets[l]??""}function i(l,b,I,A=false){let{region:_}=b;return Ai(I,l.XhrHttpHandler),new l.S3Client({region:_,maxAttempts:A?1:3,credentials:{accessKeyId:b.accessKeyId,secretAccessKey:b.secretAccessKey,sessionToken:b.sessionToken,...b.expiresAtSeconds===void 0?{}:{expiration:new Date(b.expiresAtSeconds*1e3)}},useAccelerateEndpoint:(e.useAccelerateEndpoint??true)&&!_.toLowerCase().startsWith("cn-"),requestChecksumCalculation:"WHEN_REQUIRED",requestHandler:I})}async function a(l,b,I,A,_,T,x,v){let{multipart:u,partSize:g}=Hn(x,e.multipartTransfer===true&&e.multipartUpload!==false),C=new l.XhrHttpHandler({}),p=i(l,_,C,b.recoveryManaged===true),y={client:p,handler:C,commands:l.commands,bucket:_.bucket,key:T,...b.mimeType!==void 0&&b.mimeType!==""?{mimeType:b.mimeType}:{}},S={data:b.data,sourceBytes:x,...b.onProgress===void 0?{}:{onProgress:b.onProgress},...b.signal===void 0?{}:{signal:b.signal},...b.transformPart===void 0?{}:{transformPart:b.transformPart}},f=b.resume,P=jt(f),E=u&&P?.logicalBucket===I&&Ft(P.session,y,x,g)!==void 0,R=E?P?.session:void 0,O=U=>{R=U;let N=0;for(let B of U.parts)N+=Math.min(U.partSize,U.sourceBytes-(B.partNumber-1)*U.partSize);b.onResumable?.({bytesUploaded:N,transport:{logicalBucket:I,objectName:A,session:U}});},M=()=>{R=void 0,delete b.resume,b.onResumeInvalidated?.();},k;try{if(v.mode==="retain"&&f!==void 0&&!E)throw new K("upload-resume-unavailable","media upload: \u4E0A\u6B21\u4E0A\u4F20\u76EE\u6807\u6216\u7EED\u4F20\u8BB0\u5F55\u5DF2\u5931\u6548\uFF0C\u9700\u8981\u786E\u8BA4\u540E\u91CD\u65B0\u5B8C\u6574\u4E0A\u4F20");if(P!==void 0&&!E){try{P.logicalBucket===I?await gn(y,P.session):await w(f);}catch(N){throw v.cleanupFailed=!0,xi(v.retryCause,N)}delete b.resume;}if(b.signal?.aborted)throw new DOMException("media upload canceled","AbortError");if(!u){await Si(y,S,r);return}let U=R;try{await $t({target:y,content:S,partSize:g,queueSize:mn,runUpload:r,...U===void 0?{}:{resume:U},onResumable:O,onCompleted:M});}catch(N){if(b.signal?.aborted||!Ht(N)||v.mode==="discard"&&U===void 0)throw N;if(v.mode==="retain")throw new K("upload-resume-unavailable","media upload: \u4E0A\u6B21\u4E0A\u4F20\u5DF2\u65E0\u6CD5\u7EE7\u7EED\uFF0C\u9700\u8981\u786E\u8BA4\u540E\u91CD\u65B0\u5B8C\u6574\u4E0A\u4F20",{cause:N});R=void 0,await $t({target:y,content:S,partSize:g,queueSize:mn,runUpload:r,onResumable:O,onCompleted:M});}}catch(U){if(v.mode==="retain"&&b.signal?.aborted===true&&!["offline","paused","page-preserve"].includes(b.signal.reason)&&R!==void 0)try{await gn(y,R),M();}catch(N){k=N;}throw v.cleanupFailed?U:Du(U,u,k)}finally{p.destroy();}}async function s(l,b,I,A={mode:"retain"}){let _=o(b,I);if(_==="")throw new K("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 T=ku(l.data);if(T===void 0)throw new K("upload-source-invalid","media upload: \u4E0A\u4F20\u5185\u5BB9\u5FC5\u987B\u662F Uint8Array \u6216 Blob");Hn(T,e.multipartTransfer===true&&e.multipartUpload!==false);let x=await _i();if(A.mode==="discard"&&l.signal?.aborted)throw new DOMException("media upload canceled","AbortError");let v=jt(l.resume,_)?.objectName??Bu(l.filename),u={...l,onResumable:C=>{u.resume=C,l.onResumable?.(C);},onResumeInvalidated:()=>{delete u.resume,l.onResumeInvalidated?.();}},g;try{g=await t.resolve(_,l.forceRefreshCredentials===!0?{forceRefresh:!0}:void 0);let C=Ei(g,v);try{await a(x,u,_,v,g,C,T,A);}catch(p){if(l.signal?.aborted||l.recoveryManaged===!0||p instanceof K&&Uu.has(p.code))throw p;A.retryCause=p,g=await t.resolve(_,{forceRefresh:!0}),C=Ei(g,v),await a(x,u,_,v,g,C,T,A);}if(l.signal?.aborted)throw new DOMException("media upload canceled","AbortError");return l.onProgress?.({percent:100,bytesTransferred:T,bytesTotal:T,phase:"finalizing"}),{url:`${g.dnsPoint}/${C}`}}catch(C){let p=jt(u.resume);if(A.mode==="discard"&&!A.cleanupFailed&&p!==void 0&&g!==void 0){let S=new x.XhrHttpHandler({}),f=i(x,g,S);try{await gn({client:f,commands:x.commands},p.session);}catch(P){throw xi(C,P)}finally{f.destroy();}}let y=Te(C);throw y!==void 0&&l.onFailure?.(y),C instanceof K&&(C.code==="upload-resume-unavailable"?l.onFailure?.("resume-unavailable"):C.code==="multipart-abort-failed"&&l.onFailure?.("cleanup-unconfirmed")),C}}function d(l){return s(l,l.kind,l.conversationType)}function c(l){return s({data:l.data,...l.filename===void 0?{}:{filename:l.filename},...l.mimeType===void 0?{}:{mimeType:l.mimeType},...l.signal===void 0?{}:{signal:l.signal},...l.onProgress===void 0?{}:{onProgress:l.onProgress}},l.kind,void 0,{mode:"discard"})}function m(l){return s(l,"avatar")}async function w(l){let b=l.transport;if(b?.session===void 0||b.session.uploadId==="")return;let I=await _i(),A=await t.resolve(b.logicalBucket),_=new I.XhrHttpHandler({}),T=i(I,A,_);try{await gn({client:T,commands:I.commands},b.session);}finally{T.destroy();}}let h=wi(e.multipartTransfer===true&&e.rangeDownload!==false,n);return {upload:d,uploadAvatar:m,uploadResource:c,download:h,abandonUpload:w}}var q=class extends Error{constructor(t,r){super(`Media upload recovery ${t}`,r);this.reason=t;this.name="MediaUploadRecoveryError",this.code=`IM_MEDIA_UPLOAD_RECOVERY_${t.toUpperCase()}`;}reason;code};function X(){throw new q("invalid")}function Ie(e){return typeof e!="object"||e===null||Array.isArray(e)?X():e}function ye(e,n=4096){return typeof e!="string"||e.length===0||e.length>n?X():e}function Ee(e,n=0){return typeof e!="number"||!Number.isSafeInteger(e)||e<n?X():e}function qt(e){return typeof e!="number"||!Number.isFinite(e)||e<0?X():e}function Fn(e,n=4096){if(e!==void 0)return typeof e!="string"||e.length>n?X():e}function $n(e){let n=Ie(e);if(n.version!==1||n.kind!=="video"&&n.kind!=="file"||typeof n.encrypted!="boolean")return X();let t=Ie(n.ref);if(t.conversationType!=="direct"&&t.conversationType!=="group"&&t.conversationType!=="channel")return X();let r=Ie(n.source),o=Ee(r.size,1),i=ye(r.sha256,64);if(!/^[a-f0-9]{64}$/.test(i))return X();let a=Ie(n.resume),s=Ie(a.transport),d=Ie(s.session),c=Ee(d.partSize,8);if(c%8!==0||Ee(d.sourceBytes,1)!==o||!Array.isArray(d.parts)||d.parts.length>1e4)return X();let m=new Set,w=0,h=d.parts.map(x=>{let v=Ie(x),u=Ee(v.partNumber,1);return u>Math.ceil(o/c)||m.has(u)?X():(m.add(u),w+=Math.min(c,o-(u-1)*c),{partNumber:u,etag:ye(v.etag,1024)})});if(Ee(a.bytesUploaded)!==w)return X();let l;if(n.encrypted){if(!(n.teaKey instanceof Uint8Array)||n.teaKey.length!==16)return X();l=new Uint8Array(n.teaKey);}else if(n.teaKey!==void 0)return X();let b;if(n.preview!==void 0){let x=Ie(n.preview),v;if(x.thumbData!==void 0){if(!(x.thumbData instanceof Uint8Array)||x.thumbData.byteLength>16*1024)return X();v=new Uint8Array(x.thumbData);}b={width:qt(x.width),height:qt(x.height),...x.duration===void 0?{}:{duration:qt(x.duration)},...v===void 0?{}:{thumbData:v}};}if(n.filesAlbum!==void 0&&typeof n.filesAlbum!="boolean")return X();let I=Fn(r.filename),A=Fn(r.mimeType,256),_=Fn(n.caption,16384),T=Fn(n.refMessageId);return {version:1,ref:{conversationType:t.conversationType,conversationId:ye(t.conversationId)},messageId:ye(n.messageId),kind:n.kind,createdAt:Ee(n.createdAt),savedAt:Ee(n.savedAt),encrypted:n.encrypted,source:{size:o,sha256:i,...I===void 0?{}:{filename:I},...A===void 0?{}:{mimeType:A}},...l===void 0?{}:{teaKey:l},...b===void 0?{}:{preview:b},..._===void 0?{}:{caption:_},...T===void 0?{}:{refMessageId:T},...n.filesAlbum===void 0?{}:{filesAlbum:n.filesAlbum},resume:{bytesUploaded:w,transport:{logicalBucket:ye(s.logicalBucket),objectName:ye(s.objectName),session:{bucket:ye(d.bucket),key:ye(d.key),uploadId:ye(d.uploadId),partSize:c,sourceBytes:o,parts:h}}}}}function je(e){if(e?.aborted)throw new DOMException("Source fingerprint cancelled","AbortError")}async function Ri(e,n){je(n);let t=e instanceof Uint8Array?e.byteLength:e.size,r=await createSHA256();je(n);let o=1024*1024,i=performance.now();for(let a=0;a<t;a+=o){je(n);let s=e instanceof Uint8Array?e.subarray(a,a+o):new Uint8Array(await e.slice(a,a+o).arrayBuffer());je(n),r.update(s),performance.now()-i>=8&&(await new Promise(d=>setTimeout(d,0)),je(n),i=performance.now());}return je(n),{size:t,sha256:r.digest("hex")}}var Lu=1440*60*1e3,Hu=3;function ve(e,n){if(!e.conversationId||!n||!["direct","group","channel"].includes(e.conversationType))throw new q("invalid");return JSON.stringify([e.conversationType,e.conversationId,n])}function Fu(e){let n=e.namespaceFactory.forAccount(e.accountId),t=n.name("ephemeral","media-upload-recovery","indexed-db"),r=n.name("ephemeral","media-upload-recovery","owner"),o=e.locks===void 0?globalThis.navigator?.locks:e.locks,i=e.now??Date.now,a,s=Promise.resolve(),d=false,c,m=false,w=false,h=0,l=0,b,I,A,_=new Map,T=new WeakMap,x=0;function v(){if(d)throw new q("unavailable")}function u(){T=new WeakMap,x+=1;}function g(M,k){if(v(),M?.aborted)throw new DOMException("Source fingerprint cancelled","AbortError");if(k!==x)throw new q("unavailable")}function C(){return a??=openDB(t,1,{upgrade(M){M.createObjectStore("uploads");},blocking(){O();},terminated(){d=true,u(),y();}}),a}function p(M,k=false){try{if(v(),k&&(!m||w))throw new q("unavailable")}catch(B){return Promise.reject(B)}let U=l,N=s.then(async()=>{if(k&&(!m||U!==l))throw new q("unavailable");try{return await M()}catch(B){throw B instanceof q?B:new q("storage",{cause:B})}});return s=N.then(()=>{},()=>{}),N}function y(){!m||w||(w=true,s.then(()=>{m=false,h=0,l+=1,b?.(),b=void 0;}));}async function S(M){if(v(),M?.aborted)throw new DOMException("Recovery lease cancelled","AbortError");if(!o||w)throw new q("unavailable");if(m||(I===void 0&&(I=new Promise((N,B)=>{try{A=o.request(r,{mode:"exclusive",ifAvailable:!0},async $=>{if(!$||d){B(new q("unavailable"));return}m=!0,l+=1;let Z=new Promise(ae=>{b=ae;});N(),await Z;}),A.catch(()=>B(new q("unavailable"))).finally(()=>{I=void 0,w=!1;});}catch{B(new q("unavailable"));}})),await I),d||w||M?.aborted)throw h===0&&y(),M?.aborted?new DOMException("Recovery lease cancelled","AbortError"):new q("unavailable");h+=1;let k=l,U=false;return {release(){U||k!==l||(U=true,h-=1,h===0&&y());}}}function f(M){return i()-M.savedAt>=Lu}function P(M){let k=ve(M.ref,M.messageId),U=Math.min(_.get(k)??M.savedAt,M.savedAt);return _.set(k,U),U}async function E(){let k=(await C()).transaction("uploads",m&&!w?"readwrite":"readonly");try{let U=await k.store.getAll(),N=[];for(let B of U){let $=$n(B);P($),f($)?k.mode==="readwrite"&&await k.store.delete(ve($.ref,$.messageId)):N.push($);}return await k.done,N}catch(U){try{k.abort();}catch{}throw await k.done.catch(()=>{}),U}}function R(M){let k;try{k=$n(M);}catch(U){return Promise.reject(U)}return p(async()=>{let N=(await C()).transaction("uploads","readwrite");try{let B=ve(k.ref,k.messageId),$=await N.store.getAll(),Z=0,ae;for(let Jn of $){let pe=$n(Jn);P(pe),f(pe)?await N.store.delete(ve(pe.ref,pe.messageId)):(Z+=1,ve(pe.ref,pe.messageId)===B&&(ae=pe));}if(ae){if(ae.source.sha256!==k.source.sha256||ae.source.size!==k.source.size||ae.kind!==k.kind||ae.encrypted!==k.encrypted||ae.teaKey?.some((Jn,pe)=>Jn!==k.teaKey?.[pe]))throw new q("invalid");k.savedAt=ae.savedAt;}else if(Z>=Hu)throw new q("capacity");let Xt=_.get(B);if(Xt!==void 0&&(k.savedAt=Math.min(Xt,k.savedAt)),f(k)||k.savedAt>i())throw new q("invalid");await N.store.put(k,B),await N.done,P(k);}catch(B){try{N.abort();}catch{}throw await N.done.catch(()=>{}),B}},true)}async function O(){return c||(d=true,u(),c=(async()=>{await s;try{a&&(await a).close();}finally{y(),await A;}})(),c)}return {get:(M,k)=>p(async()=>{let U=ve(M,k);return (await E()).find(N=>ve(N.ref,N.messageId)===U)}),list:()=>p(E),save:R,remove:(M,k)=>p(async()=>{let U=ve(M,k);await(await C()).delete("uploads",U),_.delete(U);},true),clear:()=>(u(),p(async()=>{await(await C()).clear("uploads"),_.clear();},true)),drain:()=>s,fingerprint:async(M,k)=>{let U=x;g(k,U);let N=M instanceof Blob?M:void 0,B=N===void 0?void 0:T.get(N);if(B!==void 0)return {...B};let $=await Ri(M,k);g(k,U);let Z={size:$.size,sha256:$.sha256};return N!==void 0&&T.set(N,Z),{...Z}},acquireLease:S,close:O}}function $u(e,n={}){let t=n.locks!==void 0?n.locks:globalThis.navigator?.locks,r=n.createChannel!==void 0?n.createChannel:typeof globalThis.BroadcastChannel=="function"?w=>new BroadcastChannel(w):void 0,o=typeof globalThis.addEventListener=="function"?globalThis:void 0,i=n.pageLifecycleTarget!==void 0?n.pageLifecycleTarget:o,a,s=0;function d(w){try{e.onError(w);}catch{}}function c(w,h=false,l="stopped"){if(a===w&&!h&&(a=void 0),w.resolveReady(false),w.closed)return;w.closed=true,w.controller.abort();let b=[],I=T=>{try{T();}catch(x){b.push(x);}};for(let T of w.cleanups.splice(0))I(T);I(()=>w.channel.close());let A=w.release;w.release=void 0;let _=w.owned;w.owned=false;try{let T=_?e.onChange(!1,l):void 0;Promise.resolve(T).then(()=>A?.(),d);}catch(T){d(T);}for(let T of b)d(T);}function m(w,h){c(w,true),d(h);}return {start(w){if(a?.key===w)return a.ready;let h=++s;if(a&&c(a),h!==s)return Promise.resolve(false);if(!w||!t||!r)return d(new Error("Browser connection ownership requires a key, Web Locks and BroadcastChannel")),Promise.resolve(false);let l;try{l=r(`im-connection:${w}`);}catch(x){return d(x),Promise.resolve(false)}let b,I=new Promise(x=>{b=x;}),A={key:w,channel:l,cleanups:[],owned:false,closed:false,ready:I,resolveReady:b,controller:new AbortController,claim:{startedAt:Date.now(),id:globalThis.crypto.randomUUID()}};a=A;let _=x=>{if(a!==A||A.closed||typeof x.data!="object"||x.data===null)return;let v=x.data;v.type==="session-ended"?c(A):v.type==="takeover"&&typeof v.startedAt=="number"&&Number.isFinite(v.startedAt)&&typeof v.id=="string"&&v.id!==A.claim.id&&(v.startedAt>A.claim.startedAt||v.startedAt===A.claim.startedAt&&v.id>A.claim.id?c(A,true,"replaced"):l.postMessage({type:"takeover",...A.claim}));},T=x=>{a===A&&x.persisted===true&&c(A);};try{i&&(A.cleanups.push(()=>i.removeEventListener("pagehide",T)),i.addEventListener("pagehide",T)),A.cleanups.push(()=>l.removeEventListener("message",_)),l.addEventListener("message",_);let x=setTimeout(()=>m(A,new Error("Browser IM takeover timed out while waiting for the previous page to close")),15e3);A.cleanups.push(()=>clearTimeout(x)),t.request(`im-connection:${w}`,{mode:"exclusive",signal:A.controller.signal},async u=>{if(a!==A||A.closed||!u){A.resolveReady(!1);return}let g=new Promise(C=>{A.release=C;});A.owned=!0,clearTimeout(x);try{await e.onChange(!0);}catch(C){m(A,C);}A.resolveReady(a===A&&A.owned),await g;}).catch(u=>{a===A&&!A.closed&&m(A,u);}),l.postMessage({type:"takeover",...A.claim});}catch(x){m(A,x);}return A.ready},stop(){s++,a&&c(a);},terminate(){s++;let w=a;if(w)try{w.closed||w.channel.postMessage({type:"session-ended"});}catch(h){d(h);}finally{c(w);}},get owned(){return a?.owned??false}}}function ju(){let e=globalThis;return typeof e.addEventListener=="function"&&typeof e.removeEventListener=="function"?e:void 0}function qu(e,n={}){let t=n.target!==void 0?n.target:ju(),r=n.visibilitySource!==void 0?n.visibilitySource:globalThis.document,o=n.pageLifecycleSource!==void 0?n.pageLifecycleSource:t,i=false,a=()=>e.onOnline?.(),s=()=>e.onOffline?.(),d=()=>{r!=null&&r.visibilityState==="visible"&&e.onVisible?.();},c=()=>e.onPageHide?.(),m=()=>e.onPageShow?.();return {start(){i||(i=true,t!=null&&(t.addEventListener("online",a),t.addEventListener("offline",s)),r?.addEventListener("visibilitychange",d),o!=null&&(o.addEventListener("pagehide",c),o.addEventListener("pageshow",m)));},stop(){i&&(i=false,t!=null&&(t.removeEventListener("online",a),t.removeEventListener("offline",s)),r?.removeEventListener("visibilitychange",d),o!=null&&(o.removeEventListener("pagehide",c),o.removeEventListener("pageshow",m)));},get running(){return i}}}var zu=15,Wu=20,Yu=8*1024*1024,Qu=2*1024*1024,Xu=1440*60*1e3,Zu=2*1024*1024*1024,ki=1024*1024*1024,el=512*1024*1024,nl=256*1024*1024,tl=64*1024,Jt="channel:list-version",Ti="schema:conversation-key-v1",Di="schema:message-server-order-v1",Ui="schema:mini-program-game-preview-v1",Oi="im:membership-reset-sort-keys",Vt="default",Re="\uFFFF";function Bi(e){if(!(e===void 0||!/^\d+$/.test(e)))return e.replace(/^0+(?=\d)/,"")}function rl(e,n){let t=Bi(e),r=Bi(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 hn(e){return `conversation:${Ha$1(e)}`}function zt(e,n){return `${Ha$1(e)}\0${n}`}function ol(e){let n=Ha$1(e.conversation);return {...e,key:zt(e.conversation,e.messageId),conversationKey:n,conversation:{...e.conversation},sContent:e.sContent.slice()}}function il(e){let{key:n,conversationKey:t,...r}=e;return {...r,conversation:{...r.conversation},sContent:r.sContent.slice()}}function Ki(e){return {...e,conversationKey:Ha$1(Ea$1(e))}}function ke(e){let{conversationKey:n,...t}=e;return t}function jn(e){return {...e,id:Ha$1(Fa$1(e)),conversationId:e.id}}function Wt(e){if(e.conversationId===void 0)return e;let{conversationId:n,...t}=e;return {...t,id:n}}function Yt(e){return e.conversationType===void 0?e:{...e,conversationId:Ha$1(e),storageConversationId:e.conversationId}}function qn(e){if(e.storageConversationId===void 0)return e;let{storageConversationId:n,...t}=e;return {...t,conversationId:n}}function Gi(e){return {...e,conversationId:Ha$1(Ga$1(e)),storageConversationId:e.conversationId}}function Qt(e){if(e.storageConversationId===void 0)return e;let{storageConversationId:n,...t}=e;return {...t,conversationId:n}}function al(e){return {...e,conversationKey:Ha$1(e.ref)}}function sl(e){let{conversationKey:n,...t}=e;return t}function cl(e){return typeof e=="string"?e:e.conversationId}function bn(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 dl(e){let n=e.transaction(["messages","sessions","readStates","pinnedMessages","meta"],"readwrite");try{let t=n.objectStore("meta");if((await t.get(Ti))?.value===!0){await n.done;return}let r=n.objectStore("messages");for(let d of await r.getAll())d.conversationKey===void 0&&await r.put(Ki(d));let o=n.objectStore("sessions"),i=new Map;for(let d of await o.getAll()){if(d.conversationId!==void 0)continue;let c=Wt(d);i.set(c.id,c.type),await o.put(jn(c)),await o.delete(d.id);}let a=n.objectStore("readStates");for(let d of await a.getAll()){if(d.storageConversationId!==void 0)continue;let c=d.conversationType??i.get(d.conversationId);if(c===void 0)continue;let m={...d,conversationType:c};await a.put(Yt(m)),await a.delete(d.conversationId);}let s=n.objectStore("pinnedMessages");for(let d of await s.getAll()){if(d.storageConversationId!==void 0)continue;let c=Qt(d);await s.put(Gi(c)),await s.delete(d.conversationId);}await t.put({key:Ti,value:!0}),await n.done;}catch(t){try{n.abort();}catch{}try{await n.done;}catch{}throw t}}async function ul(e){let n=e.transaction(["messages","readStates","meta"],"readwrite");try{let t=n.objectStore("meta");if((await t.get(Di))?.value===!0){await n.done;return}let r=n.objectStore("readStates"),o=await r.getAll(),i=new Map;for(let m of o){let w=qn(m);w.conversationType==="channel"&&w.readCursorSortKey!==void 0&&w.readCursor!==""&&i.set(Ha$1(w),{cursor:w.readCursor});}let a=new Map,s=n.objectStore("messages"),d=await s.openCursor();for(;d!==null;){let m=d.value,w=Ha$1(Ea$1(m)),h=l(m),l$1=i.get(w);if(l$1!==void 0&&m.extensions?.historyCursor===l$1.cursor&&(l$1.sortKey=h),h!==m.sortKey){let b=a.get(w);b===void 0&&(b=new Map,a.set(w,b)),b.set(m.sortKey,h),await d.update({...m,sortKey:h});}d=await d.continue();}for(let m of o){let w=qn(m);if(w.conversationType===void 0)continue;let h=Ha$1(w),l=i.get(h)?.sortKey??(w.readCursorSortKey===void 0?void 0:a.get(h)?.get(w.readCursorSortKey));if(l===void 0&&w.readCursorSortKey!==void 0&&w.conversationType!=="channel"&&w.readCursor!==""){let b=await s.get(w.readCursor);b!==void 0&&Ha$1(Ea$1(b))===h&&(l=b.sortKey);}l!==void 0&&l!==w.readCursorSortKey&&await r.put({...m,readCursorSortKey:l});}let c=await t.get(Oi);if(Array.isArray(c?.value)){let m=!1,w=c.value.map(h=>{if(!Array.isArray(h)||h.length!==2||typeof h[0]!="string"||typeof h[1]!="string")return h;let l=a.get(h[0])?.get(h[1]);return l===void 0?h:(m=!0,[h[0],l])});m&&await t.put({key:Oi,value:w});}await t.put({key:Di,value:!0}),await n.done;}catch(t){try{n.abort();}catch{}try{await n.done;}catch{}throw t}}async function ll(e){let n=e.transaction(["messages","meta"],"readwrite");try{let t=n.objectStore("meta");if((await t.get(Ui))?.value===!0){await n.done;return}let o=await n.objectStore("messages").openCursor();for(;o!==null;){let i=o.value.body?.miniProgram;o.value.contentType==="miniProgram"&&i!==void 0&&s(i)&&await o.delete(),o=await o.continue();}await t.put({key:Ui,value:!0}),await n.done;}catch(t){try{n.abort();}catch{}try{await n.done;}catch{}throw t}}function Ni(e){return `${e.kind}:${encodeURIComponent(e.messageId)}:${e.resourceVersion}`}async function wn(e,n){let t=e.done;t.catch(()=>{});try{let r=await n();return await t,r}catch(r){try{e.abort();}catch{}throw await t.catch(()=>{}),r}}async function pl(e,n){let t=n.namespaceFactory.forAccount(e).name("durable","storage","indexed-db");typeof indexedDB>"u"||await deleteDB(t);}function fl(e){let{namespaceFactory:n}=e,t=null,r=null,o=0,i=Promise.resolve(),a=Promise.resolve(),s=0,d=e.mediaAssetCache?.maxPendingWriteBytes??nl;if(!Number.isSafeInteger(d)||d<=0)throw new RangeError("\u5A92\u4F53\u8D44\u4EA7\u7F13\u5B58\u5F85\u5199\u5185\u5B58\u9884\u7B97\u5FC5\u987B\u662F\u6B63\u6574\u6570");function c(){if(t===null)throw new Error("ImStoragePort \u672A open\uFF1A\u8BF7\u5148 open({ namespace }) \u518D\u8BFB\u5199");return t}function m(u){let g=o,C=r,p=()=>{if(g!==o||C!==r)throw new Error("\u6700\u8FD1\u5386\u53F2\u7F13\u5B58\u64CD\u4F5C\u5DF2\u5931\u6548\uFF1A\u8D26\u53F7\u6216\u5B58\u50A8\u5DF2\u6539\u53D8");c();},y=i.then(async()=>{p();let S=await u();return p(),S});return i=y.then(()=>{},()=>{}),y}function w(u,g){return u.version!==2||!Number.isFinite(u.fetchedAt)||u.fetchedAt<0||g-u.fetchedAt>=Xu}async function h(u){if(!Number.isSafeInteger(u.byteLength)||u.byteLength<0)throw new Error("\u6700\u8FD1\u5386\u53F2\u7F13\u5B58 byteLength \u5FC5\u987B\u662F\u975E\u8D1F\u5B89\u5168\u6574\u6570");let g=Date.now();if(u.byteLength>Qu||w(u,g))return false;let C=Ha$1(u.conversation),p=c().transaction("recentHistoryPages","readwrite");return wn(p,async()=>{let y=await p.store.getAll(),S=[];for(let R of y)w(R,g)?await p.store.delete(R.conversationKey):R.conversationKey!==C&&S.push(R);let f={...u,conversationKey:C};S.push(f),S.sort((R,O)=>R.fetchedAt-O.fetchedAt||R.conversationKey.localeCompare(O.conversationKey));let P=S.reduce((R,O)=>R+O.byteLength,0),E=[];for(;S.length>Wu||P>Yu;){let R=S.shift();E.push(R),P-=R.byteLength;}if(E.includes(f))return !1;await p.store.put(f);for(let R of E)await p.store.delete(R.conversationKey);return !0})}async function l(u){if(typeof u!="string")return;let g=IDBKeyRange.bound([u,""],[u,Re]),C=(await c().transaction("messages").store.index("by_conv_sort").getAll(g)).map(ke);bn(u,C);}function b(u){let g=a.then(u,u);return a=g.then(()=>{},()=>{}),g}function I(u,g){if(u!==o||g===null||g!==r)throw new Error("\u5A92\u4F53\u8D44\u4EA7\u7F13\u5B58\u8D26\u53F7\u4EE3\u9645\u5DF2\u5931\u6548")}function A(){return Math.max(0,Math.floor(e.mediaAssetCache?.now?.()??Date.now()))}async function _(u){let g=e.mediaAssetCache?.estimateStorage??(async()=>typeof navigator>"u"||navigator.storage?.estimate===void 0?{}:await navigator.storage.estimate());try{let{quota:C,usage:p}=await g();if(C===void 0||!Number.isFinite(C)||C<=0)return ki;let y=u.reduce((P,E)=>P+E.byteLength,0),S=Math.max(0,(p??0)-y),f=Math.max(el,Math.floor(C*.2));return Math.max(0,Math.min(Zu,Math.floor(C-S-f)))}catch{return ki}}async function T(u,g,C){if(u.length===0)return;I(g,C);let p=c().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all(u.flatMap(y=>[p.objectStore("mediaAssets").delete(y),p.objectStore("mediaAssetMeta").delete(y)])),await p.done;}async function x(u,g,C,p){I(u,g);let y=c(),S=e.mediaAssetCache?.strategies;if(S===void 0)return;let f=p??await y.getAll("mediaAssetMeta");I(u,g);let P=new Set;for(let M of S.list()){let k=f.filter(B=>B.kind===M.kind).sort((B,$)=>B.lastAccessedAt-$.lastAccessedAt),U=k.reduce((B,$)=>B+$.byteLength,0),N=k.length;for(let B of k){if(U<=M.softMaxBytes&&N<=M.maxEntries)break;P.add(B.key),U-=B.byteLength,N-=1;}}let E=f.filter(M=>!P.has(M.key)).sort((M,k)=>M.lastAccessedAt-k.lastAccessedAt),R=Math.max(0,Math.min(await _(f),C??Number.POSITIVE_INFINITY)),O=E.reduce((M,k)=>M+k.byteLength,0);for(let M of E){if(O<=R)break;P.add(M.key),O-=M.byteLength;}await T([...P],u,g);}async function v(u,g,C){I(g,C);let p=e.mediaAssetCache?.strategies.resolve(u.kind);if(p===void 0)return "skipped";let y=u.blob,S=y.size,f=await c().getAll("mediaAssetMeta"),P=await _(f);if(I(g,C),S===0||S>p.maxEntryBytes||P<=0||S>Math.floor(P/2))return "skipped";let E=Ni(u),R=A(),O=f.find(B=>B.key===E),M={key:E,kind:u.kind,messageId:u.messageId,resourceVersion:u.resourceVersion,byteLength:S,...u.mimeType===void 0?{}:{mimeType:u.mimeType},createdAt:O?.createdAt??R,lastAccessedAt:R},k=async()=>{I(g,C);let B=c().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all([B.objectStore("mediaAssets").put({key:E,blob:y}),B.objectStore("mediaAssetMeta").put(M)]),await B.done;},U=false;try{await k();}catch(B){if(!(B instanceof DOMException)||B.name!=="QuotaExceededError")throw B;U=true,await x(g,C,Math.max(0,P-S)),await k();}let N=O===void 0?[...f,M]:f.map(B=>B.key===E?M:B);return await x(g,C,void 0,U?void 0:N),I(g,C),await c().get("mediaAssets",E)===void 0?"skipped":"stored"}return {recentHistoryCache:{get:u=>m(async()=>{let g=Ha$1(u),C=c().transaction("recentHistoryPages","readwrite");return wn(C,async()=>{let p=await C.store.get(g);if(p===void 0)return null;if(w(p,Date.now()))return await C.store.delete(g),null;let{conversationKey:y,...S}=p;return S})}),async put(u){let g=structuredClone(u);return m(()=>h(g))},delete:u=>m(async()=>{await c().delete("recentHistoryPages",Ha$1(u));}),clear:()=>m(async()=>{await c().clear("recentHistoryPages");})},async open({namespace:u}){if(t!==null&&r===u)return;t!==null&&(t.close(),t=null),r=u;let g=++o,C=n.forAccount(u).name("durable","storage","indexed-db"),p=await openDB(C,zu,{upgrade(y,S,f,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 E=y.createObjectStore("messages",{keyPath:"id"});E.createIndex("by_conv_sort",["conversationId","sortKey"]),E.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 E=y.createObjectStore("mediaAssetMeta",{keyPath:"key"});E.createIndex("by_kind_access",["kind","lastAccessedAt"]),E.createIndex("by_access","lastAccessedAt");}y.objectStoreNames.contains("decryptRecoveries")||y.createObjectStore("decryptRecoveries",{keyPath:"key"}).createIndex("by_conversation","conversationKey"),S>0&&S<13&&(P.objectStore("mediaAssets").clear(),P.objectStore("mediaAssetMeta").clear()),y.objectStoreNames.contains("recentHistoryPages")||y.createObjectStore("recentHistoryPages",{keyPath:"conversationKey"});}});if(g!==o){p.close();return}try{await dl(p),await ul(p),await ll(p);}catch(y){throw p.close(),y}if(g!==o){p.close();return}t=p;},async close(){o+=1,r=null,t!==null&&(t.close(),t=null);},async clearRebuildableCaches(){return m(async()=>{let u=o,g=r;await b(async()=>{I(u,g);let p=c().transaction(["userProfiles","groupMembers","groupProfiles","channelProfiles","channelMembers","channelMemberSnapshots","channelMentionCandidateSnapshots","mediaAssets","mediaAssetMeta","meta","recentHistoryPages"],"readwrite");await Promise.all([p.objectStore("userProfiles").clear(),p.objectStore("groupMembers").clear(),p.objectStore("groupProfiles").clear(),p.objectStore("channelProfiles").clear(),p.objectStore("channelMembers").clear(),p.objectStore("channelMemberSnapshots").clear(),p.objectStore("channelMentionCandidateSnapshots").clear(),p.objectStore("mediaAssets").clear(),p.objectStore("mediaAssetMeta").clear(),p.objectStore("meta").delete(Jt),p.objectStore("recentHistoryPages").clear(),p.done]);});})},async get(u){let g=o,C=r;return await b(async()=>{if(I(g,C),e.mediaAssetCache?.strategies.resolve(u.kind)===void 0)return null;let p=Ni(u),y=c(),[S,f]=await Promise.all([y.get("mediaAssets",p),y.get("mediaAssetMeta",p)]);return I(g,C),S===void 0||f===void 0?(await T([p],g,C),null):(await y.put("mediaAssetMeta",{...f,lastAccessedAt:A()}),{kind:f.kind,messageId:f.messageId,resourceVersion:f.resourceVersion,blob:S.blob,...f.mimeType===void 0?{}:{mimeType:f.mimeType}})})},async put(u){let g=o,C=r;I(g,C);let p=u.blob.size;if(p>d||s+p>d)return "skipped";s+=p;try{return await b(()=>v(u,g,C))}finally{s=Math.max(0,s-p);}},async clear(){let u=o,g=r;await b(async()=>{I(u,g);let C=c().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all([C.objectStore("mediaAssets").clear(),C.objectStore("mediaAssetMeta").clear(),C.done]);});},async getMessage(u,g){let C=await c().get("messages",g);if(C===void 0)return null;let p=ke(C);return Ha$1(Ea$1(p))===Ha$1(u)?p:null},async getMessages(u,g){let C=typeof u=="string"?"by_conv_sort":"by_conversation_key_sort",p=typeof u=="string"?u:Ha$1(u);if(await l(u),g.beforeSortKey===void 0&&g.afterSortKey!==void 0){let P=IDBKeyRange.bound([p,g.afterSortKey],[p,Re]),E=[],R=await c().transaction("messages").store.index(C).openCursor(P,"next");for(;R!==null&&E.length<g.limit;)E.push(R.value),R=await R.continue();return E.map(ke)}let y=g.beforeSortKey===void 0?IDBKeyRange.bound([p,""],[p,Re]):IDBKeyRange.bound([p,""],[p,g.beforeSortKey],false,true),S=[],f=await c().transaction("messages").store.index(C).openCursor(y,"prev");for(;f!==null&&S.length<g.limit;)S.push(f.value),f=await f.continue();return S.reverse().map(ke)},async saveMessages(u){if(u.length===0)return;let g=c().transaction("messages","readwrite");await Promise.all([...u.map(C=>g.store.put(Ki(C))),g.done]);},async searchMessages(u,g){let C=Ha$1(u),p=g.keyword?.trim()??"",y=g.contentTypes;if(p===""&&(y===void 0||y.length===0))return {items:[],exhausted:true};let S=p===""?void 0:await ga$1(p),f=g.beforeSortKey===void 0?IDBKeyRange.bound([C,""],[C,Re]):IDBKeyRange.bound([C,""],[C,g.beforeSortKey],false,true),P=2e3,E=[],R=0,O,M=await c().transaction("messages").store.index("by_conversation_key_sort").openCursor(f,"prev");for(;M!==null&&E.length<g.limit&&R<P;){let U=ka$1(ke(M.value));R+=1,O=U.sortKey;let N=y===void 0||y.includes(U.contentType),B=S===void 0||S.match(ea$1(U))!==null;N&&B&&E.push(U),M=await M.continue();}let k=M===null;return {items:E,exhausted:k,...k?{}:{nextBeforeSortKey:O}}},async getDecryptRecoveries(u){let g=Ha$1(u);return (await c().getAllFromIndex("decryptRecoveries","by_conversation",g)).map(il)},async saveDecryptRecovery(u){if(u.sContent.byteLength===0||u.sContent.byteLength>tl)throw new Error(`\u89E3\u5BC6\u6062\u590D\u5BC6\u6587\u5B57\u8282\u957F\u5EA6\u975E\u6CD5\uFF1A${u.sContent.byteLength}`);await c().put("decryptRecoveries",ol(u));},async deleteDecryptRecovery(u,g){await c().delete("decryptRecoveries",zt(u,g));},async deleteConversationDecryptRecoveries(u){let g=Ha$1(u),C=c().transaction("decryptRecoveries","readwrite"),p=await C.store.index("by_conversation").openCursor(IDBKeyRange.only(g));for(;p!==null;)await p.delete(),p=await p.continue();await C.done;},async getSessions(){return (await c().getAll("sessions")).map(Wt)},async saveSessions(u){if(u.length===0)return;let g=c().transaction("sessions","readwrite");for(let C of u)await g.store.put(jn(C)),await g.store.delete(C.id);await g.done;},async deleteSession(u){if(typeof u!="string"){let p=c().transaction(["sessions","conversationBackgrounds"],"readwrite");await p.objectStore("sessions").delete(Ha$1(u)),await p.objectStore("conversationBackgrounds").delete(hn(u)),await p.done;return}let g=(await c().getAll("sessions")).map(Wt).filter(p=>p.id===u);bn(u,g.map(p=>({conversationType:p.type})));let C=c().transaction(["sessions","conversationBackgrounds"],"readwrite");if(g[0]!==void 0){let p=Fa$1(g[0]);await C.objectStore("sessions").delete(Ha$1(p)),await C.objectStore("conversationBackgrounds").delete(hn(p));}await C.objectStore("sessions").delete(u),await C.done;},async deleteReadState(u){if(typeof u!="string"){await c().delete("readStates",Ha$1(u));return}let C=(await c().getAll("readStates")).map(qn).filter(p=>p.conversationId===u).filter(p=>p.conversationType!==void 0);bn(u,C),C[0]!==void 0&&await c().delete("readStates",Ha$1(C[0])),await c().delete("readStates",u);},async deleteMessage(u,g,C){return m(async()=>{let p=c().transaction(["messages","sessions","decryptRecoveries","recentHistoryPages"],"readwrite");return wn(p,async()=>{let y=await p.objectStore("messages").get(g);if(y!==void 0){let S=ke(y);if(S.conversationType!==u.conversationType||S.conversationId!==u.conversationId)return !1;await p.objectStore("messages").delete(g);}return await p.objectStore("decryptRecoveries").delete(zt(u,g)),await p.objectStore("recentHistoryPages").delete(Ha$1(u)),C!==void 0&&await p.objectStore("sessions").put(jn(C)),y!==void 0})})},async deleteConversationMessages(u){return m(async()=>{let g=cl(u),C=typeof u=="string"?"by_conv_sort":"by_conversation_key_sort",p=typeof u=="string"?u:Ha$1(u),y=IDBKeyRange.bound([p,""],[p,Re]),S=c().transaction(["messages","decryptRecoveries","recentHistoryPages"],"readwrite");return wn(S,async()=>{let f=S.objectStore("messages"),P=S.objectStore("decryptRecoveries"),E=[],R=[];if(typeof u=="string"){let M=(await f.index("by_conv_sort").getAll(y)).map(ke);E=(await P.getAll()).filter(k=>k.conversation.conversationId===u),R=(await S.objectStore("recentHistoryPages").getAll()).filter(k=>k.conversation.conversationId===g),bn(g,[...M,...R.map(k=>({conversationType:k.conversation.conversationType})),...E.map(k=>({conversationType:k.conversation.conversationType}))]);}let O=await f.index(C).openCursor(y);for(;O!==null;)await O.delete(),O=await O.continue();if(typeof u=="string"){for(let M of E)await P.delete(M.key);for(let M of R)await S.objectStore("recentHistoryPages").delete(M.conversationKey);}else {await S.objectStore("recentHistoryPages").delete(Ha$1(u));let M=await P.index("by_conversation").openCursor(IDBKeyRange.only(Ha$1(u)));for(;M!==null;)await M.delete(),M=await M.continue();}})})},async clearConversationHistory(u,g,C){return m(async()=>{let p=Ha$1(u),y=IDBKeyRange.bound([p,""],[p,Re]),S=c().transaction(["messages","sessions","readStates","decryptRecoveries","recentHistoryPages"],"readwrite");return wn(S,async()=>{await S.objectStore("recentHistoryPages").delete(p);let f=await S.objectStore("messages").index("by_conversation_key_sort").openCursor(y);for(;f!==null;)await f.delete(),f=await f.continue();let P=await S.objectStore("decryptRecoveries").index("by_conversation").openCursor(IDBKeyRange.only(p));for(;P!==null;)await P.delete(),P=await P.continue();g!==void 0&&await S.objectStore("sessions").put(jn(g)),C!==void 0&&(await S.objectStore("readStates").put(Yt(C)),await S.objectStore("readStates").delete(C.conversationId));})})},async getReadStates(){return (await c().getAll("readStates")).map(qn)},async saveReadState(u){let g=c().transaction("readStates","readwrite");await g.store.put(Yt(u)),u.conversationType!==void 0&&await g.store.delete(u.conversationId),await g.done;},async getDrafts(){return (await c().getAll("drafts")).map(sl)},async saveDraft(u){await c().put("drafts",al(u));},async deleteDraft(u){await c().delete("drafts",Ha$1(u));},async getConversationBackground(u){return (await c().get("conversationBackgrounds",hn(u)))?.background??null},async saveConversationBackground(u,g){let C=hn(u);await c().put("conversationBackgrounds",{key:C,background:g});},async deleteConversationBackground(u){await c().delete("conversationBackgrounds",hn(u));},async getDefaultConversationBackground(){return (await c().get("conversationBackgrounds",Vt))?.background??null},async saveDefaultConversationBackground(u){await c().put("conversationBackgrounds",{key:Vt,background:u});},async deleteDefaultConversationBackground(){await c().delete("conversationBackgrounds",Vt);},async getOutbox(){return c().getAll("outbox")},async saveOutboxMessage(u){await c().put("outbox",u);},async removeOutboxMessage(u){await c().delete("outbox",u);},async getPinnedMessages(){return (await c().getAll("pinnedMessages")).map(Qt)},async savePinnedMessage(u){let g=c().transaction("pinnedMessages","readwrite");await g.store.put(Gi(u)),await g.store.delete(u.conversationId),await g.done;},async removePinnedMessage(u){if(typeof u!="string"){await c().delete("pinnedMessages",Ha$1(u));return}let g=(await c().getAll("pinnedMessages")).map(Qt).filter(C=>C.conversationId===u);bn(u,g),g[0]!==void 0&&await c().delete("pinnedMessages",Ha$1(Ga$1(g[0]))),await c().delete("pinnedMessages",u);},async getMeta(u){let g=await c().get("meta",u);return g===void 0?null:g.value},async setMeta(u,g){await c().put("meta",{key:u,value:g});},async getUserProfile(u){return await c().get("userProfiles",u)??null},async saveUserProfile(u){await c().put("userProfiles",u);},async getGroupMembers(u){return await c().get("groupMembers",u)??null},async saveGroupMembers(u){await c().put("groupMembers",u);},async getGroupProfile(u){return await c().get("groupProfiles",u)??null},async saveGroupProfile(u){await c().put("groupProfiles",u);},async getChannelProfile(u){return await c().get("channelProfiles",u)??null},async getChannelProfiles(){return c().getAll("channelProfiles")},async saveChannelProfiles(u){if(u.length===0)return;let g=c().transaction("channelProfiles","readwrite");await Promise.all([...u.map(C=>g.store.put(C)),g.done]);},async getChannelListVersion(){let u=await c().get("meta",Jt);return typeof u?.value=="string"&&/^\d+$/.test(u.value)?u.value:"0"},async saveChannelListVersion(u){if(!/^\d+$/.test(u))throw new Error(`CHANNEL list version \u975E\u6CD5\uFF1A${u}`);await c().put("meta",{key:Jt,value:u});},async getChannelMembers(u,g){if(g.length===0)return [];let C=c().transaction("channelMembers"),p=await Promise.all(g.map(y=>C.store.get([u,y])));return await C.done,p.filter(y=>y!==void 0)},async saveChannelMembers(u){if(u.length===0)return;let g=c().transaction("channelMembers","readwrite");for(let C of u){let p=await g.store.get([C.channelId,C.userId]);p!==void 0&&rl(C.updateVersion,p.updateVersion)<0||await g.store.put(C);}await g.done;},async deleteChannelMembers(u){let g=IDBKeyRange.bound([u,""],[u,Re]),C=c().transaction("channelMembers","readwrite"),p=await C.store.openCursor(g);for(;p!==null;)await p.delete(),p=await p.continue();await C.done;},async getChannelMemberSnapshot(u){return await c().get("channelMemberSnapshots",u)??null},async saveChannelMemberSnapshot(u){await c().put("channelMemberSnapshots",u);},async deleteChannelMemberSnapshot(u){await c().delete("channelMemberSnapshots",u);},async getChannelMentionCandidateSnapshot(u){return await c().get("channelMentionCandidateSnapshots",u)??null},async saveChannelMentionCandidateSnapshot(u){await c().put("channelMentionCandidateSnapshots",u);},async deleteChannelMentionCandidateSnapshot(u){await c().delete("channelMentionCandidateSnapshots",u);}}}function ml(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",s;function d(l,b){for(let I of [...r[l]])I(b);}function c(){s!==void 0&&(clearTimeout(s),s=void 0);}function m(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 w(){if(c(),o!==void 0){m(o,i);try{o.close(1e3);}catch{}o=void 0;}i=void 0;}function h(l,b,I){let A={onOpen:()=>{l===o&&(c(),a="open",d("open",{endpoint:b}));},onMessage:_=>{if(l!==o||a!=="open")return;let T=_?.data;if(T instanceof ArrayBuffer){d("message",{data:T});return}d("error",{error:new Error(`WsTransport\uFF1A\u6536\u5230\u975E ArrayBuffer \u6D88\u606F\uFF08${typeof T}\uFF09\uFF0C\u5DF2\u5FFD\u7565`)});},onError:_=>{l===o&&d("error",{error:new Error(`WsTransport\uFF1AWebSocket error \u4E8B\u4EF6\uFF08${_ instanceof Event?_.type:typeof _}\uFF09`)});},onClose:_=>{l===o&&(c(),m(l,A),o=void 0,i=void 0,a="closed",d("close",{code:_?.code??1006,reason:_?.reason??"",wasClean:_?.wasClean??false}));}};if(i=A,l.addEventListener("open",A.onOpen),l.addEventListener("message",A.onMessage),l.addEventListener("error",A.onError),l.addEventListener("close",A.onClose),I>0){let _=setTimeout(()=>{if(!(l!==o||a!=="connecting")){d("error",{error:new Error(`WsTransport\uFF1A\u8FDE\u63A5\u8D85\u65F6\uFF08${I}ms \u672A open\uFF09`)});try{l.close();}catch{}}},I);_.unref?.(),s=_;}}return {get state(){return a},async connect(l,b){let I=l[0];if(I===void 0)throw new Error("WsTransport.connect\uFF1Aendpoints \u4E3A\u7A7A\uFF08P0 single \u7B56\u7565\u9700\u81F3\u5C11\u4E00\u4E2A\u7AEF\u70B9\uFF09");w(),a="connecting";let A;try{A=n(I.url);}catch(_){throw a="closed",_}A.binaryType="arraybuffer",o=A,h(A,I,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){c(),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
7
|
export{Gc as $,Nu as $a,ic as A,wd as Aa,Li as B,oi as Ba,uc as C,ii as Ca,pc as D,Id as Da,fc as E,vd as Ea,gc as F,Sd as Fa,yc as G,Ad as Ga,hc as H,Md as Ha,bc as I,_d as Ia,wc as J,Td as Ja,Cc as K,Od as Ka,Pc as L,Bd as La,Ic as M,Nd as Ma,vc as N,Kd as Na,Sc as O,Gd as Oa,Ac as P,Ld as Pa,Mc as Q,On as Qa,_c as R,Pe as Ra,xc as S,Zd as Sa,Rc as T,tt as Ta,Tc as U,Hi as Ua,Tn as V,nu as Va,Dn as W,Su as Wa,Dc as X,K as Xa,Bc as Y,Fi as Ya,Nc as Z,Hn as Za,Kc as _,kr as _a,Ia as a,Hc as aa,q as ab,ut as b,Fc as ba,Fu as bb,Xe as c,jc as ca,$u as cb,z as d,qc as da,qu as db,Oa as e,Jc as ea,pl as eb,Na as f,Vc as fa,fl as fb,Ze as g,Wc as ga,ml as gb,Ka as h,Qc as ha,zi as hb,Xa as i,Xc as ia,Pn as ib,Oe as j,Zc as ja,aa as jb,Q as k,ed as ka,Pa as kb,cs as l,nd as la,ds as m,rd as ma,rn as n,un as na,fe as o,id as oa,Cs as p,ad as pa,on as q,sd as qa,te as r,cd as ra,Os as s,dd as sa,Fs as t,ud as ta,Js as u,ld as ua,Vs as v,pd as va,Xs as w,fd as wa,Ke as x,yd as xa,J as y,hd as ya,Me as z,bd as za};
|