@atlaskit/react-ufo 3.14.1 → 3.14.3

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 (27) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/cjs/create-payload/common/utils/index.js +9 -3
  3. package/dist/cjs/segment/segment.js +10 -4
  4. package/dist/cjs/vc/vc-observer-new/metric-calculator/fy25_03/index.js +1 -4
  5. package/dist/es2019/create-payload/common/utils/index.js +9 -1
  6. package/dist/es2019/segment/segment.js +12 -4
  7. package/dist/es2019/vc/vc-observer-new/metric-calculator/fy25_03/index.js +1 -4
  8. package/dist/esm/create-payload/common/utils/index.js +9 -3
  9. package/dist/esm/segment/segment.js +10 -4
  10. package/dist/esm/vc/vc-observer-new/metric-calculator/fy25_03/index.js +1 -4
  11. package/dist/types/create-payload/common/utils/index.d.ts +3 -0
  12. package/dist/types/create-payload/index.d.ts +640 -0
  13. package/dist/types/create-post-interaction-log-payload/get-late-mutations.d.ts +1 -1
  14. package/dist/types/create-post-interaction-log-payload/index.d.ts +4 -4
  15. package/dist/types/interaction-context/index.d.ts +2 -0
  16. package/dist/types/interaction-ignore/ufo-interaction-ignore.d.ts +1 -1
  17. package/dist/types/segment/third-party-segment.d.ts +1 -1
  18. package/dist/types/vc/vc-observer-new/viewport-observer/utils/get-component-name-and-child-props.d.ts +2 -2
  19. package/dist/types-ts4.5/create-payload/common/utils/index.d.ts +3 -0
  20. package/dist/types-ts4.5/create-payload/index.d.ts +640 -0
  21. package/dist/types-ts4.5/create-post-interaction-log-payload/get-late-mutations.d.ts +1 -1
  22. package/dist/types-ts4.5/create-post-interaction-log-payload/index.d.ts +4 -4
  23. package/dist/types-ts4.5/interaction-context/index.d.ts +2 -0
  24. package/dist/types-ts4.5/interaction-ignore/ufo-interaction-ignore.d.ts +1 -1
  25. package/dist/types-ts4.5/segment/third-party-segment.d.ts +1 -1
  26. package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/utils/get-component-name-and-child-props.d.ts +2 -2
  27. package/package.json +4 -4
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @atlaskit/ufo-interaction-ignore
2
2
 
3
+ ## 3.14.3
4
+
5
+ ### Patch Changes
6
+
7
+ - [#178297](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/178297)
8
+ [`f7360c64ca98f`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/f7360c64ca98f) -
9
+ Add segment type to ineteraction metrics
10
+
11
+ ## 3.14.2
12
+
13
+ ### Patch Changes
14
+
15
+ - [#175460](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/175460)
16
+ [`57eff35bc7a50`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/57eff35bc7a50) -
17
+ Cleanup platform_ufo_filter_out_aui_attribute_changes flag
18
+
3
19
  ## 3.14.1
4
20
 
5
21
  ### Patch Changes
@@ -11,6 +11,7 @@ exports.optimizeLabelStack = optimizeLabelStack;
11
11
  exports.sanitizeUfoName = sanitizeUfoName;
12
12
  exports.stringifyLabelStackFully = stringifyLabelStackFully;
13
13
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
14
15
  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; }
15
16
  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; }
16
17
  function sanitizeUfoName(name) {
@@ -30,13 +31,16 @@ function buildSegmentTree(labelStacks) {
30
31
  var name = label.name;
31
32
  var id = isSegmentLabel(label) ? label.segmentId : undefined;
32
33
  var key = id !== undefined ? id : name;
34
+ var type = isSegmentLabel(label) ? label.type : undefined;
33
35
  if (!currentNode.c) {
34
36
  currentNode.c = {};
35
37
  }
36
38
  if (!currentNode.c[key]) {
37
- currentNode.c[key] = {
39
+ currentNode.c[key] = _objectSpread({
38
40
  n: name
39
- };
41
+ }, type && (0, _platformFeatureFlags.fg)('platform_ufo_add_type_for_3p_segments') ? {
42
+ t: type
43
+ } : {});
40
44
  }
41
45
  currentNode = currentNode.c[key];
42
46
  });
