@atlaskit/adf-utils 14.1.1 → 14.4.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.
Files changed (118) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/dist/cjs/builders/marks/fragment.js +19 -0
  3. package/dist/cjs/builders/nodes/media-inline.js +15 -0
  4. package/dist/cjs/builders/nodes/mention.js +2 -2
  5. package/dist/cjs/builders/utils/create-text-nodes.js +1 -1
  6. package/dist/cjs/builders/utils/is-duplicate-mark.js +1 -1
  7. package/dist/cjs/builders.js +128 -120
  8. package/dist/cjs/index.js +49 -41
  9. package/dist/cjs/scrub/default-node-replacements.js +2 -2
  10. package/dist/cjs/scrub/scrub-adf.js +2 -2
  11. package/dist/cjs/scrub/scrub-content.js +3 -3
  12. package/dist/cjs/transforms/text-link-code-transform.js +58 -0
  13. package/dist/cjs/traverse/traverse.js +3 -3
  14. package/dist/cjs/traverse.js +4 -4
  15. package/dist/cjs/validator/rules.js +13 -0
  16. package/dist/cjs/validator/specs/atomic_inline.js +1 -1
  17. package/dist/cjs/validator/specs/blockCard.js +2 -1
  18. package/dist/cjs/validator/specs/block_content.js +1 -1
  19. package/dist/cjs/validator/specs/{bodiedExtension_with_no_marks.js → bodiedExtension_with_experimental_marks.js} +1 -2
  20. package/dist/cjs/validator/specs/doc.js +1 -1
  21. package/dist/cjs/validator/specs/embedCard.js +2 -1
  22. package/dist/cjs/validator/specs/{extension_with_no_marks.js → extension_with_experimental_marks.js} +1 -2
  23. package/dist/cjs/validator/specs/fragment.js +27 -0
  24. package/dist/cjs/validator/specs/index.js +198 -166
  25. package/dist/cjs/validator/specs/inline.js +1 -1
  26. package/dist/cjs/validator/specs/inlineCard.js +2 -1
  27. package/dist/cjs/validator/specs/{inlineExtension_with_no_marks.js → inlineExtension_with_experimental_marks.js} +1 -2
  28. package/dist/cjs/validator/specs/layoutSection.js +4 -7
  29. package/dist/cjs/validator/specs/layoutSection_full.js +27 -0
  30. package/dist/cjs/validator/specs/layoutSection_with_single_column.js +27 -0
  31. package/dist/cjs/validator/specs/link.js +2 -1
  32. package/dist/cjs/validator/specs/mediaInline.js +52 -0
  33. package/dist/cjs/validator/specs/non_nestable_block_content.js +1 -1
  34. package/dist/cjs/validator/specs/tableCell_content.js +1 -1
  35. package/dist/cjs/validator/utils.js +1 -1
  36. package/dist/cjs/validator/validator.js +27 -19
  37. package/dist/cjs/version.json +1 -1
  38. package/dist/es2019/builders/marks/fragment.js +7 -0
  39. package/dist/es2019/builders/nodes/media-inline.js +4 -0
  40. package/dist/es2019/builders.js +2 -1
  41. package/dist/es2019/index.js +2 -1
  42. package/dist/es2019/transforms/text-link-code-transform.js +37 -0
  43. package/dist/es2019/validator/rules.js +4 -0
  44. package/dist/es2019/validator/specs/atomic_inline.js +1 -1
  45. package/dist/es2019/validator/specs/blockCard.js +2 -1
  46. package/dist/es2019/validator/specs/block_content.js +1 -1
  47. package/dist/{esm/validator/specs/bodiedExtension_with_no_marks.js → es2019/validator/specs/bodiedExtension_with_experimental_marks.js} +1 -2
  48. package/dist/es2019/validator/specs/doc.js +1 -1
  49. package/dist/es2019/validator/specs/embedCard.js +2 -1
  50. package/dist/es2019/validator/specs/{extension_with_no_marks.js → extension_with_experimental_marks.js} +1 -2
  51. package/dist/es2019/validator/specs/fragment.js +20 -0
  52. package/dist/es2019/validator/specs/index.js +8 -4
  53. package/dist/es2019/validator/specs/inline.js +1 -1
  54. package/dist/es2019/validator/specs/inlineCard.js +2 -1
  55. package/dist/es2019/validator/specs/{inlineExtension_with_no_marks.js → inlineExtension_with_experimental_marks.js} +1 -2
  56. package/dist/es2019/validator/specs/layoutSection.js +4 -7
  57. package/dist/es2019/validator/specs/layoutSection_full.js +20 -0
  58. package/dist/es2019/validator/specs/layoutSection_with_single_column.js +20 -0
  59. package/dist/es2019/validator/specs/link.js +2 -1
  60. package/dist/es2019/validator/specs/mediaInline.js +45 -0
  61. package/dist/es2019/validator/specs/non_nestable_block_content.js +1 -1
  62. package/dist/es2019/validator/specs/tableCell_content.js +1 -1
  63. package/dist/es2019/validator/validator.js +19 -16
  64. package/dist/es2019/version.json +1 -1
  65. package/dist/esm/builders/marks/fragment.js +9 -0
  66. package/dist/esm/builders/nodes/media-inline.js +6 -0
  67. package/dist/esm/builders/nodes/mention.js +2 -2
  68. package/dist/esm/builders.js +2 -1
  69. package/dist/esm/index.js +2 -1
  70. package/dist/esm/scrub/default-node-replacements.js +2 -2
  71. package/dist/esm/scrub/scrub-adf.js +2 -2
  72. package/dist/esm/scrub/scrub-content.js +2 -2
  73. package/dist/esm/transforms/text-link-code-transform.js +47 -0
  74. package/dist/esm/traverse/traverse.js +2 -2
  75. package/dist/esm/validator/rules.js +4 -0
  76. package/dist/esm/validator/specs/atomic_inline.js +1 -1
  77. package/dist/esm/validator/specs/blockCard.js +2 -1
  78. package/dist/esm/validator/specs/block_content.js +1 -1
  79. package/dist/{es2019/validator/specs/bodiedExtension_with_no_marks.js → esm/validator/specs/bodiedExtension_with_experimental_marks.js} +1 -2
  80. package/dist/esm/validator/specs/doc.js +1 -1
  81. package/dist/esm/validator/specs/embedCard.js +2 -1
  82. package/dist/esm/validator/specs/{extension_with_no_marks.js → extension_with_experimental_marks.js} +1 -2
  83. package/dist/esm/validator/specs/fragment.js +20 -0
  84. package/dist/esm/validator/specs/index.js +8 -4
  85. package/dist/esm/validator/specs/inline.js +1 -1
  86. package/dist/esm/validator/specs/inlineCard.js +2 -1
  87. package/dist/esm/validator/specs/{inlineExtension_with_no_marks.js → inlineExtension_with_experimental_marks.js} +1 -2
  88. package/dist/esm/validator/specs/layoutSection.js +4 -7
  89. package/dist/esm/validator/specs/layoutSection_full.js +20 -0
  90. package/dist/esm/validator/specs/layoutSection_with_single_column.js +20 -0
  91. package/dist/esm/validator/specs/link.js +2 -1
  92. package/dist/esm/validator/specs/mediaInline.js +45 -0
  93. package/dist/esm/validator/specs/non_nestable_block_content.js +1 -1
  94. package/dist/esm/validator/specs/tableCell_content.js +1 -1
  95. package/dist/esm/validator/validator.js +25 -19
  96. package/dist/esm/version.json +1 -1
  97. package/dist/types/builders/marks/breakout.d.ts +1 -1
  98. package/dist/types/builders/marks/fragment.d.ts +3 -0
  99. package/dist/types/builders/nodes/media-inline.d.ts +2 -0
  100. package/dist/types/builders.d.ts +1 -0
  101. package/dist/types/index.d.ts +1 -0
  102. package/dist/types/transforms/text-link-code-transform.d.ts +5 -0
  103. package/dist/types/types/validatorTypes.d.ts +1 -0
  104. package/dist/types/validator/rules.d.ts +3 -0
  105. package/dist/types/validator/specs/blockCard.d.ts +1 -0
  106. package/dist/types/validator/specs/{bodiedExtension_with_no_marks.d.ts → bodiedExtension_with_experimental_marks.d.ts} +1 -2
  107. package/dist/types/validator/specs/embedCard.d.ts +1 -0
  108. package/dist/types/validator/specs/{extension_with_no_marks.d.ts → extension_with_experimental_marks.d.ts} +1 -2
  109. package/dist/types/validator/specs/fragment.d.ts +21 -0
  110. package/dist/types/validator/specs/index.d.ts +8 -4
  111. package/dist/types/validator/specs/inlineCard.d.ts +1 -0
  112. package/dist/types/validator/specs/{inlineExtension_with_no_marks.d.ts → inlineExtension_with_experimental_marks.d.ts} +1 -2
  113. package/dist/types/validator/specs/layoutSection.d.ts +3 -6
  114. package/dist/types/validator/specs/layoutSection_full.d.ts +21 -0
  115. package/dist/types/validator/specs/layoutSection_with_single_column.d.ts +21 -0
  116. package/dist/types/validator/specs/link.d.ts +1 -0
  117. package/dist/types/validator/specs/mediaInline.d.ts +46 -0
  118. package/package.json +6 -3
