@atlaskit/react-ufo 2.11.0 → 2.12.1
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 +20 -0
- package/create-experimental-interaction-metrics-payload/package.json +15 -0
- package/dist/cjs/config/index.js +42 -20
- package/dist/cjs/create-experimental-interaction-metrics-payload/index.js +114 -0
- package/dist/cjs/create-payload/index.js +51 -10
- package/dist/cjs/interaction-metrics/common/constants.js +2 -3
- package/dist/cjs/interaction-metrics/index.js +130 -55
- package/dist/cjs/interaction-metrics/post-interaction-log.js +20 -10
- package/dist/cjs/interaction-metrics-init/index.js +28 -7
- package/dist/cjs/load-hold/UFOLoadHold.js +5 -3
- package/dist/cjs/segment/segment.js +9 -8
- package/dist/cjs/vc/vc-observer/index.js +1 -1
- package/dist/es2019/config/index.js +22 -0
- package/dist/es2019/create-experimental-interaction-metrics-payload/index.js +85 -0
- package/dist/es2019/create-payload/index.js +50 -8
- package/dist/es2019/interaction-metrics/common/constants.js +1 -2
- package/dist/es2019/interaction-metrics/index.js +109 -28
- package/dist/es2019/interaction-metrics/post-interaction-log.js +21 -11
- package/dist/es2019/interaction-metrics-init/index.js +26 -7
- package/dist/es2019/load-hold/UFOLoadHold.js +5 -3
- package/dist/es2019/segment/segment.js +8 -11
- package/dist/es2019/vc/vc-observer/index.js +1 -0
- package/dist/esm/config/index.js +41 -20
- package/dist/esm/create-experimental-interaction-metrics-payload/index.js +104 -0
- package/dist/esm/create-payload/index.js +51 -11
- package/dist/esm/interaction-metrics/common/constants.js +1 -2
- package/dist/esm/interaction-metrics/index.js +102 -27
- package/dist/esm/interaction-metrics/post-interaction-log.js +20 -10
- package/dist/esm/interaction-metrics-init/index.js +26 -7
- package/dist/esm/load-hold/UFOLoadHold.js +5 -3
- package/dist/esm/segment/segment.js +9 -8
- package/dist/esm/vc/vc-observer/index.js +1 -1
- package/dist/types/common/common/types.d.ts +6 -4
- package/dist/types/config/index.d.ts +6 -0
- package/dist/types/create-experimental-interaction-metrics-payload/index.d.ts +16 -0
- package/dist/types/create-payload/index.d.ts +5922 -0
- package/dist/types/interaction-context/index.d.ts +1 -0
- package/dist/types/interaction-metrics/common/constants.d.ts +1 -2
- package/dist/types/interaction-metrics/index.d.ts +1 -1
- package/dist/types/load-hold/UFOLoadHold.d.ts +1 -2
- package/dist/types-ts4.5/common/common/types.d.ts +6 -4
- package/dist/types-ts4.5/config/index.d.ts +6 -0
- package/dist/types-ts4.5/create-experimental-interaction-metrics-payload/index.d.ts +16 -0
- package/dist/types-ts4.5/create-payload/index.d.ts +5922 -0
- package/dist/types-ts4.5/interaction-context/index.d.ts +1 -0
- package/dist/types-ts4.5/interaction-metrics/common/constants.d.ts +1 -2
- package/dist/types-ts4.5/interaction-metrics/index.d.ts +1 -1
- package/dist/types-ts4.5/load-hold/UFOLoadHold.d.ts +1 -2
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# @atlaskit/ufo-interaction-ignore
|
|
2
2
|
|
|
3
|
+
## 2.12.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#105652](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/105652)
|
|
8
|
+
[`6b7f41a93ff25`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/6b7f41a93ff25) -
|
|
9
|
+
add ufo:vc:next:entries to payload
|
|
10
|
+
|
|
11
|
+
## 2.12.0
|
|
12
|
+
|
|
13
|
+
### Minor Changes
|
|
14
|
+
|
|
15
|
+
- [#99207](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/99207)
|
|
16
|
+
[`59963df2ae2f3`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/59963df2ae2f3) -
|
|
17
|
+
Experimental UFO holds
|
|
18
|
+
|
|
19
|
+
### Patch Changes
|
|
20
|
+
|
|
21
|
+
- Updated dependencies
|
|
22
|
+
|
|
3
23
|
## 2.11.0
|
|
4
24
|
|
|
5
25
|
### Minor Changes
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@atlaskit/react-ufo/create-experimental-interaction-metrics-payload",
|
|
3
|
+
"main": "../dist/cjs/create-experimental-interaction-metrics-payload/index.js",
|
|
4
|
+
"module": "../dist/esm/create-experimental-interaction-metrics-payload/index.js",
|
|
5
|
+
"module:es2019": "../dist/es2019/create-experimental-interaction-metrics-payload/index.js",
|
|
6
|
+
"sideEffects": false,
|
|
7
|
+
"types": "../dist/types/create-experimental-interaction-metrics-payload/index.d.ts",
|
|
8
|
+
"typesVersions": {
|
|
9
|
+
">=4.5 <5.4": {
|
|
10
|
+
"*": [
|
|
11
|
+
"../dist/types-ts4.5/create-experimental-interaction-metrics-payload/index.d.ts"
|
|
12
|
+
]
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
package/dist/cjs/config/index.js
CHANGED
|
@@ -8,6 +8,7 @@ exports.getCapabilityRate = getCapabilityRate;
|
|
|
8
8
|
exports.getConfig = getConfig;
|
|
9
9
|
exports.getDoNotAbortActivePressInteraction = getDoNotAbortActivePressInteraction;
|
|
10
10
|
exports.getDoNotAbortActivePressInteractionOnTransition = getDoNotAbortActivePressInteractionOnTransition;
|
|
11
|
+
exports.getExperimentalInteractionRate = getExperimentalInteractionRate;
|
|
11
12
|
exports.getInteractionRate = getInteractionRate;
|
|
12
13
|
exports.getPostInteractionRate = getPostInteractionRate;
|
|
13
14
|
exports.getRemoveInteractionsUFOPrefixes = getRemoveInteractionsUFOPrefixes;
|
|
@@ -82,13 +83,34 @@ function getInteractionRate(name, interactionKind) {
|
|
|
82
83
|
return 0;
|
|
83
84
|
}
|
|
84
85
|
}
|
|
85
|
-
function
|
|
86
|
+
function getExperimentalInteractionRate(name, interactionType) {
|
|
86
87
|
try {
|
|
87
88
|
if (!config) {
|
|
88
89
|
return 0;
|
|
89
90
|
}
|
|
90
91
|
var _config2 = config,
|
|
91
|
-
|
|
92
|
+
experimentalInteractionMetrics = _config2.experimentalInteractionMetrics;
|
|
93
|
+
if (!(experimentalInteractionMetrics !== null && experimentalInteractionMetrics !== void 0 && experimentalInteractionMetrics.enabled)) {
|
|
94
|
+
return 0;
|
|
95
|
+
}
|
|
96
|
+
if (experimentalInteractionMetrics.rates && typeof experimentalInteractionMetrics.rates[name] === 'number') {
|
|
97
|
+
return experimentalInteractionMetrics.rates[name];
|
|
98
|
+
}
|
|
99
|
+
if (experimentalInteractionMetrics.kind && typeof experimentalInteractionMetrics.kind[interactionType] === 'number') {
|
|
100
|
+
return experimentalInteractionMetrics.kind[interactionType];
|
|
101
|
+
}
|
|
102
|
+
return 0;
|
|
103
|
+
} catch (e) {
|
|
104
|
+
return 0;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
function getPostInteractionRate(name, interactionType) {
|
|
108
|
+
try {
|
|
109
|
+
if (!config) {
|
|
110
|
+
return 0;
|
|
111
|
+
}
|
|
112
|
+
var _config3 = config,
|
|
113
|
+
postInteractionLog = _config3.postInteractionLog;
|
|
92
114
|
if (!(postInteractionLog !== null && postInteractionLog !== void 0 && postInteractionLog.enabled)) {
|
|
93
115
|
return 0;
|
|
94
116
|
}
|
|
@@ -108,8 +130,8 @@ function getCapabilityRate(capability) {
|
|
|
108
130
|
if (!config) {
|
|
109
131
|
return 0;
|
|
110
132
|
}
|
|
111
|
-
var
|
|
112
|
-
capabilityRate =
|
|
133
|
+
var _config4 = config,
|
|
134
|
+
capabilityRate = _config4.capability;
|
|
113
135
|
if (capabilityRate != null) {
|
|
114
136
|
var rate = capabilityRate[capability];
|
|
115
137
|
if (rate != null) {
|
|
@@ -128,8 +150,8 @@ function getTypingPerformanceTracingMethod() {
|
|
|
128
150
|
if (!config) {
|
|
129
151
|
return defaultMethod;
|
|
130
152
|
}
|
|
131
|
-
var
|
|
132
|
-
typingMethod =
|
|
153
|
+
var _config5 = config,
|
|
154
|
+
typingMethod = _config5.typingMethod;
|
|
133
155
|
if (typingMethod != null && validTypingMethods.find(function (m) {
|
|
134
156
|
return m === typingMethod;
|
|
135
157
|
})) {
|
|
@@ -148,8 +170,8 @@ function getAwaitBM3TTIList() {
|
|
|
148
170
|
if (!config) {
|
|
149
171
|
return [];
|
|
150
172
|
}
|
|
151
|
-
var
|
|
152
|
-
awaitBM3TTI =
|
|
173
|
+
var _config6 = config,
|
|
174
|
+
awaitBM3TTI = _config6.awaitBM3TTI;
|
|
153
175
|
if (awaitBM3TTI != null) {
|
|
154
176
|
return awaitBM3TTI;
|
|
155
177
|
} else {
|
|
@@ -166,8 +188,8 @@ function getRemovePageSegmentsUFOPrefixes() {
|
|
|
166
188
|
if (!config) {
|
|
167
189
|
return false;
|
|
168
190
|
}
|
|
169
|
-
var
|
|
170
|
-
removePageSegmentsUFOPrefixes =
|
|
191
|
+
var _config7 = config,
|
|
192
|
+
removePageSegmentsUFOPrefixes = _config7.removePageSegmentsUFOPrefixes;
|
|
171
193
|
if (removePageSegmentsUFOPrefixes != null) {
|
|
172
194
|
return removePageSegmentsUFOPrefixes;
|
|
173
195
|
} else {
|
|
@@ -184,8 +206,8 @@ function getRemoveInteractionsUFOPrefixes() {
|
|
|
184
206
|
if (!config) {
|
|
185
207
|
return false;
|
|
186
208
|
}
|
|
187
|
-
var
|
|
188
|
-
removeInteractionsUFOPrefixes =
|
|
209
|
+
var _config8 = config,
|
|
210
|
+
removeInteractionsUFOPrefixes = _config8.removeInteractionsUFOPrefixes;
|
|
189
211
|
if (removeInteractionsUFOPrefixes != null) {
|
|
190
212
|
return removeInteractionsUFOPrefixes;
|
|
191
213
|
} else {
|
|
@@ -205,8 +227,8 @@ function getUfoNameOverrides() {
|
|
|
205
227
|
if (!config) {
|
|
206
228
|
return undefined;
|
|
207
229
|
}
|
|
208
|
-
var
|
|
209
|
-
ufoNameOverrides =
|
|
230
|
+
var _config9 = config,
|
|
231
|
+
ufoNameOverrides = _config9.ufoNameOverrides;
|
|
210
232
|
if (ufoNameOverrides != null) {
|
|
211
233
|
return ufoNameOverrides;
|
|
212
234
|
}
|
|
@@ -222,8 +244,8 @@ function getDoNotAbortActivePressInteraction() {
|
|
|
222
244
|
if (!config) {
|
|
223
245
|
return undefined;
|
|
224
246
|
}
|
|
225
|
-
var
|
|
226
|
-
doNotAbortActivePressInteraction =
|
|
247
|
+
var _config10 = config,
|
|
248
|
+
doNotAbortActivePressInteraction = _config10.doNotAbortActivePressInteraction;
|
|
227
249
|
return doNotAbortActivePressInteraction;
|
|
228
250
|
} catch (e) {
|
|
229
251
|
return undefined;
|
|
@@ -236,8 +258,8 @@ function getDoNotAbortActivePressInteractionOnTransition() {
|
|
|
236
258
|
if (!config) {
|
|
237
259
|
return undefined;
|
|
238
260
|
}
|
|
239
|
-
var
|
|
240
|
-
doNotAbortActivePressInteractionOnTransition =
|
|
261
|
+
var _config11 = config,
|
|
262
|
+
doNotAbortActivePressInteractionOnTransition = _config11.doNotAbortActivePressInteractionOnTransition;
|
|
241
263
|
return doNotAbortActivePressInteractionOnTransition;
|
|
242
264
|
} catch (e) {
|
|
243
265
|
return undefined;
|
|
@@ -245,8 +267,8 @@ function getDoNotAbortActivePressInteractionOnTransition() {
|
|
|
245
267
|
}
|
|
246
268
|
function shouldHandleEditorLnv() {
|
|
247
269
|
try {
|
|
248
|
-
var _config$enableEditorL,
|
|
249
|
-
return (_config$enableEditorL = (
|
|
270
|
+
var _config$enableEditorL, _config12;
|
|
271
|
+
return (_config$enableEditorL = (_config12 = config) === null || _config12 === void 0 ? void 0 : _config12.enableEditorLnvHandler) !== null && _config$enableEditorL !== void 0 ? _config$enableEditorL : false;
|
|
250
272
|
} catch (e) {
|
|
251
273
|
return false;
|
|
252
274
|
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.getExperimentalVCMetrics = exports.experimentalVC = exports.ExperimentalVCMetrics = void 0;
|
|
8
|
+
exports.installInteractionSink = installInteractionSink;
|
|
9
|
+
exports.onExperimentalInteractionComplete = onExperimentalInteractionComplete;
|
|
10
|
+
exports.sinkExperimentalHandler = sinkExperimentalHandler;
|
|
11
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
14
|
+
var _hiddenTiming = require("../hidden-timing");
|
|
15
|
+
var _vcObserver = require("../vc/vc-observer");
|
|
16
|
+
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; }
|
|
17
|
+
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; }
|
|
18
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
|
|
19
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
20
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
21
|
+
var interactionBuffer = [];
|
|
22
|
+
var bufferInteractionData = function bufferInteractionData(interactionId, data) {
|
|
23
|
+
interactionBuffer.push({
|
|
24
|
+
interactionId: interactionId,
|
|
25
|
+
data: data
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
function clearInteractionBuffer() {
|
|
29
|
+
interactionBuffer.length = 0;
|
|
30
|
+
}
|
|
31
|
+
function appendInteractionData(interactionId, data) {
|
|
32
|
+
bufferInteractionData(interactionId, data);
|
|
33
|
+
}
|
|
34
|
+
function installInteractionSink(handler) {
|
|
35
|
+
var _iterator = _createForOfIteratorHelper(interactionBuffer),
|
|
36
|
+
_step;
|
|
37
|
+
try {
|
|
38
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
39
|
+
var _step$value = _step.value,
|
|
40
|
+
_interactionId = _step$value.interactionId,
|
|
41
|
+
data = _step$value.data;
|
|
42
|
+
handler(_interactionId, data);
|
|
43
|
+
}
|
|
44
|
+
} catch (err) {
|
|
45
|
+
_iterator.e(err);
|
|
46
|
+
} finally {
|
|
47
|
+
_iterator.f();
|
|
48
|
+
}
|
|
49
|
+
clearInteractionBuffer();
|
|
50
|
+
bufferInteractionData = handler;
|
|
51
|
+
}
|
|
52
|
+
function sinkExperimentalHandler(sinkFn) {
|
|
53
|
+
installInteractionSink(sinkFn);
|
|
54
|
+
}
|
|
55
|
+
function onExperimentalInteractionComplete(interactionId, data) {
|
|
56
|
+
var endTime = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : performance.now();
|
|
57
|
+
if (data.ufoName) {
|
|
58
|
+
data.end = endTime;
|
|
59
|
+
appendInteractionData(interactionId, data);
|
|
60
|
+
clearInteractionBuffer();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
var ExperimentalVCMetrics = exports.ExperimentalVCMetrics = /*#__PURE__*/function () {
|
|
64
|
+
function ExperimentalVCMetrics() {
|
|
65
|
+
(0, _classCallCheck2.default)(this, ExperimentalVCMetrics);
|
|
66
|
+
(0, _defineProperty2.default)(this, "vcObserver", null);
|
|
67
|
+
}
|
|
68
|
+
return (0, _createClass2.default)(ExperimentalVCMetrics, [{
|
|
69
|
+
key: "initialize",
|
|
70
|
+
value: function initialize(options) {
|
|
71
|
+
if (this.vcObserver === null) {
|
|
72
|
+
this.vcObserver = new _vcObserver.VCObserver(_objectSpread(_objectSpread({}, options), {}, {
|
|
73
|
+
isPostInteraction: true
|
|
74
|
+
}));
|
|
75
|
+
}
|
|
76
|
+
return this;
|
|
77
|
+
}
|
|
78
|
+
}, {
|
|
79
|
+
key: "start",
|
|
80
|
+
value: function start(_ref) {
|
|
81
|
+
var _this$vcObserver;
|
|
82
|
+
var startTime = _ref.startTime;
|
|
83
|
+
(_this$vcObserver = this.vcObserver) === null || _this$vcObserver === void 0 || _this$vcObserver.start({
|
|
84
|
+
startTime: startTime
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}]);
|
|
88
|
+
}();
|
|
89
|
+
var experimentalVC = exports.experimentalVC = new ExperimentalVCMetrics();
|
|
90
|
+
var getExperimentalVCMetrics = exports.getExperimentalVCMetrics = function getExperimentalVCMetrics(interaction) {
|
|
91
|
+
if (experimentalVC.vcObserver) {
|
|
92
|
+
var _interaction$apdex;
|
|
93
|
+
var prefix = 'ufo-experimental';
|
|
94
|
+
var result = experimentalVC.vcObserver.getVCResult({
|
|
95
|
+
start: interaction.start,
|
|
96
|
+
stop: interaction.end,
|
|
97
|
+
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,
|
|
98
|
+
prefix: prefix,
|
|
99
|
+
vc: interaction.vc
|
|
100
|
+
});
|
|
101
|
+
var VC = result === null || result === void 0 ? void 0 : result['metrics:vc'];
|
|
102
|
+
if (!VC || !(result !== null && result !== void 0 && result["".concat(prefix, ":vc:clean")])) {
|
|
103
|
+
return result;
|
|
104
|
+
}
|
|
105
|
+
var pageVisibilityUpToTTAI = (0, _hiddenTiming.getPageVisibilityState)(interaction.start, interaction.end);
|
|
106
|
+
if (interaction.abortReason || pageVisibilityUpToTTAI !== 'visible') {
|
|
107
|
+
return result;
|
|
108
|
+
}
|
|
109
|
+
return _objectSpread(_objectSpread({}, result), {}, {
|
|
110
|
+
'metric:experimental:vc90': VC['90']
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
return null;
|
|
114
|
+
};
|
|
@@ -5,6 +5,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
+
exports.createExperimentalMetricsPayload = createExperimentalMetricsPayload;
|
|
8
9
|
exports.createPayloads = createPayloads;
|
|
9
10
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
11
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
@@ -14,8 +15,10 @@ var _bowserUltralight = _interopRequireDefault(require("bowser-ultralight"));
|
|
|
14
15
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
15
16
|
var _additionalPayload = require("../additional-payload");
|
|
16
17
|
var bundleEvalTiming = _interopRequireWildcard(require("../bundle-eval-timing"));
|
|
18
|
+
var _coinflip = _interopRequireDefault(require("../coinflip"));
|
|
17
19
|
var _constants = require("../common/constants");
|
|
18
20
|
var _config = require("../config");
|
|
21
|
+
var _createExperimentalInteractionMetricsPayload = require("../create-experimental-interaction-metrics-payload");
|
|
19
22
|
var _customTimings = require("../custom-timings");
|
|
20
23
|
var _globalErrorHandler = require("../global-error-handler");
|
|
21
24
|
var _hiddenTiming = require("../hidden-timing");
|
|
@@ -46,7 +49,6 @@ function getUfoNameOverride(interaction) {
|
|
|
46
49
|
}
|
|
47
50
|
}
|
|
48
51
|
return ufoName;
|
|
49
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
50
52
|
} catch (e) {
|
|
51
53
|
return ufoName;
|
|
52
54
|
}
|
|
@@ -178,8 +180,14 @@ var getPaintMetrics = function getPaintMetrics(type) {
|
|
|
178
180
|
});
|
|
179
181
|
return metrics;
|
|
180
182
|
};
|
|
183
|
+
var getTTAI = function getTTAI(interaction) {
|
|
184
|
+
var start = interaction.start,
|
|
185
|
+
end = interaction.end;
|
|
186
|
+
var pageVisibilityUpToTTAI = getPageVisibilityUpToTTAI(interaction);
|
|
187
|
+
return !interaction.abortReason && pageVisibilityUpToTTAI === 'visible' ? Math.round(end - start) : undefined;
|
|
188
|
+
};
|
|
181
189
|
var getVCMetrics = function getVCMetrics(interaction) {
|
|
182
|
-
var _config$vc, _config$vc$ssrWhiteli, _interaction$apdex;
|
|
190
|
+
var _config$vc, _config$vc$ssrWhiteli, _interaction$apdex, _config$experimentalI;
|
|
183
191
|
var config = (0, _config.getConfig)();
|
|
184
192
|
if (!(config !== null && config !== void 0 && (_config$vc = config.vc) !== null && _config$vc !== void 0 && _config$vc.enabled)) {
|
|
185
193
|
return {};
|
|
@@ -201,6 +209,9 @@ var getVCMetrics = function getVCMetrics(interaction) {
|
|
|
201
209
|
prefix: prefix,
|
|
202
210
|
vc: interaction.vc
|
|
203
211
|
}, ssr));
|
|
212
|
+
if ((_config$experimentalI = config.experimentalInteractionMetrics) !== null && _config$experimentalI !== void 0 && _config$experimentalI.enabled) {
|
|
213
|
+
(0, _vc.getVCObserver)().stop();
|
|
214
|
+
}
|
|
204
215
|
_interactionMetrics.postInteractionLog.setLastInteractionFinishVCResult(result);
|
|
205
216
|
var VC = result === null || result === void 0 ? void 0 : result['metrics:vc'];
|
|
206
217
|
if (!VC || !(result !== null && result !== void 0 && result["".concat(prefix, ":vc:clean")])) {
|
|
@@ -649,13 +660,15 @@ function getStylesheetMetrics() {
|
|
|
649
660
|
return {};
|
|
650
661
|
}
|
|
651
662
|
}
|
|
663
|
+
var regularTTAI;
|
|
664
|
+
var expTTAI;
|
|
652
665
|
function getErrorCounts(interaction) {
|
|
653
666
|
return {
|
|
654
667
|
'ufo:errors:globalCount': (0, _globalErrorHandler.getGlobalErrorCount)(),
|
|
655
668
|
'ufo:errors:count': interaction.errors.length
|
|
656
669
|
};
|
|
657
670
|
}
|
|
658
|
-
function createInteractionMetricsPayload(interaction, interactionId) {
|
|
671
|
+
function createInteractionMetricsPayload(interaction, interactionId, experimental) {
|
|
659
672
|
var _window$location, _config$additionalPay;
|
|
660
673
|
var interactionPayloadStart = performance.now();
|
|
661
674
|
var config = (0, _config.getConfig)();
|
|
@@ -706,7 +719,7 @@ function createInteractionMetricsPayload(interaction, interactionId) {
|
|
|
706
719
|
};
|
|
707
720
|
// Detailed payload. Page visibility = visible
|
|
708
721
|
var getDetailedInteractionMetrics = function getDetailedInteractionMetrics() {
|
|
709
|
-
if (window.__UFO_COMPACT_PAYLOAD__ || !isDetailedPayload) {
|
|
722
|
+
if (experimental || window.__UFO_COMPACT_PAYLOAD__ || !isDetailedPayload) {
|
|
710
723
|
return {};
|
|
711
724
|
}
|
|
712
725
|
var spans = [].concat((0, _toConsumableArray2.default)(interaction.spans), (0, _toConsumableArray2.default)(_interactionMetrics.interactionSpans));
|
|
@@ -721,7 +734,7 @@ function createInteractionMetricsPayload(interaction, interactionId) {
|
|
|
721
734
|
}),
|
|
722
735
|
holdActive: (0, _toConsumableArray2.default)(interaction.holdActive.values()),
|
|
723
736
|
redirects: optimizeRedirects(interaction.redirects, start),
|
|
724
|
-
holdInfo: optimizeHoldInfo(interaction.holdInfo, start),
|
|
737
|
+
holdInfo: optimizeHoldInfo(experimental ? interaction.holdExpInfo : interaction.holdInfo, start),
|
|
725
738
|
spans: optimizeSpans(spans, start),
|
|
726
739
|
requestInfo: optimizeRequestInfo(interaction.requestInfo, start),
|
|
727
740
|
customTimings: optimizeCustomTimings(interaction.customTimings, start),
|
|
@@ -741,6 +754,11 @@ function createInteractionMetricsPayload(interaction, interactionId) {
|
|
|
741
754
|
SSRTimings: config !== null && config !== void 0 && (_config$ssr4 = config.ssr) !== null && _config$ssr4 !== void 0 && _config$ssr4.getSSRTimings ? config.ssr.getSSRTimings() : objectToArray(ssr.getSSRTimings())
|
|
742
755
|
};
|
|
743
756
|
};
|
|
757
|
+
if (experimental) {
|
|
758
|
+
expTTAI = getTTAI(interaction);
|
|
759
|
+
} else {
|
|
760
|
+
regularTTAI = getTTAI(interaction);
|
|
761
|
+
}
|
|
744
762
|
var newUFOName = (0, _utils.sanitizeUfoName)(ufoName);
|
|
745
763
|
var payload = {
|
|
746
764
|
actionSubject: 'experience',
|
|
@@ -749,7 +767,7 @@ function createInteractionMetricsPayload(interaction, interactionId) {
|
|
|
749
767
|
source: 'measured',
|
|
750
768
|
tags: ['observability'],
|
|
751
769
|
attributes: {
|
|
752
|
-
properties: _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
770
|
+
properties: _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
753
771
|
// basic
|
|
754
772
|
'event:hostname': ((_window$location = window.location) === null || _window$location === void 0 ? void 0 : _window$location.hostname) || 'unknown',
|
|
755
773
|
'event:product': config.product,
|
|
@@ -761,10 +779,10 @@ function createInteractionMetricsPayload(interaction, interactionId) {
|
|
|
761
779
|
payloadSource: 'platform'
|
|
762
780
|
},
|
|
763
781
|
'event:region': config.region || 'unknown',
|
|
764
|
-
'experience:key': 'custom.interaction-metrics',
|
|
782
|
+
'experience:key': experimental ? 'custom.experimental-interaction-metrics' : 'custom.interaction-metrics',
|
|
765
783
|
'experience:name': newUFOName
|
|
766
|
-
}, getBrowserMetadata()), getSSRProperties(type)), getPPSMetrics(interaction)), getPaintMetrics(type)), getNavigationMetrics(type)), getVCMetrics(interaction)), (_config$additionalPay = config.additionalPayloadData) === null || _config$additionalPay === void 0 ? void 0 : _config$additionalPay.call(config, interaction)), getTracingContextData(interaction)), getStylesheetMetrics()), getErrorCounts(interaction)), {}, {
|
|
767
|
-
interactionMetrics: _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
784
|
+
}, getBrowserMetadata()), getSSRProperties(type)), getPPSMetrics(interaction)), getPaintMetrics(type)), getNavigationMetrics(type)), getVCMetrics(interaction)), experimental ? (0, _createExperimentalInteractionMetricsPayload.getExperimentalVCMetrics)(interaction) : undefined), (_config$additionalPay = config.additionalPayloadData) === null || _config$additionalPay === void 0 ? void 0 : _config$additionalPay.call(config, interaction)), getTracingContextData(interaction)), getStylesheetMetrics()), getErrorCounts(interaction)), {}, {
|
|
785
|
+
interactionMetrics: _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
768
786
|
namePrefix: config.namePrefix || '',
|
|
769
787
|
segmentPrefix: config.segmentPrefix || '',
|
|
770
788
|
interactionId: interactionId,
|
|
@@ -795,11 +813,18 @@ function createInteractionMetricsPayload(interaction, interactionId) {
|
|
|
795
813
|
marks: optimizeMarks(interaction.marks),
|
|
796
814
|
customData: optimizeCustomData(interaction),
|
|
797
815
|
reactProfilerTimings: optimizeReactProfilerTimings(interaction.reactProfilerTimings, start)
|
|
798
|
-
}, labelStack), getPageLoadInteractionMetrics()), getDetailedInteractionMetrics()), getPageLoadDetailedInteractionMetrics()), getBm3TrackerTimings(interaction)),
|
|
816
|
+
}, labelStack), getPageLoadInteractionMetrics()), getDetailedInteractionMetrics()), getPageLoadDetailedInteractionMetrics()), getBm3TrackerTimings(interaction)), {}, {
|
|
817
|
+
'metric:ttai': experimental ? regularTTAI || expTTAI : undefined,
|
|
818
|
+
'metric:experimental:ttai': expTTAI
|
|
819
|
+
}),
|
|
799
820
|
'ufo:payloadTime': (0, _roundNumber.roundEpsilon)(performance.now() - interactionPayloadStart)
|
|
800
821
|
})
|
|
801
822
|
}
|
|
802
823
|
};
|
|
824
|
+
if (experimental) {
|
|
825
|
+
regularTTAI = undefined;
|
|
826
|
+
expTTAI = undefined;
|
|
827
|
+
}
|
|
803
828
|
payload.attributes.properties['event:sizeInKb'] = getPayloadSize(payload.attributes.properties);
|
|
804
829
|
return payload;
|
|
805
830
|
}
|
|
@@ -810,4 +835,20 @@ function createPayloads(interactionId, interaction) {
|
|
|
810
835
|
});
|
|
811
836
|
var interactionMetricsPayload = createInteractionMetricsPayload(modifiedInteraction, interactionId);
|
|
812
837
|
return [interactionMetricsPayload];
|
|
838
|
+
}
|
|
839
|
+
function createExperimentalMetricsPayload(interactionId, interaction) {
|
|
840
|
+
var config = (0, _config.getConfig)();
|
|
841
|
+
if (!config) {
|
|
842
|
+
throw Error('UFO Configuration not provided');
|
|
843
|
+
}
|
|
844
|
+
var ufoName = (0, _utils.sanitizeUfoName)(interaction.ufoName);
|
|
845
|
+
var rate = (0, _config.getExperimentalInteractionRate)(ufoName, interaction.type);
|
|
846
|
+
if (!(0, _coinflip.default)(rate)) {
|
|
847
|
+
return null;
|
|
848
|
+
}
|
|
849
|
+
var pageVisibilityState = (0, _hiddenTiming.getPageVisibilityState)(interaction.start, interaction.end);
|
|
850
|
+
if (pageVisibilityState !== 'visible') {
|
|
851
|
+
return null;
|
|
852
|
+
}
|
|
853
|
+
return createInteractionMetricsPayload(interaction, interactionId, true);
|
|
813
854
|
}
|