@atlaskit/editor-synced-block-provider 3.2.0 → 3.2.2

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 (55) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/clients/block-service/ari.js +13 -16
  3. package/dist/cjs/clients/confluence/ari.js +7 -40
  4. package/dist/cjs/clients/confluence/sourceInfo.js +3 -1
  5. package/dist/cjs/clients/jira/ari.js +5 -2
  6. package/dist/cjs/index.js +22 -23
  7. package/dist/cjs/providers/block-service/blockServiceAPI.js +89 -26
  8. package/dist/cjs/providers/syncBlockProvider.js +82 -39
  9. package/dist/cjs/store-manager/sourceSyncBlockStoreManager.js +5 -8
  10. package/dist/cjs/store-manager/syncBlockStoreManager.js +12 -2
  11. package/dist/es2019/clients/block-service/ari.js +15 -16
  12. package/dist/es2019/clients/confluence/ari.js +11 -37
  13. package/dist/es2019/clients/confluence/sourceInfo.js +3 -1
  14. package/dist/es2019/clients/jira/ari.js +9 -2
  15. package/dist/es2019/index.js +4 -5
  16. package/dist/es2019/providers/block-service/blockServiceAPI.js +92 -27
  17. package/dist/es2019/providers/syncBlockProvider.js +71 -25
  18. package/dist/es2019/store-manager/sourceSyncBlockStoreManager.js +5 -8
  19. package/dist/es2019/store-manager/syncBlockStoreManager.js +12 -1
  20. package/dist/esm/clients/block-service/ari.js +13 -16
  21. package/dist/esm/clients/confluence/ari.js +6 -39
  22. package/dist/esm/clients/confluence/sourceInfo.js +3 -1
  23. package/dist/esm/clients/jira/ari.js +5 -2
  24. package/dist/esm/index.js +4 -5
  25. package/dist/esm/providers/block-service/blockServiceAPI.js +88 -25
  26. package/dist/esm/providers/syncBlockProvider.js +81 -38
  27. package/dist/esm/store-manager/sourceSyncBlockStoreManager.js +4 -8
  28. package/dist/esm/store-manager/syncBlockStoreManager.js +11 -1
  29. package/dist/types/clients/block-service/ari.d.ts +14 -4
  30. package/dist/types/clients/confluence/ari.d.ts +8 -21
  31. package/dist/types/clients/jira/ari.d.ts +7 -2
  32. package/dist/types/index.d.ts +7 -8
  33. package/dist/types/providers/block-service/blockServiceAPI.d.ts +39 -6
  34. package/dist/types/providers/syncBlockProvider.d.ts +15 -13
  35. package/dist/types/providers/types.d.ts +9 -6
  36. package/dist/types/store-manager/syncBlockStoreManager.d.ts +4 -0
  37. package/dist/types-ts4.5/clients/block-service/ari.d.ts +14 -4
  38. package/dist/types-ts4.5/clients/confluence/ari.d.ts +8 -21
  39. package/dist/types-ts4.5/clients/jira/ari.d.ts +7 -2
  40. package/dist/types-ts4.5/index.d.ts +7 -8
  41. package/dist/types-ts4.5/providers/block-service/blockServiceAPI.d.ts +39 -6
  42. package/dist/types-ts4.5/providers/syncBlockProvider.d.ts +15 -13
  43. package/dist/types-ts4.5/providers/types.d.ts +9 -6
  44. package/dist/types-ts4.5/store-manager/syncBlockStoreManager.d.ts +4 -0
  45. package/package.json +1 -1
  46. package/dist/cjs/clients/confluence/contentProperty.js +0 -284
  47. package/dist/cjs/providers/confluence/confluenceContentAPI.js +0 -446
  48. package/dist/es2019/clients/confluence/contentProperty.js +0 -288
  49. package/dist/es2019/providers/confluence/confluenceContentAPI.js +0 -310
  50. package/dist/esm/clients/confluence/contentProperty.js +0 -277
  51. package/dist/esm/providers/confluence/confluenceContentAPI.js +0 -440
  52. package/dist/types/clients/confluence/contentProperty.d.ts +0 -139
  53. package/dist/types/providers/confluence/confluenceContentAPI.d.ts +0 -44
  54. package/dist/types-ts4.5/clients/confluence/contentProperty.d.ts +0 -139
  55. package/dist/types-ts4.5/providers/confluence/confluenceContentAPI.d.ts +0 -44
@@ -77,19 +77,23 @@ export const fetchReferences = async documentAri => {
77
77
  }));
78
78
  return [...blocksInstances, ...errorInstances];
79
79
  };
80
-
81
80
  /**
82
81
  * ADFFetchProvider implementation that fetches synced block data from Block Service API
83
82
  */
