@atlaskit/adf-utils 18.0.2 → 18.0.3

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.
Files changed (143) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/cjs/builders/marks/alignment.js +0 -3
  3. package/dist/cjs/builders/marks/annotation.js +0 -3
  4. package/dist/cjs/builders/marks/breakout.js +0 -3
  5. package/dist/cjs/builders/marks/code.js +0 -3
  6. package/dist/cjs/builders/marks/data-consumer.js +0 -3
  7. package/dist/cjs/builders/marks/em.js +0 -3
  8. package/dist/cjs/builders/marks/fragment.js +0 -3
  9. package/dist/cjs/builders/marks/indentation.js +0 -3
  10. package/dist/cjs/builders/marks/link.js +0 -3
  11. package/dist/cjs/builders/marks/strike.js +0 -3
  12. package/dist/cjs/builders/marks/strong.js +0 -3
  13. package/dist/cjs/builders/marks/subsup.js +0 -3
  14. package/dist/cjs/builders/marks/text-color.js +0 -3
  15. package/dist/cjs/builders/marks/underline.js +0 -3
  16. package/dist/cjs/builders/nodes/block-card.js +0 -2
  17. package/dist/cjs/builders/nodes/blockquote.js +0 -3
  18. package/dist/cjs/builders/nodes/bodied-extension.js +0 -3
  19. package/dist/cjs/builders/nodes/bullet-list.js +0 -3
  20. package/dist/cjs/builders/nodes/caption.js +0 -3
  21. package/dist/cjs/builders/nodes/code-block.js +0 -3
  22. package/dist/cjs/builders/nodes/date.js +0 -2
  23. package/dist/cjs/builders/nodes/decision-item.js +0 -3
  24. package/dist/cjs/builders/nodes/decision-list.js +0 -3
  25. package/dist/cjs/builders/nodes/doc.js +0 -3
  26. package/dist/cjs/builders/nodes/embed-card.js +0 -2
  27. package/dist/cjs/builders/nodes/emoji.js +0 -2
  28. package/dist/cjs/builders/nodes/expand.js +0 -3
  29. package/dist/cjs/builders/nodes/extension.js +0 -2
  30. package/dist/cjs/builders/nodes/hard-break.js +0 -2
  31. package/dist/cjs/builders/nodes/heading.js +0 -3
  32. package/dist/cjs/builders/nodes/inline-card.js +0 -2
  33. package/dist/cjs/builders/nodes/inline-extension.js +0 -2
  34. package/dist/cjs/builders/nodes/layout-column.js +0 -2
  35. package/dist/cjs/builders/nodes/layout-section.js +0 -2
  36. package/dist/cjs/builders/nodes/list-item.js +0 -2
  37. package/dist/cjs/builders/nodes/media-group.js +0 -3
  38. package/dist/cjs/builders/nodes/media-inline.js +0 -2
  39. package/dist/cjs/builders/nodes/media-single.js +0 -2
  40. package/dist/cjs/builders/nodes/media.js +0 -2
  41. package/dist/cjs/builders/nodes/mention.js +0 -6
  42. package/dist/cjs/builders/nodes/nested-expand.js +0 -3
  43. package/dist/cjs/builders/nodes/ordered-list.js +0 -3
  44. package/dist/cjs/builders/nodes/panel.js +0 -3
  45. package/dist/cjs/builders/nodes/paragraph.js +0 -4
  46. package/dist/cjs/builders/nodes/placeholder.js +0 -2
  47. package/dist/cjs/builders/nodes/rule.js +0 -2
  48. package/dist/cjs/builders/nodes/status.js +0 -2
  49. package/dist/cjs/builders/nodes/table-cell.js +0 -3
  50. package/dist/cjs/builders/nodes/table-header.js +0 -3
  51. package/dist/cjs/builders/nodes/table-row.js +0 -2
  52. package/dist/cjs/builders/nodes/table.js +0 -3
  53. package/dist/cjs/builders/nodes/task-item.js +0 -3
  54. package/dist/cjs/builders/nodes/task-list.js +0 -3
  55. package/dist/cjs/builders/nodes/text.js +0 -2
  56. package/dist/cjs/builders/utils/apply-mark.js +0 -5
  57. package/dist/cjs/builders/utils/create-text-nodes.js +0 -3
  58. package/dist/cjs/builders/utils/is-duplicate-mark.js +0 -3
  59. package/dist/cjs/builders.js +0 -51
  60. package/dist/cjs/empty-adf.js +0 -2
  61. package/dist/cjs/scrub/default-node-replacements.js +0 -11
  62. package/dist/cjs/scrub/default-value-replacements.js +0 -2
  63. package/dist/cjs/scrub/hash.js +0 -4
  64. package/dist/cjs/scrub/scrub-adf.js +2 -25
  65. package/dist/cjs/scrub/scrub-content.js +7 -37
  66. package/dist/cjs/scrub.js +0 -2
  67. package/dist/cjs/transforms/dedupe-marks-transform.js +2 -23
  68. package/dist/cjs/transforms/helpers.js +0 -3
  69. package/dist/cjs/transforms/indentation-marks-transform.js +6 -14
  70. package/dist/cjs/transforms/invalid-media-content-transform.js +3 -22
  71. package/dist/cjs/transforms/media-link-transform.js +2 -12
  72. package/dist/cjs/transforms/nodes-missing-content-transform.js +0 -44
  73. package/dist/cjs/transforms/text-link-code-transform.js +3 -13
  74. package/dist/cjs/transforms.js +0 -6
  75. package/dist/cjs/traverse/filter.js +0 -2
  76. package/dist/cjs/traverse/map.js +0 -2
  77. package/dist/cjs/traverse/reduce.js +0 -2
  78. package/dist/cjs/traverse/traverse.js +1 -18
  79. package/dist/cjs/traverse.js +0 -4
  80. package/dist/cjs/validator/rules.js +0 -2
  81. package/dist/cjs/validator/specs/index.js +0 -83
  82. package/dist/cjs/validator/utils.js +4 -20
  83. package/dist/cjs/validator/validator.js +67 -218
  84. package/dist/cjs/validator.js +0 -1
  85. package/dist/cjs/version.json +1 -1
  86. package/dist/es2019/builders/utils/apply-mark.js +0 -2
  87. package/dist/es2019/builders/utils/is-duplicate-mark.js +0 -1
  88. package/dist/es2019/builders.js +4 -1
  89. package/dist/es2019/scrub/default-node-replacements.js +2 -7
  90. package/dist/es2019/scrub/hash.js +0 -2
  91. package/dist/es2019/scrub/scrub-adf.js +4 -10
  92. package/dist/es2019/scrub/scrub-content.js +7 -20
  93. package/dist/es2019/transforms/dedupe-marks-transform.js +4 -16
  94. package/dist/es2019/transforms/helpers.js +0 -1
  95. package/dist/es2019/transforms/indentation-marks-transform.js +10 -10
  96. package/dist/es2019/transforms/invalid-media-content-transform.js +5 -15
  97. package/dist/es2019/transforms/media-link-transform.js +2 -9
  98. package/dist/es2019/transforms/nodes-missing-content-transform.js +6 -38
  99. package/dist/es2019/transforms/text-link-code-transform.js +5 -8
  100. package/dist/es2019/traverse/traverse.js +5 -13
  101. package/dist/es2019/validator/utils.js +4 -2
  102. package/dist/es2019/validator/validator.js +60 -174
  103. package/dist/es2019/version.json +1 -1
  104. package/dist/esm/builders/nodes/blockquote.js +0 -1
  105. package/dist/esm/builders/nodes/bodied-extension.js +0 -1
  106. package/dist/esm/builders/nodes/bullet-list.js +0 -1
  107. package/dist/esm/builders/nodes/caption.js +0 -1
  108. package/dist/esm/builders/nodes/code-block.js +0 -1
  109. package/dist/esm/builders/nodes/decision-item.js +0 -1
  110. package/dist/esm/builders/nodes/decision-list.js +0 -1
  111. package/dist/esm/builders/nodes/doc.js +0 -1
  112. package/dist/esm/builders/nodes/expand.js +0 -1
  113. package/dist/esm/builders/nodes/heading.js +0 -1
  114. package/dist/esm/builders/nodes/media-group.js +0 -1
  115. package/dist/esm/builders/nodes/mention.js +0 -3
  116. package/dist/esm/builders/nodes/nested-expand.js +0 -1
  117. package/dist/esm/builders/nodes/ordered-list.js +0 -1
  118. package/dist/esm/builders/nodes/panel.js +0 -1
  119. package/dist/esm/builders/nodes/paragraph.js +0 -1
  120. package/dist/esm/builders/nodes/table-cell.js +0 -1
  121. package/dist/esm/builders/nodes/table-header.js +0 -1
  122. package/dist/esm/builders/nodes/table.js +0 -1
  123. package/dist/esm/builders/nodes/task-item.js +0 -1
  124. package/dist/esm/builders/nodes/task-list.js +0 -1
  125. package/dist/esm/builders/utils/apply-mark.js +0 -2
  126. package/dist/esm/builders/utils/is-duplicate-mark.js +0 -1
  127. package/dist/esm/builders.js +4 -1
  128. package/dist/esm/scrub/default-node-replacements.js +0 -9
  129. package/dist/esm/scrub/hash.js +0 -2
  130. package/dist/esm/scrub/scrub-adf.js +2 -17
  131. package/dist/esm/scrub/scrub-content.js +7 -28
  132. package/dist/esm/transforms/dedupe-marks-transform.js +2 -18
  133. package/dist/esm/transforms/helpers.js +0 -1
  134. package/dist/esm/transforms/indentation-marks-transform.js +6 -11
  135. package/dist/esm/transforms/invalid-media-content-transform.js +3 -18
  136. package/dist/esm/transforms/media-link-transform.js +2 -9
  137. package/dist/esm/transforms/nodes-missing-content-transform.js +0 -38
  138. package/dist/esm/transforms/text-link-code-transform.js +3 -10
  139. package/dist/esm/traverse/traverse.js +1 -15
  140. package/dist/esm/validator/utils.js +4 -2
  141. package/dist/esm/validator/validator.js +67 -209
  142. package/dist/esm/version.json +1 -1
  143. package/package.json +2 -2
