@atlaskit/react-ufo 1.1.0 → 2.0.1

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