PageSourceSearch

https://doinhanhweb.manus.space/assets/AdminWebhookLogs--k-W-5WD.js

js doinhanhweb.manus.space collected 2026-10-03 05:02:08 UTC 18,796 bytes, 1 lines download raw bytes

1import{a as R,o as H,r as c,t as l,b as r,j as s,F as n,p as v,h as V,s as O}from"./index-DRYNtDfq.js";import{D as q,A as B,a as j,b as E}from"./DashboardLayout-2PNDDCmu.js";import{B as t}from"./badge-ChxCwd0e.js";import{C as W,c as N,a as z,b as Q}from"./card-CJc3fOA2.js";import{S as _,a as $,b as F,c as J,d as K}from"./select-DFMmhlPh.js";import{D as X,a as G,b as U,c as Y}from"./dialog-D6TyplgW.js";import{I as Z}from"./input-Bz87F-Tp.js";import{T as ss}from"./trash-2-DmvQTIti.js";import{C as u}from"./circle-x-BiYcOnSB.js";import{E as es}from"./eye-CK6SMoQC.js";import{C as as}from"./chevron-left-mvqxhe1t.js";import{C as ts}from"./chevron-right-C0SJQso0.js";import{C as f}from"./copy-DMRO91DC.js";import"./trending-up-CvKbjCgH.js";import"./circle-arrow-down-HHKk6hyR.js";import"./circle-arrow-up-DUs07WdU.js";import"./file-text-CvyTzFOR.js";import"./send-BLEe7uzJ.js";import"./mail-Dy7s7wzw.js";import"./message-circle-DuGz_h7Q.js";import"./index-BfJPPodk.js";import"./index-CZ-4w4yO.js";import"./check-_56GbLcW.js";import"./chevron-up-CI5V9-bw.js";import"./useComposition-Lg3rnDe0.js";const os=[{value:"all",label:"Tất cả"},{value:"success",label:"Thành công"},{value:"need_review",label:"Cần đối soát"},{value:"expired",label:"Hết hạn"},{value:"unmatched",label:"Không khớp"},{value:"duplicate",label:"Trùng lặp"},{value:"error",label:"Lỗi"},{value:"skipped",label:"Bỏ qua"}];function y(i){switch(i){case"success":return s.jsxs(t,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:29",className:"bg-green-100 text-green-800 border-green-200",children:[s.jsx(v,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:29",className:"w-3 h-3 mr-1"}),"Thành công"]});case"need_review":return s.jsxs(t,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:30",className:"bg-orange-100 text-orange-800 border-orange-200",children:[s.jsx(O,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:30",className:"w-3 h-3 mr-1"}),"Cần đối soát"]});case"expired":return s.jsxs(t,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:31",className:"bg-yellow-100 text-yellow-800 border-yellow-200",children:[s.jsx(V,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:31",className:"w-3 h-3 mr-1"}),"Hết hạn"]});case"unmatched":return s.jsxs(t,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:32",className:"bg-red-100 text-red-800 border-red-200",children:[s.jsx(u,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:32",className:"w-3 h-3 mr-1"}),"Không khớp"]});case"duplicate":return s.jsx(t,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:33",className:"bg-blue-100 text-blue-800 border-blue-200",children:"Trùng lặp"});case"error":return s.jsxs(t,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:34",className:"bg-red-100 text-red-800 border-red-200",children:[s.jsx(u,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:34",className:"w-3 h-3 mr-1"}),"Lỗi"]});case"skipped":return s.jsx(t,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:35",className:"bg-gray-100 text-gray-800 border-gray-200",children:"Bỏ qua"});default:return s.jsx(t,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:36",variant:"outline",children:i})}}function Ss(){const{user:i}=R(),[,w]=H(),[m,x]=c.useState(1),[g,C]=c.useState("all"),[h,T]=c.useState(null),[S,k]=c.useState(!1),[d,D]=c.useState(null),{data:o,isLoading:P,refetch:I}=l.webhookLogs.list.useQuery({page:m,limit:20,result:g==="all"?void 0:g}),p=l.webhookLogs.getRetention.useQuery(),L=l.webhookLogs.setRetention.useMutation({onSuccess:e=>{r.success(`Đã lưu: giữ logs ${e.retentionDays} ngày`),p.refetch()},onError:e=>r.error(e.message)}),b=l.webhookLogs.cleanupNow.useMutation({onSuccess:e=>{r.success(`Đã xóa ${e.deletedCount} logs cũ hơn ${e.retentionDays} ngày`),I()},onError:e=>r.error(e.message)}),a=l.webhookLogs.getById.useQuery({id:h?.id||0},{enabled:!!h}),M=e=>{T(e),k(!0)},A=e=>{navigator.clipboard.writeText(e),r.success("Đã copy!")};return i?.role!=="admin"?(w("/"),null):s.jsx(q,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:92",title:"Admin Panel",navItems:B,userName:i?.name||"Admin",children:s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:93",className:"p-6 max-w-7xl mx-auto",children:[s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:94",className:"flex items-center gap-3 mb-6",children:[s.jsx(j,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:95",className:"w-6 h-6 text-primary"}),s.jsx("h1",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:96",className:"text-2xl font-bold",children:"Webhook Logs"})]}),s.jsx(W,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:100",className:"mb-4",children:s.jsx(N,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:101",className:"py-4",children:s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:102",className:"flex items-center justify-between flex-wrap gap-3",children:[s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:103",className:"flex items-center gap-2",children:[s.jsx(E,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:104",className:"w-4 h-4 text-muted-foreground"}),s.jsx("span",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:105",className:"text-sm font-medium",children:"Retention:"}),s.jsxs("span",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:106",className:"text-sm text-muted-foreground",children:["Giữ logs ",p.data?.retentionDays??30," ngày"]})]}),s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:110",className:"flex items-center gap-2",children:[s.jsx(Z,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:111",type:"number",min:7,max:365,placeholder:"30",className:"w-20 h-8 text-sm",value:d??p.data?.retentionDays??30,onChange:e=>D(Number(e.target.value))}),s.jsx(n,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:120",size:"sm",variant:"outline",disabled:L.isPending||!d||d<7,onClick:()=>d&&L.mutate({retentionDays:d}),children:"Lưu"}),s.jsxs(n,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:128",size:"sm",variant:"destructive",disabled:b.isPending,onClick:()=>b.mutate(),children:[s.jsx(ss,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:134",className:"w-3 h-3 mr-1"}),b.isPending?"Cleaning...":"Cleanup now"]})]})]})})}),s.jsxs(W,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:142",className:"mb-6",children:[s.jsx(z,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:143",className:"pb-3",children:s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:144",className:"flex items-center justify-between flex-wrap gap-3",children:[s.jsx(Q,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:145",className:"text-base",children:"Lịch sử webhook SePay"}),s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:146",className:"flex items-center gap-2",children:[s.jsx("span",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:147",className:"text-sm text-muted-foreground",children:"Lọc:"}),s.jsxs(_,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:148",value:g,onValueChange:e=>{C(e),x(1)},children:[s.jsx($,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:149",className:"w-[160px]",children:s.jsx(F,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:150"})}),s.jsx(J,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:152",children:os.map(e=>s.jsx(K,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:154",value:e.value,children:e.label},e.value))})]})]})]})}),s.jsx(N,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:161",children:P?s.jsx("div",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:163",className:"text-center py-8 text-muted-foreground",children:"Đang tải..."}):o?.items?.length?s.jsxs(s.Fragment,{children:[s.jsx("div",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:168",className:"overflow-x-auto",children:s.jsxs("table",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:169",className:"w-full text-sm",children:[s.jsx("thead",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:170",children:s.jsxs("tr",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:171",className:"border-b text-left",children:[s.jsx("th",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:172",className:"py-2 px-2 font-medium",children:"ID"}),s.jsx("th",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:173",className:"py-2 px-2 font-medium",children:"SePay TX"}),s.jsx("th",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:174",className:"py-2 px-2 font-medium",children:"Kết quả"}),s.jsx("th",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:175",className:"py-2 px-2 font-medium",children:"Deposit"}),s.jsx("th",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:176",className:"py-2 px-2 font-medium",children:"HMAC"}),s.jsx("th",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:177",className:"py-2 px-2 font-medium",children:"HTTP"}),s.jsx("th",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:178",className:"py-2 px-2 font-medium",children:"Thời gian xử lý"}),s.jsx("th",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:179",className:"py-2 px-2 font-medium",children:"IP"}),s.jsx("th",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:180",className:"py-2 px-2 font-medium",children:"Thời điểm"}),s.jsx("th",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:181",className:"py-2 px-2 font-medium",children:"Thao tác"})]})}),s.jsx("tbody",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:184",children:o.items.map(e=>s.jsxs("tr",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:186",className:"border-b hover:bg-muted/50",children:[s.jsx("td",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:187",className:"py-2 px-2 font-mono text-xs",children:e.id}),s.jsx("td",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:188",className:"py-2 px-2 font-mono text-xs",children:e.sepayTxId||"-"}),s.jsx("td",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:189",className:"py-2 px-2",children:y(e.processingResult)}),s.jsx("td",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:190",className:"py-2 px-2 font-mono text-xs",children:e.matchedDepositId||"-"}),s.jsxs("td",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:191",className:"py-2 px-2",children:[e.signatureValid===!0&&s.jsx(v,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:192",className:"w-4 h-4 text-green-600"}),e.signatureValid===!1&&s.jsx(u,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:193",className:"w-4 h-4 text-red-600"}),e.signatureValid===null&&s.jsx("span",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:194",className:"text-muted-foreground text-xs",children:"N/A"})]}),s.jsx("td",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:196",className:"py-2 px-2",children:s.jsx(t,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:197",variant:e.httpStatus===200?"outline":"destructive",className:"text-xs",children:e.httpStatus})}),s.jsx("td",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:201",className:"py-2 px-2 text-xs",children:e.processingTimeMs?`${e.processingTimeMs}ms`:"-"}),s.jsx("td",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:202",className:"py-2 px-2 text-xs font-mono",children:e.ipAddress||"-"}),s.jsx("td",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:203",className:"py-2 px-2 text-xs",children:new Date(e.createdAt).toLocaleStr
1ing("vi-VN")}),s.jsx("td",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:204",className:"py-2 px-2",children:s.jsx(n,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:205",size:"sm",variant:"ghost",onClick:()=>M(e),children:s.jsx(es,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:206",className:"w-4 h-4"})})})]},e.id))})]})}),o.totalPages>1&&s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:217",className:"flex items-center justify-between mt-4",children:[s.jsxs("span",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:218",className:"text-sm text-muted-foreground",children:["Trang ",o.page,"/",o.totalPages," (",o.total," logs)"]}),s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:221",className:"flex gap-2",children:[s.jsx(n,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:222",size:"sm",variant:"outline",disabled:m<=1,onClick:()=>x(e=>e-1),children:s.jsx(as,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:223",className:"w-4 h-4"})}),s.jsx(n,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:225",size:"sm",variant:"outline",disabled:m>=o.totalPages,onClick:()=>x(e=>e+1),children:s.jsx(ts,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:226",className:"w-4 h-4"})})]})]})]}):s.jsx("div",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:165",className:"text-center py-8 text-muted-foreground",children:"Chưa có webhook log nào"})})]}),s.jsx(X,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:237",open:S,onOpenChange:k,children:s.jsxs(G,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:238",className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[s.jsx(U,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:239",children:s.jsxs(Y,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:240",className:"flex items-center gap-2",children:[s.jsx(j,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:241",className:"w-5 h-5"}),"Chi tiết Webhook Log #",h?.id]})}),a.data?s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:246",className:"space-y-4",children:[s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:247",className:"grid grid-cols-2 gap-3 text-sm",children:[s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:248",children:[s.jsx("span",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:248",className:"text-muted-foreground",children:"SePay TX ID:"})," ",s.jsx("span",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:248",className:"font-mono",children:a.data.sepayTxId||"N/A"})]}),s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:249",children:[s.jsx("span",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:249",className:"text-muted-foreground",children:"HTTP Status:"})," ",s.jsx(t,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:249",variant:"outline",children:a.data.httpStatus})]}),s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:250",children:[s.jsx("span",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:250",className:"text-muted-foreground",children:"Kết quả:"})," ",y(a.data.processingResult)]}),s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:251",children:[s.jsx("span",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:251",className:"text-muted-foreground",children:"Deposit ID:"})," ",s.jsx("span",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:251",className:"font-mono",children:a.data.matchedDepositId||"N/A"})]}),s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:252",children:[s.jsx("span",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:252",className:"text-muted-foreground",children:"HMAC Valid:"})," ",a.data.signatureValid===!0?"✅ Yes":a.data.signatureValid===!1?"❌ No":"N/A"]}),s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:253",children:[s.jsx("span",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:253",className:"text-muted-foreground",children:"Thời gian xử lý:"})," ",a.data.processingTimeMs?`${a.data.processingTimeMs}ms`:"N/A"]}),s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:254",children:[s.jsx("span",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:254",className:"text-muted-foreground",children:"IP:"})," ",s.jsx("span",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:254",className:"font-mono",children:a.data.ipAddress||"N/A"})]}),s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:255",children:[s.jsx("span",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:255",className:"text-muted-foreground",children:"Thời điểm:"}
1)," ",new Date(a.data.createdAt).toLocaleString("vi-VN")]})]}),a.data.errorMessage&&s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:259",children:[s.jsx("h4",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:260",className:"font-medium text-sm mb-1 text-red-600",children:"Lỗi:"}),s.jsx("p",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:261",className:"text-sm bg-red-50 p-2 rounded border border-red-200",children:a.data.errorMessage})]}),a.data.requestHeaders&&s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:266",children:[s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:267",className:"flex items-center justify-between mb-1",children:[s.jsx("h4",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:268",className:"font-medium text-sm",children:"Request Headers:"}),s.jsxs(n,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:269",size:"sm",variant:"ghost",onClick:()=>A(JSON.stringify(a.data.requestHeaders,null,2)),children:[s.jsx(f,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:270",className:"w-3 h-3 mr-1"})," Copy"]})]}),s.jsx("pre",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:273",className:"text-xs bg-muted p-3 rounded overflow-x-auto max-h-32",children:String(JSON.stringify(a.data.requestHeaders,null,2))})]}),a.data.rawPayload&&s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:278",children:[s.jsxs("div",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:279",className:"flex items-center justify-between mb-1",children:[s.jsx("h4",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:280",className:"font-medium text-sm",children:"Raw Payload:"}),s.jsxs(n,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:281",size:"sm",variant:"ghost",onClick:()=>A(JSON.stringify(a.data.rawPayload,null,2)),children:[s.jsx(f,{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:282",className:"w-3 h-3 mr-1"})," Copy"]})]}),s.jsx("pre",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:285",className:"text-xs bg-muted p-3 rounded overflow-x-auto max-h-48",children:String(JSON.stringify(a.data.rawPayload,null,2))})]})]}):s.jsx("div",{"data-loc":"client/src/pages/admin/AdminWebhookLogs.tsx:290",className:"text-center py-4 text-muted-foreground",children:"Đang tải..."})]})})]})})}export{Ss as default};

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.