@@ -1,24 +1,16 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.scrubStr = exports.scrubLink = exports.scrubAttrs = void 0;
9
-
10
8
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
11
-
12
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
-
16
11
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
17
-
18
12
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
-
20
13
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
21
-
22
14
  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";
23
15
  var DUMMY_DIGITS = ['2', '7', '4', '3', '5', '9', '1', '8', '0', '5'];
24
16
  var BYPASS_ATTR_LIST = {
@@ -41,18 +33,15 @@ var BYPASS_ATTR_LIST = {
41
33
  tableRow: ['defaultMarks'],
42
34
  taskItem: ['state']
43
35
  };
44
-
45
36
  var fromEntries = function fromEntries(iterable) {
46
37
  return (0, _toConsumableArray2.default)(iterable).reduce(function (obj, _ref) {
47
38
  var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
48
- key = _ref2[0],
49
- val = _ref2[1];
50
-
39
+ key = _ref2[0],
40
+ val = _ref2[1];
51
41
  obj[key] = val;
52
42
  return obj;
53
43
  }, {});
54
44
  };
55
-
56
45
  var scrubNum = function scrubNum(val) {
57
46
  var start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
58
47
  return parseInt(val.toString().split('').map(function (_, index) {
@@ -61,19 +50,18 @@ var scrubNum = function scrubNum(val) {
61
50
  return DUMMY_DIGITS[base % len];
62
51
  }).join(''), 10);
63
52
  };
64
-
65
53
  var scrubStr = function scrubStr(val) {
66
54
  var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
67
- var base = DUMMY_TEXT.repeat(Math.ceil((offset + val.length) / DUMMY_TEXT.length)); // using [...val] splits emoji character pairs correctly, compared to
68
- // something like "".split('')
55
+ var base = DUMMY_TEXT.repeat(Math.ceil((offset + val.length) / DUMMY_TEXT.length));
69
56
 
57
+ // using [...val] splits emoji character pairs correctly, compared to
58
+ // something like "".split('')
70
59
  return (0, _toConsumableArray2.default)(val).map(function (char, index, chars) {
71
60
  if (/^(?:[0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]|\uD801[\uDCA0-\uDCA9]|\uD803[\uDD30-\uDD39]|\uD804[\uDC66-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF39]|\uD806[\uDCE0-\uDCE9\uDD50-\uDD59]|\uD807[\uDC50-\uDC59\uDD50-\uDD59\uDDA0-\uDDA9]|\uD81A[\uDE60-\uDE69\uDEC0-\uDEC9\uDF50-\uDF59]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD83A[\uDD50-\uDD59]|\uD83E[\uDFF0-\uDFF9])$/.test(char)) {
72
61
  // Decimal digits
73
62
  return scrubNum(parseInt(char, 10), index).toString();
74
63
  } else if (/^(?:[\xA6\xA9\xAE\xB0\u0482\u058D\u058E\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u09FA\u0B70\u0BF3-\u0BF8\u0BFA\u0C7F\u0D4F\u0D79\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116\u2117\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u214A\u214C\u214D\u214F\u218A\u218B\u2195-\u2199\u219C-\u219F\u21A1\u21A2\u21A4\u21A5\u21A7-\u21AD\u21AF-\u21CD\u21D0\u21D1\u21D3\u21D5-\u21F3\u2300-\u2307\u230C-\u231F\u2322-\u2328\u232B-\u237B\u237D-\u239A\u23B4-\u23DB\u23E2-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u25B6\u25B8-\u25C0\u25C2-\u25F7\u2600-\u266E\u2670-\u2767\u2794-\u27BF\u2800-\u28FF\u2B00-\u2B2F\u2B45\u2B46\u2B4D-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA828-\uA82B\uA836\uA837\uA839\uAA77-\uAA79\uFD40-\uFD4F\uFDCF\uFDFD-\uFDFF\uFFE4\uFFE8\uFFED\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFDC\uDFE1-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD833[\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838\uDD4F|\uD83B[\uDCAC\uDD2E]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFA]|\uD83D[\uDC00-\uDED7\uDEDD-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7C\uDE80-\uDE86\uDE90-\uDEAC\uDEB0-\uDEBA\uDEC0-\uDEC5\uDED0-\uDED9\uDEE0-\uDEE7\uDEF0-\uDEF6\uDF00-\uDF92\uDF94-\uDFCA])$/.test(char)) {
75
64
  var _chars;
76
-
77
65
  // Emoji
78
66
  return ((_chars = chars[index - 1]) === null || _chars === void 0 ? void 0 : _chars.codePointAt(0)) === 8205 ? '' : '⭐️';
79
67
  } else if (/^(?:[\$\xA2-\xA5\u058F\u060B\u07FE\u07FF\u09F2\u09F3\u09FB\u0AF1\u0BF9\u0E3F\u17DB\u20A0-\u20C0\uA838\uFDFC\uFE69\uFF04\uFFE0\uFFE1\uFFE5\uFFE6]|\uD807[\uDFDD-\uDFE0]|\uD838\uDEFF|\uD83B\uDCB0)$/.test(char)) {
@@ -96,9 +84,7 @@ var scrubStr = function scrubStr(val) {
96
84
  }
97
85
  }).join('');
98
86
  };
99
-
100
87
  exports.scrubStr = scrubStr;
101
-
102
88
  var scrubLink = function scrubLink(marks, _ref3) {
103
89
  var valueReplacements = _ref3.valueReplacements;
104
90
  return marks.map(function (mark) {
@@ -109,62 +95,46 @@ var scrubLink = function scrubLink(marks, _ref3) {
109
95
  })
110
96
  });
111
97
  }
112
-
113
98
  return mark;
114
99
  });
115
100
  };