@@ -63,10 +67,12 @@ function labelStackStartWith(labelStack, startWith) {
63
67
  }
64
68
  function optimizeLabelStack(labelStack, reactUFOVersion) {
65
69
  return reactUFOVersion === '2.0.0' ? getLabelStackReference(labelStack) : labelStack.map(function (ls) {
66
- return _objectSpread({
70
+ return _objectSpread(_objectSpread({
67
71
  n: ls.name
68
72
  }, ls.segmentId ? {
69
73
  s: ls.segmentId
74
+ } : {}), ls.type && (0, _platformFeatureFlags.fg)('platform_ufo_add_type_for_3p_segments') ? {
75
+ t: ls.type
70
76
  } : {});
71
77
  });
72
78
  }
@@ -11,6 +11,7 @@ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers
11
11
  var _react = _interopRequireWildcard(require("react"));
12
12
  var _scheduler = require("scheduler");
13
13
  var _uuid = require("uuid");
14
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
14
15
  var _coinflip = _interopRequireDefault(require("../coinflip"));
15
16
  var _config = require("../config");
16
17
  var _experienceTraceIdContext = require("../experience-trace-id-context");
@@ -63,14 +64,19 @@ function UFOSegment(_ref) {
63
64
  return newSegmentId;
64
65
  }, [mode, segmentName, segmentIdMap]);
65
66
  var labelStack = (0, _react.useMemo)(function () {
66
- return parentContext !== null && parentContext !== void 0 && parentContext.labelStack ? [].concat((0, _toConsumableArray2.default)(parentContext.labelStack), [{
67
+ return parentContext !== null && parentContext !== void 0 && parentContext.labelStack ? [].concat((0, _toConsumableArray2.default)(parentContext.labelStack), [_objectSpread({
67
68
  name: segmentName,
68
69
  segmentId: segmentId
69
- }]) : [{
70
+ }, type !== 'first-party' && (0, _platformFeatureFlags.fg)('platform_ufo_add_type_for_3p_segments') ? {
71
+ type: type
72
+ } : {}) // Only pass non-default types (not 'first-party') in payload to reduce size
73
+ ]) : [_objectSpread({
70
74
  name: segmentName,
71
75
  segmentId: segmentId
72
- }];
73
- }, [parentContext, segmentName, segmentId]);
76
+ }, type !== 'first-party' && (0, _platformFeatureFlags.fg)('platform_ufo_add_type_for_3p_segments') ? {
77
+ type: type
78
+ } : {})];
79
+ }, [parentContext, segmentName, segmentId, type]);
74
80
  var interactionId = (0, _react.useContext)(_interactionIdContext.default);
