@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
@@ -4,7 +4,8 @@ import { getDoNotAbortActivePressInteraction, getInteractionRate } from '../conf
4
4
  import { DefaultInteractionID } from '../interaction-id-context';
5
5
  import { abortAll, addNewInteraction, getActiveInteraction } from '../interaction-metrics';
6
6
  import UFORouteName from '../route-name-context';
7
- function mapToInteractionType(eventType) {
7
+ import { withProfiling } from '../self-measurements';
8
+ var mapToInteractionType = withProfiling(function mapToInteractionType(eventType) {
8
9
  if (eventType === 'click' || eventType === 'dblclick' || eventType === 'mousedown') {
9
10
  return 'press';
10
11
  }
@@ -12,8 +13,8 @@ function mapToInteractionType(eventType) {
12
13
  return 'hover';
13
14
  }
14
15
  return undefined;
15
- }
16
- export default function traceUFOInteraction(name, event) {
16
+ });
17
+ var traceUFOInteraction = withProfiling(function traceUFOInteraction(name, event) {
17
18
  if (!event || !event.isTrusted) {
18
19
  return;
19
20
  }
@@ -38,4 +39,5 @@ export default function traceUFOInteraction(name, event) {
38
39
  DefaultInteractionID.current = newId;
39
40
  addNewInteraction(newId, name, 'press', startTimestamp, rate, [], UFORouteName.current);
40
41
  }
41
- }
42
+ });
43
+ export default traceUFOInteraction;
@@ -5,8 +5,9 @@ import { getActiveTrace } from '../experience-trace-id-context';
5
5
  import { DefaultInteractionID } from '../interaction-id-context';
6
6
  import { abort, addHoldByID, addNewInteraction, getActiveInteraction, removeHoldByID, updatePageLoadInteractionName } from '../interaction-metrics';
7
7
  import UFORouteName from '../route-name-context';
8
+ import { withProfiling } from '../self-measurements';
8
9
  var AWAITING_PAGELOAD_NAME = 'awaiting_pageload_name';
9
- export default function traceUFOPageLoad(ufoName) {
10
+ var traceUFOPageLoad = withProfiling(function traceUFOPageLoad(ufoName) {
10
11
  var routeName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ufoName;
11
12
  var activeInteraction = getActiveInteraction();
12
13
  if (activeInteraction && !ufoName) {
@@ -30,8 +31,9 @@ export default function traceUFOPageLoad(ufoName) {
30
31
  updatePageLoadInteractionName(ufoName, routeName);
31
32
  removeHoldByID(activeInteraction.id, AWAITING_PAGELOAD_NAME);
32
33
  }
33
- }
34
- export function updatePageloadName(ufoName) {
34
+ });
35
+ export default traceUFOPageLoad;
36
+ export var updatePageloadName = withProfiling(function updatePageloadName(ufoName) {
35
37
  var routeName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ufoName;
36
38
  var interaction = getActiveInteraction();
37
39
  if (!interaction || interaction.type !== 'page_load' && interaction.type !== 'transition') {
@@ -47,4 +49,4 @@ export function updatePageloadName(ufoName) {
47
49
  }
48
50
  }
49
51
  removeHoldByID(interaction.id, AWAITING_PAGELOAD_NAME);
50
- }
52
+ });
@@ -5,7 +5,8 @@ import { getActiveTrace, setInteractionActiveTrace } from '../experience-trace-i
5
5
  import { DefaultInteractionID } from '../interaction-id-context';
6
6
  import { abortAll, addNewInteraction, getActiveInteraction } from '../interaction-metrics';
7
7
  import UFORouteName from '../route-name-context';
8
- export default function traceUFOPress(name, timestamp) {
8
+ import { withProfiling } from '../self-measurements';
9
+ var traceUFOPress = withProfiling(function traceUFOPress(name, timestamp) {
9
10
  var rate = getInteractionRate(name, 'press');
10
11
  var pressInteractionsList = getDoNotAbortActivePressInteraction();
11
12
  if (pressInteractionsList !== null && pressInteractionsList !== void 0 && pressInteractionsList.includes(name)) {
@@ -24,4 +25,5 @@ export default function traceUFOPress(name, timestamp) {
24
25
  DefaultInteractionID.current = newId;
25
26
  addNewInteraction(newId, name, 'press', startTimestamp, rate, [], UFORouteName.current, getActiveTrace());
26
27
  }
27
- }
28
+ });
29
+ export default traceUFOPress;
@@ -1,10 +1,12 @@
1
1
  import { DefaultInteractionID } from '../interaction-id-context';
2
2
  import { addRedirect } from '../interaction-metrics';
3
3
  import UFORouteName from '../route-name-context';
4
- export default function traceUFORedirect(fromUfoName, nextUfoName, nextRouteName, time) {
4
+ import { withProfiling } from '../self-measurements';
5
+ var traceUFORedirect = withProfiling(function traceUFORedirect(fromUfoName, nextUfoName, nextRouteName, time) {
5
6
  UFORouteName.current = nextUfoName;
6
7
  var interactionId = DefaultInteractionID.current;
7
8
  if (interactionId) {
8
9
  addRedirect(interactionId, fromUfoName, nextUfoName, nextRouteName, time);
9
10
  }
10
- }
11
+ });
12
+ export default traceUFORedirect;
@@ -6,8 +6,9 @@ import { getActiveTrace } from '../experience-trace-id-context';
6
6
  import UFOInteractionIDContext, { DefaultInteractionID } from '../interaction-id-context';
7
7
  import { abortAll, addNewInteraction, addOnCancelCallback, getActiveInteraction, tryComplete } from '../interaction-metrics';
8
8
  import UFORouteName from '../route-name-context';
9
+ import { withProfiling } from '../self-measurements';
9
10
  import { setInteractionActiveTrace } from './utils/set-interaction-active-trace';
10
- export default function traceUFOTransition(ufoName) {
11
+ var traceUFOTransition = withProfiling(function traceUFOTransition(ufoName) {
11
12
  var routeName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ufoName;
12
13
  var pressInteractionsList = getDoNotAbortActivePressInteractionOnTransition();
13
14
  var interaction = getActiveInteraction();
@@ -27,7 +28,7 @@ export default function traceUFOTransition(ufoName) {
27
28
  addNewInteraction(newId, ufoName, 'transition', performance.now(), rate, null, routeName, getActiveTrace());
28
29
  }
29
30
  }
30
- }
31
+ });
31
32
  export function useUFOTransitionCompleter() {
32
33
  var interactionId = useContext(UFOInteractionIDContext);
33
34
  var capturedInteractionId = interactionId.current;
@@ -46,4 +47,5 @@ export function useUFOTransitionCompleter() {
46
47
  });
47
48
  }
