@atlaskit/editor-synced-block-provider 3.29.1 → 3.29.2

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 (47) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/cjs/clients/block-service/ari.js +5 -3
  3. package/dist/cjs/index.js +26 -1
  4. package/dist/cjs/providers/syncBlockProvider.js +10 -10
  5. package/dist/cjs/providers/types.js +7 -7
  6. package/dist/cjs/store-manager/referenceSyncBlockStoreManager.js +1 -2
  7. package/dist/cjs/store-manager/sourceSyncBlockStoreManager.js +1 -1
  8. package/dist/cjs/utils/errorHandling.js +21 -1
  9. package/dist/cjs/utils/resolveSyncBlockInstance.js +3 -2
  10. package/dist/cjs/utils/retry.js +2 -1
  11. package/dist/es2019/clients/block-service/ari.js +5 -3
  12. package/dist/es2019/index.js +3 -2
  13. package/dist/es2019/providers/syncBlockProvider.js +4 -4
  14. package/dist/es2019/providers/types.js +1 -1
  15. package/dist/es2019/store-manager/referenceSyncBlockStoreManager.js +1 -2
  16. package/dist/es2019/store-manager/sourceSyncBlockStoreManager.js +1 -1
  17. package/dist/es2019/utils/errorHandling.js +21 -1
  18. package/dist/es2019/utils/resolveSyncBlockInstance.js +3 -2
  19. package/dist/es2019/utils/retry.js +4 -1
  20. package/dist/esm/clients/block-service/ari.js +5 -3
  21. package/dist/esm/index.js +3 -2
  22. package/dist/esm/providers/syncBlockProvider.js +10 -10
  23. package/dist/esm/providers/types.js +6 -6
  24. package/dist/esm/store-manager/referenceSyncBlockStoreManager.js +1 -2
  25. package/dist/esm/store-manager/sourceSyncBlockStoreManager.js +1 -1
  26. package/dist/esm/utils/errorHandling.js +20 -0
  27. package/dist/esm/utils/resolveSyncBlockInstance.js +3 -2
  28. package/dist/esm/utils/retry.js +2 -1
  29. package/dist/types/clients/block-service/ari.d.ts +4 -2
  30. package/dist/types/index.d.ts +5 -3
  31. package/dist/types/providers/syncBlockProvider.d.ts +4 -4
  32. package/dist/types/providers/types.d.ts +1 -1
  33. package/dist/types/store-manager/referenceSyncBlockStoreManager.d.ts +2 -2
  34. package/dist/types/store-manager/sourceSyncBlockStoreManager.d.ts +3 -3
  35. package/dist/types/store-manager/syncBlockStoreManager.d.ts +3 -3
  36. package/dist/types/utils/errorHandling.d.ts +1 -0
  37. package/dist/types/utils/resolveSyncBlockInstance.d.ts +3 -2
  38. package/dist/types-ts4.5/clients/block-service/ari.d.ts +4 -2
  39. package/dist/types-ts4.5/index.d.ts +5 -3
  40. package/dist/types-ts4.5/providers/syncBlockProvider.d.ts +4 -4
  41. package/dist/types-ts4.5/providers/types.d.ts +1 -1
  42. package/dist/types-ts4.5/store-manager/referenceSyncBlockStoreManager.d.ts +2 -2
  43. package/dist/types-ts4.5/store-manager/sourceSyncBlockStoreManager.d.ts +3 -3
  44. package/dist/types-ts4.5/store-manager/syncBlockStoreManager.d.ts +3 -3
  45. package/dist/types-ts4.5/utils/errorHandling.d.ts +1 -0
  46. package/dist/types-ts4.5/utils/resolveSyncBlockInstance.d.ts +3 -2
  47. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # @atlaskit/editor-synced-block-provider
2
2
 
3
+ ## 3.29.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [`8806992b3642c`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/8806992b3642c) -
8
+ EDITOR-5454 update synced block insert success event to use document inserted event
9
+ - [`0f351c68adbac`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/0f351c68adbac) -
10
+ Improve robustness
11
+ - Updated dependencies
12
+
3
13
  ## 3.29.1
4
14
 
5
15
  ### Patch Changes
@@ -35,8 +35,10 @@ var generateBlockAriFromReference = exports.generateBlockAriFromReference = func
35
35
  };
36
36
 
37
37
  /**
38
- * Extracts the local ID from a block ARI.
39
- * @param ari - the block ARI. E.G ari:cloud:blocks:cloudId:synced-block/localId
38
+ * Extracts the local ID from a source block ARI.
39
+ * Designed for source block ARIs of the form: ari:cloud:blocks:{cloudId}:synced-block/{localId}
40
+ * where the localId is a UUID immediately after synced-block/.
41
+ * @param ari - the source block ARI. E.G ari:cloud:blocks:cloudId:synced-block/79d4f3f4-51df-451b-b9a1-751bc77b1e77
40
42
  * @returns the localId of the block node. A randomly generated UUID
41
43
  */
42
44
  var getLocalIdFromBlockResourceId = exports.getLocalIdFromBlockResourceId = function getLocalIdFromBlockResourceId(ari) {
@@ -44,7 +46,7 @@ var getLocalIdFromBlockResourceId = exports.getLocalIdFromBlockResourceId = func
44
46
  if (match !== null && match !== void 0 && match[1]) {
45
47
  return match[1];
46
48
  }
47
- throw new Error("Invalid page ARI: ".concat(ari));
49
+ throw new Error("Invalid block ARI: ".concat(ari));
48
50
  };
