@atlaskit/editor-synced-block-provider 3.14.2 → 3.14.3
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 +11 -0
- package/dist/cjs/clients/block-service/blockService.js +12 -9
- package/dist/cjs/providers/block-service/blockServiceAPI.js +28 -18
- package/dist/cjs/store-manager/referenceSyncBlockStoreManager.js +61 -23
- package/dist/cjs/store-manager/sourceSyncBlockStoreManager.js +27 -5
- package/dist/cjs/store-manager/syncBlockStoreManager.js +53 -22
- package/dist/cjs/utils/experienceTracking.js +18 -1
- package/dist/es2019/clients/block-service/blockService.js +5 -1
- package/dist/es2019/providers/block-service/blockServiceAPI.js +17 -7
- package/dist/es2019/store-manager/referenceSyncBlockStoreManager.js +68 -34
- package/dist/es2019/store-manager/sourceSyncBlockStoreManager.js +27 -6
- package/dist/es2019/store-manager/syncBlockStoreManager.js +36 -2
- package/dist/es2019/utils/experienceTracking.js +17 -0
- package/dist/esm/clients/block-service/blockService.js +12 -9
- package/dist/esm/providers/block-service/blockServiceAPI.js +28 -18
- package/dist/esm/store-manager/referenceSyncBlockStoreManager.js +61 -23
- package/dist/esm/store-manager/sourceSyncBlockStoreManager.js +28 -6
- package/dist/esm/store-manager/syncBlockStoreManager.js +53 -22
- package/dist/esm/utils/experienceTracking.js +17 -0
- package/dist/types/clients/block-service/blockService.d.ts +3 -2
- package/dist/types/providers/block-service/blockServiceAPI.d.ts +5 -2
- package/dist/types/store-manager/referenceSyncBlockStoreManager.d.ts +9 -0
- package/dist/types/store-manager/sourceSyncBlockStoreManager.d.ts +1 -0
- package/dist/types/store-manager/syncBlockStoreManager.d.ts +2 -0
- package/dist/types/utils/experienceTracking.d.ts +8 -0
- package/dist/types-ts4.5/clients/block-service/blockService.d.ts +3 -2
- package/dist/types-ts4.5/providers/block-service/blockServiceAPI.d.ts +5 -2
- package/dist/types-ts4.5/store-manager/referenceSyncBlockStoreManager.d.ts +9 -0
- package/dist/types-ts4.5/store-manager/sourceSyncBlockStoreManager.d.ts +1 -0
- package/dist/types-ts4.5/store-manager/syncBlockStoreManager.d.ts +2 -0
- package/dist/types-ts4.5/utils/experienceTracking.d.ts +8 -0
- package/package.json +2 -2
|
@@ -9,7 +9,7 @@ import { logException } from '@atlaskit/editor-common/monitoring';
|
|
|
9
9
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
10
10
|
import { SyncBlockError } from '../common/types';
|
|
11
11
|
import { updateErrorPayload, createErrorPayload, deleteErrorPayload, updateCacheErrorPayload, getSourceInfoErrorPayload, updateSuccessPayload, createSuccessPayload, deleteSuccessPayload, fetchReferencesErrorPayload } from '../utils/errorHandling';
|
|
12
|
-
import { getCreateSourceExperience, getDeleteSourceExperience, getSaveSourceExperience } from '../utils/experienceTracking';
|
|
12
|
+
import { getCreateSourceExperience, getDeleteSourceExperience, getSaveSourceExperience, getFetchSourceInfoExperience } from '../utils/experienceTracking';
|
|
13
13
|
import { convertSyncBlockPMNodeToSyncBlockData } from '../utils/utils';
|
|
14
14
|
// A store manager responsible for the lifecycle and state management of source sync blocks in an editor instance.
|
|
15
15
|
// Designed to manage local in-memory state and synchronize with an external data provider.
|
|
@@ -36,6 +36,7 @@ export var SourceSyncBlockStoreManager = /*#__PURE__*/function () {
|
|
|
36
36
|
this.createExperience = getCreateSourceExperience(fireAnalyticsEvent);
|
|
37
37
|
this.saveExperience = getSaveSourceExperience(fireAnalyticsEvent);
|
|
38
38
|
this.deleteExperience = getDeleteSourceExperience(fireAnalyticsEvent);
|
|
39
|
+
this.fetchSourceInfoExperience = getFetchSourceInfoExperience(fireAnalyticsEvent);
|
|
39
40
|
}
|
|
40
41
|
}, {
|
|
41
42
|
key: "isSourceBlock",
|
|
@@ -534,11 +535,29 @@ export var SourceSyncBlockStoreManager = /*#__PURE__*/function () {
|
|
|
534
535
|
}, {
|
|
535
536
|
key: "getSyncBlockSourceInfo",
|
|
536
537
|
value: function getSyncBlockSourceInfo(localId) {
|
|
538
|
+
var _this6 = this;
|
|
537
539
|
try {
|
|
538
540
|
if (!this.dataProvider) {
|
|
539
541
|
throw new Error('Data provider not set');
|
|
540
542
|
}
|
|
541
|
-
|
|
543
|
+
if (fg('platform_synced_block_dogfooding')) {
|
|
544
|
+
var _this$fetchSourceInfo;
|
|
545
|
+
(_this$fetchSourceInfo = this.fetchSourceInfoExperience) === null || _this$fetchSourceInfo === void 0 || _this$fetchSourceInfo.start();
|
|
546
|
+
}
|
|
547
|
+
return this.dataProvider.fetchSyncBlockSourceInfo(localId, undefined, undefined, this.fireAnalyticsEvent).then(function (sourceInfo) {
|
|
548
|
+
if (fg('platform_synced_block_dogfooding')) {
|
|
549
|
+
if (!sourceInfo) {
|
|
550
|
+
var _this6$fetchSourceInf;
|
|
551
|
+
(_this6$fetchSourceInf = _this6.fetchSourceInfoExperience) === null || _this6$fetchSourceInf === void 0 || _this6$fetchSourceInf.failure({
|
|
552
|
+
reason: "No source info returned"
|
|
553
|
+
});
|
|
554
|
+
} else {
|
|
555
|
+
var _this6$fetchSourceInf2;
|
|
556
|
+
(_this6$fetchSourceInf2 = _this6.fetchSourceInfoExperience) === null || _this6$fetchSourceInf2 === void 0 || _this6$fetchSourceInf2.success();
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
return sourceInfo;
|
|
560
|
+
});
|
|
542
561
|
} catch (error) {
|
|
543
562
|
var _this$fireAnalyticsEv6;
|
|
544
563
|
logException(error, {
|
|
@@ -570,20 +589,23 @@ export var SourceSyncBlockStoreManager = /*#__PURE__*/function () {
|
|
|
570
589
|
}, {
|
|
571
590
|
key: "destroy",
|
|
572
591
|
value: function destroy() {
|
|
573
|
-
var _this$saveExperience4, _this$createExperienc2, _this$deleteExperienc4;
|
|
592
|
+
var _this$saveExperience4, _this$createExperienc2, _this$deleteExperienc4, _this$fetchSourceInfo2;
|
|
574
593
|
this.syncBlockCache.clear();
|
|
575
594
|
this.confirmationCallback = undefined;
|
|
576
595
|
this.pendingResourceId = undefined;
|
|
577
596
|
this.creationCallback = undefined;
|
|
578
597
|
this.dataProvider = undefined;
|
|
579
598
|
(_this$saveExperience4 = this.saveExperience) === null || _this$saveExperience4 === void 0 || _this$saveExperience4.abort({
|
|
580
|
-
reason: '
|
|
599
|
+
reason: 'editorDestroyed'
|
|
581
600
|
});
|
|
582
601
|
(_this$createExperienc2 = this.createExperience) === null || _this$createExperienc2 === void 0 || _this$createExperienc2.abort({
|
|
583
|
-
reason: '
|
|
602
|
+
reason: 'editorDestroyed'
|
|
584
603
|
});
|
|
585
604
|
(_this$deleteExperienc4 = this.deleteExperience) === null || _this$deleteExperienc4 === void 0 || _this$deleteExperienc4.abort({
|
|
586
|
-
reason: '
|
|
605
|
+
reason: 'editorDestroyed'
|
|
606
|
+
});
|
|
607
|
+
(_this$fetchSourceInfo2 = this.fetchSourceInfoExperience) === null || _this$fetchSourceInfo2 === void 0 || _this$fetchSourceInfo2.abort({
|
|
608
|
+
reason: 'editorDestroyed'
|
|
587
609
|
});
|
|
588
610
|
this.clearPendingDeletion();
|
|
589
611
|
}
|
|
@@ -7,9 +7,11 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
|
|
|
7
7
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
8
8
|
import { useMemo } from 'react';
|
|
9
9
|
import { logException } from '@atlaskit/editor-common/monitoring';
|
|
10
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
10
11
|
import { getProductFromSourceAri } from '../clients/block-service/ari';
|
|
11
12
|
import { SyncBlockError } from '../common/types';
|
|
12
13
|
import { fetchReferencesErrorPayload } from '../utils/errorHandling';
|
|
14
|
+
import { getFetchReferencesExperience, getFetchSourceInfoExperience } from '../utils/experienceTracking';
|
|
13
15
|
import { ReferenceSyncBlockStoreManager } from './referenceSyncBlockStoreManager';
|
|
14
16
|
import { SourceSyncBlockStoreManager } from './sourceSyncBlockStoreManager';
|
|
15
17
|
|
|
@@ -32,7 +34,7 @@ export var SyncBlockStoreManager = /*#__PURE__*/function () {
|
|
|
32
34
|
value: function () {
|
|
33
35
|
var _fetchReferencesSourceInfo = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(resourceId, blockInstanceId, isSourceSyncBlock) {
|
|
34
36
|
var _this = this;
|
|
35
|
-
var _response$references, response, sourceInfoPromises, sourceInfos, sourceSyncBlockData, _this$fireAnalyticsEv;
|
|
37
|
+
var _this$fetchReferences, _response$references, _this$fetchReferences5, response, _this$fetchReferences2, _this$fetchReferences3, _this$fetchReferences4, sourceInfoPromises, sourceInfos, sourceSyncBlockData, _this$fireAnalyticsEv;
|
|
36
38
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
37
39
|
while (1) switch (_context2.prev = _context2.next) {
|
|
38
40
|
case 0:
|
|
@@ -43,51 +45,69 @@ export var SyncBlockStoreManager = /*#__PURE__*/function () {
|
|
|
43
45
|
}
|
|
44
46
|
throw new Error('Data provider not set');
|
|
45
47
|
case 3:
|
|
46
|
-
|
|
48
|
+
(_this$fetchReferences = this.fetchReferencesExperience) === null || _this$fetchReferences === void 0 || _this$fetchReferences.start();
|
|
49
|
+
_context2.next = 6;
|
|
47
50
|
return this.dataProvider.fetchReferences(resourceId, isSourceSyncBlock);
|
|
48
|
-
case
|
|
51
|
+
case 6:
|
|
49
52
|
response = _context2.sent;
|
|
50
53
|
if (!response.error) {
|
|
51
|
-
_context2.next =
|
|
54
|
+
_context2.next = 10;
|
|
52
55
|
break;
|
|
53
56
|
}
|
|
57
|
+
(_this$fetchReferences2 = this.fetchReferencesExperience) === null || _this$fetchReferences2 === void 0 || _this$fetchReferences2.failure({
|
|
58
|
+
reason: response.error
|
|
59
|
+
});
|
|
54
60
|
return _context2.abrupt("return", {
|
|
55
61
|
error: response.error
|
|
56
62
|
});
|
|
57
|
-
case
|
|
63
|
+
case 10:
|
|
58
64
|
if (!(!response.references || ((_response$references = response.references) === null || _response$references === void 0 ? void 0 : _response$references.length) === 0)) {
|
|
59
|
-
_context2.next =
|
|
65
|
+
_context2.next = 13;
|
|
60
66
|
break;
|
|
61
67
|
}
|
|
68
|
+
// No reference found
|
|
69
|
+
if (isSourceSyncBlock) {
|
|
70
|
+
(_this$fetchReferences3 = this.fetchReferencesExperience) === null || _this$fetchReferences3 === void 0 || _this$fetchReferences3.success();
|
|
71
|
+
} else {
|
|
72
|
+
(_this$fetchReferences4 = this.fetchReferencesExperience) === null || _this$fetchReferences4 === void 0 || _this$fetchReferences4.failure({
|
|
73
|
+
reason: 'No references found for reference synced block'
|
|
74
|
+
});
|
|
75
|
+
}
|
|
62
76
|
return _context2.abrupt("return", isSourceSyncBlock ? {
|
|
63
77
|
references: []
|
|
64
78
|
} : {
|
|
65
79
|
error: SyncBlockError.Errored
|
|
66
80
|
});
|
|
67
|
-
case
|
|
81
|
+
case 13:
|
|
82
|
+
(_this$fetchReferences5 = this.fetchReferencesExperience) === null || _this$fetchReferences5 === void 0 || _this$fetchReferences5.success();
|
|
68
83
|
sourceInfoPromises = response.references.map( /*#__PURE__*/function () {
|
|
69
84
|
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(reference) {
|
|
70
|
-
var _this$dataProvider;
|
|
71
|
-
var sourceInfo;
|
|
85
|
+
var _this$fetchSourceInfo, _this$dataProvider, _this$fetchSourceInfo3;
|
|
86
|
+
var sourceInfo, _this$fetchSourceInfo2;
|
|
72
87
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
73
88
|
while (1) switch (_context.prev = _context.next) {
|
|
74
89
|
case 0:
|
|
75
|
-
|
|
90
|
+
(_this$fetchSourceInfo = _this.fetchSourceInfoExperience) === null || _this$fetchSourceInfo === void 0 || _this$fetchSourceInfo.start();
|
|
91
|
+
_context.next = 3;
|
|
76
92
|
return (_this$dataProvider = _this.dataProvider) === null || _this$dataProvider === void 0 ? void 0 : _this$dataProvider.fetchSyncBlockSourceInfo(reference.blockInstanceId || '', reference.documentAri, getProductFromSourceAri(reference.documentAri), _this.fireAnalyticsEvent, reference.hasAccess, 'view');
|
|
77
|
-
case
|
|
93
|
+
case 3:
|
|
78
94
|
sourceInfo = _context.sent;
|
|
79
95
|
if (sourceInfo) {
|
|
80
|
-
_context.next =
|
|
96
|
+
_context.next = 7;
|
|
81
97
|
break;
|
|
82
98
|
}
|
|
99
|
+
(_this$fetchSourceInfo2 = _this.fetchSourceInfoExperience) === null || _this$fetchSourceInfo2 === void 0 || _this$fetchSourceInfo2.failure({
|
|
100
|
+
reason: "no source info returned for ari: ".concat(reference.documentAri)
|
|
101
|
+
});
|
|
83
102
|
return _context.abrupt("return", undefined);
|
|
84
|
-
case
|
|
103
|
+
case 7:
|
|
104
|
+
(_this$fetchSourceInfo3 = _this.fetchSourceInfoExperience) === null || _this$fetchSourceInfo3 === void 0 || _this$fetchSourceInfo3.success();
|
|
85
105
|
return _context.abrupt("return", _objectSpread(_objectSpread({}, sourceInfo), {}, {
|
|
86
106
|
onSameDocument: reference.onSameDocument,
|
|
87
107
|
hasAccess: reference.hasAccess,
|
|
88
108
|
productType: sourceInfo.productType
|
|
89
109
|
}));
|
|
90
|
-
case
|
|
110
|
+
case 9:
|
|
91
111
|
case "end":
|
|
92
112
|
return _context.stop();
|
|
93
113
|
}
|
|
@@ -97,13 +117,13 @@ export var SyncBlockStoreManager = /*#__PURE__*/function () {
|
|
|
97
117
|
return _ref.apply(this, arguments);
|
|
98
118
|
};
|
|
99
119
|
}());
|
|
100
|
-
_context2.next =
|
|
120
|
+
_context2.next = 17;
|
|
101
121
|
return Promise.all(sourceInfoPromises);
|
|
102
|
-
case
|
|
122
|
+
case 17:
|
|
103
123
|
sourceInfos = _context2.sent;
|
|
104
|
-
_context2.next =
|
|
124
|
+
_context2.next = 20;
|
|
105
125
|
return isSourceSyncBlock ? this.sourceSyncBlockStoreManager.getSyncBlockSourceInfo(blockInstanceId) : this.referenceSyncBlockStoreManager.fetchSyncBlockSourceInfo(resourceId);
|
|
106
|
-
case
|
|
126
|
+
case 20:
|
|
107
127
|
sourceSyncBlockData = _context2.sent;
|
|
108
128
|
if (sourceSyncBlockData) {
|
|
109
129
|
sourceInfos.push(_objectSpread(_objectSpread({}, sourceSyncBlockData), {}, {
|
|
@@ -116,8 +136,8 @@ export var SyncBlockStoreManager = /*#__PURE__*/function () {
|
|
|
116
136
|
return _context2.abrupt("return", {
|
|
117
137
|
references: sourceInfos
|
|
118
138
|
});
|
|
119
|
-
case
|
|
120
|
-
_context2.prev =
|
|
139
|
+
case 25:
|
|
140
|
+
_context2.prev = 25;
|
|
121
141
|
_context2.t0 = _context2["catch"](0);
|
|
122
142
|
logException(_context2.t0, {
|
|
123
143
|
location: 'editor-synced-block-provider/syncBlockStoreManager'
|
|
@@ -126,11 +146,11 @@ export var SyncBlockStoreManager = /*#__PURE__*/function () {
|
|
|
126
146
|
return _context2.abrupt("return", {
|
|
127
147
|
error: SyncBlockError.Errored
|
|
128
148
|
});
|
|
129
|
-
case
|
|
149
|
+
case 30:
|
|
130
150
|
case "end":
|
|
131
151
|
return _context2.stop();
|
|
132
152
|
}
|
|
133
|
-
}, _callee2, this, [[0,
|
|
153
|
+
}, _callee2, this, [[0, 25]]);
|
|
134
154
|
}));
|
|
135
155
|
function fetchReferencesSourceInfo(_x, _x2, _x3) {
|
|
136
156
|
return _fetchReferencesSourceInfo.apply(this, arguments);
|
|
@@ -143,6 +163,10 @@ export var SyncBlockStoreManager = /*#__PURE__*/function () {
|
|
|
143
163
|
this.fireAnalyticsEvent = fireAnalyticsEvent;
|
|
144
164
|
this.referenceSyncBlockStoreManager.setFireAnalyticsEvent(fireAnalyticsEvent);
|
|
145
165
|
this.sourceSyncBlockStoreManager.setFireAnalyticsEvent(fireAnalyticsEvent);
|
|
166
|
+
if (fg('platform_synced_block_dogfooding')) {
|
|
167
|
+
this.fetchReferencesExperience = getFetchReferencesExperience(fireAnalyticsEvent);
|
|
168
|
+
this.fetchSourceInfoExperience = getFetchSourceInfoExperience(fireAnalyticsEvent);
|
|
169
|
+
}
|
|
146
170
|
}
|
|
147
171
|
}, {
|
|
148
172
|
key: "referenceManager",
|
|
@@ -157,8 +181,15 @@ export var SyncBlockStoreManager = /*#__PURE__*/function () {
|
|
|
157
181
|
}, {
|
|
158
182
|
key: "destroy",
|
|
159
183
|
value: function destroy() {
|
|
184
|
+
var _this$fetchReferences6, _this$fetchSourceInfo4;
|
|
160
185
|
this.referenceSyncBlockStoreManager.destroy();
|
|
161
186
|
this.sourceSyncBlockStoreManager.destroy();
|
|
187
|
+
(_this$fetchReferences6 = this.fetchReferencesExperience) === null || _this$fetchReferences6 === void 0 || _this$fetchReferences6.abort({
|
|
188
|
+
reason: 'editorDestroyed'
|
|
189
|
+
});
|
|
190
|
+
(_this$fetchSourceInfo4 = this.fetchSourceInfoExperience) === null || _this$fetchSourceInfo4 === void 0 || _this$fetchSourceInfo4.abort({
|
|
191
|
+
reason: 'editorDestroyed'
|
|
192
|
+
});
|
|
162
193
|
}
|
|
163
194
|
}]);
|
|
164
195
|
}();
|
|
@@ -110,4 +110,21 @@ export var getCreateSourceExperience = function getCreateSourceExperience(fireAn
|
|
|
110
110
|
durationMs: TIMEOUT_DURATION
|
|
111
111
|
})]
|
|
112
112
|
});
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* This experience tracks when a source sync block is created and registered to the BE.
|
|
117
|
+
*
|
|
118
|
+
* Start: When the fetchSourceInfo function is called.
|
|
119
|
+
* Success: When the fetching the data is successful within the timeout duration of start.
|
|
120
|
+
* Failure: When the timeout duration passes without the data being successfully fetched, or the fetch fails
|
|
121
|
+
*/
|
|
122
|
+
export var getFetchReferencesExperience = function getFetchReferencesExperience(fireAnalyticsEvent) {
|
|
123
|
+
return new Experience(EXPERIENCE_ID.ASYNC_OPERATION, {
|
|
124
|
+
action: ACTION.SYNCED_BLOCK_FETCH_REFERENCES,
|
|
125
|
+
dispatchAnalyticsEvent: createExperienceDispatcher(fireAnalyticsEvent),
|
|
126
|
+
checks: [new ExperienceCheckTimeout({
|
|
127
|
+
durationMs: TIMEOUT_DURATION
|
|
128
|
+
})]
|
|
129
|
+
});
|
|
113
130
|
};
|
|
@@ -84,6 +84,7 @@ export type CreateSyncedBlockRequest = {
|
|
|
84
84
|
content: string;
|
|
85
85
|
product: SyncBlockProduct;
|
|
86
86
|
sourceAri: string;
|
|
87
|
+
status?: SyncBlockStatus;
|
|
87
88
|
stepVersion?: number;
|
|
88
89
|
};
|
|
89
90
|
type ReferenceSyncedBlockIDs = {
|
|
@@ -119,7 +120,7 @@ export declare class BlockError extends Error {
|
|
|
119
120
|
readonly status: number;
|
|
120
121
|
constructor(status: number);
|
|
121
122
|
}
|
|
122
|
-
export declare const getSyncedBlockContent: ({ blockAri }: GetSyncedBlockContentRequest) => Promise<BlockContentResponse>;
|
|
123
|
+
export declare const getSyncedBlockContent: ({ blockAri, }: GetSyncedBlockContentRequest) => Promise<BlockContentResponse>;
|
|
123
124
|
/**
|
|
124
125
|
* Batch retrieves multiple synced blocks by their ARIs.
|
|
125
126
|
*
|
|
@@ -131,7 +132,7 @@ export declare const getSyncedBlockContent: ({ blockAri }: GetSyncedBlockContent
|
|
|
131
132
|
export declare const batchRetrieveSyncedBlocks: ({ blockIdentifiers, documentAri, }: BatchRetrieveSyncedBlocksRequest) => Promise<BatchRetrieveSyncedBlocksResponse>;
|
|
132
133
|
export declare const deleteSyncedBlock: ({ blockAri, deleteReason, }: DeleteSyncedBlockRequest) => Promise<void>;
|
|
133
134
|
export declare const updateSyncedBlock: ({ blockAri, content, stepVersion, }: UpdateSyncedBlockRequest) => Promise<void>;
|
|
134
|
-
export declare const createSyncedBlock: ({ blockAri, blockInstanceId, sourceAri, product, content, stepVersion, }: CreateSyncedBlockRequest) => Promise<BlockContentResponse>;
|
|
135
|
+
export declare const createSyncedBlock: ({ blockAri, blockInstanceId, sourceAri, product, content, stepVersion, status, }: CreateSyncedBlockRequest) => Promise<BlockContentResponse>;
|
|
135
136
|
export declare const updateReferenceSyncedBlockOnDocument: ({ documentAri, blocks, noContent, }: UpdateReferenceSyncedBlockOnDocumentRequest) => Promise<ReferenceSyncedBlockResponse | void>;
|
|
136
137
|
export declare const getReferenceSyncedBlocksByBlockAri: ({ blockAri, }: GetReferenceSyncedBlocksByBlockAriRequest) => Promise<GetReferenceSyncedBlocksByBlockAriResponse>;
|
|
137
138
|
export {};
|
|
@@ -56,6 +56,7 @@ declare class BlockServiceADFFetchProvider implements ADFFetchProvider {
|
|
|
56
56
|
interface BlockServiceADFWriteProviderProps {
|
|
57
57
|
cloudId: string;
|
|
58
58
|
getVersion?: () => number | undefined;
|
|
59
|
+
isParentUnpublished?: () => boolean;
|
|
59
60
|
parentAri: string | undefined;
|
|
60
61
|
parentId?: string;
|
|
61
62
|
product: SyncBlockProduct;
|
|
@@ -67,9 +68,10 @@ declare class BlockServiceADFWriteProvider implements ADFWriteProvider {
|
|
|
67
68
|
private cloudId;
|
|
68
69
|
private parentId?;
|
|
69
70
|
private getVersion?;
|
|
71
|
+
private isParentUnpublished?;
|
|
70
72
|
product: SyncBlockProduct;
|
|
71
73
|
parentAri: string | undefined;
|
|
72
|
-
constructor({ cloudId, parentAri, parentId, product, getVersion, }: BlockServiceADFWriteProviderProps);
|
|
74
|
+
constructor({ cloudId, parentAri, parentId, product, getVersion, isParentUnpublished, }: BlockServiceADFWriteProviderProps);
|
|
73
75
|
writeData(data: SyncBlockData): Promise<WriteSyncBlockResult>;
|
|
74
76
|
createData(data: SyncBlockData): Promise<WriteSyncBlockResult>;
|
|
75
77
|
deleteData(resourceId: string, deleteReason: string | undefined): Promise<DeleteSyncBlockResult>;
|
|
@@ -80,11 +82,12 @@ declare class BlockServiceADFWriteProvider implements ADFWriteProvider {
|
|
|
80
82
|
interface BlockServiceAPIProvidersProps {
|
|
81
83
|
cloudId: string;
|
|
82
84
|
getVersion?: () => number | undefined;
|
|
85
|
+
isParentUnpublished?: () => boolean;
|
|
83
86
|
parentAri: string | undefined;
|
|
84
87
|
parentId?: string;
|
|
85
88
|
product: SyncBlockProduct;
|
|
86
89
|
}
|
|
87
|
-
export declare const useMemoizedBlockServiceAPIProviders: ({ cloudId, parentAri, parentId, product, getVersion, }: BlockServiceAPIProvidersProps) => {
|
|
90
|
+
export declare const useMemoizedBlockServiceAPIProviders: ({ cloudId, parentAri, parentId, product, getVersion, isParentUnpublished, }: BlockServiceAPIProvidersProps) => {
|
|
88
91
|
fetchProvider: BlockServiceADFFetchProvider;
|
|
89
92
|
writeProvider: BlockServiceADFWriteProvider;
|
|
90
93
|
};
|
|
@@ -20,6 +20,8 @@ export declare class ReferenceSyncBlockStoreManager {
|
|
|
20
20
|
private graphqlSubscriptions;
|
|
21
21
|
private useRealTimeSubscriptions;
|
|
22
22
|
private subscriptionChangeListeners;
|
|
23
|
+
private newlyAddedSyncBlocks;
|
|
24
|
+
private onUnpublishedSyncBlockDetected?;
|
|
23
25
|
fetchExperience: Experience | undefined;
|
|
24
26
|
private fetchSourceInfoExperience;
|
|
25
27
|
private saveExperience;
|
|
@@ -57,6 +59,13 @@ export declare class ReferenceSyncBlockStoreManager {
|
|
|
57
59
|
*/
|
|
58
60
|
handleSubscriptionUpdate(syncBlockInstance: SyncBlockInstance): void;
|
|
59
61
|
setFireAnalyticsEvent(fireAnalyticsEvent?: (payload: RendererSyncBlockEventPayload) => void): void;
|
|
62
|
+
setOnUnpublishedSyncBlockDetected(callback?: (resourceId: ResourceId) => void): void;
|
|
63
|
+
/**
|
|
64
|
+
* Mark a sync block as newly added to the document.
|
|
65
|
+
* This should be called when a sync block node is added via a transaction.
|
|
66
|
+
* @param resourceId - The resource ID of the newly added sync block
|
|
67
|
+
*/
|
|
68
|
+
markAsNewlyAdded(resourceId: ResourceId): void;
|
|
60
69
|
generateResourceIdForReference(sourceId: ResourceId): ResourceId;
|
|
61
70
|
updateFireAnalyticsEvent(fireAnalyticsEvent?: (payload: RendererSyncBlockEventPayload) => void): void;
|
|
62
71
|
getInitialSyncBlockData(resourceId: ResourceId): SyncBlockInstance | undefined;
|
|
@@ -18,6 +18,7 @@ export declare class SourceSyncBlockStoreManager {
|
|
|
18
18
|
private createExperience;
|
|
19
19
|
private saveExperience;
|
|
20
20
|
private deleteExperience;
|
|
21
|
+
private fetchSourceInfoExperience;
|
|
21
22
|
constructor(dataProvider?: SyncBlockDataProvider);
|
|
22
23
|
setFireAnalyticsEvent(fireAnalyticsEvent?: (payload: SyncBlockEventPayload) => void): void;
|
|
23
24
|
isSourceBlock(node: PMNode): boolean;
|
|
@@ -8,6 +8,8 @@ export declare class SyncBlockStoreManager {
|
|
|
8
8
|
private sourceSyncBlockStoreManager;
|
|
9
9
|
private dataProvider?;
|
|
10
10
|
private fireAnalyticsEvent?;
|
|
11
|
+
private fetchReferencesExperience;
|
|
12
|
+
private fetchSourceInfoExperience;
|
|
11
13
|
constructor(dataProvider?: SyncBlockDataProvider);
|
|
12
14
|
fetchReferencesSourceInfo(resourceId: ResourceId, blockInstanceId: BlockInstanceId, isSourceSyncBlock: boolean): Promise<ReferencesSourceInfo>;
|
|
13
15
|
setFireAnalyticsEvent(fireAnalyticsEvent?: (payload: SyncBlockEventPayload) => void): void;
|
|
@@ -49,3 +49,11 @@ export declare const getDeleteSourceExperience: (fireAnalyticsEvent?: (payload:
|
|
|
49
49
|
* Failure: When the timeout duration passes without the data being successfully fetched, or the fetch fails
|
|
50
50
|
*/
|
|
51
51
|
export declare const getCreateSourceExperience: (fireAnalyticsEvent?: (payload: SyncBlockEventPayload) => void) => Experience;
|
|
52
|
+
/**
|
|
53
|
+
* This experience tracks when a source sync block is created and registered to the BE.
|
|
54
|
+
*
|
|
55
|
+
* Start: When the fetchSourceInfo function is called.
|
|
56
|
+
* Success: When the fetching the data is successful within the timeout duration of start.
|
|
57
|
+
* Failure: When the timeout duration passes without the data being successfully fetched, or the fetch fails
|
|
58
|
+
*/
|
|
59
|
+
export declare const getFetchReferencesExperience: (fireAnalyticsEvent?: (payload: SyncBlockEventPayload) => void) => Experience;
|
|
@@ -84,6 +84,7 @@ export type CreateSyncedBlockRequest = {
|
|
|
84
84
|
content: string;
|
|
85
85
|
product: SyncBlockProduct;
|
|
86
86
|
sourceAri: string;
|
|
87
|
+
status?: SyncBlockStatus;
|
|
87
88
|
stepVersion?: number;
|
|
88
89
|
};
|
|
89
90
|
type ReferenceSyncedBlockIDs = {
|
|
@@ -119,7 +120,7 @@ export declare class BlockError extends Error {
|
|
|
119
120
|
readonly status: number;
|
|
120
121
|
constructor(status: number);
|
|
121
122
|
}
|
|
122
|
-
export declare const getSyncedBlockContent: ({ blockAri }: GetSyncedBlockContentRequest) => Promise<BlockContentResponse>;
|
|
123
|
+
export declare const getSyncedBlockContent: ({ blockAri, }: GetSyncedBlockContentRequest) => Promise<BlockContentResponse>;
|
|
123
124
|
/**
|
|
124
125
|
* Batch retrieves multiple synced blocks by their ARIs.
|
|
125
126
|
*
|
|
@@ -131,7 +132,7 @@ export declare const getSyncedBlockContent: ({ blockAri }: GetSyncedBlockContent
|
|
|
131
132
|
export declare const batchRetrieveSyncedBlocks: ({ blockIdentifiers, documentAri, }: BatchRetrieveSyncedBlocksRequest) => Promise<BatchRetrieveSyncedBlocksResponse>;
|
|
132
133
|
export declare const deleteSyncedBlock: ({ blockAri, deleteReason, }: DeleteSyncedBlockRequest) => Promise<void>;
|
|
133
134
|
export declare const updateSyncedBlock: ({ blockAri, content, stepVersion, }: UpdateSyncedBlockRequest) => Promise<void>;
|
|
134
|
-
export declare const createSyncedBlock: ({ blockAri, blockInstanceId, sourceAri, product, content, stepVersion, }: CreateSyncedBlockRequest) => Promise<BlockContentResponse>;
|
|
135
|
+
export declare const createSyncedBlock: ({ blockAri, blockInstanceId, sourceAri, product, content, stepVersion, status, }: CreateSyncedBlockRequest) => Promise<BlockContentResponse>;
|
|
135
136
|
export declare const updateReferenceSyncedBlockOnDocument: ({ documentAri, blocks, noContent, }: UpdateReferenceSyncedBlockOnDocumentRequest) => Promise<ReferenceSyncedBlockResponse | void>;
|
|
136
137
|
export declare const getReferenceSyncedBlocksByBlockAri: ({ blockAri, }: GetReferenceSyncedBlocksByBlockAriRequest) => Promise<GetReferenceSyncedBlocksByBlockAriResponse>;
|
|
137
138
|
export {};
|
|
@@ -56,6 +56,7 @@ declare class BlockServiceADFFetchProvider implements ADFFetchProvider {
|
|
|
56
56
|
interface BlockServiceADFWriteProviderProps {
|
|
57
57
|
cloudId: string;
|
|
58
58
|
getVersion?: () => number | undefined;
|
|
59
|
+
isParentUnpublished?: () => boolean;
|
|
59
60
|
parentAri: string | undefined;
|
|
60
61
|
parentId?: string;
|
|
61
62
|
product: SyncBlockProduct;
|
|
@@ -67,9 +68,10 @@ declare class BlockServiceADFWriteProvider implements ADFWriteProvider {
|
|
|
67
68
|
private cloudId;
|
|
68
69
|
private parentId?;
|
|
69
70
|
private getVersion?;
|
|
71
|
+
private isParentUnpublished?;
|
|
70
72
|
product: SyncBlockProduct;
|
|
71
73
|
parentAri: string | undefined;
|
|
72
|
-
constructor({ cloudId, parentAri, parentId, product, getVersion, }: BlockServiceADFWriteProviderProps);
|
|
74
|
+
constructor({ cloudId, parentAri, parentId, product, getVersion, isParentUnpublished, }: BlockServiceADFWriteProviderProps);
|
|
73
75
|
writeData(data: SyncBlockData): Promise<WriteSyncBlockResult>;
|
|
74
76
|
createData(data: SyncBlockData): Promise<WriteSyncBlockResult>;
|
|
75
77
|
deleteData(resourceId: string, deleteReason: string | undefined): Promise<DeleteSyncBlockResult>;
|
|
@@ -80,11 +82,12 @@ declare class BlockServiceADFWriteProvider implements ADFWriteProvider {
|
|
|
80
82
|
interface BlockServiceAPIProvidersProps {
|
|
81
83
|
cloudId: string;
|
|
82
84
|
getVersion?: () => number | undefined;
|
|
85
|
+
isParentUnpublished?: () => boolean;
|
|
83
86
|
parentAri: string | undefined;
|
|
84
87
|
parentId?: string;
|
|
85
88
|
product: SyncBlockProduct;
|
|
86
89
|
}
|
|
87
|
-
export declare const useMemoizedBlockServiceAPIProviders: ({ cloudId, parentAri, parentId, product, getVersion, }: BlockServiceAPIProvidersProps) => {
|
|
90
|
+
export declare const useMemoizedBlockServiceAPIProviders: ({ cloudId, parentAri, parentId, product, getVersion, isParentUnpublished, }: BlockServiceAPIProvidersProps) => {
|
|
88
91
|
fetchProvider: BlockServiceADFFetchProvider;
|
|
89
92
|
writeProvider: BlockServiceADFWriteProvider;
|
|
90
93
|
};
|
|
@@ -20,6 +20,8 @@ export declare class ReferenceSyncBlockStoreManager {
|
|
|
20
20
|
private graphqlSubscriptions;
|
|
21
21
|
private useRealTimeSubscriptions;
|
|
22
22
|
private subscriptionChangeListeners;
|
|
23
|
+
private newlyAddedSyncBlocks;
|
|
24
|
+
private onUnpublishedSyncBlockDetected?;
|
|
23
25
|
fetchExperience: Experience | undefined;
|
|
24
26
|
private fetchSourceInfoExperience;
|
|
25
27
|
private saveExperience;
|
|
@@ -57,6 +59,13 @@ export declare class ReferenceSyncBlockStoreManager {
|
|
|
57
59
|
*/
|
|
58
60
|
handleSubscriptionUpdate(syncBlockInstance: SyncBlockInstance): void;
|
|
59
61
|
setFireAnalyticsEvent(fireAnalyticsEvent?: (payload: RendererSyncBlockEventPayload) => void): void;
|
|
62
|
+
setOnUnpublishedSyncBlockDetected(callback?: (resourceId: ResourceId) => void): void;
|
|
63
|
+
/**
|
|
64
|
+
* Mark a sync block as newly added to the document.
|
|
65
|
+
* This should be called when a sync block node is added via a transaction.
|
|
66
|
+
* @param resourceId - The resource ID of the newly added sync block
|
|
67
|
+
*/
|
|
68
|
+
markAsNewlyAdded(resourceId: ResourceId): void;
|
|
60
69
|
generateResourceIdForReference(sourceId: ResourceId): ResourceId;
|
|
61
70
|
updateFireAnalyticsEvent(fireAnalyticsEvent?: (payload: RendererSyncBlockEventPayload) => void): void;
|
|
62
71
|
getInitialSyncBlockData(resourceId: ResourceId): SyncBlockInstance | undefined;
|
|
@@ -18,6 +18,7 @@ export declare class SourceSyncBlockStoreManager {
|
|
|
18
18
|
private createExperience;
|
|
19
19
|
private saveExperience;
|
|
20
20
|
private deleteExperience;
|
|
21
|
+
private fetchSourceInfoExperience;
|
|
21
22
|
constructor(dataProvider?: SyncBlockDataProvider);
|
|
22
23
|
setFireAnalyticsEvent(fireAnalyticsEvent?: (payload: SyncBlockEventPayload) => void): void;
|
|
23
24
|
isSourceBlock(node: PMNode): boolean;
|
|
@@ -8,6 +8,8 @@ export declare class SyncBlockStoreManager {
|
|
|
8
8
|
private sourceSyncBlockStoreManager;
|
|
9
9
|
private dataProvider?;
|
|
10
10
|
private fireAnalyticsEvent?;
|
|
11
|
+
private fetchReferencesExperience;
|
|
12
|
+
private fetchSourceInfoExperience;
|
|
11
13
|
constructor(dataProvider?: SyncBlockDataProvider);
|
|
12
14
|
fetchReferencesSourceInfo(resourceId: ResourceId, blockInstanceId: BlockInstanceId, isSourceSyncBlock: boolean): Promise<ReferencesSourceInfo>;
|
|
13
15
|
setFireAnalyticsEvent(fireAnalyticsEvent?: (payload: SyncBlockEventPayload) => void): void;
|
|
@@ -49,3 +49,11 @@ export declare const getDeleteSourceExperience: (fireAnalyticsEvent?: (payload:
|
|
|
49
49
|
* Failure: When the timeout duration passes without the data being successfully fetched, or the fetch fails
|
|
50
50
|
*/
|
|
51
51
|
export declare const getCreateSourceExperience: (fireAnalyticsEvent?: (payload: SyncBlockEventPayload) => void) => Experience;
|
|
52
|
+
/**
|
|
53
|
+
* This experience tracks when a source sync block is created and registered to the BE.
|
|
54
|
+
*
|
|
55
|
+
* Start: When the fetchSourceInfo function is called.
|
|
56
|
+
* Success: When the fetching the data is successful within the timeout duration of start.
|
|
57
|
+
* Failure: When the timeout duration passes without the data being successfully fetched, or the fetch fails
|
|
58
|
+
*/
|
|
59
|
+
export declare const getFetchReferencesExperience: (fireAnalyticsEvent?: (payload: SyncBlockEventPayload) => void) => Experience;
|
package/package.json
CHANGED
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"uuid": "^3.1.0"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
|
-
"@atlaskit/editor-common": "^111.
|
|
38
|
+
"@atlaskit/editor-common": "^111.9.0",
|
|
39
39
|
"react": "^18.2.0"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
}
|
|
79
79
|
},
|
|
80
80
|
"name": "@atlaskit/editor-synced-block-provider",
|
|
81
|
-
"version": "3.14.
|
|
81
|
+
"version": "3.14.3",
|
|
82
82
|
"description": "Synced Block Provider for @atlaskit/editor-plugin-synced-block",
|
|
83
83
|
"author": "Atlassian Pty Ltd",
|
|
84
84
|
"license": "Apache-2.0",
|