@atlaskit/editor-synced-block-provider 3.2.0 → 3.2.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.
Files changed (50) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/cjs/clients/block-service/ari.js +13 -16
  3. package/dist/cjs/clients/confluence/ari.js +7 -40
  4. package/dist/cjs/clients/confluence/sourceInfo.js +3 -1
  5. package/dist/cjs/clients/jira/ari.js +5 -2
  6. package/dist/cjs/index.js +2 -27
  7. package/dist/cjs/providers/block-service/blockServiceAPI.js +71 -28
  8. package/dist/cjs/providers/syncBlockProvider.js +57 -38
  9. package/dist/cjs/store-manager/sourceSyncBlockStoreManager.js +5 -8
  10. package/dist/es2019/clients/block-service/ari.js +15 -16
  11. package/dist/es2019/clients/confluence/ari.js +11 -37
  12. package/dist/es2019/clients/confluence/sourceInfo.js +3 -1
  13. package/dist/es2019/clients/jira/ari.js +9 -2
  14. package/dist/es2019/index.js +2 -3
  15. package/dist/es2019/providers/block-service/blockServiceAPI.js +75 -28
  16. package/dist/es2019/providers/syncBlockProvider.js +45 -25
  17. package/dist/es2019/store-manager/sourceSyncBlockStoreManager.js +5 -8
  18. package/dist/esm/clients/block-service/ari.js +13 -16
  19. package/dist/esm/clients/confluence/ari.js +6 -39
  20. package/dist/esm/clients/confluence/sourceInfo.js +3 -1
  21. package/dist/esm/clients/jira/ari.js +5 -2
  22. package/dist/esm/index.js +2 -3
  23. package/dist/esm/providers/block-service/blockServiceAPI.js +70 -27
  24. package/dist/esm/providers/syncBlockProvider.js +57 -38
  25. package/dist/esm/store-manager/sourceSyncBlockStoreManager.js +4 -8
  26. package/dist/types/clients/block-service/ari.d.ts +14 -4
  27. package/dist/types/clients/confluence/ari.d.ts +8 -21
  28. package/dist/types/clients/jira/ari.d.ts +7 -2
  29. package/dist/types/index.d.ts +5 -6
  30. package/dist/types/providers/block-service/blockServiceAPI.d.ts +31 -6
  31. package/dist/types/providers/syncBlockProvider.d.ts +14 -13
  32. package/dist/types/providers/types.d.ts +9 -6
  33. package/dist/types-ts4.5/clients/block-service/ari.d.ts +14 -4
  34. package/dist/types-ts4.5/clients/confluence/ari.d.ts +8 -21
  35. package/dist/types-ts4.5/clients/jira/ari.d.ts +7 -2
  36. package/dist/types-ts4.5/index.d.ts +5 -6
  37. package/dist/types-ts4.5/providers/block-service/blockServiceAPI.d.ts +31 -6
  38. package/dist/types-ts4.5/providers/syncBlockProvider.d.ts +14 -13
  39. package/dist/types-ts4.5/providers/types.d.ts +9 -6
  40. package/package.json +1 -1
  41. package/dist/cjs/clients/confluence/contentProperty.js +0 -284
  42. package/dist/cjs/providers/confluence/confluenceContentAPI.js +0 -446
  43. package/dist/es2019/clients/confluence/contentProperty.js +0 -288
  44. package/dist/es2019/providers/confluence/confluenceContentAPI.js +0 -310
  45. package/dist/esm/clients/confluence/contentProperty.js +0 -277
  46. package/dist/esm/providers/confluence/confluenceContentAPI.js +0 -440
  47. package/dist/types/clients/confluence/contentProperty.d.ts +0 -139
  48. package/dist/types/providers/confluence/confluenceContentAPI.d.ts +0 -44
  49. package/dist/types-ts4.5/clients/confluence/contentProperty.d.ts +0 -139
  50. package/dist/types-ts4.5/providers/confluence/confluenceContentAPI.d.ts +0 -44
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # @atlaskit/editor-synced-block-provider
2
2
 
3
+ ## 3.2.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [`08984e84a58de`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/08984e84a58de) -
8
+ EDITOR-3594 Improve ARIs handling to ensure correctness
9
+
3
10
  ## 3.2.0
4
11
 
5
12
  ### Minor Changes
@@ -8,32 +8,29 @@ exports.getLocalIdFromBlockResourceId = exports.generateBlockAriFromReference =
8
8
 
