@atlaskit/react-ufo 3.1.4 → 3.3.0

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 (179) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +11 -0
  3. package/dist/cjs/create-experimental-interaction-metrics-payload/index.js +52 -25
  4. package/dist/cjs/create-payload/index.js +290 -231
  5. package/dist/cjs/interaction-metrics/index.js +61 -23
  6. package/dist/cjs/interaction-metrics/post-interaction-log.js +63 -34
  7. package/dist/cjs/interaction-metrics-init/index.js +26 -7
  8. package/dist/cjs/segment/schedule-on-paint.js +35 -0
  9. package/dist/cjs/segment/segment.js +10 -1
  10. package/dist/cjs/vc/index.js +105 -1
  11. package/dist/cjs/vc/types.js +5 -0
  12. package/dist/cjs/vc/vc-observer/index.js +198 -208
  13. package/dist/cjs/vc/vc-observer-new/entries-timeline/index.js +56 -0
  14. package/dist/cjs/vc/vc-observer-new/get-element-name.js +68 -0
  15. package/dist/cjs/vc/vc-observer-new/index.js +132 -0
  16. package/dist/cjs/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +75 -0
  17. package/dist/cjs/vc/vc-observer-new/metric-calculator/fy25_03/index.js +60 -0
  18. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +274 -0
  19. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +151 -0
  20. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.js +367 -0
  21. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +397 -0
  22. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/types.js +5 -0
  23. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/index.js +61 -0
  24. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.js +151 -0
  25. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +107 -0
  26. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/types.js +5 -0
  27. package/dist/cjs/vc/vc-observer-new/metric-calculator/types.js +5 -0
  28. package/dist/cjs/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.js +16 -0
  29. package/dist/cjs/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.js +16 -0
  30. package/dist/cjs/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.js +16 -0
  31. package/dist/cjs/vc/vc-observer-new/metric-calculator/utils/task-yield.js +45 -0
  32. package/dist/cjs/vc/vc-observer-new/types.js +5 -0
  33. package/dist/cjs/vc/vc-observer-new/viewport-observer/index.js +195 -0
  34. package/dist/cjs/vc/vc-observer-new/viewport-observer/intersection-observer/index.js +71 -0
  35. package/dist/cjs/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +65 -0
  36. package/dist/cjs/vc/vc-observer-new/viewport-observer/performance-observer/index.js +58 -0
  37. package/dist/cjs/vc/vc-observer-new/viewport-observer/types.js +1 -0
  38. package/dist/cjs/vc/vc-observer-new/window-event-observer/index.js +54 -0
  39. package/dist/es2019/create-experimental-interaction-metrics-payload/index.js +2 -2
  40. package/dist/es2019/create-payload/index.js +8 -7
  41. package/dist/es2019/interaction-metrics/index.js +3 -3
  42. package/dist/es2019/interaction-metrics/post-interaction-log.js +5 -5
  43. package/dist/es2019/interaction-metrics-init/index.js +26 -7
  44. package/dist/es2019/segment/schedule-on-paint.js +29 -0
  45. package/dist/es2019/segment/segment.js +9 -1
  46. package/dist/es2019/vc/index.js +56 -1
  47. package/dist/es2019/vc/types.js +1 -0
  48. package/dist/es2019/vc/vc-observer/index.js +1 -4
  49. package/dist/es2019/vc/vc-observer-new/entries-timeline/index.js +34 -0
  50. package/dist/es2019/vc/vc-observer-new/get-element-name.js +62 -0
  51. package/dist/es2019/vc/vc-observer-new/index.js +98 -0
  52. package/dist/es2019/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +38 -0
  53. package/dist/es2019/vc/vc-observer-new/metric-calculator/fy25_03/index.js +39 -0
  54. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +194 -0
  55. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +69 -0
  56. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.js +248 -0
  57. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +261 -0
  58. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/types.js +1 -0
  59. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/index.js +19 -0
  60. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.js +98 -0
  61. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +58 -0
  62. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/types.js +1 -0
  63. package/dist/es2019/vc/vc-observer-new/metric-calculator/types.js +1 -0
  64. package/dist/es2019/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.js +9 -0
  65. package/dist/es2019/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.js +9 -0
  66. package/dist/es2019/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.js +10 -0
  67. package/dist/es2019/vc/vc-observer-new/metric-calculator/utils/task-yield.js +17 -0
  68. package/dist/es2019/vc/vc-observer-new/types.js +1 -0
  69. package/dist/es2019/vc/vc-observer-new/viewport-observer/index.js +168 -0
  70. package/dist/es2019/vc/vc-observer-new/viewport-observer/intersection-observer/index.js +65 -0
  71. package/dist/es2019/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +48 -0
  72. package/dist/es2019/vc/vc-observer-new/viewport-observer/performance-observer/index.js +41 -0
  73. package/dist/es2019/vc/vc-observer-new/viewport-observer/types.js +0 -0
  74. package/dist/es2019/vc/vc-observer-new/window-event-observer/index.js +36 -0
  75. package/dist/esm/create-experimental-interaction-metrics-payload/index.js +52 -25
  76. package/dist/esm/create-payload/index.js +290 -231
  77. package/dist/esm/interaction-metrics/index.js +61 -23
  78. package/dist/esm/interaction-metrics/post-interaction-log.js +63 -34
  79. package/dist/esm/interaction-metrics-init/index.js +26 -7
  80. package/dist/esm/segment/schedule-on-paint.js +29 -0
  81. package/dist/esm/segment/segment.js +10 -1
  82. package/dist/esm/vc/index.js +104 -1
  83. package/dist/esm/vc/types.js +1 -0
  84. package/dist/esm/vc/vc-observer/index.js +198 -208
  85. package/dist/esm/vc/vc-observer-new/entries-timeline/index.js +50 -0
  86. package/dist/esm/vc/vc-observer-new/get-element-name.js +62 -0
  87. package/dist/esm/vc/vc-observer-new/index.js +126 -0
  88. package/dist/esm/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +69 -0
  89. package/dist/esm/vc/vc-observer-new/metric-calculator/fy25_03/index.js +54 -0
  90. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +268 -0
  91. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +143 -0
  92. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.js +361 -0
  93. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +390 -0
  94. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/types.js +1 -0
  95. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/index.js +54 -0
  96. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.js +144 -0
  97. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +100 -0
  98. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/types.js +1 -0
  99. package/dist/esm/vc/vc-observer-new/metric-calculator/types.js +1 -0
  100. package/dist/esm/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.js +10 -0
  101. package/dist/esm/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.js +10 -0
  102. package/dist/esm/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.js +10 -0
  103. package/dist/esm/vc/vc-observer-new/metric-calculator/utils/task-yield.js +38 -0
  104. package/dist/esm/vc/vc-observer-new/types.js +1 -0
  105. package/dist/esm/vc/vc-observer-new/viewport-observer/index.js +189 -0
  106. package/dist/esm/vc/vc-observer-new/viewport-observer/intersection-observer/index.js +65 -0
  107. package/dist/esm/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +59 -0
  108. package/dist/esm/vc/vc-observer-new/viewport-observer/performance-observer/index.js +51 -0
  109. package/dist/esm/vc/vc-observer-new/viewport-observer/types.js +0 -0
  110. package/dist/esm/vc/vc-observer-new/window-event-observer/index.js +48 -0
  111. package/dist/types/common/index.d.ts +1 -0
  112. package/dist/types/create-experimental-interaction-metrics-payload/index.d.ts +3 -2
  113. package/dist/types/create-payload/index.d.ts +4 -4
  114. package/dist/types/interaction-metrics/post-interaction-log.d.ts +3 -2
  115. package/dist/types/segment/schedule-on-paint.d.ts +2 -0
  116. package/dist/types/vc/index.d.ts +3 -3
  117. package/dist/types/vc/types.d.ts +34 -0
  118. package/dist/types/vc/vc-observer/index.d.ts +5 -21
  119. package/dist/types/vc/vc-observer-new/entries-timeline/index.d.ts +13 -0
  120. package/dist/types/vc/vc-observer-new/get-element-name.d.ts +8 -0
  121. package/dist/types/vc/vc-observer-new/index.d.ts +18 -0
  122. package/dist/types/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.d.ts +9 -0
  123. package/dist/types/vc/vc-observer-new/metric-calculator/fy25_03/index.d.ts +7 -0
  124. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.d.ts +91 -0
  125. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.d.ts +4 -0
  126. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.d.ts +39 -0
  127. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.d.ts +8 -0
  128. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/types.d.ts +43 -0
  129. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/index.d.ts +3 -0
  130. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.d.ts +11 -0
  131. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.d.ts +23 -0
  132. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/types.d.ts +9 -0
  133. package/dist/types/vc/vc-observer-new/metric-calculator/types.d.ts +20 -0
  134. package/dist/types/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.d.ts +1 -0
  135. package/dist/types/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.d.ts +1 -0
  136. package/dist/types/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.d.ts +2 -0
  137. package/dist/types/vc/vc-observer-new/metric-calculator/utils/task-yield.d.ts +1 -0
  138. package/dist/types/vc/vc-observer-new/types.d.ts +21 -0
  139. package/dist/types/vc/vc-observer-new/viewport-observer/index.d.ts +22 -0
  140. package/dist/types/vc/vc-observer-new/viewport-observer/intersection-observer/index.d.ts +30 -0
  141. package/dist/types/vc/vc-observer-new/viewport-observer/mutation-observer/index.d.ts +14 -0
  142. package/dist/types/vc/vc-observer-new/viewport-observer/performance-observer/index.d.ts +14 -0
  143. package/dist/types/vc/vc-observer-new/viewport-observer/types.d.ts +10 -0
  144. package/dist/types/vc/vc-observer-new/window-event-observer/index.d.ts +17 -0
  145. package/dist/types-ts4.5/common/index.d.ts +1 -0
  146. package/dist/types-ts4.5/create-experimental-interaction-metrics-payload/index.d.ts +3 -2
  147. package/dist/types-ts4.5/create-payload/index.d.ts +4 -4
  148. package/dist/types-ts4.5/interaction-metrics/post-interaction-log.d.ts +3 -2
  149. package/dist/types-ts4.5/segment/schedule-on-paint.d.ts +2 -0
  150. package/dist/types-ts4.5/vc/index.d.ts +3 -3
  151. package/dist/types-ts4.5/vc/types.d.ts +34 -0
  152. package/dist/types-ts4.5/vc/vc-observer/index.d.ts +5 -21
  153. package/dist/types-ts4.5/vc/vc-observer-new/entries-timeline/index.d.ts +13 -0
  154. package/dist/types-ts4.5/vc/vc-observer-new/get-element-name.d.ts +8 -0
  155. package/dist/types-ts4.5/vc/vc-observer-new/index.d.ts +18 -0
  156. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.d.ts +9 -0
  157. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/fy25_03/index.d.ts +7 -0
  158. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.d.ts +91 -0
  159. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.d.ts +4 -0
  160. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.d.ts +39 -0
  161. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.d.ts +8 -0
  162. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/types.d.ts +43 -0
  163. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/index.d.ts +3 -0
  164. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.d.ts +11 -0
  165. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.d.ts +23 -0
  166. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/types.d.ts +9 -0
  167. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/types.d.ts +20 -0
  168. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.d.ts +1 -0
  169. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.d.ts +1 -0
  170. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.d.ts +2 -0
  171. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/utils/task-yield.d.ts +1 -0
  172. package/dist/types-ts4.5/vc/vc-observer-new/types.d.ts +21 -0
  173. package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/index.d.ts +22 -0
  174. package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/intersection-observer/index.d.ts +30 -0
  175. package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/mutation-observer/index.d.ts +14 -0
  176. package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/performance-observer/index.d.ts +14 -0
  177. package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/types.d.ts +10 -0
  178. package/dist/types-ts4.5/vc/vc-observer-new/window-event-observer/index.d.ts +17 -0
  179. package/package.json +13 -1
