@atlaskit/react-ufo 3.4.14 → 3.5.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 (405) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/cjs/additional-payload/utils/cache-hit-ratio/index.js +5 -4
  3. package/dist/cjs/additional-payload/utils/lighthouse-metrics/cls/index.js +3 -2
  4. package/dist/cjs/additional-payload/utils/lighthouse-metrics/index.js +6 -6
  5. package/dist/cjs/additional-payload/utils/lighthouse-metrics/tbt/index.js +3 -2
  6. package/dist/cjs/additional-payload/utils/lighthouse-metrics/utils/buffer/index.js +3 -0
  7. package/dist/cjs/additional-payload/utils/lighthouse-metrics/utils/observer/index.js +9 -7
  8. package/dist/cjs/assets/index.js +17 -14
  9. package/dist/cjs/assets/utils.js +9 -8
  10. package/dist/cjs/bundle-eval-timing/index.js +8 -8
  11. package/dist/cjs/coinflip/index.js +5 -3
  12. package/dist/cjs/common/constants.js +3 -2
  13. package/dist/cjs/common/react-ufo-payload-schema.js +5 -0
  14. package/dist/cjs/config/index.js +30 -42
  15. package/dist/cjs/create-experimental-interaction-metrics-payload/index.js +29 -39
  16. package/dist/cjs/create-payload/common/utils/index.js +16 -20
  17. package/dist/cjs/create-payload/index.js +150 -140
  18. package/dist/cjs/create-payload/utils/get-interaction-status.js +5 -3
  19. package/dist/cjs/create-payload/utils/get-page-visibility-up-to-ttai.js +5 -3
  20. package/dist/cjs/create-payload/utils/get-ssr-done-time-value.js +5 -3
  21. package/dist/cjs/create-payload/utils/get-vc-metrics.js +10 -8
  22. package/dist/cjs/create-post-interaction-log-payload/index.js +15 -13
  23. package/dist/cjs/custom-data/index.js +4 -3
  24. package/dist/cjs/custom-mark/index.js +4 -3
  25. package/dist/cjs/custom-spans/index.js +4 -3
  26. package/dist/cjs/custom-timings/index.js +6 -6
  27. package/dist/cjs/experience-trace-id-context/index.js +15 -14
  28. package/dist/cjs/experience-trace-id-context/utils/make-trace-http-request-headers/index.js +3 -2
  29. package/dist/cjs/feature-flags-accessed/common/utils/index.js +11 -10
  30. package/dist/cjs/feature-flags-accessed/index.js +3 -2
  31. package/dist/cjs/generate-id/index.js +5 -3
  32. package/dist/cjs/global-error-handler/index.js +14 -13
  33. package/dist/cjs/initial-page-load-extra-timing/index.js +6 -6
  34. package/dist/cjs/interaction-metrics/index.js +110 -145
  35. package/dist/cjs/interaction-metrics/post-interaction-log.js +10 -0
  36. package/dist/cjs/interaction-metrics-init/index.js +17 -10
  37. package/dist/cjs/interaction-metrics-init/schedule-idle-callback.js +8 -4
  38. package/dist/cjs/resource-timing/common/utils/config.js +10 -10
  39. package/dist/cjs/resource-timing/common/utils/resource-timing-buffer.js +13 -12
  40. package/dist/cjs/resource-timing/main.js +25 -19
  41. package/dist/cjs/resource-timing/utils.js +4 -3
  42. package/dist/cjs/round-number/index.js +3 -2
  43. package/dist/cjs/route-name/index.js +5 -3
  44. package/dist/cjs/segment/schedule-on-paint.js +6 -3
  45. package/dist/cjs/segment/segment.js +7 -3
  46. package/dist/cjs/self-measurements/index.js +261 -0
  47. package/dist/cjs/set-interaction-error/index.js +4 -3
  48. package/dist/cjs/short-id/index.js +5 -3
  49. package/dist/cjs/ssr/index.js +18 -21
  50. package/dist/cjs/trace-interaction/index.js +7 -5
  51. package/dist/cjs/trace-pageload/index.js +7 -6
  52. package/dist/cjs/trace-press/index.js +5 -3
  53. package/dist/cjs/trace-redirect/index.js +5 -3
  54. package/dist/cjs/trace-transition/index.js +6 -4
  55. package/dist/cjs/trace-transition/utils/generate-span-id/index.js +3 -2
  56. package/dist/cjs/trace-transition/utils/set-interaction-active-trace/index.js +3 -2
  57. package/dist/cjs/vc/index.js +17 -6
  58. package/dist/cjs/vc/vc-observer/attachAbortListeners.js +3 -2
  59. package/dist/cjs/vc/vc-observer/getVCRevisionsData.js +41 -22
  60. package/dist/cjs/vc/vc-observer/getViewport.js +6 -6
  61. package/dist/cjs/vc/vc-observer/heatmap/heatmap.js +28 -12
  62. package/dist/cjs/vc/vc-observer/index.js +172 -133
  63. package/dist/cjs/vc/vc-observer/media-wrapper/vc-utils.js +3 -2
  64. package/dist/cjs/vc/vc-observer/observers/editor-lnv/index.js +17 -0
  65. package/dist/cjs/vc/vc-observer/observers/index.js +82 -25
  66. package/dist/cjs/vc/vc-observer/observers/non-visual-styles/is-non-visual-style-mutation.js +5 -3
  67. package/dist/cjs/vc/vc-observer/observers/ssr-placeholders/index.js +16 -0
  68. package/dist/cjs/vc/vc-observer/revisions/fy25_01.js +2 -0
  69. package/dist/cjs/vc/vc-observer/revisions/fy25_02.js +2 -0
  70. package/dist/cjs/vc/vc-observer/revisions/revisions.js +3 -2
  71. package/dist/cjs/vc/vc-observer-new/entries-timeline/index.js +9 -0
  72. package/dist/cjs/vc/vc-observer-new/get-element-name.js +5 -3
  73. package/dist/cjs/vc/vc-observer-new/get-unique-element-name.js +13 -11
  74. package/dist/cjs/vc/vc-observer-new/index.js +9 -0
  75. package/dist/cjs/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +2 -0
  76. package/dist/cjs/vc/vc-observer-new/metric-calculator/fy25_03/index.js +6 -1
  77. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +20 -12
  78. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +27 -26
  79. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.js +18 -6
  80. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +27 -14
  81. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/index.js +10 -8
  82. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.js +50 -40
  83. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +10 -8
  84. package/dist/cjs/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.js +5 -3
  85. package/dist/cjs/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.js +5 -3
  86. package/dist/cjs/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.js +5 -3
  87. package/dist/cjs/vc/vc-observer-new/metric-calculator/utils/task-yield.js +10 -8
  88. package/dist/cjs/vc/vc-observer-new/viewport-observer/index.js +15 -7
  89. package/dist/cjs/vc/vc-observer-new/viewport-observer/intersection-observer/index.js +15 -12
  90. package/dist/cjs/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +16 -13
  91. package/dist/cjs/vc/vc-observer-new/viewport-observer/performance-observer/index.js +11 -9
  92. package/dist/cjs/vc/vc-observer-new/window-event-observer/index.js +7 -1
  93. package/dist/es2019/additional-payload/utils/cache-hit-ratio/index.js +6 -5
  94. package/dist/es2019/additional-payload/utils/lighthouse-metrics/cls/index.js +3 -2
  95. package/dist/es2019/additional-payload/utils/lighthouse-metrics/index.js +6 -5
  96. package/dist/es2019/additional-payload/utils/lighthouse-metrics/tbt/index.js +16 -13
  97. package/dist/es2019/additional-payload/utils/lighthouse-metrics/utils/buffer/index.js +3 -0
  98. package/dist/es2019/additional-payload/utils/lighthouse-metrics/utils/observer/index.js +9 -7
  99. package/dist/es2019/assets/index.js +19 -14
  100. package/dist/es2019/assets/utils.js +11 -9
  101. package/dist/es2019/bundle-eval-timing/index.js +7 -6
  102. package/dist/es2019/coinflip/index.js +5 -2
  103. package/dist/es2019/common/constants.js +3 -2
  104. package/dist/es2019/common/react-ufo-payload-schema.js +1 -0
  105. package/dist/es2019/config/index.js +29 -28
  106. package/dist/es2019/create-experimental-interaction-metrics-payload/index.js +18 -15
  107. package/dist/es2019/create-payload/common/utils/index.js +15 -14
  108. package/dist/es2019/create-payload/index.js +87 -71
  109. package/dist/es2019/create-payload/utils/get-interaction-status.js +5 -2
  110. package/dist/es2019/create-payload/utils/get-page-visibility-up-to-ttai.js +4 -2
  111. package/dist/es2019/create-payload/utils/get-ssr-done-time-value.js +4 -2
  112. package/dist/es2019/create-payload/utils/get-vc-metrics.js +4 -2
  113. package/dist/es2019/create-post-interaction-log-payload/index.js +14 -12
  114. package/dist/es2019/custom-data/index.js +3 -2
  115. package/dist/es2019/custom-mark/index.js +3 -2
  116. package/dist/es2019/custom-spans/index.js +3 -2
  117. package/dist/es2019/custom-timings/index.js +5 -4
  118. package/dist/es2019/experience-trace-id-context/index.js +16 -13
  119. package/dist/es2019/experience-trace-id-context/utils/make-trace-http-request-headers/index.js +6 -3
  120. package/dist/es2019/feature-flags-accessed/common/utils/index.js +14 -7
  121. package/dist/es2019/feature-flags-accessed/index.js +3 -2
  122. package/dist/es2019/generate-id/index.js +4 -2
  123. package/dist/es2019/global-error-handler/index.js +15 -12
  124. package/dist/es2019/initial-page-load-extra-timing/index.js +5 -4
  125. package/dist/es2019/interaction-metrics/index.js +109 -108
  126. package/dist/es2019/interaction-metrics/post-interaction-log.js +10 -0
  127. package/dist/es2019/interaction-metrics-init/index.js +17 -10
  128. package/dist/es2019/interaction-metrics-init/schedule-idle-callback.js +7 -3
  129. package/dist/es2019/resource-timing/common/utils/config.js +10 -7
  130. package/dist/es2019/resource-timing/common/utils/resource-timing-buffer.js +14 -11
  131. package/dist/es2019/resource-timing/main.js +31 -17
  132. package/dist/es2019/resource-timing/utils.js +3 -2
  133. package/dist/es2019/round-number/index.js +3 -2
  134. package/dist/es2019/route-name/index.js +4 -2
  135. package/dist/es2019/segment/schedule-on-paint.js +5 -2
  136. package/dist/es2019/segment/segment.js +7 -3
  137. package/dist/es2019/self-measurements/index.js +213 -0
  138. package/dist/es2019/set-interaction-error/index.js +3 -2
  139. package/dist/es2019/short-id/index.js +4 -2
  140. package/dist/es2019/ssr/index.js +21 -16
  141. package/dist/es2019/trace-interaction/index.js +6 -4
  142. package/dist/es2019/trace-pageload/index.js +6 -4
  143. package/dist/es2019/trace-press/index.js +4 -2
  144. package/dist/es2019/trace-redirect/index.js +4 -2
  145. package/dist/es2019/trace-transition/index.js +5 -3
  146. package/dist/es2019/trace-transition/utils/generate-span-id/index.js +4 -1
  147. package/dist/es2019/trace-transition/utils/set-interaction-active-trace/index.js +3 -2
  148. package/dist/es2019/vc/index.js +16 -4
  149. package/dist/es2019/vc/vc-observer/attachAbortListeners.js +3 -2
  150. package/dist/es2019/vc/vc-observer/getVCRevisionsData.js +41 -21
  151. package/dist/es2019/vc/vc-observer/getViewport.js +5 -4
  152. package/dist/es2019/vc/vc-observer/heatmap/heatmap.js +28 -10
  153. package/dist/es2019/vc/vc-observer/index.js +160 -116
  154. package/dist/es2019/vc/vc-observer/media-wrapper/vc-utils.js +3 -2
  155. package/dist/es2019/vc/vc-observer/observers/editor-lnv/index.js +17 -0
  156. package/dist/es2019/vc/vc-observer/observers/index.js +80 -25
  157. package/dist/es2019/vc/vc-observer/observers/non-visual-styles/is-non-visual-style-mutation.js +4 -2
  158. package/dist/es2019/vc/vc-observer/observers/ssr-placeholders/index.js +16 -0
  159. package/dist/es2019/vc/vc-observer/revisions/fy25_01.js +2 -0
  160. package/dist/es2019/vc/vc-observer/revisions/fy25_02.js +2 -0
  161. package/dist/es2019/vc/vc-observer/revisions/revisions.js +3 -2
  162. package/dist/es2019/vc/vc-observer-new/entries-timeline/index.js +9 -0
  163. package/dist/es2019/vc/vc-observer-new/get-element-name.js +4 -2
  164. package/dist/es2019/vc/vc-observer-new/get-unique-element-name.js +12 -10
  165. package/dist/es2019/vc/vc-observer-new/index.js +9 -0
  166. package/dist/es2019/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +2 -0
  167. package/dist/es2019/vc/vc-observer-new/metric-calculator/fy25_03/index.js +3 -0
  168. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +14 -4
  169. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +6 -4
  170. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.js +18 -6
  171. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +21 -8
  172. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/index.js +4 -2
  173. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.js +10 -8
  174. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +4 -2
  175. package/dist/es2019/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.js +4 -2
  176. package/dist/es2019/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.js +4 -2
  177. package/dist/es2019/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.js +4 -2
  178. package/dist/es2019/vc/vc-observer-new/metric-calculator/utils/task-yield.js +5 -2
  179. package/dist/es2019/vc/vc-observer-new/viewport-observer/index.js +15 -7
  180. package/dist/es2019/vc/vc-observer-new/viewport-observer/intersection-observer/index.js +15 -12
  181. package/dist/es2019/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +15 -13
  182. package/dist/es2019/vc/vc-observer-new/viewport-observer/performance-observer/index.js +11 -9
  183. package/dist/es2019/vc/vc-observer-new/window-event-observer/index.js +7 -1
  184. package/dist/esm/additional-payload/utils/cache-hit-ratio/index.js +5 -4
  185. package/dist/esm/additional-payload/utils/lighthouse-metrics/cls/index.js +3 -2
  186. package/dist/esm/additional-payload/utils/lighthouse-metrics/index.js +5 -4
  187. package/dist/esm/additional-payload/utils/lighthouse-metrics/tbt/index.js +3 -2
  188. package/dist/esm/additional-payload/utils/lighthouse-metrics/utils/buffer/index.js +3 -0
  189. package/dist/esm/additional-payload/utils/lighthouse-metrics/utils/observer/index.js +9 -7
  190. package/dist/esm/assets/index.js +17 -14
  191. package/dist/esm/assets/utils.js +10 -8
  192. package/dist/esm/bundle-eval-timing/index.js +7 -6
  193. package/dist/esm/coinflip/index.js +5 -2
  194. package/dist/esm/common/constants.js +3 -2
  195. package/dist/esm/common/react-ufo-payload-schema.js +1 -0
  196. package/dist/esm/config/index.js +29 -28
  197. package/dist/esm/create-experimental-interaction-metrics-payload/index.js +28 -35
  198. package/dist/esm/create-payload/common/utils/index.js +15 -14
  199. package/dist/esm/create-payload/index.js +149 -139
  200. package/dist/esm/create-payload/utils/get-interaction-status.js +5 -2
  201. package/dist/esm/create-payload/utils/get-page-visibility-up-to-ttai.js +4 -2
  202. package/dist/esm/create-payload/utils/get-ssr-done-time-value.js +4 -2
  203. package/dist/esm/create-payload/utils/get-vc-metrics.js +9 -7
  204. package/dist/esm/create-post-interaction-log-payload/index.js +14 -12
  205. package/dist/esm/custom-data/index.js +3 -2
  206. package/dist/esm/custom-mark/index.js +3 -2
  207. package/dist/esm/custom-spans/index.js +3 -2
  208. package/dist/esm/custom-timings/index.js +5 -4
  209. package/dist/esm/experience-trace-id-context/index.js +15 -14
  210. package/dist/esm/experience-trace-id-context/utils/make-trace-http-request-headers/index.js +3 -2
  211. package/dist/esm/feature-flags-accessed/common/utils/index.js +11 -10
  212. package/dist/esm/feature-flags-accessed/index.js +3 -2
  213. package/dist/esm/generate-id/index.js +4 -2
  214. package/dist/esm/global-error-handler/index.js +14 -13
  215. package/dist/esm/initial-page-load-extra-timing/index.js +5 -4
  216. package/dist/esm/interaction-metrics/index.js +109 -108
  217. package/dist/esm/interaction-metrics/post-interaction-log.js +10 -0
  218. package/dist/esm/interaction-metrics-init/index.js +17 -10
  219. package/dist/esm/interaction-metrics-init/schedule-idle-callback.js +7 -3
  220. package/dist/esm/resource-timing/common/utils/config.js +9 -8
  221. package/dist/esm/resource-timing/common/utils/resource-timing-buffer.js +13 -12
  222. package/dist/esm/resource-timing/main.js +25 -19
  223. package/dist/esm/resource-timing/utils.js +3 -2
  224. package/dist/esm/round-number/index.js +3 -2
  225. package/dist/esm/route-name/index.js +4 -2
  226. package/dist/esm/segment/schedule-on-paint.js +5 -2
  227. package/dist/esm/segment/segment.js +7 -3
  228. package/dist/esm/self-measurements/index.js +246 -0
  229. package/dist/esm/set-interaction-error/index.js +3 -2
  230. package/dist/esm/short-id/index.js +4 -2
  231. package/dist/esm/ssr/index.js +17 -16
  232. package/dist/esm/trace-interaction/index.js +6 -4
  233. package/dist/esm/trace-pageload/index.js +6 -4
  234. package/dist/esm/trace-press/index.js +4 -2
  235. package/dist/esm/trace-redirect/index.js +4 -2
  236. package/dist/esm/trace-transition/index.js +5 -3
  237. package/dist/esm/trace-transition/utils/generate-span-id/index.js +3 -2
  238. package/dist/esm/trace-transition/utils/set-interaction-active-trace/index.js +3 -2
  239. package/dist/esm/vc/index.js +16 -4
  240. package/dist/esm/vc/vc-observer/attachAbortListeners.js +3 -2
  241. package/dist/esm/vc/vc-observer/getVCRevisionsData.js +40 -21
  242. package/dist/esm/vc/vc-observer/getViewport.js +5 -4
  243. package/dist/esm/vc/vc-observer/heatmap/heatmap.js +28 -12
  244. package/dist/esm/vc/vc-observer/index.js +172 -133
  245. package/dist/esm/vc/vc-observer/media-wrapper/vc-utils.js +3 -2
  246. package/dist/esm/vc/vc-observer/observers/editor-lnv/index.js +17 -0
  247. package/dist/esm/vc/vc-observer/observers/index.js +82 -25
  248. package/dist/esm/vc/vc-observer/observers/non-visual-styles/is-non-visual-style-mutation.js +4 -2
  249. package/dist/esm/vc/vc-observer/observers/ssr-placeholders/index.js +16 -0
  250. package/dist/esm/vc/vc-observer/revisions/fy25_01.js +2 -0
  251. package/dist/esm/vc/vc-observer/revisions/fy25_02.js +2 -0
  252. package/dist/esm/vc/vc-observer/revisions/revisions.js +3 -2
  253. package/dist/esm/vc/vc-observer-new/entries-timeline/index.js +9 -0
  254. package/dist/esm/vc/vc-observer-new/get-element-name.js +4 -2
  255. package/dist/esm/vc/vc-observer-new/get-unique-element-name.js +12 -10
  256. package/dist/esm/vc/vc-observer-new/index.js +9 -0
  257. package/dist/esm/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +2 -0
  258. package/dist/esm/vc/vc-observer-new/metric-calculator/fy25_03/index.js +6 -1
  259. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +19 -9
  260. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +26 -24
  261. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.js +18 -6
  262. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +26 -13
  263. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/index.js +9 -7
  264. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.js +49 -39
  265. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +9 -7
  266. package/dist/esm/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.js +4 -2
  267. package/dist/esm/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.js +4 -2
  268. package/dist/esm/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.js +4 -2
  269. package/dist/esm/vc/vc-observer-new/metric-calculator/utils/task-yield.js +10 -7
  270. package/dist/esm/vc/vc-observer-new/viewport-observer/index.js +15 -7
  271. package/dist/esm/vc/vc-observer-new/viewport-observer/intersection-observer/index.js +15 -12
  272. package/dist/esm/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +15 -12
  273. package/dist/esm/vc/vc-observer-new/viewport-observer/performance-observer/index.js +11 -7
  274. package/dist/esm/vc/vc-observer-new/window-event-observer/index.js +7 -1
  275. package/dist/types/additional-payload/utils/cache-hit-ratio/index.d.ts +1 -1
  276. package/dist/types/additional-payload/utils/lighthouse-metrics/index.d.ts +2 -2
  277. package/dist/types/assets/index.d.ts +3 -1
  278. package/dist/types/assets/utils.d.ts +1 -1
  279. package/dist/types/bundle-eval-timing/index.d.ts +2 -2
  280. package/dist/types/coinflip/index.d.ts +2 -1
  281. package/dist/types/common/index.d.ts +2 -1
  282. package/dist/types/common/react-ufo-payload-schema.d.ts +175 -0
  283. package/dist/types/common/vc/types.d.ts +20 -10
  284. package/dist/types/config/index.d.ts +14 -16
  285. package/dist/types/create-experimental-interaction-metrics-payload/index.d.ts +4 -3
  286. package/dist/types/create-payload/common/utils/index.d.ts +6 -7
  287. package/dist/types/create-payload/index.d.ts +1250 -1537
  288. package/dist/types/create-payload/utils/get-interaction-status.d.ts +2 -1
  289. package/dist/types/create-payload/utils/get-page-visibility-up-to-ttai.d.ts +2 -1
  290. package/dist/types/create-payload/utils/get-ssr-done-time-value.d.ts +2 -1
  291. package/dist/types/create-payload/utils/get-vc-metrics.d.ts +3 -2
  292. package/dist/types/create-post-interaction-log-payload/index.d.ts +3 -2
  293. package/dist/types/custom-data/index.d.ts +1 -1
  294. package/dist/types/custom-mark/index.d.ts +1 -1
  295. package/dist/types/custom-spans/index.d.ts +1 -1
  296. package/dist/types/custom-timings/index.d.ts +2 -2
  297. package/dist/types/generate-id/index.d.ts +2 -1
  298. package/dist/types/hidden-timing/index.d.ts +1 -1
  299. package/dist/types/initial-page-load-extra-timing/index.d.ts +2 -2
  300. package/dist/types/interaction-context/index.d.ts +3 -3
  301. package/dist/types/interaction-metrics/index.d.ts +42 -42
  302. package/dist/types/interaction-metrics/post-interaction-log.d.ts +1 -0
  303. package/dist/types/interaction-metrics-init/schedule-idle-callback.d.ts +2 -1
  304. package/dist/types/resource-timing/common/utils/config.d.ts +1 -1
  305. package/dist/types/resource-timing/utils.d.ts +1 -1
  306. package/dist/types/round-number/index.d.ts +1 -1
  307. package/dist/types/route-name/index.d.ts +4 -3
  308. package/dist/types/segment/schedule-on-paint.d.ts +2 -1
  309. package/dist/types/self-measurements/index.d.ts +57 -0
  310. package/dist/types/set-interaction-error/index.d.ts +1 -1
  311. package/dist/types/short-id/index.d.ts +2 -1
  312. package/dist/types/ssr/index.d.ts +5 -5
  313. package/dist/types/trace-interaction/index.d.ts +2 -1
  314. package/dist/types/trace-pageload/index.d.ts +3 -2
  315. package/dist/types/trace-press/index.d.ts +2 -1
  316. package/dist/types/trace-redirect/index.d.ts +2 -1
  317. package/dist/types/trace-transition/index.d.ts +2 -1
  318. package/dist/types/vc/index.d.ts +2 -2
  319. package/dist/types/vc/vc-observer/getVCRevisionsData.d.ts +7 -7
  320. package/dist/types/vc/vc-observer/getViewport.d.ts +2 -2
  321. package/dist/types/vc/vc-observer/heatmap/heatmap.d.ts +7 -4
  322. package/dist/types/vc/vc-observer/index.d.ts +4 -4
  323. package/dist/types/vc/vc-observer/observers/non-visual-styles/is-non-visual-style-mutation.d.ts +5 -4
  324. package/dist/types/vc/vc-observer/observers/types.d.ts +1 -1
  325. package/dist/types/vc/vc-observer-new/get-element-name.d.ts +2 -1
  326. package/dist/types/vc/vc-observer-new/get-unique-element-name.d.ts +2 -1
  327. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.d.ts +2 -3
  328. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.d.ts +3 -2
  329. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.d.ts +3 -2
  330. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/index.d.ts +2 -1
  331. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.d.ts +2 -1
  332. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.d.ts +3 -2
  333. package/dist/types/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.d.ts +2 -1
  334. package/dist/types/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.d.ts +2 -1
  335. package/dist/types/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.d.ts +2 -1
  336. package/dist/types/vc/vc-observer-new/metric-calculator/utils/task-yield.d.ts +2 -1
  337. package/dist/types/vc/vc-observer-new/viewport-observer/index.d.ts +1 -1
  338. package/dist/types/vc/vc-observer-new/viewport-observer/mutation-observer/index.d.ts +2 -1
  339. package/dist/types/vc/vc-observer-new/viewport-observer/performance-observer/index.d.ts +3 -3
  340. package/dist/types-ts4.5/additional-payload/utils/cache-hit-ratio/index.d.ts +1 -1
  341. package/dist/types-ts4.5/additional-payload/utils/lighthouse-metrics/index.d.ts +2 -2
  342. package/dist/types-ts4.5/assets/index.d.ts +3 -1
  343. package/dist/types-ts4.5/assets/utils.d.ts +1 -1
  344. package/dist/types-ts4.5/bundle-eval-timing/index.d.ts +2 -2
  345. package/dist/types-ts4.5/coinflip/index.d.ts +2 -1
  346. package/dist/types-ts4.5/common/index.d.ts +2 -1
  347. package/dist/types-ts4.5/common/react-ufo-payload-schema.d.ts +177 -0
  348. package/dist/types-ts4.5/common/vc/types.d.ts +20 -10
  349. package/dist/types-ts4.5/config/index.d.ts +14 -20
  350. package/dist/types-ts4.5/create-experimental-interaction-metrics-payload/index.d.ts +4 -3
  351. package/dist/types-ts4.5/create-payload/common/utils/index.d.ts +6 -7
  352. package/dist/types-ts4.5/create-payload/index.d.ts +1250 -1537
  353. package/dist/types-ts4.5/create-payload/utils/get-interaction-status.d.ts +2 -1
  354. package/dist/types-ts4.5/create-payload/utils/get-page-visibility-up-to-ttai.d.ts +2 -1
  355. package/dist/types-ts4.5/create-payload/utils/get-ssr-done-time-value.d.ts +2 -1
  356. package/dist/types-ts4.5/create-payload/utils/get-vc-metrics.d.ts +3 -2
  357. package/dist/types-ts4.5/create-post-interaction-log-payload/index.d.ts +3 -2
  358. package/dist/types-ts4.5/custom-data/index.d.ts +1 -1
  359. package/dist/types-ts4.5/custom-mark/index.d.ts +1 -1
  360. package/dist/types-ts4.5/custom-spans/index.d.ts +1 -1
  361. package/dist/types-ts4.5/custom-timings/index.d.ts +2 -2
  362. package/dist/types-ts4.5/generate-id/index.d.ts +2 -1
  363. package/dist/types-ts4.5/hidden-timing/index.d.ts +1 -1
  364. package/dist/types-ts4.5/initial-page-load-extra-timing/index.d.ts +2 -2
  365. package/dist/types-ts4.5/interaction-context/index.d.ts +3 -3
  366. package/dist/types-ts4.5/interaction-metrics/index.d.ts +42 -42
  367. package/dist/types-ts4.5/interaction-metrics/post-interaction-log.d.ts +1 -0
  368. package/dist/types-ts4.5/interaction-metrics-init/schedule-idle-callback.d.ts +2 -1
  369. package/dist/types-ts4.5/resource-timing/common/utils/config.d.ts +1 -1
  370. package/dist/types-ts4.5/resource-timing/utils.d.ts +1 -1
  371. package/dist/types-ts4.5/round-number/index.d.ts +1 -1
  372. package/dist/types-ts4.5/route-name/index.d.ts +4 -3
  373. package/dist/types-ts4.5/segment/schedule-on-paint.d.ts +2 -1
  374. package/dist/types-ts4.5/self-measurements/index.d.ts +57 -0
  375. package/dist/types-ts4.5/set-interaction-error/index.d.ts +1 -1
  376. package/dist/types-ts4.5/short-id/index.d.ts +2 -1
  377. package/dist/types-ts4.5/ssr/index.d.ts +5 -5
  378. package/dist/types-ts4.5/trace-interaction/index.d.ts +2 -1
  379. package/dist/types-ts4.5/trace-pageload/index.d.ts +3 -2
  380. package/dist/types-ts4.5/trace-press/index.d.ts +2 -1
  381. package/dist/types-ts4.5/trace-redirect/index.d.ts +2 -1
  382. package/dist/types-ts4.5/trace-transition/index.d.ts +2 -1
  383. package/dist/types-ts4.5/vc/index.d.ts +2 -2
  384. package/dist/types-ts4.5/vc/vc-observer/getVCRevisionsData.d.ts +7 -7
  385. package/dist/types-ts4.5/vc/vc-observer/getViewport.d.ts +2 -2
  386. package/dist/types-ts4.5/vc/vc-observer/heatmap/heatmap.d.ts +7 -4
  387. package/dist/types-ts4.5/vc/vc-observer/index.d.ts +4 -4
  388. package/dist/types-ts4.5/vc/vc-observer/observers/non-visual-styles/is-non-visual-style-mutation.d.ts +5 -4
  389. package/dist/types-ts4.5/vc/vc-observer/observers/types.d.ts +1 -1
  390. package/dist/types-ts4.5/vc/vc-observer-new/get-element-name.d.ts +2 -1
  391. package/dist/types-ts4.5/vc/vc-observer-new/get-unique-element-name.d.ts +2 -1
  392. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.d.ts +2 -3
  393. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.d.ts +3 -2
  394. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.d.ts +3 -2
  395. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/index.d.ts +2 -1
  396. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.d.ts +2 -1
  397. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.d.ts +3 -2
  398. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.d.ts +2 -1
  399. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.d.ts +2 -1
  400. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.d.ts +2 -1
  401. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/utils/task-yield.d.ts +2 -1
  402. package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/index.d.ts +1 -1
  403. package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/mutation-observer/index.d.ts +2 -1
  404. package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/performance-observer/index.d.ts +3 -3
  405. package/package.json +10 -1
