@atlaskit/adf-utils 19.27.11 → 19.27.13
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 +12 -0
- package/dist/cjs/transforms/native-embeds-fallback-transform.js +30 -5
- package/dist/es2019/transforms/native-embeds-fallback-transform.js +32 -6
- package/dist/esm/transforms/native-embeds-fallback-transform.js +30 -5
- package/dist/types/transforms/native-embeds-fallback-transform.d.ts +5 -1
- package/dist/types-ts4.5/transforms/native-embeds-fallback-transform.d.ts +5 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.nativeEmbedsFallbackTransform = void 0;
|
|
7
7
|
var _traverse = require("../traverse/traverse");
|
|
8
|
+
var _validator = require("../validator/validator");
|
|
8
9
|
var NATIVE_EMBED_EXTENSION_KEY = 'native-embed';
|
|
9
10
|
|
|
10
11
|
/**
|
|
@@ -12,21 +13,25 @@ var NATIVE_EMBED_EXTENSION_KEY = 'native-embed';
|
|
|
12
13
|
* `native-embed` with a paragraph containing an `inlineCard`
|
|
13
14
|
* node pointing at the same URL.
|
|
14
15
|
* If a native-embed node has no URL it is dropped from the document.
|
|
16
|
+
*
|
|
17
|
+
* The transformed ADF is validated against the ADF spec.
|
|
18
|
+
* If validation fails the original (untransformed) ADF is returned
|
|
19
|
+
* to avoid rendering broken content.
|
|
15
20
|
*/
|
|
16
21
|
var nativeEmbedsFallbackTransform = exports.nativeEmbedsFallbackTransform = function nativeEmbedsFallbackTransform(adf) {
|
|
17
|
-
var
|
|
22
|
+
var didTransform = false;
|
|
18
23
|
var transformedAdf = (0, _traverse.traverse)(adf, {
|
|
19
24
|
extension: function extension(node) {
|
|
20
25
|
var _node$attrs, _node$attrs2;
|
|
21
26
|
if (((_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs['extensionKey'].split(':')[0]) !== NATIVE_EMBED_EXTENSION_KEY) {
|
|
22
27
|
return node;
|
|
23
28
|
}
|
|
24
|
-
var url = (_node$attrs2 = node.attrs) === null || _node$attrs2 === void 0 || (_node$attrs2 = _node$attrs2['parameters']) === null || _node$attrs2 === void 0 ? void 0 : _node$attrs2.
|
|
29
|
+
var url = (_node$attrs2 = node.attrs) === null || _node$attrs2 === void 0 || (_node$attrs2 = _node$attrs2['parameters']) === null || _node$attrs2 === void 0 || (_node$attrs2 = _node$attrs2.macroParams) === null || _node$attrs2 === void 0 || (_node$attrs2 = _node$attrs2.url) === null || _node$attrs2 === void 0 ? void 0 : _node$attrs2.value;
|
|
25
30
|
if (!url) {
|
|
26
|
-
|
|
31
|
+
didTransform = true;
|
|
27
32
|
return false;
|
|
28
33
|
}
|
|
29
|
-
|
|
34
|
+
didTransform = true;
|
|
30
35
|
return {
|
|
31
36
|
type: 'paragraph',
|
|
32
37
|
content: [{
|
|
@@ -38,8 +43,28 @@ var nativeEmbedsFallbackTransform = exports.nativeEmbedsFallbackTransform = func
|
|
|
38
43
|
};
|
|
39
44
|
}
|
|
40
45
|
});
|
|
46
|
+
if (didTransform && transformedAdf) {
|
|
47
|
+
try {
|
|
48
|
+
var validate = (0, _validator.validator)();
|
|
49
|
+
var _validate = validate(transformedAdf),
|
|
50
|
+
valid = _validate.valid;
|
|
51
|
+
if (!valid) {
|
|
52
|
+
// Transformed ADF is invalid – fall back to the original document
|
|
53
|
+
return {
|
|
54
|
+
transformedAdf: adf,
|
|
55
|
+
hasValidTransform: false
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
} catch (_unused) {
|
|
59
|
+
// Validation threw – fall back to the original document
|
|
60
|
+
return {
|
|
61
|
+
transformedAdf: adf,
|
|
62
|
+
hasValidTransform: false
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
}
|
|
41
66
|
return {
|
|
42
67
|
transformedAdf: transformedAdf,
|
|
43
|
-
|
|
68
|
+
hasValidTransform: didTransform
|
|
44
69
|
};
|
|
45
70
|
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { traverse } from '../traverse/traverse';
|
|
2
|
+
import { validator } from '../validator/validator';
|
|
2
3
|
const NATIVE_EMBED_EXTENSION_KEY = 'native-embed';
|
|
3
4
|
|
|
4
5
|
/**
|
|
@@ -6,21 +7,25 @@ const NATIVE_EMBED_EXTENSION_KEY = 'native-embed';
|
|
|
6
7
|
* `native-embed` with a paragraph containing an `inlineCard`
|
|
7
8
|
* node pointing at the same URL.
|
|
8
9
|
* If a native-embed node has no URL it is dropped from the document.
|
|
10
|
+
*
|
|
11
|
+
* The transformed ADF is validated against the ADF spec.
|
|
12
|
+
* If validation fails the original (untransformed) ADF is returned
|
|
13
|
+
* to avoid rendering broken content.
|
|
9
14
|
*/
|
|
10
15
|
export const nativeEmbedsFallbackTransform = adf => {
|
|
11
|
-
let
|
|
16
|
+
let didTransform = false;
|
|
12
17
|
const transformedAdf = traverse(adf, {
|
|
13
18
|
extension: node => {
|
|
14
|
-
var _node$attrs, _node$attrs2, _node$attrs2$paramete;
|
|
19
|
+
var _node$attrs, _node$attrs2, _node$attrs2$paramete, _node$attrs2$paramete2, _node$attrs2$paramete3;
|
|
15
20
|
if (((_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs['extensionKey'].split(':')[0]) !== NATIVE_EMBED_EXTENSION_KEY) {
|
|
16
21
|
return node;
|
|
17
22
|
}
|
|
18
|
-
const url = (_node$attrs2 = node.attrs) === null || _node$attrs2 === void 0 ? void 0 : (_node$attrs2$paramete = _node$attrs2['parameters']) === null || _node$attrs2$paramete === void 0 ? void 0 : _node$attrs2$paramete.url;
|
|
23
|
+
const url = (_node$attrs2 = node.attrs) === null || _node$attrs2 === void 0 ? void 0 : (_node$attrs2$paramete = _node$attrs2['parameters']) === null || _node$attrs2$paramete === void 0 ? void 0 : (_node$attrs2$paramete2 = _node$attrs2$paramete.macroParams) === null || _node$attrs2$paramete2 === void 0 ? void 0 : (_node$attrs2$paramete3 = _node$attrs2$paramete2.url) === null || _node$attrs2$paramete3 === void 0 ? void 0 : _node$attrs2$paramete3.value;
|
|
19
24
|
if (!url) {
|
|
20
|
-
|
|
25
|
+
didTransform = true;
|
|
21
26
|
return false;
|
|
22
27
|
}
|
|
23
|
-
|
|
28
|
+
didTransform = true;
|
|
24
29
|
return {
|
|
25
30
|
type: 'paragraph',
|
|
26
31
|
content: [{
|
|
@@ -32,8 +37,29 @@ export const nativeEmbedsFallbackTransform = adf => {
|
|
|
32
37
|
};
|
|
33
38
|
}
|
|
34
39
|
});
|
|
40
|
+
if (didTransform && transformedAdf) {
|
|
41
|
+
try {
|
|
42
|
+
const validate = validator();
|
|
43
|
+
const {
|
|
44
|
+
valid
|
|
45
|
+
} = validate(transformedAdf);
|
|
46
|
+
if (!valid) {
|
|
47
|
+
// Transformed ADF is invalid – fall back to the original document
|
|
48
|
+
return {
|
|
49
|
+
transformedAdf: adf,
|
|
50
|
+
hasValidTransform: false
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
} catch {
|
|
54
|
+
// Validation threw – fall back to the original document
|
|
55
|
+
return {
|
|
56
|
+
transformedAdf: adf,
|
|
57
|
+
hasValidTransform: false
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
}
|
|
35
61
|
return {
|
|
36
62
|
transformedAdf,
|
|
37
|
-
|
|
63
|
+
hasValidTransform: didTransform
|
|
38
64
|
};
|
|
39
65
|
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { traverse } from '../traverse/traverse';
|
|
2
|
+
import { validator } from '../validator/validator';
|
|
2
3
|
var NATIVE_EMBED_EXTENSION_KEY = 'native-embed';
|
|
3
4
|
|
|
4
5
|
/**
|
|
@@ -6,21 +7,25 @@ var NATIVE_EMBED_EXTENSION_KEY = 'native-embed';
|
|
|
6
7
|
* `native-embed` with a paragraph containing an `inlineCard`
|
|
7
8
|
* node pointing at the same URL.
|
|
8
9
|
* If a native-embed node has no URL it is dropped from the document.
|
|
10
|
+
*
|
|
11
|
+
* The transformed ADF is validated against the ADF spec.
|
|
12
|
+
* If validation fails the original (untransformed) ADF is returned
|
|
13
|
+
* to avoid rendering broken content.
|
|
9
14
|
*/
|
|
10
15
|
export var nativeEmbedsFallbackTransform = function nativeEmbedsFallbackTransform(adf) {
|
|
11
|
-
var
|
|
16
|
+
var didTransform = false;
|
|
12
17
|
var transformedAdf = traverse(adf, {
|
|
13
18
|
extension: function extension(node) {
|
|
14
19
|
var _node$attrs, _node$attrs2;
|
|
15
20
|
if (((_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs['extensionKey'].split(':')[0]) !== NATIVE_EMBED_EXTENSION_KEY) {
|
|
16
21
|
return node;
|
|
17
22
|
}
|
|
18
|
-
var url = (_node$attrs2 = node.attrs) === null || _node$attrs2 === void 0 || (_node$attrs2 = _node$attrs2['parameters']) === null || _node$attrs2 === void 0 ? void 0 : _node$attrs2.
|
|
23
|
+
var url = (_node$attrs2 = node.attrs) === null || _node$attrs2 === void 0 || (_node$attrs2 = _node$attrs2['parameters']) === null || _node$attrs2 === void 0 || (_node$attrs2 = _node$attrs2.macroParams) === null || _node$attrs2 === void 0 || (_node$attrs2 = _node$attrs2.url) === null || _node$attrs2 === void 0 ? void 0 : _node$attrs2.value;
|
|
19
24
|
if (!url) {
|
|
20
|
-
|
|
25
|
+
didTransform = true;
|
|
21
26
|
return false;
|
|
22
27
|
}
|
|
23
|
-
|
|
28
|
+
didTransform = true;
|
|
24
29
|
return {
|
|
25
30
|
type: 'paragraph',
|
|
26
31
|
content: [{
|
|
@@ -32,8 +37,28 @@ export var nativeEmbedsFallbackTransform = function nativeEmbedsFallbackTransfor
|
|
|
32
37
|
};
|
|
33
38
|
}
|
|
34
39
|
});
|
|
40
|
+
if (didTransform && transformedAdf) {
|
|
41
|
+
try {
|
|
42
|
+
var validate = validator();
|
|
43
|
+
var _validate = validate(transformedAdf),
|
|
44
|
+
valid = _validate.valid;
|
|
45
|
+
if (!valid) {
|
|
46
|
+
// Transformed ADF is invalid – fall back to the original document
|
|
47
|
+
return {
|
|
48
|
+
transformedAdf: adf,
|
|
49
|
+
hasValidTransform: false
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
} catch (_unused) {
|
|
53
|
+
// Validation threw – fall back to the original document
|
|
54
|
+
return {
|
|
55
|
+
transformedAdf: adf,
|
|
56
|
+
hasValidTransform: false
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
}
|
|
35
60
|
return {
|
|
36
61
|
transformedAdf: transformedAdf,
|
|
37
|
-
|
|
62
|
+
hasValidTransform: didTransform
|
|
38
63
|
};
|
|
39
64
|
};
|
|
@@ -4,8 +4,12 @@ import { type ADFEntity } from '../types';
|
|
|
4
4
|
* `native-embed` with a paragraph containing an `inlineCard`
|
|
5
5
|
* node pointing at the same URL.
|
|
6
6
|
* If a native-embed node has no URL it is dropped from the document.
|
|
7
|
+
*
|
|
8
|
+
* The transformed ADF is validated against the ADF spec.
|
|
9
|
+
* If validation fails the original (untransformed) ADF is returned
|
|
10
|
+
* to avoid rendering broken content.
|
|
7
11
|
*/
|
|
8
12
|
export declare const nativeEmbedsFallbackTransform: (adf: ADFEntity) => {
|
|
9
|
-
|
|
13
|
+
hasValidTransform: boolean;
|
|
10
14
|
transformedAdf: false | ADFEntity;
|
|
11
15
|
};
|
|
@@ -4,8 +4,12 @@ import { type ADFEntity } from '../types';
|
|
|
4
4
|
* `native-embed` with a paragraph containing an `inlineCard`
|
|
5
5
|
* node pointing at the same URL.
|
|
6
6
|
* If a native-embed node has no URL it is dropped from the document.
|
|
7
|
+
*
|
|
8
|
+
* The transformed ADF is validated against the ADF spec.
|
|
9
|
+
* If validation fails the original (untransformed) ADF is returned
|
|
10
|
+
* to avoid rendering broken content.
|
|
7
11
|
*/
|
|
8
12
|
export declare const nativeEmbedsFallbackTransform: (adf: ADFEntity) => {
|
|
9
|
-
|
|
13
|
+
hasValidTransform: boolean;
|
|
10
14
|
transformedAdf: false | ADFEntity;
|
|
11
15
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/adf-utils",
|
|
3
|
-
"version": "19.27.
|
|
3
|
+
"version": "19.27.13",
|
|
4
4
|
"description": "Set of utilities to traverse, modify and create ADF documents.",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -26,9 +26,9 @@
|
|
|
26
26
|
"team": "Editor: Collaboration"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@atlaskit/adf-schema": "^52.
|
|
29
|
+
"@atlaskit/adf-schema": "^52.4.0",
|
|
30
30
|
"@atlaskit/platform-feature-flags": "^1.1.0",
|
|
31
|
-
"@atlaskit/tmp-editor-statsig": "^
|
|
31
|
+
"@atlaskit/tmp-editor-statsig": "^41.0.0",
|
|
32
32
|
"@babel/runtime": "^7.0.0"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|