@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
@@ -15,6 +15,7 @@ import { experimentalVC, getExperimentalVCMetrics, onExperimentalInteractionComp
15
15
  import { clearActiveTrace } from '../experience-trace-id-context';
16
16
  import { allFeatureFlagsAccessed, currentFeatureFlagsAccessed } from '../feature-flags-accessed';
17
17
  import { getInteractionId } from '../interaction-id-context';
18
+ import { withProfiling } from '../self-measurements';
18
19
  import { getVCObserver } from '../vc';
19
20
  import { interactions } from './common/constants';
20
21
  import PostInteractionLog from './post-interaction-log';
@@ -28,18 +29,18 @@ var segmentCache = new Map();
28
29
  var CLEANUP_TIMEOUT = 60 * 1000;
29
30
  var CLEANUP_TIMEOUT_AFTER_APDEX = 15 * 1000;
30
31
  var segmentObservers = [];
31
- export function getActiveInteraction() {
32
+ export var getActiveInteraction = withProfiling(function getActiveInteraction() {
32
33
  var interactionId = getInteractionId();
33
34
  if (!interactionId.current) {
34
35
  return;
35
36
  }
36
37
  return interactions.get(interactionId.current);
37
- }
38
- function isPerformanceTracingEnabled() {
38
+ });
39
+ var isPerformanceTracingEnabled = withProfiling(function isPerformanceTracingEnabled() {
39
40
  var _getConfig;
40
41
  return ((_getConfig = getConfig()) === null || _getConfig === void 0 ? void 0 : _getConfig.enableAdditionalPerformanceMarks) || window.__REACT_UFO_ENABLE_PERF_TRACING || process.env.NODE_ENV !== 'production';
41
- }
42
- function labelStackToString(labelStack, name) {
42
+ });
43
+ var labelStackToString = withProfiling(function labelStackToString(labelStack, name) {
43
44
  var _stack$map;
44
45
  var stack = _toConsumableArray(labelStack !== null && labelStack !== void 0 ? labelStack : []);
45
46
  if (name) {
@@ -50,14 +51,14 @@ function labelStackToString(labelStack, name) {
50
51
  return (_stack$map = stack.map(function (l) {
51
52
  return l.name;
52
53
  })) === null || _stack$map === void 0 ? void 0 : _stack$map.join('/');
53
- }
54
- function labelStackToIdString(labelStack) {
54
+ });
55
+ var labelStackToIdString = withProfiling(function labelStackToIdString(labelStack) {
55
56
  var _labelStack$map;
56
57
  return labelStack === null || labelStack === void 0 || (_labelStack$map = labelStack.map(function (l) {
57
58
  return 'segmentId' in l ? "".concat(l.name, ":").concat(l.segmentId) : "".concat(l.name);
58
59
  })) === null || _labelStack$map === void 0 ? void 0 : _labelStack$map.join('/');
59
- }
60
- function addSegmentObserver(observer) {
60
+ });
61
+ var addSegmentObserver = withProfiling(function addSegmentObserver(observer) {
61
62
  segmentObservers.push(observer);
62
63
  var _iterator = _createForOfIteratorHelper(segmentCache.values()),
63
64
  _step;
@@ -71,19 +72,19 @@ function addSegmentObserver(observer) {
71
72
  } finally {
72
73
  _iterator.f();
73
74
  }
74
- }
75
- function removeSegmentObserver(observer) {
75
+ });
76
+ var removeSegmentObserver = withProfiling(function removeSegmentObserver(observer) {
76
77
  var index = segmentObservers.findIndex(function (obs) {
77
78
  return obs === observer;
78
79
  });
79
80
  if (index !== -1) {
80
81
  segmentObservers.splice(index, 1);
81
82
  }
82
- }
83
- export function remove(interactionId) {
83
+ });
84
+ export var remove = withProfiling(function remove(interactionId) {
84
85
  interactions.delete(interactionId);
85
- }
86
- export function updatePageLoadInteractionName(ufoName) {
86
+ });
87
+ export var updatePageLoadInteractionName = withProfiling(function updatePageLoadInteractionName(ufoName) {
87
88
  var routeName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ufoName;
88
89
  var interaction = getActiveInteraction();
89
90
  if (!interaction || interaction.type !== 'page_load' && interaction.type !== 'transition') {
@@ -91,16 +92,16 @@ export function updatePageLoadInteractionName(ufoName) {
91
92
  }
92
93
  interaction.ufoName = ufoName;
93
94
  interaction.routeName = routeName;
94
- }
95
- export function addMetadata(interactionId, data) {
95
+ });
96
+ export var addMetadata = withProfiling(function addMetadata(interactionId, data) {
96
97
  var interaction = interactions.get(interactionId);
97
98
  if (interaction != null) {
98
99
  Object.keys(data).forEach(function (key) {
99
100
  interaction.metaData[key] = data[key];
100
101
  });
101
102
  }
102
- }
103
- export function addCustomData(interactionId, labelStack, data) {
103
+ });
104
+ export var addCustomData = withProfiling(function addCustomData(interactionId, labelStack, data) {
104
105
  var interaction = interactions.get(interactionId);
105
106
  if (interaction != null) {
106
107
  Object.keys(data).forEach(function (i) {
@@ -110,8 +111,8 @@ export function addCustomData(interactionId, labelStack, data) {
110
111
  });
111
112
  });
112
113
  }
113
- }
114
- export function addCustomTiming(interactionId, labelStack, data) {
114
+ });
115
+ export var addCustomTiming = withProfiling(function addCustomTiming(interactionId, labelStack, data) {
115
116
  var interaction = interactions.get(interactionId);
116
117
  if (interaction != null) {
117
118
  interaction.customTimings.push({
@@ -137,8 +138,8 @@ export function addCustomTiming(interactionId, labelStack, data) {
137
138
  }
138
139
  }
139
140
  }
140
- }
141
- export function addMark(interactionId, type, name, labelStack) {
141
+ });
142
+ export var addMark = withProfiling(function addMark(interactionId, type, name, labelStack) {
142
143
  var time = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : performance.now();
143
144
  var interaction = interactions.get(interactionId);
144
145
  if (interaction != null) {
@@ -154,8 +155,8 @@ export function addMark(interactionId, type, name, labelStack) {
154
155
  startTime: time
155
156
  });
156
157
  }
157
- }
158
- export function addMarkToAll(type, name, labelStack) {
158
+ });
159
+ export var addMarkToAll = withProfiling(function addMarkToAll(type, name, labelStack) {
159
160
  var time = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : performance.now();
160
161
  interactions.forEach(function (interaction) {
161
162
  interaction.marks.push({
@@ -170,8 +171,8 @@ export function addMarkToAll(type, name, labelStack) {
170
171
  startTime: time
171
172
  });
172
173
  }
173
- }
174
- export function addSpan(interactionId, type, name, labelStack, start) {
174
+ });
175
+ export var addSpan = withProfiling(function addSpan(interactionId, type, name, labelStack, start) {
175
176
  var end = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : performance.now();
176
177
  var size = arguments.length > 6 ? arguments[6] : undefined;
177
178
  var interaction = interactions.get(interactionId);
@@ -196,8 +197,8 @@ export function addSpan(interactionId, type, name, labelStack, start) {
196
197
  }
197
198
  }
198
199
  }
199
- }
200
- export function addSpanToAll(type, name, labelStack, start) {
200
+ });
201
+ export var addSpanToAll = withProfiling(function addSpanToAll(type, name, labelStack, start) {
201
202
  var end = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : performance.now();
202
203
  var size = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;
203
204
  interactions.forEach(function (interaction) {
@@ -221,36 +222,36 @@ export function addSpanToAll(type, name, labelStack, start) {
221
222
  // do nothing
222
223
  }
223
224
  }
224
- }
225
- export function addPreload(moduleId, timestamp) {
225
+ });
226
+ export var addPreload = withProfiling(function addPreload(moduleId, timestamp) {
226
227
  addMarkToAll('bundle_preload', moduleId, null, timestamp);
227
- }
228
- export function addLoad(identifier, start, end) {
228
+ });
229
+ export var addLoad = withProfiling(function addLoad(identifier, start, end) {
229
230
  addSpanToAll('bundle_load', identifier, null, start, end - start);
230
- }
231
+ });
231
232
  var moduleLoadingRequests = {};
232
- export function extractModuleName(input) {
233
+ export var extractModuleName = withProfiling(function extractModuleName(input) {
233
234
  var result = input !== null && input !== void 0 ? input : '';
234
235
  result = result.replace(/^\.\/src\/packages\//, '');
235
236
  result = result.replace(/^\.\/node_modules\//, '');
236
237
  result = result.replace(/(\/src)?\/(index|main)\.(tsx|ts|js|jsx)$/, '');
237
238
  return result;
238
- }
239
- function addHoldCriterion(id, labelStack, name, startTime) {
239
+ });
240
+ var addHoldCriterion = withProfiling(function addHoldCriterion(id, labelStack, name, startTime) {
240
241
  var _window$__CRITERION__;
241
242
  if (!((_window$__CRITERION__ = window.__CRITERION__) !== null && _window$__CRITERION__ !== void 0 && _window$__CRITERION__.addUFOHold)) {
242
243
  return;
243
244
  }
244
245
  window.__CRITERION__.addUFOHold(id, labelStackToString(labelStack), name, startTime);
245
- }
246
- function removeHoldCriterion(id) {
246
+ });
247
+ var removeHoldCriterion = withProfiling(function removeHoldCriterion(id) {
247
248
  var _window$__CRITERION__2;
248
249
  if (!((_window$__CRITERION__2 = window.__CRITERION__) !== null && _window$__CRITERION__2 !== void 0 && _window$__CRITERION__2.removeUFOHold)) {
249
250
  return;
250
251
  }
251
252
  window.__CRITERION__.removeUFOHold(id);
252
- }
253
- export function addHold(interactionId, labelStack, name, experimental) {
253
+ });
254
+ export var addHold = withProfiling(function addHold(interactionId, labelStack, name, experimental) {
254
255
  var interaction = interactions.get(interactionId);
255
256
  var id = createUUID();
256
257
  if (interaction != null) {
@@ -306,8 +307,8 @@ export function addHold(interactionId, labelStack, name, experimental) {
306
307
  };
307
308
  }
308
309
  return function () {};
309
- }
310
- export function addHoldByID(interactionId, labelStack, name, id, ignoreOnSubmit) {
310
+ });
311
+ export var addHoldByID = withProfiling(function addHoldByID(interactionId, labelStack, name, id, ignoreOnSubmit) {
311
312
  var interaction = interactions.get(interactionId);
312
313
  if (interaction != null) {
313
314
  var start = performance.now();
@@ -320,8 +321,8 @@ export function addHoldByID(interactionId, labelStack, name, id, ignoreOnSubmit)
320
321
  addHoldCriterion(id, labelStack, name, start);
321
322
  }
322
323
  return function () {};
323
- }
324
- export function removeHoldByID(interactionId, id) {
324
+ });
325
+ export var removeHoldByID = withProfiling(function removeHoldByID(interactionId, id) {
325
326
  var interaction = interactions.get(interactionId);
326
327
  if (interaction != null) {
327
328
  var end = performance.now();
@@ -335,19 +336,19 @@ export function removeHoldByID(interactionId, id) {
335
336
  removeHoldCriterion(id);
336
337
  }
337
338
  }
338
- }
339
- export function getCurrentInteractionType(interactionId) {
339
+ });
340
+ export var getCurrentInteractionType = withProfiling(function getCurrentInteractionType(interactionId) {
340
341
  var interaction = interactions.get(interactionId);
341
342
  if (interaction) {
342
343
  return interaction.type;
343
344
  }
344
345
  return null;
345
- }
346
+ });
346
347
  export var ModuleLoadingProfiler = {
347
- onPreload: function onPreload(moduleId, _priority) {
348
+ onPreload: withProfiling(function onPreload(moduleId, _priority) {
348
349
  addPreload(extractModuleName(moduleId), performance.now());
349
- },
350
- onLoadStart: function onLoadStart(info) {
350
+ }),
351
+ onLoadStart: withProfiling(function onLoadStart(info) {
351
352
  var timeoutId = setTimeout(function () {
352
353
  delete moduleLoadingRequests[info.identifier];
353
354
  }, 30000);
@@ -356,29 +357,29 @@ export var ModuleLoadingProfiler = {
356
357
  timeoutId: timeoutId
357
358
  };
358
359
  moduleLoadingRequests[info.identifier] = request;
359
- },
360
- onLoadComplete: function onLoadComplete(info) {
360
+ }),
361
+ onLoadComplete: withProfiling(function onLoadComplete(info) {
361
362
  var request = moduleLoadingRequests[info.identifier];
362
363
  if (request) {
363
364
  clearTimeout(request.timeoutId);
364
365
  delete moduleLoadingRequests[info.identifier];
365
366
  addLoad(extractModuleName(info.identifier), request.start, performance.now());
366
367
  }
367
- },
368
- placeholderFallBackMounted: function placeholderFallBackMounted(id, moduleId) {
368
+ }),
369
+ placeholderFallBackMounted: withProfiling(function placeholderFallBackMounted(id, moduleId) {
369
370
  var interactionId = getInteractionId();
370
371
  var currentInteractionId = interactionId.current;
371
372
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
372
373
  addHoldByID(currentInteractionId, [], moduleId, id);
373
- },
374
- placeholderFallBackUnmounted: function placeholderFallBackUnmounted(id) {
374
+ }),
375
+ placeholderFallBackUnmounted: withProfiling(function placeholderFallBackUnmounted(id) {
375
376
  var interactionId = getInteractionId();
376
377
  var currentInteractionId = interactionId.current;
377
378
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
378
379
  removeHoldByID(currentInteractionId, id);
379
- }
380
+ })
380
381
  };
381
- export function addError(interactionId, name, labelStack, errorType, errorMessage, errorStack, forcedError) {
382
+ export var addError = withProfiling(function addError(interactionId, name, labelStack, errorType, errorMessage, errorStack, forcedError) {
382
383
  var interaction = interactions.get(interactionId);
383
384
  if (interaction != null) {
384
385
  interaction.errors.push({
@@ -390,8 +391,8 @@ export function addError(interactionId, name, labelStack, errorType, errorMessag
390
391
  forcedError: forcedError
391
392
  });
392
393
  }
393
- }
394
- export function addErrorToAll(name, labelStack, errorType, errorMessage, errorStack) {
394
+ });
395
+ export var addErrorToAll = withProfiling(function addErrorToAll(name, labelStack, errorType, errorMessage, errorStack) {
395
396
  interactions.forEach(function (interaction) {
396
397
  interaction.errors.push({
397
398
  name: name,
@@ -401,8 +402,8 @@ export function addErrorToAll(name, labelStack, errorType, errorMessage, errorSt
401
402
  errorStack: errorStack
402
403
  });
403
404
  });
404
- }
405
- export var addProfilerTimings = function addProfilerTimings(interactionId, labelStack, type, actualDuration, baseDuration, startTime, commitTime) {
405
+ });
406
+ export var addProfilerTimings = withProfiling(function addProfilerTimings(interactionId, labelStack, type, actualDuration, baseDuration, startTime, commitTime) {
406
407
  var _getConfig3;
407
408
  if (isPerformanceTracingEnabled()) {
408
409
  try {
@@ -428,20 +429,20 @@ export var addProfilerTimings = function addProfilerTimings(interactionId, label
428
429
  } else if ((_getConfig3 = getConfig()) !== null && _getConfig3 !== void 0 && (_getConfig3 = _getConfig3.postInteractionLog) !== null && _getConfig3 !== void 0 && _getConfig3.enabled) {
429
430
  postInteractionLog.addProfilerTimings(labelStack, type, actualDuration, baseDuration, startTime, commitTime);
430
431
  }
431
- };
432
- var pushToQueue = function pushToQueue(id, data) {
432
+ });
433
+ var pushToQueue = withProfiling(function pushToQueue(id, data) {
433
434
  interactionQueue.push({
434
435
  id: id,
435
436
  data: data
436
437
  });
437
- };
438
+ });
438
439
  var handleInteraction = pushToQueue;
439
- function callCleanUpCallbacks(interaction) {
440
+ var callCleanUpCallbacks = withProfiling(function callCleanUpCallbacks(interaction) {
440
441
  interaction.cleanupCallbacks.reverse().forEach(function (cleanUpCallback) {
441
442
  cleanUpCallback();
442
443
  });
443
- }
444
- var finishInteraction = function finishInteraction(id, data) {
444
+ });
445
+ var finishInteraction = withProfiling(function finishInteraction(id, data) {
445
446
  var _getConfig4, _getConfig5;
446
447
  var endTime = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : performance.now();
447
448
  data.end = endTime;
@@ -517,8 +518,8 @@ var finishInteraction = function finishInteraction(id, data) {
517
518
  } catch (error) {
518
519
  // do nothing
519
520
  }
520
- };
521
- export var sinkInteractionHandler = function sinkInteractionHandler(sinkFn) {
521
+ });
522
+ export var sinkInteractionHandler = withProfiling(function sinkInteractionHandler(sinkFn) {
522
523
  if (handleInteraction === pushToQueue) {
523
524
  handleInteraction = sinkFn;
524
525
  interactionQueue.forEach(function (interaction) {
@@ -526,14 +527,14 @@ export var sinkInteractionHandler = function sinkInteractionHandler(sinkFn) {
526
527
  });
527
528
  interactionQueue.length = 0;
528
529
  }
529
- };
530
- export var sinkPostInteractionLogHandler = function sinkPostInteractionLogHandler(sinkFn) {
530
+ });
531
+ export var sinkPostInteractionLogHandler = withProfiling(function sinkPostInteractionLogHandler(sinkFn) {
531
532
  postInteractionLog.sinkHandler(sinkFn);
532
- };
533
+ });
533
534
 
534
535
  // a flag to prevent multiple submitting
535
536
  var activeSubmitted = false;
536
- export function tryComplete(interactionId, endTime) {
537
+ export var tryComplete = withProfiling(function tryComplete(interactionId, endTime) {
537
538
  var interaction = interactions.get(interactionId);
538
539
  if (interaction != null) {
539
540
  var noMoreActiveHolds = interaction.holdActive.size === 0;
@@ -611,13 +612,13 @@ export function tryComplete(interactionId, endTime) {
611
612
  }
612
613
  }
613
614
  }
614
- }
615
- function callCancelCallbacks(interaction) {
615
+ });
616
+ var callCancelCallbacks = withProfiling(function callCancelCallbacks(interaction) {
616
617
  interaction.cancelCallbacks.reverse().forEach(function (cancelCallback) {
617
618
  cancelCallback();
618
619
  });
619
- }
620
- export function abort(interactionId, abortReason) {
620
+ });
621
+ export var abort = withProfiling(function abort(interactionId, abortReason) {
621
622
  var interaction = interactions.get(interactionId);
622
623
  if (interaction != null) {
623
624
  var _getConfig10;
@@ -629,8 +630,8 @@ export function abort(interactionId, abortReason) {
629
630
  remove(interactionId);
630
631
  }
631
632
  }
632
- }
633
- export function abortByNewInteraction(interactionId, interactionName) {
633
+ });
634
+ export var abortByNewInteraction = withProfiling(function abortByNewInteraction(interactionId, interactionName) {
634
635
  var interaction = interactions.get(interactionId);
635
636
  if (interaction != null) {
636
637
  var _getConfig11;
@@ -643,8 +644,8 @@ export function abortByNewInteraction(interactionId, interactionName) {
643
644
  remove(interactionId);
644
645
  }
645
646
  }
646
- }
647
- export function abortAll(abortReason, abortedByInteractionName) {
647
+ });
648
+ export var abortAll = withProfiling(function abortAll(abortReason, abortedByInteractionName) {
648
649
  interactions.forEach(function (interaction, interactionId) {
649
650
  var _getConfig12;
650
651
  var noMoreHolds = interaction.holdActive.size === 0;
@@ -661,12 +662,12 @@ export function abortAll(abortReason, abortedByInteractionName) {
661
662
  remove(interactionId);
662
663
  }
663
664
  });
664
- }
665
- export function addOnCancelCallback(id, cancelCallback) {
665
+ });
666
+ export var addOnCancelCallback = withProfiling(function addOnCancelCallback(id, cancelCallback) {
666
667
  var interaction = interactions.get(id);
667
668
  interaction === null || interaction === void 0 || interaction.cancelCallbacks.push(cancelCallback);
668
- }
669
- export function addNewInteraction(interactionId, ufoName, type, startTime, rate, labelStack, routeName) {
669
+ });
670
+ export var addNewInteraction = withProfiling(function addNewInteraction(interactionId, ufoName, type, startTime, rate, labelStack, routeName) {
670
671
  var _getConfig13;
671
672
  var trace = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : null;
672
673
  if ((_getConfig13 = getConfig()) !== null && _getConfig13 !== void 0 && (_getConfig13 = _getConfig13.postInteractionLog) !== null && _getConfig13 !== void 0 && _getConfig13.enabled) {
@@ -770,8 +771,8 @@ export function addNewInteraction(interactionId, ufoName, type, startTime, rate,
770
771
  });
771
772
  }
772
773
  }
773
- }
774
- export function addBrowserMetricEvent(event) {
774
+ });
775
+ export var addBrowserMetricEvent = withProfiling(function addBrowserMetricEvent(event) {
775
776
  var interaction = getActiveInteraction();
776
777
  if (interaction) {
777
778
  var _event$config;
@@ -782,8 +783,8 @@ export function addBrowserMetricEvent(event) {
782
783
  removeHoldByID(interaction.id, interaction.ufoName);
783
784
  }
784
785
  }
785
- }
786
- export function addApdexToAll(apdex) {
786
+ });
787
+ export var addApdexToAll = withProfiling(function addApdexToAll(apdex) {
787
788
  interactions.forEach(function (interaction, key) {
788
789
  interaction.apdex.push(apdex);
789
790
  try {
@@ -801,8 +802,8 @@ export function addApdexToAll(apdex) {
801
802
  removeHoldByID(key, interaction.ufoName);
802
803
  }
803
804
  });
804
- }
805
- export function addApdex(interactionId, apdexInfo) {
805
+ });
806
+ export var addApdex = withProfiling(function addApdex(interactionId, apdexInfo) {
806
807
  var interaction = interactions.get(interactionId);
807
808
  if (interaction != null) {
808
809
  interaction.apdex.push(apdexInfo);
@@ -821,27 +822,27 @@ export function addApdex(interactionId, apdexInfo) {
821
822
  removeHoldByID(interactionId, interaction.ufoName);
822
823
  }
823
824
  }
824
- }
825
- export function addRequestInfo(interactionId, labelStack, requestInfo) {
825
+ });
826
+ export var addRequestInfo = withProfiling(function addRequestInfo(interactionId, labelStack, requestInfo) {
826
827
  var interaction = interactions.get(interactionId);
827
828
  if (interaction != null) {
828
829
  interaction.requestInfo.push(_objectSpread({
829
830
  labelStack: labelStack
830
831
  }, requestInfo));
831
832
  }
832
- }
833
- function isSegmentLabel(obj) {
833
+ });
834
+ var isSegmentLabel = withProfiling(function isSegmentLabel(obj) {
834
835
  return obj && typeof obj.name === 'string' && typeof obj.segmentId === 'string';
835
- }
836
- function getSegmentCacheKey(labelStack) {
836
+ });
837
+ var getSegmentCacheKey = withProfiling(function getSegmentCacheKey(labelStack) {
837
838
  return labelStack.map(function (l) {
838
839
  if (isSegmentLabel(l)) {
839
840
  return "".concat(l.name, "_").concat(l.segmentId);
840
841
  }
841
842
  return l.name;
842
843
  }).join('|');
843
- }
844
- export function addSegment(labelStack) {
844
+ });
845
+ export var addSegment = withProfiling(function addSegment(labelStack) {
845
846
  var key = getSegmentCacheKey(labelStack);
846
847
  var existingSegment = segmentCache.get(key);
847
848
  if (!existingSegment) {
@@ -853,8 +854,8 @@ export function addSegment(labelStack) {
853
854
  observer.onAdd(segmentInfo);
854
855
  });
855
856
  }
856
- }
857
- export function removeSegment(labelStack) {
857
+ });
858
+ export var removeSegment = withProfiling(function removeSegment(labelStack) {
858
859
  var key = getSegmentCacheKey(labelStack);
859
860
  var segmentInfo = segmentCache.get(key);
860
861
  if (segmentInfo) {
@@ -863,8 +864,8 @@ export function removeSegment(labelStack) {
863
864
  observer.onRemove(segmentInfo);
864
865
  });
865
866
  }
866
- }
867
- export function addRedirect(interactionId, fromUfoName, nextUfoName, nextRouteName, time) {
867
+ });
868
+ export var addRedirect = withProfiling(function addRedirect(interactionId, fromUfoName, nextUfoName, nextRouteName, time) {
868
869
  var interaction = interactions.get(interactionId);
869
870
  if (interaction != null) {
870
871
  interaction.ufoName = nextUfoName;
@@ -887,12 +888,12 @@ export function addRedirect(interactionId, fromUfoName, nextUfoName, nextRouteNa
887
888
  }
888
889
  }
889
890
  }
890
- }
891
+ });
891
892
  export var interactionSpans = [];
892
893
  var defaultLabelStack = [{
893
894
  name: 'custom'
894
895
  }];
895
- export function addCustomSpans(name, start) {
896
+ export var addCustomSpans = withProfiling(function addCustomSpans(name, start) {
896
897
  var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : performance.now();
897
898
  var size = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
898
899
  var labelStack = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : defaultLabelStack;
@@ -905,4 +906,4 @@ export function addCustomSpans(name, start) {
905
906
  size: size
906
907
  };
907
908
  interactionSpans.push(customSpan);
908
- }
909
+ });
@@ -6,6 +6,7 @@ import _regeneratorRuntime from "@babel/runtime/regenerator";
6
6
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
7
7
  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; }
8
8
  import { getConfig } from '../config';
9
+ import { withProfiling } from '../self-measurements';
9
10
  import { VCObserver } from '../vc/vc-observer';
10
11
  var POST_INTERACTION_LOG_SEND_DEFAULT_TIMEOUT = 3000;
11
12
  var PostInteractionLog = /*#__PURE__*/function () {
@@ -32,6 +33,15 @@ var PostInteractionLog = /*#__PURE__*/function () {
32
33
  * Handler function to process / send the observation data
33
34
  */
34
35
  _defineProperty(this, "sinkHandlerFn", function () {});
36
+ this.initializeVCObserver = withProfiling(this.initializeVCObserver.bind(this));
37
+ this.startVCObserver = withProfiling(this.startVCObserver.bind(this));
38
+ this.setVCObserverSSRConfig = withProfiling(this.setVCObserverSSRConfig.bind(this));
39
+ this.setLastInteractionFinishVCResult = withProfiling(this.setLastInteractionFinishVCResult.bind(this));
40
+ this.reset = withProfiling(this.reset.bind(this));
41
+ this.hasData = withProfiling(this.hasData.bind(this));
42
+ this.sendPostInteractionLog = withProfiling(this.sendPostInteractionLog.bind(this));
43
+ this.onInteractionComplete = withProfiling(this.onInteractionComplete.bind(this));
44
+ this.addProfilerTimings = withProfiling(this.addProfilerTimings.bind(this));
35
45
  }
36
46
  return _createClass(PostInteractionLog, [{
37
47
  key: "initializeVCObserver",
@@ -5,12 +5,13 @@ import { setUFOConfig } from '../config';
5
5
  import { experimentalVC, sinkExperimentalHandler } from '../create-experimental-interaction-metrics-payload';
6
6
  import { setupHiddenTimingCapture } from '../hidden-timing';
7
7
  import { postInteractionLog, sinkInteractionHandler, sinkPostInteractionLogHandler } from '../interaction-metrics';
8
+ import { withProfiling } from '../self-measurements';
8
9
  import { getVCObserver } from '../vc';
9
10
  import scheduleIdleCallback from './schedule-idle-callback';
10
11
  var initialized = false;
11
- function sinkInteraction(instance, payloadPackage) {
12
- sinkInteractionHandler(function (interactionId, interaction) {
13
- scheduleIdleCallback(function () {
12
+ var sinkInteraction = withProfiling(function sinkInteraction(instance, payloadPackage) {
13
+ var sinkFn = withProfiling(function sinkFn(interactionId, interaction) {
14
+ var onIdle = withProfiling(function onIdle() {
14
15
  payloadPackage.createPayloads(interactionId, interaction).then(function (payloads) {
15
16
  // NOTE: This API is used by the UFO DevTool Chrome Extension and Criterion
16
17
  var devToolObserver = globalThis.__ufo_devtool_onUfoPayload;
@@ -24,14 +25,17 @@ function sinkInteraction(instance, payloadPackage) {
24
25
  throw error;
25
26
  });
26
27
  });
28
+ scheduleIdleCallback(onIdle);
27
29
  });
28
- }
29
- function sinkExperimentalInteractionMetrics(instance, payloadPackage) {
30
- sinkExperimentalHandler(function (interactionId, interaction) {
31
- scheduleIdleCallback(function () {
30
+ sinkInteractionHandler(sinkFn);
31
+ });
32
+ var sinkExperimentalInteractionMetrics = withProfiling(function sinkExperimentalInteractionMetrics(instance, payloadPackage) {
33
+ var experimentalMetricsSinkFn = withProfiling(function experimentalMetricsSinkFn(interactionId, interaction) {
34
+ var experimentalMetricsOnIdle = withProfiling(function experimentalMetricsOnIdle() {
32
35
  var payloadPromise = payloadPackage.createExperimentalMetricsPayload(interactionId, interaction);
33
36
  payloadPromise.then(function (payload) {
34
37
  if (payload) {
38
+ // eslint-disable-next-line @atlaskit/platform/ensure-feature-flag-prefix
35
39
  if (fg('enable_ufo_devtools_api_for_extra_events')) {
36
40
  // NOTE: This API is used by the UFO DevTool Chrome Extension and Criterion
37
41
  var devToolObserver = globalThis.__ufo_devtool_onUfoPayload;
@@ -43,14 +47,17 @@ function sinkExperimentalInteractionMetrics(instance, payloadPackage) {
43
47
  }
44
48
  });
45
49
  });
50
+ scheduleIdleCallback(experimentalMetricsOnIdle);
46
51
  });
47
- }
52
+ sinkExperimentalHandler(experimentalMetricsSinkFn);
53
+ });
48
54
  function sinkPostInteractionLog(instance, createPostInteractionLogPayload) {
49
55
  sinkPostInteractionLogHandler(function (logOutput) {
50
56
  scheduleIdleCallback(function () {
51
57
  var payload = createPostInteractionLogPayload(logOutput);
52
58
  if (payload) {
53
59
  // NOTE: This API is used by the UFO DevTool Chrome Extension and also by Criterion
60
+ // eslint-disable-next-line @atlaskit/platform/ensure-feature-flag-prefix
54
61
  if (fg('enable_ufo_devtools_api_for_extra_events')) {
55
62
  var devToolObserver = globalThis.__ufo_devtool_onUfoPayload;
56
63
  if (typeof devToolObserver === 'function') {
@@ -62,7 +69,7 @@ function sinkPostInteractionLog(instance, createPostInteractionLogPayload) {
62
69
  });
63
70
  });
64
71
  }
65
- export var init = function init(analyticsWebClientAsync, config) {
72
+ export var init = withProfiling(function init(analyticsWebClientAsync, config) {
66
73
  var _config$vc;
67
74
  if (initialized) {
68
75
  return;
@@ -120,4 +127,4 @@ export var init = function init(analyticsWebClientAsync, config) {
120
127
  }
121
128
  }
122
129
  });
123
- };
130
+ });
@@ -1,9 +1,13 @@
1
1
  import { unstable_IdlePriority as idlePriority, unstable_scheduleCallback as scheduleCallback } from 'scheduler';
2
2
  import { fg } from '@atlaskit/platform-feature-flags';
3
- export default function scheduleIdleCallback(work) {
4
- if (typeof window !== 'undefined' && typeof window.requestIdleCallback === 'function' && fg('ufo_payload_use_idle_callback')) {
3
+ import { withProfiling } from '../self-measurements';
4
+ var scheduleIdleCallback = withProfiling(function scheduleIdleCallback(work) {
5
+ if (typeof window !== 'undefined' && typeof window.requestIdleCallback === 'function' &&
6
+ // eslint-disable-next-line @atlaskit/platform/ensure-feature-flag-prefix
7
+ fg('ufo_payload_use_idle_callback')) {
5
8
  window.requestIdleCallback(work);
6
9
  } else {
7
10
  scheduleCallback(idlePriority, work);
8
11
  }
9
- }
12
+ });
13
+ export default scheduleIdleCallback;