@atlaskit/editor-synced-block-provider 2.10.5 → 2.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/cjs/clients/block-service/blockService.js +5 -4
  3. package/dist/cjs/clients/confluence/sourceInfo.js +20 -17
  4. package/dist/cjs/hooks/useFetchSyncBlockData.js +20 -11
  5. package/dist/cjs/hooks/useHandleContentChanges.js +1 -5
  6. package/dist/cjs/index.js +2 -2
  7. package/dist/cjs/providers/block-service/blockServiceAPI.js +17 -26
  8. package/dist/cjs/providers/confluence/confluenceContentAPI.js +0 -15
  9. package/dist/cjs/providers/syncBlockProvider.js +31 -41
  10. package/dist/cjs/store-manager/referenceSyncBlockStoreManager.js +138 -63
  11. package/dist/cjs/store-manager/sourceSyncBlockStoreManager.js +93 -43
  12. package/dist/cjs/store-manager/syncBlockStoreManager.js +3 -3
  13. package/dist/cjs/utils/errorHandling.js +31 -1
  14. package/dist/es2019/clients/block-service/blockService.js +5 -4
  15. package/dist/es2019/clients/confluence/sourceInfo.js +13 -8
  16. package/dist/es2019/hooks/useFetchSyncBlockData.js +15 -7
  17. package/dist/es2019/hooks/useHandleContentChanges.js +1 -5
  18. package/dist/es2019/index.js +1 -1
  19. package/dist/es2019/providers/block-service/blockServiceAPI.js +13 -20
  20. package/dist/es2019/providers/confluence/confluenceContentAPI.js +1 -14
  21. package/dist/es2019/providers/syncBlockProvider.js +31 -45
  22. package/dist/es2019/store-manager/referenceSyncBlockStoreManager.js +124 -49
  23. package/dist/es2019/store-manager/sourceSyncBlockStoreManager.js +65 -24
  24. package/dist/es2019/store-manager/syncBlockStoreManager.js +3 -3
  25. package/dist/es2019/utils/errorHandling.js +17 -1
  26. package/dist/esm/clients/block-service/blockService.js +5 -4
  27. package/dist/esm/clients/confluence/sourceInfo.js +19 -16
  28. package/dist/esm/hooks/useFetchSyncBlockData.js +20 -11
  29. package/dist/esm/hooks/useHandleContentChanges.js +1 -5
  30. package/dist/esm/index.js +1 -1
  31. package/dist/esm/providers/block-service/blockServiceAPI.js +17 -26
  32. package/dist/esm/providers/confluence/confluenceContentAPI.js +1 -16
  33. package/dist/esm/providers/syncBlockProvider.js +32 -42
  34. package/dist/esm/store-manager/referenceSyncBlockStoreManager.js +138 -63
  35. package/dist/esm/store-manager/sourceSyncBlockStoreManager.js +93 -43
  36. package/dist/esm/store-manager/syncBlockStoreManager.js +3 -3
  37. package/dist/esm/utils/errorHandling.js +30 -0
  38. package/dist/types/clients/block-service/blockService.d.ts +0 -2
  39. package/dist/types/clients/confluence/sourceInfo.d.ts +2 -1
  40. package/dist/types/hooks/useFetchSyncBlockData.d.ts +2 -1
  41. package/dist/types/index.d.ts +2 -2
  42. package/dist/types/providers/block-service/blockServiceAPI.d.ts +7 -5
  43. package/dist/types/providers/confluence/confluenceContentAPI.d.ts +2 -3
  44. package/dist/types/providers/syncBlockProvider.d.ts +12 -9
  45. package/dist/types/providers/types.d.ts +9 -9
  46. package/dist/types/store-manager/referenceSyncBlockStoreManager.d.ts +6 -2
  47. package/dist/types/store-manager/sourceSyncBlockStoreManager.d.ts +3 -1
  48. package/dist/types/store-manager/syncBlockStoreManager.d.ts +2 -1
  49. package/dist/types/utils/errorHandling.d.ts +10 -0
  50. package/dist/types-ts4.5/clients/block-service/blockService.d.ts +0 -2
  51. package/dist/types-ts4.5/clients/confluence/sourceInfo.d.ts +2 -1
  52. package/dist/types-ts4.5/hooks/useFetchSyncBlockData.d.ts +2 -1
  53. package/dist/types-ts4.5/index.d.ts +2 -2
  54. package/dist/types-ts4.5/providers/block-service/blockServiceAPI.d.ts +7 -5
  55. package/dist/types-ts4.5/providers/confluence/confluenceContentAPI.d.ts +2 -3
  56. package/dist/types-ts4.5/providers/syncBlockProvider.d.ts +12 -9
  57. package/dist/types-ts4.5/providers/types.d.ts +9 -9
  58. package/dist/types-ts4.5/store-manager/referenceSyncBlockStoreManager.d.ts +6 -2
  59. package/dist/types-ts4.5/store-manager/sourceSyncBlockStoreManager.d.ts +3 -1
  60. package/dist/types-ts4.5/store-manager/syncBlockStoreManager.d.ts +2 -1
  61. package/dist/types-ts4.5/utils/errorHandling.d.ts +10 -0
  62. package/package.json +2 -8
