k2-im 0.1.43 → 0.1.44

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.
@@ -1,7 +0,0 @@
1
- import {xa as xa$1,G,J as J$1,f,g,i,Y as Y$1,Z as Z$1,ba as ba$1,ca as ca$1,W,X as X$1,L,M,F as F$1,I,K as K$1,m,e,H as H$1,N,$,P,R,Q as Q$1,S,T,U as U$1,V as V$1,ja as ja$1,ka as ka$1,Ab,Ia as Ia$1,Ha as Ha$1,Ga as Ga$1,ha as ha$1,la as la$1,fa as fa$1,Fa as Fa$1,_,aa as aa$1,l,s,Da as Da$1,Ca as Ca$1,Ja as Ja$1,da as da$1,ea as ea$1}from'./chunk-6WAB2ZRF.js';import*as Q from'node-forge';import Q__default from'node-forge';import {deleteDB,openDB}from'idb';import {createSHA256}from'hash-wasm';function Fi(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 it(){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 ot(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 ji(e,n){if(n!==void 0&&n!==""){ne(e);let s=false,d={...e,isCurrent:()=>!s&&e.isCurrent()};try{if(!it())throw new Error("Image Clipboard API unavailable");let c=(async()=>ot(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(!it())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",ot(await e.loadThumbnail(),r)),a=(async()=>{try{return await ot(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 $i(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 qi=3600*1e3,Ji=300*1e3;function be(...e){for(let n of e){if(typeof n!="string"&&typeof n!="number")continue;let t=String(n).trim();if(t!=="")return t}return ""}function Vi(e){let n=Number(e);if(!(!Number.isFinite(n)||n<=0))return n>1e12?n/1e3:n}function zi(e){let n=e.replace(/\/+$/,"");return n===""?"":/^https?:\/\//i.test(n)?n:`https://${n}`}function Ur(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=zi(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=Vi(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 Wi(e,n){if(n-e.fetchedAtMs>=qi)return false;let{expiresAtSeconds:t}=e.credential;return t===void 0?true:t*1e3-Ji>n}function Or(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=Ur(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&&Wi(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 Yi(){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 In(e){return e instanceof F?e.code:void 0}function Br(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,Qi=new URL("./speex-runtime.txt",import.meta.url).href,at=null,Xi=15e3;async function Zi(){document.querySelector('script[data-speex-runtime="true"]')?.remove();let e=new AbortController,n=setTimeout(()=>e.abort(new Error("Speex runtime fetch timeout")),Xi),t;try{t=await fetch(Qi,{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 st(){let e=typeof window>"u"?void 0:window;return e?.__speexInH5!==void 0?e.__speexInH5:(at??=(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 Zi(),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 at=null,n instanceof F?n:new F("codec-unavailable","Speex \u8FD0\u884C\u65F6\u52A0\u8F7D\u5931\u8D25",{cause:n})}),at)}function Nr(){st().catch(()=>{});}function we(e,n,t){for(let r=0;r<t.length;r+=1)e.setUint8(n+r,t.charCodeAt(r));}function ea(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 ct(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 na=40,dt=120,ta=40,lt=80;function ra(e,n){let t=Math.min(Math.floor(n*na/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 ut(e,n){if(e.length===0)return e;let t=Math.min(Math.floor(n*dt/1e3),Math.max(0,e.length-1)),r=t>0?e.subarray(t):e,o=new Float32Array(r),i=Math.min(Math.floor(n*ta/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 vn(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 oa(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 ia(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 Kr(e,n){let t=await st(),r=Math.floor(n*lt/1e3),o=new Float32Array(r+e.length);o.set(e,r);let i=ea(o,n);try{return oa(t.encodeFile(i))}catch(a){throw new F("encode-failed","\u8BED\u97F3\u7F16\u7801\u5931\u8D25",{cause:a})}}async function Gr(e){let n=await st();try{let[t,r]=n.decodeFile(ia(e));if(t.length===0)throw new Error("decoded empty pcm");let o=ra(ct(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 Lr(e){let n=await Gr(e);return {wavData:vn(n.samples,n.sampleRate),durationMs:n.durationMs}}var aa=.5,sa=2;function Hr(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,aa),sa)}function ca(e={}){let n=e.cacheMax??8,t={activeId:"",isPlaying:false,loadingId:"",progress:0,currentTimeMs:0,errorIds:new Set,playbackRate:e.playbackRate===void 0?1:Hr(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:In(x),cause:x}}}if(A===null)return {entry:null};try{let{wavData:x,durationMs:v}=await Lr(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:In(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=Hr(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 da(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 la(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 Fr(e){let n=da(e.timeDomain),t=la(e.frequency,e.sampleRate,e.fftSize),r=n*.55+t*.45;return Math.min(1,r*e.boost)**.72}var Sn=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 ua=5e3,pt=15e3,pa=25e3,fa=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 ma(){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:ga()});try{return await We(e,fa,"\u9EA6\u514B\u98CE\u6388\u6743\u8BF7\u6C42\u8D85\u65F6")}catch(n){throw e.then(t=>t.getTracks().forEach(r=>r.stop())).catch(()=>{}),Br(n)}}function ga(){return {channelCount:1,echoCancellation:true,noiseSuppression:true,autoGainControl:true}}var ya=50,ha=.12,ba=2.6,wa=.06,Ca=256;function Pa(){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 Ia(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(),pt,"audioContext.resume timeout").catch(()=>{});let s=await We(i.decodeAudioData(await e.arrayBuffer()),pt,"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(),pt,"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 jr(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 va(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 ma(),Nr();let t=Pa(),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??ya,M=e.amplitude?.boost??ba,_=e.amplitude?.smoothing??ha,D=e.amplitude?.minVolume??wa;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=Ca,S.smoothingTimeConstant=_,b.connect(S);let A=new Uint8Array(S.frequencyBinCount),x=new Uint8Array(S.fftSize),v=new Sn;u=setInterval(()=>{if(o!=="recording"||d===null)return;S.getByteFrequencyData(A),S.getByteTimeDomainData(x);let E=Fr({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();},ua);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 Ia(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=jr(i);if(b.length===0)throw new F("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let S=ut(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(dt/C));return {data:await Kr(S,se),durationMs:Math.round(S.length/se*1e3)+lt,waveform:s.slice(A),filename:`AUDIO_${Date.now()}.ogg`,mimeType:"audio/ogg"}};try{return await We(l(),pa,"\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=jr(i),b=ut(l,se);if(b.length===0)throw new F("empty-recording","\u6682\u65E0\u53EF\u8BD5\u542C\u7684\u5F55\u97F3\u5185\u5BB9");return {wavData:vn(ct(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 $r(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 qr(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 Sa(e){let n=new Map,t=new Map,r=new Map,o=new Map,i=De($r);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=qr(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=qr(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 ft(){let e=globalThis.scheduler;return typeof e?.yield=="function"?e.yield():new Promise(n=>setTimeout(n,0))}var yt=2654435769,Jr=16,Ue=8,mt=16,Vr=32;function zr(e){if(e.length<mt)throw new Error(`TEA key \u957F\u5EA6\u4E0D\u8DB3\uFF1A${e.length}\uFF0C\u9700 \u2265 ${mt} \u5B57\u8282`);let n=new DataView(e.buffer,e.byteOffset,mt);return [n.getUint32(0,true),n.getUint32(4,true),n.getUint32(8,true),n.getUint32(12,true)]}function ht([e,n],[t,r,o,i]){let a=e>>>0,s=n>>>0,d=Math.imul(yt,16)>>>0;for(let c=0;c<Jr;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-yt>>>0;return [a,s]}function bt([e,n],[t,r,o,i]){let a=e>>>0,s=n>>>0,d=0;for(let c=0;c<Jr;c++)d=d+yt>>>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=zr(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,ht)}function Xe(e,n){return Ye(n,e,bt)}function Wr(e,n){return Ye(n,e,bt,Vr)}function Yr(e,n){return Ye(n,e,ht,Vr)}var Aa=1024*1024;function Ma(){return ft()}function gt(e){if(e?.aborted)throw new DOMException("TEA \u5206\u5757\u5904\u7406\u5DF2\u53D6\u6D88","AbortError")}async function wt(e,n,t,r=Aa,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}`);zr(e);let i=t==="encrypt"?bt:ht,a=o.yieldToMain??Ma,s=n.size,d=[],c=0;for(;c<s;){gt(o.signal);let g=Math.min(c+r,s),P=new Uint8Array(await n.slice(c,g).arrayBuffer());gt(o.signal),d.push(new Blob([Ye(P,e,i)])),c=g,o.onProgress?.(c,s),c<s&&await a();}return gt(o.signal),new Blob(d)}var Qr=8,An=16;function _a(e){let n=Q.md.md5.create();return n.update(e,"utf8"),n.digest().toHex()}function Zr(e){return new TextEncoder().encode(e)}function xa(e){let n=e.length;for(;n>0&&e[n-1]===0;)n-=1;return new TextDecoder().decode(e.subarray(0,n))}function Ra(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 Ea(e){let n="";for(let t of e)n+=String.fromCharCode(t);return btoa(n)}function ka(e){let n=Math.ceil(e.length/Qr)*Qr;if(n===e.length)return e;let t=new Uint8Array(n);return t.set(e),t}function eo(e,n=_a){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<An)throw new Error("collect TEA key: MD5 \u957F\u5EA6\u4E0D\u8DB3");let o=Zr(r.slice(0,An).toUpperCase());if(o.length<An)throw new Error("collect TEA key: \u6D3E\u751F\u7ED3\u679C\u4E0D\u8DB3 16 \u5B57\u8282");return o.subarray(0,An)}function no(e,n,t){return Ea(Xe(eo(n,t),ka(Zr(e))))}function Ta(e,n,t){return xa(Qe(eo(n,t),Ra(e)))}function Da(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function Ct(e){let n=e.trim();if(n===""||!n.startsWith("{"))return null;try{return Da(JSON.parse(n))}catch{return null}}function Ua(e){let n=e.trim(),t=n.indexOf("}");return t>=0?n.slice(0,t+1):n}function to(e,n,t){let r=Ct(e);if(r!==null)return r;if(e.trim()===""||n.trim()==="")return null;try{let o=Ta(e,n,t);return Ct(o)??Ct(Ua(o))}catch{return null}}var Oa="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:Oa,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 ro(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 Ba(e){let n=e.trim().replace(/-/g,"+").replace(/_/g,"/"),t=n+"=".repeat((4-n.length%4)%4),r=atob(t),o=new Uint8Array(r.length);for(let i=0;i<r.length;i++)o[i]=r.charCodeAt(i)&255;return o}function Na(e){let n=e.clientType,t=new Map,r=new Map,o=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 ro(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:Ba(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 oo(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 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=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 oo(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:Ka(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 La(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 io(e){let n="";for(let t of e)n+=String.fromCharCode(t);return n}function ao(e){let n=new Uint8Array(e.length);for(let t=0;t<e.length;t++)n[t]=e.charCodeAt(t)&255;return n}function so(e){return e.replace(/(.{64})/g,`$1
2
- `).trim()}function Ha(e){return e.replace(/-----BEGIN[^-]+-----/g,"").replace(/-----END[^-]+-----/g,"").replace(/\s+/g,"")}function Fa(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=so(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 co(e){let n=Fa(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(io(r.subarray(d,c)),"RSAES-PKCS1-V1_5");o.push(ao(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 ja(e){let n=co({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 $a(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=so(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 lo(){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 qa(e,n){if(n.length===0)throw new Error("RSA \u52A0\u5BC6\uFF1A\u660E\u6587\u4E3A\u7A7A");let t=$a(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(io(n.subarray(d,c)),"RSAES-PKCS1-V1_5");o.push(ao(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 Ja(e){let n=e.teaKey??lo();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:qa(e.publicKey,t),cipherData:r}}function Va(e){return Qe(e.teaKey,e.cipherData)}function za(e){return Xe(e.teaKey,e.plain)}function Wa(e){return wt(e.teaKey,e.plain,"encrypt",void 0,e.signal===void 0?{}:{signal:e.signal})}function Ya(e){return wt(e.teaKey,e.cipherData,"decrypt",void 0,e.signal===void 0?{}:{signal:e.signal})}function Qa(e){return Wr(e.teaKey,e.plain)}function Xa(e){return Yr(e.teaKey,e.cipherData)}function Za(){return new Promise((e,n)=>{Q.pki.rsa.generateKeyPair({bits:2048,e:65537,workers:-1},(t,r)=>{if(t){n(t);return}e({publicKeyBase64:Ha(Q.pki.publicKeyToPem(r.publicKey)),privateKey:Q.pki.privateKeyToPem(r.privateKey)});});})}function es(){return {decryptEndToEnd:ja,encryptEndToEnd:Ja,decryptSymmetric:Va,encryptSymmetric:za,encryptSymmetricChunked:Wa,decryptSymmetricChunked:Ya,encryptFileSimple:Qa,decryptFileSimple:Xa,randomTeaKey:lo,generateTempKeyPair:Za,rsaDecryptPkcs1:co}}function Pt(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},Pt(n.clientType,"GET"))}function tn(e,n){return U(e,"/friend/apply/agree",{id:n.applicationId},Pt(n.clientType,"POST"))}function rn(e,n){return U(e,"/friend/apply/del",{id:n.applicationId},Pt(n.clientType,"POST"))}var uo=50,po=20,fo=1,It=2,vt=3,ns=4,ts=5,mo=0,rs=1,os=2;function is(e){switch(e){case mo:case rs:case os: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 go(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 yo(e){let n=j(e.status);if(e.status===void 0||n==="")return true;let t=Number(n),r=is(t);if(r===void 0)throw new Z(`\u672A\u77E5\u7533\u8BF7\u72B6\u6001\uFF1A${n}`);return r===mo}function as(e){let n=j(e.type);if(n==="")return true;if(Number(n)!==fo)throw new Z(`\u8054\u7CFB\u4EBA\u7533\u8BF7\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${n}`);return true}function ss(e){let n=Number(j(e.type));if(n!==It&&n!==vt&&n!==ns&&n!==ts)throw new Z(`GROUP/CHANNEL \u6DF7\u5408\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${j(e.type)||"<empty>"}`);return n}function Mn(e){if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>uo)throw new Z(`limit \u5FC5\u987B\u4E3A 1-${uo}`);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 ho(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 St(e){let n=e.trim();if(n==="")throw new Z("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");return n}function cs(e){let n=St(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=go(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 ds(e){let n=St(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=go(e.create_time??e.createTime??e.update_version);return {applicationId:n,groupId:t,kind:Number(e.type)===vt?"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 _n(e,n,t){let r=await t(e.client,{applicationId:St(n),clientType:e.clientType});if(!r.ok)throw new Oe(r.code,r.message)}function ls(e){async function n(t){let{pageSize:r}=Mn(t),{page:o}=Mn(t);for(let i=0;i<po;i+=1){let a=await nn(e.client,{listType:fo,page:o,pageSize:r,clientType:e.clientType});if(!a.ok)throw new Oe(a.code,a.message);let s=ho(a.data),d=s.filter(P=>as(P)&&yo(P)).map(cs),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=>_n(e,t,tn),ignoreApplication:t=>_n(e,t,rn)}}function us(e){async function n(t){let{pageSize:r}=Mn(t),{page:o}=Mn(t);for(let i=0;i<po;i+=1){let a=await nn(e.client,{listType:It,page:o,pageSize:r,clientType:e.clientType});if(!a.ok)throw new Oe(a.code,a.message);let s=ho(a.data),d=s.filter(P=>{let y=ss(P);return (y===It||y===vt)&&yo(P)}).map(ds),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=>_n(e,t,tn),ignoreApplication:t=>_n(e,t,rn)}}function H(e){let n=typeof e=="string"||typeof e=="number"?String(e).trim():"";return n===""?void 0:n}function ps(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 fs(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 ms(e){let n=Number(e.product_id),t=ps(e.is_dynamic);return {...fs(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 bo(e,n){return Array.isArray(e.mini_program_rel_list)?e.mini_program_rel_list.filter(t=>t!==null&&typeof t=="object").map(t=>ms(t)):n.source==="info"?[]:void 0}function wo(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function Co(e,n){return U(e,"/user_radio/list",{user_id:n.userId,update_version:n.updateVersion,page:n.page,page_size:n.pageSize},wo(n.clientType,"GET"))}function Po(e,n){return U(e,"/user_radio/info",{radio_id:n.channelId},wo(n.clientType,"POST"))}var Io=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 vo(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 gs(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 ys(e,n){return Number(e)===1?"member":Number(e)===9?"admin":Number(e)===10?"owner":n===false?"guest":"unknown"}function hs(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 bs(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 ws(e){if(e!=null)return Number(e)===1?"standard":Number(e)===2?"competition":"unknown"}function Cs(e){let n=Ae(e);return n!==void 0&&/^\d+$/.test(n)?n.replace(/^0+(?=\d)/,""):void 0}function Ps(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 So(e,n,t){let r=vo(e.radio_id??e.id,"id"),o=vo(e.name,"name"),i=e.is_in===void 0?void 0:Be(e.is_in),a=ys(e.radio_user?.role_id,i),s=hs(e),d=bs(e,a,s),c=Da$1({channelState:s,snapshot:d,nowMs:n}),g={...d,resolvedState:c.channelState},P=Cs(e.update_version),y=Ae(e.head_img_url),p=Ae(e.desc),w=Ae(e.user_id),C=Number(e.total_users),M=ws(e.type),_=gs(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=bo(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 Ao(e){return {...e,updatedAt:Date.now()}}function Mo(e,n){if(e.accessSnapshot===void 0)return {...e,permissions:Ca$1(e.role,e.channelState)};let t=Da$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 At(e,n){let{updatedAt:t,...r}=Mo(e,n);return r}function Is(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,Mo(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 Co(e.client,{userId:M,updateVersion:_,page:I,pageSize:Io,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=>So(f,O,"list"));if(D.push(...u),u.length<Io)break}if(w!==c)return [...n.values()].map(I=>At(I,e.now?.()??Date.now()));let R=o;for(let I of D)n.set(I.id,Ao(I)),I.updateVersion!==void 0&&(R=Ps(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=>At(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 At(R,e.now?.()??Date.now());let I=await Po(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=So(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=Ao(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 _o(e,n){return nn(e,{listType:2,page:n.page,pageSize:n.pageSize,clientType:n.clientType})}function xo(e,n){return tn(e,n)}function Ro(e,n){return rn(e,n)}var vs=20,Eo=50,Ss=20,As=2,Ms=3,To=4,_s=5,Do=0,xs=1,Rs=2;function Es(e){switch(e){case Do:case xs:case Rs: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 ks(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 Ts(e){let n=q(e.status);if(e.status===void 0||n==="")return true;let t=Number(n),r=Es(t);if(r===void 0)throw new re(`\u672A\u77E5\u7533\u8BF7\u72B6\u6001\uFF1A${n}`);return r===Do}function Ds(e){let n=Number(q(e.type));if(n!==As&&n!==Ms&&n!==To&&n!==_s)throw new re(`GROUP/CHANNEL \u6DF7\u5408\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${q(e.type)||"<empty>"}`);return n}function Us(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=ks(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 ko(e){if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>Eo)throw new re(`limit \u5FC5\u987B\u4E3A 1-${Eo}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit||vs};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 Os(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 Bs(e){let n=e.trim();if(n==="")throw new re("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");return n}function Ns(e){async function n(r){let{pageSize:o}=ko(r),{page:i}=ko(r);for(let a=0;a<Ss;a+=1){let s=await _o(e.client,{page:i,pageSize:o,clientType:e.clientType});if(!s.ok)throw new an(s.code,s.message);let d=Os(s.data),c=d.filter(y=>Ds(y)===To&&Ts(y)).map(Us),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:Bs(r),clientType:e.clientType});if(!i.ok)throw new an(i.code,i.message)}return {listJoinApplications:n,acceptJoinApplication:r=>t(r,xo),ignoreJoinApplication:r=>t(r,Ro)}}function xn(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function Mt(e,n){return U(e,"/user_radio/users",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},xn(n.clientType,"GET"))}function _t(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"},xn(n.clientType,"POST"))}function Uo(e,n){return U(e,"/user_radio/admins",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},xn(n.clientType,"GET"))}function Oo(e,n){return U(e,"/user_radio/user/infos",{radio_id:n.channelId,user_ids:n.userIds.join(",")},xn(n.clientType,"POST"))}var Rn=18,Ks=12,Gs=300*1e3,Ls=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 Hs(e){return Number(e)===1?"member":Number(e)===9?"admin":Number(e)===10?"owner":"unknown"}function Fs(e){let n=me(e);return /^\d+$/.test(n)?n.replace(/^0+(?=\d)/,""):void 0}function xt(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 Bo(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=Fs(e.update_version),d=Number(e.join_type);return {userId:r,...o===""?{}:{nickname:o},displayName:o||i||r,...a===""?{}:{avatar:a},role:Hs(e.role_id),...Number.isInteger(d)?{joinType:d}:{},...s===void 0?{}:{updateVersion:s}}}function js(e){if(e.channelId.trim()==="")throw new z("channelId \u4E0D\u80FD\u4E3A\u7A7A");if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>Rn)throw new z(`limit \u5FC5\u987B\u4E3A 1-${Rn}`);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 No(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 $s(e){let n=e.now??(()=>Date.now()),t=e.isActive??(()=>true),r=e.cacheTtlMs??Gs,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>Ls;){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||xt(b.updateVersion,S.updateVersion)>=0)&&l.set(b.userId,b);}return h.map(b=>l.get(b))}async function _(f,m){let h=await ha$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&&xt(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||xt(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}=js({...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=No((A.data??[]).map(k=>Bo(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<Ks&&!A;E+=1){let k=await T({channelId:m,limit:Rn,...S===void 0?{}:{cursor:S}},(B,N,$)=>Mt(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:Rn},(x,v,E)=>_t(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)=>Mt(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)=>_t(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)=>Uo(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 Oo(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=No((E.data??[]).map(G=>Bo(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 Ko(e){return {responseMode:"strict",method:"POST",...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function Go(e,n){return U(e,"/user_radio/member/list",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},Ko(n.clientType))}function Lo(e,n){return U(e,"/user_radio/member/search",{radio_id:n.channelId,search_name:n.query,page:n.page,page_size:n.pageSize},Ko(n.clientType))}var Ho=18,En=class extends Error{constructor(t,r){super(`CHANNEL @ member HTTP \u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`);this.code=t;this.name="ChannelMentionMemberHttpError";}code},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 qs(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 Js(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>Ho)throw new le(`limit \u5FC5\u987B\u4E3A 1-${Ho}`);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 Vs(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 zs(e){async function n(t,r){let{channelId:o,page:i,pageSize:a}=Js(t),s=await r({channelId:o,page:i,pageSize:a,clientType:e.clientType});if(!s.ok)throw new En(s.code,s.message);if(s.data!==null&&!Array.isArray(s.data))throw new le("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let d=s.data??[],c=Vs(d.map(qs)),g=d.length<a;return {items:c,exhausted:g,...g?{}:{nextCursor:String(i+1)}}}return {listMentionMembers:t=>n(t,r=>Go(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=>Lo(e.client,{...o,query:r}))}}}function Ws(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 xa$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 kn(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 Ys(e){let n=kn(e,"\u8054\u7CFB\u4EBA\u76EE\u5F55\u9879"),t=n.user_info===void 0?n:kn(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 Qs(e){let n=kn(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 Xs(e){let n=kn(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 Zs(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 ec(e){return {async list(n){Zs(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"?Ys:n.kind==="group"?Qs:Xs,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 nc="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 tc(e,n){let t=Number(e);if(!Number.isSafeInteger(t))throw new V(`${n} \u5FC5\u987B\u662F\u5B89\u5168\u6574\u6570`);return t}function Fo(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 Rt(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 jo(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:tc(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 Et(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 rc(e,n){if(n!=="emoji")return Et(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 $o(e,n,t){let r=dn(n);return Rt(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 Jo(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 oc(e){return e.kind!=="emoji"?Jo(e):{fav_type:dn(e.kind),pack_id:"",img_url:e.token,file_name:e.resourceId,width:0,height:0}}function qo(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 ic(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:Fo(r.width,"Giphy original.width"),height:Fo(r.height,"Giphy original.height")}}function ac(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=ic(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 sc(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(`${nc}/${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 ac(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(jo)};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(jo)}},async listStickerItems(r){let o=await n("/user/sticker/item_list",{pack_id:r},"\u8D34\u56FE\u660E\u7EC6\u5217\u8868");return Rt(o,"\u8D34\u56FE\u660E\u7EC6\u5217\u8868 data").map(i=>Et(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 $o(o,r,"\u8868\u60C5\u6536\u85CF\u5217\u8868 data").map(i=>Et(i,r,"\u8868\u60C5\u6536\u85CF\u9879"))},async addFavorite(r){await n("/user/sticker/my_fav/add",Jo(r),"\u6DFB\u52A0\u8868\u60C5\u6536\u85CF");},async deleteFavorites(r){await n("/user/sticker/my_fav/del",{ids:qo(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 $o(o,r,"\u6700\u8FD1\u4F7F\u7528\u5217\u8868 data").map(i=>rc(i,r))},async reportRecent(r){await n("/user/sticker/recent/report",oc(r),"\u4E0A\u62A5\u6700\u8FD1\u4F7F\u7528");},async deleteRecent(r){await n("/user/sticker/recent/del",{ids:qo(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 Rt(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 Vo(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 cc(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 dc(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 zo=200,lc=50;async function Wo(e,n){let t=String(n.updateVersion??0).trim()||"0",r=[],o;for(let i=1;i<=lc;i++){let a={group_id:n.groupId,update_version:t,page:String(i),page_size:String(zo)},{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=cc(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=dc(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<zo)break}return {members:r,updateVersion:o}}async function Yo(e,n){return (await U(e,"/user/info/friend",{friend_user_id:n.userId})).data}var uc=1440*60*1e3;function kt(e,n,t=uc){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 pc(e){async function n(y){let p=await Yo(e.client,{userId:y})??await en(e.client,{userId:y});return p===null?null:da$1(p)}async function t(y){let p=await Vo(e.client,{groupId:y,clientType:e.clientType});return p===null?null:ea$1(p)}async function r(y){let{members:p}=await Wo(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=kt(n,a),g=kt(t,d),P=kt(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 Tn=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 fc(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 Qo(e,n,t){let r=fc(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 Tn(n,i.code,i.message)}function mc(e,n){return Qo(e,"bind",n)}function gc(e,n){return Qo(e,"unbind",n)}function yc(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 hc(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 bc(e){return ae(e.client,"/user_radio/user/setting",{radio_id:e.channelId,nick_name:e.nickname},"\u4FEE\u6539\u793E\u7FA4\u6635\u79F0")}function wc(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 Cc(e){let n=e.userIds.map(t=>({user_id:yc(t)}));return ae(e.client,"/user_radio/invited_users",{radio_id:e.channelId,members:JSON.stringify(n)},"\u9080\u8BF7\u793E\u7FA4\u6210\u5458")}function Pc(e){return ae(e.client,"/user_radio/kick_user",{radio_id:e.channelId,user_id:e.userId},"\u79FB\u9664\u793E\u7FA4\u6210\u5458")}function Ic(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 vc(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 Sc(e){return ae(e.client,"/user_radio/transfer",{radio_id:e.channelId,user_id:e.userId},"\u8F6C\u8BA9\u793E\u7FA4")}function Ac(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 Mc(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 _c(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 xc(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 Rc(e){return ae(e.client,"/user_radio/closed",{radio_id:e.channelId},"\u89E3\u6563\u793E\u7FA4")}async function Ec(e){e.signal?.throwIfAborted(),kc(e.channelId,"channel");let n=e.index.trim();if(n==="")throw new Error("CHANNEL \u5386\u53F2\u4E0A\u4E0B\u6587 index \u7F3A\u5931");e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId),e.signal?.throwIfAborted();let t=e.containAnchor??true,r=G({userId:e.userId,clientType:e.clientType,pulls:[{channelId:e.channelId,baseIndex:n,direction:0,count:20,contain:t?1:0}]}),o=await e.http.postProtobuf({path:"/channel/v1/offlineMessages",body:r,...e.signal===void 0?{}:{signal:e.signal}});e.signal?.throwIfAborted();let i=J$1(o,{selfId:e.userId,keepRaw:true,expectedChannelIds:[e.channelId],onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps);if(t){let s=i.messages.filter(d=>d.extensions?.historyCursor===n);if(s.length!==1)throw new Error(`CHANNEL \u5386\u53F2\u4E0A\u4E0B\u6587 anchor \u5FC5\u987B\u4E00\u4E00\u5BF9\u5E94\uFF08channelId=${e.channelId}, index=${n}, count=${s.length}\uFF09`)}let a=i.nextBaseIndexes[e.channelId];return {messages:i.messages,hasNewer:(i.messageCounts[e.channelId]??0)===20&&a!==void 0&&a!==n,...a===void 0?{}:{nextCursor:a}}}function kc(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 Tc(e){let n=Dc(e.indexes),t=f.encode(f.create({sUserId:Tt(e.userId,"user"),lsIndex:n.map(i=>({sChnnId:Tt(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 Dc(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=>{Tt(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 Tt(e,n){if(!/^\d+$/.test(e))throw new Error(`CHANNEL readIndexes ${n} id \u975E\u6CD5\uFF1A${e}`);let t=BigInt(e);if(t<=0n)throw new Error(`CHANNEL readIndexes ${n} id \u975E\u6CD5\uFF1A${e}`);return t}async function Uc(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 Dn=class extends Error{responseCode;constructor(n,t){super(`\u641C\u7D22\u7528\u6237\u5931\u8D25\uFF08${n}\uFF09\uFF1A${t||"unknown error"}`),this.name="ContactUserSearchError",this.responseCode=n;}},Un=class extends Error{kind;responseCode;constructor(n,t,r){super(`\u53D1\u9001\u597D\u53CB\u7533\u8BF7\u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`),this.name="ContactFriendshipRequestError",this.kind=n,this.responseCode=t;}},Dt={HIDDEN_CONTACT:40112,OWN_FRIEND_LIMIT_REACHED:40121,TARGET_FRIEND_LIMIT_REACHED:40122},Oc=36875,Bc=40113;function Ut(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function ge(e){let n=Ut(e);return n===""?void 0:n}function Xo(e){let n=Array.isArray(e)?e[0]:e;return n!==null&&typeof n=="object"?n:void 0}function Nc(e){switch(e){case Dt.HIDDEN_CONTACT:return "hidden-contact";case Dt.OWN_FRIEND_LIMIT_REACHED:return "own-friend-limit";case Dt.TARGET_FRIEND_LIMIT_REACHED:return "target-friend-limit";default:return "remote"}}async function Kc(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 Dn(r.code,r.message);let o=Xo(r.data);if(o===void 0)return null;let i=Ut(o.user_id??o.userId);if(i==="")throw new Error("\u641C\u7D22\u7528\u6237\uFF1A\u54CD\u5E94\u7F3A\u5C11 user_id");let a=Ut(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 Gc(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 Un(Nc(i.code),i.code,i.message);let a=Xo(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 Lc(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!==Bc)throw new Error(`\u5220\u9664\u597D\u53CB\u5931\u8D25\uFF08${r.code}\uFF09\uFF1A${r.message||"unknown error"}`)}async function Hc(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 Fc(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:Fc(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 $c(e){return U(e.client,"/user_group/create_face",{is_hidden:"0"},{method:"POST",responseMode:"strict"})}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_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 Zo(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function Vc(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(!Zo(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(!Zo(t)||t.group_id!==e.groupId||t.group_type!==2||typeof t.msg_content!="string"||t.msg_content==="")throw new Error("board get \u54CD\u5E94\u7ED3\u6784\u975E\u6CD5\uFF1A\u7F6E\u9876\u8BB0\u5F55\u5B57\u6BB5\u4E0D\u5339\u914D");let r=t,o=i(r.msg_content);if(o.envelope.convType!==2)throw new Error("board get \u5FEB\u7167 convType \u5FC5\u987B\u4E3A 2");if(o.envelope.receiverId!==e.groupId)throw new Error("board get \u5FEB\u7167 receiverId \u4E0E\u54CD\u5E94 groupId \u4E0D\u4E00\u81F4");return {...n,data:{groupId:r.group_id,groupType:2,messageContent:r.msg_content}}}function ei(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function zc(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(!ei(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(!ei(t)||t.group_id!==e.channelId||t.group_type!==1||typeof t.msg_content!="string"||t.msg_content==="")throw new Error("channel board get \u54CD\u5E94\u7ED3\u6784\u975E\u6CD5\uFF1A\u7F6E\u9876\u8BB0\u5F55\u5B57\u6BB5\u4E0D\u5339\u914D");let r=t,o=i(r.msg_content);if(o.envelope.convType!==3)throw new Error("channel board get \u5FEB\u7167 convType \u5FC5\u987B\u4E3A 3");if(o.envelope.receiverId!==e.channelId)throw new Error("channel board get \u5FEB\u7167 receiverId \u4E0E\u54CD\u5E94 channelId \u4E0D\u4E00\u81F4");return {...n,data:{channelId:r.group_id,groupType:1,messageContent:r.msg_content}}}async function Wc(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 Yc(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 Qc(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||!Yc(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 Xc(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}async function ln(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 Zc(e){let n=e.userIds.map(t=>({user_id:Xc(t)}));return ln(e.client,"/user_group/invited",{group_id:e.groupId,members:JSON.stringify(n)},"\u9080\u8BF7\u7FA4\u6210\u5458")}function ed(e){return ln(e.client,"/user_group/kick",{group_id:e.groupId,out_user_id:e.userId},"\u79FB\u9664\u7FA4\u6210\u5458")}function nd(e){return ln(e.client,"/user_group/transfer",{group_id:e.groupId,new_user_id:e.userId},"\u8F6C\u8BA9\u7FA4\u7EC4")}function td(e){return ln(e.client,"/user_group/user/quit",{group_id:e.groupId,...e.newOwnerId===void 0?{}:{new_user_id:e.newOwnerId}},"\u9000\u51FA\u7FA4\u7EC4")}function rd(e){return ln(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 od=new Set([200,32768]);async function id(e){let n=Y$1({userId:e.userId,groupId:e.groupId}),t=await e.http.postProtobuf({path:"/offline/v1/group/read_all",body:n}),{code:r}=Z$1(t);if(!od.has(r))throw new Error(`\u7FA4 read_all \u4E1A\u52A1\u5931\u8D25\uFF1Acode=${r}\uFF08groupId=${e.groupId}\uFF09`)}var un=class extends Error{constructor(n){super(`${n}\u54CD\u5E94\u5305\u542B\u65E0\u6CD5\u8BC6\u522B\u7684 is_waitting`),this.name="MembershipJoinMappingError";}};function ad(e,n){if(e===true||e===1||e==="1")return Object.freeze({outcome:"waiting"});if(e==null||e===false||e===0||e==="0")return Object.freeze({outcome:"joined"});throw new un(n)}async function ni(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 un(r);return ad(o.data.is_waitting,r)}async function ti(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 sd(e){return ni(e.client,"/user_group/apply",{group_id:e.groupId,qrcode_type:2,remarks:e.remarks??""},"\u7533\u8BF7\u52A0\u5165\u666E\u901A\u7FA4")}function cd(e){return ti(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 dd(e){return ni(e.client,"/user_radio/add/apply",{radio_id:e.channelId,remarks:e.remarks??""},"\u7533\u8BF7\u52A0\u5165\u793E\u7FA4")}function ld(e){return ti(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 ud(e){if(Fe(e.groupId),e.messageContent.trim()==="")throw new Error("board pinned message messageContent \u4E0D\u80FD\u4E3A\u7A7A");let n=i(e.messageContent);if(n.envelope.convType!==2)throw new Error("board pin \u5FEB\u7167 convType \u5FC5\u987B\u4E3A 2");if(n.envelope.receiverId!==e.groupId)throw new Error("board pin \u5FEB\u7167 receiverId \u4E0E\u76EE\u6807 groupId \u4E0D\u4E00\u81F4");let t=await 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 pd(e){if(je(e.channelId),e.messageContent.trim()==="")throw new Error("channel board pinned message messageContent \u4E0D\u80FD\u4E3A\u7A7A");let n=i(e.messageContent);if(n.envelope.convType!==3)throw new Error("channel board pin \u5FEB\u7167 convType \u5FC5\u987B\u4E3A 3");if(n.envelope.receiverId!==e.channelId)throw new Error("channel board pin \u5FEB\u7167 receiverId \u4E0E\u76EE\u6807 channelId \u4E0D\u4E00\u81F4");let t=await 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 fd(e){let n=ba$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 ca$1(t,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function md(e){e.prepareKeys!==void 0&&e.decryptDeps!==void 0&&e.groupId!==""&&await e.prepareKeys([e.groupId]);let n=W({userId:e.userId,groupId:e.groupId,messageIds:e.messageIds,clientType:e.clientType}),t=await e.http.postProtobuf({path:"/offline/v1/group/msg/by_id",body:n});return X$1(t,{selfId:e.userId,keepRaw:true,source:"history",onReaction:e.onReaction},e.decryptDeps)}async function gd(e){e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId);let n=L({userId:e.userId,channelId:e.channelId,messageIds:e.messageIds,clientType:e.clientType}),t=await e.http.postProtobuf({path:"/channel/v1/msg/by_id",body:n});return M(t,{selfId:e.userId,keepRaw:true,expectedChannelIds:[e.channelId],diagnostic:{endpoint:"msgById",surface:"msg-by-id",...e.operationId===void 0?{}:{operationId:e.operationId},clientTypeHeader:e.clientType,clientTypeBody:e.clientType},onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps)}var yd=20,ri=10,Ot=30,hd=100;async function bd(e){let n=[];for(let t of ii(e.channels,yd)){let r=F$1({userId:e.userId,clientType:e.clientType,channels:t}),o=await e.http.postProtobuf({path:"/channel/v1/sessions",body:r}),i={selfId:e.userId,keepRaw:e.keepRaw??true,expectedChannelIds:t.map(s=>s.channelId),diagnostic:{endpoint:"sessions",surface:"session-last",...e.operationId===void 0?{}:{operationId:e.operationId},clientTypeHeader:e.clientType,clientTypeBody:e.clientType}},a=I(o,i);await oi(e,a.sessions.filter(s=>s.channelState==="active"||s.raw?.status===0).map(s=>s.channelId)),n.push(...I(o,{...i,onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps).sessions);}return n}async function wd(e){let n=Id(e.channelBatchSize),t=e.messageCount??Ot,r=vd(e.maxPagesPerBatch),o=new Map;for(let i of ii(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=G({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 oi(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?J$1(P,y,e.decryptDeps):await K$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(m)}async function Cd(e$1){e$1.signal?.throwIfAborted();let n=e$1.count??Ot;if(!Number.isInteger(n)||n<=0)throw new Error("channel latest: count \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");e$1.decryptDeps!==void 0&&e$1.prepareKey!==void 0&&await e$1.prepareKey(e$1.channelId);let t=G({userId:e$1.userId,clientType:e$1.clientType,pulls:[{channelId:e$1.channelId,baseIndex:"",direction:1,count:n,contain:0}]});e$1.signal?.throwIfAborted();let r=await e$1.http.postProtobuf({path:"/channel/v1/offlineMessages",body:t,...e$1.signal===void 0?{}:{signal:e$1.signal}});e$1.signal?.throwIfAborted();let o={selfId:e$1.userId,keepRaw:e$1.keepRaw??true,expectedChannelIds:[e$1.channelId],diagnostic:{endpoint:"offlineMessages",surface:"history-page",...e$1.operationId===void 0?{}:{operationId:e$1.operationId},clientTypeHeader:e$1.clientType,clientTypeBody:e$1.clientType},onContentDecodeError:e$1.onContentDecodeError,onReaction:e$1.onReaction},i=e$1.yieldToEventLoop===void 0?{...J$1(r,o,e$1.decryptDeps),firstBaseIndex:e.decode(r).lsMessage[0]?.sIndex}:await K$1(r,o,e$1.decryptDeps,{yieldToEventLoop:e$1.yieldToEventLoop,signal:e$1.signal}),a=i.batchSize===n,s=i.firstBaseIndex;if(a&&(typeof s!="string"||s.trim()===""))throw new Error(`channel latest: \u6EE1\u9875\u7F3A\u5C11\u5411\u65E7 cursor\uFF08channelId=${e$1.channelId}\uFF09`);return {messages:i.messages,hasOlder:a,...a?{nextCursor:s}:{}}}async function Pd(e){e.signal?.throwIfAborted();let n=e.count??Ot;e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId);let t=H$1({userId:e.userId,clientType:e.clientType,channelId:e.channelId,baseIndex:e.baseIndex,count:n,contain:e.contain??0});e.signal?.throwIfAborted();let r=await e.http.postProtobuf({path:"/channel/v1/offlineMessages",body:t,...e.signal===void 0?{}:{signal:e.signal}});return e.signal?.throwIfAborted(),N(r,{selfId:e.userId,channelId:e.channelId,requestedBaseIndex:e.baseIndex,requestedCount:n,keepRaw:e.keepRaw??true,diagnostic:{endpoint:"history",surface:"history-page",...e.operationId===void 0?{}:{operationId:e.operationId},clientTypeHeader:e.clientType,clientTypeBody:e.clientType},onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps)}async function oi(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 Id(e){if(e===void 0)return ri;if(!Number.isInteger(e)||e<=0)throw new Error("channel offline: channelBatchSize \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");return Math.min(e,ri)}function vd(e){if(e===void 0)return hd;if(!Number.isInteger(e)||e<=0)throw new Error("channel offline: maxPagesPerBatch \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");return e}function ii(e,n){let t=[];for(let r=0;r<e.length;r+=n)t.push(e.slice(r,r+n));return t}async function ai(e,n){let t=_({userId:n.userId,clientType:n.clientType,limit:n.limit,deliveredMsgInfos:n.deliveredMsgInfos}),r=await n.http.postProtobuf({path:e,body:t});return aa$1(r,{selfId:n.userId,keepRaw:true,onReaction:n.onReaction},n.decryptDeps)}function si(e){return ai("/offline/v1/chat",e)}function ci(e){return ai("/offline/v1/owner_chat",e)}function Sd(e){return si(e).then(n=>($(n),n.messages))}function Ad(e){return ci(e).then(n=>($(n),n.messages))}function di(e){return [...new Set(e.filter(n=>n!==void 0&&n!==""))]}async function Md(e){let n=P({userId:e.userId,clientType:e.clientType,limit:e.limit,deliveredMsgIds:e.deliveredMsgInfos?.map(r=>r.msgId)}),t=await e.http.postProtobuf({path:"/offline/v1/group",body:n});if(e.prepareKeys!==void 0&&e.decryptDeps!==void 0){let r=R(t,{selfId:e.userId}),o=di(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 _d(e){let n=Q$1({userId:e.userId,clientType:e.clientType,size:e.size}),t=await e.http.postProtobuf({path:"/offline/v1/group/session",body:n});if(e.prepareKeys!==void 0&&e.decryptDeps!==void 0){let r=S(t,{selfId:e.userId}),o=di([...r.unreads.map(i=>i.groupId),...r.messages.map(i=>i.conversationId)]);o.length>0&&await e.prepareKeys(o);}return S(t,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function xd(e){e.signal?.throwIfAborted(),e.prepareKeys!==void 0&&e.decryptDeps!==void 0&&e.groupId!==""&&await e.prepareKeys([e.groupId]);let n=T({userId:e.userId,groupId:e.groupId,baseTime:e.baseTime,direct:e.direct,limit:e.limit,clientType:e.clientType});e.signal?.throwIfAborted();let t=await e.http.postProtobuf({path:"/offline/v1/group/history_msg",body:n,...e.signal===void 0?{}:{signal:e.signal}});e.signal?.throwIfAborted();let r={selfId:e.userId,keepRaw:e.keepRaw??true,source:"history",onReaction:e.onReaction};return e.yieldToEventLoop===void 0?U$1(t,r,e.decryptDeps):V$1(t,{...r,expectedGroupId:e.groupId},e.decryptDeps,{yieldToEventLoop:e.yieldToEventLoop,signal:e.signal})}async function Rd(e){let n=ja$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 ka$1(t)}var On=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 Bt(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function li(e){let n=Bt(e);return n===""?void 0:n}function Nt(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function Ed(e){if(e===true||e===1||e==="1")return true;if(e===false||e===0||e==="0")return false}function kd(e){let n=Nt(e);if(n===void 0)throw new de("\u673A\u5668\u4EBA\u76EE\u5F55\u9879\u5FC5\u987B\u662F\u5BF9\u8C61");let t=Bt(n.robot_id??n.robotId);if(t==="")throw new de("\u673A\u5668\u4EBA\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A robot_id");let r=Bt(n.robot_name??n.robotName)||t,o=li(n.mid??n.botMid??n.bot_mid),i=li(n.img_url??n.imgUrl),a=Ed(n.bind);return {id:t,displayName:r,...o===void 0?{}:{username:o},...i===void 0?{}:{avatarUrl:i},...a===void 0?{}:{bound:a}}}function Td(e){if(Array.isArray(e))return e;let n=Nt(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 Dd(e){let n=Nt(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 Ud(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 On(o.code,o.message);let a=Td(o.data).map(kd),s=Dd(o.data),d=s===void 0?a.length<n.pageSize:n.page*n.pageSize>=s;return {items:a,exhausted:d}}var Od={direct:"/friend/undisturb/set",group:"/user_group/user/edit",channel:"/user_radio/user/setting",robot:"/friend/undisturb/set"},Bd={direct:"friend_user_id",group:"group_id",channel:"radio_id",robot:"friend_user_id"};async function Nd(e){let n=Od[e.conversationType],t=Bd[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 Kd(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 Gd(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 Ld(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 Hd(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 Fd(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",$d="2000",qd="",Bn=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 pn(e,n){let t=X(e).trim();if(t==="")throw new Pe(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function Jd(e){let n=typeof e=="number"?e:Number(String(e??"").trim());return n===1?"text":n===2?"image":n===3?"video":n===4?"voice":n===5?"location":n===11?"file":n===28?"mediaAlbum":null}function Vd(e){return e==="text"?1:e==="image"?2:e==="video"?3:e==="voice"?4:e==="location"?5:e==="mediaAlbum"?28:11}function zd(e){if(e==="direct")return 0;if(e==="group")return 1;if(e==="channel")return 2;throw new Pe(`favorite conversation type ${e}`)}function Nn(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 Wd(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 Yd(e,n){let t=e.from_user,r=X(t?.nick_name||t?.nickname||t?.name).trim();return r===""?n:r}function Qd(e,n){let t=X(e.uu_id).trim(),r=Jd(e.content_type),o=to(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:Yd(e,i),avatarUrl:X(e.from_user?.avatar).trim(),createdAt:X(e.create_time||e.update_time||e.msg_time).trim(),text:Nn(o,r),imageUrl:Ab(r,o),fileName:r==="file"?Nn(o,"file"):"",body:Object.freeze({...o}),conversation:Wd(e,n)})}function Xd(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 Zd(){if(typeof crypto>"u"||typeof crypto.randomUUID!="function")throw new Pe("collect uuid \u4E0D\u53EF\u7528");return crypto.randomUUID()}function el(e){return Object.freeze({...e,body:Object.freeze({...e.body}),conversation:e.conversation===null?null:Object.freeze({...e.conversation})})}function nl(e){async function n(t,r,o){if(e.coreClient===void 0)throw new Bn;let i=await U(e.coreClient,t,r,{method:"POST",responseMode:"strict",prefix:qd});if(!i.ok)throw new Y(o,i.code,i.message);return i.data}return {async list(){let t=pn(e.getUserId(),"favorite userId"),r=await n("/api/v1/user/favorite/list",{start_time:jd,page_size:$d},"\u4F1A\u8BDD\u6536\u85CF\u5217\u8868");return Object.freeze(Xd(r).flatMap(o=>{let i=Qd(o,t);return i===null?[]:[i]}))},async add(t){let r=pn(e.getUserId(),"favorite userId"),o=(e.createCollectId??Zd)(),i={msg_id:pn(t.messageId,"favorite msgId"),content_type:Vd(t.kind),msg_type:zd(t.conversation.conversationType),msg_time:String(t.createdAt),from_id:pn(t.senderId,"favorite fromId"),to_id:pn(t.peerId,"favorite toId"),is_hide:t.hide===true?"1":"0",uu_id:o,msg_body:no(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"),el({collectId:o,msgId:t.messageId.trim(),kind:t.kind,senderId:t.senderId.trim(),senderName:t.senderId.trim(),avatarUrl:"",createdAt:String(t.createdAt),text:Nn(t.plainBody,t.kind),imageUrl:Ab(t.kind,t.plainBody),fileName:t.kind==="file"?Nn(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 ui(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 pi="image/jpeg";function Kt(e,n){return e.type!==""||n===void 0||n===""?e:new Blob([e],{type:n})}function rl(e){let n=0;return {fileMd5:ui,async imageDimensions(t,r,o){let i=await e.prepare({operationId:`core-image-dimensions-${++n}`,generation:0,kind:"image",file:Kt(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:Kt(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:pi}},async videoPoster(t,r,o){let i=await e.prepare({operationId:`core-video-poster-${++n}`,generation:0,kind:"video",file:Kt(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:pi}}}}function ol(e){return e>=192&&e<=207&&e!==196&&e!==200&&e!==204}function il(e){return e!==void 0&&e>=5&&e<=8}function al(e,n,t){return il(t)?{width:n,height:e}:{width:e,height:n}}function sl(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 cl(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(ol(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:al(c,d,t)}o===225&&t===void 0&&(t=sl(e,a,s)),r=s;}}function dl(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 ll(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 ul(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 Kn(e,n,t){return n<t.length?false:t.every((r,o)=>e.getUint8(o)===r)}async function fi(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(Kn(t,r,[255,216,255]))return cl(t,r);if(Kn(t,r,[137,80,78,71,13,10,26,10]))return dl(t,r);if(Kn(t,r,[71,73,70,56]))return ll(t,r);if(Kn(t,r,[82,73,70,70])&&r>=12&&t.getUint32(8,false)===1464156752)return ul(t,r)}var wi=320,pl=12*1024,Ci=20*1024,fl=.9,ml=.72,gl=320,yl=10*1024,hl=16*1024,bl=.84,wl=.68,Pi=15e3,Cl=1;function Pl(){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 mi(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 fn(e){if(e?.aborted)throw new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError")}var gi=16777216,Il=4096;function vl(e,n){let t=Math.min(1,Il/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>gi){let a=Math.sqrt(gi/i);r=Math.max(1,Math.floor(r*a)),o=Math.max(1,Math.floor(o*a));}return {width:r,height:o}}function Lt(e,n,t){let r=Math.min(1,t/Math.max(e,n));return vl(Math.max(1,Math.round(e*r)),Math.max(1,Math.round(n*r)))}async function yi(e,n,t,r,o){fn(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(fn(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 Gt(e,n){if(!Number.isInteger(e)||e<=0)throw new RangeError(`${n}\u5FC5\u987B\u662F\u6B63\u6574\u6570`)}function hi(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 Ht(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?gl:wi),d=r.targetBytes??(i?yl:pl),c=r.maxBytes??(i?hl:Ci),g=r.quality??(i?bl:fl),P=r.minQuality??(i?wl:ml);if(Gt(s,`${a}\u6700\u5927\u8FB9\u957F`),Gt(d,`${a}\u76EE\u6807\u5B57\u8282\u6570`),Gt(c,`${a}\u6700\u5927\u5B57\u8282\u6570`),hi(g,`${a}\u521D\u59CB\u8D28\u91CF`),hi(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=Lt(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 yi(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=Lt(n,t,D);for(let R of [g,P]){let I=await yi(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 bi(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`));},Pi),e.addEventListener(n,a,{once:true}),e.addEventListener("error",s,{once:true}),t?.addEventListener("abort",d,{once:true});})}async function Sl(e,n){fn(n);let t=e.maxSize??wi,r=e.maxBytes??Ci,o=await fi(e.file);fn(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:Lt(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{fn(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 Ht(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"));},Pi),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 Ht(c,c.naturalWidth,c.naturalHeight,e,n)}}finally{c.removeAttribute("src"),URL.revokeObjectURL(d);}}async function Al(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 bi(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 bi(r,"seeked",n));let d=a===void 0?void 0:a,c;try{c=await Ht(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 Ml(e={}){let n=e.maxConcurrency??Pl();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=mi(n),r=mi(Cl),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 Al(i,a):await Sl(i,a)}finally{d();}},dispose(){o||(o=true,t.dispose(),r.dispose());}}}function Gn(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 mn=16*1024*1024,gn=3,Ft=3,Ln=6,_l=5*1024**3,Hn=1e4;function Fn(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>mn,r=t?Math.ceil(e/mn):1;if(!t&&e>_l)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>Hn)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:mn,partCount:r}}function xl(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 Ii(e=true,n,t=mn){if(!Number.isSafeInteger(t)||t<=0)throw new RangeError("\u4E0B\u8F7D\u5206\u6BB5\u5927\u5C0F\u5FC5\u987B\u4E3A\u6B63\u6574\u6570");let r=Gn(Ln),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()):El(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=xl(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:Ft}}))),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(Ft,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 Rl(d);let c=await fetch(d.url,d.signal===void 0?{}:{signal:d.signal});return i(c,d)},d.getPriority)}}function Rl(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 El(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 vi=async(e,n)=>{if(e?.aborted)throw new DOMException("media upload canceled","AbortError");return await n()},jt="is missing ETag in UploadPart response";function $t(e){if(typeof e!="object"||e===null)return false;let n=e;return n.name==="NoSuchUpload"||n.Code==="NoSuchUpload"}function kl(e,n,t){return e instanceof Uint8Array?e.subarray(n,t):e.slice(n,t)}async function Si(e,n,t){return e.transformPart===void 0?n:await e.transformPart(n instanceof Blob?n:new Blob([n]),t)}function Ai(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 Mi(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 _i(e,n,t=vi){let r=Ai(n,0),o=Mi(e.handler,r);try{await t(n.signal,async()=>{let i=await Si(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 qt(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 Jt(e){let{target:n,content:t,partSize:r,queueSize:o,runUpload:i=vi}=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>Hn)throw new Error(`media upload: \u5206\u7247\u6570 ${a} \u8D85\u8FC7 S3 \u4E0A\u9650 ${Hn}\uFF0C\u9700\u8981\u653E\u5927\u5206\u7247\u5927\u5C0F`);let s=qt(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=Ai(t,P),p=Mi(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 Si(t,kl(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} ${jt}`);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(gn,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 yn(e,n){try{await e.client.send(new e.commands.AbortMultipartUploadCommand({Bucket:n.bucket,Key:n.key,UploadId:n.uploadId}));}catch(t){if(!$t(t))throw t}}var Tl=3e4;function xi(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();},Tl);},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 Dl(e){if(e instanceof Uint8Array)return e.byteLength;if(typeof Blob<"u"&&e instanceof Blob)return e.size}var Ri="\u5206\u7247\u4E0A\u4F20\u8981\u6C42\u8BE5 bucket \u7684 CORS \u653E\u884C POST\uFF08Create/CompleteMultipartUpload\uFF09\u3001DELETE\uFF08AbortMultipartUpload\uFF09\u5E76 ExposeHeaders: ETag";function Ul(e){return e instanceof Error&&e.message.includes(jt)}function Ol(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${Ri}`,{cause:t}):e instanceof K?e:Ul(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${Ri}`,{cause:e}):e}var Bl=new Set(["upload-source-invalid","upload-resume-unavailable","multipart-etag-missing","multipart-abort-failed"]);function Vt(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 hn;function Ei(){if(hn!==void 0)return hn;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 hn===n&&(hn=void 0),t});return hn=n,n}function ki(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 Nl(e){if(e===void 0)return "";let n=e.lastIndexOf(".");return n>=0?e.slice(n):""}function Kl(e){return globalThis.crypto.randomUUID()+Nl(e)}function Ti(e,n){let t=e.keyPrefix??"";return t===""||n.startsWith(t)?n:`${t}${n}`}function Gl(e,n){let t=Or(e.getUploadCredentials),r=Gn(Ln);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 xi(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}=Fn(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=Vt(l),S=T&&b?.logicalBucket===C&&qt(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 yn(m,b.session):await P(l);}catch(B){throw I.cleanupFailed=!0,ki(I.retryCause,B)}delete w.resume;}if(w.signal?.aborted)throw new DOMException("media upload canceled","AbortError");if(!T){await _i(m,h,r);return}let k=A;try{await Jt({target:m,content:h,partSize:O,queueSize:gn,runUpload:r,...k===void 0?{}:{resume:k},onResumable:x,onCompleted:v});}catch(B){if(w.signal?.aborted||!$t(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 Jt({target:m,content:h,partSize:O,queueSize:gn,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 yn(m,A),v();}catch(B){E=B;}throw I.cleanupFailed?k:Ol(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=Dl(p.data);if(D===void 0)throw new K("upload-source-invalid","media upload: \u4E0A\u4F20\u5185\u5BB9\u5FC5\u987B\u662F Uint8Array \u6216 Blob");Fn(D,e.multipartTransfer===true&&e.multipartUpload!==false);let R=await Ei();if(M.mode==="discard"&&p.signal?.aborted)throw new DOMException("media upload canceled","AbortError");let I=Vt(p.resume,_)?.objectName??Kl(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=Ti(O,I);try{await a(R,T,_,I,O,u,D,M);}catch(f){if(p.signal?.aborted||p.recoveryManaged===!0||f instanceof K&&Bl.has(f.code))throw f;M.retryCause=f,O=await t.resolve(_,{forceRefresh:!0}),u=Ti(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=Vt(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 yn({client:l,commands:R.commands},f.session);}catch(b){throw ki(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 Ei(),M=await t.resolve(w.logicalBucket),_=new C.XhrHttpHandler({}),D=i(C,M,_);try{await yn({client:D,commands:C.commands},w.session);}finally{D.destroy();}}let y=Ii(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 zt(e){return typeof e!="number"||!Number.isFinite(e)||e<0?ee():e}function jn(e,n=4096){if(e!==void 0)return typeof e!="string"||e.length>n?ee():e}function $n(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:zt(R.width),height:zt(R.height),...R.duration===void 0?{}:{duration:zt(R.duration)},...I===void 0?{}:{thumbData:I}};}if(n.filesAlbum!==void 0&&typeof n.filesAlbum!="boolean")return ee();let C=jn(r.filename),M=jn(r.mimeType,256),_=jn(n.caption,16384),D=jn(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 Di(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 Fl=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 $l(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>=Fl}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 $=$n(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=$n(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 Vn of $){let pe=$n(Vn);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((Vn,pe)=>Vn!==E.teaKey?.[pe]))throw new J("invalid");E.savedAt=W.savedAt;}else if(G>=jl)throw new J("capacity");let tr=_.get(N);if(tr!==void 0&&(E.savedAt=Math.min(tr,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 Di(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 ql(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 Jl(){let e=globalThis;return typeof e.addEventListener=="function"&&typeof e.removeEventListener=="function"?e:void 0}function Vl(e,n={}){let t=n.target!==void 0?n.target:Jl(),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 Yl=15,Ql=20,Xl=8*1024*1024,Zl=2*1024*1024,eu=1440*60*1e3,nu=2*1024*1024*1024,Ui=1024*1024*1024,tu=512*1024*1024,ru=256*1024*1024,ou=64*1024,Wt="channel:list-version",Oi="schema:conversation-key-v1",Bi="schema:message-server-order-v1",Ni="schema:mini-program-game-preview-v1",Ki="im:membership-reset-sort-keys",Yt="default",Ee="\uFFFF";function Gi(e){if(!(e===void 0||!/^\d+$/.test(e)))return e.replace(/^0+(?=\d)/,"")}function iu(e,n){let t=Gi(e),r=Gi(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 bn(e){return `conversation:${Ia$1(e)}`}function Xt(e,n){return `${Ia$1(e)}\0${n}`}function au(e){let n=Ia$1(e.conversation);return {...e,key:Xt(e.conversation,e.messageId),conversationKey:n,conversation:{...e.conversation},sContent:e.sContent.slice()}}function su(e){let{key:n,conversationKey:t,...r}=e;return {...r,conversation:{...r.conversation},sContent:r.sContent.slice()}}function Li(e){return {...e,conversationKey:Ia$1(Fa$1(e))}}function ke(e){let{conversationKey:n,...t}=e;return t}function qn(e){return {...e,id:Ia$1(Ga$1(e)),conversationId:e.id}}function Zt(e){if(e.conversationId===void 0)return e;let{conversationId:n,...t}=e;return {...t,id:n}}function er(e){return e.conversationType===void 0?e:{...e,conversationId:Ia$1(e),storageConversationId:e.conversationId}}function Jn(e){if(e.storageConversationId===void 0)return e;let{storageConversationId:n,...t}=e;return {...t,conversationId:n}}function Hi(e){return {...e,conversationId:Ia$1(Ha$1(e)),storageConversationId:e.conversationId}}function nr(e){if(e.storageConversationId===void 0)return e;let{storageConversationId:n,...t}=e;return {...t,conversationId:n}}function cu(e){return {...e,conversationKey:Ia$1(e.ref)}}function du(e){let{conversationKey:n,...t}=e;return t}function lu(e){return typeof e=="string"?e:e.conversationId}function wn(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 uu(e){let n=e.transaction(["messages","sessions","readStates","pinnedMessages","meta"],"readwrite");try{let t=n.objectStore("meta");if((await t.get(Oi))?.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(Li(d));let o=n.objectStore("sessions"),i=new Map;for(let d of await o.getAll()){if(d.conversationId!==void 0)continue;let c=Zt(d);i.set(c.id,c.type),await o.put(qn(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(er(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=nr(d);await s.put(Hi(c)),await s.delete(d.conversationId);}await t.put({key:Oi,value:!0}),await n.done;}catch(t){try{n.abort();}catch{}try{await n.done;}catch{}throw t}}async function pu(e){let n=e.transaction(["messages","readStates","meta"],"readwrite");try{let t=n.objectStore("meta");if((await t.get(Bi))?.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=Jn(g);P.conversationType==="channel"&&P.readCursorSortKey!==void 0&&P.readCursor!==""&&i.set(Ia$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=Ia$1(Fa$1(g)),y=l(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=Jn(g);if(P.conversationType===void 0)continue;let y=Ia$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&&Ia$1(Fa$1(w))===y&&(p=w.sortKey);}p!==void 0&&p!==P.readCursorSortKey&&await r.put({...g,readCursorSortKey:p});}let c=await t.get(Ki);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:Ki,value:P});}await t.put({key:Bi,value:!0}),await n.done;}catch(t){try{n.abort();}catch{}try{await n.done;}catch{}throw t}}async function fu(e){let n=e.transaction(["messages","meta"],"readwrite");try{let t=n.objectStore("meta");if((await t.get(Ni))?.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:Ni,value:!0}),await n.done;}catch(t){try{n.abort();}catch{}try{await n.done;}catch{}throw t}}function Qt(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 mu(e,n){let t=n.namespaceFactory.forAccount(e).name("durable","storage","indexed-db");typeof indexedDB>"u"||await deleteDB(t);}function gu(e){let{namespaceFactory:n}=e,t=null,r=null,o=0,i=Promise.resolve(),a=Promise.resolve(),s=0,d=e.mediaAssetCache?.maxPendingWriteBytes??ru;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>=eu}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>Zl||P(u,f))return false;let m=Ia$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>Ql||A>Xl;){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);wn(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 Ui;let l=u.reduce((A,x)=>A+x.byteLength,0),b=Math.max(0,(h??0)-l),S=Math.max(tu,Math.floor(m*.2));return Math.max(0,Math.min(nu,Math.floor(m-b-S)))}catch{return Ui}}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=Qt(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=Ia$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",Ia$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,Yl,{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 uu(h),await pu(h),await fu(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(Wt),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=Qt(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=Qt(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 Ia$1(Fa$1(h))===Ia$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:Ia$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(Li(m))),f.done]);},async searchMessages(u,f){let m=Ia$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 ha$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=la$1(ke(k.value));v+=1,E=N.sortKey;let $=l===void 0||l.includes(N.contentType),G=b===void 0||b.match(fa$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=Ia$1(u);return (await c().getAllFromIndex("decryptRecoveries","by_conversation",f)).map(su)},async saveDecryptRecovery(u){if(u.sContent.byteLength===0||u.sContent.byteLength>ou)throw new Error(`\u89E3\u5BC6\u6062\u590D\u5BC6\u6587\u5B57\u8282\u957F\u5EA6\u975E\u6CD5\uFF1A${u.sContent.byteLength}`);await c().put("decryptRecoveries",au(u));},async deleteDecryptRecovery(u,f){await c().delete("decryptRecoveries",Xt(u,f));},async deleteConversationDecryptRecoveries(u){let f=Ia$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(Zt)},async saveSessions(u){if(u.length===0)return;let f=c().transaction("sessions","readwrite");for(let m of u)await f.store.put(qn(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(Ia$1(u)),await h.objectStore("conversationBackgrounds").delete(bn(u)),await h.done;return}let f=(await c().getAll("sessions")).map(Zt).filter(h=>h.id===u);wn(u,f.map(h=>({conversationType:h.type})));let m=c().transaction(["sessions","conversationBackgrounds"],"readwrite");if(f[0]!==void 0){let h=Ga$1(f[0]);await m.objectStore("sessions").delete(Ia$1(h)),await m.objectStore("conversationBackgrounds").delete(bn(h));}await m.objectStore("sessions").delete(u),await m.done;},async deleteReadState(u){if(typeof u!="string"){await c().delete("readStates",Ia$1(u));return}let m=(await c().getAll("readStates")).map(Jn).filter(h=>h.conversationId===u).filter(h=>h.conversationType!==void 0);wn(u,m),m[0]!==void 0&&await c().delete("readStates",Ia$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(Xt(u,f)),await h.objectStore("recentHistoryPages").delete(Ia$1(u)),m!==void 0&&await h.objectStore("sessions").put(qn(m)),l!==void 0})})},async deleteConversationMessages(u){return g(async()=>{let f=lu(u),m=typeof u=="string"?"by_conv_sort":"by_conversation_key_sort",h=typeof u=="string"?u:Ia$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(Ja$1({conversationType:"channel",conversationId:f}));wn(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(Ja$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(Ia$1(u));let k=await A.index("by_conversation").openCursor(IDBKeyRange.only(Ia$1(u)));for(;k!==null;)await k.delete(),k=await k.continue();}})})},async clearConversationHistory(u,f,m){return g(async()=>{let h=Ia$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(Ja$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(qn(f)),m!==void 0&&(await b.objectStore("readStates").put(er(m)),await b.objectStore("readStates").delete(m.conversationId));})})},async getReadStates(){return (await c().getAll("readStates")).map(Jn)},async saveReadState(u){let f=c().transaction("readStates","readwrite");await f.store.put(er(u)),u.conversationType!==void 0&&await f.store.delete(u.conversationId),await f.done;},async getDrafts(){return (await c().getAll("drafts")).map(du)},async saveDraft(u){await c().put("drafts",cu(u));},async deleteDraft(u){await c().delete("drafts",Ia$1(u));},async getConversationBackground(u){return (await c().get("conversationBackgrounds",bn(u)))?.background??null},async saveConversationBackground(u,f){let m=bn(u);await c().put("conversationBackgrounds",{key:m,background:f});},async deleteConversationBackground(u){await c().delete("conversationBackgrounds",bn(u));},async getDefaultConversationBackground(){return (await c().get("conversationBackgrounds",Yt))?.background??null},async saveDefaultConversationBackground(u){await c().put("conversationBackgrounds",{key:Yt,background:u});},async deleteDefaultConversationBackground(){await c().delete("conversationBackgrounds",Yt);},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(nr)},async savePinnedMessage(u){let f=c().transaction("pinnedMessages","readwrite");await f.store.put(Hi(u)),await f.store.delete(u.conversationId),await f.done;},async removePinnedMessage(u){if(typeof u!="string"){await c().delete("pinnedMessages",Ia$1(u));return}let f=(await c().getAll("pinnedMessages")).map(nr).filter(m=>m.conversationId===u);wn(u,f),f[0]!==void 0&&await c().delete("pinnedMessages",Ia$1(Ha$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",Wt);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:Wt,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&&iu(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 yu(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{Hc as $,Gl as $a,sc as A,Pd as Aa,Fi as B,si as Ba,pc as C,ci as Ca,mc as D,Sd as Da,gc as E,Ad as Ea,hc as F,Md as Fa,bc as G,_d as Ga,wc as H,xd as Ha,Cc as I,Rd as Ia,Pc as J,Ud as Ja,Ic as K,Nd as Ka,vc as L,Kd as La,Sc as M,Gd as Ma,Ac as N,Ld as Na,Mc as O,Hd as Oa,_c as P,Fd as Pa,xc as Q,Bn as Qa,Rc as R,Pe as Ra,Ec as S,nl as Sa,Tc as T,it as Ta,Uc as U,ji as Ua,Dn as V,rl as Va,Un as W,Ml as Wa,Oc as X,K as Xa,Kc as Y,$i as Ya,Gc as Z,Fn as Za,Lc as _,Ur as _a,Sa as a,jc as aa,J as ab,ft as b,$c as ba,$l as bb,Ze as c,Jc as ca,ql as cb,Y as d,Vc as da,Vl as db,Na as e,zc as ea,mu as eb,Ga as f,Wc as fa,gu as fb,en as g,Qc as ga,yu as gb,La as h,Zc as ha,Yi as hb,es as i,ed as ia,In as ib,Oe as j,nd as ja,ca as jb,Z as k,td as ka,va as kb,ls as l,rd as la,us as m,id as ma,on as n,un as na,fe as o,sd as oa,Is as p,cd as pa,an as q,dd as qa,re as r,ld as ra,Ns as s,ud as sa,$s as t,pd as ta,zs as u,fd as ua,Ws as v,md as va,ec as w,gd as wa,Ke as x,bd as xa,V as y,wd as ya,Me as z,Cd as za};