@atlaskit/react-ufo 4.14.2 → 4.14.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/config/index.js +4 -0
  3. package/dist/cjs/create-payload/index.js +22 -2
  4. package/dist/cjs/create-payload/utils/get-vc-metrics.js +10 -6
  5. package/dist/cjs/interaction-metrics/index.js +2 -1
  6. package/dist/cjs/segment/segment.js +2 -1
  7. package/dist/cjs/trace-interaction/internal/trace-ufo-interaction.js +3 -0
  8. package/dist/cjs/trace-pageload/index.js +3 -0
  9. package/dist/cjs/trace-transition/index.js +3 -0
  10. package/dist/cjs/typing-performance-tracing/index.js +5 -0
  11. package/dist/cjs/vc/index.js +4 -3
  12. package/dist/cjs/vc/vc-observer-new/index.js +31 -7
  13. package/dist/cjs/vc/vc-observer-new/metric-calculator/vcnext/index.js +7 -1
  14. package/dist/cjs/vc/vc-observer-new/raw-data-handler/index.js +237 -0
  15. package/dist/es2019/config/index.js +3 -0
  16. package/dist/es2019/create-payload/index.js +17 -1
  17. package/dist/es2019/create-payload/utils/get-vc-metrics.js +5 -2
  18. package/dist/es2019/interaction-metrics/index.js +2 -0
  19. package/dist/es2019/segment/segment.js +2 -0
  20. package/dist/es2019/trace-interaction/internal/trace-ufo-interaction.js +2 -0
  21. package/dist/es2019/trace-pageload/index.js +2 -0
  22. package/dist/es2019/trace-transition/index.js +3 -0
  23. package/dist/es2019/typing-performance-tracing/index.js +4 -0
  24. package/dist/es2019/vc/index.js +4 -2
  25. package/dist/es2019/vc/vc-observer-new/index.js +20 -1
  26. package/dist/es2019/vc/vc-observer-new/metric-calculator/vcnext/index.js +7 -1
  27. package/dist/es2019/vc/vc-observer-new/raw-data-handler/index.js +173 -0
  28. package/dist/esm/config/index.js +3 -0
  29. package/dist/esm/create-payload/index.js +22 -2
  30. package/dist/esm/create-payload/utils/get-vc-metrics.js +11 -7
  31. package/dist/esm/interaction-metrics/index.js +2 -0
  32. package/dist/esm/segment/segment.js +2 -0
  33. package/dist/esm/trace-interaction/internal/trace-ufo-interaction.js +2 -0
  34. package/dist/esm/trace-pageload/index.js +2 -0
  35. package/dist/esm/trace-transition/index.js +3 -0
  36. package/dist/esm/typing-performance-tracing/index.js +4 -0
  37. package/dist/esm/vc/index.js +4 -3
  38. package/dist/esm/vc/vc-observer-new/index.js +31 -7
  39. package/dist/esm/vc/vc-observer-new/metric-calculator/vcnext/index.js +7 -1
  40. package/dist/esm/vc/vc-observer-new/raw-data-handler/index.js +231 -0
  41. package/dist/types/common/vc/types.d.ts +20 -1
  42. package/dist/types/config/index.d.ts +6 -0
  43. package/dist/types/vc/types.d.ts +1 -0
  44. package/dist/types/vc/vc-observer-new/raw-data-handler/index.d.ts +20 -0
  45. package/dist/types/vc/vc-observer-new/types.d.ts +2 -0
  46. package/dist/types-ts4.5/common/vc/types.d.ts +25 -1
  47. package/dist/types-ts4.5/config/index.d.ts +6 -0
  48. package/dist/types-ts4.5/vc/types.d.ts +1 -0
  49. package/dist/types-ts4.5/vc/vc-observer-new/raw-data-handler/index.d.ts +20 -0
  50. package/dist/types-ts4.5/vc/vc-observer-new/types.d.ts +2 -0
  51. package/package.json +7 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @atlaskit/ufo-interaction-ignore
2
2
 