49
51
  var getProductFromSourceAri = exports.getProductFromSourceAri = function getProductFromSourceAri(ari) {
50
52
  var jiraMatch = ari === null || ari === void 0 ? void 0 : ari.search(/ari:cloud:jira:.*/);
package/dist/cjs/index.js CHANGED
@@ -3,6 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ Object.defineProperty(exports, "BlockError", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _blockService.BlockError;
10
+ }
11
+ });
6
12
  Object.defineProperty(exports, "ReferenceSyncBlockStoreManager", {
7
13
  enumerable: true,
8
14
  get: function get() {
@@ -24,7 +30,7 @@ Object.defineProperty(exports, "SyncBlockStoreManager", {
24
30
  Object.defineProperty(exports, "SyncedBlockProvider", {
25
31
  enumerable: true,
26
32
  get: function get() {
27
- return _syncBlockProvider.SyncBlockProvider;
33
+ return _syncBlockProvider.SyncedBlockProvider;
28
34
  }
29
35
  });
30
36
  Object.defineProperty(exports, "batchFetchData", {
@@ -33,6 +39,12 @@ Object.defineProperty(exports, "batchFetchData", {
33
39
  return _blockServiceAPI.batchFetchData;
34
40
  }
35
41
  });
42
+ Object.defineProperty(exports, "blockAriToResourceId", {
43
+ enumerable: true,
44
+ get: function get() {
45
+ return _blockServiceAPI.blockAriToResourceId;
46
+ }
47
+ });
36
48
  Object.defineProperty(exports, "convertPMNodesToSyncBlockNodes", {
37
49
  enumerable: true,
38
50
  get: function get() {
@@ -51,6 +63,12 @@ Object.defineProperty(exports, "convertSyncBlockPMNodeToSyncBlockData", {
51
63
  return _utils.convertSyncBlockPMNodeToSyncBlockData;
52
64
  }
53
65
  });
66
+ Object.defineProperty(exports, "convertToSyncBlockData", {
67
+ enumerable: true,
68
+ get: function get() {
69
+ return _blockServiceAPI.convertToSyncBlockData;
70
+ }
71
+ });
54
72
  Object.defineProperty(exports, "createResourceIdForReference", {
55
73
  enumerable: true,
56
74
  get: function get() {
@@ -63,6 +81,12 @@ Object.defineProperty(exports, "createSyncBlockNode", {
63
81
  return _utils.createSyncBlockNode;
64
82
  }
65
83
  });
84
+ Object.defineProperty(exports, "extractResourceIdFromBlockAri", {
85
+ enumerable: true,
86
+ get: function get() {
87
+ return _blockServiceAPI.extractResourceIdFromBlockAri;
88
+ }
89
+ });
66
90
  Object.defineProperty(exports, "fetchConfluencePageInfo", {
67
91
  enumerable: true,
68
92
  get: function get() {
@@ -213,6 +237,7 @@ var _useFetchSyncBlockData = require("./hooks/useFetchSyncBlockData");
213
237
  var _useFetchSyncBlockTitle = require("./hooks/useFetchSyncBlockTitle");
214
238
  var _useHandleContentChanges = require("./hooks/useHandleContentChanges");
215
239
  var _ari = require("./clients/block-service/ari");
240
+ var _blockService = require("./clients/block-service/blockService");
216
241
  var _ari2 = require("./clients/confluence/ari");
217
242
  var _fetchMediaToken = require("./clients/confluence/fetchMediaToken");
218
243
  var _ari3 = require("./clients/jira/ari");
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.useMemoizedSyncedBlockProvider = exports.SyncBlockProvider = void 0;
7
+ exports.useMemoizedSyncedBlockProvider = exports.SyncedBlockProvider = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
@@ -24,26 +24,26 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
24
24
  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; }
25
25
  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)); }
26
26
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
27
- var SyncBlockProvider = exports.SyncBlockProvider = /*#__PURE__*/function (_SyncBlockDataProvide) {
27
+ var SyncedBlockProvider = exports.SyncedBlockProvider = /*#__PURE__*/function (_SyncBlockDataProvide) {
28
28
  /**
29
- * Constructor for the SyncBlockProvider
29
+ * Constructor for the SyncedBlockProvider
30
30
  *
31
31
  * @param fetchProvider
32
32
  * @param writeProvider
33
33
  * @param nestedRendererDataProviders
34
34
  */
35
- function SyncBlockProvider(fetchProvider, writeProvider) {
35
+ function SyncedBlockProvider(fetchProvider, writeProvider) {
36
36
  var _this;
37
- (0, _classCallCheck2.default)(this, SyncBlockProvider);
38
- _this = _callSuper(this, SyncBlockProvider);
37
+ (0, _classCallCheck2.default)(this, SyncedBlockProvider);
38
+ _this = _callSuper(this, SyncedBlockProvider);
39
39
  (0, _defineProperty2.default)(_this, "name", 'syncBlockProvider');
40
40
  _this.fetchProvider = fetchProvider;
41
41
  _this.writeProvider = writeProvider;
42
42
  _this.providerOptions = {};
43
43
  return _this;
44
44
  }
45
- (0, _inherits2.default)(SyncBlockProvider, _SyncBlockDataProvide);
46
- return (0, _createClass2.default)(SyncBlockProvider, [{
45
+ (0, _inherits2.default)(SyncedBlockProvider, _SyncBlockDataProvide);
46
+ return (0, _createClass2.default)(SyncedBlockProvider, [{
47
47
  key: "setProviderOptions",
48
48
  value: function setProviderOptions(providerOptions) {
49
49
  this.providerOptions = providerOptions;
@@ -441,11 +441,11 @@ var SyncBlockProvider = exports.SyncBlockProvider = /*#__PURE__*/function (_Sync
441
441
  return undefined;
442
442
  }
443
443
  }]);
444
- }(_types2.SyncBlockDataProvider);
444
+ }(_types2.SyncBlockDataProviderInterface);
445
445
  var createSyncedBlockProvider = function createSyncedBlockProvider(_ref) {
446
446
  var fetchProvider = _ref.fetchProvider,
447
447
  writeProvider = _ref.writeProvider;
448
- return new SyncBlockProvider(fetchProvider, writeProvider);
448
+ return new SyncedBlockProvider(fetchProvider, writeProvider);
449
449
  };
450
450
  var useMemoizedSyncedBlockProvider = exports.useMemoizedSyncedBlockProvider = function useMemoizedSyncedBlockProvider(_ref2) {
451
451
  var fetchProvider = _ref2.fetchProvider,
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.SyncBlockDataProvider = void 0;
7
+ exports.SyncBlockDataProviderInterface = void 0;
8
8
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
9
9
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
10
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
@@ -18,11 +18,11 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
18
18
  * Mainly used for representing the state of a sync block after fetching from a data provider.
19
19
  * This will be used in both data processing and rendering contexts.
20
20
  */
21
- var SyncBlockDataProvider = exports.SyncBlockDataProvider = /*#__PURE__*/function (_NodeDataProvider) {
22
- function SyncBlockDataProvider() {
23
- (0, _classCallCheck2.default)(this, SyncBlockDataProvider);
24
- return _callSuper(this, SyncBlockDataProvider, arguments);
21
+ var SyncBlockDataProviderInterface = exports.SyncBlockDataProviderInterface = /*#__PURE__*/function (_NodeDataProvider) {
22
+ function SyncBlockDataProviderInterface() {
23
+ (0, _classCallCheck2.default)(this, SyncBlockDataProviderInterface);
24
+ return _callSuper(this, SyncBlockDataProviderInterface, arguments);
25
25
  }
26
- (0, _inherits2.default)(SyncBlockDataProvider, _NodeDataProvider);
27
- return (0, _createClass2.default)(SyncBlockDataProvider);
26
+ (0, _inherits2.default)(SyncBlockDataProviderInterface, _NodeDataProvider);
27
+ return (0, _createClass2.default)(SyncBlockDataProviderInterface);
28
28
  }(_nodeDataProvider.NodeDataProvider);
@@ -1149,7 +1149,7 @@ var ReferenceSyncBlockStoreManager = exports.ReferenceSyncBlockStoreManager = /*
1149
1149
  }
1150
1150
  var parentInfo = this.dataProvider.retrieveSyncBlockParentInfo((_syncBlock$data2 = syncBlock.data) === null || _syncBlock$data2 === void 0 ? void 0 : _syncBlock$data2.sourceAri, (_syncBlock$data3 = syncBlock.data) === null || _syncBlock$data3 === void 0 ? void 0 : _syncBlock$data3.product);
1151
1151
  if (!parentInfo) {
1152
- throw new Error('Unable to retrive sync block parent info');
1152
+ throw new Error('Unable to retrieve sync block parent info');
1153
1153
  }
1154
1154
  var contentId = parentInfo.contentId,
1155
1155
  contentProduct = parentInfo.contentProduct;
@@ -1395,7 +1395,6 @@ var ReferenceSyncBlockStoreManager = exports.ReferenceSyncBlockStoreManager = /*
1395
1395
  this.titleSubscriptions.clear();
1396
1396
  this.syncBlockFetchDataRequests.clear();
1397
1397
  this.syncBlockSourceInfoRequests.clear();
1398
- this.providerFactories.clear();
1399
1398
  this.isRefreshingSubscriptions = false;
1400
1399
  this.useRealTimeSubscriptions = false;
1401
1400
  this.subscriptionChangeListeners.clear();
@@ -267,7 +267,7 @@ var SourceSyncBlockStoreManager = exports.SourceSyncBlockStoreManager = /*#__PUR
267
267
  */
268
268
  }, {
269
269
  key: "createBodiedSyncBlockNode",
270
- value: function createBodiedSyncBlockNode(attrs, onCompletion, nodeData) {
270
+ value: function createBodiedSyncBlockNode(attrs, onCompletion) {
271
271
  var _this4 = this;
272
272
  var resourceId = attrs.resourceId,
273
273
  blockInstanceId = attrs.localId;
@@ -4,9 +4,10 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.updateSuccessPayload = exports.updateReferenceErrorPayload = exports.updateErrorPayload = exports.updateCacheErrorPayload = exports.stringifyError = exports.getSourceInfoErrorPayload = exports.getErrorPayload = exports.fetchSuccessPayload = exports.fetchReferencesErrorPayload = exports.fetchErrorPayload = exports.deleteSuccessPayload = exports.deleteErrorPayload = exports.createSuccessPayload = exports.createErrorPayload = void 0;
7
+ exports.updateSuccessPayload = exports.updateReferenceErrorPayload = exports.updateErrorPayload = exports.updateCacheErrorPayload = exports.stringifyError = exports.getSourceInfoErrorPayload = exports.getErrorPayload = exports.fetchSuccessPayload = exports.fetchReferencesErrorPayload = exports.fetchErrorPayload = exports.deleteSuccessPayload = exports.deleteErrorPayload = exports.createSuccessPayloadNew = exports.createSuccessPayload = exports.createErrorPayload = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  var _analytics = require("@atlaskit/editor-common/analytics");
10
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
10
11
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
11
12
  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; }
12
13
  var stringifyError = exports.stringifyError = function stringifyError(error) {
@@ -70,6 +71,25 @@ var fetchSuccessPayload = exports.fetchSuccessPayload = function fetchSuccessPay
70
71
  };
71
72
  };
72
73
  var createSuccessPayload = exports.createSuccessPayload = function createSuccessPayload(resourceId) {
74
+ return (0, _platformFeatureFlags.fg)('platform_synced_block_patch_3') ? {
75
+ action: _analytics.ACTION.INSERTED,
76
+ actionSubject: _analytics.ACTION_SUBJECT.DOCUMENT,
77
+ actionSubjectId: _analytics.ACTION_SUBJECT_ID.BODIED_SYNCED_BLOCK,
78
+ eventType: _analytics.EVENT_TYPE.TRACK,
79
+ attributes: {
80
+ resourceId: resourceId
81
+ }
82
+ } : {
83
+ action: _analytics.ACTION.INSERTED,
84
+ actionSubject: _analytics.ACTION_SUBJECT.SYNCED_BLOCK,
85
+ actionSubjectId: _analytics.ACTION_SUBJECT_ID.SYNCED_BLOCK_CREATE,
86
+ eventType: _analytics.EVENT_TYPE.OPERATIONAL,
87
+ attributes: {
88
+ resourceId: resourceId
89
+ }
90
+ };
91
+ };
92
+ var createSuccessPayloadNew = exports.createSuccessPayloadNew = function createSuccessPayloadNew(resourceId) {
73
93
  return {
74
94
  action: _analytics.ACTION.INSERTED,
75
95
  actionSubject: _analytics.ACTION_SUBJECT.SYNCED_BLOCK,
@@ -11,8 +11,9 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
11
11
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
12
12
  /**
13
13
  * Merges two SyncBlockInstance objects,
14
- * currently it only preserves the sourceURL from the old result,
15
- * but this can be extended in the future to preserve other fields and resolve conflicts as needed.
14
+ * preserving sourceURL, sourceTitle, sourceSubType, and onSameDocument from the old result
15
+ * when the new result does not have them.
16
+ * This can be extended in the future to resolve other conflicts as needed,
16
17
  * e.g. compare timestamps or version numbers to determine which data is more recent.
17
18
  *
18
19
  * @param oldResult - The existing SyncBlockInstance object.
@@ -50,7 +50,8 @@ var _fetchWithRetry = exports.fetchWithRetry = /*#__PURE__*/function () {
50
50
  retryAfter = response.headers.get('Retry-After');
51
51
  _context.next = 11;
52
52
  return new Promise(function (resolve) {
53
- return setTimeout(resolve, retryAfter ? parseRetryAfter(retryAfter) : delay);
53
+ var _ref2;
54
+ return setTimeout(resolve, (_ref2 = retryAfter ? parseRetryAfter(retryAfter) : undefined) !== null && _ref2 !== void 0 ? _ref2 : delay);
54
55
  });
55
56
  case 11:
56
57
  return _context.abrupt("return", _fetchWithRetry(url, options, retriesRemaining - 1, delay * 2));
@@ -31,8 +31,10 @@ export const generateBlockAriFromReference = ({
31
31
  };
32
32
 
33
33
  /**
34
- * Extracts the local ID from a block ARI.
35
- * @param ari - the block ARI. E.G ari:cloud:blocks:cloudId:synced-block/localId
34
+ * Extracts the local ID from a source block ARI.
35
+ * Designed for source block ARIs of the form: ari:cloud:blocks:{cloudId}:synced-block/{localId}
36
+ * where the localId is a UUID immediately after synced-block/.
37
+ * @param ari - the source block ARI. E.G ari:cloud:blocks:cloudId:synced-block/79d4f3f4-51df-451b-b9a1-751bc77b1e77
36
38
  * @returns the localId of the block node. A randomly generated UUID
37
39
  */
38
40
  export const getLocalIdFromBlockResourceId = ari => {
@@ -40,7 +42,7 @@ export const getLocalIdFromBlockResourceId = ari => {
40
42
  if (match !== null && match !== void 0 && match[1]) {
41
43
  return match[1];
42
44
  }
43
- throw new Error(`Invalid page ARI: ${ari}`);
45
+ throw new Error(`Invalid block ARI: ${ari}`);
44
46
  };
45
47
  export const getProductFromSourceAri = ari => {
46
48
  const jiraMatch = ari === null || ari === void 0 ? void 0 : ari.search(/ari:cloud:jira:.*/);
@@ -10,14 +10,15 @@ export { useHandleContentChanges } from './hooks/useHandleContentChanges';
10
10
 
11
11
  // clients
12
12
  export { generateBlockAri, generateBlockAriFromReference, getLocalIdFromBlockResourceId } from './clients/block-service/ari';
13
+ export { BlockError } from './clients/block-service/blockService';
13
14
  export { getConfluencePageAri, getPageIdAndTypeFromConfluencePageAri } from './clients/confluence/ari';
14
15
  export { fetchMediaToken } from './clients/confluence/fetchMediaToken';
15
16
  export { getJiraWorkItemAri, getJiraWorkItemIdFromAri } from './clients/jira/ari';
16
17
 
17
18
  // providers
18
- export { useMemoizedBlockServiceAPIProviders, useMemoizedBlockServiceFetchOnlyAPIProvider, fetchReferences, batchFetchData } from './providers/block-service/blockServiceAPI';
19
+ export { useMemoizedBlockServiceAPIProviders, useMemoizedBlockServiceFetchOnlyAPIProvider, fetchReferences, batchFetchData, blockAriToResourceId, convertToSyncBlockData, extractResourceIdFromBlockAri } from './providers/block-service/blockServiceAPI';
19
20
  export { fetchConfluencePageInfo } from './clients/confluence/sourceInfo';
20
- export { SyncBlockProvider as SyncedBlockProvider, useMemoizedSyncedBlockProvider } from './providers/syncBlockProvider';
21
+ export { SyncedBlockProvider, useMemoizedSyncedBlockProvider } from './providers/syncBlockProvider';
21
22
  // store managers
22
23
  export { ReferenceSyncBlockStoreManager } from './store-manager/referenceSyncBlockStoreManager';
23
24
  export { SyncBlockStoreManager, useMemoizedSyncBlockStoreManager } from './store-manager/syncBlockStoreManager';
@@ -5,10 +5,10 @@ import { getPageIdAndTypeFromConfluencePageAri } from '../clients/confluence/ari
5
5
  import { fetchConfluencePageInfo } from '../clients/confluence/sourceInfo';
6
6
  import { fetchJiraWorkItemInfo } from '../clients/jira/sourceInfo';
7
7
  import { SyncBlockError } from '../common/types';
8
- import { SyncBlockDataProvider } from './types';
9
- export class SyncBlockProvider extends SyncBlockDataProvider {
8
+ import { SyncBlockDataProviderInterface } from './types';
9
+ export class SyncedBlockProvider extends SyncBlockDataProviderInterface {
10
10
  /**
11
- * Constructor for the SyncBlockProvider
11
+ * Constructor for the SyncedBlockProvider
12
12
  *
13
13
  * @param fetchProvider
14
14
  * @param writeProvider
@@ -283,7 +283,7 @@ const createSyncedBlockProvider = ({
283
283
  fetchProvider,
284
284
  writeProvider
285
285
  }) => {
286
- return new SyncBlockProvider(fetchProvider, writeProvider);
286
+ return new SyncedBlockProvider(fetchProvider, writeProvider);
287
287
  };
288
288
  export const useMemoizedSyncedBlockProvider = ({
289
289
  fetchProvider,
@@ -6,4 +6,4 @@ import { NodeDataProvider } from '@atlaskit/node-data-provider';
6
6
  * This will be used in both data processing and rendering contexts.
7
7
  */
8
8
 
9
- export class SyncBlockDataProvider extends NodeDataProvider {}
9
+ export class SyncBlockDataProviderInterface extends NodeDataProvider {}
@@ -943,7 +943,7 @@ export class ReferenceSyncBlockStoreManager {
943
943
  }
944
944
  const parentInfo = this.dataProvider.retrieveSyncBlockParentInfo((_syncBlock$data2 = syncBlock.data) === null || _syncBlock$data2 === void 0 ? void 0 : _syncBlock$data2.sourceAri, (_syncBlock$data3 = syncBlock.data) === null || _syncBlock$data3 === void 0 ? void 0 : _syncBlock$data3.product);
945
945
  if (!parentInfo) {
946
- throw new Error('Unable to retrive sync block parent info');
946
+ throw new Error('Unable to retrieve sync block parent info');
947
947
  }
948
948
  const {
949
949
  contentId,
@@ -1120,7 +1120,6 @@ export class ReferenceSyncBlockStoreManager {
1120
1120
  this.titleSubscriptions.clear();
1121
1121
  this.syncBlockFetchDataRequests.clear();
1122
1122
  this.syncBlockSourceInfoRequests.clear();
1123
- this.providerFactories.clear();
1124
1123
  this.isRefreshingSubscriptions = false;
1125
1124
  this.useRealTimeSubscriptions = false;
1126
1125
  this.subscriptionChangeListeners.clear();
@@ -204,7 +204,7 @@ export class SourceSyncBlockStoreManager {
204
204
  * Create a bodiedSyncBlock node with empty content to backend
205
205
  * @param attrs attributes Ids of the node
206
206
  */
207
- createBodiedSyncBlockNode(attrs, onCompletion, nodeData) {
207
+ createBodiedSyncBlockNode(attrs, onCompletion) {
208
208
  const {
209
209
  resourceId,
210
210
  localId: blockInstanceId
@@ -1,4 +1,5 @@
1
1
  import { ACTION, ACTION_SUBJECT, EVENT_TYPE, ACTION_SUBJECT_ID } from '@atlaskit/editor-common/analytics';
2
+ import { fg } from '@atlaskit/platform-feature-flags';
2
3
  export const stringifyError = error => {
3
4
  try {
4
5
  return JSON.stringify(error);
@@ -41,7 +42,26 @@ export const fetchSuccessPayload = (resourceId, blockInstanceId, sourceProduct)
41
42
  })
42
43
  }
43
44
  });
44
- export const createSuccessPayload = resourceId => ({
45
+ export const createSuccessPayload = resourceId => {
46
+ return fg('platform_synced_block_patch_3') ? {
47
+ action: ACTION.INSERTED,
48
+ actionSubject: ACTION_SUBJECT.DOCUMENT,
49
+ actionSubjectId: ACTION_SUBJECT_ID.BODIED_SYNCED_BLOCK,
50
+ eventType: EVENT_TYPE.TRACK,
51
+ attributes: {
52
+ resourceId
53
+ }
54
+ } : {
55
+ action: ACTION.INSERTED,
56
+ actionSubject: ACTION_SUBJECT.SYNCED_BLOCK,
57
+ actionSubjectId: ACTION_SUBJECT_ID.SYNCED_BLOCK_CREATE,
58
+ eventType: EVENT_TYPE.OPERATIONAL,
59
+ attributes: {
60
+ resourceId
61
+ }
62
+ };
63
+ };
64
+ export const createSuccessPayloadNew = resourceId => ({
45
65
  action: ACTION.INSERTED,
46
66
  actionSubject: ACTION_SUBJECT.SYNCED_BLOCK,
47
67
  actionSubjectId: ACTION_SUBJECT_ID.SYNCED_BLOCK_CREATE,
@@ -1,8 +1,9 @@
1
1
  import { SyncBlockError } from '../common/types';
2
2
  /**
3
3
  * Merges two SyncBlockInstance objects,
4
- * currently it only preserves the sourceURL from the old result,
5
- * but this can be extended in the future to preserve other fields and resolve conflicts as needed.
4
+ * preserving sourceURL, sourceTitle, sourceSubType, and onSameDocument from the old result
5
+ * when the new result does not have them.
6
+ * This can be extended in the future to resolve other conflicts as needed,
6
7
  * e.g. compare timestamps or version numbers to determine which data is more recent.
7
8
  *
8
9
  * @param oldResult - The existing SyncBlockInstance object.
@@ -21,6 +21,9 @@ export const fetchWithRetry = async (url, options, retriesRemaining = 3, delay =
21
21
  return response;
22
22
  }
23
23
  const retryAfter = response.headers.get('Retry-After');
24
- await new Promise(resolve => setTimeout(resolve, retryAfter ? parseRetryAfter(retryAfter) : delay));
24
+ await new Promise(resolve => {
25
+ var _ref;
26
+ return setTimeout(resolve, (_ref = retryAfter ? parseRetryAfter(retryAfter) : undefined) !== null && _ref !== void 0 ? _ref : delay);
27
+ });
25
28
  return fetchWithRetry(url, options, retriesRemaining - 1, delay * 2);
26
29
  };
@@ -29,8 +29,10 @@ export var generateBlockAriFromReference = function generateBlockAriFromReferenc
29
29
  };
30
30
 
31
31
  /**
32
- * Extracts the local ID from a block ARI.
33
- * @param ari - the block ARI. E.G ari:cloud:blocks:cloudId:synced-block/localId
32
+ * Extracts the local ID from a source block ARI.
33
+ * Designed for source block ARIs of the form: ari:cloud:blocks:{cloudId}:synced-block/{localId}
34
+ * where the localId is a UUID immediately after synced-block/.
35
+ * @param ari - the source block ARI. E.G ari:cloud:blocks:cloudId:synced-block/79d4f3f4-51df-451b-b9a1-751bc77b1e77
34
36
  * @returns the localId of the block node. A randomly generated UUID
35
37
  */
36
38
  export var getLocalIdFromBlockResourceId = function getLocalIdFromBlockResourceId(ari) {
@@ -38,7 +40,7 @@ export var getLocalIdFromBlockResourceId = function getLocalIdFromBlockResourceI
38
40
  if (match !== null && match !== void 0 && match[1]) {
39
41
  return match[1];
40
42
  }
41
- throw new Error("Invalid page ARI: ".concat(ari));
43
+ throw new Error("Invalid block ARI: ".concat(ari));
42
44
  };
43
45
  export var getProductFromSourceAri = function getProductFromSourceAri(ari) {
44
46
  var jiraMatch = ari === null || ari === void 0 ? void 0 : ari.search(/ari:cloud:jira:.*/);
package/dist/esm/index.js CHANGED
@@ -10,14 +10,15 @@ export { useHandleContentChanges } from './hooks/useHandleContentChanges';
10
10
 
11
11
  // clients
12
12
  export { generateBlockAri, generateBlockAriFromReference, getLocalIdFromBlockResourceId } from './clients/block-service/ari';
13
+ export { BlockError } from './clients/block-service/blockService';
13
14
  export { getConfluencePageAri, getPageIdAndTypeFromConfluencePageAri } from './clients/confluence/ari';
14
15
  export { fetchMediaToken } from './clients/confluence/fetchMediaToken';
15
16
  export { getJiraWorkItemAri, getJiraWorkItemIdFromAri } from './clients/jira/ari';
16
17
 
17
18
  // providers
18
- export { useMemoizedBlockServiceAPIProviders, useMemoizedBlockServiceFetchOnlyAPIProvider, fetchReferences, batchFetchData } from './providers/block-service/blockServiceAPI';
19
+ export { useMemoizedBlockServiceAPIProviders, useMemoizedBlockServiceFetchOnlyAPIProvider, fetchReferences, batchFetchData, blockAriToResourceId, convertToSyncBlockData, extractResourceIdFromBlockAri } from './providers/block-service/blockServiceAPI';
19
20
  export { fetchConfluencePageInfo } from './clients/confluence/sourceInfo';
20
- export { SyncBlockProvider as SyncedBlockProvider, useMemoizedSyncedBlockProvider } from './providers/syncBlockProvider';
21
+ export { SyncedBlockProvider, useMemoizedSyncedBlockProvider } from './providers/syncBlockProvider';
21
22
  // store managers
22
23
  export { ReferenceSyncBlockStoreManager } from './store-manager/referenceSyncBlockStoreManager';
23
24
  export { SyncBlockStoreManager, useMemoizedSyncBlockStoreManager } from './store-manager/syncBlockStoreManager';
@@ -16,27 +16,27 @@ import { getPageIdAndTypeFromConfluencePageAri } from '../clients/confluence/ari
16
16
  import { fetchConfluencePageInfo } from '../clients/confluence/sourceInfo';
17
17
  import { fetchJiraWorkItemInfo } from '../clients/jira/sourceInfo';
18
18
  import { SyncBlockError } from '../common/types';
19
- import { SyncBlockDataProvider } from './types';
20
- export var SyncBlockProvider = /*#__PURE__*/function (_SyncBlockDataProvide) {
19
+ import { SyncBlockDataProviderInterface } from './types';
20
+ export var SyncedBlockProvider = /*#__PURE__*/function (_SyncBlockDataProvide) {
21
21
  /**
22
- * Constructor for the SyncBlockProvider
22
+ * Constructor for the SyncedBlockProvider
23
23
  *
24
24
  * @param fetchProvider
25
25
  * @param writeProvider
26
26
  * @param nestedRendererDataProviders
27
27
  */
28
- function SyncBlockProvider(fetchProvider, writeProvider) {
28
+ function SyncedBlockProvider(fetchProvider, writeProvider) {
29
29
  var _this;
30
- _classCallCheck(this, SyncBlockProvider);
31
- _this = _callSuper(this, SyncBlockProvider);
30
+ _classCallCheck(this, SyncedBlockProvider);
31
+ _this = _callSuper(this, SyncedBlockProvider);
32
32
  _defineProperty(_this, "name", 'syncBlockProvider');
33
33
  _this.fetchProvider = fetchProvider;
34
34
  _this.writeProvider = writeProvider;
35
35
  _this.providerOptions = {};
36
36
  return _this;
37
37
  }
38
- _inherits(SyncBlockProvider, _SyncBlockDataProvide);
39
- return _createClass(SyncBlockProvider, [{
38
+ _inherits(SyncedBlockProvider, _SyncBlockDataProvide);
39
+ return _createClass(SyncedBlockProvider, [{
40
40
  key: "setProviderOptions",
41
41
  value: function setProviderOptions(providerOptions) {
42
42
  this.providerOptions = providerOptions;
@@ -434,11 +434,11 @@ export var SyncBlockProvider = /*#__PURE__*/function (_SyncBlockDataProvide) {
434
434
  return undefined;
435
435
  }
436
436
  }]);
437
- }(SyncBlockDataProvider);
437
+ }(SyncBlockDataProviderInterface);
438
438
  var createSyncedBlockProvider = function createSyncedBlockProvider(_ref) {
439
439
  var fetchProvider = _ref.fetchProvider,
440
440
  writeProvider = _ref.writeProvider;
441
- return new SyncBlockProvider(fetchProvider, writeProvider);
441
+ return new SyncedBlockProvider(fetchProvider, writeProvider);
442
442
  };
443
443
  export var useMemoizedSyncedBlockProvider = function useMemoizedSyncedBlockProvider(_ref2) {
444
444
  var fetchProvider = _ref2.fetchProvider,
@@ -13,11 +13,11 @@ import { NodeDataProvider } from '@atlaskit/node-data-provider';
13
13
  * This will be used in both data processing and rendering contexts.
14
14
  */
15
15
 
16
- export var SyncBlockDataProvider = /*#__PURE__*/function (_NodeDataProvider) {
17
- function SyncBlockDataProvider() {
18
- _classCallCheck(this, SyncBlockDataProvider);
19
- return _callSuper(this, SyncBlockDataProvider, arguments);
16
+ export var SyncBlockDataProviderInterface = /*#__PURE__*/function (_NodeDataProvider) {
17
+ function SyncBlockDataProviderInterface() {
18
+ _classCallCheck(this, SyncBlockDataProviderInterface);
19
+ return _callSuper(this, SyncBlockDataProviderInterface, arguments);
20
20
  }
21
- _inherits(SyncBlockDataProvider, _NodeDataProvider);
22
- return _createClass(SyncBlockDataProvider);
21
+ _inherits(SyncBlockDataProviderInterface, _NodeDataProvider);
22
+ return _createClass(SyncBlockDataProviderInterface);
23
23
  }(NodeDataProvider);
@@ -1142,7 +1142,7 @@ export var ReferenceSyncBlockStoreManager = /*#__PURE__*/function () {
1142
1142
  }
1143
1143
  var parentInfo = this.dataProvider.retrieveSyncBlockParentInfo((_syncBlock$data2 = syncBlock.data) === null || _syncBlock$data2 === void 0 ? void 0 : _syncBlock$data2.sourceAri, (_syncBlock$data3 = syncBlock.data) === null || _syncBlock$data3 === void 0 ? void 0 : _syncBlock$data3.product);
1144
1144
  if (!parentInfo) {
1145
- throw new Error('Unable to retrive sync block parent info');
1145
+ throw new Error('Unable to retrieve sync block parent info');
1146
1146
  }
1147
1147
  var contentId = parentInfo.contentId,
1148
1148
  contentProduct = parentInfo.contentProduct;
@@ -1388,7 +1388,6 @@ export var ReferenceSyncBlockStoreManager = /*#__PURE__*/function () {
1388
1388
  this.titleSubscriptions.clear();
1389
1389
  this.syncBlockFetchDataRequests.clear();
1390
1390
  this.syncBlockSourceInfoRequests.clear();
1391
- this.providerFactories.clear();
1392
1391
  this.isRefreshingSubscriptions = false;
1393
1392
  this.useRealTimeSubscriptions = false;
1394
1393
  this.subscriptionChangeListeners.clear();
@@ -260,7 +260,7 @@ export var SourceSyncBlockStoreManager = /*#__PURE__*/function () {
260
260
  */
261
261
  }, {
262
262
  key: "createBodiedSyncBlockNode",
263
- value: function createBodiedSyncBlockNode(attrs, onCompletion, nodeData) {
263
+ value: function createBodiedSyncBlockNode(attrs, onCompletion) {
264
264
  var _this4 = this;
265
265
  var resourceId = attrs.resourceId,
266
266
  blockInstanceId = attrs.localId;
@@ -2,6 +2,7 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
3
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
4
  import { ACTION, ACTION_SUBJECT, EVENT_TYPE, ACTION_SUBJECT_ID } from '@atlaskit/editor-common/analytics';
5
+ import { fg } from '@atlaskit/platform-feature-flags';
5
6
  export var stringifyError = function stringifyError(error) {
6
7
  try {
7
8
  return JSON.stringify(error);
@@ -63,6 +64,25 @@ export var fetchSuccessPayload = function fetchSuccessPayload(resourceId, blockI
63
64
  };
64
65
  };
65
66
  export var createSuccessPayload = function createSuccessPayload(resourceId) {
67
+ return fg('platform_synced_block_patch_3') ? {
68
+ action: ACTION.INSERTED,
69
+ actionSubject: ACTION_SUBJECT.DOCUMENT,
70
+ actionSubjectId: ACTION_SUBJECT_ID.BODIED_SYNCED_BLOCK,
71
+ eventType: EVENT_TYPE.TRACK,
72
+ attributes: {
73
+ resourceId: resourceId
74
+ }
75
+ } : {
76
+ action: ACTION.INSERTED,
77
+ actionSubject: ACTION_SUBJECT.SYNCED_BLOCK,
78
+ actionSubjectId: ACTION_SUBJECT_ID.SYNCED_BLOCK_CREATE,
79
+ eventType: EVENT_TYPE.OPERATIONAL,
80
+ attributes: {
81
+ resourceId: resourceId
82
+ }
83
+ };
84
+ };
85
+ export var createSuccessPayloadNew = function createSuccessPayloadNew(resourceId) {
66
86
  return {
67
87
  action: ACTION.INSERTED,
68
88
  actionSubject: ACTION_SUBJECT.SYNCED_BLOCK,
@@ -4,8 +4,9 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
4
4
  import { SyncBlockError } from '../common/types';
5
5
  /**
6
6
  * Merges two SyncBlockInstance objects,
7
- * currently it only preserves the sourceURL from the old result,
8
- * but this can be extended in the future to preserve other fields and resolve conflicts as needed.
7
+ * preserving sourceURL, sourceTitle, sourceSubType, and onSameDocument from the old result
8
+ * when the new result does not have them.
9
+ * This can be extended in the future to resolve other conflicts as needed,
9
10
  * e.g. compare timestamps or version numbers to determine which data is more recent.
10
11
  *
11
12
  * @param oldResult - The existing SyncBlockInstance object.
@@ -43,7 +43,8 @@ var _fetchWithRetry = /*#__PURE__*/function () {
43
43
  retryAfter = response.headers.get('Retry-After');
44
44
  _context.next = 11;
45
45
  return new Promise(function (resolve) {
46
- return setTimeout(resolve, retryAfter ? parseRetryAfter(retryAfter) : delay);
46
+ var _ref2;
47
+ return setTimeout(resolve, (_ref2 = retryAfter ? parseRetryAfter(retryAfter) : undefined) !== null && _ref2 !== void 0 ? _ref2 : delay);
47
48
  });
48
49
  case 11:
49
50
  return _context.abrupt("return", _fetchWithRetry(url, options, retriesRemaining - 1, delay * 2));
@@ -24,8 +24,10 @@ export declare const generateBlockAriFromReference: ({ cloudId, resourceId, }: {
24
24
  resourceId: string;
25
25
  }) => string;
26
26
  /**
27
- * Extracts the local ID from a block ARI.
28
- * @param ari - the block ARI. E.G ari:cloud:blocks:cloudId:synced-block/localId
27
+ * Extracts the local ID from a source block ARI.
28
+ * Designed for source block ARIs of the form: ari:cloud:blocks:{cloudId}:synced-block/{localId}
29
+ * where the localId is a UUID immediately after synced-block/.
30
+ * @param ari - the source block ARI. E.G ari:cloud:blocks:cloudId:synced-block/79d4f3f4-51df-451b-b9a1-751bc77b1e77
29
31
  * @returns the localId of the block node. A randomly generated UUID
30
32
  */
31
33
  export declare const getLocalIdFromBlockResourceId: (ari: string) => string;
@@ -5,13 +5,15 @@ export { useFetchSyncBlockData, type UseFetchSyncBlockDataResult, } from './hook
5
5
  export { useFetchSyncBlockTitle } from './hooks/useFetchSyncBlockTitle';
6
6
  export { useHandleContentChanges } from './hooks/useHandleContentChanges';
7
7
  export { generateBlockAri, generateBlockAriFromReference, getLocalIdFromBlockResourceId, } from './clients/block-service/ari';
8
+ export type { BlockContentResponse, BatchRetrieveSyncedBlocksResponse, ErrorResponse, } from './clients/block-service/blockService';
9
+ export { BlockError } from './clients/block-service/blockService';
8
10
  export { getConfluencePageAri, getPageIdAndTypeFromConfluencePageAri, } from './clients/confluence/ari';
9
11
  export { fetchMediaToken, type TokenData, type ConfigData, } from './clients/confluence/fetchMediaToken';
10
12
  export { getJiraWorkItemAri, getJiraWorkItemIdFromAri } from './clients/jira/ari';
11
- export { useMemoizedBlockServiceAPIProviders, useMemoizedBlockServiceFetchOnlyAPIProvider, fetchReferences, batchFetchData, } from './providers/block-service/blockServiceAPI';
13
+ export { useMemoizedBlockServiceAPIProviders, useMemoizedBlockServiceFetchOnlyAPIProvider, fetchReferences, batchFetchData, blockAriToResourceId, convertToSyncBlockData, extractResourceIdFromBlockAri, } from './providers/block-service/blockServiceAPI';
12
14
  export { fetchConfluencePageInfo } from './clients/confluence/sourceInfo';
13
- export { SyncBlockProvider as SyncedBlockProvider, useMemoizedSyncedBlockProvider, } from './providers/syncBlockProvider';
14
- export type { ADFFetchProvider, ADFWriteProvider, BlockNodeIdentifiers, BlockSubscriptionErrorCallback, BlockUpdateCallback, SyncBlockDataProvider, SyncBlockInstance, MediaEmojiProviderOptions, SyncedBlockRendererProviderOptions, SyncBlockRendererProviderCreator, SyncedBlockRendererDataProviders, Unsubscribe, UpdateReferenceSyncBlockResult, WriteSyncBlockResult, SyncBlockParentInfo, SyncBlockSourceInfo, } from './providers/types';
15
+ export { SyncedBlockProvider, useMemoizedSyncedBlockProvider } from './providers/syncBlockProvider';
16
+ export type { ADFFetchProvider, ADFWriteProvider, BlockNodeIdentifiers, BlockSubscriptionErrorCallback, BlockUpdateCallback, SyncBlockDataProviderInterface, SyncBlockInstance, MediaEmojiProviderOptions, SyncedBlockRendererProviderOptions, SyncBlockRendererProviderCreator, SyncedBlockRendererDataProviders, Unsubscribe, UpdateReferenceSyncBlockResult, WriteSyncBlockResult, SyncBlockParentInfo, SyncBlockSourceInfo, } from './providers/types';
15
17
  export { ReferenceSyncBlockStoreManager } from './store-manager/referenceSyncBlockStoreManager';
16
18
  export { SyncBlockStoreManager, useMemoizedSyncBlockStoreManager, } from './store-manager/syncBlockStoreManager';
17
19
  export { resolveSyncBlockInstance } from './utils/resolveSyncBlockInstance';
@@ -1,14 +1,14 @@
1
1
  import type { RendererSyncBlockEventPayload } from '@atlaskit/editor-common/analytics';
2
2
  import type { JSONNode } from '@atlaskit/editor-json-transformer/types';
3
3
  import { type BlockInstanceId, type DeletionReason, type ReferenceSyncBlockData, type ResourceId, type SyncBlockAttrs, type SyncBlockData, type SyncBlockNode, type SyncBlockProduct } from '../common/types';
4
- import { SyncBlockDataProvider, type ADFFetchProvider, type ADFWriteProvider, type BlockSubscriptionErrorCallback, type BlockUpdateCallback, type DeleteSyncBlockResult, type SyncBlockInstance, type SyncBlockParentInfo, type SyncBlockSourceInfo, type SyncedBlockRendererProviderOptions, type Unsubscribe, type UpdateReferenceSyncBlockResult, type WriteSyncBlockResult } from './types';
5
- export declare class SyncBlockProvider extends SyncBlockDataProvider {
4
+ import { SyncBlockDataProviderInterface, type ADFFetchProvider, type ADFWriteProvider, type BlockSubscriptionErrorCallback, type BlockUpdateCallback, type DeleteSyncBlockResult, type SyncBlockInstance, type SyncBlockParentInfo, type SyncBlockSourceInfo, type SyncedBlockRendererProviderOptions, type Unsubscribe, type UpdateReferenceSyncBlockResult, type WriteSyncBlockResult } from './types';
5
+ export declare class SyncedBlockProvider extends SyncBlockDataProviderInterface {
6
6
  name: string;
7
7
  private fetchProvider;
8
8
  private writeProvider;
9
9
  private providerOptions;
10
10
  /**
11
- * Constructor for the SyncBlockProvider
11
+ * Constructor for the SyncedBlockProvider
12
12
  *
13
13
  * @param fetchProvider
14
14
  * @param writeProvider
@@ -106,5 +106,5 @@ type UseMemoizedSyncedBlockProviderProps = {
106
106
  providerOptions: SyncedBlockRendererProviderOptions;
107
107
  writeProvider: ADFWriteProvider | undefined;
108
108
  };
109
- export declare const useMemoizedSyncedBlockProvider: ({ fetchProvider, writeProvider, providerOptions, getSSRData, }: UseMemoizedSyncedBlockProviderProps) => SyncBlockProvider;
109
+ export declare const useMemoizedSyncedBlockProvider: ({ fetchProvider, writeProvider, providerOptions, getSSRData, }: UseMemoizedSyncedBlockProviderProps) => SyncedBlockProvider;
110
110
  export {};
@@ -108,7 +108,7 @@ export type SyncedBlockRendererProviderOptions = {
108
108
  parentDataProviders?: SyncedBlockRendererDataProviders;
109
109
  providerCreator?: SyncBlockRendererProviderCreator;
110
110
  };
111
- export declare abstract class SyncBlockDataProvider extends NodeDataProvider<SyncBlockNode, SyncBlockInstance> {
111
+ export declare abstract class SyncBlockDataProviderInterface extends NodeDataProvider<SyncBlockNode, SyncBlockInstance> {
112
112
  abstract writeNodesData(nodes: SyncBlockNode[], data: SyncBlockData[]): Promise<Array<WriteSyncBlockResult>>;
113
113
  abstract createNodeData(data: SyncBlockData): Promise<WriteSyncBlockResult>;
114
114
  abstract deleteNodesData(resourceIds: string[], deleteReason: DeletionReason): Promise<Array<DeleteSyncBlockResult>>;
@@ -3,7 +3,7 @@ import type { Experience } from '@atlaskit/editor-common/experiences';
3
3
  import { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
4
4
  import { type Node as PMNode } from '@atlaskit/editor-prosemirror/model';
5
5
  import { type ResourceId, type SyncBlockNode, type SyncBlockPrefetchData } from '../common/types';
6
- import type { SyncBlockInstance, SubscriptionCallback, SyncBlockDataProvider, TitleSubscriptionCallback, SyncBlockSourceInfo } from '../providers/types';
6
+ import type { SyncBlockInstance, SubscriptionCallback, SyncBlockDataProviderInterface, TitleSubscriptionCallback, SyncBlockSourceInfo } from '../providers/types';
7
7
  export declare class ReferenceSyncBlockStoreManager {
8
8
  private dataProvider?;
9
9
  private isCacheDirty;
@@ -29,7 +29,7 @@ export declare class ReferenceSyncBlockStoreManager {
29
29
  private saveExperience;
30
30
  private pendingFetchRequests;
31
31
  private scheduledBatchFetch;
32
- constructor(dataProvider?: SyncBlockDataProvider);
32
+ constructor(dataProvider?: SyncBlockDataProviderInterface);
33
33
  /**
34
34
  * Enables or disables real-time GraphQL subscriptions for block updates.
35
35
  * When enabled, the store manager will subscribe to real-time updates
@@ -1,7 +1,7 @@
1
1
  import { type SyncBlockEventPayload } from '@atlaskit/editor-common/analytics';
2
2
  import type { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
3
3
  import { type ResourceId, type SyncBlockAttrs, type BlockInstanceId, type DeletionReason, type ReferenceSyncBlockData } from '../common/types';
4
- import type { SyncBlockDataProvider, SyncBlockSourceInfo } from '../providers/types';
4
+ import type { SyncBlockDataProviderInterface, SyncBlockSourceInfo } from '../providers/types';
5
5
  export type ConfirmationCallback = (syncBlockIds: SyncBlockAttrs[], deleteReason: DeletionReason | undefined) => Promise<boolean>;
6
6
  type OnDelete = () => void;
7
7
  type OnCompletion = (success: boolean) => void;
@@ -17,7 +17,7 @@ export declare class SourceSyncBlockStoreManager {
17
17
  private saveExperience;
18
18
  private deleteExperience;
19
19
  private fetchSourceInfoExperience;
20
- constructor(dataProvider?: SyncBlockDataProvider);
20
+ constructor(dataProvider?: SyncBlockDataProviderInterface);
21
21
  setFireAnalyticsEvent(fireAnalyticsEvent?: (payload: SyncBlockEventPayload) => void): void;
22
22
  isSourceBlock(node: PMNode): boolean;
23
23
  /**
@@ -47,7 +47,7 @@ export declare class SourceSyncBlockStoreManager {
47
47
  * Create a bodiedSyncBlock node with empty content to backend
48
48
  * @param attrs attributes Ids of the node
49
49
  */
50
- createBodiedSyncBlockNode(attrs: SyncBlockAttrs, onCompletion: OnCompletion, nodeData?: PMNode): void;
50
+ createBodiedSyncBlockNode(attrs: SyncBlockAttrs, onCompletion: OnCompletion): void;
51
51
  private setPendingDeletion;
52
52
  private delete;
53
53
  isRetryingDeletion(): boolean;
@@ -1,6 +1,6 @@
1
1
  import type { SyncBlockEventPayload } from '@atlaskit/editor-common/analytics';
2
2
  import { type BlockInstanceId, type ReferencesSourceInfo, type ResourceId } from '../common/types';
3
- import type { SyncBlockDataProvider } from '../providers/types';
3
+ import type { SyncBlockDataProviderInterface } from '../providers/types';
4
4
  import { ReferenceSyncBlockStoreManager } from './referenceSyncBlockStoreManager';
5
5
  import { SourceSyncBlockStoreManager } from './sourceSyncBlockStoreManager';
6
6
  export declare class SyncBlockStoreManager {
@@ -10,11 +10,11 @@ export declare class SyncBlockStoreManager {
10
10
  private fireAnalyticsEvent?;
11
11
  private fetchReferencesExperience;
12
12
  private fetchSourceInfoExperience;
13
- constructor(dataProvider?: SyncBlockDataProvider);
13
+ constructor(dataProvider?: SyncBlockDataProviderInterface);
14
14
  fetchReferencesSourceInfo(resourceId: ResourceId, blockInstanceId: BlockInstanceId, isSourceSyncBlock: boolean): Promise<ReferencesSourceInfo>;
15
15
  setFireAnalyticsEvent(fireAnalyticsEvent?: (payload: SyncBlockEventPayload) => void): void;
16
16
  get referenceManager(): ReferenceSyncBlockStoreManager;
17
17
  get sourceManager(): SourceSyncBlockStoreManager;
18
18
  destroy(): void;
19
19
  }
20
- export declare const useMemoizedSyncBlockStoreManager: (dataProvider?: SyncBlockDataProvider, fireAnalyticsEvent?: (payload: SyncBlockEventPayload) => void) => SyncBlockStoreManager;
20
+ export declare const useMemoizedSyncBlockStoreManager: (dataProvider?: SyncBlockDataProviderInterface, fireAnalyticsEvent?: (payload: SyncBlockEventPayload) => void) => SyncBlockStoreManager;
@@ -14,5 +14,6 @@ export declare const updateCacheErrorPayload: (error: string, resourceId?: strin
14
14
  export declare const fetchReferencesErrorPayload: (error: string, resourceId?: string) => SyncBlockEventPayload;
15
15
  export declare const fetchSuccessPayload: (resourceId: string, blockInstanceId?: string, sourceProduct?: string) => RendererSyncBlockEventPayload;
16
16
  export declare const createSuccessPayload: (resourceId: string) => SyncBlockEventPayload;
17
+ export declare const createSuccessPayloadNew: (resourceId: string) => SyncBlockEventPayload;
17
18
  export declare const updateSuccessPayload: (resourceId: string, hasReference?: boolean) => SyncBlockEventPayload;
18
19
  export declare const deleteSuccessPayload: (resourceId: string) => SyncBlockEventPayload;
@@ -1,8 +1,9 @@
1
1
  import type { SyncBlockInstance } from '../providers/types';
2
2
  /**
3
3
  * Merges two SyncBlockInstance objects,
4
- * currently it only preserves the sourceURL from the old result,
5
- * but this can be extended in the future to preserve other fields and resolve conflicts as needed.
4
+ * preserving sourceURL, sourceTitle, sourceSubType, and onSameDocument from the old result
5
+ * when the new result does not have them.
6
+ * This can be extended in the future to resolve other conflicts as needed,
6
7
  * e.g. compare timestamps or version numbers to determine which data is more recent.
7
8
  *
8
9
  * @param oldResult - The existing SyncBlockInstance object.
@@ -24,8 +24,10 @@ export declare const generateBlockAriFromReference: ({ cloudId, resourceId, }: {
24
24
  resourceId: string;
25
25
  }) => string;
26
26
  /**
27
- * Extracts the local ID from a block ARI.
28
- * @param ari - the block ARI. E.G ari:cloud:blocks:cloudId:synced-block/localId
27
+ * Extracts the local ID from a source block ARI.
28
+ * Designed for source block ARIs of the form: ari:cloud:blocks:{cloudId}:synced-block/{localId}
29
+ * where the localId is a UUID immediately after synced-block/.
30
+ * @param ari - the source block ARI. E.G ari:cloud:blocks:cloudId:synced-block/79d4f3f4-51df-451b-b9a1-751bc77b1e77
29
31
  * @returns the localId of the block node. A randomly generated UUID
30
32
  */
31
33
  export declare const getLocalIdFromBlockResourceId: (ari: string) => string;
@@ -5,13 +5,15 @@ export { useFetchSyncBlockData, type UseFetchSyncBlockDataResult, } from './hook
5
5
  export { useFetchSyncBlockTitle } from './hooks/useFetchSyncBlockTitle';
6
6
  export { useHandleContentChanges } from './hooks/useHandleContentChanges';
7
7
  export { generateBlockAri, generateBlockAriFromReference, getLocalIdFromBlockResourceId, } from './clients/block-service/ari';
8
+ export type { BlockContentResponse, BatchRetrieveSyncedBlocksResponse, ErrorResponse, } from './clients/block-service/blockService';
9
+ export { BlockError } from './clients/block-service/blockService';
8
10
  export { getConfluencePageAri, getPageIdAndTypeFromConfluencePageAri, } from './clients/confluence/ari';
9
11
  export { fetchMediaToken, type TokenData, type ConfigData, } from './clients/confluence/fetchMediaToken';
10
12
  export { getJiraWorkItemAri, getJiraWorkItemIdFromAri } from './clients/jira/ari';
11
- export { useMemoizedBlockServiceAPIProviders, useMemoizedBlockServiceFetchOnlyAPIProvider, fetchReferences, batchFetchData, } from './providers/block-service/blockServiceAPI';
13
+ export { useMemoizedBlockServiceAPIProviders, useMemoizedBlockServiceFetchOnlyAPIProvider, fetchReferences, batchFetchData, blockAriToResourceId, convertToSyncBlockData, extractResourceIdFromBlockAri, } from './providers/block-service/blockServiceAPI';
12
14
  export { fetchConfluencePageInfo } from './clients/confluence/sourceInfo';
13
- export { SyncBlockProvider as SyncedBlockProvider, useMemoizedSyncedBlockProvider, } from './providers/syncBlockProvider';
14
- export type { ADFFetchProvider, ADFWriteProvider, BlockNodeIdentifiers, BlockSubscriptionErrorCallback, BlockUpdateCallback, SyncBlockDataProvider, SyncBlockInstance, MediaEmojiProviderOptions, SyncedBlockRendererProviderOptions, SyncBlockRendererProviderCreator, SyncedBlockRendererDataProviders, Unsubscribe, UpdateReferenceSyncBlockResult, WriteSyncBlockResult, SyncBlockParentInfo, SyncBlockSourceInfo, } from './providers/types';
15
+ export { SyncedBlockProvider, useMemoizedSyncedBlockProvider } from './providers/syncBlockProvider';
16
+ export type { ADFFetchProvider, ADFWriteProvider, BlockNodeIdentifiers, BlockSubscriptionErrorCallback, BlockUpdateCallback, SyncBlockDataProviderInterface, SyncBlockInstance, MediaEmojiProviderOptions, SyncedBlockRendererProviderOptions, SyncBlockRendererProviderCreator, SyncedBlockRendererDataProviders, Unsubscribe, UpdateReferenceSyncBlockResult, WriteSyncBlockResult, SyncBlockParentInfo, SyncBlockSourceInfo, } from './providers/types';
15
17
  export { ReferenceSyncBlockStoreManager } from './store-manager/referenceSyncBlockStoreManager';
16
18
  export { SyncBlockStoreManager, useMemoizedSyncBlockStoreManager, } from './store-manager/syncBlockStoreManager';
17
19
  export { resolveSyncBlockInstance } from './utils/resolveSyncBlockInstance';
@@ -1,14 +1,14 @@
1
1
  import type { RendererSyncBlockEventPayload } from '@atlaskit/editor-common/analytics';
2
2
  import type { JSONNode } from '@atlaskit/editor-json-transformer/types';
3
3
  import { type BlockInstanceId, type DeletionReason, type ReferenceSyncBlockData, type ResourceId, type SyncBlockAttrs, type SyncBlockData, type SyncBlockNode, type SyncBlockProduct } from '../common/types';
4
- import { SyncBlockDataProvider, type ADFFetchProvider, type ADFWriteProvider, type BlockSubscriptionErrorCallback, type BlockUpdateCallback, type DeleteSyncBlockResult, type SyncBlockInstance, type SyncBlockParentInfo, type SyncBlockSourceInfo, type SyncedBlockRendererProviderOptions, type Unsubscribe, type UpdateReferenceSyncBlockResult, type WriteSyncBlockResult } from './types';
5
- export declare class SyncBlockProvider extends SyncBlockDataProvider {
4
+ import { SyncBlockDataProviderInterface, type ADFFetchProvider, type ADFWriteProvider, type BlockSubscriptionErrorCallback, type BlockUpdateCallback, type DeleteSyncBlockResult, type SyncBlockInstance, type SyncBlockParentInfo, type SyncBlockSourceInfo, type SyncedBlockRendererProviderOptions, type Unsubscribe, type UpdateReferenceSyncBlockResult, type WriteSyncBlockResult } from './types';
5
+ export declare class SyncedBlockProvider extends SyncBlockDataProviderInterface {
6
6
  name: string;
7
7
  private fetchProvider;
8
8
  private writeProvider;
9
9
  private providerOptions;
10
10
  /**
11
- * Constructor for the SyncBlockProvider
11
+ * Constructor for the SyncedBlockProvider
12
12
  *
13
13
  * @param fetchProvider
14
14
  * @param writeProvider
@@ -106,5 +106,5 @@ type UseMemoizedSyncedBlockProviderProps = {
106
106
  providerOptions: SyncedBlockRendererProviderOptions;
107
107
  writeProvider: ADFWriteProvider | undefined;
108
108
  };
109
- export declare const useMemoizedSyncedBlockProvider: ({ fetchProvider, writeProvider, providerOptions, getSSRData, }: UseMemoizedSyncedBlockProviderProps) => SyncBlockProvider;
109
+ export declare const useMemoizedSyncedBlockProvider: ({ fetchProvider, writeProvider, providerOptions, getSSRData, }: UseMemoizedSyncedBlockProviderProps) => SyncedBlockProvider;
110
110
  export {};
@@ -108,7 +108,7 @@ export type SyncedBlockRendererProviderOptions = {
108
108
  parentDataProviders?: SyncedBlockRendererDataProviders;
109
109
  providerCreator?: SyncBlockRendererProviderCreator;
110
110
  };
111
- export declare abstract class SyncBlockDataProvider extends NodeDataProvider<SyncBlockNode, SyncBlockInstance> {
111
+ export declare abstract class SyncBlockDataProviderInterface extends NodeDataProvider<SyncBlockNode, SyncBlockInstance> {
112
112
  abstract writeNodesData(nodes: SyncBlockNode[], data: SyncBlockData[]): Promise<Array<WriteSyncBlockResult>>;
113
113
  abstract createNodeData(data: SyncBlockData): Promise<WriteSyncBlockResult>;
114
114
  abstract deleteNodesData(resourceIds: string[], deleteReason: DeletionReason): Promise<Array<DeleteSyncBlockResult>>;
@@ -3,7 +3,7 @@ import type { Experience } from '@atlaskit/editor-common/experiences';
3
3
  import { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
4
4
  import { type Node as PMNode } from '@atlaskit/editor-prosemirror/model';
5
5
  import { type ResourceId, type SyncBlockNode, type SyncBlockPrefetchData } from '../common/types';
6
- import type { SyncBlockInstance, SubscriptionCallback, SyncBlockDataProvider, TitleSubscriptionCallback, SyncBlockSourceInfo } from '../providers/types';
6
+ import type { SyncBlockInstance, SubscriptionCallback, SyncBlockDataProviderInterface, TitleSubscriptionCallback, SyncBlockSourceInfo } from '../providers/types';
7
7
  export declare class ReferenceSyncBlockStoreManager {
8
8
  private dataProvider?;
9
9
  private isCacheDirty;
@@ -29,7 +29,7 @@ export declare class ReferenceSyncBlockStoreManager {
29
29
  private saveExperience;
30
30
  private pendingFetchRequests;
31
31
  private scheduledBatchFetch;
32
- constructor(dataProvider?: SyncBlockDataProvider);
32
+ constructor(dataProvider?: SyncBlockDataProviderInterface);
33
33
  /**
34
34
  * Enables or disables real-time GraphQL subscriptions for block updates.
35
35
  * When enabled, the store manager will subscribe to real-time updates
@@ -1,7 +1,7 @@
1
1
  import { type SyncBlockEventPayload } from '@atlaskit/editor-common/analytics';
2
2
  import type { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
3
3
  import { type ResourceId, type SyncBlockAttrs, type BlockInstanceId, type DeletionReason, type ReferenceSyncBlockData } from '../common/types';
4
- import type { SyncBlockDataProvider, SyncBlockSourceInfo } from '../providers/types';
4
+ import type { SyncBlockDataProviderInterface, SyncBlockSourceInfo } from '../providers/types';
5
5
  export type ConfirmationCallback = (syncBlockIds: SyncBlockAttrs[], deleteReason: DeletionReason | undefined) => Promise<boolean>;
6
6
  type OnDelete = () => void;
7
7
  type OnCompletion = (success: boolean) => void;
@@ -17,7 +17,7 @@ export declare class SourceSyncBlockStoreManager {
17
17
  private saveExperience;
18
18
  private deleteExperience;
19
19
  private fetchSourceInfoExperience;
20
- constructor(dataProvider?: SyncBlockDataProvider);
20
+ constructor(dataProvider?: SyncBlockDataProviderInterface);
21
21
  setFireAnalyticsEvent(fireAnalyticsEvent?: (payload: SyncBlockEventPayload) => void): void;
22
22
  isSourceBlock(node: PMNode): boolean;
23
23
  /**
@@ -47,7 +47,7 @@ export declare class SourceSyncBlockStoreManager {
47
47
  * Create a bodiedSyncBlock node with empty content to backend
48
48
  * @param attrs attributes Ids of the node
49
49
  */
50
- createBodiedSyncBlockNode(attrs: SyncBlockAttrs, onCompletion: OnCompletion, nodeData?: PMNode): void;
50
+ createBodiedSyncBlockNode(attrs: SyncBlockAttrs, onCompletion: OnCompletion): void;
51
51
  private setPendingDeletion;
52
52
  private delete;
53
53
  isRetryingDeletion(): boolean;
@@ -1,6 +1,6 @@
1
1
  import type { SyncBlockEventPayload } from '@atlaskit/editor-common/analytics';
2
2
  import { type BlockInstanceId, type ReferencesSourceInfo, type ResourceId } from '../common/types';
3
- import type { SyncBlockDataProvider } from '../providers/types';
3
+ import type { SyncBlockDataProviderInterface } from '../providers/types';
4
4
  import { ReferenceSyncBlockStoreManager } from './referenceSyncBlockStoreManager';
5
5
  import { SourceSyncBlockStoreManager } from './sourceSyncBlockStoreManager';
6
6
  export declare class SyncBlockStoreManager {
@@ -10,11 +10,11 @@ export declare class SyncBlockStoreManager {
10
10
  private fireAnalyticsEvent?;
11
11
  private fetchReferencesExperience;
12
12
  private fetchSourceInfoExperience;
13
- constructor(dataProvider?: SyncBlockDataProvider);
13
+ constructor(dataProvider?: SyncBlockDataProviderInterface);
14
14
  fetchReferencesSourceInfo(resourceId: ResourceId, blockInstanceId: BlockInstanceId, isSourceSyncBlock: boolean): Promise<ReferencesSourceInfo>;
15
15
  setFireAnalyticsEvent(fireAnalyticsEvent?: (payload: SyncBlockEventPayload) => void): void;
16
16
  get referenceManager(): ReferenceSyncBlockStoreManager;
17
17
  get sourceManager(): SourceSyncBlockStoreManager;
18
18
  destroy(): void;
19
19
  }
20
- export declare const useMemoizedSyncBlockStoreManager: (dataProvider?: SyncBlockDataProvider, fireAnalyticsEvent?: (payload: SyncBlockEventPayload) => void) => SyncBlockStoreManager;
20
+ export declare const useMemoizedSyncBlockStoreManager: (dataProvider?: SyncBlockDataProviderInterface, fireAnalyticsEvent?: (payload: SyncBlockEventPayload) => void) => SyncBlockStoreManager;
@@ -14,5 +14,6 @@ export declare const updateCacheErrorPayload: (error: string, resourceId?: strin
14
14
  export declare const fetchReferencesErrorPayload: (error: string, resourceId?: string) => SyncBlockEventPayload;
15
15
  export declare const fetchSuccessPayload: (resourceId: string, blockInstanceId?: string, sourceProduct?: string) => RendererSyncBlockEventPayload;
16
16
  export declare const createSuccessPayload: (resourceId: string) => SyncBlockEventPayload;
17
+ export declare const createSuccessPayloadNew: (resourceId: string) => SyncBlockEventPayload;
17
18
  export declare const updateSuccessPayload: (resourceId: string, hasReference?: boolean) => SyncBlockEventPayload;
18
19
  export declare const deleteSuccessPayload: (resourceId: string) => SyncBlockEventPayload;
@@ -1,8 +1,9 @@
1
1
  import type { SyncBlockInstance } from '../providers/types';
2
2
  /**
3
3
  * Merges two SyncBlockInstance objects,
4
- * currently it only preserves the sourceURL from the old result,
5
- * but this can be extended in the future to preserve other fields and resolve conflicts as needed.
4
+ * preserving sourceURL, sourceTitle, sourceSubType, and onSameDocument from the old result
5
+ * when the new result does not have them.
6
+ * This can be extended in the future to resolve other conflicts as needed,
6
7
  * e.g. compare timestamps or version numbers to determine which data is more recent.
7
8
  *
8
9
  * @param oldResult - The existing SyncBlockInstance object.
package/package.json CHANGED
@@ -80,7 +80,7 @@
80
80
  }
81
81
  },
82
82
  "name": "@atlaskit/editor-synced-block-provider",
83
- "version": "3.29.1",
83
+ "version": "3.29.2",
84
84
  "description": "Synced Block Provider for @atlaskit/editor-plugin-synced-block",
85
85
  "author": "Atlassian Pty Ltd",
86
86
  "license": "Apache-2.0",