feat: consolidate shared UI and harden browser authority for release

This commit is contained in:
2026-09-08 01:35:05 +02:00
parent ac40774785
commit b75ca34295
143 changed files with 8664 additions and 752 deletions
+6
View File
@@ -1,4 +1,5 @@
import { normalizeWysiwygImageUrl, normalizeWysiwygLinkUrl } from "../src/components/wysiwygEditorUrls";
import { isWysiwygDocumentUpdate } from "../src/components/wysiwygEditorUpdates";
function assertEqual(actual: unknown, expected: unknown, message: string): void {
if (actual !== expected) {
@@ -20,3 +21,8 @@ assertEqual(normalizeWysiwygImageUrl("cid:campaign-banner"), "cid:campaign-banne
assertEqual(normalizeWysiwygImageUrl("data:image/png;base64,iVBORw0KGgo="), "data:image/png;base64,iVBORw0KGgo=", "raster data images are accepted");
assertEqual(normalizeWysiwygImageUrl("data:image/svg+xml;base64,PHN2Zz4="), null, "active SVG data images are rejected");
assertEqual(normalizeWysiwygImageUrl("javascript:alert(1)"), null, "script image sources are rejected");
assertEqual(isWysiwygDocumentUpdate({ docChanged: false }), false, "mount/editability updates do not dirty loaded content");
assertEqual(isWysiwygDocumentUpdate({ docChanged: false }, [{ docChanged: false }]), false, "selection-only updates do not dirty loaded content");
assertEqual(isWysiwygDocumentUpdate({ docChanged: true }), true, "typing and formatting publish document edits");
assertEqual(isWysiwygDocumentUpdate({ docChanged: false }, [{ docChanged: true }]), true, "appended document edits are not lost");