1import"../chunks/CWj6FrbW.js";import"../chunks/K9bMRwDS.js";import{p as Oa,D as Fa,B as q,z as $a,i as Da,f as _,h as Pa,a as Re,t as f,c as t,s as r,b as Ge,u as x,I as g,P as He,o as e,O as Na,g as u,j as Ia,y as Ta,$ as Ua,C as l,F as L,q as p,L as Se,r as s,n as se,N as Je,k as qe,J as Ma,A as R,H as Ee,l as Wa,U as ze,T as ja,X as Ba}from"../chunks/CrZuSITo.js";import{p as Ga}from"../chunks/Dk0cxk4R.js";import{g as Oe,i as Ha}from"../chunks/BWXuU_zM.js";var Ja=_("<option> </option>"),qa=_('<button class="clear-btn svelte-11vipea">Clear</button>'),za=_('<div class="empty-state svelte-11vipea"><p>No logs found</p></div>'),Va=_('<span class="error-indicator svelte-11vipea">!</span>'),Xa=_('<code class="svelte-11vipea"> </code>'),Ka=_("<span> </span>"),Qa=_('<p class="svelte-11vipea"><strong>User ID:</strong> </p>'),Ya=_('<p class="svelte-11vipea"><strong>Duration:</strong> </p>'),Za=_('<pre class="details-json svelte-11vipea"> </pre>'),es=_('<p class="error-message svelte-11vipea"> </p>'),as=_('<pre class="stack-trace svelte-11vipea"> </pre>'),ss=_('<div class="detail-section error-section svelte-11vipea"><h4 class="svelte-11vipea">Error</h4> <!> <!></div>'),ts=_('<tr class="log-details-row svelte-11vipea"><td colspan="6" class="svelte-11vipea"><div class="log-details svelte-11vipea"><div class="detail-section svelte-11vipea"><h4 class="svelte-11vipea">Details</h4> <!> <!> <!></div> <!></div></td></tr>'),vs=_('<tr><td class="col-time svelte-11vipea"> </td><td class="col-level svelte-11vipea"><span class="level-badge svelte-11vipea"> </span></td><td class="col-category svelte-11vipea"> </td><td class="col-message svelte-11vipea"><span class="message-text svelte-11vipea"> </span> <!></td><td class="col-endpoint svelte-11vipea"><!></td><td class="col-status svelte-11vipea"><!></td></tr> <!>',1),rs=_('<table class="logs-table svelte-11vipea"><thead><tr><th class="col-time svelte-11vipea">Time</th><th class="col-level svelte-11vipea">Level</th><th class="col-category svelte-11vipea">Category</th><th class="col-message svelte-11vipea">Message</th><th class="col-endpoint svelte-11vipea">Endpoint</th><th class="col-status svelte-11vipea">Status</th></tr></thead><tbody></tbody></table>'),ls=_('<div class="pagination svelte-11vipea"><button class="svelte-11vipea">Previous</button> <span class="page-info svelte-11vipea"> </span> <button class="svelte-11vipea">Next</button></div>'),is=_("<div> </div>"),os=_('<p class="svelte-11vipea">Select how old the logs should be to delete:</p> <div class="clear-options svelte-11vipea"><button class="clear-option svelte-11vipea"> </button> <button class="clear-option svelte-11vipea"> </button> <button class="clear-option svelte-11vipea"> </button> <button class="clear-option danger svelte-11vipea"> </button></div>',1),ns=_('<div class="modal-overlay svelte-11vipea"><div class="modal svelte-11vipea"><div class="modal-header svelte-11vipea"><h2 class="svelte-11vipea">Clear Logs</h2> <button class="modal-close svelte-11vipea">×</button></div> <div class="modal-body svelte-11vipea"><!></div> <div class="modal-footer svelte-11vipea"><button class="btn-secondary svelte-11vipea"> </button></div></div></div>'),cs=_('<div class="logs-page svelte-11vipea"><header class="page-header svelte-11vipea"><div><h1 class="svelte-11vipea">System Logs</h1> <p class="subtitle svelte-11vipea">Monitor system activity and debug issues</p></div> <button class="clear-logs-btn svelte-11vipea"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" class="svelte-11vipea"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"></path></svg> Clear Logs</button></header> <div class="summary-cards svelte-11vipea"><div class="summary-card total svelte-11vipea"><span class="value svelte-11vipea"> </span> <span class="label svelte-11vipea">Total Logs</span></div> <div class="summary-card error svelte-11vipea"><span class="value svelte-11vipea"> </span> <span class="label svelte-11vipea">Errors</span></div> <div class="summary-card warn svelte-11vipea"><span class="value svelte-11vipea"> </span> <span class="label svelte-11vipea">Warnings</span></div> <div class="summary-card info svelte-11vipea"><span class="value svelte-11vipea"> </span> <span class="label svelte-11vipea">Info</span></div></div> <div class="filters-bar svelte-11vipea"><div class="filter-group svelte-11vipea"><select class="svelte-11vipea"><option>All Levels</option><option>Debug</option><option>Info</option><option>Warning</option><option>Error</option><option>Fatal</option></select></div> <div class="filter-group svelte-11vipea"><select class="svelte-11vipea"><option>All Categories</option><!></select></div> <div class="filter-group search svelte-11vipea"><input type="text" placeholder="Search logs..." class="svelte-11vipea"/> <button class="svelte-11vipea">Search</button></div> <!></div> <div class="logs-container svelte-11vipea"><!></div> <!></div> <!>',1);function gs(Ve,te){Oa(te,!1);const[Xe,Ke]=Ta(),z=()=>$a(Ga,"$page",Xe);let o=Fa(te,"data",8),j=q(null),ve=q(!1),S=q(!1),C=q(null),d=q({level:z().url.searchParams.get("level")||"",category:z().url.searchParams.get("category")||"",search:z().url.searchParams.get("search")||""});const Fe={DEBUG:{bg:"#f3f4f6",color:"#6b7280"},INFO:{bg:"#dbeafe",color:"#3b82f6"},WARN:{bg:"#fef3c7",color:"#f59e0b"},ERROR:{bg:"#fee2e2",color:"#ef4444"},FATAL:{bg:"#fce7f3",color:"#db2777"}};
1function Qe(v){return new Date(v).toLocaleString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"})}function V(){const v=new URLSearchParams;e(d).level&&v.set("level",e(d).level),e(d).category&&v.set("category",e(d).category),e(d).search&&v.set("search",e(d).search),Oe(`/admin/logs?${v.toString()}`)}function Ye(){R(d,{level:"",category:"",search:""}),Oe("/admin/logs")}function $e(v){const i=new URLSearchParams(z().url.searchParams);i.set("page",v.toString()),Oe(`/admin/logs?${i.toString()}`)}function Ze(v){var i;R(j,((i=e(j))==null?void 0:i.id)===v.id?null:v)}async function X(v){var i;R(S,!0),R(C,null);try{const b=await(await fetch(`/apis/v1/admin/logs?daysOld=${v}`,{method:"DELETE"})).json();b.success?(R(C,{success:!0,message:b.data.message}),await Ha()):R(C,{success:!1,message:((i=b.error)==null?void 0:i.message)||"Failed to clear logs"})}catch(m){R(C,{success:!1,message:m.message})}finally{R(S,!1)}}function re(){R(ve,!1),R(C,null)}Da();var De=cs();Pa(v=>{Ua.title="System Logs - Admin"});var le=Re(De),ie=t(le),ea=r(t(ie),2);s(ie);var oe=r(ie,2),ne=t(oe),Pe=t(ne),aa=t(Pe,!0);s(Pe),se(2),s(ne);var ce=r(ne,2),Ne=t(ce),sa=t(Ne,!0);s(Ne),se(2),s(ce);var pe=r(ce,2),Ie=t(pe),ta=t(Ie,!0);s(Ie),se(2),s(pe);var Te=r(pe,2),Ue=t(Te),va=t(Ue,!0);s(Ue),se(2),s(Te),s(oe);var de=r(oe,2),ue=t(de),K=t(ue);f(()=>{e(d),Je(()=>{})});var _e=t(K);_e.value=_e.__value="";var me=r(_e);me.value=me.__value="DEBUG";var ge=r(me);ge.value=ge.__value="INFO";var fe=r(ge);fe.value=fe.__value="WARN";var be=r(fe);be.value=be.__value="ERROR";var Me=r(be);Me.value=Me.__value="FATAL",s(K),s(ue);var he=r(ue,2),Q=t(he);f(()=>{e(d),Je(()=>{o()})});var ye=t(Q);ye.value=ye.__value="";var ra=r(ye);Ge(ra,1,()=>(L(o()),l(()=>o().summary.categories)),qe,(v,i)=>{var m=Ja(),b=t(m);s(m);var a={};f(()=>{p(b,`${e(i),l(()=>e(i).name)??""} (${e(i),l(()=>e(i).count)??""})`),a!==(a=(e(i),l(()=>e(i).name)))&&(m.value=(m.__value=(e(i),l(()=>e(i).name)))??"")}),u(v,m)}),s(Q),s(he);var xe=r(he,2),Y=t(xe);Ma(Y);var la=r(Y,2);s(xe);var ia=r(xe,2);{var oa=v=>{var i=qa();g("click",i,Ye),u(v,i)};x(ia,v=>{e(d),l(()=>e(d).level||e(d).category||e(d).search)&&v(oa)})}s(de);var ke=r(de,2),na=t(ke);{var ca=v=>{var i=za();u(v,i)},pa=v=>{var i=rs(),m=r(t(i));Ge(m,5,()=>(L(o()),l(()=>o().logs)),qe,(b,a)=>{var O=vs(),$=Re(O);let Z;var B=t($),ee=t(B,!0);s(B);var D=r(B),G=t(D),E=t(G,!0);s(G),s(D);var w=r(D),P=t(w,!0);s(w);var A=r(w),N=t(A),I=t(N,!0);s(N);var Le=r(N,2);{var T=n=>{var c=Va();u(n,c)};x(Le,n=>{e(a),l(()=>e(a).error)&&n(T)})}s(A);var H=r(A),W=t(H);{var Ce=n=>{var c=Xa(),k=t(c);s(c),f(()=>p(k,`${e(a),l(()=>e(a).method||"")??""} ${e(a),l(()=>e(a).endpoint)??""}`)),u(n,c)},ga=n=>{var c=ze("-");u(n,c)};x(W,n=>{e(a),l(()=>e(a).endpoint)?n(Ce):n(ga,!1)})}s(H);var We=r(H),fa=t(We);{var ba=n=>{var c=Ka();let k;var ae=t(c,!0);s(c),f(J=>{k=Ee(c,1,"status-code svelte-11vipea",null,k,J),p(ae,(e(a),l(()=>e(a).statusCode)))},[()=>({success:e(a).statusCode<400,error:e(a).statusCode>=400})]),u(n,c)},ha=n=>{var c=ze("-");u(n,c)};x(fa,n=>{e(a),l(()=>e(a).statusCode)?n(ba):n(ha,!1)})}s(We),s($);var ya=r($,2);{var xa=n=>{var c=ts(),k=t(c),ae=t(k),J=t(ae),je=r(t(J),2);{var ka=h=>{var y=Qa(),F=r(t(y));s(y),f(()=>p(F,` ${e(a),l(()=>e(a).userId)??""}`)),u(h,y)};x(je,h=>{e(a),l(()=>e(a).userId)&&h(ka)})}var Be=r(je,2);{var La=h=>{var y=Ya(),F=r(t(y));s(y),f(()=>p(F,` ${e(a),l(()=>e(a).duration)??""}ms`)),u(h,y)};x(Be,h=>{e(a),l(()=>e(a).duration)&&h(La)})}var Ca=r(Be,2);{var wa=h=>{var y=Za(),F=t(y,!0);s(y),f(we=>p(F,we),[()=>(e(a),l(()=>JSON.stringify(e(a).details,null,2)))]),u(h,y)};x(Ca,h=>{e(a),l(()=>e(a).details)&&h(wa)})}s(J);var Aa=r(J,2);{var Ra=h=>{var y=ss(),F=r(t(y),2);{var we=U=>{var M=es(),Ae=t(M,!0);s(M),f(()=>p(Ae,(e(a),l(()=>e(a).error)))),u(U,M)};x(F,U=>{e(a),l(()=>e(a).error)&&U(we)})}var Sa=r(F,2);{var Ea=U=>{var M=as(),Ae=t(M,!0);s(M),f(()=>p(Ae,(e(a),l(()=>e(a).stack)))),u(U,M)};x(Sa,U=>{e(a),l(()=>e(a).stack)&&U(Ea)})}s(y),u(h,y)};x(Aa,h=>{e(a),l(()=>e(a).error||e(a).stack)&&h(Ra)})}s(ae),s(k),s(c),u(n,c)};x(ya,n=>{e(j),e(a),l(()=>{var c;return((c=e(j))==null?void 0:c.id)===e(a).id})&&n(xa)})}f((n,c)=>{Z=Ee($,1,"log-row svelte-11vipea",null,Z,n),p(ee,c),Wa(G,`background: ${e(a),l(()=>{var k;return(k=Fe[e(a).level])==null?void 0:k.bg})??""}; color: ${e(a),l(()=>{var k;return(k=Fe[e(a).level])==null?void 0:k.color})??""};`),p(E,(e(a),l(()=>e(a).level))),p(P,(e(a),l(()=>e(a).category))),p(I,(e(a),l(()=>e(a).message)))},[()=>{var n;return{"has-error":e(a).level==="ERROR"||e(a).level==="FATAL",selected:((n=e(j))==null?void 0:n.id)===e(a).id}},()=>(e(a),l(()=>Qe(e(a).createdAt)))]),g("click",$,()=>Ze(e(a))),u(b,O)}),s(m),s(i),u(v,i)};x(na,v=>{L(o()),l(()=>o().logs.length===0)?v(ca):v(pa,!1)})}s(ke);var da=r(ke,2);{var ua=v=>{var i=ls(),m=t(i),b=r(m,2),a=t(b);s(b);var O=r(b,2);s(i),f(()=>{m.disabled=(L(o()),l(()=>o().pagination.page<=1)),p(a,`Page ${L(o()),l(()=>o().pagination.page)??""} of ${L(o()),l(()=>o().pagination.pages)??""}`),O.disabled=(L(o()),l(()=>o().pagination.page>=o().pagination.pages))}),g("click",m,()=>$e(o().pagination.page-1)),g("click",O,()=>$e(o().pagination.page+1)),u(v,i)};x(da,v=>{L(o()),l(()=>o().pagination.pages>1)&&v(ua)})}s(le);var _a=r(le,2);{var ma=v=>{var i=ns(),m=t(i),b=t(m),a=r(t(b),2);s(b);var O=r(b,2),$=t(O);{var Z=E=>{var w=is();let P;var A=t(w,!0);s(w),f(N=>{P=Ee(w,1,"clear-result svelte-11vipea",null,P,N),p(A,(e(C),l(()=>e(C).message)))},[()=>({success:e(C).success,error:!e(C).success})]),u(E,w)},B=E=>{var w=os(),P=r(Re(w),2),A=t(P),N=t(A,!0);s(A);var I=r(A,2),Le=t(I,!0);s(I);var T=r(I,2),H=t(T,!0);s(T);var W=r(T,2),Ce=t(W,!0);s(W),s(P),f(()=>{A.disabled=e(S),p(N,e(S)?"Clearing...":"Older than 1 day"),I.disabled=e(S),p(Le,e(S)?"Clearing...":"Older than 7 days"),T.disabled=e(S),p(H,e(S)?"Clearing...":"Older than 30 days"),W.disabled=e(S),p(Ce,e(S)?"Clearing...":"Clear ALL logs")}
1),g("click",A,()=>X(1)),g("click",I,()=>X(7)),g("click",T,()=>X(30)),g("click",W,()=>X(0)),u(E,w)};x($,E=>{e(C)?E(Z):E(B,!1)})}s(O);var ee=r(O,2),D=t(ee),G=t(D,!0);s(D),s(ee),s(m),s(i),f(()=>p(G,e(C)?"Done":"Cancel")),g("click",a,re),g("click",D,re),g("click",m,ja(function(E){Ba.call(this,te,E)})),g("click",i,re),u(v,i)};x(_a,v=>{e(ve)&&v(ma)})}f(v=>{p(aa,v),p(sa,(L(o()),l(()=>(o().summary.levels.ERROR||0)+(o().summary.levels.FATAL||0)))),p(ta,(L(o()),l(()=>o().summary.levels.WARN||0))),p(va,(L(o()),l(()=>o().summary.levels.INFO||0)))},[()=>(L(o()),l(()=>o().summary.total.toLocaleString()))]),g("click",ea,()=>R(ve,!0)),He(K,()=>e(d).level,v=>Se(d,e(d).level=v)),g("change",K,V),He(Q,()=>e(d).category,v=>Se(d,e(d).category=v)),g("change",Q,V),Na(Y,()=>e(d).search,v=>Se(d,e(d).search=v)),g("keydown",Y,v=>v.key==="Enter"&&V()),g("click",la,V),u(Ve,De),Ia(),Ke()}export{gs as component};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.