@atlaskit/react-ufo 3.4.14 → 3.5.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 +8 -0
- package/dist/cjs/additional-payload/utils/cache-hit-ratio/index.js +5 -4
- package/dist/cjs/additional-payload/utils/lighthouse-metrics/cls/index.js +3 -2
- package/dist/cjs/additional-payload/utils/lighthouse-metrics/index.js +6 -6
- package/dist/cjs/additional-payload/utils/lighthouse-metrics/tbt/index.js +3 -2
- package/dist/cjs/additional-payload/utils/lighthouse-metrics/utils/buffer/index.js +3 -0
- package/dist/cjs/additional-payload/utils/lighthouse-metrics/utils/observer/index.js +9 -7
- package/dist/cjs/assets/index.js +17 -14
- package/dist/cjs/assets/utils.js +9 -8
- package/dist/cjs/bundle-eval-timing/index.js +8 -8
- package/dist/cjs/coinflip/index.js +5 -3
- package/dist/cjs/common/constants.js +3 -2
- package/dist/cjs/common/react-ufo-payload-schema.js +5 -0
- package/dist/cjs/config/index.js +30 -42
- package/dist/cjs/create-experimental-interaction-metrics-payload/index.js +29 -39
- package/dist/cjs/create-payload/common/utils/index.js +16 -20
- package/dist/cjs/create-payload/index.js +150 -140
- package/dist/cjs/create-payload/utils/get-interaction-status.js +5 -3
- package/dist/cjs/create-payload/utils/get-page-visibility-up-to-ttai.js +5 -3
- package/dist/cjs/create-payload/utils/get-ssr-done-time-value.js +5 -3
- package/dist/cjs/create-payload/utils/get-vc-metrics.js +10 -8
- package/dist/cjs/create-post-interaction-log-payload/index.js +15 -13
- package/dist/cjs/custom-data/index.js +4 -3
- package/dist/cjs/custom-mark/index.js +4 -3
- package/dist/cjs/custom-spans/index.js +4 -3
- package/dist/cjs/custom-timings/index.js +6 -6
- package/dist/cjs/experience-trace-id-context/index.js +15 -14
- package/dist/cjs/experience-trace-id-context/utils/make-trace-http-request-headers/index.js +3 -2
- package/dist/cjs/feature-flags-accessed/common/utils/index.js +11 -10
- package/dist/cjs/feature-flags-accessed/index.js +3 -2
- package/dist/cjs/generate-id/index.js +5 -3
- package/dist/cjs/global-error-handler/index.js +14 -13
- package/dist/cjs/initial-page-load-extra-timing/index.js +6 -6
- package/dist/cjs/interaction-metrics/index.js +110 -145
- package/dist/cjs/interaction-metrics/post-interaction-log.js +10 -0
- package/dist/cjs/interaction-metrics-init/index.js +17 -10
- package/dist/cjs/interaction-metrics-init/schedule-idle-callback.js +8 -4
- package/dist/cjs/resource-timing/common/utils/config.js +10 -10
- package/dist/cjs/resource-timing/common/utils/resource-timing-buffer.js +13 -12
- package/dist/cjs/resource-timing/main.js +25 -19
- package/dist/cjs/resource-timing/utils.js +4 -3
- package/dist/cjs/round-number/index.js +3 -2
- package/dist/cjs/route-name/index.js +5 -3
- package/dist/cjs/segment/schedule-on-paint.js +6 -3
- package/dist/cjs/segment/segment.js +7 -3
- package/dist/cjs/self-measurements/index.js +261 -0
- package/dist/cjs/set-interaction-error/index.js +4 -3
- package/dist/cjs/short-id/index.js +5 -3
- package/dist/cjs/ssr/index.js +18 -21
- package/dist/cjs/trace-interaction/index.js +7 -5
- package/dist/cjs/trace-pageload/index.js +7 -6
- package/dist/cjs/trace-press/index.js +5 -3
- package/dist/cjs/trace-redirect/index.js +5 -3
- package/dist/cjs/trace-transition/index.js +6 -4
- package/dist/cjs/trace-transition/utils/generate-span-id/index.js +3 -2
- package/dist/cjs/trace-transition/utils/set-interaction-active-trace/index.js +3 -2
- package/dist/cjs/vc/index.js +17 -6
- package/dist/cjs/vc/vc-observer/attachAbortListeners.js +3 -2
- package/dist/cjs/vc/vc-observer/getVCRevisionsData.js +41 -22
- package/dist/cjs/vc/vc-observer/getViewport.js +6 -6
- package/dist/cjs/vc/vc-observer/heatmap/heatmap.js +28 -12
- package/dist/cjs/vc/vc-observer/index.js +172 -133
- package/dist/cjs/vc/vc-observer/media-wrapper/vc-utils.js +3 -2
- package/dist/cjs/vc/vc-observer/observers/editor-lnv/index.js +17 -0
- package/dist/cjs/vc/vc-observer/observers/index.js +82 -25
- package/dist/cjs/vc/vc-observer/observers/non-visual-styles/is-non-visual-style-mutation.js +5 -3
- package/dist/cjs/vc/vc-observer/observers/ssr-placeholders/index.js +16 -0
- package/dist/cjs/vc/vc-observer/revisions/fy25_01.js +2 -0
- package/dist/cjs/vc/vc-observer/revisions/fy25_02.js +2 -0
- package/dist/cjs/vc/vc-observer/revisions/revisions.js +3 -2
- package/dist/cjs/vc/vc-observer-new/entries-timeline/index.js +9 -0
- package/dist/cjs/vc/vc-observer-new/get-element-name.js +5 -3
- package/dist/cjs/vc/vc-observer-new/get-unique-element-name.js +13 -11
- package/dist/cjs/vc/vc-observer-new/index.js +9 -0
- package/dist/cjs/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +2 -0
- package/dist/cjs/vc/vc-observer-new/metric-calculator/fy25_03/index.js +6 -1
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +20 -12
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +27 -26
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.js +18 -6
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +27 -14
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/index.js +10 -8
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.js +50 -40
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +10 -8
- package/dist/cjs/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.js +5 -3
- package/dist/cjs/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.js +5 -3
- package/dist/cjs/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.js +5 -3
- package/dist/cjs/vc/vc-observer-new/metric-calculator/utils/task-yield.js +10 -8
- package/dist/cjs/vc/vc-observer-new/viewport-observer/index.js +15 -7
- package/dist/cjs/vc/vc-observer-new/viewport-observer/intersection-observer/index.js +15 -12
- package/dist/cjs/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +16 -13
- package/dist/cjs/vc/vc-observer-new/viewport-observer/performance-observer/index.js +11 -9
- package/dist/cjs/vc/vc-observer-new/window-event-observer/index.js +7 -1
- package/dist/es2019/additional-payload/utils/cache-hit-ratio/index.js +6 -5
- package/dist/es2019/additional-payload/utils/lighthouse-metrics/cls/index.js +3 -2
- package/dist/es2019/additional-payload/utils/lighthouse-metrics/index.js +6 -5
- package/dist/es2019/additional-payload/utils/lighthouse-metrics/tbt/index.js +16 -13
- package/dist/es2019/additional-payload/utils/lighthouse-metrics/utils/buffer/index.js +3 -0
- package/dist/es2019/additional-payload/utils/lighthouse-metrics/utils/observer/index.js +9 -7
- package/dist/es2019/assets/index.js +19 -14
- package/dist/es2019/assets/utils.js +11 -9
- package/dist/es2019/bundle-eval-timing/index.js +7 -6
- package/dist/es2019/coinflip/index.js +5 -2
- package/dist/es2019/common/constants.js +3 -2
- package/dist/es2019/common/react-ufo-payload-schema.js +1 -0
- package/dist/es2019/config/index.js +29 -28
- package/dist/es2019/create-experimental-interaction-metrics-payload/index.js +18 -15
- package/dist/es2019/create-payload/common/utils/index.js +15 -14
- package/dist/es2019/create-payload/index.js +87 -71
- package/dist/es2019/create-payload/utils/get-interaction-status.js +5 -2
- package/dist/es2019/create-payload/utils/get-page-visibility-up-to-ttai.js +4 -2
- package/dist/es2019/create-payload/utils/get-ssr-done-time-value.js +4 -2
- package/dist/es2019/create-payload/utils/get-vc-metrics.js +4 -2
- package/dist/es2019/create-post-interaction-log-payload/index.js +14 -12
- package/dist/es2019/custom-data/index.js +3 -2
- package/dist/es2019/custom-mark/index.js +3 -2
- package/dist/es2019/custom-spans/index.js +3 -2
- package/dist/es2019/custom-timings/index.js +5 -4
- package/dist/es2019/experience-trace-id-context/index.js +16 -13
- package/dist/es2019/experience-trace-id-context/utils/make-trace-http-request-headers/index.js +6 -3
- package/dist/es2019/feature-flags-accessed/common/utils/index.js +14 -7
- package/dist/es2019/feature-flags-accessed/index.js +3 -2
- package/dist/es2019/generate-id/index.js +4 -2
- package/dist/es2019/global-error-handler/index.js +15 -12
- package/dist/es2019/initial-page-load-extra-timing/index.js +5 -4
- package/dist/es2019/interaction-metrics/index.js +109 -108
- package/dist/es2019/interaction-metrics/post-interaction-log.js +10 -0
- package/dist/es2019/interaction-metrics-init/index.js +17 -10
- package/dist/es2019/interaction-metrics-init/schedule-idle-callback.js +7 -3
- package/dist/es2019/resource-timing/common/utils/config.js +10 -7
- package/dist/es2019/resource-timing/common/utils/resource-timing-buffer.js +14 -11
- package/dist/es2019/resource-timing/main.js +31 -17
- package/dist/es2019/resource-timing/utils.js +3 -2
- package/dist/es2019/round-number/index.js +3 -2
- package/dist/es2019/route-name/index.js +4 -2
- package/dist/es2019/segment/schedule-on-paint.js +5 -2
- package/dist/es2019/segment/segment.js +7 -3
- package/dist/es2019/self-measurements/index.js +213 -0
- package/dist/es2019/set-interaction-error/index.js +3 -2
- package/dist/es2019/short-id/index.js +4 -2
- package/dist/es2019/ssr/index.js +21 -16
- package/dist/es2019/trace-interaction/index.js +6 -4
- package/dist/es2019/trace-pageload/index.js +6 -4
- package/dist/es2019/trace-press/index.js +4 -2
- package/dist/es2019/trace-redirect/index.js +4 -2
- package/dist/es2019/trace-transition/index.js +5 -3
- package/dist/es2019/trace-transition/utils/generate-span-id/index.js +4 -1
- package/dist/es2019/trace-transition/utils/set-interaction-active-trace/index.js +3 -2
- package/dist/es2019/vc/index.js +16 -4
- package/dist/es2019/vc/vc-observer/attachAbortListeners.js +3 -2
- package/dist/es2019/vc/vc-observer/getVCRevisionsData.js +41 -21
- package/dist/es2019/vc/vc-observer/getViewport.js +5 -4
- package/dist/es2019/vc/vc-observer/heatmap/heatmap.js +28 -10
- package/dist/es2019/vc/vc-observer/index.js +160 -116
- package/dist/es2019/vc/vc-observer/media-wrapper/vc-utils.js +3 -2
- package/dist/es2019/vc/vc-observer/observers/editor-lnv/index.js +17 -0
- package/dist/es2019/vc/vc-observer/observers/index.js +80 -25
- package/dist/es2019/vc/vc-observer/observers/non-visual-styles/is-non-visual-style-mutation.js +4 -2
- package/dist/es2019/vc/vc-observer/observers/ssr-placeholders/index.js +16 -0
- package/dist/es2019/vc/vc-observer/revisions/fy25_01.js +2 -0
- package/dist/es2019/vc/vc-observer/revisions/fy25_02.js +2 -0
- package/dist/es2019/vc/vc-observer/revisions/revisions.js +3 -2
- package/dist/es2019/vc/vc-observer-new/entries-timeline/index.js +9 -0
- package/dist/es2019/vc/vc-observer-new/get-element-name.js +4 -2
- package/dist/es2019/vc/vc-observer-new/get-unique-element-name.js +12 -10
- package/dist/es2019/vc/vc-observer-new/index.js +9 -0
- package/dist/es2019/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +2 -0
- package/dist/es2019/vc/vc-observer-new/metric-calculator/fy25_03/index.js +3 -0
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +14 -4
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +6 -4
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.js +18 -6
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +21 -8
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/index.js +4 -2
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.js +10 -8
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +4 -2
- package/dist/es2019/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.js +4 -2
- package/dist/es2019/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.js +4 -2
- package/dist/es2019/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.js +4 -2
- package/dist/es2019/vc/vc-observer-new/metric-calculator/utils/task-yield.js +5 -2
- package/dist/es2019/vc/vc-observer-new/viewport-observer/index.js +15 -7
- package/dist/es2019/vc/vc-observer-new/viewport-observer/intersection-observer/index.js +15 -12
- package/dist/es2019/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +15 -13
- package/dist/es2019/vc/vc-observer-new/viewport-observer/performance-observer/index.js +11 -9
- package/dist/es2019/vc/vc-observer-new/window-event-observer/index.js +7 -1
- package/dist/esm/additional-payload/utils/cache-hit-ratio/index.js +5 -4
- package/dist/esm/additional-payload/utils/lighthouse-metrics/cls/index.js +3 -2
- package/dist/esm/additional-payload/utils/lighthouse-metrics/index.js +5 -4
- package/dist/esm/additional-payload/utils/lighthouse-metrics/tbt/index.js +3 -2
- package/dist/esm/additional-payload/utils/lighthouse-metrics/utils/buffer/index.js +3 -0
- package/dist/esm/additional-payload/utils/lighthouse-metrics/utils/observer/index.js +9 -7
- package/dist/esm/assets/index.js +17 -14
- package/dist/esm/assets/utils.js +10 -8
- package/dist/esm/bundle-eval-timing/index.js +7 -6
- package/dist/esm/coinflip/index.js +5 -2
- package/dist/esm/common/constants.js +3 -2
- package/dist/esm/common/react-ufo-payload-schema.js +1 -0
- package/dist/esm/config/index.js +29 -28
- package/dist/esm/create-experimental-interaction-metrics-payload/index.js +28 -35
- package/dist/esm/create-payload/common/utils/index.js +15 -14
- package/dist/esm/create-payload/index.js +149 -139
- package/dist/esm/create-payload/utils/get-interaction-status.js +5 -2
- package/dist/esm/create-payload/utils/get-page-visibility-up-to-ttai.js +4 -2
- package/dist/esm/create-payload/utils/get-ssr-done-time-value.js +4 -2
- package/dist/esm/create-payload/utils/get-vc-metrics.js +9 -7
- package/dist/esm/create-post-interaction-log-payload/index.js +14 -12
- package/dist/esm/custom-data/index.js +3 -2
- package/dist/esm/custom-mark/index.js +3 -2
- package/dist/esm/custom-spans/index.js +3 -2
- package/dist/esm/custom-timings/index.js +5 -4
- package/dist/esm/experience-trace-id-context/index.js +15 -14
- package/dist/esm/experience-trace-id-context/utils/make-trace-http-request-headers/index.js +3 -2
- package/dist/esm/feature-flags-accessed/common/utils/index.js +11 -10
- package/dist/esm/feature-flags-accessed/index.js +3 -2
- package/dist/esm/generate-id/index.js +4 -2
- package/dist/esm/global-error-handler/index.js +14 -13
- package/dist/esm/initial-page-load-extra-timing/index.js +5 -4
- package/dist/esm/interaction-metrics/index.js +109 -108
- package/dist/esm/interaction-metrics/post-interaction-log.js +10 -0
- package/dist/esm/interaction-metrics-init/index.js +17 -10
- package/dist/esm/interaction-metrics-init/schedule-idle-callback.js +7 -3
- package/dist/esm/resource-timing/common/utils/config.js +9 -8
- package/dist/esm/resource-timing/common/utils/resource-timing-buffer.js +13 -12
- package/dist/esm/resource-timing/main.js +25 -19
- package/dist/esm/resource-timing/utils.js +3 -2
- package/dist/esm/round-number/index.js +3 -2
- package/dist/esm/route-name/index.js +4 -2
- package/dist/esm/segment/schedule-on-paint.js +5 -2
- package/dist/esm/segment/segment.js +7 -3
- package/dist/esm/self-measurements/index.js +246 -0
- package/dist/esm/set-interaction-error/index.js +3 -2
- package/dist/esm/short-id/index.js +4 -2
- package/dist/esm/ssr/index.js +17 -16
- package/dist/esm/trace-interaction/index.js +6 -4
- package/dist/esm/trace-pageload/index.js +6 -4
- package/dist/esm/trace-press/index.js +4 -2
- package/dist/esm/trace-redirect/index.js +4 -2
- package/dist/esm/trace-transition/index.js +5 -3
- package/dist/esm/trace-transition/utils/generate-span-id/index.js +3 -2
- package/dist/esm/trace-transition/utils/set-interaction-active-trace/index.js +3 -2
- package/dist/esm/vc/index.js +16 -4
- package/dist/esm/vc/vc-observer/attachAbortListeners.js +3 -2
- package/dist/esm/vc/vc-observer/getVCRevisionsData.js +40 -21
- package/dist/esm/vc/vc-observer/getViewport.js +5 -4
- package/dist/esm/vc/vc-observer/heatmap/heatmap.js +28 -12
- package/dist/esm/vc/vc-observer/index.js +172 -133
- package/dist/esm/vc/vc-observer/media-wrapper/vc-utils.js +3 -2
- package/dist/esm/vc/vc-observer/observers/editor-lnv/index.js +17 -0
- package/dist/esm/vc/vc-observer/observers/index.js +82 -25
- package/dist/esm/vc/vc-observer/observers/non-visual-styles/is-non-visual-style-mutation.js +4 -2
- package/dist/esm/vc/vc-observer/observers/ssr-placeholders/index.js +16 -0
- package/dist/esm/vc/vc-observer/revisions/fy25_01.js +2 -0
- package/dist/esm/vc/vc-observer/revisions/fy25_02.js +2 -0
- package/dist/esm/vc/vc-observer/revisions/revisions.js +3 -2
- package/dist/esm/vc/vc-observer-new/entries-timeline/index.js +9 -0
- package/dist/esm/vc/vc-observer-new/get-element-name.js +4 -2
- package/dist/esm/vc/vc-observer-new/get-unique-element-name.js +12 -10
- package/dist/esm/vc/vc-observer-new/index.js +9 -0
- package/dist/esm/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +2 -0
- package/dist/esm/vc/vc-observer-new/metric-calculator/fy25_03/index.js +6 -1
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +19 -9
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +26 -24
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.js +18 -6
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +26 -13
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/index.js +9 -7
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.js +49 -39
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +9 -7
- package/dist/esm/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.js +4 -2
- package/dist/esm/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.js +4 -2
- package/dist/esm/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.js +4 -2
- package/dist/esm/vc/vc-observer-new/metric-calculator/utils/task-yield.js +10 -7
- package/dist/esm/vc/vc-observer-new/viewport-observer/index.js +15 -7
- package/dist/esm/vc/vc-observer-new/viewport-observer/intersection-observer/index.js +15 -12
- package/dist/esm/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +15 -12
- package/dist/esm/vc/vc-observer-new/viewport-observer/performance-observer/index.js +11 -7
- package/dist/esm/vc/vc-observer-new/window-event-observer/index.js +7 -1
- package/dist/types/additional-payload/utils/cache-hit-ratio/index.d.ts +1 -1
- package/dist/types/additional-payload/utils/lighthouse-metrics/index.d.ts +2 -2
- package/dist/types/assets/index.d.ts +3 -1
- package/dist/types/assets/utils.d.ts +1 -1
- package/dist/types/bundle-eval-timing/index.d.ts +2 -2
- package/dist/types/coinflip/index.d.ts +2 -1
- package/dist/types/common/index.d.ts +2 -1
- package/dist/types/common/react-ufo-payload-schema.d.ts +175 -0
- package/dist/types/common/vc/types.d.ts +20 -10
- package/dist/types/config/index.d.ts +14 -16
- package/dist/types/create-experimental-interaction-metrics-payload/index.d.ts +4 -3
- package/dist/types/create-payload/common/utils/index.d.ts +6 -7
- package/dist/types/create-payload/index.d.ts +1250 -1537
- package/dist/types/create-payload/utils/get-interaction-status.d.ts +2 -1
- package/dist/types/create-payload/utils/get-page-visibility-up-to-ttai.d.ts +2 -1
- package/dist/types/create-payload/utils/get-ssr-done-time-value.d.ts +2 -1
- package/dist/types/create-payload/utils/get-vc-metrics.d.ts +3 -2
- package/dist/types/create-post-interaction-log-payload/index.d.ts +3 -2
- package/dist/types/custom-data/index.d.ts +1 -1
- package/dist/types/custom-mark/index.d.ts +1 -1
- package/dist/types/custom-spans/index.d.ts +1 -1
- package/dist/types/custom-timings/index.d.ts +2 -2
- package/dist/types/generate-id/index.d.ts +2 -1
- package/dist/types/hidden-timing/index.d.ts +1 -1
- package/dist/types/initial-page-load-extra-timing/index.d.ts +2 -2
- package/dist/types/interaction-context/index.d.ts +3 -3
- package/dist/types/interaction-metrics/index.d.ts +42 -42
- package/dist/types/interaction-metrics/post-interaction-log.d.ts +1 -0
- package/dist/types/interaction-metrics-init/schedule-idle-callback.d.ts +2 -1
- package/dist/types/resource-timing/common/utils/config.d.ts +1 -1
- package/dist/types/resource-timing/utils.d.ts +1 -1
- package/dist/types/round-number/index.d.ts +1 -1
- package/dist/types/route-name/index.d.ts +4 -3
- package/dist/types/segment/schedule-on-paint.d.ts +2 -1
- package/dist/types/self-measurements/index.d.ts +57 -0
- package/dist/types/set-interaction-error/index.d.ts +1 -1
- package/dist/types/short-id/index.d.ts +2 -1
- package/dist/types/ssr/index.d.ts +5 -5
- package/dist/types/trace-interaction/index.d.ts +2 -1
- package/dist/types/trace-pageload/index.d.ts +3 -2
- package/dist/types/trace-press/index.d.ts +2 -1
- package/dist/types/trace-redirect/index.d.ts +2 -1
- package/dist/types/trace-transition/index.d.ts +2 -1
- package/dist/types/vc/index.d.ts +2 -2
- package/dist/types/vc/vc-observer/getVCRevisionsData.d.ts +7 -7
- package/dist/types/vc/vc-observer/getViewport.d.ts +2 -2
- package/dist/types/vc/vc-observer/heatmap/heatmap.d.ts +7 -4
- package/dist/types/vc/vc-observer/index.d.ts +4 -4
- package/dist/types/vc/vc-observer/observers/non-visual-styles/is-non-visual-style-mutation.d.ts +5 -4
- package/dist/types/vc/vc-observer/observers/types.d.ts +1 -1
- package/dist/types/vc/vc-observer-new/get-element-name.d.ts +2 -1
- package/dist/types/vc/vc-observer-new/get-unique-element-name.d.ts +2 -1
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.d.ts +2 -3
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.d.ts +3 -2
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.d.ts +3 -2
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/index.d.ts +2 -1
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.d.ts +2 -1
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.d.ts +3 -2
- package/dist/types/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.d.ts +2 -1
- package/dist/types/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.d.ts +2 -1
- package/dist/types/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.d.ts +2 -1
- package/dist/types/vc/vc-observer-new/metric-calculator/utils/task-yield.d.ts +2 -1
- package/dist/types/vc/vc-observer-new/viewport-observer/index.d.ts +1 -1
- package/dist/types/vc/vc-observer-new/viewport-observer/mutation-observer/index.d.ts +2 -1
- package/dist/types/vc/vc-observer-new/viewport-observer/performance-observer/index.d.ts +3 -3
- package/dist/types-ts4.5/additional-payload/utils/cache-hit-ratio/index.d.ts +1 -1
- package/dist/types-ts4.5/additional-payload/utils/lighthouse-metrics/index.d.ts +2 -2
- package/dist/types-ts4.5/assets/index.d.ts +3 -1
- package/dist/types-ts4.5/assets/utils.d.ts +1 -1
- package/dist/types-ts4.5/bundle-eval-timing/index.d.ts +2 -2
- package/dist/types-ts4.5/coinflip/index.d.ts +2 -1
- package/dist/types-ts4.5/common/index.d.ts +2 -1
- package/dist/types-ts4.5/common/react-ufo-payload-schema.d.ts +177 -0
- package/dist/types-ts4.5/common/vc/types.d.ts +20 -10
- package/dist/types-ts4.5/config/index.d.ts +14 -20
- package/dist/types-ts4.5/create-experimental-interaction-metrics-payload/index.d.ts +4 -3
- package/dist/types-ts4.5/create-payload/common/utils/index.d.ts +6 -7
- package/dist/types-ts4.5/create-payload/index.d.ts +1250 -1537
- package/dist/types-ts4.5/create-payload/utils/get-interaction-status.d.ts +2 -1
- package/dist/types-ts4.5/create-payload/utils/get-page-visibility-up-to-ttai.d.ts +2 -1
- package/dist/types-ts4.5/create-payload/utils/get-ssr-done-time-value.d.ts +2 -1
- package/dist/types-ts4.5/create-payload/utils/get-vc-metrics.d.ts +3 -2
- package/dist/types-ts4.5/create-post-interaction-log-payload/index.d.ts +3 -2
- package/dist/types-ts4.5/custom-data/index.d.ts +1 -1
- package/dist/types-ts4.5/custom-mark/index.d.ts +1 -1
- package/dist/types-ts4.5/custom-spans/index.d.ts +1 -1
- package/dist/types-ts4.5/custom-timings/index.d.ts +2 -2
- package/dist/types-ts4.5/generate-id/index.d.ts +2 -1
- package/dist/types-ts4.5/hidden-timing/index.d.ts +1 -1
- package/dist/types-ts4.5/initial-page-load-extra-timing/index.d.ts +2 -2
- package/dist/types-ts4.5/interaction-context/index.d.ts +3 -3
- package/dist/types-ts4.5/interaction-metrics/index.d.ts +42 -42
- package/dist/types-ts4.5/interaction-metrics/post-interaction-log.d.ts +1 -0
- package/dist/types-ts4.5/interaction-metrics-init/schedule-idle-callback.d.ts +2 -1
- package/dist/types-ts4.5/resource-timing/common/utils/config.d.ts +1 -1
- package/dist/types-ts4.5/resource-timing/utils.d.ts +1 -1
- package/dist/types-ts4.5/round-number/index.d.ts +1 -1
- package/dist/types-ts4.5/route-name/index.d.ts +4 -3
- package/dist/types-ts4.5/segment/schedule-on-paint.d.ts +2 -1
- package/dist/types-ts4.5/self-measurements/index.d.ts +57 -0
- package/dist/types-ts4.5/set-interaction-error/index.d.ts +1 -1
- package/dist/types-ts4.5/short-id/index.d.ts +2 -1
- package/dist/types-ts4.5/ssr/index.d.ts +5 -5
- package/dist/types-ts4.5/trace-interaction/index.d.ts +2 -1
- package/dist/types-ts4.5/trace-pageload/index.d.ts +3 -2
- package/dist/types-ts4.5/trace-press/index.d.ts +2 -1
- package/dist/types-ts4.5/trace-redirect/index.d.ts +2 -1
- package/dist/types-ts4.5/trace-transition/index.d.ts +2 -1
- package/dist/types-ts4.5/vc/index.d.ts +2 -2
- package/dist/types-ts4.5/vc/vc-observer/getVCRevisionsData.d.ts +7 -7
- package/dist/types-ts4.5/vc/vc-observer/getViewport.d.ts +2 -2
- package/dist/types-ts4.5/vc/vc-observer/heatmap/heatmap.d.ts +7 -4
- package/dist/types-ts4.5/vc/vc-observer/index.d.ts +4 -4
- package/dist/types-ts4.5/vc/vc-observer/observers/non-visual-styles/is-non-visual-style-mutation.d.ts +5 -4
- package/dist/types-ts4.5/vc/vc-observer/observers/types.d.ts +1 -1
- package/dist/types-ts4.5/vc/vc-observer-new/get-element-name.d.ts +2 -1
- package/dist/types-ts4.5/vc/vc-observer-new/get-unique-element-name.d.ts +2 -1
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.d.ts +2 -3
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.d.ts +3 -2
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.d.ts +3 -2
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/index.d.ts +2 -1
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.d.ts +2 -1
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.d.ts +3 -2
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.d.ts +2 -1
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.d.ts +2 -1
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.d.ts +2 -1
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/utils/task-yield.d.ts +2 -1
- package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/index.d.ts +1 -1
- package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/mutation-observer/index.d.ts +2 -1
- package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/performance-observer/index.d.ts +3 -3
- package/package.json +10 -1
|
@@ -5,6 +5,7 @@ import { experimentalVC, getExperimentalVCMetrics, onExperimentalInteractionComp
|
|
|
5
5
|
import { clearActiveTrace } from '../experience-trace-id-context';
|
|
6
6
|
import { allFeatureFlagsAccessed, currentFeatureFlagsAccessed } from '../feature-flags-accessed';
|
|
7
7
|
import { getInteractionId } from '../interaction-id-context';
|
|
8
|
+
import { withProfiling } from '../self-measurements';
|
|
8
9
|
import { getVCObserver } from '../vc';
|
|
9
10
|
import { interactions } from './common/constants';
|
|
10
11
|
import PostInteractionLog from './post-interaction-log';
|
|
@@ -18,18 +19,18 @@ const segmentCache = new Map();
|
|
|
18
19
|
const CLEANUP_TIMEOUT = 60 * 1000;
|
|
19
20
|
const CLEANUP_TIMEOUT_AFTER_APDEX = 15 * 1000;
|
|
20
21
|
const segmentObservers = [];
|
|
21
|
-
export function getActiveInteraction() {
|
|
22
|
+
export const getActiveInteraction = withProfiling(function getActiveInteraction() {
|
|
22
23
|
const interactionId = getInteractionId();
|
|
23
24
|
if (!interactionId.current) {
|
|
24
25
|
return;
|
|
25
26
|
}
|
|
26
27
|
return interactions.get(interactionId.current);
|
|
27
|
-
}
|
|
28
|
-
function isPerformanceTracingEnabled() {
|
|
28
|
+
});
|
|
29
|
+
const isPerformanceTracingEnabled = withProfiling(function isPerformanceTracingEnabled() {
|
|
29
30
|
var _getConfig;
|
|
30
31
|
return ((_getConfig = getConfig()) === null || _getConfig === void 0 ? void 0 : _getConfig.enableAdditionalPerformanceMarks) || window.__REACT_UFO_ENABLE_PERF_TRACING || process.env.NODE_ENV !== 'production';
|
|
31
|
-
}
|
|
32
|
-
function labelStackToString(labelStack, name) {
|
|
32
|
+
});
|
|
33
|
+
const labelStackToString = withProfiling(function labelStackToString(labelStack, name) {
|
|
33
34
|
var _stack$map;
|
|
34
35
|
const stack = [...(labelStack !== null && labelStack !== void 0 ? labelStack : [])];
|
|
35
36
|
if (name) {
|
|
@@ -38,43 +39,43 @@ function labelStackToString(labelStack, name) {
|
|
|
38
39
|
});
|
|
39
40
|
}
|
|
40
41
|
return (_stack$map = stack.map(l => l.name)) === null || _stack$map === void 0 ? void 0 : _stack$map.join('/');
|
|
41
|
-
}
|
|
42
|
-
function labelStackToIdString(labelStack) {
|
|
42
|
+
});
|
|
43
|
+
const labelStackToIdString = withProfiling(function labelStackToIdString(labelStack) {
|
|
43
44
|
var _labelStack$map;
|
|
44
45
|
return labelStack === null || labelStack === void 0 ? void 0 : (_labelStack$map = labelStack.map(l => 'segmentId' in l ? `${l.name}:${l.segmentId}` : `${l.name}`)) === null || _labelStack$map === void 0 ? void 0 : _labelStack$map.join('/');
|
|
45
|
-
}
|
|
46
|
-
function addSegmentObserver(observer) {
|
|
46
|
+
});
|
|
47
|
+
const addSegmentObserver = withProfiling(function addSegmentObserver(observer) {
|
|
47
48
|
segmentObservers.push(observer);
|
|
48
49
|
for (const segmentInfo of segmentCache.values()) {
|
|
49
50
|
observer.onAdd(segmentInfo);
|
|
50
51
|
}
|
|
51
|
-
}
|
|
52
|
-
function removeSegmentObserver(observer) {
|
|
52
|
+
});
|
|
53
|
+
const removeSegmentObserver = withProfiling(function removeSegmentObserver(observer) {
|
|
53
54
|
const index = segmentObservers.findIndex(obs => obs === observer);
|
|
54
55
|
if (index !== -1) {
|
|
55
56
|
segmentObservers.splice(index, 1);
|
|
56
57
|
}
|
|
57
|
-
}
|
|
58
|
-
export function remove(interactionId) {
|
|
58
|
+
});
|
|
59
|
+
export const remove = withProfiling(function remove(interactionId) {
|
|
59
60
|
interactions.delete(interactionId);
|
|
60
|
-
}
|
|
61
|
-
export function updatePageLoadInteractionName(ufoName, routeName = ufoName) {
|
|
61
|
+
});
|
|
62
|
+
export const updatePageLoadInteractionName = withProfiling(function updatePageLoadInteractionName(ufoName, routeName = ufoName) {
|
|
62
63
|
const interaction = getActiveInteraction();
|
|
63
64
|
if (!interaction || interaction.type !== 'page_load' && interaction.type !== 'transition') {
|
|
64
65
|
return;
|
|
65
66
|
}
|
|
66
67
|
interaction.ufoName = ufoName;
|
|
67
68
|
interaction.routeName = routeName;
|
|
68
|
-
}
|
|
69
|
-
export function addMetadata(interactionId, data) {
|
|
69
|
+
});
|
|
70
|
+
export const addMetadata = withProfiling(function addMetadata(interactionId, data) {
|
|
70
71
|
const interaction = interactions.get(interactionId);
|
|
71
72
|
if (interaction != null) {
|
|
72
73
|
Object.keys(data).forEach(key => {
|
|
73
74
|
interaction.metaData[key] = data[key];
|
|
74
75
|
});
|
|
75
76
|
}
|
|
76
|
-
}
|
|
77
|
-
export function addCustomData(interactionId, labelStack, data) {
|
|
77
|
+
});
|
|
78
|
+
export const addCustomData = withProfiling(function addCustomData(interactionId, labelStack, data) {
|
|
78
79
|
const interaction = interactions.get(interactionId);
|
|
79
80
|
if (interaction != null) {
|
|
80
81
|
Object.keys(data).forEach(i => {
|
|
@@ -86,8 +87,8 @@ export function addCustomData(interactionId, labelStack, data) {
|
|
|
86
87
|
});
|
|
87
88
|
});
|
|
88
89
|
}
|
|
89
|
-
}
|
|
90
|
-
export function addCustomTiming(interactionId, labelStack, data) {
|
|
90
|
+
});
|
|
91
|
+
export const addCustomTiming = withProfiling(function addCustomTiming(interactionId, labelStack, data) {
|
|
91
92
|
const interaction = interactions.get(interactionId);
|
|
92
93
|
if (interaction != null) {
|
|
93
94
|
interaction.customTimings.push({
|
|
@@ -112,8 +113,8 @@ export function addCustomTiming(interactionId, labelStack, data) {
|
|
|
112
113
|
}
|
|
113
114
|
}
|
|
114
115
|
}
|
|
115
|
-
}
|
|
116
|
-
export function addMark(interactionId, type, name, labelStack, time = performance.now()) {
|
|
116
|
+
});
|
|
117
|
+
export const addMark = withProfiling(function addMark(interactionId, type, name, labelStack, time = performance.now()) {
|
|
117
118
|
const interaction = interactions.get(interactionId);
|
|
118
119
|
if (interaction != null) {
|
|
119
120
|
interaction.marks.push({
|
|
@@ -128,8 +129,8 @@ export function addMark(interactionId, type, name, labelStack, time = performanc
|
|
|
128
129
|
startTime: time
|
|
129
130
|
});
|
|
130
131
|
}
|
|
131
|
-
}
|
|
132
|
-
export function addMarkToAll(type, name, labelStack, time = performance.now()) {
|
|
132
|
+
});
|
|
133
|
+
export const addMarkToAll = withProfiling(function addMarkToAll(type, name, labelStack, time = performance.now()) {
|
|
133
134
|
interactions.forEach(interaction => {
|
|
134
135
|
interaction.marks.push({
|
|
135
136
|
type,
|
|
@@ -143,8 +144,8 @@ export function addMarkToAll(type, name, labelStack, time = performance.now()) {
|
|
|
143
144
|
startTime: time
|
|
144
145
|
});
|
|
145
146
|
}
|
|
146
|
-
}
|
|
147
|
-
export function addSpan(interactionId, type, name, labelStack, start, end = performance.now(), size) {
|
|
147
|
+
});
|
|
148
|
+
export const addSpan = withProfiling(function addSpan(interactionId, type, name, labelStack, start, end = performance.now(), size) {
|
|
148
149
|
const interaction = interactions.get(interactionId);
|
|
149
150
|
if (interaction != null) {
|
|
150
151
|
interaction.spans.push({
|
|
@@ -167,8 +168,8 @@ export function addSpan(interactionId, type, name, labelStack, start, end = perf
|
|
|
167
168
|
}
|
|
168
169
|
}
|
|
169
170
|
}
|
|
170
|
-
}
|
|
171
|
-
export function addSpanToAll(type, name, labelStack, start, end = performance.now(), size = 0) {
|
|
171
|
+
});
|
|
172
|
+
export const addSpanToAll = withProfiling(function addSpanToAll(type, name, labelStack, start, end = performance.now(), size = 0) {
|
|
172
173
|
interactions.forEach(interaction => {
|
|
173
174
|
interaction.spans.push({
|
|
174
175
|
type,
|
|
@@ -190,36 +191,36 @@ export function addSpanToAll(type, name, labelStack, start, end = performance.no
|
|
|
190
191
|
// do nothing
|
|
191
192
|
}
|
|
192
193
|
}
|
|
193
|
-
}
|
|
194
|
-
export function addPreload(moduleId, timestamp) {
|
|
194
|
+
});
|
|
195
|
+
export const addPreload = withProfiling(function addPreload(moduleId, timestamp) {
|
|
195
196
|
addMarkToAll('bundle_preload', moduleId, null, timestamp);
|
|
196
|
-
}
|
|
197
|
-
export function addLoad(identifier, start, end) {
|
|
197
|
+
});
|
|
198
|
+
export const addLoad = withProfiling(function addLoad(identifier, start, end) {
|
|
198
199
|
addSpanToAll('bundle_load', identifier, null, start, end - start);
|
|
199
|
-
}
|
|
200
|
+
});
|
|
200
201
|
const moduleLoadingRequests = {};
|
|
201
|
-
export function extractModuleName(input) {
|
|
202
|
+
export const extractModuleName = withProfiling(function extractModuleName(input) {
|
|
202
203
|
let result = input !== null && input !== void 0 ? input : '';
|
|
203
204
|
result = result.replace(/^\.\/src\/packages\//, '');
|
|
204
205
|
result = result.replace(/^\.\/node_modules\//, '');
|
|
205
206
|
result = result.replace(/(\/src)?\/(index|main)\.(tsx|ts|js|jsx)$/, '');
|
|
206
207
|
return result;
|
|
207
|
-
}
|
|
208
|
-
function addHoldCriterion(id, labelStack, name, startTime) {
|
|
208
|
+
});
|
|
209
|
+
const addHoldCriterion = withProfiling(function addHoldCriterion(id, labelStack, name, startTime) {
|
|
209
210
|
var _window$__CRITERION__;
|
|
210
211
|
if (!((_window$__CRITERION__ = window.__CRITERION__) !== null && _window$__CRITERION__ !== void 0 && _window$__CRITERION__.addUFOHold)) {
|
|
211
212
|
return;
|
|
212
213
|
}
|
|
213
214
|
window.__CRITERION__.addUFOHold(id, labelStackToString(labelStack), name, startTime);
|
|
214
|
-
}
|
|
215
|
-
function removeHoldCriterion(id) {
|
|
215
|
+
});
|
|
216
|
+
const removeHoldCriterion = withProfiling(function removeHoldCriterion(id) {
|
|
216
217
|
var _window$__CRITERION__2;
|
|
217
218
|
if (!((_window$__CRITERION__2 = window.__CRITERION__) !== null && _window$__CRITERION__2 !== void 0 && _window$__CRITERION__2.removeUFOHold)) {
|
|
218
219
|
return;
|
|
219
220
|
}
|
|
220
221
|
window.__CRITERION__.removeUFOHold(id);
|
|
221
|
-
}
|
|
222
|
-
export function addHold(interactionId, labelStack, name, experimental) {
|
|
222
|
+
});
|
|
223
|
+
export const addHold = withProfiling(function addHold(interactionId, labelStack, name, experimental) {
|
|
223
224
|
const interaction = interactions.get(interactionId);
|
|
224
225
|
const id = createUUID();
|
|
225
226
|
if (interaction != null) {
|
|
@@ -279,8 +280,8 @@ export function addHold(interactionId, labelStack, name, experimental) {
|
|
|
279
280
|
};
|
|
280
281
|
}
|
|
281
282
|
return () => {};
|
|
282
|
-
}
|
|
283
|
-
export function addHoldByID(interactionId, labelStack, name, id, ignoreOnSubmit) {
|
|
283
|
+
});
|
|
284
|
+
export const addHoldByID = withProfiling(function addHoldByID(interactionId, labelStack, name, id, ignoreOnSubmit) {
|
|
284
285
|
const interaction = interactions.get(interactionId);
|
|
285
286
|
if (interaction != null) {
|
|
286
287
|
const start = performance.now();
|
|
@@ -293,8 +294,8 @@ export function addHoldByID(interactionId, labelStack, name, id, ignoreOnSubmit)
|
|
|
293
294
|
addHoldCriterion(id, labelStack, name, start);
|
|
294
295
|
}
|
|
295
296
|
return () => {};
|
|
296
|
-
}
|
|
297
|
-
export function removeHoldByID(interactionId, id) {
|
|
297
|
+
});
|
|
298
|
+
export const removeHoldByID = withProfiling(function removeHoldByID(interactionId, id) {
|
|
298
299
|
const interaction = interactions.get(interactionId);
|
|
299
300
|
if (interaction != null) {
|
|
300
301
|
const end = performance.now();
|
|
@@ -309,19 +310,19 @@ export function removeHoldByID(interactionId, id) {
|
|
|
309
310
|
removeHoldCriterion(id);
|
|
310
311
|
}
|
|
311
312
|
}
|
|
312
|
-
}
|
|
313
|
-
export function getCurrentInteractionType(interactionId) {
|
|
313
|
+
});
|
|
314
|
+
export const getCurrentInteractionType = withProfiling(function getCurrentInteractionType(interactionId) {
|
|
314
315
|
const interaction = interactions.get(interactionId);
|
|
315
316
|
if (interaction) {
|
|
316
317
|
return interaction.type;
|
|
317
318
|
}
|
|
318
319
|
return null;
|
|
319
|
-
}
|
|
320
|
+
});
|
|
320
321
|
export const ModuleLoadingProfiler = {
|
|
321
|
-
onPreload(moduleId, _priority) {
|
|
322
|
+
onPreload: withProfiling(function onPreload(moduleId, _priority) {
|
|
322
323
|
addPreload(extractModuleName(moduleId), performance.now());
|
|
323
|
-
},
|
|
324
|
-
onLoadStart(info) {
|
|
324
|
+
}),
|
|
325
|
+
onLoadStart: withProfiling(function onLoadStart(info) {
|
|
325
326
|
const timeoutId = setTimeout(() => {
|
|
326
327
|
delete moduleLoadingRequests[info.identifier];
|
|
327
328
|
}, 30000);
|
|
@@ -330,29 +331,29 @@ export const ModuleLoadingProfiler = {
|
|
|
330
331
|
timeoutId
|
|
331
332
|
};
|
|
332
333
|
moduleLoadingRequests[info.identifier] = request;
|
|
333
|
-
},
|
|
334
|
-
onLoadComplete(info) {
|
|
334
|
+
}),
|
|
335
|
+
onLoadComplete: withProfiling(function onLoadComplete(info) {
|
|
335
336
|
const request = moduleLoadingRequests[info.identifier];
|
|
336
337
|
if (request) {
|
|
337
338
|
clearTimeout(request.timeoutId);
|
|
338
339
|
delete moduleLoadingRequests[info.identifier];
|
|
339
340
|
addLoad(extractModuleName(info.identifier), request.start, performance.now());
|
|
340
341
|
}
|
|
341
|
-
},
|
|
342
|
-
placeholderFallBackMounted(id, moduleId) {
|
|
342
|
+
}),
|
|
343
|
+
placeholderFallBackMounted: withProfiling(function placeholderFallBackMounted(id, moduleId) {
|
|
343
344
|
const interactionId = getInteractionId();
|
|
344
345
|
const currentInteractionId = interactionId.current;
|
|
345
346
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
346
347
|
addHoldByID(currentInteractionId, [], moduleId, id);
|
|
347
|
-
},
|
|
348
|
-
placeholderFallBackUnmounted(id) {
|
|
348
|
+
}),
|
|
349
|
+
placeholderFallBackUnmounted: withProfiling(function placeholderFallBackUnmounted(id) {
|
|
349
350
|
const interactionId = getInteractionId();
|
|
350
351
|
const currentInteractionId = interactionId.current;
|
|
351
352
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
352
353
|
removeHoldByID(currentInteractionId, id);
|
|
353
|
-
}
|
|
354
|
+
})
|
|
354
355
|
};
|
|
355
|
-
export function addError(interactionId, name, labelStack, errorType, errorMessage, errorStack, forcedError) {
|
|
356
|
+
export const addError = withProfiling(function addError(interactionId, name, labelStack, errorType, errorMessage, errorStack, forcedError) {
|
|
356
357
|
const interaction = interactions.get(interactionId);
|
|
357
358
|
if (interaction != null) {
|
|
358
359
|
interaction.errors.push({
|
|
@@ -364,8 +365,8 @@ export function addError(interactionId, name, labelStack, errorType, errorMessag
|
|
|
364
365
|
forcedError
|
|
365
366
|
});
|
|
366
367
|
}
|
|
367
|
-
}
|
|
368
|
-
export function addErrorToAll(name, labelStack, errorType, errorMessage, errorStack) {
|
|
368
|
+
});
|
|
369
|
+
export const addErrorToAll = withProfiling(function addErrorToAll(name, labelStack, errorType, errorMessage, errorStack) {
|
|
369
370
|
interactions.forEach(interaction => {
|
|
370
371
|
interaction.errors.push({
|
|
371
372
|
name,
|
|
@@ -375,8 +376,8 @@ export function addErrorToAll(name, labelStack, errorType, errorMessage, errorSt
|
|
|
375
376
|
errorStack
|
|
376
377
|
});
|
|
377
378
|
});
|
|
378
|
-
}
|
|
379
|
-
export const addProfilerTimings = (interactionId, labelStack, type, actualDuration, baseDuration, startTime, commitTime)
|
|
379
|
+
});
|
|
380
|
+
export const addProfilerTimings = withProfiling(function addProfilerTimings(interactionId, labelStack, type, actualDuration, baseDuration, startTime, commitTime) {
|
|
380
381
|
var _getConfig3, _getConfig3$postInter;
|
|
381
382
|
if (isPerformanceTracingEnabled()) {
|
|
382
383
|
try {
|
|
@@ -402,20 +403,20 @@ export const addProfilerTimings = (interactionId, labelStack, type, actualDurati
|
|
|
402
403
|
} else if ((_getConfig3 = getConfig()) !== null && _getConfig3 !== void 0 && (_getConfig3$postInter = _getConfig3.postInteractionLog) !== null && _getConfig3$postInter !== void 0 && _getConfig3$postInter.enabled) {
|
|
403
404
|
postInteractionLog.addProfilerTimings(labelStack, type, actualDuration, baseDuration, startTime, commitTime);
|
|
404
405
|
}
|
|
405
|
-
};
|
|
406
|
-
const pushToQueue = (id, data)
|
|
406
|
+
});
|
|
407
|
+
const pushToQueue = withProfiling(function pushToQueue(id, data) {
|
|
407
408
|
interactionQueue.push({
|
|
408
409
|
id,
|
|
409
410
|
data
|
|
410
411
|
});
|
|
411
|
-
};
|
|
412
|
+
});
|
|
412
413
|
let handleInteraction = pushToQueue;
|
|
413
|
-
function callCleanUpCallbacks(interaction) {
|
|
414
|
+
const callCleanUpCallbacks = withProfiling(function callCleanUpCallbacks(interaction) {
|
|
414
415
|
interaction.cleanupCallbacks.reverse().forEach(cleanUpCallback => {
|
|
415
416
|
cleanUpCallback();
|
|
416
417
|
});
|
|
417
|
-
}
|
|
418
|
-
const finishInteraction = (id, data, endTime = performance.now())
|
|
418
|
+
});
|
|
419
|
+
const finishInteraction = withProfiling(function finishInteraction(id, data, endTime = performance.now()) {
|
|
419
420
|
var _getConfig4, _getConfig4$vc, _getConfig5, _getConfig5$experimen;
|
|
420
421
|
data.end = endTime;
|
|
421
422
|
try {
|
|
@@ -481,8 +482,8 @@ const finishInteraction = (id, data, endTime = performance.now()) => {
|
|
|
481
482
|
} catch (error) {
|
|
482
483
|
// do nothing
|
|
483
484
|
}
|
|
484
|
-
};
|
|
485
|
-
export const sinkInteractionHandler = sinkFn
|
|
485
|
+
});
|
|
486
|
+
export const sinkInteractionHandler = withProfiling(function sinkInteractionHandler(sinkFn) {
|
|
486
487
|
if (handleInteraction === pushToQueue) {
|
|
487
488
|
handleInteraction = sinkFn;
|
|
488
489
|
interactionQueue.forEach(interaction => {
|
|
@@ -490,14 +491,14 @@ export const sinkInteractionHandler = sinkFn => {
|
|
|
490
491
|
});
|
|
491
492
|
interactionQueue.length = 0;
|
|
492
493
|
}
|
|
493
|
-
};
|
|
494
|
-
export const sinkPostInteractionLogHandler = sinkFn
|
|
494
|
+
});
|
|
495
|
+
export const sinkPostInteractionLogHandler = withProfiling(function sinkPostInteractionLogHandler(sinkFn) {
|
|
495
496
|
postInteractionLog.sinkHandler(sinkFn);
|
|
496
|
-
};
|
|
497
|
+
});
|
|
497
498
|
|
|
498
499
|
// a flag to prevent multiple submitting
|
|
499
500
|
let activeSubmitted = false;
|
|
500
|
-
export function tryComplete(interactionId, endTime) {
|
|
501
|
+
export const tryComplete = withProfiling(function tryComplete(interactionId, endTime) {
|
|
501
502
|
const interaction = interactions.get(interactionId);
|
|
502
503
|
if (interaction != null) {
|
|
503
504
|
const noMoreActiveHolds = interaction.holdActive.size === 0;
|
|
@@ -542,13 +543,13 @@ export function tryComplete(interactionId, endTime) {
|
|
|
542
543
|
}
|
|
543
544
|
}
|
|
544
545
|
}
|
|
545
|
-
}
|
|
546
|
-
function callCancelCallbacks(interaction) {
|
|
546
|
+
});
|
|
547
|
+
const callCancelCallbacks = withProfiling(function callCancelCallbacks(interaction) {
|
|
547
548
|
interaction.cancelCallbacks.reverse().forEach(cancelCallback => {
|
|
548
549
|
cancelCallback();
|
|
549
550
|
});
|
|
550
|
-
}
|
|
551
|
-
export function abort(interactionId, abortReason) {
|
|
551
|
+
});
|
|
552
|
+
export const abort = withProfiling(function abort(interactionId, abortReason) {
|
|
552
553
|
const interaction = interactions.get(interactionId);
|
|
553
554
|
if (interaction != null) {
|
|
554
555
|
var _getConfig10, _getConfig10$experime;
|
|
@@ -560,8 +561,8 @@ export function abort(interactionId, abortReason) {
|
|
|
560
561
|
remove(interactionId);
|
|
561
562
|
}
|
|
562
563
|
}
|
|
563
|
-
}
|
|
564
|
-
export function abortByNewInteraction(interactionId, interactionName) {
|
|
564
|
+
});
|
|
565
|
+
export const abortByNewInteraction = withProfiling(function abortByNewInteraction(interactionId, interactionName) {
|
|
565
566
|
const interaction = interactions.get(interactionId);
|
|
566
567
|
if (interaction != null) {
|
|
567
568
|
var _getConfig11, _getConfig11$experime;
|
|
@@ -574,8 +575,8 @@ export function abortByNewInteraction(interactionId, interactionName) {
|
|
|
574
575
|
remove(interactionId);
|
|
575
576
|
}
|
|
576
577
|
}
|
|
577
|
-
}
|
|
578
|
-
export function abortAll(abortReason, abortedByInteractionName) {
|
|
578
|
+
});
|
|
579
|
+
export const abortAll = withProfiling(function abortAll(abortReason, abortedByInteractionName) {
|
|
579
580
|
interactions.forEach((interaction, interactionId) => {
|
|
580
581
|
var _getConfig12, _getConfig12$experime;
|
|
581
582
|
const noMoreHolds = interaction.holdActive.size === 0;
|
|
@@ -592,12 +593,12 @@ export function abortAll(abortReason, abortedByInteractionName) {
|
|
|
592
593
|
remove(interactionId);
|
|
593
594
|
}
|
|
594
595
|
});
|
|
595
|
-
}
|
|
596
|
-
export function addOnCancelCallback(id, cancelCallback) {
|
|
596
|
+
});
|
|
597
|
+
export const addOnCancelCallback = withProfiling(function addOnCancelCallback(id, cancelCallback) {
|
|
597
598
|
const interaction = interactions.get(id);
|
|
598
599
|
interaction === null || interaction === void 0 ? void 0 : interaction.cancelCallbacks.push(cancelCallback);
|
|
599
|
-
}
|
|
600
|
-
export function addNewInteraction(interactionId, ufoName, type, startTime, rate, labelStack, routeName, trace = null) {
|
|
600
|
+
});
|
|
601
|
+
export const addNewInteraction = withProfiling(function addNewInteraction(interactionId, ufoName, type, startTime, rate, labelStack, routeName, trace = null) {
|
|
601
602
|
var _getConfig13, _getConfig13$postInte;
|
|
602
603
|
if ((_getConfig13 = getConfig()) !== null && _getConfig13 !== void 0 && (_getConfig13$postInte = _getConfig13.postInteractionLog) !== null && _getConfig13$postInte !== void 0 && _getConfig13$postInte.enabled) {
|
|
603
604
|
postInteractionLog.reset();
|
|
@@ -700,8 +701,8 @@ export function addNewInteraction(interactionId, ufoName, type, startTime, rate,
|
|
|
700
701
|
});
|
|
701
702
|
}
|
|
702
703
|
}
|
|
703
|
-
}
|
|
704
|
-
export function addBrowserMetricEvent(event) {
|
|
704
|
+
});
|
|
705
|
+
export const addBrowserMetricEvent = withProfiling(function addBrowserMetricEvent(event) {
|
|
705
706
|
const interaction = getActiveInteraction();
|
|
706
707
|
if (interaction) {
|
|
707
708
|
var _event$config;
|
|
@@ -712,8 +713,8 @@ export function addBrowserMetricEvent(event) {
|
|
|
712
713
|
removeHoldByID(interaction.id, interaction.ufoName);
|
|
713
714
|
}
|
|
714
715
|
}
|
|
715
|
-
}
|
|
716
|
-
export function addApdexToAll(apdex) {
|
|
716
|
+
});
|
|
717
|
+
export const addApdexToAll = withProfiling(function addApdexToAll(apdex) {
|
|
717
718
|
interactions.forEach((interaction, key) => {
|
|
718
719
|
interaction.apdex.push(apdex);
|
|
719
720
|
try {
|
|
@@ -731,8 +732,8 @@ export function addApdexToAll(apdex) {
|
|
|
731
732
|
removeHoldByID(key, interaction.ufoName);
|
|
732
733
|
}
|
|
733
734
|
});
|
|
734
|
-
}
|
|
735
|
-
export function addApdex(interactionId, apdexInfo) {
|
|
735
|
+
});
|
|
736
|
+
export const addApdex = withProfiling(function addApdex(interactionId, apdexInfo) {
|
|
736
737
|
const interaction = interactions.get(interactionId);
|
|
737
738
|
if (interaction != null) {
|
|
738
739
|
interaction.apdex.push(apdexInfo);
|
|
@@ -751,8 +752,8 @@ export function addApdex(interactionId, apdexInfo) {
|
|
|
751
752
|
removeHoldByID(interactionId, interaction.ufoName);
|
|
752
753
|
}
|
|
753
754
|
}
|
|
754
|
-
}
|
|
755
|
-
export function addRequestInfo(interactionId, labelStack, requestInfo) {
|
|
755
|
+
});
|
|
756
|
+
export const addRequestInfo = withProfiling(function addRequestInfo(interactionId, labelStack, requestInfo) {
|
|
756
757
|
const interaction = interactions.get(interactionId);
|
|
757
758
|
if (interaction != null) {
|
|
758
759
|
interaction.requestInfo.push({
|
|
@@ -760,19 +761,19 @@ export function addRequestInfo(interactionId, labelStack, requestInfo) {
|
|
|
760
761
|
...requestInfo
|
|
761
762
|
});
|
|
762
763
|
}
|
|
763
|
-
}
|
|
764
|
-
function isSegmentLabel(obj) {
|
|
764
|
+
});
|
|
765
|
+
const isSegmentLabel = withProfiling(function isSegmentLabel(obj) {
|
|
765
766
|
return obj && typeof obj.name === 'string' && typeof obj.segmentId === 'string';
|
|
766
|
-
}
|
|
767
|
-
function getSegmentCacheKey(labelStack) {
|
|
767
|
+
});
|
|
768
|
+
const getSegmentCacheKey = withProfiling(function getSegmentCacheKey(labelStack) {
|
|
768
769
|
return labelStack.map(l => {
|
|
769
770
|
if (isSegmentLabel(l)) {
|
|
770
771
|
return `${l.name}_${l.segmentId}`;
|
|
771
772
|
}
|
|
772
773
|
return l.name;
|
|
773
774
|
}).join('|');
|
|
774
|
-
}
|
|
775
|
-
export function addSegment(labelStack) {
|
|
775
|
+
});
|
|
776
|
+
export const addSegment = withProfiling(function addSegment(labelStack) {
|
|
776
777
|
const key = getSegmentCacheKey(labelStack);
|
|
777
778
|
const existingSegment = segmentCache.get(key);
|
|
778
779
|
if (!existingSegment) {
|
|
@@ -784,8 +785,8 @@ export function addSegment(labelStack) {
|
|
|
784
785
|
observer.onAdd(segmentInfo);
|
|
785
786
|
});
|
|
786
787
|
}
|
|
787
|
-
}
|
|
788
|
-
export function removeSegment(labelStack) {
|
|
788
|
+
});
|
|
789
|
+
export const removeSegment = withProfiling(function removeSegment(labelStack) {
|
|
789
790
|
const key = getSegmentCacheKey(labelStack);
|
|
790
791
|
const segmentInfo = segmentCache.get(key);
|
|
791
792
|
if (segmentInfo) {
|
|
@@ -794,8 +795,8 @@ export function removeSegment(labelStack) {
|
|
|
794
795
|
observer.onRemove(segmentInfo);
|
|
795
796
|
});
|
|
796
797
|
}
|
|
797
|
-
}
|
|
798
|
-
export function addRedirect(interactionId, fromUfoName, nextUfoName, nextRouteName, time) {
|
|
798
|
+
});
|
|
799
|
+
export const addRedirect = withProfiling(function addRedirect(interactionId, fromUfoName, nextUfoName, nextRouteName, time) {
|
|
799
800
|
const interaction = interactions.get(interactionId);
|
|
800
801
|
if (interaction != null) {
|
|
801
802
|
interaction.ufoName = nextUfoName;
|
|
@@ -818,12 +819,12 @@ export function addRedirect(interactionId, fromUfoName, nextUfoName, nextRouteNa
|
|
|
818
819
|
}
|
|
819
820
|
}
|
|
820
821
|
}
|
|
821
|
-
}
|
|
822
|
+
});
|
|
822
823
|
export const interactionSpans = [];
|
|
823
824
|
const defaultLabelStack = [{
|
|
824
825
|
name: 'custom'
|
|
825
826
|
}];
|
|
826
|
-
export function addCustomSpans(name, start, end = performance.now(), size = 0, labelStack = defaultLabelStack) {
|
|
827
|
+
export const addCustomSpans = withProfiling(function addCustomSpans(name, start, end = performance.now(), size = 0, labelStack = defaultLabelStack) {
|
|
827
828
|
const customSpan = {
|
|
828
829
|
type: 'custom',
|
|
829
830
|
name,
|
|
@@ -833,4 +834,4 @@ export function addCustomSpans(name, start, end = performance.now(), size = 0, l
|
|
|
833
834
|
size
|
|
834
835
|
};
|
|
835
836
|
interactionSpans.push(customSpan);
|
|
836
|
-
}
|
|
837
|
+
});
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
2
|
import { getConfig } from '../config';
|
|
3
|
+
import { withProfiling } from '../self-measurements';
|
|
3
4
|
import { VCObserver } from '../vc/vc-observer';
|
|
4
5
|
const POST_INTERACTION_LOG_SEND_DEFAULT_TIMEOUT = 3000;
|
|
5
6
|
export default class PostInteractionLog {
|
|
@@ -25,6 +26,15 @@ export default class PostInteractionLog {
|
|
|
25
26
|
* Handler function to process / send the observation data
|
|
26
27
|
*/
|
|
27
28
|
_defineProperty(this, "sinkHandlerFn", () => {});
|
|
29
|
+
this.initializeVCObserver = withProfiling(this.initializeVCObserver.bind(this));
|
|
30
|
+
this.startVCObserver = withProfiling(this.startVCObserver.bind(this));
|
|
31
|
+
this.setVCObserverSSRConfig = withProfiling(this.setVCObserverSSRConfig.bind(this));
|
|
32
|
+
this.setLastInteractionFinishVCResult = withProfiling(this.setLastInteractionFinishVCResult.bind(this));
|
|
33
|
+
this.reset = withProfiling(this.reset.bind(this));
|
|
34
|
+
this.hasData = withProfiling(this.hasData.bind(this));
|
|
35
|
+
this.sendPostInteractionLog = withProfiling(this.sendPostInteractionLog.bind(this));
|
|
36
|
+
this.onInteractionComplete = withProfiling(this.onInteractionComplete.bind(this));
|
|
37
|
+
this.addProfilerTimings = withProfiling(this.addProfilerTimings.bind(this));
|
|
28
38
|
}
|
|
29
39
|
initializeVCObserver(options) {
|
|
30
40
|
if (this.vcObserver === null) {
|
|
@@ -4,12 +4,13 @@ import { setUFOConfig } from '../config';
|
|
|
4
4
|
import { experimentalVC, sinkExperimentalHandler } from '../create-experimental-interaction-metrics-payload';
|
|
5
5
|
import { setupHiddenTimingCapture } from '../hidden-timing';
|
|
6
6
|
import { postInteractionLog, sinkInteractionHandler, sinkPostInteractionLogHandler } from '../interaction-metrics';
|
|
7
|
+
import { withProfiling } from '../self-measurements';
|
|
7
8
|
import { getVCObserver } from '../vc';
|
|
8
9
|
import scheduleIdleCallback from './schedule-idle-callback';
|
|
9
10
|
let initialized = false;
|
|
10
|
-
function sinkInteraction(instance, payloadPackage) {
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
const sinkInteraction = withProfiling(function sinkInteraction(instance, payloadPackage) {
|
|
12
|
+
const sinkFn = withProfiling(function sinkFn(interactionId, interaction) {
|
|
13
|
+
const onIdle = withProfiling(function onIdle() {
|
|
13
14
|
payloadPackage.createPayloads(interactionId, interaction).then(payloads => {
|
|
14
15
|
// NOTE: This API is used by the UFO DevTool Chrome Extension and Criterion
|
|
15
16
|
const devToolObserver = globalThis.__ufo_devtool_onUfoPayload;
|
|
@@ -23,14 +24,17 @@ function sinkInteraction(instance, payloadPackage) {
|
|
|
23
24
|
throw error;
|
|
24
25
|
});
|
|
25
26
|
});
|
|
27
|
+
scheduleIdleCallback(onIdle);
|
|
26
28
|
});
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
sinkInteractionHandler(sinkFn);
|
|
30
|
+
});
|
|
31
|
+
const sinkExperimentalInteractionMetrics = withProfiling(function sinkExperimentalInteractionMetrics(instance, payloadPackage) {
|
|
32
|
+
const experimentalMetricsSinkFn = withProfiling(function experimentalMetricsSinkFn(interactionId, interaction) {
|
|
33
|
+
const experimentalMetricsOnIdle = withProfiling(function experimentalMetricsOnIdle() {
|
|
31
34
|
const payloadPromise = payloadPackage.createExperimentalMetricsPayload(interactionId, interaction);
|
|
32
35
|
payloadPromise.then(payload => {
|
|
33
36
|
if (payload) {
|
|
37
|
+
// eslint-disable-next-line @atlaskit/platform/ensure-feature-flag-prefix
|
|
34
38
|
if (fg('enable_ufo_devtools_api_for_extra_events')) {
|
|
35
39
|
// NOTE: This API is used by the UFO DevTool Chrome Extension and Criterion
|
|
36
40
|
const devToolObserver = globalThis.__ufo_devtool_onUfoPayload;
|
|
@@ -42,14 +46,17 @@ function sinkExperimentalInteractionMetrics(instance, payloadPackage) {
|
|
|
42
46
|
}
|
|
43
47
|
});
|
|
44
48
|
});
|
|
49
|
+
scheduleIdleCallback(experimentalMetricsOnIdle);
|
|
45
50
|
});
|
|
46
|
-
|
|
51
|
+
sinkExperimentalHandler(experimentalMetricsSinkFn);
|
|
52
|
+
});
|
|
47
53
|
function sinkPostInteractionLog(instance, createPostInteractionLogPayload) {
|
|
48
54
|
sinkPostInteractionLogHandler(logOutput => {
|
|
49
55
|
scheduleIdleCallback(() => {
|
|
50
56
|
const payload = createPostInteractionLogPayload(logOutput);
|
|
51
57
|
if (payload) {
|
|
52
58
|
// NOTE: This API is used by the UFO DevTool Chrome Extension and also by Criterion
|
|
59
|
+
// eslint-disable-next-line @atlaskit/platform/ensure-feature-flag-prefix
|
|
53
60
|
if (fg('enable_ufo_devtools_api_for_extra_events')) {
|
|
54
61
|
const devToolObserver = globalThis.__ufo_devtool_onUfoPayload;
|
|
55
62
|
if (typeof devToolObserver === 'function') {
|
|
@@ -61,7 +68,7 @@ function sinkPostInteractionLog(instance, createPostInteractionLogPayload) {
|
|
|
61
68
|
});
|
|
62
69
|
});
|
|
63
70
|
}
|
|
64
|
-
export const init = (analyticsWebClientAsync, config)
|
|
71
|
+
export const init = withProfiling(function init(analyticsWebClientAsync, config) {
|
|
65
72
|
var _config$vc;
|
|
66
73
|
if (initialized) {
|
|
67
74
|
return;
|
|
@@ -115,4 +122,4 @@ export const init = (analyticsWebClientAsync, config) => {
|
|
|
115
122
|
}
|
|
116
123
|
}
|
|
117
124
|
});
|
|
118
|
-
};
|
|
125
|
+
});
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { unstable_IdlePriority as idlePriority, unstable_scheduleCallback as scheduleCallback } from 'scheduler';
|
|
2
2
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
import { withProfiling } from '../self-measurements';
|
|
4
|
+
const scheduleIdleCallback = withProfiling(function scheduleIdleCallback(work) {
|
|
5
|
+
if (typeof window !== 'undefined' && typeof window.requestIdleCallback === 'function' &&
|
|
6
|
+
// eslint-disable-next-line @atlaskit/platform/ensure-feature-flag-prefix
|
|
7
|
+
fg('ufo_payload_use_idle_callback')) {
|
|
5
8
|
window.requestIdleCallback(work);
|
|
6
9
|
} else {
|
|
7
10
|
scheduleCallback(idlePriority, work);
|
|
8
11
|
}
|
|
9
|
-
}
|
|
12
|
+
});
|
|
13
|
+
export default scheduleIdleCallback;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { getConfig as getConfigUFO } from '../../../config';
|
|
2
|
+
import { withProfiling } from '../../../self-measurements';
|
|
2
3
|
const defaultAllowedParams = ['operationName', 'operation', 'q'];
|
|
3
|
-
const getAllowedParams = ()
|
|
4
|
+
const getAllowedParams = withProfiling(function getAllowedParams() {
|
|
4
5
|
const config = getConfigUFO();
|
|
5
6
|
return (config === null || config === void 0 ? void 0 : config.allowedResourcesParams) || defaultAllowedParams;
|
|
6
|
-
};
|
|
7
|
-
const handleQueryParams = urlString
|
|
7
|
+
});
|
|
8
|
+
const handleQueryParams = withProfiling(function handleQueryParams(urlString) {
|
|
8
9
|
try {
|
|
9
10
|
if (typeof urlString !== 'string') {
|
|
10
11
|
return urlString;
|
|
@@ -21,14 +22,14 @@ const handleQueryParams = urlString => {
|
|
|
21
22
|
} catch (e) {
|
|
22
23
|
return urlString;
|
|
23
24
|
}
|
|
24
|
-
};
|
|
25
|
+
});
|
|
25
26
|
let config = {
|
|
26
27
|
mapResources: url => url,
|
|
27
28
|
sanitiseEndpoints: url => {
|
|
28
29
|
return handleQueryParams(url);
|
|
29
30
|
}
|
|
30
31
|
};
|
|
31
|
-
export function configure(resourceTimingConfig) {
|
|
32
|
+
export const configure = withProfiling(function configure(resourceTimingConfig) {
|
|
32
33
|
const newConfig = {
|
|
33
34
|
mapResources: resourceTimingConfig.mapResources,
|
|
34
35
|
sanitiseEndpoints: url => {
|
|
@@ -40,5 +41,7 @@ export function configure(resourceTimingConfig) {
|
|
|
40
41
|
}
|
|
41
42
|
};
|
|
42
43
|
config = newConfig;
|
|
43
|
-
}
|
|
44
|
-
export const getConfig = ()
|
|
44
|
+
});
|
|
45
|
+
export const getConfig = withProfiling(function getConfig() {
|
|
46
|
+
return config;
|
|
47
|
+
});
|