@@ -0,0 +1,45 @@
1
+ export default {
2
+ props: {
3
+ type: {
4
+ type: 'enum',
5
+ values: ['mediaInline']
6
+ },
7
+ attrs: {
8
+ props: {
9
+ data: {
10
+ type: 'object',
11
+ optional: true
12
+ },
13
+ id: {
14
+ type: 'string',
15
+ minLength: 1
16
+ },
17
+ collection: {
18
+ type: 'string'
19
+ },
20
+ height: {
21
+ type: 'number',
22
+ optional: true
23
+ },
24
+ width: {
25
+ type: 'number',
26
+ optional: true
27
+ },
28
+ occurrenceKey: {
29
+ type: 'string',
30
+ minLength: 1,
31
+ optional: true
32
+ },
33
+ alt: {
34
+ type: 'string',
35
+ optional: true
36
+ }
37
+ }
38
+ },
39
+ marks: {
40
+ type: 'array',
41
+ items: ['link'],
42
+ optional: true
43
+ }
44
+ }
45
+ };
@@ -1 +1 @@
1
- export default ['blockCard', 'paragraph_with_no_marks', 'bulletList', 'mediaSingle_full', 'mediaSingle_caption', 'codeBlock_with_no_marks', 'orderedList', 'heading_with_no_marks', 'panel', 'blockquote', 'rule', 'mediaGroup', 'decisionList', 'taskList', 'extension_with_no_marks', 'extension_with_marks', 'embedCard', 'table'];
1
+ export default ['blockCard', 'paragraph_with_no_marks', 'bulletList', 'mediaSingle_full', 'mediaSingle_caption', 'codeBlock_with_no_marks', 'orderedList', 'heading_with_no_marks', 'panel', 'blockquote', 'rule', 'mediaGroup', 'decisionList', 'taskList', 'extension_with_marks', 'extension_with_experimental_marks', 'embedCard', 'table'];
@@ -1,6 +1,6 @@
1
1
  export default {
2
2
  type: 'array',
3
- items: [['blockCard', 'paragraph_with_no_marks', 'paragraph_with_alignment', 'bulletList', 'mediaSingle_full', 'mediaSingle_caption', 'codeBlock_with_no_marks', 'orderedList', 'heading_with_no_marks', 'heading_with_alignment', 'heading_with_indentation', 'panel', 'blockquote', 'rule', 'mediaGroup', 'decisionList', 'taskList', 'extension_with_no_marks', 'extension_with_marks', 'embedCard', 'nestedExpand_with_no_marks']],
3
+ items: [['blockCard', 'paragraph_with_no_marks', 'paragraph_with_alignment', 'bulletList', 'mediaSingle_full', 'mediaSingle_caption', 'codeBlock_with_no_marks', 'orderedList', 'heading_with_no_marks', 'heading_with_alignment', 'heading_with_indentation', 'panel', 'blockquote', 'rule', 'mediaGroup', 'decisionList', 'taskList', 'extension_with_marks', 'extension_with_experimental_marks', 'embedCard', 'nestedExpand_with_no_marks']],
4
4
  minItems: 1,
5
5
  allowUnsupportedBlock: true
6
6
  };
