@atlaskit/editor-synced-block-provider 2.12.2 → 2.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/dist/cjs/clients/block-service/ari.js +26 -9
- package/dist/cjs/clients/block-service/blockService.js +6 -5
- package/dist/cjs/clients/confluence/contentProperty.js +4 -3
- package/dist/cjs/clients/confluence/sourceInfo.js +2 -1
- package/dist/cjs/common/types.js +5 -0
- package/dist/cjs/index.js +12 -6
- package/dist/cjs/providers/block-service/blockServiceAPI.js +79 -49
- package/dist/cjs/providers/confluence/confluenceContentAPI.js +6 -0
- package/dist/cjs/providers/syncBlockProvider.js +18 -8
- package/dist/cjs/store-manager/referenceSyncBlockStoreManager.js +8 -0
- package/dist/cjs/utils/resolveSyncBlockInstance.js +3 -3
- package/dist/cjs/utils/retry.js +66 -0
- package/dist/es2019/clients/block-service/ari.js +25 -8
- package/dist/es2019/clients/block-service/blockService.js +6 -5
- package/dist/es2019/clients/confluence/contentProperty.js +4 -3
- package/dist/es2019/clients/confluence/sourceInfo.js +2 -1
- package/dist/es2019/common/types.js +5 -0
- package/dist/es2019/index.js +1 -1
- package/dist/es2019/providers/block-service/blockServiceAPI.js +43 -13
- package/dist/es2019/providers/confluence/confluenceContentAPI.js +4 -0
- package/dist/es2019/providers/syncBlockProvider.js +6 -0
- package/dist/es2019/store-manager/referenceSyncBlockStoreManager.js +6 -0
- package/dist/es2019/utils/resolveSyncBlockInstance.js +3 -3
- package/dist/es2019/utils/retry.js +26 -0
- package/dist/esm/clients/block-service/ari.js +25 -8
- package/dist/esm/clients/block-service/blockService.js +6 -5
- package/dist/esm/clients/confluence/contentProperty.js +4 -3
- package/dist/esm/clients/confluence/sourceInfo.js +2 -1
- package/dist/esm/common/types.js +5 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/providers/block-service/blockServiceAPI.js +79 -50
- package/dist/esm/providers/confluence/confluenceContentAPI.js +6 -0
- package/dist/esm/providers/syncBlockProvider.js +18 -8
- package/dist/esm/store-manager/referenceSyncBlockStoreManager.js +8 -0
- package/dist/esm/utils/resolveSyncBlockInstance.js +3 -3
- package/dist/esm/utils/retry.js +60 -0
- package/dist/types/clients/block-service/ari.d.ts +13 -5
- package/dist/types/common/types.d.ts +7 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/providers/block-service/blockServiceAPI.d.ts +6 -3
- package/dist/types/providers/confluence/confluenceContentAPI.d.ts +3 -1
- package/dist/types/providers/syncBlockProvider.d.ts +2 -0
- package/dist/types/providers/types.d.ts +7 -0
- package/dist/types/store-manager/referenceSyncBlockStoreManager.d.ts +1 -0
- package/dist/types/utils/retry.d.ts +1 -0
- package/dist/types-ts4.5/clients/block-service/ari.d.ts +13 -5
- package/dist/types-ts4.5/common/types.d.ts +7 -0
- package/dist/types-ts4.5/index.d.ts +1 -1
- package/dist/types-ts4.5/providers/block-service/blockServiceAPI.d.ts +6 -3
- package/dist/types-ts4.5/providers/confluence/confluenceContentAPI.d.ts +3 -1
- package/dist/types-ts4.5/providers/syncBlockProvider.d.ts +2 -0
- package/dist/types-ts4.5/providers/types.d.ts +7 -0
- package/dist/types-ts4.5/store-manager/referenceSyncBlockStoreManager.d.ts +1 -0
- package/dist/types-ts4.5/utils/retry.d.ts +1 -0
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @atlaskit/editor-synced-block-provider
|
|
2
2
|
|
|
3
|
+
## 2.13.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`676d28a61e356`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/676d28a61e356) -
|
|
8
|
+
Add runtime blockAri generation for endpoint calls, update resourceId generation for create
|
|
9
|
+
reference from toolbar
|
|
10
|
+
|
|
11
|
+
## 2.12.3
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- [`707c3960baedb`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/707c3960baedb) -
|
|
16
|
+
EDITOR-1923 retry api requests on rate limited for sync block provider
|
|
17
|
+
- Updated dependencies
|
|
18
|
+
|
|
3
19
|
## 2.12.2
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
|
@@ -3,21 +3,38 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.getLocalIdFromBlockResourceId = exports.
|
|
6
|
+
exports.getLocalIdFromBlockResourceId = exports.generateBlockAriFromReference = exports.generateBlockAri = void 0;
|
|
7
7
|
/* eslint-disable require-unicode-regexp */
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Generates the block ARI from the source page ARI and the source block's resource ID.
|
|
11
|
+
* @param sourceAri - the ARI of the document. E.G ari:cloud:confluence:cloudId:page/pageId
|
|
12
|
+
* @param resourceId - the resource ID of the block node. A randomly generated UUID
|
|
13
|
+
* @returns the block ARI. E.G ari:cloud:blocks:<cloudId>:synced-block/<product>/<pageId>/<resourceId>
|
|
14
|
+
*/
|
|
15
|
+
var generateBlockAri = exports.generateBlockAri = function generateBlockAri(sourceAri, resourceId, product) {
|
|
16
|
+
var match = sourceAri.match(/ari:cloud:confluence:([^:]+):(page|blogpost)\/(\d+)/);
|
|
17
|
+
if (!(match !== null && match !== void 0 && match[1])) {
|
|
18
|
+
throw new Error("Invalid source ARI: ".concat(sourceAri));
|
|
19
|
+
}
|
|
20
|
+
var cloudId = match[1];
|
|
21
|
+
var pageId = match[3];
|
|
22
|
+
return "ari:cloud:blocks:".concat(cloudId, ":synced-block/").concat(product, "/").concat(pageId, "/").concat(resourceId);
|
|
23
|
+
};
|
|
24
|
+
|
|
8
25
|
/**
|
|
9
|
-
*
|
|
10
|
-
* @param
|
|
11
|
-
* @param
|
|
12
|
-
* @returns the block ARI. E.G ari:cloud:blocks
|
|
26
|
+
*
|
|
27
|
+
* @param sourceAri - the ARI of the document. E.G ari:cloud:confluence:cloudId:page/pageId
|
|
28
|
+
* @param resourceId - the resource ID of the reference synced block. E.G confluence-page/pageId/sourceResourceId
|
|
29
|
+
* @returns the block ARI. E.G ari:cloud:blocks:<cloudId>:synced-block/<product>/<pageId>/<resourceId>
|
|
13
30
|
*/
|
|
14
|
-
var
|
|
15
|
-
var match =
|
|
31
|
+
var generateBlockAriFromReference = exports.generateBlockAriFromReference = function generateBlockAriFromReference(sourceAri, resourceId) {
|
|
32
|
+
var match = sourceAri.match(/ari:cloud:confluence:([^:]+):(page|blogpost)\/(\d+)/);
|
|
16
33
|
if (!(match !== null && match !== void 0 && match[1])) {
|
|
17
|
-
throw new Error("Invalid source ARI: ".concat(
|
|
34
|
+
throw new Error("Invalid source ARI: ".concat(sourceAri));
|
|
18
35
|
}
|
|
19
36
|
var cloudId = match[1];
|
|
20
|
-
return "ari:cloud:blocks:".concat(cloudId, ":synced-block/").concat(
|
|
37
|
+
return "ari:cloud:blocks:".concat(cloudId, ":synced-block/").concat(resourceId);
|
|
21
38
|
};
|
|
22
39
|
|
|
23
40
|
/**
|
|
@@ -13,6 +13,7 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
|
|
|
13
13
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
14
14
|
var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
|
|
15
15
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
16
|
+
var _retry = require("../../utils/retry");
|
|
16
17
|
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)); }
|
|
17
18
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
18
19
|
var isBlockContentResponse = exports.isBlockContentResponse = function isBlockContentResponse(response) {
|
|
@@ -69,7 +70,7 @@ var getReferenceSyncedBlocks = exports.getReferenceSyncedBlocks = /*#__PURE__*/f
|
|
|
69
70
|
while (1) switch (_context.prev = _context.next) {
|
|
70
71
|
case 0:
|
|
71
72
|
_context.next = 2;
|
|
72
|
-
return
|
|
73
|
+
return (0, _retry.fetchWithRetry)("".concat(BLOCK_SERVICE_API_URL, "/block/document/reference/").concat(encodeURIComponent(documentAri)), {
|
|
73
74
|
method: 'GET',
|
|
74
75
|
headers: COMMON_HEADERS
|
|
75
76
|
});
|
|
@@ -119,7 +120,7 @@ var getSyncedBlockContent = exports.getSyncedBlockContent = /*#__PURE__*/functio
|
|
|
119
120
|
case 0:
|
|
120
121
|
blockAri = _ref2.blockAri;
|
|
121
122
|
_context2.next = 3;
|
|
122
|
-
return
|
|
123
|
+
return (0, _retry.fetchWithRetry)("".concat(BLOCK_SERVICE_API_URL, "/block/").concat(encodeURIComponent(blockAri)), {
|
|
123
124
|
method: 'GET',
|
|
124
125
|
headers: COMMON_HEADERS
|
|
125
126
|
});
|
|
@@ -153,7 +154,7 @@ var deleteSyncedBlock = exports.deleteSyncedBlock = /*#__PURE__*/function () {
|
|
|
153
154
|
case 0:
|
|
154
155
|
blockAri = _ref4.blockAri;
|
|
155
156
|
_context3.next = 3;
|
|
156
|
-
return
|
|
157
|
+
return (0, _retry.fetchWithRetry)("".concat(BLOCK_SERVICE_API_URL, "/block/").concat(encodeURIComponent(blockAri)), {
|
|
157
158
|
method: 'DELETE',
|
|
158
159
|
headers: COMMON_HEADERS
|
|
159
160
|
});
|
|
@@ -182,7 +183,7 @@ var updateSyncedBlock = exports.updateSyncedBlock = /*#__PURE__*/function () {
|
|
|
182
183
|
case 0:
|
|
183
184
|
blockAri = _ref6.blockAri, content = _ref6.content;
|
|
184
185
|
_context4.next = 3;
|
|
185
|
-
return
|
|
186
|
+
return (0, _retry.fetchWithRetry)("".concat(BLOCK_SERVICE_API_URL, "/block/").concat(encodeURIComponent(blockAri)), {
|
|
186
187
|
method: 'PUT',
|
|
187
188
|
headers: COMMON_HEADERS,
|
|
188
189
|
body: JSON.stringify({
|
|
@@ -214,7 +215,7 @@ var createSyncedBlock = exports.createSyncedBlock = /*#__PURE__*/function () {
|
|
|
214
215
|
case 0:
|
|
215
216
|
blockAri = _ref8.blockAri, blockInstanceId = _ref8.blockInstanceId, sourceAri = _ref8.sourceAri, product = _ref8.product, content = _ref8.content;
|
|
216
217
|
_context5.next = 3;
|
|
217
|
-
return
|
|
218
|
+
return (0, _retry.fetchWithRetry)("".concat(BLOCK_SERVICE_API_URL, "/block"), {
|
|
218
219
|
method: 'POST',
|
|
219
220
|
headers: COMMON_HEADERS,
|
|
220
221
|
body: JSON.stringify({
|
|
@@ -8,6 +8,7 @@ exports.updateContentProperty = exports.getContentProperty = exports.deleteConte
|
|
|
8
8
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
9
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
10
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
11
|
+
var _retry = require("../../utils/retry");
|
|
11
12
|
var _ari = require("./ari");
|
|
12
13
|
var _utils = require("./utils");
|
|
13
14
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
@@ -95,7 +96,7 @@ var getContentProperty = exports.getContentProperty = /*#__PURE__*/function () {
|
|
|
95
96
|
}
|
|
96
97
|
};
|
|
97
98
|
_context.next = 6;
|
|
98
|
-
return
|
|
99
|
+
return (0, _retry.fetchWithRetry)(GRAPHQL_ENDPOINT, {
|
|
99
100
|
method: 'POST',
|
|
100
101
|
headers: _objectSpread(_objectSpread({}, COMMON_HEADERS), AGG_HEADERS),
|
|
101
102
|
body: JSON.stringify(bodyData)
|
|
@@ -204,7 +205,7 @@ var createContentProperty = exports.createContentProperty = /*#__PURE__*/functio
|
|
|
204
205
|
}
|
|
205
206
|
};
|
|
206
207
|
_context3.next = 6;
|
|
207
|
-
return
|
|
208
|
+
return (0, _retry.fetchWithRetry)(GRAPHQL_ENDPOINT, {
|
|
208
209
|
method: 'POST',
|
|
209
210
|
headers: _objectSpread(_objectSpread({}, COMMON_HEADERS), AGG_HEADERS),
|
|
210
211
|
body: JSON.stringify(bodyData)
|
|
@@ -254,7 +255,7 @@ var deleteContentProperty = exports.deleteContentProperty = /*#__PURE__*/functio
|
|
|
254
255
|
}
|
|
255
256
|
};
|
|
256
257
|
_context4.next = 6;
|
|
257
|
-
return
|
|
258
|
+
return (0, _retry.fetchWithRetry)(GRAPHQL_ENDPOINT, {
|
|
258
259
|
method: 'POST',
|
|
259
260
|
headers: _objectSpread(_objectSpread({}, COMMON_HEADERS), AGG_HEADERS),
|
|
260
261
|
body: JSON.stringify(bodyData)
|
|
@@ -10,6 +10,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
10
10
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
11
11
|
var _monitoring = require("@atlaskit/editor-common/monitoring");
|
|
12
12
|
var _errorHandling = require("../../utils/errorHandling");
|
|
13
|
+
var _retry = require("../../utils/retry");
|
|
13
14
|
var _ari = require("./ari");
|
|
14
15
|
var _utils = require("./utils");
|
|
15
16
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
@@ -43,7 +44,7 @@ var getConfluenceSourceInfo = /*#__PURE__*/function () {
|
|
|
43
44
|
}
|
|
44
45
|
};
|
|
45
46
|
_context.next = 3;
|
|
46
|
-
return
|
|
47
|
+
return (0, _retry.fetchWithRetry)(GRAPHQL_ENDPOINT, {
|
|
47
48
|
method: 'POST',
|
|
48
49
|
headers: _objectSpread(_objectSpread({}, COMMON_HEADERS), AGG_HEADERS),
|
|
49
50
|
body: JSON.stringify(bodyData)
|
package/dist/cjs/common/types.js
CHANGED
|
@@ -8,6 +8,11 @@ var SyncBlockError = exports.SyncBlockError = /*#__PURE__*/function (SyncBlockEr
|
|
|
8
8
|
SyncBlockError["Errored"] = "errored";
|
|
9
9
|
SyncBlockError["NotFound"] = "not_found";
|
|
10
10
|
SyncBlockError["Forbidden"] = "forbidden";
|
|
11
|
+
SyncBlockError["InvalidRequest"] = "invalid_request";
|
|
12
|
+
SyncBlockError["RateLimited"] = "rate_limited";
|
|
13
|
+
SyncBlockError["Conflict"] = "conflict";
|
|
14
|
+
// attempt to create block that already exists
|
|
15
|
+
SyncBlockError["ServerError"] = "server_error";
|
|
11
16
|
SyncBlockError["InvalidContent"] = "invalid_content"; // content is not a valid JSON
|
|
12
17
|
return SyncBlockError;
|
|
13
18
|
}({});
|
package/dist/cjs/index.js
CHANGED
|
@@ -27,12 +27,6 @@ Object.defineProperty(exports, "SyncedBlockProvider", {
|
|
|
27
27
|
return _syncBlockProvider.SyncBlockProvider;
|
|
28
28
|
}
|
|
29
29
|
});
|
|
30
|
-
Object.defineProperty(exports, "blockResourceIdFromSourceAndLocalId", {
|
|
31
|
-
enumerable: true,
|
|
32
|
-
get: function get() {
|
|
33
|
-
return _ari.blockResourceIdFromSourceAndLocalId;
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
30
|
Object.defineProperty(exports, "convertPMNodesToSyncBlockNodes", {
|
|
37
31
|
enumerable: true,
|
|
38
32
|
get: function get() {
|
|
@@ -75,6 +69,18 @@ Object.defineProperty(exports, "fetchReferences", {
|
|
|
75
69
|
return _blockServiceAPI.fetchReferences;
|
|
76
70
|
}
|
|
77
71
|
});
|
|
72
|
+
Object.defineProperty(exports, "generateBlockAri", {
|
|
73
|
+
enumerable: true,
|
|
74
|
+
get: function get() {
|
|
75
|
+
return _ari.generateBlockAri;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
Object.defineProperty(exports, "generateBlockAriFromReference", {
|
|
79
|
+
enumerable: true,
|
|
80
|
+
get: function get() {
|
|
81
|
+
return _ari.generateBlockAriFromReference;
|
|
82
|
+
}
|
|
83
|
+
});
|
|
78
84
|
Object.defineProperty(exports, "getConfluencePageAri", {
|
|
79
85
|
enumerable: true,
|
|
80
86
|
get: function get() {
|
|
@@ -15,12 +15,25 @@ var _ari = require("../../clients/block-service/ari");
|
|
|
15
15
|
var _blockService = require("../../clients/block-service/blockService");
|
|
16
16
|
var _types = require("../../common/types");
|
|
17
17
|
var _errorHandling = require("../../utils/errorHandling");
|
|
18
|
+
/* eslint-disable require-unicode-regexp */
|
|
19
|
+
|
|
18
20
|
var mapBlockError = function mapBlockError(error) {
|
|
19
21
|
switch (error.status) {
|
|
22
|
+
case 400:
|
|
23
|
+
case 401:
|
|
24
|
+
return _types.SyncBlockError.InvalidRequest;
|
|
20
25
|
case 403:
|
|
21
26
|
return _types.SyncBlockError.Forbidden;
|
|
22
27
|
case 404:
|
|
23
28
|
return _types.SyncBlockError.NotFound;
|
|
29
|
+
case 409:
|
|
30
|
+
return _types.SyncBlockError.Conflict;
|
|
31
|
+
case 429:
|
|
32
|
+
return _types.SyncBlockError.RateLimited;
|
|
33
|
+
case 500:
|
|
34
|
+
case 503:
|
|
35
|
+
case 504:
|
|
36
|
+
return _types.SyncBlockError.ServerError;
|
|
24
37
|
}
|
|
25
38
|
return _types.SyncBlockError.Errored;
|
|
26
39
|
};
|
|
@@ -104,24 +117,26 @@ var fetchReferences = exports.fetchReferences = /*#__PURE__*/function () {
|
|
|
104
117
|
* ADFFetchProvider implementation that fetches synced block data from Block Service API
|
|
105
118
|
*/
|
|
106
119
|
var BlockServiceADFFetchProvider = /*#__PURE__*/function () {
|
|
107
|
-
function BlockServiceADFFetchProvider() {
|
|
120
|
+
function BlockServiceADFFetchProvider(sourceAri) {
|
|
108
121
|
(0, _classCallCheck2.default)(this, BlockServiceADFFetchProvider);
|
|
122
|
+
this.sourceAri = sourceAri;
|
|
109
123
|
}
|
|
124
|
+
|
|
125
|
+
// resourceId of the reference synced block.
|
|
126
|
+
// the ARI must be constructed to call the block service API
|
|
110
127
|
return (0, _createClass2.default)(BlockServiceADFFetchProvider, [{
|
|
111
128
|
key: "fetchData",
|
|
112
|
-
value:
|
|
113
|
-
// in the content API provider, this was the concatenation of the source document's ARI and the local ID. E.G ari:cloud:confluence:site-123:page/pageId/uuid-456
|
|
114
|
-
function () {
|
|
129
|
+
value: function () {
|
|
115
130
|
var _fetchData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(resourceId) {
|
|
116
|
-
var
|
|
131
|
+
var blockAri, blockContentResponse, value, syncedBlockData;
|
|
117
132
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
118
133
|
while (1) switch (_context2.prev = _context2.next) {
|
|
119
134
|
case 0:
|
|
120
|
-
|
|
135
|
+
blockAri = (0, _ari.generateBlockAriFromReference)(this.sourceAri, resourceId);
|
|
121
136
|
_context2.prev = 1;
|
|
122
137
|
_context2.next = 4;
|
|
123
138
|
return (0, _blockService.getSyncedBlockContent)({
|
|
124
|
-
blockAri:
|
|
139
|
+
blockAri: blockAri
|
|
125
140
|
});
|
|
126
141
|
case 4:
|
|
127
142
|
blockContentResponse = _context2.sent;
|
|
@@ -140,8 +155,9 @@ var BlockServiceADFFetchProvider = /*#__PURE__*/function () {
|
|
|
140
155
|
return _context2.abrupt("return", {
|
|
141
156
|
data: {
|
|
142
157
|
content: syncedBlockData,
|
|
143
|
-
resourceId:
|
|
144
|
-
blockInstanceId:
|
|
158
|
+
resourceId: blockAri,
|
|
159
|
+
blockInstanceId: blockContentResponse.blockInstanceId,
|
|
160
|
+
// this was the node's localId, but has become the resourceId.
|
|
145
161
|
sourceAri: blockContentResponse.sourceAri,
|
|
146
162
|
product: blockContentResponse.product
|
|
147
163
|
},
|
|
@@ -167,7 +183,7 @@ var BlockServiceADFFetchProvider = /*#__PURE__*/function () {
|
|
|
167
183
|
case "end":
|
|
168
184
|
return _context2.stop();
|
|
169
185
|
}
|
|
170
|
-
}, _callee2,
|
|
186
|
+
}, _callee2, this, [[1, 12]]);
|
|
171
187
|
}));
|
|
172
188
|
function fetchData(_x2) {
|
|
173
189
|
return _fetchData.apply(this, arguments);
|
|
@@ -191,42 +207,43 @@ var BlockServiceADFWriteProvider = /*#__PURE__*/function () {
|
|
|
191
207
|
key: "writeData",
|
|
192
208
|
value: function () {
|
|
193
209
|
var _writeData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(data) {
|
|
194
|
-
var resourceId;
|
|
210
|
+
var resourceId, blockAri;
|
|
195
211
|
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
196
212
|
while (1) switch (_context3.prev = _context3.next) {
|
|
197
213
|
case 0:
|
|
198
214
|
resourceId = data.resourceId;
|
|
199
|
-
|
|
200
|
-
_context3.
|
|
215
|
+
blockAri = (0, _ari.generateBlockAri)(this.sourceAri, resourceId, this.product);
|
|
216
|
+
_context3.prev = 2;
|
|
217
|
+
_context3.next = 5;
|
|
201
218
|
return (0, _blockService.updateSyncedBlock)({
|
|
202
|
-
blockAri:
|
|
219
|
+
blockAri: blockAri,
|
|
203
220
|
content: JSON.stringify(data.content)
|
|
204
221
|
});
|
|
205
|
-
case
|
|
222
|
+
case 5:
|
|
206
223
|
return _context3.abrupt("return", {
|
|
207
224
|
resourceId: resourceId
|
|
208
225
|
});
|
|
209
|
-
case
|
|
210
|
-
_context3.prev =
|
|
211
|
-
_context3.t0 = _context3["catch"](
|
|
226
|
+
case 8:
|
|
227
|
+
_context3.prev = 8;
|
|
228
|
+
_context3.t0 = _context3["catch"](2);
|
|
212
229
|
if (!(_context3.t0 instanceof _blockService.BlockError)) {
|
|
213
|
-
_context3.next =
|
|
230
|
+
_context3.next = 12;
|
|
214
231
|
break;
|
|
215
232
|
}
|
|
216
233
|
return _context3.abrupt("return", {
|
|
217
234
|
error: mapBlockError(_context3.t0),
|
|
218
235
|
resourceId: resourceId
|
|
219
236
|
});
|
|
220
|
-
case
|
|
237
|
+
case 12:
|
|
221
238
|
return _context3.abrupt("return", {
|
|
222
239
|
error: (0, _errorHandling.stringifyError)(_context3.t0),
|
|
223
240
|
resourceId: resourceId
|
|
224
241
|
});
|
|
225
|
-
case
|
|
242
|
+
case 13:
|
|
226
243
|
case "end":
|
|
227
244
|
return _context3.stop();
|
|
228
245
|
}
|
|
229
|
-
}, _callee3,
|
|
246
|
+
}, _callee3, this, [[2, 8]]);
|
|
230
247
|
}));
|
|
231
248
|
function writeData(_x3) {
|
|
232
249
|
return _writeData.apply(this, arguments);
|
|
@@ -237,45 +254,46 @@ var BlockServiceADFWriteProvider = /*#__PURE__*/function () {
|
|
|
237
254
|
key: "createData",
|
|
238
255
|
value: function () {
|
|
239
256
|
var _createData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(data) {
|
|
240
|
-
var resourceId;
|
|
257
|
+
var resourceId, blockAri;
|
|
241
258
|
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
242
259
|
while (1) switch (_context4.prev = _context4.next) {
|
|
243
260
|
case 0:
|
|
244
261
|
resourceId = data.resourceId;
|
|
245
|
-
|
|
246
|
-
_context4.
|
|
262
|
+
blockAri = (0, _ari.generateBlockAri)(this.sourceAri, resourceId, this.product);
|
|
263
|
+
_context4.prev = 2;
|
|
264
|
+
_context4.next = 5;
|
|
247
265
|
return (0, _blockService.createSyncedBlock)({
|
|
248
|
-
blockAri:
|
|
266
|
+
blockAri: blockAri,
|
|
249
267
|
blockInstanceId: data.blockInstanceId,
|
|
250
268
|
sourceAri: this.sourceAri,
|
|
251
269
|
product: this.product,
|
|
252
270
|
content: JSON.stringify(data.content)
|
|
253
271
|
});
|
|
254
|
-
case
|
|
272
|
+
case 5:
|
|
255
273
|
return _context4.abrupt("return", {
|
|
256
274
|
resourceId: resourceId
|
|
257
275
|
});
|
|
258
|
-
case
|
|
259
|
-
_context4.prev =
|
|
260
|
-
_context4.t0 = _context4["catch"](
|
|
276
|
+
case 8:
|
|
277
|
+
_context4.prev = 8;
|
|
278
|
+
_context4.t0 = _context4["catch"](2);
|
|
261
279
|
if (!(_context4.t0 instanceof _blockService.BlockError)) {
|
|
262
|
-
_context4.next =
|
|
280
|
+
_context4.next = 12;
|
|
263
281
|
break;
|
|
264
282
|
}
|
|
265
283
|
return _context4.abrupt("return", {
|
|
266
284
|
error: mapBlockError(_context4.t0),
|
|
267
285
|
resourceId: resourceId
|
|
268
286
|
});
|
|
269
|
-
case
|
|
287
|
+
case 12:
|
|
270
288
|
return _context4.abrupt("return", {
|
|
271
289
|
error: (0, _errorHandling.stringifyError)(_context4.t0),
|
|
272
290
|
resourceId: resourceId
|
|
273
291
|
});
|
|
274
|
-
case
|
|
292
|
+
case 13:
|
|
275
293
|
case "end":
|
|
276
294
|
return _context4.stop();
|
|
277
295
|
}
|
|
278
|
-
}, _callee4, this, [[
|
|
296
|
+
}, _callee4, this, [[2, 8]]);
|
|
279
297
|
}));
|
|
280
298
|
function createData(_x4) {
|
|
281
299
|
return _createData.apply(this, arguments);
|
|
@@ -286,25 +304,27 @@ var BlockServiceADFWriteProvider = /*#__PURE__*/function () {
|
|
|
286
304
|
key: "deleteData",
|
|
287
305
|
value: function () {
|
|
288
306
|
var _deleteData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(resourceId) {
|
|
307
|
+
var blockAri;
|
|
289
308
|
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
290
309
|
while (1) switch (_context5.prev = _context5.next) {
|
|
291
310
|
case 0:
|
|
292
|
-
|
|
293
|
-
_context5.
|
|
311
|
+
blockAri = (0, _ari.generateBlockAri)(this.sourceAri, resourceId, this.product);
|
|
312
|
+
_context5.prev = 1;
|
|
313
|
+
_context5.next = 4;
|
|
294
314
|
return (0, _blockService.deleteSyncedBlock)({
|
|
295
|
-
blockAri:
|
|
315
|
+
blockAri: blockAri
|
|
296
316
|
});
|
|
297
|
-
case
|
|
317
|
+
case 4:
|
|
298
318
|
return _context5.abrupt("return", {
|
|
299
319
|
resourceId: resourceId,
|
|
300
320
|
success: true,
|
|
301
321
|
error: undefined
|
|
302
322
|
});
|
|
303
|
-
case
|
|
304
|
-
_context5.prev =
|
|
305
|
-
_context5.t0 = _context5["catch"](
|
|
323
|
+
case 7:
|
|
324
|
+
_context5.prev = 7;
|
|
325
|
+
_context5.t0 = _context5["catch"](1);
|
|
306
326
|
if (!(_context5.t0 instanceof _blockService.BlockError)) {
|
|
307
|
-
_context5.next =
|
|
327
|
+
_context5.next = 11;
|
|
308
328
|
break;
|
|
309
329
|
}
|
|
310
330
|
return _context5.abrupt("return", {
|
|
@@ -312,27 +332,37 @@ var BlockServiceADFWriteProvider = /*#__PURE__*/function () {
|
|
|
312
332
|
success: false,
|
|
313
333
|
error: mapBlockError(_context5.t0)
|
|
314
334
|
});
|
|
315
|
-
case
|
|
335
|
+
case 11:
|
|
316
336
|
return _context5.abrupt("return", {
|
|
317
337
|
resourceId: resourceId,
|
|
318
338
|
success: false,
|
|
319
339
|
error: (0, _errorHandling.stringifyError)(_context5.t0)
|
|
320
340
|
});
|
|
321
|
-
case
|
|
341
|
+
case 12:
|
|
322
342
|
case "end":
|
|
323
343
|
return _context5.stop();
|
|
324
344
|
}
|
|
325
|
-
}, _callee5,
|
|
345
|
+
}, _callee5, this, [[1, 7]]);
|
|
326
346
|
}));
|
|
327
347
|
function deleteData(_x5) {
|
|
328
348
|
return _deleteData.apply(this, arguments);
|
|
329
349
|
}
|
|
330
350
|
return deleteData;
|
|
331
|
-
}()
|
|
351
|
+
}() // the sourceId is the resourceId of the source synced block.
|
|
352
|
+
}, {
|
|
353
|
+
key: "generateResourceIdForReference",
|
|
354
|
+
value: function generateResourceIdForReference(sourceId) {
|
|
355
|
+
var match = this.sourceAri.match(/ari:cloud:confluence:([^:]+):(page|blogpost)\/(\d+)/);
|
|
356
|
+
if (!(match !== null && match !== void 0 && match[1])) {
|
|
357
|
+
throw new Error("Invalid source ARI: ".concat(this.sourceAri));
|
|
358
|
+
}
|
|
359
|
+
var pageId = match[3];
|
|
360
|
+
return "".concat(this.product, "/").concat(pageId, "/").concat(sourceId);
|
|
361
|
+
}
|
|
332
362
|
}, {
|
|
333
363
|
key: "generateResourceId",
|
|
334
|
-
value: function generateResourceId(
|
|
335
|
-
return
|
|
364
|
+
value: function generateResourceId() {
|
|
365
|
+
return crypto.randomUUID();
|
|
336
366
|
}
|
|
337
367
|
}]);
|
|
338
368
|
}();
|
|
@@ -340,7 +370,7 @@ var BlockServiceADFWriteProvider = /*#__PURE__*/function () {
|
|
|
340
370
|
* Factory function to create both providers with shared configuration
|
|
341
371
|
*/
|
|
342
372
|
var createBlockServiceAPIProviders = function createBlockServiceAPIProviders(sourceAri, product) {
|
|
343
|
-
var fetchProvider = new BlockServiceADFFetchProvider();
|
|
373
|
+
var fetchProvider = new BlockServiceADFFetchProvider(sourceAri);
|
|
344
374
|
var writeProvider = new BlockServiceADFWriteProvider(sourceAri, product);
|
|
345
375
|
return {
|
|
346
376
|
fetchProvider: fetchProvider,
|
|
@@ -155,6 +155,7 @@ var ConfluenceADFWriteProvider = /*#__PURE__*/function () {
|
|
|
155
155
|
function ConfluenceADFWriteProvider(config) {
|
|
156
156
|
var _this = this;
|
|
157
157
|
(0, _classCallCheck2.default)(this, ConfluenceADFWriteProvider);
|
|
158
|
+
(0, _defineProperty2.default)(this, "product", 'confluence-page');
|
|
158
159
|
(0, _defineProperty2.default)(this, "createNewContentProperty", /*#__PURE__*/function () {
|
|
159
160
|
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(pageId, key, value, pageType) {
|
|
160
161
|
var options, _contentProperty$data3, contentProperty, _contentProperty2$dat, _contentProperty2;
|
|
@@ -403,6 +404,11 @@ var ConfluenceADFWriteProvider = /*#__PURE__*/function () {
|
|
|
403
404
|
value: function generateResourceId(sourceId, localId) {
|
|
404
405
|
return (0, _ari.resourceIdFromConfluencePageSourceIdAndLocalId)(sourceId, localId);
|
|
405
406
|
}
|
|
407
|
+
}, {
|
|
408
|
+
key: "generateResourceIdForReference",
|
|
409
|
+
value: function generateResourceIdForReference(sourceId) {
|
|
410
|
+
return sourceId;
|
|
411
|
+
}
|
|
406
412
|
}]);
|
|
407
413
|
}();
|
|
408
414
|
/**
|
|
@@ -43,16 +43,21 @@ var SyncBlockProvider = exports.SyncBlockProvider = /*#__PURE__*/function (_Sync
|
|
|
43
43
|
_this.providerOptions = providerOptions;
|
|
44
44
|
return _this;
|
|
45
45
|
}
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Check if the node is supported by the provider
|
|
49
|
-
*
|
|
50
|
-
* @param node
|
|
51
|
-
*
|
|
52
|
-
* @returns True if the node is supported, false otherwise
|
|
53
|
-
*/
|
|
54
46
|
(0, _inherits2.default)(SyncBlockProvider, _SyncBlockDataProvide);
|
|
55
47
|
return (0, _createClass2.default)(SyncBlockProvider, [{
|
|
48
|
+
key: "getProduct",
|
|
49
|
+
value: function getProduct() {
|
|
50
|
+
return this.writeProvider.product;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Check if the node is supported by the provider
|
|
55
|
+
*
|
|
56
|
+
* @param node
|
|
57
|
+
*
|
|
58
|
+
* @returns True if the node is supported, false otherwise
|
|
59
|
+
*/
|
|
60
|
+
}, {
|
|
56
61
|
key: "isNodeSupported",
|
|
57
62
|
value: function isNodeSupported(node) {
|
|
58
63
|
return node.type === 'syncBlock' || node.type === 'bodiedSyncBlock';
|
|
@@ -248,6 +253,11 @@ var SyncBlockProvider = exports.SyncBlockProvider = /*#__PURE__*/function (_Sync
|
|
|
248
253
|
value: function generateResourceId(sourceId, localId) {
|
|
249
254
|
return this.writeProvider.generateResourceId(sourceId, localId);
|
|
250
255
|
}
|
|
256
|
+
}, {
|
|
257
|
+
key: "generateResourceIdForReference",
|
|
258
|
+
value: function generateResourceIdForReference(sourceId) {
|
|
259
|
+
return this.writeProvider.generateResourceIdForReference(sourceId);
|
|
260
|
+
}
|
|
251
261
|
|
|
252
262
|
/**
|
|
253
263
|
* Get the synced block renderer provider options
|
|
@@ -40,6 +40,14 @@ var ReferenceSyncBlockStoreManager = exports.ReferenceSyncBlockStoreManager = /*
|
|
|
40
40
|
this.fireAnalyticsEvent = fireAnalyticsEvent;
|
|
41
41
|
}
|
|
42
42
|
return (0, _createClass2.default)(ReferenceSyncBlockStoreManager, [{
|
|
43
|
+
key: "generateResourceIdForReference",
|
|
44
|
+
value: function generateResourceIdForReference(sourceId) {
|
|
45
|
+
if (!this.dataProvider) {
|
|
46
|
+
throw new Error('Data provider not set');
|
|
47
|
+
}
|
|
48
|
+
return this.dataProvider.generateResourceIdForReference(sourceId);
|
|
49
|
+
}
|
|
50
|
+
}, {
|
|
43
51
|
key: "updateFireAnalyticsEvent",
|
|
44
52
|
value: function updateFireAnalyticsEvent(fireAnalyticsEvent) {
|
|
45
53
|
this.fireAnalyticsEvent = fireAnalyticsEvent;
|
|
@@ -26,10 +26,10 @@ var resolveSyncBlockInstance = exports.resolveSyncBlockInstance = function resol
|
|
|
26
26
|
return newResult;
|
|
27
27
|
} else if (!newResult.data) {
|
|
28
28
|
// return the old result if there was an error, e.g. network error, but not if not found or forbidden
|
|
29
|
-
if (newResult.error === _types.SyncBlockError.
|
|
30
|
-
return oldResult;
|
|
31
|
-
} else {
|
|
29
|
+
if (newResult.error === _types.SyncBlockError.NotFound || newResult.error === _types.SyncBlockError.Forbidden) {
|
|
32
30
|
return newResult;
|
|
31
|
+
} else {
|
|
32
|
+
return oldResult;
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
|