security: swap sanitizer to xss for Jest-compatible SSR output

- Replace isomorphic-dompurify with xss to avoid ESM-only jsdom/htmlparser2
  transitive deps that break the existing Jest test suite.
- Keep rendered docs HTML sanitized via xss() in routes/docs.js.

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-07-18 23:02:11 -04:00
parent bdaba513a7
commit 6ede072213
3 changed files with 30 additions and 534 deletions
+2 -2
View File
@@ -5,7 +5,7 @@ const path = require('path');
const router = require('express').Router();
const {rateLimit} = require('express-rate-limit');
const {marked} = require('marked');
const DOMPurify = require('isomorphic-dompurify');
const xss = require('xss');
const conf = require('@simpleworkjs/conf');
const buildInfo = require('../utils/build_info');
@@ -141,7 +141,7 @@ router.get('/:slug', function(req, res, next) {
docs: docList,
currentSlug: req.params.slug,
docTitle: doc.title,
docHtml: DOMPurify.sanitize(fixDocLinks(fixImagePaths(marked(content)))),
docHtml: xss(fixDocLinks(fixImagePaths(marked(content)))),
});
} catch (error) {
next(error);