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