@progress/kendo-editor-common 1.12.9-develop.7 → 1.12.10-develop.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/es/config/schema.js
CHANGED
|
@@ -1,10 +1,24 @@
|
|
|
1
1
|
import { Schema } from 'prosemirror-model';
|
|
2
2
|
import { tableNodes } from 'prosemirror-tables';
|
|
3
|
+
import { isSafeUrl } from '@progress/kendo-common';
|
|
3
4
|
import { domToPmDoc, htmlToFragment, pmDocToFragment } from '../source';
|
|
4
5
|
import { rowTypeAttr, colgroupAttr, resizableAttr } from './constants';
|
|
5
6
|
const hole = 0;
|
|
6
7
|
const blockquoteDOM = ['blockquote', hole], hrDOM = ['hr'], preDOM = ['pre', ['code', hole]];
|
|
7
8
|
const olDOM = ['ol', 0], ulDOM = ['ul', 0], liDOM = ['li', 0];
|
|
9
|
+
const LINK = 'link';
|
|
10
|
+
const IMAGE = 'image';
|
|
11
|
+
const sanitizeUrlAttributes = (attrs, type) => {
|
|
12
|
+
if (type === LINK && attrs.href && !isSafeUrl(attrs.href, LINK)) {
|
|
13
|
+
const { href, ...sanitized } = attrs;
|
|
14
|
+
return sanitized;
|
|
15
|
+
}
|
|
16
|
+
if (type === IMAGE && attrs.src && !isSafeUrl(attrs.src, IMAGE)) {
|
|
17
|
+
const { src, ...sanitized } = attrs;
|
|
18
|
+
return sanitized;
|
|
19
|
+
}
|
|
20
|
+
return attrs;
|
|
21
|
+
};
|
|
8
22
|
const domAttributes = (dom) => {
|
|
9
23
|
const result = {};
|
|
10
24
|
const attributes = dom.attributes;
|
|
@@ -62,8 +76,8 @@ const marks = {
|
|
|
62
76
|
title: { default: null }
|
|
63
77
|
},
|
|
64
78
|
inclusive: false,
|
|
65
|
-
parseDOM: [{ tag: 'a', getAttrs: domAttributes }],
|
|
66
|
-
toDOM: (node) => ['a', pmAttributes(node.attrs), hole]
|
|
79
|
+
parseDOM: [{ tag: 'a', getAttrs: (node) => sanitizeUrlAttributes(domAttributes(node), LINK) }],
|
|
80
|
+
toDOM: (node) => ['a', sanitizeUrlAttributes(pmAttributes(node.attrs), LINK), hole]
|
|
67
81
|
},
|
|
68
82
|
...tagMark('strong'),
|
|
69
83
|
...tagMark('b'),
|
|
@@ -310,8 +324,8 @@ const nodes = {
|
|
|
310
324
|
},
|
|
311
325
|
group: 'inline',
|
|
312
326
|
draggable: true,
|
|
313
|
-
parseDOM: [{ tag: 'img', getAttrs: domAttributes }],
|
|
314
|
-
toDOM: node => hasAttrs(node.attrs) ? ['img', pmAttributes(node.attrs)] : ['img']
|
|
327
|
+
parseDOM: [{ tag: 'img', getAttrs: (node) => sanitizeUrlAttributes(domAttributes(node), IMAGE) }],
|
|
328
|
+
toDOM: node => hasAttrs(node.attrs) ? ['img', sanitizeUrlAttributes(pmAttributes(node.attrs), IMAGE)] : ['img']
|
|
315
329
|
},
|
|
316
330
|
// :: NodeSpec A hard line break represented in the DOM as a `<br>` element.
|
|
317
331
|
hard_break: {
|
|
@@ -3,11 +3,25 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.marks = exports.nodes = exports.parseStrColgroup = void 0;
|
|
4
4
|
const prosemirror_model_1 = require("prosemirror-model");
|
|
5
5
|
const prosemirror_tables_1 = require("prosemirror-tables");
|
|
6
|
+
const kendo_common_1 = require("@progress/kendo-common");
|
|
6
7
|
const source_1 = require("../source");
|
|
7
8
|
const constants_1 = require("./constants");
|
|
8
9
|
const hole = 0;
|
|
9
10
|
const blockquoteDOM = ['blockquote', hole], hrDOM = ['hr'], preDOM = ['pre', ['code', hole]];
|
|
10
11
|
const olDOM = ['ol', 0], ulDOM = ['ul', 0], liDOM = ['li', 0];
|
|
12
|
+
const LINK = 'link';
|
|
13
|
+
const IMAGE = 'image';
|
|
14
|
+
const sanitizeUrlAttributes = (attrs, type) => {
|
|
15
|
+
if (type === LINK && attrs.href && !(0, kendo_common_1.isSafeUrl)(attrs.href, LINK)) {
|
|
16
|
+
const { href, ...sanitized } = attrs;
|
|
17
|
+
return sanitized;
|
|
18
|
+
}
|
|
19
|
+
if (type === IMAGE && attrs.src && !(0, kendo_common_1.isSafeUrl)(attrs.src, IMAGE)) {
|
|
20
|
+
const { src, ...sanitized } = attrs;
|
|
21
|
+
return sanitized;
|
|
22
|
+
}
|
|
23
|
+
return attrs;
|
|
24
|
+
};
|
|
11
25
|
const domAttributes = (dom) => {
|
|
12
26
|
const result = {};
|
|
13
27
|
const attributes = dom.attributes;
|
|
@@ -65,8 +79,8 @@ const marks = {
|
|
|
65
79
|
title: { default: null }
|
|
66
80
|
},
|
|
67
81
|
inclusive: false,
|
|
68
|
-
parseDOM: [{ tag: 'a', getAttrs: domAttributes }],
|
|
69
|
-
toDOM: (node) => ['a', pmAttributes(node.attrs), hole]
|
|
82
|
+
parseDOM: [{ tag: 'a', getAttrs: (node) => sanitizeUrlAttributes(domAttributes(node), LINK) }],
|
|
83
|
+
toDOM: (node) => ['a', sanitizeUrlAttributes(pmAttributes(node.attrs), LINK), hole]
|
|
70
84
|
},
|
|
71
85
|
...tagMark('strong'),
|
|
72
86
|
...tagMark('b'),
|
|
@@ -315,8 +329,8 @@ const nodes = {
|
|
|
315
329
|
},
|
|
316
330
|
group: 'inline',
|
|
317
331
|
draggable: true,
|
|
318
|
-
parseDOM: [{ tag: 'img', getAttrs: domAttributes }],
|
|
319
|
-
toDOM: node => hasAttrs(node.attrs) ? ['img', pmAttributes(node.attrs)] : ['img']
|
|
332
|
+
parseDOM: [{ tag: 'img', getAttrs: (node) => sanitizeUrlAttributes(domAttributes(node), IMAGE) }],
|
|
333
|
+
toDOM: node => hasAttrs(node.attrs) ? ['img', sanitizeUrlAttributes(pmAttributes(node.attrs), IMAGE)] : ['img']
|
|
320
334
|
},
|
|
321
335
|
// :: NodeSpec A hard line break represented in the DOM as a `<br>` element.
|
|
322
336
|
hard_break: {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@progress/kendo-editor-common",
|
|
3
3
|
"description": "Kendo UI TypeScript package exporting functions for Editor component",
|
|
4
|
-
"version": "1.12.
|
|
4
|
+
"version": "1.12.10-develop.1",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Kendo UI"
|
|
7
7
|
],
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"prepublishOnly": "npm pkg delete devDependencies scripts"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
33
|
-
"@progress/kendo-common": "^1.
|
|
33
|
+
"@progress/kendo-common": "^1.1.3"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"prosemirror-commands": "1.7.2",
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"devDependencies": {
|
|
51
51
|
"@commitlint/cli": "^17.3.0",
|
|
52
52
|
"@commitlint/config-conventional": "^17.3.0",
|
|
53
|
-
"@progress/kendo-common": "^1.
|
|
53
|
+
"@progress/kendo-common": "^1.1.3",
|
|
54
54
|
"@progress/kendo-e2e": "^4.7.0",
|
|
55
55
|
"@progress/kendo-package-tasks": "dev",
|
|
56
56
|
"@progress/kendo-typescript-tasks": "dev",
|