[Pkg-javascript-devel] Bug#1103615: Bug#1103615: Bug#1103615: node-dompurify: please update to latest version
Yadd
yadd at debian.org
Tue Apr 22 06:31:43 BST 2025
On 4/21/25 11:19, Jérémy Lal wrote:
>
>
> Le lun. 21 avr. 2025 à 10:12, Paul Gevers <elbrus at debian.org
> <mailto:elbrus at debian.org>> a écrit :
>
> Hi Jérémy,
>
> Thanks for the reply.
>
> On 20-04-2025 13:21, Jérémy Lal wrote:
> > Good question ! The answer is that it's not needed:
> > nodejs 20.19.0 can "require(esm)" [1] so a CJS module is no longer
> > locked out using ESM modules.
> > The other way around (import a CJS module form an ES module) has
> always
> > been possible.
>
>
> As I understand it, liferea is already ESM and my problem is that the
> code apparently assumes that node-dompurify (and handlebars) is ESM
> too.
> So far, I have never needed to fix javascript in a more than trivial
> manner, so I don't know where to start here. My fundamental question is
> what do I have to do to build liferea with the Debain shipped
> node-dompurity (and handlebars) instead of the vendored version?
> liferea
> uses the file during the build and embeds it in the executable, but as
> can be seen from my discussion in the upstream bug tracker [1], using
> the current versions in Debian doesn't work and upstream suggested that
> node-dompurify needs the change. I understand you say it should be
> trivial to fix on the liferea side? (The include happens here [2], for
> handlebars it's here [3]. I tried commenting them out and adding a
> <script> here [4] but that seems to be too simple.)
>
>
> For handlebars, it should work all right as it is,
> for dompurify, first fix the path you copy it from, use:
> /usr/share/nodejs/dompurify/dist/purify.es.mjs
>
> Then to fix the version mismatch, you can use this patch:
>
> diff --git a/js/htmlview.js b/js/htmlview.js
> index d6f4a9f..d1d4f69 100644
> --- a/js/htmlview.js
> +++ b/js/htmlview.js
> @@ -22,6 +22,8 @@
> import { render, template } from './helpers/render.js';
> import DOMPurify from './vendor/purify.min.js';
>
> +const purify = DOMPurify(window);
> +
> window.debugflags = 0;
>
> function prepare(baseURL, title) {
> @@ -227,7 +229,7 @@ function contentCleanup() {
>
> // Run DOMPurify
> let content = document.getElementById('content').innerHTML;
> - document.getElementById('content').innerHTML =
> DOMPurify.sanitize(content);
> + document.getElementById('content').innerHTML =
> purify.sanitize(content);
>
> // Fix inline SVG sizes
> const svgMinWidth = 50;
Hi,
looking at
https://release.debian.org/britney/pseudo-excuses-experimental.html#node-dompurify
it looks like the update of node-dompurify is possible without breaking
things. I looked at the debdiff between the last and the current
version, no big changes.
More information about the Pkg-javascript-devel
mailing list