k2-im 0.1.52 → 0.1.54
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/browser.js +1 -1
- package/dist/chat-kit-pinia.d.ts +14 -2
- package/dist/chat-kit-pinia.js +1 -1
- package/dist/chat-kit-vue.js +1 -1
- package/dist/chat-kit.d.ts +19 -5
- package/dist/chat-kit.js +1 -1
- package/dist/chunk-2SVEG4B4.js +1 -0
- package/dist/{chunk-YJV5ZN3V.js → chunk-AYBSQHCA.js} +1 -1
- package/dist/chunk-JCUE2QS7.js +2 -0
- package/dist/{chunk-KV7I2SAC.js → chunk-KORCFTGX.js} +5 -5
- package/dist/index.d.ts +24 -10
- package/dist/index.js +1 -1
- package/dist/sdk.d.ts +15 -7
- package/dist/sdk.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-JXCG3DYB.js +0 -1
- package/dist/chunk-OUXI5ZYL.js +0 -2
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {aa as aa$1,a,R,U,g,h,i,pa as pa$1,qa as qa$1,ua as ua$1,va as va$1,xa as xa$1,ma as ma$1,na as na$1,oa as oa$1,W as W$1,X,Q as Q$1,T,V as V$1,o,f,S,Y as Y$1,sa as sa$1,da as da$1,fa as fa$1,ga as ga$1,ea as ea$1,ia as ia$1,ha as ha$1,ja as ja$1,la as la$1,ka as ka$1,Ea as Ea$1,Fa as Fa$1,Qb,Pb,Ob,L,K as K$1,J as J$1,Ca as Ca$1,Ga as Ga$1,Aa as Aa$1,I,_,ra as ra$1,ta as ta$1,wa as wa$1,n,w,Va as Va$1,$ as $$1,Ua as Ua$1,Xa as Xa$1,ya as ya$1,za as za$1}from'./chunk-Q6TFPZMF.js';import*as de from'node-forge';import {createMD5,createSHA256}from'hash-wasm';import {deleteDB,openDB}from'idb';function ca(e,n=async t=>{let{createBrowserApiProtocolClient:r}=await import('./browser-2MUNHRDS.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 bt(){return typeof navigator<"u"&&typeof ClipboardItem=="function"&&typeof navigator.clipboard?.write=="function"}function ne(e){if(!e.isCurrent())throw new DOMException("Image copy is no longer active","AbortError")}async function ht(e,n){if(ne(n),e.size===0)throw new Error("Empty clipboard image");let t=URL.createObjectURL(e),r=new Image,o;try{if(await new Promise((c,d)=>{r.onload=()=>c(),r.onerror=()=>d(new Error("Clipboard image decode failed")),r.src=t;}),ne(n),r.naturalWidth<=0||r.naturalHeight<=0)throw new Error("Invalid clipboard image dimensions");if(e.type==="image/png")return e;if(r.naturalWidth*r.naturalHeight>16777216)throw new Error("Clipboard image exceeds canvas pixel limit");o=document.createElement("canvas"),o.width=r.naturalWidth,o.height=r.naturalHeight;let i=o.getContext("2d");if(i===null)throw new Error("Clipboard canvas unavailable");i.drawImage(r,0,0);let a=await new Promise((c,d)=>{o.toBlob(s=>s===null?d(new Error("Clipboard PNG encoding failed")):c(s),"image/png");});return ne(n),a}finally{r.onload=null,r.onerror=null,r.src="",URL.revokeObjectURL(t),o!==void 0&&(o.width=o.height=0);}}async function da(e,n){if(n!==void 0&&n!==""){ne(e);let c=false,d={...e,isCurrent:()=>!c&&e.isCurrent()};try{if(!bt())throw new Error("Image Clipboard API unavailable");let s=(async()=>ht(await e.loadOriginal(),d))();return s.catch(()=>{}),await navigator.clipboard.write([new ClipboardItem({"image/png":s,"text/plain":new Blob([n],{type:"text/plain"})})]),ne(e),"original"}catch{return c=true,ne(e),await navigator.clipboard.writeText(n),ne(e),"text"}finally{c=true;}}if(!bt())throw new Error("Image Clipboard API unavailable");ne(e);let t=false,r={...e,isCurrent:()=>!t&&e.isCurrent()},o={quality:"original"},i=async()=>(ne(r),o.quality="thumbnail",ht(await e.loadThumbnail(),r)),a=(async()=>{try{return await ht(await e.loadOriginal(),r)}catch(c){ne(r);try{return await i()}catch(d){throw ne(r),new AggregateError([c,d],"Original and thumbnail copy failed")}}})();a.catch(()=>{});try{try{await navigator.clipboard.write([new ClipboardItem({"image/png":a})]);}catch(c){if(ne(r),typeof c=="object"&&c!==null&&"name"in c&&(c.name==="NotAllowedError"||c.name==="SecurityError")||(await a,ne(r),o.quality==="thumbnail"))throw c;let d=i();d.catch(()=>{}),await navigator.clipboard.write([new ClipboardItem({"image/png":d})]);}return ne(r),o.quality}finally{t=true;}}var K=class extends Error{code;constructor(n,t,r){super(t??n,r),this.name="MediaTransferError",this.code=n;}};function ua(e){return e instanceof K?e.code:void 0}function Ge(e){if(e instanceof K)return e.code==="upload-timeout"?"timeout":e.code!=="multipart-upload-failed"?void 0:Ge(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 la=3600*1e3,pa=300*1e3;function Pe(...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 fa(e){let n=Number(e);if(!(!Number.isFinite(n)||n<=0))return n>1e12?n/1e3:n}function ma(e){let n=e.replace(/\/+$/,"");return n===""?"":/^https?:\/\//i.test(n)?n:`https://${n}`}function Qr(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=Pe(n.access_key_id,n.accessKeyId),r=Pe(n.secret_key,n.secretKey,n.secretAccessKey),o=Pe(n.session_token,n.sessionToken).replace(/\s+/g,""),i=Pe(n.bucket),a=Pe(n.region),c=ma(Pe(n.dns_point,n.dnsPoint)),d=[t===""?"access_key_id":"",r===""?"secret_key":"",o===""?"session_token":"",i===""?"bucket":"",a===""?"region":"",c===""?"dns_point":""].filter(P=>P!=="");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 s=fa(n.expiration??n.expiresAtSeconds),g=Pe(n.key_prefix,n.keyPrefix),b=Pe(n.identity_id,n.identityId);return {accessKeyId:t,secretAccessKey:r,sessionToken:o,bucket:i,region:a,dnsPoint:c,...s===void 0?{}:{expiresAtSeconds:s},...g===""?{}:{keyPrefix:g},...b===""?{}:{identityId:b}}}function ga(e,n){if(n-e.fetchedAtMs>=la)return false;let{expiresAtSeconds:t}=e.credential;return t===void 0?true:t*1e3-pa>n}function Zr(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 s=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${s}`,{cause:d})}let c=Qr(a);return n.set(o,{credential:c,fetchedAtMs:Date.now()}),c}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,c=a?void 0:n.get(o);if(c!==void 0&&ga(c,Date.now()))return Promise.resolve(c.credential);n.delete(o);let d=t.get(o);if(d!==void 0)return d;let s=r(o,a).finally(()=>{t.get(o)===s&&t.delete(o);});return t.set(o,s),s}}}function ya(){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 q=class extends Error{code;constructor(n,t,r){super(t??n,r),this.name="VoiceError",this.code=n;}};function Rn(e){return e instanceof q?e.code:void 0}function eo(e){switch(e instanceof DOMException||e instanceof Error?e.name:""){case "NotAllowedError":case "SecurityError":case "PermissionDeniedError":return new q("permission-denied","\u9EA6\u514B\u98CE\u6743\u9650\u88AB\u62D2\u7EDD",{cause:e});case "NotFoundError":case "DevicesNotFoundError":return new q("device-not-found","\u672A\u627E\u5230\u53EF\u7528\u9EA6\u514B\u98CE",{cause:e});case "NotReadableError":case "TrackStartError":case "AbortError":return new q("device-busy","\u9EA6\u514B\u98CE\u88AB\u5360\u7528\u6216\u542F\u52A8\u5931\u8D25",{cause:e});default:return new q("device-busy",e instanceof Error?e.message:"\u9EA6\u514B\u98CE\u542F\u52A8\u5931\u8D25",{cause:e})}}var se=16e3,ha=new URL("./speex-runtime.txt",import.meta.url).href,wt=null,ba=15e3;async function wa(){document.querySelector('script[data-speex-runtime="true"]')?.remove();let e=new AbortController,n=setTimeout(()=>e.abort(new Error("Speex runtime fetch timeout")),ba),t;try{t=await fetch(ha,{signal:e.signal});}finally{clearTimeout(n);}if(!t.ok)throw new Error(`Speex runtime fetch failed: ${t.status}`);let r=await t.text();if(r.trimStart().startsWith("<"))throw new Error("Speex runtime fetch returned HTML instead of script");let o=document.createElement("script");o.dataset.speexRuntime="true",o.text=r,document.head.appendChild(o);}async function Ct(){let e=typeof window>"u"?void 0:window;return e?.__speexInH5!==void 0?e.__speexInH5:(wt??=(async()=>{if(e===void 0||typeof document>"u")throw new q("codec-unavailable","Speex \u8FD0\u884C\u65F6\u4EC5\u53EF\u5728\u6D4F\u89C8\u5668\u73AF\u5883\u52A0\u8F7D");if(await wa(),e.__speexInH5===void 0&&e.initAudio?.(),e.__speexInH5===void 0)throw new q("codec-unavailable","Speex \u8FD0\u884C\u65F6\u521D\u59CB\u5316\u5931\u8D25");return e.__speexInH5})().catch(n=>{throw wt=null,n instanceof q?n:new q("codec-unavailable","Speex \u8FD0\u884C\u65F6\u52A0\u8F7D\u5931\u8D25",{cause:n})}),wt)}function no(){Ct().catch(()=>{});}function Ie(e,n,t){for(let r=0;r<t.length;r+=1)e.setUint8(n+r,t.charCodeAt(r));}function Ca(e,n){let r=new ArrayBuffer(44+e.length*2),o=new DataView(r);Ie(o,0,"RIFF"),o.setUint32(4,36+e.length*2,true),Ie(o,8,"WAVE"),Ie(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),Ie(o,36,"data"),o.setUint32(40,e.length*2,true);let i=44;for(let a=0;a<e.length;a+=1){let c=Math.max(-1,Math.min(1,e[a]??0));o.setInt16(i,c<0?c*32768:c*32767,true),i+=2;}return r}function Pt(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 Pa=40,It=120,Ia=40,vt=80;function va(e,n){let t=Math.min(Math.floor(n*Pa/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 At(e,n){if(e.length===0)return e;let t=Math.min(Math.floor(n*It/1e3),Math.max(0,e.length-1)),r=t>0?e.subarray(t):e,o=new Float32Array(r),i=Math.min(Math.floor(n*Ia/1e3),Math.floor(o.length/2));for(let a=0;a<i;a+=1){let c=a/i;o[a]=(o[a]??0)*c;let d=o.length-1-a;o[d]=(o[d]??0)*c;}return o}function Tn(e,n){let r=new ArrayBuffer(44+e.length*2),o=new DataView(r);return Ie(o,0,"RIFF"),o.setUint32(4,36+e.length*2,true),Ie(o,8,"WAVE"),Ie(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),Ie(o,36,"data"),o.setUint32(40,e.length*2,true),new Int16Array(r,44).set(e),new Uint8Array(r)}function Aa(e){let n=new Uint8Array(e.length);for(let t=0;t<e.length;t+=1)n[t]=e.charCodeAt(t)&255;return n}function Sa(e){let t="";for(let r=0;r<e.length;r+=32768)t+=String.fromCharCode(...e.subarray(r,Math.min(r+32768,e.length)));return t}async function to(e,n){let t=await Ct(),r=Math.floor(n*vt/1e3),o=new Float32Array(r+e.length);o.set(e,r);let i=Ca(o,n);try{return Aa(t.encodeFile(i))}catch(a){throw new q("encode-failed","\u8BED\u97F3\u7F16\u7801\u5931\u8D25",{cause:a})}}async function ro(e){let n=await Ct();try{let[t,r]=n.decodeFile(Sa(e));if(t.length===0)throw new Error("decoded empty pcm");let o=va(Pt(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 q?t:new q("decode-failed","\u8BED\u97F3\u89E3\u7801\u5931\u8D25",{cause:t})}}async function oo(e){let n=await ro(e);return {wavData:Tn(n.samples,n.sampleRate),durationMs:n.durationMs}}var Ma=.5,xa=2;function io(e){if(typeof e!="number"||!Number.isFinite(e))throw new q("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,Ma),xa)}function _a(e={}){let n=e.cacheMax??8,t={activeId:"",isPlaying:false,loadingId:"",progress:0,currentTimeMs:0,errorIds:new Set,playbackRate:e.playbackRate===void 0?1:io(e.playbackRate)},r=new Set;function o(){for(let p of r)p(t);}let i=null,a=new Map,c=0,d=false,s=false;function g(p){let u=a.get(p);return u!==void 0&&(a.delete(p),a.set(p,u)),u}function b(p,u){if(d)return URL.revokeObjectURL(u.url),u;let h=a.get(p);if(h!==void 0)return URL.revokeObjectURL(u.url),a.delete(p),a.set(p,h),h;for(a.set(p,u);a.size>n;){let A;for(let v of a.keys())if(v!==t.activeId){A=v;break}if(A===void 0)break;let k=a.get(A);a.delete(A),k!==void 0&&URL.revokeObjectURL(k.url);}return u}function P(p){p.paused||p.pause(),p.removeAttribute("src");try{p.load();}catch{}}function y(p,u){return !d&&p===c&&t.activeId===u}function M(p){p.defaultPlaybackRate=t.playbackRate,p.playbackRate=t.playbackRate;}function I(){if(i!==null)return i;let p=new Audio;return p.preload="auto",M(p),p.addEventListener("timeupdate",()=>{t.activeId!==""&&(t.currentTimeMs=p.currentTime*1e3,t.progress=p.duration>0?Math.min(1,p.currentTime/p.duration):0,o());}),p.addEventListener("ended",()=>{E(),P(p),o();}),p.addEventListener("pause",()=>{t.activeId!==""&&(t.isPlaying=false,o());}),i=p,p}function E(){t.activeId="",t.isPlaying=false,t.progress=0,t.currentTimeMs=0;}function D(){c+=1,s=false,t.loadingId="",E(),i!==null&&P(i),o();}function R(p){t.errorIds=new Set([...t.errorIds,p]);}function x(p){if(!t.errorIds.has(p))return;let u=new Set(t.errorIds);u.delete(p),t.errorIds=u;}async function w(p,u){let h=g(p);if(h!==void 0)return {entry:h};let A;try{A=await u();}catch(k){return {entry:null,error:{code:Rn(k),cause:k}}}if(A===null)return {entry:null};try{let{wavData:k,durationMs:v}=await oo(A),S={url:URL.createObjectURL(new Blob([k],{type:"audio/wav"})),durationMs:v};return {entry:b(p,S)}}catch(k){return {entry:null,error:{code:Rn(k),cause:k}}}}async function _(p,u){if(d)return;let h=I();if(x(p),t.activeId===p){if(t.isPlaying){h.pause();return}let v=++c;try{await h.play();}catch{if(!y(v,p))return;R(p),o();return}if(!y(v,p))return;t.isPlaying=true,o(),u.onPlayStart?.();return}if(t.loadingId===p)return;D();let A=++c;t.loadingId=p,o();let k=await w(p,u.load);if(A===c){if(t.loadingId="",k.entry===null){R(p),o(),k.error!==void 0&&u.onDecodeError?.(k.error.code,k.error.cause);return}h.src=k.entry.url,M(h),t.activeId=p,t.progress=0,t.currentTimeMs=0,o();try{await h.play();}catch(v){if(!y(A,p))return;E(),P(h),R(p),o(),u.onDecodeError?.(void 0,v);return}y(A,p)&&(t.isPlaying=true,o(),u.onPlayStart?.());}}function U(p,u){i===null||t.activeId!==p||!Number.isFinite(i.duration)||i.duration<=0||(i.currentTime=Math.min(Math.max(u,0),.999)*i.duration);}function l(p){i===null||t.activeId!==p||t.isPlaying&&(s=true,i.pause());}function f(p){if(i===null||t.activeId!==p||!s)return;s=false;let u=++c;i.play().then(()=>{y(u,p)&&(t.isPlaying=true,o());}).catch(()=>{y(u,p)&&(R(p),o());});}function m(p){let u=io(p);u!==t.playbackRate&&(t.playbackRate=u,i!==null&&M(i),o());}function C(){if(!d){d=true,D();for(let p of a.values())URL.revokeObjectURL(p.url);a.clear(),r.clear(),i=null;}}return {getState:()=>t,subscribe:p=>(r.add(p),()=>r.delete(p)),toggle:_,seek:U,beginScrub:l,endScrub:f,setPlaybackRate:m,stop:D,dispose:C}}function ka(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 Ea(e,n,t){if(e.length===0||n<=0||t<=0)return 0;let r=n/t,o=0,i=0;for(let a=0;a<e.length;a+=1){let c=a*r,d=.2;c<200?d=.15:c<300?d=.4:c<=3400?d=1:c<=6e3&&(d=.45),o+=(e[a]??0)/255*d,i+=d;}return i>0?o/i:0}function ao(e){let n=ka(e.timeDomain),t=Ea(e.frequency,e.sampleRate,e.fftSize),r=n*.55+t*.45;return Math.min(1,r*e.boost)**.72}var Dn=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 Ra=5e3,St=15e3,Ta=25e3,Da=25e3;function nn(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 Ua(){if(typeof navigator>"u"||navigator.mediaDevices?.getUserMedia===void 0)throw new q("no-media-devices","\u5F53\u524D\u73AF\u5883\u4E0D\u652F\u6301\u9EA6\u514B\u98CE\u91C7\u96C6");let e=navigator.mediaDevices.getUserMedia({audio:Oa()});try{return await nn(e,Da,"\u9EA6\u514B\u98CE\u6388\u6743\u8BF7\u6C42\u8D85\u65F6")}catch(n){throw e.then(t=>t.getTracks().forEach(r=>r.stop())).catch(()=>{}),eo(n)}}function Oa(){return {channelCount:1,echoCancellation:true,noiseSuppression:true,autoGainControl:true}}var Ba=50,Na=.12,Ka=2.6,La=.06,Ga=256;function Ha(){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 Fa(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 q("audio-context-blocked","AudioContext \u4E0D\u53EF\u7528");let i=t??new r,a=t==null;try{i.state==="suspended"&&await nn(i.resume(),St,"audioContext.resume timeout").catch(()=>{});let c=await nn(i.decodeAudioData(await e.arrayBuffer()),St,"decodeAudioData timeout"),d=Math.max(1,Math.ceil(c.duration*n)),s=new o(1,d,n),g=s.createBufferSource();return g.buffer=c,g.connect(s.destination),g.start(0),(await nn(s.startRendering(),St,"offlineAudioContext.startRendering timeout")).getChannelData(0).slice()}catch(c){throw c instanceof q?c:new q("decode-failed","\u5F55\u97F3\u6BB5\u89E3\u7801\u5931\u8D25",{cause:c})}finally{a&&i.close().catch(()=>{});}}function so(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 qa(e={}){if(typeof MediaRecorder>"u")throw new q("no-media-recorder","\u5F53\u524D\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\u5F55\u97F3");let n;e.stream!==void 0?n=e.stream:n=await Ua(),no();let t=Ha(),r=e.maxDurationMs??6e4,o="recording",i=[],a=0,c=[],d=null,s=null,g=null,b=[],P=0,y=false;function M(){try{let p;try{p=t!==""?new MediaRecorder(n,{mimeType:t}):new MediaRecorder(n);}catch{p=new MediaRecorder(n);}return b=[],p.ondataavailable=u=>{u.data.size>0&&b.push(u.data);},p.start(250),P=Date.now(),p}catch(p){throw p instanceof q?p:new q("device-busy","\u5F55\u97F3\u5668\u542F\u52A8\u5931\u8D25",{cause:p})}}let I=e.amplitude?.intervalMs??Ba,E=e.amplitude?.boost??Ka,D=e.amplitude?.smoothing??Na,R=e.amplitude?.minVolume??La;function x(){let p=Math.floor(r/1e3*se),u=0;for(let A of i)u+=A.length;if(u>p){let A=p,k=[];for(let v of i){if(A<=0)break;v.length<=A?(k.push(v),A-=v.length):(k.push(v.slice(0,A)),A=0);}i.length=0,i.push(...k);}a=Math.min(a,r);let h=Math.max(0,Math.ceil(r/I));c.length>h&&(c.length=h);}async function w(){if(o!=="recording"){e.onMaxDuration?.();return}e.onMaxDuration?.(),o="paused";let p=C().then(()=>x());g=p;try{await p;}catch(u){console.warn("[im-browser] pauseAtMaxDuration settle failed",u);}}let _=setInterval(()=>{!y&&o==="recording"&&f()>=r&&(y=true,w());},250),U=null,l=null;try{let p=window.AudioContext??window.webkitAudioContext;if(p!==void 0){U=new p,U.state==="suspended"&&U.resume().catch(()=>{});let u=U.createMediaStreamSource(n),h=U.createAnalyser();h.fftSize=Ga,h.smoothingTimeConstant=D,u.connect(h);let A=new Uint8Array(h.frequencyBinCount),k=new Uint8Array(h.fftSize),v=new Dn;l=setInterval(()=>{if(o!=="recording"||d===null)return;h.getByteFrequencyData(A),h.getByteTimeDomainData(k);let S=ao({timeDomain:k,frequency:A,sampleRate:U.sampleRate,fftSize:h.fftSize,boost:E}),T=v.next(S),O=T<R?0:T;c.push(Math.round(O*255)),e.onAmplitude?.(O);},I);}}catch(p){console.warn("[im-browser] amplitude analyser setup failed",p);}function f(){let p=o==="recording"&&d!==null?Date.now()-P:0;return a+p}function m(){_!==null&&(clearInterval(_),_=null),l!==null&&(clearInterval(l),l=null),U?.close().catch(()=>{}),U=null;for(let p of n.getTracks())p.stop();}function C(){if(s!==null)return s;let p=d;return p===null?Promise.resolve():(d=null,s=(async()=>{await new Promise(A=>{if(p.state==="inactive"){A();return}let k=setTimeout(()=>{console.warn("[im-browser] recorder onstop timed out, settling with received chunks"),A();},Ra);p.onstop=()=>{clearTimeout(k),A();},p.stop();});let u=new Blob(b,{type:p.mimeType||t||"audio/webm"});if(b=[],u.size===0)return;let h=await Fa(u,se,U);h.length!==0&&(i.push(h),a+=h.length/se*1e3);})().finally(()=>{s=null;}),s)}try{d=M();}catch(p){throw o="closed",m(),p}return {getState:()=>o,recordedMs:f,async pause(){o==="recording"&&(o="paused",await C(),(y||a>=r)&&x());},async resume(){o!=="paused"||y||(d=M(),o="recording");},async finish(){if(o==="closed")throw new q("empty-recording","\u5F55\u97F3\u4F1A\u8BDD\u5DF2\u7ED3\u675F");o="closed";let p=async()=>{try{g!==null?await g:await C(),x();}finally{m();}let u=so(i);if(u.length===0)throw new q("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let h=At(u,se);if(h.length===0)throw new q("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let A=Math.min(c.length,Math.ceil(It/I));return {data:await to(h,se),durationMs:Math.round(h.length/se*1e3)+vt,waveform:c.slice(A),filename:`AUDIO_${Date.now()}.ogg`,mimeType:"audio/ogg"}};try{return await nn(p(),Ta,"\u5F55\u97F3\u5B9A\u7A3F\u8D85\u65F6")}catch(u){throw m(),u instanceof q?u:new q("encode-failed","\u5F55\u97F3\u5B9A\u7A3F\u5931\u8D25",{cause:u})}},cancel(){o="closed";let p=d;if(d=null,p!==null&&(p.ondataavailable=null,p.onstop=null,p.state!=="inactive"))try{p.stop();}catch{}i.length=0,m();},async previewWav(){g!==null?await g:s!==null&&await s,x();let p=so(i),u=At(p,se);if(u.length===0)throw new q("empty-recording","\u6682\u65E0\u53EF\u8BD5\u542C\u7684\u5F55\u97F3\u5185\u5BB9");return {wavData:Tn(Pt(u),se),durationMs:Math.round(u.length/se*1e3)}}}}function ve(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 co(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 uo(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(s){throw new ce("channel secret_key Base64 \u89E3\u7801\u5931\u8D25",{cause:s})}let a=Uint8Array.from(i,s=>s.charCodeAt(0)&255);if(a.length===0)throw new ce("channel secret_key Base64 \u89E3\u7801\u7ED3\u679C\u4E3A\u7A7A");let c=new Uint8Array(16);c.set(a.subarray(0,c.length));let d=n.length===16&&/^[\x20-\x7E]+$/.test(n)?Uint8Array.from(n,s=>s.charCodeAt(0)):void 0;return {canonical:c,...d===void 0?{}:{legacyAscii:d},metadata:{channelKeyCharLength:n.length,decodedByteLength:a.length,padByteCount:Math.max(0,16-a.length),legacyAsciiCandidate:d!==void 0}}}function ja(e){let n=new Map,t=new Map,r=new Map,o=new Map,i=ve(co);function a(w){return {canonical:w.canonical.slice(),...w.legacyAscii===void 0?{}:{legacyAscii:w.legacyAscii.slice()},metadata:{...w.metadata}}}function c(w){return [{strategy:"canonical-base64-pad",key:w.canonical.slice()},...w.legacyAscii===void 0?[]:[{strategy:"legacy-ascii16",key:w.legacyAscii.slice()}]]}function d(w){n.delete(w),t.delete(w),r.delete(w),o.set(w,(o.get(w)??0)+1);}function s(w){let _=o.get(w)??0,U=(async()=>{try{let l=await e.loadSecretKey(w);if(l===null||l.trim()==="")throw new ce(`channel secret_key \u7F3A\u5931\uFF08channelId=${w}\uFF09`);let f=uo(l);return (o.get(w)??0)===_&&n.set(w,a(f)),f}catch(l){let f=l instanceof ce?l:new ce(`channel secret_key \u52A0\u8F7D\u5931\u8D25\uFF08channelId=${w}\uFF09`,{cause:l});throw e.onError?.(f.message,l),f}})().finally(()=>{t.get(w)===U&&t.delete(w);});return t.set(w,U),U}function g(w,_){let U=t.get(w);if(U!==void 0)return U;i.shouldRenegotiate(w,_.staleKey,n.get(w)?.canonical)&&d(w);}function b(w,_){let U=w.trim();if(U===""){let f=new ce("channel id \u4E0D\u80FD\u4E3A\u7A7A");return e.onError?.(f.message),Promise.reject(f)}if(_!==void 0){let f=g(U,_);if(f!==void 0)return f.then(a)}let l=n.get(U);return l!==void 0?Promise.resolve(a(l)):t.get(U)??s(U)}function P(w,_){let U=w.trim();if(U===""){let C=new ce("channel id \u4E0D\u80FD\u4E3A\u7A7A");return e.onError?.(C.message),Promise.reject(C)}if(_!==void 0){let C=g(U,_);if(C!==void 0)return C.then(p=>p.canonical.slice())}let l=n.get(U);if(l!==void 0)return Promise.resolve(l.canonical.slice());let f=r.get(U);if(f!==void 0)return f;let m=(t.get(U)??s(U)).then(C=>C.canonical.slice()).finally(()=>{r.get(U)===m&&r.delete(U);});return r.set(U,m),m}function y(w){return n.get(w.trim())?.canonical.slice()??null}async function M(w,_){let U=await b(w,_);return c(U)}function I(w){let _=n.get(w.trim());return _===void 0?[]:c(_)}function E(w){let _=n.get(w.trim());return _===void 0?null:{..._.metadata}}function D(w,_){let U=w.trim();if(U==="")throw new ce("channel id \u4E0D\u80FD\u4E3A\u7A7A");let l=uo(_);d(U),i.reset(U),n.set(U,a(l));}function R(w){let _=w.trim();_!==""&&(d(_),i.reset(_));}function x(){let w=new Set([...n.keys(),...t.keys(),...r.keys(),...o.keys()]);for(let _ of w)o.set(_,(o.get(_)??0)+1),i.reset(_);n.clear(),t.clear(),r.clear();}return {getChannelKey:P,getCachedChannelKey:y,getChannelKeyCandidates:M,getCachedChannelKeyCandidates:I,getCachedChannelKeyMetadata:E,primeChannelKey:D,clearChannelKey:R,clearAll:x}}function Mt(){let e=globalThis.scheduler;return typeof e?.yield=="function"?e.yield():new Promise(n=>setTimeout(n,0))}var xt=2654435769,lo=16,me=8,_t=16,fo=32;function mo(e){if(e.length<_t)throw new Error(`TEA key \u957F\u5EA6\u4E0D\u8DB3\uFF1A${e.length}\uFF0C\u9700 \u2265 ${_t} \u5B57\u8282`);let n=new DataView(e.buffer,e.byteOffset,_t);return [n.getUint32(0,true),n.getUint32(4,true),n.getUint32(8,true),n.getUint32(12,true)]}function rn(e,n,t,r,o=new Uint8Array(e.length)){let i=mo(n),a=Math.floor(e.length/me),c=r===void 0?a:Math.min(a,Math.floor(r/me)),d=new DataView(e.buffer,e.byteOffset,e.byteLength),s=new DataView(o.buffer,o.byteOffset,o.byteLength);if(t==="decrypt"){let[b,P,y,M]=i;for(let I=0;I<c*me;I+=me){let E=d.getUint32(I,true),D=d.getUint32(I+4,true),R=Math.imul(xt,16)>>>0;for(let x=0;x<lo;x++)D=D-(Math.imul(E,16)+y^E+R^(E>>>5)+M)>>>0,E=E-(Math.imul(D,16)+b^D+R^(D>>>5)+P)>>>0,R=R-xt>>>0;s.setUint32(I,E,true),s.setUint32(I+4,D,true);}}else {let[b,P,y,M]=i;for(let I=0;I<c*me;I+=me){let E=d.getUint32(I,true),D=d.getUint32(I+4,true),R=0;for(let x=0;x<lo;x++)R=R+xt>>>0,E=E+(Math.imul(D,16)+b^D+R^(D>>>5)+P)>>>0,D=D+(Math.imul(E,16)+y^E+R^(E>>>5)+M)>>>0;s.setUint32(I,E,true),s.setUint32(I+4,D,true);}}let g=c*me;return g<e.length&&o.set(e.subarray(g),g),o}function on(e,n){return rn(n,e,"decrypt")}function an(e,n){return rn(n,e,"encrypt")}function go(e,n){return rn(n,e,"encrypt",fo)}function yo(e,n){return rn(n,e,"decrypt",fo)}var $a=1024*1024,po=64*1024,Ja=8;function Va(){return Mt()}function tn(e){if(e?.aborted)throw new DOMException("TEA \u5206\u5757\u5904\u7406\u5DF2\u53D6\u6D88","AbortError")}async function kt(e,n,t,r=$a,o={}){if(!Number.isInteger(r)||r<=0||r%me!==0)throw new RangeError(`TEA \u5206\u5757\u5927\u5C0F\u5FC5\u987B\u662F ${me} \u7684\u6B63\u6574\u6570\u500D\uFF1A${r}`);mo(e);let i=o.yieldToMain??Va,a=o.yieldToMain??(()=>new Promise(g=>setTimeout(g,0))),c=n.size,d=[],s=0;for(;s<c;){tn(o.signal);let g=Math.min(s+r,c),b=new Uint8Array(await n.slice(s,g).arrayBuffer());tn(o.signal);let P=new Uint8Array(b.length),y=performance.now();for(let M=0;M<b.length;M+=po){tn(o.signal);let I=Math.min(M+po,b.length);rn(b.subarray(M,I),e,t,void 0,P.subarray(M,I)),I<b.length&&performance.now()-y>=Ja&&(await a(),tn(o.signal),y=performance.now());}d.push(new Blob([P])),s=g,o.onProgress?.(s,c),s<c&&await i();}return tn(o.signal),new Blob(d)}var ho=8,Un=16;function za(e){let n=de.md.md5.create();return n.update(e,"utf8"),n.digest().toHex()}function wo(e){return new TextEncoder().encode(e)}function Wa(e){let n=e.length;for(;n>0&&e[n-1]===0;)n-=1;return new TextDecoder().decode(e.subarray(0,n))}function Ya(e){let n=atob(e),t=new Uint8Array(n.length);for(let r=0;r<n.length;r++)t[r]=n.charCodeAt(r);return t}function Xa(e){let n="";for(let t of e)n+=String.fromCharCode(t);return btoa(n)}function Qa(e){let n=Math.ceil(e.length/ho)*ho;if(n===e.length)return e;let t=new Uint8Array(n);return t.set(e),t}function Co(e,n=za){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<Un)throw new Error("collect TEA key: MD5 \u957F\u5EA6\u4E0D\u8DB3");let o=wo(r.slice(0,Un).toUpperCase());if(o.length<Un)throw new Error("collect TEA key: \u6D3E\u751F\u7ED3\u679C\u4E0D\u8DB3 16 \u5B57\u8282");return o.subarray(0,Un)}function Po(e,n,t){return Xa(an(Co(n,t),Qa(wo(e))))}function Za(e,n,t){return Wa(on(Co(n,t),Ya(e)))}function es(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function Et(e){let n=e.trim();if(n===""||!n.startsWith("{"))return null;try{return es(JSON.parse(n))}catch{return null}}function ns(e){let n=e.trim(),t=n.indexOf("}");return t>=0?n.slice(0,t+1):n}function Io(e,n,t){let r=Et(e);if(r!==null)return r;if(e.trim()===""||n.trim()==="")return null;try{let o=Za(e,n,t);return Et(o)??Et(ns(o))}catch{return null}}function vo(){return new Worker(new URL("./crypto.worker.js",import.meta.url),{type:"classic",name:"im-crypto"})}function ts(e){if(e===null||typeof e!="object")return false;let n=e;return n.version===1&&Number.isSafeInteger(n.generation)&&n.generation>=0&&typeof n.operationId=="string"&&n.operationId.length<=256}function Ao(e){return ts(e)?e.kind==="ready"||e.kind==="protocol-error"?e.operationId==="":e.operationId===""?false:e.kind==="cancelled"||e.kind==="crypto-error"?true:e.kind==="result"?e.data instanceof ArrayBuffer:e.kind==="batch-result"?Array.isArray(e.items)&&e.items.length>0&&e.items.length<=8&&e.items.every(n=>n!==null&&typeof n=="object"&&Number.isSafeInteger(n.itemIndex)&&n.itemIndex>=0&&n.result!==null&&typeof n.result=="object"&&(n.result.ok===true?n.result.plain instanceof ArrayBuffer:n.result.ok===false&&(n.result.stage==="rsa"||n.result.stage==="tea"))):e.kind==="progress"&&Number.isSafeInteger(e.completed)&&e.completed>0:false}var as=16,ss=12,cs=16,ds=12,Rt=8*1024*1024;function ge(e){return !("items"in e)&&"teaKey"in e.input}function On(e){return "plain"in e.input?e.input.plain:e.input.cipherData}function Mo(){return Object.assign(new Error("Crypto operation cancelled"),{name:"AbortError"})}function us(e){let n=new Map,t=new Set,r,o=false,i,a=false,c=0,d=0,s,g=0,b=0,P,y=0;function M(u,h,A,k){e.diagnostics?.record(h===void 0?"debug":"error","sdk","crypto",u,()=>{let v=[...n.values()],S=v.filter(T=>!T.sent);return {generation:e.generation,...A===void 0?{}:{operationId:A.request.operationId,durationMs:Date.now()-A.enqueuedAt},data:{pendingCount:n.size,inputBytes:c,activeCount:v.length-S.length,waitingCount:S.length,waitingInputBytes:S.reduce((T,O)=>T+O.bytes,0),rsaCount:v.filter(T=>!("items"in T.request)&&!ge(T.request)).length,batchCount:v.filter(T=>"items"in T.request).length,teaCount:v.filter(T=>ge(T.request)).length,...A===void 0?{}:{taskKind:"items"in A.request?"batch":ge(A.request)?"tea":"rsa",priority:A.request.priority},...k===void 0?{}:{phase:k.phase,phaseElapsedMs:k.phaseElapsedMs,budgetMs:k.budgetMs},...h===void 0?{}:{reason:h},...A?.sentAt===void 0?{}:{queueWaitMs:A.sentAt-A.enqueuedAt,roundtripMs:Date.now()-A.sentAt}}}});}function I(u,h,A){u.settled||(u.settled=true,u.request.signal?.removeEventListener("abort",u.onAbort),A!==void 0?u.reject(A):u.resolve(h));}function E(u){n.delete(u.request.operationId),s===u&&(s=void 0),u.sent&&(c-=u.bytes),t.add(u.request.operationId),t.size>256&&t.delete(t.values().next().value);}function D(){P!==void 0&&clearTimeout(P),P=void 0,r!==void 0&&(r.removeEventListener("message",f),r.removeEventListener("messageerror",m),r.removeEventListener("error",C),r.terminate(),r=void 0);}function R(u,h){if(i===void 0){i=new _(u),D(),u!=="disposed"&&M("crypto-executor-failed",u,h?.task,h);for(let A of n.values())I(A,void 0,i);n.clear(),s=void 0,c=0,t.clear(),u==="disposed"&&M("crypto-executor-disposed");}}function x(u,h){try{return r.postMessage(u,h??[]),!0}catch{return R("messageerror"),false}}function w(u){return {version:1,generation:e.generation,operationId:u}}function _$1(){if(P=void 0,r===void 0||i!==void 0)return;let u=Date.now(),h=Math.max(0,u-y);if(y=u,!a){o?[...n.values()].some(S=>S.sent)&&(b+=h):g+=h;for(let S of n.values())o&&!S.sent&&(S.waitElapsed+=h);let A=e.lifecycleAware?1e4:6e4,k=e.lifecycleAware?3e4:6e4;if(!o&&g>=A)return R("timeout",{phase:"handshake",phaseElapsedMs:g,budgetMs:A});if(b>=k)return R("timeout",{phase:"no-progress",phaseElapsedMs:b,budgetMs:k});let v=[...n.values()].find(S=>!S.sent&&S.waitElapsed>=6e4);if(v!==void 0)return R("timeout",{phase:"admission-wait",phaseElapsedMs:v.waitElapsed,budgetMs:6e4,task:v})}(!o||n.size>0)&&(P=setTimeout(_$1,250));}function U(){if(!(r!==void 0||i!==void 0)){if(e.workerFactory===void 0&&typeof Worker>"u")return R("unavailable");try{r=(e.workerFactory??vo)(),r.addEventListener("message",f),r.addEventListener("messageerror",m),r.addEventListener("error",C);}catch{R("load-failed");return}y=Date.now(),P=setTimeout(_$1,250),x({...w(""),kind:"init"});}}function l(){if(!(!o||r===void 0||i!==void 0))for(;;){let u=[...n.values()].filter(S=>S.sent);if(u.length>=as||u.some(S=>S.exclusive||S.bytes>Rt))return;let h=[...n.values()].filter(S=>!S.sent),A=h.find(S=>S.request.priority==="foreground"),k=u.filter(S=>S.request.priority==="background").length<ss?h.find(S=>S.request.priority==="background"):void 0,v=s??(k!==void 0&&(A===void 0||d>=4)?k:A);if(v===void 0)return;if(u.length>0&&(v.exclusive||v.bytes>Rt)||c>0&&c+v.bytes>Rt){s=v;return}s=void 0,d=v.request.priority==="foreground"?Math.min(4,d+1):0,v.sent=true,v.sentAt=Date.now();for(let S of h)S.waitElapsed=0;c+=v.bytes,u.length===0&&(b=0);try{if("items"in v.request){let S=[...new Set(v.request.items.map(O=>O.input.privateKey))],T=v.request.items.map(O=>({itemIndex:O.itemIndex,keyIndex:S.indexOf(O.input.privateKey),secretKey:new Uint8Array(O.input.secretKey).buffer,cipherData:new Uint8Array(O.input.cipherData).buffer}));if(!x({...w(v.request.operationId),kind:"decrypt-batch",keys:S,items:T,priority:v.request.priority},T.flatMap(O=>[O.secretKey,O.cipherData])))return}else if(ge(v.request)){let S=new Uint8Array(v.request.input.teaKey.subarray(0,16)).buffer,T=new Uint8Array(On(v.request)).buffer,O="plain"in v.request.input?{...w(v.request.operationId),kind:"encrypt-tea",teaKey:S,plain:T,priority:v.request.priority}:{...w(v.request.operationId),kind:"decrypt-tea",teaKey:S,cipherData:T,priority:v.request.priority};if(!x(O,[S,T]))return}else {let S=new Uint8Array(v.request.input.data).buffer;if(!x({...w(v.request.operationId),kind:"decrypt-rsa",data:S,privateKey:v.request.input.privateKey,priority:v.request.priority},[S]))return}}catch{R("messageerror");return}M("crypto-task-dispatched",void 0,v);}}function f(u){if(i!==void 0)return;if(!Ao(u.data))return R("protocol-mismatch");let h=u.data;if(h.kind==="protocol-error"||h.kind==="ready"&&h.generation!==e.generation)return R("protocol-mismatch");if(h.generation!==e.generation)return;if(h.kind==="ready"){if(o)return R("protocol-mismatch");o=true,b=0,l();return}if(!o)return R("protocol-mismatch");let A=n.get(h.operationId);if(A===void 0)return t.has(h.operationId)?void 0:R("protocol-mismatch");if(!A.sent)return R("protocol-mismatch");if(h.kind==="progress"){if(ge(A.request)||h.completed<=A.completed||"items"in A.request&&h.completed>A.request.items.length)return R("protocol-mismatch");A.completed=h.completed,b=0;return}if(h.kind==="cancelled"&&!A.cancelled)return R("protocol-mismatch");let k;if(h.kind==="batch-result"){if(!("items"in A.request))return R("protocol-mismatch");let v=new Map(h.items.map(S=>[S.itemIndex,S.result]));if(v.size!==h.items.length||h.items.length!==A.request.items.length||A.request.items.some(S=>!v.has(S.itemIndex)))return R("protocol-mismatch");k=A.request.items.map(({itemIndex:S})=>{let T=v.get(S);return {itemIndex:S,result:T.ok?{ok:true,plain:new Uint8Array(T.plain)}:T}});}else if((h.kind==="result"||h.kind==="crypto-error")&&"items"in A.request)return R("protocol-mismatch");if(h.kind==="result"&&ge(A.request)&&h.data.byteLength!==A.bytes-16)return R("protocol-mismatch");if(!A.cancelled)if(k!==void 0)I(A,k);else if(h.kind==="result"&&!("items"in A.request))I(A,new Uint8Array(h.data));else {if(h.kind==="result"||h.kind==="batch-result")return R("protocol-mismatch");I(A,void 0,Object.assign(new Error("Crypto input could not be processed"),{name:"CryptoComputationError"}));}M(A.cancelled?"crypto-task-cancelled":"crypto-task-completed",void 0,A),E(A),b=0,l();}function m(){R("messageerror");}function C(u){u.preventDefault(),R(o?"crashed":"load-failed");}function p(u){if(i!==void 0)return Promise.reject(i);if(u.signal?.aborted)return Promise.reject(Mo());if(ge(u)&&(!(u.input.teaKey instanceof Uint8Array)||u.input.teaKey.byteLength<16||!(On(u)instanceof Uint8Array)||On(u).byteLength>262144))return Promise.reject(new _("protocol-mismatch"));if("items"in u&&(!Array.isArray(u.items)||u.items.length===0||u.items.length>8||u.items.some(k=>!Number.isSafeInteger(k.itemIndex)||k.itemIndex<0||typeof k.input.privateKey!="string"||!(k.input.secretKey instanceof Uint8Array)||!(k.input.cipherData instanceof Uint8Array))||new Set(u.items.map(k=>k.itemIndex)).size!==u.items.length))return Promise.reject(new _("protocol-mismatch"));let h="items"in u?u.items.reduce((k,v)=>k+v.input.secretKey.byteLength+v.input.cipherData.byteLength,0)+[...new Set(u.items.map(k=>k.input.privateKey))].reduce((k,v)=>k+v.length*2,0):ge(u)?On(u).byteLength+16:u.input.data.byteLength+u.input.privateKey.length*2;if("items"in u&&u.items.length>1&&h>262144)return Promise.reject(new _("protocol-mismatch"));if(u.generation!==e.generation||u.operationId===""||u.operationId.length>256||n.has(u.operationId)||t.has(u.operationId))return Promise.reject(new _("protocol-mismatch"));let A=[...n.values()].filter(k=>!k.sent);return A.length>=cs||u.priority==="background"&&A.filter(k=>k.request.priority==="background").length>=ds?Promise.reject(new _("queue-full")):new Promise((k,v)=>{let S={request:"items"in u?{...u,items:u.items.map(T=>({itemIndex:T.itemIndex,input:{...T.input}}))}:ge(u)?{...u,input:{...u.input}}:{...u,input:{...u.input}},resolve:k,reject:v,sent:false,settled:false,cancelled:false,bytes:h,exclusive:"items"in u&&h>262144,completed:0,waitElapsed:0,enqueuedAt:Date.now(),onAbort(){S.cancelled=true,I(S,void 0,Mo()),S.sent?x({...w(u.operationId),kind:"cancel"}):(E(S),l());}};n.set(u.operationId,S),u.signal?.addEventListener("abort",S.onAbort,{once:true}),U(),r!==void 0&&P===void 0&&(y=Date.now(),P=setTimeout(_$1,250)),l();})}return {decryptRsa:u=>p(u),decryptBatch:u=>p(u),decryptTea:u=>p(u),encryptTea:u=>p(u),promote(u){let h=n.get(u);h===void 0||h.cancelled||(h.request.priority="foreground",h.sent&&x({...w(u),kind:"promote"}),l());},setSuspended(u){a=u,y=Date.now();},dispose(){R("disposed");}}}var ls="core";var sn=class extends Error{code=502;constructor(n,t){super(`core JSON \u4F20\u8F93\u5931\u8D25\uFF1A${n||"unknown transport error"}`,t===void 0?void 0:{cause:t}),this.name="CoreJsonTransportError";}},Q=class extends Error{businessCode;operation;constructor(n,t,r){super(`${n}\u5931\u8D25\uFF1Acode=${t}${r?` ${r}`:""}`),this.name="CoreJsonBusinessError",this.businessCode=t,this.operation=n;}};async function B(e,n,t,r){let o=r!==void 0&&"responseMode"in r&&r.responseMode==="strict",i;try{i=await e(n,{target:ls,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 sn(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 sn(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 xo(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 B(e,"/user/encrypt_info/info",t,r)}function He(e,n){return n===void 0?e:new Promise((t,r)=>{let o=()=>r(new DOMException("\u5BC6\u94A5\u534F\u5546\u7B49\u5F85\u5DF2\u53D6\u6D88","AbortError")),i=()=>n.removeEventListener("abort",o);n.aborted?o():n.addEventListener("abort",o,{once:true}),e.then(a=>{i(),t(a);},a=>{i(),r(a);});})}function ps(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}var fs=0;function ms(e){let n=e.clientType,t=new Map,r=new Map,o=ve((R,x)=>R===x),i=++fs,a=0,c=false,d=null,s=null;function g(R){if(c||R?.aborted===true)throw new DOMException("\u7528\u6237\u5BC6\u94A5\u534F\u5546\u5DF2\u53D6\u6D88","AbortError")}function b(){if(g(),d!==null)return Promise.resolve(d);if(s!==null)return s;let R=Promise.resolve().then(()=>(g(),e.crypto.generateTempKeyPair())).then(x=>(g(),d=x,x)).finally(()=>{s===R&&(s=null);});return s=R,R}function P(R,x,w){if(g(w),$$1(x)||x instanceof Error&&x.name==="AbortError")throw x;return e.onError?.(R,x),null}async function y(R,x){let w=x.controller.signal;g(w);let _;try{_=await b(),g(w);}catch(m){return P(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u751F\u6210\u4E34\u65F6 RSA \u5BC6\u94A5\u5931\u8D25\uFF08userId=${R}\uFF09`,m,w)}let U;try{U=await xo(e.client,{publicKey:_.publicKeyBase64,clientType:n}),g(w);}catch(m){return P(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u8BF7\u6C42\u5F02\u5E38\uFF08userId=${R}\uFF09`,m,w)}if(U.data===null)return e.onError?.(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u4E1A\u52A1\u5931\u8D25\uFF08userId=${R}\uFF0Ccode=${U.code}\uFF09`),null;let l=U.data.prv_key??U.data.prvKey??"",f=String(U.data.version??"").trim();if(l==="")return e.onError?.(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u54CD\u5E94\u7F3A\u5C11 prv_key\uFF08userId=${R}\uFF09`),null;try{let m=await e.cryptoExecutor.decryptRsa({operationId:x.operationId,generation:e.generation,input:{data:ps(l),privateKey:_.privateKey},priority:x.priority,signal:w});g(w);let C=new TextDecoder().decode(m).trim();if(C==="")return e.onError?.(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u89E3\u51FA\u7684\u79C1\u94A5\u4E3A\u7A7A\uFF08userId=${R}\uFF09`),null;let p=U.data.pub_key?.trim(),u={privateKey:C,version:f,...p?{publicKey:p}:{}};return t.set(R,u),u}catch(m){return P(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u4E34\u65F6\u79C1\u94A5\u89E3 prv_key \u5931\u8D25\uFF08userId=${R}\uFF09`,m,w)}}async function M(R,x){g(x?.signal);let w=R.trim();if(w==="")return null;let _=r.get(w),U=x!==void 0&&("staleKey"in x||x.signal===void 0&&x.priority===void 0);_===void 0&&U&&o.shouldRenegotiate(w,x.staleKey,t.get(w)?.privateKey)&&t.delete(w);let l=t.get(w);if(_===void 0&&l!==void 0)return await Promise.resolve(),g(x?.signal),l;if(_===void 0){let m={operationId:`user-key:${i}:${++a}`,controller:new AbortController,priority:x?.priority??"foreground"},C=He(y(w,m),m.controller.signal).finally(()=>{r.get(w)?.operationId===m.operationId&&r.delete(w);});_=Object.assign(m,{promise:C}),r.set(w,_);}(x?.priority??"foreground")==="foreground"&&E(w);let f=await He(_.promise,x?.signal);return g(_.controller.signal),g(x?.signal),f}function I(R){return c?null:t.get(R.trim())??null}function E(R){let x=r.get(R.trim());c||x===void 0||x.priority==="foreground"||(x.priority="foreground",e.cryptoExecutor.promote(x.operationId));}function D(){if(!c){c=true;for(let[R,x]of r)x.controller.abort(),o.reset(R);for(let R of t.keys())o.reset(R);r.clear(),t.clear(),o=ve((R,x)=>R===x),d=null,s=null;}}return {getUserPrivateKey:M,getCachedPrivateKey:I,dispose:D,promote:E}}function _o(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 B(e,"/user_group/encrypt_info",t,r)}function gs(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}var ys=0;function hs(e){let n=e.clientType,t=new Map,r=new Map,o=new Map,i=ve((w,_)=>w===_),a=++ys,c=0,d=false,s=null,g=null;function b(w){if(d||w?.aborted===true)throw new DOMException("\u7FA4\u5BC6\u94A5\u534F\u5546\u5DF2\u53D6\u6D88","AbortError")}function P(){if(b(),s!==null)return Promise.resolve(s);if(g!==null)return g;let w=Promise.resolve().then(()=>(b(),e.crypto.generateTempKeyPair())).then(_=>(b(),s=_,_)).finally(()=>{g===w&&(g=null);});return g=w,w}function y(w,_,U){if(b(U),$$1(_)||_ instanceof Error&&_.name==="AbortError")throw _;return e.onError?.(w,_),null}async function M(w,_){let U=_.controller.signal;b(U);let l;try{l=await P(),b(U);}catch(h){return y(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u751F\u6210\u4E34\u65F6 RSA \u5BC6\u94A5\u5931\u8D25\uFF08groupId=${w}\uFF09`,h,U)}let f;try{f=await _o(e.client,{groupId:w,publicKey:l.publicKeyBase64,clientType:n}),b(U);}catch(h){return y(`\u7FA4\u5BC6\u94A5\u534F\u5546\u8BF7\u6C42\u5F02\u5E38\uFF08groupId=${w}\uFF09`,h,U)}if(f.data===null)return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u4E1A\u52A1\u5931\u8D25\uFF08groupId=${w}\uFF0Ccode=${f.code}\uFF09`),null;let m=f.data,C=String(m.prv_key??m.prvKey??m.private_key??"").trim(),p=String(m.pub_key??m.pubKey??m.public_key??"").trim(),u=String(m.version??"").trim();if(C==="")return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u54CD\u5E94\u7F3A\u5C11 prv_key\uFF08groupId=${w}\uFF09`),null;try{let h=await e.cryptoExecutor.decryptRsa({operationId:_.operationId,generation:e.generation,input:{data:gs(C),privateKey:l.privateKey},priority:_.priority,signal:U});b(U);let A=new TextDecoder().decode(h).trim();if(A==="")return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u89E3\u51FA\u7684\u79C1\u94A5\u4E3A\u7A7A\uFF08groupId=${w}\uFF09`),null;let k={privateKey:A,publicKey:p,version:u};return t.set(w,k),k}catch(h){return y(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u4E34\u65F6\u79C1\u94A5\u89E3 prv_key \u5931\u8D25\uFF08groupId=${w}\uFF09`,h,U)}}async function I(w,_){b(_?.signal);let U=w.trim(),l=r.get(U)??0,f=()=>{if(b(_?.signal),l!==(r.get(U)??0))throw new DOMException("\u7FA4\u5BC6\u94A5\u5DF2\u6E05\u7406","AbortError")};if(U==="")return null;let m=o.get(U),C=_!==void 0&&("staleKey"in _||_.signal===void 0&&_.priority===void 0);m===void 0&&C&&i.shouldRenegotiate(U,_.staleKey,t.get(U)?.privateKey)&&t.delete(U);let p=t.get(U);if(m===void 0&&p!==void 0)return await Promise.resolve(),f(),p;if(m===void 0){let h={operationId:`group-key:${a}:${++c}`,controller:new AbortController,priority:_?.priority??"foreground"},A=He(M(U,h),h.controller.signal).finally(()=>{o.get(U)?.operationId===h.operationId&&o.delete(U);});m=Object.assign(h,{promise:A}),o.set(U,m);}(_?.priority??"foreground")==="foreground"&&D(U);let u=await He(m.promise,_?.signal);return b(m.controller.signal),f(),u}function E(w){return d?null:t.get(w.trim())??null}function D(w){let _=o.get(w.trim());d||_===void 0||_.priority==="foreground"||(_.priority="foreground",e.cryptoExecutor.promote(_.operationId));}function R(){if(!d){d=true;for(let[w,_]of o)_.controller.abort(),i.reset(w);for(let w of t.keys())i.reset(w);o.clear(),t.clear(),i=ve((w,_)=>w===_),s=null,g=null;}}function x(w){let _=w.trim();r.set(_,(r.get(_)??0)+1),o.get(_)?.controller.abort(),o.delete(_),t.delete(_),i.reset(_);}return {getGroupKeys:I,getCachedGroupKeys:E,getCachedGroupKeyVersion:w=>E(w)?.version??null,clearGroupKeys:x,dispose:R,promote:D}}async function cn(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 B(e,"/user/info/other",t,r)).data}function bs(e){let n=e.clientType,t=new Map,r=new Map;async function o(a){try{let d=((await cn(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(c){return e.onError?.(`\u53D6\u5BF9\u7AEF\u516C\u94A5\u8BF7\u6C42\u5F02\u5E38\uFF08userId=${a}\uFF09`,c),null}}function i(a,c){let d=a.trim();if(d==="")return Promise.resolve(null);c?.force===true&&t.delete(d);let s=t.get(d);if(s!==void 0)return Promise.resolve(s);let g=r.get(d);if(g!==void 0)return g;let b=o(d).finally(()=>{r.get(d)===b&&r.delete(d);});return r.set(d,b),b}return {getPeerPublicKey:i}}function ws(e){let n="";for(let t of e)n+=String.fromCharCode(t);return n}function Cs(e){return Uint8Array.from(e,n=>n.charCodeAt(0)&255)}function Ps(e){return e.replace(/(.{64})/g,`$1
|
|
1
|
+
import {aa as aa$1,a,R,U,g,h,i,pa as pa$1,qa as qa$1,ua as ua$1,va as va$1,xa as xa$1,ma as ma$1,na as na$1,oa as oa$1,W as W$1,X,Q as Q$1,T,V as V$1,o,f,S,Y as Y$1,sa as sa$1,da as da$1,fa as fa$1,ga as ga$1,ea as ea$1,ia as ia$1,ha as ha$1,ja as ja$1,la as la$1,ka as ka$1,Ea as Ea$1,Fa as Fa$1,Qb,Pb,Ob,L,K as K$1,J as J$1,Ca as Ca$1,Ga as Ga$1,Aa as Aa$1,I,_,ra as ra$1,ta as ta$1,wa as wa$1,n,w,Va as Va$1,$ as $$1,Ua as Ua$1,Xa as Xa$1,ya as ya$1,za as za$1}from'./chunk-Q6TFPZMF.js';import*as de from'node-forge';import {createMD5,createSHA256}from'hash-wasm';import {deleteDB,openDB}from'idb';function ca(e,n=async t=>{let{createBrowserApiProtocolClient:r}=await import('./browser-2MUNHRDS.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 wt(){return typeof navigator<"u"&&typeof ClipboardItem=="function"&&typeof navigator.clipboard?.write=="function"}function ne(e){if(!e.isCurrent())throw new DOMException("Image copy is no longer active","AbortError")}async function bt(e,n){if(ne(n),e.size===0)throw new Error("Empty clipboard image");let t=URL.createObjectURL(e),r=new Image,o;try{if(await new Promise((c,d)=>{r.onload=()=>c(),r.onerror=()=>d(new Error("Clipboard image decode failed")),r.src=t;}),ne(n),r.naturalWidth<=0||r.naturalHeight<=0)throw new Error("Invalid clipboard image dimensions");if(e.type==="image/png")return e;if(r.naturalWidth*r.naturalHeight>16777216)throw new Error("Clipboard image exceeds canvas pixel limit");o=document.createElement("canvas"),o.width=r.naturalWidth,o.height=r.naturalHeight;let i=o.getContext("2d");if(i===null)throw new Error("Clipboard canvas unavailable");i.drawImage(r,0,0);let a=await new Promise((c,d)=>{o.toBlob(s=>s===null?d(new Error("Clipboard PNG encoding failed")):c(s),"image/png");});return ne(n),a}finally{r.onload=null,r.onerror=null,r.src="",URL.revokeObjectURL(t),o!==void 0&&(o.width=o.height=0);}}async function da(e,n){if(n!==void 0&&n!==""){ne(e);let c=false,d={...e,isCurrent:()=>!c&&e.isCurrent()};try{if(!wt())throw new Error("Image Clipboard API unavailable");let s=(async()=>bt(await e.loadOriginal(),d))();return s.catch(()=>{}),await navigator.clipboard.write([new ClipboardItem({"image/png":s,"text/plain":new Blob([n],{type:"text/plain"})})]),ne(e),"original"}catch{return c=true,ne(e),await navigator.clipboard.writeText(n),ne(e),"text"}finally{c=true;}}if(!wt())throw new Error("Image Clipboard API unavailable");ne(e);let t=false,r={...e,isCurrent:()=>!t&&e.isCurrent()},o={quality:"original"},i=async()=>(ne(r),o.quality="thumbnail",bt(await e.loadThumbnail(),r)),a=(async()=>{try{return await bt(await e.loadOriginal(),r)}catch(c){ne(r);try{return await i()}catch(d){throw ne(r),new AggregateError([c,d],"Original and thumbnail copy failed")}}})();a.catch(()=>{});try{try{await navigator.clipboard.write([new ClipboardItem({"image/png":a})]);}catch(c){if(ne(r),typeof c=="object"&&c!==null&&"name"in c&&(c.name==="NotAllowedError"||c.name==="SecurityError")||(await a,ne(r),o.quality==="thumbnail"))throw c;let d=i();d.catch(()=>{}),await navigator.clipboard.write([new ClipboardItem({"image/png":d})]);}return ne(r),o.quality}finally{t=true;}}var K=class extends Error{code;constructor(n,t,r){super(t??n,r),this.name="MediaTransferError",this.code=n;}};function ua(e){return e instanceof K?e.code:void 0}function Ge(e){if(e instanceof K)return e.code==="upload-timeout"?"timeout":e.code!=="multipart-upload-failed"?void 0:Ge(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 la=3600*1e3,pa=300*1e3;function Pe(...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 fa(e){let n=Number(e);if(!(!Number.isFinite(n)||n<=0))return n>1e12?n/1e3:n}function ma(e){let n=e.replace(/\/+$/,"");return n===""?"":/^https?:\/\//i.test(n)?n:`https://${n}`}function Qr(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=Pe(n.access_key_id,n.accessKeyId),r=Pe(n.secret_key,n.secretKey,n.secretAccessKey),o=Pe(n.session_token,n.sessionToken).replace(/\s+/g,""),i=Pe(n.bucket),a=Pe(n.region),c=ma(Pe(n.dns_point,n.dnsPoint)),d=[t===""?"access_key_id":"",r===""?"secret_key":"",o===""?"session_token":"",i===""?"bucket":"",a===""?"region":"",c===""?"dns_point":""].filter(P=>P!=="");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 s=fa(n.expiration??n.expiresAtSeconds),g=Pe(n.key_prefix,n.keyPrefix),h=Pe(n.identity_id,n.identityId);return {accessKeyId:t,secretAccessKey:r,sessionToken:o,bucket:i,region:a,dnsPoint:c,...s===void 0?{}:{expiresAtSeconds:s},...g===""?{}:{keyPrefix:g},...h===""?{}:{identityId:h}}}function ga(e,n){if(n-e.fetchedAtMs>=la)return false;let{expiresAtSeconds:t}=e.credential;return t===void 0?true:t*1e3-pa>n}function Zr(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 s=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${s}`,{cause:d})}let c=Qr(a);return n.set(o,{credential:c,fetchedAtMs:Date.now()}),c}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,c=a?void 0:n.get(o);if(c!==void 0&&ga(c,Date.now()))return Promise.resolve(c.credential);n.delete(o);let d=t.get(o);if(d!==void 0)return d;let s=r(o,a).finally(()=>{t.get(o)===s&&t.delete(o);});return t.set(o,s),s}}}function ya(){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 q=class extends Error{code;constructor(n,t,r){super(t??n,r),this.name="VoiceError",this.code=n;}};function Rn(e){return e instanceof q?e.code:void 0}function eo(e){switch(e instanceof DOMException||e instanceof Error?e.name:""){case "NotAllowedError":case "SecurityError":case "PermissionDeniedError":return new q("permission-denied","\u9EA6\u514B\u98CE\u6743\u9650\u88AB\u62D2\u7EDD",{cause:e});case "NotFoundError":case "DevicesNotFoundError":return new q("device-not-found","\u672A\u627E\u5230\u53EF\u7528\u9EA6\u514B\u98CE",{cause:e});case "NotReadableError":case "TrackStartError":case "AbortError":return new q("device-busy","\u9EA6\u514B\u98CE\u88AB\u5360\u7528\u6216\u542F\u52A8\u5931\u8D25",{cause:e});default:return new q("device-busy",e instanceof Error?e.message:"\u9EA6\u514B\u98CE\u542F\u52A8\u5931\u8D25",{cause:e})}}var se=16e3,ha=new URL("./speex-runtime.txt",import.meta.url).href,Ct=null,ba=15e3;async function wa(){document.querySelector('script[data-speex-runtime="true"]')?.remove();let e=new AbortController,n=setTimeout(()=>e.abort(new Error("Speex runtime fetch timeout")),ba),t;try{t=await fetch(ha,{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 Pt(){let e=typeof window>"u"?void 0:window;return e?.__speexInH5!==void 0?e.__speexInH5:(Ct??=(async()=>{if(e===void 0||typeof document>"u")throw new q("codec-unavailable","Speex \u8FD0\u884C\u65F6\u4EC5\u53EF\u5728\u6D4F\u89C8\u5668\u73AF\u5883\u52A0\u8F7D");if(await wa(),e.__speexInH5===void 0&&e.initAudio?.(),e.__speexInH5===void 0)throw new q("codec-unavailable","Speex \u8FD0\u884C\u65F6\u521D\u59CB\u5316\u5931\u8D25");return e.__speexInH5})().catch(n=>{throw Ct=null,n instanceof q?n:new q("codec-unavailable","Speex \u8FD0\u884C\u65F6\u52A0\u8F7D\u5931\u8D25",{cause:n})}),Ct)}function no(){Pt().catch(()=>{});}function Ie(e,n,t){for(let r=0;r<t.length;r+=1)e.setUint8(n+r,t.charCodeAt(r));}function Ca(e,n){let r=new ArrayBuffer(44+e.length*2),o=new DataView(r);Ie(o,0,"RIFF"),o.setUint32(4,36+e.length*2,true),Ie(o,8,"WAVE"),Ie(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),Ie(o,36,"data"),o.setUint32(40,e.length*2,true);let i=44;for(let a=0;a<e.length;a+=1){let c=Math.max(-1,Math.min(1,e[a]??0));o.setInt16(i,c<0?c*32768:c*32767,true),i+=2;}return r}function It(e){if(e instanceof Int16Array)return e;let n=new Int16Array(e.length);for(let t=0;t<e.length;t+=1){let r=Math.max(-1,Math.min(1,e[t]??0));n[t]=r<0?r*32768:r*32767;}return n}var Pa=40,vt=120,Ia=40,At=80;function va(e,n){let t=Math.min(Math.floor(n*Pa/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 St(e,n){if(e.length===0)return e;let t=Math.min(Math.floor(n*vt/1e3),Math.max(0,e.length-1)),r=t>0?e.subarray(t):e,o=new Float32Array(r),i=Math.min(Math.floor(n*Ia/1e3),Math.floor(o.length/2));for(let a=0;a<i;a+=1){let c=a/i;o[a]=(o[a]??0)*c;let d=o.length-1-a;o[d]=(o[d]??0)*c;}return o}function Tn(e,n){let r=new ArrayBuffer(44+e.length*2),o=new DataView(r);return Ie(o,0,"RIFF"),o.setUint32(4,36+e.length*2,true),Ie(o,8,"WAVE"),Ie(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),Ie(o,36,"data"),o.setUint32(40,e.length*2,true),new Int16Array(r,44).set(e),new Uint8Array(r)}function Aa(e){let n=new Uint8Array(e.length);for(let t=0;t<e.length;t+=1)n[t]=e.charCodeAt(t)&255;return n}function Sa(e){let t="";for(let r=0;r<e.length;r+=32768)t+=String.fromCharCode(...e.subarray(r,Math.min(r+32768,e.length)));return t}async function to(e,n){let t=await Pt(),r=Math.floor(n*At/1e3),o=new Float32Array(r+e.length);o.set(e,r);let i=Ca(o,n);try{return Aa(t.encodeFile(i))}catch(a){throw new q("encode-failed","\u8BED\u97F3\u7F16\u7801\u5931\u8D25",{cause:a})}}async function ro(e){let n=await Pt();try{let[t,r]=n.decodeFile(Sa(e));if(t.length===0)throw new Error("decoded empty pcm");let o=va(It(t),r.rate>0?r.rate:se),i=r.rate>0?r.rate:se;return {samples:o,sampleRate:i,durationMs:Math.round(o.length/i*1e3)}}catch(t){throw t instanceof q?t:new q("decode-failed","\u8BED\u97F3\u89E3\u7801\u5931\u8D25",{cause:t})}}async function oo(e){let n=await ro(e);return {wavData:Tn(n.samples,n.sampleRate),durationMs:n.durationMs}}var Ma=.5,xa=2;function io(e){if(typeof e!="number"||!Number.isFinite(e))throw new q("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,Ma),xa)}function _a(e={}){let n=e.cacheMax??8,t={activeId:"",isPlaying:false,loadingId:"",progress:0,currentTimeMs:0,errorIds:new Set,playbackRate:e.playbackRate===void 0?1:io(e.playbackRate)},r=new Set;function o(){for(let p of r)p(t);}let i=null,a=new Map,c=0,d=false,s=false;function g(p){let u=a.get(p);return u!==void 0&&(a.delete(p),a.set(p,u)),u}function h(p,u){if(d)return URL.revokeObjectURL(u.url),u;let b=a.get(p);if(b!==void 0)return URL.revokeObjectURL(u.url),a.delete(p),a.set(p,b),b;for(a.set(p,u);a.size>n;){let A;for(let v of a.keys())if(v!==t.activeId){A=v;break}if(A===void 0)break;let k=a.get(A);a.delete(A),k!==void 0&&URL.revokeObjectURL(k.url);}return u}function P(p){p.paused||p.pause(),p.removeAttribute("src");try{p.load();}catch{}}function y(p,u){return !d&&p===c&&t.activeId===u}function M(p){p.defaultPlaybackRate=t.playbackRate,p.playbackRate=t.playbackRate;}function I(){if(i!==null)return i;let p=new Audio;return p.preload="auto",M(p),p.addEventListener("timeupdate",()=>{t.activeId!==""&&(t.currentTimeMs=p.currentTime*1e3,t.progress=p.duration>0?Math.min(1,p.currentTime/p.duration):0,o());}),p.addEventListener("ended",()=>{E(),P(p),o();}),p.addEventListener("pause",()=>{t.activeId!==""&&(t.isPlaying=false,o());}),i=p,p}function E(){t.activeId="",t.isPlaying=false,t.progress=0,t.currentTimeMs=0;}function D(){c+=1,s=false,t.loadingId="",E(),i!==null&&P(i),o();}function R(p){t.errorIds=new Set([...t.errorIds,p]);}function x(p){if(!t.errorIds.has(p))return;let u=new Set(t.errorIds);u.delete(p),t.errorIds=u;}async function w(p,u){let b=g(p);if(b!==void 0)return {entry:b};let A;try{A=await u();}catch(k){return {entry:null,error:{code:Rn(k),cause:k}}}if(A===null)return {entry:null};try{let{wavData:k,durationMs:v}=await oo(A),S={url:URL.createObjectURL(new Blob([k],{type:"audio/wav"})),durationMs:v};return {entry:h(p,S)}}catch(k){return {entry:null,error:{code:Rn(k),cause:k}}}}async function _(p,u){if(d)return;let b=I();if(x(p),t.activeId===p){if(t.isPlaying){b.pause();return}let v=++c;try{await b.play();}catch{if(!y(v,p))return;R(p),o();return}if(!y(v,p))return;t.isPlaying=true,o(),u.onPlayStart?.();return}if(t.loadingId===p)return;D();let A=++c;t.loadingId=p,o();let k=await w(p,u.load);if(A===c){if(t.loadingId="",k.entry===null){R(p),o(),k.error!==void 0&&u.onDecodeError?.(k.error.code,k.error.cause);return}b.src=k.entry.url,M(b),t.activeId=p,t.progress=0,t.currentTimeMs=0,o();try{await b.play();}catch(v){if(!y(A,p))return;E(),P(b),R(p),o(),u.onDecodeError?.(void 0,v);return}y(A,p)&&(t.isPlaying=true,o(),u.onPlayStart?.());}}function U(p,u){i===null||t.activeId!==p||!Number.isFinite(i.duration)||i.duration<=0||(i.currentTime=Math.min(Math.max(u,0),.999)*i.duration);}function l(p){i===null||t.activeId!==p||t.isPlaying&&(s=true,i.pause());}function f(p){if(i===null||t.activeId!==p||!s)return;s=false;let u=++c;i.play().then(()=>{y(u,p)&&(t.isPlaying=true,o());}).catch(()=>{y(u,p)&&(R(p),o());});}function m(p){let u=io(p);u!==t.playbackRate&&(t.playbackRate=u,i!==null&&M(i),o());}function C(){if(!d){d=true,D();for(let p of a.values())URL.revokeObjectURL(p.url);a.clear(),r.clear(),i=null;}}return {getState:()=>t,subscribe:p=>(r.add(p),()=>r.delete(p)),toggle:_,seek:U,beginScrub:l,endScrub:f,setPlaybackRate:m,stop:D,dispose:C}}function ka(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 Ea(e,n,t){if(e.length===0||n<=0||t<=0)return 0;let r=n/t,o=0,i=0;for(let a=0;a<e.length;a+=1){let c=a*r,d=.2;c<200?d=.15:c<300?d=.4:c<=3400?d=1:c<=6e3&&(d=.45),o+=(e[a]??0)/255*d,i+=d;}return i>0?o/i:0}function ao(e){let n=ka(e.timeDomain),t=Ea(e.frequency,e.sampleRate,e.fftSize),r=n*.55+t*.45;return Math.min(1,r*e.boost)**.72}var Dn=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 Ra=5e3,Mt=15e3,Ta=25e3,Da=25e3;function nn(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 Ua(){if(typeof navigator>"u"||navigator.mediaDevices?.getUserMedia===void 0)throw new q("no-media-devices","\u5F53\u524D\u73AF\u5883\u4E0D\u652F\u6301\u9EA6\u514B\u98CE\u91C7\u96C6");let e=navigator.mediaDevices.getUserMedia({audio:Oa()});try{return await nn(e,Da,"\u9EA6\u514B\u98CE\u6388\u6743\u8BF7\u6C42\u8D85\u65F6")}catch(n){throw e.then(t=>t.getTracks().forEach(r=>r.stop())).catch(()=>{}),eo(n)}}function Oa(){return {channelCount:1,echoCancellation:true,noiseSuppression:true,autoGainControl:true}}var Ba=50,Na=.12,Ka=2.6,La=.06,Ga=256;function Ha(){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 Fa(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 q("audio-context-blocked","AudioContext \u4E0D\u53EF\u7528");let i=t??new r,a=t==null;try{i.state==="suspended"&&await nn(i.resume(),Mt,"audioContext.resume timeout").catch(()=>{});let c=await nn(i.decodeAudioData(await e.arrayBuffer()),Mt,"decodeAudioData timeout"),d=Math.max(1,Math.ceil(c.duration*n)),s=new o(1,d,n),g=s.createBufferSource();return g.buffer=c,g.connect(s.destination),g.start(0),(await nn(s.startRendering(),Mt,"offlineAudioContext.startRendering timeout")).getChannelData(0).slice()}catch(c){throw c instanceof q?c:new q("decode-failed","\u5F55\u97F3\u6BB5\u89E3\u7801\u5931\u8D25",{cause:c})}finally{a&&i.close().catch(()=>{});}}function so(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 qa(e={}){if(typeof MediaRecorder>"u")throw new q("no-media-recorder","\u5F53\u524D\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\u5F55\u97F3");let n;e.stream!==void 0?n=e.stream:n=await Ua(),no();let t=Ha(),r=e.maxDurationMs??6e4,o="recording",i=[],a=0,c=[],d=null,s=null,g=null,h=[],P=0,y=false;function M(){try{let p;try{p=t!==""?new MediaRecorder(n,{mimeType:t}):new MediaRecorder(n);}catch{p=new MediaRecorder(n);}return h=[],p.ondataavailable=u=>{u.data.size>0&&h.push(u.data);},p.start(250),P=Date.now(),p}catch(p){throw p instanceof q?p:new q("device-busy","\u5F55\u97F3\u5668\u542F\u52A8\u5931\u8D25",{cause:p})}}let I=e.amplitude?.intervalMs??Ba,E=e.amplitude?.boost??Ka,D=e.amplitude?.smoothing??Na,R=e.amplitude?.minVolume??La;function x(){let p=Math.floor(r/1e3*se),u=0;for(let A of i)u+=A.length;if(u>p){let A=p,k=[];for(let v of i){if(A<=0)break;v.length<=A?(k.push(v),A-=v.length):(k.push(v.slice(0,A)),A=0);}i.length=0,i.push(...k);}a=Math.min(a,r);let b=Math.max(0,Math.ceil(r/I));c.length>b&&(c.length=b);}async function w(){if(o!=="recording"){e.onMaxDuration?.();return}e.onMaxDuration?.(),o="paused";let p=C().then(()=>x());g=p;try{await p;}catch(u){console.warn("[im-browser] pauseAtMaxDuration settle failed",u);}}let _=setInterval(()=>{!y&&o==="recording"&&f()>=r&&(y=true,w());},250),U=null,l=null;try{let p=window.AudioContext??window.webkitAudioContext;if(p!==void 0){U=new p,U.state==="suspended"&&U.resume().catch(()=>{});let u=U.createMediaStreamSource(n),b=U.createAnalyser();b.fftSize=Ga,b.smoothingTimeConstant=D,u.connect(b);let A=new Uint8Array(b.frequencyBinCount),k=new Uint8Array(b.fftSize),v=new Dn;l=setInterval(()=>{if(o!=="recording"||d===null)return;b.getByteFrequencyData(A),b.getByteTimeDomainData(k);let S=ao({timeDomain:k,frequency:A,sampleRate:U.sampleRate,fftSize:b.fftSize,boost:E}),T=v.next(S),O=T<R?0:T;c.push(Math.round(O*255)),e.onAmplitude?.(O);},I);}}catch(p){console.warn("[im-browser] amplitude analyser setup failed",p);}function f(){let p=o==="recording"&&d!==null?Date.now()-P:0;return a+p}function m(){_!==null&&(clearInterval(_),_=null),l!==null&&(clearInterval(l),l=null),U?.close().catch(()=>{}),U=null;for(let p of n.getTracks())p.stop();}function C(){if(s!==null)return s;let p=d;return p===null?Promise.resolve():(d=null,s=(async()=>{await new Promise(A=>{if(p.state==="inactive"){A();return}let k=setTimeout(()=>{console.warn("[im-browser] recorder onstop timed out, settling with received chunks"),A();},Ra);p.onstop=()=>{clearTimeout(k),A();},p.stop();});let u=new Blob(h,{type:p.mimeType||t||"audio/webm"});if(h=[],u.size===0)return;let b=await Fa(u,se,U);b.length!==0&&(i.push(b),a+=b.length/se*1e3);})().finally(()=>{s=null;}),s)}try{d=M();}catch(p){throw o="closed",m(),p}return {getState:()=>o,recordedMs:f,async pause(){o==="recording"&&(o="paused",await C(),(y||a>=r)&&x());},async resume(){o!=="paused"||y||(d=M(),o="recording");},async finish(){if(o==="closed")throw new q("empty-recording","\u5F55\u97F3\u4F1A\u8BDD\u5DF2\u7ED3\u675F");o="closed";let p=async()=>{try{g!==null?await g:await C(),x();}finally{m();}let u=so(i);if(u.length===0)throw new q("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let b=St(u,se);if(b.length===0)throw new q("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let A=Math.min(c.length,Math.ceil(vt/I));return {data:await to(b,se),durationMs:Math.round(b.length/se*1e3)+At,waveform:c.slice(A),filename:`AUDIO_${Date.now()}.ogg`,mimeType:"audio/ogg"}};try{return await nn(p(),Ta,"\u5F55\u97F3\u5B9A\u7A3F\u8D85\u65F6")}catch(u){throw m(),u instanceof q?u:new q("encode-failed","\u5F55\u97F3\u5B9A\u7A3F\u5931\u8D25",{cause:u})}},cancel(){o="closed";let p=d;if(d=null,p!==null&&(p.ondataavailable=null,p.onstop=null,p.state!=="inactive"))try{p.stop();}catch{}i.length=0,m();},async previewWav(){g!==null?await g:s!==null&&await s,x();let p=so(i),u=St(p,se);if(u.length===0)throw new q("empty-recording","\u6682\u65E0\u53EF\u8BD5\u542C\u7684\u5F55\u97F3\u5185\u5BB9");return {wavData:Tn(It(u),se),durationMs:Math.round(u.length/se*1e3)}}}}function ve(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 co(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 uo(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(s){throw new ce("channel secret_key Base64 \u89E3\u7801\u5931\u8D25",{cause:s})}let a=Uint8Array.from(i,s=>s.charCodeAt(0)&255);if(a.length===0)throw new ce("channel secret_key Base64 \u89E3\u7801\u7ED3\u679C\u4E3A\u7A7A");let c=new Uint8Array(16);c.set(a.subarray(0,c.length));let d=n.length===16&&/^[\x20-\x7E]+$/.test(n)?Uint8Array.from(n,s=>s.charCodeAt(0)):void 0;return {canonical:c,...d===void 0?{}:{legacyAscii:d},metadata:{channelKeyCharLength:n.length,decodedByteLength:a.length,padByteCount:Math.max(0,16-a.length),legacyAsciiCandidate:d!==void 0}}}function ja(e){let n=new Map,t=new Map,r=new Map,o=new Map,i=ve(co);function a(w){return {canonical:w.canonical.slice(),...w.legacyAscii===void 0?{}:{legacyAscii:w.legacyAscii.slice()},metadata:{...w.metadata}}}function c(w){return [{strategy:"canonical-base64-pad",key:w.canonical.slice()},...w.legacyAscii===void 0?[]:[{strategy:"legacy-ascii16",key:w.legacyAscii.slice()}]]}function d(w){n.delete(w),t.delete(w),r.delete(w),o.set(w,(o.get(w)??0)+1);}function s(w){let _=o.get(w)??0,U=(async()=>{try{let l=await e.loadSecretKey(w);if(l===null||l.trim()==="")throw new ce(`channel secret_key \u7F3A\u5931\uFF08channelId=${w}\uFF09`);let f=uo(l);return (o.get(w)??0)===_&&n.set(w,a(f)),f}catch(l){let f=l instanceof ce?l:new ce(`channel secret_key \u52A0\u8F7D\u5931\u8D25\uFF08channelId=${w}\uFF09`,{cause:l});throw e.onError?.(f.message,l),f}})().finally(()=>{t.get(w)===U&&t.delete(w);});return t.set(w,U),U}function g(w,_){let U=t.get(w);if(U!==void 0)return U;i.shouldRenegotiate(w,_.staleKey,n.get(w)?.canonical)&&d(w);}function h(w,_){let U=w.trim();if(U===""){let f=new ce("channel id \u4E0D\u80FD\u4E3A\u7A7A");return e.onError?.(f.message),Promise.reject(f)}if(_!==void 0){let f=g(U,_);if(f!==void 0)return f.then(a)}let l=n.get(U);return l!==void 0?Promise.resolve(a(l)):t.get(U)??s(U)}function P(w,_){let U=w.trim();if(U===""){let C=new ce("channel id \u4E0D\u80FD\u4E3A\u7A7A");return e.onError?.(C.message),Promise.reject(C)}if(_!==void 0){let C=g(U,_);if(C!==void 0)return C.then(p=>p.canonical.slice())}let l=n.get(U);if(l!==void 0)return Promise.resolve(l.canonical.slice());let f=r.get(U);if(f!==void 0)return f;let m=(t.get(U)??s(U)).then(C=>C.canonical.slice()).finally(()=>{r.get(U)===m&&r.delete(U);});return r.set(U,m),m}function y(w){return n.get(w.trim())?.canonical.slice()??null}async function M(w,_){let U=await h(w,_);return c(U)}function I(w){let _=n.get(w.trim());return _===void 0?[]:c(_)}function E(w){let _=n.get(w.trim());return _===void 0?null:{..._.metadata}}function D(w,_){let U=w.trim();if(U==="")throw new ce("channel id \u4E0D\u80FD\u4E3A\u7A7A");let l=uo(_);d(U),i.reset(U),n.set(U,a(l));}function R(w){let _=w.trim();_!==""&&(d(_),i.reset(_));}function x(){let w=new Set([...n.keys(),...t.keys(),...r.keys(),...o.keys()]);for(let _ of w)o.set(_,(o.get(_)??0)+1),i.reset(_);n.clear(),t.clear(),r.clear();}return {getChannelKey:P,getCachedChannelKey:y,getChannelKeyCandidates:M,getCachedChannelKeyCandidates:I,getCachedChannelKeyMetadata:E,primeChannelKey:D,clearChannelKey:R,clearAll:x}}function xt(){let e=globalThis.scheduler;return typeof e?.yield=="function"?e.yield():new Promise(n=>setTimeout(n,0))}var _t=2654435769,lo=16,me=8,kt=16,fo=32;function mo(e){if(e.length<kt)throw new Error(`TEA key \u957F\u5EA6\u4E0D\u8DB3\uFF1A${e.length}\uFF0C\u9700 \u2265 ${kt} \u5B57\u8282`);let n=new DataView(e.buffer,e.byteOffset,kt);return [n.getUint32(0,true),n.getUint32(4,true),n.getUint32(8,true),n.getUint32(12,true)]}function rn(e,n,t,r,o=new Uint8Array(e.length)){let i=mo(n),a=Math.floor(e.length/me),c=r===void 0?a:Math.min(a,Math.floor(r/me)),d=new DataView(e.buffer,e.byteOffset,e.byteLength),s=new DataView(o.buffer,o.byteOffset,o.byteLength);if(t==="decrypt"){let[h,P,y,M]=i;for(let I=0;I<c*me;I+=me){let E=d.getUint32(I,true),D=d.getUint32(I+4,true),R=Math.imul(_t,16)>>>0;for(let x=0;x<lo;x++)D=D-(Math.imul(E,16)+y^E+R^(E>>>5)+M)>>>0,E=E-(Math.imul(D,16)+h^D+R^(D>>>5)+P)>>>0,R=R-_t>>>0;s.setUint32(I,E,true),s.setUint32(I+4,D,true);}}else {let[h,P,y,M]=i;for(let I=0;I<c*me;I+=me){let E=d.getUint32(I,true),D=d.getUint32(I+4,true),R=0;for(let x=0;x<lo;x++)R=R+_t>>>0,E=E+(Math.imul(D,16)+h^D+R^(D>>>5)+P)>>>0,D=D+(Math.imul(E,16)+y^E+R^(E>>>5)+M)>>>0;s.setUint32(I,E,true),s.setUint32(I+4,D,true);}}let g=c*me;return g<e.length&&o.set(e.subarray(g),g),o}function on(e,n){return rn(n,e,"decrypt")}function an(e,n){return rn(n,e,"encrypt")}function go(e,n){return rn(n,e,"encrypt",fo)}function yo(e,n){return rn(n,e,"decrypt",fo)}var $a=1024*1024,po=64*1024,Ja=8;function Va(){return xt()}function tn(e){if(e?.aborted)throw new DOMException("TEA \u5206\u5757\u5904\u7406\u5DF2\u53D6\u6D88","AbortError")}async function Et(e,n,t,r=$a,o={}){if(!Number.isInteger(r)||r<=0||r%me!==0)throw new RangeError(`TEA \u5206\u5757\u5927\u5C0F\u5FC5\u987B\u662F ${me} \u7684\u6B63\u6574\u6570\u500D\uFF1A${r}`);mo(e);let i=o.yieldToMain??Va,a=o.yieldToMain??(()=>new Promise(g=>setTimeout(g,0))),c=n.size,d=[],s=0;for(;s<c;){tn(o.signal);let g=Math.min(s+r,c),h=new Uint8Array(await n.slice(s,g).arrayBuffer());tn(o.signal);let P=new Uint8Array(h.length),y=performance.now();for(let M=0;M<h.length;M+=po){tn(o.signal);let I=Math.min(M+po,h.length);rn(h.subarray(M,I),e,t,void 0,P.subarray(M,I)),I<h.length&&performance.now()-y>=Ja&&(await a(),tn(o.signal),y=performance.now());}d.push(new Blob([P])),s=g,o.onProgress?.(s,c),s<c&&await i();}return tn(o.signal),new Blob(d)}var ho=8,Un=16;function za(e){let n=de.md.md5.create();return n.update(e,"utf8"),n.digest().toHex()}function wo(e){return new TextEncoder().encode(e)}function Wa(e){let n=e.length;for(;n>0&&e[n-1]===0;)n-=1;return new TextDecoder().decode(e.subarray(0,n))}function Ya(e){let n=atob(e),t=new Uint8Array(n.length);for(let r=0;r<n.length;r++)t[r]=n.charCodeAt(r);return t}function Xa(e){let n="";for(let t of e)n+=String.fromCharCode(t);return btoa(n)}function Qa(e){let n=Math.ceil(e.length/ho)*ho;if(n===e.length)return e;let t=new Uint8Array(n);return t.set(e),t}function Co(e,n=za){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<Un)throw new Error("collect TEA key: MD5 \u957F\u5EA6\u4E0D\u8DB3");let o=wo(r.slice(0,Un).toUpperCase());if(o.length<Un)throw new Error("collect TEA key: \u6D3E\u751F\u7ED3\u679C\u4E0D\u8DB3 16 \u5B57\u8282");return o.subarray(0,Un)}function Po(e,n,t){return Xa(an(Co(n,t),Qa(wo(e))))}function Za(e,n,t){return Wa(on(Co(n,t),Ya(e)))}function es(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function Rt(e){let n=e.trim();if(n===""||!n.startsWith("{"))return null;try{return es(JSON.parse(n))}catch{return null}}function ns(e){let n=e.trim(),t=n.indexOf("}");return t>=0?n.slice(0,t+1):n}function Io(e,n,t){let r=Rt(e);if(r!==null)return r;if(e.trim()===""||n.trim()==="")return null;try{let o=Za(e,n,t);return Rt(o)??Rt(ns(o))}catch{return null}}function vo(){return new Worker(new URL("./crypto.worker.js",import.meta.url),{type:"classic",name:"im-crypto"})}function ts(e){if(e===null||typeof e!="object")return false;let n=e;return n.version===1&&Number.isSafeInteger(n.generation)&&n.generation>=0&&typeof n.operationId=="string"&&n.operationId.length<=256}function Ao(e){return ts(e)?e.kind==="ready"||e.kind==="protocol-error"?e.operationId==="":e.operationId===""?false:e.kind==="cancelled"||e.kind==="crypto-error"?true:e.kind==="result"?e.data instanceof ArrayBuffer:e.kind==="batch-result"?Array.isArray(e.items)&&e.items.length>0&&e.items.length<=8&&e.items.every(n=>n!==null&&typeof n=="object"&&Number.isSafeInteger(n.itemIndex)&&n.itemIndex>=0&&n.result!==null&&typeof n.result=="object"&&(n.result.ok===true?n.result.plain instanceof ArrayBuffer:n.result.ok===false&&(n.result.stage==="rsa"||n.result.stage==="tea"))):e.kind==="progress"&&Number.isSafeInteger(e.completed)&&e.completed>0:false}var as=16,ss=12,cs=16,ds=12,Tt=8*1024*1024;function ge(e){return !("items"in e)&&"teaKey"in e.input}function On(e){return "plain"in e.input?e.input.plain:e.input.cipherData}function Mo(){return Object.assign(new Error("Crypto operation cancelled"),{name:"AbortError"})}function us(e){let n=new Map,t=new Set,r,o=false,i,a=false,c=0,d=0,s,g=0,h=0,P,y=0;function M(u,b,A,k){e.diagnostics?.record(b===void 0?"debug":"error","sdk","crypto",u,()=>{let v=[...n.values()],S=v.filter(T=>!T.sent);return {generation:e.generation,...A===void 0?{}:{operationId:A.request.operationId,durationMs:Date.now()-A.enqueuedAt},data:{pendingCount:n.size,inputBytes:c,activeCount:v.length-S.length,waitingCount:S.length,waitingInputBytes:S.reduce((T,O)=>T+O.bytes,0),rsaCount:v.filter(T=>!("items"in T.request)&&!ge(T.request)).length,batchCount:v.filter(T=>"items"in T.request).length,teaCount:v.filter(T=>ge(T.request)).length,...A===void 0?{}:{taskKind:"items"in A.request?"batch":ge(A.request)?"tea":"rsa",priority:A.request.priority},...k===void 0?{}:{phase:k.phase,phaseElapsedMs:k.phaseElapsedMs,budgetMs:k.budgetMs},...b===void 0?{}:{reason:b},...A?.sentAt===void 0?{}:{queueWaitMs:A.sentAt-A.enqueuedAt,roundtripMs:Date.now()-A.sentAt}}}});}function I(u,b,A){u.settled||(u.settled=true,u.request.signal?.removeEventListener("abort",u.onAbort),A!==void 0?u.reject(A):u.resolve(b));}function E(u){n.delete(u.request.operationId),s===u&&(s=void 0),u.sent&&(c-=u.bytes),t.add(u.request.operationId),t.size>256&&t.delete(t.values().next().value);}function D(){P!==void 0&&clearTimeout(P),P=void 0,r!==void 0&&(r.removeEventListener("message",f),r.removeEventListener("messageerror",m),r.removeEventListener("error",C),r.terminate(),r=void 0);}function R(u,b){if(i===void 0){i=new _(u),D(),u!=="disposed"&&M("crypto-executor-failed",u,b?.task,b);for(let A of n.values())I(A,void 0,i);n.clear(),s=void 0,c=0,t.clear(),u==="disposed"&&M("crypto-executor-disposed");}}function x(u,b){try{return r.postMessage(u,b??[]),!0}catch{return R("messageerror"),false}}function w(u){return {version:1,generation:e.generation,operationId:u}}function _$1(){if(P=void 0,r===void 0||i!==void 0)return;let u=Date.now(),b=Math.max(0,u-y);if(y=u,!a){o?[...n.values()].some(S=>S.sent)&&(h+=b):g+=b;for(let S of n.values())o&&!S.sent&&(S.waitElapsed+=b);let A=e.lifecycleAware?1e4:6e4,k=e.lifecycleAware?3e4:6e4;if(!o&&g>=A)return R("timeout",{phase:"handshake",phaseElapsedMs:g,budgetMs:A});if(h>=k)return R("timeout",{phase:"no-progress",phaseElapsedMs:h,budgetMs:k});let v=[...n.values()].find(S=>!S.sent&&S.waitElapsed>=6e4);if(v!==void 0)return R("timeout",{phase:"admission-wait",phaseElapsedMs:v.waitElapsed,budgetMs:6e4,task:v})}(!o||n.size>0)&&(P=setTimeout(_$1,250));}function U(){if(!(r!==void 0||i!==void 0)){if(e.workerFactory===void 0&&typeof Worker>"u")return R("unavailable");try{r=(e.workerFactory??vo)(),r.addEventListener("message",f),r.addEventListener("messageerror",m),r.addEventListener("error",C);}catch{R("load-failed");return}y=Date.now(),P=setTimeout(_$1,250),x({...w(""),kind:"init"});}}function l(){if(!(!o||r===void 0||i!==void 0))for(;;){let u=[...n.values()].filter(S=>S.sent);if(u.length>=as||u.some(S=>S.exclusive||S.bytes>Tt))return;let b=[...n.values()].filter(S=>!S.sent),A=b.find(S=>S.request.priority==="foreground"),k=u.filter(S=>S.request.priority==="background").length<ss?b.find(S=>S.request.priority==="background"):void 0,v=s??(k!==void 0&&(A===void 0||d>=4)?k:A);if(v===void 0)return;if(u.length>0&&(v.exclusive||v.bytes>Tt)||c>0&&c+v.bytes>Tt){s=v;return}s=void 0,d=v.request.priority==="foreground"?Math.min(4,d+1):0,v.sent=true,v.sentAt=Date.now();for(let S of b)S.waitElapsed=0;c+=v.bytes,u.length===0&&(h=0);try{if("items"in v.request){let S=[...new Set(v.request.items.map(O=>O.input.privateKey))],T=v.request.items.map(O=>({itemIndex:O.itemIndex,keyIndex:S.indexOf(O.input.privateKey),secretKey:new Uint8Array(O.input.secretKey).buffer,cipherData:new Uint8Array(O.input.cipherData).buffer}));if(!x({...w(v.request.operationId),kind:"decrypt-batch",keys:S,items:T,priority:v.request.priority},T.flatMap(O=>[O.secretKey,O.cipherData])))return}else if(ge(v.request)){let S=new Uint8Array(v.request.input.teaKey.subarray(0,16)).buffer,T=new Uint8Array(On(v.request)).buffer,O="plain"in v.request.input?{...w(v.request.operationId),kind:"encrypt-tea",teaKey:S,plain:T,priority:v.request.priority}:{...w(v.request.operationId),kind:"decrypt-tea",teaKey:S,cipherData:T,priority:v.request.priority};if(!x(O,[S,T]))return}else {let S=new Uint8Array(v.request.input.data).buffer;if(!x({...w(v.request.operationId),kind:"decrypt-rsa",data:S,privateKey:v.request.input.privateKey,priority:v.request.priority},[S]))return}}catch{R("messageerror");return}M("crypto-task-dispatched",void 0,v);}}function f(u){if(i!==void 0)return;if(!Ao(u.data))return R("protocol-mismatch");let b=u.data;if(b.kind==="protocol-error"||b.kind==="ready"&&b.generation!==e.generation)return R("protocol-mismatch");if(b.generation!==e.generation)return;if(b.kind==="ready"){if(o)return R("protocol-mismatch");o=true,h=0,l();return}if(!o)return R("protocol-mismatch");let A=n.get(b.operationId);if(A===void 0)return t.has(b.operationId)?void 0:R("protocol-mismatch");if(!A.sent)return R("protocol-mismatch");if(b.kind==="progress"){if(ge(A.request)||b.completed<=A.completed||"items"in A.request&&b.completed>A.request.items.length)return R("protocol-mismatch");A.completed=b.completed,h=0;return}if(b.kind==="cancelled"&&!A.cancelled)return R("protocol-mismatch");let k;if(b.kind==="batch-result"){if(!("items"in A.request))return R("protocol-mismatch");let v=new Map(b.items.map(S=>[S.itemIndex,S.result]));if(v.size!==b.items.length||b.items.length!==A.request.items.length||A.request.items.some(S=>!v.has(S.itemIndex)))return R("protocol-mismatch");k=A.request.items.map(({itemIndex:S})=>{let T=v.get(S);return {itemIndex:S,result:T.ok?{ok:true,plain:new Uint8Array(T.plain)}:T}});}else if((b.kind==="result"||b.kind==="crypto-error")&&"items"in A.request)return R("protocol-mismatch");if(b.kind==="result"&&ge(A.request)&&b.data.byteLength!==A.bytes-16)return R("protocol-mismatch");if(!A.cancelled)if(k!==void 0)I(A,k);else if(b.kind==="result"&&!("items"in A.request))I(A,new Uint8Array(b.data));else {if(b.kind==="result"||b.kind==="batch-result")return R("protocol-mismatch");I(A,void 0,Object.assign(new Error("Crypto input could not be processed"),{name:"CryptoComputationError"}));}M(A.cancelled?"crypto-task-cancelled":"crypto-task-completed",void 0,A),E(A),h=0,l();}function m(){R("messageerror");}function C(u){u.preventDefault(),R(o?"crashed":"load-failed");}function p(u){if(i!==void 0)return Promise.reject(i);if(u.signal?.aborted)return Promise.reject(Mo());if(ge(u)&&(!(u.input.teaKey instanceof Uint8Array)||u.input.teaKey.byteLength<16||!(On(u)instanceof Uint8Array)||On(u).byteLength>262144))return Promise.reject(new _("protocol-mismatch"));if("items"in u&&(!Array.isArray(u.items)||u.items.length===0||u.items.length>8||u.items.some(k=>!Number.isSafeInteger(k.itemIndex)||k.itemIndex<0||typeof k.input.privateKey!="string"||!(k.input.secretKey instanceof Uint8Array)||!(k.input.cipherData instanceof Uint8Array))||new Set(u.items.map(k=>k.itemIndex)).size!==u.items.length))return Promise.reject(new _("protocol-mismatch"));let b="items"in u?u.items.reduce((k,v)=>k+v.input.secretKey.byteLength+v.input.cipherData.byteLength,0)+[...new Set(u.items.map(k=>k.input.privateKey))].reduce((k,v)=>k+v.length*2,0):ge(u)?On(u).byteLength+16:u.input.data.byteLength+u.input.privateKey.length*2;if("items"in u&&u.items.length>1&&b>262144)return Promise.reject(new _("protocol-mismatch"));if(u.generation!==e.generation||u.operationId===""||u.operationId.length>256||n.has(u.operationId)||t.has(u.operationId))return Promise.reject(new _("protocol-mismatch"));let A=[...n.values()].filter(k=>!k.sent);return A.length>=cs||u.priority==="background"&&A.filter(k=>k.request.priority==="background").length>=ds?Promise.reject(new _("queue-full")):new Promise((k,v)=>{let S={request:"items"in u?{...u,items:u.items.map(T=>({itemIndex:T.itemIndex,input:{...T.input}}))}:ge(u)?{...u,input:{...u.input}}:{...u,input:{...u.input}},resolve:k,reject:v,sent:false,settled:false,cancelled:false,bytes:b,exclusive:"items"in u&&b>262144,completed:0,waitElapsed:0,enqueuedAt:Date.now(),onAbort(){S.cancelled=true,I(S,void 0,Mo()),S.sent?x({...w(u.operationId),kind:"cancel"}):(E(S),l());}};n.set(u.operationId,S),u.signal?.addEventListener("abort",S.onAbort,{once:true}),U(),r!==void 0&&P===void 0&&(y=Date.now(),P=setTimeout(_$1,250)),l();})}return {decryptRsa:u=>p(u),decryptBatch:u=>p(u),decryptTea:u=>p(u),encryptTea:u=>p(u),promote(u){let b=n.get(u);b===void 0||b.cancelled||(b.request.priority="foreground",b.sent&&x({...w(u),kind:"promote"}),l());},setSuspended(u){a=u,y=Date.now();},dispose(){R("disposed");}}}var ls="core";var sn=class extends Error{code=502;constructor(n,t){super(`core JSON \u4F20\u8F93\u5931\u8D25\uFF1A${n||"unknown transport error"}`,t===void 0?void 0:{cause:t}),this.name="CoreJsonTransportError";}},Q=class extends Error{businessCode;operation;constructor(n,t,r){super(`${n}\u5931\u8D25\uFF1Acode=${t}${r?` ${r}`:""}`),this.name="CoreJsonBusinessError",this.businessCode=t,this.operation=n;}};async function B(e,n,t,r){let o=r!==void 0&&"responseMode"in r&&r.responseMode==="strict",i;try{i=await e(n,{target:ls,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 sn(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 sn(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 xo(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 B(e,"/user/encrypt_info/info",t,r)}function He(e,n){return n===void 0?e:new Promise((t,r)=>{let o=()=>r(new DOMException("\u5BC6\u94A5\u534F\u5546\u7B49\u5F85\u5DF2\u53D6\u6D88","AbortError")),i=()=>n.removeEventListener("abort",o);n.aborted?o():n.addEventListener("abort",o,{once:true}),e.then(a=>{i(),t(a);},a=>{i(),r(a);});})}function ps(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}var fs=0;function ms(e){let n=e.clientType,t=new Map,r=new Map,o=ve((R,x)=>R===x),i=++fs,a=0,c=false,d=null,s=null;function g(R){if(c||R?.aborted===true)throw new DOMException("\u7528\u6237\u5BC6\u94A5\u534F\u5546\u5DF2\u53D6\u6D88","AbortError")}function h(){if(g(),d!==null)return Promise.resolve(d);if(s!==null)return s;let R=Promise.resolve().then(()=>(g(),e.crypto.generateTempKeyPair())).then(x=>(g(),d=x,x)).finally(()=>{s===R&&(s=null);});return s=R,R}function P(R,x,w){if(g(w),$$1(x)||x instanceof Error&&x.name==="AbortError")throw x;return e.onError?.(R,x),null}async function y(R,x){let w=x.controller.signal;g(w);let _;try{_=await h(),g(w);}catch(m){return P(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u751F\u6210\u4E34\u65F6 RSA \u5BC6\u94A5\u5931\u8D25\uFF08userId=${R}\uFF09`,m,w)}let U;try{U=await xo(e.client,{publicKey:_.publicKeyBase64,clientType:n}),g(w);}catch(m){return P(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u8BF7\u6C42\u5F02\u5E38\uFF08userId=${R}\uFF09`,m,w)}if(U.data===null)return e.onError?.(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u4E1A\u52A1\u5931\u8D25\uFF08userId=${R}\uFF0Ccode=${U.code}\uFF09`),null;let l=U.data.prv_key??U.data.prvKey??"",f=String(U.data.version??"").trim();if(l==="")return e.onError?.(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u54CD\u5E94\u7F3A\u5C11 prv_key\uFF08userId=${R}\uFF09`),null;try{let m=await e.cryptoExecutor.decryptRsa({operationId:x.operationId,generation:e.generation,input:{data:ps(l),privateKey:_.privateKey},priority:x.priority,signal:w});g(w);let C=new TextDecoder().decode(m).trim();if(C==="")return e.onError?.(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u89E3\u51FA\u7684\u79C1\u94A5\u4E3A\u7A7A\uFF08userId=${R}\uFF09`),null;let p=U.data.pub_key?.trim(),u={privateKey:C,version:f,...p?{publicKey:p}:{}};return t.set(R,u),u}catch(m){return P(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u4E34\u65F6\u79C1\u94A5\u89E3 prv_key \u5931\u8D25\uFF08userId=${R}\uFF09`,m,w)}}async function M(R,x){g(x?.signal);let w=R.trim();if(w==="")return null;let _=r.get(w),U=x!==void 0&&("staleKey"in x||x.signal===void 0&&x.priority===void 0);_===void 0&&U&&o.shouldRenegotiate(w,x.staleKey,t.get(w)?.privateKey)&&t.delete(w);let l=t.get(w);if(_===void 0&&l!==void 0)return await Promise.resolve(),g(x?.signal),l;if(_===void 0){let m={operationId:`user-key:${i}:${++a}`,controller:new AbortController,priority:x?.priority??"foreground"},C=He(y(w,m),m.controller.signal).finally(()=>{r.get(w)?.operationId===m.operationId&&r.delete(w);});_=Object.assign(m,{promise:C}),r.set(w,_);}(x?.priority??"foreground")==="foreground"&&E(w);let f=await He(_.promise,x?.signal);return g(_.controller.signal),g(x?.signal),f}function I(R){return c?null:t.get(R.trim())??null}function E(R){let x=r.get(R.trim());c||x===void 0||x.priority==="foreground"||(x.priority="foreground",e.cryptoExecutor.promote(x.operationId));}function D(){if(!c){c=true;for(let[R,x]of r)x.controller.abort(),o.reset(R);for(let R of t.keys())o.reset(R);r.clear(),t.clear(),o=ve((R,x)=>R===x),d=null,s=null;}}return {getUserPrivateKey:M,getCachedPrivateKey:I,dispose:D,promote:E}}function _o(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 B(e,"/user_group/encrypt_info",t,r)}function gs(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}var ys=0;function hs(e){let n=e.clientType,t=new Map,r=new Map,o=new Map,i=ve((w,_)=>w===_),a=++ys,c=0,d=false,s=null,g=null;function h(w){if(d||w?.aborted===true)throw new DOMException("\u7FA4\u5BC6\u94A5\u534F\u5546\u5DF2\u53D6\u6D88","AbortError")}function P(){if(h(),s!==null)return Promise.resolve(s);if(g!==null)return g;let w=Promise.resolve().then(()=>(h(),e.crypto.generateTempKeyPair())).then(_=>(h(),s=_,_)).finally(()=>{g===w&&(g=null);});return g=w,w}function y(w,_,U){if(h(U),$$1(_)||_ instanceof Error&&_.name==="AbortError")throw _;return e.onError?.(w,_),null}async function M(w,_){let U=_.controller.signal;h(U);let l;try{l=await P(),h(U);}catch(b){return y(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u751F\u6210\u4E34\u65F6 RSA \u5BC6\u94A5\u5931\u8D25\uFF08groupId=${w}\uFF09`,b,U)}let f;try{f=await _o(e.client,{groupId:w,publicKey:l.publicKeyBase64,clientType:n}),h(U);}catch(b){return y(`\u7FA4\u5BC6\u94A5\u534F\u5546\u8BF7\u6C42\u5F02\u5E38\uFF08groupId=${w}\uFF09`,b,U)}if(f.data===null)return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u4E1A\u52A1\u5931\u8D25\uFF08groupId=${w}\uFF0Ccode=${f.code}\uFF09`),null;let m=f.data,C=String(m.prv_key??m.prvKey??m.private_key??"").trim(),p=String(m.pub_key??m.pubKey??m.public_key??"").trim(),u=String(m.version??"").trim();if(C==="")return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u54CD\u5E94\u7F3A\u5C11 prv_key\uFF08groupId=${w}\uFF09`),null;try{let b=await e.cryptoExecutor.decryptRsa({operationId:_.operationId,generation:e.generation,input:{data:gs(C),privateKey:l.privateKey},priority:_.priority,signal:U});h(U);let A=new TextDecoder().decode(b).trim();if(A==="")return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u89E3\u51FA\u7684\u79C1\u94A5\u4E3A\u7A7A\uFF08groupId=${w}\uFF09`),null;let k={privateKey:A,publicKey:p,version:u};return t.set(w,k),k}catch(b){return y(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u4E34\u65F6\u79C1\u94A5\u89E3 prv_key \u5931\u8D25\uFF08groupId=${w}\uFF09`,b,U)}}async function I(w,_){h(_?.signal);let U=w.trim(),l=r.get(U)??0,f=()=>{if(h(_?.signal),l!==(r.get(U)??0))throw new DOMException("\u7FA4\u5BC6\u94A5\u5DF2\u6E05\u7406","AbortError")};if(U==="")return null;let m=o.get(U),C=_!==void 0&&("staleKey"in _||_.signal===void 0&&_.priority===void 0);m===void 0&&C&&i.shouldRenegotiate(U,_.staleKey,t.get(U)?.privateKey)&&t.delete(U);let p=t.get(U);if(m===void 0&&p!==void 0)return await Promise.resolve(),f(),p;if(m===void 0){let b={operationId:`group-key:${a}:${++c}`,controller:new AbortController,priority:_?.priority??"foreground"},A=He(M(U,b),b.controller.signal).finally(()=>{o.get(U)?.operationId===b.operationId&&o.delete(U);});m=Object.assign(b,{promise:A}),o.set(U,m);}(_?.priority??"foreground")==="foreground"&&D(U);let u=await He(m.promise,_?.signal);return h(m.controller.signal),f(),u}function E(w){return d?null:t.get(w.trim())??null}function D(w){let _=o.get(w.trim());d||_===void 0||_.priority==="foreground"||(_.priority="foreground",e.cryptoExecutor.promote(_.operationId));}function R(){if(!d){d=true;for(let[w,_]of o)_.controller.abort(),i.reset(w);for(let w of t.keys())i.reset(w);o.clear(),t.clear(),i=ve((w,_)=>w===_),s=null,g=null;}}function x(w){let _=w.trim();r.set(_,(r.get(_)??0)+1),o.get(_)?.controller.abort(),o.delete(_),t.delete(_),i.reset(_);}return {getGroupKeys:I,getCachedGroupKeys:E,getCachedGroupKeyVersion:w=>E(w)?.version??null,clearGroupKeys:x,dispose:R,promote:D}}async function cn(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 B(e,"/user/info/other",t,r)).data}function bs(e){let n=e.clientType,t=new Map,r=new Map;async function o(a){try{let d=((await cn(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(c){return e.onError?.(`\u53D6\u5BF9\u7AEF\u516C\u94A5\u8BF7\u6C42\u5F02\u5E38\uFF08userId=${a}\uFF09`,c),null}}function i(a,c){let d=a.trim();if(d==="")return Promise.resolve(null);c?.force===true&&t.delete(d);let s=t.get(d);if(s!==void 0)return Promise.resolve(s);let g=r.get(d);if(g!==void 0)return g;let h=o(d).finally(()=>{r.get(d)===h&&r.delete(d);});return r.set(d,h),h}return {getPeerPublicKey:i}}function ws(e){let n="";for(let t of e)n+=String.fromCharCode(t);return n}function Cs(e){return Uint8Array.from(e,n=>n.charCodeAt(0)&255)}function Ps(e){return e.replace(/(.{64})/g,`$1
|
|
2
2
|
`).trim()}function Is(e){let n=(e??"").trim();if(n==="")throw new Error("RSA \u79C1\u94A5\u4E3A\u7A7A");if(n.includes("-----BEGIN"))return de.pki.privateKeyFromPem(n);let t=n.replace(/\s+/g,""),r=[];try{return de.pki.privateKeyFromAsn1(de.asn1.fromDer(de.util.decode64(t)))}catch(i){r.push(i);}let o=Ps(t);for(let i of ["PRIVATE KEY","RSA PRIVATE KEY"])try{return de.pki.privateKeyFromPem(`-----BEGIN ${i}-----
|
|
3
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*vs(e){let n=Is(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 s=Math.min(d+t,r.length);try{let g=n.decrypt(ws(r.subarray(d,s)),"RSAES-PKCS1-V1_5");o.push(Cs(g)),yield o.length;}catch(g){let
|
|
5
|
-
`).trim()}function xs(e){return e.replace(/-----BEGIN[^-]+-----/g,"").replace(/-----END[^-]+-----/g,"").replace(/\s+/g,"")}function _s(e){let n=
|
|
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*vs(e){let n=Is(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 s=Math.min(d+t,r.length);try{let g=n.decrypt(ws(r.subarray(d,s)),"RSAES-PKCS1-V1_5");o.push(Cs(g)),yield o.length;}catch(g){let h=g instanceof Error?g.message:String(g);throw new Error(`RSA-PKCS1 \u89E3\u5BC6\u5931\u8D25\uFF08\u5BC6\u6587 ${r.length}B\uFF0C\u5757 ${d}..${s}\uFF0CkeySize ${t}B\uFF0C\u79C1\u94A5 ${n.n.bitLength()}bit\uFF09\uFF1A${h}`)}}let i=o.reduce((d,s)=>d+s.length,0),a=new Uint8Array(i),c=0;for(let d of o)a.set(d,c),c+=d.length;return a}function Dt(e){let n=vs(e),t=n.next();for(;!t.done;)t=n.next();return t.value}var Re=16;function As(e){let n="";for(let t of e)n+=String.fromCharCode(t);return n}function Ss(e){let n=new Uint8Array(e.length);for(let t=0;t<e.length;t++)n[t]=e.charCodeAt(t)&255;return n}function Ms(e){return e.replace(/(.{64})/g,`$1
|
|
5
|
+
`).trim()}function xs(e){return e.replace(/-----BEGIN[^-]+-----/g,"").replace(/-----END[^-]+-----/g,"").replace(/\s+/g,"")}function _s(e){let n=Dt({data:e.secretKey,privateKey:e.privateKey});if(n.length<Re)throw new Error(`\u7AEF\u5230\u7AEF\u89E3\u5BC6\u5931\u8D25\uFF1ARSA \u89E3\u51FA\u7684 teaKey \u957F\u5EA6 ${n.length} < ${Re}`);return on(n,e.cipherData)}function ks(e){let n=(e??"").trim();if(n==="")throw new Error("RSA \u516C\u94A5\u4E3A\u7A7A");if(n.includes("-----BEGIN"))return de.pki.publicKeyFromPem(n);let t=n.replace(/\s+/g,""),r=[];try{return de.pki.publicKeyFromAsn1(de.asn1.fromDer(de.util.decode64(t)))}catch(i){r.push(i);}let o=Ms(t);for(let i of ["PUBLIC KEY","RSA PUBLIC KEY"])try{return de.pki.publicKeyFromPem(`-----BEGIN ${i}-----
|
|
6
6
|
${o}
|
|
7
|
-
-----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 ko(){let e=new Uint8Array(Re),n=new Uint8Array(1);for(let t=0;t<Re;t++){let r=0;do globalThis.crypto.getRandomValues(n),r=n[0]??0;while(r===0);e[t]=r;}return e}function Es(e,n){if(n.length===0)throw new Error("RSA \u52A0\u5BC6\uFF1A\u660E\u6587\u4E3A\u7A7A");let t=ks(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 s=Math.min(d+r,n.length),g=t.encrypt(As(n.subarray(d,s)),"RSAES-PKCS1-V1_5");o.push(Ss(g));}let i=o.reduce((d,s)=>d+s.length,0),a=new Uint8Array(i),c=0;for(let d of o)a.set(d,c),c+=d.length;return a}function Rs(e){let n=e.teaKey??ko();if(n.length<Re)throw new Error(`\u7AEF\u5230\u7AEF\u52A0\u5BC6\u5931\u8D25\uFF1AteaKey \u957F\u5EA6 ${n.length} < ${Re}`);let t=n.subarray(0,Re),r=an(t,e.plain);return {secretKey:Es(e.publicKey,t),cipherData:r}}function Ts(e){return on(e.teaKey,e.cipherData)}function Ds(e){return an(e.teaKey,e.plain)}function Us(e){return kt(e.teaKey,e.plain,"encrypt",void 0,e.signal===void 0?{}:{signal:e.signal})}function Os(e){return kt(e.teaKey,e.cipherData,"decrypt",void 0,e.signal===void 0?{}:{signal:e.signal})}function Bs(e){return go(e.teaKey,e.plain)}function Ns(e){return yo(e.teaKey,e.cipherData)}function Ks(){return new Promise((e,n)=>{de.pki.rsa.generateKeyPair({bits:2048,e:65537,workers:-1},(t,r)=>{if(t){n(t);return}e({publicKeyBase64:xs(de.pki.publicKeyToPem(r.publicKey)),privateKey:de.pki.privateKeyToPem(r.privateKey)});});})}function Ls(){return {decryptEndToEnd:_s,encryptEndToEnd:Rs,decryptSymmetric:Ts,encryptSymmetric:Ds,encryptSymmetricChunked:Us,decryptSymmetricChunked:Os,encryptFileSimple:Bs,decryptFileSimple:Ns,randomTeaKey:ko,generateTempKeyPair:Ks,rsaDecryptPkcs1:Tt}}function Dt(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function dn(e,n){return B(e,"/friend/apply/list_paginated",{type:n.listType,page:n.page,page_size:n.pageSize},Dt(n.clientType,"GET"))}function un(e,n){return B(e,"/friend/apply/agree",{id:n.applicationId},Dt(n.clientType,"POST"))}function ln(e,n){return B(e,"/friend/apply/del",{id:n.applicationId},Dt(n.clientType,"POST"))}var Eo=50,Ro=20,To=1,Ut=2,Ot=3,Gs=4,Hs=5,Do=0,Fs=1,qs=2;function js(e){switch(e){case Do:case Fs:case qs:return e;default:return}}var Fe=class extends Error{constructor(t,r){super(`application HTTP \u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`);this.code=t;this.name="ApplicationHttpError";}code},Z=class extends Error{constructor(n){super(`application \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ApplicationMappingError";}};function $(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Uo(e){let n=$(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 Oo(e){let n=$(e.status);if(e.status===void 0||n==="")return true;let t=Number(n),r=js(t);if(r===void 0)throw new Z(`\u672A\u77E5\u7533\u8BF7\u72B6\u6001\uFF1A${n}`);return r===Do}function $s(e){let n=$(e.type);if(n==="")return true;if(Number(n)!==To)throw new Z(`\u8054\u7CFB\u4EBA\u7533\u8BF7\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${n}`);return true}function Js(e){let n=Number($(e.type));if(n!==Ut&&n!==Ot&&n!==Gs&&n!==Hs)throw new Z(`GROUP/CHANNEL \u6DF7\u5408\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${$(e.type)||"<empty>"}`);return n}function Bn(e){if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>Eo)throw new Z(`limit \u5FC5\u987B\u4E3A 1-${Eo}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit};if(!/^[1-9]\d*$/.test(e.cursor))throw new Z("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let n=Number(e.cursor);if(!Number.isSafeInteger(n))throw new Z("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {page:n,pageSize:e.limit}}function Bo(e){if(e!=null&&Array.isArray(e.list))return e.list;let n=e?.count??e?.total,t=n===0||typeof n=="string"&&/^0+$/.test(n.trim());if(e?.list===null&&t)return [];throw new Z("data.list \u5FC5\u987B\u662F\u6570\u7EC4\uFF0C\u6216\u5728 count=0 \u65F6\u4E3A null")}function Bt(e){let n=e.trim();if(n==="")throw new Z("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");return n}function Vs(e){let n=Bt($(e.id)||$(e.aid)),t=$(e.user_id)||$(e.user_info?.user_id),r=$(e.nick_name??e.nickname??e.name)||$(e.user_info?.nick_name??e.user_info?.nickname??e.user_info?.name);if(t===""||r==="")throw new Z(`\u8054\u7CFB\u4EBA\u7533\u8BF7\u4EBA\u8EAB\u4EFD\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let o=$(e.head_img_url??e.avatar)||$(e.user_info?.head_img_url??e.user_info?.avatar),i=$(e.user_info?.mid),a=Uo(e.create_time??e.createTime??e.update_version);return {applicationId:n,applicantId:t,applicantName:r,...o===""?{}:{applicantAvatar:o},...i===""?{}:{applicantDisplayId:i},message:$(e.remarks??e.introduce_self),...a===void 0?{}:{createdAt:a}}}function zs(e){let n=Bt($(e.id)||$(e.aid)),t=$(e.group_id)||$(e.group_info?.group_id);if(t==="")throw new Z(`GROUP id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let r=$(e.user_id)||$(e.user_info?.user_id),o=$(e.nick_name??e.nickname??e.name)||$(e.user_info?.nick_name??e.user_info?.nickname??e.user_info?.name);if(r===""||o==="")throw new Z(`GROUP \u7533\u8BF7\u4EBA\u6216\u9080\u8BF7\u4EBA\u8EAB\u4EFD\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let i=$(e.head_img_url??e.avatar)||$(e.user_info?.head_img_url??e.user_info?.avatar),a=$(e.user_info?.mid),c=$(e.group_info?.name??e.group_info?.group_name);if(c==="")throw new Z(`GROUP \u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let d=$(e.group_info?.head_img_url??e.group_info?.avatar),s=Uo(e.create_time??e.createTime??e.update_version);return {applicationId:n,groupId:t,kind:Number(e.type)===Ot?"invite":"request",actor:{id:r,name:o,...i===""?{}:{avatarUrl:i},...a===""?{}:{displayId:a}},target:{id:t,name:c,...d===""?{}:{avatarUrl:d}},message:$(e.remarks??e.introduce_self),...s===void 0?{}:{createdAt:s}}}async function Nn(e,n,t){let r=await t(e.client,{applicationId:Bt(n),clientType:e.clientType});if(!r.ok)throw new Fe(r.code,r.message)}function Ws(e){async function n(t){let{pageSize:r}=Bn(t),{page:o}=Bn(t);for(let i=0;i<Ro;i+=1){let a=await dn(e.client,{listType:To,page:o,pageSize:r,clientType:e.clientType});if(!a.ok)throw new Fe(a.code,a.message);let c=Bo(a.data),d=c.filter(b=>$s(b)&&Oo(b)).map(Vs),s=c.length<r,g=o+1;if(d.length>0||s)return {items:d,exhausted:s,...s?{}:{nextCursor:String(g)}};o=g;}return {items:[],exhausted:false,nextCursor:String(o)}}return {listPendingApplications:n,acceptApplication:t=>Nn(e,t,un),ignoreApplication:t=>Nn(e,t,ln)}}function Ys(e){async function n(t){let{pageSize:r}=Bn(t),{page:o}=Bn(t);for(let i=0;i<Ro;i+=1){let a=await dn(e.client,{listType:Ut,page:o,pageSize:r,clientType:e.clientType});if(!a.ok)throw new Fe(a.code,a.message);let c=Bo(a.data),d=c.filter(b=>{let P=Js(b);return (P===Ut||P===Ot)&&Oo(b)}).map(zs),s=c.length<r,g=o+1;if(d.length>0||s)return {items:d,exhausted:s,...s?{}:{nextCursor:String(g)}};o=g;}return {items:[],exhausted:false,nextCursor:String(o)}}return {listPendingApplications:n,acceptApplication:t=>Nn(e,t,un),ignoreApplication:t=>Nn(e,t,ln)}}function F(e){let n=typeof e=="string"||typeof e=="number"?String(e).trim():"";return n===""?void 0:n}function Xs(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 Qs(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 Zs(e){let n=Number(e.product_id),t=Xs(e.is_dynamic);return {...Qs(e.config_type),...F(e.appid)===void 0?{}:{appId:F(e.appid)},...Number.isInteger(n)?{productId:n}:{},...F(e.domain)===void 0?{}:{domain:F(e.domain)},...F(e.suffix_address)===void 0?{}:{suffixAddress:F(e.suffix_address)},...F(e.developer_id)===void 0?{}:{developerId:F(e.developer_id)},...F(e.introduction)===void 0?{}:{introduction:F(e.introduction)},...F(e.icon)===void 0?{}:{icon:F(e.icon)},...F(e.icon_small)===void 0?{}:{iconSmall:F(e.icon_small)},...F(e.icon_medium)===void 0?{}:{iconMedium:F(e.icon_medium)},...F(e.icon_large)===void 0?{}:{iconLarge:F(e.icon_large)},...t===void 0?{}:{isDynamic:t},...F(e.lang_types)===void 0?{}:{langTypes:F(e.lang_types)},...F(e.currency_types)===void 0?{}:{currencyTypes:F(e.currency_types)},...F(e.simple_chinese_name)===void 0?{}:{nameZhHans:F(e.simple_chinese_name)},...F(e.unsimplified_chinese_name)===void 0?{}:{nameZhHant:F(e.unsimplified_chinese_name)},...F(e.english_name)===void 0?{}:{nameEn:F(e.english_name)},...F(e.vietnamese_name)===void 0?{}:{nameVi:F(e.vietnamese_name)},...F(e.thai_name)===void 0?{}:{nameTh:F(e.thai_name)},...F(e.h5_url)===void 0?{}:{h5Url:F(e.h5_url)}}}function No(e,n){return Array.isArray(e.mini_program_rel_list)?e.mini_program_rel_list.filter(t=>t!==null&&typeof t=="object").map(t=>Zs(t)):n.source==="info"?[]:void 0}function Ko(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function Lo(e,n){return B(e,"/user_radio/list",{user_id:n.userId,update_version:n.updateVersion,page:n.page,page_size:n.pageSize},Ko(n.clientType,"GET"))}function Go(e,n){return B(e,"/user_radio/info",{radio_id:n.channelId},Ko(n.clientType,"POST"))}var Ho=500,pn=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},ye=class extends Error{constructor(n){super(`CHANNEL profile \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelProfileMappingError";}};function Fo(e,n){let t=typeof e=="string"||typeof e=="number"?String(e).trim():"";if(t==="")throw new ye(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function Te(e){let n=typeof e=="string"||typeof e=="number"?String(e).trim():"";return n===""?void 0:n}function qe(e){return Number(e)===1}function ec(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 nc(e,n){return Number(e)===1?"member":Number(e)===9?"admin":Number(e)===10?"owner":n===false?"guest":"unknown"}function tc(e){let n=e.is_in===void 0?void 0:qe(e.is_in),t=qe(e.radio_user?.is_del),r=qe(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 rc(e,n,t){let r=Te(e.radio_user?.user_id),o=e.radio_setting?.un_speaking_user_ids,i=Te(e.radio_setting?.un_speaking_period);return {role:n,baseState:t,resolvedState:t,allMembersMuted:qe(e.radio_setting?.is_unspeeking_all),currentUserMuted:r!==void 0&&Array.isArray(o)&&o.map(String).includes(r),...i===void 0?{}:{mutePeriod:i}}}function oc(e){if(e!=null)return Number(e)===1?"standard":Number(e)===2?"competition":"unknown"}function ic(e){let n=Te(e);return n!==void 0&&/^\d+$/.test(n)?n.replace(/^0+(?=\d)/,""):void 0}function ac(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 qo(e,n,t){let r=Fo(e.radio_id??e.id,"id"),o=Fo(e.name,"name"),i=e.is_in===void 0?void 0:qe(e.is_in),a=nc(e.radio_user?.role_id,i),c=tc(e),d=rc(e,a,c),s=Va$1({channelState:c,snapshot:d,nowMs:n}),g={...d,resolvedState:s.channelState},b=ic(e.update_version),P=Te(e.head_img_url),y=Te(e.desc),M=Te(e.user_id),I=Number(e.total_users),E=oc(e.type),D=ec(e.radio_setting?.is_unvisit_other),R=e.verify_way===void 0?void 0:Number(e.verify_way),x=R!==void 0&&Number.isSafeInteger(R)?R:void 0,w=Te(e.invite_code),_=No(e,{source:t});return {id:r,name:o,...P===void 0?{}:{avatar:P},...y===void 0?{}:{description:y},...M===void 0?{}:{ownerId:M},...Number.isFinite(I)&&I>=0?{memberCount:I}:{},...x===void 0?{}:{verifyType:x},...w===void 0?{}:{inviteCode:w},role:a,permissions:s.permissions,channelState:s.channelState,allMembersMuted:g.allMembersMuted,...D===void 0?{}:{memberPrivateChatDisabled:D},accessSnapshot:g,...e.radio_user?.is_undisturb===void 0?{}:{muted:qe(e.radio_user.is_undisturb)},...E===void 0?{}:{channelKind:E},...b===void 0?{}:{updateVersion:b},..._===void 0?{}:{miniProgramRels:_}}}function jo(e){return {...e,updatedAt:Date.now()}}function $o(e,n){if(e.accessSnapshot===void 0)return {...e,permissions:Ua$1(e.role,e.channelState)};let t=Va$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 Nt(e,n){let{updatedAt:t,...r}=$o(e,n);return r}function sc(e){let n=new Map,t=new Map,r=new Map,o="0",i=false,a=null,c=0,d=null,s=0;function g(){if(i)return Promise.resolve();if(a!==null)return a;let y=c;return a=(async()=>{if(e.storage!==void 0){let[M,I]=await Promise.all([e.storage.getChannelProfiles(),e.storage.getChannelListVersion()]);if(y!==c)return;for(let E of M)n.set(E.id,$o(E,e.now?.()??Date.now()));o=/^\d+$/.test(I)?I:"0";}i=true;})().finally(()=>{a=null;}),a}function b(y){if(y?.forceRefresh!==true&&d!==null)return d;let M=++s,I=(async()=>{await g();let E=(await e.getUserId()).trim();if(E==="")throw new ye("user_id \u4E0D\u80FD\u4E3A\u7A7A");let D=y?.forceRefresh===true?"0":o,R=[];for(let w=1;;w+=1){let _=await Lo(e.client,{userId:E,updateVersion:D,page:w,pageSize:Ho,clientType:e.clientType});if(!_.ok)throw new pn(_.code,_.message);if(_.data===null)break;if(!Array.isArray(_.data))throw new ye("list data \u5FC5\u987B\u662F\u6570\u7EC4");let U=e.now?.()??Date.now(),l=_.data.map(f=>qo(f,U,"list"));if(R.push(...l),l.length<Ho)break}if(M!==s)return [...n.values()].map(w=>Nt(w,e.now?.()??Date.now()));let x=o;for(let w of R)n.set(w.id,jo(w)),w.updateVersion!==void 0&&(x=ac(x,w.updateVersion));return o=x,e.storage!==void 0&&(await e.storage.saveChannelProfiles([...n.values()]),await e.storage.saveChannelListVersion(o)),[...n.values()].map(w=>Nt(w,e.now?.()??Date.now()))})();return d=I,I.finally(()=>{d===I&&(d=null);}).catch(()=>{}),I}function P(y,M){let I=y.trim();if(I==="")return Promise.reject(new ye("channel id \u4E0D\u80FD\u4E3A\u7A7A"));let E=M?.forceRefresh===true;if(!E){let x=t.get(I);if(x!==void 0)return x}let D=(r.get(I)??0)+1;E&&r.set(I,D);let R=(async()=>{await g();let x=n.get(I);if(!E&&x!==void 0&&x.miniProgramRels!==void 0)return Nt(x,e.now?.()??Date.now());let w=await Go(e.client,{channelId:I,clientType:e.clientType});if(!w.ok)throw new pn(w.code,w.message);if(w.data===null||w.data===void 0)throw new ye("info data \u4E0D\u80FD\u4E3A\u7A7A");let _=qo(w.data,e.now?.()??Date.now(),"info");if(_.id!==I)throw new ye(`info id \u4E0D\u5339\u914D\uFF1A\u8BF7\u6C42 ${I}\uFF0C\u54CD\u5E94 ${_.id}`);if((r.get(I)??D)===D){let U=jo(_);n.set(I,U),await e.storage?.saveChannelProfiles([U]);}return _})().finally(()=>{t.get(I)===R&&t.delete(I);});return r.set(I,D),t.set(I,R),R}return {listProfiles:b,getProfile:P,clearCache(){c+=1,s+=1;for(let y of new Set([...n.keys(),...t.keys(),...r.keys()]))r.set(y,(r.get(y)??0)+1);n.clear(),t.clear(),d=null,o="0",i=true,a=null;}}}function Jo(e,n){return dn(e,{listType:2,page:n.page,pageSize:n.pageSize,clientType:n.clientType})}function Vo(e,n){return un(e,n)}function zo(e,n){return ln(e,n)}var cc=20,Wo=50,dc=20,uc=2,lc=3,Xo=4,pc=5,Qo=0,fc=1,mc=2;function gc(e){switch(e){case Qo:case fc:case mc:return e;default:return}}var fn=class extends Error{constructor(t,r){super(`CHANNEL join application HTTP \u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`);this.code=t;this.name="ChannelJoinApplicationHttpError";}code},re=class extends Error{constructor(n){super(`CHANNEL join application \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelJoinApplicationMappingError";}};function J(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function yc(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 hc(e){let n=J(e.status);if(e.status===void 0||n==="")return true;let t=Number(n),r=gc(t);if(r===void 0)throw new re(`\u672A\u77E5\u7533\u8BF7\u72B6\u6001\uFF1A${n}`);return r===Qo}function bc(e){let n=Number(J(e.type));if(n!==uc&&n!==lc&&n!==Xo&&n!==pc)throw new re(`GROUP/CHANNEL \u6DF7\u5408\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${J(e.type)||"<empty>"}`);return n}function wc(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 re("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");if(t==="")throw new re(`\u7533\u8BF7\u4EBA id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);if(o==="")throw new re(`CHANNEL id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let i=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),c=J(e.user_info?.mid),d=J(r?.name)||J(r?.radio_name)||J(r?.channel_name)||o,s=J(r?.head_img_url)||J(r?.avatar),g=yc(e.create_time??e.createTime);return {applicationId:n,applicantId:t,applicantName:i,...a===""?{}:{applicantAvatar:a},...c===""?{}:{applicantDisplayId:c},channelId:o,channelName:d,...s===""?{}:{channelAvatar:s},message:J(e.remarks)||J(e.introduce_self),...g===void 0?{}:{createdAt:g}}}function Yo(e){if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>Wo)throw new re(`limit \u5FC5\u987B\u4E3A 1-${Wo}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit||cc};if(!/^[1-9]\d*$/.test(e.cursor))throw new re("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let n=Number(e.cursor);if(!Number.isSafeInteger(n))throw new re("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {page:n,pageSize:e.limit}}function Cc(e){if(e!=null&&Array.isArray(e.list))return e.list;let n=e?.count??e?.total,t=n===0||typeof n=="string"&&/^0+$/.test(n.trim());if(e?.list===null&&t)return [];throw new re("data.list \u5FC5\u987B\u662F\u6570\u7EC4\uFF0C\u6216\u5728 count=0 \u65F6\u4E3A null")}function Pc(e){let n=e.trim();if(n==="")throw new re("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");return n}function Ic(e){async function n(r){let{pageSize:o}=Yo(r),{page:i}=Yo(r);for(let a=0;a<dc;a+=1){let c=await Jo(e.client,{page:i,pageSize:o,clientType:e.clientType});if(!c.ok)throw new fn(c.code,c.message);let d=Cc(c.data),s=d.filter(P=>bc(P)===Xo&&hc(P)).map(wc),g=d.length<o,b=i+1;if(s.length>0||g)return {items:s,exhausted:g,...g?{}:{nextCursor:String(b)}};i=b;}return {items:[],exhausted:false,nextCursor:String(i)}}async function t(r,o){let i=await o(e.client,{applicationId:Pc(r),clientType:e.clientType});if(!i.ok)throw new fn(i.code,i.message)}return {listJoinApplications:n,acceptJoinApplication:r=>t(r,Vo),ignoreJoinApplication:r=>t(r,zo)}}function Kn(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function Kt(e,n){return B(e,"/user_radio/users",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},Kn(n.clientType,"GET"))}function Lt(e,n){return B(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"},Kn(n.clientType,"POST"))}function Zo(e,n){return B(e,"/user_radio/admins",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},Kn(n.clientType,"GET"))}function ei(e,n){return B(e,"/user_radio/user/infos",{radio_id:n.channelId,user_ids:n.userIds.join(",")},Kn(n.clientType,"POST"))}var Ln=18,vc=12,Ac=300*1e3,Sc=32,mn=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},Y=class extends Error{constructor(n){super(`CHANNEL member \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelMemberMappingError";}};function he(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Mc(e){return Number(e)===1?"member":Number(e)===9?"admin":Number(e)===10?"owner":"unknown"}function xc(e){let n=he(e);return /^\d+$/.test(n)?n.replace(/^0+(?=\d)/,""):void 0}function Gt(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 ni(e,n){let t=he(e.radio_id);if(t==="")throw new Y("radio_id \u4E0D\u80FD\u4E3A\u7A7A");if(t!==n)throw new Y(`\u6210\u5458\u9891\u9053 ${t} \u4E0E\u8BF7\u6C42\u9891\u9053 ${n} \u4E0D\u4E00\u81F4`);let r=he(e.user_id)||he(e.user_info?.user_id);if(r==="")throw new Y("user_id \u4E0D\u80FD\u4E3A\u7A7A");if(e.is_master!==void 0){let s=Number(e.is_master);if(s!==0&&s!==1)throw new Y(`is_master \u975E\u6CD5\uFF1A${he(e.is_master)}`)}let o=he(e.nick_name),i=he(e.user_info?.nick_name)||he(e.user_info?.name),a=he(e.user_info?.head_img_url),c=xc(e.update_version),d=Number(e.join_type);return {userId:r,...o===""?{}:{nickname:o},displayName:o||i||r,...a===""?{}:{avatar:a},role:Mc(e.role_id),...Number.isInteger(d)?{joinType:d}:{},...c===void 0?{}:{updateVersion:c}}}function _c(e){if(e.channelId.trim()==="")throw new Y("channelId \u4E0D\u80FD\u4E3A\u7A7A");if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>Ln)throw new Y(`limit \u5FC5\u987B\u4E3A 1-${Ln}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit};if(!/^[1-9]\d*$/.test(e.cursor))throw new Y("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let t=Number(e.cursor);if(!Number.isSafeInteger(t))throw new Y("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {page:t,pageSize:e.limit}}function ti(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 kc(e){let n=e.now??(()=>Date.now()),t=e.isActive??(()=>true),r=e.cacheTtlMs??Ac,o=new Map,i=new Map,a=new Map,c=new Map,d=new Map,s=new Set,g=new Set,b=(f,m)=>`${f}:${m}`;function P(f){let m=d.get(f);return m!==void 0?m:(d.set(f,0),0)}function y(f){let m=f.trim();if(m==="")throw new Y("channelId \u4E0D\u80FD\u4E3A\u7A7A");return m}function M(f){for(i.delete(f.channelId),i.set(f.channelId,f);i.size>Sc;){let m=i.keys().next().value;if(m===void 0)break;i.delete(m);}}function I(f){let m=i.get(f);if(m!==void 0)return M(m),Promise.resolve(m);if(g.has(f)||e.storage?.getChannelMemberSnapshot===void 0)return Promise.resolve(null);let C=a.get(f);if(C!==void 0)return C;let p=P(f),u=e.storage.getChannelMemberSnapshot(f).then(h=>!t()||h===null||h.channelId!==f||p!==P(f)||g.has(f)?null:(M(h),h)).finally(()=>{a.get(f)===u&&a.delete(f);});return a.set(f,u),u}function E(f,m){let C=f.map(u=>u.userId),p=new Map(f.map(u=>[u.userId,u]));for(let u of m){p.has(u.userId)||C.push(u.userId);let h=p.get(u.userId);(h===void 0||Gt(u.updateVersion,h.updateVersion)>=0)&&p.set(u.userId,u);}return C.map(u=>p.get(u))}async function D(f,m){let C=await Ca$1(m);return f.filter(p=>C.match(p.displayName)!==null||C.match(p.userId,{pinyin:false})!==null)}async function R(f,m,C={}){if(!t()||m!==P(f.channelId))return;let p=f.channelId,u=g.has(p),h=C.allowPersistentRebuild===true&&u&&e.storage?.deleteChannelMemberSnapshot===void 0&&e.storage?.saveChannelMemberSnapshot!==void 0;(!u||h)&&await e.storage?.saveChannelMemberSnapshot?.(f),t()&&m===P(p)&&(M(f),C.allowPersistentRebuild===true&&(!u||e.storage?.deleteChannelMemberSnapshot===void 0)&&g.delete(p));}async function x(f,m,C,p,u=false,h){let A=await I(f);if(!t()||C!==P(f))return;let k=n(),v=h!==void 0&&A?.nextCursor===h,S=u&&A!==null&&!v,T=p!==void 0&&!S?p.nextCursor:A?.nextCursor,O={channelId:f,items:E(A?.items??[],m),...T===void 0?{}:{nextCursor:T},exhausted:S?A.exhausted:p?.exhausted??A?.exhausted??false,updatedAt:k};await R(O,C);}async function w(f,m,C){if(!t()||C!==P(f))return [...m];let p=n(),u=p+r,h=[],A=[],k=new Map;for(let v of m){let S=b(f,v.userId),T=o.get(S)?.member;if(T!==void 0&&Gt(v.updateVersion,T.updateVersion)<0){A.push(T);continue}h.push({channelId:f,...v,updatedAt:p}),A.push(v),k.set(S,{member:v,expiresAt:u});}if(h.length>0&&t()&&C===P(f)&&!s.has(f)&&(await e.storage?.saveChannelMembers?.(h),e.storage?.getChannelMembers!==void 0&&t()&&C===P(f))){let v=await e.storage.getChannelMembers(f,h.map(T=>T.userId)),S=new Map(v.map(T=>{let{channelId:O,updatedAt:N,...j}=T;return [j.userId,{member:j,updatedAt:N}]}));for(let T=0;T<A.length;T+=1){let O=A[T];if(O===void 0)continue;let N=S.get(O.userId);N===void 0||Gt(N.member.updateVersion,O.updateVersion)<=0||(A[T]=N.member,k.set(b(f,O.userId),{member:N.member,expiresAt:N.updatedAt+r}));}}if(t()&&C===P(f))for(let[v,S]of k)o.set(v,S);return A}async function _(f,m){let C=y(f.channelId),{page:p,pageSize:u}=_c({...f,channelId:C}),h=P(C),A=await m(C,p,u);if(!A.ok)throw new mn(A.code,A.message);if(A.data!==null&&!Array.isArray(A.data))throw new Y("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let k=ti((A.data??[]).map(T=>ni(T,C))),v=await w(C,k,h),S=(A.data??[]).length<u;return {items:v,exhausted:S,...S?{}:{nextCursor:String(p+1)}}}function U(f){let m=y(f),C=c.get(m);if(C!==void 0)return C;let p=P(m),u=(async()=>{let h,A=false,k=[];for(let S=0;S<vc&&!A;S+=1){let T=await _({channelId:m,limit:Ln,...h===void 0?{}:{cursor:h}},(O,N,j)=>Kt(e.client,{channelId:O,page:N,pageSize:j,clientType:e.clientType}));if(!t()||p!==P(m))throw new Y("\u6210\u5458\u5FEB\u7167\u9884\u53D6\u5DF2\u56E0\u6210\u5458\u53D8\u5316\u5931\u6548");k=E(k,T.items),h=T.nextCursor,A=T.exhausted;}let v={channelId:m,items:k,...h===void 0?{}:{nextCursor:h},exhausted:A,updatedAt:n()};return await R(v,p,{allowPersistentRebuild:true}),{items:v.items,...v.nextCursor===void 0?{}:{nextCursor:v.nextCursor},exhausted:v.exhausted}})().finally(()=>{c.get(m)===u&&c.delete(m);});return c.set(m,u),u}async function l(f){let m=y(f),C=P(m)+1;d.set(m,C),s.add(m),g.add(m),i.delete(m),a.delete(m),c.delete(m);let p=`${m}:`;for(let u of o.keys())u.startsWith(p)&&o.delete(u);e.storage?.deleteChannelMembers===void 0&&e.storage?.deleteChannelMemberSnapshot===void 0||(await Promise.all([e.storage.deleteChannelMembers?.(m),e.storage.deleteChannelMemberSnapshot?.(m)]),C===P(m)&&(e.storage?.deleteChannelMembers!==void 0&&s.delete(m),e.storage?.deleteChannelMemberSnapshot!==void 0&&g.delete(m)));}return {async prefetchMembers(f){let m=y(f),C=await I(m),p=g.has(m);C!==null&&!p&&C.updatedAt+r>n()||await U(m);},async getCachedMembers(f){let m=y(f.channelId),C=await I(m);if(C===null)return null;let p=f.query?.trim()??"";return p===""&&g.has(m)?null:p===""?{items:[...C.items],...C.nextCursor===void 0?{}:{nextCursor:C.nextCursor},exhausted:C.exhausted}:{items:await D(C.items,p),exhausted:true}},async refreshMembers(f){let m=y(f.channelId),C=f.query?.trim()??"";if(C==="")return U(m);let p=P(m),[u,h]=await Promise.all([_({channelId:m,query:C,limit:Ln},(k,v,S)=>Lt(e.client,{channelId:k,query:C,page:v,pageSize:S,updateVersion:"0",clientType:e.clientType})),I(m)]),A=h===null?[]:await D(h.items,C);return await x(m,u.items,p),{...u,items:E(u.items,A)}},async listMembers(f){let m=y(f.channelId),C={...f,channelId:m},p=P(m),u=await _(C,(h,A,k)=>Kt(e.client,{channelId:h,page:A,pageSize:k,clientType:e.clientType}));return await x(m,u.items,p,u,C.cursor!==void 0,C.cursor),u},async searchMembers(f){let m=f.query.trim();if(m==="")return Promise.reject(new Y("\u641C\u7D22\u5173\u952E\u8BCD\u4E0D\u80FD\u4E3A\u7A7A"));let C=y(f.channelId),p={...f,channelId:C},u=P(C),h=await _(p,(A,k,v)=>Lt(e.client,{channelId:A,query:m,page:k,pageSize:v,updateVersion:"0",clientType:e.clientType}));return await x(C,h.items,u),h},listAdmins:f=>_(f,(m,C,p)=>Zo(e.client,{channelId:m,page:C,pageSize:p,clientType:e.clientType})),async getMembersByIds(f,m,C){let p=f.trim();if(p==="")throw new Y("channelId \u4E0D\u80FD\u4E3A\u7A7A");let u=[...new Set(m.map(v=>v.trim()).filter(Boolean))];if(u.length===0)return [];let h=C?.forceRefresh===true,A=new Map,k=[];for(let v of u){let S=o.get(b(p,v));!h&&S!==void 0&&S.expiresAt>n()?A.set(v,S.member):k.push(v);}if(!h&&k.length>0&&!s.has(p)&&e.storage?.getChannelMembers!==void 0){let v=P(p),S=await e.storage.getChannelMembers(p,k);if(t()&&v===P(p))for(let{channelId:T,updatedAt:O,...N}of S)T===p&&(o.set(b(p,N.userId),{member:N,expiresAt:O+r}),O+r>n()&&A.set(N.userId,N));k=k.filter(T=>!A.has(T));}if(!t())return u.flatMap(v=>A.has(v)?[A.get(v)]:[]);if(k.length>0){let v=P(p),S=await ei(e.client,{channelId:p,userIds:k,clientType:e.clientType});if(!S.ok)throw new mn(S.code,S.message);if(S.data!==null&&!Array.isArray(S.data))throw new Y("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let T=ti((S.data??[]).map(L=>ni(L,p))),O=k.filter(L=>!T.some(X=>X.userId===L)),N=h&&O.length>0&&v===P(p),j;N?(await l(p),j=T):j=await w(p,T,v);for(let L of j)A.set(L.userId,L);}return u.flatMap(v=>A.has(v)?[A.get(v)]:[])},invalidateChannelMembers:l,clearCache(){let f=new Set(d.keys());for(let m of o.keys())f.add(m.slice(0,m.indexOf(":")));for(let m of i.keys())f.add(m);for(let m of a.keys())f.add(m);for(let m of c.keys())f.add(m);for(let m of s)f.add(m);for(let m of g)f.add(m);for(let m of f)d.set(m,P(m)+1);o.clear(),i.clear(),a.clear(),c.clear(),s.clear(),g.clear();}}}function ri(e){return {responseMode:"strict",method:"POST",...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function oi(e,n){return B(e,"/user_radio/member/list",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},ri(n.clientType))}function ii(e,n){return B(e,"/user_radio/member/search",{radio_id:n.channelId,search_name:n.query,page:n.page,page_size:n.pageSize},ri(n.clientType))}var ai=18,Gn=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 je(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Ec(e){let n=je(e.user_id);if(n==="")throw new le("user_id \u4E0D\u80FD\u4E3A\u7A7A");let t=je(e.radio_user_nickname)||je(e.nick_name)||je(e.name)||je(e.mid)||n,r=je(e.head_img_url);return {userId:n,displayName:t,...r===""?{}:{avatar:r}}}function Rc(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>ai)throw new le(`limit \u5FC5\u987B\u4E3A 1-${ai}`);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 Tc(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 Dc(e){async function n(t,r){let{channelId:o,page:i,pageSize:a}=Rc(t),c=await r({channelId:o,page:i,pageSize:a,clientType:e.clientType});if(!c.ok)throw new Gn(c.code,c.message);if(c.data!==null&&!Array.isArray(c.data))throw new le("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let d=c.data??[],s=Tc(d.map(Ec)),g=d.length<a;return {items:s,exhausted:g,...g?{}:{nextCursor:String(i+1)}}}return {listMentionMembers:t=>n(t,r=>oi(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=>ii(e.client,{...o,query:r}))}}}function Uc(e){let n=e.fetch??((t,r)=>globalThis.fetch(t,r));return {async postProtobuf({path:t,body:r,headers:o,signal:i}){let a=await e.getBaseUrl();if(!a)throw new Error("CmHttp.postProtobuf\uFF1A\u7F3A\u5C11 CM HTTP \u57FA\u5740\uFF08getCmHttpBaseUrl \u4E3A\u7A7A\uFF09");let c={"Content-Type":"application/octet-stream"},d=e.getClientType?.();d!==void 0&&(c["Client-type"]=String(d)),Object.assign(c,o);let s=await e.getAuth();s!==null&&s.token!==""&&s.userId!==""&&(c.Authorization=`${s.token}:${s.userId}`);let g=await n(`${a}${t}`,{method:"POST",body:r,headers:c,signal:i});if(!g.ok)throw new aa$1({path:t,status:g.status,statusText:g.statusText});let b=await g.arrayBuffer();return new Uint8Array(b)}}}var pe=class extends Error{constructor(n){super(n),this.name="DirectoryMappingError";}};function Hn(e,n){if(e===null||typeof e!="object"||Array.isArray(e))throw new pe(`${n} \u5FC5\u987B\u662F\u5BF9\u8C61`);return e}function te(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function gn(e){let n=te(e);return n===""?void 0:n}function Oc(e){let n=Hn(e,"\u8054\u7CFB\u4EBA\u76EE\u5F55\u9879"),t=n.user_info===void 0?n:Hn(n.user_info,"\u8054\u7CFB\u4EBA user_info"),r=te(t.user_id??n.friend_user_id??n.user_id);if(r==="")throw new pe("\u8054\u7CFB\u4EBA\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A user_id");let o=te(n.remark_name)||te(n.contact_name)||te(t.nick_name)||te(t.username)||te(t.mid)||r,i=te(t.nick_name)||te(t.username)||te(t.mid)||r,a=gn(t.head_img_url),c=gn(t.username)??gn(t.mid);return {id:r,kind:"individual",displayName:o,cardDisplayName:i,...a===void 0?{}:{avatarUrl:a},...c===void 0?{}:{username:c}}}function Bc(e){let n=Hn(e,"\u7FA4\u7EC4\u76EE\u5F55\u9879"),t=te(n.group_id);if(t==="")throw new pe("\u7FA4\u7EC4\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A group_id");let r=gn(n.head_img_url),o=te(n.name)||t;return {id:t,kind:"group",displayName:o,cardDisplayName:o,...r===void 0?{}:{avatarUrl:r}}}function Nc(e){let n=Hn(e,"\u793E\u7FA4\u76EE\u5F55\u9879"),t=te(n.radio_id??n.id);if(t==="")throw new pe("\u793E\u7FA4\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A radio_id/id");let r=gn(n.head_img_url),o=te(n.name)||t;return {id:t,kind:"channel",displayName:o,cardDisplayName:o,...r===void 0?{}:{avatarUrl:r}}}function Kc(e,n){if(!Number.isSafeInteger(e)||e<1)throw new pe("\u76EE\u5F55 page \u5FC5\u987B\u662F\u6B63\u6574\u6570");if(!Number.isSafeInteger(n)||n<1||n>100)throw new pe("\u76EE\u5F55 pageSize \u5FC5\u987B\u662F 1-100 \u7684\u6574\u6570")}function Lc(e){return {async list(n){Kc(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 B(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 pe(`${n.kind} \u76EE\u5F55 data \u5FC5\u987B\u662F\u6570\u7EC4`);let a=n.kind==="individual"?Oc:n.kind==="group"?Bc:Nc,c=new Map;for(let s of i){let g=a(s);c.set(g.id,g);}let d=i.length<n.pageSize;return {items:[...c.values()],...d?{}:{nextPage:n.page+1},exhausted:d}}}}var Gc="https://api.giphy.com/v1/gifs",$e=class extends Error{constructor(t){super(t==="core"?"\u8868\u60C5 Core API \u672A\u914D\u7F6E":"Giphy API key \u672A\u914D\u7F6E");this.provider=t;this.name="ExpressionProviderUnavailableError";}provider},z=class extends Error{constructor(n){super(n),this.name="ExpressionMappingError";}},De=class extends Error{constructor(t,r){super(`Giphy \u8BF7\u6C42\u5931\u8D25\uFF1AHTTP ${t}${r?` ${r}`:""}`);this.status=t;this.name="GiphyHttpError";}status};function ie(e,n){if(e===null||typeof e!="object"||Array.isArray(e))throw new z(`${n} \u5FC5\u987B\u662F\u5BF9\u8C61`);return e}function oe(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Se(e,n){let t=oe(e);if(t==="")throw new z(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function Ve(e){let n=oe(e);return n===""?void 0:n}function Je(e,n){let t=Number(e);if(!Number.isSafeInteger(t)||t<0)throw new z(`${n} \u5FC5\u987B\u662F\u975E\u8D1F\u6574\u6570`);return t}function Hc(e,n){let t=Number(e);if(!Number.isSafeInteger(t))throw new z(`${n} \u5FC5\u987B\u662F\u5B89\u5168\u6574\u6570`);return t}function si(e,n){let t=Number(e);if(!Number.isFinite(t)||t<=0)throw new z(`${n} \u5FC5\u987B\u662F\u6709\u9650\u6B63\u6570`);return t}function Ue(e,n){let t=Se(e,n),r;try{r=new URL(t);}catch(o){throw new z(`${n} \u4E0D\u662F\u5408\u6CD5 URL\uFF1A${o instanceof Error?o.message:String(o)}`)}if(r.protocol!=="https:"&&r.protocol!=="http:")throw new z(`${n} \u53EA\u652F\u6301 HTTP(S)`);if(r.username!==""||r.password!=="")throw new z(`${n} \u4E0D\u5141\u8BB8\u5305\u542B URL \u51ED\u636E`);return t}function Ht(e,n){if(e==null)return [];if(Array.isArray(e))return e;let r=ie(e,n).list;if(r==null)return [];if(!Array.isArray(r))throw new z(`${n}.list \u5FC5\u987B\u662F\u6570\u7EC4\u6216 null`);return r}function yn(e){return e==="sticker"?1:e==="gif"?2:3}function ci(e){let n=ie(e,"\u8D34\u56FE\u5305"),t=Ve(n.onlineTime??n.online_time),r=n.isPlatformIssued??n.is_platform_issued;return {id:Se(n.packId??n.pack_id,"\u8D34\u56FE\u5305 packId"),nameZh:oe(n.nameZh??n.name_zh),nameEn:oe(n.nameEn??n.name_en),nameTh:oe(n.nameTh??n.name_th),nameTw:oe(n.nameTw??n.name_tw),nameVi:oe(n.nameVi??n.name_vi),publisher:oe(n.publisher),trayIconUrl:Ue(n.trayIcon??n.tray_icon,"\u8D34\u56FE\u5305 trayIcon"),sortWeight:Hc(n.sortWeight??n.sort_weight??0,"\u8D34\u56FE\u5305 sortWeight"),isPlatformIssued:r===true||Number(r)===1,...t===void 0?{}:{onlineTime:t},stickerCount:Je(n.stickerCount??n.sticker_count??0,"\u8D34\u56FE\u5305 stickerCount")}}function Ft(e,n,t,r){let o=ie(e,t),i=Ve(o.id),a={...i===void 0?{}:{recordId:i},url:Ue(o.imgUrl??o.img_url,`${t} imgUrl`),width:Je(o.width??0,`${t} width`),height:Je(o.height??0,`${t} height`)};if(n==="sticker")return {kind:n,...a,packageId:Se(r??o.packId??o.pack_id,`${t} packageId`),resourceId:Se(o.fileName??o.file_name,`${t} resourceId`)};let c=Ve(o.fileName??o.file_name);return {kind:n,...a,...c===void 0?{}:{resourceId:c}}}function Fc(e,n){if(n!=="emoji")return Ft(e,n,"\u6700\u8FD1\u4F7F\u7528\u9879");let t=ie(e,"\u6700\u8FD1 emoji"),r=Ve(t.id);return {kind:"emoji",...r===void 0?{}:{recordId:r},token:Se(t.imgUrl??t.img_url,"\u6700\u8FD1 emoji token"),resourceId:Se(t.fileName??t.file_name,"\u6700\u8FD1 emoji resourceId")}}function di(e,n,t){let r=yn(n);return Ht(e,t).filter(o=>{let i=ie(o,`${t} item`),a=i.favType??i.fav_type;if(a==null)return true;let c=Number(a);if(c!==1&&c!==2&&c!==3)throw new z(`${t} item.favType \u5FC5\u987B\u662F 1\u30012 \u6216 3`);return c===r})}function li(e){return {fav_type:yn(e.kind),pack_id:e.kind==="sticker"?e.packageId:"",img_url:Ue(e.url,"\u8868\u60C5\u5199\u5165 imgUrl"),file_name:e.resourceId??"",width:e.width,height:e.height}}function qc(e){return e.kind!=="emoji"?li(e):{fav_type:yn(e.kind),pack_id:"",img_url:e.token,file_name:e.resourceId,width:0,height:0}}function ui(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 z("\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 jc(e){let n=ie(e,"Giphy item"),t=ie(n.images,"Giphy item.images"),r=ie(t.original,"Giphy item.images.original"),o=t.fixed_width,i=o==null?void 0:ie(o,"Giphy item.images.fixed_width"),a=Ue(r.url,"Giphy original.url"),c=i===void 0?void 0:Ve(i.url),d=i===void 0?void 0:Ve(i.webp),s=d===void 0?c===void 0?a:Ue(c,"Giphy fixed_width.url"):Ue(d,"Giphy fixed_width.webp"),g=d!==void 0&&c!==void 0&&c!==d?Ue(c,"Giphy fixed_width.url"):void 0;return {kind:"gif",resourceId:Se(n.id,"Giphy item.id"),title:oe(n.title)||"GIF",url:a,previewUrl:s,...g===void 0?{}:{fallbackPreviewUrl:g},width:si(r.width,"Giphy original.width"),height:si(r.height,"Giphy original.height")}}function $c(e,n){let t=ie(e,"Giphy response");if(!Array.isArray(t.data))throw new z("Giphy response.data \u5FC5\u987B\u662F\u6570\u7EC4");let r=ie(t.pagination,"Giphy response.pagination"),o=Je(r.offset??n,"Giphy pagination.offset");if(o!==n)throw new z("Giphy pagination.offset \u4E0E\u8BF7\u6C42 offset \u4E0D\u4E00\u81F4");let i=Je(r.count??t.data.length,"Giphy pagination.count"),a=Je(r.total_count??r.totalCount??0,"Giphy pagination.total_count"),c=new Map;for(let s of t.data){let g=jc(s);c.set(g.resourceId,g);}let d=o+i;return {items:[...c.values()],offset:o,totalCount:a,...i>0&&d<a?{nextOffset:d}:{}}}function Jc(e){async function n(r,o,i){if(e.coreClient===void 0)throw new $e("core");let a=await B(e.coreClient,r,o,{method:"POST",responseMode:"strict"});if(!a.ok)throw new Q(i,a.code,a.message);return a.data}async function t(r,o){let i=e.giphyApiKey?.trim()??"";if(i==="")throw new $e("giphy");let a=e.fetcher??globalThis.fetch;if(typeof a!="function")throw new $e("giphy");let c=new URLSearchParams({api_key:i,limit:String(o.limit),offset:String(o.offset),...o.query===void 0?{}:{q:o.query,lang:"en"}}),d;try{d=await a(`${Gc}/${r}?${c.toString()}`);}catch{throw new De(0,"network failure")}let s;try{s=await d.json();}catch(b){throw d.ok?new z(`Giphy response \u4E0D\u662F JSON\uFF1A${b instanceof Error?b.message:String(b)}`):new De(d.status,"")}if(!d.ok){let b=s!==null&&typeof s=="object"&&!Array.isArray(s)?s.meta:void 0,P=b!==null&&typeof b=="object"&&!Array.isArray(b)?oe(b.msg):"";throw new De(d.status,P)}let g=s!==null&&typeof s=="object"&&!Array.isArray(s)?s.meta:void 0;if(g!==null&&typeof g=="object"&&!Array.isArray(g)){let b=g,P=Number(b.status);if(Number.isFinite(P)&&P!==200)throw new De(P,oe(b.msg))}return $c(s,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(ci)};if(o==null)return {version:"",items:[]};let i=ie(o,"\u8D34\u56FE\u5305\u5217\u8868 data"),a=i.list??i.packs;if(a==null)return {version:oe(i.version),items:[]};if(!Array.isArray(a))throw new z("\u8D34\u56FE\u5305\u5217\u8868 data.list \u5FC5\u987B\u662F\u6570\u7EC4\u6216 null");return {version:oe(i.version),items:a.map(ci)}},async listStickerItems(r){let o=await n("/user/sticker/item_list",{pack_id:r},"\u8D34\u56FE\u660E\u7EC6\u5217\u8868");return Ht(o,"\u8D34\u56FE\u660E\u7EC6\u5217\u8868 data").map(i=>Ft(i,"sticker","\u8D34\u56FE\u660E\u7EC6",r))},async listFavorites(r){let o=await n("/user/sticker/my_fav/list",{fav_type:yn(r)},"\u8868\u60C5\u6536\u85CF\u5217\u8868");return di(o,r,"\u8868\u60C5\u6536\u85CF\u5217\u8868 data").map(i=>Ft(i,r,"\u8868\u60C5\u6536\u85CF\u9879"))},async addFavorite(r){await n("/user/sticker/my_fav/add",li(r),"\u6DFB\u52A0\u8868\u60C5\u6536\u85CF");},async deleteFavorites(r){await n("/user/sticker/my_fav/del",{ids:ui(r)},"\u5220\u9664\u8868\u60C5\u6536\u85CF");},async listRecent(r){let o=await n("/user/sticker/recent/list",{fav_type:yn(r)},"\u6700\u8FD1\u4F7F\u7528\u5217\u8868");return di(o,r,"\u6700\u8FD1\u4F7F\u7528\u5217\u8868 data").map(i=>Fc(i,r))},async reportRecent(r){await n("/user/sticker/recent/report",qc(r),"\u4E0A\u62A5\u6700\u8FD1\u4F7F\u7528");},async deleteRecent(r){await n("/user/sticker/recent/del",{ids:ui(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 Ht(o,"\u5FEB\u6377\u56DE\u5E94 Top data").map(i=>{let a=ie(i,"\u5FEB\u6377\u56DE\u5E94 Top \u9879");return Se(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 pi(e,n){let t=n.clientType===void 0?void 0:{headers:{"Client-type":String(n.clientType)}};return (await B(e,"/user_group/info",{group_id:n.groupId},t)).data}function Vc(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 zc(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 fi=200,Wc=50;async function mi(e,n){let t=String(n.updateVersion??0).trim()||"0",r=[],o;for(let i=1;i<=Wc;i++){let a={group_id:n.groupId,update_version:t,page:String(i),page_size:String(fi)},{data:c}=await B(e,"/user_group/user/list",a,{method:"GET",...n.clientType===void 0?{}:{headers:{"Client-type":String(n.clientType)}}});if(c===null)break;let d=Vc(c);if(d.length===0)break;for(let g of d){let b=String(g.user_id??g.userId??"").trim();if(b==="")continue;let P={userId:b,nickName:String(g.nick_name??g.nickName??"").trim()},y=zc(g.join_type??g.joinType);y!==void 0&&(P.joinType=y),r.push(P);}let s=c.update_version;if(typeof s=="number"&&(o=s),d.length<fi)break}return {members:r,updateVersion:o}}async function gi(e,n){return (await B(e,"/user/info/friend",{friend_user_id:n.userId})).data}var Yc=1440*60*1e3;function qt(e,n,t=Yc){let r=new Map,o=new Map,i=new Map;function a(g){let b=(i.get(g)??0)+1;i.set(g,b);let P=e(g).then(y=>(y!==null&&i.get(g)===b&&(r.set(g,y),n?.save(g,y).catch(()=>{})),y)).finally(()=>{o.get(g)===P&&o.delete(g);});return o.set(g,P),P}return {get:async(g,b)=>{if(b?.forceRefresh===true)return a(g);let P=r.get(g);if(P!==void 0)return P;let y=o.get(g);if(y!==void 0)return y;if(n!==void 0)try{let M=i.get(g)??0,I=await n.get(g);if(I!==null)return (i.get(g)??0)===M&&(r.set(g,I.value),Date.now()-I.updatedAt>t&&a(g)),I.value}catch{}return a(g)},peek:async g=>{let b=r.get(g);if(b!==void 0)return {value:b,stale:false};if(n===void 0)return null;try{let P=i.get(g)??0,y=await n.get(g);if(y!==null)return (i.get(g)??0)===P&&r.set(g,y.value),{value:y.value,stale:Date.now()-y.updatedAt>t}}catch{}return null},clear:()=>{for(let g of new Set([...r.keys(),...o.keys(),...i.keys()]))i.set(g,(i.get(g)??0)+1);r.clear(),o.clear();}}}function Xc(e){async function n(P){let y=await gi(e.client,{userId:P})??await cn(e.client,{userId:P});return y===null?null:ya$1(y)}async function t(P){let y=await pi(e.client,{groupId:P,clientType:e.clientType});return y===null?null:za$1(y)}async function r(P){let{members:y}=await mi(e.client,{groupId:P,clientType:e.clientType});return y.length===0?null:y}function o(P){let y={};for(let M of P)M.nickName!==""&&(y[M.userId]=M.nickName);return y}let{storage:i}=e,a=i===void 0?void 0:{get:async P=>{let y=await i.getUserProfile(P);return y===null?null:{value:y,updatedAt:y.updatedAt}},save:async(P,y)=>{await i.saveUserProfile({...y,updatedAt:Date.now()});}},c=i===void 0?void 0:{get:async P=>{let y=await i.getGroupMembers(P);return y===null?null:{value:y.members.map(M=>({userId:M.userId,nickName:M.groupNick,...M.joinType===void 0?{}:{joinType:M.joinType}})),updatedAt:y.updatedAt}},save:async(P,y)=>{let M=y.map(I=>({userId:I.userId,groupNick:I.nickName,...I.joinType===void 0?{}:{joinType:I.joinType}}));await i.saveGroupMembers({groupId:P,members:M,updatedAt:Date.now()});}},d=i===void 0?void 0:{get:async P=>{let y=await i.getGroupProfile(P);return y===null?null:{value:y,updatedAt:y.updatedAt}},save:async(P,y)=>{await i.saveGroupProfile({...y,updatedAt:Date.now()});}},s=qt(n,a),g=qt(t,d),b=qt(r,c);return {getUserProfile:(P,y)=>s.get(P,y),getGroupProfile:(P,y)=>g.get(P,y),getGroupMemberNames:async(P,y)=>{let M=await b.get(P,y);return M===null?null:o(M)},listGroupMembers:(P,y)=>b.get(P,y),peekUserProfile:P=>s.peek(P),peekGroupMemberNames:async P=>{let y=await b.peek(P);return y===null?null:{value:o(y.value),stale:y.stale}},peekGroupMembers:P=>b.peek(P),peekGroupProfile:P=>g.peek(P),clearCache:()=>{s.clear(),g.clear(),b.clear();}}}var Fn=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;}},ze=class extends Error{constructor(n){super(n),this.name="RobotConversationBindMappingError";}};function Qc(e){let n=e.robotId.trim(),t=e.conversationId.trim();if(n==="")throw new ze("\u7ED1\u5B9A\u673A\u5668\u4EBA robotId \u4E0D\u80FD\u4E3A\u7A7A");if(t==="")throw new ze("\u7ED1\u5B9A\u673A\u5668\u4EBA conversationId \u4E0D\u80FD\u4E3A\u7A7A");if(e.groupType!==1&&e.groupType!==2)throw new ze("\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 yi(e,n,t){let r=Qc(t),i=await B(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 Fn(n,i.code,i.message)}function Zc(e,n){return yi(e,"bind",n)}function ed(e,n){return yi(e,"unbind",n)}function nd(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}async function ae(e,n,t,r){let o=await B(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new Q(r,o.code,o.message)}function td(e){return ae(e.client,"/user_radio/edit",{radio_id:e.channelId,...e.name===void 0?{}:{name:e.name},...e.avatarUrl===void 0?{}:{head_img_url:e.avatarUrl},...e.description===void 0?{}:{desc:e.description}},"\u4FEE\u6539\u793E\u7FA4\u8D44\u6599")}function rd(e){return ae(e.client,"/user_radio/user/setting",{radio_id:e.channelId,nick_name:e.nickname},"\u4FEE\u6539\u793E\u7FA4\u6635\u79F0")}function od(e){return ae(e.client,"/user_radio/member/edit",{radio_id:e.channelId,radio_user_id:e.userId,nick_name:e.nickname},"\u4FEE\u6539\u793E\u7FA4\u6635\u79F0")}function id(e){let n=e.userIds.map(t=>({user_id:nd(t)}));return ae(e.client,"/user_radio/invited_users",{radio_id:e.channelId,members:JSON.stringify(n)},"\u9080\u8BF7\u793E\u7FA4\u6210\u5458")}function ad(e){return ae(e.client,"/user_radio/kick_user",{radio_id:e.channelId,user_id:e.userId},"\u79FB\u9664\u793E\u7FA4\u6210\u5458")}function sd(e){return ae(e.client,"/user_radio/add_admin",{radio_id:e.channelId,user_id:e.userId},"\u8BBE\u4E3A\u793E\u7FA4\u7BA1\u7406\u5458")}function cd(e){return ae(e.client,"/user_radio/del_admin",{radio_id:e.channelId,user_id:e.userId},"\u53D6\u6D88\u793E\u7FA4\u7BA1\u7406\u5458")}function dd(e){return ae(e.client,"/user_radio/transfer",{radio_id:e.channelId,user_id:e.userId},"\u8F6C\u8BA9\u793E\u7FA4")}function ud(e){return ae(e.client,"/user_radio/user/quit",{radio_id:e.channelId,...e.newOwnerId===void 0?{}:{user_id:e.newOwnerId}},"\u9000\u51FA\u793E\u7FA4")}function ld(e){return ae(e.client,"/user_radio/edit_setting",{radio_id:e.channelId,verify_way:e.verifyType,...e.verifyType===4&&e.inviteCode!==void 0?{invite_code:e.inviteCode}:{}},"\u4FEE\u6539\u793E\u7FA4\u5165\u7FA4\u9A8C\u8BC1\u65B9\u5F0F")}function pd(e){return ae(e.client,"/user_radio/edit_setting",{radio_id:e.channelId,is_unspeeking_all:e.muted?"1":"0"},e.muted?"\u5F00\u542F\u793E\u7FA4\u5168\u5458\u7981\u8A00":"\u5173\u95ED\u793E\u7FA4\u5168\u5458\u7981\u8A00")}function fd(e){return ae(e.client,"/user_radio/edit_setting",{radio_id:e.channelId,is_unvisit_other:e.disabled?"1":"0"},e.disabled?"\u5F00\u542F\u793E\u7FA4\u5168\u5458\u7981\u79C1\u804A":"\u5173\u95ED\u793E\u7FA4\u5168\u5458\u7981\u79C1\u804A")}function md(e){return ae(e.client,"/user_radio/closed",{radio_id:e.channelId},"\u89E3\u6563\u793E\u7FA4")}async function gd(e){a(e.signal),yd(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),a(e.signal);let t=e.containAnchor??true,r=R({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}});a(e.signal);let i=U(o,{selfId:e.userId,keepRaw:true,expectedChannelIds:[e.channelId],onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps);if(t){let c=i.messages.filter(d=>d.extensions?.historyCursor===n);if(c.length!==1)throw new Error(`CHANNEL \u5386\u53F2\u4E0A\u4E0B\u6587 anchor \u5FC5\u987B\u4E00\u4E00\u5BF9\u5E94\uFF08channelId=${e.channelId}, index=${n}, count=${c.length}\uFF09`)}let a$1=i.nextBaseIndexes[e.channelId];return {messages:i.messages,hasNewer:(i.messageCounts[e.channelId]??0)===20&&a$1!==void 0&&a$1!==n,...a$1===void 0?{}:{nextCursor:a$1}}}function yd(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 hd(e){let n=bd(e.indexes),t=g.encode(g.create({sUserId:jt(e.userId,"user"),lsIndex:n.map(i=>({sChnnId:jt(i.channelId,"channel"),sIndex:i.readCursor}))})),r=await e.http.postProtobuf({path:"/channel/v1/readIndexes/edit",body:t}),o=h.decode(r);if(o.errcode!==0)throw new Error(`CHANNEL readIndexes/edit \u5931\u8D25\uFF1Aerrcode=${o.errcode}`)}function bd(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=>{jt(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 jt(e,n){if(!/^\d+$/.test(e))throw new Error(`CHANNEL readIndexes ${n} id \u975E\u6CD5\uFF1A${e}`);let t=BigInt(e);if(t<=0n)throw new Error(`CHANNEL readIndexes ${n} id \u975E\u6CD5\uFF1A${e}`);return t}function hn(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function hi(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:void 0}async function wd(e){let n=await B(e,"/friend/black/list",{},{responseMode:"strict",method:"POST"});if(!n.ok)throw new Error(`\u52A0\u8F7D\u9ED1\u540D\u5355\u5931\u8D25\uFF08${n.code}\uFF09\uFF1A${n.message||"unknown error"}`);if(n.data===null||n.data===void 0)return Object.freeze([]);if(!Array.isArray(n.data))throw new Error("\u52A0\u8F7D\u9ED1\u540D\u5355\uFF1A\u54CD\u5E94 data \u5FC5\u987B\u662F\u6570\u7EC4");return Object.freeze(n.data.map(t=>{let r=hi(t),o=hi(r?.user_info);if(r===void 0||o===void 0)throw new Error("\u52A0\u8F7D\u9ED1\u540D\u5355\uFF1A\u54CD\u5E94\u7F3A\u5C11 user_info");let i=hn(r.user_id),a=hn(o.user_id),c=a||i;if(c==="")throw new Error("\u52A0\u8F7D\u9ED1\u540D\u5355\uFF1A\u54CD\u5E94\u7F3A\u5C11 user_id");if(i!==""&&a!==""&&i!==a)throw new Error("\u52A0\u8F7D\u9ED1\u540D\u5355\uFF1A\u5173\u7CFB\u8BB0\u5F55\u4E0E user_info \u8EAB\u4EFD\u4E0D\u4E00\u81F4");let d=hn(o.nick_name??o.nickname)||c,s=hn(r.remark_name),g=hn(o.head_img_url??o.avatar);return Object.freeze({userId:c,displayName:s||d,nickname:d,...s===""?{}:{remark:s},...g===""?{}:{avatarUrl:g}})}))}async function Cd(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 B(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 qn=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;}},jn=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;}},$t={HIDDEN_CONTACT:40112,OWN_FRIEND_LIMIT_REACHED:40121,TARGET_FRIEND_LIMIT_REACHED:40122},Pd=36875,Id=40113;function Jt(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function be(e){let n=Jt(e);return n===""?void 0:n}function bi(e){let n=Array.isArray(e)?e[0]:e;return n!==null&&typeof n=="object"?n:void 0}function vd(e){switch(e){case $t.HIDDEN_CONTACT:return "hidden-contact";case $t.OWN_FRIEND_LIMIT_REACHED:return "own-friend-limit";case $t.TARGET_FRIEND_LIMIT_REACHED:return "target-friend-limit";default:return "remote"}}async function Ad(e,n){let t=n.query.trim();if(t==="")throw new Error("\u641C\u7D22\u7528\u6237\uFF1Aquery \u4E0D\u80FD\u4E3A\u7A7A");let r=await B(e,"/user/info/search",{username:t},{responseMode:"strict",...n.clientType===void 0?{}:{headers:{"Client-type":String(n.clientType)}}});if(!r.ok)throw new qn(r.code,r.message);let o=bi(r.data);if(o===void 0)return null;let i=Jt(o.user_id??o.userId);if(i==="")throw new Error("\u641C\u7D22\u7528\u6237\uFF1A\u54CD\u5E94\u7F3A\u5C11 user_id");let a=Jt(o.nick_name??o.nickname??o.name)||i,c=o.friend_status??o.friendStatus,d=c===void 0?void 0:Number(c);if(d!==void 0&&!Number.isInteger(d))throw new Error("\u641C\u7D22\u7528\u6237\uFF1Afriend_status \u975E\u6CD5");return {userId:i,nickname:a,...be(o.username)===void 0?{}:{username:be(o.username)},...be(o.mid)===void 0?{}:{miCallId:be(o.mid)},...be(o.head_img_url??o.avatar)===void 0?{}:{avatarUrl:be(o.head_img_url??o.avatar)},...be(o.per_signature??o.signature)===void 0?{}:{signature:be(o.per_signature??o.signature)},...d===void 0?{}:{friendStatus:d}}}async function Sd(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 B(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 jn(vd(i.code),i.code,i.message);let a=bi(i.data),c=Number(a?.status??0);if(c!==0&&c!==1&&c!==2)throw new Error(`\u53D1\u9001\u597D\u53CB\u7533\u8BF7\uFF1A\u672A\u77E5\u7ED3\u679C\u72B6\u6001 ${c}`);let d=be(a?.message??a?.msg??i.message);return {status:c,...d===void 0?{}:{message:d}}}async function Md(e,n){let t=n.userId.trim();if(t==="")throw new Error("\u5220\u9664\u597D\u53CB\uFF1AuserId \u4E0D\u80FD\u4E3A\u7A7A");let r=await B(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!==Id)throw new Error(`\u5220\u9664\u597D\u53CB\u5931\u8D25\uFF08${r.code}\uFF09\uFF1A${r.message||"unknown error"}`)}async function xd(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 B(e,"/user/report_user/add",{user_id:t,to_user_id:r,problem:o,images:"1"},{responseMode:"strict",method:"POST"});if(!i.ok)throw new Q("\u4E3E\u62A5\u8054\u7CFB\u4EBA",i.code,i.message)}function _d(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}function kd(e){let n=e.memberIds.map(t=>({user_id:_d(t)}));return B(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 Ed(e){return B(e.client,"/user_group/create_face",{is_hidden:"0"},{method:"POST",responseMode:"strict"})}function Rd(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}function Td(e){let n=e.memberIds.map(t=>({user_id:Rd(t)}));return B(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 We(e){if(e.trim()==="")throw new Error("board pinned message groupId \u4E0D\u80FD\u4E3A\u7A7A")}function Ye(e){if(e.trim()==="")throw new Error("channel board pinned message channelId \u4E0D\u80FD\u4E3A\u7A7A")}function wi(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function Dd(e){We(e.groupId);let n=await B(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(!wi(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(!wi(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 Ci(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function Ud(e){Ye(e.channelId);let n=await B(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(!Ci(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(!Ci(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 Od(e,n){let r=(await B(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 Bd(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 Nd(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||!Bd(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 Kd(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}async function bn(e,n,t,r){let o=await B(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new Q(r,o.code,o.message)}function Ld(e){let n=e.userIds.map(t=>({user_id:Kd(t)}));return bn(e.client,"/user_group/invited",{group_id:e.groupId,members:JSON.stringify(n)},"\u9080\u8BF7\u7FA4\u6210\u5458")}function Gd(e){return bn(e.client,"/user_group/kick",{group_id:e.groupId,out_user_id:e.userId},"\u79FB\u9664\u7FA4\u6210\u5458")}function Hd(e){return bn(e.client,"/user_group/transfer",{group_id:e.groupId,new_user_id:e.userId},"\u8F6C\u8BA9\u7FA4\u7EC4")}function Fd(e){return bn(e.client,"/user_group/user/quit",{group_id:e.groupId,...e.newOwnerId===void 0?{}:{new_user_id:e.newOwnerId}},"\u9000\u51FA\u7FA4\u7EC4")}function qd(e){return bn(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 jd=new Set([200,32768]);async function $d(e){let n=pa$1({userId:e.userId,groupId:e.groupId}),t=await e.http.postProtobuf({path:"/offline/v1/group/read_all",body:n}),{code:r}=qa$1(t);if(!jd.has(r))throw new Error(`\u7FA4 read_all \u4E1A\u52A1\u5931\u8D25\uFF1Acode=${r}\uFF08groupId=${e.groupId}\uFF09`)}var wn=class extends Error{constructor(n){super(`${n}\u54CD\u5E94\u5305\u542B\u65E0\u6CD5\u8BC6\u522B\u7684 is_waitting`),this.name="MembershipJoinMappingError";}};function Jd(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 wn(n)}async function Pi(e,n,t,r){let o=await B(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new Q(r,o.code,o.message);if(o.data===null||o.data===void 0)throw new wn(r);return Jd(o.data.is_waitting,r)}async function Ii(e,n,t,r){let o=await B(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new Q(r,o.code,o.message);return Object.freeze({outcome:"joined"})}function Vd(e){return Pi(e.client,"/user_group/apply",{group_id:e.groupId,qrcode_type:2,remarks:e.remarks??""},"\u7533\u8BF7\u52A0\u5165\u666E\u901A\u7FA4")}function zd(e){return Ii(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 Wd(e){return Pi(e.client,"/user_radio/add/apply",{radio_id:e.channelId,remarks:e.remarks??""},"\u7533\u8BF7\u52A0\u5165\u793E\u7FA4")}function Yd(e){return Ii(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 Xd(e){if(We(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 B(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 Qd(e){if(Ye(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 B(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 Zd(e){a(e.asyncDecrypt?.signal),e.asyncDecrypt?.assertCurrent?.();let n=ua$1({userId:e.userId,messageIds:e.messageIds,clientType:e.clientType}),t=await e.http.postProtobuf({path:"/offline/v1/chat/msg/by_id",body:n,...e.asyncDecrypt?.signal===void 0?{}:{signal:e.asyncDecrypt.signal}}),r={selfId:e.userId,keepRaw:true,onReaction:e.onReaction,onPlaintextFallback:e.onPlaintextFallback};return e.asyncDecrypt===void 0?va$1(t,r,e.decryptDeps,e.messageIds):xa$1(t,r,e.decryptDeps,e.messageIds,e.asyncDecrypt)}async function eu(e){a(e.asyncDecrypt?.signal),e.asyncDecrypt?.assertCurrent?.(),e.asyncDecrypt===void 0&&e.prepareKeys!==void 0&&e.decryptDeps!==void 0&&e.groupId!==""&&await e.prepareKeys([e.groupId]);let n=ma$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,...e.asyncDecrypt?.signal===void 0?{}:{signal:e.asyncDecrypt.signal}}),r={selfId:e.userId,keepRaw:true,source:"history",onReaction:e.onReaction};return e.asyncDecrypt===void 0?na$1(t,r,e.decryptDeps,e.messageIds):oa$1(t,{...r,expectedGroupId:e.groupId},e.decryptDeps,e.messageIds,{...e.asyncDecrypt,...e.prepareKeys===void 0?{}:{prepareKeys:o=>e.prepareKeys([...o])}})}async function nu(e){e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId);let n=W$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 X(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,e.messageIds)}var tu=20,vi=10,Vt=30,ru=100;async function ou(e){let n=[];for(let t of Si(e.channels,tu)){let r=Q$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(c=>c.channelId),diagnostic:{endpoint:"sessions",surface:"session-last",...e.operationId===void 0?{}:{operationId:e.operationId},clientTypeHeader:e.clientType,clientTypeBody:e.clientType}},a=T(o,i);await Ai(e,a.sessions.filter(c=>c.channelState==="active"||c.raw?.status===0).map(c=>c.channelId)),n.push(...T(o,{...i,onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps).sessions);}return n}async function iu(e){let n=cu(e.channelBatchSize),t=e.messageCount??Vt,r=du(e.maxPagesPerBatch),o$1=new Map;for(let i of Si(e.pulls,n)){let a$1=i.map(s=>({...s})),c=new Map(a$1.map(s=>[s.channelId,new Set([s.baseIndex])])),d=0;for(;a$1.length>0;){a(e.signal),await e.beforePage?.(),a(e.signal);let s=e.isChannelCurrent;if(s!==void 0&&(a$1=a$1.filter(I=>s(I.channelId))),a$1.length===0)break;if(d>=r){let I=a$1.map(({channelId:E,baseIndex:D})=>`${E}@${D}`).join(",");throw new Error(`channel offline \u5206\u9875\u8D85\u8FC7 maxPagesPerBatch=${r}\uFF08active=${I}\uFF09`)}d+=1;let g=R({userId:e.userId,clientType:e.clientType,pulls:a$1.map(I=>({channelId:I.channelId,baseIndex:I.baseIndex,direction:0,count:t,contain:0}))});a(e.signal);let b=await e.http.postProtobuf({path:"/channel/v1/offlineMessages",body:g,...e.signal===void 0?{}:{signal:e.signal}});a(e.signal),await Ai(e,a$1.map(I=>I.channelId)),a(e.signal);let P={selfId:e.userId,keepRaw:e.keepRaw??true,expectedChannelIds:a$1.map(I=>I.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},y=e.yieldToEventLoop===void 0?U(b,P,e.decryptDeps):await V$1(b,P,e.decryptDeps,{yieldToEventLoop:e.yieldToEventLoop,signal:e.signal});a(e.signal);let M=[];for(let I of a$1){let E=y.nextBaseIndexes[I.channelId],D=y.messageCounts[I.channelId]??0;if(E===void 0)continue;let R=c.get(I.channelId);if(R.has(E))throw new Error(`channel offline cursor \u5FAA\u73AF\uFF08channelId=${I.channelId}, baseIndex=${E}\uFF09`);D<t||(R.add(E),M.push({channelId:I.channelId,baseIndex:E}));}await e.onPage?.(y.messages,{pulls:a$1.map(I=>({...I})),nextBaseIndexes:{...y.nextBaseIndexes},messageCounts:{...y.messageCounts}}),a(e.signal);for(let I of y.messages)o$1.has(I.id)||o$1.set(I.id,I);a$1=M;}}return [...o$1.values()].sort(o)}async function au(e){a(e.signal);let n=e.count??Vt;if(!Number.isInteger(n)||n<=0)throw new Error("channel latest: count \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId);let t=R({userId:e.userId,clientType:e.clientType,pulls:[{channelId:e.channelId,baseIndex:"",direction:1,count:n,contain:0}]});a(e.signal);let r=await e.http.postProtobuf({path:"/channel/v1/offlineMessages",body:t,...e.signal===void 0?{}:{signal:e.signal}});a(e.signal);let o={selfId:e.userId,keepRaw:e.keepRaw??true,expectedChannelIds:[e.channelId],diagnostic:{endpoint:"offlineMessages",surface:"history-page",...e.operationId===void 0?{}:{operationId:e.operationId},clientTypeHeader:e.clientType,clientTypeBody:e.clientType},onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},i=e.yieldToEventLoop===void 0?{...U(r,o,e.decryptDeps),firstBaseIndex:f.decode(r).lsMessage[0]?.sIndex}:await V$1(r,o,e.decryptDeps,{yieldToEventLoop:e.yieldToEventLoop,signal:e.signal}),a$1=i.batchSize===n,c=i.firstBaseIndex;if(a$1&&(typeof c!="string"||c.trim()===""))throw new Error(`channel latest: \u6EE1\u9875\u7F3A\u5C11\u5411\u65E7 cursor\uFF08channelId=${e.channelId}\uFF09`);return {messages:i.messages,hasOlder:a$1,...a$1?{nextCursor:c}:{}}}async function su(e){a(e.signal);let n=e.count??Vt;e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId);let t=S({userId:e.userId,clientType:e.clientType,channelId:e.channelId,baseIndex:e.baseIndex,count:n,contain:e.contain??0});a(e.signal);let r=await e.http.postProtobuf({path:"/channel/v1/offlineMessages",body:t,...e.signal===void 0?{}:{signal:e.signal}});return a(e.signal),Y$1(r,{selfId:e.userId,channelId:e.channelId,requestedBaseIndex:e.baseIndex,requestedCount:n,keepRaw:e.keepRaw??true,diagnostic:{endpoint:"history",surface:"history-page",...e.operationId===void 0?{}:{operationId:e.operationId},clientTypeHeader:e.clientType,clientTypeBody:e.clientType},onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps)}async function Ai(e,n){if(e.decryptDeps===void 0||e.prepareKeys===void 0)return;let t=[...new Set(n.filter(Boolean))];t.length>0&&await e.prepareKeys(t);}function cu(e){if(e===void 0)return vi;if(!Number.isInteger(e)||e<=0)throw new Error("channel offline: channelBatchSize \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");return Math.min(e,vi)}function du(e){if(e===void 0)return ru;if(!Number.isInteger(e)||e<=0)throw new Error("channel offline: maxPagesPerBatch \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");return e}function Si(e,n){let t=[];for(let r=0;r<e.length;r+=n)t.push(e.slice(r,r+n));return t}async function Mi(e,n){a(n.asyncDecrypt?.signal),n.asyncDecrypt?.assertCurrent?.();let t=ra$1({userId:n.userId,clientType:n.clientType,limit:n.limit,deliveredMsgInfos:n.deliveredMsgInfos}),r=await n.http.postProtobuf({path:e,body:t,...n.asyncDecrypt?.signal===void 0?{}:{signal:n.asyncDecrypt.signal}}),o={selfId:n.userId,keepRaw:true,onReaction:n.onReaction};return n.asyncDecrypt===void 0?ta$1(r,o,n.decryptDeps):wa$1(r,o,n.decryptDeps,n.asyncDecrypt)}function xi(e){return Mi("/offline/v1/chat",e)}function _i(e){return Mi("/offline/v1/owner_chat",e)}function uu(e){return xi(e).then(n=>(sa$1(n),n.messages))}function lu(e){return _i(e).then(n=>(sa$1(n),n.messages))}function zt(e){if(e.asyncDecrypt!==void 0)return {...e.asyncDecrypt,...e.prepareKeys===void 0?{}:{prepareKeys:n=>e.prepareKeys([...n])}}}function ki(e){return [...new Set(e.filter(n=>n!==void 0&&n!==""))]}async function pu(e){let n=zt(e);a(n?.signal),n?.assertCurrent?.();let t=da$1({userId:e.userId,clientType:e.clientType,limit:e.limit,deliveredMsgIds:e.deliveredMsgInfos?.map(o=>o.msgId)}),r=await e.http.postProtobuf({path:"/offline/v1/group",body:t,...n?.signal===void 0?{}:{signal:n.signal}});if(n!==void 0)return fa$1(r,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps,n);if(e.prepareKeys!==void 0&&e.decryptDeps!==void 0){let o=ga$1(r,{selfId:e.userId}),i=ki(o.messages.map(a=>a.conversationId));i.length>0&&await e.prepareKeys(i);}return ga$1(r,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function fu(e){let n=zt(e);a(n?.signal),n?.assertCurrent?.();let t=ea$1({userId:e.userId,clientType:e.clientType,size:e.size}),r=await e.http.postProtobuf({path:"/offline/v1/group/session",body:t,...n?.signal===void 0?{}:{signal:n.signal}});if(n!==void 0)return ia$1(r,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps,n);if(e.prepareKeys!==void 0&&e.decryptDeps!==void 0){let o=ha$1(r,{selfId:e.userId}),i=ki([...o.unreads.map(a=>a.groupId),...o.messages.map(a=>a.conversationId)]);i.length>0&&await e.prepareKeys(i);}return ha$1(r,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function mu(e){let n=zt(e),t=e.signal??n?.signal;a(t),a(n?.signal),n?.assertCurrent?.(),n===void 0&&e.prepareKeys!==void 0&&e.decryptDeps!==void 0&&e.groupId!==""&&await e.prepareKeys([e.groupId]);let r=ja$1({userId:e.userId,groupId:e.groupId,baseTime:e.baseTime,direct:e.direct,limit:e.limit,clientType:e.clientType});a(t);let o=await e.http.postProtobuf({path:"/offline/v1/group/history_msg",body:r,...t===void 0?{}:{signal:t}});a(t);let i={selfId:e.userId,keepRaw:e.keepRaw??true,source:"history",onReaction:e.onReaction};return n!==void 0?la$1(o,{...i,expectedGroupId:e.groupId},e.decryptDeps,{yieldToEventLoop:n.yieldToEventLoop,signal:t},n):e.yieldToEventLoop===void 0?ka$1(o,i,e.decryptDeps):la$1(o,{...i,expectedGroupId:e.groupId},e.decryptDeps,{yieldToEventLoop:e.yieldToEventLoop,signal:e.signal})}async function gu(e){let n=Ea$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,...e.signal===void 0?{}:{signal:e.signal}});return Fa$1(t)}var $n=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;}},ue=class extends Error{constructor(n){super(n),this.name="RobotDirectoryMappingError";}};function Wt(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Ei(e){let n=Wt(e);return n===""?void 0:n}function Yt(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function yu(e){if(e===true||e===1||e==="1")return true;if(e===false||e===0||e==="0")return false}function hu(e){let n=Yt(e);if(n===void 0)throw new ue("\u673A\u5668\u4EBA\u76EE\u5F55\u9879\u5FC5\u987B\u662F\u5BF9\u8C61");let t=Wt(n.robot_id??n.robotId);if(t==="")throw new ue("\u673A\u5668\u4EBA\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A robot_id");let r=Wt(n.robot_name??n.robotName)||t,o=Ei(n.mid??n.botMid??n.bot_mid),i=Ei(n.img_url??n.imgUrl),a=yu(n.bind);return {id:t,displayName:r,...o===void 0?{}:{username:o},...i===void 0?{}:{avatarUrl:i},...a===void 0?{}:{bound:a}}}function bu(e){if(Array.isArray(e))return e;let n=Yt(e);if(n===void 0)throw new ue("\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 ue("\u673A\u5668\u4EBA\u76EE\u5F55 data.data \u5FC5\u987B\u662F\u6570\u7EC4");return t}function wu(e){let n=Yt(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 ue("\u673A\u5668\u4EBA\u76EE\u5F55 total_count \u5FC5\u987B\u662F\u975E\u8D1F\u6574\u6570");return r}async function Cu(e,n){if(!Number.isSafeInteger(n.page)||n.page<1)throw new ue("\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 ue("\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 ue("\u673A\u5668\u4EBA\u76EE\u5F55 groupId \u4E0E groupType \u5FC5\u987B\u540C\u65F6\u63D0\u4F9B\u6216\u540C\u65F6\u7701\u7565");let o=await B(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 $n(o.code,o.message);let a=bu(o.data).map(hu),c=wu(o.data),d=c===void 0?a.length<n.pageSize:n.page*n.pageSize>=c;return {items:a,exhausted:d}}var Pu={direct:"/friend/undisturb/set",group:"/user_group/user/edit",channel:"/user_radio/user/setting",robot:"/friend/undisturb/set"},Iu={direct:"friend_user_id",group:"group_id",channel:"radio_id",robot:"friend_user_id"};async function vu(e){let n=Pu[e.conversationType],t=Iu[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 B(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 Au(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 B(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 Su(e){let{code:n}=await B(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 Mu(e){We(e.groupId);let n=await B(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 xu(e){Ye(e.channelId);let n=await B(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 _u(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 B(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 ku="1970-01-01 08:00:00",Eu="2000",Ru="",Jn=class extends Error{constructor(){super("\u4F1A\u8BDD\u6536\u85CF Core API \u672A\u914D\u7F6E"),this.name="SessionFavoriteProviderUnavailableError";}},Me=class extends Error{constructor(n){super(n),this.name="SessionFavoriteMappingError";}};function W(e){return typeof e=="string"?e:e==null?"":String(e)}function Cn(e,n){let t=W(e).trim();if(t==="")throw new Me(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function Tu(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":n===29?"filesAlbum":n===30?"liveRoom":null}function Du(e){return e==="text"?1:e==="image"?2:e==="video"?3:e==="voice"?4:e==="location"?5:e==="mediaAlbum"?28:e==="filesAlbum"?29:e==="liveRoom"?30:11}function Uu(e){if(e==="direct")return 0;if(e==="group")return 1;if(e==="channel")return 2;throw new Me(`favorite conversation type ${e}`)}function Vn(e,n){return n==="text"||n==="location"?W(e.content).trim():n==="file"?W(e.fileName||e.file_name||e.name).trim():n==="mediaAlbum"||n==="filesAlbum"?W(e.caption).trim():n==="liveRoom"?W(e.liveRoomName).trim()||W(e.broadcasterUserName).trim():""}function Ou(e,n){let t=W(e.group_id).trim(),r=W(e.radio_id).trim(),o=Number(W(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=W(e.from_id).trim(),a=W(e.to_id).trim(),c=i===n.trim()?a:i;if(c!=="")return {conversationType:"direct",conversationId:c}}return null}function Bu(e,n){let t=e.from_user,r=W(t?.nick_name||t?.nickname||t?.name).trim();return r===""?n:r}function Nu(e,n){let t=W(e.uu_id).trim(),r=Tu(e.content_type),o=Io(W(e.msg_body),n);if(t===""||r===null||o===null)return null;let i=W(e.from_id).trim();return Object.freeze({collectId:t,msgId:W(e.msg_id).trim(),kind:r,senderId:i,senderName:Bu(e,i),avatarUrl:W(e.from_user?.avatar).trim(),createdAt:W(e.create_time||e.update_time||e.msg_time).trim(),text:Vn(o,r),imageUrl:Ob(r,o),fileName:r==="filesAlbum"?Pb(o).map(a=>a.fileName).join(" "):r==="file"?Vn(o,"file"):"",body:r==="filesAlbum"?Qb(o):Object.freeze({...o}),conversation:Ou(e,n)})}function Ku(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 Me("favorite list data \u5FC5\u987B\u662F\u6570\u7EC4\u6216 { list }")}function Lu(){if(typeof crypto>"u"||typeof crypto.randomUUID!="function")throw new Me("collect uuid \u4E0D\u53EF\u7528");return crypto.randomUUID()}function Gu(e){return Object.freeze({...e,body:Object.freeze({...e.body}),conversation:e.conversation===null?null:Object.freeze({...e.conversation})})}function Hu(e){async function n(t,r,o){if(e.coreClient===void 0)throw new Jn;let i=await B(e.coreClient,t,r,{method:"POST",responseMode:"strict",prefix:Ru});if(!i.ok)throw new Q(o,i.code,i.message);return i.data}return {async list(){let t=Cn(e.getUserId(),"favorite userId"),r=await n("/api/v1/user/favorite/list",{start_time:ku,page_size:Eu},"\u4F1A\u8BDD\u6536\u85CF\u5217\u8868");return Object.freeze(Ku(r).flatMap(o=>{let i=Nu(o,t);return i===null?[]:[i]}))},async add(t){let r=Cn(e.getUserId(),"favorite userId"),o=(e.createCollectId??Lu)(),i={msg_id:Cn(t.messageId,"favorite msgId"),content_type:Du(t.kind),msg_type:Uu(t.conversation.conversationType),msg_time:String(t.createdAt),from_id:Cn(t.senderId,"favorite fromId"),to_id:Cn(t.peerId,"favorite toId"),is_hide:t.hide===true?"1":"0",uu_id:o,msg_body:Po(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"),Gu({collectId:o,msgId:t.messageId.trim(),kind:t.kind,senderId:t.senderId.trim(),senderName:t.senderId.trim(),avatarUrl:"",createdAt:String(t.createdAt),text:Vn(t.plainBody,t.kind),imageUrl:Ob(t.kind,t.plainBody),fileName:t.kind==="filesAlbum"?Pb(t.plainBody).map(a=>a.fileName).join(" "):t.kind==="file"?Vn(t.plainBody,"file"):"",body:t.kind==="filesAlbum"?Qb(t.plainBody):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 Me("favorite ids \u4E0D\u80FD\u4E3A\u7A7A");await n("/api/v1/user/favorite/del",{ids:r.join("|")},"\u5220\u9664\u4F1A\u8BDD\u6536\u85CF");}}}async function Ri(e,n){a(n);let t=await createMD5();a(n);let r=performance.now();for(let o=0;o<e.size;o+=1024*1024){a(n);let i=new Uint8Array(await e.slice(o,o+1024*1024).arrayBuffer());a(n),t.update(i),performance.now()-r>=8&&(await new Promise(a=>setTimeout(a,0)),a(n),r=performance.now());}return a(n),t.digest("hex")}var Ti="image/jpeg";function Xt(e,n){return e.type!==""||n===void 0||n===""?e:new Blob([e],{type:n})}function qu(e){let n=0;return {fileMd5:Ri,async imageDimensions(t,r,o){let i=await e.prepare({operationId:`core-image-dimensions-${++n}`,generation:0,kind:"image",file:Xt(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:Xt(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:Ti}},async videoPoster(t,r,o){let i=await e.prepare({operationId:`core-video-poster-${++n}`,generation:0,kind:"video",file:Xt(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:Ti}}}}function ju(e){return e>=192&&e<=207&&e!==196&&e!==200&&e!==204}function $u(e){return e!==void 0&&e>=5&&e<=8}function Ju(e,n,t){return $u(t)?{width:n,height:e}:{width:e,height:n}}function Vu(e,n,t){if(n+6>t)return;for(let[d,s]of [69,120,105,102,0,0].entries())if(e.getUint8(n+d)!==s)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 c=e.getUint16(a,i);for(let d=0;d<c;d++){let s=a+2+d*12;if(s+12>t)return;if(e.getUint16(s,i)===274)return e.getUint16(s+8,i)}}function zu(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,c=r+2+i;if(c>n)return;if(ju(o)){if(a+5>n)return;let d=e.getUint16(a+1,false),s=e.getUint16(a+3,false);return s<=0||d<=0?void 0:Ju(s,d,t)}o===225&&t===void 0&&(t=Vu(e,a,c)),r=c;}}function Wu(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 Yu(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 Xu(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 zn(e,n,t){return n<t.length?false:t.every((r,o)=>e.getUint8(o)===r)}async function Di(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(zn(t,r,[255,216,255]))return zu(t,r);if(zn(t,r,[137,80,78,71,13,10,26,10]))return Wu(t,r);if(zn(t,r,[71,73,70,56]))return Yu(t,r);if(zn(t,r,[82,73,70,70])&&r>=12&&t.getUint32(8,false)===1464156752)return Xu(t,r)}var Ki=320,Qu=12*1024,Li=20*1024,Zu=.9,el=.72,nl=320,tl=10*1024,rl=16*1024,ol=.84,il=.68,Gi=15e3,al=1;function sl(){if(typeof navigator>"u")return 2;let e=navigator.userAgent;if(/iPad|iPhone|iPod/.test(e)||/Macintosh/.test(e)&&(navigator.maxTouchPoints??0)>1)return 1;let t=navigator.deviceMemory;return t!==void 0&&t<=2?1:2}function Ui(e){let n={active:0,disposed:false},t=[];function r(){for(;!n.disposed&&n.active<e&&t.length>0;){let o=t.shift();if(o.signal?.aborted){o.reject(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));continue}o.onAbort!==void 0&&o.signal?.removeEventListener("abort",o.onAbort),n.active+=1;let i=false;o.resolve(()=>{i||(i=true,n.active-=1,r());});}}return {acquire(o){return n.disposed?Promise.reject(new Error("\u5A92\u4F53\u9884\u89C8\u6267\u884C\u5668\u5DF2\u91CA\u653E")):new Promise((i,a)=>{let c={resolve:i,reject:a,...o===void 0?{}:{signal:o}};o!==void 0&&(c.onAbort=()=>{let d=t.indexOf(c);d>=0&&t.splice(d,1),a(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));},o.addEventListener("abort",c.onAbort,{once:true})),t.push(c),r();})},dispose(){n.disposed=true;for(let o of t.splice(0))o.onAbort!==void 0&&o.signal?.removeEventListener("abort",o.onAbort),o.reject(new Error("\u5A92\u4F53\u9884\u89C8\u6267\u884C\u5668\u5DF2\u91CA\u653E"));}}}function xe(e){if(e?.aborted)throw new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError")}var Oi=16777216,cl=4096;function dl(e,n){let t=Math.min(1,cl/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>Oi){let a=Math.sqrt(Oi/i);r=Math.max(1,Math.floor(r*a)),o=Math.max(1,Math.floor(o*a));}return {width:r,height:o}}function er(e,n,t){let r=Math.min(1,t/Math.max(e,n));return dl(Math.max(1,Math.round(e*r)),Math.max(1,Math.round(n*r)))}async function Bi(e,n,t){xe(t);let r=await new Promise(o=>e.toBlob(o,"image/jpeg",n));if(xe(t),r===null)throw new Error("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1ACanvas \u7F16\u7801\u8FD4\u56DE\u7A7A\u7ED3\u679C");return await r.arrayBuffer()}function Qt(e,n){if(!Number.isInteger(e)||e<=0)throw new RangeError(`${n}\u5FC5\u987B\u662F\u6B63\u6574\u6570`)}function Ni(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 nr(e,n,t,r,o){let i=r.kind==="video",a=i?"\u89C6\u9891\u5C01\u9762":"\u56FE\u7247\u7F29\u7565\u56FE",c=r.maxSize??(i?nl:Ki),d=r.targetBytes??(i?tl:Qu),s=r.maxBytes??(i?rl:Li),g=r.quality??(i?ol:Zu),b=r.minQuality??(i?il:el);if(Qt(c,`${a}\u6700\u5927\u8FB9\u957F`),Qt(d,`${a}\u76EE\u6807\u5B57\u8282\u6570`),Qt(s,`${a}\u6700\u5927\u5B57\u8282\u6570`),Ni(g,`${a}\u521D\u59CB\u8D28\u91CF`),Ni(b,`${a}\u6700\u4F4E\u8D28\u91CF`),d>s)throw new RangeError(`${a}\u76EE\u6807\u5B57\u8282\u6570\u4E0D\u80FD\u8D85\u8FC7\u6700\u5927\u5B57\u8282\u6570`);if(b>g)throw new RangeError(`${a}\u6700\u4F4E\u8D28\u91CF\u4E0D\u80FD\u9AD8\u4E8E\u521D\u59CB\u8D28\u91CF`);xe(o);let P=document.createElement("canvas");try{let y=P.getContext("2d");if(y===null)throw new Error("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A\u65E0\u6CD5\u521B\u5EFA Canvas 2D \u4E0A\u4E0B\u6587");let M=w=>{xe(o),P.width=w.width,P.height=w.height,y.drawImage(e,0,0,w.width,w.height);},I=er(n,t,c);M(I);let E=Math.min(200,Math.max(I.width,I.height)),D,R=[...new Set([g,Math.max(b,g-.12),b])];for(let w of R){let _=await Bi(P,w,o);if((D===void 0||_.byteLength<D.byteLength)&&(D=_),_.byteLength<=d)return _}let x=Math.max(I.width,I.height);if(x>E&&D!==void 0){let w=Math.sqrt(d/D.byteLength),_=Math.max(E,Math.floor(x*Math.min(.9,Math.max(.5,w))));I=er(n,t,_),M(I);for(let U of [g,b]){let l=await Bi(P,U,o);if(l.byteLength<D.byteLength&&(D=l),l.byteLength<=d)return l}}if(D!==void 0&&D.byteLength<=s)return D;throw new Error(`${a}\u751F\u6210\u5931\u8D25\uFF1A\u7F16\u7801\u7ED3\u679C\u8D85\u8FC7 ${s} \u5B57\u8282\u786C\u4E0A\u9650`)}finally{P.width=0,P.height=0;}}function Zt(e,n,t,r){return xe(t),new Promise((o,i)=>{let a=()=>n==="seeked"?!e.seeking:e.readyState>=(n==="loadedmetadata"?1:2),c,d,s,g,b=()=>{c!==void 0&&clearTimeout(c),e.removeEventListener(n,d),e.removeEventListener("error",s),t?.removeEventListener("abort",g);};d=()=>{a()&&(b(),o());},s=()=>{b(),i(new Error(`\u89C6\u9891\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A${n} \u524D\u89E3\u7801\u9519\u8BEF`));},g=()=>{b(),i(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));},c=setTimeout(()=>{b(),i(new Error(`\u89C6\u9891\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A${n} \u8D85\u65F6`));},Gi),e.addEventListener(n,d),e.addEventListener("error",s,{once:true}),t?.addEventListener("abort",g,{once:true});try{r?.(),t?.aborted?g():e.error!==null?s():d();}catch(P){b(),i(P);}})}async function ul(e,n){xe(n);let t=e.maxSize??Ki,r=e.maxBytes??Li,o=await Di(e.file);xe(n);function i(g,b){return e.file.type==="image/jpeg"&&e.file.size<=r&&Math.max(g,b)<=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:er(o.width,o.height,t),c;try{c=a===void 0?await createImageBitmap(e.file):await createImageBitmap(e.file,{resizeWidth:a.width,resizeHeight:a.height,resizeQuality:"high"});}catch(g){if(n?.aborted)throw g}if(c!==void 0)try{xe(n);let g=o??{width:c.width,height:c.height};return e.includePoster===!1?g:o===void 0&&i(c.width,c.height)?{...g,posterData:await e.file.arrayBuffer()}:{...g,posterData:await nr(c,c.width,c.height,e,n)}}finally{c.close();}let d=URL.createObjectURL(e.file),s=new Image;try{await new Promise((b,P)=>{let y,M,I=()=>{y!==void 0&&clearTimeout(y),s.onload=null,s.onerror=null,n?.removeEventListener("abort",M);};M=()=>{I(),P(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));},s.onload=()=>{I(),b();},s.onerror=()=>{I(),P(new Error("\u56FE\u7247\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1AImage \u89E3\u7801\u9519\u8BEF"));},y=setTimeout(()=>{I(),P(new Error("\u56FE\u7247\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1AImage \u89E3\u7801\u8D85\u65F6"));},Gi),n?.addEventListener("abort",M,{once:!0}),s.src=d;});let g=o??{width:s.naturalWidth,height:s.naturalHeight};return e.includePoster===!1?g:i(s.naturalWidth,s.naturalHeight)?{...g,posterData:await e.file.arrayBuffer()}:{...g,posterData:await nr(s,s.naturalWidth,s.naturalHeight,e,n)}}finally{s.removeAttribute("src"),URL.revokeObjectURL(d);}}async function ll(e,n){let t=URL.createObjectURL(e.file),r=document.createElement("video");r.muted=true,r.preload="metadata",r.playsInline=true;try{await Zt(r,"loadedmetadata",n,()=>{r.src=t,r.load();});let o=r.videoWidth,i=r.videoHeight;if(o<=0||i<=0)throw new Error("\u89C6\u9891\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A\u89C6\u9891\u5C3A\u5BF8\u65E0\u6548");let a=Number.isFinite(r.duration)&&r.duration>0?r.duration:void 0,c=e.atTime===void 0?a===void 0?0:Math.min(1,a/2):Math.max(0,Math.min(e.atTime,a??e.atTime));c>0&&await Zt(r,"seeked",n,()=>{r.currentTime=c;}),await Zt(r,"loadeddata",n,()=>{r.preload="auto";});let d=a===void 0?void 0:a,s;try{s=await nr(r,o,i,e,n);}catch(g){if(n?.aborted||g instanceof RangeError)throw g}return {width:o,height:i,...d===void 0?{}:{duration:d},...s===void 0?{}:{posterData:s}}}finally{r.pause(),r.removeAttribute("src"),r.load(),URL.revokeObjectURL(t);}}function pl(e={}){let n=e.maxConcurrency??sl();if(!Number.isInteger(n)||n<1||n>4)throw new RangeError("\u5A92\u4F53\u9884\u89C8\u5E76\u53D1\u6570\u5FC5\u987B\u662F 1-4 \u7684\u6574\u6570");let t=Ui(n),r=Ui(al),o=false;return {async prepare(i,a){if(o)throw new Error("\u5A92\u4F53\u9884\u89C8\u6267\u884C\u5668\u5DF2\u91CA\u653E");let c=i.kind==="video",d=await(c?r:t).acquire(a);try{return c?await ll(i,a):await ul(i,a)}finally{d();}},dispose(){o||(o=true,t.dispose(),r.dispose());}}}function Wn(e=6){if(!Number.isSafeInteger(e)||e<1)throw new RangeError("\u5A92\u4F53\u8BF7\u6C42\u5E76\u53D1\u4E0A\u9650\u5FC5\u987B\u4E3A\u6B63\u6574\u6570");let n=0,t=[];function r(){for(;n<e&&t.length>0;){let o=0,i=t[0].getPriority?.()??0;for(let c=1;c<t.length;c+=1){let d=t[c].getPriority?.()??0;d>i&&(o=c,i=d);}let a=t.splice(o,1)[0];if(a.signal?.removeEventListener("abort",a.cancel),a.signal?.aborted){a.cancel();continue}n+=1,a.start();}}return async function(i,a,c){if(i?.aborted)throw new DOMException("\u5A92\u4F53\u4F20\u8F93\u5DF2\u53D6\u6D88","AbortError");await new Promise((d,s)=>{let g={signal:i,getPriority:c,start:d,cancel:()=>{let b=t.indexOf(g);b>=0&&t.splice(b,1),s(new DOMException("\u5A92\u4F53\u4F20\u8F93\u5DF2\u53D6\u6D88","AbortError"));}};i?.addEventListener("abort",g.cancel,{once:true}),t.push(g),r();});try{if(i?.aborted)throw new DOMException("\u5A92\u4F53\u4F20\u8F93\u5DF2\u53D6\u6D88","AbortError");return await a()}finally{n-=1,r();}}}var Pn=16*1024*1024,In=3,tr=3,Yn=6,fl=5*1024**3,Xn=1e4;function Qn(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>Pn,r=t?Math.ceil(e/Pn):1;if(!t&&e>fl)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>Xn)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:Pn,partCount:r}}function ml(e,n,t,r){let o=/^bytes (\d+)-(\d+)\/(\d+)$/.exec(e.headers.get("content-range")??""),i=e.headers.get("etag")??"",a=e.headers.get("content-length"),c=Number(o?.[1]),d=Number(o?.[2]),s=Number(o?.[3]);if(e.status!==206||o===null||![c,d,s].every(Number.isSafeInteger)||s<=0||c!==n||d!==Math.min(t,s-1)||d<c||!/^"[\x21\x23-\x7E\x80-\xFF]*"$/.test(i)||a!==null&&(!/^\d+$/.test(a)||Number(a)!==d-c+1)||e.headers.get("content-encoding")!==null&&e.headers.get("content-encoding")!=="identity")throw new K("download-range-invalid","\u5206\u6BB5\u4E0B\u8F7D\u54CD\u5E94\u65E0\u6548\uFF1A\u9700\u8981 206\u3001\u6B63\u786E Content-Range\u3001\u5F3A ETag \u548C\u672A\u538B\u7F29\u5B57\u8282\uFF1B\u8BF7\u68C0\u67E5\u4E0B\u8F7D\u57DF\u540D\u7684 CORS ExposeHeaders");if(r!==void 0&&(s!==r.total||i!==r.etag))throw new K("download-object-changed","\u5206\u6BB5\u4E0B\u8F7D\u671F\u95F4\u6587\u4EF6\u7248\u672C\u53D1\u751F\u53D8\u5316\uFF0C\u8BF7\u91CD\u65B0\u4E0B\u8F7D");return {end:d,total:s,etag:i}}function Hi(e=true,n,t=Pn){if(!Number.isSafeInteger(t)||t<=0)throw new RangeError("\u4E0B\u8F7D\u5206\u6BB5\u5927\u5C0F\u5FC5\u987B\u4E3A\u6B63\u6574\u6570");let r=Wn(Yn),o=new WeakMap;async function i(c,d){if(!c.ok)throw new K("download-range-failed",`\u5A92\u4F53\u4E0B\u8F7D\u5931\u8D25\uFF1AHTTP ${c.status}`);return d.onProgress===void 0||c.body===null?d.preferBlob===true?await c.blob():new Uint8Array(await c.arrayBuffer()):yl(c,d.onProgress,d.expectedBytes,d.preferBlob===true)}async function a(c){let d=c.resume?.transport,s=typeof d=="object"&&d!==null?o.get(d):void 0;if(c.resume!==void 0&&(s===void 0||s.url!==c.url))throw c.onResumeInvalidated?.(),new K("download-range-invalid","\u4E0B\u8F7D\u65AD\u70B9\u4E0D\u5C5E\u4E8E\u5F53\u524D\u8D44\u6E90\u6216\u4F20\u8F93\u5B9E\u4F8B\uFF0C\u8BF7\u91CD\u65B0\u4E0B\u8F7D");let g=new AbortController,b=()=>g.abort(c.signal?.reason);c.signal?.aborted?b():c.signal?.addEventListener("abort",b,{once:true});let P=g.signal,y=s===void 0?[]:[...s.blobs],M=y.reduce((p,u)=>p+(u?.size??0),0),I=s?.object,E=s?.mimeType??"",D=0,R,x=false,w=false,_=p=>{!w&&p instanceof K&&(p.code==="download-range-invalid"||p.code==="download-object-changed")&&(w=true,R=p),x||(x=true,R=p,g.abort());};function U(){if(c.onResumable===void 0||I===void 0||M===0)return;let p=Object.freeze({});o.set(p,Object.freeze({url:c.url,object:Object.freeze({...I}),mimeType:E,blobs:Object.freeze([...y])}));let u=Object.freeze({bytesDownloaded:M,bytesTotal:I.total,transport:p});c.onResumable(u);}function l(){let p=I.total;c.onProgress?.({percent:Math.min(99,Math.round(M/p*100)),bytesTransferred:M,bytesTotal:p});}function f(p){return I!==void 0&&y[p]?.size===Math.min(t,I.total-p*t)}async function m(p,u,h){let A=p.body?.getReader();if(A===void 0)throw new K("download-range-invalid","\u5206\u6BB5\u4E0B\u8F7D\u6CA1\u6709\u54CD\u5E94\u5B57\u8282\u6D41");let k=()=>{A.cancel().catch(()=>{});};P.addEventListener("abort",k,{once:true});let v=0;try{for(;;){if(P.aborted)throw new DOMException("\u5A92\u4F53\u4E0B\u8F7D\u5DF2\u53D6\u6D88","AbortError");let S=await A.read();if(P.aborted)throw new DOMException("\u5A92\u4F53\u4E0B\u8F7D\u5DF2\u53D6\u6D88","AbortError");if(S.done)break;if(v+=S.value.byteLength,v>h)throw new K("download-range-invalid","\u5206\u6BB5\u4E0B\u8F7D\u5B57\u8282\u6570\u8D85\u8FC7 Content-Range");let T=y[u];y[u]=new Blob(T===void 0?[S.value]:[T,S.value]),M+=S.value.byteLength,U(),l();}if(v!==h)throw new K("download-range-invalid","\u5206\u6BB5\u4E0B\u8F7D\u5B57\u8282\u6570\u4E0E Content-Range \u4E0D\u4E00\u81F4");l();}finally{P.removeEventListener("abort",k),await A.cancel().catch(()=>{}),A.releaseLock();}}async function C(p,u=false){let h=u?0:p*t+(y[p]?.size??0),A=u?0:I===void 0?h+t-1:Math.min((p+1)*t-1,I.total-1);return r(P,async()=>{let k=await fetch(c.url,{signal:P,cache:"no-store",headers:{Range:`bytes=${h}-${A}`}});if(s===void 0&&I===void 0&&p===0&&k.status===200)return n?.record("info","sdk","media","download-range-unavailable",()=>({data:{reason:"server-returned-full-response"}})),y[0]=await i(k,{...c,preferBlob:true}),"single";if(k.status===429||k.status>=500)throw await k.body?.cancel().catch(()=>{}),new K("download-range-failed",`\u5A92\u4F53\u4E0B\u8F7D\u5931\u8D25\uFF1AHTTP ${k.status}`);let v;try{v=ml(k,h,A,I);}catch(S){throw await k.body?.cancel().catch(()=>{}),S}if(I===void 0&&(I=v,E=k.headers.get("content-type")??"",n?.record("debug","sdk","media","download-range-started",()=>({data:{bytesTotal:v.total,partSizeBytes:t,concurrency:tr}}))),u){if((await k.arrayBuffer()).byteLength!==1)throw new K("download-range-invalid","\u4E0B\u8F7D\u5BF9\u8C61\u6821\u9A8C\u54CD\u5E94\u957F\u5EA6\u65E0\u6548")}else await m(k,p,v.end-h+1);return "range"},c.getPriority)}try{if(I!==void 0)for(;D<Math.ceil(I.total/t)&&f(D);)D+=1;let p=I!==void 0&&D===Math.ceil(I.total/t),u=await C(D++,p);if(u==="range"){let A=Math.ceil(I.total/t),k=Array.from({length:Math.min(tr,Math.max(0,A-D))},async()=>{try{for(;!P.aborted&&D<A;){let v=D++;f(v)||await C(v);}}catch(v){_(v);}});if(await Promise.allSettled(k),x)throw R}if(P.aborted)throw new DOMException("\u5A92\u4F53\u4E0B\u8F7D\u5DF2\u53D6\u6D88","AbortError");let h=[];if(u==="range")for(let A=0;A<Math.ceil(I.total/t);A+=1){if(!f(A))throw new K("download-range-invalid","\u4E0B\u8F7D\u4ECD\u7F3A\u5C11\u5206\u6BB5\uFF0C\u4E0D\u80FD\u4EA4\u4ED8\u5B8C\u6574\u6587\u4EF6");h.push(y[A]);}return u==="single"?y[0]:new Blob(h,{type:E})}catch(p){throw g.abort(),w||p instanceof K&&(p.code==="download-range-invalid"||p.code==="download-object-changed")?c.onResumeInvalidated?.():U(),n?.record("warn","sdk","media","download-range-failed",()=>({data:{code:p instanceof K?p.code:"download-failed"}})),p}finally{c.signal?.removeEventListener("abort",b);}}return async function(d){if(d.resume!==void 0&&!e)throw d.onResumeInvalidated?.(),new K("download-range-invalid","\u5F53\u524D\u4E0B\u8F7D\u5668\u672A\u5F00\u542F\u65AD\u70B9\u4E0B\u8F7D\uFF0C\u8BF7\u91CD\u65B0\u4E0B\u8F7D");if(e&&(d.resume!==void 0||d.onResumable!==void 0||d.preferBlob===true&&Number.isFinite(d.expectedBytes)&&d.expectedBytes>t)){let s=await a(d);return d.preferBlob===true?s:new Uint8Array(await s.arrayBuffer())}return r(d.signal,async()=>{if(d.onProgress!==void 0&&typeof XMLHttpRequest<"u")return gl(d);let s=await fetch(d.url,d.signal===void 0?{}:{signal:d.signal});return i(s,d)},d.getPriority)}}function gl(e){let n=e.preferBlob===true;return new Promise((t,r)=>{let o=new XMLHttpRequest,i=false,a=()=>{},c=()=>{e.signal?.removeEventListener("abort",a),o.onprogress=null,o.onload=null,o.onerror=null,o.onabort=null;},d=s=>{i||(i=true,c(),s());};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=s=>{let g=e.expectedBytes!==void 0&&Number.isFinite(e.expectedBytes)&&e.expectedBytes>0?Math.floor(e.expectedBytes):0,b=s.lengthComputable&&s.total>0?s.total:g,P=b>0?Math.min(99,Math.round(s.loaded/b*100)):0;e.onProgress?.({percent:P,bytesTransferred:s.loaded,bytesTotal:b});},o.onload=()=>{if(o.status<200||o.status>=300){d(()=>r(new Error(`media download \u5931\u8D25\uFF1AHTTP ${o.status}`)));return}let s=o.response;if(n){if(!(typeof Blob<"u"&&s instanceof Blob)){d(()=>r(new Error("media download \u5931\u8D25\uFF1AXHR \u672A\u8FD4\u56DE Blob")));return}d(()=>t(s));return}if(!(s instanceof ArrayBuffer)){d(()=>r(new Error("media download \u5931\u8D25\uFF1AXHR \u672A\u8FD4\u56DE ArrayBuffer")));return}d(()=>t(new Uint8Array(s)));},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 yl(e,n,t,r=false){let o=Number(e.headers.get("content-length")??0),i=t!==void 0&&Number.isFinite(t)&&t>0?Math.floor(t):0,a=Number.isFinite(o)&&o>0?o:i,c=0,d=e.body.pipeThrough(new TransformStream({transform(g,b){c+=g.byteLength;let P=a>0?Math.min(99,Math.round(c/a*100)):0;n({percent:P,bytesTransferred:c,bytesTotal:a}),b.enqueue(g);}})),s=new Response(d,{headers:e.headers});return r?await s.blob():new Uint8Array(await s.arrayBuffer())}var Fi=async(e,n)=>{if(e?.aborted)throw new DOMException("media upload canceled","AbortError");return await n()},rr="is missing ETag in UploadPart response";function or(e){if(typeof e!="object"||e===null)return false;let n=e;return n.name==="NoSuchUpload"||n.Code==="NoSuchUpload"}function hl(e,n,t){return e instanceof Uint8Array?e.subarray(n,t):e.slice(n,t)}async function qi(e,n,t){return e.transformPart===void 0?n:await e.transformPart(n instanceof Blob?n:new Blob([n]),t)}function ji(e,n){let t=new Map,r=n,o=n;function i(){if(e.onProgress===void 0)return;let a=r;for(let s of t.values())a+=s;o=Math.max(o,a);let c=e.sourceBytes,d=c>0?Math.min(99,Math.round(o/c*100)):0;e.onProgress({percent:d,bytesTransferred:o,bytesTotal:c,phase:c>0&&o>=c?"finalizing":"transferring"});}return {trackPart(a,c){t.set(a,c),i();},completePart(a,c){t.delete(a),r+=c,i();},report:i}}function $i(e,n){let t=(o,i)=>{if(i.query?.uploadId!==void 0&&i.query.partNumber===void 0)return;let a=i.query?.partNumber,c=a===void 0?0:Number(a);Number.isFinite(c)&&n.trackPart(c,o.loaded);},r=e;return r.on("xhr.upload.progress",t),()=>{r.off?.("xhr.upload.progress",t),r.removeListener?.("xhr.upload.progress",t);}}async function Ji(e,n,t=Fi){let r=ji(n,0),o=$i(e.handler,r);try{await t(n.signal,async()=>{let i=await qi(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 ir(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 ar(e){let{target:n,content:t,partSize:r,queueSize:o,runUpload:i=Fi}=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>Xn)throw new Error(`media upload: \u5206\u7247\u6570 ${a} \u8D85\u8FC7 S3 \u4E0A\u9650 ${Xn}\uFF0C\u9700\u8981\u653E\u5927\u5206\u7247\u5927\u5C0F`);let c=ir(e.resume,n,t.sourceBytes,r),d=new Map;if(c!==void 0)for(let x of c)d.set(x.partNumber,x);let s=c===void 0?"":e.resume.uploadId;if(s===""){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");s=x.UploadId,d.clear();}let g=x=>Math.min(r,t.sourceBytes-(x-1)*r),b=0;for(let x of d.keys())b+=g(x);let P=ji(t,b),y=$i(n.handler,P),M=()=>({bucket:n.bucket,key:n.key,uploadId:s,partSize:r,sourceBytes:t.sourceBytes,parts:[...d.values()].sort((x,w)=>x.partNumber-w.partNumber)});e.onResumable?.(M()),P.report();let I=new AbortController,E=()=>I.abort();t.signal?.addEventListener("abort",E,{once:true}),t.signal?.aborted&&E();let D=1;async function R(){for(;;){if(I.signal.aborted)return;let x=D;if(D+=1,x>a)return;if(d.has(x))continue;let w=(x-1)*r,_=Math.min(w+r,t.sourceBytes),U=await i(I.signal,async()=>{let l=await qi(t,hl(t.data,w,_),x);if(I.signal.aborted)throw new DOMException("media upload canceled","AbortError");return await n.client.send(new n.commands.UploadPartCommand({Bucket:n.bucket,Key:n.key,UploadId:s,PartNumber:x,Body:l}),{abortSignal:I.signal})});if(U.ETag===void 0||U.ETag==="")throw new Error(`media upload: Part ${x} ${rr}`);d.set(x,{partNumber:x,etag:U.ETag}),P.completePart(x,_-w),e.onResumable?.(M());}}try{let x;if(await Promise.allSettled(Array.from({length:Math.min(In,a,Math.max(1,o))},async()=>{try{await R();}catch(w){let _=w instanceof Error&&w.name==="AbortError";(x===void 0||!_&&Ge(x.cause)!==void 0&&Ge(w)===void 0)&&(x={cause:w}),E();}})),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:s,MultipartUpload:{Parts:[...d.values()].sort((w,_)=>w.partNumber-_.partNumber).map(w=>({PartNumber:w.partNumber,ETag:w.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",E),y();}}async function vn(e,n){try{await e.client.send(new e.commands.AbortMultipartUploadCommand({Bucket:n.bucket,Key:n.key,UploadId:n.uploadId}));}catch(t){if(!or(t))throw t}}var bl=3e4;function Vi(e,n){e.handle=async(t,r={})=>{let o=new n({}),i=r.abortSignal,a=new AbortController,c,d=false,s,g=0,b=0,P=()=>{clearTimeout(c),c=setTimeout(()=>{d=true,a.abort();},bl);},y=()=>a.abort(i?.reason),M=D=>{D.loaded>g&&(g=D.loaded,P()),e.emit("xhr.upload.progress",D,t);},I=D=>{D.loaded>b&&(b=D.loaded,P()),e.emit("xhr.progress",D,t);},E=()=>{s?.readyState===2&&P();};o.on("before.xhr.send",D=>{s=D,s.addEventListener("readystatechange",E),P();}),o.on("xhr.upload.progress",M),o.on("xhr.progress",I),i?.addEventListener("abort",y,{once:true}),i?.aborted&&y();try{let D=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(D.response.statusCode===0)throw new Error("XHR_HTTP_HANDLER_ERROR: Network request failed before receiving an HTTP response");return D}catch(D){throw d?new K("upload-timeout","media upload: \u7F51\u7EDC\u8FDE\u7EED 30 \u79D2\u6CA1\u6709\u63A8\u8FDB",{cause:D}):D}finally{clearTimeout(c),i?.removeEventListener("abort",y),s?.removeEventListener("readystatechange",E),o.removeAllListeners(),o.destroy();}};}function wl(e){if(e instanceof Uint8Array)return e.byteLength;if(typeof Blob<"u"&&e instanceof Blob)return e.size}var zi="\u5206\u7247\u4E0A\u4F20\u8981\u6C42\u8BE5 bucket \u7684 CORS \u653E\u884C POST\uFF08Create/CompleteMultipartUpload\uFF09\u3001DELETE\uFF08AbortMultipartUpload\uFF09\u5E76 ExposeHeaders: ETag";function Cl(e){return e instanceof Error&&e.message.includes(rr)}function Pl(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${zi}`,{cause:t}):e instanceof K?e:Cl(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${zi}`,{cause:e}):e}var Il=new Set(["upload-source-invalid","upload-resume-unavailable","multipart-etag-missing","multipart-abort-failed"]);function sr(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 An;function Wi(){if(An!==void 0)return An;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 An===n&&(An=void 0),t});return An=n,n}function Yi(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 vl(e){if(e===void 0)return "";let n=e.lastIndexOf(".");return n>=0?e.slice(n):""}function Al(e){return globalThis.crypto.randomUUID()+vl(e)}function Xi(e,n){let t=e.keyPrefix??"";return t===""||n.startsWith(t)?n:`${t}${n}`}function Sl(e,n){let t=Zr(e.getUploadCredentials),r=Wn(Yn);function o(y,M){if(y==="avatar")return e.avatarBucket??"";if(M==="channel"){let I=e.channelBuckets?.[y]??"";if(I!=="")return I}return e.buckets[y]??""}function i(y,M,I,E=false){let{region:D}=M;return Vi(I,y.XhrHttpHandler),new y.S3Client({region:D,maxAttempts:E?1:3,credentials:{accessKeyId:M.accessKeyId,secretAccessKey:M.secretAccessKey,sessionToken:M.sessionToken,...M.expiresAtSeconds===void 0?{}:{expiration:new Date(M.expiresAtSeconds*1e3)}},useAccelerateEndpoint:(e.useAccelerateEndpoint??true)&&!D.toLowerCase().startsWith("cn-"),requestChecksumCalculation:"WHEN_REQUIRED",requestHandler:I})}async function a(y,M,I,E,D,R,x,w){let{multipart:_,partSize:U}=Qn(x,e.multipartTransfer===true&&e.multipartUpload!==false),l=new y.XhrHttpHandler({}),f=i(y,D,l,M.recoveryManaged===true),m={client:f,handler:l,commands:y.commands,bucket:D.bucket,key:R,...M.mimeType!==void 0&&M.mimeType!==""?{mimeType:M.mimeType}:{}},C={data:M.data,sourceBytes:x,...M.onProgress===void 0?{}:{onProgress:M.onProgress},...M.signal===void 0?{}:{signal:M.signal},...M.transformPart===void 0?{}:{transformPart:M.transformPart}},p=M.resume,u=sr(p),h=_&&u?.logicalBucket===I&&ir(u.session,m,x,U)!==void 0,A=h?u?.session:void 0,k=T=>{A=T;let O=0;for(let N of T.parts)O+=Math.min(T.partSize,T.sourceBytes-(N.partNumber-1)*T.partSize);M.onResumable?.({bytesUploaded:O,transport:{logicalBucket:I,objectName:E,session:T}});},v=()=>{A=void 0,delete M.resume,M.onResumeInvalidated?.();},S;try{if(w.mode==="retain"&&p!==void 0&&!h)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(u!==void 0&&!h){try{u.logicalBucket===I?await vn(m,u.session):await b(p);}catch(O){throw w.cleanupFailed=!0,Yi(w.retryCause,O)}delete M.resume;}if(M.signal?.aborted)throw new DOMException("media upload canceled","AbortError");if(!_){await Ji(m,C,r);return}let T=A;try{await ar({target:m,content:C,partSize:U,queueSize:In,runUpload:r,...T===void 0?{}:{resume:T},onResumable:k,onCompleted:v});}catch(O){if(M.signal?.aborted||!or(O)||w.mode==="discard"&&T===void 0)throw O;if(w.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:O});A=void 0,await ar({target:m,content:C,partSize:U,queueSize:In,runUpload:r,onResumable:k,onCompleted:v});}}catch(T){if(w.mode==="retain"&&M.signal?.aborted===true&&!["offline","paused","page-preserve","cancelled-preserve"].includes(M.signal.reason)&&A!==void 0)try{await vn(m,A),v();}catch(O){S=O;}throw w.cleanupFailed?T:Pl(T,_,S)}finally{f.destroy();}}async function c(y,M,I,E={mode:"retain"}){let D=o(M,I);if(D==="")throw new K("bucket-unconfigured",`media upload: kind=${M} \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 R=wl(y.data);if(R===void 0)throw new K("upload-source-invalid","media upload: \u4E0A\u4F20\u5185\u5BB9\u5FC5\u987B\u662F Uint8Array \u6216 Blob");Qn(R,e.multipartTransfer===true&&e.multipartUpload!==false);let x=await Wi();if(E.mode==="discard"&&y.signal?.aborted)throw new DOMException("media upload canceled","AbortError");let w=sr(y.resume,D)?.objectName??Al(y.filename),_={...y,onResumable:l=>{_.resume=l,y.onResumable?.(l);},onResumeInvalidated:()=>{delete _.resume,y.onResumeInvalidated?.();}},U;try{U=await t.resolve(D,y.forceRefreshCredentials===!0?{forceRefresh:!0}:void 0);let l=Xi(U,w);try{await a(x,_,D,w,U,l,R,E);}catch(f){if(y.signal?.aborted||y.recoveryManaged===!0||f instanceof K&&Il.has(f.code))throw f;E.retryCause=f,U=await t.resolve(D,{forceRefresh:!0}),l=Xi(U,w),await a(x,_,D,w,U,l,R,E);}if(y.signal?.aborted)throw new DOMException("media upload canceled","AbortError");return y.onProgress?.({percent:100,bytesTransferred:R,bytesTotal:R,phase:"finalizing"}),{url:`${U.dnsPoint}/${l}`}}catch(l){let f=sr(_.resume);if(E.mode==="discard"&&!E.cleanupFailed&&f!==void 0&&U!==void 0){let C=new x.XhrHttpHandler({}),p=i(x,U,C);try{await vn({client:p,commands:x.commands},f.session);}catch(u){throw Yi(l,u)}finally{p.destroy();}}let m=Ge(l);throw m!==void 0&&y.onFailure?.(m),l instanceof K&&(l.code==="upload-resume-unavailable"?y.onFailure?.("resume-unavailable"):l.code==="multipart-abort-failed"&&y.onFailure?.("cleanup-unconfirmed")),l}}function d(y){return c(y,y.kind,y.conversationType)}function s(y){return c({data:y.data,...y.filename===void 0?{}:{filename:y.filename},...y.mimeType===void 0?{}:{mimeType:y.mimeType},...y.signal===void 0?{}:{signal:y.signal},...y.onProgress===void 0?{}:{onProgress:y.onProgress}},y.kind,void 0,{mode:"discard"})}function g(y){return c(y,"avatar")}async function b(y){let M=y.transport;if(M?.session===void 0||M.session.uploadId==="")return;let I=await Wi(),E=await t.resolve(M.logicalBucket),D=new I.XhrHttpHandler({}),R=i(I,E,D);try{await vn({client:R,commands:I.commands},M.session);}finally{R.destroy();}}let P=Hi(e.multipartTransfer===true&&e.rangeDownload!==false,n);return {upload:d,uploadAvatar:g,uploadResource:s,download:P,abandonUpload:b}}var V=class extends Error{constructor(t,r){super(`Media upload recovery ${t}`,r);this.reason=t;this.name="MediaUploadRecoveryError",this.code=`IM_MEDIA_UPLOAD_RECOVERY_${t.toUpperCase()}`;}reason;code};function ee(){throw new V("invalid")}function _e(e){return typeof e!="object"||e===null||Array.isArray(e)?ee():e}function we(e,n=4096){return typeof e!="string"||e.length===0||e.length>n?ee():e}function Be(e,n=0){return typeof e!="number"||!Number.isSafeInteger(e)||e<n?ee():e}function cr(e){return typeof e!="number"||!Number.isFinite(e)||e<0?ee():e}function Zn(e,n=4096){if(e!==void 0)return typeof e!="string"||e.length>n?ee():e}function et(e){let n=_e(e);if(n.version!==1||n.kind!=="video"&&n.kind!=="file"||typeof n.encrypted!="boolean")return ee();let t=_e(n.ref);if(t.conversationType!=="direct"&&t.conversationType!=="group"&&t.conversationType!=="channel")return ee();let r=_e(n.source),o=Be(r.size,1),i=we(r.sha256,64);if(!/^[a-f0-9]{64}$/.test(i))return ee();let a=_e(n.resume),c=_e(a.transport),d=_e(c.session),s=Be(d.partSize,8);if(s%8!==0||Be(d.sourceBytes,1)!==o||!Array.isArray(d.parts)||d.parts.length>1e4)return ee();let g=new Set,b=0,P=d.parts.map(x=>{let w=_e(x),_=Be(w.partNumber,1);return _>Math.ceil(o/s)||g.has(_)?ee():(g.add(_),b+=Math.min(s,o-(_-1)*s),{partNumber:_,etag:we(w.etag,1024)})});if(Be(a.bytesUploaded)!==b)return ee();let y;if(n.encrypted){if(!(n.teaKey instanceof Uint8Array)||n.teaKey.length!==16)return ee();y=new Uint8Array(n.teaKey);}else if(n.teaKey!==void 0)return ee();let M;if(n.preview!==void 0){let x=_e(n.preview),w;if(x.thumbData!==void 0){if(!(x.thumbData instanceof Uint8Array)||x.thumbData.byteLength>16*1024)return ee();w=new Uint8Array(x.thumbData);}M={width:cr(x.width),height:cr(x.height),...x.duration===void 0?{}:{duration:cr(x.duration)},...w===void 0?{}:{thumbData:w}};}if(n.filesAlbum!==void 0&&typeof n.filesAlbum!="boolean")return ee();let I=Zn(r.filename),E=Zn(r.mimeType,256),D=Zn(n.caption,16384),R=Zn(n.refMessageId);return {version:1,ref:{conversationType:t.conversationType,conversationId:we(t.conversationId)},messageId:we(n.messageId),kind:n.kind,createdAt:Be(n.createdAt),savedAt:Be(n.savedAt),encrypted:n.encrypted,source:{size:o,sha256:i,...I===void 0?{}:{filename:I},...E===void 0?{}:{mimeType:E}},...y===void 0?{}:{teaKey:y},...M===void 0?{}:{preview:M},...D===void 0?{}:{caption:D},...R===void 0?{}:{refMessageId:R},...n.filesAlbum===void 0?{}:{filesAlbum:n.filesAlbum},resume:{bytesUploaded:b,transport:{logicalBucket:we(c.logicalBucket),objectName:we(c.objectName),session:{bucket:we(d.bucket),key:we(d.key),uploadId:we(d.uploadId),partSize:s,sourceBytes:o,parts:P}}}}}function Xe(e){if(e?.aborted)throw new DOMException("Source fingerprint cancelled","AbortError")}async function Qi(e,n){Xe(n);let t=e instanceof Uint8Array?e.byteLength:e.size,r=await createSHA256();Xe(n);let o=1024*1024,i=performance.now();for(let a=0;a<t;a+=o){Xe(n);let c=e instanceof Uint8Array?e.subarray(a,a+o):new Uint8Array(await e.slice(a,a+o).arrayBuffer());Xe(n),r.update(c),performance.now()-i>=8&&(await new Promise(d=>setTimeout(d,0)),Xe(n),i=performance.now());}return Xe(n),{size:t,sha256:r.digest("hex")}}var _l=1440*60*1e3,kl=3;function ke(e,n){if(!e.conversationId||!n||!["direct","group","channel"].includes(e.conversationType))throw new V("invalid");return JSON.stringify([e.conversationType,e.conversationId,n])}function El(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,c=Promise.resolve(),d=false,s,g=false,b=false,P=0,y=0,M,I,E,D=new Map,R=new WeakMap,x=0;function w(){if(d)throw new V("unavailable")}function _(){R=new WeakMap,x+=1;}function U(v,S){if(w(),v?.aborted)throw new DOMException("Source fingerprint cancelled","AbortError");if(S!==x)throw new V("unavailable")}function l(){return a??=openDB(t,1,{upgrade(v){v.createObjectStore("uploads");},blocking(){k();},terminated(){d=true,_(),m();}}),a}function f(v,S=false){try{if(w(),S&&(!g||b))throw new V("unavailable")}catch(N){return Promise.reject(N)}let T=y,O=c.then(async()=>{if(S&&(!g||T!==y))throw new V("unavailable");try{return await v()}catch(N){throw N instanceof V?N:new V("storage",{cause:N})}});return c=O.then(()=>{},()=>{}),O}function m(){!g||b||(b=true,c.then(()=>{g=false,P=0,y+=1,M?.(),M=void 0;}));}async function C(v){if(w(),v?.aborted)throw new DOMException("Recovery lease cancelled","AbortError");if(!o||b)throw new V("unavailable");if(g||(I===void 0&&(I=new Promise((O,N)=>{try{E=o.request(r,{mode:"exclusive",ifAvailable:!0},async j=>{if(!j||d){N(new V("unavailable"));return}g=!0,y+=1;let L=new Promise(X=>{M=X;});O(),await L;}),E.catch(()=>N(new V("unavailable"))).finally(()=>{I=void 0,b=!1;});}catch{N(new V("unavailable"));}})),await I),d||b||v?.aborted)throw P===0&&m(),v?.aborted?new DOMException("Recovery lease cancelled","AbortError"):new V("unavailable");P+=1;let S=y,T=false;return {release(){T||S!==y||(T=true,P-=1,P===0&&m());}}}function p(v){return i()-v.savedAt>=_l}function u(v){let S=ke(v.ref,v.messageId),T=Math.min(D.get(S)??v.savedAt,v.savedAt);return D.set(S,T),T}async function h(){let S=(await l()).transaction("uploads",g&&!b?"readwrite":"readonly");try{let T=await S.store.getAll(),O=[];for(let N of T){let j=et(N);u(j),p(j)?S.mode==="readwrite"&&await S.store.delete(ke(j.ref,j.messageId)):O.push(j);}return await S.done,O}catch(T){try{S.abort();}catch{}throw await S.done.catch(()=>{}),T}}function A(v){let S;try{S=et(v);}catch(T){return Promise.reject(T)}return f(async()=>{let O=(await l()).transaction("uploads","readwrite");try{let N=ke(S.ref,S.messageId),j=await O.store.getAll(),L=0,X;for(let rt of j){let fe=et(rt);u(fe),p(fe)?await O.store.delete(ke(fe.ref,fe.messageId)):(L+=1,ke(fe.ref,fe.messageId)===N&&(X=fe));}if(X){if(X.source.sha256!==S.source.sha256||X.source.size!==S.source.size||X.kind!==S.kind||X.encrypted!==S.encrypted||X.teaKey?.some((rt,fe)=>rt!==S.teaKey?.[fe]))throw new V("invalid");S.savedAt=X.savedAt;}else if(L>=kl)throw new V("capacity");let yr=D.get(N);if(yr!==void 0&&(S.savedAt=Math.min(yr,S.savedAt)),p(S)||S.savedAt>i())throw new V("invalid");await O.store.put(S,N),await O.done,u(S);}catch(N){try{O.abort();}catch{}throw await O.done.catch(()=>{}),N}},true)}async function k(){return s||(d=true,_(),s=(async()=>{await c;try{a&&(await a).close();}finally{m(),await E;}})(),s)}return {get:(v,S)=>f(async()=>{let T=ke(v,S);return (await h()).find(O=>ke(O.ref,O.messageId)===T)}),list:()=>f(h),save:A,remove:(v,S)=>f(async()=>{let T=ke(v,S);await(await l()).delete("uploads",T),D.delete(T);},true),clear:()=>(_(),f(async()=>{await(await l()).clear("uploads"),D.clear();},true)),drain:()=>c,fingerprint:async(v,S)=>{let T=x;U(S,T);let O=v instanceof Blob?v:void 0,N=O===void 0?void 0:R.get(O);if(N!==void 0)return {...N};let j=await Qi(v,S);U(S,T);let L={size:j.size,sha256:j.sha256};return O!==void 0&&R.set(O,L),{...L}},acquireLease:C,close:k}}function Rl(e,n={}){let t=n.locks!==void 0?n.locks:globalThis.navigator?.locks,r=n.createChannel!==void 0?n.createChannel:typeof globalThis.BroadcastChannel=="function"?b=>new BroadcastChannel(b):void 0,o=typeof globalThis.addEventListener=="function"?globalThis:void 0,i=n.pageLifecycleTarget!==void 0?n.pageLifecycleTarget:o,a,c=0;function d(b){try{e.onError(b);}catch{}}function s(b,P=false,y="stopped"){if(a===b&&!P&&(a=void 0),b.resolveReady(false),b.closed)return;b.closed=true,b.controller.abort();let M=[],I=R=>{try{R();}catch(x){M.push(x);}};for(let R of b.cleanups.splice(0))I(R);I(()=>b.channel.close());let E=b.release;b.release=void 0;let D=b.owned;b.owned=false;try{let R=D?e.onChange(!1,y):void 0;Promise.resolve(R).then(()=>E?.(),d);}catch(R){d(R);}for(let R of M)d(R);}function g(b,P){s(b,true),d(P);}return {start(b){if(a?.key===b)return a.ready;let P=++c;if(a&&s(a),P!==c)return Promise.resolve(false);if(!b||!t||!r)return d(new Error("Browser connection ownership requires a key, Web Locks and BroadcastChannel")),Promise.resolve(false);let y;try{y=r(`im-connection:${b}`);}catch(x){return d(x),Promise.resolve(false)}let M,I=new Promise(x=>{M=x;}),E={key:b,channel:y,cleanups:[],owned:false,closed:false,ready:I,resolveReady:M,controller:new AbortController,claim:{startedAt:Date.now(),id:globalThis.crypto.randomUUID()}};a=E;let D=x=>{if(a!==E||E.closed||typeof x.data!="object"||x.data===null)return;let w=x.data;w.type==="session-ended"?s(E):w.type==="takeover"&&typeof w.startedAt=="number"&&Number.isFinite(w.startedAt)&&typeof w.id=="string"&&w.id!==E.claim.id&&(w.startedAt>E.claim.startedAt||w.startedAt===E.claim.startedAt&&w.id>E.claim.id?s(E,true,"replaced"):y.postMessage({type:"takeover",...E.claim}));},R=x=>{a===E&&x.persisted===true&&s(E);};try{i&&(E.cleanups.push(()=>i.removeEventListener("pagehide",R)),i.addEventListener("pagehide",R)),E.cleanups.push(()=>y.removeEventListener("message",D)),y.addEventListener("message",D);let x=setTimeout(()=>g(E,new Error("Browser IM takeover timed out while waiting for the previous page to close")),15e3);E.cleanups.push(()=>clearTimeout(x)),t.request(`im-connection:${b}`,{mode:"exclusive",signal:E.controller.signal},async _=>{if(a!==E||E.closed||!_){E.resolveReady(!1);return}let U=new Promise(l=>{E.release=l;});E.owned=!0,clearTimeout(x);try{await e.onChange(!0);}catch(l){g(E,l);}E.resolveReady(a===E&&E.owned),await U;}).catch(_=>{a===E&&!E.closed&&g(E,_);}),y.postMessage({type:"takeover",...E.claim});}catch(x){g(E,x);}return E.ready},stop(){c++,a&&s(a);},terminate(){c++;let b=a;if(b)try{b.closed||b.channel.postMessage({type:"session-ended"});}catch(P){d(P);}finally{s(b);}},get owned(){return a?.owned??false}}}function Tl(){let e=globalThis;return typeof e.addEventListener=="function"&&typeof e.removeEventListener=="function"?e:void 0}function Dl(e,n={}){let t=n.target!==void 0?n.target:Tl(),r=n.visibilitySource!==void 0?n.visibilitySource:globalThis.document,o=n.pageLifecycleSource!==void 0?n.pageLifecycleSource:t,i=false,a=()=>e.onOnline?.(),c=()=>e.onOffline?.(),d=()=>{r!=null&&r.visibilityState==="visible"?e.onVisible?.():r!=null&&e.onHidden?.();},s=()=>e.onPageHide?.(),g=()=>e.onPageShow?.();return {start(){i||(i=true,r!=null&&r.visibilityState!=="visible"&&e.onHidden?.(),t!=null&&(e.onOnline!==void 0&&t.addEventListener("online",a),e.onOffline!==void 0&&t.addEventListener("offline",c)),r?.addEventListener("visibilitychange",d),o!=null&&(o.addEventListener("pagehide",s),o.addEventListener("pageshow",g)));},stop(){i&&(i=false,t!=null&&(t.removeEventListener("online",a),t.removeEventListener("offline",c)),r?.removeEventListener("visibilitychange",d),o!=null&&(o.removeEventListener("pagehide",s),o.removeEventListener("pageshow",g)));},supportsLifecycle:r!=null||o!=null,get running(){return i}}}var Bl=16,Zi=128,Nl=20,Kl=8*1024*1024,Ll=2*1024*1024,Gl=1440*60*1e3,Hl=2*1024*1024*1024,ea=1024*1024*1024,Fl=512*1024*1024,ql=256*1024*1024,jl=64*1024,dr="channel:list-version",na="schema:conversation-key-v1",ta="schema:message-server-order-v1",ra="schema:mini-program-game-preview-v1",oa="im:membership-reset-sort-keys",ur="default",Ne="\uFFFF";function ia(e){if(!(e===void 0||!/^\d+$/.test(e)))return e.replace(/^0+(?=\d)/,"")}function $l(e,n){let t=ia(e),r=ia(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 Sn(e){return `conversation:${L(e)}`}function pr(e,n){return `${L(e)}\0${n}`}function Jl(e){let n=L(e.conversation);return {...e,key:pr(e.conversation,e.messageId),conversationKey:n,conversation:{...e.conversation},sContent:e.sContent.slice()}}function Vl(e){let{key:n,conversationKey:t,...r}=e;return {...r,conversation:{...r.conversation},sContent:r.sContent.slice()}}function xn(e,n){return JSON.stringify([L(e),n])}function aa(e){let n=I(e);return {...e,messageKey:xn(n,e.id),conversationKey:L(n)}}function Ke(e){let{messageKey:n,conversationKey:t,...r}=e;return r}function nt(e){return {...e,id:L(J$1(e)),conversationId:e.id}}function fr(e){if(e.conversationId===void 0)return e;let{conversationId:n,...t}=e;return {...t,id:n}}function mr(e){return e.conversationType===void 0?e:{...e,conversationId:L(e),storageConversationId:e.conversationId}}function tt(e){if(e.storageConversationId===void 0)return e;let{storageConversationId:n,...t}=e;return {...t,conversationId:n}}function sa(e){return {...e,conversationId:L(K$1(e)),storageConversationId:e.conversationId}}function gr(e){if(e.storageConversationId===void 0)return e;let{storageConversationId:n,...t}=e;return {...t,conversationId:n}}function zl(e){return {...e,conversationKey:L(e.ref)}}function Wl(e){let{conversationKey:n,...t}=e;return t}function Yl(e){return typeof e=="string"?e:e.conversationId}function Mn(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 Xl(e){let n=e.transaction(["messages","sessions","readStates","pinnedMessages","meta"],"readwrite");try{let t=n.objectStore("meta");if((await t.get(na))?.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(aa(d));let o=n.objectStore("sessions"),i=new Map;for(let d of await o.getAll()){if(d.conversationId!==void 0)continue;let s=fr(d);i.set(s.id,s.type),await o.put(nt(s)),await o.delete(d.id);}let a=n.objectStore("readStates");for(let d of await a.getAll()){if(d.storageConversationId!==void 0)continue;let s=d.conversationType??i.get(d.conversationId);if(s===void 0)continue;let g={...d,conversationType:s};await a.put(mr(g)),await a.delete(d.conversationId);}let c=n.objectStore("pinnedMessages");for(let d of await c.getAll()){if(d.storageConversationId!==void 0)continue;let s=gr(d);await c.put(sa(s)),await c.delete(d.conversationId);}await t.put({key:na,value:!0}),await n.done;}catch(t){try{n.abort();}catch{}try{await n.done;}catch{}throw t}}async function Ql(e){let n$1=e.transaction(["messages","readStates","meta"],"readwrite");try{let t=n$1.objectStore("meta");if((await t.get(ta))?.value===!0){await n$1.done;return}let r=n$1.objectStore("readStates"),o=await r.getAll(),i=new Map;for(let g of o){let b=tt(g);b.conversationType==="channel"&&b.readCursorSortKey!==void 0&&b.readCursor!==""&&i.set(L(b),{cursor:b.readCursor});}let a=new Map,c=n$1.objectStore("messages"),d=await c.openCursor();for(;d!==null;){let g=d.value,b=L(I(g)),P=n(g),y=i.get(b);if(y!==void 0&&g.extensions?.historyCursor===y.cursor&&(y.sortKey=P),P!==g.sortKey){let M=a.get(b);M===void 0&&(M=new Map,a.set(b,M)),M.set(g.sortKey,P),await d.update({...g,sortKey:P});}d=await d.continue();}for(let g of o){let b=tt(g);if(b.conversationType===void 0)continue;let P=L(b),y=i.get(P)?.sortKey??(b.readCursorSortKey===void 0?void 0:a.get(P)?.get(b.readCursorSortKey));if(y===void 0&&b.readCursorSortKey!==void 0&&b.conversationType!=="channel"&&b.readCursor!==""){let M=await c.get(xn(b,b.readCursor));M!==void 0&&L(I(M))===P&&(y=M.sortKey);}y!==void 0&&y!==b.readCursorSortKey&&await r.put({...g,readCursorSortKey:y});}let s=await t.get(oa);if(Array.isArray(s?.value)){let g=!1,b=s.value.map(P=>{if(!Array.isArray(P)||P.length!==2||typeof P[0]!="string"||typeof P[1]!="string")return P;let y=a.get(P[0])?.get(P[1]);return y===void 0?P:(g=!0,[P[0],y])});g&&await t.put({key:oa,value:b});}await t.put({key:ta,value:!0}),await n$1.done;}catch(t){try{n$1.abort();}catch{}try{await n$1.done;}catch{}throw t}}async function Zl(e){let n=e.transaction(["messages","meta"],"readwrite");try{let t=n.objectStore("meta");if((await t.get(ra))?.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&&w(i)&&await o.delete(),o=await o.continue();}await t.put({key:ra,value:!0}),await n.done;}catch(t){try{n.abort();}catch{}try{await n.done;}catch{}throw t}}function lr(e){return `${e.kind}:${encodeURIComponent(e.messageId)}:${e.resourceVersion}`}async function Qe(e,n){let t=e.done;t.catch(()=>{});try{let r=await n();return await t,r}catch(r){try{e.abort();}catch{}throw await t.catch(()=>{}),r}}async function ep(e,n){let t=n.namespaceFactory.forAccount(e).name("durable","storage","indexed-db");typeof indexedDB>"u"||await deleteDB(t);}function np(e){let{namespaceFactory:n}=e,t=null,r=null,o=0,i=Promise.resolve(),a=Promise.resolve(),c=0,d=e.mediaAssetCache?.maxPendingWriteBytes??ql;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 s(){if(t===null)throw new Error("ImStoragePort \u672A open\uFF1A\u8BF7\u5148 open({ namespace }) \u518D\u8BFB\u5199");return t}function g(l){let f=o,m=r,C=()=>{if(f!==o||m!==r)throw new Error("\u6700\u8FD1\u5386\u53F2\u7F13\u5B58\u64CD\u4F5C\u5DF2\u5931\u6548\uFF1A\u8D26\u53F7\u6216\u5B58\u50A8\u5DF2\u6539\u53D8");s();},p=i.then(async()=>{C();let u=await l();return C(),u});return i=p.then(()=>{},()=>{}),p}function b(l,f){return l.version!==2||!Number.isFinite(l.fetchedAt)||l.fetchedAt<0||f-l.fetchedAt>=Gl}async function P(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 f=Date.now();if(l.byteLength>Ll||b(l,f))return false;let m=L(l.conversation),C=s().transaction("recentHistoryPages","readwrite");return Qe(C,async()=>{let p=await C.store.getAll(),u=[];for(let v of p)b(v,f)?await C.store.delete(v.conversationKey):v.conversationKey!==m&&u.push(v);let h={...l,conversationKey:m};u.push(h),u.sort((v,S)=>v.fetchedAt-S.fetchedAt||v.conversationKey.localeCompare(S.conversationKey));let A=u.reduce((v,S)=>v+S.byteLength,0),k=[];for(;u.length>Nl||A>Kl;){let v=u.shift();k.push(v),A-=v.byteLength;}if(k.includes(h))return !1;await C.store.put(h);for(let v of k)await C.store.delete(v.conversationKey);return !0})}async function y(l){if(typeof l!="string")return;let f=IDBKeyRange.bound([l,""],[l,Ne]),m=(await s().transaction("messages").store.index("by_conv_sort").getAll(f)).map(Ke);Mn(l,m);}function M(l){let f=a.then(l,l);return a=f.then(()=>{},()=>{}),f}function I$1(l,f){if(l!==o||f===null||f!==r)throw new Error("\u5A92\u4F53\u8D44\u4EA7\u7F13\u5B58\u8D26\u53F7\u4EE3\u9645\u5DF2\u5931\u6548")}function E(){return Math.max(0,Math.floor(e.mediaAssetCache?.now?.()??Date.now()))}function D(l,f){let m=e.mediaAssetCache?.strategies.resolve(l.kind)?.maxIdleMs;return m!==void 0&&(!Number.isSafeInteger(l.lastAccessedAt)||l.lastAccessedAt<0||f-l.lastAccessedAt>=m)}async function R(l,f){I$1(l,f);let m=await s().getAll("mediaAssetMeta");I$1(l,f);let C=E(),p=m.filter(h=>D(h,C));await w(p.map(h=>h.key),l,f),I$1(l,f);let u=new Set(p.map(h=>h.key));return m.filter(h=>!u.has(h.key))}async function x(l){let f=e.mediaAssetCache?.estimateStorage??(async()=>typeof navigator>"u"||navigator.storage?.estimate===void 0?{}:await navigator.storage.estimate());try{let{quota:m,usage:C}=await f();if(m===void 0||!Number.isFinite(m)||m<=0)return ea;let p=l.reduce((A,k)=>A+k.byteLength,0),u=Math.max(0,(C??0)-p),h=Math.max(Fl,Math.floor(m*.2));return Math.max(0,Math.min(Hl,Math.floor(m-u-h)))}catch{return ea}}async function w(l,f,m){if(l.length===0)return;I$1(f,m);let C=s().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all(l.flatMap(p=>[C.objectStore("mediaAssets").delete(p),C.objectStore("mediaAssetMeta").delete(p)])),await C.done;}async function _(l,f,m,C){I$1(l,f);let p=s(),u=e.mediaAssetCache?.strategies;if(u===void 0)return;let h=C??await p.getAll("mediaAssetMeta");I$1(l,f);let A=new Set;for(let T of u.list()){let O=h.filter(L=>L.kind===T.kind).sort((L,X)=>L.lastAccessedAt-X.lastAccessedAt),N=O.reduce((L,X)=>L+X.byteLength,0),j=O.length;for(let L of O){if(N<=T.softMaxBytes&&j<=T.maxEntries)break;A.add(L.key),N-=L.byteLength,j-=1;}}let k=h.filter(T=>!A.has(T.key)).sort((T,O)=>T.lastAccessedAt-O.lastAccessedAt),v=Math.max(0,Math.min(await x(h),m??Number.POSITIVE_INFINITY)),S=k.reduce((T,O)=>T+O.byteLength,0);for(let T of k){if(S<=v)break;A.add(T.key),S-=T.byteLength;}await w([...A],l,f);}async function U(l,f,m){I$1(f,m);let C=e.mediaAssetCache?.strategies.resolve(l.kind);if(C===void 0)return "skipped";let p=l.blob,u=p.size,h=await R(f,m),A=await x(h);if(I$1(f,m),u===0||u>C.maxEntryBytes||A<=0||u>Math.floor(A/2))return "skipped";let k=lr(l),v=E(),S=h.find(L=>L.key===k),T={key:k,kind:l.kind,messageId:l.messageId,resourceVersion:l.resourceVersion,byteLength:u,...l.mimeType===void 0?{}:{mimeType:l.mimeType},createdAt:S?.createdAt??v,lastAccessedAt:v},O=async()=>{I$1(f,m);let L=s().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all([L.objectStore("mediaAssets").put({key:k,blob:p}),L.objectStore("mediaAssetMeta").put(T)]),await L.done;},N=false;try{await O();}catch(L){if(!(L instanceof DOMException)||L.name!=="QuotaExceededError")throw L;N=true,await _(f,m,Math.max(0,A-u)),await O();}let j=S===void 0?[...h,T]:h.map(L=>L.key===k?T:L);return await _(f,m,void 0,N?void 0:j),I$1(f,m),await s().get("mediaAssets",k)===void 0?"skipped":"stored"}return {supportsChannelSyncCheckpoint:true,recentHistoryCache:{get:l=>g(async()=>{let f=L(l),m=s().transaction("recentHistoryPages","readwrite");return Qe(m,async()=>{let C=await m.store.get(f);if(C===void 0)return null;if(b(C,Date.now()))return await m.store.delete(f),null;let{conversationKey:p,...u}=C;return u})}),async put(l){let f=structuredClone(l);return g(()=>P(f))},delete:l=>g(async()=>{await s().delete("recentHistoryPages",L(l));}),clear:()=>g(async()=>{await s().clear("recentHistoryPages");})},async open({namespace:l}){if(t!==null&&r===l)return;t!==null&&(t.close(),t=null),r=l;let f=++o,m=n.forAccount(l).name("durable","storage","indexed-db"),C,p=await openDB(m,Bl,{upgrade(u,h,A,k){if(u.objectStoreNames.contains("messages"))k.objectStore("messages").indexNames.contains("by_conversation_key_sort")||k.objectStore("messages").createIndex("by_conversation_key_sort",["conversationKey","sortKey"]);else {let v=u.createObjectStore("messages",{keyPath:"messageKey"});v.createIndex("by_conv_sort",["conversationId","sortKey"]),v.createIndex("by_conversation_key_sort",["conversationKey","sortKey"]);}if(u.objectStoreNames.contains("sessions")||u.createObjectStore("sessions",{keyPath:"id"}),u.objectStoreNames.contains("readStates")||u.createObjectStore("readStates",{keyPath:"conversationId"}),u.objectStoreNames.contains("drafts")||u.createObjectStore("drafts",{keyPath:"conversationKey"}),u.objectStoreNames.contains("outbox")||u.createObjectStore("outbox",{keyPath:"id"}),u.objectStoreNames.contains("meta")||u.createObjectStore("meta",{keyPath:"key"}),u.objectStoreNames.contains("userProfiles")||u.createObjectStore("userProfiles",{keyPath:"id"}),u.objectStoreNames.contains("groupMembers")||u.createObjectStore("groupMembers",{keyPath:"groupId"}),u.objectStoreNames.contains("groupProfiles")||u.createObjectStore("groupProfiles",{keyPath:"id"}),u.objectStoreNames.contains("pinnedMessages")||u.createObjectStore("pinnedMessages",{keyPath:"conversationId"}),u.objectStoreNames.contains("channelProfiles")||u.createObjectStore("channelProfiles",{keyPath:"id"}),u.objectStoreNames.contains("channelMembers")||u.createObjectStore("channelMembers",{keyPath:["channelId","userId"]}),u.objectStoreNames.contains("channelMemberSnapshots")||u.createObjectStore("channelMemberSnapshots",{keyPath:"channelId"}),u.objectStoreNames.contains("channelMentionCandidateSnapshots")||u.createObjectStore("channelMentionCandidateSnapshots",{keyPath:"channelId"}),u.objectStoreNames.contains("conversationBackgrounds")||u.createObjectStore("conversationBackgrounds",{keyPath:"key"}),u.objectStoreNames.contains("mediaAssets")||u.createObjectStore("mediaAssets",{keyPath:"key"}),!u.objectStoreNames.contains("mediaAssetMeta")){let v=u.createObjectStore("mediaAssetMeta",{keyPath:"key"});v.createIndex("by_kind_access",["kind","lastAccessedAt"]),v.createIndex("by_access","lastAccessedAt");}u.objectStoreNames.contains("decryptRecoveries")||u.createObjectStore("decryptRecoveries",{keyPath:"key"}).createIndex("by_conversation","conversationKey"),h>0&&h<13&&(k.objectStore("mediaAssets").clear(),k.objectStore("mediaAssetMeta").clear()),u.objectStoreNames.contains("recentHistoryPages")||u.createObjectStore("recentHistoryPages",{keyPath:"conversationKey"}),h>0&&h<16&&k.objectStore("messages").keyPath!=="messageKey"&&(async()=>{let S=await k.objectStore("messages").getAll();for(let O of S)O.messageKey=xn(I(O),O.id);u.deleteObjectStore("messages");let T=u.createObjectStore("messages",{keyPath:"messageKey"});T.createIndex("by_conv_sort",["conversationId","sortKey"]),T.createIndex("by_conversation_key_sort",["conversationKey","sortKey"]);for(let O=0;O<S.length;O+=Zi){let N=S.slice(O,O+Zi);await Promise.all(N.map(async j=>T.put(j)));}})().catch(S=>{C=S,k.done.catch(()=>{});try{k.abort();}catch{}});}}).catch(u=>{throw C??u});if(f!==o){p.close();return}try{await Xl(p),await Ql(p),await Zl(p);}catch(u){throw p.close(),u}if(f!==o){p.close();return}t=p;try{await M(()=>R(f,l));}catch(u){if(p.close(),f!==o)return;throw t===p&&(t=null),u}},async close(){let l=a;o+=1,r=null,t!==null&&(t.close(),t=null),await l;},async clearRebuildableCaches(){return g(async()=>{let l=o,f=r;await M(async()=>{I$1(l,f);let C=s().transaction(["userProfiles","groupMembers","groupProfiles","channelProfiles","channelMembers","channelMemberSnapshots","channelMentionCandidateSnapshots","mediaAssets","mediaAssetMeta","meta","recentHistoryPages"],"readwrite");await Promise.all([C.objectStore("userProfiles").clear(),C.objectStore("groupMembers").clear(),C.objectStore("groupProfiles").clear(),C.objectStore("channelProfiles").clear(),C.objectStore("channelMembers").clear(),C.objectStore("channelMemberSnapshots").clear(),C.objectStore("channelMentionCandidateSnapshots").clear(),C.objectStore("mediaAssets").clear(),C.objectStore("mediaAssetMeta").clear(),C.objectStore("meta").delete(dr),C.objectStore("recentHistoryPages").clear(),C.done]);});})},async hasMany(l){let f=o,m=r,C=l.map(p=>({...p}));return await M(async()=>{if(I$1(f,m),C.length===0)return Object.freeze([]);let p=s().transaction(["mediaAssets","mediaAssetMeta"],"readonly"),u=E(),h=await Qe(p,async()=>{let A=new Map;return await Promise.all(C.map(k=>{if(e.mediaAssetCache?.strategies.resolve(k.kind)===void 0)return !1;let v=lr(k),S=A.get(v);return S===void 0&&(S=Promise.all([p.objectStore("mediaAssets").getKey(v),p.objectStore("mediaAssetMeta").get(v)]).then(([T,O])=>T!==void 0&&O!==void 0&&O.kind===k.kind&&O.messageId===k.messageId&&O.resourceVersion===k.resourceVersion&&Number.isSafeInteger(O.byteLength)&&O.byteLength>0&&!D(O,u)),A.set(v,S)),S}))});return I$1(f,m),Object.freeze(h)})},async get(l){let f=o,m=r;return await M(async()=>{if(I$1(f,m),e.mediaAssetCache?.strategies.resolve(l.kind)===void 0)return null;let C=lr(l),p=s(),[u,h]=await Promise.all([p.get("mediaAssets",C),p.get("mediaAssetMeta",C)]);I$1(f,m);let A=E();return u===void 0||h===void 0||D(h,A)?(await w([C],f,m),null):(await p.put("mediaAssetMeta",{...h,lastAccessedAt:A}),I$1(f,m),{kind:h.kind,messageId:h.messageId,resourceVersion:h.resourceVersion,blob:u.blob,...h.mimeType===void 0?{}:{mimeType:h.mimeType}})})},async put(l){let f=o,m=r;I$1(f,m);let C=l.blob.size;if(C>d||c+C>d)return "skipped";c+=C;try{return await M(()=>U(l,f,m))}finally{c=Math.max(0,c-C);}},async clear(){let l=o,f=r;await M(async()=>{I$1(l,f);let m=s().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all([m.objectStore("mediaAssets").clear(),m.objectStore("mediaAssetMeta").clear(),m.done]);});},async prune(){let l=o,f=r;await M(()=>R(l,f));},async getMessage(l,f){let m=await s().get("messages",xn(l,f));if(m===void 0)return null;let C=Ke(m);return L(I(C))===L(l)?C:null},async getMessages(l,f){let m=typeof l=="string"?"by_conv_sort":"by_conversation_key_sort",C=typeof l=="string"?l:L(l);if(await y(l),f.beforeSortKey===void 0&&f.afterSortKey!==void 0){let A=IDBKeyRange.bound([C,f.afterSortKey],[C,Ne]),k=[],v=await s().transaction("messages").store.index(m).openCursor(A,"next");for(;v!==null&&k.length<f.limit;)k.push(v.value),v=await v.continue();return k.map(Ke)}let p=f.beforeSortKey===void 0?IDBKeyRange.bound([C,""],[C,Ne]):IDBKeyRange.bound([C,""],[C,f.beforeSortKey],false,true),u=[],h=await s().transaction("messages").store.index(m).openCursor(p,"prev");for(;h!==null&&u.length<f.limit;)u.push(h.value),h=await h.continue();return u.reverse().map(Ke)},async saveMessages(l){if(l.length===0)return;let f=s().transaction("messages","readwrite");await Promise.all([...l.map(m=>f.store.put(aa(m))),f.done]);},async searchMessages(l,f){let m=L(l),C=f.keyword?.trim()??"",p=f.contentTypes;if(C===""&&(p===void 0||p.length===0))return {items:[],exhausted:true};let u=C===""?void 0:await Ca$1(C),h=f.beforeSortKey===void 0?IDBKeyRange.bound([m,""],[m,Ne]):IDBKeyRange.bound([m,""],[m,f.beforeSortKey],false,true),A=2e3,k=[],v=0,S,T=await s().transaction("messages").store.index("by_conversation_key_sort").openCursor(h,"prev");for(;T!==null&&k.length<f.limit&&v<A;){let N=Ga$1(Ke(T.value));v+=1,S=N.sortKey;let j=p===void 0||p.includes(N.contentType),L=u===void 0||u.match(Aa$1(N))!==null;j&&L&&k.push(N),T=await T.continue();}let O=T===null;return {items:k,exhausted:O,...O?{}:{nextBeforeSortKey:S}}},async getDecryptRecoveries(l){let f=L(l);return (await s().getAllFromIndex("decryptRecoveries","by_conversation",f)).map(Vl)},async saveDecryptRecovery(l){if(l.sContent.byteLength===0||l.sContent.byteLength>jl)throw new Error(`\u89E3\u5BC6\u6062\u590D\u5BC6\u6587\u5B57\u8282\u957F\u5EA6\u975E\u6CD5\uFF1A${l.sContent.byteLength}`);await s().put("decryptRecoveries",Jl(l));},async deleteDecryptRecovery(l,f){await s().delete("decryptRecoveries",pr(l,f));},async deleteConversationDecryptRecoveries(l){let f=L(l),m=s().transaction("decryptRecoveries","readwrite"),C=await m.store.index("by_conversation").openCursor(IDBKeyRange.only(f));for(;C!==null;)await C.delete(),C=await C.continue();await m.done;},async getSessions(){return (await s().getAll("sessions")).map(fr)},async saveSessions(l){if(l.length===0)return;let f=s().transaction("sessions","readwrite");for(let m of l)await f.store.put(nt(m)),await f.store.delete(m.id);await f.done;},async deleteSession(l){if(typeof l!="string"){let C=s().transaction(["sessions","conversationBackgrounds"],"readwrite");await C.objectStore("sessions").delete(L(l)),await C.objectStore("conversationBackgrounds").delete(Sn(l)),await C.done;return}let f=(await s().getAll("sessions")).map(fr).filter(C=>C.id===l);Mn(l,f.map(C=>({conversationType:C.type})));let m=s().transaction(["sessions","conversationBackgrounds"],"readwrite");if(f[0]!==void 0){let C=J$1(f[0]);await m.objectStore("sessions").delete(L(C)),await m.objectStore("conversationBackgrounds").delete(Sn(C));}await m.objectStore("sessions").delete(l),await m.done;},async deleteReadState(l){if(typeof l!="string"){await s().delete("readStates",L(l));return}let m=(await s().getAll("readStates")).map(tt).filter(C=>C.conversationId===l).filter(C=>C.conversationType!==void 0);Mn(l,m),m[0]!==void 0&&await s().delete("readStates",L(m[0])),await s().delete("readStates",l);},async deleteMessage(l,f,m){return g(async()=>{if(m!==void 0&&(m.id!==l.conversationId||m.type!==l.conversationType))throw new Error("\u5220\u9664\u540E\u7684\u4F1A\u8BDD\u6458\u8981\u5FC5\u987B\u5339\u914D\u76EE\u6807\u4F1A\u8BDD");let C=s().transaction(["messages","sessions","decryptRecoveries","recentHistoryPages"],"readwrite");return Qe(C,async()=>{let p=C.objectStore("messages"),u=xn(l,f),h=await p.get(u);if(h!==void 0){let A=Ke(h);if(A.conversationType!==l.conversationType||A.conversationId!==l.conversationId)return !1;await p.delete(u);}return await C.objectStore("decryptRecoveries").delete(pr(l,f)),await C.objectStore("recentHistoryPages").delete(L(l)),m!==void 0&&await C.objectStore("sessions").put(nt(m)),h!==void 0})})},async deleteConversationMessages(l){return g(async()=>{let f=Yl(l),m=typeof l=="string"?"by_conv_sort":"by_conversation_key_sort",C=typeof l=="string"?l:L(l),p=IDBKeyRange.bound([C,""],[C,Ne]),u=s().transaction(["messages","decryptRecoveries","recentHistoryPages","meta"],"readwrite");return Qe(u,async()=>{let h=u.objectStore("messages"),A=u.objectStore("decryptRecoveries"),k=[],v=[];if(typeof l=="string"){let T=(await h.index("by_conv_sort").getAll(p)).map(Ke);k=(await A.getAll()).filter(N=>N.conversation.conversationId===l),v=(await u.objectStore("recentHistoryPages").getAll()).filter(N=>N.conversation.conversationId===f);let O=await u.objectStore("meta").get(Xa$1({conversationType:"channel",conversationId:f}));Mn(f,[...O===void 0?[]:[{conversationType:"channel"}],...T,...v.map(N=>({conversationType:N.conversation.conversationType})),...k.map(N=>({conversationType:N.conversation.conversationType}))]);}await u.objectStore("meta").delete(Xa$1(typeof l=="string"?{conversationType:"channel",conversationId:f}:l));let S=await h.index(m).openCursor(p);for(;S!==null;)await S.delete(),S=await S.continue();if(typeof l=="string"){for(let T of k)await A.delete(T.key);for(let T of v)await u.objectStore("recentHistoryPages").delete(T.conversationKey);}else {await u.objectStore("recentHistoryPages").delete(L(l));let T=await A.index("by_conversation").openCursor(IDBKeyRange.only(L(l)));for(;T!==null;)await T.delete(),T=await T.continue();}})})},async clearConversationHistory(l,f,m){return g(async()=>{let C=L(l),p=IDBKeyRange.bound([C,""],[C,Ne]),u=s().transaction(["messages","sessions","readStates","decryptRecoveries","recentHistoryPages","meta"],"readwrite");return Qe(u,async()=>{await u.objectStore("meta").delete(Xa$1(l)),await u.objectStore("recentHistoryPages").delete(C);let h=await u.objectStore("messages").index("by_conversation_key_sort").openCursor(p);for(;h!==null;)await h.delete(),h=await h.continue();let A=await u.objectStore("decryptRecoveries").index("by_conversation").openCursor(IDBKeyRange.only(C));for(;A!==null;)await A.delete(),A=await A.continue();f!==void 0&&await u.objectStore("sessions").put(nt(f)),m!==void 0&&(await u.objectStore("readStates").put(mr(m)),await u.objectStore("readStates").delete(m.conversationId));})})},async getReadStates(){return (await s().getAll("readStates")).map(tt)},async saveReadState(l){let f=s().transaction("readStates","readwrite");await f.store.put(mr(l)),l.conversationType!==void 0&&await f.store.delete(l.conversationId),await f.done;},async getDrafts(){return (await s().getAll("drafts")).map(Wl)},async saveDraft(l){await s().put("drafts",zl(l));},async deleteDraft(l){await s().delete("drafts",L(l));},async getConversationBackground(l){return (await s().get("conversationBackgrounds",Sn(l)))?.background??null},async saveConversationBackground(l,f){let m=Sn(l);await s().put("conversationBackgrounds",{key:m,background:f});},async deleteConversationBackground(l){await s().delete("conversationBackgrounds",Sn(l));},async getDefaultConversationBackground(){return (await s().get("conversationBackgrounds",ur))?.background??null},async saveDefaultConversationBackground(l){await s().put("conversationBackgrounds",{key:ur,background:l});},async deleteDefaultConversationBackground(){await s().delete("conversationBackgrounds",ur);},async getOutbox(){return s().getAll("outbox")},async saveOutboxMessage(l){await s().put("outbox",l);},async removeOutboxMessage(l){await s().delete("outbox",l);},async getPinnedMessages(){return (await s().getAll("pinnedMessages")).map(gr)},async savePinnedMessage(l){let f=s().transaction("pinnedMessages","readwrite");await f.store.put(sa(l)),await f.store.delete(l.conversationId),await f.done;},async removePinnedMessage(l){if(typeof l!="string"){await s().delete("pinnedMessages",L(l));return}let f=(await s().getAll("pinnedMessages")).map(gr).filter(m=>m.conversationId===l);Mn(l,f),f[0]!==void 0&&await s().delete("pinnedMessages",L(K$1(f[0]))),await s().delete("pinnedMessages",l);},async getMeta(l){let f=await s().get("meta",l);return f===void 0?null:f.value},async setMeta(l,f){await s().put("meta",{key:l,value:f});},async getUserProfile(l){return await s().get("userProfiles",l)??null},async saveUserProfile(l){await s().put("userProfiles",l);},async getGroupMembers(l){return await s().get("groupMembers",l)??null},async saveGroupMembers(l){await s().put("groupMembers",l);},async getGroupProfile(l){return await s().get("groupProfiles",l)??null},async saveGroupProfile(l){await s().put("groupProfiles",l);},async getChannelProfile(l){return await s().get("channelProfiles",l)??null},async getChannelProfiles(){return s().getAll("channelProfiles")},async saveChannelProfiles(l){if(l.length===0)return;let f=s().transaction("channelProfiles","readwrite");await Promise.all([...l.map(m=>f.store.put(m)),f.done]);},async getChannelListVersion(){let l=await s().get("meta",dr);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 s().put("meta",{key:dr,value:l});},async getChannelMembers(l,f){if(f.length===0)return [];let m=s().transaction("channelMembers"),C=await Promise.all(f.map(p=>m.store.get([l,p])));return await m.done,C.filter(p=>p!==void 0)},async saveChannelMembers(l){if(l.length===0)return;let f=s().transaction("channelMembers","readwrite");for(let m of l){let C=await f.store.get([m.channelId,m.userId]);C!==void 0&&$l(m.updateVersion,C.updateVersion)<0||await f.store.put(m);}await f.done;},async deleteChannelMembers(l){let f=IDBKeyRange.bound([l,""],[l,Ne]),m=s().transaction("channelMembers","readwrite"),C=await m.store.openCursor(f);for(;C!==null;)await C.delete(),C=await C.continue();await m.done;},async getChannelMemberSnapshot(l){return await s().get("channelMemberSnapshots",l)??null},async saveChannelMemberSnapshot(l){await s().put("channelMemberSnapshots",l);},async deleteChannelMemberSnapshot(l){await s().delete("channelMemberSnapshots",l);},async getChannelMentionCandidateSnapshot(l){return await s().get("channelMentionCandidateSnapshots",l)??null},async saveChannelMentionCandidateSnapshot(l){await s().put("channelMentionCandidateSnapshots",l);},async deleteChannelMentionCandidateSnapshot(l){await s().delete("channelMentionCandidateSnapshots",l);}}}function tp(e={}){let n=e.createSocket??(y=>new globalThis.WebSocket(y)),t=e.connectTimeoutMs??1e4,r={open:new Set,message:new Set,close:new Set,error:new Set},o,i,a="idle",c;function d(y,M){for(let I of [...r[y]])I(M);}function s(){c!==void 0&&(clearTimeout(c),c=void 0);}function g(y,M){M!==void 0&&(y.removeEventListener("open",M.onOpen),y.removeEventListener("message",M.onMessage),y.removeEventListener("error",M.onError),y.removeEventListener("close",M.onClose));}function b(){if(s(),o!==void 0){g(o,i);try{o.close(1e3);}catch{}o=void 0;}i=void 0;}function P(y,M,I){let E={onOpen:()=>{y===o&&(s(),a="open",d("open",{endpoint:M}));},onMessage:D=>{if(y!==o||a!=="open")return;let R=D?.data;if(R instanceof ArrayBuffer){d("message",{data:R});return}d("error",{error:new Error(`WsTransport\uFF1A\u6536\u5230\u975E ArrayBuffer \u6D88\u606F\uFF08${typeof R}\uFF09\uFF0C\u5DF2\u5FFD\u7565`)});},onError:D=>{y===o&&d("error",{error:new Error(`WsTransport\uFF1AWebSocket error \u4E8B\u4EF6\uFF08${D instanceof Event?D.type:typeof D}\uFF09`)});},onClose:D=>{y===o&&(s(),g(y,E),o=void 0,i=void 0,a="closed",d("close",{code:D?.code??1006,reason:D?.reason??"",wasClean:D?.wasClean??false}));}};if(i=E,y.addEventListener("open",E.onOpen),y.addEventListener("message",E.onMessage),y.addEventListener("error",E.onError),y.addEventListener("close",E.onClose),I>0){let D=setTimeout(()=>{if(!(y!==o||a!=="connecting")){d("error",{error:new Error(`WsTransport\uFF1A\u8FDE\u63A5\u8D85\u65F6\uFF08${I}ms \u672A open\uFF09`)});try{y.close();}catch{}}},I);D.unref?.(),c=D;}}return {get state(){return a},async connect(y,M){let I=y[0];if(I===void 0)throw new Error("WsTransport.connect\uFF1Aendpoints \u4E3A\u7A7A\uFF08P0 single \u7B56\u7565\u9700\u81F3\u5C11\u4E00\u4E2A\u7AEF\u70B9\uFF09");b(),a="connecting";let E;try{E=n(I.url);}catch(D){throw a="closed",D}E.binaryType="arraybuffer",o=E,P(E,I,M?.connectTimeoutMs??t);},async send(y){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(y);},async close(y=1e3,M){s(),o!==void 0&&(a==="connecting"||a==="open")&&(a="closing",o.close(y,M));},on(y,M){return r[y].add(M),()=>{r[y].delete(M);}}}}
|
|
8
|
-
export{Sd as $,
|
|
7
|
+
-----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 ko(){let e=new Uint8Array(Re),n=new Uint8Array(1);for(let t=0;t<Re;t++){let r=0;do globalThis.crypto.getRandomValues(n),r=n[0]??0;while(r===0);e[t]=r;}return e}function Es(e,n){if(n.length===0)throw new Error("RSA \u52A0\u5BC6\uFF1A\u660E\u6587\u4E3A\u7A7A");let t=ks(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 s=Math.min(d+r,n.length),g=t.encrypt(As(n.subarray(d,s)),"RSAES-PKCS1-V1_5");o.push(Ss(g));}let i=o.reduce((d,s)=>d+s.length,0),a=new Uint8Array(i),c=0;for(let d of o)a.set(d,c),c+=d.length;return a}function Rs(e){let n=e.teaKey??ko();if(n.length<Re)throw new Error(`\u7AEF\u5230\u7AEF\u52A0\u5BC6\u5931\u8D25\uFF1AteaKey \u957F\u5EA6 ${n.length} < ${Re}`);let t=n.subarray(0,Re),r=an(t,e.plain);return {secretKey:Es(e.publicKey,t),cipherData:r}}function Ts(e){return on(e.teaKey,e.cipherData)}function Ds(e){return an(e.teaKey,e.plain)}function Us(e){return Et(e.teaKey,e.plain,"encrypt",void 0,e.signal===void 0?{}:{signal:e.signal})}function Os(e){return Et(e.teaKey,e.cipherData,"decrypt",void 0,e.signal===void 0?{}:{signal:e.signal})}function Bs(e){return go(e.teaKey,e.plain)}function Ns(e){return yo(e.teaKey,e.cipherData)}function Ks(){return new Promise((e,n)=>{de.pki.rsa.generateKeyPair({bits:2048,e:65537,workers:-1},(t,r)=>{if(t){n(t);return}e({publicKeyBase64:xs(de.pki.publicKeyToPem(r.publicKey)),privateKey:de.pki.privateKeyToPem(r.privateKey)});});})}function Ls(){return {decryptEndToEnd:_s,encryptEndToEnd:Rs,decryptSymmetric:Ts,encryptSymmetric:Ds,encryptSymmetricChunked:Us,decryptSymmetricChunked:Os,encryptFileSimple:Bs,decryptFileSimple:Ns,randomTeaKey:ko,generateTempKeyPair:Ks,rsaDecryptPkcs1:Dt}}function Ut(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function dn(e,n){return B(e,"/friend/apply/list_paginated",{type:n.listType,page:n.page,page_size:n.pageSize},Ut(n.clientType,"GET"))}function un(e,n){return B(e,"/friend/apply/agree",{id:n.applicationId},Ut(n.clientType,"POST"))}function ln(e,n){return B(e,"/friend/apply/del",{id:n.applicationId},Ut(n.clientType,"POST"))}var Eo=50,Ro=20,To=1,Ot=2,Bt=3,Gs=4,Hs=5,Do=0,Fs=1,qs=2;function js(e){switch(e){case Do:case Fs:case qs:return e;default:return}}var Fe=class extends Error{constructor(t,r){super(`application HTTP \u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`);this.code=t;this.name="ApplicationHttpError";}code},Z=class extends Error{constructor(n){super(`application \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ApplicationMappingError";}};function $(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Uo(e){let n=$(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 Oo(e){let n=$(e.status);if(e.status===void 0||n==="")return true;let t=Number(n),r=js(t);if(r===void 0)throw new Z(`\u672A\u77E5\u7533\u8BF7\u72B6\u6001\uFF1A${n}`);return r===Do}function $s(e){let n=$(e.type);if(n==="")return true;if(Number(n)!==To)throw new Z(`\u8054\u7CFB\u4EBA\u7533\u8BF7\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${n}`);return true}function Js(e){let n=Number($(e.type));if(n!==Ot&&n!==Bt&&n!==Gs&&n!==Hs)throw new Z(`GROUP/CHANNEL \u6DF7\u5408\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${$(e.type)||"<empty>"}`);return n}function Bn(e){if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>Eo)throw new Z(`limit \u5FC5\u987B\u4E3A 1-${Eo}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit};if(!/^[1-9]\d*$/.test(e.cursor))throw new Z("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let n=Number(e.cursor);if(!Number.isSafeInteger(n))throw new Z("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {page:n,pageSize:e.limit}}function Bo(e){if(e!=null&&Array.isArray(e.list))return e.list;let n=e?.count??e?.total,t=n===0||typeof n=="string"&&/^0+$/.test(n.trim());if(e?.list===null&&t)return [];throw new Z("data.list \u5FC5\u987B\u662F\u6570\u7EC4\uFF0C\u6216\u5728 count=0 \u65F6\u4E3A null")}function Nt(e){let n=e.trim();if(n==="")throw new Z("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");return n}function Vs(e){let n=Nt($(e.id)||$(e.aid)),t=$(e.user_id)||$(e.user_info?.user_id),r=$(e.nick_name??e.nickname??e.name)||$(e.user_info?.nick_name??e.user_info?.nickname??e.user_info?.name);if(t===""||r==="")throw new Z(`\u8054\u7CFB\u4EBA\u7533\u8BF7\u4EBA\u8EAB\u4EFD\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let o=$(e.head_img_url??e.avatar)||$(e.user_info?.head_img_url??e.user_info?.avatar),i=$(e.user_info?.mid),a=Uo(e.create_time??e.createTime??e.update_version);return {applicationId:n,applicantId:t,applicantName:r,...o===""?{}:{applicantAvatar:o},...i===""?{}:{applicantDisplayId:i},message:$(e.remarks??e.introduce_self),...a===void 0?{}:{createdAt:a}}}function zs(e){let n=Nt($(e.id)||$(e.aid)),t=$(e.group_id)||$(e.group_info?.group_id);if(t==="")throw new Z(`GROUP id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let r=$(e.user_id)||$(e.user_info?.user_id),o=$(e.nick_name??e.nickname??e.name)||$(e.user_info?.nick_name??e.user_info?.nickname??e.user_info?.name);if(r===""||o==="")throw new Z(`GROUP \u7533\u8BF7\u4EBA\u6216\u9080\u8BF7\u4EBA\u8EAB\u4EFD\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let i=$(e.head_img_url??e.avatar)||$(e.user_info?.head_img_url??e.user_info?.avatar),a=$(e.user_info?.mid),c=$(e.group_info?.name??e.group_info?.group_name);if(c==="")throw new Z(`GROUP \u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let d=$(e.group_info?.head_img_url??e.group_info?.avatar),s=Uo(e.create_time??e.createTime??e.update_version);return {applicationId:n,groupId:t,kind:Number(e.type)===Bt?"invite":"request",actor:{id:r,name:o,...i===""?{}:{avatarUrl:i},...a===""?{}:{displayId:a}},target:{id:t,name:c,...d===""?{}:{avatarUrl:d}},message:$(e.remarks??e.introduce_self),...s===void 0?{}:{createdAt:s}}}async function Nn(e,n,t){let r=await t(e.client,{applicationId:Nt(n),clientType:e.clientType});if(!r.ok)throw new Fe(r.code,r.message)}function Ws(e){async function n(t){let{pageSize:r}=Bn(t),{page:o}=Bn(t);for(let i=0;i<Ro;i+=1){let a=await dn(e.client,{listType:To,page:o,pageSize:r,clientType:e.clientType});if(!a.ok)throw new Fe(a.code,a.message);let c=Bo(a.data),d=c.filter(h=>$s(h)&&Oo(h)).map(Vs),s=c.length<r,g=o+1;if(d.length>0||s)return {items:d,exhausted:s,...s?{}:{nextCursor:String(g)}};o=g;}return {items:[],exhausted:false,nextCursor:String(o)}}return {listPendingApplications:n,acceptApplication:t=>Nn(e,t,un),ignoreApplication:t=>Nn(e,t,ln)}}function Ys(e){async function n(t){let{pageSize:r}=Bn(t),{page:o}=Bn(t);for(let i=0;i<Ro;i+=1){let a=await dn(e.client,{listType:Ot,page:o,pageSize:r,clientType:e.clientType});if(!a.ok)throw new Fe(a.code,a.message);let c=Bo(a.data),d=c.filter(h=>{let P=Js(h);return (P===Ot||P===Bt)&&Oo(h)}).map(zs),s=c.length<r,g=o+1;if(d.length>0||s)return {items:d,exhausted:s,...s?{}:{nextCursor:String(g)}};o=g;}return {items:[],exhausted:false,nextCursor:String(o)}}return {listPendingApplications:n,acceptApplication:t=>Nn(e,t,un),ignoreApplication:t=>Nn(e,t,ln)}}function F(e){let n=typeof e=="string"||typeof e=="number"?String(e).trim():"";return n===""?void 0:n}function Xs(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 Qs(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 Zs(e){let n=Number(e.product_id),t=Xs(e.is_dynamic);return {...Qs(e.config_type),...F(e.appid)===void 0?{}:{appId:F(e.appid)},...Number.isInteger(n)?{productId:n}:{},...F(e.domain)===void 0?{}:{domain:F(e.domain)},...F(e.suffix_address)===void 0?{}:{suffixAddress:F(e.suffix_address)},...F(e.developer_id)===void 0?{}:{developerId:F(e.developer_id)},...F(e.introduction)===void 0?{}:{introduction:F(e.introduction)},...F(e.icon)===void 0?{}:{icon:F(e.icon)},...F(e.icon_small)===void 0?{}:{iconSmall:F(e.icon_small)},...F(e.icon_medium)===void 0?{}:{iconMedium:F(e.icon_medium)},...F(e.icon_large)===void 0?{}:{iconLarge:F(e.icon_large)},...t===void 0?{}:{isDynamic:t},...F(e.lang_types)===void 0?{}:{langTypes:F(e.lang_types)},...F(e.currency_types)===void 0?{}:{currencyTypes:F(e.currency_types)},...F(e.simple_chinese_name)===void 0?{}:{nameZhHans:F(e.simple_chinese_name)},...F(e.unsimplified_chinese_name)===void 0?{}:{nameZhHant:F(e.unsimplified_chinese_name)},...F(e.english_name)===void 0?{}:{nameEn:F(e.english_name)},...F(e.vietnamese_name)===void 0?{}:{nameVi:F(e.vietnamese_name)},...F(e.thai_name)===void 0?{}:{nameTh:F(e.thai_name)},...F(e.h5_url)===void 0?{}:{h5Url:F(e.h5_url)}}}function No(e,n){return Array.isArray(e.mini_program_rel_list)?e.mini_program_rel_list.filter(t=>t!==null&&typeof t=="object").map(t=>Zs(t)):n.source==="info"?[]:void 0}function Ko(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function Lo(e,n){return B(e,"/user_radio/list",{user_id:n.userId,update_version:n.updateVersion,page:n.page,page_size:n.pageSize},Ko(n.clientType,"GET"))}function Go(e,n){return B(e,"/user_radio/info",{radio_id:n.channelId},Ko(n.clientType,"POST"))}var Ho=500,pn=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},ye=class extends Error{constructor(n){super(`CHANNEL profile \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelProfileMappingError";}};function Fo(e,n){let t=typeof e=="string"||typeof e=="number"?String(e).trim():"";if(t==="")throw new ye(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function Te(e){let n=typeof e=="string"||typeof e=="number"?String(e).trim():"";return n===""?void 0:n}function qe(e){return Number(e)===1}function ec(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 nc(e,n){return Number(e)===1?"member":Number(e)===9?"admin":Number(e)===10?"owner":n===false?"guest":"unknown"}function tc(e){let n=e.is_in===void 0?void 0:qe(e.is_in),t=qe(e.radio_user?.is_del),r=qe(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 rc(e,n,t){let r=Te(e.radio_user?.user_id),o=e.radio_setting?.un_speaking_user_ids,i=Te(e.radio_setting?.un_speaking_period);return {role:n,baseState:t,resolvedState:t,allMembersMuted:qe(e.radio_setting?.is_unspeeking_all),currentUserMuted:r!==void 0&&Array.isArray(o)&&o.map(String).includes(r),...i===void 0?{}:{mutePeriod:i}}}function oc(e){if(e!=null)return Number(e)===1?"standard":Number(e)===2?"competition":"unknown"}function ic(e){let n=Te(e);return n!==void 0&&/^\d+$/.test(n)?n.replace(/^0+(?=\d)/,""):void 0}function ac(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 qo(e,n,t){let r=Fo(e.radio_id??e.id,"id"),o=Fo(e.name,"name"),i=e.is_in===void 0?void 0:qe(e.is_in),a=nc(e.radio_user?.role_id,i),c=tc(e),d=rc(e,a,c),s=Va$1({channelState:c,snapshot:d,nowMs:n}),g={...d,resolvedState:s.channelState},h=ic(e.update_version),P=Te(e.head_img_url),y=Te(e.desc),M=Te(e.user_id),I=Number(e.total_users),E=oc(e.type),D=ec(e.radio_setting?.is_unvisit_other),R=e.verify_way===void 0?void 0:Number(e.verify_way),x=R!==void 0&&Number.isSafeInteger(R)?R:void 0,w=Te(e.invite_code),_=No(e,{source:t});return {id:r,name:o,...P===void 0?{}:{avatar:P},...y===void 0?{}:{description:y},...M===void 0?{}:{ownerId:M},...Number.isFinite(I)&&I>=0?{memberCount:I}:{},...x===void 0?{}:{verifyType:x},...w===void 0?{}:{inviteCode:w},role:a,permissions:s.permissions,channelState:s.channelState,allMembersMuted:g.allMembersMuted,...D===void 0?{}:{memberPrivateChatDisabled:D},accessSnapshot:g,...e.radio_user?.is_undisturb===void 0?{}:{muted:qe(e.radio_user.is_undisturb)},...E===void 0?{}:{channelKind:E},...h===void 0?{}:{updateVersion:h},..._===void 0?{}:{miniProgramRels:_}}}function jo(e){return {...e,updatedAt:Date.now()}}function $o(e,n){if(e.accessSnapshot===void 0)return {...e,permissions:Ua$1(e.role,e.channelState)};let t=Va$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 Kt(e,n){let{updatedAt:t,...r}=$o(e,n);return r}function sc(e){let n=new Map,t=new Map,r=new Map,o="0",i=false,a=null,c=0,d=null,s=0;function g(){if(i)return Promise.resolve();if(a!==null)return a;let y=c;return a=(async()=>{if(e.storage!==void 0){let[M,I]=await Promise.all([e.storage.getChannelProfiles(),e.storage.getChannelListVersion()]);if(y!==c)return;for(let E of M)n.set(E.id,$o(E,e.now?.()??Date.now()));o=/^\d+$/.test(I)?I:"0";}i=true;})().finally(()=>{a=null;}),a}function h(y){if(y?.forceRefresh!==true&&d!==null)return d;let M=++s,I=(async()=>{await g();let E=(await e.getUserId()).trim();if(E==="")throw new ye("user_id \u4E0D\u80FD\u4E3A\u7A7A");let D=y?.forceRefresh===true?"0":o,R=[];for(let w=1;;w+=1){let _=await Lo(e.client,{userId:E,updateVersion:D,page:w,pageSize:Ho,clientType:e.clientType});if(!_.ok)throw new pn(_.code,_.message);if(_.data===null)break;if(!Array.isArray(_.data))throw new ye("list data \u5FC5\u987B\u662F\u6570\u7EC4");let U=e.now?.()??Date.now(),l=_.data.map(f=>qo(f,U,"list"));if(R.push(...l),l.length<Ho)break}if(M!==s)return [...n.values()].map(w=>Kt(w,e.now?.()??Date.now()));let x=o;for(let w of R)n.set(w.id,jo(w)),w.updateVersion!==void 0&&(x=ac(x,w.updateVersion));return o=x,e.storage!==void 0&&(await e.storage.saveChannelProfiles([...n.values()]),await e.storage.saveChannelListVersion(o)),[...n.values()].map(w=>Kt(w,e.now?.()??Date.now()))})();return d=I,I.finally(()=>{d===I&&(d=null);}).catch(()=>{}),I}function P(y,M){let I=y.trim();if(I==="")return Promise.reject(new ye("channel id \u4E0D\u80FD\u4E3A\u7A7A"));let E=M?.forceRefresh===true;if(!E){let x=t.get(I);if(x!==void 0)return x}let D=(r.get(I)??0)+1;E&&r.set(I,D);let R=(async()=>{await g();let x=n.get(I);if(!E&&x!==void 0&&x.miniProgramRels!==void 0)return Kt(x,e.now?.()??Date.now());let w=await Go(e.client,{channelId:I,clientType:e.clientType});if(!w.ok)throw new pn(w.code,w.message);if(w.data===null||w.data===void 0)throw new ye("info data \u4E0D\u80FD\u4E3A\u7A7A");let _=qo(w.data,e.now?.()??Date.now(),"info");if(_.id!==I)throw new ye(`info id \u4E0D\u5339\u914D\uFF1A\u8BF7\u6C42 ${I}\uFF0C\u54CD\u5E94 ${_.id}`);if((r.get(I)??D)===D){let U=jo(_);n.set(I,U),await e.storage?.saveChannelProfiles([U]);}return _})().finally(()=>{t.get(I)===R&&t.delete(I);});return r.set(I,D),t.set(I,R),R}return {listProfiles:h,getProfile:P,clearCache(){c+=1,s+=1;for(let y of new Set([...n.keys(),...t.keys(),...r.keys()]))r.set(y,(r.get(y)??0)+1);n.clear(),t.clear(),d=null,o="0",i=true,a=null;}}}function Jo(e,n){return dn(e,{listType:2,page:n.page,pageSize:n.pageSize,clientType:n.clientType})}function Vo(e,n){return un(e,n)}function zo(e,n){return ln(e,n)}var cc=20,Wo=50,dc=20,uc=2,lc=3,Xo=4,pc=5,Qo=0,fc=1,mc=2;function gc(e){switch(e){case Qo:case fc:case mc:return e;default:return}}var fn=class extends Error{constructor(t,r){super(`CHANNEL join application HTTP \u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`);this.code=t;this.name="ChannelJoinApplicationHttpError";}code},re=class extends Error{constructor(n){super(`CHANNEL join application \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelJoinApplicationMappingError";}};function J(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function yc(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 hc(e){let n=J(e.status);if(e.status===void 0||n==="")return true;let t=Number(n),r=gc(t);if(r===void 0)throw new re(`\u672A\u77E5\u7533\u8BF7\u72B6\u6001\uFF1A${n}`);return r===Qo}function bc(e){let n=Number(J(e.type));if(n!==uc&&n!==lc&&n!==Xo&&n!==pc)throw new re(`GROUP/CHANNEL \u6DF7\u5408\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${J(e.type)||"<empty>"}`);return n}function wc(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 re("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");if(t==="")throw new re(`\u7533\u8BF7\u4EBA id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);if(o==="")throw new re(`CHANNEL id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let i=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),c=J(e.user_info?.mid),d=J(r?.name)||J(r?.radio_name)||J(r?.channel_name)||o,s=J(r?.head_img_url)||J(r?.avatar),g=yc(e.create_time??e.createTime);return {applicationId:n,applicantId:t,applicantName:i,...a===""?{}:{applicantAvatar:a},...c===""?{}:{applicantDisplayId:c},channelId:o,channelName:d,...s===""?{}:{channelAvatar:s},message:J(e.remarks)||J(e.introduce_self),...g===void 0?{}:{createdAt:g}}}function Yo(e){if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>Wo)throw new re(`limit \u5FC5\u987B\u4E3A 1-${Wo}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit||cc};if(!/^[1-9]\d*$/.test(e.cursor))throw new re("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let n=Number(e.cursor);if(!Number.isSafeInteger(n))throw new re("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {page:n,pageSize:e.limit}}function Cc(e){if(e!=null&&Array.isArray(e.list))return e.list;let n=e?.count??e?.total,t=n===0||typeof n=="string"&&/^0+$/.test(n.trim());if(e?.list===null&&t)return [];throw new re("data.list \u5FC5\u987B\u662F\u6570\u7EC4\uFF0C\u6216\u5728 count=0 \u65F6\u4E3A null")}function Pc(e){let n=e.trim();if(n==="")throw new re("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");return n}function Ic(e){async function n(r){let{pageSize:o}=Yo(r),{page:i}=Yo(r);for(let a=0;a<dc;a+=1){let c=await Jo(e.client,{page:i,pageSize:o,clientType:e.clientType});if(!c.ok)throw new fn(c.code,c.message);let d=Cc(c.data),s=d.filter(P=>bc(P)===Xo&&hc(P)).map(wc),g=d.length<o,h=i+1;if(s.length>0||g)return {items:s,exhausted:g,...g?{}:{nextCursor:String(h)}};i=h;}return {items:[],exhausted:false,nextCursor:String(i)}}async function t(r,o){let i=await o(e.client,{applicationId:Pc(r),clientType:e.clientType});if(!i.ok)throw new fn(i.code,i.message)}return {listJoinApplications:n,acceptJoinApplication:r=>t(r,Vo),ignoreJoinApplication:r=>t(r,zo)}}function Kn(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function Lt(e,n){return B(e,"/user_radio/users",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},Kn(n.clientType,"GET"))}function Gt(e,n){return B(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"},Kn(n.clientType,"POST"))}function Zo(e,n){return B(e,"/user_radio/admins",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},Kn(n.clientType,"GET"))}function ei(e,n){return B(e,"/user_radio/user/infos",{radio_id:n.channelId,user_ids:n.userIds.join(",")},Kn(n.clientType,"POST"))}var Ln=18,vc=12,Ac=300*1e3,Sc=32,mn=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},Y=class extends Error{constructor(n){super(`CHANNEL member \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelMemberMappingError";}};function he(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Mc(e){return Number(e)===1?"member":Number(e)===9?"admin":Number(e)===10?"owner":"unknown"}function xc(e){let n=he(e);return /^\d+$/.test(n)?n.replace(/^0+(?=\d)/,""):void 0}function Ht(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 ni(e,n){let t=he(e.radio_id);if(t==="")throw new Y("radio_id \u4E0D\u80FD\u4E3A\u7A7A");if(t!==n)throw new Y(`\u6210\u5458\u9891\u9053 ${t} \u4E0E\u8BF7\u6C42\u9891\u9053 ${n} \u4E0D\u4E00\u81F4`);let r=he(e.user_id)||he(e.user_info?.user_id);if(r==="")throw new Y("user_id \u4E0D\u80FD\u4E3A\u7A7A");if(e.is_master!==void 0){let s=Number(e.is_master);if(s!==0&&s!==1)throw new Y(`is_master \u975E\u6CD5\uFF1A${he(e.is_master)}`)}let o=he(e.nick_name),i=he(e.user_info?.nick_name)||he(e.user_info?.name),a=he(e.user_info?.head_img_url),c=xc(e.update_version),d=Number(e.join_type);return {userId:r,...o===""?{}:{nickname:o},displayName:o||i||r,...a===""?{}:{avatar:a},role:Mc(e.role_id),...Number.isInteger(d)?{joinType:d}:{},...c===void 0?{}:{updateVersion:c}}}function _c(e){if(e.channelId.trim()==="")throw new Y("channelId \u4E0D\u80FD\u4E3A\u7A7A");if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>Ln)throw new Y(`limit \u5FC5\u987B\u4E3A 1-${Ln}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit};if(!/^[1-9]\d*$/.test(e.cursor))throw new Y("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let t=Number(e.cursor);if(!Number.isSafeInteger(t))throw new Y("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {page:t,pageSize:e.limit}}function ti(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 kc(e){let n=e.now??(()=>Date.now()),t=e.isActive??(()=>true),r=e.cacheTtlMs??Ac,o=new Map,i=new Map,a=new Map,c=new Map,d=new Map,s=new Set,g=new Set,h=(f,m)=>`${f}:${m}`;function P(f){let m=d.get(f);return m!==void 0?m:(d.set(f,0),0)}function y(f){let m=f.trim();if(m==="")throw new Y("channelId \u4E0D\u80FD\u4E3A\u7A7A");return m}function M(f){for(i.delete(f.channelId),i.set(f.channelId,f);i.size>Sc;){let m=i.keys().next().value;if(m===void 0)break;i.delete(m);}}function I(f){let m=i.get(f);if(m!==void 0)return M(m),Promise.resolve(m);if(g.has(f)||e.storage?.getChannelMemberSnapshot===void 0)return Promise.resolve(null);let C=a.get(f);if(C!==void 0)return C;let p=P(f),u=e.storage.getChannelMemberSnapshot(f).then(b=>!t()||b===null||b.channelId!==f||p!==P(f)||g.has(f)?null:(M(b),b)).finally(()=>{a.get(f)===u&&a.delete(f);});return a.set(f,u),u}function E(f,m){let C=f.map(u=>u.userId),p=new Map(f.map(u=>[u.userId,u]));for(let u of m){p.has(u.userId)||C.push(u.userId);let b=p.get(u.userId);(b===void 0||Ht(u.updateVersion,b.updateVersion)>=0)&&p.set(u.userId,u);}return C.map(u=>p.get(u))}async function D(f,m){let C=await Ca$1(m);return f.filter(p=>C.match(p.displayName)!==null||C.match(p.userId,{pinyin:false})!==null)}async function R(f,m,C={}){if(!t()||m!==P(f.channelId))return;let p=f.channelId,u=g.has(p),b=C.allowPersistentRebuild===true&&u&&e.storage?.deleteChannelMemberSnapshot===void 0&&e.storage?.saveChannelMemberSnapshot!==void 0;(!u||b)&&await e.storage?.saveChannelMemberSnapshot?.(f),t()&&m===P(p)&&(M(f),C.allowPersistentRebuild===true&&(!u||e.storage?.deleteChannelMemberSnapshot===void 0)&&g.delete(p));}async function x(f,m,C,p,u=false,b){let A=await I(f);if(!t()||C!==P(f))return;let k=n(),v=b!==void 0&&A?.nextCursor===b,S=u&&A!==null&&!v,T=p!==void 0&&!S?p.nextCursor:A?.nextCursor,O={channelId:f,items:E(A?.items??[],m),...T===void 0?{}:{nextCursor:T},exhausted:S?A.exhausted:p?.exhausted??A?.exhausted??false,updatedAt:k};await R(O,C);}async function w(f,m,C){if(!t()||C!==P(f))return [...m];let p=n(),u=p+r,b=[],A=[],k=new Map;for(let v of m){let S=h(f,v.userId),T=o.get(S)?.member;if(T!==void 0&&Ht(v.updateVersion,T.updateVersion)<0){A.push(T);continue}b.push({channelId:f,...v,updatedAt:p}),A.push(v),k.set(S,{member:v,expiresAt:u});}if(b.length>0&&t()&&C===P(f)&&!s.has(f)&&(await e.storage?.saveChannelMembers?.(b),e.storage?.getChannelMembers!==void 0&&t()&&C===P(f))){let v=await e.storage.getChannelMembers(f,b.map(T=>T.userId)),S=new Map(v.map(T=>{let{channelId:O,updatedAt:N,...j}=T;return [j.userId,{member:j,updatedAt:N}]}));for(let T=0;T<A.length;T+=1){let O=A[T];if(O===void 0)continue;let N=S.get(O.userId);N===void 0||Ht(N.member.updateVersion,O.updateVersion)<=0||(A[T]=N.member,k.set(h(f,O.userId),{member:N.member,expiresAt:N.updatedAt+r}));}}if(t()&&C===P(f))for(let[v,S]of k)o.set(v,S);return A}async function _(f,m){let C=y(f.channelId),{page:p,pageSize:u}=_c({...f,channelId:C}),b=P(C),A=await m(C,p,u);if(!A.ok)throw new mn(A.code,A.message);if(A.data!==null&&!Array.isArray(A.data))throw new Y("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let k=ti((A.data??[]).map(T=>ni(T,C))),v=await w(C,k,b),S=(A.data??[]).length<u;return {items:v,exhausted:S,...S?{}:{nextCursor:String(p+1)}}}function U(f){let m=y(f),C=c.get(m);if(C!==void 0)return C;let p=P(m),u=(async()=>{let b,A=false,k=[];for(let S=0;S<vc&&!A;S+=1){let T=await _({channelId:m,limit:Ln,...b===void 0?{}:{cursor:b}},(O,N,j)=>Lt(e.client,{channelId:O,page:N,pageSize:j,clientType:e.clientType}));if(!t()||p!==P(m))throw new Y("\u6210\u5458\u5FEB\u7167\u9884\u53D6\u5DF2\u56E0\u6210\u5458\u53D8\u5316\u5931\u6548");k=E(k,T.items),b=T.nextCursor,A=T.exhausted;}let v={channelId:m,items:k,...b===void 0?{}:{nextCursor:b},exhausted:A,updatedAt:n()};return await R(v,p,{allowPersistentRebuild:true}),{items:v.items,...v.nextCursor===void 0?{}:{nextCursor:v.nextCursor},exhausted:v.exhausted}})().finally(()=>{c.get(m)===u&&c.delete(m);});return c.set(m,u),u}async function l(f){let m=y(f),C=P(m)+1;d.set(m,C),s.add(m),g.add(m),i.delete(m),a.delete(m),c.delete(m);let p=`${m}:`;for(let u of o.keys())u.startsWith(p)&&o.delete(u);e.storage?.deleteChannelMembers===void 0&&e.storage?.deleteChannelMemberSnapshot===void 0||(await Promise.all([e.storage.deleteChannelMembers?.(m),e.storage.deleteChannelMemberSnapshot?.(m)]),C===P(m)&&(e.storage?.deleteChannelMembers!==void 0&&s.delete(m),e.storage?.deleteChannelMemberSnapshot!==void 0&&g.delete(m)));}return {async prefetchMembers(f){let m=y(f),C=await I(m),p=g.has(m);C!==null&&!p&&C.updatedAt+r>n()||await U(m);},async getCachedMembers(f){let m=y(f.channelId),C=await I(m);if(C===null)return null;let p=f.query?.trim()??"";return p===""&&g.has(m)?null:p===""?{items:[...C.items],...C.nextCursor===void 0?{}:{nextCursor:C.nextCursor},exhausted:C.exhausted}:{items:await D(C.items,p),exhausted:true}},async refreshMembers(f){let m=y(f.channelId),C=f.query?.trim()??"";if(C==="")return U(m);let p=P(m),[u,b]=await Promise.all([_({channelId:m,query:C,limit:Ln},(k,v,S)=>Gt(e.client,{channelId:k,query:C,page:v,pageSize:S,updateVersion:"0",clientType:e.clientType})),I(m)]),A=b===null?[]:await D(b.items,C);return await x(m,u.items,p),{...u,items:E(u.items,A)}},async listMembers(f){let m=y(f.channelId),C={...f,channelId:m},p=P(m),u=await _(C,(b,A,k)=>Lt(e.client,{channelId:b,page:A,pageSize:k,clientType:e.clientType}));return await x(m,u.items,p,u,C.cursor!==void 0,C.cursor),u},async searchMembers(f){let m=f.query.trim();if(m==="")return Promise.reject(new Y("\u641C\u7D22\u5173\u952E\u8BCD\u4E0D\u80FD\u4E3A\u7A7A"));let C=y(f.channelId),p={...f,channelId:C},u=P(C),b=await _(p,(A,k,v)=>Gt(e.client,{channelId:A,query:m,page:k,pageSize:v,updateVersion:"0",clientType:e.clientType}));return await x(C,b.items,u),b},listAdmins:f=>_(f,(m,C,p)=>Zo(e.client,{channelId:m,page:C,pageSize:p,clientType:e.clientType})),async getMembersByIds(f,m,C){let p=f.trim();if(p==="")throw new Y("channelId \u4E0D\u80FD\u4E3A\u7A7A");let u=[...new Set(m.map(v=>v.trim()).filter(Boolean))];if(u.length===0)return [];let b=C?.forceRefresh===true,A=new Map,k=[];for(let v of u){let S=o.get(h(p,v));!b&&S!==void 0&&S.expiresAt>n()?A.set(v,S.member):k.push(v);}if(!b&&k.length>0&&!s.has(p)&&e.storage?.getChannelMembers!==void 0){let v=P(p),S=await e.storage.getChannelMembers(p,k);if(t()&&v===P(p))for(let{channelId:T,updatedAt:O,...N}of S)T===p&&(o.set(h(p,N.userId),{member:N,expiresAt:O+r}),O+r>n()&&A.set(N.userId,N));k=k.filter(T=>!A.has(T));}if(!t())return u.flatMap(v=>A.has(v)?[A.get(v)]:[]);if(k.length>0){let v=P(p),S=await ei(e.client,{channelId:p,userIds:k,clientType:e.clientType});if(!S.ok)throw new mn(S.code,S.message);if(S.data!==null&&!Array.isArray(S.data))throw new Y("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let T=ti((S.data??[]).map(L=>ni(L,p))),O=k.filter(L=>!T.some(X=>X.userId===L)),N=b&&O.length>0&&v===P(p),j;N?(await l(p),j=T):j=await w(p,T,v);for(let L of j)A.set(L.userId,L);}return u.flatMap(v=>A.has(v)?[A.get(v)]:[])},invalidateChannelMembers:l,clearCache(){let f=new Set(d.keys());for(let m of o.keys())f.add(m.slice(0,m.indexOf(":")));for(let m of i.keys())f.add(m);for(let m of a.keys())f.add(m);for(let m of c.keys())f.add(m);for(let m of s)f.add(m);for(let m of g)f.add(m);for(let m of f)d.set(m,P(m)+1);o.clear(),i.clear(),a.clear(),c.clear(),s.clear(),g.clear();}}}function ri(e){return {responseMode:"strict",method:"POST",...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function oi(e,n){return B(e,"/user_radio/member/list",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},ri(n.clientType))}function ii(e,n){return B(e,"/user_radio/member/search",{radio_id:n.channelId,search_name:n.query,page:n.page,page_size:n.pageSize},ri(n.clientType))}var ai=18,Gn=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 je(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Ec(e){let n=je(e.user_id);if(n==="")throw new le("user_id \u4E0D\u80FD\u4E3A\u7A7A");let t=je(e.radio_user_nickname)||je(e.nick_name)||je(e.name)||je(e.mid)||n,r=je(e.head_img_url);return {userId:n,displayName:t,...r===""?{}:{avatar:r}}}function Rc(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>ai)throw new le(`limit \u5FC5\u987B\u4E3A 1-${ai}`);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 Tc(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 Dc(e){async function n(t,r){let{channelId:o,page:i,pageSize:a}=Rc(t),c=await r({channelId:o,page:i,pageSize:a,clientType:e.clientType});if(!c.ok)throw new Gn(c.code,c.message);if(c.data!==null&&!Array.isArray(c.data))throw new le("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let d=c.data??[],s=Tc(d.map(Ec)),g=d.length<a;return {items:s,exhausted:g,...g?{}:{nextCursor:String(i+1)}}}return {listMentionMembers:t=>n(t,r=>oi(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=>ii(e.client,{...o,query:r}))}}}function Uc(e){let n=e.fetch??((t,r)=>globalThis.fetch(t,r));return {async postProtobuf({path:t,body:r,headers:o,signal:i}){let a=await e.getBaseUrl();if(!a)throw new Error("CmHttp.postProtobuf\uFF1A\u7F3A\u5C11 CM HTTP \u57FA\u5740\uFF08getCmHttpBaseUrl \u4E3A\u7A7A\uFF09");let c={"Content-Type":"application/octet-stream"},d=e.getClientType?.();d!==void 0&&(c["Client-type"]=String(d)),Object.assign(c,o);let s=await e.getAuth();s!==null&&s.token!==""&&s.userId!==""&&(c.Authorization=`${s.token}:${s.userId}`);let g=await n(`${a}${t}`,{method:"POST",body:r,headers:c,signal:i});if(!g.ok)throw new aa$1({path:t,status:g.status,statusText:g.statusText});let h=await g.arrayBuffer();return new Uint8Array(h)}}}var pe=class extends Error{constructor(n){super(n),this.name="DirectoryMappingError";}};function Hn(e,n){if(e===null||typeof e!="object"||Array.isArray(e))throw new pe(`${n} \u5FC5\u987B\u662F\u5BF9\u8C61`);return e}function te(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function gn(e){let n=te(e);return n===""?void 0:n}function Oc(e){let n=Hn(e,"\u8054\u7CFB\u4EBA\u76EE\u5F55\u9879"),t=n.user_info===void 0?n:Hn(n.user_info,"\u8054\u7CFB\u4EBA user_info"),r=te(t.user_id??n.friend_user_id??n.user_id);if(r==="")throw new pe("\u8054\u7CFB\u4EBA\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A user_id");let o=te(n.remark_name)||te(n.contact_name)||te(t.nick_name)||te(t.username)||te(t.mid)||r,i=te(t.nick_name)||te(t.username)||te(t.mid)||r,a=gn(t.head_img_url),c=gn(t.username)??gn(t.mid);return {id:r,kind:"individual",displayName:o,cardDisplayName:i,...a===void 0?{}:{avatarUrl:a},...c===void 0?{}:{username:c}}}function Bc(e){let n=Hn(e,"\u7FA4\u7EC4\u76EE\u5F55\u9879"),t=te(n.group_id);if(t==="")throw new pe("\u7FA4\u7EC4\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A group_id");let r=gn(n.head_img_url),o=te(n.name)||t;return {id:t,kind:"group",displayName:o,cardDisplayName:o,...r===void 0?{}:{avatarUrl:r}}}function Nc(e){let n=Hn(e,"\u793E\u7FA4\u76EE\u5F55\u9879"),t=te(n.radio_id??n.id);if(t==="")throw new pe("\u793E\u7FA4\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A radio_id/id");let r=gn(n.head_img_url),o=te(n.name)||t;return {id:t,kind:"channel",displayName:o,cardDisplayName:o,...r===void 0?{}:{avatarUrl:r}}}function Kc(e,n){if(!Number.isSafeInteger(e)||e<1)throw new pe("\u76EE\u5F55 page \u5FC5\u987B\u662F\u6B63\u6574\u6570");if(!Number.isSafeInteger(n)||n<1||n>100)throw new pe("\u76EE\u5F55 pageSize \u5FC5\u987B\u662F 1-100 \u7684\u6574\u6570")}function Lc(e){return {async list(n){Kc(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 B(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 pe(`${n.kind} \u76EE\u5F55 data \u5FC5\u987B\u662F\u6570\u7EC4`);let a=n.kind==="individual"?Oc:n.kind==="group"?Bc:Nc,c=new Map;for(let s of i){let g=a(s);c.set(g.id,g);}let d=i.length<n.pageSize;return {items:[...c.values()],...d?{}:{nextPage:n.page+1},exhausted:d}}}}var Gc="https://api.giphy.com/v1/gifs",$e=class extends Error{constructor(t){super(t==="core"?"\u8868\u60C5 Core API \u672A\u914D\u7F6E":"Giphy API key \u672A\u914D\u7F6E");this.provider=t;this.name="ExpressionProviderUnavailableError";}provider},z=class extends Error{constructor(n){super(n),this.name="ExpressionMappingError";}},De=class extends Error{constructor(t,r){super(`Giphy \u8BF7\u6C42\u5931\u8D25\uFF1AHTTP ${t}${r?` ${r}`:""}`);this.status=t;this.name="GiphyHttpError";}status};function ie(e,n){if(e===null||typeof e!="object"||Array.isArray(e))throw new z(`${n} \u5FC5\u987B\u662F\u5BF9\u8C61`);return e}function oe(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Se(e,n){let t=oe(e);if(t==="")throw new z(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function Ve(e){let n=oe(e);return n===""?void 0:n}function Je(e,n){let t=Number(e);if(!Number.isSafeInteger(t)||t<0)throw new z(`${n} \u5FC5\u987B\u662F\u975E\u8D1F\u6574\u6570`);return t}function Hc(e,n){let t=Number(e);if(!Number.isSafeInteger(t))throw new z(`${n} \u5FC5\u987B\u662F\u5B89\u5168\u6574\u6570`);return t}function si(e,n){let t=Number(e);if(!Number.isFinite(t)||t<=0)throw new z(`${n} \u5FC5\u987B\u662F\u6709\u9650\u6B63\u6570`);return t}function Ue(e,n){let t=Se(e,n),r;try{r=new URL(t);}catch(o){throw new z(`${n} \u4E0D\u662F\u5408\u6CD5 URL\uFF1A${o instanceof Error?o.message:String(o)}`)}if(r.protocol!=="https:"&&r.protocol!=="http:")throw new z(`${n} \u53EA\u652F\u6301 HTTP(S)`);if(r.username!==""||r.password!=="")throw new z(`${n} \u4E0D\u5141\u8BB8\u5305\u542B URL \u51ED\u636E`);return t}function Ft(e,n){if(e==null)return [];if(Array.isArray(e))return e;let r=ie(e,n).list;if(r==null)return [];if(!Array.isArray(r))throw new z(`${n}.list \u5FC5\u987B\u662F\u6570\u7EC4\u6216 null`);return r}function yn(e){return e==="sticker"?1:e==="gif"?2:3}function ci(e){let n=ie(e,"\u8D34\u56FE\u5305"),t=Ve(n.onlineTime??n.online_time),r=n.isPlatformIssued??n.is_platform_issued;return {id:Se(n.packId??n.pack_id,"\u8D34\u56FE\u5305 packId"),nameZh:oe(n.nameZh??n.name_zh),nameEn:oe(n.nameEn??n.name_en),nameTh:oe(n.nameTh??n.name_th),nameTw:oe(n.nameTw??n.name_tw),nameVi:oe(n.nameVi??n.name_vi),publisher:oe(n.publisher),trayIconUrl:Ue(n.trayIcon??n.tray_icon,"\u8D34\u56FE\u5305 trayIcon"),sortWeight:Hc(n.sortWeight??n.sort_weight??0,"\u8D34\u56FE\u5305 sortWeight"),isPlatformIssued:r===true||Number(r)===1,...t===void 0?{}:{onlineTime:t},stickerCount:Je(n.stickerCount??n.sticker_count??0,"\u8D34\u56FE\u5305 stickerCount")}}function qt(e,n,t,r){let o=ie(e,t),i=Ve(o.id),a={...i===void 0?{}:{recordId:i},url:Ue(o.imgUrl??o.img_url,`${t} imgUrl`),width:Je(o.width??0,`${t} width`),height:Je(o.height??0,`${t} height`)};if(n==="sticker")return {kind:n,...a,packageId:Se(r??o.packId??o.pack_id,`${t} packageId`),resourceId:Se(o.fileName??o.file_name,`${t} resourceId`)};let c=Ve(o.fileName??o.file_name);return {kind:n,...a,...c===void 0?{}:{resourceId:c}}}function Fc(e,n){if(n!=="emoji")return qt(e,n,"\u6700\u8FD1\u4F7F\u7528\u9879");let t=ie(e,"\u6700\u8FD1 emoji"),r=Ve(t.id);return {kind:"emoji",...r===void 0?{}:{recordId:r},token:Se(t.imgUrl??t.img_url,"\u6700\u8FD1 emoji token"),resourceId:Se(t.fileName??t.file_name,"\u6700\u8FD1 emoji resourceId")}}function di(e,n,t){let r=yn(n);return Ft(e,t).filter(o=>{let i=ie(o,`${t} item`),a=i.favType??i.fav_type;if(a==null)return true;let c=Number(a);if(c!==1&&c!==2&&c!==3)throw new z(`${t} item.favType \u5FC5\u987B\u662F 1\u30012 \u6216 3`);return c===r})}function li(e){return {fav_type:yn(e.kind),pack_id:e.kind==="sticker"?e.packageId:"",img_url:Ue(e.url,"\u8868\u60C5\u5199\u5165 imgUrl"),file_name:e.resourceId??"",width:e.width,height:e.height}}function qc(e){return e.kind!=="emoji"?li(e):{fav_type:yn(e.kind),pack_id:"",img_url:e.token,file_name:e.resourceId,width:0,height:0}}function ui(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 z("\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 jc(e){let n=ie(e,"Giphy item"),t=ie(n.images,"Giphy item.images"),r=ie(t.original,"Giphy item.images.original"),o=t.fixed_width,i=o==null?void 0:ie(o,"Giphy item.images.fixed_width"),a=Ue(r.url,"Giphy original.url"),c=i===void 0?void 0:Ve(i.url),d=i===void 0?void 0:Ve(i.webp),s=d===void 0?c===void 0?a:Ue(c,"Giphy fixed_width.url"):Ue(d,"Giphy fixed_width.webp"),g=d!==void 0&&c!==void 0&&c!==d?Ue(c,"Giphy fixed_width.url"):void 0;return {kind:"gif",resourceId:Se(n.id,"Giphy item.id"),title:oe(n.title)||"GIF",url:a,previewUrl:s,...g===void 0?{}:{fallbackPreviewUrl:g},width:si(r.width,"Giphy original.width"),height:si(r.height,"Giphy original.height")}}function $c(e,n){let t=ie(e,"Giphy response");if(!Array.isArray(t.data))throw new z("Giphy response.data \u5FC5\u987B\u662F\u6570\u7EC4");let r=ie(t.pagination,"Giphy response.pagination"),o=Je(r.offset??n,"Giphy pagination.offset");if(o!==n)throw new z("Giphy pagination.offset \u4E0E\u8BF7\u6C42 offset \u4E0D\u4E00\u81F4");let i=Je(r.count??t.data.length,"Giphy pagination.count"),a=Je(r.total_count??r.totalCount??0,"Giphy pagination.total_count"),c=new Map;for(let s of t.data){let g=jc(s);c.set(g.resourceId,g);}let d=o+i;return {items:[...c.values()],offset:o,totalCount:a,...i>0&&d<a?{nextOffset:d}:{}}}function Jc(e){async function n(r,o,i){if(e.coreClient===void 0)throw new $e("core");let a=await B(e.coreClient,r,o,{method:"POST",responseMode:"strict"});if(!a.ok)throw new Q(i,a.code,a.message);return a.data}async function t(r,o){let i=e.giphyApiKey?.trim()??"";if(i==="")throw new $e("giphy");let a=e.fetcher??globalThis.fetch;if(typeof a!="function")throw new $e("giphy");let c=new URLSearchParams({api_key:i,limit:String(o.limit),offset:String(o.offset),...o.query===void 0?{}:{q:o.query,lang:"en"}}),d;try{d=await a(`${Gc}/${r}?${c.toString()}`);}catch{throw new De(0,"network failure")}let s;try{s=await d.json();}catch(h){throw d.ok?new z(`Giphy response \u4E0D\u662F JSON\uFF1A${h instanceof Error?h.message:String(h)}`):new De(d.status,"")}if(!d.ok){let h=s!==null&&typeof s=="object"&&!Array.isArray(s)?s.meta:void 0,P=h!==null&&typeof h=="object"&&!Array.isArray(h)?oe(h.msg):"";throw new De(d.status,P)}let g=s!==null&&typeof s=="object"&&!Array.isArray(s)?s.meta:void 0;if(g!==null&&typeof g=="object"&&!Array.isArray(g)){let h=g,P=Number(h.status);if(Number.isFinite(P)&&P!==200)throw new De(P,oe(h.msg))}return $c(s,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(ci)};if(o==null)return {version:"",items:[]};let i=ie(o,"\u8D34\u56FE\u5305\u5217\u8868 data"),a=i.list??i.packs;if(a==null)return {version:oe(i.version),items:[]};if(!Array.isArray(a))throw new z("\u8D34\u56FE\u5305\u5217\u8868 data.list \u5FC5\u987B\u662F\u6570\u7EC4\u6216 null");return {version:oe(i.version),items:a.map(ci)}},async listStickerItems(r){let o=await n("/user/sticker/item_list",{pack_id:r},"\u8D34\u56FE\u660E\u7EC6\u5217\u8868");return Ft(o,"\u8D34\u56FE\u660E\u7EC6\u5217\u8868 data").map(i=>qt(i,"sticker","\u8D34\u56FE\u660E\u7EC6",r))},async listFavorites(r){let o=await n("/user/sticker/my_fav/list",{fav_type:yn(r)},"\u8868\u60C5\u6536\u85CF\u5217\u8868");return di(o,r,"\u8868\u60C5\u6536\u85CF\u5217\u8868 data").map(i=>qt(i,r,"\u8868\u60C5\u6536\u85CF\u9879"))},async addFavorite(r){await n("/user/sticker/my_fav/add",li(r),"\u6DFB\u52A0\u8868\u60C5\u6536\u85CF");},async deleteFavorites(r){await n("/user/sticker/my_fav/del",{ids:ui(r)},"\u5220\u9664\u8868\u60C5\u6536\u85CF");},async listRecent(r){let o=await n("/user/sticker/recent/list",{fav_type:yn(r)},"\u6700\u8FD1\u4F7F\u7528\u5217\u8868");return di(o,r,"\u6700\u8FD1\u4F7F\u7528\u5217\u8868 data").map(i=>Fc(i,r))},async reportRecent(r){await n("/user/sticker/recent/report",qc(r),"\u4E0A\u62A5\u6700\u8FD1\u4F7F\u7528");},async deleteRecent(r){await n("/user/sticker/recent/del",{ids:ui(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 Ft(o,"\u5FEB\u6377\u56DE\u5E94 Top data").map(i=>{let a=ie(i,"\u5FEB\u6377\u56DE\u5E94 Top \u9879");return Se(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 pi(e,n){let t=n.clientType===void 0?void 0:{headers:{"Client-type":String(n.clientType)}};return (await B(e,"/user_group/info",{group_id:n.groupId},t)).data}function Vc(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 zc(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 fi=200,Wc=50;async function mi(e,n){let t=String(n.updateVersion??0).trim()||"0",r=[],o;for(let i=1;i<=Wc;i++){let a={group_id:n.groupId,update_version:t,page:String(i),page_size:String(fi)},{data:c}=await B(e,"/user_group/user/list",a,{method:"GET",...n.clientType===void 0?{}:{headers:{"Client-type":String(n.clientType)}}});if(c===null)break;let d=Vc(c);if(d.length===0)break;for(let g of d){let h=String(g.user_id??g.userId??"").trim();if(h==="")continue;let P={userId:h,nickName:String(g.nick_name??g.nickName??"").trim()},y=zc(g.join_type??g.joinType);y!==void 0&&(P.joinType=y),r.push(P);}let s=c.update_version;if(typeof s=="number"&&(o=s),d.length<fi)break}return {members:r,updateVersion:o}}async function gi(e,n){return (await B(e,"/user/info/friend",{friend_user_id:n.userId})).data}var Yc=1440*60*1e3;function jt(e,n,t=Yc){let r=new Map,o=new Map,i=new Map;function a(g){let h=(i.get(g)??0)+1;i.set(g,h);let P=e(g).then(y=>(y!==null&&i.get(g)===h&&(r.set(g,y),n?.save(g,y).catch(()=>{})),y)).finally(()=>{o.get(g)===P&&o.delete(g);});return o.set(g,P),P}return {get:async(g,h)=>{if(h?.forceRefresh===true)return a(g);let P=r.get(g);if(P!==void 0)return P;let y=o.get(g);if(y!==void 0)return y;if(n!==void 0)try{let M=i.get(g)??0,I=await n.get(g);if(I!==null)return (i.get(g)??0)===M&&(r.set(g,I.value),Date.now()-I.updatedAt>t&&a(g)),I.value}catch{}return a(g)},peek:async g=>{let h=r.get(g);if(h!==void 0)return {value:h,stale:false};if(n===void 0)return null;try{let P=i.get(g)??0,y=await n.get(g);if(y!==null)return (i.get(g)??0)===P&&r.set(g,y.value),{value:y.value,stale:Date.now()-y.updatedAt>t}}catch{}return null},clear:()=>{for(let g of new Set([...r.keys(),...o.keys(),...i.keys()]))i.set(g,(i.get(g)??0)+1);r.clear(),o.clear();}}}function Xc(e){async function n(P){let y=await gi(e.client,{userId:P})??await cn(e.client,{userId:P});return y===null?null:ya$1(y)}async function t(P){let y=await pi(e.client,{groupId:P,clientType:e.clientType});return y===null?null:za$1(y)}async function r(P){let{members:y}=await mi(e.client,{groupId:P,clientType:e.clientType});return y.length===0?null:y}function o(P){let y={};for(let M of P)M.nickName!==""&&(y[M.userId]=M.nickName);return y}let{storage:i}=e,a=i===void 0?void 0:{get:async P=>{let y=await i.getUserProfile(P);return y===null?null:{value:y,updatedAt:y.updatedAt}},save:async(P,y)=>{await i.saveUserProfile({...y,updatedAt:Date.now()});}},c=i===void 0?void 0:{get:async P=>{let y=await i.getGroupMembers(P);return y===null?null:{value:y.members.map(M=>({userId:M.userId,nickName:M.groupNick,...M.joinType===void 0?{}:{joinType:M.joinType}})),updatedAt:y.updatedAt}},save:async(P,y)=>{let M=y.map(I=>({userId:I.userId,groupNick:I.nickName,...I.joinType===void 0?{}:{joinType:I.joinType}}));await i.saveGroupMembers({groupId:P,members:M,updatedAt:Date.now()});}},d=i===void 0?void 0:{get:async P=>{let y=await i.getGroupProfile(P);return y===null?null:{value:y,updatedAt:y.updatedAt}},save:async(P,y)=>{await i.saveGroupProfile({...y,updatedAt:Date.now()});}},s=jt(n,a),g=jt(t,d),h=jt(r,c);return {getUserProfile:(P,y)=>s.get(P,y),getGroupProfile:(P,y)=>g.get(P,y),getGroupMemberNames:async(P,y)=>{let M=await h.get(P,y);return M===null?null:o(M)},listGroupMembers:(P,y)=>h.get(P,y),peekUserProfile:P=>s.peek(P),peekGroupMemberNames:async P=>{let y=await h.peek(P);return y===null?null:{value:o(y.value),stale:y.stale}},peekGroupMembers:P=>h.peek(P),peekGroupProfile:P=>g.peek(P),clearCache:()=>{s.clear(),g.clear(),h.clear();}}}var Fn=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;}},ze=class extends Error{constructor(n){super(n),this.name="RobotConversationBindMappingError";}};function Qc(e){let n=e.robotId.trim(),t=e.conversationId.trim();if(n==="")throw new ze("\u7ED1\u5B9A\u673A\u5668\u4EBA robotId \u4E0D\u80FD\u4E3A\u7A7A");if(t==="")throw new ze("\u7ED1\u5B9A\u673A\u5668\u4EBA conversationId \u4E0D\u80FD\u4E3A\u7A7A");if(e.groupType!==1&&e.groupType!==2)throw new ze("\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 yi(e,n,t){let r=Qc(t),i=await B(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 Fn(n,i.code,i.message)}function Zc(e,n){return yi(e,"bind",n)}function ed(e,n){return yi(e,"unbind",n)}function nd(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}async function ae(e,n,t,r){let o=await B(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new Q(r,o.code,o.message)}function td(e){return ae(e.client,"/user_radio/edit",{radio_id:e.channelId,...e.name===void 0?{}:{name:e.name},...e.avatarUrl===void 0?{}:{head_img_url:e.avatarUrl},...e.description===void 0?{}:{desc:e.description}},"\u4FEE\u6539\u793E\u7FA4\u8D44\u6599")}function rd(e){return ae(e.client,"/user_radio/user/setting",{radio_id:e.channelId,nick_name:e.nickname},"\u4FEE\u6539\u793E\u7FA4\u6635\u79F0")}function od(e){return ae(e.client,"/user_radio/member/edit",{radio_id:e.channelId,radio_user_id:e.userId,nick_name:e.nickname},"\u4FEE\u6539\u793E\u7FA4\u6635\u79F0")}function id(e){let n=e.userIds.map(t=>({user_id:nd(t)}));return ae(e.client,"/user_radio/invited_users",{radio_id:e.channelId,members:JSON.stringify(n)},"\u9080\u8BF7\u793E\u7FA4\u6210\u5458")}function ad(e){return ae(e.client,"/user_radio/kick_user",{radio_id:e.channelId,user_id:e.userId},"\u79FB\u9664\u793E\u7FA4\u6210\u5458")}function sd(e){return ae(e.client,"/user_radio/add_admin",{radio_id:e.channelId,user_id:e.userId},"\u8BBE\u4E3A\u793E\u7FA4\u7BA1\u7406\u5458")}function cd(e){return ae(e.client,"/user_radio/del_admin",{radio_id:e.channelId,user_id:e.userId},"\u53D6\u6D88\u793E\u7FA4\u7BA1\u7406\u5458")}function dd(e){return ae(e.client,"/user_radio/transfer",{radio_id:e.channelId,user_id:e.userId},"\u8F6C\u8BA9\u793E\u7FA4")}function ud(e){return ae(e.client,"/user_radio/user/quit",{radio_id:e.channelId,...e.newOwnerId===void 0?{}:{user_id:e.newOwnerId}},"\u9000\u51FA\u793E\u7FA4")}function ld(e){return ae(e.client,"/user_radio/edit_setting",{radio_id:e.channelId,verify_way:e.verifyType,...e.verifyType===4&&e.inviteCode!==void 0?{invite_code:e.inviteCode}:{}},"\u4FEE\u6539\u793E\u7FA4\u5165\u7FA4\u9A8C\u8BC1\u65B9\u5F0F")}function pd(e){return ae(e.client,"/user_radio/edit_setting",{radio_id:e.channelId,is_unspeeking_all:e.muted?"1":"0"},e.muted?"\u5F00\u542F\u793E\u7FA4\u5168\u5458\u7981\u8A00":"\u5173\u95ED\u793E\u7FA4\u5168\u5458\u7981\u8A00")}function fd(e){return ae(e.client,"/user_radio/edit_setting",{radio_id:e.channelId,is_unvisit_other:e.disabled?"1":"0"},e.disabled?"\u5F00\u542F\u793E\u7FA4\u5168\u5458\u7981\u79C1\u804A":"\u5173\u95ED\u793E\u7FA4\u5168\u5458\u7981\u79C1\u804A")}function md(e){return ae(e.client,"/user_radio/closed",{radio_id:e.channelId},"\u89E3\u6563\u793E\u7FA4")}async function gd(e){a(e.signal),yd(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),a(e.signal);let t=e.containAnchor??true,r=R({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}});a(e.signal);let i=U(o,{selfId:e.userId,keepRaw:true,expectedChannelIds:[e.channelId],onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps);if(t){let c=i.messages.filter(d=>d.extensions?.historyCursor===n);if(c.length!==1)throw new Error(`CHANNEL \u5386\u53F2\u4E0A\u4E0B\u6587 anchor \u5FC5\u987B\u4E00\u4E00\u5BF9\u5E94\uFF08channelId=${e.channelId}, index=${n}, count=${c.length}\uFF09`)}let a$1=i.nextBaseIndexes[e.channelId];return {messages:i.messages,hasNewer:(i.messageCounts[e.channelId]??0)===20&&a$1!==void 0&&a$1!==n,...a$1===void 0?{}:{nextCursor:a$1}}}function yd(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 hd(e){let n=bd(e.indexes),t=g.encode(g.create({sUserId:$t(e.userId,"user"),lsIndex:n.map(i=>({sChnnId:$t(i.channelId,"channel"),sIndex:i.readCursor}))})),r=await e.http.postProtobuf({path:"/channel/v1/readIndexes/edit",body:t}),o=h.decode(r);if(o.errcode!==0)throw new Error(`CHANNEL readIndexes/edit \u5931\u8D25\uFF1Aerrcode=${o.errcode}`)}function bd(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=>{$t(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 $t(e,n){if(!/^\d+$/.test(e))throw new Error(`CHANNEL readIndexes ${n} id \u975E\u6CD5\uFF1A${e}`);let t=BigInt(e);if(t<=0n)throw new Error(`CHANNEL readIndexes ${n} id \u975E\u6CD5\uFF1A${e}`);return t}function hn(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function hi(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:void 0}async function wd(e){let n=await B(e,"/friend/black/list",{},{responseMode:"strict",method:"POST"});if(!n.ok)throw new Error(`\u52A0\u8F7D\u9ED1\u540D\u5355\u5931\u8D25\uFF08${n.code}\uFF09\uFF1A${n.message||"unknown error"}`);if(n.data===null||n.data===void 0)return Object.freeze([]);if(!Array.isArray(n.data))throw new Error("\u52A0\u8F7D\u9ED1\u540D\u5355\uFF1A\u54CD\u5E94 data \u5FC5\u987B\u662F\u6570\u7EC4");return Object.freeze(n.data.map(t=>{let r=hi(t),o=hi(r?.user_info);if(r===void 0||o===void 0)throw new Error("\u52A0\u8F7D\u9ED1\u540D\u5355\uFF1A\u54CD\u5E94\u7F3A\u5C11 user_info");let i=hn(r.user_id),a=hn(o.user_id),c=a||i;if(c==="")throw new Error("\u52A0\u8F7D\u9ED1\u540D\u5355\uFF1A\u54CD\u5E94\u7F3A\u5C11 user_id");if(i!==""&&a!==""&&i!==a)throw new Error("\u52A0\u8F7D\u9ED1\u540D\u5355\uFF1A\u5173\u7CFB\u8BB0\u5F55\u4E0E user_info \u8EAB\u4EFD\u4E0D\u4E00\u81F4");let d=hn(o.nick_name??o.nickname)||c,s=hn(r.remark_name),g=hn(o.head_img_url??o.avatar);return Object.freeze({userId:c,displayName:s||d,nickname:d,...s===""?{}:{remark:s},...g===""?{}:{avatarUrl:g}})}))}async function Cd(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 B(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 qn=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;}},jn=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;}},Jt={HIDDEN_CONTACT:40112,OWN_FRIEND_LIMIT_REACHED:40121,TARGET_FRIEND_LIMIT_REACHED:40122},Pd=36875,Id=40113;function Vt(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function be(e){let n=Vt(e);return n===""?void 0:n}function bi(e){let n=Array.isArray(e)?e[0]:e;return n!==null&&typeof n=="object"?n:void 0}function vd(e){switch(e){case Jt.HIDDEN_CONTACT:return "hidden-contact";case Jt.OWN_FRIEND_LIMIT_REACHED:return "own-friend-limit";case Jt.TARGET_FRIEND_LIMIT_REACHED:return "target-friend-limit";default:return "remote"}}async function Ad(e,n){let t=n.query.trim();if(t==="")throw new Error("\u641C\u7D22\u7528\u6237\uFF1Aquery \u4E0D\u80FD\u4E3A\u7A7A");let r=await B(e,"/user/info/search",{username:t},{responseMode:"strict",...n.clientType===void 0?{}:{headers:{"Client-type":String(n.clientType)}}});if(!r.ok)throw new qn(r.code,r.message);let o=bi(r.data);if(o===void 0)return null;let i=Vt(o.user_id??o.userId);if(i==="")throw new Error("\u641C\u7D22\u7528\u6237\uFF1A\u54CD\u5E94\u7F3A\u5C11 user_id");let a=Vt(o.nick_name??o.nickname??o.name)||i,c=o.friend_status??o.friendStatus,d=c===void 0?void 0:Number(c);if(d!==void 0&&!Number.isInteger(d))throw new Error("\u641C\u7D22\u7528\u6237\uFF1Afriend_status \u975E\u6CD5");return {userId:i,nickname:a,...be(o.username)===void 0?{}:{username:be(o.username)},...be(o.mid)===void 0?{}:{miCallId:be(o.mid)},...be(o.head_img_url??o.avatar)===void 0?{}:{avatarUrl:be(o.head_img_url??o.avatar)},...be(o.per_signature??o.signature)===void 0?{}:{signature:be(o.per_signature??o.signature)},...d===void 0?{}:{friendStatus:d}}}async function Sd(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 B(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 jn(vd(i.code),i.code,i.message);let a=bi(i.data),c=Number(a?.status??0);if(c!==0&&c!==1&&c!==2)throw new Error(`\u53D1\u9001\u597D\u53CB\u7533\u8BF7\uFF1A\u672A\u77E5\u7ED3\u679C\u72B6\u6001 ${c}`);let d=be(a?.message??a?.msg??i.message);return {status:c,...d===void 0?{}:{message:d}}}async function Md(e,n){let t=n.userId.trim();if(t==="")throw new Error("\u5220\u9664\u597D\u53CB\uFF1AuserId \u4E0D\u80FD\u4E3A\u7A7A");let r=await B(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!==Id)throw new Error(`\u5220\u9664\u597D\u53CB\u5931\u8D25\uFF08${r.code}\uFF09\uFF1A${r.message||"unknown error"}`)}async function xd(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 B(e,"/user/report_user/add",{user_id:t,to_user_id:r,problem:o,images:"1"},{responseMode:"strict",method:"POST"});if(!i.ok)throw new Q("\u4E3E\u62A5\u8054\u7CFB\u4EBA",i.code,i.message)}function _d(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}function kd(e){let n=e.memberIds.map(t=>({user_id:_d(t)}));return B(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 Ed(e){return B(e.client,"/user_group/create_face",{is_hidden:"0"},{method:"POST",responseMode:"strict"})}function Rd(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}function Td(e){let n=e.memberIds.map(t=>({user_id:Rd(t)}));return B(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 We(e){if(e.trim()==="")throw new Error("board pinned message groupId \u4E0D\u80FD\u4E3A\u7A7A")}function Ye(e){if(e.trim()==="")throw new Error("channel board pinned message channelId \u4E0D\u80FD\u4E3A\u7A7A")}function wi(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function Dd(e){We(e.groupId);let n=await B(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(!wi(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(!wi(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 Ci(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function Ud(e){Ye(e.channelId);let n=await B(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(!Ci(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(!Ci(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 Od(e,n){let r=(await B(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 Bd(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 Nd(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||!Bd(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 Kd(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}async function bn(e,n,t,r){let o=await B(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new Q(r,o.code,o.message)}function Ld(e){let n=e.userIds.map(t=>({user_id:Kd(t)}));return bn(e.client,"/user_group/invited",{group_id:e.groupId,members:JSON.stringify(n)},"\u9080\u8BF7\u7FA4\u6210\u5458")}function Gd(e){return bn(e.client,"/user_group/kick",{group_id:e.groupId,out_user_id:e.userId},"\u79FB\u9664\u7FA4\u6210\u5458")}function Hd(e){return bn(e.client,"/user_group/transfer",{group_id:e.groupId,new_user_id:e.userId},"\u8F6C\u8BA9\u7FA4\u7EC4")}function Fd(e){return bn(e.client,"/user_group/user/quit",{group_id:e.groupId,...e.newOwnerId===void 0?{}:{new_user_id:e.newOwnerId}},"\u9000\u51FA\u7FA4\u7EC4")}function qd(e){return bn(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 jd=new Set([200,32768]);async function $d(e){let n=pa$1({userId:e.userId,groupId:e.groupId}),t=await e.http.postProtobuf({path:"/offline/v1/group/read_all",body:n}),{code:r}=qa$1(t);if(!jd.has(r))throw new Error(`\u7FA4 read_all \u4E1A\u52A1\u5931\u8D25\uFF1Acode=${r}\uFF08groupId=${e.groupId}\uFF09`)}var wn=class extends Error{constructor(n){super(`${n}\u54CD\u5E94\u5305\u542B\u65E0\u6CD5\u8BC6\u522B\u7684 is_waitting`),this.name="MembershipJoinMappingError";}};function Jd(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 wn(n)}async function Pi(e,n,t,r){let o=await B(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new Q(r,o.code,o.message);if(o.data===null||o.data===void 0)throw new wn(r);return Jd(o.data.is_waitting,r)}async function Ii(e,n,t,r){let o=await B(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new Q(r,o.code,o.message);return Object.freeze({outcome:"joined"})}function Vd(e){return Pi(e.client,"/user_group/apply",{group_id:e.groupId,qrcode_type:2,remarks:e.remarks??""},"\u7533\u8BF7\u52A0\u5165\u666E\u901A\u7FA4")}function zd(e){return Ii(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 Wd(e){return Pi(e.client,"/user_radio/add/apply",{radio_id:e.channelId,remarks:e.remarks??""},"\u7533\u8BF7\u52A0\u5165\u793E\u7FA4")}function Yd(e){return Ii(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 Xd(e){if(We(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 B(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 Qd(e){if(Ye(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 B(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 Zd(e){a(e.asyncDecrypt?.signal),e.asyncDecrypt?.assertCurrent?.();let n=ua$1({userId:e.userId,messageIds:e.messageIds,clientType:e.clientType}),t=await e.http.postProtobuf({path:"/offline/v1/chat/msg/by_id",body:n,...e.asyncDecrypt?.signal===void 0?{}:{signal:e.asyncDecrypt.signal}}),r={selfId:e.userId,keepRaw:true,onReaction:e.onReaction,onPlaintextFallback:e.onPlaintextFallback};return e.asyncDecrypt===void 0?va$1(t,r,e.decryptDeps,e.messageIds):xa$1(t,r,e.decryptDeps,e.messageIds,e.asyncDecrypt)}async function eu(e){a(e.asyncDecrypt?.signal),e.asyncDecrypt?.assertCurrent?.(),e.asyncDecrypt===void 0&&e.prepareKeys!==void 0&&e.decryptDeps!==void 0&&e.groupId!==""&&await e.prepareKeys([e.groupId]);let n=ma$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,...e.asyncDecrypt?.signal===void 0?{}:{signal:e.asyncDecrypt.signal}}),r={selfId:e.userId,keepRaw:true,source:"history",onReaction:e.onReaction};return e.asyncDecrypt===void 0?na$1(t,r,e.decryptDeps,e.messageIds):oa$1(t,{...r,expectedGroupId:e.groupId},e.decryptDeps,e.messageIds,{...e.asyncDecrypt,...e.prepareKeys===void 0?{}:{prepareKeys:o=>e.prepareKeys([...o])}})}async function nu(e){e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId);let n=W$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 X(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,e.messageIds)}var tu=20,vi=10,zt=30,ru=100;async function ou(e){let n=[];for(let t of Si(e.channels,tu)){let r=Q$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(c=>c.channelId),diagnostic:{endpoint:"sessions",surface:"session-last",...e.operationId===void 0?{}:{operationId:e.operationId},clientTypeHeader:e.clientType,clientTypeBody:e.clientType}},a=T(o,i);await Ai(e,a.sessions.filter(c=>c.channelState==="active"||c.raw?.status===0).map(c=>c.channelId)),n.push(...T(o,{...i,onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps).sessions);}return n}async function iu(e){let n=cu(e.channelBatchSize),t=e.messageCount??zt,r=du(e.maxPagesPerBatch),o$1=new Map;for(let i of Si(e.pulls,n)){let a$1=i.map(s=>({...s})),c=new Map(a$1.map(s=>[s.channelId,new Set([s.baseIndex])])),d=0;for(;a$1.length>0;){a(e.signal),await e.beforePage?.(),a(e.signal);let s=e.isChannelCurrent;if(s!==void 0&&(a$1=a$1.filter(I=>s(I.channelId))),a$1.length===0)break;if(d>=r){let I=a$1.map(({channelId:E,baseIndex:D})=>`${E}@${D}`).join(",");throw new Error(`channel offline \u5206\u9875\u8D85\u8FC7 maxPagesPerBatch=${r}\uFF08active=${I}\uFF09`)}d+=1;let g=R({userId:e.userId,clientType:e.clientType,pulls:a$1.map(I=>({channelId:I.channelId,baseIndex:I.baseIndex,direction:0,count:t,contain:0}))});a(e.signal);let h=await e.http.postProtobuf({path:"/channel/v1/offlineMessages",body:g,...e.signal===void 0?{}:{signal:e.signal}});a(e.signal),await Ai(e,a$1.map(I=>I.channelId)),a(e.signal);let P={selfId:e.userId,keepRaw:e.keepRaw??true,expectedChannelIds:a$1.map(I=>I.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},y=e.yieldToEventLoop===void 0?U(h,P,e.decryptDeps):await V$1(h,P,e.decryptDeps,{yieldToEventLoop:e.yieldToEventLoop,signal:e.signal});a(e.signal);let M=[];for(let I of a$1){let E=y.nextBaseIndexes[I.channelId],D=y.messageCounts[I.channelId]??0;if(E===void 0)continue;let R=c.get(I.channelId);if(R.has(E))throw new Error(`channel offline cursor \u5FAA\u73AF\uFF08channelId=${I.channelId}, baseIndex=${E}\uFF09`);D<t||(R.add(E),M.push({channelId:I.channelId,baseIndex:E}));}await e.onPage?.(y.messages,{pulls:a$1.map(I=>({...I})),nextBaseIndexes:{...y.nextBaseIndexes},messageCounts:{...y.messageCounts}}),a(e.signal);for(let I of y.messages)o$1.has(I.id)||o$1.set(I.id,I);a$1=M;}}return [...o$1.values()].sort(o)}async function au(e){a(e.signal);let n=e.count??zt;if(!Number.isInteger(n)||n<=0)throw new Error("channel latest: count \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId);let t=R({userId:e.userId,clientType:e.clientType,pulls:[{channelId:e.channelId,baseIndex:"",direction:1,count:n,contain:0}]});a(e.signal);let r=await e.http.postProtobuf({path:"/channel/v1/offlineMessages",body:t,...e.signal===void 0?{}:{signal:e.signal}});a(e.signal);let o={selfId:e.userId,keepRaw:e.keepRaw??true,expectedChannelIds:[e.channelId],diagnostic:{endpoint:"offlineMessages",surface:"history-page",...e.operationId===void 0?{}:{operationId:e.operationId},clientTypeHeader:e.clientType,clientTypeBody:e.clientType},onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},i=e.yieldToEventLoop===void 0?{...U(r,o,e.decryptDeps),firstBaseIndex:f.decode(r).lsMessage[0]?.sIndex}:await V$1(r,o,e.decryptDeps,{yieldToEventLoop:e.yieldToEventLoop,signal:e.signal}),a$1=i.batchSize===n,c=i.firstBaseIndex;if(a$1&&(typeof c!="string"||c.trim()===""))throw new Error(`channel latest: \u6EE1\u9875\u7F3A\u5C11\u5411\u65E7 cursor\uFF08channelId=${e.channelId}\uFF09`);return {messages:i.messages,hasOlder:a$1,...a$1?{nextCursor:c}:{}}}async function su(e){a(e.signal);let n=e.count??zt;e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId);let t=S({userId:e.userId,clientType:e.clientType,channelId:e.channelId,baseIndex:e.baseIndex,count:n,contain:e.contain??0});a(e.signal);let r=await e.http.postProtobuf({path:"/channel/v1/offlineMessages",body:t,...e.signal===void 0?{}:{signal:e.signal}});return a(e.signal),Y$1(r,{selfId:e.userId,channelId:e.channelId,requestedBaseIndex:e.baseIndex,requestedCount:n,keepRaw:e.keepRaw??true,diagnostic:{endpoint:"history",surface:"history-page",...e.operationId===void 0?{}:{operationId:e.operationId},clientTypeHeader:e.clientType,clientTypeBody:e.clientType},onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps)}async function Ai(e,n){if(e.decryptDeps===void 0||e.prepareKeys===void 0)return;let t=[...new Set(n.filter(Boolean))];t.length>0&&await e.prepareKeys(t);}function cu(e){if(e===void 0)return vi;if(!Number.isInteger(e)||e<=0)throw new Error("channel offline: channelBatchSize \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");return Math.min(e,vi)}function du(e){if(e===void 0)return ru;if(!Number.isInteger(e)||e<=0)throw new Error("channel offline: maxPagesPerBatch \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");return e}function Si(e,n){let t=[];for(let r=0;r<e.length;r+=n)t.push(e.slice(r,r+n));return t}async function Mi(e,n){a(n.asyncDecrypt?.signal),n.asyncDecrypt?.assertCurrent?.();let t=ra$1({userId:n.userId,clientType:n.clientType,limit:n.limit,deliveredMsgInfos:n.deliveredMsgInfos}),r=await n.http.postProtobuf({path:e,body:t,...n.asyncDecrypt?.signal===void 0?{}:{signal:n.asyncDecrypt.signal}}),o={selfId:n.userId,keepRaw:true,onReaction:n.onReaction};return n.asyncDecrypt===void 0?ta$1(r,o,n.decryptDeps):wa$1(r,o,n.decryptDeps,n.asyncDecrypt)}function xi(e){return Mi("/offline/v1/chat",e)}function _i(e){return Mi("/offline/v1/owner_chat",e)}function uu(e){return xi(e).then(n=>(sa$1(n),n.messages))}function lu(e){return _i(e).then(n=>(sa$1(n),n.messages))}function Wt(e){if(e.asyncDecrypt!==void 0)return {...e.asyncDecrypt,...e.prepareKeys===void 0?{}:{prepareKeys:n=>e.prepareKeys([...n])}}}function ki(e){return [...new Set(e.filter(n=>n!==void 0&&n!==""))]}async function pu(e){let n=Wt(e);a(n?.signal),n?.assertCurrent?.();let t=da$1({userId:e.userId,clientType:e.clientType,limit:e.limit,deliveredMsgIds:e.deliveredMsgInfos?.map(o=>o.msgId)}),r=await e.http.postProtobuf({path:"/offline/v1/group",body:t,...n?.signal===void 0?{}:{signal:n.signal}});if(n!==void 0)return fa$1(r,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps,n);if(e.prepareKeys!==void 0&&e.decryptDeps!==void 0){let o=ga$1(r,{selfId:e.userId}),i=ki(o.messages.map(a=>a.conversationId));i.length>0&&await e.prepareKeys(i);}return ga$1(r,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function fu(e){let n=Wt(e);a(n?.signal),n?.assertCurrent?.();let t=ea$1({userId:e.userId,clientType:e.clientType,size:e.size}),r=await e.http.postProtobuf({path:"/offline/v1/group/session",body:t,...n?.signal===void 0?{}:{signal:n.signal}});if(n!==void 0)return ia$1(r,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps,n);if(e.prepareKeys!==void 0&&e.decryptDeps!==void 0){let o=ha$1(r,{selfId:e.userId}),i=ki([...o.unreads.map(a=>a.groupId),...o.messages.map(a=>a.conversationId)]);i.length>0&&await e.prepareKeys(i);}return ha$1(r,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function mu(e){let n=Wt(e),t=e.signal??n?.signal;a(t),a(n?.signal),n?.assertCurrent?.(),n===void 0&&e.prepareKeys!==void 0&&e.decryptDeps!==void 0&&e.groupId!==""&&await e.prepareKeys([e.groupId]);let r=ja$1({userId:e.userId,groupId:e.groupId,baseTime:e.baseTime,direct:e.direct,limit:e.limit,clientType:e.clientType});a(t);let o=await e.http.postProtobuf({path:"/offline/v1/group/history_msg",body:r,...t===void 0?{}:{signal:t}});a(t);let i={selfId:e.userId,keepRaw:e.keepRaw??true,source:"history",onReaction:e.onReaction};return n!==void 0?la$1(o,{...i,expectedGroupId:e.groupId},e.decryptDeps,{yieldToEventLoop:n.yieldToEventLoop,signal:t},n):e.yieldToEventLoop===void 0?ka$1(o,i,e.decryptDeps):la$1(o,{...i,expectedGroupId:e.groupId},e.decryptDeps,{yieldToEventLoop:e.yieldToEventLoop,signal:e.signal})}async function gu(e){let n=Ea$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,...e.signal===void 0?{}:{signal:e.signal}});return Fa$1(t)}var $n=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;}},ue=class extends Error{constructor(n){super(n),this.name="RobotDirectoryMappingError";}};function Yt(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Ei(e){let n=Yt(e);return n===""?void 0:n}function Xt(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function yu(e){if(e===true||e===1||e==="1")return true;if(e===false||e===0||e==="0")return false}function hu(e){let n=Xt(e);if(n===void 0)throw new ue("\u673A\u5668\u4EBA\u76EE\u5F55\u9879\u5FC5\u987B\u662F\u5BF9\u8C61");let t=Yt(n.robot_id??n.robotId);if(t==="")throw new ue("\u673A\u5668\u4EBA\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A robot_id");let r=Yt(n.robot_name??n.robotName)||t,o=Ei(n.mid??n.botMid??n.bot_mid),i=Ei(n.img_url??n.imgUrl),a=yu(n.bind);return {id:t,displayName:r,...o===void 0?{}:{username:o},...i===void 0?{}:{avatarUrl:i},...a===void 0?{}:{bound:a}}}function bu(e){if(Array.isArray(e))return e;let n=Xt(e);if(n===void 0)throw new ue("\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 ue("\u673A\u5668\u4EBA\u76EE\u5F55 data.data \u5FC5\u987B\u662F\u6570\u7EC4");return t}function wu(e){let n=Xt(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 ue("\u673A\u5668\u4EBA\u76EE\u5F55 total_count \u5FC5\u987B\u662F\u975E\u8D1F\u6574\u6570");return r}async function Cu(e,n){if(!Number.isSafeInteger(n.page)||n.page<1)throw new ue("\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 ue("\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 ue("\u673A\u5668\u4EBA\u76EE\u5F55 groupId \u4E0E groupType \u5FC5\u987B\u540C\u65F6\u63D0\u4F9B\u6216\u540C\u65F6\u7701\u7565");let o=await B(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 $n(o.code,o.message);let a=bu(o.data).map(hu),c=wu(o.data),d=c===void 0?a.length<n.pageSize:n.page*n.pageSize>=c;return {items:a,exhausted:d}}var Pu={direct:"/friend/undisturb/set",group:"/user_group/user/edit",channel:"/user_radio/user/setting",robot:"/friend/undisturb/set"},Iu={direct:"friend_user_id",group:"group_id",channel:"radio_id",robot:"friend_user_id"};async function vu(e){let n=Pu[e.conversationType],t=Iu[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 B(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 Au(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 B(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 Su(e){let{code:n}=await B(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 Mu(e){We(e.groupId);let n=await B(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 xu(e){Ye(e.channelId);let n=await B(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 _u(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 B(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 ku="1970-01-01 08:00:00",Eu="2000",Ru="",Jn=class extends Error{constructor(){super("\u4F1A\u8BDD\u6536\u85CF Core API \u672A\u914D\u7F6E"),this.name="SessionFavoriteProviderUnavailableError";}},Me=class extends Error{constructor(n){super(n),this.name="SessionFavoriteMappingError";}};function W(e){return typeof e=="string"?e:e==null?"":String(e)}function Cn(e,n){let t=W(e).trim();if(t==="")throw new Me(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function Tu(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":n===29?"filesAlbum":n===30?"liveRoom":null}function Du(e){return e==="text"?1:e==="image"?2:e==="video"?3:e==="voice"?4:e==="location"?5:e==="mediaAlbum"?28:e==="filesAlbum"?29:e==="liveRoom"?30:11}function Uu(e){if(e==="direct")return 0;if(e==="group")return 1;if(e==="channel")return 2;throw new Me(`favorite conversation type ${e}`)}function Vn(e,n){return n==="text"||n==="location"?W(e.content).trim():n==="file"?W(e.fileName||e.file_name||e.name).trim():n==="mediaAlbum"||n==="filesAlbum"?W(e.caption).trim():n==="liveRoom"?W(e.liveRoomName).trim()||W(e.broadcasterUserName).trim():""}function Ou(e,n){let t=W(e.group_id).trim(),r=W(e.radio_id).trim(),o=Number(W(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=W(e.from_id).trim(),a=W(e.to_id).trim(),c=i===n.trim()?a:i;if(c!=="")return {conversationType:"direct",conversationId:c}}return null}function Bu(e,n){let t=e.from_user,r=W(t?.nick_name||t?.nickname||t?.name).trim();return r===""?n:r}function Nu(e,n){let t=W(e.uu_id).trim(),r=Tu(e.content_type),o=Io(W(e.msg_body),n);if(t===""||r===null||o===null)return null;let i=W(e.from_id).trim();return Object.freeze({collectId:t,msgId:W(e.msg_id).trim(),kind:r,senderId:i,senderName:Bu(e,i),avatarUrl:W(e.from_user?.avatar).trim(),createdAt:W(e.create_time||e.update_time||e.msg_time).trim(),text:Vn(o,r),imageUrl:Ob(r,o),fileName:r==="filesAlbum"?Pb(o).map(a=>a.fileName).join(" "):r==="file"?Vn(o,"file"):"",body:r==="filesAlbum"?Qb(o):Object.freeze({...o}),conversation:Ou(e,n)})}function Ku(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 Me("favorite list data \u5FC5\u987B\u662F\u6570\u7EC4\u6216 { list }")}function Lu(){if(typeof crypto>"u"||typeof crypto.randomUUID!="function")throw new Me("collect uuid \u4E0D\u53EF\u7528");return crypto.randomUUID()}function Gu(e){return Object.freeze({...e,body:Object.freeze({...e.body}),conversation:e.conversation===null?null:Object.freeze({...e.conversation})})}function Hu(e){async function n(t,r,o){if(e.coreClient===void 0)throw new Jn;let i=await B(e.coreClient,t,r,{method:"POST",responseMode:"strict",prefix:Ru});if(!i.ok)throw new Q(o,i.code,i.message);return i.data}return {async list(){let t=Cn(e.getUserId(),"favorite userId"),r=await n("/api/v1/user/favorite/list",{start_time:ku,page_size:Eu},"\u4F1A\u8BDD\u6536\u85CF\u5217\u8868");return Object.freeze(Ku(r).flatMap(o=>{let i=Nu(o,t);return i===null?[]:[i]}))},async add(t){let r=Cn(e.getUserId(),"favorite userId"),o=(e.createCollectId??Lu)(),i={msg_id:Cn(t.messageId,"favorite msgId"),content_type:Du(t.kind),msg_type:Uu(t.conversation.conversationType),msg_time:String(t.createdAt),from_id:Cn(t.senderId,"favorite fromId"),to_id:Cn(t.peerId,"favorite toId"),is_hide:t.hide===true?"1":"0",uu_id:o,msg_body:Po(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"),Gu({collectId:o,msgId:t.messageId.trim(),kind:t.kind,senderId:t.senderId.trim(),senderName:t.senderId.trim(),avatarUrl:"",createdAt:String(t.createdAt),text:Vn(t.plainBody,t.kind),imageUrl:Ob(t.kind,t.plainBody),fileName:t.kind==="filesAlbum"?Pb(t.plainBody).map(a=>a.fileName).join(" "):t.kind==="file"?Vn(t.plainBody,"file"):"",body:t.kind==="filesAlbum"?Qb(t.plainBody):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 Me("favorite ids \u4E0D\u80FD\u4E3A\u7A7A");await n("/api/v1/user/favorite/del",{ids:r.join("|")},"\u5220\u9664\u4F1A\u8BDD\u6536\u85CF");}}}async function Ri(e,n){a(n);let t=await createMD5();a(n);let r=performance.now();for(let o=0;o<e.size;o+=1024*1024){a(n);let i=new Uint8Array(await e.slice(o,o+1024*1024).arrayBuffer());a(n),t.update(i),performance.now()-r>=8&&(await new Promise(a=>setTimeout(a,0)),a(n),r=performance.now());}return a(n),t.digest("hex")}var Ti="image/jpeg";function Qt(e,n){return e.type!==""||n===void 0||n===""?e:new Blob([e],{type:n})}function qu(e){let n=0;return {fileMd5:Ri,async imageDimensions(t,r,o){let i=await e.prepare({operationId:`core-image-dimensions-${++n}`,generation:0,kind:"image",file:Qt(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:Qt(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:Ti}},async videoPoster(t,r,o){let i=await e.prepare({operationId:`core-video-poster-${++n}`,generation:0,kind:"video",file:Qt(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:Ti}}}}function ju(e){return e>=192&&e<=207&&e!==196&&e!==200&&e!==204}function $u(e){return e!==void 0&&e>=5&&e<=8}function Ju(e,n,t){return $u(t)?{width:n,height:e}:{width:e,height:n}}function Vu(e,n,t){if(n+6>t)return;for(let[d,s]of [69,120,105,102,0,0].entries())if(e.getUint8(n+d)!==s)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 c=e.getUint16(a,i);for(let d=0;d<c;d++){let s=a+2+d*12;if(s+12>t)return;if(e.getUint16(s,i)===274)return e.getUint16(s+8,i)}}function zu(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,c=r+2+i;if(c>n)return;if(ju(o)){if(a+5>n)return;let d=e.getUint16(a+1,false),s=e.getUint16(a+3,false);return s<=0||d<=0?void 0:Ju(s,d,t)}o===225&&t===void 0&&(t=Vu(e,a,c)),r=c;}}function Wu(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 Yu(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 Xu(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 zn(e,n,t){return n<t.length?false:t.every((r,o)=>e.getUint8(o)===r)}async function Di(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(zn(t,r,[255,216,255]))return zu(t,r);if(zn(t,r,[137,80,78,71,13,10,26,10]))return Wu(t,r);if(zn(t,r,[71,73,70,56]))return Yu(t,r);if(zn(t,r,[82,73,70,70])&&r>=12&&t.getUint32(8,false)===1464156752)return Xu(t,r)}var Ki=320,Qu=12*1024,Li=20*1024,Zu=.9,el=.72,nl=320,tl=10*1024,rl=16*1024,ol=.84,il=.68,Gi=15e3,al=1;function sl(){if(typeof navigator>"u")return 2;let e=navigator.userAgent;if(/iPad|iPhone|iPod/.test(e)||/Macintosh/.test(e)&&(navigator.maxTouchPoints??0)>1)return 1;let t=navigator.deviceMemory;return t!==void 0&&t<=2?1:2}function Ui(e){let n={active:0,disposed:false},t=[];function r(){for(;!n.disposed&&n.active<e&&t.length>0;){let o=t.shift();if(o.signal?.aborted){o.reject(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));continue}o.onAbort!==void 0&&o.signal?.removeEventListener("abort",o.onAbort),n.active+=1;let i=false;o.resolve(()=>{i||(i=true,n.active-=1,r());});}}return {acquire(o){return n.disposed?Promise.reject(new Error("\u5A92\u4F53\u9884\u89C8\u6267\u884C\u5668\u5DF2\u91CA\u653E")):new Promise((i,a)=>{let c={resolve:i,reject:a,...o===void 0?{}:{signal:o}};o!==void 0&&(c.onAbort=()=>{let d=t.indexOf(c);d>=0&&t.splice(d,1),a(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));},o.addEventListener("abort",c.onAbort,{once:true})),t.push(c),r();})},dispose(){n.disposed=true;for(let o of t.splice(0))o.onAbort!==void 0&&o.signal?.removeEventListener("abort",o.onAbort),o.reject(new Error("\u5A92\u4F53\u9884\u89C8\u6267\u884C\u5668\u5DF2\u91CA\u653E"));}}}function xe(e){if(e?.aborted)throw new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError")}var Oi=16777216,cl=4096;function dl(e,n){let t=Math.min(1,cl/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>Oi){let a=Math.sqrt(Oi/i);r=Math.max(1,Math.floor(r*a)),o=Math.max(1,Math.floor(o*a));}return {width:r,height:o}}function nr(e,n,t){let r=Math.min(1,t/Math.max(e,n));return dl(Math.max(1,Math.round(e*r)),Math.max(1,Math.round(n*r)))}async function Bi(e,n,t){xe(t);let r=await new Promise(o=>e.toBlob(o,"image/jpeg",n));if(xe(t),r===null)throw new Error("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1ACanvas \u7F16\u7801\u8FD4\u56DE\u7A7A\u7ED3\u679C");return await r.arrayBuffer()}function Zt(e,n){if(!Number.isInteger(e)||e<=0)throw new RangeError(`${n}\u5FC5\u987B\u662F\u6B63\u6574\u6570`)}function Ni(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 Wn(e,n,t,r,o){let i=r.kind==="video",a=i?"\u89C6\u9891\u5C01\u9762":"\u56FE\u7247\u7F29\u7565\u56FE",c=r.maxSize??(i?nl:Ki),d=r.targetBytes??(i?tl:Qu),s=r.maxBytes??(i?rl:Li),g=r.quality??(i?ol:Zu),h=r.minQuality??(i?il:el);if(Zt(c,`${a}\u6700\u5927\u8FB9\u957F`),Zt(d,`${a}\u76EE\u6807\u5B57\u8282\u6570`),Zt(s,`${a}\u6700\u5927\u5B57\u8282\u6570`),Ni(g,`${a}\u521D\u59CB\u8D28\u91CF`),Ni(h,`${a}\u6700\u4F4E\u8D28\u91CF`),d>s)throw new RangeError(`${a}\u76EE\u6807\u5B57\u8282\u6570\u4E0D\u80FD\u8D85\u8FC7\u6700\u5927\u5B57\u8282\u6570`);if(h>g)throw new RangeError(`${a}\u6700\u4F4E\u8D28\u91CF\u4E0D\u80FD\u9AD8\u4E8E\u521D\u59CB\u8D28\u91CF`);xe(o);let P=document.createElement("canvas");try{let y=P.getContext("2d");if(y===null)throw new Error("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A\u65E0\u6CD5\u521B\u5EFA Canvas 2D \u4E0A\u4E0B\u6587");let M=w=>{xe(o),P.width=w.width,P.height=w.height,y.drawImage(e,0,0,w.width,w.height);},I=nr(n,t,c);M(I);let E=Math.min(200,Math.max(I.width,I.height)),D,R=[...new Set([g,Math.max(h,g-.12),h])];for(let w of R){let _=await Bi(P,w,o);if((D===void 0||_.byteLength<D.byteLength)&&(D=_),_.byteLength<=d)return _}let x=Math.max(I.width,I.height);if(x>E&&D!==void 0){let w=Math.sqrt(d/D.byteLength),_=Math.max(E,Math.floor(x*Math.min(.9,Math.max(.5,w))));I=nr(n,t,_),M(I);for(let U of [g,h]){let l=await Bi(P,U,o);if(l.byteLength<D.byteLength&&(D=l),l.byteLength<=d)return l}}if(D!==void 0&&D.byteLength<=s)return D;throw new Error(`${a}\u751F\u6210\u5931\u8D25\uFF1A\u7F16\u7801\u7ED3\u679C\u8D85\u8FC7 ${s} \u5B57\u8282\u786C\u4E0A\u9650`)}finally{P.width=0,P.height=0;}}function er(e,n,t,r){return xe(t),new Promise((o,i)=>{let a=()=>n==="seeked"?!e.seeking:e.readyState>=(n==="loadedmetadata"?1:2),c,d,s,g,h=()=>{c!==void 0&&clearTimeout(c),e.removeEventListener(n,d),e.removeEventListener("error",s),t?.removeEventListener("abort",g);};d=()=>{a()&&(h(),o());},s=()=>{h(),i(new Error(`\u89C6\u9891\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A${n} \u524D\u89E3\u7801\u9519\u8BEF`));},g=()=>{h(),i(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));},c=setTimeout(()=>{h(),i(new Error(`\u89C6\u9891\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A${n} \u8D85\u65F6`));},Gi),e.addEventListener(n,d),e.addEventListener("error",s,{once:true}),t?.addEventListener("abort",g,{once:true});try{r?.(),t?.aborted?g():e.error!==null?s():d();}catch(P){h(),i(P);}})}async function ul(e,n){xe(n);let t=e.maxSize??Ki,r=e.maxBytes??Li,o=await Di(e.file);xe(n);function i(g,h){return e.file.type==="image/jpeg"&&e.file.size<=r&&Math.max(g,h)<=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:nr(o.width,o.height,t),c;try{c=a===void 0?await createImageBitmap(e.file):await createImageBitmap(e.file,{resizeWidth:a.width,resizeHeight:a.height,resizeQuality:"high"});}catch(g){if(n?.aborted)throw g}if(c!==void 0)try{xe(n);let g=o??{width:c.width,height:c.height};return e.includePoster===!1?g:o===void 0&&i(c.width,c.height)?{...g,posterData:await e.file.arrayBuffer()}:{...g,posterData:await Wn(c,c.width,c.height,e,n)}}finally{c.close();}let d=URL.createObjectURL(e.file),s=new Image;try{await new Promise((h,P)=>{let y,M,I=()=>{y!==void 0&&clearTimeout(y),s.onload=null,s.onerror=null,n?.removeEventListener("abort",M);};M=()=>{I(),P(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));},s.onload=()=>{I(),h();},s.onerror=()=>{I(),P(new Error("\u56FE\u7247\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1AImage \u89E3\u7801\u9519\u8BEF"));},y=setTimeout(()=>{I(),P(new Error("\u56FE\u7247\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1AImage \u89E3\u7801\u8D85\u65F6"));},Gi),n?.addEventListener("abort",M,{once:!0}),s.src=d;});let g=o??{width:s.naturalWidth,height:s.naturalHeight};return e.includePoster===!1?g:i(s.naturalWidth,s.naturalHeight)?{...g,posterData:await e.file.arrayBuffer()}:{...g,posterData:await Wn(s,s.naturalWidth,s.naturalHeight,e,n)}}finally{s.removeAttribute("src"),URL.revokeObjectURL(d);}}async function ll(e,n){let t=URL.createObjectURL(e.file),r=document.createElement("video");r.muted=true,r.preload="metadata",r.playsInline=true;try{await er(r,"loadedmetadata",n,()=>{r.src=t,r.load();});let o=r.videoWidth,i=r.videoHeight;if(o<=0||i<=0)throw new Error("\u89C6\u9891\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A\u89C6\u9891\u5C3A\u5BF8\u65E0\u6548");let a=Number.isFinite(r.duration)&&r.duration>0?r.duration:void 0,c=e.atTime===void 0?a===void 0?0:Math.min(1,a/2):Math.max(0,Math.min(e.atTime,a??e.atTime));c>0&&await er(r,"seeked",n,()=>{r.currentTime=c;}),await er(r,"loadeddata",n,()=>{r.preload="auto";});let d=a===void 0?void 0:a,s;try{s=await Wn(r,o,i,e,n);}catch(h){if(n?.aborted||h instanceof RangeError)throw h}let g;if(e.includeDisplayPoster)try{g=await Wn(r,o,i,{...e,maxSize:960,targetBytes:160*1024,maxBytes:256*1024,quality:.9,minQuality:.8},n);}catch(h){if(n?.aborted||h instanceof RangeError)throw h}return {width:o,height:i,...d===void 0?{}:{duration:d},...s===void 0?{}:{posterData:s},...g===void 0?{}:{displayPosterData:g}}}finally{r.pause(),r.removeAttribute("src"),r.load(),URL.revokeObjectURL(t);}}function pl(e={}){let n=e.maxConcurrency??sl();if(!Number.isInteger(n)||n<1||n>4)throw new RangeError("\u5A92\u4F53\u9884\u89C8\u5E76\u53D1\u6570\u5FC5\u987B\u662F 1-4 \u7684\u6574\u6570");let t=Ui(n),r=Ui(al),o=false;return {async prepare(i,a){if(o)throw new Error("\u5A92\u4F53\u9884\u89C8\u6267\u884C\u5668\u5DF2\u91CA\u653E");let c=i.kind==="video",d=await(c?r:t).acquire(a);try{return c?await ll(i,a):await ul(i,a)}finally{d();}},dispose(){o||(o=true,t.dispose(),r.dispose());}}}function Yn(e=6){if(!Number.isSafeInteger(e)||e<1)throw new RangeError("\u5A92\u4F53\u8BF7\u6C42\u5E76\u53D1\u4E0A\u9650\u5FC5\u987B\u4E3A\u6B63\u6574\u6570");let n=0,t=[];function r(){for(;n<e&&t.length>0;){let o=0,i=t[0].getPriority?.()??0;for(let c=1;c<t.length;c+=1){let d=t[c].getPriority?.()??0;d>i&&(o=c,i=d);}let a=t.splice(o,1)[0];if(a.signal?.removeEventListener("abort",a.cancel),a.signal?.aborted){a.cancel();continue}n+=1,a.start();}}return async function(i,a,c){if(i?.aborted)throw new DOMException("\u5A92\u4F53\u4F20\u8F93\u5DF2\u53D6\u6D88","AbortError");await new Promise((d,s)=>{let g={signal:i,getPriority:c,start:d,cancel:()=>{let h=t.indexOf(g);h>=0&&t.splice(h,1),s(new DOMException("\u5A92\u4F53\u4F20\u8F93\u5DF2\u53D6\u6D88","AbortError"));}};i?.addEventListener("abort",g.cancel,{once:true}),t.push(g),r();});try{if(i?.aborted)throw new DOMException("\u5A92\u4F53\u4F20\u8F93\u5DF2\u53D6\u6D88","AbortError");return await a()}finally{n-=1,r();}}}var Pn=16*1024*1024,In=3,tr=3,Xn=6,fl=5*1024**3,Qn=1e4;function Zn(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>Pn,r=t?Math.ceil(e/Pn):1;if(!t&&e>fl)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>Qn)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:Pn,partCount:r}}function ml(e,n,t,r){let o=/^bytes (\d+)-(\d+)\/(\d+)$/.exec(e.headers.get("content-range")??""),i=e.headers.get("etag")??"",a=e.headers.get("content-length"),c=Number(o?.[1]),d=Number(o?.[2]),s=Number(o?.[3]);if(e.status!==206||o===null||![c,d,s].every(Number.isSafeInteger)||s<=0||c!==n||d!==Math.min(t,s-1)||d<c||!/^"[\x21\x23-\x7E\x80-\xFF]*"$/.test(i)||a!==null&&(!/^\d+$/.test(a)||Number(a)!==d-c+1)||e.headers.get("content-encoding")!==null&&e.headers.get("content-encoding")!=="identity")throw new K("download-range-invalid","\u5206\u6BB5\u4E0B\u8F7D\u54CD\u5E94\u65E0\u6548\uFF1A\u9700\u8981 206\u3001\u6B63\u786E Content-Range\u3001\u5F3A ETag \u548C\u672A\u538B\u7F29\u5B57\u8282\uFF1B\u8BF7\u68C0\u67E5\u4E0B\u8F7D\u57DF\u540D\u7684 CORS ExposeHeaders");if(r!==void 0&&(s!==r.total||i!==r.etag))throw new K("download-object-changed","\u5206\u6BB5\u4E0B\u8F7D\u671F\u95F4\u6587\u4EF6\u7248\u672C\u53D1\u751F\u53D8\u5316\uFF0C\u8BF7\u91CD\u65B0\u4E0B\u8F7D");return {end:d,total:s,etag:i}}function Hi(e=true,n,t=Pn){if(!Number.isSafeInteger(t)||t<=0)throw new RangeError("\u4E0B\u8F7D\u5206\u6BB5\u5927\u5C0F\u5FC5\u987B\u4E3A\u6B63\u6574\u6570");let r=Yn(Xn),o=new WeakMap;async function i(c,d){if(!c.ok)throw new K("download-range-failed",`\u5A92\u4F53\u4E0B\u8F7D\u5931\u8D25\uFF1AHTTP ${c.status}`);return d.onProgress===void 0||c.body===null?d.preferBlob===true?await c.blob():new Uint8Array(await c.arrayBuffer()):yl(c,d.onProgress,d.expectedBytes,d.preferBlob===true)}async function a(c){let d=c.resume?.transport,s=typeof d=="object"&&d!==null?o.get(d):void 0;if(c.resume!==void 0&&(s===void 0||s.url!==c.url))throw c.onResumeInvalidated?.(),new K("download-range-invalid","\u4E0B\u8F7D\u65AD\u70B9\u4E0D\u5C5E\u4E8E\u5F53\u524D\u8D44\u6E90\u6216\u4F20\u8F93\u5B9E\u4F8B\uFF0C\u8BF7\u91CD\u65B0\u4E0B\u8F7D");let g=new AbortController,h=()=>g.abort(c.signal?.reason);c.signal?.aborted?h():c.signal?.addEventListener("abort",h,{once:true});let P=g.signal,y=s===void 0?[]:[...s.blobs],M=y.reduce((p,u)=>p+(u?.size??0),0),I=s?.object,E=s?.mimeType??"",D=0,R,x=false,w=false,_=p=>{!w&&p instanceof K&&(p.code==="download-range-invalid"||p.code==="download-object-changed")&&(w=true,R=p),x||(x=true,R=p,g.abort());};function U(){if(c.onResumable===void 0||I===void 0||M===0)return;let p=Object.freeze({});o.set(p,Object.freeze({url:c.url,object:Object.freeze({...I}),mimeType:E,blobs:Object.freeze([...y])}));let u=Object.freeze({bytesDownloaded:M,bytesTotal:I.total,transport:p});c.onResumable(u);}function l(){let p=I.total;c.onProgress?.({percent:Math.min(99,Math.round(M/p*100)),bytesTransferred:M,bytesTotal:p});}function f(p){return I!==void 0&&y[p]?.size===Math.min(t,I.total-p*t)}async function m(p,u,b){let A=p.body?.getReader();if(A===void 0)throw new K("download-range-invalid","\u5206\u6BB5\u4E0B\u8F7D\u6CA1\u6709\u54CD\u5E94\u5B57\u8282\u6D41");let k=()=>{A.cancel().catch(()=>{});};P.addEventListener("abort",k,{once:true});let v=0;try{for(;;){if(P.aborted)throw new DOMException("\u5A92\u4F53\u4E0B\u8F7D\u5DF2\u53D6\u6D88","AbortError");let S=await A.read();if(P.aborted)throw new DOMException("\u5A92\u4F53\u4E0B\u8F7D\u5DF2\u53D6\u6D88","AbortError");if(S.done)break;if(v+=S.value.byteLength,v>b)throw new K("download-range-invalid","\u5206\u6BB5\u4E0B\u8F7D\u5B57\u8282\u6570\u8D85\u8FC7 Content-Range");let T=y[u];y[u]=new Blob(T===void 0?[S.value]:[T,S.value]),M+=S.value.byteLength,U(),l();}if(v!==b)throw new K("download-range-invalid","\u5206\u6BB5\u4E0B\u8F7D\u5B57\u8282\u6570\u4E0E Content-Range \u4E0D\u4E00\u81F4");l();}finally{P.removeEventListener("abort",k),await A.cancel().catch(()=>{}),A.releaseLock();}}async function C(p,u=false){let b=u?0:p*t+(y[p]?.size??0),A=u?0:I===void 0?b+t-1:Math.min((p+1)*t-1,I.total-1);return r(P,async()=>{let k=await fetch(c.url,{signal:P,cache:"no-store",headers:{Range:`bytes=${b}-${A}`}});if(s===void 0&&I===void 0&&p===0&&k.status===200)return n?.record("info","sdk","media","download-range-unavailable",()=>({data:{reason:"server-returned-full-response"}})),y[0]=await i(k,{...c,preferBlob:true}),"single";if(k.status===429||k.status>=500)throw await k.body?.cancel().catch(()=>{}),new K("download-range-failed",`\u5A92\u4F53\u4E0B\u8F7D\u5931\u8D25\uFF1AHTTP ${k.status}`);let v;try{v=ml(k,b,A,I);}catch(S){throw await k.body?.cancel().catch(()=>{}),S}if(I===void 0&&(I=v,E=k.headers.get("content-type")??"",n?.record("debug","sdk","media","download-range-started",()=>({data:{bytesTotal:v.total,partSizeBytes:t,concurrency:tr}}))),u){if((await k.arrayBuffer()).byteLength!==1)throw new K("download-range-invalid","\u4E0B\u8F7D\u5BF9\u8C61\u6821\u9A8C\u54CD\u5E94\u957F\u5EA6\u65E0\u6548")}else await m(k,p,v.end-b+1);return "range"},c.getPriority)}try{if(I!==void 0)for(;D<Math.ceil(I.total/t)&&f(D);)D+=1;let p=I!==void 0&&D===Math.ceil(I.total/t),u=await C(D++,p);if(u==="range"){let A=Math.ceil(I.total/t),k=Array.from({length:Math.min(tr,Math.max(0,A-D))},async()=>{try{for(;!P.aborted&&D<A;){let v=D++;f(v)||await C(v);}}catch(v){_(v);}});if(await Promise.allSettled(k),x)throw R}if(P.aborted)throw new DOMException("\u5A92\u4F53\u4E0B\u8F7D\u5DF2\u53D6\u6D88","AbortError");let b=[];if(u==="range")for(let A=0;A<Math.ceil(I.total/t);A+=1){if(!f(A))throw new K("download-range-invalid","\u4E0B\u8F7D\u4ECD\u7F3A\u5C11\u5206\u6BB5\uFF0C\u4E0D\u80FD\u4EA4\u4ED8\u5B8C\u6574\u6587\u4EF6");b.push(y[A]);}return u==="single"?y[0]:new Blob(b,{type:E})}catch(p){throw g.abort(),w||p instanceof K&&(p.code==="download-range-invalid"||p.code==="download-object-changed")?c.onResumeInvalidated?.():U(),n?.record("warn","sdk","media","download-range-failed",()=>({data:{code:p instanceof K?p.code:"download-failed"}})),p}finally{c.signal?.removeEventListener("abort",h);}}return async function(d){if(d.resume!==void 0&&!e)throw d.onResumeInvalidated?.(),new K("download-range-invalid","\u5F53\u524D\u4E0B\u8F7D\u5668\u672A\u5F00\u542F\u65AD\u70B9\u4E0B\u8F7D\uFF0C\u8BF7\u91CD\u65B0\u4E0B\u8F7D");if(e&&(d.resume!==void 0||d.onResumable!==void 0||d.preferBlob===true&&Number.isFinite(d.expectedBytes)&&d.expectedBytes>t)){let s=await a(d);return d.preferBlob===true?s:new Uint8Array(await s.arrayBuffer())}return r(d.signal,async()=>{if(d.onProgress!==void 0&&typeof XMLHttpRequest<"u")return gl(d);let s=await fetch(d.url,d.signal===void 0?{}:{signal:d.signal});return i(s,d)},d.getPriority)}}function gl(e){let n=e.preferBlob===true;return new Promise((t,r)=>{let o=new XMLHttpRequest,i=false,a=()=>{},c=()=>{e.signal?.removeEventListener("abort",a),o.onprogress=null,o.onload=null,o.onerror=null,o.onabort=null;},d=s=>{i||(i=true,c(),s());};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=s=>{let g=e.expectedBytes!==void 0&&Number.isFinite(e.expectedBytes)&&e.expectedBytes>0?Math.floor(e.expectedBytes):0,h=s.lengthComputable&&s.total>0?s.total:g,P=h>0?Math.min(99,Math.round(s.loaded/h*100)):0;e.onProgress?.({percent:P,bytesTransferred:s.loaded,bytesTotal:h});},o.onload=()=>{if(o.status<200||o.status>=300){d(()=>r(new Error(`media download \u5931\u8D25\uFF1AHTTP ${o.status}`)));return}let s=o.response;if(n){if(!(typeof Blob<"u"&&s instanceof Blob)){d(()=>r(new Error("media download \u5931\u8D25\uFF1AXHR \u672A\u8FD4\u56DE Blob")));return}d(()=>t(s));return}if(!(s instanceof ArrayBuffer)){d(()=>r(new Error("media download \u5931\u8D25\uFF1AXHR \u672A\u8FD4\u56DE ArrayBuffer")));return}d(()=>t(new Uint8Array(s)));},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 yl(e,n,t,r=false){let o=Number(e.headers.get("content-length")??0),i=t!==void 0&&Number.isFinite(t)&&t>0?Math.floor(t):0,a=Number.isFinite(o)&&o>0?o:i,c=0,d=e.body.pipeThrough(new TransformStream({transform(g,h){c+=g.byteLength;let P=a>0?Math.min(99,Math.round(c/a*100)):0;n({percent:P,bytesTransferred:c,bytesTotal:a}),h.enqueue(g);}})),s=new Response(d,{headers:e.headers});return r?await s.blob():new Uint8Array(await s.arrayBuffer())}var Fi=async(e,n)=>{if(e?.aborted)throw new DOMException("media upload canceled","AbortError");return await n()},rr="is missing ETag in UploadPart response";function or(e){if(typeof e!="object"||e===null)return false;let n=e;return n.name==="NoSuchUpload"||n.Code==="NoSuchUpload"}function hl(e,n,t){return e instanceof Uint8Array?e.subarray(n,t):e.slice(n,t)}async function qi(e,n,t){return e.transformPart===void 0?n:await e.transformPart(n instanceof Blob?n:new Blob([n]),t)}function ji(e,n){let t=new Map,r=n,o=n;function i(){if(e.onProgress===void 0)return;let a=r;for(let s of t.values())a+=s;o=Math.max(o,a);let c=e.sourceBytes,d=c>0?Math.min(99,Math.round(o/c*100)):0;e.onProgress({percent:d,bytesTransferred:o,bytesTotal:c,phase:c>0&&o>=c?"finalizing":"transferring"});}return {trackPart(a,c){t.set(a,c),i();},completePart(a,c){t.delete(a),r+=c,i();},report:i}}function $i(e,n){let t=(o,i)=>{if(i.query?.uploadId!==void 0&&i.query.partNumber===void 0)return;let a=i.query?.partNumber,c=a===void 0?0:Number(a);Number.isFinite(c)&&n.trackPart(c,o.loaded);},r=e;return r.on("xhr.upload.progress",t),()=>{r.off?.("xhr.upload.progress",t),r.removeListener?.("xhr.upload.progress",t);}}async function Ji(e,n,t=Fi){let r=ji(n,0),o=$i(e.handler,r);try{await t(n.signal,async()=>{let i=await qi(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 ir(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 ar(e){let{target:n,content:t,partSize:r,queueSize:o,runUpload:i=Fi}=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>Qn)throw new Error(`media upload: \u5206\u7247\u6570 ${a} \u8D85\u8FC7 S3 \u4E0A\u9650 ${Qn}\uFF0C\u9700\u8981\u653E\u5927\u5206\u7247\u5927\u5C0F`);let c=ir(e.resume,n,t.sourceBytes,r),d=new Map;if(c!==void 0)for(let x of c)d.set(x.partNumber,x);let s=c===void 0?"":e.resume.uploadId;if(s===""){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");s=x.UploadId,d.clear();}let g=x=>Math.min(r,t.sourceBytes-(x-1)*r),h=0;for(let x of d.keys())h+=g(x);let P=ji(t,h),y=$i(n.handler,P),M=()=>({bucket:n.bucket,key:n.key,uploadId:s,partSize:r,sourceBytes:t.sourceBytes,parts:[...d.values()].sort((x,w)=>x.partNumber-w.partNumber)});e.onResumable?.(M()),P.report();let I=new AbortController,E=()=>I.abort();t.signal?.addEventListener("abort",E,{once:true}),t.signal?.aborted&&E();let D=1;async function R(){for(;;){if(I.signal.aborted)return;let x=D;if(D+=1,x>a)return;if(d.has(x))continue;let w=(x-1)*r,_=Math.min(w+r,t.sourceBytes),U=await i(I.signal,async()=>{let l=await qi(t,hl(t.data,w,_),x);if(I.signal.aborted)throw new DOMException("media upload canceled","AbortError");return await n.client.send(new n.commands.UploadPartCommand({Bucket:n.bucket,Key:n.key,UploadId:s,PartNumber:x,Body:l}),{abortSignal:I.signal})});if(U.ETag===void 0||U.ETag==="")throw new Error(`media upload: Part ${x} ${rr}`);d.set(x,{partNumber:x,etag:U.ETag}),P.completePart(x,_-w),e.onResumable?.(M());}}try{let x;if(await Promise.allSettled(Array.from({length:Math.min(In,a,Math.max(1,o))},async()=>{try{await R();}catch(w){let _=w instanceof Error&&w.name==="AbortError";(x===void 0||!_&&Ge(x.cause)!==void 0&&Ge(w)===void 0)&&(x={cause:w}),E();}})),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:s,MultipartUpload:{Parts:[...d.values()].sort((w,_)=>w.partNumber-_.partNumber).map(w=>({PartNumber:w.partNumber,ETag:w.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",E),y();}}async function vn(e,n){try{await e.client.send(new e.commands.AbortMultipartUploadCommand({Bucket:n.bucket,Key:n.key,UploadId:n.uploadId}));}catch(t){if(!or(t))throw t}}var bl=3e4;function Vi(e,n){e.handle=async(t,r={})=>{let o=new n({}),i=r.abortSignal,a=new AbortController,c,d=false,s,g=0,h=0,P=()=>{clearTimeout(c),c=setTimeout(()=>{d=true,a.abort();},bl);},y=()=>a.abort(i?.reason),M=D=>{D.loaded>g&&(g=D.loaded,P()),e.emit("xhr.upload.progress",D,t);},I=D=>{D.loaded>h&&(h=D.loaded,P()),e.emit("xhr.progress",D,t);},E=()=>{s?.readyState===2&&P();};o.on("before.xhr.send",D=>{s=D,s.addEventListener("readystatechange",E),P();}),o.on("xhr.upload.progress",M),o.on("xhr.progress",I),i?.addEventListener("abort",y,{once:true}),i?.aborted&&y();try{let D=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(D.response.statusCode===0)throw new Error("XHR_HTTP_HANDLER_ERROR: Network request failed before receiving an HTTP response");return D}catch(D){throw d?new K("upload-timeout","media upload: \u7F51\u7EDC\u8FDE\u7EED 30 \u79D2\u6CA1\u6709\u63A8\u8FDB",{cause:D}):D}finally{clearTimeout(c),i?.removeEventListener("abort",y),s?.removeEventListener("readystatechange",E),o.removeAllListeners(),o.destroy();}};}function wl(e){if(e instanceof Uint8Array)return e.byteLength;if(typeof Blob<"u"&&e instanceof Blob)return e.size}var zi="\u5206\u7247\u4E0A\u4F20\u8981\u6C42\u8BE5 bucket \u7684 CORS \u653E\u884C POST\uFF08Create/CompleteMultipartUpload\uFF09\u3001DELETE\uFF08AbortMultipartUpload\uFF09\u5E76 ExposeHeaders: ETag";function Cl(e){return e instanceof Error&&e.message.includes(rr)}function Pl(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${zi}`,{cause:t}):e instanceof K?e:Cl(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${zi}`,{cause:e}):e}var Il=new Set(["upload-source-invalid","upload-resume-unavailable","multipart-etag-missing","multipart-abort-failed"]);function sr(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 An;function Wi(){if(An!==void 0)return An;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 An===n&&(An=void 0),t});return An=n,n}function Yi(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 vl(e){if(e===void 0)return "";let n=e.lastIndexOf(".");return n>=0?e.slice(n):""}function Al(e){return globalThis.crypto.randomUUID()+vl(e)}function Xi(e,n){let t=e.keyPrefix??"";return t===""||n.startsWith(t)?n:`${t}${n}`}function Sl(e,n){let t=Zr(e.getUploadCredentials),r=Yn(Xn);function o(y,M){if(y==="avatar")return e.avatarBucket??"";if(M==="channel"){let I=e.channelBuckets?.[y]??"";if(I!=="")return I}return e.buckets[y]??""}function i(y,M,I,E=false){let{region:D}=M;return Vi(I,y.XhrHttpHandler),new y.S3Client({region:D,maxAttempts:E?1:3,credentials:{accessKeyId:M.accessKeyId,secretAccessKey:M.secretAccessKey,sessionToken:M.sessionToken,...M.expiresAtSeconds===void 0?{}:{expiration:new Date(M.expiresAtSeconds*1e3)}},useAccelerateEndpoint:(e.useAccelerateEndpoint??true)&&!D.toLowerCase().startsWith("cn-"),requestChecksumCalculation:"WHEN_REQUIRED",requestHandler:I})}async function a(y,M,I,E,D,R,x,w){let{multipart:_,partSize:U}=Zn(x,e.multipartTransfer===true&&e.multipartUpload!==false),l=new y.XhrHttpHandler({}),f=i(y,D,l,M.recoveryManaged===true),m={client:f,handler:l,commands:y.commands,bucket:D.bucket,key:R,...M.mimeType!==void 0&&M.mimeType!==""?{mimeType:M.mimeType}:{}},C={data:M.data,sourceBytes:x,...M.onProgress===void 0?{}:{onProgress:M.onProgress},...M.signal===void 0?{}:{signal:M.signal},...M.transformPart===void 0?{}:{transformPart:M.transformPart}},p=M.resume,u=sr(p),b=_&&u?.logicalBucket===I&&ir(u.session,m,x,U)!==void 0,A=b?u?.session:void 0,k=T=>{A=T;let O=0;for(let N of T.parts)O+=Math.min(T.partSize,T.sourceBytes-(N.partNumber-1)*T.partSize);M.onResumable?.({bytesUploaded:O,transport:{logicalBucket:I,objectName:E,session:T}});},v=()=>{A=void 0,delete M.resume,M.onResumeInvalidated?.();},S;try{if(w.mode==="retain"&&p!==void 0&&!b)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(u!==void 0&&!b){try{u.logicalBucket===I?await vn(m,u.session):await h(p);}catch(O){throw w.cleanupFailed=!0,Yi(w.retryCause,O)}delete M.resume;}if(M.signal?.aborted)throw new DOMException("media upload canceled","AbortError");if(!_){await Ji(m,C,r);return}let T=A;try{await ar({target:m,content:C,partSize:U,queueSize:In,runUpload:r,...T===void 0?{}:{resume:T},onResumable:k,onCompleted:v});}catch(O){if(M.signal?.aborted||!or(O)||w.mode==="discard"&&T===void 0)throw O;if(w.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:O});A=void 0,await ar({target:m,content:C,partSize:U,queueSize:In,runUpload:r,onResumable:k,onCompleted:v});}}catch(T){if(w.mode==="retain"&&M.signal?.aborted===true&&!["offline","paused","page-preserve","cancelled-preserve"].includes(M.signal.reason)&&A!==void 0)try{await vn(m,A),v();}catch(O){S=O;}throw w.cleanupFailed?T:Pl(T,_,S)}finally{f.destroy();}}async function c(y,M,I,E={mode:"retain"}){let D=o(M,I);if(D==="")throw new K("bucket-unconfigured",`media upload: kind=${M} \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 R=wl(y.data);if(R===void 0)throw new K("upload-source-invalid","media upload: \u4E0A\u4F20\u5185\u5BB9\u5FC5\u987B\u662F Uint8Array \u6216 Blob");Zn(R,e.multipartTransfer===true&&e.multipartUpload!==false);let x=await Wi();if(E.mode==="discard"&&y.signal?.aborted)throw new DOMException("media upload canceled","AbortError");let w=sr(y.resume,D)?.objectName??Al(y.filename),_={...y,onResumable:l=>{_.resume=l,y.onResumable?.(l);},onResumeInvalidated:()=>{delete _.resume,y.onResumeInvalidated?.();}},U;try{U=await t.resolve(D,y.forceRefreshCredentials===!0?{forceRefresh:!0}:void 0);let l=Xi(U,w);try{await a(x,_,D,w,U,l,R,E);}catch(f){if(y.signal?.aborted||y.recoveryManaged===!0||f instanceof K&&Il.has(f.code))throw f;E.retryCause=f,U=await t.resolve(D,{forceRefresh:!0}),l=Xi(U,w),await a(x,_,D,w,U,l,R,E);}if(y.signal?.aborted)throw new DOMException("media upload canceled","AbortError");return y.onProgress?.({percent:100,bytesTransferred:R,bytesTotal:R,phase:"finalizing"}),{url:`${U.dnsPoint}/${l}`}}catch(l){let f=sr(_.resume);if(E.mode==="discard"&&!E.cleanupFailed&&f!==void 0&&U!==void 0){let C=new x.XhrHttpHandler({}),p=i(x,U,C);try{await vn({client:p,commands:x.commands},f.session);}catch(u){throw Yi(l,u)}finally{p.destroy();}}let m=Ge(l);throw m!==void 0&&y.onFailure?.(m),l instanceof K&&(l.code==="upload-resume-unavailable"?y.onFailure?.("resume-unavailable"):l.code==="multipart-abort-failed"&&y.onFailure?.("cleanup-unconfirmed")),l}}function d(y){return c(y,y.kind,y.conversationType)}function s(y){return c({data:y.data,...y.filename===void 0?{}:{filename:y.filename},...y.mimeType===void 0?{}:{mimeType:y.mimeType},...y.signal===void 0?{}:{signal:y.signal},...y.onProgress===void 0?{}:{onProgress:y.onProgress}},y.kind,void 0,{mode:"discard"})}function g(y){return c(y,"avatar")}async function h(y){let M=y.transport;if(M?.session===void 0||M.session.uploadId==="")return;let I=await Wi(),E=await t.resolve(M.logicalBucket),D=new I.XhrHttpHandler({}),R=i(I,E,D);try{await vn({client:R,commands:I.commands},M.session);}finally{R.destroy();}}let P=Hi(e.multipartTransfer===true&&e.rangeDownload!==false,n);return {upload:d,uploadAvatar:g,uploadResource:s,download:P,abandonUpload:h}}var V=class extends Error{constructor(t,r){super(`Media upload recovery ${t}`,r);this.reason=t;this.name="MediaUploadRecoveryError",this.code=`IM_MEDIA_UPLOAD_RECOVERY_${t.toUpperCase()}`;}reason;code};function ee(){throw new V("invalid")}function _e(e){return typeof e!="object"||e===null||Array.isArray(e)?ee():e}function we(e,n=4096){return typeof e!="string"||e.length===0||e.length>n?ee():e}function Be(e,n=0){return typeof e!="number"||!Number.isSafeInteger(e)||e<n?ee():e}function cr(e){return typeof e!="number"||!Number.isFinite(e)||e<0?ee():e}function et(e,n=4096){if(e!==void 0)return typeof e!="string"||e.length>n?ee():e}function nt(e){let n=_e(e);if(n.version!==1||n.kind!=="video"&&n.kind!=="file"||typeof n.encrypted!="boolean")return ee();let t=_e(n.ref);if(t.conversationType!=="direct"&&t.conversationType!=="group"&&t.conversationType!=="channel")return ee();let r=_e(n.source),o=Be(r.size,1),i=we(r.sha256,64);if(!/^[a-f0-9]{64}$/.test(i))return ee();let a=_e(n.resume),c=_e(a.transport),d=_e(c.session),s=Be(d.partSize,8);if(s%8!==0||Be(d.sourceBytes,1)!==o||!Array.isArray(d.parts)||d.parts.length>1e4)return ee();let g=new Set,h=0,P=d.parts.map(x=>{let w=_e(x),_=Be(w.partNumber,1);return _>Math.ceil(o/s)||g.has(_)?ee():(g.add(_),h+=Math.min(s,o-(_-1)*s),{partNumber:_,etag:we(w.etag,1024)})});if(Be(a.bytesUploaded)!==h)return ee();let y;if(n.encrypted){if(!(n.teaKey instanceof Uint8Array)||n.teaKey.length!==16)return ee();y=new Uint8Array(n.teaKey);}else if(n.teaKey!==void 0)return ee();let M;if(n.preview!==void 0){let x=_e(n.preview),w;if(x.thumbData!==void 0){if(!(x.thumbData instanceof Uint8Array)||x.thumbData.byteLength>16*1024)return ee();w=new Uint8Array(x.thumbData);}M={width:cr(x.width),height:cr(x.height),...x.duration===void 0?{}:{duration:cr(x.duration)},...w===void 0?{}:{thumbData:w}};}if(n.filesAlbum!==void 0&&typeof n.filesAlbum!="boolean")return ee();let I=et(r.filename),E=et(r.mimeType,256),D=et(n.caption,16384),R=et(n.refMessageId);return {version:1,ref:{conversationType:t.conversationType,conversationId:we(t.conversationId)},messageId:we(n.messageId),kind:n.kind,createdAt:Be(n.createdAt),savedAt:Be(n.savedAt),encrypted:n.encrypted,source:{size:o,sha256:i,...I===void 0?{}:{filename:I},...E===void 0?{}:{mimeType:E}},...y===void 0?{}:{teaKey:y},...M===void 0?{}:{preview:M},...D===void 0?{}:{caption:D},...R===void 0?{}:{refMessageId:R},...n.filesAlbum===void 0?{}:{filesAlbum:n.filesAlbum},resume:{bytesUploaded:h,transport:{logicalBucket:we(c.logicalBucket),objectName:we(c.objectName),session:{bucket:we(d.bucket),key:we(d.key),uploadId:we(d.uploadId),partSize:s,sourceBytes:o,parts:P}}}}}function Xe(e){if(e?.aborted)throw new DOMException("Source fingerprint cancelled","AbortError")}async function Qi(e,n){Xe(n);let t=e instanceof Uint8Array?e.byteLength:e.size,r=await createSHA256();Xe(n);let o=1024*1024,i=performance.now();for(let a=0;a<t;a+=o){Xe(n);let c=e instanceof Uint8Array?e.subarray(a,a+o):new Uint8Array(await e.slice(a,a+o).arrayBuffer());Xe(n),r.update(c),performance.now()-i>=8&&(await new Promise(d=>setTimeout(d,0)),Xe(n),i=performance.now());}return Xe(n),{size:t,sha256:r.digest("hex")}}var _l=1440*60*1e3,kl=3;function ke(e,n){if(!e.conversationId||!n||!["direct","group","channel"].includes(e.conversationType))throw new V("invalid");return JSON.stringify([e.conversationType,e.conversationId,n])}function El(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,c=Promise.resolve(),d=false,s,g=false,h=false,P=0,y=0,M,I,E,D=new Map,R=new WeakMap,x=0;function w(){if(d)throw new V("unavailable")}function _(){R=new WeakMap,x+=1;}function U(v,S){if(w(),v?.aborted)throw new DOMException("Source fingerprint cancelled","AbortError");if(S!==x)throw new V("unavailable")}function l(){return a??=openDB(t,1,{upgrade(v){v.createObjectStore("uploads");},blocking(){k();},terminated(){d=true,_(),m();}}),a}function f(v,S=false){try{if(w(),S&&(!g||h))throw new V("unavailable")}catch(N){return Promise.reject(N)}let T=y,O=c.then(async()=>{if(S&&(!g||T!==y))throw new V("unavailable");try{return await v()}catch(N){throw N instanceof V?N:new V("storage",{cause:N})}});return c=O.then(()=>{},()=>{}),O}function m(){!g||h||(h=true,c.then(()=>{g=false,P=0,y+=1,M?.(),M=void 0;}));}async function C(v){if(w(),v?.aborted)throw new DOMException("Recovery lease cancelled","AbortError");if(!o||h)throw new V("unavailable");if(g||(I===void 0&&(I=new Promise((O,N)=>{try{E=o.request(r,{mode:"exclusive",ifAvailable:!0},async j=>{if(!j||d){N(new V("unavailable"));return}g=!0,y+=1;let L=new Promise(X=>{M=X;});O(),await L;}),E.catch(()=>N(new V("unavailable"))).finally(()=>{I=void 0,h=!1;});}catch{N(new V("unavailable"));}})),await I),d||h||v?.aborted)throw P===0&&m(),v?.aborted?new DOMException("Recovery lease cancelled","AbortError"):new V("unavailable");P+=1;let S=y,T=false;return {release(){T||S!==y||(T=true,P-=1,P===0&&m());}}}function p(v){return i()-v.savedAt>=_l}function u(v){let S=ke(v.ref,v.messageId),T=Math.min(D.get(S)??v.savedAt,v.savedAt);return D.set(S,T),T}async function b(){let S=(await l()).transaction("uploads",g&&!h?"readwrite":"readonly");try{let T=await S.store.getAll(),O=[];for(let N of T){let j=nt(N);u(j),p(j)?S.mode==="readwrite"&&await S.store.delete(ke(j.ref,j.messageId)):O.push(j);}return await S.done,O}catch(T){try{S.abort();}catch{}throw await S.done.catch(()=>{}),T}}function A(v){let S;try{S=nt(v);}catch(T){return Promise.reject(T)}return f(async()=>{let O=(await l()).transaction("uploads","readwrite");try{let N=ke(S.ref,S.messageId),j=await O.store.getAll(),L=0,X;for(let ot of j){let fe=nt(ot);u(fe),p(fe)?await O.store.delete(ke(fe.ref,fe.messageId)):(L+=1,ke(fe.ref,fe.messageId)===N&&(X=fe));}if(X){if(X.source.sha256!==S.source.sha256||X.source.size!==S.source.size||X.kind!==S.kind||X.encrypted!==S.encrypted||X.teaKey?.some((ot,fe)=>ot!==S.teaKey?.[fe]))throw new V("invalid");S.savedAt=X.savedAt;}else if(L>=kl)throw new V("capacity");let yr=D.get(N);if(yr!==void 0&&(S.savedAt=Math.min(yr,S.savedAt)),p(S)||S.savedAt>i())throw new V("invalid");await O.store.put(S,N),await O.done,u(S);}catch(N){try{O.abort();}catch{}throw await O.done.catch(()=>{}),N}},true)}async function k(){return s||(d=true,_(),s=(async()=>{await c;try{a&&(await a).close();}finally{m(),await E;}})(),s)}return {get:(v,S)=>f(async()=>{let T=ke(v,S);return (await b()).find(O=>ke(O.ref,O.messageId)===T)}),list:()=>f(b),save:A,remove:(v,S)=>f(async()=>{let T=ke(v,S);await(await l()).delete("uploads",T),D.delete(T);},true),clear:()=>(_(),f(async()=>{await(await l()).clear("uploads"),D.clear();},true)),drain:()=>c,fingerprint:async(v,S)=>{let T=x;U(S,T);let O=v instanceof Blob?v:void 0,N=O===void 0?void 0:R.get(O);if(N!==void 0)return {...N};let j=await Qi(v,S);U(S,T);let L={size:j.size,sha256:j.sha256};return O!==void 0&&R.set(O,L),{...L}},acquireLease:C,close:k}}function Rl(e,n={}){let t=n.locks!==void 0?n.locks:globalThis.navigator?.locks,r=n.createChannel!==void 0?n.createChannel:typeof globalThis.BroadcastChannel=="function"?h=>new BroadcastChannel(h):void 0,o=typeof globalThis.addEventListener=="function"?globalThis:void 0,i=n.pageLifecycleTarget!==void 0?n.pageLifecycleTarget:o,a,c=0;function d(h){try{e.onError(h);}catch{}}function s(h,P=false,y="stopped"){if(a===h&&!P&&(a=void 0),h.resolveReady(false),h.closed)return;h.closed=true,h.controller.abort();let M=[],I=R=>{try{R();}catch(x){M.push(x);}};for(let R of h.cleanups.splice(0))I(R);I(()=>h.channel.close());let E=h.release;h.release=void 0;let D=h.owned;h.owned=false;try{let R=D?e.onChange(!1,y):void 0;Promise.resolve(R).then(()=>E?.(),d);}catch(R){d(R);}for(let R of M)d(R);}function g(h,P){s(h,true),d(P);}return {start(h){if(a?.key===h)return a.ready;let P=++c;if(a&&s(a),P!==c)return Promise.resolve(false);if(!h||!t||!r)return d(new Error("Browser connection ownership requires a key, Web Locks and BroadcastChannel")),Promise.resolve(false);let y;try{y=r(`im-connection:${h}`);}catch(x){return d(x),Promise.resolve(false)}let M,I=new Promise(x=>{M=x;}),E={key:h,channel:y,cleanups:[],owned:false,closed:false,ready:I,resolveReady:M,controller:new AbortController,claim:{startedAt:Date.now(),id:globalThis.crypto.randomUUID()}};a=E;let D=x=>{if(a!==E||E.closed||typeof x.data!="object"||x.data===null)return;let w=x.data;w.type==="session-ended"?s(E):w.type==="takeover"&&typeof w.startedAt=="number"&&Number.isFinite(w.startedAt)&&typeof w.id=="string"&&w.id!==E.claim.id&&(w.startedAt>E.claim.startedAt||w.startedAt===E.claim.startedAt&&w.id>E.claim.id?s(E,true,"replaced"):y.postMessage({type:"takeover",...E.claim}));},R=x=>{a===E&&x.persisted===true&&s(E);};try{i&&(E.cleanups.push(()=>i.removeEventListener("pagehide",R)),i.addEventListener("pagehide",R)),E.cleanups.push(()=>y.removeEventListener("message",D)),y.addEventListener("message",D);let x=setTimeout(()=>g(E,new Error("Browser IM takeover timed out while waiting for the previous page to close")),15e3);E.cleanups.push(()=>clearTimeout(x)),t.request(`im-connection:${h}`,{mode:"exclusive",signal:E.controller.signal},async _=>{if(a!==E||E.closed||!_){E.resolveReady(!1);return}let U=new Promise(l=>{E.release=l;});E.owned=!0,clearTimeout(x);try{await e.onChange(!0);}catch(l){g(E,l);}E.resolveReady(a===E&&E.owned),await U;}).catch(_=>{a===E&&!E.closed&&g(E,_);}),y.postMessage({type:"takeover",...E.claim});}catch(x){g(E,x);}return E.ready},stop(){c++,a&&s(a);},terminate(){c++;let h=a;if(h)try{h.closed||h.channel.postMessage({type:"session-ended"});}catch(P){d(P);}finally{s(h);}},get owned(){return a?.owned??false}}}function Tl(){let e=globalThis;return typeof e.addEventListener=="function"&&typeof e.removeEventListener=="function"?e:void 0}function Dl(e,n={}){let t=n.target!==void 0?n.target:Tl(),r=n.visibilitySource!==void 0?n.visibilitySource:globalThis.document,o=n.pageLifecycleSource!==void 0?n.pageLifecycleSource:t,i=false,a=()=>e.onOnline?.(),c=()=>e.onOffline?.(),d=()=>{r!=null&&r.visibilityState==="visible"?e.onVisible?.():r!=null&&e.onHidden?.();},s=()=>e.onPageHide?.(),g=()=>e.onPageShow?.();return {start(){i||(i=true,r!=null&&r.visibilityState!=="visible"&&e.onHidden?.(),t!=null&&(e.onOnline!==void 0&&t.addEventListener("online",a),e.onOffline!==void 0&&t.addEventListener("offline",c)),r?.addEventListener("visibilitychange",d),o!=null&&(o.addEventListener("pagehide",s),o.addEventListener("pageshow",g)));},stop(){i&&(i=false,t!=null&&(t.removeEventListener("online",a),t.removeEventListener("offline",c)),r?.removeEventListener("visibilitychange",d),o!=null&&(o.removeEventListener("pagehide",s),o.removeEventListener("pageshow",g)));},supportsLifecycle:r!=null||o!=null,get running(){return i}}}var Bl=16,Zi=128,Nl=20,Kl=8*1024*1024,Ll=2*1024*1024,Gl=1440*60*1e3,Hl=2*1024*1024*1024,ea=1024*1024*1024,Fl=512*1024*1024,ql=256*1024*1024,jl=64*1024,dr="channel:list-version",na="schema:conversation-key-v1",ta="schema:message-server-order-v1",ra="schema:mini-program-game-preview-v1",oa="im:membership-reset-sort-keys",ur="default",Ne="\uFFFF";function ia(e){if(!(e===void 0||!/^\d+$/.test(e)))return e.replace(/^0+(?=\d)/,"")}function $l(e,n){let t=ia(e),r=ia(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 Sn(e){return `conversation:${L(e)}`}function pr(e,n){return `${L(e)}\0${n}`}function Jl(e){let n=L(e.conversation);return {...e,key:pr(e.conversation,e.messageId),conversationKey:n,conversation:{...e.conversation},sContent:e.sContent.slice()}}function Vl(e){let{key:n,conversationKey:t,...r}=e;return {...r,conversation:{...r.conversation},sContent:r.sContent.slice()}}function xn(e,n){return JSON.stringify([L(e),n])}function aa(e){let n=I(e);return {...e,messageKey:xn(n,e.id),conversationKey:L(n)}}function Ke(e){let{messageKey:n,conversationKey:t,...r}=e;return r}function tt(e){return {...e,id:L(J$1(e)),conversationId:e.id}}function fr(e){if(e.conversationId===void 0)return e;let{conversationId:n,...t}=e;return {...t,id:n}}function mr(e){return e.conversationType===void 0?e:{...e,conversationId:L(e),storageConversationId:e.conversationId}}function rt(e){if(e.storageConversationId===void 0)return e;let{storageConversationId:n,...t}=e;return {...t,conversationId:n}}function sa(e){return {...e,conversationId:L(K$1(e)),storageConversationId:e.conversationId}}function gr(e){if(e.storageConversationId===void 0)return e;let{storageConversationId:n,...t}=e;return {...t,conversationId:n}}function zl(e){return {...e,conversationKey:L(e.ref)}}function Wl(e){let{conversationKey:n,...t}=e;return t}function Yl(e){return typeof e=="string"?e:e.conversationId}function Mn(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 Xl(e){let n=e.transaction(["messages","sessions","readStates","pinnedMessages","meta"],"readwrite");try{let t=n.objectStore("meta");if((await t.get(na))?.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(aa(d));let o=n.objectStore("sessions"),i=new Map;for(let d of await o.getAll()){if(d.conversationId!==void 0)continue;let s=fr(d);i.set(s.id,s.type),await o.put(tt(s)),await o.delete(d.id);}let a=n.objectStore("readStates");for(let d of await a.getAll()){if(d.storageConversationId!==void 0)continue;let s=d.conversationType??i.get(d.conversationId);if(s===void 0)continue;let g={...d,conversationType:s};await a.put(mr(g)),await a.delete(d.conversationId);}let c=n.objectStore("pinnedMessages");for(let d of await c.getAll()){if(d.storageConversationId!==void 0)continue;let s=gr(d);await c.put(sa(s)),await c.delete(d.conversationId);}await t.put({key:na,value:!0}),await n.done;}catch(t){try{n.abort();}catch{}try{await n.done;}catch{}throw t}}async function Ql(e){let n$1=e.transaction(["messages","readStates","meta"],"readwrite");try{let t=n$1.objectStore("meta");if((await t.get(ta))?.value===!0){await n$1.done;return}let r=n$1.objectStore("readStates"),o=await r.getAll(),i=new Map;for(let g of o){let h=rt(g);h.conversationType==="channel"&&h.readCursorSortKey!==void 0&&h.readCursor!==""&&i.set(L(h),{cursor:h.readCursor});}let a=new Map,c=n$1.objectStore("messages"),d=await c.openCursor();for(;d!==null;){let g=d.value,h=L(I(g)),P=n(g),y=i.get(h);if(y!==void 0&&g.extensions?.historyCursor===y.cursor&&(y.sortKey=P),P!==g.sortKey){let M=a.get(h);M===void 0&&(M=new Map,a.set(h,M)),M.set(g.sortKey,P),await d.update({...g,sortKey:P});}d=await d.continue();}for(let g of o){let h=rt(g);if(h.conversationType===void 0)continue;let P=L(h),y=i.get(P)?.sortKey??(h.readCursorSortKey===void 0?void 0:a.get(P)?.get(h.readCursorSortKey));if(y===void 0&&h.readCursorSortKey!==void 0&&h.conversationType!=="channel"&&h.readCursor!==""){let M=await c.get(xn(h,h.readCursor));M!==void 0&&L(I(M))===P&&(y=M.sortKey);}y!==void 0&&y!==h.readCursorSortKey&&await r.put({...g,readCursorSortKey:y});}let s=await t.get(oa);if(Array.isArray(s?.value)){let g=!1,h=s.value.map(P=>{if(!Array.isArray(P)||P.length!==2||typeof P[0]!="string"||typeof P[1]!="string")return P;let y=a.get(P[0])?.get(P[1]);return y===void 0?P:(g=!0,[P[0],y])});g&&await t.put({key:oa,value:h});}await t.put({key:ta,value:!0}),await n$1.done;}catch(t){try{n$1.abort();}catch{}try{await n$1.done;}catch{}throw t}}async function Zl(e){let n=e.transaction(["messages","meta"],"readwrite");try{let t=n.objectStore("meta");if((await t.get(ra))?.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&&w(i)&&await o.delete(),o=await o.continue();}await t.put({key:ra,value:!0}),await n.done;}catch(t){try{n.abort();}catch{}try{await n.done;}catch{}throw t}}function lr(e){return `${e.kind}:${encodeURIComponent(e.messageId)}:${e.resourceVersion}`}async function Qe(e,n){let t=e.done;t.catch(()=>{});try{let r=await n();return await t,r}catch(r){try{e.abort();}catch{}throw await t.catch(()=>{}),r}}async function ep(e,n){let t=n.namespaceFactory.forAccount(e).name("durable","storage","indexed-db");typeof indexedDB>"u"||await deleteDB(t);}function np(e){let{namespaceFactory:n}=e,t=null,r=null,o=0,i=Promise.resolve(),a=Promise.resolve(),c=0,d=e.mediaAssetCache?.maxPendingWriteBytes??ql;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 s(){if(t===null)throw new Error("ImStoragePort \u672A open\uFF1A\u8BF7\u5148 open({ namespace }) \u518D\u8BFB\u5199");return t}function g(l){let f=o,m=r,C=()=>{if(f!==o||m!==r)throw new Error("\u6700\u8FD1\u5386\u53F2\u7F13\u5B58\u64CD\u4F5C\u5DF2\u5931\u6548\uFF1A\u8D26\u53F7\u6216\u5B58\u50A8\u5DF2\u6539\u53D8");s();},p=i.then(async()=>{C();let u=await l();return C(),u});return i=p.then(()=>{},()=>{}),p}function h(l,f){return l.version!==2||!Number.isFinite(l.fetchedAt)||l.fetchedAt<0||f-l.fetchedAt>=Gl}async function P(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 f=Date.now();if(l.byteLength>Ll||h(l,f))return false;let m=L(l.conversation),C=s().transaction("recentHistoryPages","readwrite");return Qe(C,async()=>{let p=await C.store.getAll(),u=[];for(let v of p)h(v,f)?await C.store.delete(v.conversationKey):v.conversationKey!==m&&u.push(v);let b={...l,conversationKey:m};u.push(b),u.sort((v,S)=>v.fetchedAt-S.fetchedAt||v.conversationKey.localeCompare(S.conversationKey));let A=u.reduce((v,S)=>v+S.byteLength,0),k=[];for(;u.length>Nl||A>Kl;){let v=u.shift();k.push(v),A-=v.byteLength;}if(k.includes(b))return !1;await C.store.put(b);for(let v of k)await C.store.delete(v.conversationKey);return !0})}async function y(l){if(typeof l!="string")return;let f=IDBKeyRange.bound([l,""],[l,Ne]),m=(await s().transaction("messages").store.index("by_conv_sort").getAll(f)).map(Ke);Mn(l,m);}function M(l){let f=a.then(l,l);return a=f.then(()=>{},()=>{}),f}function I$1(l,f){if(l!==o||f===null||f!==r)throw new Error("\u5A92\u4F53\u8D44\u4EA7\u7F13\u5B58\u8D26\u53F7\u4EE3\u9645\u5DF2\u5931\u6548")}function E(){return Math.max(0,Math.floor(e.mediaAssetCache?.now?.()??Date.now()))}function D(l,f){let m=e.mediaAssetCache?.strategies.resolve(l.kind)?.maxIdleMs;return m!==void 0&&(!Number.isSafeInteger(l.lastAccessedAt)||l.lastAccessedAt<0||f-l.lastAccessedAt>=m)}async function R(l,f){I$1(l,f);let m=await s().getAll("mediaAssetMeta");I$1(l,f);let C=E(),p=m.filter(b=>D(b,C));await w(p.map(b=>b.key),l,f),I$1(l,f);let u=new Set(p.map(b=>b.key));return m.filter(b=>!u.has(b.key))}async function x(l){let f=e.mediaAssetCache?.estimateStorage??(async()=>typeof navigator>"u"||navigator.storage?.estimate===void 0?{}:await navigator.storage.estimate());try{let{quota:m,usage:C}=await f();if(m===void 0||!Number.isFinite(m)||m<=0)return ea;let p=l.reduce((A,k)=>A+k.byteLength,0),u=Math.max(0,(C??0)-p),b=Math.max(Fl,Math.floor(m*.2));return Math.max(0,Math.min(Hl,Math.floor(m-u-b)))}catch{return ea}}async function w(l,f,m){if(l.length===0)return;I$1(f,m);let C=s().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all(l.flatMap(p=>[C.objectStore("mediaAssets").delete(p),C.objectStore("mediaAssetMeta").delete(p)])),await C.done;}async function _(l,f,m,C){I$1(l,f);let p=s(),u=e.mediaAssetCache?.strategies;if(u===void 0)return;let b=C??await p.getAll("mediaAssetMeta");I$1(l,f);let A=new Set;for(let T of u.list()){let O=b.filter(L=>L.kind===T.kind).sort((L,X)=>L.lastAccessedAt-X.lastAccessedAt),N=O.reduce((L,X)=>L+X.byteLength,0),j=O.length;for(let L of O){if(N<=T.softMaxBytes&&j<=T.maxEntries)break;A.add(L.key),N-=L.byteLength,j-=1;}}let k=b.filter(T=>!A.has(T.key)).sort((T,O)=>T.lastAccessedAt-O.lastAccessedAt),v=Math.max(0,Math.min(await x(b),m??Number.POSITIVE_INFINITY)),S=k.reduce((T,O)=>T+O.byteLength,0);for(let T of k){if(S<=v)break;A.add(T.key),S-=T.byteLength;}await w([...A],l,f);}async function U(l,f,m){I$1(f,m);let C=e.mediaAssetCache?.strategies.resolve(l.kind);if(C===void 0)return "skipped";let p=l.blob,u=p.size,b=await R(f,m),A=await x(b);if(I$1(f,m),u===0||u>C.maxEntryBytes||A<=0||u>Math.floor(A/2))return "skipped";let k=lr(l),v=E(),S=b.find(L=>L.key===k),T={key:k,kind:l.kind,messageId:l.messageId,resourceVersion:l.resourceVersion,byteLength:u,...l.mimeType===void 0?{}:{mimeType:l.mimeType},createdAt:S?.createdAt??v,lastAccessedAt:v},O=async()=>{I$1(f,m);let L=s().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all([L.objectStore("mediaAssets").put({key:k,blob:p}),L.objectStore("mediaAssetMeta").put(T)]),await L.done;},N=false;try{await O();}catch(L){if(!(L instanceof DOMException)||L.name!=="QuotaExceededError")throw L;N=true,await _(f,m,Math.max(0,A-u)),await O();}let j=S===void 0?[...b,T]:b.map(L=>L.key===k?T:L);return await _(f,m,void 0,N?void 0:j),I$1(f,m),await s().get("mediaAssets",k)===void 0?"skipped":"stored"}return {supportsChannelSyncCheckpoint:true,recentHistoryCache:{get:l=>g(async()=>{let f=L(l),m=s().transaction("recentHistoryPages","readwrite");return Qe(m,async()=>{let C=await m.store.get(f);if(C===void 0)return null;if(h(C,Date.now()))return await m.store.delete(f),null;let{conversationKey:p,...u}=C;return u})}),async put(l){let f=structuredClone(l);return g(()=>P(f))},delete:l=>g(async()=>{await s().delete("recentHistoryPages",L(l));}),clear:()=>g(async()=>{await s().clear("recentHistoryPages");})},async open({namespace:l}){if(t!==null&&r===l)return;t!==null&&(t.close(),t=null),r=l;let f=++o,m=n.forAccount(l).name("durable","storage","indexed-db"),C,p=await openDB(m,Bl,{upgrade(u,b,A,k){if(u.objectStoreNames.contains("messages"))k.objectStore("messages").indexNames.contains("by_conversation_key_sort")||k.objectStore("messages").createIndex("by_conversation_key_sort",["conversationKey","sortKey"]);else {let v=u.createObjectStore("messages",{keyPath:"messageKey"});v.createIndex("by_conv_sort",["conversationId","sortKey"]),v.createIndex("by_conversation_key_sort",["conversationKey","sortKey"]);}if(u.objectStoreNames.contains("sessions")||u.createObjectStore("sessions",{keyPath:"id"}),u.objectStoreNames.contains("readStates")||u.createObjectStore("readStates",{keyPath:"conversationId"}),u.objectStoreNames.contains("drafts")||u.createObjectStore("drafts",{keyPath:"conversationKey"}),u.objectStoreNames.contains("outbox")||u.createObjectStore("outbox",{keyPath:"id"}),u.objectStoreNames.contains("meta")||u.createObjectStore("meta",{keyPath:"key"}),u.objectStoreNames.contains("userProfiles")||u.createObjectStore("userProfiles",{keyPath:"id"}),u.objectStoreNames.contains("groupMembers")||u.createObjectStore("groupMembers",{keyPath:"groupId"}),u.objectStoreNames.contains("groupProfiles")||u.createObjectStore("groupProfiles",{keyPath:"id"}),u.objectStoreNames.contains("pinnedMessages")||u.createObjectStore("pinnedMessages",{keyPath:"conversationId"}),u.objectStoreNames.contains("channelProfiles")||u.createObjectStore("channelProfiles",{keyPath:"id"}),u.objectStoreNames.contains("channelMembers")||u.createObjectStore("channelMembers",{keyPath:["channelId","userId"]}),u.objectStoreNames.contains("channelMemberSnapshots")||u.createObjectStore("channelMemberSnapshots",{keyPath:"channelId"}),u.objectStoreNames.contains("channelMentionCandidateSnapshots")||u.createObjectStore("channelMentionCandidateSnapshots",{keyPath:"channelId"}),u.objectStoreNames.contains("conversationBackgrounds")||u.createObjectStore("conversationBackgrounds",{keyPath:"key"}),u.objectStoreNames.contains("mediaAssets")||u.createObjectStore("mediaAssets",{keyPath:"key"}),!u.objectStoreNames.contains("mediaAssetMeta")){let v=u.createObjectStore("mediaAssetMeta",{keyPath:"key"});v.createIndex("by_kind_access",["kind","lastAccessedAt"]),v.createIndex("by_access","lastAccessedAt");}u.objectStoreNames.contains("decryptRecoveries")||u.createObjectStore("decryptRecoveries",{keyPath:"key"}).createIndex("by_conversation","conversationKey"),b>0&&b<13&&(k.objectStore("mediaAssets").clear(),k.objectStore("mediaAssetMeta").clear()),u.objectStoreNames.contains("recentHistoryPages")||u.createObjectStore("recentHistoryPages",{keyPath:"conversationKey"}),b>0&&b<16&&k.objectStore("messages").keyPath!=="messageKey"&&(async()=>{let S=await k.objectStore("messages").getAll();for(let O of S)O.messageKey=xn(I(O),O.id);u.deleteObjectStore("messages");let T=u.createObjectStore("messages",{keyPath:"messageKey"});T.createIndex("by_conv_sort",["conversationId","sortKey"]),T.createIndex("by_conversation_key_sort",["conversationKey","sortKey"]);for(let O=0;O<S.length;O+=Zi){let N=S.slice(O,O+Zi);await Promise.all(N.map(async j=>T.put(j)));}})().catch(S=>{C=S,k.done.catch(()=>{});try{k.abort();}catch{}});}}).catch(u=>{throw C??u});if(f!==o){p.close();return}try{await Xl(p),await Ql(p),await Zl(p);}catch(u){throw p.close(),u}if(f!==o){p.close();return}t=p;try{await M(()=>R(f,l));}catch(u){if(p.close(),f!==o)return;throw t===p&&(t=null),u}},async close(){let l=a;o+=1,r=null,t!==null&&(t.close(),t=null),await l;},async clearRebuildableCaches(){return g(async()=>{let l=o,f=r;await M(async()=>{I$1(l,f);let C=s().transaction(["userProfiles","groupMembers","groupProfiles","channelProfiles","channelMembers","channelMemberSnapshots","channelMentionCandidateSnapshots","mediaAssets","mediaAssetMeta","meta","recentHistoryPages"],"readwrite");await Promise.all([C.objectStore("userProfiles").clear(),C.objectStore("groupMembers").clear(),C.objectStore("groupProfiles").clear(),C.objectStore("channelProfiles").clear(),C.objectStore("channelMembers").clear(),C.objectStore("channelMemberSnapshots").clear(),C.objectStore("channelMentionCandidateSnapshots").clear(),C.objectStore("mediaAssets").clear(),C.objectStore("mediaAssetMeta").clear(),C.objectStore("meta").delete(dr),C.objectStore("recentHistoryPages").clear(),C.done]);});})},async hasMany(l){let f=o,m=r,C=l.map(p=>({...p}));return await M(async()=>{if(I$1(f,m),C.length===0)return Object.freeze([]);let p=s().transaction(["mediaAssets","mediaAssetMeta"],"readonly"),u=E(),b=await Qe(p,async()=>{let A=new Map;return await Promise.all(C.map(k=>{if(e.mediaAssetCache?.strategies.resolve(k.kind)===void 0)return !1;let v=lr(k),S=A.get(v);return S===void 0&&(S=Promise.all([p.objectStore("mediaAssets").getKey(v),p.objectStore("mediaAssetMeta").get(v)]).then(([T,O])=>T!==void 0&&O!==void 0&&O.kind===k.kind&&O.messageId===k.messageId&&O.resourceVersion===k.resourceVersion&&Number.isSafeInteger(O.byteLength)&&O.byteLength>0&&!D(O,u)),A.set(v,S)),S}))});return I$1(f,m),Object.freeze(b)})},async get(l){let f=o,m=r;return await M(async()=>{if(I$1(f,m),e.mediaAssetCache?.strategies.resolve(l.kind)===void 0)return null;let C=lr(l),p=s(),[u,b]=await Promise.all([p.get("mediaAssets",C),p.get("mediaAssetMeta",C)]);I$1(f,m);let A=E();return u===void 0||b===void 0||D(b,A)?(await w([C],f,m),null):(await p.put("mediaAssetMeta",{...b,lastAccessedAt:A}),I$1(f,m),{kind:b.kind,messageId:b.messageId,resourceVersion:b.resourceVersion,blob:u.blob,...b.mimeType===void 0?{}:{mimeType:b.mimeType}})})},async put(l){let f=o,m=r;I$1(f,m);let C=l.blob.size;if(C>d||c+C>d)return "skipped";c+=C;try{return await M(()=>U(l,f,m))}finally{c=Math.max(0,c-C);}},async clear(){let l=o,f=r;await M(async()=>{I$1(l,f);let m=s().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all([m.objectStore("mediaAssets").clear(),m.objectStore("mediaAssetMeta").clear(),m.done]);});},async prune(){let l=o,f=r;await M(()=>R(l,f));},async getMessage(l,f){let m=await s().get("messages",xn(l,f));if(m===void 0)return null;let C=Ke(m);return L(I(C))===L(l)?C:null},async getMessages(l,f){let m=typeof l=="string"?"by_conv_sort":"by_conversation_key_sort",C=typeof l=="string"?l:L(l);if(await y(l),f.beforeSortKey===void 0&&f.afterSortKey!==void 0){let A=IDBKeyRange.bound([C,f.afterSortKey],[C,Ne]),k=[],v=await s().transaction("messages").store.index(m).openCursor(A,"next");for(;v!==null&&k.length<f.limit;)k.push(v.value),v=await v.continue();return k.map(Ke)}let p=f.beforeSortKey===void 0?IDBKeyRange.bound([C,""],[C,Ne]):IDBKeyRange.bound([C,""],[C,f.beforeSortKey],false,true),u=[],b=await s().transaction("messages").store.index(m).openCursor(p,"prev");for(;b!==null&&u.length<f.limit;)u.push(b.value),b=await b.continue();return u.reverse().map(Ke)},async saveMessages(l){if(l.length===0)return;let f=s().transaction("messages","readwrite");await Promise.all([...l.map(m=>f.store.put(aa(m))),f.done]);},async searchMessages(l,f){let m=L(l),C=f.keyword?.trim()??"",p=f.contentTypes;if(C===""&&(p===void 0||p.length===0))return {items:[],exhausted:true};let u=C===""?void 0:await Ca$1(C),b=f.beforeSortKey===void 0?IDBKeyRange.bound([m,""],[m,Ne]):IDBKeyRange.bound([m,""],[m,f.beforeSortKey],false,true),A=2e3,k=[],v=0,S,T=await s().transaction("messages").store.index("by_conversation_key_sort").openCursor(b,"prev");for(;T!==null&&k.length<f.limit&&v<A;){let N=Ga$1(Ke(T.value));v+=1,S=N.sortKey;let j=p===void 0||p.includes(N.contentType),L=u===void 0||u.match(Aa$1(N))!==null;j&&L&&k.push(N),T=await T.continue();}let O=T===null;return {items:k,exhausted:O,...O?{}:{nextBeforeSortKey:S}}},async getDecryptRecoveries(l){let f=L(l);return (await s().getAllFromIndex("decryptRecoveries","by_conversation",f)).map(Vl)},async saveDecryptRecovery(l){if(l.sContent.byteLength===0||l.sContent.byteLength>jl)throw new Error(`\u89E3\u5BC6\u6062\u590D\u5BC6\u6587\u5B57\u8282\u957F\u5EA6\u975E\u6CD5\uFF1A${l.sContent.byteLength}`);await s().put("decryptRecoveries",Jl(l));},async deleteDecryptRecovery(l,f){await s().delete("decryptRecoveries",pr(l,f));},async deleteConversationDecryptRecoveries(l){let f=L(l),m=s().transaction("decryptRecoveries","readwrite"),C=await m.store.index("by_conversation").openCursor(IDBKeyRange.only(f));for(;C!==null;)await C.delete(),C=await C.continue();await m.done;},async getSessions(){return (await s().getAll("sessions")).map(fr)},async saveSessions(l){if(l.length===0)return;let f=s().transaction("sessions","readwrite");for(let m of l)await f.store.put(tt(m)),await f.store.delete(m.id);await f.done;},async deleteSession(l){if(typeof l!="string"){let C=s().transaction(["sessions","conversationBackgrounds"],"readwrite");await C.objectStore("sessions").delete(L(l)),await C.objectStore("conversationBackgrounds").delete(Sn(l)),await C.done;return}let f=(await s().getAll("sessions")).map(fr).filter(C=>C.id===l);Mn(l,f.map(C=>({conversationType:C.type})));let m=s().transaction(["sessions","conversationBackgrounds"],"readwrite");if(f[0]!==void 0){let C=J$1(f[0]);await m.objectStore("sessions").delete(L(C)),await m.objectStore("conversationBackgrounds").delete(Sn(C));}await m.objectStore("sessions").delete(l),await m.done;},async deleteReadState(l){if(typeof l!="string"){await s().delete("readStates",L(l));return}let m=(await s().getAll("readStates")).map(rt).filter(C=>C.conversationId===l).filter(C=>C.conversationType!==void 0);Mn(l,m),m[0]!==void 0&&await s().delete("readStates",L(m[0])),await s().delete("readStates",l);},async deleteMessage(l,f,m){return g(async()=>{if(m!==void 0&&(m.id!==l.conversationId||m.type!==l.conversationType))throw new Error("\u5220\u9664\u540E\u7684\u4F1A\u8BDD\u6458\u8981\u5FC5\u987B\u5339\u914D\u76EE\u6807\u4F1A\u8BDD");let C=s().transaction(["messages","sessions","decryptRecoveries","recentHistoryPages"],"readwrite");return Qe(C,async()=>{let p=C.objectStore("messages"),u=xn(l,f),b=await p.get(u);if(b!==void 0){let A=Ke(b);if(A.conversationType!==l.conversationType||A.conversationId!==l.conversationId)return !1;await p.delete(u);}return await C.objectStore("decryptRecoveries").delete(pr(l,f)),await C.objectStore("recentHistoryPages").delete(L(l)),m!==void 0&&await C.objectStore("sessions").put(tt(m)),b!==void 0})})},async deleteConversationMessages(l){return g(async()=>{let f=Yl(l),m=typeof l=="string"?"by_conv_sort":"by_conversation_key_sort",C=typeof l=="string"?l:L(l),p=IDBKeyRange.bound([C,""],[C,Ne]),u=s().transaction(["messages","decryptRecoveries","recentHistoryPages","meta"],"readwrite");return Qe(u,async()=>{let b=u.objectStore("messages"),A=u.objectStore("decryptRecoveries"),k=[],v=[];if(typeof l=="string"){let T=(await b.index("by_conv_sort").getAll(p)).map(Ke);k=(await A.getAll()).filter(N=>N.conversation.conversationId===l),v=(await u.objectStore("recentHistoryPages").getAll()).filter(N=>N.conversation.conversationId===f);let O=await u.objectStore("meta").get(Xa$1({conversationType:"channel",conversationId:f}));Mn(f,[...O===void 0?[]:[{conversationType:"channel"}],...T,...v.map(N=>({conversationType:N.conversation.conversationType})),...k.map(N=>({conversationType:N.conversation.conversationType}))]);}await u.objectStore("meta").delete(Xa$1(typeof l=="string"?{conversationType:"channel",conversationId:f}:l));let S=await b.index(m).openCursor(p);for(;S!==null;)await S.delete(),S=await S.continue();if(typeof l=="string"){for(let T of k)await A.delete(T.key);for(let T of v)await u.objectStore("recentHistoryPages").delete(T.conversationKey);}else {await u.objectStore("recentHistoryPages").delete(L(l));let T=await A.index("by_conversation").openCursor(IDBKeyRange.only(L(l)));for(;T!==null;)await T.delete(),T=await T.continue();}})})},async clearConversationHistory(l,f,m){return g(async()=>{let C=L(l),p=IDBKeyRange.bound([C,""],[C,Ne]),u=s().transaction(["messages","sessions","readStates","decryptRecoveries","recentHistoryPages","meta"],"readwrite");return Qe(u,async()=>{await u.objectStore("meta").delete(Xa$1(l)),await u.objectStore("recentHistoryPages").delete(C);let b=await u.objectStore("messages").index("by_conversation_key_sort").openCursor(p);for(;b!==null;)await b.delete(),b=await b.continue();let A=await u.objectStore("decryptRecoveries").index("by_conversation").openCursor(IDBKeyRange.only(C));for(;A!==null;)await A.delete(),A=await A.continue();f!==void 0&&await u.objectStore("sessions").put(tt(f)),m!==void 0&&(await u.objectStore("readStates").put(mr(m)),await u.objectStore("readStates").delete(m.conversationId));})})},async getReadStates(){return (await s().getAll("readStates")).map(rt)},async saveReadState(l){let f=s().transaction("readStates","readwrite");await f.store.put(mr(l)),l.conversationType!==void 0&&await f.store.delete(l.conversationId),await f.done;},async getDrafts(){return (await s().getAll("drafts")).map(Wl)},async saveDraft(l){await s().put("drafts",zl(l));},async deleteDraft(l){await s().delete("drafts",L(l));},async getConversationBackground(l){return (await s().get("conversationBackgrounds",Sn(l)))?.background??null},async saveConversationBackground(l,f){let m=Sn(l);await s().put("conversationBackgrounds",{key:m,background:f});},async deleteConversationBackground(l){await s().delete("conversationBackgrounds",Sn(l));},async getDefaultConversationBackground(){return (await s().get("conversationBackgrounds",ur))?.background??null},async saveDefaultConversationBackground(l){await s().put("conversationBackgrounds",{key:ur,background:l});},async deleteDefaultConversationBackground(){await s().delete("conversationBackgrounds",ur);},async getOutbox(){return s().getAll("outbox")},async saveOutboxMessage(l){await s().put("outbox",l);},async removeOutboxMessage(l){await s().delete("outbox",l);},async getPinnedMessages(){return (await s().getAll("pinnedMessages")).map(gr)},async savePinnedMessage(l){let f=s().transaction("pinnedMessages","readwrite");await f.store.put(sa(l)),await f.store.delete(l.conversationId),await f.done;},async removePinnedMessage(l){if(typeof l!="string"){await s().delete("pinnedMessages",L(l));return}let f=(await s().getAll("pinnedMessages")).map(gr).filter(m=>m.conversationId===l);Mn(l,f),f[0]!==void 0&&await s().delete("pinnedMessages",L(K$1(f[0]))),await s().delete("pinnedMessages",l);},async getMeta(l){let f=await s().get("meta",l);return f===void 0?null:f.value},async setMeta(l,f){await s().put("meta",{key:l,value:f});},async getUserProfile(l){return await s().get("userProfiles",l)??null},async saveUserProfile(l){await s().put("userProfiles",l);},async getGroupMembers(l){return await s().get("groupMembers",l)??null},async saveGroupMembers(l){await s().put("groupMembers",l);},async getGroupProfile(l){return await s().get("groupProfiles",l)??null},async saveGroupProfile(l){await s().put("groupProfiles",l);},async getChannelProfile(l){return await s().get("channelProfiles",l)??null},async getChannelProfiles(){return s().getAll("channelProfiles")},async saveChannelProfiles(l){if(l.length===0)return;let f=s().transaction("channelProfiles","readwrite");await Promise.all([...l.map(m=>f.store.put(m)),f.done]);},async getChannelListVersion(){let l=await s().get("meta",dr);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 s().put("meta",{key:dr,value:l});},async getChannelMembers(l,f){if(f.length===0)return [];let m=s().transaction("channelMembers"),C=await Promise.all(f.map(p=>m.store.get([l,p])));return await m.done,C.filter(p=>p!==void 0)},async saveChannelMembers(l){if(l.length===0)return;let f=s().transaction("channelMembers","readwrite");for(let m of l){let C=await f.store.get([m.channelId,m.userId]);C!==void 0&&$l(m.updateVersion,C.updateVersion)<0||await f.store.put(m);}await f.done;},async deleteChannelMembers(l){let f=IDBKeyRange.bound([l,""],[l,Ne]),m=s().transaction("channelMembers","readwrite"),C=await m.store.openCursor(f);for(;C!==null;)await C.delete(),C=await C.continue();await m.done;},async getChannelMemberSnapshot(l){return await s().get("channelMemberSnapshots",l)??null},async saveChannelMemberSnapshot(l){await s().put("channelMemberSnapshots",l);},async deleteChannelMemberSnapshot(l){await s().delete("channelMemberSnapshots",l);},async getChannelMentionCandidateSnapshot(l){return await s().get("channelMentionCandidateSnapshots",l)??null},async saveChannelMentionCandidateSnapshot(l){await s().put("channelMentionCandidateSnapshots",l);},async deleteChannelMentionCandidateSnapshot(l){await s().delete("channelMentionCandidateSnapshots",l);}}}function tp(e={}){let n=e.createSocket??(y=>new globalThis.WebSocket(y)),t=e.connectTimeoutMs??1e4,r={open:new Set,message:new Set,close:new Set,error:new Set},o,i,a="idle",c;function d(y,M){for(let I of [...r[y]])I(M);}function s(){c!==void 0&&(clearTimeout(c),c=void 0);}function g(y,M){M!==void 0&&(y.removeEventListener("open",M.onOpen),y.removeEventListener("message",M.onMessage),y.removeEventListener("error",M.onError),y.removeEventListener("close",M.onClose));}function h(){if(s(),o!==void 0){g(o,i);try{o.close(1e3);}catch{}o=void 0;}i=void 0;}function P(y,M,I){let E={onOpen:()=>{y===o&&(s(),a="open",d("open",{endpoint:M}));},onMessage:D=>{if(y!==o||a!=="open")return;let R=D?.data;if(R instanceof ArrayBuffer){d("message",{data:R});return}d("error",{error:new Error(`WsTransport\uFF1A\u6536\u5230\u975E ArrayBuffer \u6D88\u606F\uFF08${typeof R}\uFF09\uFF0C\u5DF2\u5FFD\u7565`)});},onError:D=>{y===o&&d("error",{error:new Error(`WsTransport\uFF1AWebSocket error \u4E8B\u4EF6\uFF08${D instanceof Event?D.type:typeof D}\uFF09`)});},onClose:D=>{y===o&&(s(),g(y,E),o=void 0,i=void 0,a="closed",d("close",{code:D?.code??1006,reason:D?.reason??"",wasClean:D?.wasClean??false}));}};if(i=E,y.addEventListener("open",E.onOpen),y.addEventListener("message",E.onMessage),y.addEventListener("error",E.onError),y.addEventListener("close",E.onClose),I>0){let D=setTimeout(()=>{if(!(y!==o||a!=="connecting")){d("error",{error:new Error(`WsTransport\uFF1A\u8FDE\u63A5\u8D85\u65F6\uFF08${I}ms \u672A open\uFF09`)});try{y.close();}catch{}}},I);D.unref?.(),c=D;}}return {get state(){return a},async connect(y,M){let I=y[0];if(I===void 0)throw new Error("WsTransport.connect\uFF1Aendpoints \u4E3A\u7A7A\uFF08P0 single \u7B56\u7565\u9700\u81F3\u5C11\u4E00\u4E2A\u7AEF\u70B9\uFF09");h(),a="connecting";let E;try{E=n(I.url);}catch(D){throw a="closed",D}E.binaryType="arraybuffer",o=E,P(E,I,M?.connectTimeoutMs??t);},async send(y){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(y);},async close(y=1e3,M){s(),o!==void 0&&(a==="connecting"||a==="open")&&(a="closing",o.close(y,M));},on(y,M){return r[y].add(M),()=>{r[y].delete(M);}}}}
|
|
8
|
+
export{Sd as $,Zn as $a,De as A,iu as Aa,Jc as B,au as Ba,ca as C,su as Ca,Xc as D,xi as Da,Zc as E,_i as Ea,ed as F,uu as Fa,td as G,lu as Ga,rd as H,pu as Ha,od as I,fu as Ia,id as J,mu as Ja,ad as K,gu as Ka,sd as L,Cu as La,cd as M,vu as Ma,dd as N,Au as Na,ud as O,Su as Oa,ld as P,Mu as Pa,pd as Q,xu as Qa,fd as R,_u as Ra,md as S,Jn as Sa,gd as T,Me as Ta,hd as U,Hu as Ua,wd as V,wt as Va,Cd as W,da as Wa,qn as X,qu as Xa,jn as Y,pl as Ya,Pd as Z,K as Za,Ad as _,ua as _a,ja as a,Md as aa,Qr as ab,xt as b,xd as ba,Sl as bb,us as c,kd as ca,V as cb,sn as d,Ed as da,El as db,Q as e,Td as ea,Rl as eb,ms as f,Dd as fa,Dl as fb,hs as g,Ud as ga,ep as gb,cn as h,Od as ha,np as hb,bs as i,Nd as ia,tp as ib,Ls as j,Ld as ja,ya as jb,Fe as k,Gd as ka,Rn as kb,Z as l,Hd as la,_a as lb,Ws as m,Fd as ma,qa as mb,Ys as n,qd as na,pn as o,$d as oa,ye as p,wn as pa,sc as q,Vd as qa,fn as r,zd as ra,re as s,Wd as sa,Ic as t,Yd as ta,kc as u,Xd as ua,Dc as v,Qd as va,Uc as w,Zd as wa,Lc as x,eu as xa,$e as y,nu as ya,z,ou as za};
|