@atlaskit/editor-synced-block-provider 3.30.5 → 3.30.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 +8 -0
- package/dist/cjs/clients/block-service/blockService.js +23 -16
- package/dist/cjs/clients/confluence/fetchMediaToken.js +7 -5
- package/dist/cjs/hooks/useFetchSyncBlockTitle.js +40 -2
- package/dist/cjs/hooks/useHandleContentChanges.js +3 -0
- package/dist/cjs/providers/syncBlockProvider.js +32 -2
- package/dist/cjs/store-manager/referenceSyncBlockStoreManager.js +3 -0
- package/dist/cjs/store-manager/syncBlockStoreManager.js +20 -5
- package/dist/cjs/utils/experienceTracking.js +10 -10
- package/dist/cjs/utils/resourceId.js +2 -2
- package/dist/cjs/utils/retry.js +33 -7
- package/dist/cjs/utils/utils.js +1 -1
- package/dist/cjs/utils/validValue.js +2 -1
- package/dist/es2019/clients/block-service/blockService.js +20 -13
- package/dist/es2019/clients/confluence/fetchMediaToken.js +5 -3
- package/dist/es2019/hooks/useFetchSyncBlockTitle.js +36 -3
- package/dist/es2019/hooks/useHandleContentChanges.js +3 -0
- package/dist/es2019/providers/syncBlockProvider.js +30 -3
- package/dist/es2019/store-manager/referenceSyncBlockStoreManager.js +3 -0
- package/dist/es2019/store-manager/syncBlockStoreManager.js +19 -6
- package/dist/es2019/utils/experienceTracking.js +10 -10
- package/dist/es2019/utils/resourceId.js +2 -2
- package/dist/es2019/utils/retry.js +26 -6
- package/dist/es2019/utils/utils.js +1 -1
- package/dist/es2019/utils/validValue.js +2 -1
- package/dist/esm/clients/block-service/blockService.js +23 -16
- package/dist/esm/clients/confluence/fetchMediaToken.js +7 -5
- package/dist/esm/hooks/useFetchSyncBlockTitle.js +41 -3
- package/dist/esm/hooks/useHandleContentChanges.js +3 -0
- package/dist/esm/providers/syncBlockProvider.js +33 -3
- package/dist/esm/store-manager/referenceSyncBlockStoreManager.js +3 -0
- package/dist/esm/store-manager/syncBlockStoreManager.js +21 -6
- package/dist/esm/utils/experienceTracking.js +10 -10
- package/dist/esm/utils/resourceId.js +2 -2
- package/dist/esm/utils/retry.js +33 -7
- package/dist/esm/utils/utils.js +1 -1
- package/dist/esm/utils/validValue.js +2 -1
- package/dist/types/providers/syncBlockProvider.d.ts +1 -1
- package/dist/types/store-manager/syncBlockStoreManager.d.ts +1 -1
- package/dist/types/utils/experienceTracking.d.ts +10 -10
- package/dist/types-ts4.5/providers/syncBlockProvider.d.ts +1 -1
- package/dist/types-ts4.5/store-manager/syncBlockStoreManager.d.ts +1 -1
- package/dist/types-ts4.5/utils/experienceTracking.d.ts +10 -10
- package/package.json +5 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# @atlaskit/editor-synced-block-provider
|
|
2
2
|
|
|
3
|
+
## 3.30.6
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`e18437c28f9ab`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/e18437c28f9ab) -
|
|
8
|
+
Improve synced blocks robustness.
|
|
9
|
+
- Updated dependencies
|
|
10
|
+
|
|
3
11
|
## 3.30.5
|
|
4
12
|
|
|
5
13
|
### Patch Changes
|
|
@@ -130,7 +130,7 @@ var BATCH_RETRIEVE_BLOCKS_OPERATION_NAME = 'EDITOR_SYNCED_BLOCK_BATCH_RETRIEVE_B
|
|
|
130
130
|
var GET_BLOCK_REFERENCES_OPERATION_NAME = 'EDITOR_SYNCED_BLOCK_GET_REFERENCES';
|
|
131
131
|
var GET_BLOCK_OPERATION_NAME = 'EDITOR_SYNCED_BLOCK_GET_BLOCK';
|
|
132
132
|
var buildGetDocumentReferenceBlocksQuery = function buildGetDocumentReferenceBlocksQuery(documentAri) {
|
|
133
|
-
return "query ".concat(GET_DOCUMENT_REFERENCE_BLOCKS_OPERATION_NAME, " {\n\tblockService_getDocumentReferenceBlocks(documentAri: \""
|
|
133
|
+
return "query ".concat(GET_DOCUMENT_REFERENCE_BLOCKS_OPERATION_NAME, " {\n\tblockService_getDocumentReferenceBlocks(documentAri: ").concat((0, _platformFeatureFlags.fg)('platform_synced_block_patch_4') ? JSON.stringify(documentAri) : "\"".concat(documentAri, "\""), ") {\n\t\tblocks {\n\t\t\tblockAri\n\t\t\tblockInstanceId\n\t\t\tcontent\n\t\t\tcontentUpdatedAt\n\t\t\tcreatedAt\n\t\t\tcreatedBy\n\t\t\tproduct\n\t\t\tsourceAri\n\t\t\tstatus\n\t\t\tversion\n\t\t}\n\t\terrors {\n\t\t\tblockAri\n\t\t\tcode\n\t\t\treason\n\t\t}\n\t}\n}");
|
|
134
134
|
};
|
|
135
135
|
var buildGetBlockQuery = function buildGetBlockQuery(blockAri) {
|
|
136
136
|
return "query ".concat(GET_BLOCK_OPERATION_NAME, " {\n\tblockService_getBlock(blockAri: ").concat(JSON.stringify(blockAri), ") {\n\t\tblockAri\n\t\tblockInstanceId\n\t\tcontent\n\t\tcontentUpdatedAt\n\t\tcreatedAt\n\t\tcreatedBy\n\t\tdeletionReason\n\t\tproduct\n\t\tsourceAri\n\t\tstatus\n\t\tversion\n\t}\n}");
|
|
@@ -161,11 +161,17 @@ var buildDeleteBlockMutation = function buildDeleteBlockMutation(blockAri, delet
|
|
|
161
161
|
* 'jira-work-item' -> 'JIRA_WORK_ITEM'
|
|
162
162
|
*/
|
|
163
163
|
var convertProductToGraphQLEnum = function convertProductToGraphQLEnum(product) {
|
|
164
|
-
|
|
165
|
-
|
|
164
|
+
switch (product) {
|
|
165
|
+
case 'confluence-page':
|
|
166
|
+
return 'CONFLUENCE_PAGE';
|
|
167
|
+
case 'jira-work-item':
|
|
168
|
+
return 'JIRA_WORK_ITEM';
|
|
169
|
+
default:
|
|
170
|
+
{
|
|
171
|
+
var exhaustiveCheck = product;
|
|
172
|
+
throw new Error("Unsupported product: ".concat(exhaustiveCheck));
|
|
173
|
+
}
|
|
166
174
|
}
|
|
167
|
-
// product must be 'jira-work-item' at this point
|
|
168
|
-
return 'JIRA_WORK_ITEM';
|
|
169
175
|
};
|
|
170
176
|
var buildCreateBlockMutation = function buildCreateBlockMutation(blockAri, blockInstanceId, content, product, sourceAri, stepVersion, status) {
|
|
171
177
|
var inputParts = ["blockAri: ".concat(JSON.stringify(blockAri)), "blockInstanceId: ".concat(JSON.stringify(blockInstanceId)), "content: ".concat(JSON.stringify(content)), "product: ".concat(convertProductToGraphQLEnum(product)), "sourceAri: ".concat(JSON.stringify(sourceAri))];
|
|
@@ -336,8 +342,8 @@ var batchRetrieveSyncedBlocks = exports.batchRetrieveSyncedBlocks = /*#__PURE__*
|
|
|
336
342
|
}();
|
|
337
343
|
var deleteSyncedBlock = exports.deleteSyncedBlock = /*#__PURE__*/function () {
|
|
338
344
|
var _ref7 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(_ref6) {
|
|
339
|
-
var _result$data3;
|
|
340
|
-
var blockAri, deleteReason, bodyData, url, response, result;
|
|
345
|
+
var _result$data3, _result$data4;
|
|
346
|
+
var blockAri, deleteReason, bodyData, url, response, result, isDeleted;
|
|
341
347
|
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
342
348
|
while (1) switch (_context4.prev = _context4.next) {
|
|
343
349
|
case 0:
|
|
@@ -373,12 +379,13 @@ var deleteSyncedBlock = exports.deleteSyncedBlock = /*#__PURE__*/function () {
|
|
|
373
379
|
return e.message;
|
|
374
380
|
}).join(', '));
|
|
375
381
|
case 13:
|
|
376
|
-
|
|
377
|
-
|
|
382
|
+
isDeleted = (0, _platformFeatureFlags.fg)('platform_synced_block_patch_4') ? (_result$data3 = result.data) === null || _result$data3 === void 0 || (_result$data3 = _result$data3.blockService_deleteBlock) === null || _result$data3 === void 0 ? void 0 : _result$data3.deleted : (_result$data4 = result.data) === null || _result$data4 === void 0 ? void 0 : _result$data4.blockService_deleteBlock.deleted;
|
|
383
|
+
if (isDeleted) {
|
|
384
|
+
_context4.next = 16;
|
|
378
385
|
break;
|
|
379
386
|
}
|
|
380
387
|
throw new Error('Block deletion failed; deleted flag is false');
|
|
381
|
-
case
|
|
388
|
+
case 16:
|
|
382
389
|
case "end":
|
|
383
390
|
return _context4.stop();
|
|
384
391
|
}
|
|
@@ -437,7 +444,7 @@ var updateSyncedBlock = exports.updateSyncedBlock = /*#__PURE__*/function () {
|
|
|
437
444
|
}();
|
|
438
445
|
var createSyncedBlock = exports.createSyncedBlock = /*#__PURE__*/function () {
|
|
439
446
|
var _ref1 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6(_ref0) {
|
|
440
|
-
var _result$
|
|
447
|
+
var _result$data5;
|
|
441
448
|
var blockAri, blockInstanceId, sourceAri, product, content, stepVersion, status, bodyData, url, response, result;
|
|
442
449
|
return _regenerator.default.wrap(function _callee6$(_context6) {
|
|
443
450
|
while (1) switch (_context6.prev = _context6.next) {
|
|
@@ -474,7 +481,7 @@ var createSyncedBlock = exports.createSyncedBlock = /*#__PURE__*/function () {
|
|
|
474
481
|
return e.message;
|
|
475
482
|
}).join(', '));
|
|
476
483
|
case 13:
|
|
477
|
-
if ((_result$
|
|
484
|
+
if ((_result$data5 = result.data) !== null && _result$data5 !== void 0 && _result$data5.blockService_createBlock) {
|
|
478
485
|
_context6.next = 15;
|
|
479
486
|
break;
|
|
480
487
|
}
|
|
@@ -493,7 +500,7 @@ var createSyncedBlock = exports.createSyncedBlock = /*#__PURE__*/function () {
|
|
|
493
500
|
}();
|
|
494
501
|
var updateReferenceSyncedBlockOnDocument = exports.updateReferenceSyncedBlockOnDocument = /*#__PURE__*/function () {
|
|
495
502
|
var _ref11 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7(_ref10) {
|
|
496
|
-
var documentAri, blocks, _ref10$noContent, noContent, bodyData, url, response, result, _result$
|
|
503
|
+
var documentAri, blocks, _ref10$noContent, noContent, bodyData, url, response, result, _result$data6;
|
|
497
504
|
return _regenerator.default.wrap(function _callee7$(_context7) {
|
|
498
505
|
while (1) switch (_context7.prev = _context7.next) {
|
|
499
506
|
case 0:
|
|
@@ -534,7 +541,7 @@ var updateReferenceSyncedBlockOnDocument = exports.updateReferenceSyncedBlockOnD
|
|
|
534
541
|
_context7.next = 17;
|
|
535
542
|
break;
|
|
536
543
|
}
|
|
537
|
-
if ((_result$
|
|
544
|
+
if ((_result$data6 = result.data) !== null && _result$data6 !== void 0 && _result$data6.blockService_updateDocumentReferences) {
|
|
538
545
|
_context7.next = 16;
|
|
539
546
|
break;
|
|
540
547
|
}
|
|
@@ -553,7 +560,7 @@ var updateReferenceSyncedBlockOnDocument = exports.updateReferenceSyncedBlockOnD
|
|
|
553
560
|
}();
|
|
554
561
|
var getReferenceSyncedBlocksByBlockAri = exports.getReferenceSyncedBlocksByBlockAri = /*#__PURE__*/function () {
|
|
555
562
|
var _ref13 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8(_ref12) {
|
|
556
|
-
var _result$
|
|
563
|
+
var _result$data7;
|
|
557
564
|
var blockAri, bodyData, url, response, result, graphqlResponse;
|
|
558
565
|
return _regenerator.default.wrap(function _callee8$(_context8) {
|
|
559
566
|
while (1) switch (_context8.prev = _context8.next) {
|
|
@@ -590,7 +597,7 @@ var getReferenceSyncedBlocksByBlockAri = exports.getReferenceSyncedBlocksByBlock
|
|
|
590
597
|
return e.message;
|
|
591
598
|
}).join(', '));
|
|
592
599
|
case 13:
|
|
593
|
-
if ((_result$
|
|
600
|
+
if ((_result$data7 = result.data) !== null && _result$data7 !== void 0 && _result$data7.blockService_getReferences) {
|
|
594
601
|
_context8.next = 15;
|
|
595
602
|
break;
|
|
596
603
|
}
|
|
@@ -9,6 +9,7 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
|
|
|
9
9
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
10
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
11
11
|
var _monitoring = require("@atlaskit/editor-common/monitoring");
|
|
12
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
12
13
|
var _retry = require("../../utils/retry");
|
|
13
14
|
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; }
|
|
14
15
|
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; }
|
|
@@ -66,7 +67,7 @@ var getContentMediaSession = /*#__PURE__*/function () {
|
|
|
66
67
|
}();
|
|
67
68
|
var fetchMediaToken = exports.fetchMediaToken = /*#__PURE__*/function () {
|
|
68
69
|
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(contentId) {
|
|
69
|
-
var _response$data, _contentData$token, response, contentData, token, configuration, collection;
|
|
70
|
+
var _response$data, _contentData$token, response, contentData, token, configuration, collection, errorMsg;
|
|
70
71
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
71
72
|
while (1) switch (_context2.prev = _context2.next) {
|
|
72
73
|
case 0:
|
|
@@ -85,19 +86,20 @@ var fetchMediaToken = exports.fetchMediaToken = /*#__PURE__*/function () {
|
|
|
85
86
|
}
|
|
86
87
|
throw new Error('Failed to get content media session data');
|
|
87
88
|
case 10:
|
|
88
|
-
return _context2.abrupt("return",
|
|
89
|
+
return _context2.abrupt("return", {
|
|
89
90
|
config: configuration,
|
|
90
91
|
token: token,
|
|
91
92
|
collectionId: collection
|
|
92
|
-
})
|
|
93
|
+
});
|
|
93
94
|
case 13:
|
|
94
95
|
_context2.prev = 13;
|
|
95
96
|
_context2.t0 = _context2["catch"](0);
|
|
96
97
|
(0, _monitoring.logException)(_context2.t0, {
|
|
97
98
|
location: 'editor-synced-block-provider/fetchMediaToken'
|
|
98
99
|
});
|
|
99
|
-
|
|
100
|
-
|
|
100
|
+
errorMsg = (0, _platformFeatureFlags.fg)('platform_synced_block_patch_4') ? _context2.t0 instanceof Error ? _context2.t0.message : String(_context2.t0) : String(_context2.t0);
|
|
101
|
+
throw new Error("Failed to get content media session: ".concat(errorMsg));
|
|
102
|
+
case 18:
|
|
101
103
|
case "end":
|
|
102
104
|
return _context2.stop();
|
|
103
105
|
}
|
|
@@ -7,7 +7,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.useFetchSyncBlockTitle = void 0;
|
|
8
8
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
9
|
var _react = require("react");
|
|
10
|
-
var
|
|
10
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
11
|
+
var _platformFeatureFlagsReact = require("@atlaskit/platform-feature-flags-react");
|
|
12
|
+
var useFetchSyncBlockTitleBase = function useFetchSyncBlockTitleBase(manager, syncBlockNode) {
|
|
11
13
|
// Initialize state from cache to prevent flickering during re-renders
|
|
12
14
|
var _useState = (0, _react.useState)(function () {
|
|
13
15
|
var _cachedData$data;
|
|
@@ -33,4 +35,40 @@ var useFetchSyncBlockTitle = exports.useFetchSyncBlockTitle = function useFetchS
|
|
|
33
35
|
};
|
|
34
36
|
}, [manager, syncBlockNode]);
|
|
35
37
|
return sourceTitle;
|
|
36
|
-
};
|
|
38
|
+
};
|
|
39
|
+
var useFetchSyncBlockTitlePatched = function useFetchSyncBlockTitlePatched(manager, syncBlockNode) {
|
|
40
|
+
var _syncBlockNode$attrs, _syncBlockNode$attrs2;
|
|
41
|
+
var nodeRef = (0, _react.useRef)(syncBlockNode);
|
|
42
|
+
nodeRef.current = syncBlockNode;
|
|
43
|
+
var nodeTypeName = syncBlockNode.type.name;
|
|
44
|
+
var resourceId = (_syncBlockNode$attrs = syncBlockNode.attrs) === null || _syncBlockNode$attrs === void 0 ? void 0 : _syncBlockNode$attrs.resourceId;
|
|
45
|
+
var localId = (_syncBlockNode$attrs2 = syncBlockNode.attrs) === null || _syncBlockNode$attrs2 === void 0 ? void 0 : _syncBlockNode$attrs2.localId;
|
|
46
|
+
|
|
47
|
+
// Initialize state from cache to prevent flickering during re-renders
|
|
48
|
+
var _useState3 = (0, _react.useState)(function () {
|
|
49
|
+
var _cachedData$data2;
|
|
50
|
+
if (nodeTypeName !== 'syncBlock') {
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
if (!resourceId) {
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
var cachedData = manager.referenceManager.getFromCache(resourceId);
|
|
57
|
+
return cachedData === null || cachedData === void 0 || (_cachedData$data2 = cachedData.data) === null || _cachedData$data2 === void 0 ? void 0 : _cachedData$data2.sourceTitle;
|
|
58
|
+
}),
|
|
59
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
60
|
+
sourceTitle = _useState4[0],
|
|
61
|
+
setSourceTitle = _useState4[1];
|
|
62
|
+
(0, _react.useEffect)(function () {
|
|
63
|
+
var unsubscribe = manager.referenceManager.subscribeToSourceTitle(nodeRef.current, function (title) {
|
|
64
|
+
setSourceTitle(title);
|
|
65
|
+
});
|
|
66
|
+
return function () {
|
|
67
|
+
unsubscribe();
|
|
68
|
+
};
|
|
69
|
+
}, [manager, nodeTypeName, resourceId, localId]);
|
|
70
|
+
return sourceTitle;
|
|
71
|
+
};
|
|
72
|
+
var useFetchSyncBlockTitle = exports.useFetchSyncBlockTitle = (0, _platformFeatureFlagsReact.conditionalHooksFactory)(function () {
|
|
73
|
+
return (0, _platformFeatureFlags.fg)('platform_synced_block_patch_4');
|
|
74
|
+
}, useFetchSyncBlockTitlePatched, useFetchSyncBlockTitleBase);
|
|
@@ -6,6 +6,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.useHandleContentChanges = void 0;
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
var useHandleContentChanges = exports.useHandleContentChanges = function useHandleContentChanges(manager, syncBlockNode) {
|
|
9
|
+
// syncBlockNode is intentionally in deps — its reference changes when the
|
|
10
|
+
// node content is modified by a ProseMirror transaction, which is exactly
|
|
11
|
+
// when the source manager cache needs to be updated.
|
|
9
12
|
(0, _react.useEffect)(function () {
|
|
10
13
|
manager.sourceManager.updateSyncBlockData(syncBlockNode);
|
|
11
14
|
}, [manager, syncBlockNode]);
|
|
@@ -15,6 +15,7 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits
|
|
|
15
15
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
16
16
|
var _react = require("react");
|
|
17
17
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
18
|
+
var _platformFeatureFlagsReact = require("@atlaskit/platform-feature-flags-react");
|
|
18
19
|
var _ari = require("../clients/block-service/ari");
|
|
19
20
|
var _ari2 = require("../clients/confluence/ari");
|
|
20
21
|
var _sourceInfo2 = require("../clients/confluence/sourceInfo");
|
|
@@ -451,7 +452,7 @@ var createSyncedBlockProvider = function createSyncedBlockProvider(_ref) {
|
|
|
451
452
|
writeProvider = _ref.writeProvider;
|
|
452
453
|
return new SyncedBlockProvider(fetchProvider, writeProvider);
|
|
453
454
|
};
|
|
454
|
-
var
|
|
455
|
+
var useMemoizedSyncedBlockProviderBase = function useMemoizedSyncedBlockProviderBase(_ref2) {
|
|
455
456
|
var fetchProvider = _ref2.fetchProvider,
|
|
456
457
|
writeProvider = _ref2.writeProvider,
|
|
457
458
|
providerOptions = _ref2.providerOptions,
|
|
@@ -468,4 +469,33 @@ var useMemoizedSyncedBlockProvider = exports.useMemoizedSyncedBlockProvider = fu
|
|
|
468
469
|
syncBlockProvider.setSSRData(ssrData);
|
|
469
470
|
}
|
|
470
471
|
return syncBlockProvider;
|
|
471
|
-
};
|
|
472
|
+
};
|
|
473
|
+
var useMemoizedSyncedBlockProviderPatched = function useMemoizedSyncedBlockProviderPatched(_ref3) {
|
|
474
|
+
var fetchProvider = _ref3.fetchProvider,
|
|
475
|
+
writeProvider = _ref3.writeProvider,
|
|
476
|
+
providerOptions = _ref3.providerOptions,
|
|
477
|
+
getSSRData = _ref3.getSSRData;
|
|
478
|
+
var syncBlockProvider = (0, _react.useMemo)(function () {
|
|
479
|
+
return createSyncedBlockProvider({
|
|
480
|
+
fetchProvider: fetchProvider,
|
|
481
|
+
writeProvider: writeProvider
|
|
482
|
+
});
|
|
483
|
+
}, [fetchProvider, writeProvider]);
|
|
484
|
+
var prevProviderOptionsRef = (0, _react.useRef)(undefined);
|
|
485
|
+
if (providerOptions !== prevProviderOptionsRef.current) {
|
|
486
|
+
prevProviderOptionsRef.current = providerOptions;
|
|
487
|
+
syncBlockProvider.setProviderOptions(providerOptions);
|
|
488
|
+
}
|
|
489
|
+
var prevSSRDataRef = (0, _react.useRef)(undefined);
|
|
490
|
+
var ssrData = getSSRData === null || getSSRData === void 0 ? void 0 : getSSRData();
|
|
491
|
+
if (ssrData !== prevSSRDataRef.current) {
|
|
492
|
+
prevSSRDataRef.current = ssrData;
|
|
493
|
+
if (ssrData) {
|
|
494
|
+
syncBlockProvider.setSSRData(ssrData);
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
return syncBlockProvider;
|
|
498
|
+
};
|
|
499
|
+
var useMemoizedSyncedBlockProvider = exports.useMemoizedSyncedBlockProvider = (0, _platformFeatureFlagsReact.conditionalHooksFactory)(function () {
|
|
500
|
+
return (0, _platformFeatureFlags.fg)('platform_synced_block_patch_4');
|
|
501
|
+
}, useMemoizedSyncedBlockProviderPatched, useMemoizedSyncedBlockProviderBase);
|
|
@@ -392,6 +392,9 @@ var ReferenceSyncBlockStoreManager = exports.ReferenceSyncBlockStoreManager = /*
|
|
|
392
392
|
value: function handleGraphQLSubscriptionUpdate(syncBlockInstance) {
|
|
393
393
|
var _this5 = this;
|
|
394
394
|
if (!syncBlockInstance.resourceId) {
|
|
395
|
+
if ((0, _platformFeatureFlags.fg)('platform_synced_block_patch_4')) {
|
|
396
|
+
return;
|
|
397
|
+
}
|
|
395
398
|
throw new Error('Sync block instance provided to graphql subscription update missing resource id');
|
|
396
399
|
}
|
|
397
400
|
var existingSyncBlock = this.getFromCache(syncBlockInstance.resourceId);
|
|
@@ -12,6 +12,8 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
|
|
|
12
12
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
13
|
var _react = require("react");
|
|
14
14
|
var _monitoring = require("@atlaskit/editor-common/monitoring");
|
|
15
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
16
|
+
var _platformFeatureFlagsReact = require("@atlaskit/platform-feature-flags-react");
|
|
15
17
|
var _ari = require("../clients/block-service/ari");
|
|
16
18
|
var _types = require("../common/types");
|
|
17
19
|
var _errorHandling = require("../utils/errorHandling");
|
|
@@ -28,7 +30,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
28
30
|
var SyncBlockStoreManager = exports.SyncBlockStoreManager = /*#__PURE__*/function () {
|
|
29
31
|
function SyncBlockStoreManager(dataProvider) {
|
|
30
32
|
(0, _classCallCheck2.default)(this, SyncBlockStoreManager);
|
|
31
|
-
// In future, if reference manager needs to reach to source manager and read
|
|
33
|
+
// In future, if reference manager needs to reach to source manager and read its current in memory cache
|
|
32
34
|
// we can pass the source manager as a parameter to the reference manager constructor
|
|
33
35
|
this.sourceSyncBlockStoreManager = new _sourceSyncBlockStoreManager.SourceSyncBlockStoreManager(dataProvider);
|
|
34
36
|
this.referenceSyncBlockStoreManager = new _referenceSyncBlockStoreManager.ReferenceSyncBlockStoreManager(dataProvider);
|
|
@@ -200,11 +202,24 @@ var SyncBlockStoreManager = exports.SyncBlockStoreManager = /*#__PURE__*/functio
|
|
|
200
202
|
var createSyncBlockStoreManager = function createSyncBlockStoreManager(dataProvider) {
|
|
201
203
|
return new SyncBlockStoreManager(dataProvider);
|
|
202
204
|
};
|
|
203
|
-
var
|
|
205
|
+
var useMemoizedSyncBlockStoreManagerBase = function useMemoizedSyncBlockStoreManagerBase(dataProvider, fireAnalyticsEvent) {
|
|
204
206
|
var syncBlockStoreManager = (0, _react.useMemo)(function () {
|
|
205
|
-
|
|
206
|
-
return syncBlockStoreManager;
|
|
207
|
+
return createSyncBlockStoreManager(dataProvider);
|
|
207
208
|
}, [dataProvider]);
|
|
208
209
|
syncBlockStoreManager.setFireAnalyticsEvent(fireAnalyticsEvent);
|
|
209
210
|
return syncBlockStoreManager;
|
|
210
|
-
};
|
|
211
|
+
};
|
|
212
|
+
var useMemoizedSyncBlockStoreManagerPatched = function useMemoizedSyncBlockStoreManagerPatched(dataProvider, fireAnalyticsEvent) {
|
|
213
|
+
var syncBlockStoreManager = (0, _react.useMemo)(function () {
|
|
214
|
+
return createSyncBlockStoreManager(dataProvider);
|
|
215
|
+
}, [dataProvider]);
|
|
216
|
+
var prevFireAnalyticsEventRef = (0, _react.useRef)(undefined);
|
|
217
|
+
if (fireAnalyticsEvent !== prevFireAnalyticsEventRef.current) {
|
|
218
|
+
prevFireAnalyticsEventRef.current = fireAnalyticsEvent;
|
|
219
|
+
syncBlockStoreManager.setFireAnalyticsEvent(fireAnalyticsEvent);
|
|
220
|
+
}
|
|
221
|
+
return syncBlockStoreManager;
|
|
222
|
+
};
|
|
223
|
+
var useMemoizedSyncBlockStoreManager = exports.useMemoizedSyncBlockStoreManager = (0, _platformFeatureFlagsReact.conditionalHooksFactory)(function () {
|
|
224
|
+
return (0, _platformFeatureFlags.fg)('platform_synced_block_patch_4');
|
|
225
|
+
}, useMemoizedSyncBlockStoreManagerPatched, useMemoizedSyncBlockStoreManagerBase);
|
|
@@ -87,9 +87,9 @@ var getFetchSourceInfoExperience = exports.getFetchSourceInfoExperience = functi
|
|
|
87
87
|
/**
|
|
88
88
|
* This experience tracks when a source sync block is deleted from the BE.
|
|
89
89
|
*
|
|
90
|
-
* Start: When the
|
|
91
|
-
* Success: When the
|
|
92
|
-
* Failure: When the timeout duration passes without the
|
|
90
|
+
* Start: When the delete source sync block function is called.
|
|
91
|
+
* Success: When the sync block deletion is successful within the timeout duration of start.
|
|
92
|
+
* Failure: When the timeout duration passes without the sync block being successfully deleted, or the deletion fails
|
|
93
93
|
*/
|
|
94
94
|
var getDeleteSourceExperience = exports.getDeleteSourceExperience = function getDeleteSourceExperience(fireAnalyticsEvent) {
|
|
95
95
|
return new _experiences.Experience(_experiences.EXPERIENCE_ID.ASYNC_OPERATION, {
|
|
@@ -104,9 +104,9 @@ var getDeleteSourceExperience = exports.getDeleteSourceExperience = function get
|
|
|
104
104
|
/**
|
|
105
105
|
* This experience tracks when a source sync block is created and registered to the BE.
|
|
106
106
|
*
|
|
107
|
-
* Start: When the
|
|
108
|
-
* Success: When the
|
|
109
|
-
* Failure: When the timeout duration passes without the
|
|
107
|
+
* Start: When the create source sync block function is called.
|
|
108
|
+
* Success: When the sync block creation is successful within the timeout duration of start.
|
|
109
|
+
* Failure: When the timeout duration passes without the sync block being successfully created, or the creation fails
|
|
110
110
|
*/
|
|
111
111
|
var getCreateSourceExperience = exports.getCreateSourceExperience = function getCreateSourceExperience(fireAnalyticsEvent) {
|
|
112
112
|
return new _experiences.Experience(_experiences.EXPERIENCE_ID.ASYNC_OPERATION, {
|
|
@@ -119,11 +119,11 @@ var getCreateSourceExperience = exports.getCreateSourceExperience = function get
|
|
|
119
119
|
};
|
|
120
120
|
|
|
121
121
|
/**
|
|
122
|
-
* This experience tracks when a
|
|
122
|
+
* This experience tracks when references for a sync block are fetched from the BE.
|
|
123
123
|
*
|
|
124
|
-
* Start: When the
|
|
125
|
-
* Success: When the fetching
|
|
126
|
-
* Failure: When the timeout duration passes without
|
|
124
|
+
* Start: When the fetchReferences function is called.
|
|
125
|
+
* Success: When the fetching of references is successful within the timeout duration of start.
|
|
126
|
+
* Failure: When the timeout duration passes without references being successfully fetched, or the fetch fails
|
|
127
127
|
*/
|
|
128
128
|
var getFetchReferencesExperience = exports.getFetchReferencesExperience = function getFetchReferencesExperience(fireAnalyticsEvent) {
|
|
129
129
|
return new _experiences.Experience(_experiences.EXPERIENCE_ID.ASYNC_OPERATION, {
|
|
@@ -19,7 +19,7 @@ var isSyncBlockProduct = function isSyncBlockProduct(product) {
|
|
|
19
19
|
*
|
|
20
20
|
* Format
|
|
21
21
|
* - {product}/{contentId}/{uuid}
|
|
22
|
-
* - product: a recognized `SyncBlockProduct` (e.g. 'confluence-page', 'jira-
|
|
22
|
+
* - product: a recognized `SyncBlockProduct` (e.g. 'confluence-page', 'jira-work-item')
|
|
23
23
|
* - contentId: the host content identifier (e.g. page ID or issue ID)
|
|
24
24
|
* - uuid: the UUID for the specific synced block instance
|
|
25
25
|
*
|
|
@@ -32,7 +32,7 @@ var isSyncBlockProduct = function isSyncBlockProduct(product) {
|
|
|
32
32
|
* - No extra segments; returns `undefined` on any invalid input
|
|
33
33
|
*
|
|
34
34
|
* Notes
|
|
35
|
-
* - `product` is a qualified domain like 'confluence-page' or 'jira-
|
|
35
|
+
* - `product` is a qualified domain like 'confluence-page' or 'jira-work-item',
|
|
36
36
|
* not just 'confluence' or 'jira'.
|
|
37
37
|
*/
|
|
38
38
|
|
package/dist/cjs/utils/retry.js
CHANGED
|
@@ -7,10 +7,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.fetchWithRetry = void 0;
|
|
8
8
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
9
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
|
-
var
|
|
10
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
11
|
+
var _platformFeatureFlagsReact = require("@atlaskit/platform-feature-flags-react");
|
|
12
|
+
var MAX_RETRY_DELAY = 30000;
|
|
13
|
+
var parseRetryAfterBase = function parseRetryAfterBase(retryAfter) {
|
|
11
14
|
var newDelay;
|
|
12
15
|
|
|
13
|
-
// retryAfter can either be in
|
|
16
|
+
// retryAfter can either be in seconds or HTTP date
|
|
14
17
|
var parsedRetryAfter = parseInt(retryAfter);
|
|
15
18
|
if (!isNaN(parsedRetryAfter)) {
|
|
16
19
|
newDelay = parsedRetryAfter * 1000;
|
|
@@ -23,13 +26,35 @@ var parseRetryAfter = function parseRetryAfter(retryAfter) {
|
|
|
23
26
|
}
|
|
24
27
|
return newDelay;
|
|
25
28
|
};
|
|
29
|
+
var parseRetryAfterPatched = function parseRetryAfterPatched(retryAfter) {
|
|
30
|
+
// retryAfter can either be in seconds or HTTP date
|
|
31
|
+
var parsedRetryAfter = parseInt(retryAfter, 10);
|
|
32
|
+
if (!isNaN(parsedRetryAfter) && parsedRetryAfter > 0) {
|
|
33
|
+
return parsedRetryAfter * 1000;
|
|
34
|
+
}
|
|
35
|
+
var retryDate = new Date(retryAfter);
|
|
36
|
+
if (isNaN(retryDate.getTime())) {
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
var delayFromDate = retryDate.getTime() - Date.now();
|
|
40
|
+
if (delayFromDate > 0) {
|
|
41
|
+
return delayFromDate;
|
|
42
|
+
}
|
|
43
|
+
return undefined;
|
|
44
|
+
};
|
|
45
|
+
var parseRetryAfter = (0, _platformFeatureFlagsReact.functionWithCondition)(function () {
|
|
46
|
+
return (0, _platformFeatureFlags.fg)('platform_synced_block_patch_4');
|
|
47
|
+
}, parseRetryAfterPatched, parseRetryAfterBase);
|
|
26
48
|
var _fetchWithRetry = exports.fetchWithRetry = /*#__PURE__*/function () {
|
|
27
49
|
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(url, options) {
|
|
50
|
+
var _ref2;
|
|
28
51
|
var retriesRemaining,
|
|
29
52
|
delay,
|
|
30
53
|
response,
|
|
31
54
|
shouldRetry,
|
|
32
55
|
retryAfter,
|
|
56
|
+
parsedDelay,
|
|
57
|
+
retryDelay,
|
|
33
58
|
_args = arguments;
|
|
34
59
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
35
60
|
while (1) switch (_context.prev = _context.next) {
|
|
@@ -48,14 +73,15 @@ var _fetchWithRetry = exports.fetchWithRetry = /*#__PURE__*/function () {
|
|
|
48
73
|
return _context.abrupt("return", response);
|
|
49
74
|
case 8:
|
|
50
75
|
retryAfter = response.headers.get('Retry-After');
|
|
51
|
-
|
|
76
|
+
parsedDelay = (_ref2 = retryAfter ? parseRetryAfter(retryAfter) : undefined) !== null && _ref2 !== void 0 ? _ref2 : delay;
|
|
77
|
+
retryDelay = (0, _platformFeatureFlags.fg)('platform_synced_block_patch_4') ? Math.min(parsedDelay, MAX_RETRY_DELAY) : parsedDelay;
|
|
78
|
+
_context.next = 13;
|
|
52
79
|
return new Promise(function (resolve) {
|
|
53
|
-
|
|
54
|
-
return setTimeout(resolve, (_ref2 = retryAfter ? parseRetryAfter(retryAfter) : undefined) !== null && _ref2 !== void 0 ? _ref2 : delay);
|
|
80
|
+
return setTimeout(resolve, retryDelay);
|
|
55
81
|
});
|
|
56
|
-
case
|
|
82
|
+
case 13:
|
|
57
83
|
return _context.abrupt("return", _fetchWithRetry(url, options, retriesRemaining - 1, delay * 2));
|
|
58
|
-
case
|
|
84
|
+
case 14:
|
|
59
85
|
case "end":
|
|
60
86
|
return _context.stop();
|
|
61
87
|
}
|
package/dist/cjs/utils/utils.js
CHANGED
|
@@ -4,8 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.normaliseSyncBlockStatus = exports.normaliseSyncBlockProduct = void 0;
|
|
7
|
+
var _consts = require("../common/consts");
|
|
7
8
|
var normaliseSyncBlockProduct = exports.normaliseSyncBlockProduct = function normaliseSyncBlockProduct(value) {
|
|
8
|
-
return value
|
|
9
|
+
return _consts.SYNC_BLOCK_PRODUCTS.includes(value) ? value : undefined;
|
|
9
10
|
};
|
|
10
11
|
var normaliseSyncBlockStatus = exports.normaliseSyncBlockStatus = function normaliseSyncBlockStatus(value) {
|
|
11
12
|
return value === 'active' || value === 'unpublished' || value === 'deleted' ? value : undefined;
|
|
@@ -82,7 +82,7 @@ const BATCH_RETRIEVE_BLOCKS_OPERATION_NAME = 'EDITOR_SYNCED_BLOCK_BATCH_RETRIEVE
|
|
|
82
82
|
const GET_BLOCK_REFERENCES_OPERATION_NAME = 'EDITOR_SYNCED_BLOCK_GET_REFERENCES';
|
|
83
83
|
const GET_BLOCK_OPERATION_NAME = 'EDITOR_SYNCED_BLOCK_GET_BLOCK';
|
|
84
84
|
const buildGetDocumentReferenceBlocksQuery = documentAri => `query ${GET_DOCUMENT_REFERENCE_BLOCKS_OPERATION_NAME} {
|
|
85
|
-
blockService_getDocumentReferenceBlocks(documentAri: "${documentAri}") {
|
|
85
|
+
blockService_getDocumentReferenceBlocks(documentAri: ${fg('platform_synced_block_patch_4') ? JSON.stringify(documentAri) : `"${documentAri}"`}) {
|
|
86
86
|
blocks {
|
|
87
87
|
blockAri
|
|
88
88
|
blockInstanceId
|
|
@@ -151,11 +151,17 @@ const buildDeleteBlockMutation = (blockAri, deletionReason) => {
|
|
|
151
151
|
* 'jira-work-item' -> 'JIRA_WORK_ITEM'
|
|
152
152
|
*/
|
|
153
153
|
const convertProductToGraphQLEnum = product => {
|
|
154
|
-
|
|
155
|
-
|
|
154
|
+
switch (product) {
|
|
155
|
+
case 'confluence-page':
|
|
156
|
+
return 'CONFLUENCE_PAGE';
|
|
157
|
+
case 'jira-work-item':
|
|
158
|
+
return 'JIRA_WORK_ITEM';
|
|
159
|
+
default:
|
|
160
|
+
{
|
|
161
|
+
const exhaustiveCheck = product;
|
|
162
|
+
throw new Error(`Unsupported product: ${exhaustiveCheck}`);
|
|
163
|
+
}
|
|
156
164
|
}
|
|
157
|
-
// product must be 'jira-work-item' at this point
|
|
158
|
-
return 'JIRA_WORK_ITEM';
|
|
159
165
|
};
|
|
160
166
|
const buildCreateBlockMutation = (blockAri, blockInstanceId, content, product, sourceAri, stepVersion, status) => {
|
|
161
167
|
const inputParts = [`blockAri: ${JSON.stringify(blockAri)}`, `blockInstanceId: ${JSON.stringify(blockInstanceId)}`, `content: ${JSON.stringify(content)}`, `product: ${convertProductToGraphQLEnum(product)}`, `sourceAri: ${JSON.stringify(sourceAri)}`];
|
|
@@ -327,7 +333,7 @@ export const deleteSyncedBlock = async ({
|
|
|
327
333
|
blockAri,
|
|
328
334
|
deleteReason
|
|
329
335
|
}) => {
|
|
330
|
-
var _result$data3;
|
|
336
|
+
var _result$data3, _result$data3$blockSe, _result$data4;
|
|
331
337
|
const bodyData = {
|
|
332
338
|
query: buildDeleteBlockMutation(blockAri, deleteReason),
|
|
333
339
|
operationName: DELETE_BLOCK_OPERATION_NAME
|
|
@@ -345,7 +351,8 @@ export const deleteSyncedBlock = async ({
|
|
|
345
351
|
if (result.errors && result.errors.length > 0) {
|
|
346
352
|
throw new Error(result.errors.map(e => e.message).join(', '));
|
|
347
353
|
}
|
|
348
|
-
|
|
354
|
+
const isDeleted = fg('platform_synced_block_patch_4') ? (_result$data3 = result.data) === null || _result$data3 === void 0 ? void 0 : (_result$data3$blockSe = _result$data3.blockService_deleteBlock) === null || _result$data3$blockSe === void 0 ? void 0 : _result$data3$blockSe.deleted : (_result$data4 = result.data) === null || _result$data4 === void 0 ? void 0 : _result$data4.blockService_deleteBlock.deleted;
|
|
355
|
+
if (!isDeleted) {
|
|
349
356
|
throw new Error('Block deletion failed; deleted flag is false');
|
|
350
357
|
}
|
|
351
358
|
};
|
|
@@ -382,7 +389,7 @@ export const createSyncedBlock = async ({
|
|
|
382
389
|
stepVersion,
|
|
383
390
|
status
|
|
384
391
|
}) => {
|
|
385
|
-
var _result$
|
|
392
|
+
var _result$data5;
|
|
386
393
|
const bodyData = {
|
|
387
394
|
query: buildCreateBlockMutation(blockAri, blockInstanceId, content, product, sourceAri, stepVersion, status),
|
|
388
395
|
operationName: CREATE_BLOCK_OPERATION_NAME
|
|
@@ -400,7 +407,7 @@ export const createSyncedBlock = async ({
|
|
|
400
407
|
if (result.errors && result.errors.length > 0) {
|
|
401
408
|
throw new Error(result.errors.map(e => e.message).join(', '));
|
|
402
409
|
}
|
|
403
|
-
if (!((_result$
|
|
410
|
+
if (!((_result$data5 = result.data) !== null && _result$data5 !== void 0 && _result$data5.blockService_createBlock)) {
|
|
404
411
|
throw new Error('No data returned from GraphQL mutation');
|
|
405
412
|
}
|
|
406
413
|
return result.data.blockService_createBlock;
|
|
@@ -429,8 +436,8 @@ export const updateReferenceSyncedBlockOnDocument = async ({
|
|
|
429
436
|
throw new Error(result.errors.map(e => e.message).join(', '));
|
|
430
437
|
}
|
|
431
438
|
if (!noContent) {
|
|
432
|
-
var _result$
|
|
433
|
-
if (!((_result$
|
|
439
|
+
var _result$data6;
|
|
440
|
+
if (!((_result$data6 = result.data) !== null && _result$data6 !== void 0 && _result$data6.blockService_updateDocumentReferences)) {
|
|
434
441
|
throw new Error('No data returned from GraphQL mutation');
|
|
435
442
|
}
|
|
436
443
|
return result.data.blockService_updateDocumentReferences;
|
|
@@ -439,7 +446,7 @@ export const updateReferenceSyncedBlockOnDocument = async ({
|
|
|
439
446
|
export const getReferenceSyncedBlocksByBlockAri = async ({
|
|
440
447
|
blockAri
|
|
441
448
|
}) => {
|
|
442
|
-
var _result$
|
|
449
|
+
var _result$data7;
|
|
443
450
|
const bodyData = {
|
|
444
451
|
query: buildGetBlockReferencesQuery(blockAri),
|
|
445
452
|
operationName: GET_BLOCK_REFERENCES_OPERATION_NAME
|
|
@@ -457,7 +464,7 @@ export const getReferenceSyncedBlocksByBlockAri = async ({
|
|
|
457
464
|
if (result.errors && result.errors.length > 0) {
|
|
458
465
|
throw new Error(result.errors.map(e => e.message).join(', '));
|
|
459
466
|
}
|
|
460
|
-
if (!((_result$
|
|
467
|
+
if (!((_result$data7 = result.data) !== null && _result$data7 !== void 0 && _result$data7.blockService_getReferences)) {
|
|
461
468
|
throw new Error('No data returned from GraphQL query');
|
|
462
469
|
}
|
|
463
470
|
const graphqlResponse = result.data.blockService_getReferences;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { logException } from '@atlaskit/editor-common/monitoring';
|
|
2
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
2
3
|
import { fetchWithRetry } from '../../utils/retry';
|
|
3
4
|
const COMMON_HEADERS = {
|
|
4
5
|
'Content-Type': 'application/json',
|
|
@@ -54,15 +55,16 @@ export const fetchMediaToken = async contentId => {
|
|
|
54
55
|
if (!token || !configuration || !collection) {
|
|
55
56
|
throw new Error('Failed to get content media session data');
|
|
56
57
|
}
|
|
57
|
-
return
|
|
58
|
+
return {
|
|
58
59
|
config: configuration,
|
|
59
60
|
token,
|
|
60
61
|
collectionId: collection
|
|
61
|
-
}
|
|
62
|
+
};
|
|
62
63
|
} catch (error) {
|
|
63
64
|
logException(error, {
|
|
64
65
|
location: 'editor-synced-block-provider/fetchMediaToken'
|
|
65
66
|
});
|
|
66
|
-
|
|
67
|
+
const errorMsg = fg('platform_synced_block_patch_4') ? error instanceof Error ? error.message : String(error) : String(error);
|
|
68
|
+
throw new Error(`Failed to get content media session: ${errorMsg}`);
|
|
67
69
|
}
|
|
68
70
|
};
|