116
-
117
101
  exports.scrubLink = scrubLink;
118
-
119
102
  var scrubObj = function scrubObj(nodeType, attrsObj) {
120
103
  var entries = Object.entries(attrsObj).map(function (_ref4) {
121
104
  var _BYPASS_ATTR_LIST$nod;
122
-
123
105
  var _ref5 = (0, _slicedToArray2.default)(_ref4, 2),
124
- key = _ref5[0],
125
- value = _ref5[1];
126
-
106
+ key = _ref5[0],
107
+ value = _ref5[1];
127
108
  return (_BYPASS_ATTR_LIST$nod = BYPASS_ATTR_LIST[nodeType]) !== null && _BYPASS_ATTR_LIST$nod !== void 0 && _BYPASS_ATTR_LIST$nod.includes(key) ? [key, value] : [key, scrubAttrs(nodeType, value)];
128
109
  });
129
110
  return fromEntries(entries);
130
111
  };
131
-
132
112
  var scrubAttrs = function scrubAttrs(nodeType, attrs) {
133
113
  var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
134
-
135
114
  if (typeof attrs === 'number') {
136
115
  return scrubNum(attrs, offset);
137
116
  }
138
-
139
117
  if (typeof attrs === 'string') {
140
118
  return scrubStr(attrs, offset);
141
119
  }
142
-
143
120
  if (typeof attrs === 'boolean') {
144
121
  return attrs;
145
122
  }
146
-
147
123
  if (!attrs) {
148
124
  return attrs;
149
125
  }
150
-
151
126
  var attrsObj = attrs;
152
-
153
127
  if (attrsObj && attrsObj.constructor === Object && Object.keys(attrsObj).length === 0) {
154
128
  return {};
155
129
  }
156
-
157
130
  if ((0, _typeof2.default)(attrsObj) === 'object' && !Array.isArray(attrsObj)) {
158
131
  return scrubObj(nodeType, attrsObj);
159
132
  }
160
-
161
133
  if (Array.isArray(attrsObj)) {
162
134
  return attrsObj.map(function (el) {
163
135
  return (0, _typeof2.default)(el) === 'object' ? scrubObj(nodeType, el) : scrubAttrs(nodeType, el);
164
136
  });
165
137
  }
166
-
167
138
  throw new TypeError("scrubAttrs: encountered unsupported attributes type \"".concat((0, _typeof2.default)(attrsObj), "\"\n of value ").concat(JSON.stringify(attrsObj)));
168
139
  };