9
9
  /**
10
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
11
+ * @param cloudId - the cloudId of the block. E.G the cloudId of the confluence page, or the cloudId of the Jira instance
12
+ * @param parentId - the parentId of the block. E.G the pageId for a confluence page, or the issueId for a Jira work item
12
13
  * @param resourceId - the resource ID of the block node. A randomly generated UUID
14
+ * @param product - the product of the block. E.G 'confluence-page', 'jira-work-item'
13
15
  * @returns the block ARI. E.G ari:cloud:blocks:<cloudId>:synced-block/<product>/<pageId>/<resourceId>
14
16
  */
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);
17
+ var generateBlockAri = exports.generateBlockAri = function generateBlockAri(_ref) {
18
+ var cloudId = _ref.cloudId,
19
+ parentId = _ref.parentId,
20
+ product = _ref.product,
21
+ resourceId = _ref.resourceId;
22
+ return "ari:cloud:blocks:".concat(cloudId, ":synced-block/").concat(product, "/").concat(parentId, "/").concat(resourceId);
23
23
  };
24
24
 
25
25
  /**
26
26
  * Generates the block ARI from the reference synced block ARI and the resource ID
27
- * @param sourceAri - the ARI of the document. E.G ari:cloud:confluence:cloudId:page/pageId
27
+ * @param cloudId - the cloudId of the block. E.G the cloudId of the confluence page, or the cloudId of the Jira instance
28
28
  * @param resourceId - the resource ID of the reference synced block. E.G confluence-page/pageId/sourceResourceId
29
29
  * @returns the block ARI. E.G ari:cloud:blocks:<cloudId>:synced-block/<product>/<pageId>/<resourceId>
30
30
  */
