@atlaskit/react-ufo 4.4.3 → 4.4.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.
Files changed (63) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/cjs/create-interaction-extra-metrics-payload/index.js +116 -0
  3. package/dist/cjs/create-payload/index.js +3 -2
  4. package/dist/cjs/create-payload/utils/get-vc-metrics.js +37 -21
  5. package/dist/cjs/interaction-metrics/index.js +306 -232
  6. package/dist/cjs/interaction-metrics/interaction-extra-metrics.js +89 -0
  7. package/dist/cjs/interaction-metrics-init/index.js +51 -7
  8. package/dist/cjs/segment/third-party-segment.js +3 -1
  9. package/dist/cjs/ssr/index.js +3 -2
  10. package/dist/cjs/vc/index.js +4 -3
  11. package/dist/cjs/vc/vc-observer/index.js +3 -46
  12. package/dist/cjs/vc/vc-observer-new/index.js +4 -3
  13. package/dist/cjs/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +3 -3
  14. package/dist/cjs/vc/vc-observer-new/metric-calculator/fy25_03/index.js +4 -4
  15. package/dist/es2019/create-interaction-extra-metrics-payload/index.js +93 -0
  16. package/dist/es2019/create-payload/index.js +3 -3
  17. package/dist/es2019/create-payload/utils/get-vc-metrics.js +3 -2
  18. package/dist/es2019/interaction-metrics/index.js +310 -233
  19. package/dist/es2019/interaction-metrics/interaction-extra-metrics.js +63 -0
  20. package/dist/es2019/interaction-metrics-init/index.js +29 -2
  21. package/dist/es2019/segment/third-party-segment.js +3 -1
  22. package/dist/es2019/ssr/index.js +3 -2
  23. package/dist/es2019/vc/index.js +4 -2
  24. package/dist/es2019/vc/vc-observer/index.js +0 -43
  25. package/dist/es2019/vc/vc-observer-new/index.js +4 -2
  26. package/dist/es2019/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +3 -2
  27. package/dist/es2019/vc/vc-observer-new/metric-calculator/fy25_03/index.js +4 -4
  28. package/dist/esm/create-interaction-extra-metrics-payload/index.js +109 -0
  29. package/dist/esm/create-payload/index.js +3 -3
  30. package/dist/esm/create-payload/utils/get-vc-metrics.js +37 -21
  31. package/dist/esm/interaction-metrics/index.js +305 -231
  32. package/dist/esm/interaction-metrics/interaction-extra-metrics.js +83 -0
  33. package/dist/esm/interaction-metrics-init/index.js +48 -6
  34. package/dist/esm/segment/third-party-segment.js +3 -1
  35. package/dist/esm/ssr/index.js +3 -2
  36. package/dist/esm/vc/index.js +4 -3
  37. package/dist/esm/vc/vc-observer/index.js +3 -46
  38. package/dist/esm/vc/vc-observer-new/index.js +4 -3
  39. package/dist/esm/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +3 -3
  40. package/dist/esm/vc/vc-observer-new/metric-calculator/fy25_03/index.js +4 -4
  41. package/dist/types/common/common/types.d.ts +2 -0
  42. package/dist/types/create-interaction-extra-metrics-payload/index.d.ts +45 -0
  43. package/dist/types/create-payload/index.d.ts +1 -0
  44. package/dist/types/create-payload/utils/get-vc-metrics.d.ts +1 -1
  45. package/dist/types/interaction-metrics/index.d.ts +2 -0
  46. package/dist/types/interaction-metrics/interaction-extra-metrics.d.ts +17 -0
  47. package/dist/types/vc/types.d.ts +1 -0
  48. package/dist/types/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.d.ts +2 -2
  49. package/dist/types/vc/vc-observer-new/metric-calculator/fy25_03/index.d.ts +1 -1
  50. package/dist/types/vc/vc-observer-new/metric-calculator/types.d.ts +1 -0
  51. package/dist/types/vc/vc-observer-new/types.d.ts +1 -0
  52. package/dist/types-ts4.5/common/common/types.d.ts +2 -0
  53. package/dist/types-ts4.5/create-interaction-extra-metrics-payload/index.d.ts +45 -0
  54. package/dist/types-ts4.5/create-payload/index.d.ts +1 -0
  55. package/dist/types-ts4.5/create-payload/utils/get-vc-metrics.d.ts +1 -1
  56. package/dist/types-ts4.5/interaction-metrics/index.d.ts +2 -0
  57. package/dist/types-ts4.5/interaction-metrics/interaction-extra-metrics.d.ts +17 -0
  58. package/dist/types-ts4.5/vc/types.d.ts +1 -0
  59. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.d.ts +2 -2
  60. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/fy25_03/index.d.ts +1 -1
  61. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/types.d.ts +1 -0
  62. package/dist/types-ts4.5/vc/vc-observer-new/types.d.ts +1 -0
  63. package/package.json +4 -7
