@atlaskit/editor-synced-block-provider 2.7.4 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/index.js +37 -0
  3. package/dist/cjs/providers/block-service/blockServiceAPI.js +238 -0
  4. package/dist/cjs/providers/confluence/confluenceContentAPI.js +5 -0
  5. package/dist/cjs/providers/syncBlockProvider.js +5 -0
  6. package/dist/cjs/store-manager/sourceSyncBlockStoreManager.js +2 -5
  7. package/dist/cjs/utils/ari.js +32 -4
  8. package/dist/cjs/utils/blockService.js +168 -0
  9. package/dist/es2019/index.js +2 -1
  10. package/dist/es2019/providers/block-service/blockServiceAPI.js +148 -0
  11. package/dist/es2019/providers/confluence/confluenceContentAPI.js +4 -1
  12. package/dist/es2019/providers/syncBlockProvider.js +3 -0
  13. package/dist/es2019/store-manager/sourceSyncBlockStoreManager.js +2 -5
  14. package/dist/es2019/utils/ari.js +31 -1
  15. package/dist/es2019/utils/blockService.js +71 -0
  16. package/dist/esm/index.js +2 -1
  17. package/dist/esm/providers/block-service/blockServiceAPI.js +231 -0
  18. package/dist/esm/providers/confluence/confluenceContentAPI.js +6 -1
  19. package/dist/esm/providers/syncBlockProvider.js +5 -0
  20. package/dist/esm/store-manager/sourceSyncBlockStoreManager.js +2 -5
  21. package/dist/esm/utils/ari.js +31 -3
  22. package/dist/esm/utils/blockService.js +161 -0
  23. package/dist/types/index.d.ts +2 -1
  24. package/dist/types/providers/block-service/blockServiceAPI.d.ts +21 -0
  25. package/dist/types/providers/confluence/confluenceContentAPI.d.ts +1 -0
  26. package/dist/types/providers/syncBlockProvider.d.ts +1 -0
  27. package/dist/types/providers/types.d.ts +8 -0
  28. package/dist/types/utils/ari.d.ts +15 -1
  29. package/dist/types/utils/blockService.d.ts +39 -0
  30. package/dist/types-ts4.5/index.d.ts +2 -1
  31. package/dist/types-ts4.5/providers/block-service/blockServiceAPI.d.ts +21 -0
  32. package/dist/types-ts4.5/providers/confluence/confluenceContentAPI.d.ts +1 -0
  33. package/dist/types-ts4.5/providers/syncBlockProvider.d.ts +1 -0
  34. package/dist/types-ts4.5/providers/types.d.ts +8 -0
  35. package/dist/types-ts4.5/utils/ari.d.ts +15 -1
  36. package/dist/types-ts4.5/utils/blockService.d.ts +39 -0
  37. package/package.json +8 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @atlaskit/editor-synced-block-provider
2
2
 
3
+ ## 2.9.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`e0dc40edfc665`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/e0dc40edfc665) -
8
+ Update the resource ID generation for blockAri format
9
+
10
+ ## 2.8.0
11
+
12
+ ### Minor Changes
13
+
14
+ - [`ec416ddf3747c`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/ec416ddf3747c) -
15
+ Add a block service API provider
16
+
3
17
  ## 2.7.4
4
18
 