@@ -2,10 +2,12 @@ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProper
2
2
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
3
3
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
4
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
5
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
5
6
  var _excluded = ["labelStack", "time"],
6
7
  _excluded2 = ["stopTime", "labelStack"],
7
8
  _excluded3 = ["labelStack"],
8
9
  _excluded4 = ["labelStack"];
10
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
9
11
  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; }
10
12
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11
13
  import Bowser from 'bowser-ultralight';
@@ -176,56 +178,84 @@ var getTTAI = function getTTAI(interaction) {
176
178
  var pageVisibilityUpToTTAI = getPageVisibilityUpToTTAI(interaction);
177
179
  return !interaction.abortReason && pageVisibilityUpToTTAI === 'visible' ? Math.round(end - start) : undefined;
178
180
  };
179
- var getVCMetrics = function getVCMetrics(interaction) {
180
- var _config$vc, _config$vc$ssrWhiteli, _interaction$apdex, _config$experimentalI;
181
- var config = getConfig();
182
- if (!(config !== null && config !== void 0 && (_config$vc = config.vc) !== null && _config$vc !== void 0 && _config$vc.enabled)) {
183
- return {};
184
- }
185
- if (interaction.type !== 'page_load' && interaction.type !== 'transition') {
186
- return {};
187
- }
188
- var isSSREnabled = (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));
189
- var ssr = interaction.type === 'page_load' && isSSREnabled ? {
190
- ssr: getSSRDoneTimeValue(config)
191
- } : null;
192
- postInteractionLog.setVCObserverSSRConfig(ssr);
193
- var 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;
194
- var prefix = 'ufo';
195
- var result = getVCObserver().getVCResult(_objectSpread({
196
- start: interaction.start,
197
- stop: interaction.end,
198
- tti: tti,
199
- prefix: prefix,
200
- vc: interaction.vc
201
- }, ssr));
202
- if ((_config$experimentalI = config.experimentalInteractionMetrics) !== null && _config$experimentalI !== void 0 && _config$experimentalI.enabled) {
203
- getVCObserver().stop();
204
- }
205
- postInteractionLog.setLastInteractionFinishVCResult(result);
206
- var VC = result === null || result === void 0 ? void 0 : result['metrics:vc'];
207
- if (!VC || !(result !== null && result !== void 0 && result["".concat(prefix, ":vc:clean")])) {
208
- return result;
209
- }
210
- var interactionStatus = getInteractionStatus(interaction);
211
- var pageVisibilityUpToTTAI = getPageVisibilityUpToTTAI(interaction);
212
- if (interactionStatus.originalInteractionStatus !== 'SUCCEEDED' || pageVisibilityUpToTTAI !== 'visible') {
213
- return result;
214
- }
215
- if (fg('ufo_vc_multiheatmap')) {
216
- var _result;
217
- (_result = result["".concat(prefix, ":vc:rev")]) === null || _result === void 0 || _result.forEach(function (element) {
218
- var _element$vcDetails;
219
- if ((_element$vcDetails = element.vcDetails) !== null && _element$vcDetails !== void 0 && (_element$vcDetails = _element$vcDetails['90']) !== null && _element$vcDetails !== void 0 && _element$vcDetails.t) {
220
- var _element$vcDetails$;
221
- element['metric:vc90'] = (_element$vcDetails$ = element.vcDetails['90']) === null || _element$vcDetails$ === void 0 ? void 0 : _element$vcDetails$.t;
181
+ var getVCMetrics = /*#__PURE__*/function () {
182
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(interaction) {
183
+ var _config$vc, _config$vc$ssrWhiteli, _interaction$apdex, _config$experimentalI;
184
+ var config, isSSREnabled, ssr, tti, prefix, result, VC, interactionStatus, pageVisibilityUpToTTAI, _result;
185
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
186
+ while (1) switch (_context.prev = _context.next) {
187
+ case 0:
188
+ config = getConfig();
189
+ if (config !== null && config !== void 0 && (_config$vc = config.vc) !== null && _config$vc !== void 0 && _config$vc.enabled) {
190
+ _context.next = 3;
191
+ break;
192
+ }
193
+ return _context.abrupt("return", {});
194
+ case 3:
195
+ if (!(interaction.type !== 'page_load' && interaction.type !== 'transition')) {
196
+ _context.next = 5;
197
+ break;
198
+ }
199
+ return _context.abrupt("return", {});
200
+ case 5:
201
+ isSSREnabled = (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));
202
+ ssr = interaction.type === 'page_load' && isSSREnabled ? {
203
+ ssr: getSSRDoneTimeValue(config)
204
+ } : null;
205
+ postInteractionLog.setVCObserverSSRConfig(ssr);
206
+ 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;
207
+ prefix = 'ufo';
208
+ _context.next = 12;
209
+ return getVCObserver().getVCResult(_objectSpread({
210
+ start: interaction.start,
211
+ stop: interaction.end,
212
+ tti: tti,
213
+ prefix: prefix,
214
+ vc: interaction.vc
215
+ }, ssr));
216
+ case 12:
217
+ result = _context.sent;
218
+ if ((_config$experimentalI = config.experimentalInteractionMetrics) !== null && _config$experimentalI !== void 0 && _config$experimentalI.enabled) {
219
+ getVCObserver().stop();
220
+ }
221
+ postInteractionLog.setLastInteractionFinishVCResult(result);
222
+ VC = result === null || result === void 0 ? void 0 : result['metrics:vc'];
223
+ if (!(!VC || !(result !== null && result !== void 0 && result["".concat(prefix, ":vc:clean")]))) {
224
+ _context.next = 18;
225
+ break;
226
+ }
227
+ return _context.abrupt("return", result);
228
+ case 18:
229
+ interactionStatus = getInteractionStatus(interaction);
230
+ pageVisibilityUpToTTAI = getPageVisibilityUpToTTAI(interaction);
231
+ if (!(interactionStatus.originalInteractionStatus !== 'SUCCEEDED' || pageVisibilityUpToTTAI !== 'visible')) {
232
+ _context.next = 22;
233
+ break;
234
+ }
235
+ return _context.abrupt("return", result);
236
+ case 22:
237
+ if (fg('ufo_vc_multiheatmap')) {
238
+ (_result = result["".concat(prefix, ":vc:rev")]) === null || _result === void 0 || _result.forEach(function (element) {
239
+ var _element$vcDetails;
240
+ if ((_element$vcDetails = element.vcDetails) !== null && _element$vcDetails !== void 0 && (_element$vcDetails = _element$vcDetails['90']) !== null && _element$vcDetails !== void 0 && _element$vcDetails.t) {
241
+ var _element$vcDetails$;
242
+ element['metric:vc90'] = (_element$vcDetails$ = element.vcDetails['90']) === null || _element$vcDetails$ === void 0 ? void 0 : _element$vcDetails$.t;
243
+ }
244
+ });
245
+ }
246
+ return _context.abrupt("return", _objectSpread(_objectSpread({}, result), {}, {
247
+ 'metric:vc90': VC['90']
248
+ }));
249
+ case 24:
250
+ case "end":
251
+ return _context.stop();
222
252
  }
223
- });
224
- }
225
- return _objectSpread(_objectSpread({}, result), {}, {
226
- 'metric:vc90': VC['90']
227
- });
228
- };
253
+ }, _callee);
254
+ }));
255
+ return function getVCMetrics(_x) {
256
+ return _ref2.apply(this, arguments);
257
+ };
258
+ }();
229
259
  var getNavigationMetrics = function getNavigationMetrics(type) {
230
260
  if (type !== 'page_load') {
231
261
  return {};
@@ -375,10 +405,10 @@ var getTracingContextData = function getTracingContextData(interaction) {
375
405
  function optimizeCustomData(interaction) {
376
406
  var customData = interaction.customData,
377
407
  legacyMetrics = interaction.legacyMetrics;
378
- var customDataMap = customData.reduce(function (result, _ref2) {
408
+ var customDataMap = customData.reduce(function (result, _ref3) {
379
409
  var _result$get$data, _result$get;
380
- var labelStack = _ref2.labelStack,
381
- data = _ref2.data;
410
+ var labelStack = _ref3.labelStack,
411
+ data = _ref3.data;
382
412
  var label = stringifyLabelStackFully(labelStack);
383
413
  var value = (_result$get$data = (_result$get = result.get(label)) === null || _result$get === void 0 ? void 0 : _result$get.data) !== null && _result$get$data !== void 0 ? _result$get$data : {};
384
414
  result.set(label, {
@@ -410,12 +440,12 @@ function optimizeCustomData(interaction) {
410
440
  return _toConsumableArray(customDataMap.values());
411
441
  }
412
442
  function optimizeReactProfilerTimings(reactProfilerTimings, interactionStart, reactUFOVersion) {
413
- var reactProfilerTimingsMap = reactProfilerTimings.reduce(function (result, _ref3) {
414
- var labelStack = _ref3.labelStack,
415
- startTime = _ref3.startTime,
416
- commitTime = _ref3.commitTime,
417
- actualDuration = _ref3.actualDuration,
418
- type = _ref3.type;
443
+ var reactProfilerTimingsMap = reactProfilerTimings.reduce(function (result, _ref4) {
444
+ var labelStack = _ref4.labelStack,
445
+ startTime = _ref4.startTime,
446
+ commitTime = _ref4.commitTime,
447
+ actualDuration = _ref4.actualDuration,
448
+ type = _ref4.type;
419
449
  if (labelStack && startTime >= interactionStart) {
420
450
  var label = stringifyLabelStackFully(labelStack);
421
451
  var start = Math.round(startTime);
@@ -561,10 +591,10 @@ function optimizeCustomTimings(customTimings, interactionStart) {
561
591
  }, []);
562
592
  }
563
593
  function optimizeMarks(marks, reactUFOVersion) {
564
- return marks.map(function (_ref4) {
565
- var labelStack = _ref4.labelStack,
566
- time = _ref4.time,
567
- others = _objectWithoutProperties(_ref4, _excluded);
594
+ return marks.map(function (_ref5) {
595
+ var labelStack = _ref5.labelStack,
596
+ time = _ref5.time,
597
+ others = _objectWithoutProperties(_ref5, _excluded);
568
598
  return _objectSpread(_objectSpread({}, others), {}, {
569
599
  labelStack: labelStack && optimizeLabelStack(labelStack, reactUFOVersion),
570
600
  time: Math.round(time)
@@ -572,10 +602,10 @@ function optimizeMarks(marks, reactUFOVersion) {
572
602
  });
573
603
  }
574
604
  function optimizeApdex(apdex, reactUFOVersion) {
575
- return apdex.map(function (_ref5) {
576
- var stopTime = _ref5.stopTime,
577
- labelStack = _ref5.labelStack,
578
- others = _objectWithoutProperties(_ref5, _excluded2);
605
+ return apdex.map(function (_ref6) {
606
+ var stopTime = _ref6.stopTime,
607
+ labelStack = _ref6.labelStack,
608
+ others = _objectWithoutProperties(_ref6, _excluded2);
579
609
  return _objectSpread(_objectSpread({}, others), {}, {
580
610
  stopTime: Math.round(stopTime)
581
611
  }, labelStack ? {
@@ -693,173 +723,202 @@ function getErrorCounts(interaction) {
693
723
  'ufo:errors:count': interaction.errors.length
694
724
  };
695
725
  }
696
- function createInteractionMetricsPayload(interaction, interactionId, experimental) {
697
- var _window$location, _config$additionalPay;
698
- var interactionPayloadStart = performance.now();
699
- var config = getConfig();
700
- if (!config) {
701
- throw Error('UFO Configuration not provided');
702
- }
703
- var end = interaction.end,
704
- start = interaction.start,
705
- ufoName = interaction.ufoName,
706
- knownSegments = interaction.knownSegments,
707
- rate = interaction.rate,
708
- type = interaction.type,
709
- abortReason = interaction.abortReason,
710
- routeName = interaction.routeName,
711
- featureFlags = interaction.featureFlags,
712
- previousInteractionName = interaction.previousInteractionName,
713
- isPreviousInteractionAborted = interaction.isPreviousInteractionAborted,
714
- abortedByInteractionName = interaction.abortedByInteractionName;
715
- var pageVisibilityAtTTI = getPageVisibilityUpToTTI(interaction);
716
- var pageVisibilityAtTTAI = getPageVisibilityUpToTTAI(interaction);
717
- var segments = config.killswitchNestedSegments ? [] : knownSegments;
718
- var segmentTree = getReactUFOVersion(interaction.type) === '2.0.0' ? buildSegmentTree(segments.map(function (segment) {
719
- return segment.labelStack;
720
- })) : {};
721
- var isDetailedPayload = pageVisibilityAtTTAI === 'visible';
722
- var isPageLoad = type === 'page_load';
723
- var calculatePageVisibilityFromTheStartOfPageLoad = config.enableBetterPageVisibilityApi && isPageLoad;
724
- var moreAccuratePageVisibilityAtTTI = calculatePageVisibilityFromTheStartOfPageLoad ? getMoreAccuratePageVisibilityUpToTTI(interaction) : null;
725
- var moreAccuratePageVisibilityAtTTAI = calculatePageVisibilityFromTheStartOfPageLoad ? getMoreAccuratePageVisibilityUpToTTAI(interaction) : null;
726
- var labelStack = interaction.labelStack ? {
727
- labelStack: optimizeLabelStack(interaction.labelStack, getReactUFOVersion(interaction.type))
728
- } : {};
729
- // Page Load
730
- var getPageLoadInteractionMetrics = function getPageLoadInteractionMetrics() {
731
- var _config$ssr3;
732
- if (!isPageLoad) {
733
- return {};
734
- }
735
- var config = getConfig();
736
- var SSRDoneTimeValue = getSSRDoneTimeValue(config);
737
- var SSRDoneTime = SSRDoneTimeValue !== undefined ? {
738
- SSRDoneTime: Math.round(SSRDoneTimeValue)
739
- } : {};
740
- return _objectSpread(_objectSpread({}, SSRDoneTime), {}, {
741
- isBM3ConfigSSRDoneAsFmp: interaction.metaData.__legacy__bm3ConfigSSRDoneAsFmp,
742
- isUFOConfigSSRDoneAsFmp: interaction.metaData.__legacy__bm3ConfigSSRDoneAsFmp || !!(config !== null && config !== void 0 && (_config$ssr3 = config.ssr) !== null && _config$ssr3 !== void 0 && _config$ssr3.getSSRDoneTime)
743
- });
744
- };
745
- // Detailed payload. Page visibility = visible
746
- var getDetailedInteractionMetrics = function getDetailedInteractionMetrics(resourceTimings) {
747
- if (experimental || window.__UFO_COMPACT_PAYLOAD__ || !isDetailedPayload) {
748
- return {};
749
- }
750
- var spans = [].concat(_toConsumableArray(interaction.spans), _toConsumableArray(atlaskitInteractionSpans));
751
- atlaskitInteractionSpans.length = 0;
752
- return {
753
- errors: interaction.errors.map(function (_ref6) {
754
- var labelStack = _ref6.labelStack,
755
- others = _objectWithoutProperties(_ref6, _excluded3);
756
- return _objectSpread(_objectSpread({}, others), {}, {
757
- labelStack: labelStack && optimizeLabelStack(labelStack, getReactUFOVersion(interaction.type))
758
- });
759
- }),
760
- holdActive: _toConsumableArray(interaction.holdActive.values()),
761
- redirects: optimizeRedirects(interaction.redirects, start),
762
- holdInfo: optimizeHoldInfo(experimental ? interaction.holdExpInfo : interaction.holdInfo, start, getReactUFOVersion(interaction.type)),
763
- spans: optimizeSpans(spans, start, getReactUFOVersion(interaction.type)),
764
- requestInfo: optimizeRequestInfo(interaction.requestInfo, start, getReactUFOVersion(interaction.type)),
765
- customTimings: optimizeCustomTimings(interaction.customTimings, start),
766
- bundleEvalTimings: objectToArray(getBundleEvalTimings(start)),
767
- resourceTimings: objectToArray(resourceTimings)
768
- };
769
- };
770
- // Page load & detailed payload
771
- var getPageLoadDetailedInteractionMetrics = function getPageLoadDetailedInteractionMetrics() {
772
- var _config$ssr4;
773
- if (!isPageLoad || !isDetailedPayload) {
774
- return {};
775
- }
776
- var config = getConfig();
777
- return {
778
- initialPageLoadExtraTimings: objectToArray(initialPageLoadExtraTiming.getTimings()),
779
- SSRTimings: config !== null && config !== void 0 && (_config$ssr4 = config.ssr) !== null && _config$ssr4 !== void 0 && _config$ssr4.getSSRTimings ? config.ssr.getSSRTimings() : objectToArray(ssr.getSSRTimings())
780
- };
781
- };
782
- if (experimental) {
783
- expTTAI = getTTAI(interaction);
784
- } else {
785
- regularTTAI = getTTAI(interaction);
786
- }
787
- var newUFOName = sanitizeUfoName(ufoName);
788
- var resourceTimings = getResourceTimings(start, end);
789
- var payload = {
790
- actionSubject: 'experience',
791
- action: 'measured',
792
- eventType: 'operational',
793
- source: 'measured',
794
- tags: ['observability'],
795
- attributes: {
796
- properties: _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
797
- // basic
798
- 'event:hostname': ((_window$location = window.location) === null || _window$location === void 0 ? void 0 : _window$location.hostname) || 'unknown',
799
- 'event:product': config.product,
800
- 'event:schema': '1.0.0',
801
- 'event:sizeInKb': 0,
802
- 'event:source': {
803
- name: 'react-ufo/web',
804
- version: getReactUFOVersion(interaction.type)
805
- },
806
- 'event:region': config.region || 'unknown',
807
- 'experience:key': experimental ? 'custom.experimental-interaction-metrics' : 'custom.interaction-metrics',
808
- 'experience:name': newUFOName
809
- }, getBrowserMetadata()), getSSRProperties(type)), getAssetsMetrics(interaction, resourceTimings)), getPPSMetrics(interaction)), getPaintMetrics(type)), getNavigationMetrics(type)), getVCMetrics(interaction)), experimental ? getExperimentalVCMetrics(interaction) : undefined), (_config$additionalPay = config.additionalPayloadData) === null || _config$additionalPay === void 0 ? void 0 : _config$additionalPay.call(config, interaction)), getTracingContextData(interaction)), getStylesheetMetrics()), getErrorCounts(interaction)), {}, {
810
- interactionMetrics: _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
811
- namePrefix: config.namePrefix || '',
812
- segmentPrefix: config.segmentPrefix || '',
813
- interactionId: interactionId,
814
- pageVisibilityAtTTI: pageVisibilityAtTTI,
815
- pageVisibilityAtTTAI: pageVisibilityAtTTAI,
816
- experimental__pageVisibilityAtTTI: moreAccuratePageVisibilityAtTTI,
817
- experimental__pageVisibilityAtTTAI: moreAccuratePageVisibilityAtTTAI,
818
- // raw interaction metrics
819
- rate: rate,
820
- routeName: routeName,
821
- type: type,
822
- abortReason: abortReason,
823
- featureFlags: featureFlags,
824
- previousInteractionName: previousInteractionName,
825
- isPreviousInteractionAborted: isPreviousInteractionAborted,
826
- abortedByInteractionName: abortedByInteractionName,
827
- // performance
828
- apdex: optimizeApdex(interaction.apdex, getReactUFOVersion(interaction.type)),
829
- end: Math.round(end),
830
- start: Math.round(start),
831
- segments: getReactUFOVersion(interaction.type) === '2.0.0' ? segmentTree : segments.map(function (_ref7) {
832
- var labelStack = _ref7.labelStack,
833
- others = _objectWithoutProperties(_ref7, _excluded4);
834
- return _objectSpread(_objectSpread({}, others), {}, {
835
- labelStack: optimizeLabelStack(labelStack, getReactUFOVersion(interaction.type))
726
+ function createInteractionMetricsPayload(_x2, _x3, _x4) {
727
+ return _createInteractionMetricsPayload.apply(this, arguments);
728
+ }
729
+ function _createInteractionMetricsPayload() {
730
+ _createInteractionMetricsPayload = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(interaction, interactionId, experimental) {
731
+ var _window$location, _config$additionalPay;
732
+ var interactionPayloadStart, config, end, start, ufoName, knownSegments, rate, type, abortReason, routeName, featureFlags, previousInteractionName, isPreviousInteractionAborted, abortedByInteractionName, pageVisibilityAtTTI, pageVisibilityAtTTAI, segments, segmentTree, isDetailedPayload, isPageLoad, calculatePageVisibilityFromTheStartOfPageLoad, moreAccuratePageVisibilityAtTTI, moreAccuratePageVisibilityAtTTAI, labelStack, getPageLoadInteractionMetrics, getDetailedInteractionMetrics, getPageLoadDetailedInteractionMetrics, newUFOName, resourceTimings, _yield$Promise$all, _yield$Promise$all2, vcMetrics, experimentalMetrics, payload;
733
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
734
+ while (1) switch (_context2.prev = _context2.next) {
735
+ case 0:
736
+ interactionPayloadStart = performance.now();
737
+ config = getConfig();
738
+ if (config) {
739
+ _context2.next = 4;
740
+ break;
741
+ }
742
+ throw Error('UFO Configuration not provided');
743
+ case 4:
744
+ end = interaction.end, start = interaction.start, ufoName = interaction.ufoName, knownSegments = interaction.knownSegments, rate = interaction.rate, type = interaction.type, abortReason = interaction.abortReason, routeName = interaction.routeName, featureFlags = interaction.featureFlags, previousInteractionName = interaction.previousInteractionName, isPreviousInteractionAborted = interaction.isPreviousInteractionAborted, abortedByInteractionName = interaction.abortedByInteractionName;
745
+ pageVisibilityAtTTI = getPageVisibilityUpToTTI(interaction);
746
+ pageVisibilityAtTTAI = getPageVisibilityUpToTTAI(interaction);
747
+ segments = config.killswitchNestedSegments ? [] : knownSegments;
748
+ segmentTree = getReactUFOVersion(interaction.type) === '2.0.0' ? buildSegmentTree(segments.map(function (segment) {
749
+ return segment.labelStack;
750
+ })) : {};
751
+ isDetailedPayload = pageVisibilityAtTTAI === 'visible';
752
+ isPageLoad = type === 'page_load';
753
+ calculatePageVisibilityFromTheStartOfPageLoad = config.enableBetterPageVisibilityApi && isPageLoad;
754
+ moreAccuratePageVisibilityAtTTI = calculatePageVisibilityFromTheStartOfPageLoad ? getMoreAccuratePageVisibilityUpToTTI(interaction) : null;
755
+ moreAccuratePageVisibilityAtTTAI = calculatePageVisibilityFromTheStartOfPageLoad ? getMoreAccuratePageVisibilityUpToTTAI(interaction) : null;
756
+ labelStack = interaction.labelStack ? {
757
+ labelStack: optimizeLabelStack(interaction.labelStack, getReactUFOVersion(interaction.type))
758
+ } : {}; // Page Load
759
+ getPageLoadInteractionMetrics = function getPageLoadInteractionMetrics() {
760
+ var _config$ssr3;
761
+ if (!isPageLoad) {
762
+ return {};
763
+ }
764
+ var config = getConfig();
765
+ var SSRDoneTimeValue = getSSRDoneTimeValue(config);
766
+ var SSRDoneTime = SSRDoneTimeValue !== undefined ? {
767
+ SSRDoneTime: Math.round(SSRDoneTimeValue)
768
+ } : {};
769
+ return _objectSpread(_objectSpread({}, SSRDoneTime), {}, {
770
+ isBM3ConfigSSRDoneAsFmp: interaction.metaData.__legacy__bm3ConfigSSRDoneAsFmp,
771
+ isUFOConfigSSRDoneAsFmp: interaction.metaData.__legacy__bm3ConfigSSRDoneAsFmp || !!(config !== null && config !== void 0 && (_config$ssr3 = config.ssr) !== null && _config$ssr3 !== void 0 && _config$ssr3.getSSRDoneTime)
836
772
  });
837
- }),
838
- marks: optimizeMarks(interaction.marks, getReactUFOVersion(interaction.type)),
839
- customData: optimizeCustomData(interaction),
840
- reactProfilerTimings: optimizeReactProfilerTimings(interaction.reactProfilerTimings, start, getReactUFOVersion(interaction.type))
841
- }, labelStack), getPageLoadInteractionMetrics()), getDetailedInteractionMetrics(resourceTimings)), getPageLoadDetailedInteractionMetrics()), getBm3TrackerTimings(interaction)), {}, {
842
- 'metric:ttai': experimental ? regularTTAI || expTTAI : undefined,
843
- 'metric:experimental:ttai': expTTAI
844
- }),
845
- 'ufo:payloadTime': roundEpsilon(performance.now() - interactionPayloadStart)
846
- })
847
- }
848
- };
849
- if (experimental) {
850
- regularTTAI = undefined;
851
- expTTAI = undefined;
852
- }
853
- payload.attributes.properties['event:sizeInKb'] = getPayloadSize(payload.attributes.properties);
854
- return payload;
773
+ }; // Detailed payload. Page visibility = visible
774
+ getDetailedInteractionMetrics = function getDetailedInteractionMetrics(resourceTimings) {
775
+ if (experimental || window.__UFO_COMPACT_PAYLOAD__ || !isDetailedPayload) {
776
+ return {};
777
+ }
778
+ var spans = [].concat(_toConsumableArray(interaction.spans), _toConsumableArray(atlaskitInteractionSpans));
779
+ atlaskitInteractionSpans.length = 0;
780
+ return {
781
+ errors: interaction.errors.map(function (_ref7) {
782
+ var labelStack = _ref7.labelStack,
783
+ others = _objectWithoutProperties(_ref7, _excluded3);
784
+ return _objectSpread(_objectSpread({}, others), {}, {
785
+ labelStack: labelStack && optimizeLabelStack(labelStack, getReactUFOVersion(interaction.type))
786
+ });
787
+ }),
788
+ holdActive: _toConsumableArray(interaction.holdActive.values()),
789
+ redirects: optimizeRedirects(interaction.redirects, start),
790
+ holdInfo: optimizeHoldInfo(experimental ? interaction.holdExpInfo : interaction.holdInfo, start, getReactUFOVersion(interaction.type)),
791
+ spans: optimizeSpans(spans, start, getReactUFOVersion(interaction.type)),
792
+ requestInfo: optimizeRequestInfo(interaction.requestInfo, start, getReactUFOVersion(interaction.type)),
793
+ customTimings: optimizeCustomTimings(interaction.customTimings, start),
794
+ bundleEvalTimings: objectToArray(getBundleEvalTimings(start)),
795
+ resourceTimings: objectToArray(resourceTimings)
796
+ };
797
+ }; // Page load & detailed payload
798
+ getPageLoadDetailedInteractionMetrics = function getPageLoadDetailedInteractionMetrics() {
799
+ var _config$ssr4;
800
+ if (!isPageLoad || !isDetailedPayload) {
801
+ return {};
802
+ }
803
+ var config = getConfig();
804
+ return {
805
+ initialPageLoadExtraTimings: objectToArray(initialPageLoadExtraTiming.getTimings()),
806
+ SSRTimings: config !== null && config !== void 0 && (_config$ssr4 = config.ssr) !== null && _config$ssr4 !== void 0 && _config$ssr4.getSSRTimings ? config.ssr.getSSRTimings() : objectToArray(ssr.getSSRTimings())
807
+ };
808
+ };
809
+ if (experimental) {
810
+ expTTAI = getTTAI(interaction);
811
+ } else {
812
+ regularTTAI = getTTAI(interaction);
813
+ }
814
+ newUFOName = sanitizeUfoName(ufoName);
815
+ resourceTimings = getResourceTimings(start, end);
816
+ _context2.next = 23;
817
+ return Promise.all([getVCMetrics(interaction), experimental ? getExperimentalVCMetrics(interaction) : Promise.resolve(undefined)]);
818
+ case 23:
819
+ _yield$Promise$all = _context2.sent;
820
+ _yield$Promise$all2 = _slicedToArray(_yield$Promise$all, 2);
821
+ vcMetrics = _yield$Promise$all2[0];
822
+ experimentalMetrics = _yield$Promise$all2[1];
823
+ payload = {
824
+ actionSubject: 'experience',
825
+ action: 'measured',
826
+ eventType: 'operational',
827
+ source: 'measured',
828
+ tags: ['observability'],
829
+ attributes: {
830
+ properties: _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
831
+ // basic
832
+ 'event:hostname': ((_window$location = window.location) === null || _window$location === void 0 ? void 0 : _window$location.hostname) || 'unknown',
833
+ 'event:product': config.product,
834
+ 'event:schema': '1.0.0',
835
+ 'event:sizeInKb': 0,
836
+ 'event:source': {
837
+ name: 'react-ufo/web',
838
+ version: getReactUFOVersion(interaction.type)
839
+ },
840
+ 'event:region': config.region || 'unknown',
841
+ 'experience:key': experimental ? 'custom.experimental-interaction-metrics' : 'custom.interaction-metrics',
842
+ 'experience:name': newUFOName
843
+ }, getBrowserMetadata()), getSSRProperties(type)), getAssetsMetrics(interaction, resourceTimings)), getPPSMetrics(interaction)), getPaintMetrics(type)), getNavigationMetrics(type)), vcMetrics), experimentalMetrics), (_config$additionalPay = config.additionalPayloadData) === null || _config$additionalPay === void 0 ? void 0 : _config$additionalPay.call(config, interaction)), getTracingContextData(interaction)), getStylesheetMetrics()), getErrorCounts(interaction)), {}, {
844
+ interactionMetrics: _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
845
+ namePrefix: config.namePrefix || '',
846
+ segmentPrefix: config.segmentPrefix || '',
847
+ interactionId: interactionId,
848
+ pageVisibilityAtTTI: pageVisibilityAtTTI,
849
+ pageVisibilityAtTTAI: pageVisibilityAtTTAI,
850
+ experimental__pageVisibilityAtTTI: moreAccuratePageVisibilityAtTTI,
851
+ experimental__pageVisibilityAtTTAI: moreAccuratePageVisibilityAtTTAI,
852
+ // raw interaction metrics
853
+ rate: rate,
854
+ routeName: routeName,
855
+ type: type,
856
+ abortReason: abortReason,
857
+ featureFlags: featureFlags,
858
+ previousInteractionName: previousInteractionName,
859
+ isPreviousInteractionAborted: isPreviousInteractionAborted,
860
+ abortedByInteractionName: abortedByInteractionName,
861
+ // performance
862
+ apdex: optimizeApdex(interaction.apdex, getReactUFOVersion(interaction.type)),
863
+ end: Math.round(end),
864
+ start: Math.round(start),
865
+ segments: getReactUFOVersion(interaction.type) === '2.0.0' ? segmentTree : segments.map(function (_ref8) {
866
+ var labelStack = _ref8.labelStack,
867
+ others = _objectWithoutProperties(_ref8, _excluded4);
868
+ return _objectSpread(_objectSpread({}, others), {}, {
869
+ labelStack: optimizeLabelStack(labelStack, getReactUFOVersion(interaction.type))
870
+ });
871
+ }),
872
+ marks: optimizeMarks(interaction.marks, getReactUFOVersion(interaction.type)),
873
+ customData: optimizeCustomData(interaction),
874
+ reactProfilerTimings: optimizeReactProfilerTimings(interaction.reactProfilerTimings, start, getReactUFOVersion(interaction.type))
875
+ }, labelStack), getPageLoadInteractionMetrics()), getDetailedInteractionMetrics(resourceTimings)), getPageLoadDetailedInteractionMetrics()), getBm3TrackerTimings(interaction)), {}, {
876
+ 'metric:ttai': experimental ? regularTTAI || expTTAI : undefined,
877
+ 'metric:experimental:ttai': expTTAI
878
+ }),
879
+ 'ufo:payloadTime': roundEpsilon(performance.now() - interactionPayloadStart)
880
+ })
881
+ }
882
+ };
883
+ if (experimental) {
884
+ regularTTAI = undefined;
885
+ expTTAI = undefined;
886
+ }
887
+ payload.attributes.properties['event:sizeInKb'] = getPayloadSize(payload.attributes.properties);
888
+ return _context2.abrupt("return", payload);
889
+ case 31:
890
+ case "end":
891
+ return _context2.stop();
892
+ }
893
+ }, _callee2);
894
+ }));
895
+ return _createInteractionMetricsPayload.apply(this, arguments);
855
896
  }