84
83
  class BlockServiceADFFetchProvider {
85
- constructor(sourceAri) {
86
- this.sourceAri = sourceAri;
84
+ constructor({
85
+ cloudId
86
+ }) {
87
+ this.cloudId = cloudId;
87
88
  }
88
89
 
89
90
  // resourceId of the reference synced block.
90
91
  // the ARI must be constructed to call the block service API
91
92
  async fetchData(resourceId) {
92
- const blockAri = generateBlockAriFromReference(this.sourceAri, resourceId);
93
+ const blockAri = generateBlockAriFromReference({
94
+ cloudId: this.cloudId,
95
+ resourceId
96
+ });
93
97
  try {
94
98
  const blockContentResponse = await getSyncedBlockContent({
95
99
  blockAri
@@ -129,15 +133,21 @@ class BlockServiceADFFetchProvider {
129
133
  }
130
134
  }
131
135
  }
132
-
133
136
  /**
134
137
  * ADFWriteProvider implementation that writes synced block data to Block Service API
135
138
  */
136
139
  class BlockServiceADFWriteProvider {
137
- constructor(sourceAri, product, sourceDocumentId, getVersion) {
138
- this.sourceAri = sourceAri;
140
+ constructor({
141
+ cloudId,
142
+ parentAri,
143
+ parentId,
144
+ product,
145
+ getVersion
146
+ }) {
147
+ this.cloudId = cloudId;
148
+ this.parentAri = parentAri;
149
+ this.parentId = parentId;
139
150
  this.product = product;
140
- this.sourceDocumentId = sourceDocumentId;
141
151
  this.getVersion = getVersion;
142
152
  }
143
153
 
@@ -146,7 +156,12 @@ class BlockServiceADFWriteProvider {
146
156
  const {
147
157
  resourceId
148
158
  } = data;
149
- const blockAri = generateBlockAri(this.sourceAri, resourceId, this.product);
159
+ const blockAri = generateBlockAri({
160
+ cloudId: this.cloudId,
161
+ parentId: this.parentId,
162
+ product: this.product,
163
+ resourceId
164
+ });
150
165
  const stepVersion = this.getVersion ? this.getVersion() : undefined;
151
166
  try {
152
167
  // Try update existing block's content
@@ -175,13 +190,18 @@ class BlockServiceADFWriteProvider {
175
190
  const {
176
191
  resourceId
177
192
  } = data;
178
- const blockAri = generateBlockAri(this.sourceAri, resourceId, this.product);
193
+ const blockAri = generateBlockAri({
194
+ cloudId: this.cloudId,
195
+ parentId: this.parentId,
196
+ product: this.product,
197
+ resourceId
198
+ });
179
199
  const stepVersion = this.getVersion ? this.getVersion() : undefined;
180
200
  try {
181
201
  await createSyncedBlock({
182
202
  blockAri,
183
203
  blockInstanceId: data.blockInstanceId,
184
- sourceAri: this.sourceAri,
204
+ sourceAri: this.parentAri,
185
205
  product: this.product,
186
206
  content: JSON.stringify(data.content),
187
207
  stepVersion
@@ -205,7 +225,12 @@ class BlockServiceADFWriteProvider {
205
225
 
206
226
  // soft deletes the source synced block
207
227
  async deleteData(resourceId) {
208
- const blockAri = generateBlockAri(this.sourceAri, resourceId, this.product);
228
+ const blockAri = generateBlockAri({
229
+ cloudId: this.cloudId,
230
+ parentId: this.parentId,
231
+ product: this.product,
232
+ resourceId
233
+ });
209
234
  try {
210
235
  await deleteSyncedBlock({
211
236
  blockAri
@@ -241,7 +266,7 @@ class BlockServiceADFWriteProvider {
241
266
 
242
267
  // the sourceId is the resourceId of the source synced block.
243
268
  generateResourceIdForReference(sourceId) {
244
- return `${this.product}/${this.sourceDocumentId}/${sourceId}`;
269
+ return `${this.product}/${this.parentId}/${sourceId}`;
245
270
  }
246
271
  generateResourceId() {
247
272
  return crypto.randomUUID();
@@ -249,9 +274,12 @@ class BlockServiceADFWriteProvider {
249
274
  async updateReferenceData(blocks, noContent) {
250
275
  try {
251
276
  await updateReferenceSyncedBlockOnDocument({
252
- documentAri: this.sourceAri,
277
+ documentAri: this.parentAri,
253
278
  blocks: blocks.map(block => ({
254
- blockAri: generateBlockAriFromReference(this.sourceAri, block.resourceId),
279
+ blockAri: generateBlockAriFromReference({
280
+ cloudId: this.cloudId,
281
+ resourceId: block.resourceId
282
+ }),
255
283
  blockInstanceId: block.localId
256
284
  })),
257
285
  noContent
@@ -273,18 +301,55 @@ class BlockServiceADFWriteProvider {
273
301
  }
274
302
  }
275
303
  }
276
-
277
- /**
278
- * Factory function to create both providers with shared configuration
279
- */
280
- const createBlockServiceAPIProviders = (sourceAri, product, sourceDocumentId, getVersion) => {
281
- const fetchProvider = new BlockServiceADFFetchProvider(sourceAri);
282
- const writeProvider = new BlockServiceADFWriteProvider(sourceAri, product, sourceDocumentId, getVersion);
304
+ export const createBlockServiceAPIProviders = ({
305
+ cloudId,
306
+ parentAri,
307
+ parentId,
308
+ product,
309
+ getVersion
310
+ }) => {
311
+ return {
312
+ fetchProvider: new BlockServiceADFFetchProvider({
313
+ cloudId
314
+ }),
315
+ writeProvider: new BlockServiceADFWriteProvider({
316
+ cloudId,
317
+ parentAri,
318
+ parentId,
319
+ product,
320
+ getVersion
321
+ })
322
+ };
323
+ };
324
+ export const useMemoizedBlockServiceAPIProviders = ({
325
+ cloudId,
326
+ parentAri,
327
+ parentId,
328
+ product,
329
+ getVersion
330
+ }) => {
331
+ return useMemo(() => {
332
+ return createBlockServiceAPIProviders({
333
+ cloudId,
334
+ parentAri,
335
+ parentId,
336
+ product,
337
+ getVersion
338
+ });
339
+ }, [cloudId, parentAri, parentId, product, getVersion]);
340
+ };
341
+ export const createBlockServiceFetchOnlyAPIProvider = ({
342
+ cloudId
343
+ }) => {
283
344
  return {
284
- fetchProvider,
285
- writeProvider
345
+ fetchProvider: new BlockServiceADFFetchProvider({
346
+ cloudId
347
+ }),
348
+ writeProvider: undefined
286
349
  };
287
350
  };
288
- export const useMemoizedBlockServiceAPIProviders = (sourceAri, product, sourceDocumentId, getVersion) => {
289
- return useMemo(() => createBlockServiceAPIProviders(sourceAri, product, sourceDocumentId, getVersion), [sourceAri, product, sourceDocumentId, getVersion]);
290
- };
351
+ export const useMemoizedBlockServiceFetchOnlyAPIProvider = ({
352
+ cloudId
353
+ }) => useMemo(() => createBlockServiceFetchOnlyAPIProvider({
354
+ cloudId
355
+ }), [cloudId]);
@@ -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 '../providers/types';
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, sourceId) {
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
- const results = await Promise.allSettled(resourceIds.map(resourceId => this.writeProvider.deleteData(resourceId)));
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(sourceId, localId) {
167
- return this.writeProvider.generateResourceId(sourceId, localId);
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(sourceAri).id,
207
+ contentId: getPageIdAndTypeFromConfluencePageAri({
208
+ ari: sourceAri
209
+ }).id,
198
210
  contentProduct: sourceProduct
199
211
  };
200
212
  case 'jira-work-item':
@@ -204,11 +216,45 @@ 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 = (fetchProvider, writeProvider, sourceId, providerOptions, getSSRData) => {
211
- const syncBlockProvider = useMemo(() => new SyncBlockProvider(fetchProvider, writeProvider, sourceId), [fetchProvider, writeProvider, sourceId]);
225
+ const createSyncedBlockProvider = ({
226
+ fetchProvider,
227
+ writeProvider
228
+ }) => {
229
+ return new SyncBlockProvider(fetchProvider, writeProvider);
230
+ };
231
+ export const createAndInitializeSyncedBlockProvider = ({
232
+ fetchProvider,
233
+ writeProvider,
234
+ providerOptions,
235
+ getSSRData
236
+ }) => {
237
+ const syncBlockProvider = createSyncedBlockProvider({
238
+ fetchProvider,
239
+ writeProvider
240
+ });
241
+ syncBlockProvider.setProviderOptions(providerOptions);
242
+ const ssrData = getSSRData ? getSSRData() : undefined;
243
+ if (ssrData) {
244
+ syncBlockProvider.setSSRData(ssrData);
245
+ }
246
+ return syncBlockProvider;
247
+ };
248
+ export const useMemoizedSyncedBlockProvider = ({
249
+ fetchProvider,
250
+ writeProvider,
251
+ providerOptions,
252
+ getSSRData
253
+ }) => {
254
+ const syncBlockProvider = useMemo(() => createSyncedBlockProvider({
255
+ fetchProvider,
256
+ writeProvider
257
+ }), [fetchProvider, writeProvider]);
212
258
  syncBlockProvider.setProviderOptions(providerOptions);
213
259
  const ssrData = getSSRData ? getSSRData() : undefined;
214
260
  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
- var _this$dataProvider;
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 resourceId = this.dataProvider.generateResourceId(sourceId, localId);
172
+ const {
173
+ resourceId,
174
+ localId
175
+ } = this.dataProvider.generateResourceId();
179
176
  return {
180
177
  resourceId,
181
178
  localId
@@ -29,9 +29,20 @@ export class SyncBlockStoreManager {
29
29
  this.sourceSyncBlockStoreManager.destroy();
30
30
  }
31
31
  }
32
+ const createSyncBlockStoreManager = dataProvider => {
33
+ return new SyncBlockStoreManager(dataProvider);
34
+ };
35
+ export const createAndInitializeSyncBlockStoreManager = ({
36
+ dataProvider,
37
+ fireAnalyticsEvent
38
+ }) => {
39
+ const syncBlockStoreManager = createSyncBlockStoreManager(dataProvider);
40
+ syncBlockStoreManager.setFireAnalyticsEvent(fireAnalyticsEvent);
41
+ return syncBlockStoreManager;
42
+ };
32
43
  export const useMemoizedSyncBlockStoreManager = (dataProvider, fireAnalyticsEvent) => {
33
44
  const syncBlockStoreManager = useMemo(() => {
34
- const syncBlockStoreManager = new SyncBlockStoreManager(dataProvider);
45
+ const syncBlockStoreManager = createSyncBlockStoreManager(dataProvider);
35
46
  return syncBlockStoreManager;
36
47
  }, [dataProvider]);
37
48
  syncBlockStoreManager.setFireAnalyticsEvent(fireAnalyticsEvent);
@@ -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 sourceAri - the ARI of the document. E.G ari:cloud:confluence:cloudId:page/pageId
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(sourceAri, resourceId, product) {
10
- var match = sourceAri.match(/ari:cloud:confluence:([^:]+):(page|blogpost)\/(\d+)/);
11
- if (!(match !== null && match !== void 0 && match[1])) {
12
- throw new Error("Invalid source ARI: ".concat(sourceAri));
13
- }
14
- var cloudId = match[1];
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 sourceAri - the ARI of the document. E.G ari:cloud:confluence:cloudId:page/pageId
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(sourceAri, resourceId) {
26
- var match = sourceAri.match(/ari:cloud:confluence:([^:]+):(page|blogpost)\/(\d+)/);
27
- if (!(match !== null && match !== void 0 && match[1])) {
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
 
@@ -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(pageId, cloudId) {
15
- var pageType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'page';
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(ari) {
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(pageAri), pageType = _getPageIdAndTypeFrom.type;
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(workItemId, cloudId) {
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(ari) {
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,18 +10,17 @@ export { useHandleContentChanges } from './hooks/useHandleContentChanges';
10
10
 
11
11
  // clients
12
12
  export { generateBlockAri, generateBlockAriFromReference, getLocalIdFromBlockResourceId } from './clients/block-service/ari';
13
- export { getConfluencePageAri, getLocalIdFromContentPropertyResourceId, getPageAriFromContentPropertyResourceId, getPageIdAndTypeFromConfluencePageAri, resourceIdFromConfluencePageSourceIdAndLocalId } from './clients/confluence/ari';
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 { createBlockServiceAPIProviders, createBlockServiceFetchOnlyAPIProvider, useMemoizedBlockServiceAPIProviders, useMemoizedBlockServiceFetchOnlyAPIProvider } from './providers/block-service/blockServiceAPI';
19
18
  export { fetchConfluencePageInfo } from './clients/confluence/sourceInfo';
20
- export { SyncBlockProvider as SyncedBlockProvider, useMemoizedSyncedBlockProvider } from './providers/syncBlockProvider';
19
+ export { SyncBlockProvider as SyncedBlockProvider, createAndInitializeSyncedBlockProvider, useMemoizedSyncedBlockProvider } from './providers/syncBlockProvider';
21
20
 
22
21
  // store managers
23
22
 
24
- export { SyncBlockStoreManager, useMemoizedSyncBlockStoreManager } from './store-manager/syncBlockStoreManager';
23
+ export { SyncBlockStoreManager, createAndInitializeSyncBlockStoreManager, useMemoizedSyncBlockStoreManager } from './store-manager/syncBlockStoreManager';
25
24
 
26
25
  // utils
27
26
  export { resolveSyncBlockInstance } from './utils/resolveSyncBlockInstance';