()
| 7331 | (d.advisories || []).forEach(a => { |
| 7332 | const sev = a.severity === 'high' ? 'text-red-300 border-red-800 bg-red-950/40' : 'text-amber-300 border-amber-800 bg-amber-950/30'; |
| 7333 | const refs = (a.refs || []).map(r => r.startsWith('http') |
| 7334 | ? `<a href="${escapeHtml(r)}" target="_blank" rel="noopener" class="underline text-cyan-400">OSV</a>` |
| 7335 | : `<span class="font-mono">${escapeHtml(r)}</span>`).join(', '); |
| 7336 | html += `<div class="mt-2 px-3 py-2 rounded border text-xs ${sev}"><strong>${escapeHtml(a.title)}</strong><br>${escapeHtml(a.detail)}${refs ? '<br><span class="text-gray-400">Refs:</span> ' + refs : ''}</div>`; |
| 7337 | }); |
| 7338 | // Routers table |
| 7339 | const routers = d.routers || [], tr = d.trusted_routers || []; |
| 7340 | if (routers.length) { |
| 7341 | html += '<p class="text-xs uppercase text-gray-400 mt-2 mb-1">OSPF routers seen (' + routers.length + ')</p>' + |
no test coverage detected