21026: manual test good Arvados-DCO-1.1-Signed-off-by: Lisa Knox <lisa.knox@curii...
[arvados-workbench2.git] / src / common / html-sanitize.ts
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 import DOMPurify from 'dompurify';
6
7 type TDomPurifyConfig = {
8     ALLOWED_TAGS: string[];
9     ALLOWED_ATTR: string[];
10 };
11
12 const domPurifyConfig: TDomPurifyConfig = {
13     ALLOWED_TAGS: [
14         'a',
15         'b',
16         'blockquote',
17         'br',
18         'code',
19         'del',
20         'dd',
21         'dl',
22         'dt',
23         'em',
24         'h1',
25         'h2',
26         'h3',
27         'h4',
28         'h5',
29         'h6',
30         'hr',
31         'i',
32         'img',
33         'kbd',
34         'li',
35         'ol',
36         'p',
37         'pre',
38         's',
39         'del',
40         'strong',
41         'sub',
42         'sup',
43         'ul',
44     ],
45     ALLOWED_ATTR: ['src', 'width', 'height', 'href', 'alt', 'title'],
46 };
47
48 export const sanitizeHTML = (dirtyInput: string): string => DOMPurify.sanitize(dirtyInput, domPurifyConfig);
49