@atlaskit/editor-synced-block-provider 2.6.0 → 2.7.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 (57) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/cjs/hooks/useFetchSyncBlockData.js +2 -2
  3. package/dist/cjs/index.js +9 -4
  4. package/dist/cjs/providers/confluence/confluenceContentAPI.js +86 -73
  5. package/dist/cjs/providers/syncBlockProvider.js +52 -75
  6. package/dist/cjs/store-manager/referenceSyncBlockStoreManager.js +7 -7
  7. package/dist/cjs/store-manager/sourceSyncBlockStoreManager.js +78 -17
  8. package/dist/cjs/store-manager/syncBlockStoreManager.js +41 -8
  9. package/dist/cjs/utils/errorHandling.js +13 -0
  10. package/dist/cjs/utils/sourceInfo.js +119 -0
  11. package/dist/cjs/utils/utils.js +32 -1
  12. package/dist/es2019/hooks/useFetchSyncBlockData.js +1 -1
  13. package/dist/es2019/index.js +2 -3
  14. package/dist/es2019/providers/confluence/confluenceContentAPI.js +62 -40
  15. package/dist/es2019/providers/syncBlockProvider.js +18 -37
  16. package/dist/es2019/store-manager/referenceSyncBlockStoreManager.js +4 -4
  17. package/dist/es2019/store-manager/sourceSyncBlockStoreManager.js +64 -12
  18. package/dist/es2019/store-manager/syncBlockStoreManager.js +31 -8
  19. package/dist/es2019/utils/errorHandling.js +7 -0
  20. package/dist/es2019/utils/sourceInfo.js +89 -0
  21. package/dist/es2019/utils/utils.js +31 -0
  22. package/dist/esm/hooks/useFetchSyncBlockData.js +1 -1
  23. package/dist/esm/index.js +2 -3
  24. package/dist/esm/providers/confluence/confluenceContentAPI.js +79 -66
  25. package/dist/esm/providers/syncBlockProvider.js +52 -75
  26. package/dist/esm/store-manager/referenceSyncBlockStoreManager.js +5 -5
  27. package/dist/esm/store-manager/sourceSyncBlockStoreManager.js +79 -18
  28. package/dist/esm/store-manager/syncBlockStoreManager.js +41 -8
  29. package/dist/esm/utils/errorHandling.js +7 -0
  30. package/dist/esm/utils/sourceInfo.js +114 -0
  31. package/dist/esm/utils/utils.js +31 -0
  32. package/dist/types/index.d.ts +1 -2
  33. package/dist/types/providers/confluence/confluenceContentAPI.d.ts +2 -2
  34. package/dist/types/providers/syncBlockProvider.d.ts +5 -4
  35. package/dist/types/providers/types.d.ts +7 -3
  36. package/dist/types/store-manager/referenceSyncBlockStoreManager.d.ts +1 -1
  37. package/dist/types/store-manager/sourceSyncBlockStoreManager.d.ts +15 -3
  38. package/dist/types/store-manager/syncBlockStoreManager.d.ts +20 -3
  39. package/dist/types/utils/errorHandling.d.ts +1 -0
  40. package/dist/types/utils/sourceInfo.d.ts +2 -0
  41. package/dist/types/utils/utils.d.ts +6 -1
  42. package/dist/types-ts4.5/index.d.ts +1 -2
  43. package/dist/types-ts4.5/providers/confluence/confluenceContentAPI.d.ts +2 -2
  44. package/dist/types-ts4.5/providers/syncBlockProvider.d.ts +5 -4
  45. package/dist/types-ts4.5/providers/types.d.ts +7 -3
  46. package/dist/types-ts4.5/store-manager/referenceSyncBlockStoreManager.d.ts +1 -1
  47. package/dist/types-ts4.5/store-manager/sourceSyncBlockStoreManager.d.ts +15 -3
  48. package/dist/types-ts4.5/store-manager/syncBlockStoreManager.d.ts +20 -3
  49. package/dist/types-ts4.5/utils/errorHandling.d.ts +1 -0
  50. package/dist/types-ts4.5/utils/sourceInfo.d.ts +2 -0
  51. package/dist/types-ts4.5/utils/utils.d.ts +6 -1
  52. package/package.json +2 -2
  53. package/dist/cjs/utils/createSyncBlock.js +0 -15
  54. package/dist/es2019/utils/createSyncBlock.js +0 -9
  55. package/dist/esm/utils/createSyncBlock.js +0 -9
  56. package/dist/types/utils/createSyncBlock.d.ts +0 -2
  57. package/dist/types-ts4.5/utils/createSyncBlock.d.ts +0 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @atlaskit/editor-synced-block-provider
