k2-im 0.1.30 → 0.1.32
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 +160 -19
- package/dist/chat-kit-pinia.js +1 -1
- package/dist/chat-kit-vue.d.ts +52 -7
- package/dist/chat-kit-vue.js +1 -1
- package/dist/chat-kit.d.ts +207 -21
- package/dist/chat-kit.js +1 -1
- package/dist/chunk-GAAHNTJM.js +7 -0
- package/dist/chunk-HSVVRLGM.js +1 -0
- package/dist/chunk-JA5TKCQ2.js +2 -0
- package/dist/chunk-MIFIQ45I.js +2 -0
- package/dist/chunk-OYH7COTJ.js +1 -0
- package/dist/chunk-QQ23QYWK.js +2 -0
- package/dist/chunk-SEHHXKP7.js +1 -0
- package/dist/i18n.d.ts +55 -6
- package/dist/i18n.js +1 -1
- package/dist/index.d.ts +211 -21
- package/dist/index.js +1 -1
- package/dist/sdk.d.ts +153 -17
- package/dist/sdk.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-37HOEWMF.js +0 -1
- package/dist/chunk-4KPJTXQN.js +0 -2
- package/dist/chunk-GHZUH7RB.js +0 -7
- package/dist/chunk-MNWNUGIV.js +0 -2
- package/dist/chunk-SLFKCTEX.js +0 -1
- package/dist/chunk-VRGWQLDM.js +0 -1
- package/dist/chunk-XA4W5PWT.js +0 -2
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import {wa as wa$1,G as G$1,J as J$1,f,g,i,Y as Y$1,Z as Z$1,aa as aa$1,ba as ba$1,W as W$1,X as X$1,L as L$1,M,F as F$1,I,m,e,K,H as H$1,N,P,R,Q as Q$1,S,T as T$1,U,V as V$1,ia as ia$1,ja as ja$1,xb,Ha as Ha$1,Ga as Ga$1,Fa as Fa$1,ga as ga$1,ka as ka$1,ea as ea$1,Ea as Ea$1,_,$ as $$1,l,s,Ca as Ca$1,Ba as Ba$1,ca as ca$1,da as da$1}from'./chunk-QQ23QYWK.js';import*as V from'node-forge';import {deleteDB,openDB}from'idb';function wi(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 Pi(e){return e instanceof F?e.code:void 0}var Ii=3600*1e3,vi=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 Si(e){let n=Number(e);if(!(!Number.isFinite(n)||n<=0))return n>1e12?n/1e3:n}function Ai(e){let n=e.replace(/\/+$/,"");return n===""?"":/^https?:\/\//i.test(n)?n:`https://${n}`}function fr(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=Ai(le(n.dns_point,n.dnsPoint)),u=[t===""?"access_key_id":"",r===""?"secret_key":"",o===""?"session_token":"",i===""?"bucket":"",a===""?"region":"",s===""?"dns_point":""].filter(h=>h!=="");if(u.length>0)throw new F("credentials-invalid",`S3 \u4E0A\u4F20\u51ED\u8BC1\u683C\u5F0F\u65E0\u6548\uFF1A\u7F3A\u5C11 ${u.join("\u3001")}`);let c=Si(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 Mi(e,n){if(n-e.fetchedAtMs>=Ii)return false;let{expiresAtSeconds:t}=e.credential;return t===void 0?true:t*1e3-vi>n}function mr(e){let n=new Map,t=new Map;async function r(o,i){let a;try{a=await e({bucket:o,forceRefresh:i});}catch(u){let c=u instanceof Error?u.message:String(u);throw new F("credentials-request-failed",`S3 \u4E0A\u4F20\u51ED\u8BC1\u83B7\u53D6\u5931\u8D25\uFF1Abucket=${o}\uFF1B\u539F\u56E0\uFF1A${c}`,{cause:u})}let s=fr(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&&Mi(s,Date.now()))return Promise.resolve(s.credential);n.delete(o);let u=t.get(o);if(u!==void 0)return u;let c=r(o,a).finally(()=>{t.get(o)===c&&t.delete(o);});return t.set(o,c),c}}}function _i(){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 un(e){return e instanceof L?e.code:void 0}function gr(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,xi=new URL("./speex-runtime.txt",import.meta.url).href,Ln=null,Ei=15e3;async function Ri(){document.querySelector('script[data-speex-runtime="true"]')?.remove();let e=new AbortController,n=setTimeout(()=>e.abort(new Error("Speex runtime fetch timeout")),Ei),t;try{t=await fetch(xi,{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 Hn(){let e=typeof window>"u"?void 0:window;return e?.__speexInH5!==void 0?e.__speexInH5:(Ln??=(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 Ri(),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 Ln=null,n instanceof L?n:new L("codec-unavailable","Speex \u8FD0\u884C\u65F6\u52A0\u8F7D\u5931\u8D25",{cause:n})}),Ln)}function yr(){Hn().catch(()=>{});}function pe(e,n,t){for(let r=0;r<t.length;r+=1)e.setUint8(n+r,t.charCodeAt(r));}function Ti(e,n){let r=new ArrayBuffer(44+e.length*2),o=new DataView(r);pe(o,0,"RIFF"),o.setUint32(4,36+e.length*2,true),pe(o,8,"WAVE"),pe(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),pe(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 Fn(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 ki=40,$n=120,Di=40,jn=80;function Ui(e,n){let t=Math.min(Math.floor(n*ki/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 qn(e,n){if(e.length===0)return e;let t=Math.min(Math.floor(n*$n/1e3),Math.max(0,e.length-1)),r=t>0?e.subarray(t):e,o=new Float32Array(r),i=Math.min(Math.floor(n*Di/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 u=o.length-1-a;o[u]=(o[u]??0)*s;}return o}function ln(e,n){let r=new ArrayBuffer(44+e.length*2),o=new DataView(r);return pe(o,0,"RIFF"),o.setUint32(4,36+e.length*2,true),pe(o,8,"WAVE"),pe(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),pe(o,36,"data"),o.setUint32(40,e.length*2,true),new Int16Array(r,44).set(e),new Uint8Array(r)}function Oi(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 Bi(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 hr(e,n){let t=await Hn(),r=Math.floor(n*jn/1e3),o=new Float32Array(r+e.length);o.set(e,r);let i=Ti(o,n);try{return Oi(t.encodeFile(i))}catch(a){throw new L("encode-failed","\u8BED\u97F3\u7F16\u7801\u5931\u8D25",{cause:a})}}async function br(e){let n=await Hn();try{let[t,r]=n.decodeFile(Bi(e));if(t.length===0)throw new Error("decoded empty pcm");let o=Ui(Fn(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 Cr(e){let n=await br(e);return {wavData:ln(n.samples,n.sampleRate),durationMs:n.durationMs}}var Ni=.5,Ki=2;function wr(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,Ni),Ki)}function Gi(e={}){let n=e.cacheMax??8,t={activeId:"",isPlaying:false,loadingId:"",progress:0,currentTimeMs:0,errorIds:new Set,playbackRate:e.playbackRate===void 0?1:wr(e.playbackRate)},r=new Set;function o(){for(let f of r)f(t);}let i=null,a=new Map,s=0,u=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(u)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 l(f,P){return !u&&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 R(){s+=1,c=false,t.loadingId="",A(),i!==null&&h(i),o();}function k(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:un(D),cause:D}}}if(M===null)return {entry:null};try{let{wavData:D,durationMs:E}=await Cr(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:un(D),cause:D}}}}async function d(f,P){if(u)return;let _=v();if(x(f),t.activeId===f){if(t.isPlaying){_.pause();return}let E=++s;try{await _.play();}catch{if(!l(E,f))return;k(f),o();return}if(!l(E,f))return;t.isPlaying=true,o(),P.onPlayStart?.();return}if(t.loadingId===f)return;R();let M=++s;t.loadingId=f,o();let D=await S(f,P.load);if(M===s){if(t.loadingId="",D.entry===null){k(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(!l(M,f))return;A(),h(_),k(f),o(),P.onDecodeError?.(void 0,E);return}l(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(()=>{l(P,f)&&(t.isPlaying=true,o());}).catch(()=>{l(P,f)&&(k(f),o());});}function y(f){let P=wr(f);P!==t.playbackRate&&(t.playbackRate=P,i!==null&&b(i),o());}function I(){if(!u){u=true,R();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:R,dispose:I}}function Li(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 Hi(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,u=.2;s<200?u=.15:s<300?u=.4:s<=3400?u=1:s<=6e3&&(u=.45),o+=(e[a]??0)/255*u,i+=u;}return i>0?o/i:0}function Pr(e){let n=Li(e.timeDomain),t=Hi(e.frequency,e.sampleRate,e.fftSize),r=n*.55+t*.45;return Math.min(1,r*e.boost)**.72}var pn=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 Fi=5e3,Jn=15e3,$i=25e3,ji=25e3;function Ne(e,n,t){return new Promise((r,o)=>{let i=setTimeout(()=>o(new Error(t)),n);e.then(a=>{clearTimeout(i),r(a);},a=>{clearTimeout(i),o(a);});})}async function qi(){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");let e=navigator.mediaDevices.getUserMedia({audio:Ji()});try{return await Ne(e,ji,"\u9EA6\u514B\u98CE\u6388\u6743\u8BF7\u6C42\u8D85\u65F6")}catch(n){throw e.then(t=>t.getTracks().forEach(r=>r.stop())).catch(()=>{}),gr(n)}}function Ji(){return {channelCount:1,echoCancellation:true,noiseSuppression:true,autoGainControl:true}}var Vi=50,zi=.12,Wi=2.6,Yi=.06,Qi=256;function Xi(){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 Zi(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 Ne(i.resume(),Jn,"audioContext.resume timeout").catch(()=>{});let s=await Ne(i.decodeAudioData(await e.arrayBuffer()),Jn,"decodeAudioData timeout"),u=Math.max(1,Math.ceil(s.duration*n)),c=new o(1,u,n),g=c.createBufferSource();return g.buffer=s,g.connect(c.destination),g.start(0),(await Ne(c.startRendering(),Jn,"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 Ir(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 ea(e={}){if(typeof MediaRecorder>"u")throw new L("no-media-recorder","\u5F53\u524D\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\u5F55\u97F3");let n;e.stream!==void 0?n=e.stream:n=await qi(),yr();let t=Xi(),r=e.maxDurationMs??6e4,o="recording",i=[],a=0,s=[],u=null,c=null,g=null,C=[],h=0,l=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??Vi,A=e.amplitude?.boost??Wi,R=e.amplitude?.smoothing??zi,k=e.amplitude?.minVolume??Yi;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(()=>{!l&&o==="recording"&&p()>=r&&(l=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=Qi,_.smoothingTimeConstant=R,P.connect(_);let M=new Uint8Array(_.frequencyBinCount),D=new Uint8Array(_.fftSize),E=new pn;w=setInterval(()=>{if(o!=="recording"||u===null)return;_.getByteFrequencyData(M),_.getByteTimeDomainData(D);let U=Pr({timeDomain:D,frequency:M,sampleRate:m.sampleRate,fftSize:_.fftSize,boost:A}),O=E.next(U),N=O<k?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"&&u!==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=u;return f===null?Promise.resolve():(u=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();},Fi);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 Zi(P,te,m);_.length!==0&&(i.push(_),a+=_.length/te*1e3);})().finally(()=>{c=null;}),c)}try{u=b();}catch(f){throw o="closed",y(),f}return {getState:()=>o,recordedMs:p,async pause(){o==="recording"&&(o="paused",await I(),(l||a>=r)&&x());},async resume(){o!=="paused"||l||(u=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=Ir(i);if(P.length===0)throw new L("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let _=qn(P,te);if(_.length===0)throw new L("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let M=Math.min(s.length,Math.ceil($n/v));return {data:await hr(_,te),durationMs:Math.round(_.length/te*1e3)+jn,waveform:s.slice(M),filename:`AUDIO_${Date.now()}.ogg`,mimeType:"audio/ogg"}};try{return await Ne(f(),$i,"\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=u;if(u=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=Ir(i),P=qn(f,te);if(P.length===0)throw new L("empty-recording","\u6682\u65E0\u53EF\u8BD5\u542C\u7684\u5F55\u97F3\u5185\u5BB9");return {wavData:ln(Fn(P),te),durationMs:Math.round(P.length/te*1e3)}}}}function ve(e){let n=new Map;return {shouldRenegotiate(t,r,o){if(r===void 0)return true;if(o!==void 0&&!e(o,r))return false;let i=n.get(t);return i!==void 0&&e(i,r)?false:(n.set(t,r),true)},reset(t){n.delete(t);}}}function vr(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 Sr(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 u=n.length===16&&/^[\x20-\x7E]+$/.test(n)?Uint8Array.from(n,c=>c.charCodeAt(0)):void 0;return {canonical:s,...u===void 0?{}:{legacyAscii:u},metadata:{channelKeyCharLength:n.length,decodedByteLength:a.length,padByteCount:Math.max(0,16-a.length),legacyAsciiCandidate:u!==void 0}}}function na(e){let n=new Map,t=new Map,r=new Map,o=new Map,i=ve(vr);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 u(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=Sr(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)&&u(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 l(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 R(S,d){let m=S.trim();if(m==="")throw new re("channel id \u4E0D\u80FD\u4E3A\u7A7A");let w=Sr(d);u(m),i.reset(m),n.set(m,a(w));}function k(S){let d=S.trim();d!==""&&(u(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:l,getChannelKeyCandidates:b,getCachedChannelKeyCandidates:v,getCachedChannelKeyMetadata:A,primeChannelKey:R,clearChannelKey:k,clearAll:x}}function Vn(){let e=globalThis.scheduler;return typeof e?.yield=="function"?e.yield():new Promise(n=>setTimeout(n,0))}var Yn=2654435769,Ar=16,Se=8,zn=16,Mr=32;function _r(e){if(e.length<zn)throw new Error(`TEA key \u957F\u5EA6\u4E0D\u8DB3\uFF1A${e.length}\uFF0C\u9700 \u2265 ${zn} \u5B57\u8282`);let n=new DataView(e.buffer,e.byteOffset,zn);return [n.getUint32(0,true),n.getUint32(4,true),n.getUint32(8,true),n.getUint32(12,true)]}function Qn([e,n],[t,r,o,i]){let a=e>>>0,s=n>>>0,u=Math.imul(Yn,16)>>>0;for(let c=0;c<Ar;c++)s=s-(Math.imul(a,16)+o^a+u^(a>>>5)+i)>>>0,a=a-(Math.imul(s,16)+t^s+u^(s>>>5)+r)>>>0,u=u-Yn>>>0;return [a,s]}function Xn([e,n],[t,r,o,i]){let a=e>>>0,s=n>>>0,u=0;for(let c=0;c<Ar;c++)u=u+Yn>>>0,a=a+(Math.imul(s,16)+t^s+u^(s>>>5)+r)>>>0,s=s+(Math.imul(a,16)+o^a+u^(a>>>5)+i)>>>0;return [a,s]}function Ke(e,n,t,r){let o=_r(n),i=new Uint8Array(e.length),a=Math.floor(e.length/Se),s=r===void 0?a:Math.min(a,Math.floor(r/Se)),u=new DataView(e.buffer,e.byteOffset,e.byteLength),c=new DataView(i.buffer);for(let C=0;C<s;C++){let h=C*Se,[l,b]=t([u.getUint32(h,true),u.getUint32(h+4,true)],o);c.setUint32(h,l,true),c.setUint32(h+4,b,true);}let g=s*Se;return g<e.length&&i.set(e.subarray(g),g),i}function Ge(e,n){return Ke(n,e,Qn)}function Le(e,n){return Ke(n,e,Xn)}function xr(e,n){return Ke(n,e,Xn,Mr)}function Er(e,n){return Ke(n,e,Qn,Mr)}var ta=1024*1024;function ra(){return Vn()}function Wn(e){if(e?.aborted)throw new DOMException("TEA \u5206\u5757\u5904\u7406\u5DF2\u53D6\u6D88","AbortError")}async function Zn(e,n,t,r=ta,o={}){if(!Number.isInteger(r)||r<=0||r%Se!==0)throw new RangeError(`TEA \u5206\u5757\u5927\u5C0F\u5FC5\u987B\u662F ${Se} \u7684\u6B63\u6574\u6570\u500D\uFF1A${r}`);_r(e);let i=t==="encrypt"?Xn:Qn,a=o.yieldToMain??ra,s=n.size,u=[],c=0;for(;c<s;){Wn(o.signal);let g=Math.min(c+r,s),C=new Uint8Array(await n.slice(c,g).arrayBuffer());Wn(o.signal),u.push(new Blob([Ke(C,e,i)])),c=g,o.onProgress?.(c,s),c<s&&await a();}return Wn(o.signal),new Blob(u)}var Rr=8,fn=16;function oa(e){let n=V.md.md5.create();return n.update(e,"utf8"),n.digest().toHex()}function kr(e){return new TextEncoder().encode(e)}function ia(e){let n=e.length;for(;n>0&&e[n-1]===0;)n-=1;return new TextDecoder().decode(e.subarray(0,n))}function aa(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 sa(e){let n="";for(let t of e)n+=String.fromCharCode(t);return btoa(n)}function ca(e){let n=Math.ceil(e.length/Rr)*Rr;if(n===e.length)return e;let t=new Uint8Array(n);return t.set(e),t}function Dr(e,n=oa){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<fn)throw new Error("collect TEA key: MD5 \u957F\u5EA6\u4E0D\u8DB3");let o=kr(r.slice(0,fn).toUpperCase());if(o.length<fn)throw new Error("collect TEA key: \u6D3E\u751F\u7ED3\u679C\u4E0D\u8DB3 16 \u5B57\u8282");return o.subarray(0,fn)}function Ur(e,n,t){return sa(Le(Dr(n,t),ca(kr(e))))}function da(e,n,t){return ia(Ge(Dr(n,t),aa(e)))}function ua(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function et(e){let n=e.trim();if(n===""||!n.startsWith("{"))return null;try{return ua(JSON.parse(n))}catch{return null}}function la(e){let n=e.trim(),t=n.indexOf("}");return t>=0?n.slice(0,t+1):n}function Or(e,n,t){let r=et(e);if(r!==null)return r;if(e.trim()===""||n.trim()==="")return null;try{let o=da(e,n,t);return et(o)??et(la(o))}catch{return null}}var pa="core";var He=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";}},J=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:pa,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 He(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 He(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 Br(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 fa(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 ma(e){let n=e.clientType,t=new Map,r=new Map,o=ve((h,l)=>h===l),i=null,a=null;function s(h,l){e.onError?.(h,l);}function u(){if(i!==null)return Promise.resolve(i);if(a!==null)return a;let h=Promise.resolve().then(()=>e.crypto.generateTempKeyPair()).then(l=>(i=l,l)).finally(()=>{a===h&&(a=null);});return a=h,h}async function c(h){let l;try{l=await u();}catch(R){return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u751F\u6210\u4E34\u65F6 RSA \u5BC6\u94A5\u5931\u8D25\uFF08userId=${h}\uFF09`,R),null}let b;try{b=await Br(e.client,{publicKey:l.publicKeyBase64,clientType:n});}catch(R){return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u8BF7\u6C42\u5F02\u5E38\uFF08userId=${h}\uFF09`,R),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 R=e.crypto.rsaDecryptPkcs1({data:fa(v),privateKey:l.privateKey}),k=new TextDecoder().decode(R).trim();if(k==="")return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u89E3\u51FA\u7684\u79C1\u94A5\u4E3A\u7A7A\uFF08userId=${h}\uFF09`),null;let x={privateKey:k,version:A};return t.set(h,x),x}catch(R){return s(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u4E34\u65F6\u79C1\u94A5\u89E3 prv_key \u5931\u8D25\uFF08userId=${h}\uFF09`,R),null}}function g(h,l){let b=h.trim();if(b==="")return Promise.resolve(null);if(l!==void 0){let k=r.get(b);if(k!==void 0)return k;o.shouldRenegotiate(b,l.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 R=c(b).finally(()=>{r.get(b)===R&&r.delete(b);});return r.set(b,R),R}function C(h){return t.get(h.trim())??null}return {getUserPrivateKey:g,getCachedPrivateKey:C}}function Nr(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 ga(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 ya(e){let n=e.clientType,t=new Map,r=new Map,o=new Map,i=ve((l,b)=>l===b),a=null,s=null;function u(){if(a!==null)return Promise.resolve(a);if(s!==null)return s;let l=Promise.resolve().then(()=>e.crypto.generateTempKeyPair()).then(b=>(a=b,b)).finally(()=>{s===l&&(s=null);});return s=l,l}async function c(l){let b=o.get(l)??0,v;try{v=await u();}catch(d){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u751F\u6210\u4E34\u65F6 RSA \u5BC6\u94A5\u5931\u8D25\uFF08groupId=${l}\uFF09`,d),null}let A;try{A=await Nr(e.client,{groupId:l,publicKey:v.publicKeyBase64,clientType:n});}catch(d){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u8BF7\u6C42\u5F02\u5E38\uFF08groupId=${l}\uFF09`,d),null}if(A.data===null)return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u4E1A\u52A1\u5931\u8D25\uFF08groupId=${l}\uFF0Ccode=${A.code}\uFF09`),null;let R=A.data,k=String(R.prv_key??R.prvKey??R.private_key??"").trim(),x=String(R.pub_key??R.pubKey??R.public_key??"").trim(),S=String(R.version??"").trim();if(k==="")return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u54CD\u5E94\u7F3A\u5C11 prv_key\uFF08groupId=${l}\uFF09`),null;try{let d=e.crypto.rsaDecryptPkcs1({data:ga(k),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=${l}\uFF09`),null;let w={privateKey:m,publicKey:x,version:S};return (o.get(l)??0)===b&&t.set(l,w),w}catch(d){return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u4E34\u65F6\u79C1\u94A5\u89E3 prv_key \u5931\u8D25\uFF08groupId=${l}\uFF09`,d),null}}function g(l,b){let v=l.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 R=r.get(v);if(R!==void 0)return R;let k=c(v).finally(()=>{r.get(v)===k&&r.delete(v);});return r.set(v,k),k}function C(l){return t.get(l.trim())??null}function h(l){let b=l.trim();t.delete(b),r.delete(b),o.set(b,(o.get(b)??0)+1),i.reset(b);}return {getGroupKeys:g,getCachedGroupKeys:C,getCachedGroupKeyVersion:l=>t.get(l.trim())?.version??null,clearGroupKeys:h}}async function Fe(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 ha(e){let n=e.clientType,t=new Map,r=new Map;async function o(a){try{let u=((await Fe(e.client,{userId:a,clientType:n}))?.public_key??"").trim();return u===""?(e.onError?.(`\u53D6\u5BF9\u7AEF\u516C\u94A5\uFF1A/user/info/other \u65E0 public_key\uFF08userId=${a}\uFF09`),null):(t.set(a,u),u)}catch(s){return e.onError?.(`\u53D6\u5BF9\u7AEF\u516C\u94A5\u8BF7\u6C42\u5F02\u5E38\uFF08userId=${a}\uFF09`,s),null}}function i(a,s){let u=a.trim();if(u==="")return Promise.resolve(null);s?.force===true&&t.delete(u);let c=t.get(u);if(c!==void 0)return Promise.resolve(c);let g=r.get(u);if(g!==void 0)return g;let C=o(u).finally(()=>{r.get(u)===C&&r.delete(u);});return r.set(u,C),C}return {getPeerPublicKey:i}}var ge=16;function Kr(e){let n="";for(let t of e)n+=String.fromCharCode(t);return n}function Gr(e){let n=new Uint8Array(e.length);for(let t=0;t<e.length;t++)n[t]=e.charCodeAt(t)&255;return n}function Lr(e){return e.replace(/(.{64})/g,`$1
|
|
2
|
+
`).trim()}function ba(e){return e.replace(/-----BEGIN[^-]+-----/g,"").replace(/-----END[^-]+-----/g,"").replace(/\s+/g,"")}function Ca(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=Lr(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 Hr(e){let n=Ca(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 u=0;u<r.length;u+=t){let c=Math.min(u+t,r.length);try{let g=n.decrypt(Kr(r.subarray(u,c)),"RSAES-PKCS1-V1_5");o.push(Gr(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 ${u}..${c}\uFF0CkeySize ${t}B\uFF0C\u79C1\u94A5 ${n.n.bitLength()}bit\uFF09\uFF1A${C}`)}}let i=o.reduce((u,c)=>u+c.length,0),a=new Uint8Array(i),s=0;for(let u of o)a.set(u,s),s+=u.length;return a}function wa(e){let n=Hr({data:e.secretKey,privateKey:e.privateKey});if(n.length<ge)throw new Error(`\u7AEF\u5230\u7AEF\u89E3\u5BC6\u5931\u8D25\uFF1ARSA \u89E3\u51FA\u7684 teaKey \u957F\u5EA6 ${n.length} < ${ge}`);return Ge(n,e.cipherData)}function Pa(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=Lr(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 Fr(){let e=new Uint8Array(ge),n=new Uint8Array(1);for(let t=0;t<ge;t++){let r=0;do globalThis.crypto.getRandomValues(n),r=n[0]??0;while(r===0);e[t]=r;}return e}function Ia(e,n){if(n.length===0)throw new Error("RSA \u52A0\u5BC6\uFF1A\u660E\u6587\u4E3A\u7A7A");let t=Pa(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 u=0;u<n.length;u+=r){let c=Math.min(u+r,n.length),g=t.encrypt(Kr(n.subarray(u,c)),"RSAES-PKCS1-V1_5");o.push(Gr(g));}let i=o.reduce((u,c)=>u+c.length,0),a=new Uint8Array(i),s=0;for(let u of o)a.set(u,s),s+=u.length;return a}function va(e){let n=e.teaKey??Fr();if(n.length<ge)throw new Error(`\u7AEF\u5230\u7AEF\u52A0\u5BC6\u5931\u8D25\uFF1AteaKey \u957F\u5EA6 ${n.length} < ${ge}`);let t=n.subarray(0,ge),r=Le(t,e.plain);return {secretKey:Ia(e.publicKey,t),cipherData:r}}function Sa(e){return Ge(e.teaKey,e.cipherData)}function Aa(e){return Le(e.teaKey,e.plain)}function Ma(e){return Zn(e.teaKey,e.plain,"encrypt",void 0,e.signal===void 0?{}:{signal:e.signal})}function _a(e){return Zn(e.teaKey,e.cipherData,"decrypt",void 0,e.signal===void 0?{}:{signal:e.signal})}function xa(e){return xr(e.teaKey,e.plain)}function Ea(e){return Er(e.teaKey,e.cipherData)}function Ra(){return new Promise((e,n)=>{V.pki.rsa.generateKeyPair({bits:2048,e:65537,workers:-1},(t,r)=>{if(t){n(t);return}e({publicKeyBase64:ba(V.pki.publicKeyToPem(r.publicKey)),privateKey:V.pki.privateKeyToPem(r.privateKey)});});})}function Ta(){return {decryptEndToEnd:wa,encryptEndToEnd:va,decryptSymmetric:Sa,encryptSymmetric:Aa,encryptSymmetricChunked:Ma,decryptSymmetricChunked:_a,encryptFileSimple:xa,decryptFileSimple:Ea,randomTeaKey:Fr,generateTempKeyPair:Ra,rsaDecryptPkcs1:Hr}}function nt(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function $e(e,n){return T(e,"/friend/apply/list_paginated",{type:n.listType,page:n.page,page_size:n.pageSize},nt(n.clientType,"GET"))}function je(e,n){return T(e,"/friend/apply/agree",{id:n.applicationId},nt(n.clientType,"POST"))}function qe(e,n){return T(e,"/friend/apply/del",{id:n.applicationId},nt(n.clientType,"POST"))}var $r=50,jr=20,qr=1,tt=2,rt=3,ka=4,Da=5,Jr=0,Ua=1,Oa=2;function Ba(e){switch(e){case Jr:case Ua:case Oa:return e;default:return}}var Ae=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 Vr(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 zr(e){let n=H(e.status);if(e.status===void 0||n==="")return true;let t=Number(n),r=Ba(t);if(r===void 0)throw new W(`\u672A\u77E5\u7533\u8BF7\u72B6\u6001\uFF1A${n}`);return r===Jr}function Na(e){let n=H(e.type);if(n==="")return true;if(Number(n)!==qr)throw new W(`\u8054\u7CFB\u4EBA\u7533\u8BF7\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${n}`);return true}function Ka(e){let n=Number(H(e.type));if(n!==tt&&n!==rt&&n!==ka&&n!==Da)throw new W(`GROUP/CHANNEL \u6DF7\u5408\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${H(e.type)||"<empty>"}`);return n}function mn(e){if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>$r)throw new W(`limit \u5FC5\u987B\u4E3A 1-${$r}`);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 Wr(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 ot(e){let n=e.trim();if(n==="")throw new W("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");return n}function Ga(e){let n=ot(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=Vr(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 La(e){let n=ot(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 u=H(e.group_info?.head_img_url??e.group_info?.avatar),c=Vr(e.create_time??e.createTime??e.update_version);return {applicationId:n,groupId:t,kind:Number(e.type)===rt?"invite":"request",actor:{id:r,name:o,...i===""?{}:{avatarUrl:i},...a===""?{}:{displayId:a}},target:{id:t,name:s,...u===""?{}:{avatarUrl:u}},message:H(e.remarks??e.introduce_self),...c===void 0?{}:{createdAt:c}}}async function gn(e,n,t){let r=await t(e.client,{applicationId:ot(n),clientType:e.clientType});if(!r.ok)throw new Ae(r.code,r.message)}function Ha(e){async function n(t){let{pageSize:r}=mn(t),{page:o}=mn(t);for(let i=0;i<jr;i+=1){let a=await $e(e.client,{listType:qr,page:o,pageSize:r,clientType:e.clientType});if(!a.ok)throw new Ae(a.code,a.message);let s=Wr(a.data),u=s.filter(C=>Na(C)&&zr(C)).map(Ga),c=s.length<r,g=o+1;if(u.length>0||c)return {items:u,exhausted:c,...c?{}:{nextCursor:String(g)}};o=g;}return {items:[],exhausted:false,nextCursor:String(o)}}return {listPendingApplications:n,acceptApplication:t=>gn(e,t,je),ignoreApplication:t=>gn(e,t,qe)}}function Fa(e){async function n(t){let{pageSize:r}=mn(t),{page:o}=mn(t);for(let i=0;i<jr;i+=1){let a=await $e(e.client,{listType:tt,page:o,pageSize:r,clientType:e.clientType});if(!a.ok)throw new Ae(a.code,a.message);let s=Wr(a.data),u=s.filter(C=>{let h=Ka(C);return (h===tt||h===rt)&&zr(C)}).map(La),c=s.length<r,g=o+1;if(u.length>0||c)return {items:u,exhausted:c,...c?{}:{nextCursor:String(g)}};o=g;}return {items:[],exhausted:false,nextCursor:String(o)}}return {listPendingApplications:n,acceptApplication:t=>gn(e,t,je),ignoreApplication:t=>gn(e,t,qe)}}function G(e){let n=typeof e=="string"||typeof e=="number"?String(e).trim():"";return n===""?void 0:n}function $a(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 ja(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 qa(e){let n=Number(e.product_id),t=$a(e.is_dynamic);return {...ja(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 Yr(e,n){return Array.isArray(e.mini_program_rel_list)?e.mini_program_rel_list.filter(t=>t!==null&&typeof t=="object").map(t=>qa(t)):n.source==="info"?[]:void 0}function Qr(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function Xr(e,n){return T(e,"/user_radio/list",{user_id:n.userId,update_version:n.updateVersion,page:n.page,page_size:n.pageSize},Qr(n.clientType,"GET"))}function Zr(e,n){return T(e,"/user_radio/info",{radio_id:n.channelId},Qr(n.clientType,"POST"))}var eo=500,Je=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},se=class extends Error{constructor(n){super(`CHANNEL profile \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelProfileMappingError";}};function no(e,n){let t=typeof e=="string"||typeof e=="number"?String(e).trim():"";if(t==="")throw new se(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function ye(e){let n=typeof e=="string"||typeof e=="number"?String(e).trim():"";return n===""?void 0:n}function Me(e){return Number(e)===1}function Ja(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 Va(e,n){return Number(e)===1?"member":Number(e)===9?"admin":Number(e)===10?"owner":n===false?"guest":"unknown"}function za(e){let n=e.is_in===void 0?void 0:Me(e.is_in),t=Me(e.radio_user?.is_del),r=Me(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 Wa(e,n,t){let r=ye(e.radio_user?.user_id),o=e.radio_setting?.un_speaking_user_ids,i=ye(e.radio_setting?.un_speaking_period);return {role:n,baseState:t,resolvedState:t,allMembersMuted:Me(e.radio_setting?.is_unspeeking_all),currentUserMuted:r!==void 0&&Array.isArray(o)&&o.map(String).includes(r),...i===void 0?{}:{mutePeriod:i}}}function Ya(e){if(e!=null)return Number(e)===1?"standard":Number(e)===2?"competition":"unknown"}function Qa(e){let n=ye(e);return n!==void 0&&/^\d+$/.test(n)?n.replace(/^0+(?=\d)/,""):void 0}function Xa(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 to(e,n,t){let r=no(e.radio_id??e.id,"id"),o=no(e.name,"name"),i=e.is_in===void 0?void 0:Me(e.is_in),a=Va(e.radio_user?.role_id,i),s=za(e),u=Wa(e,a,s),c=Ca$1({channelState:s,snapshot:u,nowMs:n}),g={...u,resolvedState:c.channelState},C=Qa(e.update_version),h=ye(e.head_img_url),l=ye(e.desc),b=ye(e.user_id),v=Number(e.total_users),A=Ya(e.type),R=Ja(e.radio_setting?.is_unvisit_other),k=e.verify_way===void 0?void 0:Number(e.verify_way),x=k!==void 0&&Number.isSafeInteger(k)?k:void 0,S=ye(e.invite_code),d=Yr(e,{source:t});return {id:r,name:o,...h===void 0?{}:{avatar:h},...l===void 0?{}:{description:l},...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,...R===void 0?{}:{memberPrivateChatDisabled:R},accessSnapshot:g,...e.radio_user?.is_undisturb===void 0?{}:{muted:Me(e.radio_user.is_undisturb)},...A===void 0?{}:{channelKind:A},...C===void 0?{}:{updateVersion:C},...d===void 0?{}:{miniProgramRels:d}}}function ro(e){return {...e,updatedAt:Date.now()}}function oo(e,n){if(e.accessSnapshot===void 0)return {...e,permissions:Ba$1(e.role,e.channelState)};let t=Ca$1({channelState:e.channelState,snapshot:e.accessSnapshot,permissions:e.permissions,nowMs:n});return {...e,channelState:t.channelState,permissions:t.permissions,allMembersMuted:e.allMembersMuted??e.accessSnapshot.allMembersMuted,accessSnapshot:{...e.accessSnapshot,resolvedState:t.channelState}}}function it(e,n){let{updatedAt:t,...r}=oo(e,n);return r}function Za(e){let n=new Map,t=new Map,r=new Map,o="0",i=false,a=null,s=0,u=null,c=0;function g(){if(i)return Promise.resolve();if(a!==null)return a;let l=s;return a=(async()=>{if(e.storage!==void 0){let[b,v]=await Promise.all([e.storage.getChannelProfiles(),e.storage.getChannelListVersion()]);if(l!==s)return;for(let A of b)n.set(A.id,oo(A,e.now?.()??Date.now()));o=/^\d+$/.test(v)?v:"0";}i=true;})().finally(()=>{a=null;}),a}function C(l){if(l?.forceRefresh!==true&&u!==null)return u;let b=++c,v=(async()=>{await g();let A=(await e.getUserId()).trim();if(A==="")throw new se("user_id \u4E0D\u80FD\u4E3A\u7A7A");let R=l?.forceRefresh===true?"0":o,k=[];for(let S=1;;S+=1){let d=await Xr(e.client,{userId:A,updateVersion:R,page:S,pageSize:eo,clientType:e.clientType});if(!d.ok)throw new Je(d.code,d.message);if(d.data===null)break;if(!Array.isArray(d.data))throw new se("list data \u5FC5\u987B\u662F\u6570\u7EC4");let m=e.now?.()??Date.now(),w=d.data.map(p=>to(p,m,"list"));if(k.push(...w),w.length<eo)break}if(b!==c)return [...n.values()].map(S=>it(S,e.now?.()??Date.now()));let x=o;for(let S of k)n.set(S.id,ro(S)),S.updateVersion!==void 0&&(x=Xa(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=>it(S,e.now?.()??Date.now()))})();return u=v,v.finally(()=>{u===v&&(u=null);}).catch(()=>{}),v}function h(l,b){let v=l.trim();if(v==="")return Promise.reject(new se("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 R=(r.get(v)??0)+1;A&&r.set(v,R);let k=(async()=>{await g();let x=n.get(v);if(!A&&x!==void 0&&x.miniProgramRels!==void 0)return it(x,e.now?.()??Date.now());let S=await Zr(e.client,{channelId:v,clientType:e.clientType});if(!S.ok)throw new Je(S.code,S.message);if(S.data===null||S.data===void 0)throw new se("info data \u4E0D\u80FD\u4E3A\u7A7A");let d=to(S.data,e.now?.()??Date.now(),"info");if(d.id!==v)throw new se(`info id \u4E0D\u5339\u914D\uFF1A\u8BF7\u6C42 ${v}\uFF0C\u54CD\u5E94 ${d.id}`);if((r.get(v)??R)===R){let m=ro(d);n.set(v,m),await e.storage?.saveChannelProfiles([m]);}return d})().finally(()=>{t.get(v)===k&&t.delete(v);});return r.set(v,R),t.set(v,k),k}return {listProfiles:C,getProfile:h,clearCache(){s+=1,c+=1;for(let l of new Set([...n.keys(),...t.keys(),...r.keys()]))r.set(l,(r.get(l)??0)+1);n.clear(),t.clear(),u=null,o="0",i=true,a=null;}}}function io(e,n){return $e(e,{listType:2,page:n.page,pageSize:n.pageSize,clientType:n.clientType})}function ao(e,n){return je(e,n)}function so(e,n){return qe(e,n)}var es=20,co=50,ns=20,ts=2,rs=3,lo=4,os=5,po=0,is=1,as=2;function ss(e){switch(e){case po:case is:case as:return e;default:return}}var Ve=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 cs(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 ds(e){let n=$(e.status);if(e.status===void 0||n==="")return true;let t=Number(n),r=ss(t);if(r===void 0)throw new Q(`\u672A\u77E5\u7533\u8BF7\u72B6\u6001\uFF1A${n}`);return r===po}function us(e){let n=Number($(e.type));if(n!==ts&&n!==rs&&n!==lo&&n!==os)throw new Q(`GROUP/CHANNEL \u6DF7\u5408\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${$(e.type)||"<empty>"}`);return n}function ls(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),u=$(r?.name)||$(r?.radio_name)||$(r?.channel_name)||o,c=$(r?.head_img_url)||$(r?.avatar),g=cs(e.create_time??e.createTime);return {applicationId:n,applicantId:t,applicantName:i,...a===""?{}:{applicantAvatar:a},...s===""?{}:{applicantDisplayId:s},channelId:o,channelName:u,...c===""?{}:{channelAvatar:c},message:$(e.remarks)||$(e.introduce_self),...g===void 0?{}:{createdAt:g}}}function uo(e){if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>co)throw new Q(`limit \u5FC5\u987B\u4E3A 1-${co}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit||es};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 ps(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 fs(e){let n=e.trim();if(n==="")throw new Q("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");return n}function ms(e){async function n(r){let{pageSize:o}=uo(r),{page:i}=uo(r);for(let a=0;a<ns;a+=1){let s=await io(e.client,{page:i,pageSize:o,clientType:e.clientType});if(!s.ok)throw new Ve(s.code,s.message);let u=ps(s.data),c=u.filter(h=>us(h)===lo&&ds(h)).map(ls),g=u.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:fs(r),clientType:e.clientType});if(!i.ok)throw new Ve(i.code,i.message)}return {listJoinApplications:n,acceptJoinApplication:r=>t(r,ao),ignoreJoinApplication:r=>t(r,so)}}function yn(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function at(e,n){return T(e,"/user_radio/users",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},yn(n.clientType,"GET"))}function st(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"},yn(n.clientType,"POST"))}function fo(e,n){return T(e,"/user_radio/admins",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},yn(n.clientType,"GET"))}function mo(e,n){return T(e,"/user_radio/user/infos",{radio_id:n.channelId,user_ids:n.userIds.join(",")},yn(n.clientType,"POST"))}var hn=18,gs=12,ys=300*1e3,hs=32,ze=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},q=class extends Error{constructor(n){super(`CHANNEL member \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelMemberMappingError";}};function ce(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function bs(e){return Number(e)===1?"member":Number(e)===9?"admin":Number(e)===10?"owner":"unknown"}function Cs(e){let n=ce(e);return /^\d+$/.test(n)?n.replace(/^0+(?=\d)/,""):void 0}function ct(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 go(e,n){let t=ce(e.radio_id);if(t==="")throw new q("radio_id \u4E0D\u80FD\u4E3A\u7A7A");if(t!==n)throw new q(`\u6210\u5458\u9891\u9053 ${t} \u4E0E\u8BF7\u6C42\u9891\u9053 ${n} \u4E0D\u4E00\u81F4`);let r=ce(e.user_id)||ce(e.user_info?.user_id);if(r==="")throw new q("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 q(`is_master \u975E\u6CD5\uFF1A${ce(e.is_master)}`)}let o=ce(e.nick_name),i=ce(e.user_info?.nick_name)||ce(e.user_info?.name),a=ce(e.user_info?.head_img_url),s=Cs(e.update_version),u=Number(e.join_type);return {userId:r,...o===""?{}:{nickname:o},displayName:o||i||r,...a===""?{}:{avatar:a},role:bs(e.role_id),...Number.isInteger(u)?{joinType:u}:{},...s===void 0?{}:{updateVersion:s}}}function ws(e){if(e.channelId.trim()==="")throw new q("channelId \u4E0D\u80FD\u4E3A\u7A7A");if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>hn)throw new q(`limit \u5FC5\u987B\u4E3A 1-${hn}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit};if(!/^[1-9]\d*$/.test(e.cursor))throw new q("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let t=Number(e.cursor);if(!Number.isSafeInteger(t))throw new q("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {page:t,pageSize:e.limit}}function yo(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 Ps(e){let n=e.now??(()=>Date.now()),t=e.isActive??(()=>true),r=e.cacheTtlMs??ys,o=new Map,i=new Map,a=new Map,s=new Map,u=new Map,c=new Set,g=new Set,C=(p,y)=>`${p}:${y}`;function h(p){let y=u.get(p);return y!==void 0?y:(u.set(p,0),0)}function l(p){let y=p.trim();if(y==="")throw new q("channelId \u4E0D\u80FD\u4E3A\u7A7A");return y}function b(p){for(i.delete(p.channelId),i.set(p.channelId,p);i.size>hs;){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||ct(P.updateVersion,_.updateVersion)>=0)&&f.set(P.userId,P);}return I.map(P=>f.get(P))}async function R(p,y){let I=await ga$1(y);return p.filter(f=>I.match(f.displayName)!==null||I.match(f.userId,{pinyin:false})!==null)}async function k(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 k(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&&ct(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||ct(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=l(p.channelId),{page:f,pageSize:P}=ws({...p,channelId:I}),_=h(I),M=await y(I,f,P);if(!M.ok)throw new ze(M.code,M.message);if(M.data!==null&&!Array.isArray(M.data))throw new q("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let D=yo((M.data??[]).map(O=>go(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=l(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<gs&&!M;U+=1){let O=await d({channelId:y,limit:hn,..._===void 0?{}:{cursor:_}},(N,B,ne)=>at(e.client,{channelId:N,page:B,pageSize:ne,clientType:e.clientType}));if(!t()||f!==h(y))throw new q("\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 k(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=l(p),I=h(y)+1;u.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=l(p),I=await v(y),f=g.has(y);I!==null&&!f&&I.updatedAt+r>n()||await m(y);},async getCachedMembers(p){let y=l(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 R(I.items,f),exhausted:true}},async refreshMembers(p){let y=l(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:hn},(D,E,U)=>st(e.client,{channelId:D,query:I,page:E,pageSize:U,updateVersion:"0",clientType:e.clientType})),v(y)]),M=_===null?[]:await R(_.items,I);return await x(y,P.items,f),{...P,items:A(P.items,M)}},async listMembers(p){let y=l(p.channelId),I={...p,channelId:y},f=h(y),P=await d(I,(_,M,D)=>at(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 q("\u641C\u7D22\u5173\u952E\u8BCD\u4E0D\u80FD\u4E3A\u7A7A"));let I=l(p.channelId),f={...p,channelId:I},P=h(I),_=await d(f,(M,D,E)=>st(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)=>fo(e.client,{channelId:y,page:I,pageSize:f,clientType:e.clientType})),async getMembersByIds(p,y,I){let f=p.trim();if(f==="")throw new q("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 mo(e.client,{channelId:f,userIds:D,clientType:e.clientType});if(!U.ok)throw new ze(U.code,U.message);if(U.data!==null&&!Array.isArray(U.data))throw new q("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let O=yo((U.data??[]).map(Ie=>go(Ie,f))),N=D.filter(Ie=>!O.some(Ci=>Ci.userId===Ie)),B=_&&N.length>0&&E===h(f),ne;B?(await w(f),ne=O):ne=await S(f,O,E);for(let Ie of ne)M.set(Ie.userId,Ie);}return P.flatMap(E=>M.has(E)?[M.get(E)]:[])},invalidateChannelMembers:w,clearCache(){let p=new Set(u.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)u.set(y,h(y)+1);o.clear(),i.clear(),a.clear(),s.clear(),c.clear(),g.clear();}}}function ho(e){return {responseMode:"strict",method:"POST",...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function bo(e,n){return T(e,"/user_radio/member/list",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},ho(n.clientType))}function Co(e,n){return T(e,"/user_radio/member/search",{radio_id:n.channelId,search_name:n.query,page:n.page,page_size:n.pageSize},ho(n.clientType))}var wo=18,bn=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},ie=class extends Error{constructor(n){super(`CHANNEL @ member \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelMentionMemberMappingError";}};function _e(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Is(e){let n=_e(e.user_id);if(n==="")throw new ie("user_id \u4E0D\u80FD\u4E3A\u7A7A");let t=_e(e.radio_user_nickname)||_e(e.nick_name)||_e(e.name)||_e(e.mid)||n,r=_e(e.head_img_url);return {userId:n,displayName:t,...r===""?{}:{avatar:r}}}function vs(e){let n=e.channelId.trim();if(n==="")throw new ie("channelId \u4E0D\u80FD\u4E3A\u7A7A");if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>wo)throw new ie(`limit \u5FC5\u987B\u4E3A 1-${wo}`);if(e.cursor===void 0)return {channelId:n,page:1,pageSize:e.limit};if(!/^[1-9]\d*$/.test(e.cursor))throw new ie("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let t=Number(e.cursor);if(!Number.isSafeInteger(t))throw new ie("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {channelId:n,page:t,pageSize:e.limit}}function Ss(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 As(e){async function n(t,r){let{channelId:o,page:i,pageSize:a}=vs(t),s=await r({channelId:o,page:i,pageSize:a,clientType:e.clientType});if(!s.ok)throw new bn(s.code,s.message);if(s.data!==null&&!Array.isArray(s.data))throw new ie("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let u=s.data??[],c=Ss(u.map(Is)),g=u.length<a;return {items:c,exhausted:g,...g?{}:{nextCursor:String(i+1)}}}return {listMentionMembers:t=>n(t,r=>bo(e.client,r)),searchMentionMembers:t=>{let r=t.query.trim();return r===""?Promise.reject(new ie("\u641C\u7D22\u5173\u952E\u8BCD\u4E0D\u80FD\u4E3A\u7A7A")):n(t,o=>Co(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"},u=e.getClientType?.();u!==void 0&&(s["Client-type"]=String(u)),Object.assign(s,o);let c=await e.getAuth();c!==null&&c.token!==""&&c.userId!==""&&(s.Authorization=`${c.token}:${c.userId}`);let g=await n(`${a}${t}`,{method:"POST",body:r,headers:s,signal:i});if(!g.ok)throw new wa$1({path:t,status:g.status,statusText:g.statusText});let C=await g.arrayBuffer();return new Uint8Array(C)}}}var ae=class extends Error{constructor(n){super(n),this.name="DirectoryMappingError";}};function Cn(e,n){if(e===null||typeof e!="object"||Array.isArray(e))throw new ae(`${n} \u5FC5\u987B\u662F\u5BF9\u8C61`);return e}function Y(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function We(e){let n=Y(e);return n===""?void 0:n}function _s(e){let n=Cn(e,"\u8054\u7CFB\u4EBA\u76EE\u5F55\u9879"),t=n.user_info===void 0?n:Cn(n.user_info,"\u8054\u7CFB\u4EBA user_info"),r=Y(t.user_id??n.friend_user_id??n.user_id);if(r==="")throw new ae("\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=We(t.head_img_url),s=We(t.username)??We(t.mid);return {id:r,kind:"individual",displayName:o,cardDisplayName:i,...a===void 0?{}:{avatarUrl:a},...s===void 0?{}:{username:s}}}function xs(e){let n=Cn(e,"\u7FA4\u7EC4\u76EE\u5F55\u9879"),t=Y(n.group_id);if(t==="")throw new ae("\u7FA4\u7EC4\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A group_id");let r=We(n.head_img_url),o=Y(n.name)||t;return {id:t,kind:"group",displayName:o,cardDisplayName:o,...r===void 0?{}:{avatarUrl:r}}}function Es(e){let n=Cn(e,"\u793E\u7FA4\u76EE\u5F55\u9879"),t=Y(n.radio_id??n.id);if(t==="")throw new ae("\u793E\u7FA4\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A radio_id/id");let r=We(n.head_img_url),o=Y(n.name)||t;return {id:t,kind:"channel",displayName:o,cardDisplayName:o,...r===void 0?{}:{avatarUrl:r}}}function Rs(e,n){if(!Number.isSafeInteger(e)||e<1)throw new ae("\u76EE\u5F55 page \u5FC5\u987B\u662F\u6B63\u6574\u6570");if(!Number.isSafeInteger(n)||n<1||n>100)throw new ae("\u76EE\u5F55 pageSize \u5FC5\u987B\u662F 1-100 \u7684\u6574\u6570")}function Ts(e){return {async list(n){Rs(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 ae(`${n.kind} \u76EE\u5F55 data \u5FC5\u987B\u662F\u6570\u7EC4`);let a=n.kind==="individual"?_s:n.kind==="group"?xs:Es,s=new Map;for(let c of i){let g=a(c);s.set(g.id,g);}let u=i.length<n.pageSize;return {items:[...s.values()],...u?{}:{nextPage:n.page+1},exhausted:u}}}}var ks="https://api.giphy.com/v1/gifs",xe=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";}},he=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 fe(e,n){let t=X(e);if(t==="")throw new j(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function Re(e){let n=X(e);return n===""?void 0:n}function Ee(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 Ds(e,n){let t=Number(e);if(!Number.isSafeInteger(t))throw new j(`${n} \u5FC5\u987B\u662F\u5B89\u5168\u6574\u6570`);return t}function Po(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 be(e,n){let t=fe(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 dt(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 Ye(e){return e==="sticker"?1:e==="gif"?2:3}function Io(e){let n=Z(e,"\u8D34\u56FE\u5305"),t=Re(n.onlineTime??n.online_time),r=n.isPlatformIssued??n.is_platform_issued;return {id:fe(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:be(n.trayIcon??n.tray_icon,"\u8D34\u56FE\u5305 trayIcon"),sortWeight:Ds(n.sortWeight??n.sort_weight??0,"\u8D34\u56FE\u5305 sortWeight"),isPlatformIssued:r===true||Number(r)===1,...t===void 0?{}:{onlineTime:t},stickerCount:Ee(n.stickerCount??n.sticker_count??0,"\u8D34\u56FE\u5305 stickerCount")}}function ut(e,n,t,r){let o=Z(e,t),i=Re(o.id),a={...i===void 0?{}:{recordId:i},url:be(o.imgUrl??o.img_url,`${t} imgUrl`),width:Ee(o.width??0,`${t} width`),height:Ee(o.height??0,`${t} height`)};if(n==="sticker")return {kind:n,...a,packageId:fe(r??o.packId??o.pack_id,`${t} packageId`),resourceId:fe(o.fileName??o.file_name,`${t} resourceId`)};let s=Re(o.fileName??o.file_name);return {kind:n,...a,...s===void 0?{}:{resourceId:s}}}function Us(e,n){if(n!=="emoji")return ut(e,n,"\u6700\u8FD1\u4F7F\u7528\u9879");let t=Z(e,"\u6700\u8FD1 emoji"),r=Re(t.id);return {kind:"emoji",...r===void 0?{}:{recordId:r},token:fe(t.imgUrl??t.img_url,"\u6700\u8FD1 emoji token"),resourceId:fe(t.fileName??t.file_name,"\u6700\u8FD1 emoji resourceId")}}function vo(e,n,t){let r=Ye(n);return dt(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 Ao(e){return {fav_type:Ye(e.kind),pack_id:e.kind==="sticker"?e.packageId:"",img_url:be(e.url,"\u8868\u60C5\u5199\u5165 imgUrl"),file_name:e.resourceId??"",width:e.width,height:e.height}}function Os(e){return e.kind!=="emoji"?Ao(e):{fav_type:Ye(e.kind),pack_id:"",img_url:e.token,file_name:e.resourceId,width:0,height:0}}function So(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 Bs(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=be(r.url,"Giphy original.url"),s=i===void 0?void 0:Re(i.url),u=i===void 0?void 0:Re(i.webp),c=u===void 0?s===void 0?a:be(s,"Giphy fixed_width.url"):be(u,"Giphy fixed_width.webp"),g=u!==void 0&&s!==void 0&&s!==u?be(s,"Giphy fixed_width.url"):void 0;return {kind:"gif",resourceId:fe(n.id,"Giphy item.id"),title:X(n.title)||"GIF",url:a,previewUrl:c,...g===void 0?{}:{fallbackPreviewUrl:g},width:Po(r.width,"Giphy original.width"),height:Po(r.height,"Giphy original.height")}}function Ns(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=Ee(r.offset??n,"Giphy pagination.offset");if(o!==n)throw new j("Giphy pagination.offset \u4E0E\u8BF7\u6C42 offset \u4E0D\u4E00\u81F4");let i=Ee(r.count??t.data.length,"Giphy pagination.count"),a=Ee(r.total_count??r.totalCount??0,"Giphy pagination.total_count"),s=new Map;for(let c of t.data){let g=Bs(c);s.set(g.resourceId,g);}let u=o+i;return {items:[...s.values()],offset:o,totalCount:a,...i>0&&u<a?{nextOffset:u}:{}}}function Ks(e){async function n(r,o,i){if(e.coreClient===void 0)throw new xe("core");let a=await T(e.coreClient,r,o,{method:"POST",responseMode:"strict"});if(!a.ok)throw new J(i,a.code,a.message);return a.data}async function t(r,o){let i=e.giphyApiKey?.trim()??"";if(i==="")throw new xe("giphy");let a=e.fetcher??globalThis.fetch;if(typeof a!="function")throw new xe("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"}}),u;try{u=await a(`${ks}/${r}?${s.toString()}`);}catch{throw new he(0,"network failure")}let c;try{c=await u.json();}catch(C){throw u.ok?new j(`Giphy response \u4E0D\u662F JSON\uFF1A${C instanceof Error?C.message:String(C)}`):new he(u.status,"")}if(!u.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 he(u.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 he(h,X(C.msg))}return Ns(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(Io)};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(Io)}},async listStickerItems(r){let o=await n("/user/sticker/item_list",{pack_id:r},"\u8D34\u56FE\u660E\u7EC6\u5217\u8868");return dt(o,"\u8D34\u56FE\u660E\u7EC6\u5217\u8868 data").map(i=>ut(i,"sticker","\u8D34\u56FE\u660E\u7EC6",r))},async listFavorites(r){let o=await n("/user/sticker/my_fav/list",{fav_type:Ye(r)},"\u8868\u60C5\u6536\u85CF\u5217\u8868");return vo(o,r,"\u8868\u60C5\u6536\u85CF\u5217\u8868 data").map(i=>ut(i,r,"\u8868\u60C5\u6536\u85CF\u9879"))},async addFavorite(r){await n("/user/sticker/my_fav/add",Ao(r),"\u6DFB\u52A0\u8868\u60C5\u6536\u85CF");},async deleteFavorites(r){await n("/user/sticker/my_fav/del",{ids:So(r)},"\u5220\u9664\u8868\u60C5\u6536\u85CF");},async listRecent(r){let o=await n("/user/sticker/recent/list",{fav_type:Ye(r)},"\u6700\u8FD1\u4F7F\u7528\u5217\u8868");return vo(o,r,"\u6700\u8FD1\u4F7F\u7528\u5217\u8868 data").map(i=>Us(i,r))},async reportRecent(r){await n("/user/sticker/recent/report",Os(r),"\u4E0A\u62A5\u6700\u8FD1\u4F7F\u7528");},async deleteRecent(r){await n("/user/sticker/recent/del",{ids:So(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 dt(o,"\u5FEB\u6377\u56DE\u5E94 Top data").map(i=>{let a=Z(i,"\u5FEB\u6377\u56DE\u5E94 Top \u9879");return fe(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 Mo(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 Gs(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 Ls(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 _o=200,Hs=50;async function xo(e,n){let t=String(n.updateVersion??0).trim()||"0",r=[],o;for(let i=1;i<=Hs;i++){let a={group_id:n.groupId,update_version:t,page:String(i),page_size:String(_o)},{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 u=Gs(s);if(u.length===0)break;for(let g of u){let C=String(g.user_id??g.userId??"").trim();if(C==="")continue;let h={userId:C,nickName:String(g.nick_name??g.nickName??"").trim()},l=Ls(g.join_type??g.joinType);l!==void 0&&(h.joinType=l),r.push(h);}let c=s.update_version;if(typeof c=="number"&&(o=c),u.length<_o)break}return {members:r,updateVersion:o}}async function Eo(e,n){return (await T(e,"/user/info/friend",{friend_user_id:n.userId})).data}var Fs=1440*60*1e3;function lt(e,n,t=Fs){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(l=>(l!==null&&i.get(g)===C&&(r.set(g,l),n?.save(g,l).catch(()=>{})),l)).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 l=o.get(g);if(l!==void 0)return l;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,l=await n.get(g);if(l!==null)return (i.get(g)??0)===h&&r.set(g,l.value),{value:l.value,stale:Date.now()-l.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 $s(e){async function n(h){let l=await Eo(e.client,{userId:h})??await Fe(e.client,{userId:h});return l===null?null:ca$1(l)}async function t(h){let l=await Mo(e.client,{groupId:h,clientType:e.clientType});return l===null?null:da$1(l)}async function r(h){let{members:l}=await xo(e.client,{groupId:h,clientType:e.clientType});return l.length===0?null:l}function o(h){let l={};for(let b of h)b.nickName!==""&&(l[b.userId]=b.nickName);return l}let{storage:i}=e,a=i===void 0?void 0:{get:async h=>{let l=await i.getUserProfile(h);return l===null?null:{value:l,updatedAt:l.updatedAt}},save:async(h,l)=>{await i.saveUserProfile({...l,updatedAt:Date.now()});}},s=i===void 0?void 0:{get:async h=>{let l=await i.getGroupMembers(h);return l===null?null:{value:l.members.map(b=>({userId:b.userId,nickName:b.groupNick,...b.joinType===void 0?{}:{joinType:b.joinType}})),updatedAt:l.updatedAt}},save:async(h,l)=>{let b=l.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()});}},u=i===void 0?void 0:{get:async h=>{let l=await i.getGroupProfile(h);return l===null?null:{value:l,updatedAt:l.updatedAt}},save:async(h,l)=>{await i.saveGroupProfile({...l,updatedAt:Date.now()});}},c=lt(n,a),g=lt(t,u),C=lt(r,s);return {getUserProfile:(h,l)=>c.get(h,l),getGroupProfile:(h,l)=>g.get(h,l),getGroupMemberNames:async(h,l)=>{let b=await C.get(h,l);return b===null?null:o(b)},listGroupMembers:(h,l)=>C.get(h,l),peekUserProfile:h=>c.peek(h),peekGroupMemberNames:async h=>{let l=await C.peek(h);return l===null?null:{value:o(l.value),stale:l.stale}},peekGroupMembers:h=>C.peek(h),peekGroupProfile:h=>g.peek(h),clearCache:()=>{c.clear(),g.clear(),C.clear();}}}var wn=class extends Error{responseCode;operation;constructor(n,t,r){let o=n==="bind"?"\u7ED1\u5B9A":"\u89E3\u7ED1";super(`${o}\u673A\u5668\u4EBA\u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`),this.name="RobotConversationBindError",this.responseCode=t,this.operation=n;}},Te=class extends Error{constructor(n){super(n),this.name="RobotConversationBindMappingError";}};function js(e){let n=e.robotId.trim(),t=e.conversationId.trim();if(n==="")throw new Te("\u7ED1\u5B9A\u673A\u5668\u4EBA robotId \u4E0D\u80FD\u4E3A\u7A7A");if(t==="")throw new Te("\u7ED1\u5B9A\u673A\u5668\u4EBA conversationId \u4E0D\u80FD\u4E3A\u7A7A");if(e.groupType!==1&&e.groupType!==2)throw new Te("\u7ED1\u5B9A\u673A\u5668\u4EBA groupType \u5FC5\u987B\u662F 1 \u6216 2");return {robotId:n,conversationId:t,groupType:e.groupType,...e.clientType===void 0?{}:{clientType:e.clientType}}}async function Ro(e,n,t){let r=js(t),i=await T(e,n==="bind"?"/robot/bind_group":"/robot/un_bind_group",{robot_id:r.robotId,object_id:r.conversationId,relation_type:r.groupType},{responseMode:"strict",method:"POST",...r.clientType===void 0?{}:{headers:{"Client-type":String(r.clientType)}}});if(!i.ok)throw new wn(n,i.code,i.message)}function qs(e,n){return Ro(e,"bind",n)}function Js(e,n){return Ro(e,"unbind",n)}function Vs(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 J(r,o.code,o.message)}function zs(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 Ws(e){return ee(e.client,"/user_radio/user/setting",{radio_id:e.channelId,nick_name:e.nickname},"\u4FEE\u6539\u793E\u7FA4\u6635\u79F0")}function Ys(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 Qs(e){let n=e.userIds.map(t=>({user_id:Vs(t)}));return ee(e.client,"/user_radio/invited_users",{radio_id:e.channelId,members:JSON.stringify(n)},"\u9080\u8BF7\u793E\u7FA4\u6210\u5458")}function Xs(e){return ee(e.client,"/user_radio/kick_user",{radio_id:e.channelId,user_id:e.userId},"\u79FB\u9664\u793E\u7FA4\u6210\u5458")}function Zs(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 ec(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 nc(e){return ee(e.client,"/user_radio/transfer",{radio_id:e.channelId,user_id:e.userId},"\u8F6C\u8BA9\u793E\u7FA4")}function tc(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 rc(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 oc(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 ic(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 ac(e){return ee(e.client,"/user_radio/closed",{radio_id:e.channelId},"\u89E3\u6563\u793E\u7FA4")}async function sc(e){e.signal?.throwIfAborted(),cc(e.channelId,"channel");let n=e.index.trim();if(n==="")throw new Error("CHANNEL \u5386\u53F2\u4E0A\u4E0B\u6587 index \u7F3A\u5931");e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId),e.signal?.throwIfAborted();let t=e.containAnchor??true,r=G$1({userId:e.userId,clientType:e.clientType,pulls:[{channelId:e.channelId,baseIndex:n,direction:0,count:20,contain:t?1:0}]}),o=await e.http.postProtobuf({path:"/channel/v1/offlineMessages",body:r,...e.signal===void 0?{}:{signal:e.signal}});e.signal?.throwIfAborted();let i=J$1(o,{selfId:e.userId,keepRaw:true,expectedChannelIds:[e.channelId],onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps);if(t){let s=i.messages.filter(u=>u.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 cc(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 dc(e){let n=uc(e.indexes),t=f.encode(f.create({sUserId:pt(e.userId,"user"),lsIndex:n.map(i=>({sChnnId:pt(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 uc(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=>{pt(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 pt(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 lc(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 Pn=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;}},In=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;}},ft={HIDDEN_CONTACT:40112,OWN_FRIEND_LIMIT_REACHED:40121,TARGET_FRIEND_LIMIT_REACHED:40122},pc=36875,fc=40113;function mt(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function de(e){let n=mt(e);return n===""?void 0:n}function To(e){let n=Array.isArray(e)?e[0]:e;return n!==null&&typeof n=="object"?n:void 0}function mc(e){switch(e){case ft.HIDDEN_CONTACT:return "hidden-contact";case ft.OWN_FRIEND_LIMIT_REACHED:return "own-friend-limit";case ft.TARGET_FRIEND_LIMIT_REACHED:return "target-friend-limit";default:return "remote"}}async function gc(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 Pn(r.code,r.message);let o=To(r.data);if(o===void 0)return null;let i=mt(o.user_id??o.userId);if(i==="")throw new Error("\u641C\u7D22\u7528\u6237\uFF1A\u54CD\u5E94\u7F3A\u5C11 user_id");let a=mt(o.nick_name??o.nickname??o.name)||i,s=o.friend_status??o.friendStatus,u=s===void 0?void 0:Number(s);if(u!==void 0&&!Number.isInteger(u))throw new Error("\u641C\u7D22\u7528\u6237\uFF1Afriend_status \u975E\u6CD5");return {userId:i,nickname:a,...de(o.username)===void 0?{}:{username:de(o.username)},...de(o.mid)===void 0?{}:{miCallId:de(o.mid)},...de(o.head_img_url??o.avatar)===void 0?{}:{avatarUrl:de(o.head_img_url??o.avatar)},...de(o.per_signature??o.signature)===void 0?{}:{signature:de(o.per_signature??o.signature)},...u===void 0?{}:{friendStatus:u}}}async function yc(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 In(mc(i.code),i.code,i.message);let a=To(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 u=de(a?.message??a?.msg??i.message);return {status:s,...u===void 0?{}:{message:u}}}async function hc(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!==fc)throw new Error(`\u5220\u9664\u597D\u53CB\u5931\u8D25\uFF08${r.code}\uFF09\uFF1A${r.message||"unknown error"}`)}async function bc(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 J("\u4E3E\u62A5\u8054\u7CFB\u4EBA",i.code,i.message)}function Cc(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}function wc(e){let n=e.memberIds.map(t=>({user_id:Cc(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 Pc(e){return T(e.client,"/user_group/create_face",{is_hidden:"0"},{method:"POST",responseMode:"strict"})}function Ic(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}function vc(e){let n=e.memberIds.map(t=>({user_id:Ic(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 De(e){if(e.trim()==="")throw new Error("channel board pinned message channelId \u4E0D\u80FD\u4E3A\u7A7A")}function ko(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function Sc(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(!ko(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(!ko(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 Do(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function Ac(e){De(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(!Do(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(!Do(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 Mc(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 _c(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 xc(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||!_c(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 Ec(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}async function Qe(e,n,t,r){let o=await T(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new J(r,o.code,o.message)}function Rc(e){let n=e.userIds.map(t=>({user_id:Ec(t)}));return Qe(e.client,"/user_group/invited",{group_id:e.groupId,members:JSON.stringify(n)},"\u9080\u8BF7\u7FA4\u6210\u5458")}function Tc(e){return Qe(e.client,"/user_group/kick",{group_id:e.groupId,out_user_id:e.userId},"\u79FB\u9664\u7FA4\u6210\u5458")}function kc(e){return Qe(e.client,"/user_group/transfer",{group_id:e.groupId,new_user_id:e.userId},"\u8F6C\u8BA9\u7FA4\u7EC4")}function Dc(e){return Qe(e.client,"/user_group/user/quit",{group_id:e.groupId,...e.newOwnerId===void 0?{}:{new_user_id:e.newOwnerId}},"\u9000\u51FA\u7FA4\u7EC4")}function Uc(e){return Qe(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 Oc=new Set([200,32768]);async function Bc(e){let n=Y$1({userId:e.userId,groupId:e.groupId}),t=await e.http.postProtobuf({path:"/offline/v1/group/read_all",body:n}),{code:r}=Z$1(t);if(!Oc.has(r))throw new Error(`\u7FA4 read_all \u4E1A\u52A1\u5931\u8D25\uFF1Acode=${r}\uFF08groupId=${e.groupId}\uFF09`)}var Xe=class extends Error{constructor(n){super(`${n}\u54CD\u5E94\u5305\u542B\u65E0\u6CD5\u8BC6\u522B\u7684 is_waitting`),this.name="MembershipJoinMappingError";}};function Nc(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 Xe(n)}async function Uo(e,n,t,r){let o=await T(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new J(r,o.code,o.message);if(o.data===null||o.data===void 0)throw new Xe(r);return Nc(o.data.is_waitting,r)}async function Oo(e,n,t,r){let o=await T(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new J(r,o.code,o.message);return Object.freeze({outcome:"joined"})}function Kc(e){return Uo(e.client,"/user_group/apply",{group_id:e.groupId,qrcode_type:2,remarks:e.remarks??""},"\u7533\u8BF7\u52A0\u5165\u666E\u901A\u7FA4")}function Gc(e){return Oo(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 Lc(e){return Uo(e.client,"/user_radio/add/apply",{radio_id:e.channelId,remarks:e.remarks??""},"\u7533\u8BF7\u52A0\u5165\u793E\u7FA4")}function Hc(e){return Oo(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 Fc(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 $c(e){if(De(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 jc(e){let n=aa$1({userId:e.userId,messageIds:e.messageIds,clientType:e.clientType}),t=await e.http.postProtobuf({path:"/offline/v1/chat/msg/by_id",body:n});return ba$1(t,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function qc(e){e.prepareKeys!==void 0&&e.decryptDeps!==void 0&&e.groupId!==""&&await e.prepareKeys([e.groupId]);let n=W$1({userId:e.userId,groupId:e.groupId,messageIds:e.messageIds,clientType:e.clientType}),t=await e.http.postProtobuf({path:"/offline/v1/group/msg/by_id",body:n});return X$1(t,{selfId:e.userId,keepRaw:true,source:"history",onReaction:e.onReaction},e.decryptDeps)}async function Jc(e){e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId);let n=L$1({userId:e.userId,channelId:e.channelId,messageIds:e.messageIds,clientType:e.clientType}),t=await e.http.postProtobuf({path:"/channel/v1/msg/by_id",body:n});return M(t,{selfId:e.userId,keepRaw:true,expectedChannelIds:[e.channelId],diagnostic:{endpoint:"msgById",surface:"msg-by-id",...e.operationId===void 0?{}:{operationId:e.operationId},clientTypeHeader:e.clientType,clientTypeBody:e.clientType},onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps)}var Vc=20,Bo=10,gt=30,zc=100;async function Wc(e){let n=[];for(let t of Ko(e.channels,Vc)){let r=F$1({userId:e.userId,clientType:e.clientType,channels:t}),o=await e.http.postProtobuf({path:"/channel/v1/sessions",body:r}),i={selfId:e.userId,keepRaw:e.keepRaw??true,expectedChannelIds:t.map(s=>s.channelId),diagnostic:{endpoint:"sessions",surface:"session-last",...e.operationId===void 0?{}:{operationId:e.operationId},clientTypeHeader:e.clientType,clientTypeBody:e.clientType}},a=I(o,i);await No(e,a.sessions.filter(s=>s.channelState==="active"||s.raw?.status===0).map(s=>s.channelId)),n.push(...I(o,{...i,onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps).sessions);}return n}async function Yc(e){let n=Zc(e.channelBatchSize),t=e.messageCount??gt,r=ed(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])])),u=0;for(;a.length>0;){if(u>=r){let l=a.map(({channelId:b,baseIndex:v})=>`${b}@${v}`).join(",");throw new Error(`channel offline \u5206\u9875\u8D85\u8FC7 maxPagesPerBatch=${r}\uFF08active=${l}\uFF09`)}u+=1;let c=G$1({userId:e.userId,clientType:e.clientType,pulls:a.map(l=>({channelId:l.channelId,baseIndex:l.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 No(e,a.map(l=>l.channelId));let C=J$1(g,{selfId:e.userId,keepRaw:e.keepRaw??true,expectedChannelIds:a.map(l=>l.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 l of C.messages)o.has(l.id)||o.set(l.id,l);let h=[];for(let l of a){let b=C.nextBaseIndexes[l.channelId],v=C.messageCounts[l.channelId]??0;if(b===void 0)continue;let A=s.get(l.channelId);if(A.has(b))throw new Error(`channel offline cursor \u5FAA\u73AF\uFF08channelId=${l.channelId}, baseIndex=${b}\uFF09`);v<t||(A.add(b),h.push({channelId:l.channelId,baseIndex:b}));}a=h;}}return [...o.values()].sort(m)}async function Qc(e$1){e$1.signal?.throwIfAborted();let n=e$1.count??gt;if(!Number.isInteger(n)||n<=0)throw new Error("channel latest: count \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");e$1.decryptDeps!==void 0&&e$1.prepareKey!==void 0&&await e$1.prepareKey(e$1.channelId);let t=G$1({userId:e$1.userId,clientType:e$1.clientType,pulls:[{channelId:e$1.channelId,baseIndex:"",direction:1,count:n,contain:0}]});e$1.signal?.throwIfAborted();let r=await e$1.http.postProtobuf({path:"/channel/v1/offlineMessages",body:t,...e$1.signal===void 0?{}:{signal:e$1.signal}});e$1.signal?.throwIfAborted();let o={selfId:e$1.userId,keepRaw:e$1.keepRaw??true,expectedChannelIds:[e$1.channelId],diagnostic:{endpoint:"offlineMessages",surface:"history-page",...e$1.operationId===void 0?{}:{operationId:e$1.operationId},clientTypeHeader:e$1.clientType,clientTypeBody:e$1.clientType},onContentDecodeError:e$1.onContentDecodeError,onReaction:e$1.onReaction},i=e$1.yieldToEventLoop===void 0?{...J$1(r,o,e$1.decryptDeps),firstBaseIndex:e.decode(r).lsMessage[0]?.sIndex}:await K(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 Xc(e){e.signal?.throwIfAborted();let n=e.count??gt;e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId);let t=H$1({userId:e.userId,clientType:e.clientType,channelId:e.channelId,baseIndex:e.baseIndex,count:n,contain:e.contain??0});e.signal?.throwIfAborted();let r=await e.http.postProtobuf({path:"/channel/v1/offlineMessages",body:t,...e.signal===void 0?{}:{signal:e.signal}});return e.signal?.throwIfAborted(),N(r,{selfId:e.userId,channelId:e.channelId,requestedBaseIndex:e.baseIndex,requestedCount:n,keepRaw:e.keepRaw??true,diagnostic:{endpoint:"history",surface:"history-page",...e.operationId===void 0?{}:{operationId:e.operationId},clientTypeHeader:e.clientType,clientTypeBody:e.clientType},onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps)}async function No(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 Zc(e){if(e===void 0)return Bo;if(!Number.isInteger(e)||e<=0)throw new Error("channel offline: channelBatchSize \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");return Math.min(e,Bo)}function ed(e){if(e===void 0)return zc;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 Go(e,n){let t=_({userId:n.userId,clientType:n.clientType,limit:n.limit,deliveredMsgInfos:n.deliveredMsgInfos}),r=await n.http.postProtobuf({path:e,body:t});return $$1(r,{selfId:n.userId,keepRaw:true,onReaction:n.onReaction},n.decryptDeps)}function Lo(e){return Go("/offline/v1/chat",e)}function Ho(e){return Go("/offline/v1/owner_chat",e)}function nd(e){return Lo(e).then(n=>n.messages)}function td(e){return Ho(e).then(n=>n.messages)}function Fo(e){return [...new Set(e.filter(n=>n!==void 0&&n!==""))]}async function rd(e){let n=P({userId:e.userId,clientType:e.clientType,limit:e.limit,deliveredMsgIds:e.deliveredMsgInfos?.map(r=>r.msgId)}),t=await e.http.postProtobuf({path:"/offline/v1/group",body:n});if(e.prepareKeys!==void 0&&e.decryptDeps!==void 0){let r=R(t,{selfId:e.userId}),o=Fo(r.messages.map(i=>i.conversationId));o.length>0&&await e.prepareKeys(o);}return R(t,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function od(e){let n=Q$1({userId:e.userId,clientType:e.clientType,size:e.size}),t=await e.http.postProtobuf({path:"/offline/v1/group/session",body:n});if(e.prepareKeys!==void 0&&e.decryptDeps!==void 0){let r=S(t,{selfId:e.userId}),o=Fo([...r.unreads.map(i=>i.groupId),...r.messages.map(i=>i.conversationId)]);o.length>0&&await e.prepareKeys(o);}return S(t,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function id(e){e.signal?.throwIfAborted(),e.prepareKeys!==void 0&&e.decryptDeps!==void 0&&e.groupId!==""&&await e.prepareKeys([e.groupId]);let n=T$1({userId:e.userId,groupId:e.groupId,baseTime:e.baseTime,direct:e.direct,limit:e.limit,clientType:e.clientType});e.signal?.throwIfAborted();let t=await e.http.postProtobuf({path:"/offline/v1/group/history_msg",body:n,...e.signal===void 0?{}:{signal:e.signal}});e.signal?.throwIfAborted();let r={selfId:e.userId,keepRaw:e.keepRaw??true,source:"history",onReaction:e.onReaction};return e.yieldToEventLoop===void 0?U(t,r,e.decryptDeps):V$1(t,{...r,expectedGroupId:e.groupId},e.decryptDeps,{yieldToEventLoop:e.yieldToEventLoop,signal:e.signal})}async function ad(e){let n=ia$1({userId:e.userId,clientType:e.clientType,limit:e.limit??100,msgId:String(Date.now()),deliveredMsgIds:e.deliveredMsgIds}),t=await e.http.postProtobuf({path:"/offline/v1/signal",body:n});return ja$1(t)}var vn=class extends Error{responseCode;constructor(n,t){super(`\u641C\u7D22\u673A\u5668\u4EBA\u5931\u8D25\uFF08${n}\uFF09\uFF1A${t||"unknown error"}`),this.name="RobotDirectoryError",this.responseCode=n;}},oe=class extends Error{constructor(n){super(n),this.name="RobotDirectoryMappingError";}};function yt(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function $o(e){let n=yt(e);return n===""?void 0:n}function ht(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function sd(e){if(e===true||e===1||e==="1")return true;if(e===false||e===0||e==="0")return false}function cd(e){let n=ht(e);if(n===void 0)throw new oe("\u673A\u5668\u4EBA\u76EE\u5F55\u9879\u5FC5\u987B\u662F\u5BF9\u8C61");let t=yt(n.robot_id??n.robotId);if(t==="")throw new oe("\u673A\u5668\u4EBA\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A robot_id");let r=yt(n.robot_name??n.robotName)||t,o=$o(n.mid??n.botMid??n.bot_mid),i=$o(n.img_url??n.imgUrl),a=sd(n.bind);return {id:t,displayName:r,...o===void 0?{}:{username:o},...i===void 0?{}:{avatarUrl:i},...a===void 0?{}:{bound:a}}}function dd(e){if(Array.isArray(e))return e;let n=ht(e);if(n===void 0)throw new oe("\u673A\u5668\u4EBA\u76EE\u5F55 data \u5FC5\u987B\u662F\u5BF9\u8C61\u6216\u6570\u7EC4");let t=n.data??n.list;if(!Array.isArray(t))throw new oe("\u673A\u5668\u4EBA\u76EE\u5F55 data.data \u5FC5\u987B\u662F\u6570\u7EC4");return t}function ud(e){let n=ht(e);if(n===void 0)return;let t=n.total_count??n.totalCount;if(t===void 0)return;let r=typeof t=="number"?t:Number(t);if(!Number.isSafeInteger(r)||r<0)throw new oe("\u673A\u5668\u4EBA\u76EE\u5F55 total_count \u5FC5\u987B\u662F\u975E\u8D1F\u6574\u6570");return r}async function ld(e,n){if(!Number.isSafeInteger(n.page)||n.page<1)throw new oe("\u673A\u5668\u4EBA\u76EE\u5F55 page \u5FC5\u987B\u662F\u6B63\u6574\u6570");if(!Number.isSafeInteger(n.pageSize)||n.pageSize<1||n.pageSize>100)throw new oe("\u673A\u5668\u4EBA\u76EE\u5F55 pageSize \u5FC5\u987B\u662F 1-100 \u7684\u6574\u6570");let t=n.keyword?.trim()??"",r=n.groupId?.trim()??"";if(r===""!=(n.groupType===void 0))throw new oe("\u673A\u5668\u4EBA\u76EE\u5F55 groupId \u4E0E groupType \u5FC5\u987B\u540C\u65F6\u63D0\u4F9B\u6216\u540C\u65F6\u7701\u7565");let o=await T(e,"/robot/search_robot",{page:n.page,page_size:n.pageSize,...t===""?{}:{keyword:t},...r===""||n.groupType===void 0?{}:{group_id:r,group_type:n.groupType},...n.boundOnly===true?{search_type:1}:{}},{responseMode:"strict",method:"POST",...n.clientType===void 0?{}:{headers:{"Client-type":String(n.clientType)}}});if(!o.ok)throw new vn(o.code,o.message);let a=dd(o.data).map(cd),s=ud(o.data),u=s===void 0?a.length<n.pageSize:n.page*n.pageSize>=s;return {items:a,exhausted:u}}var pd={direct:"/friend/undisturb/set",group:"/user_group/user/edit",channel:"/user_radio/user/setting",robot:"/friend/undisturb/set"},fd={direct:"friend_user_id",group:"group_id",channel:"radio_id",robot:"friend_user_id"};async function md(e){let n=pd[e.conversationType],t=fd[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 gd(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 yd(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 hd(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 bd(e){De(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 Cd(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 wd="1970-01-01 08:00:00",Pd="2000",Id="",Sn=class extends Error{constructor(){super("\u4F1A\u8BDD\u6536\u85CF Core API \u672A\u914D\u7F6E"),this.name="SessionFavoriteProviderUnavailableError";}},me=class extends Error{constructor(n){super(n),this.name="SessionFavoriteMappingError";}};function z(e){return typeof e=="string"?e:e==null?"":String(e)}function Ze(e,n){let t=z(e).trim();if(t==="")throw new me(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function vd(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 Sd(e){return e==="text"?1:e==="image"?2:e==="video"?3:e==="voice"?4:e==="location"?5:e==="mediaAlbum"?28:11}function Ad(e){if(e==="direct")return 0;if(e==="group")return 1;if(e==="channel")return 2;throw new me(`favorite conversation type ${e}`)}function An(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 Md(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 _d(e,n){let t=e.from_user,r=z(t?.nick_name||t?.nickname||t?.name).trim();return r===""?n:r}function xd(e,n){let t=z(e.uu_id).trim(),r=vd(e.content_type),o=Or(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:_d(e,i),avatarUrl:z(e.from_user?.avatar).trim(),createdAt:z(e.create_time||e.update_time||e.msg_time).trim(),text:An(o,r),imageUrl:xb(r,o),fileName:r==="file"?An(o,"file"):"",body:Object.freeze({...o}),conversation:Md(e,n)})}function Ed(e){if(e==null)return [];if(Array.isArray(e))return e;if(typeof e=="object"&&e!==null&&"list"in e){let n=e.list;if(n==null)return [];if(Array.isArray(n))return n}throw new me("favorite list data \u5FC5\u987B\u662F\u6570\u7EC4\u6216 { list }")}function Rd(){if(typeof crypto>"u"||typeof crypto.randomUUID!="function")throw new me("collect uuid \u4E0D\u53EF\u7528");return crypto.randomUUID()}function Td(e){return Object.freeze({...e,body:Object.freeze({...e.body}),conversation:e.conversation===null?null:Object.freeze({...e.conversation})})}function kd(e){async function n(t,r,o){if(e.coreClient===void 0)throw new Sn;let i=await T(e.coreClient,t,r,{method:"POST",responseMode:"strict",prefix:Id});if(!i.ok)throw new J(o,i.code,i.message);return i.data}return {async list(){let t=Ze(e.getUserId(),"favorite userId"),r=await n("/api/v1/user/favorite/list",{start_time:wd,page_size:Pd},"\u4F1A\u8BDD\u6536\u85CF\u5217\u8868");return Object.freeze(Ed(r).flatMap(o=>{let i=xd(o,t);return i===null?[]:[i]}))},async add(t){let r=Ze(e.getUserId(),"favorite userId"),o=(e.createCollectId??Rd)(),i={msg_id:Ze(t.messageId,"favorite msgId"),content_type:Sd(t.kind),msg_type:Ad(t.conversation.conversationType),msg_time:String(t.createdAt),from_id:Ze(t.senderId,"favorite fromId"),to_id:Ze(t.peerId,"favorite toId"),is_hide:t.hide===true?"1":"0",uu_id:o,msg_body:Ur(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"),Td({collectId:o,msgId:t.messageId.trim(),kind:t.kind,senderId:t.senderId.trim(),senderName:t.senderId.trim(),avatarUrl:"",createdAt:String(t.createdAt),text:An(t.plainBody,t.kind),imageUrl:xb(t.kind,t.plainBody),fileName:t.kind==="file"?An(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 me("favorite ids \u4E0D\u80FD\u4E3A\u7A7A");await n("/api/v1/user/favorite/del",{ids:r.join("|")},"\u5220\u9664\u4F1A\u8BDD\u6536\u85CF");}}}var jo="image/jpeg";function bt(e,n){return e.type!==""||n===void 0||n===""?e:new Blob([e],{type:n})}function Dd(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:bt(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:bt(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:jo}},async videoPoster(t,r,o){let i=await e.prepare({operationId:`core-video-poster-${++n}`,generation:0,kind:"video",file:bt(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:jo}}}}function Ud(e){return e>=192&&e<=207&&e!==196&&e!==200&&e!==204}function Od(e){return e!==void 0&&e>=5&&e<=8}function Bd(e,n,t){return Od(t)?{width:n,height:e}:{width:e,height:n}}function Nd(e,n,t){if(n+6>t)return;for(let[u,c]of [69,120,105,102,0,0].entries())if(e.getUint8(n+u)!==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 u=0;u<s;u++){let c=a+2+u*12;if(c+12>t)return;if(e.getUint16(c,i)===274)return e.getUint16(c+8,i)}}function Kd(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(Ud(o)){if(a+5>n)return;let u=e.getUint16(a+1,false),c=e.getUint16(a+3,false);return c<=0||u<=0?void 0:Bd(c,u,t)}o===225&&t===void 0&&(t=Nd(e,a,s)),r=s;}}function Gd(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 Ld(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 Hd(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 Mn(e,n,t){return n<t.length?false:t.every((r,o)=>e.getUint8(o)===r)}async function qo(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(Mn(t,r,[255,216,255]))return Kd(t,r);if(Mn(t,r,[137,80,78,71,13,10,26,10]))return Gd(t,r);if(Mn(t,r,[71,73,70,56]))return Ld(t,r);if(Mn(t,r,[82,73,70,70])&&r>=12&&t.getUint32(8,false)===1464156752)return Hd(t,r)}var Qo=320,Fd=12*1024,Xo=20*1024,$d=.9,jd=.72,qd=320,Jd=10*1024,Vd=16*1024,zd=.84,Wd=.68,Zo=15e3,Yd=1;function Qd(){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 Jo(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 u=t.indexOf(s);u>=0&&t.splice(u,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 en(e){if(e?.aborted)throw new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError")}var Vo=16777216,Xd=4096;function Zd(e,n){let t=Math.min(1,Xd/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>Vo){let a=Math.sqrt(Vo/i);r=Math.max(1,Math.floor(r*a)),o=Math.max(1,Math.floor(o*a));}return {width:r,height:o}}function wt(e,n,t){let r=Math.min(1,t/Math.max(e,n));return Zd(Math.max(1,Math.round(e*r)),Math.max(1,Math.round(n*r)))}async function zo(e,n,t,r,o){en(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(u=>i.toBlob(u,"image/jpeg",r));if(en(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 Ct(e,n){if(!Number.isInteger(e)||e<=0)throw new RangeError(`${n}\u5FC5\u987B\u662F\u6B63\u6574\u6570`)}function Wo(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 Pt(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?qd:Qo),u=r.targetBytes??(i?Jd:Fd),c=r.maxBytes??(i?Vd:Xo),g=r.quality??(i?zd:$d),C=r.minQuality??(i?Wd:jd);if(Ct(s,`${a}\u6700\u5927\u8FB9\u957F`),Ct(u,`${a}\u76EE\u6807\u5B57\u8282\u6570`),Ct(c,`${a}\u6700\u5927\u5B57\u8282\u6570`),Wo(g,`${a}\u521D\u59CB\u8D28\u91CF`),Wo(C,`${a}\u6700\u4F4E\u8D28\u91CF`),u>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=wt(n,t,s),l=Math.min(200,Math.max(h.width,h.height)),b,v=[...new Set([g,Math.max(C,g-.12),C])];for(let R of v){let k=await zo(e,h.width,h.height,R,o);if((b===void 0||k.byteLength<b.byteLength)&&(b=k),k.byteLength<=u)return k}let A=Math.max(h.width,h.height);if(A>l&&b!==void 0){let R=Math.sqrt(u/b.byteLength),k=Math.max(l,Math.floor(A*Math.min(.9,Math.max(.5,R))));h=wt(n,t,k);for(let x of [g,C]){let S=await zo(e,h.width,h.height,x,o);if(S.byteLength<b.byteLength&&(b=S),S.byteLength<=u)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 Yo(e,n,t){return new Promise((r,o)=>{let i,a,s,u,c=()=>{i!==void 0&&clearTimeout(i),e.removeEventListener(n,a),e.removeEventListener("error",s),t?.removeEventListener("abort",u);};a=()=>{c(),r();},s=()=>{c(),o(new Error(`\u89C6\u9891\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A${n} \u524D\u89E3\u7801\u9519\u8BEF`));},u=()=>{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`));},Zo),e.addEventListener(n,a,{once:true}),e.addEventListener("error",s,{once:true}),t?.addEventListener("abort",u,{once:true});})}async function eu(e,n){en(n);let t=e.maxSize??Qo,r=e.maxBytes??Xo,o=await qo(e.file);en(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:wt(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{en(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 Pt(s,s.width,s.height,e,n)}}finally{s.close();}let u=URL.createObjectURL(e.file),c=new Image;try{await new Promise((C,h)=>{let l,b,v=()=>{l!==void 0&&clearTimeout(l),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"));},l=setTimeout(()=>{v(),h(new Error("\u56FE\u7247\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1AImage \u89E3\u7801\u8D85\u65F6"));},Zo),n?.addEventListener("abort",b,{once:!0}),c.src=u;});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 Pt(c,c.naturalWidth,c.naturalHeight,e,n)}}finally{c.removeAttribute("src"),URL.revokeObjectURL(u);}}async function nu(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 Yo(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 Yo(r,"seeked",n));let u=a===void 0?void 0:a,c;try{c=await Pt(r,o,i,e,n);}catch(g){if(n?.aborted||g instanceof RangeError)throw g}return {width:o,height:i,...u===void 0?{}:{duration:u},...c===void 0?{}:{posterData:c}}}finally{r.pause(),r.removeAttribute("src"),r.load(),URL.revokeObjectURL(t);}}function tu(e={}){let n=e.maxConcurrency??Qd();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=Jo(n),r=Jo(Yd),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",u=await(s?r:t).acquire(a);try{return s?await nu(i,a):await eu(i,a)}finally{u();}},dispose(){o||(o=true,t.dispose(),r.dispose());}}}function _n(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,u)=>{let c={signal:i,start:s,cancel:()=>{let g=t.indexOf(c);g>=0&&t.splice(g,1),u(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 nn=16*1024*1024,tn=3,It=3,xn=6,ru=5*1024**3,En=1e4;function vt(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>nn,r=t?Math.ceil(e/nn):1;if(!t&&e>ru)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>En)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:nn,partCount:r}}function ou(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]),u=Number(o?.[3]);if(e.status!==206||o===null||![a,s,u].every(Number.isSafeInteger)||u<=0||a!==n||s!==Math.min(t,u-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&&(u!==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:u,etag:i}}function ei(e=true,n,t=nn){if(!Number.isSafeInteger(t)||t<=0)throw new RangeError("\u4E0B\u8F7D\u5206\u6BB5\u5927\u5C0F\u5FC5\u987B\u4E3A\u6B63\u6574\u6570");let r=_n(xn);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()):au(a,s.onProgress,s.expectedBytes,s.preferBlob===true)}async function i(a){let s=new AbortController,u=()=>s.abort(a.signal?.reason);a.signal?.aborted?u():a.signal?.addEventListener("abort",u,{once:true});let c=s.signal,g=[],C=[],h=0,l,b="",v=1,A,R=false,k=d=>{R||(R=true,A=d,s.abort());};function x(d,m){h+=m-(C[d]??0),C[d]=m;let w=l.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=l===void 0?m+t-1:Math.min(m+t-1,l.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=ou(p,m,w,l);l===void 0&&(l=y,b=p.headers.get("content-type")??"",n?.record("debug","sdk","media","download-range-started",()=>({data:{bytesTotal:y.total,partSizeBytes:t,concurrency:It}})));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(l.total/t),w=Array.from({length:Math.min(It,m-1)},async()=>{try{for(;!c.aborted&&v<m;)await S(v++);}catch(p){k(p);}});if(await Promise.allSettled(w),R)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",u);}}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 iu(s);let u=await fetch(s.url,s.signal===void 0?{}:{signal:s.signal});return o(u,s)})}}function iu(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;},u=c=>{i||(i=true,s(),c());};if(a=()=>{o.abort(),u(()=>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){u(()=>r(new Error(`media download \u5931\u8D25\uFF1AHTTP ${o.status}`)));return}let c=o.response;if(n){if(!(typeof Blob<"u"&&c instanceof Blob)){u(()=>r(new Error("media download \u5931\u8D25\uFF1AXHR \u672A\u8FD4\u56DE Blob")));return}u(()=>t(c));return}if(!(c instanceof ArrayBuffer)){u(()=>r(new Error("media download \u5931\u8D25\uFF1AXHR \u672A\u8FD4\u56DE ArrayBuffer")));return}u(()=>t(new Uint8Array(c)));},o.onerror=()=>u(()=>r(new Error("media download \u5931\u8D25\uFF1Anetwork"))),o.onabort=()=>u(()=>r(new DOMException("media download canceled","AbortError"))),e.signal?.aborted){a();return}e.signal?.addEventListener("abort",a,{once:true}),o.send();})}async function au(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,u=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(u,{headers:e.headers});return r?await c.blob():new Uint8Array(await c.arrayBuffer())}var ni=async(e,n)=>{if(e?.aborted)throw new DOMException("media upload canceled","AbortError");return await n()},St="is missing ETag in UploadPart response";function At(e){if(typeof e!="object"||e===null)return false;let n=e;return n.name==="NoSuchUpload"||n.Code==="NoSuchUpload"}function su(e,n,t){return e instanceof Uint8Array?e.subarray(n,t):e.slice(n,t)}async function ti(e,n,t){return e.transformPart===void 0?n:await e.transformPart(n instanceof Blob?n:new Blob([n]),t)}function ri(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,u=s>0?Math.min(99,Math.round(o/s*100)):0;e.onProgress({percent:u,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 oi(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 ii(e,n,t=ni){let r=ri(n,0),o=oi(e.handler,r);try{await t(n.signal,async()=>{let i=await ti(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 Mt(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 _t(e){let{target:n,content:t,partSize:r,queueSize:o,runUpload:i=ni}=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>En)throw new Error(`media upload: \u5206\u7247\u6570 ${a} \u8D85\u8FC7 S3 \u4E0A\u9650 ${En}\uFF0C\u9700\u8981\u653E\u5927\u5206\u7247\u5927\u5C0F`);let s=Mt(e.resume,n,t.sourceBytes,r),u=new Map;if(s!==void 0)for(let x of s)u.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,u.clear();}let g=x=>Math.min(r,t.sourceBytes-(x-1)*r),C=0;for(let x of u.keys())C+=g(x);let h=ri(t,C),l=oi(n.handler,h),b=()=>({bucket:n.bucket,key:n.key,uploadId:c,partSize:r,sourceBytes:t.sourceBytes,parts:[...u.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 R=1;async function k(){for(;;){if(v.signal.aborted)return;let x=R;if(R+=1,x>a)return;if(u.has(x))continue;let S=(x-1)*r,d=Math.min(S+r,t.sourceBytes),m=await i(v.signal,async()=>{let w=await ti(t,su(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} ${St}`);u.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(tn,a,Math.max(1,o))},async()=>{try{await k();}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:[...u.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),l();}}async function rn(e,n){try{await e.client.send(new e.commands.AbortMultipartUploadCommand({Bucket:n.bucket,Key:n.key,UploadId:n.uploadId}));}catch(t){if(!At(t))throw t}}function cu(e){if(e instanceof Uint8Array)return e.byteLength;if(typeof Blob<"u"&&e instanceof Blob)return e.size}var ai="\u5206\u7247\u4E0A\u4F20\u8981\u6C42\u8BE5 bucket \u7684 CORS \u653E\u884C POST\uFF08Create/CompleteMultipartUpload\uFF09\u3001DELETE\uFF08AbortMultipartUpload\uFF09\u5E76 ExposeHeaders: ETag";function du(e){return e instanceof Error&&e.message.includes(St)}function uu(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${ai}`,{cause:t}):du(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${ai}`,{cause:e}):e}var lu=new Set(["upload-source-invalid","multipart-etag-missing","multipart-abort-failed"]);function xt(e,n){let t=e?.transport;if(!(t?.session===void 0||n!==void 0&&t.logicalBucket!==n))return t}var on;function si(){if(on!==void 0)return on;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 on===n&&(on=void 0),t});return on=n,n}function ci(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 pu(e){if(e===void 0)return "";let n=e.lastIndexOf(".");return n>=0?e.slice(n):""}function fu(e){return globalThis.crypto.randomUUID()+pu(e)}function di(e,n){let t=e.keyPrefix??"";return t===""||n.startsWith(t)?n:`${t}${n}`}function mu(e,n){let t=mr(e.getUploadCredentials),r=_n(xn);function o(l,b){if(l==="avatar")return e.avatarBucket??"";if(b==="channel"){let v=e.channelBuckets?.[l]??"";if(v!=="")return v}return e.buckets[l]??""}function i(l,b,v){let{region:A}=b;return new l.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(l,b,v,A,R,k,x,S){let{multipart:d,partSize:m}=vt(x,e.multipartTransfer===true&&e.multipartUpload!==false),w=new l.XhrHttpHandler({}),p=i(l,R,w),y={client:p,handler:w,commands:l.commands,bucket:R.bucket,key:k,...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=xt(f),_=d&&P?.logicalBucket===v&&Mt(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 rn(y,P.session):await C(f);}catch(N){if(S.mode==="discard")throw S.cleanupFailed=!0,ci(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 ii(y,I,r);return}let O=M;try{await _t({target:y,content:I,partSize:m,queueSize:tn,runUpload:r,...O===void 0?{}:{resume:O},onResumable:D,onCompleted:E});}catch(N){if(b.signal?.aborted||!At(N)||O===void 0)throw N;M=void 0,await _t({target:y,content:I,partSize:m,queueSize:tn,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 rn(y,M);}catch(N){U=N;}throw S.cleanupFailed?O:uu(O,d,U)}finally{p.destroy();}}async function s(l,b,v,A={mode:"retain"}){let R=o(b,v);if(R==="")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 k=cu(l.data);if(k===void 0)throw new F("upload-source-invalid","media upload: \u4E0A\u4F20\u5185\u5BB9\u5FC5\u987B\u662F Uint8Array \u6216 Blob");vt(k,e.multipartTransfer===true&&e.multipartUpload!==false);let x=await si();if(A.mode==="discard"&&l.signal?.aborted)throw new DOMException("media upload canceled","AbortError");let S=xt(l.resume,R)?.objectName??fu(l.filename),d={...l,onResumable:w=>{d.resume=w,l.onResumable?.(w);}},m;try{m=await t.resolve(R);let w=di(m,S);try{await a(x,d,R,S,m,w,k,A);}catch(p){if(l.signal?.aborted||p instanceof F&&lu.has(p.code))throw p;A.retryCause=p,m=await t.resolve(R,{forceRefresh:!0}),w=di(m,S),await a(x,d,R,S,m,w,k,A);}if(l.signal?.aborted)throw new DOMException("media upload canceled","AbortError");return l.onProgress?.({percent:100,bytesTransferred:k,bytesTotal:k,phase:"finalizing"}),{url:`${m.dnsPoint}/${w}`}}catch(w){let p=xt(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 rn({client:I,commands:x.commands},p.session);}catch(f){throw ci(w,f)}finally{I.destroy();}}throw w}}function u(l){return s(l,l.kind,l.conversationType)}function c(l){return s({data:l.data,...l.filename===void 0?{}:{filename:l.filename},...l.mimeType===void 0?{}:{mimeType:l.mimeType},...l.signal===void 0?{}:{signal:l.signal},...l.onProgress===void 0?{}:{onProgress:l.onProgress}},l.kind,void 0,{mode:"discard"})}function g(l){return s(l,"avatar")}async function C(l){let b=l.transport;if(b?.session===void 0||b.session.uploadId==="")return;let v=await si(),A=await t.resolve(b.logicalBucket),R=new v.XhrHttpHandler({}),k=i(v,A,R);try{await rn({client:k,commands:v.commands},b.session);}finally{k.destroy();}}let h=ei(e.multipartTransfer===true&&e.rangeDownload!==false,n);return {upload:u,uploadAvatar:g,uploadResource:c,download:h,abandonUpload:C}}function gu(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 u(C){try{e.onError(C);}catch{}}function c(C,h=false,l="stopped"){if(a===C&&!h&&(a=void 0),C.resolveReady(false),C.closed)return;C.closed=true,C.controller.abort();let b=[],v=k=>{try{k();}catch(x){b.push(x);}};for(let k of C.cleanups.splice(0))v(k);v(()=>C.channel.close());let A=C.release;C.release=void 0;let R=C.owned;C.owned=false;try{let k=R?e.onChange(!1,l):void 0;Promise.resolve(k).then(()=>A?.(),u);}catch(k){u(k);}for(let k of b)u(k);}function g(C,h){c(C,true),u(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 u(new Error("Browser connection ownership requires a key, Web Locks and BroadcastChannel")),Promise.resolve(false);let l;try{l=r(`im-connection:${C}`);}catch(x){return u(x),Promise.resolve(false)}let b,v=new Promise(x=>{b=x;}),A={key:C,channel:l,cleanups:[],owned:false,closed:false,ready:v,resolveReady:b,controller:new AbortController,claim:{startedAt:Date.now(),id:globalThis.crypto.randomUUID()}};a=A;let R=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"):l.postMessage({type:"takeover",...A.claim}));},k=x=>{a===A&&x.persisted===true&&c(A);};try{i&&(A.cleanups.push(()=>i.removeEventListener("pagehide",k)),i.addEventListener("pagehide",k)),A.cleanups.push(()=>l.removeEventListener("message",R)),l.addEventListener("message",R);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);}),l.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){u(h);}finally{c(C);}},get owned(){return a?.owned??false}}}function yu(){let e=globalThis;return typeof e.addEventListener=="function"&&typeof e.removeEventListener=="function"?e:void 0}function hu(e,n={}){let t=n.target!==void 0?n.target:yu(),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?.(),u=()=>{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",u),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",u),o!=null&&(o.removeEventListener("pagehide",c),o.removeEventListener("pageshow",g)));},get running(){return i}}}var wu=15,Pu=20,Iu=8*1024*1024,vu=2*1024*1024,Su=1440*60*1e3,Au=2*1024*1024*1024,ui=1024*1024*1024,Mu=512*1024*1024,_u=256*1024*1024,xu=64*1024,Et="channel:list-version",li="schema:conversation-key-v1",pi="schema:message-server-order-v1",fi="schema:mini-program-game-preview-v1",mi="im:membership-reset-sort-keys",Rt="default",we="\uFFFF";function gi(e){if(!(e===void 0||!/^\d+$/.test(e)))return e.replace(/^0+(?=\d)/,"")}function Eu(e,n){let t=gi(e),r=gi(n);return t===void 0?r===void 0?0:-1:r===void 0?1:t.length!==r.length?t.length>r.length?1:-1:t===r?0:t>r?1:-1}function an(e){return `conversation:${Ha$1(e)}`}function Tt(e,n){return `${Ha$1(e)}\0${n}`}function Ru(e){let n=Ha$1(e.conversation);return {...e,key:Tt(e.conversation,e.messageId),conversationKey:n,conversation:{...e.conversation},sContent:e.sContent.slice()}}function Tu(e){let{key:n,conversationKey:t,...r}=e;return {...r,conversation:{...r.conversation},sContent:r.sContent.slice()}}function hi(e){return {...e,conversationKey:Ha$1(Ea$1(e))}}function Pe(e){let{conversationKey:n,...t}=e;return t}function Rn(e){return {...e,id:Ha$1(Fa$1(e)),conversationId:e.id}}function kt(e){if(e.conversationId===void 0)return e;let{conversationId:n,...t}=e;return {...t,id:n}}function Dt(e){return e.conversationType===void 0?e:{...e,conversationId:Ha$1(e),storageConversationId:e.conversationId}}function Tn(e){if(e.storageConversationId===void 0)return e;let{storageConversationId:n,...t}=e;return {...t,conversationId:n}}function bi(e){return {...e,conversationId:Ha$1(Ga$1(e)),storageConversationId:e.conversationId}}function Ut(e){if(e.storageConversationId===void 0)return e;let{storageConversationId:n,...t}=e;return {...t,conversationId:n}}function ku(e){return {...e,conversationKey:Ha$1(e.ref)}}function Du(e){let{conversationKey:n,...t}=e;return t}function Uu(e){return typeof e=="string"?e:e.conversationId}function sn(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 Ou(e){let n=e.transaction(["messages","sessions","readStates","pinnedMessages","meta"],"readwrite");try{let t=n.objectStore("meta");if((await t.get(li))?.value===!0){await n.done;return}let r=n.objectStore("messages");for(let u of await r.getAll())u.conversationKey===void 0&&await r.put(hi(u));let o=n.objectStore("sessions"),i=new Map;for(let u of await o.getAll()){if(u.conversationId!==void 0)continue;let c=kt(u);i.set(c.id,c.type),await o.put(Rn(c)),await o.delete(u.id);}let a=n.objectStore("readStates");for(let u of await a.getAll()){if(u.storageConversationId!==void 0)continue;let c=u.conversationType??i.get(u.conversationId);if(c===void 0)continue;let g={...u,conversationType:c};await a.put(Dt(g)),await a.delete(u.conversationId);}let s=n.objectStore("pinnedMessages");for(let u of await s.getAll()){if(u.storageConversationId!==void 0)continue;let c=Ut(u);await s.put(bi(c)),await s.delete(u.conversationId);}await t.put({key:li,value:!0}),await n.done;}catch(t){try{n.abort();}catch{}try{await n.done;}catch{}throw t}}async function Bu(e){let n=e.transaction(["messages","readStates","meta"],"readwrite");try{let t=n.objectStore("meta");if((await t.get(pi))?.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=Tn(g);C.conversationType==="channel"&&C.readCursorSortKey!==void 0&&C.readCursor!==""&&i.set(Ha$1(C),{cursor:C.readCursor});}let a=new Map,s=n.objectStore("messages"),u=await s.openCursor();for(;u!==null;){let g=u.value,C=Ha$1(Ea$1(g)),h=l(g),l$1=i.get(C);if(l$1!==void 0&&g.extensions?.historyCursor===l$1.cursor&&(l$1.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 u.update({...g,sortKey:h});}u=await u.continue();}for(let g of o){let C=Tn(g);if(C.conversationType===void 0)continue;let h=Ha$1(C),l=i.get(h)?.sortKey??(C.readCursorSortKey===void 0?void 0:a.get(h)?.get(C.readCursorSortKey));if(l===void 0&&C.readCursorSortKey!==void 0&&C.conversationType!=="channel"&&C.readCursor!==""){let b=await s.get(C.readCursor);b!==void 0&&Ha$1(Ea$1(b))===h&&(l=b.sortKey);}l!==void 0&&l!==C.readCursorSortKey&&await r.put({...g,readCursorSortKey:l});}let c=await t.get(mi);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 l=a.get(h[0])?.get(h[1]);return l===void 0?h:(g=!0,[h[0],l])});g&&await t.put({key:mi,value:C});}await t.put({key:pi,value:!0}),await n.done;}catch(t){try{n.abort();}catch{}try{await n.done;}catch{}throw t}}async function Nu(e){let n=e.transaction(["messages","meta"],"readwrite");try{let t=n.objectStore("meta");if((await t.get(fi))?.value===!0){await n.done;return}let o=await n.objectStore("messages").openCursor();for(;o!==null;){let i=o.value.body?.miniProgram;o.value.contentType==="miniProgram"&&i!==void 0&&s(i)&&await o.delete(),o=await o.continue();}await t.put({key:fi,value:!0}),await n.done;}catch(t){try{n.abort();}catch{}try{await n.done;}catch{}throw t}}function yi(e){return `${e.kind}:${encodeURIComponent(e.messageId)}:${e.resourceVersion}`}async function cn(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 Ku(e,n){let t=n.namespaceFactory.forAccount(e).name("durable","storage","indexed-db");typeof indexedDB>"u"||await deleteDB(t);}function Gu(e){let{namespaceFactory:n}=e,t=null,r=null,o=0,i=Promise.resolve(),a=Promise.resolve(),s=0,u=e.mediaAssetCache?.maxPendingWriteBytes??_u;if(!Number.isSafeInteger(u)||u<=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!==2||!Number.isFinite(d.fetchedAt)||d.fetchedAt<0||m-d.fetchedAt>=Su}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>vu||C(d,m))return false;let w=Ha$1(d.conversation),p=c().transaction("recentHistoryPages","readwrite");return cn(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>Pu||P>Iu;){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 l(d){if(typeof d!="string")return;let m=IDBKeyRange.bound([d,""],[d,we]),w=(await c().transaction("messages").store.index("by_conv_sort").getAll(m)).map(Pe);sn(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 R(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 ui;let y=d.reduce((P,_)=>P+_.byteLength,0),I=Math.max(0,(p??0)-y),f=Math.max(Mu,Math.floor(w*.2));return Math.max(0,Math.min(Au,Math.floor(w-I-f)))}catch{return ui}}async function k(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 R(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 k([...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 R(f);if(v(m,w),I===0||I>p.maxEntryBytes||P<=0||I>Math.floor(P/2))return "skipped";let _=yi(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=Ha$1(d),w=c().transaction("recentHistoryPages","readwrite");return cn(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",Ha$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,wu,{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 Ou(p),await Bu(p),await Nu(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(Et),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=yi(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 k([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>u||s+p>u)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=Pe(w);return Ha$1(Ea$1(p))===Ha$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:Ha$1(d);if(await l(d),m.beforeSortKey===void 0&&m.afterSortKey!==void 0){let P=IDBKeyRange.bound([p,m.afterSortKey],[p,we]),_=[],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(Pe)}let y=m.beforeSortKey===void 0?IDBKeyRange.bound([p,""],[p,we]):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(Pe)},async saveMessages(d){if(d.length===0)return;let m=c().transaction("messages","readwrite");await Promise.all([...d.map(w=>m.store.put(hi(w))),m.done]);},async searchMessages(d,m){let w=Ha$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 ga$1(p),f=m.beforeSortKey===void 0?IDBKeyRange.bound([w,""],[w,we]):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=ka$1(Pe(E.value));M+=1,D=O.sortKey;let N=y===void 0||y.includes(O.contentType),B=I===void 0||I.match(ea$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=Ha$1(d);return (await c().getAllFromIndex("decryptRecoveries","by_conversation",m)).map(Tu)},async saveDecryptRecovery(d){if(d.sContent.byteLength===0||d.sContent.byteLength>xu)throw new Error(`\u89E3\u5BC6\u6062\u590D\u5BC6\u6587\u5B57\u8282\u957F\u5EA6\u975E\u6CD5\uFF1A${d.sContent.byteLength}`);await c().put("decryptRecoveries",Ru(d));},async deleteDecryptRecovery(d,m){await c().delete("decryptRecoveries",Tt(d,m));},async deleteConversationDecryptRecoveries(d){let m=Ha$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(kt)},async saveSessions(d){if(d.length===0)return;let m=c().transaction("sessions","readwrite");for(let w of d)await m.store.put(Rn(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(Ha$1(d)),await p.objectStore("conversationBackgrounds").delete(an(d)),await p.done;return}let m=(await c().getAll("sessions")).map(kt).filter(p=>p.id===d);sn(d,m.map(p=>({conversationType:p.type})));let w=c().transaction(["sessions","conversationBackgrounds"],"readwrite");if(m[0]!==void 0){let p=Fa$1(m[0]);await w.objectStore("sessions").delete(Ha$1(p)),await w.objectStore("conversationBackgrounds").delete(an(p));}await w.objectStore("sessions").delete(d),await w.done;},async deleteReadState(d){if(typeof d!="string"){await c().delete("readStates",Ha$1(d));return}let w=(await c().getAll("readStates")).map(Tn).filter(p=>p.conversationId===d).filter(p=>p.conversationType!==void 0);sn(d,w),w[0]!==void 0&&await c().delete("readStates",Ha$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 cn(p,async()=>{let y=await p.objectStore("messages").get(m);if(y!==void 0){let I=Pe(y);if(I.conversationType!==d.conversationType||I.conversationId!==d.conversationId)return !1;await p.objectStore("messages").delete(m);}return await p.objectStore("decryptRecoveries").delete(Tt(d,m)),await p.objectStore("recentHistoryPages").delete(Ha$1(d)),w!==void 0&&await p.objectStore("sessions").put(Rn(w)),y!==void 0})})},async deleteConversationMessages(d){return g(async()=>{let m=Uu(d),w=typeof d=="string"?"by_conv_sort":"by_conversation_key_sort",p=typeof d=="string"?d:Ha$1(d),y=IDBKeyRange.bound([p,""],[p,we]),I=c().transaction(["messages","decryptRecoveries","recentHistoryPages"],"readwrite");return cn(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(Pe);_=(await P.getAll()).filter(U=>U.conversation.conversationId===d),M=(await I.objectStore("recentHistoryPages").getAll()).filter(U=>U.conversation.conversationId===m),sn(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(Ha$1(d));let E=await P.index("by_conversation").openCursor(IDBKeyRange.only(Ha$1(d)));for(;E!==null;)await E.delete(),E=await E.continue();}})})},async clearConversationHistory(d,m,w){return g(async()=>{let p=Ha$1(d),y=IDBKeyRange.bound([p,""],[p,we]),I=c().transaction(["messages","sessions","readStates","decryptRecoveries","recentHistoryPages"],"readwrite");return cn(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(Rn(m)),w!==void 0&&(await I.objectStore("readStates").put(Dt(w)),await I.objectStore("readStates").delete(w.conversationId));})})},async getReadStates(){return (await c().getAll("readStates")).map(Tn)},async saveReadState(d){let m=c().transaction("readStates","readwrite");await m.store.put(Dt(d)),d.conversationType!==void 0&&await m.store.delete(d.conversationId),await m.done;},async getDrafts(){return (await c().getAll("drafts")).map(Du)},async saveDraft(d){await c().put("drafts",ku(d));},async deleteDraft(d){await c().delete("drafts",Ha$1(d));},async getConversationBackground(d){return (await c().get("conversationBackgrounds",an(d)))?.background??null},async saveConversationBackground(d,m){let w=an(d);await c().put("conversationBackgrounds",{key:w,background:m});},async deleteConversationBackground(d){await c().delete("conversationBackgrounds",an(d));},async getDefaultConversationBackground(){return (await c().get("conversationBackgrounds",Rt))?.background??null},async saveDefaultConversationBackground(d){await c().put("conversationBackgrounds",{key:Rt,background:d});},async deleteDefaultConversationBackground(){await c().delete("conversationBackgrounds",Rt);},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(Ut)},async savePinnedMessage(d){let m=c().transaction("pinnedMessages","readwrite");await m.store.put(bi(d)),await m.store.delete(d.conversationId),await m.done;},async removePinnedMessage(d){if(typeof d!="string"){await c().delete("pinnedMessages",Ha$1(d));return}let m=(await c().getAll("pinnedMessages")).map(Ut).filter(w=>w.conversationId===d);sn(d,m),m[0]!==void 0&&await c().delete("pinnedMessages",Ha$1(Ga$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",Et);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:Et,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&&Eu(w.updateVersion,p.updateVersion)<0||await m.store.put(w);}await m.done;},async deleteChannelMembers(d){let m=IDBKeyRange.bound([d,""],[d,we]),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 Lu(e={}){let n=e.createSocket??(l=>new globalThis.WebSocket(l)),t=e.connectTimeoutMs??1e4,r={open:new Set,message:new Set,close:new Set,error:new Set},o,i,a="idle",s;function u(l,b){for(let v of [...r[l]])v(b);}function c(){s!==void 0&&(clearTimeout(s),s=void 0);}function g(l,b){b!==void 0&&(l.removeEventListener("open",b.onOpen),l.removeEventListener("message",b.onMessage),l.removeEventListener("error",b.onError),l.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(l,b,v){let A={onOpen:()=>{l===o&&(c(),a="open",u("open",{endpoint:b}));},onMessage:R=>{if(l!==o||a!=="open")return;let k=R?.data;if(k instanceof ArrayBuffer){u("message",{data:k});return}u("error",{error:new Error(`WsTransport\uFF1A\u6536\u5230\u975E ArrayBuffer \u6D88\u606F\uFF08${typeof k}\uFF09\uFF0C\u5DF2\u5FFD\u7565`)});},onError:R=>{l===o&&u("error",{error:new Error(`WsTransport\uFF1AWebSocket error \u4E8B\u4EF6\uFF08${R instanceof Event?R.type:typeof R}\uFF09`)});},onClose:R=>{l===o&&(c(),g(l,A),o=void 0,i=void 0,a="closed",u("close",{code:R?.code??1006,reason:R?.reason??"",wasClean:R?.wasClean??false}));}};if(i=A,l.addEventListener("open",A.onOpen),l.addEventListener("message",A.onMessage),l.addEventListener("error",A.onError),l.addEventListener("close",A.onClose),v>0){let R=setTimeout(()=>{if(!(l!==o||a!=="connecting")){u("error",{error:new Error(`WsTransport\uFF1A\u8FDE\u63A5\u8D85\u65F6\uFF08${v}ms \u672A open\uFF09`)});try{l.close();}catch{}}},v);R.unref?.(),s=R;}}return {get state(){return a},async connect(l,b){let v=l[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(R){throw a="closed",R}A.binaryType="arraybuffer",o=A,h(A,v,b?.connectTimeoutMs??t);},async send(l){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(l);},async close(l=1e3,b){c(),o!==void 0&&(a==="connecting"||a==="open")&&(a="closing",o.close(l,b));},on(l,b){return r[l].add(b),()=>{r[l].delete(b);}}}}
|
|
7
|
+
export{bc as $,Ku as $a,Ks as A,Xc as Aa,wi as B,Lo as Ba,$s as C,Ho as Ca,qs as D,nd as Da,Js as E,td as Ea,zs as F,rd as Fa,Ws as G,od as Ga,Ys as H,id as Ha,Qs as I,ad as Ia,Xs as J,ld as Ja,Zs as K,md as Ka,ec as L,gd as La,nc as M,yd as Ma,tc as N,hd as Na,rc as O,bd as Oa,oc as P,Cd as Pa,ic as Q,Sn as Qa,ac as R,me as Ra,sc as S,kd as Sa,dc as T,Dd as Ta,lc as U,tu as Ua,Pn as V,F as Va,In as W,Pi as Wa,pc as X,fr as Xa,gc as Y,mu as Ya,yc as Z,gu as Za,hc as _,hu as _a,na as a,wc as aa,Gu as ab,Vn as b,Pc as ba,Lu as bb,He as c,vc as ca,_i as cb,J as d,Sc as da,un as db,ma as e,Ac as ea,Gi as eb,ya as f,Mc as fa,ea as fb,Fe as g,xc as ga,ha as h,Rc as ha,Ta as i,Tc as ia,Ae as j,kc as ja,W as k,Dc as ka,Ha as l,Uc as la,Fa as m,Bc as ma,Je as n,Xe as na,se as o,Kc as oa,Za as p,Gc as pa,Ve as q,Lc as qa,Q as r,Hc as ra,ms as s,Fc as sa,Ps as t,$c as ta,As as u,jc as ua,Ms as v,qc as va,Ts as w,Jc as wa,xe as x,Wc as xa,j as y,Yc as ya,he as z,Qc as za};
|