@atlaskit/adf-utils 16.0.2 → 17.1.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 (54) hide show
  1. package/CHANGELOG.md +84 -0
  2. package/builders/package.json +1 -0
  3. package/codemods/17.0.0-update-imports-to-new-entry-points.ts +175 -0
  4. package/codemods/__tests__/next-update-imports-to-new-entry-points.ts +175 -0
  5. package/codemods/helpers/entry-points.ts +33 -0
  6. package/codemods/types/entry-points.ts +12 -0
  7. package/dist/cjs/index.js +1 -447
  8. package/dist/cjs/scrub/scrub-content.js +5 -5
  9. package/dist/cjs/transforms/dedupe-marks-transform.js +120 -0
  10. package/dist/cjs/transforms/indentation-marks-transform.js +66 -0
  11. package/dist/cjs/{media-link-transform.js → transforms/media-link-transform.js} +1 -1
  12. package/dist/cjs/transforms/nodes-missing-content-transform.js +205 -0
  13. package/dist/cjs/transforms.js +45 -0
  14. package/dist/cjs/validator/specs/block_content.js +1 -1
  15. package/dist/cjs/validator/specs/mediaInline.js +5 -0
  16. package/dist/cjs/version.json +1 -1
  17. package/dist/es2019/index.js +2 -7
  18. package/dist/es2019/transforms/dedupe-marks-transform.js +97 -0
  19. package/dist/es2019/transforms/indentation-marks-transform.js +45 -0
  20. package/dist/es2019/{media-link-transform.js → transforms/media-link-transform.js} +1 -1
  21. package/dist/es2019/transforms/nodes-missing-content-transform.js +175 -0
  22. package/dist/es2019/transforms.js +5 -0
  23. package/dist/es2019/validator/specs/block_content.js +1 -1
  24. package/dist/es2019/validator/specs/mediaInline.js +5 -0
  25. package/dist/es2019/version.json +1 -1
  26. package/dist/esm/index.js +2 -7
  27. package/dist/esm/scrub/scrub-content.js +5 -5
  28. package/dist/esm/transforms/dedupe-marks-transform.js +108 -0
  29. package/dist/esm/transforms/indentation-marks-transform.js +55 -0
  30. package/dist/esm/{media-link-transform.js → transforms/media-link-transform.js} +1 -1
  31. package/dist/esm/transforms/nodes-missing-content-transform.js +192 -0
  32. package/dist/esm/transforms.js +5 -0
  33. package/dist/esm/validator/specs/block_content.js +1 -1
  34. package/dist/esm/validator/specs/mediaInline.js +5 -0
  35. package/dist/esm/version.json +1 -1
  36. package/dist/types/index.d.ts +1 -9
  37. package/dist/types/transforms/dedupe-marks-transform.d.ts +8 -0
  38. package/dist/types/transforms/indentation-marks-transform.d.ts +7 -0
  39. package/dist/types/{media-link-transform.d.ts → transforms/media-link-transform.d.ts} +1 -1
  40. package/dist/types/transforms/nodes-missing-content-transform.d.ts +7 -0
  41. package/dist/types/transforms.d.ts +5 -0
  42. package/dist/types/validator/specs/mediaInline.d.ts +5 -0
  43. package/dist/types/validator.d.ts +0 -1
  44. package/empty-adf/package.json +1 -0
  45. package/package.json +14 -3
  46. package/report.api.md +7 -0
  47. package/scrub/package.json +1 -0
  48. package/transforms/package.json +8 -0
  49. package/traverse/package.json +1 -0
  50. package/tsconfig.json +2 -1
  51. package/types/package.json +8 -0
  52. package/validator/package.json +1 -0
  53. package/validatorTypes/package.json +8 -0
  54. package/media-link-transform/package.json +0 -7
