@atlaskit/editor-synced-block-provider 2.15.2 → 2.15.4

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 (44) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/cjs/clients/block-service/blockService.js +42 -1
  3. package/dist/cjs/index.js +14 -1
  4. package/dist/cjs/providers/block-service/blockServiceAPI.js +62 -3
  5. package/dist/cjs/providers/confluence/confluenceContentAPI.js +7 -0
  6. package/dist/cjs/providers/syncBlockProvider.js +5 -0
  7. package/dist/cjs/store-manager/referenceSyncBlockStoreManager.js +92 -0
  8. package/dist/cjs/utils/errorHandling.js +4 -1
  9. package/dist/cjs/utils/utils.js +19 -1
  10. package/dist/es2019/clients/block-service/blockService.js +19 -0
  11. package/dist/es2019/index.js +2 -1
  12. package/dist/es2019/providers/block-service/blockServiceAPI.js +34 -1
  13. package/dist/es2019/providers/confluence/confluenceContentAPI.js +5 -0
  14. package/dist/es2019/providers/syncBlockProvider.js +3 -0
  15. package/dist/es2019/store-manager/referenceSyncBlockStoreManager.js +59 -1
  16. package/dist/es2019/utils/errorHandling.js +1 -0
  17. package/dist/es2019/utils/utils.js +18 -0
  18. package/dist/esm/clients/block-service/blockService.js +41 -0
  19. package/dist/esm/index.js +2 -1
  20. package/dist/esm/providers/block-service/blockServiceAPI.js +63 -4
  21. package/dist/esm/providers/confluence/confluenceContentAPI.js +7 -0
  22. package/dist/esm/providers/syncBlockProvider.js +5 -0
  23. package/dist/esm/store-manager/referenceSyncBlockStoreManager.js +93 -1
  24. package/dist/esm/utils/errorHandling.js +3 -0
  25. package/dist/esm/utils/utils.js +18 -0
  26. package/dist/types/clients/block-service/blockService.d.ts +16 -4
  27. package/dist/types/index.d.ts +2 -1
  28. package/dist/types/providers/block-service/blockServiceAPI.d.ts +3 -2
  29. package/dist/types/providers/confluence/confluenceContentAPI.d.ts +3 -2
  30. package/dist/types/providers/syncBlockProvider.d.ts +3 -2
  31. package/dist/types/providers/types.d.ts +13 -1
  32. package/dist/types/store-manager/referenceSyncBlockStoreManager.d.ts +7 -0
  33. package/dist/types/utils/errorHandling.d.ts +1 -0
  34. package/dist/types/utils/utils.d.ts +5 -1
  35. package/dist/types-ts4.5/clients/block-service/blockService.d.ts +16 -4
  36. package/dist/types-ts4.5/index.d.ts +2 -1
  37. package/dist/types-ts4.5/providers/block-service/blockServiceAPI.d.ts +3 -2
  38. package/dist/types-ts4.5/providers/confluence/confluenceContentAPI.d.ts +3 -2
  39. package/dist/types-ts4.5/providers/syncBlockProvider.d.ts +3 -2
  40. package/dist/types-ts4.5/providers/types.d.ts +13 -1
  41. package/dist/types-ts4.5/store-manager/referenceSyncBlockStoreManager.d.ts +7 -0
  42. package/dist/types-ts4.5/utils/errorHandling.d.ts +1 -0
  43. package/dist/types-ts4.5/utils/utils.d.ts +5 -1
  44. package/package.json +3 -4
@@ -1,7 +1,7 @@
1
1
  import type { RendererSyncBlockEventPayload } from '@atlaskit/editor-common/analytics';
2
2
  import type { JSONNode } from '@atlaskit/editor-json-transformer/types';
