@atlaskit/editor-json-transformer 8.24.5 → 8.25.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/CHANGELOG.md +17 -0
- package/afm-cc/tsconfig.json +7 -1
- package/afm-dev-agents/tsconfig.json +30 -0
- package/afm-jira/tsconfig.json +7 -1
- package/afm-post-office/tsconfig.json +7 -1
- package/afm-rovo-extension/tsconfig.json +7 -1
- package/afm-townsquare/tsconfig.json +7 -1
- package/build/tsconfig.json +8 -2
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/sanitize/sanitize-node.js +5 -2
- package/dist/es2019/index.js +2 -2
- package/dist/es2019/sanitize/sanitize-node.js +6 -3
- package/dist/esm/index.js +2 -1
- package/dist/esm/sanitize/sanitize-node.js +5 -2
- package/dist/types/index.d.ts +2 -1
- package/dist/types/sanitize/sanitize-node.d.ts +8 -1
- package/dist/types-ts4.5/index.d.ts +2 -1
- package/dist/types-ts4.5/sanitize/sanitize-node.d.ts +8 -1
- package/package.json +2 -2
- package/tsconfig.json +9 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# @atlaskit/editor-json-transformer
|
|
2
2
|
|
|
3
|
+
## 8.25.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#195649](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/195649)
|
|
8
|
+
[`231bb33e06dfe`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/231bb33e06dfe) -
|
|
9
|
+
EDITOR-1131 Bump adf-schema version to 50.2.0
|
|
10
|
+
- Updated dependencies
|
|
11
|
+
|
|
12
|
+
## 8.25.0
|
|
13
|
+
|
|
14
|
+
### Minor Changes
|
|
15
|
+
|
|
16
|
+
- [#193192](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/193192)
|
|
17
|
+
[`8e0b7ecbc293f`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/8e0b7ecbc293f) -
|
|
18
|
+
[ux] EDITOR-1186 - keep nested table in adf
|
|
19
|
+
|
|
3
20
|
## 8.24.5
|
|
4
21
|
|
|
5
22
|
### Patch Changes
|
package/afm-cc/tsconfig.json
CHANGED
|
@@ -14,7 +14,13 @@
|
|
|
14
14
|
"exclude": [
|
|
15
15
|
"../src/**/__tests__/*",
|
|
16
16
|
"../src/**/*.test.*",
|
|
17
|
-
"../src/**/test.*"
|
|
17
|
+
"../src/**/test.*",
|
|
18
|
+
"../src/**/examples.*",
|
|
19
|
+
"../src/**/examples/*",
|
|
20
|
+
"../src/**/examples/**/*",
|
|
21
|
+
"../src/**/*.stories.*",
|
|
22
|
+
"../src/**/stories/*",
|
|
23
|
+
"../src/**/stories/**/*"
|
|
18
24
|
],
|
|
19
25
|
"references": [
|
|
20
26
|
{
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "../../../../tsconfig.entry-points.dev-agents.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"declaration": true,
|
|
5
|
+
"target": "es5",
|
|
6
|
+
"outDir": "../../../../../dev-agents/tsDist/@atlaskit__editor-json-transformer/app",
|
|
7
|
+
"rootDir": "../",
|
|
8
|
+
"composite": true
|
|
9
|
+
},
|
|
10
|
+
"include": [
|
|
11
|
+
"../src/**/*.ts",
|
|
12
|
+
"../src/**/*.tsx"
|
|
13
|
+
],
|
|
14
|
+
"exclude": [
|
|
15
|
+
"../src/**/__tests__/*",
|
|
16
|
+
"../src/**/*.test.*",
|
|
17
|
+
"../src/**/test.*",
|
|
18
|
+
"../src/**/examples.*",
|
|
19
|
+
"../src/**/examples/*",
|
|
20
|
+
"../src/**/examples/**/*",
|
|
21
|
+
"../src/**/*.stories.*",
|
|
22
|
+
"../src/**/stories/*",
|
|
23
|
+
"../src/**/stories/**/*"
|
|
24
|
+
],
|
|
25
|
+
"references": [
|
|
26
|
+
{
|
|
27
|
+
"path": "../../adf-utils/afm-dev-agents/tsconfig.json"
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
}
|
package/afm-jira/tsconfig.json
CHANGED
|
@@ -14,7 +14,13 @@
|
|
|
14
14
|
"exclude": [
|
|
15
15
|
"../src/**/__tests__/*",
|
|
16
16
|
"../src/**/*.test.*",
|
|
17
|
-
"../src/**/test.*"
|
|
17
|
+
"../src/**/test.*",
|
|
18
|
+
"../src/**/examples.*",
|
|
19
|
+
"../src/**/examples/*",
|
|
20
|
+
"../src/**/examples/**/*",
|
|
21
|
+
"../src/**/*.stories.*",
|
|
22
|
+
"../src/**/stories/*",
|
|
23
|
+
"../src/**/stories/**/*"
|
|
18
24
|
],
|
|
19
25
|
"references": [
|
|
20
26
|
{
|
|
@@ -14,7 +14,13 @@
|
|
|
14
14
|
"exclude": [
|
|
15
15
|
"../src/**/__tests__/*",
|
|
16
16
|
"../src/**/*.test.*",
|
|
17
|
-
"../src/**/test.*"
|
|
17
|
+
"../src/**/test.*",
|
|
18
|
+
"../src/**/examples.*",
|
|
19
|
+
"../src/**/examples/*",
|
|
20
|
+
"../src/**/examples/**/*",
|
|
21
|
+
"../src/**/*.stories.*",
|
|
22
|
+
"../src/**/stories/*",
|
|
23
|
+
"../src/**/stories/**/*"
|
|
18
24
|
],
|
|
19
25
|
"references": [
|
|
20
26
|
{
|
|
@@ -14,7 +14,13 @@
|
|
|
14
14
|
"exclude": [
|
|
15
15
|
"../src/**/__tests__/*",
|
|
16
16
|
"../src/**/*.test.*",
|
|
17
|
-
"../src/**/test.*"
|
|
17
|
+
"../src/**/test.*",
|
|
18
|
+
"../src/**/examples.*",
|
|
19
|
+
"../src/**/examples/*",
|
|
20
|
+
"../src/**/examples/**/*",
|
|
21
|
+
"../src/**/*.stories.*",
|
|
22
|
+
"../src/**/stories/*",
|
|
23
|
+
"../src/**/stories/**/*"
|
|
18
24
|
],
|
|
19
25
|
"references": [
|
|
20
26
|
{
|
|
@@ -14,7 +14,13 @@
|
|
|
14
14
|
"exclude": [
|
|
15
15
|
"../src/**/__tests__/*",
|
|
16
16
|
"../src/**/*.test.*",
|
|
17
|
-
"../src/**/test.*"
|
|
17
|
+
"../src/**/test.*",
|
|
18
|
+
"../src/**/examples.*",
|
|
19
|
+
"../src/**/examples/*",
|
|
20
|
+
"../src/**/examples/**/*",
|
|
21
|
+
"../src/**/*.stories.*",
|
|
22
|
+
"../src/**/stories/*",
|
|
23
|
+
"../src/**/stories/**/*"
|
|
18
24
|
],
|
|
19
25
|
"references": [
|
|
20
26
|
{
|
package/build/tsconfig.json
CHANGED
|
@@ -12,6 +12,12 @@
|
|
|
12
12
|
"exclude": [
|
|
13
13
|
"../src/**/__tests__/*",
|
|
14
14
|
"../src/**/*.test.*",
|
|
15
|
-
"../src/**/test.*"
|
|
15
|
+
"../src/**/test.*",
|
|
16
|
+
"../src/**/examples.*",
|
|
17
|
+
"../src/**/examples/*",
|
|
18
|
+
"../src/**/examples/**/*",
|
|
19
|
+
"../src/**/*.stories.*",
|
|
20
|
+
"../src/**/stories/*",
|
|
21
|
+
"../src/**/stories/**/*"
|
|
16
22
|
]
|
|
17
|
-
}
|
|
23
|
+
}
|
package/dist/cjs/index.js
CHANGED
|
@@ -217,9 +217,10 @@ var JSONTransformer = exports.JSONTransformer = /*#__PURE__*/function () {
|
|
|
217
217
|
key: "encode",
|
|
218
218
|
value: function encode(node) {
|
|
219
219
|
var _this = this;
|
|
220
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
220
221
|
var content = [];
|
|
221
222
|
node.content.forEach(function (child) {
|
|
222
|
-
content.push((0, _sanitizeNode.sanitizeNode)(_toJSON(child, _this.mentionMap)));
|
|
223
|
+
content.push((0, _sanitizeNode.sanitizeNode)(_toJSON(child, _this.mentionMap), options));
|
|
223
224
|
});
|
|
224
225
|
if (!content || (0, _isEqual.default)(content, emptyDoc.content)) {
|
|
225
226
|
return createDocFromContent([]);
|
|
@@ -18,6 +18,9 @@ var hasNestedTable = function hasNestedTable(tableCellNode) {
|
|
|
18
18
|
});
|
|
19
19
|
};
|
|
20
20
|
function sanitizeNode(json) {
|
|
21
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
22
|
+
var _options$keepNestedTa = options.keepNestedTables,
|
|
23
|
+
keepNestedTables = _options$keepNestedTa === void 0 ? false : _options$keepNestedTa;
|
|
21
24
|
var sanitizedJSON = (0, _traverse.traverse)(json, {
|
|
22
25
|
text: function text(node) {
|
|
23
26
|
if (!node || !Array.isArray(node.marks)) {
|
|
@@ -43,12 +46,12 @@ function sanitizeNode(json) {
|
|
|
43
46
|
},
|
|
44
47
|
tableCell: function tableCell(node) {
|
|
45
48
|
if (hasNestedTable(node)) {
|
|
46
|
-
return (0, _transforms.transformNestedTableNodeOutgoingDocument)(node);
|
|
49
|
+
return keepNestedTables ? node : (0, _transforms.transformNestedTableNodeOutgoingDocument)(node);
|
|
47
50
|
}
|
|
48
51
|
},
|
|
49
52
|
tableHeader: function tableHeader(node) {
|
|
50
53
|
if (hasNestedTable(node)) {
|
|
51
|
-
return (0, _transforms.transformNestedTableNodeOutgoingDocument)(node);
|
|
54
|
+
return keepNestedTables ? node : (0, _transforms.transformNestedTableNodeOutgoingDocument)(node);
|
|
52
55
|
}
|
|
53
56
|
},
|
|
54
57
|
emoji: _removeMarks.removeNonAnnotationMarks,
|
package/dist/es2019/index.js
CHANGED
|
@@ -197,10 +197,10 @@ export class JSONTransformer {
|
|
|
197
197
|
this.schema = schema;
|
|
198
198
|
this.mentionMap = mentionMap;
|
|
199
199
|
}
|
|
200
|
-
encode(node) {
|
|
200
|
+
encode(node, options = {}) {
|
|
201
201
|
const content = [];
|
|
202
202
|
node.content.forEach(child => {
|
|
203
|
-
content.push(sanitizeNode(toJSON(child, this.mentionMap)));
|
|
203
|
+
content.push(sanitizeNode(toJSON(child, this.mentionMap), options));
|
|
204
204
|
});
|
|
205
205
|
if (!content || isEqual(content, emptyDoc.content)) {
|
|
206
206
|
return createDocFromContent([]);
|
|
@@ -5,7 +5,10 @@ const hasNestedTable = tableCellNode => {
|
|
|
5
5
|
var _tableCellNode$conten;
|
|
6
6
|
return (_tableCellNode$conten = tableCellNode.content) === null || _tableCellNode$conten === void 0 ? void 0 : _tableCellNode$conten.some(node => (node === null || node === void 0 ? void 0 : node.type) === 'table');
|
|
7
7
|
};
|
|
8
|
-
export function sanitizeNode(json) {
|
|
8
|
+
export function sanitizeNode(json, options = {}) {
|
|
9
|
+
const {
|
|
10
|
+
keepNestedTables = false
|
|
11
|
+
} = options;
|
|
9
12
|
const sanitizedJSON = traverse(json, {
|
|
10
13
|
text: node => {
|
|
11
14
|
if (!node || !Array.isArray(node.marks)) {
|
|
@@ -30,12 +33,12 @@ export function sanitizeNode(json) {
|
|
|
30
33
|
},
|
|
31
34
|
tableCell: node => {
|
|
32
35
|
if (hasNestedTable(node)) {
|
|
33
|
-
return transformNestedTableNodeOutgoingDocument(node);
|
|
36
|
+
return keepNestedTables ? node : transformNestedTableNodeOutgoingDocument(node);
|
|
34
37
|
}
|
|
35
38
|
},
|
|
36
39
|
tableHeader: node => {
|
|
37
40
|
if (hasNestedTable(node)) {
|
|
38
|
-
return transformNestedTableNodeOutgoingDocument(node);
|
|
41
|
+
return keepNestedTables ? node : transformNestedTableNodeOutgoingDocument(node);
|
|
39
42
|
}
|
|
40
43
|
},
|
|
41
44
|
emoji: removeNonAnnotationMarks,
|
package/dist/esm/index.js
CHANGED
|
@@ -211,9 +211,10 @@ export var JSONTransformer = /*#__PURE__*/function () {
|
|
|
211
211
|
key: "encode",
|
|
212
212
|
value: function encode(node) {
|
|
213
213
|
var _this = this;
|
|
214
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
214
215
|
var content = [];
|
|
215
216
|
node.content.forEach(function (child) {
|
|
216
|
-
content.push(sanitizeNode(_toJSON(child, _this.mentionMap)));
|
|
217
|
+
content.push(sanitizeNode(_toJSON(child, _this.mentionMap), options));
|
|
217
218
|
});
|
|
218
219
|
if (!content || isEqual(content, emptyDoc.content)) {
|
|
219
220
|
return createDocFromContent([]);
|
|
@@ -11,6 +11,9 @@ var hasNestedTable = function hasNestedTable(tableCellNode) {
|
|
|
11
11
|
});
|
|
12
12
|
};
|
|
13
13
|
export function sanitizeNode(json) {
|
|
14
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
15
|
+
var _options$keepNestedTa = options.keepNestedTables,
|
|
16
|
+
keepNestedTables = _options$keepNestedTa === void 0 ? false : _options$keepNestedTa;
|
|
14
17
|
var sanitizedJSON = traverse(json, {
|
|
15
18
|
text: function text(node) {
|
|
16
19
|
if (!node || !Array.isArray(node.marks)) {
|
|
@@ -36,12 +39,12 @@ export function sanitizeNode(json) {
|
|
|
36
39
|
},
|
|
37
40
|
tableCell: function tableCell(node) {
|
|
38
41
|
if (hasNestedTable(node)) {
|
|
39
|
-
return transformNestedTableNodeOutgoingDocument(node);
|
|
42
|
+
return keepNestedTables ? node : transformNestedTableNodeOutgoingDocument(node);
|
|
40
43
|
}
|
|
41
44
|
},
|
|
42
45
|
tableHeader: function tableHeader(node) {
|
|
43
46
|
if (hasNestedTable(node)) {
|
|
44
|
-
return transformNestedTableNodeOutgoingDocument(node);
|
|
47
|
+
return keepNestedTables ? node : transformNestedTableNodeOutgoingDocument(node);
|
|
45
48
|
}
|
|
46
49
|
},
|
|
47
50
|
emoji: removeNonAnnotationMarks,
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Node as PMNode, Schema } from '@atlaskit/editor-prosemirror/model';
|
|
2
|
+
import { type SanitizeNodeOptions } from './sanitize/sanitize-node';
|
|
2
3
|
import type { JSONDocNode, JSONNode } from './types';
|
|
3
4
|
export type { JSONDocNode, JSONNode } from './types';
|
|
4
5
|
interface Transformer<T> {
|
|
@@ -18,7 +19,7 @@ export declare class JSONTransformer implements Transformer<JSONDocNode> {
|
|
|
18
19
|
* mention node.attr.text values with mapped names.
|
|
19
20
|
*/
|
|
20
21
|
constructor(schema?: Schema, mentionMap?: Record<string, string | undefined>);
|
|
21
|
-
encode(node: PMNode): JSONDocNode;
|
|
22
|
+
encode(node: PMNode, options?: SanitizeNodeOptions): JSONDocNode;
|
|
22
23
|
private internalParse;
|
|
23
24
|
parse(content: JSONDocNode, stage?: SchemaStage): PMNode;
|
|
24
25
|
/**
|
|
@@ -1,2 +1,9 @@
|
|
|
1
1
|
import { type JSONNode } from '../types';
|
|
2
|
-
export
|
|
2
|
+
export interface SanitizeNodeOptions {
|
|
3
|
+
/**
|
|
4
|
+
* If true, nested tables will not be transformed to a extension.
|
|
5
|
+
* This is useful when you want to keep the nested structure for further processing.
|
|
6
|
+
*/
|
|
7
|
+
keepNestedTables?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function sanitizeNode(json: JSONNode, options?: SanitizeNodeOptions): JSONNode;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Node as PMNode, Schema } from '@atlaskit/editor-prosemirror/model';
|
|
2
|
+
import { type SanitizeNodeOptions } from './sanitize/sanitize-node';
|
|
2
3
|
import type { JSONDocNode, JSONNode } from './types';
|
|
3
4
|
export type { JSONDocNode, JSONNode } from './types';
|
|
4
5
|
interface Transformer<T> {
|
|
@@ -18,7 +19,7 @@ export declare class JSONTransformer implements Transformer<JSONDocNode> {
|
|
|
18
19
|
* mention node.attr.text values with mapped names.
|
|
19
20
|
*/
|
|
20
21
|
constructor(schema?: Schema, mentionMap?: Record<string, string | undefined>);
|
|
21
|
-
encode(node: PMNode): JSONDocNode;
|
|
22
|
+
encode(node: PMNode, options?: SanitizeNodeOptions): JSONDocNode;
|
|
22
23
|
private internalParse;
|
|
23
24
|
parse(content: JSONDocNode, stage?: SchemaStage): PMNode;
|
|
24
25
|
/**
|
|
@@ -1,2 +1,9 @@
|
|
|
1
1
|
import { type JSONNode } from '../types';
|
|
2
|
-
export
|
|
2
|
+
export interface SanitizeNodeOptions {
|
|
3
|
+
/**
|
|
4
|
+
* If true, nested tables will not be transformed to a extension.
|
|
5
|
+
* This is useful when you want to keep the nested structure for further processing.
|
|
6
|
+
*/
|
|
7
|
+
keepNestedTables?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function sanitizeNode(json: JSONNode, options?: SanitizeNodeOptions): JSONNode;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-json-transformer",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.25.1",
|
|
4
4
|
"description": "JSON transformer",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"./types": "./src/types.ts"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@atlaskit/adf-schema": "^50.0
|
|
38
|
+
"@atlaskit/adf-schema": "^50.2.0",
|
|
39
39
|
"@atlaskit/adf-utils": "^19.20.0",
|
|
40
40
|
"@atlaskit/editor-prosemirror": "7.0.0",
|
|
41
41
|
"@babel/runtime": "^7.0.0",
|
package/tsconfig.json
CHANGED
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"extends": "../../../tsconfig.json",
|
|
3
|
-
"compilerOptions": {
|
|
4
|
-
},
|
|
3
|
+
"compilerOptions": {},
|
|
5
4
|
"include": [
|
|
6
5
|
"./src/**/*.ts",
|
|
7
6
|
"./src/**/*.tsx",
|
|
8
7
|
"./docs/**/*.ts",
|
|
9
8
|
"./docs/**/*.tsx",
|
|
10
9
|
"./examples/**/*.ts",
|
|
11
|
-
"./examples/**/*.tsx"
|
|
10
|
+
"./examples/**/*.tsx",
|
|
11
|
+
"**/stories.ts",
|
|
12
|
+
"**/stories.tsx",
|
|
13
|
+
"**/stories/*.ts",
|
|
14
|
+
"**/stories/*.tsx",
|
|
15
|
+
"**/stories/**/*.ts",
|
|
16
|
+
"**/stories/**/*.tsx"
|
|
12
17
|
]
|
|
13
|
-
}
|
|
18
|
+
}
|