@atlaskit/react-ufo 3.10.4 → 3.11.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 +16 -0
- package/dist/cjs/config/index.js +51 -5
- package/dist/cjs/create-experimental-interaction-metrics-payload/index.js +2 -1
- package/dist/cjs/create-payload/utils/get-vc-metrics.js +41 -20
- package/dist/cjs/create-post-interaction-log-payload/index.js +11 -0
- package/dist/cjs/interaction-metrics/index.js +2 -1
- package/dist/cjs/interaction-metrics/post-interaction-log.js +15 -5
- package/dist/cjs/vc/index.js +125 -36
- package/dist/cjs/vc/vc-observer/getVCRevisionsData.js +48 -23
- package/dist/cjs/vc/vc-observer/index.js +17 -6
- package/dist/es2019/config/index.js +49 -6
- package/dist/es2019/create-experimental-interaction-metrics-payload/index.js +2 -1
- package/dist/es2019/create-payload/utils/get-vc-metrics.js +36 -19
- package/dist/es2019/create-post-interaction-log-payload/index.js +11 -0
- package/dist/es2019/interaction-metrics/index.js +2 -1
- package/dist/es2019/interaction-metrics/post-interaction-log.js +14 -4
- package/dist/es2019/vc/index.js +99 -36
- package/dist/es2019/vc/vc-observer/getVCRevisionsData.js +52 -25
- package/dist/es2019/vc/vc-observer/index.js +18 -6
- package/dist/esm/config/index.js +49 -5
- package/dist/esm/create-experimental-interaction-metrics-payload/index.js +2 -1
- package/dist/esm/create-payload/utils/get-vc-metrics.js +42 -21
- package/dist/esm/create-post-interaction-log-payload/index.js +11 -0
- package/dist/esm/interaction-metrics/index.js +2 -1
- package/dist/esm/interaction-metrics/post-interaction-log.js +15 -5
- package/dist/esm/vc/index.js +127 -37
- package/dist/esm/vc/vc-observer/getVCRevisionsData.js +48 -23
- package/dist/esm/vc/vc-observer/index.js +17 -6
- package/dist/types/common/common/types.d.ts +1 -1
- package/dist/types/common/react-ufo-payload-schema.d.ts +49 -3
- package/dist/types/config/index.d.ts +14 -3
- package/dist/types/create-post-interaction-log-payload/index.d.ts +3 -2
- package/dist/types/interaction-metrics/post-interaction-log.d.ts +3 -4
- package/dist/types/vc/index.d.ts +17 -1
- package/dist/types/vc/types.d.ts +3 -1
- package/dist/types/vc/vc-observer/getVCRevisionsData.d.ts +5 -3
- package/dist/types/vc/vc-observer/index.d.ts +1 -1
- package/dist/types-ts4.5/common/common/types.d.ts +1 -1
- package/dist/types-ts4.5/common/react-ufo-payload-schema.d.ts +51 -3
- package/dist/types-ts4.5/config/index.d.ts +14 -3
- package/dist/types-ts4.5/create-post-interaction-log-payload/index.d.ts +3 -2
- package/dist/types-ts4.5/interaction-metrics/post-interaction-log.d.ts +3 -4
- package/dist/types-ts4.5/vc/index.d.ts +17 -1
- package/dist/types-ts4.5/vc/types.d.ts +3 -1
- package/dist/types-ts4.5/vc/vc-observer/getVCRevisionsData.d.ts +5 -3
- package/dist/types-ts4.5/vc/vc-observer/index.d.ts +1 -1
- package/package.json +7 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @atlaskit/ufo-interaction-ignore
|
|
2
2
|
|
|
3
|
+
## 3.11.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#154164](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/154164)
|
|
8
|
+
[`59249901f5291`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/59249901f5291) -
|
|
9
|
+
align logic for UFO events and watchdog event
|
|
10
|
+
|
|
11
|
+
## 3.11.0
|
|
12
|
+
|
|
13
|
+
### Minor Changes
|
|
14
|
+
|
|
15
|
+
- [#152178](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/152178)
|
|
16
|
+
[`b61bda55f25b4`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/b61bda55f25b4) -
|
|
17
|
+
Enable TTVC revision logic by experience
|
|
18
|
+
|
|
3
19
|
## 3.10.4
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
package/dist/cjs/config/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
@@ -11,6 +12,7 @@ exports.getDoNotAbortActivePressInteractionOnTransition = getDoNotAbortActivePre
|
|
|
11
12
|
exports.getEnabledVCRevisions = getEnabledVCRevisions;
|
|
12
13
|
exports.getExperimentalInteractionRate = getExperimentalInteractionRate;
|
|
13
14
|
exports.getInteractionRate = getInteractionRate;
|
|
15
|
+
exports.getMostRecentVCRevision = getMostRecentVCRevision;
|
|
14
16
|
exports.getPostInteractionRate = getPostInteractionRate;
|
|
15
17
|
exports.getRemoveInteractionsUFOPrefixes = getRemoveInteractionsUFOPrefixes;
|
|
16
18
|
exports.getRemovePageSegmentsUFOPrefixes = getRemovePageSegmentsUFOPrefixes;
|
|
@@ -18,6 +20,12 @@ exports.getTypingPerformanceTracingMethod = getTypingPerformanceTracingMethod;
|
|
|
18
20
|
exports.getUfoNameOverrides = getUfoNameOverrides;
|
|
19
21
|
exports.isVCRevisionEnabled = isVCRevisionEnabled;
|
|
20
22
|
exports.setUFOConfig = setUFOConfig;
|
|
23
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
24
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
25
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
26
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
27
|
+
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; }
|
|
28
|
+
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; }
|
|
21
29
|
var config;
|
|
22
30
|
var DEFAULT_TTVC_REVISION = 'fy25.02';
|
|
23
31
|
|
|
@@ -25,28 +33,66 @@ var DEFAULT_TTVC_REVISION = 'fy25.02';
|
|
|
25
33
|
// and they could delete empty members
|
|
26
34
|
|
|
27
35
|
function setUFOConfig(newConfig) {
|
|
28
|
-
|
|
36
|
+
if ((0, _platformFeatureFlags.fg)('platform_ufo_vc_enable_revisions_by_experience')) {
|
|
37
|
+
var _newConfig$vc;
|
|
38
|
+
// Handle edge cases with `enabledVCRevisions`
|
|
39
|
+
var _ref = (_newConfig$vc = newConfig === null || newConfig === void 0 ? void 0 : newConfig.vc) !== null && _newConfig$vc !== void 0 ? _newConfig$vc : {},
|
|
40
|
+
enabledVCRevisions = _ref.enabledVCRevisions;
|
|
41
|
+
if ((0, _typeof2.default)(enabledVCRevisions === null || enabledVCRevisions === void 0 ? void 0 : enabledVCRevisions.byExperience) === 'object') {
|
|
42
|
+
config = _objectSpread(_objectSpread({}, newConfig), {}, {
|
|
43
|
+
vc: _objectSpread(_objectSpread({}, newConfig.vc), {}, {
|
|
44
|
+
enabledVCRevisions: {
|
|
45
|
+
// enforce axiom about `enabledVCRevisions.all` config
|
|
46
|
+
all: Array.from(new Set([DEFAULT_TTVC_REVISION].concat((0, _toConsumableArray2.default)(enabledVCRevisions === null || enabledVCRevisions === void 0 ? void 0 : enabledVCRevisions.all), (0, _toConsumableArray2.default)(Object.values(enabledVCRevisions === null || enabledVCRevisions === void 0 ? void 0 : enabledVCRevisions.byExperience).flat())))),
|
|
47
|
+
byExperience: _objectSpread({}, enabledVCRevisions === null || enabledVCRevisions === void 0 ? void 0 : enabledVCRevisions.byExperience)
|
|
48
|
+
}
|
|
49
|
+
})
|
|
50
|
+
});
|
|
51
|
+
} else {
|
|
52
|
+
config = newConfig;
|
|
53
|
+
}
|
|
54
|
+
} else {
|
|
55
|
+
config = newConfig;
|
|
56
|
+
}
|
|
29
57
|
}
|
|
30
58
|
function getConfig() {
|
|
31
59
|
return config;
|
|
32
60
|
}
|
|
61
|
+
var isValidConfigArray = function isValidConfigArray(array) {
|
|
62
|
+
return Array.isArray(array) && array.length > 0;
|
|
63
|
+
};
|
|
33
64
|
function getEnabledVCRevisions() {
|
|
65
|
+
var experienceKey = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
34
66
|
try {
|
|
35
67
|
var _config$vc;
|
|
36
68
|
if (!config) {
|
|
37
69
|
return [];
|
|
38
70
|
}
|
|
39
71
|
if ((_config$vc = config.vc) !== null && _config$vc !== void 0 && _config$vc.enabled) {
|
|
40
|
-
var _config$vc2,
|
|
41
|
-
|
|
72
|
+
var _config$vc2, _enabledVCRevisions$b;
|
|
73
|
+
var _ref2 = (_config$vc2 = config.vc) !== null && _config$vc2 !== void 0 ? _config$vc2 : {},
|
|
74
|
+
enabledVCRevisions = _ref2.enabledVCRevisions;
|
|
75
|
+
if (isValidConfigArray(enabledVCRevisions === null || enabledVCRevisions === void 0 || (_enabledVCRevisions$b = enabledVCRevisions.byExperience) === null || _enabledVCRevisions$b === void 0 ? void 0 : _enabledVCRevisions$b[experienceKey]) && (0, _platformFeatureFlags.fg)('platform_ufo_vc_enable_revisions_by_experience')) {
|
|
76
|
+
var _enabledVCRevisions$b2;
|
|
77
|
+
return (_enabledVCRevisions$b2 = enabledVCRevisions.byExperience) === null || _enabledVCRevisions$b2 === void 0 ? void 0 : _enabledVCRevisions$b2[experienceKey];
|
|
78
|
+
}
|
|
79
|
+
if (isValidConfigArray(enabledVCRevisions === null || enabledVCRevisions === void 0 ? void 0 : enabledVCRevisions.all)) {
|
|
80
|
+
return enabledVCRevisions.all;
|
|
81
|
+
}
|
|
82
|
+
return [DEFAULT_TTVC_REVISION];
|
|
42
83
|
}
|
|
43
84
|
return [];
|
|
44
85
|
} catch (_unused) {
|
|
45
86
|
return [];
|
|
46
87
|
}
|
|
47
88
|
}
|
|
48
|
-
function isVCRevisionEnabled(revision) {
|
|
49
|
-
return getEnabledVCRevisions().includes(revision);
|
|
89
|
+
function isVCRevisionEnabled(revision, experienceKey) {
|
|
90
|
+
return getEnabledVCRevisions(experienceKey).includes(revision);
|
|
91
|
+
}
|
|
92
|
+
function getMostRecentVCRevision() {
|
|
93
|
+
var experienceKey = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
94
|
+
var enabledVCRevisions = getEnabledVCRevisions(experienceKey);
|
|
95
|
+
return enabledVCRevisions[enabledVCRevisions.length - 1];
|
|
50
96
|
}
|
|
51
97
|
function getInteractionRate(name, interactionKind) {
|
|
52
98
|
try {
|
|
@@ -111,7 +111,8 @@ function _getExperimentalVCMetrics() {
|
|
|
111
111
|
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,
|
|
112
112
|
isEventAborted: !!interaction.abortReason,
|
|
113
113
|
prefix: prefix,
|
|
114
|
-
vc: interaction.vc
|
|
114
|
+
vc: interaction.vc,
|
|
115
|
+
experienceKey: interaction.ufoName
|
|
115
116
|
});
|
|
116
117
|
case 4:
|
|
117
118
|
result = _context.sent;
|
|
@@ -23,7 +23,7 @@ function getVCMetrics(_x) {
|
|
|
23
23
|
function _getVCMetrics() {
|
|
24
24
|
_getVCMetrics = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(interaction) {
|
|
25
25
|
var _config$vc, _config$vc$ssrWhiteli, _interaction$apdex, _config$experimentalI;
|
|
26
|
-
var config, interactionStatus, pageVisibilityUpToTTAI, isSSREnabled, ssr, tti, prefix, result, _result$ufoVcRev, ttvcV2Revision, VC;
|
|
26
|
+
var config, interactionStatus, pageVisibilityUpToTTAI, shouldReportVCMetrics, isSSREnabled, ssr, tti, prefix, result, _result$ufoVcRev, mostRecentVCRevision, mostRecentVCRevisionPayload, _result$ufoVcRev2, ttvcV2Revision, VC;
|
|
27
27
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
28
28
|
while (1) switch (_context.prev = _context.next) {
|
|
29
29
|
case 0:
|
|
@@ -42,13 +42,14 @@ function _getVCMetrics() {
|
|
|
42
42
|
case 5:
|
|
43
43
|
interactionStatus = (0, _getInteractionStatus.default)(interaction);
|
|
44
44
|
pageVisibilityUpToTTAI = (0, _getPageVisibilityUpToTtai.default)(interaction);
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
shouldReportVCMetrics = interactionStatus.originalInteractionStatus === 'SUCCEEDED' && pageVisibilityUpToTTAI === 'visible';
|
|
46
|
+
if (!(!shouldReportVCMetrics && (0, _platformFeatureFlags.fg)('platform_ufo_no_vc_on_aborted'))) {
|
|
47
|
+
_context.next = 11;
|
|
47
48
|
break;
|
|
48
49
|
}
|
|
49
|
-
(0, _vc.getVCObserver)().stop();
|
|
50
|
+
(0, _vc.getVCObserver)().stop(interaction.ufoName);
|
|
50
51
|
return _context.abrupt("return", {});
|
|
51
|
-
case
|
|
52
|
+
case 11:
|
|
52
53
|
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));
|
|
53
54
|
ssr = interaction.type === 'page_load' && isSSREnabled ? {
|
|
54
55
|
ssr: (0, _getSsrDoneTimeValue.default)(config)
|
|
@@ -56,56 +57,76 @@ function _getVCMetrics() {
|
|
|
56
57
|
_interactionMetrics.postInteractionLog.setVCObserverSSRConfig(ssr);
|
|
57
58
|
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;
|
|
58
59
|
prefix = 'ufo';
|
|
59
|
-
_context.next =
|
|
60
|
+
_context.next = 18;
|
|
60
61
|
return (0, _vc.getVCObserver)().getVCResult(_objectSpread({
|
|
61
62
|
start: interaction.start,
|
|
62
63
|
stop: interaction.end,
|
|
63
64
|
tti: tti,
|
|
64
65
|
prefix: prefix,
|
|
65
66
|
vc: interaction.vc,
|
|
66
|
-
isEventAborted: interactionStatus.originalInteractionStatus !== 'SUCCEEDED'
|
|
67
|
+
isEventAborted: interactionStatus.originalInteractionStatus !== 'SUCCEEDED',
|
|
68
|
+
experienceKey: interaction.ufoName
|
|
67
69
|
}, ssr));
|
|
68
|
-
case
|
|
70
|
+
case 18:
|
|
69
71
|
result = _context.sent;
|
|
70
72
|
if ((_config$experimentalI = config.experimentalInteractionMetrics) !== null && _config$experimentalI !== void 0 && _config$experimentalI.enabled) {
|
|
71
|
-
(0, _vc.getVCObserver)().stop();
|
|
73
|
+
(0, _vc.getVCObserver)().stop(interaction.ufoName);
|
|
72
74
|
}
|
|
73
75
|
_interactionMetrics.postInteractionLog.setLastInteractionFinishVCResult(result);
|
|
74
|
-
if ((0,
|
|
75
|
-
_context.next =
|
|
76
|
+
if (!(0, _platformFeatureFlags.fg)('platform_ufo_vc_enable_revisions_by_experience')) {
|
|
77
|
+
_context.next = 29;
|
|
76
78
|
break;
|
|
77
79
|
}
|
|
78
|
-
|
|
80
|
+
mostRecentVCRevision = (0, _config.getMostRecentVCRevision)(interaction.ufoName);
|
|
81
|
+
mostRecentVCRevisionPayload = result === null || result === void 0 || (_result$ufoVcRev = result['ufo:vc:rev']) === null || _result$ufoVcRev === void 0 ? void 0 : _result$ufoVcRev.find(function (_ref) {
|
|
79
82
|
var revision = _ref.revision;
|
|
83
|
+
return revision === mostRecentVCRevision;
|
|
84
|
+
});
|
|
85
|
+
if (!(!shouldReportVCMetrics || !(mostRecentVCRevisionPayload !== null && mostRecentVCRevisionPayload !== void 0 && mostRecentVCRevisionPayload.clean))) {
|
|
86
|
+
_context.next = 26;
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
return _context.abrupt("return", result);
|
|
90
|
+
case 26:
|
|
91
|
+
return _context.abrupt("return", _objectSpread(_objectSpread({}, result), {}, {
|
|
92
|
+
'metric:vc90': mostRecentVCRevisionPayload['metric:vc90']
|
|
93
|
+
}));
|
|
94
|
+
case 29:
|
|
95
|
+
if ((0, _config.isVCRevisionEnabled)('fy25.01')) {
|
|
96
|
+
_context.next = 36;
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
ttvcV2Revision = result === null || result === void 0 || (_result$ufoVcRev2 = result['ufo:vc:rev']) === null || _result$ufoVcRev2 === void 0 ? void 0 : _result$ufoVcRev2.find(function (_ref2) {
|
|
100
|
+
var revision = _ref2.revision;
|
|
80
101
|
return revision === 'fy25.02';
|
|
81
102
|
});
|
|
82
103
|
if (ttvcV2Revision !== null && ttvcV2Revision !== void 0 && ttvcV2Revision.clean) {
|
|
83
|
-
_context.next =
|
|
104
|
+
_context.next = 33;
|
|
84
105
|
break;
|
|
85
106
|
}
|
|
86
107
|
return _context.abrupt("return", result);
|
|
87
|
-
case
|
|
108
|
+
case 33:
|
|
88
109
|
return _context.abrupt("return", _objectSpread(_objectSpread({}, result), {}, {
|
|
89
110
|
'metric:vc90': ttvcV2Revision['metric:vc90']
|
|
90
111
|
}));
|
|
91
|
-
case
|
|
112
|
+
case 36:
|
|
92
113
|
VC = result === null || result === void 0 ? void 0 : result['metrics:vc'];
|
|
93
114
|
if (!(!VC || !(result !== null && result !== void 0 && result["".concat(prefix, ":vc:clean")]))) {
|
|
94
|
-
_context.next =
|
|
115
|
+
_context.next = 39;
|
|
95
116
|
break;
|
|
96
117
|
}
|
|
97
118
|
return _context.abrupt("return", result);
|
|
98
|
-
case
|
|
119
|
+
case 39:
|
|
99
120
|
if (!(interactionStatus.originalInteractionStatus !== 'SUCCEEDED' || pageVisibilityUpToTTAI !== 'visible')) {
|
|
100
|
-
_context.next =
|
|
121
|
+
_context.next = 41;
|
|
101
122
|
break;
|
|
102
123
|
}
|
|
103
124
|
return _context.abrupt("return", result);
|
|
104
|
-
case
|
|
125
|
+
case 41:
|
|
105
126
|
return _context.abrupt("return", _objectSpread(_objectSpread({}, result), {}, {
|
|
106
127
|
'metric:vc90': VC['90']
|
|
107
128
|
}));
|
|
108
|
-
case
|
|
129
|
+
case 42:
|
|
109
130
|
case "end":
|
|
110
131
|
return _context.stop();
|
|
111
132
|
}
|
|
@@ -133,6 +133,17 @@ function createPostInteractionLogPayload(_ref2) {
|
|
|
133
133
|
if (pageVisibilityState !== 'visible') {
|
|
134
134
|
return null;
|
|
135
135
|
}
|
|
136
|
+
|
|
137
|
+
// Align post-interaction-logs closer to UFO event behaviour,
|
|
138
|
+
// e.g. also check for aborted or failed events
|
|
139
|
+
if ((0, _platformFeatureFlags.fg)('platform_ufo_vc_align_revisions_on_watchdog_event')) {
|
|
140
|
+
if (lastInteractionFinish.abortReason) {
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
if (lastInteractionFinish.errors.length > 0) {
|
|
144
|
+
return null;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
136
147
|
var maxEndTimeFromProfiler = reactProfilerTimings ? Math.max.apply(Math, (0, _toConsumableArray2.default)(reactProfilerTimings.map(function (t) {
|
|
137
148
|
return t.commitTime;
|
|
138
149
|
}))) : lastInteractionFinish.end;
|
|
@@ -843,7 +843,8 @@ function addNewInteraction(interactionId, ufoName, type, startTime, rate, labelS
|
|
|
843
843
|
if (type === 'transition') {
|
|
844
844
|
var _getConfig14;
|
|
845
845
|
(0, _vc.getVCObserver)().start({
|
|
846
|
-
startTime: startTime
|
|
846
|
+
startTime: startTime,
|
|
847
|
+
experienceKey: ufoName
|
|
847
848
|
});
|
|
848
849
|
postInteractionLog.startVCObserver({
|
|
849
850
|
startTime: startTime
|
|
@@ -10,7 +10,9 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
|
|
|
10
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
11
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
12
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
13
14
|
var _config = require("../config");
|
|
15
|
+
var _vc = require("../vc");
|
|
14
16
|
var _vcObserver = require("../vc/vc-observer");
|
|
15
17
|
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; }
|
|
16
18
|
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; }
|
|
@@ -43,7 +45,11 @@ var PostInteractionLog = exports.default = /*#__PURE__*/function () {
|
|
|
43
45
|
return (0, _createClass2.default)(PostInteractionLog, [{
|
|
44
46
|
key: "initializeVCObserver",
|
|
45
47
|
value: function initializeVCObserver(options) {
|
|
46
|
-
if (
|
|
48
|
+
if ((0, _platformFeatureFlags.fg)('platform_ufo_vc_align_revisions_on_watchdog_event')) {
|
|
49
|
+
this.vcObserver = new _vc.VCObserverWrapper(_objectSpread(_objectSpread({}, options), {}, {
|
|
50
|
+
isPostInteraction: true
|
|
51
|
+
}));
|
|
52
|
+
} else if (this.vcObserver === null) {
|
|
47
53
|
this.vcObserver = new _vcObserver.VCObserver(_objectSpread(_objectSpread({}, options), {}, {
|
|
48
54
|
isPostInteraction: true
|
|
49
55
|
}));
|
|
@@ -132,14 +138,16 @@ var PostInteractionLog = exports.default = /*#__PURE__*/function () {
|
|
|
132
138
|
return _context.abrupt("return");
|
|
133
139
|
case 4:
|
|
134
140
|
_context.next = 6;
|
|
135
|
-
return (_this$vcObserver3 = this.vcObserver) === null || _this$vcObserver3 === void 0 ? void 0 : _this$vcObserver3.getVCResult(_objectSpread({
|
|
141
|
+
return (_this$vcObserver3 = this.vcObserver) === null || _this$vcObserver3 === void 0 ? void 0 : _this$vcObserver3.getVCResult(_objectSpread(_objectSpread({
|
|
136
142
|
start: this.lastInteractionFinish.start,
|
|
137
143
|
stop: performance.now(),
|
|
138
144
|
tti: -1,
|
|
139
145
|
// no need for TTI value here
|
|
140
146
|
isEventAborted: !!this.lastInteractionFinish.abortReason,
|
|
141
147
|
prefix: 'ufo'
|
|
142
|
-
}, this.vcObserverSSRConfig)
|
|
148
|
+
}, this.vcObserverSSRConfig), {}, {
|
|
149
|
+
experienceKey: this.lastInteractionFinish.ufoName
|
|
150
|
+
}));
|
|
143
151
|
case 6:
|
|
144
152
|
postInteractionFinishVCResult = _context.sent;
|
|
145
153
|
if ((_getConfig2 = (0, _config.getConfig)()) !== null && _getConfig2 !== void 0 && (_getConfig2 = _getConfig2.experimentalInteractionMetrics) !== null && _getConfig2 !== void 0 && _getConfig2.enabled) {
|
|
@@ -184,7 +192,8 @@ var PostInteractionLog = exports.default = /*#__PURE__*/function () {
|
|
|
184
192
|
routeName = _ref2.routeName,
|
|
185
193
|
type = _ref2.type,
|
|
186
194
|
experimentalTTAI = _ref2.experimentalTTAI,
|
|
187
|
-
experimentalVC90 = _ref2.experimentalVC90
|
|
195
|
+
experimentalVC90 = _ref2.experimentalVC90,
|
|
196
|
+
errors = _ref2.errors;
|
|
188
197
|
this.lastInteractionFinish = {
|
|
189
198
|
ufoName: ufoName,
|
|
190
199
|
start: start,
|
|
@@ -195,7 +204,8 @@ var PostInteractionLog = exports.default = /*#__PURE__*/function () {
|
|
|
195
204
|
routeName: routeName,
|
|
196
205
|
type: type,
|
|
197
206
|
experimentalTTAI: experimentalTTAI,
|
|
198
|
-
experimentalVC90: experimentalVC90
|
|
207
|
+
experimentalVC90: experimentalVC90,
|
|
208
|
+
errors: errors
|
|
199
209
|
};
|
|
200
210
|
var timeout = ((_getConfig3 = (0, _config.getConfig)()) === null || _getConfig3 === void 0 ? void 0 : _getConfig3.timeWindowForLateMutationsInMilliseconds) || POST_INTERACTION_LOG_SEND_DEFAULT_TIMEOUT;
|
|
201
211
|
this.sinkTimeoutId = window.setTimeout( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
package/dist/cjs/vc/index.js
CHANGED
|
@@ -4,6 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
+
exports.VCObserverWrapper = void 0;
|
|
7
8
|
exports.getVCObserver = getVCObserver;
|
|
8
9
|
exports.isEnvironmentSupported = isEnvironmentSupported;
|
|
9
10
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
@@ -12,6 +13,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
12
13
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
14
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
14
15
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
16
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
15
17
|
var _config = require("../config");
|
|
16
18
|
var _noOpVcObserver = require("./no-op-vc-observer");
|
|
17
19
|
var _vcObserver = require("./vc-observer");
|
|
@@ -19,70 +21,157 @@ var _vcObserverNew = _interopRequireDefault(require("./vc-observer-new"));
|
|
|
19
21
|
var _process;
|
|
20
22
|
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; }
|
|
21
23
|
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; }
|
|
22
|
-
var VCObserverWrapper = /*#__PURE__*/function () {
|
|
24
|
+
var VCObserverWrapper = exports.VCObserverWrapper = /*#__PURE__*/function () {
|
|
23
25
|
function VCObserverWrapper() {
|
|
24
26
|
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
25
27
|
(0, _classCallCheck2.default)(this, VCObserverWrapper);
|
|
26
28
|
this.newVCObserver = null;
|
|
27
|
-
if ((0,
|
|
28
|
-
this.
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
if ((0, _platformFeatureFlags.fg)('platform_ufo_vc_enable_revisions_by_experience')) {
|
|
30
|
+
this.oldVCObserver = null;
|
|
31
|
+
if ((0, _config.isVCRevisionEnabled)('fy25.03')) {
|
|
32
|
+
this.newVCObserver = new _vcObserverNew.default({
|
|
33
|
+
selectorConfig: opts.selectorConfig
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
if ((0, _config.isVCRevisionEnabled)('fy25.01') || (0, _config.isVCRevisionEnabled)('fy25.02')) {
|
|
37
|
+
this.oldVCObserver = new _vcObserver.VCObserver(opts);
|
|
38
|
+
}
|
|
39
|
+
} else {
|
|
40
|
+
if ((0, _config.isVCRevisionEnabled)('fy25.03')) {
|
|
41
|
+
this.newVCObserver = new _vcObserverNew.default({
|
|
42
|
+
selectorConfig: opts.selectorConfig
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
this.oldVCObserver = new _vcObserver.VCObserver(opts);
|
|
31
46
|
}
|
|
32
|
-
this.oldVCObserver = new _vcObserver.VCObserver(opts);
|
|
33
47
|
}
|
|
34
48
|
return (0, _createClass2.default)(VCObserverWrapper, [{
|
|
35
49
|
key: "start",
|
|
36
|
-
value: function start(
|
|
37
|
-
var
|
|
38
|
-
|
|
39
|
-
(
|
|
40
|
-
|
|
41
|
-
|
|
50
|
+
value: function start(_ref) {
|
|
51
|
+
var startTime = _ref.startTime,
|
|
52
|
+
experienceKey = _ref.experienceKey;
|
|
53
|
+
if ((0, _platformFeatureFlags.fg)('platform_ufo_vc_enable_revisions_by_experience')) {
|
|
54
|
+
if ((0, _config.isVCRevisionEnabled)('fy25.01', experienceKey) || (0, _config.isVCRevisionEnabled)('fy25.02', experienceKey)) {
|
|
55
|
+
var _this$oldVCObserver;
|
|
56
|
+
(_this$oldVCObserver = this.oldVCObserver) === null || _this$oldVCObserver === void 0 || _this$oldVCObserver.start({
|
|
57
|
+
startTime: startTime
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
if ((0, _config.isVCRevisionEnabled)('fy25.03', experienceKey)) {
|
|
61
|
+
var _this$newVCObserver;
|
|
62
|
+
(_this$newVCObserver = this.newVCObserver) === null || _this$newVCObserver === void 0 || _this$newVCObserver.start({
|
|
63
|
+
startTime: startTime
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
} else {
|
|
67
|
+
var _this$oldVCObserver2, _this$newVCObserver2;
|
|
68
|
+
(_this$oldVCObserver2 = this.oldVCObserver) === null || _this$oldVCObserver2 === void 0 || _this$oldVCObserver2.start({
|
|
69
|
+
startTime: startTime
|
|
70
|
+
});
|
|
71
|
+
(_this$newVCObserver2 = this.newVCObserver) === null || _this$newVCObserver2 === void 0 || _this$newVCObserver2.start({
|
|
72
|
+
startTime: startTime
|
|
73
|
+
});
|
|
74
|
+
}
|
|
42
75
|
}
|
|
43
76
|
}, {
|
|
44
77
|
key: "stop",
|
|
45
|
-
value: function stop() {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
78
|
+
value: function stop(experienceKey) {
|
|
79
|
+
if ((0, _platformFeatureFlags.fg)('platform_ufo_vc_enable_revisions_by_experience')) {
|
|
80
|
+
if ((0, _config.isVCRevisionEnabled)('fy25.01', experienceKey) || (0, _config.isVCRevisionEnabled)('fy25.02', experienceKey)) {
|
|
81
|
+
var _this$oldVCObserver3;
|
|
82
|
+
(_this$oldVCObserver3 = this.oldVCObserver) === null || _this$oldVCObserver3 === void 0 || _this$oldVCObserver3.stop();
|
|
83
|
+
}
|
|
84
|
+
if ((0, _config.isVCRevisionEnabled)('fy25.03', experienceKey)) {
|
|
85
|
+
var _this$newVCObserver3;
|
|
86
|
+
(_this$newVCObserver3 = this.newVCObserver) === null || _this$newVCObserver3 === void 0 || _this$newVCObserver3.stop();
|
|
87
|
+
}
|
|
88
|
+
} else {
|
|
89
|
+
var _this$oldVCObserver4, _this$newVCObserver4;
|
|
90
|
+
(_this$oldVCObserver4 = this.oldVCObserver) === null || _this$oldVCObserver4 === void 0 || _this$oldVCObserver4.stop();
|
|
91
|
+
(_this$newVCObserver4 = this.newVCObserver) === null || _this$newVCObserver4 === void 0 || _this$newVCObserver4.stop();
|
|
92
|
+
}
|
|
49
93
|
}
|
|
50
94
|
}, {
|
|
51
95
|
key: "getVCRawData",
|
|
52
96
|
value: function getVCRawData() {
|
|
53
|
-
var _this$oldVCObserver$g, _this$
|
|
54
|
-
return (_this$oldVCObserver$g = (_this$
|
|
97
|
+
var _this$oldVCObserver$g, _this$oldVCObserver5;
|
|
98
|
+
return (_this$oldVCObserver$g = (_this$oldVCObserver5 = this.oldVCObserver) === null || _this$oldVCObserver5 === void 0 ? void 0 : _this$oldVCObserver5.getVCRawData()) !== null && _this$oldVCObserver$g !== void 0 ? _this$oldVCObserver$g : null;
|
|
55
99
|
}
|
|
56
100
|
}, {
|
|
57
101
|
key: "getVCResult",
|
|
58
102
|
value: function () {
|
|
59
103
|
var _getVCResult = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(param) {
|
|
60
|
-
var _this$
|
|
61
|
-
var oldResult, newResult;
|
|
104
|
+
var _this$oldVCObserver6, _this$newVCObserver5, _ref2, experienceKey, v1v2Result, v3Result, _this$oldVCObserver7, _this$newVCObserver6, _ref3, oldResult, newResult;
|
|
62
105
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
63
106
|
while (1) switch (_context.prev = _context.next) {
|
|
64
107
|
case 0:
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
108
|
+
if (!(0, _platformFeatureFlags.fg)('platform_ufo_vc_enable_revisions_by_experience')) {
|
|
109
|
+
_context.next = 23;
|
|
110
|
+
break;
|
|
111
|
+
}
|
|
112
|
+
experienceKey = param.experienceKey;
|
|
113
|
+
if (!((0, _config.isVCRevisionEnabled)('fy25.01', experienceKey) || (0, _config.isVCRevisionEnabled)('fy25.02', experienceKey))) {
|
|
114
|
+
_context.next = 8;
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
69
117
|
_context.next = 5;
|
|
70
|
-
return (_this$
|
|
118
|
+
return (_this$oldVCObserver6 = this.oldVCObserver) === null || _this$oldVCObserver6 === void 0 ? void 0 : _this$oldVCObserver6.getVCResult(param);
|
|
119
|
+
case 5:
|
|
120
|
+
_context.t0 = _context.sent;
|
|
121
|
+
_context.next = 9;
|
|
122
|
+
break;
|
|
123
|
+
case 8:
|
|
124
|
+
_context.t0 = {};
|
|
125
|
+
case 9:
|
|
126
|
+
v1v2Result = _context.t0;
|
|
127
|
+
if (!(0, _config.isVCRevisionEnabled)('fy25.03', experienceKey)) {
|
|
128
|
+
_context.next = 16;
|
|
129
|
+
break;
|
|
130
|
+
}
|
|
131
|
+
_context.next = 13;
|
|
132
|
+
return (_this$newVCObserver5 = this.newVCObserver) === null || _this$newVCObserver5 === void 0 ? void 0 : _this$newVCObserver5.getVCResult({
|
|
71
133
|
start: param.start,
|
|
72
134
|
stop: param.stop
|
|
73
135
|
});
|
|
74
|
-
case
|
|
136
|
+
case 13:
|
|
137
|
+
_context.t1 = _context.sent;
|
|
138
|
+
_context.next = 17;
|
|
139
|
+
break;
|
|
140
|
+
case 16:
|
|
141
|
+
_context.t1 = [];
|
|
142
|
+
case 17:
|
|
143
|
+
v3Result = _context.t1;
|
|
144
|
+
if (v3Result) {
|
|
145
|
+
_context.next = 20;
|
|
146
|
+
break;
|
|
147
|
+
}
|
|
148
|
+
return _context.abrupt("return", v1v2Result !== null && v1v2Result !== void 0 ? v1v2Result : {});
|
|
149
|
+
case 20:
|
|
150
|
+
return _context.abrupt("return", _objectSpread(_objectSpread({}, v1v2Result), {}, {
|
|
151
|
+
'ufo:vc:rev': [].concat((0, _toConsumableArray2.default)((_ref2 = v1v2Result === null || v1v2Result === void 0 ? void 0 : v1v2Result['ufo:vc:rev']) !== null && _ref2 !== void 0 ? _ref2 : []), (0, _toConsumableArray2.default)(v3Result !== null && v3Result !== void 0 ? v3Result : []))
|
|
152
|
+
}));
|
|
153
|
+
case 23:
|
|
154
|
+
_context.next = 25;
|
|
155
|
+
return (_this$oldVCObserver7 = this.oldVCObserver) === null || _this$oldVCObserver7 === void 0 ? void 0 : _this$oldVCObserver7.getVCResult(param);
|
|
156
|
+
case 25:
|
|
157
|
+
oldResult = _context.sent;
|
|
158
|
+
_context.next = 28;
|
|
159
|
+
return (_this$newVCObserver6 = this.newVCObserver) === null || _this$newVCObserver6 === void 0 ? void 0 : _this$newVCObserver6.getVCResult({
|
|
160
|
+
start: param.start,
|
|
161
|
+
stop: param.stop
|
|
162
|
+
});
|
|
163
|
+
case 28:
|
|
75
164
|
newResult = _context.sent;
|
|
76
165
|
if (!(oldResult && !newResult)) {
|
|
77
|
-
_context.next =
|
|
166
|
+
_context.next = 31;
|
|
78
167
|
break;
|
|
79
168
|
}
|
|
80
169
|
return _context.abrupt("return", oldResult);
|
|
81
|
-
case
|
|
170
|
+
case 31:
|
|
82
171
|
return _context.abrupt("return", _objectSpread(_objectSpread({}, oldResult !== null && oldResult !== void 0 ? oldResult : {}), {}, {
|
|
83
|
-
'ufo:vc:rev': [].concat((0, _toConsumableArray2.default)((
|
|
172
|
+
'ufo:vc:rev': [].concat((0, _toConsumableArray2.default)((_ref3 = oldResult === null || oldResult === void 0 ? void 0 : oldResult['ufo:vc:rev']) !== null && _ref3 !== void 0 ? _ref3 : []), (0, _toConsumableArray2.default)(newResult !== null && newResult !== void 0 ? newResult : []))
|
|
84
173
|
}));
|
|
85
|
-
case
|
|
174
|
+
case 32:
|
|
86
175
|
case "end":
|
|
87
176
|
return _context.stop();
|
|
88
177
|
}
|
|
@@ -96,20 +185,20 @@ var VCObserverWrapper = /*#__PURE__*/function () {
|
|
|
96
185
|
}, {
|
|
97
186
|
key: "setSSRElement",
|
|
98
187
|
value: function setSSRElement(element) {
|
|
99
|
-
var _this$
|
|
100
|
-
(_this$
|
|
188
|
+
var _this$oldVCObserver8;
|
|
189
|
+
(_this$oldVCObserver8 = this.oldVCObserver) === null || _this$oldVCObserver8 === void 0 || _this$oldVCObserver8.setSSRElement(element);
|
|
101
190
|
}
|
|
102
191
|
}, {
|
|
103
192
|
key: "setReactRootRenderStart",
|
|
104
193
|
value: function setReactRootRenderStart(startTime) {
|
|
105
|
-
var _this$
|
|
106
|
-
(_this$
|
|
194
|
+
var _this$oldVCObserver9;
|
|
195
|
+
(_this$oldVCObserver9 = this.oldVCObserver) === null || _this$oldVCObserver9 === void 0 || _this$oldVCObserver9.setReactRootRenderStart(startTime || performance.now());
|
|
107
196
|
}
|
|
108
197
|
}, {
|
|
109
198
|
key: "setReactRootRenderStop",
|
|
110
199
|
value: function setReactRootRenderStop(stopTime) {
|
|
111
|
-
var _this$
|
|
112
|
-
(_this$
|
|
200
|
+
var _this$oldVCObserver10;
|
|
201
|
+
(_this$oldVCObserver10 = this.oldVCObserver) === null || _this$oldVCObserver10 === void 0 || _this$oldVCObserver10.setReactRootRenderStop(stopTime || performance.now());
|
|
113
202
|
}
|
|
114
203
|
}]);
|
|
115
204
|
}(); // Some products set this variable to indicate it is running in SSR
|