@@ -12,10 +12,10 @@ import FlexibleSection from "../components/FlexibleSection.astro";
1212// Per-component metadata (id, name, version, repo) to build exact URLs
1313interface ComponentDef { id: ' defguard' | ' defguard-client' | ' defguard-mobile' | ' defguard-proxy' | ' defguard-gateway' ; name: string ; version: string ; repo: string ; status: string }
1414const COMPONENTS: ComponentDef [] = [
15- { id: ' defguard' , name: ' Core' , version: ' 1.6.4 ' , repo: ' defguard' , status: ' ' },
15+ { id: ' defguard' , name: ' Core' , version: ' 1.6.5 ' , repo: ' defguard' , status: ' ' },
1616 { id: ' defguard-proxy' , name: ' Proxy' , version: ' 1.6.3' , repo: ' proxy' , status: ' ' },
17- { id: ' defguard-gateway' , name: ' Gateway' , version: ' 1.6.3 ' , repo: ' gateway' , status: ' ' },
18- { id: ' defguard-client' , name: ' Desktop App' , version: ' 1.6.6 ' , repo: ' client' , status: ' ' },
17+ { id: ' defguard-gateway' , name: ' Gateway' , version: ' 1.6.4 ' , repo: ' gateway' , status: ' ' },
18+ { id: ' defguard-client' , name: ' Desktop App' , version: ' 1.6.7 ' , repo: ' client' , status: ' ' },
1919 { id: ' defguard-mobile' , name: ' Mobile App' , version: ' 1.6.2' , repo: ' mobile-client' , status: ' ' },
2020];
2121
@@ -39,8 +39,8 @@ const pickHighestSeverity = (items: string[]): string => {
3939
4040// Group by component/version
4141interface SbomEntry { name: string ; version: string ; url: string ; status: string }
42- interface Vulnerability {
43- Severity? : string ;
42+ interface Vulnerability {
43+ Severity? : string ;
4444 VulnerabilityID? : string ;
4545 PkgID? : string ;
4646 PrimaryURL? : string ;
@@ -169,13 +169,13 @@ const tags = [
169169 </div >
170170 </FlexibleSection >
171171
172-
172+
173173 <FlexibleSection leftRatio ={ 1 } title =" SBOM file list with vulnerability status" theme =" light" id =" sbom-list" >
174174 <div slot =" left" class =" sbom-filelist" >
175175 <p >
176176 Separate SBOMs are available for <strong >mobile apps</strong > (Android, iOS), the <strong >desktop app</strong >
177- (Windows, macOS, Linux), and <strong >server components</strong > (Core, Proxy, Gateway).
178- Alongside each SBOM, <strong >advisories files</strong > are also published to summarize known vulnerabilities in detail.
177+ (Windows, macOS, Linux), and <strong >server components</strong > (Core, Proxy, Gateway).
178+ Alongside each SBOM, <strong >advisories files</strong > are also published to summarize known vulnerabilities in detail.
179179 </p >
180180 <p >
181181 We use <a href =" https://trivy.dev/" target =" _blank" >Trivy</a > to generate SBOM files and scan for vulnerabilities in our dependencies.
@@ -211,14 +211,14 @@ const tags = [
211211 const hasVulns = vulns .length !== 0 ;
212212 const hasIgnores = ignores .length !== 0 ;
213213 const detailsId = ` details-${index } ` ;
214-
214+
215215 return (
216216 <>
217217 <tr >
218218 <td >
219219 { (hasVulns || hasIgnores ) ? (
220- <button
221- class = " vuln-toggle"
220+ <button
221+ class = " vuln-toggle"
222222 data-target = { detailsId }
223223 aria-expanded = " false"
224224 aria-controls = { detailsId }
@@ -256,7 +256,7 @@ const tags = [
256256 if (vulns .length === 0 ) {
257257 return <p >Vulnerabilities detected but no specific details available.</p >;
258258 }
259-
259+
260260 return (
261261 <div class = " vuln-items" >
262262 { vulns .slice (0 , 10 ).map ((vuln ) => (
@@ -310,7 +310,7 @@ const tags = [
310310 if (ignores .length === 0 ) {
311311 return <p >Upstream vulnerabilities detected but no specific details available.</p >;
312312 }
313-
313+
314314 return (
315315 <div class = " vuln-items" >
316316 { ignores .slice (0 , 10 ).map ((ignore ) => {
@@ -373,7 +373,7 @@ const tags = [
373373 </div >
374374 </div >
375375 </FlexibleSection >
376-
376+
377377 </main >
378378</ProductLayout >
379379
@@ -471,7 +471,7 @@ const tags = [
471471 color: #555;
472472 border-color: #e5e5e5;
473473 }
474-
474+
475475 /* Vulnerability toggle button */
476476 .vuln-toggle {
477477 background: none;
@@ -497,7 +497,7 @@ const tags = [
497497 .vuln-toggle[aria-expanded="true"] .toggle-icon {
498498 transform: rotate(90deg);
499499 }
500-
500+
501501 /* Vulnerability details row */
502502 .vuln-details {
503503 background: #f8f9fa;
@@ -615,26 +615,26 @@ const tags = [
615615 // Handle vulnerability details toggle for multiple rows
616616 document.addEventListener('DOMContentLoaded', function() {
617617 const toggleButtons = document.querySelectorAll<HTMLButtonElement>('.vuln-toggle');
618-
618+
619619 toggleButtons.forEach((button) => {
620620 button.addEventListener('click', function() {
621621 const targetId = this.getAttribute('data-target');
622622 if (!targetId) return;
623-
623+
624624 // Find all related detail rows (vulnerabilities and ignores)
625625 const vulnRow = document.getElementById(`${targetId}-vulns`);
626626 const ignoreRow = document.getElementById(`${targetId}-ignores`);
627-
627+
628628 const isExpanded = this.getAttribute('aria-expanded') === 'true';
629-
629+
630630 // Toggle visibility of all related rows
631631 if (vulnRow) {
632632 vulnRow.style.display = isExpanded ? 'none' : 'table-row';
633633 }
634634 if (ignoreRow) {
635635 ignoreRow.style.display = isExpanded ? 'none' : 'table-row';
636636 }
637-
637+
638638 // Update button state
639639 this.setAttribute('aria-expanded', isExpanded ? 'false' : 'true');
640640 });
0 commit comments