@atlaskit/react-ufo 1.0.1 → 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 +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 +815 -4
  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 +741 -4
  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 +778 -3
  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 +66 -2
  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 +66 -2
  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
@@ -1,22 +1,833 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
7
+ exports.ModuleLoadingProfiler = void 0;
8
+ exports.abort = abort;
9
+ exports.abortAll = abortAll;
10
+ exports.abortByNewInteraction = abortByNewInteraction;
11
+ exports.addApdex = addApdex;
12
+ exports.addApdexToAll = addApdexToAll;
13
+ exports.addBrowserMetricEvent = addBrowserMetricEvent;
14
+ exports.addCustomData = addCustomData;
6
15
  exports.addCustomSpans = addCustomSpans;
7
- exports.interactionSpans = void 0;
16
+ exports.addCustomTiming = addCustomTiming;
17
+ exports.addError = addError;
18
+ exports.addErrorToAll = addErrorToAll;
19
+ exports.addHold = addHold;
20
+ exports.addHoldByID = addHoldByID;
21
+ exports.addLoad = addLoad;
22
+ exports.addMark = addMark;
23
+ exports.addMarkToAll = addMarkToAll;
24
+ exports.addMetadata = addMetadata;
25
+ exports.addNewInteraction = addNewInteraction;
26
+ exports.addOnCancelCallback = addOnCancelCallback;
27
+ exports.addPreload = addPreload;
28
+ exports.addProfilerTimings = void 0;
29
+ exports.addRedirect = addRedirect;
30
+ exports.addRequestInfo = addRequestInfo;
31
+ exports.addSegment = addSegment;
32
+ exports.addSpan = addSpan;
33
+ exports.addSpanToAll = addSpanToAll;
34
+ exports.extractModuleName = extractModuleName;
35
+ exports.getActiveInteraction = getActiveInteraction;
36
+ exports.getCurrentInteractionType = getCurrentInteractionType;
37
+ exports.postInteractionLog = exports.interactionSpans = void 0;
38
+ exports.remove = remove;
39
+ exports.removeHoldByID = removeHoldByID;
40
+ exports.removeSegment = removeSegment;
41
+ exports.sinkPostInteractionLogHandler = exports.sinkInteractionHandler = void 0;
42
+ exports.tryComplete = tryComplete;
43
+ exports.updatePageLoadInteractionName = updatePageLoadInteractionName;
44
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
45
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
46
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
47
+ var _uuid = require("uuid");
48
+ var _coinflip = _interopRequireDefault(require("../coinflip"));
49
+ var _config = require("../config");
50
+ var _experienceTraceIdContext = require("../experience-trace-id-context");
51
+ var _featureFlagsAccessed = require("../feature-flags-accessed");
52
+ var _interactionIdContext = require("../interaction-id-context");
53
+ var _vc = require("../vc");
54
+ var _constants = _interopRequireDefault(require("./common/constants"));
55
+ var _postInteractionLog = _interopRequireDefault(require("./post-interaction-log"));
56
+ 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; }
57
+ 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; }
58
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
59
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
60
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
61
+ var PreviousInteractionLog = {
62
+ name: undefined,
63
+ isAborted: undefined
64
+ };
65
+ var postInteractionLog = exports.postInteractionLog = new _postInteractionLog.default();
66
+ var interactionQueue = [];
67
+ var segmentCache = new Map();
68
+ var CLEANUP_TIMEOUT = 60 * 1000;
69
+ var CLEANUP_TIMEOUT_AFTER_APDEX = 15 * 1000;
70
+ var segmentObservers = [];
71
+ function getActiveInteraction() {
72
+ var interactionId = (0, _interactionIdContext.getInteractionId)();
73
+ if (!interactionId.current) {
74
+ return;
75
+ }
76
+ return _constants.default.get(interactionId.current);
77
+ }
78
+ function labelStackToString(labelStack, name) {
79
+ var _stack$map;
80
+ var stack = (0, _toConsumableArray2.default)(labelStack !== null && labelStack !== void 0 ? labelStack : []);
81
+ if (name) {
82
+ stack.push({
83
+ name: name
84
+ });
85
+ }
86
+ return (_stack$map = stack.map(function (l) {
87
+ return l.name;
88
+ })) === null || _stack$map === void 0 ? void 0 : _stack$map.join('/');
89
+ }
90
+ function labelStackToIdString(labelStack) {
91
+ var _labelStack$map;
92
+ return labelStack === null || labelStack === void 0 || (_labelStack$map = labelStack.map(function (l) {
93
+ return 'segmentId' in l ? "".concat(l.name, ":").concat(l.segmentId) : "".concat(l.name);
94
+ })) === null || _labelStack$map === void 0 ? void 0 : _labelStack$map.join('/');
95
+ }
96
+ function addSegmentObserver(observer) {
97
+ segmentObservers.push(observer);
98
+ var _iterator = _createForOfIteratorHelper(segmentCache.values()),
99
+ _step;
100
+ try {
101
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
102
+ var segmentInfo = _step.value;
103
+ observer.onAdd(segmentInfo);
104
+ }
105
+ } catch (err) {
106
+ _iterator.e(err);
107
+ } finally {
108
+ _iterator.f();
109
+ }
110
+ }
111
+ function removeSegmentObserver(observer) {
112
+ var index = segmentObservers.findIndex(function (obs) {
113
+ return obs === observer;
114
+ });
115
+ if (index !== -1) {
116
+ segmentObservers.splice(index, 1);
117
+ }
118
+ }
119
+ function remove(interactionId) {
120
+ _constants.default.delete(interactionId);
121
+ }
122
+ function updatePageLoadInteractionName(ufoName) {
123
+ var routeName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ufoName;
124
+ var interaction = getActiveInteraction();
125
+ if (!interaction || interaction.type !== 'page_load' && interaction.type !== 'transition') {
126
+ return;
127
+ }
128
+ interaction.ufoName = ufoName;
129
+ interaction.routeName = routeName;
130
+ }
131
+ function addMetadata(interactionId, data) {
132
+ var interaction = _constants.default.get(interactionId);
133
+ if (interaction != null) {
134
+ Object.keys(data).forEach(function (key) {
135
+ interaction.metaData[key] = data[key];
136
+ });
137
+ }
138
+ }
139
+ function addCustomData(interactionId, labelStack, data) {
140
+ var interaction = _constants.default.get(interactionId);
141
+ if (interaction != null) {
142
+ Object.keys(data).forEach(function (i) {
143
+ interaction.customData.push({
144
+ labelStack: labelStack,
145
+ data: (0, _defineProperty2.default)({}, i, data[i])
146
+ });
147
+ });
148
+ }
149
+ }
150
+ function addCustomTiming(interactionId, labelStack, data) {
151
+ var interaction = _constants.default.get(interactionId);
152
+ if (interaction != null) {
153
+ interaction.customTimings.push({
154
+ labelStack: labelStack,
155
+ data: data
156
+ });
157
+ if (window.__REACT_UFO_ENABLE_PERF_TRACING || process.env.NODE_ENV !== 'production') {
158
+ for (var _i = 0, _Object$entries = Object.entries(data); _i < _Object$entries.length; _i++) {
159
+ var _Object$entries$_i = (0, _slicedToArray2.default)(_Object$entries[_i], 2),
160
+ key = _Object$entries$_i[0],
161
+ timingData = _Object$entries$_i[1];
162
+ var startTime = timingData.startTime,
163
+ endTime = timingData.endTime;
164
+ try {
165
+ // for Firefox 102 and older
166
+ performance.measure("\uD83D\uDEF8 ".concat(labelStackToString(labelStack, key), " [custom_timing]"), {
167
+ start: startTime,
168
+ end: endTime
169
+ });
170
+ } catch (e) {
171
+ // do nothing
172
+ }
173
+ }
174
+ }
175
+ }
176
+ }
177
+ function addMark(interactionId, type, name, labelStack) {
178
+ var time = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : performance.now();
179
+ var interaction = _constants.default.get(interactionId);
180
+ if (interaction != null) {
181
+ interaction.marks.push({
182
+ type: type,
183
+ name: name,
184
+ labelStack: labelStack,
185
+ time: time
186
+ });
187
+ }
188
+ if (window.__REACT_UFO_ENABLE_PERF_TRACING || process.env.NODE_ENV !== 'production') {
189
+ performance.mark("\uD83D\uDEF8 ".concat(labelStackToString(labelStack, name), " [").concat(type, "]"), {
190
+ startTime: time
191
+ });
192
+ }
193
+ }
194
+ function addMarkToAll(type, name, labelStack) {
195
+ var time = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : performance.now();
196
+ _constants.default.forEach(function (interaction) {
197
+ interaction.marks.push({
198
+ type: type,
199
+ name: name,
200
+ labelStack: labelStack,
201
+ time: time
202
+ });
203
+ });
204
+ if (window.__REACT_UFO_ENABLE_PERF_TRACING || process.env.NODE_ENV !== 'production') {
205
+ performance.mark("\uD83D\uDEF8 ".concat(labelStackToString(labelStack, name), " [").concat(type, "]"), {
206
+ startTime: time
207
+ });
208
+ }
209
+ }
210
+ function addSpan(interactionId, type, name, labelStack, start) {
211
+ var end = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : performance.now();
212
+ var size = arguments.length > 6 ? arguments[6] : undefined;
213
+ var interaction = _constants.default.get(interactionId);
214
+ if (interaction != null) {
215
+ interaction.spans.push({
216
+ type: type,
217
+ name: name,
218
+ labelStack: labelStack,
219
+ start: start,
220
+ end: end,
221
+ size: size
222
+ });
223
+ if (window.__REACT_UFO_ENABLE_PERF_TRACING || process.env.NODE_ENV !== 'production') {
224
+ try {
225
+ // for Firefox 102 and older
226
+ performance.measure("\uD83D\uDEF8 ".concat(labelStackToString(labelStack, name), " [").concat(type, "]"), {
227
+ start: start,
228
+ end: end
229
+ });
230
+ } catch (e) {
231
+ // do nothing
232
+ }
233
+ }
234
+ }
235
+ }
236
+ function addSpanToAll(type, name, labelStack, start) {
237
+ var end = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : performance.now();
238
+ var size = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;
239
+ _constants.default.forEach(function (interaction) {
240
+ interaction.spans.push({
241
+ type: type,
242
+ name: name,
243
+ labelStack: labelStack,
244
+ start: start,
245
+ end: end,
246
+ size: size
247
+ });
248
+ });
249
+ if (window.__REACT_UFO_ENABLE_PERF_TRACING || process.env.NODE_ENV !== 'production') {
250
+ try {
251
+ // for Firefox 102 and older
252
+ performance.measure("\uD83D\uDEF8 ".concat(labelStackToString(labelStack, name), " [").concat(type, "]"), {
253
+ start: start,
254
+ end: end
255
+ });
256
+ } catch (e) {
257
+ // do nothing
258
+ }
259
+ }
260
+ }
261
+ function addPreload(moduleId, timestamp) {
262
+ addMarkToAll('bundle_preload', moduleId, null, timestamp);
263
+ }
264
+ function addLoad(identifier, start, end) {
265
+ addSpanToAll('bundle_load', identifier, null, start, end - start);
266
+ }
267
+ var moduleLoadingRequests = {};
268
+ function extractModuleName(input) {
269
+ var result = input !== null && input !== void 0 ? input : '';
270
+ result = result.replace(/^\.\/src\/packages\//, '');
271
+ result = result.replace(/^\.\/node_modules\//, '');
272
+ result = result.replace(/(\/src)?\/(index|main)\.(tsx|ts|js|jsx)$/, '');
273
+ return result;
274
+ }
275
+ function addHoldCriterion(id, labelStack, name, startTime) {
276
+ var _window$__CRITERION__;
277
+ if (!((_window$__CRITERION__ = window.__CRITERION__) !== null && _window$__CRITERION__ !== void 0 && _window$__CRITERION__.addUFOHold)) {
278
+ return;
279
+ }
280
+ window.__CRITERION__.addUFOHold(id, labelStackToString(labelStack), name, startTime);
281
+ }
282
+ function removeHoldCriterion(id) {
283
+ var _window$__CRITERION__2;
284
+ if (!((_window$__CRITERION__2 = window.__CRITERION__) !== null && _window$__CRITERION__2 !== void 0 && _window$__CRITERION__2.removeUFOHold)) {
285
+ return;
286
+ }
287
+ window.__CRITERION__.removeUFOHold(id);
288
+ }
289
+ function addHold(interactionId, labelStack, name) {
290
+ var interaction = _constants.default.get(interactionId);
291
+ var id = (0, _uuid.v4)();
292
+ if (interaction != null) {
293
+ var start = performance.now();
294
+ interaction.holdActive.set(id, {
295
+ labelStack: labelStack,
296
+ name: name,
297
+ start: start
298
+ });
299
+ addHoldCriterion(id, labelStack, name, start);
300
+ return function () {
301
+ var end = performance.now();
302
+ if (window.__REACT_UFO_ENABLE_PERF_TRACING || process.env.NODE_ENV !== 'production') {
303
+ try {
304
+ // for Firefox 102 and older
305
+ performance.measure("\uD83D\uDEF8 ".concat(labelStackToString(labelStack, name), " [hold]"), {
306
+ start: start,
307
+ end: end
308
+ });
309
+ } catch (e) {
310
+ // do nothing
311
+ }
312
+ }
313
+ removeHoldCriterion(id);
314
+ var currentInteraction = _constants.default.get(interactionId);
315
+ var currentHold = interaction.holdActive.get(id);
316
+ if (currentInteraction != null && currentHold != null) {
317
+ currentInteraction.holdInfo.push(_objectSpread(_objectSpread({}, currentHold), {}, {
318
+ end: end
319
+ }));
320
+ interaction.holdActive.delete(id);
321
+ }
322
+ };
323
+ }
324
+ return function () {};
325
+ }
326
+ function addHoldByID(interactionId, labelStack, name, id, ignoreOnSubmit) {
327
+ var interaction = _constants.default.get(interactionId);
328
+ if (interaction != null) {
329
+ var start = performance.now();
330
+ interaction.holdActive.set(id, {
331
+ labelStack: labelStack,
332
+ name: name,
333
+ start: start,
334
+ ignoreOnSubmit: ignoreOnSubmit
335
+ });
336
+ addHoldCriterion(id, labelStack, name, start);
337
+ }
338
+ return function () {};
339
+ }
340
+ function removeHoldByID(interactionId, id) {
341
+ var interaction = _constants.default.get(interactionId);
342
+ if (interaction != null) {
343
+ var end = performance.now();
344
+ var currentInteraction = _constants.default.get(interactionId);
345
+ var currentHold = interaction.holdActive.get(id);
346
+ if (currentInteraction != null && currentHold != null) {
347
+ currentInteraction.holdInfo.push(_objectSpread(_objectSpread({}, currentHold), {}, {
348
+ end: end
349
+ }));
350
+ interaction.holdActive.delete(id);
351
+ removeHoldCriterion(id);
352
+ }
353
+ }
354
+ }
355
+ function getCurrentInteractionType(interactionId) {
356
+ var interaction = _constants.default.get(interactionId);
357
+ if (interaction) {
358
+ return interaction.type;
359
+ }
360
+ return null;
361
+ }
362
+ var ModuleLoadingProfiler = exports.ModuleLoadingProfiler = {
363
+ onPreload: function onPreload(moduleId, _priority) {
364
+ addPreload(extractModuleName(moduleId), performance.now());
365
+ },
366
+ onLoadStart: function onLoadStart(info) {
367
+ var timeoutId = setTimeout(function () {
368
+ delete moduleLoadingRequests[info.identifier];
369
+ }, 30000);
370
+ var request = {
371
+ start: performance.now(),
372
+ timeoutId: timeoutId
373
+ };
374
+ moduleLoadingRequests[info.identifier] = request;
375
+ },
376
+ onLoadComplete: function onLoadComplete(info) {
377
+ var request = moduleLoadingRequests[info.identifier];
378
+ if (request) {
379
+ clearTimeout(request.timeoutId);
380
+ delete moduleLoadingRequests[info.identifier];
381
+ addLoad(extractModuleName(info.identifier), request.start, performance.now());
382
+ }
383
+ },
384
+ placeholderFallBackMounted: function placeholderFallBackMounted(id, moduleId) {
385
+ var interactionId = (0, _interactionIdContext.getInteractionId)();
386
+ var currentInteractionId = interactionId.current;
387
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
388
+ addHoldByID(currentInteractionId, [], moduleId, id);
389
+ },
390
+ placeholderFallBackUnmounted: function placeholderFallBackUnmounted(id) {
391
+ var interactionId = (0, _interactionIdContext.getInteractionId)();
392
+ var currentInteractionId = interactionId.current;
393
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
394
+ removeHoldByID(currentInteractionId, id);
395
+ }
396
+ };
397
+ function addError(interactionId, name, labelStack, errorType, errorMessage, errorStack, forcedError) {
398
+ var interaction = _constants.default.get(interactionId);
399
+ if (interaction != null) {
400
+ interaction.errors.push({
401
+ name: name,
402
+ labelStack: labelStack,
403
+ errorType: errorType,
404
+ errorMessage: errorMessage,
405
+ errorStack: errorStack,
406
+ forcedError: forcedError
407
+ });
408
+ }
409
+ }
410
+ function addErrorToAll(name, labelStack, errorType, errorMessage, errorStack) {
411
+ _constants.default.forEach(function (interaction) {
412
+ interaction.errors.push({
413
+ name: name,
414
+ labelStack: labelStack,
415
+ errorType: errorType,
416
+ errorMessage: errorMessage,
417
+ errorStack: errorStack
418
+ });
419
+ });
420
+ }
421
+ var addProfilerTimings = exports.addProfilerTimings = function addProfilerTimings(interactionId, labelStack, type, actualDuration, baseDuration, startTime, commitTime) {
422
+ var _getConfig;
423
+ if (window.__REACT_UFO_ENABLE_PERF_TRACING || process.env.NODE_ENV !== 'production') {
424
+ try {
425
+ // for Firefox 102 and older
426
+ performance.measure("\uD83D\uDEF8 ".concat(labelStackToString(labelStack), " [react-profiler] ").concat(type), {
427
+ start: startTime,
428
+ duration: actualDuration
429
+ });
430
+ } catch (e) {
431
+ // do nothing
432
+ }
433
+ }
434
+ var interaction = _constants.default.get(interactionId);
435
+ if (interaction != null) {
436
+ interaction.reactProfilerTimings.push({
437
+ labelStack: labelStack,
438
+ type: type,
439
+ actualDuration: actualDuration,
440
+ baseDuration: baseDuration,
441
+ startTime: startTime,
442
+ commitTime: commitTime
443
+ });
444
+ } else if ((_getConfig = (0, _config.getConfig)()) !== null && _getConfig !== void 0 && _getConfig.captureLateReRenders) {
445
+ postInteractionLog.addProfilerTimings(labelStack, type, actualDuration, baseDuration, startTime, commitTime);
446
+ }
447
+ };
448
+ var pushToQueue = function pushToQueue(id, data) {
449
+ interactionQueue.push({
450
+ id: id,
451
+ data: data
452
+ });
453
+ };
454
+ var handleInteraction = pushToQueue;
455
+ function callCleanUpCallbacks(interaction) {
456
+ interaction.cleanupCallbacks.reverse().forEach(function (cleanUpCallback) {
457
+ cleanUpCallback();
458
+ });
459
+ }
460
+ var finishInteraction = function finishInteraction(id, data) {
461
+ var _getConfig2;
462
+ var endTime = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : performance.now();
463
+ // eslint-disable-next-line no-param-reassign
464
+ data.end = endTime;
465
+ try {
466
+ // for Firefox 102 and older
467
+ performance.measure("\uD83D\uDEF8 [".concat(data.type, "] ").concat(data.ufoName, " [ttai]"), {
468
+ start: data.start,
469
+ end: data.end
470
+ });
471
+ } catch (e) {
472
+ // do nothing
473
+ }
474
+ if (data.featureFlags) {
475
+ // eslint-disable-next-line no-param-reassign
476
+ data.featureFlags.during = Object.fromEntries(_featureFlagsAccessed.currentFeatureFlagsAccessed);
477
+ }
478
+ (0, _experienceTraceIdContext.clearActiveTrace)();
479
+ callCleanUpCallbacks(data);
480
+ if ((_getConfig2 = (0, _config.getConfig)()) !== null && _getConfig2 !== void 0 && (_getConfig2 = _getConfig2.vc) !== null && _getConfig2 !== void 0 && _getConfig2.stopVCAtInteractionFinish) {
481
+ data.vc = (0, _vc.getVCObserver)().getVCRawData();
482
+ }
483
+ remove(id);
484
+ PreviousInteractionLog.name = data.ufoName || 'unknown';
485
+ PreviousInteractionLog.isAborted = data.abortReason != null;
486
+ if (data.ufoName) {
487
+ handleInteraction(id, data);
488
+ }
489
+ if (window.__REACT_UFO_ENABLE_PERF_TRACING || process.env.NODE_ENV !== 'production') {
490
+ var profilerTimingMap = new Map();
491
+ data.reactProfilerTimings.forEach(function (profilerTiming) {
492
+ var labelStackId = labelStackToIdString(profilerTiming.labelStack);
493
+ if (labelStackId) {
494
+ var _profilerTimingMap$ge, _timing$start, _timing$end;
495
+ var timing = (_profilerTimingMap$ge = profilerTimingMap.get(labelStackId)) !== null && _profilerTimingMap$ge !== void 0 ? _profilerTimingMap$ge : {
496
+ labelStack: profilerTiming.labelStack
497
+ };
498
+ timing.start = profilerTiming.startTime < ((_timing$start = timing.start) !== null && _timing$start !== void 0 ? _timing$start : Number.MAX_SAFE_INTEGER) ? profilerTiming.startTime : timing.start;
499
+ timing.end = profilerTiming.commitTime > ((_timing$end = timing.end) !== null && _timing$end !== void 0 ? _timing$end : Number.MIN_SAFE_INTEGER) ? profilerTiming.commitTime : timing.end;
500
+ profilerTimingMap.set(labelStackId, timing);
501
+ }
502
+ });
503
+ try {
504
+ // for Firefox 102 and older
505
+ var _iterator2 = _createForOfIteratorHelper(profilerTimingMap.entries()),
506
+ _step2;
507
+ try {
508
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
509
+ var _step2$value = (0, _slicedToArray2.default)(_step2.value, 2),
510
+ _step2$value$ = _step2$value[1],
511
+ labelStack = _step2$value$.labelStack,
512
+ start = _step2$value$.start,
513
+ end = _step2$value$.end;
514
+ performance.measure("\uD83D\uDEF8 ".concat(labelStackToString(labelStack), " [segment_ttai]"), {
515
+ start: start,
516
+ end: end
517
+ });
518
+ }
519
+ } catch (err) {
520
+ _iterator2.e(err);
521
+ } finally {
522
+ _iterator2.f();
523
+ }
524
+ } catch (e) {
525
+ // do nothing
526
+ }
527
+ }
528
+ try {
529
+ // dispatch a global window event to notify the measure is completed
530
+ window.dispatchEvent(new CustomEvent('UFO_FINISH_INTERACTION', {
531
+ detail: data
532
+ }));
533
+ } catch (error) {
534
+ // do nothing
535
+ }
536
+ };
537
+ var sinkInteractionHandler = exports.sinkInteractionHandler = function sinkInteractionHandler(sinkFn) {
538
+ if (handleInteraction === pushToQueue) {
539
+ handleInteraction = sinkFn;
540
+ interactionQueue.forEach(function (interaction) {
541
+ sinkFn(interaction.id, interaction.data);
542
+ });
543
+ interactionQueue.length = 0;
544
+ }
545
+ };
546
+ var sinkPostInteractionLogHandler = exports.sinkPostInteractionLogHandler = function sinkPostInteractionLogHandler(sinkFn) {
547
+ postInteractionLog.sinkHandler(sinkFn);
548
+ };
549
+ function tryComplete(interactionId, endTime) {
550
+ var interaction = _constants.default.get(interactionId);
551
+ if (interaction != null) {
552
+ var noMoreHolds = interaction.holdActive.size === 0;
553
+ if (noMoreHolds) {
554
+ var _getConfig3;
555
+ finishInteraction(interactionId, interaction, endTime);
556
+ if ((_getConfig3 = (0, _config.getConfig)()) !== null && _getConfig3 !== void 0 && _getConfig3.captureLateReRenders) {
557
+ postInteractionLog.onInteractionComplete(interaction);
558
+ }
559
+ }
560
+ }
561
+ }
562
+ function callCancelCallbacks(interaction) {
563
+ interaction.cancelCallbacks.reverse().forEach(function (cancelCallback) {
564
+ cancelCallback();
565
+ });
566
+ }
567
+ function abort(interactionId, abortReason) {
568
+ var interaction = _constants.default.get(interactionId);
569
+ if (interaction != null) {
570
+ callCancelCallbacks(interaction);
571
+ interaction.abortReason = abortReason;
572
+ finishInteraction(interactionId, interaction);
573
+ }
574
+ }
575
+ function abortByNewInteraction(interactionId, interactionName) {
576
+ var interaction = _constants.default.get(interactionId);
577
+ if (interaction != null) {
578
+ callCancelCallbacks(interaction);
579
+ interaction.abortReason = 'new_interaction';
580
+ interaction.abortedByInteractionName = interactionName;
581
+ finishInteraction(interactionId, interaction);
582
+ }
583
+ }
584
+ function abortAll(abortReason, abortedByInteractionName) {
585
+ _constants.default.forEach(function (interaction, interactionId) {
586
+ var noMoreHolds = interaction.holdActive.size === 0;
587
+ if (!noMoreHolds) {
588
+ callCancelCallbacks(interaction);
589
+ // eslint-disable-next-line no-param-reassign
590
+ interaction.abortReason = abortReason;
591
+ if (abortedByInteractionName != null) {
592
+ // eslint-disable-next-line no-param-reassign
593
+ interaction.abortedByInteractionName = abortedByInteractionName;
594
+ }
595
+ }
596
+ finishInteraction(interactionId, interaction);
597
+ });
598
+ }
599
+ function addOnCancelCallback(id, cancelCallback) {
600
+ var interaction = _constants.default.get(id);
601
+ interaction === null || interaction === void 0 || interaction.cancelCallbacks.push(cancelCallback);
602
+ }
603
+ function addNewInteraction(interactionId, ufoName, type, startTime, rate, labelStack, routeName) {
604
+ var _getConfig4;
605
+ var trace = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : null;
606
+ if ((_getConfig4 = (0, _config.getConfig)()) !== null && _getConfig4 !== void 0 && _getConfig4.captureLateReRenders) {
607
+ postInteractionLog.reset();
608
+ }
609
+ var previousTime = startTime;
610
+ var timeoutTime = CLEANUP_TIMEOUT;
611
+ var timerID = setTimeout(function () {
612
+ abort(interactionId, 'timeout');
613
+ }, CLEANUP_TIMEOUT);
614
+ function changeTimeout(newTime) {
615
+ // we compare if the time left is lower than the new time to no
616
+ // extend the timeout beyond the initial waiting time
617
+ var currentTime = performance.now();
618
+ var timeLeft = timeoutTime - (currentTime - previousTime);
619
+ if (timeLeft < newTime) {
620
+ return;
621
+ }
622
+ clearTimeout(this.timerID);
623
+ var newTimerID = setTimeout(function () {
624
+ abort(interactionId, 'timeout');
625
+ }, newTime);
626
+ timeoutTime = newTime;
627
+ previousTime = currentTime;
628
+ this.timerID = newTimerID;
629
+ }
630
+ var addFeatureFlagsToInteraction = (0, _coinflip.default)((0, _config.getCapabilityRate)('feature_flag_access'));
631
+ var metrics = {
632
+ id: interactionId,
633
+ start: startTime,
634
+ end: 0,
635
+ ufoName: ufoName,
636
+ type: type,
637
+ previousInteractionName: PreviousInteractionLog.name,
638
+ isPreviousInteractionAborted: PreviousInteractionLog.isAborted === true,
639
+ marks: [],
640
+ customData: [],
641
+ customTimings: [],
642
+ spans: [],
643
+ requestInfo: [],
644
+ reactProfilerTimings: [],
645
+ holdInfo: [],
646
+ holdActive: new Map(),
647
+ // measure when we execute this code
648
+ // from this we can measure the input delay -
649
+ // how long the browser took to hand execution back to JS)
650
+ measureStart: performance.now(),
651
+ rate: rate,
652
+ cancelCallbacks: [],
653
+ metaData: {},
654
+ errors: [],
655
+ apdex: [],
656
+ labelStack: labelStack,
657
+ routeName: routeName !== null && routeName !== void 0 ? routeName : ufoName,
658
+ featureFlags: addFeatureFlagsToInteraction ? {
659
+ prior: Object.fromEntries(_featureFlagsAccessed.allFeatureFlagsAccessed),
660
+ during: {}
661
+ } : undefined,
662
+ knownSegments: [],
663
+ cleanupCallbacks: [],
664
+ awaitReactProfilerCount: 0,
665
+ redirects: [],
666
+ timerID: timerID,
667
+ changeTimeout: changeTimeout,
668
+ trace: trace
669
+ };
670
+ if (addFeatureFlagsToInteraction) {
671
+ _featureFlagsAccessed.currentFeatureFlagsAccessed.clear();
672
+ }
673
+ _constants.default.set(interactionId, metrics);
674
+ var segmentObserver = {
675
+ onAdd: function onAdd(segment) {
676
+ metrics.knownSegments.push(segment);
677
+ },
678
+ onRemove: function onRemove() {}
679
+ };
680
+ addSegmentObserver(segmentObserver);
681
+ metrics.cleanupCallbacks.push(function () {
682
+ removeSegmentObserver(segmentObserver);
683
+ });
684
+ metrics.cleanupCallbacks.push(function () {
685
+ clearTimeout(metrics.timerID);
686
+ });
687
+ var awaitBM3TTIList = (0, _config.getAwaitBM3TTIList)();
688
+ if (awaitBM3TTIList.includes(ufoName)) {
689
+ addHoldByID(interactionId, [], ufoName, ufoName, true);
690
+ }
691
+ if (type === 'transition') {
692
+ (0, _vc.getVCObserver)().start({
693
+ startTime: startTime
694
+ });
695
+ postInteractionLog.startVCObserver({
696
+ startTime: startTime
697
+ });
698
+ }
699
+ }
700
+ function addBrowserMetricEvent(event) {
701
+ var interaction = getActiveInteraction();
702
+ if (interaction) {
703
+ var _event$config;
704
+ interaction.legacyMetrics = interaction.legacyMetrics || [];
705
+ interaction.legacyMetrics.push(event);
706
+ if ((interaction.type === 'page_load' || interaction.type === 'transition') && ((_event$config = event.config) === null || _event$config === void 0 ? void 0 : _event$config.type) === 'PAGE_LOAD') {
707
+ interaction.changeTimeout(CLEANUP_TIMEOUT_AFTER_APDEX);
708
+ removeHoldByID(interaction.id, interaction.ufoName);
709
+ }
710
+ }
711
+ }
712
+ function addApdexToAll(apdex) {
713
+ _constants.default.forEach(function (interaction, key) {
714
+ interaction.apdex.push(apdex);
715
+ try {
716
+ var _apdex$startTime;
717
+ // for Firefox 102 and older
718
+ performance.measure("\uD83D\uDEF8 ".concat(apdex.key, " [bm3_tti]"), {
719
+ start: (_apdex$startTime = apdex.startTime) !== null && _apdex$startTime !== void 0 ? _apdex$startTime : interaction.start,
720
+ end: apdex.stopTime
721
+ });
722
+ } catch (e) {
723
+ // do nothing
724
+ }
725
+ if (interaction.type === 'page_load' || interaction.type === 'transition') {
726
+ interaction.changeTimeout(CLEANUP_TIMEOUT_AFTER_APDEX);
727
+ removeHoldByID(key, interaction.ufoName);
728
+ }
729
+ });
730
+ }
731
+ function addApdex(interactionId, apdexInfo) {
732
+ var interaction = _constants.default.get(interactionId);
733
+ if (interaction != null) {
734
+ interaction.apdex.push(apdexInfo);
735
+ try {
736
+ var _apdexInfo$startTime;
737
+ // for Firefox 102 and older
738
+ performance.measure("\uD83D\uDEF8 ".concat(apdexInfo.key, " [bm3_tti]"), {
739
+ start: (_apdexInfo$startTime = apdexInfo.startTime) !== null && _apdexInfo$startTime !== void 0 ? _apdexInfo$startTime : interaction.start,
740
+ end: apdexInfo.stopTime
741
+ });
742
+ } catch (e) {
743
+ // do nothing
744
+ }
745
+ if (interaction.type === 'page_load' || interaction.type === 'transition') {
746
+ interaction.changeTimeout(CLEANUP_TIMEOUT_AFTER_APDEX);
747
+ removeHoldByID(interactionId, interaction.ufoName);
748
+ }
749
+ }
750
+ }
751
+ function addRequestInfo(interactionId, labelStack, requestInfo) {
752
+ var interaction = _constants.default.get(interactionId);
753
+ if (interaction != null) {
754
+ interaction.requestInfo.push(_objectSpread({
755
+ labelStack: labelStack
756
+ }, requestInfo));
757
+ }
758
+ }
759
+ function isSegmentLabel(obj) {
760
+ return obj && typeof obj.name === 'string' && typeof obj.segmentId === 'string';
761
+ }
762
+ function getSegmentCacheKey(labelStack) {
763
+ return labelStack.map(function (l) {
764
+ if (isSegmentLabel(l)) {
765
+ return "".concat(l.name, "_").concat(l.segmentId);
766
+ }
767
+ return l.name;
768
+ }).join('|');
769
+ }
770
+ function addSegment(labelStack) {
771
+ var key = getSegmentCacheKey(labelStack);
772
+ var existingSegment = segmentCache.get(key);
773
+ if (!existingSegment) {
774
+ var segmentInfo = {
775
+ labelStack: labelStack
776
+ };
777
+ segmentCache.set(key, segmentInfo);
778
+ segmentObservers.forEach(function (observer) {
779
+ observer.onAdd(segmentInfo);
780
+ });
781
+ }
782
+ }
783
+ function removeSegment(labelStack) {
784
+ var key = getSegmentCacheKey(labelStack);
785
+ var segmentInfo = segmentCache.get(key);
786
+ if (segmentInfo) {
787
+ segmentCache.delete(JSON.stringify(labelStack));
788
+ segmentObservers.forEach(function (observer) {
789
+ observer.onRemove(segmentInfo);
790
+ });
791
+ }
792
+ }
793
+ function addRedirect(interactionId, fromUfoName, nextUfoName, nextRouteName, time) {
794
+ var interaction = _constants.default.get(interactionId);
795
+ if (interaction != null) {
796
+ interaction.ufoName = nextUfoName;
797
+ interaction.routeName = nextRouteName;
798
+ interaction.redirects.push({
799
+ fromInteractionName: fromUfoName,
800
+ time: time
801
+ });
802
+ if (window.__REACT_UFO_ENABLE_PERF_TRACING || process.env.NODE_ENV !== 'production') {
803
+ var prevRedirect = interaction.redirects.at(-2);
804
+ try {
805
+ var _prevRedirect$time;
806
+ // for Firefox 102 and older
807
+ performance.measure("\uD83D\uDEF8 ".concat(nextUfoName, " [redirect]"), {
808
+ start: (_prevRedirect$time = prevRedirect === null || prevRedirect === void 0 ? void 0 : prevRedirect.time) !== null && _prevRedirect$time !== void 0 ? _prevRedirect$time : interaction.start,
809
+ end: time
810
+ });
811
+ } catch (e) {
812
+ // do nothing
813
+ }
814
+ }
815
+ }
816
+ }
8
817
  var interactionSpans = exports.interactionSpans = [];
818
+ var defaultLabelStack = [{
819
+ name: 'custom'
820
+ }];
9
821
  function addCustomSpans(name, start) {
10
822
  var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : performance.now();
11
823
  var size = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
824
+ var labelStack = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : defaultLabelStack;
12
825
  var customSpan = {
13
826
  type: 'custom',
14
827
  name: name,
15
828
  start: start,
16
829
  end: end,
17
- labelStack: [{
18
- name: 'custom'
19
- }],
830
+ labelStack: labelStack,
20
831
  size: size
21
832
  };
22
833
  interactionSpans.push(customSpan);