@atlaskit/react-ufo 4.15.1 → 4.15.2
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 +7 -0
- package/dist/cjs/create-payload/index.js +18 -791
- package/dist/cjs/create-payload/utils/get-visibility-state-from-performance.js +1 -0
- package/dist/cjs/interaction-id-context/index.js +2 -1
- package/dist/cjs/vc/vc-observer-new/metric-calculator/fy25_03/index.js +1 -1
- package/dist/es2019/create-payload/index.js +20 -712
- package/dist/es2019/create-payload/utils/get-visibility-state-from-performance.js +1 -0
- package/dist/es2019/interaction-id-context/index.js +2 -1
- package/dist/es2019/vc/vc-observer-new/metric-calculator/fy25_03/index.js +1 -1
- package/dist/esm/create-payload/index.js +18 -783
- package/dist/esm/create-payload/utils/get-visibility-state-from-performance.js +1 -0
- package/dist/esm/interaction-id-context/index.js +2 -1
- package/dist/esm/vc/vc-observer-new/metric-calculator/fy25_03/index.js +1 -1
- package/dist/types/assets/utils.d.ts +1 -1
- package/dist/types/create-experimental-interaction-metrics-payload/index.d.ts +2 -1
- package/dist/types/create-interaction-extra-metrics-payload/index.d.ts +17 -14
- package/dist/types/create-payload/index.d.ts +8598 -8594
- package/dist/types/create-payload/utils/get-more-accurate-page-visibility-up-to-ttai.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-react-ufo-payload-version.d.ts +1 -1
- package/dist/types/create-payload/utils/optimize-apdex.d.ts +2 -1
- package/dist/types/create-payload/utils/optimize-marks.d.ts +4 -3
- package/dist/types/create-post-interaction-log-payload/index.d.ts +5 -4
- package/dist/types/experience-trace-id-context/index.d.ts +2 -1
- package/dist/types/ignore-holds/index.d.ts +1 -1
- package/dist/types/interaction-id-context/index.d.ts +3 -2
- package/dist/types/label/UFOLabel.d.ts +1 -1
- package/dist/types/load-hold/UFOLoadHold.d.ts +1 -1
- package/dist/types/placeholder/loosely-lazy/wait-context.d.ts +2 -1
- package/dist/types/report-error/index.d.ts +1 -1
- package/dist/types/trace-interaction/internal/map-to-interaction-type.d.ts +1 -1
- package/dist/types/typing-performance-tracing/index.d.ts +2 -1
- package/dist/types/vc/vc-observer/media-wrapper/MediaWrapper.d.ts +1 -1
- package/dist/types/vc/vc-observer/observers/ssr-placeholders/index.d.ts +3 -3
- package/dist/types/vc/vc-observer-new/viewport-observer/performance-observer/index.d.ts +1 -1
- package/dist/types-ts4.5/assets/utils.d.ts +1 -1
- package/dist/types-ts4.5/create-experimental-interaction-metrics-payload/index.d.ts +2 -1
- package/dist/types-ts4.5/create-interaction-extra-metrics-payload/index.d.ts +17 -14
- package/dist/types-ts4.5/create-payload/index.d.ts +8598 -8594
- package/dist/types-ts4.5/create-payload/utils/get-more-accurate-page-visibility-up-to-ttai.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-react-ufo-payload-version.d.ts +1 -1
- package/dist/types-ts4.5/create-payload/utils/optimize-apdex.d.ts +2 -1
- package/dist/types-ts4.5/create-payload/utils/optimize-marks.d.ts +4 -3
- package/dist/types-ts4.5/create-post-interaction-log-payload/index.d.ts +5 -4
- package/dist/types-ts4.5/experience-trace-id-context/index.d.ts +2 -1
- package/dist/types-ts4.5/ignore-holds/index.d.ts +1 -1
- package/dist/types-ts4.5/interaction-id-context/index.d.ts +3 -2
- package/dist/types-ts4.5/label/UFOLabel.d.ts +1 -1
- package/dist/types-ts4.5/load-hold/UFOLoadHold.d.ts +1 -1
- package/dist/types-ts4.5/placeholder/loosely-lazy/wait-context.d.ts +2 -1
- package/dist/types-ts4.5/report-error/index.d.ts +1 -1
- package/dist/types-ts4.5/trace-interaction/internal/map-to-interaction-type.d.ts +1 -1
- package/dist/types-ts4.5/typing-performance-tracing/index.d.ts +2 -1
- package/dist/types-ts4.5/vc/vc-observer/media-wrapper/MediaWrapper.d.ts +1 -1
- package/dist/types-ts4.5/vc/vc-observer/observers/ssr-placeholders/index.d.ts +3 -3
- package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/performance-observer/index.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,791 +1,18 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
});
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
var
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
var
|
|
17
|
-
|
|
18
|
-
var
|
|
19
|
-
var _additionalPayload = require("../additional-payload");
|
|
20
|
-
var _assets = require("../assets");
|
|
21
|
-
var bundleEvalTiming = _interopRequireWildcard(require("../bundle-eval-timing"));
|
|
22
|
-
var _coinflip = _interopRequireDefault(require("../coinflip"));
|
|
23
|
-
var _config = require("../config");
|
|
24
|
-
var _createExperimentalInteractionMetricsPayload = require("../create-experimental-interaction-metrics-payload");
|
|
25
|
-
var _customTimings = require("../custom-timings");
|
|
26
|
-
var _globalErrorHandler = require("../global-error-handler");
|
|
27
|
-
var _hiddenTiming = require("../hidden-timing");
|
|
28
|
-
var initialPageLoadExtraTiming = _interopRequireWildcard(require("../initial-page-load-extra-timing"));
|
|
29
|
-
var _interactionMetrics = require("../interaction-metrics");
|
|
30
|
-
var _machineUtilisation = require("../machine-utilisation");
|
|
31
|
-
var resourceTiming = _interopRequireWildcard(require("../resource-timing"));
|
|
32
|
-
var _resourceTimingBuffer = require("../resource-timing/common/utils/resource-timing-buffer");
|
|
33
|
-
var _roundNumber = require("../round-number");
|
|
34
|
-
var ssr = _interopRequireWildcard(require("../ssr"));
|
|
35
|
-
var _utils = require("./common/utils");
|
|
36
|
-
var _criticalMetricsPayload = require("./critical-metrics-payload");
|
|
37
|
-
var _addPerformanceMeasures = require("./utils/add-performance-measures");
|
|
38
|
-
var _getBatteryInfo = require("./utils/get-battery-info");
|
|
39
|
-
var _getBrowserMetadata = require("./utils/get-browser-metadata");
|
|
40
|
-
var _getInteractionStatus = _interopRequireDefault(require("./utils/get-interaction-status"));
|
|
41
|
-
var _getMoreAccuratePageVisibilityUpToTtai = require("./utils/get-more-accurate-page-visibility-up-to-ttai");
|
|
42
|
-
var _getNavigationMetrics = require("./utils/get-navigation-metrics");
|
|
43
|
-
var _getPageVisibilityUpToTtai = _interopRequireDefault(require("./utils/get-page-visibility-up-to-ttai"));
|
|
44
|
-
var _getPaintMetrics = require("./utils/get-paint-metrics");
|
|
45
|
-
var _getPayloadSize = _interopRequireDefault(require("./utils/get-payload-size"));
|
|
46
|
-
var _getReactUfoPayloadVersion = require("./utils/get-react-ufo-payload-version");
|
|
47
|
-
var _getSsrDoneTimeValue = _interopRequireDefault(require("./utils/get-ssr-done-time-value"));
|
|
48
|
-
var _getSsrSuccess = _interopRequireDefault(require("./utils/get-ssr-success"));
|
|
49
|
-
var _getTtai = _interopRequireDefault(require("./utils/get-ttai"));
|
|
50
|
-
var _getVcMetrics = _interopRequireDefault(require("./utils/get-vc-metrics"));
|
|
51
|
-
var _getVisibilityStateFromPerformance = require("./utils/get-visibility-state-from-performance");
|
|
52
|
-
var _optimizeApdex = require("./utils/optimize-apdex");
|
|
53
|
-
var _optimizeCustomTimings = require("./utils/optimize-custom-timings");
|
|
54
|
-
var _optimizeHoldInfo = require("./utils/optimize-hold-info");
|
|
55
|
-
var _optimizeMarks = require("./utils/optimize-marks");
|
|
56
|
-
var _optimizeReactProfilerTimings = require("./utils/optimize-react-profiler-timings");
|
|
57
|
-
var _optimizeRequestInfo = require("./utils/optimize-request-info");
|
|
58
|
-
var _optimizeSpans = require("./utils/optimize-spans");
|
|
59
|
-
var _excluded = ["labelStack"];
|
|
60
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
61
|
-
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; }
|
|
62
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } // Import common utilities
|
|
63
|
-
var MAX_PAYLOAD_SIZE = 250;
|
|
64
|
-
function getUfoNameOverride(interaction) {
|
|
65
|
-
var ufoName = interaction.ufoName,
|
|
66
|
-
apdex = interaction.apdex;
|
|
67
|
-
try {
|
|
68
|
-
var ufoNameOverrides = (0, _config.getUfoNameOverrides)();
|
|
69
|
-
if (ufoNameOverrides != null) {
|
|
70
|
-
var metricKey = apdex.length > 0 ? apdex[0].key : '';
|
|
71
|
-
if (ufoNameOverrides[ufoName][metricKey]) {
|
|
72
|
-
return ufoNameOverrides[ufoName][metricKey];
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
return ufoName;
|
|
76
|
-
} catch (e) {
|
|
77
|
-
return ufoName;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
function getEarliestLegacyStopTime(interaction, labelStack) {
|
|
81
|
-
var earliestLegacyStopTime = null;
|
|
82
|
-
interaction.apdex.forEach(function (a) {
|
|
83
|
-
var _a$labelStack;
|
|
84
|
-
if (!(a !== null && a !== void 0 && a.stopTime)) {
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
if (!(0, _utils.labelStackStartWith)((_a$labelStack = a.labelStack) !== null && _a$labelStack !== void 0 ? _a$labelStack : [], labelStack)) {
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
if (a.stopTime > interaction.start && (earliestLegacyStopTime !== null && earliestLegacyStopTime !== void 0 ? earliestLegacyStopTime : a.stopTime) >= a.stopTime) {
|
|
91
|
-
earliestLegacyStopTime = a.stopTime;
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
return earliestLegacyStopTime;
|
|
95
|
-
}
|
|
96
|
-
function getBm3EndTimeOrFallbackValue(interaction) {
|
|
97
|
-
var _getEarliestLegacySto;
|
|
98
|
-
var labelStack = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
99
|
-
var fallbackValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : interaction.end;
|
|
100
|
-
if (interaction.type === 'press') {
|
|
101
|
-
return fallbackValue;
|
|
102
|
-
}
|
|
103
|
-
return (_getEarliestLegacySto = getEarliestLegacyStopTime(interaction, labelStack)) !== null && _getEarliestLegacySto !== void 0 ? _getEarliestLegacySto : fallbackValue;
|
|
104
|
-
}
|
|
105
|
-
function getPageVisibilityUpToTTI(interaction) {
|
|
106
|
-
var start = interaction.start;
|
|
107
|
-
var bm3EndTimeOrInteractionEndTime = getBm3EndTimeOrFallbackValue(interaction);
|
|
108
|
-
return (0, _hiddenTiming.getPageVisibilityState)(start, bm3EndTimeOrInteractionEndTime);
|
|
109
|
-
}
|
|
110
|
-
function getMoreAccuratePageVisibilityUpToTTI(interaction) {
|
|
111
|
-
var old = getPageVisibilityUpToTTI(interaction);
|
|
112
|
-
var tti = getEarliestLegacyStopTime(interaction, []);
|
|
113
|
-
if (!tti) {
|
|
114
|
-
return old;
|
|
115
|
-
}
|
|
116
|
-
var buffered = (0, _getVisibilityStateFromPerformance.getVisibilityStateFromPerformance)(tti);
|
|
117
|
-
if (!buffered) {
|
|
118
|
-
return old;
|
|
119
|
-
}
|
|
120
|
-
if (buffered !== old) {
|
|
121
|
-
return 'mixed';
|
|
122
|
-
}
|
|
123
|
-
return old;
|
|
124
|
-
}
|
|
125
|
-
function getResourceTimings(start, end) {
|
|
126
|
-
var _resourceTiming$getRe;
|
|
127
|
-
return (_resourceTiming$getRe = resourceTiming.getResourceTimings(start, end)) !== null && _resourceTiming$getRe !== void 0 ? _resourceTiming$getRe : undefined;
|
|
128
|
-
}
|
|
129
|
-
function getBundleEvalTimings(start) {
|
|
130
|
-
return bundleEvalTiming.getBundleEvalTimings(start);
|
|
131
|
-
}
|
|
132
|
-
function getSSRPhaseSuccess(type) {
|
|
133
|
-
return type === 'page_load' ? ssr.getSSRPhaseSuccess() : undefined;
|
|
134
|
-
}
|
|
135
|
-
function getSSRFeatureFlags(type) {
|
|
136
|
-
return type === 'page_load' ? ssr.getSSRFeatureFlags() : undefined;
|
|
137
|
-
}
|
|
138
|
-
function getPPSMetrics(interaction) {
|
|
139
|
-
var _interaction$apdex;
|
|
140
|
-
var start = interaction.start,
|
|
141
|
-
end = interaction.end;
|
|
142
|
-
var config = (0, _config.getConfig)();
|
|
143
|
-
var interactionStatus = (0, _getInteractionStatus.default)(interaction);
|
|
144
|
-
var pageVisibilityUpToTTAI = (0, _getPageVisibilityUpToTtai.default)(interaction);
|
|
145
|
-
var tti = (_interaction$apdex = interaction.apdex) === null || _interaction$apdex === void 0 || (_interaction$apdex = _interaction$apdex[0]) === null || _interaction$apdex === void 0 ? void 0 : _interaction$apdex.stopTime;
|
|
146
|
-
var ttai = interactionStatus.originalInteractionStatus === 'SUCCEEDED' && pageVisibilityUpToTTAI === 'visible' ? Math.round(end - start) : undefined;
|
|
147
|
-
var PPSMetricsAtTTI = tti !== undefined ? (0, _additionalPayload.getLighthouseMetrics)({
|
|
148
|
-
start: start,
|
|
149
|
-
stop: tti
|
|
150
|
-
}) : null;
|
|
151
|
-
var PPSMetricsAtTTAI = ttai !== undefined ? (0, _additionalPayload.getLighthouseMetrics)({
|
|
152
|
-
start: start,
|
|
153
|
-
stop: interaction.end
|
|
154
|
-
}) : null;
|
|
155
|
-
if ((0, _platformFeatureFlags.fg)('platform_ufo_remove_deprecated_config_fields')) {
|
|
156
|
-
if (PPSMetricsAtTTAI !== null) {
|
|
157
|
-
return PPSMetricsAtTTAI;
|
|
158
|
-
}
|
|
159
|
-
} else {
|
|
160
|
-
if (config !== null && config !== void 0 && config.shouldCalculateLighthouseMetricsFromTTAI && PPSMetricsAtTTAI !== null) {
|
|
161
|
-
return PPSMetricsAtTTAI;
|
|
162
|
-
}
|
|
163
|
-
if (PPSMetricsAtTTI !== null) {
|
|
164
|
-
return _objectSpread(_objectSpread({}, PPSMetricsAtTTI), {}, {
|
|
165
|
-
'metrics@ttai': PPSMetricsAtTTAI
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
return {};
|
|
170
|
-
}
|
|
171
|
-
function getSSRProperties(type) {
|
|
172
|
-
var ssrPhases = getSSRPhaseSuccess(type);
|
|
173
|
-
return _objectSpread(_objectSpread({
|
|
174
|
-
'ssr:success': (ssrPhases === null || ssrPhases === void 0 ? void 0 : ssrPhases.done) != null ? ssrPhases.done : (0, _getSsrSuccess.default)(type),
|
|
175
|
-
'ssr:featureFlags': getSSRFeatureFlags(type)
|
|
176
|
-
}, (ssrPhases === null || ssrPhases === void 0 ? void 0 : ssrPhases.earlyFlush) != null ? {
|
|
177
|
-
'ssr:earlyflush:success': ssrPhases.earlyFlush
|
|
178
|
-
} : null), (ssrPhases === null || ssrPhases === void 0 ? void 0 : ssrPhases.prefetch) != null ? {
|
|
179
|
-
'ssr:prefetch:success': ssrPhases.prefetch
|
|
180
|
-
} : null);
|
|
181
|
-
}
|
|
182
|
-
function getAssetsMetrics(interaction, SSRDoneTime) {
|
|
183
|
-
try {
|
|
184
|
-
var config = (0, _config.getConfig)();
|
|
185
|
-
var type = interaction.type;
|
|
186
|
-
var allowedTypes = ['page_load'];
|
|
187
|
-
var assetsConfig = config === null || config === void 0 ? void 0 : config.assetsConfig;
|
|
188
|
-
if (!allowedTypes.includes(type) || !assetsConfig) {
|
|
189
|
-
// Skip if: type not allowed or assetsClassification isn't configured
|
|
190
|
-
return {};
|
|
191
|
-
}
|
|
192
|
-
var reporter = new _assets.CHRReporter();
|
|
193
|
-
var resourceTimings = (0, _resourceTimingBuffer.filterResourceTimings)(interaction.start, interaction.end);
|
|
194
|
-
var assets = reporter.get(resourceTimings, assetsConfig, SSRDoneTime);
|
|
195
|
-
if (assets) {
|
|
196
|
-
// Only add assets in case it exists
|
|
197
|
-
return {
|
|
198
|
-
'event:assets': assets
|
|
199
|
-
};
|
|
200
|
-
}
|
|
201
|
-
return {};
|
|
202
|
-
} catch (error) {
|
|
203
|
-
// Skip CHR in case of error
|
|
204
|
-
return {};
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
function getTracingContextData(interaction) {
|
|
208
|
-
var trace = interaction.trace,
|
|
209
|
-
start = interaction.start;
|
|
210
|
-
var tracingContextData = {};
|
|
211
|
-
if (trace) {
|
|
212
|
-
tracingContextData = {
|
|
213
|
-
'ufo:tracingContext': {
|
|
214
|
-
'X-B3-TraceId': trace.traceId,
|
|
215
|
-
'X-B3-SpanId': trace.spanId,
|
|
216
|
-
// eslint-disable-next-line compat/compat
|
|
217
|
-
browserTimeOrigin: +(performance.timeOrigin + start).toFixed(2)
|
|
218
|
-
}
|
|
219
|
-
};
|
|
220
|
-
}
|
|
221
|
-
return tracingContextData;
|
|
222
|
-
}
|
|
223
|
-
function optimizeCustomData(interaction) {
|
|
224
|
-
var customData = interaction.customData,
|
|
225
|
-
cohortingCustomData = interaction.cohortingCustomData,
|
|
226
|
-
legacyMetrics = interaction.legacyMetrics;
|
|
227
|
-
var customDataMap = customData.reduce(function (result, _ref) {
|
|
228
|
-
var _result$get$data, _result$get;
|
|
229
|
-
var labelStack = _ref.labelStack,
|
|
230
|
-
data = _ref.data;
|
|
231
|
-
var label = (0, _utils.stringifyLabelStackFully)(labelStack);
|
|
232
|
-
var value = (_result$get$data = (_result$get = result.get(label)) === null || _result$get === void 0 ? void 0 : _result$get.data) !== null && _result$get$data !== void 0 ? _result$get$data : {};
|
|
233
|
-
result.set(label, {
|
|
234
|
-
labelStack: (0, _utils.optimizeLabelStack)(labelStack, (0, _getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)),
|
|
235
|
-
data: Object.assign(value, data)
|
|
236
|
-
});
|
|
237
|
-
return result;
|
|
238
|
-
}, new Map());
|
|
239
|
-
|
|
240
|
-
// Merge cohorting custom data into the same map
|
|
241
|
-
if (cohortingCustomData && cohortingCustomData.size > 0) {
|
|
242
|
-
var _interaction$labelSta, _customDataMap$get$da, _customDataMap$get, _interaction$labelSta2;
|
|
243
|
-
var label = (0, _utils.stringifyLabelStackFully)((_interaction$labelSta = interaction.labelStack) !== null && _interaction$labelSta !== void 0 ? _interaction$labelSta : []);
|
|
244
|
-
var value = (_customDataMap$get$da = (_customDataMap$get = customDataMap.get(label)) === null || _customDataMap$get === void 0 ? void 0 : _customDataMap$get.data) !== null && _customDataMap$get$da !== void 0 ? _customDataMap$get$da : {};
|
|
245
|
-
customDataMap.set(label, {
|
|
246
|
-
labelStack: (0, _utils.optimizeLabelStack)((_interaction$labelSta2 = interaction.labelStack) !== null && _interaction$labelSta2 !== void 0 ? _interaction$labelSta2 : [], (0, _getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)),
|
|
247
|
-
data: Object.assign(value, Object.fromEntries(cohortingCustomData))
|
|
248
|
-
});
|
|
249
|
-
}
|
|
250
|
-
if (legacyMetrics) {
|
|
251
|
-
var legacyMetricsFiltered = legacyMetrics.filter(function (item) {
|
|
252
|
-
return item.type === 'PAGE_LOAD';
|
|
253
|
-
}).reduce(function (result, currentValue) {
|
|
254
|
-
for (var _i = 0, _Object$entries = Object.entries(currentValue.custom || {}); _i < _Object$entries.length; _i++) {
|
|
255
|
-
var _result$get$data2, _result$get2;
|
|
256
|
-
var _Object$entries$_i = (0, _slicedToArray2.default)(_Object$entries[_i], 2),
|
|
257
|
-
key = _Object$entries$_i[0],
|
|
258
|
-
_value = _Object$entries$_i[1];
|
|
259
|
-
var _label = (0, _utils.stringifyLabelStackFully)([]);
|
|
260
|
-
var labelValue = (_result$get$data2 = (_result$get2 = result.get(_label)) === null || _result$get2 === void 0 ? void 0 : _result$get2.data) !== null && _result$get$data2 !== void 0 ? _result$get$data2 : {};
|
|
261
|
-
result.set(_label, {
|
|
262
|
-
labelStack: (0, _utils.optimizeLabelStack)([], (0, _getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)),
|
|
263
|
-
data: Object.assign(labelValue, (0, _defineProperty2.default)({}, key, _value))
|
|
264
|
-
});
|
|
265
|
-
}
|
|
266
|
-
return result;
|
|
267
|
-
}, new Map());
|
|
268
|
-
return [].concat((0, _toConsumableArray2.default)(customDataMap.values()), (0, _toConsumableArray2.default)(legacyMetricsFiltered.values()));
|
|
269
|
-
}
|
|
270
|
-
return (0, _toConsumableArray2.default)(customDataMap.values());
|
|
271
|
-
}
|
|
272
|
-
function optimizeRedirects(redirects, interactionStart) {
|
|
273
|
-
var lastRedirectTime = interactionStart;
|
|
274
|
-
var updatedRedirects = redirects.sort(function (a, b) {
|
|
275
|
-
return a.time - b.time;
|
|
276
|
-
}).reduce(function (result, redirect) {
|
|
277
|
-
var fromInteractionName = redirect.fromInteractionName,
|
|
278
|
-
time = redirect.time;
|
|
279
|
-
if (lastRedirectTime >= interactionStart) {
|
|
280
|
-
result.push({
|
|
281
|
-
labelStack: [{
|
|
282
|
-
n: fromInteractionName
|
|
283
|
-
}],
|
|
284
|
-
startTime: Math.round(lastRedirectTime),
|
|
285
|
-
endTime: Math.round(time)
|
|
286
|
-
});
|
|
287
|
-
}
|
|
288
|
-
lastRedirectTime = time;
|
|
289
|
-
return result;
|
|
290
|
-
}, []);
|
|
291
|
-
return updatedRedirects;
|
|
292
|
-
}
|
|
293
|
-
function objectToArray() {
|
|
294
|
-
var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
295
|
-
return Object.keys(obj).reduce(function (result, key) {
|
|
296
|
-
result.push({
|
|
297
|
-
label: key,
|
|
298
|
-
data: obj[key]
|
|
299
|
-
});
|
|
300
|
-
return result;
|
|
301
|
-
}, []);
|
|
302
|
-
}
|
|
303
|
-
function getBM3SubmetricsTimings(submetrics) {
|
|
304
|
-
if (!submetrics) {
|
|
305
|
-
return null;
|
|
306
|
-
}
|
|
307
|
-
var submetricsTimings = submetrics.filter(function (item) {
|
|
308
|
-
return typeof item.stop === 'number' && !!item.key && typeof item.start === 'number';
|
|
309
|
-
}).map(function (item) {
|
|
310
|
-
var childSubmetrics;
|
|
311
|
-
var newKey = "include/".concat(item.key);
|
|
312
|
-
if (item.submetrics) {
|
|
313
|
-
childSubmetrics = getBM3SubmetricsTimings(item.submetrics);
|
|
314
|
-
}
|
|
315
|
-
return _objectSpread((0, _defineProperty2.default)({}, newKey, {
|
|
316
|
-
endTime: item.stop - item.start,
|
|
317
|
-
startTime: item.start
|
|
318
|
-
}), childSubmetrics ? childSubmetrics : {});
|
|
319
|
-
});
|
|
320
|
-
return submetricsTimings;
|
|
321
|
-
}
|
|
322
|
-
function getBm3TrackerTimings(interaction) {
|
|
323
|
-
var interactionLegacyMetrics = interaction.legacyMetrics;
|
|
324
|
-
if (!interactionLegacyMetrics) {
|
|
325
|
-
return {};
|
|
326
|
-
}
|
|
327
|
-
var legacyMetrics = interactionLegacyMetrics.map(function (item) {
|
|
328
|
-
var _item$config, _item$config2, _item$marks;
|
|
329
|
-
return {
|
|
330
|
-
key: item.key,
|
|
331
|
-
startTime: item.start,
|
|
332
|
-
stopTime: item.stop,
|
|
333
|
-
type: (_item$config = item.config) === null || _item$config === void 0 ? void 0 : _item$config.type,
|
|
334
|
-
reactUFOName: (_item$config2 = item.config) === null || _item$config2 === void 0 ? void 0 : _item$config2.reactUFOName,
|
|
335
|
-
fmp: ((_item$marks = item.marks) === null || _item$marks === void 0 ? void 0 : _item$marks['fmp']) || item.stop,
|
|
336
|
-
source: 'bm3',
|
|
337
|
-
timings: (0, _customTimings.getBm3Timings)(item.marks, item.config.timings),
|
|
338
|
-
submetrics: getBM3SubmetricsTimings(item.submetrics),
|
|
339
|
-
pageVisibleState: item.pageVisibleState
|
|
340
|
-
};
|
|
341
|
-
}).filter(function (item) {
|
|
342
|
-
return !!item.type;
|
|
343
|
-
});
|
|
344
|
-
return {
|
|
345
|
-
legacyMetrics: legacyMetrics
|
|
346
|
-
};
|
|
347
|
-
}
|
|
348
|
-
function getStylesheetMetrics() {
|
|
349
|
-
try {
|
|
350
|
-
var doc = (0, _browserApis.getDocument)();
|
|
351
|
-
if (!doc) {
|
|
352
|
-
return {};
|
|
353
|
-
}
|
|
354
|
-
var stylesheets = Array.from(doc.styleSheets);
|
|
355
|
-
var stylesheetCount = stylesheets.length;
|
|
356
|
-
var cssrules = Array.from(doc.styleSheets).reduce(function (acc, item) {
|
|
357
|
-
// Other domain stylesheets throw a SecurityError
|
|
358
|
-
try {
|
|
359
|
-
return acc + item.cssRules.length;
|
|
360
|
-
} catch (e) {
|
|
361
|
-
return acc;
|
|
362
|
-
}
|
|
363
|
-
}, 0);
|
|
364
|
-
var styleElements = doc.querySelectorAll('style').length;
|
|
365
|
-
var styleProps = doc.querySelectorAll('[style]');
|
|
366
|
-
var styleDeclarations = Array.from(doc.querySelectorAll('[style]')).reduce(function (acc, item) {
|
|
367
|
-
try {
|
|
368
|
-
if ('style' in item) {
|
|
369
|
-
return acc + item.style.length;
|
|
370
|
-
} else {
|
|
371
|
-
return acc;
|
|
372
|
-
}
|
|
373
|
-
} catch (e) {
|
|
374
|
-
return acc;
|
|
375
|
-
}
|
|
376
|
-
}, 0);
|
|
377
|
-
return {
|
|
378
|
-
'ufo:stylesheets': stylesheetCount,
|
|
379
|
-
'ufo:styleElements': styleElements,
|
|
380
|
-
'ufo:styleProps': styleProps.length,
|
|
381
|
-
'ufo:styleDeclarations': styleDeclarations,
|
|
382
|
-
'ufo:cssrules': cssrules
|
|
383
|
-
};
|
|
384
|
-
} catch (e) {
|
|
385
|
-
return {};
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
var regularTTAI;
|
|
389
|
-
var expTTAI;
|
|
390
|
-
function getErrorCounts(interaction) {
|
|
391
|
-
return {
|
|
392
|
-
'ufo:errors:globalCount': (0, _globalErrorHandler.getGlobalErrorCount)(),
|
|
393
|
-
'ufo:errors:count': interaction.errors.length
|
|
394
|
-
};
|
|
395
|
-
}
|
|
396
|
-
function createInteractionMetricsPayload(_x, _x2, _x3, _x4, _x5) {
|
|
397
|
-
return _createInteractionMetricsPayload.apply(this, arguments);
|
|
398
|
-
}
|
|
399
|
-
function _createInteractionMetricsPayload() {
|
|
400
|
-
_createInteractionMetricsPayload = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(interaction, interactionId, experimental, criticalPayloadCount, vcMetrics) {
|
|
401
|
-
var _window$location, _config$additionalPay;
|
|
402
|
-
var interactionPayloadStart, config, end, start, ufoName, knownSegments, rate, type, abortReason, routeName, featureFlags, previousInteractionName, isPreviousInteractionAborted, abortedByInteractionName, responsiveness, unknownElementName, unknownElementHierarchy, hydration, pageVisibilityAtTTI, pageVisibilityAtTTAI, segments, segmentTree, isDetailedPayload, isPageLoad, calculatePageVisibilityFromTheStartOfPageLoad, moreAccuratePageVisibilityAtTTI, moreAccuratePageVisibilityAtTTAI, labelStack, getInitialPageLoadSSRMetrics, pageLoadInteractionMetrics, getDetailedInteractionMetrics, getPageLoadDetailedInteractionMetrics, newUFOName, resourceTimings, _yield$Promise$all, _yield$Promise$all2, finalVCMetrics, experimentalMetrics, paintMetrics, batteryInfo, getReactHydrationStats, payload, size, vcRev, rawData, rawDataSize;
|
|
403
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
404
|
-
while (1) switch (_context.prev = _context.next) {
|
|
405
|
-
case 0:
|
|
406
|
-
interactionPayloadStart = performance.now();
|
|
407
|
-
config = (0, _config.getConfig)();
|
|
408
|
-
if (config) {
|
|
409
|
-
_context.next = 4;
|
|
410
|
-
break;
|
|
411
|
-
}
|
|
412
|
-
throw Error('UFO Configuration not provided');
|
|
413
|
-
case 4:
|
|
414
|
-
end = interaction.end, start = interaction.start, ufoName = interaction.ufoName, knownSegments = interaction.knownSegments, rate = interaction.rate, type = interaction.type, abortReason = interaction.abortReason, routeName = interaction.routeName, featureFlags = interaction.featureFlags, previousInteractionName = interaction.previousInteractionName, isPreviousInteractionAborted = interaction.isPreviousInteractionAborted, abortedByInteractionName = interaction.abortedByInteractionName, responsiveness = interaction.responsiveness, unknownElementName = interaction.unknownElementName, unknownElementHierarchy = interaction.unknownElementHierarchy, hydration = interaction.hydration;
|
|
415
|
-
pageVisibilityAtTTI = getPageVisibilityUpToTTI(interaction);
|
|
416
|
-
pageVisibilityAtTTAI = (0, _getPageVisibilityUpToTtai.default)(interaction);
|
|
417
|
-
segments = !(0, _platformFeatureFlags.fg)('platform_ufo_remove_deprecated_config_fields') && config.killswitchNestedSegments ? [] : knownSegments;
|
|
418
|
-
segmentTree = (0, _getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type) === '2.0.0' ? (0, _utils.buildSegmentTree)(segments.map(function (segment) {
|
|
419
|
-
return segment.labelStack;
|
|
420
|
-
})) : {};
|
|
421
|
-
isDetailedPayload = pageVisibilityAtTTAI === 'visible';
|
|
422
|
-
isPageLoad = type === 'page_load';
|
|
423
|
-
calculatePageVisibilityFromTheStartOfPageLoad = config.enableBetterPageVisibilityApi && isPageLoad;
|
|
424
|
-
moreAccuratePageVisibilityAtTTI = calculatePageVisibilityFromTheStartOfPageLoad ? getMoreAccuratePageVisibilityUpToTTI(interaction) : null;
|
|
425
|
-
moreAccuratePageVisibilityAtTTAI = calculatePageVisibilityFromTheStartOfPageLoad ? (0, _getMoreAccuratePageVisibilityUpToTtai.getMoreAccuratePageVisibilityUpToTTAI)(interaction) : null;
|
|
426
|
-
labelStack = interaction.labelStack ? {
|
|
427
|
-
labelStack: (0, _utils.optimizeLabelStack)(interaction.labelStack, (0, _getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type))
|
|
428
|
-
} : {}; // Page Load
|
|
429
|
-
getInitialPageLoadSSRMetrics = function getInitialPageLoadSSRMetrics() {
|
|
430
|
-
var _config$ssr;
|
|
431
|
-
if (!isPageLoad) {
|
|
432
|
-
return {};
|
|
433
|
-
}
|
|
434
|
-
var config = (0, _config.getConfig)();
|
|
435
|
-
var SSRDoneTimeValue = (0, _getSsrDoneTimeValue.default)(config);
|
|
436
|
-
var SSRDoneTime = SSRDoneTimeValue !== undefined ? {
|
|
437
|
-
SSRDoneTime: Math.round(SSRDoneTimeValue)
|
|
438
|
-
} : {};
|
|
439
|
-
var isBM3ConfigSSRDoneAsFmp = interaction.metaData.__legacy__bm3ConfigSSRDoneAsFmp;
|
|
440
|
-
var isUFOConfigSSRDoneAsFmp = interaction.metaData.__legacy__bm3ConfigSSRDoneAsFmp || !!(config !== null && config !== void 0 && (_config$ssr = config.ssr) !== null && _config$ssr !== void 0 && _config$ssr.getSSRDoneTime);
|
|
441
|
-
if (!experimental && (isBM3ConfigSSRDoneAsFmp || isUFOConfigSSRDoneAsFmp) && SSRDoneTimeValue !== undefined) {
|
|
442
|
-
try {
|
|
443
|
-
performance.mark("FMP", {
|
|
444
|
-
startTime: SSRDoneTimeValue,
|
|
445
|
-
detail: {
|
|
446
|
-
devtools: {
|
|
447
|
-
dataType: 'marker'
|
|
448
|
-
}
|
|
449
|
-
}
|
|
450
|
-
});
|
|
451
|
-
} catch (e) {}
|
|
452
|
-
}
|
|
453
|
-
return _objectSpread(_objectSpread({}, SSRDoneTime), {}, {
|
|
454
|
-
isBM3ConfigSSRDoneAsFmp: isBM3ConfigSSRDoneAsFmp,
|
|
455
|
-
isUFOConfigSSRDoneAsFmp: isUFOConfigSSRDoneAsFmp
|
|
456
|
-
});
|
|
457
|
-
};
|
|
458
|
-
pageLoadInteractionMetrics = getInitialPageLoadSSRMetrics(); // Detailed payload. Page visibility = visible
|
|
459
|
-
getDetailedInteractionMetrics = function getDetailedInteractionMetrics(resourceTimings) {
|
|
460
|
-
if (experimental || window.__UFO_COMPACT_PAYLOAD__ || !isDetailedPayload) {
|
|
461
|
-
return {};
|
|
462
|
-
}
|
|
463
|
-
var spans = [].concat((0, _toConsumableArray2.default)(interaction.spans), (0, _toConsumableArray2.default)(_interactionMetrics.interactionSpans));
|
|
464
|
-
_interactionMetrics.interactionSpans.length = 0;
|
|
465
|
-
return {
|
|
466
|
-
errors: interaction.errors.map(function (_ref2) {
|
|
467
|
-
var labelStack = _ref2.labelStack,
|
|
468
|
-
others = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
|
|
469
|
-
return _objectSpread(_objectSpread({}, others), {}, {
|
|
470
|
-
labelStack: labelStack && (0, _utils.optimizeLabelStack)(labelStack, (0, _getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type))
|
|
471
|
-
});
|
|
472
|
-
}),
|
|
473
|
-
holdActive: (0, _toConsumableArray2.default)(interaction.holdActive.values()),
|
|
474
|
-
redirects: optimizeRedirects(interaction.redirects, start),
|
|
475
|
-
holdInfo: (0, _optimizeHoldInfo.optimizeHoldInfo)(experimental ? interaction.holdExpInfo : interaction.holdInfo, start, (0, _getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)),
|
|
476
|
-
spans: (0, _optimizeSpans.optimizeSpans)(spans, start, (0, _getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)),
|
|
477
|
-
requestInfo: (0, _optimizeRequestInfo.optimizeRequestInfo)(interaction.requestInfo, start, (0, _getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)),
|
|
478
|
-
customTimings: (0, _optimizeCustomTimings.optimizeCustomTimings)(interaction.customTimings, start),
|
|
479
|
-
bundleEvalTimings: objectToArray(getBundleEvalTimings(start)),
|
|
480
|
-
resourceTimings: objectToArray(resourceTimings)
|
|
481
|
-
};
|
|
482
|
-
}; // Page load & detailed payload
|
|
483
|
-
getPageLoadDetailedInteractionMetrics = function getPageLoadDetailedInteractionMetrics() {
|
|
484
|
-
var _config$ssr2;
|
|
485
|
-
if (!isPageLoad || !isDetailedPayload) {
|
|
486
|
-
return {};
|
|
487
|
-
}
|
|
488
|
-
var config = (0, _config.getConfig)();
|
|
489
|
-
return {
|
|
490
|
-
initialPageLoadExtraTimings: objectToArray(initialPageLoadExtraTiming.getTimings()),
|
|
491
|
-
SSRTimings: config !== null && config !== void 0 && (_config$ssr2 = config.ssr) !== null && _config$ssr2 !== void 0 && _config$ssr2.getSSRTimings ? config.ssr.getSSRTimings() : objectToArray(ssr.getSSRTimings())
|
|
492
|
-
};
|
|
493
|
-
};
|
|
494
|
-
if (experimental) {
|
|
495
|
-
expTTAI = (0, _getTtai.default)(interaction);
|
|
496
|
-
} else {
|
|
497
|
-
regularTTAI = (0, _getTtai.default)(interaction);
|
|
498
|
-
}
|
|
499
|
-
newUFOName = (0, _utils.sanitizeUfoName)(ufoName);
|
|
500
|
-
resourceTimings = getResourceTimings(start, end);
|
|
501
|
-
_context.t0 = Promise;
|
|
502
|
-
_context.t1 = vcMetrics;
|
|
503
|
-
if (_context.t1) {
|
|
504
|
-
_context.next = 28;
|
|
505
|
-
break;
|
|
506
|
-
}
|
|
507
|
-
_context.next = 27;
|
|
508
|
-
return (0, _getVcMetrics.default)(interaction);
|
|
509
|
-
case 27:
|
|
510
|
-
_context.t1 = _context.sent;
|
|
511
|
-
case 28:
|
|
512
|
-
_context.t2 = _context.t1;
|
|
513
|
-
_context.t3 = experimental ? (0, _createExperimentalInteractionMetricsPayload.getExperimentalVCMetrics)(interaction) : Promise.resolve(undefined);
|
|
514
|
-
_context.t4 = (0, _getPaintMetrics.getPaintMetricsToLegacyFormat)(type, end);
|
|
515
|
-
_context.t5 = (0, _getBatteryInfo.getBatteryInfoToLegacyFormat)();
|
|
516
|
-
_context.t6 = [_context.t2, _context.t3, _context.t4, _context.t5];
|
|
517
|
-
_context.next = 35;
|
|
518
|
-
return _context.t0.all.call(_context.t0, _context.t6);
|
|
519
|
-
case 35:
|
|
520
|
-
_yield$Promise$all = _context.sent;
|
|
521
|
-
_yield$Promise$all2 = (0, _slicedToArray2.default)(_yield$Promise$all, 4);
|
|
522
|
-
finalVCMetrics = _yield$Promise$all2[0];
|
|
523
|
-
experimentalMetrics = _yield$Promise$all2[1];
|
|
524
|
-
paintMetrics = _yield$Promise$all2[2];
|
|
525
|
-
batteryInfo = _yield$Promise$all2[3];
|
|
526
|
-
if (!experimental) {
|
|
527
|
-
(0, _addPerformanceMeasures.addPerformanceMeasures)(interaction.start, (0, _toConsumableArray2.default)((finalVCMetrics === null || finalVCMetrics === void 0 ? void 0 : finalVCMetrics['ufo:vc:rev']) || []));
|
|
528
|
-
}
|
|
529
|
-
getReactHydrationStats = function getReactHydrationStats() {
|
|
530
|
-
if (!hydration) {
|
|
531
|
-
return {};
|
|
532
|
-
}
|
|
533
|
-
return {
|
|
534
|
-
hydration: hydration
|
|
535
|
-
};
|
|
536
|
-
};
|
|
537
|
-
payload = {
|
|
538
|
-
actionSubject: 'experience',
|
|
539
|
-
action: 'measured',
|
|
540
|
-
eventType: 'operational',
|
|
541
|
-
source: 'measured',
|
|
542
|
-
tags: ['observability'],
|
|
543
|
-
attributes: {
|
|
544
|
-
properties: _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
545
|
-
// basic
|
|
546
|
-
'event:hostname': ((_window$location = window.location) === null || _window$location === void 0 ? void 0 : _window$location.hostname) || 'unknown',
|
|
547
|
-
'event:product': config.product,
|
|
548
|
-
'event:schema': '1.0.0',
|
|
549
|
-
'event:sizeInKb': 0,
|
|
550
|
-
'event:source': {
|
|
551
|
-
name: 'react-ufo/web',
|
|
552
|
-
version: (0, _getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)
|
|
553
|
-
},
|
|
554
|
-
'event:region': config.region || 'unknown',
|
|
555
|
-
'experience:key': experimental ? 'custom.experimental-interaction-metrics' : 'custom.interaction-metrics',
|
|
556
|
-
'experience:name': newUFOName,
|
|
557
|
-
// Include CPU usage monitoring data
|
|
558
|
-
'event:cpu:usage': (0, _machineUtilisation.createPressureStateReport)(interaction.start, interaction.end),
|
|
559
|
-
'event:memory:usage': (0, _machineUtilisation.createMemoryStateReport)(interaction.start, interaction.end)
|
|
560
|
-
}, criticalPayloadCount !== undefined ? {
|
|
561
|
-
'ufo:multipayload': true,
|
|
562
|
-
'ufo:criticalPayloadCount': criticalPayloadCount
|
|
563
|
-
} : {}), (0, _getBrowserMetadata.getBrowserMetadataToLegacyFormat)()), batteryInfo), getSSRProperties(type)), getAssetsMetrics(interaction, pageLoadInteractionMetrics === null || pageLoadInteractionMetrics === void 0 ? void 0 : pageLoadInteractionMetrics.SSRDoneTime)), getPPSMetrics(interaction)), paintMetrics), (0, _getNavigationMetrics.getNavigationMetricsToLegacyFormat)(type)), finalVCMetrics), experimentalMetrics), (_config$additionalPay = config.additionalPayloadData) === null || _config$additionalPay === void 0 ? void 0 : _config$additionalPay.call(config, interaction)), getTracingContextData(interaction)), getStylesheetMetrics()), getErrorCounts(interaction)), getReactHydrationStats()), {}, {
|
|
564
|
-
interactionMetrics: _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
565
|
-
namePrefix: config.namePrefix || '',
|
|
566
|
-
segmentPrefix: config.segmentPrefix || '',
|
|
567
|
-
interactionId: interactionId,
|
|
568
|
-
pageVisibilityAtTTI: pageVisibilityAtTTI,
|
|
569
|
-
pageVisibilityAtTTAI: pageVisibilityAtTTAI,
|
|
570
|
-
experimental__pageVisibilityAtTTI: moreAccuratePageVisibilityAtTTI,
|
|
571
|
-
experimental__pageVisibilityAtTTAI: moreAccuratePageVisibilityAtTTAI,
|
|
572
|
-
// raw interaction metrics
|
|
573
|
-
rate: rate,
|
|
574
|
-
routeName: routeName,
|
|
575
|
-
type: type,
|
|
576
|
-
abortReason: abortReason,
|
|
577
|
-
featureFlags: featureFlags,
|
|
578
|
-
previousInteractionName: previousInteractionName,
|
|
579
|
-
isPreviousInteractionAborted: isPreviousInteractionAborted,
|
|
580
|
-
abortedByInteractionName: abortedByInteractionName,
|
|
581
|
-
// performance
|
|
582
|
-
apdex: (0, _optimizeApdex.optimizeApdex)(interaction.apdex, (0, _getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)),
|
|
583
|
-
end: Math.round(end),
|
|
584
|
-
start: Math.round(start),
|
|
585
|
-
segments: (0, _getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type) === '2.0.0' ? segmentTree : (0, _utils.getOldSegmentsLabelStack)(segments, interaction.type),
|
|
586
|
-
marks: (0, _optimizeMarks.optimizeMarks)(interaction.marks, (0, _getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)),
|
|
587
|
-
customData: optimizeCustomData(interaction),
|
|
588
|
-
reactProfilerTimings: (0, _optimizeReactProfilerTimings.optimizeReactProfilerTimings)(interaction.reactProfilerTimings, start, (0, _getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)),
|
|
589
|
-
minorInteractions: interaction.minorInteractions
|
|
590
|
-
}, responsiveness ? {
|
|
591
|
-
responsiveness: responsiveness
|
|
592
|
-
} : {}), labelStack), pageLoadInteractionMetrics), getDetailedInteractionMetrics(resourceTimings)), getPageLoadDetailedInteractionMetrics()), getBm3TrackerTimings(interaction)), {}, {
|
|
593
|
-
'metric:ttai': experimental ? regularTTAI || expTTAI : undefined,
|
|
594
|
-
'metric:experimental:ttai': expTTAI
|
|
595
|
-
}, unknownElementName ? {
|
|
596
|
-
unknownElementName: unknownElementName
|
|
597
|
-
} : {}), unknownElementHierarchy ? {
|
|
598
|
-
unknownElementHierarchy: unknownElementHierarchy
|
|
599
|
-
} : {}),
|
|
600
|
-
'ufo:payloadTime': (0, _roundNumber.roundEpsilon)(performance.now() - interactionPayloadStart)
|
|
601
|
-
})
|
|
602
|
-
}
|
|
603
|
-
};
|
|
604
|
-
if (experimental) {
|
|
605
|
-
regularTTAI = undefined;
|
|
606
|
-
expTTAI = undefined;
|
|
607
|
-
}
|
|
608
|
-
if ((0, _platformFeatureFlags.fg)('platform_ufo_enable_vc_raw_data')) {
|
|
609
|
-
size = (0, _getPayloadSize.default)(payload.attributes.properties);
|
|
610
|
-
vcRev = payload.attributes.properties['ufo:vc:rev'];
|
|
611
|
-
rawData = vcRev.find(function (item) {
|
|
612
|
-
return item.revision === 'raw-handler';
|
|
613
|
-
});
|
|
614
|
-
if (rawData) {
|
|
615
|
-
rawDataSize = (0, _getPayloadSize.default)(rawData);
|
|
616
|
-
payload.attributes.properties['ufo:vc:raw:size'] = rawDataSize;
|
|
617
|
-
if (size > MAX_PAYLOAD_SIZE && Array.isArray(vcRev) && vcRev.length > 0) {
|
|
618
|
-
payload.attributes.properties['ufo:vc:rev'] = vcRev.filter(function (item) {
|
|
619
|
-
return item.revision !== 'raw-handler';
|
|
620
|
-
});
|
|
621
|
-
payload.attributes.properties['ufo:vc:raw:removed'] = true;
|
|
622
|
-
}
|
|
623
|
-
}
|
|
624
|
-
payload.attributes.properties['event:sizeInKb'] = (0, _getPayloadSize.default)(payload.attributes.properties);
|
|
625
|
-
} else {
|
|
626
|
-
payload.attributes.properties['event:sizeInKb'] = (0, _getPayloadSize.default)(payload.attributes.properties);
|
|
627
|
-
}
|
|
628
|
-
return _context.abrupt("return", payload);
|
|
629
|
-
case 47:
|
|
630
|
-
case "end":
|
|
631
|
-
return _context.stop();
|
|
632
|
-
}
|
|
633
|
-
}, _callee);
|
|
634
|
-
}));
|
|
635
|
-
return _createInteractionMetricsPayload.apply(this, arguments);
|
|
636
|
-
}
|
|
637
|
-
function createPayloads(_x6, _x7) {
|
|
638
|
-
return _createPayloads.apply(this, arguments);
|
|
639
|
-
}
|
|
640
|
-
function _createPayloads() {
|
|
641
|
-
_createPayloads = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(interactionId, interaction) {
|
|
642
|
-
var ufoNameOverride, modifiedInteraction, payloads, isCriticalMetricsEnabled, vcMetrics, criticalMetricsPayloads, criticalPayloadCount, interactionMetricsPayload;
|
|
643
|
-
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
644
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
645
|
-
case 0:
|
|
646
|
-
ufoNameOverride = getUfoNameOverride(interaction);
|
|
647
|
-
modifiedInteraction = _objectSpread(_objectSpread({}, interaction), {}, {
|
|
648
|
-
ufoName: ufoNameOverride
|
|
649
|
-
});
|
|
650
|
-
payloads = [];
|
|
651
|
-
isCriticalMetricsEnabled = (0, _platformFeatureFlags.fg)('platform_ufo_critical_metrics_payload'); // Calculate VC metrics once to avoid duplicate expensive calculations
|
|
652
|
-
_context2.next = 6;
|
|
653
|
-
return (0, _getVcMetrics.default)(interaction);
|
|
654
|
-
case 6:
|
|
655
|
-
vcMetrics = _context2.sent;
|
|
656
|
-
if (!isCriticalMetricsEnabled) {
|
|
657
|
-
_context2.next = 13;
|
|
658
|
-
break;
|
|
659
|
-
}
|
|
660
|
-
_context2.next = 10;
|
|
661
|
-
return (0, _criticalMetricsPayload.createCriticalMetricsPayloads)(interactionId, interaction, vcMetrics);
|
|
662
|
-
case 10:
|
|
663
|
-
_context2.t0 = _context2.sent;
|
|
664
|
-
_context2.next = 14;
|
|
665
|
-
break;
|
|
666
|
-
case 13:
|
|
667
|
-
_context2.t0 = [];
|
|
668
|
-
case 14:
|
|
669
|
-
criticalMetricsPayloads = _context2.t0;
|
|
670
|
-
payloads.push.apply(payloads, (0, _toConsumableArray2.default)(criticalMetricsPayloads));
|
|
671
|
-
criticalPayloadCount = isCriticalMetricsEnabled ? criticalMetricsPayloads.length : undefined;
|
|
672
|
-
_context2.next = 19;
|
|
673
|
-
return createInteractionMetricsPayload(modifiedInteraction, interactionId, undefined, criticalPayloadCount, vcMetrics);
|
|
674
|
-
case 19:
|
|
675
|
-
interactionMetricsPayload = _context2.sent;
|
|
676
|
-
payloads.push(interactionMetricsPayload);
|
|
677
|
-
return _context2.abrupt("return", payloads.filter(Boolean));
|
|
678
|
-
case 22:
|
|
679
|
-
case "end":
|
|
680
|
-
return _context2.stop();
|
|
681
|
-
}
|
|
682
|
-
}, _callee2);
|
|
683
|
-
}));
|
|
684
|
-
return _createPayloads.apply(this, arguments);
|
|
685
|
-
}
|
|
686
|
-
function createExperimentalMetricsPayload(_x8, _x9) {
|
|
687
|
-
return _createExperimentalMetricsPayload.apply(this, arguments);
|
|
688
|
-
}
|
|
689
|
-
function _createExperimentalMetricsPayload() {
|
|
690
|
-
_createExperimentalMetricsPayload = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(interactionId, interaction) {
|
|
691
|
-
var config, ufoName, rate, pageVisibilityState, result;
|
|
692
|
-
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
693
|
-
while (1) switch (_context3.prev = _context3.next) {
|
|
694
|
-
case 0:
|
|
695
|
-
config = (0, _config.getConfig)();
|
|
696
|
-
if (config) {
|
|
697
|
-
_context3.next = 3;
|
|
698
|
-
break;
|
|
699
|
-
}
|
|
700
|
-
throw Error('UFO Configuration not provided');
|
|
701
|
-
case 3:
|
|
702
|
-
ufoName = (0, _utils.sanitizeUfoName)(interaction.ufoName);
|
|
703
|
-
rate = (0, _config.getExperimentalInteractionRate)(ufoName, interaction.type);
|
|
704
|
-
if ((0, _coinflip.default)(rate)) {
|
|
705
|
-
_context3.next = 7;
|
|
706
|
-
break;
|
|
707
|
-
}
|
|
708
|
-
return _context3.abrupt("return", null);
|
|
709
|
-
case 7:
|
|
710
|
-
pageVisibilityState = (0, _hiddenTiming.getPageVisibilityState)(interaction.start, interaction.end);
|
|
711
|
-
if (!(pageVisibilityState !== 'visible')) {
|
|
712
|
-
_context3.next = 10;
|
|
713
|
-
break;
|
|
714
|
-
}
|
|
715
|
-
return _context3.abrupt("return", null);
|
|
716
|
-
case 10:
|
|
717
|
-
_context3.next = 12;
|
|
718
|
-
return createInteractionMetricsPayload(interaction, interactionId, true);
|
|
719
|
-
case 12:
|
|
720
|
-
result = _context3.sent;
|
|
721
|
-
return _context3.abrupt("return", result);
|
|
722
|
-
case 14:
|
|
723
|
-
case "end":
|
|
724
|
-
return _context3.stop();
|
|
725
|
-
}
|
|
726
|
-
}, _callee3);
|
|
727
|
-
}));
|
|
728
|
-
return _createExperimentalMetricsPayload.apply(this, arguments);
|
|
729
|
-
}
|
|
730
|
-
function createExtraSearchPageInteractionPayload(_x0, _x1) {
|
|
731
|
-
return _createExtraSearchPageInteractionPayload.apply(this, arguments);
|
|
732
|
-
}
|
|
733
|
-
function _createExtraSearchPageInteractionPayload() {
|
|
734
|
-
_createExtraSearchPageInteractionPayload = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(interactionId, interaction) {
|
|
735
|
-
var SAIN_HOLD_NAMES, NAME_OVERRIDE, SEARCH_PAGE_SMART_ANSWERS_SEGMENT_LABEL, newInteractionId, newEnd, holdInfo, reactProfilerTimings, lastHold, isLastHoldSAIN, lastFilteredTime, filteredReactProfilerTimings, lastTiming, modifiedInteraction, payloads, vcMetrics, interactionMetricsPayload;
|
|
736
|
-
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
737
|
-
while (1) switch (_context4.prev = _context4.next) {
|
|
738
|
-
case 0:
|
|
739
|
-
SAIN_HOLD_NAMES = ['search-ai-dialog-visible-text-loading', 'search-ai-dialog-all-text-loading'];
|
|
740
|
-
NAME_OVERRIDE = 'search-page-ignoring-smart-answers';
|
|
741
|
-
SEARCH_PAGE_SMART_ANSWERS_SEGMENT_LABEL = 'search-page-smart-answers';
|
|
742
|
-
newInteractionId = "".concat(interactionId, "-ignoring-smart-answers"); // Calculate a new end time which excludes SAIN holds
|
|
743
|
-
holdInfo = interaction.holdInfo, reactProfilerTimings = interaction.reactProfilerTimings;
|
|
744
|
-
lastHold = holdInfo.at(-1);
|
|
745
|
-
isLastHoldSAIN = Boolean(lastHold && SAIN_HOLD_NAMES.includes(lastHold.name)); // A new end time is only calculated if the last hold is a SAIN hold
|
|
746
|
-
if (isLastHoldSAIN) {
|
|
747
|
-
lastFilteredTime = null;
|
|
748
|
-
filteredReactProfilerTimings = reactProfilerTimings.filter(function (timing) {
|
|
749
|
-
if (timing.commitTime === lastFilteredTime) {
|
|
750
|
-
return false;
|
|
751
|
-
}
|
|
752
|
-
var isTimingSmartAnswersInSearch = timing.labelStack.some(function (label) {
|
|
753
|
-
return label.name === SEARCH_PAGE_SMART_ANSWERS_SEGMENT_LABEL;
|
|
754
|
-
});
|
|
755
|
-
if (isTimingSmartAnswersInSearch) {
|
|
756
|
-
lastFilteredTime = timing.commitTime;
|
|
757
|
-
return false;
|
|
758
|
-
}
|
|
759
|
-
return true;
|
|
760
|
-
});
|
|
761
|
-
lastTiming = filteredReactProfilerTimings.at(-1);
|
|
762
|
-
if (lastTiming) {
|
|
763
|
-
newEnd = lastTiming.commitTime;
|
|
764
|
-
}
|
|
765
|
-
}
|
|
766
|
-
modifiedInteraction = _objectSpread(_objectSpread({}, interaction), {}, {
|
|
767
|
-
end: newEnd !== null && newEnd !== void 0 ? newEnd : interaction.end,
|
|
768
|
-
holdInfo: [],
|
|
769
|
-
knownSegments: [],
|
|
770
|
-
reactProfilerTimings: [],
|
|
771
|
-
ufoName: NAME_OVERRIDE
|
|
772
|
-
});
|
|
773
|
-
payloads = [];
|
|
774
|
-
_context4.next = 12;
|
|
775
|
-
return (0, _getVcMetrics.default)(interaction, false, true);
|
|
776
|
-
case 12:
|
|
777
|
-
vcMetrics = _context4.sent;
|
|
778
|
-
_context4.next = 15;
|
|
779
|
-
return createInteractionMetricsPayload(modifiedInteraction, newInteractionId, undefined, undefined, vcMetrics);
|
|
780
|
-
case 15:
|
|
781
|
-
interactionMetricsPayload = _context4.sent;
|
|
782
|
-
payloads.push(interactionMetricsPayload);
|
|
783
|
-
return _context4.abrupt("return", payloads.filter(Boolean));
|
|
784
|
-
case 18:
|
|
785
|
-
case "end":
|
|
786
|
-
return _context4.stop();
|
|
787
|
-
}
|
|
788
|
-
}, _callee4);
|
|
789
|
-
}));
|
|
790
|
-
return _createExtraSearchPageInteractionPayload.apply(this, arguments);
|
|
791
|
-
}
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _typeof=require("@babel/runtime/helpers/typeof");Object.defineProperty(exports,"__esModule",{value:true});exports.createExperimentalMetricsPayload=createExperimentalMetricsPayload;exports.createExtraSearchPageInteractionPayload=createExtraSearchPageInteractionPayload;exports.createPayloads=createPayloads;var _regenerator=_interopRequireDefault(require("@babel/runtime/regenerator"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _toConsumableArray2=_interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _browserApis=require("@atlaskit/browser-apis");var _platformFeatureFlags=require("@atlaskit/platform-feature-flags");var _additionalPayload=require("../additional-payload");var _assets=require("../assets");var bundleEvalTiming=_interopRequireWildcard(require("../bundle-eval-timing"));var _coinflip=_interopRequireDefault(require("../coinflip"));var _config=require("../config");var _createExperimentalInteractionMetricsPayload=require("../create-experimental-interaction-metrics-payload");var _customTimings=require("../custom-timings");var _globalErrorHandler=require("../global-error-handler");var _hiddenTiming=require("../hidden-timing");var initialPageLoadExtraTiming=_interopRequireWildcard(require("../initial-page-load-extra-timing"));var _interactionMetrics=require("../interaction-metrics");var _machineUtilisation=require("../machine-utilisation");var resourceTiming=_interopRequireWildcard(require("../resource-timing"));var _resourceTimingBuffer=require("../resource-timing/common/utils/resource-timing-buffer");var _roundNumber=require("../round-number");var ssr=_interopRequireWildcard(require("../ssr"));var _utils=require("./common/utils");var _criticalMetricsPayload=require("./critical-metrics-payload");var _addPerformanceMeasures=require("./utils/add-performance-measures");var _getBatteryInfo=require("./utils/get-battery-info");var _getBrowserMetadata=require("./utils/get-browser-metadata");var _getInteractionStatus=_interopRequireDefault(require("./utils/get-interaction-status"));var _getMoreAccuratePageVisibilityUpToTtai=require("./utils/get-more-accurate-page-visibility-up-to-ttai");var _getNavigationMetrics=require("./utils/get-navigation-metrics");var _getPageVisibilityUpToTtai=_interopRequireDefault(require("./utils/get-page-visibility-up-to-ttai"));var _getPaintMetrics=require("./utils/get-paint-metrics");var _getPayloadSize=_interopRequireDefault(require("./utils/get-payload-size"));var _getReactUfoPayloadVersion=require("./utils/get-react-ufo-payload-version");var _getSsrDoneTimeValue=_interopRequireDefault(require("./utils/get-ssr-done-time-value"));var _getSsrSuccess=_interopRequireDefault(require("./utils/get-ssr-success"));var _getTtai=_interopRequireDefault(require("./utils/get-ttai"));var _getVcMetrics=_interopRequireDefault(require("./utils/get-vc-metrics"));var _getVisibilityStateFromPerformance=require("./utils/get-visibility-state-from-performance");var _optimizeApdex=require("./utils/optimize-apdex");var _optimizeCustomTimings=require("./utils/optimize-custom-timings");var _optimizeHoldInfo=require("./utils/optimize-hold-info");var _optimizeMarks=require("./utils/optimize-marks");var _optimizeReactProfilerTimings=require("./utils/optimize-react-profiler-timings");var _optimizeRequestInfo=require("./utils/optimize-request-info");var _optimizeSpans=require("./utils/optimize-spans");var _excluded=["labelStack"];function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap(),n=new WeakMap();return(_interopRequireWildcard=function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var o,i,f={__proto__:null,default:e};if(null===e||"object"!=_typeof(e)&&"function"!=typeof e)return f;if(o=t?n:r){if(o.has(e))return o.get(e);o.set(e,f);}for(var _t in e)"default"!==_t&&{}.hasOwnProperty.call(e,_t)&&((i=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,_t))&&(i.get||i.set)?o(f,_t,i):f[_t]=e[_t]);return f;})(e,t);}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;}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach(function(r){(0,_defineProperty2.default)(e,r,t[r]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r));});}return e;}// Import common utilities
|
|
2
|
+
var MAX_PAYLOAD_SIZE=250;function getUfoNameOverride(interaction){var ufoName=interaction.ufoName,apdex=interaction.apdex;try{var ufoNameOverrides=(0,_config.getUfoNameOverrides)();if(ufoNameOverrides!=null){var metricKey=apdex.length>0?apdex[0].key:'';if(ufoNameOverrides[ufoName][metricKey]){return ufoNameOverrides[ufoName][metricKey];}}return ufoName;}catch(e){return ufoName;}}function getEarliestLegacyStopTime(interaction,labelStack){var earliestLegacyStopTime=null;interaction.apdex.forEach(function(a){var _a$labelStack;if(!(a!==null&&a!==void 0&&a.stopTime)){return;}if(!(0,_utils.labelStackStartWith)((_a$labelStack=a.labelStack)!==null&&_a$labelStack!==void 0?_a$labelStack:[],labelStack)){return;}if(a.stopTime>interaction.start&&(earliestLegacyStopTime!==null&&earliestLegacyStopTime!==void 0?earliestLegacyStopTime:a.stopTime)>=a.stopTime){earliestLegacyStopTime=a.stopTime;}});return earliestLegacyStopTime;}function getBm3EndTimeOrFallbackValue(interaction){var _getEarliestLegacySto;var labelStack=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];var fallbackValue=arguments.length>2&&arguments[2]!==undefined?arguments[2]:interaction.end;if(interaction.type==='press'){return fallbackValue;}return(_getEarliestLegacySto=getEarliestLegacyStopTime(interaction,labelStack))!==null&&_getEarliestLegacySto!==void 0?_getEarliestLegacySto:fallbackValue;}function getPageVisibilityUpToTTI(interaction){var start=interaction.start;var bm3EndTimeOrInteractionEndTime=getBm3EndTimeOrFallbackValue(interaction);return(0,_hiddenTiming.getPageVisibilityState)(start,bm3EndTimeOrInteractionEndTime);}function getMoreAccuratePageVisibilityUpToTTI(interaction){var old=getPageVisibilityUpToTTI(interaction);var tti=getEarliestLegacyStopTime(interaction,[]);if(!tti){return old;}var buffered=(0,_getVisibilityStateFromPerformance.getVisibilityStateFromPerformance)(tti);if(!buffered){return old;}if(buffered!==old){return'mixed';}return old;}function getResourceTimings(start,end){var _resourceTiming$getRe;return(_resourceTiming$getRe=resourceTiming.getResourceTimings(start,end))!==null&&_resourceTiming$getRe!==void 0?_resourceTiming$getRe:undefined;}function getBundleEvalTimings(start){return bundleEvalTiming.getBundleEvalTimings(start);}function getSSRPhaseSuccess(type){return type==='page_load'?ssr.getSSRPhaseSuccess():undefined;}function getSSRFeatureFlags(type){return type==='page_load'?ssr.getSSRFeatureFlags():undefined;}function getPPSMetrics(interaction){var _interaction$apdex;var start=interaction.start,end=interaction.end;var config=(0,_config.getConfig)();var interactionStatus=(0,_getInteractionStatus.default)(interaction);var pageVisibilityUpToTTAI=(0,_getPageVisibilityUpToTtai.default)(interaction);var tti=(_interaction$apdex=interaction.apdex)===null||_interaction$apdex===void 0||(_interaction$apdex=_interaction$apdex[0])===null||_interaction$apdex===void 0?void 0:_interaction$apdex.stopTime;var ttai=interactionStatus.originalInteractionStatus==='SUCCEEDED'&&pageVisibilityUpToTTAI==='visible'?Math.round(end-start):undefined;var PPSMetricsAtTTI=tti!==undefined?(0,_additionalPayload.getLighthouseMetrics)({start:start,stop:tti}):null;var PPSMetricsAtTTAI=ttai!==undefined?(0,_additionalPayload.getLighthouseMetrics)({start:start,stop:interaction.end}):null;if((0,_platformFeatureFlags.fg)('platform_ufo_remove_deprecated_config_fields')){if(PPSMetricsAtTTAI!==null){return PPSMetricsAtTTAI;}}else{if(config!==null&&config!==void 0&&config.shouldCalculateLighthouseMetricsFromTTAI&&PPSMetricsAtTTAI!==null){return PPSMetricsAtTTAI;}if(PPSMetricsAtTTI!==null){return _objectSpread(_objectSpread({},PPSMetricsAtTTI),{},{'metrics@ttai':PPSMetricsAtTTAI});}}return{};}function getSSRProperties(type){var ssrPhases=getSSRPhaseSuccess(type);return _objectSpread(_objectSpread({'ssr:success':(ssrPhases===null||ssrPhases===void 0?void 0:ssrPhases.done)!=null?ssrPhases.done:(0,_getSsrSuccess.default)(type),'ssr:featureFlags':getSSRFeatureFlags(type)},(ssrPhases===null||ssrPhases===void 0?void 0:ssrPhases.earlyFlush)!=null?{'ssr:earlyflush:success':ssrPhases.earlyFlush}:null),(ssrPhases===null||ssrPhases===void 0?void 0:ssrPhases.prefetch)!=null?{'ssr:prefetch:success':ssrPhases.prefetch}:null);}function getAssetsMetrics(interaction,SSRDoneTime){try{var config=(0,_config.getConfig)();var type=interaction.type;var allowedTypes=['page_load'];var assetsConfig=config===null||config===void 0?void 0:config.assetsConfig;if(!allowedTypes.includes(type)||!assetsConfig){// Skip if: type not allowed or assetsClassification isn't configured
|
|
3
|
+
return{};}var reporter=new _assets.CHRReporter();var resourceTimings=(0,_resourceTimingBuffer.filterResourceTimings)(interaction.start,interaction.end);var assets=reporter.get(resourceTimings,assetsConfig,SSRDoneTime);if(assets){// Only add assets in case it exists
|
|
4
|
+
return{'event:assets':assets};}return{};}catch(error){// Skip CHR in case of error
|
|
5
|
+
return{};}}function getTracingContextData(interaction){var trace=interaction.trace,start=interaction.start;var tracingContextData={};if(trace){tracingContextData={'ufo:tracingContext':{'X-B3-TraceId':trace.traceId,'X-B3-SpanId':trace.spanId,// eslint-disable-next-line compat/compat
|
|
6
|
+
browserTimeOrigin:+(performance.timeOrigin+start).toFixed(2)}};}return tracingContextData;}function optimizeCustomData(interaction){var customData=interaction.customData,cohortingCustomData=interaction.cohortingCustomData,legacyMetrics=interaction.legacyMetrics;var customDataMap=customData.reduce(function(result,_ref){var _result$get$data,_result$get;var labelStack=_ref.labelStack,data=_ref.data;var label=(0,_utils.stringifyLabelStackFully)(labelStack);var value=(_result$get$data=(_result$get=result.get(label))===null||_result$get===void 0?void 0:_result$get.data)!==null&&_result$get$data!==void 0?_result$get$data:{};result.set(label,{labelStack:(0,_utils.optimizeLabelStack)(labelStack,(0,_getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)),data:Object.assign(value,data)});return result;},new Map());// Merge cohorting custom data into the same map
|
|
7
|
+
if(cohortingCustomData&&cohortingCustomData.size>0){var _interaction$labelSta,_customDataMap$get$da,_customDataMap$get,_interaction$labelSta2;var label=(0,_utils.stringifyLabelStackFully)((_interaction$labelSta=interaction.labelStack)!==null&&_interaction$labelSta!==void 0?_interaction$labelSta:[]);var value=(_customDataMap$get$da=(_customDataMap$get=customDataMap.get(label))===null||_customDataMap$get===void 0?void 0:_customDataMap$get.data)!==null&&_customDataMap$get$da!==void 0?_customDataMap$get$da:{};customDataMap.set(label,{labelStack:(0,_utils.optimizeLabelStack)((_interaction$labelSta2=interaction.labelStack)!==null&&_interaction$labelSta2!==void 0?_interaction$labelSta2:[],(0,_getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)),data:Object.assign(value,Object.fromEntries(cohortingCustomData))});}if(legacyMetrics){var legacyMetricsFiltered=legacyMetrics.filter(function(item){return item.type==='PAGE_LOAD';}).reduce(function(result,currentValue){for(var _i=0,_Object$entries=Object.entries(currentValue.custom||{});_i<_Object$entries.length;_i++){var _result$get$data2,_result$get2;var _Object$entries$_i=(0,_slicedToArray2.default)(_Object$entries[_i],2),key=_Object$entries$_i[0],_value=_Object$entries$_i[1];var _label=(0,_utils.stringifyLabelStackFully)([]);var labelValue=(_result$get$data2=(_result$get2=result.get(_label))===null||_result$get2===void 0?void 0:_result$get2.data)!==null&&_result$get$data2!==void 0?_result$get$data2:{};result.set(_label,{labelStack:(0,_utils.optimizeLabelStack)([],(0,_getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)),data:Object.assign(labelValue,(0,_defineProperty2.default)({},key,_value))});}return result;},new Map());return[].concat((0,_toConsumableArray2.default)(customDataMap.values()),(0,_toConsumableArray2.default)(legacyMetricsFiltered.values()));}return(0,_toConsumableArray2.default)(customDataMap.values());}function optimizeRedirects(redirects,interactionStart){var lastRedirectTime=interactionStart;var updatedRedirects=redirects.sort(function(a,b){return a.time-b.time;}).reduce(function(result,redirect){var fromInteractionName=redirect.fromInteractionName,time=redirect.time;if(lastRedirectTime>=interactionStart){result.push({labelStack:[{n:fromInteractionName}],startTime:Math.round(lastRedirectTime),endTime:Math.round(time)});}lastRedirectTime=time;return result;},[]);return updatedRedirects;}function objectToArray(){var obj=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};return Object.keys(obj).reduce(function(result,key){result.push({label:key,data:obj[key]});return result;},[]);}function getBM3SubmetricsTimings(submetrics){if(!submetrics){return null;}var submetricsTimings=submetrics.filter(function(item){return typeof item.stop==='number'&&!!item.key&&typeof item.start==='number';}).map(function(item){var childSubmetrics;var newKey="include/".concat(item.key);if(item.submetrics){childSubmetrics=getBM3SubmetricsTimings(item.submetrics);}return _objectSpread((0,_defineProperty2.default)({},newKey,{endTime:item.stop-item.start,startTime:item.start}),childSubmetrics?childSubmetrics:{});});return submetricsTimings;}function getBm3TrackerTimings(interaction){var interactionLegacyMetrics=interaction.legacyMetrics;if(!interactionLegacyMetrics){return{};}var legacyMetrics=interactionLegacyMetrics.map(function(item){var _item$config,_item$config2,_item$marks;return{key:item.key,startTime:item.start,stopTime:item.stop,type:(_item$config=item.config)===null||_item$config===void 0?void 0:_item$config.type,reactUFOName:(_item$config2=item.config)===null||_item$config2===void 0?void 0:_item$config2.reactUFOName,fmp:((_item$marks=item.marks)===null||_item$marks===void 0?void 0:_item$marks['fmp'])||item.stop,source:'bm3',timings:(0,_customTimings.getBm3Timings)(item.marks,item.config.timings),submetrics:getBM3SubmetricsTimings(item.submetrics),pageVisibleState:item.pageVisibleState};}).filter(function(item){return!!item.type;});return{legacyMetrics:legacyMetrics};}function getStylesheetMetrics(){try{var doc=(0,_browserApis.getDocument)();if(!doc){return{};}var stylesheets=Array.from(doc.styleSheets);var stylesheetCount=stylesheets.length;var cssrules=Array.from(doc.styleSheets).reduce(function(acc,item){// Other domain stylesheets throw a SecurityError
|
|
8
|
+
try{return acc+item.cssRules.length;}catch(e){return acc;}},0);var styleElements=doc.querySelectorAll('style').length;var styleProps=doc.querySelectorAll('[style]');var styleDeclarations=Array.from(doc.querySelectorAll('[style]')).reduce(function(acc,item){try{if('style'in item){return acc+item.style.length;}else{return acc;}}catch(e){return acc;}},0);return{'ufo:stylesheets':stylesheetCount,'ufo:styleElements':styleElements,'ufo:styleProps':styleProps.length,'ufo:styleDeclarations':styleDeclarations,'ufo:cssrules':cssrules};}catch(e){return{};}}var regularTTAI;var expTTAI;function getErrorCounts(interaction){return{'ufo:errors:globalCount':(0,_globalErrorHandler.getGlobalErrorCount)(),'ufo:errors:count':interaction.errors.length};}function createInteractionMetricsPayload(_x,_x2,_x3,_x4,_x5){return _createInteractionMetricsPayload.apply(this,arguments);}function _createInteractionMetricsPayload(){_createInteractionMetricsPayload=(0,_asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(interaction,interactionId,experimental,criticalPayloadCount,vcMetrics){var _window$location,_config$additionalPay;var interactionPayloadStart,config,end,start,ufoName,knownSegments,rate,type,abortReason,routeName,featureFlags,previousInteractionName,isPreviousInteractionAborted,abortedByInteractionName,responsiveness,unknownElementName,unknownElementHierarchy,hydration,pageVisibilityAtTTI,pageVisibilityAtTTAI,segments,segmentTree,isDetailedPayload,isPageLoad,calculatePageVisibilityFromTheStartOfPageLoad,moreAccuratePageVisibilityAtTTI,moreAccuratePageVisibilityAtTTAI,labelStack,getInitialPageLoadSSRMetrics,pageLoadInteractionMetrics,getDetailedInteractionMetrics,getPageLoadDetailedInteractionMetrics,newUFOName,resourceTimings,_yield$Promise$all,_yield$Promise$all2,finalVCMetrics,experimentalMetrics,paintMetrics,batteryInfo,getReactHydrationStats,payload,size,vcRev,rawData,rawDataSize;return _regenerator.default.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:interactionPayloadStart=performance.now();config=(0,_config.getConfig)();if(config){_context.next=4;break;}throw Error('UFO Configuration not provided');case 4:end=interaction.end,start=interaction.start,ufoName=interaction.ufoName,knownSegments=interaction.knownSegments,rate=interaction.rate,type=interaction.type,abortReason=interaction.abortReason,routeName=interaction.routeName,featureFlags=interaction.featureFlags,previousInteractionName=interaction.previousInteractionName,isPreviousInteractionAborted=interaction.isPreviousInteractionAborted,abortedByInteractionName=interaction.abortedByInteractionName,responsiveness=interaction.responsiveness,unknownElementName=interaction.unknownElementName,unknownElementHierarchy=interaction.unknownElementHierarchy,hydration=interaction.hydration;pageVisibilityAtTTI=getPageVisibilityUpToTTI(interaction);pageVisibilityAtTTAI=(0,_getPageVisibilityUpToTtai.default)(interaction);segments=!(0,_platformFeatureFlags.fg)('platform_ufo_remove_deprecated_config_fields')&&config.killswitchNestedSegments?[]:knownSegments;segmentTree=(0,_getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)==='2.0.0'?(0,_utils.buildSegmentTree)(segments.map(function(segment){return segment.labelStack;})):{};isDetailedPayload=pageVisibilityAtTTAI==='visible';isPageLoad=type==='page_load';calculatePageVisibilityFromTheStartOfPageLoad=config.enableBetterPageVisibilityApi&&isPageLoad;moreAccuratePageVisibilityAtTTI=calculatePageVisibilityFromTheStartOfPageLoad?getMoreAccuratePageVisibilityUpToTTI(interaction):null;moreAccuratePageVisibilityAtTTAI=calculatePageVisibilityFromTheStartOfPageLoad?(0,_getMoreAccuratePageVisibilityUpToTtai.getMoreAccuratePageVisibilityUpToTTAI)(interaction):null;labelStack=interaction.labelStack?{labelStack:(0,_utils.optimizeLabelStack)(interaction.labelStack,(0,_getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type))}:{};// Page Load
|
|
9
|
+
getInitialPageLoadSSRMetrics=function getInitialPageLoadSSRMetrics(){var _config$ssr;if(!isPageLoad){return{};}var config=(0,_config.getConfig)();var SSRDoneTimeValue=(0,_getSsrDoneTimeValue.default)(config);var SSRDoneTime=SSRDoneTimeValue!==undefined?{SSRDoneTime:Math.round(SSRDoneTimeValue)}:{};var isBM3ConfigSSRDoneAsFmp=interaction.metaData.__legacy__bm3ConfigSSRDoneAsFmp;var isUFOConfigSSRDoneAsFmp=interaction.metaData.__legacy__bm3ConfigSSRDoneAsFmp||!!(config!==null&&config!==void 0&&(_config$ssr=config.ssr)!==null&&_config$ssr!==void 0&&_config$ssr.getSSRDoneTime);if(!experimental&&(isBM3ConfigSSRDoneAsFmp||isUFOConfigSSRDoneAsFmp)&&SSRDoneTimeValue!==undefined){try{performance.mark("FMP",{startTime:SSRDoneTimeValue,detail:{devtools:{dataType:'marker'}}});}catch(e){}}return _objectSpread(_objectSpread({},SSRDoneTime),{},{isBM3ConfigSSRDoneAsFmp:isBM3ConfigSSRDoneAsFmp,isUFOConfigSSRDoneAsFmp:isUFOConfigSSRDoneAsFmp});};pageLoadInteractionMetrics=getInitialPageLoadSSRMetrics();// Detailed payload. Page visibility = visible
|
|
10
|
+
getDetailedInteractionMetrics=function getDetailedInteractionMetrics(resourceTimings){if(experimental||window.__UFO_COMPACT_PAYLOAD__||!isDetailedPayload){return{};}var spans=[].concat((0,_toConsumableArray2.default)(interaction.spans),(0,_toConsumableArray2.default)(_interactionMetrics.interactionSpans));_interactionMetrics.interactionSpans.length=0;return{errors:interaction.errors.map(function(_ref2){var labelStack=_ref2.labelStack,others=(0,_objectWithoutProperties2.default)(_ref2,_excluded);return _objectSpread(_objectSpread({},others),{},{labelStack:labelStack&&(0,_utils.optimizeLabelStack)(labelStack,(0,_getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type))});}),holdActive:(0,_toConsumableArray2.default)(interaction.holdActive.values()),redirects:optimizeRedirects(interaction.redirects,start),holdInfo:(0,_optimizeHoldInfo.optimizeHoldInfo)(experimental?interaction.holdExpInfo:interaction.holdInfo,start,(0,_getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)),spans:(0,_optimizeSpans.optimizeSpans)(spans,start,(0,_getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)),requestInfo:(0,_optimizeRequestInfo.optimizeRequestInfo)(interaction.requestInfo,start,(0,_getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)),customTimings:(0,_optimizeCustomTimings.optimizeCustomTimings)(interaction.customTimings,start),bundleEvalTimings:objectToArray(getBundleEvalTimings(start)),resourceTimings:objectToArray(resourceTimings)};};// Page load & detailed payload
|
|
11
|
+
getPageLoadDetailedInteractionMetrics=function getPageLoadDetailedInteractionMetrics(){var _config$ssr2;if(!isPageLoad||!isDetailedPayload){return{};}var config=(0,_config.getConfig)();return{initialPageLoadExtraTimings:objectToArray(initialPageLoadExtraTiming.getTimings()),SSRTimings:config!==null&&config!==void 0&&(_config$ssr2=config.ssr)!==null&&_config$ssr2!==void 0&&_config$ssr2.getSSRTimings?config.ssr.getSSRTimings():objectToArray(ssr.getSSRTimings())};};if(experimental){expTTAI=(0,_getTtai.default)(interaction);}else{regularTTAI=(0,_getTtai.default)(interaction);}newUFOName=(0,_utils.sanitizeUfoName)(ufoName);resourceTimings=getResourceTimings(start,end);_context.t0=Promise;_context.t1=vcMetrics;if(_context.t1){_context.next=28;break;}_context.next=27;return(0,_getVcMetrics.default)(interaction);case 27:_context.t1=_context.sent;case 28:_context.t2=_context.t1;_context.t3=experimental?(0,_createExperimentalInteractionMetricsPayload.getExperimentalVCMetrics)(interaction):Promise.resolve(undefined);_context.t4=(0,_getPaintMetrics.getPaintMetricsToLegacyFormat)(type,end);_context.t5=(0,_getBatteryInfo.getBatteryInfoToLegacyFormat)();_context.t6=[_context.t2,_context.t3,_context.t4,_context.t5];_context.next=35;return _context.t0.all.call(_context.t0,_context.t6);case 35:_yield$Promise$all=_context.sent;_yield$Promise$all2=(0,_slicedToArray2.default)(_yield$Promise$all,4);finalVCMetrics=_yield$Promise$all2[0];experimentalMetrics=_yield$Promise$all2[1];paintMetrics=_yield$Promise$all2[2];batteryInfo=_yield$Promise$all2[3];if(!experimental){(0,_addPerformanceMeasures.addPerformanceMeasures)(interaction.start,(0,_toConsumableArray2.default)((finalVCMetrics===null||finalVCMetrics===void 0?void 0:finalVCMetrics['ufo:vc:rev'])||[]));}getReactHydrationStats=function getReactHydrationStats(){if(!hydration){return{};}return{hydration:hydration};};payload={actionSubject:'experience',action:'measured',eventType:'operational',source:'measured',tags:['observability'],attributes:{properties:_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({// basic
|
|
12
|
+
'event:hostname':((_window$location=window.location)===null||_window$location===void 0?void 0:_window$location.hostname)||'unknown','event:product':config.product,'event:schema':'1.0.0','event:sizeInKb':0,'event:source':{name:'react-ufo/web',version:(0,_getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)},'event:region':config.region||'unknown','experience:key':experimental?'custom.experimental-interaction-metrics':'custom.interaction-metrics','experience:name':newUFOName,// Include CPU usage monitoring data
|
|
13
|
+
'event:cpu:usage':(0,_machineUtilisation.createPressureStateReport)(interaction.start,interaction.end),'event:memory:usage':(0,_machineUtilisation.createMemoryStateReport)(interaction.start,interaction.end)},criticalPayloadCount!==undefined?{'ufo:multipayload':true,'ufo:criticalPayloadCount':criticalPayloadCount}:{}),(0,_getBrowserMetadata.getBrowserMetadataToLegacyFormat)()),batteryInfo),getSSRProperties(type)),getAssetsMetrics(interaction,pageLoadInteractionMetrics===null||pageLoadInteractionMetrics===void 0?void 0:pageLoadInteractionMetrics.SSRDoneTime)),getPPSMetrics(interaction)),paintMetrics),(0,_getNavigationMetrics.getNavigationMetricsToLegacyFormat)(type)),finalVCMetrics),experimentalMetrics),(_config$additionalPay=config.additionalPayloadData)===null||_config$additionalPay===void 0?void 0:_config$additionalPay.call(config,interaction)),getTracingContextData(interaction)),getStylesheetMetrics()),getErrorCounts(interaction)),getReactHydrationStats()),{},{interactionMetrics:_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({namePrefix:config.namePrefix||'',segmentPrefix:config.segmentPrefix||'',interactionId:interactionId,pageVisibilityAtTTI:pageVisibilityAtTTI,pageVisibilityAtTTAI:pageVisibilityAtTTAI,experimental__pageVisibilityAtTTI:moreAccuratePageVisibilityAtTTI,experimental__pageVisibilityAtTTAI:moreAccuratePageVisibilityAtTTAI,// raw interaction metrics
|
|
14
|
+
rate:rate,routeName:routeName,type:type,abortReason:abortReason,featureFlags:featureFlags,previousInteractionName:previousInteractionName,isPreviousInteractionAborted:isPreviousInteractionAborted,abortedByInteractionName:abortedByInteractionName,// performance
|
|
15
|
+
apdex:(0,_optimizeApdex.optimizeApdex)(interaction.apdex,(0,_getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)),end:Math.round(end),start:Math.round(start),segments:(0,_getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)==='2.0.0'?segmentTree:(0,_utils.getOldSegmentsLabelStack)(segments,interaction.type),marks:(0,_optimizeMarks.optimizeMarks)(interaction.marks,(0,_getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)),customData:optimizeCustomData(interaction),reactProfilerTimings:(0,_optimizeReactProfilerTimings.optimizeReactProfilerTimings)(interaction.reactProfilerTimings,start,(0,_getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)),minorInteractions:interaction.minorInteractions},responsiveness?{responsiveness:responsiveness}:{}),labelStack),pageLoadInteractionMetrics),getDetailedInteractionMetrics(resourceTimings)),getPageLoadDetailedInteractionMetrics()),getBm3TrackerTimings(interaction)),{},{'metric:ttai':experimental?regularTTAI||expTTAI:undefined,'metric:experimental:ttai':expTTAI},unknownElementName?{unknownElementName:unknownElementName}:{}),unknownElementHierarchy?{unknownElementHierarchy:unknownElementHierarchy}:{}),'ufo:payloadTime':(0,_roundNumber.roundEpsilon)(performance.now()-interactionPayloadStart)})}};if(experimental){regularTTAI=undefined;expTTAI=undefined;}if((0,_platformFeatureFlags.fg)('platform_ufo_enable_vc_raw_data')){size=(0,_getPayloadSize.default)(payload.attributes.properties);vcRev=payload.attributes.properties['ufo:vc:rev'];rawData=vcRev.find(function(item){return item.revision==='raw-handler';});if(rawData){rawDataSize=(0,_getPayloadSize.default)(rawData);payload.attributes.properties['ufo:vc:raw:size']=rawDataSize;if(size>MAX_PAYLOAD_SIZE&&Array.isArray(vcRev)&&vcRev.length>0){payload.attributes.properties['ufo:vc:rev']=vcRev.filter(function(item){return item.revision!=='raw-handler';});payload.attributes.properties['ufo:vc:raw:removed']=true;}}payload.attributes.properties['event:sizeInKb']=(0,_getPayloadSize.default)(payload.attributes.properties);}else{payload.attributes.properties['event:sizeInKb']=(0,_getPayloadSize.default)(payload.attributes.properties);}return _context.abrupt("return",payload);case 47:case"end":return _context.stop();}},_callee);}));return _createInteractionMetricsPayload.apply(this,arguments);}function createPayloads(_x6,_x7){return _createPayloads.apply(this,arguments);}function _createPayloads(){_createPayloads=(0,_asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(interactionId,interaction){var ufoNameOverride,modifiedInteraction,payloads,isCriticalMetricsEnabled,vcMetrics,criticalMetricsPayloads,criticalPayloadCount,interactionMetricsPayload;return _regenerator.default.wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:ufoNameOverride=getUfoNameOverride(interaction);modifiedInteraction=_objectSpread(_objectSpread({},interaction),{},{ufoName:ufoNameOverride});payloads=[];isCriticalMetricsEnabled=(0,_platformFeatureFlags.fg)('platform_ufo_critical_metrics_payload');// Calculate VC metrics once to avoid duplicate expensive calculations
|
|
16
|
+
_context2.next=6;return(0,_getVcMetrics.default)(interaction);case 6:vcMetrics=_context2.sent;if(!isCriticalMetricsEnabled){_context2.next=13;break;}_context2.next=10;return(0,_criticalMetricsPayload.createCriticalMetricsPayloads)(interactionId,interaction,vcMetrics);case 10:_context2.t0=_context2.sent;_context2.next=14;break;case 13:_context2.t0=[];case 14:criticalMetricsPayloads=_context2.t0;payloads.push.apply(payloads,(0,_toConsumableArray2.default)(criticalMetricsPayloads));criticalPayloadCount=isCriticalMetricsEnabled?criticalMetricsPayloads.length:undefined;_context2.next=19;return createInteractionMetricsPayload(modifiedInteraction,interactionId,undefined,criticalPayloadCount,vcMetrics);case 19:interactionMetricsPayload=_context2.sent;payloads.push(interactionMetricsPayload);return _context2.abrupt("return",payloads.filter(Boolean));case 22:case"end":return _context2.stop();}},_callee2);}));return _createPayloads.apply(this,arguments);}function createExperimentalMetricsPayload(_x8,_x9){return _createExperimentalMetricsPayload.apply(this,arguments);}function _createExperimentalMetricsPayload(){_createExperimentalMetricsPayload=(0,_asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3(interactionId,interaction){var config,ufoName,rate,pageVisibilityState,result;return _regenerator.default.wrap(function _callee3$(_context3){while(1)switch(_context3.prev=_context3.next){case 0:config=(0,_config.getConfig)();if(config){_context3.next=3;break;}throw Error('UFO Configuration not provided');case 3:ufoName=(0,_utils.sanitizeUfoName)(interaction.ufoName);rate=(0,_config.getExperimentalInteractionRate)(ufoName,interaction.type);if((0,_coinflip.default)(rate)){_context3.next=7;break;}return _context3.abrupt("return",null);case 7:pageVisibilityState=(0,_hiddenTiming.getPageVisibilityState)(interaction.start,interaction.end);if(!(pageVisibilityState!=='visible')){_context3.next=10;break;}return _context3.abrupt("return",null);case 10:_context3.next=12;return createInteractionMetricsPayload(interaction,interactionId,true);case 12:result=_context3.sent;return _context3.abrupt("return",result);case 14:case"end":return _context3.stop();}},_callee3);}));return _createExperimentalMetricsPayload.apply(this,arguments);}function createExtraSearchPageInteractionPayload(_x0,_x1){return _createExtraSearchPageInteractionPayload.apply(this,arguments);}function _createExtraSearchPageInteractionPayload(){_createExtraSearchPageInteractionPayload=(0,_asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee4(interactionId,interaction){var SAIN_HOLD_NAMES,NAME_OVERRIDE,SEARCH_PAGE_SMART_ANSWERS_SEGMENT_LABEL,newInteractionId,newEnd,holdInfo,reactProfilerTimings,lastHold,isLastHoldSAIN,lastFilteredTime,filteredReactProfilerTimings,lastTiming,modifiedInteraction,payloads,vcMetrics,interactionMetricsPayload;return _regenerator.default.wrap(function _callee4$(_context4){while(1)switch(_context4.prev=_context4.next){case 0:SAIN_HOLD_NAMES=['search-ai-dialog-visible-text-loading','search-ai-dialog-all-text-loading'];NAME_OVERRIDE='search-page-ignoring-smart-answers';SEARCH_PAGE_SMART_ANSWERS_SEGMENT_LABEL='search-page-smart-answers';newInteractionId="".concat(interactionId,"-ignoring-smart-answers");// Calculate a new end time which excludes SAIN holds
|
|
17
|
+
holdInfo=interaction.holdInfo,reactProfilerTimings=interaction.reactProfilerTimings;lastHold=holdInfo.at(-1);isLastHoldSAIN=Boolean(lastHold&&SAIN_HOLD_NAMES.includes(lastHold.name));// A new end time is only calculated if the last hold is a SAIN hold
|
|
18
|
+
if(isLastHoldSAIN){lastFilteredTime=null;filteredReactProfilerTimings=reactProfilerTimings.filter(function(timing){if(timing.commitTime===lastFilteredTime){return false;}var isTimingSmartAnswersInSearch=timing.labelStack.some(function(label){return label.name===SEARCH_PAGE_SMART_ANSWERS_SEGMENT_LABEL;});if(isTimingSmartAnswersInSearch){lastFilteredTime=timing.commitTime;return false;}return true;});lastTiming=filteredReactProfilerTimings.at(-1);if(lastTiming){newEnd=lastTiming.commitTime;}}modifiedInteraction=_objectSpread(_objectSpread({},interaction),{},{end:newEnd!==null&&newEnd!==void 0?newEnd:interaction.end,holdInfo:[],knownSegments:[],reactProfilerTimings:[],ufoName:NAME_OVERRIDE});payloads=[];_context4.next=12;return(0,_getVcMetrics.default)(interaction,false,true);case 12:vcMetrics=_context4.sent;_context4.next=15;return createInteractionMetricsPayload(modifiedInteraction,newInteractionId,undefined,undefined,vcMetrics);case 15:interactionMetricsPayload=_context4.sent;payloads.push(interactionMetricsPayload);return _context4.abrupt("return",payloads.filter(Boolean));case 18:case"end":return _context4.stop();}},_callee4);}));return _createExtraSearchPageInteractionPayload.apply(this,arguments);}
|