@@ -1,5 +1,6 @@
1
1
  import * as specs from './specs';
2
2
  import { copy, isBoolean, isDefined, isInteger, isNumber, isPlainObject, isString, makeArray } from './utils';
3
+ import { validatorFnMap } from './rules';
3
4
 
4
5
  function mapMarksItems(spec, fn = x => x) {
5
6
  if (spec.props && spec.props.marks) {
@@ -69,9 +70,9 @@ function createSpec(nodes, marks) {
69
70
  };
70
71
  }
71
72
 
72
- spec.props.content.items = spec.props.content.items. // ['inline'] => [['emoji', 'hr', ...]]
73
+ spec.props.content.items = spec.props.content.items // ['inline'] => [['emoji', 'hr', ...]]
73
74
  // ['media'] => [['media']]
74
- map(item => isString(item) ? Array.isArray(specs[item]) ? specs[item] : [item] : item) // [['emoji', 'hr', 'inline_code']] => [['emoji', 'hr', ['text', { marks: {} }]]]
75
+ .map(item => isString(item) ? Array.isArray(specs[item]) ? specs[item] : [item] : item) // [['emoji', 'hr', 'inline_code']] => [['emoji', 'hr', ['text', { marks: {} }]]]
75
76
  .map(item => item.map(subItem => Array.isArray(specs[subItem]) ? specs[subItem] : isString(subItem) ? subItem : // Now `NoMark` produces `items: []`, should be fixed in generator
76
77
  ['text', subItem]) // Remove unsupported nodes & marks
77
78
  // Filter nodes
@@ -153,7 +154,9 @@ export function validateAttrs(spec, value) {
153
154
  return isInteger(value) && (isDefined(spec.minimum) ? spec.minimum <= value : true) && (isDefined(spec.maximum) ? spec.maximum >= value : true);
154
155
 
155
156
  case 'string':
156
- return isString(value) && (isDefined(spec.minLength) ? spec.minLength <= value.length : true) && (spec.pattern ? new RegExp(spec.pattern).test(value) : true);
157
+ const validatorFnPassed = rule => typeof value === 'string' && isDefined(validatorFnMap[rule]) && validatorFnMap[rule](value);
158
+
159
+ return isString(value) && (isDefined(spec.minLength) ? spec.minLength <= value.length : true) && (isDefined(spec.validatorFn) ? validatorFnPassed(spec.validatorFn) : true) && (spec.pattern ? new RegExp(spec.pattern).test(value) : true);
157
160
 
158
161
  case 'object':
159
162
  return isPlainObject(value);
@@ -364,19 +367,19 @@ export function validator(nodes, marks, options) {
364
367
  } // this checks for mark level attribute errors
365
368
  // and propagates error code and message
366
369
  else if (finalResult.marksValidationOutput && finalResult.marksValidationOutput.length) {
367
- return {
368
- valid: false,
369
- originalMark: mark,
370
- errorCode: finalResult.marksValidationOutput[0].errorCode,
371
- message: finalResult.marksValidationOutput[0].message
372
- };
373
- } else {
374
- return {
375
- valid: false,
376
- originalMark: mark,
377
- errorCode: 'INVALID_TYPE'
378
- };
379
- }
370
+ return {
371
+ valid: false,
372
+ originalMark: mark,
373
+ errorCode: finalResult.marksValidationOutput[0].errorCode,
374
+ message: finalResult.marksValidationOutput[0].message
375
+ };
376
+ } else {
377
+ return {
378
+ valid: false,
379
+ originalMark: mark,
380
+ errorCode: 'INVALID_TYPE'
381
+ };
382
+ }
380
383
  } else {
381
384
  return {
382
385
  valid: false,
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/adf-utils",
3
- "version": "14.1.1",
3
+ "version": "14.4.1",
4
4
  "sideEffects": false
5
5
  }
@@ -0,0 +1,9 @@
1
+ import { applyMark } from '../utils/apply-mark';
2
+ export var fragment = function fragment(attrs) {
3
+ return function (maybeNode) {
4
+ return applyMark({
5
+ type: 'fragment',
6
+ attrs: attrs
7
+ }, maybeNode);
8
+ };
9
+ };
@@ -0,0 +1,6 @@
1
+ export var mediaInline = function mediaInline(attrs) {
2
+ return {
3
+ type: 'mediaInline',
4
+ attrs: attrs
5
+ };
6
+ };
@@ -1,8 +1,8 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
 
3
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
3
+ 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; }
4
4
 
5
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
5
+ 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) { _defineProperty(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; }
6
6
 
7
7
  export var mention = function mention(attrs) {
8
8
  return {
@@ -13,7 +13,8 @@ export { underline } from './builders/marks/underline';
13
13
  export { underline as u } from './builders/marks/underline';
14
14
  export { alignment } from './builders/marks/alignment';
15
15
  export { indentation } from './builders/marks/indentation';
16
- export { dataConsumer } from './builders/marks/data-consumer'; // Nodes Builders
16
+ export { dataConsumer } from './builders/marks/data-consumer';
17
+ export { fragment } from './builders/marks/fragment'; // Nodes Builders
17
18
 
18
19
  export { blockQuote } from './builders/nodes/blockquote';
19
20
  export { bodiedExtension } from './builders/nodes/bodied-extension';
package/dist/esm/index.js CHANGED
@@ -2,4 +2,5 @@ export { a, alignment, b, blockCard, blockQuote, bodiedExtension, br, breakout,
2
2
  export { filter, map, reduce, traverse } from './traverse';
3
3
  export { scrubAdf } from './scrub';
4
4
  export { validateAttrs, validator } from './validator';
5
- export { getEmptyADF } from './empty-adf';
5
+ export { getEmptyADF } from './empty-adf';
6
+ export { transformTextLinkCodeMarks } from './transforms/text-link-code-transform';
@@ -1,8 +1,8 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
 
3
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
3
+ 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; }
4
4
 
5
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
5
+ 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) { _defineProperty(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; }
6
6
 
7
7
  import { scrubAttrs } from './scrub-content';
8
8
 
@@ -1,9 +1,9 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
3
 
4
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
4
+ 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; }
5
5
 
6
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
6
+ 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) { _defineProperty(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; }
7
7
 
8
8
  import { traverse } from '../traverse/traverse';
9
9
  import { scrubAttrs, scrubStr, scrubLink } from './scrub-content';
@@ -3,9 +3,9 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
3
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
4
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
5
5
 
6
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
6
+ 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; }
7
7
 
8
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
8
+ 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) { _defineProperty(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; }
9
9
 
10
10
  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";
11
11
  var DUMMY_DIGITS = ['2', '7', '4', '3', '5', '9', '1', '8', '0', '5'];
@@ -0,0 +1,47 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+
3
+ 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; }
4
+
5
+ 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) { _defineProperty(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; }
6
+
7
+ import { traverse } from '../traverse/traverse';
8
+
9
+ var hasLinkAndCodeMarks = function hasLinkAndCodeMarks(node) {
10
+ var _node$marks;
11
+
12
+ var marks = (_node$marks = node.marks) === null || _node$marks === void 0 ? void 0 : _node$marks.map(function (mark) {
13
+ return mark.type;
14
+ });
15
+ return (marks === null || marks === void 0 ? void 0 : marks.includes('link')) && (marks === null || marks === void 0 ? void 0 : marks.includes('code'));
16
+ };
17
+
18
+ var removeCodeMarks = function removeCodeMarks(node) {
19
+ if (node.marks) {
20
+ return _objectSpread(_objectSpread({}, node), {}, {
21
+ marks: node.marks.filter(function (mark) {
22
+ return mark.type !== 'code';
23
+ })
24
+ });
25
+ }
26
+
27
+ return node;
28
+ }; // See: HOT-97965 https://product-fabric.atlassian.net/browse/ED-14400
29
+ // We declared in code mark spec that links and marks should not co-exist on
30
+ // text nodes. This util strips code marks from bad text nodes and preserves links.
31
+
32
+
33
+ export var transformTextLinkCodeMarks = function transformTextLinkCodeMarks(adf) {
34
+ var isTransformed = false;
35
+ var transformedAdf = traverse(adf, {
36
+ text: function text(node) {
37
+ if (hasLinkAndCodeMarks(node)) {
38
+ isTransformed = true;
39
+ return removeCodeMarks(node);
40
+ }
41
+ }
42
+ });
43
+ return {
44
+ transformedAdf: transformedAdf,
45
+ isTransformed: isTransformed
46
+ };
47
+ };
@@ -1,8 +1,8 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
 
3
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
3
+ 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; }
4
4
 
