PageSourceSearch

https://visualsentinel.com/_next/static/chunks/715.927453210da0afcd.js

js visualsentinel.com collected 2026-10-01 14:57:55 UTC 7,429 bytes, 1 lines download raw bytes

1!function(){try{var e="u">typeof window?window:"u">typeof global?global:"u">typeof globalThis?globalThis:"u">typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="71df8d19-9d51-4779-a48f-22804f223173",e._sentryDebugIdIdentifier="sentry-dbid-71df8d19-9d51-4779-a48f-22804f223173")}catch(e){}}();"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[715],{715:(e,t,s)=>{s.r(t),s.d(t,{default:()=>m});var a=s(95155),n=s(12115),r=s(6296),d=s(13545),l=s(48368),c=s(66088),i=s(21362),x=s(84980);function o({diff:e,maxLines:t=50}){return e?e.added.length>0||e.removed.length>0?(0,a.jsxs)("div",{className:"font-mono text-xs rounded-lg overflow-hidden border border-zinc-950/10 dark:border-white/10",children:[e.removed.slice(0,t).map((e,t)=>(0,a.jsxs)("div",{className:"px-3 py-0.5 bg-red-500/10 text-red-500 dark:text-red-400 break-all",children:[(0,a.jsx)("span",{className:"select-none mr-2 text-red-400/60",children:"-"}),e||"\xa0"]},`r-${t}`)),e.added.slice(0,t).map((e,t)=>(0,a.jsxs)("div",{className:"px-3 py-0.5 bg-green-500/10 text-green-600 dark:text-green-400 break-all",children:[(0,a.jsx)("span",{className:"select-none mr-2 text-green-400/60",children:"+"}),e||"\xa0"]},`a-${t}`)),(e.removed.length>t||e.added.length>t)&&(0,a.jsxs)("div",{className:"px-3 py-1 text-zinc-500 bg-zinc-50 dark:bg-gray-800/50 text-center",children:["... and ",Math.max(0,e.removed.length-t)+Math.max(0,e.added.length-t)," more lines"]}),(0,a.jsxs)("div",{className:"px-3 py-1.5 bg-zinc-50 dark:bg-gray-800/50 border-t border-zinc-950/10 dark:border-white/10 flex items-center gap-3 text-[11px] text-zinc-500",children:[e.removed.length>0&&(0,a.jsxs)("span",{className:"text-red-500",children:["-",e.removed.length," removed"]}),e.added.length>0&&(0,a.jsxs)("span",{className:"text-green-500",children:["+",e.added.length," added"]}),e.unchangedCount>0&&(0,a.jsxs)("span",{children:[e.unchangedCount," unchanged"]})]})]}):(0,a.jsx)("div",{className:"text-xs text-zinc-500 italic py-2",children:"No text changes detected."}):null}var h=s(56678);function m({monitorId:e,range:t}){let[s,p]=(0,n.useState)([]),[f,g]=(0,n.useState)(!0),[u,y]=(0,n.useState)(null),[b,j]=(0,n.useState)(0),[k,v]=(0,n.use
1State)(null),[N,w]=(0,n.useState)(!1),z=(0,h.gM)(t);(0,n.useEffect)(()=>{A()},[e,z]);let A=async()=>{g(!0),y(null);try{let t=await fetch(`/api/monitors/${e}/snapshots?limit=20&${z}`);if(!t.ok)throw Error(`Failed to fetch snapshots: ${t.status}`);let s=await t.json();p(s.snapshots||[]),j(s.total||0)}catch(e){y(e instanceof Error?e.message:"Failed to load snapshots.")}finally{g(!1)}},F=async()=>{try{let t=await fetch(`/api/monitors/${e}/snapshots?limit=20&offset=${s.length}&${z}`);if(!t.ok)throw Error("Failed to load more");let a=await t.json();p(e=>[...e,...a.snapshots||[]])}catch{}};if(f)return(0,a.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,a.jsx)(r.A,{className:"w-6 h-6 text-accent-600 dark:text-accent-400 animate-spin"})});if(u)return(0,a.jsxs)("div",{className:"bg-red-500/10 border border-red-500/20 rounded-xl px-4 py-3 text-sm text-red-600 dark:text-red-400 flex items-center gap-2",children:[(0,a.jsx)(d.A,{className:"w-4 h-4 shrink-0"}),u]});if(0===s.length)return(0,a.jsxs)("div",{className:"surface-panel p-8 text-center",children:[(0,a.jsx)(l.A,{className:"w-10 h-10 text-zinc-500 mx-auto mb-3"}),(0,a.jsx)("p",{className:"text-sm text-zinc-500",children:"No content snapshots yet. Snapshots are created on each check."})]});let C=s[0];return(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("div",{className:"surface-panel ",children:[(0,a.jsxs)("button",{onClick:()=>w(!N),className:"w-full flex items-center justify-between px-4 py-3 text-sm font-medium text-zinc-950 dark:text-white hover:bg-zinc-50 dark:bg-gray-800/50 rounded-xl transition-colors",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(l.A,{className:"w-4 h-4 text-accent-600 dark:text-accent-400"}),"Current Extracted Text",(0,a.jsxs)("span",{className:"text-xs text-zinc-500 font-normal",children:["(",C.extractedText.length," chars)"]})]}),N?(0,a.jsx)(c.A,{className:"w-4 h-4 text-zinc-500"}):(0,a.jsx)(i.A,{className:"w-4 h-4 text-zinc-500"})]}),N&&(0,a.jsx)("div",{className:"px-4 pb-4",children:(0,a.jsx)("pre",{className:"text-xs font-mono text-zinc-700 dark:text-zinc-400 bg-zinc-50 dark:bg-gray-800 rounded-lg p-3 max-h-60 overflow-auto whitespace-pre-wrap break-all",children:C.extractedText||"(empty)"})})]}),(0,a.jsxs)("div",{className:"space-y-1",children:[(0,a.jsxs)("div",{className:"text-xs font-medium text-zinc-500 uppercase tracking-wider px-1 mb-2",children:["Change History (",b," snapshot",1!==b?"s":"",")"]}),s.map(e=>{let t=e.diffFromPrev&&(e.diffFromPrev.added.length>0||e.diffFromPrev.removed.length>0),s=k===e.id,n=new Date(e.createdAt);return(0,a.jsxs)("div",{className:"surface-panel overflow-hidden",children:[(0,a.jsxs)("button",{onClick:()=>v(s?null:e.id),className:"w-full flex items-center gap-3 px-4 py-3 hover:bg-zinc-50 dark:bg-gray-800/50 transition-colors text-left",children:[(0,a.jsx)("div",{className:`w-2 h-2 rounded-full shrink-0 ${t?"bg-amber-500":"bg-emerald-500"}`}),(0,a.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-zinc-500 shrink-0 w-36",children:[(0,a.jsx)(x.A,{className:"w-3 h-3"}),n.toLocaleDateString()," ",n.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})]}),(0,a.jsx)("div",{className:"flex-1 text-sm truncate",children:t?(0,a.jsxs)("span",{className:"text-amber-600 dark:text-amber-400",children:["Content changed",(0,a.jsxs)("span",{className:"text-zinc-500 ml-1 text-xs",children:["(+",e.diffFromPrev.added.length," -",e.diffFromPrev.removed.length," lines)"]})]}):e.diffFromPrev?(0,a.jsx)("span",{className:"text-zinc-500",children:"No change"}):(0,a.jsx)("span",{className:"text-cyan-600 dark:text-cyan-400",children:"Initial baseline"})}),(0,a.jsx)("span",{className:"text-[10px] font-mono text-zinc-500 shrink-0",children:e.textHash.substring(0,8)}),t&&(s?(0,a.jsx)(c.A,{className:"w-4 h-4 text-zinc-500 shrink-0"}):(0,a.jsx)(i.A,{className:"w-4 h-4 text-zinc-500 shrink-0"}))]}),s&&t&&e.diffFromPrev&&(0,a.jsx)("div",{className:"px-4 pb-4",children:(0,a.jsx)(o,{diff:e.diffFromPrev})})]},e.id)})]}),s.length<b&&(0,a.jsxs)("button",{onClick:F,className:"w-full py-2 text-sm text-accent-600 dar
1k:text-accent-400 hover:text-accent-600 dark:text-accent-400/80 transition-colors",children:["Load more (",b-s.length," remaining)"]})]})}},6296:(e,t,s)=>{s.d(t,{A:()=>a});let a=(0,s(90425).A)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},21362:(e,t,s)=>{s.d(t,{A:()=>a});let a=(0,s(90425).A)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]])},48368:(e,t,s)=>{s.d(t,{A:()=>a});let a=(0,s(90425).A)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]])},66088:(e,t,s)=>{s.d(t,{A:()=>a});let a=(0,s(90425).A)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]])},84980:(e,t,s)=>{s.d(t,{A:()=>a});let a=(0,s(90425).A)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]])}}]);

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.