48
49
  }, [capturedInteractionId, interactionId]);
49
- }
50
+ }
51
+ export default traceUFOTransition;
@@ -1,5 +1,6 @@
1
- export var generateSpanId = function generateSpanId() {
1
+ import { withProfiling } from '../../../self-measurements';
2
+ export var generateSpanId = withProfiling(function generateSpanId() {
2
3
  return Array.from(new Array(16), function () {
3
4
  return Math.floor(Math.random() * 16).toString(16);
4
5
  }).join('');
5
- };
6
+ });
@@ -1,5 +1,6 @@
1
1
  import { setActiveTrace } from '../../../experience-trace-id-context';
2
+ import { withProfiling } from '../../../self-measurements';
2
3
  import { generateSpanId } from '../generate-span-id';
3
- export var setInteractionActiveTrace = function setInteractionActiveTrace(newId) {
4
+ export var setInteractionActiveTrace = withProfiling(function setInteractionActiveTrace(newId) {
4
5
  setActiveTrace(newId.replace(/-/g, ''), generateSpanId(), 'transition');
5
- };
6
+ });
@@ -9,6 +9,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
9
9
  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; }
10
10
  import { fg } from '@atlaskit/platform-feature-flags';
11
11
  import { getConfig } from '../config';
12
+ import { markProfilingEnd, markProfilingStart, withProfiling } from '../self-measurements';
12
13
  import { VCObserverNOOP } from './no-op-vc-observer';
13
14
  import { VCObserver } from './vc-observer';
14
15
  import VCObserverNew from './vc-observer-new';
@@ -17,6 +18,7 @@ var VCObserverWrapper = /*#__PURE__*/function () {
17
18
  var _getConfig;
18
19
  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
19
20
  _classCallCheck(this, VCObserverWrapper);
21
+ var operationTimer = markProfilingStart('VCObserverWrapper constructor');
20
22
  this.newVCObserver = null;
21
23
  var isNewVCObserverEnabled = fg('platform_ufo_vc_observer_new') || ((_getConfig = getConfig()) === null || _getConfig === void 0 || (_getConfig = _getConfig.vc) === null || _getConfig === void 0 ? void 0 : _getConfig.enableVCObserverNew);
22
24
  if (isNewVCObserverEnabled) {
@@ -25,6 +27,16 @@ var VCObserverWrapper = /*#__PURE__*/function () {
25
27
  });
26
28
  }