@@ -27,13 +27,14 @@ import { interactionSpans as atlaskitInteractionSpans } from '../interaction-met
27
27
  import * as resourceTiming from '../resource-timing';
28
28
  import { filterResourceTimings } from '../resource-timing/common/utils/resource-timing-buffer';
29
29
  import { roundEpsilon } from '../round-number';
30
+ import { getProfilerAsyncRuntime, getProfilerRuntimeByTag, getProfilerTotalRuntime, markProfilingEnd, markProfilingStart, resetProfilerMeasurements, withProfiling } from '../self-measurements';
30
31
  import * as ssr from '../ssr';
31
32
  import { buildSegmentTree, labelStackStartWith, optimizeLabelStack, sanitizeUfoName, stringifyLabelStackFully } from './common/utils';
32
33
  import getInteractionStatus from './utils/get-interaction-status';
33
34
  import getPageVisibilityUpToTTAI from './utils/get-page-visibility-up-to-ttai';
34
35
  import getSSRDoneTimeValue from './utils/get-ssr-done-time-value';
35
36
  import getVCMetrics from './utils/get-vc-metrics';
36
- function getUfoNameOverride(interaction) {
37
+ var getUfoNameOverride = withProfiling(function getUfoNameOverride(interaction) {
37
38
  var ufoName = interaction.ufoName,
38
39
  apdex = interaction.apdex;
39
40
  try {
@@ -48,8 +49,8 @@ function getUfoNameOverride(interaction) {
48
49
  } catch (e) {
49
50
  return ufoName;
50
51
  }
51
- }
52
- function getEarliestLegacyStopTime(interaction, labelStack) {
52
+ });
53
+ var getEarliestLegacyStopTime = withProfiling(function getEarliestLegacyStopTime(interaction, labelStack) {
53
54
  var earliestLegacyStopTime = null;
54
55
  interaction.apdex.forEach(function (a) {
55
56
  var _a$labelStack;
@@ -64,8 +65,8 @@ function getEarliestLegacyStopTime(interaction, labelStack) {
64
65
  }
65
66
  });
66
67
  return earliestLegacyStopTime;
67
- }
68
- function getBm3EndTimeOrFallbackValue(interaction) {
68
+ });
69
+ var getBm3EndTimeOrFallbackValue = withProfiling(function getBm3EndTimeOrFallbackValue(interaction) {
69
70
  var _getEarliestLegacySto;
70
71
  var labelStack = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
71
72
  var fallbackValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : interaction.end;
@@ -73,13 +74,13 @@ function getBm3EndTimeOrFallbackValue(interaction) {
73
74
  return fallbackValue;
74
75
  }
75
76
  return (_getEarliestLegacySto = getEarliestLegacyStopTime(interaction, labelStack)) !== null && _getEarliestLegacySto !== void 0 ? _getEarliestLegacySto : fallbackValue;
76
- }
77
- var getPageVisibilityUpToTTI = function getPageVisibilityUpToTTI(interaction) {
77
+ });
78
+ var getPageVisibilityUpToTTI = withProfiling(function getPageVisibilityUpToTTI(interaction) {
78
79
  var start = interaction.start;
79
80
  var bm3EndTimeOrInteractionEndTime = getBm3EndTimeOrFallbackValue(interaction);
80
81
  return getPageVisibilityState(start, bm3EndTimeOrInteractionEndTime);
81
- };
82
- var getVisibilityStateFromPerformance = function getVisibilityStateFromPerformance(stop) {
82
+ });
83
+ var getVisibilityStateFromPerformance = withProfiling(function getVisibilityStateFromPerformance(stop) {
83
84
  try {
84
85
  var results = performance.getEntriesByType('visibility-state');
85
86
  if (!results || results.length === 0) {
@@ -107,8 +108,8 @@ var getVisibilityStateFromPerformance = function getVisibilityStateFromPerforman
107
108
  } catch (e) {
108
109
  return null;
109
110
  }
110
- };
111
- var getMoreAccuratePageVisibilityUpToTTI = function getMoreAccuratePageVisibilityUpToTTI(interaction) {
111
+ });
112
+ var getMoreAccuratePageVisibilityUpToTTI = withProfiling(function getMoreAccuratePageVisibilityUpToTTI(interaction) {
112
113
  var old = getPageVisibilityUpToTTI(interaction);
113
114
  var tti = getEarliestLegacyStopTime(interaction, []);
114
115
  if (!tti) {
@@ -122,8 +123,8 @@ var getMoreAccuratePageVisibilityUpToTTI = function getMoreAccuratePageVisibilit
122
123
  return 'mixed';
123
124
  }
124
125
  return old;
125
- };
126
- var getMoreAccuratePageVisibilityUpToTTAI = function getMoreAccuratePageVisibilityUpToTTAI(interaction) {
126
+ });
127
+ var getMoreAccuratePageVisibilityUpToTTAI = withProfiling(function getMoreAccuratePageVisibilityUpToTTAI(interaction) {
127
128
  var old = getPageVisibilityUpToTTAI(interaction);
128
129
  var buffered = getVisibilityStateFromPerformance(interaction.end);
129
130
  if (!buffered) {
@@ -133,21 +134,21 @@ var getMoreAccuratePageVisibilityUpToTTAI = function getMoreAccuratePageVisibili
133
134
  return 'mixed';
134
135
  }
135
136
  return old;
136
- };
137
- var getResourceTimings = function getResourceTimings(start, end) {
137
+ });
138
+ var getResourceTimings = withProfiling(function getResourceTimings(start, end) {
138
139
  var _resourceTiming$getRe;
139
140
  return (_resourceTiming$getRe = resourceTiming.getResourceTimings(start, end)) !== null && _resourceTiming$getRe !== void 0 ? _resourceTiming$getRe : undefined;
140
- };
141
- var getBundleEvalTimings = function getBundleEvalTimings(start) {
141
+ });
142
+ var getBundleEvalTimings = withProfiling(function getBundleEvalTimings(start) {
142
143
  return bundleEvalTiming.getBundleEvalTimings(start);
143
- };
144
- var getSSRSuccess = function getSSRSuccess(type) {
144
+ });
145
+ var getSSRSuccess = withProfiling(function getSSRSuccess(type) {
145
146
  return type === 'page_load' ? ssr.getSSRSuccess() : undefined;
146
- };
147
- var getSSRFeatureFlags = function getSSRFeatureFlags(type) {
147
+ });
148
+ var getSSRFeatureFlags = withProfiling(function getSSRFeatureFlags(type) {
148
149
  return type === 'page_load' ? ssr.getSSRFeatureFlags() : undefined;
149
- };
150
- var getLCP = function getLCP(end) {
150
+ });
151
+ var getLCP = withProfiling(function getLCP(end) {
151
152
  return new Promise(function (resolve) {
152
153
  var observer;
153
154
  var timeout = setTimeout(function () {
@@ -155,7 +156,7 @@ var getLCP = function getLCP(end) {
155
156
  (_observer = observer) === null || _observer === void 0 || _observer.disconnect();
156
157
  resolve(null);
157
158
  }, 200);
158
- observer = new PerformanceObserver(function (list) {
159
+ var performanceObserverCallback = withProfiling(function performanceObserverCallback(list) {
159
160
  var entries = Array.from(list.getEntries());
160
161
  var lastEntry = entries.reduce(function (agg, entry) {
161
162
  // Use the latest LCP candidate before TTAI
@@ -171,14 +172,15 @@ var getLCP = function getLCP(end) {
171
172
  resolve(lastEntry.startTime);
172
173
  }
173
174
  });
175
+ observer = new PerformanceObserver(performanceObserverCallback);
174
176
  observer.observe({
175
177
  type: 'largest-contentful-paint',
176
178
  buffered: true
177
179
  });
178
180
  });
179
- };
180
- var getPaintMetrics = /*#__PURE__*/function () {
181
- var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(type, end) {
181
+ });
182
+ var getPaintMetrics = withProfiling( /*#__PURE__*/function () {
183
+ var _getPaintMetrics = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(type, end) {
182
184
  var metrics, lcp;
183
185
  return _regeneratorRuntime.wrap(function _callee$(_context) {
184
186
  while (1) switch (_context.prev = _context.next) {
@@ -212,17 +214,18 @@ var getPaintMetrics = /*#__PURE__*/function () {
212
214
  }
213
215
  }, _callee);
214
216
  }));
215
- return function getPaintMetrics(_x, _x2) {
216
- return _ref2.apply(this, arguments);
217
- };
218
- }();
219
- var getTTAI = function getTTAI(interaction) {
217
+ function getPaintMetrics(_x, _x2) {
218
+ return _getPaintMetrics.apply(this, arguments);
219
+ }
220
+ return getPaintMetrics;
221
+ }());
222
+ var getTTAI = withProfiling(function getTTAI(interaction) {
220
223
  var start = interaction.start,
221
224
  end = interaction.end;
222
225
  var pageVisibilityUpToTTAI = getPageVisibilityUpToTTAI(interaction);
223
226
  return !interaction.abortReason && pageVisibilityUpToTTAI === 'visible' ? Math.round(end - start) : undefined;
224
- };
225
- var getNavigationMetrics = function getNavigationMetrics(type) {
227
+ });
228
+ var getNavigationMetrics = withProfiling(function getNavigationMetrics(type) {
226
229
  if (type !== 'page_load') {
227
230
  return {};
228
231
  }
@@ -267,8 +270,8 @@ var getNavigationMetrics = function getNavigationMetrics(type) {
267
270
  return {
268
271
  'metrics:navigation': metrics
269
272
  };
270
- };
271
- var getPPSMetrics = function getPPSMetrics(interaction) {
273
+ });
274
+ var getPPSMetrics = withProfiling(function getPPSMetrics(interaction) {
272
275
  var _interaction$apdex;
273
276
  var start = interaction.start,
274
277
  end = interaction.end;
@@ -294,14 +297,14 @@ var getPPSMetrics = function getPPSMetrics(interaction) {
294
297
  });
295
298
  }
296
299
  return {};
297
- };
298
- function getSSRProperties(type) {
300
+ });
301
+ var getSSRProperties = withProfiling(function getSSRProperties(type) {
299
302
  return {
300
303
  'ssr:success': getSSRSuccess(type),
301
304
  'ssr:featureFlags': getSSRFeatureFlags(type)
302
305
  };
303
- }
304
- var getAssetsMetrics = function getAssetsMetrics(interaction, SSRDoneTime) {
306
+ });
307
+ var getAssetsMetrics = withProfiling(function getAssetsMetrics(interaction, SSRDoneTime) {
305
308
  try {
306
309
  var config = getConfig();
307
310
  var type = interaction.type;
@@ -325,8 +328,8 @@ var getAssetsMetrics = function getAssetsMetrics(interaction, SSRDoneTime) {
325
328
  // Skip CHR in case of error
326
329
  return {};
327
330
  }
328
- };
329
- var getBrowserMetadata = function getBrowserMetadata() {
331
+ });
332
+ var getBrowserMetadata = withProfiling(function getBrowserMetadata() {
330
333
  var data = {};
331
334
  var now = new Date();
332
335
  data['event:localHour'] = now.getHours(); // returns the hours for this date according to local time
@@ -352,8 +355,8 @@ var getBrowserMetadata = function getBrowserMetadata() {
352
355
  data['event:network:downlink'] = navigator.connection.downlink;
353
356
  }
354
357
  return data;
355
- };
356
- var getTracingContextData = function getTracingContextData(interaction) {
358
+ });
359
+ var getTracingContextData = withProfiling(function getTracingContextData(interaction) {
357
360
  var trace = interaction.trace,
358
361
  start = interaction.start;
359
362
  var tracingContextData = {};
@@ -368,14 +371,14 @@ var getTracingContextData = function getTracingContextData(interaction) {
368
371
  };
369
372
  }
370
373
  return tracingContextData;
371
- };
372
- function optimizeCustomData(interaction) {
374
+ });
375
+ var optimizeCustomData = withProfiling(function optimizeCustomData(interaction) {
373
376
  var customData = interaction.customData,
374
377
  legacyMetrics = interaction.legacyMetrics;
375
- var customDataMap = customData.reduce(function (result, _ref3) {
378
+ var customDataMap = customData.reduce(function (result, _ref2) {
376
379
  var _result$get$data, _result$get;
377
- var labelStack = _ref3.labelStack,
378
- data = _ref3.data;
380
+ var labelStack = _ref2.labelStack,
381
+ data = _ref2.data;
379
382
  var label = stringifyLabelStackFully(labelStack);
380
383
  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 : {};
381
384
  result.set(label, {
@@ -405,14 +408,14 @@ function optimizeCustomData(interaction) {
405
408
  return [].concat(_toConsumableArray(customDataMap.values()), _toConsumableArray(legacyMetricsFiltered.values()));
406
409
  }
407
410
  return _toConsumableArray(customDataMap.values());
408
- }
409
- function optimizeReactProfilerTimings(reactProfilerTimings, interactionStart, reactUFOVersion) {
410
- var reactProfilerTimingsMap = reactProfilerTimings.reduce(function (result, _ref4) {
411
- var labelStack = _ref4.labelStack,
412
- startTime = _ref4.startTime,
413
- commitTime = _ref4.commitTime,
414
- actualDuration = _ref4.actualDuration,
415
- type = _ref4.type;
411
+ });
412
+ var optimizeReactProfilerTimings = withProfiling(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;
416
419
  if (labelStack && startTime >= interactionStart) {
417
420
  var label = stringifyLabelStackFully(labelStack);
418
421
  var start = Math.round(startTime);
@@ -443,8 +446,8 @@ function optimizeReactProfilerTimings(reactProfilerTimings, interactionStart, re
443
446
  return result;
444
447
  }, new Map());
445
448
  return _toConsumableArray(reactProfilerTimingsMap.values());
446
- }
447
- function optimizeRedirects(redirects, interactionStart) {
449
+ });
450
+ var optimizeRedirects = withProfiling(function optimizeRedirects(redirects, interactionStart) {
448
451
  var lastRedirectTime = interactionStart;
449
452
  var updatedRedirects = redirects.sort(function (a, b) {
450
453
  return a.time - b.time;
@@ -464,8 +467,8 @@ function optimizeRedirects(redirects, interactionStart) {
464
467
  return result;
465
468
  }, []);
466
469
  return updatedRedirects;
467
- }
468
- function optimizeHoldInfo(holdInfo, interactionStart, reactUFOVersion) {
470
+ });
471
+ var optimizeHoldInfo = withProfiling(function optimizeHoldInfo(holdInfo, interactionStart, reactUFOVersion) {
469
472
  var holdInfoMap = holdInfo.reduce(function (result, hold) {
470
473
  var labelStack = hold.labelStack,
471
474
  name = hold.name,
@@ -496,8 +499,8 @@ function optimizeHoldInfo(holdInfo, interactionStart, reactUFOVersion) {
496
499
  return result;
497
500
  }, new Map());
498
501
  return _toConsumableArray(holdInfoMap.values());
499
- }
500
- function optimizeSpans(spans, interactionStart, reactUFOVersion) {
502
+ });
503
+ var optimizeSpans = withProfiling(function optimizeSpans(spans, interactionStart, reactUFOVersion) {
501
504
  var updatedSpans = spans.reduce(function (result, span) {
502
505
  var labelStack = span.labelStack,
503
506
  type = span.type,
@@ -517,8 +520,8 @@ function optimizeSpans(spans, interactionStart, reactUFOVersion) {
517
520
  return result;
518
521
  }, []);
519
522
  return updatedSpans;
520
- }
521
- function optimizeRequestInfo(requestInfo, interactionStart, reactUFOVersion) {
523
+ });
524
+ var optimizeRequestInfo = withProfiling(function optimizeRequestInfo(requestInfo, interactionStart, reactUFOVersion) {
522
525
  var updatedRequestInfo = requestInfo.reduce(function (result, reqInfo) {
523
526
  var labelStack = reqInfo.labelStack,
524
527
  name = reqInfo.name,
@@ -540,8 +543,8 @@ function optimizeRequestInfo(requestInfo, interactionStart, reactUFOVersion) {
540
543
  return result;
541
544
  }, []);
542
545
  return updatedRequestInfo;
543
- }
544
- function optimizeCustomTimings(customTimings, interactionStart) {
546
+ });
547
+ var optimizeCustomTimings = withProfiling(function optimizeCustomTimings(customTimings, interactionStart) {
545
548
  return customTimings.reduce(function (result, item) {
546
549
  Object.keys(item.data).forEach(function (key) {
547
550
  if (item.data[key].startTime >= interactionStart) {
@@ -556,31 +559,31 @@ function optimizeCustomTimings(customTimings, interactionStart) {
556
559
  });
557
560
  return result;
558
561
  }, []);
559
- }
560
- function optimizeMarks(marks, reactUFOVersion) {
561
- return marks.map(function (_ref5) {
562
- var labelStack = _ref5.labelStack,
563
- time = _ref5.time,
564
- others = _objectWithoutProperties(_ref5, _excluded);
562
+ });
563
+ var optimizeMarks = withProfiling(function optimizeMarks(marks, reactUFOVersion) {
564
+ return marks.map(function (_ref4) {
565
+ var labelStack = _ref4.labelStack,
566
+ time = _ref4.time,
567
+ others = _objectWithoutProperties(_ref4, _excluded);
565
568
  return _objectSpread(_objectSpread({}, others), {}, {
566
569
  labelStack: labelStack && optimizeLabelStack(labelStack, reactUFOVersion),
567
570
  time: Math.round(time)
568
571
  });
569
572
  });
570
- }
571
- function optimizeApdex(apdex, reactUFOVersion) {
572
- return apdex.map(function (_ref6) {
573
- var stopTime = _ref6.stopTime,
574
- labelStack = _ref6.labelStack,
575
- others = _objectWithoutProperties(_ref6, _excluded2);
573
+ });
574
+ var optimizeApdex = withProfiling(function optimizeApdex(apdex, reactUFOVersion) {
575
+ return apdex.map(function (_ref5) {
576
+ var stopTime = _ref5.stopTime,
577
+ labelStack = _ref5.labelStack,
578
+ others = _objectWithoutProperties(_ref5, _excluded2);
576
579
  return _objectSpread(_objectSpread({}, others), {}, {
577
580
  stopTime: Math.round(stopTime)
578
581
  }, labelStack ? {
579
582
  labelStack: optimizeLabelStack(labelStack, reactUFOVersion)
580
583
  } : {});
581
584
  });
582
- }
583
- function objectToArray() {
585
+ });
586
+ var objectToArray = withProfiling(function objectToArray() {
584
587
  var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
585
588
  return Object.keys(obj).reduce(function (result, key) {
586
589
  result.push({
@@ -589,8 +592,8 @@ function objectToArray() {
589
592
  });
590
593
  return result;
591
594
  }, []);
592
- }
593
- function getBM3SubmetricsTimings(submetrics) {
595
+ });
596
+ var getBM3SubmetricsTimings = withProfiling(function getBM3SubmetricsTimings(submetrics) {
594
597
  if (!submetrics) {
595
598
  return null;
596
599
  }
@@ -608,8 +611,8 @@ function getBM3SubmetricsTimings(submetrics) {
608
611
  }), childSubmetrics ? childSubmetrics : {});
609
612
  });
610
613
  return submetricsTimings;
611
- }
612
- function getBm3TrackerTimings(interaction) {
614
+ });
615
+ var getBm3TrackerTimings = withProfiling(function getBm3TrackerTimings(interaction) {
613
616
  var interactionLegacyMetrics = interaction.legacyMetrics;
614
617
  if (!interactionLegacyMetrics) {
615
618
  return {};
@@ -634,11 +637,11 @@ function getBm3TrackerTimings(interaction) {
634
637
  return {
635
638
  legacyMetrics: legacyMetrics
636
639
  };
637
- }
638
- function getPayloadSize(payload) {
640
+ });
641
+ var getPayloadSize = withProfiling(function getPayloadSize(payload) {
639
642
  return Math.round(new TextEncoder().encode(JSON.stringify(payload)).length / 1024);
640
- }
641
- function getStylesheetMetrics() {
643
+ });
644
+ var getStylesheetMetrics = withProfiling(function getStylesheetMetrics() {
642
645
  // eslint-disable-next-line @atlaskit/platform/ensure-feature-flag-prefix
643
646
  if (!fg('ufo_capture_stylesheet_metrics')) {
644
647
  return {};
@@ -677,33 +680,34 @@ function getStylesheetMetrics() {
677
680
  } catch (e) {
678
681
  return {};
679
682
  }
680
- }
683
+ });
681
684
  var regularTTAI;
682
685
  var expTTAI;
683
- function getErrorCounts(interaction) {
686
+ var getErrorCounts = withProfiling(function getErrorCounts(interaction) {
684
687
  return {
685
688
  'ufo:errors:globalCount': getGlobalErrorCount(),
686
689
  'ufo:errors:count': interaction.errors.length
687
690
  };
688
- }
691
+ });
689
692
  function createInteractionMetricsPayload(_x3, _x4, _x5) {
690
693
  return _createInteractionMetricsPayload.apply(this, arguments);
691
694
  }
692
695
  function _createInteractionMetricsPayload() {
693
- _createInteractionMetricsPayload = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(interaction, interactionId, experimental) {
696
+ _createInteractionMetricsPayload = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(interaction, interactionId, experimental) {
694
697
  var _window$location, _config$additionalPay;
695
- 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, getInitialPageLoadSSRMetrics, pageLoadInteractionMetrics, getDetailedInteractionMetrics, getPageLoadDetailedInteractionMetrics, newUFOName, resourceTimings, _yield$Promise$all, _yield$Promise$all2, vcMetrics, experimentalMetrics, paintMetrics, payload;
696
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
697
- while (1) switch (_context2.prev = _context2.next) {
698
+ var operationTimer, interactionPayloadStart, config, end, start, ufoName, knownSegments, rate, type, abortReason, routeName, featureFlags, previousInteractionName, isPreviousInteractionAborted, abortedByInteractionName, pageVisibilityAtTTI, pageVisibilityAtTTAI, segments, segmentTree, isDetailedPayload, isPageLoad, calculatePageVisibilityFromTheStartOfPageLoad, moreAccuratePageVisibilityAtTTI, moreAccuratePageVisibilityAtTTAI, labelStack, getInitialPageLoadSSRMetrics, pageLoadInteractionMetrics, getDetailedInteractionMetrics, getPageLoadDetailedInteractionMetrics, newUFOName, resourceTimings, _yield$Promise$all, _yield$Promise$all2, vcMetrics, experimentalMetrics, paintMetrics, payload;
699
+ return _regeneratorRuntime.wrap(function _callee3$(_context3) {
700
+ while (1) switch (_context3.prev = _context3.next) {
698
701
  case 0:
702
+ operationTimer = markProfilingStart('createInteractionMetricsPayload');
699
703
  interactionPayloadStart = performance.now();
700
704
  config = getConfig();
701
705
  if (config) {
702
- _context2.next = 4;
706
+ _context3.next = 5;
703
707
  break;
704
708
  }
705
709
  throw Error('UFO Configuration not provided');
706
- case 4:
710
+ case 5:
707
711
  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;
708
712
  pageVisibilityAtTTI = getPageVisibilityUpToTTI(interaction);
709
713
  pageVisibilityAtTTAI = getPageVisibilityUpToTTAI(interaction);
@@ -742,9 +746,9 @@ function _createInteractionMetricsPayload() {
742
746
  var spans = [].concat(_toConsumableArray(interaction.spans), _toConsumableArray(atlaskitInteractionSpans));
743
747
  atlaskitInteractionSpans.length = 0;
744
748
  return {
745
- errors: interaction.errors.map(function (_ref7) {
746
- var labelStack = _ref7.labelStack,
747
- others = _objectWithoutProperties(_ref7, _excluded3);
749
+ errors: interaction.errors.map(function (_ref6) {
750
+ var labelStack = _ref6.labelStack,
751
+ others = _objectWithoutProperties(_ref6, _excluded3);
748
752
  return _objectSpread(_objectSpread({}, others), {}, {
749
753
  labelStack: labelStack && optimizeLabelStack(labelStack, getReactUFOVersion(interaction.type))
750
754
  });
@@ -777,10 +781,10 @@ function _createInteractionMetricsPayload() {
777
781
  }
778
782
  newUFOName = sanitizeUfoName(ufoName);
779
783
  resourceTimings = getResourceTimings(start, end);
780
- _context2.next = 24;
784
+ _context3.next = 25;
781
785
  return Promise.all([getVCMetrics(interaction), experimental ? getExperimentalVCMetrics(interaction) : Promise.resolve(undefined), getPaintMetrics(type, end)]);
782
- case 24:
783
- _yield$Promise$all = _context2.sent;
786
+ case 25:
787
+ _yield$Promise$all = _context3.sent;
784
788
  _yield$Promise$all2 = _slicedToArray(_yield$Promise$all, 3);
785
789
  vcMetrics = _yield$Promise$all2[0];
786
790
  experimentalMetrics = _yield$Promise$all2[1];
@@ -827,9 +831,9 @@ function _createInteractionMetricsPayload() {
827
831
  apdex: optimizeApdex(interaction.apdex, getReactUFOVersion(interaction.type)),
828
832
  end: Math.round(end),
829
833
  start: Math.round(start),
830
- segments: getReactUFOVersion(interaction.type) === '2.0.0' ? segmentTree : segments.map(function (_ref8) {
831
- var labelStack = _ref8.labelStack,
832
- others = _objectWithoutProperties(_ref8, _excluded4);
834
+ segments: getReactUFOVersion(interaction.type) === '2.0.0' ? segmentTree : segments.map(function (_ref7) {
835
+ var labelStack = _ref7.labelStack,
836
+ others = _objectWithoutProperties(_ref7, _excluded4);
833
837
  return _objectSpread(_objectSpread({}, others), {}, {
834
838
  labelStack: optimizeLabelStack(labelStack, getReactUFOVersion(interaction.type))
835
839
  });
@@ -842,20 +846,26 @@ function _createInteractionMetricsPayload() {
842
846
  'metric:experimental:ttai': expTTAI
843
847
  }),
844
848
  'ufo:payloadTime': roundEpsilon(performance.now() - interactionPayloadStart)
845
- })
849
+ }, fg('platform_ufo_self_timings') ? {
850
+ 'ufo:self:timings:total': getProfilerTotalRuntime(),
851
+ 'ufo:self:timings:async': getProfilerAsyncRuntime(),
852
+ 'ufo:self:timings:vc': getProfilerRuntimeByTag('vc')
853
+ } : {})
846
854
  }
847
855
  };
848
856
  if (experimental) {
849
857
  regularTTAI = undefined;
850
858
  expTTAI = undefined;
851
859
  }
860
+ markProfilingEnd(operationTimer);
861
+ resetProfilerMeasurements();
852
862
  payload.attributes.properties['event:sizeInKb'] = getPayloadSize(payload.attributes.properties);
853
- return _context2.abrupt("return", payload);
854
- case 33:
863
+ return _context3.abrupt("return", payload);
864
+ case 36:
855
865
  case "end":
856
- return _context2.stop();
866
+ return _context3.stop();
857
867
  }
858
- }, _callee2);
868
+ }, _callee3);
859
869
  }));
860
870
  return _createInteractionMetricsPayload.apply(this, arguments);
861
871
  }
@@ -863,40 +873,37 @@ export function createPayloads(_x6, _x7) {
863
873
  return _createPayloads.apply(this, arguments);
864
874
  }
865
875
  function _createPayloads() {
866
- _createPayloads = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(interactionId, interaction) {
876
+ _createPayloads = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(interactionId, interaction) {
867
877
  var ufoNameOverride, modifiedInteraction, interactionMetricsPayload;
868
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
869
- while (1) switch (_context3.prev = _context3.next) {
878
+ return _regeneratorRuntime.wrap(function _callee4$(_context4) {
879
+ while (1) switch (_context4.prev = _context4.next) {
870
880
  case 0:
871
881
  ufoNameOverride = getUfoNameOverride(interaction);
872
882
  modifiedInteraction = _objectSpread(_objectSpread({}, interaction), {}, {
873
883
  ufoName: ufoNameOverride
874
884
  });
875
- _context3.next = 4;
885
+ _context4.next = 4;
876
886
  return createInteractionMetricsPayload(modifiedInteraction, interactionId);
877
887
  case 4:
878
- interactionMetricsPayload = _context3.sent;
879
- return _context3.abrupt("return", [interactionMetricsPayload]);
888
+ interactionMetricsPayload = _context4.sent;
889
+ return _context4.abrupt("return", [interactionMetricsPayload]);
880
890
  case 6:
881
891
  case "end":
882
- return _context3.stop();
892
+ return _context4.stop();
883
893
  }
884
- }, _callee3);
894
+ }, _callee4);
885
895
  }));
886
896
  return _createPayloads.apply(this, arguments);
887
897
  }
888
- export function createExperimentalMetricsPayload(_x8, _x9) {
889
- return _createExperimentalMetricsPayload.apply(this, arguments);
890
- }
891
- function _createExperimentalMetricsPayload() {
892
- _createExperimentalMetricsPayload = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(interactionId, interaction) {
898
+ export var createExperimentalMetricsPayload = withProfiling( /*#__PURE__*/function () {
899
+ var _createExperimentalMetricsPayload = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(interactionId, interaction) {
893
900
  var config, ufoName, rate, pageVisibilityState, result;
894
- return _regeneratorRuntime.wrap(function _callee4$(_context4) {
895
- while (1) switch (_context4.prev = _context4.next) {
901
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
902
+ while (1) switch (_context2.prev = _context2.next) {
896
903
  case 0:
897
904
  config = getConfig();
898
905
  if (config) {
899
- _context4.next = 3;
906
+ _context2.next = 3;
900
907
  break;
901
908
  }
902
909
  throw Error('UFO Configuration not provided');
@@ -904,28 +911,31 @@ function _createExperimentalMetricsPayload() {
904
911
  ufoName = sanitizeUfoName(interaction.ufoName);
905
912
  rate = getExperimentalInteractionRate(ufoName, interaction.type);
906
913
  if (coinflip(rate)) {
907
- _context4.next = 7;
914
+ _context2.next = 7;
908
915
  break;
909
916
  }
910
- return _context4.abrupt("return", null);
917
+ return _context2.abrupt("return", null);
911
918
  case 7:
912
919
  pageVisibilityState = getPageVisibilityState(interaction.start, interaction.end);
913
920
  if (!(pageVisibilityState !== 'visible')) {
914
- _context4.next = 10;
921
+ _context2.next = 10;
915
922
  break;
916
923
  }
917
- return _context4.abrupt("return", null);
924
+ return _context2.abrupt("return", null);
918
925
  case 10:
919
- _context4.next = 12;
926
+ _context2.next = 12;
920
927
  return createInteractionMetricsPayload(interaction, interactionId, true);
921
928
  case 12:
922
- result = _context4.sent;
923
- return _context4.abrupt("return", result);
929
+ result = _context2.sent;
930
+ return _context2.abrupt("return", result);
924
931
  case 14:
925
932
  case "end":
926
- return _context4.stop();
933
+ return _context2.stop();
927
934
  }
928
- }, _callee4);
935
+ }, _callee2);
929
936
  }));
930
- return _createExperimentalMetricsPayload.apply(this, arguments);
931
- }
937
+ function createExperimentalMetricsPayload(_x8, _x9) {
938
+ return _createExperimentalMetricsPayload.apply(this, arguments);
939
+ }
940
+ return createExperimentalMetricsPayload;
941
+ }());
@@ -1,3 +1,5 @@
1
+ import { withProfiling } from '../../self-measurements';
2
+
1
3
  /**
2
4
  * Determines the interaction status based on abort reason and BM3 TTI presence.
3
5
  *
@@ -20,7 +22,7 @@
20
22
  * const result = getInteractionStatus(interaction);
21
23
  * // Returns: { originalInteractionStatus: 'SUCCEEDED', overrideStatus: 'SUCCEEDED' }
22
24
  */
23
- export default function getInteractionStatus(interaction) {
25
+ var getInteractionStatus = withProfiling(function getInteractionStatus(interaction) {
24
26
  var originalInteractionStatus = interaction.abortReason ? 'ABORTED' : 'SUCCEEDED';
25
27
  var hasBm3TTI = interaction.apdex.length > 0;
26
28
  var overrideStatus = hasBm3TTI ? 'SUCCEEDED' : originalInteractionStatus;
@@ -28,4 +30,5 @@ export default function getInteractionStatus(interaction) {
28
30
  originalInteractionStatus: originalInteractionStatus,
29
31
  overrideStatus: overrideStatus
30
32
  };
31
- }
33
+ });
34
+ export default getInteractionStatus;
@@ -1,6 +1,8 @@
1
1
  import { getPageVisibilityState } from '../../hidden-timing';
2
- export default function getPageVisibilityUpToTTAI(interaction) {
2
+ import { withProfiling } from '../../self-measurements';
3
+ var getPageVisibilityUpToTTAI = withProfiling(function getPageVisibilityUpToTTAI(interaction) {
3
4
  var start = interaction.start,
4
5
  end = interaction.end;
5
6
  return getPageVisibilityState(start, end);
6
- }
7
+ });
8
+ export default getPageVisibilityUpToTTAI;
@@ -1,5 +1,7 @@
1
+ import { withProfiling } from '../../self-measurements';
1
2
  import * as ssr from '../../ssr';
2
- export default function getSSRDoneTimeValue(config) {
3
+ var getSSRDoneTimeValue = withProfiling(function getSSRDoneTimeValue(config) {
3
4
  var _config$ssr, _config$ssr2;
4
5
  return config !== null && config !== void 0 && (_config$ssr = config.ssr) !== null && _config$ssr !== void 0 && _config$ssr.getSSRDoneTime ? config === null || config === void 0 || (_config$ssr2 = config.ssr) === null || _config$ssr2 === void 0 ? void 0 : _config$ssr2.getSSRDoneTime() : ssr.getSSRDoneTime();
5
- }
6
+ });
7
+ export default getSSRDoneTimeValue;