@atlaskit/react-ufo 3.14.3 → 3.14.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/dist/cjs/create-payload/critical-metrics-payload/index.js +38 -0
- package/dist/cjs/create-payload/critical-metrics-payload/root-metrics.js +180 -0
- package/dist/cjs/create-payload/critical-metrics-payload/segment-metrics/create-segment-metrics.js +251 -0
- package/dist/cjs/create-payload/critical-metrics-payload/segment-metrics/get-is-root-segment.js +9 -0
- package/dist/cjs/create-payload/critical-metrics-payload/segment-metrics/get-segment-id.js +15 -0
- package/dist/cjs/create-payload/critical-metrics-payload/segment-metrics/get-segment-status.js +59 -0
- package/dist/cjs/create-payload/critical-metrics-payload/segment-metrics/has-segment-failed.js +17 -0
- package/dist/cjs/create-payload/critical-metrics-payload/segment-metrics/is-label-stack-under-segment.js +11 -0
- package/dist/cjs/create-payload/critical-metrics-payload/types.js +5 -0
- package/dist/cjs/create-payload/index.js +122 -214
- package/dist/cjs/create-payload/utils/find-matching-legacy-metric.js +15 -0
- package/dist/cjs/create-payload/utils/get-browser-metadata.js +87 -0
- package/dist/cjs/create-payload/utils/get-fmp.js +52 -0
- package/dist/cjs/create-payload/utils/get-navigation-metrics.js +66 -0
- package/dist/cjs/create-payload/utils/get-paint-metrics.js +124 -0
- package/dist/cjs/create-payload/utils/get-payload-size.js +17 -0
- package/dist/cjs/create-payload/utils/get-react-ufo-payload-version.js +3 -1
- package/dist/cjs/create-payload/utils/get-ssr-success.js +15 -0
- package/dist/cjs/create-payload/utils/get-ttai.js +14 -0
- package/dist/cjs/create-payload/utils/get-tti.js +38 -0
- package/dist/cjs/interaction-metrics/index.js +25 -0
- package/dist/cjs/vc/vc-observer-new/metric-calculator/fy25_03/index.js +3 -0
- package/dist/es2019/create-payload/critical-metrics-payload/index.js +6 -0
- package/dist/es2019/create-payload/critical-metrics-payload/root-metrics.js +166 -0
- package/dist/es2019/create-payload/critical-metrics-payload/segment-metrics/create-segment-metrics.js +155 -0
- package/dist/es2019/create-payload/critical-metrics-payload/segment-metrics/get-is-root-segment.js +3 -0
- package/dist/es2019/create-payload/critical-metrics-payload/segment-metrics/get-segment-id.js +9 -0
- package/dist/es2019/create-payload/critical-metrics-payload/segment-metrics/get-segment-status.js +40 -0
- package/dist/es2019/create-payload/critical-metrics-payload/segment-metrics/has-segment-failed.js +10 -0
- package/dist/es2019/create-payload/critical-metrics-payload/segment-metrics/is-label-stack-under-segment.js +5 -0
- package/dist/es2019/create-payload/critical-metrics-payload/types.js +1 -0
- package/dist/es2019/create-payload/index.js +55 -151
- package/dist/es2019/create-payload/utils/find-matching-legacy-metric.js +7 -0
- package/dist/es2019/create-payload/utils/get-browser-metadata.js +79 -0
- package/dist/es2019/create-payload/utils/get-fmp.js +47 -0
- package/dist/es2019/create-payload/utils/get-navigation-metrics.js +59 -0
- package/dist/es2019/create-payload/utils/get-paint-metrics.js +78 -0
- package/dist/es2019/create-payload/utils/get-payload-size.js +11 -0
- package/dist/es2019/create-payload/utils/get-react-ufo-payload-version.js +2 -1
- package/dist/es2019/create-payload/utils/get-ssr-success.js +7 -0
- package/dist/es2019/create-payload/utils/get-ttai.js +9 -0
- package/dist/es2019/create-payload/utils/get-tti.js +35 -0
- package/dist/es2019/interaction-metrics/index.js +24 -0
- package/dist/es2019/vc/vc-observer-new/metric-calculator/fy25_03/index.js +3 -0
- package/dist/esm/create-payload/critical-metrics-payload/index.js +31 -0
- package/dist/esm/create-payload/critical-metrics-payload/root-metrics.js +174 -0
- package/dist/esm/create-payload/critical-metrics-payload/segment-metrics/create-segment-metrics.js +244 -0
- package/dist/esm/create-payload/critical-metrics-payload/segment-metrics/get-is-root-segment.js +3 -0
- package/dist/esm/create-payload/critical-metrics-payload/segment-metrics/get-segment-id.js +9 -0
- package/dist/esm/create-payload/critical-metrics-payload/segment-metrics/get-segment-status.js +52 -0
- package/dist/esm/create-payload/critical-metrics-payload/segment-metrics/has-segment-failed.js +10 -0
- package/dist/esm/create-payload/critical-metrics-payload/segment-metrics/is-label-stack-under-segment.js +5 -0
- package/dist/esm/create-payload/critical-metrics-payload/types.js +1 -0
- package/dist/esm/create-payload/index.js +121 -210
- package/dist/esm/create-payload/utils/find-matching-legacy-metric.js +9 -0
- package/dist/esm/create-payload/utils/get-browser-metadata.js +79 -0
- package/dist/esm/create-payload/utils/get-fmp.js +47 -0
- package/dist/esm/create-payload/utils/get-navigation-metrics.js +59 -0
- package/dist/esm/create-payload/utils/get-paint-metrics.js +119 -0
- package/dist/esm/create-payload/utils/get-payload-size.js +11 -0
- package/dist/esm/create-payload/utils/get-react-ufo-payload-version.js +2 -1
- package/dist/esm/create-payload/utils/get-ssr-success.js +7 -0
- package/dist/esm/create-payload/utils/get-ttai.js +7 -0
- package/dist/esm/create-payload/utils/get-tti.js +33 -0
- package/dist/esm/interaction-metrics/index.js +24 -0
- package/dist/esm/vc/vc-observer-new/metric-calculator/fy25_03/index.js +3 -0
- package/dist/types/common/common/types.d.ts +1 -1
- package/dist/types/common/react-ufo-payload-schema.d.ts +23 -2
- package/dist/types/create-payload/critical-metrics-payload/index.d.ts +6 -0
- package/dist/types/create-payload/critical-metrics-payload/root-metrics.d.ts +7 -0
- package/dist/types/create-payload/critical-metrics-payload/segment-metrics/create-segment-metrics.d.ts +3 -0
- package/dist/types/create-payload/critical-metrics-payload/segment-metrics/get-is-root-segment.d.ts +2 -0
- package/dist/types/create-payload/critical-metrics-payload/segment-metrics/get-segment-id.d.ts +2 -0
- package/dist/types/create-payload/critical-metrics-payload/segment-metrics/get-segment-status.d.ts +7 -0
- package/dist/types/create-payload/critical-metrics-payload/segment-metrics/has-segment-failed.d.ts +2 -0
- package/dist/types/create-payload/critical-metrics-payload/segment-metrics/is-label-stack-under-segment.d.ts +2 -0
- package/dist/types/create-payload/critical-metrics-payload/types.d.ts +128 -0
- package/dist/types/create-payload/index.d.ts +339 -834
- package/dist/types/create-payload/utils/find-matching-legacy-metric.d.ts +5 -0
- package/dist/types/create-payload/utils/get-browser-metadata.d.ts +21 -0
- package/dist/types/create-payload/utils/get-fmp.d.ts +6 -0
- package/dist/types/create-payload/utils/get-navigation-metrics.d.ts +29 -0
- package/dist/types/create-payload/utils/get-paint-metrics.d.ts +13 -0
- package/dist/types/create-payload/utils/get-payload-size.d.ts +1 -0
- package/dist/types/create-payload/utils/get-react-ufo-payload-version.d.ts +2 -1
- package/dist/types/create-payload/utils/get-ssr-success.d.ts +2 -0
- package/dist/types/create-payload/utils/get-ttai.d.ts +2 -0
- package/dist/types/create-payload/utils/get-tti.d.ts +7 -0
- package/dist/types/interaction-metrics/index.d.ts +1 -0
- package/dist/types-ts4.5/common/common/types.d.ts +1 -1
- package/dist/types-ts4.5/common/react-ufo-payload-schema.d.ts +23 -2
- package/dist/types-ts4.5/create-payload/critical-metrics-payload/index.d.ts +6 -0
- package/dist/types-ts4.5/create-payload/critical-metrics-payload/root-metrics.d.ts +7 -0
- package/dist/types-ts4.5/create-payload/critical-metrics-payload/segment-metrics/create-segment-metrics.d.ts +3 -0
- package/dist/types-ts4.5/create-payload/critical-metrics-payload/segment-metrics/get-is-root-segment.d.ts +2 -0
- package/dist/types-ts4.5/create-payload/critical-metrics-payload/segment-metrics/get-segment-id.d.ts +2 -0
- package/dist/types-ts4.5/create-payload/critical-metrics-payload/segment-metrics/get-segment-status.d.ts +7 -0
- package/dist/types-ts4.5/create-payload/critical-metrics-payload/segment-metrics/has-segment-failed.d.ts +2 -0
- package/dist/types-ts4.5/create-payload/critical-metrics-payload/segment-metrics/is-label-stack-under-segment.d.ts +2 -0
- package/dist/types-ts4.5/create-payload/critical-metrics-payload/types.d.ts +130 -0
- package/dist/types-ts4.5/create-payload/index.d.ts +339 -834
- package/dist/types-ts4.5/create-payload/utils/find-matching-legacy-metric.d.ts +5 -0
- package/dist/types-ts4.5/create-payload/utils/get-browser-metadata.d.ts +21 -0
- package/dist/types-ts4.5/create-payload/utils/get-fmp.d.ts +6 -0
- package/dist/types-ts4.5/create-payload/utils/get-navigation-metrics.d.ts +29 -0
- package/dist/types-ts4.5/create-payload/utils/get-paint-metrics.d.ts +13 -0
- package/dist/types-ts4.5/create-payload/utils/get-payload-size.d.ts +1 -0
- package/dist/types-ts4.5/create-payload/utils/get-react-ufo-payload-version.d.ts +2 -1
- package/dist/types-ts4.5/create-payload/utils/get-ssr-success.d.ts +2 -0
- package/dist/types-ts4.5/create-payload/utils/get-ttai.d.ts +2 -0
- package/dist/types-ts4.5/create-payload/utils/get-tti.d.ts +7 -0
- package/dist/types-ts4.5/interaction-metrics/index.d.ts +1 -0
- package/package.json +8 -1
|
@@ -8,12 +8,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.createExperimentalMetricsPayload = createExperimentalMetricsPayload;
|
|
9
9
|
exports.createPayloads = createPayloads;
|
|
10
10
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
11
12
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
12
13
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
13
14
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
14
15
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
-
var
|
|
16
|
-
var _bowserUltralight = _interopRequireDefault(require("bowser-ultralight"));
|
|
16
|
+
var _browserApis = require("@atlaskit/browser-apis");
|
|
17
17
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
18
18
|
var _additionalPayload = require("../additional-payload");
|
|
19
19
|
var _assets = require("../assets");
|
|
@@ -32,10 +32,17 @@ var _resourceTimingBuffer = require("../resource-timing/common/utils/resource-ti
|
|
|
32
32
|
var _roundNumber = require("../round-number");
|
|
33
33
|
var ssr = _interopRequireWildcard(require("../ssr"));
|
|
34
34
|
var _utils = require("./common/utils");
|
|
35
|
+
var _criticalMetricsPayload = require("./critical-metrics-payload");
|
|
36
|
+
var _getBrowserMetadata = require("./utils/get-browser-metadata");
|
|
35
37
|
var _getInteractionStatus = _interopRequireDefault(require("./utils/get-interaction-status"));
|
|
38
|
+
var _getNavigationMetrics = require("./utils/get-navigation-metrics");
|
|
36
39
|
var _getPageVisibilityUpToTtai = _interopRequireDefault(require("./utils/get-page-visibility-up-to-ttai"));
|
|
40
|
+
var _getPaintMetrics = require("./utils/get-paint-metrics");
|
|
41
|
+
var _getPayloadSize = _interopRequireDefault(require("./utils/get-payload-size"));
|
|
37
42
|
var _getReactUfoPayloadVersion = require("./utils/get-react-ufo-payload-version");
|
|
38
43
|
var _getSsrDoneTimeValue = _interopRequireDefault(require("./utils/get-ssr-done-time-value"));
|
|
44
|
+
var _getSsrSuccess = _interopRequireDefault(require("./utils/get-ssr-success"));
|
|
45
|
+
var _getTtai = _interopRequireDefault(require("./utils/get-ttai"));
|
|
39
46
|
var _getVcMetrics = _interopRequireDefault(require("./utils/get-vc-metrics"));
|
|
40
47
|
var _excluded = ["labelStack", "time"],
|
|
41
48
|
_excluded2 = ["stopTime", "labelStack"],
|
|
@@ -43,7 +50,7 @@ var _excluded = ["labelStack", "time"],
|
|
|
43
50
|
_excluded4 = ["labelStack"];
|
|
44
51
|
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); }
|
|
45
52
|
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; }
|
|
46
|
-
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; }
|
|
53
|
+
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
|
|
47
54
|
function getUfoNameOverride(interaction) {
|
|
48
55
|
var ufoName = interaction.ufoName,
|
|
49
56
|
apdex = interaction.apdex;
|
|
@@ -152,138 +159,12 @@ function getResourceTimings(start, end) {
|
|
|
152
159
|
function getBundleEvalTimings(start) {
|
|
153
160
|
return bundleEvalTiming.getBundleEvalTimings(start);
|
|
154
161
|
}
|
|
155
|
-
function getSSRSuccess(type) {
|
|
156
|
-
return type === 'page_load' ? ssr.getSSRSuccess() : undefined;
|
|
157
|
-
}
|
|
158
162
|
function getSSRPhaseSuccess(type) {
|
|
159
163
|
return type === 'page_load' ? ssr.getSSRPhaseSuccess() : undefined;
|
|
160
164
|
}
|
|
161
165
|
function getSSRFeatureFlags(type) {
|
|
162
166
|
return type === 'page_load' ? ssr.getSSRFeatureFlags() : undefined;
|
|
163
167
|
}
|
|
164
|
-
var getLCP = function getLCP(end) {
|
|
165
|
-
return new Promise(function (resolve) {
|
|
166
|
-
var observer;
|
|
167
|
-
var timeout = setTimeout(function () {
|
|
168
|
-
var _observer;
|
|
169
|
-
(_observer = observer) === null || _observer === void 0 || _observer.disconnect();
|
|
170
|
-
resolve(null);
|
|
171
|
-
}, 200);
|
|
172
|
-
var performanceObserverCallback = function performanceObserverCallback(list) {
|
|
173
|
-
var entries = Array.from(list.getEntries());
|
|
174
|
-
var lastEntry = entries.reduce(function (agg, entry) {
|
|
175
|
-
// Use the latest LCP candidate before TTAI
|
|
176
|
-
if (entry.startTime <= end && (agg === null || agg.startTime < entry.startTime)) {
|
|
177
|
-
return entry;
|
|
178
|
-
}
|
|
179
|
-
return agg;
|
|
180
|
-
}, null);
|
|
181
|
-
clearTimeout(timeout);
|
|
182
|
-
if (!lastEntry || lastEntry === null) {
|
|
183
|
-
resolve(null);
|
|
184
|
-
} else {
|
|
185
|
-
resolve(lastEntry.startTime);
|
|
186
|
-
}
|
|
187
|
-
};
|
|
188
|
-
observer = new PerformanceObserver(performanceObserverCallback);
|
|
189
|
-
observer.observe({
|
|
190
|
-
type: 'largest-contentful-paint',
|
|
191
|
-
buffered: true
|
|
192
|
-
});
|
|
193
|
-
});
|
|
194
|
-
};
|
|
195
|
-
function getPaintMetrics(_x, _x2) {
|
|
196
|
-
return _getPaintMetrics.apply(this, arguments);
|
|
197
|
-
}
|
|
198
|
-
function _getPaintMetrics() {
|
|
199
|
-
_getPaintMetrics = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(type, end) {
|
|
200
|
-
var metrics, lcp;
|
|
201
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
202
|
-
while (1) switch (_context.prev = _context.next) {
|
|
203
|
-
case 0:
|
|
204
|
-
if (!(type !== 'page_load')) {
|
|
205
|
-
_context.next = 2;
|
|
206
|
-
break;
|
|
207
|
-
}
|
|
208
|
-
return _context.abrupt("return", {});
|
|
209
|
-
case 2:
|
|
210
|
-
metrics = {};
|
|
211
|
-
performance.getEntriesByType('paint').forEach(function (entry) {
|
|
212
|
-
if (entry.name === 'first-paint') {
|
|
213
|
-
metrics['metric:fp'] = Math.round(entry.startTime);
|
|
214
|
-
}
|
|
215
|
-
if (entry.name === 'first-contentful-paint') {
|
|
216
|
-
metrics['metric:fcp'] = Math.round(entry.startTime);
|
|
217
|
-
}
|
|
218
|
-
});
|
|
219
|
-
_context.next = 6;
|
|
220
|
-
return getLCP(end);
|
|
221
|
-
case 6:
|
|
222
|
-
lcp = _context.sent;
|
|
223
|
-
if (lcp) {
|
|
224
|
-
metrics['metric:lcp'] = Math.round(lcp);
|
|
225
|
-
}
|
|
226
|
-
return _context.abrupt("return", metrics);
|
|
227
|
-
case 9:
|
|
228
|
-
case "end":
|
|
229
|
-
return _context.stop();
|
|
230
|
-
}
|
|
231
|
-
}, _callee);
|
|
232
|
-
}));
|
|
233
|
-
return _getPaintMetrics.apply(this, arguments);
|
|
234
|
-
}
|
|
235
|
-
function getTTAI(interaction) {
|
|
236
|
-
var start = interaction.start,
|
|
237
|
-
end = interaction.end;
|
|
238
|
-
var pageVisibilityUpToTTAI = (0, _getPageVisibilityUpToTtai.default)(interaction);
|
|
239
|
-
return !interaction.abortReason && pageVisibilityUpToTTAI === 'visible' ? Math.round(end - start) : undefined;
|
|
240
|
-
}
|
|
241
|
-
function getNavigationMetrics(type) {
|
|
242
|
-
if (type !== 'page_load') {
|
|
243
|
-
return {};
|
|
244
|
-
}
|
|
245
|
-
var entries = performance.getEntriesByType('navigation');
|
|
246
|
-
if (entries.length === 0) {
|
|
247
|
-
return {};
|
|
248
|
-
}
|
|
249
|
-
var navigation = entries[0];
|
|
250
|
-
var metrics = {
|
|
251
|
-
// From https://www.w3.org/TR/resource-timing/
|
|
252
|
-
redirectStart: Math.round(navigation.redirectStart),
|
|
253
|
-
redirectEnd: Math.round(navigation.redirectEnd),
|
|
254
|
-
fetchStart: Math.round(navigation.fetchStart),
|
|
255
|
-
domainLookupStart: Math.round(navigation.domainLookupStart),
|
|
256
|
-
domainLookupEnd: Math.round(navigation.domainLookupEnd),
|
|
257
|
-
connectStart: Math.round(navigation.connectStart),
|
|
258
|
-
connectEnd: Math.round(navigation.connectEnd),
|
|
259
|
-
secureConnectionStart: Math.round(navigation.secureConnectionStart),
|
|
260
|
-
requestStart: Math.round(navigation.requestStart),
|
|
261
|
-
responseStart: Math.round(navigation.responseStart),
|
|
262
|
-
responseEnd: Math.round(navigation.responseEnd),
|
|
263
|
-
encodedBodySize: Math.round(navigation.encodedBodySize),
|
|
264
|
-
decodedBodySize: Math.round(navigation.decodedBodySize),
|
|
265
|
-
transferSize: Math.round(navigation.transferSize),
|
|
266
|
-
// From https://www.w3.org/TR/navigation-timing-2/
|
|
267
|
-
redirectCount: navigation.redirectCount,
|
|
268
|
-
type: navigation.type,
|
|
269
|
-
unloadEventEnd: Math.round(navigation.unloadEventEnd),
|
|
270
|
-
unloadEventStart: Math.round(navigation.unloadEventStart),
|
|
271
|
-
workerStart: Math.round(navigation.workerStart),
|
|
272
|
-
nextHopProtocol: navigation.nextHopProtocol
|
|
273
|
-
|
|
274
|
-
// The following properties are ignored because they provided limited value on a modern stack (e.g. the content
|
|
275
|
-
// is usually rendered and interactive before the dom is fully parsed, dont't play well with streamed content...)
|
|
276
|
-
// * domComplete
|
|
277
|
-
// * domContentLoadedEventEnd
|
|
278
|
-
// * domContentLoadedEventStart
|
|
279
|
-
// * domInteractive
|
|
280
|
-
// * loadEventEnd
|
|
281
|
-
// * loadEventStart
|
|
282
|
-
};
|
|
283
|
-
return {
|
|
284
|
-
'metrics:navigation': metrics
|
|
285
|
-
};
|
|
286
|
-
}
|
|
287
168
|
function getPPSMetrics(interaction) {
|
|
288
169
|
var _interaction$apdex;
|
|
289
170
|
var start = interaction.start,
|
|
@@ -314,7 +195,7 @@ function getPPSMetrics(interaction) {
|
|
|
314
195
|
function getSSRProperties(type) {
|
|
315
196
|
var ssrPhases = getSSRPhaseSuccess(type);
|
|
316
197
|
return _objectSpread(_objectSpread({
|
|
317
|
-
'ssr:success':
|
|
198
|
+
'ssr:success': (0, _getSsrSuccess.default)(type),
|
|
318
199
|
'ssr:featureFlags': getSSRFeatureFlags(type)
|
|
319
200
|
}, (ssrPhases === null || ssrPhases === void 0 ? void 0 : ssrPhases.earlyFlush) != null ? {
|
|
320
201
|
'ssr:earlyflush:success': ssrPhases.earlyFlush
|
|
@@ -347,33 +228,6 @@ function getAssetsMetrics(interaction, SSRDoneTime) {
|
|
|
347
228
|
return {};
|
|
348
229
|
}
|
|
349
230
|
}
|
|
350
|
-
function getBrowserMetadata() {
|
|
351
|
-
var data = {};
|
|
352
|
-
var now = new Date();
|
|
353
|
-
data['event:localHour'] = now.getHours(); // returns the hours for this date according to local time
|
|
354
|
-
data['event:localDayOfWeek'] = now.getDay(); // Sunday - Saturday : 0 - 6
|
|
355
|
-
data['event:localTimezoneOffset'] = now.getTimezoneOffset(); // A number representing the difference, in minutes, between the date as evaluated in the UTC time zone and as evaluated in the local time zone.
|
|
356
|
-
|
|
357
|
-
if (navigator.userAgent != null) {
|
|
358
|
-
var browser = _bowserUltralight.default.getParser(navigator.userAgent);
|
|
359
|
-
data['event:browser:name'] = browser.getBrowserName();
|
|
360
|
-
data['event:browser:version'] = browser.getBrowserVersion();
|
|
361
|
-
}
|
|
362
|
-
if (navigator.hardwareConcurrency != null) {
|
|
363
|
-
data['event:cpus'] = navigator.hardwareConcurrency;
|
|
364
|
-
}
|
|
365
|
-
if (navigator.deviceMemory != null) {
|
|
366
|
-
data['event:memory'] = navigator.deviceMemory;
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
// eslint-disable-next-line compat/compat
|
|
370
|
-
if (navigator.connection != null) {
|
|
371
|
-
data['event:network:effectiveType'] = navigator.connection.effectiveType;
|
|
372
|
-
data['event:network:rtt'] = navigator.connection.rtt;
|
|
373
|
-
data['event:network:downlink'] = navigator.connection.downlink;
|
|
374
|
-
}
|
|
375
|
-
return data;
|
|
376
|
-
}
|
|
377
231
|
function getTracingContextData(interaction) {
|
|
378
232
|
var trace = interaction.trace,
|
|
379
233
|
start = interaction.start;
|
|
@@ -392,6 +246,7 @@ function getTracingContextData(interaction) {
|
|
|
392
246
|
}
|
|
393
247
|
function optimizeCustomData(interaction) {
|
|
394
248
|
var customData = interaction.customData,
|
|
249
|
+
cohortingCustomData = interaction.cohortingCustomData,
|
|
395
250
|
legacyMetrics = interaction.legacyMetrics;
|
|
396
251
|
var customDataMap = customData.reduce(function (result, _ref2) {
|
|
397
252
|
var _result$get$data, _result$get;
|
|
@@ -405,6 +260,17 @@ function optimizeCustomData(interaction) {
|
|
|
405
260
|
});
|
|
406
261
|
return result;
|
|
407
262
|
}, new Map());
|
|
263
|
+
|
|
264
|
+
// Merge cohorting custom data into the same map
|
|
265
|
+
if (cohortingCustomData && cohortingCustomData.size > 0) {
|
|
266
|
+
var _interaction$labelSta, _customDataMap$get$da, _customDataMap$get, _interaction$labelSta2;
|
|
267
|
+
var label = (0, _utils.stringifyLabelStackFully)((_interaction$labelSta = interaction.labelStack) !== null && _interaction$labelSta !== void 0 ? _interaction$labelSta : []);
|
|
268
|
+
var value = (_customDataMap$get$da = (_customDataMap$get = customDataMap.get(label)) === null || _customDataMap$get === void 0 ? void 0 : _customDataMap$get.data) !== null && _customDataMap$get$da !== void 0 ? _customDataMap$get$da : {};
|
|
269
|
+
customDataMap.set(label, {
|
|
270
|
+
labelStack: (0, _utils.optimizeLabelStack)((_interaction$labelSta2 = interaction.labelStack) !== null && _interaction$labelSta2 !== void 0 ? _interaction$labelSta2 : [], (0, _getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)),
|
|
271
|
+
data: Object.assign(value, Object.fromEntries(cohortingCustomData))
|
|
272
|
+
});
|
|
273
|
+
}
|
|
408
274
|
if (legacyMetrics) {
|
|
409
275
|
var legacyMetricsFiltered = legacyMetrics.filter(function (item) {
|
|
410
276
|
return item.type === 'PAGE_LOAD';
|
|
@@ -413,12 +279,12 @@ function optimizeCustomData(interaction) {
|
|
|
413
279
|
var _result$get$data2, _result$get2;
|
|
414
280
|
var _Object$entries$_i = (0, _slicedToArray2.default)(_Object$entries[_i], 2),
|
|
415
281
|
key = _Object$entries$_i[0],
|
|
416
|
-
|
|
417
|
-
var
|
|
418
|
-
var labelValue = (_result$get$data2 = (_result$get2 = result.get(
|
|
419
|
-
result.set(
|
|
282
|
+
_value = _Object$entries$_i[1];
|
|
283
|
+
var _label = (0, _utils.stringifyLabelStackFully)([]);
|
|
284
|
+
var labelValue = (_result$get$data2 = (_result$get2 = result.get(_label)) === null || _result$get2 === void 0 ? void 0 : _result$get2.data) !== null && _result$get$data2 !== void 0 ? _result$get$data2 : {};
|
|
285
|
+
result.set(_label, {
|
|
420
286
|
labelStack: (0, _utils.optimizeLabelStack)([], (0, _getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)),
|
|
421
|
-
data: Object.assign(labelValue, (0, _defineProperty2.default)({}, key,
|
|
287
|
+
data: Object.assign(labelValue, (0, _defineProperty2.default)({}, key, _value))
|
|
422
288
|
});
|
|
423
289
|
}
|
|
424
290
|
return result;
|
|
@@ -656,14 +522,15 @@ function getBm3TrackerTimings(interaction) {
|
|
|
656
522
|
legacyMetrics: legacyMetrics
|
|
657
523
|
};
|
|
658
524
|
}
|
|
659
|
-
function getPayloadSize(payload) {
|
|
660
|
-
return Math.round(new TextEncoder().encode(JSON.stringify(payload)).length / 1024);
|
|
661
|
-
}
|
|
662
525
|
function getStylesheetMetrics() {
|
|
663
526
|
try {
|
|
664
|
-
var
|
|
527
|
+
var doc = (0, _browserApis.getDocument)();
|
|
528
|
+
if (!doc) {
|
|
529
|
+
return {};
|
|
530
|
+
}
|
|
531
|
+
var stylesheets = Array.from(doc.styleSheets);
|
|
665
532
|
var stylesheetCount = stylesheets.length;
|
|
666
|
-
var cssrules = Array.from(
|
|
533
|
+
var cssrules = Array.from(doc.styleSheets).reduce(function (acc, item) {
|
|
667
534
|
// Other domain stylesheets throw a SecurityError
|
|
668
535
|
try {
|
|
669
536
|
return acc + item.cssRules.length;
|
|
@@ -671,9 +538,9 @@ function getStylesheetMetrics() {
|
|
|
671
538
|
return acc;
|
|
672
539
|
}
|
|
673
540
|
}, 0);
|
|
674
|
-
var styleElements =
|
|
675
|
-
var styleProps =
|
|
676
|
-
var styleDeclarations = Array.from(
|
|
541
|
+
var styleElements = doc.querySelectorAll('style').length;
|
|
542
|
+
var styleProps = doc.querySelectorAll('[style]');
|
|
543
|
+
var styleDeclarations = Array.from(doc.querySelectorAll('[style]')).reduce(function (acc, item) {
|
|
677
544
|
try {
|
|
678
545
|
if ('style' in item) {
|
|
679
546
|
return acc + item.style.length;
|
|
@@ -703,20 +570,20 @@ function getErrorCounts(interaction) {
|
|
|
703
570
|
'ufo:errors:count': interaction.errors.length
|
|
704
571
|
};
|
|
705
572
|
}
|
|
706
|
-
function createInteractionMetricsPayload(_x3, _x4, _x5) {
|
|
573
|
+
function createInteractionMetricsPayload(_x, _x2, _x3, _x4, _x5) {
|
|
707
574
|
return _createInteractionMetricsPayload.apply(this, arguments);
|
|
708
575
|
}
|
|
709
576
|
function _createInteractionMetricsPayload() {
|
|
710
|
-
_createInteractionMetricsPayload = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
577
|
+
_createInteractionMetricsPayload = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(interaction, interactionId, experimental, criticalPayloadCount, vcMetrics) {
|
|
711
578
|
var _window$location, _config$additionalPay;
|
|
712
|
-
var interactionPayloadStart, config, end, start, ufoName, knownSegments, rate, type, abortReason, routeName, featureFlags, previousInteractionName, isPreviousInteractionAborted, abortedByInteractionName, responsiveness, unknownElementName, unknownElementHierarchy, pageVisibilityAtTTI, pageVisibilityAtTTAI, segments, segmentTree, isDetailedPayload, isPageLoad, calculatePageVisibilityFromTheStartOfPageLoad, moreAccuratePageVisibilityAtTTI, moreAccuratePageVisibilityAtTTAI, labelStack, getInitialPageLoadSSRMetrics, pageLoadInteractionMetrics, getDetailedInteractionMetrics, getPageLoadDetailedInteractionMetrics, newUFOName, resourceTimings, _yield$Promise$all, _yield$Promise$all2,
|
|
713
|
-
return _regenerator.default.wrap(function
|
|
714
|
-
while (1) switch (
|
|
579
|
+
var interactionPayloadStart, config, end, start, ufoName, knownSegments, rate, type, abortReason, routeName, featureFlags, previousInteractionName, isPreviousInteractionAborted, abortedByInteractionName, responsiveness, unknownElementName, unknownElementHierarchy, 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, payload;
|
|
580
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
581
|
+
while (1) switch (_context.prev = _context.next) {
|
|
715
582
|
case 0:
|
|
716
583
|
interactionPayloadStart = performance.now();
|
|
717
584
|
config = (0, _config.getConfig)();
|
|
718
585
|
if (config) {
|
|
719
|
-
|
|
586
|
+
_context.next = 4;
|
|
720
587
|
break;
|
|
721
588
|
}
|
|
722
589
|
throw Error('UFO Configuration not provided');
|
|
@@ -788,18 +655,33 @@ function _createInteractionMetricsPayload() {
|
|
|
788
655
|
};
|
|
789
656
|
};
|
|
790
657
|
if (experimental) {
|
|
791
|
-
expTTAI =
|
|
658
|
+
expTTAI = (0, _getTtai.default)(interaction);
|
|
792
659
|
} else {
|
|
793
|
-
regularTTAI =
|
|
660
|
+
regularTTAI = (0, _getTtai.default)(interaction);
|
|
794
661
|
}
|
|
795
662
|
newUFOName = (0, _utils.sanitizeUfoName)(ufoName);
|
|
796
663
|
resourceTimings = getResourceTimings(start, end);
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
664
|
+
_context.t0 = Promise;
|
|
665
|
+
_context.t1 = vcMetrics;
|
|
666
|
+
if (_context.t1) {
|
|
667
|
+
_context.next = 28;
|
|
668
|
+
break;
|
|
669
|
+
}
|
|
670
|
+
_context.next = 27;
|
|
671
|
+
return (0, _getVcMetrics.default)(interaction);
|
|
672
|
+
case 27:
|
|
673
|
+
_context.t1 = _context.sent;
|
|
674
|
+
case 28:
|
|
675
|
+
_context.t2 = _context.t1;
|
|
676
|
+
_context.t3 = experimental ? (0, _createExperimentalInteractionMetricsPayload.getExperimentalVCMetrics)(interaction) : Promise.resolve(undefined);
|
|
677
|
+
_context.t4 = (0, _getPaintMetrics.getPaintMetricsToLegacyFormat)(type, end);
|
|
678
|
+
_context.t5 = [_context.t2, _context.t3, _context.t4];
|
|
679
|
+
_context.next = 34;
|
|
680
|
+
return _context.t0.all.call(_context.t0, _context.t5);
|
|
681
|
+
case 34:
|
|
682
|
+
_yield$Promise$all = _context.sent;
|
|
801
683
|
_yield$Promise$all2 = (0, _slicedToArray2.default)(_yield$Promise$all, 3);
|
|
802
|
-
|
|
684
|
+
finalVCMetrics = _yield$Promise$all2[0];
|
|
803
685
|
experimentalMetrics = _yield$Promise$all2[1];
|
|
804
686
|
paintMetrics = _yield$Promise$all2[2];
|
|
805
687
|
payload = {
|
|
@@ -809,7 +691,7 @@ function _createInteractionMetricsPayload() {
|
|
|
809
691
|
source: 'measured',
|
|
810
692
|
tags: ['observability'],
|
|
811
693
|
attributes: {
|
|
812
|
-
properties: _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
694
|
+
properties: _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
813
695
|
// basic
|
|
814
696
|
'event:hostname': ((_window$location = window.location) === null || _window$location === void 0 ? void 0 : _window$location.hostname) || 'unknown',
|
|
815
697
|
'event:product': config.product,
|
|
@@ -826,7 +708,10 @@ function _createInteractionMetricsPayload() {
|
|
|
826
708
|
'event:cpu:usage': (0, _machineUtilisation.createPressureStateReport)(interaction.start, interaction.end)
|
|
827
709
|
} : {}), (0, _platformFeatureFlags.fg)('platform_ufo_report_memory_usage') ? {
|
|
828
710
|
'event:memory:usage': (0, _machineUtilisation.createMemoryStateReport)(interaction.start, interaction.end)
|
|
829
|
-
} : {}),
|
|
711
|
+
} : {}), criticalPayloadCount !== undefined ? {
|
|
712
|
+
'ufo:multipayload': true,
|
|
713
|
+
'ufo:criticalPayloadCount': criticalPayloadCount
|
|
714
|
+
} : {}), (0, _getBrowserMetadata.getBrowserMetadataToLegacyFormat)()), getSSRProperties(type)), getAssetsMetrics(interaction, pageLoadInteractionMetrics === null || pageLoadInteractionMetrics === void 0 ? void 0 : pageLoadInteractionMetrics.SSRDoneTime)), getPPSMetrics(interaction)), paintMetrics), (0, _getNavigationMetrics.getNavigationMetricsToLegacyFormat)(type)), finalVCMetrics), experimentalMetrics), (_config$additionalPay = config.additionalPayloadData) === null || _config$additionalPay === void 0 ? void 0 : _config$additionalPay.call(config, interaction)), getTracingContextData(interaction)), getStylesheetMetrics()), getErrorCounts(interaction)), {}, {
|
|
830
715
|
interactionMetrics: _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
831
716
|
namePrefix: config.namePrefix || '',
|
|
832
717
|
segmentPrefix: config.segmentPrefix || '',
|
|
@@ -876,13 +761,13 @@ function _createInteractionMetricsPayload() {
|
|
|
876
761
|
regularTTAI = undefined;
|
|
877
762
|
expTTAI = undefined;
|
|
878
763
|
}
|
|
879
|
-
payload.attributes.properties['event:sizeInKb'] =
|
|
880
|
-
return
|
|
881
|
-
case
|
|
764
|
+
payload.attributes.properties['event:sizeInKb'] = (0, _getPayloadSize.default)(payload.attributes.properties);
|
|
765
|
+
return _context.abrupt("return", payload);
|
|
766
|
+
case 43:
|
|
882
767
|
case "end":
|
|
883
|
-
return
|
|
768
|
+
return _context.stop();
|
|
884
769
|
}
|
|
885
|
-
},
|
|
770
|
+
}, _callee);
|
|
886
771
|
}));
|
|
887
772
|
return _createInteractionMetricsPayload.apply(this, arguments);
|
|
888
773
|
}
|
|
@@ -890,25 +775,48 @@ function createPayloads(_x6, _x7) {
|
|
|
890
775
|
return _createPayloads.apply(this, arguments);
|
|
891
776
|
}
|
|
892
777
|
function _createPayloads() {
|
|
893
|
-
_createPayloads = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
894
|
-
var ufoNameOverride, modifiedInteraction, interactionMetricsPayload;
|
|
895
|
-
return _regenerator.default.wrap(function
|
|
896
|
-
while (1) switch (
|
|
778
|
+
_createPayloads = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(interactionId, interaction) {
|
|
779
|
+
var ufoNameOverride, modifiedInteraction, payloads, isCriticalMetricsEnabled, vcMetrics, criticalMetricsPayloads, criticalPayloadCount, interactionMetricsPayload;
|
|
780
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
781
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
897
782
|
case 0:
|
|
898
783
|
ufoNameOverride = getUfoNameOverride(interaction);
|
|
899
784
|
modifiedInteraction = _objectSpread(_objectSpread({}, interaction), {}, {
|
|
900
785
|
ufoName: ufoNameOverride
|
|
901
786
|
});
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
return _context3.abrupt("return", [interactionMetricsPayload]);
|
|
787
|
+
payloads = [];
|
|
788
|
+
isCriticalMetricsEnabled = (0, _platformFeatureFlags.fg)('platform_ufo_critical_metrics_payload'); // Calculate VC metrics once to avoid duplicate expensive calculations
|
|
789
|
+
_context2.next = 6;
|
|
790
|
+
return (0, _getVcMetrics.default)(interaction);
|
|
907
791
|
case 6:
|
|
792
|
+
vcMetrics = _context2.sent;
|
|
793
|
+
if (!isCriticalMetricsEnabled) {
|
|
794
|
+
_context2.next = 13;
|
|
795
|
+
break;
|
|
796
|
+
}
|
|
797
|
+
_context2.next = 10;
|
|
798
|
+
return (0, _criticalMetricsPayload.createCriticalMetricsPayloads)(interactionId, interaction, vcMetrics);
|
|
799
|
+
case 10:
|
|
800
|
+
_context2.t0 = _context2.sent;
|
|
801
|
+
_context2.next = 14;
|
|
802
|
+
break;
|
|
803
|
+
case 13:
|
|
804
|
+
_context2.t0 = [];
|
|
805
|
+
case 14:
|
|
806
|
+
criticalMetricsPayloads = _context2.t0;
|
|
807
|
+
payloads.push.apply(payloads, (0, _toConsumableArray2.default)(criticalMetricsPayloads));
|
|
808
|
+
criticalPayloadCount = isCriticalMetricsEnabled ? criticalMetricsPayloads.length : undefined;
|
|
809
|
+
_context2.next = 19;
|
|
810
|
+
return createInteractionMetricsPayload(modifiedInteraction, interactionId, undefined, criticalPayloadCount, vcMetrics);
|
|
811
|
+
case 19:
|
|
812
|
+
interactionMetricsPayload = _context2.sent;
|
|
813
|
+
payloads.push(interactionMetricsPayload);
|
|
814
|
+
return _context2.abrupt("return", payloads.filter(Boolean));
|
|
815
|
+
case 22:
|
|
908
816
|
case "end":
|
|
909
|
-
return
|
|
817
|
+
return _context2.stop();
|
|
910
818
|
}
|
|
911
|
-
},
|
|
819
|
+
}, _callee2);
|
|
912
820
|
}));
|
|
913
821
|
return _createPayloads.apply(this, arguments);
|
|
914
822
|
}
|
|
@@ -916,14 +824,14 @@ function createExperimentalMetricsPayload(_x8, _x9) {
|
|
|
916
824
|
return _createExperimentalMetricsPayload.apply(this, arguments);
|
|
917
825
|
}
|
|
918
826
|
function _createExperimentalMetricsPayload() {
|
|
919
|
-
_createExperimentalMetricsPayload = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
827
|
+
_createExperimentalMetricsPayload = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(interactionId, interaction) {
|
|
920
828
|
var config, ufoName, rate, pageVisibilityState, result;
|
|
921
|
-
return _regenerator.default.wrap(function
|
|
922
|
-
while (1) switch (
|
|
829
|
+
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
830
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
923
831
|
case 0:
|
|
924
832
|
config = (0, _config.getConfig)();
|
|
925
833
|
if (config) {
|
|
926
|
-
|
|
834
|
+
_context3.next = 3;
|
|
927
835
|
break;
|
|
928
836
|
}
|
|
929
837
|
throw Error('UFO Configuration not provided');
|
|
@@ -931,28 +839,28 @@ function _createExperimentalMetricsPayload() {
|
|
|
931
839
|
ufoName = (0, _utils.sanitizeUfoName)(interaction.ufoName);
|
|
932
840
|
rate = (0, _config.getExperimentalInteractionRate)(ufoName, interaction.type);
|
|
933
841
|
if ((0, _coinflip.default)(rate)) {
|
|
934
|
-
|
|
842
|
+
_context3.next = 7;
|
|
935
843
|
break;
|
|
936
844
|
}
|
|
937
|
-
return
|
|
845
|
+
return _context3.abrupt("return", null);
|
|
938
846
|
case 7:
|
|
939
847
|
pageVisibilityState = (0, _hiddenTiming.getPageVisibilityState)(interaction.start, interaction.end);
|
|
940
848
|
if (!(pageVisibilityState !== 'visible')) {
|
|
941
|
-
|
|
849
|
+
_context3.next = 10;
|
|
942
850
|
break;
|
|
943
851
|
}
|
|
944
|
-
return
|
|
852
|
+
return _context3.abrupt("return", null);
|
|
945
853
|
case 10:
|
|
946
|
-
|
|
854
|
+
_context3.next = 12;
|
|
947
855
|
return createInteractionMetricsPayload(interaction, interactionId, true);
|
|
948
856
|
case 12:
|
|
949
|
-
result =
|
|
950
|
-
return
|
|
857
|
+
result = _context3.sent;
|
|
858
|
+
return _context3.abrupt("return", result);
|
|
951
859
|
case 14:
|
|
952
860
|
case "end":
|
|
953
|
-
return
|
|
861
|
+
return _context3.stop();
|
|
954
862
|
}
|
|
955
|
-
},
|
|
863
|
+
}, _callee3);
|
|
956
864
|
}));
|
|
957
865
|
return _createExperimentalMetricsPayload.apply(this, arguments);
|
|
958
866
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.findMatchingLegacyMetric = findMatchingLegacyMetric;
|
|
7
|
+
/**
|
|
8
|
+
* Find matching legacy metric by experience name and type
|
|
9
|
+
*/
|
|
10
|
+
function findMatchingLegacyMetric(interaction, experienceName) {
|
|
11
|
+
var _interaction$legacyMe;
|
|
12
|
+
return (_interaction$legacyMe = interaction.legacyMetrics) === null || _interaction$legacyMe === void 0 ? void 0 : _interaction$legacyMe.find(function (metric) {
|
|
13
|
+
return (metric.key === experienceName || metric.config.reactUFOName === experienceName) && metric.type === 'PAGE_LOAD';
|
|
14
|
+
});
|
|
15
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = getBrowserMetadata;
|
|
8
|
+
exports.getBrowserMetadataToLegacyFormat = getBrowserMetadataToLegacyFormat;
|
|
9
|
+
var _bowserUltralight = _interopRequireDefault(require("bowser-ultralight"));
|
|
10
|
+
function getBrowserMetadata() {
|
|
11
|
+
var data = {
|
|
12
|
+
time: {
|
|
13
|
+
localHour: 0,
|
|
14
|
+
localDayOfWeek: 0,
|
|
15
|
+
localTimezoneOffset: 0
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
var now = new Date();
|
|
19
|
+
data.time.localHour = now.getHours(); // returns the hours for this date according to local time
|
|
20
|
+
data.time.localDayOfWeek = now.getDay(); // Sunday - Saturday : 0 - 6
|
|
21
|
+
data.time.localTimezoneOffset = now.getTimezoneOffset(); // A number representing the difference, in minutes, between the date as evaluated in the UTC time zone and as evaluated in the local time zone.
|
|
22
|
+
|
|
23
|
+
if (typeof navigator !== 'undefined' && navigator.userAgent != null) {
|
|
24
|
+
var browser = _bowserUltralight.default.getParser(navigator.userAgent);
|
|
25
|
+
data.browser = {
|
|
26
|
+
name: browser.getBrowserName(),
|
|
27
|
+
version: browser.getBrowserVersion()
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
if (typeof navigator !== 'undefined' && navigator.hardwareConcurrency != null) {
|
|
31
|
+
if (!data.device) {
|
|
32
|
+
data.device = {};
|
|
33
|
+
}
|
|
34
|
+
data.device.cpus = navigator.hardwareConcurrency;
|
|
35
|
+
}
|
|
36
|
+
if (typeof navigator !== 'undefined' && navigator.deviceMemory != null) {
|
|
37
|
+
if (!data.device) {
|
|
38
|
+
data.device = {};
|
|
39
|
+
}
|
|
40
|
+
data.device.memory = navigator.deviceMemory;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// eslint-disable-next-line compat/compat
|
|
44
|
+
if (typeof navigator !== 'undefined' && navigator.connection != null) {
|
|
45
|
+
data.network = {
|
|
46
|
+
effectiveType: navigator.connection.effectiveType,
|
|
47
|
+
rtt: navigator.connection.rtt,
|
|
48
|
+
downlink: navigator.connection.downlink
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
return data;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Helper function to get browser metadata in legacy colon format for backward compatibility
|
|
55
|
+
function getBrowserMetadataToLegacyFormat() {
|
|
56
|
+
var metadata = getBrowserMetadata();
|
|
57
|
+
var legacyFormat = {};
|
|
58
|
+
|
|
59
|
+
// Time data
|
|
60
|
+
legacyFormat['event:localHour'] = metadata.time.localHour;
|
|
61
|
+
legacyFormat['event:localDayOfWeek'] = metadata.time.localDayOfWeek;
|
|
62
|
+
legacyFormat['event:localTimezoneOffset'] = metadata.time.localTimezoneOffset;
|
|
63
|
+
|
|
64
|
+
// Browser data
|
|
65
|
+
if (metadata.browser) {
|
|
66
|
+
legacyFormat['event:browser:name'] = metadata.browser.name;
|
|
67
|
+
legacyFormat['event:browser:version'] = metadata.browser.version;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// Device data
|
|
71
|
+
if (metadata.device) {
|
|
72
|
+
if (metadata.device.cpus !== undefined) {
|
|
73
|
+
legacyFormat['event:cpus'] = metadata.device.cpus;
|
|
74
|
+
}
|
|
75
|
+
if (metadata.device.memory !== undefined) {
|
|
76
|
+
legacyFormat['event:memory'] = metadata.device.memory;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// Network data
|
|
81
|
+
if (metadata.network) {
|
|
82
|
+
legacyFormat['event:network:effectiveType'] = metadata.network.effectiveType;
|
|
83
|
+
legacyFormat['event:network:rtt'] = metadata.network.rtt;
|
|
84
|
+
legacyFormat['event:network:downlink'] = metadata.network.downlink;
|
|
85
|
+
}
|
|
86
|
+
return legacyFormat;
|
|
87
|
+
}
|