@atlaskit/react-ufo 3.3.1 → 3.3.3
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/create-payload/index.js +106 -163
- package/dist/cjs/create-payload/utils/get-interaction-status.js +37 -0
- package/dist/cjs/create-payload/utils/get-page-visibility-up-to-ttai.js +12 -0
- package/dist/cjs/create-payload/utils/get-ssr-done-time-value.js +14 -0
- package/dist/cjs/create-payload/utils/get-vc-metrics.js +96 -0
- package/dist/cjs/interaction-metrics-init/index.js +11 -9
- package/dist/cjs/vc/index.js +6 -2
- package/dist/cjs/vc/vc-observer-new/get-element-name.js +19 -6
- package/dist/cjs/vc/vc-observer-new/index.js +6 -3
- package/dist/cjs/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +4 -2
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +10 -11
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +23 -30
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +7 -7
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +3 -3
- package/dist/cjs/vc/vc-observer-new/window-event-observer/index.js +5 -1
- package/dist/es2019/create-payload/index.js +14 -73
- package/dist/es2019/create-payload/utils/get-interaction-status.js +31 -0
- package/dist/es2019/create-payload/utils/get-page-visibility-up-to-ttai.js +8 -0
- package/dist/es2019/create-payload/utils/get-ssr-done-time-value.js +5 -0
- package/dist/es2019/create-payload/utils/get-vc-metrics.js +53 -0
- package/dist/es2019/interaction-metrics-init/index.js +11 -9
- package/dist/es2019/vc/index.js +6 -2
- package/dist/es2019/vc/vc-observer-new/get-element-name.js +19 -6
- package/dist/es2019/vc/vc-observer-new/index.js +7 -3
- package/dist/es2019/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +4 -0
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +1 -2
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +15 -12
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +5 -4
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +3 -2
- package/dist/es2019/vc/vc-observer-new/window-event-observer/index.js +5 -1
- package/dist/esm/create-payload/index.js +99 -156
- package/dist/esm/create-payload/utils/get-interaction-status.js +31 -0
- package/dist/esm/create-payload/utils/get-page-visibility-up-to-ttai.js +6 -0
- package/dist/esm/create-payload/utils/get-ssr-done-time-value.js +5 -0
- package/dist/esm/create-payload/utils/get-vc-metrics.js +89 -0
- package/dist/esm/interaction-metrics-init/index.js +11 -9
- package/dist/esm/vc/index.js +6 -2
- package/dist/esm/vc/vc-observer-new/get-element-name.js +19 -6
- package/dist/esm/vc/vc-observer-new/index.js +6 -3
- package/dist/esm/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +4 -2
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +10 -11
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +23 -30
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +7 -7
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +3 -3
- package/dist/esm/vc/vc-observer-new/window-event-observer/index.js +5 -1
- package/dist/types/config/index.d.ts +1 -0
- package/dist/types/create-payload/index.d.ts +1 -1
- package/dist/types/create-payload/utils/get-interaction-status.d.ts +27 -0
- package/dist/types/create-payload/utils/get-page-visibility-up-to-ttai.d.ts +2 -0
- package/dist/types/create-payload/utils/get-ssr-done-time-value.d.ts +2 -0
- package/dist/types/create-payload/utils/get-vc-metrics.d.ts +5 -0
- package/dist/types/vc/vc-observer-new/index.d.ts +3 -2
- package/dist/types/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.d.ts +1 -1
- 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 -1
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.d.ts +2 -1
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/types.d.ts +2 -0
- package/dist/types/vc/vc-observer-new/metric-calculator/types.d.ts +2 -0
- package/dist/types-ts4.5/config/index.d.ts +1 -0
- package/dist/types-ts4.5/create-payload/index.d.ts +1 -1
- package/dist/types-ts4.5/create-payload/utils/get-interaction-status.d.ts +27 -0
- package/dist/types-ts4.5/create-payload/utils/get-page-visibility-up-to-ttai.d.ts +2 -0
- package/dist/types-ts4.5/create-payload/utils/get-ssr-done-time-value.d.ts +2 -0
- package/dist/types-ts4.5/create-payload/utils/get-vc-metrics.d.ts +5 -0
- package/dist/types-ts4.5/vc/vc-observer-new/index.d.ts +3 -2
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.d.ts +1 -1
- 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 -1
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.d.ts +2 -1
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/types.d.ts +2 -0
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/types.d.ts +2 -0
- package/package.json +5 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @atlaskit/ufo-interaction-ignore
|
|
2
2
|
|
|
3
|
+
## 3.3.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#123538](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/123538)
|
|
8
|
+
[`2dd75c16ca0c4`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/2dd75c16ca0c4) -
|
|
9
|
+
fix handling of potentially invalid selectors in TTVC v3
|
|
10
|
+
|
|
11
|
+
## 3.3.2
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- [#122448](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/122448)
|
|
16
|
+
[`e3c0eec530ab2`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/e3c0eec530ab2) -
|
|
17
|
+
do not produce VC info on failed, aborted, or non active tab events
|
|
18
|
+
|
|
3
19
|
## 3.3.1
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
|
@@ -7,12 +7,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.createExperimentalMetricsPayload = createExperimentalMetricsPayload;
|
|
9
9
|
exports.createPayloads = createPayloads;
|
|
10
|
-
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
10
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
12
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
12
13
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
13
14
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
14
15
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
16
16
|
var _bowserUltralight = _interopRequireDefault(require("bowser-ultralight"));
|
|
17
17
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
18
18
|
var _additionalPayload = require("../additional-payload");
|
|
@@ -30,8 +30,11 @@ var _interactionMetrics = require("../interaction-metrics");
|
|
|
30
30
|
var resourceTiming = _interopRequireWildcard(require("../resource-timing"));
|
|
31
31
|
var _roundNumber = require("../round-number");
|
|
32
32
|
var ssr = _interopRequireWildcard(require("../ssr"));
|
|
33
|
-
var _vc = require("../vc");
|
|
34
33
|
var _utils = require("./common/utils");
|
|
34
|
+
var _getInteractionStatus = _interopRequireDefault(require("./utils/get-interaction-status"));
|
|
35
|
+
var _getPageVisibilityUpToTtai = _interopRequireDefault(require("./utils/get-page-visibility-up-to-ttai"));
|
|
36
|
+
var _getSsrDoneTimeValue = _interopRequireDefault(require("./utils/get-ssr-done-time-value"));
|
|
37
|
+
var _getVcMetrics = _interopRequireDefault(require("./utils/get-vc-metrics"));
|
|
35
38
|
var _excluded = ["labelStack", "time"],
|
|
36
39
|
_excluded2 = ["stopTime", "labelStack"],
|
|
37
40
|
_excluded3 = ["labelStack"],
|
|
@@ -86,11 +89,6 @@ var getPageVisibilityUpToTTI = function getPageVisibilityUpToTTI(interaction) {
|
|
|
86
89
|
var bm3EndTimeOrInteractionEndTime = getBm3EndTimeOrFallbackValue(interaction);
|
|
87
90
|
return (0, _hiddenTiming.getPageVisibilityState)(start, bm3EndTimeOrInteractionEndTime);
|
|
88
91
|
};
|
|
89
|
-
var getPageVisibilityUpToTTAI = function getPageVisibilityUpToTTAI(interaction) {
|
|
90
|
-
var start = interaction.start,
|
|
91
|
-
end = interaction.end;
|
|
92
|
-
return (0, _hiddenTiming.getPageVisibilityState)(start, end);
|
|
93
|
-
};
|
|
94
92
|
var getVisibilityStateFromPerformance = function getVisibilityStateFromPerformance(stop) {
|
|
95
93
|
try {
|
|
96
94
|
var results = performance.getEntriesByType('visibility-state');
|
|
@@ -136,7 +134,7 @@ var getMoreAccuratePageVisibilityUpToTTI = function getMoreAccuratePageVisibilit
|
|
|
136
134
|
return old;
|
|
137
135
|
};
|
|
138
136
|
var getMoreAccuratePageVisibilityUpToTTAI = function getMoreAccuratePageVisibilityUpToTTAI(interaction) {
|
|
139
|
-
var old =
|
|
137
|
+
var old = (0, _getPageVisibilityUpToTtai.default)(interaction);
|
|
140
138
|
var buffered = getVisibilityStateFromPerformance(interaction.end);
|
|
141
139
|
if (!buffered) {
|
|
142
140
|
return old;
|
|
@@ -146,15 +144,6 @@ var getMoreAccuratePageVisibilityUpToTTAI = function getMoreAccuratePageVisibili
|
|
|
146
144
|
}
|
|
147
145
|
return old;
|
|
148
146
|
};
|
|
149
|
-
var getInteractionStatus = function getInteractionStatus(interaction) {
|
|
150
|
-
var originalInteractionStatus = interaction.abortReason ? 'ABORTED' : 'SUCCEEDED';
|
|
151
|
-
var hasBm3TTI = interaction.apdex.length > 0;
|
|
152
|
-
var overrideStatus = hasBm3TTI ? 'SUCCEEDED' : originalInteractionStatus;
|
|
153
|
-
return {
|
|
154
|
-
originalInteractionStatus: originalInteractionStatus,
|
|
155
|
-
overrideStatus: overrideStatus
|
|
156
|
-
};
|
|
157
|
-
};
|
|
158
147
|
var getResourceTimings = function getResourceTimings(start, end) {
|
|
159
148
|
var _resourceTiming$getRe;
|
|
160
149
|
return (_resourceTiming$getRe = resourceTiming.getResourceTimings(start, end)) !== null && _resourceTiming$getRe !== void 0 ? _resourceTiming$getRe : undefined;
|
|
@@ -186,79 +175,9 @@ var getPaintMetrics = function getPaintMetrics(type) {
|
|
|
186
175
|
var getTTAI = function getTTAI(interaction) {
|
|
187
176
|
var start = interaction.start,
|
|
188
177
|
end = interaction.end;
|
|
189
|
-
var pageVisibilityUpToTTAI =
|
|
178
|
+
var pageVisibilityUpToTTAI = (0, _getPageVisibilityUpToTtai.default)(interaction);
|
|
190
179
|
return !interaction.abortReason && pageVisibilityUpToTTAI === 'visible' ? Math.round(end - start) : undefined;
|
|
191
180
|
};
|
|
192
|
-
var getVCMetrics = /*#__PURE__*/function () {
|
|
193
|
-
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(interaction) {
|
|
194
|
-
var _config$vc, _config$vc$ssrWhiteli, _interaction$apdex, _config$experimentalI;
|
|
195
|
-
var config, isSSREnabled, ssr, tti, prefix, interactionStatus, pageVisibilityUpToTTAI, result, VC;
|
|
196
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
197
|
-
while (1) switch (_context.prev = _context.next) {
|
|
198
|
-
case 0:
|
|
199
|
-
config = (0, _config.getConfig)();
|
|
200
|
-
if (config !== null && config !== void 0 && (_config$vc = config.vc) !== null && _config$vc !== void 0 && _config$vc.enabled) {
|
|
201
|
-
_context.next = 3;
|
|
202
|
-
break;
|
|
203
|
-
}
|
|
204
|
-
return _context.abrupt("return", {});
|
|
205
|
-
case 3:
|
|
206
|
-
if (!(interaction.type !== 'page_load' && interaction.type !== 'transition')) {
|
|
207
|
-
_context.next = 5;
|
|
208
|
-
break;
|
|
209
|
-
}
|
|
210
|
-
return _context.abrupt("return", {});
|
|
211
|
-
case 5:
|
|
212
|
-
isSSREnabled = (config === null || config === void 0 ? void 0 : config.ssr) || (config === null || config === void 0 || (_config$vc$ssrWhiteli = config.vc.ssrWhitelist) === null || _config$vc$ssrWhiteli === void 0 ? void 0 : _config$vc$ssrWhiteli.includes(interaction.ufoName));
|
|
213
|
-
ssr = interaction.type === 'page_load' && isSSREnabled ? {
|
|
214
|
-
ssr: getSSRDoneTimeValue(config)
|
|
215
|
-
} : null;
|
|
216
|
-
_interactionMetrics.postInteractionLog.setVCObserverSSRConfig(ssr);
|
|
217
|
-
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;
|
|
218
|
-
prefix = 'ufo';
|
|
219
|
-
interactionStatus = getInteractionStatus(interaction);
|
|
220
|
-
pageVisibilityUpToTTAI = getPageVisibilityUpToTTAI(interaction);
|
|
221
|
-
_context.next = 14;
|
|
222
|
-
return (0, _vc.getVCObserver)().getVCResult(_objectSpread({
|
|
223
|
-
start: interaction.start,
|
|
224
|
-
stop: interaction.end,
|
|
225
|
-
tti: tti,
|
|
226
|
-
prefix: prefix,
|
|
227
|
-
vc: interaction.vc,
|
|
228
|
-
isEventAborted: interactionStatus.originalInteractionStatus !== 'SUCCEEDED'
|
|
229
|
-
}, ssr));
|
|
230
|
-
case 14:
|
|
231
|
-
result = _context.sent;
|
|
232
|
-
if ((_config$experimentalI = config.experimentalInteractionMetrics) !== null && _config$experimentalI !== void 0 && _config$experimentalI.enabled) {
|
|
233
|
-
(0, _vc.getVCObserver)().stop();
|
|
234
|
-
}
|
|
235
|
-
_interactionMetrics.postInteractionLog.setLastInteractionFinishVCResult(result);
|
|
236
|
-
VC = result === null || result === void 0 ? void 0 : result['metrics:vc'];
|
|
237
|
-
if (!(!VC || !(result !== null && result !== void 0 && result["".concat(prefix, ":vc:clean")]))) {
|
|
238
|
-
_context.next = 20;
|
|
239
|
-
break;
|
|
240
|
-
}
|
|
241
|
-
return _context.abrupt("return", result);
|
|
242
|
-
case 20:
|
|
243
|
-
if (!(interactionStatus.originalInteractionStatus !== 'SUCCEEDED' || pageVisibilityUpToTTAI !== 'visible')) {
|
|
244
|
-
_context.next = 22;
|
|
245
|
-
break;
|
|
246
|
-
}
|
|
247
|
-
return _context.abrupt("return", result);
|
|
248
|
-
case 22:
|
|
249
|
-
return _context.abrupt("return", _objectSpread(_objectSpread({}, result), {}, {
|
|
250
|
-
'metric:vc90': VC['90']
|
|
251
|
-
}));
|
|
252
|
-
case 23:
|
|
253
|
-
case "end":
|
|
254
|
-
return _context.stop();
|
|
255
|
-
}
|
|
256
|
-
}, _callee);
|
|
257
|
-
}));
|
|
258
|
-
return function getVCMetrics(_x) {
|
|
259
|
-
return _ref2.apply(this, arguments);
|
|
260
|
-
};
|
|
261
|
-
}();
|
|
262
181
|
var getNavigationMetrics = function getNavigationMetrics(type) {
|
|
263
182
|
if (type !== 'page_load') {
|
|
264
183
|
return {};
|
|
@@ -306,13 +225,13 @@ var getNavigationMetrics = function getNavigationMetrics(type) {
|
|
|
306
225
|
};
|
|
307
226
|
};
|
|
308
227
|
var getPPSMetrics = function getPPSMetrics(interaction) {
|
|
309
|
-
var _interaction$
|
|
228
|
+
var _interaction$apdex;
|
|
310
229
|
var start = interaction.start,
|
|
311
230
|
end = interaction.end;
|
|
312
231
|
var config = (0, _config.getConfig)();
|
|
313
|
-
var interactionStatus =
|
|
314
|
-
var pageVisibilityUpToTTAI =
|
|
315
|
-
var tti = (_interaction$
|
|
232
|
+
var interactionStatus = (0, _getInteractionStatus.default)(interaction);
|
|
233
|
+
var pageVisibilityUpToTTAI = (0, _getPageVisibilityUpToTtai.default)(interaction);
|
|
234
|
+
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;
|
|
316
235
|
var ttai = interactionStatus.originalInteractionStatus === 'SUCCEEDED' && pageVisibilityUpToTTAI === 'visible' ? Math.round(end - start) : undefined;
|
|
317
236
|
var PPSMetricsAtTTI = tti !== undefined ? (0, _additionalPayload.getLighthouseMetrics)({
|
|
318
237
|
start: start,
|
|
@@ -408,10 +327,10 @@ var getTracingContextData = function getTracingContextData(interaction) {
|
|
|
408
327
|
function optimizeCustomData(interaction) {
|
|
409
328
|
var customData = interaction.customData,
|
|
410
329
|
legacyMetrics = interaction.legacyMetrics;
|
|
411
|
-
var customDataMap = customData.reduce(function (result,
|
|
330
|
+
var customDataMap = customData.reduce(function (result, _ref2) {
|
|
412
331
|
var _result$get$data, _result$get;
|
|
413
|
-
var labelStack =
|
|
414
|
-
data =
|
|
332
|
+
var labelStack = _ref2.labelStack,
|
|
333
|
+
data = _ref2.data;
|
|
415
334
|
var label = (0, _utils.stringifyLabelStackFully)(labelStack);
|
|
416
335
|
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 : {};
|
|
417
336
|
result.set(label, {
|
|
@@ -427,13 +346,13 @@ function optimizeCustomData(interaction) {
|
|
|
427
346
|
for (var _i = 0, _Object$entries = Object.entries(currentValue.custom || {}); _i < _Object$entries.length; _i++) {
|
|
428
347
|
var _result$get$data2, _result$get2;
|
|
429
348
|
var _Object$entries$_i = (0, _slicedToArray2.default)(_Object$entries[_i], 2),
|
|
430
|
-
|
|
349
|
+
key = _Object$entries$_i[0],
|
|
431
350
|
value = _Object$entries$_i[1];
|
|
432
351
|
var label = (0, _utils.stringifyLabelStackFully)([]);
|
|
433
352
|
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 : {};
|
|
434
353
|
result.set(label, {
|
|
435
354
|
labelStack: (0, _utils.optimizeLabelStack)([], (0, _constants.getReactUFOVersion)(interaction.type)),
|
|
436
|
-
data: Object.assign(labelValue, (0, _defineProperty2.default)({},
|
|
355
|
+
data: Object.assign(labelValue, (0, _defineProperty2.default)({}, key, value))
|
|
437
356
|
});
|
|
438
357
|
}
|
|
439
358
|
return result;
|
|
@@ -443,12 +362,12 @@ function optimizeCustomData(interaction) {
|
|
|
443
362
|
return (0, _toConsumableArray2.default)(customDataMap.values());
|
|
444
363
|
}
|
|
445
364
|
function optimizeReactProfilerTimings(reactProfilerTimings, interactionStart, reactUFOVersion) {
|
|
446
|
-
var reactProfilerTimingsMap = reactProfilerTimings.reduce(function (result,
|
|
447
|
-
var labelStack =
|
|
448
|
-
startTime =
|
|
449
|
-
commitTime =
|
|
450
|
-
actualDuration =
|
|
451
|
-
type =
|
|
365
|
+
var reactProfilerTimingsMap = reactProfilerTimings.reduce(function (result, _ref3) {
|
|
366
|
+
var labelStack = _ref3.labelStack,
|
|
367
|
+
startTime = _ref3.startTime,
|
|
368
|
+
commitTime = _ref3.commitTime,
|
|
369
|
+
actualDuration = _ref3.actualDuration,
|
|
370
|
+
type = _ref3.type;
|
|
452
371
|
if (labelStack && startTime >= interactionStart) {
|
|
453
372
|
var label = (0, _utils.stringifyLabelStackFully)(labelStack);
|
|
454
373
|
var start = Math.round(startTime);
|
|
@@ -594,10 +513,10 @@ function optimizeCustomTimings(customTimings, interactionStart) {
|
|
|
594
513
|
}, []);
|
|
595
514
|
}
|
|
596
515
|
function optimizeMarks(marks, reactUFOVersion) {
|
|
597
|
-
return marks.map(function (
|
|
598
|
-
var labelStack =
|
|
599
|
-
time =
|
|
600
|
-
others = (0, _objectWithoutProperties2.default)(
|
|
516
|
+
return marks.map(function (_ref4) {
|
|
517
|
+
var labelStack = _ref4.labelStack,
|
|
518
|
+
time = _ref4.time,
|
|
519
|
+
others = (0, _objectWithoutProperties2.default)(_ref4, _excluded);
|
|
601
520
|
return _objectSpread(_objectSpread({}, others), {}, {
|
|
602
521
|
labelStack: labelStack && (0, _utils.optimizeLabelStack)(labelStack, reactUFOVersion),
|
|
603
522
|
time: Math.round(time)
|
|
@@ -605,10 +524,10 @@ function optimizeMarks(marks, reactUFOVersion) {
|
|
|
605
524
|
});
|
|
606
525
|
}
|
|
607
526
|
function optimizeApdex(apdex, reactUFOVersion) {
|
|
608
|
-
return apdex.map(function (
|
|
609
|
-
var stopTime =
|
|
610
|
-
labelStack =
|
|
611
|
-
others = (0, _objectWithoutProperties2.default)(
|
|
527
|
+
return apdex.map(function (_ref5) {
|
|
528
|
+
var stopTime = _ref5.stopTime,
|
|
529
|
+
labelStack = _ref5.labelStack,
|
|
530
|
+
others = (0, _objectWithoutProperties2.default)(_ref5, _excluded2);
|
|
612
531
|
return _objectSpread(_objectSpread({}, others), {}, {
|
|
613
532
|
stopTime: Math.round(stopTime)
|
|
614
533
|
}, labelStack ? {
|
|
@@ -671,10 +590,6 @@ function getBm3TrackerTimings(interaction) {
|
|
|
671
590
|
legacyMetrics: legacyMetrics
|
|
672
591
|
};
|
|
673
592
|
}
|
|
674
|
-
function getSSRDoneTimeValue(config) {
|
|
675
|
-
var _config$ssr, _config$ssr2;
|
|
676
|
-
return config !== null && config !== void 0 && (_config$ssr = config.ssr) !== null && _config$ssr !== void 0 && _config$ssr.getSSRDoneTime ? config === null || config === void 0 || (_config$ssr2 = config.ssr) === null || _config$ssr2 === void 0 ? void 0 : _config$ssr2.getSSRDoneTime() : ssr.getSSRDoneTime();
|
|
677
|
-
}
|
|
678
593
|
function getPayloadSize(payload) {
|
|
679
594
|
return Math.round(new TextEncoder().encode(JSON.stringify(payload)).length / 1024);
|
|
680
595
|
}
|
|
@@ -726,27 +641,27 @@ function getErrorCounts(interaction) {
|
|
|
726
641
|
'ufo:errors:count': interaction.errors.length
|
|
727
642
|
};
|
|
728
643
|
}
|
|
729
|
-
function createInteractionMetricsPayload(_x2, _x3
|
|
644
|
+
function createInteractionMetricsPayload(_x, _x2, _x3) {
|
|
730
645
|
return _createInteractionMetricsPayload.apply(this, arguments);
|
|
731
646
|
}
|
|
732
647
|
function _createInteractionMetricsPayload() {
|
|
733
|
-
_createInteractionMetricsPayload = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
648
|
+
_createInteractionMetricsPayload = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(interaction, interactionId, experimental) {
|
|
734
649
|
var _window$location, _config$additionalPay;
|
|
735
650
|
var interactionPayloadStart, config, end, start, ufoName, knownSegments, rate, type, abortReason, routeName, featureFlags, previousInteractionName, isPreviousInteractionAborted, abortedByInteractionName, pageVisibilityAtTTI, pageVisibilityAtTTAI, segments, segmentTree, isDetailedPayload, isPageLoad, calculatePageVisibilityFromTheStartOfPageLoad, moreAccuratePageVisibilityAtTTI, moreAccuratePageVisibilityAtTTAI, labelStack, getPageLoadInteractionMetrics, getDetailedInteractionMetrics, getPageLoadDetailedInteractionMetrics, newUFOName, resourceTimings, _yield$Promise$all, _yield$Promise$all2, vcMetrics, experimentalMetrics, payload;
|
|
736
|
-
return _regenerator.default.wrap(function
|
|
737
|
-
while (1) switch (
|
|
651
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
652
|
+
while (1) switch (_context.prev = _context.next) {
|
|
738
653
|
case 0:
|
|
739
654
|
interactionPayloadStart = performance.now();
|
|
740
655
|
config = (0, _config.getConfig)();
|
|
741
656
|
if (config) {
|
|
742
|
-
|
|
657
|
+
_context.next = 4;
|
|
743
658
|
break;
|
|
744
659
|
}
|
|
745
660
|
throw Error('UFO Configuration not provided');
|
|
746
661
|
case 4:
|
|
747
662
|
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;
|
|
748
663
|
pageVisibilityAtTTI = getPageVisibilityUpToTTI(interaction);
|
|
749
|
-
pageVisibilityAtTTAI =
|
|
664
|
+
pageVisibilityAtTTAI = (0, _getPageVisibilityUpToTtai.default)(interaction);
|
|
750
665
|
segments = config.killswitchNestedSegments ? [] : knownSegments;
|
|
751
666
|
segmentTree = (0, _constants.getReactUFOVersion)(interaction.type) === '2.0.0' ? (0, _utils.buildSegmentTree)(segments.map(function (segment) {
|
|
752
667
|
return segment.labelStack;
|
|
@@ -760,18 +675,18 @@ function _createInteractionMetricsPayload() {
|
|
|
760
675
|
labelStack: (0, _utils.optimizeLabelStack)(interaction.labelStack, (0, _constants.getReactUFOVersion)(interaction.type))
|
|
761
676
|
} : {}; // Page Load
|
|
762
677
|
getPageLoadInteractionMetrics = function getPageLoadInteractionMetrics() {
|
|
763
|
-
var _config$
|
|
678
|
+
var _config$ssr;
|
|
764
679
|
if (!isPageLoad) {
|
|
765
680
|
return {};
|
|
766
681
|
}
|
|
767
682
|
var config = (0, _config.getConfig)();
|
|
768
|
-
var SSRDoneTimeValue =
|
|
683
|
+
var SSRDoneTimeValue = (0, _getSsrDoneTimeValue.default)(config);
|
|
769
684
|
var SSRDoneTime = SSRDoneTimeValue !== undefined ? {
|
|
770
685
|
SSRDoneTime: Math.round(SSRDoneTimeValue)
|
|
771
686
|
} : {};
|
|
772
687
|
return _objectSpread(_objectSpread({}, SSRDoneTime), {}, {
|
|
773
688
|
isBM3ConfigSSRDoneAsFmp: interaction.metaData.__legacy__bm3ConfigSSRDoneAsFmp,
|
|
774
|
-
isUFOConfigSSRDoneAsFmp: interaction.metaData.__legacy__bm3ConfigSSRDoneAsFmp || !!(config !== null && config !== void 0 && (_config$
|
|
689
|
+
isUFOConfigSSRDoneAsFmp: interaction.metaData.__legacy__bm3ConfigSSRDoneAsFmp || !!(config !== null && config !== void 0 && (_config$ssr = config.ssr) !== null && _config$ssr !== void 0 && _config$ssr.getSSRDoneTime)
|
|
775
690
|
});
|
|
776
691
|
}; // Detailed payload. Page visibility = visible
|
|
777
692
|
getDetailedInteractionMetrics = function getDetailedInteractionMetrics(resourceTimings) {
|
|
@@ -781,9 +696,9 @@ function _createInteractionMetricsPayload() {
|
|
|
781
696
|
var spans = [].concat((0, _toConsumableArray2.default)(interaction.spans), (0, _toConsumableArray2.default)(_interactionMetrics.interactionSpans));
|
|
782
697
|
_interactionMetrics.interactionSpans.length = 0;
|
|
783
698
|
return {
|
|
784
|
-
errors: interaction.errors.map(function (
|
|
785
|
-
var labelStack =
|
|
786
|
-
others = (0, _objectWithoutProperties2.default)(
|
|
699
|
+
errors: interaction.errors.map(function (_ref6) {
|
|
700
|
+
var labelStack = _ref6.labelStack,
|
|
701
|
+
others = (0, _objectWithoutProperties2.default)(_ref6, _excluded3);
|
|
787
702
|
return _objectSpread(_objectSpread({}, others), {}, {
|
|
788
703
|
labelStack: labelStack && (0, _utils.optimizeLabelStack)(labelStack, (0, _constants.getReactUFOVersion)(interaction.type))
|
|
789
704
|
});
|
|
@@ -799,14 +714,14 @@ function _createInteractionMetricsPayload() {
|
|
|
799
714
|
};
|
|
800
715
|
}; // Page load & detailed payload
|
|
801
716
|
getPageLoadDetailedInteractionMetrics = function getPageLoadDetailedInteractionMetrics() {
|
|
802
|
-
var _config$
|
|
717
|
+
var _config$ssr2;
|
|
803
718
|
if (!isPageLoad || !isDetailedPayload) {
|
|
804
719
|
return {};
|
|
805
720
|
}
|
|
806
721
|
var config = (0, _config.getConfig)();
|
|
807
722
|
return {
|
|
808
723
|
initialPageLoadExtraTimings: objectToArray(initialPageLoadExtraTiming.getTimings()),
|
|
809
|
-
SSRTimings: config !== null && config !== void 0 && (_config$
|
|
724
|
+
SSRTimings: config !== null && config !== void 0 && (_config$ssr2 = config.ssr) !== null && _config$ssr2 !== void 0 && _config$ssr2.getSSRTimings ? config.ssr.getSSRTimings() : objectToArray(ssr.getSSRTimings())
|
|
810
725
|
};
|
|
811
726
|
};
|
|
812
727
|
if (experimental) {
|
|
@@ -816,10 +731,10 @@ function _createInteractionMetricsPayload() {
|
|
|
816
731
|
}
|
|
817
732
|
newUFOName = (0, _utils.sanitizeUfoName)(ufoName);
|
|
818
733
|
resourceTimings = getResourceTimings(start, end);
|
|
819
|
-
|
|
820
|
-
return Promise.all([
|
|
734
|
+
_context.next = 23;
|
|
735
|
+
return Promise.all([(0, _getVcMetrics.default)(interaction), experimental ? (0, _createExperimentalInteractionMetricsPayload.getExperimentalVCMetrics)(interaction) : Promise.resolve(undefined)]);
|
|
821
736
|
case 23:
|
|
822
|
-
_yield$Promise$all =
|
|
737
|
+
_yield$Promise$all = _context.sent;
|
|
823
738
|
_yield$Promise$all2 = (0, _slicedToArray2.default)(_yield$Promise$all, 2);
|
|
824
739
|
vcMetrics = _yield$Promise$all2[0];
|
|
825
740
|
experimentalMetrics = _yield$Promise$all2[1];
|
|
@@ -865,9 +780,9 @@ function _createInteractionMetricsPayload() {
|
|
|
865
780
|
apdex: optimizeApdex(interaction.apdex, (0, _constants.getReactUFOVersion)(interaction.type)),
|
|
866
781
|
end: Math.round(end),
|
|
867
782
|
start: Math.round(start),
|
|
868
|
-
segments: (0, _constants.getReactUFOVersion)(interaction.type) === '2.0.0' ? segmentTree : segments.map(function (
|
|
869
|
-
var labelStack =
|
|
870
|
-
others = (0, _objectWithoutProperties2.default)(
|
|
783
|
+
segments: (0, _constants.getReactUFOVersion)(interaction.type) === '2.0.0' ? segmentTree : segments.map(function (_ref7) {
|
|
784
|
+
var labelStack = _ref7.labelStack,
|
|
785
|
+
others = (0, _objectWithoutProperties2.default)(_ref7, _excluded4);
|
|
871
786
|
return _objectSpread(_objectSpread({}, others), {}, {
|
|
872
787
|
labelStack: (0, _utils.optimizeLabelStack)(labelStack, (0, _constants.getReactUFOVersion)(interaction.type))
|
|
873
788
|
});
|
|
@@ -888,54 +803,82 @@ function _createInteractionMetricsPayload() {
|
|
|
888
803
|
expTTAI = undefined;
|
|
889
804
|
}
|
|
890
805
|
payload.attributes.properties['event:sizeInKb'] = getPayloadSize(payload.attributes.properties);
|
|
891
|
-
return
|
|
806
|
+
return _context.abrupt("return", payload);
|
|
892
807
|
case 31:
|
|
893
808
|
case "end":
|
|
894
|
-
return
|
|
809
|
+
return _context.stop();
|
|
895
810
|
}
|
|
896
|
-
},
|
|
811
|
+
}, _callee);
|
|
897
812
|
}));
|
|
898
813
|
return _createInteractionMetricsPayload.apply(this, arguments);
|
|
899
814
|
}
|
|
900
|
-
function createPayloads(
|
|
815
|
+
function createPayloads(_x4, _x5) {
|
|
901
816
|
return _createPayloads.apply(this, arguments);
|
|
902
817
|
}
|
|
903
818
|
function _createPayloads() {
|
|
904
|
-
_createPayloads = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
819
|
+
_createPayloads = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(interactionId, interaction) {
|
|
905
820
|
var ufoNameOverride, modifiedInteraction, interactionMetricsPayload;
|
|
906
|
-
return _regenerator.default.wrap(function
|
|
907
|
-
while (1) switch (
|
|
821
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
822
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
908
823
|
case 0:
|
|
909
824
|
ufoNameOverride = getUfoNameOverride(interaction);
|
|
910
825
|
modifiedInteraction = _objectSpread(_objectSpread({}, interaction), {}, {
|
|
911
826
|
ufoName: ufoNameOverride
|
|
912
827
|
});
|
|
913
|
-
|
|
828
|
+
_context2.next = 4;
|
|
914
829
|
return createInteractionMetricsPayload(modifiedInteraction, interactionId);
|
|
915
830
|
case 4:
|
|
916
|
-
interactionMetricsPayload =
|
|
917
|
-
return
|
|
831
|
+
interactionMetricsPayload = _context2.sent;
|
|
832
|
+
return _context2.abrupt("return", [interactionMetricsPayload]);
|
|
918
833
|
case 6:
|
|
919
834
|
case "end":
|
|
920
|
-
return
|
|
835
|
+
return _context2.stop();
|
|
921
836
|
}
|
|
922
|
-
},
|
|
837
|
+
}, _callee2);
|
|
923
838
|
}));
|
|
924
839
|
return _createPayloads.apply(this, arguments);
|
|
925
840
|
}
|
|
926
|
-
function createExperimentalMetricsPayload(
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
841
|
+
function createExperimentalMetricsPayload(_x6, _x7) {
|
|
842
|
+
return _createExperimentalMetricsPayload.apply(this, arguments);
|
|
843
|
+
}
|
|
844
|
+
function _createExperimentalMetricsPayload() {
|
|
845
|
+
_createExperimentalMetricsPayload = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(interactionId, interaction) {
|
|
846
|
+
var config, ufoName, rate, pageVisibilityState, result;
|
|
847
|
+
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
848
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
849
|
+
case 0:
|
|
850
|
+
config = (0, _config.getConfig)();
|
|
851
|
+
if (config) {
|
|
852
|
+
_context3.next = 3;
|
|
853
|
+
break;
|
|
854
|
+
}
|
|
855
|
+
throw Error('UFO Configuration not provided');
|
|
856
|
+
case 3:
|
|
857
|
+
ufoName = (0, _utils.sanitizeUfoName)(interaction.ufoName);
|
|
858
|
+
rate = (0, _config.getExperimentalInteractionRate)(ufoName, interaction.type);
|
|
859
|
+
if ((0, _coinflip.default)(rate)) {
|
|
860
|
+
_context3.next = 7;
|
|
861
|
+
break;
|
|
862
|
+
}
|
|
863
|
+
return _context3.abrupt("return", null);
|
|
864
|
+
case 7:
|
|
865
|
+
pageVisibilityState = (0, _hiddenTiming.getPageVisibilityState)(interaction.start, interaction.end);
|
|
866
|
+
if (!(pageVisibilityState !== 'visible')) {
|
|
867
|
+
_context3.next = 10;
|
|
868
|
+
break;
|
|
869
|
+
}
|
|
870
|
+
return _context3.abrupt("return", null);
|
|
871
|
+
case 10:
|
|
872
|
+
_context3.next = 12;
|
|
873
|
+
return createInteractionMetricsPayload(interaction, interactionId, true);
|
|
874
|
+
case 12:
|
|
875
|
+
result = _context3.sent;
|
|
876
|
+
return _context3.abrupt("return", result);
|
|
877
|
+
case 14:
|
|
878
|
+
case "end":
|
|
879
|
+
return _context3.stop();
|
|
880
|
+
}
|
|
881
|
+
}, _callee3);
|
|
882
|
+
}));
|
|
883
|
+
return _createExperimentalMetricsPayload.apply(this, arguments);
|
|
941
884
|
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = getInteractionStatus;
|
|
7
|
+
/**
|
|
8
|
+
* Determines the interaction status based on abort reason and BM3 TTI presence.
|
|
9
|
+
*
|
|
10
|
+
* @param {InteractionMetrics} interaction - The interaction metrics object containing abort reason and apdex data
|
|
11
|
+
* @returns {{
|
|
12
|
+
* originalInteractionStatus: 'ABORTED' | 'SUCCEEDED',
|
|
13
|
+
* overrideStatus: 'ABORTED' | 'SUCCEEDED'
|
|
14
|
+
* }} An object containing both the original and override status
|
|
15
|
+
*
|
|
16
|
+
* @description
|
|
17
|
+
* This function evaluates the interaction status in two ways:
|
|
18
|
+
* 1. originalInteractionStatus: Based on whether there's an abort reason
|
|
19
|
+
* 2. overrideStatus: Based on the presence of BM3 TTI (apdex data)
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* const interaction = {
|
|
23
|
+
* abortReason: null,
|
|
24
|
+
* apdex: [1, 2, 3]
|
|
25
|
+
* };
|
|
26
|
+
* const result = getInteractionStatus(interaction);
|
|
27
|
+
* // Returns: { originalInteractionStatus: 'SUCCEEDED', overrideStatus: 'SUCCEEDED' }
|
|
28
|
+
*/
|
|
29
|
+
function getInteractionStatus(interaction) {
|
|
30
|
+
var originalInteractionStatus = interaction.abortReason ? 'ABORTED' : 'SUCCEEDED';
|
|
31
|
+
var hasBm3TTI = interaction.apdex.length > 0;
|
|
32
|
+
var overrideStatus = hasBm3TTI ? 'SUCCEEDED' : originalInteractionStatus;
|
|
33
|
+
return {
|
|
34
|
+
originalInteractionStatus: originalInteractionStatus,
|
|
35
|
+
overrideStatus: overrideStatus
|
|
36
|
+
};
|
|
37
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = getPageVisibilityUpToTTAI;
|
|
7
|
+
var _hiddenTiming = require("../../hidden-timing");
|
|
8
|
+
function getPageVisibilityUpToTTAI(interaction) {
|
|
9
|
+
var start = interaction.start,
|
|
10
|
+
end = interaction.end;
|
|
11
|
+
return (0, _hiddenTiming.getPageVisibilityState)(start, end);
|
|
12
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = getSSRDoneTimeValue;
|
|
8
|
+
var ssr = _interopRequireWildcard(require("../../ssr"));
|
|
9
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
10
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
11
|
+
function getSSRDoneTimeValue(config) {
|
|
12
|
+
var _config$ssr, _config$ssr2;
|
|
13
|
+
return config !== null && config !== void 0 && (_config$ssr = config.ssr) !== null && _config$ssr !== void 0 && _config$ssr.getSSRDoneTime ? config === null || config === void 0 || (_config$ssr2 = config.ssr) === null || _config$ssr2 === void 0 ? void 0 : _config$ssr2.getSSRDoneTime() : ssr.getSSRDoneTime();
|
|
14
|
+
}
|