@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.
- package/CHANGELOG.md +10 -0
- package/dist/cjs/clients/block-service/ari.js +5 -3
- package/dist/cjs/index.js +26 -1
- package/dist/cjs/providers/syncBlockProvider.js +10 -10
- package/dist/cjs/providers/types.js +7 -7
- package/dist/cjs/store-manager/referenceSyncBlockStoreManager.js +1 -2
- package/dist/cjs/store-manager/sourceSyncBlockStoreManager.js +1 -1
- package/dist/cjs/utils/errorHandling.js +21 -1
- package/dist/cjs/utils/resolveSyncBlockInstance.js +3 -2
- package/dist/cjs/utils/retry.js +2 -1
- package/dist/es2019/clients/block-service/ari.js +5 -3
- package/dist/es2019/index.js +3 -2
- package/dist/es2019/providers/syncBlockProvider.js +4 -4
- package/dist/es2019/providers/types.js +1 -1
- package/dist/es2019/store-manager/referenceSyncBlockStoreManager.js +1 -2
- package/dist/es2019/store-manager/sourceSyncBlockStoreManager.js +1 -1
- package/dist/es2019/utils/errorHandling.js +21 -1
- package/dist/es2019/utils/resolveSyncBlockInstance.js +3 -2
- package/dist/es2019/utils/retry.js +4 -1
- package/dist/esm/clients/block-service/ari.js +5 -3
- package/dist/esm/index.js +3 -2
- package/dist/esm/providers/syncBlockProvider.js +10 -10
- package/dist/esm/providers/types.js +6 -6
- package/dist/esm/store-manager/referenceSyncBlockStoreManager.js +1 -2
- package/dist/esm/store-manager/sourceSyncBlockStoreManager.js +1 -1
- package/dist/esm/utils/errorHandling.js +20 -0
- package/dist/esm/utils/resolveSyncBlockInstance.js +3 -2
- package/dist/esm/utils/retry.js +2 -1
- package/dist/types/clients/block-service/ari.d.ts +4 -2
- package/dist/types/index.d.ts +5 -3
- package/dist/types/providers/syncBlockProvider.d.ts +4 -4
- package/dist/types/providers/types.d.ts +1 -1
- package/dist/types/store-manager/referenceSyncBlockStoreManager.d.ts +2 -2
- package/dist/types/store-manager/sourceSyncBlockStoreManager.d.ts +3 -3
- package/dist/types/store-manager/syncBlockStoreManager.d.ts +3 -3
- package/dist/types/utils/errorHandling.d.ts +1 -0
- package/dist/types/utils/resolveSyncBlockInstance.d.ts +3 -2
- package/dist/types-ts4.5/clients/block-service/ari.d.ts +4 -2
- package/dist/types-ts4.5/index.d.ts +5 -3
- package/dist/types-ts4.5/providers/syncBlockProvider.d.ts +4 -4
- package/dist/types-ts4.5/providers/types.d.ts +1 -1
- package/dist/types-ts4.5/store-manager/referenceSyncBlockStoreManager.d.ts +2 -2
- package/dist/types-ts4.5/store-manager/sourceSyncBlockStoreManager.d.ts +3 -3
- package/dist/types-ts4.5/store-manager/syncBlockStoreManager.d.ts +3 -3
- package/dist/types-ts4.5/utils/errorHandling.d.ts +1 -0
- package/dist/types-ts4.5/utils/resolveSyncBlockInstance.d.ts +3 -2
- 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
|
-
*
|
|
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
|
|
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.
|
|
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.
|
|
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
|
|
27
|
+
var SyncedBlockProvider = exports.SyncedBlockProvider = /*#__PURE__*/function (_SyncBlockDataProvide) {
|
|
28
28
|
/**
|
|
29
|
-
* Constructor for the
|
|
29
|
+
* Constructor for the SyncedBlockProvider
|
|
30
30
|
*
|
|
31
31
|
* @param fetchProvider
|
|
32
32
|
* @param writeProvider
|
|
33
33
|
* @param nestedRendererDataProviders
|
|
34
34
|
*/
|
|
35
|
-
function
|
|
35
|
+
function SyncedBlockProvider(fetchProvider, writeProvider) {
|
|
36
36
|
var _this;
|
|
37
|
-
(0, _classCallCheck2.default)(this,
|
|
38
|
-
_this = _callSuper(this,
|
|
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)(
|
|
46
|
-
return (0, _createClass2.default)(
|
|
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.
|
|
444
|
+
}(_types2.SyncBlockDataProviderInterface);
|
|
445
445
|
var createSyncedBlockProvider = function createSyncedBlockProvider(_ref) {
|
|
446
446
|
var fetchProvider = _ref.fetchProvider,
|
|
447
447
|
writeProvider = _ref.writeProvider;
|
|
448
|
-
return new
|
|
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.
|
|
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
|
|
22
|
-
function
|
|
23
|
-
(0, _classCallCheck2.default)(this,
|
|
24
|
-
return _callSuper(this,
|
|
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)(
|
|
27
|
-
return (0, _createClass2.default)(
|
|
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
|
|
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
|
|
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
|
-
*
|
|
15
|
-
*
|
|
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.
|
package/dist/cjs/utils/retry.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
*
|
|
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
|
|
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:.*/);
|
package/dist/es2019/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 {
|
|
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 {
|
|
9
|
-
export class
|
|
8
|
+
import { SyncBlockDataProviderInterface } from './types';
|
|
9
|
+
export class SyncedBlockProvider extends SyncBlockDataProviderInterface {
|
|
10
10
|
/**
|
|
11
|
-
* Constructor for the
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
*
|
|
5
|
-
*
|
|
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 =>
|
|
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
|
-
*
|
|
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
|
|
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 {
|
|
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 {
|
|
20
|
-
export var
|
|
19
|
+
import { SyncBlockDataProviderInterface } from './types';
|
|
20
|
+
export var SyncedBlockProvider = /*#__PURE__*/function (_SyncBlockDataProvide) {
|
|
21
21
|
/**
|
|
22
|
-
* Constructor for the
|
|
22
|
+
* Constructor for the SyncedBlockProvider
|
|
23
23
|
*
|
|
24
24
|
* @param fetchProvider
|
|
25
25
|
* @param writeProvider
|
|
26
26
|
* @param nestedRendererDataProviders
|
|
27
27
|
*/
|
|
28
|
-
function
|
|
28
|
+
function SyncedBlockProvider(fetchProvider, writeProvider) {
|
|
29
29
|
var _this;
|
|
30
|
-
_classCallCheck(this,
|
|
31
|
-
_this = _callSuper(this,
|
|
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(
|
|
39
|
-
return _createClass(
|
|
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
|
-
}(
|
|
437
|
+
}(SyncBlockDataProviderInterface);
|
|
438
438
|
var createSyncedBlockProvider = function createSyncedBlockProvider(_ref) {
|
|
439
439
|
var fetchProvider = _ref.fetchProvider,
|
|
440
440
|
writeProvider = _ref.writeProvider;
|
|
441
|
-
return new
|
|
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
|
|
17
|
-
function
|
|
18
|
-
_classCallCheck(this,
|
|
19
|
-
return _callSuper(this,
|
|
16
|
+
export var SyncBlockDataProviderInterface = /*#__PURE__*/function (_NodeDataProvider) {
|
|
17
|
+
function SyncBlockDataProviderInterface() {
|
|
18
|
+
_classCallCheck(this, SyncBlockDataProviderInterface);
|
|
19
|
+
return _callSuper(this, SyncBlockDataProviderInterface, arguments);
|
|
20
20
|
}
|
|
21
|
-
_inherits(
|
|
22
|
-
return _createClass(
|
|
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
|
|
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
|
|
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
|
-
*
|
|
8
|
-
*
|
|
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.
|
package/dist/esm/utils/retry.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
*
|
|
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;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -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 {
|
|
14
|
-
export type { ADFFetchProvider, ADFWriteProvider, BlockNodeIdentifiers, BlockSubscriptionErrorCallback, BlockUpdateCallback,
|
|
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 {
|
|
5
|
-
export declare class
|
|
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
|
|
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) =>
|
|
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
|
|
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,
|
|
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?:
|
|
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 {
|
|
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?:
|
|
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
|
|
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 {
|
|
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?:
|
|
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?:
|
|
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
|
-
*
|
|
5
|
-
*
|
|
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
|
-
*
|
|
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 {
|
|
14
|
-
export type { ADFFetchProvider, ADFWriteProvider, BlockNodeIdentifiers, BlockSubscriptionErrorCallback, BlockUpdateCallback,
|
|
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 {
|
|
5
|
-
export declare class
|
|
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
|
|
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) =>
|
|
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
|
|
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,
|
|
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?:
|
|
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 {
|
|
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?:
|
|
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
|
|
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 {
|
|
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?:
|
|
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?:
|
|
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
|
-
*
|
|
5
|
-
*
|
|
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