@atlaskit/adf-utils 19.11.0 → 19.13.0

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 (37) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/afm-post-office/tsconfig.json +1 -1
  3. package/dist/cjs/empty-adf.js +3 -0
  4. package/dist/cjs/transforms/nested-table-transform.js +34 -24
  5. package/dist/cjs/transforms.js +6 -0
  6. package/dist/cjs/validator/rules.js +1 -0
  7. package/dist/es2019/builders.js +2 -0
  8. package/dist/es2019/empty-adf.js +3 -0
  9. package/dist/es2019/scrub.js +3 -0
  10. package/dist/es2019/transforms/nested-table-transform.js +30 -23
  11. package/dist/es2019/transforms.js +5 -1
  12. package/dist/es2019/traverse.js +3 -0
  13. package/dist/es2019/validator/rules.js +1 -0
  14. package/dist/es2019/validator/specs/index.js +1 -0
  15. package/dist/es2019/validator.js +3 -0
  16. package/dist/esm/builders.js +2 -0
  17. package/dist/esm/empty-adf.js +3 -0
  18. package/dist/esm/scrub.js +3 -0
  19. package/dist/esm/transforms/nested-table-transform.js +32 -23
  20. package/dist/esm/transforms.js +5 -1
  21. package/dist/esm/traverse.js +3 -0
  22. package/dist/esm/validator/rules.js +1 -0
  23. package/dist/esm/validator/specs/index.js +1 -0
  24. package/dist/esm/validator.js +3 -0
  25. package/dist/types/empty-adf.d.ts +1 -1
  26. package/dist/types/transforms/nested-table-transform.d.ts +1 -0
  27. package/dist/types/transforms.d.ts +1 -0
  28. package/dist/types-ts4.5/empty-adf.d.ts +1 -1
  29. package/dist/types-ts4.5/transforms/nested-table-transform.d.ts +1 -0
  30. package/dist/types-ts4.5/transforms.d.ts +1 -0
  31. package/package.json +1 -1
  32. package/tsconfig.json +14 -14
  33. package/dist/cjs/validator/entry.js +0 -1
  34. package/dist/es2019/validator/entry.js +0 -0
  35. package/dist/esm/validator/entry.js +0 -0
  36. package/dist/types/validator/entry.d.ts +0 -1
  37. package/dist/types-ts4.5/validator/entry.d.ts +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,72 @@
1
1
  # @atlaskit/adf-utils
2
2
 
3
+ ## 19.13.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#165049](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/165049)
8
+ [`febce5463e07f`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/febce5463e07f) -
9
+ Enable no-re-export rule for a subset of editor packages
10
+
11
+ ### Major
12
+
13
+ #### @atlaskit/collab-provider
14
+
15
+ @atlaskit/collab-provider doesn't export following types anymore:
16
+
17
+ ```
18
+ CollabParticipant,
19
+ CollabEventInitData,
20
+ CollabEventRemoteData,
21
+ CollabEventConnectionData,
22
+ CollabEventConnectingData,
23
+ CollabEventPresenceData,
24
+ ResolvedEditorState,
25
+ CollabConnectedPayload,
26
+ CollabConnectingPayload,
27
+ CollabDisconnectedPayload,
28
+ CollabInitPayload,
29
+ CollabDataPayload,
30
+ CollabTelepointerPayload,
31
+ CollabPresencePayload,
32
+ CollabMetadataPayload,
33
+ CollabLocalStepsPayload,
34
+ CollabCommitStatusEventPayload,
35
+ CollabPermissionEventPayload,
36
+ UserPermitType,
37
+ CollabEvents,
38
+ Metadata,
39
+ StepJson,
40
+ CollabEventTelepointerData,
41
+ CollabSendableSelection,
42
+ CollabEditProvider,
43
+ NewCollabSyncUpErrorAttributes,
44
+ SyncUpErrorFunction,
45
+ CollabEventLocalStepData,
46
+ ```
47
+
48
+ Import them from `@atlaskit/editor-common/collab`.
49
+
50
+ #### @atlaskit/editor-common
51
+
52
+ `@atlaskit/editor-common/provider-factory` doesn't export following types anymore:
53
+
54
+ ```
55
+ CardAdf,
56
+ DatasourceAdf,
57
+ ```
58
+
59
+ Import them from `@atlaskit/smart-card`.
60
+
61
+ ## 19.12.0
62
+
63
+ ### Minor Changes
64
+
65
+ - [#156454](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/156454)
66
+ [`8dfa896f600a2`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/8dfa896f600a2) -
67
+ [ED-25499] this change adds a transformer for converting nested tables to extensions in outgoing
68
+ documents
69
+
3
70
  ## 19.11.0
4
71
 
5
72
  ### Minor Changes
@@ -3,7 +3,7 @@
3
3
  "compilerOptions": {
4
4
  "declaration": true,
5
5
  "target": "es5",
6
- "outDir": "../../../../../tsDist/@atlaskit__adf-utils/app",
6
+ "outDir": "../../../../../post-office/tsDist/@atlaskit__adf-utils/app",
7
7
  "rootDir": "../",
8
8
  "composite": true
9
9
  },
@@ -11,6 +11,9 @@ Object.defineProperty(exports, "isEmpty", {
11
11
  }
12
12
  });