5
19
  ### Patch Changes
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, "blockResourceIdFromSourceAndLocalId", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _ari.blockResourceIdFromSourceAndLocalId;
34
+ }
35
+ });
30
36
  Object.defineProperty(exports, "convertSyncBlockJSONNodeToSyncBlockNode", {
31
37
  enumerable: true,
32
38
  get: function get() {
@@ -57,6 +63,24 @@ Object.defineProperty(exports, "getConfluencePageAri", {
57
63
  return _ari.getConfluencePageAri;
58
64
  }
59
65
  });
66
+ Object.defineProperty(exports, "getLocalIdFromAri", {
67
+ enumerable: true,
68
+ get: function get() {
69
+ return _ari.getLocalIdFromAri;
70
+ }
71
+ });
72
+ Object.defineProperty(exports, "getLocalIdFromResourceId", {
73
+ enumerable: true,
74
+ get: function get() {
75
+ return _ari.getLocalIdFromResourceId;
76
+ }
77
+ });
78
+ Object.defineProperty(exports, "getPageARIFromResourceId", {
79
+ enumerable: true,
80
+ get: function get() {
81
+ return _ari.getPageARIFromResourceId;
82
+ }
83
+ });
60
84
  Object.defineProperty(exports, "getPageIdAndTypeFromAri", {
61
85
  enumerable: true,
62
86
  get: function get() {
@@ -75,6 +99,12 @@ Object.defineProperty(exports, "resolveSyncBlockInstance", {
75
99
  return _resolveSyncBlockInstance.resolveSyncBlockInstance;
76
100
  }
77
101
  });
102
+ Object.defineProperty(exports, "resourceIdFromSourceAndLocalId", {
103
+ enumerable: true,
104
+ get: function get() {
105
+ return _ari.resourceIdFromSourceAndLocalId;
106
+ }
107
+ });
78
108
  Object.defineProperty(exports, "useFetchSyncBlockData", {
79
109
  enumerable: true,
80
110
  get: function get() {
@@ -93,6 +123,12 @@ Object.defineProperty(exports, "useHandleContentChanges", {
93
123
  return _useHandleContentChanges.useHandleContentChanges;
94
124
  }
95
125
  });
126
+ Object.defineProperty(exports, "useMemoizedBlockServiceAPIProviders", {
127
+ enumerable: true,
128
+ get: function get() {
129
+ return _blockServiceAPI.useMemoizedBlockServiceAPIProviders;
130
+ }
131
+ });
96
132
  Object.defineProperty(exports, "useMemoizedContentAPIProviders", {
97
133
  enumerable: true,
98
134
  get: function get() {
@@ -110,6 +146,7 @@ var _types = require("./common/types");
110
146
  var _useFetchSyncBlockData = require("./hooks/useFetchSyncBlockData");
111
147
  var _useFetchSyncBlockTitle = require("./hooks/useFetchSyncBlockTitle");
112
148
  var _useHandleContentChanges = require("./hooks/useHandleContentChanges");
149
+ var _blockServiceAPI = require("./providers/block-service/blockServiceAPI");
113
150
  var _confluenceContentAPI = require("./providers/confluence/confluenceContentAPI");
114
151
  var _syncBlockProvider = require("./providers/syncBlockProvider");
115
152
  var _referenceSyncBlockStoreManager = require("./store-manager/referenceSyncBlockStoreManager");
@@ -0,0 +1,238 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useMemoizedBlockServiceAPIProviders = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
+ var _react = require("react");
13
+ var _types = require("../../common/types");
14
+ var _ari = require("../../utils/ari");
15
+ var _blockService = require("../../utils/blockService");
16
+ var _errorHandling = require("../../utils/errorHandling");
17
+ var mapBlockError = function mapBlockError(error) {
18
+ switch (error.status) {
19
+ case 403:
20
+ return _types.SyncBlockError.Forbidden;
21
+ case 404:
22
+ return _types.SyncBlockError.NotFound;
23
+ }
24
+ return _types.SyncBlockError.Errored;
25
+ };
26
+
27
+ /**
28
+ * ADFFetchProvider implementation that fetches synced block data from Block Service API
29
+ */
30
+ var BlockServiceADFFetchProvider = /*#__PURE__*/function () {
31
+ function BlockServiceADFFetchProvider() {
32
+ (0, _classCallCheck2.default)(this, BlockServiceADFFetchProvider);
33
+ }
34
+ return (0, _createClass2.default)(BlockServiceADFFetchProvider, [{
35
+ key: "fetchData",
36
+ value: // resourceId is the ARI of the block. E.G ari:cloud:blocks:site-123:synced-block/uuid-456
37
+ // in the content API provider, this was the concatenation of the source document's ARI and the local ID. E.G ari:cloud:confluence:site-123:page/pageId/uuid-456
38
+ function () {
39
+ var _fetchData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(resourceId) {
40
+ var localId, blockContentResponse, value, syncedBlockData;
41
+ return _regenerator.default.wrap(function _callee$(_context) {
42
+ while (1) switch (_context.prev = _context.next) {
43
+ case 0:
44
+ localId = (0, _ari.getLocalIdFromResourceId)(resourceId);
45
+ _context.prev = 1;
46
+ _context.next = 4;
47
+ return (0, _blockService.getSyncedBlockContent)({
48
+ blockAri: resourceId
49
+ });
50
+ case 4:
51
+ blockContentResponse = _context.sent;
52
+ value = blockContentResponse.content;
53
+ if (value) {
54
+ _context.next = 8;
55
+ break;
56
+ }
57
+ return _context.abrupt("return", {
58
+ error: _types.SyncBlockError.NotFound,
59
+ resourceId: resourceId
60
+ });
61
+ case 8:
62
+ // Parse the synced block content from the response's content
63
+ syncedBlockData = JSON.parse(value);
64
+ return _context.abrupt("return", {
65
+ data: {
66
+ content: syncedBlockData,
67
+ resourceId: resourceId,
68
+ blockInstanceId: localId
69
+ },
70
+ resourceId: resourceId
71
+ });
72
+ case 12:
73
+ _context.prev = 12;
74
+ _context.t0 = _context["catch"](1);
75
+ if (!(_context.t0 instanceof _blockService.BlockError)) {
76
+ _context.next = 16;
77
+ break;
78
+ }
79
+ return _context.abrupt("return", {
80
+ error: mapBlockError(_context.t0),
81
+ resourceId: resourceId
82
+ });
83
+ case 16:
84
+ return _context.abrupt("return", {
85
+ error: _types.SyncBlockError.Errored,
86
+ resourceId: resourceId
87
+ });
88
+ case 17:
89
+ case "end":
90
+ return _context.stop();
91
+ }
92
+ }, _callee, null, [[1, 12]]);
93
+ }));
94
+ function fetchData(_x) {
95
+ return _fetchData.apply(this, arguments);
96
+ }
97
+ return fetchData;
98
+ }()
99
+ }]);
100
+ }();
101
+ /**
102
+ * ADFWriteProvider implementation that writes synced block data to Block Service API
103
+ */
104
+ var BlockServiceADFWriteProvider = /*#__PURE__*/function () {
105
+ function BlockServiceADFWriteProvider() {
106
+ (0, _classCallCheck2.default)(this, BlockServiceADFWriteProvider);
107
+ }
108
+ return (0, _createClass2.default)(BlockServiceADFWriteProvider, [{
109
+ key: "writeData",
110
+ value: // it will first try to update and if it can't (404) then it will try to create
111
+ function () {
112
+ var _writeData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(data) {
113
+ var resourceId;
114
+ return _regenerator.default.wrap(function _callee2$(_context2) {
115
+ while (1) switch (_context2.prev = _context2.next) {
116
+ case 0:
117
+ resourceId = data.resourceId;
118
+ _context2.prev = 1;
119
+ _context2.next = 4;
120
+ return (0, _blockService.updateSyncedBlock)({
121
+ blockAri: resourceId,
122
+ content: JSON.stringify(data.content)
123
+ });
124
+ case 4:
125
+ return _context2.abrupt("return", {
126
+ resourceId: resourceId
127
+ });
128
+ case 7:
129
+ _context2.prev = 7;
130
+ _context2.t0 = _context2["catch"](1);
131
+ if (!(_context2.t0 instanceof _blockService.BlockError)) {
132
+ _context2.next = 16;
133
+ break;
134
+ }
135
+ if (!(_context2.t0.status === 404)) {
136
+ _context2.next = 15;
137
+ break;
138
+ }
139
+ _context2.next = 13;
140
+ return (0, _blockService.createSyncedBlock)({
141
+ blockAri: resourceId,
142
+ blockInstanceId: data.blockInstanceId,
143
+ sourceAri: resourceId,
144
+ product: 'confluence-page',
145
+ content: JSON.stringify(data.content)
146
+ });
147
+ case 13:
148
+ _context2.next = 16;
149
+ break;
150
+ case 15:
151
+ return _context2.abrupt("return", {
152
+ error: mapBlockError(_context2.t0),
153
+ resourceId: resourceId
154
+ });
155
+ case 16:
156
+ return _context2.abrupt("return", {
157
+ error: (0, _errorHandling.stringifyError)(_context2.t0),
158
+ resourceId: resourceId
159
+ });
160
+ case 17:
161
+ case "end":
162
+ return _context2.stop();
163
+ }
164
+ }, _callee2, null, [[1, 7]]);
165
+ }));
166
+ function writeData(_x2) {
167
+ return _writeData.apply(this, arguments);
168
+ }
169
+ return writeData;
170
+ }() // soft deletes the source synced block
171
+ }, {
172
+ key: "deleteData",
173
+ value: function () {
174
+ var _deleteData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(resourceId) {
175
+ return _regenerator.default.wrap(function _callee3$(_context3) {
176
+ while (1) switch (_context3.prev = _context3.next) {
177
+ case 0:
178
+ _context3.prev = 0;
179
+ _context3.next = 3;
180
+ return (0, _blockService.deleteSyncedBlock)({
181
+ blockAri: resourceId
182
+ });
183
+ case 3:
184
+ return _context3.abrupt("return", {
185
+ resourceId: resourceId,
186
+ success: true,
187
+ error: undefined
188
+ });
189
+ case 6:
190
+ _context3.prev = 6;
191
+ _context3.t0 = _context3["catch"](0);
192
+ if (!(_context3.t0 instanceof _blockService.BlockError)) {
193
+ _context3.next = 10;
194
+ break;
195
+ }
196
+ return _context3.abrupt("return", {
197
+ resourceId: resourceId,
198
+ success: false,
199
+ error: mapBlockError(_context3.t0)
200
+ });
201
+ case 10:
202
+ return _context3.abrupt("return", {
203
+ resourceId: resourceId,
204
+ success: false,
205
+ error: (0, _errorHandling.stringifyError)(_context3.t0)
206
+ });
207
+ case 11:
208
+ case "end":
209
+ return _context3.stop();
210
+ }
211
+ }, _callee3, null, [[0, 6]]);
212
+ }));
213
+ function deleteData(_x3) {
214
+ return _deleteData.apply(this, arguments);
215
+ }
216
+ return deleteData;
217
+ }()
218
+ }, {
219
+ key: "generateResourceId",
220
+ value: function generateResourceId(sourceId, localId) {
221
+ return (0, _ari.blockResourceIdFromSourceAndLocalId)(sourceId, localId);
222
+ }
223
+ }]);
224
+ }();
225
+ /**
226
+ * Factory function to create both providers with shared configuration
227
+ */
228
+ var createBlockServiceAPIProviders = function createBlockServiceAPIProviders() {
229
+ var fetchProvider = new BlockServiceADFFetchProvider();
230
+ var writeProvider = new BlockServiceADFWriteProvider();
231
+ return {
232
+ fetchProvider: fetchProvider,
233
+ writeProvider: writeProvider
234
+ };
235
+ };
236
+ var useMemoizedBlockServiceAPIProviders = exports.useMemoizedBlockServiceAPIProviders = function useMemoizedBlockServiceAPIProviders() {
237
+ return (0, _react.useMemo)(createBlockServiceAPIProviders, []);
238
+ };
@@ -343,6 +343,11 @@ var ConfluenceADFWriteProvider = /*#__PURE__*/function () {
343
343
  }
344
344
  return deleteData;
345
345
  }()
346
+ }, {
347
+ key: "generateResourceId",
348
+ value: function generateResourceId(sourceId, localId) {
349
+ return (0, _ari.resourceIdFromSourceAndLocalId)(sourceId, localId);
350
+ }
346
351
  }]);
