PageSourceSearch

https://static.karmuz.net/assets/status-DvfQtpsI.js

js karmuz.net collected 2026-10-08 05:21:57 UTC 12,095 bytes, 1 lines download raw bytes

1import{Y as e,o as t,q as n,t as r,u as i}from"./jsx-runtime-BTgOCYyl.js";import{d as a,f as o,o as s,s as c}from"./src-Ch68KD4x.js";import{t as l}from"./site-MYsyMqoc.js";import{t as u}from"./seo-DRHdbsX5.js";import{d,u as f}from"./network-map-core-CzftGhvK.js";import{t as p}from"./map-page-shell-NWDZ7VKf.js";import{r as m}from"./src-QrWBhADY.js";var h=o(`check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]),g=o(`triangle-alert`,[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),_=e(n(),1),v=r();function y({history:e,sitesUp:t,sitesTotal:n,live:r}){let i=e.map(e=>e.sessions).filter(e=>e!=null),a=e.map(e=>e.t),o=r?`now`:b(a);return(0,v.jsxs)(`div`,{className:`grid min-w-0 grid-cols-1 gap-4 sm:grid-cols-2`,children:[(0,v.jsx)(m,{title:`Sessions established`,points:i,times:a,tone:`accent`,unit:`peers`,fullBleed:!0,endLabel:o,showCurrent:r}),(0,v.jsx)(S,{history:e,sitesUp:t,sitesTotal:n,times:a,live:r,endLabel:o})]})}function b(e){if(!e.length)return``;let t=new Date(e[e.length-1]);return Number.isNaN(t.getTime())?``:`to ${t.toISOString().slice(11,16)}Z`}var x={operational:`var(--state-ok)`,partial:`var(--state-degraded)`,major_outage:`var(--state-down)`,unknown:`var(--text-dim)`};function S({history:e,sitesUp:t,sitesTotal:n,times:r,live:i=!0,endLabel:a=`now`,height:o=120}){let s=C(r),c=Math.max(1,Math.ceil(e.length/80)),l=c>1?e.filter((e,t)=>t%c===0):e;return(0,v.jsxs)(`div`,{className:`rounded-[var(--r-card)] border p-4`,style:{borderColor:`var(--border-soft)`,background:`var(--surface-sunken)`},children:[(0,v.jsxs)(`div`,{className:`flex items-baseline justify-between`,children:[(0,v.jsx)(`span`,{className:`eyebrow`,children:`Sites up`}),(0,v.jsxs)(`span`,{className:`font-display text-[18px] font-bold tabular-nums`,style:{color:i?t>=n?`var(--state-ok)`:t===0?`var(--state-down)`:`var(--state-degraded)`:`var(--text-dim)`},children:[i?t:`—`,(0,v.jsxs)(`span`,{className:`text-[13px] font-normal text-[var(--text-dim)]`,children:[` `,`/ `,n]})]})]}),l.length?(0,v.jsx)(`div`,{className:`mt-3 flex min-w-0 items-end gap-[2px] overflow-hidden`,style:{height:o},role:`img`,"aria-label":i?`Sites up over time, currently ${t} of ${n}`:`Sites up over time, out of ${n}; current value unavailable`,children:l.map((e,t)=>{let r=e.sitesTotal||n||1,i=Math.max(0,Math.min(1,e.sitesUp/r));return(0,v.jsx)(`div`,{className:`relative h-full flex-1 overflow-hidden rounded-[2px]`,style:{background:`var(--surface-card)`,minWidth:1},title:`${e.sitesUp} / ${r} up`,children:(0,v.jsx)(`div`,{className:`absolute bottom-0 w-full rounded-[2px]`,style:{height:`${Math.max(5,i*100)}%`,background:x[e.overall]??`var(--text-dim)`}})},t)})}):(0,v.jsx)(`div`,{className:`mt-3 flex items-center justify-center text-center text-xs text-[var(--text-dim)]`,style:{height:o},children:`History will populate as status updates arrive.`}),(0,v.jsxs)(`div`,{className:`mt-1 flex justify-between font-mono text-[10px] text-[var(--text-dim)] tabular-nums`,children:[(0,v.jsx)(`span`,{children:s||`recent`}),(0,v.jsx)(`span`,{children:s?a:``})]})]})}function C(e){if(!e||e.length<2)return``;let t=new Date(e[0]).getTime(),n=new Date(e[e.length-1]).getTime();return!Number.isFinite(t)||!Number.isFinite(n)?`representative`:`last ~${Math.max(1,Math.round((n-t)/36e5))}h`}function w(e){let t=new Date(e).getTime();if(Number.isNaN(t))return``;let n=Date.now()-t,r=Math.round(n/6e4);if(r<1)return`just now`;if(r<60)return`${r}m ago`;let i=Math.round(r/60);return i<24?`${i}h ago`:`${Math.round(i/24)}d ago`}function T(e){let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toUTCString().replace(`GMT`,`UTC`)}function E({events:e}){let[t,n]=(0,_.useState)(!1);return(0,_.useEffect)(()=>n(!0),[]),e.length?(0,v.jsx)(`ol`,{className:`space-y-3`,children:e.map(e=>{let n=e.kind===`maintenance`,r=!!e.endedAt,i=n?`accent`:r?`ok`:e.severity===`major`?`down`:`brand`,a=n?`maintenance`:r?`resolved`:e.severity===`major`?`major`:`minor`;return(0,v.jsxs)(`li`,{className:`rounded-[var(--r-card)] border p-4`,style:{borderColor:`var(--border-soft)`,background:`var(--surface-sunken)`},children:[(0,v.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,v.jsx)(c,{tone:i,children:a}),(0,v.jsx)(`span`,{className:`font-semibold text-foreground`,children:e.title}),(0,v.jsx)(`span`,{className:`ml-auto font-mono text-xs text-[var(--text-dim)]`,children:t?w(e.startedAt):``})]}),e.detail&&(0,v.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:e.detail}),(0,v.jsxs)(`p`,{className:`mt-2 font-mono text-[11px] text-[var(--text-dim)]`,children:[T(e.startedAt),e.endedAt?` → ${T(e.endedAt)}`:` · ongoing`]})]},e.id)})}):(0,v.jsx)(`div`,{className:`rounded-[var(--r-card)] border p-6 text-center text-sm text-[var(--text-dim)]`,style:{borderColor:`var(--border-soft)`,background:`var(--surface-sunken)`},children:`No incidents recorded. Past network events will appear here as they happen.`})}var D={fullBleedMap:!0},O=new Intl.DisplayNames([`en`],{type:`region`});function k(e){try{return O.of(e.toUpperCase())??e}catch{return e}}var A=()=>u({title:`Status | ${l.name} (${l.asn})`,description:`Live status for ${l.name} (${l.asn}) - per-site health, peering sessions, RPKI and uptime across our European anycast footprint.`,path:`/status`,noindex:!0});function j(e,t){return e?.pops?.find(e=>e.code===t)}function M(e){return e?e.status===`down`?`down`:e.status===`degraded`?`degraded`:`up`
1:`unknown`}var N={operational:{tone:`ok`,tint:`var(--tint-ok)`,bd:`var(--border-ok)`,color:`var(--state-ok)`,title:`All systems operational`},partial:{tone:`degraded`,tint:`var(--tint-brand)`,bd:`var(--border-brand)`,color:`var(--brand)`,title:`Partially degraded`},major_outage:{tone:`down`,tint:`var(--tint-down)`,bd:`var(--border-down)`,color:`var(--state-down)`,title:`Major outage`},unknown:{tone:`degraded`,tint:`var(--surface-card)`,bd:`var(--border)`,color:`var(--text-muted)`,title:`Status unavailable`}};function P(e){return e===`operational`?`var(--state-ok)`:e===`degraded`?`var(--state-degraded)`:`var(--state-down)`}function F(e){return e==null?`var(--text-dim)`:e>=99.9?`var(--state-ok)`:e>=99?`var(--state-degraded)`:`var(--state-down)`}var I=t(function(){let{status:e,history:t,events:n,uptime:r,uptimeLabels:o}=i(),l=e?.overall??`unknown`,u=o,m=N[l]??N.unknown,_=f.length,b=f.filter(t=>{let n=M(j(e,t.code));return n!==`down`&&n!==`unknown`}).length,x=e?.totals,S=l===`operational`,C=e!==null,w=e?{t:`LIVE`,tone:`ok`}:{t:`NO LIVE DATA`,tone:`neutral`},T=e?S?`${b} / ${_} sites up${x?.bgpEstablished?` · ~${x.bgpEstablished} sessions established`:``}${x?.rpki?` · RPKI ${x.rpki}`:``}`:`${b} / ${_} sites up · one or more need attention`:`Live data is temporarily unavailable - showing the known footprint.`;return(0,v.jsxs)(p,{children:[(0,v.jsx)(`p`,{className:`eyebrow`,children:`Status`}),(0,v.jsx)(`h1`,{className:`mt-2 font-display text-[var(--fs-h1)] font-extrabold tracking-tight text-foreground`,children:`Network status`}),(0,v.jsxs)(`div`,{className:`mt-6 flex items-center gap-4 roun
1ded-[var(--r-card)] border px-6 py-5`,style:{background:m.tint,borderColor:m.bd},children:[(0,v.jsx)(`span`,{className:`flex h-11 w-11 flex-shrink-0 items-center justify-center rounded-[var(--r-control)]`,style:{background:`color-mix(in srgb, `+m.color+` 16%, transparent)`,color:m.color},children:S?(0,v.jsx)(h,{className:`h-5 w-5`}):(0,v.jsx)(g,{className:`h-5 w-5`})}),(0,v.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,v.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,v.jsx)(`h2`,{className:`font-display text-[20px] font-semibold`,style:{color:m.color},children:m.title}),(0,v.jsx)(c,{tone:w.tone,children:w.t})]}),(0,v.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:T})]}),e?.updatedAt&&(0,v.jsx)(`time`,{dateTime:e.updatedAt,className:`hidden font-mono text-xs text-[var(--text-dim)] sm:block`,children:new Date(e.updatedAt).toUTCString().replace(`GMT`,`UTC`)})]}),e?.external?.services&&e.external.services.length>0&&(0,v.jsxs)(`section`,{className:`mt-[var(--section-y-tight)]`,children:[(0,v.jsxs)(`div`,{className:`flex items-baseline justify-between`,children:[(0,v.jsx)(`p`,{className:`eyebrow`,children:`Services`}),(0,v.jsx)(`p`,{className:`font-mono text-[10px] text-[var(--text-dim)]`,children:`measured from a vantage point`})]}),(0,v.jsx)(`div`,{className:`mt-4 grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3`,children:e.external.services.map(e=>(0,v.jsxs)(`div`,{className:`flex items-center gap-3 rounded-[var(--r-card)] border px-4 py-3`,style:{borderColor:`var(--border-soft)`,background:`var(--surface-sunken)`},children:[(0,v.jsx)(`span`,{"aria-hidden":!0,className:`size-2 shrink-0 rounded-full`,style:{background:P(e.status)}}),(0,v.jsx)(`span`,{className:`text-[14px] font-semibold`,children:e.name}),(0,v.jsx)(`span`,{className:`ml-auto font-mono text-[11px]`,style:{color:P(e.status)},children:e.status})]},e.name))})]}),r&&(0,v.jsxs)(`section`,{className:`mt-[var(--section-y-tight)]`,children:[(0,v.jsxs)(`div`,{className:`flex items-baseline justify-between`,children:[(0,v.jsx)(`p`,{className:`eyebrow`,children:`Uptime`}),(0,v.jsx)(`p`,{className:`font-mono text-[10px] text-[var(--text-dim)]`,children:`rolling windows`})]}),(0,v.jsx)(`div`,{className:`mt-4 grid grid-cols-2 gap-3 sm:grid-cols-4`,children:u.map(([e,t])=>{let n=C?r[e]:void 0,i=F(n);return(0,v.jsxs)(`div`,{className:`rounded-[var(--r-card)] border px-4 py-4`,style:{borderColor:`var(--border-soft)`,background:`var(--surface-sunken)`},children:[(0,v.jsx)(`div`,{className:`field-label`,children:t}),(0,v.jsxs)(`div`,{className:`mt-2 flex items-baseline gap-0.5`,children:[(0,v.jsx)(`span`,{className:`font-display text-[26px] font-bold leading-none tabular-nums`,style:{color:i},children:n??`—`}),n!=null&&(0,v.jsx)(`span`,{className:`text-[13px] font-semibold`,style:{color:i},children:`%`})]}),n==null&&(0,v.jsx)(`div`,{className:`mt-1 font-mono text-[10px] text-[var(--text-dim)]`,children:C?`collecting`:`stale`})]},e)})})]}),(0,v.jsx)(`div`,{className:`mt-8`,children:(0,v.jsx)(y,{history:t,sitesUp:b,sitesTotal:_,live:C})}),(0,v.jsx)(`p`,{className:`mt-[var(--section-y-tight)] eyebrow`,children:`Per-site detail`}),(0,v.jsx)(`div`,{className:`mt-4 grid grid-cols-1 gap-3 sm:grid-cols-2`,children:f.map(t=>{let n=j(e,t.code),r=M(n),i=d[t.id],o=n?.bgpEstablished,c=r===`down`?`unreachable`:i?.ix.length?i.ix.join(` · `):t.role;return(0,v.jsx)(s,{pad:`sm`,style:r===`down`?{borderColor:`var(--border-down)`}:void 0,children:(0,v.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,v.jsx)(a,{status:r,label:!1}),(0,v.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,v.jsx)(`span`,{className:`font-semibold text-foreground`,children:t.name}),(0,v.jsxs)(`span`,{className:`ml-2 font-mono text-xs text-muted-foreground`,children:[(0,v.jsx)(`span`,{className:`hidden sm:inline`,children:k(t.country)}),(0,v.jsx)(`span`,{className:`sm:hidden`,children:t.country})]}),(0,v.jsxs)(`div`,{className:`font-mono text-xs text-[var(--text-dim)]`,children:[c,n?.rpki?` · RPKI ${n.rpki}`:``]})]}),o!=null&&(0,v.jsxs)(`span`,{className:`shrink-0 whitespace-nowrap font-mono text-xs tabular-nums`,style:{color:r===`down`?`var(--state-down)`:`var(--text-muted)`},children:[o,` `,o===1?`session`:`sessions`]})]})},t.id)})}),(0,v.jsxs)(`div`,{className:`mt-6 flex flex-wrap gap-2`,children:[(0,v.jsxs)(c,{tone:C?x?.rpki&&x.rpki!==`valid`?`brand`:`ok`:`neutral`,children:[`RPKI validating`,x?.rpki&&x.rpki!==`valid`?` · ${x.rpki}`:``]}),(0,v.jsx)(c,{tone:`accent`,children:`PeeringDB up to date`}),(0,v.jsx)(c,{tone:`neutral`,children:`dual-stack v4 + v6`})]}),(0,v.jsx)(`p`,{className:`mt-[var(--section-y-tight)] eyebrow`,children:`Recent events`}),(0,v.jsx)(`div`,{className:`mt-4`,children:(0,v.jsx)(E,{events:n})}),(0,v.jsx)(`p`,{className:`mt-8 text-xs text-[var(--text-dim)]`,children:`This page is hosted within the network it reports on.`})]})});export{I as default,D as handle,A as meta};

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.