@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.
- package/CHANGELOG.md +14 -0
- package/dist/cjs/index.js +37 -0
- package/dist/cjs/providers/block-service/blockServiceAPI.js +238 -0
- package/dist/cjs/providers/confluence/confluenceContentAPI.js +5 -0
- package/dist/cjs/providers/syncBlockProvider.js +5 -0
- package/dist/cjs/store-manager/sourceSyncBlockStoreManager.js +2 -5
- package/dist/cjs/utils/ari.js +32 -4
- package/dist/cjs/utils/blockService.js +168 -0
- package/dist/es2019/index.js +2 -1
- package/dist/es2019/providers/block-service/blockServiceAPI.js +148 -0
- package/dist/es2019/providers/confluence/confluenceContentAPI.js +4 -1
- package/dist/es2019/providers/syncBlockProvider.js +3 -0
- package/dist/es2019/store-manager/sourceSyncBlockStoreManager.js +2 -5
- package/dist/es2019/utils/ari.js +31 -1
- package/dist/es2019/utils/blockService.js +71 -0
- package/dist/esm/index.js +2 -1
- package/dist/esm/providers/block-service/blockServiceAPI.js +231 -0
- package/dist/esm/providers/confluence/confluenceContentAPI.js +6 -1
- package/dist/esm/providers/syncBlockProvider.js +5 -0
- package/dist/esm/store-manager/sourceSyncBlockStoreManager.js +2 -5
- package/dist/esm/utils/ari.js +31 -3
- package/dist/esm/utils/blockService.js +161 -0
- package/dist/types/index.d.ts +2 -1
- package/dist/types/providers/block-service/blockServiceAPI.d.ts +21 -0
- package/dist/types/providers/confluence/confluenceContentAPI.d.ts +1 -0
- package/dist/types/providers/syncBlockProvider.d.ts +1 -0
- package/dist/types/providers/types.d.ts +8 -0
- package/dist/types/utils/ari.d.ts +15 -1
- package/dist/types/utils/blockService.d.ts +39 -0
- package/dist/types-ts4.5/index.d.ts +2 -1
- package/dist/types-ts4.5/providers/block-service/blockServiceAPI.d.ts +21 -0
- package/dist/types-ts4.5/providers/confluence/confluenceContentAPI.d.ts +1 -0
- package/dist/types-ts4.5/providers/syncBlockProvider.d.ts +1 -0
- package/dist/types-ts4.5/providers/types.d.ts +8 -0
- package/dist/types-ts4.5/utils/ari.d.ts +15 -1
- package/dist/types-ts4.5/utils/blockService.d.ts +39 -0
- 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
|
package/dist/cjs/utils/ari.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.resourceIdFromSourceAndLocalId = exports.getPageIdAndTypeFromAri = exports.getPageARIFromResourceId = exports.
|
|
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
|
+
}();
|
package/dist/es2019/index.js
CHANGED
|
@@ -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';
|