13
13
  var _helpers = require("./transforms/helpers");
14
+ // Disable no-re-export rule for entry point files
15
+ /* eslint-disable @atlaskit/editor/no-re-export */
16
+
14
17
  // https://product-fabric.atlassian.net/wiki/spaces/ADF/pages/881362244/ADF+Change+42+Uniform+Empty+ADF+Representation
15
18
  var getEmptyADF = exports.getEmptyADF = function getEmptyADF() {
16
19
  return {
@@ -1,10 +1,15 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
- exports.transformNestedTablesIncomingDocument = void 0;
7
+ exports.transformNestedTablesIncomingDocument = exports.transformNestedTableNodeOutgoingDocument = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
7
9
  var _traverse = require("../traverse/traverse");
10
+ var _builders = require("../builders");
11
+ 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; }
12
+ 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; }
8
13
  var NESTED_TABLE_EXTENSION_TYPE = 'com.atlassian.nesting',
9
14
  NESTED_TABLE_EXTENSION_KEY = 'nested-table';
10
15
  var isNestedTableExtension = function isNestedTableExtension(extensionNode) {
@@ -12,42 +17,25 @@ var isNestedTableExtension = function isNestedTableExtension(extensionNode) {
12
17
  return ((_extensionNode$attrs = extensionNode.attrs) === null || _extensionNode$attrs === void 0 ? void 0 : _extensionNode$attrs.extensionType) === NESTED_TABLE_EXTENSION_TYPE && ((_extensionNode$attrs2 = extensionNode.attrs) === null || _extensionNode$attrs2 === void 0 ? void 0 : _extensionNode$attrs2.extensionKey) === NESTED_TABLE_EXTENSION_KEY;
13
18
  };
14
19
  var transformNestedTableExtension = function transformNestedTableExtension(nestedTableExtension) {
15
- var _nestedTableExtension, _transformedNestedTab;
16
- // No content - nothing to transform
20
+ var _nestedTableExtension;
21
+ // No content - drop the extension node
17
22
  if (!((_nestedTableExtension = nestedTableExtension.attrs) !== null && _nestedTableExtension !== void 0 && (_nestedTableExtension = _nestedTableExtension.parameters) !== null && _nestedTableExtension !== void 0 && (_nestedTableExtension = _nestedTableExtension.macroParams) !== null && _nestedTableExtension !== void 0 && _nestedTableExtension.nestedContent)) {
18
- return {
19
- adf: nestedTableExtension,
20
- isTransformed: false
21
- };
23
+ return false;
22
24
  }
23
- var transformedNestedTable;
24
25
  try {
25
26
  var _nestedTableExtension2;
26
- transformedNestedTable = JSON.parse((_nestedTableExtension2 = nestedTableExtension.attrs) === null || _nestedTableExtension2 === void 0 || (_nestedTableExtension2 = _nestedTableExtension2.parameters) === null || _nestedTableExtension2 === void 0 || (_nestedTableExtension2 = _nestedTableExtension2.macroParams) === null || _nestedTableExtension2 === void 0 ? void 0 : _nestedTableExtension2.nestedContent.value);
27
+ return JSON.parse((_nestedTableExtension2 = nestedTableExtension.attrs) === null || _nestedTableExtension2 === void 0 || (_nestedTableExtension2 = _nestedTableExtension2.parameters) === null || _nestedTableExtension2 === void 0 || (_nestedTableExtension2 = _nestedTableExtension2.macroParams) === null || _nestedTableExtension2 === void 0 ? void 0 : _nestedTableExtension2.nestedContent.value);
27
28
  } catch (e) {
28
29
  throw new Error('Failed to parse nested table content');
29
30
  }
30
- if (!Array.isArray(transformedNestedTable) && ((_transformedNestedTab = transformedNestedTable) === null || _transformedNestedTab === void 0 ? void 0 : _transformedNestedTab.type) === 'table') {
31
- return {
32
- adf: transformedNestedTable,
33
- isTransformed: true
34
- };
35
- } else {
36
- throw new Error('Invalid nested table content');
37
- }
38
31
  };
39
32
  var transformNestedTablesIncomingDocument = exports.transformNestedTablesIncomingDocument = function transformNestedTablesIncomingDocument(adf) {
40
33
  var isTransformed = false;
41
34
  var transformedAdf = (0, _traverse.traverse)(adf, {
42
35
  extension: function extension(node) {
43
36
  if (isNestedTableExtension(node)) {
44
- var transformResult = transformNestedTableExtension(node);
45
- if (transformResult.isTransformed) {
46
- isTransformed = true;
47
- return transformResult.adf;
48
- } else {
49
- return false;
50
- }
37
+ isTransformed = true;
38
+ return transformNestedTableExtension(node);
51
39
  }
52
40
  }
53
41
  });
@@ -55,4 +43,26 @@ var transformNestedTablesIncomingDocument = exports.transformNestedTablesIncomin
55
43
  transformedAdf: transformedAdf,
56
44
  isTransformed: isTransformed
57
45
  };
46
+ };
47
+ var transformNestedTableNodeOutgoingDocument = exports.transformNestedTableNodeOutgoingDocument = function transformNestedTableNodeOutgoingDocument(tableCellNode) {
48
+ var _tableCellNode$conten;
49
+ return _objectSpread(_objectSpread({}, tableCellNode), {}, {
50
+ content: (_tableCellNode$conten = tableCellNode.content) === null || _tableCellNode$conten === void 0 ? void 0 : _tableCellNode$conten.map(function (childNode) {
51
+ // wrap nested table in an extension node
52
+ if ((childNode === null || childNode === void 0 ? void 0 : childNode.type) === 'table') {
53
+ return (0, _builders.extension)({
54
+ extensionType: NESTED_TABLE_EXTENSION_TYPE,
55
+ extensionKey: NESTED_TABLE_EXTENSION_KEY,
56
+ parameters: {
57
+ macroParams: {
58
+ nestedContent: {
59
+ value: JSON.stringify(childNode)
60
+ }
61
+ }
62
+ }
63
+ });
64
+ }
65
+ return childNode;
66
+ })
67
+ });
58
68
  };