package/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # @atlaskit/ufo-interaction-ignore
2
2
 
3
+ ## 4.4.4
4
+
5
+ ### Patch Changes
6
+
7
+ - [`bd5fbbc05c329`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/bd5fbbc05c329) -
8
+ Enable TTVC and TTAI for third party segment
9
+ - [`7ed8bff88d7c4`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/7ed8bff88d7c4) -
10
+ FG cleanup - ufo_chrome_devtools_uplift
11
+ - [`c86a0e501d31c`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/c86a0e501d31c) -
12
+ FG cleanup - platform_ufo_ssr_size_field
13
+
3
14
  ## 4.4.3
4
15
 
5
16
  ### Patch Changes
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
+ var _config = require("../config");
11
+ var _createPayload = require("../create-payload");
12
+ var _utils = require("../create-payload/common/utils");
13
+ var _getPageVisibilityUpToTtai = _interopRequireDefault(require("../create-payload/utils/get-page-visibility-up-to-ttai"));
14
+ var _getPayloadSize = _interopRequireDefault(require("../create-payload/utils/get-payload-size"));
15
+ var _getReactUfoPayloadVersion = require("../create-payload/utils/get-react-ufo-payload-version");
16
+ var _getTtai = _interopRequireDefault(require("../create-payload/utils/get-ttai"));
17
+ var _getVcMetrics = _interopRequireDefault(require("../create-payload/utils/get-vc-metrics"));
18
+ function createInteractionExtraLogPayload(_x, _x2) {
19
+ return _createInteractionExtraLogPayload.apply(this, arguments);
20
+ }
21
+ function _createInteractionExtraLogPayload() {
22
+ _createInteractionExtraLogPayload = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(interactionId, interaction) {
23
+ var _getTTAI, _finalVCMetrics$ufoV, _window$location;
24
+ var config, end, start, ufoName, rate, type, abortReason, routeName, previousInteractionName, isPreviousInteractionAborted, abortedByInteractionName, pageVisibilityAtTTAI, isPageLoad, calculatePageVisibilityFromTheStartOfPageLoad, moreAccuratePageVisibilityAtTTAI, extraTTAI, newUFOName, finalVCMetrics, ttvc, payload;
25
+ return _regenerator.default.wrap(function _callee$(_context) {
26
+ while (1) switch (_context.prev = _context.next) {
27
+ case 0:
28
+ config = (0, _config.getConfig)();
29
+ if (config) {
30
+ _context.next = 3;
31
+ break;
32
+ }
33
+ throw Error('UFO Configuration not provided');
34
+ case 3:
35
+ end = interaction.end, start = interaction.start, ufoName = interaction.ufoName, rate = interaction.rate, type = interaction.type, abortReason = interaction.abortReason, routeName = interaction.routeName, previousInteractionName = interaction.previousInteractionName, isPreviousInteractionAborted = interaction.isPreviousInteractionAborted, abortedByInteractionName = interaction.abortedByInteractionName;
36
+ pageVisibilityAtTTAI = (0, _getPageVisibilityUpToTtai.default)(interaction);
37
+ isPageLoad = type === 'page_load' || type === 'transition';
38
+ if (isPageLoad) {
39
+ _context.next = 8;
40
+ break;
41
+ }
42
+ return _context.abrupt("return", null);
43
+ case 8:
44
+ calculatePageVisibilityFromTheStartOfPageLoad = config.enableBetterPageVisibilityApi && isPageLoad;
45
+ moreAccuratePageVisibilityAtTTAI = calculatePageVisibilityFromTheStartOfPageLoad ? (0, _createPayload.getMoreAccuratePageVisibilityUpToTTAI)(interaction) : null;
46
+ extraTTAI = (_getTTAI = (0, _getTtai.default)(interaction)) !== null && _getTTAI !== void 0 ? _getTTAI : undefined;
47
+ newUFOName = (0, _utils.sanitizeUfoName)(ufoName);
48
+ _context.next = 14;
49
+ return (0, _getVcMetrics.default)(interaction, true);
50
+ case 14:
51
+ finalVCMetrics = _context.sent;
52
+ ttvc = (_finalVCMetrics$ufoV = finalVCMetrics['ufo:vc:rev']) === null || _finalVCMetrics$ufoV === void 0 ? void 0 : _finalVCMetrics$ufoV.map(function (revision) {
53
+ if (revision['metric:vc90'] === null || revision.clean !== true) {
54
+ return null;
55
+ }
56
+ return {
57
+ revision: revision.revision,
58
+ vc90: revision['metric:vc90']
59
+ };
60
+ }).filter(function (revision) {
61
+ return revision != null;
62
+ });
63
+ payload = {
64
+ actionSubject: 'experience',
65
+ action: 'measured',
66
+ eventType: 'operational',
67
+ source: 'measured',
68
+ tags: ['observability'],
69
+ attributes: {
70
+ properties: {
71
+ // basic
72
+ 'event:hostname': ((_window$location = window.location) === null || _window$location === void 0 ? void 0 : _window$location.hostname) || 'unknown',
73
+ 'event:product': config.product,
74
+ 'event:schema': '1.0.0',
75
+ 'event:sizeInKb': 0,
76
+ 'event:source': {
77
+ name: 'react-ufo/web',
78
+ version: (0, _getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)
79
+ },
80
+ 'event:region': config.region || 'unknown',
81
+ 'experience:key': 'custom.interaction-extra-metrics',
82
+ 'experience:name': newUFOName,
83
+ interactionMetrics: {
84
+ namePrefix: config.namePrefix || '',
85
+ segmentPrefix: config.segmentPrefix || '',
86
+ interactionId: interactionId,
87
+ pageVisibilityAtTTAI: pageVisibilityAtTTAI,
88
+ experimental__pageVisibilityAtTTAI: moreAccuratePageVisibilityAtTTAI,
89
+ // raw interaction metrics
90
+ rate: rate,
91
+ routeName: routeName,
92
+ type: type,
93
+ abortReason: abortReason,
94
+ previousInteractionName: previousInteractionName,
95
+ isPreviousInteractionAborted: isPreviousInteractionAborted,
96
+ abortedByInteractionName: abortedByInteractionName,
97
+ // performance
98
+ end: Math.round(end),
99
+ start: Math.round(start),
100
+ 'metric:ttai:3p': extraTTAI,
101
+ ttvc: ttvc !== null && ttvc !== void 0 ? ttvc : undefined
102
+ }
103
+ }
104
+ }
105
+ };
106
+ payload.attributes.properties['event:sizeInKb'] = (0, _getPayloadSize.default)(payload.attributes.properties);
107
+ return _context.abrupt("return", payload);
108
+ case 19:
109
+ case "end":
110
+ return _context.stop();
111
+ }
112
+ }, _callee);
113
+ }));
114
+ return _createInteractionExtraLogPayload.apply(this, arguments);
115
+ }
116
+ var _default = exports.default = createInteractionExtraLogPayload;
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.createExperimentalMetricsPayload = createExperimentalMetricsPayload;
9
9
  exports.createPayloads = createPayloads;
