@atlaskit/react-ufo 3.6.6 → 3.7.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 (437) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/cjs/additional-payload/utils/cache-hit-ratio/index.js +5 -6
  3. package/dist/cjs/additional-payload/utils/lighthouse-metrics/cls/index.js +3 -4
  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 -4
  6. package/dist/cjs/additional-payload/utils/lighthouse-metrics/utils/buffer/index.js +0 -3
  7. package/dist/cjs/additional-payload/utils/lighthouse-metrics/utils/observer/index.js +10 -10
  8. package/dist/cjs/assets/index.js +14 -17
  9. package/dist/cjs/assets/utils.js +13 -10
  10. package/dist/cjs/bundle-eval-timing/index.js +8 -8
  11. package/dist/cjs/coinflip/index.js +2 -3
  12. package/dist/cjs/config/index.js +42 -30
  13. package/dist/cjs/create-experimental-interaction-metrics-payload/index.js +41 -29
  14. package/dist/cjs/create-payload/common/utils/index.js +20 -16
  15. package/dist/cjs/create-payload/index.js +125 -131
  16. package/dist/cjs/create-payload/utils/get-interaction-status.js +2 -3
  17. package/dist/cjs/create-payload/utils/get-page-visibility-up-to-ttai.js +2 -3
  18. package/dist/cjs/create-payload/utils/get-react-ufo-payload-version.js +3 -4
  19. package/dist/cjs/create-payload/utils/get-ssr-done-time-value.js +2 -3
  20. package/dist/cjs/create-payload/utils/get-vc-metrics.js +7 -8
  21. package/dist/cjs/create-post-interaction-log-payload/index.js +12 -13
  22. package/dist/cjs/custom-data/index.js +14 -6
  23. package/dist/cjs/custom-mark/index.js +3 -4
  24. package/dist/cjs/custom-spans/index.js +3 -4
  25. package/dist/cjs/custom-timings/index.js +6 -6
  26. package/dist/cjs/experience-trace-id-context/index.js +21 -16
  27. package/dist/cjs/experience-trace-id-context/utils/make-trace-http-request-headers/index.js +3 -4
  28. package/dist/cjs/feature-flags-accessed/common/utils/index.js +12 -12
  29. package/dist/cjs/feature-flags-accessed/index.js +4 -4
  30. package/dist/cjs/generate-id/index.js +2 -3
  31. package/dist/cjs/global-error-handler/index.js +16 -15
  32. package/dist/cjs/initial-page-load-extra-timing/index.js +6 -6
  33. package/dist/cjs/interaction-metrics/index.js +202 -126
  34. package/dist/cjs/interaction-metrics/post-interaction-log.js +0 -10
  35. package/dist/cjs/interaction-metrics-init/index.js +26 -16
  36. package/dist/cjs/interaction-metrics-init/schedule-idle-callback.js +2 -3
  37. package/dist/cjs/interactions-performance-observer/index.js +51 -0
  38. package/dist/cjs/resource-timing/common/utils/config.js +10 -10
  39. package/dist/cjs/resource-timing/common/utils/resource-timing-buffer.js +14 -14
  40. package/dist/cjs/resource-timing/main.js +19 -20
  41. package/dist/cjs/resource-timing/utils.js +3 -4
  42. package/dist/cjs/round-number/index.js +3 -4
  43. package/dist/cjs/route-name/index.js +2 -3
  44. package/dist/cjs/segment/schedule-on-paint.js +2 -4
  45. package/dist/cjs/segment/segment.js +4 -13
  46. package/dist/cjs/set-interaction-error/index.js +3 -4
  47. package/dist/cjs/short-id/index.js +2 -3
  48. package/dist/cjs/ssr/index.js +21 -18
  49. package/dist/cjs/trace-interaction/index.js +4 -5
  50. package/dist/cjs/trace-pageload/index.js +6 -6
  51. package/dist/cjs/trace-press/index.js +2 -3
  52. package/dist/cjs/trace-redirect/index.js +2 -3
  53. package/dist/cjs/trace-transition/index.js +2 -3
  54. package/dist/cjs/trace-transition/utils/generate-span-id/index.js +3 -4
  55. package/dist/cjs/trace-transition/utils/set-interaction-active-trace/index.js +3 -4
  56. package/dist/cjs/vc/index.js +6 -17
  57. package/dist/cjs/vc/vc-observer/attachAbortListeners.js +3 -4
  58. package/dist/cjs/vc/vc-observer/getVCRevisionsData.js +22 -13
  59. package/dist/cjs/vc/vc-observer/getViewport.js +6 -6
  60. package/dist/cjs/vc/vc-observer/heatmap/heatmap.js +10 -20
  61. package/dist/cjs/vc/vc-observer/index.js +119 -145
  62. package/dist/cjs/vc/vc-observer/media-wrapper/vc-utils.js +3 -4
  63. package/dist/cjs/vc/vc-observer/observers/editor-lnv/index.js +0 -17
  64. package/dist/cjs/vc/vc-observer/observers/index.js +2 -29
  65. package/dist/cjs/vc/vc-observer/observers/non-visual-styles/is-non-visual-style-mutation.js +2 -3
  66. package/dist/cjs/vc/vc-observer/observers/ssr-placeholders/index.js +0 -16
  67. package/dist/cjs/vc/vc-observer/revisions/fy25_01.js +0 -2
  68. package/dist/cjs/vc/vc-observer/revisions/fy25_02.js +0 -2
  69. package/dist/cjs/vc/vc-observer/revisions/revisions.js +3 -4
  70. package/dist/cjs/vc/vc-observer-new/entries-timeline/index.js +0 -9
  71. package/dist/cjs/vc/vc-observer-new/get-element-name.js +2 -3
  72. package/dist/cjs/vc/vc-observer-new/get-unique-element-name.js +10 -11
  73. package/dist/cjs/vc/vc-observer-new/index.js +0 -9
  74. package/dist/cjs/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +0 -2
  75. package/dist/cjs/vc/vc-observer-new/metric-calculator/fy25_03/index.js +1 -6
  76. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +12 -20
  77. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +26 -26
  78. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.js +6 -18
  79. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +13 -25
  80. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/index.js +7 -8
  81. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.js +39 -48
  82. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +7 -8
  83. package/dist/cjs/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.js +2 -3
  84. package/dist/cjs/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.js +2 -3
  85. package/dist/cjs/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.js +2 -3
  86. package/dist/cjs/vc/vc-observer-new/metric-calculator/utils/task-yield.js +7 -8
  87. package/dist/cjs/vc/vc-observer-new/viewport-observer/index.js +7 -15
  88. package/dist/cjs/vc/vc-observer-new/viewport-observer/intersection-observer/index.js +7 -8
  89. package/dist/cjs/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +14 -15
  90. package/dist/cjs/vc/vc-observer-new/viewport-observer/performance-observer/index.js +9 -9
  91. package/dist/cjs/vc/vc-observer-new/window-event-observer/index.js +1 -7
  92. package/dist/es2019/additional-payload/utils/cache-hit-ratio/index.js +4 -5
  93. package/dist/es2019/additional-payload/utils/lighthouse-metrics/cls/index.js +2 -3
  94. package/dist/es2019/additional-payload/utils/lighthouse-metrics/index.js +4 -5
  95. package/dist/es2019/additional-payload/utils/lighthouse-metrics/tbt/index.js +2 -3
  96. package/dist/es2019/additional-payload/utils/lighthouse-metrics/utils/buffer/index.js +0 -3
  97. package/dist/es2019/additional-payload/utils/lighthouse-metrics/utils/observer/index.js +8 -9
  98. package/dist/es2019/assets/index.js +14 -19
  99. package/dist/es2019/assets/utils.js +8 -10
  100. package/dist/es2019/bundle-eval-timing/index.js +6 -7
  101. package/dist/es2019/coinflip/index.js +2 -4
  102. package/dist/es2019/config/index.js +28 -29
  103. package/dist/es2019/create-experimental-interaction-metrics-payload/index.js +15 -18
  104. package/dist/es2019/create-payload/common/utils/index.js +14 -15
  105. package/dist/es2019/create-payload/index.js +80 -85
  106. package/dist/es2019/create-payload/utils/get-interaction-status.js +2 -4
  107. package/dist/es2019/create-payload/utils/get-page-visibility-up-to-ttai.js +2 -3
  108. package/dist/es2019/create-payload/utils/get-react-ufo-payload-version.js +2 -3
  109. package/dist/es2019/create-payload/utils/get-ssr-done-time-value.js +2 -3
  110. package/dist/es2019/create-payload/utils/get-vc-metrics.js +2 -3
  111. package/dist/es2019/create-post-interaction-log-payload/index.js +12 -13
  112. package/dist/es2019/custom-data/index.js +13 -5
  113. package/dist/es2019/custom-mark/index.js +2 -3
  114. package/dist/es2019/custom-spans/index.js +2 -3
  115. package/dist/es2019/custom-timings/index.js +4 -5
  116. package/dist/es2019/experience-trace-id-context/index.js +14 -15
  117. package/dist/es2019/experience-trace-id-context/utils/make-trace-http-request-headers/index.js +2 -3
  118. package/dist/es2019/feature-flags-accessed/common/utils/index.js +10 -11
  119. package/dist/es2019/feature-flags-accessed/index.js +2 -3
  120. package/dist/es2019/generate-id/index.js +2 -3
  121. package/dist/es2019/global-error-handler/index.js +13 -14
  122. package/dist/es2019/initial-page-load-extra-timing/index.js +4 -5
  123. package/dist/es2019/interaction-metrics/index.js +138 -109
  124. package/dist/es2019/interaction-metrics/post-interaction-log.js +0 -10
  125. package/dist/es2019/interaction-metrics-init/index.js +25 -15
  126. package/dist/es2019/interaction-metrics-init/schedule-idle-callback.js +2 -3
  127. package/dist/es2019/interactions-performance-observer/index.js +30 -0
  128. package/dist/es2019/resource-timing/common/utils/config.js +8 -9
  129. package/dist/es2019/resource-timing/common/utils/resource-timing-buffer.js +12 -13
  130. package/dist/es2019/resource-timing/main.js +18 -19
  131. package/dist/es2019/resource-timing/utils.js +2 -3
  132. package/dist/es2019/round-number/index.js +2 -3
  133. package/dist/es2019/route-name/index.js +2 -3
  134. package/dist/es2019/segment/schedule-on-paint.js +2 -4
  135. package/dist/es2019/segment/segment.js +4 -13
  136. package/dist/es2019/set-interaction-error/index.js +2 -3
  137. package/dist/es2019/short-id/index.js +2 -3
  138. package/dist/es2019/ssr/index.js +16 -17
  139. package/dist/es2019/trace-interaction/index.js +4 -5
  140. package/dist/es2019/trace-pageload/index.js +4 -5
  141. package/dist/es2019/trace-press/index.js +2 -3
  142. package/dist/es2019/trace-redirect/index.js +2 -3
  143. package/dist/es2019/trace-transition/index.js +2 -3
  144. package/dist/es2019/trace-transition/utils/generate-span-id/index.js +2 -3
  145. package/dist/es2019/trace-transition/utils/set-interaction-active-trace/index.js +2 -3
  146. package/dist/es2019/vc/index.js +4 -16
  147. package/dist/es2019/vc/vc-observer/attachAbortListeners.js +2 -3
  148. package/dist/es2019/vc/vc-observer/getVCRevisionsData.js +4 -5
  149. package/dist/es2019/vc/vc-observer/getViewport.js +4 -5
  150. package/dist/es2019/vc/vc-observer/heatmap/heatmap.js +8 -20
  151. package/dist/es2019/vc/vc-observer/index.js +104 -134
  152. package/dist/es2019/vc/vc-observer/media-wrapper/vc-utils.js +2 -3
  153. package/dist/es2019/vc/vc-observer/observers/editor-lnv/index.js +0 -17
  154. package/dist/es2019/vc/vc-observer/observers/index.js +2 -29
  155. package/dist/es2019/vc/vc-observer/observers/non-visual-styles/is-non-visual-style-mutation.js +2 -4
  156. package/dist/es2019/vc/vc-observer/observers/ssr-placeholders/index.js +0 -16
  157. package/dist/es2019/vc/vc-observer/revisions/fy25_01.js +0 -2
  158. package/dist/es2019/vc/vc-observer/revisions/fy25_02.js +0 -2
  159. package/dist/es2019/vc/vc-observer/revisions/revisions.js +2 -3
  160. package/dist/es2019/vc/vc-observer-new/entries-timeline/index.js +0 -9
  161. package/dist/es2019/vc/vc-observer-new/get-element-name.js +2 -3
  162. package/dist/es2019/vc/vc-observer-new/get-unique-element-name.js +10 -11
  163. package/dist/es2019/vc/vc-observer-new/index.js +0 -9
  164. package/dist/es2019/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +0 -2
  165. package/dist/es2019/vc/vc-observer-new/metric-calculator/fy25_03/index.js +0 -3
  166. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +4 -14
  167. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +4 -5
  168. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.js +6 -18
  169. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +8 -20
  170. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/index.js +2 -3
  171. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.js +8 -9
  172. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +2 -3
  173. package/dist/es2019/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.js +2 -3
  174. package/dist/es2019/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.js +2 -3
  175. package/dist/es2019/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.js +2 -3
  176. package/dist/es2019/vc/vc-observer-new/metric-calculator/utils/task-yield.js +2 -4
  177. package/dist/es2019/vc/vc-observer-new/viewport-observer/index.js +7 -15
  178. package/dist/es2019/vc/vc-observer-new/viewport-observer/intersection-observer/index.js +8 -8
  179. package/dist/es2019/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +15 -15
  180. package/dist/es2019/vc/vc-observer-new/viewport-observer/performance-observer/index.js +8 -9
  181. package/dist/es2019/vc/vc-observer-new/window-event-observer/index.js +1 -7
  182. package/dist/esm/additional-payload/utils/cache-hit-ratio/index.js +4 -5
  183. package/dist/esm/additional-payload/utils/lighthouse-metrics/cls/index.js +2 -3
  184. package/dist/esm/additional-payload/utils/lighthouse-metrics/index.js +4 -5
  185. package/dist/esm/additional-payload/utils/lighthouse-metrics/tbt/index.js +2 -3
  186. package/dist/esm/additional-payload/utils/lighthouse-metrics/utils/buffer/index.js +0 -3
  187. package/dist/esm/additional-payload/utils/lighthouse-metrics/utils/observer/index.js +8 -9
  188. package/dist/esm/assets/index.js +14 -17
  189. package/dist/esm/assets/utils.js +8 -10
  190. package/dist/esm/bundle-eval-timing/index.js +6 -7
  191. package/dist/esm/coinflip/index.js +2 -4
  192. package/dist/esm/config/index.js +28 -29
  193. package/dist/esm/create-experimental-interaction-metrics-payload/index.js +36 -28
  194. package/dist/esm/create-payload/common/utils/index.js +14 -15
  195. package/dist/esm/create-payload/index.js +124 -130
  196. package/dist/esm/create-payload/utils/get-interaction-status.js +2 -4
  197. package/dist/esm/create-payload/utils/get-page-visibility-up-to-ttai.js +2 -3
  198. package/dist/esm/create-payload/utils/get-react-ufo-payload-version.js +2 -3
  199. package/dist/esm/create-payload/utils/get-ssr-done-time-value.js +2 -3
  200. package/dist/esm/create-payload/utils/get-vc-metrics.js +7 -8
  201. package/dist/esm/create-post-interaction-log-payload/index.js +12 -13
  202. package/dist/esm/custom-data/index.js +13 -5
  203. package/dist/esm/custom-mark/index.js +2 -3
  204. package/dist/esm/custom-spans/index.js +2 -3
  205. package/dist/esm/custom-timings/index.js +4 -5
  206. package/dist/esm/experience-trace-id-context/index.js +14 -15
  207. package/dist/esm/experience-trace-id-context/utils/make-trace-http-request-headers/index.js +2 -3
  208. package/dist/esm/feature-flags-accessed/common/utils/index.js +10 -11
  209. package/dist/esm/feature-flags-accessed/index.js +2 -3
  210. package/dist/esm/generate-id/index.js +2 -3
  211. package/dist/esm/global-error-handler/index.js +13 -14
  212. package/dist/esm/initial-page-load-extra-timing/index.js +4 -5
  213. package/dist/esm/interaction-metrics/index.js +163 -125
  214. package/dist/esm/interaction-metrics/post-interaction-log.js +0 -10
  215. package/dist/esm/interaction-metrics-init/index.js +25 -15
  216. package/dist/esm/interaction-metrics-init/schedule-idle-callback.js +2 -3
  217. package/dist/esm/interactions-performance-observer/index.js +44 -0
  218. package/dist/esm/resource-timing/common/utils/config.js +8 -9
  219. package/dist/esm/resource-timing/common/utils/resource-timing-buffer.js +12 -13
  220. package/dist/esm/resource-timing/main.js +18 -19
  221. package/dist/esm/resource-timing/utils.js +2 -3
  222. package/dist/esm/round-number/index.js +2 -3
  223. package/dist/esm/route-name/index.js +2 -3
  224. package/dist/esm/segment/schedule-on-paint.js +2 -4
  225. package/dist/esm/segment/segment.js +4 -13
  226. package/dist/esm/set-interaction-error/index.js +2 -3
  227. package/dist/esm/short-id/index.js +2 -3
  228. package/dist/esm/ssr/index.js +16 -17
  229. package/dist/esm/trace-interaction/index.js +4 -5
  230. package/dist/esm/trace-pageload/index.js +4 -5
  231. package/dist/esm/trace-press/index.js +2 -3
  232. package/dist/esm/trace-redirect/index.js +2 -3
  233. package/dist/esm/trace-transition/index.js +2 -3
  234. package/dist/esm/trace-transition/utils/generate-span-id/index.js +2 -3
  235. package/dist/esm/trace-transition/utils/set-interaction-active-trace/index.js +2 -3
  236. package/dist/esm/vc/index.js +4 -16
  237. package/dist/esm/vc/vc-observer/attachAbortListeners.js +2 -3
  238. package/dist/esm/vc/vc-observer/getVCRevisionsData.js +21 -12
  239. package/dist/esm/vc/vc-observer/getViewport.js +4 -5
  240. package/dist/esm/vc/vc-observer/heatmap/heatmap.js +10 -20
  241. package/dist/esm/vc/vc-observer/index.js +119 -145
  242. package/dist/esm/vc/vc-observer/media-wrapper/vc-utils.js +2 -3
  243. package/dist/esm/vc/vc-observer/observers/editor-lnv/index.js +0 -17
  244. package/dist/esm/vc/vc-observer/observers/index.js +2 -29
  245. package/dist/esm/vc/vc-observer/observers/non-visual-styles/is-non-visual-style-mutation.js +2 -4
  246. package/dist/esm/vc/vc-observer/observers/ssr-placeholders/index.js +0 -16
  247. package/dist/esm/vc/vc-observer/revisions/fy25_01.js +0 -2
  248. package/dist/esm/vc/vc-observer/revisions/fy25_02.js +0 -2
  249. package/dist/esm/vc/vc-observer/revisions/revisions.js +2 -3
  250. package/dist/esm/vc/vc-observer-new/entries-timeline/index.js +0 -9
  251. package/dist/esm/vc/vc-observer-new/get-element-name.js +2 -3
  252. package/dist/esm/vc/vc-observer-new/get-unique-element-name.js +10 -11
  253. package/dist/esm/vc/vc-observer-new/index.js +0 -9
  254. package/dist/esm/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +0 -2
  255. package/dist/esm/vc/vc-observer-new/metric-calculator/fy25_03/index.js +1 -6
  256. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +9 -19
  257. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +24 -25
  258. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.js +6 -18
  259. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +13 -25
  260. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/index.js +7 -8
  261. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.js +39 -48
  262. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +7 -8
  263. package/dist/esm/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.js +2 -3
  264. package/dist/esm/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.js +2 -3
  265. package/dist/esm/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.js +2 -3
  266. package/dist/esm/vc/vc-observer-new/metric-calculator/utils/task-yield.js +7 -9
  267. package/dist/esm/vc/vc-observer-new/viewport-observer/index.js +7 -15
  268. package/dist/esm/vc/vc-observer-new/viewport-observer/intersection-observer/index.js +7 -8
  269. package/dist/esm/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +14 -15
  270. package/dist/esm/vc/vc-observer-new/viewport-observer/performance-observer/index.js +7 -9
  271. package/dist/esm/vc/vc-observer-new/window-event-observer/index.js +1 -7
  272. package/dist/types/additional-payload/utils/cache-hit-ratio/index.d.ts +2 -2
  273. package/dist/types/additional-payload/utils/lighthouse-metrics/cls/index.d.ts +1 -1
  274. package/dist/types/additional-payload/utils/lighthouse-metrics/index.d.ts +3 -3
  275. package/dist/types/additional-payload/utils/lighthouse-metrics/tbt/index.d.ts +1 -1
  276. package/dist/types/additional-payload/utils/lighthouse-metrics/utils/observer/index.d.ts +2 -2
  277. package/dist/types/assets/index.d.ts +1 -3
  278. package/dist/types/assets/utils.d.ts +4 -4
  279. package/dist/types/bundle-eval-timing/index.d.ts +2 -2
  280. package/dist/types/coinflip/index.d.ts +1 -1
  281. package/dist/types/common/common/types.d.ts +7 -0
  282. package/dist/types/common/react-ufo-payload-schema.d.ts +1 -0
  283. package/dist/types/config/index.d.ts +16 -14
  284. package/dist/types/create-experimental-interaction-metrics-payload/index.d.ts +4 -5
  285. package/dist/types/create-payload/common/utils/index.d.ts +8 -7
  286. package/dist/types/create-payload/index.d.ts +257 -97
  287. package/dist/types/create-payload/utils/get-interaction-status.d.ts +1 -1
  288. package/dist/types/create-payload/utils/get-page-visibility-up-to-ttai.d.ts +1 -1
  289. package/dist/types/create-payload/utils/get-react-ufo-payload-version.d.ts +1 -1
  290. package/dist/types/create-payload/utils/get-ssr-done-time-value.d.ts +1 -1
  291. package/dist/types/create-payload/utils/get-vc-metrics.d.ts +2 -2
  292. package/dist/types/create-post-interaction-log-payload/index.d.ts +1 -1
  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/experience-trace-id-context/index.d.ts +7 -7
  298. package/dist/types/experience-trace-id-context/utils/make-trace-http-request-headers/index.d.ts +1 -1
  299. package/dist/types/feature-flags-accessed/common/utils/index.d.ts +2 -2
  300. package/dist/types/feature-flags-accessed/index.d.ts +1 -1
  301. package/dist/types/generate-id/index.d.ts +1 -1
  302. package/dist/types/global-error-handler/index.d.ts +3 -3
  303. package/dist/types/initial-page-load-extra-timing/index.d.ts +2 -2
  304. package/dist/types/interaction-context/index.d.ts +1 -1
  305. package/dist/types/interaction-metrics/index.d.ts +46 -44
  306. package/dist/types/interaction-metrics/post-interaction-log.d.ts +0 -1
  307. package/dist/types/interaction-metrics-init/index.d.ts +1 -1
  308. package/dist/types/interaction-metrics-init/schedule-idle-callback.d.ts +1 -1
  309. package/dist/types/interactions-performance-observer/index.d.ts +2 -0
  310. package/dist/types/resource-timing/common/utils/config.d.ts +2 -2
  311. package/dist/types/resource-timing/common/utils/resource-timing-buffer.d.ts +5 -5
  312. package/dist/types/resource-timing/main.d.ts +1 -1
  313. package/dist/types/resource-timing/utils.d.ts +1 -1
  314. package/dist/types/round-number/index.d.ts +1 -1
  315. package/dist/types/route-name/index.d.ts +3 -3
  316. package/dist/types/segment/schedule-on-paint.d.ts +1 -1
  317. package/dist/types/set-interaction-error/index.d.ts +1 -1
  318. package/dist/types/short-id/index.d.ts +1 -1
  319. package/dist/types/ssr/index.d.ts +5 -5
  320. package/dist/types/trace-interaction/index.d.ts +1 -1
  321. package/dist/types/trace-pageload/index.d.ts +2 -2
  322. package/dist/types/trace-press/index.d.ts +1 -1
  323. package/dist/types/trace-redirect/index.d.ts +1 -1
  324. package/dist/types/trace-transition/index.d.ts +1 -1
  325. package/dist/types/trace-transition/utils/generate-span-id/index.d.ts +1 -1
  326. package/dist/types/trace-transition/utils/set-interaction-active-trace/index.d.ts +1 -1
  327. package/dist/types/vc/index.d.ts +2 -2
  328. package/dist/types/vc/vc-observer/attachAbortListeners.d.ts +2 -2
  329. package/dist/types/vc/vc-observer/getVCRevisionsData.d.ts +5 -5
  330. package/dist/types/vc/vc-observer/getViewport.d.ts +2 -2
  331. package/dist/types/vc/vc-observer/heatmap/heatmap.d.ts +1 -1
  332. package/dist/types/vc/vc-observer/index.d.ts +4 -4
  333. package/dist/types/vc/vc-observer/media-wrapper/vc-utils.d.ts +1 -1
  334. package/dist/types/vc/vc-observer/observers/non-visual-styles/is-non-visual-style-mutation.d.ts +4 -4
  335. package/dist/types/vc/vc-observer/revisions/revisions.d.ts +1 -1
  336. package/dist/types/vc/vc-observer-new/get-element-name.d.ts +1 -1
  337. package/dist/types/vc/vc-observer-new/get-unique-element-name.d.ts +1 -1
  338. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.d.ts +3 -2
  339. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.d.ts +2 -2
  340. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.d.ts +2 -2
  341. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/index.d.ts +1 -1
  342. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.d.ts +1 -1
  343. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.d.ts +2 -2
  344. package/dist/types/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.d.ts +1 -1
  345. package/dist/types/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.d.ts +1 -1
  346. package/dist/types/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.d.ts +1 -1
  347. package/dist/types/vc/vc-observer-new/metric-calculator/utils/task-yield.d.ts +1 -1
  348. package/dist/types/vc/vc-observer-new/viewport-observer/index.d.ts +1 -1
  349. package/dist/types/vc/vc-observer-new/viewport-observer/intersection-observer/index.d.ts +1 -1
  350. package/dist/types/vc/vc-observer-new/viewport-observer/mutation-observer/index.d.ts +1 -1
  351. package/dist/types/vc/vc-observer-new/viewport-observer/performance-observer/index.d.ts +2 -2
  352. package/dist/types-ts4.5/additional-payload/utils/cache-hit-ratio/index.d.ts +2 -2
  353. package/dist/types-ts4.5/additional-payload/utils/lighthouse-metrics/cls/index.d.ts +1 -1
  354. package/dist/types-ts4.5/additional-payload/utils/lighthouse-metrics/index.d.ts +3 -3
  355. package/dist/types-ts4.5/additional-payload/utils/lighthouse-metrics/tbt/index.d.ts +1 -1
  356. package/dist/types-ts4.5/additional-payload/utils/lighthouse-metrics/utils/observer/index.d.ts +2 -2
  357. package/dist/types-ts4.5/assets/index.d.ts +1 -3
  358. package/dist/types-ts4.5/assets/utils.d.ts +4 -4
  359. package/dist/types-ts4.5/bundle-eval-timing/index.d.ts +2 -2
  360. package/dist/types-ts4.5/coinflip/index.d.ts +1 -1
  361. package/dist/types-ts4.5/common/common/types.d.ts +7 -0
  362. package/dist/types-ts4.5/common/react-ufo-payload-schema.d.ts +1 -0
  363. package/dist/types-ts4.5/config/index.d.ts +20 -14
  364. package/dist/types-ts4.5/create-experimental-interaction-metrics-payload/index.d.ts +4 -5
  365. package/dist/types-ts4.5/create-payload/common/utils/index.d.ts +8 -7
  366. package/dist/types-ts4.5/create-payload/index.d.ts +257 -97
  367. package/dist/types-ts4.5/create-payload/utils/get-interaction-status.d.ts +1 -1
  368. package/dist/types-ts4.5/create-payload/utils/get-page-visibility-up-to-ttai.d.ts +1 -1
  369. package/dist/types-ts4.5/create-payload/utils/get-react-ufo-payload-version.d.ts +1 -1
  370. package/dist/types-ts4.5/create-payload/utils/get-ssr-done-time-value.d.ts +1 -1
  371. package/dist/types-ts4.5/create-payload/utils/get-vc-metrics.d.ts +2 -2
  372. package/dist/types-ts4.5/create-post-interaction-log-payload/index.d.ts +1 -1
  373. package/dist/types-ts4.5/custom-data/index.d.ts +1 -1
  374. package/dist/types-ts4.5/custom-mark/index.d.ts +1 -1
  375. package/dist/types-ts4.5/custom-spans/index.d.ts +1 -1
  376. package/dist/types-ts4.5/custom-timings/index.d.ts +2 -2
  377. package/dist/types-ts4.5/experience-trace-id-context/index.d.ts +7 -7
  378. package/dist/types-ts4.5/experience-trace-id-context/utils/make-trace-http-request-headers/index.d.ts +1 -1
  379. package/dist/types-ts4.5/feature-flags-accessed/common/utils/index.d.ts +2 -2
  380. package/dist/types-ts4.5/feature-flags-accessed/index.d.ts +1 -1
  381. package/dist/types-ts4.5/generate-id/index.d.ts +1 -1
  382. package/dist/types-ts4.5/global-error-handler/index.d.ts +3 -3
  383. package/dist/types-ts4.5/initial-page-load-extra-timing/index.d.ts +2 -2
  384. package/dist/types-ts4.5/interaction-context/index.d.ts +1 -1
  385. package/dist/types-ts4.5/interaction-metrics/index.d.ts +46 -44
  386. package/dist/types-ts4.5/interaction-metrics/post-interaction-log.d.ts +0 -1
  387. package/dist/types-ts4.5/interaction-metrics-init/index.d.ts +1 -1
  388. package/dist/types-ts4.5/interaction-metrics-init/schedule-idle-callback.d.ts +1 -1
  389. package/dist/types-ts4.5/interactions-performance-observer/index.d.ts +2 -0
  390. package/dist/types-ts4.5/resource-timing/common/utils/config.d.ts +2 -2
  391. package/dist/types-ts4.5/resource-timing/common/utils/resource-timing-buffer.d.ts +5 -5
  392. package/dist/types-ts4.5/resource-timing/main.d.ts +1 -1
  393. package/dist/types-ts4.5/resource-timing/utils.d.ts +1 -1
  394. package/dist/types-ts4.5/round-number/index.d.ts +1 -1
  395. package/dist/types-ts4.5/route-name/index.d.ts +3 -3
  396. package/dist/types-ts4.5/segment/schedule-on-paint.d.ts +1 -1
  397. package/dist/types-ts4.5/set-interaction-error/index.d.ts +1 -1
  398. package/dist/types-ts4.5/short-id/index.d.ts +1 -1
  399. package/dist/types-ts4.5/ssr/index.d.ts +5 -5
  400. package/dist/types-ts4.5/trace-interaction/index.d.ts +1 -1
  401. package/dist/types-ts4.5/trace-pageload/index.d.ts +2 -2
  402. package/dist/types-ts4.5/trace-press/index.d.ts +1 -1
  403. package/dist/types-ts4.5/trace-redirect/index.d.ts +1 -1
  404. package/dist/types-ts4.5/trace-transition/index.d.ts +1 -1
  405. package/dist/types-ts4.5/trace-transition/utils/generate-span-id/index.d.ts +1 -1
  406. package/dist/types-ts4.5/trace-transition/utils/set-interaction-active-trace/index.d.ts +1 -1
  407. package/dist/types-ts4.5/vc/index.d.ts +2 -2
  408. package/dist/types-ts4.5/vc/vc-observer/attachAbortListeners.d.ts +2 -2
  409. package/dist/types-ts4.5/vc/vc-observer/getVCRevisionsData.d.ts +5 -5
  410. package/dist/types-ts4.5/vc/vc-observer/getViewport.d.ts +2 -2
  411. package/dist/types-ts4.5/vc/vc-observer/heatmap/heatmap.d.ts +1 -1
  412. package/dist/types-ts4.5/vc/vc-observer/index.d.ts +4 -4
  413. package/dist/types-ts4.5/vc/vc-observer/media-wrapper/vc-utils.d.ts +1 -1
  414. package/dist/types-ts4.5/vc/vc-observer/observers/non-visual-styles/is-non-visual-style-mutation.d.ts +4 -4
  415. package/dist/types-ts4.5/vc/vc-observer/revisions/revisions.d.ts +1 -1
  416. package/dist/types-ts4.5/vc/vc-observer-new/get-element-name.d.ts +1 -1
  417. package/dist/types-ts4.5/vc/vc-observer-new/get-unique-element-name.d.ts +1 -1
  418. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.d.ts +3 -2
  419. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.d.ts +2 -2
  420. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.d.ts +2 -2
  421. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/index.d.ts +1 -1
  422. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.d.ts +1 -1
  423. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.d.ts +2 -2
  424. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.d.ts +1 -1
  425. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.d.ts +1 -1
  426. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.d.ts +1 -1
  427. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/utils/task-yield.d.ts +1 -1
  428. package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/index.d.ts +1 -1
  429. package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/intersection-observer/index.d.ts +1 -1
  430. package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/mutation-observer/index.d.ts +1 -1
  431. package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/performance-observer/index.d.ts +2 -2
  432. package/package.json +8 -5
  433. package/dist/cjs/self-measurements/index.js +0 -261
  434. package/dist/es2019/self-measurements/index.js +0 -213
  435. package/dist/esm/self-measurements/index.js +0 -246
  436. package/dist/types/self-measurements/index.d.ts +0 -57
  437. package/dist/types-ts4.5/self-measurements/index.d.ts +0 -57