@@ -27,6 +27,12 @@ Object.defineProperty(exports, "transformMediaLinkMarks", {
27
27
  return _mediaLinkTransform.transformMediaLinkMarks;
28
28
  }
29
29
  });
30
+ Object.defineProperty(exports, "transformNestedTableNodeOutgoingDocument", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _nestedTableTransform.transformNestedTableNodeOutgoingDocument;
34
+ }
35
+ });
30
36
  Object.defineProperty(exports, "transformNestedTablesIncomingDocument", {
31
37
  enumerable: true,
32
38
  get: function get() {
@@ -6,5 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.validatorFnMap = void 0;
7
7
  var _url = require("@atlaskit/adf-schema/url");
8
8
  var validatorFnMap = exports.validatorFnMap = {
9
+ // eslint-disable-next-line @atlaskit/editor/no-re-export
9
10
  safeUrl: _url.isSafeUrl
10
11
  };
@@ -1,3 +1,5 @@
1
+ // Disable no-re-export rule for entry point files
2
+ /* eslint-disable @atlaskit/editor/no-re-export */
1
3
  // Marks Builders
2
4
 
3
5
  export { breakout } from './builders/marks/breakout';
@@ -1,3 +1,6 @@
1
+ // Disable no-re-export rule for entry point files
2
+ /* eslint-disable @atlaskit/editor/no-re-export */
3
+
1
4
  // https://product-fabric.atlassian.net/wiki/spaces/ADF/pages/881362244/ADF+Change+42+Uniform+Empty+ADF+Representation
2
5
  export const getEmptyADF = () => ({
3
6
  type: 'doc',
@@ -1 +1,4 @@
1
+ // Disable no-re-export rule for entry point files
2
+ /* eslint-disable @atlaskit/editor/no-re-export */
3
+
1
4
  export { default as scrubAdf } from './scrub/scrub-adf';
@@ -1,4 +1,5 @@
1
1
  import { traverse } from '../traverse/traverse';
2
+ import { extension } from '../builders';
2
3
  const NESTED_TABLE_EXTENSION_TYPE = 'com.atlassian.nesting',
3
4
  NESTED_TABLE_EXTENSION_KEY = 'nested-table';
4
5
  const isNestedTableExtension = extensionNode => {
@@ -6,42 +7,25 @@ const isNestedTableExtension = extensionNode => {
6
7
  return ((_extensionNode$attrs = extensionNode.attrs) === null || _extensionNode$attrs === void 0 ? void 0 : _extensionNode$attrs.extensionType) === NESTED_TABLE_EXTENSION_TYPE && ((_extensionNode$attrs2 = extensionNode.attrs) === null || _extensionNode$attrs2 === void 0 ? void 0 : _extensionNode$attrs2.extensionKey) === NESTED_TABLE_EXTENSION_KEY;
7
8
  };
8
9
  const transformNestedTableExtension = nestedTableExtension => {
9
- var _nestedTableExtension, _nestedTableExtension2, _nestedTableExtension3, _transformedNestedTab;
10
- // No content - nothing to transform
10
+ var _nestedTableExtension, _nestedTableExtension2, _nestedTableExtension3;
11
+ // No content - drop the extension node
11
12
  if (!((_nestedTableExtension = nestedTableExtension.attrs) !== null && _nestedTableExtension !== void 0 && (_nestedTableExtension2 = _nestedTableExtension.parameters) !== null && _nestedTableExtension2 !== void 0 && (_nestedTableExtension3 = _nestedTableExtension2.macroParams) !== null && _nestedTableExtension3 !== void 0 && _nestedTableExtension3.nestedContent)) {
12
- return {
13
- adf: nestedTableExtension,
14
- isTransformed: false
15
- };
13
+ return false;
16
14
  }
17
- let transformedNestedTable;
18
15
  try {
19
16
  var _nestedTableExtension4, _nestedTableExtension5, _nestedTableExtension6;
20
- transformedNestedTable = JSON.parse((_nestedTableExtension4 = nestedTableExtension.attrs) === null || _nestedTableExtension4 === void 0 ? void 0 : (_nestedTableExtension5 = _nestedTableExtension4.parameters) === null || _nestedTableExtension5 === void 0 ? void 0 : (_nestedTableExtension6 = _nestedTableExtension5.macroParams) === null || _nestedTableExtension6 === void 0 ? void 0 : _nestedTableExtension6.nestedContent.value);
17
+ return JSON.parse((_nestedTableExtension4 = nestedTableExtension.attrs) === null || _nestedTableExtension4 === void 0 ? void 0 : (_nestedTableExtension5 = _nestedTableExtension4.parameters) === null || _nestedTableExtension5 === void 0 ? void 0 : (_nestedTableExtension6 = _nestedTableExtension5.macroParams) === null || _nestedTableExtension6 === void 0 ? void 0 : _nestedTableExtension6.nestedContent.value);
21
18
  } catch (e) {
22
19
  throw new Error('Failed to parse nested table content');
23
20
  }
24
- if (!Array.isArray(transformedNestedTable) && ((_transformedNestedTab = transformedNestedTable) === null || _transformedNestedTab === void 0 ? void 0 : _transformedNestedTab.type) === 'table') {
25
- return {
26
- adf: transformedNestedTable,
27
- isTransformed: true
28
- };
29
- } else {
30
- throw new Error('Invalid nested table content');
31
- }
32
21
  };
33
22
  export const transformNestedTablesIncomingDocument = adf => {
34
23
  let isTransformed = false;
35
24
  const transformedAdf = traverse(adf, {
36
25
  extension: node => {
37
26
  if (isNestedTableExtension(node)) {
38
- const transformResult = transformNestedTableExtension(node);
39
- if (transformResult.isTransformed) {
40
- isTransformed = true;
41
- return transformResult.adf;
42
- } else {
43
- return false;
44
- }
27
+ isTransformed = true;
28
+ return transformNestedTableExtension(node);
45
29
  }
46
30
  }
47
31
  });
@@ -49,4 +33,27 @@ export const transformNestedTablesIncomingDocument = adf => {
49
33
  transformedAdf,
50
34
  isTransformed
51
35
  };
36
+ };
37
+ export const transformNestedTableNodeOutgoingDocument = tableCellNode => {
38
+ var _tableCellNode$conten;
39
+ return {
40
+ ...tableCellNode,
41
+ content: (_tableCellNode$conten = tableCellNode.content) === null || _tableCellNode$conten === void 0 ? void 0 : _tableCellNode$conten.map(childNode => {
42
+ // wrap nested table in an extension node
43
+ if ((childNode === null || childNode === void 0 ? void 0 : childNode.type) === 'table') {
44
+ return extension({
45
+ extensionType: NESTED_TABLE_EXTENSION_TYPE,
46
+ extensionKey: NESTED_TABLE_EXTENSION_KEY,
47
+ parameters: {
48
+ macroParams: {
49
+ nestedContent: {
50
+ value: JSON.stringify(childNode)
51
+ }
52
+ }
53
+ }
54
+ });
55
+ }
56
+ return childNode;
57
+ })
58
+ };
52
59
  };
@@ -1,7 +1,11 @@
1
+ // Disable no-re-export rule for entry point files
2
+ /* eslint-disable @atlaskit/editor/no-re-export */
3
+
1
4
  export { transformMediaLinkMarks } from './transforms/media-link-transform';
2
5
  export { transformTextLinkCodeMarks } from './transforms/text-link-code-transform';
3
6
  export { transformDedupeMarks } from './transforms/dedupe-marks-transform';
4
7
  export { transformNodesMissingContent } from './transforms/nodes-missing-content-transform';
5
8
  export { transformIndentationMarks } from './transforms/indentation-marks-transform';
6
9
  export { transformInvalidMediaContent } from './transforms/invalid-media-content-transform';
7
- export { transformNestedTablesIncomingDocument } from './transforms/nested-table-transform';
10
+ export { transformNestedTablesIncomingDocument } from './transforms/nested-table-transform';
11
+ export { transformNestedTableNodeOutgoingDocument } from './transforms/nested-table-transform';
@@ -1,3 +1,6 @@
1
+ // Disable no-re-export rule for entry point files
2
+ /* eslint-disable @atlaskit/editor/no-re-export */
3
+
1
4
  export { traverse } from './traverse/traverse';
2
5
  export { map } from './traverse/map';
3
6
  export { reduce } from './traverse/reduce';
@@ -1,4 +1,5 @@
1
1
  import { isSafeUrl } from '@atlaskit/adf-schema/url';
2
2
  export const validatorFnMap = {
3
+ // eslint-disable-next-line @atlaskit/editor/no-re-export
3
4
  safeUrl: isSafeUrl
4
5
  };
@@ -1,3 +1,4 @@
1
+ /* eslint-disable @atlaskit/editor/no-re-export */
1
2
  export { alignment, annotation, backgroundColor, blockCard, block_content, blockquote, bodiedExtension, bodiedExtension_with_marks, border, breakout, bulletList, caption, code, codeBlock, codeBlock_with_marks, codeBlock_with_no_marks, confluenceInlineComment, dataConsumer, date, decisionItem, decisionList, doc, em, embedCard, emoji, expand, expand_with_breakout_mark, expand_with_no_mark, extension, extensionFrame, extension_with_marks, fragment, hardBreak, heading, heading_with_alignment, heading_with_indentation, heading_with_no_marks, indentation, inlineCard, inlineExtension, inlineExtension_with_marks, inline_content, layoutColumn, layoutSection, layoutSection_full, layoutSection_with_single_column, link, listItem, media, mediaGroup, mediaInline, mediaSingle, mediaSingle_caption, mediaSingle_full, mention, multiBodiedExtension, nestedExpand, nestedExpand_content, nestedExpand_with_no_marks, non_nestable_block_content, orderedList, panel, panel_with_nested_blockquote,
2
3
  // Stage-0
3
4
  paragraph, paragraph_with_alignment, paragraph_with_indentation, paragraph_with_no_marks, placeholder, rule, status, strike, strong, subsup, table, tableCell, tableHeader, tableRow, taskItem, taskList, text, textColor, text_code_inline, text_formatted, text_link_inline, underline } from '@atlaskit/adf-schema/schema-validator';
@@ -1 +1,4 @@
1
+ // Disable no-re-export rule for entry point files
2
+ /* eslint-disable @atlaskit/editor/no-re-export */
3
+
1
4
  export { validateAttrs, validator } from './validator/validator';
@@ -1,3 +1,5 @@
1
+ // Disable no-re-export rule for entry point files
2
+ /* eslint-disable @atlaskit/editor/no-re-export */
1
3
  // Marks Builders
2
4
 
3
5
  export { breakout } from './builders/marks/breakout';
@@ -1,3 +1,6 @@
1
+ // Disable no-re-export rule for entry point files
2
+ /* eslint-disable @atlaskit/editor/no-re-export */
3
+
1
4
  // https://product-fabric.atlassian.net/wiki/spaces/ADF/pages/881362244/ADF+Change+42+Uniform+Empty+ADF+Representation
2
5
  export var getEmptyADF = function getEmptyADF() {
3
6
  return {
package/dist/esm/scrub.js CHANGED
@@ -1 +1,4 @@
1
+ // Disable no-re-export rule for entry point files
2
+ /* eslint-disable @atlaskit/editor/no-re-export */
3
+
1
4
  export { default as scrubAdf } from './scrub/scrub-adf';
@@ -1,4 +1,8 @@
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; }
1
4
  import { traverse } from '../traverse/traverse';
5
+ import { extension } from '../builders';
2
6
  var NESTED_TABLE_EXTENSION_TYPE = 'com.atlassian.nesting',
3
7
  NESTED_TABLE_EXTENSION_KEY = 'nested-table';
4
8
  var isNestedTableExtension = function isNestedTableExtension(extensionNode) {
@@ -6,42 +10,25 @@ var isNestedTableExtension = function isNestedTableExtension(extensionNode) {
6
10
  return ((_extensionNode$attrs = extensionNode.attrs) === null || _extensionNode$attrs === void 0 ? void 0 : _extensionNode$attrs.extensionType) === NESTED_TABLE_EXTENSION_TYPE && ((_extensionNode$attrs2 = extensionNode.attrs) === null || _extensionNode$attrs2 === void 0 ? void 0 : _extensionNode$attrs2.extensionKey) === NESTED_TABLE_EXTENSION_KEY;
7
11
  };
8
12
  var transformNestedTableExtension = function transformNestedTableExtension(nestedTableExtension) {
9
- var _nestedTableExtension, _transformedNestedTab;
10
- // No content - nothing to transform
13
+ var _nestedTableExtension;
14
+ // No content - drop the extension node
11
15
  if (!((_nestedTableExtension = nestedTableExtension.attrs) !== null && _nestedTableExtension !== void 0 && (_nestedTableExtension = _nestedTableExtension.parameters) !== null && _nestedTableExtension !== void 0 && (_nestedTableExtension = _nestedTableExtension.macroParams) !== null && _nestedTableExtension !== void 0 && _nestedTableExtension.nestedContent)) {
12
- return {
13
- adf: nestedTableExtension,
14
- isTransformed: false
15
- };
16
+ return false;
16
17
  }
17
- var transformedNestedTable;
18
18
  try {
19
19
  var _nestedTableExtension2;
20
- transformedNestedTable = JSON.parse((_nestedTableExtension2 = nestedTableExtension.attrs) === null || _nestedTableExtension2 === void 0 || (_nestedTableExtension2 = _nestedTableExtension2.parameters) === null || _nestedTableExtension2 === void 0 || (_nestedTableExtension2 = _nestedTableExtension2.macroParams) === null || _nestedTableExtension2 === void 0 ? void 0 : _nestedTableExtension2.nestedContent.value);
20
+ return JSON.parse((_nestedTableExtension2 = nestedTableExtension.attrs) === null || _nestedTableExtension2 === void 0 || (_nestedTableExtension2 = _nestedTableExtension2.parameters) === null || _nestedTableExtension2 === void 0 || (_nestedTableExtension2 = _nestedTableExtension2.macroParams) === null || _nestedTableExtension2 === void 0 ? void 0 : _nestedTableExtension2.nestedContent.value);
21
21
  } catch (e) {
22
22
  throw new Error('Failed to parse nested table content');
23
23
  }
24
- if (!Array.isArray(transformedNestedTable) && ((_transformedNestedTab = transformedNestedTable) === null || _transformedNestedTab === void 0 ? void 0 : _transformedNestedTab.type) === 'table') {
25
- return {
26
- adf: transformedNestedTable,
27
- isTransformed: true
28
- };
29
- } else {
30
- throw new Error('Invalid nested table content');
31
- }
32
24
  };
33
25
  export var transformNestedTablesIncomingDocument = function transformNestedTablesIncomingDocument(adf) {
34
26
  var isTransformed = false;
35
27
  var transformedAdf = traverse(adf, {
36
28
  extension: function extension(node) {
37
29
  if (isNestedTableExtension(node)) {
38
- var transformResult = transformNestedTableExtension(node);
39
- if (transformResult.isTransformed) {
40
- isTransformed = true;
41
- return transformResult.adf;
42
- } else {
43
- return false;
44
- }
30
+ isTransformed = true;
31
+ return transformNestedTableExtension(node);
45
32
  }
46
33
  }
47
34
  });
@@ -49,4 +36,26 @@ export var transformNestedTablesIncomingDocument = function transformNestedTable
49
36
  transformedAdf: transformedAdf,
50
37
  isTransformed: isTransformed
51
38
  };
39
+ };
40
+ export var transformNestedTableNodeOutgoingDocument = function transformNestedTableNodeOutgoingDocument(tableCellNode) {
41
+ var _tableCellNode$conten;
42
+ return _objectSpread(_objectSpread({}, tableCellNode), {}, {
43
+ content: (_tableCellNode$conten = tableCellNode.content) === null || _tableCellNode$conten === void 0 ? void 0 : _tableCellNode$conten.map(function (childNode) {
44
+ // wrap nested table in an extension node
45
+ if ((childNode === null || childNode === void 0 ? void 0 : childNode.type) === 'table') {
46
+ return extension({
47
+ extensionType: NESTED_TABLE_EXTENSION_TYPE,
48
+ extensionKey: NESTED_TABLE_EXTENSION_KEY,
49
+ parameters: {
50
+ macroParams: {
51
+ nestedContent: {
52
+ value: JSON.stringify(childNode)
53
+ }
54
+ }
55
+ }
56
+ });
57
+ }
58
+ return childNode;
59
+ })
60
+ });
52
61
  };
@@ -1,7 +1,11 @@
1
+ // Disable no-re-export rule for entry point files
2
+ /* eslint-disable @atlaskit/editor/no-re-export */
3
+
1
4
  export { transformMediaLinkMarks } from './transforms/media-link-transform';
2
5
  export { transformTextLinkCodeMarks } from './transforms/text-link-code-transform';
3
6
  export { transformDedupeMarks } from './transforms/dedupe-marks-transform';
4
7
  export { transformNodesMissingContent } from './transforms/nodes-missing-content-transform';
5
8
  export { transformIndentationMarks } from './transforms/indentation-marks-transform';
6
9
  export { transformInvalidMediaContent } from './transforms/invalid-media-content-transform';
7
- export { transformNestedTablesIncomingDocument } from './transforms/nested-table-transform';
10
+ export { transformNestedTablesIncomingDocument } from './transforms/nested-table-transform';
11
+ export { transformNestedTableNodeOutgoingDocument } from './transforms/nested-table-transform';
@@ -1,3 +1,6 @@
1
+ // Disable no-re-export rule for entry point files
2
+ /* eslint-disable @atlaskit/editor/no-re-export */
3
+
1
4
  export { traverse } from './traverse/traverse';
2
5
  export { map } from './traverse/map';
3
6
  export { reduce } from './traverse/reduce';
@@ -1,4 +1,5 @@
1
1
  import { isSafeUrl } from '@atlaskit/adf-schema/url';
2
2
  export var validatorFnMap = {
3
+ // eslint-disable-next-line @atlaskit/editor/no-re-export
3
4
  safeUrl: isSafeUrl
4
5
  };
@@ -1,3 +1,4 @@
1
+ /* eslint-disable @atlaskit/editor/no-re-export */
1
2
  export { alignment, annotation, backgroundColor, blockCard, block_content, blockquote, bodiedExtension, bodiedExtension_with_marks, border, breakout, bulletList, caption, code, codeBlock, codeBlock_with_marks, codeBlock_with_no_marks, confluenceInlineComment, dataConsumer, date, decisionItem, decisionList, doc, em, embedCard, emoji, expand, expand_with_breakout_mark, expand_with_no_mark, extension, extensionFrame, extension_with_marks, fragment, hardBreak, heading, heading_with_alignment, heading_with_indentation, heading_with_no_marks, indentation, inlineCard, inlineExtension, inlineExtension_with_marks, inline_content, layoutColumn, layoutSection, layoutSection_full, layoutSection_with_single_column, link, listItem, media, mediaGroup, mediaInline, mediaSingle, mediaSingle_caption, mediaSingle_full, mention, multiBodiedExtension, nestedExpand, nestedExpand_content, nestedExpand_with_no_marks, non_nestable_block_content, orderedList, panel, panel_with_nested_blockquote,
2
3
  // Stage-0
3
4
  paragraph, paragraph_with_alignment, paragraph_with_indentation, paragraph_with_no_marks, placeholder, rule, status, strike, strong, subsup, table, tableCell, tableHeader, tableRow, taskItem, taskList, text, textColor, text_code_inline, text_formatted, text_link_inline, underline } from '@atlaskit/adf-schema/schema-validator';
@@ -1 +1,4 @@
1
+ // Disable no-re-export rule for entry point files
2
+ /* eslint-disable @atlaskit/editor/no-re-export */
3
+
1
4
  export { validateAttrs, validator } from './validator/validator';
@@ -1,3 +1,3 @@
1
- import { type DocNode } from './validator/entry';
1
+ import { type DocNode } from '@atlaskit/adf-schema';
2
2
  export declare const getEmptyADF: () => DocNode;
3
3
  export { isEmpty } from './transforms/helpers';
@@ -3,3 +3,4 @@ export declare const transformNestedTablesIncomingDocument: (adf: ADFEntity) =>
3
3
  transformedAdf: ADFEntity;
4
4
  isTransformed: boolean;
5
5
  };
6
+ export declare const transformNestedTableNodeOutgoingDocument: (tableCellNode: ADFEntity) => ADFEntity;
@@ -5,3 +5,4 @@ export { transformNodesMissingContent } from './transforms/nodes-missing-content
5
5
  export { transformIndentationMarks } from './transforms/indentation-marks-transform';
6
6
  export { transformInvalidMediaContent } from './transforms/invalid-media-content-transform';
7
7
  export { transformNestedTablesIncomingDocument } from './transforms/nested-table-transform';
8
+ export { transformNestedTableNodeOutgoingDocument } from './transforms/nested-table-transform';
@@ -1,3 +1,3 @@
1
- import { type DocNode } from './validator/entry';
1
+ import { type DocNode } from '@atlaskit/adf-schema';
2
2
  export declare const getEmptyADF: () => DocNode;
3
3
  export { isEmpty } from './transforms/helpers';
@@ -3,3 +3,4 @@ export declare const transformNestedTablesIncomingDocument: (adf: ADFEntity) =>
3
3
  transformedAdf: ADFEntity;
4
4
  isTransformed: boolean;
5
5
  };
6
+ export declare const transformNestedTableNodeOutgoingDocument: (tableCellNode: ADFEntity) => ADFEntity;
@@ -5,3 +5,4 @@ export { transformNodesMissingContent } from './transforms/nodes-missing-content
5
5
  export { transformIndentationMarks } from './transforms/indentation-marks-transform';
6
6
  export { transformInvalidMediaContent } from './transforms/invalid-media-content-transform';
7
7
  export { transformNestedTablesIncomingDocument } from './transforms/nested-table-transform';
8
+ export { transformNestedTableNodeOutgoingDocument } from './transforms/nested-table-transform';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/adf-utils",
3
- "version": "19.11.0",
3
+ "version": "19.13.0",
4
4
  "description": "Set of utilities to traverse, modify and create ADF documents.",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
package/tsconfig.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
- "extends": "../../../tsconfig.json",
3
- "compilerOptions": {
4
- "baseUrl": "./"
5
- },
6
- "include": [
7
- "./src/**/*.ts",
8
- "./src/**/*.tsx",
9
- "./docs/**/*.ts",
10
- "./docs/**/*.tsx",
11
- "./examples/**/*.ts",
12
- "./examples/**/*.tsx",
13
- "codemods"
14
- ]
15
- }
2
+ "extends": "../../../tsconfig.json",
3
+ "compilerOptions": {
4
+ "baseUrl": "./"
5
+ },
6
+ "include": [
7
+ "./src/**/*.ts",
8
+ "./src/**/*.tsx",
9
+ "./docs/**/*.ts",
10
+ "./docs/**/*.tsx",
11
+ "./examples/**/*.ts",
12
+ "./examples/**/*.tsx",
13
+ "codemods"
14
+ ]
15
+ }
@@ -1 +0,0 @@
1
- "use strict";
File without changes
File without changes
@@ -1 +0,0 @@
1
- export type { DocNode } from '@atlaskit/adf-schema';
@@ -1 +0,0 @@
1
- export type { DocNode } from '@atlaskit/adf-schema';