3
+ ## 4.14.4
4
+
5
+ ### Patch Changes
6
+
7
+ - [`e52ace29dfa64`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/e52ace29dfa64) -
8
+ Enable raw vc data for React UFO
9
+
10
+ ## 4.14.3
11
+
12
+ ### Patch Changes
13
+
14
+ - [`666790c2fd8dd`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/666790c2fd8dd) -
15
+ Remove SSR placeholder exclusions for VC next
16
+
3
17
  ## 4.14.2
4
18
 
5
19
  ### Patch Changes
@@ -22,6 +22,7 @@ exports.getPostInteractionRate = getPostInteractionRate;
22
22
  exports.getReactHydrationStats = getReactHydrationStats;
23
23
  exports.getTypingPerformanceTracingMethod = getTypingPerformanceTracingMethod;
24
24
  exports.getUfoNameOverrides = getUfoNameOverrides;
25
+ exports.getVCRawDataInteractionRate = getVCRawDataInteractionRate;
25
26
  exports.isVCRevisionEnabled = isVCRevisionEnabled;
26
27
  exports.setUFOConfig = setUFOConfig;
27
28
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
@@ -193,6 +194,9 @@ function getExperimentalInteractionRate(name, interactionType) {
193
194
  return 0;
194
195
  }
195
196
  }
197
+ function getVCRawDataInteractionRate(name, interactionType) {
198
+ return getConfigRate(name, interactionType, 'enableVCRawDataRates');
199
+ }
196
200
  function getPostInteractionRate(name, interactionType) {
197
201
  return getConfigRate(name, interactionType, 'postInteractionLog');
198
202
  }
@@ -60,6 +60,7 @@ var _excluded = ["labelStack"];
60
60
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
61
61
  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; }
62
62
  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; } // Import common utilities
