@atlaskit/editor-synced-block-provider 6.6.5 → 6.6.6
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 +9 -0
- package/dist/cjs/store-manager/referenceSyncBlockStoreManager.js +26 -7
- package/dist/cjs/utils/utils.js +49 -4
- package/dist/es2019/store-manager/referenceSyncBlockStoreManager.js +27 -8
- package/dist/es2019/utils/utils.js +43 -1
- package/dist/esm/store-manager/referenceSyncBlockStoreManager.js +28 -9
- package/dist/esm/utils/utils.js +48 -1
- package/dist/types/store-manager/referenceSyncBlockStoreManager.d.ts +1 -0
- package/dist/types/utils/utils.d.ts +2 -1
- package/dist/types-ts4.5/store-manager/referenceSyncBlockStoreManager.d.ts +1 -0
- package/dist/types-ts4.5/utils/utils.d.ts +2 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# @atlaskit/editor-synced-block-provider
|
|
2
2
|
|
|
3
|
+
## 6.6.6
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`33333417b0969`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/33333417b0969) -
|
|
8
|
+
Strip inline comment annotation marks from synced block content before syncing references behind
|
|
9
|
+
platform_synced_block_patch_12.
|
|
10
|
+
- Updated dependencies
|
|
11
|
+
|
|
3
12
|
## 6.6.5
|
|
4
13
|
|
|
5
14
|
### Patch Changes
|
|
@@ -13,6 +13,7 @@ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
|
|
|
13
13
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
14
14
|
var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
|
|
15
15
|
var _monitoring = require("@atlaskit/editor-common/monitoring");
|
|
16
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
16
17
|
var _types = require("../common/types");
|
|
17
18
|
var _errorHandling = require("../utils/errorHandling");
|
|
18
19
|
var _experienceTracking = require("../utils/experienceTracking");
|
|
@@ -210,10 +211,27 @@ var ReferenceSyncBlockStoreManager = exports.ReferenceSyncBlockStoreManager = /*
|
|
|
210
211
|
var syncBlockNode = (0, _utils.createSyncBlockNode)('', resourceId);
|
|
211
212
|
var providerData = (_this$dataProvider2 = this.dataProvider) === null || _this$dataProvider2 === void 0 || (_this$dataProvider2 = _this$dataProvider2.getNodeDataFromCache(syncBlockNode)) === null || _this$dataProvider2 === void 0 ? void 0 : _this$dataProvider2.data;
|
|
212
213
|
if (providerData) {
|
|
213
|
-
return providerData;
|
|
214
|
+
return this.stripAnnotationMarksFromReferenceData(providerData);
|
|
214
215
|
}
|
|
215
216
|
return this.getFromSessionCache(resourceId);
|
|
216
217
|
}
|
|
218
|
+
}, {
|
|
219
|
+
key: "stripAnnotationMarksFromReferenceData",
|
|
220
|
+
value: function stripAnnotationMarksFromReferenceData(syncBlock) {
|
|
221
|
+
var _syncBlock$data;
|
|
222
|
+
if (!(0, _platformFeatureFlags.fg)('platform_synced_block_patch_12') || !((_syncBlock$data = syncBlock.data) !== null && _syncBlock$data !== void 0 && _syncBlock$data.content)) {
|
|
223
|
+
return syncBlock;
|
|
224
|
+
}
|
|
225
|
+
var content = (0, _utils.stripAnnotationMarksFromJSONContent)(syncBlock.data.content);
|
|
226
|
+
if (content === syncBlock.data.content) {
|
|
227
|
+
return syncBlock;
|
|
228
|
+
}
|
|
229
|
+
return _objectSpread(_objectSpread({}, syncBlock), {}, {
|
|
230
|
+
data: _objectSpread(_objectSpread({}, syncBlock.data), {}, {
|
|
231
|
+
content: content
|
|
232
|
+
})
|
|
233
|
+
});
|
|
234
|
+
}
|
|
217
235
|
}, {
|
|
218
236
|
key: "updateSessionCache",
|
|
219
237
|
value: function updateSessionCache(resourceId) {
|
|
@@ -230,7 +248,7 @@ var ReferenceSyncBlockStoreManager = exports.ReferenceSyncBlockStoreManager = /*
|
|
|
230
248
|
if (!raw) {
|
|
231
249
|
return undefined;
|
|
232
250
|
}
|
|
233
|
-
return JSON.parse(raw);
|
|
251
|
+
return this.stripAnnotationMarksFromReferenceData(JSON.parse(raw));
|
|
234
252
|
} catch (error) {
|
|
235
253
|
(0, _monitoring.logException)(error, {
|
|
236
254
|
location: 'editor-synced-block-provider/referenceSyncBlockStoreManager/getFromSessionCache'
|
|
@@ -601,14 +619,15 @@ var ReferenceSyncBlockStoreManager = exports.ReferenceSyncBlockStoreManager = /*
|
|
|
601
619
|
}, {
|
|
602
620
|
key: "updateCache",
|
|
603
621
|
value: function updateCache(syncBlock) {
|
|
604
|
-
var
|
|
622
|
+
var sanitizedSyncBlock = this.stripAnnotationMarksFromReferenceData(syncBlock);
|
|
623
|
+
var resourceId = sanitizedSyncBlock.resourceId;
|
|
605
624
|
if (resourceId) {
|
|
606
625
|
var _this$dataProvider3;
|
|
607
|
-
(_this$dataProvider3 = this.dataProvider) === null || _this$dataProvider3 === void 0 || _this$dataProvider3.updateCache((0, _defineProperty2.default)({}, resourceId,
|
|
626
|
+
(_this$dataProvider3 = this.dataProvider) === null || _this$dataProvider3 === void 0 || _this$dataProvider3.updateCache((0, _defineProperty2.default)({}, resourceId, sanitizedSyncBlock), {
|
|
608
627
|
strategy: 'merge',
|
|
609
628
|
source: 'network'
|
|
610
629
|
});
|
|
611
|
-
this._subscriptionManager.notifySubscriptionCallbacks(resourceId,
|
|
630
|
+
this._subscriptionManager.notifySubscriptionCallbacks(resourceId, sanitizedSyncBlock);
|
|
612
631
|
this.updateSessionCache(resourceId);
|
|
613
632
|
}
|
|
614
633
|
}
|
|
@@ -685,12 +704,12 @@ var ReferenceSyncBlockStoreManager = exports.ReferenceSyncBlockStoreManager = /*
|
|
|
685
704
|
}, {
|
|
686
705
|
key: "getSyncBlockURL",
|
|
687
706
|
value: function getSyncBlockURL(resourceId) {
|
|
688
|
-
var _syncBlock$
|
|
707
|
+
var _syncBlock$data2;
|
|
689
708
|
var syncBlock = this.getFromCache(resourceId);
|
|
690
709
|
if (!syncBlock) {
|
|
691
710
|
return undefined;
|
|
692
711
|
}
|
|
693
|
-
return (_syncBlock$
|
|
712
|
+
return (_syncBlock$data2 = syncBlock.data) === null || _syncBlock$data2 === void 0 ? void 0 : _syncBlock$data2.sourceURL;
|
|
694
713
|
}
|
|
695
714
|
}, {
|
|
696
715
|
key: "getProviderFactory",
|
package/dist/cjs/utils/utils.js
CHANGED
|
@@ -1,15 +1,60 @@
|
|
|
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.getSourceProductFromResourceIdSafe = exports.getContentIdAndProductFromResourceId = exports.createSyncBlockNode = exports.convertSyncBlockPMNodeToSyncBlockData = exports.convertSyncBlockJSONNodeToSyncBlockNode = exports.convertPMNodesToSyncBlockNodes = exports.convertPMNodeToSyncBlockNode = exports.convertContentUpdatedAt = void 0;
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
exports.stripAnnotationMarksFromJSONContent = exports.getSourceProductFromResourceIdSafe = exports.getContentIdAndProductFromResourceId = exports.createSyncBlockNode = exports.convertSyncBlockPMNodeToSyncBlockData = exports.convertSyncBlockJSONNodeToSyncBlockNode = exports.convertPMNodesToSyncBlockNodes = exports.convertPMNodeToSyncBlockNode = exports.convertContentUpdatedAt = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
10
|
+
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; }
|
|
11
|
+
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; } /* eslint-disable require-unicode-regexp */
|
|
12
|
+
var _stripAnnotationMarksFromJSONContent = exports.stripAnnotationMarksFromJSONContent = function stripAnnotationMarksFromJSONContent(content) {
|
|
13
|
+
var strippedContent;
|
|
14
|
+
content.forEach(function (contentNode, index) {
|
|
15
|
+
var _contentNode$marks;
|
|
16
|
+
if (!contentNode) {
|
|
17
|
+
var _strippedContent;
|
|
18
|
+
(_strippedContent = strippedContent) === null || _strippedContent === void 0 || _strippedContent.push(contentNode);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
var hasAnnotationMark = (_contentNode$marks = contentNode.marks) === null || _contentNode$marks === void 0 ? void 0 : _contentNode$marks.some(function (mark) {
|
|
22
|
+
return mark.type === 'annotation';
|
|
23
|
+
});
|
|
24
|
+
var childContent = contentNode.content ? _stripAnnotationMarksFromJSONContent(contentNode.content) : undefined;
|
|
25
|
+
var hasContentChanged = childContent !== undefined && childContent !== contentNode.content;
|
|
26
|
+
if (!hasAnnotationMark && !hasContentChanged) {
|
|
27
|
+
var _strippedContent2;
|
|
28
|
+
(_strippedContent2 = strippedContent) === null || _strippedContent2 === void 0 || _strippedContent2.push(contentNode);
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
if (!strippedContent) {
|
|
32
|
+
strippedContent = content.slice(0, index);
|
|
33
|
+
}
|
|
34
|
+
var strippedNode = _objectSpread({}, contentNode);
|
|
35
|
+
if (hasAnnotationMark) {
|
|
36
|
+
var _contentNode$marks2;
|
|
37
|
+
var marks = (_contentNode$marks2 = contentNode.marks) === null || _contentNode$marks2 === void 0 ? void 0 : _contentNode$marks2.filter(function (mark) {
|
|
38
|
+
return mark.type !== 'annotation';
|
|
39
|
+
});
|
|
40
|
+
if (marks && marks.length > 0) {
|
|
41
|
+
strippedNode.marks = marks;
|
|
42
|
+
} else {
|
|
43
|
+
delete strippedNode.marks;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
if (hasContentChanged && childContent) {
|
|
47
|
+
strippedNode.content = childContent;
|
|
48
|
+
}
|
|
49
|
+
strippedContent.push(strippedNode);
|
|
50
|
+
});
|
|
51
|
+
return strippedContent !== null && strippedContent !== void 0 ? strippedContent : content;
|
|
52
|
+
};
|
|
9
53
|
var convertSyncBlockPMNodeToSyncBlockData = exports.convertSyncBlockPMNodeToSyncBlockData = function convertSyncBlockPMNodeToSyncBlockData(node) {
|
|
54
|
+
var content = node.content.toJSON();
|
|
10
55
|
return {
|
|
11
56
|
blockInstanceId: node.attrs.localId,
|
|
12
|
-
content:
|
|
57
|
+
content: (0, _platformFeatureFlags.fg)('platform_synced_block_patch_12') ? _stripAnnotationMarksFromJSONContent(content) : content,
|
|
13
58
|
resourceId: node.attrs.resourceId
|
|
14
59
|
};
|
|
15
60
|
};
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
2
|
import isEqual from 'lodash/isEqual';
|
|
3
3
|
import { logException } from '@atlaskit/editor-common/monitoring';
|
|
4
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
4
5
|
import { SyncBlockError } from '../common/types';
|
|
5
6
|
import { fetchErrorPayload, fetchSuccessPayload, getSourceInfoErrorPayload, updateReferenceErrorPayload } from '../utils/errorHandling';
|
|
6
7
|
import { getFetchExperience, getFetchSourceInfoExperience, getSaveReferenceExperience } from '../utils/experienceTracking';
|
|
7
8
|
import { resolveSyncBlockInstance } from '../utils/resolveSyncBlockInstance';
|
|
8
|
-
import { createSyncBlockNode, getSourceProductFromResourceIdSafe } from '../utils/utils';
|
|
9
|
+
import { createSyncBlockNode, getSourceProductFromResourceIdSafe, stripAnnotationMarksFromJSONContent } from '../utils/utils';
|
|
9
10
|
import { SyncBlockBatchFetcher } from './syncBlockBatchFetcher';
|
|
10
11
|
import { syncBlockInMemorySessionCache } from './syncBlockInMemorySessionCache';
|
|
11
12
|
import { SyncBlockProviderFactoryManager } from './syncBlockProviderFactoryManager';
|
|
@@ -141,10 +142,27 @@ export class ReferenceSyncBlockStoreManager {
|
|
|
141
142
|
const syncBlockNode = createSyncBlockNode('', resourceId);
|
|
142
143
|
const providerData = (_this$dataProvider2 = this.dataProvider) === null || _this$dataProvider2 === void 0 ? void 0 : (_this$dataProvider2$g = _this$dataProvider2.getNodeDataFromCache(syncBlockNode)) === null || _this$dataProvider2$g === void 0 ? void 0 : _this$dataProvider2$g.data;
|
|
143
144
|
if (providerData) {
|
|
144
|
-
return providerData;
|
|
145
|
+
return this.stripAnnotationMarksFromReferenceData(providerData);
|
|
145
146
|
}
|
|
146
147
|
return this.getFromSessionCache(resourceId);
|
|
147
148
|
}
|
|
149
|
+
stripAnnotationMarksFromReferenceData(syncBlock) {
|
|
150
|
+
var _syncBlock$data;
|
|
151
|
+
if (!fg('platform_synced_block_patch_12') || !((_syncBlock$data = syncBlock.data) !== null && _syncBlock$data !== void 0 && _syncBlock$data.content)) {
|
|
152
|
+
return syncBlock;
|
|
153
|
+
}
|
|
154
|
+
const content = stripAnnotationMarksFromJSONContent(syncBlock.data.content);
|
|
155
|
+
if (content === syncBlock.data.content) {
|
|
156
|
+
return syncBlock;
|
|
157
|
+
}
|
|
158
|
+
return {
|
|
159
|
+
...syncBlock,
|
|
160
|
+
data: {
|
|
161
|
+
...syncBlock.data,
|
|
162
|
+
content
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
}
|
|
148
166
|
updateSessionCache(resourceId) {
|
|
149
167
|
const latestData = this.getFromCache(resourceId);
|
|
150
168
|
if (latestData) {
|
|
@@ -157,7 +175,7 @@ export class ReferenceSyncBlockStoreManager {
|
|
|
157
175
|
if (!raw) {
|
|
158
176
|
return undefined;
|
|
159
177
|
}
|
|
160
|
-
return JSON.parse(raw);
|
|
178
|
+
return this.stripAnnotationMarksFromReferenceData(JSON.parse(raw));
|
|
161
179
|
} catch (error) {
|
|
162
180
|
logException(error, {
|
|
163
181
|
location: 'editor-synced-block-provider/referenceSyncBlockStoreManager/getFromSessionCache'
|
|
@@ -470,18 +488,19 @@ export class ReferenceSyncBlockStoreManager {
|
|
|
470
488
|
}
|
|
471
489
|
}
|
|
472
490
|
updateCache(syncBlock) {
|
|
491
|
+
const sanitizedSyncBlock = this.stripAnnotationMarksFromReferenceData(syncBlock);
|
|
473
492
|
const {
|
|
474
493
|
resourceId
|
|
475
|
-
} =
|
|
494
|
+
} = sanitizedSyncBlock;
|
|
476
495
|
if (resourceId) {
|
|
477
496
|
var _this$dataProvider3;
|
|
478
497
|
(_this$dataProvider3 = this.dataProvider) === null || _this$dataProvider3 === void 0 ? void 0 : _this$dataProvider3.updateCache({
|
|
479
|
-
[resourceId]:
|
|
498
|
+
[resourceId]: sanitizedSyncBlock
|
|
480
499
|
}, {
|
|
481
500
|
strategy: 'merge',
|
|
482
501
|
source: 'network'
|
|
483
502
|
});
|
|
484
|
-
this._subscriptionManager.notifySubscriptionCallbacks(resourceId,
|
|
503
|
+
this._subscriptionManager.notifySubscriptionCallbacks(resourceId, sanitizedSyncBlock);
|
|
485
504
|
this.updateSessionCache(resourceId);
|
|
486
505
|
}
|
|
487
506
|
}
|
|
@@ -542,12 +561,12 @@ export class ReferenceSyncBlockStoreManager {
|
|
|
542
561
|
* @returns
|
|
543
562
|
*/
|
|
544
563
|
getSyncBlockURL(resourceId) {
|
|
545
|
-
var _syncBlock$
|
|
564
|
+
var _syncBlock$data2;
|
|
546
565
|
const syncBlock = this.getFromCache(resourceId);
|
|
547
566
|
if (!syncBlock) {
|
|
548
567
|
return undefined;
|
|
549
568
|
}
|
|
550
|
-
return (_syncBlock$
|
|
569
|
+
return (_syncBlock$data2 = syncBlock.data) === null || _syncBlock$data2 === void 0 ? void 0 : _syncBlock$data2.sourceURL;
|
|
551
570
|
}
|
|
552
571
|
getProviderFactory(resourceId) {
|
|
553
572
|
return this._providerFactoryManager.getProviderFactory(resourceId);
|
|
@@ -1,9 +1,51 @@
|
|
|
1
1
|
/* eslint-disable require-unicode-regexp */
|
|
2
2
|
|
|
3
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
4
|
+
export const stripAnnotationMarksFromJSONContent = content => {
|
|
5
|
+
var _strippedContent3;
|
|
6
|
+
let strippedContent;
|
|
7
|
+
content.forEach((contentNode, index) => {
|
|
8
|
+
var _contentNode$marks;
|
|
9
|
+
if (!contentNode) {
|
|
10
|
+
var _strippedContent;
|
|
11
|
+
(_strippedContent = strippedContent) === null || _strippedContent === void 0 ? void 0 : _strippedContent.push(contentNode);
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const hasAnnotationMark = (_contentNode$marks = contentNode.marks) === null || _contentNode$marks === void 0 ? void 0 : _contentNode$marks.some(mark => mark.type === 'annotation');
|
|
15
|
+
const childContent = contentNode.content ? stripAnnotationMarksFromJSONContent(contentNode.content) : undefined;
|
|
16
|
+
const hasContentChanged = childContent !== undefined && childContent !== contentNode.content;
|
|
17
|
+
if (!hasAnnotationMark && !hasContentChanged) {
|
|
18
|
+
var _strippedContent2;
|
|
19
|
+
(_strippedContent2 = strippedContent) === null || _strippedContent2 === void 0 ? void 0 : _strippedContent2.push(contentNode);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
if (!strippedContent) {
|
|
23
|
+
strippedContent = content.slice(0, index);
|
|
24
|
+
}
|
|
25
|
+
const strippedNode = {
|
|
26
|
+
...contentNode
|
|
27
|
+
};
|
|
28
|
+
if (hasAnnotationMark) {
|
|
29
|
+
var _contentNode$marks2;
|
|
30
|
+
const marks = (_contentNode$marks2 = contentNode.marks) === null || _contentNode$marks2 === void 0 ? void 0 : _contentNode$marks2.filter(mark => mark.type !== 'annotation');
|
|
31
|
+
if (marks && marks.length > 0) {
|
|
32
|
+
strippedNode.marks = marks;
|
|
33
|
+
} else {
|
|
34
|
+
delete strippedNode.marks;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
if (hasContentChanged && childContent) {
|
|
38
|
+
strippedNode.content = childContent;
|
|
39
|
+
}
|
|
40
|
+
strippedContent.push(strippedNode);
|
|
41
|
+
});
|
|
42
|
+
return (_strippedContent3 = strippedContent) !== null && _strippedContent3 !== void 0 ? _strippedContent3 : content;
|
|
43
|
+
};
|
|
3
44
|
export const convertSyncBlockPMNodeToSyncBlockData = node => {
|
|
45
|
+
const content = node.content.toJSON();
|
|
4
46
|
return {
|
|
5
47
|
blockInstanceId: node.attrs.localId,
|
|
6
|
-
content:
|
|
48
|
+
content: fg('platform_synced_block_patch_12') ? stripAnnotationMarksFromJSONContent(content) : content,
|
|
7
49
|
resourceId: node.attrs.resourceId
|
|
8
50
|
};
|
|
9
51
|
};
|
|
@@ -6,16 +6,17 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
|
6
6
|
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
|
|
7
7
|
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
8
8
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
9
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
9
10
|
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; }
|
|
10
11
|
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; }
|
|
11
|
-
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
12
12
|
import isEqual from 'lodash/isEqual';
|
|
13
13
|
import { logException } from '@atlaskit/editor-common/monitoring';
|
|
14
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
14
15
|
import { SyncBlockError } from '../common/types';
|
|
15
16
|
import { fetchErrorPayload, fetchSuccessPayload, getSourceInfoErrorPayload, updateReferenceErrorPayload } from '../utils/errorHandling';
|
|
16
17
|
import { getFetchExperience, getFetchSourceInfoExperience, getSaveReferenceExperience } from '../utils/experienceTracking';
|
|
17
18
|
import { resolveSyncBlockInstance } from '../utils/resolveSyncBlockInstance';
|
|
18
|
-
import { createSyncBlockNode, getSourceProductFromResourceIdSafe } from '../utils/utils';
|
|
19
|
+
import { createSyncBlockNode, getSourceProductFromResourceIdSafe, stripAnnotationMarksFromJSONContent } from '../utils/utils';
|
|
19
20
|
import { SyncBlockBatchFetcher } from './syncBlockBatchFetcher';
|
|
20
21
|
import { syncBlockInMemorySessionCache } from './syncBlockInMemorySessionCache';
|
|
21
22
|
import { SyncBlockProviderFactoryManager } from './syncBlockProviderFactoryManager';
|
|
@@ -203,10 +204,27 @@ export var ReferenceSyncBlockStoreManager = /*#__PURE__*/function () {
|
|
|
203
204
|
var syncBlockNode = createSyncBlockNode('', resourceId);
|
|
204
205
|
var providerData = (_this$dataProvider2 = this.dataProvider) === null || _this$dataProvider2 === void 0 || (_this$dataProvider2 = _this$dataProvider2.getNodeDataFromCache(syncBlockNode)) === null || _this$dataProvider2 === void 0 ? void 0 : _this$dataProvider2.data;
|
|
205
206
|
if (providerData) {
|
|
206
|
-
return providerData;
|
|
207
|
+
return this.stripAnnotationMarksFromReferenceData(providerData);
|
|
207
208
|
}
|
|
208
209
|
return this.getFromSessionCache(resourceId);
|
|
209
210
|
}
|
|
211
|
+
}, {
|
|
212
|
+
key: "stripAnnotationMarksFromReferenceData",
|
|
213
|
+
value: function stripAnnotationMarksFromReferenceData(syncBlock) {
|
|
214
|
+
var _syncBlock$data;
|
|
215
|
+
if (!fg('platform_synced_block_patch_12') || !((_syncBlock$data = syncBlock.data) !== null && _syncBlock$data !== void 0 && _syncBlock$data.content)) {
|
|
216
|
+
return syncBlock;
|
|
217
|
+
}
|
|
218
|
+
var content = stripAnnotationMarksFromJSONContent(syncBlock.data.content);
|
|
219
|
+
if (content === syncBlock.data.content) {
|
|
220
|
+
return syncBlock;
|
|
221
|
+
}
|
|
222
|
+
return _objectSpread(_objectSpread({}, syncBlock), {}, {
|
|
223
|
+
data: _objectSpread(_objectSpread({}, syncBlock.data), {}, {
|
|
224
|
+
content: content
|
|
225
|
+
})
|
|
226
|
+
});
|
|
227
|
+
}
|
|
210
228
|
}, {
|
|
211
229
|
key: "updateSessionCache",
|
|
212
230
|
value: function updateSessionCache(resourceId) {
|
|
@@ -223,7 +241,7 @@ export var ReferenceSyncBlockStoreManager = /*#__PURE__*/function () {
|
|
|
223
241
|
if (!raw) {
|
|
224
242
|
return undefined;
|
|
225
243
|
}
|
|
226
|
-
return JSON.parse(raw);
|
|
244
|
+
return this.stripAnnotationMarksFromReferenceData(JSON.parse(raw));
|
|
227
245
|
} catch (error) {
|
|
228
246
|
logException(error, {
|
|
229
247
|
location: 'editor-synced-block-provider/referenceSyncBlockStoreManager/getFromSessionCache'
|
|
@@ -594,14 +612,15 @@ export var ReferenceSyncBlockStoreManager = /*#__PURE__*/function () {
|
|
|
594
612
|
}, {
|
|
595
613
|
key: "updateCache",
|
|
596
614
|
value: function updateCache(syncBlock) {
|
|
597
|
-
var
|
|
615
|
+
var sanitizedSyncBlock = this.stripAnnotationMarksFromReferenceData(syncBlock);
|
|
616
|
+
var resourceId = sanitizedSyncBlock.resourceId;
|
|
598
617
|
if (resourceId) {
|
|
599
618
|
var _this$dataProvider3;
|
|
600
|
-
(_this$dataProvider3 = this.dataProvider) === null || _this$dataProvider3 === void 0 || _this$dataProvider3.updateCache(_defineProperty({}, resourceId,
|
|
619
|
+
(_this$dataProvider3 = this.dataProvider) === null || _this$dataProvider3 === void 0 || _this$dataProvider3.updateCache(_defineProperty({}, resourceId, sanitizedSyncBlock), {
|
|
601
620
|
strategy: 'merge',
|
|
602
621
|
source: 'network'
|
|
603
622
|
});
|
|
604
|
-
this._subscriptionManager.notifySubscriptionCallbacks(resourceId,
|
|
623
|
+
this._subscriptionManager.notifySubscriptionCallbacks(resourceId, sanitizedSyncBlock);
|
|
605
624
|
this.updateSessionCache(resourceId);
|
|
606
625
|
}
|
|
607
626
|
}
|
|
@@ -678,12 +697,12 @@ export var ReferenceSyncBlockStoreManager = /*#__PURE__*/function () {
|
|
|
678
697
|
}, {
|
|
679
698
|
key: "getSyncBlockURL",
|
|
680
699
|
value: function getSyncBlockURL(resourceId) {
|
|
681
|
-
var _syncBlock$
|
|
700
|
+
var _syncBlock$data2;
|
|
682
701
|
var syncBlock = this.getFromCache(resourceId);
|
|
683
702
|
if (!syncBlock) {
|
|
684
703
|
return undefined;
|
|
685
704
|
}
|
|
686
|
-
return (_syncBlock$
|
|
705
|
+
return (_syncBlock$data2 = syncBlock.data) === null || _syncBlock$data2 === void 0 ? void 0 : _syncBlock$data2.sourceURL;
|
|
687
706
|
}
|
|
688
707
|
}, {
|
|
689
708
|
key: "getProviderFactory",
|
package/dist/esm/utils/utils.js
CHANGED
|
@@ -1,9 +1,56 @@
|
|
|
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
|
/* eslint-disable require-unicode-regexp */
|
|
2
5
|
|
|
6
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
7
|
+
var _stripAnnotationMarksFromJSONContent = function stripAnnotationMarksFromJSONContent(content) {
|
|
8
|
+
var strippedContent;
|
|
9
|
+
content.forEach(function (contentNode, index) {
|
|
10
|
+
var _contentNode$marks;
|
|
11
|
+
if (!contentNode) {
|
|
12
|
+
var _strippedContent;
|
|
13
|
+
(_strippedContent = strippedContent) === null || _strippedContent === void 0 || _strippedContent.push(contentNode);
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
var hasAnnotationMark = (_contentNode$marks = contentNode.marks) === null || _contentNode$marks === void 0 ? void 0 : _contentNode$marks.some(function (mark) {
|
|
17
|
+
return mark.type === 'annotation';
|
|
18
|
+
});
|
|
19
|
+
var childContent = contentNode.content ? _stripAnnotationMarksFromJSONContent(contentNode.content) : undefined;
|
|
20
|
+
var hasContentChanged = childContent !== undefined && childContent !== contentNode.content;
|
|
21
|
+
if (!hasAnnotationMark && !hasContentChanged) {
|
|
22
|
+
var _strippedContent2;
|
|
23
|
+
(_strippedContent2 = strippedContent) === null || _strippedContent2 === void 0 || _strippedContent2.push(contentNode);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
if (!strippedContent) {
|
|
27
|
+
strippedContent = content.slice(0, index);
|
|
28
|
+
}
|
|
29
|
+
var strippedNode = _objectSpread({}, contentNode);
|
|
30
|
+
if (hasAnnotationMark) {
|
|
31
|
+
var _contentNode$marks2;
|
|
32
|
+
var marks = (_contentNode$marks2 = contentNode.marks) === null || _contentNode$marks2 === void 0 ? void 0 : _contentNode$marks2.filter(function (mark) {
|
|
33
|
+
return mark.type !== 'annotation';
|
|
34
|
+
});
|
|
35
|
+
if (marks && marks.length > 0) {
|
|
36
|
+
strippedNode.marks = marks;
|
|
37
|
+
} else {
|
|
38
|
+
delete strippedNode.marks;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
if (hasContentChanged && childContent) {
|
|
42
|
+
strippedNode.content = childContent;
|
|
43
|
+
}
|
|
44
|
+
strippedContent.push(strippedNode);
|
|
45
|
+
});
|
|
46
|
+
return strippedContent !== null && strippedContent !== void 0 ? strippedContent : content;
|
|
47
|
+
};
|
|
48
|
+
export { _stripAnnotationMarksFromJSONContent as stripAnnotationMarksFromJSONContent };
|
|
3
49
|
export var convertSyncBlockPMNodeToSyncBlockData = function convertSyncBlockPMNodeToSyncBlockData(node) {
|
|
50
|
+
var content = node.content.toJSON();
|
|
4
51
|
return {
|
|
5
52
|
blockInstanceId: node.attrs.localId,
|
|
6
|
-
content:
|
|
53
|
+
content: fg('platform_synced_block_patch_12') ? _stripAnnotationMarksFromJSONContent(content) : content,
|
|
7
54
|
resourceId: node.attrs.resourceId
|
|
8
55
|
};
|
|
9
56
|
};
|
|
@@ -65,6 +65,7 @@ export declare class ReferenceSyncBlockStoreManager {
|
|
|
65
65
|
generateResourceIdForReference(sourceId: ResourceId): ResourceId;
|
|
66
66
|
updateFireAnalyticsEvent(fireAnalyticsEvent?: (payload: RendererSyncBlockEventPayload) => void): void;
|
|
67
67
|
getInitialSyncBlockData(resourceId: ResourceId): SyncBlockInstance | undefined;
|
|
68
|
+
private stripAnnotationMarksFromReferenceData;
|
|
68
69
|
private updateSessionCache;
|
|
69
70
|
private getFromSessionCache;
|
|
70
71
|
fetchSyncBlockSourceInfoBySourceAri(sourceAri: string, hasAccess?: boolean): Promise<SyncBlockSourceInfo | undefined>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import type { JSONNode } from '@atlaskit/editor-json-transformer';
|
|
1
|
+
import type { JSONNode } from '@atlaskit/editor-json-transformer/types';
|
|
2
2
|
import type { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
|
|
3
3
|
import type { SyncBlockData, BlockInstanceId, ResourceId, SyncBlockNode, SyncBlockProduct } from '../common/types';
|
|
4
|
+
export declare const stripAnnotationMarksFromJSONContent: <T extends JSONNode | undefined>(content: T[]) => T[];
|
|
4
5
|
export declare const convertSyncBlockPMNodeToSyncBlockData: (node: PMNode) => SyncBlockData;
|
|
5
6
|
export declare const createSyncBlockNode: (localId: BlockInstanceId, resourceId: ResourceId) => SyncBlockNode;
|
|
6
7
|
export declare const convertSyncBlockJSONNodeToSyncBlockNode: (node: JSONNode) => SyncBlockNode | undefined;
|
|
@@ -65,6 +65,7 @@ export declare class ReferenceSyncBlockStoreManager {
|
|
|
65
65
|
generateResourceIdForReference(sourceId: ResourceId): ResourceId;
|
|
66
66
|
updateFireAnalyticsEvent(fireAnalyticsEvent?: (payload: RendererSyncBlockEventPayload) => void): void;
|
|
67
67
|
getInitialSyncBlockData(resourceId: ResourceId): SyncBlockInstance | undefined;
|
|
68
|
+
private stripAnnotationMarksFromReferenceData;
|
|
68
69
|
private updateSessionCache;
|
|
69
70
|
private getFromSessionCache;
|
|
70
71
|
fetchSyncBlockSourceInfoBySourceAri(sourceAri: string, hasAccess?: boolean): Promise<SyncBlockSourceInfo | undefined>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import type { JSONNode } from '@atlaskit/editor-json-transformer';
|
|
1
|
+
import type { JSONNode } from '@atlaskit/editor-json-transformer/types';
|
|
2
2
|
import type { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
|
|
3
3
|
import type { SyncBlockData, BlockInstanceId, ResourceId, SyncBlockNode, SyncBlockProduct } from '../common/types';
|
|
4
|
+
export declare const stripAnnotationMarksFromJSONContent: <T extends JSONNode | undefined>(content: T[]) => T[];
|
|
4
5
|
export declare const convertSyncBlockPMNodeToSyncBlockData: (node: PMNode) => SyncBlockData;
|
|
5
6
|
export declare const createSyncBlockNode: (localId: BlockInstanceId, resourceId: ResourceId) => SyncBlockNode;
|
|
6
7
|
export declare const convertSyncBlockJSONNodeToSyncBlockNode: (node: JSONNode) => SyncBlockNode | undefined;
|
package/package.json
CHANGED
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"uuid": "^3.1.0"
|
|
39
39
|
},
|
|
40
40
|
"peerDependencies": {
|
|
41
|
-
"@atlaskit/editor-common": "^114.
|
|
41
|
+
"@atlaskit/editor-common": "^114.37.0",
|
|
42
42
|
"react": "^18.2.0"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
}
|
|
82
82
|
},
|
|
83
83
|
"name": "@atlaskit/editor-synced-block-provider",
|
|
84
|
-
"version": "6.6.
|
|
84
|
+
"version": "6.6.6",
|
|
85
85
|
"description": "Synced Block Provider for @atlaskit/editor-plugin-synced-block",
|
|
86
86
|
"author": "Atlassian Pty Ltd",
|
|
87
87
|
"license": "Apache-2.0",
|