75
81
  var interactionContext = (0, _react.useMemo)(function () {
76
82
  var lastCompleteEndTime = 0;
@@ -53,10 +53,7 @@ var VCCalculator_FY25_03 = exports.default = /*#__PURE__*/function (_AbstractVCC
53
53
  if (!attributeName || KNOWN_ATTRIBUTES_THAT_DOES_NOT_CAUSE_LAYOUT_SHIFTS.includes(attributeName)) {
54
54
  return false;
55
55
  }
56
- if (attributeName === 'data-aui-version' && (0, _platformFeatureFlags.fg)('platform_ufo_filter_out_aui_attribute_changes')) {
57
- return false;
58
- }
59
- if (attributeName === 'data-testid' || attributeName === 'data-vc' || attributeName === 'data-ssr-placeholder' || attributeName === 'data-ssr-placeholder-replace' || attributeName === 'data-vc-nvs' || attributeName === 'data-media-vc-wrapper' || (attributeName === 'data-renderer-start-pos' || attributeName === 'data-table-local-id' || attributeName === 'spellcheck') && (0, _platformFeatureFlags.fg)('platform_ufo_ignore_extra_attributes') || attributeName === 'data-auto-scrollable' || attributeName === 'id' || attributeName === 'tabindex' || NON_VISUAL_ARIA_ATTRIBUTES.includes(attributeName)) {
56
+ if (attributeName === 'data-aui-version' || attributeName === 'data-testid' || attributeName === 'data-vc' || attributeName === 'data-ssr-placeholder' || attributeName === 'data-ssr-placeholder-replace' || attributeName === 'data-vc-nvs' || attributeName === 'data-media-vc-wrapper' || (attributeName === 'data-renderer-start-pos' || attributeName === 'data-table-local-id' || attributeName === 'spellcheck') && (0, _platformFeatureFlags.fg)('platform_ufo_ignore_extra_attributes') || attributeName === 'data-auto-scrollable' || attributeName === 'id' || attributeName === 'tabindex' || NON_VISUAL_ARIA_ATTRIBUTES.includes(attributeName)) {
60
57
  return false;
61
58
  }
62
59
  return true;
@@ -1,3 +1,4 @@
1
+ import { fg } from '@atlaskit/platform-feature-flags';
1
2
  export function sanitizeUfoName(name) {
2
3
  return name.replace(/_/g, '-');
3
4
  }
@@ -15,12 +16,16 @@ export function buildSegmentTree(labelStacks) {
15
16
  const name = label.name;
16
17
  const id = isSegmentLabel(label) ? label.segmentId : undefined;
17
18
  const key = id !== undefined ? id : name;
19
+ const type = isSegmentLabel(label) ? label.type : undefined;
18
20
  if (!currentNode.c) {
19
21
  currentNode.c = {};
20
22
  }
21
23
  if (!currentNode.c[key]) {
22
24
  currentNode.c[key] = {
23
- n: name
25
+ n: name,
26
+ ...(type && fg('platform_ufo_add_type_for_3p_segments') ? {
27
+ t: type
28
+ } : {})
24
29
  };
25
30
  }
26
31
  currentNode = currentNode.c[key];
@@ -49,6 +54,9 @@ export function optimizeLabelStack(labelStack, reactUFOVersion) {
49
54
  n: ls.name,
50
55
  ...(ls.segmentId ? {
51
56
  s: ls.segmentId
57
+ } : {}),
58
+ ...(ls.type && fg('platform_ufo_add_type_for_3p_segments') ? {
59
+ t: ls.type
52
60
  } : {})
53
61
  }));
54
62
  }
@@ -1,6 +1,7 @@
1
1
  import React, { lazy, Profiler, Suspense, useCallback, useContext, useEffect, useMemo, useRef } from 'react';
2
2
  import { unstable_NormalPriority as NormalPriority, unstable_scheduleCallback as scheduleCallback } from 'scheduler';
3
3
  import { v4 as createUUID } from 'uuid';
4
+ import { fg } from '@atlaskit/platform-feature-flags';
4
5
  import coinflip from '../coinflip';
5
6
  import { getConfig, getInteractionRate } from '../config';
6
7
  import { getActiveTrace, setInteractionActiveTrace } from '../experience-trace-id-context';
@@ -44,11 +45,18 @@ export default function UFOSegment({
44
45
  }, [mode, segmentName, segmentIdMap]);
45
46
  const labelStack = useMemo(() => parentContext !== null && parentContext !== void 0 && parentContext.labelStack ? [...parentContext.labelStack, {
46
47
  name: segmentName,
47
- segmentId
48
- }] : [{
48
+ segmentId,
49
+ ...(type !== 'first-party' && fg('platform_ufo_add_type_for_3p_segments') ? {
50
+ type
51
+ } : {})
52
+ } // Only pass non-default types (not 'first-party') in payload to reduce size
53
+ ] : [{
49
54
  name: segmentName,
50
- segmentId
51
- }], [parentContext, segmentName, segmentId]);
55
+ segmentId,
56
+ ...(type !== 'first-party' && fg('platform_ufo_add_type_for_3p_segments') ? {
57
+ type
58
+ } : {})
59
+ }], [parentContext, segmentName, segmentId, type]);
52
60
  const interactionId = useContext(UFOInteractionIDContext);