169
-
170
140
  exports.scrubAttrs = scrubAttrs;
package/dist/cjs/scrub.js CHANGED
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
@@ -11,5 +10,4 @@ Object.defineProperty(exports, "scrubAdf", {
11
10
  return _scrubAdf.default;
12
11
  }
13
12
  });
14
-
15
13
  var _scrubAdf = _interopRequireDefault(require("./scrub/scrub-adf"));
@@ -1,35 +1,27 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.transformDedupeMarks = void 0;
9
-
10
8
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
-
12
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
10
  var _traverse = require("../traverse/traverse");
15
-
16
11
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
17
-
18
12
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
19
-
20
13
  // This is the set of marks that we wont allow in duplicate to
21
14
  // exist on a given node, regardless of their attributes. We do
22
15
  // not include annotations here, because we do allow duplicate
23
16
  // annotations as long as they have unique id attributes (valid scenario)
24
17
  var markDuplicatesDisallowed = new Set(['strong', 'underline', 'textColor', 'link', 'em', 'subsup', 'strike']);
25
-
26
18
  var maybeHasDisallowedDuplicateMarks = function maybeHasDisallowedDuplicateMarks(node) {
27
19
  var _node$marks, _node$marks$map;
28
-
29
20
  var markTypes = (_node$marks = node.marks) === null || _node$marks === void 0 ? void 0 : (_node$marks$map = _node$marks.map(function (mark) {
30
21
  return mark.type;
31
22
  })) === null || _node$marks$map === void 0 ? void 0 : _node$marks$map.filter(function (markType) {
32
- return (// For annotations, we are performing the same cheap check
23
+ return (
24
+ // For annotations, we are performing the same cheap check
33
25
  // for duplicates by type, without considering IDs, to quickly determine
34
26
  // whether there may be potential deduping targets.
35
27
  // In the actual deduping logic in maybeRemoveDisallowedDuplicateMarks,
@@ -37,14 +29,11 @@ var maybeHasDisallowedDuplicateMarks = function maybeHasDisallowedDuplicateMarks
37
29
  markDuplicatesDisallowed.has(markType) || markType === 'annotation'
38
30
  );
39
31
  });
40
-
41
32
  if (!(markTypes !== null && markTypes !== void 0 && markTypes.length)) {
42
33
  return false;
43
34
  }
44
-
45
35
  return new Set(markTypes).size !== markTypes.length;
46
36
  };
47
-
48
37
  var maybeRemoveDisallowedDuplicateMarks = function maybeRemoveDisallowedDuplicateMarks(node) {
49
38
  var quota = new Map();
50
39
  var annotationsQuota = new Map();
@@ -52,21 +41,16 @@ var maybeRemoveDisallowedDuplicateMarks = function maybeRemoveDisallowedDuplicat
52
41
  markDuplicatesDisallowed.forEach(function (mark) {
53
42
  quota.set(mark, false);
54
43
  });
55
-
56
44
  if (!node.marks) {
57
45
  return {
58
46
  discardedMarks: discardedMarks
59
47
  };
60
48
  }
61
-
62
49
  var dedupedMarks = node.marks.filter(function (mark) {
63
50
  var markType = mark.type;
64
-
65
51
  if (markType === 'annotation') {
66
52
  var _mark$attrs;
67
-
68
53
  var id = (_mark$attrs = mark.attrs) === null || _mark$attrs === void 0 ? void 0 : _mark$attrs.id;
69
-
70
54
  if (annotationsQuota.has(id)) {
71
55
  discardedMarks.push(mark);
72
56
  return false;
@@ -75,7 +59,6 @@ var maybeRemoveDisallowedDuplicateMarks = function maybeRemoveDisallowedDuplicat
75
59
  return true;
76
60
  }
77
61
  }
78
-
79
62
  if (quota.has(markType)) {
80
63
  if (!quota.get(markType)) {
81
64
  quota.set(markType, true);
@@ -85,7 +68,6 @@ var maybeRemoveDisallowedDuplicateMarks = function maybeRemoveDisallowedDuplicat
85
68
  return false;
86
69
  }
87
70
  }
88
-
89
71
  return true;
90
72
  });
91
73
  return {
@@ -95,7 +77,6 @@ var maybeRemoveDisallowedDuplicateMarks = function maybeRemoveDisallowedDuplicat
95
77
  discardedMarks: discardedMarks
96
78
  };
97
79
  };
98
-
99
80
  var transformDedupeMarks = function transformDedupeMarks(adf) {
100
81
  var isTransformed = false;
101
82
  var discardedMarks = [];
@@ -104,7 +85,6 @@ var transformDedupeMarks = function transformDedupeMarks(adf) {
104
85
  if (maybeHasDisallowedDuplicateMarks(node)) {
105
86
  var result = maybeRemoveDisallowedDuplicateMarks(node);
106
87
  var resultDiscardedMarks = result.discardedMarks;
107
-
108
88
  if (resultDiscardedMarks.length) {
109
89
  discardedMarks.push.apply(discardedMarks, (0, _toConsumableArray2.default)(resultDiscardedMarks));
110
90
  isTransformed = true;
@@ -119,5 +99,4 @@ var transformDedupeMarks = function transformDedupeMarks(adf) {
119
99
  discardedMarks: discardedMarks
120
100
  };
121
101
  };
122
-
123
102
  exports.transformDedupeMarks = transformDedupeMarks;
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.isEmpty = void 0;
7
-
8
7
  var isEmpty = function isEmpty(node) {
9
8
  var _node$content;
10
-
11
9
  return !(node !== null && node !== void 0 && (_node$content = node.content) !== null && _node$content !== void 0 && _node$content.length);
12
10
  };
13
-
14
11
  exports.isEmpty = isEmpty;
@@ -1,52 +1,39 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.transformIndentationMarks = void 0;
9
-
10
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
9
  var _traverse = require("../traverse/traverse");
13
-
14
10
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
-
16
11
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
17
-
18
12
  var hasChildHeadingWithIndentation = function hasChildHeadingWithIndentation(node) {
19
13
  var _node$content$some, _node$content;
20
-
21
14
  return (_node$content$some = (_node$content = node.content) === null || _node$content === void 0 ? void 0 : _node$content.some(function (childNode) {
22
15
  var _childNode$marks;
23
-
24
16
  return (childNode === null || childNode === void 0 ? void 0 : childNode.type) === 'heading' && (childNode === null || childNode === void 0 ? void 0 : (_childNode$marks = childNode.marks) === null || _childNode$marks === void 0 ? void 0 : _childNode$marks.some(function (mark) {
25
17
  return mark.type === 'indentation';
26
18
  }));
27
19
  })) !== null && _node$content$some !== void 0 ? _node$content$some : false;
28
20
  };
29
-
30
21
  var removeIndentationFromHeadings = function removeIndentationFromHeadings(node) {
31
22
  var _node$content2;
32
-
33
23
  return _objectSpread(_objectSpread({}, node), {}, {
34
24
  content: (_node$content2 = node.content) === null || _node$content2 === void 0 ? void 0 : _node$content2.map(function (childNode) {
35
25
  if ((childNode === null || childNode === void 0 ? void 0 : childNode.type) === 'heading') {
36
26
  var _childNode$marks2;
37
-
38
27
  return _objectSpread(_objectSpread({}, childNode), {}, {
39
28
  marks: (_childNode$marks2 = childNode.marks) === null || _childNode$marks2 === void 0 ? void 0 : _childNode$marks2.filter(function (mark) {
40
29
  return mark.type !== 'indentation';
41
30
  })
42
31
  });
43
32
  }
44
-
45
33
  return childNode;
46
34
  })
47
35
  });
48
36
  };
49
-
50
37
  var transformIndentationMarks = function transformIndentationMarks(adf) {
51
38
  var isTransformed = false;
52
39
  var transformedAdf = (0, _traverse.traverse)(adf, {
@@ -55,6 +42,12 @@ var transformIndentationMarks = function transformIndentationMarks(adf) {
55
42
  isTransformed = true;
56
43
  return removeIndentationFromHeadings(node);
57
44
  }
45
+ },
46
+ tableHeader: function tableHeader(node) {
47
+ if (hasChildHeadingWithIndentation(node)) {
48
+ isTransformed = true;
49
+ return removeIndentationFromHeadings(node);
50
+ }
58
51
  }
59
52
  });
60
53
  return {
@@ -62,5 +55,4 @@ var transformIndentationMarks = function transformIndentationMarks(adf) {
62
55
  isTransformed: isTransformed
63
56
  };
64
57
  };
65
-
66
58
  exports.transformIndentationMarks = transformIndentationMarks;
@@ -1,69 +1,55 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.transformInvalidMediaContent = void 0;
9
-
10
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
9
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
-
14
10
  var _traverse = require("../traverse/traverse");
15
-
16
11
  var _helpers = require("./helpers");
17
-
18
12
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
-
20
13
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
21
-
22
14
  var getChildrenTypeCounts = function getChildrenTypeCounts(nodeContent, allowedTypes) {
23
15
  var childrenTypes = {};
24
16
  nodeContent.forEach(function (childNode, index) {
25
17
  if (!(childNode !== null && childNode !== void 0 && childNode.type) || !allowedTypes.includes(childNode.type)) {
26
18
  return;
27
19
  }
28
-
29
20
  if (!childrenTypes[childNode.type]) {
30
21
  childrenTypes[childNode.type] = 1;
31
22
  return;
32
23
  }
33
-
34
24
  childrenTypes[childNode.type]++;
35
25
  });
36
26
  return childrenTypes;
37
27
  };
38
-
39
28
  var removeDuplicatedNodes = function removeDuplicatedNodes(type, content, predicate) {
40
29
  var maxIterations = 10;
41
30
  var childrenTypeCounts = getChildrenTypeCounts(content, [type])[type];
42
31
  var firstPredicateNodeIndex = content.findIndex(predicate);
43
-
44
32
  while (childrenTypeCounts > 1 && firstPredicateNodeIndex > -1 && maxIterations-- > 0) {
45
33
  content.splice(firstPredicateNodeIndex, 1);
46
34
  firstPredicateNodeIndex = content.findIndex(predicate);
47
35
  childrenTypeCounts = getChildrenTypeCounts(content, [type])[type];
48
36
  }
49
37
  };
38
+
50
39
  /**
51
40
  * @param {{[type:string]:number}} allowedTypes - array types allowed to deduplicate
52
41
  */
53
-
54
-
55
42
  var deduplicateMediaSingleChildren = function deduplicateMediaSingleChildren(node, allowedTypes) {
56
43
  if (!node.content) {
57
44
  return;
58
45
  }
59
-
60
46
  var content = (0, _toConsumableArray2.default)(node.content);
61
47
  Object.keys(allowedTypes).forEach(function (type) {
62
48
  //prioritise removing empty nodes first
63
49
  removeDuplicatedNodes(type, content, function (node) {
64
50
  return (node === null || node === void 0 ? void 0 : node.type) === type && (0, _helpers.isEmpty)(node);
65
- }); //remove other remaining dupicates
66
-
51
+ });
52
+ //remove other remaining dupicates
67
53
  removeDuplicatedNodes(type, content, function (node) {
68
54
  return (node === null || node === void 0 ? void 0 : node.type) === type;
69
55
  });
@@ -72,20 +58,16 @@ var deduplicateMediaSingleChildren = function deduplicateMediaSingleChildren(nod
72
58
  content: content
73
59
  });
74
60
  };
75
-
76
61
  var transformInvalidMediaContent = function transformInvalidMediaContent(adf) {
77
62
  var isTransformed = false;
78
63
  var transformedAdf = (0, _traverse.traverse)(adf, {
79
64
  mediaSingle: function mediaSingle(node) {
80
65
  var _node$content;
81
-
82
66
  if (!(node !== null && node !== void 0 && (_node$content = node.content) !== null && _node$content !== void 0 && _node$content.length)) {
83
67
  return;
84
68
  }
85
-
86
69
  var disallowedDuplicateTypes = ['media', 'caption'];
87
70
  var childrenTypes = getChildrenTypeCounts(node.content, disallowedDuplicateTypes);
88
-
89
71
  if (Object.values(childrenTypes).some(function (occurences) {
90
72
  return occurences > 1;
91
73
  })) {
@@ -99,5 +81,4 @@ var transformInvalidMediaContent = function transformInvalidMediaContent(adf) {
99
81
  isTransformed: isTransformed
100
82
  };
101
83
  };
102
-
103
84
  exports.transformInvalidMediaContent = transformInvalidMediaContent;
@@ -4,9 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.transformMediaLinkMarks = void 0;
7
-
8
7
  var _traverse = require("../traverse/traverse");
9
-
10
8
  // link mark on mediaSingle is deprecated, need to move link mark to child media node
11
9
  // https://product-fabric.atlassian.net/browse/ED-14043
12
10
  var transformMediaLinkMarks = function transformMediaLinkMarks(adf) {
@@ -14,31 +12,25 @@ var transformMediaLinkMarks = function transformMediaLinkMarks(adf) {
14
12
  var transformedAdf = (0, _traverse.traverse)(adf, {
15
13
  mediaSingle: function mediaSingle(node) {
16
14
  var _node$content$;
17
-
18
15
  if (!node.marks || !node.content || ((_node$content$ = node.content[0]) === null || _node$content$ === void 0 ? void 0 : _node$content$.type) !== 'media') {
19
16
  return node;
20
17
  }
21
-
22
18
  var linkMark = null;
23
19
  node.marks.forEach(function (mark, i) {
24
20
  if (mark.type === 'link') {
25
21
  var _node$marks;
26
-
27
22
  linkMark = mark;
28
23
  (_node$marks = node.marks) === null || _node$marks === void 0 ? void 0 : _node$marks.splice(i, 1);
29
24
  isTransformed = true;
30
25
  }
31
26
  });
32
-
33
27
  if (node.marks.length === 0) {
34
28
  delete node.marks;
35
29
  }
36
-
37
30
  if (linkMark) {
38
31
  var _mediaNode$marks;
39
-
40
- var mediaNode = node.content[0]; // only add link mark if media node doesnt already have one
41
-
32
+ var mediaNode = node.content[0];
33
+ // only add link mark if media node doesnt already have one
42
34
  if ((_mediaNode$marks = mediaNode.marks) !== null && _mediaNode$marks !== void 0 && _mediaNode$marks.every(function (mark) {
43
35
  return mark.type !== 'link';
44
36
  })) {
@@ -47,7 +39,6 @@ var transformMediaLinkMarks = function transformMediaLinkMarks(adf) {
47
39
  mediaNode.marks = [linkMark];
48
40
  }
49
41
  }
50
-
51
42
  return node;
52
43
  }
53
44
  });
@@ -56,5 +47,4 @@ var transformMediaLinkMarks = function transformMediaLinkMarks(adf) {
56
47
  isTransformed: isTransformed
57
48
  };
58
49
  };
59
-
60
50
  exports.transformMediaLinkMarks = transformMediaLinkMarks;