@atlaskit/editor-synced-block-provider 3.1.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.
- package/CHANGELOG.md +14 -0
- package/dist/cjs/clients/block-service/ari.js +13 -16
- package/dist/cjs/clients/block-service/blockService.js +37 -14
- package/dist/cjs/clients/confluence/ari.js +7 -40
- package/dist/cjs/clients/confluence/sourceInfo.js +3 -1
- package/dist/cjs/clients/jira/ari.js +5 -2
- package/dist/cjs/index.js +2 -27
- package/dist/cjs/providers/block-service/blockServiceAPI.js +71 -28
- package/dist/cjs/providers/syncBlockProvider.js +57 -38
- package/dist/cjs/store-manager/sourceSyncBlockStoreManager.js +5 -8
- package/dist/es2019/clients/block-service/ari.js +15 -16
- package/dist/es2019/clients/block-service/blockService.js +39 -7
- package/dist/es2019/clients/confluence/ari.js +11 -37
- package/dist/es2019/clients/confluence/sourceInfo.js +3 -1
- package/dist/es2019/clients/jira/ari.js +9 -2
- package/dist/es2019/index.js +2 -3
- package/dist/es2019/providers/block-service/blockServiceAPI.js +75 -28
- package/dist/es2019/providers/syncBlockProvider.js +45 -25
- package/dist/es2019/store-manager/sourceSyncBlockStoreManager.js +5 -8
- package/dist/esm/clients/block-service/ari.js +13 -16
- package/dist/esm/clients/block-service/blockService.js +37 -14
- package/dist/esm/clients/confluence/ari.js +6 -39
- package/dist/esm/clients/confluence/sourceInfo.js +3 -1
- package/dist/esm/clients/jira/ari.js +5 -2
- package/dist/esm/index.js +2 -3
- package/dist/esm/providers/block-service/blockServiceAPI.js +70 -27
- package/dist/esm/providers/syncBlockProvider.js +57 -38
- package/dist/esm/store-manager/sourceSyncBlockStoreManager.js +4 -8
- package/dist/types/clients/block-service/ari.d.ts +14 -4
- package/dist/types/clients/block-service/blockService.d.ts +1 -2
- package/dist/types/clients/confluence/ari.d.ts +8 -21
- package/dist/types/clients/jira/ari.d.ts +7 -2
- package/dist/types/index.d.ts +5 -6
- package/dist/types/providers/block-service/blockServiceAPI.d.ts +31 -6
- package/dist/types/providers/syncBlockProvider.d.ts +14 -13
- package/dist/types/providers/types.d.ts +9 -6
- package/dist/types-ts4.5/clients/block-service/ari.d.ts +14 -4
- package/dist/types-ts4.5/clients/block-service/blockService.d.ts +1 -2
- package/dist/types-ts4.5/clients/confluence/ari.d.ts +8 -21
- package/dist/types-ts4.5/clients/jira/ari.d.ts +7 -2
- package/dist/types-ts4.5/index.d.ts +5 -6
- package/dist/types-ts4.5/providers/block-service/blockServiceAPI.d.ts +31 -6
- package/dist/types-ts4.5/providers/syncBlockProvider.d.ts +14 -13
- package/dist/types-ts4.5/providers/types.d.ts +9 -6
- package/package.json +1 -1
- package/dist/cjs/clients/confluence/contentProperty.js +0 -284
- package/dist/cjs/providers/confluence/confluenceContentAPI.js +0 -446
- package/dist/es2019/clients/confluence/contentProperty.js +0 -288
- package/dist/es2019/providers/confluence/confluenceContentAPI.js +0 -310
- package/dist/esm/clients/confluence/contentProperty.js +0 -277
- package/dist/esm/providers/confluence/confluenceContentAPI.js +0 -440
- package/dist/types/clients/confluence/contentProperty.d.ts +0 -139
- package/dist/types/providers/confluence/confluenceContentAPI.d.ts +0 -44
- package/dist/types-ts4.5/clients/confluence/contentProperty.d.ts +0 -139
- package/dist/types-ts4.5/providers/confluence/confluenceContentAPI.d.ts +0 -44
|
@@ -3,32 +3,25 @@ import { useMemo } from 'react';
|
|
|
3
3
|
import { getPageIdAndTypeFromConfluencePageAri } from '../clients/confluence/ari';
|
|
4
4
|
import { fetchConfluencePageInfo } from '../clients/confluence/sourceInfo';
|
|
5
5
|
import { SyncBlockError } from '../common/types';
|
|
6
|
-
import { SyncBlockDataProvider } from '
|
|
6
|
+
import { SyncBlockDataProvider } from './types';
|
|
7
7
|
export class SyncBlockProvider extends SyncBlockDataProvider {
|
|
8
|
-
// the source document ARI; that the source sync block is on.
|
|
9
|
-
|
|
10
8
|
/**
|
|
11
9
|
* Constructor for the SyncBlockProvider
|
|
12
10
|
*
|
|
13
11
|
* @param fetchProvider
|
|
14
12
|
* @param writeProvider
|
|
15
|
-
* @param sourceId
|
|
16
13
|
* @param nestedRendererDataProviders
|
|
17
14
|
*/
|
|
18
|
-
constructor(fetchProvider, writeProvider
|
|
15
|
+
constructor(fetchProvider, writeProvider) {
|
|
19
16
|
super();
|
|
20
17
|
_defineProperty(this, "name", 'syncBlockProvider');
|
|
21
18
|
this.fetchProvider = fetchProvider;
|
|
22
19
|
this.writeProvider = writeProvider;
|
|
23
|
-
this.sourceId = sourceId;
|
|
24
20
|
this.providerOptions = {};
|
|
25
21
|
}
|
|
26
22
|
setProviderOptions(providerOptions) {
|
|
27
23
|
this.providerOptions = providerOptions;
|
|
28
24
|
}
|
|
29
|
-
getProduct() {
|
|
30
|
-
return this.writeProvider.product;
|
|
31
|
-
}
|
|
32
25
|
|
|
33
26
|
/**
|
|
34
27
|
* Check if the node is supported by the provider
|
|
@@ -88,11 +81,18 @@ export class SyncBlockProvider extends SyncBlockDataProvider {
|
|
|
88
81
|
* resourceId: resource id of the node if write successfully , error: reason for when write failed
|
|
89
82
|
*/
|
|
90
83
|
async writeNodesData(nodes, data) {
|
|
84
|
+
if (!this.writeProvider) {
|
|
85
|
+
return Promise.reject(new Error('Write provider not set'));
|
|
86
|
+
}
|
|
91
87
|
const results = await Promise.allSettled(nodes.map((_node, index) => {
|
|
88
|
+
var _this$writeProvider;
|
|
89
|
+
if (!this.writeProvider) {
|
|
90
|
+
return Promise.reject('Write provider not set');
|
|
91
|
+
}
|
|
92
92
|
if (!data[index].content) {
|
|
93
93
|
return Promise.reject('No Synced Block content to write');
|
|
94
94
|
}
|
|
95
|
-
return this.writeProvider.writeData(data[index]);
|
|
95
|
+
return (_this$writeProvider = this.writeProvider) === null || _this$writeProvider === void 0 ? void 0 : _this$writeProvider.writeData(data[index]);
|
|
96
96
|
}));
|
|
97
97
|
return results.map(result => {
|
|
98
98
|
if (result.status === 'fulfilled') {
|
|
@@ -105,6 +105,9 @@ export class SyncBlockProvider extends SyncBlockDataProvider {
|
|
|
105
105
|
});
|
|
106
106
|
}
|
|
107
107
|
createNodeData(data) {
|
|
108
|
+
if (!this.writeProvider) {
|
|
109
|
+
return Promise.reject(new Error('Write provider not set'));
|
|
110
|
+
}
|
|
108
111
|
return this.writeProvider.createData(data).then(result => result, error => ({
|
|
109
112
|
error
|
|
110
113
|
}));
|
|
@@ -118,7 +121,15 @@ export class SyncBlockProvider extends SyncBlockDataProvider {
|
|
|
118
121
|
* @returns Array of {resourceId?: string, error?: string}.
|
|
119
122
|
*/
|
|
120
123
|
async deleteNodesData(resourceIds) {
|
|
121
|
-
|
|
124
|
+
if (!this.writeProvider) {
|
|
125
|
+
return Promise.reject(new Error('Write provider not set'));
|
|
126
|
+
}
|
|
127
|
+
const results = await Promise.allSettled(resourceIds.map(resourceId => {
|
|
128
|
+
if (!this.writeProvider) {
|
|
129
|
+
return Promise.reject('Write provider not set');
|
|
130
|
+
}
|
|
131
|
+
return this.writeProvider.deleteData(resourceId);
|
|
132
|
+
}));
|
|
122
133
|
return results.map((result, index) => {
|
|
123
134
|
if (result.status === 'fulfilled') {
|
|
124
135
|
return result.value;
|
|
@@ -132,15 +143,6 @@ export class SyncBlockProvider extends SyncBlockDataProvider {
|
|
|
132
143
|
});
|
|
133
144
|
}
|
|
134
145
|
|
|
135
|
-
/**
|
|
136
|
-
* Get the source id
|
|
137
|
-
*
|
|
138
|
-
* @returns The source id
|
|
139
|
-
*/
|
|
140
|
-
getSourceId() {
|
|
141
|
-
return this.sourceId;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
146
|
/**
|
|
145
147
|
* Fetch the source info from the source id
|
|
146
148
|
*
|
|
@@ -163,10 +165,18 @@ export class SyncBlockProvider extends SyncBlockDataProvider {
|
|
|
163
165
|
return Promise.reject(new Error(`${sourceProduct} source product not supported`));
|
|
164
166
|
}
|
|
165
167
|
}
|
|
166
|
-
generateResourceId(
|
|
167
|
-
|
|
168
|
+
generateResourceId() {
|
|
169
|
+
const localId = crypto.randomUUID();
|
|
170
|
+
const resourceId = crypto.randomUUID();
|
|
171
|
+
return {
|
|
172
|
+
localId,
|
|
173
|
+
resourceId
|
|
174
|
+
};
|
|
168
175
|
}
|
|
169
176
|
generateResourceIdForReference(sourceId) {
|
|
177
|
+
if (!this.writeProvider) {
|
|
178
|
+
throw new Error('Write provider not set');
|
|
179
|
+
}
|
|
170
180
|
return this.writeProvider.generateResourceIdForReference(sourceId);
|
|
171
181
|
}
|
|
172
182
|
|
|
@@ -194,7 +204,9 @@ export class SyncBlockProvider extends SyncBlockDataProvider {
|
|
|
194
204
|
switch (sourceProduct) {
|
|
195
205
|
case 'confluence-page':
|
|
196
206
|
return {
|
|
197
|
-
contentId: getPageIdAndTypeFromConfluencePageAri(
|
|
207
|
+
contentId: getPageIdAndTypeFromConfluencePageAri({
|
|
208
|
+
ari: sourceAri
|
|
209
|
+
}).id,
|
|
198
210
|
contentProduct: sourceProduct
|
|
199
211
|
};
|
|
200
212
|
case 'jira-work-item':
|
|
@@ -204,11 +216,19 @@ export class SyncBlockProvider extends SyncBlockDataProvider {
|
|
|
204
216
|
}
|
|
205
217
|
}
|
|
206
218
|
updateReferenceData(blocks, noContent) {
|
|
219
|
+
if (!this.writeProvider) {
|
|
220
|
+
throw new Error('Write provider not set');
|
|
221
|
+
}
|
|
207
222
|
return this.writeProvider.updateReferenceData(blocks, noContent);
|
|
208
223
|
}
|
|
209
224
|
}
|
|
210
|
-
export const useMemoizedSyncedBlockProvider = (
|
|
211
|
-
|
|
225
|
+
export const useMemoizedSyncedBlockProvider = ({
|
|
226
|
+
fetchProvider,
|
|
227
|
+
writeProvider,
|
|
228
|
+
providerOptions,
|
|
229
|
+
getSSRData
|
|
230
|
+
}) => {
|
|
231
|
+
const syncBlockProvider = useMemo(() => new SyncBlockProvider(fetchProvider, writeProvider), [fetchProvider, writeProvider]);
|
|
212
232
|
syncBlockProvider.setProviderOptions(providerOptions);
|
|
213
233
|
const ssrData = getSSRData ? getSSRData() : undefined;
|
|
214
234
|
if (ssrData) {
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
-
// eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
|
|
3
|
-
import uuid from 'uuid';
|
|
4
2
|
import { logException } from '@atlaskit/editor-common/monitoring';
|
|
5
3
|
import { SyncBlockError } from '../common/types';
|
|
6
4
|
import { updateErrorPayload, createErrorPayload, deleteErrorPayload, updateCacheErrorPayload } from '../utils/errorHandling';
|
|
@@ -168,14 +166,13 @@ export class SourceSyncBlockStoreManager {
|
|
|
168
166
|
* @returns attributes for a new bodiedSyncBlock node
|
|
169
167
|
*/
|
|
170
168
|
generateBodiedSyncBlockAttrs() {
|
|
171
|
-
|
|
172
|
-
// eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
|
|
173
|
-
const localId = uuid();
|
|
174
|
-
const sourceId = (_this$dataProvider = this.dataProvider) === null || _this$dataProvider === void 0 ? void 0 : _this$dataProvider.getSourceId();
|
|
175
|
-
if (!this.dataProvider || !sourceId) {
|
|
169
|
+
if (!this.dataProvider) {
|
|
176
170
|
throw new Error('Data provider not set or source id not set');
|
|
177
171
|
}
|
|
178
|
-
const
|
|
172
|
+
const {
|
|
173
|
+
resourceId,
|
|
174
|
+
localId
|
|
175
|
+
} = this.dataProvider.generateResourceId();
|
|
179
176
|
return {
|
|
180
177
|
resourceId,
|
|
181
178
|
localId
|
|
@@ -2,32 +2,29 @@
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Generates the block ARI from the source page ARI and the source block's resource ID.
|
|
5
|
-
* @param
|
|
5
|
+
* @param cloudId - the cloudId of the block. E.G the cloudId of the confluence page, or the cloudId of the Jira instance
|
|
6
|
+
* @param parentId - the parentId of the block. E.G the pageId for a confluence page, or the issueId for a Jira work item
|
|
6
7
|
* @param resourceId - the resource ID of the block node. A randomly generated UUID
|
|
8
|
+
* @param product - the product of the block. E.G 'confluence-page', 'jira-work-item'
|
|
7
9
|
* @returns the block ARI. E.G ari:cloud:blocks:<cloudId>:synced-block/<product>/<pageId>/<resourceId>
|
|
8
10
|
*/
|
|
9
|
-
export var generateBlockAri = function generateBlockAri(
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
var pageId = match[3];
|
|
16
|
-
return "ari:cloud:blocks:".concat(cloudId, ":synced-block/").concat(product, "/").concat(pageId, "/").concat(resourceId);
|
|
11
|
+
export var generateBlockAri = function generateBlockAri(_ref) {
|
|
12
|
+
var cloudId = _ref.cloudId,
|
|
13
|
+
parentId = _ref.parentId,
|
|
14
|
+
product = _ref.product,
|
|
15
|
+
resourceId = _ref.resourceId;
|
|
16
|
+
return "ari:cloud:blocks:".concat(cloudId, ":synced-block/").concat(product, "/").concat(parentId, "/").concat(resourceId);
|
|
17
17
|
};
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* Generates the block ARI from the reference synced block ARI and the resource ID
|
|
21
|
-
* @param
|
|
21
|
+
* @param cloudId - the cloudId of the block. E.G the cloudId of the confluence page, or the cloudId of the Jira instance
|
|
22
22
|
* @param resourceId - the resource ID of the reference synced block. E.G confluence-page/pageId/sourceResourceId
|
|
23
23
|
* @returns the block ARI. E.G ari:cloud:blocks:<cloudId>:synced-block/<product>/<pageId>/<resourceId>
|
|
24
24
|
*/
|
|
25
|
-
export var generateBlockAriFromReference = function generateBlockAriFromReference(
|
|
26
|
-
var
|
|
27
|
-
|
|
28
|
-
throw new Error("Invalid source ARI: ".concat(sourceAri));
|
|
29
|
-
}
|
|
30
|
-
var cloudId = match[1];
|
|
25
|
+
export var generateBlockAriFromReference = function generateBlockAriFromReference(_ref2) {
|
|
26
|
+
var cloudId = _ref2.cloudId,
|
|
27
|
+
resourceId = _ref2.resourceId;
|
|
31
28
|
return "ari:cloud:blocks:".concat(cloudId, ":synced-block/").concat(resourceId);
|
|
32
29
|
};
|
|
33
30
|
|
|
@@ -13,11 +13,10 @@ export var isBlockContentResponse = function isBlockContentResponse(response) {
|
|
|
13
13
|
var content = response.content;
|
|
14
14
|
return typeof content === 'string';
|
|
15
15
|
};
|
|
16
|
-
|
|
17
16
|
/**
|
|
18
17
|
* Retrieves all synced blocks referenced in a document.
|
|
19
18
|
*
|
|
20
|
-
* Calls the Block Service API
|
|
19
|
+
* Calls the Block Service GraphQL API: `blockService_getDocumentReferenceBlocks`
|
|
21
20
|
*
|
|
22
21
|
* @param documentAri - The ARI of the document to fetch synced blocks for
|
|
23
22
|
* @returns A promise containing arrays of successfully fetched blocks and any errors encountered
|
|
@@ -54,32 +53,51 @@ export var isBlockContentResponse = function isBlockContentResponse(response) {
|
|
|
54
53
|
* ]
|
|
55
54
|
* }
|
|
56
55
|
* ```
|
|
57
|
-
* Check https://block-service.dev.atl-paas.net/ for latest API documentation.
|
|
58
56
|
*/
|
|
59
57
|
export var getReferenceSyncedBlocks = /*#__PURE__*/function () {
|
|
60
58
|
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(documentAri) {
|
|
61
|
-
var response;
|
|
59
|
+
var bodyData, response, result;
|
|
62
60
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
63
61
|
while (1) switch (_context.prev = _context.next) {
|
|
64
62
|
case 0:
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
63
|
+
bodyData = {
|
|
64
|
+
query: buildGetDocumentReferenceBlocksQuery(documentAri),
|
|
65
|
+
operationName: GET_DOCUMENT_REFERENCE_BLOCKS_OPERATION_NAME
|
|
66
|
+
};
|
|
67
|
+
_context.next = 3;
|
|
68
|
+
return fetchWithRetry(GRAPHQL_ENDPOINT, {
|
|
69
|
+
method: 'POST',
|
|
70
|
+
headers: COMMON_HEADERS,
|
|
71
|
+
body: JSON.stringify(bodyData)
|
|
69
72
|
});
|
|
70
|
-
case
|
|
73
|
+
case 3:
|
|
71
74
|
response = _context.sent;
|
|
72
75
|
if (response.ok) {
|
|
73
|
-
_context.next =
|
|
76
|
+
_context.next = 6;
|
|
74
77
|
break;
|
|
75
78
|
}
|
|
76
79
|
throw new BlockError(response.status);
|
|
77
|
-
case
|
|
78
|
-
_context.next =
|
|
80
|
+
case 6:
|
|
81
|
+
_context.next = 8;
|
|
79
82
|
return response.json();
|
|
80
|
-
case 7:
|
|
81
|
-
return _context.abrupt("return", _context.sent);
|
|
82
83
|
case 8:
|
|
84
|
+
result = _context.sent;
|
|
85
|
+
if (!(result.errors && result.errors.length > 0)) {
|
|
86
|
+
_context.next = 11;
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
throw new Error(result.errors.map(function (e) {
|
|
90
|
+
return e.message;
|
|
91
|
+
}).join(', '));
|
|
92
|
+
case 11:
|
|
93
|
+
if (result.data) {
|
|
94
|
+
_context.next = 13;
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
97
|
+
throw new Error('No data returned from GraphQL query');
|
|
98
|
+
case 13:
|
|
99
|
+
return _context.abrupt("return", result.data.blockService_getDocumentReferenceBlocks);
|
|
100
|
+
case 14:
|
|
83
101
|
case "end":
|
|
84
102
|
return _context.stop();
|
|
85
103
|
}
|
|
@@ -94,6 +112,11 @@ var COMMON_HEADERS = {
|
|
|
94
112
|
Accept: 'application/json'
|
|
95
113
|
};
|
|
96
114
|
var BLOCK_SERVICE_API_URL = '/gateway/api/blocks/v1';
|
|
115
|
+
var GRAPHQL_ENDPOINT = '/gateway/api/graphql';
|
|
116
|
+
var GET_DOCUMENT_REFERENCE_BLOCKS_OPERATION_NAME = 'EDITOR_SYNCED_BLOCK_GET_DOCUMENT_REFERENCE_BLOCKS';
|
|
117
|
+
var buildGetDocumentReferenceBlocksQuery = function buildGetDocumentReferenceBlocksQuery(documentAri) {
|
|
118
|
+
return "query ".concat(GET_DOCUMENT_REFERENCE_BLOCKS_OPERATION_NAME, " {\n\tblockService_getDocumentReferenceBlocks(documentAri: \"").concat(documentAri, "\") {\n\t\tblocks {\n\t\t\tblockAri\n\t\t\tblockInstanceId\n\t\t\tcontent\n\t\t\tcreatedAt\n\t\t\tcreatedBy\n\t\t\tproduct\n\t\t\tsourceAri\n\t\t\tstatus\n\t\t\tversion\n\t\t}\n\t\terrors {\n\t\t\tblockAri\n\t\t\tcode\n\t\t\treason\n\t\t}\n\t}\n}");
|
|
119
|
+
};
|
|
97
120
|
export var BlockError = /*#__PURE__*/function (_Error) {
|
|
98
121
|
function BlockError(status) {
|
|
99
122
|
var _this;
|
|
@@ -11,8 +11,10 @@
|
|
|
11
11
|
* @param pageType - the type of the page
|
|
12
12
|
* @returns the Confluence page ARI
|
|
13
13
|
*/
|
|
14
|
-
export var getConfluencePageAri = function getConfluencePageAri(
|
|
15
|
-
var
|
|
14
|
+
export var getConfluencePageAri = function getConfluencePageAri(_ref) {
|
|
15
|
+
var pageId = _ref.pageId,
|
|
16
|
+
cloudId = _ref.cloudId,
|
|
17
|
+
pageType = _ref.pageType;
|
|
16
18
|
return "ari:cloud:confluence:".concat(cloudId, ":").concat(pageType, "/").concat(pageId);
|
|
17
19
|
};
|
|
18
20
|
|
|
@@ -21,7 +23,8 @@ export var getConfluencePageAri = function getConfluencePageAri(pageId, cloudId)
|
|
|
21
23
|
* @param ari - the Confluence page ARI
|
|
22
24
|
* @returns the page ID and type
|
|
23
25
|
*/
|
|
24
|
-
export var getPageIdAndTypeFromConfluencePageAri = function getPageIdAndTypeFromConfluencePageAri(
|
|
26
|
+
export var getPageIdAndTypeFromConfluencePageAri = function getPageIdAndTypeFromConfluencePageAri(_ref2) {
|
|
27
|
+
var ari = _ref2.ari;
|
|
25
28
|
var match = ari.match(/ari:cloud:confluence:[^:]+:(page|blogpost)\/(\d+)/);
|
|
26
29
|
if (match !== null && match !== void 0 && match[2]) {
|
|
27
30
|
return {
|
|
@@ -30,40 +33,4 @@ export var getPageIdAndTypeFromConfluencePageAri = function getPageIdAndTypeFrom
|
|
|
30
33
|
};
|
|
31
34
|
}
|
|
32
35
|
throw new Error("Invalid page ARI: ".concat(ari));
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Extracts the local ID from the Confluence page content property resource ID
|
|
37
|
-
* @param resourceId - the Confluence page content property resource ID
|
|
38
|
-
* @returns the local ID
|
|
39
|
-
*/
|
|
40
|
-
export var getLocalIdFromContentPropertyResourceId = function getLocalIdFromContentPropertyResourceId(resourceId) {
|
|
41
|
-
var match = resourceId.match(/ari:cloud:confluence:[^:]+:(page|blogpost)\/\d+\/([a-zA-Z0-9-]+)/);
|
|
42
|
-
if (match !== null && match !== void 0 && match[2]) {
|
|
43
|
-
return match[2];
|
|
44
|
-
}
|
|
45
|
-
throw new Error("Invalid resourceId: ".concat(resourceId));
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Extracts the Confluence page ARI from the Confluence content property resource ID
|
|
50
|
-
* @param resourceId - the Confluence content property resource ID
|
|
51
|
-
* @returns the Confluence page ARI
|
|
52
|
-
*/
|
|
53
|
-
export var getPageAriFromContentPropertyResourceId = function getPageAriFromContentPropertyResourceId(resourceId) {
|
|
54
|
-
var match = resourceId.match(/(ari:cloud:confluence:[^:]+:(page|blogpost)\/\d+)\/([a-zA-Z0-9-]+)$/);
|
|
55
|
-
if (match !== null && match !== void 0 && match[1]) {
|
|
56
|
-
return match[1];
|
|
57
|
-
}
|
|
58
|
-
throw new Error("Invalid resourceId: ".concat(resourceId));
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Generates the Confluence page content property resource ID from the source ID and local ID
|
|
63
|
-
* @param sourceId - the source ID
|
|
64
|
-
* @param localId - the local ID
|
|
65
|
-
* @returns the Confluence page content property resource ID
|
|
66
|
-
*/
|
|
67
|
-
export var resourceIdFromConfluencePageSourceIdAndLocalId = function resourceIdFromConfluencePageSourceIdAndLocalId(sourceId, localId) {
|
|
68
|
-
return "".concat(sourceId, "/").concat(localId);
|
|
69
36
|
};
|
|
@@ -73,7 +73,9 @@ export var fetchConfluencePageInfo = /*#__PURE__*/function () {
|
|
|
73
73
|
while (1) switch (_context2.prev = _context2.next) {
|
|
74
74
|
case 0:
|
|
75
75
|
_context2.prev = 0;
|
|
76
|
-
_getPageIdAndTypeFrom = getPageIdAndTypeFromConfluencePageAri(
|
|
76
|
+
_getPageIdAndTypeFrom = getPageIdAndTypeFromConfluencePageAri({
|
|
77
|
+
ari: pageAri
|
|
78
|
+
}), pageType = _getPageIdAndTypeFrom.type;
|
|
77
79
|
_context2.next = 4;
|
|
78
80
|
return getConfluenceSourceInfo(pageAri);
|
|
79
81
|
case 4:
|
|
@@ -6,7 +6,9 @@
|
|
|
6
6
|
* @param cloudId - the cloud ID
|
|
7
7
|
* @returns the Jira work item ARI
|
|
8
8
|
*/
|
|
9
|
-
export var getJiraWorkItemAri = function getJiraWorkItemAri(
|
|
9
|
+
export var getJiraWorkItemAri = function getJiraWorkItemAri(_ref) {
|
|
10
|
+
var cloudId = _ref.cloudId,
|
|
11
|
+
workItemId = _ref.workItemId;
|
|
10
12
|
return "ari:cloud:jira:".concat(cloudId, ":issue/").concat(workItemId);
|
|
11
13
|
};
|
|
12
14
|
|
|
@@ -15,7 +17,8 @@ export var getJiraWorkItemAri = function getJiraWorkItemAri(workItemId, cloudId)
|
|
|
15
17
|
* @param ari - the Jira work item ARI
|
|
16
18
|
* @returns the Jira work item ID
|
|
17
19
|
*/
|
|
18
|
-
export var getJiraWorkItemIdFromAri = function getJiraWorkItemIdFromAri(
|
|
20
|
+
export var getJiraWorkItemIdFromAri = function getJiraWorkItemIdFromAri(_ref2) {
|
|
21
|
+
var ari = _ref2.ari;
|
|
19
22
|
var match = ari.match(/ari:cloud:jira:([^:]+):issue\/(\d+)/);
|
|
20
23
|
if (match !== null && match !== void 0 && match[2]) {
|
|
21
24
|
return match[2];
|
package/dist/esm/index.js
CHANGED
|
@@ -10,12 +10,11 @@ export { useHandleContentChanges } from './hooks/useHandleContentChanges';
|
|
|
10
10
|
|
|
11
11
|
// clients
|
|
12
12
|
export { generateBlockAri, generateBlockAriFromReference, getLocalIdFromBlockResourceId } from './clients/block-service/ari';
|
|
13
|
-
export { getConfluencePageAri,
|
|
13
|
+
export { getConfluencePageAri, getPageIdAndTypeFromConfluencePageAri } from './clients/confluence/ari';
|
|
14
14
|
export { getJiraWorkItemAri, getJiraWorkItemIdFromAri } from './clients/jira/ari';
|
|
15
15
|
|
|
16
16
|
// providers
|
|
17
|
-
export { useMemoizedBlockServiceAPIProviders } from './providers/block-service/blockServiceAPI';
|
|
18
|
-
export { createContentAPIProvidersWithDefaultKey, useMemoizedContentAPIProviders } from './providers/confluence/confluenceContentAPI';
|
|
17
|
+
export { useMemoizedBlockServiceAPIProviders, useMemoizedBlockServiceFetchOnlyAPIProvider } from './providers/block-service/blockServiceAPI';
|
|
19
18
|
export { fetchConfluencePageInfo } from './clients/confluence/sourceInfo';
|
|
20
19
|
export { SyncBlockProvider as SyncedBlockProvider, useMemoizedSyncedBlockProvider } from './providers/syncBlockProvider';
|
|
21
20
|
|
|
@@ -104,14 +104,14 @@ export var fetchReferences = /*#__PURE__*/function () {
|
|
|
104
104
|
return _ref.apply(this, arguments);
|
|
105
105
|
};
|
|
106
106
|
}();
|
|
107
|
-
|
|
108
107
|
/**
|
|
109
108
|
* ADFFetchProvider implementation that fetches synced block data from Block Service API
|
|
110
109
|
*/
|
|
111
110
|
var BlockServiceADFFetchProvider = /*#__PURE__*/function () {
|
|
112
|
-
function BlockServiceADFFetchProvider(
|
|
111
|
+
function BlockServiceADFFetchProvider(_ref3) {
|
|
112
|
+
var cloudId = _ref3.cloudId;
|
|
113
113
|
_classCallCheck(this, BlockServiceADFFetchProvider);
|
|
114
|
-
this.
|
|
114
|
+
this.cloudId = cloudId;
|
|
115
115
|
}
|
|
116
116
|
|
|
117
117
|
// resourceId of the reference synced block.
|
|
@@ -124,7 +124,10 @@ var BlockServiceADFFetchProvider = /*#__PURE__*/function () {
|
|
|
124
124
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
125
125
|
while (1) switch (_context2.prev = _context2.next) {
|
|
126
126
|
case 0:
|
|
127
|
-
blockAri = generateBlockAriFromReference(
|
|
127
|
+
blockAri = generateBlockAriFromReference({
|
|
128
|
+
cloudId: this.cloudId,
|
|
129
|
+
resourceId: resourceId
|
|
130
|
+
});
|
|
128
131
|
_context2.prev = 1;
|
|
129
132
|
_context2.next = 4;
|
|
130
133
|
return getSyncedBlockContent({
|
|
@@ -188,11 +191,17 @@ var BlockServiceADFFetchProvider = /*#__PURE__*/function () {
|
|
|
188
191
|
* ADFWriteProvider implementation that writes synced block data to Block Service API
|
|
189
192
|
*/
|
|
190
193
|
var BlockServiceADFWriteProvider = /*#__PURE__*/function () {
|
|
191
|
-
function BlockServiceADFWriteProvider(
|
|
194
|
+
function BlockServiceADFWriteProvider(_ref4) {
|
|
195
|
+
var cloudId = _ref4.cloudId,
|
|
196
|
+
parentAri = _ref4.parentAri,
|
|
197
|
+
parentId = _ref4.parentId,
|
|
198
|
+
product = _ref4.product,
|
|
199
|
+
getVersion = _ref4.getVersion;
|
|
192
200
|
_classCallCheck(this, BlockServiceADFWriteProvider);
|
|
193
|
-
this.
|
|
201
|
+
this.cloudId = cloudId;
|
|
202
|
+
this.parentAri = parentAri;
|
|
203
|
+
this.parentId = parentId;
|
|
194
204
|
this.product = product;
|
|
195
|
-
this.sourceDocumentId = sourceDocumentId;
|
|
196
205
|
this.getVersion = getVersion;
|
|
197
206
|
}
|
|
198
207
|
|
|
@@ -206,7 +215,12 @@ var BlockServiceADFWriteProvider = /*#__PURE__*/function () {
|
|
|
206
215
|
while (1) switch (_context3.prev = _context3.next) {
|
|
207
216
|
case 0:
|
|
208
217
|
resourceId = data.resourceId;
|
|
209
|
-
blockAri = generateBlockAri(
|
|
218
|
+
blockAri = generateBlockAri({
|
|
219
|
+
cloudId: this.cloudId,
|
|
220
|
+
parentId: this.parentId,
|
|
221
|
+
product: this.product,
|
|
222
|
+
resourceId: resourceId
|
|
223
|
+
});
|
|
210
224
|
stepVersion = this.getVersion ? this.getVersion() : undefined;
|
|
211
225
|
_context3.prev = 3;
|
|
212
226
|
_context3.next = 6;
|
|
@@ -255,14 +269,19 @@ var BlockServiceADFWriteProvider = /*#__PURE__*/function () {
|
|
|
255
269
|
while (1) switch (_context4.prev = _context4.next) {
|
|
256
270
|
case 0:
|
|
257
271
|
resourceId = data.resourceId;
|
|
258
|
-
blockAri = generateBlockAri(
|
|
272
|
+
blockAri = generateBlockAri({
|
|
273
|
+
cloudId: this.cloudId,
|
|
274
|
+
parentId: this.parentId,
|
|
275
|
+
product: this.product,
|
|
276
|
+
resourceId: resourceId
|
|
277
|
+
});
|
|
259
278
|
stepVersion = this.getVersion ? this.getVersion() : undefined;
|
|
260
279
|
_context4.prev = 3;
|
|
261
280
|
_context4.next = 6;
|
|
262
281
|
return createSyncedBlock({
|
|
263
282
|
blockAri: blockAri,
|
|
264
283
|
blockInstanceId: data.blockInstanceId,
|
|
265
|
-
sourceAri: this.
|
|
284
|
+
sourceAri: this.parentAri,
|
|
266
285
|
product: this.product,
|
|
267
286
|
content: JSON.stringify(data.content),
|
|
268
287
|
stepVersion: stepVersion
|
|
@@ -306,7 +325,12 @@ var BlockServiceADFWriteProvider = /*#__PURE__*/function () {
|
|
|
306
325
|
return _regeneratorRuntime.wrap(function _callee5$(_context5) {
|
|
307
326
|
while (1) switch (_context5.prev = _context5.next) {
|
|
308
327
|
case 0:
|
|
309
|
-
blockAri = generateBlockAri(
|
|
328
|
+
blockAri = generateBlockAri({
|
|
329
|
+
cloudId: this.cloudId,
|
|
330
|
+
parentId: this.parentId,
|
|
331
|
+
product: this.product,
|
|
332
|
+
resourceId: resourceId
|
|
333
|
+
});
|
|
310
334
|
_context5.prev = 1;
|
|
311
335
|
_context5.next = 4;
|
|
312
336
|
return deleteSyncedBlock({
|
|
@@ -359,7 +383,7 @@ var BlockServiceADFWriteProvider = /*#__PURE__*/function () {
|
|
|
359
383
|
}, {
|
|
360
384
|
key: "generateResourceIdForReference",
|
|
361
385
|
value: function generateResourceIdForReference(sourceId) {
|
|
362
|
-
return "".concat(this.product, "/").concat(this.
|
|
386
|
+
return "".concat(this.product, "/").concat(this.parentId, "/").concat(sourceId);
|
|
363
387
|
}
|
|
364
388
|
}, {
|
|
365
389
|
key: "generateResourceId",
|
|
@@ -377,10 +401,13 @@ var BlockServiceADFWriteProvider = /*#__PURE__*/function () {
|
|
|
377
401
|
_context6.prev = 0;
|
|
378
402
|
_context6.next = 3;
|
|
379
403
|
return updateReferenceSyncedBlockOnDocument({
|
|
380
|
-
documentAri: this.
|
|
404
|
+
documentAri: this.parentAri,
|
|
381
405
|
blocks: blocks.map(function (block) {
|
|
382
406
|
return {
|
|
383
|
-
blockAri: generateBlockAriFromReference(
|
|
407
|
+
blockAri: generateBlockAriFromReference({
|
|
408
|
+
cloudId: _this.cloudId,
|
|
409
|
+
resourceId: block.resourceId
|
|
410
|
+
}),
|
|
384
411
|
blockInstanceId: block.localId
|
|
385
412
|
};
|
|
386
413
|
}),
|
|
@@ -419,19 +446,35 @@ var BlockServiceADFWriteProvider = /*#__PURE__*/function () {
|
|
|
419
446
|
}()
|
|
420
447
|
}]);
|
|
421
448
|
}();
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
return {
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
449
|
+
export var useMemoizedBlockServiceAPIProviders = function useMemoizedBlockServiceAPIProviders(_ref5) {
|
|
450
|
+
var cloudId = _ref5.cloudId,
|
|
451
|
+
parentAri = _ref5.parentAri,
|
|
452
|
+
parentId = _ref5.parentId,
|
|
453
|
+
product = _ref5.product,
|
|
454
|
+
getVersion = _ref5.getVersion;
|
|
455
|
+
return useMemo(function () {
|
|
456
|
+
return {
|
|
457
|
+
fetchProvider: new BlockServiceADFFetchProvider({
|
|
458
|
+
cloudId: cloudId
|
|
459
|
+
}),
|
|
460
|
+
writeProvider: new BlockServiceADFWriteProvider({
|
|
461
|
+
cloudId: cloudId,
|
|
462
|
+
parentAri: parentAri,
|
|
463
|
+
parentId: parentId,
|
|
464
|
+
product: product,
|
|
465
|
+
getVersion: getVersion
|
|
466
|
+
})
|
|
467
|
+
};
|
|
468
|
+
}, [cloudId, parentAri, parentId, product, getVersion]);
|
|
432
469
|
};
|
|
433
|
-
export var
|
|
470
|
+
export var useMemoizedBlockServiceFetchOnlyAPIProvider = function useMemoizedBlockServiceFetchOnlyAPIProvider(_ref6) {
|
|
471
|
+
var cloudId = _ref6.cloudId;
|
|
434
472
|
return useMemo(function () {
|
|
435
|
-
return
|
|
436
|
-
|
|
473
|
+
return {
|
|
474
|
+
fetchProvider: new BlockServiceADFFetchProvider({
|
|
475
|
+
cloudId: cloudId
|
|
476
|
+
}),
|
|
477
|
+
writeProvider: undefined
|
|
478
|
+
};
|
|
479
|
+
}, [cloudId]);
|
|
437
480
|
};
|