@atlaskit/editor-synced-block-provider 23.1.0 → 23.1.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 CHANGED
@@ -1,5 +1,15 @@
1
1
  # @atlaskit/editor-synced-block-provider
2
2
 
3
+ ## 23.1.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [`b68ccfbea3aeb`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/b68ccfbea3aeb) -
8
+ Generate synced-block reference IDs through the fetch provider under
9
+ platform_editor_blocks_patch_12, allowing fetch-only renderers to check same-document references
10
+ without a write provider.
11
+ - Updated dependencies
12
+
3
13
  ## 23.1.0
4
14
 
5
15
  ### Minor Changes
@@ -606,15 +606,27 @@ var writeDataBatch = exports.writeDataBatch = /*#__PURE__*/function () {
606
606
  var BlockServiceADFFetchProvider = /*#__PURE__*/function () {
607
607
  function BlockServiceADFFetchProvider(_ref5) {
608
608
  var cloudId = _ref5.cloudId,
609
- parentAri = _ref5.parentAri;
609
+ parentAri = _ref5.parentAri,
610
+ parentId = _ref5.parentId,
611
+ product = _ref5.product;
610
612
  (0, _classCallCheck2.default)(this, BlockServiceADFFetchProvider);
611
613
  this.cloudId = cloudId;
612
614
  this.parentAri = parentAri;
615
+ this.parentId = parentId;
616
+ this.product = product;
613
617
  }
614
-
615
- // resourceId of the reference synced block.
616
- // the ARI must be constructed to call the block service API
617
618
  return (0, _createClass2.default)(BlockServiceADFFetchProvider, [{
619
+ key: "generateResourceIdForReference",
620
+ value: function generateResourceIdForReference(sourceId) {
621
+ if (!this.product || !this.parentId) {
622
+ return sourceId;
623
+ }
624
+ return (0, _resourceId2.createResourceIdForReference)(this.product, this.parentId, sourceId);
625
+ }
626
+
627
+ // resourceId of the reference synced block.
628
+ // the ARI must be constructed to call the block service API
629
+ }, {
618
630
  key: "fetchData",
619
631
  value: function () {
620
632
  var _fetchData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(resourceId) {
@@ -1496,7 +1508,9 @@ var createBlockServiceAPIProviders = function createBlockServiceAPIProviders(_re
1496
1508
  return {
1497
1509
  fetchProvider: new BlockServiceADFFetchProvider({
1498
1510
  cloudId: cloudId,
1499
- parentAri: parentAri
1511
+ parentAri: parentAri,
1512
+ parentId: parentId,
1513
+ product: product
1500
1514
  }),
1501
1515
  writeProvider: new BlockServiceADFWriteProvider({
1502
1516
  cloudId: cloudId,
@@ -1525,11 +1539,15 @@ var useMemoizedBlockServiceAPIProviders = exports.useMemoizedBlockServiceAPIProv
1525
1539
  };
1526
1540
  var createBlockServiceFetchOnlyAPIProvider = function createBlockServiceFetchOnlyAPIProvider(_ref1) {
1527
1541
  var cloudId = _ref1.cloudId,
1528
- parentAri = _ref1.parentAri;
1542
+ parentAri = _ref1.parentAri,
1543
+ parentId = _ref1.parentId,
1544
+ product = _ref1.product;
1529
1545
  return {
1530
1546
  fetchProvider: new BlockServiceADFFetchProvider({
1531
1547
  cloudId: cloudId,
1532
- parentAri: parentAri
1548
+ parentAri: parentAri,
1549
+ parentId: parentId,
1550
+ product: product
1533
1551
  }),
1534
1552
  writeProvider: undefined
1535
1553
  };
@@ -1540,11 +1558,15 @@ var createBlockServiceFetchOnlyAPIProvider = function createBlockServiceFetchOnl
1540
1558
  */
1541
1559
  var useMemoizedBlockServiceFetchOnlyAPIProvider = exports.useMemoizedBlockServiceFetchOnlyAPIProvider = function useMemoizedBlockServiceFetchOnlyAPIProvider(_ref10) {
1542
1560
  var cloudId = _ref10.cloudId,
1543
- parentAri = _ref10.parentAri;
1561
+ parentAri = _ref10.parentAri,
1562
+ parentId = _ref10.parentId,
1563
+ product = _ref10.product;
1544
1564
  return (0, _react.useMemo)(function () {
1545
1565
  return createBlockServiceFetchOnlyAPIProvider({
1546
1566
  cloudId: cloudId,
1547
- parentAri: parentAri
1567
+ parentAri: parentAri,
1568
+ parentId: parentId,
1569
+ product: product
1548
1570
  });
1549
- }, [cloudId, parentAri]);
1571
+ }, [cloudId, parentAri, parentId, product]);
1550
1572
  };
@@ -15,6 +15,7 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
15
15
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
16
16
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
17
  var _react = require("react");
18
+ var _isExperimentEnabled = require("@atlaskit/platform-feature-experiments/is-experiment-enabled");
18
19
  var _ari = require("../clients/block-service/ari");
19
20
  var _ari2 = require("../clients/confluence/ari");
20
21
  var _sourceInfo2 = require("../clients/confluence/sourceInfo");
@@ -404,14 +405,13 @@ var SyncedBlockProvider = exports.SyncedBlockProvider = /*#__PURE__*/function (_
404
405
  resourceId: resourceId
405
406
  };
406
407
  }
407
- }, {
408
- key: "canGenerateResourceIdForReference",
409
- value: function canGenerateResourceIdForReference() {
410
- return this.writeProvider !== undefined;
411
- }
412
408
  }, {
413
409
  key: "generateResourceIdForReference",
414
410
  value: function generateResourceIdForReference(sourceId) {
411
+ if ((0, _isExperimentEnabled.isExperimentEnabled)('platform_editor_blocks_patch_12')) {
412
+ var _this$fetchProvider$g, _this$fetchProvider$g2, _this$fetchProvider;
413
+ return (_this$fetchProvider$g = (_this$fetchProvider$g2 = (_this$fetchProvider = this.fetchProvider).generateResourceIdForReference) === null || _this$fetchProvider$g2 === void 0 ? void 0 : _this$fetchProvider$g2.call(_this$fetchProvider, sourceId)) !== null && _this$fetchProvider$g !== void 0 ? _this$fetchProvider$g : sourceId;
414
+ }
415
415
  if (!this.writeProvider) {
416
416
  throw new Error('Write provider not set');
417
417
  }
@@ -273,9 +273,8 @@ var ReferenceSyncBlockStoreManager = exports.ReferenceSyncBlockStoreManager = /*
273
273
  }, {
274
274
  key: "getSameDocumentReferenceParts",
275
275
  value: function getSameDocumentReferenceParts(resourceId) {
276
- var _this$dataProvider$ca, _this$dataProvider3;
277
276
  var parsed = (0, _resourceId.parseResourceId)(resourceId);
278
- if (!parsed || !this.dataProvider || (0, _isExperimentEnabled.isExperimentEnabled)('platform_editor_blocks_patch_12') && ((_this$dataProvider$ca = (_this$dataProvider3 = this.dataProvider).canGenerateResourceIdForReference) === null || _this$dataProvider$ca === void 0 ? void 0 : _this$dataProvider$ca.call(_this$dataProvider3)) === false || this.dataProvider.generateResourceIdForReference(parsed.uuid) !== resourceId) {
277
+ if (!parsed || !this.dataProvider || this.dataProvider.generateResourceIdForReference(parsed.uuid) !== resourceId) {
279
278
  return undefined;
280
279
  }
281
280
  return parsed;
@@ -787,8 +786,8 @@ var ReferenceSyncBlockStoreManager = exports.ReferenceSyncBlockStoreManager = /*
787
786
  var sanitizedSyncBlock = this.normalizeReferenceData(syncBlock);
788
787
  var resourceId = sanitizedSyncBlock.resourceId;
789
788
  if (resourceId) {
790
- var _this$dataProvider4;
791
- (_this$dataProvider4 = this.dataProvider) === null || _this$dataProvider4 === void 0 || _this$dataProvider4.updateCache((0, _defineProperty2.default)({}, resourceId, sanitizedSyncBlock), {
789
+ var _this$dataProvider3;
790
+ (_this$dataProvider3 = this.dataProvider) === null || _this$dataProvider3 === void 0 || _this$dataProvider3.updateCache((0, _defineProperty2.default)({}, resourceId, sanitizedSyncBlock), {
792
791
  strategy: 'merge',
793
792
  source: 'network'
794
793
  });
@@ -799,15 +798,15 @@ var ReferenceSyncBlockStoreManager = exports.ReferenceSyncBlockStoreManager = /*
799
798
  }, {
800
799
  key: "getFromCache",
801
800
  value: function getFromCache(resourceId) {
802
- var _this$dataProvider5;
801
+ var _this$dataProvider4;
803
802
  var syncBlockNode = (0, _utils.createSyncBlockNode)('', resourceId);
804
- return (_this$dataProvider5 = this.dataProvider) === null || _this$dataProvider5 === void 0 || (_this$dataProvider5 = _this$dataProvider5.getNodeDataFromCache(syncBlockNode)) === null || _this$dataProvider5 === void 0 ? void 0 : _this$dataProvider5.data;
803
+ return (_this$dataProvider4 = this.dataProvider) === null || _this$dataProvider4 === void 0 || (_this$dataProvider4 = _this$dataProvider4.getNodeDataFromCache(syncBlockNode)) === null || _this$dataProvider4 === void 0 ? void 0 : _this$dataProvider4.data;
805
804
  }
806
805
  }, {
807
806
  key: "deleteFromCache",
808
807
  value: function deleteFromCache(resourceId) {
809
- var _this$dataProvider6;
810
- (_this$dataProvider6 = this.dataProvider) === null || _this$dataProvider6 === void 0 || _this$dataProvider6.removeFromCache([resourceId]);
808
+ var _this$dataProvider5;
809
+ (_this$dataProvider5 = this.dataProvider) === null || _this$dataProvider5 === void 0 || _this$dataProvider5.removeFromCache([resourceId]);
811
810
  this._providerFactoryManager.deleteFactory(resourceId);
812
811
  // Evict in-flight source-info promise and reset reschedule counter
813
812
  // so a stale resolution can't silently merge into a re-fetched entry.
@@ -1291,7 +1290,7 @@ var ReferenceSyncBlockStoreManager = exports.ReferenceSyncBlockStoreManager = /*
1291
1290
  }, {
1292
1291
  key: "destroy",
1293
1292
  value: function destroy() {
1294
- var _this$dataProvider7, _this$saveExperience5, _this$fetchExperience0, _this$fetchSourceInfo2;
1293
+ var _this$dataProvider6, _this$saveExperience5, _this$fetchExperience0, _this$fetchSourceInfo2;
1295
1294
  // Mark destroyed first so in-flight timer callbacks can early-return.
1296
1295
  this.isDestroyed = true;
1297
1296
 
@@ -1317,7 +1316,7 @@ var ReferenceSyncBlockStoreManager = exports.ReferenceSyncBlockStoreManager = /*
1317
1316
  this._subscriptionManager.destroy();
1318
1317
  this._providerFactoryManager.destroy();
1319
1318
  this._batchFetcher.destroy();
1320
- (_this$dataProvider7 = this.dataProvider) === null || _this$dataProvider7 === void 0 || _this$dataProvider7.resetCache();
1319
+ (_this$dataProvider6 = this.dataProvider) === null || _this$dataProvider6 === void 0 || _this$dataProvider6.resetCache();
1321
1320
  this.dataProvider = undefined;
1322
1321
  this.syncBlockFetchDataRequests.clear();
1323
1322
  this.syncBlockSourceInfoRequests.clear();
@@ -414,10 +414,20 @@ export const writeDataBatch = async (cloudId, parentAri, parentId, product, data
414
414
  class BlockServiceADFFetchProvider {
415
415
  constructor({
416
416
  cloudId,
417
- parentAri
417
+ parentAri,
418
+ parentId,
419
+ product
418
420
  }) {
419
421
  this.cloudId = cloudId;
420
422
  this.parentAri = parentAri;
423
+ this.parentId = parentId;
424
+ this.product = product;
425
+ }
426
+ generateResourceIdForReference(sourceId) {
427
+ if (!this.product || !this.parentId) {
428
+ return sourceId;
429
+ }
430
+ return createResourceIdForReference(this.product, this.parentId, sourceId);
421
431
  }
422
432
 
423
433
  // resourceId of the reference synced block.
@@ -975,7 +985,9 @@ const createBlockServiceAPIProviders = ({
975
985
  return {
976
986
  fetchProvider: new BlockServiceADFFetchProvider({
977
987
  cloudId,
978
- parentAri
988
+ parentAri,
989
+ parentId,
990
+ product
979
991
  }),
980
992
  writeProvider: new BlockServiceADFWriteProvider({
981
993
  cloudId,
@@ -1005,12 +1017,16 @@ export const useMemoizedBlockServiceAPIProviders = ({
1005
1017
  };
1006
1018
  const createBlockServiceFetchOnlyAPIProvider = ({
1007
1019
  cloudId,
1008
- parentAri
1020
+ parentAri,
1021
+ parentId,
1022
+ product
1009
1023
  }) => {
1010
1024
  return {
1011
1025
  fetchProvider: new BlockServiceADFFetchProvider({
1012
1026
  cloudId,
1013
- parentAri
1027
+ parentAri,
1028
+ parentId,
1029
+ product
1014
1030
  }),
1015
1031
  writeProvider: undefined
1016
1032
  };
@@ -1021,8 +1037,12 @@ const createBlockServiceFetchOnlyAPIProvider = ({
1021
1037
  */
1022
1038
  export const useMemoizedBlockServiceFetchOnlyAPIProvider = ({
1023
1039
  cloudId,
1024
- parentAri
1040
+ parentAri,
1041
+ parentId,
1042
+ product
1025
1043
  }) => useMemo(() => createBlockServiceFetchOnlyAPIProvider({
1026
1044
  cloudId,
1027
- parentAri
1028
- }), [cloudId, parentAri]);
1045
+ parentAri,
1046
+ parentId,
1047
+ product
1048
+ }), [cloudId, parentAri, parentId, product]);
@@ -1,5 +1,6 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import { useMemo, useRef } from 'react';
3
+ import { isExperimentEnabled } from '@atlaskit/platform-feature-experiments/is-experiment-enabled';
3
4
  import { getProductFromSourceAri } from '../clients/block-service/ari';
4
5
  import { getPageIdAndTypeFromConfluencePageAri } from '../clients/confluence/ari';
5
6
  import { fetchConfluencePageInfo } from '../clients/confluence/sourceInfo';
@@ -256,10 +257,11 @@ export class SyncedBlockProvider extends SyncBlockDataProviderInterface {
256
257
  resourceId
257
258
  };
258
259
  }
259
- canGenerateResourceIdForReference() {
260
- return this.writeProvider !== undefined;
261
- }
262
260
  generateResourceIdForReference(sourceId) {
261
+ if (isExperimentEnabled('platform_editor_blocks_patch_12')) {
262
+ var _this$fetchProvider$g, _this$fetchProvider$g2, _this$fetchProvider;
263
+ return (_this$fetchProvider$g = (_this$fetchProvider$g2 = (_this$fetchProvider = this.fetchProvider).generateResourceIdForReference) === null || _this$fetchProvider$g2 === void 0 ? void 0 : _this$fetchProvider$g2.call(_this$fetchProvider, sourceId)) !== null && _this$fetchProvider$g !== void 0 ? _this$fetchProvider$g : sourceId;
264
+ }
263
265
  if (!this.writeProvider) {
264
266
  throw new Error('Write provider not set');
265
267
  }
@@ -193,9 +193,8 @@ export class ReferenceSyncBlockStoreManager {
193
193
  return this.getFromSessionCache(resourceId);
194
194
  }
195
195
  getSameDocumentReferenceParts(resourceId) {
196
- var _this$dataProvider$ca, _this$dataProvider3;
197
196
  const parsed = parseResourceId(resourceId);
198
- if (!parsed || !this.dataProvider || isExperimentEnabled('platform_editor_blocks_patch_12') && ((_this$dataProvider$ca = (_this$dataProvider3 = this.dataProvider).canGenerateResourceIdForReference) === null || _this$dataProvider$ca === void 0 ? void 0 : _this$dataProvider$ca.call(_this$dataProvider3)) === false || this.dataProvider.generateResourceIdForReference(parsed.uuid) !== resourceId) {
197
+ if (!parsed || !this.dataProvider || this.dataProvider.generateResourceIdForReference(parsed.uuid) !== resourceId) {
199
198
  return undefined;
200
199
  }
201
200
  return parsed;
@@ -649,8 +648,8 @@ export class ReferenceSyncBlockStoreManager {
649
648
  resourceId
650
649
  } = sanitizedSyncBlock;
651
650
  if (resourceId) {
652
- var _this$dataProvider4;
653
- (_this$dataProvider4 = this.dataProvider) === null || _this$dataProvider4 === void 0 ? void 0 : _this$dataProvider4.updateCache({
651
+ var _this$dataProvider3;
652
+ (_this$dataProvider3 = this.dataProvider) === null || _this$dataProvider3 === void 0 ? void 0 : _this$dataProvider3.updateCache({
654
653
  [resourceId]: sanitizedSyncBlock
655
654
  }, {
656
655
  strategy: 'merge',
@@ -661,13 +660,13 @@ export class ReferenceSyncBlockStoreManager {
661
660
  }
662
661
  }
663
662
  getFromCache(resourceId) {
664
- var _this$dataProvider5, _this$dataProvider5$g;
663
+ var _this$dataProvider4, _this$dataProvider4$g;
665
664
  const syncBlockNode = createSyncBlockNode('', resourceId);
666
- return (_this$dataProvider5 = this.dataProvider) === null || _this$dataProvider5 === void 0 ? void 0 : (_this$dataProvider5$g = _this$dataProvider5.getNodeDataFromCache(syncBlockNode)) === null || _this$dataProvider5$g === void 0 ? void 0 : _this$dataProvider5$g.data;
665
+ return (_this$dataProvider4 = this.dataProvider) === null || _this$dataProvider4 === void 0 ? void 0 : (_this$dataProvider4$g = _this$dataProvider4.getNodeDataFromCache(syncBlockNode)) === null || _this$dataProvider4$g === void 0 ? void 0 : _this$dataProvider4$g.data;
667
666
  }
668
667
  deleteFromCache(resourceId) {
669
- var _this$dataProvider6;
670
- (_this$dataProvider6 = this.dataProvider) === null || _this$dataProvider6 === void 0 ? void 0 : _this$dataProvider6.removeFromCache([resourceId]);
668
+ var _this$dataProvider5;
669
+ (_this$dataProvider5 = this.dataProvider) === null || _this$dataProvider5 === void 0 ? void 0 : _this$dataProvider5.removeFromCache([resourceId]);
671
670
  this._providerFactoryManager.deleteFactory(resourceId);
672
671
  // Evict in-flight source-info promise and reset reschedule counter
673
672
  // so a stale resolution can't silently merge into a re-fetched entry.
@@ -1054,7 +1053,7 @@ export class ReferenceSyncBlockStoreManager {
1054
1053
  return success;
1055
1054
  }
1056
1055
  destroy() {
1057
- var _this$dataProvider7, _this$saveExperience5, _this$fetchExperience0, _this$fetchSourceInfo7;
1056
+ var _this$dataProvider6, _this$saveExperience5, _this$fetchExperience0, _this$fetchSourceInfo7;
1058
1057
  // Mark destroyed first so in-flight timer callbacks can early-return.
1059
1058
  this.isDestroyed = true;
1060
1059
 
@@ -1076,7 +1075,7 @@ export class ReferenceSyncBlockStoreManager {
1076
1075
  this._subscriptionManager.destroy();
1077
1076
  this._providerFactoryManager.destroy();
1078
1077
  this._batchFetcher.destroy();
1079
- (_this$dataProvider7 = this.dataProvider) === null || _this$dataProvider7 === void 0 ? void 0 : _this$dataProvider7.resetCache();
1078
+ (_this$dataProvider6 = this.dataProvider) === null || _this$dataProvider6 === void 0 ? void 0 : _this$dataProvider6.resetCache();
1080
1079
  this.dataProvider = undefined;
1081
1080
  this.syncBlockFetchDataRequests.clear();
1082
1081
  this.syncBlockSourceInfoRequests.clear();
@@ -600,15 +600,27 @@ export var writeDataBatch = /*#__PURE__*/function () {
600
600
  var BlockServiceADFFetchProvider = /*#__PURE__*/function () {
601
601
  function BlockServiceADFFetchProvider(_ref5) {
602
602
  var cloudId = _ref5.cloudId,
603
- parentAri = _ref5.parentAri;
603
+ parentAri = _ref5.parentAri,
604
+ parentId = _ref5.parentId,
605
+ product = _ref5.product;
604
606
  _classCallCheck(this, BlockServiceADFFetchProvider);
605
607
  this.cloudId = cloudId;
606
608
  this.parentAri = parentAri;
609
+ this.parentId = parentId;
610
+ this.product = product;
607
611
  }
608
-
609
- // resourceId of the reference synced block.
610
- // the ARI must be constructed to call the block service API
611
612
  return _createClass(BlockServiceADFFetchProvider, [{
613
+ key: "generateResourceIdForReference",
614
+ value: function generateResourceIdForReference(sourceId) {
615
+ if (!this.product || !this.parentId) {
616
+ return sourceId;
617
+ }
618
+ return createResourceIdForReference(this.product, this.parentId, sourceId);
619
+ }
620
+
621
+ // resourceId of the reference synced block.
622
+ // the ARI must be constructed to call the block service API
623
+ }, {
612
624
  key: "fetchData",
613
625
  value: function () {
614
626
  var _fetchData = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(resourceId) {
@@ -1488,7 +1500,9 @@ var createBlockServiceAPIProviders = function createBlockServiceAPIProviders(_re
1488
1500
  return {
1489
1501
  fetchProvider: new BlockServiceADFFetchProvider({
1490
1502
  cloudId: cloudId,
1491
- parentAri: parentAri
1503
+ parentAri: parentAri,
1504
+ parentId: parentId,
1505
+ product: product
1492
1506
  }),
1493
1507
  writeProvider: new BlockServiceADFWriteProvider({
1494
1508
  cloudId: cloudId,
@@ -1517,11 +1531,15 @@ export var useMemoizedBlockServiceAPIProviders = function useMemoizedBlockServic
1517
1531
  };
1518
1532
  var createBlockServiceFetchOnlyAPIProvider = function createBlockServiceFetchOnlyAPIProvider(_ref1) {
1519
1533
  var cloudId = _ref1.cloudId,
1520
- parentAri = _ref1.parentAri;
1534
+ parentAri = _ref1.parentAri,
1535
+ parentId = _ref1.parentId,
1536
+ product = _ref1.product;
1521
1537
  return {
1522
1538
  fetchProvider: new BlockServiceADFFetchProvider({
1523
1539
  cloudId: cloudId,
1524
- parentAri: parentAri
1540
+ parentAri: parentAri,
1541
+ parentId: parentId,
1542
+ product: product
1525
1543
  }),
1526
1544
  writeProvider: undefined
1527
1545
  };
@@ -1532,11 +1550,15 @@ var createBlockServiceFetchOnlyAPIProvider = function createBlockServiceFetchOnl
1532
1550
  */
1533
1551
  export var useMemoizedBlockServiceFetchOnlyAPIProvider = function useMemoizedBlockServiceFetchOnlyAPIProvider(_ref10) {
1534
1552
  var cloudId = _ref10.cloudId,
1535
- parentAri = _ref10.parentAri;
1553
+ parentAri = _ref10.parentAri,
1554
+ parentId = _ref10.parentId,
1555
+ product = _ref10.product;
1536
1556
  return useMemo(function () {
1537
1557
  return createBlockServiceFetchOnlyAPIProvider({
1538
1558
  cloudId: cloudId,
1539
- parentAri: parentAri
1559
+ parentAri: parentAri,
1560
+ parentId: parentId,
1561
+ product: product
1540
1562
  });
1541
- }, [cloudId, parentAri]);
1563
+ }, [cloudId, parentAri, parentId, product]);
1542
1564
  };
@@ -12,6 +12,7 @@ import _regeneratorRuntime from "@babel/runtime/regenerator";
12
12
  function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
13
13
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
14
14
  import { useMemo, useRef } from 'react';
15
+ import { isExperimentEnabled } from '@atlaskit/platform-feature-experiments/is-experiment-enabled';
15
16
  import { getProductFromSourceAri } from '../clients/block-service/ari';
16
17
  import { getPageIdAndTypeFromConfluencePageAri } from '../clients/confluence/ari';
17
18
  import { fetchConfluencePageInfo } from '../clients/confluence/sourceInfo';
@@ -397,14 +398,13 @@ export var SyncedBlockProvider = /*#__PURE__*/function (_SyncBlockDataProvide) {
397
398
  resourceId: resourceId
398
399
  };
399
400
  }
400
- }, {
401
- key: "canGenerateResourceIdForReference",
402
- value: function canGenerateResourceIdForReference() {
403
- return this.writeProvider !== undefined;
404
- }
405
401
  }, {
406
402
  key: "generateResourceIdForReference",
407
403
  value: function generateResourceIdForReference(sourceId) {
404
+ if (isExperimentEnabled('platform_editor_blocks_patch_12')) {
405
+ var _this$fetchProvider$g, _this$fetchProvider$g2, _this$fetchProvider;
406
+ return (_this$fetchProvider$g = (_this$fetchProvider$g2 = (_this$fetchProvider = this.fetchProvider).generateResourceIdForReference) === null || _this$fetchProvider$g2 === void 0 ? void 0 : _this$fetchProvider$g2.call(_this$fetchProvider, sourceId)) !== null && _this$fetchProvider$g !== void 0 ? _this$fetchProvider$g : sourceId;
407
+ }
408
408
  if (!this.writeProvider) {
409
409
  throw new Error('Write provider not set');
410
410
  }
@@ -266,9 +266,8 @@ export var ReferenceSyncBlockStoreManager = /*#__PURE__*/function () {
266
266
  }, {
267
267
  key: "getSameDocumentReferenceParts",
268
268
  value: function getSameDocumentReferenceParts(resourceId) {
269
- var _this$dataProvider$ca, _this$dataProvider3;
270
269
  var parsed = parseResourceId(resourceId);
271
- if (!parsed || !this.dataProvider || isExperimentEnabled('platform_editor_blocks_patch_12') && ((_this$dataProvider$ca = (_this$dataProvider3 = this.dataProvider).canGenerateResourceIdForReference) === null || _this$dataProvider$ca === void 0 ? void 0 : _this$dataProvider$ca.call(_this$dataProvider3)) === false || this.dataProvider.generateResourceIdForReference(parsed.uuid) !== resourceId) {
270
+ if (!parsed || !this.dataProvider || this.dataProvider.generateResourceIdForReference(parsed.uuid) !== resourceId) {
272
271
  return undefined;
273
272
  }
274
273
  return parsed;
@@ -780,8 +779,8 @@ export var ReferenceSyncBlockStoreManager = /*#__PURE__*/function () {
780
779
  var sanitizedSyncBlock = this.normalizeReferenceData(syncBlock);
781
780
  var resourceId = sanitizedSyncBlock.resourceId;
782
781
  if (resourceId) {
783
- var _this$dataProvider4;
784
- (_this$dataProvider4 = this.dataProvider) === null || _this$dataProvider4 === void 0 || _this$dataProvider4.updateCache(_defineProperty({}, resourceId, sanitizedSyncBlock), {
782
+ var _this$dataProvider3;
783
+ (_this$dataProvider3 = this.dataProvider) === null || _this$dataProvider3 === void 0 || _this$dataProvider3.updateCache(_defineProperty({}, resourceId, sanitizedSyncBlock), {
785
784
  strategy: 'merge',
786
785
  source: 'network'
787
786
  });
@@ -792,15 +791,15 @@ export var ReferenceSyncBlockStoreManager = /*#__PURE__*/function () {
792
791
  }, {
793
792
  key: "getFromCache",
794
793
  value: function getFromCache(resourceId) {
795
- var _this$dataProvider5;
794
+ var _this$dataProvider4;
796
795
  var syncBlockNode = createSyncBlockNode('', resourceId);
797
- return (_this$dataProvider5 = this.dataProvider) === null || _this$dataProvider5 === void 0 || (_this$dataProvider5 = _this$dataProvider5.getNodeDataFromCache(syncBlockNode)) === null || _this$dataProvider5 === void 0 ? void 0 : _this$dataProvider5.data;
796
+ return (_this$dataProvider4 = this.dataProvider) === null || _this$dataProvider4 === void 0 || (_this$dataProvider4 = _this$dataProvider4.getNodeDataFromCache(syncBlockNode)) === null || _this$dataProvider4 === void 0 ? void 0 : _this$dataProvider4.data;
798
797
  }
799
798
  }, {
800
799
  key: "deleteFromCache",
801
800
  value: function deleteFromCache(resourceId) {
802
- var _this$dataProvider6;
803
- (_this$dataProvider6 = this.dataProvider) === null || _this$dataProvider6 === void 0 || _this$dataProvider6.removeFromCache([resourceId]);
801
+ var _this$dataProvider5;
802
+ (_this$dataProvider5 = this.dataProvider) === null || _this$dataProvider5 === void 0 || _this$dataProvider5.removeFromCache([resourceId]);
804
803
  this._providerFactoryManager.deleteFactory(resourceId);
805
804
  // Evict in-flight source-info promise and reset reschedule counter
806
805
  // so a stale resolution can't silently merge into a re-fetched entry.
@@ -1284,7 +1283,7 @@ export var ReferenceSyncBlockStoreManager = /*#__PURE__*/function () {
1284
1283
  }, {
1285
1284
  key: "destroy",
1286
1285
  value: function destroy() {
1287
- var _this$dataProvider7, _this$saveExperience5, _this$fetchExperience0, _this$fetchSourceInfo2;
1286
+ var _this$dataProvider6, _this$saveExperience5, _this$fetchExperience0, _this$fetchSourceInfo2;
1288
1287
  // Mark destroyed first so in-flight timer callbacks can early-return.
1289
1288
  this.isDestroyed = true;
1290
1289
 
@@ -1310,7 +1309,7 @@ export var ReferenceSyncBlockStoreManager = /*#__PURE__*/function () {
1310
1309
  this._subscriptionManager.destroy();
1311
1310
  this._providerFactoryManager.destroy();
1312
1311
  this._batchFetcher.destroy();
1313
- (_this$dataProvider7 = this.dataProvider) === null || _this$dataProvider7 === void 0 || _this$dataProvider7.resetCache();
1312
+ (_this$dataProvider6 = this.dataProvider) === null || _this$dataProvider6 === void 0 || _this$dataProvider6.resetCache();
1314
1313
  this.dataProvider = undefined;
1315
1314
  this.syncBlockFetchDataRequests.clear();
1316
1315
  this.syncBlockSourceInfoRequests.clear();
@@ -49,6 +49,8 @@ export declare const writeDataBatch: (cloudId: string, parentAri: string | undef
49
49
  interface BlockServiceADFFetchProviderProps {
50
50
  cloudId: string;
51
51
  parentAri: string | undefined;
52
+ parentId?: string;
53
+ product?: SyncBlockProduct;
52
54
  }
53
55
  /**
54
56
  * ADFFetchProvider implementation that fetches synced block data from Block Service API
@@ -56,7 +58,10 @@ interface BlockServiceADFFetchProviderProps {
56
58
  declare class BlockServiceADFFetchProvider implements ADFFetchProvider {
57
59
  private cloudId;
58
60
  private parentAri;
59
- constructor({ cloudId, parentAri }: BlockServiceADFFetchProviderProps);
61
+ private parentId?;
62
+ private product?;
63
+ constructor({ cloudId, parentAri, parentId, product }: BlockServiceADFFetchProviderProps);
64
+ generateResourceIdForReference(sourceId: ResourceId): ResourceId;
60
65
  fetchData(resourceId: string): Promise<SyncBlockInstance>;
61
66
  fetchReferences(referenceResourceId: string): Promise<ReferenceSyncBlockData>;
62
67
  /**
@@ -116,11 +121,13 @@ export declare const useMemoizedBlockServiceAPIProviders: ({ cloudId, parentAri,
116
121
  interface BlockServiceFetchOnlyAPIProviderProps {
117
122
  cloudId: string;
118
123
  parentAri: string | undefined;
124
+ parentId?: string;
125
+ product?: SyncBlockProduct;
119
126
  }
120
127
  /**
121
128
  * If the parentAri is not a valid ARI, pass in an empty string.
122
129
  */
123
- export declare const useMemoizedBlockServiceFetchOnlyAPIProvider: ({ cloudId, parentAri, }: BlockServiceFetchOnlyAPIProviderProps) => {
130
+ export declare const useMemoizedBlockServiceFetchOnlyAPIProvider: ({ cloudId, parentAri, parentId, product, }: BlockServiceFetchOnlyAPIProviderProps) => {
124
131
  fetchProvider: BlockServiceADFFetchProvider;
125
132
  writeProvider: undefined;
126
133
  };
@@ -74,7 +74,6 @@ export declare class SyncedBlockProvider extends SyncBlockDataProviderInterface
74
74
  localId: BlockInstanceId;
75
75
  resourceId: ResourceId;
76
76
  };
77
- canGenerateResourceIdForReference(): boolean;
78
77
  generateResourceIdForReference(sourceId: ResourceId): ResourceId;
79
78
  /**
80
79
  * Get the synced block renderer provider options
@@ -151,6 +151,8 @@ export interface ADFFetchProvider {
151
151
  batchFetchData: (blockNodeIdentifiers: BlockNodeIdentifiers[], config?: BatchFetchConfig) => Promise<SyncBlockInstance[]>;
152
152
  fetchData: (resourceId: ResourceId) => Promise<SyncBlockInstance>;
153
153
  fetchReferences: (referenceResourceId: string) => Promise<ReferenceSyncBlockData>;
154
+ /** Returns an unscoped sourceId when the host document identity is unavailable. */
155
+ generateResourceIdForReference?: (sourceId: ResourceId) => ResourceId;
154
156
  /**
155
157
  * Subscribes to real-time updates for a specific block.
156
158
  */
@@ -224,7 +226,6 @@ export declare abstract class SyncBlockDataProviderInterface extends NodeDataPro
224
226
  * @returns The generated resource ID
225
227
  */
226
228
  abstract generateResourceIdForReference(sourceId: ResourceId): ResourceId;
227
- canGenerateResourceIdForReference?(): boolean;
228
229
  abstract updateReferenceData(blocks: SyncBlockAttrs[], noContent?: boolean): Promise<UpdateReferenceSyncBlockResult>;
229
230
  abstract fetchReferences(resourceId: string, isSource: boolean): Promise<ReferenceSyncBlockData>;
230
231
  /**
package/package.json CHANGED
@@ -33,7 +33,7 @@
33
33
  "uuid": "^11.1.1"
34
34
  },
35
35
  "peerDependencies": {
36
- "@atlaskit/editor-common": "^131.2.0",
36
+ "@atlaskit/editor-common": "^131.6.0",
37
37
  "react": "^18.2.0 || ^19.2.0"
38
38
  },
39
39
  "devDependencies": {
@@ -42,7 +42,7 @@
42
42
  "react-dom": "^19.2.0"
43
43
  },
44
44
  "name": "@atlaskit/editor-synced-block-provider",
45
- "version": "23.1.0",
45
+ "version": "23.1.1",
46
46
  "description": "Synced Block Provider for @atlaskit/editor-plugin-synced-block",
47
47
  "author": "Atlassian Pty Ltd",
48
48
  "license": "Apache-2.0",