@atlaskit/react-ufo 3.6.5 → 3.6.7
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 +16 -0
- package/dist/cjs/additional-payload/utils/cache-hit-ratio/index.js +5 -6
- package/dist/cjs/additional-payload/utils/lighthouse-metrics/cls/index.js +3 -4
- package/dist/cjs/additional-payload/utils/lighthouse-metrics/index.js +6 -6
- package/dist/cjs/additional-payload/utils/lighthouse-metrics/tbt/index.js +3 -4
- package/dist/cjs/additional-payload/utils/lighthouse-metrics/utils/buffer/index.js +0 -3
- package/dist/cjs/additional-payload/utils/lighthouse-metrics/utils/observer/index.js +10 -10
- package/dist/cjs/assets/index.js +14 -17
- package/dist/cjs/assets/utils.js +13 -10
- package/dist/cjs/bundle-eval-timing/index.js +8 -8
- package/dist/cjs/coinflip/index.js +2 -3
- package/dist/cjs/config/index.js +42 -30
- package/dist/cjs/create-experimental-interaction-metrics-payload/index.js +41 -29
- package/dist/cjs/create-payload/common/utils/index.js +20 -16
- package/dist/cjs/create-payload/index.js +120 -128
- package/dist/cjs/create-payload/utils/get-interaction-status.js +2 -3
- package/dist/cjs/create-payload/utils/get-page-visibility-up-to-ttai.js +2 -3
- package/dist/cjs/create-payload/utils/get-react-ufo-payload-version.js +3 -4
- package/dist/cjs/create-payload/utils/get-ssr-done-time-value.js +2 -3
- package/dist/cjs/create-payload/utils/get-vc-metrics.js +7 -8
- package/dist/cjs/create-post-interaction-log-payload/index.js +12 -13
- package/dist/cjs/custom-data/index.js +14 -6
- package/dist/cjs/custom-mark/index.js +3 -4
- package/dist/cjs/custom-spans/index.js +3 -4
- package/dist/cjs/custom-timings/index.js +6 -6
- package/dist/cjs/experience-trace-id-context/index.js +21 -16
- package/dist/cjs/experience-trace-id-context/utils/make-trace-http-request-headers/index.js +3 -4
- package/dist/cjs/feature-flags-accessed/common/utils/index.js +12 -12
- package/dist/cjs/feature-flags-accessed/index.js +4 -4
- package/dist/cjs/generate-id/index.js +2 -3
- package/dist/cjs/global-error-handler/index.js +16 -15
- package/dist/cjs/initial-page-load-extra-timing/index.js +6 -6
- package/dist/cjs/interaction-metrics/index.js +146 -110
- package/dist/cjs/interaction-metrics/post-interaction-log.js +0 -10
- package/dist/cjs/interaction-metrics-init/index.js +15 -16
- package/dist/cjs/interaction-metrics-init/schedule-idle-callback.js +2 -3
- package/dist/cjs/resource-timing/common/utils/config.js +10 -10
- package/dist/cjs/resource-timing/common/utils/resource-timing-buffer.js +14 -14
- package/dist/cjs/resource-timing/main.js +24 -37
- package/dist/cjs/resource-timing/utils.js +3 -4
- package/dist/cjs/round-number/index.js +3 -4
- package/dist/cjs/route-name/index.js +2 -3
- package/dist/cjs/segment/schedule-on-paint.js +2 -4
- package/dist/cjs/segment/segment.js +4 -5
- package/dist/cjs/set-interaction-error/index.js +3 -4
- package/dist/cjs/short-id/index.js +2 -3
- package/dist/cjs/ssr/index.js +21 -18
- package/dist/cjs/trace-interaction/index.js +4 -5
- package/dist/cjs/trace-pageload/index.js +6 -6
- package/dist/cjs/trace-press/index.js +2 -3
- package/dist/cjs/trace-redirect/index.js +2 -3
- package/dist/cjs/trace-transition/index.js +2 -3
- package/dist/cjs/trace-transition/utils/generate-span-id/index.js +3 -4
- package/dist/cjs/trace-transition/utils/set-interaction-active-trace/index.js +3 -4
- package/dist/cjs/vc/index.js +6 -17
- package/dist/cjs/vc/vc-observer/attachAbortListeners.js +3 -4
- package/dist/cjs/vc/vc-observer/getVCRevisionsData.js +22 -13
- package/dist/cjs/vc/vc-observer/getViewport.js +6 -6
- package/dist/cjs/vc/vc-observer/heatmap/heatmap.js +10 -20
- package/dist/cjs/vc/vc-observer/index.js +119 -145
- package/dist/cjs/vc/vc-observer/media-wrapper/vc-utils.js +3 -4
- package/dist/cjs/vc/vc-observer/observers/editor-lnv/index.js +0 -17
- package/dist/cjs/vc/vc-observer/observers/index.js +2 -29
- package/dist/cjs/vc/vc-observer/observers/non-visual-styles/is-non-visual-style-mutation.js +2 -3
- package/dist/cjs/vc/vc-observer/observers/ssr-placeholders/index.js +0 -16
- package/dist/cjs/vc/vc-observer/revisions/fy25_01.js +0 -2
- package/dist/cjs/vc/vc-observer/revisions/fy25_02.js +0 -2
- package/dist/cjs/vc/vc-observer/revisions/revisions.js +3 -4
- package/dist/cjs/vc/vc-observer-new/entries-timeline/index.js +0 -9
- package/dist/cjs/vc/vc-observer-new/get-element-name.js +2 -3
- package/dist/cjs/vc/vc-observer-new/get-unique-element-name.js +10 -11
- package/dist/cjs/vc/vc-observer-new/index.js +0 -9
- package/dist/cjs/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +0 -2
- package/dist/cjs/vc/vc-observer-new/metric-calculator/fy25_03/index.js +1 -6
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +12 -20
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +26 -26
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.js +6 -18
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +13 -25
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/index.js +7 -8
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.js +39 -48
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +7 -8
- package/dist/cjs/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.js +2 -3
- package/dist/cjs/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.js +2 -3
- package/dist/cjs/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.js +2 -3
- package/dist/cjs/vc/vc-observer-new/metric-calculator/utils/task-yield.js +7 -8
- package/dist/cjs/vc/vc-observer-new/viewport-observer/index.js +7 -15
- package/dist/cjs/vc/vc-observer-new/viewport-observer/intersection-observer/index.js +7 -8
- package/dist/cjs/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +14 -15
- package/dist/cjs/vc/vc-observer-new/viewport-observer/performance-observer/index.js +9 -9
- package/dist/cjs/vc/vc-observer-new/window-event-observer/index.js +1 -7
- package/dist/es2019/additional-payload/utils/cache-hit-ratio/index.js +4 -5
- package/dist/es2019/additional-payload/utils/lighthouse-metrics/cls/index.js +2 -3
- package/dist/es2019/additional-payload/utils/lighthouse-metrics/index.js +4 -5
- package/dist/es2019/additional-payload/utils/lighthouse-metrics/tbt/index.js +2 -3
- package/dist/es2019/additional-payload/utils/lighthouse-metrics/utils/buffer/index.js +0 -3
- package/dist/es2019/additional-payload/utils/lighthouse-metrics/utils/observer/index.js +8 -9
- package/dist/es2019/assets/index.js +14 -19
- package/dist/es2019/assets/utils.js +8 -10
- package/dist/es2019/bundle-eval-timing/index.js +6 -7
- package/dist/es2019/coinflip/index.js +2 -4
- package/dist/es2019/config/index.js +28 -29
- package/dist/es2019/create-experimental-interaction-metrics-payload/index.js +15 -18
- package/dist/es2019/create-payload/common/utils/index.js +14 -15
- package/dist/es2019/create-payload/index.js +75 -84
- package/dist/es2019/create-payload/utils/get-interaction-status.js +2 -4
- package/dist/es2019/create-payload/utils/get-page-visibility-up-to-ttai.js +2 -3
- package/dist/es2019/create-payload/utils/get-react-ufo-payload-version.js +2 -3
- package/dist/es2019/create-payload/utils/get-ssr-done-time-value.js +2 -3
- package/dist/es2019/create-payload/utils/get-vc-metrics.js +2 -3
- package/dist/es2019/create-post-interaction-log-payload/index.js +12 -13
- package/dist/es2019/custom-data/index.js +13 -5
- package/dist/es2019/custom-mark/index.js +2 -3
- package/dist/es2019/custom-spans/index.js +2 -3
- package/dist/es2019/custom-timings/index.js +4 -5
- package/dist/es2019/experience-trace-id-context/index.js +14 -15
- package/dist/es2019/experience-trace-id-context/utils/make-trace-http-request-headers/index.js +2 -3
- package/dist/es2019/feature-flags-accessed/common/utils/index.js +10 -11
- package/dist/es2019/feature-flags-accessed/index.js +2 -3
- package/dist/es2019/generate-id/index.js +2 -3
- package/dist/es2019/global-error-handler/index.js +13 -14
- package/dist/es2019/initial-page-load-extra-timing/index.js +4 -5
- package/dist/es2019/interaction-metrics/index.js +108 -109
- package/dist/es2019/interaction-metrics/post-interaction-log.js +0 -10
- package/dist/es2019/interaction-metrics-init/index.js +14 -15
- package/dist/es2019/interaction-metrics-init/schedule-idle-callback.js +2 -3
- package/dist/es2019/resource-timing/common/utils/config.js +8 -9
- package/dist/es2019/resource-timing/common/utils/resource-timing-buffer.js +12 -13
- package/dist/es2019/resource-timing/main.js +23 -36
- package/dist/es2019/resource-timing/utils.js +2 -3
- package/dist/es2019/round-number/index.js +2 -3
- package/dist/es2019/route-name/index.js +2 -3
- package/dist/es2019/segment/schedule-on-paint.js +2 -4
- package/dist/es2019/segment/segment.js +4 -5
- package/dist/es2019/set-interaction-error/index.js +2 -3
- package/dist/es2019/short-id/index.js +2 -3
- package/dist/es2019/ssr/index.js +16 -17
- package/dist/es2019/trace-interaction/index.js +4 -5
- package/dist/es2019/trace-pageload/index.js +4 -5
- package/dist/es2019/trace-press/index.js +2 -3
- package/dist/es2019/trace-redirect/index.js +2 -3
- package/dist/es2019/trace-transition/index.js +2 -3
- package/dist/es2019/trace-transition/utils/generate-span-id/index.js +2 -3
- package/dist/es2019/trace-transition/utils/set-interaction-active-trace/index.js +2 -3
- package/dist/es2019/vc/index.js +4 -16
- package/dist/es2019/vc/vc-observer/attachAbortListeners.js +2 -3
- package/dist/es2019/vc/vc-observer/getVCRevisionsData.js +4 -5
- package/dist/es2019/vc/vc-observer/getViewport.js +4 -5
- package/dist/es2019/vc/vc-observer/heatmap/heatmap.js +8 -20
- package/dist/es2019/vc/vc-observer/index.js +104 -134
- package/dist/es2019/vc/vc-observer/media-wrapper/vc-utils.js +2 -3
- package/dist/es2019/vc/vc-observer/observers/editor-lnv/index.js +0 -17
- package/dist/es2019/vc/vc-observer/observers/index.js +2 -29
- package/dist/es2019/vc/vc-observer/observers/non-visual-styles/is-non-visual-style-mutation.js +2 -4
- package/dist/es2019/vc/vc-observer/observers/ssr-placeholders/index.js +0 -16
- package/dist/es2019/vc/vc-observer/revisions/fy25_01.js +0 -2
- package/dist/es2019/vc/vc-observer/revisions/fy25_02.js +0 -2
- package/dist/es2019/vc/vc-observer/revisions/revisions.js +2 -3
- package/dist/es2019/vc/vc-observer-new/entries-timeline/index.js +0 -9
- package/dist/es2019/vc/vc-observer-new/get-element-name.js +2 -3
- package/dist/es2019/vc/vc-observer-new/get-unique-element-name.js +10 -11
- package/dist/es2019/vc/vc-observer-new/index.js +0 -9
- package/dist/es2019/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +0 -2
- package/dist/es2019/vc/vc-observer-new/metric-calculator/fy25_03/index.js +0 -3
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +4 -14
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +4 -5
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.js +6 -18
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +8 -20
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/index.js +2 -3
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.js +8 -9
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +2 -3
- package/dist/es2019/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.js +2 -3
- package/dist/es2019/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.js +2 -3
- package/dist/es2019/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.js +2 -3
- package/dist/es2019/vc/vc-observer-new/metric-calculator/utils/task-yield.js +2 -4
- package/dist/es2019/vc/vc-observer-new/viewport-observer/index.js +7 -15
- package/dist/es2019/vc/vc-observer-new/viewport-observer/intersection-observer/index.js +8 -8
- package/dist/es2019/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +15 -15
- package/dist/es2019/vc/vc-observer-new/viewport-observer/performance-observer/index.js +8 -9
- package/dist/es2019/vc/vc-observer-new/window-event-observer/index.js +1 -7
- package/dist/esm/additional-payload/utils/cache-hit-ratio/index.js +4 -5
- package/dist/esm/additional-payload/utils/lighthouse-metrics/cls/index.js +2 -3
- package/dist/esm/additional-payload/utils/lighthouse-metrics/index.js +4 -5
- package/dist/esm/additional-payload/utils/lighthouse-metrics/tbt/index.js +2 -3
- package/dist/esm/additional-payload/utils/lighthouse-metrics/utils/buffer/index.js +0 -3
- package/dist/esm/additional-payload/utils/lighthouse-metrics/utils/observer/index.js +8 -9
- package/dist/esm/assets/index.js +14 -17
- package/dist/esm/assets/utils.js +8 -10
- package/dist/esm/bundle-eval-timing/index.js +6 -7
- package/dist/esm/coinflip/index.js +2 -4
- package/dist/esm/config/index.js +28 -29
- package/dist/esm/create-experimental-interaction-metrics-payload/index.js +36 -28
- package/dist/esm/create-payload/common/utils/index.js +14 -15
- package/dist/esm/create-payload/index.js +119 -127
- package/dist/esm/create-payload/utils/get-interaction-status.js +2 -4
- package/dist/esm/create-payload/utils/get-page-visibility-up-to-ttai.js +2 -3
- package/dist/esm/create-payload/utils/get-react-ufo-payload-version.js +2 -3
- package/dist/esm/create-payload/utils/get-ssr-done-time-value.js +2 -3
- package/dist/esm/create-payload/utils/get-vc-metrics.js +7 -8
- package/dist/esm/create-post-interaction-log-payload/index.js +12 -13
- package/dist/esm/custom-data/index.js +13 -5
- package/dist/esm/custom-mark/index.js +2 -3
- package/dist/esm/custom-spans/index.js +2 -3
- package/dist/esm/custom-timings/index.js +4 -5
- package/dist/esm/experience-trace-id-context/index.js +14 -15
- package/dist/esm/experience-trace-id-context/utils/make-trace-http-request-headers/index.js +2 -3
- package/dist/esm/feature-flags-accessed/common/utils/index.js +10 -11
- package/dist/esm/feature-flags-accessed/index.js +2 -3
- package/dist/esm/generate-id/index.js +2 -3
- package/dist/esm/global-error-handler/index.js +13 -14
- package/dist/esm/initial-page-load-extra-timing/index.js +4 -5
- package/dist/esm/interaction-metrics/index.js +108 -109
- package/dist/esm/interaction-metrics/post-interaction-log.js +0 -10
- package/dist/esm/interaction-metrics-init/index.js +14 -15
- package/dist/esm/interaction-metrics-init/schedule-idle-callback.js +2 -3
- package/dist/esm/resource-timing/common/utils/config.js +8 -9
- package/dist/esm/resource-timing/common/utils/resource-timing-buffer.js +12 -13
- package/dist/esm/resource-timing/main.js +23 -36
- package/dist/esm/resource-timing/utils.js +2 -3
- package/dist/esm/round-number/index.js +2 -3
- package/dist/esm/route-name/index.js +2 -3
- package/dist/esm/segment/schedule-on-paint.js +2 -4
- package/dist/esm/segment/segment.js +4 -5
- package/dist/esm/set-interaction-error/index.js +2 -3
- package/dist/esm/short-id/index.js +2 -3
- package/dist/esm/ssr/index.js +16 -17
- package/dist/esm/trace-interaction/index.js +4 -5
- package/dist/esm/trace-pageload/index.js +4 -5
- package/dist/esm/trace-press/index.js +2 -3
- package/dist/esm/trace-redirect/index.js +2 -3
- package/dist/esm/trace-transition/index.js +2 -3
- package/dist/esm/trace-transition/utils/generate-span-id/index.js +2 -3
- package/dist/esm/trace-transition/utils/set-interaction-active-trace/index.js +2 -3
- package/dist/esm/vc/index.js +4 -16
- package/dist/esm/vc/vc-observer/attachAbortListeners.js +2 -3
- package/dist/esm/vc/vc-observer/getVCRevisionsData.js +21 -12
- package/dist/esm/vc/vc-observer/getViewport.js +4 -5
- package/dist/esm/vc/vc-observer/heatmap/heatmap.js +10 -20
- package/dist/esm/vc/vc-observer/index.js +119 -145
- package/dist/esm/vc/vc-observer/media-wrapper/vc-utils.js +2 -3
- package/dist/esm/vc/vc-observer/observers/editor-lnv/index.js +0 -17
- package/dist/esm/vc/vc-observer/observers/index.js +2 -29
- package/dist/esm/vc/vc-observer/observers/non-visual-styles/is-non-visual-style-mutation.js +2 -4
- package/dist/esm/vc/vc-observer/observers/ssr-placeholders/index.js +0 -16
- package/dist/esm/vc/vc-observer/revisions/fy25_01.js +0 -2
- package/dist/esm/vc/vc-observer/revisions/fy25_02.js +0 -2
- package/dist/esm/vc/vc-observer/revisions/revisions.js +2 -3
- package/dist/esm/vc/vc-observer-new/entries-timeline/index.js +0 -9
- package/dist/esm/vc/vc-observer-new/get-element-name.js +2 -3
- package/dist/esm/vc/vc-observer-new/get-unique-element-name.js +10 -11
- package/dist/esm/vc/vc-observer-new/index.js +0 -9
- package/dist/esm/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +0 -2
- package/dist/esm/vc/vc-observer-new/metric-calculator/fy25_03/index.js +1 -6
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +9 -19
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +24 -25
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.js +6 -18
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +13 -25
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/index.js +7 -8
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.js +39 -48
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +7 -8
- package/dist/esm/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.js +2 -3
- package/dist/esm/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.js +2 -3
- package/dist/esm/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.js +2 -3
- package/dist/esm/vc/vc-observer-new/metric-calculator/utils/task-yield.js +7 -9
- package/dist/esm/vc/vc-observer-new/viewport-observer/index.js +7 -15
- package/dist/esm/vc/vc-observer-new/viewport-observer/intersection-observer/index.js +7 -8
- package/dist/esm/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +14 -15
- package/dist/esm/vc/vc-observer-new/viewport-observer/performance-observer/index.js +7 -9
- package/dist/esm/vc/vc-observer-new/window-event-observer/index.js +1 -7
- package/dist/types/additional-payload/utils/cache-hit-ratio/index.d.ts +2 -2
- package/dist/types/additional-payload/utils/lighthouse-metrics/cls/index.d.ts +1 -1
- package/dist/types/additional-payload/utils/lighthouse-metrics/index.d.ts +3 -3
- package/dist/types/additional-payload/utils/lighthouse-metrics/tbt/index.d.ts +1 -1
- package/dist/types/additional-payload/utils/lighthouse-metrics/utils/observer/index.d.ts +2 -2
- package/dist/types/assets/index.d.ts +1 -3
- package/dist/types/assets/utils.d.ts +4 -4
- package/dist/types/bundle-eval-timing/index.d.ts +2 -2
- package/dist/types/coinflip/index.d.ts +1 -1
- package/dist/types/common/react-ufo-payload-schema.d.ts +1 -0
- package/dist/types/config/index.d.ts +16 -14
- package/dist/types/create-experimental-interaction-metrics-payload/index.d.ts +4 -5
- package/dist/types/create-payload/common/utils/index.d.ts +8 -7
- package/dist/types/create-payload/index.d.ts +1 -97
- package/dist/types/create-payload/utils/get-interaction-status.d.ts +1 -1
- package/dist/types/create-payload/utils/get-page-visibility-up-to-ttai.d.ts +1 -1
- package/dist/types/create-payload/utils/get-react-ufo-payload-version.d.ts +1 -1
- package/dist/types/create-payload/utils/get-ssr-done-time-value.d.ts +1 -1
- package/dist/types/create-payload/utils/get-vc-metrics.d.ts +2 -2
- package/dist/types/create-post-interaction-log-payload/index.d.ts +1 -1
- 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/experience-trace-id-context/index.d.ts +7 -7
- package/dist/types/experience-trace-id-context/utils/make-trace-http-request-headers/index.d.ts +1 -1
- package/dist/types/feature-flags-accessed/common/utils/index.d.ts +2 -2
- package/dist/types/feature-flags-accessed/index.d.ts +1 -1
- package/dist/types/generate-id/index.d.ts +1 -1
- package/dist/types/global-error-handler/index.d.ts +3 -3
- package/dist/types/initial-page-load-extra-timing/index.d.ts +2 -2
- package/dist/types/interaction-context/index.d.ts +1 -1
- package/dist/types/interaction-metrics/index.d.ts +44 -44
- package/dist/types/interaction-metrics/post-interaction-log.d.ts +0 -1
- package/dist/types/interaction-metrics-init/index.d.ts +1 -1
- package/dist/types/interaction-metrics-init/schedule-idle-callback.d.ts +1 -1
- package/dist/types/resource-timing/common/utils/config.d.ts +2 -2
- package/dist/types/resource-timing/common/utils/resource-timing-buffer.d.ts +5 -5
- package/dist/types/resource-timing/main.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 +3 -3
- package/dist/types/segment/schedule-on-paint.d.ts +1 -1
- package/dist/types/set-interaction-error/index.d.ts +1 -1
- package/dist/types/short-id/index.d.ts +1 -1
- package/dist/types/ssr/index.d.ts +5 -5
- package/dist/types/trace-interaction/index.d.ts +1 -1
- package/dist/types/trace-pageload/index.d.ts +2 -2
- package/dist/types/trace-press/index.d.ts +1 -1
- package/dist/types/trace-redirect/index.d.ts +1 -1
- package/dist/types/trace-transition/index.d.ts +1 -1
- package/dist/types/trace-transition/utils/generate-span-id/index.d.ts +1 -1
- package/dist/types/trace-transition/utils/set-interaction-active-trace/index.d.ts +1 -1
- package/dist/types/vc/index.d.ts +2 -2
- package/dist/types/vc/vc-observer/attachAbortListeners.d.ts +2 -2
- package/dist/types/vc/vc-observer/getVCRevisionsData.d.ts +5 -5
- package/dist/types/vc/vc-observer/getViewport.d.ts +2 -2
- package/dist/types/vc/vc-observer/heatmap/heatmap.d.ts +1 -1
- package/dist/types/vc/vc-observer/index.d.ts +4 -4
- package/dist/types/vc/vc-observer/media-wrapper/vc-utils.d.ts +1 -1
- package/dist/types/vc/vc-observer/observers/non-visual-styles/is-non-visual-style-mutation.d.ts +4 -4
- package/dist/types/vc/vc-observer/revisions/revisions.d.ts +1 -1
- package/dist/types/vc/vc-observer-new/get-element-name.d.ts +1 -1
- package/dist/types/vc/vc-observer-new/get-unique-element-name.d.ts +1 -1
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.d.ts +3 -2
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.d.ts +2 -2
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.d.ts +2 -2
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/index.d.ts +1 -1
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.d.ts +1 -1
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.d.ts +2 -2
- package/dist/types/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.d.ts +1 -1
- package/dist/types/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.d.ts +1 -1
- package/dist/types/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.d.ts +1 -1
- package/dist/types/vc/vc-observer-new/metric-calculator/utils/task-yield.d.ts +1 -1
- package/dist/types/vc/vc-observer-new/viewport-observer/index.d.ts +1 -1
- package/dist/types/vc/vc-observer-new/viewport-observer/intersection-observer/index.d.ts +1 -1
- package/dist/types/vc/vc-observer-new/viewport-observer/mutation-observer/index.d.ts +1 -1
- package/dist/types/vc/vc-observer-new/viewport-observer/performance-observer/index.d.ts +2 -2
- package/dist/types-ts4.5/additional-payload/utils/cache-hit-ratio/index.d.ts +2 -2
- package/dist/types-ts4.5/additional-payload/utils/lighthouse-metrics/cls/index.d.ts +1 -1
- package/dist/types-ts4.5/additional-payload/utils/lighthouse-metrics/index.d.ts +3 -3
- package/dist/types-ts4.5/additional-payload/utils/lighthouse-metrics/tbt/index.d.ts +1 -1
- package/dist/types-ts4.5/additional-payload/utils/lighthouse-metrics/utils/observer/index.d.ts +2 -2
- package/dist/types-ts4.5/assets/index.d.ts +1 -3
- package/dist/types-ts4.5/assets/utils.d.ts +4 -4
- package/dist/types-ts4.5/bundle-eval-timing/index.d.ts +2 -2
- package/dist/types-ts4.5/coinflip/index.d.ts +1 -1
- package/dist/types-ts4.5/common/react-ufo-payload-schema.d.ts +1 -0
- package/dist/types-ts4.5/config/index.d.ts +20 -14
- package/dist/types-ts4.5/create-experimental-interaction-metrics-payload/index.d.ts +4 -5
- package/dist/types-ts4.5/create-payload/common/utils/index.d.ts +8 -7
- package/dist/types-ts4.5/create-payload/index.d.ts +1 -97
- package/dist/types-ts4.5/create-payload/utils/get-interaction-status.d.ts +1 -1
- package/dist/types-ts4.5/create-payload/utils/get-page-visibility-up-to-ttai.d.ts +1 -1
- package/dist/types-ts4.5/create-payload/utils/get-react-ufo-payload-version.d.ts +1 -1
- package/dist/types-ts4.5/create-payload/utils/get-ssr-done-time-value.d.ts +1 -1
- package/dist/types-ts4.5/create-payload/utils/get-vc-metrics.d.ts +2 -2
- package/dist/types-ts4.5/create-post-interaction-log-payload/index.d.ts +1 -1
- 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/experience-trace-id-context/index.d.ts +7 -7
- package/dist/types-ts4.5/experience-trace-id-context/utils/make-trace-http-request-headers/index.d.ts +1 -1
- package/dist/types-ts4.5/feature-flags-accessed/common/utils/index.d.ts +2 -2
- package/dist/types-ts4.5/feature-flags-accessed/index.d.ts +1 -1
- package/dist/types-ts4.5/generate-id/index.d.ts +1 -1
- package/dist/types-ts4.5/global-error-handler/index.d.ts +3 -3
- 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 +1 -1
- package/dist/types-ts4.5/interaction-metrics/index.d.ts +44 -44
- package/dist/types-ts4.5/interaction-metrics/post-interaction-log.d.ts +0 -1
- package/dist/types-ts4.5/interaction-metrics-init/index.d.ts +1 -1
- package/dist/types-ts4.5/interaction-metrics-init/schedule-idle-callback.d.ts +1 -1
- package/dist/types-ts4.5/resource-timing/common/utils/config.d.ts +2 -2
- package/dist/types-ts4.5/resource-timing/common/utils/resource-timing-buffer.d.ts +5 -5
- package/dist/types-ts4.5/resource-timing/main.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 +3 -3
- package/dist/types-ts4.5/segment/schedule-on-paint.d.ts +1 -1
- package/dist/types-ts4.5/set-interaction-error/index.d.ts +1 -1
- package/dist/types-ts4.5/short-id/index.d.ts +1 -1
- package/dist/types-ts4.5/ssr/index.d.ts +5 -5
- package/dist/types-ts4.5/trace-interaction/index.d.ts +1 -1
- package/dist/types-ts4.5/trace-pageload/index.d.ts +2 -2
- package/dist/types-ts4.5/trace-press/index.d.ts +1 -1
- package/dist/types-ts4.5/trace-redirect/index.d.ts +1 -1
- package/dist/types-ts4.5/trace-transition/index.d.ts +1 -1
- package/dist/types-ts4.5/trace-transition/utils/generate-span-id/index.d.ts +1 -1
- package/dist/types-ts4.5/trace-transition/utils/set-interaction-active-trace/index.d.ts +1 -1
- package/dist/types-ts4.5/vc/index.d.ts +2 -2
- package/dist/types-ts4.5/vc/vc-observer/attachAbortListeners.d.ts +2 -2
- package/dist/types-ts4.5/vc/vc-observer/getVCRevisionsData.d.ts +5 -5
- 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 +1 -1
- package/dist/types-ts4.5/vc/vc-observer/index.d.ts +4 -4
- package/dist/types-ts4.5/vc/vc-observer/media-wrapper/vc-utils.d.ts +1 -1
- package/dist/types-ts4.5/vc/vc-observer/observers/non-visual-styles/is-non-visual-style-mutation.d.ts +4 -4
- package/dist/types-ts4.5/vc/vc-observer/revisions/revisions.d.ts +1 -1
- package/dist/types-ts4.5/vc/vc-observer-new/get-element-name.d.ts +1 -1
- package/dist/types-ts4.5/vc/vc-observer-new/get-unique-element-name.d.ts +1 -1
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.d.ts +3 -2
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.d.ts +2 -2
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.d.ts +2 -2
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/index.d.ts +1 -1
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.d.ts +1 -1
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.d.ts +2 -2
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.d.ts +1 -1
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.d.ts +1 -1
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.d.ts +1 -1
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/utils/task-yield.d.ts +1 -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/intersection-observer/index.d.ts +1 -1
- package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/mutation-observer/index.d.ts +1 -1
- package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/performance-observer/index.d.ts +2 -2
- package/package.json +4 -4
- package/dist/cjs/self-measurements/index.js +0 -261
- package/dist/es2019/self-measurements/index.js +0 -213
- package/dist/esm/self-measurements/index.js +0 -246
- package/dist/types/self-measurements/index.d.ts +0 -57
- package/dist/types-ts4.5/self-measurements/index.d.ts +0 -57
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
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; } } }; }
|
|
2
2
|
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; } }
|
|
3
3
|
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; }
|
|
4
|
-
|
|
5
|
-
export var getCLS = withProfiling(function getCLS(start, stop, buffer) {
|
|
4
|
+
export function getCLS(start, stop, buffer) {
|
|
6
5
|
var layoutShifts = buffer.getAll().filter(function (entry) {
|
|
7
6
|
return entry.startTime >= start && entry.startTime <= stop;
|
|
8
7
|
});
|
|
@@ -45,4 +44,4 @@ export var getCLS = withProfiling(function getCLS(start, stop, buffer) {
|
|
|
45
44
|
|
|
46
45
|
// Return score of largest burst as CLS metric
|
|
47
46
|
return Math.round(maxScore * 10000) / 10000;
|
|
48
|
-
}
|
|
47
|
+
}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import { withProfiling } from '../../../self-measurements';
|
|
2
1
|
import { getCLS } from './cls';
|
|
3
2
|
import { PerformanceObserverEntryTypes } from './const';
|
|
4
3
|
import { getTBT } from './tbt';
|
|
5
4
|
import { EntriesBuffer } from './utils/buffer';
|
|
6
5
|
import { startLSObserver, startLTObserver } from './utils/observer';
|
|
7
|
-
export
|
|
6
|
+
export function startLighthouseObserver() {
|
|
8
7
|
startLSObserver();
|
|
9
8
|
startLTObserver();
|
|
10
|
-
}
|
|
11
|
-
export
|
|
9
|
+
}
|
|
10
|
+
export function getLighthouseMetrics(_ref) {
|
|
12
11
|
var start = _ref.start,
|
|
13
12
|
stop = _ref.stop;
|
|
14
13
|
var tbt = getTBT(start, stop, EntriesBuffer[PerformanceObserverEntryTypes.LongTask]);
|
|
@@ -20,4 +19,4 @@ export var getLighthouseMetrics = withProfiling(function getLighthouseMetrics(_r
|
|
|
20
19
|
'metric:tbt:observed': Math.round(tbt.observed),
|
|
21
20
|
'metric:cls': cls
|
|
22
21
|
};
|
|
23
|
-
}
|
|
22
|
+
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { withProfiling } from '../../../../self-measurements';
|
|
2
1
|
var MAX_ACCEPTABLE_TASK_DURATION = 50;
|
|
3
|
-
export
|
|
2
|
+
export function getTBT(start, stop, buffer) {
|
|
4
3
|
return buffer.getAll().filter(function (entry) {
|
|
5
4
|
return entry.startTime <= stop && entry.duration > MAX_ACCEPTABLE_TASK_DURATION && (entry.startTime >= start || entry.startTime + entry.duration >= start || entry.startTime <= start && entry.startTime + entry.duration >= stop);
|
|
6
5
|
}).reduce(function (tbt, entry) {
|
|
@@ -17,4 +16,4 @@ export var getTBT = withProfiling(function getTBT(start, stop, buffer) {
|
|
|
17
16
|
total: 0,
|
|
18
17
|
observed: 0
|
|
19
18
|
});
|
|
20
|
-
}
|
|
19
|
+
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
2
2
|
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
3
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
4
|
-
import { withProfiling } from '../../../../../self-measurements';
|
|
5
4
|
import { PerformanceObserverEntryTypes } from '../../const';
|
|
6
5
|
export var BufferWithMaxLength = /*#__PURE__*/function () {
|
|
7
6
|
function BufferWithMaxLength() {
|
|
@@ -10,8 +9,6 @@ export var BufferWithMaxLength = /*#__PURE__*/function () {
|
|
|
10
9
|
_defineProperty(this, "buffer", []);
|
|
11
10
|
_defineProperty(this, "full", false);
|
|
12
11
|
this.maxLength = maxLength;
|
|
13
|
-
this.push = withProfiling(this.push.bind(this));
|
|
14
|
-
this.getAll = withProfiling(this.getAll.bind(this));
|
|
15
12
|
}
|
|
16
13
|
return _createClass(BufferWithMaxLength, [{
|
|
17
14
|
key: "push",
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { withProfiling } from '../../../../../self-measurements';
|
|
2
1
|
import { PerformanceObserverEntryTypes } from '../../const';
|
|
3
2
|
import { EntriesBuffer } from '../buffer';
|
|
4
3
|
var pe = null;
|
|
5
|
-
|
|
4
|
+
function getObserver() {
|
|
6
5
|
if (typeof PerformanceObserver !== 'function') {
|
|
7
6
|
// Only instantiate the IntersectionObserver if it's supported
|
|
8
7
|
return null;
|
|
@@ -10,7 +9,7 @@ var getObserver = withProfiling(function getObserver() {
|
|
|
10
9
|
if (pe !== null) {
|
|
11
10
|
return pe;
|
|
12
11
|
}
|
|
13
|
-
var performanceObserverCallback =
|
|
12
|
+
var performanceObserverCallback = function performanceObserverCallback(list) {
|
|
14
13
|
list.getEntries().forEach(function (entry) {
|
|
15
14
|
if (entry.entryType === PerformanceObserverEntryTypes.LayoutShift) {
|
|
16
15
|
EntriesBuffer[PerformanceObserverEntryTypes.LayoutShift].push(entry);
|
|
@@ -19,21 +18,21 @@ var getObserver = withProfiling(function getObserver() {
|
|
|
19
18
|
EntriesBuffer[PerformanceObserverEntryTypes.LongTask].push(entry);
|
|
20
19
|
}
|
|
21
20
|
});
|
|
22
|
-
}
|
|
21
|
+
};
|
|
23
22
|
pe = new PerformanceObserver(performanceObserverCallback);
|
|
24
23
|
return pe;
|
|
25
|
-
}
|
|
26
|
-
export
|
|
24
|
+
}
|
|
25
|
+
export function startLSObserver() {
|
|
27
26
|
var _getObserver;
|
|
28
27
|
(_getObserver = getObserver()) === null || _getObserver === void 0 || _getObserver.observe({
|
|
29
28
|
type: PerformanceObserverEntryTypes.LayoutShift,
|
|
30
29
|
buffered: true
|
|
31
30
|
});
|
|
32
|
-
}
|
|
33
|
-
export
|
|
31
|
+
}
|
|
32
|
+
export function startLTObserver() {
|
|
34
33
|
var _getObserver2;
|
|
35
34
|
(_getObserver2 = getObserver()) === null || _getObserver2 === void 0 || _getObserver2.observe({
|
|
36
35
|
type: PerformanceObserverEntryTypes.LongTask,
|
|
37
36
|
buffered: true
|
|
38
37
|
});
|
|
39
|
-
}
|
|
38
|
+
}
|
package/dist/esm/assets/index.js
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
2
2
|
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
3
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
4
|
-
var _CHRSummary;
|
|
5
4
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
6
|
-
import { withProfiling } from '../self-measurements';
|
|
7
5
|
import { calculateTransferType, checkIfTimingsAvailable, DISK_KEY, getTypeOfRequest, MEMORY_KEY, NETWORK_KEY, round } from './utils';
|
|
8
6
|
export var CHRSummary = /*#__PURE__*/function () {
|
|
9
7
|
function CHRSummary() {
|
|
@@ -12,7 +10,6 @@ export var CHRSummary = /*#__PURE__*/function () {
|
|
|
12
10
|
_defineProperty(this, "bundlesCount", 0);
|
|
13
11
|
_defineProperty(this, "size", _defineProperty(_defineProperty(_defineProperty({}, MEMORY_KEY, 0), DISK_KEY, 0), NETWORK_KEY, 0));
|
|
14
12
|
_defineProperty(this, "sizeTotal", 0);
|
|
15
|
-
this.add = withProfiling(this.add.bind(this));
|
|
16
13
|
}
|
|
17
14
|
return _createClass(CHRSummary, [{
|
|
18
15
|
key: "add",
|
|
@@ -27,21 +24,22 @@ export var CHRSummary = /*#__PURE__*/function () {
|
|
|
27
24
|
this.size[type] += encodedSize;
|
|
28
25
|
this.sizeTotal += encodedSize;
|
|
29
26
|
}
|
|
27
|
+
}], [{
|
|
28
|
+
key: "makePayload",
|
|
29
|
+
value: function makePayload(summary) {
|
|
30
|
+
var size = summary.size,
|
|
31
|
+
bundlesCount = summary.bundlesCount,
|
|
32
|
+
sizeTotal = summary.sizeTotal;
|
|
33
|
+
var cachedSize = size[MEMORY_KEY] + size[DISK_KEY];
|
|
34
|
+
var sizeRatio = round(cachedSize / summary.sizeTotal);
|
|
35
|
+
return {
|
|
36
|
+
size: sizeTotal,
|
|
37
|
+
chr: sizeRatio,
|
|
38
|
+
count: bundlesCount
|
|
39
|
+
};
|
|
40
|
+
}
|
|
30
41
|
}]);
|
|
31
42
|
}();
|
|
32
|
-
_CHRSummary = CHRSummary;
|
|
33
|
-
_defineProperty(CHRSummary, "makePayload", withProfiling(function makePayload(summary) {
|
|
34
|
-
var size = summary.size,
|
|
35
|
-
bundlesCount = summary.bundlesCount,
|
|
36
|
-
sizeTotal = summary.sizeTotal;
|
|
37
|
-
var cachedSize = size[MEMORY_KEY] + size[DISK_KEY];
|
|
38
|
-
var sizeRatio = round(cachedSize / summary.sizeTotal);
|
|
39
|
-
return {
|
|
40
|
-
size: sizeTotal,
|
|
41
|
-
chr: sizeRatio,
|
|
42
|
-
count: bundlesCount
|
|
43
|
-
};
|
|
44
|
-
}));
|
|
45
43
|
export var CHRReporter = /*#__PURE__*/function () {
|
|
46
44
|
function CHRReporter() {
|
|
47
45
|
_classCallCheck(this, CHRReporter);
|
|
@@ -49,7 +47,6 @@ export var CHRReporter = /*#__PURE__*/function () {
|
|
|
49
47
|
_defineProperty(this, "allAtlassian", new CHRSummary());
|
|
50
48
|
_defineProperty(this, "preloaded", new CHRSummary());
|
|
51
49
|
_defineProperty(this, "defaultAllowedTypes", ['js']);
|
|
52
|
-
this.get = withProfiling(this.get.bind(this));
|
|
53
50
|
}
|
|
54
51
|
return _createClass(CHRReporter, [{
|
|
55
52
|
key: "get",
|
package/dist/esm/assets/utils.js
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import { withProfiling } from '../self-measurements';
|
|
2
|
-
|
|
3
1
|
/* Borrowed from https://bitbucket.org/atlassian/atlassian-frontend/src/master/packages/performance/browser-metrics/src/plugins/timings/resource.ts */
|
|
4
2
|
export var cacheableTypes = ['script', 'link', 'other'];
|
|
5
3
|
export var MEMORY_KEY = 'mem';
|
|
6
4
|
export var DISK_KEY = 'disk';
|
|
7
5
|
export var NETWORK_KEY = 'net';
|
|
8
|
-
export
|
|
6
|
+
export function calculateTransferType(name, type, duration, size) {
|
|
9
7
|
if (!cacheableTypes.includes(type) && !(type === 'other' && name.includes('.js'))) {
|
|
10
8
|
return null;
|
|
11
9
|
}
|
|
@@ -19,8 +17,8 @@ export var calculateTransferType = withProfiling(function calculateTransferType(
|
|
|
19
17
|
return null;
|
|
20
18
|
}
|
|
21
19
|
return NETWORK_KEY;
|
|
22
|
-
}
|
|
23
|
-
export
|
|
20
|
+
}
|
|
21
|
+
export function getTypeOfRequest(_ref) {
|
|
24
22
|
var name = _ref.name,
|
|
25
23
|
type = _ref.initiatorType;
|
|
26
24
|
var category = 'other';
|
|
@@ -56,16 +54,16 @@ export var getTypeOfRequest = withProfiling(function getTypeOfRequest(_ref) {
|
|
|
56
54
|
break;
|
|
57
55
|
}
|
|
58
56
|
return category;
|
|
59
|
-
}
|
|
60
|
-
export
|
|
57
|
+
}
|
|
58
|
+
export function checkIfTimingsAvailable(entry) {
|
|
61
59
|
if (entry.decodedSize === 0 && entry.encodedSize === 0 && entry.requestStart === 0 && entry.responseStart === 0) {
|
|
62
60
|
return false;
|
|
63
61
|
}
|
|
64
62
|
return true;
|
|
65
|
-
}
|
|
66
|
-
export
|
|
63
|
+
}
|
|
64
|
+
export function round(n) {
|
|
67
65
|
if (isNaN(n)) {
|
|
68
66
|
return 0;
|
|
69
67
|
}
|
|
70
68
|
return Math.round(n * 10000) / 10000;
|
|
71
|
-
}
|
|
69
|
+
}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { roundEpsilon } from '../round-number';
|
|
2
|
-
import { withProfiling } from '../self-measurements';
|
|
3
2
|
var config = null;
|
|
4
|
-
export
|
|
3
|
+
export function configure(bundleEvalTimingConfiguration) {
|
|
5
4
|
config = bundleEvalTimingConfiguration;
|
|
6
|
-
}
|
|
7
|
-
|
|
5
|
+
}
|
|
6
|
+
function getPerformanceObject() {
|
|
8
7
|
var _window;
|
|
9
8
|
return ((_window = window) !== null && _window !== void 0 ? _window : {}).performance;
|
|
10
|
-
}
|
|
11
|
-
export
|
|
9
|
+
}
|
|
10
|
+
export function getBundleEvalTimings(interactionStartTime) {
|
|
12
11
|
if (config == null) {
|
|
13
12
|
return {};
|
|
14
13
|
}
|
|
@@ -39,4 +38,4 @@ export var getBundleEvalTimings = withProfiling(function getBundleEvalTimings(in
|
|
|
39
38
|
return {};
|
|
40
39
|
}
|
|
41
40
|
return timings;
|
|
42
|
-
}
|
|
41
|
+
}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { withProfiling } from '../self-measurements';
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
2
|
* A random function that passes one in rate times.
|
|
5
3
|
* E.g. coinflip(2) is the same as if you flipped a coin.
|
|
@@ -7,7 +5,7 @@ import { withProfiling } from '../self-measurements';
|
|
|
7
5
|
* @param rate The change that it will pass (1 in <rate> times)
|
|
8
6
|
* @returns bool, if it passes or not
|
|
9
7
|
*/
|
|
10
|
-
|
|
8
|
+
function coinflip(rate) {
|
|
11
9
|
if (rate === 0) {
|
|
12
10
|
return false;
|
|
13
11
|
} else if (rate === 1) {
|
|
@@ -15,5 +13,5 @@ var coinflip = withProfiling(function coinflip(rate) {
|
|
|
15
13
|
} else {
|
|
16
14
|
return Math.random() * rate <= 1;
|
|
17
15
|
}
|
|
18
|
-
}
|
|
16
|
+
}
|
|
19
17
|
export default coinflip;
|
package/dist/esm/config/index.js
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
import { withProfiling } from '../self-measurements';
|
|
2
1
|
var config;
|
|
3
2
|
|
|
4
3
|
// Defensively typed, since this is directly user-editable
|
|
5
4
|
// and they could delete empty members
|
|
6
5
|
|
|
7
|
-
export
|
|
6
|
+
export function setUFOConfig(newConfig) {
|
|
8
7
|
config = newConfig;
|
|
9
|
-
}
|
|
10
|
-
export
|
|
8
|
+
}
|
|
9
|
+
export function getConfig() {
|
|
11
10
|
return config;
|
|
12
|
-
}
|
|
13
|
-
export
|
|
11
|
+
}
|
|
12
|
+
export function getInteractionRate(name, interactionKind) {
|
|
14
13
|
try {
|
|
15
14
|
if (!config) {
|
|
16
15
|
return 0;
|
|
@@ -64,8 +63,8 @@ export var getInteractionRate = withProfiling(function getInteractionRate(name,
|
|
|
64
63
|
// Fallback
|
|
65
64
|
return 0;
|
|
66
65
|
}
|
|
67
|
-
}
|
|
68
|
-
export
|
|
66
|
+
}
|
|
67
|
+
export function getExperimentalInteractionRate(name, interactionType) {
|
|
69
68
|
try {
|
|
70
69
|
if (!config) {
|
|
71
70
|
return 0;
|
|
@@ -85,8 +84,8 @@ export var getExperimentalInteractionRate = withProfiling(function getExperiment
|
|
|
85
84
|
} catch (e) {
|
|
86
85
|
return 0;
|
|
87
86
|
}
|
|
88
|
-
}
|
|
89
|
-
export
|
|
87
|
+
}
|
|
88
|
+
export function getPostInteractionRate(name, interactionType) {
|
|
90
89
|
try {
|
|
91
90
|
if (!config) {
|
|
92
91
|
return 0;
|
|
@@ -106,8 +105,8 @@ export var getPostInteractionRate = withProfiling(function getPostInteractionRat
|
|
|
106
105
|
} catch (e) {
|
|
107
106
|
return 0;
|
|
108
107
|
}
|
|
109
|
-
}
|
|
110
|
-
export
|
|
108
|
+
}
|
|
109
|
+
export function getCapabilityRate(capability) {
|
|
111
110
|
try {
|
|
112
111
|
if (!config) {
|
|
113
112
|
return 0;
|
|
@@ -124,9 +123,9 @@ export var getCapabilityRate = withProfiling(function getCapabilityRate(capabili
|
|
|
124
123
|
} catch (_unused) {
|
|
125
124
|
return 0;
|
|
126
125
|
}
|
|
127
|
-
}
|
|
126
|
+
}
|
|
128
127
|
var validTypingMethods = ['timeout', 'timeoutNoAlloc', 'mutationObserver'];
|
|
129
|
-
export
|
|
128
|
+
export function getTypingPerformanceTracingMethod() {
|
|
130
129
|
var defaultMethod = 'timeout';
|
|
131
130
|
try {
|
|
132
131
|
if (!config) {
|
|
@@ -144,10 +143,10 @@ export var getTypingPerformanceTracingMethod = withProfiling(function getTypingP
|
|
|
144
143
|
} catch (e) {
|
|
145
144
|
return defaultMethod;
|
|
146
145
|
}
|
|
147
|
-
}
|
|
146
|
+
}
|
|
148
147
|
|
|
149
148
|
// Will ask UFO to wait for BM3 TTI for all events on this list
|
|
150
|
-
export
|
|
149
|
+
export function getAwaitBM3TTIList() {
|
|
151
150
|
try {
|
|
152
151
|
if (!config) {
|
|
153
152
|
return [];
|
|
@@ -162,10 +161,10 @@ export var getAwaitBM3TTIList = withProfiling(function getAwaitBM3TTIList() {
|
|
|
162
161
|
} catch (e) {
|
|
163
162
|
return [];
|
|
164
163
|
}
|
|
165
|
-
}
|
|
164
|
+
}
|
|
166
165
|
|
|
167
166
|
// Flag to remove ufo segments prefixes
|
|
168
|
-
export
|
|
167
|
+
export function getRemovePageSegmentsUFOPrefixes() {
|
|
169
168
|
try {
|
|
170
169
|
if (!config) {
|
|
171
170
|
return false;
|
|
@@ -180,10 +179,10 @@ export var getRemovePageSegmentsUFOPrefixes = withProfiling(function getRemovePa
|
|
|
180
179
|
} catch (e) {
|
|
181
180
|
return false;
|
|
182
181
|
}
|
|
183
|
-
}
|
|
182
|
+
}
|
|
184
183
|
|
|
185
184
|
// Flag to remove ufo segments prefixes
|
|
186
|
-
export
|
|
185
|
+
export function getRemoveInteractionsUFOPrefixes() {
|
|
187
186
|
try {
|
|
188
187
|
if (!config) {
|
|
189
188
|
return false;
|
|
@@ -198,13 +197,13 @@ export var getRemoveInteractionsUFOPrefixes = withProfiling(function getRemoveIn
|
|
|
198
197
|
} catch (e) {
|
|
199
198
|
return false;
|
|
200
199
|
}
|
|
201
|
-
}
|
|
200
|
+
}
|
|
202
201
|
|
|
203
202
|
// Will ask UFO to override ufoName => experienceKey to the apdex key
|
|
204
203
|
// This is to cover use cases where one rUFO route is split into multiple BM3 keys (1:N)
|
|
205
204
|
// This workaround should only be used as last resource,
|
|
206
205
|
// when we find router limitations preventing teams from splliting these routes
|
|
207
|
-
export
|
|
206
|
+
export function getUfoNameOverrides() {
|
|
208
207
|
try {
|
|
209
208
|
if (!config) {
|
|
210
209
|
return undefined;
|
|
@@ -218,10 +217,10 @@ export var getUfoNameOverrides = withProfiling(function getUfoNameOverrides() {
|
|
|
218
217
|
} catch (e) {
|
|
219
218
|
return undefined;
|
|
220
219
|
}
|
|
221
|
-
}
|
|
220
|
+
}
|
|
222
221
|
|
|
223
222
|
// Contains the list of interactions that do not abort existing known interactions
|
|
224
|
-
export
|
|
223
|
+
export function getDoNotAbortActivePressInteraction() {
|
|
225
224
|
try {
|
|
226
225
|
if (!config) {
|
|
227
226
|
return undefined;
|
|
@@ -232,10 +231,10 @@ export var getDoNotAbortActivePressInteraction = withProfiling(function getDoNot
|
|
|
232
231
|
} catch (e) {
|
|
233
232
|
return undefined;
|
|
234
233
|
}
|
|
235
|
-
}
|
|
234
|
+
}
|
|
236
235
|
|
|
237
236
|
// Contains the list of interactions that do not abort on transitions
|
|
238
|
-
export
|
|
237
|
+
export function getDoNotAbortActivePressInteractionOnTransition() {
|
|
239
238
|
try {
|
|
240
239
|
if (!config) {
|
|
241
240
|
return undefined;
|
|
@@ -246,12 +245,12 @@ export var getDoNotAbortActivePressInteractionOnTransition = withProfiling(funct
|
|
|
246
245
|
} catch (e) {
|
|
247
246
|
return undefined;
|
|
248
247
|
}
|
|
249
|
-
}
|
|
250
|
-
export
|
|
248
|
+
}
|
|
249
|
+
export function shouldHandleEditorLnv() {
|
|
251
250
|
try {
|
|
252
251
|
var _config$enableEditorL, _config12;
|
|
253
252
|
return (_config$enableEditorL = (_config12 = config) === null || _config12 === void 0 ? void 0 : _config12.enableEditorLnvHandler) !== null && _config$enableEditorL !== void 0 ? _config$enableEditorL : false;
|
|
254
253
|
} catch (e) {
|
|
255
254
|
return false;
|
|
256
255
|
}
|
|
257
|
-
}
|
|
256
|
+
}
|
|
@@ -5,49 +5,57 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
|
5
5
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
6
6
|
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; }
|
|
7
7
|
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; }
|
|
8
|
+
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; } } }; }
|
|
9
|
+
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; } }
|
|
10
|
+
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; }
|
|
8
11
|
import { getPageVisibilityState } from '../hidden-timing';
|
|
9
|
-
import { withProfiling } from '../self-measurements';
|
|
10
12
|
import { VCObserver } from '../vc/vc-observer';
|
|
11
13
|
var interactionBuffer = [];
|
|
12
|
-
var bufferInteractionData =
|
|
14
|
+
var bufferInteractionData = function bufferInteractionData(interactionId, data) {
|
|
13
15
|
interactionBuffer.push({
|
|
14
16
|
interactionId: interactionId,
|
|
15
17
|
data: data
|
|
16
18
|
});
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
+
};
|
|
20
|
+
function clearInteractionBuffer() {
|
|
19
21
|
interactionBuffer.length = 0;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
+
}
|
|
23
|
+
function appendInteractionData(interactionId, data) {
|
|
22
24
|
bufferInteractionData(interactionId, data);
|
|
23
|
-
}
|
|
24
|
-
export
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
}
|
|
26
|
+
export function installInteractionSink(handler) {
|
|
27
|
+
var _iterator = _createForOfIteratorHelper(interactionBuffer),
|
|
28
|
+
_step;
|
|
29
|
+
try {
|
|
30
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
31
|
+
var _step$value = _step.value,
|
|
32
|
+
_interactionId = _step$value.interactionId,
|
|
33
|
+
data = _step$value.data;
|
|
34
|
+
handler(_interactionId, data);
|
|
35
|
+
}
|
|
36
|
+
} catch (err) {
|
|
37
|
+
_iterator.e(err);
|
|
38
|
+
} finally {
|
|
39
|
+
_iterator.f();
|
|
30
40
|
}
|
|
31
41
|
clearInteractionBuffer();
|
|
32
|
-
bufferInteractionData =
|
|
33
|
-
}
|
|
34
|
-
export
|
|
42
|
+
bufferInteractionData = handler;
|
|
43
|
+
}
|
|
44
|
+
export function sinkExperimentalHandler(sinkFn) {
|
|
35
45
|
installInteractionSink(sinkFn);
|
|
36
|
-
}
|
|
37
|
-
export
|
|
46
|
+
}
|
|
47
|
+
export function onExperimentalInteractionComplete(interactionId, data) {
|
|
38
48
|
var endTime = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : performance.now();
|
|
39
49
|
if (data.ufoName) {
|
|
40
50
|
data.end = endTime;
|
|
41
51
|
appendInteractionData(interactionId, data);
|
|
42
52
|
clearInteractionBuffer();
|
|
43
53
|
}
|
|
44
|
-
}
|
|
54
|
+
}
|
|
45
55
|
export var ExperimentalVCMetrics = /*#__PURE__*/function () {
|
|
46
56
|
function ExperimentalVCMetrics() {
|
|
47
57
|
_classCallCheck(this, ExperimentalVCMetrics);
|
|
48
58
|
_defineProperty(this, "vcObserver", null);
|
|
49
|
-
this.initialize = withProfiling(this.initialize.bind(this));
|
|
50
|
-
this.start = withProfiling(this.start.bind(this));
|
|
51
59
|
}
|
|
52
60
|
return _createClass(ExperimentalVCMetrics, [{
|
|
53
61
|
key: "initialize",
|
|
@@ -71,8 +79,11 @@ export var ExperimentalVCMetrics = /*#__PURE__*/function () {
|
|
|
71
79
|
}]);
|
|
72
80
|
}();
|
|
73
81
|
export var experimentalVC = new ExperimentalVCMetrics();
|
|
74
|
-
export
|
|
75
|
-
|
|
82
|
+
export function getExperimentalVCMetrics(_x) {
|
|
83
|
+
return _getExperimentalVCMetrics.apply(this, arguments);
|
|
84
|
+
}
|
|
85
|
+
function _getExperimentalVCMetrics() {
|
|
86
|
+
_getExperimentalVCMetrics = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(interaction) {
|
|
76
87
|
var _interaction$apdex, prefix, result, VC, pageVisibilityUpToTTAI;
|
|
77
88
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
78
89
|
while (1) switch (_context.prev = _context.next) {
|
|
@@ -118,8 +129,5 @@ export var getExperimentalVCMetrics = withProfiling( /*#__PURE__*/function () {
|
|
|
118
129
|
}
|
|
119
130
|
}, _callee);
|
|
120
131
|
}));
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
}
|
|
124
|
-
return getExperimentalVCMetrics;
|
|
125
|
-
}());
|
|
132
|
+
return _getExperimentalVCMetrics.apply(this, arguments);
|
|
133
|
+
}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
2
|
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; }
|
|
3
3
|
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; }
|
|
4
|
-
|
|
5
|
-
export var sanitizeUfoName = withProfiling(function sanitizeUfoName(name) {
|
|
4
|
+
export function sanitizeUfoName(name) {
|
|
6
5
|
return name.replace(/_/g, '-');
|
|
7
|
-
}
|
|
8
|
-
export
|
|
6
|
+
}
|
|
7
|
+
export function isSegmentLabel(obj) {
|
|
9
8
|
return obj && typeof obj.name === 'string' && typeof obj.segmentId === 'string';
|
|
10
|
-
}
|
|
11
|
-
export
|
|
9
|
+
}
|
|
10
|
+
export function buildSegmentTree(labelStacks) {
|
|
12
11
|
var r = {
|
|
13
12
|
n: 'segment-tree-root',
|
|
14
13
|
c: {}
|
|
@@ -33,24 +32,24 @@ export var buildSegmentTree = withProfiling(function buildSegmentTree(labelStack
|
|
|
33
32
|
return {
|
|
34
33
|
r: r
|
|
35
34
|
};
|
|
36
|
-
}
|
|
37
|
-
export
|
|
35
|
+
}
|
|
36
|
+
export function stringifyLabelStackFully(labelStack) {
|
|
38
37
|
return labelStack.map(function (l) {
|
|
39
38
|
if (isSegmentLabel(l)) {
|
|
40
39
|
return "".concat(l.name, ":").concat(l.segmentId);
|
|
41
40
|
}
|
|
42
41
|
return l.name;
|
|
43
42
|
}).join('/');
|
|
44
|
-
}
|
|
45
|
-
|
|
43
|
+
}
|
|
44
|
+
function getLabelStackReference(labelStack) {
|
|
46
45
|
return labelStack.map(function (l) {
|
|
47
46
|
return isSegmentLabel(l) ? l.segmentId : l.name;
|
|
48
47
|
}).join('/');
|
|
49
|
-
}
|
|
50
|
-
export
|
|
48
|
+
}
|
|
49
|
+
export function labelStackStartWith(labelStack, startWith) {
|
|
51
50
|
return stringifyLabelStackFully(labelStack).startsWith(stringifyLabelStackFully(startWith));
|
|
52
|
-
}
|
|
53
|
-
export
|
|
51
|
+
}
|
|
52
|
+
export function optimizeLabelStack(labelStack, reactUFOVersion) {
|
|
54
53
|
return reactUFOVersion === '2.0.0' ? getLabelStackReference(labelStack) : labelStack.map(function (ls) {
|
|
55
54
|
return _objectSpread({
|
|
56
55
|
n: ls.name
|
|
@@ -58,4 +57,4 @@ export var optimizeLabelStack = withProfiling(function optimizeLabelStack(labelS
|
|
|
58
57
|
s: ls.segmentId
|
|
59
58
|
} : {});
|
|
60
59
|
});
|
|
61
|
-
}
|
|
60
|
+
}
|