filecat 5.19.0 → 5.19.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -3,6 +3,8 @@
3
3
 
4
4
  FileCat 是一个基于 Web 的文件服务器、服务器管理工具。集成了文件管理、超大日志查看、远程终端访问、系统进程监控,以及包括 TUN、SSH、RDP、HTTP、TCP 等多种网络代理功能。支持windows、linux、mac。
5
5
 
6
+ 还支持AI Agent用问答的方式来查询服务器资源。
7
+
6
8
  本项目是对[filebrowser](https://github.com/filebrowser/filebrowser)的功能增强,使用和filebrowser一样的ui,以服务器文件管理为基础添加一些服务器控制功能。
7
9
 
8
10
  FileCat is a web-based server management platform that provides file management, large-scale log viewing, remote terminal access, process monitoring, and various network proxies including TUN, SSH, RDP, HTTP, and TCP.
@@ -55,6 +57,7 @@ account/password: admin/admin
55
57
  - **ssh代理**: 可以管理多个linux服务器,作用和winscp类似,让终端和文件管理更方便。除此之外还支持http代理,rdp远程桌面(windows)等代理
56
58
  - **网站导航**: 记录管理自己的多个链接地址
57
59
  - **系统、docker、进程 等信息的监控**: 对于系统进程查询,采用了高效的实现方式,监控全部进程的状态只需要非常小的cpu占用率
60
+ - **AI 问答**,通过与ai进行交互来执行命令获取服务器资源
58
61
 
59
62
  More: https://filecat.xiaobaidadada.fun
60
63
  ## qq群
@@ -0,0 +1,2 @@
1
+ /*! For license information please see 144.cd1c6c4bbdf771008471.js.LICENSE.txt */
2
+ "use strict";(self.webpackChunkfilecat=self.webpackChunkfilecat||[]).push([[10,144],{41(e,t,n){n.r(t),n.d(t,{default:()=>q,getMessagesFromLocal:()=>J,learAllMessages:()=>R,pushMessageToLocal:()=>z,setMessagesToLocal:()=>W});var r=n(6540),o=n(3298),a=n(4299),i=n(9844),c=n(7444),u=n(6417),l=n(2389),f=n(5997),s=n(7952),m=n(5725),d=n(7481),p=n(1443),y=n(447);function v(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,i,c=[],u=!0,l=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=a.call(n)).done)&&(c.push(r.value),c.length!==t);u=!0);}catch(e){l=!0,o=e}finally{try{if(!u&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(l)throw o}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return h(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?h(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var b=n(3459),g=n(2042),E=n(7523),w=n(8247),S=n(3430);function j(e){return j="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},j(e)}function A(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function O(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?A(Object(n),!0).forEach(function(t){_(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):A(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function _(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=j(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=j(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==j(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function k(e){return function(e){if(Array.isArray(e))return N(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||M(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function x(){var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function a(n,r,o,a){var u=r&&r.prototype instanceof c?r:c,l=Object.create(u.prototype);return C(l,"_invoke",function(n,r,o){var a,c,u,l=0,f=o||[],s=!1,m={p:0,n:0,v:e,a:d,f:d.bind(e,4),d:function(t,n){return a=t,c=0,u=e,m.n=n,i}};function d(n,r){for(c=n,u=r,t=0;!s&&l&&!o&&t<f.length;t++){var o,a=f[t],d=m.p,p=a[2];n>3?(o=p===r)&&(u=a[(c=a[4])?5:(c=3,3)],a[4]=a[5]=e):a[0]<=d&&((o=n<2&&d<a[1])?(c=0,m.v=r,m.n=a[1]):d<p&&(o=n<3||a[0]>r||r>p)&&(a[4]=n,a[5]=r,m.n=p,c=0))}if(o||n>1)return i;throw s=!0,r}return function(o,f,p){if(l>1)throw TypeError("Generator is already running");for(s&&1===f&&d(f,p),c=f,u=p;(t=c<2?e:u)||!s;){a||(c?c<3?(c>1&&(m.n=-1),d(c,u)):m.n=u:m.v=u);try{if(l=2,a){if(c||(o="next"),t=a[o]){if(!(t=t.call(a,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=a.return)&&t.call(a),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);a=e}else if((t=(s=m.n<0)?u:n.call(r,m))!==i)break}catch(t){a=e,c=1,u=t}finally{l=1}}return{value:t,done:s}}}(n,o,a),!0),l}var i={};function c(){}function u(){}function l(){}t=Object.getPrototypeOf;var f=[][r]?t(t([][r]())):(C(t={},r,function(){return this}),t),s=l.prototype=c.prototype=Object.create(f);function m(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,C(e,o,"GeneratorFunction")),e.prototype=Object.create(s),e}return u.prototype=l,C(s,"constructor",l),C(l,"constructor",u),u.displayName="GeneratorFunction",C(l,o,"GeneratorFunction"),C(s),C(s,o,"Generator"),C(s,r,function(){return this}),C(s,"toString",function(){return"[object Generator]"}),(x=function(){return{w:a,m}})()}function C(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}C=function(e,t,n,r){function a(t,n){C(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(a("next",0),a("throw",1),a("return",2))},C(e,t,n,r)}function I(e,t,n,r,o,a,i){try{var c=e[a](i),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function P(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(e){I(a,r,o,i,c,"next",e)}function c(e){I(a,r,o,i,c,"throw",e)}i(void 0)})}}function T(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,i,c=[],u=!0,l=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=a.call(n)).done)&&(c.push(r.value),c.length!==t);u=!0);}catch(e){l=!0,o=e}finally{try{if(!u&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(l)throw o}}return c}}(e,t)||M(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function M(e,t){if(e){if("string"==typeof e)return N(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?N(e,t):void 0}}function N(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function F(){var e=(0,l.Bd)().t,t=(0,r.useContext)(E.F),n=(t.initUserInfo,t.reloadUserInfo,T((0,c.L4)(u.A.ai_agent_chat_setting),2)),i=(n[0],n[1]),h=[e("编号"),e("url"),e("是否开启"),e("token"),"model",e("备注")],j=T((0,r.useState)([]),2),A=j[0],_=j[1],C=function(){var e=v((0,c.L4)(u.A.prompt_card),2),t=(e[0],e[1]);return function(e){t({open:!0,title:"信息",context_div:r.createElement("div",null,r.createElement(a.default,{context:e}))})}}(),I=(0,w.MH)().check_user_auth,M=T((0,c.L4)(u.A.editorSetting),2),N=(M[0],M[1]),F=function(){var e=P(x().m(function e(){var t;return x().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,o.XO.get("ai_agent_setting");case 1:(t=e.v).code===b.m.Sucess&&_(t.data.models);case 2:return e.a(2)}},e)}));return function(){return e.apply(this,arguments)}}();(0,r.useEffect)(function(){F()},[]);var D=function(){var e=P(x().m(function e(){var t;return x().w(function(e){for(;;)switch(e.n){case 0:for(t=0;t<A.length;t++)A[t].index=t;return e.n=1,o.XO.post("ai_agent_setting/save",{models:A});case 1:e.v.code===b.m.Sucess&&(0,g.LW)("保存成功");case 2:return e.a(2)}},e)}));return function(){return e.apply(this,arguments)}}();return r.createElement("div",null,r.createElement(s.A,null,I(S.oV.ai_agent_setting)&&r.createElement(f.rA,{icon:"close",title:e("关闭"),onClick:function(){i(!1)}})),r.createElement(m.jW,{isFull:!0,more:!0},r.createElement(m.NN,null,r.createElement(m.VP,{widthPer:70},r.createElement(y.uF,{self_title:r.createElement("span",{className:" div-row "},r.createElement("h2",null,e("Model设置"))," ",r.createElement(f.rA,{icon:"info",onClick:function(){C("\n1. 只能使用符合openai风格的ai接口\n2. 对话的历史越长,消耗的大模型token费用越贵,目前不具备长期记忆简化能力\n3. model请求参数json编写,里面只能编写json,来用于编写openai风格ai支持的属性,比如 temperature stream,国内模型我测试的不太适合流式返回\n")},title:"信息"})),titleCom:r.createElement("div",null,r.createElement(f.rA,{icon:"add",title:e("添加"),onClick:function(){_([].concat(k(A),[{note:"",open:!1,path:""}]))}}),r.createElement(f.rA,{icon:"save",title:e("保存"),onClick:D}))},r.createElement(d.X,{headers:h,rows:A.map(function(t,n){var o=[r.createElement("div",null,n),r.createElement(p.Sm,{value:t.url,handleInputChange:function(e){t.url=e},no_border:!0}),r.createElement(p.l6,{value:t.open,onChange:function(e){!function(e,t,n){for(var r=[],o=0;o<A.length;o++)A[o].open=o===n&&"true"===t,r.push(A[o]);_(r)}(0,e,n)},options:[{title:e("是"),value:!0},{title:e("否"),value:!1}],no_border:!0}),r.createElement(p.Sm,{value:t.token,handleInputChange:function(e){t.token=e},no_border:!0}),r.createElement(p.Sm,{value:t.model,handleInputChange:function(e){t.model=e},no_border:!0}),r.createElement(p.Sm,{value:t.note,handleInputChange:function(e){t.note=e},no_border:!0}),r.createElement("div",null,r.createElement(f.rA,{icon:"delete",title:e("删除"),onClick:function(){return function(e){A.splice(e,1),_(k(A))}(n)}}),r.createElement(f.rA,{icon:"copy_all",title:e("复制"),onClick:function(){return function(e){_([].concat(k(A),[O(O({},A[e]),{},{open:!1})]))}(n)}}),r.createElement(f.rA,{icon:"edit_attributes",title:"model请求参数json编写",onClick:function(){var e;w.xK.set_value_temp(A[n].json_params),N({model:"ace/mode/json",open:!0,fileName:"",save:(e=P(x().m(function e(t){return x().w(function(e){for(;;)switch(e.n){case 0:A[n].json_params=t,_(A),w.xK.set_value_temp(""),console.log(t);case 1:return e.a(2)}},e)})),function(t){return e.apply(this,arguments)})})}}))];return o}),width:"10rem"}))))))}var D=n(505);function G(){var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function a(n,r,o,a){var u=r&&r.prototype instanceof c?r:c,l=Object.create(u.prototype);return L(l,"_invoke",function(n,r,o){var a,c,u,l=0,f=o||[],s=!1,m={p:0,n:0,v:e,a:d,f:d.bind(e,4),d:function(t,n){return a=t,c=0,u=e,m.n=n,i}};function d(n,r){for(c=n,u=r,t=0;!s&&l&&!o&&t<f.length;t++){var o,a=f[t],d=m.p,p=a[2];n>3?(o=p===r)&&(u=a[(c=a[4])?5:(c=3,3)],a[4]=a[5]=e):a[0]<=d&&((o=n<2&&d<a[1])?(c=0,m.v=r,m.n=a[1]):d<p&&(o=n<3||a[0]>r||r>p)&&(a[4]=n,a[5]=r,m.n=p,c=0))}if(o||n>1)return i;throw s=!0,r}return function(o,f,p){if(l>1)throw TypeError("Generator is already running");for(s&&1===f&&d(f,p),c=f,u=p;(t=c<2?e:u)||!s;){a||(c?c<3?(c>1&&(m.n=-1),d(c,u)):m.n=u:m.v=u);try{if(l=2,a){if(c||(o="next"),t=a[o]){if(!(t=t.call(a,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=a.return)&&t.call(a),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);a=e}else if((t=(s=m.n<0)?u:n.call(r,m))!==i)break}catch(t){a=e,c=1,u=t}finally{l=1}}return{value:t,done:s}}}(n,o,a),!0),l}var i={};function c(){}function u(){}function l(){}t=Object.getPrototypeOf;var f=[][r]?t(t([][r]())):(L(t={},r,function(){return this}),t),s=l.prototype=c.prototype=Object.create(f);function m(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,L(e,o,"GeneratorFunction")),e.prototype=Object.create(s),e}return u.prototype=l,L(s,"constructor",l),L(l,"constructor",u),u.displayName="GeneratorFunction",L(l,o,"GeneratorFunction"),L(s),L(s,o,"Generator"),L(s,r,function(){return this}),L(s,"toString",function(){return"[object Generator]"}),(G=function(){return{w:a,m}})()}function L(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}L=function(e,t,n,r){function a(t,n){L(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(a("next",0),a("throw",1),a("return",2))},L(e,t,n,r)}function H(e,t,n,r,o,a,i){try{var c=e[a](i),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function U(e){return function(e){if(Array.isArray(e))return K(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||B(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function V(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,i,c=[],u=!0,l=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=a.call(n)).done)&&(c.push(r.value),c.length!==t);u=!0);}catch(e){l=!0,o=e}finally{try{if(!u&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(l)throw o}}return c}}(e,t)||B(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function B(e,t){if(e){if("string"==typeof e)return K(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?K(e,t):void 0}}function K(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var X="chat_messages";function $(e){var t=e.onDelete,n=e.onCopy;return r.createElement("div",{className:"message-actions"},r.createElement("button",{onClick:t},"删除"),r.createElement("button",{onClick:n},"复制"))}function J(){try{var e=localStorage.getItem(X);if(!e)return[];var t=JSON.parse(e);return Array.isArray(t)?t:[]}catch(e){return console.error("读取 messages 失败",e),[]}}function W(e){try{var t=e.slice(-200);localStorage.setItem(X,JSON.stringify(t))}catch(e){console.error("保存 messages 到 localStorage 失败",e)}}function z(e){var t=J();t.push(e),W(t)}function R(){W([])}function q(){var e=V((0,r.useState)([]),2),t=e[0],n=e[1],l=(0,i.nF)(n,50),m=V((0,r.useState)(!1),2),d=m[0],p=m[1],y=(0,w.MH)().check_user_auth,v=V((0,r.useState)(""),2),h=v[0],b=v[1],E=(0,r.useRef)(null),j=V((0,c.L4)(u.A.ai_agent_chat_setting),2),A=j[0],O=j[1],_=function(){var e;null===(e=E.current)||void 0===e||e.scrollIntoView({behavior:"smooth",block:"end"})},k=function(){l(J()),_()};(0,r.useEffect)(function(){k()},[]);var x=function(){var e=h.trim();if(e){var r={id:Date.now(),sender:"user",text:e},a=[].concat(U(t),[r]);z(r),n(a),b(""),p(!0);var i={id:Date.now()+1,sender:"bot",text:"AI思考中..."};a.push(i),n(a);var c=t.map(function(e){return{content:e.text,role:"bot"===e.sender?"system":"user"}});c.push({role:"user",content:e});var u=!0;_(),o.jV.sse_post("chat",{messages:c},{onMessage:function(e){u&&(i.text="",u=!1);try{var t,n=JSON.parse(e),r=null==n||null===(t=n.choices[0])||void 0===t?void 0:t.delta.content;r&&(i.text+=r)}catch(t){i.text+=e}l(U(a))},onDone:function(){p(!1),_(),z(i)}})}},C=function(){var e,t=(e=G().m(function e(t){return G().w(function(e){for(;;)switch(e.n){case 0:(0,D.l)(t),(0,g.LW)("复制成功");case 1:return e.a(2)}},e)}),function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(e){H(a,r,o,i,c,"next",e)}function c(e){H(a,r,o,i,c,"throw",e)}i(void 0)})});return function(e){return t.apply(this,arguments)}}();return r.createElement(r.Fragment,null,r.createElement(s.A,null,r.createElement(f.rA,{icon:"delete_sweep",title:"清空聊天历史",onClick:function(){R(),k()}}),y(S.oV.ai_agent_setting)&&r.createElement(f.rA,{icon:"settings",title:"ai setting",onClick:function(){O(!0)}})),r.createElement("div",{className:"chat-page"},0===(null==t?void 0:t.length)&&r.createElement("div",{className:"chat-header"},"询问服务器的一切"),r.createElement("div",{className:"chat-messages"},t.map(function(e){return r.createElement("div",{key:e.id,className:"chat-message ".concat(e.sender)},r.createElement(a.default,{context:e.text}),r.createElement($,{onDelete:function(){return r=e.id,o=t.filter(function(e){return e.id!==r}),n(o),void W(o);var r,o},onCopy:function(){return C(e.text)}}))}),r.createElement("div",{ref:E})),r.createElement("div",{className:"chat-input-area"},r.createElement("textarea",{value:h,onChange:function(e){var t=e.target;t.style.height="auto",t.style.height=Math.min(t.scrollHeight,200)+"px",b(t.value)},onKeyDown:function(e){"Enter"!==e.key||e.shiftKey||(e.preventDefault(),x())},placeholder:"输入消息,Shift+Enter换行",className:"chat-input"}),!1===d&&r.createElement("button",{onClick:x},"发送"))),A&&r.createElement(F,null))}},840(e){e.exports="data:image/svg+xml,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 version=%271.1%27 aria-hidden=%27true%27><path fill-rule=%27evenodd%27 d=%27M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z%27></path></svg>"},4299(e,t,n){n.r(t),n.d(t,{default:()=>p});var r=n(6540),o=n(3557),a=n(3311),i=n(950),c=n(7979),u=n(8263),l=n(9428),f=n.n(l),s=(n(3775),n(1499)),m=n(9214),d=new o.A({html:!0,highlight:function(e,t){return'<pre class="custom-code-block"><code>'.concat(d.utils.escapeHtml(e),"</code></pre>")}});function p(e){return(0,m.VD)(),r.createElement("div",{dangerouslySetInnerHTML:{__html:d.render(e.context)}})}d.use(a.BB).use(i.A).use(c.A).use(u.A).use(f()).use(function(e){e.renderer.rules.fence;e.renderer.rules.fence=function(t,n,r,o,a){var i=t[n].content.trim();return'\n <div class="code-block-with-copy">\n <button class="copy-btn" data-code="'.concat(e.utils.escapeHtml(i),'">复制</button>\n <pre><code>').concat(e.utils.escapeHtml(i),"</code></pre>\n </div>")}}).use(function(e){var t=e.renderer.rules.link_open||function(e,t,n,r,o){return o.renderToken(e,t,n)};e.renderer.rules.link_open=function(e,n,r,o,a){var i=e[n],c=i.attrIndex("href");if(c>=0){var u=i.attrs[c][1];i.attrs[c][1]=(0,s.bi)(window.location.href,u)}return t(e,n,r,o,a)}})},7481(e,t,n){n.d(t,{S:()=>c,X:()=>i});var r=n(6540);function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,i,c=[],u=!0,l=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=a.call(n)).done)&&(c.push(r.value),c.length!==t);u=!0);}catch(e){l=!0,o=e}finally{try{if(!u&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(l)throw o}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return a(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?a(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function i(e){var t,n=o(r.useState([]),2),a=n[0],i=n[1];return(0,r.useEffect)(function(){e.children?i(Array.isArray(e.children)?e.children:[e.children]):i(e.rows)},[e.rows,e.children]),r.createElement("table",null,r.createElement("thead",null,r.createElement("tr",null,null===(t=e.headers)||void 0===t?void 0:t.map(function(e,t){return r.createElement("th",{key:t},e)}))),r.createElement("tbody",null,a.map(function(t,n){return r.createElement("tr",{key:n,onContextMenu:function(){e.handleContextMenu&&e.handleContextMenu(t)}},t.map(function(t,n){var o;return r.createElement("td",{style:{width:null!==(o=e.width)&&void 0!==o?o:"auto"},key:n,className:n===a.length-1?"small":""},t)}))})))}function c(e){return r.createElement("div",{style:{display:e.isFlex?"flex":"block"}},e.columns.map(function(e,t){return r.createElement("div",{key:t},e)}))}}}]);