@atlaskit/react-ufo 2.10.0 → 2.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/create-experimental-interaction-metrics-payload/package.json +15 -0
- package/dist/cjs/config/index.js +49 -18
- 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/observers/index.js +3 -1
- package/dist/es2019/config/index.js +30 -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/observers/index.js +3 -1
- package/dist/esm/config/index.js +47 -18
- 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/observers/index.js +3 -1
- package/dist/types/common/common/types.d.ts +6 -4
- package/dist/types/config/index.d.ts +8 -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 +8 -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 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# @atlaskit/ufo-interaction-ignore
|
|
2
2
|
|
|
3
|
+
## 2.12.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#99207](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/99207)
|
|
8
|
+
[`59963df2ae2f3`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/59963df2ae2f3) -
|
|
9
|
+
Experimental UFO holds
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Updated dependencies
|
|
14
|
+
|
|
15
|
+
## 2.11.0
|
|
16
|
+
|
|
17
|
+
### Minor Changes
|
|
18
|
+
|
|
19
|
+
- [#103452](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/103452)
|
|
20
|
+
[`4bd40c1e5fb42`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/4bd40c1e5fb42) -
|
|
21
|
+
Replaced feature gate for editor lazy node view with config option
|
|
22
|
+
|
|
3
23
|
## 2.10.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;
|
|
@@ -15,6 +16,7 @@ exports.getRemovePageSegmentsUFOPrefixes = getRemovePageSegmentsUFOPrefixes;
|
|
|
15
16
|
exports.getTypingPerformanceTracingMethod = getTypingPerformanceTracingMethod;
|
|
16
17
|
exports.getUfoNameOverrides = getUfoNameOverrides;
|
|
17
18
|
exports.setUFOConfig = setUFOConfig;
|
|
19
|
+
exports.shouldHandleEditorLnv = shouldHandleEditorLnv;
|
|
18
20
|
var config;
|
|
19
21
|
|
|
20
22
|
// Defensively typed, since this is directly user-editable
|
|
@@ -81,13 +83,34 @@ function getInteractionRate(name, interactionKind) {
|
|
|
81
83
|
return 0;
|
|
82
84
|
}
|
|
83
85
|
}
|
|
84
|
-
function
|
|
86
|
+
function getExperimentalInteractionRate(name, interactionType) {
|
|
85
87
|
try {
|
|
86
88
|
if (!config) {
|
|
87
89
|
return 0;
|
|
88
90
|
}
|
|
89
91
|
var _config2 = config,
|
|
90
|
-
|
|
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;
|
|
91
114
|
if (!(postInteractionLog !== null && postInteractionLog !== void 0 && postInteractionLog.enabled)) {
|
|
92
115
|
return 0;
|
|
93
116
|
}
|
|
@@ -107,8 +130,8 @@ function getCapabilityRate(capability) {
|
|
|
107
130
|
if (!config) {
|
|
108
131
|
return 0;
|
|
109
132
|
}
|
|
110
|
-
var
|
|
111
|
-
capabilityRate =
|
|
133
|
+
var _config4 = config,
|
|
134
|
+
capabilityRate = _config4.capability;
|
|
112
135
|
if (capabilityRate != null) {
|
|
113
136
|
var rate = capabilityRate[capability];
|
|
114
137
|
if (rate != null) {
|
|
@@ -127,8 +150,8 @@ function getTypingPerformanceTracingMethod() {
|
|
|
127
150
|
if (!config) {
|
|
128
151
|
return defaultMethod;
|
|
129
152
|
}
|
|
130
|
-
var
|
|
131
|
-
typingMethod =
|
|
153
|
+
var _config5 = config,
|
|
154
|
+
typingMethod = _config5.typingMethod;
|
|
132
155
|
if (typingMethod != null && validTypingMethods.find(function (m) {
|
|
133
156
|
return m === typingMethod;
|
|
134
157
|
})) {
|
|
@@ -147,8 +170,8 @@ function getAwaitBM3TTIList() {
|
|
|
147
170
|
if (!config) {
|
|
148
171
|
return [];
|
|
149
172
|
}
|
|
150
|
-
var
|
|
151
|
-
awaitBM3TTI =
|
|
173
|
+
var _config6 = config,
|
|
174
|
+
awaitBM3TTI = _config6.awaitBM3TTI;
|
|
152
175
|
if (awaitBM3TTI != null) {
|
|
153
176
|
return awaitBM3TTI;
|
|
154
177
|
} else {
|
|
@@ -165,8 +188,8 @@ function getRemovePageSegmentsUFOPrefixes() {
|
|
|
165
188
|
if (!config) {
|
|
166
189
|
return false;
|
|
167
190
|
}
|
|
168
|
-
var
|
|
169
|
-
removePageSegmentsUFOPrefixes =
|
|
191
|
+
var _config7 = config,
|
|
192
|
+
removePageSegmentsUFOPrefixes = _config7.removePageSegmentsUFOPrefixes;
|
|
170
193
|
if (removePageSegmentsUFOPrefixes != null) {
|
|
171
194
|
return removePageSegmentsUFOPrefixes;
|
|
172
195
|
} else {
|
|
@@ -183,8 +206,8 @@ function getRemoveInteractionsUFOPrefixes() {
|
|
|
183
206
|
if (!config) {
|
|
184
207
|
return false;
|
|
185
208
|
}
|
|
186
|
-
var
|
|
187
|
-
removeInteractionsUFOPrefixes =
|
|
209
|
+
var _config8 = config,
|
|
210
|
+
removeInteractionsUFOPrefixes = _config8.removeInteractionsUFOPrefixes;
|
|
188
211
|
if (removeInteractionsUFOPrefixes != null) {
|
|
189
212
|
return removeInteractionsUFOPrefixes;
|
|
190
213
|
} else {
|
|
@@ -204,8 +227,8 @@ function getUfoNameOverrides() {
|
|
|
204
227
|
if (!config) {
|
|
205
228
|
return undefined;
|
|
206
229
|
}
|
|
207
|
-
var
|
|
208
|
-
ufoNameOverrides =
|
|
230
|
+
var _config9 = config,
|
|
231
|
+
ufoNameOverrides = _config9.ufoNameOverrides;
|
|
209
232
|
if (ufoNameOverrides != null) {
|
|
210
233
|
return ufoNameOverrides;
|
|
211
234
|
}
|
|
@@ -221,8 +244,8 @@ function getDoNotAbortActivePressInteraction() {
|
|
|
221
244
|
if (!config) {
|
|
222
245
|
return undefined;
|
|
223
246
|
}
|
|
224
|
-
var
|
|
225
|
-
doNotAbortActivePressInteraction =
|
|
247
|
+
var _config10 = config,
|
|
248
|
+
doNotAbortActivePressInteraction = _config10.doNotAbortActivePressInteraction;
|
|
226
249
|
return doNotAbortActivePressInteraction;
|
|
227
250
|
} catch (e) {
|
|
228
251
|
return undefined;
|
|
@@ -235,10 +258,18 @@ function getDoNotAbortActivePressInteractionOnTransition() {
|
|
|
235
258
|
if (!config) {
|
|
236
259
|
return undefined;
|
|
237
260
|
}
|
|
238
|
-
var
|
|
239
|
-
doNotAbortActivePressInteractionOnTransition =
|
|
261
|
+
var _config11 = config,
|
|
262
|
+
doNotAbortActivePressInteractionOnTransition = _config11.doNotAbortActivePressInteractionOnTransition;
|
|
240
263
|
return doNotAbortActivePressInteractionOnTransition;
|
|
241
264
|
} catch (e) {
|
|
242
265
|
return undefined;
|
|
243
266
|
}
|
|
267
|
+
}
|
|
268
|
+
function shouldHandleEditorLnv() {
|
|
269
|
+
try {
|
|
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;
|
|
272
|
+
} catch (e) {
|
|
273
|
+
return false;
|
|
274
|
+
}
|
|
244
275
|
}
|
|
@@ -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
|
}
|