@atlaskit/react-ufo 4.7.0 → 4.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/cjs/create-interaction-extra-metrics-payload/index.js +82 -15
  3. package/dist/cjs/create-payload/index.js +26 -218
  4. package/dist/cjs/create-payload/utils/get-more-accurate-page-visibility-up-to-ttai.js +20 -0
  5. package/dist/cjs/create-payload/utils/get-visibility-state-from-performance.js +35 -0
  6. package/dist/cjs/create-payload/utils/optimize-apdex.js +25 -0
  7. package/dist/cjs/create-payload/utils/optimize-custom-timings.js +22 -0
  8. package/dist/cjs/create-payload/utils/optimize-hold-info.js +41 -0
  9. package/dist/cjs/create-payload/utils/optimize-marks.js +24 -0
  10. package/dist/cjs/create-payload/utils/optimize-react-profiler-timings.js +53 -0
  11. package/dist/cjs/create-payload/utils/optimize-request-info.js +32 -0
  12. package/dist/cjs/create-payload/utils/optimize-spans.js +30 -0
  13. package/dist/cjs/interaction-metrics-init/index.js +1 -1
  14. package/dist/cjs/vc/vc-observer/observers/ssr-placeholders/index.js +2 -2
  15. package/dist/cjs/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +4 -6
  16. package/dist/cjs/vc/vc-observer-new/viewport-observer/index.js +30 -48
  17. package/dist/es2019/create-interaction-extra-metrics-payload/index.js +62 -9
  18. package/dist/es2019/create-payload/index.js +10 -205
  19. package/dist/es2019/create-payload/utils/get-more-accurate-page-visibility-up-to-ttai.js +13 -0
  20. package/dist/es2019/create-payload/utils/get-visibility-state-from-performance.js +28 -0
  21. package/dist/es2019/create-payload/utils/optimize-apdex.js +14 -0
  22. package/dist/es2019/create-payload/utils/optimize-custom-timings.js +16 -0
  23. package/dist/es2019/create-payload/utils/optimize-hold-info.js +35 -0
  24. package/dist/es2019/create-payload/utils/optimize-marks.js +12 -0
  25. package/dist/es2019/create-payload/utils/optimize-react-profiler-timings.js +46 -0
  26. package/dist/es2019/create-payload/utils/optimize-request-info.js +26 -0
  27. package/dist/es2019/create-payload/utils/optimize-spans.js +24 -0
  28. package/dist/es2019/interaction-metrics-init/index.js +1 -1
  29. package/dist/es2019/vc/vc-observer/observers/ssr-placeholders/index.js +2 -2
  30. package/dist/es2019/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +9 -13
  31. package/dist/es2019/vc/vc-observer-new/viewport-observer/index.js +20 -29
  32. package/dist/esm/create-interaction-extra-metrics-payload/index.js +83 -16
  33. package/dist/esm/create-payload/index.js +18 -208
  34. package/dist/esm/create-payload/utils/get-more-accurate-page-visibility-up-to-ttai.js +13 -0
  35. package/dist/esm/create-payload/utils/get-visibility-state-from-performance.js +29 -0
  36. package/dist/esm/create-payload/utils/optimize-apdex.js +18 -0
  37. package/dist/esm/create-payload/utils/optimize-custom-timings.js +16 -0
  38. package/dist/esm/create-payload/utils/optimize-hold-info.js +34 -0
  39. package/dist/esm/create-payload/utils/optimize-marks.js +17 -0
  40. package/dist/esm/create-payload/utils/optimize-react-profiler-timings.js +46 -0
  41. package/dist/esm/create-payload/utils/optimize-request-info.js +25 -0
  42. package/dist/esm/create-payload/utils/optimize-spans.js +23 -0
  43. package/dist/esm/interaction-metrics-init/index.js +1 -1
  44. package/dist/esm/vc/vc-observer/observers/ssr-placeholders/index.js +2 -2
  45. package/dist/esm/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +4 -6
  46. package/dist/esm/vc/vc-observer-new/viewport-observer/index.js +30 -48
  47. package/dist/types/create-interaction-extra-metrics-payload/index.d.ts +56 -0
  48. package/dist/types/create-payload/index.d.ts +0 -3
  49. package/dist/types/create-payload/utils/get-more-accurate-page-visibility-up-to-ttai.d.ts +2 -0
  50. package/dist/types/create-payload/utils/get-visibility-state-from-performance.d.ts +1 -0
  51. package/dist/types/create-payload/utils/optimize-apdex.d.ts +12 -0
  52. package/dist/types/create-payload/utils/optimize-custom-timings.d.ts +7 -0
  53. package/dist/types/create-payload/utils/optimize-hold-info.d.ts +3 -0
  54. package/dist/types/create-payload/utils/optimize-marks.d.ts +12 -0
  55. package/dist/types/create-payload/utils/optimize-react-profiler-timings.d.ts +3 -0
  56. package/dist/types/create-payload/utils/optimize-request-info.d.ts +8 -0
  57. package/dist/types/create-payload/utils/optimize-spans.d.ts +9 -0
  58. package/dist/types-ts4.5/create-interaction-extra-metrics-payload/index.d.ts +56 -0
  59. package/dist/types-ts4.5/create-payload/index.d.ts +0 -3
  60. package/dist/types-ts4.5/create-payload/utils/get-more-accurate-page-visibility-up-to-ttai.d.ts +2 -0
  61. package/dist/types-ts4.5/create-payload/utils/get-visibility-state-from-performance.d.ts +1 -0
  62. package/dist/types-ts4.5/create-payload/utils/optimize-apdex.d.ts +12 -0
  63. package/dist/types-ts4.5/create-payload/utils/optimize-custom-timings.d.ts +7 -0
  64. package/dist/types-ts4.5/create-payload/utils/optimize-hold-info.d.ts +3 -0
  65. package/dist/types-ts4.5/create-payload/utils/optimize-marks.d.ts +12 -0
  66. package/dist/types-ts4.5/create-payload/utils/optimize-react-profiler-timings.d.ts +3 -0
  67. package/dist/types-ts4.5/create-payload/utils/optimize-request-info.d.ts +8 -0
  68. package/dist/types-ts4.5/create-payload/utils/optimize-spans.d.ts +9 -0
  69. package/package.json +1 -7