3
- import { type BlockInstanceId, type ResourceId, type SyncBlockData, type SyncBlockNode, type SyncBlockProduct } from '../common/types';
4
- import { SyncBlockDataProvider, type ADFFetchProvider, type ADFWriteProvider, type DeleteSyncBlockResult, type SyncBlockInstance, type SyncBlockParentInfo, type SyncBlockSourceInfo, type SyncedBlockRendererProviderOptions, type WriteSyncBlockResult } from '../providers/types';
3
+ import { type BlockInstanceId, type ResourceId, type SyncBlockAttrs, type SyncBlockData, type SyncBlockNode, type SyncBlockProduct } from '../common/types';
4
+ import { SyncBlockDataProvider, type ADFFetchProvider, type ADFWriteProvider, type DeleteSyncBlockResult, type SyncBlockInstance, type SyncBlockParentInfo, type SyncBlockSourceInfo, type SyncedBlockRendererProviderOptions, type UpdateReferenceSyncBlockResult, type WriteSyncBlockResult } from '../providers/types';
5
5
  export declare class SyncBlockProvider extends SyncBlockDataProvider {
6
6
  name: string;
7
7
  private fetchProvider;
@@ -94,5 +94,6 @@ export declare class SyncBlockProvider extends SyncBlockDataProvider {
94
94
  * @returns The parent info for the sync block
95
95
  */
96
96
  retrieveSyncBlockParentInfo(sourceAri: string, sourceProduct: SyncBlockProduct): SyncBlockParentInfo | undefined;
97
+ updateReferenceData(blocks: SyncBlockAttrs[], noContent?: boolean): Promise<UpdateReferenceSyncBlockResult>;
97
98
  }
98
99
  export declare const useMemoizedSyncedBlockProvider: (fetchProvider: ADFFetchProvider, writeProvider: ADFWriteProvider, sourceId: string, providerOptions: SyncedBlockRendererProviderOptions, getSSRData?: () => Record<string, SyncBlockInstance> | undefined) => SyncBlockProvider;
@@ -4,7 +4,7 @@ import type { EmojiProvider } from '@atlaskit/emoji';
4
4
  import type { MentionProvider } from '@atlaskit/mention/types';
5
5
  import { NodeDataProvider } from '@atlaskit/node-data-provider';
6
6
  import type { TaskDecisionProvider } from '@atlaskit/task-decision/types';
7
- import type { SyncBlockData, ResourceId, SyncBlockError, SyncBlockNode, SyncBlockProduct, BlockInstanceId } from '../common/types';
7
+ import type { SyncBlockData, ResourceId, SyncBlockError, SyncBlockNode, SyncBlockProduct, BlockInstanceId, SyncBlockAttrs } from '../common/types';
8
8
  /**
9
9
  * The instance of a sync block, containing its data and metadata.
10
10
  * Mainly used for representing the state of a sync block after fetching from a data provider.
@@ -39,15 +39,26 @@ export type SourceInfoFetchData = {
39
39
  pageARI: string;
40
40
  sourceLocalId?: string;
41
41
  };
42
+ export type UpdateReferenceSyncBlockResult = {
43
+ error?: string;
44
+ success: boolean;
45
+ };
42
46
  export interface ADFFetchProvider {
43
47
  fetchData: (resourceId: ResourceId) => Promise<SyncBlockInstance>;
44
48
  }
45
49
  export interface ADFWriteProvider {
46
50
  createData: (data: SyncBlockData) => Promise<WriteSyncBlockResult>;
51
+ /**
52
+ * Delete source block.
53
+ * @param resourceId the resourceId of the block to be deleted
54
+ * @returns Object representing the result of the deletion. {resourceId: string, success: boolean, error?: string}.
55
+ * User should not be blocked by not_found error when deleting, so successful result should be returned for 404 error
56
+ */
47
57
  deleteData: (resourceId: ResourceId) => Promise<DeleteSyncBlockResult>;
48
58
  generateResourceId: (sourceId: string, localId: string) => ResourceId;
49
59
  generateResourceIdForReference: (sourceId: ResourceId) => ResourceId;
50
60
  product: SyncBlockProduct;
61
+ updateReferenceData: (blocks: SyncBlockAttrs[], noContent?: boolean) => Promise<UpdateReferenceSyncBlockResult>;
51
62
  writeData: (data: SyncBlockData) => Promise<WriteSyncBlockResult>;
52
63
  }
53
64
  export type MediaEmojiProviderOptions = {
@@ -84,6 +95,7 @@ export declare abstract class SyncBlockDataProvider extends NodeDataProvider<Syn
84
95
  */
85
96
  abstract generateResourceId(sourceId: ResourceId, localId: BlockInstanceId): ResourceId;
86
97
  abstract generateResourceIdForReference(sourceId: ResourceId): ResourceId;
98
+ abstract updateReferenceData(blocks: SyncBlockAttrs[], noContent?: boolean): Promise<UpdateReferenceSyncBlockResult>;
87
99
  }
88
100
  export type SubscriptionCallback = (data: SyncBlockInstance) => void;
89
101
  export type TitleSubscriptionCallback = (title: string) => void;
