k2-im 0.1.36 → 0.1.37

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