@@ -0,0 +1,23 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
+ import { optimizeLabelStack } from '../common/utils';
3
+ export function optimizeSpans(spans, interactionStart, reactUFOVersion) {
4
+ var updatedSpans = spans.reduce(function (result, span) {
5
+ var labelStack = span.labelStack,
6
+ type = span.type,
7
+ name = span.name,
8
+ start = span.start,
9
+ end = span.end;
10
+ if (labelStack && start >= interactionStart) {
11
+ result.push({
12
+ labelStack: optimizeLabelStack([].concat(_toConsumableArray(labelStack), [{
13
+ name: name
14
+ }]), reactUFOVersion),
15
+ startTime: Math.round(start),
16
+ endTime: Math.round(end),
17
+ type: type
18
+ });
19
+ }
20
+ return result;
21
+ }, []);
22
+ return updatedSpans;
23
+ }
@@ -126,7 +126,7 @@ export function init(analyticsWebClientAsync, config) {
126
126
  startTime: 0
127
127
  });
128
128
  }
129
- if (config !== null && config !== void 0 && (_config$extraInteract = config.extraInteractionMetrics) !== null && _config$extraInteract !== void 0 && _config$extraInteract.enabled && fg('platform_ufo_enable_ttai_with_3p')) {
129
+ if (config !== null && config !== void 0 && (_config$extraInteract = config.extraInteractionMetrics) !== null && _config$extraInteract !== void 0 && _config$extraInteract.enabled) {
130
130
  interactionExtraMetrics.initializeVCObserver(vcOptions);
131
131
  }
132
132
  }
@@ -207,7 +207,7 @@ export var SSRPlaceholderHandlers = /*#__PURE__*/function () {
207
207
  return element;
208
208
  }
209
209
 
210
- // NOTE - for use when the FG `platform_ufo_ssr_placeholder_resolution_ttvc_v3` is disabled
210
+ // Validates placeholder match using asynchronous observation and resolves with the result
211
211
  }, {
212
212
  key: "checkIfExistedAndSizeMatching",
213
213
  value: function checkIfExistedAndSizeMatching(el) {
@@ -226,7 +226,7 @@ export var SSRPlaceholderHandlers = /*#__PURE__*/function () {
226
226
  });
227
227
  }
228
228
 