347
352
  }();
348
353
  /**
@@ -177,6 +177,11 @@ var SyncBlockProvider = exports.SyncBlockProvider = /*#__PURE__*/function (_Sync
177
177
  }
178
178
  return pageARI ? (0, _sourceInfo.fetchSourceInfo)(pageARI, sourceLocalId) : Promise.resolve(undefined);
179
179
  }
180
+ }, {
181
+ key: "generateResourceId",
182
+ value: function generateResourceId(sourceId, localId) {
183
+ return this.writeProvider.generateResourceId(sourceId, localId);
184
+ }
180
185
  }]);
181
186
  }(_types2.SyncBlockDataProvider);
182
187
  var useMemoizedSyncedBlockProvider = exports.useMemoizedSyncedBlockProvider = function useMemoizedSyncedBlockProvider(fetchProvider, writeProvider, sourceId) {
@@ -12,7 +12,6 @@ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
12
12
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
13
  var _uuid = _interopRequireDefault(require("uuid"));
14
14
  var _rebaseTransaction2 = require("../common/rebase-transaction");
15
- var _ari = require("../utils/ari");
16
15
  var _utils = require("../utils/utils");
17
16
  // eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
18
17
  var SourceSyncBlockStoreManager = exports.SourceSyncBlockStoreManager = /*#__PURE__*/function () {
@@ -165,12 +164,10 @@ var SourceSyncBlockStoreManager = exports.SourceSyncBlockStoreManager = /*#__PUR
165
164
  // eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
166
165
  var localId = (0, _uuid.default)();
167
166
  var sourceId = (_this$dataProvider = this.dataProvider) === null || _this$dataProvider === void 0 ? void 0 : _this$dataProvider.getSourceId();
168
- if (!sourceId) {
167
+ if (!this.dataProvider || !sourceId) {
169
168
  throw new Error('Provider of sync block plugin is not set');
170
169
  }
171
-
172
- // This should be generated by the data provider implementation as it differs between data providers
173
- var resourceId = (0, _ari.resourceIdFromSourceAndLocalId)(sourceId, localId);
170
+ var resourceId = this.dataProvider.generateResourceId(sourceId, localId);
174
171
  return {
175
172
  resourceId: resourceId,
176
173
  localId: localId
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.resourceIdFromSourceAndLocalId = exports.getPageIdAndTypeFromAri = exports.getPageARIFromResourceId = exports.getLocalIdFromAri = exports.getContentPropertyAri = exports.getConfluencePageAri = void 0;
6
+ exports.resourceIdFromSourceAndLocalId = exports.getPageIdAndTypeFromAri = exports.getPageARIFromResourceId = exports.getLocalIdFromResourceId = exports.getLocalIdFromAri = exports.getConfluencePageAri = exports.blockResourceIdFromSourceAndLocalId = void 0;
7
7
  /* eslint-disable require-unicode-regexp */
8
8
 
9
9
  var getConfluencePageAri = exports.getConfluencePageAri = function getConfluencePageAri(pageId, cloudId) {
@@ -34,9 +34,37 @@ var getPageARIFromResourceId = exports.getPageARIFromResourceId = function getPa
34
34
  }
35
35
  throw new Error("Invalid resourceId: ".concat(resourceId));
36
36
  };
37
- var getContentPropertyAri = exports.getContentPropertyAri = function getContentPropertyAri(contentPropertyId, cloudId) {
38
- return "ari:cloud:confluence:".concat(cloudId, ":content/").concat(contentPropertyId);
39
- };
40
37
  var resourceIdFromSourceAndLocalId = exports.resourceIdFromSourceAndLocalId = function resourceIdFromSourceAndLocalId(sourceId, localId) {
41
38
  return sourceId + '/' + localId;
39
+ };
40
+
41
+ /**
42
+ * For the following functions, they are used for the block service API provider.
43
+ * The resourceId/blockResourceId always refers to the block ARI.
44
+ */
45
+
46
+ /**
47
+ * @param sourceId - the ARI of the document. E.G ari:cloud:confluence:cloudId:page/pageId
48
+ * @param localId - the localId of the block node. A randomly generated UUID
49
+ * @returns the block ARI. E.G ari:cloud:blocks:cloudId:synced-block/localId
50
+ */
51
+ var blockResourceIdFromSourceAndLocalId = exports.blockResourceIdFromSourceAndLocalId = function blockResourceIdFromSourceAndLocalId(sourceId, localId) {
52
+ var match = sourceId.match(/ari:cloud:confluence:([^:]+):(page|blogpost)\/.*/);
53
+ if (!(match !== null && match !== void 0 && match[1])) {
54
+ throw new Error("Invalid source ARI: ".concat(sourceId));
55
+ }
56
+ var cloudId = match[1];
57
+ return "ari:cloud:blocks:".concat(cloudId, ":synced-block/").concat(localId);
58
+ };
59
+
60
+ /**
61
+ * @param ari - the block ARI. E.G ari:cloud:blocks:cloudId:synced-block/localId
62
+ * @returns the localId of the block node. A randomly generated UUID
63
+ */
64
+ var getLocalIdFromResourceId = exports.getLocalIdFromResourceId = function getLocalIdFromResourceId(ari) {
65
+ var match = ari.match(/ari:cloud:confluence:[^:]+:(page|blogpost)\/\d+\/([a-zA-Z0-9-]+)/);
66
+ if (match !== null && match !== void 0 && match[2]) {
67
+ return match[2];
68
+ }
69
+ throw new Error("Invalid page ARI: ".concat(ari));
42
70
  };
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.updateSyncedBlock = exports.getSyncedBlockContent = exports.deleteSyncedBlock = exports.createSyncedBlock = exports.BlockError = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
13
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
14
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
+ var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
16
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
17
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
18
+ var COMMON_HEADERS = {
19
+ 'Content-Type': 'application/json',
20
+ Accept: 'application/json'
21
+ };
22
+ var BLOCK_SERVICE_API_URL = '/gateway/api/blocks/v1';
23
+ var BlockError = exports.BlockError = /*#__PURE__*/function (_Error) {
24
+ function BlockError(status) {
25
+ var _this;
26
+ (0, _classCallCheck2.default)(this, BlockError);
27
+ _this = _callSuper(this, BlockError, ["Block error"]);
28
+ _this.status = status;
29
+ return _this;
30
+ }
31
+ (0, _inherits2.default)(BlockError, _Error);
32
+ return (0, _createClass2.default)(BlockError);
33
+ }( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));
34
+ var getSyncedBlockContent = exports.getSyncedBlockContent = /*#__PURE__*/function () {
35
+ var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(_ref) {
36
+ var blockAri, response;
37
+ return _regenerator.default.wrap(function _callee$(_context) {
38
+ while (1) switch (_context.prev = _context.next) {
39
+ case 0:
40
+ blockAri = _ref.blockAri;
41
+ _context.next = 3;
42
+ return fetch("".concat(BLOCK_SERVICE_API_URL, "/block/").concat(blockAri), {
43
+ method: 'GET',
44
+ headers: COMMON_HEADERS
45
+ });
46
+ case 3:
47
+ response = _context.sent;
48
+ if (response.ok) {
49
+ _context.next = 6;
50
+ break;
51
+ }
52
+ throw new BlockError(response.status);
53
+ case 6:
54
+ _context.next = 8;
55
+ return response.json();
56
+ case 8:
57
+ return _context.abrupt("return", _context.sent);
58
+ case 9:
59
+ case "end":
60
+ return _context.stop();
61
+ }
62
+ }, _callee);
63
+ }));
64
+ return function getSyncedBlockContent(_x) {
65
+ return _ref2.apply(this, arguments);
66
+ };
67
+ }();
68
+ var deleteSyncedBlock = exports.deleteSyncedBlock = /*#__PURE__*/function () {
69
+ var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(_ref3) {
70
+ var blockAri, response;
71
+ return _regenerator.default.wrap(function _callee2$(_context2) {
72
+ while (1) switch (_context2.prev = _context2.next) {
73
+ case 0:
74
+ blockAri = _ref3.blockAri;
75
+ _context2.next = 3;
76
+ return fetch("".concat(BLOCK_SERVICE_API_URL, "/block/").concat(blockAri), {
77
+ method: 'DELETE',
78
+ headers: COMMON_HEADERS
79
+ });
80
+ case 3:
81
+ response = _context2.sent;
82
+ if (response.ok) {
83
+ _context2.next = 6;
84
+ break;
85
+ }
86
+ throw new BlockError(response.status);
87
+ case 6:
88
+ case "end":
89
+ return _context2.stop();
90
+ }
91
+ }, _callee2);
92
+ }));
93
+ return function deleteSyncedBlock(_x2) {
94
+ return _ref4.apply(this, arguments);
95
+ };
96
+ }();
97
+ var updateSyncedBlock = exports.updateSyncedBlock = /*#__PURE__*/function () {
98
+ var _ref6 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(_ref5) {
99
+ var blockAri, content, response;
100
+ return _regenerator.default.wrap(function _callee3$(_context3) {
101
+ while (1) switch (_context3.prev = _context3.next) {
102
+ case 0:
103
+ blockAri = _ref5.blockAri, content = _ref5.content;
104
+ _context3.next = 3;
105
+ return fetch("".concat(BLOCK_SERVICE_API_URL, "/block/").concat(blockAri), {
106
+ method: 'PUT',
107
+ headers: COMMON_HEADERS,
108
+ body: JSON.stringify({
109
+ content: content
110
+ })
111
+ });
112
+ case 3:
113
+ response = _context3.sent;
114
+ if (response.ok) {
115
+ _context3.next = 6;
116
+ break;
117
+ }
118
+ throw new BlockError(response.status);
119
+ case 6:
120
+ case "end":
121
+ return _context3.stop();
122
+ }
123
+ }, _callee3);
124
+ }));
125
+ return function updateSyncedBlock(_x3) {
126
+ return _ref6.apply(this, arguments);
127
+ };
128
+ }();
129
+ var createSyncedBlock = exports.createSyncedBlock = /*#__PURE__*/function () {
130
+ var _ref8 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(_ref7) {
131
+ var blockAri, blockInstanceId, sourceAri, product, content, response;
132
+ return _regenerator.default.wrap(function _callee4$(_context4) {
133
+ while (1) switch (_context4.prev = _context4.next) {
134
+ case 0:
135
+ blockAri = _ref7.blockAri, blockInstanceId = _ref7.blockInstanceId, sourceAri = _ref7.sourceAri, product = _ref7.product, content = _ref7.content;
136
+ _context4.next = 3;
137
+ return fetch("".concat(BLOCK_SERVICE_API_URL, "/block/").concat(blockAri), {
138
+ method: 'POST',
139
+ headers: COMMON_HEADERS,
140
+ body: JSON.stringify({
141
+ blockInstanceId: blockInstanceId,
142
+ sourceAri: sourceAri,
143
+ product: product,
144
+ content: content
145
+ })
146
+ });
147
+ case 3:
148
+ response = _context4.sent;
149
+ if (response.ok) {
150
+ _context4.next = 6;
151
+ break;
152
+ }
153
+ throw new BlockError(response.status);
154
+ case 6:
155
+ _context4.next = 8;
156
+ return response.json();
157
+ case 8:
158
+ return _context4.abrupt("return", _context4.sent);
159
+ case 9:
160
+ case "end":
161
+ return _context4.stop();
162
+ }
163
+ }, _callee4);
164
+ }));
165
+ return function createSyncedBlock(_x4) {
166
+ return _ref8.apply(this, arguments);
167
+ };
168
+ }();
@@ -5,10 +5,11 @@ export { SyncBlockError } from './common/types';
5
5
  export { useFetchSyncBlockData } from './hooks/useFetchSyncBlockData';
