@atlaskit/react-ufo 1.1.0 → 2.0.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 (486) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +5 -0
  3. package/additional-payload/package.json +15 -0
  4. package/bundle-eval-timing/package.json +15 -0
  5. package/coinflip/package.json +15 -0
  6. package/common/package.json +5 -5
  7. package/config/package.json +15 -0
  8. package/create-payload/package.json +15 -0
  9. package/create-post-interaction-log-payload/package.json +15 -0
  10. package/custom-data/package.json +15 -0
  11. package/custom-mark/package.json +15 -0
  12. package/custom-spans/package.json +15 -0
  13. package/custom-timings/package.json +15 -0
  14. package/dist/cjs/additional-payload/index.js +25 -0
  15. package/dist/cjs/additional-payload/utils/cache-hit-ratio/index.js +69 -0
  16. package/dist/cjs/additional-payload/utils/lighthouse-metrics/cls/index.js +53 -0
  17. package/dist/cjs/additional-payload/utils/lighthouse-metrics/const.js +10 -0
  18. package/dist/cjs/additional-payload/utils/lighthouse-metrics/index.js +29 -0
  19. package/dist/cjs/additional-payload/utils/lighthouse-metrics/tbt/index.js +25 -0
  20. package/dist/cjs/additional-payload/utils/lighthouse-metrics/utils/buffer/index.js +38 -0
  21. package/dist/cjs/additional-payload/utils/lighthouse-metrics/utils/observer/index.js +37 -0
  22. package/dist/cjs/bundle-eval-timing/index.js +48 -0
  23. package/dist/cjs/coinflip/index.js +22 -0
  24. package/dist/cjs/common/common/types.js +5 -0
  25. package/dist/cjs/common/constants.js +7 -0
  26. package/dist/cjs/common/index.js +1 -0
  27. package/dist/cjs/common/vc/types.js +11 -0
  28. package/dist/cjs/config/index.js +222 -0
  29. package/dist/cjs/create-payload/common/types.js +1 -0
  30. package/dist/cjs/create-payload/common/utils/index.js +15 -0
  31. package/dist/cjs/create-payload/index.js +784 -0
  32. package/dist/cjs/create-post-interaction-log-payload/index.js +207 -0
  33. package/dist/cjs/custom-data/index.js +31 -0
  34. package/dist/cjs/custom-data/types.js +5 -0
  35. package/dist/cjs/custom-mark/index.js +45 -0
  36. package/dist/cjs/custom-spans/index.js +14 -0
  37. package/dist/cjs/custom-timings/index.js +65 -0
  38. package/dist/cjs/experience-trace-id-context/index.js +40 -0
  39. package/dist/cjs/experience-trace-id-context/types.js +1 -0
  40. package/dist/cjs/experience-trace-id-context/utils/make-trace-http-request-headers/index.js +12 -0
  41. package/dist/cjs/feature-flags-accessed/common/constants.js +7 -0
  42. package/dist/cjs/feature-flags-accessed/common/types.js +5 -0
  43. package/dist/cjs/feature-flags-accessed/common/utils/index.js +38 -0
  44. package/dist/cjs/feature-flags-accessed/index.js +32 -0
  45. package/dist/cjs/generate-id/index.js +12 -0
  46. package/dist/cjs/global-error-handler/index.js +74 -0
  47. package/dist/cjs/hidden-timing/index.js +94 -0
  48. package/dist/cjs/initial-page-load-extra-timing/index.js +49 -0
  49. package/dist/cjs/interaction-context/index.js +14 -0
  50. package/dist/cjs/interaction-id-context/index.js +27 -0
  51. package/dist/cjs/interaction-metrics/common/constants.js +8 -0
  52. package/dist/cjs/interaction-metrics/index.js +810 -1
  53. package/dist/cjs/interaction-metrics/post-interaction-log.js +190 -0
  54. package/dist/cjs/interaction-metrics-init/index.js +89 -0
  55. package/dist/cjs/label/UFOLabel.js +45 -0
  56. package/dist/cjs/label/index.js +9 -0
  57. package/dist/cjs/load-hold/UFOLoadHold.js +76 -0
  58. package/dist/cjs/load-hold/index.js +9 -0
  59. package/dist/cjs/placeholder/Placeholder.js +34 -0
  60. package/dist/cjs/placeholder/index.js +9 -0
  61. package/dist/cjs/placeholder/loosely-lazy/index.js +19 -0
  62. package/dist/cjs/placeholder/loosely-lazy/lazy-suspense.js +80 -0
  63. package/dist/cjs/placeholder/loosely-lazy/types.js +5 -0
  64. package/dist/cjs/placeholder/loosely-lazy/wait-context.js +15 -0
  65. package/dist/cjs/resource-timing/common/types.js +1 -0
  66. package/dist/cjs/resource-timing/common/utils/config.js +70 -0
  67. package/dist/cjs/resource-timing/common/utils/resource-timing-buffer.js +111 -0
  68. package/dist/cjs/resource-timing/index.js +26 -0
  69. package/dist/cjs/resource-timing/main.js +141 -0
  70. package/dist/cjs/resource-timing/utils.js +10 -0
  71. package/dist/cjs/round-number/index.js +11 -0
  72. package/dist/cjs/route-name/index.js +12 -0
  73. package/dist/cjs/route-name-context/index.js +11 -0
  74. package/dist/cjs/segment/index.js +9 -0
  75. package/dist/cjs/segment/segment-highlight.js +40 -0
  76. package/dist/cjs/segment/segment.js +247 -0
  77. package/dist/cjs/set-interaction-error/index.js +17 -0
  78. package/dist/cjs/short-id/index.js +15 -0
  79. package/dist/cjs/ssr/index.js +70 -0
  80. package/dist/cjs/trace-interaction/index.js +48 -0
  81. package/dist/cjs/trace-pageload/index.js +58 -0
  82. package/dist/cjs/trace-press/index.js +34 -0
  83. package/dist/cjs/trace-redirect/index.js +17 -0
  84. package/dist/cjs/trace-transition/index.js +60 -0
  85. package/dist/cjs/trace-transition/utils/generate-span-id/index.js +11 -0
  86. package/dist/cjs/trace-transition/utils/set-interaction-active-trace/index.js +11 -0
  87. package/dist/cjs/typing-performance-tracing/index.js +262 -0
  88. package/dist/cjs/use-press-tracing/index.js +19 -0
  89. package/dist/cjs/vc/index.js +15 -0
  90. package/dist/cjs/vc/vc-observer/attachAbortListeners.js +40 -0
  91. package/dist/cjs/vc/vc-observer/getViewport.js +27 -0
  92. package/dist/cjs/vc/vc-observer/index.js +562 -0
  93. package/dist/cjs/vc/vc-observer/media-wrapper/index.js +15 -0
  94. package/dist/cjs/vc/vc-observer/media-wrapper/vc-utils.js +16 -0
  95. package/dist/cjs/vc/vc-observer/observers/index.js +270 -0
  96. package/dist/cjs/vc/vc-observer/observers/ssr-placeholders/index.js +183 -0
  97. package/dist/cjs/vc/vc-observer/observers/ssr-placeholders/ssr-scripts/bindAbortListeners.js +22 -0
  98. package/dist/cjs/vc/vc-observer/observers/ssr-placeholders/ssr-scripts/collectSSRPlaceholderDimensions.js +20 -0
  99. package/dist/cjs/vc/vc-observer/observers/ssr-placeholders/ssr-scripts/index.js +19 -0
  100. package/dist/cjs/vc/vc-observer/observers/types.js +5 -0
  101. package/dist/es2019/additional-payload/index.js +2 -0
  102. package/dist/es2019/additional-payload/utils/cache-hit-ratio/index.js +63 -0
  103. package/dist/es2019/additional-payload/utils/lighthouse-metrics/cls/index.js +33 -0
  104. package/dist/es2019/additional-payload/utils/lighthouse-metrics/const.js +4 -0
  105. package/dist/es2019/additional-payload/utils/lighthouse-metrics/index.js +23 -0
  106. package/dist/es2019/additional-payload/utils/lighthouse-metrics/tbt/index.js +15 -0
  107. package/dist/es2019/additional-payload/utils/lighthouse-metrics/utils/buffer/index.js +23 -0
  108. package/dist/es2019/additional-payload/utils/lighthouse-metrics/utils/observer/index.js +31 -0
  109. package/dist/es2019/bundle-eval-timing/index.js +43 -0
  110. package/dist/es2019/coinflip/index.js +16 -0
  111. package/dist/es2019/common/common/types.js +1 -0
  112. package/dist/es2019/common/constants.js +1 -0
  113. package/dist/es2019/common/vc/types.js +5 -0
  114. package/dist/es2019/config/index.js +215 -0
  115. package/dist/es2019/create-payload/common/types.js +0 -0
  116. package/dist/es2019/create-payload/common/utils/index.js +8 -0
  117. package/dist/es2019/create-payload/index.js +792 -0
  118. package/dist/es2019/create-post-interaction-log-payload/index.js +188 -0
  119. package/dist/es2019/custom-data/index.js +24 -0
  120. package/dist/es2019/custom-data/types.js +1 -0
  121. package/dist/es2019/custom-mark/index.js +38 -0
  122. package/dist/es2019/custom-spans/index.js +6 -0
  123. package/dist/es2019/custom-timings/index.js +57 -0
  124. package/dist/es2019/experience-trace-id-context/index.js +31 -0
  125. package/dist/es2019/experience-trace-id-context/types.js +0 -0
  126. package/dist/es2019/experience-trace-id-context/utils/make-trace-http-request-headers/index.js +4 -0
  127. package/dist/es2019/feature-flags-accessed/common/constants.js +1 -0
  128. package/dist/es2019/feature-flags-accessed/common/types.js +1 -0
  129. package/dist/es2019/feature-flags-accessed/common/utils/index.js +24 -0
  130. package/dist/es2019/feature-flags-accessed/index.js +21 -0
  131. package/dist/es2019/generate-id/index.js +6 -0
  132. package/dist/es2019/global-error-handler/index.js +64 -0
  133. package/dist/es2019/hidden-timing/index.js +87 -0
  134. package/dist/es2019/initial-page-load-extra-timing/index.js +43 -0
  135. package/dist/es2019/interaction-context/index.js +6 -0
  136. package/dist/es2019/interaction-id-context/index.js +18 -0
  137. package/dist/es2019/interaction-metrics/common/constants.js +2 -0
  138. package/dist/es2019/interaction-metrics/index.js +736 -0
  139. package/dist/es2019/interaction-metrics/post-interaction-log.js +158 -0
  140. package/dist/es2019/interaction-metrics-init/index.js +72 -0
  141. package/dist/es2019/label/UFOLabel.js +34 -0
  142. package/dist/es2019/label/index.js +2 -0
  143. package/dist/es2019/load-hold/UFOLoadHold.js +66 -0
  144. package/dist/es2019/load-hold/index.js +2 -0
  145. package/dist/es2019/placeholder/Placeholder.js +25 -0
  146. package/dist/es2019/placeholder/index.js +2 -0
  147. package/dist/es2019/placeholder/loosely-lazy/index.js +2 -0
  148. package/dist/es2019/placeholder/loosely-lazy/lazy-suspense.js +63 -0
  149. package/dist/es2019/placeholder/loosely-lazy/types.js +1 -0
  150. package/dist/es2019/placeholder/loosely-lazy/wait-context.js +5 -0
  151. package/dist/es2019/resource-timing/common/types.js +0 -0
  152. package/dist/es2019/resource-timing/common/utils/config.js +44 -0
  153. package/dist/es2019/resource-timing/common/utils/resource-timing-buffer.js +88 -0
  154. package/dist/es2019/resource-timing/index.js +3 -0
  155. package/dist/es2019/resource-timing/main.js +130 -0
  156. package/dist/es2019/resource-timing/utils.js +4 -0
  157. package/dist/es2019/round-number/index.js +4 -0
  158. package/dist/es2019/route-name/index.js +6 -0
  159. package/dist/es2019/route-name-context/index.js +5 -0
  160. package/dist/es2019/segment/index.js +2 -0
  161. package/dist/es2019/segment/segment-highlight.js +27 -0
  162. package/dist/es2019/segment/segment.js +218 -0
  163. package/dist/es2019/set-interaction-error/index.js +11 -0
  164. package/dist/es2019/short-id/index.js +8 -0
  165. package/dist/es2019/ssr/index.js +54 -0
  166. package/dist/es2019/trace-interaction/index.js +41 -0
  167. package/dist/es2019/trace-pageload/index.js +48 -0
  168. package/dist/es2019/trace-press/index.js +27 -0
  169. package/dist/es2019/trace-redirect/index.js +10 -0
  170. package/dist/es2019/trace-transition/index.js +48 -0
  171. package/dist/es2019/trace-transition/utils/generate-span-id/index.js +1 -0
  172. package/dist/es2019/trace-transition/utils/set-interaction-active-trace/index.js +5 -0
  173. package/dist/es2019/typing-performance-tracing/index.js +255 -0
  174. package/dist/es2019/use-press-tracing/index.js +12 -0
  175. package/dist/es2019/vc/index.js +8 -0
  176. package/dist/es2019/vc/vc-observer/attachAbortListeners.js +34 -0
  177. package/dist/es2019/vc/vc-observer/getViewport.js +18 -0
  178. package/dist/es2019/vc/vc-observer/index.js +522 -0
  179. package/dist/es2019/vc/vc-observer/media-wrapper/index.js +9 -0
  180. package/dist/es2019/vc/vc-observer/media-wrapper/vc-utils.js +10 -0
  181. package/dist/es2019/vc/vc-observer/observers/index.js +231 -0
  182. package/dist/es2019/vc/vc-observer/observers/ssr-placeholders/index.js +146 -0
  183. package/dist/es2019/vc/vc-observer/observers/ssr-placeholders/ssr-scripts/bindAbortListeners.js +16 -0
  184. package/dist/es2019/vc/vc-observer/observers/ssr-placeholders/ssr-scripts/collectSSRPlaceholderDimensions.js +14 -0
  185. package/dist/es2019/vc/vc-observer/observers/ssr-placeholders/ssr-scripts/index.js +2 -0
  186. package/dist/es2019/vc/vc-observer/observers/types.js +1 -0
  187. package/dist/esm/additional-payload/index.js +2 -0
  188. package/dist/esm/additional-payload/utils/cache-hit-ratio/index.js +63 -0
  189. package/dist/esm/additional-payload/utils/lighthouse-metrics/cls/index.js +47 -0
  190. package/dist/esm/additional-payload/utils/lighthouse-metrics/cls/types.js +0 -0
  191. package/dist/esm/additional-payload/utils/lighthouse-metrics/const.js +4 -0
  192. package/dist/esm/additional-payload/utils/lighthouse-metrics/index.js +22 -0
  193. package/dist/esm/additional-payload/utils/lighthouse-metrics/tbt/index.js +19 -0
  194. package/dist/esm/additional-payload/utils/lighthouse-metrics/utils/buffer/index.js +31 -0
  195. package/dist/esm/additional-payload/utils/lighthouse-metrics/utils/observer/index.js +31 -0
  196. package/dist/esm/bundle-eval-timing/index.js +41 -0
  197. package/dist/esm/coinflip/index.js +16 -0
  198. package/dist/esm/common/common/types.js +1 -0
  199. package/dist/esm/common/constants.js +1 -0
  200. package/dist/esm/common/index.js +0 -0
  201. package/dist/esm/common/vc/types.js +5 -0
  202. package/dist/esm/config/index.js +206 -0
  203. package/dist/esm/create-payload/common/types.js +0 -0
  204. package/dist/esm/create-payload/common/utils/index.js +8 -0
  205. package/dist/esm/create-payload/index.js +774 -0
  206. package/dist/esm/create-post-interaction-log-payload/index.js +200 -0
  207. package/dist/esm/custom-data/index.js +23 -0
  208. package/dist/esm/custom-data/types.js +1 -0
  209. package/dist/esm/custom-mark/index.js +36 -0
  210. package/dist/esm/custom-spans/index.js +8 -0
  211. package/dist/esm/custom-timings/index.js +56 -0
  212. package/dist/esm/experience-trace-id-context/index.js +34 -0
  213. package/dist/esm/experience-trace-id-context/types.js +0 -0
  214. package/dist/esm/experience-trace-id-context/utils/make-trace-http-request-headers/index.js +6 -0
  215. package/dist/esm/feature-flags-accessed/common/constants.js +1 -0
  216. package/dist/esm/feature-flags-accessed/common/types.js +1 -0
  217. package/dist/esm/feature-flags-accessed/common/utils/index.js +31 -0
  218. package/dist/esm/feature-flags-accessed/index.js +21 -0
  219. package/dist/esm/generate-id/index.js +6 -0
  220. package/dist/esm/global-error-handler/index.js +67 -0
  221. package/dist/esm/hidden-timing/index.js +87 -0
  222. package/dist/esm/initial-page-load-extra-timing/index.js +42 -0
  223. package/dist/esm/interaction-context/index.js +6 -0
  224. package/dist/esm/interaction-id-context/index.js +22 -0
  225. package/dist/esm/interaction-metrics/common/constants.js +2 -0
  226. package/dist/esm/interaction-metrics/index.js +773 -0
  227. package/dist/esm/interaction-metrics/post-interaction-log.js +184 -0
  228. package/dist/esm/interaction-metrics-init/index.js +77 -0
  229. package/dist/esm/label/UFOLabel.js +36 -0
  230. package/dist/esm/label/index.js +2 -0
  231. package/dist/esm/load-hold/UFOLoadHold.js +66 -0
  232. package/dist/esm/load-hold/index.js +2 -0
  233. package/dist/esm/placeholder/Placeholder.js +25 -0
  234. package/dist/esm/placeholder/index.js +2 -0
  235. package/dist/esm/placeholder/loosely-lazy/index.js +2 -0
  236. package/dist/esm/placeholder/loosely-lazy/lazy-suspense.js +70 -0
  237. package/dist/esm/placeholder/loosely-lazy/types.js +1 -0
  238. package/dist/esm/placeholder/loosely-lazy/wait-context.js +9 -0
  239. package/dist/esm/resource-timing/common/types.js +0 -0
  240. package/dist/esm/resource-timing/common/utils/config.js +62 -0
  241. package/dist/esm/resource-timing/common/utils/resource-timing-buffer.js +104 -0
  242. package/dist/esm/resource-timing/index.js +3 -0
  243. package/dist/esm/resource-timing/main.js +134 -0
  244. package/dist/esm/resource-timing/utils.js +4 -0
  245. package/dist/esm/round-number/index.js +5 -0
  246. package/dist/esm/route-name/index.js +6 -0
  247. package/dist/esm/route-name-context/index.js +5 -0
  248. package/dist/esm/segment/index.js +2 -0
  249. package/dist/esm/segment/segment-highlight.js +30 -0
  250. package/dist/esm/segment/segment.js +235 -0
  251. package/dist/esm/set-interaction-error/index.js +11 -0
  252. package/dist/esm/short-id/index.js +9 -0
  253. package/dist/esm/ssr/index.js +59 -0
  254. package/dist/esm/trace-interaction/index.js +41 -0
  255. package/dist/esm/trace-pageload/index.js +50 -0
  256. package/dist/esm/trace-press/index.js +27 -0
  257. package/dist/esm/trace-redirect/index.js +10 -0
  258. package/dist/esm/trace-transition/index.js +49 -0
  259. package/dist/esm/trace-transition/utils/generate-span-id/index.js +5 -0
  260. package/dist/esm/trace-transition/utils/set-interaction-active-trace/index.js +5 -0
  261. package/dist/esm/typing-performance-tracing/index.js +255 -0
  262. package/dist/esm/use-press-tracing/index.js +12 -0
  263. package/dist/esm/vc/index.js +9 -0
  264. package/dist/esm/vc/vc-observer/attachAbortListeners.js +34 -0
  265. package/dist/esm/vc/vc-observer/getViewport.js +20 -0
  266. package/dist/esm/vc/vc-observer/index.js +555 -0
  267. package/dist/esm/vc/vc-observer/media-wrapper/index.js +7 -0
  268. package/dist/esm/vc/vc-observer/media-wrapper/vc-utils.js +10 -0
  269. package/dist/esm/vc/vc-observer/observers/index.js +263 -0
  270. package/dist/esm/vc/vc-observer/observers/ssr-placeholders/index.js +176 -0
  271. package/dist/esm/vc/vc-observer/observers/ssr-placeholders/ssr-scripts/bindAbortListeners.js +16 -0
  272. package/dist/esm/vc/vc-observer/observers/ssr-placeholders/ssr-scripts/collectSSRPlaceholderDimensions.js +14 -0
  273. package/dist/esm/vc/vc-observer/observers/ssr-placeholders/ssr-scripts/index.js +2 -0
  274. package/dist/esm/vc/vc-observer/observers/types.js +1 -0
  275. package/dist/types/additional-payload/index.d.ts +2 -0
  276. package/dist/types/additional-payload/utils/cache-hit-ratio/index.d.ts +8 -0
  277. package/dist/types/additional-payload/utils/lighthouse-metrics/cls/index.d.ts +2 -0
  278. package/dist/types/additional-payload/utils/lighthouse-metrics/cls/types.d.ts +3 -0
  279. package/dist/types/additional-payload/utils/lighthouse-metrics/const.d.ts +5 -0
  280. package/dist/types/additional-payload/utils/lighthouse-metrics/index.d.ts +7 -0
  281. package/dist/types/additional-payload/utils/lighthouse-metrics/tbt/index.d.ts +5 -0
  282. package/dist/types/additional-payload/utils/lighthouse-metrics/utils/buffer/index.d.ts +13 -0
  283. package/dist/types/additional-payload/utils/lighthouse-metrics/utils/observer/index.d.ts +2 -0
  284. package/dist/types/bundle-eval-timing/index.d.ts +16 -0
  285. package/dist/types/coinflip/index.d.ts +8 -0
  286. package/dist/types/common/common/types.d.ts +201 -0
  287. package/dist/types/common/constants.d.ts +1 -0
  288. package/dist/types/common/index.d.ts +5 -0
  289. package/dist/types/common/vc/types.d.ts +91 -0
  290. package/dist/types/config/index.d.ts +91 -0
  291. package/dist/types/create-payload/common/types.d.ts +4 -0
  292. package/dist/types/create-payload/common/utils/index.d.ts +3 -0
  293. package/dist/types/create-payload/index.d.ts +2969 -0
  294. package/dist/types/create-post-interaction-log-payload/index.d.ts +45 -0
  295. package/dist/types/custom-data/index.d.ts +5 -0
  296. package/dist/types/custom-data/types.d.ts +4 -0
  297. package/dist/types/custom-mark/index.d.ts +10 -0
  298. package/dist/types/custom-spans/index.d.ts +1 -0
  299. package/dist/types/custom-timings/index.d.ts +19 -0
  300. package/dist/types/experience-trace-id-context/index.d.ts +10 -0
  301. package/dist/types/experience-trace-id-context/types.d.ts +8 -0
  302. package/dist/types/experience-trace-id-context/utils/make-trace-http-request-headers/index.d.ts +4 -0
  303. package/dist/types/feature-flags-accessed/common/constants.d.ts +1 -0
  304. package/dist/types/feature-flags-accessed/common/types.d.ts +2 -0
  305. package/dist/types/feature-flags-accessed/common/utils/index.d.ts +3 -0
  306. package/dist/types/feature-flags-accessed/index.d.ts +14 -0
  307. package/dist/types/generate-id/index.d.ts +2 -0
  308. package/dist/types/global-error-handler/index.d.ts +3 -0
  309. package/dist/types/hidden-timing/index.d.ts +7 -0
  310. package/dist/types/initial-page-load-extra-timing/index.d.ts +9 -0
  311. package/dist/types/interaction-context/index.d.ts +33 -0
  312. package/dist/types/interaction-id-context/index.d.ts +9 -0
  313. package/dist/types/interaction-metrics/common/constants.d.ts +3 -0
  314. package/dist/types/interaction-metrics/index.d.ts +65 -1
  315. package/dist/types/interaction-metrics/post-interaction-log.d.ts +69 -0
  316. package/dist/types/interaction-metrics-init/index.d.ts +11 -0
  317. package/dist/types/label/UFOLabel.d.ts +13 -0
  318. package/dist/types/label/index.d.ts +2 -0
  319. package/dist/types/load-hold/UFOLoadHold.d.ts +53 -0
  320. package/dist/types/load-hold/index.d.ts +2 -0
  321. package/dist/types/placeholder/Placeholder.d.ts +13 -0
  322. package/dist/types/placeholder/index.d.ts +2 -0
  323. package/dist/types/placeholder/loosely-lazy/index.d.ts +3 -0
  324. package/dist/types/placeholder/loosely-lazy/lazy-suspense.d.ts +6 -0
  325. package/dist/types/placeholder/loosely-lazy/types.d.ts +20 -0
  326. package/dist/types/placeholder/loosely-lazy/wait-context.d.ts +3 -0
  327. package/dist/types/resource-timing/common/types.d.ts +41 -0
  328. package/dist/types/resource-timing/common/utils/config.d.ts +3 -0
  329. package/dist/types/resource-timing/common/utils/resource-timing-buffer.d.ts +11 -0
  330. package/dist/types/resource-timing/index.d.ts +4 -0
  331. package/dist/types/resource-timing/main.d.ts +2 -0
  332. package/dist/types/resource-timing/utils.d.ts +1 -0
  333. package/dist/types/round-number/index.d.ts +1 -0
  334. package/dist/types/route-name/index.d.ts +4 -0
  335. package/dist/types/route-name-context/index.d.ts +5 -0
  336. package/dist/types/segment/index.d.ts +2 -0
  337. package/dist/types/segment/segment-highlight.d.ts +6 -0
  338. package/dist/types/segment/segment.d.ts +8 -0
  339. package/dist/types/set-interaction-error/index.d.ts +4 -0
  340. package/dist/types/short-id/index.d.ts +1 -0
  341. package/dist/types/ssr/index.d.ts +21 -0
  342. package/dist/types/trace-interaction/index.d.ts +2 -0
  343. package/dist/types/trace-pageload/index.d.ts +2 -0
  344. package/dist/types/trace-press/index.d.ts +1 -0
  345. package/dist/types/trace-redirect/index.d.ts +1 -0
  346. package/dist/types/trace-transition/index.d.ts +2 -0
  347. package/dist/types/trace-transition/utils/generate-span-id/index.d.ts +1 -0
  348. package/dist/types/trace-transition/utils/set-interaction-active-trace/index.d.ts +1 -0
  349. package/dist/types/typing-performance-tracing/index.d.ts +2 -0
  350. package/dist/types/use-press-tracing/index.d.ts +1 -0
  351. package/dist/types/vc/index.d.ts +2 -0
  352. package/dist/types/vc/vc-observer/attachAbortListeners.d.ts +6 -0
  353. package/dist/types/vc/vc-observer/getViewport.d.ts +2 -0
  354. package/dist/types/vc/vc-observer/index.d.ts +98 -0
  355. package/dist/types/vc/vc-observer/media-wrapper/index.d.ts +7 -0
  356. package/dist/types/vc/vc-observer/media-wrapper/vc-utils.d.ts +1 -0
  357. package/dist/types/vc/vc-observer/observers/index.d.ts +39 -0
  358. package/dist/types/vc/vc-observer/observers/ssr-placeholders/index.d.ts +23 -0
  359. package/dist/types/vc/vc-observer/observers/ssr-placeholders/ssr-scripts/bindAbortListeners.d.ts +1 -0
  360. package/dist/types/vc/vc-observer/observers/ssr-placeholders/ssr-scripts/collectSSRPlaceholderDimensions.d.ts +1 -0
  361. package/dist/types/vc/vc-observer/observers/ssr-placeholders/ssr-scripts/index.d.ts +2 -0
  362. package/dist/types/vc/vc-observer/observers/types.d.ts +11 -0
  363. package/dist/types-ts4.5/additional-payload/index.d.ts +2 -0
  364. package/dist/types-ts4.5/additional-payload/utils/cache-hit-ratio/index.d.ts +8 -0
  365. package/dist/types-ts4.5/additional-payload/utils/lighthouse-metrics/cls/index.d.ts +2 -0
  366. package/dist/types-ts4.5/additional-payload/utils/lighthouse-metrics/cls/types.d.ts +3 -0
  367. package/dist/types-ts4.5/additional-payload/utils/lighthouse-metrics/const.d.ts +5 -0
  368. package/dist/types-ts4.5/additional-payload/utils/lighthouse-metrics/index.d.ts +7 -0
  369. package/dist/types-ts4.5/additional-payload/utils/lighthouse-metrics/tbt/index.d.ts +5 -0
  370. package/dist/types-ts4.5/additional-payload/utils/lighthouse-metrics/utils/buffer/index.d.ts +13 -0
  371. package/dist/types-ts4.5/additional-payload/utils/lighthouse-metrics/utils/observer/index.d.ts +2 -0
  372. package/dist/types-ts4.5/bundle-eval-timing/index.d.ts +16 -0
  373. package/dist/types-ts4.5/coinflip/index.d.ts +8 -0
  374. package/dist/types-ts4.5/common/common/types.d.ts +201 -0
  375. package/dist/types-ts4.5/common/constants.d.ts +1 -0
  376. package/dist/types-ts4.5/common/index.d.ts +5 -0
  377. package/dist/types-ts4.5/common/vc/types.d.ts +91 -0
  378. package/dist/types-ts4.5/config/index.d.ts +95 -0
  379. package/dist/types-ts4.5/create-payload/common/types.d.ts +4 -0
  380. package/dist/types-ts4.5/create-payload/common/utils/index.d.ts +3 -0
  381. package/dist/types-ts4.5/create-payload/index.d.ts +2969 -0
  382. package/dist/types-ts4.5/create-post-interaction-log-payload/index.d.ts +45 -0
  383. package/dist/types-ts4.5/custom-data/index.d.ts +5 -0
  384. package/dist/types-ts4.5/custom-data/types.d.ts +4 -0
  385. package/dist/types-ts4.5/custom-mark/index.d.ts +10 -0
  386. package/dist/types-ts4.5/custom-spans/index.d.ts +1 -0
  387. package/dist/types-ts4.5/custom-timings/index.d.ts +19 -0
  388. package/dist/types-ts4.5/experience-trace-id-context/index.d.ts +10 -0
  389. package/dist/types-ts4.5/experience-trace-id-context/types.d.ts +8 -0
  390. package/dist/types-ts4.5/experience-trace-id-context/utils/make-trace-http-request-headers/index.d.ts +4 -0
  391. package/dist/types-ts4.5/feature-flags-accessed/common/constants.d.ts +1 -0
  392. package/dist/types-ts4.5/feature-flags-accessed/common/types.d.ts +2 -0
  393. package/dist/types-ts4.5/feature-flags-accessed/common/utils/index.d.ts +3 -0
  394. package/dist/types-ts4.5/feature-flags-accessed/index.d.ts +14 -0
  395. package/dist/types-ts4.5/generate-id/index.d.ts +2 -0
  396. package/dist/types-ts4.5/global-error-handler/index.d.ts +3 -0
  397. package/dist/types-ts4.5/hidden-timing/index.d.ts +7 -0
  398. package/dist/types-ts4.5/initial-page-load-extra-timing/index.d.ts +9 -0
  399. package/dist/types-ts4.5/interaction-context/index.d.ts +33 -0
  400. package/dist/types-ts4.5/interaction-id-context/index.d.ts +9 -0
  401. package/dist/types-ts4.5/interaction-metrics/common/constants.d.ts +3 -0
  402. package/dist/types-ts4.5/interaction-metrics/index.d.ts +65 -1
  403. package/dist/types-ts4.5/interaction-metrics/post-interaction-log.d.ts +69 -0
  404. package/dist/types-ts4.5/interaction-metrics-init/index.d.ts +11 -0
  405. package/dist/types-ts4.5/label/UFOLabel.d.ts +13 -0
  406. package/dist/types-ts4.5/label/index.d.ts +2 -0
  407. package/dist/types-ts4.5/load-hold/UFOLoadHold.d.ts +53 -0
  408. package/dist/types-ts4.5/load-hold/index.d.ts +2 -0
  409. package/dist/types-ts4.5/placeholder/Placeholder.d.ts +13 -0
  410. package/dist/types-ts4.5/placeholder/index.d.ts +2 -0
  411. package/dist/types-ts4.5/placeholder/loosely-lazy/index.d.ts +3 -0
  412. package/dist/types-ts4.5/placeholder/loosely-lazy/lazy-suspense.d.ts +6 -0
  413. package/dist/types-ts4.5/placeholder/loosely-lazy/types.d.ts +20 -0
  414. package/dist/types-ts4.5/placeholder/loosely-lazy/wait-context.d.ts +3 -0
  415. package/dist/types-ts4.5/resource-timing/common/types.d.ts +41 -0
  416. package/dist/types-ts4.5/resource-timing/common/utils/config.d.ts +3 -0
  417. package/dist/types-ts4.5/resource-timing/common/utils/resource-timing-buffer.d.ts +11 -0
  418. package/dist/types-ts4.5/resource-timing/index.d.ts +4 -0
  419. package/dist/types-ts4.5/resource-timing/main.d.ts +2 -0
  420. package/dist/types-ts4.5/resource-timing/utils.d.ts +1 -0
  421. package/dist/types-ts4.5/round-number/index.d.ts +1 -0
  422. package/dist/types-ts4.5/route-name/index.d.ts +4 -0
  423. package/dist/types-ts4.5/route-name-context/index.d.ts +5 -0
  424. package/dist/types-ts4.5/segment/index.d.ts +2 -0
  425. package/dist/types-ts4.5/segment/segment-highlight.d.ts +6 -0
  426. package/dist/types-ts4.5/segment/segment.d.ts +8 -0
  427. package/dist/types-ts4.5/set-interaction-error/index.d.ts +4 -0
  428. package/dist/types-ts4.5/short-id/index.d.ts +1 -0
  429. package/dist/types-ts4.5/ssr/index.d.ts +21 -0
  430. package/dist/types-ts4.5/trace-interaction/index.d.ts +2 -0
  431. package/dist/types-ts4.5/trace-pageload/index.d.ts +2 -0
  432. package/dist/types-ts4.5/trace-press/index.d.ts +1 -0
  433. package/dist/types-ts4.5/trace-redirect/index.d.ts +1 -0
  434. package/dist/types-ts4.5/trace-transition/index.d.ts +2 -0
  435. package/dist/types-ts4.5/trace-transition/utils/generate-span-id/index.d.ts +1 -0
  436. package/dist/types-ts4.5/trace-transition/utils/set-interaction-active-trace/index.d.ts +1 -0
  437. package/dist/types-ts4.5/typing-performance-tracing/index.d.ts +2 -0
  438. package/dist/types-ts4.5/use-press-tracing/index.d.ts +1 -0
  439. package/dist/types-ts4.5/vc/index.d.ts +2 -0
  440. package/dist/types-ts4.5/vc/vc-observer/attachAbortListeners.d.ts +6 -0
  441. package/dist/types-ts4.5/vc/vc-observer/getViewport.d.ts +2 -0
  442. package/dist/types-ts4.5/vc/vc-observer/index.d.ts +98 -0
  443. package/dist/types-ts4.5/vc/vc-observer/media-wrapper/index.d.ts +7 -0
  444. package/dist/types-ts4.5/vc/vc-observer/media-wrapper/vc-utils.d.ts +1 -0
  445. package/dist/types-ts4.5/vc/vc-observer/observers/index.d.ts +39 -0
  446. package/dist/types-ts4.5/vc/vc-observer/observers/ssr-placeholders/index.d.ts +23 -0
  447. package/dist/types-ts4.5/vc/vc-observer/observers/ssr-placeholders/ssr-scripts/bindAbortListeners.d.ts +1 -0
  448. package/dist/types-ts4.5/vc/vc-observer/observers/ssr-placeholders/ssr-scripts/collectSSRPlaceholderDimensions.d.ts +1 -0
  449. package/dist/types-ts4.5/vc/vc-observer/observers/ssr-placeholders/ssr-scripts/index.d.ts +2 -0
  450. package/dist/types-ts4.5/vc/vc-observer/observers/types.d.ts +11 -0
  451. package/experience-trace-id-context/package.json +15 -0
  452. package/feature-flags-accessed/package.json +15 -0
  453. package/generate-id/package.json +15 -0
  454. package/global-error-handler/package.json +15 -0
  455. package/hidden-timing/package.json +15 -0
  456. package/initial-page-load-extra-timing/package.json +15 -0
  457. package/interaction-context/package.json +15 -0
  458. package/interaction-id-context/package.json +15 -0
  459. package/interaction-metrics-init/package.json +15 -0
  460. package/label/package.json +15 -0
  461. package/load-hold/package.json +15 -0
  462. package/package.json +55 -3
  463. package/placeholder/package.json +15 -0
  464. package/resource-timing/package.json +15 -0
  465. package/round-number/package.json +15 -0
  466. package/route-name/package.json +15 -0
  467. package/route-name-context/package.json +15 -0
  468. package/segment/package.json +15 -0
  469. package/set-interaction-error/package.json +15 -0
  470. package/short-id/package.json +15 -0
  471. package/ssr/package.json +15 -0
  472. package/ssr-scripts/package.json +15 -0
  473. package/trace-interaction/package.json +15 -0
  474. package/trace-pageload/package.json +15 -0
  475. package/trace-press/package.json +15 -0
  476. package/trace-redirect/package.json +15 -0
  477. package/trace-transition/package.json +15 -0
  478. package/typing-performance-tracing/package.json +15 -0
  479. package/use-press-tracing/package.json +15 -0
  480. package/vc/media/package.json +15 -0
  481. package/vc/package.json +15 -0
  482. package/dist/types/common/types.d.ts +0 -17
  483. package/dist/types-ts4.5/common/types.d.ts +0 -17
  484. /package/dist/cjs/{common → additional-payload/utils/lighthouse-metrics/cls}/types.js +0 -0
  485. /package/dist/es2019/{common → additional-payload/utils/lighthouse-metrics/cls}/types.js +0 -0
  486. /package/dist/{esm/common/types.js → es2019/common/index.js} +0 -0