53
61
  const interactionContext = useMemo(() => {
54
62
  let lastCompleteEndTime = 0;
@@ -35,10 +35,7 @@ export default class VCCalculator_FY25_03 extends AbstractVCCalculatorBase {
35
35
  if (!attributeName || KNOWN_ATTRIBUTES_THAT_DOES_NOT_CAUSE_LAYOUT_SHIFTS.includes(attributeName)) {
36
36
  return false;
37
37
  }
38
- if (attributeName === 'data-aui-version' && fg('platform_ufo_filter_out_aui_attribute_changes')) {
39
- return false;
40
- }
41
- if (attributeName === 'data-testid' || attributeName === 'data-vc' || attributeName === 'data-ssr-placeholder' || attributeName === 'data-ssr-placeholder-replace' || attributeName === 'data-vc-nvs' || attributeName === 'data-media-vc-wrapper' || (attributeName === 'data-renderer-start-pos' || attributeName === 'data-table-local-id' || attributeName === 'spellcheck') && fg('platform_ufo_ignore_extra_attributes') || attributeName === 'data-auto-scrollable' || attributeName === 'id' || attributeName === 'tabindex' || NON_VISUAL_ARIA_ATTRIBUTES.includes(attributeName)) {
38
+ if (attributeName === 'data-aui-version' || attributeName === 'data-testid' || attributeName === 'data-vc' || attributeName === 'data-ssr-placeholder' || attributeName === 'data-ssr-placeholder-replace' || attributeName === 'data-vc-nvs' || attributeName === 'data-media-vc-wrapper' || (attributeName === 'data-renderer-start-pos' || attributeName === 'data-table-local-id' || attributeName === 'spellcheck') && fg('platform_ufo_ignore_extra_attributes') || attributeName === 'data-auto-scrollable' || attributeName === 'id' || attributeName === 'tabindex' || NON_VISUAL_ARIA_ATTRIBUTES.includes(attributeName)) {
42
39
  return false;
43
40
  }
44
41
  return true;
@@ -1,6 +1,7 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  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; }
3
3
  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) { _defineProperty(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; }
4
+ import { fg } from '@atlaskit/platform-feature-flags';
4
5
  export function sanitizeUfoName(name) {
5
6
  return name.replace(/_/g, '-');
6
7
  }
@@ -18,13 +19,16 @@ export function buildSegmentTree(labelStacks) {
18
19
  var name = label.name;
19
20
  var id = isSegmentLabel(label) ? label.segmentId : undefined;
20
21
  var key = id !== undefined ? id : name;
22
+ var type = isSegmentLabel(label) ? label.type : undefined;
21
23
  if (!currentNode.c) {
22
24
  currentNode.c = {};
23
25
  }
24
26
  if (!currentNode.c[key]) {
25
- currentNode.c[key] = {
27
+ currentNode.c[key] = _objectSpread({
26
28
  n: name
27
- };
29
+ }, type && fg('platform_ufo_add_type_for_3p_segments') ? {
30
+ t: type
31
+ } : {});
28
32
  }
29
33
  currentNode = currentNode.c[key];
30
34
  });
@@ -51,10 +55,12 @@ export function labelStackStartWith(labelStack, startWith) {
51
55
  }
52
56
  export function optimizeLabelStack(labelStack, reactUFOVersion) {
53
57
  return reactUFOVersion === '2.0.0' ? getLabelStackReference(labelStack) : labelStack.map(function (ls) {
54
- return _objectSpread({
58
+ return _objectSpread(_objectSpread({
55
59
  n: ls.name
56
60
  }, ls.segmentId ? {
57
61
  s: ls.segmentId
62
+ } : {}), ls.type && fg('platform_ufo_add_type_for_3p_segments') ? {
63
+ t: ls.type
58
64
  } : {});
59
65
  });
60
66
  }
@@ -5,6 +5,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
5
5
  import React, { lazy, Profiler, Suspense, useCallback, useContext, useEffect, useMemo, useRef } from 'react';
6
6
  import { unstable_NormalPriority as NormalPriority, unstable_scheduleCallback as scheduleCallback } from 'scheduler';
7
7
  import { v4 as createUUID } from 'uuid';
8
+ import { fg } from '@atlaskit/platform-feature-flags';
8
9
  import coinflip from '../coinflip';
9
10
  import { getConfig, getInteractionRate } from '../config';
10
11
  import { getActiveTrace, setInteractionActiveTrace } from '../experience-trace-id-context';
@@ -52,14 +53,19 @@ export default function UFOSegment(_ref) {
52
53
  return newSegmentId;
53
54
  }, [mode, segmentName, segmentIdMap]);
54
55
  var labelStack = useMemo(function () {
55
- return parentContext !== null && parentContext !== void 0 && parentContext.labelStack ? [].concat(_toConsumableArray(parentContext.labelStack), [{
56
+ return parentContext !== null && parentContext !== void 0 && parentContext.labelStack ? [].concat(_toConsumableArray(parentContext.labelStack), [_objectSpread({
56
57
  name: segmentName,
57
58
  segmentId: segmentId
58
- }]) : [{
59
+ }, type !== 'first-party' && fg('platform_ufo_add_type_for_3p_segments') ? {
60
+ type: type
61
+ } : {}) // Only pass non-default types (not 'first-party') in payload to reduce size
62
+ ]) : [_objectSpread({
59
63
  name: segmentName,
60
64
  segmentId: segmentId
61
- }];
62
- }, [parentContext, segmentName, segmentId]);
65
+ }, type !== 'first-party' && fg('platform_ufo_add_type_for_3p_segments') ? {
66
+ type: type
67
+ } : {})];
68
+ }, [parentContext, segmentName, segmentId, type]);
63
69
  var interactionId = useContext(UFOInteractionIDContext);
64
70
  var interactionContext = useMemo(function () {
65
71
  var lastCompleteEndTime = 0;
@@ -46,10 +46,7 @@ var VCCalculator_FY25_03 = /*#__PURE__*/function (_AbstractVCCalculator) {
46
46
  if (!attributeName || KNOWN_ATTRIBUTES_THAT_DOES_NOT_CAUSE_LAYOUT_SHIFTS.includes(attributeName)) {
47
47
  return false;
48
48
  }
49
- if (attributeName === 'data-aui-version' && fg('platform_ufo_filter_out_aui_attribute_changes')) {
50
- return false;
51
- }
52
- if (attributeName === 'data-testid' || attributeName === 'data-vc' || attributeName === 'data-ssr-placeholder' || attributeName === 'data-ssr-placeholder-replace' || attributeName === 'data-vc-nvs' || attributeName === 'data-media-vc-wrapper' || (attributeName === 'data-renderer-start-pos' || attributeName === 'data-table-local-id' || attributeName === 'spellcheck') && fg('platform_ufo_ignore_extra_attributes') || attributeName === 'data-auto-scrollable' || attributeName === 'id' || attributeName === 'tabindex' || NON_VISUAL_ARIA_ATTRIBUTES.includes(attributeName)) {
49
+ if (attributeName === 'data-aui-version' || attributeName === 'data-testid' || attributeName === 'data-vc' || attributeName === 'data-ssr-placeholder' || attributeName === 'data-ssr-placeholder-replace' || attributeName === 'data-vc-nvs' || attributeName === 'data-media-vc-wrapper' || (attributeName === 'data-renderer-start-pos' || attributeName === 'data-table-local-id' || attributeName === 'spellcheck') && fg('platform_ufo_ignore_extra_attributes') || attributeName === 'data-auto-scrollable' || attributeName === 'id' || attributeName === 'tabindex' || NON_VISUAL_ARIA_ATTRIBUTES.includes(attributeName)) {
53
50
  return false;
54
51
  }
55
52
  return true;
@@ -1,8 +1,10 @@
1
1
  import type { LabelStack, SegmentLabel } from '../../../interaction-context';
2
+ import { UFOSegmentType } from '../../../segment/segment';
2
3
  import { getReactUFOPayloadVersion } from '../../utils/get-react-ufo-payload-version';
3
4
  export type SegmentItem = {
4
5
  n: string;
5
6
  c?: Record<string, SegmentItem>;
7
+ t?: UFOSegmentType;
6
8
  };
7
9
  export type SegmentTree = {
8
10
  r: SegmentItem;
@@ -13,6 +15,7 @@ export declare function buildSegmentTree(labelStacks: LabelStack[]): SegmentTree
13
15
  export declare function stringifyLabelStackFully(labelStack: LabelStack): string;
14
16
  export declare function labelStackStartWith(labelStack: LabelStack, startWith: LabelStack): boolean;
15
17
  export declare function optimizeLabelStack(labelStack: LabelStack, reactUFOVersion: ReturnType<typeof getReactUFOPayloadVersion>): string | {
18
+ t?: UFOSegmentType | undefined;
16
19
  s?: string | undefined;
17
20
  n: string;
18
21
  }[];