diff --git a/app/src/components/single-package/SinglePackageTrustSignals.tsx b/app/src/components/single-package/SinglePackageTrustSignals.tsx
index 526cf068..0561ac4d 100644
--- a/app/src/components/single-package/SinglePackageTrustSignals.tsx
+++ b/app/src/components/single-package/SinglePackageTrustSignals.tsx
@@ -227,7 +227,7 @@ function AuditCard({ item }: { item: DisplayedAttestation }) {
* broken-image icon). */
function AuditBadge({ item }: { item: DisplayedAttestation }) {
const [broken, setBroken] = useState(false);
- const src = httpsLink(item.info.display["image_url"]);
+ const src = imageSource(item.info.display["image_url"]);
if (!src || broken) {
return ;
}
@@ -385,6 +385,23 @@ export function httpsLink(v: unknown): string | undefined {
return s && s.startsWith("https://") ? s : undefined;
}
+/** An `image_url` value we'll put in an `
`: an `https` URL, or an
+ * inline `data:image/svg+xml` URI (a badge a schema derives from the
+ * attestation's own data). Safe because it renders in an `
`, where a
+ * `