@@ -0,0 +1,192 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+
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
+
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
+
8
+ import { traverse } from '../traverse/traverse';
9
+ import { tableRow, tableCell, paragraph, listItem } from '../builders';
10
+
11
+ var getMaxColumnsCountForTable = function getMaxColumnsCountForTable(tableNode) {
12
+ var _tableNode$content;
13
+
14
+ var colsInRow = 1;
15
+ (_tableNode$content = tableNode.content) === null || _tableNode$content === void 0 ? void 0 : _tableNode$content.forEach(function (childNode) {
16
+ var _childNode$content;
17
+
18
+ if ((childNode === null || childNode === void 0 ? void 0 : childNode.type) === 'tableRow' && typeof ((_childNode$content = childNode.content) === null || _childNode$content === void 0 ? void 0 : _childNode$content.length) === 'number' && childNode.content.length > colsInRow) {
19
+ colsInRow = childNode.content.length;
20
+ }
21
+ });
22
+ return colsInRow;
23
+ };
24
+
25
+ var createValidEmptyContent = function createValidEmptyContent(node) {
26
+ switch (node.type) {
27
+ case 'tableCell':
28
+ return [paragraph()];
29
+
30
+ default:
31
+ return [];
32
+ }
33
+ };
34
+
35
+ var isEmpty = function isEmpty(node) {
36
+ var _node$content;
37
+
38
+ return ((_node$content = node.content) === null || _node$content === void 0 ? void 0 : _node$content.length) === 0;
39
+ };
40
+
41
+ var fixIfTableCellInvalidEmpty = function fixIfTableCellInvalidEmpty(reportTransform) {
42
+ return function (node) {
43
+ if (isEmpty(node)) {
44
+ reportTransform();
45
+ return _objectSpread(_objectSpread({}, node), {}, {
46
+ content: createValidEmptyContent(node)
47
+ });
48
+ }
49
+ };
50
+ };
51
+
52
+ var hasNonListItemChildren = function hasNonListItemChildren(node) {
53
+ var _node$content2;
54
+
55
+ return (_node$content2 = node.content) === null || _node$content2 === void 0 ? void 0 : _node$content2.some(function (node) {
56
+ return (node === null || node === void 0 ? void 0 : node.type) !== 'listItem';
57
+ });
58
+ };
59
+
60
+ var hasEmptyListItemChildren = function hasEmptyListItemChildren(node) {
61
+ var _node$content3;
62
+
63
+ return (_node$content3 = node.content) === null || _node$content3 === void 0 ? void 0 : _node$content3.some(function (childNode) {
64
+ var _childNode$content2;
65
+
66
+ return (childNode === null || childNode === void 0 ? void 0 : childNode.type) === 'listItem' && !((_childNode$content2 = childNode.content) !== null && _childNode$content2 !== void 0 && _childNode$content2.length);
67
+ });
68
+ };
69
+
70
+ var tryCreateValidListItemWrappedChildren = function tryCreateValidListItemWrappedChildren(parentListNode) {
71
+ var _parentListNode$conte;
72
+
73
+ return (_parentListNode$conte = parentListNode.content) === null || _parentListNode$conte === void 0 ? void 0 : _parentListNode$conte.map(function (childNode) {
74
+ if (childNode) {
75
+ switch (childNode.type) {
76
+ case 'listItem':
77
+ {
78
+ if (isEmpty(childNode)) {
79
+ var result = listItem([paragraph()]);
80
+ return result;
81
+ }
82
+
83
+ return childNode;
84
+ }
85
+
86
+ case 'text':
87
+ return listItem([paragraph(childNode)]);
88
+
89
+ default:
90
+ return listItem([childNode]);
91
+ }
92
+ }
93
+
94
+ return childNode;
95
+ });
96
+ };
97
+
98
+ var fixIfListParentWithInvalidListItemChildren = function fixIfListParentWithInvalidListItemChildren(reportTransform) {
99
+ return function (node) {
100
+ if (hasNonListItemChildren(node) || hasEmptyListItemChildren(node)) {
101
+ reportTransform();
102
+ return _objectSpread(_objectSpread({}, node), {}, {
103
+ content: tryCreateValidListItemWrappedChildren(node)
104
+ });
105
+ }
106
+ };
107
+ };
108
+
109
+ var hasNonTableRowChildren = function hasNonTableRowChildren(node) {
110
+ var _node$content4;
111
+
112
+ return (_node$content4 = node.content) === null || _node$content4 === void 0 ? void 0 : _node$content4.some(function (node) {
113
+ return (node === null || node === void 0 ? void 0 : node.type) !== 'tableRow';
114
+ });
115
+ };
116
+
117
+ var tryCreateValidTableRowWrappedChildren = function tryCreateValidTableRowWrappedChildren(parentTableNode) {
118
+ var _parentTableNode$cont;
119
+
120
+ var maxColsCount = getMaxColumnsCountForTable(parentTableNode);
121
+ return (_parentTableNode$cont = parentTableNode.content) === null || _parentTableNode$cont === void 0 ? void 0 : _parentTableNode$cont.map(function (childNode) {
122
+ if (childNode) {
123
+ switch (childNode.type) {
124
+ case 'text':
125
+ {
126
+ return tableRow([tableCell({})(paragraph(childNode))].concat(_toConsumableArray(new Array(maxColsCount - 1).fill(tableCell({})(paragraph())))));
127
+ }
128
+
129
+ case 'tableCell':
130
+ {
131
+ return tableRow([childNode]);
132
+ }
133
+
134
+ case 'tableRow':
135
+ {
136
+ if (isEmpty(childNode)) {
137
+ return tableRow(_toConsumableArray(new Array(maxColsCount).fill(tableCell({})(paragraph()))));
138
+ }
139
+
140
+ return childNode;
141
+ }
142
+
143
+ default:
144
+ return childNode;
145
+ }
146
+ }
147
+
148
+ return childNode;
149
+ });
150
+ };
151
+
152
+ var hasEmptyTableRowChildren = function hasEmptyTableRowChildren(node) {
153
+ var _node$content5;
154
+
155
+ return node === null || node === void 0 ? void 0 : (_node$content5 = node.content) === null || _node$content5 === void 0 ? void 0 : _node$content5.some(function (node) {
156
+ var _node$content6;
157
+
158
+ return (node === null || node === void 0 ? void 0 : node.type) === 'tableRow' && (node === null || node === void 0 ? void 0 : (_node$content6 = node.content) === null || _node$content6 === void 0 ? void 0 : _node$content6.length) === 0;
159
+ });
160
+ };
161
+
162
+ var fixIfTableParentWithInvalidTableRowChildren = function fixIfTableParentWithInvalidTableRowChildren(reportTransform) {
163
+ return function (node) {
164
+ if (hasEmptyTableRowChildren(node) || hasNonTableRowChildren(node)) {
165
+ reportTransform();
166
+ return _objectSpread(_objectSpread({}, node), {}, {
167
+ content: tryCreateValidTableRowWrappedChildren(node)
168
+ });
169
+ }
170
+ };
171
+ };
172
+
173
+ export var transformNodesMissingContent = function transformNodesMissingContent(adf) {
174
+ var isTransformed = false;
175
+
176
+ var reportTransform = function reportTransform() {
177
+ isTransformed = true;
178
+ };
179
+
180
+ var transformedAdf = traverse(adf, {
181
+ tableCell: fixIfTableCellInvalidEmpty(reportTransform)
182
+ });
183
+ transformedAdf = traverse(transformedAdf || adf, {
184
+ bulletList: fixIfListParentWithInvalidListItemChildren(reportTransform),
185
+ orderedList: fixIfListParentWithInvalidListItemChildren(reportTransform),
186
+ table: fixIfTableParentWithInvalidTableRowChildren(reportTransform)
187
+ });
188
+ return {
189
+ transformedAdf: transformedAdf,
190
+ isTransformed: isTransformed
191
+ };
192
+ };
@@ -0,0 +1,5 @@
1
+ export { transformMediaLinkMarks } from './transforms/media-link-transform';
2
+ export { transformTextLinkCodeMarks } from './transforms/text-link-code-transform';
3
+ export { transformDedupeMarks } from './transforms/dedupe-marks-transform';
4
+ export { transformNodesMissingContent } from './transforms/nodes-missing-content-transform';
5
+ export { transformIndentationMarks } from './transforms/indentation-marks-transform';
@@ -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_marks', 'embedCard', 'table', 'expand_with_no_mark', 'bodiedExtension_with_marks'];
1
+ export default ['blockCard', 'paragraph_with_no_marks', 'paragraph_with_alignment', 'paragraph_with_indentation', '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', 'embedCard', 'table', 'expand_with_no_mark', 'bodiedExtension_with_marks'];
@@ -10,6 +10,11 @@ export default {
10
10
  type: 'object',
11
11
  optional: true
12
12
  },
