@zhin.js/console 1.0.51 → 1.0.52
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/CHANGELOG.md +13 -0
- package/README.md +22 -0
- package/browser.tsconfig.json +19 -0
- package/client/src/components/PageHeader.tsx +26 -0
- package/client/src/components/ui/accordion.tsx +2 -1
- package/client/src/components/ui/badge.tsx +1 -3
- package/client/src/components/ui/scroll-area.tsx +5 -2
- package/client/src/components/ui/select.tsx +7 -3
- package/client/src/components/ui/separator.tsx +5 -2
- package/client/src/components/ui/tabs.tsx +4 -2
- package/client/src/layouts/dashboard.tsx +223 -121
- package/client/src/main.tsx +34 -34
- package/client/src/pages/bot-detail/MessageBody.tsx +110 -0
- package/client/src/pages/bot-detail/date-utils.ts +8 -0
- package/client/src/pages/bot-detail/index.tsx +798 -0
- package/client/src/pages/bot-detail/types.ts +92 -0
- package/client/src/pages/bot-detail/useBotConsole.tsx +600 -0
- package/client/src/pages/bots.tsx +111 -73
- package/client/src/pages/database/constants.ts +16 -0
- package/client/src/pages/database/database-page.tsx +170 -0
- package/client/src/pages/database/document-collection-view.tsx +155 -0
- package/client/src/pages/database/index.tsx +1 -0
- package/client/src/pages/database/json-field.tsx +11 -0
- package/client/src/pages/database/kv-bucket-view.tsx +169 -0
- package/client/src/pages/database/related-table-view.tsx +221 -0
- package/client/src/pages/env.tsx +38 -28
- package/client/src/pages/files/code-editor.tsx +85 -0
- package/client/src/pages/files/editor-constants.ts +9 -0
- package/client/src/pages/files/file-editor.tsx +133 -0
- package/client/src/pages/files/file-icons.tsx +25 -0
- package/client/src/pages/files/files-page.tsx +92 -0
- package/client/src/pages/files/hljs-global.d.ts +10 -0
- package/client/src/pages/files/index.tsx +1 -0
- package/client/src/pages/files/language.ts +18 -0
- package/client/src/pages/files/tree-node.tsx +69 -0
- package/client/src/pages/files/use-hljs-theme.ts +23 -0
- package/client/src/pages/logs.tsx +77 -22
- package/client/src/style.css +144 -0
- package/client/src/utils/parseComposerContent.ts +57 -0
- package/client/tailwind.config.js +1 -0
- package/client/tsconfig.json +3 -1
- package/dist/assets/index-COKXlFo2.js +124 -0
- package/dist/assets/style-kkLO-vsa.css +3 -0
- package/dist/client.js +482 -464
- package/dist/index.html +2 -2
- package/dist/style.css +1 -1
- package/lib/index.js +1010 -81
- package/lib/transform.js +16 -2
- package/lib/websocket.js +845 -28
- package/node.tsconfig.json +18 -0
- package/package.json +13 -15
- package/src/bin.ts +24 -0
- package/src/bot-db-models.ts +74 -0
- package/src/bot-hub.ts +240 -0
- package/src/bot-persistence.ts +270 -0
- package/src/build.ts +90 -0
- package/src/dev.ts +107 -0
- package/src/index.ts +337 -0
- package/src/transform.ts +199 -0
- package/src/websocket.ts +1369 -0
- package/client/src/pages/database.tsx +0 -708
- package/client/src/pages/files.tsx +0 -470
- package/client/src/pages/login-assist.tsx +0 -225
- package/dist/assets/index-DS4RbHWX.js +0 -124
- package/dist/assets/style-DS-m6WEr.css +0 -3
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
import*as e from"react";import{PureComponent as t,StrictMode as n,useCallback as r,useEffect as i,useMemo as a,useRef as o,useState as s}from"react";import{createRoot as c}from"react-dom/client";import{Activity as l,AlertCircle as u,AlertTriangle as d,ArrowLeft as f,Bot as p,Box as m,Brain as h,Calendar as g,Check as _,CheckCircle as v,ChevronDown as y,ChevronLeft as b,ChevronRight as x,ChevronUp as S,Circle as C,Clock as w,Code as T,Cpu as E,Database as ee,Eye as te,EyeOff as D,File as ne,FileCode as re,FileText as ie,FileWarning as ae,FolderOpen as oe,FormInput as se,GitBranch as ce,Home as le,Info as ue,Key as de,KeyRound as fe,Layers as pe,List as me,Loader2 as O,Lock as he,LogIn as ge,LogOut as _e,MemoryStick as ve,Menu as ye,MessageSquare as be,Moon as xe,MousePointer as Se,Package as Ce,Pencil as we,Plug as Te,Plus as Ee,QrCode as De,RefreshCw as Oe,Save as ke,Search as Ae,Server as je,Settings as Me,Shield as Ne,Smartphone as Pe,Sun as Fe,Table2 as Ie,Terminal as Le,Trash2 as Re,TrendingUp as ze,Wifi as Be,WifiOff as Ve,Wrench as He,X as Ue,XCircle as We,Zap as Ge}from"lucide-react";import{DynamicRouter as Ke,Link as qe,Outlet as Je,addPage as Ye,cn as k,persistor as Xe,setActiveMenu as Ze,store as Qe,toggleSidebar as $e,useConfig as et,useConfigYaml as tt,useDatabase as nt,useDispatch as rt,useEnvFiles as it,useFiles as at,useSelector as ot,useWebSocket as st}from"@zhin.js/client";import{Fragment as A,jsx as j,jsxs as M}from"react/jsx-runtime";import{cva as ct}from"class-variance-authority";import{Accordion as lt,Checkbox as ut,Dialog as dt,ScrollArea as ft,Select as N,Separator as pt,Switch as mt,Tabs as ht,Tooltip as gt}from"radix-ui";import{useNavigate as _t,useParams as vt}from"react-router";var yt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var bt=yt(((t,n)=>{n.exports={...e}})),xt=yt((e=>{var t=bt();typeof Object.is==`function`&&Object.is,t.useSyncExternalStore,t.useRef,t.useEffect,t.useMemo,t.useDebugValue}));yt(((e,t)=>{t.exports=xt()}))();function St(e){e()}function Ct(){let e=null,t=null;return{clear(){e=null,t=null},notify(){St(()=>{let t=e;for(;t;)t.callback(),t=t.next})},get(){let t=[],n=e;for(;n;)t.push(n),n=n.next;return t},subscribe(n){let r=!0,i=t={callback:n,next:null,prev:t};return i.prev?i.prev.next=i:e=i,function(){!r||e===null||(r=!1,i.next?i.next.prev=i.prev:t=i.prev,i.prev?i.prev.next=i.next:e=i.next)}}}}var wt={notify(){},get:()=>[]};function Tt(e,t){let n,r=wt,i=0,a=!1;function o(e){u();let t=r.subscribe(e),n=!1;return()=>{n||(n=!0,t(),d())}}function s(){r.notify()}function c(){m.onStateChange&&m.onStateChange()}function l(){return a}function u(){i++,n||(n=t?t.addNestedSub(c):e.subscribe(c),r=Ct())}function d(){i--,n&&i===0&&(n(),n=void 0,r.clear(),r=wt)}function f(){a||(a=!0,u())}function p(){a&&(a=!1,d())}let m={addNestedSub:o,notifyNestedSubs:s,handleChangeWrapper:c,isSubscribed:l,trySubscribe:f,tryUnsubscribe:p,getListeners:()=>r};return m}var Et=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0,Dt=typeof navigator<`u`&&navigator.product===`ReactNative`,Ot=Et||Dt?e.useLayoutEffect:e.useEffect;Object.prototype;var kt=Symbol.for(`react-redux-context`),At=typeof globalThis<`u`?globalThis:{};function jt(){if(!e.createContext)return{};let t=At[kt]??=new Map,n=t.get(e.createContext);return n||(n=e.createContext(null),t.set(e.createContext,n)),n}var Mt=jt();function Nt(t){let{children:n,context:r,serverState:i,store:a}=t,o=e.useMemo(()=>({store:a,subscription:Tt(a),getServerState:i?()=>i:void 0}),[a,i]),s=e.useMemo(()=>a.getState(),[a]);Ot(()=>{let{subscription:e}=o;return e.onStateChange=e.notifyNestedSubs,e.trySubscribe(),s!==a.getState()&&e.notifyNestedSubs(),()=>{e.tryUnsubscribe(),e.onStateChange=void 0}},[o,s]);let c=r||Mt;return e.createElement(c.Provider,{value:o},n)}var Pt=Nt,Ft={light:{background:`0 0% 100%`,foreground:`240 10% 3.9%`,card:`0 0% 100%`,"card-foreground":`240 10% 3.9%`,popover:`0 0% 100%`,"popover-foreground":`240 10% 3.9%`,primary:`240 5.9% 10%`,"primary-foreground":`0 0% 98%`,secondary:`240 4.8% 95.9%`,"secondary-foreground":`240 5.9% 10%`,muted:`240 4.8% 95.9%`,"muted-foreground":`240 3.8% 46.1%`,accent:`240 4.8% 95.9%`,"accent-foreground":`240 5.9% 10%`,destructive:`0 84.2% 60.2%`,"destructive-foreground":`0 0% 98%`,border:`240 5.9% 90%`,input:`240 5.9% 90%`,ring:`240 5.9% 10%`,radius:`0.5rem`,"chart-1":`240 5.9% 10%`,"chart-2":`240 3.8% 46.1%`,"chart-3":`240 5.9% 90%`,"chart-4":`240 4.8% 95.9%`,"chart-5":`0 0% 100%`,sidebar:`0 0% 98%`,"sidebar-foreground":`240 5.3% 26.1%`,"sidebar-primary":`240 5.9% 10%`,"sidebar-primary-foreground":`0 0% 98%`,"sidebar-accent":`240 4.8% 95.9%`,"sidebar-accent-foreground":`240 5.9% 10%`,"sidebar-border":`220 13% 91%`,"sidebar-ring":`240 5.9% 10%`},dark:{background:`240 10% 3.9%`,foreground:`0 0% 98%`,card:`240 10% 3.9%`,"card-foreground":`0 0% 98%`,popover:`240 10% 3.9%`,"popover-foreground":`0 0% 98%`,primary:`0 0% 98%`,"primary-foreground":`240 5.9% 10%`,secondary:`240 3.7% 15.9%`,"secondary-foreground":`0 0% 98%`,muted:`240 3.7% 15.9%`,"muted-foreground":`240 5% 64.9%`,accent:`240 3.7% 15.9%`,"accent-foreground":`0 0% 98%`,destructive:`0 62.8% 30.6%`,"destructive-foreground":`0 0% 98%`,border:`240 3.7% 15.9%`,input:`240 3.7% 15.9%`,ring:`240 4.9% 83.9%`,radius:`0.5rem`,"chart-1":`0 0% 98%`,"chart-2":`240 5% 64.9%`,"chart-3":`240 3.7% 15.9%`,"chart-4":`240 10% 3.9%`,"chart-5":`240 5.9% 10%`,sidebar:`240 5.9% 10%`,"sidebar-foreground":`240 4.8% 95.9%`,"sidebar-primary":`0 0% 98%`,"sidebar-primary-foreground":`240 5.9% 10%`,"sidebar-accent":`240 3.7% 15.9%`,"sidebar-accent-foreground":`240 4.8% 95.9%`,"sidebar-border":`240 3.7% 15.9%`,"sidebar-ring":`240 4.9% 83.9%`}};function It(e){let t=document.documentElement,n=Ft[e];t.classList.remove(`light`,`dark`),t.classList.add(e),Object.entries(n).forEach(([e,n])=>{t.style.setProperty(`--${e}`,n)}),localStorage.setItem(`theme`,e)}function Lt(){let e=localStorage.getItem(`theme`);return e&&(e===`light`||e===`dark`)?e:window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`}function Rt(){let e=Lt();return It(e),e}function zt(){let[e,t]=s(Lt);return i(()=>{It(e)},[e]),{theme:e,setTheme:t,toggleTheme:()=>{t(e=>e===`light`?`dark`:`light`)}}}function Bt(){let{theme:e,toggleTheme:t}=zt();return j(`button`,{onClick:t,className:`p-2 hover:bg-accent rounded-lg transition-colors text-foreground`,title:e===`light`?`切换到暗色模式`:`切换到亮色模式`,children:j(e===`light`?xe:Fe,{className:`w-5 h-5`})})}var Vt=ct(`inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0`,{variants:{variant:{default:`bg-primary text-primary-foreground shadow hover:bg-primary/90`,destructive:`bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90`,outline:`border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground`,secondary:`bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80`,ghost:`hover:bg-accent hover:text-accent-foreground`,link:`text-primary underline-offset-4 hover:underline`},size:{default:`h-9 px-4 py-2`,sm:`h-8 rounded-md px-3 text-xs`,lg:`h-10 rounded-md px-8`,icon:`h-9 w-9`}},defaultVariants:{variant:`default`,size:`default`}}),P=e.forwardRef(({className:e,variant:t,size:n,...r},i)=>j(`button`,{className:k(Vt({variant:t,size:n,className:e})),ref:i,...r}));P.displayName=`Button`;var F=e.forwardRef(({className:e,type:t,...n},r)=>j(`input`,{type:t,className:k(`flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50`,e),ref:r,...n}));F.displayName=`Input`;var Ht=e.forwardRef(({className:e,children:t,...n},r)=>M(ft.Root,{ref:r,className:k(`relative overflow-hidden`,e),...n,children:[j(ft.Viewport,{className:`h-full w-full rounded-[inherit]`,children:t}),j(Ut,{}),j(ft.Corner,{})]}));Ht.displayName=`ScrollArea`;var Ut=e.forwardRef(({className:e,orientation:t=`vertical`,...n},r)=>j(ft.Scrollbar,{ref:r,orientation:t,className:k(`flex touch-none select-none transition-colors`,t===`vertical`&&`h-full w-2.5 border-l border-l-transparent p-[1px]`,t===`horizontal`&&`h-2.5 flex-col border-t border-t-transparent p-[1px]`,e),...n,children:j(ft.Thumb,{className:`relative flex-1 rounded-full bg-border`})}));Ut.displayName=`ScrollBar`;var Wt=`zhin_api_token`;function Gt(){return localStorage.getItem(Wt)}function Kt(e){localStorage.setItem(Wt,e)}function qt(){localStorage.removeItem(Wt)}function Jt(){return!!localStorage.getItem(Wt)}async function Yt(e,t){let n=Gt(),r=new Headers(t?.headers);n&&r.set(`Authorization`,`Bearer ${n}`);let i=await fetch(e,{...t,headers:r});return i.status===401&&(qt(),window.dispatchEvent(new CustomEvent(`zhin:auth-required`))),i}function Xt(){let e=rt(),t=ot(e=>e.ui.sidebarOpen),n=ot(e=>e.ui.activeMenu),r=ot(e=>e.route.routes),i=a(()=>{let e=r.find(e=>e.key===`dashboard-layout`);return!e||!e.children?[]:e.children.filter(e=>!e.meta?.hideInMenu&&e.key!==`dashboard-layout`).map((e,t)=>({key:e.key||`menu-item-${t}`,title:e.title,index:e.index,icon:e.icon,href:e.path}))},[r]);return M(`div`,{className:`flex h-screen bg-background`,children:[M(`div`,{className:k(`flex flex-col border-r bg-sidebar transition-all duration-300`,t?`w-64`:`w-16`),children:[j(`div`,{className:`p-4 border-b`,children:M(`div`,{className:k(`flex items-center transition-all duration-300`,t?`gap-3`:`justify-center`),children:[j(`div`,{className:`flex items-center justify-center w-9 h-9 min-w-9 rounded-lg bg-foreground text-background font-bold text-lg`,children:`Z`}),t&&M(`div`,{className:`flex flex-col`,children:[j(`span`,{className:`text-base font-semibold`,children:`Zhin.js`}),j(`span`,{className:`text-xs text-muted-foreground`,children:`管理控制台`})]})]})}),j(Ht,{className:`flex-1`,children:j(`div`,{className:`p-2 space-y-1`,children:i.map(r=>{let i=n===r.key;return M(qe,{to:r.href,onClick:()=>e(Ze(r.key)),className:k(`menu-item`,i&&`active`,!t&&`justify-center px-2`),children:[j(`span`,{className:`shrink-0`,children:r.icon}),t&&j(`span`,{className:`truncate`,children:r.title})]},r.key)})})})]}),M(`div`,{className:`flex flex-col flex-1 overflow-hidden`,children:[M(`header`,{className:`flex items-center justify-between h-14 px-4 border-b bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60`,children:[M(`div`,{className:`flex items-center gap-3`,children:[j(P,{variant:`ghost`,size:`icon`,onClick:()=>e($e()),children:j(ye,{className:`h-5 w-5`})}),M(`div`,{className:`flex flex-col`,children:[j(`h2`,{className:`text-sm font-semibold`,children:`控制台`}),j(`span`,{className:`text-xs text-muted-foreground`,children:`欢迎回来`})]})]}),j(`div`,{className:`hidden md:flex flex-1 max-w-md mx-6`,children:M(`div`,{className:`relative w-full`,children:[j(Ae,{className:`absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground`}),j(F,{placeholder:`搜索功能、插件、设置...`,className:`pl-9 bg-muted/50`})]})}),M(`div`,{className:`flex items-center gap-1`,children:[j(Bt,{}),j(P,{variant:`ghost`,size:`icon`,title:`退出登录`,onClick:()=>{qt(),window.dispatchEvent(new CustomEvent(`zhin:auth-required`))},children:j(_e,{className:`h-4 w-4`})})]})]}),j(`main`,{className:`flex-1 overflow-auto`,children:j(`div`,{className:`max-w-7xl mx-auto p-6`,children:j(Je,{})})})]})]})}var I=e.forwardRef(({className:e,...t},n)=>j(`div`,{ref:n,className:k(`rounded-lg border bg-card text-card-foreground shadow-sm`,e),...t}));I.displayName=`Card`;var L=e.forwardRef(({className:e,...t},n)=>j(`div`,{ref:n,className:k(`flex flex-col space-y-1.5 p-6`,e),...t}));L.displayName=`CardHeader`;var R=e.forwardRef(({className:e,...t},n)=>j(`div`,{ref:n,className:k(`text-lg font-semibold leading-none tracking-tight`,e),...t}));R.displayName=`CardTitle`;var Zt=e.forwardRef(({className:e,...t},n)=>j(`div`,{ref:n,className:k(`text-sm text-muted-foreground`,e),...t}));Zt.displayName=`CardDescription`;var z=e.forwardRef(({className:e,...t},n)=>j(`div`,{ref:n,className:k(`p-6 pt-0`,e),...t}));z.displayName=`CardContent`;var Qt=e.forwardRef(({className:e,...t},n)=>j(`div`,{ref:n,className:k(`flex items-center p-6 pt-0`,e),...t}));Qt.displayName=`CardFooter`;var $t=ct(`inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2`,{variants:{variant:{default:`border-transparent bg-primary text-primary-foreground shadow`,secondary:`border-transparent bg-secondary text-secondary-foreground`,destructive:`border-transparent bg-destructive text-destructive-foreground shadow`,outline:`text-foreground`,success:`border-transparent bg-emerald-100 text-emerald-800 dark:bg-emerald-900/30 dark:text-emerald-400`,warning:`border-transparent bg-amber-100 text-amber-800 dark:bg-amber-900/30 dark:text-amber-400`}},defaultVariants:{variant:`default`}});function B({className:e,variant:t,...n}){return j(`div`,{className:k($t({variant:t}),e),...n})}var en=ct(`relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7`,{variants:{variant:{default:`bg-background text-foreground`,destructive:`border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive`,success:`border-emerald-200 bg-emerald-50 text-emerald-800 dark:border-emerald-800 dark:bg-emerald-950/50 dark:text-emerald-400 [&>svg]:text-emerald-600 dark:[&>svg]:text-emerald-400`,warning:`border-amber-200 bg-amber-50 text-amber-800 dark:border-amber-800 dark:bg-amber-950/50 dark:text-amber-400 [&>svg]:text-amber-600 dark:[&>svg]:text-amber-400`}},defaultVariants:{variant:`default`}}),V=e.forwardRef(({className:e,variant:t,...n},r)=>j(`div`,{ref:r,role:`alert`,className:k(en({variant:t}),e),...n}));V.displayName=`Alert`;var tn=e.forwardRef(({className:e,...t},n)=>j(`h5`,{ref:n,className:k(`mb-1 font-medium leading-none tracking-tight`,e),...t}));tn.displayName=`AlertTitle`;var H=e.forwardRef(({className:e,...t},n)=>j(`div`,{ref:n,className:k(`text-sm [&_p]:leading-relaxed`,e),...t}));H.displayName=`AlertDescription`;function U({className:e,...t}){return j(`div`,{className:k(`animate-pulse rounded-md bg-primary/10`,e),...t})}function nn(){let e=_t(),[t,n]=s(null),[r,a]=s(null),[o,c]=s(!0),[d,f]=s(null);i(()=>{m();let e=setInterval(m,5e3);return()=>clearInterval(e)},[]);let m=async()=>{try{let[e,t]=await Promise.all([Yt(`/api/stats`),Yt(`/api/system/status`)]);if(!e.ok||!t.ok)throw Error(`API 请求失败`);let r=await e.json(),i=await t.json();r.success&&i.success&&(n(r.data),a(i.data),f(null))}catch(e){f(e.message)}finally{c(!1)}},h=e=>`${Math.floor(e/86400)}天 ${Math.floor(e%86400/3600)}小时 ${Math.floor(e%3600/60)}分钟`,g=e=>`${(e/1024/1024).toFixed(2)} MB`;return o?M(`div`,{className:`space-y-6`,children:[M(`div`,{children:[j(U,{className:`h-8 w-48`}),j(U,{className:`h-4 w-64 mt-2`})]}),j(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4`,children:[...[,,,,]].map((e,t)=>j(U,{className:`h-32`},t))})]}):d?j(`div`,{className:`flex items-center justify-center h-full`,children:M(V,{variant:`destructive`,className:`max-w-md`,children:[j(u,{className:`h-4 w-4`}),M(H,{children:[`加载失败: `,d]})]})}):M(`div`,{className:`space-y-6`,children:[M(`div`,{children:[j(`h1`,{className:`text-2xl font-bold tracking-tight`,children:`系统概览`}),j(`p`,{className:`text-muted-foreground`,children:`实时监控您的机器人框架运行状态`})]}),M(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4`,children:[M(I,{children:[M(L,{className:`flex flex-row items-center justify-between pb-2`,children:[j(R,{className:`text-sm font-medium text-muted-foreground`,children:`插件总数`}),j(Ce,{className:`h-4 w-4 text-muted-foreground`})]}),M(z,{children:[j(`div`,{className:`text-3xl font-bold`,children:t?.plugins.total||0}),M(`p`,{className:`text-xs text-muted-foreground mt-1`,children:[j(B,{variant:`secondary`,className:`mr-1`,children:t?.plugins.active||0}),`个活跃`]})]})]}),M(I,{children:[M(L,{className:`flex flex-row items-center justify-between pb-2`,children:[j(R,{className:`text-sm font-medium text-muted-foreground`,children:`机器人`}),j(p,{className:`h-4 w-4 text-muted-foreground`})]}),M(z,{children:[j(`div`,{className:`text-3xl font-bold`,children:t?.bots.total||0}),M(`p`,{className:`text-xs text-muted-foreground mt-1`,children:[j(B,{variant:`success`,className:`mr-1`,children:t?.bots.online||0}),`个在线`]})]})]}),M(I,{children:[M(L,{className:`flex flex-row items-center justify-between pb-2`,children:[j(R,{className:`text-sm font-medium text-muted-foreground`,children:`命令数量`}),j(l,{className:`h-4 w-4 text-muted-foreground`})]}),M(z,{children:[j(`div`,{className:`text-3xl font-bold`,children:t?.commands||0}),j(`p`,{className:`text-xs text-muted-foreground mt-1`,children:`可用命令`})]})]}),M(I,{children:[M(L,{className:`flex flex-row items-center justify-between pb-2`,children:[j(R,{className:`text-sm font-medium text-muted-foreground`,children:`组件数量`}),j(ze,{className:`h-4 w-4 text-muted-foreground`})]}),M(z,{children:[j(`div`,{className:`text-3xl font-bold`,children:t?.components||0}),j(`p`,{className:`text-xs text-muted-foreground mt-1`,children:`已注册组件`})]})]})]}),M(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-4`,children:[M(I,{children:[M(L,{children:[j(R,{children:`系统信息`}),j(Zt,{children:`服务器运行状态`})]}),M(z,{className:`space-y-3`,children:[M(`div`,{className:`flex justify-between items-center`,children:[M(`div`,{className:`flex items-center gap-2 text-sm`,children:[j(w,{className:`h-4 w-4 text-muted-foreground`}),`运行时间`]}),j(B,{variant:`secondary`,children:r?h(r.uptime):`-`})]}),M(`div`,{className:`flex justify-between items-center`,children:[M(`div`,{className:`flex items-center gap-2 text-sm`,children:[j(E,{className:`h-4 w-4 text-muted-foreground`}),`平台`]}),j(B,{variant:`secondary`,children:r?.platform||`-`})]}),M(`div`,{className:`flex justify-between items-center`,children:[M(`div`,{className:`flex items-center gap-2 text-sm`,children:[j(l,{className:`h-4 w-4 text-muted-foreground`}),`Node 版本`]}),j(B,{variant:`secondary`,children:r?.nodeVersion||`-`})]})]})]}),M(I,{children:[M(L,{children:[j(R,{children:`资源使用`}),j(Zt,{children:`内存使用情况`})]}),M(z,{className:`space-y-3`,children:[M(`div`,{className:`flex justify-between items-center`,children:[M(`div`,{className:`flex items-center gap-2 text-sm`,children:[j(ve,{className:`h-4 w-4 text-muted-foreground`}),`堆内存使用`]}),j(B,{variant:`secondary`,children:t?`${t.memory.toFixed(2)} MB`:`-`})]}),M(`div`,{className:`flex justify-between items-center`,children:[M(`div`,{className:`flex items-center gap-2 text-sm`,children:[j(ve,{className:`h-4 w-4 text-muted-foreground`}),`总堆内存`]}),j(B,{variant:`secondary`,children:r?g(r.memory.heapTotal):`-`})]}),M(`div`,{className:`flex justify-between items-center`,children:[M(`div`,{className:`flex items-center gap-2 text-sm`,children:[j(ve,{className:`h-4 w-4 text-muted-foreground`}),`RSS`]}),j(B,{variant:`secondary`,children:r?g(r.memory.rss):`-`})]})]})]})]}),M(I,{children:[M(L,{children:[j(R,{children:`快速操作`}),j(Zt,{children:`常用功能快捷入口`})]}),j(z,{children:M(`div`,{className:`grid grid-cols-1 md:grid-cols-3 gap-3`,children:[j(P,{variant:`outline`,className:`h-auto p-4 justify-start`,onClick:()=>e(`/plugins`),children:M(`div`,{className:`flex flex-col items-start gap-1`,children:[j(Ce,{className:`h-5 w-5 mb-1`}),j(`span`,{className:`font-medium`,children:`插件管理`}),j(`span`,{className:`text-xs text-muted-foreground`,children:`查看和管理插件`})]})}),j(P,{variant:`outline`,className:`h-auto p-4 justify-start`,onClick:()=>e(`/bots`),children:M(`div`,{className:`flex flex-col items-start gap-1`,children:[j(p,{className:`h-5 w-5 mb-1`}),j(`span`,{className:`font-medium`,children:`机器人状态`}),j(`span`,{className:`text-xs text-muted-foreground`,children:`监控机器人运行`})]})}),j(P,{variant:`outline`,className:`h-auto p-4 justify-start`,onClick:()=>e(`/logs`),children:M(`div`,{className:`flex flex-col items-start gap-1`,children:[j(ie,{className:`h-5 w-5 mb-1`}),j(`span`,{className:`font-medium`,children:`系统日志`}),j(`span`,{className:`text-xs text-muted-foreground`,children:`查看运行日志`})]})})]})})]})]})}var rn=e.forwardRef(({className:e,orientation:t=`horizontal`,decorative:n=!0,...r},i)=>j(pt.Root,{ref:i,decorative:n,orientation:t,className:k(`shrink-0 bg-border`,t===`horizontal`?`h-[1px] w-full`:`h-full w-[1px]`,e),...r}));rn.displayName=`Separator`;var an={Terminal:Le,Box:m,Layers:pe,Clock:w,Brain:h,Wrench:He,Database:ee,Shield:Ne,Settings:Me,Plug:Te,Server:je};function on(e){return an[e]||Ce}function sn(){let e=_t(),[t,n]=s([]),[r,a]=s(!0),[o,c]=s(null);i(()=>{l();let e=setInterval(l,1e4);return()=>clearInterval(e)},[]);let l=async()=>{try{let e=await Yt(`/api/plugins`);if(!e.ok)throw Error(`API 请求失败`);let t=await e.json();if(t.success)n(t.data),c(null);else throw Error(`数据格式错误`)}catch(e){c(e.message)}finally{a(!1)}};return r?M(`div`,{className:`space-y-4`,children:[j(U,{className:`h-8 w-48`}),j(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3`,children:[...[,,,,,,]].map((e,t)=>j(U,{className:`h-40`},t))})]}):o?j(`div`,{className:`flex items-center justify-center h-full`,children:M(V,{variant:`destructive`,className:`max-w-md`,children:[j(u,{className:`h-4 w-4`}),M(H,{children:[`加载失败: `,o]})]})}):M(`div`,{className:`space-y-4`,children:[M(`div`,{children:[j(`h1`,{className:`text-2xl font-bold tracking-tight`,children:`插件管理`}),M(`div`,{className:`flex items-center gap-2 mt-1`,children:[M(`span`,{className:`text-sm text-muted-foreground`,children:[`共 `,t.length,` 个插件`]}),j(B,{variant:`success`,children:t.filter(e=>e.status===`active`).length}),j(`span`,{className:`text-sm text-muted-foreground`,children:`个运行中`})]})]}),j(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3`,children:t.map((t,n)=>j(I,{className:`cursor-pointer transition-all hover:shadow-md hover:-translate-y-0.5`,onClick:()=>e(`/plugins/${encodeURIComponent(t.name)}`),children:M(z,{className:`p-4 space-y-3`,children:[M(`div`,{className:`flex justify-between items-center`,children:[M(`div`,{className:`flex items-center gap-2`,children:[j(`div`,{className:`flex items-center justify-center w-8 h-8 rounded-md bg-secondary`,children:j(Ce,{className:`w-4 h-4`})}),j(`span`,{className:`font-semibold text-sm`,children:t.name})]}),j(B,{variant:t.status===`active`?`success`:`secondary`,children:t.status===`active`?`运行中`:`已停止`})]}),j(`p`,{className:`text-xs text-muted-foreground line-clamp-2`,children:t.description||`暂无描述`}),j(rn,{}),t.features.length>0?j(`div`,{className:`grid gap-1`,style:{gridTemplateColumns:`repeat(${Math.min(t.features.length,4)}, 1fr)`},children:t.features.map(e=>M(`div`,{className:`flex flex-col items-center gap-0.5 rounded-md bg-secondary/50 p-1.5`,children:[j(on(e.icon),{className:`w-3 h-3 text-muted-foreground`}),j(`span`,{className:`text-sm font-bold`,children:e.count}),j(`span`,{className:`text-[10px] text-muted-foreground`,children:e.desc})]},e.name))}):j(`p`,{className:`text-xs text-muted-foreground text-center py-1`,children:`无注册功能`})]})},`${t.name}-${n}`))}),t.length===0&&j(I,{className:`mt-6`,children:M(z,{className:`flex flex-col items-center gap-3 py-12`,children:[j(`div`,{className:`flex items-center justify-center w-16 h-16 rounded-full bg-muted`,children:j(Ce,{className:`w-8 h-8 text-muted-foreground`})}),j(`h3`,{className:`text-lg font-semibold`,children:`暂无插件`}),j(`p`,{className:`text-sm text-muted-foreground`,children:`请先安装并启用插件`})]})})]})}var W=e.forwardRef(({className:e,...t},n)=>j(`textarea`,{className:k(`flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50`,e),ref:n,...t}));W.displayName=`Textarea`;var cn=e.forwardRef(({className:e,...t},n)=>j(mt.Root,{className:k(`peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input`,e),...t,ref:n,children:j(mt.Thumb,{className:k(`pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0`)})}));cn.displayName=`Switch`;var ln=N.Root;N.Group;var un=N.Value,dn=e.forwardRef(({className:e,children:t,...n},r)=>M(N.Trigger,{ref:r,className:k(`flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1`,e),...n,children:[t,j(N.Icon,{asChild:!0,children:j(y,{className:`h-4 w-4 opacity-50`})})]}));dn.displayName=`SelectTrigger`;var fn=e.forwardRef(({className:e,...t},n)=>j(N.ScrollUpButton,{ref:n,className:k(`flex cursor-default items-center justify-center py-1`,e),...t,children:j(S,{className:`h-4 w-4`})}));fn.displayName=`SelectScrollUpButton`;var pn=e.forwardRef(({className:e,...t},n)=>j(N.ScrollDownButton,{ref:n,className:k(`flex cursor-default items-center justify-center py-1`,e),...t,children:j(y,{className:`h-4 w-4`})}));pn.displayName=`SelectScrollDownButton`;var mn=e.forwardRef(({className:e,children:t,position:n=`popper`,...r},i)=>j(N.Portal,{children:M(N.Content,{ref:i,className:k(`relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2`,n===`popper`&&`data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1`,e),position:n,...r,children:[j(fn,{}),j(N.Viewport,{className:k(`p-1`,n===`popper`&&`h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]`),children:t}),j(pn,{})]})}));mn.displayName=`SelectContent`;var hn=e.forwardRef(({className:e,children:t,...n},r)=>M(N.Item,{ref:r,className:k(`relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,e),...n,children:[j(`span`,{className:`absolute right-2 flex h-3.5 w-3.5 items-center justify-center`,children:j(N.ItemIndicator,{children:j(_,{className:`h-4 w-4`})})}),j(N.ItemText,{children:t})]}));hn.displayName=`SelectItem`;var gn=e.forwardRef(({className:e,...t},n)=>j(N.Separator,{ref:n,className:k(`-mx-1 my-1 h-px bg-muted`,e),...t}));gn.displayName=`SelectSeparator`;function _n({field:e,value:t,onChange:n}){return e.enum?M(ln,{value:t?.toString()||``,onValueChange:n,children:[j(dn,{children:j(un,{placeholder:`请选择`})}),j(mn,{children:e.enum.map(e=>j(hn,{value:e.toString(),children:e.toString()},e))})]}):e.description?.includes(`多行`)||e.key?.includes(`description`)?j(W,{value:t||``,onChange:e=>n(e.target.value),placeholder:e.description||`请输入`,rows:3}):j(F,{value:t||``,onChange:e=>n(e.target.value),placeholder:e.description||`请输入`})}function vn({field:e,value:t,onChange:n}){return j(F,{type:`number`,value:t?.toString()||``,onChange:e=>n(parseFloat(e.target.value)||0),placeholder:e.description||`请输入数字`,min:e.min,max:e.max})}function yn({value:e,onChange:t}){return M(`div`,{className:`flex items-center gap-3 p-3 rounded-lg bg-muted/50 border`,children:[j(cn,{checked:e===!0,onCheckedChange:t}),M(`div`,{className:`flex flex-col gap-0.5`,children:[j(`span`,{className:`text-sm font-medium ${e?`text-emerald-600 dark:text-emerald-400`:`text-muted-foreground`}`,children:e?`已启用`:`已禁用`}),j(`span`,{className:`text-xs text-muted-foreground`,children:e?`功能当前处于开启状态`:`功能当前处于关闭状态`})]})]})}function bn({field:e,value:t,onChange:n}){let r=typeof t==`number`?t:e.default||0;return M(`div`,{className:`p-3 rounded-lg bg-muted/50 border space-y-3`,children:[M(`div`,{className:`flex items-center gap-3`,children:[j(`input`,{type:`range`,min:e.min||0,max:e.max||1,step:e.step||.01,value:r,onChange:e=>n(parseFloat(e.target.value)),className:`flex-1 h-2 rounded-lg appearance-none cursor-pointer bg-secondary`}),M(`div`,{className:`flex items-center gap-1`,children:[j(F,{type:`number`,className:`w-20 h-8 text-xs`,value:(r*100).toFixed(0),onChange:e=>n(parseFloat(e.target.value)/100),min:(e.min||0)*100,max:(e.max||1)*100}),j(`span`,{className:`text-xs font-bold text-muted-foreground`,children:`%`})]})]}),M(`div`,{className:`flex items-center justify-between`,children:[j(`span`,{className:`text-xs text-muted-foreground`,children:`当前值`}),M(B,{variant:`secondary`,className:`font-mono`,children:[(r*100).toFixed(1),`%`]})]})]})}function xn({field:e,value:t,onChange:n}){let r=t instanceof Date?t.toISOString().split(`T`)[0]:t||``;return M(`div`,{className:`relative`,children:[j(g,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground pointer-events-none`}),j(F,{type:`date`,value:r,onChange:e=>n(new Date(e.target.value)),placeholder:e.description||`选择日期`,className:`pl-9`})]})}function Sn({field:e,value:t,onChange:n}){let r=t instanceof RegExp?t.source:typeof t==`string`?t:``;return M(`div`,{className:`p-3 rounded-lg bg-amber-50 dark:bg-amber-950/20 border border-amber-200 dark:border-amber-800 space-y-2`,children:[M(`div`,{className:`flex items-center gap-1`,children:[j(`span`,{className:`text-sm font-bold text-amber-600 dark:text-amber-400`,children:`/`}),j(F,{value:r,className:`font-mono text-sm`,onChange:e=>{try{n(new RegExp(e.target.value))}catch{n(e.target.value)}},placeholder:e.description||`请输入正则表达式`}),j(`span`,{className:`text-sm font-bold text-amber-600 dark:text-amber-400`,children:`/`})]}),M(`p`,{className:`flex items-center gap-1 text-xs text-amber-700 dark:text-amber-300`,children:[j(ue,{className:`w-3 h-3`}),` 输入正则表达式模式 (省略斜杠)`]})]})}function Cn({field:e,value:t}){let n=e.default||t;return M(`div`,{className:`flex items-center gap-3 p-3 rounded-lg bg-muted border`,children:[j(he,{className:`w-4 h-4 text-muted-foreground`}),j(B,{variant:`secondary`,className:`font-mono`,children:String(n)}),j(`span`,{className:`text-xs text-muted-foreground ml-auto`,children:`(常量,不可修改)`})]})}function wn({field:e,value:t,onChange:n}){return M(`div`,{className:`p-3 rounded-lg bg-muted/50 border space-y-2`,children:[M(`p`,{className:`flex items-center gap-1 text-xs font-semibold text-muted-foreground`,children:[j(T,{className:`w-3 h-3`}),` JSON 格式输入`]}),j(W,{value:typeof t==`object`?JSON.stringify(t,null,2):String(t||``),onChange:e=>{try{n(JSON.parse(e.target.value))}catch{n(e.target.value)}},placeholder:e.description||`支持任意类型 (JSON 格式)`,rows:4,className:`font-mono text-sm`}),M(`p`,{className:`flex items-center gap-1 text-xs text-muted-foreground`,children:[j(ue,{className:`w-3 h-3`}),` 支持: 字符串、数字、布尔值、对象、数组`]})]})}function Tn({fieldName:e,field:t,value:n,onChange:r,onArrayItemChange:i,renderNestedField:a}){let o=Array.isArray(n)?n:[],s=t.inner||t.items;return s&&[`string`,`number`].includes(s.type)?M(`div`,{className:`p-3 rounded-lg bg-muted/50 border space-y-2`,children:[M(`p`,{className:`flex items-center gap-1 text-xs font-semibold text-muted-foreground`,children:[j(me,{className:`w-3 h-3`}),` 列表输入 (每行一个值)`]}),j(W,{value:o.join(`
|
|
2
|
-
`),onChange:e=>{let t=e.target.value.split(`
|
|
3
|
-
`).filter(Boolean);r(s.type===`number`?t.map(e=>parseFloat(e)||0):t)},placeholder:`每行一个值\n${t.description||``}`,rows:4,className:`font-mono text-sm`})]}):M(`div`,{className:`space-y-2`,children:[o.map((t,n)=>j(I,{className:`group`,children:M(`div`,{className:`p-3 space-y-2`,children:[M(`div`,{className:`flex justify-between items-center`,children:[j(B,{variant:`secondary`,className:`font-mono`,children:n+1}),j(P,{variant:`ghost`,size:`sm`,className:`opacity-0 group-hover:opacity-100 transition-opacity text-destructive`,onClick:()=>r(o.filter((e,t)=>t!==n)),children:j(Re,{className:`w-3 h-3`})})]}),j(`div`,{className:`pl-2 border-l-2`,children:s&&a(`${e}[${n}]`,s,t,t=>{i?.(e,n,t)})})]})},n)),M(P,{variant:`outline`,size:`sm`,className:`w-full border-dashed`,onClick:()=>r([...o,s?.default||(s?.type===`object`?{}:``)]),children:[j(Ee,{className:`w-4 h-4 mr-1`}),` 添加项`]})]})}function En({field:e,value:t,onChange:n}){return M(`div`,{className:`p-3 rounded-lg bg-muted/50 border space-y-2`,children:[M(`p`,{className:`flex items-center gap-1 text-xs font-semibold text-muted-foreground`,children:[j(me,{className:`w-3 h-3`}),` 数组输入 (每行一个值)`]}),j(W,{value:Array.isArray(t)?t.join(`
|
|
4
|
-
`):``,onChange:e=>n(e.target.value.split(`
|
|
5
|
-
`).filter(Boolean)),placeholder:`每行一个值\n${e.description||``}`,rows:3,className:`font-mono text-sm`})]})}function Dn({fieldName:e,field:t,value:n,onArrayItemChange:r,renderNestedField:i}){let a=Array.isArray(n)?n:[];return j(`div`,{className:`space-y-2`,children:(t.list||[]).map((t,n)=>M(`div`,{className:`p-3 rounded-lg bg-muted/50 border space-y-2`,children:[M(B,{variant:`secondary`,className:`font-mono`,children:[`#`,n+1]}),t.description&&j(`p`,{className:`text-xs text-muted-foreground`,children:t.description}),j(`div`,{className:`mt-1`,children:i(`${e}[${n}]`,t,a[n],t=>{r?.(e,n,t)})})]},n))})}function On({fieldName:e,field:t,renderField:n}){let r=t.dict||t.properties||{};return M(`div`,{className:`rounded-lg border-2 bg-muted/30 overflow-hidden`,children:[M(`div`,{className:`px-4 py-2 bg-muted border-b flex items-center gap-2`,children:[j(Ce,{className:`w-4 h-4 text-muted-foreground`}),j(`span`,{className:`text-xs font-semibold text-muted-foreground`,children:`对象`})]}),j(`div`,{className:`p-3 space-y-2`,children:Object.entries(r).map(([t,i],a)=>M(`div`,{children:[M(`div`,{className:`p-3 rounded-md bg-background border space-y-1`,children:[M(`div`,{className:`flex items-center gap-1`,children:[j(`span`,{className:`text-sm font-semibold`,children:i.key||t}),i.required&&j(`span`,{className:`text-destructive font-bold`,children:`*`})]}),i.description&&j(`p`,{className:`text-xs text-muted-foreground`,children:i.description}),j(`div`,{className:`mt-1`,children:n(t,i,e)})]}),a<Object.entries(r).length-1&&j(rn,{className:`my-2`})]},t))})]})}function kn({field:e,value:t,onChange:n}){return M(`div`,{className:`p-3 rounded-lg bg-muted/50 border space-y-2`,children:[M(`p`,{className:`flex items-center gap-1 text-xs font-semibold text-muted-foreground`,children:[j(T,{className:`w-3 h-3`}),` 键值对编辑`]}),j(W,{value:typeof t==`object`?JSON.stringify(t,null,2):t||`{}`,onChange:e=>{try{n(JSON.parse(e.target.value))}catch{}},placeholder:e.description||`请输入 JSON 格式`,rows:6,className:`font-mono text-sm`}),M(`p`,{className:`flex items-center gap-1 text-xs text-muted-foreground`,children:[j(ue,{className:`w-3 h-3`}),` 键值对格式: `,`{`,`"key": "value"`,`}`]})]})}function An({field:e,value:t,onChange:n}){let r=e.list||[];if(r.length===0)return j(F,{value:t||``,onChange:e=>n(e.target.value),placeholder:e.description||`请输入值`});let i=r.map(e=>e.default||e.type);return M(`div`,{className:`p-3 rounded-lg bg-muted/50 border space-y-2`,children:[M(`p`,{className:`flex items-center gap-1 text-xs font-semibold text-muted-foreground`,children:[j(ce,{className:`w-3 h-3`}),` 联合类型`]}),M(ln,{value:t?.toString()||``,onValueChange:n,children:[j(dn,{children:j(un,{placeholder:`请选择`})}),j(mn,{children:i.map((e,t)=>j(hn,{value:String(e),children:String(e)},t))})]})]})}function jn({fieldName:e,field:t,value:n,onChange:r,renderNestedField:i}){let a=t.list||[];return M(`div`,{className:`rounded-lg border-2 bg-muted/30 overflow-hidden`,children:[M(`div`,{className:`px-4 py-2 bg-muted border-b flex items-center gap-2`,children:[j(pe,{className:`w-4 h-4 text-muted-foreground`}),j(`span`,{className:`text-xs font-semibold text-muted-foreground`,children:`交叉类型`})]}),j(`div`,{className:`p-3 space-y-2`,children:a.map((t,a)=>M(`div`,{className:`p-3 rounded-md bg-background border space-y-1`,children:[t.description&&j(`p`,{className:`text-xs text-muted-foreground`,children:t.description}),j(`div`,{className:`mt-1`,children:i(`${e}[${a}]`,t,n,r)})]},a))})]})}function Mn(e){let{field:t}=e;switch(t.type){case`string`:return j(_n,{...e});case`number`:case`integer`:return j(vn,{...e});case`boolean`:return j(yn,{...e});case`percent`:return j(bn,{...e});case`date`:return j(xn,{...e});case`regexp`:return j(Sn,{...e});case`const`:return j(Cn,{...e});case`any`:return j(wn,{...e});case`list`:return j(Tn,{...e});case`array`:return j(En,{...e});case`tuple`:return j(Dn,{...e});case`object`:return j(On,{...e});case`dict`:return j(kn,{...e});case`union`:return j(An,{...e});case`intersect`:return j(jn,{...e});default:return j(W,{value:typeof e.value==`object`?JSON.stringify(e.value,null,2):e.value||``,onChange:t=>{try{e.onChange(JSON.parse(t.target.value))}catch{e.onChange(t.target.value)}},placeholder:t.description||`请输入 JSON 格式`,rows:4,className:`font-mono text-xs`})}}function Nn({field:e,value:t,onChange:n}){switch(e.type){case`string`:return j(F,{value:t||``,onChange:e=>n(e.target.value),placeholder:e.description||`请输入`,className:`h-8 text-sm`});case`number`:case`integer`:return j(F,{type:`number`,value:t?.toString()||``,onChange:e=>n(parseFloat(e.target.value)||0),placeholder:e.description||`请输入数字`,min:e.min,max:e.max,className:`h-8 text-sm`});case`boolean`:return M(`div`,{className:`flex items-center gap-2`,children:[j(cn,{checked:t===!0,onCheckedChange:n}),j(`span`,{className:`text-sm ${t?`text-emerald-600 dark:text-emerald-400`:`text-muted-foreground`}`,children:t?`已启用`:`已禁用`})]});case`object`:{let r=e.dict||e.properties||{};return j(I,{className:`p-2 space-y-2`,children:Object.entries(r).map(([e,r])=>M(`div`,{className:`space-y-1`,children:[j(`span`,{className:`text-xs font-semibold`,children:e}),j(Nn,{fieldName:e,field:r,value:t?.[e],onChange:r=>n({...t,[e]:r})})]},e))})}default:return j(W,{value:typeof t==`object`?JSON.stringify(t,null,2):t||``,onChange:e=>{try{n(JSON.parse(e.target.value))}catch{n(e.target.value)}},rows:3,className:`font-mono text-xs`})}}var Pn=lt.Root,Fn=e.forwardRef(({className:e,...t},n)=>j(lt.Item,{ref:n,className:k(`border-b`,e),...t}));Fn.displayName=`AccordionItem`;var In=e.forwardRef(({className:e,children:t,...n},r)=>j(lt.Header,{className:`flex`,children:M(lt.Trigger,{ref:r,className:k(`flex flex-1 items-center justify-between py-4 text-sm font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180`,e),...n,children:[t,j(y,{className:`h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200`})]})}));In.displayName=`AccordionTrigger`;var Ln=e.forwardRef(({className:e,children:t,...n},r)=>j(lt.Content,{ref:r,className:`overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down`,...n,children:j(`div`,{className:k(`pb-4 pt-0`,e),children:t})}));Ln.displayName=`AccordionContent`;function Rn({pluginName:e,onSuccess:t}){let[n,r]=s({}),[a,o]=s(null),[c,l]=s(void 0),{config:f,schema:p,loading:m,error:h,connected:g,setConfig:_}=et(e);i(()=>{f&&r(f)},[f]);let[y,b]=s(null),x=async()=>{if(g)try{let e=await _(n);e?.reloaded?o(`配置已保存,插件已重载`):e?.message?(b(e.message),o(null)):o(`配置已保存`),setTimeout(()=>{l(void 0),t?.(),o(null),b(null)},2500)}catch(e){console.error(`保存配置失败:`,e)}},S=(e,t)=>{r(n=>({...n,[e]:t}))},C=(e,t,n)=>{r(r=>({...r,[e]:{...r[e]||{},[t]:n}}))},w=(e,t,n)=>{r(r=>{let i=Array.isArray(r[e])?[...r[e]]:[];return i[t]=n,{...r,[e]:i}})},T=(e,t,r)=>j(Mn,{fieldName:e,field:t,value:r?n[r]?.[e]??t.default:n[e]??t.default,onChange:r?t=>C(r,e,t):t=>S(e,t),parentPath:r,onNestedChange:C,onArrayItemChange:w,renderField:T,renderNestedField:(e,t,n,r)=>j(Nn,{fieldName:e,field:t,value:n,onChange:r})}),E=p?.object||p?.properties||p?.dict||{};return!p||!E||Object.keys(E).length===0?null:j(I,{className:`mt-4`,children:j(Pn,{type:`single`,collapsible:!0,value:c,onValueChange:l,children:M(Fn,{value:`config`,className:`border-none`,children:[j(In,{className:`px-4 hover:no-underline`,children:M(`div`,{className:`flex items-center gap-2`,children:[j(Me,{className:`w-4 h-4`}),j(`span`,{className:`font-semibold`,children:`插件配置`}),M(B,{variant:`secondary`,children:[Object.keys(E).length,` 项`]})]})}),M(Ln,{className:`px-4 pb-4`,children:[a&&M(V,{variant:`success`,className:`mb-3`,children:[j(v,{className:`h-4 w-4`}),j(H,{children:a})]}),y&&!a&&M(V,{className:`mb-3 border-yellow-500/50 text-yellow-700 dark:text-yellow-400`,children:[j(d,{className:`h-4 w-4`}),j(H,{children:y})]}),h&&M(V,{variant:`destructive`,className:`mb-3`,children:[j(u,{className:`h-4 w-4`}),j(H,{children:h})]}),j(`div`,{className:`space-y-3`,children:Object.entries(E).map(([e,t])=>{let n=t;return M(`div`,{className:`p-3 rounded-lg bg-muted/50 border space-y-2`,children:[M(`div`,{className:`flex items-center gap-1`,children:[j(`span`,{className:`text-sm font-semibold`,children:n.key||e}),n.required&&j(`span`,{className:`text-destructive font-bold`,children:`*`})]}),n.description&&j(`p`,{className:`text-xs text-muted-foreground`,children:n.description}),j(`div`,{className:`mt-1`,children:T(n.key||e,n)})]},e)})}),M(`div`,{className:`flex gap-2 justify-end mt-4 pt-3 border-t`,children:[M(P,{variant:`outline`,size:`sm`,onClick:()=>l(void 0),disabled:m,children:[j(Ue,{className:`w-4 h-4 mr-1`}),` 取消`]}),j(P,{size:`sm`,onClick:x,disabled:m,children:m?M(A,{children:[j(O,{className:`w-4 h-4 mr-1 animate-spin`}),`保存中...`]}):M(A,{children:[j(ke,{className:`w-4 h-4 mr-1`}),`保存配置`]})})]})]})]})})})}var zn={Terminal:Le,Box:m,Layers:pe,Clock:w,Brain:h,Wrench:He,Database:ee,Shield:Ne,Settings:Me,Plug:Te,Server:je};function Bn(e){return zn[e]||Ce}function Vn(){let{name:e}=vt(),t=_t(),[n,r]=s(null),[a,o]=s(!0),[c,l]=s(null);i(()=>{e&&d(e)},[e]);let d=async e=>{try{let t=await Yt(`/api/plugins/${encodeURIComponent(e)}`);if(!t.ok)throw Error(`API 请求失败`);let n=await t.json();if(n.success)r(n.data),l(null);else throw Error(`数据格式错误`)}catch(e){l(e.message)}finally{o(!1)}};return a?M(`div`,{className:`space-y-4`,children:[j(U,{className:`h-8 w-24`}),M(`div`,{className:`flex items-center gap-3`,children:[j(U,{className:`h-12 w-12 rounded-xl`}),M(`div`,{children:[j(U,{className:`h-6 w-48`}),j(U,{className:`h-4 w-64 mt-1`})]})]}),j(`div`,{className:`grid grid-cols-2 sm:grid-cols-3 md:grid-cols-6 gap-2`,children:[...[,,,,,,]].map((e,t)=>j(U,{className:`h-20`},t))})]}):c||!n?M(`div`,{children:[M(P,{variant:`ghost`,onClick:()=>t(`/plugins`),className:`mb-4`,children:[j(f,{className:`w-4 h-4 mr-1`}),` 返回`]}),M(V,{variant:`destructive`,children:[j(u,{className:`h-4 w-4`}),M(H,{children:[`加载失败: `,c||`插件不存在`]})]})]}):M(`div`,{className:`space-y-4`,children:[M(P,{variant:`ghost`,size:`sm`,onClick:()=>t(`/plugins`),children:[j(f,{className:`w-4 h-4 mr-1`}),` 返回`]}),M(`div`,{className:`flex items-center gap-3`,children:[j(`div`,{className:`flex items-center justify-center w-12 h-12 rounded-xl bg-secondary`,children:j(Ce,{className:`w-6 h-6`})}),M(`div`,{children:[M(`div`,{className:`flex items-center gap-2`,children:[j(`h1`,{className:`text-xl font-bold`,children:n.name}),j(B,{variant:n.status===`active`?`success`:`secondary`,children:n.status===`active`?`运行中`:`已停止`})]}),j(`p`,{className:`text-sm text-muted-foreground`,children:n.description||`暂无描述`})]})]}),j(Rn,{pluginName:n.name,onSuccess:()=>{}}),j(rn,{}),n.features.length>0&&M(`div`,{className:`grid grid-cols-2 sm:grid-cols-3 md:grid-cols-6 gap-2`,children:[n.features.map(e=>j(I,{children:M(z,{className:`flex flex-col items-center gap-1 p-3`,children:[j(Bn(e.icon),{className:`w-4 h-4 text-muted-foreground`}),j(`span`,{className:`text-2xl font-bold`,children:e.count}),j(`span`,{className:`text-xs text-muted-foreground`,children:e.desc})]})},e.name)),n.contexts.length>0&&j(I,{children:M(z,{className:`flex flex-col items-center gap-1 p-3`,children:[j(ee,{className:`w-4 h-4 text-muted-foreground`}),j(`span`,{className:`text-2xl font-bold`,children:n.contexts.length}),j(`span`,{className:`text-xs text-muted-foreground`,children:`上下文`})]})})]}),M(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-3`,children:[n.features.map(e=>e.items.length===0?null:M(I,{children:[j(L,{className:`pb-2`,children:M(`div`,{className:`flex items-center gap-2`,children:[j(Bn(e.icon),{className:`w-4 h-4 text-muted-foreground`}),j(R,{className:`text-base`,children:e.desc}),j(B,{variant:`secondary`,children:e.count})]})}),j(z,{children:j(`div`,{className:`max-h-60 overflow-y-auto pr-1 space-y-2`,children:e.items.map((t,n)=>j(Hn,{featureName:e.name,item:t},n))})})]},e.name)),n.contexts.length>0&&M(I,{children:[j(L,{className:`pb-2`,children:M(`div`,{className:`flex items-center gap-2`,children:[j(ee,{className:`w-4 h-4 text-muted-foreground`}),j(R,{className:`text-base`,children:`上下文`}),j(B,{variant:`secondary`,children:n.contexts.length})]})}),j(z,{children:j(`div`,{className:`max-h-60 overflow-y-auto pr-1 space-y-2`,children:n.contexts.map((e,t)=>j(`div`,{className:`rounded-md bg-muted/50 p-2`,children:j(`code`,{className:`text-sm`,children:e.name})},t))})})]})]})]})}function Hn({featureName:e,item:t}){switch(e){case`command`:return M(`div`,{className:`rounded-md bg-muted/50 p-3 space-y-1`,children:[j(`code`,{className:`text-sm font-semibold`,children:t.name}),t.desc?.map((e,t)=>j(`p`,{className:`text-xs text-muted-foreground`,children:e},t)),t.usage&&t.usage.length>0&&M(`div`,{children:[j(`span`,{className:`text-xs font-semibold text-blue-600 dark:text-blue-400`,children:`用法:`}),t.usage.map((e,t)=>j(`code`,{className:`block text-xs bg-muted rounded px-1 py-0.5 mt-0.5`,children:e},t))]}),t.examples&&t.examples.length>0&&M(`div`,{children:[j(`span`,{className:`text-xs font-semibold text-emerald-600 dark:text-emerald-400`,children:`示例:`}),t.examples.map((e,t)=>j(`code`,{className:`block text-xs bg-muted rounded px-1 py-0.5 mt-0.5`,children:e},t))]})]});case`cron`:return M(`div`,{className:`flex justify-between items-center rounded-md bg-muted/50 p-2`,children:[j(`code`,{className:`text-sm`,children:t.expression}),j(B,{variant:t.running?`success`:`secondary`,children:t.running?`运行中`:`已停止`})]});case`tool`:return M(`div`,{className:`rounded-md bg-muted/50 p-3 space-y-1`,children:[j(`code`,{className:`text-sm font-semibold`,children:t.name}),t.desc&&j(`p`,{className:`text-xs text-muted-foreground`,children:t.desc}),t.platforms&&t.platforms.length>0&&j(`div`,{className:`flex gap-1 flex-wrap`,children:t.platforms.map((e,t)=>j(B,{variant:`outline`,className:`text-[10px]`,children:e},t))})]});case`skill`:return M(`div`,{className:`rounded-md bg-muted/50 p-3 space-y-1`,children:[j(`code`,{className:`text-sm font-semibold`,children:t.name}),t.desc&&j(`p`,{className:`text-xs text-muted-foreground`,children:t.desc}),t.toolCount!=null&&M(`span`,{className:`text-xs text-muted-foreground`,children:[`工具: `,t.toolCount]})]});case`config`:return M(`div`,{className:`flex justify-between items-center rounded-md bg-muted/50 p-2`,children:[j(`code`,{className:`text-sm`,children:t.name}),t.defaultValue!==void 0&&M(`span`,{className:`text-xs text-muted-foreground`,children:[`默认: `,JSON.stringify(t.defaultValue)]})]});case`permission`:return j(`div`,{className:`rounded-md bg-muted/50 p-2`,children:j(`code`,{className:`text-sm`,children:t.name})});case`database`:return j(`div`,{className:`rounded-md bg-muted/50 p-2`,children:j(`code`,{className:`text-sm`,children:t.name})});case`adapter`:return M(`div`,{className:`rounded-md bg-muted/50 p-3 space-y-1`,children:[M(`div`,{className:`flex items-center gap-2`,children:[j(Te,{className:`w-3.5 h-3.5 text-muted-foreground`}),j(`code`,{className:`text-sm font-semibold`,children:t.name})]}),M(`div`,{className:`flex gap-3 text-xs text-muted-foreground`,children:[M(`span`,{children:[`Bot: `,t.bots??0]}),M(`span`,{children:[`在线: `,t.online??0]}),t.tools>0&&M(`span`,{children:[`工具: `,t.tools]})]})]});case`service`:return M(`div`,{className:`rounded-md bg-muted/50 p-2 flex items-center gap-2`,children:[j(je,{className:`w-3.5 h-3.5 text-muted-foreground`}),j(`code`,{className:`text-sm`,children:t.name}),t.desc&&t.desc!==t.name&&M(`span`,{className:`text-xs text-muted-foreground`,children:[`- `,t.desc]})]});default:return j(`div`,{className:`rounded-md bg-muted/50 p-2`,children:j(`code`,{className:`text-sm`,children:t.name||JSON.stringify(t)})})}}function Un(){let[e,t]=s([]),[n,r]=s(!0),[a,o]=s(null);i(()=>{c();let e=setInterval(c,5e3);return()=>clearInterval(e)},[]);let c=async()=>{try{let e=await Yt(`/api/bots`);if(!e.ok)throw Error(`API 请求失败`);let n=await e.json();if(n.success)t(n.data),o(null);else throw Error(`数据格式错误`)}catch(e){o(e.message)}finally{r(!1)}};return n?M(`div`,{className:`space-y-6`,children:[j(U,{className:`h-8 w-48`}),j(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4`,children:[...[,,,]].map((e,t)=>j(U,{className:`h-48`},t))})]}):a?j(`div`,{className:`flex items-center justify-center h-full`,children:M(V,{variant:`destructive`,className:`max-w-md`,children:[j(u,{className:`h-4 w-4`}),M(H,{children:[`加载失败: `,a]})]})}):M(`div`,{className:`space-y-6`,children:[M(`div`,{children:[j(`h1`,{className:`text-2xl font-bold tracking-tight`,children:`机器人管理`}),M(`div`,{className:`flex items-center gap-2 mt-1`,children:[M(`span`,{className:`text-sm text-muted-foreground`,children:[`共 `,e.length,` 个机器人,`]}),j(B,{variant:`success`,children:e.filter(e=>e.connected).length}),j(`span`,{className:`text-sm text-muted-foreground`,children:`个在线`})]})]}),j(rn,{}),j(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4`,children:e.map((e,t)=>j(I,{children:M(z,{className:`p-5 space-y-4`,children:[M(`div`,{className:`flex justify-between items-center`,children:[M(`div`,{className:`flex items-center gap-2`,children:[j(`div`,{className:`p-2 rounded-md ${e.connected?`bg-emerald-100 dark:bg-emerald-900/30`:`bg-muted`}`,children:j(p,{className:`w-5 h-5 ${e.connected?`text-emerald-600 dark:text-emerald-400`:`text-muted-foreground`}`})}),j(`span`,{className:`text-lg font-bold`,children:e.name})]}),j(`div`,{className:`relative`,children:j(B,{variant:e.connected?`success`:`secondary`,children:e.connected?M(A,{children:[j(Be,{className:`w-3 h-3 mr-1`}),`在线`]}):M(A,{children:[j(Ve,{className:`w-3 h-3 mr-1`}),`离线`]})})})]}),M(`div`,{className:`flex items-center gap-2`,children:[j(`span`,{className:`text-sm text-muted-foreground`,children:`适配器:`}),j(B,{variant:`outline`,children:e.adapter})]}),j(rn,{}),M(`div`,{className:`space-y-2`,children:[M(`div`,{className:`flex justify-between items-center p-2 rounded-md bg-muted/50`,children:[M(`div`,{className:`flex items-center gap-2 text-sm`,children:[j(l,{className:`w-4 h-4 ${e.status===`online`?`text-emerald-500`:`text-muted-foreground`}`}),j(`span`,{className:`text-muted-foreground`,children:`运行状态`})]}),j(B,{variant:e.status===`online`?`success`:`secondary`,children:e.status===`online`?`运行中`:`已停止`})]}),M(`div`,{className:`flex justify-between items-center p-2 rounded-md bg-muted/50`,children:[M(`div`,{className:`flex items-center gap-2 text-sm`,children:[j(Ce,{className:`w-4 h-4 text-muted-foreground`}),j(`span`,{className:`text-muted-foreground`,children:`适配器类型`})]}),j(`span`,{className:`text-sm font-medium`,children:e.adapter})]}),M(`div`,{className:`flex justify-between items-center p-2 rounded-md bg-muted/50`,children:[M(`div`,{className:`flex items-center gap-2 text-sm`,children:[j(Ge,{className:`w-4 h-4 text-muted-foreground`}),j(`span`,{className:`text-muted-foreground`,children:`连接状态`})]}),j(`span`,{className:`text-sm font-medium ${e.connected?`text-emerald-600 dark:text-emerald-400`:`text-muted-foreground`}`,children:e.connected?`已连接`:`未连接`})]})]})]})},`${e.adapter}-${e.name}-${t}`))}),e.length===0&&j(I,{children:M(z,{className:`flex flex-col items-center gap-4 py-12`,children:[j(p,{className:`w-16 h-16 text-muted-foreground/30`}),M(`div`,{className:`text-center`,children:[j(`h3`,{className:`text-lg font-semibold`,children:`暂无机器人`}),j(`p`,{className:`text-sm text-muted-foreground`,children:`请先配置并启动机器人`})]})]})})]})}var Wn=e.forwardRef(({className:e,...t},n)=>j(ut.Root,{ref:n,className:k(`peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground`,e),...t,children:j(ut.Indicator,{className:k(`flex items-center justify-center text-current`),children:j(_,{className:`h-4 w-4`})})}));Wn.displayName=`Checkbox`;function Gn(){let[e,t]=s([]),[n,r]=s(null),[a,c]=s(!0),[l,f]=s(null),[p,m]=s(`all`),[h,g]=s(!0),_=o(null),[v,y]=s(0);i(()=>{b(),x();let e=setInterval(()=>{b(),x()},3e3);return()=>clearInterval(e)},[p]),i(()=>{h&&e.length>v&&_.current?.scrollIntoView({behavior:`smooth`}),y(e.length)},[e,h]);let b=async()=>{try{let e=await Yt(p===`all`?`/api/logs?limit=100`:`/api/logs?limit=100&level=${p}`);if(!e.ok)throw Error(`API 请求失败`);let n=await e.json();n.success&&Array.isArray(n.data)&&(t(n.data.reverse()),f(null))}catch(e){f(e.message)}finally{c(!1)}},x=async()=>{try{let e=await Yt(`/api/logs/stats`);if(!e.ok)return;let t=await e.json();t.success&&r(t.data)}catch(e){console.error(`Failed to fetch stats:`,e)}},S=async(e,t)=>{let n=e?`确定清理 ${e} 天前的日志吗?`:`确定只保留最近 ${t} 条日志吗?`;if(confirm(n))try{let n=await Yt(`/api/logs/cleanup`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({days:e,maxRecords:t})});if(!n.ok)throw Error(`清理失败`);let r=await n.json();r.success&&(alert(`成功清理 ${r.data.deletedCount} 条日志`),b(),x())}catch(e){alert(e.message)}},w=e=>{switch(e){case`info`:return{border:`border-l-blue-500`,badge:`default`,icon:j(ue,{className:`w-3 h-3`})};case`warn`:return{border:`border-l-amber-500`,badge:`warning`,icon:j(d,{className:`w-3 h-3`})};case`error`:return{border:`border-l-red-500`,badge:`destructive`,icon:j(We,{className:`w-3 h-3`})};default:return{border:`border-l-gray-500`,badge:`secondary`,icon:j(C,{className:`w-3 h-3`})}}};return a?M(`div`,{className:`space-y-4`,children:[j(U,{className:`h-8 w-48`}),j(`div`,{className:`grid grid-cols-2 sm:grid-cols-4 gap-3`,children:[...[,,,,]].map((e,t)=>j(U,{className:`h-20`},t))}),j(U,{className:`h-96`})]}):M(`div`,{className:`space-y-4`,children:[M(`div`,{children:[j(`h1`,{className:`text-2xl font-bold tracking-tight`,children:`系统日志`}),j(`p`,{className:`text-sm text-muted-foreground`,children:`实时查看系统运行日志`})]}),n&&M(`div`,{className:`grid grid-cols-2 sm:grid-cols-4 gap-3`,children:[j(I,{children:M(z,{className:`flex flex-col items-center gap-1 p-4`,children:[j(`span`,{className:`text-2xl font-bold`,children:n.total}),j(`span`,{className:`text-xs text-muted-foreground`,children:`总日志数`})]})}),j(I,{children:M(z,{className:`flex flex-col items-center gap-1 p-4`,children:[j(`span`,{className:`text-2xl font-bold text-blue-600 dark:text-blue-400`,children:n.byLevel.info||0}),j(`span`,{className:`text-xs text-muted-foreground`,children:`Info`})]})}),j(I,{children:M(z,{className:`flex flex-col items-center gap-1 p-4`,children:[j(`span`,{className:`text-2xl font-bold text-amber-600 dark:text-amber-400`,children:n.byLevel.warn||0}),j(`span`,{className:`text-xs text-muted-foreground`,children:`Warn`})]})}),j(I,{children:M(z,{className:`flex flex-col items-center gap-1 p-4`,children:[j(`span`,{className:`text-2xl font-bold text-red-600 dark:text-red-400`,children:n.byLevel.error||0}),j(`span`,{className:`text-xs text-muted-foreground`,children:`Error`})]})})]}),j(I,{children:M(z,{className:`flex justify-between items-center p-3 flex-wrap gap-3`,children:[M(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[M(ln,{value:p,onValueChange:m,children:[j(dn,{className:`w-32`,children:j(un,{placeholder:`所有级别`})}),M(mn,{children:[j(hn,{value:`all`,children:`所有级别`}),j(hn,{value:`info`,children:`Info`}),j(hn,{value:`warn`,children:`Warn`}),j(hn,{value:`error`,children:`Error`})]})]}),M(`div`,{className:`flex items-center gap-2`,children:[j(Wn,{id:`auto-scroll`,checked:h,onCheckedChange:e=>g(e)}),j(`label`,{htmlFor:`auto-scroll`,className:`text-sm cursor-pointer`,children:`自动滚动`})]})]}),M(`div`,{className:`flex gap-2`,children:[M(P,{variant:`outline`,size:`sm`,onClick:()=>S(7),children:[j(Re,{className:`w-3.5 h-3.5 mr-1`}),`清理7天前`]}),M(P,{variant:`outline`,size:`sm`,onClick:()=>S(void 0,5e3),children:[j(Re,{className:`w-3.5 h-3.5 mr-1`}),`保留5000条`]}),M(P,{variant:`outline`,size:`sm`,onClick:()=>b(),children:[j(Oe,{className:`w-3.5 h-3.5 mr-1`}),`刷新`]})]})]})}),j(I,{children:j(z,{className:`p-4`,children:M(`div`,{className:`max-h-[600px] overflow-y-auto rounded-md bg-muted/30 p-2 space-y-1.5`,children:[l?M(V,{variant:`destructive`,children:[j(u,{className:`h-4 w-4`}),M(H,{children:[`加载失败: `,l]})]}):e.length===0?M(`div`,{className:`flex flex-col items-center gap-3 py-12`,children:[j(ie,{className:`w-12 h-12 text-muted-foreground/30`}),j(`span`,{className:`text-sm text-muted-foreground`,children:`暂无日志`})]}):e.map((e,t)=>{let n=w(e.level);return M(`div`,{className:k(`p-3 rounded-md bg-background border-l-[3px]`,n.border),children:[M(`div`,{className:`flex items-center gap-2 mb-1`,children:[M(B,{variant:n.badge,className:`gap-1 text-[10px] px-1.5 py-0`,children:[n.icon,` `,e.level.toUpperCase()]}),j(`span`,{className:`text-[11px] text-muted-foreground`,children:new Date(e.timestamp).toLocaleString()}),e.source&&j(B,{variant:`outline`,className:`text-[10px] px-1.5 py-0`,children:e.source})]}),j(`p`,{className:`text-sm font-mono whitespace-pre-wrap break-words`,children:e.message})]},`${e.timestamp}-${t}`)}),j(`div`,{ref:_})]})})})]})}var Kn=Symbol.for(`yaml.alias`),qn=Symbol.for(`yaml.document`),Jn=Symbol.for(`yaml.map`),Yn=Symbol.for(`yaml.pair`),Xn=Symbol.for(`yaml.scalar`),Zn=Symbol.for(`yaml.seq`),G=Symbol.for(`yaml.node.type`),Qn=e=>!!e&&typeof e==`object`&&e[G]===Kn,$n=e=>!!e&&typeof e==`object`&&e[G]===qn,er=e=>!!e&&typeof e==`object`&&e[G]===Jn,K=e=>!!e&&typeof e==`object`&&e[G]===Yn,q=e=>!!e&&typeof e==`object`&&e[G]===Xn,tr=e=>!!e&&typeof e==`object`&&e[G]===Zn;function J(e){if(e&&typeof e==`object`)switch(e[G]){case Jn:case Zn:return!0}return!1}function Y(e){if(e&&typeof e==`object`)switch(e[G]){case Kn:case Jn:case Xn:case Zn:return!0}return!1}var nr=e=>(q(e)||J(e))&&!!e.anchor,X=Symbol(`break visit`),rr=Symbol(`skip children`),ir=Symbol(`remove node`);function ar(e,t){let n=lr(t);$n(e)?or(null,e.contents,n,Object.freeze([e]))===ir&&(e.contents=null):or(null,e,n,Object.freeze([]))}ar.BREAK=X,ar.SKIP=rr,ar.REMOVE=ir;function or(e,t,n,r){let i=ur(e,t,n,r);if(Y(i)||K(i))return dr(e,r,i),or(e,i,n,r);if(typeof i!=`symbol`){if(J(t)){r=Object.freeze(r.concat(t));for(let e=0;e<t.items.length;++e){let i=or(e,t.items[e],n,r);if(typeof i==`number`)e=i-1;else if(i===X)return X;else i===ir&&(t.items.splice(e,1),--e)}}else if(K(t)){r=Object.freeze(r.concat(t));let e=or(`key`,t.key,n,r);if(e===X)return X;e===ir&&(t.key=null);let i=or(`value`,t.value,n,r);if(i===X)return X;i===ir&&(t.value=null)}}return i}async function sr(e,t){let n=lr(t);$n(e)?await cr(null,e.contents,n,Object.freeze([e]))===ir&&(e.contents=null):await cr(null,e,n,Object.freeze([]))}sr.BREAK=X,sr.SKIP=rr,sr.REMOVE=ir;async function cr(e,t,n,r){let i=await ur(e,t,n,r);if(Y(i)||K(i))return dr(e,r,i),cr(e,i,n,r);if(typeof i!=`symbol`){if(J(t)){r=Object.freeze(r.concat(t));for(let e=0;e<t.items.length;++e){let i=await cr(e,t.items[e],n,r);if(typeof i==`number`)e=i-1;else if(i===X)return X;else i===ir&&(t.items.splice(e,1),--e)}}else if(K(t)){r=Object.freeze(r.concat(t));let e=await cr(`key`,t.key,n,r);if(e===X)return X;e===ir&&(t.key=null);let i=await cr(`value`,t.value,n,r);if(i===X)return X;i===ir&&(t.value=null)}}return i}function lr(e){return typeof e==`object`&&(e.Collection||e.Node||e.Value)?Object.assign({Alias:e.Node,Map:e.Node,Scalar:e.Node,Seq:e.Node},e.Value&&{Map:e.Value,Scalar:e.Value,Seq:e.Value},e.Collection&&{Map:e.Collection,Seq:e.Collection},e):e}function ur(e,t,n,r){if(typeof n==`function`)return n(e,t,r);if(er(t))return n.Map?.(e,t,r);if(tr(t))return n.Seq?.(e,t,r);if(K(t))return n.Pair?.(e,t,r);if(q(t))return n.Scalar?.(e,t,r);if(Qn(t))return n.Alias?.(e,t,r)}function dr(e,t,n){let r=t[t.length-1];if(J(r))r.items[e]=n;else if(K(r))e===`key`?r.key=n:r.value=n;else if($n(r))r.contents=n;else{let e=Qn(r)?`alias`:`scalar`;throw Error(`Cannot replace node with ${e} parent`)}}var fr={"!":`%21`,",":`%2C`,"[":`%5B`,"]":`%5D`,"{":`%7B`,"}":`%7D`},pr=e=>e.replace(/[!,[\]{}]/g,e=>fr[e]),mr=class e{constructor(t,n){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},e.defaultYaml,t),this.tags=Object.assign({},e.defaultTags,n)}clone(){let t=new e(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){let t=new e(this.yaml,this.tags);switch(this.yaml.version){case`1.1`:this.atNextDocument=!0;break;case`1.2`:this.atNextDocument=!1,this.yaml={explicit:e.defaultYaml.explicit,version:`1.2`},this.tags=Object.assign({},e.defaultTags);break}return t}add(t,n){this.atNextDocument&&=(this.yaml={explicit:e.defaultYaml.explicit,version:`1.1`},this.tags=Object.assign({},e.defaultTags),!1);let r=t.trim().split(/[ \t]+/),i=r.shift();switch(i){case`%TAG`:{if(r.length!==2&&(n(0,`%TAG directive should contain exactly two parts`),r.length<2))return!1;let[e,t]=r;return this.tags[e]=t,!0}case`%YAML`:{if(this.yaml.explicit=!0,r.length!==1)return n(0,`%YAML directive should contain exactly one part`),!1;let[e]=r;if(e===`1.1`||e===`1.2`)return this.yaml.version=e,!0;{let t=/^\d+\.\d+$/.test(e);return n(6,`Unsupported YAML version ${e}`,t),!1}}default:return n(0,`Unknown directive ${i}`,!0),!1}}tagName(e,t){if(e===`!`)return`!`;if(e[0]!==`!`)return t(`Not a valid tag: ${e}`),null;if(e[1]===`<`){let n=e.slice(2,-1);return n===`!`||n===`!!`?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==`>`&&t(`Verbatim tags must end with a >`),n)}let[,n,r]=e.match(/^(.*!)([^!]*)$/s);r||t(`The ${e} tag has no suffix`);let i=this.tags[n];if(i)try{return i+decodeURIComponent(r)}catch(e){return t(String(e)),null}return n===`!`?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,n]of Object.entries(this.tags))if(e.startsWith(n))return t+pr(e.substring(n.length));return e[0]===`!`?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||`1.2`}`]:[],n=Object.entries(this.tags),r;if(e&&n.length>0&&Y(e.contents)){let t={};ar(e.contents,(e,n)=>{Y(n)&&n.tag&&(t[n.tag]=!0)}),r=Object.keys(t)}else r=[];for(let[i,a]of n)i===`!!`&&a===`tag:yaml.org,2002:`||(!e||r.some(e=>e.startsWith(a)))&&t.push(`%TAG ${i} ${a}`);return t.join(`
|
|
6
|
-
`)}};mr.defaultYaml={explicit:!1,version:`1.2`},mr.defaultTags={"!!":`tag:yaml.org,2002:`};function hr(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw Error(t)}return!0}function gr(e){let t=new Set;return ar(e,{Value(e,n){n.anchor&&t.add(n.anchor)}}),t}function _r(e,t){for(let n=1;;++n){let r=`${e}${n}`;if(!t.has(r))return r}}function vr(e,t){let n=[],r=new Map,i=null;return{onAnchor:r=>{n.push(r),i??=gr(e);let a=_r(t,i);return i.add(a),a},setAnchors:()=>{for(let e of n){let t=r.get(e);if(typeof t==`object`&&t.anchor&&(q(t.node)||J(t.node)))t.node.anchor=t.anchor;else{let t=Error(`Failed to resolve repeated object (this should not happen)`);throw t.source=e,t}}},sourceObjects:r}}function yr(e,t,n,r){if(r&&typeof r==`object`)if(Array.isArray(r))for(let t=0,n=r.length;t<n;++t){let n=r[t],i=yr(e,r,String(t),n);i===void 0?delete r[t]:i!==n&&(r[t]=i)}else if(r instanceof Map)for(let t of Array.from(r.keys())){let n=r.get(t),i=yr(e,r,t,n);i===void 0?r.delete(t):i!==n&&r.set(t,i)}else if(r instanceof Set)for(let t of Array.from(r)){let n=yr(e,r,t,t);n===void 0?r.delete(t):n!==t&&(r.delete(t),r.add(n))}else for(let[t,n]of Object.entries(r)){let i=yr(e,r,t,n);i===void 0?delete r[t]:i!==n&&(r[t]=i)}return e.call(t,n,r)}function Z(e,t,n){if(Array.isArray(e))return e.map((e,t)=>Z(e,String(t),n));if(e&&typeof e.toJSON==`function`){if(!n||!nr(e))return e.toJSON(t,n);let r={aliasCount:0,count:1,res:void 0};n.anchors.set(e,r),n.onCreate=e=>{r.res=e,delete n.onCreate};let i=e.toJSON(t,n);return n.onCreate&&n.onCreate(i),i}return typeof e==`bigint`&&!n?.keep?Number(e):e}var br=class{constructor(e){Object.defineProperty(this,G,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:t,maxAliasCount:n,onAnchor:r,reviver:i}={}){if(!$n(e))throw TypeError(`A document argument is required`);let a={anchors:new Map,doc:e,keep:!0,mapAsMap:t===!0,mapKeyWarned:!1,maxAliasCount:typeof n==`number`?n:100},o=Z(this,``,a);if(typeof r==`function`)for(let{count:e,res:t}of a.anchors.values())r(t,e);return typeof i==`function`?yr(i,{"":o},``,o):o}},xr=class extends br{constructor(e){super(Kn),this.source=e,Object.defineProperty(this,`tag`,{set(){throw Error(`Alias nodes cannot have tags`)}})}resolve(e,t){let n;t?.aliasResolveCache?n=t.aliasResolveCache:(n=[],ar(e,{Node:(e,t)=>{(Qn(t)||nr(t))&&n.push(t)}}),t&&(t.aliasResolveCache=n));let r;for(let e of n){if(e===this)break;e.anchor===this.source&&(r=e)}return r}toJSON(e,t){if(!t)return{source:this.source};let{anchors:n,doc:r,maxAliasCount:i}=t,a=this.resolve(r,t);if(!a){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw ReferenceError(e)}let o=n.get(a);if(o||=(Z(a,null,t),n.get(a)),o?.res===void 0)throw ReferenceError(`This should not happen: Alias anchor was not resolved?`);if(i>=0&&(o.count+=1,o.aliasCount===0&&(o.aliasCount=Sr(r,a,n)),o.count*o.aliasCount>i))throw ReferenceError(`Excessive alias count indicates a resource exhaustion attack`);return o.res}toString(e,t,n){let r=`*${this.source}`;if(e){if(hr(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw Error(e)}if(e.implicitKey)return`${r} `}return r}};function Sr(e,t,n){if(Qn(t)){let r=t.resolve(e),i=n&&r&&n.get(r);return i?i.count*i.aliasCount:0}else if(J(t)){let r=0;for(let i of t.items){let t=Sr(e,i,n);t>r&&(r=t)}return r}else if(K(t)){let r=Sr(e,t.key,n),i=Sr(e,t.value,n);return Math.max(r,i)}return 1}var Cr=e=>!e||typeof e!=`function`&&typeof e!=`object`,Q=class extends br{constructor(e){super(Xn),this.value=e}toJSON(e,t){return t?.keep?this.value:Z(this.value,e,t)}toString(){return String(this.value)}};Q.BLOCK_FOLDED=`BLOCK_FOLDED`,Q.BLOCK_LITERAL=`BLOCK_LITERAL`,Q.PLAIN=`PLAIN`,Q.QUOTE_DOUBLE=`QUOTE_DOUBLE`,Q.QUOTE_SINGLE=`QUOTE_SINGLE`;var wr=`tag:yaml.org,2002:`;function Tr(e,t,n){if(t){let e=n.filter(e=>e.tag===t),r=e.find(e=>!e.format)??e[0];if(!r)throw Error(`Tag ${t} not found`);return r}return n.find(t=>t.identify?.(e)&&!t.format)}function Er(e,t,n){if($n(e)&&(e=e.contents),Y(e))return e;if(K(e)){let t=n.schema[Jn].createNode?.(n.schema,null,n);return t.items.push(e),t}(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt<`u`&&e instanceof BigInt)&&(e=e.valueOf());let{aliasDuplicateObjects:r,onAnchor:i,onTagObj:a,schema:o,sourceObjects:s}=n,c;if(r&&e&&typeof e==`object`){if(c=s.get(e),c)return c.anchor??=i(e),new xr(c.anchor);c={anchor:null,node:null},s.set(e,c)}t?.startsWith(`!!`)&&(t=wr+t.slice(2));let l=Tr(e,t,o.tags);if(!l){if(e&&typeof e.toJSON==`function`&&(e=e.toJSON()),!e||typeof e!=`object`){let t=new Q(e);return c&&(c.node=t),t}l=e instanceof Map?o[Jn]:Symbol.iterator in Object(e)?o[Zn]:o[Jn]}a&&(a(l),delete n.onTagObj);let u=l?.createNode?l.createNode(n.schema,e,n):typeof l?.nodeClass?.from==`function`?l.nodeClass.from(n.schema,e,n):new Q(e);return t?u.tag=t:l.default||(u.tag=l.tag),c&&(c.node=u),u}function Dr(e,t,n){let r=n;for(let e=t.length-1;e>=0;--e){let n=t[e];if(typeof n==`number`&&Number.isInteger(n)&&n>=0){let e=[];e[n]=r,r=e}else r=new Map([[n,r]])}return Er(r,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw Error(`This should not happen, please report a bug.`)},schema:e,sourceObjects:new Map})}var Or=e=>e==null||typeof e==`object`&&!!e[Symbol.iterator]().next().done,kr=class extends br{constructor(e,t){super(e),Object.defineProperty(this,`schema`,{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(t=>Y(t)||K(t)?t.clone(e):t),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(Or(e))this.add(t);else{let[n,...r]=e,i=this.get(n,!0);if(J(i))i.addIn(r,t);else if(i===void 0&&this.schema)this.set(n,Dr(this.schema,r,t));else throw Error(`Expected YAML collection at ${n}. Remaining path: ${r}`)}}deleteIn(e){let[t,...n]=e;if(n.length===0)return this.delete(t);let r=this.get(t,!0);if(J(r))return r.deleteIn(n);throw Error(`Expected YAML collection at ${t}. Remaining path: ${n}`)}getIn(e,t){let[n,...r]=e,i=this.get(n,!0);return r.length===0?!t&&q(i)?i.value:i:J(i)?i.getIn(r,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!K(t))return!1;let n=t.value;return n==null||e&&q(n)&&n.value==null&&!n.commentBefore&&!n.comment&&!n.tag})}hasIn(e){let[t,...n]=e;if(n.length===0)return this.has(t);let r=this.get(t,!0);return J(r)?r.hasIn(n):!1}setIn(e,t){let[n,...r]=e;if(r.length===0)this.set(n,t);else{let e=this.get(n,!0);if(J(e))e.setIn(r,t);else if(e===void 0&&this.schema)this.set(n,Dr(this.schema,r,t));else throw Error(`Expected YAML collection at ${n}. Remaining path: ${r}`)}}},Ar=e=>e.replace(/^(?!$)(?: $)?/gm,`#`);function jr(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}var Mr=(e,t,n)=>e.endsWith(`
|
|
7
|
-
`)?jr(n,t):n.includes(`
|
|
8
|
-
`)?`
|
|
9
|
-
`+jr(n,t):(e.endsWith(` `)?``:` `)+n,Nr=`flow`,Pr=`block`,Fr=`quoted`;function Ir(e,t,n=`flow`,{indentAtStart:r,lineWidth:i=80,minContentWidth:a=20,onFold:o,onOverflow:s}={}){if(!i||i<0)return e;i<a&&(a=0);let c=Math.max(1+a,1+i-t.length);if(e.length<=c)return e;let l=[],u={},d=i-t.length;typeof r==`number`&&(r>i-Math.max(2,a)?l.push(0):d=i-r);let f,p,m=!1,h=-1,g=-1,_=-1;n===`block`&&(h=Lr(e,h,t.length),h!==-1&&(d=h+c));for(let r;r=e[h+=1];){if(n===`quoted`&&r===`\\`){switch(g=h,e[h+1]){case`x`:h+=3;break;case`u`:h+=5;break;case`U`:h+=9;break;default:h+=1}_=h}if(r===`
|
|
10
|
-
`)n===`block`&&(h=Lr(e,h,t.length)),d=h+t.length+c,f=void 0;else{if(r===` `&&p&&p!==` `&&p!==`
|
|
11
|
-
`&&p!==` `){let t=e[h+1];t&&t!==` `&&t!==`
|
|
12
|
-
`&&t!==` `&&(f=h)}if(h>=d)if(f)l.push(f),d=f+c,f=void 0;else if(n===`quoted`){for(;p===` `||p===` `;)p=r,r=e[h+=1],m=!0;let t=h>_+1?h-2:g-1;if(u[t])return e;l.push(t),u[t]=!0,d=t+c,f=void 0}else m=!0}p=r}if(m&&s&&s(),l.length===0)return e;o&&o();let v=e.slice(0,l[0]);for(let r=0;r<l.length;++r){let i=l[r],a=l[r+1]||e.length;i===0?v=`\n${t}${e.slice(0,a)}`:(n===`quoted`&&u[i]&&(v+=`${e[i]}\\`),v+=`\n${t}${e.slice(i+1,a)}`)}return v}function Lr(e,t,n){let r=t,i=t+1,a=e[i];for(;a===` `||a===` `;)if(t<i+n)a=e[++t];else{do a=e[++t];while(a&&a!==`
|
|
13
|
-
`);r=t,i=t+1,a=e[i]}return r}var Rr=(e,t)=>({indentAtStart:t?e.indent.length:e.indentAtStart,lineWidth:e.options.lineWidth,minContentWidth:e.options.minContentWidth}),zr=e=>/^(%|---|\.\.\.)/m.test(e);function Br(e,t,n){if(!t||t<0)return!1;let r=t-n,i=e.length;if(i<=r)return!1;for(let t=0,n=0;t<i;++t)if(e[t]===`
|
|
14
|
-
`){if(t-n>r)return!0;if(n=t+1,i-n<=r)return!1}return!0}function Vr(e,t){let n=JSON.stringify(e);if(t.options.doubleQuotedAsJSON)return n;let{implicitKey:r}=t,i=t.options.doubleQuotedMinMultiLineLength,a=t.indent||(zr(e)?` `:``),o=``,s=0;for(let e=0,t=n[e];t;t=n[++e])if(t===` `&&n[e+1]===`\\`&&n[e+2]===`n`&&(o+=n.slice(s,e)+`\\ `,e+=1,s=e,t=`\\`),t===`\\`)switch(n[e+1]){case`u`:{o+=n.slice(s,e);let t=n.substr(e+2,4);switch(t){case`0000`:o+=`\\0`;break;case`0007`:o+=`\\a`;break;case`000b`:o+=`\\v`;break;case`001b`:o+=`\\e`;break;case`0085`:o+=`\\N`;break;case`00a0`:o+=`\\_`;break;case`2028`:o+=`\\L`;break;case`2029`:o+=`\\P`;break;default:t.substr(0,2)===`00`?o+=`\\x`+t.substr(2):o+=n.substr(e,6)}e+=5,s=e+1}break;case`n`:if(r||n[e+2]===`"`||n.length<i)e+=1;else{for(o+=n.slice(s,e)+`
|
|
15
|
-
|
|
16
|
-
`;n[e+2]===`\\`&&n[e+3]===`n`&&n[e+4]!==`"`;)o+=`
|
|
17
|
-
`,e+=2;o+=a,n[e+2]===` `&&(o+=`\\`),e+=1,s=e+1}break;default:e+=1}return o=s?o+n.slice(s):n,r?o:Ir(o,a,Fr,Rr(t,!1))}function Hr(e,t){if(t.options.singleQuote===!1||t.implicitKey&&e.includes(`
|
|
18
|
-
`)||/[ \t]\n|\n[ \t]/.test(e))return Vr(e,t);let n=t.indent||(zr(e)?` `:``),r=`'`+e.replace(/'/g,`''`).replace(/\n+/g,`$&\n${n}`)+`'`;return t.implicitKey?r:Ir(r,n,Nr,Rr(t,!1))}function Ur(e,t){let{singleQuote:n}=t.options,r;if(n===!1)r=Vr;else{let t=e.includes(`"`),i=e.includes(`'`);r=t&&!i?Hr:i&&!t?Vr:n?Hr:Vr}return r(e,t)}var Wr;try{Wr=RegExp(`(^|(?<!
|
|
19
|
-
))
|
|
20
|
-
+(?!
|
|
21
|
-
|$)`,`g`)}catch{Wr=/\n+(?!\n|$)/g}function Gr({comment:e,type:t,value:n},r,i,a){let{blockQuote:o,commentString:s,lineWidth:c}=r.options;if(!o||/\n[\t ]+$/.test(n))return Ur(n,r);let l=r.indent||(r.forceBlockIndent||zr(n)?` `:``),u=o===`literal`?!0:o===`folded`||t===Q.BLOCK_FOLDED?!1:t===Q.BLOCK_LITERAL?!0:!Br(n,c,l.length);if(!n)return u?`|
|
|
22
|
-
`:`>
|
|
23
|
-
`;let d,f;for(f=n.length;f>0;--f){let e=n[f-1];if(e!==`
|
|
24
|
-
`&&e!==` `&&e!==` `)break}let p=n.substring(f),m=p.indexOf(`
|
|
25
|
-
`);m===-1?d=`-`:n===p||m!==p.length-1?(d=`+`,a&&a()):d=``,p&&=(n=n.slice(0,-p.length),p[p.length-1]===`
|
|
26
|
-
`&&(p=p.slice(0,-1)),p.replace(Wr,`$&${l}`));let h=!1,g,_=-1;for(g=0;g<n.length;++g){let e=n[g];if(e===` `)h=!0;else if(e===`
|
|
27
|
-
`)_=g;else break}let v=n.substring(0,_<g?_+1:g);v&&=(n=n.substring(v.length),v.replace(/\n+/g,`$&${l}`));let y=(h?l?`2`:`1`:``)+d;if(e&&(y+=` `+s(e.replace(/ ?[\r\n]+/g,` `)),i&&i()),!u){let e=n.replace(/\n+/g,`
|
|
28
|
-
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,`$1$2`).replace(/\n+/g,`$&${l}`),i=!1,a=Rr(r,!0);o!==`folded`&&t!==Q.BLOCK_FOLDED&&(a.onOverflow=()=>{i=!0});let s=Ir(`${v}${e}${p}`,l,Pr,a);if(!i)return`>${y}\n${l}${s}`}return n=n.replace(/\n+/g,`$&${l}`),`|${y}\n${l}${v}${n}${p}`}function Kr(e,t,n,r){let{type:i,value:a}=e,{actualString:o,implicitKey:s,indent:c,indentStep:l,inFlow:u}=t;if(s&&a.includes(`
|
|
29
|
-
`)||u&&/[[\]{},]/.test(a))return Ur(a,t);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(a))return s||u||!a.includes(`
|
|
30
|
-
`)?Ur(a,t):Gr(e,t,n,r);if(!s&&!u&&i!==Q.PLAIN&&a.includes(`
|
|
31
|
-
`))return Gr(e,t,n,r);if(zr(a)){if(c===``)return t.forceBlockIndent=!0,Gr(e,t,n,r);if(s&&c===l)return Ur(a,t)}let d=a.replace(/\n+/g,`$&\n${c}`);if(o){let e=e=>e.default&&e.tag!==`tag:yaml.org,2002:str`&&e.test?.test(d),{compat:n,tags:r}=t.doc.schema;if(r.some(e)||n?.some(e))return Ur(a,t)}return s?d:Ir(d,c,Nr,Rr(t,!1))}function qr(e,t,n,r){let{implicitKey:i,inFlow:a}=t,o=typeof e.value==`string`?e:Object.assign({},e,{value:String(e.value)}),{type:s}=e;s!==Q.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(s=Q.QUOTE_DOUBLE);let c=e=>{switch(e){case Q.BLOCK_FOLDED:case Q.BLOCK_LITERAL:return i||a?Ur(o.value,t):Gr(o,t,n,r);case Q.QUOTE_DOUBLE:return Vr(o.value,t);case Q.QUOTE_SINGLE:return Hr(o.value,t);case Q.PLAIN:return Kr(o,t,n,r);default:return null}},l=c(s);if(l===null){let{defaultKeyType:e,defaultStringType:n}=t.options,r=i&&e||n;if(l=c(r),l===null)throw Error(`Unsupported default string type ${r}`)}return l}function Jr(e,t){let n=Object.assign({blockQuote:!0,commentString:Ar,defaultKeyType:null,defaultStringType:`PLAIN`,directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:`false`,flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:`null`,simpleKeys:!1,singleQuote:null,trueStr:`true`,verifyAliasOrder:!0},e.schema.toStringOptions,t),r;switch(n.collectionStyle){case`block`:r=!1;break;case`flow`:r=!0;break;default:r=null}return{anchors:new Set,doc:e,flowCollectionPadding:n.flowCollectionPadding?` `:``,indent:``,indentStep:typeof n.indent==`number`?` `.repeat(n.indent):` `,inFlow:r,options:n}}function Yr(e,t){if(t.tag){let n=e.filter(e=>e.tag===t.tag);if(n.length>0)return n.find(e=>e.format===t.format)??n[0]}let n,r;if(q(t)){r=t.value;let i=e.filter(e=>e.identify?.(r));if(i.length>1){let e=i.filter(e=>e.test);e.length>0&&(i=e)}n=i.find(e=>e.format===t.format)??i.find(e=>!e.format)}else r=t,n=e.find(e=>e.nodeClass&&r instanceof e.nodeClass);if(!n){let e=r?.constructor?.name??(r===null?`null`:typeof r);throw Error(`Tag not resolved for ${e} value`)}return n}function Xr(e,t,{anchors:n,doc:r}){if(!r.directives)return``;let i=[],a=(q(e)||J(e))&&e.anchor;a&&hr(a)&&(n.add(a),i.push(`&${a}`));let o=e.tag??(t.default?null:t.tag);return o&&i.push(r.directives.tagString(o)),i.join(` `)}function Zr(e,t,n,r){if(K(e))return e.toString(t,n,r);if(Qn(e)){if(t.doc.directives)return e.toString(t);if(t.resolvedAliases?.has(e))throw TypeError(`Cannot stringify circular structure without alias nodes`);t.resolvedAliases?t.resolvedAliases.add(e):t.resolvedAliases=new Set([e]),e=e.resolve(t.doc)}let i,a=Y(e)?e:t.doc.createNode(e,{onTagObj:e=>i=e});i??=Yr(t.doc.schema.tags,a);let o=Xr(a,i,t);o.length>0&&(t.indentAtStart=(t.indentAtStart??0)+o.length+1);let s=typeof i.stringify==`function`?i.stringify(a,t,n,r):q(a)?qr(a,t,n,r):a.toString(t,n,r);return o?q(a)||s[0]===`{`||s[0]===`[`?`${o} ${s}`:`${o}\n${t.indent}${s}`:s}function Qr({key:e,value:t},n,r,i){let{allNullValues:a,doc:o,indent:s,indentStep:c,options:{commentString:l,indentSeq:u,simpleKeys:d}}=n,f=Y(e)&&e.comment||null;if(d){if(f)throw Error(`With simple keys, key nodes cannot have comments`);if(J(e)||!Y(e)&&typeof e==`object`)throw Error(`With simple keys, collection cannot be used as a key value`)}let p=!d&&(!e||f&&t==null&&!n.inFlow||J(e)||(q(e)?e.type===Q.BLOCK_FOLDED||e.type===Q.BLOCK_LITERAL:typeof e==`object`));n=Object.assign({},n,{allNullValues:!1,implicitKey:!p&&(d||!a),indent:s+c});let m=!1,h=!1,g=Zr(e,n,()=>m=!0,()=>h=!0);if(!p&&!n.inFlow&&g.length>1024){if(d)throw Error(`With simple keys, single line scalar must not span more than 1024 characters`);p=!0}if(n.inFlow){if(a||t==null)return m&&r&&r(),g===``?`?`:p?`? ${g}`:g}else if(a&&!d||t==null&&p)return g=`? ${g}`,f&&!m?g+=Mr(g,n.indent,l(f)):h&&i&&i(),g;m&&(f=null),p?(f&&(g+=Mr(g,n.indent,l(f))),g=`? ${g}\n${s}:`):(g=`${g}:`,f&&(g+=Mr(g,n.indent,l(f))));let _,v,y;Y(t)?(_=!!t.spaceBefore,v=t.commentBefore,y=t.comment):(_=!1,v=null,y=null,t&&typeof t==`object`&&(t=o.createNode(t))),n.implicitKey=!1,!p&&!f&&q(t)&&(n.indentAtStart=g.length+1),h=!1,!u&&c.length>=2&&!n.inFlow&&!p&&tr(t)&&!t.flow&&!t.tag&&!t.anchor&&(n.indent=n.indent.substring(2));let b=!1,x=Zr(t,n,()=>b=!0,()=>h=!0),S=` `;if(f||_||v){if(S=_?`
|
|
32
|
-
`:``,v){let e=l(v);S+=`\n${jr(e,n.indent)}`}x===``&&!n.inFlow?S===`
|
|
33
|
-
`&&y&&(S=`
|
|
34
|
-
|
|
35
|
-
`):S+=`\n${n.indent}`}else if(!p&&J(t)){let e=x[0],r=x.indexOf(`
|
|
36
|
-
`),i=r!==-1,a=n.inFlow??t.flow??t.items.length===0;if(i||!a){let t=!1;if(i&&(e===`&`||e===`!`)){let n=x.indexOf(` `);e===`&`&&n!==-1&&n<r&&x[n+1]===`!`&&(n=x.indexOf(` `,n+1)),(n===-1||r<n)&&(t=!0)}t||(S=`\n${n.indent}`)}}else (x===``||x[0]===`
|
|
37
|
-
`)&&(S=``);return g+=S+x,n.inFlow?b&&r&&r():y&&!b?g+=Mr(g,n.indent,l(y)):h&&i&&i(),g}function $r(e,t){(e===`debug`||e===`warn`)&&console.warn(t)}var ei=`<<`,ti={identify:e=>e===ei||typeof e==`symbol`&&e.description===ei,default:`key`,tag:`tag:yaml.org,2002:merge`,test:/^<<$/,resolve:()=>Object.assign(new Q(Symbol(ei)),{addToJSMap:ri}),stringify:()=>ei},ni=(e,t)=>(ti.identify(t)||q(t)&&(!t.type||t.type===Q.PLAIN)&&ti.identify(t.value))&&e?.doc.schema.tags.some(e=>e.tag===ti.tag&&e.default);function ri(e,t,n){if(n=e&&Qn(n)?n.resolve(e.doc):n,tr(n))for(let r of n.items)ii(e,t,r);else if(Array.isArray(n))for(let r of n)ii(e,t,r);else ii(e,t,n)}function ii(e,t,n){let r=e&&Qn(n)?n.resolve(e.doc):n;if(!er(r))throw Error(`Merge sources must be maps or map aliases`);let i=r.toJSON(null,e,Map);for(let[e,n]of i)t instanceof Map?t.has(e)||t.set(e,n):t instanceof Set?t.add(e):Object.prototype.hasOwnProperty.call(t,e)||Object.defineProperty(t,e,{value:n,writable:!0,enumerable:!0,configurable:!0});return t}function ai(e,t,{key:n,value:r}){if(Y(n)&&n.addToJSMap)n.addToJSMap(e,t,r);else if(ni(e,n))ri(e,t,r);else{let i=Z(n,``,e);if(t instanceof Map)t.set(i,Z(r,i,e));else if(t instanceof Set)t.add(i);else{let a=oi(n,i,e),o=Z(r,a,e);a in t?Object.defineProperty(t,a,{value:o,writable:!0,enumerable:!0,configurable:!0}):t[a]=o}}return t}function oi(e,t,n){if(t===null)return``;if(typeof t!=`object`)return String(t);if(Y(e)&&n?.doc){let t=Jr(n.doc,{});t.anchors=new Set;for(let e of n.anchors.keys())t.anchors.add(e.anchor);t.inFlow=!0,t.inStringifyKey=!0;let r=e.toString(t);if(!n.mapKeyWarned){let e=JSON.stringify(r);e.length>40&&(e=e.substring(0,36)+`..."`),$r(n.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${e}. Set mapAsMap: true to use object keys.`),n.mapKeyWarned=!0}return r}return JSON.stringify(t)}function si(e,t,n){return new $(Er(e,void 0,n),Er(t,void 0,n))}var $=class e{constructor(e,t=null){Object.defineProperty(this,G,{value:Yn}),this.key=e,this.value=t}clone(t){let{key:n,value:r}=this;return Y(n)&&(n=n.clone(t)),Y(r)&&(r=r.clone(t)),new e(n,r)}toJSON(e,t){return ai(t,t?.mapAsMap?new Map:{},this)}toString(e,t,n){return e?.doc?Qr(this,e,t,n):JSON.stringify(this)}};function ci(e,t,n){return(t.inFlow??e.flow?ui:li)(e,t,n)}function li({comment:e,items:t},n,{blockItemPrefix:r,flowChars:i,itemIndent:a,onChompKeep:o,onComment:s}){let{indent:c,options:{commentString:l}}=n,u=Object.assign({},n,{indent:a,type:null}),d=!1,f=[];for(let e=0;e<t.length;++e){let i=t[e],o=null;if(Y(i))!d&&i.spaceBefore&&f.push(``),di(n,f,i.commentBefore,d),i.comment&&(o=i.comment);else if(K(i)){let e=Y(i.key)?i.key:null;e&&(!d&&e.spaceBefore&&f.push(``),di(n,f,e.commentBefore,d))}d=!1;let s=Zr(i,u,()=>o=null,()=>d=!0);o&&(s+=Mr(s,a,l(o))),d&&o&&(d=!1),f.push(r+s)}let p;if(f.length===0)p=i.start+i.end;else{p=f[0];for(let e=1;e<f.length;++e){let t=f[e];p+=t?`\n${c}${t}`:`
|
|
38
|
-
`}}return e?(p+=`
|
|
39
|
-
`+jr(l(e),c),s&&s()):d&&o&&o(),p}function ui({items:e},t,{flowChars:n,itemIndent:r}){let{indent:i,indentStep:a,flowCollectionPadding:o,options:{commentString:s}}=t;r+=a;let c=Object.assign({},t,{indent:r,inFlow:!0,type:null}),l=!1,u=0,d=[];for(let n=0;n<e.length;++n){let i=e[n],a=null;if(Y(i))i.spaceBefore&&d.push(``),di(t,d,i.commentBefore,!1),i.comment&&(a=i.comment);else if(K(i)){let e=Y(i.key)?i.key:null;e&&(e.spaceBefore&&d.push(``),di(t,d,e.commentBefore,!1),e.comment&&(l=!0));let n=Y(i.value)?i.value:null;n?(n.comment&&(a=n.comment),n.commentBefore&&(l=!0)):i.value==null&&e?.comment&&(a=e.comment)}a&&(l=!0);let o=Zr(i,c,()=>a=null);n<e.length-1&&(o+=`,`),a&&(o+=Mr(o,r,s(a))),!l&&(d.length>u||o.includes(`
|
|
40
|
-
`))&&(l=!0),d.push(o),u=d.length}let{start:f,end:p}=n;if(d.length===0)return f+p;if(!l){let e=d.reduce((e,t)=>e+t.length+2,2);l=t.options.lineWidth>0&&e>t.options.lineWidth}if(l){let e=f;for(let t of d)e+=t?`\n${a}${i}${t}`:`
|
|
41
|
-
`;return`${e}\n${i}${p}`}else return`${f}${o}${d.join(` `)}${o}${p}`}function di({indent:e,options:{commentString:t}},n,r,i){if(r&&i&&(r=r.replace(/^\n+/,``)),r){let i=jr(t(r),e);n.push(i.trimStart())}}function fi(e,t){let n=q(t)?t.value:t;for(let r of e)if(K(r)&&(r.key===t||r.key===n||q(r.key)&&r.key.value===n))return r}var pi=class extends kr{static get tagName(){return`tag:yaml.org,2002:map`}constructor(e){super(Jn,e),this.items=[]}static from(e,t,n){let{keepUndefined:r,replacer:i}=n,a=new this(e),o=(e,o)=>{if(typeof i==`function`)o=i.call(t,e,o);else if(Array.isArray(i)&&!i.includes(e))return;(o!==void 0||r)&&a.items.push(si(e,o,n))};if(t instanceof Map)for(let[e,n]of t)o(e,n);else if(t&&typeof t==`object`)for(let e of Object.keys(t))o(e,t[e]);return typeof e.sortMapEntries==`function`&&a.items.sort(e.sortMapEntries),a}add(e,t){let n;n=K(e)?e:!e||typeof e!=`object`||!(`key`in e)?new $(e,e?.value):new $(e.key,e.value);let r=fi(this.items,n.key),i=this.schema?.sortMapEntries;if(r){if(!t)throw Error(`Key ${n.key} already set`);q(r.value)&&Cr(n.value)?r.value.value=n.value:r.value=n.value}else if(i){let e=this.items.findIndex(e=>i(n,e)<0);e===-1?this.items.push(n):this.items.splice(e,0,n)}else this.items.push(n)}delete(e){let t=fi(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){let n=fi(this.items,e)?.value;return(!t&&q(n)?n.value:n)??void 0}has(e){return!!fi(this.items,e)}set(e,t){this.add(new $(e,t),!0)}toJSON(e,t,n){let r=n?new n:t?.mapAsMap?new Map:{};t?.onCreate&&t.onCreate(r);for(let e of this.items)ai(t,r,e);return r}toString(e,t,n){if(!e)return JSON.stringify(this);for(let e of this.items)if(!K(e))throw Error(`Map items must all be pairs; found ${JSON.stringify(e)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),ci(this,e,{blockItemPrefix:``,flowChars:{start:`{`,end:`}`},itemIndent:e.indent||``,onChompKeep:n,onComment:t})}},mi={collection:`map`,default:!0,nodeClass:pi,tag:`tag:yaml.org,2002:map`,resolve(e,t){return er(e)||t(`Expected a mapping for this tag`),e},createNode:(e,t,n)=>pi.from(e,t,n)},hi=class extends kr{static get tagName(){return`tag:yaml.org,2002:seq`}constructor(e){super(Zn,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=gi(e);return typeof t==`number`?this.items.splice(t,1).length>0:!1}get(e,t){let n=gi(e);if(typeof n!=`number`)return;let r=this.items[n];return!t&&q(r)?r.value:r}has(e){let t=gi(e);return typeof t==`number`&&t<this.items.length}set(e,t){let n=gi(e);if(typeof n!=`number`)throw Error(`Expected a valid index, not ${e}.`);let r=this.items[n];q(r)&&Cr(t)?r.value=t:this.items[n]=t}toJSON(e,t){let n=[];t?.onCreate&&t.onCreate(n);let r=0;for(let e of this.items)n.push(Z(e,String(r++),t));return n}toString(e,t,n){return e?ci(this,e,{blockItemPrefix:`- `,flowChars:{start:`[`,end:`]`},itemIndent:(e.indent||``)+` `,onChompKeep:n,onComment:t}):JSON.stringify(this)}static from(e,t,n){let{replacer:r}=n,i=new this(e);if(t&&Symbol.iterator in Object(t)){let e=0;for(let a of t){if(typeof r==`function`){let n=t instanceof Set?a:String(e++);a=r.call(t,n,a)}i.items.push(Er(a,void 0,n))}}return i}};function gi(e){let t=q(e)?e.value:e;return t&&typeof t==`string`&&(t=Number(t)),typeof t==`number`&&Number.isInteger(t)&&t>=0?t:null}var _i={collection:`seq`,default:!0,nodeClass:hi,tag:`tag:yaml.org,2002:seq`,resolve(e,t){return tr(e)||t(`Expected a sequence for this tag`),e},createNode:(e,t,n)=>hi.from(e,t,n)},vi={identify:e=>typeof e==`string`,default:!0,tag:`tag:yaml.org,2002:str`,resolve:e=>e,stringify(e,t,n,r){return t=Object.assign({actualString:!0},t),qr(e,t,n,r)}},yi={identify:e=>e==null,createNode:()=>new Q(null),default:!0,tag:`tag:yaml.org,2002:null`,test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new Q(null),stringify:({source:e},t)=>typeof e==`string`&&yi.test.test(e)?e:t.options.nullStr},bi={identify:e=>typeof e==`boolean`,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new Q(e[0]===`t`||e[0]===`T`),stringify({source:e,value:t},n){return e&&bi.test.test(e)&&t===(e[0]===`t`||e[0]===`T`)?e:t?n.options.trueStr:n.options.falseStr}};function xi({format:e,minFractionDigits:t,tag:n,value:r}){if(typeof r==`bigint`)return String(r);let i=typeof r==`number`?r:Number(r);if(!isFinite(i))return isNaN(i)?`.nan`:i<0?`-.inf`:`.inf`;let a=Object.is(r,-0)?`-0`:JSON.stringify(r);if(!e&&t&&(!n||n===`tag:yaml.org,2002:float`)&&/^\d/.test(a)){let e=a.indexOf(`.`);e<0&&(e=a.length,a+=`.`);let n=t-(a.length-e-1);for(;n-- >0;)a+=`0`}return a}var Si={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()===`nan`?NaN:e[0]===`-`?-1/0:1/0,stringify:xi},Ci={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`EXP`,test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e),stringify(e){let t=Number(e.value);return isFinite(t)?t.toExponential():xi(e)}},wi={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(e){let t=new Q(parseFloat(e)),n=e.indexOf(`.`);return n!==-1&&e[e.length-1]===`0`&&(t.minFractionDigits=e.length-n-1),t},stringify:xi},Ti=e=>typeof e==`bigint`||Number.isInteger(e),Ei=(e,t,n,{intAsBigInt:r})=>r?BigInt(e):parseInt(e.substring(t),n);function Di(e,t,n){let{value:r}=e;return Ti(r)&&r>=0?n+r.toString(t):xi(e)}var Oi={identify:e=>Ti(e)&&e>=0,default:!0,tag:`tag:yaml.org,2002:int`,format:`OCT`,test:/^0o[0-7]+$/,resolve:(e,t,n)=>Ei(e,2,8,n),stringify:e=>Di(e,8,`0o`)},ki={identify:Ti,default:!0,tag:`tag:yaml.org,2002:int`,test:/^[-+]?[0-9]+$/,resolve:(e,t,n)=>Ei(e,0,10,n),stringify:xi},Ai={identify:e=>Ti(e)&&e>=0,default:!0,tag:`tag:yaml.org,2002:int`,format:`HEX`,test:/^0x[0-9a-fA-F]+$/,resolve:(e,t,n)=>Ei(e,2,16,n),stringify:e=>Di(e,16,`0x`)},ji=[mi,_i,vi,yi,bi,Oi,ki,Ai,Si,Ci,wi];function Mi(e){return typeof e==`bigint`||Number.isInteger(e)}var Ni=({value:e})=>JSON.stringify(e),Pi=[{identify:e=>typeof e==`string`,default:!0,tag:`tag:yaml.org,2002:str`,resolve:e=>e,stringify:Ni},{identify:e=>e==null,createNode:()=>new Q(null),default:!0,tag:`tag:yaml.org,2002:null`,test:/^null$/,resolve:()=>null,stringify:Ni},{identify:e=>typeof e==`boolean`,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^true$|^false$/,resolve:e=>e===`true`,stringify:Ni},{identify:Mi,default:!0,tag:`tag:yaml.org,2002:int`,test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(e,t,{intAsBigInt:n})=>n?BigInt(e):parseInt(e,10),stringify:({value:e})=>Mi(e)?e.toString():JSON.stringify(e)},{identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:e=>parseFloat(e),stringify:Ni}],Fi=[mi,_i].concat(Pi,{default:!0,tag:``,test:/^/,resolve(e,t){return t(`Unresolved plain scalar ${JSON.stringify(e)}`),e}}),Ii={identify:e=>e instanceof Uint8Array,default:!1,tag:`tag:yaml.org,2002:binary`,resolve(e,t){if(typeof atob==`function`){let t=atob(e.replace(/[\n\r]/g,``)),n=new Uint8Array(t.length);for(let e=0;e<t.length;++e)n[e]=t.charCodeAt(e);return n}else return t(`This environment does not support reading binary tags; either Buffer or atob is required`),e},stringify({comment:e,type:t,value:n},r,i,a){if(!n)return``;let o=n,s;if(typeof btoa==`function`){let e=``;for(let t=0;t<o.length;++t)e+=String.fromCharCode(o[t]);s=btoa(e)}else throw Error(`This environment does not support writing binary tags; either Buffer or btoa is required`);if(t??=Q.BLOCK_LITERAL,t!==Q.QUOTE_DOUBLE){let e=Math.max(r.options.lineWidth-r.indent.length,r.options.minContentWidth),n=Math.ceil(s.length/e),i=Array(n);for(let t=0,r=0;t<n;++t,r+=e)i[t]=s.substr(r,e);s=i.join(t===Q.BLOCK_LITERAL?`
|
|
42
|
-
`:` `)}return qr({comment:e,type:t,value:s},r,i,a)}};function Li(e,t){if(tr(e))for(let n=0;n<e.items.length;++n){let r=e.items[n];if(!K(r)){if(er(r)){r.items.length>1&&t(`Each pair must have its own sequence indicator`);let e=r.items[0]||new $(new Q(null));if(r.commentBefore&&(e.key.commentBefore=e.key.commentBefore?`${r.commentBefore}\n${e.key.commentBefore}`:r.commentBefore),r.comment){let t=e.value??e.key;t.comment=t.comment?`${r.comment}\n${t.comment}`:r.comment}r=e}e.items[n]=K(r)?r:new $(r)}}else t(`Expected a sequence for this tag`);return e}function Ri(e,t,n){let{replacer:r}=n,i=new hi(e);i.tag=`tag:yaml.org,2002:pairs`;let a=0;if(t&&Symbol.iterator in Object(t))for(let e of t){typeof r==`function`&&(e=r.call(t,String(a++),e));let o,s;if(Array.isArray(e))if(e.length===2)o=e[0],s=e[1];else throw TypeError(`Expected [key, value] tuple: ${e}`);else if(e&&e instanceof Object){let t=Object.keys(e);if(t.length===1)o=t[0],s=e[o];else throw TypeError(`Expected tuple with one key, not ${t.length} keys`)}else o=e;i.items.push(si(o,s,n))}return i}var zi={collection:`seq`,default:!1,tag:`tag:yaml.org,2002:pairs`,resolve:Li,createNode:Ri},Bi=class e extends hi{constructor(){super(),this.add=pi.prototype.add.bind(this),this.delete=pi.prototype.delete.bind(this),this.get=pi.prototype.get.bind(this),this.has=pi.prototype.has.bind(this),this.set=pi.prototype.set.bind(this),this.tag=e.tag}toJSON(e,t){if(!t)return super.toJSON(e);let n=new Map;t?.onCreate&&t.onCreate(n);for(let e of this.items){let r,i;if(K(e)?(r=Z(e.key,``,t),i=Z(e.value,r,t)):r=Z(e,``,t),n.has(r))throw Error(`Ordered maps must not include duplicate keys`);n.set(r,i)}return n}static from(e,t,n){let r=Ri(e,t,n),i=new this;return i.items=r.items,i}};Bi.tag=`tag:yaml.org,2002:omap`;var Vi={collection:`seq`,identify:e=>e instanceof Map,nodeClass:Bi,default:!1,tag:`tag:yaml.org,2002:omap`,resolve(e,t){let n=Li(e,t),r=[];for(let{key:e}of n.items)q(e)&&(r.includes(e.value)?t(`Ordered maps must not include duplicate keys: ${e.value}`):r.push(e.value));return Object.assign(new Bi,n)},createNode:(e,t,n)=>Bi.from(e,t,n)};function Hi({value:e,source:t},n){return t&&(e?Ui:Wi).test.test(t)?t:e?n.options.trueStr:n.options.falseStr}var Ui={identify:e=>e===!0,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new Q(!0),stringify:Hi},Wi={identify:e=>e===!1,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new Q(!1),stringify:Hi},Gi={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()===`nan`?NaN:e[0]===`-`?-1/0:1/0,stringify:xi},Ki={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`EXP`,test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e.replace(/_/g,``)),stringify(e){let t=Number(e.value);return isFinite(t)?t.toExponential():xi(e)}},qi={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(e){let t=new Q(parseFloat(e.replace(/_/g,``))),n=e.indexOf(`.`);if(n!==-1){let r=e.substring(n+1).replace(/_/g,``);r[r.length-1]===`0`&&(t.minFractionDigits=r.length)}return t},stringify:xi},Ji=e=>typeof e==`bigint`||Number.isInteger(e);function Yi(e,t,n,{intAsBigInt:r}){let i=e[0];if((i===`-`||i===`+`)&&(t+=1),e=e.substring(t).replace(/_/g,``),r){switch(n){case 2:e=`0b${e}`;break;case 8:e=`0o${e}`;break;case 16:e=`0x${e}`;break}let t=BigInt(e);return i===`-`?BigInt(-1)*t:t}let a=parseInt(e,n);return i===`-`?-1*a:a}function Xi(e,t,n){let{value:r}=e;if(Ji(r)){let e=r.toString(t);return r<0?`-`+n+e.substr(1):n+e}return xi(e)}var Zi={identify:Ji,default:!0,tag:`tag:yaml.org,2002:int`,format:`BIN`,test:/^[-+]?0b[0-1_]+$/,resolve:(e,t,n)=>Yi(e,2,2,n),stringify:e=>Xi(e,2,`0b`)},Qi={identify:Ji,default:!0,tag:`tag:yaml.org,2002:int`,format:`OCT`,test:/^[-+]?0[0-7_]+$/,resolve:(e,t,n)=>Yi(e,1,8,n),stringify:e=>Xi(e,8,`0`)},$i={identify:Ji,default:!0,tag:`tag:yaml.org,2002:int`,test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,t,n)=>Yi(e,0,10,n),stringify:xi},ea={identify:Ji,default:!0,tag:`tag:yaml.org,2002:int`,format:`HEX`,test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,t,n)=>Yi(e,2,16,n),stringify:e=>Xi(e,16,`0x`)},ta=class e extends pi{constructor(t){super(t),this.tag=e.tag}add(e){let t;t=K(e)?e:e&&typeof e==`object`&&`key`in e&&`value`in e&&e.value===null?new $(e.key,null):new $(e,null),fi(this.items,t.key)||this.items.push(t)}get(e,t){let n=fi(this.items,e);return!t&&K(n)?q(n.key)?n.key.value:n.key:n}set(e,t){if(typeof t!=`boolean`)throw Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);let n=fi(this.items,e);n&&!t?this.items.splice(this.items.indexOf(n),1):!n&&t&&this.items.push(new $(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,n){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,n);throw Error(`Set items must all have null values`)}static from(e,t,n){let{replacer:r}=n,i=new this(e);if(t&&Symbol.iterator in Object(t))for(let e of t)typeof r==`function`&&(e=r.call(t,e,e)),i.items.push(si(e,null,n));return i}};ta.tag=`tag:yaml.org,2002:set`;var na={collection:`map`,identify:e=>e instanceof Set,nodeClass:ta,default:!1,tag:`tag:yaml.org,2002:set`,createNode:(e,t,n)=>ta.from(e,t,n),resolve(e,t){if(er(e)){if(e.hasAllNullValues(!0))return Object.assign(new ta,e);t(`Set items must all have null values`)}else t(`Expected a mapping for this tag`);return e}};function ra(e,t){let n=e[0],r=n===`-`||n===`+`?e.substring(1):e,i=e=>t?BigInt(e):Number(e),a=r.replace(/_/g,``).split(`:`).reduce((e,t)=>e*i(60)+i(t),i(0));return n===`-`?i(-1)*a:a}function ia(e){let{value:t}=e,n=e=>e;if(typeof t==`bigint`)n=e=>BigInt(e);else if(isNaN(t)||!isFinite(t))return xi(e);let r=``;t<0&&(r=`-`,t*=n(-1));let i=n(60),a=[t%i];return t<60?a.unshift(0):(t=(t-a[0])/i,a.unshift(t%i),t>=60&&(t=(t-a[0])/i,a.unshift(t))),r+a.map(e=>String(e).padStart(2,`0`)).join(`:`).replace(/000000\d*$/,``)}var aa={identify:e=>typeof e==`bigint`||Number.isInteger(e),default:!0,tag:`tag:yaml.org,2002:int`,format:`TIME`,test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(e,t,{intAsBigInt:n})=>ra(e,n),stringify:ia},oa={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`TIME`,test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:e=>ra(e,!1),stringify:ia},sa={identify:e=>e instanceof Date,default:!0,tag:`tag:yaml.org,2002:timestamp`,test:RegExp(`^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$`),resolve(e){let t=e.match(sa.test);if(!t)throw Error(`!!timestamp expects a date, starting with yyyy-mm-dd`);let[,n,r,i,a,o,s]=t.map(Number),c=t[7]?Number((t[7]+`00`).substr(1,3)):0,l=Date.UTC(n,r-1,i,a||0,o||0,s||0,c),u=t[8];if(u&&u!==`Z`){let e=ra(u,!1);Math.abs(e)<30&&(e*=60),l-=6e4*e}return new Date(l)},stringify:({value:e})=>e?.toISOString().replace(/(T00:00:00)?\.000Z$/,``)??``},ca=[mi,_i,vi,yi,Ui,Wi,Zi,Qi,$i,ea,Gi,Ki,qi,Ii,ti,Vi,zi,na,aa,oa,sa],la=new Map([[`core`,ji],[`failsafe`,[mi,_i,vi]],[`json`,Fi],[`yaml11`,ca],[`yaml-1.1`,ca]]),ua={binary:Ii,bool:bi,float:wi,floatExp:Ci,floatNaN:Si,floatTime:oa,int:ki,intHex:Ai,intOct:Oi,intTime:aa,map:mi,merge:ti,null:yi,omap:Vi,pairs:zi,seq:_i,set:na,timestamp:sa},da={"tag:yaml.org,2002:binary":Ii,"tag:yaml.org,2002:merge":ti,"tag:yaml.org,2002:omap":Vi,"tag:yaml.org,2002:pairs":zi,"tag:yaml.org,2002:set":na,"tag:yaml.org,2002:timestamp":sa};function fa(e,t,n){let r=la.get(t);if(r&&!e)return n&&!r.includes(ti)?r.concat(ti):r.slice();let i=r;if(!i)if(Array.isArray(e))i=[];else{let e=Array.from(la.keys()).filter(e=>e!==`yaml11`).map(e=>JSON.stringify(e)).join(`, `);throw Error(`Unknown schema "${t}"; use one of ${e} or define customTags array`)}if(Array.isArray(e))for(let t of e)i=i.concat(t);else typeof e==`function`&&(i=e(i.slice()));return n&&(i=i.concat(ti)),i.reduce((e,t)=>{let n=typeof t==`string`?ua[t]:t;if(!n){let e=JSON.stringify(t),n=Object.keys(ua).map(e=>JSON.stringify(e)).join(`, `);throw Error(`Unknown custom tag ${e}; use one of ${n}`)}return e.includes(n)||e.push(n),e},[])}var pa=(e,t)=>e.key<t.key?-1:e.key>t.key?1:0,ma=class e{constructor({compat:e,customTags:t,merge:n,resolveKnownTags:r,schema:i,sortMapEntries:a,toStringDefaults:o}){this.compat=Array.isArray(e)?fa(e,`compat`):e?fa(null,e):null,this.name=typeof i==`string`&&i||`core`,this.knownTags=r?da:{},this.tags=fa(t,this.name,n),this.toStringOptions=o??null,Object.defineProperty(this,Jn,{value:mi}),Object.defineProperty(this,Xn,{value:vi}),Object.defineProperty(this,Zn,{value:_i}),this.sortMapEntries=typeof a==`function`?a:a===!0?pa:null}clone(){let t=Object.create(e.prototype,Object.getOwnPropertyDescriptors(this));return t.tags=this.tags.slice(),t}};function ha(e,t){let n=[],r=t.directives===!0;if(t.directives!==!1&&e.directives){let t=e.directives.toString(e);t?(n.push(t),r=!0):e.directives.docStart&&(r=!0)}r&&n.push(`---`);let i=Jr(e,t),{commentString:a}=i.options;if(e.commentBefore){n.length!==1&&n.unshift(``);let t=a(e.commentBefore);n.unshift(jr(t,``))}let o=!1,s=null;if(e.contents){if(Y(e.contents)){if(e.contents.spaceBefore&&r&&n.push(``),e.contents.commentBefore){let t=a(e.contents.commentBefore);n.push(jr(t,``))}i.forceBlockIndent=!!e.comment,s=e.contents.comment}let t=s?void 0:()=>o=!0,c=Zr(e.contents,i,()=>s=null,t);s&&(c+=Mr(c,``,a(s))),(c[0]===`|`||c[0]===`>`)&&n[n.length-1]===`---`?n[n.length-1]=`--- ${c}`:n.push(c)}else n.push(Zr(e.contents,i));if(e.directives?.docEnd)if(e.comment){let t=a(e.comment);t.includes(`
|
|
43
|
-
`)?(n.push(`...`),n.push(jr(t,``))):n.push(`... ${t}`)}else n.push(`...`);else{let t=e.comment;t&&o&&(t=t.replace(/^\n+/,``)),t&&((!o||s)&&n[n.length-1]!==``&&n.push(``),n.push(jr(a(t),``)))}return n.join(`
|
|
44
|
-
`)+`
|
|
45
|
-
`}var ga=class e{constructor(e,t,n){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,G,{value:qn});let r=null;typeof t==`function`||Array.isArray(t)?r=t:n===void 0&&t&&(n=t,t=void 0);let i=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:`warn`,prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:`1.2`},n);this.options=i;let{version:a}=i;n?._directives?(this.directives=n._directives.atDocument(),this.directives.yaml.explicit&&(a=this.directives.yaml.version)):this.directives=new mr({version:a}),this.setSchema(a,n),this.contents=e===void 0?null:this.createNode(e,r,n)}clone(){let t=Object.create(e.prototype,{[G]:{value:qn}});return t.commentBefore=this.commentBefore,t.comment=this.comment,t.errors=this.errors.slice(),t.warnings=this.warnings.slice(),t.options=Object.assign({},this.options),this.directives&&(t.directives=this.directives.clone()),t.schema=this.schema.clone(),t.contents=Y(this.contents)?this.contents.clone(t.schema):this.contents,this.range&&(t.range=this.range.slice()),t}add(e){_a(this.contents)&&this.contents.add(e)}addIn(e,t){_a(this.contents)&&this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){let n=gr(this);e.anchor=!t||n.has(t)?_r(t||`a`,n):t}return new xr(e.anchor)}createNode(e,t,n){let r;if(typeof t==`function`)e=t.call({"":e},``,e),r=t;else if(Array.isArray(t)){let e=t.filter(e=>typeof e==`number`||e instanceof String||e instanceof Number).map(String);e.length>0&&(t=t.concat(e)),r=t}else n===void 0&&t&&(n=t,t=void 0);let{aliasDuplicateObjects:i,anchorPrefix:a,flow:o,keepUndefined:s,onTagObj:c,tag:l}=n??{},{onAnchor:u,setAnchors:d,sourceObjects:f}=vr(this,a||`a`),p={aliasDuplicateObjects:i??!0,keepUndefined:s??!1,onAnchor:u,onTagObj:c,replacer:r,schema:this.schema,sourceObjects:f},m=Er(e,l,p);return o&&J(m)&&(m.flow=!0),d(),m}createPair(e,t,n={}){return new $(this.createNode(e,null,n),this.createNode(t,null,n))}delete(e){return _a(this.contents)?this.contents.delete(e):!1}deleteIn(e){return Or(e)?this.contents==null?!1:(this.contents=null,!0):_a(this.contents)?this.contents.deleteIn(e):!1}get(e,t){return J(this.contents)?this.contents.get(e,t):void 0}getIn(e,t){return Or(e)?!t&&q(this.contents)?this.contents.value:this.contents:J(this.contents)?this.contents.getIn(e,t):void 0}has(e){return J(this.contents)?this.contents.has(e):!1}hasIn(e){return Or(e)?this.contents!==void 0:J(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=Dr(this.schema,[e],t):_a(this.contents)&&this.contents.set(e,t)}setIn(e,t){Or(e)?this.contents=t:this.contents==null?this.contents=Dr(this.schema,Array.from(e),t):_a(this.contents)&&this.contents.setIn(e,t)}setSchema(e,t={}){typeof e==`number`&&(e=String(e));let n;switch(e){case`1.1`:this.directives?this.directives.yaml.version=`1.1`:this.directives=new mr({version:`1.1`}),n={resolveKnownTags:!1,schema:`yaml-1.1`};break;case`1.2`:case`next`:this.directives?this.directives.yaml.version=e:this.directives=new mr({version:e}),n={resolveKnownTags:!0,schema:`core`};break;case null:this.directives&&delete this.directives,n=null;break;default:{let t=JSON.stringify(e);throw Error(`Expected '1.1', '1.2' or null as first argument, but found: ${t}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(n)this.schema=new ma(Object.assign(n,t));else throw Error(`With a null YAML version, the { schema: Schema } option is required`)}toJS({json:e,jsonArg:t,mapAsMap:n,maxAliasCount:r,onAnchor:i,reviver:a}={}){let o={anchors:new Map,doc:this,keep:!e,mapAsMap:n===!0,mapKeyWarned:!1,maxAliasCount:typeof r==`number`?r:100},s=Z(this.contents,t??``,o);if(typeof i==`function`)for(let{count:e,res:t}of o.anchors.values())i(t,e);return typeof a==`function`?yr(a,{"":s},``,s):s}toJSON(e,t){return this.toJS({json:!0,jsonArg:e,mapAsMap:!1,onAnchor:t})}toString(e={}){if(this.errors.length>0)throw Error(`Document with errors cannot be stringified`);if(`indent`in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){let t=JSON.stringify(e.indent);throw Error(`"indent" option must be a positive integer, not ${t}`)}return ha(this,e)}};function _a(e){if(J(e))return!0;throw Error(`Expected a YAML collection as document contents`)}var va=class extends Error{constructor(e,t,n,r){super(),this.name=e,this.code=n,this.message=r,this.pos=t}},ya=class extends va{constructor(e,t,n){super(`YAMLParseError`,e,t,n)}},ba=class extends va{constructor(e,t,n){super(`YAMLWarning`,e,t,n)}},xa=(e,t)=>n=>{if(n.pos[0]===-1)return;n.linePos=n.pos.map(e=>t.linePos(e));let{line:r,col:i}=n.linePos[0];n.message+=` at line ${r}, column ${i}`;let a=i-1,o=e.substring(t.lineStarts[r-1],t.lineStarts[r]).replace(/[\n\r]+$/,``);if(a>=60&&o.length>80){let e=Math.min(a-39,o.length-79);o=`…`+o.substring(e),a-=e-1}if(o.length>80&&(o=o.substring(0,79)+`…`),r>1&&/^ *$/.test(o.substring(0,a))){let n=e.substring(t.lineStarts[r-2],t.lineStarts[r-1]);n.length>80&&(n=n.substring(0,79)+`…
|
|
46
|
-
`),o=n+o}if(/[^ ]/.test(o)){let e=1,t=n.linePos[1];t?.line===r&&t.col>i&&(e=Math.max(1,Math.min(t.col-i,80-a)));let s=` `.repeat(a)+`^`.repeat(e);n.message+=`:\n\n${o}\n${s}\n`}};function Sa(e,{flow:t,indicator:n,next:r,offset:i,onError:a,parentIndent:o,startOnNewline:s}){let c=!1,l=s,u=s,d=``,f=``,p=!1,m=!1,h=null,g=null,_=null,v=null,y=null,b=null,x=null;for(let i of e)switch(m&&=(i.type!==`space`&&i.type!==`newline`&&i.type!==`comma`&&a(i.offset,`MISSING_CHAR`,`Tags and anchors must be separated from the next token by white space`),!1),h&&=(l&&i.type!==`comment`&&i.type!==`newline`&&a(h,`TAB_AS_INDENT`,`Tabs are not allowed as indentation`),null),i.type){case`space`:!t&&(n!==`doc-start`||r?.type!==`flow-collection`)&&i.source.includes(` `)&&(h=i),u=!0;break;case`comment`:{u||a(i,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`);let e=i.source.substring(1)||` `;d?d+=f+e:d=e,f=``,l=!1;break}case`newline`:l?d?d+=i.source:(!b||n!==`seq-item-ind`)&&(c=!0):f+=i.source,l=!0,p=!0,(g||_)&&(v=i),u=!0;break;case`anchor`:g&&a(i,`MULTIPLE_ANCHORS`,`A node can have at most one anchor`),i.source.endsWith(`:`)&&a(i.offset+i.source.length-1,`BAD_ALIAS`,`Anchor ending in : is ambiguous`,!0),g=i,x??=i.offset,l=!1,u=!1,m=!0;break;case`tag`:_&&a(i,`MULTIPLE_TAGS`,`A node can have at most one tag`),_=i,x??=i.offset,l=!1,u=!1,m=!0;break;case n:(g||_)&&a(i,`BAD_PROP_ORDER`,`Anchors and tags must be after the ${i.source} indicator`),b&&a(i,`UNEXPECTED_TOKEN`,`Unexpected ${i.source} in ${t??`collection`}`),b=i,l=n===`seq-item-ind`||n===`explicit-key-ind`,u=!1;break;case`comma`:if(t){y&&a(i,`UNEXPECTED_TOKEN`,`Unexpected , in ${t}`),y=i,l=!1,u=!1;break}default:a(i,`UNEXPECTED_TOKEN`,`Unexpected ${i.type} token`),l=!1,u=!1}let S=e[e.length-1],C=S?S.offset+S.source.length:i;return m&&r&&r.type!==`space`&&r.type!==`newline`&&r.type!==`comma`&&(r.type!==`scalar`||r.source!==``)&&a(r.offset,`MISSING_CHAR`,`Tags and anchors must be separated from the next token by white space`),h&&(l&&h.indent<=o||r?.type===`block-map`||r?.type===`block-seq`)&&a(h,`TAB_AS_INDENT`,`Tabs are not allowed as indentation`),{comma:y,found:b,spaceBefore:c,comment:d,hasNewline:p,anchor:g,tag:_,newlineAfterProp:v,end:C,start:x??C}}function Ca(e){if(!e)return null;switch(e.type){case`alias`:case`scalar`:case`double-quoted-scalar`:case`single-quoted-scalar`:if(e.source.includes(`
|
|
47
|
-
`))return!0;if(e.end){for(let t of e.end)if(t.type===`newline`)return!0}return!1;case`flow-collection`:for(let t of e.items){for(let e of t.start)if(e.type===`newline`)return!0;if(t.sep){for(let e of t.sep)if(e.type===`newline`)return!0}if(Ca(t.key)||Ca(t.value))return!0}return!1;default:return!0}}function wa(e,t,n){if(t?.type===`flow-collection`){let r=t.end[0];r.indent===e&&(r.source===`]`||r.source===`}`)&&Ca(t)&&n(r,`BAD_INDENT`,`Flow end indicator should be more indented than parent`,!0)}}function Ta(e,t,n){let{uniqueKeys:r}=e.options;if(r===!1)return!1;let i=typeof r==`function`?r:(e,t)=>e===t||q(e)&&q(t)&&e.value===t.value;return t.some(e=>i(e.key,n))}var Ea=`All mapping items must start at the same column`;function Da({composeNode:e,composeEmptyNode:t},n,r,i,a){let o=new(a?.nodeClass??pi)(n.schema);n.atRoot&&=!1;let s=r.offset,c=null;for(let a of r.items){let{start:l,key:u,sep:d,value:f}=a,p=Sa(l,{indicator:`explicit-key-ind`,next:u??d?.[0],offset:s,onError:i,parentIndent:r.indent,startOnNewline:!0}),m=!p.found;if(m){if(u&&(u.type===`block-seq`?i(s,`BLOCK_AS_IMPLICIT_KEY`,`A block sequence may not be used as an implicit map key`):`indent`in u&&u.indent!==r.indent&&i(s,`BAD_INDENT`,Ea)),!p.anchor&&!p.tag&&!d){c=p.end,p.comment&&(o.comment?o.comment+=`
|
|
48
|
-
`+p.comment:o.comment=p.comment);continue}(p.newlineAfterProp||Ca(u))&&i(u??l[l.length-1],`MULTILINE_IMPLICIT_KEY`,`Implicit keys need to be on a single line`)}else p.found?.indent!==r.indent&&i(s,`BAD_INDENT`,Ea);n.atKey=!0;let h=p.end,g=u?e(n,u,p,i):t(n,h,l,null,p,i);n.schema.compat&&wa(r.indent,u,i),n.atKey=!1,Ta(n,o.items,g)&&i(h,`DUPLICATE_KEY`,`Map keys must be unique`);let _=Sa(d??[],{indicator:`map-value-ind`,next:f,offset:g.range[2],onError:i,parentIndent:r.indent,startOnNewline:!u||u.type===`block-scalar`});if(s=_.end,_.found){m&&(f?.type===`block-map`&&!_.hasNewline&&i(s,`BLOCK_AS_IMPLICIT_KEY`,`Nested mappings are not allowed in compact mappings`),n.options.strict&&p.start<_.found.offset-1024&&i(g.range,`KEY_OVER_1024_CHARS`,`The : indicator must be at most 1024 chars after the start of an implicit block mapping key`));let c=f?e(n,f,_,i):t(n,s,d,null,_,i);n.schema.compat&&wa(r.indent,f,i),s=c.range[2];let l=new $(g,c);n.options.keepSourceTokens&&(l.srcToken=a),o.items.push(l)}else{m&&i(g.range,`MISSING_CHAR`,`Implicit map keys need to be followed by map values`),_.comment&&(g.comment?g.comment+=`
|
|
49
|
-
`+_.comment:g.comment=_.comment);let e=new $(g);n.options.keepSourceTokens&&(e.srcToken=a),o.items.push(e)}}return c&&c<s&&i(c,`IMPOSSIBLE`,`Map comment with trailing content`),o.range=[r.offset,s,c??s],o}function Oa({composeNode:e,composeEmptyNode:t},n,r,i,a){let o=new(a?.nodeClass??hi)(n.schema);n.atRoot&&=!1,n.atKey&&=!1;let s=r.offset,c=null;for(let{start:a,value:l}of r.items){let u=Sa(a,{indicator:`seq-item-ind`,next:l,offset:s,onError:i,parentIndent:r.indent,startOnNewline:!0});if(!u.found)if(u.anchor||u.tag||l)l?.type===`block-seq`?i(u.end,`BAD_INDENT`,`All sequence items must start at the same column`):i(s,`MISSING_CHAR`,`Sequence item without - indicator`);else{c=u.end,u.comment&&(o.comment=u.comment);continue}let d=l?e(n,l,u,i):t(n,u.end,a,null,u,i);n.schema.compat&&wa(r.indent,l,i),s=d.range[2],o.items.push(d)}return o.range=[r.offset,s,c??s],o}function ka(e,t,n,r){let i=``;if(e){let a=!1,o=``;for(let s of e){let{source:e,type:c}=s;switch(c){case`space`:a=!0;break;case`comment`:{n&&!a&&r(s,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`);let t=e.substring(1)||` `;i?i+=o+t:i=t,o=``;break}case`newline`:i&&(o+=e),a=!0;break;default:r(s,`UNEXPECTED_TOKEN`,`Unexpected ${c} at node end`)}t+=e.length}}return{comment:i,offset:t}}var Aa=`Block collections are not allowed within flow collections`,ja=e=>e&&(e.type===`block-map`||e.type===`block-seq`);function Ma({composeNode:e,composeEmptyNode:t},n,r,i,a){let o=r.start.source===`{`,s=o?`flow map`:`flow sequence`,c=new(a?.nodeClass??(o?pi:hi))(n.schema);c.flow=!0;let l=n.atRoot;l&&(n.atRoot=!1),n.atKey&&=!1;let u=r.offset+r.start.source.length;for(let a=0;a<r.items.length;++a){let l=r.items[a],{start:d,key:f,sep:p,value:m}=l,h=Sa(d,{flow:s,indicator:`explicit-key-ind`,next:f??p?.[0],offset:u,onError:i,parentIndent:r.indent,startOnNewline:!1});if(!h.found){if(!h.anchor&&!h.tag&&!p&&!m){a===0&&h.comma?i(h.comma,`UNEXPECTED_TOKEN`,`Unexpected , in ${s}`):a<r.items.length-1&&i(h.start,`UNEXPECTED_TOKEN`,`Unexpected empty item in ${s}`),h.comment&&(c.comment?c.comment+=`
|
|
50
|
-
`+h.comment:c.comment=h.comment),u=h.end;continue}!o&&n.options.strict&&Ca(f)&&i(f,`MULTILINE_IMPLICIT_KEY`,`Implicit keys of flow sequence pairs need to be on a single line`)}if(a===0)h.comma&&i(h.comma,`UNEXPECTED_TOKEN`,`Unexpected , in ${s}`);else if(h.comma||i(h.start,`MISSING_CHAR`,`Missing , between ${s} items`),h.comment){let e=``;loop:for(let t of d)switch(t.type){case`comma`:case`space`:break;case`comment`:e=t.source.substring(1);break loop;default:break loop}if(e){let t=c.items[c.items.length-1];K(t)&&(t=t.value??t.key),t.comment?t.comment+=`
|
|
51
|
-
`+e:t.comment=e,h.comment=h.comment.substring(e.length+1)}}if(!o&&!p&&!h.found){let r=m?e(n,m,h,i):t(n,h.end,p,null,h,i);c.items.push(r),u=r.range[2],ja(m)&&i(r.range,`BLOCK_IN_FLOW`,Aa)}else{n.atKey=!0;let a=h.end,g=f?e(n,f,h,i):t(n,a,d,null,h,i);ja(f)&&i(g.range,`BLOCK_IN_FLOW`,Aa),n.atKey=!1;let _=Sa(p??[],{flow:s,indicator:`map-value-ind`,next:m,offset:g.range[2],onError:i,parentIndent:r.indent,startOnNewline:!1});if(_.found){if(!o&&!h.found&&n.options.strict){if(p)for(let e of p){if(e===_.found)break;if(e.type===`newline`){i(e,`MULTILINE_IMPLICIT_KEY`,`Implicit keys of flow sequence pairs need to be on a single line`);break}}h.start<_.found.offset-1024&&i(_.found,`KEY_OVER_1024_CHARS`,`The : indicator must be at most 1024 chars after the start of an implicit flow sequence key`)}}else m&&(`source`in m&&m.source?.[0]===`:`?i(m,`MISSING_CHAR`,`Missing space after : in ${s}`):i(_.start,`MISSING_CHAR`,`Missing , or : between ${s} items`));let v=m?e(n,m,_,i):_.found?t(n,_.end,p,null,_,i):null;v?ja(m)&&i(v.range,`BLOCK_IN_FLOW`,Aa):_.comment&&(g.comment?g.comment+=`
|
|
52
|
-
`+_.comment:g.comment=_.comment);let y=new $(g,v);if(n.options.keepSourceTokens&&(y.srcToken=l),o){let e=c;Ta(n,e.items,g)&&i(a,`DUPLICATE_KEY`,`Map keys must be unique`),e.items.push(y)}else{let e=new pi(n.schema);e.flow=!0,e.items.push(y);let t=(v??g).range;e.range=[g.range[0],t[1],t[2]],c.items.push(e)}u=v?v.range[2]:_.end}}let d=o?`}`:`]`,[f,...p]=r.end,m=u;if(f?.source===d)m=f.offset+f.source.length;else{let e=s[0].toUpperCase()+s.substring(1),t=l?`${e} must end with a ${d}`:`${e} in block collection must be sufficiently indented and end with a ${d}`;i(u,l?`MISSING_CHAR`:`BAD_INDENT`,t),f&&f.source.length!==1&&p.unshift(f)}if(p.length>0){let e=ka(p,m,n.options.strict,i);e.comment&&(c.comment?c.comment+=`
|
|
53
|
-
`+e.comment:c.comment=e.comment),c.range=[r.offset,m,e.offset]}else c.range=[r.offset,m,m];return c}function Na(e,t,n,r,i,a){let o=n.type===`block-map`?Da(e,t,n,r,a):n.type===`block-seq`?Oa(e,t,n,r,a):Ma(e,t,n,r,a),s=o.constructor;return i===`!`||i===s.tagName?(o.tag=s.tagName,o):(i&&(o.tag=i),o)}function Pa(e,t,n,r,i){let a=r.tag,o=a?t.directives.tagName(a.source,e=>i(a,`TAG_RESOLVE_FAILED`,e)):null;if(n.type===`block-seq`){let{anchor:e,newlineAfterProp:t}=r,n=e&&a?e.offset>a.offset?e:a:e??a;n&&(!t||t.offset<n.offset)&&i(n,`MISSING_CHAR`,`Missing newline after block sequence props`)}let s=n.type===`block-map`?`map`:n.type===`block-seq`?`seq`:n.start.source===`{`?`map`:`seq`;if(!a||!o||o===`!`||o===pi.tagName&&s===`map`||o===hi.tagName&&s===`seq`)return Na(e,t,n,i,o);let c=t.schema.tags.find(e=>e.tag===o&&e.collection===s);if(!c){let r=t.schema.knownTags[o];if(r?.collection===s)t.schema.tags.push(Object.assign({},r,{default:!1})),c=r;else return r?i(a,`BAD_COLLECTION_TYPE`,`${r.tag} used for ${s} collection, but expects ${r.collection??`scalar`}`,!0):i(a,`TAG_RESOLVE_FAILED`,`Unresolved tag: ${o}`,!0),Na(e,t,n,i,o)}let l=Na(e,t,n,i,o,c),u=c.resolve?.(l,e=>i(a,`TAG_RESOLVE_FAILED`,e),t.options)??l,d=Y(u)?u:new Q(u);return d.range=l.range,d.tag=o,c?.format&&(d.format=c.format),d}function Fa(e,t,n){let r=t.offset,i=Ia(t,e.options.strict,n);if(!i)return{value:``,type:null,comment:``,range:[r,r,r]};let a=i.mode===`>`?Q.BLOCK_FOLDED:Q.BLOCK_LITERAL,o=t.source?La(t.source):[],s=o.length;for(let e=o.length-1;e>=0;--e){let t=o[e][1];if(t===``||t===`\r`)s=e;else break}if(s===0){let e=i.chomp===`+`&&o.length>0?`
|
|
54
|
-
`.repeat(Math.max(1,o.length-1)):``,n=r+i.length;return t.source&&(n+=t.source.length),{value:e,type:a,comment:i.comment,range:[r,n,n]}}let c=t.indent+i.indent,l=t.offset+i.length,u=0;for(let t=0;t<s;++t){let[r,a]=o[t];if(a===``||a===`\r`)i.indent===0&&r.length>c&&(c=r.length);else{r.length<c&&n(l+r.length,`MISSING_CHAR`,`Block scalars with more-indented leading empty lines must use an explicit indentation indicator`),i.indent===0&&(c=r.length),u=t,c===0&&!e.atRoot&&n(l,`BAD_INDENT`,`Block scalar values in collections must be indented`);break}l+=r.length+a.length+1}for(let e=o.length-1;e>=s;--e)o[e][0].length>c&&(s=e+1);let d=``,f=``,p=!1;for(let e=0;e<u;++e)d+=o[e][0].slice(c)+`
|
|
55
|
-
`;for(let e=u;e<s;++e){let[t,r]=o[e];l+=t.length+r.length+1;let s=r[r.length-1]===`\r`;if(s&&(r=r.slice(0,-1)),r&&t.length<c){let e=`Block scalar lines must not be less indented than their ${i.indent?`explicit indentation indicator`:`first line`}`;n(l-r.length-(s?2:1),`BAD_INDENT`,e),t=``}a===Q.BLOCK_LITERAL?(d+=f+t.slice(c)+r,f=`
|
|
56
|
-
`):t.length>c||r[0]===` `?(f===` `?f=`
|
|
57
|
-
`:!p&&f===`
|
|
58
|
-
`&&(f=`
|
|
59
|
-
|
|
60
|
-
`),d+=f+t.slice(c)+r,f=`
|
|
61
|
-
`,p=!0):r===``?f===`
|
|
62
|
-
`?d+=`
|
|
63
|
-
`:f=`
|
|
64
|
-
`:(d+=f+r,f=` `,p=!1)}switch(i.chomp){case`-`:break;case`+`:for(let e=s;e<o.length;++e)d+=`
|
|
65
|
-
`+o[e][0].slice(c);d[d.length-1]!==`
|
|
66
|
-
`&&(d+=`
|
|
67
|
-
`);break;default:d+=`
|
|
68
|
-
`}let m=r+i.length+t.source.length;return{value:d,type:a,comment:i.comment,range:[r,m,m]}}function Ia({offset:e,props:t},n,r){if(t[0].type!==`block-scalar-header`)return r(t[0],`IMPOSSIBLE`,`Block scalar header not found`),null;let{source:i}=t[0],a=i[0],o=0,s=``,c=-1;for(let t=1;t<i.length;++t){let n=i[t];if(!s&&(n===`-`||n===`+`))s=n;else{let r=Number(n);!o&&r?o=r:c===-1&&(c=e+t)}}c!==-1&&r(c,`UNEXPECTED_TOKEN`,`Block scalar header includes extra characters: ${i}`);let l=!1,u=``,d=i.length;for(let e=1;e<t.length;++e){let i=t[e];switch(i.type){case`space`:l=!0;case`newline`:d+=i.source.length;break;case`comment`:n&&!l&&r(i,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`),d+=i.source.length,u=i.source.substring(1);break;case`error`:r(i,`UNEXPECTED_TOKEN`,i.message),d+=i.source.length;break;default:{r(i,`UNEXPECTED_TOKEN`,`Unexpected token in block scalar header: ${i.type}`);let e=i.source;e&&typeof e==`string`&&(d+=e.length)}}}return{mode:a,indent:o,chomp:s,comment:u,length:d}}function La(e){let t=e.split(/\n( *)/),n=t[0],r=n.match(/^( *)/),i=[r?.[1]?[r[1],n.slice(r[1].length)]:[``,n]];for(let e=1;e<t.length;e+=2)i.push([t[e],t[e+1]]);return i}function Ra(e,t,n){let{offset:r,type:i,source:a,end:o}=e,s,c,l=(e,t,i)=>n(r+e,t,i);switch(i){case`scalar`:s=Q.PLAIN,c=za(a,l);break;case`single-quoted-scalar`:s=Q.QUOTE_SINGLE,c=Ba(a,l);break;case`double-quoted-scalar`:s=Q.QUOTE_DOUBLE,c=Ha(a,l);break;default:return n(e,`UNEXPECTED_TOKEN`,`Expected a flow scalar value, but found: ${i}`),{value:``,type:null,comment:``,range:[r,r+a.length,r+a.length]}}let u=r+a.length,d=ka(o,u,t,n);return{value:c,type:s,comment:d.comment,range:[r,u,d.offset]}}function za(e,t){let n=``;switch(e[0]){case` `:n=`a tab character`;break;case`,`:n=`flow indicator character ,`;break;case`%`:n=`directive indicator character %`;break;case`|`:case`>`:n=`block scalar indicator ${e[0]}`;break;case`@`:case"`":n=`reserved character ${e[0]}`;break}return n&&t(0,`BAD_SCALAR_START`,`Plain value cannot start with ${n}`),Va(e)}function Ba(e,t){return(e[e.length-1]!==`'`||e.length===1)&&t(e.length,`MISSING_CHAR`,`Missing closing 'quote`),Va(e.slice(1,-1)).replace(/''/g,`'`)}function Va(e){let t,n;try{t=RegExp(`(.*?)(?<![ ])[ ]*\r?
|
|
69
|
-
`,`sy`),n=RegExp(`[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?
|
|
70
|
-
`,`sy`)}catch{t=/(.*?)[ \t]*\r?\n/sy,n=/[ \t]*(.*?)[ \t]*\r?\n/sy}let r=t.exec(e);if(!r)return e;let i=r[1],a=` `,o=t.lastIndex;for(n.lastIndex=o;r=n.exec(e);)r[1]===``?a===`
|
|
71
|
-
`?i+=a:a=`
|
|
72
|
-
`:(i+=a+r[1],a=` `),o=n.lastIndex;let s=/[ \t]*(.*)/sy;return s.lastIndex=o,r=s.exec(e),i+a+(r?.[1]??``)}function Ha(e,t){let n=``;for(let r=1;r<e.length-1;++r){let i=e[r];if(!(i===`\r`&&e[r+1]===`
|
|
73
|
-
`))if(i===`
|
|
74
|
-
`){let{fold:t,offset:i}=Ua(e,r);n+=t,r=i}else if(i===`\\`){let i=e[++r],a=Wa[i];if(a)n+=a;else if(i===`
|
|
75
|
-
`)for(i=e[r+1];i===` `||i===` `;)i=e[++r+1];else if(i===`\r`&&e[r+1]===`
|
|
76
|
-
`)for(i=e[++r+1];i===` `||i===` `;)i=e[++r+1];else if(i===`x`||i===`u`||i===`U`){let a={x:2,u:4,U:8}[i];n+=Ga(e,r+1,a,t),r+=a}else{let i=e.substr(r-1,2);t(r-1,`BAD_DQ_ESCAPE`,`Invalid escape sequence ${i}`),n+=i}}else if(i===` `||i===` `){let t=r,a=e[r+1];for(;a===` `||a===` `;)a=e[++r+1];a!==`
|
|
77
|
-
`&&!(a===`\r`&&e[r+2]===`
|
|
78
|
-
`)&&(n+=r>t?e.slice(t,r+1):i)}else n+=i}return(e[e.length-1]!==`"`||e.length===1)&&t(e.length,`MISSING_CHAR`,`Missing closing "quote`),n}function Ua(e,t){let n=``,r=e[t+1];for(;(r===` `||r===` `||r===`
|
|
79
|
-
`||r===`\r`)&&!(r===`\r`&&e[t+2]!==`
|
|
80
|
-
`);)r===`
|
|
81
|
-
`&&(n+=`
|
|
82
|
-
`),t+=1,r=e[t+1];return n||=` `,{fold:n,offset:t}}var Wa={0:`\0`,a:`\x07`,b:`\b`,e:`\x1B`,f:`\f`,n:`
|
|
83
|
-
`,r:`\r`,t:` `,v:`\v`,N:`
`,_:`\xA0`,L:`\u2028`,P:`\u2029`," ":` `,'"':`"`,"/":`/`,"\\":`\\`," ":` `};function Ga(e,t,n,r){let i=e.substr(t,n),a=i.length===n&&/^[0-9a-fA-F]+$/.test(i)?parseInt(i,16):NaN;if(isNaN(a)){let i=e.substr(t-2,n+2);return r(t-2,`BAD_DQ_ESCAPE`,`Invalid escape sequence ${i}`),i}return String.fromCodePoint(a)}function Ka(e,t,n,r){let{value:i,type:a,comment:o,range:s}=t.type===`block-scalar`?Fa(e,t,r):Ra(t,e.options.strict,r),c=n?e.directives.tagName(n.source,e=>r(n,`TAG_RESOLVE_FAILED`,e)):null,l;l=e.options.stringKeys&&e.atKey?e.schema[Xn]:c?qa(e.schema,i,c,n,r):t.type===`scalar`?Ja(e,i,t,r):e.schema[Xn];let u;try{let a=l.resolve(i,e=>r(n??t,`TAG_RESOLVE_FAILED`,e),e.options);u=q(a)?a:new Q(a)}catch(e){let a=e instanceof Error?e.message:String(e);r(n??t,`TAG_RESOLVE_FAILED`,a),u=new Q(i)}return u.range=s,u.source=i,a&&(u.type=a),c&&(u.tag=c),l.format&&(u.format=l.format),o&&(u.comment=o),u}function qa(e,t,n,r,i){if(n===`!`)return e[Xn];let a=[];for(let t of e.tags)if(!t.collection&&t.tag===n)if(t.default&&t.test)a.push(t);else return t;for(let e of a)if(e.test?.test(t))return e;let o=e.knownTags[n];return o&&!o.collection?(e.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(i(r,`TAG_RESOLVE_FAILED`,`Unresolved tag: ${n}`,n!==`tag:yaml.org,2002:str`),e[Xn])}function Ja({atKey:e,directives:t,schema:n},r,i,a){let o=n.tags.find(t=>(t.default===!0||e&&t.default===`key`)&&t.test?.test(r))||n[Xn];if(n.compat){let e=n.compat.find(e=>e.default&&e.test?.test(r))??n[Xn];o.tag!==e.tag&&a(i,`TAG_RESOLVE_FAILED`,`Value may be parsed as either ${t.tagString(o.tag)} or ${t.tagString(e.tag)}`,!0)}return o}function Ya(e,t,n){if(t){n??=t.length;for(let r=n-1;r>=0;--r){let n=t[r];switch(n.type){case`space`:case`comment`:case`newline`:e-=n.source.length;continue}for(n=t[++r];n?.type===`space`;)e+=n.source.length,n=t[++r];break}}return e}var Xa={composeNode:Za,composeEmptyNode:Qa};function Za(e,t,n,r){let i=e.atKey,{spaceBefore:a,comment:o,anchor:s,tag:c}=n,l,u=!0;switch(t.type){case`alias`:l=$a(e,t,r),(s||c)&&r(t,`ALIAS_PROPS`,`An alias node must not specify any properties`);break;case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:case`block-scalar`:l=Ka(e,t,c,r),s&&(l.anchor=s.source.substring(1));break;case`block-map`:case`block-seq`:case`flow-collection`:l=Pa(Xa,e,t,n,r),s&&(l.anchor=s.source.substring(1));break;default:r(t,`UNEXPECTED_TOKEN`,t.type===`error`?t.message:`Unsupported token (type: ${t.type})`),l=Qa(e,t.offset,void 0,null,n,r),u=!1}return s&&l.anchor===``&&r(s,`BAD_ALIAS`,`Anchor cannot be an empty string`),i&&e.options.stringKeys&&(!q(l)||typeof l.value!=`string`||l.tag&&l.tag!==`tag:yaml.org,2002:str`)&&r(c??t,`NON_STRING_KEY`,`With stringKeys, all keys must be strings`),a&&(l.spaceBefore=!0),o&&(t.type===`scalar`&&t.source===``?l.comment=o:l.commentBefore=o),e.options.keepSourceTokens&&u&&(l.srcToken=t),l}function Qa(e,t,n,r,{spaceBefore:i,comment:a,anchor:o,tag:s,end:c},l){let u=Ka(e,{type:`scalar`,offset:Ya(t,n,r),indent:-1,source:``},s,l);return o&&(u.anchor=o.source.substring(1),u.anchor===``&&l(o,`BAD_ALIAS`,`Anchor cannot be an empty string`)),i&&(u.spaceBefore=!0),a&&(u.comment=a,u.range[2]=c),u}function $a({options:e},{offset:t,source:n,end:r},i){let a=new xr(n.substring(1));a.source===``&&i(t,`BAD_ALIAS`,`Alias cannot be an empty string`),a.source.endsWith(`:`)&&i(t+n.length-1,`BAD_ALIAS`,`Alias ending in : is ambiguous`,!0);let o=t+n.length,s=ka(r,o,e.strict,i);return a.range=[t,o,s.offset],s.comment&&(a.comment=s.comment),a}function eo(e,t,{offset:n,start:r,value:i,end:a},o){let s=new ga(void 0,Object.assign({_directives:t},e)),c={atKey:!1,atRoot:!0,directives:s.directives,options:s.options,schema:s.schema},l=Sa(r,{indicator:`doc-start`,next:i??a?.[0],offset:n,onError:o,parentIndent:0,startOnNewline:!0});l.found&&(s.directives.docStart=!0,i&&(i.type===`block-map`||i.type===`block-seq`)&&!l.hasNewline&&o(l.end,`MISSING_CHAR`,`Block collection cannot start on same line with directives-end marker`)),s.contents=i?Za(c,i,l,o):Qa(c,l.end,r,null,l,o);let u=s.contents.range[2],d=ka(a,u,!1,o);return d.comment&&(s.comment=d.comment),s.range=[n,u,d.offset],s}function to(e){if(typeof e==`number`)return[e,e+1];if(Array.isArray(e))return e.length===2?e:[e[0],e[1]];let{offset:t,source:n}=e;return[t,t+(typeof n==`string`?n.length:1)]}function no(e){let t=``,n=!1,r=!1;for(let i=0;i<e.length;++i){let a=e[i];switch(a[0]){case`#`:t+=(t===``?``:r?`
|
|
84
|
-
|
|
85
|
-
`:`
|
|
86
|
-
`)+(a.substring(1)||` `),n=!0,r=!1;break;case`%`:e[i+1]?.[0]!==`#`&&(i+=1),n=!1;break;default:n||(r=!0),n=!1}}return{comment:t,afterEmptyLine:r}}var ro=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(e,t,n,r)=>{let i=to(e);r?this.warnings.push(new ba(i,t,n)):this.errors.push(new ya(i,t,n))},this.directives=new mr({version:e.version||`1.2`}),this.options=e}decorate(e,t){let{comment:n,afterEmptyLine:r}=no(this.prelude);if(n){let i=e.contents;if(t)e.comment=e.comment?`${e.comment}\n${n}`:n;else if(r||e.directives.docStart||!i)e.commentBefore=n;else if(J(i)&&!i.flow&&i.items.length>0){let e=i.items[0];K(e)&&(e=e.key);let t=e.commentBefore;e.commentBefore=t?`${n}\n${t}`:n}else{let e=i.commentBefore;i.commentBefore=e?`${n}\n${e}`:n}}t?(Array.prototype.push.apply(e.errors,this.errors),Array.prototype.push.apply(e.warnings,this.warnings)):(e.errors=this.errors,e.warnings=this.warnings),this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:no(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=!1,n=-1){for(let t of e)yield*this.next(t);yield*this.end(t,n)}*next(e){switch(e.type){case`directive`:this.directives.add(e.source,(t,n,r)=>{let i=to(e);i[0]+=t,this.onError(i,`BAD_DIRECTIVE`,n,r)}),this.prelude.push(e.source),this.atDirectives=!0;break;case`document`:{let t=eo(this.options,this.directives,e,this.onError);this.atDirectives&&!t.directives.docStart&&this.onError(e,`MISSING_CHAR`,`Missing directives-end/doc-start indicator line`),this.decorate(t,!1),this.doc&&(yield this.doc),this.doc=t,this.atDirectives=!1;break}case`byte-order-mark`:case`space`:break;case`comment`:case`newline`:this.prelude.push(e.source);break;case`error`:{let t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,n=new ya(to(e),`UNEXPECTED_TOKEN`,t);this.atDirectives||!this.doc?this.errors.push(n):this.doc.errors.push(n);break}case`doc-end`:{if(!this.doc){this.errors.push(new ya(to(e),`UNEXPECTED_TOKEN`,`Unexpected doc-end without preceding document`));break}this.doc.directives.docEnd=!0;let t=ka(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),t.comment){let e=this.doc.comment;this.doc.comment=e?`${e}\n${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new ya(to(e),`UNEXPECTED_TOKEN`,`Unsupported token ${e.type}`))}}*end(e=!1,t=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){let e=new ga(void 0,Object.assign({_directives:this.directives},this.options));this.atDirectives&&this.onError(t,`MISSING_CHAR`,`Missing directives-end indicator line`),e.range=[0,t,t],this.decorate(e,!1),yield e}}},io=Symbol(`break visit`),ao=Symbol(`skip children`),oo=Symbol(`remove item`);function so(e,t){`type`in e&&e.type===`document`&&(e={start:e.start,value:e.value}),co(Object.freeze([]),e,t)}so.BREAK=io,so.SKIP=ao,so.REMOVE=oo,so.itemAtPath=(e,t)=>{let n=e;for(let[e,r]of t){let t=n?.[e];if(t&&`items`in t)n=t.items[r];else return}return n},so.parentCollection=(e,t)=>{let n=so.itemAtPath(e,t.slice(0,-1)),r=t[t.length-1][0],i=n?.[r];if(i&&`items`in i)return i;throw Error(`Parent collection not found`)};function co(e,t,n){let r=n(t,e);if(typeof r==`symbol`)return r;for(let i of[`key`,`value`]){let a=t[i];if(a&&`items`in a){for(let t=0;t<a.items.length;++t){let r=co(Object.freeze(e.concat([[i,t]])),a.items[t],n);if(typeof r==`number`)t=r-1;else if(r===io)return io;else r===oo&&(a.items.splice(t,1),--t)}typeof r==`function`&&i===`key`&&(r=r(t,e))}}return typeof r==`function`?r(t,e):r}function lo(e){switch(e){case``:return`byte-order-mark`;case``:return`doc-mode`;case``:return`flow-error-end`;case``:return`scalar`;case`---`:return`doc-start`;case`...`:return`doc-end`;case``:case`
|
|
87
|
-
`:case`\r
|
|
88
|
-
`:return`newline`;case`-`:return`seq-item-ind`;case`?`:return`explicit-key-ind`;case`:`:return`map-value-ind`;case`{`:return`flow-map-start`;case`}`:return`flow-map-end`;case`[`:return`flow-seq-start`;case`]`:return`flow-seq-end`;case`,`:return`comma`}switch(e[0]){case` `:case` `:return`space`;case`#`:return`comment`;case`%`:return`directive-line`;case`*`:return`alias`;case`&`:return`anchor`;case`!`:return`tag`;case`'`:return`single-quoted-scalar`;case`"`:return`double-quoted-scalar`;case`|`:case`>`:return`block-scalar-header`}return null}function uo(e){switch(e){case void 0:case` `:case`
|
|
89
|
-
`:case`\r`:case` `:return!0;default:return!1}}var fo=new Set(`0123456789ABCDEFabcdef`),po=new Set(`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()`),mo=new Set(`,[]{}`),ho=new Set(` ,[]{}
|
|
90
|
-
\r `),go=e=>!e||ho.has(e),_o=class{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer=``,this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(e,t=!1){if(e){if(typeof e!=`string`)throw TypeError(`source is not a string`);this.buffer=this.buffer?this.buffer+e:e,this.lineEndPos=null}this.atEnd=!t;let n=this.next??`stream`;for(;n&&(t||this.hasChars(1));)n=yield*this.parseNext(n)}atLineEnd(){let e=this.pos,t=this.buffer[e];for(;t===` `||t===` `;)t=this.buffer[++e];return!t||t===`#`||t===`
|
|
91
|
-
`?!0:t===`\r`?this.buffer[e+1]===`
|
|
92
|
-
`:!1}charAt(e){return this.buffer[this.pos+e]}continueScalar(e){let t=this.buffer[e];if(this.indentNext>0){let n=0;for(;t===` `;)t=this.buffer[++n+e];if(t===`\r`){let t=this.buffer[n+e+1];if(t===`
|
|
93
|
-
`||!t&&!this.atEnd)return e+n+1}return t===`
|
|
94
|
-
`||n>=this.indentNext||!t&&!this.atEnd?e+n:-1}if(t===`-`||t===`.`){let t=this.buffer.substr(e,3);if((t===`---`||t===`...`)&&uo(this.buffer[e+3]))return-1}return e}getLine(){let e=this.lineEndPos;return(typeof e!=`number`||e!==-1&&e<this.pos)&&(e=this.buffer.indexOf(`
|
|
95
|
-
`,this.pos),this.lineEndPos=e),e===-1?this.atEnd?this.buffer.substring(this.pos):null:(this.buffer[e-1]===`\r`&&--e,this.buffer.substring(this.pos,e))}hasChars(e){return this.pos+e<=this.buffer.length}setNext(e){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=e,null}peek(e){return this.buffer.substr(this.pos,e)}*parseNext(e){switch(e){case`stream`:return yield*this.parseStream();case`line-start`:return yield*this.parseLineStart();case`block-start`:return yield*this.parseBlockStart();case`doc`:return yield*this.parseDocument();case`flow`:return yield*this.parseFlowCollection();case`quoted-scalar`:return yield*this.parseQuotedScalar();case`block-scalar`:return yield*this.parseBlockScalar();case`plain-scalar`:return yield*this.parsePlainScalar()}}*parseStream(){let e=this.getLine();if(e===null)return this.setNext(`stream`);if(e[0]===``&&(yield*this.pushCount(1),e=e.substring(1)),e[0]===`%`){let t=e.length,n=e.indexOf(`#`);for(;n!==-1;){let r=e[n-1];if(r===` `||r===` `){t=n-1;break}else n=e.indexOf(`#`,n+1)}for(;;){let n=e[t-1];if(n===` `||n===` `)--t;else break}let r=(yield*this.pushCount(t))+(yield*this.pushSpaces(!0));return yield*this.pushCount(e.length-r),this.pushNewline(),`stream`}if(this.atLineEnd()){let t=yield*this.pushSpaces(!0);return yield*this.pushCount(e.length-t),yield*this.pushNewline(),`stream`}return yield``,yield*this.parseLineStart()}*parseLineStart(){let e=this.charAt(0);if(!e&&!this.atEnd)return this.setNext(`line-start`);if(e===`-`||e===`.`){if(!this.atEnd&&!this.hasChars(4))return this.setNext(`line-start`);let e=this.peek(3);if((e===`---`||e===`...`)&&uo(this.charAt(3)))return yield*this.pushCount(3),this.indentValue=0,this.indentNext=0,e===`---`?`doc`:`stream`}return this.indentValue=yield*this.pushSpaces(!1),this.indentNext>this.indentValue&&!uo(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){let[e,t]=this.peek(2);if(!t&&!this.atEnd)return this.setNext(`block-start`);if((e===`-`||e===`?`||e===`:`)&&uo(t)){let e=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=e,yield*this.parseBlockStart()}return`doc`}*parseDocument(){yield*this.pushSpaces(!0);let e=this.getLine();if(e===null)return this.setNext(`doc`);let t=yield*this.pushIndicators();switch(e[t]){case`#`:yield*this.pushCount(e.length-t);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case`{`:case`[`:return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,`flow`;case`}`:case`]`:return yield*this.pushCount(1),`doc`;case`*`:return yield*this.pushUntil(go),`doc`;case`"`:case`'`:return yield*this.parseQuotedScalar();case`|`:case`>`:return t+=yield*this.parseBlockScalarHeader(),t+=yield*this.pushSpaces(!0),yield*this.pushCount(e.length-t),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let e,t,n=-1;do e=yield*this.pushNewline(),e>0?(t=yield*this.pushSpaces(!1),this.indentValue=n=t):t=0,t+=yield*this.pushSpaces(!0);while(e+t>0);let r=this.getLine();if(r===null)return this.setNext(`flow`);if((n!==-1&&n<this.indentNext&&r[0]!==`#`||n===0&&(r.startsWith(`---`)||r.startsWith(`...`))&&uo(r[3]))&&!(n===this.indentNext-1&&this.flowLevel===1&&(r[0]===`]`||r[0]===`}`)))return this.flowLevel=0,yield``,yield*this.parseLineStart();let i=0;for(;r[i]===`,`;)i+=yield*this.pushCount(1),i+=yield*this.pushSpaces(!0),this.flowKey=!1;switch(i+=yield*this.pushIndicators(),r[i]){case void 0:return`flow`;case`#`:return yield*this.pushCount(r.length-i),`flow`;case`{`:case`[`:return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel+=1,`flow`;case`}`:case`]`:return yield*this.pushCount(1),this.flowKey=!0,--this.flowLevel,this.flowLevel?`flow`:`doc`;case`*`:return yield*this.pushUntil(go),`flow`;case`"`:case`'`:return this.flowKey=!0,yield*this.parseQuotedScalar();case`:`:{let e=this.charAt(1);if(this.flowKey||uo(e)||e===`,`)return this.flowKey=!1,yield*this.pushCount(1),yield*this.pushSpaces(!0),`flow`}default:return this.flowKey=!1,yield*this.parsePlainScalar()}}*parseQuotedScalar(){let e=this.charAt(0),t=this.buffer.indexOf(e,this.pos+1);if(e===`'`)for(;t!==-1&&this.buffer[t+1]===`'`;)t=this.buffer.indexOf(`'`,t+2);else for(;t!==-1;){let e=0;for(;this.buffer[t-1-e]===`\\`;)e+=1;if(e%2==0)break;t=this.buffer.indexOf(`"`,t+1)}let n=this.buffer.substring(0,t),r=n.indexOf(`
|
|
96
|
-
`,this.pos);if(r!==-1){for(;r!==-1;){let e=this.continueScalar(r+1);if(e===-1)break;r=n.indexOf(`
|
|
97
|
-
`,e)}r!==-1&&(t=r-(n[r-1]===`\r`?2:1))}if(t===-1){if(!this.atEnd)return this.setNext(`quoted-scalar`);t=this.buffer.length}return yield*this.pushToIndex(t+1,!1),this.flowLevel?`flow`:`doc`}*parseBlockScalarHeader(){this.blockScalarIndent=-1,this.blockScalarKeep=!1;let e=this.pos;for(;;){let t=this.buffer[++e];if(t===`+`)this.blockScalarKeep=!0;else if(t>`0`&&t<=`9`)this.blockScalarIndent=Number(t)-1;else if(t!==`-`)break}return yield*this.pushUntil(e=>uo(e)||e===`#`)}*parseBlockScalar(){let e=this.pos-1,t=0,n;loop:for(let r=this.pos;n=this.buffer[r];++r)switch(n){case` `:t+=1;break;case`
|
|
98
|
-
`:e=r,t=0;break;case`\r`:{let e=this.buffer[r+1];if(!e&&!this.atEnd)return this.setNext(`block-scalar`);if(e===`
|
|
99
|
-
`)break}default:break loop}if(!n&&!this.atEnd)return this.setNext(`block-scalar`);if(t>=this.indentNext){this.blockScalarIndent===-1?this.indentNext=t:this.indentNext=this.blockScalarIndent+(this.indentNext===0?1:this.indentNext);do{let t=this.continueScalar(e+1);if(t===-1)break;e=this.buffer.indexOf(`
|
|
100
|
-
`,t)}while(e!==-1);if(e===-1){if(!this.atEnd)return this.setNext(`block-scalar`);e=this.buffer.length}}let r=e+1;for(n=this.buffer[r];n===` `;)n=this.buffer[++r];if(n===` `){for(;n===` `||n===` `||n===`\r`||n===`
|
|
101
|
-
`;)n=this.buffer[++r];e=r-1}else if(!this.blockScalarKeep)do{let n=e-1,r=this.buffer[n];r===`\r`&&(r=this.buffer[--n]);let i=n;for(;r===` `;)r=this.buffer[--n];if(r===`
|
|
102
|
-
`&&n>=this.pos&&n+1+t>i)e=n;else break}while(!0);return yield``,yield*this.pushToIndex(e+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let e=this.flowLevel>0,t=this.pos-1,n=this.pos-1,r;for(;r=this.buffer[++n];)if(r===`:`){let r=this.buffer[n+1];if(uo(r)||e&&mo.has(r))break;t=n}else if(uo(r)){let i=this.buffer[n+1];if(r===`\r`&&(i===`
|
|
103
|
-
`?(n+=1,r=`
|
|
104
|
-
`,i=this.buffer[n+1]):t=n),i===`#`||e&&mo.has(i))break;if(r===`
|
|
105
|
-
`){let e=this.continueScalar(n+1);if(e===-1)break;n=Math.max(n,e-2)}}else{if(e&&mo.has(r))break;t=n}return!r&&!this.atEnd?this.setNext(`plain-scalar`):(yield``,yield*this.pushToIndex(t+1,!0),e?`flow`:`doc`)}*pushCount(e){return e>0?(yield this.buffer.substr(this.pos,e),this.pos+=e,e):0}*pushToIndex(e,t){let n=this.buffer.slice(this.pos,e);return n?(yield n,this.pos+=n.length,n.length):(t&&(yield``),0)}*pushIndicators(){switch(this.charAt(0)){case`!`:return(yield*this.pushTag())+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case`&`:return(yield*this.pushUntil(go))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case`-`:case`?`:case`:`:{let e=this.flowLevel>0,t=this.charAt(1);if(uo(t)||e&&mo.has(t))return e?this.flowKey&&=!1:this.indentNext=this.indentValue+1,(yield*this.pushCount(1))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators())}}return 0}*pushTag(){if(this.charAt(1)===`<`){let e=this.pos+2,t=this.buffer[e];for(;!uo(t)&&t!==`>`;)t=this.buffer[++e];return yield*this.pushToIndex(t===`>`?e+1:e,!1)}else{let e=this.pos+1,t=this.buffer[e];for(;t;)if(po.has(t))t=this.buffer[++e];else if(t===`%`&&fo.has(this.buffer[e+1])&&fo.has(this.buffer[e+2]))t=this.buffer[e+=3];else break;return yield*this.pushToIndex(e,!1)}}*pushNewline(){let e=this.buffer[this.pos];return e===`
|
|
106
|
-
`?yield*this.pushCount(1):e===`\r`&&this.charAt(1)===`
|
|
107
|
-
`?yield*this.pushCount(2):0}*pushSpaces(e){let t=this.pos-1,n;do n=this.buffer[++t];while(n===` `||e&&n===` `);let r=t-this.pos;return r>0&&(yield this.buffer.substr(this.pos,r),this.pos=t),r}*pushUntil(e){let t=this.pos,n=this.buffer[t];for(;!e(n);)n=this.buffer[++t];return yield*this.pushToIndex(t,!1)}},vo=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let t=0,n=this.lineStarts.length;for(;t<n;){let r=t+n>>1;this.lineStarts[r]<e?t=r+1:n=r}if(this.lineStarts[t]===e)return{line:t+1,col:1};if(t===0)return{line:0,col:e};let r=this.lineStarts[t-1];return{line:t,col:e-r+1}}}};function yo(e,t){for(let n=0;n<e.length;++n)if(e[n].type===t)return!0;return!1}function bo(e){for(let t=0;t<e.length;++t)switch(e[t].type){case`space`:case`comment`:case`newline`:break;default:return t}return-1}function xo(e){switch(e?.type){case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:case`flow-collection`:return!0;default:return!1}}function So(e){switch(e.type){case`document`:return e.start;case`block-map`:{let t=e.items[e.items.length-1];return t.sep??t.start}case`block-seq`:return e.items[e.items.length-1].start;default:return[]}}function Co(e){if(e.length===0)return[];let t=e.length;loop:for(;--t>=0;)switch(e[t].type){case`doc-start`:case`explicit-key-ind`:case`map-value-ind`:case`seq-item-ind`:case`newline`:break loop}for(;e[++t]?.type===`space`;);return e.splice(t,e.length)}function wo(e){if(e.start.type===`flow-seq-start`)for(let t of e.items)t.sep&&!t.value&&!yo(t.start,`explicit-key-ind`)&&!yo(t.sep,`map-value-ind`)&&(t.key&&(t.value=t.key),delete t.key,xo(t.value)?t.value.end?Array.prototype.push.apply(t.value.end,t.sep):t.value.end=t.sep:Array.prototype.push.apply(t.start,t.sep),delete t.sep)}var To=class{constructor(e){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source=``,this.type=``,this.lexer=new _o,this.onNewLine=e}*parse(e,t=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let n of this.lexer.lex(e,t))yield*this.next(n);t||(yield*this.end())}*next(e){if(this.source=e,this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let t=lo(e);if(!t){let t=`Not a YAML token: ${e}`;yield*this.pop({type:`error`,offset:this.offset,message:t,source:e}),this.offset+=e.length}else if(t===`scalar`)this.atNewLine=!1,this.atScalar=!0,this.type=`scalar`;else{switch(this.type=t,yield*this.step(),t){case`newline`:this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+e.length);break;case`space`:this.atNewLine&&e[0]===` `&&(this.indent+=e.length);break;case`explicit-key-ind`:case`map-value-ind`:case`seq-item-ind`:this.atNewLine&&(this.indent+=e.length);break;case`doc-mode`:case`flow-error-end`:return;default:this.atNewLine=!1}this.offset+=e.length}}*end(){for(;this.stack.length>0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let e=this.peek(1);if(this.type===`doc-end`&&e?.type!==`doc-end`){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:`doc-end`,offset:this.offset,source:this.source});return}if(!e)return yield*this.stream();switch(e.type){case`document`:return yield*this.document(e);case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return yield*this.scalar(e);case`block-scalar`:return yield*this.blockScalar(e);case`block-map`:return yield*this.blockMap(e);case`block-seq`:return yield*this.blockSequence(e);case`flow-collection`:return yield*this.flowCollection(e);case`doc-end`:return yield*this.documentEnd(e)}yield*this.pop()}peek(e){return this.stack[this.stack.length-e]}*pop(e){let t=e??this.stack.pop();if(!t)yield{type:`error`,offset:this.offset,source:``,message:`Tried to pop an empty stack`};else if(this.stack.length===0)yield t;else{let e=this.peek(1);switch(t.type===`block-scalar`?t.indent=`indent`in e?e.indent:0:t.type===`flow-collection`&&e.type===`document`&&(t.indent=0),t.type===`flow-collection`&&wo(t),e.type){case`document`:e.value=t;break;case`block-scalar`:e.props.push(t);break;case`block-map`:{let n=e.items[e.items.length-1];if(n.value){e.items.push({start:[],key:t,sep:[]}),this.onKeyLine=!0;return}else if(n.sep)n.value=t;else{Object.assign(n,{key:t,sep:[]}),this.onKeyLine=!n.explicitKey;return}break}case`block-seq`:{let n=e.items[e.items.length-1];n.value?e.items.push({start:[],value:t}):n.value=t;break}case`flow-collection`:{let n=e.items[e.items.length-1];!n||n.value?e.items.push({start:[],key:t,sep:[]}):n.sep?n.value=t:Object.assign(n,{key:t,sep:[]});return}default:yield*this.pop(),yield*this.pop(t)}if((e.type===`document`||e.type===`block-map`||e.type===`block-seq`)&&(t.type===`block-map`||t.type===`block-seq`)){let n=t.items[t.items.length-1];n&&!n.sep&&!n.value&&n.start.length>0&&bo(n.start)===-1&&(t.indent===0||n.start.every(e=>e.type!==`comment`||e.indent<t.indent))&&(e.type===`document`?e.end=n.start:e.items.push({start:n.start}),t.items.splice(-1,1))}}}*stream(){switch(this.type){case`directive-line`:yield{type:`directive`,offset:this.offset,source:this.source};return;case`byte-order-mark`:case`space`:case`comment`:case`newline`:yield this.sourceToken;return;case`doc-mode`:case`doc-start`:{let e={type:`document`,offset:this.offset,start:[]};this.type===`doc-start`&&e.start.push(this.sourceToken),this.stack.push(e);return}}yield{type:`error`,offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document(e){if(e.value)return yield*this.lineEnd(e);switch(this.type){case`doc-start`:bo(e.start)===-1?e.start.push(this.sourceToken):(yield*this.pop(),yield*this.step());return;case`anchor`:case`tag`:case`space`:case`comment`:case`newline`:e.start.push(this.sourceToken);return}let t=this.startBlockValue(e);t?this.stack.push(t):yield{type:`error`,offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar(e){if(this.type===`map-value-ind`){let t=Co(So(this.peek(2))),n;e.end?(n=e.end,n.push(this.sourceToken),delete e.end):n=[this.sourceToken];let r={type:`block-map`,offset:e.offset,indent:e.indent,items:[{start:t,key:e,sep:n}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=r}else yield*this.lineEnd(e)}*blockScalar(e){switch(this.type){case`space`:case`comment`:case`newline`:e.props.push(this.sourceToken);return;case`scalar`:if(e.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let e=this.source.indexOf(`
|
|
108
|
-
`)+1;for(;e!==0;)this.onNewLine(this.offset+e),e=this.source.indexOf(`
|
|
109
|
-
`,e)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(e){let t=e.items[e.items.length-1];switch(this.type){case`newline`:if(this.onKeyLine=!1,t.value){let n=`end`in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type===`comment`?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`space`:case`comment`:if(t.value)e.items.push({start:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else{if(this.atIndentedComment(t.start,e.indent)){let n=e.items[e.items.length-2]?.value?.end;if(Array.isArray(n)){Array.prototype.push.apply(n,t.start),n.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return}if(this.indent>=e.indent){let n=!this.onKeyLine&&this.indent===e.indent,r=n&&(t.sep||t.explicitKey)&&this.type!==`seq-item-ind`,i=[];if(r&&t.sep&&!t.value){let n=[];for(let r=0;r<t.sep.length;++r){let i=t.sep[r];switch(i.type){case`newline`:n.push(r);break;case`space`:break;case`comment`:i.indent>e.indent&&(n.length=0);break;default:n.length=0}}n.length>=2&&(i=t.sep.splice(n[1]))}switch(this.type){case`anchor`:case`tag`:r||t.value?(i.push(this.sourceToken),e.items.push({start:i}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`explicit-key-ind`:!t.sep&&!t.explicitKey?(t.start.push(this.sourceToken),t.explicitKey=!0):r||t.value?(i.push(this.sourceToken),e.items.push({start:i,explicitKey:!0})):this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case`map-value-ind`:if(t.explicitKey)if(!t.sep)if(yo(t.start,`newline`))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let e=Co(t.start);this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:e,key:null,sep:[this.sourceToken]}]})}else if(t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(yo(t.sep,`map-value-ind`))this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:i,key:null,sep:[this.sourceToken]}]});else if(xo(t.key)&&!yo(t.sep,`newline`)){let e=Co(t.start),n=t.key,r=t.sep;r.push(this.sourceToken),delete t.key,delete t.sep,this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:e,key:n,sep:r}]})}else i.length>0?t.sep=t.sep.concat(i,this.sourceToken):t.sep.push(this.sourceToken);else t.sep?t.value||r?e.items.push({start:i,key:null,sep:[this.sourceToken]}):yo(t.sep,`map-value-ind`)?this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:{let n=this.flowScalar(this.type);r||t.value?(e.items.push({start:i,key:n,sep:[]}),this.onKeyLine=!0):t.sep?this.stack.push(n):(Object.assign(t,{key:n,sep:[]}),this.onKeyLine=!0);return}default:{let r=this.startBlockValue(e);if(r){if(r.type===`block-seq`){if(!t.explicitKey&&t.sep&&!yo(t.sep,`newline`)){yield*this.pop({type:`error`,offset:this.offset,message:`Unexpected block-seq-ind on same line with key`,source:this.source});return}}else n&&e.items.push({start:i});this.stack.push(r);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(e){let t=e.items[e.items.length-1];switch(this.type){case`newline`:if(t.value){let n=`end`in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type===`comment`?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case`space`:case`comment`:if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){let n=e.items[e.items.length-2]?.value?.end;if(Array.isArray(n)){Array.prototype.push.apply(n,t.start),n.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return;case`anchor`:case`tag`:if(t.value||this.indent<=e.indent)break;t.start.push(this.sourceToken);return;case`seq-item-ind`:if(this.indent!==e.indent)break;t.value||yo(t.start,`seq-item-ind`)?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return}if(this.indent>e.indent){let t=this.startBlockValue(e);if(t){this.stack.push(t);return}}yield*this.pop(),yield*this.step()}*flowCollection(e){let t=e.items[e.items.length-1];if(this.type===`flow-error-end`){let e;do yield*this.pop(),e=this.peek(1);while(e?.type===`flow-collection`)}else if(e.end.length===0){switch(this.type){case`comma`:case`explicit-key-ind`:!t||t.sep?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return;case`map-value-ind`:!t||t.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});return;case`space`:case`comment`:case`newline`:case`anchor`:case`tag`:!t||t.value?e.items.push({start:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:{let n=this.flowScalar(this.type);!t||t.value?e.items.push({start:[],key:n,sep:[]}):t.sep?this.stack.push(n):Object.assign(t,{key:n,sep:[]});return}case`flow-map-end`:case`flow-seq-end`:e.end.push(this.sourceToken);return}let n=this.startBlockValue(e);n?this.stack.push(n):(yield*this.pop(),yield*this.step())}else{let t=this.peek(2);if(t.type===`block-map`&&(this.type===`map-value-ind`&&t.indent===e.indent||this.type===`newline`&&!t.items[t.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type===`map-value-ind`&&t.type!==`flow-collection`){let n=Co(So(t));wo(e);let r=e.end.splice(1,e.end.length);r.push(this.sourceToken);let i={type:`block-map`,offset:e.offset,indent:e.indent,items:[{start:n,key:e,sep:r}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=i}else yield*this.lineEnd(e)}}flowScalar(e){if(this.onNewLine){let e=this.source.indexOf(`
|
|
110
|
-
`)+1;for(;e!==0;)this.onNewLine(this.offset+e),e=this.source.indexOf(`
|
|
111
|
-
`,e)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return this.flowScalar(this.type);case`block-scalar-header`:return{type:`block-scalar`,offset:this.offset,indent:this.indent,props:[this.sourceToken],source:``};case`flow-map-start`:case`flow-seq-start`:return{type:`flow-collection`,offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case`seq-item-ind`:return{type:`block-seq`,offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case`explicit-key-ind`:{this.onKeyLine=!0;let t=Co(So(e));return t.push(this.sourceToken),{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,explicitKey:!0}]}}case`map-value-ind`:{this.onKeyLine=!0;let t=Co(So(e));return{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!==`comment`||this.indent<=t?!1:e.every(e=>e.type===`newline`||e.type===`space`)}*documentEnd(e){this.type!==`doc-mode`&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop()))}*lineEnd(e){switch(this.type){case`comma`:case`doc-start`:case`doc-end`:case`flow-seq-end`:case`flow-map-end`:case`map-value-ind`:yield*this.pop(),yield*this.step();break;case`newline`:this.onKeyLine=!1;default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop())}}};function Eo(e){let t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new vo||null,prettyErrors:t}}function Do(e,t={}){let{lineCounter:n,prettyErrors:r}=Eo(t),i=new To(n?.addNewLine),a=new ro(t),o=null;for(let t of a.compose(i.parse(e),!0,e.length))if(!o)o=t;else if(o.options.logLevel!==`silent`){o.errors.push(new ya(t.range.slice(0,2),`MULTIPLE_DOCS`,`Source contains multiple documents; please use YAML.parseAllDocuments()`));break}return r&&n&&(o.errors.forEach(xa(e,n)),o.warnings.forEach(xa(e,n))),o}function Oo(e,t,n){let r;typeof t==`function`?r=t:n===void 0&&t&&typeof t==`object`&&(n=t);let i=Do(e,n);if(!i)return null;if(i.warnings.forEach(e=>$r(i.options.logLevel,e)),i.errors.length>0){if(i.options.logLevel!==`silent`)throw i.errors[0];i.errors=[]}return i.toJS(Object.assign({reviver:r},n))}function ko(e,t,n){let r=null;if(typeof t==`function`||Array.isArray(t)?r=t:n===void 0&&t&&(n=t),typeof n==`string`&&(n=n.length),typeof n==`number`){let e=Math.round(n);n=e<1?void 0:e>8?{indent:8}:{indent:e}}if(e===void 0){let{keepUndefined:e}=n??t??{};if(!e)return}return $n(e)&&!r?e.toString(n):new ga(e,r,n).toString(n)}var Ao=ht.Root,jo=e.forwardRef(({className:e,...t},n)=>j(ht.List,{ref:n,className:k(`inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground`,e),...t}));jo.displayName=`TabsList`;var Mo=e.forwardRef(({className:e,...t},n)=>j(ht.Trigger,{ref:n,className:k(`inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow`,e),...t}));Mo.displayName=`TabsTrigger`;var No=e.forwardRef(({className:e,...t},n)=>j(ht.Content,{ref:n,className:k(`mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`,e),...t}));No.displayName=`TabsContent`;function Po({config:e,pluginKeys:t,onSave:n,saving:r}){let o=a(()=>{let n=new Set(t);return n.add(`plugins`),Object.keys(e).filter(e=>!n.has(e))},[e,t]),[c,l]=s({}),[u,d]=s(!1);i(()=>{let t={};for(let n of o)t[n]=e[n];l(t),d(!1)},[e,o]);let f=(e,t)=>{l(n=>({...n,[e]:t})),d(!0)};return o.length===0?j(I,{children:M(z,{className:`flex flex-col items-center gap-3 py-12`,children:[j(`div`,{className:`flex items-center justify-center w-16 h-16 rounded-full bg-muted`,children:j(Me,{className:`w-8 h-8 text-muted-foreground`})}),j(`h3`,{className:`text-lg font-semibold`,children:`暂无通用配置`}),j(`p`,{className:`text-sm text-muted-foreground`,children:`配置文件中未发现可编辑的通用字段`})]})}):M(`div`,{className:`space-y-4`,children:[j(`div`,{className:`space-y-3`,children:o.map(e=>j(Fo,{fieldKey:e,value:c[e],onChange:t=>f(e,t)},e))}),M(`div`,{className:`flex items-center gap-2 pt-2`,children:[j(P,{size:`sm`,onClick:async()=>{await n(c),d(!1)},disabled:r||!u,children:r?M(A,{children:[j(O,{className:`w-4 h-4 mr-1 animate-spin`}),`保存中...`]}):M(A,{children:[j(ke,{className:`w-4 h-4 mr-1`}),`保存`]})}),u&&M(P,{variant:`outline`,size:`sm`,onClick:()=>{let t={};for(let n of o)t[n]=e[n];l(t),d(!1)},children:[j(Ue,{className:`w-4 h-4 mr-1`}),`撤销`]}),u&&j(`span`,{className:`text-xs text-muted-foreground`,children:`有未保存的更改`})]})]})}function Fo({fieldKey:e,value:t,onChange:n}){let r=typeof t;if(t==null)return M(`div`,{className:`p-3 rounded-lg bg-muted/50 border space-y-1.5`,children:[M(`div`,{className:`flex items-center gap-1.5`,children:[j(`span`,{className:`text-sm font-medium`,children:e}),j(B,{variant:`outline`,className:`text-[10px] px-1 py-0`,children:`null`})]}),j(F,{value:``,placeholder:`(空值)`,onChange:e=>n(e.target.value||null),className:`h-8 text-sm`})]});if(r===`boolean`)return j(`div`,{className:`p-3 rounded-lg bg-muted/50 border space-y-1.5`,children:M(`div`,{className:`flex items-center justify-between`,children:[M(`div`,{className:`flex items-center gap-1.5`,children:[j(`span`,{className:`text-sm font-medium`,children:e}),j(B,{variant:`outline`,className:`text-[10px] px-1 py-0`,children:`boolean`})]}),j(`button`,{type:`button`,onClick:()=>n(!t),className:`relative inline-flex h-5 w-9 items-center rounded-full transition-colors ${t?`bg-primary`:`bg-muted-foreground/30`}`,children:j(`span`,{className:`inline-block h-3.5 w-3.5 rounded-full bg-white transition-transform ${t?`translate-x-4.5`:`translate-x-0.5`}`})})]})});if(r===`number`)return M(`div`,{className:`p-3 rounded-lg bg-muted/50 border space-y-1.5`,children:[M(`div`,{className:`flex items-center gap-1.5`,children:[j(`span`,{className:`text-sm font-medium`,children:e}),j(B,{variant:`outline`,className:`text-[10px] px-1 py-0`,children:`number`})]}),j(F,{type:`number`,value:t,onChange:e=>n(Number(e.target.value)),className:`h-8 text-sm`})]});if(r===`string`){let r=t.includes(`
|
|
112
|
-
`)||t.length>80;return M(`div`,{className:`p-3 rounded-lg bg-muted/50 border space-y-1.5`,children:[M(`div`,{className:`flex items-center gap-1.5`,children:[j(`span`,{className:`text-sm font-medium`,children:e}),j(B,{variant:`outline`,className:`text-[10px] px-1 py-0`,children:`string`})]}),r?j(W,{value:t,onChange:e=>n(e.target.value),className:`text-sm font-mono min-h-[80px]`}):j(F,{value:t,onChange:e=>n(e.target.value),className:`h-8 text-sm`})]})}return Array.isArray(t)?M(`div`,{className:`p-3 rounded-lg bg-muted/50 border space-y-1.5`,children:[M(`div`,{className:`flex items-center gap-1.5`,children:[j(`span`,{className:`text-sm font-medium`,children:e}),M(B,{variant:`outline`,className:`text-[10px] px-1 py-0`,children:[`array[`,t.length,`]`]})]}),j(W,{value:ko(t).trim(),onChange:e=>{try{let t=Oo(e.target.value);Array.isArray(t)&&n(t)}catch{}},className:`text-sm font-mono min-h-[80px]`})]}):r===`object`?M(`div`,{className:`p-3 rounded-lg bg-muted/50 border space-y-1.5`,children:[M(`div`,{className:`flex items-center gap-1.5`,children:[j(`span`,{className:`text-sm font-medium`,children:e}),j(B,{variant:`outline`,className:`text-[10px] px-1 py-0`,children:`object`})]}),j(W,{value:ko(t).trim(),onChange:e=>{try{let t=Oo(e.target.value);t&&typeof t==`object`&&!Array.isArray(t)&&n(t)}catch{}},className:`text-sm font-mono min-h-[100px]`})]}):M(`div`,{className:`p-3 rounded-lg bg-muted/50 border space-y-1.5`,children:[M(`div`,{className:`flex items-center gap-1.5`,children:[j(`span`,{className:`text-sm font-medium`,children:e}),j(B,{variant:`outline`,className:`text-[10px] px-1 py-0`,children:r})]}),j(F,{value:String(t),onChange:e=>n(e.target.value),className:`h-8 text-sm`})]})}function Io(){let{yaml:e,pluginKeys:t,loading:n,error:o,load:c,save:l}=tt(),[d,f]=s(`form`),[p,m]=s(``),[h,g]=s(!1),[_,y]=s(!1),[b,x]=s(null);i(()=>{e&&(m(e),g(!1))},[e]);let S=a(()=>{try{return Oo(e)||{}}catch{return{}}},[e]),C=r((e,t)=>{x({type:e,text:t}),setTimeout(()=>x(null),3e3)},[]);return n&&!e?M(`div`,{className:`space-y-4`,children:[j(`h1`,{className:`text-2xl font-bold tracking-tight`,children:`配置管理`}),M(`div`,{className:`flex items-center justify-center py-12`,children:[j(O,{className:`w-6 h-6 animate-spin text-muted-foreground`}),j(`span`,{className:`ml-2 text-sm text-muted-foreground`,children:`加载配置中...`})]})]}):M(`div`,{className:`space-y-4`,children:[M(`div`,{className:`flex items-center justify-between`,children:[M(`div`,{children:[j(`h1`,{className:`text-2xl font-bold tracking-tight`,children:`配置管理`}),j(`p`,{className:`text-sm text-muted-foreground mt-1`,children:`管理 zhin.config.yml 中的通用配置项(不含插件配置)`})]}),j(`div`,{className:`flex items-center gap-2`,children:M(P,{variant:`outline`,size:`sm`,onClick:async()=>{try{await c(),C(`success`,`已刷新`)}catch{C(`error`,`刷新失败`)}},disabled:n,children:[j(Oe,{className:`w-4 h-4 mr-1 ${n?`animate-spin`:``}`}),`刷新`]})})]}),b&&M(V,{variant:b.type===`error`?`destructive`:`success`,className:`py-2`,children:[b.type===`error`?j(u,{className:`h-4 w-4`}):j(v,{className:`h-4 w-4`}),j(H,{children:b.text})]}),o&&!b&&M(V,{variant:`destructive`,className:`py-2`,children:[j(u,{className:`h-4 w-4`}),j(H,{children:o})]}),M(Ao,{value:d,onValueChange:e=>f(e),children:[M(jo,{children:[M(Mo,{value:`form`,className:`gap-1.5`,children:[j(se,{className:`w-4 h-4`}),`表单模式`]}),M(Mo,{value:`yaml`,className:`gap-1.5`,children:[j(re,{className:`w-4 h-4`}),`YAML 模式`]})]}),j(No,{value:`form`,children:j(Po,{config:S,pluginKeys:t,onSave:async t=>{y(!0);try{await l(ko({...Oo(e)||{},...t},{lineWidth:0})),C(`success`,`配置已保存,需重启生效`)}catch(e){C(`error`,`保存失败: ${e instanceof Error?e.message:`未知错误`}`)}finally{y(!1)}},saving:_})}),j(No,{value:`yaml`,children:M(`div`,{className:`space-y-3`,children:[j(`div`,{className:`relative`,children:j(W,{value:p,onChange:e=>{m(e.target.value),g(!0)},className:`font-mono text-sm min-h-[400px] resize-y`,placeholder:`# zhin.config.yml`,spellCheck:!1})}),M(`div`,{className:`flex items-center gap-2`,children:[j(P,{size:`sm`,onClick:async()=>{y(!0);try{await l(p),g(!1),C(`success`,`配置已保存,需重启生效`)}catch(e){C(`error`,`保存失败: ${e instanceof Error?e.message:`未知错误`}`)}finally{y(!1)}},disabled:_||!h,children:_?M(A,{children:[j(O,{className:`w-4 h-4 mr-1 animate-spin`}),`保存中...`]}):M(A,{children:[j(ke,{className:`w-4 h-4 mr-1`}),`保存`]})}),h&&M(P,{variant:`outline`,size:`sm`,onClick:()=>{m(e),g(!1)},children:[j(Ue,{className:`w-4 h-4 mr-1`}),`撤销`]}),h&&j(`span`,{className:`text-xs text-muted-foreground`,children:`有未保存的更改`})]})]})})]})]})}var Lo=/^(.*(?:PASSWORD|SECRET|TOKEN|KEY|PRIVATE|CREDENTIAL).*?=\s*)(.+)$/gim;function Ro(e){return e.replace(Lo,(e,t,n)=>{if(n.startsWith("${")||n.trim()===``)return t+n;let r=n.length>4?n.slice(0,2):``;return t+r+`●`.repeat(Math.min(n.length-r.length,20))})}function zo({filename:e,getFile:t,saveFile:n,exists:a}){let[o,c]=s(``),[l,d]=s(``),[f,p]=s(!1),[m,h]=s(!1),[g,_]=s(!0),[y,b]=s(null),[x,S]=s(!1),C=r(async()=>{p(!0);try{let n=await t(e);c(n),d(n),S(!0)}catch(e){b({type:`error`,text:`加载失败: ${e instanceof Error?e.message:`未知错误`}`})}finally{p(!1)}},[e,t]);i(()=>{C()},[C]);let w=async()=>{h(!0),b(null);try{await n(e,o),d(o),b({type:`success`,text:`已保存,需重启生效`}),setTimeout(()=>b(null),3e3)}catch(e){b({type:`error`,text:`保存失败: ${e instanceof Error?e.message:`未知错误`}`})}finally{h(!1)}},T=o!==l,E=g&&!T?Ro(o):o;return f&&!x?M(`div`,{className:`flex items-center justify-center py-8`,children:[j(O,{className:`w-5 h-5 animate-spin text-muted-foreground`}),j(`span`,{className:`ml-2 text-sm text-muted-foreground`,children:`加载中...`})]}):M(`div`,{className:`space-y-3`,children:[!a&&!T&&M(V,{className:`py-2 border-yellow-500/50 text-yellow-700 dark:text-yellow-400`,children:[j(ae,{className:`h-4 w-4`}),j(H,{children:`文件不存在,保存后将自动创建`})]}),y&&M(V,{variant:y.type===`error`?`destructive`:`success`,className:`py-2`,children:[y.type===`error`?j(u,{className:`h-4 w-4`}):j(v,{className:`h-4 w-4`}),j(H,{children:y.text})]}),j(`div`,{className:`relative`,children:j(W,{value:E,onChange:e=>{c(e.target.value),_(!1)},onFocus:()=>_(!1),className:`font-mono text-sm min-h-[350px] resize-y`,placeholder:`KEY=VALUE`,spellCheck:!1})}),M(`div`,{className:`flex items-center gap-2`,children:[j(P,{size:`sm`,onClick:w,disabled:m||!T,children:m?M(A,{children:[j(O,{className:`w-4 h-4 mr-1 animate-spin`}),`保存中...`]}):M(A,{children:[j(ke,{className:`w-4 h-4 mr-1`}),`保存`]})}),T&&j(P,{variant:`outline`,size:`sm`,onClick:()=>{c(l),_(!0)},children:`撤销`}),j(P,{variant:`ghost`,size:`sm`,onClick:()=>_(e=>!e),disabled:T,title:g?`显示敏感值`:`隐藏敏感值`,children:j(g?te:D,{className:`w-4 h-4`})}),T&&j(`span`,{className:`text-xs text-muted-foreground`,children:`有未保存的更改`})]})]})}function Bo(){let{files:e,loading:t,error:n,listFiles:r,getFile:i,saveFile:a}=it(),[o,c]=s(`.env`);return t&&e.length===0?M(`div`,{className:`space-y-4`,children:[j(`h1`,{className:`text-2xl font-bold tracking-tight`,children:`环境变量`}),M(`div`,{className:`flex items-center justify-center py-12`,children:[j(O,{className:`w-6 h-6 animate-spin text-muted-foreground`}),j(`span`,{className:`ml-2 text-sm text-muted-foreground`,children:`加载中...`})]})]}):M(`div`,{className:`space-y-4`,children:[M(`div`,{className:`flex items-center justify-between`,children:[M(`div`,{children:[j(`h1`,{className:`text-2xl font-bold tracking-tight`,children:`环境变量`}),j(`p`,{className:`text-sm text-muted-foreground mt-1`,children:`管理 .env 文件中的环境变量,修改后需重启生效`})]}),M(P,{variant:`outline`,size:`sm`,onClick:async()=>{try{await r()}catch{}},disabled:t,children:[j(Oe,{className:`w-4 h-4 mr-1 ${t?`animate-spin`:``}`}),`刷新`]})]}),n&&M(V,{variant:`destructive`,className:`py-2`,children:[j(u,{className:`h-4 w-4`}),j(H,{children:n})]}),M(Ao,{value:o,onValueChange:c,children:[j(jo,{children:[`.env`,`.env.development`,`.env.production`].map(t=>{let n=e.find(e=>e.name===t);return M(Mo,{value:t,className:`gap-1.5`,children:[j(fe,{className:`w-3.5 h-3.5`}),t,n&&!n.exists&&j(B,{variant:`outline`,className:`text-[10px] px-1 py-0 ml-1`,children:`新`})]},t)})}),[`.env`,`.env.development`,`.env.production`].map(t=>j(No,{value:t,children:j(zo,{filename:t,getFile:i,saveFile:a,exists:e.find(e=>e.name===t)?.exists??!1})},t))]})]})}function Vo(e){switch(e.split(`.`).pop()?.toLowerCase()){case`ts`:case`tsx`:return j(re,{className:`w-4 h-4 text-blue-500`});case`js`:case`jsx`:return j(re,{className:`w-4 h-4 text-yellow-500`});case`json`:return j(ne,{className:`w-4 h-4 text-green-500`});case`yml`:case`yaml`:return j(ne,{className:`w-4 h-4 text-red-400`});case`md`:return j(ne,{className:`w-4 h-4 text-gray-400`});case`env`:return j(ne,{className:`w-4 h-4 text-orange-500`});default:return e.startsWith(`.env`)?j(ne,{className:`w-4 h-4 text-orange-500`}):j(ne,{className:`w-4 h-4 text-muted-foreground`})}}var Ho=`https://cdn.jsdelivr.net.cn/npm/@highlightjs/cdn-assets@11/styles`;function Uo(e){let t=e.split(`/`).pop()?.toLowerCase()||``;if(t===`.env`||t.startsWith(`.env.`))return`ini`;switch(t.split(`.`).pop()?.toLowerCase()){case`ts`:case`tsx`:return`typescript`;case`js`:case`jsx`:return`javascript`;case`css`:return`css`;case`scss`:return`scss`;case`less`:return`less`;case`json`:return`json`;case`yml`:case`yaml`:return`yaml`;case`md`:return`markdown`;case`xml`:case`html`:return`xml`;case`sh`:case`bash`:return`bash`;default:return null}}function Wo(){i(()=>{let e=`hljs-theme-css`,t=document.getElementById(e);t||(t=document.createElement(`link`),t.id=e,t.rel=`stylesheet`,document.head.appendChild(t));let n=()=>{let e=document.documentElement.classList.contains(`dark`);t.href=`${Ho}/${e?`github-dark`:`github`}.min.css`};n();let r=new MutationObserver(n);return r.observe(document.documentElement,{attributes:!0,attributeFilter:[`class`]}),()=>r.disconnect()},[])}var Go={fontFamily:`ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace`,fontSize:`13px`,lineHeight:`20px`,tabSize:2,whiteSpace:`pre`};function Ko({value:e,onChange:t,language:n}){let i=o(null),s=o(null),c=a(()=>{if(window.hljs&&n&&window.hljs.getLanguage(n))try{return window.hljs.highlight(e,{language:n}).value}catch{}return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`)},[e,n]),l=r(()=>{s.current&&i.current&&(s.current.scrollTop=i.current.scrollTop,s.current.scrollLeft=i.current.scrollLeft)},[]),u=r(n=>{if(n.key===`Tab`){n.preventDefault();let r=n.currentTarget,i=r.selectionStart,a=r.selectionEnd;t(e.substring(0,i)+` `+e.substring(a)),requestAnimationFrame(()=>{r.selectionStart=r.selectionEnd=i+2})}},[e,t]);return M(`div`,{className:`relative h-full w-full overflow-hidden`,children:[j(`pre`,{ref:s,className:`absolute inset-0 m-0 p-4 overflow-auto pointer-events-none`,style:Go,"aria-hidden":!0,children:j(`code`,{className:n?`hljs language-${n}`:``,dangerouslySetInnerHTML:{__html:c+`
|
|
113
|
-
`},style:{background:`transparent`,padding:0,display:`block`}})}),j(`textarea`,{ref:i,value:e,onChange:e=>t(e.target.value),onScroll:l,onKeyDown:u,wrap:`off`,className:`absolute inset-0 w-full h-full resize-none p-4 bg-transparent outline-none border-0`,style:{...Go,color:`transparent`,caretColor:`hsl(var(--foreground))`,WebkitTextFillColor:`transparent`},spellCheck:!1,autoCapitalize:`off`,autoCorrect:`off`})]})}function qo({node:e,selectedPath:t,onSelect:n,depth:r=0}){let[i,a]=s(r<1),o=e.path===t,c=e.type===`directory`;return M(`div`,{children:[M(`button`,{className:`
|
|
114
|
-
w-full flex items-center gap-1.5 px-2 py-1 text-sm rounded-sm text-left
|
|
115
|
-
hover:bg-accent transition-colors
|
|
116
|
-
${o?`bg-accent text-accent-foreground font-medium`:``}
|
|
117
|
-
`,style:{paddingLeft:`${r*16+8}px`},onClick:()=>{c?a(!i):n(e.path)},children:[c?j(i?y:x,{className:`w-3.5 h-3.5 shrink-0 text-muted-foreground`}):j(`span`,{className:`w-3.5`}),c?j(oe,{className:`w-4 h-4 shrink-0 text-amber-500`}):Vo(e.name),j(`span`,{className:`truncate`,children:e.name})]}),c&&i&&e.children&&j(`div`,{children:e.children.map(e=>j(qo,{node:e,selectedPath:t,onSelect:n,depth:r+1},e.path))})]})}function Jo({filePath:e,readFile:t,saveFile:n,onClose:a}){let[o,c]=s(``),[l,d]=s(``),[f,p]=s(!0),[m,h]=s(!1),[g,_]=s(null),y=r(async()=>{p(!0),_(null);try{let n=await t(e);c(n),d(n)}catch(e){_({type:`error`,text:`加载失败: ${e instanceof Error?e.message:`未知错误`}`})}finally{p(!1)}},[e,t]);i(()=>{y()},[y]);let b=async()=>{h(!0),_(null);try{await n(e,o),d(o),_({type:`success`,text:`已保存`}),setTimeout(()=>_(null),3e3)}catch(e){_({type:`error`,text:`保存失败: ${e instanceof Error?e.message:`未知错误`}`})}finally{h(!1)}};i(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&e.key===`s`&&(e.preventDefault(),x&&!m&&b())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)});let x=o!==l,S=e.split(`/`).pop()||e;return f?M(`div`,{className:`flex items-center justify-center h-full`,children:[j(O,{className:`w-5 h-5 animate-spin text-muted-foreground`}),j(`span`,{className:`ml-2 text-sm text-muted-foreground`,children:`加载中...`})]}):M(`div`,{className:`flex flex-col h-full`,children:[M(`div`,{className:`flex items-center justify-between px-4 py-2 border-b bg-muted/30`,children:[M(`div`,{className:`flex items-center gap-2`,children:[Vo(S),j(`span`,{className:`text-sm font-medium`,children:e}),x&&j(B,{variant:`secondary`,className:`text-[10px] px-1.5 py-0`,children:`未保存`})]}),j(`div`,{className:`flex items-center gap-1`,children:j(P,{size:`sm`,variant:`ghost`,onClick:a,title:`关闭`,children:j(Ue,{className:`w-4 h-4`})})})]}),g&&M(V,{variant:g.type===`error`?`destructive`:`success`,className:`mx-4 mt-2 py-2`,children:[g.type===`error`?j(u,{className:`h-4 w-4`}):j(v,{className:`h-4 w-4`}),j(H,{children:g.text})]}),j(`div`,{className:`flex-1 min-h-0`,children:j(Ko,{value:o,onChange:c,language:Uo(S)})}),M(`div`,{className:`flex items-center gap-2 px-4 py-2 border-t bg-muted/30`,children:[j(P,{size:`sm`,onClick:b,disabled:m||!x,children:m?M(A,{children:[j(O,{className:`w-4 h-4 mr-1 animate-spin`}),`保存中...`]}):M(A,{children:[j(ke,{className:`w-4 h-4 mr-1`}),`保存`]})}),x&&j(P,{variant:`outline`,size:`sm`,onClick:()=>c(l),children:`撤销更改`}),M(`span`,{className:`text-xs text-muted-foreground ml-auto`,children:[o.split(`
|
|
118
|
-
`).length,` 行 · Ctrl+S 保存`]})]})]})}function Yo(){Wo();let{tree:e,loading:t,error:n,loadTree:r,readFile:i,saveFile:a}=at(),[o,c]=s(null);return M(`div`,{className:`space-y-4`,children:[M(`div`,{className:`flex items-center justify-between`,children:[M(`div`,{children:[j(`h1`,{className:`text-2xl font-bold tracking-tight`,children:`文件管理`}),j(`p`,{className:`text-sm text-muted-foreground mt-1`,children:`浏览和编辑工作空间中的配置文件和源代码`})]}),M(P,{variant:`outline`,size:`sm`,onClick:()=>r(),disabled:t,children:[j(Oe,{className:`w-4 h-4 mr-1 ${t?`animate-spin`:``}`}),`刷新`]})]}),n&&M(V,{variant:`destructive`,className:`py-2`,children:[j(u,{className:`h-4 w-4`}),j(H,{children:n})]}),j(I,{className:`overflow-hidden`,children:j(z,{className:`p-0`,children:M(`div`,{className:`flex`,style:{height:`600px`},children:[M(`div`,{className:`w-64 border-r flex flex-col shrink-0`,children:[j(`div`,{className:`px-3 py-2 border-b bg-muted/30`,children:j(`span`,{className:`text-xs font-medium text-muted-foreground uppercase tracking-wider`,children:`文件浏览器`})}),j(Ht,{className:`flex-1`,children:j(`div`,{className:`py-1`,children:t&&e.length===0?j(`div`,{className:`flex items-center justify-center py-8`,children:j(O,{className:`w-4 h-4 animate-spin text-muted-foreground`})}):e.length===0?j(`p`,{className:`text-sm text-muted-foreground text-center py-8`,children:`暂无文件`}):e.map(e=>j(qo,{node:e,selectedPath:o,onSelect:c},e.path))})})]}),j(`div`,{className:`flex-1 min-w-0`,children:o?j(Jo,{filePath:o,readFile:i,saveFile:a,onClose:()=>c(null)},o):j(`div`,{className:`flex items-center justify-center h-full text-muted-foreground`,children:M(`div`,{className:`text-center`,children:[j(oe,{className:`w-12 h-12 mx-auto mb-3 opacity-30`}),j(`p`,{className:`text-sm`,children:`在左侧选择一个文件开始编辑`}),j(`p`,{className:`text-xs mt-1 opacity-60`,children:`支持 .env、src/、package.json 等关键文件`})]})})})]})})})]})}var Xo=dt.Root;dt.Trigger;var Zo=dt.Portal,Qo=dt.Close,$o=e.forwardRef(({className:e,...t},n)=>j(dt.Overlay,{ref:n,className:k(`fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`,e),...t}));$o.displayName=`DialogOverlay`;var es=e.forwardRef(({className:e,children:t,...n},r)=>M(Zo,{children:[j($o,{}),M(dt.Content,{ref:r,className:k(`fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg`,e),...n,children:[t,M(dt.Close,{className:`absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground`,children:[j(Ue,{className:`h-4 w-4`}),j(`span`,{className:`sr-only`,children:`Close`})]})]})]}));es.displayName=`DialogContent`;var ts=({className:e,...t})=>j(`div`,{className:k(`flex flex-col space-y-1.5 text-center sm:text-left`,e),...t});ts.displayName=`DialogHeader`;var ns=({className:e,...t})=>j(`div`,{className:k(`flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2`,e),...t});ns.displayName=`DialogFooter`;var rs=e.forwardRef(({className:e,...t},n)=>j(dt.Title,{ref:n,className:k(`text-lg font-semibold leading-none tracking-tight`,e),...t}));rs.displayName=`DialogTitle`;var is=e.forwardRef(({className:e,...t},n)=>j(dt.Description,{ref:n,className:k(`text-sm text-muted-foreground`,e),...t}));is.displayName=`DialogDescription`;function as({label:e,value:t,onChange:n}){return M(`div`,{className:`space-y-1`,children:[j(`label`,{className:`text-xs font-medium text-muted-foreground`,children:e}),j(F,{value:t,onChange:e=>n(e.target.value),className:`font-mono text-xs`})]})}function os({tableName:e,tableInfo:t,select:n,insert:o,update:c,remove:l}){let[d,f]=s(null),[p,m]=s(!1),[h,g]=s(1),[_,y]=s(null),[S,C]=s(null),[w,T]=s(!1),[E,ee]=s({}),te=r(async()=>{m(!0),y(null);try{f(await n(e,h,50))}catch(e){y({type:`error`,text:e.message})}finally{m(!1)}},[e,h,n]);i(()=>{te()},[te]);let D=a(()=>t?.columns?Object.keys(t.columns):d?.rows?.length?Object.keys(d.rows[0]):[],[t,d]),ne=a(()=>{if(!t?.columns)return D[0]||`id`;let e=Object.entries(t.columns).find(([,e])=>e.primary);return e?e[0]:D[0]||`id`},[t,D]),re=async t=>{try{let n={};for(let e of D){let t=E[e];if(!(t===void 0||t===``))try{n[e]=JSON.parse(t)}catch{n[e]=t}}t?await o(e,n):await c(e,n,{[ne]:S[ne]}),y({type:`success`,text:t?`添加成功`:`更新成功`}),C(null),T(!1),ee({}),setTimeout(()=>y(null),2e3),await te()}catch(e){y({type:`error`,text:e.message})}},ie=async t=>{if(confirm(`确定要删除这条记录吗?`))try{await l(e,{[ne]:t[ne]}),y({type:`success`,text:`删除成功`}),setTimeout(()=>y(null),2e3),await te()}catch(e){y({type:`error`,text:e.message})}},ae=e=>{C(e),T(!1);let t={};for(let n of D)t[n]=typeof e[n]==`object`?JSON.stringify(e[n]):String(e[n]??``);ee(t)},oe=()=>{C(null),T(!0);let e={};for(let t of D)e[t]=``;ee(e)},se=d?Math.ceil(d.total/50):0;return M(`div`,{className:`space-y-3`,children:[_&&M(V,{variant:_.type===`error`?`destructive`:`success`,className:`py-2`,children:[_.type===`error`?j(u,{className:`h-4 w-4`}):j(v,{className:`h-4 w-4`}),j(H,{children:_.text})]}),M(`div`,{className:`flex items-center gap-2`,children:[M(P,{size:`sm`,variant:`outline`,onClick:te,disabled:p,children:[j(Oe,{className:`w-3.5 h-3.5 mr-1 ${p?`animate-spin`:``}`}),`刷新`]}),M(P,{size:`sm`,onClick:oe,children:[j(Ee,{className:`w-3.5 h-3.5 mr-1`}),`添加`]}),M(`span`,{className:`text-xs text-muted-foreground ml-auto`,children:[`共 `,d?.total??0,` 条 · 第 `,h,`/`,se||1,` 页`]})]}),j(Ht,{className:`border rounded-md`,children:j(`div`,{className:`overflow-x-auto`,children:M(`table`,{className:`w-full text-sm`,children:[j(`thead`,{children:M(`tr`,{className:`border-b bg-muted/50`,children:[D.map(e=>j(`th`,{className:`px-3 py-2 text-left font-medium text-muted-foreground whitespace-nowrap`,children:e},e)),j(`th`,{className:`px-3 py-2 text-right font-medium text-muted-foreground w-20`,children:`操作`})]})}),j(`tbody`,{children:p&&!d?j(`tr`,{children:j(`td`,{colSpan:D.length+1,className:`text-center py-8`,children:j(O,{className:`w-4 h-4 animate-spin inline-block`})})}):d?.rows?.length?d.rows.map((e,t)=>M(`tr`,{className:`border-b hover:bg-muted/30 transition-colors`,children:[D.map(t=>j(`td`,{className:`px-3 py-1.5 font-mono text-xs max-w-[300px] truncate`,children:typeof e[t]==`object`?JSON.stringify(e[t]):String(e[t]??``)},t)),M(`td`,{className:`px-3 py-1.5 text-right space-x-1 whitespace-nowrap`,children:[j(P,{size:`sm`,variant:`ghost`,className:`h-6 w-6 p-0`,onClick:()=>ae(e),children:j(we,{className:`w-3 h-3`})}),j(P,{size:`sm`,variant:`ghost`,className:`h-6 w-6 p-0 text-destructive`,onClick:()=>ie(e),children:j(Re,{className:`w-3 h-3`})})]})]},t)):j(`tr`,{children:j(`td`,{colSpan:D.length+1,className:`text-center py-8 text-muted-foreground`,children:`暂无数据`})})})]})})}),se>1&&M(`div`,{className:`flex items-center justify-center gap-2`,children:[j(P,{size:`sm`,variant:`outline`,disabled:h<=1,onClick:()=>g(e=>e-1),children:j(b,{className:`w-4 h-4`})}),M(`span`,{className:`text-xs text-muted-foreground`,children:[h,` / `,se]}),j(P,{size:`sm`,variant:`outline`,disabled:h>=se,onClick:()=>g(e=>e+1),children:j(x,{className:`w-4 h-4`})})]}),j(Xo,{open:S!==null||w,onOpenChange:e=>{e||(C(null),T(!1))},children:M(es,{className:`max-w-md max-h-[80vh] overflow-y-auto`,children:[j(ts,{children:j(rs,{children:w?`添加记录`:`编辑记录`})}),j(`div`,{className:`space-y-3 py-2`,children:D.map(e=>j(as,{label:e,value:E[e]??``,onChange:t=>ee(n=>({...n,[e]:t}))},e))}),M(ns,{children:[j(Qo,{asChild:!0,children:j(P,{variant:`outline`,size:`sm`,children:`取消`})}),M(P,{size:`sm`,onClick:()=>re(w),children:[j(ke,{className:`w-3.5 h-3.5 mr-1`}),`保存`]})]})]})})]})}function ss({tableName:e,select:t,insert:n,update:a,remove:o}){let[c,l]=s(null),[d,f]=s(!1),[p,m]=s(1),[h,g]=s(null),[_,y]=s(null),[S,C]=s(!1),[w,T]=s(``),E=r(async()=>{f(!0),g(null);try{l(await t(e,p,20))}catch(e){g({type:`error`,text:e.message})}finally{f(!1)}},[e,p,t]);i(()=>{E()},[E]);let ee=async t=>{try{let r=JSON.parse(w);if(t)await n(e,r);else{let{_id:t,...n}=r;await a(e,n,{_id:_._id})}g({type:`success`,text:t?`添加成功`:`更新成功`}),y(null),C(!1),T(``),setTimeout(()=>g(null),2e3),await E()}catch(e){g({type:`error`,text:e.message})}},te=async t=>{if(confirm(`确定要删除这条文档吗?`))try{await o(e,{_id:t._id}),g({type:`success`,text:`删除成功`}),setTimeout(()=>g(null),2e3),await E()}catch(e){g({type:`error`,text:e.message})}},D=c?Math.ceil(c.total/20):0;return M(`div`,{className:`space-y-3`,children:[h&&M(V,{variant:h.type===`error`?`destructive`:`success`,className:`py-2`,children:[h.type===`error`?j(u,{className:`h-4 w-4`}):j(v,{className:`h-4 w-4`}),j(H,{children:h.text})]}),M(`div`,{className:`flex items-center gap-2`,children:[M(P,{size:`sm`,variant:`outline`,onClick:E,disabled:d,children:[j(Oe,{className:`w-3.5 h-3.5 mr-1 ${d?`animate-spin`:``}`}),`刷新`]}),M(P,{size:`sm`,onClick:()=>{C(!0),T(`{
|
|
119
|
-
|
|
120
|
-
}`)},children:[j(Ee,{className:`w-3.5 h-3.5 mr-1`}),`添加文档`]}),M(`span`,{className:`text-xs text-muted-foreground ml-auto`,children:[`共 `,c?.total??0,` 条 · 第 `,p,`/`,D||1,` 页`]})]}),j(`div`,{className:`space-y-2`,children:d&&!c?j(`div`,{className:`text-center py-8`,children:j(O,{className:`w-4 h-4 animate-spin inline-block`})}):c?.rows?.length?c.rows.map((e,t)=>j(I,{className:`overflow-hidden`,children:j(z,{className:`p-3`,children:M(`div`,{className:`flex items-start justify-between gap-2`,children:[j(`pre`,{className:`text-xs font-mono flex-1 overflow-x-auto whitespace-pre-wrap break-all`,children:JSON.stringify(e,null,2)}),M(`div`,{className:`flex flex-col gap-1 shrink-0`,children:[j(P,{size:`sm`,variant:`ghost`,className:`h-6 w-6 p-0`,onClick:()=>{y(e),C(!1),T(JSON.stringify(e,null,2))},children:j(we,{className:`w-3 h-3`})}),j(P,{size:`sm`,variant:`ghost`,className:`h-6 w-6 p-0 text-destructive`,onClick:()=>te(e),children:j(Re,{className:`w-3 h-3`})})]})]})})},e._id||t)):j(`p`,{className:`text-center py-8 text-muted-foreground text-sm`,children:`暂无文档`})}),D>1&&M(`div`,{className:`flex items-center justify-center gap-2`,children:[j(P,{size:`sm`,variant:`outline`,disabled:p<=1,onClick:()=>m(e=>e-1),children:j(b,{className:`w-4 h-4`})}),M(`span`,{className:`text-xs text-muted-foreground`,children:[p,` / `,D]}),j(P,{size:`sm`,variant:`outline`,disabled:p>=D,onClick:()=>m(e=>e+1),children:j(x,{className:`w-4 h-4`})})]}),j(Xo,{open:_!==null||S,onOpenChange:e=>{e||(y(null),C(!1))},children:M(es,{className:`max-w-lg`,children:[j(ts,{children:j(rs,{children:S?`添加文档`:`编辑文档`})}),j(`textarea`,{value:w,onChange:e=>T(e.target.value),className:`w-full h-60 font-mono text-xs p-3 border rounded-md resize-none bg-background`,spellCheck:!1}),M(ns,{children:[j(Qo,{asChild:!0,children:j(P,{variant:`outline`,size:`sm`,children:`取消`})}),M(P,{size:`sm`,onClick:()=>ee(S),children:[j(ke,{className:`w-3.5 h-3.5 mr-1`}),`保存`]})]})]})})]})}function cs({tableName:e,kvGet:t,kvSet:n,kvDelete:a,kvEntries:o}){let[c,l]=s([]),[d,f]=s(!1),[p,m]=s(null),[h,g]=s(null),[_,y]=s(!1),[b,x]=s(``),[S,C]=s(``),w=r(async()=>{f(!0),m(null);try{l((await o(e)).entries)}catch(e){m({type:`error`,text:e.message})}finally{f(!1)}},[e,o]);i(()=>{w()},[w]);let T=async t=>{try{let r;try{r=JSON.parse(S)}catch{r=S}await n(e,b,r),m({type:`success`,text:t?`添加成功`:`更新成功`}),g(null),y(!1),x(``),C(``),setTimeout(()=>m(null),2e3),await w()}catch(e){m({type:`error`,text:e.message})}},E=async t=>{if(confirm(`确定要删除键 "${t}" 吗?`))try{await a(e,t),m({type:`success`,text:`删除成功`}),setTimeout(()=>m(null),2e3),await w()}catch(e){m({type:`error`,text:e.message})}};return M(`div`,{className:`space-y-3`,children:[p&&M(V,{variant:p.type===`error`?`destructive`:`success`,className:`py-2`,children:[p.type===`error`?j(u,{className:`h-4 w-4`}):j(v,{className:`h-4 w-4`}),j(H,{children:p.text})]}),M(`div`,{className:`flex items-center gap-2`,children:[M(P,{size:`sm`,variant:`outline`,onClick:w,disabled:d,children:[j(Oe,{className:`w-3.5 h-3.5 mr-1 ${d?`animate-spin`:``}`}),`刷新`]}),M(P,{size:`sm`,onClick:()=>{y(!0),x(``),C(``)},children:[j(Ee,{className:`w-3.5 h-3.5 mr-1`}),`添加键值`]}),M(`span`,{className:`text-xs text-muted-foreground ml-auto`,children:[`共 `,c.length,` 个键`]})]}),j(Ht,{className:`border rounded-md`,children:M(`table`,{className:`w-full text-sm`,children:[j(`thead`,{children:M(`tr`,{className:`border-b bg-muted/50`,children:[j(`th`,{className:`px-3 py-2 text-left font-medium text-muted-foreground w-1/3`,children:`Key`}),j(`th`,{className:`px-3 py-2 text-left font-medium text-muted-foreground`,children:`Value`}),j(`th`,{className:`px-3 py-2 text-right font-medium text-muted-foreground w-20`,children:`操作`})]})}),j(`tbody`,{children:d&&!c.length?j(`tr`,{children:j(`td`,{colSpan:3,className:`text-center py-8`,children:j(O,{className:`w-4 h-4 animate-spin inline-block`})})}):c.length?c.map(e=>M(`tr`,{className:`border-b hover:bg-muted/30 transition-colors`,children:[M(`td`,{className:`px-3 py-1.5 font-mono text-xs`,children:[j(de,{className:`w-3 h-3 inline-block mr-1 text-muted-foreground`}),e.key]}),j(`td`,{className:`px-3 py-1.5 font-mono text-xs max-w-[400px] truncate`,children:typeof e.value==`object`?JSON.stringify(e.value):String(e.value??``)}),M(`td`,{className:`px-3 py-1.5 text-right space-x-1 whitespace-nowrap`,children:[j(P,{size:`sm`,variant:`ghost`,className:`h-6 w-6 p-0`,onClick:()=>{g(e),y(!1),x(e.key),C(typeof e.value==`object`?JSON.stringify(e.value,null,2):String(e.value??``))},children:j(we,{className:`w-3 h-3`})}),j(P,{size:`sm`,variant:`ghost`,className:`h-6 w-6 p-0 text-destructive`,onClick:()=>E(e.key),children:j(Re,{className:`w-3 h-3`})})]})]},e.key)):j(`tr`,{children:j(`td`,{colSpan:3,className:`text-center py-8 text-muted-foreground`,children:`暂无数据`})})})]})}),j(Xo,{open:h!==null||_,onOpenChange:e=>{e||(g(null),y(!1))},children:M(es,{className:`max-w-md`,children:[j(ts,{children:j(rs,{children:_?`添加键值`:`编辑键值`})}),M(`div`,{className:`space-y-3 py-2`,children:[M(`div`,{className:`space-y-1`,children:[j(`label`,{className:`text-xs font-medium text-muted-foreground`,children:`Key`}),j(F,{value:b,onChange:e=>x(e.target.value),className:`font-mono text-xs`,disabled:!_})]}),M(`div`,{className:`space-y-1`,children:[j(`label`,{className:`text-xs font-medium text-muted-foreground`,children:`Value (JSON 或纯文本)`}),j(`textarea`,{value:S,onChange:e=>C(e.target.value),className:`w-full h-32 font-mono text-xs p-3 border rounded-md resize-none bg-background`,spellCheck:!1})]})]}),M(ns,{children:[j(Qo,{asChild:!0,children:j(P,{variant:`outline`,size:`sm`,children:`取消`})}),M(P,{size:`sm`,onClick:()=>T(_),children:[j(ke,{className:`w-3.5 h-3.5 mr-1`}),`保存`]})]})]})})]})}var ls={related:`关系型`,document:`文档型`,keyvalue:`键值型`},us={sqlite:`SQLite`,mysql:`MySQL`,pg:`PostgreSQL`,memory:`Memory`,mongodb:`MongoDB`,redis:`Redis`};function ds(){let{info:e,tables:t,loading:n,error:r,loadInfo:i,loadTables:o,dropTable:c,select:l,insert:d,update:f,remove:p,kvGet:m,kvSet:h,kvDelete:g,kvEntries:_}=nt(),[v,y]=s(null),b=a(()=>t.find(e=>e.name===v),[t,v]),x=e?.type??`related`;return M(`div`,{className:`space-y-4`,children:[M(`div`,{className:`flex items-center justify-between`,children:[M(`div`,{children:[j(`h1`,{className:`text-2xl font-bold tracking-tight`,children:`数据库管理`}),M(`p`,{className:`text-sm text-muted-foreground mt-1`,children:[`浏览和管理`,ls[x],`数据库中的数据`]})]}),M(`div`,{className:`flex items-center gap-2`,children:[e&&M(B,{variant:`secondary`,children:[us[e.dialect]||e.dialect,` · `,ls[e.type]]}),M(P,{variant:`outline`,size:`sm`,onClick:()=>{i().catch(()=>{}),o().catch(()=>{})},disabled:n,children:[j(Oe,{className:`w-4 h-4 mr-1 ${n?`animate-spin`:``}`}),`刷新`]})]})]}),r&&M(V,{variant:`destructive`,className:`py-2`,children:[j(u,{className:`h-4 w-4`}),j(H,{children:r})]}),j(I,{className:`overflow-hidden`,children:j(z,{className:`p-0`,children:M(`div`,{className:`flex`,style:{minHeight:`500px`},children:[M(`div`,{className:`w-56 border-r flex flex-col shrink-0`,children:[j(`div`,{className:`px-3 py-2 border-b bg-muted/30`,children:j(`span`,{className:`text-xs font-medium text-muted-foreground uppercase tracking-wider`,children:x===`related`?`数据表`:x===`document`?`集合`:`桶`})}),j(Ht,{className:`flex-1`,children:j(`div`,{className:`py-1`,children:n&&!t.length?j(`div`,{className:`flex items-center justify-center py-8`,children:j(O,{className:`w-4 h-4 animate-spin text-muted-foreground`})}):t.length?t.map(e=>M(`button`,{className:`
|
|
121
|
-
group w-full flex items-center gap-2 px-3 py-1.5 text-sm text-left
|
|
122
|
-
hover:bg-accent transition-colors rounded-sm
|
|
123
|
-
${v===e.name?`bg-accent text-accent-foreground font-medium`:``}
|
|
124
|
-
`,onClick:()=>y(e.name),children:[j(x===`keyvalue`?de:Ie,{className:`w-3.5 h-3.5 text-muted-foreground shrink-0`}),j(`span`,{className:`truncate flex-1`,children:e.name}),e.columns&&j(B,{variant:`secondary`,className:`ml-auto text-[10px] px-1 py-0`,children:Object.keys(e.columns).length}),j(P,{size:`sm`,variant:`ghost`,className:`h-5 w-5 p-0 opacity-0 group-hover:opacity-100 text-destructive shrink-0`,onClick:t=>{t.stopPropagation();let n=x===`related`?`表`:x===`document`?`集合`:`桶`;confirm(`确定要删除${n} "${e.name}" 吗?此操作不可撤销!`)&&c(e.name).then(()=>{v===e.name&&y(null)}).catch(()=>{})},children:j(Re,{className:`w-3 h-3`})})]},e.name)):j(`p`,{className:`text-sm text-muted-foreground text-center py-8`,children:`暂无数据`})})})]}),j(`div`,{className:`flex-1 min-w-0 p-4`,children:v?M(A,{children:[M(`div`,{className:`flex items-center gap-2 mb-4`,children:[j(Ie,{className:`w-5 h-5 text-muted-foreground`}),j(`h2`,{className:`text-lg font-semibold`,children:v}),b?.columns&&M(`div`,{className:`flex gap-1 ml-2 flex-wrap`,children:[Object.entries(b.columns).slice(0,8).map(([e,t])=>M(B,{variant:`outline`,className:`text-[10px] px-1.5 py-0`,children:[e,t.primary?` 🔑`:``,`: `,t.type]},e)),Object.keys(b.columns).length>8&&M(B,{variant:`outline`,className:`text-[10px] px-1.5 py-0`,children:[`+`,Object.keys(b.columns).length-8]})]})]}),x===`keyvalue`?j(cs,{tableName:v,kvGet:m,kvSet:h,kvDelete:g,kvEntries:_},v):x===`document`?j(ss,{tableName:v,select:l,insert:d,update:f,remove:p},v):j(os,{tableName:v,tableInfo:b,select:l,insert:d,update:f,remove:p},v)]}):j(`div`,{className:`flex items-center justify-center h-full text-muted-foreground`,children:M(`div`,{className:`text-center`,children:[j(ee,{className:`w-12 h-12 mx-auto mb-3 opacity-30`}),M(`p`,{className:`text-sm`,children:[`在左侧选择`,x===`related`?`一个表`:x===`document`?`一个集合`:`一个桶`,`开始管理`]})]})})})]})})})]})}function fs({onSuccess:e}){let[t,n]=s(``),[i,a]=s(``),[o,c]=s(!1),l=r(async()=>{let n=t.trim();if(!n){a(`请输入 Token`);return}c(!0),a(``);try{let t=await fetch(`/api/system/status`,{headers:{Authorization:`Bearer ${n}`}});t.ok?(Kt(n),e()):t.status===401?a(`Token 无效,请检查后重试`):a(`验证失败 (HTTP ${t.status})`)}catch{a(`无法连接到服务器`)}finally{c(!1)}},[t,e]);return j(`div`,{className:`flex items-center justify-center min-h-screen bg-background`,children:M(I,{className:k(`w-full max-w-md mx-4`),children:[M(L,{className:`text-center space-y-2`,children:[j(`div`,{className:`flex items-center justify-center mx-auto w-12 h-12 rounded-xl bg-foreground text-background font-bold text-xl`,children:`Z`}),j(R,{className:`text-xl`,children:`Zhin.js 控制台`}),j(Zt,{children:`请输入 API Token 以访问管理面板`})]}),j(z,{children:M(`form`,{onSubmit:e=>{e.preventDefault(),l()},className:`space-y-4`,children:[M(`div`,{className:`space-y-2`,children:[j(F,{type:`password`,placeholder:`API Token`,value:t,onChange:e=>{n(e.target.value),i&&a(``)},autoFocus:!0}),i&&j(`p`,{className:`text-sm text-destructive`,children:i})]}),j(P,{type:`submit`,className:`w-full`,disabled:o,children:o?`验证中...`:`登录`}),M(`p`,{className:`text-xs text-center text-muted-foreground`,children:[`Token 位于 `,j(`code`,{className:`text-xs bg-muted px-1 rounded`,children:`.env`}),` 文件的`,` `,j(`code`,{className:`text-xs bg-muted px-1 rounded`,children:`HTTP_TOKEN`}),` 中`]})]})})]})})}var ps=2e3;function ms(){let[e,t]=s([]),[n,a]=s(!0),[o,c]=s(null),[l,d]=s({}),[f,p]=s({}),m=r(async()=>{try{let e=await Yt(`/api/login-assist/pending`);if(!e.ok)throw Error(`获取待办失败`);let n=await e.json();t(Array.isArray(n)?n:[]),c(null)}catch(e){c(e.message)}finally{a(!1)}},[]);i(()=>{m();let e=setInterval(m,ps);return()=>clearInterval(e)},[m]);let h=async(e,t)=>{d(t=>({...t,[e]:!0}));try{if(!(await Yt(`/api/login-assist/submit`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:e,value:t})})).ok)throw Error(`提交失败`);p(t=>{let n={...t};return delete n[e],n}),await m()}catch(e){c(e.message)}finally{d(t=>({...t,[e]:!1}))}},g=async e=>{try{(await Yt(`/api/login-assist/cancel`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:e})})).ok&&await m()}catch{}},_={qrcode:j(De,{className:`w-4 h-4`}),sms:j(be,{className:`w-4 h-4`}),device:j(Pe,{className:`w-4 h-4`}),slider:j(Se,{className:`w-4 h-4`})},v={qrcode:`扫码登录`,sms:`短信验证码`,device:`设备验证`,slider:`滑块验证`,other:`其他`};return n&&e.length===0?M(`div`,{className:`space-y-6`,children:[j(U,{className:`h-8 w-48`}),j(U,{className:`h-32 w-full`})]}):M(`div`,{className:`space-y-6`,children:[M(`div`,{children:[j(`h1`,{className:`text-2xl font-bold tracking-tight`,children:`登录辅助`}),j(`p`,{className:`text-sm text-muted-foreground mt-1`,children:`需要人为辅助登录的待办会出现在下方,在 Web 完成操作或刷新页面后仍可继续处理。`})]}),j(rn,{}),o&&M(V,{variant:`destructive`,children:[j(u,{className:`h-4 w-4`}),j(H,{children:o})]}),e.length===0?j(I,{children:M(z,{className:`flex flex-col items-center gap-4 py-12`,children:[j(ge,{className:`w-16 h-16 text-muted-foreground/30`}),M(`div`,{className:`text-center`,children:[j(`h3`,{className:`text-lg font-semibold`,children:`暂无待办`}),j(`p`,{className:`text-sm text-muted-foreground`,children:`当有机器人需要扫码、短信或滑块验证时,待办会显示在这里`})]})]})}):j(`div`,{className:`grid gap-4`,children:e.map(e=>M(I,{children:[M(L,{className:`pb-2`,children:[M(`div`,{className:`flex items-center justify-between`,children:[M(R,{className:`text-base flex items-center gap-2`,children:[j(`span`,{className:`shrink-0`,children:_[e.type]??j(ge,{className:`w-4 h-4`})}),v[e.type]??e.type]}),M(`div`,{className:`flex items-center gap-2`,children:[j(B,{variant:`outline`,children:e.adapter}),j(B,{variant:`secondary`,children:e.botId})]})]}),e.payload?.message&&j(`p`,{className:`text-sm text-muted-foreground mt-1`,children:e.payload.message})]}),M(z,{className:`space-y-4`,children:[e.type===`qrcode`&&e.payload?.image&&j(`div`,{className:`flex justify-center p-4 bg-muted/30 rounded-lg`,children:j(`img`,{src:e.payload.image,alt:`登录二维码`,className:`max-w-[200px] w-full h-auto`})}),e.type===`slider`&&e.payload?.url&&M(`p`,{className:`text-sm break-all`,children:[j(`span`,{className:`text-muted-foreground`,children:`滑块链接:`}),` `,j(`a`,{href:e.payload.url,target:`_blank`,rel:`noopener noreferrer`,className:`text-primary underline`,children:e.payload.url})]}),(e.type===`sms`||e.type===`device`||e.type===`slider`)&&M(`div`,{className:`flex flex-wrap items-center gap-2`,children:[j(F,{placeholder:e.type===`slider`?`输入 ticket`:`输入验证码`,className:`max-w-xs`,value:f[e.id]??``,onChange:t=>p(n=>({...n,[e.id]:t.target.value})),onKeyDown:t=>{if(t.key===`Enter`){let t=f[e.id]?.trim();t&&h(e.id,e.type===`slider`?{ticket:t}:t)}}}),j(P,{size:`sm`,disabled:l[e.id]||!f[e.id]?.trim(),onClick:()=>{let t=f[e.id]?.trim();t&&h(e.id,e.type===`slider`?{ticket:t}:t)},children:l[e.id]?`提交中…`:`提交`})]}),e.type===`qrcode`&&M(`div`,{className:`flex gap-2`,children:[j(P,{size:`sm`,disabled:l[e.id],onClick:()=>h(e.id,{done:!0}),children:l[e.id]?`提交中…`:`我已扫码`}),j(P,{size:`sm`,variant:`outline`,onClick:()=>g(e.id),children:`取消`})]})]})]},e.id))})]})}function hs(e){return hs=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},hs(e)}function gs(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function _s(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,`value`in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function vs(e,t,n){return t&&_s(e.prototype,t),n&&_s(e,n),e}function ys(e,t){return t&&(hs(t)===`object`||typeof t==`function`)?t:xs(e)}function bs(e){return bs=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},bs(e)}function xs(e){if(e===void 0)throw ReferenceError(`this hasn't been initialised - super() hasn't been called`);return e}function Ss(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Super expression must either be null or a function`);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Cs(e,t)}function Cs(e,t){return Cs=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},Cs(e,t)}function ws(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ts=function(e){Ss(t,e);function t(){var e,n;gs(this,t);var r=[...arguments];return n=ys(this,(e=bs(t)).call.apply(e,[this].concat(r))),ws(xs(n),`state`,{bootstrapped:!1}),ws(xs(n),`_unsubscribe`,void 0),ws(xs(n),`handlePersistorState`,function(){n.props.persistor.getState().bootstrapped&&(n.props.onBeforeLift?Promise.resolve(n.props.onBeforeLift()).finally(function(){return n.setState({bootstrapped:!0})}):n.setState({bootstrapped:!0}),n._unsubscribe&&n._unsubscribe())}),n}return vs(t,[{key:`componentDidMount`,value:function(){this._unsubscribe=this.props.persistor.subscribe(this.handlePersistorState),this.handlePersistorState()}},{key:`componentWillUnmount`,value:function(){this._unsubscribe&&this._unsubscribe()}},{key:`render`,value:function(){return typeof this.props.children==`function`?this.props.children(this.state.bootstrapped):this.state.bootstrapped?this.props.children:this.props.loading}}]),t}(t);ws(Ts,`defaultProps`,{children:null,loading:null});var Es=gt.Provider;gt.Root,gt.Trigger;var Ds=e.forwardRef(({className:e,sideOffset:t=4,...n},r)=>j(gt.Portal,{children:j(gt.Content,{ref:r,sideOffset:t,className:k(`z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2`,e),...n})}));Ds.displayName=`TooltipContent`,Rt();function Os(){let[e,t]=s(Jt()),n=r(()=>t(!0),[]);return i(()=>{let e=()=>t(!1);return window.addEventListener(`zhin:auth-required`,e),()=>window.removeEventListener(`zhin:auth-required`,e)},[]),e?j(Ts,{loading:null,persistor:Xe,children:j(Pt,{store:Qe,children:j(ks,{})})}):j(fs,{onSuccess:n})}function ks(){st();let e=ot(e=>e.script.entries),t=ot(e=>e.script.loadedScripts),n=ot(e=>e.script.synced),[r,a]=s(!1);i(()=>{[{key:`dashboard-layout`,path:`/`,title:`Dashboard`,element:j(Xt,{}),meta:{order:0},children:[{key:`homePage`,path:`/dashboard`,title:`系统概览`,icon:j(le,{className:`w-4 h-4`}),element:j(nn,{})},{key:`loginAssistPage`,path:`/login-assist`,title:`登录辅助`,icon:j(ge,{className:`w-4 h-4`}),element:j(ms,{}),meta:{order:1}},{key:`pluginsPage`,path:`/plugins`,title:`插件管理`,icon:j(Ce,{className:`w-4 h-4`}),element:j(sn,{}),meta:{order:2}},{key:`pluginDetailPage`,title:`插件详情`,path:`/plugins/:name`,element:j(Vn,{}),meta:{hideInMenu:!0}},{key:`configPage`,path:`/config`,title:`配置管理`,icon:j(Me,{className:`w-4 h-4`}),element:j(Io,{}),meta:{order:3}},{key:`envManagePage`,path:`/env`,title:`环境变量`,icon:j(fe,{className:`w-4 h-4`}),element:j(Bo,{}),meta:{order:4}},{key:`fileManagePage`,path:`/files`,title:`文件管理`,icon:j(oe,{className:`w-4 h-4`}),element:j(Yo,{}),meta:{order:5}},{key:`databasePage`,path:`/database`,title:`数据库`,icon:j(ee,{className:`w-4 h-4`}),element:j(ds,{}),meta:{order:6}},{key:`botManagePage`,path:`/bots`,title:`机器人`,icon:j(p,{className:`w-4 h-4`}),element:j(Un,{}),meta:{order:7}},{key:`logsPage `,path:`/logs`,title:`系统日志`,icon:j(ie,{className:`w-4 h-4`}),element:j(Gn,{}),meta:{order:8}}]}].forEach(e=>{Ye(e)}),a(!0)},[]);let o=n&&(e.length===0||e.length===t.length);return!r||!o?j(`div`,{className:`flex items-center justify-center h-screen bg-background`,children:M(`div`,{className:`text-center`,children:[j(`div`,{className:`inline-block animate-spin rounded-full h-8 w-8 border-2 border-muted-foreground border-t-foreground`}),M(`p`,{className:`mt-3 text-sm text-muted-foreground`,children:[`加载中... (`,t.length,`/`,e.length,`)`]})]})}):j(Ke,{})}c(document.getElementById(`root`)).render(j(n,{children:j(Es,{children:j(Os,{})})}));
|