@atlaskit/react-ufo 4.14.2 → 4.14.4
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 +14 -0
- package/dist/cjs/config/index.js +4 -0
- package/dist/cjs/create-payload/index.js +22 -2
- package/dist/cjs/create-payload/utils/get-vc-metrics.js +10 -6
- package/dist/cjs/interaction-metrics/index.js +2 -1
- package/dist/cjs/segment/segment.js +2 -1
- package/dist/cjs/trace-interaction/internal/trace-ufo-interaction.js +3 -0
- package/dist/cjs/trace-pageload/index.js +3 -0
- package/dist/cjs/trace-transition/index.js +3 -0
- package/dist/cjs/typing-performance-tracing/index.js +5 -0
- package/dist/cjs/vc/index.js +4 -3
- package/dist/cjs/vc/vc-observer-new/index.js +31 -7
- package/dist/cjs/vc/vc-observer-new/metric-calculator/vcnext/index.js +7 -1
- package/dist/cjs/vc/vc-observer-new/raw-data-handler/index.js +237 -0
- package/dist/es2019/config/index.js +3 -0
- package/dist/es2019/create-payload/index.js +17 -1
- package/dist/es2019/create-payload/utils/get-vc-metrics.js +5 -2
- package/dist/es2019/interaction-metrics/index.js +2 -0
- package/dist/es2019/segment/segment.js +2 -0
- package/dist/es2019/trace-interaction/internal/trace-ufo-interaction.js +2 -0
- package/dist/es2019/trace-pageload/index.js +2 -0
- package/dist/es2019/trace-transition/index.js +3 -0
- package/dist/es2019/typing-performance-tracing/index.js +4 -0
- package/dist/es2019/vc/index.js +4 -2
- package/dist/es2019/vc/vc-observer-new/index.js +20 -1
- package/dist/es2019/vc/vc-observer-new/metric-calculator/vcnext/index.js +7 -1
- package/dist/es2019/vc/vc-observer-new/raw-data-handler/index.js +173 -0
- package/dist/esm/config/index.js +3 -0
- package/dist/esm/create-payload/index.js +22 -2
- package/dist/esm/create-payload/utils/get-vc-metrics.js +11 -7
- package/dist/esm/interaction-metrics/index.js +2 -0
- package/dist/esm/segment/segment.js +2 -0
- package/dist/esm/trace-interaction/internal/trace-ufo-interaction.js +2 -0
- package/dist/esm/trace-pageload/index.js +2 -0
- package/dist/esm/trace-transition/index.js +3 -0
- package/dist/esm/typing-performance-tracing/index.js +4 -0
- package/dist/esm/vc/index.js +4 -3
- package/dist/esm/vc/vc-observer-new/index.js +31 -7
- package/dist/esm/vc/vc-observer-new/metric-calculator/vcnext/index.js +7 -1
- package/dist/esm/vc/vc-observer-new/raw-data-handler/index.js +231 -0
- package/dist/types/common/vc/types.d.ts +20 -1
- package/dist/types/config/index.d.ts +6 -0
- package/dist/types/vc/types.d.ts +1 -0
- package/dist/types/vc/vc-observer-new/raw-data-handler/index.d.ts +20 -0
- package/dist/types/vc/vc-observer-new/types.d.ts +2 -0
- package/dist/types-ts4.5/common/vc/types.d.ts +25 -1
- package/dist/types-ts4.5/config/index.d.ts +6 -0
- package/dist/types-ts4.5/vc/types.d.ts +1 -0
- package/dist/types-ts4.5/vc/vc-observer-new/raw-data-handler/index.d.ts +20 -0
- package/dist/types-ts4.5/vc/vc-observer-new/types.d.ts +2 -0
- package/package.json +7 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @atlaskit/ufo-interaction-ignore
|
|
2
2
|
|
|
3
|
+
## 4.14.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`e52ace29dfa64`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/e52ace29dfa64) -
|
|
8
|
+
Enable raw vc data for React UFO
|
|
9
|
+
|
|
10
|
+
## 4.14.3
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- [`666790c2fd8dd`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/666790c2fd8dd) -
|
|
15
|
+
Remove SSR placeholder exclusions for VC next
|
|
16
|
+
|
|
3
17
|
## 4.14.2
|
|
4
18
|
|
|
5
19
|
### Patch Changes
|
package/dist/cjs/config/index.js
CHANGED
|
@@ -22,6 +22,7 @@ exports.getPostInteractionRate = getPostInteractionRate;
|
|
|
22
22
|
exports.getReactHydrationStats = getReactHydrationStats;
|
|
23
23
|
exports.getTypingPerformanceTracingMethod = getTypingPerformanceTracingMethod;
|
|
24
24
|
exports.getUfoNameOverrides = getUfoNameOverrides;
|
|
25
|
+
exports.getVCRawDataInteractionRate = getVCRawDataInteractionRate;
|
|
25
26
|
exports.isVCRevisionEnabled = isVCRevisionEnabled;
|
|
26
27
|
exports.setUFOConfig = setUFOConfig;
|
|
27
28
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
@@ -193,6 +194,9 @@ function getExperimentalInteractionRate(name, interactionType) {
|
|
|
193
194
|
return 0;
|
|
194
195
|
}
|
|
195
196
|
}
|
|
197
|
+
function getVCRawDataInteractionRate(name, interactionType) {
|
|
198
|
+
return getConfigRate(name, interactionType, 'enableVCRawDataRates');
|
|
199
|
+
}
|
|
196
200
|
function getPostInteractionRate(name, interactionType) {
|
|
197
201
|
return getConfigRate(name, interactionType, 'postInteractionLog');
|
|
198
202
|
}
|
|
@@ -60,6 +60,7 @@ var _excluded = ["labelStack"];
|
|
|
60
60
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
61
61
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
62
62
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } // Import common utilities
|
|
63
|
+
var MAX_PAYLOAD_SIZE = 250;
|
|
63
64
|
function getUfoNameOverride(interaction) {
|
|
64
65
|
var ufoName = interaction.ufoName,
|
|
65
66
|
apdex = interaction.apdex;
|
|
@@ -398,7 +399,7 @@ function createInteractionMetricsPayload(_x, _x2, _x3, _x4, _x5) {
|
|
|
398
399
|
function _createInteractionMetricsPayload() {
|
|
399
400
|
_createInteractionMetricsPayload = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(interaction, interactionId, experimental, criticalPayloadCount, vcMetrics) {
|
|
400
401
|
var _window$location, _config$additionalPay;
|
|
401
|
-
var interactionPayloadStart, config, end, start, ufoName, knownSegments, rate, type, abortReason, routeName, featureFlags, previousInteractionName, isPreviousInteractionAborted, abortedByInteractionName, responsiveness, unknownElementName, unknownElementHierarchy, hydration, pageVisibilityAtTTI, pageVisibilityAtTTAI, segments, segmentTree, isDetailedPayload, isPageLoad, calculatePageVisibilityFromTheStartOfPageLoad, moreAccuratePageVisibilityAtTTI, moreAccuratePageVisibilityAtTTAI, labelStack, getInitialPageLoadSSRMetrics, pageLoadInteractionMetrics, getDetailedInteractionMetrics, getPageLoadDetailedInteractionMetrics, newUFOName, resourceTimings, _yield$Promise$all, _yield$Promise$all2, finalVCMetrics, experimentalMetrics, paintMetrics, batteryInfo, getReactHydrationStats, payload;
|
|
402
|
+
var interactionPayloadStart, config, end, start, ufoName, knownSegments, rate, type, abortReason, routeName, featureFlags, previousInteractionName, isPreviousInteractionAborted, abortedByInteractionName, responsiveness, unknownElementName, unknownElementHierarchy, hydration, pageVisibilityAtTTI, pageVisibilityAtTTAI, segments, segmentTree, isDetailedPayload, isPageLoad, calculatePageVisibilityFromTheStartOfPageLoad, moreAccuratePageVisibilityAtTTI, moreAccuratePageVisibilityAtTTAI, labelStack, getInitialPageLoadSSRMetrics, pageLoadInteractionMetrics, getDetailedInteractionMetrics, getPageLoadDetailedInteractionMetrics, newUFOName, resourceTimings, _yield$Promise$all, _yield$Promise$all2, finalVCMetrics, experimentalMetrics, paintMetrics, batteryInfo, getReactHydrationStats, payload, size, vcRev, rawData, rawDataSize;
|
|
402
403
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
403
404
|
while (1) switch (_context.prev = _context.next) {
|
|
404
405
|
case 0:
|
|
@@ -604,7 +605,26 @@ function _createInteractionMetricsPayload() {
|
|
|
604
605
|
regularTTAI = undefined;
|
|
605
606
|
expTTAI = undefined;
|
|
606
607
|
}
|
|
607
|
-
|
|
608
|
+
if ((0, _platformFeatureFlags.fg)('platform_ufo_enable_vc_raw_data')) {
|
|
609
|
+
size = (0, _getPayloadSize.default)(payload.attributes.properties);
|
|
610
|
+
vcRev = payload.attributes.properties['ufo:vc:rev'];
|
|
611
|
+
rawData = vcRev.find(function (item) {
|
|
612
|
+
return item.revision === 'raw-handler';
|
|
613
|
+
});
|
|
614
|
+
if (rawData) {
|
|
615
|
+
rawDataSize = (0, _getPayloadSize.default)(rawData);
|
|
616
|
+
payload.attributes.properties['ufo:vc:raw:size'] = rawDataSize;
|
|
617
|
+
if (size > MAX_PAYLOAD_SIZE && Array.isArray(vcRev) && vcRev.length > 0) {
|
|
618
|
+
payload.attributes.properties['ufo:vc:rev'] = vcRev.filter(function (item) {
|
|
619
|
+
return item.revision !== 'raw-handler';
|
|
620
|
+
});
|
|
621
|
+
payload.attributes.properties['ufo:vc:raw:removed'] = true;
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
payload.attributes.properties['event:sizeInKb'] = (0, _getPayloadSize.default)(payload.attributes.properties);
|
|
625
|
+
} else {
|
|
626
|
+
payload.attributes.properties['event:sizeInKb'] = (0, _getPayloadSize.default)(payload.attributes.properties);
|
|
627
|
+
}
|
|
608
628
|
return _context.abrupt("return", payload);
|
|
609
629
|
case 47:
|
|
610
630
|
case "end":
|
|
@@ -8,6 +8,7 @@ exports.default = void 0;
|
|
|
8
8
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
9
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
10
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
11
|
+
var _coinflip = _interopRequireDefault(require("../../coinflip"));
|
|
11
12
|
var _config = require("../../config");
|
|
12
13
|
var _interactionMetrics = require("../../interaction-metrics");
|
|
13
14
|
var _getInteractionStatus = _interopRequireDefault(require("./get-interaction-status"));
|
|
@@ -29,6 +30,7 @@ function _getVCMetrics() {
|
|
|
29
30
|
isPageVisible,
|
|
30
31
|
shouldReportVCMetrics,
|
|
31
32
|
observer,
|
|
33
|
+
includeRawData,
|
|
32
34
|
isSSREnabled,
|
|
33
35
|
ssr,
|
|
34
36
|
tti,
|
|
@@ -66,6 +68,7 @@ function _getVCMetrics() {
|
|
|
66
68
|
}
|
|
67
69
|
return _context.abrupt("return", {});
|
|
68
70
|
case 14:
|
|
71
|
+
includeRawData = (0, _coinflip.default)((0, _config.getVCRawDataInteractionRate)(interaction.ufoName, interaction.type));
|
|
69
72
|
isSSREnabled = interaction.type === 'page_load' && ((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)));
|
|
70
73
|
ssr = interaction.type === 'page_load' && isSSREnabled ? {
|
|
71
74
|
ssr: (0, _getSsrDoneTimeValue.default)(config)
|
|
@@ -73,7 +76,7 @@ function _getVCMetrics() {
|
|
|
73
76
|
_interactionMetrics.postInteractionLog.setVCObserverSSRConfig(ssr);
|
|
74
77
|
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;
|
|
75
78
|
prefix = 'ufo';
|
|
76
|
-
_context.next =
|
|
79
|
+
_context.next = 22;
|
|
77
80
|
return observer.getVCResult(_objectSpread(_objectSpread({
|
|
78
81
|
start: interaction.start,
|
|
79
82
|
stop: interaction.end,
|
|
@@ -89,9 +92,10 @@ function _getVCMetrics() {
|
|
|
89
92
|
include3p: include3p,
|
|
90
93
|
excludeSmartAnswersInSearch: excludeSmartAnswersInSearch,
|
|
91
94
|
interactionType: interaction.type,
|
|
92
|
-
isPageVisible: isPageVisible
|
|
95
|
+
isPageVisible: isPageVisible,
|
|
96
|
+
includeRawData: includeRawData
|
|
93
97
|
}));
|
|
94
|
-
case
|
|
98
|
+
case 22:
|
|
95
99
|
result = _context.sent;
|
|
96
100
|
observer.stop(interaction.ufoName);
|
|
97
101
|
if (!include3p) {
|
|
@@ -105,15 +109,15 @@ function _getVCMetrics() {
|
|
|
105
109
|
return revision === mostRecentVCRevision;
|
|
106
110
|
});
|
|
107
111
|
if (!(!shouldReportVCMetrics || !(mostRecentVCRevisionPayload !== null && mostRecentVCRevisionPayload !== void 0 && mostRecentVCRevisionPayload.clean))) {
|
|
108
|
-
_context.next =
|
|
112
|
+
_context.next = 29;
|
|
109
113
|
break;
|
|
110
114
|
}
|
|
111
115
|
return _context.abrupt("return", result);
|
|
112
|
-
case
|
|
116
|
+
case 29:
|
|
113
117
|
return _context.abrupt("return", _objectSpread(_objectSpread({}, result), {}, {
|
|
114
118
|
'metric:vc90': mostRecentVCRevisionPayload['metric:vc90']
|
|
115
119
|
}));
|
|
116
|
-
case
|
|
120
|
+
case 30:
|
|
117
121
|
case "end":
|
|
118
122
|
return _context.stop();
|
|
119
123
|
}
|
|
@@ -67,7 +67,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
|
|
|
67
67
|
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; }
|
|
68
68
|
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; } } }; }
|
|
69
69
|
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; } }
|
|
70
|
-
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; }
|
|
70
|
+
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; } // eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
|
|
71
71
|
var PreviousInteractionLog = {
|
|
72
72
|
name: undefined,
|
|
73
73
|
isAborted: undefined
|
|
@@ -383,6 +383,7 @@ function removeHoldCriterion(id) {
|
|
|
383
383
|
}
|
|
384
384
|
function addHold(interactionId, labelStack, name, experimental) {
|
|
385
385
|
var interaction = _constants.interactions.get(interactionId);
|
|
386
|
+
// eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
|
|
386
387
|
var id = (0, _uuid.v4)();
|
|
387
388
|
if (!interaction && (0, _platformFeatureFlags.fg)('platform_ufo_enable_late_holds_post_interaction')) {
|
|
388
389
|
// add hold timestamp to post interaction log if interaction is complete
|
|
@@ -22,7 +22,7 @@ var _shortId = _interopRequireDefault(require("../short-id"));
|
|
|
22
22
|
var _scheduleOnPaint = _interopRequireDefault(require("./schedule-on-paint"));
|
|
23
23
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
24
24
|
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; }
|
|
25
|
-
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; }
|
|
25
|
+
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; } // eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
|
|
26
26
|
var tryCompleteHandle;
|
|
27
27
|
|
|
28
28
|
/** A portion of the page we apply measurement to */
|
|
@@ -177,6 +177,7 @@ function UFOSegment(_ref) {
|
|
|
177
177
|
var rate = (0, _config.getInteractionRate)(name, 'press');
|
|
178
178
|
if ((0, _coinflip.default)(rate)) {
|
|
179
179
|
var startTimestamp = timestamp !== null && timestamp !== void 0 ? timestamp : performance.now();
|
|
180
|
+
// eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
|
|
180
181
|
var newId = (0, _uuid.v4)();
|
|
181
182
|
interactionId.current = newId;
|
|
182
183
|
// covered experiences with tracing instrumentation:
|
|
@@ -12,6 +12,8 @@ var _experienceTraceIdContext = require("../../experience-trace-id-context");
|
|
|
12
12
|
var _interactionIdContext = require("../../interaction-id-context");
|
|
13
13
|
var _interactionMetrics = require("../../interaction-metrics");
|
|
14
14
|
var _routeNameContext = _interopRequireDefault(require("../../route-name-context"));
|
|
15
|
+
// eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
|
|
16
|
+
|
|
15
17
|
function traceUFOInteraction(name, interactionType, startTime) {
|
|
16
18
|
var _getMinorInteractions;
|
|
17
19
|
var rate = (0, _config.getInteractionRate)(name, interactionType);
|
|
@@ -30,6 +32,7 @@ function traceUFOInteraction(name, interactionType, startTime) {
|
|
|
30
32
|
}
|
|
31
33
|
if ((0, _coinflip.default)(rate)) {
|
|
32
34
|
var startTimestamp = startTime !== null && startTime !== void 0 ? startTime : performance.now();
|
|
35
|
+
// eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
|
|
33
36
|
var newId = (0, _uuid.v4)();
|
|
34
37
|
_interactionIdContext.DefaultInteractionID.current = newId;
|
|
35
38
|
|
|
@@ -13,6 +13,8 @@ var _experienceTraceIdContext = require("../experience-trace-id-context");
|
|
|
13
13
|
var _interactionIdContext = require("../interaction-id-context");
|
|
14
14
|
var _interactionMetrics = require("../interaction-metrics");
|
|
15
15
|
var _routeNameContext = _interopRequireDefault(require("../route-name-context"));
|
|
16
|
+
// eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
|
|
17
|
+
|
|
16
18
|
var AWAITING_PAGELOAD_NAME = 'awaiting_pageload_name';
|
|
17
19
|
function traceUFOPageLoad(ufoName) {
|
|
18
20
|
var routeName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ufoName;
|
|
@@ -24,6 +26,7 @@ function traceUFOPageLoad(ufoName) {
|
|
|
24
26
|
var rate = ufoName ? (0, _config.getInteractionRate)(ufoName, 'page_load') : 1;
|
|
25
27
|
var enabledBySamplingRate = (0, _coinflip.default)(rate);
|
|
26
28
|
if (enabledBySamplingRate && !activeInteraction) {
|
|
29
|
+
// eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
|
|
27
30
|
var newId = (0, _uuid.v4)();
|
|
28
31
|
_interactionIdContext.DefaultInteractionID.current = newId;
|
|
29
32
|
(0, _interactionMetrics.addNewInteraction)(newId, ufoName || '', 'page_load', 0, rate, null, routeName, (0, _experienceTraceIdContext.getActiveTrace)());
|
|
@@ -17,6 +17,8 @@ var _interactionMetrics = require("../interaction-metrics");
|
|
|
17
17
|
var _routeNameContext = _interopRequireDefault(require("../route-name-context"));
|
|
18
18
|
var _setInteractionActiveTrace = require("./utils/set-interaction-active-trace");
|
|
19
19
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
20
|
+
// eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
|
|
21
|
+
|
|
20
22
|
function traceUFOTransition(ufoName) {
|
|
21
23
|
var routeName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ufoName;
|
|
22
24
|
var pressInteractionsList = (0, _config.getDoNotAbortActivePressInteractionOnTransition)();
|
|
@@ -31,6 +33,7 @@ function traceUFOTransition(ufoName) {
|
|
|
31
33
|
_routeNameContext.default.current = ufoName;
|
|
32
34
|
var rate = (0, _config.getInteractionRate)(ufoName, 'transition');
|
|
33
35
|
if ((0, _coinflip.default)(rate)) {
|
|
36
|
+
// eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
|
|
34
37
|
var newId = (0, _uuid.v4)();
|
|
35
38
|
(0, _setInteractionActiveTrace.setInteractionActiveTrace)(newId);
|
|
36
39
|
_interactionIdContext.DefaultInteractionID.current = newId;
|
|
@@ -11,6 +11,8 @@ var _uuid = require("uuid");
|
|
|
11
11
|
var _coinflip = _interopRequireDefault(require("../coinflip"));
|
|
12
12
|
var _config = require("../config");
|
|
13
13
|
var _interactionMetrics = require("../interaction-metrics");
|
|
14
|
+
// eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
|
|
15
|
+
|
|
14
16
|
var getTypingMetadata = function getTypingMetadata(times, computeStartTime, typingPerformanceTracingMethod) {
|
|
15
17
|
var min = 0;
|
|
16
18
|
var max = 0;
|
|
@@ -49,6 +51,7 @@ function typingPerformanceTracingTimeout(element, name, rate) {
|
|
|
49
51
|
var isInteractionInitialised = false;
|
|
50
52
|
var id;
|
|
51
53
|
var start = function start() {
|
|
54
|
+
// eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
|
|
52
55
|
id = (0, _uuid.v4)();
|
|
53
56
|
(0, _interactionMetrics.addNewInteraction)(id, name, 'typing', performance.now(), rate, null, null);
|
|
54
57
|
isInteractionInitialised = true;
|
|
@@ -102,6 +105,7 @@ function typingPerformanceTracingTimeoutNoAlloc(element, name, rate) {
|
|
|
102
105
|
count = 0;
|
|
103
106
|
};
|
|
104
107
|
var start = function start() {
|
|
108
|
+
// eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
|
|
105
109
|
id = (0, _uuid.v4)();
|
|
106
110
|
(0, _interactionMetrics.addNewInteraction)(id, name, 'typing', performance.now(), rate, null, null);
|
|
107
111
|
isInteractionInitialised = true;
|
|
@@ -171,6 +175,7 @@ function typingPerformanceTracingMutationObserver(element, name, rate) {
|
|
|
171
175
|
eventTime = -1;
|
|
172
176
|
};
|
|
173
177
|
var start = function start() {
|
|
178
|
+
// eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
|
|
174
179
|
id = (0, _uuid.v4)();
|
|
175
180
|
(0, _interactionMetrics.addNewInteraction)(id, name, 'typing', performance.now(), rate, null, null);
|
|
176
181
|
isInteractionInitialised = true;
|
package/dist/cjs/vc/index.js
CHANGED
|
@@ -122,11 +122,11 @@ var VCObserverWrapper = exports.VCObserverWrapper = /*#__PURE__*/function () {
|
|
|
122
122
|
value: function () {
|
|
123
123
|
var _getVCResult = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(param) {
|
|
124
124
|
var _this$oldVCObserver4, _this$newVCObserver3, _ref2;
|
|
125
|
-
var experienceKey, include3p, excludeSmartAnswersInSearch, includeSSRRatio, v1v2Result, v3Result, ssrRatio;
|
|
125
|
+
var experienceKey, include3p, excludeSmartAnswersInSearch, includeSSRRatio, includeRawData, v1v2Result, v3Result, ssrRatio;
|
|
126
126
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
127
127
|
while (1) switch (_context.prev = _context.next) {
|
|
128
128
|
case 0:
|
|
129
|
-
experienceKey = param.experienceKey, include3p = param.include3p, excludeSmartAnswersInSearch = param.excludeSmartAnswersInSearch, includeSSRRatio = param.includeSSRRatio;
|
|
129
|
+
experienceKey = param.experienceKey, include3p = param.include3p, excludeSmartAnswersInSearch = param.excludeSmartAnswersInSearch, includeSSRRatio = param.includeSSRRatio, includeRawData = param.includeRawData;
|
|
130
130
|
if (!((0, _config.isVCRevisionEnabled)('fy25.01', experienceKey) || (0, _config.isVCRevisionEnabled)('fy25.02', experienceKey))) {
|
|
131
131
|
_context.next = 7;
|
|
132
132
|
break;
|
|
@@ -156,7 +156,8 @@ var VCObserverWrapper = exports.VCObserverWrapper = /*#__PURE__*/function () {
|
|
|
156
156
|
includeSSRRatio: includeSSRRatio,
|
|
157
157
|
interactionType: param.interactionType,
|
|
158
158
|
isPageVisible: param.isPageVisible,
|
|
159
|
-
interactionAbortReason: param.interactionAbortReason
|
|
159
|
+
interactionAbortReason: param.interactionAbortReason,
|
|
160
|
+
includeRawData: includeRawData
|
|
160
161
|
});
|
|
161
162
|
case 12:
|
|
162
163
|
_context.t1 = _context.sent;
|
|
@@ -20,6 +20,7 @@ var _fy25_ = _interopRequireDefault(require("./metric-calculator/fy25_03"));
|
|
|
20
20
|
var _getViewportHeight = _interopRequireDefault(require("./metric-calculator/utils/get-viewport-height"));
|
|
21
21
|
var _getViewportWidth = _interopRequireDefault(require("./metric-calculator/utils/get-viewport-width"));
|
|
22
22
|
var _vcnext = _interopRequireDefault(require("./metric-calculator/vcnext"));
|
|
23
|
+
var _rawDataHandler = _interopRequireDefault(require("./raw-data-handler"));
|
|
23
24
|
var _viewportObserver = _interopRequireDefault(require("./viewport-observer"));
|
|
24
25
|
var _windowEventObserver = _interopRequireDefault(require("./window-event-observer"));
|
|
25
26
|
var SSRState = {
|
|
@@ -238,13 +239,14 @@ var VCObserverNew = exports.default = /*#__PURE__*/function () {
|
|
|
238
239
|
key: "getVCResult",
|
|
239
240
|
value: function () {
|
|
240
241
|
var _getVCResult = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(param) {
|
|
241
|
-
var start, stop, interactionId, interactionType, interactionAbortReason, isPageVisible, include3p, includeSSRRatio, excludeSmartAnswersInSearch, results, calculator_fy25_03, orderedEntries, fy25_03, calculator_next, vcNext;
|
|
242
|
+
var start, stop, interactionId, interactionType, interactionAbortReason, isPageVisible, include3p, includeSSRRatio, excludeSmartAnswersInSearch, includeRawData, results, feVCCalculationStartTime, calculator_fy25_03, orderedEntries, fy25_03, calculator_next, vcNext, feVCCalculationEndTime, rawVCCalculationStartTime, rawHandler, raw;
|
|
242
243
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
243
244
|
while (1) switch (_context.prev = _context.next) {
|
|
244
245
|
case 0:
|
|
245
|
-
start = param.start, stop = param.stop, interactionId = param.interactionId, interactionType = param.interactionType, interactionAbortReason = param.interactionAbortReason, isPageVisible = param.isPageVisible, include3p = param.include3p, includeSSRRatio = param.includeSSRRatio, excludeSmartAnswersInSearch = param.excludeSmartAnswersInSearch;
|
|
246
|
+
start = param.start, stop = param.stop, interactionId = param.interactionId, interactionType = param.interactionType, interactionAbortReason = param.interactionAbortReason, isPageVisible = param.isPageVisible, include3p = param.include3p, includeSSRRatio = param.includeSSRRatio, excludeSmartAnswersInSearch = param.excludeSmartAnswersInSearch, includeRawData = param.includeRawData;
|
|
246
247
|
results = [];
|
|
247
248
|
this.addStartEntry(start);
|
|
249
|
+
feVCCalculationStartTime = performance.now();
|
|
248
250
|
calculator_fy25_03 = new _fy25_.default();
|
|
249
251
|
if (param.ssr) {
|
|
250
252
|
this.addSSR(param.ssr);
|
|
@@ -253,7 +255,7 @@ var VCObserverNew = exports.default = /*#__PURE__*/function () {
|
|
|
253
255
|
start: start,
|
|
254
256
|
stop: stop
|
|
255
257
|
});
|
|
256
|
-
_context.next =
|
|
258
|
+
_context.next = 9;
|
|
257
259
|
return calculator_fy25_03.calculate({
|
|
258
260
|
orderedEntries: orderedEntries,
|
|
259
261
|
startTime: start,
|
|
@@ -267,7 +269,7 @@ var VCObserverNew = exports.default = /*#__PURE__*/function () {
|
|
|
267
269
|
isPageVisible: isPageVisible,
|
|
268
270
|
interactionAbortReason: interactionAbortReason
|
|
269
271
|
});
|
|
270
|
-
case
|
|
272
|
+
case 9:
|
|
271
273
|
fy25_03 = _context.sent;
|
|
272
274
|
if (fy25_03) {
|
|
273
275
|
results.push(fy25_03);
|
|
@@ -275,7 +277,7 @@ var VCObserverNew = exports.default = /*#__PURE__*/function () {
|
|
|
275
277
|
|
|
276
278
|
// TODO on cleanup: put behind `enabledVCRevisions` config
|
|
277
279
|
calculator_next = new _vcnext.default();
|
|
278
|
-
_context.next =
|
|
280
|
+
_context.next = 14;
|
|
279
281
|
return calculator_next.calculate({
|
|
280
282
|
orderedEntries: orderedEntries,
|
|
281
283
|
startTime: start,
|
|
@@ -288,13 +290,35 @@ var VCObserverNew = exports.default = /*#__PURE__*/function () {
|
|
|
288
290
|
isPageVisible: isPageVisible,
|
|
289
291
|
interactionAbortReason: interactionAbortReason
|
|
290
292
|
});
|
|
291
|
-
case
|
|
293
|
+
case 14:
|
|
292
294
|
vcNext = _context.sent;
|
|
293
295
|
if (vcNext) {
|
|
294
296
|
results.push(vcNext);
|
|
295
297
|
}
|
|
298
|
+
feVCCalculationEndTime = performance.now();
|
|
299
|
+
if (!(includeRawData && (0, _platformFeatureFlags.fg)('platform_ufo_enable_vc_raw_data'))) {
|
|
300
|
+
_context.next = 24;
|
|
301
|
+
break;
|
|
302
|
+
}
|
|
303
|
+
rawVCCalculationStartTime = performance.now();
|
|
304
|
+
rawHandler = new _rawDataHandler.default();
|
|
305
|
+
_context.next = 22;
|
|
306
|
+
return rawHandler.getRawData({
|
|
307
|
+
entries: orderedEntries,
|
|
308
|
+
startTime: start,
|
|
309
|
+
stopTime: stop,
|
|
310
|
+
isPageVisible: isPageVisible
|
|
311
|
+
});
|
|
312
|
+
case 22:
|
|
313
|
+
raw = _context.sent;
|
|
314
|
+
if (raw) {
|
|
315
|
+
raw.rawVCTime = Number((performance.now() - rawVCCalculationStartTime).toFixed(2));
|
|
316
|
+
raw.feVCTime = Number((feVCCalculationEndTime - feVCCalculationStartTime).toFixed(2));
|
|
317
|
+
results.push(raw);
|
|
318
|
+
}
|
|
319
|
+
case 24:
|
|
296
320
|
return _context.abrupt("return", results);
|
|
297
|
-
case
|
|
321
|
+
case 25:
|
|
298
322
|
case "end":
|
|
299
323
|
return _context.stop();
|
|
300
324
|
}
|
|
@@ -11,6 +11,7 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
|
|
|
11
11
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
12
12
|
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
|
13
13
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
14
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
14
15
|
var _fy25_ = _interopRequireDefault(require("../fy25_03"));
|
|
15
16
|
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
|
|
16
17
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
@@ -18,10 +19,15 @@ function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototyp
|
|
|
18
19
|
// NOTE: `next` to be renamed `fy26.04` once stable
|
|
19
20
|
var REVISION_NO = 'next';
|
|
20
21
|
var getConsideredEntryTypes = function getConsideredEntryTypes() {
|
|
22
|
+
var consideredEntryTypes = ['mutation:display-contents-children-element'];
|
|
23
|
+
if ((0, _platformFeatureFlags.fg)('platform_ufo_remove_ssr_placeholder_in_ttvc_v4')) {
|
|
24
|
+
consideredEntryTypes.push('mutation:ssr-placeholder');
|
|
25
|
+
}
|
|
21
26
|
return ['mutation:display-contents-children-element'];
|
|
22
27
|
};
|
|
23
28
|
var getExcludedEntryTypes = function getExcludedEntryTypes() {
|
|
24
|
-
|
|
29
|
+
var excludedEntryTypes = ['layout-shift:same-rect'];
|
|
30
|
+
return excludedEntryTypes;
|
|
25
31
|
};
|
|
26
32
|
|
|
27
33
|
// NOTE: `VCNext` to be renamed `FY26_04` once stable
|