13
+ type: {
14
+ type: 'enum',
15
+ values: ['link', 'file'],
16
+ optional: true
17
+ },
13
18
  id: {
14
19
  type: 'string',
15
20
  minLength: 1
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/adf-utils",
3
- "version": "16.0.2",
3
+ "version": "17.1.1",
4
4
  "sideEffects": false
5
5
  }
@@ -1,9 +1 @@
1
- export { a, alignment, b, blockCard, blockQuote, bodiedExtension, br, breakout, bulletList, code, codeBlock, date, decisionItem, decisionList, doc, em, embedCard, emoji, expand, extension, hardBreak, heading, hr, indentation, inlineCard, inlineExtension, layoutColumn, layoutSection, li, link, listItem, media, mediaGroup, mediaSingle, mention, nestedExpand, ol, orderedList, p, panel, paragraph, placeholder, rule, status, strike, strong, subsup, table, tableCell, tableHeader, tableRow, taskItem, taskList, td, text, textColor, th, tr, u, ul, underline, dataConsumer, } from './builders';
2
- export { filter, map, reduce, traverse } from './traverse';
3
- export { scrubAdf } from './scrub';
4
- export { validateAttrs, validator } from './validator';
5
- export type { Content, ErrorCallback, Output, ValidationError, ValidationErrorMap, ValidationErrorType, ValidationMode, ValidationOptions, ErrorCallbackOptions, Validate, } from './types/validatorTypes';
6
- export type { ADFEntity, ADFEntityMark, Visitor, VisitorCollection, } from './types';
7
- export { getEmptyADF } from './empty-adf';
8
- export { transformMediaLinkMarks } from './media-link-transform';
9
- export { transformTextLinkCodeMarks } from './transforms/text-link-code-transform';
1
+ export {};
@@ -0,0 +1,8 @@
1
+ import { ADFEntity, ADFEntityMark } from '../types';
2
+ interface TransformDedupeMarksResult {
3
+ transformedAdf: ADFEntity;
4
+ isTransformed: boolean;
5
+ discardedMarks: ADFEntityMark[];
6
+ }
7
+ export declare const transformDedupeMarks: (adf: ADFEntity) => TransformDedupeMarksResult;
8
+ export {};
@@ -0,0 +1,7 @@
1
+ import { ADFEntity } from '../types';
2
+ interface TransformIndentationMarksResult {
3
+ transformedAdf: ADFEntity;
4
+ isTransformed: boolean;
5
+ }
6
+ export declare const transformIndentationMarks: (adf: ADFEntity) => TransformIndentationMarksResult;
7
+ export {};
@@ -1,4 +1,4 @@
1
- import { ADFEntity } from './types';
1
+ import { ADFEntity } from '../types';
2
2
  export declare const transformMediaLinkMarks: (adf: ADFEntity) => {
3
3
  transformedAdf: false | ADFEntity;
4
4
  isTransformed: boolean;
@@ -0,0 +1,7 @@
1
+ import { ADFEntity } from '../types';
2
+ interface TransformNodesMissingContentResult {
3
+ transformedAdf: ADFEntity;
4
+ isTransformed: boolean;
5
+ }
6
+ export declare const transformNodesMissingContent: (adf: ADFEntity) => TransformNodesMissingContentResult;
7
+ export {};
@@ -0,0 +1,5 @@
1
+ export { transformMediaLinkMarks } from './transforms/media-link-transform';
2
+ export { transformTextLinkCodeMarks } from './transforms/text-link-code-transform';
3
+ export { transformDedupeMarks } from './transforms/dedupe-marks-transform';
4
+ export { transformNodesMissingContent } from './transforms/nodes-missing-content-transform';
5
+ export { transformIndentationMarks } from './transforms/indentation-marks-transform';
@@ -10,6 +10,11 @@ declare const _default: {
10
10
  type: string;
11
11
  optional: boolean;
12
12
  };
13
+ type: {
14
+ type: string;
15
+ values: string[];
16
+ optional: boolean;
17
+ };
13
18
  id: {
14
19
  type: string;
15
20
  minLength: number;
@@ -1,2 +1 @@
1
1
  export { validateAttrs, validator } from './validator/validator';
2
- export type { Content, ErrorCallback, Output, ValidationError, ValidationErrorType, ValidationMode, ValidationOptions, } from './types/validatorTypes';
@@ -3,5 +3,6 @@
3
3
  "main": "../dist/cjs/empty-adf.js",
4
4
  "module": "../dist/esm/empty-adf.js",
5
5
  "module:es2019": "../dist/es2019/empty-adf.js",
6
+ "sideEffects": false,
6
7
  "types": "../dist/types/empty-adf.d.ts"
7
8
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/adf-utils",
3
- "version": "16.0.2",
3
+ "version": "17.1.1",
4
4
  "description": "Set of utilities to traverse, modify and create ADF documents.",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -16,21 +16,32 @@
16
16
  "atlaskit:src": "src/index.ts",
17
17
  "atlassian": {
18
18
  "team": "Editor",
19
- "deprecatedAutoEntryPoints": true,
20
19
  "inPublicMirror": true,
21
20
  "releaseModel": "scheduled"
22
21
  },
22
+ "af:exports": {
23
+ "./builders": "./src/builders.ts",
24
+ "./empty-adf": "./src/empty-adf.ts",
25
+ "./scrub": "./src/scrub.ts",
26
+ "./transforms": "./src/transforms.ts",
27
+ "./traverse": "./src/traverse.ts",
28
+ "./validator": "./src/validator.ts",
29
+ "./types": "./src/types/index.ts",
30
+ "./validatorTypes": "./src/types/validatorTypes.ts"
31
+ },
23
32
  "scripts": {
24
33
  "generate:spec": "rm -rf ./src/validator/specs/ && ../json-schema-generator/bin.js --outDir=./src/validator/specs/ --mode=Spec --stage=0 ./src/validator/entry.ts"
25
34
  },
26
35
  "dependencies": {
27
- "@atlaskit/adf-schema": "^23.0.0",
36
+ "@atlaskit/adf-schema": "^23.3.0",
37
+ "@atlaskit/codemod-utils": "^4.1.0",
28
38
  "@babel/runtime": "^7.0.0"
29
39
  },
30
40
  "devDependencies": {
31
41
  "@atlaskit/docs": "*",
32
42
  "@atlaskit/json-schema-generator": "^3.2.0",
33
43
  "@atlassian/atlassian-frontend-prettier-config-1.0.1": "npm:@atlassian/atlassian-frontend-prettier-config@1.0.1",
44
+ "jscodeshift": "^0.13.0",
34
45
  "react": "^16.8.0",
35
46
  "typescript": "4.2.4",
36
47
  "wait-for-expect": "^1.2.0"
package/report.api.md ADDED
@@ -0,0 +1,7 @@
1
+ ## API Report File for "@atlaskit/adf-utils"
2
+
3
+ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
4
+
5
+ ```ts
6
+ export {};
7
+ ```
@@ -3,5 +3,6 @@
3
3
  "main": "../dist/cjs/scrub.js",
4
4
  "module": "../dist/esm/scrub.js",
5
5
  "module:es2019": "../dist/es2019/scrub.js",
6
+ "sideEffects": false,
6
7
  "types": "../dist/types/scrub.d.ts"
7
8
  }
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "@atlaskit/adf-utils/transforms",
3
+ "main": "../dist/cjs/transforms.js",
4
+ "module": "../dist/esm/transforms.js",
5
+ "module:es2019": "../dist/es2019/transforms.js",
6
+ "sideEffects": false,
7
+ "types": "../dist/types/transforms.d.ts"
8
+ }
@@ -3,5 +3,6 @@
3
3
  "main": "../dist/cjs/traverse.js",
4
4
  "module": "../dist/esm/traverse.js",
5
5
  "module:es2019": "../dist/es2019/traverse.js",
6
+ "sideEffects": false,
6
7
  "types": "../dist/types/traverse.d.ts"
7
8
  }