856
- export function createPayloads(interactionId, interaction) {
857
- var ufoNameOverride = getUfoNameOverride(interaction);
858
- var modifiedInteraction = _objectSpread(_objectSpread({}, interaction), {}, {
859
- ufoName: ufoNameOverride
860
- });
861
- var interactionMetricsPayload = createInteractionMetricsPayload(modifiedInteraction, interactionId);
862
- return [interactionMetricsPayload];
897
+ export function createPayloads(_x5, _x6) {
898
+ return _createPayloads.apply(this, arguments);
899
+ }
900
+ function _createPayloads() {
901
+ _createPayloads = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(interactionId, interaction) {
902
+ var ufoNameOverride, modifiedInteraction, interactionMetricsPayload;
903
+ return _regeneratorRuntime.wrap(function _callee3$(_context3) {
904
+ while (1) switch (_context3.prev = _context3.next) {
905
+ case 0:
906
+ ufoNameOverride = getUfoNameOverride(interaction);
907
+ modifiedInteraction = _objectSpread(_objectSpread({}, interaction), {}, {
908
+ ufoName: ufoNameOverride
909
+ });
910
+ _context3.next = 4;
911
+ return createInteractionMetricsPayload(modifiedInteraction, interactionId);
912
+ case 4:
913
+ interactionMetricsPayload = _context3.sent;
914
+ return _context3.abrupt("return", [interactionMetricsPayload]);
915
+ case 6:
916
+ case "end":
917
+ return _context3.stop();
918
+ }
919
+ }, _callee3);
920
+ }));
921
+ return _createPayloads.apply(this, arguments);
863
922
  }
864
923
  export function createExperimentalMetricsPayload(interactionId, interaction) {
865
924
  var config = getConfig();