@atlaskit/react-ufo 2.14.3 → 2.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/dist/cjs/assets/index.js +96 -0
- package/dist/cjs/assets/utils.js +32 -0
- package/dist/cjs/common/assets/types.js +5 -0
- package/dist/cjs/create-payload/index.js +42 -5
- package/dist/cjs/experience-trace-id-context/index.js +5 -1
- package/dist/cjs/segment/segment.js +7 -1
- package/dist/cjs/vc/vc-observer/heatmap/heatmap.js +264 -0
- package/dist/cjs/vc/vc-observer/index.js +119 -26
- package/dist/cjs/vc/vc-observer/revisions/ViewportUpdateClassifier.js +60 -0
- package/dist/cjs/vc/vc-observer/revisions/fy24_01.js +71 -0
- package/dist/cjs/vc/vc-observer/revisions/fy25_01.js +39 -0
- package/dist/cjs/vc/vc-observer/revisions/revisions.js +23 -0
- package/dist/cjs/vc/vc-observer/revisions/types.js +5 -0
- package/dist/es2019/assets/index.js +82 -0
- package/dist/es2019/assets/utils.js +26 -0
- package/dist/es2019/common/assets/types.js +1 -0
- package/dist/es2019/create-payload/index.js +43 -3
- package/dist/es2019/experience-trace-id-context/index.js +4 -0
- package/dist/es2019/segment/segment.js +11 -3
- package/dist/es2019/vc/vc-observer/heatmap/heatmap.js +230 -0
- package/dist/es2019/vc/vc-observer/index.js +97 -3
- package/dist/es2019/vc/vc-observer/revisions/ViewportUpdateClassifier.js +41 -0
- package/dist/es2019/vc/vc-observer/revisions/fy24_01.js +50 -0
- package/dist/es2019/vc/vc-observer/revisions/fy25_01.js +21 -0
- package/dist/es2019/vc/vc-observer/revisions/revisions.js +19 -0
- package/dist/es2019/vc/vc-observer/revisions/types.js +1 -0
- package/dist/esm/assets/index.js +89 -0
- package/dist/esm/assets/utils.js +26 -0
- package/dist/esm/common/assets/types.js +1 -0
- package/dist/esm/create-payload/index.js +42 -5
- package/dist/esm/experience-trace-id-context/index.js +4 -0
- package/dist/esm/segment/segment.js +7 -1
- package/dist/esm/vc/vc-observer/heatmap/heatmap.js +257 -0
- package/dist/esm/vc/vc-observer/index.js +119 -26
- package/dist/esm/vc/vc-observer/revisions/ViewportUpdateClassifier.js +53 -0
- package/dist/esm/vc/vc-observer/revisions/fy24_01.js +64 -0
- package/dist/esm/vc/vc-observer/revisions/fy25_01.js +32 -0
- package/dist/esm/vc/vc-observer/revisions/revisions.js +17 -0
- package/dist/esm/vc/vc-observer/revisions/types.js +1 -0
- package/dist/types/assets/index.d.ts +25 -0
- package/dist/types/assets/utils.d.ts +6 -0
- package/dist/types/common/assets/types.d.ts +18 -0
- package/dist/types/common/index.d.ts +1 -0
- package/dist/types/common/vc/types.d.ts +27 -8
- package/dist/types/config/index.d.ts +2 -1
- package/dist/types/create-payload/index.d.ts +11616 -0
- package/dist/types/experience-trace-id-context/index.d.ts +1 -0
- package/dist/types/resource-timing/index.d.ts +1 -1
- package/dist/types/vc/vc-observer/heatmap/heatmap.d.ts +72 -0
- package/dist/types/vc/vc-observer/index.d.ts +5 -1
- package/dist/types/vc/vc-observer/revisions/ViewportUpdateClassifier.d.ts +30 -0
- package/dist/types/vc/vc-observer/revisions/fy24_01.d.ts +13 -0
- package/dist/types/vc/vc-observer/revisions/fy25_01.d.ts +13 -0
- package/dist/types/vc/vc-observer/revisions/revisions.d.ts +2 -0
- package/dist/types/vc/vc-observer/revisions/types.d.ts +23 -0
- package/dist/types-ts4.5/assets/index.d.ts +25 -0
- package/dist/types-ts4.5/assets/utils.d.ts +6 -0
- package/dist/types-ts4.5/common/assets/types.d.ts +18 -0
- package/dist/types-ts4.5/common/index.d.ts +1 -0
- package/dist/types-ts4.5/common/vc/types.d.ts +27 -8
- package/dist/types-ts4.5/config/index.d.ts +2 -1
- package/dist/types-ts4.5/create-payload/index.d.ts +11616 -0
- package/dist/types-ts4.5/experience-trace-id-context/index.d.ts +1 -0
- package/dist/types-ts4.5/resource-timing/index.d.ts +1 -1
- package/dist/types-ts4.5/vc/vc-observer/heatmap/heatmap.d.ts +72 -0
- package/dist/types-ts4.5/vc/vc-observer/index.d.ts +15 -1
- package/dist/types-ts4.5/vc/vc-observer/revisions/ViewportUpdateClassifier.d.ts +30 -0
- package/dist/types-ts4.5/vc/vc-observer/revisions/fy24_01.d.ts +13 -0
- package/dist/types-ts4.5/vc/vc-observer/revisions/fy25_01.d.ts +13 -0
- package/dist/types-ts4.5/vc/vc-observer/revisions/revisions.d.ts +2 -0
- package/dist/types-ts4.5/vc/vc-observer/revisions/types.d.ts +23 -0
- package/package.json +11 -2
|
@@ -13,7 +13,9 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
|
|
|
13
13
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
14
14
|
var _attachAbortListeners = require("./attachAbortListeners");
|
|
15
15
|
var _getViewport = require("./getViewport");
|
|
16
|
+
var _heatmap = require("./heatmap/heatmap");
|
|
16
17
|
var _observers = require("./observers");
|
|
18
|
+
var _revisions = require("./revisions/revisions");
|
|
17
19
|
var _excluded = ["__debug__element"];
|
|
18
20
|
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; }
|
|
19
21
|
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; }
|
|
@@ -54,6 +56,7 @@ var VCObserver = exports.VCObserver = /*#__PURE__*/function () {
|
|
|
54
56
|
});
|
|
55
57
|
/* heatmap */
|
|
56
58
|
(0, _defineProperty2.default)(this, "arraySize", 0);
|
|
59
|
+
(0, _defineProperty2.default)(this, "multiHeatmap", null);
|
|
57
60
|
(0, _defineProperty2.default)(this, "componentsLog", {});
|
|
58
61
|
(0, _defineProperty2.default)(this, "vcRatios", {});
|
|
59
62
|
(0, _defineProperty2.default)(this, "active", false);
|
|
@@ -85,6 +88,7 @@ var VCObserver = exports.VCObserver = /*#__PURE__*/function () {
|
|
|
85
88
|
abortReason: _objectSpread({}, _this.abortReason),
|
|
86
89
|
heatmap: _this.heatmap,
|
|
87
90
|
heatmapNext: _this.heatmapNext,
|
|
91
|
+
multiHeatmap: _this.multiHeatmap,
|
|
88
92
|
outOfBoundaryInfo: _this.outOfBoundaryInfo,
|
|
89
93
|
totalTime: Math.round(_this.totalTime + _this.observers.getTotalTime()),
|
|
90
94
|
componentsLog: _objectSpread({}, _this.componentsLog),
|
|
@@ -117,7 +121,8 @@ var VCObserver = exports.VCObserver = /*#__PURE__*/function () {
|
|
|
117
121
|
componentsLog = rawData.componentsLog,
|
|
118
122
|
viewport = rawData.viewport,
|
|
119
123
|
devToolsEnabled = rawData.devToolsEnabled,
|
|
120
|
-
ratios = rawData.ratios
|
|
124
|
+
ratios = rawData.ratios,
|
|
125
|
+
multiHeatmap = rawData.multiHeatmap;
|
|
121
126
|
if (abortReasonInfo !== null && abortReason.blocking) {
|
|
122
127
|
// exposing data to devtools
|
|
123
128
|
try {
|
|
@@ -153,6 +158,7 @@ var VCObserver = exports.VCObserver = /*#__PURE__*/function () {
|
|
|
153
158
|
/* empty */
|
|
154
159
|
}
|
|
155
160
|
var _componentsLog = {};
|
|
161
|
+
// eslint-disable-next-line @atlaskit/platform/ensure-feature-flag-prefix
|
|
156
162
|
if ((0, _platformFeatureFlags.fg)('ufo-remove-vc-component-observations-after-ttai')) {
|
|
157
163
|
Object.entries(_this.componentsLog).forEach(function (_ref5) {
|
|
158
164
|
var _ref6 = (0, _slicedToArray2.default)(_ref5, 2),
|
|
@@ -209,9 +215,30 @@ var VCObserver = exports.VCObserver = /*#__PURE__*/function () {
|
|
|
209
215
|
tti: tti,
|
|
210
216
|
ttai: stop - start
|
|
211
217
|
},
|
|
218
|
+
start: start,
|
|
219
|
+
stop: stop,
|
|
212
220
|
heatmap: heatmap,
|
|
213
221
|
ratios: ratios
|
|
214
222
|
};
|
|
223
|
+
window.__vcNext = {
|
|
224
|
+
entries: vcNext.VCEntries.rel,
|
|
225
|
+
log: componentsLog,
|
|
226
|
+
metrics: {
|
|
227
|
+
'75': vcNext.VC['75'],
|
|
228
|
+
'80': vcNext.VC['80'],
|
|
229
|
+
'85': vcNext.VC['85'],
|
|
230
|
+
'90': vcNext.VC['90'],
|
|
231
|
+
'95': vcNext.VC['95'],
|
|
232
|
+
'98': vcNext.VC['98'],
|
|
233
|
+
'99': vcNext.VC['99'],
|
|
234
|
+
tti: tti,
|
|
235
|
+
ttai: stop - start
|
|
236
|
+
},
|
|
237
|
+
start: start,
|
|
238
|
+
stop: stop,
|
|
239
|
+
heatmap: heatmapNext,
|
|
240
|
+
ratios: ratios
|
|
241
|
+
};
|
|
215
242
|
|
|
216
243
|
// Emitting a custom event to make it available in the Chrome extension
|
|
217
244
|
window.dispatchEvent(new CustomEvent('vcReady', {
|
|
@@ -224,13 +251,40 @@ var VCObserver = exports.VCObserver = /*#__PURE__*/function () {
|
|
|
224
251
|
} catch (e) {
|
|
225
252
|
/* do nothing */
|
|
226
253
|
}
|
|
254
|
+
var isMultiHeatmapEnabled = (0, _platformFeatureFlags.fg)('ufo_vc_multiheatmap');
|
|
255
|
+
var revisionsData = isMultiHeatmapEnabled && multiHeatmap !== null ? (0, _defineProperty2.default)({}, "".concat(fullPrefix, "vc:rev"), multiHeatmap.getPayloadShapedData({
|
|
256
|
+
VCParts: VCObserver.VCParts.map(function (v) {
|
|
257
|
+
return parseInt(v);
|
|
258
|
+
}),
|
|
259
|
+
VCCalculationMethods: (0, _revisions.getRevisions)().map(function (_ref8) {
|
|
260
|
+
var classifier = _ref8.classifier;
|
|
261
|
+
return classifier.VCCalculationMethod;
|
|
262
|
+
}),
|
|
263
|
+
ssr: ssr,
|
|
264
|
+
clean: !abortReasonInfo
|
|
265
|
+
})) : null;
|
|
266
|
+
// eslint-disable-next-line @atlaskit/platform/ensure-feature-flag-prefix
|
|
227
267
|
var isCalcSpeedIndexEnabled = (0, _platformFeatureFlags.fg)('ufo-calc-speed-index');
|
|
228
|
-
return _objectSpread(_objectSpread((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({
|
|
268
|
+
return _objectSpread(_objectSpread(_objectSpread((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({
|
|
229
269
|
'metrics:vc': VC
|
|
230
|
-
}, "".concat(fullPrefix, "vc:state"), true), "".concat(fullPrefix, "vc:clean"), !abortReasonInfo), "".concat(fullPrefix, "vc:dom"), VCBox), "".concat(fullPrefix, "vc:updates"), VCEntries.rel.slice(0, 50)), "".concat(fullPrefix, "vc:size"), viewport), "".concat(fullPrefix, "vc:time"), Math.round(totalTime + (stopTime - startTime))), "".concat(fullPrefix, "vc:total"), totalPainted), "".concat(fullPrefix, "vc:ratios"), ratios), outOfBoundary), {}, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)(
|
|
270
|
+
}, "".concat(fullPrefix, "vc:state"), true), "".concat(fullPrefix, "vc:clean"), !abortReasonInfo), "".concat(fullPrefix, "vc:dom"), VCBox), "".concat(fullPrefix, "vc:updates"), VCEntries.rel.slice(0, 50)), "".concat(fullPrefix, "vc:size"), viewport), "".concat(fullPrefix, "vc:time"), Math.round(totalTime + (stopTime - startTime))), "".concat(fullPrefix, "vc:total"), totalPainted), "".concat(fullPrefix, "vc:ratios"), ratios), outOfBoundary), {}, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, "".concat(fullPrefix, "vc:next"), vcNext.VC), "".concat(fullPrefix, "vc:next:updates"), vcNext.VCEntries.rel.slice(0, 50)), "".concat(fullPrefix, "vc:next:dom"), vcNext.VCBox), "".concat(fullPrefix, "vc:ignored"), _this.getIgnoredElements(componentsLog)), revisionsData), {}, (0, _defineProperty2.default)((0, _defineProperty2.default)({}, "ufo:speedIndex", isCalcSpeedIndexEnabled ? VCEntries.speedIndex : undefined), "ufo:next:speedIndex", isCalcSpeedIndexEnabled ? vcNext.VCEntries.speedIndex : undefined));
|
|
231
271
|
});
|
|
232
272
|
(0, _defineProperty2.default)(this, "handleUpdate", function (rawTime, intersectionRect, targetName, element, type, ignoreReason) {
|
|
233
273
|
_this.measureStart();
|
|
274
|
+
_this.legacyHandleUpdate(rawTime, intersectionRect, targetName, element, type, ignoreReason);
|
|
275
|
+
if ((0, _platformFeatureFlags.fg)('ufo_vc_multiheatmap')) {
|
|
276
|
+
_this.onViewportChangeDetected({
|
|
277
|
+
timestamp: rawTime,
|
|
278
|
+
intersectionRect: intersectionRect,
|
|
279
|
+
targetName: targetName,
|
|
280
|
+
element: element,
|
|
281
|
+
type: type,
|
|
282
|
+
ignoreReason: ignoreReason
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
_this.measureStop();
|
|
286
|
+
});
|
|
287
|
+
(0, _defineProperty2.default)(this, "legacyHandleUpdate", function (rawTime, intersectionRect, targetName, element, type, ignoreReason) {
|
|
234
288
|
if (_this.abortReason.reason === null || _this.abortReason.blocking === false) {
|
|
235
289
|
var time = Math.round(rawTime - _this.startTime);
|
|
236
290
|
var mappedValues = _this.mapPixelsToHeatmap(intersectionRect.left, intersectionRect.top, intersectionRect.width, intersectionRect.height);
|
|
@@ -251,8 +305,38 @@ var VCObserver = exports.VCObserver = /*#__PURE__*/function () {
|
|
|
251
305
|
ignoreReason: ignoreReason
|
|
252
306
|
});
|
|
253
307
|
}
|
|
254
|
-
|
|
255
|
-
|
|
308
|
+
});
|
|
309
|
+
(0, _defineProperty2.default)(this, "onViewportChangeDetected", function (_ref10) {
|
|
310
|
+
var element = _ref10.element,
|
|
311
|
+
type = _ref10.type,
|
|
312
|
+
ignoreReason = _ref10.ignoreReason,
|
|
313
|
+
timestamp = _ref10.timestamp,
|
|
314
|
+
targetName = _ref10.targetName,
|
|
315
|
+
intersectionRect = _ref10.intersectionRect;
|
|
316
|
+
if (_this.multiHeatmap === null) {
|
|
317
|
+
return;
|
|
318
|
+
}
|
|
319
|
+
// @todo add abort reason handling
|
|
320
|
+
var time = Math.round(timestamp - _this.startTime);
|
|
321
|
+
var revisions = (0, _revisions.getRevisions)();
|
|
322
|
+
var revisionsClassification = revisions.map(function (revision) {
|
|
323
|
+
return revision.classifier.classifyUpdate({
|
|
324
|
+
element: element,
|
|
325
|
+
type: type,
|
|
326
|
+
ignoreReason: ignoreReason
|
|
327
|
+
});
|
|
328
|
+
}, []);
|
|
329
|
+
_this.multiHeatmap.handleUpdate({
|
|
330
|
+
time: time,
|
|
331
|
+
targetName: targetName,
|
|
332
|
+
intersectionRect: intersectionRect,
|
|
333
|
+
type: type,
|
|
334
|
+
element: element,
|
|
335
|
+
classification: revisionsClassification,
|
|
336
|
+
onError: function onError(error) {
|
|
337
|
+
_this.setAbortReason(abortReason.error, error.time, error.error);
|
|
338
|
+
}
|
|
339
|
+
});
|
|
256
340
|
});
|
|
257
341
|
(0, _defineProperty2.default)(this, "mapPixelsToHeatmap", function (left, top, width, height) {
|
|
258
342
|
var _this$viewport = _this.viewport,
|
|
@@ -310,10 +394,10 @@ var VCObserver = exports.VCObserver = /*#__PURE__*/function () {
|
|
|
310
394
|
var unbinds = (0, _attachAbortListeners.attachAbortListeners)(window, _this.viewport, _this.abortReasonCallback);
|
|
311
395
|
if ((_window = window) !== null && _window !== void 0 && _window.__SSR_ABORT_LISTENERS__) {
|
|
312
396
|
var _window2;
|
|
313
|
-
Object.entries(window.__SSR_ABORT_LISTENERS__.aborts).forEach(function (
|
|
314
|
-
var
|
|
315
|
-
key =
|
|
316
|
-
time =
|
|
397
|
+
Object.entries(window.__SSR_ABORT_LISTENERS__.aborts).forEach(function (_ref11) {
|
|
398
|
+
var _ref12 = (0, _slicedToArray2.default)(_ref11, 2),
|
|
399
|
+
key = _ref12[0],
|
|
400
|
+
time = _ref12[1];
|
|
317
401
|
if (time) {
|
|
318
402
|
_this.abortReasonCallback(key, time);
|
|
319
403
|
}
|
|
@@ -337,12 +421,19 @@ var VCObserver = exports.VCObserver = /*#__PURE__*/function () {
|
|
|
337
421
|
});
|
|
338
422
|
this.heatmap = this.getCleanHeatmap();
|
|
339
423
|
this.heatmapNext = this.getCleanHeatmap();
|
|
424
|
+
if ((0, _platformFeatureFlags.fg)('ufo_vc_multiheatmap')) {
|
|
425
|
+
this.multiHeatmap = new _heatmap.MultiRevisionHeatmap({
|
|
426
|
+
viewport: this.viewport,
|
|
427
|
+
revisions: (0, _revisions.getRevisions)(),
|
|
428
|
+
devToolsEnabled: this.devToolsEnabled
|
|
429
|
+
});
|
|
430
|
+
}
|
|
340
431
|
this.isPostInteraction = options.isPostInteraction || false;
|
|
341
432
|
}
|
|
342
433
|
return (0, _createClass2.default)(VCObserver, [{
|
|
343
434
|
key: "start",
|
|
344
|
-
value: function start(
|
|
345
|
-
var startTime =
|
|
435
|
+
value: function start(_ref13) {
|
|
436
|
+
var startTime = _ref13.startTime;
|
|
346
437
|
this.active = true;
|
|
347
438
|
if (this.observers.isBrowserSupported()) {
|
|
348
439
|
this.setViewportSize();
|
|
@@ -364,12 +455,12 @@ var VCObserver = exports.VCObserver = /*#__PURE__*/function () {
|
|
|
364
455
|
}, {
|
|
365
456
|
key: "getIgnoredElements",
|
|
366
457
|
value: function getIgnoredElements(componentsLog) {
|
|
367
|
-
return Object.values(componentsLog).flat().filter(function (
|
|
368
|
-
var ignoreReason =
|
|
458
|
+
return Object.values(componentsLog).flat().filter(function (_ref14) {
|
|
459
|
+
var ignoreReason = _ref14.ignoreReason;
|
|
369
460
|
return Boolean(ignoreReason);
|
|
370
|
-
}).map(function (
|
|
371
|
-
var targetName =
|
|
372
|
-
ignoreReason =
|
|
461
|
+
}).map(function (_ref15) {
|
|
462
|
+
var targetName = _ref15.targetName,
|
|
463
|
+
ignoreReason = _ref15.ignoreReason;
|
|
373
464
|
return {
|
|
374
465
|
targetName: targetName,
|
|
375
466
|
ignoreReason: ignoreReason
|
|
@@ -490,12 +581,12 @@ var VCObserver = exports.VCObserver = /*#__PURE__*/function () {
|
|
|
490
581
|
}
|
|
491
582
|
}], [{
|
|
492
583
|
key: "calculateVC",
|
|
493
|
-
value: function calculateVC(
|
|
494
|
-
var heatmap =
|
|
495
|
-
|
|
496
|
-
ssr =
|
|
497
|
-
componentsLog =
|
|
498
|
-
viewport =
|
|
584
|
+
value: function calculateVC(_ref16) {
|
|
585
|
+
var heatmap = _ref16.heatmap,
|
|
586
|
+
_ref16$ssr = _ref16.ssr,
|
|
587
|
+
ssr = _ref16$ssr === void 0 ? UNUSED_SECTOR : _ref16$ssr,
|
|
588
|
+
componentsLog = _ref16.componentsLog,
|
|
589
|
+
viewport = _ref16.viewport;
|
|
499
590
|
var lastUpdate = {};
|
|
500
591
|
var totalPainted = 0;
|
|
501
592
|
if (ssr !== UNUSED_SECTOR) {
|
|
@@ -538,6 +629,8 @@ var VCObserver = exports.VCObserver = /*#__PURE__*/function () {
|
|
|
538
629
|
});
|
|
539
630
|
var VC = VCObserver.makeVCReturnObj();
|
|
540
631
|
var VCBox = VCObserver.makeVCReturnObj();
|
|
632
|
+
|
|
633
|
+
// eslint-disable-next-line @atlaskit/platform/ensure-feature-flag-prefix
|
|
541
634
|
var isCalcSpeedIndexEnabled = (0, _platformFeatureFlags.fg)('ufo-calc-speed-index');
|
|
542
635
|
entries.reduce(function () {
|
|
543
636
|
var acc = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
@@ -562,11 +655,11 @@ var VCObserver = exports.VCObserver = /*#__PURE__*/function () {
|
|
|
562
655
|
});
|
|
563
656
|
return VCRatio;
|
|
564
657
|
}, 0);
|
|
565
|
-
var VCEntries = entries.reduce(function (acc,
|
|
658
|
+
var VCEntries = entries.reduce(function (acc, _ref17, i) {
|
|
566
659
|
var _acc$abs, _componentsLog$timest, _acc$rel$vc, _acc$rel;
|
|
567
|
-
var
|
|
568
|
-
timestamp =
|
|
569
|
-
entryPainted =
|
|
660
|
+
var _ref18 = (0, _slicedToArray2.default)(_ref17, 2),
|
|
661
|
+
timestamp = _ref18[0],
|
|
662
|
+
entryPainted = _ref18[1];
|
|
570
663
|
var currentlyPainted = entryPainted + (((_acc$abs = acc.abs[i - 1]) === null || _acc$abs === void 0 ? void 0 : _acc$abs[1]) || 0);
|
|
571
664
|
var currentlyPaintedRatio = Math.round(currentlyPainted / totalPainted * 1000) / 10;
|
|
572
665
|
var logEntry = (_componentsLog$timest = componentsLog[timestamp]) === null || _componentsLog$timest === void 0 ? void 0 : _componentsLog$timest.map(function (v) {
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.ViewportUpdateClassifier = void 0;
|
|
8
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
11
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
12
|
+
var ViewportUpdateClassifier = exports.ViewportUpdateClassifier = /*#__PURE__*/function () {
|
|
13
|
+
function ViewportUpdateClassifier() {
|
|
14
|
+
(0, _classCallCheck2.default)(this, ViewportUpdateClassifier);
|
|
15
|
+
(0, _defineProperty2.default)(this, "types", []);
|
|
16
|
+
(0, _defineProperty2.default)(this, "filters", []);
|
|
17
|
+
(0, _defineProperty2.default)(this, "removedFilters", []);
|
|
18
|
+
(0, _defineProperty2.default)(this, "__combinedTypes", []);
|
|
19
|
+
(0, _defineProperty2.default)(this, "__combinedFilters", []);
|
|
20
|
+
}
|
|
21
|
+
return (0, _createClass2.default)(ViewportUpdateClassifier, [{
|
|
22
|
+
key: "VCCalculationMethod",
|
|
23
|
+
value: function VCCalculationMethod(_) {
|
|
24
|
+
return {
|
|
25
|
+
VC: {},
|
|
26
|
+
VCBox: {}
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
}, {
|
|
30
|
+
key: "mergeConfig",
|
|
31
|
+
value: function mergeConfig() {
|
|
32
|
+
var _this = this;
|
|
33
|
+
this.__combinedTypes = [].concat((0, _toConsumableArray2.default)(this.types), (0, _toConsumableArray2.default)((this === null || this === void 0 ? void 0 : this.__combinedTypes) || []));
|
|
34
|
+
var previousFilters = this.removedFilters.length === 0 ? this.__combinedFilters : this.__combinedFilters.filter(function (filter) {
|
|
35
|
+
return !_this.removedFilters.includes(filter.name);
|
|
36
|
+
});
|
|
37
|
+
this.__combinedFilters = [].concat((0, _toConsumableArray2.default)(this.filters), (0, _toConsumableArray2.default)(previousFilters));
|
|
38
|
+
}
|
|
39
|
+
}, {
|
|
40
|
+
key: "classifyUpdate",
|
|
41
|
+
value: function classifyUpdate(_ref) {
|
|
42
|
+
var element = _ref.element,
|
|
43
|
+
type = _ref.type,
|
|
44
|
+
tags = _ref.tags,
|
|
45
|
+
ignoreReason = _ref.ignoreReason;
|
|
46
|
+
if (!this.__combinedTypes.includes(type)) {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
return this.__combinedFilters.every(function (_ref2) {
|
|
50
|
+
var filter = _ref2.filter,
|
|
51
|
+
name = _ref2.name;
|
|
52
|
+
return filter({
|
|
53
|
+
type: type,
|
|
54
|
+
tags: tags,
|
|
55
|
+
ignoreReason: ignoreReason
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}]);
|
|
60
|
+
}();
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.revFY24_01Classifier = exports.FY24_01Classifier = void 0;
|
|
8
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
11
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
12
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
13
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
14
|
+
var _ViewportUpdateClassifier = require("./ViewportUpdateClassifier");
|
|
15
|
+
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
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
17
|
+
var legacyIgnoreReasons = ['image', 'ssr-hydration', 'editor-lazy-node-view', 'editor-container-mutation'];
|
|
18
|
+
var FY24_01Classifier = exports.FY24_01Classifier = /*#__PURE__*/function (_ViewportUpdateClassi) {
|
|
19
|
+
function FY24_01Classifier() {
|
|
20
|
+
var _this;
|
|
21
|
+
(0, _classCallCheck2.default)(this, FY24_01Classifier);
|
|
22
|
+
_this = _callSuper(this, FY24_01Classifier);
|
|
23
|
+
(0, _defineProperty2.default)(_this, "revision", 'fy24.01');
|
|
24
|
+
(0, _defineProperty2.default)(_this, "types", ['html', 'text']);
|
|
25
|
+
(0, _defineProperty2.default)(_this, "filters", [{
|
|
26
|
+
name: 'default-ignore-reasons',
|
|
27
|
+
filter: function filter(_ref) {
|
|
28
|
+
var type = _ref.type,
|
|
29
|
+
ignoreReason = _ref.ignoreReason;
|
|
30
|
+
return !ignoreReason || !legacyIgnoreReasons.includes(ignoreReason);
|
|
31
|
+
}
|
|
32
|
+
}]);
|
|
33
|
+
_this.mergeConfig();
|
|
34
|
+
return _this;
|
|
35
|
+
}
|
|
36
|
+
(0, _inherits2.default)(FY24_01Classifier, _ViewportUpdateClassi);
|
|
37
|
+
return (0, _createClass2.default)(FY24_01Classifier, [{
|
|
38
|
+
key: "VCCalculationMethod",
|
|
39
|
+
value: function VCCalculationMethod(_ref2) {
|
|
40
|
+
var VCParts = _ref2.VCParts,
|
|
41
|
+
entries = _ref2.entries,
|
|
42
|
+
totalPainted = _ref2.totalPainted,
|
|
43
|
+
componentsLog = _ref2.componentsLog;
|
|
44
|
+
var VC = {};
|
|
45
|
+
var VCBox = {};
|
|
46
|
+
entries.reduce(function () {
|
|
47
|
+
var acc = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
48
|
+
var v = arguments.length > 1 ? arguments[1] : undefined;
|
|
49
|
+
var VCRatio = v[1] / totalPainted + acc;
|
|
50
|
+
var time = v[0];
|
|
51
|
+
VCParts.forEach(function (value) {
|
|
52
|
+
if ((VC[value] === null || VC[value] === undefined) && VCRatio >= value / 100) {
|
|
53
|
+
var _componentsLog$time;
|
|
54
|
+
VC[value] = time;
|
|
55
|
+
VCBox[value] = new Set();
|
|
56
|
+
(_componentsLog$time = componentsLog[time]) === null || _componentsLog$time === void 0 || _componentsLog$time.forEach(function (v) {
|
|
57
|
+
var _VCBox$value;
|
|
58
|
+
return (_VCBox$value = VCBox[value]) === null || _VCBox$value === void 0 ? void 0 : _VCBox$value.add(v.targetName);
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
return VCRatio;
|
|
63
|
+
}, 0);
|
|
64
|
+
return {
|
|
65
|
+
VC: VC,
|
|
66
|
+
VCBox: VCBox
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
}]);
|
|
70
|
+
}(_ViewportUpdateClassifier.ViewportUpdateClassifier);
|
|
71
|
+
var revFY24_01Classifier = exports.revFY24_01Classifier = new FY24_01Classifier();
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.revFY25_01Classifier = exports.FY25_01Classifier = void 0;
|
|
8
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
9
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
11
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
12
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
13
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
14
|
+
var _fy24_ = require("./fy24_01");
|
|
15
|
+
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
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
17
|
+
var FY25_01Classifier = exports.FY25_01Classifier = /*#__PURE__*/function (_FY24_01Classifier) {
|
|
18
|
+
function FY25_01Classifier() {
|
|
19
|
+
var _this;
|
|
20
|
+
(0, _classCallCheck2.default)(this, FY25_01Classifier);
|
|
21
|
+
_this = _callSuper(this, FY25_01Classifier);
|
|
22
|
+
(0, _defineProperty2.default)(_this, "revision", 'fy25.01');
|
|
23
|
+
(0, _defineProperty2.default)(_this, "types", ['attr']);
|
|
24
|
+
(0, _defineProperty2.default)(_this, "filters", [{
|
|
25
|
+
name: 'not-visible',
|
|
26
|
+
filter: function filter(_ref) {
|
|
27
|
+
var type = _ref.type,
|
|
28
|
+
ignoreReason = _ref.ignoreReason;
|
|
29
|
+
return !(ignoreReason !== null && ignoreReason !== void 0 && ignoreReason.includes('not-visible'));
|
|
30
|
+
}
|
|
31
|
+
}]);
|
|
32
|
+
(0, _defineProperty2.default)(_this, "removedFilters", []);
|
|
33
|
+
_this.mergeConfig();
|
|
34
|
+
return _this;
|
|
35
|
+
}
|
|
36
|
+
(0, _inherits2.default)(FY25_01Classifier, _FY24_01Classifier);
|
|
37
|
+
return (0, _createClass2.default)(FY25_01Classifier);
|
|
38
|
+
}(_fy24_.FY24_01Classifier);
|
|
39
|
+
var revFY25_01Classifier = exports.revFY25_01Classifier = new FY25_01Classifier();
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getRevisions = void 0;
|
|
7
|
+
var _fy24_ = require("./fy24_01");
|
|
8
|
+
var _fy25_ = require("./fy25_01");
|
|
9
|
+
var Revisions = [{
|
|
10
|
+
name: 'fy24.01',
|
|
11
|
+
classifier: _fy24_.revFY24_01Classifier
|
|
12
|
+
}, {
|
|
13
|
+
name: 'fy25.01',
|
|
14
|
+
classifier: _fy25_.revFY25_01Classifier
|
|
15
|
+
}];
|
|
16
|
+
var revisionResultCache = null;
|
|
17
|
+
var getRevisions = exports.getRevisions = function getRevisions() {
|
|
18
|
+
if (revisionResultCache !== null) {
|
|
19
|
+
return revisionResultCache;
|
|
20
|
+
}
|
|
21
|
+
revisionResultCache = [].concat(Revisions);
|
|
22
|
+
return revisionResultCache;
|
|
23
|
+
};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
import { calculateTransferType, DISK_KEY, MEMORY_KEY, NETWORK_KEY, round } from './utils';
|
|
3
|
+
export class CHRSummary {
|
|
4
|
+
constructor() {
|
|
5
|
+
_defineProperty(this, "bundles", {
|
|
6
|
+
[MEMORY_KEY]: 0,
|
|
7
|
+
[DISK_KEY]: 0,
|
|
8
|
+
[NETWORK_KEY]: 0
|
|
9
|
+
});
|
|
10
|
+
_defineProperty(this, "bundlesCount", 0);
|
|
11
|
+
_defineProperty(this, "size", {
|
|
12
|
+
[MEMORY_KEY]: 0,
|
|
13
|
+
[DISK_KEY]: 0,
|
|
14
|
+
[NETWORK_KEY]: 0
|
|
15
|
+
});
|
|
16
|
+
_defineProperty(this, "sizeTotal", 0);
|
|
17
|
+
}
|
|
18
|
+
add(asset) {
|
|
19
|
+
const size = 'size' in asset ? asset.size : undefined;
|
|
20
|
+
const encodedSize = 'encodedSize' in asset ? Number(asset.encodedSize) : 0;
|
|
21
|
+
const type = calculateTransferType(asset.type, asset.duration, size);
|
|
22
|
+
if (type === null) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
this.bundles[type] += 1;
|
|
26
|
+
this.bundlesCount += 1;
|
|
27
|
+
this.size[type] += encodedSize;
|
|
28
|
+
this.sizeTotal += encodedSize;
|
|
29
|
+
}
|
|
30
|
+
static makePayload(summary) {
|
|
31
|
+
const {
|
|
32
|
+
size,
|
|
33
|
+
bundlesCount,
|
|
34
|
+
sizeTotal
|
|
35
|
+
} = summary;
|
|
36
|
+
const cachedSize = size[MEMORY_KEY] + size[DISK_KEY];
|
|
37
|
+
const sizeRatio = round(cachedSize / summary.sizeTotal);
|
|
38
|
+
return {
|
|
39
|
+
size: sizeTotal,
|
|
40
|
+
chr: sizeRatio,
|
|
41
|
+
count: bundlesCount
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
export class CHRReporter {
|
|
46
|
+
constructor() {
|
|
47
|
+
_defineProperty(this, "all", new CHRSummary());
|
|
48
|
+
_defineProperty(this, "allAtlassian", new CHRSummary());
|
|
49
|
+
_defineProperty(this, "preloaded", new CHRSummary());
|
|
50
|
+
}
|
|
51
|
+
get(resourceTimings, assetsClassification) {
|
|
52
|
+
try {
|
|
53
|
+
Object.entries(resourceTimings).map(([label, entry]) => {
|
|
54
|
+
if (assetsClassification.all) {
|
|
55
|
+
this.all.add(entry);
|
|
56
|
+
}
|
|
57
|
+
if (assetsClassification.allAtlassian({
|
|
58
|
+
label,
|
|
59
|
+
entry
|
|
60
|
+
})) {
|
|
61
|
+
this.allAtlassian.add(entry);
|
|
62
|
+
}
|
|
63
|
+
if (assetsClassification.preloaded({
|
|
64
|
+
label,
|
|
65
|
+
entry
|
|
66
|
+
})) {
|
|
67
|
+
this.preloaded.add(entry);
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
if (this.all.bundlesCount === 0) {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
all: CHRSummary.makePayload(this.all),
|
|
75
|
+
allAtlassian: CHRSummary.makePayload(this.allAtlassian),
|
|
76
|
+
preloaded: CHRSummary.makePayload(this.preloaded)
|
|
77
|
+
};
|
|
78
|
+
} catch (error) {
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/* Borrowed from https://bitbucket.org/atlassian/atlassian-frontend/src/master/packages/performance/browser-metrics/src/plugins/timings/resource.ts */
|
|
2
|
+
export const cacheableTypes = ['script', 'link'];
|
|
3
|
+
export const MEMORY_KEY = 'mem';
|
|
4
|
+
export const DISK_KEY = 'disk';
|
|
5
|
+
export const NETWORK_KEY = 'net';
|
|
6
|
+
export const calculateTransferType = (type, duration, size) => {
|
|
7
|
+
if (!cacheableTypes.includes(type)) {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
if ((size === undefined || size === 0) && duration === 0) {
|
|
11
|
+
return MEMORY_KEY;
|
|
12
|
+
}
|
|
13
|
+
if (size === 0 && duration > 0) {
|
|
14
|
+
return DISK_KEY;
|
|
15
|
+
}
|
|
16
|
+
if (size === undefined) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
return NETWORK_KEY;
|
|
20
|
+
};
|
|
21
|
+
export const round = n => {
|
|
22
|
+
if (isNaN(n)) {
|
|
23
|
+
return 0;
|
|
24
|
+
}
|
|
25
|
+
return Math.round(n * 10000) / 10000;
|
|
26
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|