k2-im 0.1.43 → 0.1.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ import {wa as wa$1,F as F$1,I,f,g,h,X as X$1,Y as Y$1,aa as aa$1,ba as ba$1,V as V$1,W,K as K$1,L,E,H as H$1,J as J$1,l,e,G,M,_,O,Q as Q$1,P,R,S,T,U as U$1,ia as ia$1,ja as ja$1,zb,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,Z as Z$1,$,k,s,Ca as Ca$1,Ba as Ba$1,Ia as Ia$1,ca as ca$1,da as da$1}from'./chunk-XNBJ3NXF.js';import*as Q from'node-forge';import Q__default from'node-forge';import {deleteDB,openDB}from'idb';import {createSHA256}from'hash-wasm';function $i(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 at(){return typeof navigator<"u"&&typeof ClipboardItem=="function"&&typeof navigator.clipboard?.write=="function"}function ne(e){if(!e.isCurrent())throw new DOMException("Image copy is no longer active","AbortError")}async function it(e,n){if(ne(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;}),ne(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 ne(n),a}finally{r.onload=null,r.onerror=null,r.src="",URL.revokeObjectURL(t),o!==void 0&&(o.width=o.height=0);}}async function qi(e,n){if(n!==void 0&&n!==""){ne(e);let s=false,d={...e,isCurrent:()=>!s&&e.isCurrent()};try{if(!at())throw new Error("Image Clipboard API unavailable");let c=(async()=>it(await e.loadOriginal(),d))();return c.catch(()=>{}),await navigator.clipboard.write([new ClipboardItem({"image/png":c,"text/plain":new Blob([n],{type:"text/plain"})})]),ne(e),"original"}catch{return s=true,ne(e),await navigator.clipboard.writeText(n),ne(e),"text"}finally{s=true;}}if(!at())throw new Error("Image Clipboard API unavailable");ne(e);let t=false,r={...e,isCurrent:()=>!t&&e.isCurrent()},o={quality:"original"},i=async()=>(ne(r),o.quality="thumbnail",it(await e.loadThumbnail(),r)),a=(async()=>{try{return await it(await e.loadOriginal(),r)}catch(s){ne(r);try{return await i()}catch(d){throw ne(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(ne(r),typeof s=="object"&&s!==null&&"name"in s&&(s.name==="NotAllowedError"||s.name==="SecurityError")||(await a,ne(r),o.quality==="thumbnail"))throw s;let d=i();d.catch(()=>{}),await navigator.clipboard.write([new ClipboardItem({"image/png":d})]);}return ne(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 Ji(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 Vi=3600*1e3,zi=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 Wi(e){let n=Number(e);if(!(!Number.isFinite(n)||n<=0))return n>1e12?n/1e3:n}function Yi(e){let n=e.replace(/\/+$/,"");return n===""?"":/^https?:\/\//i.test(n)?n:`https://${n}`}function Or(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=Yi(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(y=>y!=="");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=Wi(n.expiration??n.expiresAtSeconds),g=be(n.key_prefix,n.keyPrefix),P=be(n.identity_id,n.identityId);return {accessKeyId:t,secretAccessKey:r,sessionToken:o,bucket:i,region:a,dnsPoint:s,...c===void 0?{}:{expiresAtSeconds:c},...g===""?{}:{keyPrefix:g},...P===""?{}:{identityId:P}}}function Qi(e,n){if(n-e.fetchedAtMs>=Vi)return false;let{expiresAtSeconds:t}=e.credential;return t===void 0?true:t*1e3-zi>n}function Br(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=Or(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&&Qi(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 Xi(){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 F=class extends Error{code;constructor(n,t,r){super(t??n,r),this.name="VoiceError",this.code=n;}};function vn(e){return e instanceof F?e.code:void 0}function Nr(e){switch(e instanceof DOMException||e instanceof Error?e.name:""){case "NotAllowedError":case "SecurityError":case "PermissionDeniedError":return new F("permission-denied","\u9EA6\u514B\u98CE\u6743\u9650\u88AB\u62D2\u7EDD",{cause:e});case "NotFoundError":case "DevicesNotFoundError":return new F("device-not-found","\u672A\u627E\u5230\u53EF\u7528\u9EA6\u514B\u98CE",{cause:e});case "NotReadableError":case "TrackStartError":case "AbortError":return new F("device-busy","\u9EA6\u514B\u98CE\u88AB\u5360\u7528\u6216\u542F\u52A8\u5931\u8D25",{cause:e});default:return new F("device-busy",e instanceof Error?e.message:"\u9EA6\u514B\u98CE\u542F\u52A8\u5931\u8D25",{cause:e})}}var se=16e3,Zi=new URL("./speex-runtime.txt",import.meta.url).href,st=null,ea=15e3;async function na(){document.querySelector('script[data-speex-runtime="true"]')?.remove();let e=new AbortController,n=setTimeout(()=>e.abort(new Error("Speex runtime fetch timeout")),ea),t;try{t=await fetch(Zi,{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 ct(){let e=typeof window>"u"?void 0:window;return e?.__speexInH5!==void 0?e.__speexInH5:(st??=(async()=>{if(e===void 0||typeof document>"u")throw new F("codec-unavailable","Speex \u8FD0\u884C\u65F6\u4EC5\u53EF\u5728\u6D4F\u89C8\u5668\u73AF\u5883\u52A0\u8F7D");if(await na(),e.__speexInH5===void 0&&e.initAudio?.(),e.__speexInH5===void 0)throw new F("codec-unavailable","Speex \u8FD0\u884C\u65F6\u521D\u59CB\u5316\u5931\u8D25");return e.__speexInH5})().catch(n=>{throw st=null,n instanceof F?n:new F("codec-unavailable","Speex \u8FD0\u884C\u65F6\u52A0\u8F7D\u5931\u8D25",{cause:n})}),st)}function Kr(){ct().catch(()=>{});}function we(e,n,t){for(let r=0;r<t.length;r+=1)e.setUint8(n+r,t.charCodeAt(r));}function ta(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 dt(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 ra=40,lt=120,oa=40,ut=80;function ia(e,n){let t=Math.min(Math.floor(n*ra/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 pt(e,n){if(e.length===0)return e;let t=Math.min(Math.floor(n*lt/1e3),Math.max(0,e.length-1)),r=t>0?e.subarray(t):e,o=new Float32Array(r),i=Math.min(Math.floor(n*oa/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 Sn(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 aa(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 sa(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 Gr(e,n){let t=await ct(),r=Math.floor(n*ut/1e3),o=new Float32Array(r+e.length);o.set(e,r);let i=ta(o,n);try{return aa(t.encodeFile(i))}catch(a){throw new F("encode-failed","\u8BED\u97F3\u7F16\u7801\u5931\u8D25",{cause:a})}}async function Lr(e){let n=await ct();try{let[t,r]=n.decodeFile(sa(e));if(t.length===0)throw new Error("decoded empty pcm");let o=ia(dt(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 F?t:new F("decode-failed","\u8BED\u97F3\u89E3\u7801\u5931\u8D25",{cause:t})}}async function Hr(e){let n=await Lr(e);return {wavData:Sn(n.samples,n.sampleRate),durationMs:n.durationMs}}var ca=.5,da=2;function Fr(e){if(typeof e!="number"||!Number.isFinite(e))throw new F("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,ca),da)}function la(e={}){let n=e.cacheMax??8,t={activeId:"",isPlaying:false,loadingId:"",progress:0,currentTimeMs:0,errorIds:new Set,playbackRate:e.playbackRate===void 0?1:Fr(e.playbackRate)},r=new Set;function o(){for(let l of r)l(t);}let i=null,a=new Map,s=0,d=false,c=false;function g(l){let b=a.get(l);return b!==void 0&&(a.delete(l),a.set(l,b)),b}function P(l,b){if(d)return URL.revokeObjectURL(b.url),b;let S=a.get(l);if(S!==void 0)return URL.revokeObjectURL(b.url),a.delete(l),a.set(l,S),S;for(a.set(l,b);a.size>n;){let A;for(let v of a.keys())if(v!==t.activeId){A=v;break}if(A===void 0)break;let x=a.get(A);a.delete(A),x!==void 0&&URL.revokeObjectURL(x.url);}return b}function y(l){l.paused||l.pause(),l.removeAttribute("src");try{l.load();}catch{}}function p(l,b){return !d&&l===s&&t.activeId===b}function w(l){l.defaultPlaybackRate=t.playbackRate,l.playbackRate=t.playbackRate;}function C(){if(i!==null)return i;let l=new Audio;return l.preload="auto",w(l),l.addEventListener("timeupdate",()=>{t.activeId!==""&&(t.currentTimeMs=l.currentTime*1e3,t.progress=l.duration>0?Math.min(1,l.currentTime/l.duration):0,o());}),l.addEventListener("ended",()=>{M(),y(l),o();}),l.addEventListener("pause",()=>{t.activeId!==""&&(t.isPlaying=false,o());}),i=l,l}function M(){t.activeId="",t.isPlaying=false,t.progress=0,t.currentTimeMs=0;}function _(){s+=1,c=false,t.loadingId="",M(),i!==null&&y(i),o();}function D(l){t.errorIds=new Set([...t.errorIds,l]);}function R(l){if(!t.errorIds.has(l))return;let b=new Set(t.errorIds);b.delete(l),t.errorIds=b;}async function I(l,b){let S=g(l);if(S!==void 0)return {entry:S};let A;try{A=await b();}catch(x){return {entry:null,error:{code:vn(x),cause:x}}}if(A===null)return {entry:null};try{let{wavData:x,durationMs:v}=await Hr(A),E={url:URL.createObjectURL(new Blob([x],{type:"audio/wav"})),durationMs:v};return {entry:P(l,E)}}catch(x){return {entry:null,error:{code:vn(x),cause:x}}}}async function T(l,b){if(d)return;let S=C();if(R(l),t.activeId===l){if(t.isPlaying){S.pause();return}let v=++s;try{await S.play();}catch{if(!p(v,l))return;D(l),o();return}if(!p(v,l))return;t.isPlaying=true,o(),b.onPlayStart?.();return}if(t.loadingId===l)return;_();let A=++s;t.loadingId=l,o();let x=await I(l,b.load);if(A===s){if(t.loadingId="",x.entry===null){D(l),o(),x.error!==void 0&&b.onDecodeError?.(x.error.code,x.error.cause);return}S.src=x.entry.url,w(S),t.activeId=l,t.progress=0,t.currentTimeMs=0,o();try{await S.play();}catch(v){if(!p(A,l))return;M(),y(S),D(l),o(),b.onDecodeError?.(void 0,v);return}p(A,l)&&(t.isPlaying=true,o(),b.onPlayStart?.());}}function O(l,b){i===null||t.activeId!==l||!Number.isFinite(i.duration)||i.duration<=0||(i.currentTime=Math.min(Math.max(b,0),.999)*i.duration);}function u(l){i===null||t.activeId!==l||t.isPlaying&&(c=true,i.pause());}function f(l){if(i===null||t.activeId!==l||!c)return;c=false;let b=++s;i.play().then(()=>{p(b,l)&&(t.isPlaying=true,o());}).catch(()=>{p(b,l)&&(D(l),o());});}function m(l){let b=Fr(l);b!==t.playbackRate&&(t.playbackRate=b,i!==null&&w(i),o());}function h(){if(!d){d=true,_();for(let l of a.values())URL.revokeObjectURL(l.url);a.clear(),r.clear(),i=null;}}return {getState:()=>t,subscribe:l=>(r.add(l),()=>r.delete(l)),toggle:T,seek:O,beginScrub:u,endScrub:f,setPlaybackRate:m,stop:_,dispose:h}}function ua(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 pa(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 jr(e){let n=ua(e.timeDomain),t=pa(e.frequency,e.sampleRate,e.fftSize),r=n*.55+t*.45;return Math.min(1,r*e.boost)**.72}var An=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 fa=5e3,ft=15e3,ma=25e3,ga=25e3;function We(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 ya(){if(typeof navigator>"u"||navigator.mediaDevices?.getUserMedia===void 0)throw new F("no-media-devices","\u5F53\u524D\u73AF\u5883\u4E0D\u652F\u6301\u9EA6\u514B\u98CE\u91C7\u96C6");let e=navigator.mediaDevices.getUserMedia({audio:ha()});try{return await We(e,ga,"\u9EA6\u514B\u98CE\u6388\u6743\u8BF7\u6C42\u8D85\u65F6")}catch(n){throw e.then(t=>t.getTracks().forEach(r=>r.stop())).catch(()=>{}),Nr(n)}}function ha(){return {channelCount:1,echoCancellation:true,noiseSuppression:true,autoGainControl:true}}var ba=50,wa=.12,Ca=2.6,Pa=.06,Ia=256;function va(){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 Sa(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 F("audio-context-blocked","AudioContext \u4E0D\u53EF\u7528");let i=t??new r,a=t==null;try{i.state==="suspended"&&await We(i.resume(),ft,"audioContext.resume timeout").catch(()=>{});let s=await We(i.decodeAudioData(await e.arrayBuffer()),ft,"decodeAudioData timeout"),d=Math.max(1,Math.ceil(s.duration*n)),c=new o(1,d,n),g=c.createBufferSource();return g.buffer=s,g.connect(c.destination),g.start(0),(await We(c.startRendering(),ft,"offlineAudioContext.startRendering timeout")).getChannelData(0).slice()}catch(s){throw s instanceof F?s:new F("decode-failed","\u5F55\u97F3\u6BB5\u89E3\u7801\u5931\u8D25",{cause:s})}finally{a&&i.close().catch(()=>{});}}function $r(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 Aa(e={}){if(typeof MediaRecorder>"u")throw new F("no-media-recorder","\u5F53\u524D\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\u5F55\u97F3");let n;e.stream!==void 0?n=e.stream:n=await ya(),Kr();let t=va(),r=e.maxDurationMs??6e4,o="recording",i=[],a=0,s=[],d=null,c=null,g=null,P=[],y=0,p=false;function w(){try{let l;try{l=t!==""?new MediaRecorder(n,{mimeType:t}):new MediaRecorder(n);}catch{l=new MediaRecorder(n);}return P=[],l.ondataavailable=b=>{b.data.size>0&&P.push(b.data);},l.start(250),y=Date.now(),l}catch(l){throw l instanceof F?l:new F("device-busy","\u5F55\u97F3\u5668\u542F\u52A8\u5931\u8D25",{cause:l})}}let C=e.amplitude?.intervalMs??ba,M=e.amplitude?.boost??Ca,_=e.amplitude?.smoothing??wa,D=e.amplitude?.minVolume??Pa;function R(){let l=Math.floor(r/1e3*se),b=0;for(let A of i)b+=A.length;if(b>l){let A=l,x=[];for(let v of i){if(A<=0)break;v.length<=A?(x.push(v),A-=v.length):(x.push(v.slice(0,A)),A=0);}i.length=0,i.push(...x);}a=Math.min(a,r);let S=Math.max(0,Math.ceil(r/C));s.length>S&&(s.length=S);}async function I(){if(o!=="recording"){e.onMaxDuration?.();return}e.onMaxDuration?.(),o="paused";let l=h().then(()=>R());g=l;try{await l;}catch(b){console.warn("[im-browser] pauseAtMaxDuration settle failed",b);}}let T=setInterval(()=>{!p&&o==="recording"&&f()>=r&&(p=true,I());},250),O=null,u=null;try{let l=window.AudioContext??window.webkitAudioContext;if(l!==void 0){O=new l,O.state==="suspended"&&O.resume().catch(()=>{});let b=O.createMediaStreamSource(n),S=O.createAnalyser();S.fftSize=Ia,S.smoothingTimeConstant=_,b.connect(S);let A=new Uint8Array(S.frequencyBinCount),x=new Uint8Array(S.fftSize),v=new An;u=setInterval(()=>{if(o!=="recording"||d===null)return;S.getByteFrequencyData(A),S.getByteTimeDomainData(x);let E=jr({timeDomain:x,frequency:A,sampleRate:O.sampleRate,fftSize:S.fftSize,boost:M}),k=v.next(E),B=k<D?0:k;s.push(Math.round(B*255)),e.onAmplitude?.(B);},C);}}catch(l){console.warn("[im-browser] amplitude analyser setup failed",l);}function f(){let l=o==="recording"&&d!==null?Date.now()-y:0;return a+l}function m(){T!==null&&(clearInterval(T),T=null),u!==null&&(clearInterval(u),u=null),O?.close().catch(()=>{}),O=null;for(let l of n.getTracks())l.stop();}function h(){if(c!==null)return c;let l=d;return l===null?Promise.resolve():(d=null,c=(async()=>{await new Promise(A=>{if(l.state==="inactive"){A();return}let x=setTimeout(()=>{console.warn("[im-browser] recorder onstop timed out, settling with received chunks"),A();},fa);l.onstop=()=>{clearTimeout(x),A();},l.stop();});let b=new Blob(P,{type:l.mimeType||t||"audio/webm"});if(P=[],b.size===0)return;let S=await Sa(b,se,O);S.length!==0&&(i.push(S),a+=S.length/se*1e3);})().finally(()=>{c=null;}),c)}try{d=w();}catch(l){throw o="closed",m(),l}return {getState:()=>o,recordedMs:f,async pause(){o==="recording"&&(o="paused",await h(),(p||a>=r)&&R());},async resume(){o!=="paused"||p||(d=w(),o="recording");},async finish(){if(o==="closed")throw new F("empty-recording","\u5F55\u97F3\u4F1A\u8BDD\u5DF2\u7ED3\u675F");o="closed";let l=async()=>{try{g!==null?await g:await h(),R();}finally{m();}let b=$r(i);if(b.length===0)throw new F("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let S=pt(b,se);if(S.length===0)throw new F("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let A=Math.min(s.length,Math.ceil(lt/C));return {data:await Gr(S,se),durationMs:Math.round(S.length/se*1e3)+ut,waveform:s.slice(A),filename:`AUDIO_${Date.now()}.ogg`,mimeType:"audio/ogg"}};try{return await We(l(),ma,"\u5F55\u97F3\u5B9A\u7A3F\u8D85\u65F6")}catch(b){throw m(),b instanceof F?b:new F("encode-failed","\u5F55\u97F3\u5B9A\u7A3F\u5931\u8D25",{cause:b})}},cancel(){o="closed";let l=d;if(d=null,l!==null&&(l.ondataavailable=null,l.onstop=null,l.state!=="inactive"))try{l.stop();}catch{}i.length=0,m();},async previewWav(){g!==null?await g:c!==null&&await c,R();let l=$r(i),b=pt(l,se);if(b.length===0)throw new F("empty-recording","\u6682\u65E0\u53EF\u8BD5\u542C\u7684\u5F55\u97F3\u5185\u5BB9");return {wavData:Sn(dt(b),se),durationMs:Math.round(b.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 qr(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 Jr(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 Ma(e){let n=new Map,t=new Map,r=new Map,o=new Map,i=De(qr);function a(I){return {canonical:I.canonical.slice(),...I.legacyAscii===void 0?{}:{legacyAscii:I.legacyAscii.slice()},metadata:{...I.metadata}}}function s(I){return [{strategy:"canonical-base64-pad",key:I.canonical.slice()},...I.legacyAscii===void 0?[]:[{strategy:"legacy-ascii16",key:I.legacyAscii.slice()}]]}function d(I){n.delete(I),t.delete(I),r.delete(I),o.set(I,(o.get(I)??0)+1);}function c(I){let T=o.get(I)??0,O=(async()=>{try{let u=await e.loadSecretKey(I);if(u===null||u.trim()==="")throw new ce(`channel secret_key \u7F3A\u5931\uFF08channelId=${I}\uFF09`);let f=Jr(u);return (o.get(I)??0)===T&&n.set(I,a(f)),f}catch(u){let f=u instanceof ce?u:new ce(`channel secret_key \u52A0\u8F7D\u5931\u8D25\uFF08channelId=${I}\uFF09`,{cause:u});throw e.onError?.(f.message,u),f}})().finally(()=>{t.get(I)===O&&t.delete(I);});return t.set(I,O),O}function g(I,T){let O=t.get(I);if(O!==void 0)return O;i.shouldRenegotiate(I,T.staleKey,n.get(I)?.canonical)&&d(I);}function P(I,T){let O=I.trim();if(O===""){let f=new ce("channel id \u4E0D\u80FD\u4E3A\u7A7A");return e.onError?.(f.message),Promise.reject(f)}if(T!==void 0){let f=g(O,T);if(f!==void 0)return f.then(a)}let u=n.get(O);return u!==void 0?Promise.resolve(a(u)):t.get(O)??c(O)}function y(I,T){let O=I.trim();if(O===""){let h=new ce("channel id \u4E0D\u80FD\u4E3A\u7A7A");return e.onError?.(h.message),Promise.reject(h)}if(T!==void 0){let h=g(O,T);if(h!==void 0)return h.then(l=>l.canonical.slice())}let u=n.get(O);if(u!==void 0)return Promise.resolve(u.canonical.slice());let f=r.get(O);if(f!==void 0)return f;let m=(t.get(O)??c(O)).then(h=>h.canonical.slice()).finally(()=>{r.get(O)===m&&r.delete(O);});return r.set(O,m),m}function p(I){return n.get(I.trim())?.canonical.slice()??null}async function w(I,T){let O=await P(I,T);return s(O)}function C(I){let T=n.get(I.trim());return T===void 0?[]:s(T)}function M(I){let T=n.get(I.trim());return T===void 0?null:{...T.metadata}}function _(I,T){let O=I.trim();if(O==="")throw new ce("channel id \u4E0D\u80FD\u4E3A\u7A7A");let u=Jr(T);d(O),i.reset(O),n.set(O,a(u));}function D(I){let T=I.trim();T!==""&&(d(T),i.reset(T));}function R(){let I=new Set([...n.keys(),...t.keys(),...r.keys(),...o.keys()]);for(let T of I)o.set(T,(o.get(T)??0)+1),i.reset(T);n.clear(),t.clear(),r.clear();}return {getChannelKey:y,getCachedChannelKey:p,getChannelKeyCandidates:w,getCachedChannelKeyCandidates:C,getCachedChannelKeyMetadata:M,primeChannelKey:_,clearChannelKey:D,clearAll:R}}function mt(){let e=globalThis.scheduler;return typeof e?.yield=="function"?e.yield():new Promise(n=>setTimeout(n,0))}var ht=2654435769,Vr=16,Ue=8,gt=16,zr=32;function Wr(e){if(e.length<gt)throw new Error(`TEA key \u957F\u5EA6\u4E0D\u8DB3\uFF1A${e.length}\uFF0C\u9700 \u2265 ${gt} \u5B57\u8282`);let n=new DataView(e.buffer,e.byteOffset,gt);return [n.getUint32(0,true),n.getUint32(4,true),n.getUint32(8,true),n.getUint32(12,true)]}function bt([e,n],[t,r,o,i]){let a=e>>>0,s=n>>>0,d=Math.imul(ht,16)>>>0;for(let c=0;c<Vr;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-ht>>>0;return [a,s]}function wt([e,n],[t,r,o,i]){let a=e>>>0,s=n>>>0,d=0;for(let c=0;c<Vr;c++)d=d+ht>>>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 Ye(e,n,t,r){let o=Wr(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 P=0;P<s;P++){let y=P*Ue,[p,w]=t([d.getUint32(y,true),d.getUint32(y+4,true)],o);c.setUint32(y,p,true),c.setUint32(y+4,w,true);}let g=s*Ue;return g<e.length&&i.set(e.subarray(g),g),i}function Qe(e,n){return Ye(n,e,bt)}function Xe(e,n){return Ye(n,e,wt)}function Yr(e,n){return Ye(n,e,wt,zr)}function Qr(e,n){return Ye(n,e,bt,zr)}var _a=1024*1024;function xa(){return mt()}function yt(e){if(e?.aborted)throw new DOMException("TEA \u5206\u5757\u5904\u7406\u5DF2\u53D6\u6D88","AbortError")}async function Ct(e,n,t,r=_a,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}`);Wr(e);let i=t==="encrypt"?wt:bt,a=o.yieldToMain??xa,s=n.size,d=[],c=0;for(;c<s;){yt(o.signal);let g=Math.min(c+r,s),P=new Uint8Array(await n.slice(c,g).arrayBuffer());yt(o.signal),d.push(new Blob([Ye(P,e,i)])),c=g,o.onProgress?.(c,s),c<s&&await a();}return yt(o.signal),new Blob(d)}var Xr=8,Mn=16;function Ra(e){let n=Q.md.md5.create();return n.update(e,"utf8"),n.digest().toHex()}function eo(e){return new TextEncoder().encode(e)}function Ea(e){let n=e.length;for(;n>0&&e[n-1]===0;)n-=1;return new TextDecoder().decode(e.subarray(0,n))}function ka(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 Ta(e){let n="";for(let t of e)n+=String.fromCharCode(t);return btoa(n)}function Da(e){let n=Math.ceil(e.length/Xr)*Xr;if(n===e.length)return e;let t=new Uint8Array(n);return t.set(e),t}function no(e,n=Ra){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<Mn)throw new Error("collect TEA key: MD5 \u957F\u5EA6\u4E0D\u8DB3");let o=eo(r.slice(0,Mn).toUpperCase());if(o.length<Mn)throw new Error("collect TEA key: \u6D3E\u751F\u7ED3\u679C\u4E0D\u8DB3 16 \u5B57\u8282");return o.subarray(0,Mn)}function to(e,n,t){return Ta(Xe(no(n,t),Da(eo(e))))}function Ua(e,n,t){return Ea(Qe(no(n,t),ka(e)))}function Oa(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function Pt(e){let n=e.trim();if(n===""||!n.startsWith("{"))return null;try{return Oa(JSON.parse(n))}catch{return null}}function Ba(e){let n=e.trim(),t=n.indexOf("}");return t>=0?n.slice(0,t+1):n}function ro(e,n,t){let r=Pt(e);if(r!==null)return r;if(e.trim()===""||n.trim()==="")return null;try{let o=Ua(e,n,t);return Pt(o)??Pt(Ba(o))}catch{return null}}var Na="core";var Ze=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";}},Y=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 U(e,n,t,r){let o=r!==void 0&&"responseMode"in r&&r.responseMode==="strict",i;try{i=await e(n,{target:Na,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 Ze(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 Ze(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 oo(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 U(e,"/user/encrypt_info/info",t,r)}function Ka(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 Ga(e){let n=e.clientType,t=new Map,r=new Map,o=De((y,p)=>y===p),i=null,a=null;function s(y,p){e.onError?.(y,p);}function d(){if(i!==null)return Promise.resolve(i);if(a!==null)return a;let y=Promise.resolve().then(()=>e.crypto.generateTempKeyPair()).then(p=>(i=p,p)).finally(()=>{a===y&&(a=null);});return a=y,y}async function c(y){let p;try{p=await d();}catch(_){return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u751F\u6210\u4E34\u65F6 RSA \u5BC6\u94A5\u5931\u8D25\uFF08userId=${y}\uFF09`,_),null}let w;try{w=await oo(e.client,{publicKey:p.publicKeyBase64,clientType:n});}catch(_){return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u8BF7\u6C42\u5F02\u5E38\uFF08userId=${y}\uFF09`,_),null}if(w.data===null)return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u4E1A\u52A1\u5931\u8D25\uFF08userId=${y}\uFF0Ccode=${w.code}\uFF09`),null;let C=w.data.prv_key??w.data.prvKey??"",M=String(w.data.version??"").trim();if(C==="")return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u54CD\u5E94\u7F3A\u5C11 prv_key\uFF08userId=${y}\uFF09`),null;try{let _=e.crypto.rsaDecryptPkcs1({data:Ka(C),privateKey:p.privateKey}),D=new TextDecoder().decode(_).trim();if(D==="")return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u89E3\u51FA\u7684\u79C1\u94A5\u4E3A\u7A7A\uFF08userId=${y}\uFF09`),null;let R={privateKey:D,version:M};return t.set(y,R),R}catch(_){return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u4E34\u65F6\u79C1\u94A5\u89E3 prv_key \u5931\u8D25\uFF08userId=${y}\uFF09`,_),null}}function g(y,p){let w=y.trim();if(w==="")return Promise.resolve(null);if(p!==void 0){let D=r.get(w);if(D!==void 0)return D;o.shouldRenegotiate(w,p.staleKey,t.get(w)?.privateKey)&&t.delete(w);}let C=t.get(w);if(C!==void 0)return Promise.resolve(C);let M=r.get(w);if(M!==void 0)return M;let _=c(w).finally(()=>{r.get(w)===_&&r.delete(w);});return r.set(w,_),_}function P(y){return t.get(y.trim())??null}return {getUserPrivateKey:g,getCachedPrivateKey:P}}function io(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 U(e,"/user_group/encrypt_info",t,r)}function La(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 Ha(e){let n=e.clientType,t=new Map,r=new Map,o=new Map,i=De((p,w)=>p===w),a=null,s=null;function d(){if(a!==null)return Promise.resolve(a);if(s!==null)return s;let p=Promise.resolve().then(()=>e.crypto.generateTempKeyPair()).then(w=>(a=w,w)).finally(()=>{s===p&&(s=null);});return s=p,p}async function c(p){let w=o.get(p)??0,C;try{C=await d();}catch(T){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u751F\u6210\u4E34\u65F6 RSA \u5BC6\u94A5\u5931\u8D25\uFF08groupId=${p}\uFF09`,T),null}let M;try{M=await io(e.client,{groupId:p,publicKey:C.publicKeyBase64,clientType:n});}catch(T){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u8BF7\u6C42\u5F02\u5E38\uFF08groupId=${p}\uFF09`,T),null}if(M.data===null)return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u4E1A\u52A1\u5931\u8D25\uFF08groupId=${p}\uFF0Ccode=${M.code}\uFF09`),null;let _=M.data,D=String(_.prv_key??_.prvKey??_.private_key??"").trim(),R=String(_.pub_key??_.pubKey??_.public_key??"").trim(),I=String(_.version??"").trim();if(D==="")return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u54CD\u5E94\u7F3A\u5C11 prv_key\uFF08groupId=${p}\uFF09`),null;try{let T=e.crypto.rsaDecryptPkcs1({data:La(D),privateKey:C.privateKey}),O=new TextDecoder().decode(T).trim();if(O==="")return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u89E3\u51FA\u7684\u7FA4\u79C1\u94A5\u4E3A\u7A7A\uFF08groupId=${p}\uFF09`),null;let u={privateKey:O,publicKey:R,version:I};return (o.get(p)??0)===w&&t.set(p,u),u}catch(T){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u4E34\u65F6\u79C1\u94A5\u89E3 prv_key \u5931\u8D25\uFF08groupId=${p}\uFF09`,T),null}}function g(p,w){let C=p.trim();if(C==="")return Promise.resolve(null);if(w!==void 0){let R=r.get(C);if(R!==void 0)return R;i.shouldRenegotiate(C,w.staleKey,t.get(C)?.privateKey)&&t.delete(C);}let M=t.get(C);if(M!==void 0)return Promise.resolve(M);let _=r.get(C);if(_!==void 0)return _;let D=c(C).finally(()=>{r.get(C)===D&&r.delete(C);});return r.set(C,D),D}function P(p){return t.get(p.trim())??null}function y(p){let w=p.trim();t.delete(w),r.delete(w),o.set(w,(o.get(w)??0)+1),i.reset(w);}return {getGroupKeys:g,getCachedGroupKeys:P,getCachedGroupKeyVersion:p=>t.get(p.trim())?.version??null,clearGroupKeys:y}}async function en(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 U(e,"/user/info/other",t,r)).data}function Fa(e){let n=e.clientType,t=new Map,r=new Map;async function o(a){try{let d=((await en(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 g=r.get(d);if(g!==void 0)return g;let P=o(d).finally(()=>{r.get(d)===P&&r.delete(d);});return r.set(d,P),P}return {getPeerPublicKey:i}}var Se=16;function ao(e){let n="";for(let t of e)n+=String.fromCharCode(t);return n}function so(e){let n=new Uint8Array(e.length);for(let t=0;t<e.length;t++)n[t]=e.charCodeAt(t)&255;return n}function co(e){return e.replace(/(.{64})/g,`$1
2
+ `).trim()}function ja(e){return e.replace(/-----BEGIN[^-]+-----/g,"").replace(/-----END[^-]+-----/g,"").replace(/\s+/g,"")}function $a(e){let n=(e??"").trim();if(n==="")throw new Error("RSA \u79C1\u94A5\u4E3A\u7A7A");if(n.includes("-----BEGIN"))return Q.pki.privateKeyFromPem(n);let t=n.replace(/\s+/g,""),r=[];try{return Q.pki.privateKeyFromAsn1(Q.asn1.fromDer(Q.util.decode64(t)))}catch(i){r.push(i);}let o=co(t);for(let i of ["PRIVATE KEY","RSA PRIVATE KEY"])try{return Q.pki.privateKeyFromPem(`-----BEGIN ${i}-----
3
+ ${o}
4
+ -----END ${i}-----`)}catch(a){r.push(a);}throw new Error(`RSA \u79C1\u94A5\u89E3\u6790\u5931\u8D25\uFF08\u5DF2\u8BD5 PKCS1-DER / PKCS8-PEM / PKCS1-PEM\uFF09\uFF1A${r[0]instanceof Error?r[0].message:String(r[0])}`)}function lo(e){let n=$a(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 g=n.decrypt(ao(r.subarray(d,c)),"RSAES-PKCS1-V1_5");o.push(so(g));}catch(g){let P=g instanceof Error?g.message:String(g);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${P}`)}}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 qa(e){let n=lo({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 Qe(n,e.cipherData)}function Ja(e){let n=(e??"").trim();if(n==="")throw new Error("RSA \u516C\u94A5\u4E3A\u7A7A");if(n.includes("-----BEGIN"))return Q.pki.publicKeyFromPem(n);let t=n.replace(/\s+/g,""),r=[];try{return Q.pki.publicKeyFromAsn1(Q.asn1.fromDer(Q.util.decode64(t)))}catch(i){r.push(i);}let o=co(t);for(let i of ["PUBLIC KEY","RSA PUBLIC KEY"])try{return Q.pki.publicKeyFromPem(`-----BEGIN ${i}-----
5
+ ${o}
6
+ -----END ${i}-----`)}catch(a){r.push(a);}throw new Error(`RSA \u516C\u94A5\u89E3\u6790\u5931\u8D25\uFF08\u5DF2\u8BD5 SPKI-DER / SPKI-PEM / PKCS1-PEM\uFF09\uFF1A${r[0]instanceof Error?r[0].message:String(r[0])}`)}function uo(){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 Va(e,n){if(n.length===0)throw new Error("RSA \u52A0\u5BC6\uFF1A\u660E\u6587\u4E3A\u7A7A");let t=Ja(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),g=t.encrypt(ao(n.subarray(d,c)),"RSAES-PKCS1-V1_5");o.push(so(g));}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 za(e){let n=e.teaKey??uo();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=Xe(t,e.plain);return {secretKey:Va(e.publicKey,t),cipherData:r}}function Wa(e){return Qe(e.teaKey,e.cipherData)}function Ya(e){return Xe(e.teaKey,e.plain)}function Qa(e){return Ct(e.teaKey,e.plain,"encrypt",void 0,e.signal===void 0?{}:{signal:e.signal})}function Xa(e){return Ct(e.teaKey,e.cipherData,"decrypt",void 0,e.signal===void 0?{}:{signal:e.signal})}function Za(e){return Yr(e.teaKey,e.plain)}function es(e){return Qr(e.teaKey,e.cipherData)}function ns(){return new Promise((e,n)=>{Q.pki.rsa.generateKeyPair({bits:2048,e:65537,workers:-1},(t,r)=>{if(t){n(t);return}e({publicKeyBase64:ja(Q.pki.publicKeyToPem(r.publicKey)),privateKey:Q.pki.privateKeyToPem(r.privateKey)});});})}function ts(){return {decryptEndToEnd:qa,encryptEndToEnd:za,decryptSymmetric:Wa,encryptSymmetric:Ya,encryptSymmetricChunked:Qa,decryptSymmetricChunked:Xa,encryptFileSimple:Za,decryptFileSimple:es,randomTeaKey:uo,generateTempKeyPair:ns,rsaDecryptPkcs1:lo}}function It(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function nn(e,n){return U(e,"/friend/apply/list_paginated",{type:n.listType,page:n.page,page_size:n.pageSize},It(n.clientType,"GET"))}function tn(e,n){return U(e,"/friend/apply/agree",{id:n.applicationId},It(n.clientType,"POST"))}function rn(e,n){return U(e,"/friend/apply/del",{id:n.applicationId},It(n.clientType,"POST"))}var po=50,fo=20,mo=1,vt=2,St=3,rs=4,os=5,go=0,is=1,as=2;function ss(e){switch(e){case go:case is:case as: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},Z=class extends Error{constructor(n){super(`application \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ApplicationMappingError";}};function j(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function yo(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 ho(e){let n=j(e.status);if(e.status===void 0||n==="")return true;let t=Number(n),r=ss(t);if(r===void 0)throw new Z(`\u672A\u77E5\u7533\u8BF7\u72B6\u6001\uFF1A${n}`);return r===go}function cs(e){let n=j(e.type);if(n==="")return true;if(Number(n)!==mo)throw new Z(`\u8054\u7CFB\u4EBA\u7533\u8BF7\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${n}`);return true}function ds(e){let n=Number(j(e.type));if(n!==vt&&n!==St&&n!==rs&&n!==os)throw new Z(`GROUP/CHANNEL \u6DF7\u5408\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${j(e.type)||"<empty>"}`);return n}function _n(e){if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>po)throw new Z(`limit \u5FC5\u987B\u4E3A 1-${po}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit};if(!/^[1-9]\d*$/.test(e.cursor))throw new Z("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let n=Number(e.cursor);if(!Number.isSafeInteger(n))throw new Z("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {page:n,pageSize:e.limit}}function bo(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 Z("data.list \u5FC5\u987B\u662F\u6570\u7EC4\uFF0C\u6216\u5728 count=0 \u65F6\u4E3A null")}function At(e){let n=e.trim();if(n==="")throw new Z("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");return n}function ls(e){let n=At(j(e.id)||j(e.aid)),t=j(e.user_id)||j(e.user_info?.user_id),r=j(e.nick_name??e.nickname??e.name)||j(e.user_info?.nick_name??e.user_info?.nickname??e.user_info?.name);if(t===""||r==="")throw new Z(`\u8054\u7CFB\u4EBA\u7533\u8BF7\u4EBA\u8EAB\u4EFD\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let o=j(e.head_img_url??e.avatar)||j(e.user_info?.head_img_url??e.user_info?.avatar),i=j(e.user_info?.mid),a=yo(e.create_time??e.createTime??e.update_version);return {applicationId:n,applicantId:t,applicantName:r,...o===""?{}:{applicantAvatar:o},...i===""?{}:{applicantDisplayId:i},message:j(e.remarks??e.introduce_self),...a===void 0?{}:{createdAt:a}}}function us(e){let n=At(j(e.id)||j(e.aid)),t=j(e.group_id)||j(e.group_info?.group_id);if(t==="")throw new Z(`GROUP id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let r=j(e.user_id)||j(e.user_info?.user_id),o=j(e.nick_name??e.nickname??e.name)||j(e.user_info?.nick_name??e.user_info?.nickname??e.user_info?.name);if(r===""||o==="")throw new Z(`GROUP \u7533\u8BF7\u4EBA\u6216\u9080\u8BF7\u4EBA\u8EAB\u4EFD\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let i=j(e.head_img_url??e.avatar)||j(e.user_info?.head_img_url??e.user_info?.avatar),a=j(e.user_info?.mid),s=j(e.group_info?.name??e.group_info?.group_name);if(s==="")throw new Z(`GROUP \u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let d=j(e.group_info?.head_img_url??e.group_info?.avatar),c=yo(e.create_time??e.createTime??e.update_version);return {applicationId:n,groupId:t,kind:Number(e.type)===St?"invite":"request",actor:{id:r,name:o,...i===""?{}:{avatarUrl:i},...a===""?{}:{displayId:a}},target:{id:t,name:s,...d===""?{}:{avatarUrl:d}},message:j(e.remarks??e.introduce_self),...c===void 0?{}:{createdAt:c}}}async function xn(e,n,t){let r=await t(e.client,{applicationId:At(n),clientType:e.clientType});if(!r.ok)throw new Oe(r.code,r.message)}function ps(e){async function n(t){let{pageSize:r}=_n(t),{page:o}=_n(t);for(let i=0;i<fo;i+=1){let a=await nn(e.client,{listType:mo,page:o,pageSize:r,clientType:e.clientType});if(!a.ok)throw new Oe(a.code,a.message);let s=bo(a.data),d=s.filter(P=>cs(P)&&ho(P)).map(ls),c=s.length<r,g=o+1;if(d.length>0||c)return {items:d,exhausted:c,...c?{}:{nextCursor:String(g)}};o=g;}return {items:[],exhausted:false,nextCursor:String(o)}}return {listPendingApplications:n,acceptApplication:t=>xn(e,t,tn),ignoreApplication:t=>xn(e,t,rn)}}function fs(e){async function n(t){let{pageSize:r}=_n(t),{page:o}=_n(t);for(let i=0;i<fo;i+=1){let a=await nn(e.client,{listType:vt,page:o,pageSize:r,clientType:e.clientType});if(!a.ok)throw new Oe(a.code,a.message);let s=bo(a.data),d=s.filter(P=>{let y=ds(P);return (y===vt||y===St)&&ho(P)}).map(us),c=s.length<r,g=o+1;if(d.length>0||c)return {items:d,exhausted:c,...c?{}:{nextCursor:String(g)}};o=g;}return {items:[],exhausted:false,nextCursor:String(o)}}return {listPendingApplications:n,acceptApplication:t=>xn(e,t,tn),ignoreApplication:t=>xn(e,t,rn)}}function H(e){let n=typeof e=="string"||typeof e=="number"?String(e).trim():"";return n===""?void 0:n}function ms(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 gs(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 ys(e){let n=Number(e.product_id),t=ms(e.is_dynamic);return {...gs(e.config_type),...H(e.appid)===void 0?{}:{appId:H(e.appid)},...Number.isInteger(n)?{productId:n}:{},...H(e.domain)===void 0?{}:{domain:H(e.domain)},...H(e.suffix_address)===void 0?{}:{suffixAddress:H(e.suffix_address)},...H(e.developer_id)===void 0?{}:{developerId:H(e.developer_id)},...H(e.introduction)===void 0?{}:{introduction:H(e.introduction)},...H(e.icon)===void 0?{}:{icon:H(e.icon)},...H(e.icon_small)===void 0?{}:{iconSmall:H(e.icon_small)},...H(e.icon_medium)===void 0?{}:{iconMedium:H(e.icon_medium)},...H(e.icon_large)===void 0?{}:{iconLarge:H(e.icon_large)},...t===void 0?{}:{isDynamic:t},...H(e.lang_types)===void 0?{}:{langTypes:H(e.lang_types)},...H(e.currency_types)===void 0?{}:{currencyTypes:H(e.currency_types)},...H(e.simple_chinese_name)===void 0?{}:{nameZhHans:H(e.simple_chinese_name)},...H(e.unsimplified_chinese_name)===void 0?{}:{nameZhHant:H(e.unsimplified_chinese_name)},...H(e.english_name)===void 0?{}:{nameEn:H(e.english_name)},...H(e.vietnamese_name)===void 0?{}:{nameVi:H(e.vietnamese_name)},...H(e.thai_name)===void 0?{}:{nameTh:H(e.thai_name)},...H(e.h5_url)===void 0?{}:{h5Url:H(e.h5_url)}}}function wo(e,n){return Array.isArray(e.mini_program_rel_list)?e.mini_program_rel_list.filter(t=>t!==null&&typeof t=="object").map(t=>ys(t)):n.source==="info"?[]:void 0}function Co(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function Po(e,n){return U(e,"/user_radio/list",{user_id:n.userId,update_version:n.updateVersion,page:n.page,page_size:n.pageSize},Co(n.clientType,"GET"))}function Io(e,n){return U(e,"/user_radio/info",{radio_id:n.channelId},Co(n.clientType,"POST"))}var vo=500,on=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 So(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 hs(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 bs(e,n){return Number(e)===1?"member":Number(e)===9?"admin":Number(e)===10?"owner":n===false?"guest":"unknown"}function ws(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 Cs(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 Ps(e){if(e!=null)return Number(e)===1?"standard":Number(e)===2?"competition":"unknown"}function Is(e){let n=Ae(e);return n!==void 0&&/^\d+$/.test(n)?n.replace(/^0+(?=\d)/,""):void 0}function vs(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 Ao(e,n,t){let r=So(e.radio_id??e.id,"id"),o=So(e.name,"name"),i=e.is_in===void 0?void 0:Be(e.is_in),a=bs(e.radio_user?.role_id,i),s=ws(e),d=Cs(e,a,s),c=Ca$1({channelState:s,snapshot:d,nowMs:n}),g={...d,resolvedState:c.channelState},P=Is(e.update_version),y=Ae(e.head_img_url),p=Ae(e.desc),w=Ae(e.user_id),C=Number(e.total_users),M=Ps(e.type),_=hs(e.radio_setting?.is_unvisit_other),D=e.verify_way===void 0?void 0:Number(e.verify_way),R=D!==void 0&&Number.isSafeInteger(D)?D:void 0,I=Ae(e.invite_code),T=wo(e,{source:t});return {id:r,name:o,...y===void 0?{}:{avatar:y},...p===void 0?{}:{description:p},...w===void 0?{}:{ownerId:w},...Number.isFinite(C)&&C>=0?{memberCount:C}:{},...R===void 0?{}:{verifyType:R},...I===void 0?{}:{inviteCode:I},role:a,permissions:c.permissions,channelState:c.channelState,allMembersMuted:g.allMembersMuted,..._===void 0?{}:{memberPrivateChatDisabled:_},accessSnapshot:g,...e.radio_user?.is_undisturb===void 0?{}:{muted:Be(e.radio_user.is_undisturb)},...M===void 0?{}:{channelKind:M},...P===void 0?{}:{updateVersion:P},...T===void 0?{}:{miniProgramRels:T}}}function Mo(e){return {...e,updatedAt:Date.now()}}function _o(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 Mt(e,n){let{updatedAt:t,...r}=_o(e,n);return r}function Ss(e){let n=new Map,t=new Map,r=new Map,o="0",i=false,a=null,s=0,d=null,c=0;function g(){if(i)return Promise.resolve();if(a!==null)return a;let p=s;return a=(async()=>{if(e.storage!==void 0){let[w,C]=await Promise.all([e.storage.getChannelProfiles(),e.storage.getChannelListVersion()]);if(p!==s)return;for(let M of w)n.set(M.id,_o(M,e.now?.()??Date.now()));o=/^\d+$/.test(C)?C:"0";}i=true;})().finally(()=>{a=null;}),a}function P(p){if(p?.forceRefresh!==true&&d!==null)return d;let w=++c,C=(async()=>{await g();let M=(await e.getUserId()).trim();if(M==="")throw new fe("user_id \u4E0D\u80FD\u4E3A\u7A7A");let _=p?.forceRefresh===true?"0":o,D=[];for(let I=1;;I+=1){let T=await Po(e.client,{userId:M,updateVersion:_,page:I,pageSize:vo,clientType:e.clientType});if(!T.ok)throw new on(T.code,T.message);if(T.data===null)break;if(!Array.isArray(T.data))throw new fe("list data \u5FC5\u987B\u662F\u6570\u7EC4");let O=e.now?.()??Date.now(),u=T.data.map(f=>Ao(f,O,"list"));if(D.push(...u),u.length<vo)break}if(w!==c)return [...n.values()].map(I=>Mt(I,e.now?.()??Date.now()));let R=o;for(let I of D)n.set(I.id,Mo(I)),I.updateVersion!==void 0&&(R=vs(R,I.updateVersion));return o=R,e.storage!==void 0&&(await e.storage.saveChannelProfiles([...n.values()]),await e.storage.saveChannelListVersion(o)),[...n.values()].map(I=>Mt(I,e.now?.()??Date.now()))})();return d=C,C.finally(()=>{d===C&&(d=null);}).catch(()=>{}),C}function y(p,w){let C=p.trim();if(C==="")return Promise.reject(new fe("channel id \u4E0D\u80FD\u4E3A\u7A7A"));let M=w?.forceRefresh===true;if(!M){let R=t.get(C);if(R!==void 0)return R}let _=(r.get(C)??0)+1;M&&r.set(C,_);let D=(async()=>{await g();let R=n.get(C);if(!M&&R!==void 0&&R.miniProgramRels!==void 0)return Mt(R,e.now?.()??Date.now());let I=await Io(e.client,{channelId:C,clientType:e.clientType});if(!I.ok)throw new on(I.code,I.message);if(I.data===null||I.data===void 0)throw new fe("info data \u4E0D\u80FD\u4E3A\u7A7A");let T=Ao(I.data,e.now?.()??Date.now(),"info");if(T.id!==C)throw new fe(`info id \u4E0D\u5339\u914D\uFF1A\u8BF7\u6C42 ${C}\uFF0C\u54CD\u5E94 ${T.id}`);if((r.get(C)??_)===_){let O=Mo(T);n.set(C,O),await e.storage?.saveChannelProfiles([O]);}return T})().finally(()=>{t.get(C)===D&&t.delete(C);});return r.set(C,_),t.set(C,D),D}return {listProfiles:P,getProfile:y,clearCache(){s+=1,c+=1;for(let p of new Set([...n.keys(),...t.keys(),...r.keys()]))r.set(p,(r.get(p)??0)+1);n.clear(),t.clear(),d=null,o="0",i=true,a=null;}}}function xo(e,n){return nn(e,{listType:2,page:n.page,pageSize:n.pageSize,clientType:n.clientType})}function Ro(e,n){return tn(e,n)}function Eo(e,n){return rn(e,n)}var As=20,ko=50,Ms=20,_s=2,xs=3,Do=4,Rs=5,Uo=0,Es=1,ks=2;function Ts(e){switch(e){case Uo:case Es:case ks:return e;default:return}}var an=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},re=class extends Error{constructor(n){super(`CHANNEL join application \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelJoinApplicationMappingError";}};function q(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Ds(e){let n=q(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 Us(e){let n=q(e.status);if(e.status===void 0||n==="")return true;let t=Number(n),r=Ts(t);if(r===void 0)throw new re(`\u672A\u77E5\u7533\u8BF7\u72B6\u6001\uFF1A${n}`);return r===Uo}function Os(e){let n=Number(q(e.type));if(n!==_s&&n!==xs&&n!==Do&&n!==Rs)throw new re(`GROUP/CHANNEL \u6DF7\u5408\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${q(e.type)||"<empty>"}`);return n}function Bs(e){let n=q(e.id)||q(e.aid),t=q(e.user_id)||q(e.user_info?.user_id),r=e.radio_info??e.channel_info,o=q(e.radio_id)||q(e.channel_id)||q(r?.radio_id)||q(r?.channel_id);if(n==="")throw new re("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");if(t==="")throw new re(`\u7533\u8BF7\u4EBA id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);if(o==="")throw new re(`CHANNEL id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let i=q(e.user_info?.nick_name)||q(e.user_info?.nickname)||q(e.user_info?.name)||t,a=q(e.user_info?.head_img_url)||q(e.user_info?.avatar),s=q(e.user_info?.mid),d=q(r?.name)||q(r?.radio_name)||q(r?.channel_name)||o,c=q(r?.head_img_url)||q(r?.avatar),g=Ds(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:q(e.remarks)||q(e.introduce_self),...g===void 0?{}:{createdAt:g}}}function To(e){if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>ko)throw new re(`limit \u5FC5\u987B\u4E3A 1-${ko}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit||As};if(!/^[1-9]\d*$/.test(e.cursor))throw new re("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let n=Number(e.cursor);if(!Number.isSafeInteger(n))throw new re("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {page:n,pageSize:e.limit}}function Ns(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 re("data.list \u5FC5\u987B\u662F\u6570\u7EC4\uFF0C\u6216\u5728 count=0 \u65F6\u4E3A null")}function Ks(e){let n=e.trim();if(n==="")throw new re("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");return n}function Gs(e){async function n(r){let{pageSize:o}=To(r),{page:i}=To(r);for(let a=0;a<Ms;a+=1){let s=await xo(e.client,{page:i,pageSize:o,clientType:e.clientType});if(!s.ok)throw new an(s.code,s.message);let d=Ns(s.data),c=d.filter(y=>Os(y)===Do&&Us(y)).map(Bs),g=d.length<o,P=i+1;if(c.length>0||g)return {items:c,exhausted:g,...g?{}:{nextCursor:String(P)}};i=P;}return {items:[],exhausted:false,nextCursor:String(i)}}async function t(r,o){let i=await o(e.client,{applicationId:Ks(r),clientType:e.clientType});if(!i.ok)throw new an(i.code,i.message)}return {listJoinApplications:n,acceptJoinApplication:r=>t(r,Ro),ignoreJoinApplication:r=>t(r,Eo)}}function Rn(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function _t(e,n){return U(e,"/user_radio/users",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},Rn(n.clientType,"GET"))}function xt(e,n){return U(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"},Rn(n.clientType,"POST"))}function Oo(e,n){return U(e,"/user_radio/admins",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},Rn(n.clientType,"GET"))}function Bo(e,n){return U(e,"/user_radio/user/infos",{radio_id:n.channelId,user_ids:n.userIds.join(",")},Rn(n.clientType,"POST"))}var En=18,Ls=12,Hs=300*1e3,Fs=32,sn=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},z=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 js(e){return Number(e)===1?"member":Number(e)===9?"admin":Number(e)===10?"owner":"unknown"}function $s(e){let n=me(e);return /^\d+$/.test(n)?n.replace(/^0+(?=\d)/,""):void 0}function Rt(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 No(e,n){let t=me(e.radio_id);if(t==="")throw new z("radio_id \u4E0D\u80FD\u4E3A\u7A7A");if(t!==n)throw new z(`\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 z("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 z(`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=$s(e.update_version),d=Number(e.join_type);return {userId:r,...o===""?{}:{nickname:o},displayName:o||i||r,...a===""?{}:{avatar:a},role:js(e.role_id),...Number.isInteger(d)?{joinType:d}:{},...s===void 0?{}:{updateVersion:s}}}function qs(e){if(e.channelId.trim()==="")throw new z("channelId \u4E0D\u80FD\u4E3A\u7A7A");if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>En)throw new z(`limit \u5FC5\u987B\u4E3A 1-${En}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit};if(!/^[1-9]\d*$/.test(e.cursor))throw new z("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let t=Number(e.cursor);if(!Number.isSafeInteger(t))throw new z("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {page:t,pageSize:e.limit}}function Ko(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){let n=e.now??(()=>Date.now()),t=e.isActive??(()=>true),r=e.cacheTtlMs??Hs,o=new Map,i=new Map,a=new Map,s=new Map,d=new Map,c=new Set,g=new Set,P=(f,m)=>`${f}:${m}`;function y(f){let m=d.get(f);return m!==void 0?m:(d.set(f,0),0)}function p(f){let m=f.trim();if(m==="")throw new z("channelId \u4E0D\u80FD\u4E3A\u7A7A");return m}function w(f){for(i.delete(f.channelId),i.set(f.channelId,f);i.size>Fs;){let m=i.keys().next().value;if(m===void 0)break;i.delete(m);}}function C(f){let m=i.get(f);if(m!==void 0)return w(m),Promise.resolve(m);if(g.has(f)||e.storage?.getChannelMemberSnapshot===void 0)return Promise.resolve(null);let h=a.get(f);if(h!==void 0)return h;let l=y(f),b=e.storage.getChannelMemberSnapshot(f).then(S=>!t()||S===null||S.channelId!==f||l!==y(f)||g.has(f)?null:(w(S),S)).finally(()=>{a.get(f)===b&&a.delete(f);});return a.set(f,b),b}function M(f,m){let h=f.map(b=>b.userId),l=new Map(f.map(b=>[b.userId,b]));for(let b of m){l.has(b.userId)||h.push(b.userId);let S=l.get(b.userId);(S===void 0||Rt(b.updateVersion,S.updateVersion)>=0)&&l.set(b.userId,b);}return h.map(b=>l.get(b))}async function _(f,m){let h=await ga$1(m);return f.filter(l=>h.match(l.displayName)!==null||h.match(l.userId,{pinyin:false})!==null)}async function D(f,m,h={}){if(!t()||m!==y(f.channelId))return;let l=f.channelId,b=g.has(l),S=h.allowPersistentRebuild===true&&b&&e.storage?.deleteChannelMemberSnapshot===void 0&&e.storage?.saveChannelMemberSnapshot!==void 0;(!b||S)&&await e.storage?.saveChannelMemberSnapshot?.(f),t()&&m===y(l)&&(w(f),h.allowPersistentRebuild===true&&(!b||e.storage?.deleteChannelMemberSnapshot===void 0)&&g.delete(l));}async function R(f,m,h,l,b=false,S){let A=await C(f);if(!t()||h!==y(f))return;let x=n(),v=S!==void 0&&A?.nextCursor===S,E=b&&A!==null&&!v,k=l!==void 0&&!E?l.nextCursor:A?.nextCursor,B={channelId:f,items:M(A?.items??[],m),...k===void 0?{}:{nextCursor:k},exhausted:E?A.exhausted:l?.exhausted??A?.exhausted??false,updatedAt:x};await D(B,h);}async function I(f,m,h){if(!t()||h!==y(f))return [...m];let l=n(),b=l+r,S=[],A=[],x=new Map;for(let v of m){let E=P(f,v.userId),k=o.get(E)?.member;if(k!==void 0&&Rt(v.updateVersion,k.updateVersion)<0){A.push(k);continue}S.push({channelId:f,...v,updatedAt:l}),A.push(v),x.set(E,{member:v,expiresAt:b});}if(S.length>0&&t()&&h===y(f)&&!c.has(f)&&(await e.storage?.saveChannelMembers?.(S),e.storage?.getChannelMembers!==void 0&&t()&&h===y(f))){let v=await e.storage.getChannelMembers(f,S.map(k=>k.userId)),E=new Map(v.map(k=>{let{channelId:B,updatedAt:N,...$}=k;return [$.userId,{member:$,updatedAt:N}]}));for(let k=0;k<A.length;k+=1){let B=A[k];if(B===void 0)continue;let N=E.get(B.userId);N===void 0||Rt(N.member.updateVersion,B.updateVersion)<=0||(A[k]=N.member,x.set(P(f,B.userId),{member:N.member,expiresAt:N.updatedAt+r}));}}if(t()&&h===y(f))for(let[v,E]of x)o.set(v,E);return A}async function T(f,m){let h=p(f.channelId),{page:l,pageSize:b}=qs({...f,channelId:h}),S=y(h),A=await m(h,l,b);if(!A.ok)throw new sn(A.code,A.message);if(A.data!==null&&!Array.isArray(A.data))throw new z("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let x=Ko((A.data??[]).map(k=>No(k,h))),v=await I(h,x,S),E=(A.data??[]).length<b;return {items:v,exhausted:E,...E?{}:{nextCursor:String(l+1)}}}function O(f){let m=p(f),h=s.get(m);if(h!==void 0)return h;let l=y(m),b=(async()=>{let S,A=false,x=[];for(let E=0;E<Ls&&!A;E+=1){let k=await T({channelId:m,limit:En,...S===void 0?{}:{cursor:S}},(B,N,$)=>_t(e.client,{channelId:B,page:N,pageSize:$,clientType:e.clientType}));if(!t()||l!==y(m))throw new z("\u6210\u5458\u5FEB\u7167\u9884\u53D6\u5DF2\u56E0\u6210\u5458\u53D8\u5316\u5931\u6548");x=M(x,k.items),S=k.nextCursor,A=k.exhausted;}let v={channelId:m,items:x,...S===void 0?{}:{nextCursor:S},exhausted:A,updatedAt:n()};return await D(v,l,{allowPersistentRebuild:true}),{items:v.items,...v.nextCursor===void 0?{}:{nextCursor:v.nextCursor},exhausted:v.exhausted}})().finally(()=>{s.get(m)===b&&s.delete(m);});return s.set(m,b),b}async function u(f){let m=p(f),h=y(m)+1;d.set(m,h),c.add(m),g.add(m),i.delete(m),a.delete(m),s.delete(m);let l=`${m}:`;for(let b of o.keys())b.startsWith(l)&&o.delete(b);e.storage?.deleteChannelMembers===void 0&&e.storage?.deleteChannelMemberSnapshot===void 0||(await Promise.all([e.storage.deleteChannelMembers?.(m),e.storage.deleteChannelMemberSnapshot?.(m)]),h===y(m)&&(e.storage?.deleteChannelMembers!==void 0&&c.delete(m),e.storage?.deleteChannelMemberSnapshot!==void 0&&g.delete(m)));}return {async prefetchMembers(f){let m=p(f),h=await C(m),l=g.has(m);h!==null&&!l&&h.updatedAt+r>n()||await O(m);},async getCachedMembers(f){let m=p(f.channelId),h=await C(m);if(h===null)return null;let l=f.query?.trim()??"";return l===""&&g.has(m)?null:l===""?{items:[...h.items],...h.nextCursor===void 0?{}:{nextCursor:h.nextCursor},exhausted:h.exhausted}:{items:await _(h.items,l),exhausted:true}},async refreshMembers(f){let m=p(f.channelId),h=f.query?.trim()??"";if(h==="")return O(m);let l=y(m),[b,S]=await Promise.all([T({channelId:m,query:h,limit:En},(x,v,E)=>xt(e.client,{channelId:x,query:h,page:v,pageSize:E,updateVersion:"0",clientType:e.clientType})),C(m)]),A=S===null?[]:await _(S.items,h);return await R(m,b.items,l),{...b,items:M(b.items,A)}},async listMembers(f){let m=p(f.channelId),h={...f,channelId:m},l=y(m),b=await T(h,(S,A,x)=>_t(e.client,{channelId:S,page:A,pageSize:x,clientType:e.clientType}));return await R(m,b.items,l,b,h.cursor!==void 0,h.cursor),b},async searchMembers(f){let m=f.query.trim();if(m==="")return Promise.reject(new z("\u641C\u7D22\u5173\u952E\u8BCD\u4E0D\u80FD\u4E3A\u7A7A"));let h=p(f.channelId),l={...f,channelId:h},b=y(h),S=await T(l,(A,x,v)=>xt(e.client,{channelId:A,query:m,page:x,pageSize:v,updateVersion:"0",clientType:e.clientType}));return await R(h,S.items,b),S},listAdmins:f=>T(f,(m,h,l)=>Oo(e.client,{channelId:m,page:h,pageSize:l,clientType:e.clientType})),async getMembersByIds(f,m,h){let l=f.trim();if(l==="")throw new z("channelId \u4E0D\u80FD\u4E3A\u7A7A");let b=[...new Set(m.map(v=>v.trim()).filter(Boolean))];if(b.length===0)return [];let S=h?.forceRefresh===true,A=new Map,x=[];for(let v of b){let E=o.get(P(l,v));!S&&E!==void 0&&E.expiresAt>n()?A.set(v,E.member):x.push(v);}if(!S&&x.length>0&&!c.has(l)&&e.storage?.getChannelMembers!==void 0){let v=y(l),E=await e.storage.getChannelMembers(l,x);if(t()&&v===y(l))for(let{channelId:k,updatedAt:B,...N}of E)k===l&&(o.set(P(l,N.userId),{member:N,expiresAt:B+r}),B+r>n()&&A.set(N.userId,N));x=x.filter(k=>!A.has(k));}if(!t())return b.flatMap(v=>A.has(v)?[A.get(v)]:[]);if(x.length>0){let v=y(l),E=await Bo(e.client,{channelId:l,userIds:x,clientType:e.clientType});if(!E.ok)throw new sn(E.code,E.message);if(E.data!==null&&!Array.isArray(E.data))throw new z("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let k=Ko((E.data??[]).map(G=>No(G,l))),B=x.filter(G=>!k.some(W=>W.userId===G)),N=S&&B.length>0&&v===y(l),$;N?(await u(l),$=k):$=await I(l,k,v);for(let G of $)A.set(G.userId,G);}return b.flatMap(v=>A.has(v)?[A.get(v)]:[])},invalidateChannelMembers:u,clearCache(){let f=new Set(d.keys());for(let m of o.keys())f.add(m.slice(0,m.indexOf(":")));for(let m of i.keys())f.add(m);for(let m of a.keys())f.add(m);for(let m of s.keys())f.add(m);for(let m of c)f.add(m);for(let m of g)f.add(m);for(let m of f)d.set(m,y(m)+1);o.clear(),i.clear(),a.clear(),s.clear(),c.clear(),g.clear();}}}function Go(e){return {responseMode:"strict",method:"POST",...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function Lo(e,n){return U(e,"/user_radio/member/list",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},Go(n.clientType))}function Ho(e,n){return U(e,"/user_radio/member/search",{radio_id:n.channelId,search_name:n.query,page:n.page,page_size:n.pageSize},Go(n.clientType))}var Fo=18,kn=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},le=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 Vs(e){let n=Ne(e.user_id);if(n==="")throw new le("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 zs(e){let n=e.channelId.trim();if(n==="")throw new le("channelId \u4E0D\u80FD\u4E3A\u7A7A");if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>Fo)throw new le(`limit \u5FC5\u987B\u4E3A 1-${Fo}`);if(e.cursor===void 0)return {channelId:n,page:1,pageSize:e.limit};if(!/^[1-9]\d*$/.test(e.cursor))throw new le("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let t=Number(e.cursor);if(!Number.isSafeInteger(t))throw new le("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {channelId:n,page:t,pageSize:e.limit}}function Ws(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 Ys(e){async function n(t,r){let{channelId:o,page:i,pageSize:a}=zs(t),s=await r({channelId:o,page:i,pageSize:a,clientType:e.clientType});if(!s.ok)throw new kn(s.code,s.message);if(s.data!==null&&!Array.isArray(s.data))throw new le("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let d=s.data??[],c=Ws(d.map(Vs)),g=d.length<a;return {items:c,exhausted:g,...g?{}:{nextCursor:String(i+1)}}}return {listMentionMembers:t=>n(t,r=>Lo(e.client,r)),searchMentionMembers:t=>{let r=t.query.trim();return r===""?Promise.reject(new le("\u641C\u7D22\u5173\u952E\u8BCD\u4E0D\u80FD\u4E3A\u7A7A")):n(t,o=>Ho(e.client,{...o,query:r}))}}}function Qs(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 g=await n(`${a}${t}`,{method:"POST",body:r,headers:s,signal:i});if(!g.ok)throw new wa$1({path:t,status:g.status,statusText:g.statusText});let P=await g.arrayBuffer();return new Uint8Array(P)}}}var ue=class extends Error{constructor(n){super(n),this.name="DirectoryMappingError";}};function Tn(e,n){if(e===null||typeof e!="object"||Array.isArray(e))throw new ue(`${n} \u5FC5\u987B\u662F\u5BF9\u8C61`);return e}function te(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function cn(e){let n=te(e);return n===""?void 0:n}function Xs(e){let n=Tn(e,"\u8054\u7CFB\u4EBA\u76EE\u5F55\u9879"),t=n.user_info===void 0?n:Tn(n.user_info,"\u8054\u7CFB\u4EBA user_info"),r=te(t.user_id??n.friend_user_id??n.user_id);if(r==="")throw new ue("\u8054\u7CFB\u4EBA\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A user_id");let o=te(n.remark_name)||te(n.contact_name)||te(t.nick_name)||te(t.username)||te(t.mid)||r,i=te(t.nick_name)||te(t.username)||te(t.mid)||r,a=cn(t.head_img_url),s=cn(t.username)??cn(t.mid);return {id:r,kind:"individual",displayName:o,cardDisplayName:i,...a===void 0?{}:{avatarUrl:a},...s===void 0?{}:{username:s}}}function Zs(e){let n=Tn(e,"\u7FA4\u7EC4\u76EE\u5F55\u9879"),t=te(n.group_id);if(t==="")throw new ue("\u7FA4\u7EC4\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A group_id");let r=cn(n.head_img_url),o=te(n.name)||t;return {id:t,kind:"group",displayName:o,cardDisplayName:o,...r===void 0?{}:{avatarUrl:r}}}function ec(e){let n=Tn(e,"\u793E\u7FA4\u76EE\u5F55\u9879"),t=te(n.radio_id??n.id);if(t==="")throw new ue("\u793E\u7FA4\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A radio_id/id");let r=cn(n.head_img_url),o=te(n.name)||t;return {id:t,kind:"channel",displayName:o,cardDisplayName:o,...r===void 0?{}:{avatarUrl:r}}}function nc(e,n){if(!Number.isSafeInteger(e)||e<1)throw new ue("\u76EE\u5F55 page \u5FC5\u987B\u662F\u6B63\u6574\u6570");if(!Number.isSafeInteger(n)||n<1||n>100)throw new ue("\u76EE\u5F55 pageSize \u5FC5\u987B\u662F 1-100 \u7684\u6574\u6570")}function tc(e){return {async list(n){nc(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 U(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 ue(`${n.kind} \u76EE\u5F55 data \u5FC5\u987B\u662F\u6570\u7EC4`);let a=n.kind==="individual"?Xs:n.kind==="group"?Zs:ec,s=new Map;for(let c of i){let g=a(c);s.set(g.id,g);}let d=i.length<n.pageSize;return {items:[...s.values()],...d?{}:{nextPage:n.page+1},exhausted:d}}}}var rc="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},V=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 ie(e,n){if(e===null||typeof e!="object"||Array.isArray(e))throw new V(`${n} \u5FC5\u987B\u662F\u5BF9\u8C61`);return e}function oe(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Ce(e,n){let t=oe(e);if(t==="")throw new V(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function Le(e){let n=oe(e);return n===""?void 0:n}function Ge(e,n){let t=Number(e);if(!Number.isSafeInteger(t)||t<0)throw new V(`${n} \u5FC5\u987B\u662F\u975E\u8D1F\u6574\u6570`);return t}function oc(e,n){let t=Number(e);if(!Number.isSafeInteger(t))throw new V(`${n} \u5FC5\u987B\u662F\u5B89\u5168\u6574\u6570`);return t}function jo(e,n){let t=Number(e);if(!Number.isFinite(t)||t<=0)throw new V(`${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 V(`${n} \u4E0D\u662F\u5408\u6CD5 URL\uFF1A${o instanceof Error?o.message:String(o)}`)}if(r.protocol!=="https:"&&r.protocol!=="http:")throw new V(`${n} \u53EA\u652F\u6301 HTTP(S)`);if(r.username!==""||r.password!=="")throw new V(`${n} \u4E0D\u5141\u8BB8\u5305\u542B URL \u51ED\u636E`);return t}function Et(e,n){if(e==null)return [];if(Array.isArray(e))return e;let r=ie(e,n).list;if(r==null)return [];if(!Array.isArray(r))throw new V(`${n}.list \u5FC5\u987B\u662F\u6570\u7EC4\u6216 null`);return r}function dn(e){return e==="sticker"?1:e==="gif"?2:3}function $o(e){let n=ie(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:oe(n.nameZh??n.name_zh),nameEn:oe(n.nameEn??n.name_en),nameTh:oe(n.nameTh??n.name_th),nameTw:oe(n.nameTw??n.name_tw),nameVi:oe(n.nameVi??n.name_vi),publisher:oe(n.publisher),trayIconUrl:_e(n.trayIcon??n.tray_icon,"\u8D34\u56FE\u5305 trayIcon"),sortWeight:oc(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 kt(e,n,t,r){let o=ie(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 ic(e,n){if(n!=="emoji")return kt(e,n,"\u6700\u8FD1\u4F7F\u7528\u9879");let t=ie(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 qo(e,n,t){let r=dn(n);return Et(e,t).filter(o=>{let i=ie(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 V(`${t} item.favType \u5FC5\u987B\u662F 1\u30012 \u6216 3`);return s===r})}function Vo(e){return {fav_type:dn(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 ac(e){return e.kind!=="emoji"?Vo(e):{fav_type:dn(e.kind),pack_id:"",img_url:e.token,file_name:e.resourceId,width:0,height:0}}function Jo(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 V("\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 sc(e){let n=ie(e,"Giphy item"),t=ie(n.images,"Giphy item.images"),r=ie(t.original,"Giphy item.images.original"),o=t.fixed_width,i=o==null?void 0:ie(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"),g=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:oe(n.title)||"GIF",url:a,previewUrl:c,...g===void 0?{}:{fallbackPreviewUrl:g},width:jo(r.width,"Giphy original.width"),height:jo(r.height,"Giphy original.height")}}function cc(e,n){let t=ie(e,"Giphy response");if(!Array.isArray(t.data))throw new V("Giphy response.data \u5FC5\u987B\u662F\u6570\u7EC4");let r=ie(t.pagination,"Giphy response.pagination"),o=Ge(r.offset??n,"Giphy pagination.offset");if(o!==n)throw new V("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 g=sc(c);s.set(g.resourceId,g);}let d=o+i;return {items:[...s.values()],offset:o,totalCount:a,...i>0&&d<a?{nextOffset:d}:{}}}function dc(e){async function n(r,o,i){if(e.coreClient===void 0)throw new Ke("core");let a=await U(e.coreClient,r,o,{method:"POST",responseMode:"strict"});if(!a.ok)throw new Y(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(`${rc}/${r}?${s.toString()}`);}catch{throw new Me(0,"network failure")}let c;try{c=await d.json();}catch(P){throw d.ok?new V(`Giphy response \u4E0D\u662F JSON\uFF1A${P instanceof Error?P.message:String(P)}`):new Me(d.status,"")}if(!d.ok){let P=c!==null&&typeof c=="object"&&!Array.isArray(c)?c.meta:void 0,y=P!==null&&typeof P=="object"&&!Array.isArray(P)?oe(P.msg):"";throw new Me(d.status,y)}let g=c!==null&&typeof c=="object"&&!Array.isArray(c)?c.meta:void 0;if(g!==null&&typeof g=="object"&&!Array.isArray(g)){let P=g,y=Number(P.status);if(Number.isFinite(y)&&y!==200)throw new Me(y,oe(P.msg))}return cc(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($o)};if(o==null)return {version:"",items:[]};let i=ie(o,"\u8D34\u56FE\u5305\u5217\u8868 data"),a=i.list??i.packs;if(a==null)return {version:oe(i.version),items:[]};if(!Array.isArray(a))throw new V("\u8D34\u56FE\u5305\u5217\u8868 data.list \u5FC5\u987B\u662F\u6570\u7EC4\u6216 null");return {version:oe(i.version),items:a.map($o)}},async listStickerItems(r){let o=await n("/user/sticker/item_list",{pack_id:r},"\u8D34\u56FE\u660E\u7EC6\u5217\u8868");return Et(o,"\u8D34\u56FE\u660E\u7EC6\u5217\u8868 data").map(i=>kt(i,"sticker","\u8D34\u56FE\u660E\u7EC6",r))},async listFavorites(r){let o=await n("/user/sticker/my_fav/list",{fav_type:dn(r)},"\u8868\u60C5\u6536\u85CF\u5217\u8868");return qo(o,r,"\u8868\u60C5\u6536\u85CF\u5217\u8868 data").map(i=>kt(i,r,"\u8868\u60C5\u6536\u85CF\u9879"))},async addFavorite(r){await n("/user/sticker/my_fav/add",Vo(r),"\u6DFB\u52A0\u8868\u60C5\u6536\u85CF");},async deleteFavorites(r){await n("/user/sticker/my_fav/del",{ids:Jo(r)},"\u5220\u9664\u8868\u60C5\u6536\u85CF");},async listRecent(r){let o=await n("/user/sticker/recent/list",{fav_type:dn(r)},"\u6700\u8FD1\u4F7F\u7528\u5217\u8868");return qo(o,r,"\u6700\u8FD1\u4F7F\u7528\u5217\u8868 data").map(i=>ic(i,r))},async reportRecent(r){await n("/user/sticker/recent/report",ac(r),"\u4E0A\u62A5\u6700\u8FD1\u4F7F\u7528");},async deleteRecent(r){await n("/user/sticker/recent/del",{ids:Jo(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 Et(o,"\u5FEB\u6377\u56DE\u5E94 Top data").map(i=>{let a=ie(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 zo(e,n){let t=n.clientType===void 0?void 0:{headers:{"Client-type":String(n.clientType)}};return (await U(e,"/user_group/info",{group_id:n.groupId},t)).data}function lc(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 uc(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 Wo=200,pc=50;async function Yo(e,n){let t=String(n.updateVersion??0).trim()||"0",r=[],o;for(let i=1;i<=pc;i++){let a={group_id:n.groupId,update_version:t,page:String(i),page_size:String(Wo)},{data:s}=await U(e,"/user_group/user/list",a,{method:"GET",...n.clientType===void 0?{}:{headers:{"Client-type":String(n.clientType)}}});if(s===null)break;let d=lc(s);if(d.length===0)break;for(let g of d){let P=String(g.user_id??g.userId??"").trim();if(P==="")continue;let y={userId:P,nickName:String(g.nick_name??g.nickName??"").trim()},p=uc(g.join_type??g.joinType);p!==void 0&&(y.joinType=p),r.push(y);}let c=s.update_version;if(typeof c=="number"&&(o=c),d.length<Wo)break}return {members:r,updateVersion:o}}async function Qo(e,n){return (await U(e,"/user/info/friend",{friend_user_id:n.userId})).data}var fc=1440*60*1e3;function Tt(e,n,t=fc){let r=new Map,o=new Map,i=new Map;function a(g){let P=(i.get(g)??0)+1;i.set(g,P);let y=e(g).then(p=>(p!==null&&i.get(g)===P&&(r.set(g,p),n?.save(g,p).catch(()=>{})),p)).finally(()=>{o.get(g)===y&&o.delete(g);});return o.set(g,y),y}return {get:async(g,P)=>{if(P?.forceRefresh===true)return a(g);let y=r.get(g);if(y!==void 0)return y;let p=o.get(g);if(p!==void 0)return p;if(n!==void 0)try{let w=i.get(g)??0,C=await n.get(g);if(C!==null)return (i.get(g)??0)===w&&(r.set(g,C.value),Date.now()-C.updatedAt>t&&a(g)),C.value}catch{}return a(g)},peek:async g=>{let P=r.get(g);if(P!==void 0)return {value:P,stale:false};if(n===void 0)return null;try{let y=i.get(g)??0,p=await n.get(g);if(p!==null)return (i.get(g)??0)===y&&r.set(g,p.value),{value:p.value,stale:Date.now()-p.updatedAt>t}}catch{}return null},clear:()=>{for(let g of new Set([...r.keys(),...o.keys(),...i.keys()]))i.set(g,(i.get(g)??0)+1);r.clear(),o.clear();}}}function mc(e){async function n(y){let p=await Qo(e.client,{userId:y})??await en(e.client,{userId:y});return p===null?null:ca$1(p)}async function t(y){let p=await zo(e.client,{groupId:y,clientType:e.clientType});return p===null?null:da$1(p)}async function r(y){let{members:p}=await Yo(e.client,{groupId:y,clientType:e.clientType});return p.length===0?null:p}function o(y){let p={};for(let w of y)w.nickName!==""&&(p[w.userId]=w.nickName);return p}let{storage:i}=e,a=i===void 0?void 0:{get:async y=>{let p=await i.getUserProfile(y);return p===null?null:{value:p,updatedAt:p.updatedAt}},save:async(y,p)=>{await i.saveUserProfile({...p,updatedAt:Date.now()});}},s=i===void 0?void 0:{get:async y=>{let p=await i.getGroupMembers(y);return p===null?null:{value:p.members.map(w=>({userId:w.userId,nickName:w.groupNick,...w.joinType===void 0?{}:{joinType:w.joinType}})),updatedAt:p.updatedAt}},save:async(y,p)=>{let w=p.map(C=>({userId:C.userId,groupNick:C.nickName,...C.joinType===void 0?{}:{joinType:C.joinType}}));await i.saveGroupMembers({groupId:y,members:w,updatedAt:Date.now()});}},d=i===void 0?void 0:{get:async y=>{let p=await i.getGroupProfile(y);return p===null?null:{value:p,updatedAt:p.updatedAt}},save:async(y,p)=>{await i.saveGroupProfile({...p,updatedAt:Date.now()});}},c=Tt(n,a),g=Tt(t,d),P=Tt(r,s);return {getUserProfile:(y,p)=>c.get(y,p),getGroupProfile:(y,p)=>g.get(y,p),getGroupMemberNames:async(y,p)=>{let w=await P.get(y,p);return w===null?null:o(w)},listGroupMembers:(y,p)=>P.get(y,p),peekUserProfile:y=>c.peek(y),peekGroupMemberNames:async y=>{let p=await P.peek(y);return p===null?null:{value:o(p.value),stale:p.stale}},peekGroupMembers:y=>P.peek(y),peekGroupProfile:y=>g.peek(y),clearCache:()=>{c.clear(),g.clear(),P.clear();}}}var Dn=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 gc(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 Xo(e,n,t){let r=gc(t),i=await U(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 Dn(n,i.code,i.message)}function yc(e,n){return Xo(e,"bind",n)}function hc(e,n){return Xo(e,"unbind",n)}function bc(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}async function ae(e,n,t,r){let o=await U(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new Y(r,o.code,o.message)}function wc(e){return ae(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 Cc(e){return ae(e.client,"/user_radio/user/setting",{radio_id:e.channelId,nick_name:e.nickname},"\u4FEE\u6539\u793E\u7FA4\u6635\u79F0")}function Pc(e){return ae(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 Ic(e){let n=e.userIds.map(t=>({user_id:bc(t)}));return ae(e.client,"/user_radio/invited_users",{radio_id:e.channelId,members:JSON.stringify(n)},"\u9080\u8BF7\u793E\u7FA4\u6210\u5458")}function vc(e){return ae(e.client,"/user_radio/kick_user",{radio_id:e.channelId,user_id:e.userId},"\u79FB\u9664\u793E\u7FA4\u6210\u5458")}function Sc(e){return ae(e.client,"/user_radio/add_admin",{radio_id:e.channelId,user_id:e.userId},"\u8BBE\u4E3A\u793E\u7FA4\u7BA1\u7406\u5458")}function Ac(e){return ae(e.client,"/user_radio/del_admin",{radio_id:e.channelId,user_id:e.userId},"\u53D6\u6D88\u793E\u7FA4\u7BA1\u7406\u5458")}function Mc(e){return ae(e.client,"/user_radio/transfer",{radio_id:e.channelId,user_id:e.userId},"\u8F6C\u8BA9\u793E\u7FA4")}function _c(e){return ae(e.client,"/user_radio/user/quit",{radio_id:e.channelId,...e.newOwnerId===void 0?{}:{user_id:e.newOwnerId}},"\u9000\u51FA\u793E\u7FA4")}function xc(e){return ae(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 Rc(e){return ae(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 Ec(e){return ae(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 kc(e){return ae(e.client,"/user_radio/closed",{radio_id:e.channelId},"\u89E3\u6563\u793E\u7FA4")}async function Tc(e){e.signal?.throwIfAborted(),Dc(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=F$1({userId:e.userId,clientType:e.clientType,pulls:[{channelId:e.channelId,baseIndex:n,direction:0,count:20,contain:t?1:0}]}),o=await e.http.postProtobuf({path:"/channel/v1/offlineMessages",body:r,...e.signal===void 0?{}:{signal:e.signal}});e.signal?.throwIfAborted();let i=I(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 Dc(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 Uc(e){let n=Oc(e.indexes),t=f.encode(f.create({sUserId:Dt(e.userId,"user"),lsIndex:n.map(i=>({sChnnId:Dt(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 Oc(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=>{Dt(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 Dt(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}function ln(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Zo(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:void 0}async function Bc(e){let n=await U(e,"/friend/black/list",{},{responseMode:"strict",method:"POST"});if(!n.ok)throw new Error(`\u52A0\u8F7D\u9ED1\u540D\u5355\u5931\u8D25\uFF08${n.code}\uFF09\uFF1A${n.message||"unknown error"}`);if(n.data===null||n.data===void 0)return Object.freeze([]);if(!Array.isArray(n.data))throw new Error("\u52A0\u8F7D\u9ED1\u540D\u5355\uFF1A\u54CD\u5E94 data \u5FC5\u987B\u662F\u6570\u7EC4");return Object.freeze(n.data.map(t=>{let r=Zo(t),o=Zo(r?.user_info);if(r===void 0||o===void 0)throw new Error("\u52A0\u8F7D\u9ED1\u540D\u5355\uFF1A\u54CD\u5E94\u7F3A\u5C11 user_info");let i=ln(r.user_id),a=ln(o.user_id),s=a||i;if(s==="")throw new Error("\u52A0\u8F7D\u9ED1\u540D\u5355\uFF1A\u54CD\u5E94\u7F3A\u5C11 user_id");if(i!==""&&a!==""&&i!==a)throw new Error("\u52A0\u8F7D\u9ED1\u540D\u5355\uFF1A\u5173\u7CFB\u8BB0\u5F55\u4E0E user_info \u8EAB\u4EFD\u4E0D\u4E00\u81F4");let d=ln(o.nick_name??o.nickname)||s,c=ln(r.remark_name),g=ln(o.head_img_url??o.avatar);return Object.freeze({userId:s,displayName:c||d,nickname:d,...c===""?{}:{remark:c},...g===""?{}:{avatarUrl:g}})}))}async function Nc(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 U(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 Un=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;}},On=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;}},Ut={HIDDEN_CONTACT:40112,OWN_FRIEND_LIMIT_REACHED:40121,TARGET_FRIEND_LIMIT_REACHED:40122},Kc=36875,Gc=40113;function Ot(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function ge(e){let n=Ot(e);return n===""?void 0:n}function ei(e){let n=Array.isArray(e)?e[0]:e;return n!==null&&typeof n=="object"?n:void 0}function Lc(e){switch(e){case Ut.HIDDEN_CONTACT:return "hidden-contact";case Ut.OWN_FRIEND_LIMIT_REACHED:return "own-friend-limit";case Ut.TARGET_FRIEND_LIMIT_REACHED:return "target-friend-limit";default:return "remote"}}async function Hc(e,n){let t=n.query.trim();if(t==="")throw new Error("\u641C\u7D22\u7528\u6237\uFF1Aquery \u4E0D\u80FD\u4E3A\u7A7A");let r=await U(e,"/user/info/search",{username:t},{responseMode:"strict",...n.clientType===void 0?{}:{headers:{"Client-type":String(n.clientType)}}});if(!r.ok)throw new Un(r.code,r.message);let o=ei(r.data);if(o===void 0)return null;let i=Ot(o.user_id??o.userId);if(i==="")throw new Error("\u641C\u7D22\u7528\u6237\uFF1A\u54CD\u5E94\u7F3A\u5C11 user_id");let a=Ot(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 Fc(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 U(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 On(Lc(i.code),i.code,i.message);let a=ei(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 jc(e,n){let t=n.userId.trim();if(t==="")throw new Error("\u5220\u9664\u597D\u53CB\uFF1AuserId \u4E0D\u80FD\u4E3A\u7A7A");let r=await U(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!==Gc)throw new Error(`\u5220\u9664\u597D\u53CB\u5931\u8D25\uFF08${r.code}\uFF09\uFF1A${r.message||"unknown error"}`)}async function $c(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 U(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 Y("\u4E3E\u62A5\u8054\u7CFB\u4EBA",i.code,i.message)}function qc(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:qc(t)}));return U(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 Vc(e){return U(e.client,"/user_group/create_face",{is_hidden:"0"},{method:"POST",responseMode:"strict"})}function zc(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}function Wc(e){let n=e.memberIds.map(t=>({user_id:zc(t)}));return U(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 je(e){if(e.trim()==="")throw new Error("channel board pinned message channelId \u4E0D\u80FD\u4E3A\u7A7A")}function ni(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function Yc(e){Fe(e.groupId);let n=await U(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(!ni(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(!ni(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=h(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 ti(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function Qc(e){je(e.channelId);let n=await U(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(!ti(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(!ti(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=h(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 Xc(e,n){let r=(await U(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 ed(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 nd(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}async function un(e,n,t,r){let o=await U(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new Y(r,o.code,o.message)}function td(e){let n=e.userIds.map(t=>({user_id:nd(t)}));return un(e.client,"/user_group/invited",{group_id:e.groupId,members:JSON.stringify(n)},"\u9080\u8BF7\u7FA4\u6210\u5458")}function rd(e){return un(e.client,"/user_group/kick",{group_id:e.groupId,out_user_id:e.userId},"\u79FB\u9664\u7FA4\u6210\u5458")}function od(e){return un(e.client,"/user_group/transfer",{group_id:e.groupId,new_user_id:e.userId},"\u8F6C\u8BA9\u7FA4\u7EC4")}function id(e){return un(e.client,"/user_group/user/quit",{group_id:e.groupId,...e.newOwnerId===void 0?{}:{new_user_id:e.newOwnerId}},"\u9000\u51FA\u7FA4\u7EC4")}function ad(e){return un(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 sd=new Set([200,32768]);async function cd(e){let n=X$1({userId:e.userId,groupId:e.groupId}),t=await e.http.postProtobuf({path:"/offline/v1/group/read_all",body:n}),{code:r}=Y$1(t);if(!sd.has(r))throw new Error(`\u7FA4 read_all \u4E1A\u52A1\u5931\u8D25\uFF1Acode=${r}\uFF08groupId=${e.groupId}\uFF09`)}var pn=class extends Error{constructor(n){super(`${n}\u54CD\u5E94\u5305\u542B\u65E0\u6CD5\u8BC6\u522B\u7684 is_waitting`),this.name="MembershipJoinMappingError";}};function dd(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 pn(n)}async function ri(e,n,t,r){let o=await U(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new Y(r,o.code,o.message);if(o.data===null||o.data===void 0)throw new pn(r);return dd(o.data.is_waitting,r)}async function oi(e,n,t,r){let o=await U(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new Y(r,o.code,o.message);return Object.freeze({outcome:"joined"})}function ld(e){return ri(e.client,"/user_group/apply",{group_id:e.groupId,qrcode_type:2,remarks:e.remarks??""},"\u7533\u8BF7\u52A0\u5165\u666E\u901A\u7FA4")}function ud(e){return oi(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 pd(e){return ri(e.client,"/user_radio/add/apply",{radio_id:e.channelId,remarks:e.remarks??""},"\u7533\u8BF7\u52A0\u5165\u793E\u7FA4")}function fd(e){return oi(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 md(e){if(Fe(e.groupId),e.messageContent.trim()==="")throw new Error("board pinned message messageContent \u4E0D\u80FD\u4E3A\u7A7A");let n=h(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 U(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 gd(e){if(je(e.channelId),e.messageContent.trim()==="")throw new Error("channel board pinned message messageContent \u4E0D\u80FD\u4E3A\u7A7A");let n=h(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 U(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 yd(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 hd(e){e.prepareKeys!==void 0&&e.decryptDeps!==void 0&&e.groupId!==""&&await e.prepareKeys([e.groupId]);let n=V$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 W(t,{selfId:e.userId,keepRaw:true,source:"history",onReaction:e.onReaction},e.decryptDeps)}async function bd(e){e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId);let n=K$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 L(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 wd=20,ii=10,Bt=30,Cd=100;async function Pd(e){let n=[];for(let t of si(e.channels,wd)){let r=E({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=H$1(o,i);await ai(e,a.sessions.filter(s=>s.channelState==="active"||s.raw?.status===0).map(s=>s.channelId)),n.push(...H$1(o,{...i,onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps).sessions);}return n}async function Id(e){let n=Ad(e.channelBatchSize),t=e.messageCount??Bt,r=Md(e.maxPagesPerBatch),o=new Map;for(let i of si(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;){e.signal?.throwIfAborted(),await e.beforePage?.(),e.signal?.throwIfAborted();let c=e.isChannelCurrent;if(c!==void 0&&(a=a.filter(C=>c(C.channelId))),a.length===0)break;if(d>=r){let C=a.map(({channelId:M,baseIndex:_})=>`${M}@${_}`).join(",");throw new Error(`channel offline \u5206\u9875\u8D85\u8FC7 maxPagesPerBatch=${r}\uFF08active=${C}\uFF09`)}d+=1;let g=F$1({userId:e.userId,clientType:e.clientType,pulls:a.map(C=>({channelId:C.channelId,baseIndex:C.baseIndex,direction:0,count:t,contain:0}))});e.signal?.throwIfAborted();let P=await e.http.postProtobuf({path:"/channel/v1/offlineMessages",body:g,...e.signal===void 0?{}:{signal:e.signal}});e.signal?.throwIfAborted(),await ai(e,a.map(C=>C.channelId)),e.signal?.throwIfAborted();let y={selfId:e.userId,keepRaw:e.keepRaw??true,expectedChannelIds:a.map(C=>C.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},p=e.yieldToEventLoop===void 0?I(P,y,e.decryptDeps):await J$1(P,y,e.decryptDeps,{yieldToEventLoop:e.yieldToEventLoop,signal:e.signal});e.signal?.throwIfAborted();let w=[];for(let C of a){let M=p.nextBaseIndexes[C.channelId],_=p.messageCounts[C.channelId]??0;if(M===void 0)continue;let D=s.get(C.channelId);if(D.has(M))throw new Error(`channel offline cursor \u5FAA\u73AF\uFF08channelId=${C.channelId}, baseIndex=${M}\uFF09`);_<t||(D.add(M),w.push({channelId:C.channelId,baseIndex:M}));}await e.onPage?.(p.messages,{pulls:a.map(C=>({...C})),nextBaseIndexes:{...p.nextBaseIndexes},messageCounts:{...p.messageCounts}}),e.signal?.throwIfAborted();for(let C of p.messages)o.has(C.id)||o.set(C.id,C);a=w;}}return [...o.values()].sort(l)}async function vd(e$1){e$1.signal?.throwIfAborted();let n=e$1.count??Bt;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=F$1({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?{...I(r,o,e$1.decryptDeps),firstBaseIndex:e.decode(r).lsMessage[0]?.sIndex}:await J$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 Sd(e){e.signal?.throwIfAborted();let n=e.count??Bt;e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId);let t=G({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(),M(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 ai(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 Ad(e){if(e===void 0)return ii;if(!Number.isInteger(e)||e<=0)throw new Error("channel offline: channelBatchSize \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");return Math.min(e,ii)}function Md(e){if(e===void 0)return Cd;if(!Number.isInteger(e)||e<=0)throw new Error("channel offline: maxPagesPerBatch \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");return e}function si(e,n){let t=[];for(let r=0;r<e.length;r+=n)t.push(e.slice(r,r+n));return t}async function ci(e,n){let t=Z$1({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 di(e){return ci("/offline/v1/chat",e)}function li(e){return ci("/offline/v1/owner_chat",e)}function _d(e){return di(e).then(n=>(_(n),n.messages))}function xd(e){return li(e).then(n=>(_(n),n.messages))}function ui(e){return [...new Set(e.filter(n=>n!==void 0&&n!==""))]}async function Rd(e){let n=O({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=Q$1(t,{selfId:e.userId}),o=ui(r.messages.map(i=>i.conversationId));o.length>0&&await e.prepareKeys(o);}return Q$1(t,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function Ed(e){let n=P({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=R(t,{selfId:e.userId}),o=ui([...r.unreads.map(i=>i.groupId),...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 kd(e){e.signal?.throwIfAborted(),e.prepareKeys!==void 0&&e.decryptDeps!==void 0&&e.groupId!==""&&await e.prepareKeys([e.groupId]);let n=S({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?T(t,r,e.decryptDeps):U$1(t,{...r,expectedGroupId:e.groupId},e.decryptDeps,{yieldToEventLoop:e.yieldToEventLoop,signal:e.signal})}async function Td(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 Bn=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 Nt(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function pi(e){let n=Nt(e);return n===""?void 0:n}function Kt(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function Dd(e){if(e===true||e===1||e==="1")return true;if(e===false||e===0||e==="0")return false}function Ud(e){let n=Kt(e);if(n===void 0)throw new de("\u673A\u5668\u4EBA\u76EE\u5F55\u9879\u5FC5\u987B\u662F\u5BF9\u8C61");let t=Nt(n.robot_id??n.robotId);if(t==="")throw new de("\u673A\u5668\u4EBA\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A robot_id");let r=Nt(n.robot_name??n.robotName)||t,o=pi(n.mid??n.botMid??n.bot_mid),i=pi(n.img_url??n.imgUrl),a=Dd(n.bind);return {id:t,displayName:r,...o===void 0?{}:{username:o},...i===void 0?{}:{avatarUrl:i},...a===void 0?{}:{bound:a}}}function Od(e){if(Array.isArray(e))return e;let n=Kt(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 Bd(e){let n=Kt(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 Nd(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 U(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 Bn(o.code,o.message);let a=Od(o.data).map(Ud),s=Bd(o.data),d=s===void 0?a.length<n.pageSize:n.page*n.pageSize>=s;return {items:a,exhausted:d}}var Kd={direct:"/friend/undisturb/set",group:"/user_group/user/edit",channel:"/user_radio/user/setting",robot:"/friend/undisturb/set"},Gd={direct:"friend_user_id",group:"group_id",channel:"radio_id",robot:"friend_user_id"};async function Ld(e){let n=Kd[e.conversationType],t=Gd[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 U(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 Hd(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 U(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 Fd(e){let{code:n}=await U(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 jd(e){Fe(e.groupId);let n=await U(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 $d(e){je(e.channelId);let n=await U(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 qd(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 U(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 Jd="1970-01-01 08:00:00",Vd="2000",zd="",Nn=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 X(e){return typeof e=="string"?e:e==null?"":String(e)}function fn(e,n){let t=X(e).trim();if(t==="")throw new Pe(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function Wd(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 Yd(e){return e==="text"?1:e==="image"?2:e==="video"?3:e==="voice"?4:e==="location"?5:e==="mediaAlbum"?28:11}function Qd(e){if(e==="direct")return 0;if(e==="group")return 1;if(e==="channel")return 2;throw new Pe(`favorite conversation type ${e}`)}function Kn(e,n){return n==="text"||n==="location"?X(e.content).trim():n==="file"?X(e.fileName||e.file_name||e.name).trim():n==="mediaAlbum"?X(e.caption).trim():""}function Xd(e,n){let t=X(e.group_id).trim(),r=X(e.radio_id).trim(),o=Number(X(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=X(e.from_id).trim(),a=X(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=X(t?.nick_name||t?.nickname||t?.name).trim();return r===""?n:r}function el(e,n){let t=X(e.uu_id).trim(),r=Wd(e.content_type),o=ro(X(e.msg_body),n);if(t===""||r===null||o===null)return null;let i=X(e.from_id).trim();return Object.freeze({collectId:t,msgId:X(e.msg_id).trim(),kind:r,senderId:i,senderName:Zd(e,i),avatarUrl:X(e.from_user?.avatar).trim(),createdAt:X(e.create_time||e.update_time||e.msg_time).trim(),text:Kn(o,r),imageUrl:zb(r,o),fileName:r==="file"?Kn(o,"file"):"",body:Object.freeze({...o}),conversation:Xd(e,n)})}function nl(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 tl(){if(typeof crypto>"u"||typeof crypto.randomUUID!="function")throw new Pe("collect uuid \u4E0D\u53EF\u7528");return crypto.randomUUID()}function rl(e){return Object.freeze({...e,body:Object.freeze({...e.body}),conversation:e.conversation===null?null:Object.freeze({...e.conversation})})}function ol(e){async function n(t,r,o){if(e.coreClient===void 0)throw new Nn;let i=await U(e.coreClient,t,r,{method:"POST",responseMode:"strict",prefix:zd});if(!i.ok)throw new Y(o,i.code,i.message);return i.data}return {async list(){let t=fn(e.getUserId(),"favorite userId"),r=await n("/api/v1/user/favorite/list",{start_time:Jd,page_size:Vd},"\u4F1A\u8BDD\u6536\u85CF\u5217\u8868");return Object.freeze(nl(r).flatMap(o=>{let i=el(o,t);return i===null?[]:[i]}))},async add(t){let r=fn(e.getUserId(),"favorite userId"),o=(e.createCollectId??tl)(),i={msg_id:fn(t.messageId,"favorite msgId"),content_type:Yd(t.kind),msg_type:Qd(t.conversation.conversationType),msg_time:String(t.createdAt),from_id:fn(t.senderId,"favorite fromId"),to_id:fn(t.peerId,"favorite toId"),is_hide:t.hide===true?"1":"0",uu_id:o,msg_body:to(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"),rl({collectId:o,msgId:t.messageId.trim(),kind:t.kind,senderId:t.senderId.trim(),senderName:t.senderId.trim(),avatarUrl:"",createdAt:String(t.createdAt),text:Kn(t.plainBody,t.kind),imageUrl:zb(t.kind,t.plainBody),fileName:t.kind==="file"?Kn(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 fi(e,n){let t=Q__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 mi="image/jpeg";function Gt(e,n){return e.type!==""||n===void 0||n===""?e:new Blob([e],{type:n})}function al(e){let n=0;return {fileMd5:fi,async imageDimensions(t,r,o){let i=await e.prepare({operationId:`core-image-dimensions-${++n}`,generation:0,kind:"image",file:Gt(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:Gt(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:mi}},async videoPoster(t,r,o){let i=await e.prepare({operationId:`core-video-poster-${++n}`,generation:0,kind:"video",file:Gt(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:mi}}}}function sl(e){return e>=192&&e<=207&&e!==196&&e!==200&&e!==204}function cl(e){return e!==void 0&&e>=5&&e<=8}function dl(e,n,t){return cl(t)?{width:n,height:e}:{width:e,height:n}}function ll(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 ul(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(sl(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:dl(c,d,t)}o===225&&t===void 0&&(t=ll(e,a,s)),r=s;}}function pl(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 fl(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 ml(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 Gn(e,n,t){return n<t.length?false:t.every((r,o)=>e.getUint8(o)===r)}async function gi(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(Gn(t,r,[255,216,255]))return ul(t,r);if(Gn(t,r,[137,80,78,71,13,10,26,10]))return pl(t,r);if(Gn(t,r,[71,73,70,56]))return fl(t,r);if(Gn(t,r,[82,73,70,70])&&r>=12&&t.getUint32(8,false)===1464156752)return ml(t,r)}var Pi=320,gl=12*1024,Ii=20*1024,yl=.9,hl=.72,bl=320,wl=10*1024,Cl=16*1024,Pl=.84,Il=.68,vi=15e3,vl=1;function Sl(){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 yi(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 mn(e){if(e?.aborted)throw new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError")}var hi=16777216,Al=4096;function Ml(e,n){let t=Math.min(1,Al/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>hi){let a=Math.sqrt(hi/i);r=Math.max(1,Math.floor(r*a)),o=Math.max(1,Math.floor(o*a));}return {width:r,height:o}}function Ht(e,n,t){let r=Math.min(1,t/Math.max(e,n));return Ml(Math.max(1,Math.round(e*r)),Math.max(1,Math.round(n*r)))}async function bi(e,n,t,r,o){mn(o);let i=document.createElement("canvas");i.width=n,i.height=t;let a=i.getContext("2d");if(a===null)throw new Error("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A\u65E0\u6CD5\u521B\u5EFA Canvas 2D \u4E0A\u4E0B\u6587");a.drawImage(e,0,0,n,t);let s=await new Promise(d=>i.toBlob(d,"image/jpeg",r));if(mn(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 Lt(e,n){if(!Number.isInteger(e)||e<=0)throw new RangeError(`${n}\u5FC5\u987B\u662F\u6B63\u6574\u6570`)}function wi(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 Ft(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?bl:Pi),d=r.targetBytes??(i?wl:gl),c=r.maxBytes??(i?Cl:Ii),g=r.quality??(i?Pl:yl),P=r.minQuality??(i?Il:hl);if(Lt(s,`${a}\u6700\u5927\u8FB9\u957F`),Lt(d,`${a}\u76EE\u6807\u5B57\u8282\u6570`),Lt(c,`${a}\u6700\u5927\u5B57\u8282\u6570`),wi(g,`${a}\u521D\u59CB\u8D28\u91CF`),wi(P,`${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(P>g)throw new RangeError(`${a}\u6700\u4F4E\u8D28\u91CF\u4E0D\u80FD\u9AD8\u4E8E\u521D\u59CB\u8D28\u91CF`);let y=Ht(n,t,s),p=Math.min(200,Math.max(y.width,y.height)),w,C=[...new Set([g,Math.max(P,g-.12),P])];for(let _ of C){let D=await bi(e,y.width,y.height,_,o);if((w===void 0||D.byteLength<w.byteLength)&&(w=D),D.byteLength<=d)return D}let M=Math.max(y.width,y.height);if(M>p&&w!==void 0){let _=Math.sqrt(d/w.byteLength),D=Math.max(p,Math.floor(M*Math.min(.9,Math.max(.5,_))));y=Ht(n,t,D);for(let R of [g,P]){let I=await bi(e,y.width,y.height,R,o);if(I.byteLength<w.byteLength&&(w=I),I.byteLength<=d)return I}}if(w!==void 0&&w.byteLength<=c)return w;throw new Error(`${a}\u751F\u6210\u5931\u8D25\uFF1A\u7F16\u7801\u7ED3\u679C\u8D85\u8FC7 ${c} \u5B57\u8282\u786C\u4E0A\u9650`)}function Ci(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`));},vi),e.addEventListener(n,a,{once:true}),e.addEventListener("error",s,{once:true}),t?.addEventListener("abort",d,{once:true});})}async function _l(e,n){mn(n);let t=e.maxSize??Pi,r=e.maxBytes??Ii,o=await gi(e.file);mn(n);function i(g,P){return e.file.type==="image/jpeg"&&e.file.size<=r&&Math.max(g,P)<=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:Ht(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(g){if(n?.aborted)throw g}if(s!==void 0)try{mn(n);let g=o??{width:s.width,height:s.height};return e.includePoster===!1?g:o===void 0&&i(s.width,s.height)?{...g,posterData:await e.file.arrayBuffer()}:{...g,posterData:await Ft(s,s.width,s.height,e,n)}}finally{s.close();}let d=URL.createObjectURL(e.file),c=new Image;try{await new Promise((P,y)=>{let p,w,C=()=>{p!==void 0&&clearTimeout(p),c.onload=null,c.onerror=null,n?.removeEventListener("abort",w);};w=()=>{C(),y(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));},c.onload=()=>{C(),P();},c.onerror=()=>{C(),y(new Error("\u56FE\u7247\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1AImage \u89E3\u7801\u9519\u8BEF"));},p=setTimeout(()=>{C(),y(new Error("\u56FE\u7247\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1AImage \u89E3\u7801\u8D85\u65F6"));},vi),n?.addEventListener("abort",w,{once:!0}),c.src=d;});let g=o??{width:c.naturalWidth,height:c.naturalHeight};return e.includePoster===!1?g:i(c.naturalWidth,c.naturalHeight)?{...g,posterData:await e.file.arrayBuffer()}:{...g,posterData:await Ft(c,c.naturalWidth,c.naturalHeight,e,n)}}finally{c.removeAttribute("src"),URL.revokeObjectURL(d);}}async function xl(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 Ci(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 Ci(r,"seeked",n));let d=a===void 0?void 0:a,c;try{c=await Ft(r,o,i,e,n);}catch(g){if(n?.aborted||g instanceof RangeError)throw g}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 Rl(e={}){let n=e.maxConcurrency??Sl();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=yi(n),r=yi(vl),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 xl(i,a):await _l(i,a)}finally{d();}},dispose(){o||(o=true,t.dispose(),r.dispose());}}}function Ln(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=0,i=t[0].getPriority?.()??0;for(let s=1;s<t.length;s+=1){let d=t[s].getPriority?.()??0;d>i&&(o=s,i=d);}let a=t.splice(o,1)[0];if(a.signal?.removeEventListener("abort",a.cancel),a.signal?.aborted){a.cancel();continue}n+=1,a.start();}}return async function(i,a,s){if(i?.aborted)throw new DOMException("\u5A92\u4F53\u4F20\u8F93\u5DF2\u53D6\u6D88","AbortError");await new Promise((d,c)=>{let g={signal:i,getPriority:s,start:d,cancel:()=>{let P=t.indexOf(g);P>=0&&t.splice(P,1),c(new DOMException("\u5A92\u4F53\u4F20\u8F93\u5DF2\u53D6\u6D88","AbortError"));}};i?.addEventListener("abort",g.cancel,{once:true}),t.push(g),r();});try{if(i?.aborted)throw new DOMException("\u5A92\u4F53\u4F20\u8F93\u5DF2\u53D6\u6D88","AbortError");return await a()}finally{n-=1,r();}}}var gn=16*1024*1024,yn=3,jt=3,Hn=6,El=5*1024**3,Fn=1e4;function jn(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>gn,r=t?Math.ceil(e/gn):1;if(!t&&e>El)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>Fn)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:gn,partCount:r}}function kl(e,n,t,r){let o=/^bytes (\d+)-(\d+)\/(\d+)$/.exec(e.headers.get("content-range")??""),i=e.headers.get("etag")??"",a=e.headers.get("content-length"),s=Number(o?.[1]),d=Number(o?.[2]),c=Number(o?.[3]);if(e.status!==206||o===null||![s,d,c].every(Number.isSafeInteger)||c<=0||s!==n||d!==Math.min(t,c-1)||d<s||!/^"[\x21\x23-\x7E\x80-\xFF]*"$/.test(i)||a!==null&&(!/^\d+$/.test(a)||Number(a)!==d-s+1)||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&&(c!==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:d,total:c,etag:i}}function Si(e=true,n,t=gn){if(!Number.isSafeInteger(t)||t<=0)throw new RangeError("\u4E0B\u8F7D\u5206\u6BB5\u5927\u5C0F\u5FC5\u987B\u4E3A\u6B63\u6574\u6570");let r=Ln(Hn),o=new WeakMap;async function i(s,d){if(!s.ok)throw new K("download-range-failed",`\u5A92\u4F53\u4E0B\u8F7D\u5931\u8D25\uFF1AHTTP ${s.status}`);return d.onProgress===void 0||s.body===null?d.preferBlob===true?await s.blob():new Uint8Array(await s.arrayBuffer()):Dl(s,d.onProgress,d.expectedBytes,d.preferBlob===true)}async function a(s){let d=s.resume?.transport,c=typeof d=="object"&&d!==null?o.get(d):void 0;if(s.resume!==void 0&&(c===void 0||c.url!==s.url))throw s.onResumeInvalidated?.(),new K("download-range-invalid","\u4E0B\u8F7D\u65AD\u70B9\u4E0D\u5C5E\u4E8E\u5F53\u524D\u8D44\u6E90\u6216\u4F20\u8F93\u5B9E\u4F8B\uFF0C\u8BF7\u91CD\u65B0\u4E0B\u8F7D");let g=new AbortController,P=()=>g.abort(s.signal?.reason);s.signal?.aborted?P():s.signal?.addEventListener("abort",P,{once:true});let y=g.signal,p=c===void 0?[]:[...c.blobs],w=p.reduce((l,b)=>l+(b?.size??0),0),C=c?.object,M=c?.mimeType??"",_=0,D,R=false,I=false,T=l=>{!I&&l instanceof K&&(l.code==="download-range-invalid"||l.code==="download-object-changed")&&(I=true,D=l),R||(R=true,D=l,g.abort());};function O(){if(s.onResumable===void 0||C===void 0||w===0)return;let l=Object.freeze({});o.set(l,Object.freeze({url:s.url,object:Object.freeze({...C}),mimeType:M,blobs:Object.freeze([...p])}));let b=Object.freeze({bytesDownloaded:w,bytesTotal:C.total,transport:l});s.onResumable(b);}function u(){let l=C.total;s.onProgress?.({percent:Math.min(99,Math.round(w/l*100)),bytesTransferred:w,bytesTotal:l});}function f(l){return C!==void 0&&p[l]?.size===Math.min(t,C.total-l*t)}async function m(l,b,S){let A=l.body?.getReader();if(A===void 0)throw new K("download-range-invalid","\u5206\u6BB5\u4E0B\u8F7D\u6CA1\u6709\u54CD\u5E94\u5B57\u8282\u6D41");let x=()=>{A.cancel().catch(()=>{});};y.addEventListener("abort",x,{once:true});let v=0;try{for(;;){if(y.aborted)throw new DOMException("\u5A92\u4F53\u4E0B\u8F7D\u5DF2\u53D6\u6D88","AbortError");let E=await A.read();if(y.aborted)throw new DOMException("\u5A92\u4F53\u4E0B\u8F7D\u5DF2\u53D6\u6D88","AbortError");if(E.done)break;if(v+=E.value.byteLength,v>S)throw new K("download-range-invalid","\u5206\u6BB5\u4E0B\u8F7D\u5B57\u8282\u6570\u8D85\u8FC7 Content-Range");let k=p[b];p[b]=new Blob(k===void 0?[E.value]:[k,E.value]),w+=E.value.byteLength,O(),u();}if(v!==S)throw new K("download-range-invalid","\u5206\u6BB5\u4E0B\u8F7D\u5B57\u8282\u6570\u4E0E Content-Range \u4E0D\u4E00\u81F4");u();}finally{y.removeEventListener("abort",x),await A.cancel().catch(()=>{}),A.releaseLock();}}async function h(l,b=false){let S=b?0:l*t+(p[l]?.size??0),A=b?0:C===void 0?S+t-1:Math.min((l+1)*t-1,C.total-1);return r(y,async()=>{let x=await fetch(s.url,{signal:y,cache:"no-store",headers:{Range:`bytes=${S}-${A}`}});if(c===void 0&&C===void 0&&l===0&&x.status===200)return n?.record("info","sdk","media","download-range-unavailable",()=>({data:{reason:"server-returned-full-response"}})),p[0]=await i(x,{...s,preferBlob:true}),"single";if(x.status===429||x.status>=500)throw await x.body?.cancel().catch(()=>{}),new K("download-range-failed",`\u5A92\u4F53\u4E0B\u8F7D\u5931\u8D25\uFF1AHTTP ${x.status}`);let v;try{v=kl(x,S,A,C);}catch(E){throw await x.body?.cancel().catch(()=>{}),E}if(C===void 0&&(C=v,M=x.headers.get("content-type")??"",n?.record("debug","sdk","media","download-range-started",()=>({data:{bytesTotal:v.total,partSizeBytes:t,concurrency:jt}}))),b){if((await x.arrayBuffer()).byteLength!==1)throw new K("download-range-invalid","\u4E0B\u8F7D\u5BF9\u8C61\u6821\u9A8C\u54CD\u5E94\u957F\u5EA6\u65E0\u6548")}else await m(x,l,v.end-S+1);return "range"},s.getPriority)}try{if(C!==void 0)for(;_<Math.ceil(C.total/t)&&f(_);)_+=1;let l=C!==void 0&&_===Math.ceil(C.total/t),b=await h(_++,l);if(b==="range"){let A=Math.ceil(C.total/t),x=Array.from({length:Math.min(jt,Math.max(0,A-_))},async()=>{try{for(;!y.aborted&&_<A;){let v=_++;f(v)||await h(v);}}catch(v){T(v);}});if(await Promise.allSettled(x),R)throw D}if(y.aborted)throw new DOMException("\u5A92\u4F53\u4E0B\u8F7D\u5DF2\u53D6\u6D88","AbortError");let S=[];if(b==="range")for(let A=0;A<Math.ceil(C.total/t);A+=1){if(!f(A))throw new K("download-range-invalid","\u4E0B\u8F7D\u4ECD\u7F3A\u5C11\u5206\u6BB5\uFF0C\u4E0D\u80FD\u4EA4\u4ED8\u5B8C\u6574\u6587\u4EF6");S.push(p[A]);}return b==="single"?p[0]:new Blob(S,{type:M})}catch(l){throw g.abort(),I||l instanceof K&&(l.code==="download-range-invalid"||l.code==="download-object-changed")?s.onResumeInvalidated?.():O(),n?.record("warn","sdk","media","download-range-failed",()=>({data:{code:l instanceof K?l.code:"download-failed"}})),l}finally{s.signal?.removeEventListener("abort",P);}}return async function(d){if(d.resume!==void 0&&!e)throw d.onResumeInvalidated?.(),new K("download-range-invalid","\u5F53\u524D\u4E0B\u8F7D\u5668\u672A\u5F00\u542F\u65AD\u70B9\u4E0B\u8F7D\uFF0C\u8BF7\u91CD\u65B0\u4E0B\u8F7D");if(e&&(d.resume!==void 0||d.onResumable!==void 0||d.preferBlob===true&&Number.isFinite(d.expectedBytes)&&d.expectedBytes>t)){let c=await a(d);return d.preferBlob===true?c:new Uint8Array(await c.arrayBuffer())}return r(d.signal,async()=>{if(d.onProgress!==void 0&&typeof XMLHttpRequest<"u")return Tl(d);let c=await fetch(d.url,d.signal===void 0?{}:{signal:d.signal});return i(c,d)},d.getPriority)}}function Tl(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 g=e.expectedBytes!==void 0&&Number.isFinite(e.expectedBytes)&&e.expectedBytes>0?Math.floor(e.expectedBytes):0,P=c.lengthComputable&&c.total>0?c.total:g,y=P>0?Math.min(99,Math.round(c.loaded/P*100)):0;e.onProgress?.({percent:y,bytesTransferred:c.loaded,bytesTotal:P});},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 Dl(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(g,P){s+=g.byteLength;let y=a>0?Math.min(99,Math.round(s/a*100)):0;n({percent:y,bytesTransferred:s,bytesTotal:a}),P.enqueue(g);}})),c=new Response(d,{headers:e.headers});return r?await c.blob():new Uint8Array(await c.arrayBuffer())}var Ai=async(e,n)=>{if(e?.aborted)throw new DOMException("media upload canceled","AbortError");return await n()},$t="is missing ETag in UploadPart response";function qt(e){if(typeof e!="object"||e===null)return false;let n=e;return n.name==="NoSuchUpload"||n.Code==="NoSuchUpload"}function Ul(e,n,t){return e instanceof Uint8Array?e.subarray(n,t):e.slice(n,t)}async function Mi(e,n,t){return e.transformPart===void 0?n:await e.transformPart(n instanceof Blob?n:new Blob([n]),t)}function _i(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 xi(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 Ri(e,n,t=Ai){let r=_i(n,0),o=xi(e.handler,r);try{await t(n.signal,async()=>{let i=await Mi(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 Jt(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 Vt(e){let{target:n,content:t,partSize:r,queueSize:o,runUpload:i=Ai}=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>Fn)throw new Error(`media upload: \u5206\u7247\u6570 ${a} \u8D85\u8FC7 S3 \u4E0A\u9650 ${Fn}\uFF0C\u9700\u8981\u653E\u5927\u5206\u7247\u5927\u5C0F`);let s=Jt(e.resume,n,t.sourceBytes,r),d=new Map;if(s!==void 0)for(let R of s)d.set(R.partNumber,R);let c=s===void 0?"":e.resume.uploadId;if(c===""){let R=await n.client.send(new n.commands.CreateMultipartUploadCommand({Bucket:n.bucket,Key:n.key,...n.mimeType!==void 0&&n.mimeType!==""?{ContentType:n.mimeType}:{}}));if(R.UploadId===void 0||R.UploadId==="")throw new Error("media upload: CreateMultipartUpload \u672A\u8FD4\u56DE UploadId");c=R.UploadId,d.clear();}let g=R=>Math.min(r,t.sourceBytes-(R-1)*r),P=0;for(let R of d.keys())P+=g(R);let y=_i(t,P),p=xi(n.handler,y),w=()=>({bucket:n.bucket,key:n.key,uploadId:c,partSize:r,sourceBytes:t.sourceBytes,parts:[...d.values()].sort((R,I)=>R.partNumber-I.partNumber)});e.onResumable?.(w()),y.report();let C=new AbortController,M=()=>C.abort();t.signal?.addEventListener("abort",M,{once:true}),t.signal?.aborted&&M();let _=1;async function D(){for(;;){if(C.signal.aborted)return;let R=_;if(_+=1,R>a)return;if(d.has(R))continue;let I=(R-1)*r,T=Math.min(I+r,t.sourceBytes),O=await i(C.signal,async()=>{let u=await Mi(t,Ul(t.data,I,T),R);if(C.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:R,Body:u}),{abortSignal:C.signal})});if(O.ETag===void 0||O.ETag==="")throw new Error(`media upload: Part ${R} ${$t}`);d.set(R,{partNumber:R,etag:O.ETag}),y.completePart(R,T-I),e.onResumable?.(w());}}try{let R;if(await Promise.allSettled(Array.from({length:Math.min(yn,a,Math.max(1,o))},async()=>{try{await D();}catch(I){let T=I instanceof Error&&I.name==="AbortError";(R===void 0||!T&&Te(R.cause)!==void 0&&Te(I)===void 0)&&(R={cause:I}),M();}})),R!==void 0)throw R.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((I,T)=>I.partNumber-T.partNumber).map(I=>({PartNumber:I.partNumber,ETag:I.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",M),p();}}async function hn(e,n){try{await e.client.send(new e.commands.AbortMultipartUploadCommand({Bucket:n.bucket,Key:n.key,UploadId:n.uploadId}));}catch(t){if(!qt(t))throw t}}var Ol=3e4;function Ei(e,n){e.handle=async(t,r={})=>{let o=new n({}),i=r.abortSignal,a=new AbortController,s,d=false,c,g=0,P=0,y=()=>{clearTimeout(s),s=setTimeout(()=>{d=true,a.abort();},Ol);},p=()=>a.abort(i?.reason),w=_=>{_.loaded>g&&(g=_.loaded,y()),e.emit("xhr.upload.progress",_,t);},C=_=>{_.loaded>P&&(P=_.loaded,y()),e.emit("xhr.progress",_,t);},M=()=>{c?.readyState===2&&y();};o.on("before.xhr.send",_=>{c=_,c.addEventListener("readystatechange",M),y();}),o.on("xhr.upload.progress",w),o.on("xhr.progress",C),i?.addEventListener("abort",p,{once:true}),i?.aborted&&p();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",p),c?.removeEventListener("readystatechange",M),o.removeAllListeners(),o.destroy();}};}function Bl(e){if(e instanceof Uint8Array)return e.byteLength;if(typeof Blob<"u"&&e instanceof Blob)return e.size}var ki="\u5206\u7247\u4E0A\u4F20\u8981\u6C42\u8BE5 bucket \u7684 CORS \u653E\u884C POST\uFF08Create/CompleteMultipartUpload\uFF09\u3001DELETE\uFF08AbortMultipartUpload\uFF09\u5E76 ExposeHeaders: ETag";function Nl(e){return e instanceof Error&&e.message.includes($t)}function Kl(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${ki}`,{cause:t}):e instanceof K?e:Nl(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${ki}`,{cause:e}):e}var Gl=new Set(["upload-source-invalid","upload-resume-unavailable","multipart-etag-missing","multipart-abort-failed"]);function zt(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 bn;function Ti(){if(bn!==void 0)return bn;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 bn===n&&(bn=void 0),t});return bn=n,n}function Di(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 Ll(e){if(e===void 0)return "";let n=e.lastIndexOf(".");return n>=0?e.slice(n):""}function Hl(e){return globalThis.crypto.randomUUID()+Ll(e)}function Ui(e,n){let t=e.keyPrefix??"";return t===""||n.startsWith(t)?n:`${t}${n}`}function Fl(e,n){let t=Br(e.getUploadCredentials),r=Ln(Hn);function o(p,w){if(p==="avatar")return e.avatarBucket??"";if(w==="channel"){let C=e.channelBuckets?.[p]??"";if(C!=="")return C}return e.buckets[p]??""}function i(p,w,C,M=false){let{region:_}=w;return Ei(C,p.XhrHttpHandler),new p.S3Client({region:_,maxAttempts:M?1:3,credentials:{accessKeyId:w.accessKeyId,secretAccessKey:w.secretAccessKey,sessionToken:w.sessionToken,...w.expiresAtSeconds===void 0?{}:{expiration:new Date(w.expiresAtSeconds*1e3)}},useAccelerateEndpoint:(e.useAccelerateEndpoint??true)&&!_.toLowerCase().startsWith("cn-"),requestChecksumCalculation:"WHEN_REQUIRED",requestHandler:C})}async function a(p,w,C,M,_,D,R,I){let{multipart:T,partSize:O}=jn(R,e.multipartTransfer===true&&e.multipartUpload!==false),u=new p.XhrHttpHandler({}),f=i(p,_,u,w.recoveryManaged===true),m={client:f,handler:u,commands:p.commands,bucket:_.bucket,key:D,...w.mimeType!==void 0&&w.mimeType!==""?{mimeType:w.mimeType}:{}},h={data:w.data,sourceBytes:R,...w.onProgress===void 0?{}:{onProgress:w.onProgress},...w.signal===void 0?{}:{signal:w.signal},...w.transformPart===void 0?{}:{transformPart:w.transformPart}},l=w.resume,b=zt(l),S=T&&b?.logicalBucket===C&&Jt(b.session,m,R,O)!==void 0,A=S?b?.session:void 0,x=k=>{A=k;let B=0;for(let N of k.parts)B+=Math.min(k.partSize,k.sourceBytes-(N.partNumber-1)*k.partSize);w.onResumable?.({bytesUploaded:B,transport:{logicalBucket:C,objectName:M,session:k}});},v=()=>{A=void 0,delete w.resume,w.onResumeInvalidated?.();},E;try{if(I.mode==="retain"&&l!==void 0&&!S)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(b!==void 0&&!S){try{b.logicalBucket===C?await hn(m,b.session):await P(l);}catch(B){throw I.cleanupFailed=!0,Di(I.retryCause,B)}delete w.resume;}if(w.signal?.aborted)throw new DOMException("media upload canceled","AbortError");if(!T){await Ri(m,h,r);return}let k=A;try{await Vt({target:m,content:h,partSize:O,queueSize:yn,runUpload:r,...k===void 0?{}:{resume:k},onResumable:x,onCompleted:v});}catch(B){if(w.signal?.aborted||!qt(B)||I.mode==="discard"&&k===void 0)throw B;if(I.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:B});A=void 0,await Vt({target:m,content:h,partSize:O,queueSize:yn,runUpload:r,onResumable:x,onCompleted:v});}}catch(k){if(I.mode==="retain"&&w.signal?.aborted===true&&!["offline","paused","page-preserve","cancelled-preserve"].includes(w.signal.reason)&&A!==void 0)try{await hn(m,A),v();}catch(B){E=B;}throw I.cleanupFailed?k:Kl(k,T,E)}finally{f.destroy();}}async function s(p,w,C,M={mode:"retain"}){let _=o(w,C);if(_==="")throw new K("bucket-unconfigured",`media upload: kind=${w} \u7684\u903B\u8F91\u6876\u540D\u672A\u914D\u7F6E\uFF08\u5BBF\u4E3B IM \u5BF9\u8C61\u5B58\u50A8\u914D\u7F6E\u7F3A\u8BE5\u8D44\u6E90\u7C7B\u578B\uFF09`);let D=Bl(p.data);if(D===void 0)throw new K("upload-source-invalid","media upload: \u4E0A\u4F20\u5185\u5BB9\u5FC5\u987B\u662F Uint8Array \u6216 Blob");jn(D,e.multipartTransfer===true&&e.multipartUpload!==false);let R=await Ti();if(M.mode==="discard"&&p.signal?.aborted)throw new DOMException("media upload canceled","AbortError");let I=zt(p.resume,_)?.objectName??Hl(p.filename),T={...p,onResumable:u=>{T.resume=u,p.onResumable?.(u);},onResumeInvalidated:()=>{delete T.resume,p.onResumeInvalidated?.();}},O;try{O=await t.resolve(_,p.forceRefreshCredentials===!0?{forceRefresh:!0}:void 0);let u=Ui(O,I);try{await a(R,T,_,I,O,u,D,M);}catch(f){if(p.signal?.aborted||p.recoveryManaged===!0||f instanceof K&&Gl.has(f.code))throw f;M.retryCause=f,O=await t.resolve(_,{forceRefresh:!0}),u=Ui(O,I),await a(R,T,_,I,O,u,D,M);}if(p.signal?.aborted)throw new DOMException("media upload canceled","AbortError");return p.onProgress?.({percent:100,bytesTransferred:D,bytesTotal:D,phase:"finalizing"}),{url:`${O.dnsPoint}/${u}`}}catch(u){let f=zt(T.resume);if(M.mode==="discard"&&!M.cleanupFailed&&f!==void 0&&O!==void 0){let h=new R.XhrHttpHandler({}),l=i(R,O,h);try{await hn({client:l,commands:R.commands},f.session);}catch(b){throw Di(u,b)}finally{l.destroy();}}let m=Te(u);throw m!==void 0&&p.onFailure?.(m),u instanceof K&&(u.code==="upload-resume-unavailable"?p.onFailure?.("resume-unavailable"):u.code==="multipart-abort-failed"&&p.onFailure?.("cleanup-unconfirmed")),u}}function d(p){return s(p,p.kind,p.conversationType)}function c(p){return s({data:p.data,...p.filename===void 0?{}:{filename:p.filename},...p.mimeType===void 0?{}:{mimeType:p.mimeType},...p.signal===void 0?{}:{signal:p.signal},...p.onProgress===void 0?{}:{onProgress:p.onProgress}},p.kind,void 0,{mode:"discard"})}function g(p){return s(p,"avatar")}async function P(p){let w=p.transport;if(w?.session===void 0||w.session.uploadId==="")return;let C=await Ti(),M=await t.resolve(w.logicalBucket),_=new C.XhrHttpHandler({}),D=i(C,M,_);try{await hn({client:D,commands:C.commands},w.session);}finally{D.destroy();}}let y=Si(e.multipartTransfer===true&&e.rangeDownload!==false,n);return {upload:d,uploadAvatar:g,uploadResource:c,download:y,abandonUpload:P}}var J=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 ee(){throw new J("invalid")}function Ie(e){return typeof e!="object"||e===null||Array.isArray(e)?ee():e}function ye(e,n=4096){return typeof e!="string"||e.length===0||e.length>n?ee():e}function Re(e,n=0){return typeof e!="number"||!Number.isSafeInteger(e)||e<n?ee():e}function Wt(e){return typeof e!="number"||!Number.isFinite(e)||e<0?ee():e}function $n(e,n=4096){if(e!==void 0)return typeof e!="string"||e.length>n?ee():e}function qn(e){let n=Ie(e);if(n.version!==1||n.kind!=="video"&&n.kind!=="file"||typeof n.encrypted!="boolean")return ee();let t=Ie(n.ref);if(t.conversationType!=="direct"&&t.conversationType!=="group"&&t.conversationType!=="channel")return ee();let r=Ie(n.source),o=Re(r.size,1),i=ye(r.sha256,64);if(!/^[a-f0-9]{64}$/.test(i))return ee();let a=Ie(n.resume),s=Ie(a.transport),d=Ie(s.session),c=Re(d.partSize,8);if(c%8!==0||Re(d.sourceBytes,1)!==o||!Array.isArray(d.parts)||d.parts.length>1e4)return ee();let g=new Set,P=0,y=d.parts.map(R=>{let I=Ie(R),T=Re(I.partNumber,1);return T>Math.ceil(o/c)||g.has(T)?ee():(g.add(T),P+=Math.min(c,o-(T-1)*c),{partNumber:T,etag:ye(I.etag,1024)})});if(Re(a.bytesUploaded)!==P)return ee();let p;if(n.encrypted){if(!(n.teaKey instanceof Uint8Array)||n.teaKey.length!==16)return ee();p=new Uint8Array(n.teaKey);}else if(n.teaKey!==void 0)return ee();let w;if(n.preview!==void 0){let R=Ie(n.preview),I;if(R.thumbData!==void 0){if(!(R.thumbData instanceof Uint8Array)||R.thumbData.byteLength>16*1024)return ee();I=new Uint8Array(R.thumbData);}w={width:Wt(R.width),height:Wt(R.height),...R.duration===void 0?{}:{duration:Wt(R.duration)},...I===void 0?{}:{thumbData:I}};}if(n.filesAlbum!==void 0&&typeof n.filesAlbum!="boolean")return ee();let C=$n(r.filename),M=$n(r.mimeType,256),_=$n(n.caption,16384),D=$n(n.refMessageId);return {version:1,ref:{conversationType:t.conversationType,conversationId:ye(t.conversationId)},messageId:ye(n.messageId),kind:n.kind,createdAt:Re(n.createdAt),savedAt:Re(n.savedAt),encrypted:n.encrypted,source:{size:o,sha256:i,...C===void 0?{}:{filename:C},...M===void 0?{}:{mimeType:M}},...p===void 0?{}:{teaKey:p},...w===void 0?{}:{preview:w},..._===void 0?{}:{caption:_},...D===void 0?{}:{refMessageId:D},...n.filesAlbum===void 0?{}:{filesAlbum:n.filesAlbum},resume:{bytesUploaded:P,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:y}}}}}function $e(e){if(e?.aborted)throw new DOMException("Source fingerprint cancelled","AbortError")}async function Oi(e,n){$e(n);let t=e instanceof Uint8Array?e.byteLength:e.size,r=await createSHA256();$e(n);let o=1024*1024,i=performance.now();for(let a=0;a<t;a+=o){$e(n);let s=e instanceof Uint8Array?e.subarray(a,a+o):new Uint8Array(await e.slice(a,a+o).arrayBuffer());$e(n),r.update(s),performance.now()-i>=8&&(await new Promise(d=>setTimeout(d,0)),$e(n),i=performance.now());}return $e(n),{size:t,sha256:r.digest("hex")}}var ql=1440*60*1e3,Jl=3;function ve(e,n){if(!e.conversationId||!n||!["direct","group","channel"].includes(e.conversationType))throw new J("invalid");return JSON.stringify([e.conversationType,e.conversationId,n])}function Vl(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,g=false,P=false,y=0,p=0,w,C,M,_=new Map,D=new WeakMap,R=0;function I(){if(d)throw new J("unavailable")}function T(){D=new WeakMap,R+=1;}function O(v,E){if(I(),v?.aborted)throw new DOMException("Source fingerprint cancelled","AbortError");if(E!==R)throw new J("unavailable")}function u(){return a??=openDB(t,1,{upgrade(v){v.createObjectStore("uploads");},blocking(){x();},terminated(){d=true,T(),m();}}),a}function f(v,E=false){try{if(I(),E&&(!g||P))throw new J("unavailable")}catch(N){return Promise.reject(N)}let k=p,B=s.then(async()=>{if(E&&(!g||k!==p))throw new J("unavailable");try{return await v()}catch(N){throw N instanceof J?N:new J("storage",{cause:N})}});return s=B.then(()=>{},()=>{}),B}function m(){!g||P||(P=true,s.then(()=>{g=false,y=0,p+=1,w?.(),w=void 0;}));}async function h(v){if(I(),v?.aborted)throw new DOMException("Recovery lease cancelled","AbortError");if(!o||P)throw new J("unavailable");if(g||(C===void 0&&(C=new Promise((B,N)=>{try{M=o.request(r,{mode:"exclusive",ifAvailable:!0},async $=>{if(!$||d){N(new J("unavailable"));return}g=!0,p+=1;let G=new Promise(W=>{w=W;});B(),await G;}),M.catch(()=>N(new J("unavailable"))).finally(()=>{C=void 0,P=!1;});}catch{N(new J("unavailable"));}})),await C),d||P||v?.aborted)throw y===0&&m(),v?.aborted?new DOMException("Recovery lease cancelled","AbortError"):new J("unavailable");y+=1;let E=p,k=false;return {release(){k||E!==p||(k=true,y-=1,y===0&&m());}}}function l(v){return i()-v.savedAt>=ql}function b(v){let E=ve(v.ref,v.messageId),k=Math.min(_.get(E)??v.savedAt,v.savedAt);return _.set(E,k),k}async function S(){let E=(await u()).transaction("uploads",g&&!P?"readwrite":"readonly");try{let k=await E.store.getAll(),B=[];for(let N of k){let $=qn(N);b($),l($)?E.mode==="readwrite"&&await E.store.delete(ve($.ref,$.messageId)):B.push($);}return await E.done,B}catch(k){try{E.abort();}catch{}throw await E.done.catch(()=>{}),k}}function A(v){let E;try{E=qn(v);}catch(k){return Promise.reject(k)}return f(async()=>{let B=(await u()).transaction("uploads","readwrite");try{let N=ve(E.ref,E.messageId),$=await B.store.getAll(),G=0,W;for(let zn of $){let pe=qn(zn);b(pe),l(pe)?await B.store.delete(ve(pe.ref,pe.messageId)):(G+=1,ve(pe.ref,pe.messageId)===N&&(W=pe));}if(W){if(W.source.sha256!==E.source.sha256||W.source.size!==E.source.size||W.kind!==E.kind||W.encrypted!==E.encrypted||W.teaKey?.some((zn,pe)=>zn!==E.teaKey?.[pe]))throw new J("invalid");E.savedAt=W.savedAt;}else if(G>=Jl)throw new J("capacity");let rr=_.get(N);if(rr!==void 0&&(E.savedAt=Math.min(rr,E.savedAt)),l(E)||E.savedAt>i())throw new J("invalid");await B.store.put(E,N),await B.done,b(E);}catch(N){try{B.abort();}catch{}throw await B.done.catch(()=>{}),N}},true)}async function x(){return c||(d=true,T(),c=(async()=>{await s;try{a&&(await a).close();}finally{m(),await M;}})(),c)}return {get:(v,E)=>f(async()=>{let k=ve(v,E);return (await S()).find(B=>ve(B.ref,B.messageId)===k)}),list:()=>f(S),save:A,remove:(v,E)=>f(async()=>{let k=ve(v,E);await(await u()).delete("uploads",k),_.delete(k);},true),clear:()=>(T(),f(async()=>{await(await u()).clear("uploads"),_.clear();},true)),drain:()=>s,fingerprint:async(v,E)=>{let k=R;O(E,k);let B=v instanceof Blob?v:void 0,N=B===void 0?void 0:D.get(B);if(N!==void 0)return {...N};let $=await Oi(v,E);O(E,k);let G={size:$.size,sha256:$.sha256};return B!==void 0&&D.set(B,G),{...G}},acquireLease:h,close:x}}function zl(e,n={}){let t=n.locks!==void 0?n.locks:globalThis.navigator?.locks,r=n.createChannel!==void 0?n.createChannel:typeof globalThis.BroadcastChannel=="function"?P=>new BroadcastChannel(P):void 0,o=typeof globalThis.addEventListener=="function"?globalThis:void 0,i=n.pageLifecycleTarget!==void 0?n.pageLifecycleTarget:o,a,s=0;function d(P){try{e.onError(P);}catch{}}function c(P,y=false,p="stopped"){if(a===P&&!y&&(a=void 0),P.resolveReady(false),P.closed)return;P.closed=true,P.controller.abort();let w=[],C=D=>{try{D();}catch(R){w.push(R);}};for(let D of P.cleanups.splice(0))C(D);C(()=>P.channel.close());let M=P.release;P.release=void 0;let _=P.owned;P.owned=false;try{let D=_?e.onChange(!1,p):void 0;Promise.resolve(D).then(()=>M?.(),d);}catch(D){d(D);}for(let D of w)d(D);}function g(P,y){c(P,true),d(y);}return {start(P){if(a?.key===P)return a.ready;let y=++s;if(a&&c(a),y!==s)return Promise.resolve(false);if(!P||!t||!r)return d(new Error("Browser connection ownership requires a key, Web Locks and BroadcastChannel")),Promise.resolve(false);let p;try{p=r(`im-connection:${P}`);}catch(R){return d(R),Promise.resolve(false)}let w,C=new Promise(R=>{w=R;}),M={key:P,channel:p,cleanups:[],owned:false,closed:false,ready:C,resolveReady:w,controller:new AbortController,claim:{startedAt:Date.now(),id:globalThis.crypto.randomUUID()}};a=M;let _=R=>{if(a!==M||M.closed||typeof R.data!="object"||R.data===null)return;let I=R.data;I.type==="session-ended"?c(M):I.type==="takeover"&&typeof I.startedAt=="number"&&Number.isFinite(I.startedAt)&&typeof I.id=="string"&&I.id!==M.claim.id&&(I.startedAt>M.claim.startedAt||I.startedAt===M.claim.startedAt&&I.id>M.claim.id?c(M,true,"replaced"):p.postMessage({type:"takeover",...M.claim}));},D=R=>{a===M&&R.persisted===true&&c(M);};try{i&&(M.cleanups.push(()=>i.removeEventListener("pagehide",D)),i.addEventListener("pagehide",D)),M.cleanups.push(()=>p.removeEventListener("message",_)),p.addEventListener("message",_);let R=setTimeout(()=>g(M,new Error("Browser IM takeover timed out while waiting for the previous page to close")),15e3);M.cleanups.push(()=>clearTimeout(R)),t.request(`im-connection:${P}`,{mode:"exclusive",signal:M.controller.signal},async T=>{if(a!==M||M.closed||!T){M.resolveReady(!1);return}let O=new Promise(u=>{M.release=u;});M.owned=!0,clearTimeout(R);try{await e.onChange(!0);}catch(u){g(M,u);}M.resolveReady(a===M&&M.owned),await O;}).catch(T=>{a===M&&!M.closed&&g(M,T);}),p.postMessage({type:"takeover",...M.claim});}catch(R){g(M,R);}return M.ready},stop(){s++,a&&c(a);},terminate(){s++;let P=a;if(P)try{P.closed||P.channel.postMessage({type:"session-ended"});}catch(y){d(y);}finally{c(P);}},get owned(){return a?.owned??false}}}function Wl(){let e=globalThis;return typeof e.addEventListener=="function"&&typeof e.removeEventListener=="function"?e:void 0}function Yl(e,n={}){let t=n.target!==void 0?n.target:Wl(),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?.(),g=()=>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",g)));},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",g)));},get running(){return i}}}var Zl=15,eu=20,nu=8*1024*1024,tu=2*1024*1024,ru=1440*60*1e3,ou=2*1024*1024*1024,Bi=1024*1024*1024,iu=512*1024*1024,au=256*1024*1024,su=64*1024,Yt="channel:list-version",Ni="schema:conversation-key-v1",Ki="schema:message-server-order-v1",Gi="schema:mini-program-game-preview-v1",Li="im:membership-reset-sort-keys",Qt="default",Ee="\uFFFF";function Hi(e){if(!(e===void 0||!/^\d+$/.test(e)))return e.replace(/^0+(?=\d)/,"")}function cu(e,n){let t=Hi(e),r=Hi(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 wn(e){return `conversation:${Ha$1(e)}`}function Zt(e,n){return `${Ha$1(e)}\0${n}`}function du(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 lu(e){let{key:n,conversationKey:t,...r}=e;return {...r,conversation:{...r.conversation},sContent:r.sContent.slice()}}function Fi(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 er(e){if(e.conversationId===void 0)return e;let{conversationId:n,...t}=e;return {...t,id:n}}function nr(e){return e.conversationType===void 0?e:{...e,conversationId:Ha$1(e),storageConversationId:e.conversationId}}function Vn(e){if(e.storageConversationId===void 0)return e;let{storageConversationId:n,...t}=e;return {...t,conversationId:n}}function ji(e){return {...e,conversationId:Ha$1(Ga$1(e)),storageConversationId:e.conversationId}}function tr(e){if(e.storageConversationId===void 0)return e;let{storageConversationId:n,...t}=e;return {...t,conversationId:n}}function uu(e){return {...e,conversationKey:Ha$1(e.ref)}}function pu(e){let{conversationKey:n,...t}=e;return t}function fu(e){return typeof e=="string"?e:e.conversationId}function Cn(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 mu(e){let n=e.transaction(["messages","sessions","readStates","pinnedMessages","meta"],"readwrite");try{let t=n.objectStore("meta");if((await t.get(Ni))?.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(Fi(d));let o=n.objectStore("sessions"),i=new Map;for(let d of await o.getAll()){if(d.conversationId!==void 0)continue;let c=er(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 g={...d,conversationType:c};await a.put(nr(g)),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=tr(d);await s.put(ji(c)),await s.delete(d.conversationId);}await t.put({key:Ni,value:!0}),await n.done;}catch(t){try{n.abort();}catch{}try{await n.done;}catch{}throw t}}async function gu(e){let n=e.transaction(["messages","readStates","meta"],"readwrite");try{let t=n.objectStore("meta");if((await t.get(Ki))?.value===!0){await n.done;return}let r=n.objectStore("readStates"),o=await r.getAll(),i=new Map;for(let g of o){let P=Vn(g);P.conversationType==="channel"&&P.readCursorSortKey!==void 0&&P.readCursor!==""&&i.set(Ha$1(P),{cursor:P.readCursor});}let a=new Map,s=n.objectStore("messages"),d=await s.openCursor();for(;d!==null;){let g=d.value,P=Ha$1(Ea$1(g)),y=k(g),p=i.get(P);if(p!==void 0&&g.extensions?.historyCursor===p.cursor&&(p.sortKey=y),y!==g.sortKey){let w=a.get(P);w===void 0&&(w=new Map,a.set(P,w)),w.set(g.sortKey,y),await d.update({...g,sortKey:y});}d=await d.continue();}for(let g of o){let P=Vn(g);if(P.conversationType===void 0)continue;let y=Ha$1(P),p=i.get(y)?.sortKey??(P.readCursorSortKey===void 0?void 0:a.get(y)?.get(P.readCursorSortKey));if(p===void 0&&P.readCursorSortKey!==void 0&&P.conversationType!=="channel"&&P.readCursor!==""){let w=await s.get(P.readCursor);w!==void 0&&Ha$1(Ea$1(w))===y&&(p=w.sortKey);}p!==void 0&&p!==P.readCursorSortKey&&await r.put({...g,readCursorSortKey:p});}let c=await t.get(Li);if(Array.isArray(c?.value)){let g=!1,P=c.value.map(y=>{if(!Array.isArray(y)||y.length!==2||typeof y[0]!="string"||typeof y[1]!="string")return y;let p=a.get(y[0])?.get(y[1]);return p===void 0?y:(g=!0,[y[0],p])});g&&await t.put({key:Li,value:P});}await t.put({key:Ki,value:!0}),await n.done;}catch(t){try{n.abort();}catch{}try{await n.done;}catch{}throw t}}async function yu(e){let n=e.transaction(["messages","meta"],"readwrite");try{let t=n.objectStore("meta");if((await t.get(Gi))?.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:Gi,value:!0}),await n.done;}catch(t){try{n.abort();}catch{}try{await n.done;}catch{}throw t}}function Xt(e){return `${e.kind}:${encodeURIComponent(e.messageId)}:${e.resourceVersion}`}async function qe(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 hu(e,n){let t=n.namespaceFactory.forAccount(e).name("durable","storage","indexed-db");typeof indexedDB>"u"||await deleteDB(t);}function bu(e){let{namespaceFactory:n}=e,t=null,r=null,o=0,i=Promise.resolve(),a=Promise.resolve(),s=0,d=e.mediaAssetCache?.maxPendingWriteBytes??au;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 g(u){let f=o,m=r,h=()=>{if(f!==o||m!==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();},l=i.then(async()=>{h();let b=await u();return h(),b});return i=l.then(()=>{},()=>{}),l}function P(u,f){return u.version!==2||!Number.isFinite(u.fetchedAt)||u.fetchedAt<0||f-u.fetchedAt>=ru}async function y(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 f=Date.now();if(u.byteLength>tu||P(u,f))return false;let m=Ha$1(u.conversation),h=c().transaction("recentHistoryPages","readwrite");return qe(h,async()=>{let l=await h.store.getAll(),b=[];for(let v of l)P(v,f)?await h.store.delete(v.conversationKey):v.conversationKey!==m&&b.push(v);let S={...u,conversationKey:m};b.push(S),b.sort((v,E)=>v.fetchedAt-E.fetchedAt||v.conversationKey.localeCompare(E.conversationKey));let A=b.reduce((v,E)=>v+E.byteLength,0),x=[];for(;b.length>eu||A>nu;){let v=b.shift();x.push(v),A-=v.byteLength;}if(x.includes(S))return !1;await h.store.put(S);for(let v of x)await h.store.delete(v.conversationKey);return !0})}async function p(u){if(typeof u!="string")return;let f=IDBKeyRange.bound([u,""],[u,Ee]),m=(await c().transaction("messages").store.index("by_conv_sort").getAll(f)).map(ke);Cn(u,m);}function w(u){let f=a.then(u,u);return a=f.then(()=>{},()=>{}),f}function C(u,f){if(u!==o||f===null||f!==r)throw new Error("\u5A92\u4F53\u8D44\u4EA7\u7F13\u5B58\u8D26\u53F7\u4EE3\u9645\u5DF2\u5931\u6548")}function M(){return Math.max(0,Math.floor(e.mediaAssetCache?.now?.()??Date.now()))}function _(u,f){let m=e.mediaAssetCache?.strategies.resolve(u.kind)?.maxIdleMs;return m!==void 0&&(!Number.isSafeInteger(u.lastAccessedAt)||u.lastAccessedAt<0||f-u.lastAccessedAt>=m)}async function D(u,f){C(u,f);let m=await c().getAll("mediaAssetMeta");C(u,f);let h=M(),l=m.filter(S=>_(S,h));await I(l.map(S=>S.key),u,f),C(u,f);let b=new Set(l.map(S=>S.key));return m.filter(S=>!b.has(S.key))}async function R(u){let f=e.mediaAssetCache?.estimateStorage??(async()=>typeof navigator>"u"||navigator.storage?.estimate===void 0?{}:await navigator.storage.estimate());try{let{quota:m,usage:h}=await f();if(m===void 0||!Number.isFinite(m)||m<=0)return Bi;let l=u.reduce((A,x)=>A+x.byteLength,0),b=Math.max(0,(h??0)-l),S=Math.max(iu,Math.floor(m*.2));return Math.max(0,Math.min(ou,Math.floor(m-b-S)))}catch{return Bi}}async function I(u,f,m){if(u.length===0)return;C(f,m);let h=c().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all(u.flatMap(l=>[h.objectStore("mediaAssets").delete(l),h.objectStore("mediaAssetMeta").delete(l)])),await h.done;}async function T(u,f,m,h){C(u,f);let l=c(),b=e.mediaAssetCache?.strategies;if(b===void 0)return;let S=h??await l.getAll("mediaAssetMeta");C(u,f);let A=new Set;for(let k of b.list()){let B=S.filter(G=>G.kind===k.kind).sort((G,W)=>G.lastAccessedAt-W.lastAccessedAt),N=B.reduce((G,W)=>G+W.byteLength,0),$=B.length;for(let G of B){if(N<=k.softMaxBytes&&$<=k.maxEntries)break;A.add(G.key),N-=G.byteLength,$-=1;}}let x=S.filter(k=>!A.has(k.key)).sort((k,B)=>k.lastAccessedAt-B.lastAccessedAt),v=Math.max(0,Math.min(await R(S),m??Number.POSITIVE_INFINITY)),E=x.reduce((k,B)=>k+B.byteLength,0);for(let k of x){if(E<=v)break;A.add(k.key),E-=k.byteLength;}await I([...A],u,f);}async function O(u,f,m){C(f,m);let h=e.mediaAssetCache?.strategies.resolve(u.kind);if(h===void 0)return "skipped";let l=u.blob,b=l.size,S=await D(f,m),A=await R(S);if(C(f,m),b===0||b>h.maxEntryBytes||A<=0||b>Math.floor(A/2))return "skipped";let x=Xt(u),v=M(),E=S.find(G=>G.key===x),k={key:x,kind:u.kind,messageId:u.messageId,resourceVersion:u.resourceVersion,byteLength:b,...u.mimeType===void 0?{}:{mimeType:u.mimeType},createdAt:E?.createdAt??v,lastAccessedAt:v},B=async()=>{C(f,m);let G=c().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all([G.objectStore("mediaAssets").put({key:x,blob:l}),G.objectStore("mediaAssetMeta").put(k)]),await G.done;},N=false;try{await B();}catch(G){if(!(G instanceof DOMException)||G.name!=="QuotaExceededError")throw G;N=true,await T(f,m,Math.max(0,A-b)),await B();}let $=E===void 0?[...S,k]:S.map(G=>G.key===x?k:G);return await T(f,m,void 0,N?void 0:$),C(f,m),await c().get("mediaAssets",x)===void 0?"skipped":"stored"}return {supportsChannelSyncCheckpoint:true,recentHistoryCache:{get:u=>g(async()=>{let f=Ha$1(u),m=c().transaction("recentHistoryPages","readwrite");return qe(m,async()=>{let h=await m.store.get(f);if(h===void 0)return null;if(P(h,Date.now()))return await m.store.delete(f),null;let{conversationKey:l,...b}=h;return b})}),async put(u){let f=structuredClone(u);return g(()=>y(f))},delete:u=>g(async()=>{await c().delete("recentHistoryPages",Ha$1(u));}),clear:()=>g(async()=>{await c().clear("recentHistoryPages");})},async open({namespace:u}){if(t!==null&&r===u)return;t!==null&&(t.close(),t=null),r=u;let f=++o,m=n.forAccount(u).name("durable","storage","indexed-db"),h=await openDB(m,Zl,{upgrade(l,b,S,A){if(l.objectStoreNames.contains("messages"))A.objectStore("messages").indexNames.contains("by_conversation_key_sort")||A.objectStore("messages").createIndex("by_conversation_key_sort",["conversationKey","sortKey"]);else {let x=l.createObjectStore("messages",{keyPath:"id"});x.createIndex("by_conv_sort",["conversationId","sortKey"]),x.createIndex("by_conversation_key_sort",["conversationKey","sortKey"]);}if(l.objectStoreNames.contains("sessions")||l.createObjectStore("sessions",{keyPath:"id"}),l.objectStoreNames.contains("readStates")||l.createObjectStore("readStates",{keyPath:"conversationId"}),l.objectStoreNames.contains("drafts")||l.createObjectStore("drafts",{keyPath:"conversationKey"}),l.objectStoreNames.contains("outbox")||l.createObjectStore("outbox",{keyPath:"id"}),l.objectStoreNames.contains("meta")||l.createObjectStore("meta",{keyPath:"key"}),l.objectStoreNames.contains("userProfiles")||l.createObjectStore("userProfiles",{keyPath:"id"}),l.objectStoreNames.contains("groupMembers")||l.createObjectStore("groupMembers",{keyPath:"groupId"}),l.objectStoreNames.contains("groupProfiles")||l.createObjectStore("groupProfiles",{keyPath:"id"}),l.objectStoreNames.contains("pinnedMessages")||l.createObjectStore("pinnedMessages",{keyPath:"conversationId"}),l.objectStoreNames.contains("channelProfiles")||l.createObjectStore("channelProfiles",{keyPath:"id"}),l.objectStoreNames.contains("channelMembers")||l.createObjectStore("channelMembers",{keyPath:["channelId","userId"]}),l.objectStoreNames.contains("channelMemberSnapshots")||l.createObjectStore("channelMemberSnapshots",{keyPath:"channelId"}),l.objectStoreNames.contains("channelMentionCandidateSnapshots")||l.createObjectStore("channelMentionCandidateSnapshots",{keyPath:"channelId"}),l.objectStoreNames.contains("conversationBackgrounds")||l.createObjectStore("conversationBackgrounds",{keyPath:"key"}),l.objectStoreNames.contains("mediaAssets")||l.createObjectStore("mediaAssets",{keyPath:"key"}),!l.objectStoreNames.contains("mediaAssetMeta")){let x=l.createObjectStore("mediaAssetMeta",{keyPath:"key"});x.createIndex("by_kind_access",["kind","lastAccessedAt"]),x.createIndex("by_access","lastAccessedAt");}l.objectStoreNames.contains("decryptRecoveries")||l.createObjectStore("decryptRecoveries",{keyPath:"key"}).createIndex("by_conversation","conversationKey"),b>0&&b<13&&(A.objectStore("mediaAssets").clear(),A.objectStore("mediaAssetMeta").clear()),l.objectStoreNames.contains("recentHistoryPages")||l.createObjectStore("recentHistoryPages",{keyPath:"conversationKey"});}});if(f!==o){h.close();return}try{await mu(h),await gu(h),await yu(h);}catch(l){throw h.close(),l}if(f!==o){h.close();return}t=h;try{await w(()=>D(f,u));}catch(l){if(h.close(),f!==o)return;throw t===h&&(t=null),l}},async close(){let u=a;o+=1,r=null,t!==null&&(t.close(),t=null),await u;},async clearRebuildableCaches(){return g(async()=>{let u=o,f=r;await w(async()=>{C(u,f);let h=c().transaction(["userProfiles","groupMembers","groupProfiles","channelProfiles","channelMembers","channelMemberSnapshots","channelMentionCandidateSnapshots","mediaAssets","mediaAssetMeta","meta","recentHistoryPages"],"readwrite");await Promise.all([h.objectStore("userProfiles").clear(),h.objectStore("groupMembers").clear(),h.objectStore("groupProfiles").clear(),h.objectStore("channelProfiles").clear(),h.objectStore("channelMembers").clear(),h.objectStore("channelMemberSnapshots").clear(),h.objectStore("channelMentionCandidateSnapshots").clear(),h.objectStore("mediaAssets").clear(),h.objectStore("mediaAssetMeta").clear(),h.objectStore("meta").delete(Yt),h.objectStore("recentHistoryPages").clear(),h.done]);});})},async hasMany(u){let f=o,m=r,h=u.map(l=>({...l}));return await w(async()=>{if(C(f,m),h.length===0)return Object.freeze([]);let l=c().transaction(["mediaAssets","mediaAssetMeta"],"readonly"),b=M(),S=await qe(l,async()=>{let A=new Map;return await Promise.all(h.map(x=>{if(e.mediaAssetCache?.strategies.resolve(x.kind)===void 0)return !1;let v=Xt(x),E=A.get(v);return E===void 0&&(E=Promise.all([l.objectStore("mediaAssets").getKey(v),l.objectStore("mediaAssetMeta").get(v)]).then(([k,B])=>k!==void 0&&B!==void 0&&B.kind===x.kind&&B.messageId===x.messageId&&B.resourceVersion===x.resourceVersion&&Number.isSafeInteger(B.byteLength)&&B.byteLength>0&&!_(B,b)),A.set(v,E)),E}))});return C(f,m),Object.freeze(S)})},async get(u){let f=o,m=r;return await w(async()=>{if(C(f,m),e.mediaAssetCache?.strategies.resolve(u.kind)===void 0)return null;let h=Xt(u),l=c(),[b,S]=await Promise.all([l.get("mediaAssets",h),l.get("mediaAssetMeta",h)]);C(f,m);let A=M();return b===void 0||S===void 0||_(S,A)?(await I([h],f,m),null):(await l.put("mediaAssetMeta",{...S,lastAccessedAt:A}),C(f,m),{kind:S.kind,messageId:S.messageId,resourceVersion:S.resourceVersion,blob:b.blob,...S.mimeType===void 0?{}:{mimeType:S.mimeType}})})},async put(u){let f=o,m=r;C(f,m);let h=u.blob.size;if(h>d||s+h>d)return "skipped";s+=h;try{return await w(()=>O(u,f,m))}finally{s=Math.max(0,s-h);}},async clear(){let u=o,f=r;await w(async()=>{C(u,f);let m=c().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all([m.objectStore("mediaAssets").clear(),m.objectStore("mediaAssetMeta").clear(),m.done]);});},async prune(){let u=o,f=r;await w(()=>D(u,f));},async getMessage(u,f){let m=await c().get("messages",f);if(m===void 0)return null;let h=ke(m);return Ha$1(Ea$1(h))===Ha$1(u)?h:null},async getMessages(u,f){let m=typeof u=="string"?"by_conv_sort":"by_conversation_key_sort",h=typeof u=="string"?u:Ha$1(u);if(await p(u),f.beforeSortKey===void 0&&f.afterSortKey!==void 0){let A=IDBKeyRange.bound([h,f.afterSortKey],[h,Ee]),x=[],v=await c().transaction("messages").store.index(m).openCursor(A,"next");for(;v!==null&&x.length<f.limit;)x.push(v.value),v=await v.continue();return x.map(ke)}let l=f.beforeSortKey===void 0?IDBKeyRange.bound([h,""],[h,Ee]):IDBKeyRange.bound([h,""],[h,f.beforeSortKey],false,true),b=[],S=await c().transaction("messages").store.index(m).openCursor(l,"prev");for(;S!==null&&b.length<f.limit;)b.push(S.value),S=await S.continue();return b.reverse().map(ke)},async saveMessages(u){if(u.length===0)return;let f=c().transaction("messages","readwrite");await Promise.all([...u.map(m=>f.store.put(Fi(m))),f.done]);},async searchMessages(u,f){let m=Ha$1(u),h=f.keyword?.trim()??"",l=f.contentTypes;if(h===""&&(l===void 0||l.length===0))return {items:[],exhausted:true};let b=h===""?void 0:await ga$1(h),S=f.beforeSortKey===void 0?IDBKeyRange.bound([m,""],[m,Ee]):IDBKeyRange.bound([m,""],[m,f.beforeSortKey],false,true),A=2e3,x=[],v=0,E,k=await c().transaction("messages").store.index("by_conversation_key_sort").openCursor(S,"prev");for(;k!==null&&x.length<f.limit&&v<A;){let N=ka$1(ke(k.value));v+=1,E=N.sortKey;let $=l===void 0||l.includes(N.contentType),G=b===void 0||b.match(ea$1(N))!==null;$&&G&&x.push(N),k=await k.continue();}let B=k===null;return {items:x,exhausted:B,...B?{}:{nextBeforeSortKey:E}}},async getDecryptRecoveries(u){let f=Ha$1(u);return (await c().getAllFromIndex("decryptRecoveries","by_conversation",f)).map(lu)},async saveDecryptRecovery(u){if(u.sContent.byteLength===0||u.sContent.byteLength>su)throw new Error(`\u89E3\u5BC6\u6062\u590D\u5BC6\u6587\u5B57\u8282\u957F\u5EA6\u975E\u6CD5\uFF1A${u.sContent.byteLength}`);await c().put("decryptRecoveries",du(u));},async deleteDecryptRecovery(u,f){await c().delete("decryptRecoveries",Zt(u,f));},async deleteConversationDecryptRecoveries(u){let f=Ha$1(u),m=c().transaction("decryptRecoveries","readwrite"),h=await m.store.index("by_conversation").openCursor(IDBKeyRange.only(f));for(;h!==null;)await h.delete(),h=await h.continue();await m.done;},async getSessions(){return (await c().getAll("sessions")).map(er)},async saveSessions(u){if(u.length===0)return;let f=c().transaction("sessions","readwrite");for(let m of u)await f.store.put(Jn(m)),await f.store.delete(m.id);await f.done;},async deleteSession(u){if(typeof u!="string"){let h=c().transaction(["sessions","conversationBackgrounds"],"readwrite");await h.objectStore("sessions").delete(Ha$1(u)),await h.objectStore("conversationBackgrounds").delete(wn(u)),await h.done;return}let f=(await c().getAll("sessions")).map(er).filter(h=>h.id===u);Cn(u,f.map(h=>({conversationType:h.type})));let m=c().transaction(["sessions","conversationBackgrounds"],"readwrite");if(f[0]!==void 0){let h=Fa$1(f[0]);await m.objectStore("sessions").delete(Ha$1(h)),await m.objectStore("conversationBackgrounds").delete(wn(h));}await m.objectStore("sessions").delete(u),await m.done;},async deleteReadState(u){if(typeof u!="string"){await c().delete("readStates",Ha$1(u));return}let m=(await c().getAll("readStates")).map(Vn).filter(h=>h.conversationId===u).filter(h=>h.conversationType!==void 0);Cn(u,m),m[0]!==void 0&&await c().delete("readStates",Ha$1(m[0])),await c().delete("readStates",u);},async deleteMessage(u,f,m){return g(async()=>{let h=c().transaction(["messages","sessions","decryptRecoveries","recentHistoryPages"],"readwrite");return qe(h,async()=>{let l=await h.objectStore("messages").get(f);if(l!==void 0){let b=ke(l);if(b.conversationType!==u.conversationType||b.conversationId!==u.conversationId)return !1;await h.objectStore("messages").delete(f);}return await h.objectStore("decryptRecoveries").delete(Zt(u,f)),await h.objectStore("recentHistoryPages").delete(Ha$1(u)),m!==void 0&&await h.objectStore("sessions").put(Jn(m)),l!==void 0})})},async deleteConversationMessages(u){return g(async()=>{let f=fu(u),m=typeof u=="string"?"by_conv_sort":"by_conversation_key_sort",h=typeof u=="string"?u:Ha$1(u),l=IDBKeyRange.bound([h,""],[h,Ee]),b=c().transaction(["messages","decryptRecoveries","recentHistoryPages","meta"],"readwrite");return qe(b,async()=>{let S=b.objectStore("messages"),A=b.objectStore("decryptRecoveries"),x=[],v=[];if(typeof u=="string"){let k=(await S.index("by_conv_sort").getAll(l)).map(ke);x=(await A.getAll()).filter(N=>N.conversation.conversationId===u),v=(await b.objectStore("recentHistoryPages").getAll()).filter(N=>N.conversation.conversationId===f);let B=await b.objectStore("meta").get(Ia$1({conversationType:"channel",conversationId:f}));Cn(f,[...B===void 0?[]:[{conversationType:"channel"}],...k,...v.map(N=>({conversationType:N.conversation.conversationType})),...x.map(N=>({conversationType:N.conversation.conversationType}))]);}await b.objectStore("meta").delete(Ia$1(typeof u=="string"?{conversationType:"channel",conversationId:f}:u));let E=await S.index(m).openCursor(l);for(;E!==null;)await E.delete(),E=await E.continue();if(typeof u=="string"){for(let k of x)await A.delete(k.key);for(let k of v)await b.objectStore("recentHistoryPages").delete(k.conversationKey);}else {await b.objectStore("recentHistoryPages").delete(Ha$1(u));let k=await A.index("by_conversation").openCursor(IDBKeyRange.only(Ha$1(u)));for(;k!==null;)await k.delete(),k=await k.continue();}})})},async clearConversationHistory(u,f,m){return g(async()=>{let h=Ha$1(u),l=IDBKeyRange.bound([h,""],[h,Ee]),b=c().transaction(["messages","sessions","readStates","decryptRecoveries","recentHistoryPages","meta"],"readwrite");return qe(b,async()=>{await b.objectStore("meta").delete(Ia$1(u)),await b.objectStore("recentHistoryPages").delete(h);let S=await b.objectStore("messages").index("by_conversation_key_sort").openCursor(l);for(;S!==null;)await S.delete(),S=await S.continue();let A=await b.objectStore("decryptRecoveries").index("by_conversation").openCursor(IDBKeyRange.only(h));for(;A!==null;)await A.delete(),A=await A.continue();f!==void 0&&await b.objectStore("sessions").put(Jn(f)),m!==void 0&&(await b.objectStore("readStates").put(nr(m)),await b.objectStore("readStates").delete(m.conversationId));})})},async getReadStates(){return (await c().getAll("readStates")).map(Vn)},async saveReadState(u){let f=c().transaction("readStates","readwrite");await f.store.put(nr(u)),u.conversationType!==void 0&&await f.store.delete(u.conversationId),await f.done;},async getDrafts(){return (await c().getAll("drafts")).map(pu)},async saveDraft(u){await c().put("drafts",uu(u));},async deleteDraft(u){await c().delete("drafts",Ha$1(u));},async getConversationBackground(u){return (await c().get("conversationBackgrounds",wn(u)))?.background??null},async saveConversationBackground(u,f){let m=wn(u);await c().put("conversationBackgrounds",{key:m,background:f});},async deleteConversationBackground(u){await c().delete("conversationBackgrounds",wn(u));},async getDefaultConversationBackground(){return (await c().get("conversationBackgrounds",Qt))?.background??null},async saveDefaultConversationBackground(u){await c().put("conversationBackgrounds",{key:Qt,background:u});},async deleteDefaultConversationBackground(){await c().delete("conversationBackgrounds",Qt);},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(tr)},async savePinnedMessage(u){let f=c().transaction("pinnedMessages","readwrite");await f.store.put(ji(u)),await f.store.delete(u.conversationId),await f.done;},async removePinnedMessage(u){if(typeof u!="string"){await c().delete("pinnedMessages",Ha$1(u));return}let f=(await c().getAll("pinnedMessages")).map(tr).filter(m=>m.conversationId===u);Cn(u,f),f[0]!==void 0&&await c().delete("pinnedMessages",Ha$1(Ga$1(f[0]))),await c().delete("pinnedMessages",u);},async getMeta(u){let f=await c().get("meta",u);return f===void 0?null:f.value},async setMeta(u,f){await c().put("meta",{key:u,value:f});},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 f=c().transaction("channelProfiles","readwrite");await Promise.all([...u.map(m=>f.store.put(m)),f.done]);},async getChannelListVersion(){let u=await c().get("meta",Yt);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:Yt,value:u});},async getChannelMembers(u,f){if(f.length===0)return [];let m=c().transaction("channelMembers"),h=await Promise.all(f.map(l=>m.store.get([u,l])));return await m.done,h.filter(l=>l!==void 0)},async saveChannelMembers(u){if(u.length===0)return;let f=c().transaction("channelMembers","readwrite");for(let m of u){let h=await f.store.get([m.channelId,m.userId]);h!==void 0&&cu(m.updateVersion,h.updateVersion)<0||await f.store.put(m);}await f.done;},async deleteChannelMembers(u){let f=IDBKeyRange.bound([u,""],[u,Ee]),m=c().transaction("channelMembers","readwrite"),h=await m.store.openCursor(f);for(;h!==null;)await h.delete(),h=await h.continue();await m.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 wu(e={}){let n=e.createSocket??(p=>new globalThis.WebSocket(p)),t=e.connectTimeoutMs??1e4,r={open:new Set,message:new Set,close:new Set,error:new Set},o,i,a="idle",s;function d(p,w){for(let C of [...r[p]])C(w);}function c(){s!==void 0&&(clearTimeout(s),s=void 0);}function g(p,w){w!==void 0&&(p.removeEventListener("open",w.onOpen),p.removeEventListener("message",w.onMessage),p.removeEventListener("error",w.onError),p.removeEventListener("close",w.onClose));}function P(){if(c(),o!==void 0){g(o,i);try{o.close(1e3);}catch{}o=void 0;}i=void 0;}function y(p,w,C){let M={onOpen:()=>{p===o&&(c(),a="open",d("open",{endpoint:w}));},onMessage:_=>{if(p!==o||a!=="open")return;let D=_?.data;if(D instanceof ArrayBuffer){d("message",{data:D});return}d("error",{error:new Error(`WsTransport\uFF1A\u6536\u5230\u975E ArrayBuffer \u6D88\u606F\uFF08${typeof D}\uFF09\uFF0C\u5DF2\u5FFD\u7565`)});},onError:_=>{p===o&&d("error",{error:new Error(`WsTransport\uFF1AWebSocket error \u4E8B\u4EF6\uFF08${_ instanceof Event?_.type:typeof _}\uFF09`)});},onClose:_=>{p===o&&(c(),g(p,M),o=void 0,i=void 0,a="closed",d("close",{code:_?.code??1006,reason:_?.reason??"",wasClean:_?.wasClean??false}));}};if(i=M,p.addEventListener("open",M.onOpen),p.addEventListener("message",M.onMessage),p.addEventListener("error",M.onError),p.addEventListener("close",M.onClose),C>0){let _=setTimeout(()=>{if(!(p!==o||a!=="connecting")){d("error",{error:new Error(`WsTransport\uFF1A\u8FDE\u63A5\u8D85\u65F6\uFF08${C}ms \u672A open\uFF09`)});try{p.close();}catch{}}},C);_.unref?.(),s=_;}}return {get state(){return a},async connect(p,w){let C=p[0];if(C===void 0)throw new Error("WsTransport.connect\uFF1Aendpoints \u4E3A\u7A7A\uFF08P0 single \u7B56\u7565\u9700\u81F3\u5C11\u4E00\u4E2A\u7AEF\u70B9\uFF09");P(),a="connecting";let M;try{M=n(C.url);}catch(_){throw a="closed",_}M.binaryType="arraybuffer",o=M,y(M,C,w?.connectTimeoutMs??t);},async send(p){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(p);},async close(p=1e3,w){c(),o!==void 0&&(a==="connecting"||a==="open")&&(a="closing",o.close(p,w));},on(p,w){return r[p].add(w),()=>{r[p].delete(w);}}}}
7
+ export{jc as $,Or as $a,dc as A,vd as Aa,$i as B,Sd as Ba,mc as C,di as Ca,yc as D,li as Da,hc as E,_d as Ea,wc as F,xd as Fa,Cc as G,Rd as Ga,Pc as H,Ed as Ha,Ic as I,kd as Ia,vc as J,Td as Ja,Sc as K,Nd as Ka,Ac as L,Ld as La,Mc as M,Hd as Ma,_c as N,Fd as Na,xc as O,jd as Oa,Rc as P,$d as Pa,Ec as Q,qd as Qa,kc as R,Nn as Ra,Tc as S,Pe as Sa,Uc as T,ol as Ta,Bc as U,at as Ua,Nc as V,qi as Va,Un as W,al as Wa,On as X,Rl as Xa,Kc as Y,K as Ya,Hc as Z,Ji as Za,Fc as _,jn as _a,Ma as a,$c as aa,Fl as ab,mt as b,Jc as ba,J as bb,Ze as c,Vc as ca,Vl as cb,Y as d,Wc as da,zl as db,Ga as e,Yc as ea,Yl as eb,Ha as f,Qc as fa,hu as fb,en as g,Xc as ga,bu as gb,Fa as h,ed as ha,wu as hb,ts as i,td as ia,Xi as ib,Oe as j,rd as ja,vn as jb,Z as k,od as ka,la as kb,ps as l,id as la,Aa as lb,fs as m,ad as ma,on as n,cd as na,fe as o,pn as oa,Ss as p,ld as pa,an as q,ud as qa,re as r,pd as ra,Gs as s,fd as sa,Js as t,md as ta,Ys as u,gd as ua,Qs as v,yd as va,tc as w,hd as wa,Ke as x,bd as xa,V as y,Pd as ya,Me as z,Id as za};