229
- // NOTE - for use when the FG `platform_ufo_ssr_placeholder_resolution_ttvc_v3` is enabled
229
+ // Validates placeholder match synchronously using stored SSR dimensions and current bounds
230
230
  }, {
231
231
  key: "checkIfExistedAndSizeMatchingV3",
232
232
  value: function checkIfExistedAndSizeMatchingV3(el) {
@@ -198,15 +198,14 @@ var AbstractVCCalculatorBase = /*#__PURE__*/function () {
198
198
  }
199
199
  }
200
200
  enhancedVcLogs = vcLogs ? vcLogs.map(function (log) {
201
- return _objectSpread(_objectSpread(_objectSpread({}, log), fg('platform_ufo_serialise_ttvc_v3_debug_data') && {
201
+ return _objectSpread(_objectSpread({}, log), {}, {
202
202
  entries: log.entries.map(function (entry) {
203
203
  var _entry$rect, _entry$previousRect;
204
204
  return _objectSpread(_objectSpread({}, entry), {}, {
205
205
  rect: (_entry$rect = entry.rect) === null || _entry$rect === void 0 ? void 0 : _entry$rect.toJSON(),
206
206
  previousRect: (_entry$previousRect = entry.previousRect) === null || _entry$previousRect === void 0 ? void 0 : _entry$previousRect.toJSON()
207
207
  });
208
- })
209
- }), {}, {
208
+ }),
210
209
  viewportPercentage: log.viewportPercentage
211
210
  });
212
211
  }) : []; // If 3p metric enabled - calculate the debug details
@@ -262,10 +261,9 @@ var AbstractVCCalculatorBase = /*#__PURE__*/function () {
262
261
  if (!ignoredEntriesByTime.has(timestamp)) {
263
262
  ignoredEntriesByTime.set(timestamp, []);
264
263
  }
265
- (_ignoredEntriesByTime = ignoredEntriesByTime.get(timestamp)) === null || _ignoredEntriesByTime === void 0 || _ignoredEntriesByTime.push(_objectSpread(_objectSpread(_objectSpread({}, viewportData), fg('platform_ufo_serialise_ttvc_v3_debug_data') && {
264
+ (_ignoredEntriesByTime = ignoredEntriesByTime.get(timestamp)) === null || _ignoredEntriesByTime === void 0 || _ignoredEntriesByTime.push(_objectSpread(_objectSpread({}, viewportData), {}, {
266
265
  rect: (_viewportData$rect = viewportData.rect) === null || _viewportData$rect === void 0 ? void 0 : _viewportData$rect.toJSON(),
267
- previousRect: (_viewportData$previou = viewportData.previousRect) === null || _viewportData$previou === void 0 ? void 0 : _viewportData$previou.toJSON()
268
- }), {}, {
266
+ previousRect: (_viewportData$previou = viewportData.previousRect) === null || _viewportData$previou === void 0 ? void 0 : _viewportData$previou.toJSON(),
269
267
  ignoreReason: viewportData.visible ? viewportData.type : 'not-visible'
270
268
  }));
271
269
  }
@@ -116,7 +116,7 @@ var ViewportObserver = /*#__PURE__*/function () {
116
116
  _iterator = _createForOfIteratorHelper(addedNodes);
117
117
  _context2.prev = 4;
118
118
  _loop = /*#__PURE__*/_regeneratorRuntime.mark(function _loop() {
119
- var addedNodeRef, addedNode, ssrState, SSRStateEnum, _this$intersectionObs, _this$intersectionObs2, ssrPlaceholderHandler, _this$intersectionObs3, result, _this$intersectionObs4, _result, _this$intersectionObs5, sameDeletedNode, isInIgnoreLsMarker, _this$intersectionObs6, _this$intersectionObs7, _checkWithinComponent, isWithinThirdPartySegment, _this$intersectionObs8, validTargets, _iterator2, _step2, _this$intersectionObs9, validTarget, _this$intersectionObs0;
119
+ var addedNodeRef, addedNode, ssrState, SSRStateEnum, _this$intersectionObs, _this$intersectionObs2, ssrPlaceholderHandler, _this$intersectionObs3, result, _this$intersectionObs4, sameDeletedNode, isInIgnoreLsMarker, _this$intersectionObs5, _this$intersectionObs6, _checkWithinComponent, isWithinThirdPartySegment, _this$intersectionObs7, validTargets, _iterator2, _step2, _this$intersectionObs8, validTarget, _this$intersectionObs9;
120
120
  return _regeneratorRuntime.wrap(function _loop$(_context) {
121
121
  while (1) switch (_context.prev = _context.next) {
122
122
  case 0:
@@ -164,58 +164,40 @@ var ViewportObserver = /*#__PURE__*/function () {
164
164
  ssrState.state = SSRStateEnum.normal;
165
165
  case 19:
166
166
  if (!_this.getSSRPlaceholderHandler) {
167
- _context.next = 42;
167
+ _context.next = 33;
168
168
  break;
169
169
  }
170
170
  ssrPlaceholderHandler = _this.getSSRPlaceholderHandler();
171
171
  if (!ssrPlaceholderHandler) {
172
- _context.next = 42;
172
+ _context.next = 33;
173
173
  break;
174
174
  }
175
175
  if (!(ssrPlaceholderHandler.isPlaceholder(addedNode) || ssrPlaceholderHandler.isPlaceholderIgnored(addedNode))) {
176
- _context.next = 35;
177
- break;
178
- }
179
- if (!fg('platform_ufo_ssr_placeholder_resolution_ttvc_v3')) {
180
- _context.next = 29;
176
+ _context.next = 26;
181
177
  break;
182
178
  }
183
179
  if (!ssrPlaceholderHandler.checkIfExistedAndSizeMatchingV3(addedNode)) {
184
- _context.next = 27;
180
+ _context.next = 26;
185
181
  break;
186
182
  }
187
183
  (_this$intersectionObs3 = _this.intersectionObserver) === null || _this$intersectionObs3 === void 0 || _this$intersectionObs3.watchAndTag(addedNode, 'mutation:ssr-placeholder');
188
184
  return _context.abrupt("return", 0);
189
- case 27:
190
- _context.next = 35;
191
- break;
192
- case 29:
193
- _context.next = 31;
194
- return ssrPlaceholderHandler.checkIfExistedAndSizeMatching(addedNode);
195
- case 31:
196
- result = _context.sent;
197
- if (!(result !== false)) {
198
- _context.next = 35;
199
- break;
200
- }
201
- (_this$intersectionObs4 = _this.intersectionObserver) === null || _this$intersectionObs4 === void 0 || _this$intersectionObs4.watchAndTag(addedNode, 'mutation:ssr-placeholder');
202
- return _context.abrupt("return", 0);
203
- case 35:
185
+ case 26:
204
186
  if (!(ssrPlaceholderHandler.isPlaceholderReplacement(addedNode) || ssrPlaceholderHandler.isPlaceholderIgnored(addedNode))) {
205
- _context.next = 42;
187
+ _context.next = 33;
206
188
  break;
207
189
  }
208
- _context.next = 38;
190
+ _context.next = 29;
209
191
  return ssrPlaceholderHandler.validateReactComponentMatchToPlaceholder(addedNode);
210
- case 38:
211
- _result = _context.sent;
212
- if (!(_result !== false)) {
213
- _context.next = 42;
192
+ case 29:
193
+ result = _context.sent;
194
+ if (!(result !== false)) {
195
+ _context.next = 33;
214
196
  break;
215
197
  }
216
- (_this$intersectionObs5 = _this.intersectionObserver) === null || _this$intersectionObs5 === void 0 || _this$intersectionObs5.watchAndTag(addedNode, 'mutation:ssr-placeholder');
198
+ (_this$intersectionObs4 = _this.intersectionObserver) === null || _this$intersectionObs4 === void 0 || _this$intersectionObs4.watchAndTag(addedNode, 'mutation:ssr-placeholder');
217
199
  return _context.abrupt("return", 0);
218
- case 42:
200
+ case 33:
219
201
  sameDeletedNode = removedNodes.find(function (ref) {
220
202
  var n = ref.deref();
221
203
  if (!n || !addedNode) {
@@ -225,27 +207,27 @@ var ViewportObserver = /*#__PURE__*/function () {
225
207
  });
226
208
  isInIgnoreLsMarker = isInVCIgnoreIfNoLayoutShiftMarker(addedNode);
227
209
  if (!(sameDeletedNode && isInIgnoreLsMarker)) {
228
- _context.next = 47;
210
+ _context.next = 38;
229
211
  break;
230
212
  }
231
- (_this$intersectionObs6 = _this.intersectionObserver) === null || _this$intersectionObs6 === void 0 || _this$intersectionObs6.watchAndTag(addedNode, 'mutation:remount');
213
+ (_this$intersectionObs5 = _this.intersectionObserver) === null || _this$intersectionObs5 === void 0 || _this$intersectionObs5.watchAndTag(addedNode, 'mutation:remount');
232
214
  return _context.abrupt("return", 0);
233
- case 47:
215
+ case 38:
234
216
  if (!isContainedWithinMediaWrapper(addedNode)) {
235
- _context.next = 50;
217
+ _context.next = 41;
236
218
  break;
237
219
  }
238
- (_this$intersectionObs7 = _this.intersectionObserver) === null || _this$intersectionObs7 === void 0 || _this$intersectionObs7.watchAndTag(addedNode, 'mutation:media');
220
+ (_this$intersectionObs6 = _this.intersectionObserver) === null || _this$intersectionObs6 === void 0 || _this$intersectionObs6.watchAndTag(addedNode, 'mutation:media');
239
221
  return _context.abrupt("return", 0);
240
- case 50:
222
+ case 41:
241
223
  _checkWithinComponent = checkWithinComponent(addedNode, 'UFOThirdPartySegment', _this.mapIs3pResult), isWithinThirdPartySegment = _checkWithinComponent.isWithin;
242
224
  if (!isWithinThirdPartySegment) {
243
- _context.next = 54;
225
+ _context.next = 45;
244
226
  break;
245
227
  }
246
- (_this$intersectionObs8 = _this.intersectionObserver) === null || _this$intersectionObs8 === void 0 || _this$intersectionObs8.watchAndTag(addedNode, 'mutation:third-party-element');
228
+ (_this$intersectionObs7 = _this.intersectionObserver) === null || _this$intersectionObs7 === void 0 || _this$intersectionObs7.watchAndTag(addedNode, 'mutation:third-party-element');
247
229
  return _context.abrupt("return", 0);
248
- case 54:
230
+ case 45:
249
231
  if (fg('platform_ufo_display_content_resolution_ttvc_v3')) {
250
232
  // Check if the target has display:content css property, return array of valid targets
251
233
  validTargets = checkCssProperty(addedNode);
@@ -253,7 +235,7 @@ var ViewportObserver = /*#__PURE__*/function () {
253
235
  try {
254
236
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
255
237
  validTarget = _step2.value;
256
- (_this$intersectionObs9 = _this.intersectionObserver) === null || _this$intersectionObs9 === void 0 || _this$intersectionObs9.watchAndTag(validTarget, createElementMutationsWatcher(removedNodeRects));
238
+ (_this$intersectionObs8 = _this.intersectionObserver) === null || _this$intersectionObs8 === void 0 || _this$intersectionObs8.watchAndTag(validTarget, createElementMutationsWatcher(removedNodeRects));
257
239
  }
258
240
  } catch (err) {
259
241
  _iterator2.e(err);
@@ -264,9 +246,9 @@ var ViewportObserver = /*#__PURE__*/function () {
264
246
  if (fg('platform_ufo_display_content_track_occurrence')) {
265
247
  trackDisplayContentsOccurrence(addedNode);
266
248
  }
267
- (_this$intersectionObs0 = _this.intersectionObserver) === null || _this$intersectionObs0 === void 0 || _this$intersectionObs0.watchAndTag(addedNode, createElementMutationsWatcher(removedNodeRects));
249
+ (_this$intersectionObs9 = _this.intersectionObserver) === null || _this$intersectionObs9 === void 0 || _this$intersectionObs9.watchAndTag(addedNode, createElementMutationsWatcher(removedNodeRects));
268
250
  }
269
- case 55:
251
+ case 46:
270
252
  case "end":
271
253
  return _context.stop();
272
254
  }
@@ -311,12 +293,12 @@ var ViewportObserver = /*#__PURE__*/function () {
311
293
  };
312
294
  }());
313
295
  _defineProperty(this, "handleAttributeMutation", function (_ref6) {
314
- var _this$intersectionObs1;
296
+ var _this$intersectionObs0;
315
297
  var target = _ref6.target,
316
298
  attributeName = _ref6.attributeName,
317
299
  oldValue = _ref6.oldValue,
318
300
  newValue = _ref6.newValue;
319
- (_this$intersectionObs1 = _this.intersectionObserver) === null || _this$intersectionObs1 === void 0 || _this$intersectionObs1.watchAndTag(target, function (_ref7) {
301
+ (_this$intersectionObs0 = _this.intersectionObserver) === null || _this$intersectionObs0 === void 0 || _this$intersectionObs0.watchAndTag(target, function (_ref7) {
320
302
  var target = _ref7.target,
321
303
  rect = _ref7.rect;
322
304
  if (isContainedWithinMediaWrapper(target)) {
@@ -456,12 +438,12 @@ var ViewportObserver = /*#__PURE__*/function () {
456
438
  }, {
457
439
  key: "stop",
458
440
  value: function stop() {
459
- var _this$mutationObserve2, _this$intersectionObs10, _this$performanceObse2;
441
+ var _this$mutationObserve2, _this$intersectionObs1, _this$performanceObse2;
460
442
  if (!this.isStarted) {
461
443
  return;
462
444
  }
463
445
  (_this$mutationObserve2 = this.mutationObserver) === null || _this$mutationObserve2 === void 0 || _this$mutationObserve2.disconnect();
464
- (_this$intersectionObs10 = this.intersectionObserver) === null || _this$intersectionObs10 === void 0 || _this$intersectionObs10.disconnect();
446
+ (_this$intersectionObs1 = this.intersectionObserver) === null || _this$intersectionObs1 === void 0 || _this$intersectionObs1.disconnect();
465
447
  (_this$performanceObse2 = this.performanceObserver) === null || _this$performanceObse2 === void 0 || _this$performanceObse2.disconnect();
466
448
  this.isStarted = false;
467
449
  // Clean up caches when stopping
@@ -1,4 +1,5 @@
1
1
  import type { InteractionMetrics } from '../common';
2
+ import type { LabelStack } from '../interaction-context';
2
3
  declare function createInteractionExtraLogPayload(interactionId: string, interaction: InteractionMetrics): Promise<{
3
4
  actionSubject: string;
4
5
  action: string;
@@ -19,8 +20,62 @@ declare function createInteractionExtraLogPayload(interactionId: string, interac
19
20
  'experience:key': string;
20
21
  'experience:name': string;
21
22
  interactionMetrics: {
23
+ errors: {
24
+ labelStack: string | {
25
+ t?: import("../segment/segment").UFOSegmentType | undefined;
26
+ s?: string | undefined;
27
+ n: string;
28
+ }[] | null;
29
+ name: string;
30
+ errorType: string;
31
+ errorMessage: string;
32
+ errorStack?: string;
33
+ forcedError?: boolean;
34
+ }[];
35
+ holdActive: import("../common").HoldActive[];
22
36
  holdInfo: any[];
37
+ spans: {
38
+ labelStack: import("../create-payload/common/types").OptimizedLabelStack;
39
+ startTime: number;
40
+ endTime: number;
41
+ type: string;
42
+ }[];
43
+ requestInfo: {
44
+ labelStack: import("../create-payload/common/types").OptimizedLabelStack;
45
+ startTime: number;
46
+ endTime: number;
47
+ }[];
48
+ customTimings: {
49
+ labelStack: import("../create-payload/common/types").OptimizedLabelStack;
50
+ startTime: number;
51
+ endTime: number;
52
+ }[];
23
53
  segments: {};
54
+ marks: {
55
+ labelStack: string | {
56
+ t?: import("../segment/segment").UFOSegmentType | undefined;
57
+ s?: string | undefined;
58
+ n: string;
59
+ }[] | null;
60
+ time: number;
61
+ type: import("../common").MarkType;
62
+ name: string;
63
+ }[];
64
+ apdex: {
65
+ labelStack?: string | {
66
+ t?: import("../segment/segment").UFOSegmentType | undefined;
67
+ s?: string | undefined;
68
+ n: string;
69
+ }[] | undefined;
70
+ stopTime: number;
71
+ key: string;
72
+ startTime?: number;
73
+ }[];
74
+ reactProfilerTimings: any[];
75
+ customData: {
76
+ labelStack: LabelStack;
77
+ data: import("../common").CustomData;
78
+ }[];
24
79
  'metric:vc90'?: number | null;
25
80
  namePrefix: string;
26
81
  segmentPrefix: string;
@@ -38,6 +93,7 @@ declare function createInteractionExtraLogPayload(interactionId: string, interac
38
93
  start: number;
39
94
  'metric:ttai:3p': number | undefined;
40
95
  };
96
+ 'vc:effective:revision': import("../config").TTVCRevision;
41
97
  };
42
98
  };
43
99
  } | null>;
@@ -3,9 +3,6 @@ import { type ResourceTiming } from '../common/react-ufo-payload-schema';
3
3
  import * as ssr from '../ssr';
4
4
  import type { OptimizedLabelStack } from './common/types';
5
5
  import type { CriticalMetricsPayload } from './critical-metrics-payload/types';
6
- import { getReactUFOPayloadVersion } from './utils/get-react-ufo-payload-version';
7
- export declare function getMoreAccuratePageVisibilityUpToTTAI(interaction: InteractionMetrics): import("../common/react-ufo-payload-schema").PageVisibility;
8
- export declare function optimizeHoldInfo(holdInfo: InteractionMetrics['holdInfo'], interactionStart: number, reactUFOVersion: ReturnType<typeof getReactUFOPayloadVersion>): any[];
9
6
  export declare function createPayloads(interactionId: string, interaction: InteractionMetrics): Promise<(CriticalMetricsPayload | {
10
7
  actionSubject: string;
11
8
  action: string;
@@ -0,0 +1,2 @@
1
+ import type { InteractionMetrics } from '../../common';
2
+ export declare function getMoreAccuratePageVisibilityUpToTTAI(interaction: InteractionMetrics): import("../../common/react-ufo-payload-schema").PageVisibility;
@@ -0,0 +1 @@
1
+ export declare function getVisibilityStateFromPerformance(stop: number): string | null;
@@ -0,0 +1,12 @@
1
+ import type { ApdexType } from '../../common';
2
+ import type { getReactUFOPayloadVersion } from './get-react-ufo-payload-version';
3
+ export declare function optimizeApdex(apdex: ApdexType[], reactUFOVersion: ReturnType<typeof getReactUFOPayloadVersion>): {
4
+ labelStack?: string | {
5
+ t?: import("../../segment/segment").UFOSegmentType | undefined;
6
+ s?: string | undefined;
7
+ n: string;
8
+ }[] | undefined;
9
+ stopTime: number;
10
+ key: string;
11
+ startTime?: number;
12
+ }[];
@@ -0,0 +1,7 @@
1
+ import { type InteractionMetrics } from '../../common';
2
+ import { type OptimizedLabelStack } from '../common/types';
3
+ export declare function optimizeCustomTimings(customTimings: InteractionMetrics['customTimings'], interactionStart: number): {
4
+ labelStack: OptimizedLabelStack;
5
+ startTime: number;
6
+ endTime: number;
7
+ }[];
@@ -0,0 +1,3 @@
1
+ import type { InteractionMetrics } from '../../common';
2
+ import type { getReactUFOPayloadVersion } from './get-react-ufo-payload-version';
3
+ export declare function optimizeHoldInfo(holdInfo: InteractionMetrics['holdInfo'], interactionStart: number, reactUFOVersion: ReturnType<typeof getReactUFOPayloadVersion>): any[];
@@ -0,0 +1,12 @@
1
+ import type { InteractionMetrics } from '../../common';
2
+ import type { getReactUFOPayloadVersion } from './get-react-ufo-payload-version';
3
+ export declare function optimizeMarks(marks: InteractionMetrics['marks'], reactUFOVersion: ReturnType<typeof getReactUFOPayloadVersion>): {
4
+ labelStack: string | {
5
+ t?: import("../../segment/segment").UFOSegmentType | undefined;
6
+ s?: string | undefined;
7
+ n: string;
8
+ }[] | null;
9
+ time: number;
10
+ type: import("../../common").MarkType;
11
+ name: string;
12
+ }[];
@@ -0,0 +1,3 @@
1
+ import type { InteractionMetrics } from '../../common';
2
+ import type { getReactUFOPayloadVersion } from './get-react-ufo-payload-version';
3
+ export declare function optimizeReactProfilerTimings(reactProfilerTimings: InteractionMetrics['reactProfilerTimings'], interactionStart: number, reactUFOVersion: ReturnType<typeof getReactUFOPayloadVersion>): any[];
@@ -0,0 +1,8 @@
1
+ import { type InteractionMetrics } from '../../common';
2
+ import { type OptimizedLabelStack } from '../common/types';
3
+ import type { getReactUFOPayloadVersion } from './get-react-ufo-payload-version';
4
+ export declare function optimizeRequestInfo(requestInfo: InteractionMetrics['requestInfo'], interactionStart: number, reactUFOVersion: ReturnType<typeof getReactUFOPayloadVersion>): {
5
+ labelStack: OptimizedLabelStack;
6
+ startTime: number;
7
+ endTime: number;
8
+ }[];
@@ -0,0 +1,9 @@
1
+ import type { InteractionMetrics } from '../../common';
2
+ import type { OptimizedLabelStack } from '../common/types';
3
+ import type { getReactUFOPayloadVersion } from './get-react-ufo-payload-version';
4
+ export declare function optimizeSpans(spans: InteractionMetrics['spans'], interactionStart: number, reactUFOVersion: ReturnType<typeof getReactUFOPayloadVersion>): {
5
+ labelStack: OptimizedLabelStack;
6
+ startTime: number;
7
+ endTime: number;
8
+ type: string;
9
+ }[];
@@ -1,4 +1,5 @@
1
1
  import type { InteractionMetrics } from '../common';
2
+ import type { LabelStack } from '../interaction-context';
2
3
  declare function createInteractionExtraLogPayload(interactionId: string, interaction: InteractionMetrics): Promise<{
3
4
  actionSubject: string;
4
5
  action: string;
@@ -19,8 +20,62 @@ declare function createInteractionExtraLogPayload(interactionId: string, interac
19
20
  'experience:key': string;
20
21
  'experience:name': string;
21
22
  interactionMetrics: {
23
+ errors: {
24
+ labelStack: string | {
25
+ t?: import("../segment/segment").UFOSegmentType | undefined;
26
+ s?: string | undefined;
27
+ n: string;
28
+ }[] | null;
29
+ name: string;
30
+ errorType: string;
31
+ errorMessage: string;
32
+ errorStack?: string;
33
+ forcedError?: boolean;
34
+ }[];
35
+ holdActive: import("../common").HoldActive[];
22
36
  holdInfo: any[];
37
+ spans: {
38
+ labelStack: import("../create-payload/common/types").OptimizedLabelStack;
39
+ startTime: number;
40
+ endTime: number;
41
+ type: string;
42
+ }[];
43
+ requestInfo: {
44
+ labelStack: import("../create-payload/common/types").OptimizedLabelStack;
45
+ startTime: number;
46
+ endTime: number;
47
+ }[];
48
+ customTimings: {
49
+ labelStack: import("../create-payload/common/types").OptimizedLabelStack;
50
+ startTime: number;
51
+ endTime: number;
52
+ }[];
23
53
  segments: {};
54
+ marks: {
55
+ labelStack: string | {
56
+ t?: import("../segment/segment").UFOSegmentType | undefined;
57
+ s?: string | undefined;
58
+ n: string;
59
+ }[] | null;
60
+ time: number;
61
+ type: import("../common").MarkType;
62
+ name: string;
63
+ }[];
64
+ apdex: {
65
+ labelStack?: string | {
66
+ t?: import("../segment/segment").UFOSegmentType | undefined;
67
+ s?: string | undefined;
68
+ n: string;
69
+ }[] | undefined;
70
+ stopTime: number;
71
+ key: string;
72
+ startTime?: number;
73
+ }[];
74
+ reactProfilerTimings: any[];
75
+ customData: {
76
+ labelStack: LabelStack;
77
+ data: import("../common").CustomData;
78
+ }[];
24
79
  'metric:vc90'?: number | null;
25
80
  namePrefix: string;
26
81
  segmentPrefix: string;
@@ -38,6 +93,7 @@ declare function createInteractionExtraLogPayload(interactionId: string, interac
38
93
  start: number;
39
94
  'metric:ttai:3p': number | undefined;
40
95
  };
96
+ 'vc:effective:revision': import("../config").TTVCRevision;
41
97
  };
42
98
  };
43
99
  } | null>;
@@ -3,9 +3,6 @@ import { type ResourceTiming } from '../common/react-ufo-payload-schema';
3
3
  import * as ssr from '../ssr';
4
4
  import type { OptimizedLabelStack } from './common/types';
5
5
  import type { CriticalMetricsPayload } from './critical-metrics-payload/types';
6
- import { getReactUFOPayloadVersion } from './utils/get-react-ufo-payload-version';
7
- export declare function getMoreAccuratePageVisibilityUpToTTAI(interaction: InteractionMetrics): import("../common/react-ufo-payload-schema").PageVisibility;
8
- export declare function optimizeHoldInfo(holdInfo: InteractionMetrics['holdInfo'], interactionStart: number, reactUFOVersion: ReturnType<typeof getReactUFOPayloadVersion>): any[];
9
6
  export declare function createPayloads(interactionId: string, interaction: InteractionMetrics): Promise<(CriticalMetricsPayload | {
10
7
  actionSubject: string;
11
8
  action: string;
@@ -0,0 +1,2 @@
1
+ import type { InteractionMetrics } from '../../common';
2
+ export declare function getMoreAccuratePageVisibilityUpToTTAI(interaction: InteractionMetrics): import("../../common/react-ufo-payload-schema").PageVisibility;
@@ -0,0 +1 @@
1
+ export declare function getVisibilityStateFromPerformance(stop: number): string | null;
@@ -0,0 +1,12 @@
1
+ import type { ApdexType } from '../../common';
2
+ import type { getReactUFOPayloadVersion } from './get-react-ufo-payload-version';
3
+ export declare function optimizeApdex(apdex: ApdexType[], reactUFOVersion: ReturnType<typeof getReactUFOPayloadVersion>): {
4
+ labelStack?: string | {
5
+ t?: import("../../segment/segment").UFOSegmentType | undefined;
6
+ s?: string | undefined;
7
+ n: string;
8
+ }[] | undefined;
9
+ stopTime: number;
10
+ key: string;
11
+ startTime?: number;
12
+ }[];
@@ -0,0 +1,7 @@
1
+ import { type InteractionMetrics } from '../../common';
2
+ import { type OptimizedLabelStack } from '../common/types';
3
+ export declare function optimizeCustomTimings(customTimings: InteractionMetrics['customTimings'], interactionStart: number): {
4
+ labelStack: OptimizedLabelStack;
5
+ startTime: number;
6
+ endTime: number;
7
+ }[];
@@ -0,0 +1,3 @@
1
+ import type { InteractionMetrics } from '../../common';
2
+ import type { getReactUFOPayloadVersion } from './get-react-ufo-payload-version';
3
+ export declare function optimizeHoldInfo(holdInfo: InteractionMetrics['holdInfo'], interactionStart: number, reactUFOVersion: ReturnType<typeof getReactUFOPayloadVersion>): any[];
@@ -0,0 +1,12 @@
1
+ import type { InteractionMetrics } from '../../common';
2
+ import type { getReactUFOPayloadVersion } from './get-react-ufo-payload-version';
3
+ export declare function optimizeMarks(marks: InteractionMetrics['marks'], reactUFOVersion: ReturnType<typeof getReactUFOPayloadVersion>): {
4
+ labelStack: string | {
5
+ t?: import("../../segment/segment").UFOSegmentType | undefined;
6
+ s?: string | undefined;
7
+ n: string;
8
+ }[] | null;
9
+ time: number;
10
+ type: import("../../common").MarkType;
11
+ name: string;
12
+ }[];
@@ -0,0 +1,3 @@
1
+ import type { InteractionMetrics } from '../../common';
2
+ import type { getReactUFOPayloadVersion } from './get-react-ufo-payload-version';
3
+ export declare function optimizeReactProfilerTimings(reactProfilerTimings: InteractionMetrics['reactProfilerTimings'], interactionStart: number, reactUFOVersion: ReturnType<typeof getReactUFOPayloadVersion>): any[];
@@ -0,0 +1,8 @@
1
+ import { type InteractionMetrics } from '../../common';
2
+ import { type OptimizedLabelStack } from '../common/types';
3
+ import type { getReactUFOPayloadVersion } from './get-react-ufo-payload-version';
4
+ export declare function optimizeRequestInfo(requestInfo: InteractionMetrics['requestInfo'], interactionStart: number, reactUFOVersion: ReturnType<typeof getReactUFOPayloadVersion>): {
5
+ labelStack: OptimizedLabelStack;
6
+ startTime: number;
7
+ endTime: number;
8
+ }[];
@@ -0,0 +1,9 @@
1
+ import type { InteractionMetrics } from '../../common';
2
+ import type { OptimizedLabelStack } from '../common/types';
3
+ import type { getReactUFOPayloadVersion } from './get-react-ufo-payload-version';
4
+ export declare function optimizeSpans(spans: InteractionMetrics['spans'], interactionStart: number, reactUFOVersion: ReturnType<typeof getReactUFOPayloadVersion>): {
5
+ labelStack: OptimizedLabelStack;
6
+ startTime: number;
7
+ endTime: number;
8
+ type: string;
9
+ }[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/react-ufo",
3
- "version": "4.7.0",
3
+ "version": "4.7.2",
4
4
  "description": "Parts of React UFO that are publicly available",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -105,9 +105,6 @@
105
105
  "ufo_payload_use_idle_callback": {
106
106
  "type": "boolean"
107
107
  },
108
- "platform_ufo_serialise_ttvc_v3_debug_data": {
109
- "type": "boolean"
110
- },
111
108
  "platform_ufo_assets_check_for_nan": {
112
109
  "type": "boolean"
113
110
  },
@@ -138,9 +135,6 @@
138
135
  "platform_ufo_add_segments_count_threshold": {
139
136
  "type": "boolean"
140
137
  },
141
- "platform_ufo_ssr_placeholder_resolution_ttvc_v3": {
142
- "type": "boolean"
143
- },
144
138
  "platform_ufo_display_content_resolution_ttvc_v3": {
145
139
  "type": "boolean"
146
140
  },