@@ -0,0 +1,774 @@
1
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
2
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
3
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
5
+ var _excluded = ["labelStack", "time"],
6
+ _excluded2 = ["stopTime", "labelStack"],
7
+ _excluded3 = ["labelStack"],
8
+ _excluded4 = ["labelStack"];
9
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
10
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11
+ import Bowser from 'bowser-ultralight';
12
+ import { getLighthouseMetrics } from '../additional-payload';
13
+ import * as bundleEvalTiming from '../bundle-eval-timing';
14
+ import { REACT_UFO_VERSION } from '../common/constants';
15
+ import { getConfig, getUfoNameOverrides } from '../config';
16
+ import { getBm3Timings } from '../custom-timings';
17
+ import { getPageVisibilityState } from '../hidden-timing';
18
+ import * as initialPageLoadExtraTiming from '../initial-page-load-extra-timing';
19
+ import { interactionSpans as atlaskitInteractionSpans, postInteractionLog } from '../interaction-metrics';
20
+ import * as resourceTiming from '../resource-timing';
21
+ import { roundEpsilon } from '../round-number';
22
+ import * as ssr from '../ssr';
23
+ import { getVCObserver } from '../vc';
24
+ import { isSegmentLabel, sanitizeUfoName } from './common/utils';
25
+ function getUfoNameOverride(interaction) {
26
+ var ufoName = interaction.ufoName,
27
+ apdex = interaction.apdex;
28
+ try {
29
+ var ufoNameOverrides = getUfoNameOverrides();
30
+ if (ufoNameOverrides != null) {
31
+ var metricKey = apdex.length > 0 ? apdex[0].key : '';
32
+ if (ufoNameOverrides[ufoName][metricKey]) {
33
+ return ufoNameOverrides[ufoName][metricKey];
34
+ }
35
+ }
36
+ return ufoName;
37
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
38
+ } catch (e) {
39
+ return ufoName;
40
+ }
41
+ }
42
+ function stringifyLabelStackFully(labelStack) {
43
+ return labelStack.map(function (l) {
44
+ if (isSegmentLabel(l)) {
45
+ return "".concat(l.name, ":").concat(l.segmentId);
46
+ }
47
+ return l.name;
48
+ }).join('/');
49
+ }
50
+ function labelStackStartWith(labelStack, startWith) {
51
+ return stringifyLabelStackFully(labelStack).startsWith(stringifyLabelStackFully(startWith));
52
+ }
53
+ function getEarliestLegacyStopTime(interaction, labelStack) {
54
+ var earliestLegacyStopTime = null;
55
+ interaction.apdex.forEach(function (a) {
56
+ var _a$labelStack, _earliestLegacyStopTi;
57
+ if (!(a !== null && a !== void 0 && a.stopTime)) {
58
+ return;
59
+ }
60
+ if (!labelStackStartWith((_a$labelStack = a.labelStack) !== null && _a$labelStack !== void 0 ? _a$labelStack : [], labelStack)) {
61
+ return;
62
+ }
63
+ if (a.stopTime > interaction.start && ((_earliestLegacyStopTi = earliestLegacyStopTime) !== null && _earliestLegacyStopTi !== void 0 ? _earliestLegacyStopTi : a.stopTime) >= a.stopTime) {
64
+ earliestLegacyStopTime = a.stopTime;
65
+ }
66
+ });
67
+ return earliestLegacyStopTime;
68
+ }
69
+ function getBm3EndTimeOrFallbackValue(interaction) {
70
+ var _getEarliestLegacySto;
71
+ var labelStack = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
72
+ var fallbackValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : interaction.end;
73
+ if (interaction.type === 'press') {
74
+ return fallbackValue;
75
+ }
76
+ return (_getEarliestLegacySto = getEarliestLegacyStopTime(interaction, labelStack)) !== null && _getEarliestLegacySto !== void 0 ? _getEarliestLegacySto : fallbackValue;
77
+ }
78
+ var getPageVisibilityUpToTTI = function getPageVisibilityUpToTTI(interaction) {
79
+ var start = interaction.start;
80
+ var bm3EndTimeOrInteractionEndTime = getBm3EndTimeOrFallbackValue(interaction);
81
+ return getPageVisibilityState(start, bm3EndTimeOrInteractionEndTime);
82
+ };
83
+ var getPageVisibilityUpToTTAI = function getPageVisibilityUpToTTAI(interaction) {
84
+ var start = interaction.start,
85
+ end = interaction.end;
86
+ return getPageVisibilityState(start, end);
87
+ };
88
+ var getVisibilityStateFromPerformance = function getVisibilityStateFromPerformance(stop) {
89
+ try {
90
+ var results = performance.getEntriesByType('visibility-state');
91
+ if (!results || results.length === 0) {
92
+ return null;
93
+ }
94
+ return results.reduce(function () {
95
+ var acc = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
96
+ var _ref = arguments.length > 1 ? arguments[1] : undefined,
97
+ name = _ref.name,
98
+ startTime = _ref.startTime;
99
+ if (startTime > stop) {
100
+ return acc;
101
+ }
102
+ if (acc === null && name === null) {
103
+ return null;
104
+ }
105
+ if (acc === null) {
106
+ return name;
107
+ }
108
+ if (acc !== name) {
109
+ return 'mixed';
110
+ }
111
+ return acc;
112
+ }, null);
113
+ } catch (e) {
114
+ return null;
115
+ }
116
+ };
117
+ var getMoreAccuratePageVisibilityUpToTTI = function getMoreAccuratePageVisibilityUpToTTI(interaction) {
118
+ var old = getPageVisibilityUpToTTI(interaction);
119
+ var tti = getEarliestLegacyStopTime(interaction, []);
120
+ if (!tti) {
121
+ return old;
122
+ }
123
+ var buffered = getVisibilityStateFromPerformance(tti);
124
+ if (!buffered) {
125
+ return old;
126
+ }
127
+ if (buffered !== old) {
128
+ return 'mixed';
129
+ }
130
+ return old;
131
+ };
132
+ var getMoreAccuratePageVisibilityUpToTTAI = function getMoreAccuratePageVisibilityUpToTTAI(interaction) {
133
+ var old = getPageVisibilityUpToTTAI(interaction);
134
+ var buffered = getVisibilityStateFromPerformance(interaction.end);
135
+ if (!buffered) {
136
+ return old;
137
+ }
138
+ if (buffered !== old) {
139
+ return 'mixed';
140
+ }
141
+ return old;
142
+ };
143
+ var getInteractionStatus = function getInteractionStatus(interaction) {
144
+ var originalInteractionStatus = interaction.abortReason ? 'ABORTED' : 'SUCCEEDED';
145
+ var hasBm3TTI = interaction.apdex.length > 0;
146
+ var overrideStatus = hasBm3TTI ? 'SUCCEEDED' : originalInteractionStatus;
147
+ return {
148
+ originalInteractionStatus: originalInteractionStatus,
149
+ overrideStatus: overrideStatus
150
+ };
151
+ };
152
+ var getResourceTimings = function getResourceTimings(start, end) {
153
+ var _resourceTiming$getRe;
154
+ return (_resourceTiming$getRe = resourceTiming.getResourceTimings(start, end)) !== null && _resourceTiming$getRe !== void 0 ? _resourceTiming$getRe : undefined;
155
+ };
156
+ var getBundleEvalTimings = function getBundleEvalTimings(start) {
157
+ return bundleEvalTiming.getBundleEvalTimings(start);
158
+ };
159
+ var getSSRSuccess = function getSSRSuccess(type) {
160
+ return type === 'page_load' ? ssr.getSSRSuccess() : undefined;
161
+ };
162
+ var getSSRFeatureFlags = function getSSRFeatureFlags(type) {
163
+ return type === 'page_load' ? ssr.getSSRFeatureFlags() : undefined;
164
+ };
165
+ var getPaintMetrics = function getPaintMetrics(type) {
166
+ if (type !== 'page_load') {
167
+ return {};
168
+ }
169
+ var metrics = {};
170
+ performance.getEntriesByType('paint').forEach(function (entry) {
171
+ if (entry.name === 'first-paint') {
172
+ metrics['metric:fp'] = Math.round(entry.startTime);
173
+ }
174
+ if (entry.name === 'first-contentful-paint') {
175
+ metrics['metric:fcp'] = Math.round(entry.startTime);
176
+ }
177
+ });
178
+ return metrics;
179
+ };
180
+ var getVCMetrics = function getVCMetrics(interaction) {
181
+ var _config$vc, _config$vc2, _interaction$apdex;
182
+ var config = getConfig();
183
+ if (!(config !== null && config !== void 0 && (_config$vc = config.vc) !== null && _config$vc !== void 0 && _config$vc.enabled)) {
184
+ return {};
185
+ }
186
+ if (interaction.type !== 'page_load' && interaction.type !== 'transition') {
187
+ return {};
188
+ }
189
+ var ssr = interaction.type === 'page_load' && config !== null && config !== void 0 && (_config$vc2 = config.vc) !== null && _config$vc2 !== void 0 && _config$vc2.ssr ? {
190
+ ssr: getSSRDoneTimeValue(config)
191
+ } : null;
192
+ postInteractionLog.setVCObserverSSRConfig(ssr);
193
+ var tti = (_interaction$apdex = interaction.apdex) === null || _interaction$apdex === void 0 || (_interaction$apdex = _interaction$apdex[0]) === null || _interaction$apdex === void 0 ? void 0 : _interaction$apdex.stopTime;
194
+ var prefix = 'ufo';
195
+ var result = getVCObserver().getVCResult(_objectSpread({
196
+ start: interaction.start,
197
+ stop: interaction.end,
198
+ tti: tti,
199
+ prefix: prefix,
200
+ vc: interaction.vc
201
+ }, ssr));
202
+ postInteractionLog.setLastInteractionFinishVCResult(result);
203
+ var VC = result === null || result === void 0 ? void 0 : result['metrics:vc'];
204
+ if (!VC || !(result !== null && result !== void 0 && result["".concat(prefix, ":vc:clean")])) {
205
+ return result;
206
+ }
207
+ var interactionStatus = getInteractionStatus(interaction);
208
+ var pageVisibilityUpToTTAI = getPageVisibilityUpToTTAI(interaction);
209
+ if (interactionStatus.originalInteractionStatus !== 'SUCCEEDED' || pageVisibilityUpToTTAI !== 'visible') {
210
+ return result;
211
+ }
212
+ return _objectSpread(_objectSpread({}, result), {}, {
213
+ 'metric:vc90': VC['90']
214
+ });
215
+ };
216
+ var getNavigationMetrics = function getNavigationMetrics(type) {
217
+ if (type !== 'page_load') {
218
+ return {};
219
+ }
220
+ var entries = performance.getEntriesByType('navigation');
221
+ if (entries.length === 0) {
222
+ return {};
223
+ }
224
+ var navigation = entries[0];
225
+ var metrics = {
226
+ // From https://www.w3.org/TR/resource-timing/
227
+ redirectStart: Math.round(navigation.redirectStart),
228
+ redirectEnd: Math.round(navigation.redirectEnd),
229
+ fetchStart: Math.round(navigation.fetchStart),
230
+ domainLookupStart: Math.round(navigation.domainLookupStart),
231
+ domainLookupEnd: Math.round(navigation.domainLookupEnd),
232
+ connectStart: Math.round(navigation.connectStart),
233
+ connectEnd: Math.round(navigation.connectEnd),
234
+ secureConnectionStart: Math.round(navigation.secureConnectionStart),
235
+ requestStart: Math.round(navigation.requestStart),
236
+ responseStart: Math.round(navigation.responseStart),
237
+ responseEnd: Math.round(navigation.responseEnd),
238
+ encodedBodySize: Math.round(navigation.encodedBodySize),
239
+ decodedBodySize: Math.round(navigation.decodedBodySize),
240
+ transferSize: Math.round(navigation.transferSize),
241
+ // From https://www.w3.org/TR/navigation-timing-2/
242
+ redirectCount: navigation.redirectCount,
243
+ type: navigation.type,
244
+ unloadEventEnd: Math.round(navigation.unloadEventEnd),
245
+ unloadEventStart: Math.round(navigation.unloadEventStart),
246
+ workerStart: Math.round(navigation.workerStart),
247
+ nextHopProtocol: navigation.nextHopProtocol
248
+
249
+ // The following properties are ignored because they provided limited value on a modern stack (e.g. the content
250
+ // is usually rendered and interactive before the dom is fully parsed, dont't play well with streamed content...)
251
+ // * domComplete
252
+ // * domContentLoadedEventEnd
253
+ // * domContentLoadedEventStart
254
+ // * domInteractive
255
+ // * loadEventEnd
256
+ // * loadEventStart
257
+ };
258
+ return {
259
+ 'metrics:navigation': metrics
260
+ };
261
+ };
262
+ var getPPSMetrics = function getPPSMetrics(interaction) {
263
+ var _interaction$apdex2;
264
+ var start = interaction.start,
265
+ end = interaction.end;
266
+ var config = getConfig();
267
+ var interactionStatus = getInteractionStatus(interaction);
268
+ var pageVisibilityUpToTTAI = getPageVisibilityUpToTTAI(interaction);
269
+ var tti = (_interaction$apdex2 = interaction.apdex) === null || _interaction$apdex2 === void 0 || (_interaction$apdex2 = _interaction$apdex2[0]) === null || _interaction$apdex2 === void 0 ? void 0 : _interaction$apdex2.stopTime;
270
+ var ttai = interactionStatus.originalInteractionStatus === 'SUCCEEDED' && pageVisibilityUpToTTAI === 'visible' ? Math.round(end - start) : undefined;
271
+ var PPSMetricsAtTTI = tti !== undefined ? getLighthouseMetrics({
272
+ start: start,
273
+ stop: tti
274
+ }) : null;
275
+ var PPSMetricsAtTTAI = ttai !== undefined ? getLighthouseMetrics({
276
+ start: start,
277
+ stop: interaction.end
278
+ }) : null;
279
+ if (config !== null && config !== void 0 && config.shouldCalculateLighthouseMetricsFromTTAI && PPSMetricsAtTTAI !== null) {
280
+ return PPSMetricsAtTTAI;
281
+ }
282
+ if (PPSMetricsAtTTI !== null) {
283
+ return _objectSpread(_objectSpread({}, PPSMetricsAtTTI), {}, {
284
+ 'metrics@ttai': PPSMetricsAtTTAI
285
+ });
286
+ }
287
+ return {};
288
+ };
289
+ function getSSRProperties(type) {
290
+ return {
291
+ 'ssr:success': getSSRSuccess(type),
292
+ 'ssr:featureFlags': getSSRFeatureFlags(type)
293
+ };
294
+ }
295
+ var getBrowserMetadata = function getBrowserMetadata() {
296
+ var data = {};
297
+ var now = new Date();
298
+ data['event:localHour'] = now.getHours(); // returns the hours for this date according to local time
299
+ data['event:localDayOfWeek'] = now.getDay(); // Sunday - Saturday : 0 - 6
300
+ data['event:localTimezoneOffset'] = now.getTimezoneOffset(); // A number representing the difference, in minutes, between the date as evaluated in the UTC time zone and as evaluated in the local time zone.
301
+
302
+ if (navigator.userAgent != null) {
303
+ var browser = Bowser.getParser(navigator.userAgent);
304
+ data['event:browser:name'] = browser.getBrowserName();
305
+ data['event:browser:version'] = browser.getBrowserVersion();
306
+ }
307
+ if (navigator.hardwareConcurrency != null) {
308
+ data['event:cpus'] = navigator.hardwareConcurrency;
309
+ }
310
+ if (navigator.deviceMemory != null) {
311
+ data['event:memory'] = navigator.deviceMemory;
312
+ }
313
+
314
+ // eslint-disable-next-line compat/compat
315
+ if (navigator.connection != null) {
316
+ data['event:network:effectiveType'] = navigator.connection.effectiveType;
317
+ data['event:network:rtt'] = navigator.connection.rtt;
318
+ data['event:network:downlink'] = navigator.connection.downlink;
319
+ }
320
+ return data;
321
+ };
322
+ var getTracingContextData = function getTracingContextData(interaction) {
323
+ var trace = interaction.trace,
324
+ start = interaction.start;
325
+ var tracingContextData = {};
326
+ if (trace) {
327
+ tracingContextData = {
328
+ 'ufo:tracingContext': {
329
+ 'X-B3-TraceId': trace.traceId,
330
+ 'X-B3-SpanId': trace.spanId,
331
+ // eslint-disable-next-line compat/compat
332
+ browserTimeOrigin: +(performance.timeOrigin + start).toFixed(2)
333
+ }
334
+ };
335
+ }
336
+ return tracingContextData;
337
+ };
338
+
339
+ // interaction metric
340
+
341
+ function optimizeLabelStack(labelStack) {
342
+ return labelStack.map(function (ls) {
343
+ return _objectSpread({
344
+ n: ls.name
345
+ }, ls.segmentId ? {
346
+ s: ls.segmentId
347
+ } : {});
348
+ });
349
+ }
350
+ function optimizeCustomData(interaction) {
351
+ var customData = interaction.customData,
352
+ legacyMetrics = interaction.legacyMetrics;
353
+ var customDataMap = customData.reduce(function (result, _ref2) {
354
+ var _result$get$data, _result$get;
355
+ var labelStack = _ref2.labelStack,
356
+ data = _ref2.data;
357
+ var label = stringifyLabelStackFully(labelStack);
358
+ var value = (_result$get$data = (_result$get = result.get(label)) === null || _result$get === void 0 ? void 0 : _result$get.data) !== null && _result$get$data !== void 0 ? _result$get$data : {};
359
+ result.set(label, {
360
+ labelStack: optimizeLabelStack(labelStack),
361
+ data: Object.assign(value, data)
362
+ });
363
+ return result;
364
+ }, new Map());
365
+ if (legacyMetrics) {
366
+ var legacyMetricsFiltered = legacyMetrics.filter(function (item) {
367
+ return item.type === 'PAGE_LOAD';
368
+ }).reduce(function (result, currentValue) {
369
+ for (var _i = 0, _Object$entries = Object.entries(currentValue.custom || {}); _i < _Object$entries.length; _i++) {
370
+ var _result$get$data2, _result$get2;
371
+ var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
372
+ _key = _Object$entries$_i[0],
373
+ value = _Object$entries$_i[1];
374
+ var label = stringifyLabelStackFully([]);
375
+ var labelValue = (_result$get$data2 = (_result$get2 = result.get(label)) === null || _result$get2 === void 0 ? void 0 : _result$get2.data) !== null && _result$get$data2 !== void 0 ? _result$get$data2 : {};
376
+ result.set(label, {
377
+ labelStack: optimizeLabelStack([]),
378
+ data: Object.assign(labelValue, _defineProperty({}, _key, value))
379
+ });
380
+ }
381
+ return result;
382
+ }, new Map());
383
+ return [].concat(_toConsumableArray(customDataMap.values()), _toConsumableArray(legacyMetricsFiltered.values()));
384
+ }
385
+ return _toConsumableArray(customDataMap.values());
386
+ }
387
+ function optimizeReactProfilerTimings(reactProfilerTimings, interactionStart) {
388
+ var reactProfilerTimingsMap = reactProfilerTimings.reduce(function (result, _ref3) {
389
+ var labelStack = _ref3.labelStack,
390
+ startTime = _ref3.startTime,
391
+ commitTime = _ref3.commitTime,
392
+ actualDuration = _ref3.actualDuration,
393
+ type = _ref3.type;
394
+ if (labelStack && startTime >= interactionStart) {
395
+ var label = stringifyLabelStackFully(labelStack);
396
+ var start = Math.round(startTime);
397
+ var end = Math.round(commitTime);
398
+ var timing = result.get(label) || {
399
+ labelStack: optimizeLabelStack(labelStack),
400
+ startTime: start,
401
+ endTime: end,
402
+ mountCount: 0,
403
+ rerenderCount: 0,
404
+ renderDuration: 0
405
+ };
406
+ if (start < timing.startTime) {
407
+ timing.startTime = start;
408
+ }
409
+ if (end > timing.endTime) {
410
+ timing.endTime = end;
411
+ }
412
+ if (type === 'mount') {
413
+ timing.mountCount += 1;
414
+ }
415
+ if (type === 'update') {
416
+ timing.rerenderCount += 1;
417
+ }
418
+ timing.renderDuration += Math.round(actualDuration);
419
+ result.set(label, timing);
420
+ }
421
+ return result;
422
+ }, new Map());
423
+ return _toConsumableArray(reactProfilerTimingsMap.values());
424
+ }
425
+ function optimizeRedirects(redirects, interactionStart) {
426
+ var lastRedirectTime = interactionStart;
427
+ var updatedRedirects = redirects.sort(function (a, b) {
428
+ return a.time - b.time;
429
+ }).reduce(function (result, redirect) {
430
+ var fromInteractionName = redirect.fromInteractionName,
431
+ time = redirect.time;
432
+ if (lastRedirectTime >= interactionStart) {
433
+ result.push({
434
+ labelStack: [{
435
+ n: fromInteractionName
436
+ }],
437
+ startTime: Math.round(lastRedirectTime),
438
+ endTime: Math.round(time)
439
+ });
440
+ }
441
+ lastRedirectTime = time;
442
+ return result;
443
+ }, []);
444
+ return updatedRedirects;
445
+ }
446
+ function optimizeHoldInfo(holdInfo, interactionStart) {
447
+ var holdInfoMap = holdInfo.reduce(function (result, hold) {
448
+ var labelStack = hold.labelStack,
449
+ name = hold.name,
450
+ start = hold.start,
451
+ end = hold.end,
452
+ ignoreOnSubmit = hold.ignoreOnSubmit;
453
+ if (labelStack && !ignoreOnSubmit && start >= interactionStart) {
454
+ var label = stringifyLabelStackFully([].concat(_toConsumableArray(labelStack), [{
455
+ name: name
456
+ }]));
457
+ var startTime = Math.round(start);
458
+ var endTime = Math.round(end);
459
+ var timing = result.get(label) || {
460
+ labelStack: optimizeLabelStack([].concat(_toConsumableArray(labelStack), [{
461
+ name: name
462
+ }])),
463
+ startTime: startTime,
464
+ endTime: endTime
465
+ };
466
+ if (startTime < timing.startTime) {
467
+ timing.startTime = startTime;
468
+ }
469
+ if (endTime > timing.endTime) {
470
+ timing.endTime = endTime;
471
+ }
472
+ result.set(label, timing);
473
+ }
474
+ return result;
475
+ }, new Map());
476
+ return _toConsumableArray(holdInfoMap.values());
477
+ }
478
+ function optimizeSpans(spans, interactionStart) {
479
+ var updatedSpans = spans.reduce(function (result, span) {
480
+ var labelStack = span.labelStack,
481
+ type = span.type,
482
+ name = span.name,
483
+ start = span.start,
484
+ end = span.end;
485
+ if (labelStack && start >= interactionStart) {
486
+ result.push({
487
+ labelStack: optimizeLabelStack([].concat(_toConsumableArray(labelStack), [{
488
+ name: name
489
+ }])),
490
+ startTime: Math.round(start),
491
+ endTime: Math.round(end),
492
+ type: type
493
+ });
494
+ }
495
+ return result;
496
+ }, []);
497
+ return updatedSpans;
498
+ }
499
+ function optimizeRequestInfo(requestInfo, interactionStart) {
500
+ var updatedRequestInfo = requestInfo.reduce(function (result, reqInfo) {
501
+ var labelStack = reqInfo.labelStack,
502
+ name = reqInfo.name,
503
+ start = reqInfo.start,
504
+ end = reqInfo.end,
505
+ networkStart = reqInfo.networkStart,
506
+ networkComplete = reqInfo.networkComplete;
507
+ var startTime = networkStart !== null && networkStart !== void 0 ? networkStart : start;
508
+ var endTime = networkComplete !== null && networkComplete !== void 0 ? networkComplete : end;
509
+ if (labelStack && start >= interactionStart && endTime) {
510
+ result.push({
511
+ labelStack: optimizeLabelStack([].concat(_toConsumableArray(labelStack), [{
512
+ name: name
513
+ }])),
514
+ startTime: Math.round(startTime),
515
+ endTime: Math.round(endTime)
516
+ });
517
+ }
518
+ return result;
519
+ }, []);
520
+ return updatedRequestInfo;
521
+ }
522
+ function optimizeCustomTimings(customTimings, interactionStart) {
523
+ var updatedCustomTimings = customTimings.reduce(function (result, item) {
524
+ Object.keys(item.data).forEach(function (key) {
525
+ if (item.data[key].startTime >= interactionStart) {
526
+ result.push({
527
+ labelStack: [{
528
+ n: key
529
+ }],
530
+ startTime: Math.round(item.data[key].startTime),
531
+ endTime: Math.round(item.data[key].endTime)
532
+ });
533
+ }
534
+ });
535
+ return result;
536
+ }, []);
537
+ return updatedCustomTimings;
538
+ }
539
+ function optimizeMarks(marks) {
540
+ return marks.map(function (_ref4) {
541
+ var labelStack = _ref4.labelStack,
542
+ time = _ref4.time,
543
+ others = _objectWithoutProperties(_ref4, _excluded);
544
+ return _objectSpread(_objectSpread({}, others), {}, {
545
+ labelStack: labelStack && optimizeLabelStack(labelStack),
546
+ time: Math.round(time)
547
+ });
548
+ });
549
+ }
550
+ function optimizeApdex(apdex) {
551
+ return apdex.map(function (_ref5) {
552
+ var stopTime = _ref5.stopTime,
553
+ labelStack = _ref5.labelStack,
554
+ others = _objectWithoutProperties(_ref5, _excluded2);
555
+ return _objectSpread(_objectSpread({}, others), {}, {
556
+ stopTime: Math.round(stopTime)
557
+ }, labelStack ? {
558
+ labelStack: optimizeLabelStack(labelStack)
559
+ } : {});
560
+ });
561
+ }
562
+
563
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
564
+ function objectToArray() {
565
+ var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
566
+ return Object.keys(obj).reduce(function (result, key) {
567
+ result.push({
568
+ label: key,
569
+ data: obj[key]
570
+ });
571
+ return result;
572
+ },
573
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
574
+ []);
575
+ }
576
+ function getBM3SubmetricsTimings(submetrics) {
577
+ if (!submetrics) {
578
+ return null;
579
+ }
580
+ var submetricsTimings = submetrics.filter(function (item) {
581
+ return typeof item.stop === 'number' && !!item.key && typeof item.start === 'number';
582
+ }).map(function (item) {
583
+ var childSubmetrics;
584
+ var newKey = "include/".concat(item.key);
585
+ if (item.submetrics) {
586
+ childSubmetrics = getBM3SubmetricsTimings(item.submetrics);
587
+ }
588
+ return _objectSpread(_defineProperty({}, newKey, {
589
+ endTime: item.stop - item.start,
590
+ startTime: item.start
591
+ }), childSubmetrics ? childSubmetrics : {});
592
+ });
593
+ return submetricsTimings;
594
+ }
595
+ function getBm3TrackerTimings(interaction) {
596
+ var interactionLegacyMetrics = interaction.legacyMetrics;
597
+ if (!interactionLegacyMetrics) {
598
+ return {};
599
+ }
600
+ var legacyMetrics = interactionLegacyMetrics.map(function (item) {
601
+ var _item$config, _item$config2, _item$marks;
602
+ return {
603
+ key: item.key,
604
+ startTime: item.start,
605
+ stopTime: item.stop,
606
+ type: (_item$config = item.config) === null || _item$config === void 0 ? void 0 : _item$config.type,
607
+ reactUFOName: (_item$config2 = item.config) === null || _item$config2 === void 0 ? void 0 : _item$config2.reactUFOName,
608
+ fmp: ((_item$marks = item.marks) === null || _item$marks === void 0 ? void 0 : _item$marks['fmp']) || item.stop,
609
+ source: 'bm3',
610
+ timings: getBm3Timings(item.marks, item.config.timings),
611
+ submetrics: getBM3SubmetricsTimings(item.submetrics),
612
+ pageVisibleState: item.pageVisibleState
613
+ };
614
+ }).filter(function (item) {
615
+ return !!item.type;
616
+ });
617
+ return {
618
+ legacyMetrics: legacyMetrics
619
+ };
620
+ }
621
+ function getSSRDoneTimeValue(config) {
622
+ var _config$ssr, _config$ssr2;
623
+ return config !== null && config !== void 0 && (_config$ssr = config.ssr) !== null && _config$ssr !== void 0 && _config$ssr.getSSRDoneTime ? config === null || config === void 0 || (_config$ssr2 = config.ssr) === null || _config$ssr2 === void 0 ? void 0 : _config$ssr2.getSSRDoneTime() : ssr.getSSRDoneTime();
624
+ }
625
+ function createInteractionMetricsPayload(interaction, interactionId) {
626
+ var _window$location, _config$additionalPay;
627
+ var interactionPayloadStart = performance.now();
628
+ var config = getConfig();
629
+ if (!config) {
630
+ throw Error('UFO Configuration not provided');
631
+ }
632
+ var end = interaction.end,
633
+ start = interaction.start,
634
+ ufoName = interaction.ufoName,
635
+ knownSegments = interaction.knownSegments,
636
+ rate = interaction.rate,
637
+ type = interaction.type,
638
+ abortReason = interaction.abortReason,
639
+ routeName = interaction.routeName,
640
+ featureFlags = interaction.featureFlags,
641
+ previousInteractionName = interaction.previousInteractionName,
642
+ isPreviousInteractionAborted = interaction.isPreviousInteractionAborted,
643
+ abortedByInteractionName = interaction.abortedByInteractionName;
644
+ var pageVisibilityAtTTI = getPageVisibilityUpToTTI(interaction);
645
+ var pageVisibilityAtTTAI = getPageVisibilityUpToTTAI(interaction);
646
+ var segments = config.killswitchNestedSegments ? [] : knownSegments;
647
+ var isDetailedPayload = pageVisibilityAtTTAI === 'visible';
648
+ var isPageLoad = type === 'page_load';
649
+ var calculatePageVisibilityFromTheStartOfPageLoad = config.enableBetterPageVisibilityApi && isPageLoad;
650
+ var moreAccuratePageVisibilityAtTTI = calculatePageVisibilityFromTheStartOfPageLoad ? getMoreAccuratePageVisibilityUpToTTI(interaction) : null;
651
+ var moreAccuratePageVisibilityAtTTAI = calculatePageVisibilityFromTheStartOfPageLoad ? getMoreAccuratePageVisibilityUpToTTAI(interaction) : null;
652
+ var labelStack = interaction.labelStack ? {
653
+ labelStack: optimizeLabelStack(interaction.labelStack)
654
+ } : {};
655
+ // Page Load
656
+ var getPageLoadInteractionMetrics = function getPageLoadInteractionMetrics() {
657
+ var _config$ssr3;
658
+ if (!isPageLoad) {
659
+ return {};
660
+ }
661
+ var config = getConfig();
662
+ var SSRDoneTimeValue = getSSRDoneTimeValue(config);
663
+ var SSRDoneTime = SSRDoneTimeValue !== undefined ? {
664
+ SSRDoneTime: Math.round(SSRDoneTimeValue)
665
+ } : {};
666
+ return _objectSpread(_objectSpread({}, SSRDoneTime), {}, {
667
+ isBM3ConfigSSRDoneAsFmp: interaction.metaData.__legacy__bm3ConfigSSRDoneAsFmp,
668
+ isUFOConfigSSRDoneAsFmp: interaction.metaData.__legacy__bm3ConfigSSRDoneAsFmp || !!(config !== null && config !== void 0 && (_config$ssr3 = config.ssr) !== null && _config$ssr3 !== void 0 && _config$ssr3.getSSRDoneTime)
669
+ });
670
+ };
671
+ // Detailed payload. Page visibility = visible
672
+ var getDetailedInteractionMetrics = function getDetailedInteractionMetrics() {
673
+ if (window.__UFO_COMPACT_PAYLOAD__ || !isDetailedPayload) {
674
+ return {};
675
+ }
676
+ var spans = [].concat(_toConsumableArray(interaction.spans), _toConsumableArray(atlaskitInteractionSpans));
677
+ atlaskitInteractionSpans.length = 0;
678
+ return {
679
+ errors: interaction.errors.map(function (_ref6) {
680
+ var labelStack = _ref6.labelStack,
681
+ others = _objectWithoutProperties(_ref6, _excluded3);
682
+ return _objectSpread(_objectSpread({}, others), {}, {
683
+ labelStack: labelStack && optimizeLabelStack(labelStack)
684
+ });
685
+ }),
686
+ holdActive: _toConsumableArray(interaction.holdActive.values()),
687
+ redirects: optimizeRedirects(interaction.redirects, start),
688
+ holdInfo: optimizeHoldInfo(interaction.holdInfo, start),
689
+ spans: optimizeSpans(spans, start),
690
+ requestInfo: optimizeRequestInfo(interaction.requestInfo, start),
691
+ customTimings: optimizeCustomTimings(interaction.customTimings, start),
692
+ bundleEvalTimings: objectToArray(getBundleEvalTimings(start)),
693
+ resourceTimings: objectToArray(getResourceTimings(start, end))
694
+ };
695
+ };
696
+ // Page load & detailed payload
697
+ var getPageLoadDetailedInteractionMetrics = function getPageLoadDetailedInteractionMetrics() {
698
+ var _config$ssr4;
699
+ if (!isPageLoad || !isDetailedPayload) {
700
+ return {};
701
+ }
702
+ var config = getConfig();
703
+ return {
704
+ initialPageLoadExtraTimings: objectToArray(initialPageLoadExtraTiming.getTimings()),
705
+ SSRTimings: config !== null && config !== void 0 && (_config$ssr4 = config.ssr) !== null && _config$ssr4 !== void 0 && _config$ssr4.getSSRTimings ? config.ssr.getSSRTimings() : objectToArray(ssr.getSSRTimings())
706
+ };
707
+ };
708
+ var newUFOName = sanitizeUfoName(ufoName);
709
+ return {
710
+ actionSubject: 'experience',
711
+ action: 'measured',
712
+ eventType: 'operational',
713
+ source: 'measured',
714
+ tags: ['observability'],
715
+ attributes: {
716
+ properties: _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
717
+ // basic
718
+ 'event:hostname': ((_window$location = window.location) === null || _window$location === void 0 ? void 0 : _window$location.hostname) || 'unknown',
719
+ 'event:product': config.product,
720
+ 'event:schema': '1.0.0',
721
+ 'event:source': {
722
+ name: 'react-ufo/web',
723
+ version: REACT_UFO_VERSION,
724
+ payloadSource: 'platform'
725
+ },
726
+ 'event:region': config.region || 'unknown',
727
+ 'experience:key': 'custom.interaction-metrics',
728
+ 'experience:name': newUFOName
729
+ }, getBrowserMetadata()), getSSRProperties(type)), getPPSMetrics(interaction)), getPaintMetrics(type)), getNavigationMetrics(type)), getVCMetrics(interaction)), (_config$additionalPay = config.additionalPayloadData) === null || _config$additionalPay === void 0 ? void 0 : _config$additionalPay.call(config, interaction)), getTracingContextData(interaction)), {}, {
730
+ interactionMetrics: _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
731
+ namePrefix: config.namePrefix || '',
732
+ segmentPrefix: config.segmentPrefix || '',
733
+ interactionId: interactionId,
734
+ pageVisibilityAtTTI: pageVisibilityAtTTI,
735
+ pageVisibilityAtTTAI: pageVisibilityAtTTAI,
736
+ experimental__pageVisibilityAtTTI: moreAccuratePageVisibilityAtTTI,
737
+ experimental__pageVisibilityAtTTAI: moreAccuratePageVisibilityAtTTAI,
738
+ // raw interaction metrics
739
+ rate: rate,
740
+ routeName: routeName,
741
+ type: type,
742
+ abortReason: abortReason,
743
+ featureFlags: featureFlags,
744
+ previousInteractionName: previousInteractionName,
745
+ isPreviousInteractionAborted: isPreviousInteractionAborted,
746
+ abortedByInteractionName: abortedByInteractionName,
747
+ // performance
748
+ apdex: optimizeApdex(interaction.apdex),
749
+ end: Math.round(end),
750
+ start: Math.round(start),
751
+ segments: segments.map(function (_ref7) {
752
+ var labelStack = _ref7.labelStack,
753
+ others = _objectWithoutProperties(_ref7, _excluded4);
754
+ return _objectSpread(_objectSpread({}, others), {}, {
755
+ labelStack: optimizeLabelStack(labelStack)
756
+ });
757
+ }),
758
+ marks: optimizeMarks(interaction.marks),
759
+ customData: optimizeCustomData(interaction),
760
+ reactProfilerTimings: optimizeReactProfilerTimings(interaction.reactProfilerTimings, start)
761
+ }, labelStack), getPageLoadInteractionMetrics()), getDetailedInteractionMetrics()), getPageLoadDetailedInteractionMetrics()), getBm3TrackerTimings(interaction)),
762
+ 'ufo:payloadTime': roundEpsilon(performance.now() - interactionPayloadStart)
763
+ })
764
+ }
765
+ };
766
+ }
767
+ export function createPayloads(interactionId, interaction) {
768
+ var ufoNameOverride = getUfoNameOverride(interaction);
769
+ var modifiedInteraction = _objectSpread(_objectSpread({}, interaction), {}, {
770
+ ufoName: ufoNameOverride
771
+ });
772
+ var interactionMetricsPayload = createInteractionMetricsPayload(modifiedInteraction, interactionId);
773
+ return [interactionMetricsPayload];
774
+ }