6
6
  export { useFetchSyncBlockTitle } from './hooks/useFetchSyncBlockTitle';
7
7
  export { useHandleContentChanges } from './hooks/useHandleContentChanges';
8
+ export { useMemoizedBlockServiceAPIProviders } from './providers/block-service/blockServiceAPI';
8
9
  export { createContentAPIProvidersWithDefaultKey, useMemoizedContentAPIProviders } from './providers/confluence/confluenceContentAPI';
9
10
  export { SyncBlockProvider as SyncedBlockProvider, useMemoizedSyncedBlockProvider } from './providers/syncBlockProvider';
10
11
  export { ReferenceSyncBlockStoreManager } from './store-manager/referenceSyncBlockStoreManager';
11
12
  export { SyncBlockStoreManager } from './store-manager/syncBlockStoreManager';
12
- export { getConfluencePageAri, getPageIdAndTypeFromAri } from './utils/ari';
13
+ export { blockResourceIdFromSourceAndLocalId, getConfluencePageAri, getLocalIdFromAri, getLocalIdFromResourceId, getPageARIFromResourceId, getPageIdAndTypeFromAri, resourceIdFromSourceAndLocalId } from './utils/ari';
13
14
  export { createSyncBlockNode, convertSyncBlockPMNodeToSyncBlockData, convertSyncBlockJSONNodeToSyncBlockNode } from './utils/utils';
14
15
  export { resolveSyncBlockInstance } from './utils/resolveSyncBlockInstance';