31
- var generateBlockAriFromReference = exports.generateBlockAriFromReference = function generateBlockAriFromReference(sourceAri, resourceId) {
32
- var match = sourceAri.match(/ari:cloud:confluence:([^:]+):(page|blogpost)\/(\d+)/);
33
- if (!(match !== null && match !== void 0 && match[1])) {
34
- throw new Error("Invalid source ARI: ".concat(sourceAri));
35
- }
36
- var cloudId = match[1];
31
+ var generateBlockAriFromReference = exports.generateBlockAriFromReference = function generateBlockAriFromReference(_ref2) {
32
+ var cloudId = _ref2.cloudId,
33
+ resourceId = _ref2.resourceId;
37
34
  return "ari:cloud:blocks:".concat(cloudId, ":synced-block/").concat(resourceId);
38
35
  };
39
36
 
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.resourceIdFromConfluencePageSourceIdAndLocalId = exports.getPageIdAndTypeFromConfluencePageAri = exports.getPageAriFromContentPropertyResourceId = exports.getLocalIdFromContentPropertyResourceId = exports.getConfluencePageAri = void 0;
6
+ exports.getPageIdAndTypeFromConfluencePageAri = exports.getConfluencePageAri = void 0;
7
7
  /* eslint-disable require-unicode-regexp */
8
8
 
9
9
  /**
@@ -17,8 +17,10 @@ exports.resourceIdFromConfluencePageSourceIdAndLocalId = exports.getPageIdAndTyp
17
17
  * @param pageType - the type of the page
18
18
  * @returns the Confluence page ARI
19
19
  */
20
- var getConfluencePageAri = exports.getConfluencePageAri = function getConfluencePageAri(pageId, cloudId) {
21
- var pageType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'page';
20
+ var getConfluencePageAri = exports.getConfluencePageAri = function getConfluencePageAri(_ref) {
21
+ var pageId = _ref.pageId,
22
+ cloudId = _ref.cloudId,
23
+ pageType = _ref.pageType;
22
24
  return "ari:cloud:confluence:".concat(cloudId, ":").concat(pageType, "/").concat(pageId);
23
25
  };
24
26
 
@@ -27,7 +29,8 @@ var getConfluencePageAri = exports.getConfluencePageAri = function getConfluence
27
29
  * @param ari - the Confluence page ARI
28
30
  * @returns the page ID and type
29
31
  */
30
- var getPageIdAndTypeFromConfluencePageAri = exports.getPageIdAndTypeFromConfluencePageAri = function getPageIdAndTypeFromConfluencePageAri(ari) {
32
+ var getPageIdAndTypeFromConfluencePageAri = exports.getPageIdAndTypeFromConfluencePageAri = function getPageIdAndTypeFromConfluencePageAri(_ref2) {
33
+ var ari = _ref2.ari;
31
34
  var match = ari.match(/ari:cloud:confluence:[^:]+:(page|blogpost)\/(\d+)/);
32
35
  if (match !== null && match !== void 0 && match[2]) {
33
36
  return {
@@ -36,40 +39,4 @@ var getPageIdAndTypeFromConfluencePageAri = exports.getPageIdAndTypeFromConfluen
36
39
  };
37
40
  }
38
41
  throw new Error("Invalid page ARI: ".concat(ari));
39
- };
40
-
41
- /**
42
- * Extracts the local ID from the Confluence page content property resource ID
43
- * @param resourceId - the Confluence page content property resource ID
44
- * @returns the local ID
45
- */
46
- var getLocalIdFromContentPropertyResourceId = exports.getLocalIdFromContentPropertyResourceId = function getLocalIdFromContentPropertyResourceId(resourceId) {
47
- var match = resourceId.match(/ari:cloud:confluence:[^:]+:(page|blogpost)\/\d+\/([a-zA-Z0-9-]+)/);
48
- if (match !== null && match !== void 0 && match[2]) {
49
- return match[2];
50
- }
51
- throw new Error("Invalid resourceId: ".concat(resourceId));
52
- };
53
-
54
- /**
55
- * Extracts the Confluence page ARI from the Confluence content property resource ID
56
- * @param resourceId - the Confluence content property resource ID
57
- * @returns the Confluence page ARI
58
- */
59
- var getPageAriFromContentPropertyResourceId = exports.getPageAriFromContentPropertyResourceId = function getPageAriFromContentPropertyResourceId(resourceId) {
60
- var match = resourceId.match(/(ari:cloud:confluence:[^:]+:(page|blogpost)\/\d+)\/([a-zA-Z0-9-]+)$/);
61
- if (match !== null && match !== void 0 && match[1]) {
62
- return match[1];
63
- }
64
- throw new Error("Invalid resourceId: ".concat(resourceId));
65
- };
66
-
67
- /**
68
- * Generates the Confluence page content property resource ID from the source ID and local ID
69
- * @param sourceId - the source ID
70
- * @param localId - the local ID
71
- * @returns the Confluence page content property resource ID
72
- */
73
- var resourceIdFromConfluencePageSourceIdAndLocalId = exports.resourceIdFromConfluencePageSourceIdAndLocalId = function resourceIdFromConfluencePageSourceIdAndLocalId(sourceId, localId) {
74
- return "".concat(sourceId, "/").concat(localId);
75
42
  };
@@ -78,7 +78,9 @@ var fetchConfluencePageInfo = exports.fetchConfluencePageInfo = /*#__PURE__*/fun
78
78
  while (1) switch (_context2.prev = _context2.next) {
79
79
  case 0:
80
80
  _context2.prev = 0;
81
- _getPageIdAndTypeFrom = (0, _ari.getPageIdAndTypeFromConfluencePageAri)(pageAri), pageType = _getPageIdAndTypeFrom.type;
81
+ _getPageIdAndTypeFrom = (0, _ari.getPageIdAndTypeFromConfluencePageAri)({
82
+ ari: pageAri
83
+ }), pageType = _getPageIdAndTypeFrom.type;
82
84
  _context2.next = 4;
83
85
  return getConfluenceSourceInfo(pageAri);
84
86
  case 4:
@@ -12,7 +12,9 @@ exports.getJiraWorkItemIdFromAri = exports.getJiraWorkItemAri = void 0;
12
12
  * @param cloudId - the cloud ID
13
13
  * @returns the Jira work item ARI
14
14
  */
15
- var getJiraWorkItemAri = exports.getJiraWorkItemAri = function getJiraWorkItemAri(workItemId, cloudId) {
15
+ var getJiraWorkItemAri = exports.getJiraWorkItemAri = function getJiraWorkItemAri(_ref) {
16
+ var cloudId = _ref.cloudId,
17
+ workItemId = _ref.workItemId;
16
18
  return "ari:cloud:jira:".concat(cloudId, ":issue/").concat(workItemId);
17
19
  };
18
20
 
@@ -21,7 +23,8 @@ var getJiraWorkItemAri = exports.getJiraWorkItemAri = function getJiraWorkItemAr
21
23
  * @param ari - the Jira work item ARI
22
24
  * @returns the Jira work item ID
23
25
  */
24
- var getJiraWorkItemIdFromAri = exports.getJiraWorkItemIdFromAri = function getJiraWorkItemIdFromAri(ari) {
26
+ var getJiraWorkItemIdFromAri = exports.getJiraWorkItemIdFromAri = function getJiraWorkItemIdFromAri(_ref2) {
27
+ var ari = _ref2.ari;
25
28
  var match = ari.match(/ari:cloud:jira:([^:]+):issue\/(\d+)/);
26
29
  if (match !== null && match !== void 0 && match[2]) {
27
30
  return match[2];
package/dist/cjs/index.js CHANGED
@@ -39,12 +39,6 @@ Object.defineProperty(exports, "convertSyncBlockPMNodeToSyncBlockData", {
39
39
  return _utils.convertSyncBlockPMNodeToSyncBlockData;
40
40
  }
41
41
  });
42
- Object.defineProperty(exports, "createContentAPIProvidersWithDefaultKey", {
43
- enumerable: true,
44
- get: function get() {
45
- return _confluenceContentAPI.createContentAPIProvidersWithDefaultKey;
46
- }
47
- });
48
42
  Object.defineProperty(exports, "createSyncBlockNode", {
49
43
  enumerable: true,
50
44
  get: function get() {
@@ -111,18 +105,6 @@ Object.defineProperty(exports, "getLocalIdFromBlockResourceId", {
111
105
  return _ari.getLocalIdFromBlockResourceId;
112
106
  }
113
107
  });
114
- Object.defineProperty(exports, "getLocalIdFromContentPropertyResourceId", {
115
- enumerable: true,
116
- get: function get() {
117
- return _ari2.getLocalIdFromContentPropertyResourceId;
118
- }
119
- });
120
- Object.defineProperty(exports, "getPageAriFromContentPropertyResourceId", {
121
- enumerable: true,
122
- get: function get() {
123
- return _ari2.getPageAriFromContentPropertyResourceId;
124
- }
125
- });
126
108
  Object.defineProperty(exports, "getPageIdAndTypeFromConfluencePageAri", {
127
109
  enumerable: true,
128
110
  get: function get() {
@@ -141,12 +123,6 @@ Object.defineProperty(exports, "resolveSyncBlockInstance", {
141
123
  return _resolveSyncBlockInstance.resolveSyncBlockInstance;
142
124
  }
143
125
  });
144
- Object.defineProperty(exports, "resourceIdFromConfluencePageSourceIdAndLocalId", {
145
- enumerable: true,
146
- get: function get() {
147
- return _ari2.resourceIdFromConfluencePageSourceIdAndLocalId;
148
- }
149
- });
150
126
  Object.defineProperty(exports, "useFetchSyncBlockData", {
151
127
  enumerable: true,
152
128
  get: function get() {
@@ -171,10 +147,10 @@ Object.defineProperty(exports, "useMemoizedBlockServiceAPIProviders", {
171
147
  return _blockServiceAPI.useMemoizedBlockServiceAPIProviders;
172
148
  }
173
149
  });
174
- Object.defineProperty(exports, "useMemoizedContentAPIProviders", {
150
+ Object.defineProperty(exports, "useMemoizedBlockServiceFetchOnlyAPIProvider", {
175
151
  enumerable: true,
176
152
  get: function get() {
177
- return _confluenceContentAPI.useMemoizedContentAPIProviders;
153
+ return _blockServiceAPI.useMemoizedBlockServiceFetchOnlyAPIProvider;
178
154
  }
179
155
  });
180
156
  Object.defineProperty(exports, "useMemoizedSyncBlockStoreManager", {
@@ -198,7 +174,6 @@ var _ari = require("./clients/block-service/ari");
198
174
  var _ari2 = require("./clients/confluence/ari");
199
175
  var _ari3 = require("./clients/jira/ari");
200
176
  var _blockServiceAPI = require("./providers/block-service/blockServiceAPI");
201
- var _confluenceContentAPI = require("./providers/confluence/confluenceContentAPI");
202
177
  var _sourceInfo = require("./clients/confluence/sourceInfo");
203
178
  var _syncBlockProvider = require("./providers/syncBlockProvider");
204
179
  var _syncBlockStoreManager = require("./store-manager/syncBlockStoreManager");
@@ -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.useMemoizedBlockServiceAPIProviders = exports.fetchReferences = void 0;
7
+ exports.useMemoizedBlockServiceFetchOnlyAPIProvider = exports.useMemoizedBlockServiceAPIProviders = exports.fetchReferences = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
10
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
@@ -112,14 +112,14 @@ var fetchReferences = exports.fetchReferences = /*#__PURE__*/function () {
112
112
  return _ref.apply(this, arguments);
113
113
  };
114
114
  }();
115
-
116
115
  /**
117
116
  * ADFFetchProvider implementation that fetches synced block data from Block Service API
118
117
  */
119
118
  var BlockServiceADFFetchProvider = /*#__PURE__*/function () {
120
- function BlockServiceADFFetchProvider(sourceAri) {
119
+ function BlockServiceADFFetchProvider(_ref3) {
120
+ var cloudId = _ref3.cloudId;
121
121
  (0, _classCallCheck2.default)(this, BlockServiceADFFetchProvider);
122
- this.sourceAri = sourceAri;
122
+ this.cloudId = cloudId;
123
123
  }
124
124
 
125
125
  // resourceId of the reference synced block.
@@ -132,7 +132,10 @@ var BlockServiceADFFetchProvider = /*#__PURE__*/function () {
132
132
  return _regenerator.default.wrap(function _callee2$(_context2) {
133
133
  while (1) switch (_context2.prev = _context2.next) {
134
134
  case 0:
135
- blockAri = (0, _ari.generateBlockAriFromReference)(this.sourceAri, resourceId);
135
+ blockAri = (0, _ari.generateBlockAriFromReference)({
136
+ cloudId: this.cloudId,
137
+ resourceId: resourceId
138
+ });
136
139
  _context2.prev = 1;
137
140
  _context2.next = 4;
138
141
  return (0, _blockService.getSyncedBlockContent)({
@@ -196,11 +199,17 @@ var BlockServiceADFFetchProvider = /*#__PURE__*/function () {
196
199
  * ADFWriteProvider implementation that writes synced block data to Block Service API
197
200
  */
198
201
  var BlockServiceADFWriteProvider = /*#__PURE__*/function () {
199
- function BlockServiceADFWriteProvider(sourceAri, product, sourceDocumentId, getVersion) {
202
+ function BlockServiceADFWriteProvider(_ref4) {
203
+ var cloudId = _ref4.cloudId,
204
+ parentAri = _ref4.parentAri,
205
+ parentId = _ref4.parentId,
206
+ product = _ref4.product,
207
+ getVersion = _ref4.getVersion;
200
208
  (0, _classCallCheck2.default)(this, BlockServiceADFWriteProvider);
201
- this.sourceAri = sourceAri;
209
+ this.cloudId = cloudId;
210
+ this.parentAri = parentAri;
211
+ this.parentId = parentId;
202
212
  this.product = product;
203
- this.sourceDocumentId = sourceDocumentId;
204
213
  this.getVersion = getVersion;
205
214
  }
206
215
 
@@ -214,7 +223,12 @@ var BlockServiceADFWriteProvider = /*#__PURE__*/function () {
214
223
  while (1) switch (_context3.prev = _context3.next) {
215
224
  case 0:
216
225
  resourceId = data.resourceId;
217
- blockAri = (0, _ari.generateBlockAri)(this.sourceAri, resourceId, this.product);
226
+ blockAri = (0, _ari.generateBlockAri)({
227
+ cloudId: this.cloudId,
228
+ parentId: this.parentId,
229
+ product: this.product,
230
+ resourceId: resourceId
231
+ });
218
232
  stepVersion = this.getVersion ? this.getVersion() : undefined;
219
233
  _context3.prev = 3;
220
234
  _context3.next = 6;
@@ -263,14 +277,19 @@ var BlockServiceADFWriteProvider = /*#__PURE__*/function () {
263
277
  while (1) switch (_context4.prev = _context4.next) {
264
278
  case 0:
265
279
  resourceId = data.resourceId;
266
- blockAri = (0, _ari.generateBlockAri)(this.sourceAri, resourceId, this.product);
280
+ blockAri = (0, _ari.generateBlockAri)({
281
+ cloudId: this.cloudId,
282
+ parentId: this.parentId,
283
+ product: this.product,
284
+ resourceId: resourceId
285
+ });
267
286
  stepVersion = this.getVersion ? this.getVersion() : undefined;
268
287
  _context4.prev = 3;
269
288
  _context4.next = 6;
270
289
  return (0, _blockService.createSyncedBlock)({
271
290
  blockAri: blockAri,
272
291
  blockInstanceId: data.blockInstanceId,
273
- sourceAri: this.sourceAri,
292
+ sourceAri: this.parentAri,
274
293
  product: this.product,
275
294
  content: JSON.stringify(data.content),
276
295
  stepVersion: stepVersion
@@ -314,7 +333,12 @@ var BlockServiceADFWriteProvider = /*#__PURE__*/function () {
314
333
  return _regenerator.default.wrap(function _callee5$(_context5) {
315
334
  while (1) switch (_context5.prev = _context5.next) {
316
335
  case 0:
317
- blockAri = (0, _ari.generateBlockAri)(this.sourceAri, resourceId, this.product);
336
+ blockAri = (0, _ari.generateBlockAri)({
337
+ cloudId: this.cloudId,
338
+ parentId: this.parentId,
339
+ product: this.product,
340
+ resourceId: resourceId
341
+ });
318
342
  _context5.prev = 1;
319
343
  _context5.next = 4;
320
344
  return (0, _blockService.deleteSyncedBlock)({
@@ -367,7 +391,7 @@ var BlockServiceADFWriteProvider = /*#__PURE__*/function () {
367
391
  }, {
368
392
  key: "generateResourceIdForReference",
369
393
  value: function generateResourceIdForReference(sourceId) {
370
- return "".concat(this.product, "/").concat(this.sourceDocumentId, "/").concat(sourceId);
394
+ return "".concat(this.product, "/").concat(this.parentId, "/").concat(sourceId);
371
395
  }
372
396
  }, {
373
397
  key: "generateResourceId",
@@ -385,10 +409,13 @@ var BlockServiceADFWriteProvider = /*#__PURE__*/function () {
385
409
  _context6.prev = 0;
386
410
  _context6.next = 3;
387
411
  return (0, _blockService.updateReferenceSyncedBlockOnDocument)({
388
- documentAri: this.sourceAri,
412
+ documentAri: this.parentAri,
389
413
  blocks: blocks.map(function (block) {
390
414
  return {
391
- blockAri: (0, _ari.generateBlockAriFromReference)(_this.sourceAri, block.resourceId),
415
+ blockAri: (0, _ari.generateBlockAriFromReference)({
416
+ cloudId: _this.cloudId,
417
+ resourceId: block.resourceId
418
+ }),
392
419
  blockInstanceId: block.localId
393
420
  };
394
421
  }),
@@ -427,19 +454,35 @@ var BlockServiceADFWriteProvider = /*#__PURE__*/function () {
427
454
  }()
428
455
  }]);
429
456
  }();
430
- /**
431
- * Factory function to create both providers with shared configuration
432
- */
433
- var createBlockServiceAPIProviders = function createBlockServiceAPIProviders(sourceAri, product, sourceDocumentId, getVersion) {
434
- var fetchProvider = new BlockServiceADFFetchProvider(sourceAri);
435
- var writeProvider = new BlockServiceADFWriteProvider(sourceAri, product, sourceDocumentId, getVersion);
436
- return {
437
- fetchProvider: fetchProvider,
438
- writeProvider: writeProvider
439
- };
457
+ var useMemoizedBlockServiceAPIProviders = exports.useMemoizedBlockServiceAPIProviders = function useMemoizedBlockServiceAPIProviders(_ref5) {
458
+ var cloudId = _ref5.cloudId,
459
+ parentAri = _ref5.parentAri,
460
+ parentId = _ref5.parentId,
461
+ product = _ref5.product,
462
+ getVersion = _ref5.getVersion;
463
+ return (0, _react.useMemo)(function () {
464
+ return {
465
+ fetchProvider: new BlockServiceADFFetchProvider({
466
+ cloudId: cloudId
467
+ }),
468
+ writeProvider: new BlockServiceADFWriteProvider({
469
+ cloudId: cloudId,
470
+ parentAri: parentAri,
471
+ parentId: parentId,
472
+ product: product,
473
+ getVersion: getVersion
474
+ })
475
+ };
476
+ }, [cloudId, parentAri, parentId, product, getVersion]);
440
477
  };
441
- var useMemoizedBlockServiceAPIProviders = exports.useMemoizedBlockServiceAPIProviders = function useMemoizedBlockServiceAPIProviders(sourceAri, product, sourceDocumentId, getVersion) {
478
+ var useMemoizedBlockServiceFetchOnlyAPIProvider = exports.useMemoizedBlockServiceFetchOnlyAPIProvider = function useMemoizedBlockServiceFetchOnlyAPIProvider(_ref6) {
479
+ var cloudId = _ref6.cloudId;
442
480
  return (0, _react.useMemo)(function () {
443
- return createBlockServiceAPIProviders(sourceAri, product, sourceDocumentId, getVersion);
444
- }, [sourceAri, product, sourceDocumentId, getVersion]);
481
+ return {
482
+ fetchProvider: new BlockServiceADFFetchProvider({
483
+ cloudId: cloudId
484
+ }),
485
+ writeProvider: undefined
486
+ };
487
+ }, [cloudId]);
445
488
  };
@@ -18,28 +18,24 @@ var _react = require("react");
18
18
  var _ari = require("../clients/confluence/ari");
19
19
  var _sourceInfo = require("../clients/confluence/sourceInfo");
20
20
  var _types = require("../common/types");
21
- var _types2 = require("../providers/types");
21
+ var _types2 = require("./types");
22
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)); }
23
23
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
24
24
  var SyncBlockProvider = exports.SyncBlockProvider = /*#__PURE__*/function (_SyncBlockDataProvide) {
25
- // the source document ARI; that the source sync block is on.
26
-
27
25
  /**
28
26
  * Constructor for the SyncBlockProvider
29
27
  *
30
28
  * @param fetchProvider
31
29
  * @param writeProvider
32
- * @param sourceId
33
30
  * @param nestedRendererDataProviders
34
31
  */
35
- function SyncBlockProvider(fetchProvider, writeProvider, sourceId) {
32
+ function SyncBlockProvider(fetchProvider, writeProvider) {
36
33
  var _this;
37
34
  (0, _classCallCheck2.default)(this, SyncBlockProvider);
38
35
  _this = _callSuper(this, SyncBlockProvider);
39
36
  (0, _defineProperty2.default)(_this, "name", 'syncBlockProvider');
40
37
  _this.fetchProvider = fetchProvider;
41
38
  _this.writeProvider = writeProvider;
42
- _this.sourceId = sourceId;
43
39
  _this.providerOptions = {};
44
40
  return _this;
45
41
  }
@@ -49,11 +45,6 @@ var SyncBlockProvider = exports.SyncBlockProvider = /*#__PURE__*/function (_Sync
49
45
  value: function setProviderOptions(providerOptions) {
50
46
  this.providerOptions = providerOptions;
51
47
  }
52
- }, {
53
- key: "getProduct",
54
- value: function getProduct() {
55
- return this.writeProvider.product;
56
- }
57
48
 
58
49
  /**
59
50
  * Check if the node is supported by the provider
@@ -132,14 +123,24 @@ var SyncBlockProvider = exports.SyncBlockProvider = /*#__PURE__*/function (_Sync
132
123
  return _regenerator.default.wrap(function _callee$(_context) {
133
124
  while (1) switch (_context.prev = _context.next) {
134
125
  case 0:
135
- _context.next = 2;
126
+ if (this.writeProvider) {
127
+ _context.next = 2;
128
+ break;
129
+ }
130
+ return _context.abrupt("return", Promise.reject(new Error('Write provider not set')));
131
+ case 2:
132
+ _context.next = 4;
136
133
  return Promise.allSettled(nodes.map(function (_node, index) {
134
+ var _this3$writeProvider;
135
+ if (!_this3.writeProvider) {
136
+ return Promise.reject('Write provider not set');
137
+ }
137
138
  if (!data[index].content) {
138
139
  return Promise.reject('No Synced Block content to write');
139
140
  }
140
- return _this3.writeProvider.writeData(data[index]);
141
+ return (_this3$writeProvider = _this3.writeProvider) === null || _this3$writeProvider === void 0 ? void 0 : _this3$writeProvider.writeData(data[index]);
141
142
  }));
142
- case 2:
143
+ case 4:
143
144
  results = _context.sent;
144
145
  return _context.abrupt("return", results.map(function (result) {
145
146
  if (result.status === 'fulfilled') {
@@ -150,11 +151,11 @@ var SyncBlockProvider = exports.SyncBlockProvider = /*#__PURE__*/function (_Sync
150
151
  };
151
152
  }
152
153
  }));
153
- case 4:
154
+ case 6:
154
155
  case "end":
155
156
  return _context.stop();
156
157
  }
157
- }, _callee);
158
+ }, _callee, this);
158
159
  }));
159
160
  function writeNodesData(_x, _x2) {
160
161
  return _writeNodesData.apply(this, arguments);
@@ -164,6 +165,9 @@ var SyncBlockProvider = exports.SyncBlockProvider = /*#__PURE__*/function (_Sync
164
165
  }, {
165
166
  key: "createNodeData",
166
167
  value: function createNodeData(data) {
168
+ if (!this.writeProvider) {
169
+ return Promise.reject(new Error('Write provider not set'));
170
+ }
167
171
  return this.writeProvider.createData(data).then(function (result) {
168
172
  return result;
169
173
  }, function (error) {
@@ -189,11 +193,20 @@ var SyncBlockProvider = exports.SyncBlockProvider = /*#__PURE__*/function (_Sync
189
193
  return _regenerator.default.wrap(function _callee2$(_context2) {
190
194
  while (1) switch (_context2.prev = _context2.next) {
191
195
  case 0:
192
- _context2.next = 2;
196
+ if (this.writeProvider) {
197
+ _context2.next = 2;
198
+ break;
199
+ }
200
+ return _context2.abrupt("return", Promise.reject(new Error('Write provider not set')));
201
+ case 2:
202
+ _context2.next = 4;
193
203
  return Promise.allSettled(resourceIds.map(function (resourceId) {
204
+ if (!_this4.writeProvider) {
205
+ return Promise.reject('Write provider not set');
206
+ }
194
207
  return _this4.writeProvider.deleteData(resourceId);
195
208
  }));
196
- case 2:
209
+ case 4:
197
210
  results = _context2.sent;
198
211
  return _context2.abrupt("return", results.map(function (result, index) {
199
212
  if (result.status === 'fulfilled') {
@@ -206,29 +219,17 @@ var SyncBlockProvider = exports.SyncBlockProvider = /*#__PURE__*/function (_Sync
206
219
  };
207
220
  }
208
221
  }));
209
- case 4:
222
+ case 6:
210
223
  case "end":
211
224
  return _context2.stop();
212
225
  }
213
- }, _callee2);
226
+ }, _callee2, this);
214
227
  }));
215
228
  function deleteNodesData(_x3) {
216
229
  return _deleteNodesData.apply(this, arguments);
217
230
  }
218
231
  return deleteNodesData;
219
232
  }()
220
- /**
221
- * Get the source id
222
- *
223
- * @returns The source id
224
- */
225
- )
226
- }, {
227
- key: "getSourceId",
228
- value: function getSourceId() {
229
- return this.sourceId;
230
- }
231
-
232
233
  /**
233
234
  * Fetch the source info from the source id
234
235
  *
@@ -238,6 +239,7 @@ var SyncBlockProvider = exports.SyncBlockProvider = /*#__PURE__*/function (_Sync
238
239
  *
239
240
  * @returns The source info
240
241
  */
242
+ )
241
243
  }, {
242
244
  key: "fetchSyncBlockSourceInfo",
243
245
  value: function fetchSyncBlockSourceInfo(localId, sourceAri, sourceProduct, fireAnalyticsEvent) {
@@ -255,12 +257,20 @@ var SyncBlockProvider = exports.SyncBlockProvider = /*#__PURE__*/function (_Sync
255
257
  }
256
258
  }, {
257
259
  key: "generateResourceId",
258
- value: function generateResourceId(sourceId, localId) {
259
- return this.writeProvider.generateResourceId(sourceId, localId);
260
+ value: function generateResourceId() {
261
+ var localId = crypto.randomUUID();
262
+ var resourceId = crypto.randomUUID();
263
+ return {
264
+ localId: localId,
265
+ resourceId: resourceId
266
+ };
260
267
  }
261
268
  }, {
262
269
  key: "generateResourceIdForReference",
263
270
  value: function generateResourceIdForReference(sourceId) {
271
+ if (!this.writeProvider) {
272
+ throw new Error('Write provider not set');
273
+ }
264
274
  return this.writeProvider.generateResourceIdForReference(sourceId);
265
275
  }
266
276
 
@@ -292,7 +302,9 @@ var SyncBlockProvider = exports.SyncBlockProvider = /*#__PURE__*/function (_Sync
292
302
  switch (sourceProduct) {
293
303
  case 'confluence-page':
294
304
  return {
295
- contentId: (0, _ari.getPageIdAndTypeFromConfluencePageAri)(sourceAri).id,
305
+ contentId: (0, _ari.getPageIdAndTypeFromConfluencePageAri)({
306
+ ari: sourceAri
307
+ }).id,
296
308
  contentProduct: sourceProduct
297
309
  };
298
310
  case 'jira-work-item':
@@ -304,14 +316,21 @@ var SyncBlockProvider = exports.SyncBlockProvider = /*#__PURE__*/function (_Sync
304
316
  }, {
305
317
  key: "updateReferenceData",
306
318
  value: function updateReferenceData(blocks, noContent) {
319
+ if (!this.writeProvider) {
320
+ throw new Error('Write provider not set');
321
+ }
307
322
  return this.writeProvider.updateReferenceData(blocks, noContent);
308
323
  }
309
324
  }]);
310
325
  }(_types2.SyncBlockDataProvider);
311
- var useMemoizedSyncedBlockProvider = exports.useMemoizedSyncedBlockProvider = function useMemoizedSyncedBlockProvider(fetchProvider, writeProvider, sourceId, providerOptions, getSSRData) {
326
+ var useMemoizedSyncedBlockProvider = exports.useMemoizedSyncedBlockProvider = function useMemoizedSyncedBlockProvider(_ref) {
327
+ var fetchProvider = _ref.fetchProvider,
328
+ writeProvider = _ref.writeProvider,
329
+ providerOptions = _ref.providerOptions,
330
+ getSSRData = _ref.getSSRData;
312
331
  var syncBlockProvider = (0, _react.useMemo)(function () {
313
- return new SyncBlockProvider(fetchProvider, writeProvider, sourceId);
314
- }, [fetchProvider, writeProvider, sourceId]);
332
+ return new SyncBlockProvider(fetchProvider, writeProvider);
333
+ }, [fetchProvider, writeProvider]);
315
334
  syncBlockProvider.setProviderOptions(providerOptions);
316
335
  var ssrData = getSSRData ? getSSRData() : undefined;
317
336
  if (ssrData) {
@@ -10,13 +10,12 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
10
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
11
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
12
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
- var _uuid = _interopRequireDefault(require("uuid"));
14
13
  var _monitoring = require("@atlaskit/editor-common/monitoring");
15
14
  var _types = require("../common/types");
16
15
  var _errorHandling = require("../utils/errorHandling");
17
16
  var _utils = require("../utils/utils");
18
17
  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; }
19
- 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; } // eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
18
+ 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; }
20
19
  // A store manager responsible for the lifecycle and state management of source sync blocks in an editor instance.
21
20
  // Designed to manage local in-memory state and synchronize with an external data provider.
22
21
  // Supports create, flush, and delete operations for source sync blocks.
@@ -237,14 +236,12 @@ var SourceSyncBlockStoreManager = exports.SourceSyncBlockStoreManager = /*#__PUR
237
236
  }, {
238
237
  key: "generateBodiedSyncBlockAttrs",
239
238
  value: function generateBodiedSyncBlockAttrs() {
240
- var _this$dataProvider;
241
- // eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
242
- var localId = (0, _uuid.default)();
243
- var sourceId = (_this$dataProvider = this.dataProvider) === null || _this$dataProvider === void 0 ? void 0 : _this$dataProvider.getSourceId();
244
- if (!this.dataProvider || !sourceId) {
239
+ if (!this.dataProvider) {
245
240
  throw new Error('Data provider not set or source id not set');
246
241
  }
247
- var resourceId = this.dataProvider.generateResourceId(sourceId, localId);
242
+ var _this$dataProvider$ge = this.dataProvider.generateResourceId(),
243
+ resourceId = _this$dataProvider$ge.resourceId,
244
+ localId = _this$dataProvider$ge.localId;
248
245
  return {
249
246
  resourceId: resourceId,
250
247
  localId: localId