@atlaskit/adf-utils 19.25.4 → 19.26.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 +14 -0
- package/dist/cjs/scrub/scrub-content.js +5 -2
- package/dist/cjs/transforms/transform-media-single-width.js +39 -0
- package/dist/cjs/transforms.js +7 -0
- package/dist/es2019/scrub/scrub-content.js +5 -2
- package/dist/es2019/transforms/transform-media-single-width.js +32 -0
- package/dist/es2019/transforms.js +1 -0
- package/dist/esm/scrub/scrub-content.js +5 -2
- package/dist/esm/transforms/transform-media-single-width.js +32 -0
- package/dist/esm/transforms.js +1 -0
- package/dist/types/transforms/transform-media-single-width.d.ts +5 -0
- package/dist/types/transforms.d.ts +1 -0
- package/dist/types-ts4.5/transforms/transform-media-single-width.d.ts +5 -0
- package/dist/types-ts4.5/transforms.d.ts +1 -0
- package/package.json +8 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @atlaskit/adf-utils
|
|
2
2
|
|
|
3
|
+
## 19.26.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`97ab189b05912`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/97ab189b05912) -
|
|
8
|
+
Fix bug causing the ADF scrubber to throw an error when document contains very long words
|
|
9
|
+
|
|
10
|
+
## 19.26.0
|
|
11
|
+
|
|
12
|
+
### Minor Changes
|
|
13
|
+
|
|
14
|
+
- [`3ff7946f17075`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/3ff7946f17075) -
|
|
15
|
+
EDF-2768 add adf width validation transform
|
|
16
|
+
|
|
3
17
|
## 19.25.4
|
|
4
18
|
|
|
5
19
|
### Patch Changes
|
|
@@ -9,6 +9,7 @@ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
|
9
9
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
10
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
11
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
12
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
12
13
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
13
14
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
14
15
|
var DUMMY_TEXT = "Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua Ut enim ad minim veniam quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur Excepteur sint occaecat cupidatat non proident sunt in culpa qui officia deserunt mollit anim id est laborum";
|
|
@@ -83,8 +84,10 @@ var scrubStr = exports.scrubStr = function scrubStr(val) {
|
|
|
83
84
|
return '';
|
|
84
85
|
} else {
|
|
85
86
|
// Everything else
|
|
86
|
-
|
|
87
|
-
|
|
87
|
+
|
|
88
|
+
// modulo to ensure wrapping occurs around base string (no OOB access)
|
|
89
|
+
var correction = base[offset % base.length] === ' ' ? 1 : 0;
|
|
90
|
+
var raw = (0, _platformFeatureFlags.fg)('platform_adf-utils_fix-dummy-text-index-oob') ? base[(offset + correction) % base.length] : base[offset + correction];
|
|
88
91
|
var isLower = char.toLowerCase() === char;
|
|
89
92
|
var result = isLower ? raw.toLowerCase() : raw.toUpperCase();
|
|
90
93
|
offset += 1 + correction;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.transformMediaSingleWidth = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _traverse = require("../traverse/traverse");
|
|
10
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
11
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
12
|
+
// when media single has a invalid width, we fallback to default width
|
|
13
|
+
// this the last resort when revert the pixel width, we couldnt determine the correct width value
|
|
14
|
+
var transformMediaSingleWidth = exports.transformMediaSingleWidth = function transformMediaSingleWidth(adf) {
|
|
15
|
+
var isTransformed = false;
|
|
16
|
+
var transformedAdf = (0, _traverse.traverse)(adf, {
|
|
17
|
+
mediaSingle: function mediaSingle(node) {
|
|
18
|
+
var _ref = node.attrs || {},
|
|
19
|
+
width = _ref.width,
|
|
20
|
+
widthType = _ref.widthType;
|
|
21
|
+
|
|
22
|
+
// if width is not a number or greater than 100, and widthType is not set, we set width to 100
|
|
23
|
+
if (typeof width === 'number' && width > 100 && !widthType) {
|
|
24
|
+
isTransformed = true;
|
|
25
|
+
var newAttrs = _objectSpread(_objectSpread({}, node.attrs), {}, {
|
|
26
|
+
width: 100
|
|
27
|
+
});
|
|
28
|
+
return _objectSpread(_objectSpread({}, node), {}, {
|
|
29
|
+
attrs: newAttrs
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
return node;
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
return {
|
|
36
|
+
transformedAdf: transformedAdf,
|
|
37
|
+
isTransformed: isTransformed
|
|
38
|
+
};
|
|
39
|
+
};
|
package/dist/cjs/transforms.js
CHANGED
|
@@ -45,6 +45,12 @@ Object.defineProperty(exports, "transformMediaLinkMarks", {
|
|
|
45
45
|
return _mediaLinkTransform.transformMediaLinkMarks;
|
|
46
46
|
}
|
|
47
47
|
});
|
|
48
|
+
Object.defineProperty(exports, "transformMediaSingleWidth", {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
get: function get() {
|
|
51
|
+
return _transformMediaSingleWidth.transformMediaSingleWidth;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
48
54
|
Object.defineProperty(exports, "transformNestedTableNodeOutgoingDocument", {
|
|
49
55
|
enumerable: true,
|
|
50
56
|
get: function get() {
|
|
@@ -71,6 +77,7 @@ Object.defineProperty(exports, "transformTextLinkCodeMarks", {
|
|
|
71
77
|
});
|
|
72
78
|
var _mediaLinkTransform = require("./transforms/media-link-transform");
|
|
73
79
|
var _textLinkCodeTransform = require("./transforms/text-link-code-transform");
|
|
80
|
+
var _transformMediaSingleWidth = require("./transforms/transform-media-single-width");
|
|
74
81
|
var _dedupeMarksTransform = require("./transforms/dedupe-marks-transform");
|
|
75
82
|
var _nodesMissingContentTransform = require("./transforms/nodes-missing-content-transform");
|
|
76
83
|
var _indentationMarksTransform = require("./transforms/indentation-marks-transform");
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
1
2
|
const DUMMY_TEXT = `Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua Ut enim ad minim veniam quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur Excepteur sint occaecat cupidatat non proident sunt in culpa qui officia deserunt mollit anim id est laborum`;
|
|
2
3
|
const DUMMY_DIGITS = ['2', '7', '4', '3', '5', '9', '1', '8', '0', '5'];
|
|
3
4
|
const BYPASS_ATTR_LIST = {
|
|
@@ -65,8 +66,10 @@ export const scrubStr = (val, offset = 0) => {
|
|
|
65
66
|
return '';
|
|
66
67
|
} else {
|
|
67
68
|
// Everything else
|
|
68
|
-
|
|
69
|
-
|
|
69
|
+
|
|
70
|
+
// modulo to ensure wrapping occurs around base string (no OOB access)
|
|
71
|
+
const correction = base[offset % base.length] === ' ' ? 1 : 0;
|
|
72
|
+
const raw = fg('platform_adf-utils_fix-dummy-text-index-oob') ? base[(offset + correction) % base.length] : base[offset + correction];
|
|
70
73
|
const isLower = char.toLowerCase() === char;
|
|
71
74
|
const result = isLower ? raw.toLowerCase() : raw.toUpperCase();
|
|
72
75
|
offset += 1 + correction;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { traverse } from '../traverse/traverse';
|
|
2
|
+
// when media single has a invalid width, we fallback to default width
|
|
3
|
+
// this the last resort when revert the pixel width, we couldnt determine the correct width value
|
|
4
|
+
export const transformMediaSingleWidth = adf => {
|
|
5
|
+
let isTransformed = false;
|
|
6
|
+
const transformedAdf = traverse(adf, {
|
|
7
|
+
mediaSingle: node => {
|
|
8
|
+
const {
|
|
9
|
+
width,
|
|
10
|
+
widthType
|
|
11
|
+
} = node.attrs || {};
|
|
12
|
+
|
|
13
|
+
// if width is not a number or greater than 100, and widthType is not set, we set width to 100
|
|
14
|
+
if (typeof width === 'number' && width > 100 && !widthType) {
|
|
15
|
+
isTransformed = true;
|
|
16
|
+
const newAttrs = {
|
|
17
|
+
...node.attrs,
|
|
18
|
+
width: 100
|
|
19
|
+
};
|
|
20
|
+
return {
|
|
21
|
+
...node,
|
|
22
|
+
attrs: newAttrs
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
return node;
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
return {
|
|
29
|
+
transformedAdf,
|
|
30
|
+
isTransformed
|
|
31
|
+
};
|
|
32
|
+
};
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
export { transformMediaLinkMarks } from './transforms/media-link-transform';
|
|
5
5
|
export { transformTextLinkCodeMarks } from './transforms/text-link-code-transform';
|
|
6
|
+
export { transformMediaSingleWidth } from './transforms/transform-media-single-width';
|
|
6
7
|
export { transformDedupeMarks } from './transforms/dedupe-marks-transform';
|
|
7
8
|
export { transformNodesMissingContent } from './transforms/nodes-missing-content-transform';
|
|
8
9
|
export { transformIndentationMarks } from './transforms/indentation-marks-transform';
|
|
@@ -4,6 +4,7 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
|
4
4
|
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
5
5
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
6
6
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
7
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
7
8
|
var DUMMY_TEXT = "Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua Ut enim ad minim veniam quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur Excepteur sint occaecat cupidatat non proident sunt in culpa qui officia deserunt mollit anim id est laborum";
|
|
8
9
|
var DUMMY_DIGITS = ['2', '7', '4', '3', '5', '9', '1', '8', '0', '5'];
|
|
9
10
|
var BYPASS_ATTR_LIST = {
|
|
@@ -76,8 +77,10 @@ export var scrubStr = function scrubStr(val) {
|
|
|
76
77
|
return '';
|
|
77
78
|
} else {
|
|
78
79
|
// Everything else
|
|
79
|
-
|
|
80
|
-
|
|
80
|
+
|
|
81
|
+
// modulo to ensure wrapping occurs around base string (no OOB access)
|
|
82
|
+
var correction = base[offset % base.length] === ' ' ? 1 : 0;
|
|
83
|
+
var raw = fg('platform_adf-utils_fix-dummy-text-index-oob') ? base[(offset + correction) % base.length] : base[offset + correction];
|
|
81
84
|
var isLower = char.toLowerCase() === char;
|
|
82
85
|
var result = isLower ? raw.toLowerCase() : raw.toUpperCase();
|
|
83
86
|
offset += 1 + correction;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
|
+
import { traverse } from '../traverse/traverse';
|
|
5
|
+
// when media single has a invalid width, we fallback to default width
|
|
6
|
+
// this the last resort when revert the pixel width, we couldnt determine the correct width value
|
|
7
|
+
export var transformMediaSingleWidth = function transformMediaSingleWidth(adf) {
|
|
8
|
+
var isTransformed = false;
|
|
9
|
+
var transformedAdf = traverse(adf, {
|
|
10
|
+
mediaSingle: function mediaSingle(node) {
|
|
11
|
+
var _ref = node.attrs || {},
|
|
12
|
+
width = _ref.width,
|
|
13
|
+
widthType = _ref.widthType;
|
|
14
|
+
|
|
15
|
+
// if width is not a number or greater than 100, and widthType is not set, we set width to 100
|
|
16
|
+
if (typeof width === 'number' && width > 100 && !widthType) {
|
|
17
|
+
isTransformed = true;
|
|
18
|
+
var newAttrs = _objectSpread(_objectSpread({}, node.attrs), {}, {
|
|
19
|
+
width: 100
|
|
20
|
+
});
|
|
21
|
+
return _objectSpread(_objectSpread({}, node), {}, {
|
|
22
|
+
attrs: newAttrs
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
return node;
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
return {
|
|
29
|
+
transformedAdf: transformedAdf,
|
|
30
|
+
isTransformed: isTransformed
|
|
31
|
+
};
|
|
32
|
+
};
|
package/dist/esm/transforms.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
export { transformMediaLinkMarks } from './transforms/media-link-transform';
|
|
5
5
|
export { transformTextLinkCodeMarks } from './transforms/text-link-code-transform';
|
|
6
|
+
export { transformMediaSingleWidth } from './transforms/transform-media-single-width';
|
|
6
7
|
export { transformDedupeMarks } from './transforms/dedupe-marks-transform';
|
|
7
8
|
export { transformNodesMissingContent } from './transforms/nodes-missing-content-transform';
|
|
8
9
|
export { transformIndentationMarks } from './transforms/indentation-marks-transform';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { transformMediaLinkMarks } from './transforms/media-link-transform';
|
|
2
2
|
export { transformTextLinkCodeMarks } from './transforms/text-link-code-transform';
|
|
3
|
+
export { transformMediaSingleWidth } from './transforms/transform-media-single-width';
|
|
3
4
|
export { transformDedupeMarks } from './transforms/dedupe-marks-transform';
|
|
4
5
|
export { transformNodesMissingContent } from './transforms/nodes-missing-content-transform';
|
|
5
6
|
export { transformIndentationMarks } from './transforms/indentation-marks-transform';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { transformMediaLinkMarks } from './transforms/media-link-transform';
|
|
2
2
|
export { transformTextLinkCodeMarks } from './transforms/text-link-code-transform';
|
|
3
|
+
export { transformMediaSingleWidth } from './transforms/transform-media-single-width';
|
|
3
4
|
export { transformDedupeMarks } from './transforms/dedupe-marks-transform';
|
|
4
5
|
export { transformNodesMissingContent } from './transforms/nodes-missing-content-transform';
|
|
5
6
|
export { transformIndentationMarks } from './transforms/indentation-marks-transform';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/adf-utils",
|
|
3
|
-
"version": "19.
|
|
3
|
+
"version": "19.26.1",
|
|
4
4
|
"description": "Set of utilities to traverse, modify and create ADF documents.",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -27,10 +27,12 @@
|
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"@atlaskit/adf-schema": "^51.3.2",
|
|
30
|
+
"@atlaskit/platform-feature-flags": "^1.1.0",
|
|
30
31
|
"@babel/runtime": "^7.0.0"
|
|
31
32
|
},
|
|
32
33
|
"devDependencies": {
|
|
33
34
|
"@atlassian/adf-schema-json": "^1.31.0",
|
|
35
|
+
"@atlassian/feature-flags-test-utils": "^1.0.0",
|
|
34
36
|
"react": "^18.2.0",
|
|
35
37
|
"wait-for-expect": "^1.2.0"
|
|
36
38
|
},
|
|
@@ -47,5 +49,9 @@
|
|
|
47
49
|
]
|
|
48
50
|
}
|
|
49
51
|
},
|
|
50
|
-
"platform-feature-flags": {
|
|
52
|
+
"platform-feature-flags": {
|
|
53
|
+
"platform_adf-utils_fix-dummy-text-index-oob": {
|
|
54
|
+
"type": "boolean"
|
|
55
|
+
}
|
|
56
|
+
}
|
|
51
57
|
}
|