63
+ var MAX_PAYLOAD_SIZE = 250;
63
64
  function getUfoNameOverride(interaction) {
64
65
  var ufoName = interaction.ufoName,
65
66
  apdex = interaction.apdex;
@@ -398,7 +399,7 @@ function createInteractionMetricsPayload(_x, _x2, _x3, _x4, _x5) {
398
399
  function _createInteractionMetricsPayload() {
399
400
  _createInteractionMetricsPayload = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(interaction, interactionId, experimental, criticalPayloadCount, vcMetrics) {
400
401
  var _window$location, _config$additionalPay;
401
- var interactionPayloadStart, config, end, start, ufoName, knownSegments, rate, type, abortReason, routeName, featureFlags, previousInteractionName, isPreviousInteractionAborted, abortedByInteractionName, responsiveness, unknownElementName, unknownElementHierarchy, hydration, pageVisibilityAtTTI, pageVisibilityAtTTAI, segments, segmentTree, isDetailedPayload, isPageLoad, calculatePageVisibilityFromTheStartOfPageLoad, moreAccuratePageVisibilityAtTTI, moreAccuratePageVisibilityAtTTAI, labelStack, getInitialPageLoadSSRMetrics, pageLoadInteractionMetrics, getDetailedInteractionMetrics, getPageLoadDetailedInteractionMetrics, newUFOName, resourceTimings, _yield$Promise$all, _yield$Promise$all2, finalVCMetrics, experimentalMetrics, paintMetrics, batteryInfo, getReactHydrationStats, payload;
402
+ var interactionPayloadStart, config, end, start, ufoName, knownSegments, rate, type, abortReason, routeName, featureFlags, previousInteractionName, isPreviousInteractionAborted, abortedByInteractionName, responsiveness, unknownElementName, unknownElementHierarchy, hydration, pageVisibilityAtTTI, pageVisibilityAtTTAI, segments, segmentTree, isDetailedPayload, isPageLoad, calculatePageVisibilityFromTheStartOfPageLoad, moreAccuratePageVisibilityAtTTI, moreAccuratePageVisibilityAtTTAI, labelStack, getInitialPageLoadSSRMetrics, pageLoadInteractionMetrics, getDetailedInteractionMetrics, getPageLoadDetailedInteractionMetrics, newUFOName, resourceTimings, _yield$Promise$all, _yield$Promise$all2, finalVCMetrics, experimentalMetrics, paintMetrics, batteryInfo, getReactHydrationStats, payload, size, vcRev, rawData, rawDataSize;
402
403
  return _regenerator.default.wrap(function _callee$(_context) {
403
404
  while (1) switch (_context.prev = _context.next) {
404
405
  case 0:
@@ -604,7 +605,26 @@ function _createInteractionMetricsPayload() {
604
605
  regularTTAI = undefined;
605
606
  expTTAI = undefined;
606
607
  }
607
- payload.attributes.properties['event:sizeInKb'] = (0, _getPayloadSize.default)(payload.attributes.properties);
608
+ if ((0, _platformFeatureFlags.fg)('platform_ufo_enable_vc_raw_data')) {
609
+ size = (0, _getPayloadSize.default)(payload.attributes.properties);
610
+ vcRev = payload.attributes.properties['ufo:vc:rev'];
611
+ rawData = vcRev.find(function (item) {
612
+ return item.revision === 'raw-handler';
613
+ });
614
+ if (rawData) {
615
+ rawDataSize = (0, _getPayloadSize.default)(rawData);
616
+ payload.attributes.properties['ufo:vc:raw:size'] = rawDataSize;
617
+ if (size > MAX_PAYLOAD_SIZE && Array.isArray(vcRev) && vcRev.length > 0) {
618
+ payload.attributes.properties['ufo:vc:rev'] = vcRev.filter(function (item) {
619
+ return item.revision !== 'raw-handler';
620
+ });
621
+ payload.attributes.properties['ufo:vc:raw:removed'] = true;
622
+ }
623
+ }
624
+ payload.attributes.properties['event:sizeInKb'] = (0, _getPayloadSize.default)(payload.attributes.properties);
625
+ } else {
626
+ payload.attributes.properties['event:sizeInKb'] = (0, _getPayloadSize.default)(payload.attributes.properties);
627
+ }
608
628
  return _context.abrupt("return", payload);
609
629
  case 47:
610
630
  case "end":
@@ -8,6 +8,7 @@ exports.default = 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 _coinflip = _interopRequireDefault(require("../../coinflip"));
11
12
  var _config = require("../../config");
12
13
  var _interactionMetrics = require("../../interaction-metrics");
13
14
  var _getInteractionStatus = _interopRequireDefault(require("./get-interaction-status"));
@@ -29,6 +30,7 @@ function _getVCMetrics() {
29
30
  isPageVisible,
30
31
  shouldReportVCMetrics,
31
32
  observer,
33
+ includeRawData,
32
34
  isSSREnabled,
33
35
  ssr,
34
36
  tti,
@@ -66,6 +68,7 @@ function _getVCMetrics() {
66
68
  }
67
69
  return _context.abrupt("return", {});
68
70
  case 14:
71
+ includeRawData = (0, _coinflip.default)((0, _config.getVCRawDataInteractionRate)(interaction.ufoName, interaction.type));
69
72
  isSSREnabled = interaction.type === 'page_load' && ((config === null || config === void 0 ? void 0 : config.ssr) || (config === null || config === void 0 || (_config$vc$ssrWhiteli = config.vc.ssrWhitelist) === null || _config$vc$ssrWhiteli === void 0 ? void 0 : _config$vc$ssrWhiteli.includes(interaction.ufoName)));
70
73
  ssr = interaction.type === 'page_load' && isSSREnabled ? {
71
74
  ssr: (0, _getSsrDoneTimeValue.default)(config)
@@ -73,7 +76,7 @@ function _getVCMetrics() {
73
76
  _interactionMetrics.postInteractionLog.setVCObserverSSRConfig(ssr);
74
77
  tti = (_interaction$apdex = interaction.apdex) === null || _interaction$apdex === void 0 || (_interaction$apdex = _interaction$apdex[0]) === null || _interaction$apdex === void 0 ? void 0 : _interaction$apdex.stopTime;
75
78
  prefix = 'ufo';
76
- _context.next = 21;
79
+ _context.next = 22;
77
80
  return observer.getVCResult(_objectSpread(_objectSpread({
78
81
  start: interaction.start,
79
82
  stop: interaction.end,
@@ -89,9 +92,10 @@ function _getVCMetrics() {
89
92
  include3p: include3p,
90
93
  excludeSmartAnswersInSearch: excludeSmartAnswersInSearch,
91
94
  interactionType: interaction.type,
92
- isPageVisible: isPageVisible
95
+ isPageVisible: isPageVisible,
96
+ includeRawData: includeRawData
93
97
  }));
94
- case 21:
98
+ case 22:
95
99
  result = _context.sent;
96
100
  observer.stop(interaction.ufoName);
97
101
  if (!include3p) {
@@ -105,15 +109,15 @@ function _getVCMetrics() {
105
109
  return revision === mostRecentVCRevision;
106
110
  });
107
111
  if (!(!shouldReportVCMetrics || !(mostRecentVCRevisionPayload !== null && mostRecentVCRevisionPayload !== void 0 && mostRecentVCRevisionPayload.clean))) {
108
- _context.next = 28;
112
+ _context.next = 29;
109
113
  break;
110
114
  }
111
115
  return _context.abrupt("return", result);
112
- case 28:
116
+ case 29:
113
117
  return _context.abrupt("return", _objectSpread(_objectSpread({}, result), {}, {
114
118
  'metric:vc90': mostRecentVCRevisionPayload['metric:vc90']
115
119
  }));
116
- case 29:
120
+ case 30:
117
121
  case "end":
118
122
  return _context.stop();
119
123
  }
@@ -67,7 +67,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
67
67
  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; }
68
68
  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; } } }; }
69
69
  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; } }
70
- 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; }
70
+ 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; } // eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
71
71
  var PreviousInteractionLog = {
72
72
  name: undefined,
73
73
  isAborted: undefined
@@ -383,6 +383,7 @@ function removeHoldCriterion(id) {
383
383
  }
384
384
  function addHold(interactionId, labelStack, name, experimental) {
385
385
  var interaction = _constants.interactions.get(interactionId);
386
+ // eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
386
387
  var id = (0, _uuid.v4)();
387
388
  if (!interaction && (0, _platformFeatureFlags.fg)('platform_ufo_enable_late_holds_post_interaction')) {
388
389
  // add hold timestamp to post interaction log if interaction is complete
@@ -22,7 +22,7 @@ var _shortId = _interopRequireDefault(require("../short-id"));
22
22
  var _scheduleOnPaint = _interopRequireDefault(require("./schedule-on-paint"));
23
23
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
24
24
  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; }
25
- 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; }
25
+ 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-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
26
26
  var tryCompleteHandle;
27
27
 
28
28
  /** A portion of the page we apply measurement to */
@@ -177,6 +177,7 @@ function UFOSegment(_ref) {
177
177
  var rate = (0, _config.getInteractionRate)(name, 'press');
178
178
  if ((0, _coinflip.default)(rate)) {
179
179
  var startTimestamp = timestamp !== null && timestamp !== void 0 ? timestamp : performance.now();
180
+ // eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
180
181
  var newId = (0, _uuid.v4)();
181
182
  interactionId.current = newId;
182
183
  // covered experiences with tracing instrumentation:
@@ -12,6 +12,8 @@ var _experienceTraceIdContext = require("../../experience-trace-id-context");
12
12
  var _interactionIdContext = require("../../interaction-id-context");
13
13
  var _interactionMetrics = require("../../interaction-metrics");
14
14
  var _routeNameContext = _interopRequireDefault(require("../../route-name-context"));
15
+ // eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
16
+
15
17
  function traceUFOInteraction(name, interactionType, startTime) {
16
18
  var _getMinorInteractions;
17
19
  var rate = (0, _config.getInteractionRate)(name, interactionType);
@@ -30,6 +32,7 @@ function traceUFOInteraction(name, interactionType, startTime) {
30
32
  }
31
33
  if ((0, _coinflip.default)(rate)) {
32
34
  var startTimestamp = startTime !== null && startTime !== void 0 ? startTime : performance.now();
35
+ // eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
33
36
  var newId = (0, _uuid.v4)();
34
37
  _interactionIdContext.DefaultInteractionID.current = newId;
35
38
 
@@ -13,6 +13,8 @@ var _experienceTraceIdContext = require("../experience-trace-id-context");
13
13
  var _interactionIdContext = require("../interaction-id-context");
14
14
  var _interactionMetrics = require("../interaction-metrics");
15
15
  var _routeNameContext = _interopRequireDefault(require("../route-name-context"));
16
+ // eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
17
+
16
18
  var AWAITING_PAGELOAD_NAME = 'awaiting_pageload_name';
17
19
  function traceUFOPageLoad(ufoName) {
18
20
  var routeName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ufoName;
@@ -24,6 +26,7 @@ function traceUFOPageLoad(ufoName) {
24
26
  var rate = ufoName ? (0, _config.getInteractionRate)(ufoName, 'page_load') : 1;
25
27
  var enabledBySamplingRate = (0, _coinflip.default)(rate);
26
28
  if (enabledBySamplingRate && !activeInteraction) {
29
+ // eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
27
30
  var newId = (0, _uuid.v4)();
28
31
  _interactionIdContext.DefaultInteractionID.current = newId;
29
32
  (0, _interactionMetrics.addNewInteraction)(newId, ufoName || '', 'page_load', 0, rate, null, routeName, (0, _experienceTraceIdContext.getActiveTrace)());
@@ -17,6 +17,8 @@ var _interactionMetrics = require("../interaction-metrics");
17
17
  var _routeNameContext = _interopRequireDefault(require("../route-name-context"));
18
18
  var _setInteractionActiveTrace = require("./utils/set-interaction-active-trace");
19
19
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
20
+ // eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
21
+
20
22
  function traceUFOTransition(ufoName) {
21
23
  var routeName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ufoName;
22
24
  var pressInteractionsList = (0, _config.getDoNotAbortActivePressInteractionOnTransition)();
@@ -31,6 +33,7 @@ function traceUFOTransition(ufoName) {
31
33
  _routeNameContext.default.current = ufoName;
32
34
  var rate = (0, _config.getInteractionRate)(ufoName, 'transition');
33
35
  if ((0, _coinflip.default)(rate)) {
36
+ // eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
34
37
  var newId = (0, _uuid.v4)();
35
38
  (0, _setInteractionActiveTrace.setInteractionActiveTrace)(newId);
36
39
  _interactionIdContext.DefaultInteractionID.current = newId;
@@ -11,6 +11,8 @@ var _uuid = require("uuid");
11
11
  var _coinflip = _interopRequireDefault(require("../coinflip"));
12
12
  var _config = require("../config");
13
13
  var _interactionMetrics = require("../interaction-metrics");
14
+ // eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
15
+
14
16
  var getTypingMetadata = function getTypingMetadata(times, computeStartTime, typingPerformanceTracingMethod) {
15
17
  var min = 0;
16
18
  var max = 0;
@@ -49,6 +51,7 @@ function typingPerformanceTracingTimeout(element, name, rate) {
49
51
  var isInteractionInitialised = false;
50
52
  var id;
51
53
  var start = function start() {
54
+ // eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
52
55
  id = (0, _uuid.v4)();
53
56
  (0, _interactionMetrics.addNewInteraction)(id, name, 'typing', performance.now(), rate, null, null);
54
57
  isInteractionInitialised = true;
@@ -102,6 +105,7 @@ function typingPerformanceTracingTimeoutNoAlloc(element, name, rate) {
102
105
  count = 0;
103
106
  };
104
107
  var start = function start() {
108
+ // eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
105
109
  id = (0, _uuid.v4)();
106
110
  (0, _interactionMetrics.addNewInteraction)(id, name, 'typing', performance.now(), rate, null, null);
107
111
  isInteractionInitialised = true;
@@ -171,6 +175,7 @@ function typingPerformanceTracingMutationObserver(element, name, rate) {
171
175
  eventTime = -1;
172
176
  };
173
177
  var start = function start() {
178
+ // eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
174
179
  id = (0, _uuid.v4)();
175
180
  (0, _interactionMetrics.addNewInteraction)(id, name, 'typing', performance.now(), rate, null, null);
176
181
  isInteractionInitialised = true;
@@ -122,11 +122,11 @@ var VCObserverWrapper = exports.VCObserverWrapper = /*#__PURE__*/function () {
122
122
  value: function () {
123
123
  var _getVCResult = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(param) {
124
124
  var _this$oldVCObserver4, _this$newVCObserver3, _ref2;
125
- var experienceKey, include3p, excludeSmartAnswersInSearch, includeSSRRatio, v1v2Result, v3Result, ssrRatio;
125
+ var experienceKey, include3p, excludeSmartAnswersInSearch, includeSSRRatio, includeRawData, v1v2Result, v3Result, ssrRatio;
126
126
  return _regenerator.default.wrap(function _callee$(_context) {
127
127
  while (1) switch (_context.prev = _context.next) {
128
128
  case 0:
129
- experienceKey = param.experienceKey, include3p = param.include3p, excludeSmartAnswersInSearch = param.excludeSmartAnswersInSearch, includeSSRRatio = param.includeSSRRatio;
129
+ experienceKey = param.experienceKey, include3p = param.include3p, excludeSmartAnswersInSearch = param.excludeSmartAnswersInSearch, includeSSRRatio = param.includeSSRRatio, includeRawData = param.includeRawData;
130
130
  if (!((0, _config.isVCRevisionEnabled)('fy25.01', experienceKey) || (0, _config.isVCRevisionEnabled)('fy25.02', experienceKey))) {
131
131
  _context.next = 7;
132
132
  break;
@@ -156,7 +156,8 @@ var VCObserverWrapper = exports.VCObserverWrapper = /*#__PURE__*/function () {
156
156
  includeSSRRatio: includeSSRRatio,
157
157
  interactionType: param.interactionType,
158
158
  isPageVisible: param.isPageVisible,
159
- interactionAbortReason: param.interactionAbortReason
159
+ interactionAbortReason: param.interactionAbortReason,
160
+ includeRawData: includeRawData
160
161
  });
161
162
  case 12:
162
163
  _context.t1 = _context.sent;
@@ -20,6 +20,7 @@ var _fy25_ = _interopRequireDefault(require("./metric-calculator/fy25_03"));
20
20
  var _getViewportHeight = _interopRequireDefault(require("./metric-calculator/utils/get-viewport-height"));
21
21
  var _getViewportWidth = _interopRequireDefault(require("./metric-calculator/utils/get-viewport-width"));
22
22
  var _vcnext = _interopRequireDefault(require("./metric-calculator/vcnext"));
23
+ var _rawDataHandler = _interopRequireDefault(require("./raw-data-handler"));
23
24
  var _viewportObserver = _interopRequireDefault(require("./viewport-observer"));
24
25
  var _windowEventObserver = _interopRequireDefault(require("./window-event-observer"));
25
26
  var SSRState = {
@@ -238,13 +239,14 @@ var VCObserverNew = exports.default = /*#__PURE__*/function () {
238
239
  key: "getVCResult",
239
240
  value: function () {
240
241
  var _getVCResult = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(param) {
241
- var start, stop, interactionId, interactionType, interactionAbortReason, isPageVisible, include3p, includeSSRRatio, excludeSmartAnswersInSearch, results, calculator_fy25_03, orderedEntries, fy25_03, calculator_next, vcNext;
242
+ var start, stop, interactionId, interactionType, interactionAbortReason, isPageVisible, include3p, includeSSRRatio, excludeSmartAnswersInSearch, includeRawData, results, feVCCalculationStartTime, calculator_fy25_03, orderedEntries, fy25_03, calculator_next, vcNext, feVCCalculationEndTime, rawVCCalculationStartTime, rawHandler, raw;
242
243
  return _regenerator.default.wrap(function _callee$(_context) {
243
244
  while (1) switch (_context.prev = _context.next) {
244
245
  case 0:
245
- start = param.start, stop = param.stop, interactionId = param.interactionId, interactionType = param.interactionType, interactionAbortReason = param.interactionAbortReason, isPageVisible = param.isPageVisible, include3p = param.include3p, includeSSRRatio = param.includeSSRRatio, excludeSmartAnswersInSearch = param.excludeSmartAnswersInSearch;
246
+ start = param.start, stop = param.stop, interactionId = param.interactionId, interactionType = param.interactionType, interactionAbortReason = param.interactionAbortReason, isPageVisible = param.isPageVisible, include3p = param.include3p, includeSSRRatio = param.includeSSRRatio, excludeSmartAnswersInSearch = param.excludeSmartAnswersInSearch, includeRawData = param.includeRawData;
246
247
  results = [];
247
248
  this.addStartEntry(start);
249
+ feVCCalculationStartTime = performance.now();
248
250
  calculator_fy25_03 = new _fy25_.default();
249
251
  if (param.ssr) {
250
252
  this.addSSR(param.ssr);
@@ -253,7 +255,7 @@ var VCObserverNew = exports.default = /*#__PURE__*/function () {
253
255
  start: start,
254
256
  stop: stop
255
257
  });
256
- _context.next = 8;
258
+ _context.next = 9;
257
259
  return calculator_fy25_03.calculate({
258
260
  orderedEntries: orderedEntries,
259
261
  startTime: start,
@@ -267,7 +269,7 @@ var VCObserverNew = exports.default = /*#__PURE__*/function () {
267
269
  isPageVisible: isPageVisible,
268
270
  interactionAbortReason: interactionAbortReason
269
271
  });
270
- case 8:
272
+ case 9:
271
273
  fy25_03 = _context.sent;
272
274
  if (fy25_03) {
273
275
  results.push(fy25_03);
@@ -275,7 +277,7 @@ var VCObserverNew = exports.default = /*#__PURE__*/function () {
275
277
 
276
278
  // TODO on cleanup: put behind `enabledVCRevisions` config
277
279
  calculator_next = new _vcnext.default();
278
- _context.next = 13;
280
+ _context.next = 14;
279
281
  return calculator_next.calculate({
280
282
  orderedEntries: orderedEntries,
281
283
  startTime: start,
@@ -288,13 +290,35 @@ var VCObserverNew = exports.default = /*#__PURE__*/function () {
288
290
  isPageVisible: isPageVisible,
289
291
  interactionAbortReason: interactionAbortReason
290
292
  });
291
- case 13:
293
+ case 14:
292
294
  vcNext = _context.sent;
293
295
  if (vcNext) {
294
296
  results.push(vcNext);
295
297
  }
298
+ feVCCalculationEndTime = performance.now();
299
+ if (!(includeRawData && (0, _platformFeatureFlags.fg)('platform_ufo_enable_vc_raw_data'))) {
300
+ _context.next = 24;
301
+ break;
302
+ }
303
+ rawVCCalculationStartTime = performance.now();
304
+ rawHandler = new _rawDataHandler.default();
305
+ _context.next = 22;
306
+ return rawHandler.getRawData({
307
+ entries: orderedEntries,
308
+ startTime: start,
309
+ stopTime: stop,
310
+ isPageVisible: isPageVisible
311
+ });
312
+ case 22:
313
+ raw = _context.sent;
314
+ if (raw) {
315
+ raw.rawVCTime = Number((performance.now() - rawVCCalculationStartTime).toFixed(2));
316
+ raw.feVCTime = Number((feVCCalculationEndTime - feVCCalculationStartTime).toFixed(2));
317
+ results.push(raw);
318
+ }
319
+ case 24:
296
320
  return _context.abrupt("return", results);
297
- case 16:
321
+ case 25:
298
322
  case "end":
299
323
  return _context.stop();
300
324
  }
@@ -11,6 +11,7 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
11
11
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
12
12
  var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
13
13
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
14
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
14
15
  var _fy25_ = _interopRequireDefault(require("../fy25_03"));
15
16
  function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
16
17
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
@@ -18,10 +19,15 @@ function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototyp
18
19
  // NOTE: `next` to be renamed `fy26.04` once stable
19
20
  var REVISION_NO = 'next';
20
21
  var getConsideredEntryTypes = function getConsideredEntryTypes() {
22
+ var consideredEntryTypes = ['mutation:display-contents-children-element'];
23
+ if ((0, _platformFeatureFlags.fg)('platform_ufo_remove_ssr_placeholder_in_ttvc_v4')) {
24
+ consideredEntryTypes.push('mutation:ssr-placeholder');
25
+ }
21
26
  return ['mutation:display-contents-children-element'];
22
27
  };
23
28
  var getExcludedEntryTypes = function getExcludedEntryTypes() {
24
- return ['layout-shift:same-rect'];
29
+ var excludedEntryTypes = ['layout-shift:same-rect'];
30
+ return excludedEntryTypes;
25
31
  };
26
32
 
27
33
  // NOTE: `VCNext` to be renamed `FY26_04` once stable