package/tsconfig.json CHANGED
@@ -9,6 +9,7 @@
9
9
  "./docs/**/*.ts",
10
10
  "./docs/**/*.tsx",
11
11
  "./examples/**/*.ts",
12
- "./examples/**/*.tsx"
12
+ "./examples/**/*.tsx",
13
+ "codemods"
13
14
  ]
14
15
  }
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "@atlaskit/adf-utils/types",
3
+ "main": "../dist/cjs/types/index.js",
4
+ "module": "../dist/esm/types/index.js",
5
+ "module:es2019": "../dist/es2019/types/index.js",
6
+ "sideEffects": false,
7
+ "types": "../dist/types/types/index.d.ts"
8
+ }
@@ -3,5 +3,6 @@
3
3
  "main": "../dist/cjs/validator.js",
4
4
  "module": "../dist/esm/validator.js",
5
5
  "module:es2019": "../dist/es2019/validator.js",
6
+ "sideEffects": false,
6
7
  "types": "../dist/types/validator.d.ts"
7
8
  }
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "@atlaskit/adf-utils/validatorTypes",
3
+ "main": "../dist/cjs/types/validatorTypes.js",
4
+ "module": "../dist/esm/types/validatorTypes.js",
5
+ "module:es2019": "../dist/es2019/types/validatorTypes.js",
6
+ "sideEffects": false,
7
+ "types": "../dist/types/types/validatorTypes.d.ts"
8
+ }
@@ -1,7 +0,0 @@
1
- {
2
- "name": "@atlaskit/adf-utils/media-link-transform",
3
- "main": "../dist/cjs/media-link-transform.js",
4
- "module": "../dist/esm/media-link-transform.js",
5
- "module:es2019": "../dist/es2019/media-link-transform.js",
6
- "types": "../dist/types/media-link-transform.d.ts"
7
- }