27
29
  this.oldVCObserver = new VCObserver(opts);
30
+ this.start = withProfiling(this.start.bind(this), ['vc']);
31
+ this.stop = withProfiling(this.stop.bind(this), ['vc']);
32
+ this.getVCRawData = withProfiling(this.getVCRawData.bind(this), ['vc']);
33
+ this.getVCResult = withProfiling(this.getVCResult.bind(this), ['vc']);
34
+ this.setSSRElement = withProfiling(this.setSSRElement.bind(this), ['vc']);
35
+ this.setReactRootRenderStart = withProfiling(this.setReactRootRenderStart.bind(this), ['vc']);
36
+ this.setReactRootRenderStop = withProfiling(this.setReactRootRenderStop.bind(this), ['vc']);
37
+ markProfilingEnd(operationTimer, {
38
+ tags: ['vc']
39
+ });
28
40
  }
29
41
  return _createClass(VCObserverWrapper, [{
30
42
  key: "start",
@@ -111,7 +123,7 @@ var VCObserverWrapper = /*#__PURE__*/function () {
111
123
  var isServer = Boolean(globalThis === null || globalThis === void 0 ? void 0 : globalThis.__SERVER__);
112
124
  // Other products set this other variable to indicate it is running in SSR
113
125
  var isReactSSR = typeof process !== 'undefined' && Boolean(((_process = process) === null || _process === void 0 || (_process = _process.env) === null || _process === void 0 ? void 0 : _process.REACT_SSR) || false);
114
- export function isEnvironmentSupported() {
126
+ export var isEnvironmentSupported = withProfiling(function isEnvironmentSupported() {
115
127
  // SSR environment aren't supported
116
128
  if (isReactSSR || isServer) {
117
129
  return false;
@@ -126,12 +138,12 @@ export function isEnvironmentSupported() {
126
138
  return false;
127
139
  }
128
140
  return true;
129
- }
130
- export var getVCObserver = function getVCObserver() {
141
+ }, ['vc']);
142
+ export var getVCObserver = withProfiling(function getVCObserver() {
131
143
  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
132
144
  if (!globalThis.__vcObserver) {
133
145
  var shouldMockVCObserver = !isEnvironmentSupported();
134
146
  globalThis.__vcObserver = shouldMockVCObserver ? new VCObserverNOOP() : new VCObserverWrapper(opts);
135
147
  }
136
148
  return globalThis.__vcObserver;
137
- };
149
+ }, ['vc']);
@@ -1,7 +1,8 @@
1
1
  import { bind } from 'bind-event-listener';
2
2
  import { AbortEvent } from '../../common/vc/types';
3
+ import { withProfiling } from '../../self-measurements';
3
4
  import { getViewportHeight, getViewportWidth } from './getViewport';
4
- export var attachAbortListeners = function attachAbortListeners(window, initialViewPort, callback) {
5
+ export var attachAbortListeners = withProfiling(function attachAbortListeners(window, initialViewPort, callback) {
5
6
  var unbindWheel = bind(window, {
6
7
  type: AbortEvent.wheel,
7
8
  listener: function listener(e) {
@@ -31,4 +32,4 @@ export var attachAbortListeners = function attachAbortListeners(window, initialV
31
32
  }
32
33
  });
33
34
  return [unbindWheel, unbindKeydown, unbindResize];
34
- };
35
+ }, ['vc']);
@@ -1,9 +1,34 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import { fg } from '@atlaskit/platform-feature-flags';
3
3
  import { getPageVisibilityState } from '../../hidden-timing';
4
+ import { withProfiling } from '../../self-measurements';
4
5
  import { getRevisions } from './revisions/revisions';
5
6
  var VCParts = ['25', '50', '75', '80', '85', '90', '95', '98', '99'];
6
- export function getVCRevisionsData(_ref) {
7
+ var READONLY_EMPTY_ARRAY = Array.from({
8
+ length: 0
9
+ });
10
+
11
+ // Helper function to create vcDetails object to avoid code duplication
12
+ var createVCDetails = withProfiling(function createVCDetails(calculatedVC, shouldHaveVCmetric) {
13
+ if (!shouldHaveVCmetric || !calculatedVC || !calculatedVC.VC || !calculatedVC.VCBox) {
14
+ return {};
15
+ }
16
+ var details = {};
17
+ var VC = calculatedVC.VC,
18
+ VCBox = calculatedVC.VCBox; // Destructure once to avoid repeated property access
19
+
20
+ for (var _i = 0, _VCParts = VCParts; _i < _VCParts.length; _i++) {
21
+ var key = _VCParts[_i];
22
+ details[key] = {
23
+ t: VC[key],
24
+ e: VCBox[key] || READONLY_EMPTY_ARRAY
25
+ };
26
+ }
27
+ return details;
28
+ }, ['vc']);
29
+
30
+ // Optimized implementation (current one)
31
+ export var getVCRevisionsData = withProfiling(function getVCRevisionsData(_ref) {
7
32
  var fullPrefix = _ref.fullPrefix,
8
33
  interaction = _ref.interaction,
9
34
  isVCClean = _ref.isVCClean,
@@ -39,35 +64,29 @@ export function getVCRevisionsData(_ref) {
39
64
  clean: isVCClean
40
65
  }));
41
66
  }
67
+
68
+ // Calculate these conditions once
42
69
  var pageVisibilityUpToTTAI = getPageVisibilityState(interaction.start, interaction.end);
43
70
  var isVisiblePageVisibleUpToTTAI = pageVisibilityUpToTTAI === 'visible';
44
71
  var shouldHaveVCmetric = isVCClean && !isEventAborted && isVisiblePageVisibleUpToTTAI;
45
- var ttvcV1Revision = {
46
- revision: 'fy25.01',
47
- clean: isVCClean,
48
- 'metric:vc90': shouldHaveVCmetric ? calculatedVC.VC['90'] : null,
49
- vcDetails: shouldHaveVCmetric ? Object.fromEntries(VCParts.map(function (key) {
50
- var _calculatedVC$VCBox$k;
51
- return [key, {
52
- t: calculatedVC.VC[key],
53
- e: (_calculatedVC$VCBox$k = calculatedVC.VCBox[key]) !== null && _calculatedVC$VCBox$k !== void 0 ? _calculatedVC$VCBox$k : []
54
- }];
55
- })) : {}
56
- };
72
+
73
+ // Create the V2 revision object which is always needed
57
74
  var ttvcV2Revision = {
58
75
  revision: 'fy25.02',
59
76
  clean: isVCClean,
60
77
  'metric:vc90': shouldHaveVCmetric ? calculatedVCNext.VC['90'] : null,
61
- vcDetails: shouldHaveVCmetric ? Object.fromEntries(VCParts.map(function (key) {
62
- var _calculatedVCNext$VCB;
63
- return [key, {
64
- t: calculatedVCNext.VC[key],
65
- e: (_calculatedVCNext$VCB = calculatedVCNext.VCBox[key]) !== null && _calculatedVCNext$VCB !== void 0 ? _calculatedVCNext$VCB : []
66
- }];
67
- })) : {}
78
+ vcDetails: createVCDetails(calculatedVCNext, shouldHaveVCmetric)
68
79
  };
69
80
  if (fg('platform_ufo_disable_ttvc_v1')) {
70
81
  return _defineProperty({}, "".concat(fullPrefix, "vc:rev"), [ttvcV2Revision]);
71
82
  }
83
+
84
+ // Only create ttvcV1Revision when we're actually going to use it
85
+ var ttvcV1Revision = {
86
+ revision: 'fy25.01',
87
+ clean: isVCClean,
88
+ 'metric:vc90': shouldHaveVCmetric ? calculatedVC.VC['90'] : null,
89
+ vcDetails: createVCDetails(calculatedVC, shouldHaveVCmetric)
90
+ };
72
91
  return _defineProperty({}, "".concat(fullPrefix, "vc:rev"), [ttvcV1Revision, ttvcV2Revision]);
73
- }
92
+ }, ['vc']);
@@ -1,4 +1,5 @@
1
- export function getViewportWidth() {
1
+ import { withProfiling } from '../../self-measurements';
2
+ export var getViewportWidth = withProfiling(function getViewportWidth() {
2
3
  var document = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.document;
3
4
  var documentWidth;
4
5
  try {
@@ -7,8 +8,8 @@ export function getViewportWidth() {
7
8
  documentWidth = 0;
8
9
  }
9
10
  return Math.max(documentWidth, window.innerWidth || 0);
10
- }
11
- export function getViewportHeight() {
11
+ }, ['vc']);
12
+ export var getViewportHeight = withProfiling(function getViewportHeight() {
12
13
  var document = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.document;
13
14
  var documentHeight;
14
15
  try {
@@ -17,4 +18,4 @@ export function getViewportHeight() {
17
18
  documentHeight = 0;
18
19
  }
19
20
  return Math.max(documentHeight, window.innerHeight || 0);
20
- }
21
+ }, ['vc']);
@@ -4,6 +4,7 @@ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
4
4
  import _createClass from "@babel/runtime/helpers/createClass";
5
5
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
6
6
  import { getPageVisibilityState } from '../../../hidden-timing';
7
+ import { markProfilingEnd, markProfilingStart, withProfiling } from '../../../self-measurements';
7
8
  var UNUSED_SECTOR = 0;
8
9
  export var MultiRevisionHeatmap = /*#__PURE__*/function () {
9
10
  function MultiRevisionHeatmap(_ref) {
@@ -42,6 +43,7 @@ export var MultiRevisionHeatmap = /*#__PURE__*/function () {
42
43
  t = mappedValues.t;
43
44
  return (r - l) * (b - t) / (_this.arraySize.w * _this.arraySize.h);
44
45
  });
46
+ var operationTimer = markProfilingStart('MultiRevisionHeatmap constructor');
45
47
  this.viewport = viewport;
46
48
  this.revisions = revisions;
47
49
  if (arraySize) {
@@ -57,6 +59,16 @@ export var MultiRevisionHeatmap = /*#__PURE__*/function () {
57
59
  _this.componentsLogs[i] = {};
58
60
  _this.vcRatios[i] = {};
59
61
  });
62
+ this.handleUpdate = withProfiling(this.handleUpdate.bind(this), ['vc']);
63
+ this.getData = withProfiling(this.getData.bind(this), ['vc']);
64
+ this.getPayloadShapedData = withProfiling(this.getPayloadShapedData.bind(this), ['vc']);
65
+ this.processData = withProfiling(this.processData.bind(this), ['vc']);
66
+ this.mapPixelsToHeatmap = withProfiling(this.mapPixelsToHeatmap.bind(this), ['vc']);
67
+ this.getElementRatio = withProfiling(this.getElementRatio.bind(this), ['vc']);
68
+ this.applyChangesToHeatMap = withProfiling(this.applyChangesToHeatMap.bind(this), ['vc']);
69
+ this.getIndex = withProfiling(this.getIndex.bind(this), ['vc']);
70
+ this.getCleanHeatmap = withProfiling(this.getCleanHeatmap.bind(this), ['vc']);
71
+ markProfilingEnd(operationTimer);
60
72
  }
61
73
  return _createClass(MultiRevisionHeatmap, [{
62
74
  key: "handleUpdate",
@@ -69,7 +81,10 @@ export var MultiRevisionHeatmap = /*#__PURE__*/function () {
69
81
  element = _ref3.element,
70
82
  targetName = _ref3.targetName,
71
83
  ignoreReason = _ref3.ignoreReason,
72
- onError = _ref3.onError;
84
+ onError = _ref3.onError,
85
+ attributeName = _ref3.attributeName,
86
+ oldValue = _ref3.oldValue,
87
+ newValue = _ref3.newValue;
73
88
  var mappedValues = this.mapPixelsToHeatmap(intersectionRect.left, intersectionRect.top, intersectionRect.width, intersectionRect.height);
74
89
  var result = this.applyChangesToHeatMap(mappedValues, time, classification);
75
90
  if (result !== true) {
@@ -87,7 +102,10 @@ export var MultiRevisionHeatmap = /*#__PURE__*/function () {
87
102
  __debug__element: _this2.devToolsEnabled ? new WeakRef(element) : null,
88
103
  intersectionRect: intersectionRect,
89
104
  targetName: targetName,
90
- ignoreReason: ignoreReason
105
+ ignoreReason: ignoreReason,
106
+ attributeName: attributeName,
107
+ oldValue: oldValue,
108
+ newValue: newValue
91
109
  });
92
110
  });
93
111
  }
@@ -255,14 +273,12 @@ export var MultiRevisionHeatmap = /*#__PURE__*/function () {
255
273
  value: function getCleanHeatmap() {
256
274
  return new Int32Array(this.arraySize.w * this.arraySize.h);
257
275
  }
258
- }], [{
259
- key: "makeVCReturnObj",
260
- value: function makeVCReturnObj(VCParts) {
261
- var vc = {};
262
- VCParts.forEach(function (v) {
263
- vc[v] = null;
264
- });
265
- return vc;
266
- }
267
276
  }]);
268
- }();
277
+ }();
278
+ _defineProperty(MultiRevisionHeatmap, "makeVCReturnObj", withProfiling(function makeVCReturnObj(VCParts) {
279
+ var vc = {};
280
+ VCParts.forEach(function (v) {
281
+ vc[v] = null;
282
+ });
283
+ return vc;
284
+ }, ['vc']));