k2-im 0.1.28 → 0.1.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.js +1 -1
- package/dist/chat-kit-pinia.d.ts +165 -18
- package/dist/chat-kit-pinia.js +1 -1
- package/dist/chat-kit-vue.d.ts +98 -18
- package/dist/chat-kit-vue.js +1 -1
- package/dist/chat-kit.d.ts +213 -20
- package/dist/chat-kit.js +1 -1
- package/dist/chunk-37HOEWMF.js +1 -0
- package/dist/chunk-4KPJTXQN.js +2 -0
- package/dist/chunk-GHZUH7RB.js +7 -0
- package/dist/chunk-MNWNUGIV.js +2 -0
- package/dist/chunk-SLFKCTEX.js +1 -0
- package/dist/chunk-VRGWQLDM.js +1 -0
- package/dist/chunk-XA4W5PWT.js +2 -0
- package/dist/i18n.d.ts +77 -5
- package/dist/i18n.js +1 -1
- package/dist/index.d.ts +292 -21
- package/dist/index.js +1 -1
- package/dist/sdk.d.ts +189 -17
- package/dist/sdk.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-BIFDS3MH.js +0 -1
- package/dist/chunk-D2FFU7J5.js +0 -2
- package/dist/chunk-DVQGXZ6S.js +0 -2
- package/dist/chunk-FQJBDSXT.js +0 -7
- package/dist/chunk-H7AM5DTT.js +0 -1
- package/dist/chunk-O7GQQMEW.js +0 -2
- package/dist/chunk-YUPKU2L7.js +0 -1
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import {ua as ua$1,E,H as H$1,f,g,i,W as W$1,X as X$1,_,$ as $$1,U,V as V$1,J as J$1,K,D,G as G$1,m,e,I,F as F$1,L as L$1,N,P,O,Q as Q$1,R,S,T as T$1,ga as ga$1,ha as ha$1,sb,Fa as Fa$1,Ea as Ea$1,Da as Da$1,ea as ea$1,ia as ia$1,ca as ca$1,Ca as Ca$1,Y as Y$1,Z as Z$1,l,Aa as Aa$1,za as za$1,aa as aa$1,ba as ba$1}from'./chunk-4KPJTXQN.js';import*as V from'node-forge';import {deleteDB,openDB}from'idb';function li(e,n=async t=>{let{createBrowserApiProtocolClient:r}=await import('./browser-YLMJKRLM.js');return r(t)}){let t=null;function r(){if(t!==null)return t;let o=n(e);return t=o,o.catch(()=>{t===o&&(t=null);}),o}return async(o,i)=>(await r())(o,i)}var F=class extends Error{code;constructor(n,t,r){super(t??n,r),this.name="MediaTransferError",this.code=n;}};function ui(e){return e instanceof F?e.code:void 0}var pi=3600*1e3,fi=300*1e3;function le(...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 mi(e){let n=Number(e);if(!(!Number.isFinite(n)||n<=0))return n>1e12?n/1e3:n}function gi(e){let n=e.replace(/\/+$/,"");return n===""?"":/^https?:\/\//i.test(n)?n:`https://${n}`}function ar(e){if(e===null||typeof e!="object")throw new F("credentials-invalid","S3 \u4E0A\u4F20\u51ED\u8BC1\u683C\u5F0F\u65E0\u6548\uFF1A\u56DE\u5305\u4E0D\u662F\u5BF9\u8C61");let n=e,t=le(n.access_key_id,n.accessKeyId),r=le(n.secret_key,n.secretKey,n.secretAccessKey),o=le(n.session_token,n.sessionToken).replace(/\s+/g,""),i=le(n.bucket),a=le(n.region),s=gi(le(n.dns_point,n.dnsPoint)),l=[t===""?"access_key_id":"",r===""?"secret_key":"",o===""?"session_token":"",i===""?"bucket":"",a===""?"region":"",s===""?"dns_point":""].filter(h=>h!=="");if(l.length>0)throw new F("credentials-invalid",`S3 \u4E0A\u4F20\u51ED\u8BC1\u683C\u5F0F\u65E0\u6548\uFF1A\u7F3A\u5C11 ${l.join("\u3001")}`);let c=mi(n.expiration??n.expiresAtSeconds),g=le(n.key_prefix,n.keyPrefix),C=le(n.identity_id,n.identityId);return {accessKeyId:t,secretAccessKey:r,sessionToken:o,bucket:i,region:a,dnsPoint:s,...c===void 0?{}:{expiresAtSeconds:c},...g===""?{}:{keyPrefix:g},...C===""?{}:{identityId:C}}}function yi(e,n){if(n-e.fetchedAtMs>=pi)return false;let{expiresAtSeconds:t}=e.credential;return t===void 0?true:t*1e3-fi>n}function sr(e){let n=new Map,t=new Map;async function r(o,i){let a;try{a=await e({bucket:o,forceRefresh:i});}catch(l){let c=l instanceof Error?l.message:String(l);throw new F("credentials-request-failed",`S3 \u4E0A\u4F20\u51ED\u8BC1\u83B7\u53D6\u5931\u8D25\uFF1Abucket=${o}\uFF1B\u539F\u56E0\uFF1A${c}`,{cause:l})}let s=ar(a);return n.set(o,{credential:s,fetchedAtMs:Date.now()}),s}return {resolve(o,i){if(e===void 0)return Promise.reject(new F("credentials-provider-missing","media upload: \u5BBF\u4E3B\u672A\u6CE8\u5165 getUploadCredentials\uFF0C\u65E0\u6CD5\u7533\u8BF7 S3 \u4E34\u65F6\u51ED\u8BC1"));let a=i?.forceRefresh===true,s=a?void 0:n.get(o);if(s!==void 0&&yi(s,Date.now()))return Promise.resolve(s.credential);n.delete(o);let l=t.get(o);if(l!==void 0)return l;let c=r(o,a).finally(()=>{t.get(o)===c&&t.delete(o);});return t.set(o,c),c}}}function hi(){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 L=class extends Error{code;constructor(n,t,r){super(t??n,r),this.name="VoiceError",this.code=n;}};function sn(e){return e instanceof L?e.code:void 0}function cr(e){switch(e instanceof DOMException||e instanceof Error?e.name:""){case "NotAllowedError":case "SecurityError":case "PermissionDeniedError":return new L("permission-denied","\u9EA6\u514B\u98CE\u6743\u9650\u88AB\u62D2\u7EDD",{cause:e});case "NotFoundError":case "DevicesNotFoundError":return new L("device-not-found","\u672A\u627E\u5230\u53EF\u7528\u9EA6\u514B\u98CE",{cause:e});case "NotReadableError":case "TrackStartError":case "AbortError":return new L("device-busy","\u9EA6\u514B\u98CE\u88AB\u5360\u7528\u6216\u542F\u52A8\u5931\u8D25",{cause:e});default:return new L("device-busy",e instanceof Error?e.message:"\u9EA6\u514B\u98CE\u542F\u52A8\u5931\u8D25",{cause:e})}}var te=16e3,bi=new URL("./speex-runtime.txt",import.meta.url).href,Bn=null,Ci=15e3;async function wi(){document.querySelector('script[data-speex-runtime="true"]')?.remove();let e=new AbortController,n=setTimeout(()=>e.abort(new Error("Speex runtime fetch timeout")),Ci),t;try{t=await fetch(bi,{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 Nn(){let e=typeof window>"u"?void 0:window;return e?.__speexInH5!==void 0?e.__speexInH5:(Bn??=(async()=>{if(e===void 0||typeof document>"u")throw new L("codec-unavailable","Speex \u8FD0\u884C\u65F6\u4EC5\u53EF\u5728\u6D4F\u89C8\u5668\u73AF\u5883\u52A0\u8F7D");if(await wi(),e.__speexInH5===void 0&&e.initAudio?.(),e.__speexInH5===void 0)throw new L("codec-unavailable","Speex \u8FD0\u884C\u65F6\u521D\u59CB\u5316\u5931\u8D25");return e.__speexInH5})().catch(n=>{throw Bn=null,n instanceof L?n:new L("codec-unavailable","Speex \u8FD0\u884C\u65F6\u52A0\u8F7D\u5931\u8D25",{cause:n})}),Bn)}function dr(){Nn().catch(()=>{});}function ue(e,n,t){for(let r=0;r<t.length;r+=1)e.setUint8(n+r,t.charCodeAt(r));}function Pi(e,n){let r=new ArrayBuffer(44+e.length*2),o=new DataView(r);ue(o,0,"RIFF"),o.setUint32(4,36+e.length*2,true),ue(o,8,"WAVE"),ue(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),ue(o,36,"data"),o.setUint32(40,e.length*2,true);let i=44;for(let a=0;a<e.length;a+=1){let s=Math.max(-1,Math.min(1,e[a]??0));o.setInt16(i,s<0?s*32768:s*32767,true),i+=2;}return r}function Kn(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 Ii=40,Gn=120,vi=40,Ln=80;function Si(e,n){let t=Math.min(Math.floor(n*Ii/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 Hn(e,n){if(e.length===0)return e;let t=Math.min(Math.floor(n*Gn/1e3),Math.max(0,e.length-1)),r=t>0?e.subarray(t):e,o=new Float32Array(r),i=Math.min(Math.floor(n*vi/1e3),Math.floor(o.length/2));for(let a=0;a<i;a+=1){let s=a/i;o[a]=(o[a]??0)*s;let l=o.length-1-a;o[l]=(o[l]??0)*s;}return o}function cn(e,n){let r=new ArrayBuffer(44+e.length*2),o=new DataView(r);return ue(o,0,"RIFF"),o.setUint32(4,36+e.length*2,true),ue(o,8,"WAVE"),ue(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),ue(o,36,"data"),o.setUint32(40,e.length*2,true),new Int16Array(r,44).set(e),new Uint8Array(r)}function Ai(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 Mi(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 lr(e,n){let t=await Nn(),r=Math.floor(n*Ln/1e3),o=new Float32Array(r+e.length);o.set(e,r);let i=Pi(o,n);try{return Ai(t.encodeFile(i))}catch(a){throw new L("encode-failed","\u8BED\u97F3\u7F16\u7801\u5931\u8D25",{cause:a})}}async function ur(e){let n=await Nn();try{let[t,r]=n.decodeFile(Mi(e));if(t.length===0)throw new Error("decoded empty pcm");let o=Si(Kn(t),r.rate>0?r.rate:te),i=r.rate>0?r.rate:te;return {samples:o,sampleRate:i,durationMs:Math.round(o.length/i*1e3)}}catch(t){throw t instanceof L?t:new L("decode-failed","\u8BED\u97F3\u89E3\u7801\u5931\u8D25",{cause:t})}}async function pr(e){let n=await ur(e);return {wavData:cn(n.samples,n.sampleRate),durationMs:n.durationMs}}var _i=.5,xi=2;function fr(e){if(typeof e!="number"||!Number.isFinite(e))throw new L("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,_i),xi)}function Ei(e={}){let n=e.cacheMax??8,t={activeId:"",isPlaying:false,loadingId:"",progress:0,currentTimeMs:0,errorIds:new Set,playbackRate:e.playbackRate===void 0?1:fr(e.playbackRate)},r=new Set;function o(){for(let f of r)f(t);}let i=null,a=new Map,s=0,l=false,c=false;function g(f){let P=a.get(f);return P!==void 0&&(a.delete(f),a.set(f,P)),P}function C(f,P){if(l)return URL.revokeObjectURL(P.url),P;let _=a.get(f);if(_!==void 0)return URL.revokeObjectURL(P.url),a.delete(f),a.set(f,_),_;for(a.set(f,P);a.size>n;){let M;for(let E of a.keys())if(E!==t.activeId){M=E;break}if(M===void 0)break;let D=a.get(M);a.delete(M),D!==void 0&&URL.revokeObjectURL(D.url);}return P}function h(f){f.paused||f.pause(),f.removeAttribute("src");try{f.load();}catch{}}function u(f,P){return !l&&f===s&&t.activeId===P}function b(f){f.defaultPlaybackRate=t.playbackRate,f.playbackRate=t.playbackRate;}function v(){if(i!==null)return i;let f=new Audio;return f.preload="auto",b(f),f.addEventListener("timeupdate",()=>{t.activeId!==""&&(t.currentTimeMs=f.currentTime*1e3,t.progress=f.duration>0?Math.min(1,f.currentTime/f.duration):0,o());}),f.addEventListener("ended",()=>{A(),h(f),o();}),f.addEventListener("pause",()=>{t.activeId!==""&&(t.isPlaying=false,o());}),i=f,f}function A(){t.activeId="",t.isPlaying=false,t.progress=0,t.currentTimeMs=0;}function k(){s+=1,c=false,t.loadingId="",A(),i!==null&&h(i),o();}function R(f){t.errorIds=new Set([...t.errorIds,f]);}function x(f){if(!t.errorIds.has(f))return;let P=new Set(t.errorIds);P.delete(f),t.errorIds=P;}async function S(f,P){let _=g(f);if(_!==void 0)return {entry:_};let M;try{M=await P();}catch(D){return {entry:null,error:{code:sn(D),cause:D}}}if(M===null)return {entry:null};try{let{wavData:D,durationMs:E}=await pr(M),U={url:URL.createObjectURL(new Blob([D],{type:"audio/wav"})),durationMs:E};return {entry:C(f,U)}}catch(D){return {entry:null,error:{code:sn(D),cause:D}}}}async function d(f,P){if(l)return;let _=v();if(x(f),t.activeId===f){if(t.isPlaying){_.pause();return}let E=++s;try{await _.play();}catch{if(!u(E,f))return;R(f),o();return}if(!u(E,f))return;t.isPlaying=true,o(),P.onPlayStart?.();return}if(t.loadingId===f)return;k();let M=++s;t.loadingId=f,o();let D=await S(f,P.load);if(M===s){if(t.loadingId="",D.entry===null){R(f),o(),D.error!==void 0&&P.onDecodeError?.(D.error.code,D.error.cause);return}_.src=D.entry.url,b(_),t.activeId=f,t.progress=0,t.currentTimeMs=0,o();try{await _.play();}catch(E){if(!u(M,f))return;A(),h(_),R(f),o(),P.onDecodeError?.(void 0,E);return}u(M,f)&&(t.isPlaying=true,o(),P.onPlayStart?.());}}function m(f,P){i===null||t.activeId!==f||!Number.isFinite(i.duration)||i.duration<=0||(i.currentTime=Math.min(Math.max(P,0),.999)*i.duration);}function w(f){i===null||t.activeId!==f||t.isPlaying&&(c=true,i.pause());}function p(f){if(i===null||t.activeId!==f||!c)return;c=false;let P=++s;i.play().then(()=>{u(P,f)&&(t.isPlaying=true,o());}).catch(()=>{u(P,f)&&(R(f),o());});}function y(f){let P=fr(f);P!==t.playbackRate&&(t.playbackRate=P,i!==null&&b(i),o());}function I(){if(!l){l=true,k();for(let f of a.values())URL.revokeObjectURL(f.url);a.clear(),r.clear(),i=null;}}return {getState:()=>t,subscribe:f=>(r.add(f),()=>r.delete(f)),toggle:d,seek:m,beginScrub:w,endScrub:p,setPlaybackRate:y,stop:k,dispose:I}}function ki(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 Ri(e,n,t){if(e.length===0||n<=0||t<=0)return 0;let r=n/t,o=0,i=0;for(let a=0;a<e.length;a+=1){let s=a*r,l=.2;s<200?l=.15:s<300?l=.4:s<=3400?l=1:s<=6e3&&(l=.45),o+=(e[a]??0)/255*l,i+=l;}return i>0?o/i:0}function mr(e){let n=ki(e.timeDomain),t=Ri(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 Ti=5e3,Fn=15e3,Di=25e3;function ln(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);});})}function Ui(){return {channelCount:1,echoCancellation:true,noiseSuppression:true,autoGainControl:true}}var Oi=50,Bi=.12,Ni=2.6,Ki=.06,Gi=256;function Li(){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 Hi(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 L("audio-context-blocked","AudioContext \u4E0D\u53EF\u7528");let i=t??new r,a=t==null;try{i.state==="suspended"&&await ln(i.resume(),Fn,"audioContext.resume timeout").catch(()=>{});let s=await ln(i.decodeAudioData(await e.arrayBuffer()),Fn,"decodeAudioData timeout"),l=Math.max(1,Math.ceil(s.duration*n)),c=new o(1,l,n),g=c.createBufferSource();return g.buffer=s,g.connect(c.destination),g.start(0),(await ln(c.startRendering(),Fn,"offlineAudioContext.startRendering timeout")).getChannelData(0).slice()}catch(s){throw s instanceof L?s:new L("decode-failed","\u5F55\u97F3\u6BB5\u89E3\u7801\u5931\u8D25",{cause:s})}finally{a&&i.close().catch(()=>{});}}function gr(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 Fi(e={}){if(typeof MediaRecorder>"u")throw new L("no-media-recorder","\u5F53\u524D\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\u5F55\u97F3");let n;if(e.stream!==void 0)n=e.stream;else {if(typeof navigator>"u"||navigator.mediaDevices?.getUserMedia===void 0)throw new L("no-media-devices","\u5F53\u524D\u73AF\u5883\u4E0D\u652F\u6301\u9EA6\u514B\u98CE\u91C7\u96C6");try{n=await navigator.mediaDevices.getUserMedia({audio:Ui()});}catch(f){throw cr(f)}}dr();let t=Li(),r=e.maxDurationMs??6e4,o="recording",i=[],a=0,s=[],l=null,c=null,g=null,C=[],h=0,u=false;function b(){try{let f;try{f=t!==""?new MediaRecorder(n,{mimeType:t}):new MediaRecorder(n);}catch{f=new MediaRecorder(n);}return C=[],f.ondataavailable=P=>{P.data.size>0&&C.push(P.data);},f.start(250),h=Date.now(),f}catch(f){throw f instanceof L?f:new L("device-busy","\u5F55\u97F3\u5668\u542F\u52A8\u5931\u8D25",{cause:f})}}let v=e.amplitude?.intervalMs??Oi,A=e.amplitude?.boost??Ni,k=e.amplitude?.smoothing??Bi,R=e.amplitude?.minVolume??Ki;function x(){let f=Math.floor(r/1e3*te),P=0;for(let M of i)P+=M.length;if(P>f){let M=f,D=[];for(let E of i){if(M<=0)break;E.length<=M?(D.push(E),M-=E.length):(D.push(E.slice(0,M)),M=0);}i.length=0,i.push(...D);}a=Math.min(a,r);let _=Math.max(0,Math.ceil(r/v));s.length>_&&(s.length=_);}async function S(){if(o!=="recording"){e.onMaxDuration?.();return}e.onMaxDuration?.(),o="paused";let f=I().then(()=>x());g=f;try{await f;}catch(P){console.warn("[im-browser] pauseAtMaxDuration settle failed",P);}}let d=setInterval(()=>{!u&&o==="recording"&&p()>=r&&(u=true,S());},250),m=null,w=null;try{let f=window.AudioContext??window.webkitAudioContext;if(f!==void 0){m=new f,m.state==="suspended"&&m.resume().catch(()=>{});let P=m.createMediaStreamSource(n),_=m.createAnalyser();_.fftSize=Gi,_.smoothingTimeConstant=k,P.connect(_);let M=new Uint8Array(_.frequencyBinCount),D=new Uint8Array(_.fftSize),E=new dn;w=setInterval(()=>{if(o!=="recording"||l===null)return;_.getByteFrequencyData(M),_.getByteTimeDomainData(D);let U=mr({timeDomain:D,frequency:M,sampleRate:m.sampleRate,fftSize:_.fftSize,boost:A}),O=E.next(U),N=O<R?0:O;s.push(Math.round(N*255)),e.onAmplitude?.(N);},v);}}catch(f){console.warn("[im-browser] amplitude analyser setup failed",f);}function p(){let f=o==="recording"&&l!==null?Date.now()-h:0;return a+f}function y(){d!==null&&(clearInterval(d),d=null),w!==null&&(clearInterval(w),w=null),m?.close().catch(()=>{}),m=null;for(let f of n.getTracks())f.stop();}function I(){if(c!==null)return c;let f=l;return f===null?Promise.resolve():(l=null,c=(async()=>{await new Promise(M=>{if(f.state==="inactive"){M();return}let D=setTimeout(()=>{console.warn("[im-browser] recorder onstop timed out, settling with received chunks"),M();},Ti);f.onstop=()=>{clearTimeout(D),M();},f.stop();});let P=new Blob(C,{type:f.mimeType||t||"audio/webm"});if(C=[],P.size===0)return;let _=await Hi(P,te,m);_.length!==0&&(i.push(_),a+=_.length/te*1e3);})().finally(()=>{c=null;}),c)}try{l=b();}catch(f){throw o="closed",y(),f}return {getState:()=>o,recordedMs:p,async pause(){o==="recording"&&(o="paused",await I(),(u||a>=r)&&x());},async resume(){o!=="paused"||u||(l=b(),o="recording");},async finish(){if(o==="closed")throw new L("empty-recording","\u5F55\u97F3\u4F1A\u8BDD\u5DF2\u7ED3\u675F");o="closed";let f=async()=>{try{g!==null?await g:await I(),x();}finally{y();}let P=gr(i);if(P.length===0)throw new L("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let _=Hn(P,te);if(_.length===0)throw new L("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let M=Math.min(s.length,Math.ceil(Gn/v));return {data:await lr(_,te),durationMs:Math.round(_.length/te*1e3)+Ln,waveform:s.slice(M),filename:`AUDIO_${Date.now()}.ogg`,mimeType:"audio/ogg"}};try{return await ln(f(),Di,"\u5F55\u97F3\u5B9A\u7A3F\u8D85\u65F6")}catch(P){throw y(),P instanceof L?P:new L("encode-failed","\u5F55\u97F3\u5B9A\u7A3F\u5931\u8D25",{cause:P})}},cancel(){o="closed";let f=l;if(l=null,f!==null&&(f.ondataavailable=null,f.onstop=null,f.state!=="inactive"))try{f.stop();}catch{}i.length=0,y();},async previewWav(){g!==null?await g:c!==null&&await c,x();let f=gr(i),P=Hn(f,te);if(P.length===0)throw new L("empty-recording","\u6682\u65E0\u53EF\u8BD5\u542C\u7684\u5F55\u97F3\u5185\u5BB9");return {wavData:cn(Kn(P),te),durationMs:Math.round(P.length/te*1e3)}}}}function Ie(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 yr(e,n){return e.length===n.length&&e.every((t,r)=>t===n[r])}var re=class extends Error{constructor(n,t){super(n,t),this.name="ChannelKeyError";}};function hr(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 re("channel secret_key \u4E0D\u662F\u5408\u6CD5 Base64");let r=t.replace(/=+$/,""),o=r+"=".repeat((4-r.length%4)%4),i;try{i=atob(o);}catch(c){throw new re("channel secret_key Base64 \u89E3\u7801\u5931\u8D25",{cause:c})}let a=Uint8Array.from(i,c=>c.charCodeAt(0)&255);if(a.length===0)throw new re("channel secret_key Base64 \u89E3\u7801\u7ED3\u679C\u4E3A\u7A7A");let s=new Uint8Array(16);s.set(a.subarray(0,s.length));let l=n.length===16&&/^[\x20-\x7E]+$/.test(n)?Uint8Array.from(n,c=>c.charCodeAt(0)):void 0;return {canonical:s,...l===void 0?{}:{legacyAscii:l},metadata:{channelKeyCharLength:n.length,decodedByteLength:a.length,padByteCount:Math.max(0,16-a.length),legacyAsciiCandidate:l!==void 0}}}function $i(e){let n=new Map,t=new Map,r=new Map,o=new Map,i=Ie(yr);function a(S){return {canonical:S.canonical.slice(),...S.legacyAscii===void 0?{}:{legacyAscii:S.legacyAscii.slice()},metadata:{...S.metadata}}}function s(S){return [{strategy:"canonical-base64-pad",key:S.canonical.slice()},...S.legacyAscii===void 0?[]:[{strategy:"legacy-ascii16",key:S.legacyAscii.slice()}]]}function l(S){n.delete(S),t.delete(S),r.delete(S),o.set(S,(o.get(S)??0)+1);}function c(S){let d=o.get(S)??0,m=(async()=>{try{let w=await e.loadSecretKey(S);if(w===null||w.trim()==="")throw new re(`channel secret_key \u7F3A\u5931\uFF08channelId=${S}\uFF09`);let p=hr(w);return (o.get(S)??0)===d&&n.set(S,a(p)),p}catch(w){let p=w instanceof re?w:new re(`channel secret_key \u52A0\u8F7D\u5931\u8D25\uFF08channelId=${S}\uFF09`,{cause:w});throw e.onError?.(p.message,w),p}})().finally(()=>{t.get(S)===m&&t.delete(S);});return t.set(S,m),m}function g(S,d){let m=t.get(S);if(m!==void 0)return m;i.shouldRenegotiate(S,d.staleKey,n.get(S)?.canonical)&&l(S);}function C(S,d){let m=S.trim();if(m===""){let p=new re("channel id \u4E0D\u80FD\u4E3A\u7A7A");return e.onError?.(p.message),Promise.reject(p)}if(d!==void 0){let p=g(m,d);if(p!==void 0)return p.then(a)}let w=n.get(m);return w!==void 0?Promise.resolve(a(w)):t.get(m)??c(m)}function h(S,d){let m=S.trim();if(m===""){let I=new re("channel id \u4E0D\u80FD\u4E3A\u7A7A");return e.onError?.(I.message),Promise.reject(I)}if(d!==void 0){let I=g(m,d);if(I!==void 0)return I.then(f=>f.canonical.slice())}let w=n.get(m);if(w!==void 0)return Promise.resolve(w.canonical.slice());let p=r.get(m);if(p!==void 0)return p;let y=(t.get(m)??c(m)).then(I=>I.canonical.slice()).finally(()=>{r.get(m)===y&&r.delete(m);});return r.set(m,y),y}function u(S){return n.get(S.trim())?.canonical.slice()??null}async function b(S,d){let m=await C(S,d);return s(m)}function v(S){let d=n.get(S.trim());return d===void 0?[]:s(d)}function A(S){let d=n.get(S.trim());return d===void 0?null:{...d.metadata}}function k(S,d){let m=S.trim();if(m==="")throw new re("channel id \u4E0D\u80FD\u4E3A\u7A7A");let w=hr(d);l(m),i.reset(m),n.set(m,a(w));}function R(S){let d=S.trim();d!==""&&(l(d),i.reset(d));}function x(){let S=new Set([...n.keys(),...t.keys(),...r.keys(),...o.keys()]);for(let d of S)o.set(d,(o.get(d)??0)+1),i.reset(d);n.clear(),t.clear(),r.clear();}return {getChannelKey:h,getCachedChannelKey:u,getChannelKeyCandidates:b,getCachedChannelKeyCandidates:v,getCachedChannelKeyMetadata:A,primeChannelKey:k,clearChannelKey:R,clearAll:x}}function $n(){let e=globalThis.scheduler;return typeof e?.yield=="function"?e.yield():new Promise(n=>setTimeout(n,0))}var qn=2654435769,br=16,ve=8,jn=16,Cr=32;function wr(e){if(e.length<jn)throw new Error(`TEA key \u957F\u5EA6\u4E0D\u8DB3\uFF1A${e.length}\uFF0C\u9700 \u2265 ${jn} \u5B57\u8282`);let n=new DataView(e.buffer,e.byteOffset,jn);return [n.getUint32(0,true),n.getUint32(4,true),n.getUint32(8,true),n.getUint32(12,true)]}function Vn([e,n],[t,r,o,i]){let a=e>>>0,s=n>>>0,l=Math.imul(qn,16)>>>0;for(let c=0;c<br;c++)s=s-(Math.imul(a,16)+o^a+l^(a>>>5)+i)>>>0,a=a-(Math.imul(s,16)+t^s+l^(s>>>5)+r)>>>0,l=l-qn>>>0;return [a,s]}function zn([e,n],[t,r,o,i]){let a=e>>>0,s=n>>>0,l=0;for(let c=0;c<br;c++)l=l+qn>>>0,a=a+(Math.imul(s,16)+t^s+l^(s>>>5)+r)>>>0,s=s+(Math.imul(a,16)+o^a+l^(a>>>5)+i)>>>0;return [a,s]}function Oe(e,n,t,r){let o=wr(n),i=new Uint8Array(e.length),a=Math.floor(e.length/ve),s=r===void 0?a:Math.min(a,Math.floor(r/ve)),l=new DataView(e.buffer,e.byteOffset,e.byteLength),c=new DataView(i.buffer);for(let C=0;C<s;C++){let h=C*ve,[u,b]=t([l.getUint32(h,true),l.getUint32(h+4,true)],o);c.setUint32(h,u,true),c.setUint32(h+4,b,true);}let g=s*ve;return g<e.length&&i.set(e.subarray(g),g),i}function Be(e,n){return Oe(n,e,Vn)}function Ne(e,n){return Oe(n,e,zn)}function Pr(e,n){return Oe(n,e,zn,Cr)}function Ir(e,n){return Oe(n,e,Vn,Cr)}var ji=1024*1024;function Ji(){return $n()}function Jn(e){if(e?.aborted)throw new DOMException("TEA \u5206\u5757\u5904\u7406\u5DF2\u53D6\u6D88","AbortError")}async function Wn(e,n,t,r=ji,o={}){if(!Number.isInteger(r)||r<=0||r%ve!==0)throw new RangeError(`TEA \u5206\u5757\u5927\u5C0F\u5FC5\u987B\u662F ${ve} \u7684\u6B63\u6574\u6570\u500D\uFF1A${r}`);wr(e);let i=t==="encrypt"?zn:Vn,a=o.yieldToMain??Ji,s=n.size,l=[],c=0;for(;c<s;){Jn(o.signal);let g=Math.min(c+r,s),C=new Uint8Array(await n.slice(c,g).arrayBuffer());Jn(o.signal),l.push(new Blob([Oe(C,e,i)])),c=g,o.onProgress?.(c,s),c<s&&await a();}return Jn(o.signal),new Blob(l)}var vr=8,un=16;function qi(e){let n=V.md.md5.create();return n.update(e,"utf8"),n.digest().toHex()}function Ar(e){return new TextEncoder().encode(e)}function Vi(e){let n=e.length;for(;n>0&&e[n-1]===0;)n-=1;return new TextDecoder().decode(e.subarray(0,n))}function zi(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 Wi(e){let n="";for(let t of e)n+=String.fromCharCode(t);return btoa(n)}function Yi(e){let n=Math.ceil(e.length/vr)*vr;if(n===e.length)return e;let t=new Uint8Array(n);return t.set(e),t}function Mr(e,n=qi){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=Ar(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 _r(e,n,t){return Wi(Ne(Mr(n,t),Yi(Ar(e))))}function Qi(e,n,t){return Vi(Be(Mr(n,t),zi(e)))}function Xi(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function Yn(e){let n=e.trim();if(n===""||!n.startsWith("{"))return null;try{return Xi(JSON.parse(n))}catch{return null}}function Zi(e){let n=e.trim(),t=n.indexOf("}");return t>=0?n.slice(0,t+1):n}function xr(e,n,t){let r=Yn(e);if(r!==null)return r;if(e.trim()===""||n.trim()==="")return null;try{let o=Qi(e,n,t);return Yn(o)??Yn(Zi(o))}catch{return null}}var ea="core";var Ke=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 T(e,n,t,r){let o=r!==void 0&&"responseMode"in r&&r.responseMode==="strict",i;try{i=await e(n,{target:ea,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 Ke(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 Ke(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 Er(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 T(e,"/user/encrypt_info/info",t,r)}function na(e){let n=e.trim().replace(/-/g,"+").replace(/_/g,"/"),t=n+"=".repeat((4-n.length%4)%4),r=atob(t),o=new Uint8Array(r.length);for(let i=0;i<r.length;i++)o[i]=r.charCodeAt(i)&255;return o}function ta(e){let n=e.clientType,t=new Map,r=new Map,o=Ie((h,u)=>h===u),i=null,a=null;function s(h,u){e.onError?.(h,u);}function l(){if(i!==null)return Promise.resolve(i);if(a!==null)return a;let h=Promise.resolve().then(()=>e.crypto.generateTempKeyPair()).then(u=>(i=u,u)).finally(()=>{a===h&&(a=null);});return a=h,h}async function c(h){let u;try{u=await l();}catch(k){return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u751F\u6210\u4E34\u65F6 RSA \u5BC6\u94A5\u5931\u8D25\uFF08userId=${h}\uFF09`,k),null}let b;try{b=await Er(e.client,{publicKey:u.publicKeyBase64,clientType:n});}catch(k){return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u8BF7\u6C42\u5F02\u5E38\uFF08userId=${h}\uFF09`,k),null}if(b.data===null)return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u4E1A\u52A1\u5931\u8D25\uFF08userId=${h}\uFF0Ccode=${b.code}\uFF09`),null;let v=b.data.prv_key??b.data.prvKey??"",A=String(b.data.version??"").trim();if(v==="")return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u54CD\u5E94\u7F3A\u5C11 prv_key\uFF08userId=${h}\uFF09`),null;try{let k=e.crypto.rsaDecryptPkcs1({data:na(v),privateKey:u.privateKey}),R=new TextDecoder().decode(k).trim();if(R==="")return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u89E3\u51FA\u7684\u79C1\u94A5\u4E3A\u7A7A\uFF08userId=${h}\uFF09`),null;let x={privateKey:R,version:A};return t.set(h,x),x}catch(k){return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u4E34\u65F6\u79C1\u94A5\u89E3 prv_key \u5931\u8D25\uFF08userId=${h}\uFF09`,k),null}}function g(h,u){let b=h.trim();if(b==="")return Promise.resolve(null);if(u!==void 0){let R=r.get(b);if(R!==void 0)return R;o.shouldRenegotiate(b,u.staleKey,t.get(b)?.privateKey)&&t.delete(b);}let v=t.get(b);if(v!==void 0)return Promise.resolve(v);let A=r.get(b);if(A!==void 0)return A;let k=c(b).finally(()=>{r.get(b)===k&&r.delete(b);});return r.set(b,k),k}function C(h){return t.get(h.trim())??null}return {getUserPrivateKey:g,getCachedPrivateKey:C}}function kr(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 T(e,"/user_group/encrypt_info",t,r)}function ra(e){let n=e.trim().replace(/-/g,"+").replace(/_/g,"/"),t=n+"=".repeat((4-n.length%4)%4),r=atob(t),o=new Uint8Array(r.length);for(let i=0;i<r.length;i++)o[i]=r.charCodeAt(i)&255;return o}function oa(e){let n=e.clientType,t=new Map,r=new Map,o=new Map,i=Ie((u,b)=>u===b),a=null,s=null;function l(){if(a!==null)return Promise.resolve(a);if(s!==null)return s;let u=Promise.resolve().then(()=>e.crypto.generateTempKeyPair()).then(b=>(a=b,b)).finally(()=>{s===u&&(s=null);});return s=u,u}async function c(u){let b=o.get(u)??0,v;try{v=await l();}catch(d){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u751F\u6210\u4E34\u65F6 RSA \u5BC6\u94A5\u5931\u8D25\uFF08groupId=${u}\uFF09`,d),null}let A;try{A=await kr(e.client,{groupId:u,publicKey:v.publicKeyBase64,clientType:n});}catch(d){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u8BF7\u6C42\u5F02\u5E38\uFF08groupId=${u}\uFF09`,d),null}if(A.data===null)return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u4E1A\u52A1\u5931\u8D25\uFF08groupId=${u}\uFF0Ccode=${A.code}\uFF09`),null;let k=A.data,R=String(k.prv_key??k.prvKey??k.private_key??"").trim(),x=String(k.pub_key??k.pubKey??k.public_key??"").trim(),S=String(k.version??"").trim();if(R==="")return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u54CD\u5E94\u7F3A\u5C11 prv_key\uFF08groupId=${u}\uFF09`),null;try{let d=e.crypto.rsaDecryptPkcs1({data:ra(R),privateKey:v.privateKey}),m=new TextDecoder().decode(d).trim();if(m==="")return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u89E3\u51FA\u7684\u7FA4\u79C1\u94A5\u4E3A\u7A7A\uFF08groupId=${u}\uFF09`),null;let w={privateKey:m,publicKey:x,version:S};return (o.get(u)??0)===b&&t.set(u,w),w}catch(d){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u4E34\u65F6\u79C1\u94A5\u89E3 prv_key \u5931\u8D25\uFF08groupId=${u}\uFF09`,d),null}}function g(u,b){let v=u.trim();if(v==="")return Promise.resolve(null);if(b!==void 0){let x=r.get(v);if(x!==void 0)return x;i.shouldRenegotiate(v,b.staleKey,t.get(v)?.privateKey)&&t.delete(v);}let A=t.get(v);if(A!==void 0)return Promise.resolve(A);let k=r.get(v);if(k!==void 0)return k;let R=c(v).finally(()=>{r.get(v)===R&&r.delete(v);});return r.set(v,R),R}function C(u){return t.get(u.trim())??null}function h(u){let b=u.trim();t.delete(b),r.delete(b),o.set(b,(o.get(b)??0)+1),i.reset(b);}return {getGroupKeys:g,getCachedGroupKeys:C,getCachedGroupKeyVersion:u=>t.get(u.trim())?.version??null,clearGroupKeys:h}}async function Ge(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 T(e,"/user/info/other",t,r)).data}function ia(e){let n=e.clientType,t=new Map,r=new Map;async function o(a){try{let l=((await Ge(e.client,{userId:a,clientType:n}))?.public_key??"").trim();return l===""?(e.onError?.(`\u53D6\u5BF9\u7AEF\u516C\u94A5\uFF1A/user/info/other \u65E0 public_key\uFF08userId=${a}\uFF09`),null):(t.set(a,l),l)}catch(s){return e.onError?.(`\u53D6\u5BF9\u7AEF\u516C\u94A5\u8BF7\u6C42\u5F02\u5E38\uFF08userId=${a}\uFF09`,s),null}}function i(a,s){let l=a.trim();if(l==="")return Promise.resolve(null);s?.force===true&&t.delete(l);let c=t.get(l);if(c!==void 0)return Promise.resolve(c);let g=r.get(l);if(g!==void 0)return g;let C=o(l).finally(()=>{r.get(l)===C&&r.delete(l);});return r.set(l,C),C}return {getPeerPublicKey:i}}var me=16;function Rr(e){let n="";for(let t of e)n+=String.fromCharCode(t);return n}function Tr(e){let n=new Uint8Array(e.length);for(let t=0;t<e.length;t++)n[t]=e.charCodeAt(t)&255;return n}function Dr(e){return e.replace(/(.{64})/g,`$1
|
|
2
|
+
`).trim()}function aa(e){return e.replace(/-----BEGIN[^-]+-----/g,"").replace(/-----END[^-]+-----/g,"").replace(/\s+/g,"")}function sa(e){let n=(e??"").trim();if(n==="")throw new Error("RSA \u79C1\u94A5\u4E3A\u7A7A");if(n.includes("-----BEGIN"))return V.pki.privateKeyFromPem(n);let t=n.replace(/\s+/g,""),r=[];try{return V.pki.privateKeyFromAsn1(V.asn1.fromDer(V.util.decode64(t)))}catch(i){r.push(i);}let o=Dr(t);for(let i of ["PRIVATE KEY","RSA PRIVATE KEY"])try{return V.pki.privateKeyFromPem(`-----BEGIN ${i}-----
|
|
3
|
+
${o}
|
|
4
|
+
-----END ${i}-----`)}catch(a){r.push(a);}throw new Error(`RSA \u79C1\u94A5\u89E3\u6790\u5931\u8D25\uFF08\u5DF2\u8BD5 PKCS1-DER / PKCS8-PEM / PKCS1-PEM\uFF09\uFF1A${r[0]instanceof Error?r[0].message:String(r[0])}`)}function Ur(e){let n=sa(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 l=0;l<r.length;l+=t){let c=Math.min(l+t,r.length);try{let g=n.decrypt(Rr(r.subarray(l,c)),"RSAES-PKCS1-V1_5");o.push(Tr(g));}catch(g){let C=g instanceof Error?g.message:String(g);throw new Error(`RSA-PKCS1 \u89E3\u5BC6\u5931\u8D25\uFF08\u5BC6\u6587 ${r.length}B\uFF0C\u5757 ${l}..${c}\uFF0CkeySize ${t}B\uFF0C\u79C1\u94A5 ${n.n.bitLength()}bit\uFF09\uFF1A${C}`)}}let i=o.reduce((l,c)=>l+c.length,0),a=new Uint8Array(i),s=0;for(let l of o)a.set(l,s),s+=l.length;return a}function ca(e){let n=Ur({data:e.secretKey,privateKey:e.privateKey});if(n.length<me)throw new Error(`\u7AEF\u5230\u7AEF\u89E3\u5BC6\u5931\u8D25\uFF1ARSA \u89E3\u51FA\u7684 teaKey \u957F\u5EA6 ${n.length} < ${me}`);return Be(n,e.cipherData)}function da(e){let n=(e??"").trim();if(n==="")throw new Error("RSA \u516C\u94A5\u4E3A\u7A7A");if(n.includes("-----BEGIN"))return V.pki.publicKeyFromPem(n);let t=n.replace(/\s+/g,""),r=[];try{return V.pki.publicKeyFromAsn1(V.asn1.fromDer(V.util.decode64(t)))}catch(i){r.push(i);}let o=Dr(t);for(let i of ["PUBLIC KEY","RSA PUBLIC KEY"])try{return V.pki.publicKeyFromPem(`-----BEGIN ${i}-----
|
|
5
|
+
${o}
|
|
6
|
+
-----END ${i}-----`)}catch(a){r.push(a);}throw new Error(`RSA \u516C\u94A5\u89E3\u6790\u5931\u8D25\uFF08\u5DF2\u8BD5 SPKI-DER / SPKI-PEM / PKCS1-PEM\uFF09\uFF1A${r[0]instanceof Error?r[0].message:String(r[0])}`)}function Or(){let e=new Uint8Array(me),n=new Uint8Array(1);for(let t=0;t<me;t++){let r=0;do globalThis.crypto.getRandomValues(n),r=n[0]??0;while(r===0);e[t]=r;}return e}function la(e,n){if(n.length===0)throw new Error("RSA \u52A0\u5BC6\uFF1A\u660E\u6587\u4E3A\u7A7A");let t=da(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 l=0;l<n.length;l+=r){let c=Math.min(l+r,n.length),g=t.encrypt(Rr(n.subarray(l,c)),"RSAES-PKCS1-V1_5");o.push(Tr(g));}let i=o.reduce((l,c)=>l+c.length,0),a=new Uint8Array(i),s=0;for(let l of o)a.set(l,s),s+=l.length;return a}function ua(e){let n=e.teaKey??Or();if(n.length<me)throw new Error(`\u7AEF\u5230\u7AEF\u52A0\u5BC6\u5931\u8D25\uFF1AteaKey \u957F\u5EA6 ${n.length} < ${me}`);let t=n.subarray(0,me),r=Ne(t,e.plain);return {secretKey:la(e.publicKey,t),cipherData:r}}function pa(e){return Be(e.teaKey,e.cipherData)}function fa(e){return Ne(e.teaKey,e.plain)}function ma(e){return Wn(e.teaKey,e.plain,"encrypt",void 0,e.signal===void 0?{}:{signal:e.signal})}function ga(e){return Wn(e.teaKey,e.cipherData,"decrypt",void 0,e.signal===void 0?{}:{signal:e.signal})}function ya(e){return Pr(e.teaKey,e.plain)}function ha(e){return Ir(e.teaKey,e.cipherData)}function ba(){return new Promise((e,n)=>{V.pki.rsa.generateKeyPair({bits:2048,e:65537,workers:-1},(t,r)=>{if(t){n(t);return}e({publicKeyBase64:aa(V.pki.publicKeyToPem(r.publicKey)),privateKey:V.pki.privateKeyToPem(r.privateKey)});});})}function Ca(){return {decryptEndToEnd:ca,encryptEndToEnd:ua,decryptSymmetric:pa,encryptSymmetric:fa,encryptSymmetricChunked:ma,decryptSymmetricChunked:ga,encryptFileSimple:ya,decryptFileSimple:ha,randomTeaKey:Or,generateTempKeyPair:ba,rsaDecryptPkcs1:Ur}}function Qn(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function Le(e,n){return T(e,"/friend/apply/list_paginated",{type:n.listType,page:n.page,page_size:n.pageSize},Qn(n.clientType,"GET"))}function He(e,n){return T(e,"/friend/apply/agree",{id:n.applicationId},Qn(n.clientType,"POST"))}function Fe(e,n){return T(e,"/friend/apply/del",{id:n.applicationId},Qn(n.clientType,"POST"))}var Br=50,Nr=20,Kr=1,Xn=2,Zn=3,wa=4,Pa=5,Gr=0,Ia=1,va=2;function Sa(e){switch(e){case Gr:case Ia:case va:return e;default:return}}var Se=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},W=class extends Error{constructor(n){super(`application \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ApplicationMappingError";}};function H(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Lr(e){let n=H(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 Hr(e){let n=H(e.status);if(e.status===void 0||n==="")return true;let t=Number(n),r=Sa(t);if(r===void 0)throw new W(`\u672A\u77E5\u7533\u8BF7\u72B6\u6001\uFF1A${n}`);return r===Gr}function Aa(e){let n=H(e.type);if(n==="")return true;if(Number(n)!==Kr)throw new W(`\u8054\u7CFB\u4EBA\u7533\u8BF7\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${n}`);return true}function Ma(e){let n=Number(H(e.type));if(n!==Xn&&n!==Zn&&n!==wa&&n!==Pa)throw new W(`GROUP/CHANNEL \u6DF7\u5408\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${H(e.type)||"<empty>"}`);return n}function pn(e){if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>Br)throw new W(`limit \u5FC5\u987B\u4E3A 1-${Br}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit};if(!/^[1-9]\d*$/.test(e.cursor))throw new W("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let n=Number(e.cursor);if(!Number.isSafeInteger(n))throw new W("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {page:n,pageSize:e.limit}}function Fr(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 W("data.list \u5FC5\u987B\u662F\u6570\u7EC4\uFF0C\u6216\u5728 count=0 \u65F6\u4E3A null")}function et(e){let n=e.trim();if(n==="")throw new W("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");return n}function _a(e){let n=et(H(e.id)||H(e.aid)),t=H(e.user_id)||H(e.user_info?.user_id),r=H(e.nick_name??e.nickname??e.name)||H(e.user_info?.nick_name??e.user_info?.nickname??e.user_info?.name);if(t===""||r==="")throw new W(`\u8054\u7CFB\u4EBA\u7533\u8BF7\u4EBA\u8EAB\u4EFD\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let o=H(e.head_img_url??e.avatar)||H(e.user_info?.head_img_url??e.user_info?.avatar),i=H(e.user_info?.mid),a=Lr(e.create_time??e.createTime??e.update_version);return {applicationId:n,applicantId:t,applicantName:r,...o===""?{}:{applicantAvatar:o},...i===""?{}:{applicantDisplayId:i},message:H(e.remarks??e.introduce_self),...a===void 0?{}:{createdAt:a}}}function xa(e){let n=et(H(e.id)||H(e.aid)),t=H(e.group_id)||H(e.group_info?.group_id);if(t==="")throw new W(`GROUP id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let r=H(e.user_id)||H(e.user_info?.user_id),o=H(e.nick_name??e.nickname??e.name)||H(e.user_info?.nick_name??e.user_info?.nickname??e.user_info?.name);if(r===""||o==="")throw new W(`GROUP \u7533\u8BF7\u4EBA\u6216\u9080\u8BF7\u4EBA\u8EAB\u4EFD\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let i=H(e.head_img_url??e.avatar)||H(e.user_info?.head_img_url??e.user_info?.avatar),a=H(e.user_info?.mid),s=H(e.group_info?.name??e.group_info?.group_name);if(s==="")throw new W(`GROUP \u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let l=H(e.group_info?.head_img_url??e.group_info?.avatar),c=Lr(e.create_time??e.createTime??e.update_version);return {applicationId:n,groupId:t,kind:Number(e.type)===Zn?"invite":"request",actor:{id:r,name:o,...i===""?{}:{avatarUrl:i},...a===""?{}:{displayId:a}},target:{id:t,name:s,...l===""?{}:{avatarUrl:l}},message:H(e.remarks??e.introduce_self),...c===void 0?{}:{createdAt:c}}}async function fn(e,n,t){let r=await t(e.client,{applicationId:et(n),clientType:e.clientType});if(!r.ok)throw new Se(r.code,r.message)}function Ea(e){async function n(t){let{pageSize:r}=pn(t),{page:o}=pn(t);for(let i=0;i<Nr;i+=1){let a=await Le(e.client,{listType:Kr,page:o,pageSize:r,clientType:e.clientType});if(!a.ok)throw new Se(a.code,a.message);let s=Fr(a.data),l=s.filter(C=>Aa(C)&&Hr(C)).map(_a),c=s.length<r,g=o+1;if(l.length>0||c)return {items:l,exhausted:c,...c?{}:{nextCursor:String(g)}};o=g;}return {items:[],exhausted:false,nextCursor:String(o)}}return {listPendingApplications:n,acceptApplication:t=>fn(e,t,He),ignoreApplication:t=>fn(e,t,Fe)}}function ka(e){async function n(t){let{pageSize:r}=pn(t),{page:o}=pn(t);for(let i=0;i<Nr;i+=1){let a=await Le(e.client,{listType:Xn,page:o,pageSize:r,clientType:e.clientType});if(!a.ok)throw new Se(a.code,a.message);let s=Fr(a.data),l=s.filter(C=>{let h=Ma(C);return (h===Xn||h===Zn)&&Hr(C)}).map(xa),c=s.length<r,g=o+1;if(l.length>0||c)return {items:l,exhausted:c,...c?{}:{nextCursor:String(g)}};o=g;}return {items:[],exhausted:false,nextCursor:String(o)}}return {listPendingApplications:n,acceptApplication:t=>fn(e,t,He),ignoreApplication:t=>fn(e,t,Fe)}}function G(e){let n=typeof e=="string"||typeof e=="number"?String(e).trim():"";return n===""?void 0:n}function Ra(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 Ta(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 Da(e){let n=Number(e.product_id),t=Ra(e.is_dynamic);return {...Ta(e.config_type),...G(e.appid)===void 0?{}:{appId:G(e.appid)},...Number.isInteger(n)?{productId:n}:{},...G(e.domain)===void 0?{}:{domain:G(e.domain)},...G(e.suffix_address)===void 0?{}:{suffixAddress:G(e.suffix_address)},...G(e.developer_id)===void 0?{}:{developerId:G(e.developer_id)},...G(e.introduction)===void 0?{}:{introduction:G(e.introduction)},...G(e.icon)===void 0?{}:{icon:G(e.icon)},...G(e.icon_small)===void 0?{}:{iconSmall:G(e.icon_small)},...G(e.icon_medium)===void 0?{}:{iconMedium:G(e.icon_medium)},...G(e.icon_large)===void 0?{}:{iconLarge:G(e.icon_large)},...t===void 0?{}:{isDynamic:t},...G(e.lang_types)===void 0?{}:{langTypes:G(e.lang_types)},...G(e.currency_types)===void 0?{}:{currencyTypes:G(e.currency_types)},...G(e.simple_chinese_name)===void 0?{}:{nameZhHans:G(e.simple_chinese_name)},...G(e.unsimplified_chinese_name)===void 0?{}:{nameZhHant:G(e.unsimplified_chinese_name)},...G(e.english_name)===void 0?{}:{nameEn:G(e.english_name)},...G(e.vietnamese_name)===void 0?{}:{nameVi:G(e.vietnamese_name)},...G(e.thai_name)===void 0?{}:{nameTh:G(e.thai_name)},...G(e.h5_url)===void 0?{}:{h5Url:G(e.h5_url)}}}function $r(e,n){return Array.isArray(e.mini_program_rel_list)?e.mini_program_rel_list.filter(t=>t!==null&&typeof t=="object").map(t=>Da(t)):n.source==="info"?[]:void 0}function jr(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function Jr(e,n){return T(e,"/user_radio/list",{user_id:n.userId,update_version:n.updateVersion,page:n.page,page_size:n.pageSize},jr(n.clientType,"GET"))}function qr(e,n){return T(e,"/user_radio/info",{radio_id:n.channelId},jr(n.clientType,"POST"))}var Vr=500,$e=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},ae=class extends Error{constructor(n){super(`CHANNEL profile \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelProfileMappingError";}};function zr(e,n){let t=typeof e=="string"||typeof e=="number"?String(e).trim():"";if(t==="")throw new ae(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function ge(e){let n=typeof e=="string"||typeof e=="number"?String(e).trim():"";return n===""?void 0:n}function Ae(e){return Number(e)===1}function Ua(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 Oa(e,n){return Number(e)===1?"member":Number(e)===9?"admin":Number(e)===10?"owner":n===false?"guest":"unknown"}function Ba(e){let n=e.is_in===void 0?void 0:Ae(e.is_in),t=Ae(e.radio_user?.is_del),r=Ae(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 Na(e,n,t){let r=ge(e.radio_user?.user_id),o=e.radio_setting?.un_speaking_user_ids,i=ge(e.radio_setting?.un_speaking_period);return {role:n,baseState:t,resolvedState:t,allMembersMuted:Ae(e.radio_setting?.is_unspeeking_all),currentUserMuted:r!==void 0&&Array.isArray(o)&&o.map(String).includes(r),...i===void 0?{}:{mutePeriod:i}}}function Ka(e){if(e!=null)return Number(e)===1?"standard":Number(e)===2?"competition":"unknown"}function Ga(e){let n=ge(e);return n!==void 0&&/^\d+$/.test(n)?n.replace(/^0+(?=\d)/,""):void 0}function La(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 Wr(e,n,t){let r=zr(e.radio_id??e.id,"id"),o=zr(e.name,"name"),i=e.is_in===void 0?void 0:Ae(e.is_in),a=Oa(e.radio_user?.role_id,i),s=Ba(e),l=Na(e,a,s),c=Aa$1({channelState:s,snapshot:l,nowMs:n}),g={...l,resolvedState:c.channelState},C=Ga(e.update_version),h=ge(e.head_img_url),u=ge(e.desc),b=ge(e.user_id),v=Number(e.total_users),A=Ka(e.type),k=Ua(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,S=ge(e.invite_code),d=$r(e,{source:t});return {id:r,name:o,...h===void 0?{}:{avatar:h},...u===void 0?{}:{description:u},...b===void 0?{}:{ownerId:b},...Number.isFinite(v)&&v>=0?{memberCount:v}:{},...x===void 0?{}:{verifyType:x},...S===void 0?{}:{inviteCode:S},role:a,permissions:c.permissions,channelState:c.channelState,allMembersMuted:g.allMembersMuted,...k===void 0?{}:{memberPrivateChatDisabled:k},accessSnapshot:g,...e.radio_user?.is_undisturb===void 0?{}:{muted:Ae(e.radio_user.is_undisturb)},...A===void 0?{}:{channelKind:A},...C===void 0?{}:{updateVersion:C},...d===void 0?{}:{miniProgramRels:d}}}function Yr(e){return {...e,updatedAt:Date.now()}}function Qr(e,n){if(e.accessSnapshot===void 0)return {...e,permissions:za$1(e.role,e.channelState)};let t=Aa$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}=Qr(e,n);return r}function Ha(e){let n=new Map,t=new Map,r=new Map,o="0",i=false,a=null,s=0,l=null,c=0;function g(){if(i)return Promise.resolve();if(a!==null)return a;let u=s;return a=(async()=>{if(e.storage!==void 0){let[b,v]=await Promise.all([e.storage.getChannelProfiles(),e.storage.getChannelListVersion()]);if(u!==s)return;for(let A of b)n.set(A.id,Qr(A,e.now?.()??Date.now()));o=/^\d+$/.test(v)?v:"0";}i=true;})().finally(()=>{a=null;}),a}function C(u){if(u?.forceRefresh!==true&&l!==null)return l;let b=++c,v=(async()=>{await g();let A=(await e.getUserId()).trim();if(A==="")throw new ae("user_id \u4E0D\u80FD\u4E3A\u7A7A");let k=u?.forceRefresh===true?"0":o,R=[];for(let S=1;;S+=1){let d=await Jr(e.client,{userId:A,updateVersion:k,page:S,pageSize:Vr,clientType:e.clientType});if(!d.ok)throw new $e(d.code,d.message);if(d.data===null)break;if(!Array.isArray(d.data))throw new ae("list data \u5FC5\u987B\u662F\u6570\u7EC4");let m=e.now?.()??Date.now(),w=d.data.map(p=>Wr(p,m,"list"));if(R.push(...w),w.length<Vr)break}if(b!==c)return [...n.values()].map(S=>nt(S,e.now?.()??Date.now()));let x=o;for(let S of R)n.set(S.id,Yr(S)),S.updateVersion!==void 0&&(x=La(x,S.updateVersion));return o=x,e.storage!==void 0&&(await e.storage.saveChannelProfiles([...n.values()]),await e.storage.saveChannelListVersion(o)),[...n.values()].map(S=>nt(S,e.now?.()??Date.now()))})();return l=v,v.finally(()=>{l===v&&(l=null);}).catch(()=>{}),v}function h(u,b){let v=u.trim();if(v==="")return Promise.reject(new ae("channel id \u4E0D\u80FD\u4E3A\u7A7A"));let A=b?.forceRefresh===true;if(!A){let x=t.get(v);if(x!==void 0)return x}let k=(r.get(v)??0)+1;A&&r.set(v,k);let R=(async()=>{await g();let x=n.get(v);if(!A&&x!==void 0&&x.miniProgramRels!==void 0)return nt(x,e.now?.()??Date.now());let S=await qr(e.client,{channelId:v,clientType:e.clientType});if(!S.ok)throw new $e(S.code,S.message);if(S.data===null||S.data===void 0)throw new ae("info data \u4E0D\u80FD\u4E3A\u7A7A");let d=Wr(S.data,e.now?.()??Date.now(),"info");if(d.id!==v)throw new ae(`info id \u4E0D\u5339\u914D\uFF1A\u8BF7\u6C42 ${v}\uFF0C\u54CD\u5E94 ${d.id}`);if((r.get(v)??k)===k){let m=Yr(d);n.set(v,m),await e.storage?.saveChannelProfiles([m]);}return d})().finally(()=>{t.get(v)===R&&t.delete(v);});return r.set(v,k),t.set(v,R),R}return {listProfiles:C,getProfile:h,clearCache(){s+=1,c+=1;for(let u of new Set([...n.keys(),...t.keys(),...r.keys()]))r.set(u,(r.get(u)??0)+1);n.clear(),t.clear(),l=null,o="0",i=true,a=null;}}}function Xr(e,n){return Le(e,{listType:2,page:n.page,pageSize:n.pageSize,clientType:n.clientType})}function Zr(e,n){return He(e,n)}function eo(e,n){return Fe(e,n)}var Fa=20,no=50,$a=20,ja=2,Ja=3,ro=4,qa=5,oo=0,Va=1,za=2;function Wa(e){switch(e){case oo:case Va:case za:return e;default:return}}var je=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},Q=class extends Error{constructor(n){super(`CHANNEL join application \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelJoinApplicationMappingError";}};function $(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Ya(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 Qa(e){let n=$(e.status);if(e.status===void 0||n==="")return true;let t=Number(n),r=Wa(t);if(r===void 0)throw new Q(`\u672A\u77E5\u7533\u8BF7\u72B6\u6001\uFF1A${n}`);return r===oo}function Xa(e){let n=Number($(e.type));if(n!==ja&&n!==Ja&&n!==ro&&n!==qa)throw new Q(`GROUP/CHANNEL \u6DF7\u5408\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${$(e.type)||"<empty>"}`);return n}function Za(e){let n=$(e.id)||$(e.aid),t=$(e.user_id)||$(e.user_info?.user_id),r=e.radio_info??e.channel_info,o=$(e.radio_id)||$(e.channel_id)||$(r?.radio_id)||$(r?.channel_id);if(n==="")throw new Q("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");if(t==="")throw new Q(`\u7533\u8BF7\u4EBA id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);if(o==="")throw new Q(`CHANNEL id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let i=$(e.user_info?.nick_name)||$(e.user_info?.nickname)||$(e.user_info?.name)||t,a=$(e.user_info?.head_img_url)||$(e.user_info?.avatar),s=$(e.user_info?.mid),l=$(r?.name)||$(r?.radio_name)||$(r?.channel_name)||o,c=$(r?.head_img_url)||$(r?.avatar),g=Ya(e.create_time??e.createTime);return {applicationId:n,applicantId:t,applicantName:i,...a===""?{}:{applicantAvatar:a},...s===""?{}:{applicantDisplayId:s},channelId:o,channelName:l,...c===""?{}:{channelAvatar:c},message:$(e.remarks)||$(e.introduce_self),...g===void 0?{}:{createdAt:g}}}function to(e){if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>no)throw new Q(`limit \u5FC5\u987B\u4E3A 1-${no}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit||Fa};if(!/^[1-9]\d*$/.test(e.cursor))throw new Q("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let n=Number(e.cursor);if(!Number.isSafeInteger(n))throw new Q("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {page:n,pageSize:e.limit}}function es(e){if(e!=null&&Array.isArray(e.list))return e.list;let n=e?.count??e?.total,t=n===0||typeof n=="string"&&/^0+$/.test(n.trim());if(e?.list===null&&t)return [];throw new Q("data.list \u5FC5\u987B\u662F\u6570\u7EC4\uFF0C\u6216\u5728 count=0 \u65F6\u4E3A null")}function ns(e){let n=e.trim();if(n==="")throw new Q("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");return n}function ts(e){async function n(r){let{pageSize:o}=to(r),{page:i}=to(r);for(let a=0;a<$a;a+=1){let s=await Xr(e.client,{page:i,pageSize:o,clientType:e.clientType});if(!s.ok)throw new je(s.code,s.message);let l=es(s.data),c=l.filter(h=>Xa(h)===ro&&Qa(h)).map(Za),g=l.length<o,C=i+1;if(c.length>0||g)return {items:c,exhausted:g,...g?{}:{nextCursor:String(C)}};i=C;}return {items:[],exhausted:false,nextCursor:String(i)}}async function t(r,o){let i=await o(e.client,{applicationId:ns(r),clientType:e.clientType});if(!i.ok)throw new je(i.code,i.message)}return {listJoinApplications:n,acceptJoinApplication:r=>t(r,Zr),ignoreJoinApplication:r=>t(r,eo)}}function mn(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function tt(e,n){return T(e,"/user_radio/users",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},mn(n.clientType,"GET"))}function rt(e,n){return T(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"},mn(n.clientType,"POST"))}function io(e,n){return T(e,"/user_radio/admins",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},mn(n.clientType,"GET"))}function ao(e,n){return T(e,"/user_radio/user/infos",{radio_id:n.channelId,user_ids:n.userIds.join(",")},mn(n.clientType,"POST"))}var gn=18,rs=12,os=300*1e3,is=32,Je=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},J=class extends Error{constructor(n){super(`CHANNEL member \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelMemberMappingError";}};function se(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function as(e){return Number(e)===1?"member":Number(e)===9?"admin":Number(e)===10?"owner":"unknown"}function ss(e){let n=se(e);return /^\d+$/.test(n)?n.replace(/^0+(?=\d)/,""):void 0}function ot(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 so(e,n){let t=se(e.radio_id);if(t==="")throw new J("radio_id \u4E0D\u80FD\u4E3A\u7A7A");if(t!==n)throw new J(`\u6210\u5458\u9891\u9053 ${t} \u4E0E\u8BF7\u6C42\u9891\u9053 ${n} \u4E0D\u4E00\u81F4`);let r=se(e.user_id)||se(e.user_info?.user_id);if(r==="")throw new J("user_id \u4E0D\u80FD\u4E3A\u7A7A");if(e.is_master!==void 0){let c=Number(e.is_master);if(c!==0&&c!==1)throw new J(`is_master \u975E\u6CD5\uFF1A${se(e.is_master)}`)}let o=se(e.nick_name),i=se(e.user_info?.nick_name)||se(e.user_info?.name),a=se(e.user_info?.head_img_url),s=ss(e.update_version),l=Number(e.join_type);return {userId:r,...o===""?{}:{nickname:o},displayName:o||i||r,...a===""?{}:{avatar:a},role:as(e.role_id),...Number.isInteger(l)?{joinType:l}:{},...s===void 0?{}:{updateVersion:s}}}function cs(e){if(e.channelId.trim()==="")throw new J("channelId \u4E0D\u80FD\u4E3A\u7A7A");if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>gn)throw new J(`limit \u5FC5\u987B\u4E3A 1-${gn}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit};if(!/^[1-9]\d*$/.test(e.cursor))throw new J("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let t=Number(e.cursor);if(!Number.isSafeInteger(t))throw new J("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {page:t,pageSize:e.limit}}function co(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 ds(e){let n=e.now??(()=>Date.now()),t=e.isActive??(()=>true),r=e.cacheTtlMs??os,o=new Map,i=new Map,a=new Map,s=new Map,l=new Map,c=new Set,g=new Set,C=(p,y)=>`${p}:${y}`;function h(p){let y=l.get(p);return y!==void 0?y:(l.set(p,0),0)}function u(p){let y=p.trim();if(y==="")throw new J("channelId \u4E0D\u80FD\u4E3A\u7A7A");return y}function b(p){for(i.delete(p.channelId),i.set(p.channelId,p);i.size>is;){let y=i.keys().next().value;if(y===void 0)break;i.delete(y);}}function v(p){let y=i.get(p);if(y!==void 0)return b(y),Promise.resolve(y);if(g.has(p)||e.storage?.getChannelMemberSnapshot===void 0)return Promise.resolve(null);let I=a.get(p);if(I!==void 0)return I;let f=h(p),P=e.storage.getChannelMemberSnapshot(p).then(_=>!t()||_===null||_.channelId!==p||f!==h(p)||g.has(p)?null:(b(_),_)).finally(()=>{a.get(p)===P&&a.delete(p);});return a.set(p,P),P}function A(p,y){let I=p.map(P=>P.userId),f=new Map(p.map(P=>[P.userId,P]));for(let P of y){f.has(P.userId)||I.push(P.userId);let _=f.get(P.userId);(_===void 0||ot(P.updateVersion,_.updateVersion)>=0)&&f.set(P.userId,P);}return I.map(P=>f.get(P))}async function k(p,y){let I=await ea$1(y);return p.filter(f=>I.match(f.displayName)!==null||I.match(f.userId,{pinyin:false})!==null)}async function R(p,y,I={}){if(!t()||y!==h(p.channelId))return;let f=p.channelId,P=g.has(f),_=I.allowPersistentRebuild===true&&P&&e.storage?.deleteChannelMemberSnapshot===void 0&&e.storage?.saveChannelMemberSnapshot!==void 0;(!P||_)&&await e.storage?.saveChannelMemberSnapshot?.(p),t()&&y===h(f)&&(b(p),I.allowPersistentRebuild===true&&(!P||e.storage?.deleteChannelMemberSnapshot===void 0)&&g.delete(f));}async function x(p,y,I,f,P=false,_){let M=await v(p);if(!t()||I!==h(p))return;let D=n(),E=_!==void 0&&M?.nextCursor===_,U=P&&M!==null&&!E,O=f!==void 0&&!U?f.nextCursor:M?.nextCursor,N={channelId:p,items:A(M?.items??[],y),...O===void 0?{}:{nextCursor:O},exhausted:U?M.exhausted:f?.exhausted??M?.exhausted??false,updatedAt:D};await R(N,I);}async function S(p,y,I){if(!t()||I!==h(p))return [...y];let f=n(),P=f+r,_=[],M=[],D=new Map;for(let E of y){let U=C(p,E.userId),O=o.get(U)?.member;if(O!==void 0&&ot(E.updateVersion,O.updateVersion)<0){M.push(O);continue}_.push({channelId:p,...E,updatedAt:f}),M.push(E),D.set(U,{member:E,expiresAt:P});}if(_.length>0&&t()&&I===h(p)&&!c.has(p)&&(await e.storage?.saveChannelMembers?.(_),e.storage?.getChannelMembers!==void 0&&t()&&I===h(p))){let E=await e.storage.getChannelMembers(p,_.map(O=>O.userId)),U=new Map(E.map(O=>{let{channelId:N,updatedAt:B,...ne}=O;return [ne.userId,{member:ne,updatedAt:B}]}));for(let O=0;O<M.length;O+=1){let N=M[O];if(N===void 0)continue;let B=U.get(N.userId);B===void 0||ot(B.member.updateVersion,N.updateVersion)<=0||(M[O]=B.member,D.set(C(p,N.userId),{member:B.member,expiresAt:B.updatedAt+r}));}}if(t()&&I===h(p))for(let[E,U]of D)o.set(E,U);return M}async function d(p,y){let I=u(p.channelId),{page:f,pageSize:P}=cs({...p,channelId:I}),_=h(I),M=await y(I,f,P);if(!M.ok)throw new Je(M.code,M.message);if(M.data!==null&&!Array.isArray(M.data))throw new J("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let D=co((M.data??[]).map(O=>so(O,I))),E=await S(I,D,_),U=(M.data??[]).length<P;return {items:E,exhausted:U,...U?{}:{nextCursor:String(f+1)}}}function m(p){let y=u(p),I=s.get(y);if(I!==void 0)return I;let f=h(y),P=(async()=>{let _,M=false,D=[];for(let U=0;U<rs&&!M;U+=1){let O=await d({channelId:y,limit:gn,..._===void 0?{}:{cursor:_}},(N,B,ne)=>tt(e.client,{channelId:N,page:B,pageSize:ne,clientType:e.clientType}));if(!t()||f!==h(y))throw new J("\u6210\u5458\u5FEB\u7167\u9884\u53D6\u5DF2\u56E0\u6210\u5458\u53D8\u5316\u5931\u6548");D=A(D,O.items),_=O.nextCursor,M=O.exhausted;}let E={channelId:y,items:D,..._===void 0?{}:{nextCursor:_},exhausted:M,updatedAt:n()};return await R(E,f,{allowPersistentRebuild:true}),{items:E.items,...E.nextCursor===void 0?{}:{nextCursor:E.nextCursor},exhausted:E.exhausted}})().finally(()=>{s.get(y)===P&&s.delete(y);});return s.set(y,P),P}async function w(p){let y=u(p),I=h(y)+1;l.set(y,I),c.add(y),g.add(y),i.delete(y),a.delete(y),s.delete(y);let f=`${y}:`;for(let P of o.keys())P.startsWith(f)&&o.delete(P);e.storage?.deleteChannelMembers===void 0&&e.storage?.deleteChannelMemberSnapshot===void 0||(await Promise.all([e.storage.deleteChannelMembers?.(y),e.storage.deleteChannelMemberSnapshot?.(y)]),I===h(y)&&(e.storage?.deleteChannelMembers!==void 0&&c.delete(y),e.storage?.deleteChannelMemberSnapshot!==void 0&&g.delete(y)));}return {async prefetchMembers(p){let y=u(p),I=await v(y),f=g.has(y);I!==null&&!f&&I.updatedAt+r>n()||await m(y);},async getCachedMembers(p){let y=u(p.channelId),I=await v(y);if(I===null)return null;let f=p.query?.trim()??"";return f===""&&g.has(y)?null:f===""?{items:[...I.items],...I.nextCursor===void 0?{}:{nextCursor:I.nextCursor},exhausted:I.exhausted}:{items:await k(I.items,f),exhausted:true}},async refreshMembers(p){let y=u(p.channelId),I=p.query?.trim()??"";if(I==="")return m(y);let f=h(y),[P,_]=await Promise.all([d({channelId:y,query:I,limit:gn},(D,E,U)=>rt(e.client,{channelId:D,query:I,page:E,pageSize:U,updateVersion:"0",clientType:e.clientType})),v(y)]),M=_===null?[]:await k(_.items,I);return await x(y,P.items,f),{...P,items:A(P.items,M)}},async listMembers(p){let y=u(p.channelId),I={...p,channelId:y},f=h(y),P=await d(I,(_,M,D)=>tt(e.client,{channelId:_,page:M,pageSize:D,clientType:e.clientType}));return await x(y,P.items,f,P,I.cursor!==void 0,I.cursor),P},async searchMembers(p){let y=p.query.trim();if(y==="")return Promise.reject(new J("\u641C\u7D22\u5173\u952E\u8BCD\u4E0D\u80FD\u4E3A\u7A7A"));let I=u(p.channelId),f={...p,channelId:I},P=h(I),_=await d(f,(M,D,E)=>rt(e.client,{channelId:M,query:y,page:D,pageSize:E,updateVersion:"0",clientType:e.clientType}));return await x(I,_.items,P),_},listAdmins:p=>d(p,(y,I,f)=>io(e.client,{channelId:y,page:I,pageSize:f,clientType:e.clientType})),async getMembersByIds(p,y,I){let f=p.trim();if(f==="")throw new J("channelId \u4E0D\u80FD\u4E3A\u7A7A");let P=[...new Set(y.map(E=>E.trim()).filter(Boolean))];if(P.length===0)return [];let _=I?.forceRefresh===true,M=new Map,D=[];for(let E of P){let U=o.get(C(f,E));!_&&U!==void 0&&U.expiresAt>n()?M.set(E,U.member):D.push(E);}if(!_&&D.length>0&&!c.has(f)&&e.storage?.getChannelMembers!==void 0){let E=h(f),U=await e.storage.getChannelMembers(f,D);if(t()&&E===h(f))for(let{channelId:O,updatedAt:N,...B}of U)O===f&&(o.set(C(f,B.userId),{member:B,expiresAt:N+r}),N+r>n()&&M.set(B.userId,B));D=D.filter(O=>!M.has(O));}if(!t())return P.flatMap(E=>M.has(E)?[M.get(E)]:[]);if(D.length>0){let E=h(f),U=await ao(e.client,{channelId:f,userIds:D,clientType:e.clientType});if(!U.ok)throw new Je(U.code,U.message);if(U.data!==null&&!Array.isArray(U.data))throw new J("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let O=co((U.data??[]).map(Pe=>so(Pe,f))),N=D.filter(Pe=>!O.some(di=>di.userId===Pe)),B=_&&N.length>0&&E===h(f),ne;B?(await w(f),ne=O):ne=await S(f,O,E);for(let Pe of ne)M.set(Pe.userId,Pe);}return P.flatMap(E=>M.has(E)?[M.get(E)]:[])},invalidateChannelMembers:w,clearCache(){let p=new Set(l.keys());for(let y of o.keys())p.add(y.slice(0,y.indexOf(":")));for(let y of i.keys())p.add(y);for(let y of a.keys())p.add(y);for(let y of s.keys())p.add(y);for(let y of c)p.add(y);for(let y of g)p.add(y);for(let y of p)l.set(y,h(y)+1);o.clear(),i.clear(),a.clear(),s.clear(),c.clear(),g.clear();}}}function lo(e){return {responseMode:"strict",method:"POST",...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function uo(e,n){return T(e,"/user_radio/member/list",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},lo(n.clientType))}function po(e,n){return T(e,"/user_radio/member/search",{radio_id:n.channelId,search_name:n.query,page:n.page,page_size:n.pageSize},lo(n.clientType))}var fo=18,yn=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},oe=class extends Error{constructor(n){super(`CHANNEL @ member \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelMentionMemberMappingError";}};function Me(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function ls(e){let n=Me(e.user_id);if(n==="")throw new oe("user_id \u4E0D\u80FD\u4E3A\u7A7A");let t=Me(e.radio_user_nickname)||Me(e.nick_name)||Me(e.name)||Me(e.mid)||n,r=Me(e.head_img_url);return {userId:n,displayName:t,...r===""?{}:{avatar:r}}}function us(e){let n=e.channelId.trim();if(n==="")throw new oe("channelId \u4E0D\u80FD\u4E3A\u7A7A");if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>fo)throw new oe(`limit \u5FC5\u987B\u4E3A 1-${fo}`);if(e.cursor===void 0)return {channelId:n,page:1,pageSize:e.limit};if(!/^[1-9]\d*$/.test(e.cursor))throw new oe("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let t=Number(e.cursor);if(!Number.isSafeInteger(t))throw new oe("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {channelId:n,page:t,pageSize:e.limit}}function ps(e){let n=[],t=new Map;for(let r of e)t.has(r.userId)||n.push(r.userId),t.set(r.userId,r);return n.map(r=>t.get(r))}function fs(e){async function n(t,r){let{channelId:o,page:i,pageSize:a}=us(t),s=await r({channelId:o,page:i,pageSize:a,clientType:e.clientType});if(!s.ok)throw new yn(s.code,s.message);if(s.data!==null&&!Array.isArray(s.data))throw new oe("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let l=s.data??[],c=ps(l.map(ls)),g=l.length<a;return {items:c,exhausted:g,...g?{}:{nextCursor:String(i+1)}}}return {listMentionMembers:t=>n(t,r=>uo(e.client,r)),searchMentionMembers:t=>{let r=t.query.trim();return r===""?Promise.reject(new oe("\u641C\u7D22\u5173\u952E\u8BCD\u4E0D\u80FD\u4E3A\u7A7A")):n(t,o=>po(e.client,{...o,query:r}))}}}function ms(e){let n=e.fetch??((t,r)=>globalThis.fetch(t,r));return {async postProtobuf({path:t,body:r,headers:o,signal:i}){let a=await e.getBaseUrl();if(!a)throw new Error("CmHttp.postProtobuf\uFF1A\u7F3A\u5C11 CM HTTP \u57FA\u5740\uFF08getCmHttpBaseUrl \u4E3A\u7A7A\uFF09");let s={"Content-Type":"application/octet-stream"},l=e.getClientType?.();l!==void 0&&(s["Client-type"]=String(l)),Object.assign(s,o);let c=await e.getAuth();c!==null&&c.token!==""&&c.userId!==""&&(s.Authorization=`${c.token}:${c.userId}`);let g=await n(`${a}${t}`,{method:"POST",body:r,headers:s,signal:i});if(!g.ok)throw new ua$1({path:t,status:g.status,statusText:g.statusText});let C=await g.arrayBuffer();return new Uint8Array(C)}}}var ie=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 ie(`${n} \u5FC5\u987B\u662F\u5BF9\u8C61`);return e}function Y(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function qe(e){let n=Y(e);return n===""?void 0:n}function gs(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=Y(t.user_id??n.friend_user_id??n.user_id);if(r==="")throw new ie("\u8054\u7CFB\u4EBA\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A user_id");let o=Y(n.remark_name)||Y(n.contact_name)||Y(t.nick_name)||Y(t.username)||Y(t.mid)||r,i=Y(t.nick_name)||Y(t.username)||Y(t.mid)||r,a=qe(t.head_img_url),s=qe(t.username)??qe(t.mid);return {id:r,kind:"individual",displayName:o,cardDisplayName:i,...a===void 0?{}:{avatarUrl:a},...s===void 0?{}:{username:s}}}function ys(e){let n=hn(e,"\u7FA4\u7EC4\u76EE\u5F55\u9879"),t=Y(n.group_id);if(t==="")throw new ie("\u7FA4\u7EC4\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A group_id");let r=qe(n.head_img_url),o=Y(n.name)||t;return {id:t,kind:"group",displayName:o,cardDisplayName:o,...r===void 0?{}:{avatarUrl:r}}}function hs(e){let n=hn(e,"\u793E\u7FA4\u76EE\u5F55\u9879"),t=Y(n.radio_id??n.id);if(t==="")throw new ie("\u793E\u7FA4\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A radio_id/id");let r=qe(n.head_img_url),o=Y(n.name)||t;return {id:t,kind:"channel",displayName:o,cardDisplayName:o,...r===void 0?{}:{avatarUrl:r}}}function bs(e,n){if(!Number.isSafeInteger(e)||e<1)throw new ie("\u76EE\u5F55 page \u5FC5\u987B\u662F\u6B63\u6574\u6570");if(!Number.isSafeInteger(n)||n<1||n>100)throw new ie("\u76EE\u5F55 pageSize \u5FC5\u987B\u662F 1-100 \u7684\u6574\u6570")}function Cs(e){return {async list(n){bs(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 T(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 ie(`${n.kind} \u76EE\u5F55 data \u5FC5\u987B\u662F\u6570\u7EC4`);let a=n.kind==="individual"?gs:n.kind==="group"?ys:hs,s=new Map;for(let c of i){let g=a(c);s.set(g.id,g);}let l=i.length<n.pageSize;return {items:[...s.values()],...l?{}:{nextPage:n.page+1},exhausted:l}}}}var ws="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},j=class extends Error{constructor(n){super(n),this.name="ExpressionMappingError";}},ye=class extends Error{constructor(t,r){super(`Giphy \u8BF7\u6C42\u5931\u8D25\uFF1AHTTP ${t}${r?` ${r}`:""}`);this.status=t;this.name="GiphyHttpError";}status};function Z(e,n){if(e===null||typeof e!="object"||Array.isArray(e))throw new j(`${n} \u5FC5\u987B\u662F\u5BF9\u8C61`);return e}function X(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function pe(e,n){let t=X(e);if(t==="")throw new j(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function Ee(e){let n=X(e);return n===""?void 0:n}function xe(e,n){let t=Number(e);if(!Number.isSafeInteger(t)||t<0)throw new j(`${n} \u5FC5\u987B\u662F\u975E\u8D1F\u6574\u6570`);return t}function Ps(e,n){let t=Number(e);if(!Number.isSafeInteger(t))throw new j(`${n} \u5FC5\u987B\u662F\u5B89\u5168\u6574\u6570`);return t}function mo(e,n){let t=Number(e);if(!Number.isFinite(t)||t<=0)throw new j(`${n} \u5FC5\u987B\u662F\u6709\u9650\u6B63\u6570`);return t}function he(e,n){let t=pe(e,n),r;try{r=new URL(t);}catch(o){throw new j(`${n} \u4E0D\u662F\u5408\u6CD5 URL\uFF1A${o instanceof Error?o.message:String(o)}`)}if(r.protocol!=="https:"&&r.protocol!=="http:")throw new j(`${n} \u53EA\u652F\u6301 HTTP(S)`);if(r.username!==""||r.password!=="")throw new j(`${n} \u4E0D\u5141\u8BB8\u5305\u542B URL \u51ED\u636E`);return t}function it(e,n){if(e==null)return [];if(Array.isArray(e))return e;let r=Z(e,n).list;if(r==null)return [];if(!Array.isArray(r))throw new j(`${n}.list \u5FC5\u987B\u662F\u6570\u7EC4\u6216 null`);return r}function Ve(e){return e==="sticker"?1:e==="gif"?2:3}function go(e){let n=Z(e,"\u8D34\u56FE\u5305"),t=Ee(n.onlineTime??n.online_time),r=n.isPlatformIssued??n.is_platform_issued;return {id:pe(n.packId??n.pack_id,"\u8D34\u56FE\u5305 packId"),nameZh:X(n.nameZh??n.name_zh),nameEn:X(n.nameEn??n.name_en),nameTh:X(n.nameTh??n.name_th),nameTw:X(n.nameTw??n.name_tw),nameVi:X(n.nameVi??n.name_vi),publisher:X(n.publisher),trayIconUrl:he(n.trayIcon??n.tray_icon,"\u8D34\u56FE\u5305 trayIcon"),sortWeight:Ps(n.sortWeight??n.sort_weight??0,"\u8D34\u56FE\u5305 sortWeight"),isPlatformIssued:r===true||Number(r)===1,...t===void 0?{}:{onlineTime:t},stickerCount:xe(n.stickerCount??n.sticker_count??0,"\u8D34\u56FE\u5305 stickerCount")}}function at(e,n,t,r){let o=Z(e,t),i=Ee(o.id),a={...i===void 0?{}:{recordId:i},url:he(o.imgUrl??o.img_url,`${t} imgUrl`),width:xe(o.width??0,`${t} width`),height:xe(o.height??0,`${t} height`)};if(n==="sticker")return {kind:n,...a,packageId:pe(r??o.packId??o.pack_id,`${t} packageId`),resourceId:pe(o.fileName??o.file_name,`${t} resourceId`)};let s=Ee(o.fileName??o.file_name);return {kind:n,...a,...s===void 0?{}:{resourceId:s}}}function Is(e,n){if(n!=="emoji")return at(e,n,"\u6700\u8FD1\u4F7F\u7528\u9879");let t=Z(e,"\u6700\u8FD1 emoji"),r=Ee(t.id);return {kind:"emoji",...r===void 0?{}:{recordId:r},token:pe(t.imgUrl??t.img_url,"\u6700\u8FD1 emoji token"),resourceId:pe(t.fileName??t.file_name,"\u6700\u8FD1 emoji resourceId")}}function yo(e,n,t){let r=Ve(n);return it(e,t).filter(o=>{let i=Z(o,`${t} item`),a=i.favType??i.fav_type;if(a==null)return true;let s=Number(a);if(s!==1&&s!==2&&s!==3)throw new j(`${t} item.favType \u5FC5\u987B\u662F 1\u30012 \u6216 3`);return s===r})}function bo(e){return {fav_type:Ve(e.kind),pack_id:e.kind==="sticker"?e.packageId:"",img_url:he(e.url,"\u8868\u60C5\u5199\u5165 imgUrl"),file_name:e.resourceId??"",width:e.width,height:e.height}}function vs(e){return e.kind!=="emoji"?bo(e):{fav_type:Ve(e.kind),pack_id:"",img_url:e.token,file_name:e.resourceId,width:0,height:0}}function ho(e){let n=[...new Set(e.map(t=>t.trim()).filter(Boolean))];if(n.length===0||n.length>30||n.some(t=>t.includes("|")))throw new j("\u6279\u91CF\u5220\u9664 recordIds \u5FC5\u987B\u5305\u542B 1-30 \u4E2A\u4E0D\u542B\u7AD6\u7EBF\u7684\u552F\u4E00\u975E\u7A7A id");return n.join("|")}function Ss(e){let n=Z(e,"Giphy item"),t=Z(n.images,"Giphy item.images"),r=Z(t.original,"Giphy item.images.original"),o=t.fixed_width,i=o==null?void 0:Z(o,"Giphy item.images.fixed_width"),a=he(r.url,"Giphy original.url"),s=i===void 0?void 0:Ee(i.url),l=i===void 0?void 0:Ee(i.webp),c=l===void 0?s===void 0?a:he(s,"Giphy fixed_width.url"):he(l,"Giphy fixed_width.webp"),g=l!==void 0&&s!==void 0&&s!==l?he(s,"Giphy fixed_width.url"):void 0;return {kind:"gif",resourceId:pe(n.id,"Giphy item.id"),title:X(n.title)||"GIF",url:a,previewUrl:c,...g===void 0?{}:{fallbackPreviewUrl:g},width:mo(r.width,"Giphy original.width"),height:mo(r.height,"Giphy original.height")}}function As(e,n){let t=Z(e,"Giphy response");if(!Array.isArray(t.data))throw new j("Giphy response.data \u5FC5\u987B\u662F\u6570\u7EC4");let r=Z(t.pagination,"Giphy response.pagination"),o=xe(r.offset??n,"Giphy pagination.offset");if(o!==n)throw new j("Giphy pagination.offset \u4E0E\u8BF7\u6C42 offset \u4E0D\u4E00\u81F4");let i=xe(r.count??t.data.length,"Giphy pagination.count"),a=xe(r.total_count??r.totalCount??0,"Giphy pagination.total_count"),s=new Map;for(let c of t.data){let g=Ss(c);s.set(g.resourceId,g);}let l=o+i;return {items:[...s.values()],offset:o,totalCount:a,...i>0&&l<a?{nextOffset:l}:{}}}function Ms(e){async function n(r,o,i){if(e.coreClient===void 0)throw new _e("core");let a=await T(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 s=new URLSearchParams({api_key:i,limit:String(o.limit),offset:String(o.offset),...o.query===void 0?{}:{q:o.query,lang:"en"}}),l;try{l=await a(`${ws}/${r}?${s.toString()}`);}catch{throw new ye(0,"network failure")}let c;try{c=await l.json();}catch(C){throw l.ok?new j(`Giphy response \u4E0D\u662F JSON\uFF1A${C instanceof Error?C.message:String(C)}`):new ye(l.status,"")}if(!l.ok){let C=c!==null&&typeof c=="object"&&!Array.isArray(c)?c.meta:void 0,h=C!==null&&typeof C=="object"&&!Array.isArray(C)?X(C.msg):"";throw new ye(l.status,h)}let g=c!==null&&typeof c=="object"&&!Array.isArray(c)?c.meta:void 0;if(g!==null&&typeof g=="object"&&!Array.isArray(g)){let C=g,h=Number(C.status);if(Number.isFinite(h)&&h!==200)throw new ye(h,X(C.msg))}return As(c,o.offset)}return {async listStickerPacks(r){let o=await n("/user/sticker/pack_list",r===void 0?{}:{version:r},"\u8D34\u56FE\u5305\u5217\u8868");if(Array.isArray(o))return {version:"",items:o.map(go)};if(o==null)return {version:"",items:[]};let i=Z(o,"\u8D34\u56FE\u5305\u5217\u8868 data"),a=i.list??i.packs;if(a==null)return {version:X(i.version),items:[]};if(!Array.isArray(a))throw new j("\u8D34\u56FE\u5305\u5217\u8868 data.list \u5FC5\u987B\u662F\u6570\u7EC4\u6216 null");return {version:X(i.version),items:a.map(go)}},async listStickerItems(r){let o=await n("/user/sticker/item_list",{pack_id:r},"\u8D34\u56FE\u660E\u7EC6\u5217\u8868");return it(o,"\u8D34\u56FE\u660E\u7EC6\u5217\u8868 data").map(i=>at(i,"sticker","\u8D34\u56FE\u660E\u7EC6",r))},async listFavorites(r){let o=await n("/user/sticker/my_fav/list",{fav_type:Ve(r)},"\u8868\u60C5\u6536\u85CF\u5217\u8868");return yo(o,r,"\u8868\u60C5\u6536\u85CF\u5217\u8868 data").map(i=>at(i,r,"\u8868\u60C5\u6536\u85CF\u9879"))},async addFavorite(r){await n("/user/sticker/my_fav/add",bo(r),"\u6DFB\u52A0\u8868\u60C5\u6536\u85CF");},async deleteFavorites(r){await n("/user/sticker/my_fav/del",{ids:ho(r)},"\u5220\u9664\u8868\u60C5\u6536\u85CF");},async listRecent(r){let o=await n("/user/sticker/recent/list",{fav_type:Ve(r)},"\u6700\u8FD1\u4F7F\u7528\u5217\u8868");return yo(o,r,"\u6700\u8FD1\u4F7F\u7528\u5217\u8868 data").map(i=>Is(i,r))},async reportRecent(r){await n("/user/sticker/recent/report",vs(r),"\u4E0A\u62A5\u6700\u8FD1\u4F7F\u7528");},async deleteRecent(r){await n("/user/sticker/recent/del",{ids:ho(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 it(o,"\u5FEB\u6377\u56DE\u5E94 Top data").map(i=>{let a=Z(i,"\u5FEB\u6377\u56DE\u5E94 Top \u9879");return pe(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 Co(e,n){let t=n.clientType===void 0?void 0:{headers:{"Client-type":String(n.clientType)}};return (await T(e,"/user_group/info",{group_id:n.groupId},t)).data}function _s(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 xs(e){if(typeof e=="number")return e;if(typeof e=="string"&&e.trim()!==""){let n=Number(e);return Number.isNaN(n)?void 0:n}}var wo=200,Es=50;async function Po(e,n){let t=String(n.updateVersion??0).trim()||"0",r=[],o;for(let i=1;i<=Es;i++){let a={group_id:n.groupId,update_version:t,page:String(i),page_size:String(wo)},{data:s}=await T(e,"/user_group/user/list",a,{method:"GET",...n.clientType===void 0?{}:{headers:{"Client-type":String(n.clientType)}}});if(s===null)break;let l=_s(s);if(l.length===0)break;for(let g of l){let C=String(g.user_id??g.userId??"").trim();if(C==="")continue;let h={userId:C,nickName:String(g.nick_name??g.nickName??"").trim()},u=xs(g.join_type??g.joinType);u!==void 0&&(h.joinType=u),r.push(h);}let c=s.update_version;if(typeof c=="number"&&(o=c),l.length<wo)break}return {members:r,updateVersion:o}}async function Io(e,n){return (await T(e,"/user/info/friend",{friend_user_id:n.userId})).data}var ks=1440*60*1e3;function st(e,n,t=ks){let r=new Map,o=new Map,i=new Map;function a(g){let C=(i.get(g)??0)+1;i.set(g,C);let h=e(g).then(u=>(u!==null&&i.get(g)===C&&(r.set(g,u),n?.save(g,u).catch(()=>{})),u)).finally(()=>{o.get(g)===h&&o.delete(g);});return o.set(g,h),h}return {get:async(g,C)=>{if(C?.forceRefresh===true)return a(g);let h=r.get(g);if(h!==void 0)return h;let u=o.get(g);if(u!==void 0)return u;if(n!==void 0)try{let b=i.get(g)??0,v=await n.get(g);if(v!==null)return (i.get(g)??0)===b&&(r.set(g,v.value),Date.now()-v.updatedAt>t&&a(g)),v.value}catch{}return a(g)},peek:async g=>{let C=r.get(g);if(C!==void 0)return {value:C,stale:false};if(n===void 0)return null;try{let h=i.get(g)??0,u=await n.get(g);if(u!==null)return (i.get(g)??0)===h&&r.set(g,u.value),{value:u.value,stale:Date.now()-u.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 Rs(e){async function n(h){let u=await Io(e.client,{userId:h})??await Ge(e.client,{userId:h});return u===null?null:aa$1(u)}async function t(h){let u=await Co(e.client,{groupId:h,clientType:e.clientType});return u===null?null:ba$1(u)}async function r(h){let{members:u}=await Po(e.client,{groupId:h,clientType:e.clientType});return u.length===0?null:u}function o(h){let u={};for(let b of h)b.nickName!==""&&(u[b.userId]=b.nickName);return u}let{storage:i}=e,a=i===void 0?void 0:{get:async h=>{let u=await i.getUserProfile(h);return u===null?null:{value:u,updatedAt:u.updatedAt}},save:async(h,u)=>{await i.saveUserProfile({...u,updatedAt:Date.now()});}},s=i===void 0?void 0:{get:async h=>{let u=await i.getGroupMembers(h);return u===null?null:{value:u.members.map(b=>({userId:b.userId,nickName:b.groupNick,...b.joinType===void 0?{}:{joinType:b.joinType}})),updatedAt:u.updatedAt}},save:async(h,u)=>{let b=u.map(v=>({userId:v.userId,groupNick:v.nickName,...v.joinType===void 0?{}:{joinType:v.joinType}}));await i.saveGroupMembers({groupId:h,members:b,updatedAt:Date.now()});}},l=i===void 0?void 0:{get:async h=>{let u=await i.getGroupProfile(h);return u===null?null:{value:u,updatedAt:u.updatedAt}},save:async(h,u)=>{await i.saveGroupProfile({...u,updatedAt:Date.now()});}},c=st(n,a),g=st(t,l),C=st(r,s);return {getUserProfile:(h,u)=>c.get(h,u),getGroupProfile:(h,u)=>g.get(h,u),getGroupMemberNames:async(h,u)=>{let b=await C.get(h,u);return b===null?null:o(b)},listGroupMembers:(h,u)=>C.get(h,u),peekUserProfile:h=>c.peek(h),peekGroupMemberNames:async h=>{let u=await C.peek(h);return u===null?null:{value:o(u.value),stale:u.stale}},peekGroupMembers:h=>C.peek(h),peekGroupProfile:h=>g.peek(h),clearCache:()=>{c.clear(),g.clear(),C.clear();}}}function Ts(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}async function ee(e,n,t,r){let o=await T(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new q(r,o.code,o.message)}function Ds(e){return ee(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 Us(e){return ee(e.client,"/user_radio/user/setting",{radio_id:e.channelId,nick_name:e.nickname},"\u4FEE\u6539\u793E\u7FA4\u6635\u79F0")}function Os(e){return ee(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 Bs(e){let n=e.userIds.map(t=>({user_id:Ts(t)}));return ee(e.client,"/user_radio/invited_users",{radio_id:e.channelId,members:JSON.stringify(n)},"\u9080\u8BF7\u793E\u7FA4\u6210\u5458")}function Ns(e){return ee(e.client,"/user_radio/kick_user",{radio_id:e.channelId,user_id:e.userId},"\u79FB\u9664\u793E\u7FA4\u6210\u5458")}function Ks(e){return ee(e.client,"/user_radio/add_admin",{radio_id:e.channelId,user_id:e.userId},"\u8BBE\u4E3A\u793E\u7FA4\u7BA1\u7406\u5458")}function Gs(e){return ee(e.client,"/user_radio/del_admin",{radio_id:e.channelId,user_id:e.userId},"\u53D6\u6D88\u793E\u7FA4\u7BA1\u7406\u5458")}function Ls(e){return ee(e.client,"/user_radio/transfer",{radio_id:e.channelId,user_id:e.userId},"\u8F6C\u8BA9\u793E\u7FA4")}function Hs(e){return ee(e.client,"/user_radio/user/quit",{radio_id:e.channelId,...e.newOwnerId===void 0?{}:{user_id:e.newOwnerId}},"\u9000\u51FA\u793E\u7FA4")}function Fs(e){return ee(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 $s(e){return ee(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 js(e){return ee(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 Js(e){return ee(e.client,"/user_radio/closed",{radio_id:e.channelId},"\u89E3\u6563\u793E\u7FA4")}async function qs(e){e.signal?.throwIfAborted(),Vs(e.channelId,"channel");let n=e.index.trim();if(n==="")throw new Error("CHANNEL \u5386\u53F2\u4E0A\u4E0B\u6587 index \u7F3A\u5931");e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId),e.signal?.throwIfAborted();let t=e.containAnchor??true,r=E({userId:e.userId,clientType:e.clientType,pulls:[{channelId:e.channelId,baseIndex:n,direction:0,count:20,contain:t?1:0}]}),o=await e.http.postProtobuf({path:"/channel/v1/offlineMessages",body:r,...e.signal===void 0?{}:{signal:e.signal}});e.signal?.throwIfAborted();let i=H$1(o,{selfId:e.userId,keepRaw:true,expectedChannelIds:[e.channelId],onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps);if(t){let s=i.messages.filter(l=>l.extensions?.historyCursor===n);if(s.length!==1)throw new Error(`CHANNEL \u5386\u53F2\u4E0A\u4E0B\u6587 anchor \u5FC5\u987B\u4E00\u4E00\u5BF9\u5E94\uFF08channelId=${e.channelId}, index=${n}, count=${s.length}\uFF09`)}let a=i.nextBaseIndexes[e.channelId];return {messages:i.messages,hasNewer:(i.messageCounts[e.channelId]??0)===20&&a!==void 0&&a!==n,...a===void 0?{}:{nextCursor:a}}}function Vs(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 zs(e){let n=Ws(e.indexes),t=f.encode(f.create({sUserId:ct(e.userId,"user"),lsIndex:n.map(i=>({sChnnId:ct(i.channelId,"channel"),sIndex:i.readCursor}))})),r=await e.http.postProtobuf({path:"/channel/v1/readIndexes/edit",body:t}),o=g.decode(r);if(o.errcode!==0)throw new Error(`CHANNEL readIndexes/edit \u5931\u8D25\uFF1Aerrcode=${o.errcode}`)}function Ws(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=>{ct(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 ct(e,n){if(!/^\d+$/.test(e))throw new Error(`CHANNEL readIndexes ${n} id \u975E\u6CD5\uFF1A${e}`);let t=BigInt(e);if(t<=0n)throw new Error(`CHANNEL readIndexes ${n} id \u975E\u6CD5\uFF1A${e}`);return t}async function Ys(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 T(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 bn=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;}},Cn=class extends Error{kind;responseCode;constructor(n,t,r){super(`\u53D1\u9001\u597D\u53CB\u7533\u8BF7\u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`),this.name="ContactFriendshipRequestError",this.kind=n,this.responseCode=t;}},dt={HIDDEN_CONTACT:40112,OWN_FRIEND_LIMIT_REACHED:40121,TARGET_FRIEND_LIMIT_REACHED:40122},Qs=36875,Xs=40113;function lt(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function ce(e){let n=lt(e);return n===""?void 0:n}function vo(e){let n=Array.isArray(e)?e[0]:e;return n!==null&&typeof n=="object"?n:void 0}function Zs(e){switch(e){case dt.HIDDEN_CONTACT:return "hidden-contact";case dt.OWN_FRIEND_LIMIT_REACHED:return "own-friend-limit";case dt.TARGET_FRIEND_LIMIT_REACHED:return "target-friend-limit";default:return "remote"}}async function ec(e,n){let t=n.query.trim();if(t==="")throw new Error("\u641C\u7D22\u7528\u6237\uFF1Aquery \u4E0D\u80FD\u4E3A\u7A7A");let r=await T(e,"/user/info/search",{username:t},{responseMode:"strict",...n.clientType===void 0?{}:{headers:{"Client-type":String(n.clientType)}}});if(!r.ok)throw new bn(r.code,r.message);let o=vo(r.data);if(o===void 0)return null;let i=lt(o.user_id??o.userId);if(i==="")throw new Error("\u641C\u7D22\u7528\u6237\uFF1A\u54CD\u5E94\u7F3A\u5C11 user_id");let a=lt(o.nick_name??o.nickname??o.name)||i,s=o.friend_status??o.friendStatus,l=s===void 0?void 0:Number(s);if(l!==void 0&&!Number.isInteger(l))throw new Error("\u641C\u7D22\u7528\u6237\uFF1Afriend_status \u975E\u6CD5");return {userId:i,nickname:a,...ce(o.username)===void 0?{}:{username:ce(o.username)},...ce(o.mid)===void 0?{}:{miCallId:ce(o.mid)},...ce(o.head_img_url??o.avatar)===void 0?{}:{avatarUrl:ce(o.head_img_url??o.avatar)},...ce(o.per_signature??o.signature)===void 0?{}:{signature:ce(o.per_signature??o.signature)},...l===void 0?{}:{friendStatus:l}}}async function nc(e,n){let t=n.userId.trim(),r=n.message.trim(),o=n.remark?.trim();if(t===""||r==="")throw new Error("\u53D1\u9001\u597D\u53CB\u7533\u8BF7\uFF1AuserId \u548C message \u4E0D\u80FD\u4E3A\u7A7A");let i=await T(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 Cn(Zs(i.code),i.code,i.message);let a=vo(i.data),s=Number(a?.status??0);if(s!==0&&s!==1&&s!==2)throw new Error(`\u53D1\u9001\u597D\u53CB\u7533\u8BF7\uFF1A\u672A\u77E5\u7ED3\u679C\u72B6\u6001 ${s}`);let l=ce(a?.message??a?.msg??i.message);return {status:s,...l===void 0?{}:{message:l}}}async function tc(e,n){let t=n.userId.trim();if(t==="")throw new Error("\u5220\u9664\u597D\u53CB\uFF1AuserId \u4E0D\u80FD\u4E3A\u7A7A");let r=await T(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!==Xs)throw new Error(`\u5220\u9664\u597D\u53CB\u5931\u8D25\uFF08${r.code}\uFF09\uFF1A${r.message||"unknown error"}`)}async function rc(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 T(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 oc(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}function ic(e){let n=e.memberIds.map(t=>({user_id:oc(t)}));return T(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 ac(e){return T(e.client,"/user_group/create_face",{is_hidden:"0"},{method:"POST",responseMode:"strict"})}function sc(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}function cc(e){let n=e.memberIds.map(t=>({user_id:sc(t)}));return T(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 ke(e){if(e.trim()==="")throw new Error("board pinned message groupId \u4E0D\u80FD\u4E3A\u7A7A")}function Re(e){if(e.trim()==="")throw new Error("channel board pinned message channelId \u4E0D\u80FD\u4E3A\u7A7A")}function So(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function dc(e){ke(e.groupId);let n=await T(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(!So(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(!So(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 Ao(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function lc(e){Re(e.channelId);let n=await T(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(!Ao(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(!Ao(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 uc(e,n){let r=(await T(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 pc(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 fc(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||!pc(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 mc(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}async function ze(e,n,t,r){let o=await T(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new q(r,o.code,o.message)}function gc(e){let n=e.userIds.map(t=>({user_id:mc(t)}));return ze(e.client,"/user_group/invited",{group_id:e.groupId,members:JSON.stringify(n)},"\u9080\u8BF7\u7FA4\u6210\u5458")}function yc(e){return ze(e.client,"/user_group/kick",{group_id:e.groupId,out_user_id:e.userId},"\u79FB\u9664\u7FA4\u6210\u5458")}function hc(e){return ze(e.client,"/user_group/transfer",{group_id:e.groupId,new_user_id:e.userId},"\u8F6C\u8BA9\u7FA4\u7EC4")}function bc(e){return ze(e.client,"/user_group/user/quit",{group_id:e.groupId,...e.newOwnerId===void 0?{}:{new_user_id:e.newOwnerId}},"\u9000\u51FA\u7FA4\u7EC4")}function Cc(e){return ze(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 wc=new Set([200,32768]);async function Pc(e){let n=W$1({userId:e.userId,groupId:e.groupId}),t=await e.http.postProtobuf({path:"/offline/v1/group/read_all",body:n}),{code:r}=X$1(t);if(!wc.has(r))throw new Error(`\u7FA4 read_all \u4E1A\u52A1\u5931\u8D25\uFF1Acode=${r}\uFF08groupId=${e.groupId}\uFF09`)}var We=class extends Error{constructor(n){super(`${n}\u54CD\u5E94\u5305\u542B\u65E0\u6CD5\u8BC6\u522B\u7684 is_waitting`),this.name="MembershipJoinMappingError";}};function Ic(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 We(n)}async function Mo(e,n,t,r){let o=await T(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 We(r);return Ic(o.data.is_waitting,r)}async function _o(e,n,t,r){let o=await T(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new q(r,o.code,o.message);return Object.freeze({outcome:"joined"})}function vc(e){return Mo(e.client,"/user_group/apply",{group_id:e.groupId,qrcode_type:2,remarks:e.remarks??""},"\u7533\u8BF7\u52A0\u5165\u666E\u901A\u7FA4")}function Sc(e){return _o(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 Ac(e){return Mo(e.client,"/user_radio/add/apply",{radio_id:e.channelId,remarks:e.remarks??""},"\u7533\u8BF7\u52A0\u5165\u793E\u7FA4")}function Mc(e){return _o(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 _c(e){if(ke(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 T(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 xc(e){if(Re(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 T(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 Ec(e){let n=_({userId:e.userId,messageIds:e.messageIds,clientType:e.clientType}),t=await e.http.postProtobuf({path:"/offline/v1/chat/msg/by_id",body:n});return $$1(t,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function kc(e){e.prepareKeys!==void 0&&e.decryptDeps!==void 0&&e.groupId!==""&&await e.prepareKeys([e.groupId]);let n=U({userId:e.userId,groupId:e.groupId,messageIds:e.messageIds,clientType:e.clientType}),t=await e.http.postProtobuf({path:"/offline/v1/group/msg/by_id",body:n});return V$1(t,{selfId:e.userId,keepRaw:true,source:"history",onReaction:e.onReaction},e.decryptDeps)}async function Rc(e){e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId);let n=J$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 K(t,{selfId:e.userId,keepRaw:true,expectedChannelIds:[e.channelId],diagnostic:{endpoint:"msgById",surface:"msg-by-id",...e.operationId===void 0?{}:{operationId:e.operationId},clientTypeHeader:e.clientType,clientTypeBody:e.clientType},onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps)}var Tc=20,xo=10,ut=30,Dc=100;async function Uc(e){let n=[];for(let t of ko(e.channels,Tc)){let r=D({userId:e.userId,clientType:e.clientType,channels:t}),o=await e.http.postProtobuf({path:"/channel/v1/sessions",body:r}),i={selfId:e.userId,keepRaw:e.keepRaw??true,expectedChannelIds:t.map(s=>s.channelId),diagnostic:{endpoint:"sessions",surface:"session-last",...e.operationId===void 0?{}:{operationId:e.operationId},clientTypeHeader:e.clientType,clientTypeBody:e.clientType}},a=G$1(o,i);await Eo(e,a.sessions.filter(s=>s.channelState==="active"||s.raw?.status===0).map(s=>s.channelId)),n.push(...G$1(o,{...i,onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps).sessions);}return n}async function Oc(e){let n=Kc(e.channelBatchSize),t=e.messageCount??ut,r=Gc(e.maxPagesPerBatch),o=new Map;for(let i of ko(e.pulls,n)){let a=i.map(c=>({...c})),s=new Map(a.map(c=>[c.channelId,new Set([c.baseIndex])])),l=0;for(;a.length>0;){if(l>=r){let u=a.map(({channelId:b,baseIndex:v})=>`${b}@${v}`).join(",");throw new Error(`channel offline \u5206\u9875\u8D85\u8FC7 maxPagesPerBatch=${r}\uFF08active=${u}\uFF09`)}l+=1;let c=E({userId:e.userId,clientType:e.clientType,pulls:a.map(u=>({channelId:u.channelId,baseIndex:u.baseIndex,direction:0,count:t,contain:0}))});e.signal?.throwIfAborted();let g=await e.http.postProtobuf({path:"/channel/v1/offlineMessages",body:c,...e.signal===void 0?{}:{signal:e.signal}});e.signal?.throwIfAborted(),await Eo(e,a.map(u=>u.channelId));let C=H$1(g,{selfId:e.userId,keepRaw:e.keepRaw??true,expectedChannelIds:a.map(u=>u.channelId),diagnostic:{endpoint:"offlineMessages",surface:"offline-batch",...e.operationId===void 0?{}:{operationId:e.operationId},clientTypeHeader:e.clientType,clientTypeBody:e.clientType},onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps);for(let u of C.messages)o.has(u.id)||o.set(u.id,u);let h=[];for(let u of a){let b=C.nextBaseIndexes[u.channelId],v=C.messageCounts[u.channelId]??0;if(b===void 0)continue;let A=s.get(u.channelId);if(A.has(b))throw new Error(`channel offline cursor \u5FAA\u73AF\uFF08channelId=${u.channelId}, baseIndex=${b}\uFF09`);v<t||(A.add(b),h.push({channelId:u.channelId,baseIndex:b}));}a=h;}}return [...o.values()].sort(m)}async function Bc(e$1){e$1.signal?.throwIfAborted();let n=e$1.count??ut;if(!Number.isInteger(n)||n<=0)throw new Error("channel latest: count \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");e$1.decryptDeps!==void 0&&e$1.prepareKey!==void 0&&await e$1.prepareKey(e$1.channelId);let t=E({userId:e$1.userId,clientType:e$1.clientType,pulls:[{channelId:e$1.channelId,baseIndex:"",direction:1,count:n,contain:0}]});e$1.signal?.throwIfAborted();let r=await e$1.http.postProtobuf({path:"/channel/v1/offlineMessages",body:t,...e$1.signal===void 0?{}:{signal:e$1.signal}});e$1.signal?.throwIfAborted();let o={selfId:e$1.userId,keepRaw:e$1.keepRaw??true,expectedChannelIds:[e$1.channelId],diagnostic:{endpoint:"offlineMessages",surface:"history-page",...e$1.operationId===void 0?{}:{operationId:e$1.operationId},clientTypeHeader:e$1.clientType,clientTypeBody:e$1.clientType},onContentDecodeError:e$1.onContentDecodeError,onReaction:e$1.onReaction},i=e$1.yieldToEventLoop===void 0?{...H$1(r,o,e$1.decryptDeps),firstBaseIndex:e.decode(r).lsMessage[0]?.sIndex}:await I(r,o,e$1.decryptDeps,{yieldToEventLoop:e$1.yieldToEventLoop,signal:e$1.signal}),a=i.batchSize===n,s=i.firstBaseIndex;if(a&&(typeof s!="string"||s.trim()===""))throw new Error(`channel latest: \u6EE1\u9875\u7F3A\u5C11\u5411\u65E7 cursor\uFF08channelId=${e$1.channelId}\uFF09`);return {messages:i.messages,hasOlder:a,...a?{nextCursor:s}:{}}}async function Nc(e){e.signal?.throwIfAborted();let n=e.count??ut;e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId);let t=F$1({userId:e.userId,clientType:e.clientType,channelId:e.channelId,baseIndex:e.baseIndex,count:n,contain:e.contain??0});e.signal?.throwIfAborted();let r=await e.http.postProtobuf({path:"/channel/v1/offlineMessages",body:t,...e.signal===void 0?{}:{signal:e.signal}});return e.signal?.throwIfAborted(),L$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 Eo(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 Kc(e){if(e===void 0)return xo;if(!Number.isInteger(e)||e<=0)throw new Error("channel offline: channelBatchSize \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");return Math.min(e,xo)}function Gc(e){if(e===void 0)return Dc;if(!Number.isInteger(e)||e<=0)throw new Error("channel offline: maxPagesPerBatch \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");return e}function ko(e,n){let t=[];for(let r=0;r<e.length;r+=n)t.push(e.slice(r,r+n));return t}async function Ro(e,n){let t=Y$1({userId:n.userId,clientType:n.clientType,limit:n.limit,deliveredMsgInfos:n.deliveredMsgInfos}),r=await n.http.postProtobuf({path:e,body:t});return Z$1(r,{selfId:n.userId,keepRaw:true,onReaction:n.onReaction},n.decryptDeps)}function To(e){return Ro("/offline/v1/chat",e)}function Do(e){return Ro("/offline/v1/owner_chat",e)}function Lc(e){return To(e).then(n=>n.messages)}function Hc(e){return Do(e).then(n=>n.messages)}function Uo(e){return [...new Set(e.filter(n=>n!==void 0&&n!==""))]}async function Fc(e){let n=N({userId:e.userId,clientType:e.clientType,limit:e.limit,deliveredMsgIds:e.deliveredMsgInfos?.map(r=>r.msgId)}),t=await e.http.postProtobuf({path:"/offline/v1/group",body:n});if(e.prepareKeys!==void 0&&e.decryptDeps!==void 0){let r=P(t,{selfId:e.userId}),o=Uo(r.messages.map(i=>i.conversationId));o.length>0&&await e.prepareKeys(o);}return P(t,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function $c(e){let n=O({userId:e.userId,clientType:e.clientType,size:e.size}),t=await e.http.postProtobuf({path:"/offline/v1/group/session",body:n});if(e.prepareKeys!==void 0&&e.decryptDeps!==void 0){let r=Q$1(t,{selfId:e.userId}),o=Uo([...r.unreads.map(i=>i.groupId),...r.messages.map(i=>i.conversationId)]);o.length>0&&await e.prepareKeys(o);}return Q$1(t,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function jc(e){e.signal?.throwIfAborted(),e.prepareKeys!==void 0&&e.decryptDeps!==void 0&&e.groupId!==""&&await e.prepareKeys([e.groupId]);let n=R({userId:e.userId,groupId:e.groupId,baseTime:e.baseTime,direct:e.direct,limit:e.limit,clientType:e.clientType});e.signal?.throwIfAborted();let t=await e.http.postProtobuf({path:"/offline/v1/group/history_msg",body:n,...e.signal===void 0?{}:{signal:e.signal}});e.signal?.throwIfAborted();let r={selfId:e.userId,keepRaw:e.keepRaw??true,source:"history",onReaction:e.onReaction};return e.yieldToEventLoop===void 0?S(t,r,e.decryptDeps):T$1(t,{...r,expectedGroupId:e.groupId},e.decryptDeps,{yieldToEventLoop:e.yieldToEventLoop,signal:e.signal})}async function Jc(e){let n=ga$1({userId:e.userId,clientType:e.clientType,limit:e.limit??100,msgId:String(Date.now()),deliveredMsgIds:e.deliveredMsgIds}),t=await e.http.postProtobuf({path:"/offline/v1/signal",body:n});return ha$1(t)}var qc={direct:"/friend/undisturb/set",group:"/user_group/user/edit",channel:"/user_radio/user/setting"},Vc={direct:"friend_user_id",group:"group_id",channel:"radio_id"};async function zc(e){let n=qc[e.conversationType],t=Vc[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 T(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 Wc(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 T(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 Yc(e){let{code:n}=await T(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 Qc(e){ke(e.groupId);let n=await T(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 Xc(e){Re(e.channelId);let n=await T(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 Zc(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 T(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 ed="1970-01-01 08:00:00",nd="2000",td="",wn=class extends Error{constructor(){super("\u4F1A\u8BDD\u6536\u85CF Core API \u672A\u914D\u7F6E"),this.name="SessionFavoriteProviderUnavailableError";}},fe=class extends Error{constructor(n){super(n),this.name="SessionFavoriteMappingError";}};function z(e){return typeof e=="string"?e:e==null?"":String(e)}function Ye(e,n){let t=z(e).trim();if(t==="")throw new fe(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function rd(e){let n=typeof e=="number"?e:Number(String(e??"").trim());return n===1?"text":n===2?"image":n===3?"video":n===4?"voice":n===5?"location":n===11?"file":n===28?"mediaAlbum":null}function od(e){return e==="text"?1:e==="image"?2:e==="video"?3:e==="voice"?4:e==="location"?5:e==="mediaAlbum"?28:11}function id(e){if(e==="direct")return 0;if(e==="group")return 1;if(e==="channel")return 2;throw new fe(`favorite conversation type ${e}`)}function Pn(e,n){return n==="text"||n==="location"?z(e.content).trim():n==="file"?z(e.fileName||e.file_name||e.name).trim():n==="mediaAlbum"?z(e.caption).trim():""}function ad(e,n){let t=z(e.group_id).trim(),r=z(e.radio_id).trim(),o=Number(z(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=z(e.from_id).trim(),a=z(e.to_id).trim(),s=i===n.trim()?a:i;if(s!=="")return {conversationType:"direct",conversationId:s}}return null}function sd(e,n){let t=e.from_user,r=z(t?.nick_name||t?.nickname||t?.name).trim();return r===""?n:r}function cd(e,n){let t=z(e.uu_id).trim(),r=rd(e.content_type),o=xr(z(e.msg_body),n);if(t===""||r===null||o===null)return null;let i=z(e.from_id).trim();return Object.freeze({collectId:t,msgId:z(e.msg_id).trim(),kind:r,senderId:i,senderName:sd(e,i),avatarUrl:z(e.from_user?.avatar).trim(),createdAt:z(e.create_time||e.update_time||e.msg_time).trim(),text:Pn(o,r),imageUrl:sb(r,o),fileName:r==="file"?Pn(o,"file"):"",body:Object.freeze({...o}),conversation:ad(e,n)})}function dd(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 fe("favorite list data \u5FC5\u987B\u662F\u6570\u7EC4\u6216 { list }")}function ld(){if(typeof crypto>"u"||typeof crypto.randomUUID!="function")throw new fe("collect uuid \u4E0D\u53EF\u7528");return crypto.randomUUID()}function ud(e){return Object.freeze({...e,body:Object.freeze({...e.body}),conversation:e.conversation===null?null:Object.freeze({...e.conversation})})}function pd(e){async function n(t,r,o){if(e.coreClient===void 0)throw new wn;let i=await T(e.coreClient,t,r,{method:"POST",responseMode:"strict",prefix:td});if(!i.ok)throw new q(o,i.code,i.message);return i.data}return {async list(){let t=Ye(e.getUserId(),"favorite userId"),r=await n("/api/v1/user/favorite/list",{start_time:ed,page_size:nd},"\u4F1A\u8BDD\u6536\u85CF\u5217\u8868");return Object.freeze(dd(r).flatMap(o=>{let i=cd(o,t);return i===null?[]:[i]}))},async add(t){let r=Ye(e.getUserId(),"favorite userId"),o=(e.createCollectId??ld)(),i={msg_id:Ye(t.messageId,"favorite msgId"),content_type:od(t.kind),msg_type:id(t.conversation.conversationType),msg_time:String(t.createdAt),from_id:Ye(t.senderId,"favorite fromId"),to_id:Ye(t.peerId,"favorite toId"),is_hide:t.hide===true?"1":"0",uu_id:o,msg_body:_r(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"),ud({collectId:o,msgId:t.messageId.trim(),kind:t.kind,senderId:t.senderId.trim(),senderName:t.senderId.trim(),avatarUrl:"",createdAt:String(t.createdAt),text:Pn(t.plainBody,t.kind),imageUrl:sb(t.kind,t.plainBody),fileName:t.kind==="file"?Pn(t.plainBody,"file"):"",body:t.plainBody,conversation:t.conversation})},async delete(t){let r=[...new Set(t.map(o=>o.trim()).filter(o=>o!==""))];if(r.length===0)throw new fe("favorite ids \u4E0D\u80FD\u4E3A\u7A7A");await n("/api/v1/user/favorite/del",{ids:r.join("|")},"\u5220\u9664\u4F1A\u8BDD\u6536\u85CF");}}}var Oo="image/jpeg";function pt(e,n){return e.type!==""||n===void 0||n===""?e:new Blob([e],{type:n})}function fd(e){let n=0;return {async imageDimensions(t,r,o){let i=await e.prepare({operationId:`core-image-dimensions-${++n}`,generation:0,kind:"image",file:pt(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:pt(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:Oo}},async videoPoster(t,r,o){let i=await e.prepare({operationId:`core-video-poster-${++n}`,generation:0,kind:"video",file:pt(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:Oo}}}}function md(e){return e>=192&&e<=207&&e!==196&&e!==200&&e!==204}function gd(e){return e!==void 0&&e>=5&&e<=8}function yd(e,n,t){return gd(t)?{width:n,height:e}:{width:e,height:n}}function hd(e,n,t){if(n+6>t)return;for(let[l,c]of [69,120,105,102,0,0].entries())if(e.getUint8(n+l)!==c)return;let r=n+6;if(r+8>t)return;let o=e.getUint16(r,false);if(o!==19789&&o!==18761)return;let i=o===18761;if(e.getUint16(r+2,i)!==42)return;let a=r+e.getUint32(r+4,i);if(a+2>t)return;let s=e.getUint16(a,i);for(let l=0;l<s;l++){let c=a+2+l*12;if(c+12>t)return;if(e.getUint16(c,i)===274)return e.getUint16(c+8,i)}}function bd(e,n){let t,r=2;for(;r+4<=n;){if(e.getUint8(r)!==255)return;let o=e.getUint8(r+1);if(o===255){r+=1;continue}if(o===218||o===217)return;let i=e.getUint16(r+2,false);if(i<2)return;let a=r+4,s=r+2+i;if(s>n)return;if(md(o)){if(a+5>n)return;let l=e.getUint16(a+1,false),c=e.getUint16(a+3,false);return c<=0||l<=0?void 0:yd(c,l,t)}o===225&&t===void 0&&(t=hd(e,a,s)),r=s;}}function Cd(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 wd(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 Pd(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 In(e,n,t){return n<t.length?false:t.every((r,o)=>e.getUint8(o)===r)}async function Bo(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(In(t,r,[255,216,255]))return bd(t,r);if(In(t,r,[137,80,78,71,13,10,26,10]))return Cd(t,r);if(In(t,r,[71,73,70,56]))return wd(t,r);if(In(t,r,[82,73,70,70])&&r>=12&&t.getUint32(8,false)===1464156752)return Pd(t,r)}var Fo=320,Id=12*1024,$o=20*1024,vd=.9,Sd=.72,Ad=320,Md=10*1024,_d=16*1024,xd=.84,Ed=.68,jo=15e3,kd=1;function Rd(){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 No(e){let n={active:0,disposed:false},t=[];function r(){for(;!n.disposed&&n.active<e&&t.length>0;){let o=t.shift();if(o.signal?.aborted){o.reject(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));continue}o.onAbort!==void 0&&o.signal?.removeEventListener("abort",o.onAbort),n.active+=1;let i=false;o.resolve(()=>{i||(i=true,n.active-=1,r());});}}return {acquire(o){return n.disposed?Promise.reject(new Error("\u5A92\u4F53\u9884\u89C8\u6267\u884C\u5668\u5DF2\u91CA\u653E")):new Promise((i,a)=>{let s={resolve:i,reject:a,...o===void 0?{}:{signal:o}};o!==void 0&&(s.onAbort=()=>{let l=t.indexOf(s);l>=0&&t.splice(l,1),a(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));},o.addEventListener("abort",s.onAbort,{once:true})),t.push(s),r();})},dispose(){n.disposed=true;for(let o of t.splice(0))o.onAbort!==void 0&&o.signal?.removeEventListener("abort",o.onAbort),o.reject(new Error("\u5A92\u4F53\u9884\u89C8\u6267\u884C\u5668\u5DF2\u91CA\u653E"));}}}function Qe(e){if(e?.aborted)throw new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError")}var Ko=16777216,Td=4096;function Dd(e,n){let t=Math.min(1,Td/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>Ko){let a=Math.sqrt(Ko/i);r=Math.max(1,Math.floor(r*a)),o=Math.max(1,Math.floor(o*a));}return {width:r,height:o}}function mt(e,n,t){let r=Math.min(1,t/Math.max(e,n));return Dd(Math.max(1,Math.round(e*r)),Math.max(1,Math.round(n*r)))}async function Go(e,n,t,r,o){Qe(o);let i=document.createElement("canvas");i.width=n,i.height=t;let a=i.getContext("2d");if(a===null)throw new Error("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A\u65E0\u6CD5\u521B\u5EFA Canvas 2D \u4E0A\u4E0B\u6587");a.drawImage(e,0,0,n,t);let s=await new Promise(l=>i.toBlob(l,"image/jpeg",r));if(Qe(o),s===null)throw new Error("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1ACanvas \u7F16\u7801\u8FD4\u56DE\u7A7A\u7ED3\u679C");return await s.arrayBuffer()}function ft(e,n){if(!Number.isInteger(e)||e<=0)throw new RangeError(`${n}\u5FC5\u987B\u662F\u6B63\u6574\u6570`)}function Lo(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 gt(e,n,t,r,o){let i=r.kind==="video",a=i?"\u89C6\u9891\u5C01\u9762":"\u56FE\u7247\u7F29\u7565\u56FE",s=r.maxSize??(i?Ad:Fo),l=r.targetBytes??(i?Md:Id),c=r.maxBytes??(i?_d:$o),g=r.quality??(i?xd:vd),C=r.minQuality??(i?Ed:Sd);if(ft(s,`${a}\u6700\u5927\u8FB9\u957F`),ft(l,`${a}\u76EE\u6807\u5B57\u8282\u6570`),ft(c,`${a}\u6700\u5927\u5B57\u8282\u6570`),Lo(g,`${a}\u521D\u59CB\u8D28\u91CF`),Lo(C,`${a}\u6700\u4F4E\u8D28\u91CF`),l>c)throw new RangeError(`${a}\u76EE\u6807\u5B57\u8282\u6570\u4E0D\u80FD\u8D85\u8FC7\u6700\u5927\u5B57\u8282\u6570`);if(C>g)throw new RangeError(`${a}\u6700\u4F4E\u8D28\u91CF\u4E0D\u80FD\u9AD8\u4E8E\u521D\u59CB\u8D28\u91CF`);let h=mt(n,t,s),u=Math.min(200,Math.max(h.width,h.height)),b,v=[...new Set([g,Math.max(C,g-.12),C])];for(let k of v){let R=await Go(e,h.width,h.height,k,o);if((b===void 0||R.byteLength<b.byteLength)&&(b=R),R.byteLength<=l)return R}let A=Math.max(h.width,h.height);if(A>u&&b!==void 0){let k=Math.sqrt(l/b.byteLength),R=Math.max(u,Math.floor(A*Math.min(.9,Math.max(.5,k))));h=mt(n,t,R);for(let x of [g,C]){let S=await Go(e,h.width,h.height,x,o);if(S.byteLength<b.byteLength&&(b=S),S.byteLength<=l)return S}}if(b!==void 0&&b.byteLength<=c)return b;throw new Error(`${a}\u751F\u6210\u5931\u8D25\uFF1A\u7F16\u7801\u7ED3\u679C\u8D85\u8FC7 ${c} \u5B57\u8282\u786C\u4E0A\u9650`)}function Ho(e,n,t){return new Promise((r,o)=>{let i,a,s,l,c=()=>{i!==void 0&&clearTimeout(i),e.removeEventListener(n,a),e.removeEventListener("error",s),t?.removeEventListener("abort",l);};a=()=>{c(),r();},s=()=>{c(),o(new Error(`\u89C6\u9891\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A${n} \u524D\u89E3\u7801\u9519\u8BEF`));},l=()=>{c(),o(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));},i=setTimeout(()=>{c(),o(new Error(`\u89C6\u9891\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A${n} \u8D85\u65F6`));},jo),e.addEventListener(n,a,{once:true}),e.addEventListener("error",s,{once:true}),t?.addEventListener("abort",l,{once:true});})}async function Ud(e,n){Qe(n);let t=e.maxSize??Fo,r=e.maxBytes??$o,o=await Bo(e.file);Qe(n);function i(g,C){return e.file.type==="image/jpeg"&&e.file.size<=r&&Math.max(g,C)<=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:mt(o.width,o.height,t),s;try{s=a===void 0?await createImageBitmap(e.file):await createImageBitmap(e.file,{resizeWidth:a.width,resizeHeight:a.height,resizeQuality:"high"});}catch(g){if(n?.aborted)throw g}if(s!==void 0)try{Qe(n);let g=o??{width:s.width,height:s.height};return e.includePoster===!1?g:o===void 0&&i(s.width,s.height)?{...g,posterData:await e.file.arrayBuffer()}:{...g,posterData:await gt(s,s.width,s.height,e,n)}}finally{s.close();}let l=URL.createObjectURL(e.file),c=new Image;try{await new Promise((C,h)=>{let u,b,v=()=>{u!==void 0&&clearTimeout(u),c.onload=null,c.onerror=null,n?.removeEventListener("abort",b);};b=()=>{v(),h(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));},c.onload=()=>{v(),C();},c.onerror=()=>{v(),h(new Error("\u56FE\u7247\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1AImage \u89E3\u7801\u9519\u8BEF"));},u=setTimeout(()=>{v(),h(new Error("\u56FE\u7247\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1AImage \u89E3\u7801\u8D85\u65F6"));},jo),n?.addEventListener("abort",b,{once:!0}),c.src=l;});let g=o??{width:c.naturalWidth,height:c.naturalHeight};return e.includePoster===!1?g:i(c.naturalWidth,c.naturalHeight)?{...g,posterData:await e.file.arrayBuffer()}:{...g,posterData:await gt(c,c.naturalWidth,c.naturalHeight,e,n)}}finally{c.removeAttribute("src"),URL.revokeObjectURL(l);}}async function Od(e,n){let t=URL.createObjectURL(e.file),r=document.createElement("video");r.muted=true,r.preload="metadata",r.playsInline=true;try{r.src=t,r.load(),await Ho(r,"loadeddata",n);let o=r.videoWidth,i=r.videoHeight;if(o<=0||i<=0)throw new Error("\u89C6\u9891\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A\u89C6\u9891\u5C3A\u5BF8\u65E0\u6548");let a=Number.isFinite(r.duration)&&r.duration>0?r.duration:void 0,s=e.atTime===void 0?a===void 0?0:Math.min(1,a/2):Math.max(0,Math.min(e.atTime,a??e.atTime));s>0&&(r.currentTime=s,await Ho(r,"seeked",n));let l=a===void 0?void 0:a,c;try{c=await gt(r,o,i,e,n);}catch(g){if(n?.aborted||g instanceof RangeError)throw g}return {width:o,height:i,...l===void 0?{}:{duration:l},...c===void 0?{}:{posterData:c}}}finally{r.pause(),r.removeAttribute("src"),r.load(),URL.revokeObjectURL(t);}}function Bd(e={}){let n=e.maxConcurrency??Rd();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=No(n),r=No(kd),o=false;return {async prepare(i,a){if(o)throw new Error("\u5A92\u4F53\u9884\u89C8\u6267\u884C\u5668\u5DF2\u91CA\u653E");let s=i.kind==="video",l=await(s?r:t).acquire(a);try{return s?await Od(i,a):await Ud(i,a)}finally{l();}},dispose(){o||(o=true,t.dispose(),r.dispose());}}}function vn(e=6){if(!Number.isSafeInteger(e)||e<1)throw new RangeError("\u5A92\u4F53\u8BF7\u6C42\u5E76\u53D1\u4E0A\u9650\u5FC5\u987B\u4E3A\u6B63\u6574\u6570");let n=0,t=[];function r(){for(;n<e&&t.length>0;){let o=t.shift();if(o.signal?.removeEventListener("abort",o.cancel),o.signal?.aborted){o.cancel();continue}n+=1,o.start();}}return async function(i,a){if(i?.aborted)throw new DOMException("\u5A92\u4F53\u4F20\u8F93\u5DF2\u53D6\u6D88","AbortError");await new Promise((s,l)=>{let c={signal:i,start:s,cancel:()=>{let g=t.indexOf(c);g>=0&&t.splice(g,1),l(new DOMException("\u5A92\u4F53\u4F20\u8F93\u5DF2\u53D6\u6D88","AbortError"));}};i?.addEventListener("abort",c.cancel,{once:true}),t.push(c),r();});try{if(i?.aborted)throw new DOMException("\u5A92\u4F53\u4F20\u8F93\u5DF2\u53D6\u6D88","AbortError");return await a()}finally{n-=1,r();}}}var Xe=16*1024*1024,Ze=3,yt=3,Sn=6,Nd=5*1024**3,An=1e4;function ht(e,n){if(!Number.isSafeInteger(e)||e<0)throw new F("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>Xe,r=t?Math.ceil(e/Xe):1;if(!t&&e>Nd)throw new F("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>An)throw new F("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:Xe,partCount:r}}function Kd(e,n,t,r){let o=/^bytes (\d+)-(\d+)\/(\d+)$/.exec(e.headers.get("content-range")??""),i=e.headers.get("etag")??"",a=Number(o?.[1]),s=Number(o?.[2]),l=Number(o?.[3]);if(e.status!==206||o===null||![a,s,l].every(Number.isSafeInteger)||l<=0||a!==n||s!==Math.min(t,l-1)||s<a||!/^"[\x21\x23-\x7E\x80-\xFF]*"$/.test(i)||e.headers.get("content-encoding")!==null&&e.headers.get("content-encoding")!=="identity")throw new F("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&&(l!==r.total||i!==r.etag))throw new F("download-object-changed","\u5206\u6BB5\u4E0B\u8F7D\u671F\u95F4\u6587\u4EF6\u7248\u672C\u53D1\u751F\u53D8\u5316\uFF0C\u8BF7\u91CD\u65B0\u4E0B\u8F7D");return {end:s,total:l,etag:i}}function Jo(e=true,n,t=Xe){if(!Number.isSafeInteger(t)||t<=0)throw new RangeError("\u4E0B\u8F7D\u5206\u6BB5\u5927\u5C0F\u5FC5\u987B\u4E3A\u6B63\u6574\u6570");let r=vn(Sn);async function o(a,s){if(!a.ok)throw new F("download-range-failed",`\u5A92\u4F53\u4E0B\u8F7D\u5931\u8D25\uFF1AHTTP ${a.status}`);return s.onProgress===void 0||a.body===null?s.preferBlob===true?await a.blob():new Uint8Array(await a.arrayBuffer()):Ld(a,s.onProgress,s.expectedBytes,s.preferBlob===true)}async function i(a){let s=new AbortController,l=()=>s.abort(a.signal?.reason);a.signal?.aborted?l():a.signal?.addEventListener("abort",l,{once:true});let c=s.signal,g=[],C=[],h=0,u,b="",v=1,A,k=false,R=d=>{k||(k=true,A=d,s.abort());};function x(d,m){h+=m-(C[d]??0),C[d]=m;let w=u.total;a.onProgress?.({percent:Math.min(99,Math.round(h/w*100)),bytesTransferred:h,bytesTotal:w});}async function S(d){let m=d*t,w=u===void 0?m+t-1:Math.min(m+t-1,u.total-1);return r(c,async()=>{let p=await fetch(a.url,{signal:c,cache:"no-store",headers:{Range:`bytes=${m}-${w}`}});if(d===0&&p.status===200)return n?.record("info","sdk","media","download-range-unavailable",()=>({data:{reason:"server-returned-full-response"}})),g[0]=await o(p,{...a,preferBlob:true}),"single";let y=Kd(p,m,w,u);u===void 0&&(u=y,b=p.headers.get("content-type")??"",n?.record("debug","sdk","media","download-range-started",()=>({data:{bytesTotal:y.total,partSizeBytes:t,concurrency:yt}})));let I=await o(p,{...a,preferBlob:true,onProgress:f=>x(d,f.bytesTransferred)});if(I.size!==y.end-m+1)throw new F("download-range-invalid","\u5206\u6BB5\u4E0B\u8F7D\u5B57\u8282\u6570\u4E0E Content-Range \u4E0D\u4E00\u81F4");return g[d]=I,x(d,I.size),"range"})}try{let d=await S(0);if(d==="range"){let m=Math.ceil(u.total/t),w=Array.from({length:Math.min(yt,m-1)},async()=>{try{for(;!c.aborted&&v<m;)await S(v++);}catch(p){R(p);}});if(await Promise.allSettled(w),k)throw A}if(c.aborted)throw new DOMException("\u5A92\u4F53\u4E0B\u8F7D\u5DF2\u53D6\u6D88","AbortError");return d==="single"?g[0]:new Blob(g,{type:b})}catch(d){throw s.abort(),n?.record("warn","sdk","media","download-range-failed",()=>({data:{code:d instanceof F?d.code:"download-failed"}})),d}finally{a.signal?.removeEventListener("abort",l);}}return async function(s){return e&&s.preferBlob===true&&Number.isFinite(s.expectedBytes)&&s.expectedBytes>t?i(s):r(s.signal,async()=>{if(s.onProgress!==void 0&&typeof XMLHttpRequest<"u")return Gd(s);let l=await fetch(s.url,s.signal===void 0?{}:{signal:s.signal});return o(l,s)})}}function Gd(e){let n=e.preferBlob===true;return new Promise((t,r)=>{let o=new XMLHttpRequest,i=false,a=()=>{},s=()=>{e.signal?.removeEventListener("abort",a),o.onprogress=null,o.onload=null,o.onerror=null,o.onabort=null;},l=c=>{i||(i=true,s(),c());};if(a=()=>{o.abort(),l(()=>r(new DOMException("media download canceled","AbortError")));},o.open("GET",e.url,true),o.responseType=n?"blob":"arraybuffer",o.onprogress=c=>{let g=e.expectedBytes!==void 0&&Number.isFinite(e.expectedBytes)&&e.expectedBytes>0?Math.floor(e.expectedBytes):0,C=c.lengthComputable&&c.total>0?c.total:g,h=C>0?Math.min(99,Math.round(c.loaded/C*100)):0;e.onProgress?.({percent:h,bytesTransferred:c.loaded,bytesTotal:C});},o.onload=()=>{if(o.status<200||o.status>=300){l(()=>r(new Error(`media download \u5931\u8D25\uFF1AHTTP ${o.status}`)));return}let c=o.response;if(n){if(!(typeof Blob<"u"&&c instanceof Blob)){l(()=>r(new Error("media download \u5931\u8D25\uFF1AXHR \u672A\u8FD4\u56DE Blob")));return}l(()=>t(c));return}if(!(c instanceof ArrayBuffer)){l(()=>r(new Error("media download \u5931\u8D25\uFF1AXHR \u672A\u8FD4\u56DE ArrayBuffer")));return}l(()=>t(new Uint8Array(c)));},o.onerror=()=>l(()=>r(new Error("media download \u5931\u8D25\uFF1Anetwork"))),o.onabort=()=>l(()=>r(new DOMException("media download canceled","AbortError"))),e.signal?.aborted){a();return}e.signal?.addEventListener("abort",a,{once:true}),o.send();})}async function Ld(e,n,t,r=false){let o=Number(e.headers.get("content-length")??0),i=t!==void 0&&Number.isFinite(t)&&t>0?Math.floor(t):0,a=Number.isFinite(o)&&o>0?o:i,s=0,l=e.body.pipeThrough(new TransformStream({transform(g,C){s+=g.byteLength;let h=a>0?Math.min(99,Math.round(s/a*100)):0;n({percent:h,bytesTransferred:s,bytesTotal:a}),C.enqueue(g);}})),c=new Response(l,{headers:e.headers});return r?await c.blob():new Uint8Array(await c.arrayBuffer())}var qo=async(e,n)=>{if(e?.aborted)throw new DOMException("media upload canceled","AbortError");return await n()},bt="is missing ETag in UploadPart response";function Ct(e){if(typeof e!="object"||e===null)return false;let n=e;return n.name==="NoSuchUpload"||n.Code==="NoSuchUpload"}function Hd(e,n,t){return e instanceof Uint8Array?e.subarray(n,t):e.slice(n,t)}async function Vo(e,n,t){return e.transformPart===void 0?n:await e.transformPart(n instanceof Blob?n:new Blob([n]),t)}function zo(e,n){let t=new Map,r=n,o=n;function i(){if(e.onProgress===void 0)return;let a=r;for(let c of t.values())a+=c;o=Math.max(o,a);let s=e.sourceBytes,l=s>0?Math.min(99,Math.round(o/s*100)):0;e.onProgress({percent:l,bytesTransferred:o,bytesTotal:s,phase:s>0&&o>=s?"finalizing":"transferring"});}return {trackPart(a,s){t.set(a,s),i();},completePart(a,s){t.delete(a),r+=s,i();},report:i}}function Wo(e,n){let t=(o,i)=>{let a=i.query?.partNumber,s=a===void 0?0:Number(a);Number.isFinite(s)&&n.trackPart(s,o.loaded);},r=e;return r.on("xhr.upload.progress",t),()=>{r.off?.("xhr.upload.progress",t),r.removeListener?.("xhr.upload.progress",t);}}async function Yo(e,n,t=qo){let r=zo(n,0),o=Wo(e.handler,r);try{await t(n.signal,async()=>{let i=await Vo(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 wt(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 Pt(e){let{target:n,content:t,partSize:r,queueSize:o,runUpload:i=qo}=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>An)throw new Error(`media upload: \u5206\u7247\u6570 ${a} \u8D85\u8FC7 S3 \u4E0A\u9650 ${An}\uFF0C\u9700\u8981\u653E\u5927\u5206\u7247\u5927\u5C0F`);let s=wt(e.resume,n,t.sourceBytes,r),l=new Map;if(s!==void 0)for(let x of s)l.set(x.partNumber,x);let c=s===void 0?"":e.resume.uploadId;if(c===""){let x=await n.client.send(new n.commands.CreateMultipartUploadCommand({Bucket:n.bucket,Key:n.key,...n.mimeType!==void 0&&n.mimeType!==""?{ContentType:n.mimeType}:{}}));if(x.UploadId===void 0||x.UploadId==="")throw new Error("media upload: CreateMultipartUpload \u672A\u8FD4\u56DE UploadId");c=x.UploadId,l.clear();}let g=x=>Math.min(r,t.sourceBytes-(x-1)*r),C=0;for(let x of l.keys())C+=g(x);let h=zo(t,C),u=Wo(n.handler,h),b=()=>({bucket:n.bucket,key:n.key,uploadId:c,partSize:r,sourceBytes:t.sourceBytes,parts:[...l.values()].sort((x,S)=>x.partNumber-S.partNumber)});e.onResumable?.(b()),h.report();let v=new AbortController,A=()=>v.abort();t.signal?.addEventListener("abort",A,{once:true}),t.signal?.aborted&&A();let k=1;async function R(){for(;;){if(v.signal.aborted)return;let x=k;if(k+=1,x>a)return;if(l.has(x))continue;let S=(x-1)*r,d=Math.min(S+r,t.sourceBytes),m=await i(v.signal,async()=>{let w=await Vo(t,Hd(t.data,S,d),x);if(v.signal.aborted)throw new DOMException("media upload canceled","AbortError");return await n.client.send(new n.commands.UploadPartCommand({Bucket:n.bucket,Key:n.key,UploadId:c,PartNumber:x,Body:w}),{abortSignal:v.signal})});if(m.ETag===void 0||m.ETag==="")throw new Error(`media upload: Part ${x} ${bt}`);l.set(x,{partNumber:x,etag:m.ETag}),h.completePart(x,d-S),e.onResumable?.(b());}}try{let x;if(await Promise.allSettled(Array.from({length:Math.min(Ze,a,Math.max(1,o))},async()=>{try{await R();}catch(S){x??={cause:S},A();}})),x!==void 0)throw x.cause;if(t.signal?.aborted)throw new DOMException("media upload canceled","AbortError");if(await n.client.send(new n.commands.CompleteMultipartUploadCommand({Bucket:n.bucket,Key:n.key,UploadId:c,MultipartUpload:{Parts:[...l.values()].sort((S,d)=>S.partNumber-d.partNumber).map(S=>({PartNumber:S.partNumber,ETag:S.etag}))}}),t.signal===void 0?{}:{abortSignal:t.signal}),e.onCompleted?.(),t.signal?.aborted)throw new DOMException("media upload canceled","AbortError")}finally{t.signal?.removeEventListener("abort",A),u();}}async function en(e,n){try{await e.client.send(new e.commands.AbortMultipartUploadCommand({Bucket:n.bucket,Key:n.key,UploadId:n.uploadId}));}catch(t){if(!Ct(t))throw t}}function Fd(e){if(e instanceof Uint8Array)return e.byteLength;if(typeof Blob<"u"&&e instanceof Blob)return e.size}var Qo="\u5206\u7247\u4E0A\u4F20\u8981\u6C42\u8BE5 bucket \u7684 CORS \u653E\u884C POST\uFF08Create/CompleteMultipartUpload\uFF09\u3001DELETE\uFF08AbortMultipartUpload\uFF09\u5E76 ExposeHeaders: ETag";function $d(e){return e instanceof Error&&e.message.includes(bt)}function jd(e,n,t){return t!==void 0?new F("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${Qo}`,{cause:t}):$d(e)?new F("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 F("multipart-upload-failed",`media upload: \u5206\u7247\u4E0A\u4F20\u5931\u8D25\uFF1B${Qo}`,{cause:e}):e}var Jd=new Set(["upload-source-invalid","multipart-etag-missing","multipart-abort-failed"]);function It(e,n){let t=e?.transport;if(!(t?.session===void 0||n!==void 0&&t.logicalBucket!==n))return t}var nn;function Xo(){if(nn!==void 0)return nn;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 nn===n&&(nn=void 0),t});return nn=n,n}function Zo(e,n){return new F("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 qd(e){if(e===void 0)return "";let n=e.lastIndexOf(".");return n>=0?e.slice(n):""}function Vd(e){return globalThis.crypto.randomUUID()+qd(e)}function ei(e,n){let t=e.keyPrefix??"";return t===""||n.startsWith(t)?n:`${t}${n}`}function zd(e,n){let t=sr(e.getUploadCredentials),r=vn(Sn);function o(u,b){if(u==="avatar")return e.avatarBucket??"";if(b==="channel"){let v=e.channelBuckets?.[u]??"";if(v!=="")return v}return e.buckets[u]??""}function i(u,b,v){let{region:A}=b;return new u.S3Client({region:A,credentials:{accessKeyId:b.accessKeyId,secretAccessKey:b.secretAccessKey,sessionToken:b.sessionToken,...b.expiresAtSeconds===void 0?{}:{expiration:new Date(b.expiresAtSeconds*1e3)}},useAccelerateEndpoint:(e.useAccelerateEndpoint??true)&&!A.toLowerCase().startsWith("cn-"),requestChecksumCalculation:"WHEN_REQUIRED",requestHandler:v})}async function a(u,b,v,A,k,R,x,S){let{multipart:d,partSize:m}=ht(x,e.multipartTransfer===true&&e.multipartUpload!==false),w=new u.XhrHttpHandler({}),p=i(u,k,w),y={client:p,handler:w,commands:u.commands,bucket:k.bucket,key:R,...b.mimeType!==void 0&&b.mimeType!==""?{mimeType:b.mimeType}:{}},I={data:b.data,sourceBytes:x,...b.onProgress===void 0?{}:{onProgress:b.onProgress},...b.signal===void 0?{}:{signal:b.signal},...b.transformPart===void 0?{}:{transformPart:b.transformPart}},f=b.resume,P=It(f),_=d&&P?.logicalBucket===v&&wt(P.session,y,x,m)!==void 0,M=_?P?.session:void 0,D=O=>{M=O;let N=0;for(let B of O.parts)N+=Math.min(O.partSize,O.sourceBytes-(B.partNumber-1)*O.partSize);b.onResumable?.({bytesUploaded:N,transport:{logicalBucket:v,objectName:A,session:O}});},E=()=>{M=void 0,delete b.resume;},U;try{if(P!==void 0&&!_){try{P.logicalBucket===v?await en(y,P.session):await C(f);}catch(N){if(S.mode==="discard")throw S.cleanupFailed=!0,Zo(S.retryCause,N);n?.record("warn","sdk","media","upload-resume-abandon-failed",()=>({data:{code:"multipart-abort-failed",reason:"resume-target-changed"}}));}delete b.resume;}if(b.signal?.aborted)throw new DOMException("media upload canceled","AbortError");if(!d){await Yo(y,I,r);return}let O=M;try{await Pt({target:y,content:I,partSize:m,queueSize:Ze,runUpload:r,...O===void 0?{}:{resume:O},onResumable:D,onCompleted:E});}catch(N){if(b.signal?.aborted||!Ct(N)||O===void 0)throw N;M=void 0,await Pt({target:y,content:I,partSize:m,queueSize:Ze,runUpload:r,onResumable:D,onCompleted:E});}}catch(O){if(S.mode==="retain"&&b.signal?.aborted===true&&b.signal.reason!=="offline"&&M!==void 0)try{await en(y,M);}catch(N){U=N;}throw S.cleanupFailed?O:jd(O,d,U)}finally{p.destroy();}}async function s(u,b,v,A={mode:"retain"}){let k=o(b,v);if(k==="")throw new F("bucket-unconfigured",`media upload: kind=${b} \u7684\u903B\u8F91\u6876\u540D\u672A\u914D\u7F6E\uFF08\u5BBF\u4E3B IM \u5BF9\u8C61\u5B58\u50A8\u914D\u7F6E\u7F3A\u8BE5\u8D44\u6E90\u7C7B\u578B\uFF09`);let R=Fd(u.data);if(R===void 0)throw new F("upload-source-invalid","media upload: \u4E0A\u4F20\u5185\u5BB9\u5FC5\u987B\u662F Uint8Array \u6216 Blob");ht(R,e.multipartTransfer===true&&e.multipartUpload!==false);let x=await Xo();if(A.mode==="discard"&&u.signal?.aborted)throw new DOMException("media upload canceled","AbortError");let S=It(u.resume,k)?.objectName??Vd(u.filename),d={...u,onResumable:w=>{d.resume=w,u.onResumable?.(w);}},m;try{m=await t.resolve(k);let w=ei(m,S);try{await a(x,d,k,S,m,w,R,A);}catch(p){if(u.signal?.aborted||p instanceof F&&Jd.has(p.code))throw p;A.retryCause=p,m=await t.resolve(k,{forceRefresh:!0}),w=ei(m,S),await a(x,d,k,S,m,w,R,A);}if(u.signal?.aborted)throw new DOMException("media upload canceled","AbortError");return u.onProgress?.({percent:100,bytesTransferred:R,bytesTotal:R,phase:"finalizing"}),{url:`${m.dnsPoint}/${w}`}}catch(w){let p=It(d.resume);if(A.mode==="discard"&&!A.cleanupFailed&&p!==void 0&&m!==void 0){let y=new x.XhrHttpHandler({}),I=i(x,m,y);try{await en({client:I,commands:x.commands},p.session);}catch(f){throw Zo(w,f)}finally{I.destroy();}}throw w}}function l(u){return s(u,u.kind,u.conversationType)}function c(u){return s({data:u.data,...u.filename===void 0?{}:{filename:u.filename},...u.mimeType===void 0?{}:{mimeType:u.mimeType},...u.signal===void 0?{}:{signal:u.signal},...u.onProgress===void 0?{}:{onProgress:u.onProgress}},u.kind,void 0,{mode:"discard"})}function g(u){return s(u,"avatar")}async function C(u){let b=u.transport;if(b?.session===void 0||b.session.uploadId==="")return;let v=await Xo(),A=await t.resolve(b.logicalBucket),k=new v.XhrHttpHandler({}),R=i(v,A,k);try{await en({client:R,commands:v.commands},b.session);}finally{R.destroy();}}let h=Jo(e.multipartTransfer===true&&e.rangeDownload!==false,n);return {upload:l,uploadAvatar:g,uploadResource:c,download:h,abandonUpload:C}}function Wd(e,n={}){let t=n.locks!==void 0?n.locks:globalThis.navigator?.locks,r=n.createChannel!==void 0?n.createChannel:typeof globalThis.BroadcastChannel=="function"?C=>new BroadcastChannel(C):void 0,o=typeof globalThis.addEventListener=="function"?globalThis:void 0,i=n.pageLifecycleTarget!==void 0?n.pageLifecycleTarget:o,a,s=0;function l(C){try{e.onError(C);}catch{}}function c(C,h=false,u="stopped"){if(a===C&&!h&&(a=void 0),C.resolveReady(false),C.closed)return;C.closed=true,C.controller.abort();let b=[],v=R=>{try{R();}catch(x){b.push(x);}};for(let R of C.cleanups.splice(0))v(R);v(()=>C.channel.close());let A=C.release;C.release=void 0;let k=C.owned;C.owned=false;try{let R=k?e.onChange(!1,u):void 0;Promise.resolve(R).then(()=>A?.(),l);}catch(R){l(R);}for(let R of b)l(R);}function g(C,h){c(C,true),l(h);}return {start(C){if(a?.key===C)return a.ready;let h=++s;if(a&&c(a),h!==s)return Promise.resolve(false);if(!C||!t||!r)return l(new Error("Browser connection ownership requires a key, Web Locks and BroadcastChannel")),Promise.resolve(false);let u;try{u=r(`im-connection:${C}`);}catch(x){return l(x),Promise.resolve(false)}let b,v=new Promise(x=>{b=x;}),A={key:C,channel:u,cleanups:[],owned:false,closed:false,ready:v,resolveReady:b,controller:new AbortController,claim:{startedAt:Date.now(),id:globalThis.crypto.randomUUID()}};a=A;let k=x=>{if(a!==A||A.closed||typeof x.data!="object"||x.data===null)return;let S=x.data;S.type==="session-ended"?c(A):S.type==="takeover"&&typeof S.startedAt=="number"&&Number.isFinite(S.startedAt)&&typeof S.id=="string"&&S.id!==A.claim.id&&(S.startedAt>A.claim.startedAt||S.startedAt===A.claim.startedAt&&S.id>A.claim.id?c(A,true,"replaced"):u.postMessage({type:"takeover",...A.claim}));},R=x=>{a===A&&x.persisted===true&&c(A);};try{i&&(A.cleanups.push(()=>i.removeEventListener("pagehide",R)),i.addEventListener("pagehide",R)),A.cleanups.push(()=>u.removeEventListener("message",k)),u.addEventListener("message",k);let x=setTimeout(()=>g(A,new Error("Browser IM takeover timed out while waiting for the previous page to close")),15e3);A.cleanups.push(()=>clearTimeout(x)),t.request(`im-connection:${C}`,{mode:"exclusive",signal:A.controller.signal},async d=>{if(a!==A||A.closed||!d){A.resolveReady(!1);return}let m=new Promise(w=>{A.release=w;});A.owned=!0,clearTimeout(x);try{await e.onChange(!0);}catch(w){g(A,w);}A.resolveReady(a===A&&A.owned),await m;}).catch(d=>{a===A&&!A.closed&&g(A,d);}),u.postMessage({type:"takeover",...A.claim});}catch(x){g(A,x);}return A.ready},stop(){s++,a&&c(a);},terminate(){s++;let C=a;if(C)try{C.closed||C.channel.postMessage({type:"session-ended"});}catch(h){l(h);}finally{c(C);}},get owned(){return a?.owned??false}}}function Yd(){let e=globalThis;return typeof e.addEventListener=="function"&&typeof e.removeEventListener=="function"?e:void 0}function Qd(e,n={}){let t=n.target!==void 0?n.target:Yd(),r=n.visibilitySource!==void 0?n.visibilitySource:globalThis.document,o=n.pageLifecycleSource!==void 0?n.pageLifecycleSource:t,i=false,a=()=>e.onOnline?.(),s=()=>e.onOffline?.(),l=()=>{r!=null&&r.visibilityState==="visible"&&e.onVisible?.();},c=()=>e.onPageHide?.(),g=()=>e.onPageShow?.();return {start(){i||(i=true,t!=null&&(t.addEventListener("online",a),t.addEventListener("offline",s)),r?.addEventListener("visibilitychange",l),o!=null&&(o.addEventListener("pagehide",c),o.addEventListener("pageshow",g)));},stop(){i&&(i=false,t!=null&&(t.removeEventListener("online",a),t.removeEventListener("offline",s)),r?.removeEventListener("visibilitychange",l),o!=null&&(o.removeEventListener("pagehide",c),o.removeEventListener("pageshow",g)));},get running(){return i}}}var el=15,nl=20,tl=8*1024*1024,rl=2*1024*1024,ol=1440*60*1e3,il=2*1024*1024*1024,ni=1024*1024*1024,al=512*1024*1024,sl=256*1024*1024,cl=64*1024,vt="channel:list-version",ti="schema:conversation-key-v1",ri="schema:message-server-order-v1",oi="im:membership-reset-sort-keys",St="default",Ce="\uFFFF";function ii(e){if(!(e===void 0||!/^\d+$/.test(e)))return e.replace(/^0+(?=\d)/,"")}function dl(e,n){let t=ii(e),r=ii(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 tn(e){return `conversation:${Fa$1(e)}`}function At(e,n){return `${Fa$1(e)}\0${n}`}function ll(e){let n=Fa$1(e.conversation);return {...e,key:At(e.conversation,e.messageId),conversationKey:n,conversation:{...e.conversation},sContent:e.sContent.slice()}}function ul(e){let{key:n,conversationKey:t,...r}=e;return {...r,conversation:{...r.conversation},sContent:r.sContent.slice()}}function si(e){return {...e,conversationKey:Fa$1(Ca$1(e))}}function we(e){let{conversationKey:n,...t}=e;return t}function Mn(e){return {...e,id:Fa$1(Da$1(e)),conversationId:e.id}}function Mt(e){if(e.conversationId===void 0)return e;let{conversationId:n,...t}=e;return {...t,id:n}}function _t(e){return e.conversationType===void 0?e:{...e,conversationId:Fa$1(e),storageConversationId:e.conversationId}}function _n(e){if(e.storageConversationId===void 0)return e;let{storageConversationId:n,...t}=e;return {...t,conversationId:n}}function ci(e){return {...e,conversationId:Fa$1(Ea$1(e)),storageConversationId:e.conversationId}}function xt(e){if(e.storageConversationId===void 0)return e;let{storageConversationId:n,...t}=e;return {...t,conversationId:n}}function pl(e){return {...e,conversationKey:Fa$1(e.ref)}}function fl(e){let{conversationKey:n,...t}=e;return t}function ml(e){return typeof e=="string"?e:e.conversationId}function rn(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 gl(e){let n=e.transaction(["messages","sessions","readStates","pinnedMessages","meta"],"readwrite");try{let t=n.objectStore("meta");if((await t.get(ti))?.value===!0){await n.done;return}let r=n.objectStore("messages");for(let l of await r.getAll())l.conversationKey===void 0&&await r.put(si(l));let o=n.objectStore("sessions"),i=new Map;for(let l of await o.getAll()){if(l.conversationId!==void 0)continue;let c=Mt(l);i.set(c.id,c.type),await o.put(Mn(c)),await o.delete(l.id);}let a=n.objectStore("readStates");for(let l of await a.getAll()){if(l.storageConversationId!==void 0)continue;let c=l.conversationType??i.get(l.conversationId);if(c===void 0)continue;let g={...l,conversationType:c};await a.put(_t(g)),await a.delete(l.conversationId);}let s=n.objectStore("pinnedMessages");for(let l of await s.getAll()){if(l.storageConversationId!==void 0)continue;let c=xt(l);await s.put(ci(c)),await s.delete(l.conversationId);}await t.put({key:ti,value:!0}),await n.done;}catch(t){try{n.abort();}catch{}try{await n.done;}catch{}throw t}}async function yl(e){let n=e.transaction(["messages","readStates","meta"],"readwrite");try{let t=n.objectStore("meta");if((await t.get(ri))?.value===!0){await n.done;return}let r=n.objectStore("readStates"),o=await r.getAll(),i=new Map;for(let g of o){let C=_n(g);C.conversationType==="channel"&&C.readCursorSortKey!==void 0&&C.readCursor!==""&&i.set(Fa$1(C),{cursor:C.readCursor});}let a=new Map,s=n.objectStore("messages"),l$1=await s.openCursor();for(;l$1!==null;){let g=l$1.value,C=Fa$1(Ca$1(g)),h=l(g),u=i.get(C);if(u!==void 0&&g.extensions?.historyCursor===u.cursor&&(u.sortKey=h),h!==g.sortKey){let b=a.get(C);b===void 0&&(b=new Map,a.set(C,b)),b.set(g.sortKey,h),await l$1.update({...g,sortKey:h});}l$1=await l$1.continue();}for(let g of o){let C=_n(g);if(C.conversationType===void 0)continue;let h=Fa$1(C),u=i.get(h)?.sortKey??(C.readCursorSortKey===void 0?void 0:a.get(h)?.get(C.readCursorSortKey));if(u===void 0&&C.readCursorSortKey!==void 0&&C.conversationType!=="channel"&&C.readCursor!==""){let b=await s.get(C.readCursor);b!==void 0&&Fa$1(Ca$1(b))===h&&(u=b.sortKey);}u!==void 0&&u!==C.readCursorSortKey&&await r.put({...g,readCursorSortKey:u});}let c=await t.get(oi);if(Array.isArray(c?.value)){let g=!1,C=c.value.map(h=>{if(!Array.isArray(h)||h.length!==2||typeof h[0]!="string"||typeof h[1]!="string")return h;let u=a.get(h[0])?.get(h[1]);return u===void 0?h:(g=!0,[h[0],u])});g&&await t.put({key:oi,value:C});}await t.put({key:ri,value:!0}),await n.done;}catch(t){try{n.abort();}catch{}try{await n.done;}catch{}throw t}}function ai(e){return `${e.kind}:${encodeURIComponent(e.messageId)}:${e.resourceVersion}`}async function on(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 hl(e,n){let t=n.namespaceFactory.forAccount(e).name("durable","storage","indexed-db");typeof indexedDB>"u"||await deleteDB(t);}function bl(e){let{namespaceFactory:n}=e,t=null,r=null,o=0,i=Promise.resolve(),a=Promise.resolve(),s=0,l=e.mediaAssetCache?.maxPendingWriteBytes??sl;if(!Number.isSafeInteger(l)||l<=0)throw new RangeError("\u5A92\u4F53\u8D44\u4EA7\u7F13\u5B58\u5F85\u5199\u5185\u5B58\u9884\u7B97\u5FC5\u987B\u662F\u6B63\u6574\u6570");function c(){if(t===null)throw new Error("ImStoragePort \u672A open\uFF1A\u8BF7\u5148 open({ namespace }) \u518D\u8BFB\u5199");return t}function g(d){let m=o,w=r,p=()=>{if(m!==o||w!==r)throw new Error("\u6700\u8FD1\u5386\u53F2\u7F13\u5B58\u64CD\u4F5C\u5DF2\u5931\u6548\uFF1A\u8D26\u53F7\u6216\u5B58\u50A8\u5DF2\u6539\u53D8");c();},y=i.then(async()=>{p();let I=await d();return p(),I});return i=y.then(()=>{},()=>{}),y}function C(d,m){return d.version!==1||!Number.isFinite(d.fetchedAt)||d.fetchedAt<0||m-d.fetchedAt>=ol}async function h(d){if(!Number.isSafeInteger(d.byteLength)||d.byteLength<0)throw new Error("\u6700\u8FD1\u5386\u53F2\u7F13\u5B58 byteLength \u5FC5\u987B\u662F\u975E\u8D1F\u5B89\u5168\u6574\u6570");let m=Date.now();if(d.byteLength>rl||C(d,m))return false;let w=Fa$1(d.conversation),p=c().transaction("recentHistoryPages","readwrite");return on(p,async()=>{let y=await p.store.getAll(),I=[];for(let M of y)C(M,m)?await p.store.delete(M.conversationKey):M.conversationKey!==w&&I.push(M);let f={...d,conversationKey:w};I.push(f),I.sort((M,D)=>M.fetchedAt-D.fetchedAt||M.conversationKey.localeCompare(D.conversationKey));let P=I.reduce((M,D)=>M+D.byteLength,0),_=[];for(;I.length>nl||P>tl;){let M=I.shift();_.push(M),P-=M.byteLength;}if(_.includes(f))return !1;await p.store.put(f);for(let M of _)await p.store.delete(M.conversationKey);return !0})}async function u(d){if(typeof d!="string")return;let m=IDBKeyRange.bound([d,""],[d,Ce]),w=(await c().transaction("messages").store.index("by_conv_sort").getAll(m)).map(we);rn(d,w);}function b(d){let m=a.then(d,d);return a=m.then(()=>{},()=>{}),m}function v(d,m){if(d!==o||m===null||m!==r)throw new Error("\u5A92\u4F53\u8D44\u4EA7\u7F13\u5B58\u8D26\u53F7\u4EE3\u9645\u5DF2\u5931\u6548")}function A(){return Math.max(0,Math.floor(e.mediaAssetCache?.now?.()??Date.now()))}async function k(d){let m=e.mediaAssetCache?.estimateStorage??(async()=>typeof navigator>"u"||navigator.storage?.estimate===void 0?{}:await navigator.storage.estimate());try{let{quota:w,usage:p}=await m();if(w===void 0||!Number.isFinite(w)||w<=0)return ni;let y=d.reduce((P,_)=>P+_.byteLength,0),I=Math.max(0,(p??0)-y),f=Math.max(al,Math.floor(w*.2));return Math.max(0,Math.min(il,Math.floor(w-I-f)))}catch{return ni}}async function R(d,m,w){if(d.length===0)return;v(m,w);let p=c().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all(d.flatMap(y=>[p.objectStore("mediaAssets").delete(y),p.objectStore("mediaAssetMeta").delete(y)])),await p.done;}async function x(d,m,w,p){v(d,m);let y=c(),I=e.mediaAssetCache?.strategies;if(I===void 0)return;let f=p??await y.getAll("mediaAssetMeta");v(d,m);let P=new Set;for(let E of I.list()){let U=f.filter(B=>B.kind===E.kind).sort((B,ne)=>B.lastAccessedAt-ne.lastAccessedAt),O=U.reduce((B,ne)=>B+ne.byteLength,0),N=U.length;for(let B of U){if(O<=E.softMaxBytes&&N<=E.maxEntries)break;P.add(B.key),O-=B.byteLength,N-=1;}}let _=f.filter(E=>!P.has(E.key)).sort((E,U)=>E.lastAccessedAt-U.lastAccessedAt),M=Math.max(0,Math.min(await k(f),w??Number.POSITIVE_INFINITY)),D=_.reduce((E,U)=>E+U.byteLength,0);for(let E of _){if(D<=M)break;P.add(E.key),D-=E.byteLength;}await R([...P],d,m);}async function S(d,m,w){v(m,w);let p=e.mediaAssetCache?.strategies.resolve(d.kind);if(p===void 0)return "skipped";let y=d.blob,I=y.size,f=await c().getAll("mediaAssetMeta"),P=await k(f);if(v(m,w),I===0||I>p.maxEntryBytes||P<=0||I>Math.floor(P/2))return "skipped";let _=ai(d),M=A(),D=f.find(B=>B.key===_),E={key:_,kind:d.kind,messageId:d.messageId,resourceVersion:d.resourceVersion,byteLength:I,...d.mimeType===void 0?{}:{mimeType:d.mimeType},createdAt:D?.createdAt??M,lastAccessedAt:M},U=async()=>{v(m,w);let B=c().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all([B.objectStore("mediaAssets").put({key:_,blob:y}),B.objectStore("mediaAssetMeta").put(E)]),await B.done;},O=false;try{await U();}catch(B){if(!(B instanceof DOMException)||B.name!=="QuotaExceededError")throw B;O=true,await x(m,w,Math.max(0,P-I)),await U();}let N=D===void 0?[...f,E]:f.map(B=>B.key===_?E:B);return await x(m,w,void 0,O?void 0:N),v(m,w),await c().get("mediaAssets",_)===void 0?"skipped":"stored"}return {recentHistoryCache:{get:d=>g(async()=>{let m=Fa$1(d),w=c().transaction("recentHistoryPages","readwrite");return on(w,async()=>{let p=await w.store.get(m);if(p===void 0)return null;if(C(p,Date.now()))return await w.store.delete(m),null;let{conversationKey:y,...I}=p;return I})}),async put(d){let m=structuredClone(d);return g(()=>h(m))},delete:d=>g(async()=>{await c().delete("recentHistoryPages",Fa$1(d));}),clear:()=>g(async()=>{await c().clear("recentHistoryPages");})},async open({namespace:d}){if(t!==null&&r===d)return;t!==null&&(t.close(),t=null),r=d;let m=++o,w=n.forAccount(d).name("durable","storage","indexed-db"),p=await openDB(w,el,{upgrade(y,I,f,P){if(y.objectStoreNames.contains("messages"))P.objectStore("messages").indexNames.contains("by_conversation_key_sort")||P.objectStore("messages").createIndex("by_conversation_key_sort",["conversationKey","sortKey"]);else {let _=y.createObjectStore("messages",{keyPath:"id"});_.createIndex("by_conv_sort",["conversationId","sortKey"]),_.createIndex("by_conversation_key_sort",["conversationKey","sortKey"]);}if(y.objectStoreNames.contains("sessions")||y.createObjectStore("sessions",{keyPath:"id"}),y.objectStoreNames.contains("readStates")||y.createObjectStore("readStates",{keyPath:"conversationId"}),y.objectStoreNames.contains("drafts")||y.createObjectStore("drafts",{keyPath:"conversationKey"}),y.objectStoreNames.contains("outbox")||y.createObjectStore("outbox",{keyPath:"id"}),y.objectStoreNames.contains("meta")||y.createObjectStore("meta",{keyPath:"key"}),y.objectStoreNames.contains("userProfiles")||y.createObjectStore("userProfiles",{keyPath:"id"}),y.objectStoreNames.contains("groupMembers")||y.createObjectStore("groupMembers",{keyPath:"groupId"}),y.objectStoreNames.contains("groupProfiles")||y.createObjectStore("groupProfiles",{keyPath:"id"}),y.objectStoreNames.contains("pinnedMessages")||y.createObjectStore("pinnedMessages",{keyPath:"conversationId"}),y.objectStoreNames.contains("channelProfiles")||y.createObjectStore("channelProfiles",{keyPath:"id"}),y.objectStoreNames.contains("channelMembers")||y.createObjectStore("channelMembers",{keyPath:["channelId","userId"]}),y.objectStoreNames.contains("channelMemberSnapshots")||y.createObjectStore("channelMemberSnapshots",{keyPath:"channelId"}),y.objectStoreNames.contains("channelMentionCandidateSnapshots")||y.createObjectStore("channelMentionCandidateSnapshots",{keyPath:"channelId"}),y.objectStoreNames.contains("conversationBackgrounds")||y.createObjectStore("conversationBackgrounds",{keyPath:"key"}),y.objectStoreNames.contains("mediaAssets")||y.createObjectStore("mediaAssets",{keyPath:"key"}),!y.objectStoreNames.contains("mediaAssetMeta")){let _=y.createObjectStore("mediaAssetMeta",{keyPath:"key"});_.createIndex("by_kind_access",["kind","lastAccessedAt"]),_.createIndex("by_access","lastAccessedAt");}y.objectStoreNames.contains("decryptRecoveries")||y.createObjectStore("decryptRecoveries",{keyPath:"key"}).createIndex("by_conversation","conversationKey"),I>0&&I<13&&(P.objectStore("mediaAssets").clear(),P.objectStore("mediaAssetMeta").clear()),y.objectStoreNames.contains("recentHistoryPages")||y.createObjectStore("recentHistoryPages",{keyPath:"conversationKey"});}});if(m!==o){p.close();return}try{await gl(p),await yl(p);}catch(y){throw p.close(),y}if(m!==o){p.close();return}t=p;},async close(){o+=1,r=null,t!==null&&(t.close(),t=null);},async clearRebuildableCaches(){return g(async()=>{let d=o,m=r;await b(async()=>{v(d,m);let p=c().transaction(["userProfiles","groupMembers","groupProfiles","channelProfiles","channelMembers","channelMemberSnapshots","channelMentionCandidateSnapshots","mediaAssets","mediaAssetMeta","meta","recentHistoryPages"],"readwrite");await Promise.all([p.objectStore("userProfiles").clear(),p.objectStore("groupMembers").clear(),p.objectStore("groupProfiles").clear(),p.objectStore("channelProfiles").clear(),p.objectStore("channelMembers").clear(),p.objectStore("channelMemberSnapshots").clear(),p.objectStore("channelMentionCandidateSnapshots").clear(),p.objectStore("mediaAssets").clear(),p.objectStore("mediaAssetMeta").clear(),p.objectStore("meta").delete(vt),p.objectStore("recentHistoryPages").clear(),p.done]);});})},async get(d){let m=o,w=r;return await b(async()=>{if(v(m,w),e.mediaAssetCache?.strategies.resolve(d.kind)===void 0)return null;let p=ai(d),y=c(),[I,f]=await Promise.all([y.get("mediaAssets",p),y.get("mediaAssetMeta",p)]);return v(m,w),I===void 0||f===void 0?(await R([p],m,w),null):(await y.put("mediaAssetMeta",{...f,lastAccessedAt:A()}),{kind:f.kind,messageId:f.messageId,resourceVersion:f.resourceVersion,blob:I.blob,...f.mimeType===void 0?{}:{mimeType:f.mimeType}})})},async put(d){let m=o,w=r;v(m,w);let p=d.blob.size;if(p>l||s+p>l)return "skipped";s+=p;try{return await b(()=>S(d,m,w))}finally{s=Math.max(0,s-p);}},async clear(){let d=o,m=r;await b(async()=>{v(d,m);let w=c().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all([w.objectStore("mediaAssets").clear(),w.objectStore("mediaAssetMeta").clear(),w.done]);});},async getMessage(d,m){let w=await c().get("messages",m);if(w===void 0)return null;let p=we(w);return Fa$1(Ca$1(p))===Fa$1(d)?p:null},async getMessages(d,m){let w=typeof d=="string"?"by_conv_sort":"by_conversation_key_sort",p=typeof d=="string"?d:Fa$1(d);if(await u(d),m.beforeSortKey===void 0&&m.afterSortKey!==void 0){let P=IDBKeyRange.bound([p,m.afterSortKey],[p,Ce]),_=[],M=await c().transaction("messages").store.index(w).openCursor(P,"next");for(;M!==null&&_.length<m.limit;)_.push(M.value),M=await M.continue();return _.map(we)}let y=m.beforeSortKey===void 0?IDBKeyRange.bound([p,""],[p,Ce]):IDBKeyRange.bound([p,""],[p,m.beforeSortKey],false,true),I=[],f=await c().transaction("messages").store.index(w).openCursor(y,"prev");for(;f!==null&&I.length<m.limit;)I.push(f.value),f=await f.continue();return I.reverse().map(we)},async saveMessages(d){if(d.length===0)return;let m=c().transaction("messages","readwrite");await Promise.all([...d.map(w=>m.store.put(si(w))),m.done]);},async searchMessages(d,m){let w=Fa$1(d),p=m.keyword?.trim()??"",y=m.contentTypes;if(p===""&&(y===void 0||y.length===0))return {items:[],exhausted:true};let I=p===""?void 0:await ea$1(p),f=m.beforeSortKey===void 0?IDBKeyRange.bound([w,""],[w,Ce]):IDBKeyRange.bound([w,""],[w,m.beforeSortKey],false,true),P=2e3,_=[],M=0,D,E=await c().transaction("messages").store.index("by_conversation_key_sort").openCursor(f,"prev");for(;E!==null&&_.length<m.limit&&M<P;){let O=ia$1(we(E.value));M+=1,D=O.sortKey;let N=y===void 0||y.includes(O.contentType),B=I===void 0||I.match(ca$1(O))!==null;N&&B&&_.push(O),E=await E.continue();}let U=E===null;return {items:_,exhausted:U,...U?{}:{nextBeforeSortKey:D}}},async getDecryptRecoveries(d){let m=Fa$1(d);return (await c().getAllFromIndex("decryptRecoveries","by_conversation",m)).map(ul)},async saveDecryptRecovery(d){if(d.sContent.byteLength===0||d.sContent.byteLength>cl)throw new Error(`\u89E3\u5BC6\u6062\u590D\u5BC6\u6587\u5B57\u8282\u957F\u5EA6\u975E\u6CD5\uFF1A${d.sContent.byteLength}`);await c().put("decryptRecoveries",ll(d));},async deleteDecryptRecovery(d,m){await c().delete("decryptRecoveries",At(d,m));},async deleteConversationDecryptRecoveries(d){let m=Fa$1(d),w=c().transaction("decryptRecoveries","readwrite"),p=await w.store.index("by_conversation").openCursor(IDBKeyRange.only(m));for(;p!==null;)await p.delete(),p=await p.continue();await w.done;},async getSessions(){return (await c().getAll("sessions")).map(Mt)},async saveSessions(d){if(d.length===0)return;let m=c().transaction("sessions","readwrite");for(let w of d)await m.store.put(Mn(w)),await m.store.delete(w.id);await m.done;},async deleteSession(d){if(typeof d!="string"){let p=c().transaction(["sessions","conversationBackgrounds"],"readwrite");await p.objectStore("sessions").delete(Fa$1(d)),await p.objectStore("conversationBackgrounds").delete(tn(d)),await p.done;return}let m=(await c().getAll("sessions")).map(Mt).filter(p=>p.id===d);rn(d,m.map(p=>({conversationType:p.type})));let w=c().transaction(["sessions","conversationBackgrounds"],"readwrite");if(m[0]!==void 0){let p=Da$1(m[0]);await w.objectStore("sessions").delete(Fa$1(p)),await w.objectStore("conversationBackgrounds").delete(tn(p));}await w.objectStore("sessions").delete(d),await w.done;},async deleteReadState(d){if(typeof d!="string"){await c().delete("readStates",Fa$1(d));return}let w=(await c().getAll("readStates")).map(_n).filter(p=>p.conversationId===d).filter(p=>p.conversationType!==void 0);rn(d,w),w[0]!==void 0&&await c().delete("readStates",Fa$1(w[0])),await c().delete("readStates",d);},async deleteMessage(d,m,w){return g(async()=>{let p=c().transaction(["messages","sessions","decryptRecoveries","recentHistoryPages"],"readwrite");return on(p,async()=>{let y=await p.objectStore("messages").get(m);if(y!==void 0){let I=we(y);if(I.conversationType!==d.conversationType||I.conversationId!==d.conversationId)return !1;await p.objectStore("messages").delete(m);}return await p.objectStore("decryptRecoveries").delete(At(d,m)),await p.objectStore("recentHistoryPages").delete(Fa$1(d)),w!==void 0&&await p.objectStore("sessions").put(Mn(w)),y!==void 0})})},async deleteConversationMessages(d){return g(async()=>{let m=ml(d),w=typeof d=="string"?"by_conv_sort":"by_conversation_key_sort",p=typeof d=="string"?d:Fa$1(d),y=IDBKeyRange.bound([p,""],[p,Ce]),I=c().transaction(["messages","decryptRecoveries","recentHistoryPages"],"readwrite");return on(I,async()=>{let f=I.objectStore("messages"),P=I.objectStore("decryptRecoveries"),_=[],M=[];if(typeof d=="string"){let E=(await f.index("by_conv_sort").getAll(y)).map(we);_=(await P.getAll()).filter(U=>U.conversation.conversationId===d),M=(await I.objectStore("recentHistoryPages").getAll()).filter(U=>U.conversation.conversationId===m),rn(m,[...E,...M.map(U=>({conversationType:U.conversation.conversationType})),..._.map(U=>({conversationType:U.conversation.conversationType}))]);}let D=await f.index(w).openCursor(y);for(;D!==null;)await D.delete(),D=await D.continue();if(typeof d=="string"){for(let E of _)await P.delete(E.key);for(let E of M)await I.objectStore("recentHistoryPages").delete(E.conversationKey);}else {await I.objectStore("recentHistoryPages").delete(Fa$1(d));let E=await P.index("by_conversation").openCursor(IDBKeyRange.only(Fa$1(d)));for(;E!==null;)await E.delete(),E=await E.continue();}})})},async clearConversationHistory(d,m,w){return g(async()=>{let p=Fa$1(d),y=IDBKeyRange.bound([p,""],[p,Ce]),I=c().transaction(["messages","sessions","readStates","decryptRecoveries","recentHistoryPages"],"readwrite");return on(I,async()=>{await I.objectStore("recentHistoryPages").delete(p);let f=await I.objectStore("messages").index("by_conversation_key_sort").openCursor(y);for(;f!==null;)await f.delete(),f=await f.continue();let P=await I.objectStore("decryptRecoveries").index("by_conversation").openCursor(IDBKeyRange.only(p));for(;P!==null;)await P.delete(),P=await P.continue();m!==void 0&&await I.objectStore("sessions").put(Mn(m)),w!==void 0&&(await I.objectStore("readStates").put(_t(w)),await I.objectStore("readStates").delete(w.conversationId));})})},async getReadStates(){return (await c().getAll("readStates")).map(_n)},async saveReadState(d){let m=c().transaction("readStates","readwrite");await m.store.put(_t(d)),d.conversationType!==void 0&&await m.store.delete(d.conversationId),await m.done;},async getDrafts(){return (await c().getAll("drafts")).map(fl)},async saveDraft(d){await c().put("drafts",pl(d));},async deleteDraft(d){await c().delete("drafts",Fa$1(d));},async getConversationBackground(d){return (await c().get("conversationBackgrounds",tn(d)))?.background??null},async saveConversationBackground(d,m){let w=tn(d);await c().put("conversationBackgrounds",{key:w,background:m});},async deleteConversationBackground(d){await c().delete("conversationBackgrounds",tn(d));},async getDefaultConversationBackground(){return (await c().get("conversationBackgrounds",St))?.background??null},async saveDefaultConversationBackground(d){await c().put("conversationBackgrounds",{key:St,background:d});},async deleteDefaultConversationBackground(){await c().delete("conversationBackgrounds",St);},async getOutbox(){return c().getAll("outbox")},async saveOutboxMessage(d){await c().put("outbox",d);},async removeOutboxMessage(d){await c().delete("outbox",d);},async getPinnedMessages(){return (await c().getAll("pinnedMessages")).map(xt)},async savePinnedMessage(d){let m=c().transaction("pinnedMessages","readwrite");await m.store.put(ci(d)),await m.store.delete(d.conversationId),await m.done;},async removePinnedMessage(d){if(typeof d!="string"){await c().delete("pinnedMessages",Fa$1(d));return}let m=(await c().getAll("pinnedMessages")).map(xt).filter(w=>w.conversationId===d);rn(d,m),m[0]!==void 0&&await c().delete("pinnedMessages",Fa$1(Ea$1(m[0]))),await c().delete("pinnedMessages",d);},async getMeta(d){let m=await c().get("meta",d);return m===void 0?null:m.value},async setMeta(d,m){await c().put("meta",{key:d,value:m});},async getUserProfile(d){return await c().get("userProfiles",d)??null},async saveUserProfile(d){await c().put("userProfiles",d);},async getGroupMembers(d){return await c().get("groupMembers",d)??null},async saveGroupMembers(d){await c().put("groupMembers",d);},async getGroupProfile(d){return await c().get("groupProfiles",d)??null},async saveGroupProfile(d){await c().put("groupProfiles",d);},async getChannelProfile(d){return await c().get("channelProfiles",d)??null},async getChannelProfiles(){return c().getAll("channelProfiles")},async saveChannelProfiles(d){if(d.length===0)return;let m=c().transaction("channelProfiles","readwrite");await Promise.all([...d.map(w=>m.store.put(w)),m.done]);},async getChannelListVersion(){let d=await c().get("meta",vt);return typeof d?.value=="string"&&/^\d+$/.test(d.value)?d.value:"0"},async saveChannelListVersion(d){if(!/^\d+$/.test(d))throw new Error(`CHANNEL list version \u975E\u6CD5\uFF1A${d}`);await c().put("meta",{key:vt,value:d});},async getChannelMembers(d,m){if(m.length===0)return [];let w=c().transaction("channelMembers"),p=await Promise.all(m.map(y=>w.store.get([d,y])));return await w.done,p.filter(y=>y!==void 0)},async saveChannelMembers(d){if(d.length===0)return;let m=c().transaction("channelMembers","readwrite");for(let w of d){let p=await m.store.get([w.channelId,w.userId]);p!==void 0&&dl(w.updateVersion,p.updateVersion)<0||await m.store.put(w);}await m.done;},async deleteChannelMembers(d){let m=IDBKeyRange.bound([d,""],[d,Ce]),w=c().transaction("channelMembers","readwrite"),p=await w.store.openCursor(m);for(;p!==null;)await p.delete(),p=await p.continue();await w.done;},async getChannelMemberSnapshot(d){return await c().get("channelMemberSnapshots",d)??null},async saveChannelMemberSnapshot(d){await c().put("channelMemberSnapshots",d);},async deleteChannelMemberSnapshot(d){await c().delete("channelMemberSnapshots",d);},async getChannelMentionCandidateSnapshot(d){return await c().get("channelMentionCandidateSnapshots",d)??null},async saveChannelMentionCandidateSnapshot(d){await c().put("channelMentionCandidateSnapshots",d);},async deleteChannelMentionCandidateSnapshot(d){await c().delete("channelMentionCandidateSnapshots",d);}}}function Cl(e={}){let n=e.createSocket??(u=>new globalThis.WebSocket(u)),t=e.connectTimeoutMs??1e4,r={open:new Set,message:new Set,close:new Set,error:new Set},o,i,a="idle",s;function l(u,b){for(let v of [...r[u]])v(b);}function c(){s!==void 0&&(clearTimeout(s),s=void 0);}function g(u,b){b!==void 0&&(u.removeEventListener("open",b.onOpen),u.removeEventListener("message",b.onMessage),u.removeEventListener("error",b.onError),u.removeEventListener("close",b.onClose));}function C(){if(c(),o!==void 0){g(o,i);try{o.close(1e3);}catch{}o=void 0;}i=void 0;}function h(u,b,v){let A={onOpen:()=>{u===o&&(c(),a="open",l("open",{endpoint:b}));},onMessage:k=>{if(u!==o||a!=="open")return;let R=k?.data;if(R instanceof ArrayBuffer){l("message",{data:R});return}l("error",{error:new Error(`WsTransport\uFF1A\u6536\u5230\u975E ArrayBuffer \u6D88\u606F\uFF08${typeof R}\uFF09\uFF0C\u5DF2\u5FFD\u7565`)});},onError:k=>{u===o&&l("error",{error:new Error(`WsTransport\uFF1AWebSocket error \u4E8B\u4EF6\uFF08${k instanceof Event?k.type:typeof k}\uFF09`)});},onClose:k=>{u===o&&(c(),g(u,A),o=void 0,i=void 0,a="closed",l("close",{code:k?.code??1006,reason:k?.reason??"",wasClean:k?.wasClean??false}));}};if(i=A,u.addEventListener("open",A.onOpen),u.addEventListener("message",A.onMessage),u.addEventListener("error",A.onError),u.addEventListener("close",A.onClose),v>0){let k=setTimeout(()=>{if(!(u!==o||a!=="connecting")){l("error",{error:new Error(`WsTransport\uFF1A\u8FDE\u63A5\u8D85\u65F6\uFF08${v}ms \u672A open\uFF09`)});try{u.close();}catch{}}},v);k.unref?.(),s=k;}}return {get state(){return a},async connect(u,b){let v=u[0];if(v===void 0)throw new Error("WsTransport.connect\uFF1Aendpoints \u4E3A\u7A7A\uFF08P0 single \u7B56\u7565\u9700\u81F3\u5C11\u4E00\u4E2A\u7AEF\u70B9\uFF09");C(),a="connecting";let A;try{A=n(v.url);}catch(k){throw a="closed",k}A.binaryType="arraybuffer",o=A,h(A,v,b?.connectTimeoutMs??t);},async send(u){if(o===void 0||a!=="open")throw new Error(`WsTransport.send\uFF1A\u8FDE\u63A5\u672A\u5C31\u7EEA\uFF08state=${a}\uFF09\uFF0C\u62D2\u7EDD\u53D1\u9001`);o.send(u);},async close(u=1e3,b){c(),o!==void 0&&(a==="connecting"||a==="open")&&(a="closing",o.close(u,b));},on(u,b){return r[u].add(b),()=>{r[u].delete(b);}}}}
|
|
7
|
+
export{ac as $,hi as $a,Ms as A,Do as Aa,li as B,Lc as Ba,Rs as C,Hc as Ca,Ds as D,Fc as Da,Us as E,$c as Ea,Os as F,jc as Fa,Bs as G,Jc as Ga,Ns as H,zc as Ha,Ks as I,Wc as Ia,Gs as J,Yc as Ja,Ls as K,Qc as Ka,Hs as L,Xc as La,Fs as M,Zc as Ma,$s as N,wn as Na,js as O,fe as Oa,Js as P,pd as Pa,qs as Q,fd as Qa,zs as R,Bd as Ra,Ys as S,F as Sa,bn as T,ui as Ta,Cn as U,ar as Ua,Qs as V,zd as Va,ec as W,Wd as Wa,nc as X,Qd as Xa,tc as Y,hl as Ya,rc as Z,bl as Za,ic as _,Cl as _a,$i as a,cc as aa,sn as ab,$n as b,dc as ba,Ei as bb,Ke as c,lc as ca,Fi as cb,q as d,uc as da,ta as e,fc as ea,oa as f,gc as fa,Ge as g,yc as ga,ia as h,hc as ha,Ca as i,bc as ia,Se as j,Cc as ja,W as k,Pc as ka,Ea as l,We as la,ka as m,vc as ma,$e as n,Sc as na,ae as o,Ac as oa,Ha as p,Mc as pa,je as q,_c as qa,Q as r,xc as ra,ts as s,Ec as sa,ds as t,kc as ta,fs as u,Rc as ua,ms as v,Uc as va,Cs as w,Oc as wa,_e as x,Bc as xa,j as y,Nc as ya,ye as z,To as za};
|