6 lines
55 KiB
JavaScript
6 lines
55 KiB
JavaScript
import{r as w,j as r,a as je,c as pr}from"./react-vendor-jWT2yUdV.js";import{c as Q,b as H,U as gr,O as Sr,Q as br,R as _r,S as yr,T as xr,u as De,k as Re}from"./index-DiaaLdUu.js";import{a as lr,c as ur}from"./chunk-5PILOUBS-KHYNqMZE.js";import{i as Pe}from"./chunk-2QAN2V2R-B2qCPZrG.js";import{z as $}from"./react-hot-toast-cGcFZPSt.js";import{q as jr,d as Or,r as wr,s as Er}from"./index-FvTxWQTZ.js";import{g as Ir}from"./codemirror-core-782AVq39.js";import{c as Nr}from"./chunk-D5XJWRAV-DVN21qSw.js";import{p as Oe,a as we,b as Ee}from"./chunk-2QQAR2RD-YG5LNmAk.js";import{g as kr,a as Tr,i as Ae,O as M,b as Cr,c as Mr,d as Dr,s as dr,e as Rr,f as de,C as Pr,h as Ar}from"./modal-CW_tV9ed.js";import{c as U}from"./chunk-NAV3ZXLI-ChbUTMf0.js";import{a as ye}from"./chunk-SXMLSBOY-NckgDZ9w.js";import{i as Le}from"./chunk-MLPFQTYO-DSnBqIsb.js";import{q as Lr,g as Wr}from"./qface-BZLvZXJ8.js";import{c as Ur}from"./index-_HIxriDC.js";import{m as zr}from"./proxy-BsRmjYPH.js";import{C as Fr}from"./code_editor-TFSnOENo.js";import{s as qr,l as Gr}from"./chunk-KVDW62ZT-CGYYmJoP.js";import"./react-router-dom-C6k78GT4.js";import"./chunk-SLABUSGS-Cmz8sGrU.js";import"./useFocusable-DA5Croun.js";import"./chunk-M3MASYO7-B4fjH-eW.js";import"./iconBase-B7bT1FlI.js";import"./chunk-WQVQ7P2I-BJd1EiqP.js";import"./chunk-FGM523TA-CgSvUh2a.js";import"./chunk-6LIX6LVT-B246pOuK.js";import"./useHover-DC1o5-bm.js";import"./chunk-UX7UMZL5-CMHjUaC_.js";import"./use-dialog-CRIMuzeE.js";import"./index-DE7yoXMZ.js";import"./index-DPx4wqle.js";import"./index-BBhZPeTB.js";import"./chunk-ML27DD5T-ZFWrMOn-.js";import"./index-BV9-YCKp.js";import"./SelectionManager-Dl9uHsLK.js";import"./usePress-BrNwsdVw.js";import"./layout-Buao20KT.js";import"./gestures-BHfQC-M8.js";import"./features-animation-BkV7kg8P.js";import"./Item-D8Sud-UP.js";import"./react-hook-form-DTbqnRcd.js";import"./index-BsnVex0g.js";import"./codemirror-lang-DFaD5e7G.js";import"./DOMLayoutDelegate-DOgfSALU.js";import"./chunk-AXSF7SRE-Cr4elNVq.js";function We(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function xe(e,t){return xe=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(a,n){return a.__proto__=n,a},xe(e,t)}function Hr(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,xe(e,t)}var Ue=Number.isNaN||function(t){return typeof t=="number"&&t!==t};function Br(e,t){return!!(e===t||Ue(e)&&Ue(t))}function Jr(e,t){if(e.length!==t.length)return!1;for(var a=0;a<e.length;a++)if(!Br(e[a],t[a]))return!1;return!0}function ve(e,t){t===void 0&&(t=Jr);var a,n=[],l,f=!1;function p(){for(var S=[],v=0;v<arguments.length;v++)S[v]=arguments[v];return f&&a===this&&t(S,n)||(l=e.apply(this,S),f=!0,a=this,n=S),l}return p}var Vr=typeof performance=="object"&&typeof performance.now=="function",ze=Vr?function(){return performance.now()}:function(){return Date.now()};function Fe(e){cancelAnimationFrame(e.id)}function Kr(e,t){var a=ze();function n(){ze()-a>=t?e.call(null):l.id=requestAnimationFrame(n)}var l={id:requestAnimationFrame(n)};return l}var me=-1;function qe(e){if(e===void 0&&(e=!1),me===-1||e){var t=document.createElement("div"),a=t.style;a.width="50px",a.height="50px",a.overflow="scroll",document.body.appendChild(t),me=t.offsetWidth-t.clientWidth,document.body.removeChild(t)}return me}var Y=null;function Ge(e){if(e===void 0&&(e=!1),Y===null||e){var t=document.createElement("div"),a=t.style;a.width="50px",a.height="50px",a.overflow="scroll",a.direction="rtl";var n=document.createElement("div"),l=n.style;return l.width="100px",l.height="100px",t.appendChild(n),document.body.appendChild(t),t.scrollLeft>0?Y="positive-descending":(t.scrollLeft=1,t.scrollLeft===0?Y="negative":Y="positive-ascending"),document.body.removeChild(t),Y}return Y}var Qr=150,Yr=function(t,a){return t};function Xr(e){var t,a=e.getItemOffset,n=e.getEstimatedTotalSize,l=e.getItemSize,f=e.getOffsetForIndexAndAlignment,p=e.getStartIndexForOffset,S=e.getStopIndexForStartIndex,v=e.initInstanceProps,g=e.shouldResetStyleCacheOnItemSizeChange,h=e.validateProps;return t=(function(u){Hr(m,u);function m(o){var s;return s=u.call(this,o)||this,s._instanceProps=v(s.props,We(s)),s._outerRef=void 0,s._resetIsScrollingTimeoutId=null,s.state={instance:We(s),isScrolling:!1,scrollDirection:"forward",scrollOffset:typeof s.props.initialScrollOffset=="number"?s.props.initialScrollOffset:0,scrollUpdateWasRequested:!1},s._callOnItemsRendered=void 0,s._callOnItemsRendered=ve(function(d,c,b,y){return s.props.onItemsRendered({overscanStartIndex:d,overscanStopIndex:c,visibleStartIndex:b,visibleStopIndex:y})}),s._callOnScroll=void 0,s._callOnScroll=ve(function(d,c,b){return s.props.onScroll({scrollDirection:d,scrollOffset:c,scrollUpdateWasRequested:b})}),s._getItemStyle=void 0,s._getItemStyle=function(d){var c=s.props,b=c.direction,y=c.itemSize,j=c.layout,_=s._getItemStyleCache(g&&y,g&&j,g&&b),x;if(_.hasOwnProperty(d))x=_[d];else{var O=a(s.props,d,s._instanceProps),I=l(s.props,d,s._instanceProps),N=b==="horizontal"||j==="horizontal",z=b==="rtl",D=N?O:0;_[d]=x={position:"absolute",left:z?void 0:D,right:z?D:void 0,top:N?0:O,height:N?"100%":I,width:N?I:"100%"}}return x},s._getItemStyleCache=void 0,s._getItemStyleCache=ve(function(d,c,b){return{}}),s._onScrollHorizontal=function(d){var c=d.currentTarget,b=c.clientWidth,y=c.scrollLeft,j=c.scrollWidth;s.setState(function(_){if(_.scrollOffset===y)return null;var x=s.props.direction,O=y;if(x==="rtl")switch(Ge()){case"negative":O=-y;break;case"positive-descending":O=j-b-y;break}return O=Math.max(0,Math.min(O,j-b)),{isScrolling:!0,scrollDirection:_.scrollOffset<O?"forward":"backward",scrollOffset:O,scrollUpdateWasRequested:!1}},s._resetIsScrollingDebounced)},s._onScrollVertical=function(d){var c=d.currentTarget,b=c.clientHeight,y=c.scrollHeight,j=c.scrollTop;s.setState(function(_){if(_.scrollOffset===j)return null;var x=Math.max(0,Math.min(j,y-b));return{isScrolling:!0,scrollDirection:_.scrollOffset<x?"forward":"backward",scrollOffset:x,scrollUpdateWasRequested:!1}},s._resetIsScrollingDebounced)},s._outerRefSetter=function(d){var c=s.props.outerRef;s._outerRef=d,typeof c=="function"?c(d):c!=null&&typeof c=="object"&&c.hasOwnProperty("current")&&(c.current=d)},s._resetIsScrollingDebounced=function(){s._resetIsScrollingTimeoutId!==null&&Fe(s._resetIsScrollingTimeoutId),s._resetIsScrollingTimeoutId=Kr(s._resetIsScrolling,Qr)},s._resetIsScrolling=function(){s._resetIsScrollingTimeoutId=null,s.setState({isScrolling:!1},function(){s._getItemStyleCache(-1,null)})},s}m.getDerivedStateFromProps=function(s,d){return Zr(s,d),h(s),null};var i=m.prototype;return i.scrollTo=function(s){s=Math.max(0,s),this.setState(function(d){return d.scrollOffset===s?null:{scrollDirection:d.scrollOffset<s?"forward":"backward",scrollOffset:s,scrollUpdateWasRequested:!0}},this._resetIsScrollingDebounced)},i.scrollToItem=function(s,d){d===void 0&&(d="auto");var c=this.props,b=c.itemCount,y=c.layout,j=this.state.scrollOffset;s=Math.max(0,Math.min(s,b-1));var _=0;if(this._outerRef){var x=this._outerRef;y==="vertical"?_=x.scrollWidth>x.clientWidth?qe():0:_=x.scrollHeight>x.clientHeight?qe():0}this.scrollTo(f(this.props,s,d,j,this._instanceProps,_))},i.componentDidMount=function(){var s=this.props,d=s.direction,c=s.initialScrollOffset,b=s.layout;if(typeof c=="number"&&this._outerRef!=null){var y=this._outerRef;d==="horizontal"||b==="horizontal"?y.scrollLeft=c:y.scrollTop=c}this._callPropsCallbacks()},i.componentDidUpdate=function(){var s=this.props,d=s.direction,c=s.layout,b=this.state,y=b.scrollOffset,j=b.scrollUpdateWasRequested;if(j&&this._outerRef!=null){var _=this._outerRef;if(d==="horizontal"||c==="horizontal")if(d==="rtl")switch(Ge()){case"negative":_.scrollLeft=-y;break;case"positive-ascending":_.scrollLeft=y;break;default:var x=_.clientWidth,O=_.scrollWidth;_.scrollLeft=O-x-y;break}else _.scrollLeft=y;else _.scrollTop=y}this._callPropsCallbacks()},i.componentWillUnmount=function(){this._resetIsScrollingTimeoutId!==null&&Fe(this._resetIsScrollingTimeoutId)},i.render=function(){var s=this.props,d=s.children,c=s.className,b=s.direction,y=s.height,j=s.innerRef,_=s.innerElementType,x=s.innerTagName,O=s.itemCount,I=s.itemData,N=s.itemKey,z=N===void 0?Yr:N,D=s.layout,P=s.outerElementType,F=s.outerTagName,ee=s.style,fe=s.useIsScrolling,q=s.width,oe=this.state.isScrolling,re=b==="horizontal"||D==="horizontal",E=re?this._onScrollHorizontal:this._onScrollVertical,k=this._getRangeToRender(),G=k[0],ce=k[1],B=[];if(O>0)for(var C=G;C<=ce;C++)B.push(w.createElement(d,{data:I,key:z(C,I),index:C,isScrolling:fe?oe:void 0,style:this._getItemStyle(C)}));var te=n(this.props,this._instanceProps);return w.createElement(P||F||"div",{className:c,onScroll:E,ref:this._outerRefSetter,style:Ir({position:"relative",height:y,width:q,overflow:"auto",WebkitOverflowScrolling:"touch",willChange:"transform",direction:b},ee)},w.createElement(_||x||"div",{children:B,ref:j,style:{height:re?"100%":te,pointerEvents:oe?"none":void 0,width:re?te:"100%"}}))},i._callPropsCallbacks=function(){if(typeof this.props.onItemsRendered=="function"){var s=this.props.itemCount;if(s>0){var d=this._getRangeToRender(),c=d[0],b=d[1],y=d[2],j=d[3];this._callOnItemsRendered(c,b,y,j)}}if(typeof this.props.onScroll=="function"){var _=this.state,x=_.scrollDirection,O=_.scrollOffset,I=_.scrollUpdateWasRequested;this._callOnScroll(x,O,I)}},i._getRangeToRender=function(){var s=this.props,d=s.itemCount,c=s.overscanCount,b=this.state,y=b.isScrolling,j=b.scrollDirection,_=b.scrollOffset;if(d===0)return[0,0,0,0];var x=p(this.props,_,this._instanceProps),O=S(this.props,x,_,this._instanceProps),I=!y||j==="backward"?Math.max(1,c):1,N=!y||j==="forward"?Math.max(1,c):1;return[Math.max(0,x-I),Math.max(0,Math.min(d-1,O+N)),x,O]},m})(w.PureComponent),t.defaultProps={direction:"ltr",itemData:void 0,layout:"vertical",overscanCount:2,useIsScrolling:!1},t}var Zr=function(t,a){t.children,t.direction,t.height,t.layout,t.innerTagName,t.outerTagName,t.width,a.instance},$r=50,X=function(t,a,n){var l=t,f=l.itemSize,p=n.itemMetadataMap,S=n.lastMeasuredIndex;if(a>S){var v=0;if(S>=0){var g=p[S];v=g.offset+g.size}for(var h=S+1;h<=a;h++){var u=f(h);p[h]={offset:v,size:u},v+=u}n.lastMeasuredIndex=a}return p[a]},et=function(t,a,n){var l=a.itemMetadataMap,f=a.lastMeasuredIndex,p=f>0?l[f].offset:0;return p>=n?fr(t,a,f,0,n):rt(t,a,Math.max(0,f),n)},fr=function(t,a,n,l,f){for(;l<=n;){var p=l+Math.floor((n-l)/2),S=X(t,p,a).offset;if(S===f)return p;S<f?l=p+1:S>f&&(n=p-1)}return l>0?l-1:0},rt=function(t,a,n,l){for(var f=t.itemCount,p=1;n<f&&X(t,n,a).offset<l;)n+=p,p*=2;return fr(t,a,Math.min(n,f-1),Math.floor(n/2),l)},He=function(t,a){var n=t.itemCount,l=a.itemMetadataMap,f=a.estimatedItemSize,p=a.lastMeasuredIndex,S=0;if(p>=n&&(p=n-1),p>=0){var v=l[p];S=v.offset+v.size}var g=n-p-1,h=g*f;return S+h},tt=Xr({getItemOffset:function(t,a,n){return X(t,a,n).offset},getItemSize:function(t,a,n){return n.itemMetadataMap[a].size},getEstimatedTotalSize:He,getOffsetForIndexAndAlignment:function(t,a,n,l,f,p){var S=t.direction,v=t.height,g=t.layout,h=t.width,u=S==="horizontal"||g==="horizontal",m=u?h:v,i=X(t,a,f),o=He(t,f),s=Math.max(0,Math.min(o-m,i.offset)),d=Math.max(0,i.offset-m+i.size+p);switch(n==="smart"&&(l>=d-m&&l<=s+m?n="auto":n="center"),n){case"start":return s;case"end":return d;case"center":return Math.round(d+(s-d)/2);case"auto":default:return l>=d&&l<=s?l:l<d?d:s}},getStartIndexForOffset:function(t,a,n){return et(t,n,a)},getStopIndexForStartIndex:function(t,a,n,l){for(var f=t.direction,p=t.height,S=t.itemCount,v=t.layout,g=t.width,h=f==="horizontal"||v==="horizontal",u=h?g:p,m=X(t,a,l),i=n+u,o=m.offset+m.size,s=a;s<S-1&&o<i;)s++,o+=X(t,s,l).size;return s},initInstanceProps:function(t,a){var n=t,l=n.estimatedItemSize,f={itemMetadataMap:{},estimatedItemSize:l||$r,lastMeasuredIndex:-1};return a.resetAfterIndex=function(p,S){S===void 0&&(S=!0),f.lastMeasuredIndex=Math.min(f.lastMeasuredIndex,p-1),a._getItemStyleCache(-1),S&&a.forceUpdate()},f},shouldResetStyleCacheOnItemSizeChange:!1,validateProps:function(t){t.itemSize}});const nt=({data:e})=>r.jsxs("div",{className:"flex gap-2",children:[r.jsx(U,{children:"心跳"}),r.jsxs(U,{children:["间隔 ",e.status.interval,"ms"]})]}),at=({data:e})=>r.jsxs("div",{className:"flex gap-2",children:[r.jsx(U,{children:"生命周期"}),r.jsx(U,{color:Tr(e.sub_type),children:kr(e.sub_type)})]}),st=({data:e})=>r.jsxs("div",{className:"h-full flex items-center",children:[e.meta_event_type==="lifecycle"&&r.jsx(at,{data:e}),e.meta_event_type==="heartbeat"&&r.jsx(nt,{data:e})]}),ae=e=>e.toString().padStart(2,"0"),it=e=>{e=e*1e3;const t=new Date(e),a=t.getFullYear(),n=t.getMonth()+1,l=t.getDate(),f=t.getHours(),p=t.getMinutes(),S=t.getSeconds();return`${a}-${ae(n)}-${ae(l)} ${ae(f)}:${ae(p)}:${ae(S)}`},Be=(e,t=!1)=>e.map((a,n)=>{switch(a.type){case"text":return r.jsx("span",{children:a.data.text},n);case"face":return r.jsx(Le,{removeWrapper:!0,classNames:{img:"w-6 h-6 inline !text-[0px] m-0 -mt-1.5 !p-0"},src:Lr.getUrl(a.data.id),alt:`face-${a.data.id}`},n);case"image":return r.jsx(Le,{classNames:{wrapper:"block !text-[0px] !m-0 !p-0",img:"block"},radius:"sm",className:t?"max-h-16 object-cover":"max-w-64 max-h-96 h-auto object-cover",src:a.data.url||a.data.file,alt:"image",referrerPolicy:"no-referrer"},n);case"record":return r.jsx("audio",{controls:!0,src:a.data.url||a.data.file},n);case"video":return r.jsx("video",{controls:!0,src:a.data.url||a.data.file},n);case"at":return r.jsxs("span",{className:"text-blue-500",children:["@",a.data.qq==="all"?"所有人":r.jsxs("span",{children:[a.data.name,"(",a.data.qq,")"]})]},n);case"rps":return r.jsx("span",{children:"[猜拳]"},n);case"dice":return r.jsx("span",{children:"[掷骰子]"},n);case"shake":return r.jsx("span",{children:"[窗口抖动]"},n);case"poke":return r.jsxs("span",{children:["[戳一戳: ",a.data.name||a.data.id,"]"]},n);case"anonymous":return r.jsx("span",{children:"[匿名消息]"},n);case"share":return r.jsx("a",{href:a.data.url,target:"_blank",rel:"noopener noreferrer",children:a.data.title},n);case"contact":return r.jsxs("span",{children:["[推荐",a.data.type==="qq"?"好友":"群",": ",a.data.id,"]"]},n);case"location":return r.jsxs("span",{children:["[位置: ",a.data.title||"未知","]"]},n);case"music":return a.data.type==="custom"?r.jsx("a",{href:a.data.url,target:"_blank",rel:"noopener noreferrer",children:a.data.title},n):r.jsxs("span",{children:["[音乐: ",a.data.type," - ",a.data.id,"]"]},n);case"reply":return r.jsxs("div",{className:"bg-content3 py-1 px-2 rounded-md flex items-center gap-1",children:[r.jsx(Ur,{className:"text-default-500"}),"回复消息ID: ",a.data.id]},n);case"forward":return r.jsxs("span",{children:["[合并转发: ",a.data.id,"]"]},n);case"node":return r.jsx("span",{children:"[消息节点]"},n);case"xml":return r.jsx("pre",{children:a.data.data},n);case"json":return r.jsx("pre",{className:"break-all whitespace-break-spaces",children:a.data.data},n);case"file":return r.jsx("a",{href:a.data.file,target:"_blank",rel:"noopener noreferrer",children:"[文件]"},n);default:return r.jsx("span",{children:"[不支持的消息类型]"},n)}}),hr=({data:e})=>r.jsxs("div",{className:"h-full flex flex-col overflow-hidden flex-1",children:[r.jsxs("div",{className:"flex gap-2 items-center flex-shrink-0",children:[r.jsxs("div",{className:"font-bold",children:[Ae(e)&&e.sender.card&&r.jsx("span",{className:"mr-1",children:e.sender.card}),r.jsx("span",{className:Q(Ae(e)&&e.sender.card&&"text-default-400 font-normal"),children:e.sender.nickname})]}),r.jsxs("div",{children:["(",e.sender.user_id,")"]}),r.jsxs("div",{className:"text-sm",children:["消息ID: ",e.message_id]})]}),r.jsxs(Oe,{showArrow:!0,triggerScaleOnOpen:!1,children:[r.jsx(we,{children:r.jsxs("div",{className:"flex-1 break-all overflow-hidden whitespace-pre-wrap border border-default-100 p-2 rounded-md hover:bg-content2 md:cursor-pointer transition-background relative group",children:[r.jsx("div",{className:"absolute right-2 top-2 opacity-0 group-hover:opacity-100 text-default-300",children:"点击查看完整消息"}),Array.isArray(e.message)?Be(e.message,!0):e.raw_message]})}),r.jsx(Ee,{children:r.jsx("div",{className:"p-2",children:Array.isArray(e.message)?Be(e.message):e.raw_message})})]})]}),ot=({data:e})=>r.jsxs("div",{className:"h-full overflow-hidden flex flex-col w-full",children:[r.jsxs("div",{className:"flex items-center p-1 flex-shrink-0",children:[r.jsx(ye,{src:`https://p.qlogo.cn/gh/${e.group_id}/${e.group_id}/0/`,alt:"群头像",size:"sm",className:"flex-shrink-0 mr-2"}),r.jsxs("div",{children:["群 ",e.group_id]})]}),r.jsxs("div",{className:"flex items-start p-1 rounded-md h-full flex-1 border border-default-100",children:[r.jsx(ye,{src:`https://q1.qlogo.cn/g?b=qq&nk=${e.sender.user_id}&s=100`,alt:"用户头像",size:"md",className:"flex-shrink-0 mr-2"}),r.jsx(hr,{data:e})]})]}),ct=({data:e})=>r.jsxs("div",{className:"flex items-start p-2 rounded-md h-full flex-1",children:[r.jsx(ye,{src:`https://q1.qlogo.cn/g?b=qq&nk=${e.sender.user_id}&s=100`,alt:"用户头像",size:"md",className:"flex-shrink-0 mr-2"}),r.jsx(hr,{data:e})]}),Je=({data:e})=>e.message_type==="group"?r.jsx(ot,{data:e}):e.message_type==="private"?r.jsx(ct,{data:e}):r.jsx("div",{children:"未知消息类型"}),lt=({data:e})=>{const{group_id:t,user_id:a,file:n}=e;return r.jsxs(r.Fragment,{children:[r.jsxs("div",{children:["群号: ",t]}),r.jsxs("div",{children:["用户ID: ",a]}),r.jsxs("div",{children:["文件名: ",n.name]}),r.jsxs("div",{children:["文件大小: ",n.size," 字节"]})]})},ut=({data:e})=>{const{group_id:t,user_id:a,sub_type:n}=e;return r.jsxs(r.Fragment,{children:[r.jsxs("div",{children:["群号: ",t]}),r.jsxs("div",{children:["用户ID: ",a]}),r.jsxs("div",{children:["变动类型: ",n==="set"?"设置管理员":"取消管理员"]})]})},dt=({data:e})=>{const{group_id:t,operator_id:a,user_id:n,sub_type:l}=e;return r.jsxs(r.Fragment,{children:[r.jsxs("div",{children:["群号: ",t]}),r.jsxs("div",{children:["操作者ID: ",a]}),r.jsxs("div",{children:["用户ID: ",n]}),r.jsxs("div",{children:["原因: ",l]})]})},ft=({data:e})=>{const{group_id:t,operator_id:a,user_id:n,sub_type:l}=e;return r.jsxs(r.Fragment,{children:[r.jsxs("div",{children:["群号: ",t]}),r.jsxs("div",{children:["操作者ID: ",a]}),r.jsxs("div",{children:["用户ID: ",n]}),r.jsxs("div",{children:["增加类型: ",l]})]})},ht=({data:e})=>{const{group_id:t,operator_id:a,user_id:n,sub_type:l,duration:f}=e;return r.jsxs(r.Fragment,{children:[r.jsxs("div",{children:["群号: ",t]}),r.jsxs("div",{children:["操作者ID: ",a]}),r.jsxs("div",{children:["用户ID: ",n]}),r.jsxs("div",{children:["禁言类型: ",l]}),r.jsxs("div",{children:["禁言时长: ",f," 秒"]})]})},vt=({data:e})=>{const{user_id:t}=e;return r.jsx(r.Fragment,{children:r.jsxs("div",{children:["用户ID: ",t]})})},mt=({data:e})=>{const{group_id:t,user_id:a,operator_id:n,message_id:l}=e;return r.jsxs(r.Fragment,{children:[r.jsxs("div",{children:["群号: ",t]}),r.jsxs("div",{children:["用户ID: ",a]}),r.jsxs("div",{children:["操作者ID: ",n]}),r.jsxs("div",{children:["消息ID: ",l]})]})},pt=({data:e})=>{const{user_id:t,message_id:a}=e;return r.jsxs(r.Fragment,{children:[r.jsxs("div",{children:["用户ID: ",t]}),r.jsxs("div",{children:["消息ID: ",a]})]})},gt=({data:e})=>{const{group_id:t,user_id:a,target_id:n}=e;return r.jsxs(r.Fragment,{children:[r.jsxs("div",{children:["群号: ",t]}),r.jsxs("div",{children:["用户ID: ",a]}),r.jsxs("div",{children:["目标ID: ",n]})]})},St=({data:e})=>{const{group_id:t,user_id:a,target_id:n}=e;return r.jsxs(r.Fragment,{children:[r.jsxs("div",{children:["群号: ",t]}),r.jsxs("div",{children:["用户ID: ",a]}),r.jsxs("div",{children:["目标ID: ",n]})]})},bt=({data:e})=>{const{group_id:t,user_id:a,honor_type:n}=e;return r.jsxs(r.Fragment,{children:[r.jsxs("div",{children:["群号: ",t]}),r.jsxs("div",{children:["用户ID: ",a]}),r.jsxs("div",{children:["荣誉类型: ",n]})]})},_t=({data:e})=>{const{group_id:t,user_id:a,message_id:n,likes:l}=e;return r.jsxs(r.Fragment,{children:[r.jsxs("div",{children:["群号: ",t]}),r.jsxs("div",{children:["用户ID: ",a]}),r.jsxs("div",{children:["消息ID: ",n]}),r.jsxs("div",{children:["表情回应:",l.map(f=>`表情ID: ${f.emoji_id}, 数量: ${f.count}`).join(", ")]})]})},yt=({data:e})=>{const{group_id:t,message_id:a,sender_id:n,operator_id:l,sub_type:f}=e;return r.jsxs(r.Fragment,{children:[r.jsxs("div",{children:["群号: ",t]}),r.jsxs("div",{children:["消息ID: ",a]}),r.jsxs("div",{children:["发送者ID: ",n]}),r.jsxs("div",{children:["操作者ID: ",l]}),r.jsxs("div",{children:["操作类型: ",f]})]})},xt=({data:e})=>{const{group_id:t,user_id:a,card_new:n,card_old:l}=e;return r.jsxs(r.Fragment,{children:[r.jsxs("div",{children:["群号: ",t]}),r.jsxs("div",{children:["用户ID: ",a]}),r.jsxs("div",{children:["新名片: ",n]}),r.jsxs("div",{children:["旧名片: ",l]})]})},jt=({data:e})=>{let t;switch(e.notice_type){case M.GroupUpload:t=r.jsx(lt,{data:e});break;case M.GroupAdmin:t=r.jsx(ut,{data:e});break;case M.GroupDecrease:t=r.jsx(dt,{data:e});break;case M.GroupIncrease:t=r.jsx(ft,{data:e});break;case M.GroupBan:t=r.jsx(ht,{data:e});break;case M.FriendAdd:t=r.jsx(vt,{data:e});break;case M.GroupRecall:t=r.jsx(mt,{data:e});break;case M.FriendRecall:t=r.jsx(pt,{data:e});break;case M.Notify:switch(e.sub_type){case"poke":t=r.jsx(gt,{data:e});break;case"lucky_king":t=r.jsx(St,{data:e});break;case"honor":t=r.jsx(bt,{data:e});break}break;case M.GroupMsgEmojiLike:t=r.jsx(_t,{data:e});break;case M.GroupEssence:t=r.jsx(yt,{data:e});break;case M.GroupCard:t=r.jsx(xt,{data:e});break}return r.jsxs("div",{className:"flex gap-2 items-center",children:[r.jsx(U,{color:"warning",variant:"flat",children:"通知"}),r.jsx(U,{children:Cr(e.notice_type)}),t]})},Ot=({data:e})=>r.jsxs("div",{className:"flex gap-2 items-center",children:[r.jsx(U,{color:Dr(e.status),variant:"flat",children:Mr(e.status)}),e.data&&r.jsxs(Oe,{placement:"right",showArrow:!0,classNames:{content:"max-h-96 max-w-96 overflow-hidden p-0"},children:[r.jsx(we,{children:r.jsx(H,{size:"sm",color:"primary",variant:"flat",radius:"full",className:"text-medium",children:"查看数据"})}),r.jsx(Ee,{children:r.jsx(dr,{hideSymbol:!0,codeString:JSON.stringify(e.data,null,2),tooltipProps:{content:"点击复制"},classNames:{copyButton:"self-start sticky top-0 right-0"},className:"bg-content1 h-full overflow-y-scroll items-start",children:JSON.stringify(e.data,null,2).split(`
|
|
`).map((t,a)=>r.jsx("span",{className:"whitespace-pre-wrap break-all",children:t},a))})})]}),e.message&&r.jsxs(U,{className:"pl-0.5",variant:"flat",children:[r.jsx(U,{color:"warning",size:"sm",className:"-ml-2 mr-1",variant:"flat",children:"返回消息"}),e.message]})]}),wt={hidden:{opacity:0,scale:.8,y:50},visible:{opacity:1,scale:1,y:0,transition:{type:"spring",stiffness:300,damping:20}}};function Et({data:e}){return r.jsx("div",{children:"Request消息,暂未适配"})}const It=e=>e==="meta_event"?100:e==="message"?180:e==="request"||e==="notice"?100:e==="message_sent"?250:100,Nt=e=>{if(de(e))switch(e.post_type){case"meta_event":return r.jsx(st,{data:e});case"message":return r.jsx(Je,{data:e});case"request":return r.jsx(Et,{data:e});case"notice":return r.jsx(jt,{data:e});case"message_sent":return r.jsx(Je,{data:e});default:return r.jsx("div",{children:"未知类型的消息"})}return r.jsx(Ot,{data:e})},kt=({data:e,index:t,style:a})=>{const n=e[t],l=de(n);return r.jsx("div",{style:a,className:"p-1 overflow-visible w-full h-full",children:r.jsx(zr.div,{variants:wt,initial:"hidden",animate:"visible",className:"h-full px-2",children:r.jsxs(lr,{className:"w-full h-full py-2 bg-white/60 dark:bg-white/[0.04] backdrop-blur-xl border border-white/60 dark:border-white/10 shadow-sm rounded-2xl",children:[r.jsxs(Nr,{className:"py-0 text-default-500 flex-row gap-2",children:[r.jsx("div",{className:"font-bold",children:l?Rr(n.post_type):"请求响应"}),r.jsx("div",{className:"text-sm",children:l&&it(n.time)}),r.jsx("div",{className:"ml-auto",children:r.jsxs(Oe,{placement:"left",showArrow:!0,classNames:{content:"max-h-96 max-w-96 overflow-hidden p-0"},children:[r.jsx(we,{children:r.jsx(H,{size:"sm",color:"primary",variant:"flat",radius:"full",isIconOnly:!0,className:"text-medium",children:r.jsx(jr,{})})}),r.jsx(Ee,{children:r.jsx(dr,{hideSymbol:!0,codeString:JSON.stringify(n,null,2),tooltipProps:{content:"点击复制"},classNames:{copyButton:"self-start sticky top-0 right-0"},className:"bg-content1 h-full overflow-y-scroll items-start",children:JSON.stringify(n,null,2).split(`
|
|
`).map((f,p)=>r.jsx("span",{className:"whitespace-pre-wrap break-all",children:f},p))})})]})})]}),r.jsx(ur,{className:"py-0",children:Nt(n)})]})})})},Tt=e=>{const{messages:t}=e,a=w.useRef(null),n=w.useRef(null),[l,f]=w.useState(400);return w.useEffect(()=>{const p=new ResizeObserver(()=>{a.current&&f(a.current.offsetHeight)});return a.current&&p.observe(a.current),()=>{p.disconnect()}},[]),w.useEffect(()=>{n.current&&n.current.resetAfterIndex(0,!0)},[t]),r.jsx("div",{className:"w-full h-full overflow-hidden",ref:a,children:r.jsx(tt,{ref:n,itemCount:t.length,width:"100%",style:{overflowX:"hidden"},itemSize:p=>{const S=t[p];return de(S)?It(S.post_type):100},height:l,itemData:t,itemKey:p=>t.length-p-1,children:kt})})},Ct=e=>{const{sendMessage:t}=e,{isOpen:a,onOpen:n,onOpenChange:l}=gr(),f=w.useRef(null),p=w.useCallback(S=>{var g;const v=(g=f.current)==null?void 0:g.getValue();if(!v){$.error("消息不能为空");return}try{t(v),$.success("消息发送成功"),S()}catch{$.error("消息发送失败")}},[t]);return r.jsxs(r.Fragment,{children:[r.jsx(H,{onPress:n,color:"primary",radius:"full",variant:"flat",size:"sm",className:"font-medium",children:"构造请求"}),r.jsx(Sr,{isOpen:a,onOpenChange:l,placement:"top-center",size:"5xl",scrollBehavior:"outside",isDismissable:!1,children:r.jsx(br,{className:"rounded-3xl border border-white/70 dark:border-white/10 bg-white/92 dark:bg-zinc-900/92 backdrop-blur-2xl shadow-2xl shadow-primary-900/15",children:S=>r.jsxs(r.Fragment,{children:[r.jsx(_r,{className:"flex flex-col gap-1",children:"构造请求"}),r.jsx(yr,{children:r.jsx("div",{className:"h-96",children:r.jsx(Fr,{height:"100%",defaultLanguage:"json",defaultValue:`{
|
|
"action": "get_group_list"
|
|
}`,ref:f})})}),r.jsxs(xr,{children:[r.jsx(Pr,{}),r.jsx(H,{color:"primary",variant:"flat",onPress:S,children:"取消"}),r.jsx(H,{color:"primary",onPress:()=>p(S),children:"发送"})]})]})})})]})};var pe={},T={},ge={},Ve;function R(){return Ve||(Ve=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.isEventSourceSupported=e.isReactNative=e.ReadyState=e.DEFAULT_HEARTBEAT=e.UNPARSABLE_JSON_OBJECT=e.DEFAULT_RECONNECT_INTERVAL_MS=e.DEFAULT_RECONNECT_LIMIT=e.SOCKET_IO_PING_CODE=e.SOCKET_IO_PATH=e.SOCKET_IO_PING_INTERVAL=e.DEFAULT_EVENT_SOURCE_OPTIONS=e.EMPTY_EVENT_HANDLERS=e.DEFAULT_OPTIONS=void 0;var t=1,a=1e3*t;e.DEFAULT_OPTIONS={},e.EMPTY_EVENT_HANDLERS={},e.DEFAULT_EVENT_SOURCE_OPTIONS={withCredentials:!1,events:e.EMPTY_EVENT_HANDLERS},e.SOCKET_IO_PING_INTERVAL=25*a,e.SOCKET_IO_PATH="/socket.io/?EIO=3&transport=websocket",e.SOCKET_IO_PING_CODE="2",e.DEFAULT_RECONNECT_LIMIT=20,e.DEFAULT_RECONNECT_INTERVAL_MS=5e3,e.UNPARSABLE_JSON_OBJECT={},e.DEFAULT_HEARTBEAT={message:"ping",timeout:6e4,interval:25e3};var n;(function(f){f[f.UNINSTANTIATED=-1]="UNINSTANTIATED",f[f.CONNECTING=0]="CONNECTING",f[f.OPEN=1]="OPEN",f[f.CLOSING=2]="CLOSING",f[f.CLOSED=3]="CLOSED"})(n||(e.ReadyState=n={}));var l=function(){try{return"EventSource"in globalThis}catch{return!1}};e.isReactNative=typeof navigator<"u"&&navigator.product==="ReactNative",e.isEventSourceSupported=!e.isReactNative&&l()})(ge)),ge}var se={},Se={},Ke;function Ie(){return Ke||(Ke=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.resetWebSockets=e.sharedWebSockets=void 0,e.sharedWebSockets={};var t=function(a){if(a&&e.sharedWebSockets.hasOwnProperty(a))delete e.sharedWebSockets[a];else for(var n in e.sharedWebSockets)e.sharedWebSockets.hasOwnProperty(n)&&delete e.sharedWebSockets[n]};e.resetWebSockets=t})(Se)),Se}var J={},A={},Qe;function Ne(){if(Qe)return A;Qe=1,Object.defineProperty(A,"__esModule",{value:!0}),A.setUpSocketIOPing=A.appendQueryParams=A.parseSocketIOUrl=void 0;var e=R(),t=function(l){if(l){var f=/^https|wss/.test(l),p=l.replace(/^(https?|wss?)(:\/\/)?/,""),S=p.replace(/\/$/,""),v=f?"wss":"ws";return"".concat(v,"://").concat(S).concat(e.SOCKET_IO_PATH)}else if(l===""){var f=/^https/.test(window.location.protocol),v=f?"wss":"ws",g=window.location.port?":".concat(window.location.port):"";return"".concat(v,"://").concat(window.location.hostname).concat(g).concat(e.SOCKET_IO_PATH)}return l};A.parseSocketIOUrl=t;var a=function(l,f){f===void 0&&(f={});var p=/\?([\w]+=[\w]+)/,S=p.test(l),v="".concat(Object.entries(f).reduce(function(g,h){var u=h[0],m=h[1];return g+"".concat(u,"=").concat(m,"&")},"").slice(0,-1));return"".concat(l).concat(S?"&":"?").concat(v)};A.appendQueryParams=a;var n=function(l,f){f===void 0&&(f=e.SOCKET_IO_PING_INTERVAL);var p=function(){return l(e.SOCKET_IO_PING_CODE)};return window.setInterval(p,f)};return A.setUpSocketIOPing=n,A}var le={},Ye;function vr(){if(Ye)return le;Ye=1,Object.defineProperty(le,"__esModule",{value:!0}),le.heartbeat=a;var e=R();function t(n){return Array.isArray(n)?n.reduce(function(l,f){return l.current>f.current?l:f}).current:n.current}function a(n,l,f){var p=f||{},S=p.interval,v=S===void 0?e.DEFAULT_HEARTBEAT.interval:S,g=p.timeout,h=g===void 0?e.DEFAULT_HEARTBEAT.timeout:g,u=p.message,m=u===void 0?e.DEFAULT_HEARTBEAT.message:u,i=Math.max(100,v/10),o=Date.now(),s=setInterval(function(){var d=Date.now(),c=t(l);if(c+h<=d)console.warn("Heartbeat timed out, closing connection, last message received ".concat(d-c,"ms ago, last ping sent ").concat(d-o,"ms ago")),n.close();else if(c+v<=d&&o+v<=d)try{typeof m=="function"?n.send(m()):n.send(m),o=d}catch(b){console.error("Heartbeat failed, closing connection",b instanceof Error?b.message:b),n.close()}},i);return n.addEventListener("close",function(){clearInterval(s)}),function(){}}return le}var ie={},be={},Xe;function ke(){return Xe||(Xe=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.resetSubscribers=e.removeSubscriber=e.addSubscriber=e.hasSubscribers=e.getSubscribers=void 0;var t={},a=[],n=function(v){return(0,e.hasSubscribers)(v)?Array.from(t[v]):a};e.getSubscribers=n;var l=function(v){var g;return((g=t[v])===null||g===void 0?void 0:g.size)>0};e.hasSubscribers=l;var f=function(v,g){t[v]=t[v]||new Set,t[v].add(g)};e.addSubscriber=f;var p=function(v,g){t[v].delete(g)};e.removeSubscriber=p;var S=function(v){if(v&&t.hasOwnProperty(v))delete t[v];else for(var g in t)t.hasOwnProperty(g)&&delete t[g]};e.resetSubscribers=S})(be)),be}var Ze;function Te(){if(Ze)return ie;Ze=1,Object.defineProperty(ie,"__esModule",{value:!0}),ie.assertIsWebSocket=a,ie.resetGlobalState=n;var e=Ie(),t=ke();function a(l,f){if(!f&&!(l instanceof WebSocket))throw new Error("")}function n(l){(0,t.resetSubscribers)(l),(0,e.resetWebSockets)(l)}return ie}var $e;function Mt(){if($e)return J;$e=1;var e=J&&J.__assign||function(){return e=Object.assign||function(h){for(var u,m=1,i=arguments.length;m<i;m++){u=arguments[m];for(var o in u)Object.prototype.hasOwnProperty.call(u,o)&&(h[o]=u[o])}return h},e.apply(this,arguments)};Object.defineProperty(J,"__esModule",{value:!0}),J.attachListeners=void 0;var t=Ne(),a=vr(),n=R(),l=Te(),f=function(h,u,m,i){h.onmessage=function(o){var s;u.current.onMessage&&u.current.onMessage(o),typeof(i==null?void 0:i.current)=="number"&&(i.current=Date.now()),!(typeof u.current.filter=="function"&&u.current.filter(o)!==!0)&&(u.current.heartbeat&&typeof u.current.heartbeat!="boolean"&&((s=u.current.heartbeat)===null||s===void 0?void 0:s.returnMessage)===o.data||m(o))}},p=function(h,u,m,i,o){h.onopen=function(s){if(u.current.onOpen&&u.current.onOpen(s),i.current=0,m(n.ReadyState.OPEN),u.current.heartbeat&&h instanceof WebSocket){var d=typeof u.current.heartbeat=="boolean"?void 0:u.current.heartbeat;o.current=Date.now(),(0,a.heartbeat)(h,o,d)}}},S=function(h,u,m,i,o){if(n.isEventSourceSupported&&h instanceof EventSource)return function(){};(0,l.assertIsWebSocket)(h,u.current.skipAssert);var s;return h.onclose=function(d){var c;if(u.current.onClose&&u.current.onClose(d),m(n.ReadyState.CLOSED),u.current.shouldReconnect&&u.current.shouldReconnect(d)){var b=(c=u.current.reconnectAttempts)!==null&&c!==void 0?c:n.DEFAULT_RECONNECT_LIMIT;if(o.current<b){var y=typeof u.current.reconnectInterval=="function"?u.current.reconnectInterval(o.current):u.current.reconnectInterval;s=window.setTimeout(function(){o.current++,i()},y??n.DEFAULT_RECONNECT_INTERVAL_MS)}else u.current.onReconnectStop&&u.current.onReconnectStop(b),console.warn("Max reconnect attempts of ".concat(b," exceeded"))}},function(){return s&&window.clearTimeout(s)}},v=function(h,u,m,i,o){var s;return h.onerror=function(d){var c;if(u.current.onError&&u.current.onError(d),n.isEventSourceSupported&&h instanceof EventSource&&(u.current.onClose&&u.current.onClose(e(e({},d),{code:1006,reason:"An error occurred with the EventSource: ".concat(d),wasClean:!1})),m(n.ReadyState.CLOSED),h.close()),u.current.retryOnError)if(o.current<((c=u.current.reconnectAttempts)!==null&&c!==void 0?c:n.DEFAULT_RECONNECT_LIMIT)){var b=typeof u.current.reconnectInterval=="function"?u.current.reconnectInterval(o.current):u.current.reconnectInterval;s=window.setTimeout(function(){o.current++,i()},b??n.DEFAULT_RECONNECT_INTERVAL_MS)}else u.current.onReconnectStop&&u.current.onReconnectStop(u.current.reconnectAttempts),console.warn("Max reconnect attempts of ".concat(u.current.reconnectAttempts," exceeded"))},function(){return s&&window.clearTimeout(s)}},g=function(h,u,m,i,o,s,d){var c=u.setLastMessage,b=u.setReadyState,y,j,_;return m.current.fromSocketIO&&(y=(0,t.setUpSocketIOPing)(d)),f(h,m,c,s),p(h,m,b,o,s),j=S(h,m,b,i,o),_=v(h,m,b,i,o),function(){b(n.ReadyState.CLOSING),j(),_(),h.close(),y&&clearInterval(y)}};return J.attachListeners=g,J}var V={},er;function Dt(){if(er)return V;er=1;var e=V&&V.__assign||function(){return e=Object.assign||function(u){for(var m,i=1,o=arguments.length;i<o;i++){m=arguments[i];for(var s in m)Object.prototype.hasOwnProperty.call(m,s)&&(u[s]=m[s])}return u},e.apply(this,arguments)};Object.defineProperty(V,"__esModule",{value:!0}),V.attachSharedListeners=void 0;var t=Ie(),a=R(),n=ke(),l=Ne(),f=vr(),p=function(u,m,i){u.onmessage=function(o){(0,n.getSubscribers)(m).forEach(function(s){var d;s.optionsRef.current.onMessage&&s.optionsRef.current.onMessage(o),typeof((d=s==null?void 0:s.lastMessageTime)===null||d===void 0?void 0:d.current)=="number"&&(s.lastMessageTime.current=Date.now()),!(typeof s.optionsRef.current.filter=="function"&&s.optionsRef.current.filter(o)!==!0)&&(i&&typeof i!="boolean"&&(i==null?void 0:i.returnMessage)===o.data||s.setLastMessage(o))})}},S=function(u,m,i){u.onopen=function(o){var s=(0,n.getSubscribers)(m);s.forEach(function(d){d.reconnectCount.current=0,d.optionsRef.current.onOpen&&d.optionsRef.current.onOpen(o),d.setReadyState(a.ReadyState.OPEN),i&&u instanceof WebSocket&&(d.lastMessageTime.current=Date.now())}),i&&u instanceof WebSocket&&(0,f.heartbeat)(u,s.map(function(d){return d.lastMessageTime}),typeof i=="boolean"?void 0:i)}},v=function(u,m){u instanceof WebSocket&&(u.onclose=function(i){(0,n.getSubscribers)(m).forEach(function(o){o.optionsRef.current.onClose&&o.optionsRef.current.onClose(i),o.setReadyState(a.ReadyState.CLOSED)}),delete t.sharedWebSockets[m],(0,n.getSubscribers)(m).forEach(function(o){var s;if(o.optionsRef.current.shouldReconnect&&o.optionsRef.current.shouldReconnect(i)){var d=(s=o.optionsRef.current.reconnectAttempts)!==null&&s!==void 0?s:a.DEFAULT_RECONNECT_LIMIT;if(o.reconnectCount.current<d){var c=typeof o.optionsRef.current.reconnectInterval=="function"?o.optionsRef.current.reconnectInterval(o.reconnectCount.current):o.optionsRef.current.reconnectInterval;setTimeout(function(){o.reconnectCount.current++,o.reconnect.current()},c??a.DEFAULT_RECONNECT_INTERVAL_MS)}else o.optionsRef.current.onReconnectStop&&o.optionsRef.current.onReconnectStop(o.optionsRef.current.reconnectAttempts),console.warn("Max reconnect attempts of ".concat(d," exceeded"))}})})},g=function(u,m){u.onerror=function(i){(0,n.getSubscribers)(m).forEach(function(o){o.optionsRef.current.onError&&o.optionsRef.current.onError(i),a.isEventSourceSupported&&u instanceof EventSource&&(o.optionsRef.current.onClose&&o.optionsRef.current.onClose(e(e({},i),{code:1006,reason:"An error occurred with the EventSource: ".concat(i),wasClean:!1})),o.setReadyState(a.ReadyState.CLOSED))}),a.isEventSourceSupported&&u instanceof EventSource&&u.close()}},h=function(u,m,i,o){var s;return i.current.fromSocketIO&&(s=(0,l.setUpSocketIOPing)(o)),p(u,m,i.current.heartbeat),v(u,m),S(u,m,i.current.heartbeat),g(u,m),function(){s&&clearInterval(s)}};return V.attachSharedListeners=h,V}var rr;function Rt(){if(rr)return se;rr=1,Object.defineProperty(se,"__esModule",{value:!0}),se.createOrJoinSocket=void 0;var e=Ie(),t=R(),a=Mt(),n=Dt(),l=ke(),f=function(S,v,g,h,u){return function(){if((0,l.removeSubscriber)(S,v),!(0,l.hasSubscribers)(S)){try{var m=e.sharedWebSockets[S];m instanceof WebSocket&&(m.onclose=function(i){g.current.onClose&&g.current.onClose(i),h(t.ReadyState.CLOSED)}),m.close()}catch{}u&&u(),delete e.sharedWebSockets[S]}}},p=function(S,v,g,h,u,m,i,o,s){if(!t.isEventSourceSupported&&h.current.eventSourceOptions)throw t.isReactNative?new Error("EventSource is not supported in ReactNative"):new Error("EventSource is not supported");if(h.current.share){var d=null;e.sharedWebSockets[v]===void 0?(e.sharedWebSockets[v]=h.current.eventSourceOptions?new EventSource(v,h.current.eventSourceOptions):new WebSocket(v,h.current.protocols),S.current=e.sharedWebSockets[v],g(t.ReadyState.CONNECTING),d=(0,n.attachSharedListeners)(e.sharedWebSockets[v],v,h,s)):(S.current=e.sharedWebSockets[v],g(e.sharedWebSockets[v].readyState));var c={setLastMessage:u,setReadyState:g,optionsRef:h,reconnectCount:i,lastMessageTime:o,reconnect:m};return(0,l.addSubscriber)(v,c),f(v,c,h,g,d)}else{if(S.current=h.current.eventSourceOptions?new EventSource(v,h.current.eventSourceOptions):new WebSocket(v,h.current.protocols),g(t.ReadyState.CONNECTING),!S.current)throw new Error("WebSocket failed to be created");return(0,a.attachListeners)(S.current,{setLastMessage:u,setReadyState:g},h,m.current,i,o,s)}};return se.createOrJoinSocket=p,se}var L={},tr;function Pt(){return tr||(tr=1,(function(e){var t=L&&L.__awaiter||function(v,g,h,u){function m(i){return i instanceof h?i:new h(function(o){o(i)})}return new(h||(h=Promise))(function(i,o){function s(b){try{c(u.next(b))}catch(y){o(y)}}function d(b){try{c(u.throw(b))}catch(y){o(y)}}function c(b){b.done?i(b.value):m(b.value).then(s,d)}c((u=u.apply(v,g||[])).next())})},a=L&&L.__generator||function(v,g){var h={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},u,m,i,o=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return o.next=s(0),o.throw=s(1),o.return=s(2),typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function s(c){return function(b){return d([c,b])}}function d(c){if(u)throw new TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(h=0)),h;)try{if(u=1,m&&(i=c[0]&2?m.return:c[0]?m.throw||((i=m.return)&&i.call(m),0):m.next)&&!(i=i.call(m,c[1])).done)return i;switch(m=0,i&&(c=[c[0]&2,i.value]),c[0]){case 0:case 1:i=c;break;case 4:return h.label++,{value:c[1],done:!1};case 5:h.label++,m=c[1],c=[0];continue;case 7:c=h.ops.pop(),h.trys.pop();continue;default:if(i=h.trys,!(i=i.length>0&&i[i.length-1])&&(c[0]===6||c[0]===2)){h=0;continue}if(c[0]===3&&(!i||c[1]>i[0]&&c[1]<i[3])){h.label=c[1];break}if(c[0]===6&&h.label<i[1]){h.label=i[1],i=c;break}if(i&&h.label<i[2]){h.label=i[2],h.ops.push(c);break}i[2]&&h.ops.pop(),h.trys.pop();continue}c=g.call(v,h)}catch(b){c=[6,b],m=0}finally{u=i=0}if(c[0]&5)throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}},n=L&&L.__spreadArray||function(v,g,h){if(h||arguments.length===2)for(var u=0,m=g.length,i;u<m;u++)(i||!(u in g))&&(i||(i=Array.prototype.slice.call(g,0,u)),i[u]=g[u]);return v.concat(i||Array.prototype.slice.call(g))};Object.defineProperty(e,"__esModule",{value:!0}),e.getUrl=void 0;var l=Ne(),f=R(),p=function(v){return new Promise(function(g){return window.setTimeout(g,v)})},S=function(v,g){for(var h=[],u=2;u<arguments.length;u++)h[u-2]=arguments[u];return t(void 0,n([v,g],h,!0),void 0,function(m,i,o){var s,d,c,b,y,j,_,x;return o===void 0&&(o=0),a(this,function(O){switch(O.label){case 0:if(typeof m!="function")return[3,10];O.label=1;case 1:return O.trys.push([1,3,,9]),[4,m()];case 2:return s=O.sent(),[3,9];case 3:return O.sent(),i.current.retryOnError?(d=(j=i.current.reconnectAttempts)!==null&&j!==void 0?j:f.DEFAULT_RECONNECT_LIMIT,o<d?(c=typeof i.current.reconnectInterval=="function"?i.current.reconnectInterval(o):i.current.reconnectInterval,[4,p(c??f.DEFAULT_RECONNECT_INTERVAL_MS)]):[3,5]):[3,7];case 4:return O.sent(),[2,(0,e.getUrl)(m,i,o+1)];case 5:return(x=(_=i.current).onReconnectStop)===null||x===void 0||x.call(_,o),[2,null];case 6:return[3,8];case 7:return[2,null];case 8:return[3,9];case 9:return[3,11];case 10:s=m,O.label=11;case 11:return b=i.current.fromSocketIO?(0,l.parseSocketIOUrl)(s):s,y=i.current.queryParams?(0,l.appendQueryParams)(b,i.current.queryParams):b,[2,y]}})})};e.getUrl=S})(L)),L}var _e={},nr;function At(){return nr||(nr=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.websocketWrapper=void 0;var t=function(a,n){return new Proxy(a,{get:function(l,f){var p=l[f];return f==="reconnect"?n:typeof p=="function"?(console.error("Calling methods directly on the websocket is not supported at this moment. You must use the methods returned by useWebSocket."),function(){}):p},set:function(l,f,p){return/^on/.test(f)?(console.warn("The websocket's event handlers should be defined through the options object passed into useWebSocket."),!1):(l[f]=p,!0)}})};e.websocketWrapper=t,e.default=e.websocketWrapper})(_e)),_e}var ar;function Ce(){if(ar)return T;ar=1;var e=T&&T.__assign||function(){return e=Object.assign||function(m){for(var i,o=1,s=arguments.length;o<s;o++){i=arguments[o];for(var d in i)Object.prototype.hasOwnProperty.call(i,d)&&(m[d]=i[d])}return m},e.apply(this,arguments)},t=T&&T.__awaiter||function(m,i,o,s){function d(c){return c instanceof o?c:new o(function(b){b(c)})}return new(o||(o=Promise))(function(c,b){function y(x){try{_(s.next(x))}catch(O){b(O)}}function j(x){try{_(s.throw(x))}catch(O){b(O)}}function _(x){x.done?c(x.value):d(x.value).then(y,j)}_((s=s.apply(m,i||[])).next())})},a=T&&T.__generator||function(m,i){var o={label:0,sent:function(){if(c[0]&1)throw c[1];return c[1]},trys:[],ops:[]},s,d,c,b=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return b.next=y(0),b.throw=y(1),b.return=y(2),typeof Symbol=="function"&&(b[Symbol.iterator]=function(){return this}),b;function y(_){return function(x){return j([_,x])}}function j(_){if(s)throw new TypeError("Generator is already executing.");for(;b&&(b=0,_[0]&&(o=0)),o;)try{if(s=1,d&&(c=_[0]&2?d.return:_[0]?d.throw||((c=d.return)&&c.call(d),0):d.next)&&!(c=c.call(d,_[1])).done)return c;switch(d=0,c&&(_=[_[0]&2,c.value]),_[0]){case 0:case 1:c=_;break;case 4:return o.label++,{value:_[1],done:!1};case 5:o.label++,d=_[1],_=[0];continue;case 7:_=o.ops.pop(),o.trys.pop();continue;default:if(c=o.trys,!(c=c.length>0&&c[c.length-1])&&(_[0]===6||_[0]===2)){o=0;continue}if(_[0]===3&&(!c||_[1]>c[0]&&_[1]<c[3])){o.label=_[1];break}if(_[0]===6&&o.label<c[1]){o.label=c[1],c=_;break}if(c&&o.label<c[2]){o.label=c[2],o.ops.push(_);break}c[2]&&o.ops.pop(),o.trys.pop();continue}_=i.call(m,o)}catch(x){_=[6,x],d=0}finally{s=c=0}if(_[0]&5)throw _[1];return{value:_[0]?_[1]:void 0,done:!0}}},n=T&&T.__importDefault||function(m){return m&&m.__esModule?m:{default:m}};Object.defineProperty(T,"__esModule",{value:!0}),T.useWebSocket=void 0;var l=je(),f=pr(),p=R(),S=Rt(),v=Pt(),g=n(At()),h=Te(),u=function(m,i,o){i===void 0&&(i=p.DEFAULT_OPTIONS),o===void 0&&(o=!0);var s=(0,l.useState)(null),d=s[0],c=s[1],b=(0,l.useState)({}),y=b[0],j=b[1],_=(0,l.useMemo)(function(){if(!i.disableJson&&d)try{return JSON.parse(d.data)}catch{return p.UNPARSABLE_JSON_OBJECT}return null},[d,i.disableJson]),x=(0,l.useRef)(null),O=(0,l.useRef)(null),I=(0,l.useRef)(function(){}),N=(0,l.useRef)(0),z=(0,l.useRef)(Date.now()),D=(0,l.useRef)([]),P=(0,l.useRef)(null),F=(0,l.useRef)(i);F.current=i;var ee=x.current&&y[x.current]!==void 0?y[x.current]:m!==null&&o===!0?p.ReadyState.CONNECTING:p.ReadyState.UNINSTANTIATED,fe=i.queryParams?JSON.stringify(i.queryParams):null,q=(0,l.useCallback)(function(E,k){var G;if(k===void 0&&(k=!0),p.isEventSourceSupported&&O.current instanceof EventSource){console.warn("Unable to send a message from an eventSource");return}((G=O.current)===null||G===void 0?void 0:G.readyState)===p.ReadyState.OPEN?((0,h.assertIsWebSocket)(O.current,F.current.skipAssert),O.current.send(E)):k&&D.current.push(E)},[]),oe=(0,l.useCallback)(function(E,k){k===void 0&&(k=!0),q(JSON.stringify(E),k)},[q]),re=(0,l.useCallback)(function(){return F.current.share!==!0||p.isEventSourceSupported&&O.current instanceof EventSource?O.current:(P.current===null&&O.current&&((0,h.assertIsWebSocket)(O.current,F.current.skipAssert),P.current=(0,g.default)(O.current,I)),P.current)},[]);return(0,l.useEffect)(function(){if(m!==null&&o===!0){var E,k=!1,G=!0,ce=function(){return t(void 0,void 0,void 0,function(){var B,C,te;return a(this,function(Me){switch(Me.label){case 0:return B=x,[4,(0,v.getUrl)(m,F)];case 1:return B.current=Me.sent(),x.current===null?(console.error("Failed to get a valid URL. WebSocket connection aborted."),x.current="ABORTED",(0,f.flushSync)(function(){return j(function(ne){return e(e({},ne),{ABORTED:p.ReadyState.CLOSED})})}),[2]):(C=function(ne){k||(0,f.flushSync)(function(){return c(ne)})},te=function(ne){k||(0,f.flushSync)(function(){return j(function(mr){var he;return e(e({},mr),x.current&&(he={},he[x.current]=ne,he))})})},G&&(E=(0,S.createOrJoinSocket)(O,x.current,te,F,C,I,N,z,q)),[2])}})})};return I.current=function(){k||(P.current&&(P.current=null),E==null||E(),ce())},ce(),function(){k=!0,G=!1,P.current&&(P.current=null),E==null||E(),c(null)}}else(m===null||o===!1)&&(N.current=0,j(function(B){var C;return e(e({},B),x.current&&(C={},C[x.current]=p.ReadyState.CLOSED,C))}))},[m,o,fe,q]),(0,l.useEffect)(function(){ee===p.ReadyState.OPEN&&D.current.splice(0).forEach(function(E){q(E)})},[ee]),{sendMessage:q,sendJsonMessage:oe,lastMessage:d,lastJsonMessage:_,readyState:ee,getWebSocket:re}};return T.useWebSocket=u,T}var K={},sr;function Lt(){if(sr)return K;sr=1;var e=K&&K.__assign||function(){return e=Object.assign||function(S){for(var v,g=1,h=arguments.length;g<h;g++){v=arguments[g];for(var u in v)Object.prototype.hasOwnProperty.call(v,u)&&(S[u]=v[u])}return S},e.apply(this,arguments)};Object.defineProperty(K,"__esModule",{value:!0}),K.useSocketIO=void 0;var t=je(),a=Ce(),n=R(),l={type:"empty",payload:null},f=function(S){if(!S||!S.data)return l;var v=S.data.match(/\[.*]/);if(!v)return l;var g=JSON.parse(v);return!Array.isArray(g)||!g[1]?l:{type:g[0],payload:g[1]}},p=function(S,v,g){v===void 0&&(v=n.DEFAULT_OPTIONS),g===void 0&&(g=!0);var h=(0,t.useMemo)(function(){return e(e({},v),{fromSocketIO:!0})},[]),u=(0,a.useWebSocket)(S,h,g),m=u.sendMessage,i=u.sendJsonMessage,o=u.lastMessage,s=u.readyState,d=u.getWebSocket,c=(0,t.useMemo)(function(){return f(o)},[o]);return{sendMessage:m,sendJsonMessage:i,lastMessage:c,lastJsonMessage:c,readyState:s,getWebSocket:d}};return K.useSocketIO=p,K}var W={},ir;function Wt(){if(ir)return W;ir=1;var e=W&&W.__assign||function(){return e=Object.assign||function(p){for(var S,v=1,g=arguments.length;v<g;v++){S=arguments[v];for(var h in S)Object.prototype.hasOwnProperty.call(S,h)&&(p[h]=S[h])}return p},e.apply(this,arguments)},t=W&&W.__rest||function(p,S){var v={};for(var g in p)Object.prototype.hasOwnProperty.call(p,g)&&S.indexOf(g)<0&&(v[g]=p[g]);if(p!=null&&typeof Object.getOwnPropertySymbols=="function")for(var h=0,g=Object.getOwnPropertySymbols(p);h<g.length;h++)S.indexOf(g[h])<0&&Object.prototype.propertyIsEnumerable.call(p,g[h])&&(v[g[h]]=p[g[h]]);return v};Object.defineProperty(W,"__esModule",{value:!0}),W.useEventSource=void 0;var a=je(),n=Ce(),l=R(),f=function(p,S,v){S===void 0&&(S=l.DEFAULT_EVENT_SOURCE_OPTIONS);var g=S.withCredentials,h=S.events,u=t(S,["withCredentials","events"]);v===void 0&&(v=!0);var m=e(e({},u),{eventSourceOptions:{withCredentials:g}}),i=(0,a.useRef)(l.EMPTY_EVENT_HANDLERS);h&&(i.current=h);var o=(0,n.useWebSocket)(p,m,v),s=o.lastMessage,d=o.readyState,c=o.getWebSocket;return(0,a.useEffect)(function(){s!=null&&s.type&&Object.entries(i.current).forEach(function(b){var y=b[0],j=b[1];y===s.type&&j(s)})},[s]),{lastEvent:s,readyState:d,getEventSource:c}};return W.useEventSource=f,W}var or;function Ut(){return or||(or=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.resetGlobalState=e.useEventSource=e.ReadyState=e.useSocketIO=e.default=void 0;var t=Ce();Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.useWebSocket}});var a=Lt();Object.defineProperty(e,"useSocketIO",{enumerable:!0,get:function(){return a.useSocketIO}});var n=R();Object.defineProperty(e,"ReadyState",{enumerable:!0,get:function(){return n.ReadyState}});var l=Wt();Object.defineProperty(e,"useEventSource",{enumerable:!0,get:function(){return l.useEventSource}});var f=Te();Object.defineProperty(e,"resetGlobalState",{enumerable:!0,get:function(){return f.resetGlobalState}})})(pe)),pe}var Z=Ut();const zt=Wr(Z);function ue({title:e,color:t}){const a=`text-${t} text-sm`,n=`bg-${t}`;return r.jsxs("div",{className:"flex flex-col justify-center items-center gap-1 rounded-md px-2 col-span-2 md:col-span-1",children:[r.jsx("div",{className:Q("w-4 h-4 rounded-full",n)}),r.jsx("div",{className:a,children:e})]})}function Ft({state:e}){return e===Z.ReadyState.OPEN?r.jsx(ue,{title:"已连接",color:"success"}):e===Z.ReadyState.CLOSED?r.jsx(ue,{title:"已关闭",color:"primary"}):e===Z.ReadyState.CONNECTING?r.jsx(ue,{title:"连接中",color:"warning"}):e===Z.ReadyState.CLOSING?r.jsx(ue,{title:"关闭中",color:"warning"}):null}const cr=[{label:"元事件",value:"meta_event"},{label:"消息",value:"message"},{label:"请求",value:"request"},{label:"通知",value:"notice"},{label:"消息发送",value:"message_sent"}],qt=e=>{const{filterTypes:t,onSelectionChange:a}=e;return r.jsx(qr,{selectedKeys:t,onSelectionChange:n=>{n!=="all"&&(n==null?void 0:n.size)===0&&(n="all"),a(n)},label:"筛选消息类型",selectionMode:"multiple",className:"w-full",items:cr,renderValue:n=>n.length===cr.length?"全部":n.map(l=>{var f;return(f=l.data)==null?void 0:f.label}).join(","),children:n=>r.jsx(Gr,{value:n.value,children:n.label},n.value)})},Gt=(e,t)=>r.jsx(qt,{filterTypes:e,onSelectionChange:t});function Ht(e,t,a=!0){const[n,l]=w.useState([]),[f,p]=w.useState("all"),S=n.filter(i=>f==="all"||f.size===0?!0:de(i)?f.has(i.post_type):Ar(i)?f.has("request"):!1),{sendMessage:v,readyState:g}=zt(a?e:null,{share:!1,onMessage:w.useCallback(i=>{try{const o=JSON.parse(i.data);l(s=>{const d=[o,...s];return d.length>500?d.slice(0,500):d})}catch{$.error("WebSocket 消息解析失败")}},[]),queryParams:{access_token:t},onError:i=>{$.error("WebSocket 连接失败"),console.error("WebSocket error:",i)},onOpen:()=>{l([])}}),h=i=>{if(g!==Z.ReadyState.OPEN)throw new Error("WebSocket 连接未建立");v(i)},u=w.useCallback(()=>{l([])},[]),m=Gt(f,p);return{sendMessage:h,readyState:g,messageHistory:n,filteredMessages:S,filterTypes:f,setFilterTypes:p,FilterMessagesType:m,clearMessages:u}}function Ln(){const e=new URL(window.location.origin);e.port="3001",e.protocol="ws:";const t=e.href,[a,n]=De(Re.wsDebugConfig,{url:t,token:""}),[l,f]=w.useState(a.url),[p,S]=w.useState(a.token),[v,g]=w.useState(!1),[h]=De(Re.backgroundImage,""),u=!!h,{sendMessage:m,readyState:i,FilterMessagesType:o,filteredMessages:s,clearMessages:d}=Ht(a.url,a.token,v);w.useEffect(()=>{const j=a.url===t||a.url==="",_=a.url&&a.url.includes("/api/Debug/ws");if(!j&&!_){f(a.url),S(a.token);return}(async()=>{try{const I=await(await fetch("/api/Debug/create",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${localStorage.getItem("token")}`}})).json();if(I.code===0){const N=I.data.token,z=window.location.protocol==="https:"?"wss:":"ws:";if(N){const D=`${z}//${window.location.host}/api/Debug/ws`;n({url:D,token:N}),f(D),S(N)}}}catch(O){console.error("Failed to create debug adapter:",O)}})()},[]);const c=w.useCallback(()=>{let j=l;if(j.startsWith("/")&&(j=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}${j}`),!j.startsWith("ws://")&&!j.startsWith("wss://")){$.error("WebSocket URL 不合法");return}n({url:j,token:p}),g(!0)},[l,p,n]),b=w.useCallback(()=>{g(!1)},[]),y=w.useCallback(()=>{n({url:"",token:""}),window.location.reload()},[n]);return r.jsxs(r.Fragment,{children:[r.jsx("title",{children:"Websocket调试 - SnowCat WebUI"}),r.jsxs("div",{className:"h-[calc(100vh-3.5rem)] overflow-hidden flex flex-col px-3 md:px-6 py-4 md:py-6 gap-3 md:gap-4",children:[r.jsx(lr,{className:Q("flex-shrink-0 backdrop-blur-xl border shadow-sm rounded-2xl",u?"bg-black/25 dark:bg-black/30 border-white/20 dark:border-white/10":"bg-white/60 dark:bg-white/[0.04] border-white/60 dark:border-white/10"),children:r.jsxs(ur,{className:"gap-3 p-3 md:p-4",children:[r.jsxs("div",{className:"grid gap-3 items-end md:grid-cols-[1fr_1fr_auto]",children:[r.jsx(Pe,{label:"WebSocket URL",type:"text",value:l,onChange:j=>f(j.target.value),placeholder:"输入 WebSocket URL",size:"sm",variant:"bordered",classNames:{inputWrapper:Q("backdrop-blur-sm border",u?"bg-white/10 border-white/20":"bg-white/80 dark:bg-white/[0.06] border-black/[0.08] dark:border-white/12"),label:u?"text-white/80":"",input:u?"text-white placeholder:text-white/50":""}}),r.jsx(Pe,{label:"Token",type:"text",value:p,onChange:j=>S(j.target.value),placeholder:"输入 Token (可选)",size:"sm",variant:"bordered",classNames:{inputWrapper:Q("backdrop-blur-sm border",u?"bg-white/10 border-white/20":"bg-white/80 dark:bg-white/[0.06] border-black/[0.08] dark:border-white/12"),label:u?"text-white/80":"",input:u?"text-white placeholder:text-white/50":""}}),r.jsxs("div",{className:"flex gap-2",children:[r.jsx(H,{isIconOnly:!0,size:"md",radius:"full",color:"warning",variant:"flat",onPress:y,title:"重置配置",children:r.jsx(Or,{className:"text-xl"})}),r.jsx(H,{onPress:v?b:c,size:"md",radius:"full",color:v?"danger":"primary",className:"font-bold shadow-lg min-w-[100px] flex-1",startContent:v?r.jsx(wr,{}):r.jsx(Er,{}),children:v?"断开":"连接"})]})]}),r.jsxs("div",{className:Q("p-2.5 rounded-xl border transition-colors flex flex-col md:flex-row gap-3 md:items-center md:justify-between",u?"bg-white/10 border-white/20":"bg-white/50 dark:bg-white/5 border-white/20"),children:[r.jsxs("div",{className:"flex items-center gap-3 w-full md:w-auto",children:[r.jsx("div",{className:"flex-shrink-0",children:r.jsx(Ft,{state:i})}),r.jsx("div",{className:"flex-1 md:w-56 overflow-hidden",children:o})]}),r.jsxs("div",{className:"flex gap-2 justify-end w-full md:w-auto pt-1 md:pt-0 border-t border-white/5 md:border-t-0",children:[r.jsx(H,{size:"sm",color:"danger",variant:"flat",radius:"full",className:"font-medium",onPress:d,children:"清空日志"}),r.jsx(Ct,{sendMessage:m})]})]})]})}),r.jsx("div",{className:Q("flex-1 overflow-hidden rounded-2xl border backdrop-blur-xl",u?"bg-black/25 dark:bg-black/30 border-white/20 dark:border-white/10":"bg-white/60 dark:bg-white/[0.04] border-white/60 dark:border-white/10"),children:r.jsx(Tt,{messages:s})})]})]})}export{Ln as default};
|