Skip to content

Commit 9096930

Browse files
authored
Bump dompurify (microsoft#189368)
* Bump dompurify Moving to 3.x which drops IE support * Don't reference trusted types * Restore esm export block
1 parent 12985b6 commit 9096930

File tree

5 files changed

+1630
-1331
lines changed

5 files changed

+1630
-1331
lines changed

extensions/markdown-language-features/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -722,7 +722,7 @@
722722
},
723723
"dependencies": {
724724
"@vscode/extension-telemetry": "0.7.5",
725-
"dompurify": "^2.4.1",
725+
"dompurify": "^3.0.5",
726726
"highlight.js": "^11.8.0",
727727
"markdown-it": "^12.3.2",
728728
"markdown-it-front-matter": "^0.2.1",
@@ -732,7 +732,7 @@
732732
"vscode-uri": "^3.0.3"
733733
},
734734
"devDependencies": {
735-
"@types/dompurify": "^2.3.1",
735+
"@types/dompurify": "^3.0.2",
736736
"@types/lodash.throttle": "^4.1.3",
737737
"@types/markdown-it": "12.2.3",
738738
"@types/picomatch": "^2.3.0",

extensions/markdown-language-features/yarn.lock

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -165,10 +165,10 @@
165165
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf"
166166
integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==
167167

168-
"@types/dompurify@^2.3.1":
169-
version "2.3.1"
170-
resolved "https://registry.yarnpkg.com/@types/dompurify/-/dompurify-2.3.1.tgz#2934adcd31c4e6b02676f9c22f9756e5091c04dd"
171-
integrity sha512-YJth9qa0V/E6/XPH1Jq4BC8uCMmO8V1fKWn8PCvuZcAhMn7q0ez9LW6naQT04UZzjFfAPhyRMZmI2a2rbMlEFA==
168+
"@types/dompurify@^3.0.2":
169+
version "3.0.2"
170+
resolved "https://registry.yarnpkg.com/@types/dompurify/-/dompurify-3.0.2.tgz#c1cd33a475bc49c43c2a7900e41028e2136a4553"
171+
integrity sha512-YBL4ziFebbbfQfH5mlC+QTJsvh0oJUrWbmxKMyEdL7emlHJqGR2Qb34TEFKj+VCayBvjKy3xczMFNhugThUsfQ==
172172
dependencies:
173173
"@types/trusted-types" "*"
174174

@@ -352,10 +352,10 @@ [email protected]:
352352
dependencies:
353353
semver "^5.3.0"
354354

355-
dompurify@^2.4.1:
356-
version "2.4.1"
357-
resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.4.1.tgz#f9cb1a275fde9af6f2d0a2644ef648dd6847b631"
358-
integrity sha512-ewwFzHzrrneRjxzmK6oVz/rZn9VWspGFRDb4/rRtIsM1n36t9AKma/ye8syCpcw+XJ25kOK/hOG7t1j2I2yBqA==
355+
dompurify@^3.0.5:
356+
version "3.0.5"
357+
resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.0.5.tgz#eb3d9cfa10037b6e73f32c586682c4b2ab01fbed"
358+
integrity sha512-F9e6wPGtY+8KNMRAVfxeCOHU0/NPWMSENNq4pQctuXRqqdEPW7q3CrLbR5Nse044WwacyjHGOMlvNsBe1y6z9A==
359359

360360
emitter-listener@^1.0.1, emitter-listener@^1.1.1:
361361
version "1.1.2"

src/vs/base/browser/dompurify/cgmanifest.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66
"git": {
77
"name": "dompurify",
88
"repositoryUrl": "https://github.com/cure53/DOMPurify",
9-
"commitHash": "6cfcdf56269b892550af80baa7c1fa5b680e5db7"
9+
"commitHash": "c96c9df61f1070146c0c13078e85b33d8fed3e51"
1010
}
1111
},
1212
"license": "Apache 2.0",
13-
"version": "2.3.1"
13+
"version": "3.0.5"
1414
}
1515
],
1616
"version": 1

src/vs/base/browser/dompurify/dompurify.d.ts

Lines changed: 54 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Type definitions for DOM Purify 2.2
1+
// Type definitions for DOM Purify 3.0
22
// Project: https://github.com/cure53/DOMPurify
33
// Definitions by: Dave Taylor https://github.com/davetayls
44
// Samira Bazuzi <https://github.com/bazuzi>
@@ -7,27 +7,49 @@
77
// Piotr Błażejewicz <https://github.com/peterblazejewicz>
88
// Nicholas Ellul <https://github.com/NicholasEllul>
99
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
10+
// Minimum TypeScript Version: 4.5
1011

1112
export as namespace DOMPurify;
1213
export = DOMPurify;
1314

1415
declare const DOMPurify: createDOMPurifyI;
1516

17+
type WindowLike = Pick<
18+
typeof globalThis,
19+
| 'NodeFilter'
20+
| 'Node'
21+
| 'Element'
22+
| 'HTMLTemplateElement'
23+
| 'DocumentFragment'
24+
| 'HTMLFormElement'
25+
| 'DOMParser'
26+
| 'NamedNodeMap'
27+
>;
28+
1629
interface createDOMPurifyI extends DOMPurify.DOMPurifyI {
17-
(window?: Window): DOMPurify.DOMPurifyI;
30+
(window?: Window | WindowLike): DOMPurify.DOMPurifyI;
1831
}
1932

