From 5ef7564ee84d657ec5443f3e8cad9e087b99fa1d Mon Sep 17 00:00:00 2001 From: Jesse Wierzbinski Date: Thu, 2 May 2024 14:44:49 -1000 Subject: [PATCH] fix(build): :bug: aaa --- bun.lockb | Bin 155364 -> 156188 bytes package.json | 1 + utils/sanitization.ts | 7 +++++-- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/bun.lockb b/bun.lockb index 5d87acaca52bdece080ef7791530fc6439ce1a22..f5ac5cc9cb7f5b23779a2af0b9a92340af583a12 100755 GIT binary patch delta 22197 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 BsuKVJ delta 21681 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 diff --git a/package.json b/package.json index cb809cfb..0176d42b 100644 --- a/package.json +++ b/package.json @@ -81,6 +81,7 @@ "dompurify": "^3.1.2", "drizzle-orm": "^0.30.7", "extract-zip": "^2.0.1", + "happy-dom": "14.5.0", "html-to-text": "^9.0.5", "ioredis": "^5.3.2", "ip-matching": "^2.1.2", diff --git a/utils/sanitization.ts b/utils/sanitization.ts index 4fb34313..65a65beb 100644 --- a/utils/sanitization.ts +++ b/utils/sanitization.ts @@ -1,12 +1,15 @@ import { config } from "config-manager"; import DOMPurify from "dompurify"; -import { JSDOM } from "jsdom"; +import { Window } from "happy-dom"; + +const window = new Window(); export const sanitizeHtml = async ( html: string, extraConfig?: DOMPurify.Config, ) => { - const sanitizedHtml = DOMPurify(new JSDOM().window).sanitize(html, { + // @ts-expect-error Types clash but it works i swear + const sanitizedHtml = DOMPurify(window).sanitize(html, { ALLOWED_TAGS: [ "a", "p",