@@ -6,6 +6,7 @@ import type { SyncBlockInstance, SubscriptionCallback, SyncBlockDataProvider, Ti
6
6
  export declare class ReferenceSyncBlockStoreManager {
7
7
  private dataProvider?;
8
8
  private syncBlockCache;
9
+ private isCacheDirty;
9
10
  private subscriptions;
10
11
  private titleSubscriptions;
11
12
  private providerFactories;
@@ -44,5 +45,11 @@ export declare class ReferenceSyncBlockStoreManager {
44
45
  getSyncBlockURL(resourceId: ResourceId): string | undefined;
45
46
  getProviderFactory(resourceId: ResourceId): ProviderFactory | undefined;
46
47
  private retrieveDynamicProviders;
48
+ /**
49
+ * Update reference synced blocks on the document with the BE
50
+ *
51
+ * @returns true if the reference synced blocks are updated successfully, false otherwise
52
+ */
53
+ flush(): Promise<boolean>;
47
54
  destroy(): void;
48
55
  }
@@ -6,6 +6,7 @@ export declare const getErrorPayload: <T extends ACTION_SUBJECT_ID>(actionSubjec
6
6
  export declare const fetchErrorPayload: (error: string) => RendererSyncBlockEventPayload;
7
7
  export declare const getSourceInfoErrorPayload: (error: string) => RendererSyncBlockEventPayload;
8
8
  export declare const updateErrorPayload: (error: string) => SyncBlockEventPayload;
9
+ export declare const updateReferenceErrorPayload: (error: string) => RendererSyncBlockEventPayload;
9
10
  export declare const createErrorPayload: (error: string) => SyncBlockEventPayload;
10
11
  export declare const deleteErrorPayload: (error: string) => SyncBlockEventPayload;
11
12
  export declare const updateCacheErrorPayload: (error: string) => SyncBlockEventPayload;
@@ -1,8 +1,12 @@
1
1
  import type { JSONNode } from '@atlaskit/editor-json-transformer';
2
2
  import type { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
3
- import type { SyncBlockData, BlockInstanceId, ResourceId, SyncBlockNode } from '../common/types';
3
+ import type { SyncBlockData, BlockInstanceId, ResourceId, SyncBlockNode, SyncBlockProduct } from '../common/types';
4
4
  export declare const convertSyncBlockPMNodeToSyncBlockData: (node: PMNode) => SyncBlockData;
5
5
  export declare const createSyncBlockNode: (localId: BlockInstanceId, resourceId: ResourceId) => SyncBlockNode;
6
6
  export declare const convertSyncBlockJSONNodeToSyncBlockNode: (node: JSONNode) => SyncBlockNode | undefined;
7
7
  export declare const convertPMNodeToSyncBlockNode: (node: PMNode) => SyncBlockNode | undefined;
8
8
  export declare const convertPMNodesToSyncBlockNodes: (nodes: PMNode[]) => SyncBlockNode[];
9
+ export declare const getContentIdAndProductFromResourceId: (resourceId: string) => {
10
+ sourceProduct: SyncBlockProduct;
11
+ sourceContentId: string;
12
+ };
package/package.json CHANGED
@@ -24,17 +24,16 @@
24
24
  ],
25
25
  "atlaskit:src": "src/index.ts",
26
26
  "dependencies": {
27
- "@atlaskit/adf-schema": "^51.5.1",
28
27
  "@atlaskit/adf-utils": "^19.26.0",
29
28
  "@atlaskit/editor-json-transformer": "^8.31.0",
30
- "@atlaskit/editor-prosemirror": "7.0.0",
29
+ "@atlaskit/editor-prosemirror": "^7.2.0",
31
30
  "@atlaskit/node-data-provider": "^7.5.0",
32
31
  "@babel/runtime": "^7.0.0",
33
32
  "@compiled/react": "^0.18.6",
34
33
  "uuid": "^3.1.0"
35
34
  },
36
35
  "peerDependencies": {
37
- "@atlaskit/editor-common": "^110.41.0",
36
+ "@atlaskit/editor-common": "^110.42.0",
38
37
  "react": "^18.2.0"
39
38
  },
40
39
  "devDependencies": {
@@ -77,7 +76,7 @@
77
76
  }
78
77
  },
79
78
  "name": "@atlaskit/editor-synced-block-provider",
80
- "version": "2.15.2",
79
+ "version": "2.15.4",
81
80
  "description": "Synced Block Provider for @atlaskit/editor-plugin-synced-block",
82
81
  "author": "Atlassian Pty Ltd",
83
82
  "license": "Apache-2.0",