2
2
 
3
+ ## 2.7.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [`23f6c637ea176`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/23f6c637ea176) -
8
+ [ux] EDITOR-2629 redirect to source edit page instead of view page on edit source url click in
9
+ sync block
10
+
11
+ ## 2.7.0
12
+
13
+ ### Minor Changes
14
+
15
+ - [`5b03ddd528034`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/5b03ddd528034) -
16
+ [EDITOR-2542] Save new bodiedSyncBlock to backend when creating the node, so that the node can be
17
+ copied and reference without page being published/updated
18
+
3
19
  ## 2.6.0
4
20
 
5
21
  ### Minor Changes
@@ -10,7 +10,7 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
10
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
11
  var _react = require("react");
12
12
  var _types = require("../common/types");
13
- var _createSyncBlock = require("../utils/createSyncBlock");
13
+ var _utils = require("../utils/utils");
14
14
  var useFetchSyncBlockData = exports.useFetchSyncBlockData = function useFetchSyncBlockData(manager, resourceId, localId) {
15
15
  var _useState = (0, _react.useState)(null),
16
16
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -32,7 +32,7 @@ var useFetchSyncBlockData = exports.useFetchSyncBlockData = function useFetchSyn
32
32
  }
33
33
  return _context.abrupt("return");
34
34
  case 2:
35
- syncBlockNode = resourceId && localId ? (0, _createSyncBlock.createSyncBlockNode)(localId, resourceId) : null;
35
+ syncBlockNode = resourceId && localId ? (0, _utils.createSyncBlockNode)(localId, resourceId) : null;
36
36
  if (syncBlockNode) {
37
37
  _context.next = 5;
38
38
  break;
package/dist/cjs/index.js CHANGED
@@ -27,6 +27,12 @@ Object.defineProperty(exports, "SyncedBlockProvider", {
27
27
  return _syncBlockProvider.SyncBlockProvider;
28
28
  }
29
29
  });
