k2-im 0.1.37 → 0.1.39

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