2033
declare namespace DOMPurify {
2134
interface DOMPurifyI {
2235
sanitize(source: string | Node): string;
2336
sanitize(source: string | Node, config: Config & { RETURN_TRUSTED_TYPE: true }): TrustedHTML;
24-
sanitize(source: string | Node, config: Config & { RETURN_DOM_FRAGMENT?: false | undefined; RETURN_DOM?: false | undefined }): string;
37+
sanitize(
38+
source: string | Node,
39+
config: Config & { RETURN_DOM_FRAGMENT?: false | undefined; RETURN_DOM?: false | undefined },
40+
): string;
2541
sanitize(source: string | Node, config: Config & { RETURN_DOM_FRAGMENT: true }): DocumentFragment;
2642
sanitize(source: string | Node, config: Config & { RETURN_DOM: true }): HTMLElement;
2743
sanitize(source: string | Node, config: Config): string | HTMLElement | DocumentFragment;
2844

29-
addHook(hook: 'uponSanitizeElement', cb: (currentNode: Element, data: SanitizeElementHookEvent, config: Config) => void): void;
30-
addHook(hook: 'uponSanitizeAttribute', cb: (currentNode: Element, data: SanitizeAttributeHookEvent, config: Config) => void): void;
45+
addHook(
46+
hook: 'uponSanitizeElement',
47+
cb: (currentNode: Element, data: SanitizeElementHookEvent, config: Config) => void,
48+
): void;
49+
addHook(
50+
hook: 'uponSanitizeAttribute',
51+
cb: (currentNode: Element, data: SanitizeAttributeHookEvent, config: Config) => void,
52+
): void;
3153
addHook(hook: HookName, cb: (currentNode: Element, data: HookEvent, config: Config) => void): void;
3254

3355
setConfig(cfg: Config): void;
@@ -47,33 +69,54 @@ declare namespace DOMPurify {
4769
ADD_ATTR?: string[] | undefined;
4870
ADD_DATA_URI_TAGS?: string[] | undefined;
4971
ADD_TAGS?: string[] | undefined;
72+
ADD_URI_SAFE_ATTR?: string[] | undefined;
73+
ALLOW_ARIA_ATTR?: boolean | undefined;
5074
ALLOW_DATA_ATTR?: boolean | undefined;
75+
ALLOW_UNKNOWN_PROTOCOLS?: boolean | undefined;
76+
ALLOW_SELF_CLOSE_IN_ATTR?: boolean | undefined;
5177
ALLOWED_ATTR?: string[] | undefined;
5278
ALLOWED_TAGS?: string[] | undefined;
79+
ALLOWED_NAMESPACES?: string[] | undefined;
80+
ALLOWED_URI_REGEXP?: RegExp | undefined;
5381
FORBID_ATTR?: string[] | undefined;
82+
FORBID_CONTENTS?: string[] | undefined;
5483
FORBID_TAGS?: string[] | undefined;
5584
FORCE_BODY?: boolean | undefined;
85+
IN_PLACE?: boolean | undefined;
5686
KEEP_CONTENT?: boolean | undefined;
5787
/**
5888
* change the default namespace from HTML to something different
5989
*/
6090
NAMESPACE?: string | undefined;
61-
RETURN_DOM?: boolean | undefined;
91+
PARSER_MEDIA_TYPE?: string | undefined;
6292
RETURN_DOM_FRAGMENT?: boolean | undefined;
6393
/**
6494
* This defaults to `true` starting DOMPurify 2.2.0. Note that setting it to `false`
6595
* might cause XSS from attacks hidden in closed shadowroots in case the browser
6696
* supports Declarative Shadow: DOM https://web.dev/declarative-shadow-dom/
6797
*/
6898
RETURN_DOM_IMPORT?: boolean | undefined;
99+
RETURN_DOM?: boolean | undefined;
69100
RETURN_TRUSTED_TYPE?: boolean | undefined;
101+
SAFE_FOR_TEMPLATES?: boolean | undefined;
70102
SANITIZE_DOM?: boolean | undefined;
103+
/** @default false */
104+
SANITIZE_NAMED_PROPS?: boolean | undefined;
105+
USE_PROFILES?:
106+
| false
107+
| {
108+
mathMl?: boolean | undefined;
109+
svg?: boolean | undefined;
110+
svgFilters?: boolean | undefined;
111+
html?: boolean | undefined;
112+
}
113+
| undefined;
71114
WHOLE_DOCUMENT?: boolean | undefined;
72-
ALLOWED_URI_REGEXP?: RegExp | undefined;
73-
SAFE_FOR_TEMPLATES?: boolean | undefined;
74-
ALLOW_UNKNOWN_PROTOCOLS?: boolean | undefined;
75-
USE_PROFILES?: false | { mathMl?: boolean | undefined; svg?: boolean | undefined; svgFilters?: boolean | undefined; html?: boolean | undefined } | undefined;
76-
IN_PLACE?: boolean | undefined;
115+
CUSTOM_ELEMENT_HANDLING?: {
116+
tagNameCheck?: RegExp | ((tagName: string) => boolean) | null | undefined;
117+
attributeNameCheck?: RegExp | ((lcName: string) => boolean) | null | undefined;
118+
allowCustomizedBuiltInElements?: boolean | undefined;
119+
};
77120
}
78121

79122
type HookName =

0 commit comments

Comments
 (0)