5
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
5
+ 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) { _defineProperty(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; }
6
6
 
7
7
  export function validateVisitors(_visitors) {
8
8
  return true;
@@ -0,0 +1,4 @@
1
+ import { isSafeUrl } from '@atlaskit/adf-schema';
2
+ export var validatorFnMap = {
3
+ safeUrl: isSafeUrl
4
+ };
@@ -1 +1 @@
1
- export default ['hardBreak', 'mention', 'emoji', 'inlineExtension_with_no_marks', 'date', 'placeholder', 'inlineCard', 'status'];
1
+ export default ['hardBreak', 'mention', 'emoji', 'inlineExtension_with_marks', 'date', 'placeholder', 'inlineCard', 'status', 'mediaInline'];
@@ -7,7 +7,8 @@ export default {
7
7
  attrs: [{
8
8
  props: {
9
9
  url: {
10
- type: 'string'
10
+ type: 'string',
11
+ validatorFn: 'safeUrl'
11
12
  }
12
13
  }
13
14
  }, {
@@ -1 +1 @@
1
- export default ['blockCard', 'paragraph_with_no_marks', 'paragraph_with_alignment', 'bulletList', 'mediaSingle_full', 'mediaSingle_caption', 'codeBlock_with_no_marks', 'orderedList', 'heading_with_no_marks', 'heading_with_alignment', 'heading_with_indentation', 'panel', 'blockquote', 'rule', 'mediaGroup', 'decisionList', 'taskList', 'extension_with_no_marks', 'extension_with_marks', 'embedCard', 'table', 'expand_with_no_mark', 'bodiedExtension_with_no_marks', 'bodiedExtension_with_marks'];
1
+ export default ['blockCard', 'paragraph_with_no_marks', 'paragraph_with_alignment', 'bulletList', 'mediaSingle_full', 'mediaSingle_caption', 'codeBlock_with_no_marks', 'orderedList', 'heading_with_no_marks', 'heading_with_alignment', 'heading_with_indentation', 'panel', 'blockquote', 'rule', 'mediaGroup', 'decisionList', 'taskList', 'extension_with_marks', 'extension_with_experimental_marks', 'embedCard', 'table', 'expand_with_no_mark', 'bodiedExtension_with_marks', 'bodiedExtension_with_experimental_marks'];
@@ -2,8 +2,7 @@ export default ['bodiedExtension', {
2
2
  props: {
3
3
  marks: {
4
4
  type: 'array',
5
- items: [],
6
- maxItems: 0,
5
+ items: ['fragment'],
7
6
  optional: true
8
7
  }
9
8
  }
@@ -10,7 +10,7 @@ export default {
10
10
  },
11
11
  content: {
12
12
  type: 'array',
13
- items: [['blockCard', 'paragraph_with_no_marks', 'paragraph_with_alignment', 'paragraph_with_indentation', 'bulletList', 'mediaSingle_full', 'mediaSingle_caption', 'codeBlock_with_no_marks', 'codeBlock_with_marks', 'orderedList', 'heading_with_no_marks', 'heading_with_alignment', 'heading_with_indentation', 'panel', 'blockquote', 'rule', 'mediaGroup', 'decisionList', 'taskList', 'extension_with_no_marks', 'extension_with_marks', 'embedCard', 'table', 'expand_with_no_mark', 'expand_with_breakout_mark', 'bodiedExtension_with_no_marks', 'bodiedExtension_with_marks', 'layoutSection']],
13
+ items: [['blockCard', 'paragraph_with_no_marks', 'paragraph_with_alignment', 'paragraph_with_indentation', 'bulletList', 'mediaSingle_full', 'mediaSingle_caption', 'codeBlock_with_no_marks', 'codeBlock_with_marks', 'orderedList', 'heading_with_no_marks', 'heading_with_alignment', 'heading_with_indentation', 'panel', 'blockquote', 'rule', 'mediaGroup', 'decisionList', 'taskList', 'extension_with_marks', 'extension_with_experimental_marks', 'embedCard', 'table', 'expand_with_no_mark', 'expand_with_breakout_mark', 'bodiedExtension_with_marks', 'bodiedExtension_with_experimental_marks', 'layoutSection_full', 'layoutSection_with_single_column']],
14
14
  allowUnsupportedBlock: true
15
15
  }
16
16
  }
@@ -15,7 +15,8 @@ export default {
15
15
  optional: true
16
16
  },
17
17
  url: {
18
- type: 'string'
18
+ type: 'string',
19
+ validatorFn: 'safeUrl'
19
20
  },
20
21
  width: {
21
22
  type: 'number',
@@ -2,8 +2,7 @@ export default ['extension', {
2
2
  props: {
3
3
  marks: {
4
4
  type: 'array',
5
- items: [],
6
- maxItems: 0,
5
+ items: ['fragment'],
7
6
  optional: true
8
7
  }
9
8
  }
@@ -0,0 +1,20 @@
1
+ export default {
2
+ props: {
3
+ type: {
4
+ type: 'enum',
5
+ values: ['fragment']
6
+ },
7
+ attrs: {
8
+ props: {
9
+ localId: {
10
+ type: 'string',
11
+ minLength: 1
12
+ },
13
+ name: {
14
+ type: 'string',
15
+ optional: true
16
+ }
17
+ }
18
+ }
19
+ }
20
+ };
@@ -13,18 +13,21 @@ export { default as alignment } from './alignment';
13
13
  export { default as indentation } from './indentation';
14
14
  export { default as annotation } from './annotation';
15
15
  export { default as dataConsumer } from './dataConsumer';
16
+ export { default as fragment } from './fragment';
16
17
  export { default as hardBreak } from './hardBreak';
17
18
  export { default as mention } from './mention';
18
19
  export { default as emoji } from './emoji';
19
20
  export { default as inlineExtension } from './inlineExtension';
20
- export { default as inlineExtension_with_no_marks } from './inlineExtension_with_no_marks';
21
21
  export { default as inlineExtension_with_marks } from './inlineExtension_with_marks';
22
+ export { default as inlineExtension_with_experimental_marks } from './inlineExtension_with_experimental_marks';
22
23
  export { default as date } from './date';
23
24
  export { default as placeholder } from './placeholder';
24
25
  export { default as blockCard } from './blockCard';
25
26
  export { default as inlineCard } from './inlineCard';
26
27
  export { default as status } from './status';
27
28
  export { default as text } from './text';
29
+ export { default as media } from './media';
30
+ export { default as mediaInline } from './mediaInline';
28
31
  export { default as formatted_text_inline } from './formatted_text_inline';
29
32
  export { default as link_text_inline } from './link_text_inline';
30
33
  export { default as code_inline } from './code_inline';
@@ -35,7 +38,6 @@ export { default as paragraph_with_no_marks } from './paragraph_with_no_marks';
35
38
  export { default as paragraph_with_alignment } from './paragraph_with_alignment';
36
39
  export { default as paragraph_with_indentation } from './paragraph_with_indentation';
37
40
  export { default as bulletList } from './bulletList';
38
- export { default as media } from './media';
39
41
  export { default as caption } from './caption';
40
42
  export { default as mediaSingle } from './mediaSingle';
41
43
  export { default as mediaSingle_full } from './mediaSingle_full';
@@ -58,8 +60,8 @@ export { default as decisionList } from './decisionList';
58
60
  export { default as taskItem } from './taskItem';
59
61
  export { default as taskList } from './taskList';
60
62
  export { default as extension } from './extension';
61
- export { default as extension_with_no_marks } from './extension_with_no_marks';
62
63
  export { default as extension_with_marks } from './extension_with_marks';
64
+ export { default as extension_with_experimental_marks } from './extension_with_experimental_marks';
63
65
  export { default as embedCard } from './embedCard';
64
66
  export { default as nestedExpand_content } from './nestedExpand_content';
65
67
  export { default as nestedExpand } from './nestedExpand';
@@ -74,9 +76,11 @@ export { default as expand } from './expand';
74
76
  export { default as expand_with_no_mark } from './expand_with_no_mark';
75
77
  export { default as expand_with_breakout_mark } from './expand_with_breakout_mark';
76
78
  export { default as bodiedExtension } from './bodiedExtension';
77
- export { default as bodiedExtension_with_no_marks } from './bodiedExtension_with_no_marks';
78
79
  export { default as bodiedExtension_with_marks } from './bodiedExtension_with_marks';
80
+ export { default as bodiedExtension_with_experimental_marks } from './bodiedExtension_with_experimental_marks';
79
81
  export { default as block_content } from './block_content';
80
82
  export { default as layoutColumn } from './layoutColumn';
81
83
  export { default as layoutSection } from './layoutSection';
84
+ export { default as layoutSection_full } from './layoutSection_full';
85
+ export { default as layoutSection_with_single_column } from './layoutSection_with_single_column';
82
86
  export { default as doc } from './doc';
@@ -1 +1 @@
1
- export default ['hardBreak', 'mention', 'emoji', 'inlineExtension_with_no_marks', 'inlineExtension_with_marks', 'date', 'placeholder', 'inlineCard', 'status', 'formatted_text_inline', 'code_inline'];
1
+ export default ['hardBreak', 'mention', 'emoji', 'inlineExtension_with_marks', 'inlineExtension_with_experimental_marks', 'date', 'placeholder', 'inlineCard', 'status', 'mediaInline', 'formatted_text_inline', 'code_inline'];
@@ -7,7 +7,8 @@ export default {
7
7
  attrs: [{
8
8
  props: {
9
9
  url: {
10
- type: 'string'
10
+ type: 'string',
11
+ validatorFn: 'safeUrl'
11
12
  }
12
13
  }
13
14
  }, {
@@ -2,8 +2,7 @@ export default ['inlineExtension', {
2
2
  props: {
3
3
  marks: {
4
4
  type: 'array',
5
- items: [],
6
- maxItems: 0,
5
+ items: ['fragment'],
7
6
  optional: true
8
7
  }
9
8
  }
@@ -4,17 +4,14 @@ export default {
4
4
  type: 'enum',
5
5
  values: ['layoutSection']
6
6
  },
7
- content: {
8
- type: 'array',
9
- items: ['layoutColumn'],
10
- minItems: 2,
11
- maxItems: 3,
12
- allowUnsupportedBlock: true
13
- },
14
7
  marks: {
15
8
  type: 'array',
16
9
  items: ['breakout'],
17
10
  optional: true
11
+ },
12
+ content: {
13
+ type: 'array',
14
+ items: ['layoutColumn']
18
15
  }
19
16
  }
20
17
  };
@@ -0,0 +1,20 @@
1
+ export default ['layoutSection', {
2
+ props: {
3
+ type: {
4
+ type: 'enum',
5
+ values: ['layoutSection']
6
+ },
7
+ marks: {
8
+ type: 'array',
9
+ items: ['breakout'],
10
+ optional: true
11
+ },
12
+ content: {
13
+ type: 'array',
14
+ items: ['layoutColumn'],
15
+ minItems: 2,
16
+ maxItems: 3,
17
+ allowUnsupportedBlock: true
18
+ }
19
+ }
20
+ }];
@@ -0,0 +1,20 @@
1
+ export default ['layoutSection', {
2
+ props: {
3
+ type: {
4
+ type: 'enum',
5
+ values: ['layoutSection']
6
+ },
7
+ marks: {
8
+ type: 'array',
9
+ items: ['breakout'],
10
+ optional: true
11
+ },
12
+ content: {
13
+ type: 'array',
14
+ items: ['layoutColumn'],
15
+ minItems: 1,
16
+ maxItems: 3,
17
+ allowUnsupportedBlock: true
18
+ }
19
+ }
20
+ }];
@@ -7,7 +7,8 @@ export default {
7
7
  attrs: {
8
8
  props: {
9
9
  href: {
10
- type: 'string'
10
+ type: 'string',
11
+ validatorFn: 'safeUrl'
11
12
  },
12
13
  title: {
13
14
  type: 'string',
@@ -0,0 +1,45 @@
1
+ export default {
2
+ props: {
3
+ type: {
4
+ type: 'enum',
5
+ values: ['mediaInline']
6
+ },
7
+ attrs: {
8
+ props: {
9
+ data: {
10
+ type: 'object',
11
+ optional: true
12
+ },
13
+ id: {
14
+ type: 'string',
15
+ minLength: 1
16
+ },
17
+ collection: {
18
+ type: 'string'
19
+ },
20
+ height: {
21
+ type: 'number',
22
+ optional: true
23
+ },
24
+ width: {
25
+ type: 'number',
26
+ optional: true
27
+ },
28
+ occurrenceKey: {
29
+ type: 'string',
30
+ minLength: 1,
31
+ optional: true
32
+ },
33
+ alt: {
34
+ type: 'string',
35
+ optional: true
36
+ }
37
+ }
38
+ },
39
+ marks: {
40
+ type: 'array',
41
+ items: ['link'],
42
+ optional: true
43
+ }
44
+ }
45
+ };
@@ -1 +1 @@
1
- export default ['blockCard', 'paragraph_with_no_marks', 'bulletList', 'mediaSingle_full', 'mediaSingle_caption', 'codeBlock_with_no_marks', 'orderedList', 'heading_with_no_marks', 'panel', 'blockquote', 'rule', 'mediaGroup', 'decisionList', 'taskList', 'extension_with_no_marks', 'extension_with_marks', 'embedCard', 'table'];
1
+ export default ['blockCard', 'paragraph_with_no_marks', 'bulletList', 'mediaSingle_full', 'mediaSingle_caption', 'codeBlock_with_no_marks', 'orderedList', 'heading_with_no_marks', 'panel', 'blockquote', 'rule', 'mediaGroup', 'decisionList', 'taskList', 'extension_with_marks', 'extension_with_experimental_marks', 'embedCard', 'table'];
@@ -1,6 +1,6 @@
1
1
  export default {
2
2
  type: 'array',
3
- items: [['blockCard', 'paragraph_with_no_marks', 'paragraph_with_alignment', 'bulletList', 'mediaSingle_full', 'mediaSingle_caption', 'codeBlock_with_no_marks', 'orderedList', 'heading_with_no_marks', 'heading_with_alignment', 'heading_with_indentation', 'panel', 'blockquote', 'rule', 'mediaGroup', 'decisionList', 'taskList', 'extension_with_no_marks', 'extension_with_marks', 'embedCard', 'nestedExpand_with_no_marks']],
3
+ items: [['blockCard', 'paragraph_with_no_marks', 'paragraph_with_alignment', 'bulletList', 'mediaSingle_full', 'mediaSingle_caption', 'codeBlock_with_no_marks', 'orderedList', 'heading_with_no_marks', 'heading_with_alignment', 'heading_with_indentation', 'panel', 'blockquote', 'rule', 'mediaGroup', 'decisionList', 'taskList', 'extension_with_marks', 'extension_with_experimental_marks', 'embedCard', 'nestedExpand_with_no_marks']],
4
4
  minItems: 1,
5
5
  allowUnsupportedBlock: true
6
6
  };