@atlaskit/editor-synced-block-provider 6.5.2 → 6.5.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 +9 -0
- package/dist/cjs/clients/jira/sourceInfo.js +63 -10
- package/dist/cjs/hooks/useFetchSyncBlockData.js +1 -1
- package/dist/cjs/providers/types.js +6 -0
- package/dist/cjs/store-manager/referenceSyncBlockStoreManager.js +24 -12
- package/dist/cjs/store-manager/sourceSyncBlockStoreManager.js +18 -15
- package/dist/cjs/store-manager/syncBlockBatchFetcher.js +1 -1
- package/dist/cjs/store-manager/syncBlockProviderFactoryManager.js +6 -4
- package/dist/cjs/store-manager/syncBlockStoreManager.js +2 -1
- package/dist/cjs/store-manager/syncBlockSubscriptionManager.js +9 -5
- package/dist/cjs/utils/errorHandling.js +41 -26
- package/dist/cjs/utils/resolveSyncBlockInstance.js +11 -10
- package/dist/cjs/utils/utils.js +30 -2
- package/dist/es2019/clients/jira/sourceInfo.js +64 -4
- package/dist/es2019/hooks/useFetchSyncBlockData.js +2 -2
- package/dist/es2019/providers/syncBlockProvider.js +4 -2
- package/dist/es2019/providers/types.js +7 -0
- package/dist/es2019/store-manager/referenceSyncBlockStoreManager.js +25 -13
- package/dist/es2019/store-manager/sourceSyncBlockStoreManager.js +19 -16
- package/dist/es2019/store-manager/syncBlockBatchFetcher.js +2 -2
- package/dist/es2019/store-manager/syncBlockProviderFactoryManager.js +6 -4
- package/dist/es2019/store-manager/syncBlockStoreManager.js +2 -1
- package/dist/es2019/store-manager/syncBlockSubscriptionManager.js +9 -5
- package/dist/es2019/utils/errorHandling.js +33 -14
- package/dist/es2019/utils/resolveSyncBlockInstance.js +11 -10
- package/dist/es2019/utils/utils.js +26 -0
- package/dist/esm/clients/jira/sourceInfo.js +63 -11
- package/dist/esm/hooks/useFetchSyncBlockData.js +2 -2
- package/dist/esm/providers/types.js +7 -0
- package/dist/esm/store-manager/referenceSyncBlockStoreManager.js +25 -13
- package/dist/esm/store-manager/sourceSyncBlockStoreManager.js +19 -16
- package/dist/esm/store-manager/syncBlockBatchFetcher.js +2 -2
- package/dist/esm/store-manager/syncBlockProviderFactoryManager.js +6 -4
- package/dist/esm/store-manager/syncBlockStoreManager.js +2 -1
- package/dist/esm/store-manager/syncBlockSubscriptionManager.js +9 -5
- package/dist/esm/utils/errorHandling.js +41 -26
- package/dist/esm/utils/resolveSyncBlockInstance.js +11 -10
- package/dist/esm/utils/utils.js +29 -1
- package/dist/types/clients/jira/sourceInfo.d.ts +20 -0
- package/dist/types/common/types.d.ts +2 -1
- package/dist/types/providers/types.d.ts +17 -0
- package/dist/types/utils/errorHandling.d.ts +13 -12
- package/dist/types/utils/utils.d.ts +3 -1
- package/dist/types-ts4.5/clients/jira/sourceInfo.d.ts +20 -0
- package/dist/types-ts4.5/common/types.d.ts +2 -1
- package/dist/types-ts4.5/providers/types.d.ts +17 -0
- package/dist/types-ts4.5/utils/errorHandling.d.ts +13 -12
- package/dist/types-ts4.5/utils/utils.d.ts +3 -1
- package/package.json +6 -3
- package/types/package.json +17 -0
- package/utils/package.json +17 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# @atlaskit/editor-synced-block-provider
|
|
2
2
|
|
|
3
|
+
## 6.5.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`9784984097a8a`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/9784984097a8a) -
|
|
8
|
+
[ux] Improves synced block support for Jira work items, including product-specific copy,
|
|
9
|
+
issue-type icons, and enhanced analytics.
|
|
10
|
+
- Updated dependencies
|
|
11
|
+
|
|
3
12
|
## 6.5.2
|
|
4
13
|
|
|
5
14
|
### Patch Changes
|
|
@@ -8,6 +8,7 @@ exports.fetchJiraWorkItemInfo = void 0;
|
|
|
8
8
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
9
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
10
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
11
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
11
12
|
var _retry = require("../../utils/retry");
|
|
12
13
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
13
14
|
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) { (0, _defineProperty2.default)(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; } /* eslint-disable require-unicode-regexp */
|
|
@@ -25,7 +26,11 @@ var GET_SOURCE_INFO_OPERATION_NAME = 'EDITOR_SYNCED_BLOCK_GET_SOURCE_INFO';
|
|
|
25
26
|
* @param id - the ID of the work item
|
|
26
27
|
* @returns url of the work item
|
|
27
28
|
*/
|
|
28
|
-
|
|
29
|
+
// `issueType` is requested unconditionally because GraphQL field selection cannot be
|
|
30
|
+
// gated at the network layer without a separate operation; AGG ignores unknown
|
|
31
|
+
// front-end gating. The runtime mapping into `SyncBlockSourceInfo.issueType` is gated
|
|
32
|
+
// by `platform_synced_block_patch_11` below.
|
|
33
|
+
var GET_SOURCE_INFO_QUERY = "query ".concat(GET_SOURCE_INFO_OPERATION_NAME, " ($id: ID!) {\n jira {\n issueById(id: $id) {\n id\n webUrl\n summary\n issueType {\n name\n avatar {\n xsmall\n }\n }\n }\n }}");
|
|
29
34
|
var getJiraWorkItemSourceInfo = /*#__PURE__*/function () {
|
|
30
35
|
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(ari) {
|
|
31
36
|
var bodyData, response;
|
|
@@ -113,34 +118,82 @@ var resolveNoAccessWorkItemInfo = /*#__PURE__*/function () {
|
|
|
113
118
|
return _ref2.apply(this, arguments);
|
|
114
119
|
};
|
|
115
120
|
}();
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Fetch source-info metadata for a Jira work item used by reference sync blocks.
|
|
124
|
+
*
|
|
125
|
+
* Parity notes vs the Confluence equivalent (`fetchConfluencePageInfo`):
|
|
126
|
+
*
|
|
127
|
+
* - **Archived / draft URL variants** are intentionally omitted. Confluence pages can be
|
|
128
|
+
* "unpublished" (draft, archived, in-trash) and need REST fallbacks plus alternate URL
|
|
129
|
+
* shapes. Jira work items have no equivalent lifecycle — an issue either exists in AGG
|
|
130
|
+
* or it does not — so a single `webUrl` is sufficient.
|
|
131
|
+
*
|
|
132
|
+
* - **`#block-{localId}` deep-link anchor** is intentionally not appended. The current
|
|
133
|
+
* Jira issue view does not implement scroll-to-anchor for unknown fragments, so the
|
|
134
|
+
* anchor would be dead weight on the URL. The dispatching code in
|
|
135
|
+
* `syncBlockProvider.fetchSyncBlockSourceInfo` deliberately does not pass `localId`
|
|
136
|
+
* here for the same reason. If/when Jira issue view supports anchor scrolling for
|
|
137
|
+
* sync-block local IDs, accept `localId?: string` here and append `#block-{localId}`.
|
|
138
|
+
*
|
|
139
|
+
* - **`subType` / page-type variants** are not modeled — Jira issue type is exposed via
|
|
140
|
+
* the separate `issueType` field returned alongside `summary` / `webUrl`.
|
|
141
|
+
*/
|
|
116
142
|
var fetchJiraWorkItemInfo = exports.fetchJiraWorkItemInfo = /*#__PURE__*/function () {
|
|
117
143
|
var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(workItemAri, hasAccess) {
|
|
118
|
-
var _response$data, response, contentData, webUrl, summary;
|
|
144
|
+
var _response$data, _contentData$webUrl, _contentData$summary, response, contentData, _rawIssueType$avatar, _webUrl, _summary, rawIssueType, issueTypeName, issueType, webUrl, summary;
|
|
119
145
|
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
120
146
|
while (1) switch (_context3.prev = _context3.next) {
|
|
121
147
|
case 0:
|
|
122
148
|
if (!hasAccess) {
|
|
123
|
-
_context3.next =
|
|
149
|
+
_context3.next = 17;
|
|
124
150
|
break;
|
|
125
151
|
}
|
|
126
152
|
_context3.next = 3;
|
|
127
153
|
return getJiraWorkItemSourceInfo(workItemAri);
|
|
128
154
|
case 3:
|
|
129
155
|
response = _context3.sent;
|
|
130
|
-
contentData = (_response$data = response.data) === null || _response$data === void 0 || (_response$data = _response$data.jira) === null || _response$data === void 0 ? void 0 : _response$data.issueById;
|
|
131
|
-
|
|
132
|
-
|
|
156
|
+
contentData = (_response$data = response.data) === null || _response$data === void 0 || (_response$data = _response$data.jira) === null || _response$data === void 0 ? void 0 : _response$data.issueById; // Defensive narrowing (gated by `platform_synced_block_patch_11`):
|
|
157
|
+
// AGG may return `null` (not just omit the field) for `webUrl` / `summary` on
|
|
158
|
+
// partially indexed issues. Without these guards, downstream consumers that
|
|
159
|
+
// expect `string | undefined` would receive `null` and either crash or render
|
|
160
|
+
// the literal string "null". The pre-gate path preserves the legacy behaviour
|
|
161
|
+
// so this can be dialled off independently.
|
|
162
|
+
if (!(0, _platformFeatureFlags.fg)('platform_synced_block_patch_11')) {
|
|
163
|
+
_context3.next = 12;
|
|
164
|
+
break;
|
|
165
|
+
}
|
|
166
|
+
_webUrl = typeof (contentData === null || contentData === void 0 ? void 0 : contentData.webUrl) === 'string' ? contentData.webUrl : undefined;
|
|
167
|
+
_summary = typeof (contentData === null || contentData === void 0 ? void 0 : contentData.summary) === 'string' ? contentData.summary : undefined; // Surface issue-type metadata so consumers can render the correct ADS issue-type
|
|
168
|
+
// icon. Defensive narrowing mirrors the webUrl/summary treatment above: only
|
|
169
|
+
// surfaced when `name` is a non-empty string; AGG values like `{ name: null }`
|
|
170
|
+
// collapse back to `undefined`.
|
|
171
|
+
rawIssueType = contentData === null || contentData === void 0 ? void 0 : contentData.issueType;
|
|
172
|
+
issueTypeName = typeof (rawIssueType === null || rawIssueType === void 0 ? void 0 : rawIssueType.name) === 'string' && rawIssueType.name.length > 0 ? rawIssueType.name : undefined;
|
|
173
|
+
issueType = issueTypeName ? {
|
|
174
|
+
name: issueTypeName,
|
|
175
|
+
iconUrl: typeof (rawIssueType === null || rawIssueType === void 0 || (_rawIssueType$avatar = rawIssueType.avatar) === null || _rawIssueType$avatar === void 0 ? void 0 : _rawIssueType$avatar.xsmall) === 'string' ? rawIssueType.avatar.xsmall : undefined
|
|
176
|
+
} : undefined;
|
|
177
|
+
return _context3.abrupt("return", Promise.resolve({
|
|
178
|
+
url: _webUrl,
|
|
179
|
+
sourceAri: workItemAri,
|
|
180
|
+
title: _summary,
|
|
181
|
+
issueType: issueType
|
|
182
|
+
}));
|
|
183
|
+
case 12:
|
|
184
|
+
webUrl = (_contentData$webUrl = contentData === null || contentData === void 0 ? void 0 : contentData.webUrl) !== null && _contentData$webUrl !== void 0 ? _contentData$webUrl : undefined;
|
|
185
|
+
summary = (_contentData$summary = contentData === null || contentData === void 0 ? void 0 : contentData.summary) !== null && _contentData$summary !== void 0 ? _contentData$summary : undefined;
|
|
133
186
|
return _context3.abrupt("return", Promise.resolve({
|
|
134
187
|
url: webUrl,
|
|
135
188
|
sourceAri: workItemAri,
|
|
136
189
|
title: summary
|
|
137
190
|
}));
|
|
138
|
-
case
|
|
139
|
-
_context3.next =
|
|
191
|
+
case 17:
|
|
192
|
+
_context3.next = 19;
|
|
140
193
|
return resolveNoAccessWorkItemInfo(workItemAri);
|
|
141
|
-
case
|
|
194
|
+
case 19:
|
|
142
195
|
return _context3.abrupt("return", _context3.sent);
|
|
143
|
-
case
|
|
196
|
+
case 20:
|
|
144
197
|
case "end":
|
|
145
198
|
return _context3.stop();
|
|
146
199
|
}
|
|
@@ -78,7 +78,7 @@ var useFetchSyncBlockData = exports.useFetchSyncBlockData = function useFetchSyn
|
|
|
78
78
|
(0, _monitoring.logException)(_context.t0, {
|
|
79
79
|
location: 'editor-synced-block-provider/useFetchSyncBlockData'
|
|
80
80
|
});
|
|
81
|
-
fireAnalyticsEvent === null || fireAnalyticsEvent === void 0 || fireAnalyticsEvent((0, _errorHandling.fetchErrorPayload)(_context.t0.message));
|
|
81
|
+
fireAnalyticsEvent === null || fireAnalyticsEvent === void 0 || fireAnalyticsEvent((0, _errorHandling.fetchErrorPayload)(_context.t0.message, resourceId, (0, _utils.productAttrIfGateOn)(resourceId)));
|
|
82
82
|
|
|
83
83
|
// Set error state if fetching fails
|
|
84
84
|
setFetchState({
|
|
@@ -18,6 +18,12 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
|
|
|
18
18
|
* Mainly used for representing the state of a sync block after fetching from a data provider.
|
|
19
19
|
* This will be used in both data processing and rendering contexts.
|
|
20
20
|
*/
|
|
21
|
+
/**
|
|
22
|
+
* Lightweight metadata for a Jira issue's type, surfaced so consumers can render the
|
|
23
|
+
* correct ADS issue-type icon (Task / Bug / Story / Epic / Subtask) or fall back to the
|
|
24
|
+
* AGG-provided `iconUrl` for custom types. Optional throughout — Confluence references
|
|
25
|
+
* leave it `undefined`.
|
|
26
|
+
*/
|
|
21
27
|
/**
|
|
22
28
|
* Configuration options for batch fetch operations
|
|
23
29
|
*/
|
|
@@ -300,7 +300,8 @@ var ReferenceSyncBlockStoreManager = exports.ReferenceSyncBlockStoreManager = /*
|
|
|
300
300
|
sourceURL = _ref.sourceURL,
|
|
301
301
|
sourceTitle = _ref.sourceTitle,
|
|
302
302
|
onSameDocument = _ref.onSameDocument,
|
|
303
|
-
sourceSubType = _ref.sourceSubType
|
|
303
|
+
sourceSubType = _ref.sourceSubType,
|
|
304
|
+
issueType = _ref.issueType;
|
|
304
305
|
// skip if source URL and title are already present
|
|
305
306
|
if (sourceURL && sourceTitle) {
|
|
306
307
|
return Promise.resolve({
|
|
@@ -309,12 +310,18 @@ var ReferenceSyncBlockStoreManager = exports.ReferenceSyncBlockStoreManager = /*
|
|
|
309
310
|
subType: sourceSubType,
|
|
310
311
|
sourceAri: sourceAri || '',
|
|
311
312
|
onSameDocument: onSameDocument,
|
|
312
|
-
productType: product
|
|
313
|
+
productType: product,
|
|
314
|
+
issueType: issueType
|
|
313
315
|
});
|
|
314
316
|
}
|
|
317
|
+
|
|
318
|
+
// Derive once per call so we don't re-parse on every analytics event below.
|
|
319
|
+
// `product` from cached data is preferred when available; fall back to parsing
|
|
320
|
+
// the resourceId.
|
|
321
|
+
var sourceProduct = (0, _platformFeatureFlags.fg)('platform_synced_block_patch_11') ? product !== null && product !== void 0 ? product : (0, _utils.getSourceProductFromResourceIdSafe)(resourceId) : undefined;
|
|
315
322
|
if (!sourceAri || !product || !blockInstanceId) {
|
|
316
323
|
var _this$fireAnalyticsEv3;
|
|
317
|
-
(_this$fireAnalyticsEv3 = this.fireAnalyticsEvent) === null || _this$fireAnalyticsEv3 === void 0 || _this$fireAnalyticsEv3.call(this, (0, _errorHandling.getSourceInfoErrorPayload)('SourceAri, product or blockInstanceId missing', resourceId));
|
|
324
|
+
(_this$fireAnalyticsEv3 = this.fireAnalyticsEvent) === null || _this$fireAnalyticsEv3 === void 0 || _this$fireAnalyticsEv3.call(this, (0, _errorHandling.getSourceInfoErrorPayload)('SourceAri, product or blockInstanceId missing', resourceId, sourceProduct));
|
|
318
325
|
return Promise.resolve(undefined);
|
|
319
326
|
}
|
|
320
327
|
(_this$fetchSourceInfo = this.fetchSourceInfoExperience) === null || _this$fetchSourceInfo === void 0 || _this$fetchSourceInfo.start({});
|
|
@@ -325,7 +332,7 @@ var ReferenceSyncBlockStoreManager = exports.ReferenceSyncBlockStoreManager = /*
|
|
|
325
332
|
(_this2$fetchSourceInf = _this2.fetchSourceInfoExperience) === null || _this2$fetchSourceInf === void 0 || _this2$fetchSourceInf.failure({
|
|
326
333
|
reason: 'No source info returned'
|
|
327
334
|
});
|
|
328
|
-
(_this2$fireAnalyticsE = _this2.fireAnalyticsEvent) === null || _this2$fireAnalyticsE === void 0 || _this2$fireAnalyticsE.call(_this2, (0, _errorHandling.getSourceInfoErrorPayload)('No source info returned', resourceId));
|
|
335
|
+
(_this2$fireAnalyticsE = _this2.fireAnalyticsEvent) === null || _this2$fireAnalyticsE === void 0 || _this2$fireAnalyticsE.call(_this2, (0, _errorHandling.getSourceInfoErrorPayload)('No source info returned', resourceId, sourceProduct));
|
|
329
336
|
return undefined;
|
|
330
337
|
}
|
|
331
338
|
_this2.updateCacheWithSourceInfo(resourceId, sourceInfo);
|
|
@@ -340,7 +347,7 @@ var ReferenceSyncBlockStoreManager = exports.ReferenceSyncBlockStoreManager = /*
|
|
|
340
347
|
(_this2$fetchSourceInf3 = _this2.fetchSourceInfoExperience) === null || _this2$fetchSourceInf3 === void 0 || _this2$fetchSourceInf3.failure({
|
|
341
348
|
reason: 'Missing title or url'
|
|
342
349
|
});
|
|
343
|
-
(_this2$fireAnalyticsE2 = _this2.fireAnalyticsEvent) === null || _this2$fireAnalyticsE2 === void 0 || _this2$fireAnalyticsE2.call(_this2, (0, _errorHandling.getSourceInfoErrorPayload)('Missing title or url', resourceId));
|
|
350
|
+
(_this2$fireAnalyticsE2 = _this2.fireAnalyticsEvent) === null || _this2$fireAnalyticsE2 === void 0 || _this2$fireAnalyticsE2.call(_this2, (0, _errorHandling.getSourceInfoErrorPayload)('Missing title or url', resourceId, sourceProduct));
|
|
344
351
|
}
|
|
345
352
|
return sourceInfo;
|
|
346
353
|
}).catch(function (error) {
|
|
@@ -348,7 +355,7 @@ var ReferenceSyncBlockStoreManager = exports.ReferenceSyncBlockStoreManager = /*
|
|
|
348
355
|
(_this2$fetchSourceInf4 = _this2.fetchSourceInfoExperience) === null || _this2$fetchSourceInf4 === void 0 || _this2$fetchSourceInf4.failure({
|
|
349
356
|
reason: error.message
|
|
350
357
|
});
|
|
351
|
-
(_this2$fireAnalyticsE3 = _this2.fireAnalyticsEvent) === null || _this2$fireAnalyticsE3 === void 0 || _this2$fireAnalyticsE3.call(_this2, (0, _errorHandling.getSourceInfoErrorPayload)(error.message, resourceId));
|
|
358
|
+
(_this2$fireAnalyticsE3 = _this2.fireAnalyticsEvent) === null || _this2$fireAnalyticsE3 === void 0 || _this2$fireAnalyticsE3.call(_this2, (0, _errorHandling.getSourceInfoErrorPayload)(error.message, resourceId, sourceProduct));
|
|
352
359
|
return undefined;
|
|
353
360
|
}).finally(function () {
|
|
354
361
|
_this2.syncBlockSourceInfoRequests.delete(resourceId);
|
|
@@ -360,7 +367,7 @@ var ReferenceSyncBlockStoreManager = exports.ReferenceSyncBlockStoreManager = /*
|
|
|
360
367
|
(0, _monitoring.logException)(error, {
|
|
361
368
|
location: 'editor-synced-block-provider/referenceSyncBlockStoreManager'
|
|
362
369
|
});
|
|
363
|
-
(_this$fireAnalyticsEv4 = this.fireAnalyticsEvent) === null || _this$fireAnalyticsEv4 === void 0 || _this$fireAnalyticsEv4.call(this, (0, _errorHandling.getSourceInfoErrorPayload)(error.message, resourceId));
|
|
370
|
+
(_this$fireAnalyticsEv4 = this.fireAnalyticsEvent) === null || _this$fireAnalyticsEv4 === void 0 || _this$fireAnalyticsEv4.call(this, (0, _errorHandling.getSourceInfoErrorPayload)(error.message, resourceId, (0, _utils.productAttrIfGateOn)(resourceId)));
|
|
364
371
|
}
|
|
365
372
|
return Promise.resolve(undefined);
|
|
366
373
|
}
|
|
@@ -535,6 +542,7 @@ var ReferenceSyncBlockStoreManager = exports.ReferenceSyncBlockStoreManager = /*
|
|
|
535
542
|
if (!syncBlockInstance.resourceId) {
|
|
536
543
|
var _syncBlockInstance$er, _syncBlockInstance$er2, _this5$fireAnalyticsE;
|
|
537
544
|
var payload = ((_syncBlockInstance$er = syncBlockInstance.error) === null || _syncBlockInstance$er === void 0 ? void 0 : _syncBlockInstance$er.reason) || ((_syncBlockInstance$er2 = syncBlockInstance.error) === null || _syncBlockInstance$er2 === void 0 ? void 0 : _syncBlockInstance$er2.type) || 'Returned sync block instance does not have resource id';
|
|
545
|
+
// No resourceId means we cannot derive a sourceProduct here; intentionally omit.
|
|
538
546
|
(_this5$fireAnalyticsE = _this5.fireAnalyticsEvent) === null || _this5$fireAnalyticsE === void 0 || _this5$fireAnalyticsE.call(_this5, (0, _errorHandling.fetchErrorPayload)(payload));
|
|
539
547
|
return;
|
|
540
548
|
}
|
|
@@ -553,8 +561,8 @@ var ReferenceSyncBlockStoreManager = exports.ReferenceSyncBlockStoreManager = /*
|
|
|
553
561
|
_this5.newlyAddedSyncBlocks.delete(syncBlockInstance.resourceId);
|
|
554
562
|
}
|
|
555
563
|
if (syncBlockInstance.error) {
|
|
556
|
-
var _this5$fireAnalyticsE2;
|
|
557
|
-
(_this5$fireAnalyticsE2 = _this5.fireAnalyticsEvent) === null || _this5$fireAnalyticsE2 === void 0 || _this5$fireAnalyticsE2.call(_this5, (0, _errorHandling.fetchErrorPayload)(syncBlockInstance.error.reason || syncBlockInstance.error.type, syncBlockInstance.resourceId));
|
|
564
|
+
var _this5$fireAnalyticsE2, _syncBlockInstance$da, _syncBlockInstance$da2;
|
|
565
|
+
(_this5$fireAnalyticsE2 = _this5.fireAnalyticsEvent) === null || _this5$fireAnalyticsE2 === void 0 || _this5$fireAnalyticsE2.call(_this5, (0, _errorHandling.fetchErrorPayload)(syncBlockInstance.error.reason || syncBlockInstance.error.type, syncBlockInstance.resourceId, (0, _platformFeatureFlags.fg)('platform_synced_block_patch_11') ? (_syncBlockInstance$da = (_syncBlockInstance$da2 = syncBlockInstance.data) === null || _syncBlockInstance$da2 === void 0 ? void 0 : _syncBlockInstance$da2.product) !== null && _syncBlockInstance$da !== void 0 ? _syncBlockInstance$da : (0, _utils.getSourceProductFromResourceIdSafe)(syncBlockInstance.resourceId) : undefined));
|
|
558
566
|
if (syncBlockInstance.error.type === _types.SyncBlockError.NotFound || syncBlockInstance.error.type === _types.SyncBlockError.Forbidden) {
|
|
559
567
|
hasExpectedError = true;
|
|
560
568
|
} else if (syncBlockInstance.error) {
|
|
@@ -565,8 +573,10 @@ var ReferenceSyncBlockStoreManager = exports.ReferenceSyncBlockStoreManager = /*
|
|
|
565
573
|
var callbacks = _this5._subscriptionManager.getSubscriptions().get(syncBlockInstance.resourceId);
|
|
566
574
|
var localIds = callbacks ? Object.keys(callbacks) : [];
|
|
567
575
|
localIds.forEach(function (localId) {
|
|
568
|
-
var _this5$fireAnalyticsE3, _syncBlockInstance$
|
|
569
|
-
(_this5$fireAnalyticsE3 = _this5.fireAnalyticsEvent) === null || _this5$fireAnalyticsE3 === void 0 || _this5$fireAnalyticsE3.call(_this5, (0, _errorHandling.fetchSuccessPayload)(syncBlockInstance.resourceId, localId,
|
|
576
|
+
var _this5$fireAnalyticsE3, _syncBlockInstance$da3, _syncBlockInstance$da4;
|
|
577
|
+
(_this5$fireAnalyticsE3 = _this5.fireAnalyticsEvent) === null || _this5$fireAnalyticsE3 === void 0 || _this5$fireAnalyticsE3.call(_this5, (0, _errorHandling.fetchSuccessPayload)(syncBlockInstance.resourceId, localId,
|
|
578
|
+
// Prefer cached product when available; fall back to parsing the resourceId.
|
|
579
|
+
(0, _platformFeatureFlags.fg)('platform_synced_block_patch_11') ? (_syncBlockInstance$da3 = (_syncBlockInstance$da4 = syncBlockInstance.data) === null || _syncBlockInstance$da4 === void 0 ? void 0 : _syncBlockInstance$da4.product) !== null && _syncBlockInstance$da3 !== void 0 ? _syncBlockInstance$da3 : (0, _utils.getSourceProductFromResourceIdSafe)(syncBlockInstance.resourceId) : undefined));
|
|
570
580
|
});
|
|
571
581
|
_this5.fetchSyncBlockSourceInfo(resolvedSyncBlockInstance.resourceId);
|
|
572
582
|
});
|
|
@@ -585,7 +595,8 @@ var ReferenceSyncBlockStoreManager = exports.ReferenceSyncBlockStoreManager = /*
|
|
|
585
595
|
sourceURL: sourceInfo === null || sourceInfo === void 0 ? void 0 : sourceInfo.url,
|
|
586
596
|
sourceTitle: sourceInfo === null || sourceInfo === void 0 ? void 0 : sourceInfo.title,
|
|
587
597
|
onSameDocument: sourceInfo === null || sourceInfo === void 0 ? void 0 : sourceInfo.onSameDocument,
|
|
588
|
-
sourceSubType: sourceInfo === null || sourceInfo === void 0 ? void 0 : sourceInfo.subType
|
|
598
|
+
sourceSubType: sourceInfo === null || sourceInfo === void 0 ? void 0 : sourceInfo.subType,
|
|
599
|
+
issueType: sourceInfo === null || sourceInfo === void 0 ? void 0 : sourceInfo.issueType
|
|
589
600
|
});
|
|
590
601
|
this.updateCache(existingSyncBlock);
|
|
591
602
|
}
|
|
@@ -825,6 +836,7 @@ var ReferenceSyncBlockStoreManager = exports.ReferenceSyncBlockStoreManager = /*
|
|
|
825
836
|
(_this$saveExperience3 = this.saveExperience) === null || _this$saveExperience3 === void 0 || _this$saveExperience3.failure({
|
|
826
837
|
reason: _context4.t2.message
|
|
827
838
|
});
|
|
839
|
+
// No `resourceId` available in this catch — sourceProduct is intentionally omitted.
|
|
828
840
|
(_this$fireAnalyticsEv7 = this.fireAnalyticsEvent) === null || _this$fireAnalyticsEv7 === void 0 || _this$fireAnalyticsEv7.call(this, (0, _errorHandling.updateReferenceErrorPayload)(_context4.t2.message));
|
|
829
841
|
case 49:
|
|
830
842
|
_context4.prev = 49;
|
|
@@ -128,11 +128,13 @@ var SourceSyncBlockStoreManager = exports.SourceSyncBlockStoreManager = /*#__PUR
|
|
|
128
128
|
}
|
|
129
129
|
return true;
|
|
130
130
|
} catch (error) {
|
|
131
|
-
var _this$fireAnalyticsEv;
|
|
131
|
+
var _this$fireAnalyticsEv, _syncBlockNode$attrs2, _syncBlockNode$attrs3;
|
|
132
132
|
(0, _monitoring.logException)(error, {
|
|
133
133
|
location: 'editor-synced-block-provider/sourceSyncBlockStoreManager'
|
|
134
134
|
});
|
|
135
|
-
|
|
135
|
+
// We can derive the product from `syncBlockNode.attrs.resourceId` even though
|
|
136
|
+
// the variable wasn't destructured (the destructuring step itself may have thrown).
|
|
137
|
+
(_this$fireAnalyticsEv = this.fireAnalyticsEvent) === null || _this$fireAnalyticsEv === void 0 || _this$fireAnalyticsEv.call(this, (0, _errorHandling.updateCacheErrorPayload)(error.message, syncBlockNode === null || syncBlockNode === void 0 || (_syncBlockNode$attrs2 = syncBlockNode.attrs) === null || _syncBlockNode$attrs2 === void 0 ? void 0 : _syncBlockNode$attrs2.resourceId, (0, _utils.productAttrIfGateOn)(syncBlockNode === null || syncBlockNode === void 0 || (_syncBlockNode$attrs3 = syncBlockNode.attrs) === null || _syncBlockNode$attrs3 === void 0 ? void 0 : _syncBlockNode$attrs3.resourceId)));
|
|
136
138
|
return false;
|
|
137
139
|
}
|
|
138
140
|
}
|
|
@@ -229,7 +231,7 @@ var SourceSyncBlockStoreManager = exports.SourceSyncBlockStoreManager = /*#__PUR
|
|
|
229
231
|
cachedData.status = result.status;
|
|
230
232
|
}
|
|
231
233
|
}
|
|
232
|
-
(_this2$fireAnalyticsE = _this2.fireAnalyticsEvent) === null || _this2$fireAnalyticsE === void 0 || _this2$fireAnalyticsE.call(_this2, (0, _errorHandling.updateSuccessPayload)(result.resourceId, false));
|
|
234
|
+
(_this2$fireAnalyticsE = _this2.fireAnalyticsEvent) === null || _this2$fireAnalyticsE === void 0 || _this2$fireAnalyticsE.call(_this2, (0, _errorHandling.updateSuccessPayload)(result.resourceId, false, (0, _utils.productAttrIfGateOn)(result.resourceId)));
|
|
233
235
|
}
|
|
234
236
|
});
|
|
235
237
|
return _context.abrupt("return", true);
|
|
@@ -239,7 +241,7 @@ var SourceSyncBlockStoreManager = exports.SourceSyncBlockStoreManager = /*#__PUR
|
|
|
239
241
|
return !result.resourceId || result.error;
|
|
240
242
|
}).forEach(function (result) {
|
|
241
243
|
var _this2$fireAnalyticsE2;
|
|
242
|
-
(_this2$fireAnalyticsE2 = _this2.fireAnalyticsEvent) === null || _this2$fireAnalyticsE2 === void 0 || _this2$fireAnalyticsE2.call(_this2, (0, _errorHandling.updateErrorPayload)(result.error || 'Failed to write data', result.resourceId));
|
|
244
|
+
(_this2$fireAnalyticsE2 = _this2.fireAnalyticsEvent) === null || _this2$fireAnalyticsE2 === void 0 || _this2$fireAnalyticsE2.call(_this2, (0, _errorHandling.updateErrorPayload)(result.error || 'Failed to write data', result.resourceId, (0, _utils.productAttrIfGateOn)(result.resourceId)));
|
|
243
245
|
});
|
|
244
246
|
return _context.abrupt("return", false);
|
|
245
247
|
case 24:
|
|
@@ -251,6 +253,7 @@ var SourceSyncBlockStoreManager = exports.SourceSyncBlockStoreManager = /*#__PUR
|
|
|
251
253
|
(0, _monitoring.logException)(_context.t0, {
|
|
252
254
|
location: 'editor-synced-block-provider/sourceSyncBlockStoreManager'
|
|
253
255
|
});
|
|
256
|
+
// Top-level flush failure is not tied to a single resourceId.
|
|
254
257
|
(_this$fireAnalyticsEv2 = this.fireAnalyticsEvent) === null || _this$fireAnalyticsEv2 === void 0 || _this$fireAnalyticsEv2.call(this, (0, _errorHandling.updateErrorPayload)(_context.t0.message));
|
|
255
258
|
return _context.abrupt("return", false);
|
|
256
259
|
case 31:
|
|
@@ -326,16 +329,16 @@ var SourceSyncBlockStoreManager = exports.SourceSyncBlockStoreManager = /*#__PUR
|
|
|
326
329
|
}
|
|
327
330
|
} else {
|
|
328
331
|
var _this$fireAnalyticsEv3;
|
|
329
|
-
(_this$fireAnalyticsEv3 = this.fireAnalyticsEvent) === null || _this$fireAnalyticsEv3 === void 0 || _this$fireAnalyticsEv3.call(this, (0, _errorHandling.createErrorPayload)('creation complete callback missing', resourceId));
|
|
332
|
+
(_this$fireAnalyticsEv3 = this.fireAnalyticsEvent) === null || _this$fireAnalyticsEv3 === void 0 || _this$fireAnalyticsEv3.call(this, (0, _errorHandling.createErrorPayload)('creation complete callback missing', resourceId, (0, _utils.productAttrIfGateOn)(resourceId)));
|
|
330
333
|
}
|
|
331
334
|
if (success) {
|
|
332
335
|
var _this$fireAnalyticsEv4;
|
|
333
|
-
(_this$fireAnalyticsEv4 = this.fireAnalyticsEvent) === null || _this$fireAnalyticsEv4 === void 0 || _this$fireAnalyticsEv4.call(this, (0, _errorHandling.createSuccessPayload)(resourceId || ''));
|
|
336
|
+
(_this$fireAnalyticsEv4 = this.fireAnalyticsEvent) === null || _this$fireAnalyticsEv4 === void 0 || _this$fireAnalyticsEv4.call(this, (0, _errorHandling.createSuccessPayload)(resourceId || '', (0, _utils.productAttrIfGateOn)(resourceId)));
|
|
334
337
|
} else {
|
|
335
338
|
var _this$fireAnalyticsEv5;
|
|
336
339
|
// Delete the node from cache if fail to create so it's not flushed to BE
|
|
337
340
|
this.syncBlockCache.delete(resourceId || '');
|
|
338
|
-
(_this$fireAnalyticsEv5 = this.fireAnalyticsEvent) === null || _this$fireAnalyticsEv5 === void 0 || _this$fireAnalyticsEv5.call(this, (0, _errorHandling.createErrorPayload)('Fail to create bodied sync block', resourceId));
|
|
341
|
+
(_this$fireAnalyticsEv5 = this.fireAnalyticsEvent) === null || _this$fireAnalyticsEv5 === void 0 || _this$fireAnalyticsEv5.call(this, (0, _errorHandling.createErrorPayload)('Fail to create bodied sync block', resourceId, (0, _utils.productAttrIfGateOn)(resourceId)));
|
|
339
342
|
}
|
|
340
343
|
}
|
|
341
344
|
}, {
|
|
@@ -421,7 +424,7 @@ var SourceSyncBlockStoreManager = exports.SourceSyncBlockStoreManager = /*#__PUR
|
|
|
421
424
|
(_this4$createExperien2 = _this4.createExperience) === null || _this4$createExperien2 === void 0 || _this4$createExperien2.failure({
|
|
422
425
|
reason: result.error || 'Failed to create bodied sync block'
|
|
423
426
|
});
|
|
424
|
-
(_this4$fireAnalyticsE = _this4.fireAnalyticsEvent) === null || _this4$fireAnalyticsE === void 0 || _this4$fireAnalyticsE.call(_this4, (0, _errorHandling.createErrorPayload)(result.error || 'Failed to create bodied sync block', resourceId));
|
|
427
|
+
(_this4$fireAnalyticsE = _this4.fireAnalyticsEvent) === null || _this4$fireAnalyticsE === void 0 || _this4$fireAnalyticsE.call(_this4, (0, _errorHandling.createErrorPayload)(result.error || 'Failed to create bodied sync block', resourceId, (0, _utils.productAttrIfGateOn)(resourceId)));
|
|
425
428
|
}
|
|
426
429
|
}).catch(function (error) {
|
|
427
430
|
var _this4$createExperien3, _this4$fireAnalyticsE2;
|
|
@@ -432,7 +435,7 @@ var SourceSyncBlockStoreManager = exports.SourceSyncBlockStoreManager = /*#__PUR
|
|
|
432
435
|
(_this4$createExperien3 = _this4.createExperience) === null || _this4$createExperien3 === void 0 || _this4$createExperien3.failure({
|
|
433
436
|
reason: error.message
|
|
434
437
|
});
|
|
435
|
-
(_this4$fireAnalyticsE2 = _this4.fireAnalyticsEvent) === null || _this4$fireAnalyticsE2 === void 0 || _this4$fireAnalyticsE2.call(_this4, (0, _errorHandling.createErrorPayload)(error.message, resourceId));
|
|
438
|
+
(_this4$fireAnalyticsE2 = _this4.fireAnalyticsEvent) === null || _this4$fireAnalyticsE2 === void 0 || _this4$fireAnalyticsE2.call(_this4, (0, _errorHandling.createErrorPayload)(error.message, resourceId, (0, _utils.productAttrIfGateOn)(resourceId)));
|
|
436
439
|
});
|
|
437
440
|
} catch (error) {
|
|
438
441
|
var _this$fireAnalyticsEv6;
|
|
@@ -442,7 +445,7 @@ var SourceSyncBlockStoreManager = exports.SourceSyncBlockStoreManager = /*#__PUR
|
|
|
442
445
|
(0, _monitoring.logException)(error, {
|
|
443
446
|
location: 'editor-synced-block-provider/sourceSyncBlockStoreManager'
|
|
444
447
|
});
|
|
445
|
-
(_this$fireAnalyticsEv6 = this.fireAnalyticsEvent) === null || _this$fireAnalyticsEv6 === void 0 || _this$fireAnalyticsEv6.call(this, (0, _errorHandling.createErrorPayload)(error.message));
|
|
448
|
+
(_this$fireAnalyticsEv6 = this.fireAnalyticsEvent) === null || _this$fireAnalyticsEv6 === void 0 || _this$fireAnalyticsEv6.call(this, (0, _errorHandling.createErrorPayload)(error.message, resourceId, (0, _utils.productAttrIfGateOn)(resourceId)));
|
|
446
449
|
}
|
|
447
450
|
}
|
|
448
451
|
}, {
|
|
@@ -490,7 +493,7 @@ var SourceSyncBlockStoreManager = exports.SourceSyncBlockStoreManager = /*#__PUR
|
|
|
490
493
|
(_this$deleteExperienc2 = this.deleteExperience) === null || _this$deleteExperienc2 === void 0 || _this$deleteExperienc2.success();
|
|
491
494
|
results.forEach(function (result) {
|
|
492
495
|
var _this5$fireAnalyticsE;
|
|
493
|
-
(_this5$fireAnalyticsE = _this5.fireAnalyticsEvent) === null || _this5$fireAnalyticsE === void 0 || _this5$fireAnalyticsE.call(_this5, (0, _errorHandling.deleteSuccessPayload)(result.resourceId));
|
|
496
|
+
(_this5$fireAnalyticsE = _this5.fireAnalyticsEvent) === null || _this5$fireAnalyticsE === void 0 || _this5$fireAnalyticsE.call(_this5, (0, _errorHandling.deleteSuccessPayload)(result.resourceId, (0, _utils.productAttrIfGateOn)(result.resourceId)));
|
|
494
497
|
});
|
|
495
498
|
} else {
|
|
496
499
|
callback = function callback(Ids) {
|
|
@@ -500,10 +503,10 @@ var SourceSyncBlockStoreManager = exports.SourceSyncBlockStoreManager = /*#__PUR
|
|
|
500
503
|
results.forEach(function (result) {
|
|
501
504
|
if (result.success) {
|
|
502
505
|
var _this5$fireAnalyticsE2;
|
|
503
|
-
(_this5$fireAnalyticsE2 = _this5.fireAnalyticsEvent) === null || _this5$fireAnalyticsE2 === void 0 || _this5$fireAnalyticsE2.call(_this5, (0, _errorHandling.deleteSuccessPayload)(result.resourceId));
|
|
506
|
+
(_this5$fireAnalyticsE2 = _this5.fireAnalyticsEvent) === null || _this5$fireAnalyticsE2 === void 0 || _this5$fireAnalyticsE2.call(_this5, (0, _errorHandling.deleteSuccessPayload)(result.resourceId, (0, _utils.productAttrIfGateOn)(result.resourceId)));
|
|
504
507
|
} else {
|
|
505
508
|
var _this5$fireAnalyticsE3;
|
|
506
|
-
(_this5$fireAnalyticsE3 = _this5.fireAnalyticsEvent) === null || _this5$fireAnalyticsE3 === void 0 || _this5$fireAnalyticsE3.call(_this5, (0, _errorHandling.deleteErrorPayload)(result.error || 'Failed to delete synced block', result.resourceId));
|
|
509
|
+
(_this5$fireAnalyticsE3 = _this5.fireAnalyticsEvent) === null || _this5$fireAnalyticsE3 === void 0 || _this5$fireAnalyticsE3.call(_this5, (0, _errorHandling.deleteErrorPayload)(result.error || 'Failed to delete synced block', result.resourceId, (0, _utils.productAttrIfGateOn)(result.resourceId)));
|
|
507
510
|
}
|
|
508
511
|
});
|
|
509
512
|
}
|
|
@@ -515,7 +518,7 @@ var SourceSyncBlockStoreManager = exports.SourceSyncBlockStoreManager = /*#__PUR
|
|
|
515
518
|
syncBlockIds.forEach(function (Ids) {
|
|
516
519
|
var _this5$fireAnalyticsE4;
|
|
517
520
|
_this5.setPendingDeletion(Ids, false);
|
|
518
|
-
(_this5$fireAnalyticsE4 = _this5.fireAnalyticsEvent) === null || _this5$fireAnalyticsE4 === void 0 || _this5$fireAnalyticsE4.call(_this5, (0, _errorHandling.deleteErrorPayload)(_context2.t0.message, Ids.resourceId));
|
|
521
|
+
(_this5$fireAnalyticsE4 = _this5.fireAnalyticsEvent) === null || _this5$fireAnalyticsE4 === void 0 || _this5$fireAnalyticsE4.call(_this5, (0, _errorHandling.deleteErrorPayload)(_context2.t0.message, Ids.resourceId, (0, _utils.productAttrIfGateOn)(Ids.resourceId)));
|
|
519
522
|
});
|
|
520
523
|
(0, _monitoring.logException)(_context2.t0, {
|
|
521
524
|
location: 'editor-synced-block-provider/sourceSyncBlockStoreManager'
|
|
@@ -809,7 +812,7 @@ var SourceSyncBlockStoreManager = exports.SourceSyncBlockStoreManager = /*#__PUR
|
|
|
809
812
|
(0, _monitoring.logException)(error, {
|
|
810
813
|
location: 'editor-synced-block-provider/sourceSyncBlockStoreManager'
|
|
811
814
|
});
|
|
812
|
-
(_this$fireAnalyticsEv8 = this.fireAnalyticsEvent) === null || _this$fireAnalyticsEv8 === void 0 || _this$fireAnalyticsEv8.call(this, (0, _errorHandling.fetchReferencesErrorPayload)(error.message));
|
|
815
|
+
(_this$fireAnalyticsEv8 = this.fireAnalyticsEvent) === null || _this$fireAnalyticsEv8 === void 0 || _this$fireAnalyticsEv8.call(this, (0, _errorHandling.fetchReferencesErrorPayload)(error.message, resourceId, (0, _utils.productAttrIfGateOn)(resourceId)));
|
|
813
816
|
return Promise.resolve({
|
|
814
817
|
error: _types.SyncBlockError.Errored
|
|
815
818
|
});
|
|
@@ -40,7 +40,7 @@ var SyncBlockBatchFetcher = exports.SyncBlockBatchFetcher = /*#__PURE__*/functio
|
|
|
40
40
|
});
|
|
41
41
|
resourceIds.forEach(function (resId) {
|
|
42
42
|
var _this$deps$getFireAna;
|
|
43
|
-
(_this$deps$getFireAna = _this.deps.getFireAnalyticsEvent()) === null || _this$deps$getFireAna === void 0 || _this$deps$getFireAna((0, _errorHandling.fetchErrorPayload)(error.message, resId));
|
|
43
|
+
(_this$deps$getFireAna = _this.deps.getFireAnalyticsEvent()) === null || _this$deps$getFireAna === void 0 || _this$deps$getFireAna((0, _errorHandling.fetchErrorPayload)(error.message, resId, (0, _utils.productAttrIfGateOn)(resId)));
|
|
44
44
|
});
|
|
45
45
|
});
|
|
46
46
|
});
|
|
@@ -12,6 +12,7 @@ var _monitoring = require("@atlaskit/editor-common/monitoring");
|
|
|
12
12
|
var _providerFactory = require("@atlaskit/editor-common/provider-factory");
|
|
13
13
|
var _errorHandling = require("../utils/errorHandling");
|
|
14
14
|
var _resourceId = require("../utils/resourceId");
|
|
15
|
+
var _utils = require("../utils/utils");
|
|
15
16
|
/**
|
|
16
17
|
* Manages creation and caching of ProviderFactory instances used to
|
|
17
18
|
* render synced block content (media, emoji, smart links, etc.).
|
|
@@ -32,7 +33,7 @@ var SyncBlockProviderFactoryManager = exports.SyncBlockProviderFactoryManager =
|
|
|
32
33
|
(0, _monitoring.logException)(error, {
|
|
33
34
|
location: 'editor-synced-block-provider/syncBlockProviderFactoryManager'
|
|
34
35
|
});
|
|
35
|
-
(_this$deps$getFireAna = this.deps.getFireAnalyticsEvent()) === null || _this$deps$getFireAna === void 0 || _this$deps$getFireAna((0, _errorHandling.fetchErrorPayload)(error.message));
|
|
36
|
+
(_this$deps$getFireAna = this.deps.getFireAnalyticsEvent()) === null || _this$deps$getFireAna === void 0 || _this$deps$getFireAna((0, _errorHandling.fetchErrorPayload)(error.message, resourceId, (0, _utils.productAttrIfGateOn)(resourceId)));
|
|
36
37
|
return undefined;
|
|
37
38
|
}
|
|
38
39
|
var _dataProvider$getSync = dataProvider.getSyncedBlockRendererProviderOptions(),
|
|
@@ -65,7 +66,7 @@ var SyncBlockProviderFactoryManager = exports.SyncBlockProviderFactoryManager =
|
|
|
65
66
|
(0, _monitoring.logException)(error, {
|
|
66
67
|
location: 'editor-synced-block-provider/syncBlockProviderFactoryManager'
|
|
67
68
|
});
|
|
68
|
-
(_this$deps$getFireAna2 = this.deps.getFireAnalyticsEvent()) === null || _this$deps$getFireAna2 === void 0 || _this$deps$getFireAna2((0, _errorHandling.fetchErrorPayload)(error.message, resourceId));
|
|
69
|
+
(_this$deps$getFireAna2 = this.deps.getFireAnalyticsEvent()) === null || _this$deps$getFireAna2 === void 0 || _this$deps$getFireAna2((0, _errorHandling.fetchErrorPayload)(error.message, resourceId, (0, _utils.productAttrIfGateOn)(resourceId)));
|
|
69
70
|
}
|
|
70
71
|
}
|
|
71
72
|
return providerFactory;
|
|
@@ -148,8 +149,9 @@ var SyncBlockProviderFactoryManager = exports.SyncBlockProviderFactoryManager =
|
|
|
148
149
|
return;
|
|
149
150
|
}
|
|
150
151
|
if (!syncBlock.data.sourceAri || !syncBlock.data.product) {
|
|
151
|
-
var _this$deps$getFireAna3;
|
|
152
|
-
(_this$deps$getFireAna3 = this.deps.getFireAnalyticsEvent()) === null || _this$deps$getFireAna3 === void 0 || _this$deps$getFireAna3((0, _errorHandling.fetchErrorPayload)('Sync block source ari or product not found'
|
|
152
|
+
var _this$deps$getFireAna3, _syncBlock$data$produ;
|
|
153
|
+
(_this$deps$getFireAna3 = this.deps.getFireAnalyticsEvent()) === null || _this$deps$getFireAna3 === void 0 || _this$deps$getFireAna3((0, _errorHandling.fetchErrorPayload)('Sync block source ari or product not found', resourceId, // Prefer cached product when available; fall back to parsing resourceId.
|
|
154
|
+
(_syncBlock$data$produ = syncBlock.data.product) !== null && _syncBlock$data$produ !== void 0 ? _syncBlock$data$produ : (0, _utils.productAttrIfGateOn)(resourceId)));
|
|
153
155
|
return;
|
|
154
156
|
}
|
|
155
157
|
var parentInfo = dataProvider.retrieveSyncBlockParentInfo(syncBlock.data.sourceAri, syncBlock.data.product);
|
|
@@ -17,6 +17,7 @@ var _ari = require("../clients/block-service/ari");
|
|
|
17
17
|
var _types = require("../common/types");
|
|
18
18
|
var _errorHandling = require("../utils/errorHandling");
|
|
19
19
|
var _experienceTracking = require("../utils/experienceTracking");
|
|
20
|
+
var _utils = require("../utils/utils");
|
|
20
21
|
var _referenceSyncBlockStoreManager = require("./referenceSyncBlockStoreManager");
|
|
21
22
|
var _sourceSyncBlockStoreManager = require("./sourceSyncBlockStoreManager");
|
|
22
23
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
@@ -160,7 +161,7 @@ var SyncBlockStoreManager = exports.SyncBlockStoreManager = /*#__PURE__*/functio
|
|
|
160
161
|
(0, _monitoring.logException)(_context2.t0, {
|
|
161
162
|
location: 'editor-synced-block-provider/syncBlockStoreManager'
|
|
162
163
|
});
|
|
163
|
-
(_this$fireAnalyticsEv = this.fireAnalyticsEvent) === null || _this$fireAnalyticsEv === void 0 || _this$fireAnalyticsEv.call(this, (0, _errorHandling.fetchReferencesErrorPayload)(_context2.t0.message));
|
|
164
|
+
(_this$fireAnalyticsEv = this.fireAnalyticsEvent) === null || _this$fireAnalyticsEv === void 0 || _this$fireAnalyticsEv.call(this, (0, _errorHandling.fetchReferencesErrorPayload)(_context2.t0.message, resourceId, (0, _utils.productAttrIfGateOn)(resourceId)));
|
|
164
165
|
return _context2.abrupt("return", {
|
|
165
166
|
error: _types.SyncBlockError.Errored
|
|
166
167
|
});
|
|
@@ -9,8 +9,10 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
|
|
|
9
9
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
11
|
var _monitoring = require("@atlaskit/editor-common/monitoring");
|
|
12
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
12
13
|
var _errorHandling = require("../utils/errorHandling");
|
|
13
14
|
var _resolveSyncBlockInstance = require("../utils/resolveSyncBlockInstance");
|
|
15
|
+
var _utils = require("../utils/utils");
|
|
14
16
|
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
|
|
15
17
|
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
16
18
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
@@ -256,7 +258,7 @@ var SyncBlockSubscriptionManager = exports.SyncBlockSubscriptionManager = /*#__P
|
|
|
256
258
|
(0, _monitoring.logException)(error, {
|
|
257
259
|
location: 'editor-synced-block-provider/syncBlockSubscriptionManager/graphql-subscription'
|
|
258
260
|
});
|
|
259
|
-
(_this5$deps$getFireAn = _this5.deps.getFireAnalyticsEvent()) === null || _this5$deps$getFireAn === void 0 || _this5$deps$getFireAn((0, _errorHandling.fetchErrorPayload)(error.message));
|
|
261
|
+
(_this5$deps$getFireAn = _this5.deps.getFireAnalyticsEvent()) === null || _this5$deps$getFireAn === void 0 || _this5$deps$getFireAn((0, _errorHandling.fetchErrorPayload)(error.message, resourceId, (0, _utils.productAttrIfGateOn)(resourceId)));
|
|
260
262
|
});
|
|
261
263
|
if (unsubscribe) {
|
|
262
264
|
this.graphqlSubscriptions.set(resourceId, unsubscribe);
|
|
@@ -347,14 +349,16 @@ var SyncBlockSubscriptionManager = exports.SyncBlockSubscriptionManager = /*#__P
|
|
|
347
349
|
var callbacks = this.subscriptions.get(syncBlockInstance.resourceId);
|
|
348
350
|
var localIds = callbacks ? Object.keys(callbacks) : [];
|
|
349
351
|
localIds.forEach(function (localId) {
|
|
350
|
-
var _this6$deps$getFireAn, _syncBlockInstance$da;
|
|
351
|
-
(_this6$deps$getFireAn = _this6.deps.getFireAnalyticsEvent()) === null || _this6$deps$getFireAn === void 0 || _this6$deps$getFireAn((0, _errorHandling.fetchSuccessPayload)(syncBlockInstance.resourceId, localId,
|
|
352
|
+
var _this6$deps$getFireAn, _syncBlockInstance$da, _syncBlockInstance$da2;
|
|
353
|
+
(_this6$deps$getFireAn = _this6.deps.getFireAnalyticsEvent()) === null || _this6$deps$getFireAn === void 0 || _this6$deps$getFireAn((0, _errorHandling.fetchSuccessPayload)(syncBlockInstance.resourceId, localId,
|
|
354
|
+
// Prefer cached product when available; fall back to parsing the resourceId.
|
|
355
|
+
(0, _platformFeatureFlags.fg)('platform_synced_block_patch_11') ? (_syncBlockInstance$da = (_syncBlockInstance$da2 = syncBlockInstance.data) === null || _syncBlockInstance$da2 === void 0 ? void 0 : _syncBlockInstance$da2.product) !== null && _syncBlockInstance$da !== void 0 ? _syncBlockInstance$da : (0, _utils.getSourceProductFromResourceIdSafe)(syncBlockInstance.resourceId) : undefined));
|
|
352
356
|
});
|
|
353
357
|
this.deps.fetchSyncBlockSourceInfo(resolved.resourceId);
|
|
354
358
|
} else {
|
|
355
|
-
var _syncBlockInstance$er, _syncBlockInstance$er2, _this$deps$getFireAna;
|
|
359
|
+
var _syncBlockInstance$er, _syncBlockInstance$er2, _this$deps$getFireAna, _syncBlockInstance$da3, _syncBlockInstance$da4;
|
|
356
360
|
var errorMessage = ((_syncBlockInstance$er = syncBlockInstance.error) === null || _syncBlockInstance$er === void 0 ? void 0 : _syncBlockInstance$er.reason) || ((_syncBlockInstance$er2 = syncBlockInstance.error) === null || _syncBlockInstance$er2 === void 0 ? void 0 : _syncBlockInstance$er2.type);
|
|
357
|
-
(_this$deps$getFireAna = this.deps.getFireAnalyticsEvent()) === null || _this$deps$getFireAna === void 0 || _this$deps$getFireAna((0, _errorHandling.fetchErrorPayload)(errorMessage, syncBlockInstance.resourceId));
|
|
361
|
+
(_this$deps$getFireAna = this.deps.getFireAnalyticsEvent()) === null || _this$deps$getFireAna === void 0 || _this$deps$getFireAna((0, _errorHandling.fetchErrorPayload)(errorMessage, syncBlockInstance.resourceId, (0, _platformFeatureFlags.fg)('platform_synced_block_patch_11') ? (_syncBlockInstance$da3 = (_syncBlockInstance$da4 = syncBlockInstance.data) === null || _syncBlockInstance$da4 === void 0 ? void 0 : _syncBlockInstance$da4.product) !== null && _syncBlockInstance$da3 !== void 0 ? _syncBlockInstance$da3 : (0, _utils.getSourceProductFromResourceIdSafe)(syncBlockInstance.resourceId) : undefined));
|
|
358
362
|
}
|
|
359
363
|
}
|
|
360
364
|
}]);
|