10
+ exports.getMoreAccuratePageVisibilityUpToTTAI = getMoreAccuratePageVisibilityUpToTTAI;
10
11
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
12
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
12
13
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
@@ -625,7 +626,7 @@ function _createInteractionMetricsPayload() {
625
626
  } : {};
626
627
  var isBM3ConfigSSRDoneAsFmp = interaction.metaData.__legacy__bm3ConfigSSRDoneAsFmp;
627
628
  var isUFOConfigSSRDoneAsFmp = interaction.metaData.__legacy__bm3ConfigSSRDoneAsFmp || !!(config !== null && config !== void 0 && (_config$ssr = config.ssr) !== null && _config$ssr !== void 0 && _config$ssr.getSSRDoneTime);
628
- if (!experimental && (isBM3ConfigSSRDoneAsFmp || isUFOConfigSSRDoneAsFmp) && SSRDoneTimeValue !== undefined && (0, _platformFeatureFlags.fg)('ufo_chrome_devtools_uplift')) {
629
+ if (!experimental && (isBM3ConfigSSRDoneAsFmp || isUFOConfigSSRDoneAsFmp) && SSRDoneTimeValue !== undefined) {
629
630
  try {
630
631
  performance.mark("FMP", {
631
632
  startTime: SSRDoneTimeValue,
@@ -709,7 +710,7 @@ function _createInteractionMetricsPayload() {
709
710
  experimentalMetrics = _yield$Promise$all2[1];
710
711
  paintMetrics = _yield$Promise$all2[2];
711
712
  if (!experimental) {
712
- (0, _platformFeatureFlags.fg)('ufo_chrome_devtools_uplift') && (0, _addPerformanceMeasures.addPerformanceMeasures)(interaction.start, (0, _toConsumableArray2.default)((finalVCMetrics === null || finalVCMetrics === void 0 ? void 0 : finalVCMetrics['ufo:vc:rev']) || []));
713
+ (0, _addPerformanceMeasures.addPerformanceMeasures)(interaction.start, (0, _toConsumableArray2.default)((finalVCMetrics === null || finalVCMetrics === void 0 ? void 0 : finalVCMetrics['ufo:vc:rev']) || []));
713
714
  }
714
715
  getReactHydrationStats = function getReactHydrationStats() {
715
716
  if (!isPageLoad || !hydration) {
@@ -22,53 +22,67 @@ function getVCMetrics(_x) {
22
22
  function _getVCMetrics() {
23
23
  _getVCMetrics = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(interaction) {
24
24
  var _config$vc, _config$vc$ssrWhiteli, _interaction$apdex, _config$vc2, _config$vc3, _result$ufoVcRev;
25
- var config, interactionStatus, pageVisibilityUpToTTAI, shouldReportVCMetrics, observer, isSSREnabled, ssr, tti, prefix, result, mostRecentVCRevision, mostRecentVCRevisionPayload;
25
+ var include3p,
26
+ config,
27
+ interactionStatus,
28
+ pageVisibilityUpToTTAI,
29
+ shouldReportVCMetrics,
30
+ observer,
31
+ isSSREnabled,
32
+ ssr,
33
+ tti,
34
+ prefix,
35
+ result,
36
+ mostRecentVCRevision,
37
+ mostRecentVCRevisionPayload,
38
+ _args = arguments;
26
39
  return _regenerator.default.wrap(function _callee$(_context) {
27
40
  while (1) switch (_context.prev = _context.next) {
28
41
  case 0:
42
+ include3p = _args.length > 1 && _args[1] !== undefined ? _args[1] : false;
29
43
  config = (0, _config.getConfig)();
30
44
  if (config !== null && config !== void 0 && (_config$vc = config.vc) !== null && _config$vc !== void 0 && _config$vc.enabled) {
31
- _context.next = 3;
45
+ _context.next = 4;
32
46
  break;
33
47
  }
34
48
  return _context.abrupt("return", {});
35
- case 3:
49
+ case 4:
36
50
  if (!(0, _platformFeatureFlags.fg)('platform_ufo_enable_vc_press_interactions')) {
37
- _context.next = 8;
51
+ _context.next = 9;
38
52
  break;
39
53
  }
40
54
  if (!(interaction.type !== 'page_load' && interaction.type !== 'transition' && interaction.type !== 'press')) {
41
- _context.next = 6;
55
+ _context.next = 7;
42
56
  break;
43
57
  }
44
58
  return _context.abrupt("return", {});
45
- case 6:
46
- _context.next = 10;
59
+ case 7:
60
+ _context.next = 11;
47
61
  break;
48
- case 8:
62
+ case 9:
49
63
  if (!(interaction.type !== 'page_load' && interaction.type !== 'transition')) {
50
- _context.next = 10;
64
+ _context.next = 11;
51
65
  break;
52
66
  }
53
67
  return _context.abrupt("return", {});
54
- case 10:
68
+ case 11:
55
69
  interactionStatus = (0, _getInteractionStatus.default)(interaction);
56
70
  pageVisibilityUpToTTAI = (0, _getPageVisibilityUpToTtai.default)(interaction);
57
71
  shouldReportVCMetrics = interactionStatus.originalInteractionStatus === 'SUCCEEDED' && pageVisibilityUpToTTAI === 'visible'; // Use per-interaction VC observer if available, otherwise fall back to global
58
72
  observer = interaction.vcObserver;
59
73
  if (observer) {
60
- _context.next = 16;
74
+ _context.next = 17;
61
75
  break;
62
76
  }
63
77
  return _context.abrupt("return", {});
64
- case 16:
78
+ case 17:
65
79
  if (!(!shouldReportVCMetrics && (0, _platformFeatureFlags.fg)('platform_ufo_no_vc_on_aborted'))) {
66
- _context.next = 19;
80
+ _context.next = 20;
67
81
  break;
68
82
  }
69
83
  observer.stop(interaction.ufoName);
70
84
  return _context.abrupt("return", {});
71
- case 19:
85
+ case 20:
72
86
  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)));
73
87
  ssr = interaction.type === 'page_load' && isSSREnabled ? {
74
88
  ssr: (0, _getSsrDoneTimeValue.default)(config)
@@ -76,8 +90,8 @@ function _getVCMetrics() {
76
90
  _interactionMetrics.postInteractionLog.setVCObserverSSRConfig(ssr);
77
91
  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;
78
92
  prefix = 'ufo';
79
- _context.next = 26;
80
- return observer.getVCResult(_objectSpread({
93
+ _context.next = 27;
94
+ return observer.getVCResult(_objectSpread(_objectSpread({
81
95
  start: interaction.start,
82
96
  stop: interaction.end,
83
97
  tti: tti,
@@ -88,8 +102,10 @@ function _getVCMetrics() {
88
102
  experienceKey: interaction.ufoName,
89
103
  interactionId: interaction.id,
90
104
  includeSSRRatio: (_config$vc3 = config.vc) === null || _config$vc3 === void 0 ? void 0 : _config$vc3.includeSSRRatio
91
- }, ssr));
92
- case 26:
105
+ }, ssr), {}, {
106
+ include3p: include3p
107
+ }));
108
+ case 27:
93
109
  result = _context.sent;
94
110
  observer.stop(interaction.ufoName);
95
111
  _interactionMetrics.postInteractionLog.setLastInteractionFinishVCResult(result);
@@ -99,15 +115,15 @@ function _getVCMetrics() {
99
115
  return revision === mostRecentVCRevision;
100
116
  });
101
117
  if (!(!shouldReportVCMetrics || !(mostRecentVCRevisionPayload !== null && mostRecentVCRevisionPayload !== void 0 && mostRecentVCRevisionPayload.clean))) {
102
- _context.next = 33;
118
+ _context.next = 34;
103
119
  break;
104
120
  }
105
121
  return _context.abrupt("return", result);
106
- case 33:
122
+ case 34:
107
123
  return _context.abrupt("return", _objectSpread(_objectSpread({}, result), {}, {
108
124
  'metric:vc90': mostRecentVCRevisionPayload['metric:vc90']
109
125
  }));
110
- case 34:
126
+ case 35:
111
127
  case "end":
112
128
  return _context.stop();
113
129
  }