package/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # @atlaskit/editor-synced-block-provider
2
2
 
3
+ ## 2.11.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`1ed7afa478690`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/1ed7afa478690) -
8
+ Update the blocks endpoint calls to match API design
9
+
10
+ ### Patch Changes
11
+
12
+ - [`0cc1855e9071d`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/0cc1855e9071d) -
13
+ EDITOR-1921 add analytics for sync block provider failures
14
+ - Updated dependencies
15
+
16
+ ## 2.10.6
17
+
18
+ ### Patch Changes
19
+
20
+ - [`23c24c4b7faff`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/23c24c4b7faff) -
21
+ EDITOR-3312 Make data handling product agnostic
22
+ - Updated dependencies
23
+
3
24
  ## 2.10.5
4
25
 
5
26
  ### Patch Changes
@@ -39,7 +39,7 @@ var getSyncedBlockContent = exports.getSyncedBlockContent = /*#__PURE__*/functio
39
39
  case 0:
40
40
  blockAri = _ref.blockAri;
41
41
  _context.next = 3;
42
- return fetch("".concat(BLOCK_SERVICE_API_URL, "/block/").concat(blockAri), {
42
+ return fetch("".concat(BLOCK_SERVICE_API_URL, "/block/").concat(encodeURIComponent(blockAri)), {
43
43
  method: 'GET',
44
44
  headers: COMMON_HEADERS
45
45
  });
@@ -73,7 +73,7 @@ var deleteSyncedBlock = exports.deleteSyncedBlock = /*#__PURE__*/function () {
73
73
  case 0:
74
74
  blockAri = _ref3.blockAri;
75
75
  _context2.next = 3;
76
- return fetch("".concat(BLOCK_SERVICE_API_URL, "/block/").concat(blockAri), {
76
+ return fetch("".concat(BLOCK_SERVICE_API_URL, "/block/").concat(encodeURIComponent(blockAri)), {
77
77
  method: 'DELETE',
78
78
  headers: COMMON_HEADERS
79
79
  });
@@ -102,7 +102,7 @@ var updateSyncedBlock = exports.updateSyncedBlock = /*#__PURE__*/function () {
102
102
  case 0:
103
103
  blockAri = _ref5.blockAri, content = _ref5.content;
104
104
  _context3.next = 3;
105
- return fetch("".concat(BLOCK_SERVICE_API_URL, "/block/").concat(blockAri), {
105
+ return fetch("".concat(BLOCK_SERVICE_API_URL, "/block/").concat(encodeURIComponent(blockAri)), {
106
106
  method: 'PUT',
107
107
  headers: COMMON_HEADERS,
108
108
  body: JSON.stringify({
@@ -134,10 +134,11 @@ var createSyncedBlock = exports.createSyncedBlock = /*#__PURE__*/function () {
134
134
  case 0:
135
135
  blockAri = _ref7.blockAri, blockInstanceId = _ref7.blockInstanceId, sourceAri = _ref7.sourceAri, product = _ref7.product, content = _ref7.content;
136
136
  _context4.next = 3;
137
- return fetch("".concat(BLOCK_SERVICE_API_URL, "/block/").concat(blockAri), {
137
+ return fetch("".concat(BLOCK_SERVICE_API_URL, "/block"), {
138
138
  method: 'POST',
139
139
  headers: COMMON_HEADERS,
140
140
  body: JSON.stringify({
141
+ blockAri: blockAri,
141
142
  blockInstanceId: blockInstanceId,
142
143
  sourceAri: sourceAri,
143
144
  product: product,
@@ -4,10 +4,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.fetchConfluenceSourceInfo = void 0;
7
+ exports.fetchConfluencePageInfo = void 0;
8
8
  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
+ var _monitoring = require("@atlaskit/editor-common/monitoring");
12
+ var _errorHandling = require("../../utils/errorHandling");
11
13
  var _ari = require("./ari");
12
14
  var _utils = require("./utils");
13
15
  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; }
@@ -68,8 +70,8 @@ var getConfluenceSourceInfo = /*#__PURE__*/function () {
68
70
  return _ref.apply(this, arguments);
69
71
  };
70
72
  }();
71
- var fetchConfluenceSourceInfo = exports.fetchConfluenceSourceInfo = /*#__PURE__*/function () {
72
- var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(pageAri, localId) {
73
+ var fetchConfluencePageInfo = exports.fetchConfluencePageInfo = /*#__PURE__*/function () {
74
+ var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(pageAri, localId, fireAnalyticsEvent) {
73
75
  var _response$data, _contentData$space, _getPageIdAndTypeFrom, pageType, response, contentData, title, url, _ref3, base;
74
76
  return _regenerator.default.wrap(function _callee2$(_context2) {
75
77
  while (1) switch (_context2.prev = _context2.next) {
@@ -81,15 +83,9 @@ var fetchConfluenceSourceInfo = exports.fetchConfluenceSourceInfo = /*#__PURE__*
81
83
  case 4:
82
84
  response = _context2.sent;
83
85
  contentData = (_response$data = response.data) === null || _response$data === void 0 || (_response$data = _response$data.content) === null || _response$data === void 0 || (_response$data = _response$data.nodes) === null || _response$data === void 0 ? void 0 : _response$data[0];
84
- if (contentData) {
85
- _context2.next = 8;
86
- break;
87
- }
88
- throw new Error("Failed to get content data");
89
- case 8:
90
- title = contentData.title;
91
- _ref3 = contentData.links || {}, base = _ref3.base;
92
- if (base && (_contentData$space = contentData.space) !== null && _contentData$space !== void 0 && _contentData$space.key && contentData.id) {
86
+ title = contentData === null || contentData === void 0 ? void 0 : contentData.title;
87
+ _ref3 = (contentData === null || contentData === void 0 ? void 0 : contentData.links) || {}, base = _ref3.base;
88
+ if (base && contentData !== null && contentData !== void 0 && (_contentData$space = contentData.space) !== null && _contentData$space !== void 0 && _contentData$space.key && contentData !== null && contentData !== void 0 && contentData.id) {
93
89
  if ((0, _utils.isBlogPageType)(pageType)) {
94
90
  url = "".concat(base, "/spaces/").concat(contentData.space.key, "/blog/edit-v2/").concat(contentData.id);
95
91
  } else if (contentData.subType === 'live') {
@@ -99,21 +95,28 @@ var fetchConfluenceSourceInfo = exports.fetchConfluenceSourceInfo = /*#__PURE__*
99
95
  }
100
96
  }
101
97
  url = url && localId ? "".concat(url, "#block-").concat(localId) : url;
98
+ if (!title || !url) {
99
+ fireAnalyticsEvent === null || fireAnalyticsEvent === void 0 || fireAnalyticsEvent((0, _errorHandling.getSourceInfoErrorPayload)('Failed to get confluence page source info'));
100
+ }
102
101
  return _context2.abrupt("return", Promise.resolve({
103
102
  title: title,
104
103
  url: url
105
104
  }));
106
- case 15:
107
- _context2.prev = 15;
105
+ case 14:
106
+ _context2.prev = 14;
108
107
  _context2.t0 = _context2["catch"](0);
108
+ (0, _monitoring.logException)(_context2.t0, {
109
+ location: 'editor-synced-block-provider/sourceInfo'
110
+ });
111
+ fireAnalyticsEvent === null || fireAnalyticsEvent === void 0 || fireAnalyticsEvent((0, _errorHandling.getSourceInfoErrorPayload)(_context2.t0.message));
109
112
  return _context2.abrupt("return", Promise.resolve(undefined));
110
- case 18:
113
+ case 19:
111
114
  case "end":
112
115
  return _context2.stop();
113
116
  }
114
- }, _callee2, null, [[0, 15]]);
117
+ }, _callee2, null, [[0, 14]]);
115
118
  }));
116
- return function fetchConfluenceSourceInfo(_x2, _x3) {
119
+ return function fetchConfluencePageInfo(_x2, _x3, _x4) {
117
120
  return _ref2.apply(this, arguments);
118
121
  };
119
122
  }();
@@ -9,9 +9,11 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
11
  var _react = require("react");
12
+ var _monitoring = require("@atlaskit/editor-common/monitoring");
12
13
  var _types = require("../common/types");
14
+ var _errorHandling = require("../utils/errorHandling");
13
15
  var _utils = require("../utils/utils");
14
- var useFetchSyncBlockData = exports.useFetchSyncBlockData = function useFetchSyncBlockData(manager, resourceId, localId) {
16
+ var useFetchSyncBlockData = exports.useFetchSyncBlockData = function useFetchSyncBlockData(manager, resourceId, localId, fireAnalyticsEvent) {
15
17
  var _useState = (0, _react.useState)(null),
16
18
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
17
19
  syncBlockInstance = _useState2[0],
@@ -31,36 +33,43 @@ var useFetchSyncBlockData = exports.useFetchSyncBlockData = function useFetchSyn
31
33
  }
32
34
  return _context.abrupt("return");
33
35
  case 2:
36
+ _context.prev = 2;
34
37
  syncBlockNode = resourceId && localId ? (0, _utils.createSyncBlockNode)(localId, resourceId) : null;
35
38
  if (syncBlockNode) {
36
- _context.next = 5;
39
+ _context.next = 6;
37
40
  break;
38
41
  }
39
- return _context.abrupt("return");
40
- case 5:
42
+ throw new Error('Failed to create sync block node from resourceid and localid');
43
+ case 6:
41
44
  setIsLoading(true);
42
- _context.prev = 6;
45
+
46
+ // Fetch sync block data, the `subscribeToSyncBlock` will update the state once data is fetched
43
47
  _context.next = 9;
44
48
  return manager.referenceManager.fetchSyncBlocksData([syncBlockNode]);
45
49
  case 9:
46
- _context.next = 14;
50
+ _context.next = 16;
47
51
  break;
48
52
  case 11:
49
53
  _context.prev = 11;
50
- _context.t0 = _context["catch"](6);
54
+ _context.t0 = _context["catch"](2);
55
+ (0, _monitoring.logException)(_context.t0, {
56
+ location: 'editor-synced-block-provider/useFetchSyncBlockData'
57
+ });
58
+ fireAnalyticsEvent === null || fireAnalyticsEvent === void 0 || fireAnalyticsEvent((0, _errorHandling.fetchErrorPayload)(_context.t0.message));
59
+
51
60
  // Set error state if fetching fails
52
61
  setSyncBlockInstance({
53
62
  resourceId: resourceId || '',
54
63
  error: _types.SyncBlockError.Errored
55
64
  });
56
- case 14:
65
+ case 16:
57
66
  setIsLoading(false);
58
- case 15:
67
+ case 17:
59
68
  case "end":
60
69
  return _context.stop();
61
70
  }
62
- }, _callee, null, [[6, 11]]);
63
- })), [isLoading, localId, manager.referenceManager, resourceId]);
71
+ }, _callee, null, [[2, 11]]);
72
+ })), [isLoading, localId, manager.referenceManager, resourceId, fireAnalyticsEvent]);
64
73
  (0, _react.useEffect)(function () {
65
74
  var unsubscribe = manager.referenceManager.subscribeToSyncBlock(resourceId || '', localId || '', function (data) {
66
75
  setSyncBlockInstance(data);
@@ -7,10 +7,6 @@ exports.useHandleContentChanges = void 0;
7
7
  var _react = require("react");
8
8
  var useHandleContentChanges = exports.useHandleContentChanges = function useHandleContentChanges(manager, syncBlockNode) {
9
9
  (0, _react.useEffect)(function () {
10
- try {
11
- manager.sourceManager.updateSyncBlockData(syncBlockNode);
12
- } catch (_unused) {
13
- //TODO: EDITOR-1921 - add error analytics
14
- }
10
+ manager.sourceManager.updateSyncBlockData(syncBlockNode);
15
11
  }, [manager, syncBlockNode]);
16
12
  };
package/dist/cjs/index.js CHANGED
@@ -63,10 +63,10 @@ Object.defineProperty(exports, "createSyncBlockNode", {
63
63
  return _utils.createSyncBlockNode;
64
64
  }
65
65
  });
66
- Object.defineProperty(exports, "fetchConfluenceSourceInfo", {
66
+ Object.defineProperty(exports, "fetchConfluencePageInfo", {
67
67
  enumerable: true,
68
68
  get: function get() {
69
- return _sourceInfo.fetchConfluenceSourceInfo;
69
+ return _sourceInfo.fetchConfluencePageInfo;
70
70
  }
71
71
  });
72
72
  Object.defineProperty(exports, "getConfluencePageAri", {
@@ -96,33 +96,22 @@ var BlockServiceADFFetchProvider = /*#__PURE__*/function () {
96
96
  }
97
97
  return fetchData;
98
98
  }()
99
- }, {
100
- key: "retrieveSourceInfoFetchData",
101
- value: function retrieveSourceInfoFetchData(resourceId, pageARI) {
102
- var sourceLocalId;
103
- try {
104
- sourceLocalId = (0, _ari.getLocalIdFromBlockResourceId)(resourceId);
105
- } catch (error) {
106
- // EDITOR-1921: log analytic here, safe to continue
107
- }
108
- return {
109
- pageARI: pageARI,
110
- sourceLocalId: sourceLocalId
111
- };
112
- }
113
99
  }]);
114
100
  }();
115
101
  /**
116
102
  * ADFWriteProvider implementation that writes synced block data to Block Service API
117
103
  */
118
104
  var BlockServiceADFWriteProvider = /*#__PURE__*/function () {
119
- function BlockServiceADFWriteProvider() {
105
+ function BlockServiceADFWriteProvider(sourceAri, product) {
120
106
  (0, _classCallCheck2.default)(this, BlockServiceADFWriteProvider);
107
+ this.sourceAri = sourceAri;
108
+ this.product = product;
121
109
  }
110
+
111
+ // it will first try to update and if it can't (404) then it will try to create
122
112
  return (0, _createClass2.default)(BlockServiceADFWriteProvider, [{
123
113
  key: "writeData",
124
- value: // it will first try to update and if it can't (404) then it will try to create
125
- function () {
114
+ value: function () {
126
115
  var _writeData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(data) {
127
116
  var resourceId;
128
117
  return _regenerator.default.wrap(function _callee2$(_context2) {
@@ -154,8 +143,8 @@ var BlockServiceADFWriteProvider = /*#__PURE__*/function () {
154
143
  return (0, _blockService.createSyncedBlock)({
155
144
  blockAri: resourceId,
156
145
  blockInstanceId: data.blockInstanceId,
157
- sourceAri: resourceId,
158
- product: 'confluence-page',
146
+ sourceAri: this.sourceAri,
147
+ product: this.product,
159
148
  content: JSON.stringify(data.content)
160
149
  });
161
150
  case 13:
@@ -175,7 +164,7 @@ var BlockServiceADFWriteProvider = /*#__PURE__*/function () {
175
164
  case "end":
176
165
  return _context2.stop();
177
166
  }
178
- }, _callee2, null, [[1, 7]]);
167
+ }, _callee2, this, [[1, 7]]);
179
168
  }));
180
169
  function writeData(_x2) {
181
170
  return _writeData.apply(this, arguments);
@@ -231,22 +220,24 @@ var BlockServiceADFWriteProvider = /*#__PURE__*/function () {
231
220
  }()
232
221
  }, {
233
222
  key: "generateResourceId",
234
- value: function generateResourceId(sourceId, localId) {
235
- return (0, _ari.blockResourceIdFromSourceAndLocalId)(sourceId, localId);
223
+ value: function generateResourceId(sourceAri, localId) {
224
+ return (0, _ari.blockResourceIdFromSourceAndLocalId)(sourceAri, localId);
236
225
  }
237
226
  }]);
238
227
  }();
239
228
  /**
240
229
  * Factory function to create both providers with shared configuration
241
230
  */
242
- var createBlockServiceAPIProviders = function createBlockServiceAPIProviders() {
231
+ var createBlockServiceAPIProviders = function createBlockServiceAPIProviders(sourceAri, product) {
243
232
  var fetchProvider = new BlockServiceADFFetchProvider();
244
- var writeProvider = new BlockServiceADFWriteProvider();
233
+ var writeProvider = new BlockServiceADFWriteProvider(sourceAri, product);
245
234
  return {
246
235
  fetchProvider: fetchProvider,
247
236
  writeProvider: writeProvider
248
237
  };
249
238
  };
250
- var useMemoizedBlockServiceAPIProviders = exports.useMemoizedBlockServiceAPIProviders = function useMemoizedBlockServiceAPIProviders() {
251
- return (0, _react.useMemo)(createBlockServiceAPIProviders, []);
239
+ var useMemoizedBlockServiceAPIProviders = exports.useMemoizedBlockServiceAPIProviders = function useMemoizedBlockServiceAPIProviders(sourceAri, product) {
240
+ return (0, _react.useMemo)(function () {
241
+ return createBlockServiceAPIProviders(sourceAri, product);
242
+ }, [sourceAri, product]);
252
243
  };
@@ -146,21 +146,6 @@ var ConfluenceADFFetchProvider = /*#__PURE__*/function () {
146
146
  }
147
147
  return fetchData;
148
148
  }()
149
- }, {
150
- key: "retrieveSourceInfoFetchData",
151
- value: function retrieveSourceInfoFetchData(resourceId) {
152
- var pageARI = (0, _ari.getPageARIFromContentPropertyResourceId)(resourceId);
153
- var sourceLocalId;
154
- try {
155
- sourceLocalId = (0, _ari.getLocalIdFromConfluencePageAri)(resourceId);
156
- } catch (error) {
157
- // EDITOR-1921: log analytic here, safe to continue
158
- }
159
- return {
160
- pageARI: pageARI,
161
- sourceLocalId: sourceLocalId
162
- };
163
- }
164
149
  }]);
165
150
  }();
166
151
  /**
@@ -91,7 +91,7 @@ var SyncBlockProvider = exports.SyncBlockProvider = /*#__PURE__*/function (_Sync
91
91
  return data;
92
92
  }, function () {
93
93
  return {
94
- status: _types.SyncBlockError.Errored,
94
+ error: _types.SyncBlockError.Errored,
95
95
  resourceId: resourceId
96
96
  };
97
97
  });
@@ -209,34 +209,28 @@ var SyncBlockProvider = exports.SyncBlockProvider = /*#__PURE__*/function (_Sync
209
209
  }
210
210
 
211
211
  /**
212
- * Retrieve the source info from the source id
212
+ * Fetch the source info from the source id
213
213
  *
214
- * @param node
214
+ * @param params
215
+ * @param params.sourceAri - The source ARI
216
+ * @param params.sourceProduct - The source product. e.g. 'confluence-page', 'jira-work-item'
215
217
  *
216
218
  * @returns The source info
217
219
  */
218
220
  }, {
219
- key: "retrieveSyncBlockSourceInfo",
220
- value: function retrieveSyncBlockSourceInfo(node) {
221
- // with content API, this is the concatenation of the page ARI and the block's localId.
222
- // with block service, this is the ARI of the block.
223
- // this can be cleaned up from the specific providers and placed here after platform_synced_blocks_block_service_provider
224
- var resourceId = node.attrs.resourceId;
225
- var pageARI;
226
- var sourceLocalId;
227
- if (resourceId && typeof resourceId === 'string') {
228
- try {
229
- var fetchData = this.fetchProvider.retrieveSourceInfoFetchData(resourceId, this.sourceId);
230
- pageARI = fetchData.pageARI;
231
- sourceLocalId = fetchData.sourceLocalId;
232
- } catch (error) {
233
- return Promise.reject(error);
234
- }
221
+ key: "fetchSyncBlockSourceInfo",
222
+ value: function fetchSyncBlockSourceInfo(localId, sourceAri, sourceProduct, fireAnalyticsEvent) {
223
+ if (!sourceAri || !sourceProduct) {
224
+ return Promise.reject(new Error('Source ari or source product is undefined'));
225
+ }
226
+ switch (sourceProduct) {
227
+ case 'confluence-page':
228
+ return (0, _sourceInfo.fetchConfluencePageInfo)(sourceAri, localId, fireAnalyticsEvent);
229
+ case 'jira-work-item':
230
+ return Promise.reject(new Error('Jira work item source product not supported'));
231
+ default:
232
+ return Promise.reject(new Error("".concat(sourceProduct, " source product not supported")));
235
233
  }
236
-
237
- // TODO: EDITOR-3312 - based on the source sync block product,
238
- // execute fetchConfluenceSourceInfo or fetchJiraItemSourceInfo or similar...
239
- return pageARI ? (0, _sourceInfo.fetchConfluenceSourceInfo)(pageARI, sourceLocalId) : Promise.resolve(undefined);
240
234
  }
241
235
  }, {
242
236
  key: "generateResourceId",
@@ -258,32 +252,28 @@ var SyncBlockProvider = exports.SyncBlockProvider = /*#__PURE__*/function (_Sync
258
252
  /**
259
253
  * Retrieve the parent info for the sync block
260
254
  *
261
- * @param resourceId
262
- * @param syncBlockInstance
255
+ * @param sourceAri - The source ARI
256
+ * @param sourceProduct - The source product. e.g. 'confluence-page', 'jira-work-item'
263
257
  *
264
258
  * @returns The parent info for the sync block
265
259
  */
266
260
  }, {
267
261
  key: "retrieveSyncBlockParentInfo",
268
- value: function retrieveSyncBlockParentInfo(syncBlockInstance) {
269
- if (!syncBlockInstance || !syncBlockInstance.data) {
262
+ value: function retrieveSyncBlockParentInfo(sourceAri, sourceProduct) {
263
+ if (!sourceAri || !sourceProduct) {
270
264
  return undefined;
271
265
  }
272
- var _syncBlockInstance$da = syncBlockInstance.data,
273
- sourceAri = _syncBlockInstance$da.sourceAri,
274
- product = _syncBlockInstance$da.product;
275
- if (!sourceAri || !product) {
276
- return undefined;
266
+ switch (sourceProduct) {
267
+ case 'confluence-page':
268
+ return {
269
+ contentId: (0, _ari.getPageIdAndTypeFromConfluencePageAri)(sourceAri).id,
270
+ contentProduct: sourceProduct
271
+ };
272
+ case 'jira-work-item':
273
+ throw new Error('Jira work item source product not supported');
274
+ default:
275
+ throw new Error("".concat(sourceProduct, " source product not supported"));
277
276
  }
278
-
279
- // TODO: EDITOR-3312 - based on the source sync block product,
280
- // execute getPageIdAndTypeFromConfluencePageAri or getJiraItemIdAndTypeFromJiraItemAri or similar...
281
- var _getPageIdAndTypeFrom = (0, _ari.getPageIdAndTypeFromConfluencePageAri)(sourceAri),
282
- contentId = _getPageIdAndTypeFrom.id;
283
- return {
284
- contentId: contentId,
285
- contentProduct: product
286
- };
287
277
  }
288
278
  }]);
289
279
  }(_types2.SyncBlockDataProvider);