Files
aiops/backend/static/assets/AuditPage-C5Vt2l8W.js
T
Logan.Li f45e203e21 refactor(frontend): P1-P2 架构统一 — utils/hooks/api 模块化
P1:
- utils/storage.ts、theme.ts、validate.ts + index 统一出口
- request/store/useTheme 接入 storage;清零 confirm/alert
- PipelineManager、TerminalAuditTab 拆分子模块(<700行红线)

P2:
- api/monitor、api/deploy 子目录化
- hooks/api 扩展:servers/pipelines/alerts/audit/sessionCommands
- PipelineManager、AuditOperationsTab 接入 TanStack Query
2026-06-26 00:18:14 +08:00

4 lines
57 KiB
JavaScript

import{i as V,r as a,a3 as ve,j as e,D as ae,a as re,a0 as ie,c as ne,d as oe,aW as Q,L as ce,X as Y,ac as fe,f as le,B as N,A as de,P as pe,b as ye,be as Ne,G as Se,y as Ae}from"./index-HuRw9UhJ.js";import{C as $,a as B}from"./card-B2Wqa0sK.js";import{I as F}from"./input-C9Xfv8um.js";import{T as E,a as q,b as _,c as d,d as K,e as p}from"./table-Du1vU-OM.js";import{x as xe,a as me}from"./xterm-DSqgeKvr.js";import{B as w}from"./badge-CeS-g-Od.js";import{m as Te,a as Le}from"./xterm-utils-slbfdUHf.js";import{M as we,a as Pe}from"./minimize-2-UErWMOt6.js";import{u as Z,q as ee,a as se,b as Oe}from"./unwrap-s5xDIyKq.js";import{u as X}from"./useMutation-ChnF9A9K.js";import{t as I,a as J,s as Ce,l as ke}from"./terminal-DvxWm4UP.js";import{S as z}from"./search-CcKEpJIn.js";import{R as W}from"./refresh-cw-CSycAyA2.js";import{P as _e}from"./play-BXdOitsb.js";import{D as he}from"./download-CjFatm64.js";const De=[["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z",key:"2d38gg"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],He=V("octagon-x",De);const Me=[["path",{d:"M10 2h4",key:"n1abiw"}],["path",{d:"M4.6 11a8 8 0 0 0 1.7 8.7 8 8 0 0 0 8.7 1.7",key:"10he05"}],["path",{d:"M7.4 7.4a8 8 0 0 1 10.3 1 8 8 0 0 1 .9 10.2",key:"15f7sh"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M12 12v-2",key:"fwoke6"}]],Re=V("timer-off",Me);const ze=[["line",{x1:"10",x2:"14",y1:"2",y2:"2",key:"14vaq8"}],["line",{x1:"12",x2:"15",y1:"14",y2:"11",key:"17fdiu"}],["circle",{cx:"12",cy:"14",r:"8",key:"1e1u0o"}]],Ie=V("timer",ze);function Fe({open:s,onOpenChange:r,sessionId:i,sessionInfo:c}){const n=a.useRef(null),x=a.useRef(null),g=a.useRef(null),j=a.useRef(null),[v,l]=a.useState(!1),[u,f]=a.useState(""),[t,h]=a.useState(c||null),[y,T]=a.useState(!1);a.useEffect(()=>{s||(l(!1),f(""),T(!1))},[s]),a.useEffect(()=>{if(!s||!i)return;l(!1),f("");const b=new xe.Terminal({cursorBlink:!1,fontSize:13,fontFamily:'Menlo, Monaco, "Courier New", monospace',disableStdin:!0,allowProposedApi:!0,scrollback:5e3,theme:{background:"#0a0e14",foreground:"#d6d6d6",cursor:"#d6d6d6",selectionBackground:"rgba(255,255,255,0.2)"}}),m=new me.FitAddon;b.loadAddon(m),x.current=b,g.current=m;const S=ve.getState().token||localStorage.getItem("token")||(()=>{try{return JSON.parse(localStorage.getItem("user-storage")||"{}")?.state?.token||""}catch{return""}})(),H=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/ws/audit/${i}?token=${encodeURIComponent(S)}`,L=new WebSocket(H);j.current=L;let A=!1;L.onopen=()=>{A=!0,l(!0),f(""),Te(b,m,()=>n.current),b.writeln("\x1B[36m[审计监控] 已连接到会话...\x1B[0m")},L.onmessage=M=>{try{const C=JSON.parse(M.data);switch(C.type){case"session_info":h(C.payload),b.writeln(`\x1B[36m用户: ${C.payload.username} 服务器: ${C.payload.server_name} (${C.payload.server_ip})\x1B[0m`);break;case"history":C.data&&b.write(C.data);break;case"output":C.data&&b.write(C.data);break}}catch{}},L.onerror=()=>f("WebSocket 连接失败"),L.onclose=M=>{A||f(`连接失败 (code=${M.code}): ${M.reason||"认证失败或网络问题"}`),l(!1),b.writeln(`\r
\x1B[33m[审计监控] 连接已断开\x1B[0m`)};const P=setTimeout(()=>{A||(f("连接超时 — 请确认已登录且有活跃会话"),L.close())},5e3);return()=>{clearTimeout(P),L.close(),b.dispose(),x.current=null,g.current=null,j.current=null,l(!1)}},[s,i]),a.useEffect(()=>{if(!s)return;let b,m=0;const S=()=>{const D=n.current,H=g.current,L=x.current;if(!D||!H||!L){m++<30&&requestAnimationFrame(S);return}b=Le(D,H,L)};return S(),()=>b?.()},[s,i,y]);const O=b=>b?new Date(b).toLocaleString():"--";return e.jsx(ae,{"code-path":"src/components/system/LiveMonitorDialog.tsx:180:5",open:s,onOpenChange:r,children:e.jsxs(re,{"code-path":"src/components/system/LiveMonitorDialog.tsx:181:7",showCloseButton:!1,showOverlay:!1,className:ie("bg-[var(--dg-bg-secondary)] border-[var(--dg-border)] p-0 gap-0","!duration-0 !transition-none",y?"!max-w-none !w-screen !h-screen !rounded-none !translate-x-0 !translate-y-0 !left-0 !top-0":""),style:y?{maxWidth:"100vw",width:"100vw",height:"100vh"}:{maxWidth:"960px",width:"92vw"},children:[e.jsx(ne,{"code-path":"src/components/system/LiveMonitorDialog.tsx:197:9",className:"sr-only",children:"终端实时监控"}),e.jsx(oe,{"code-path":"src/components/system/LiveMonitorDialog.tsx:198:9",className:"sr-only",children:"审计在线 WebSSH 会话"}),e.jsxs("div",{"code-path":"src/components/system/LiveMonitorDialog.tsx:201:9",className:"flex items-center justify-between px-4 py-2 border-b border-[var(--dg-border)]",children:[e.jsxs("div",{"code-path":"src/components/system/LiveMonitorDialog.tsx:202:11",className:"flex items-center gap-2 text-sm min-w-0 flex-wrap",children:[e.jsx(Q,{"code-path":"src/components/system/LiveMonitorDialog.tsx:203:13",className:"h-4 w-4 text-emerald-400 shrink-0"}),e.jsx("span",{"code-path":"src/components/system/LiveMonitorDialog.tsx:204:13",className:"text-[var(--dg-text-primary)] font-medium",children:"终端实时监控"}),t&&e.jsxs("span",{"code-path":"src/components/system/LiveMonitorDialog.tsx:206:15",className:"text-[var(--dg-text-muted)] truncate",children:[t.username," · ",t.server_name," (",t.server_ip,") · ",O(t.start_time)]}),v&&e.jsx(w,{"code-path":"src/components/system/LiveMonitorDialog.tsx:211:15",variant:"outline",className:"border-emerald-500/30 text-emerald-400 bg-emerald-500/10 text-xs",children:"● 在线"}),!v&&!u&&e.jsxs(w,{"code-path":"src/components/system/LiveMonitorDialog.tsx:216:15",variant:"outline",className:"border-yellow-500/30 text-yellow-400 bg-yellow-500/10 text-xs",children:[e.jsx(ce,{"code-path":"src/components/system/LiveMonitorDialog.tsx:217:17",className:"h-3 w-3 animate-spin mr-1"}),"连接中"]}),u&&e.jsx(w,{"code-path":"src/components/system/LiveMonitorDialog.tsx:222:15",variant:"outline",className:"border-red-500/30 text-red-400 bg-red-500/10 text-xs",children:"连接失败"})]}),e.jsxs("div",{"code-path":"src/components/system/LiveMonitorDialog.tsx:227:11",className:"flex items-center gap-1 shrink-0",children:[e.jsx("button",{"code-path":"src/components/system/LiveMonitorDialog.tsx:228:13",type:"button",onClick:()=>T(!y),className:"p-1.5 rounded hover:bg-[var(--dg-bg-hover)] text-[var(--dg-text-secondary)]",title:y?"退出全屏":"全屏",children:y?e.jsx(we,{"code-path":"src/components/system/LiveMonitorDialog.tsx:234:29",className:"h-4 w-4"}):e.jsx(Pe,{"code-path":"src/components/system/LiveMonitorDialog.tsx:234:65",className:"h-4 w-4"})}),e.jsx("button",{"code-path":"src/components/system/LiveMonitorDialog.tsx:236:13",type:"button",onClick:()=>r(!1),className:"p-1.5 rounded hover:bg-[var(--dg-bg-hover)] text-[var(--dg-text-secondary)]",children:e.jsx(Y,{"code-path":"src/components/system/LiveMonitorDialog.tsx:241:15",className:"h-4 w-4"})})]})]}),u&&e.jsx("p",{"code-path":"src/components/system/LiveMonitorDialog.tsx:247:11",className:"text-sm text-red-400 px-4 py-2 border-b border-[var(--dg-border)]",children:u}),e.jsx("div",{"code-path":"src/components/system/LiveMonitorDialog.tsx:250:9",ref:n,className:"xterm-terminal-host",style:{height:y?"calc(100vh - 49px)":"520px"}})]})})}function ue(s={page:1,page_size:100}){return Z({queryKey:ee.terminalSessions(s),queryFn:async()=>{const r=await I.list(s);return se(r)}})}function $e(){const s=fe(),r=()=>s.invalidateQueries({queryKey:["terminal-sessions"]}),i=X({mutationFn:x=>I.kill(x),onSuccess:r}),c=X({mutationFn:x=>I.delete(x),onSuccess:r}),n=X({mutationFn:x=>I.batchDelete(x),onSuccess:r});return{killMutation:i,deleteMutation:c,batchDeleteMutation:n,invalidate:r}}function Be(s={page:1,page_size:50}){return Z({queryKey:ee.auditLogs(s),queryFn:async()=>{const r=await J.getLogs(s);return{list:se(r),total:Oe(r)}},staleTime:2e4})}function Ee(s={page:1,page_size:200}){return Z({queryKey:ee.sessionCommands(s),queryFn:async()=>{const r=await Ce.list(s);return se(r)}})}function ge(s){if(!s||s<0)return"--";if(s<60)return`${s}秒`;const r=Math.floor(s/60),i=s%60;if(r<60)return`${r}分${i>0?`${i}秒`:""}`;const c=Math.floor(r/60),n=r%60;return`${c}时${n>0?`${n}分`:""}`}function qe(s){return s?s<1024?`${s} B`:s<1024*1024?`${(s/1024).toFixed(1)} KB`:`${(s/1024/1024).toFixed(2)} MB`:"0 B"}function be(s){return s==="active"?e.jsxs(w,{"code-path":"src/pages/terminal-audit/helpers.tsx:26:7",variant:"outline",className:"border-emerald-500/30 text-emerald-400 bg-emerald-500/10",children:[e.jsx("span",{"code-path":"src/pages/terminal-audit/helpers.tsx:27:9",className:"w-1.5 h-1.5 rounded-full bg-emerald-400 mr-1.5 inline-block animate-pulse"}),"活动中"]}):s==="failed"?e.jsx(w,{"code-path":"src/pages/terminal-audit/helpers.tsx:34:7",variant:"outline",className:"border-red-500/30 text-red-400 bg-red-500/10",children:"失败"}):e.jsx(w,{"code-path":"src/pages/terminal-audit/helpers.tsx:40:5",variant:"outline",className:"border-slate-500/30 text-slate-400 bg-slate-500/10",children:"已关闭"})}const G=10;function Ke(s){const[r,i]=a.useState(0);return a.useEffect(()=>{if(!s)return;const c=new Date(s).getTime(),n=()=>i(Math.floor((Date.now()-c)/1e3));n();const x=setInterval(n,1e3);return()=>clearInterval(x)},[s]),r}function We({session:s,onKill:r,onMonitor:i}){const c=Ke(s.start_time);return e.jsxs(_,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:54:5",className:"border-slate-800 hover:bg-slate-800/50",children:[e.jsx(p,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:55:7",children:e.jsx("span",{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:56:9",className:"text-sm text-slate-400",children:s.id})}),e.jsx(p,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:58:7",children:e.jsx("span",{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:59:9",className:"text-sm text-slate-200",children:s.username||"--"})}),e.jsx(p,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:61:7",children:e.jsxs("div",{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:62:9",className:"flex flex-col",children:[e.jsx("span",{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:63:11",className:"text-sm text-slate-200",children:s.server_name||"--"}),e.jsx("span",{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:64:11",className:"text-xs text-slate-500",children:s.server_ip})]})}),e.jsx(p,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:67:7",children:e.jsx("span",{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:68:9",className:"text-sm text-slate-400",children:s.server_port})}),e.jsx(p,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:70:7",children:e.jsx("span",{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:71:9",className:"text-sm text-slate-400",children:s.start_time?new Date(s.start_time).toLocaleString():"--"})}),e.jsx(p,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:75:7",children:e.jsx("span",{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:76:9",className:"text-sm text-emerald-400 font-mono",children:ge(c)})}),e.jsx(p,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:78:7",children:be(s.status)}),e.jsx(p,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:79:7",children:e.jsxs("div",{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:80:9",className:"flex items-center justify-end gap-1",children:[e.jsx(N,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:81:11",variant:"ghost",size:"icon",className:"h-8 w-8 text-slate-400 hover:text-red-400 hover:bg-slate-800",onClick:()=>r(s.id,s.username),title:"阻断会话",children:e.jsx(He,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:88:13",className:"h-4 w-4"})}),e.jsx(N,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:90:11",variant:"ghost",size:"icon",className:"h-8 w-8 text-slate-400 hover:text-blue-400 hover:bg-slate-800",onClick:()=>i(s.id),title:"实时查看",children:e.jsx(pe,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:97:13",className:"h-4 w-4"})})]})})]})}function Ue({userToggledOff:s,onUserToggledOff:r}){const i=le(),{killMutation:c}=$e(),{data:n=[],isLoading:x,refetch:g}=ue({page:1,page_size:100,status:"active"}),[j,v]=a.useState(""),[l,u]=a.useState(()=>!s),[f,t]=a.useState(!1),[h,y]=a.useState(null);a.useEffect(()=>{s||u(!0)},[s]),a.useEffect(()=>{if(!l)return;const m=setInterval(()=>g(),G*1e3);return()=>clearInterval(m)},[l,g]);const T=n.filter(m=>{const S=j.toLowerCase();return!S||(m.username||"").toLowerCase().includes(S)||(m.server_name||"").toLowerCase().includes(S)||(m.server_ip||"").toLowerCase().includes(S)}),O=async(m,S)=>{if(await i({title:"阻断会话",description:`确认强制断开用户「${S}」的当前会话吗?`,confirmText:"阻断",variant:"destructive"}))try{await c.mutateAsync(m)}catch{}},b=m=>{y(m),t(!0)};return e.jsxs(e.Fragment,{children:[e.jsxs("div",{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:162:7",className:"flex items-center gap-3 flex-wrap",children:[e.jsxs("div",{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:163:9",className:"relative w-64",children:[e.jsx(z,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:164:11",className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-slate-500"}),e.jsx(F,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:165:11",placeholder:"搜索用户/服务器...",value:j,onChange:m=>v(m.target.value),className:"pl-9 h-9 bg-slate-800/50 border-slate-700 text-slate-200 placeholder:text-slate-500"})]}),e.jsxs(N,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:172:9",variant:"outline",className:"border-slate-700 text-slate-300 hover:text-slate-100 hover:bg-slate-800",onClick:()=>g(),children:[e.jsx(W,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:177:11",className:"h-4 w-4 mr-2"}),"刷新"]}),e.jsx(N,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:180:9",variant:l?"default":"outline",className:l?"bg-emerald-600 hover:bg-emerald-700 text-white":"border-slate-700 text-slate-300 hover:text-slate-100 hover:bg-slate-800",onClick:()=>{l&&r(),u(!l)},title:l?`每 ${G}s 自动刷新 · 点击关闭`:"点击开启自动刷新",children:l?e.jsxs(e.Fragment,{children:[e.jsx(Ie,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:195:15",className:"h-4 w-4 mr-1.5 animate-pulse"}),G,"s"]}):e.jsxs(e.Fragment,{children:[e.jsx(Re,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:200:15",className:"h-4 w-4 mr-2"}),"自动刷新"]})})]}),e.jsx($,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:207:7",className:"bg-slate-900 border-slate-800",children:e.jsx(B,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:208:9",className:"p-0",children:e.jsx("div",{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:209:11",className:"border-t border-slate-800",children:x?e.jsx("div",{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:211:15",className:"flex items-center justify-center py-16",children:e.jsx("div",{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:212:17",className:"w-8 h-8 border-2 border-blue-500 border-t-transparent rounded-full animate-spin"})}):T.length===0?e.jsxs("div",{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:215:15",className:"flex flex-col items-center justify-center py-16 text-slate-500",children:[e.jsx(de,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:216:17",className:"h-8 w-8 mb-3 opacity-40"}),e.jsx("p",{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:217:17",className:"text-sm",children:"暂无在线会话"})]}):e.jsxs(E,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:220:15",children:[e.jsx(q,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:221:17",children:e.jsxs(_,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:222:19",className:"border-slate-800 hover:bg-transparent",children:[e.jsx(d,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:223:21",className:"text-slate-400",children:"ID"}),e.jsx(d,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:224:21",className:"text-slate-400",children:"用户"}),e.jsx(d,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:225:21",className:"text-slate-400",children:"目标服务器"}),e.jsx(d,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:226:21",className:"text-slate-400",children:"端口"}),e.jsx(d,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:227:21",className:"text-slate-400",children:"开始时间"}),e.jsx(d,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:228:21",className:"text-slate-400",children:"时长"}),e.jsx(d,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:229:21",className:"text-slate-400",children:"状态"}),e.jsx(d,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:230:21",className:"text-slate-400 text-right",children:"操作"})]})}),e.jsx(K,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:233:17",children:T.map(m=>e.jsx(We,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:235:21",session:m,onKill:O,onMonitor:b},m.id))})]})})})}),e.jsx(Fe,{"code-path":"src/pages/terminal-audit/ActiveSessionsPanel.tsx:244:7",open:f,onOpenChange:t,sessionId:h})]})}function Je({open:s,onOpenChange:r,sessionId:i}){const c=a.useRef(null),n=a.useRef(null),x=a.useRef(null),[g,j]=a.useState(!1),[v,l]=a.useState(""),[u,f]=a.useState(0);return a.useEffect(()=>{if(!s||!i)return;const t=new xe.Terminal({cursorBlink:!1,fontSize:13,fontFamily:'Menlo, Monaco, "Courier New", monospace',disableStdin:!0,cols:80,rows:24,theme:{background:"#0a0e14",foreground:"#d6d6d6",cursor:"#0a0e14",selectionBackground:"rgba(255,255,255,0.2)"}}),h=new me.FitAddon;t.loadAddon(h),n.current=t;let y=!1;return j(!0),l(""),f(0),I.getRecord(i).then(T=>{if(y)return;const O=typeof T=="string"?T:T?.data||T?.record_data||"";if(!O||O.trim()===""){l("No recording data available for this session"),j(!1);return}if(c.current){t.open(c.current);try{h.fit()}catch{}}const b=O.split(`
`).filter(A=>A.trim()),m=[];for(const A of b)try{const P=JSON.parse(A);Array.isArray(P)&&P.length>=3&&m.push({time:P[0],eventType:P[1],data:P[2]})}catch{}if(m.length===0){t.write(O),f(100),j(!1);return}j(!1);const S=m[m.length-1].time;let D=0,H=0;const L=()=>{if(y||D>=m.length){f(100);return}const A=m[D],P=(A.time-H)*1e3;H=A.time,D++;const M=Math.min(P,2e3);x.current=setTimeout(()=>{y||(t.write(A.data),f(Math.round(A.time/S*100)),L())},M)};L()}).catch(T=>{y||(console.error("[Replay] Load failed:",T),l("Failed to load recording data"),j(!1))}),()=>{y=!0,x.current&&clearTimeout(x.current);try{t.dispose()}catch{}n.current=null}},[s,i]),e.jsx(ae,{"code-path":"src/components/system/ReplayDialog.tsx:153:5",open:s,onOpenChange:r,children:e.jsxs(re,{"code-path":"src/components/system/ReplayDialog.tsx:154:7",showOverlay:!1,className:"bg-slate-900 border-slate-800 p-0 gap-0",style:{maxWidth:"900px",width:"90vw"},children:[e.jsxs(ye,{"code-path":"src/components/system/ReplayDialog.tsx:155:9",className:"px-4 py-3 border-b border-slate-800",children:[e.jsxs(ne,{"code-path":"src/components/system/ReplayDialog.tsx:156:11",className:"text-slate-100 text-base flex items-center gap-2",children:["Terminal Replay #",i??"",u>0&&u<100&&e.jsxs("span",{"code-path":"src/components/system/ReplayDialog.tsx:159:15",className:"text-xs text-slate-500 font-normal ml-2",children:[u,"%"]})]}),e.jsx(oe,{"code-path":"src/components/system/ReplayDialog.tsx:162:11",className:"text-slate-500 sr-only",children:"Replay recorded terminal output"})]}),e.jsxs("div",{"code-path":"src/components/system/ReplayDialog.tsx:164:9",className:"relative bg-[#0a0e14]",style:{height:"460px"},children:[g&&e.jsx("div",{"code-path":"src/components/system/ReplayDialog.tsx:166:13",className:"absolute inset-0 z-10 flex items-center justify-center bg-black/40",children:e.jsx(ce,{"code-path":"src/components/system/ReplayDialog.tsx:167:15",className:"h-6 w-6 animate-spin text-blue-400"})}),v&&e.jsx("div",{"code-path":"src/components/system/ReplayDialog.tsx:171:13",className:"absolute inset-0 z-10 flex items-center justify-center bg-black/40",children:e.jsx("p",{"code-path":"src/components/system/ReplayDialog.tsx:172:15",className:"text-red-400 text-sm",children:v})}),u>0&&u<100&&e.jsx("div",{"code-path":"src/components/system/ReplayDialog.tsx:176:13",className:"absolute bottom-0 left-0 right-0 h-0.5 bg-slate-800 z-10",children:e.jsx("div",{"code-path":"src/components/system/ReplayDialog.tsx:177:15",className:"h-full bg-blue-500 transition-all duration-300",style:{width:`${u}%`}})}),e.jsx("div",{"code-path":"src/components/system/ReplayDialog.tsx:183:11",ref:c,className:"absolute inset-0 p-1"})]})]})})}function Qe(){const{data:s=[],isLoading:r,refetch:i}=ue({page:1,page_size:100,status:"closed"}),[c,n]=a.useState(""),[x,g]=a.useState(null),[j,v]=a.useState(!1),l=s.filter(t=>{const h=c.toLowerCase();return!h||(t.username||"").toLowerCase().includes(h)||(t.server_name||"").toLowerCase().includes(h)||(t.server_ip||"").toLowerCase().includes(h)}),u=t=>{g(t),v(!0)},f=async t=>{try{await I.download(t)}catch{}};return e.jsxs(e.Fragment,{children:[e.jsxs("div",{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:57:7",className:"flex items-center gap-3 flex-wrap",children:[e.jsxs("div",{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:58:9",className:"relative w-64",children:[e.jsx(z,{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:59:11",className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-slate-500"}),e.jsx(F,{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:60:11",placeholder:"搜索用户/服务器/IP...",value:c,onChange:t=>n(t.target.value),className:"pl-9 h-9 bg-slate-800/50 border-slate-700 text-slate-200 placeholder:text-slate-500"})]}),e.jsxs(N,{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:67:9",variant:"outline",className:"border-slate-700 text-slate-300 hover:text-slate-100 hover:bg-slate-800",onClick:()=>i(),children:[e.jsx(W,{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:72:11",className:"h-4 w-4 mr-2"}),"刷新"]})]}),e.jsx($,{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:77:7",className:"bg-slate-900 border-slate-800",children:e.jsx(B,{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:78:9",className:"p-0",children:e.jsx("div",{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:79:11",className:"border-t border-slate-800",children:r?e.jsx("div",{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:81:15",className:"flex items-center justify-center py-16",children:e.jsx("div",{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:82:17",className:"w-8 h-8 border-2 border-blue-500 border-t-transparent rounded-full animate-spin"})}):l.length===0?e.jsxs("div",{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:85:15",className:"flex flex-col items-center justify-center py-16 text-slate-500",children:[e.jsx(Q,{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:86:17",className:"h-8 w-8 mb-3 opacity-40"}),e.jsx("p",{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:87:17",className:"text-sm",children:"暂无历史会话"})]}):e.jsxs(E,{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:90:15",children:[e.jsx(q,{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:91:17",children:e.jsxs(_,{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:92:19",className:"border-slate-800 hover:bg-transparent",children:[e.jsx(d,{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:93:21",className:"text-slate-400",children:"ID"}),e.jsx(d,{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:94:21",className:"text-slate-400",children:"用户"}),e.jsx(d,{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:95:21",className:"text-slate-400",children:"目标服务器"}),e.jsx(d,{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:96:21",className:"text-slate-400",children:"端口"}),e.jsx(d,{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:97:21",className:"text-slate-400",children:"开始时间"}),e.jsx(d,{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:98:21",className:"text-slate-400",children:"结束时间"}),e.jsx(d,{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:99:21",className:"text-slate-400",children:"时长"}),e.jsx(d,{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:100:21",className:"text-slate-400",children:"状态"}),e.jsx(d,{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:101:21",className:"text-slate-400 text-right",children:"操作"})]})}),e.jsx(K,{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:104:17",children:l.map(t=>e.jsxs(_,{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:106:21",className:"border-slate-800 hover:bg-slate-800/50",children:[e.jsx(p,{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:107:23",children:e.jsx("span",{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:108:25",className:"text-sm text-slate-400",children:t.id})}),e.jsx(p,{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:110:23",children:e.jsx("span",{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:111:25",className:"text-sm text-slate-200",children:t.username||"--"})}),e.jsx(p,{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:113:23",children:e.jsxs("div",{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:114:25",className:"flex flex-col",children:[e.jsx("span",{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:115:27",className:"text-sm text-slate-200",children:t.server_name||"--"}),e.jsx("span",{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:116:27",className:"text-xs text-slate-500",children:t.server_ip})]})}),e.jsx(p,{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:119:23",children:e.jsx("span",{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:120:25",className:"text-sm text-slate-400",children:t.server_port})}),e.jsx(p,{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:122:23",children:e.jsx("span",{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:123:25",className:"text-sm text-slate-400",children:t.start_time?new Date(t.start_time).toLocaleString():"--"})}),e.jsx(p,{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:127:23",children:e.jsx("span",{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:128:25",className:"text-sm text-slate-400",children:t.end_time?new Date(t.end_time).toLocaleString():"--"})}),e.jsx(p,{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:132:23",children:e.jsx("span",{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:133:25",className:"text-sm text-slate-300",children:ge(t.duration)})}),e.jsx(p,{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:135:23",children:be(t.status)}),e.jsx(p,{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:136:23",children:e.jsxs("div",{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:137:25",className:"flex items-center justify-end gap-1",children:[e.jsx(N,{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:138:27",variant:"ghost",size:"icon",className:"h-8 w-8 text-slate-400 hover:text-blue-400 hover:bg-slate-800",onClick:()=>u(t.id),title:"回放",children:e.jsx(_e,{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:145:29",className:"h-4 w-4"})}),e.jsx(N,{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:147:27",variant:"ghost",size:"icon",className:"h-8 w-8 text-slate-400 hover:text-green-400 hover:bg-slate-800",onClick:()=>f(t.id),title:"下载录制",children:e.jsx(he,{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:154:29",className:"h-4 w-4"})})]})})]},t.id))})]})})})}),e.jsx(Je,{"code-path":"src/pages/terminal-audit/HistorySessionsPanel.tsx:167:7",open:j,onOpenChange:v,sessionId:x})]})}function Xe(){const[s,r]=a.useState(""),[i,c]=a.useState(""),n=a.useMemo(()=>({page:1,page_size:200,...i?{session_id:Number(i)}:{}}),[i]),{data:x=[],isLoading:g,refetch:j}=Ee(n),v=x.filter(l=>{const u=s.toLowerCase();return!u||(l.username||"").toLowerCase().includes(u)||(l.command||"").toLowerCase().includes(u)});return e.jsxs(e.Fragment,{children:[e.jsxs("div",{"code-path":"src/pages/terminal-audit/SessionCommandsPanel.tsx:45:7",className:"flex items-center gap-3 flex-wrap",children:[e.jsxs("div",{"code-path":"src/pages/terminal-audit/SessionCommandsPanel.tsx:46:9",className:"relative w-64",children:[e.jsx(z,{"code-path":"src/pages/terminal-audit/SessionCommandsPanel.tsx:47:11",className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-slate-500"}),e.jsx(F,{"code-path":"src/pages/terminal-audit/SessionCommandsPanel.tsx:48:11",placeholder:"搜索用户/命令...",value:s,onChange:l=>r(l.target.value),className:"pl-9 h-9 bg-slate-800/50 border-slate-700 text-slate-200 placeholder:text-slate-500"})]}),e.jsx(F,{"code-path":"src/pages/terminal-audit/SessionCommandsPanel.tsx:55:9",placeholder:"会话 ID(可选)",value:i,onChange:l=>c(l.target.value),className:"w-32 h-9 bg-slate-800/50 border-slate-700 text-slate-200 placeholder:text-slate-500"}),e.jsxs(N,{"code-path":"src/pages/terminal-audit/SessionCommandsPanel.tsx:61:9",variant:"outline",className:"border-slate-700 text-slate-300 hover:text-slate-100 hover:bg-slate-800",onClick:()=>j(),children:[e.jsx(W,{"code-path":"src/pages/terminal-audit/SessionCommandsPanel.tsx:66:11",className:"h-4 w-4 mr-2"}),"刷新"]})]}),e.jsx($,{"code-path":"src/pages/terminal-audit/SessionCommandsPanel.tsx:71:7",className:"bg-slate-900 border-slate-800",children:e.jsx(B,{"code-path":"src/pages/terminal-audit/SessionCommandsPanel.tsx:72:9",className:"p-0",children:e.jsx("div",{"code-path":"src/pages/terminal-audit/SessionCommandsPanel.tsx:73:11",className:"border-t border-slate-800",children:g?e.jsx("div",{"code-path":"src/pages/terminal-audit/SessionCommandsPanel.tsx:75:15",className:"flex items-center justify-center py-16",children:e.jsx("div",{"code-path":"src/pages/terminal-audit/SessionCommandsPanel.tsx:76:17",className:"w-8 h-8 border-2 border-blue-500 border-t-transparent rounded-full animate-spin"})}):v.length===0?e.jsxs("div",{"code-path":"src/pages/terminal-audit/SessionCommandsPanel.tsx:79:15",className:"flex flex-col items-center justify-center py-16 text-slate-500",children:[e.jsx(z,{"code-path":"src/pages/terminal-audit/SessionCommandsPanel.tsx:80:17",className:"h-8 w-8 mb-3 opacity-40"}),e.jsx("p",{"code-path":"src/pages/terminal-audit/SessionCommandsPanel.tsx:81:17",className:"text-sm",children:"暂无会话命令记录"})]}):e.jsxs(E,{"code-path":"src/pages/terminal-audit/SessionCommandsPanel.tsx:84:15",children:[e.jsx(q,{"code-path":"src/pages/terminal-audit/SessionCommandsPanel.tsx:85:17",children:e.jsxs(_,{"code-path":"src/pages/terminal-audit/SessionCommandsPanel.tsx:86:19",className:"border-slate-800 hover:bg-transparent",children:[e.jsx(d,{"code-path":"src/pages/terminal-audit/SessionCommandsPanel.tsx:87:21",className:"text-slate-400",children:"时间"}),e.jsx(d,{"code-path":"src/pages/terminal-audit/SessionCommandsPanel.tsx:88:21",className:"text-slate-400",children:"用户"}),e.jsx(d,{"code-path":"src/pages/terminal-audit/SessionCommandsPanel.tsx:89:21",className:"text-slate-400",children:"命令"}),e.jsx(d,{"code-path":"src/pages/terminal-audit/SessionCommandsPanel.tsx:90:21",className:"text-slate-400",children:"输出大小"}),e.jsx(d,{"code-path":"src/pages/terminal-audit/SessionCommandsPanel.tsx:91:21",className:"text-slate-400",children:"关联会话"})]})}),e.jsx(K,{"code-path":"src/pages/terminal-audit/SessionCommandsPanel.tsx:94:17",children:v.map(l=>e.jsxs(_,{"code-path":"src/pages/terminal-audit/SessionCommandsPanel.tsx:96:21",className:"border-slate-800 hover:bg-slate-800/50",children:[e.jsx(p,{"code-path":"src/pages/terminal-audit/SessionCommandsPanel.tsx:97:23",children:e.jsx("span",{"code-path":"src/pages/terminal-audit/SessionCommandsPanel.tsx:98:25",className:"text-sm text-slate-400",children:l.created_at?new Date(l.created_at).toLocaleString():"--"})}),e.jsx(p,{"code-path":"src/pages/terminal-audit/SessionCommandsPanel.tsx:102:23",children:e.jsx("span",{"code-path":"src/pages/terminal-audit/SessionCommandsPanel.tsx:103:25",className:"text-sm text-slate-200",children:l.username||"--"})}),e.jsx(p,{"code-path":"src/pages/terminal-audit/SessionCommandsPanel.tsx:105:23",children:e.jsx("code",{"code-path":"src/pages/terminal-audit/SessionCommandsPanel.tsx:106:25",className:"text-xs text-slate-300 bg-slate-800 px-2 py-0.5 rounded max-w-[400px] truncate block",children:l.command||"--"})}),e.jsx(p,{"code-path":"src/pages/terminal-audit/SessionCommandsPanel.tsx:110:23",children:e.jsx("span",{"code-path":"src/pages/terminal-audit/SessionCommandsPanel.tsx:111:25",className:"text-sm text-slate-400",children:qe(l.output_size)})}),e.jsx(p,{"code-path":"src/pages/terminal-audit/SessionCommandsPanel.tsx:113:23",children:e.jsxs("span",{"code-path":"src/pages/terminal-audit/SessionCommandsPanel.tsx:114:25",className:"text-xs text-slate-500",children:["#",l.session_id]})})]},l.id))})]})})})})]})}const Ge=[{id:"active",name:"在线会话",icon:de},{id:"history",name:"历史会话",icon:Q},{id:"commands",name:"会话命令",icon:z}];function te(){const[s,r]=a.useState("active"),[i,c]=a.useState(!1);return e.jsxs("div",{"code-path":"src/pages/TerminalAuditTab.tsx:22:5",className:"space-y-4",children:[e.jsx("div",{"code-path":"src/pages/TerminalAuditTab.tsx:23:7",className:"flex gap-1 bg-[var(--dg-bg-secondary)] p-1 rounded-lg border border-[var(--dg-border)] w-fit",children:Ge.map(n=>e.jsxs("button",{"code-path":"src/pages/TerminalAuditTab.tsx:25:11",onClick:()=>r(n.id),className:ie("flex items-center gap-2 px-4 py-2 rounded-md text-sm font-medium transition-all",s===n.id?"bg-[var(--dg-bg-tertiary)] text-[var(--dg-text-primary)] shadow-sm":"text-[var(--dg-text-muted)] hover:text-[var(--dg-text-secondary)]"),children:[e.jsx(n.icon,{"code-path":"src/pages/TerminalAuditTab.tsx:35:13",className:"h-4 w-4"}),n.name]},n.id))}),s==="active"&&e.jsx(Ue,{"code-path":"src/pages/TerminalAuditTab.tsx:42:9",userToggledOff:i,onUserToggledOff:()=>c(!0)}),s==="history"&&e.jsx(Qe,{"code-path":"src/pages/TerminalAuditTab.tsx:47:32"}),s==="commands"&&e.jsx(Xe,{"code-path":"src/pages/TerminalAuditTab.tsx:48:33"})]})}function Ve(s){return{id:String(s.id??""),userId:String(s.user_id??s.userId??""),username:s.username??"",module:s.module??s.resource??"",action:s.action??"",resource:s.resource??"",ip:s.ip??"",userAgent:s.user_agent??s.userAgent??"",result:s.result==="failure"?"failure":"success",message:s.message??s.detail??"",createdAt:s.createdAt??s.created_at??""}}function Ye(){le();const[s,r]=a.useState(""),[i,c]=a.useState(""),[n,x]=a.useState(""),g=a.useMemo(()=>({page:1,page_size:100,...i?{module:i}:{},...n?{action:n}:{}}),[i,n]),{data:j,isLoading:v,refetch:l}=Be(g),u=a.useMemo(()=>(j?.list||[]).map(o=>Ve(o)),[j]),[f,t]=a.useState([]),[h,y]=a.useState([]),[T,O]=a.useState(null),[b,m]=a.useState(!1),[S,D]=a.useState(null),[H,L]=a.useState(!1),A=a.useCallback(async()=>{try{const[o,R]=await Promise.all([J.getModules(),J.getActions()]);t(o?.list??o??[]),y(R?.list??R??[])}catch{}},[]);a.useEffect(()=>{A()},[A]);const P=u.filter(o=>{const R=s.toLowerCase();return!R||o.username.toLowerCase().includes(R)||o.module.toLowerCase().includes(R)||o.action.toLowerCase().includes(R)||o.resource.toLowerCase().includes(R)}),M=o=>o==="success"?e.jsx(w,{"code-path":"src/pages/AuditOperationsTab.tsx:112:7",variant:"outline",className:"border-emerald-500/30 text-emerald-400 bg-emerald-500/10",children:"成功"}):e.jsx(w,{"code-path":"src/pages/AuditOperationsTab.tsx:116:7",variant:"outline",className:"border-red-500/30 text-red-400 bg-red-500/10",children:"失败"}),C=async()=>{try{const o={};i&&(o.module=i),n&&(o.action=n),await J.exportLogs(o)}catch{}},je=o=>{O(o)};return e.jsxs("div",{"code-path":"src/pages/AuditOperationsTab.tsx:151:5",className:"space-y-4",children:[e.jsxs("div",{"code-path":"src/pages/AuditOperationsTab.tsx:153:7",className:"flex items-center gap-3 flex-wrap",children:[e.jsxs("div",{"code-path":"src/pages/AuditOperationsTab.tsx:154:9",className:"relative w-64",children:[e.jsx(z,{"code-path":"src/pages/AuditOperationsTab.tsx:155:11",className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-slate-500"}),e.jsx(F,{"code-path":"src/pages/AuditOperationsTab.tsx:156:11",placeholder:"搜索操作日志...",value:s,onChange:o=>r(o.target.value),className:"pl-9 h-9 bg-slate-800/50 border-slate-700 text-slate-200 placeholder:text-slate-500"})]}),e.jsxs("select",{"code-path":"src/pages/AuditOperationsTab.tsx:165:9",value:i,onChange:o=>c(o.target.value),className:"h-9 px-3 text-sm rounded-md bg-slate-800/50 border border-slate-700 text-slate-300 focus:outline-none focus:border-blue-500",children:[e.jsx("option",{"code-path":"src/pages/AuditOperationsTab.tsx:170:11",value:"",children:"全部模块"}),f.map(o=>e.jsx("option",{"code-path":"src/pages/AuditOperationsTab.tsx:172:13",value:o.value,children:o.label},o.value))]}),e.jsxs("select",{"code-path":"src/pages/AuditOperationsTab.tsx:179:9",value:n,onChange:o=>x(o.target.value),className:"h-9 px-3 text-sm rounded-md bg-slate-800/50 border border-slate-700 text-slate-300 focus:outline-none focus:border-blue-500",children:[e.jsx("option",{"code-path":"src/pages/AuditOperationsTab.tsx:184:11",value:"",children:"全部操作"}),h.map(o=>e.jsx("option",{"code-path":"src/pages/AuditOperationsTab.tsx:186:13",value:o.value,children:o.label},o.value))]}),e.jsxs(N,{"code-path":"src/pages/AuditOperationsTab.tsx:192:9",variant:"outline",className:"border-slate-700 text-slate-300 hover:text-slate-100 hover:bg-slate-800",onClick:()=>l(),children:[e.jsx(W,{"code-path":"src/pages/AuditOperationsTab.tsx:197:11",className:"h-4 w-4 mr-2"}),"刷新"]}),e.jsxs(N,{"code-path":"src/pages/AuditOperationsTab.tsx:200:9",variant:"outline",className:"border-slate-700 text-slate-300 hover:text-slate-100 hover:bg-slate-800",onClick:C,children:[e.jsx(he,{"code-path":"src/pages/AuditOperationsTab.tsx:205:11",className:"h-4 w-4 mr-2"}),"导出"]})]}),e.jsx($,{"code-path":"src/pages/AuditOperationsTab.tsx:211:7",className:"bg-slate-900 border-slate-800",children:e.jsx(B,{"code-path":"src/pages/AuditOperationsTab.tsx:212:9",className:"p-0",children:e.jsx("div",{"code-path":"src/pages/AuditOperationsTab.tsx:213:11",className:"border-t border-slate-800",children:v?e.jsx("div",{"code-path":"src/pages/AuditOperationsTab.tsx:215:15",className:"flex items-center justify-center py-16",children:e.jsx("div",{"code-path":"src/pages/AuditOperationsTab.tsx:216:17",className:"w-8 h-8 border-2 border-blue-500 border-t-transparent rounded-full animate-spin"})}):P.length===0?e.jsxs("div",{"code-path":"src/pages/AuditOperationsTab.tsx:219:15",className:"flex flex-col items-center justify-center py-16 text-slate-500",children:[e.jsx(z,{"code-path":"src/pages/AuditOperationsTab.tsx:220:17",className:"h-8 w-8 mb-3 opacity-40"}),e.jsx("p",{"code-path":"src/pages/AuditOperationsTab.tsx:221:17",className:"text-sm",children:"暂无操作日志"})]}):e.jsxs(E,{"code-path":"src/pages/AuditOperationsTab.tsx:224:15",children:[e.jsx(q,{"code-path":"src/pages/AuditOperationsTab.tsx:225:17",children:e.jsxs(_,{"code-path":"src/pages/AuditOperationsTab.tsx:226:19",className:"border-slate-800 hover:bg-transparent",children:[e.jsx(d,{"code-path":"src/pages/AuditOperationsTab.tsx:227:21",className:"text-slate-400",children:"时间"}),e.jsx(d,{"code-path":"src/pages/AuditOperationsTab.tsx:228:21",className:"text-slate-400",children:"用户"}),e.jsx(d,{"code-path":"src/pages/AuditOperationsTab.tsx:229:21",className:"text-slate-400",children:"模块"}),e.jsx(d,{"code-path":"src/pages/AuditOperationsTab.tsx:230:21",className:"text-slate-400",children:"操作类型"}),e.jsx(d,{"code-path":"src/pages/AuditOperationsTab.tsx:231:21",className:"text-slate-400",children:"资源"}),e.jsx(d,{"code-path":"src/pages/AuditOperationsTab.tsx:232:21",className:"text-slate-400",children:"IP"}),e.jsx(d,{"code-path":"src/pages/AuditOperationsTab.tsx:233:21",className:"text-slate-400",children:"结果"}),e.jsx(d,{"code-path":"src/pages/AuditOperationsTab.tsx:234:21",className:"text-slate-400 text-right",children:"详情"})]})}),e.jsx(K,{"code-path":"src/pages/AuditOperationsTab.tsx:237:17",children:P.map(o=>e.jsxs(_,{"code-path":"src/pages/AuditOperationsTab.tsx:239:21",className:"border-slate-800 hover:bg-slate-800/50",children:[e.jsx(p,{"code-path":"src/pages/AuditOperationsTab.tsx:240:23",children:e.jsx("span",{"code-path":"src/pages/AuditOperationsTab.tsx:241:25",className:"text-sm text-slate-400",children:o.createdAt?new Date(o.createdAt).toLocaleString():"--"})}),e.jsx(p,{"code-path":"src/pages/AuditOperationsTab.tsx:245:23",children:e.jsx("span",{"code-path":"src/pages/AuditOperationsTab.tsx:246:25",className:"text-sm text-slate-200",children:o.username||"--"})}),e.jsx(p,{"code-path":"src/pages/AuditOperationsTab.tsx:248:23",children:e.jsx("span",{"code-path":"src/pages/AuditOperationsTab.tsx:249:25",className:"text-sm text-slate-300",children:o.module||"--"})}),e.jsx(p,{"code-path":"src/pages/AuditOperationsTab.tsx:251:23",children:e.jsx(w,{"code-path":"src/pages/AuditOperationsTab.tsx:252:25",variant:"outline",className:"border-blue-500/30 text-blue-400 bg-blue-500/10",children:o.action||"--"})}),e.jsx(p,{"code-path":"src/pages/AuditOperationsTab.tsx:256:23",children:e.jsx("code",{"code-path":"src/pages/AuditOperationsTab.tsx:257:25",className:"text-xs text-slate-400 bg-slate-800 px-2 py-0.5 rounded",children:o.resource||"--"})}),e.jsx(p,{"code-path":"src/pages/AuditOperationsTab.tsx:261:23",children:e.jsx("span",{"code-path":"src/pages/AuditOperationsTab.tsx:262:25",className:"text-sm text-slate-400",children:o.ip||"--"})}),e.jsx(p,{"code-path":"src/pages/AuditOperationsTab.tsx:264:23",children:M(o.result)}),e.jsx(p,{"code-path":"src/pages/AuditOperationsTab.tsx:265:23",children:e.jsx("div",{"code-path":"src/pages/AuditOperationsTab.tsx:266:25",className:"flex items-center justify-end",children:e.jsx(N,{"code-path":"src/pages/AuditOperationsTab.tsx:267:27",variant:"ghost",size:"icon",className:"h-8 w-8 text-slate-400 hover:text-blue-400 hover:bg-slate-800",onClick:()=>je(o),title:"查看详情",children:e.jsx(pe,{"code-path":"src/pages/AuditOperationsTab.tsx:274:29",className:"h-4 w-4"})})})})]},o.id))})]})})})}),e.jsx(Ze,{"code-path":"src/pages/AuditOperationsTab.tsx:288:7",log:T,onClose:()=>O(null)}),e.jsx(es,{"code-path":"src/pages/AuditOperationsTab.tsx:291:7",open:b,onClose:()=>m(!1),loading:H,stats:S})]})}function Ze({log:s,onClose:r}){return s?e.jsxs("div",{"code-path":"src/pages/AuditOperationsTab.tsx:309:5",className:"fixed inset-0 z-50 flex items-center justify-center",children:[e.jsx("div",{"code-path":"src/pages/AuditOperationsTab.tsx:310:7",className:"absolute inset-0 bg-black/60",onClick:r}),e.jsxs("div",{"code-path":"src/pages/AuditOperationsTab.tsx:311:7",className:"relative bg-slate-900 border border-slate-800 rounded-lg p-6 max-w-lg w-full mx-4 shadow-2xl",children:[e.jsxs("div",{"code-path":"src/pages/AuditOperationsTab.tsx:312:9",className:"flex items-center justify-between mb-4",children:[e.jsx("h3",{"code-path":"src/pages/AuditOperationsTab.tsx:313:11",className:"text-lg font-semibold text-slate-100",children:"操作日志详情"}),e.jsx(N,{"code-path":"src/pages/AuditOperationsTab.tsx:314:11",variant:"ghost",size:"icon",className:"h-7 w-7 text-slate-400 hover:text-slate-100",onClick:r,children:e.jsx(Y,{"code-path":"src/pages/AuditOperationsTab.tsx:320:13",className:"h-4 w-4"})})]}),e.jsxs("div",{"code-path":"src/pages/AuditOperationsTab.tsx:324:9",className:"space-y-3 text-sm",children:[e.jsx(k,{"code-path":"src/pages/AuditOperationsTab.tsx:325:11",label:"ID",value:s.id}),e.jsx(k,{"code-path":"src/pages/AuditOperationsTab.tsx:326:11",label:"时间",value:s.createdAt?new Date(s.createdAt).toLocaleString():"--"}),e.jsx(k,{"code-path":"src/pages/AuditOperationsTab.tsx:327:11",label:"用户",value:s.username||"--"}),e.jsx(k,{"code-path":"src/pages/AuditOperationsTab.tsx:328:11",label:"用户ID",value:s.userId||"--"}),e.jsx(k,{"code-path":"src/pages/AuditOperationsTab.tsx:329:11",label:"模块",value:s.module||"--"}),e.jsx(k,{"code-path":"src/pages/AuditOperationsTab.tsx:330:11",label:"操作类型",value:s.action||"--"}),e.jsx(k,{"code-path":"src/pages/AuditOperationsTab.tsx:331:11",label:"资源",value:s.resource||"--"}),e.jsx(k,{"code-path":"src/pages/AuditOperationsTab.tsx:332:11",label:"IP地址",value:s.ip||"--"}),e.jsx(k,{"code-path":"src/pages/AuditOperationsTab.tsx:333:11",label:"User-Agent",value:s.userAgent||"--"}),e.jsx(k,{"code-path":"src/pages/AuditOperationsTab.tsx:334:11",label:"结果",value:e.jsx(w,{"code-path":"src/pages/AuditOperationsTab.tsx:337:15",variant:"outline",className:s.result==="success"?"border-emerald-500/30 text-emerald-400 bg-emerald-500/10":"border-red-500/30 text-red-400 bg-red-500/10",children:s.result==="success"?"成功":"失败"})}),s.message&&e.jsx(k,{"code-path":"src/pages/AuditOperationsTab.tsx:349:27",label:"详情",value:s.message,mono:!0})]}),e.jsx("div",{"code-path":"src/pages/AuditOperationsTab.tsx:352:9",className:"mt-5 flex justify-end",children:e.jsx(N,{"code-path":"src/pages/AuditOperationsTab.tsx:353:11",variant:"outline",className:"border-slate-700 text-slate-300 hover:bg-slate-800",onClick:r,children:"关闭"})})]})]}):null}function k({label:s,value:r,mono:i}){return e.jsxs("div",{"code-path":"src/pages/AuditOperationsTab.tsx:368:5",className:"flex items-start gap-4",children:[e.jsx("span",{"code-path":"src/pages/AuditOperationsTab.tsx:369:7",className:"text-slate-500 w-20 flex-shrink-0",children:s}),e.jsx("span",{"code-path":"src/pages/AuditOperationsTab.tsx:370:7",className:i?"text-slate-300 font-mono text-xs break-all":"text-slate-200 break-all",children:r})]})}function es({open:s,onClose:r,loading:i,stats:c}){return s?e.jsxs("div",{"code-path":"src/pages/AuditOperationsTab.tsx:395:5",className:"fixed inset-0 z-50 flex items-center justify-center",children:[e.jsx("div",{"code-path":"src/pages/AuditOperationsTab.tsx:396:7",className:"absolute inset-0 bg-black/60",onClick:r}),e.jsxs("div",{"code-path":"src/pages/AuditOperationsTab.tsx:397:7",className:"relative bg-slate-900 border border-slate-800 rounded-lg p-6 max-w-md w-full mx-4 shadow-2xl",children:[e.jsxs("div",{"code-path":"src/pages/AuditOperationsTab.tsx:398:9",className:"flex items-center justify-between mb-4",children:[e.jsx("h3",{"code-path":"src/pages/AuditOperationsTab.tsx:399:11",className:"text-lg font-semibold text-slate-100",children:"审计统计"}),e.jsx(N,{"code-path":"src/pages/AuditOperationsTab.tsx:400:11",variant:"ghost",size:"icon",className:"h-7 w-7 text-slate-400 hover:text-slate-100",onClick:r,children:e.jsx(Y,{"code-path":"src/pages/AuditOperationsTab.tsx:406:13",className:"h-4 w-4"})})]}),i?e.jsx("div",{"code-path":"src/pages/AuditOperationsTab.tsx:411:11",className:"flex items-center justify-center py-10",children:e.jsx("div",{"code-path":"src/pages/AuditOperationsTab.tsx:412:13",className:"w-8 h-8 border-2 border-blue-500 border-t-transparent rounded-full animate-spin"})}):c?e.jsxs("div",{"code-path":"src/pages/AuditOperationsTab.tsx:415:11",className:"space-y-4",children:[e.jsxs("div",{"code-path":"src/pages/AuditOperationsTab.tsx:416:13",className:"grid grid-cols-2 gap-3",children:[e.jsx(U,{"code-path":"src/pages/AuditOperationsTab.tsx:417:15",label:"总日志数",value:String(c.total_logs??"--"),color:"blue"}),e.jsx(U,{"code-path":"src/pages/AuditOperationsTab.tsx:418:15",label:"今日日志",value:String(c.today_count??"--"),color:"emerald"}),e.jsx(U,{"code-path":"src/pages/AuditOperationsTab.tsx:419:15",label:"成功数",value:String(c.success_count??"--"),color:"emerald"}),e.jsx(U,{"code-path":"src/pages/AuditOperationsTab.tsx:420:15",label:"失败数",value:String(c.failure_count??"--"),color:"red"})]}),c.top_modules&&c.top_modules.length>0&&e.jsxs("div",{"code-path":"src/pages/AuditOperationsTab.tsx:424:15",children:[e.jsx("h4",{"code-path":"src/pages/AuditOperationsTab.tsx:425:17",className:"text-xs font-semibold text-slate-400 mb-2",children:"热门模块"}),e.jsx("div",{"code-path":"src/pages/AuditOperationsTab.tsx:426:17",className:"space-y-1",children:c.top_modules.slice(0,5).map((n,x)=>e.jsxs("div",{"code-path":"src/pages/AuditOperationsTab.tsx:428:21",className:"flex justify-between text-xs",children:[e.jsx("span",{"code-path":"src/pages/AuditOperationsTab.tsx:429:23",className:"text-slate-300",children:n.module}),e.jsx("span",{"code-path":"src/pages/AuditOperationsTab.tsx:430:23",className:"text-slate-500",children:n.count})]},x))})]}),c.top_users&&c.top_users.length>0&&e.jsxs("div",{"code-path":"src/pages/AuditOperationsTab.tsx:438:15",children:[e.jsx("h4",{"code-path":"src/pages/AuditOperationsTab.tsx:439:17",className:"text-xs font-semibold text-slate-400 mb-2",children:"活跃用户"}),e.jsx("div",{"code-path":"src/pages/AuditOperationsTab.tsx:440:17",className:"space-y-1",children:c.top_users.slice(0,5).map((n,x)=>e.jsxs("div",{"code-path":"src/pages/AuditOperationsTab.tsx:442:21",className:"flex justify-between text-xs",children:[e.jsx("span",{"code-path":"src/pages/AuditOperationsTab.tsx:443:23",className:"text-slate-300",children:n.username}),e.jsx("span",{"code-path":"src/pages/AuditOperationsTab.tsx:444:23",className:"text-slate-500",children:n.count})]},x))})]})]}):e.jsx("p",{"code-path":"src/pages/AuditOperationsTab.tsx:452:11",className:"text-slate-500 text-center py-10 text-sm",children:"暂无统计数据"}),e.jsx("div",{"code-path":"src/pages/AuditOperationsTab.tsx:455:9",className:"mt-5 flex justify-end",children:e.jsx(N,{"code-path":"src/pages/AuditOperationsTab.tsx:456:11",variant:"outline",className:"border-slate-700 text-slate-300 hover:bg-slate-800",onClick:r,children:"关闭"})})]})]}):null}function U({label:s,value:r,color:i}){const c={blue:"border-blue-500/20 bg-blue-500/5 text-blue-400",emerald:"border-emerald-500/20 bg-emerald-500/5 text-emerald-400",red:"border-red-500/20 bg-red-500/5 text-red-400"};return e.jsxs("div",{"code-path":"src/pages/AuditOperationsTab.tsx:476:5",className:`rounded-lg border p-3 ${c[i]}`,children:[e.jsx("div",{"code-path":"src/pages/AuditOperationsTab.tsx:477:7",className:"text-xs text-slate-500",children:s}),e.jsx("div",{"code-path":"src/pages/AuditOperationsTab.tsx:478:7",className:"text-xl font-bold mt-0.5",children:r})]})}function ss(s){return{id:s.id??0,username:s.username??"",login_type:s.login_type??"password",ip:s.ip??"",location:s.location??"",browser:s.browser??"",os:s.os??"",user_agent:s.user_agent??s.userAgent??"",status:s.status==="failed"||s.status==="fail"?"fail":"success",fail_reason:s.fail_reason??s.message??"",login_at:s.login_at??s.created_at??"",created_at:s.created_at??s.login_at??""}}function ts(){const[s,r]=a.useState([]),[i,c]=a.useState(!0),[n,x]=a.useState(""),[g,j]=a.useState(""),v=a.useCallback(async()=>{c(!0);try{const t={page:1,page_size:100};g&&(t.status=g==="fail"?"failed":g);const y=(await ke.list(t))?.list??[];r(y.map(ss))}catch{r([])}finally{c(!1)}},[g]);a.useEffect(()=>{v()},[v]);const l=s.filter(t=>{const h=n.toLowerCase();return!h||(t.username||"").toLowerCase().includes(h)||(t.ip||"").toLowerCase().includes(h)||(t.location||"").toLowerCase().includes(h)||(t.user_agent||"").toLowerCase().includes(h)}),u=(t,h)=>t==="success"?e.jsx(w,{"code-path":"src/pages/LoginLogsTab.tsx:88:7",variant:"outline",className:"border-emerald-500/30 text-emerald-400 bg-emerald-500/10",children:"成功"}):e.jsx(w,{"code-path":"src/pages/LoginLogsTab.tsx:92:7",variant:"outline",className:"border-red-500/30 text-red-400 bg-red-500/10",title:h||void 0,children:h||"失败"}),f=t=>{switch(t){case"password":return"密码登录";case"ldap":return"LDAP";case"token":return"Token";case"oauth":return"OAuth";default:return t||"密码登录"}};return e.jsxs("div",{"code-path":"src/pages/LoginLogsTab.tsx:113:5",className:"space-y-4",children:[e.jsxs("div",{"code-path":"src/pages/LoginLogsTab.tsx:115:7",className:"flex items-center gap-3 flex-wrap",children:[e.jsxs("div",{"code-path":"src/pages/LoginLogsTab.tsx:116:9",className:"relative w-64",children:[e.jsx(z,{"code-path":"src/pages/LoginLogsTab.tsx:117:11",className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-slate-500"}),e.jsx(F,{"code-path":"src/pages/LoginLogsTab.tsx:118:11",placeholder:"搜索用户/IP/归属地...",value:n,onChange:t=>x(t.target.value),className:"pl-9 h-9 bg-slate-800/50 border-slate-700 text-slate-200 placeholder:text-slate-500"})]}),e.jsx("div",{"code-path":"src/pages/LoginLogsTab.tsx:126:9",className:"flex items-center gap-1",children:[{value:"",label:"全部"},{value:"success",label:"成功"},{value:"fail",label:"失败"}].map(({value:t,label:h})=>e.jsx(N,{"code-path":"src/pages/LoginLogsTab.tsx:132:13",variant:g===t?"default":"outline",size:"sm",className:g===t?"h-8 bg-blue-600 hover:bg-blue-700 text-white":"h-8 border-slate-700 text-slate-400 hover:text-slate-100 hover:bg-slate-800",onClick:()=>j(t),children:h},t||"all"))}),e.jsxs(N,{"code-path":"src/pages/LoginLogsTab.tsx:148:9",variant:"outline",className:"border-slate-700 text-slate-300 hover:text-slate-100 hover:bg-slate-800",onClick:v,children:[e.jsx(W,{"code-path":"src/pages/LoginLogsTab.tsx:153:11",className:"h-4 w-4 mr-2"}),"刷新"]})]}),e.jsx($,{"code-path":"src/pages/LoginLogsTab.tsx:159:7",className:"bg-slate-900 border-slate-800",children:e.jsx(B,{"code-path":"src/pages/LoginLogsTab.tsx:160:9",className:"p-0",children:e.jsx("div",{"code-path":"src/pages/LoginLogsTab.tsx:161:11",className:"border-t border-slate-800",children:i?e.jsx("div",{"code-path":"src/pages/LoginLogsTab.tsx:163:15",className:"flex items-center justify-center py-16",children:e.jsx("div",{"code-path":"src/pages/LoginLogsTab.tsx:164:17",className:"w-8 h-8 border-2 border-blue-500 border-t-transparent rounded-full animate-spin"})}):l.length===0?e.jsxs("div",{"code-path":"src/pages/LoginLogsTab.tsx:167:15",className:"flex flex-col items-center justify-center py-16 text-slate-500",children:[e.jsx(Ne,{"code-path":"src/pages/LoginLogsTab.tsx:168:17",className:"h-8 w-8 mb-3 opacity-40"}),e.jsx("p",{"code-path":"src/pages/LoginLogsTab.tsx:169:17",className:"text-sm",children:"暂无登录日志"})]}):e.jsxs(E,{"code-path":"src/pages/LoginLogsTab.tsx:172:15",children:[e.jsx(q,{"code-path":"src/pages/LoginLogsTab.tsx:173:17",children:e.jsxs(_,{"code-path":"src/pages/LoginLogsTab.tsx:174:19",className:"border-slate-800 hover:bg-transparent",children:[e.jsx(d,{"code-path":"src/pages/LoginLogsTab.tsx:175:21",className:"text-slate-400",children:"登录时间"}),e.jsx(d,{"code-path":"src/pages/LoginLogsTab.tsx:176:21",className:"text-slate-400",children:"用户"}),e.jsx(d,{"code-path":"src/pages/LoginLogsTab.tsx:177:21",className:"text-slate-400",children:"登录方式"}),e.jsx(d,{"code-path":"src/pages/LoginLogsTab.tsx:178:21",className:"text-slate-400",children:"IP"}),e.jsx(d,{"code-path":"src/pages/LoginLogsTab.tsx:179:21",className:"text-slate-400",children:"归属地"}),e.jsx(d,{"code-path":"src/pages/LoginLogsTab.tsx:180:21",className:"text-slate-400",children:"浏览器/OS"}),e.jsx(d,{"code-path":"src/pages/LoginLogsTab.tsx:181:21",className:"text-slate-400",children:"状态"})]})}),e.jsx(K,{"code-path":"src/pages/LoginLogsTab.tsx:184:17",children:l.map(t=>e.jsxs(_,{"code-path":"src/pages/LoginLogsTab.tsx:186:21",className:"border-slate-800 hover:bg-slate-800/50",children:[e.jsx(p,{"code-path":"src/pages/LoginLogsTab.tsx:187:23",children:e.jsx("span",{"code-path":"src/pages/LoginLogsTab.tsx:188:25",className:"text-sm text-slate-400",children:t.login_at?new Date(t.login_at).toLocaleString():"--"})}),e.jsx(p,{"code-path":"src/pages/LoginLogsTab.tsx:192:23",children:e.jsx("span",{"code-path":"src/pages/LoginLogsTab.tsx:193:25",className:"text-sm text-slate-200 font-medium",children:t.username||"--"})}),e.jsx(p,{"code-path":"src/pages/LoginLogsTab.tsx:195:23",children:e.jsx(w,{"code-path":"src/pages/LoginLogsTab.tsx:196:25",variant:"outline",className:"border-blue-500/30 text-blue-400 bg-blue-500/10 text-xs",children:f(t.login_type)})}),e.jsx(p,{"code-path":"src/pages/LoginLogsTab.tsx:200:23",children:e.jsx("code",{"code-path":"src/pages/LoginLogsTab.tsx:201:25",className:"text-xs text-slate-400 bg-slate-800 px-2 py-0.5 rounded",children:t.ip||"--"})}),e.jsx(p,{"code-path":"src/pages/LoginLogsTab.tsx:205:23",children:e.jsxs("span",{"code-path":"src/pages/LoginLogsTab.tsx:206:25",className:"text-xs text-slate-500 flex items-center gap-1",children:[e.jsx(Se,{"code-path":"src/pages/LoginLogsTab.tsx:207:27",className:"h-3 w-3"}),t.location||"--"]})}),e.jsx(p,{"code-path":"src/pages/LoginLogsTab.tsx:211:23",children:e.jsxs("span",{"code-path":"src/pages/LoginLogsTab.tsx:212:25",className:"text-xs text-slate-500 flex items-center gap-1",title:t.user_agent,children:[e.jsx(Q,{"code-path":"src/pages/LoginLogsTab.tsx:213:27",className:"h-3 w-3 flex-shrink-0"}),t.browser||t.os?[t.browser,t.os].filter(Boolean).join(" / "):t.user_agent?t.user_agent.length>40?t.user_agent.slice(0,40)+"...":t.user_agent:"--"]})}),e.jsx(p,{"code-path":"src/pages/LoginLogsTab.tsx:223:23",children:u(t.status,t.fail_reason)})]},t.id))})]})})})})]})}function js(){const{pathname:s}=Ae();return console.debug("[AuditPage v2] pathname:",s),s.includes("/audit/terminal")?e.jsx(te,{"code-path":"src/pages/AuditPage.tsx:11:52"}):s.includes("/audit/operations")?e.jsx(Ye,{"code-path":"src/pages/AuditPage.tsx:12:54"}):s.includes("/audit/login-logs")?e.jsx(ts,{"code-path":"src/pages/AuditPage.tsx:13:54"}):e.jsx(te,{"code-path":"src/pages/AuditPage.tsx:15:10"})}export{js as AuditPage};