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