30
+ Object.defineProperty(exports, "convertSyncBlockJSONNodeToSyncBlockNode", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _utils.convertSyncBlockJSONNodeToSyncBlockNode;
34
+ }
35
+ });
30
36
  Object.defineProperty(exports, "convertSyncBlockPMNodeToSyncBlockData", {
31
37
  enumerable: true,
32
38
  get: function get() {
@@ -42,7 +48,7 @@ Object.defineProperty(exports, "createContentAPIProvidersWithDefaultKey", {
42
48
  Object.defineProperty(exports, "createSyncBlockNode", {
43
49
  enumerable: true,
44
50
  get: function get() {
45
- return _createSyncBlock.createSyncBlockNode;
51
+ return _utils.createSyncBlockNode;
46
52
  }
47
53
  });
48
54
  Object.defineProperty(exports, "getConfluencePageAri", {
@@ -116,6 +122,5 @@ var _syncBlockProvider = require("./providers/syncBlockProvider");
116
122
  var _referenceSyncBlockStoreManager = require("./store-manager/referenceSyncBlockStoreManager");
117
123
  var _syncBlockStoreManager = require("./store-manager/syncBlockStoreManager");
118
124
  var _ari = require("./utils/ari");
119
- var _createSyncBlock = require("./utils/createSyncBlock");
120
- var _resolveSyncBlockInstance = require("./utils/resolveSyncBlockInstance");
121
- var _utils = require("./utils/utils");
125
+ var _utils = require("./utils/utils");
126
+ var _resolveSyncBlockInstance = require("./utils/resolveSyncBlockInstance");
@@ -14,7 +14,8 @@ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
14
14
  var _react = require("react");
15
15
  var _types = require("../../common/types");
16
16
  var _ari = require("../../utils/ari");
17
- var _contentProperty4 = require("../../utils/contentProperty");
17
+ var _contentProperty3 = require("../../utils/contentProperty");
18
+ var _errorHandling = require("../../utils/errorHandling");
18
19
  var _utils = require("../../utils/utils");
19
20
  /**
20
21
  * Configuration for Content API providers
@@ -81,7 +82,7 @@ var ConfluenceADFFetchProvider = /*#__PURE__*/function () {
81
82
  break;
82
83
  }
83
84
  _context.next = 8;
84
- return (0, _contentProperty4.getContentProperty)(options);
85
+ return (0, _contentProperty3.getContentProperty)(options);
85
86
  case 8:
86
87
  contentProperty = _context.sent;
87
88
  value = (_contentProperty$data = contentProperty.data.confluence.blogPost) === null || _contentProperty$data === void 0 || (_contentProperty$data = _contentProperty$data.properties) === null || _contentProperty$data === void 0 || (_contentProperty$data = _contentProperty$data[0]) === null || _contentProperty$data === void 0 ? void 0 : _contentProperty$data.value;
@@ -90,7 +91,7 @@ var ConfluenceADFFetchProvider = /*#__PURE__*/function () {
90
91
  break;
91
92
  case 13:
92
93
  _context.next = 15;
93
- return (0, _contentProperty4.getContentProperty)(options);
94
+ return (0, _contentProperty3.getContentProperty)(options);
94
95
  case 15:
95
96
  _contentProperty = _context.sent;
96
97
  value = (_contentProperty$data2 = _contentProperty.data.confluence.page) === null || _contentProperty$data2 === void 0 || (_contentProperty$data2 = _contentProperty$data2.properties) === null || _contentProperty$data2 === void 0 || (_contentProperty$data2 = _contentProperty$data2[0]) === null || _contentProperty$data2 === void 0 ? void 0 : _contentProperty$data2.value;
@@ -160,7 +161,7 @@ var ConfluenceADFWriteProvider = /*#__PURE__*/function () {
160
161
  break;
161
162
  }
162
163
  _context2.next = 4;
163
- return (0, _contentProperty4.createContentProperty)(options);
164
+ return (0, _contentProperty3.createContentProperty)(options);
164
165
  case 4:
165
166
  contentProperty = _context2.sent;
166
167
  if (!(((_contentProperty$data3 = contentProperty.data.confluence.createBlogPostProperty.blogPostProperty) === null || _contentProperty$data3 === void 0 ? void 0 : _contentProperty$data3.key) === key)) {
@@ -169,13 +170,13 @@ var ConfluenceADFWriteProvider = /*#__PURE__*/function () {
169
170
  }
170
171
  return _context2.abrupt("return", key);
171
172
  case 9:
172
- throw new Error('Failed to create blog post content property');
173
+ return _context2.abrupt("return", Promise.reject('Failed to create blog post content property'));
173
174
  case 10:
174
175
  _context2.next = 20;
175
176
  break;
176
177
  case 12:
177
178
  _context2.next = 14;
178
- return (0, _contentProperty4.createContentProperty)(options);
179
+ return (0, _contentProperty3.createContentProperty)(options);
179
180
  case 14:
180
181
  _contentProperty2 = _context2.sent;
181
182
  if (!(((_contentProperty2$dat = _contentProperty2.data.confluence.createPageProperty.pageProperty) === null || _contentProperty2$dat === void 0 ? void 0 : _contentProperty2$dat.key) === key)) {
@@ -184,7 +185,7 @@ var ConfluenceADFWriteProvider = /*#__PURE__*/function () {
184
185
  }
185
186
  return _context2.abrupt("return", key);
186
187
  case 19:
187
- throw new Error('Failed to create page content property');
188
+ return _context2.abrupt("return", Promise.reject('Failed to create page content property'));
188
189
  case 20:
189
190
  case "end":
190
191
  return _context2.stop();
@@ -201,17 +202,26 @@ var ConfluenceADFWriteProvider = /*#__PURE__*/function () {
201
202
  key: "writeData",
202
203
  value: function () {
203
204
  var _writeData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(data) {
204
- var _getPageIdAndTypeFrom2, pageId, pageType, localId, key, options, _contentProperty$data4, contentProperty, _contentProperty3$dat, _contentProperty3, _key;
205
+ var match, resourceId, _match, pageId, pageType, localId, key, options, updatePayload, updateResult;
205
206
  return _regenerator.default.wrap(function _callee3$(_context3) {
206
207
  while (1) switch (_context3.prev = _context3.next) {
207
208
  case 0:
208
- _getPageIdAndTypeFrom2 = (0, _ari.getPageIdAndTypeFromAri)(data.resourceId), pageId = _getPageIdAndTypeFrom2.id, pageType = _getPageIdAndTypeFrom2.type;
209
- if (!data.resourceId) {
210
- _context3.next = 34;
211
- break;
212
- }
209
+ resourceId = data.resourceId;
210
+ _context3.prev = 1;
211
+ match = (0, _ari.getPageIdAndTypeFromAri)(data.resourceId);
212
+ _context3.next = 8;
213
+ break;
214
+ case 5:
215
+ _context3.prev = 5;
216
+ _context3.t0 = _context3["catch"](1);
217
+ return _context3.abrupt("return", {
218
+ error: (0, _errorHandling.stringifyError)(_context3.t0)
219
+ });
220
+ case 8:
221
+ _match = match, pageId = _match.id, pageType = _match.type;
222
+ _context3.prev = 9;
213
223
  // Update existing content property
214
- localId = (0, _ari.getLocalIdFromAri)(data.resourceId);
224
+ localId = (0, _ari.getLocalIdFromAri)(resourceId);
215
225
  key = getContentPropertyKey(this.config.contentPropertyKey, localId);
216
226
  options = {
217
227
  pageId: pageId,
@@ -220,60 +230,50 @@ var ConfluenceADFWriteProvider = /*#__PURE__*/function () {
220
230
  cloudId: this.config.cloudId,
221
231
  pageType: pageType
222
232
  };
223
- if (!(0, _utils.isBlogPageType)(pageType)) {
224
- _context3.next = 20;
225
- break;
226
- }
227
- _context3.next = 8;
228
- return (0, _contentProperty4.updateContentProperty)(options);
229
- case 8:
230
- contentProperty = _context3.sent;
231
- if (!(((_contentProperty$data4 = contentProperty.data.confluence.updateValueBlogPostProperty.blogPostProperty) === null || _contentProperty$data4 === void 0 ? void 0 : _contentProperty$data4.key) === key)) {
232
- _context3.next = 13;
233
+ _context3.next = 15;
234
+ return (0, _contentProperty3.updateContentProperty)(options);
235
+ case 15:
236
+ updatePayload = _context3.sent;
237
+ updateResult = (0, _utils.isBlogPageType)(pageType) ? updatePayload.data.confluence.updateValueBlogPostProperty.blogPostProperty : updatePayload.data.confluence.updateValuePageProperty.pageProperty;
238
+ if (!((updateResult === null || updateResult === void 0 ? void 0 : updateResult.key) === key)) {
239
+ _context3.next = 21;
233
240
  break;
234
241
  }
235
- return _context3.abrupt("return", key);
236
- case 13:
237
- if (!(contentProperty.data.confluence.updateValueBlogPostProperty.blogPostProperty === null)) {
238
- _context3.next = 17;
242
+ return _context3.abrupt("return", {
243
+ resourceId: resourceId
244
+ });
245
+ case 21:
246
+ if (updateResult) {
247
+ _context3.next = 25;
239
248
  break;
240
249
  }
241
- return _context3.abrupt("return", this.createNewContentProperty(pageId, key, data, pageType));
242
- case 17:
243
- throw new Error('Failed to update blog post content property');
244
- case 18:
245
- _context3.next = 32;
250
+ return _context3.abrupt("return", this.createNewContentProperty(pageId, key, data, pageType).then(function () {
251
+ return {
252
+ resourceId: resourceId
253
+ };
254
+ }, function (error) {
255
+ return {
256
+ error: error
257
+ };
258
+ }));
259
+ case 25:
260
+ return _context3.abrupt("return", {
261
+ error: "Failed to update ".concat(pageType, " content property")
262
+ });
263
+ case 26:
264
+ _context3.next = 31;
246
265
  break;
247
- case 20:
248
- _context3.next = 22;
249
- return (0, _contentProperty4.updateContentProperty)(options);
250
- case 22:
251
- _contentProperty3 = _context3.sent;
252
- if (!(((_contentProperty3$dat = _contentProperty3.data.confluence.updateValuePageProperty.pageProperty) === null || _contentProperty3$dat === void 0 ? void 0 : _contentProperty3$dat.key) === key)) {
253
- _context3.next = 27;
254
- break;
255
- }
256
- return _context3.abrupt("return", key);
257
- case 27:
258
- if (!(_contentProperty3.data.confluence.updateValuePageProperty.pageProperty === null)) {
259
- _context3.next = 31;
260
- break;
261
- }
262
- return _context3.abrupt("return", this.createNewContentProperty(pageId, key, data, pageType));
266
+ case 28:
267
+ _context3.prev = 28;
268
+ _context3.t1 = _context3["catch"](9);
269
+ return _context3.abrupt("return", {
270
+ error: "Failed to write ".concat(pageType)
271
+ });
263
272
  case 31:
264
- throw new Error('Failed to update content property');
265
- case 32:
266
- _context3.next = 36;
267
- break;
268
- case 34:
269
- // Create new content property
270
- _key = getContentPropertyKey(this.config.contentPropertyKey, data.blockInstanceId);
271
- return _context3.abrupt("return", this.createNewContentProperty(pageId, _key, data, pageType));
272
- case 36:
273
273
  case "end":
274
274
  return _context3.stop();
275
275
  }
276
- }, _callee3, this);
276
+ }, _callee3, this, [[1, 5], [9, 28]]);
277
277
  }));
278
278
  function writeData(_x6) {
279
279
  return _writeData.apply(this, arguments);
@@ -284,11 +284,25 @@ var ConfluenceADFWriteProvider = /*#__PURE__*/function () {
284
284
  key: "deleteData",
285
285
  value: function () {
286
286
  var _deleteData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(resourceId) {
287
- var _getPageIdAndTypeFrom3, pageId, pageType, localId, key, options, deletePayload, deleteResult;
287
+ var deletePayload, deleteResult, match, _match2, pageId, pageType, localId, key, options, _stringifyError;
288
288
  return _regenerator.default.wrap(function _callee4$(_context4) {
289
289
  while (1) switch (_context4.prev = _context4.next) {
290
290
  case 0:
291
- _getPageIdAndTypeFrom3 = (0, _ari.getPageIdAndTypeFromAri)(resourceId), pageId = _getPageIdAndTypeFrom3.id, pageType = _getPageIdAndTypeFrom3.type;
291
+ _context4.prev = 0;
292
+ match = (0, _ari.getPageIdAndTypeFromAri)(resourceId);
293
+ _context4.next = 7;
294
+ break;
295
+ case 4:
296
+ _context4.prev = 4;
297
+ _context4.t0 = _context4["catch"](0);
298
+ return _context4.abrupt("return", {
299
+ resourceId: resourceId,
300
+ success: false,
301
+ error: (0, _errorHandling.stringifyError)(_context4.t0)
302
+ });
303
+ case 7:
304
+ _match2 = match, pageId = _match2.id, pageType = _match2.type;
305
+ _context4.prev = 8;
292
306
  localId = (0, _ari.getLocalIdFromAri)(resourceId);
293
307
  key = getContentPropertyKey(this.config.contentPropertyKey, localId);
294
308
  options = {
@@ -297,33 +311,32 @@ var ConfluenceADFWriteProvider = /*#__PURE__*/function () {
297
311
  cloudId: this.config.cloudId,
298
312
  pageType: pageType
299
313
  };
300
- _context4.prev = 4;
301
- _context4.next = 7;
302
- return (0, _contentProperty4.deleteContentProperty)(options);
303
- case 7:
314
+ _context4.next = 14;
315
+ return (0, _contentProperty3.deleteContentProperty)(options);
316
+ case 14:
304
317
  deletePayload = _context4.sent;
305
318
  deleteResult = (0, _utils.isBlogPageType)(pageType) ? deletePayload.data.confluence.deleteBlogPostProperty : deletePayload.data.confluence.deletePageProperty;
306
- _context4.next = 14;
319
+ _context4.next = 21;
307
320
  break;
308
- case 11:
309
- _context4.prev = 11;
310
- _context4.t0 = _context4["catch"](4);
321
+ case 18:
322
+ _context4.prev = 18;
323
+ _context4.t1 = _context4["catch"](8);
311
324
  return _context4.abrupt("return", {
312
325
  resourceId: resourceId,
313
326
  success: false,
314
- error: "Fail to delete ".concat(pageType, " content property")
327
+ error: (_stringifyError = (0, _errorHandling.stringifyError)(_context4.t1)) !== null && _stringifyError !== void 0 ? _stringifyError : "Fail to delete ".concat(pageType, " content property")
315
328
  });
316
- case 14:
329
+ case 21:
317
330
  return _context4.abrupt("return", {
318
331
  resourceId: resourceId,
319
332
  success: deleteResult.success,
320
333
  error: deleteResult.errors.join()
321
334
  });
322
- case 15:
335
+ case 22:
323
336
  case "end":
324
337
  return _context4.stop();
325
338
  }
326
- }, _callee4, this, [[4, 11]]);
339
+ }, _callee4, this, [[0, 4], [8, 18]]);
327
340
  }));
328
341
  function deleteData(_x7) {
329
342
  return _deleteData.apply(this, arguments);
@@ -18,6 +18,7 @@ var _react = require("react");
18
18
  var _types = require("../common/types");
19
19
  var _types2 = require("../providers/types");
20
20
  var _ari = require("../utils/ari");
21
+ var _sourceInfo = require("../utils/sourceInfo");
21
22
  function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
22
23
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
23
24
  var SyncBlockProvider = exports.SyncBlockProvider = /*#__PURE__*/function (_SyncBlockDataProvide) {
@@ -73,39 +74,63 @@ var SyncBlockProvider = exports.SyncBlockProvider = /*#__PURE__*/function (_Sync
73
74
  * @param nodes
74
75
  * @param data
75
76
  *
76
- * @returns the resource ids of the nodes that were written
77
+ * @returns Array of {resourceId?: string, error?: string}.
78
+ * resourceId: resource id of the node if write successfully , error: reason for when write failed
77
79
  */
78
80
  }, {
79
81
  key: "writeNodesData",
80
- value: function writeNodesData(nodes, data) {
81
- var _this3 = this;
82
- var resourceIds = [];
83
- nodes.forEach(function (_node, index) {
84
- if (!data[index].content) {
85
- resourceIds.push(Promise.reject('No Synced Block content to write'));
86
- return;
87
- }
88
- var resourceId = _this3.writeProvider.writeData(data[index]);
89
- resourceIds.push(resourceId);
90
- });
91
- return Promise.all(resourceIds);
92
- }
82
+ value: (function () {
83
+ var _writeNodesData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(nodes, data) {
84
+ var _this3 = this;
85
+ var results;
86
+ return _regenerator.default.wrap(function _callee$(_context) {
87
+ while (1) switch (_context.prev = _context.next) {
88
+ case 0:
89
+ _context.next = 2;
90
+ return Promise.allSettled(nodes.map(function (_node, index) {
91
+ if (!data[index].content) {
92
+ return Promise.reject('No Synced Block content to write');
93
+ }
94
+ return _this3.writeProvider.writeData(data[index]);
95
+ }));
96
+ case 2:
97
+ results = _context.sent;
98
+ return _context.abrupt("return", results.map(function (result) {
99
+ if (result.status === 'fulfilled') {
100
+ return result.value;
101
+ } else {
102
+ return {
103
+ error: result.reason
104
+ };
105
+ }
106
+ }));
107
+ case 4:
108
+ case "end":
109
+ return _context.stop();
110
+ }
111
+ }, _callee);
112
+ }));
113
+ function writeNodesData(_x, _x2) {
114
+ return _writeNodesData.apply(this, arguments);
115
+ }
116
+ return writeNodesData;
117
+ }())
93
118
  }, {
94
119
  key: "deleteNodesData",
95
120
  value: function () {
96
- var _deleteNodesData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(resourceIds) {
121
+ var _deleteNodesData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(resourceIds) {
97
122
  var _this4 = this;
98
123
  var results;
99
- return _regenerator.default.wrap(function _callee$(_context) {
100
- while (1) switch (_context.prev = _context.next) {
124
+ return _regenerator.default.wrap(function _callee2$(_context2) {
125
+ while (1) switch (_context2.prev = _context2.next) {
101
126
  case 0:
102
- _context.next = 2;
127
+ _context2.next = 2;
103
128
  return Promise.allSettled(resourceIds.map(function (resourceId) {
104
129
  return _this4.writeProvider.deleteData(resourceId);
105
130
  }));
106
131
  case 2:
107
- results = _context.sent;
108
- return _context.abrupt("return", results.map(function (result, index) {
132
+ results = _context2.sent;
133
+ return _context2.abrupt("return", results.map(function (result, index) {
109
134
  if (result.status === 'fulfilled') {
110
135
  return result.value;
111
136
  } else {
@@ -118,11 +143,11 @@ var SyncBlockProvider = exports.SyncBlockProvider = /*#__PURE__*/function (_Sync
118
143
  }));
119
144
  case 4:
120
145
  case "end":
121
- return _context.stop();
146
+ return _context2.stop();
122
147
  }
123
- }, _callee);
148
+ }, _callee2);
124
149
  }));
125
- function deleteNodesData(_x) {
150
+ function deleteNodesData(_x3) {
126
151
  return _deleteNodesData.apply(this, arguments);
127
152
  }
128
153
  return deleteNodesData;
@@ -133,8 +158,8 @@ var SyncBlockProvider = exports.SyncBlockProvider = /*#__PURE__*/function (_Sync
133
158
  return this.sourceId;
134
159
  }
135
160
  }, {
136
- key: "retrieveSyncBlockSourceUrlAndTitle",
137
- value: function retrieveSyncBlockSourceUrlAndTitle(node) {
161
+ key: "retrieveSyncBlockSourceInfo",
162
+ value: function retrieveSyncBlockSourceInfo(node) {
138
163
  var resourceId = node.attrs.resourceId;
139
164
  var pageARI;
140
165
  var sourceLocalId;
@@ -150,7 +175,7 @@ var SyncBlockProvider = exports.SyncBlockProvider = /*#__PURE__*/function (_Sync
150
175
  // EDITOR-1921: log analytic here, safe to continue
151
176
  }
152
177
  }
153
- return pageARI ? fetchURLandTitlefromARI(pageARI, sourceLocalId) : Promise.resolve(undefined);
178
+ return pageARI ? (0, _sourceInfo.fetchSourceInfo)(pageARI, sourceLocalId) : Promise.resolve(undefined);
154
179
  }
155
180
  }]);
156
181
  }(_types2.SyncBlockDataProvider);
@@ -158,52 +183,4 @@ var useMemoizedSyncedBlockProvider = exports.useMemoizedSyncedBlockProvider = fu
158
183
  return (0, _react.useMemo)(function () {
159
184
  return new SyncBlockProvider(fetchProvider, writeProvider, sourceId);
160
185
  }, [fetchProvider, writeProvider, sourceId]);
161
- };
162
- var fetchURLandTitlefromARI = /*#__PURE__*/function () {
163
- var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(ari, sourceLocalId) {
164
- var response, _payload$data, _payload$data2, payload, url, title;
165
- return _regenerator.default.wrap(function _callee2$(_context2) {
166
- while (1) switch (_context2.prev = _context2.next) {
167
- case 0:
168
- _context2.next = 2;
169
- return fetch('/gateway/api/object-resolver/resolve/ari', {
170
- method: 'POST',
171
- headers: {
172
- 'Content-Type': 'application/json',
173
- Accept: 'application/json'
174
- },
175
- body: JSON.stringify({
176
- ari: ari
177
- })
178
- });
179
- case 2:
180
- response = _context2.sent;
181
- if (!response.ok) {
182
- _context2.next = 12;
183
- break;
184
- }
185
- _context2.next = 6;
186
- return response.json();
187
- case 6:
188
- payload = _context2.sent;
189
- url = payload === null || payload === void 0 || (_payload$data = payload.data) === null || _payload$data === void 0 ? void 0 : _payload$data.url;
190
- title = payload === null || payload === void 0 || (_payload$data2 = payload.data) === null || _payload$data2 === void 0 ? void 0 : _payload$data2.name;
191
- return _context2.abrupt("return", {
192
- url: typeof url === 'string' ? sourceLocalId ? url + "?block=".concat(sourceLocalId) : url : undefined,
193
- title: typeof title === 'string' ? title : undefined
194
- });
195
- case 12:
196
- //eslint-disable-next-line no-console
197
- console.error('Failed to fetch URL and title from ARI', response.statusText);
198
- case 13:
199
- return _context2.abrupt("return", undefined);
200
- case 14:
201
- case "end":
202
- return _context2.stop();
203
- }
204
- }, _callee2);
205
- }));
206
- return function fetchURLandTitlefromARI(_x2, _x3) {
207
- return _ref.apply(this, arguments);
208
- };
209
- }();
186
+ };
@@ -11,8 +11,8 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
11
11
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
12
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
13
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
- var _createSyncBlock = require("../utils/createSyncBlock");
15
14
  var _resolveSyncBlockInstance = require("../utils/resolveSyncBlockInstance");
15
+ var _utils = require("../utils/utils");
16
16
  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; }
17
17
  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; }
18
18
  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; } } }; }
@@ -58,7 +58,7 @@ var ReferenceSyncBlockStoreManager = exports.ReferenceSyncBlockStoreManager = /*
58
58
  case 0:
59
59
  _step$value = (0, _slicedToArray2.default)(_step.value, 2), resourceId = _step$value[0], callbacks = _step$value[1];
60
60
  Object.keys(callbacks).forEach(function (localId) {
61
- syncBlocks.push((0, _createSyncBlock.createSyncBlockNode)(localId, resourceId));
61
+ syncBlocks.push((0, _utils.createSyncBlockNode)(localId, resourceId));
62
62
  });
63
63
  case 2:
64
64
  case "end":
@@ -113,8 +113,8 @@ var ReferenceSyncBlockStoreManager = exports.ReferenceSyncBlockStoreManager = /*
113
113
  return refreshSubscriptions;
114
114
  }())
115
115
  }, {
116
- key: "fetchSyncBlockSourceURLAndTitle",
117
- value: function fetchSyncBlockSourceURLAndTitle(resourceId) {
116
+ key: "retrieveSyncBlockSourceInfo",
117
+ value: function retrieveSyncBlockSourceInfo(resourceId) {
118
118
  var _this = this;
119
119
  if (!resourceId || !this.dataProvider) {
120
120
  return;
@@ -124,7 +124,7 @@ var ReferenceSyncBlockStoreManager = exports.ReferenceSyncBlockStoreManager = /*
124
124
  // we could optimise this further by checking if the sync block is on the same page as the source
125
125
  if (!this.syncBlockURLRequests.get(resourceId)) {
126
126
  this.syncBlockURLRequests.set(resourceId, true);
127
- this.dataProvider.retrieveSyncBlockSourceUrlAndTitle((0, _createSyncBlock.createSyncBlockNode)('', resourceId)).then(function (sourceInfo) {
127
+ this.dataProvider.retrieveSyncBlockSourceInfo((0, _utils.createSyncBlockNode)('', resourceId)).then(function (sourceInfo) {
128
128
  var existingSyncBlock = _this.getFromCache(resourceId);
129
129
  if (existingSyncBlock && existingSyncBlock.data) {
130
130
  existingSyncBlock.data = _objectSpread(_objectSpread({}, existingSyncBlock.data), {}, {
@@ -179,7 +179,7 @@ var ReferenceSyncBlockStoreManager = exports.ReferenceSyncBlockStoreManager = /*
179
179
 
180
180
  // fetch source URL and title if not already present
181
181
  if ((!((_resolvedSyncBlockIns = resolvedSyncBlockInstance.data) !== null && _resolvedSyncBlockIns !== void 0 && _resolvedSyncBlockIns.sourceURL) || !((_resolvedSyncBlockIns2 = resolvedSyncBlockInstance.data) !== null && _resolvedSyncBlockIns2 !== void 0 && _resolvedSyncBlockIns2.sourceTitle)) && resolvedSyncBlockInstance.resourceId) {
182
- _this2.fetchSyncBlockSourceURLAndTitle(resolvedSyncBlockInstance.resourceId);
182
+ _this2.retrieveSyncBlockSourceInfo(resolvedSyncBlockInstance.resourceId);
183
183
  }
184
184
  });
185
185
  return _context3.abrupt("return", resolvedData);
@@ -241,7 +241,7 @@ var ReferenceSyncBlockStoreManager = exports.ReferenceSyncBlockStoreManager = /*
241
241
  if (cachedData) {
242
242
  callback(cachedData);
243
243
  } else {
244
- this.fetchSyncBlocksData([(0, _createSyncBlock.createSyncBlockNode)(localId, resourceId)]).catch(function () {});
244
+ this.fetchSyncBlocksData([(0, _utils.createSyncBlockNode)(localId, resourceId)]).catch(function () {});
245
245
  }
246
246
  return function () {
247
247
  var resourceSubscriptions = _this3.subscriptions.get(resourceId);