@atlaskit/adf-utils 15.0.0 → 16.0.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @atlaskit/adf-utils
2
2
 
3
+ ## 16.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - [`304351e4b1e`](https://bitbucket.org/atlassian/atlassian-frontend/commits/304351e4b1e) - CETI-241 - Added additional panel ADF attributes (panelIconId, panelIconText) to uniquely identify custom panel emojis. The change has been categorised as major since it is a change to the full-schema ADF. However, the custom panel feature is behind a feature flag, has not yet been released to production, and is only currently planned for release to Confluence. See ADF change #61 for further details.
8
+
9
+ ### Patch Changes
10
+
11
+ - [`2f5133aedd7`](https://bitbucket.org/atlassian/atlassian-frontend/commits/2f5133aedd7) - ED-13881 Update existing imports from @atlaskit/adf-schema to use declarative entry points
12
+ - [`3b49ff824ec`](https://bitbucket.org/atlassian/atlassian-frontend/commits/3b49ff824ec) - ED-14043 update prosemirror schema to only allow link mark on children of paragraph and mediaSingle
13
+ - Updated dependencies
14
+
3
15
  ## 15.0.0
4
16
 
5
17
  ### Major Changes
package/dist/cjs/index.js CHANGED
@@ -387,6 +387,12 @@ Object.defineProperty(exports, "tr", {
387
387
  return _builders.tr;
388
388
  }
389
389
  });
390
+ Object.defineProperty(exports, "transformMediaLinkMarks", {
391
+ enumerable: true,
392
+ get: function get() {
393
+ return _mediaLinkTransform.transformMediaLinkMarks;
394
+ }
395
+ });
390
396
  Object.defineProperty(exports, "transformTextLinkCodeMarks", {
391
397
  enumerable: true,
392
398
  get: function get() {
@@ -440,4 +446,6 @@ var _validator = require("./validator");
440
446
 
441
447
  var _emptyAdf = require("./empty-adf");
442
448
 
449
+ var _mediaLinkTransform = require("./media-link-transform");
450
+
443
451
  var _textLinkCodeTransform = require("./transforms/text-link-code-transform");
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.transformMediaLinkMarks = void 0;
7
+
8
+ var _traverse = require("./traverse/traverse");
9
+
10
+ // link mark on mediaSingle is deprecated, need to move link mark to child media node
11
+ // https://product-fabric.atlassian.net/browse/ED-14043
12
+ var transformMediaLinkMarks = function transformMediaLinkMarks(adf) {
13
+ var isTransformed = false;
14
+ var transformedAdf = (0, _traverse.traverse)(adf, {
15
+ mediaSingle: function mediaSingle(node) {
16
+ var _node$content$;
17
+
18
+ if (!node.marks || !node.content || ((_node$content$ = node.content[0]) === null || _node$content$ === void 0 ? void 0 : _node$content$.type) !== 'media') {
19
+ return node;
20
+ }
21
+
22
+ var linkMark = null;
23
+ node.marks.forEach(function (mark, i) {
24
+ if (mark.type === 'link') {
25
+ var _node$marks;
26
+
27
+ linkMark = mark;
28
+ (_node$marks = node.marks) === null || _node$marks === void 0 ? void 0 : _node$marks.splice(i, 1);
29
+ isTransformed = true;
30
+ }
31
+ });
32
+
33
+ if (node.marks.length === 0) {
34
+ delete node.marks;
35
+ }
36
+
37
+ if (linkMark) {
38
+ var _mediaNode$marks;
39
+
40
+ var mediaNode = node.content[0]; // only add link mark if media node doesnt already have one
41
+
42
+ if ((_mediaNode$marks = mediaNode.marks) !== null && _mediaNode$marks !== void 0 && _mediaNode$marks.every(function (mark) {
43
+ return mark.type !== 'link';
44
+ })) {
45
+ mediaNode.marks.push(linkMark);
46
+ } else if (!mediaNode.marks) {
47
+ mediaNode.marks = [linkMark];
48
+ }
49
+ }
50
+
51
+ return node;
52
+ }
53
+ });
54
+ return {
55
+ transformedAdf: transformedAdf,
56
+ isTransformed: isTransformed
57
+ };
58
+ };
59
+
60
+ exports.transformMediaLinkMarks = transformMediaLinkMarks;
@@ -5,9 +5,9 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.validatorFnMap = void 0;
7
7
 
8
- var _adfSchema = require("@atlaskit/adf-schema");
8
+ var _url = require("@atlaskit/adf-schema/url");
9
9
 
10
10
  var validatorFnMap = {
11
- safeUrl: _adfSchema.isSafeUrl
11
+ safeUrl: _url.isSafeUrl
12
12
  };
13
13
  exports.validatorFnMap = validatorFnMap;
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/adf-utils",
3
- "version": "15.0.0",
3
+ "version": "16.0.0",
4
4
  "sideEffects": false
5
5
  }
@@ -3,4 +3,5 @@ export { filter, map, reduce, traverse } from './traverse';
3
3
  export { scrubAdf } from './scrub';
4
4
  export { validateAttrs, validator } from './validator';
5
5
  export { getEmptyADF } from './empty-adf';
6
+ export { transformMediaLinkMarks } from './media-link-transform';
6
7
  export { transformTextLinkCodeMarks } from './transforms/text-link-code-transform';
@@ -0,0 +1,48 @@
1
+ import { traverse } from './traverse/traverse';
2
+ // link mark on mediaSingle is deprecated, need to move link mark to child media node
3
+ // https://product-fabric.atlassian.net/browse/ED-14043
4
+ export const transformMediaLinkMarks = adf => {
5
+ let isTransformed = false;
6
+ const transformedAdf = traverse(adf, {
7
+ mediaSingle: node => {
8
+ var _node$content$;
9
+
10
+ if (!node.marks || !node.content || ((_node$content$ = node.content[0]) === null || _node$content$ === void 0 ? void 0 : _node$content$.type) !== 'media') {
11
+ return node;
12
+ }
13
+
14
+ let linkMark = null;
15
+ node.marks.forEach((mark, i) => {
16
+ if (mark.type === 'link') {
17
+ var _node$marks;
18
+
19
+ linkMark = mark;
20
+ (_node$marks = node.marks) === null || _node$marks === void 0 ? void 0 : _node$marks.splice(i, 1);
21
+ isTransformed = true;
22
+ }
23
+ });
24
+
25
+ if (node.marks.length === 0) {
26
+ delete node.marks;
27
+ }
28
+
29
+ if (linkMark) {
30
+ var _mediaNode$marks;
31
+
32
+ const mediaNode = node.content[0]; // only add link mark if media node doesnt already have one
33
+
34
+ if ((_mediaNode$marks = mediaNode.marks) !== null && _mediaNode$marks !== void 0 && _mediaNode$marks.every(mark => mark.type !== 'link')) {
35
+ mediaNode.marks.push(linkMark);
36
+ } else if (!mediaNode.marks) {
37
+ mediaNode.marks = [linkMark];
38
+ }
39
+ }
40
+
41
+ return node;
42
+ }
43
+ });
44
+ return {
45
+ transformedAdf,
46
+ isTransformed
47
+ };
48
+ };
@@ -1,4 +1,4 @@
1
- import { isSafeUrl } from '@atlaskit/adf-schema';
1
+ import { isSafeUrl } from '@atlaskit/adf-schema/url';
2
2
  export const validatorFnMap = {
3
3
  safeUrl: isSafeUrl
4
4
  };
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/adf-utils",
3
- "version": "15.0.0",
3
+ "version": "16.0.0",
4
4
  "sideEffects": false
5
5
  }
package/dist/esm/index.js CHANGED
@@ -3,4 +3,5 @@ export { filter, map, reduce, traverse } from './traverse';
3
3
  export { scrubAdf } from './scrub';
4
4
  export { validateAttrs, validator } from './validator';
5
5
  export { getEmptyADF } from './empty-adf';
6
+ export { transformMediaLinkMarks } from './media-link-transform';
6
7
  export { transformTextLinkCodeMarks } from './transforms/text-link-code-transform';
@@ -0,0 +1,50 @@
1
+ import { traverse } from './traverse/traverse';
2
+ // link mark on mediaSingle is deprecated, need to move link mark to child media node
3
+ // https://product-fabric.atlassian.net/browse/ED-14043
4
+ export var transformMediaLinkMarks = function transformMediaLinkMarks(adf) {
5
+ var isTransformed = false;
6
+ var transformedAdf = traverse(adf, {
7
+ mediaSingle: function mediaSingle(node) {
8
+ var _node$content$;
9
+
10
+ if (!node.marks || !node.content || ((_node$content$ = node.content[0]) === null || _node$content$ === void 0 ? void 0 : _node$content$.type) !== 'media') {
11
+ return node;
12
+ }
13
+
14
+ var linkMark = null;
15
+ node.marks.forEach(function (mark, i) {
16
+ if (mark.type === 'link') {
17
+ var _node$marks;
18
+
19
+ linkMark = mark;
20
+ (_node$marks = node.marks) === null || _node$marks === void 0 ? void 0 : _node$marks.splice(i, 1);
21
+ isTransformed = true;
22
+ }
23
+ });
24
+
25
+ if (node.marks.length === 0) {
26
+ delete node.marks;
27
+ }
28
+
29
+ if (linkMark) {
30
+ var _mediaNode$marks;
31
+
32
+ var mediaNode = node.content[0]; // only add link mark if media node doesnt already have one
33
+
34
+ if ((_mediaNode$marks = mediaNode.marks) !== null && _mediaNode$marks !== void 0 && _mediaNode$marks.every(function (mark) {
35
+ return mark.type !== 'link';
36
+ })) {
37
+ mediaNode.marks.push(linkMark);
38
+ } else if (!mediaNode.marks) {
39
+ mediaNode.marks = [linkMark];
40
+ }
41
+ }
42
+
43
+ return node;
44
+ }
45
+ });
46
+ return {
47
+ transformedAdf: transformedAdf,
48
+ isTransformed: isTransformed
49
+ };
50
+ };
@@ -1,4 +1,4 @@
1
- import { isSafeUrl } from '@atlaskit/adf-schema';
1
+ import { isSafeUrl } from '@atlaskit/adf-schema/url';
2
2
  export var validatorFnMap = {
3
3
  safeUrl: isSafeUrl
4
4
  };
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/adf-utils",
3
- "version": "15.0.0",
3
+ "version": "16.0.0",
4
4
  "sideEffects": false
5
5
  }
@@ -5,4 +5,5 @@ export { validateAttrs, validator } from './validator';
5
5
  export type { Content, ErrorCallback, Output, ValidationError, ValidationErrorMap, ValidationErrorType, ValidationMode, ValidationOptions, ErrorCallbackOptions, Validate, } from './types/validatorTypes';
6
6
  export type { ADFEntity, ADFEntityMark, Visitor, VisitorCollection, } from './types';
7
7
  export { getEmptyADF } from './empty-adf';
8
+ export { transformMediaLinkMarks } from './media-link-transform';
8
9
  export { transformTextLinkCodeMarks } from './transforms/text-link-code-transform';
@@ -0,0 +1,5 @@
1
+ import { ADFEntity } from './types';
2
+ export declare const transformMediaLinkMarks: (adf: ADFEntity) => {
3
+ transformedAdf: false | ADFEntity;
4
+ isTransformed: boolean;
5
+ };
@@ -0,0 +1,7 @@
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
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/adf-utils",
3
- "version": "15.0.0",
3
+ "version": "16.0.0",
4
4
  "description": "Set of utilities to traverse, modify and create ADF documents.",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -24,7 +24,7 @@
24
24
  "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
25
  },
26
26
  "dependencies": {
27
- "@atlaskit/adf-schema": "^21.0.0",
27
+ "@atlaskit/adf-schema": "^22.0.0",
28
28
  "@babel/runtime": "^7.0.0"
29
29
  },
30
30
  "devDependencies": {