@@ -5,7 +5,6 @@ import { experimentalVC, getExperimentalVCMetrics, onExperimentalInteractionComp
5
5
  import { clearActiveTrace } from '../experience-trace-id-context';
6
6
  import { allFeatureFlagsAccessed, currentFeatureFlagsAccessed } from '../feature-flags-accessed';
7
7
  import { getInteractionId } from '../interaction-id-context';
8
- import { withProfiling } from '../self-measurements';
9
8
  import { getVCObserver } from '../vc';
10
9
  import { interactions } from './common/constants';
11
10
  import PostInteractionLog from './post-interaction-log';
@@ -19,18 +18,48 @@ const segmentCache = new Map();
19
18
  const CLEANUP_TIMEOUT = 60 * 1000;
20
19
  const CLEANUP_TIMEOUT_AFTER_APDEX = 15 * 1000;
21
20
  const segmentObservers = [];
22
- export const getActiveInteraction = withProfiling(function getActiveInteraction() {
21
+ export function getActiveInteraction() {
23
22
  const interactionId = getInteractionId();
24
23
  if (!interactionId.current) {
25
24
  return;
26
25
  }
27
26
  return interactions.get(interactionId.current);
28
- });
29
- const isPerformanceTracingEnabled = withProfiling(function isPerformanceTracingEnabled() {
27
+ }
28
+ function isPerformanceTracingEnabled() {
30
29
  var _getConfig;
31
30
  return ((_getConfig = getConfig()) === null || _getConfig === void 0 ? void 0 : _getConfig.enableAdditionalPerformanceMarks) || window.__REACT_UFO_ENABLE_PERF_TRACING || process.env.NODE_ENV !== 'production';
32
- });
33
- const labelStackToString = withProfiling(function labelStackToString(labelStack, name) {
31
+ }
32
+ let performanceEventObserver;
33
+ export const getPerformanceObserver = () => {
34
+ performanceEventObserver = performanceEventObserver || new PerformanceObserver(entries => {
35
+ const list = entries.getEntries();
36
+ for (let entry of list) {
37
+ if (entry.name === 'click') {
38
+ setInteractionPerformanceEvent(entry);
39
+ }
40
+ }
41
+ });
42
+ return performanceEventObserver;
43
+ };
44
+ export const setInteractionPerformanceEvent = entry => {
45
+ const interaction = getActiveInteraction();
46
+ if ((interaction === null || interaction === void 0 ? void 0 : interaction.type) === 'press') {
47
+ const responsiveness = interaction.responsiveness || {};
48
+ // if happens there is another event interaction that has started after
49
+ // the initial one, we don't want to replace the values if they have already
50
+ // been set up
51
+ responsiveness.experimentalInputToNextPaint = responsiveness.experimentalInputToNextPaint || entry.duration;
52
+ responsiveness.inputDelay = responsiveness.experimentalInputToNextPaint || entry.processingStart - entry.startTime;
53
+ interaction.responsiveness = responsiveness;
54
+ // if the entry start time is lower than the one in the interaction
55
+ // it means the interaction start time is not accurate, we assign
56
+ // this value which will match the timestamp in the event
57
+ if (entry.startTime < interaction.start) {
58
+ interaction.start = entry.startTime;
59
+ }
60
+ }
61
+ };
62
+ function labelStackToString(labelStack, name) {
34
63
  var _stack$map;
35
64
  const stack = [...(labelStack !== null && labelStack !== void 0 ? labelStack : [])];
36
65
  if (name) {
@@ -39,43 +68,43 @@ const labelStackToString = withProfiling(function labelStackToString(labelStack,
39
68
  });
40
69
  }
41
70
  return (_stack$map = stack.map(l => l.name)) === null || _stack$map === void 0 ? void 0 : _stack$map.join('/');
42
- });
43
- const labelStackToIdString = withProfiling(function labelStackToIdString(labelStack) {
71
+ }
72
+ function labelStackToIdString(labelStack) {
44
73
  var _labelStack$map;
45
74
  return labelStack === null || labelStack === void 0 ? void 0 : (_labelStack$map = labelStack.map(l => 'segmentId' in l ? `${l.name}:${l.segmentId}` : `${l.name}`)) === null || _labelStack$map === void 0 ? void 0 : _labelStack$map.join('/');
46
- });
47
- const addSegmentObserver = withProfiling(function addSegmentObserver(observer) {
75
+ }
76
+ function addSegmentObserver(observer) {
48
77
  segmentObservers.push(observer);
49
78
  for (const segmentInfo of segmentCache.values()) {
50
79
  observer.onAdd(segmentInfo);
51
80
  }
52
- });
53
- const removeSegmentObserver = withProfiling(function removeSegmentObserver(observer) {
81
+ }
82
+ function removeSegmentObserver(observer) {
54
83
  const index = segmentObservers.findIndex(obs => obs === observer);
55
84
  if (index !== -1) {
56
85
  segmentObservers.splice(index, 1);
57
86
  }
58
- });
59
- export const remove = withProfiling(function remove(interactionId) {
87
+ }
88
+ export function remove(interactionId) {
60
89
  interactions.delete(interactionId);
61
- });
62
- export const updatePageLoadInteractionName = withProfiling(function updatePageLoadInteractionName(ufoName, routeName = ufoName) {
90
+ }
91
+ export function updatePageLoadInteractionName(ufoName, routeName = ufoName) {
63
92
  const interaction = getActiveInteraction();
64
93
  if (!interaction || interaction.type !== 'page_load' && interaction.type !== 'transition') {
65
94
  return;
66
95
  }
67
96
  interaction.ufoName = ufoName;
68
97
  interaction.routeName = routeName;
69
- });
70
- export const addMetadata = withProfiling(function addMetadata(interactionId, data) {
98
+ }
99
+ export function addMetadata(interactionId, data) {
71
100
  const interaction = interactions.get(interactionId);
72
101
  if (interaction != null) {
73
102
  Object.keys(data).forEach(key => {
74
103
  interaction.metaData[key] = data[key];
75
104
  });
76
105
  }
77
- });
78
- export const addCustomData = withProfiling(function addCustomData(interactionId, labelStack, data) {
106
+ }
107
+ export function addCustomData(interactionId, labelStack, data) {
79
108
  const interaction = interactions.get(interactionId);
80
109
  if (interaction != null) {
81
110
  Object.keys(data).forEach(i => {
@@ -87,8 +116,8 @@ export const addCustomData = withProfiling(function addCustomData(interactionId,
87
116
  });
88
117
  });
89
118
  }
90
- });
91
- export const addCustomTiming = withProfiling(function addCustomTiming(interactionId, labelStack, data) {
119
+ }
120
+ export function addCustomTiming(interactionId, labelStack, data) {
92
121
  const interaction = interactions.get(interactionId);
93
122
  if (interaction != null) {
94
123
  interaction.customTimings.push({
@@ -113,8 +142,8 @@ export const addCustomTiming = withProfiling(function addCustomTiming(interactio
113
142
  }
114
143
  }
115
144
  }
116
- });
117
- export const addMark = withProfiling(function addMark(interactionId, type, name, labelStack, time = performance.now()) {
145
+ }
146
+ export function addMark(interactionId, type, name, labelStack, time = performance.now()) {
118
147
  const interaction = interactions.get(interactionId);
119
148
  if (interaction != null) {
120
149
  interaction.marks.push({
@@ -129,8 +158,8 @@ export const addMark = withProfiling(function addMark(interactionId, type, name,
129
158
  startTime: time
130
159
  });
131
160
  }
132
- });
133
- export const addMarkToAll = withProfiling(function addMarkToAll(type, name, labelStack, time = performance.now()) {
161
+ }
162
+ export function addMarkToAll(type, name, labelStack, time = performance.now()) {
134
163
  interactions.forEach(interaction => {
135
164
  interaction.marks.push({
136
165
  type,
@@ -144,8 +173,8 @@ export const addMarkToAll = withProfiling(function addMarkToAll(type, name, labe
144
173
  startTime: time
145
174
  });
146
175
  }
147
- });
148
- export const addSpan = withProfiling(function addSpan(interactionId, type, name, labelStack, start, end = performance.now(), size) {
176
+ }
177
+ export function addSpan(interactionId, type, name, labelStack, start, end = performance.now(), size) {
149
178
  const interaction = interactions.get(interactionId);
150
179
  if (interaction != null) {
151
180
  interaction.spans.push({
@@ -168,8 +197,8 @@ export const addSpan = withProfiling(function addSpan(interactionId, type, name,
168
197
  }
169
198
  }
170
199
  }
171
- });
172
- export const addSpanToAll = withProfiling(function addSpanToAll(type, name, labelStack, start, end = performance.now(), size = 0) {
200
+ }
201
+ export function addSpanToAll(type, name, labelStack, start, end = performance.now(), size = 0) {
173
202
  interactions.forEach(interaction => {
174
203
  interaction.spans.push({
175
204
  type,
@@ -191,36 +220,36 @@ export const addSpanToAll = withProfiling(function addSpanToAll(type, name, labe
191
220
  // do nothing
192
221
  }
193
222
  }
194
- });
195
- export const addPreload = withProfiling(function addPreload(moduleId, timestamp) {
223
+ }
224
+ export function addPreload(moduleId, timestamp) {
196
225
  addMarkToAll('bundle_preload', moduleId, null, timestamp);
197
- });
198
- export const addLoad = withProfiling(function addLoad(identifier, start, end) {
226
+ }
227
+ export function addLoad(identifier, start, end) {
199
228
  addSpanToAll('bundle_load', identifier, null, start, end - start);
200
- });
229
+ }
201
230
  const moduleLoadingRequests = {};
202
- export const extractModuleName = withProfiling(function extractModuleName(input) {
231
+ export function extractModuleName(input) {
203
232
  let result = input !== null && input !== void 0 ? input : '';
204
233
  result = result.replace(/^\.\/src\/packages\//, '');
205
234
  result = result.replace(/^\.\/node_modules\//, '');
206
235
  result = result.replace(/(\/src)?\/(index|main)\.(tsx|ts|js|jsx)$/, '');
207
236
  return result;
208
- });
209
- const addHoldCriterion = withProfiling(function addHoldCriterion(id, labelStack, name, startTime) {
237
+ }
238
+ function addHoldCriterion(id, labelStack, name, startTime) {
210
239
  var _window$__CRITERION__;
211
240
  if (!((_window$__CRITERION__ = window.__CRITERION__) !== null && _window$__CRITERION__ !== void 0 && _window$__CRITERION__.addUFOHold)) {
212
241
  return;
213
242
  }
214
243
  window.__CRITERION__.addUFOHold(id, labelStackToString(labelStack), name, startTime);
215
- });
216
- const removeHoldCriterion = withProfiling(function removeHoldCriterion(id) {
244
+ }
245
+ function removeHoldCriterion(id) {
217
246
  var _window$__CRITERION__2;
218
247
  if (!((_window$__CRITERION__2 = window.__CRITERION__) !== null && _window$__CRITERION__2 !== void 0 && _window$__CRITERION__2.removeUFOHold)) {
219
248
  return;
220
249
  }
221
250
  window.__CRITERION__.removeUFOHold(id);
222
- });
223
- export const addHold = withProfiling(function addHold(interactionId, labelStack, name, experimental) {
251
+ }
252
+ export function addHold(interactionId, labelStack, name, experimental) {
224
253
  const interaction = interactions.get(interactionId);
225
254
  const id = createUUID();
226
255
  if (interaction != null) {
@@ -280,8 +309,8 @@ export const addHold = withProfiling(function addHold(interactionId, labelStack,
280
309
  };
281
310
  }
282
311
  return () => {};
283
- });
284
- export const addHoldByID = withProfiling(function addHoldByID(interactionId, labelStack, name, id, ignoreOnSubmit) {
312
+ }
313
+ export function addHoldByID(interactionId, labelStack, name, id, ignoreOnSubmit) {
285
314
  const interaction = interactions.get(interactionId);
286
315
  if (interaction != null) {
287
316
  const start = performance.now();
@@ -294,8 +323,8 @@ export const addHoldByID = withProfiling(function addHoldByID(interactionId, lab
294
323
  addHoldCriterion(id, labelStack, name, start);
295
324
  }
296
325
  return () => {};
297
- });
298
- export const removeHoldByID = withProfiling(function removeHoldByID(interactionId, id) {
326
+ }
327
+ export function removeHoldByID(interactionId, id) {
299
328
  const interaction = interactions.get(interactionId);
300
329
  if (interaction != null) {
301
330
  const end = performance.now();
@@ -310,19 +339,19 @@ export const removeHoldByID = withProfiling(function removeHoldByID(interactionI
310
339
  removeHoldCriterion(id);
311
340
  }
312
341
  }
313
- });
314
- export const getCurrentInteractionType = withProfiling(function getCurrentInteractionType(interactionId) {
342
+ }
343
+ export function getCurrentInteractionType(interactionId) {
315
344
  const interaction = interactions.get(interactionId);
316
345
  if (interaction) {
317
346
  return interaction.type;
318
347
  }
319
348
  return null;
320
- });
349
+ }
321
350
  export const ModuleLoadingProfiler = {
322
- onPreload: withProfiling(function onPreload(moduleId, _priority) {
351
+ onPreload(moduleId, _priority) {
323
352
  addPreload(extractModuleName(moduleId), performance.now());
324
- }),
325
- onLoadStart: withProfiling(function onLoadStart(info) {
353
+ },
354
+ onLoadStart(info) {
326
355
  const timeoutId = setTimeout(() => {
327
356
  delete moduleLoadingRequests[info.identifier];
328
357
  }, 30000);
@@ -331,29 +360,29 @@ export const ModuleLoadingProfiler = {
331
360
  timeoutId
332
361
  };
333
362
  moduleLoadingRequests[info.identifier] = request;
334
- }),
335
- onLoadComplete: withProfiling(function onLoadComplete(info) {
363
+ },
364
+ onLoadComplete(info) {
336
365
  const request = moduleLoadingRequests[info.identifier];
337
366
  if (request) {
338
367
  clearTimeout(request.timeoutId);
339
368
  delete moduleLoadingRequests[info.identifier];
340
369
  addLoad(extractModuleName(info.identifier), request.start, performance.now());
341
370
  }
342
- }),
343
- placeholderFallBackMounted: withProfiling(function placeholderFallBackMounted(id, moduleId) {
371
+ },
372
+ placeholderFallBackMounted(id, moduleId) {
344
373
  const interactionId = getInteractionId();
345
374
  const currentInteractionId = interactionId.current;
346
375
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
347
376
  addHoldByID(currentInteractionId, [], moduleId, id);
348
- }),
349
- placeholderFallBackUnmounted: withProfiling(function placeholderFallBackUnmounted(id) {
377
+ },
378
+ placeholderFallBackUnmounted(id) {
350
379
  const interactionId = getInteractionId();
351
380
  const currentInteractionId = interactionId.current;
352
381
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
353
382
  removeHoldByID(currentInteractionId, id);
354
- })
383
+ }
355
384
  };
356
- export const addError = withProfiling(function addError(interactionId, name, labelStack, errorType, errorMessage, errorStack, forcedError) {
385
+ export function addError(interactionId, name, labelStack, errorType, errorMessage, errorStack, forcedError) {
357
386
  const interaction = interactions.get(interactionId);
358
387
  if (interaction != null) {
359
388
  interaction.errors.push({
@@ -365,8 +394,8 @@ export const addError = withProfiling(function addError(interactionId, name, lab
365
394
  forcedError
366
395
  });
367
396
  }
368
- });
369
- export const addErrorToAll = withProfiling(function addErrorToAll(name, labelStack, errorType, errorMessage, errorStack) {
397
+ }
398
+ export function addErrorToAll(name, labelStack, errorType, errorMessage, errorStack) {
370
399
  interactions.forEach(interaction => {
371
400
  interaction.errors.push({
372
401
  name,
@@ -376,8 +405,8 @@ export const addErrorToAll = withProfiling(function addErrorToAll(name, labelSta
376
405
  errorStack
377
406
  });
378
407
  });
379
- });
380
- export const addProfilerTimings = withProfiling(function addProfilerTimings(interactionId, labelStack, type, actualDuration, baseDuration, startTime, commitTime) {
408
+ }
409
+ export function addProfilerTimings(interactionId, labelStack, type, actualDuration, baseDuration, startTime, commitTime) {
381
410
  var _getConfig3, _getConfig3$postInter;
382
411
  if (isPerformanceTracingEnabled()) {
383
412
  try {
@@ -403,20 +432,20 @@ export const addProfilerTimings = withProfiling(function addProfilerTimings(inte
403
432
  } else if ((_getConfig3 = getConfig()) !== null && _getConfig3 !== void 0 && (_getConfig3$postInter = _getConfig3.postInteractionLog) !== null && _getConfig3$postInter !== void 0 && _getConfig3$postInter.enabled) {
404
433
  postInteractionLog.addProfilerTimings(labelStack, type, actualDuration, baseDuration, startTime, commitTime);
405
434
  }
406
- });
407
- const pushToQueue = withProfiling(function pushToQueue(id, data) {
435
+ }
436
+ function pushToQueue(id, data) {
408
437
  interactionQueue.push({
409
438
  id,
410
439
  data
411
440
  });
412
- });
441
+ }
413
442
  let handleInteraction = pushToQueue;
414
- const callCleanUpCallbacks = withProfiling(function callCleanUpCallbacks(interaction) {
443
+ function callCleanUpCallbacks(interaction) {
415
444
  interaction.cleanupCallbacks.reverse().forEach(cleanUpCallback => {
416
445
  cleanUpCallback();
417
446
  });
418
- });
419
- const finishInteraction = withProfiling(function finishInteraction(id, data, endTime = performance.now()) {
447
+ }
448
+ function finishInteraction(id, data, endTime = performance.now()) {
420
449
  var _getConfig4, _getConfig4$vc, _getConfig5, _getConfig5$experimen;
421
450
  data.end = endTime;
422
451
  try {
@@ -482,8 +511,8 @@ const finishInteraction = withProfiling(function finishInteraction(id, data, end
482
511
  } catch (error) {
483
512
  // do nothing
484
513
  }
485
- });
486
- export const sinkInteractionHandler = withProfiling(function sinkInteractionHandler(sinkFn) {
514
+ }
515
+ export function sinkInteractionHandler(sinkFn) {
487
516
  if (handleInteraction === pushToQueue) {
488
517
  handleInteraction = sinkFn;
489
518
  interactionQueue.forEach(interaction => {
@@ -491,14 +520,14 @@ export const sinkInteractionHandler = withProfiling(function sinkInteractionHand
491
520
  });
492
521
  interactionQueue.length = 0;
493
522
  }
494
- });
495
- export const sinkPostInteractionLogHandler = withProfiling(function sinkPostInteractionLogHandler(sinkFn) {
523
+ }
524
+ export function sinkPostInteractionLogHandler(sinkFn) {
496
525
  postInteractionLog.sinkHandler(sinkFn);
497
- });
526
+ }
498
527
 
499
528
  // a flag to prevent multiple submitting
500
529
  let activeSubmitted = false;
501
- export const tryComplete = withProfiling(function tryComplete(interactionId, endTime) {
530
+ export function tryComplete(interactionId, endTime) {
502
531
  const interaction = interactions.get(interactionId);
503
532
  if (interaction != null) {
504
533
  const noMoreActiveHolds = interaction.holdActive.size === 0;
@@ -543,13 +572,13 @@ export const tryComplete = withProfiling(function tryComplete(interactionId, end
543
572
  }
544
573
  }
545
574
  }
546
- });
547
- const callCancelCallbacks = withProfiling(function callCancelCallbacks(interaction) {
575
+ }
576
+ function callCancelCallbacks(interaction) {
548
577
  interaction.cancelCallbacks.reverse().forEach(cancelCallback => {
549
578
  cancelCallback();
550
579
  });
551
- });
552
- export const abort = withProfiling(function abort(interactionId, abortReason) {
580
+ }
581
+ export function abort(interactionId, abortReason) {
553
582
  const interaction = interactions.get(interactionId);
554
583
  if (interaction != null) {
555
584
  var _getConfig10, _getConfig10$experime;
@@ -561,8 +590,8 @@ export const abort = withProfiling(function abort(interactionId, abortReason) {
561
590
  remove(interactionId);
562
591
  }
563
592
  }
564
- });
565
- export const abortByNewInteraction = withProfiling(function abortByNewInteraction(interactionId, interactionName) {
593
+ }
594
+ export function abortByNewInteraction(interactionId, interactionName) {
566
595
  const interaction = interactions.get(interactionId);
567
596
  if (interaction != null) {
568
597
  var _getConfig11, _getConfig11$experime;
@@ -575,8 +604,8 @@ export const abortByNewInteraction = withProfiling(function abortByNewInteractio
575
604
  remove(interactionId);
576
605
  }
577
606
  }
578
- });
579
- export const abortAll = withProfiling(function abortAll(abortReason, abortedByInteractionName) {
607
+ }
608
+ export function abortAll(abortReason, abortedByInteractionName) {
580
609
  interactions.forEach((interaction, interactionId) => {
581
610
  var _getConfig12, _getConfig12$experime;
582
611
  const noMoreHolds = interaction.holdActive.size === 0;
@@ -593,12 +622,12 @@ export const abortAll = withProfiling(function abortAll(abortReason, abortedByIn
593
622
  remove(interactionId);
594
623
  }
595
624
  });
596
- });
597
- export const addOnCancelCallback = withProfiling(function addOnCancelCallback(id, cancelCallback) {
625
+ }
626
+ export function addOnCancelCallback(id, cancelCallback) {
598
627
  const interaction = interactions.get(id);
599
628
  interaction === null || interaction === void 0 ? void 0 : interaction.cancelCallbacks.push(cancelCallback);
600
- });
601
- export const addNewInteraction = withProfiling(function addNewInteraction(interactionId, ufoName, type, startTime, rate, labelStack, routeName, trace = null) {
629
+ }
630
+ export function addNewInteraction(interactionId, ufoName, type, startTime, rate, labelStack, routeName, trace = null) {
602
631
  var _getConfig13, _getConfig13$postInte;
603
632
  if ((_getConfig13 = getConfig()) !== null && _getConfig13 !== void 0 && (_getConfig13$postInte = _getConfig13.postInteractionLog) !== null && _getConfig13$postInte !== void 0 && _getConfig13$postInte.enabled) {
604
633
  postInteractionLog.reset();
@@ -701,8 +730,8 @@ export const addNewInteraction = withProfiling(function addNewInteraction(intera
701
730
  });
702
731
  }
703
732
  }
704
- });
705
- export const addBrowserMetricEvent = withProfiling(function addBrowserMetricEvent(event) {
733
+ }
734
+ export function addBrowserMetricEvent(event) {
706
735
  const interaction = getActiveInteraction();
707
736
  if (interaction) {
708
737
  var _event$config;
@@ -713,8 +742,8 @@ export const addBrowserMetricEvent = withProfiling(function addBrowserMetricEven
713
742
  removeHoldByID(interaction.id, interaction.ufoName);
714
743
  }
715
744
  }
716
- });
717
- export const addApdexToAll = withProfiling(function addApdexToAll(apdex) {
745
+ }
746
+ export function addApdexToAll(apdex) {
718
747
  interactions.forEach((interaction, key) => {
719
748
  interaction.apdex.push(apdex);
720
749
  try {
@@ -732,8 +761,8 @@ export const addApdexToAll = withProfiling(function addApdexToAll(apdex) {
732
761
  removeHoldByID(key, interaction.ufoName);
733
762
  }
734
763
  });
735
- });
736
- export const addApdex = withProfiling(function addApdex(interactionId, apdexInfo) {
764
+ }
765
+ export function addApdex(interactionId, apdexInfo) {
737
766
  const interaction = interactions.get(interactionId);
738
767
  if (interaction != null) {
739
768
  interaction.apdex.push(apdexInfo);
@@ -752,8 +781,8 @@ export const addApdex = withProfiling(function addApdex(interactionId, apdexInfo
752
781
  removeHoldByID(interactionId, interaction.ufoName);
753
782
  }
754
783
  }
755
- });
756
- export const addRequestInfo = withProfiling(function addRequestInfo(interactionId, labelStack, requestInfo) {
784
+ }
785
+ export function addRequestInfo(interactionId, labelStack, requestInfo) {
757
786
  const interaction = interactions.get(interactionId);
758
787
  if (interaction != null) {
759
788
  interaction.requestInfo.push({
@@ -761,19 +790,19 @@ export const addRequestInfo = withProfiling(function addRequestInfo(interactionI
761
790
  ...requestInfo
762
791
  });
763
792
  }
764
- });
765
- const isSegmentLabel = withProfiling(function isSegmentLabel(obj) {
793
+ }
794
+ function isSegmentLabel(obj) {
766
795
  return obj && typeof obj.name === 'string' && typeof obj.segmentId === 'string';
767
- });
768
- const getSegmentCacheKey = withProfiling(function getSegmentCacheKey(labelStack) {
796
+ }
797
+ function getSegmentCacheKey(labelStack) {
769
798
  return labelStack.map(l => {
770
799
  if (isSegmentLabel(l)) {
771
800
  return `${l.name}_${l.segmentId}`;
772
801
  }
773
802
  return l.name;
774
803
  }).join('|');
775
- });
776
- export const addSegment = withProfiling(function addSegment(labelStack) {
804
+ }
805
+ export function addSegment(labelStack) {
777
806
  const key = getSegmentCacheKey(labelStack);
778
807
  const existingSegment = segmentCache.get(key);
779
808
  if (!existingSegment) {
@@ -785,8 +814,8 @@ export const addSegment = withProfiling(function addSegment(labelStack) {
785
814
  observer.onAdd(segmentInfo);
786
815
  });
787
816
  }
788
- });
789
- export const removeSegment = withProfiling(function removeSegment(labelStack) {
817
+ }
818
+ export function removeSegment(labelStack) {
790
819
  const key = getSegmentCacheKey(labelStack);
791
820
  const segmentInfo = segmentCache.get(key);
792
821
  if (segmentInfo) {
@@ -795,8 +824,8 @@ export const removeSegment = withProfiling(function removeSegment(labelStack) {
795
824
  observer.onRemove(segmentInfo);
796
825
  });
797
826
  }
798
- });
799
- export const addRedirect = withProfiling(function addRedirect(interactionId, fromUfoName, nextUfoName, nextRouteName, time) {
827
+ }
828
+ export function addRedirect(interactionId, fromUfoName, nextUfoName, nextRouteName, time) {
800
829
  const interaction = interactions.get(interactionId);
801
830
  if (interaction != null) {
802
831
  interaction.ufoName = nextUfoName;
@@ -819,12 +848,12 @@ export const addRedirect = withProfiling(function addRedirect(interactionId, fro
819
848
  }
820
849
  }
821
850
  }
822
- });
851
+ }
823
852
  export const interactionSpans = [];
824
853
  const defaultLabelStack = [{
825
854
  name: 'custom'
826
855
  }];
827
- export const addCustomSpans = withProfiling(function addCustomSpans(name, start, end = performance.now(), size = 0, labelStack = defaultLabelStack) {
856
+ export function addCustomSpans(name, start, end = performance.now(), size = 0, labelStack = defaultLabelStack) {
828
857
  const customSpan = {
829
858
  type: 'custom',
830
859
  name,
@@ -834,4 +863,4 @@ export const addCustomSpans = withProfiling(function addCustomSpans(name, start,
834
863
  size
835
864
  };
836
865
  interactionSpans.push(customSpan);
837
- });
866
+ }
@@ -1,6 +1,5 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import { getConfig } from '../config';
3
- import { withProfiling } from '../self-measurements';
4
3
  import { VCObserver } from '../vc/vc-observer';
5
4
  const POST_INTERACTION_LOG_SEND_DEFAULT_TIMEOUT = 3000;
6
5
  export default class PostInteractionLog {
@@ -26,15 +25,6 @@ export default class PostInteractionLog {
26
25
  * Handler function to process / send the observation data
27
26
  */
28
27
  _defineProperty(this, "sinkHandlerFn", () => {});
29
- this.initializeVCObserver = withProfiling(this.initializeVCObserver.bind(this));
30
- this.startVCObserver = withProfiling(this.startVCObserver.bind(this));
31
- this.setVCObserverSSRConfig = withProfiling(this.setVCObserverSSRConfig.bind(this));
32
- this.setLastInteractionFinishVCResult = withProfiling(this.setLastInteractionFinishVCResult.bind(this));
33
- this.reset = withProfiling(this.reset.bind(this));
34
- this.hasData = withProfiling(this.hasData.bind(this));
35
- this.sendPostInteractionLog = withProfiling(this.sendPostInteractionLog.bind(this));
36
- this.onInteractionComplete = withProfiling(this.onInteractionComplete.bind(this));
37
- this.addProfilerTimings = withProfiling(this.addProfilerTimings.bind(this));
38
28
  }
39
29
  initializeVCObserver(options) {
40
30
  if (this.vcObserver === null) {
@@ -4,13 +4,13 @@ import { setUFOConfig } from '../config';
4
4
  import { experimentalVC, sinkExperimentalHandler } from '../create-experimental-interaction-metrics-payload';
5
5
  import { setupHiddenTimingCapture } from '../hidden-timing';
6
6
  import { postInteractionLog, sinkInteractionHandler, sinkPostInteractionLogHandler } from '../interaction-metrics';
7
- import { withProfiling } from '../self-measurements';
7
+ import { getPerformanceObserver } from '../interactions-performance-observer';
8
8
  import { getVCObserver } from '../vc';
9
9
  import scheduleIdleCallback from './schedule-idle-callback';
10
10
  let initialized = false;
11
- const sinkInteraction = withProfiling(function sinkInteraction(instance, payloadPackage) {
12
- const sinkFn = withProfiling(function sinkFn(interactionId, interaction) {
13
- const onIdle = withProfiling(function onIdle() {
11
+ function sinkInteraction(instance, payloadPackage) {
12
+ function sinkFn(interactionId, interaction) {
13
+ function onIdle() {
14
14
  payloadPackage.createPayloads(interactionId, interaction).then(payloads => {
15
15
  // NOTE: This API is used by the UFO DevTool Chrome Extension and Criterion
16
16
  const devToolObserver = globalThis.__ufo_devtool_onUfoPayload;
@@ -23,14 +23,14 @@ const sinkInteraction = withProfiling(function sinkInteraction(instance, payload
23
23
  }).catch(error => {
24
24
  throw error;
25
25
  });
26
- });
26
+ }
27
27
  scheduleIdleCallback(onIdle);
28
- });
28
+ }
29
29
  sinkInteractionHandler(sinkFn);
30
- });
31
- const sinkExperimentalInteractionMetrics = withProfiling(function sinkExperimentalInteractionMetrics(instance, payloadPackage) {
32
- const experimentalMetricsSinkFn = withProfiling(function experimentalMetricsSinkFn(interactionId, interaction) {
33
- const experimentalMetricsOnIdle = withProfiling(function experimentalMetricsOnIdle() {
30
+ }
31
+ function sinkExperimentalInteractionMetrics(instance, payloadPackage) {
32
+ function experimentalMetricsSinkFn(interactionId, interaction) {
33
+ function experimentalMetricsOnIdle() {
34
34
  const payloadPromise = payloadPackage.createExperimentalMetricsPayload(interactionId, interaction);
35
35
  payloadPromise.then(payload => {
36
36
  if (payload) {
@@ -45,11 +45,11 @@ const sinkExperimentalInteractionMetrics = withProfiling(function sinkExperiment
45
45
  instance.sendOperationalEvent(payload);
46
46
  }
47
47
  });
48
- });
48
+ }
49
49
  scheduleIdleCallback(experimentalMetricsOnIdle);
50
- });
50
+ }
51
51
  sinkExperimentalHandler(experimentalMetricsSinkFn);
52
- });
52
+ }
53
53
  function sinkPostInteractionLog(instance, createPostInteractionLogPayload) {
54
54
  sinkPostInteractionLogHandler(logOutput => {
55
55
  scheduleIdleCallback(() => {
@@ -68,7 +68,7 @@ function sinkPostInteractionLog(instance, createPostInteractionLogPayload) {
68
68
  });
69
69
  });
70
70
  }
71
- export const init = withProfiling(function init(analyticsWebClientAsync, config) {
71
+ export function init(analyticsWebClientAsync, config) {
72
72
  var _config$vc;
73
73
  if (initialized) {
74
74
  return;
@@ -98,6 +98,16 @@ export const init = withProfiling(function init(analyticsWebClientAsync, config)
98
98
  setupHiddenTimingCapture();
99
99
  startLighthouseObserver();
100
100
  initialized = true;
101
+ if (fg('platform_ufo_enable_events_observer')) {
102
+ if (typeof PerformanceObserver !== 'undefined') {
103
+ const observer = getPerformanceObserver();
104
+ observer.observe({
105
+ type: 'event',
106
+ buffered: true,
107
+ durationThreshold: 16
108
+ });
109
+ }
110
+ }
101
111
  Promise.all([analyticsWebClientAsync, import( /* webpackChunkName: "create-payloads" */'../create-payload'), import( /* webpackChunkName: "create-post-interaction-log-payload" */'../create-post-interaction-log-payload')]).then(([awc, payloadPackage, createPostInteractionLogPayloadPackage]) => {
102
112
  if (awc.getAnalyticsWebClientPromise) {
103
113
  awc.getAnalyticsWebClientPromise().then(client => {
@@ -122,4 +132,4 @@ export const init = withProfiling(function init(analyticsWebClientAsync, config)
122
132
  }
123
133
  }
124
134
  });
125
- });
135
+ }
@@ -1,7 +1,6 @@
1
1
  import { unstable_IdlePriority as idlePriority, unstable_scheduleCallback as scheduleCallback } from 'scheduler';
2
2
  import { fg } from '@atlaskit/platform-feature-flags';
3
- import { withProfiling } from '../self-measurements';
4
- const scheduleIdleCallback = withProfiling(function scheduleIdleCallback(work) {
3
+ function scheduleIdleCallback(work) {
5
4
  if (typeof window !== 'undefined' && typeof window.requestIdleCallback === 'function' &&
6
5
  // eslint-disable-next-line @atlaskit/platform/ensure-feature-flag-prefix
7
6
  fg('ufo_payload_use_idle_callback')) {
@@ -9,5 +8,5 @@ const scheduleIdleCallback = withProfiling(function scheduleIdleCallback(work) {
9
8
  } else {
10
9
  scheduleCallback(idlePriority, work);
11
10
  }
12
- });
11
+ }
13
12
  export default scheduleIdleCallback;